<?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>206546</bug_id>
          
          <creation_ts>2020-01-21 11:44:45 -0800</creation_ts>
          <short_desc>webkitpy: WebSocket server doesn&apos;t support Python 3</short_desc>
          <delta_ts>2022-02-15 09:41:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>230319</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230513</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=236375</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=230319</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1609172</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-21 11:44:45 -0800</bug_when>
    <thetext>There are changes we can make to fix this, although they would need to be upstreamed to work. In the mean time, we should explicitly run the WebSocket server with Python 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609187</commentid>
    <comment_count>1</comment_count>
      <attachid>388331</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-21 12:01:22 -0800</bug_when>
    <thetext>Created attachment 388331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609253</commentid>
    <comment_count>2</comment_count>
      <attachid>388331</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-21 13:47:27 -0800</bug_when>
    <thetext>Comment on attachment 388331
Patch

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

&gt; Tools/ChangeLog:8
&gt; +        websocket_server.py doesn&apos;t support Python 3, and needs to be run with

Is there a new version of the server that supports Python 3? Perhaps Chromium implemented the changes already?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609268</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-21 14:03:01 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #2)
&gt; Comment on attachment 388331 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388331&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:8
&gt; &gt; +        websocket_server.py doesn&apos;t support Python 3, and needs to be run with
&gt; 
&gt; Is there a new version of the server that supports Python 3? Perhaps
&gt; Chromium implemented the changes already?

There is not, https://github.com/web-platform-tests/wpt/issues/8820 tracks this on their side. We need to update our import anyways, and then I can see what it takes to get this specific script Python 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609292</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-21 14:28:03 -0800</bug_when>
    <thetext>Two things that make it look like something is off here:

1. We have our own server, our tests were failing. So that needs a fix or a workaround too.

2. But only one of WPT WebSocket tests was failing. Is it actually broken?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609316</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-21 14:57:39 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; Two things that make it look like something is off here:
&gt; 
&gt; 1. We have our own server, our tests were failing. So that needs a fix or a
&gt; workaround too.
&gt; 
&gt; 2. But only one of WPT WebSocket tests was failing. Is it actually broken?

We did have an &apos;old&apos; server, but it wasn&apos;t our own, it was just an old version of a third party script. Carlos replaced the old one with the w3c one a few months back, https://trac.webkit.org/changeset/247640/webkit. Now we have a single WebSocket server, the w3c one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609406</commentid>
    <comment_count>6</comment_count>
      <attachid>388331</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-21 17:30:39 -0800</bug_when>
    <thetext>Comment on attachment 388331
Patch

Seems fine as an interim measure. May be worth considering python2 when it exists though, as I’m not sure what this patch will do on systems where “python” is python3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609453</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-21 22:26:14 -0800</bug_when>
    <thetext>Still, would prefer to understand why wpt tests aren’t failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609663</commentid>
    <comment_count>8</comment_count>
      <attachid>388453</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-22 11:50:08 -0800</bug_when>
    <thetext>Created attachment 388453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609722</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-22 13:34:57 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #6)
&gt; Comment on attachment 388331 [details]
&gt; Patch
&gt; 
&gt; Seems fine as an interim measure. May be worth considering python2 when it
&gt; exists though, as I’m not sure what this patch will do on systems where
&gt; “python” is python3.

This is a good point. I changed the code to reference python2 instead of python, and it will use the current interpreter if that interpreter is Python 2. If a script is running on a system in Python 3 that doesn&apos;t have python2, this will fail, but that seems acceptable, or at least, no worse than the current situation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609728</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-22 13:46:08 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #7)
&gt; Still, would prefer to understand why wpt tests aren’t failing.

When I run those tests independently, they don&apos;t even start the WebSocket server. So it&apos;s not surprising they don&apos;t fail when the WebSocket server fails to start.

What I don&apos;t understand is what those tests are actually supposed to be testing. But I&apos;m not sure that question is within the scope of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609734</commentid>
    <comment_count>11</comment_count>
      <attachid>388453</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-22 13:58:41 -0800</bug_when>
    <thetext>Comment on attachment 388453
Patch

Clearing flags on attachment: 388453

Committed r254944: &lt;https://trac.webkit.org/changeset/254944&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609735</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-22 13:58:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609745</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-22 14:18:54 -0800</bug_when>
    <thetext>&gt; When I run those tests independently, they don&apos;t even start the WebSocket server. So it&apos;s not surprising they don&apos;t fail when the WebSocket server fails to start.

This doesn&apos;t necessarily tell us much. The server is started anyway when running all tests, so this problem may be masked most of the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609825</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-22 15:58:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/58814743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840518</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 13:28:33 -0800</bug_when>
    <thetext>Looks like https://github.com/web-platform-tests/wpt/issues/8820 was resolved, so there now is a new version that supports Python 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840531</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 13:42:39 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840532</commentid>
    <comment_count>17</comment_count>
      <attachid>451740</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 13:42:50 -0800</bug_when>
    <thetext>Created attachment 451740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840598</commentid>
    <comment_count>18</comment_count>
      <attachid>451751</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 15:26:39 -0800</bug_when>
    <thetext>Created attachment 451751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840610</commentid>
    <comment_count>19</comment_count>
      <attachid>451751</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-02-11 16:13:20 -0800</bug_when>
    <thetext>Comment on attachment 451751
Patch

rs=me, as long as the license is unchanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840612</commentid>
    <comment_count>20</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 16:27:47 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #19)
&gt; Comment on attachment 451751 [details]
&gt; Patch
&gt; 
&gt; rs=me, as long as the license is unchanged.

Double checked that the license in https://github.com/web-platform-tests/wpt/blob/master/LICENSE.md matches what we have in LayoutTests/imported/w3c/web-platform-tests/LICENSE.md</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840646</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-11 18:17:00 -0800</bug_when>
    <thetext>Looks like I need to look at the tests we are importing as well, will do so next week. Will not be landing until EWS is green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841260</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-02-14 08:31:50 -0800</bug_when>
    <thetext>Note that bug 230319 already previously started to try and update pywebsocket; one of these should be dupe&apos;d to the other.

Bug 227255 actually already imported a recent enough version of the WPT tools for our purposes, but this didn&apos;t get noticed because it didn&apos;t remove the (gone upstream) web-platform-tests/tools/pywebsocket/.

It may well be worthwhile just focusing on removing that, and moving to web-platform-tests/tools/third_party/pywebsocket3/, rather than doing this combined with a reimport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841287</commentid>
    <comment_count>23</comment_count>
      <attachid>451914</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-14 09:35:08 -0800</bug_when>
    <thetext>Created attachment 451914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841760</commentid>
    <comment_count>24</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-02-15 09:41:03 -0800</bug_when>
    <thetext>I&apos;m going to move work over to bug 230319, since that already has more work done that I&apos;ve done here.

*** This bug has been marked as a duplicate of bug 230319 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388331</attachid>
            <date>2020-01-21 12:01:22 -0800</date>
            <delta_ts>2020-01-22 11:50:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206546-20200121120122.patch</filename>
            <type>text/plain</type>
            <size>2128</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NDg2OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTAxLTIxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogV2ViU29ja2V0IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQg
UHl0aG9uIDMgKFdvcmthcm91bmQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDY1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICB3ZWJzb2NrZXRfc2VydmVyLnB5IGRvZXNuJ3Qgc3VwcG9ydCBQeXRob24g
MywgYW5kIG5lZWRzIHRvIGJlIHJ1biB3aXRoCisgICAgICAgIFB5dGhvbiAyLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVy
LnB5OgorICAgICAgICAoUHlXZWJTb2NrZXQuX3ByZXBhcmVfY29uZmlnKTogVXNlIFB5dGhvbiAy
IGV4cGxpY2l0bHkuCisKIDIwMjAtMDEtMjEgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEZpeCB0dk9TIHZhbHVlcyBpbiBTVVBQT1JURURfUExBVEZPUk1TCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tl
dF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CShyZXZpc2lvbiAyNTQ4NjMpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2
ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTExOCwxMyArMTE4LDEzIEBAIGNsYXNzIFB5V2ViU29j
a2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgb3V0cHV0X2xvZyA9IHNlbGYuX2Zp
bGVzeXN0ZW0uam9pbihzZWxmLl9vdXRwdXRfZGlyLCBsb2dfZmlsZV9uYW1lICsgIi1vdXQudHh0
IikKICAgICAgICAgc2VsZi5fd3NvdXQgPSBzZWxmLl9maWxlc3lzdGVtLm9wZW5fdGV4dF9maWxl
X2Zvcl93cml0aW5nKG91dHB1dF9sb2cpCiAKLSAgICAgICAgcHl0aG9uX2ludGVycCA9IHN5cy5l
eGVjdXRhYmxlCiAgICAgICAgIHdwdF90b29sc19iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5qb2lu
KHNlbGYuX2xheW91dF90ZXN0cywgImltcG9ydGVkIiwgInczYyIsICJ3ZWItcGxhdGZvcm0tdGVz
dHMiLCAidG9vbHMiKQogICAgICAgICBweXdlYnNvY2tldF9iYXNlID0gc2VsZi5fZmlsZXN5c3Rl
bS5qb2luKHdwdF90b29sc19iYXNlLCAicHl3ZWJzb2NrZXQiKQogICAgICAgICBweXdlYnNvY2tl
dF9kZXBzID0gW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbih3cHRfdG9vbHNfYmFzZSwgInRoaXJkX3Bh
cnR5IiwgInNpeCIpXQogICAgICAgICBweXdlYnNvY2tldF9zY3JpcHQgPSBzZWxmLl9maWxlc3lz
dGVtLmpvaW4ocHl3ZWJzb2NrZXRfYmFzZSwgJ21vZF9weXdlYnNvY2tldCcsICdzdGFuZGFsb25l
LnB5JykKICAgICAgICAgc3RhcnRfY21kID0gWwotICAgICAgICAgICAgcHl0aG9uX2ludGVycCwg
Jy11JywgcHl3ZWJzb2NrZXRfc2NyaXB0LAorICAgICAgICAgICAgIyBGSVhNRSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTQ2OiBTaG91bGQgYmUgdXNpbmcgdGhl
IHNhbWUgdmVyc2lvbiBvZiBQeXRob24gcnVuLXdlYmtpdC10ZXN0cyBpcworICAgICAgICAgICAg
J3B5dGhvbicsICctdScsIHB5d2Vic29ja2V0X3NjcmlwdCwKICAgICAgICAgICAgICctLXNlcnZl
ci1ob3N0JywgJ2xvY2FsaG9zdCcsCiAgICAgICAgICAgICAnLS1wb3J0Jywgc3RyKHNlbGYuX3Bv
cnQpLAogICAgICAgICAgICAgIyBGSVhNRTogRG9uJ3Qgd2UgaGF2ZSBhIHNlbGYuX3BvcnRfb2Jq
LmxheW91dF90ZXN0X3BhdGg/Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388453</attachid>
            <date>2020-01-22 11:50:08 -0800</date>
            <delta_ts>2022-02-11 13:42:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206546-20200122115007.patch</filename>
            <type>text/plain</type>
            <size>1843</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NDkyOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTAxLTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogV2ViU29ja2V0IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQg
UHl0aG9uIDMgKFdvcmthcm91bmQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDY1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgorCisgICAgICAgIHdlYnNvY2tldF9zZXJ2ZXIucHkgZG9lc24ndCBzdXBwb3J0IFB5
dGhvbiAzLCBhbmQgbmVlZHMgdG8gYmUgcnVuIHdpdGgKKyAgICAgICAgUHl0aG9uIDIuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9z
ZXJ2ZXIucHk6CisgICAgICAgIChQeVdlYlNvY2tldC5fcHJlcGFyZV9jb25maWcpOiBVc2UgUHl0
aG9uIDIgZXhwbGljaXRseS4KKwogMjAyMC0wMS0yMiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFy
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IE1ha2UgbG9nZ2luZyBkdXJpbmcgSW1h
Z2VEaWZmIGNyYXNoZXMgYWNjdXJhdGUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIu
cHkJKHJldmlzaW9uIDI1NDkyOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcg
KzExOCwxMSBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAgICAg
ICAgIG91dHB1dF9sb2cgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fb3V0cHV0X2Rpciwg
bG9nX2ZpbGVfbmFtZSArICItb3V0LnR4dCIpCiAgICAgICAgIHNlbGYuX3dzb3V0ID0gc2VsZi5f
ZmlsZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyhvdXRwdXRfbG9nKQogCisgICAg
ICAgICMgRklYTUUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU0
NjogU2hvdWxkIGJlIHVzaW5nIHRoZSBzYW1lIHZlcnNpb24gb2YgUHl0aG9uIHJ1bi13ZWJraXQt
dGVzdHMgaXMKICAgICAgICAgcHl0aG9uX2ludGVycCA9IHN5cy5leGVjdXRhYmxlCisgICAgICAg
IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgICAgICAgICBweXRob25faW50ZXJw
ID0gJ3B5dGhvbjInCisKICAgICAgICAgd3B0X3Rvb2xzX2Jhc2UgPSBzZWxmLl9maWxlc3lzdGVt
LmpvaW4oc2VsZi5fbGF5b3V0X3Rlc3RzLCAiaW1wb3J0ZWQiLCAidzNjIiwgIndlYi1wbGF0Zm9y
bS10ZXN0cyIsICJ0b29scyIpCiAgICAgICAgIHB5d2Vic29ja2V0X2Jhc2UgPSBzZWxmLl9maWxl
c3lzdGVtLmpvaW4od3B0X3Rvb2xzX2Jhc2UsICJweXdlYnNvY2tldCIpCiAgICAgICAgIHB5d2Vi
c29ja2V0X2RlcHMgPSBbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHdwdF90b29sc19iYXNlLCAidGhp
cmRfcGFydHkiLCAic2l4IildCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451740</attachid>
            <date>2022-02-11 13:42:50 -0800</date>
            <delta_ts>2022-02-11 16:13:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206546-20220211134241.patch</filename>
            <type>text/plain</type>
            <size>5787927</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzcxYTkwMzVkZjg4ODA0YWU3NTVmNTNkMjg1MjQwYjgx
NjM2MjhjOC4uMjhlZDA1ZDI2N2NjZmE2MWI3YzEwOThkNmEwOTY5MjhkYmVlYjAzZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIyLTAyLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICB3ZWJraXRweTogV2ViU29ja2V0IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgUHl0aG9u
IDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU0
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg4MTQ3NDM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgIEFsd2F5cyBpbnZva2Ug
d2Vic29ja2V0IHNlcnZlciB3aXRoIFB5dGhvbiAzLgorCiAyMDIyLTAyLTAyICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gSGFuZGxl
IGxvY2FsIGNvbW1pdCBvbiBwcm9kdWN0aW9uIGJyYW5jaApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2Vy
dmVyLnB5CmluZGV4IGI0ZTMxMDhkYjM2MWQ3ZmI3Y2Y1ZjA5MjY0NTBkMjJjMzY5YmEzOGMuLmZh
YmMyMGZiMTE4ZDE4OTA4MzUxM2FlOTQyNjU3ZTg3YTE5MjljZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNv
Y2tldF9zZXJ2ZXIucHkKQEAgLTExOCwxMCArMTE4LDkgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0
cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICBvdXRwdXRfbG9nID0gc2VsZi5fZmlsZXN5c3Rl
bS5qb2luKHNlbGYuX291dHB1dF9kaXIsIGxvZ19maWxlX25hbWUgKyAiLW91dC50eHQiKQogICAg
ICAgICBzZWxmLl93c291dCA9IHNlbGYuX2ZpbGVzeXN0ZW0ub3Blbl90ZXh0X2ZpbGVfZm9yX3dy
aXRpbmcob3V0cHV0X2xvZykKIAotICAgICAgICAjIEZJWE1FIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY1NDY6IFNob3VsZCBiZSB1c2luZyB0aGUgc2FtZSB2ZXJz
aW9uIG9mIFB5dGhvbiBydW4td2Via2l0LXRlc3RzIGlzCiAgICAgICAgIHB5dGhvbl9pbnRlcnAg
PSBzeXMuZXhlY3V0YWJsZQotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgot
ICAgICAgICAgICAgcHl0aG9uX2ludGVycCA9ICdweXRob24yJworICAgICAgICBpZiBzeXMudmVy
c2lvbl9pbmZvIDwgKDMsIDApOgorICAgICAgICAgICAgcHl0aG9uX2ludGVycCA9ICdweXRob24z
JwogCiAgICAgICAgIHdwdF90b29sc19iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYu
X2xheW91dF90ZXN0cywgImltcG9ydGVkIiwgInczYyIsICJ3ZWItcGxhdGZvcm0tdGVzdHMiLCAi
dG9vbHMiKQogICAgICAgICBweXdlYnNvY2tldF9iYXNlID0gc2VsZi5fZmlsZXN5c3RlbS5qb2lu
KHdwdF90b29sc19iYXNlLCAicHl3ZWJzb2NrZXQiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggNmU0ODhiOWIzZjEyYTdiMGE2MzQ4ODVmN2U3NWMzZTYxMTI2Mzg1NC4uMGRmMGM1
MWQ3ZTFkNTQxZGY4MWEyNTE3Y2NmZTI2OWYyYTRjNmUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMTEgIEpvbmF0aGFuIEJlZGFyZCAg
PGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIHdlYmtpdHB5OiBXZWJTb2NrZXQgc2VydmVy
IGRvZXNuJ3Qgc3VwcG9ydCBQeXRob24gMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODgxNDc0
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy90b29sczogUmUtc3luY2VkIGZyb20gdXBzdHJlYW0gYXQgZmVjNWU2
ZmZlYmZmLgorCiAyMDIyLTAyLTExICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sCmluZGV4IGExYWVi
ODRkNGE2ZmUxMjYzNzFkMWI4Zjg5OWE5NjdlZTBlNWFhODMuLmRiN2Q0ZDc4NmI0MDUxODgyZGMz
MWFhZTY3NDU2YTcxODQ4ZTMzZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbApAQCAtMSwzICsxLDQg
QEAKIHN1Z2dlc3RlZF9yZXZpZXdlcnM6CiAgIC0gamdyYWhhbQogICAtIGZvb2xpcAorICAtIERh
bmllbFJ5YW5TbWl0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NzE5MTE0ZjFmMjNmY2YxMDVkNmEyYTdj
ODZlZjk3NTdiMmM2ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
ZXJ0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2Vy
dHMvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy9jYWNlcnQua2V5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jb25maWcuanNvbgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBs
YXRmb3JtLnRlc3Qua2V5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMy
MDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19p
bml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvYWZmZWN0ZWRfdGVzdHMueW1sCmluZGV4IDk2YWIyYjhjYzUyM2VhNjg0OTk2OTMzZjRi
ZjNlNzYxNzZiZDlkOWMuLmZmYjFmZTFmNmZiMTRhZGQ0ZjFmODMzMjAzMzQzZjBhZWZkMjBjNzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvYWZmZWN0ZWRfdGVzdHMueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvYWZmZWN0ZWRfdGVzdHMu
eW1sCkBAIC02LDcgKzYsOSBAQCBwYXJhbWV0ZXJzOgogc3RlcHM6CiAtIHRlbXBsYXRlOiBjaGVj
a291dC55bWwKIC0gJHt7IGlmIG5lKHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQsICcnKSB9fToK
LSAgLSBzY3JpcHQ6IGdpdCBjaGVja291dCAke3sgcGFyYW1ldGVycy5jaGVja291dENvbW1pdCB9
fQorICAtIHNjcmlwdDogfAorICAgICAgc2V0IC1ldXggLW8gcGlwZWZhaWwKKyAgICAgIGdpdCBj
aGVja291dCAke3sgcGFyYW1ldGVycy5jaGVja291dENvbW1pdCB9fQogICAgIGRpc3BsYXlOYW1l
OiAnQ2hlY2tvdXQgJHt7IHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQgfX0nCiAtIHRlbXBsYXRl
OiBwaXBfaW5zdGFsbC55bWwKICAgcGFyYW1ldGVyczoKQEAgLTE1LDcgKzE3LDEwIEBAIHN0ZXBz
OgogLSB0ZW1wbGF0ZTogaW5zdGFsbF9zYWZhcmkueW1sCiAtIHRlbXBsYXRlOiB1cGRhdGVfaG9z
dHMueW1sCiAtIHRlbXBsYXRlOiB1cGRhdGVfbWFuaWZlc3QueW1sCi0tIHNjcmlwdDogLi93cHQg
cnVuIC0teWVzIC0tbm8tcGF1c2UgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQgLS1uby1yZXN0YXJ0
LW9uLXVuZXhwZWN0ZWQgLS1hZmZlY3RlZCAke3sgcGFyYW1ldGVycy5hZmZlY3RlZFJhbmdlIH19
IC0tbG9nLXdwdHJlcG9ydCAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3Jl
cG9ydC5qc29uIC0tbG9nLXdwdHNjcmVlbnNob3QgJChCdWlsZC5BcnRpZmFjdFN0YWdpbmdEaXJl
Y3RvcnkpL3dwdF9zY3JlZW5zaG90LnR4dCAtLWNoYW5uZWwgcHJldmlldyAtLWtpbGwtc2FmYXJp
IHNhZmFyaQorLSBzY3JpcHQ6IHwKKyAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAorICAgICAgZXhw
b3J0IFNZU1RFTV9WRVJTSU9OX0NPTVBBVD0wCisgICAgLi93cHQgcnVuIC0teWVzIC0tbm8tcGF1
c2UgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQgLS1uby1yZXN0YXJ0LW9uLXVuZXhwZWN0ZWQgLS1h
ZmZlY3RlZCAke3sgcGFyYW1ldGVycy5hZmZlY3RlZFJhbmdlIH19IC0tbG9nLXdwdHJlcG9ydCAk
KEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3JlcG9ydC5qc29uIC0tbG9nLXdw
dHNjcmVlbnNob3QgJChCdWlsZC5BcnRpZmFjdFN0YWdpbmdEaXJlY3RvcnkpL3dwdF9zY3JlZW5z
aG90LnR4dCAtLWNoYW5uZWwgcHJldmlldyAtLWtpbGwtc2FmYXJpIHNhZmFyaQogICBkaXNwbGF5
TmFtZTogJ1J1biB0ZXN0cycKIC0gdGFzazogUHVibGlzaEJ1aWxkQXJ0aWZhY3RzQDEKICAgZGlz
cGxheU5hbWU6ICdQdWJsaXNoIHJlc3VsdHMnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2Z5aV9ob29rLnltbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvZnlpX2hvb2sueW1sCmluZGV4IDE3ODg1MDJlYjRmMGVjZTdkMjk1YzIxYjI4Zjc3YTA5ZGRl
NmYyOTguLmRmOTJjZTEwNjY0ZDRmNjk3Y2QwNDU2Y2ZjNTg2ZjFiNWNlYzMzYzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvZnlpX2hvb2sueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sCkBAIC0xMyw3ICsxMywxMSBA
QCBqb2JzOgogICAgIHZtSW1hZ2U6ICd1YnVudHUtMjAuMDQnCiAgIHN0ZXBzOgogICAtIGNoZWNr
b3V0OiBub25lCi0gIC0gc2NyaXB0OiBjdXJsIC1mIC1zIC1TIC1kICJhcnRpZmFjdD0ke3sgcGFy
YW1ldGVycy5hcnRpZmFjdE5hbWUgfX0iIC1YIFBPU1QgaHR0cHM6Ly93cHQuZnlpL2FwaS9jaGVj
a3MvYXp1cmUvJChCdWlsZC5CdWlsZElkKQorICAtIHNjcmlwdDogfAorICAgICAgc2V0IC1ldXgg
LW8gcGlwZWZhaWwKKyAgICAgIGN1cmwgLWYgLXMgLVMgLWQgImFydGlmYWN0PSR7eyBwYXJhbWV0
ZXJzLmFydGlmYWN0TmFtZSB9fSIgLVggUE9TVCBodHRwczovL3dwdC5meWkvYXBpL2NoZWNrcy9h
enVyZS8kKEJ1aWxkLkJ1aWxkSWQpCiAgICAgZGlzcGxheU5hbWU6ICdJbnZva2Ugd3B0LmZ5aSBo
b29rJwotICAtIHNjcmlwdDogY3VybCAtZiAtcyAtUyAtZCAiYXJ0aWZhY3Q9JHt7IHBhcmFtZXRl
cnMuYXJ0aWZhY3ROYW1lIH19IiAtWCBQT1NUIGh0dHBzOi8vc3RhZ2luZy53cHQuZnlpL2FwaS9j
aGVja3MvYXp1cmUvJChCdWlsZC5CdWlsZElkKQorICAtIHNjcmlwdDogfAorICAgICAgc2V0IC1l
dXggLW8gcGlwZWZhaWwKKyAgICAgIGN1cmwgLWYgLXMgLVMgLWQgImFydGlmYWN0PSR7eyBwYXJh
bWV0ZXJzLmFydGlmYWN0TmFtZSB9fSIgLVggUE9TVCBodHRwczovL3N0YWdpbmcud3B0LmZ5aS9h
cGkvY2hlY2tzL2F6dXJlLyQoQnVpbGQuQnVpbGRJZCkKICAgICBkaXNwbGF5TmFtZTogJ0ludm9r
ZSBzdGFnaW5nLndwdC5meWkgaG9vaycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2luc3RhbGxfY2VydHMueW1sCmluZGV4IDU2ODIxOTliMzg3M2EyNzllZGUwMzQ1YzYwY2Uz
N2RjMjgwZmEyYTIuLmJlZTVhYjA4NGUzN2ZlODA4OTYwMjE5ZDA5MmRiMmMwYTVhNjBmODEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbApA
QCAtMSw3ICsxLDkgQEAKIHN0ZXBzOgogLSBzY3JpcHQ6IHwKKyAgICBzZXQgLWV1eCAtbyBwaXBl
ZmFpbAogICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRz
LWNvbGxlY3Rpb24vYmxvYi9tYXN0ZXIvc3JjL3NjcmlwdHMvdHJ1c3Qtcm9vdC1jYS5zaAotICAg
IHN1ZG8gc2VjdXJpdHkgYWRkLXRydXN0ZWQtY2VydCAtZCAtciB0cnVzdFJvb3QgLWsgL0xpYnJh
cnkvS2V5Y2hhaW5zL1N5c3RlbS5rZXljaGFpbiB0b29scy9jZXJ0cy9jYWNlcnQucGVtCisgICAg
IyBvbmx5IHJ1biB0aGlzIG9uIG1hY09TIDwgMTEKKyAgICBbICIxMSIgPSAiYGVjaG8gLWUgJCgg
c3dfdmVycyAtcHJvZHVjdFZlcnNpb24gKVxcXG4xMSB8IHNvcnQgLVYgfCBoZWFkIC1uMWAiIF0g
fHwgc3VkbyBzZWN1cml0eSBhZGQtdHJ1c3RlZC1jZXJ0IC1kIC1yIHRydXN0Um9vdCAtayAvTGli
cmFyeS9LZXljaGFpbnMvU3lzdGVtLmtleWNoYWluIHRvb2xzL2NlcnRzL2NhY2VydC5wZW0KICAg
ZGlzcGxheU5hbWU6ICdJbnN0YWxsIHdlYi1wbGF0Zm9ybS50ZXN0IGNlcnRpZmljYXRlIChtYWNP
UyknCiAgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9T
J10sICdEYXJ3aW4nKSkKIC0gc2NyaXB0OiBjZXJ0dXRpbCDigJNhZGRzdG9yZSAtZW50ZXJwcmlz
ZSDigJNmICJSb290IiB0b29sc1xjZXJ0c1xjYWNlcnQucGVtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3Rh
bGxfY2hyb21lLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sCmluZGV4IDljY2RjNDliYTBlZTFm
YTQzODJjZjVlMDZjOThhMTQ5ODkzOGEzMzkuLjc1OTkzMjFiZTI0ODc3Nzg4ZWZkOGFhOTcwZjMx
OGZmNWM3ZDJmNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5z
dGFsbF9jaHJvbWUueW1sCkBAIC0yLDYgKzIsNyBAQCBzdGVwczoKICMgVGhlIGNvbmZsaWN0aW5n
IGdvb2dsZS1jaHJvbWUgYW5kIGNocm9tZWRyaXZlciBjYXNrcyBhcmUgZmlyc3QgdW5pbnN0YWxs
ZWQuCiAjIFRoZSByYXcgZ29vZ2xlLWNocm9tZS1kZXYgY2FzayBVUkwgaXMgdXNlZCB0byBieXBh
c3MgY2FjaGluZy4KIC0gc2NyaXB0OiB8CisgICAgc2V0IC1ldXggLW8gcGlwZWZhaWwKICAgICBI
T01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgdW5pbnN0YWxsIC0tY2FzayBnb29nbGUtY2hy
b21lIHx8IHRydWUKICAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgdW5pbnN0YWxs
IC0tY2FzayBjaHJvbWVkcml2ZXIgfHwgdHJ1ZQogICAgIGN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVi
dXNlcmNvbnRlbnQuY29tL0hvbWVicmV3L2hvbWVicmV3LWNhc2stdmVyc2lvbnMvbWFzdGVyL0Nh
c2tzL2dvb2dsZS1jaHJvbWUtZGV2LnJiID4gZ29vZ2xlLWNocm9tZS1kZXYucmIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvaW5zdGFsbF9maXJlZm94LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9maXJlZm94LnltbAppbmRleCA3
YjhjN2JlMDVmZWU5YmM2ZDZkYjk2MDlhMjFhNzFiOGNjOTNiMjZhLi43M2FmNTk3NjY1NTNmN2Vm
NWY0ZDQ2NDdkN2E5NGY4YjA5NzdhOGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZmlyZWZveC55
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCkBAIC0yLDYgKzIsNyBAQCBzdGVwczoKICMg
VGhpcyBpcyBlcXVpdmFsZW50IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL2Zp
cmVmb3gtbmlnaHRseWAsCiAjIGJ1dCB0aGUgcmF3IFVSTCBpcyB1c2VkIHRvIGJ5cGFzcyBjYWNo
aW5nLgogLSBzY3JpcHQ6IHwKKyAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAogICAgIGN1cmwgaHR0
cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0hvbWVicmV3L2hvbWVicmV3LWNhc2stdmVy
c2lvbnMvbWFzdGVyL0Nhc2tzL2ZpcmVmb3gtbmlnaHRseS5yYiA+IGZpcmVmb3gtbmlnaHRseS5y
YgogICAgIEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFPTEgYnJldyBpbnN0YWxsIC0tY2FzayBmaXJl
Zm94LW5pZ2h0bHkucmIKICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIEZpcmVmb3ggTmlnaHRseScK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9mb250cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZm9udHMueW1sCmlu
ZGV4IDM0OGViNzQ1NGUwNjRjYWQ1NWI4YTJlNmNlOWViZGY5NjcyMmU0ZGQuLjI3OWMyNjJjN2Vm
YWIwNzExZjIzMDAwNTQwNDdhM2Q1Yzc5NGNmZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9mb250
cy55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbApAQCAtMSw1ICsxLDcgQEAKIHN0ZXBzOgog
IyBJbnN0YWxsaWcgQWhlbSBpbiAvTGlicmFyeS9Gb250cyBpbnN0ZWFkIG9mIHVzaW5nIC0taW5z
dGFsbC1mb250cyBpcyBhCiAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMzgwMy4KLS0gc2NyaXB0OiBzdWRvIGNwIGZvbnRz
L0FoZW0udHRmIC9MaWJyYXJ5L0ZvbnRzCistIHNjcmlwdDogfAorICAgIHNldCAtZXV4IC1vIHBp
cGVmYWlsCisgICAgc3VkbyBjcCBmb250cy9BaGVtLnR0ZiAvTGlicmFyeS9Gb250cwogICBkaXNw
bGF5TmFtZTogJ0luc3RhbGwgQWhlbSBmb250JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3NhZmFy
aS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbAppbmRleCBkOTI5ZmZhNGRhOTI5NjkyOWEwN2Fi
MjEwODRjNTkyMTY3YzkxMjJiLi5jZGExYjUzMDJiNTllMWI5MjM4ZmY5ODc1MTE1OGQ5OGZhYWVm
Y2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfc2Fm
YXJpLnltbApAQCAtOCw3ICs4LDggQEAgc3RlcHM6CiAgIGNvbmRpdGlvbjogZXEodmFyaWFibGVz
WydzYWZhcmlkcml2ZXJfZGlhZ25vc2UnXSwgdHJ1ZSkKIC0gJHt7IGlmIGVxKHBhcmFtZXRlcnMu
Y2hhbm5lbCwgJ3ByZXZpZXcnKSB9fToKICAgLSBzY3JpcHQ6IHwKLSAgICAgIHNldCAtZXV4Cisg
ICAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAorICAgICAgZXhwb3J0IFNZU1RFTV9WRVJTSU9OX0NP
TVBBVD0wCiAgICAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgaW5zdGFsbCAtLWNh
c2sgdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgogICAgICAgIyBX
b3JrYXJvdW5kIGZvciBgc3VkbyBzYWZhcmRyaXZlciAtLWVuYWJsZWAgbm90IHdvcmtpbmcgb24g
Q2F0YWxpbmE6CiAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlcy8yMTc1MQpAQCAtMTksNyArMjAsOSBAQCBzdGVwczoKICAgICBkaXNwbGF5TmFt
ZTogJ0luc3RhbGwgU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldycKIC0gJHt7IGlmIGVxKHBhcmFt
ZXRlcnMuY2hhbm5lbCwgJ3N0YWJsZScpIH19OgogICAtIHNjcmlwdDogfAotICAgICAgc2V0IC1l
dXgKKyAgICAgIHNldCAtZXV4IC1vIHBpcGVmYWlsCisgICAgICBleHBvcnQgU1lTVEVNX1ZFUlNJ
T05fQ09NUEFUPTAKKyAgICAgIHN1ZG8gc29mdHdhcmV1cGRhdGUgLS1pbnN0YWxsICQoIHNvZnR3
YXJldXBkYXRlIC1sIHwgZ3JlcCAtbyAnXCogTGFiZWw6IFwoU2FmYXJpLipcKScgfCBzZWQgLWUg
J3MvKiBMYWJlbDogLy8nICkKICAgICAgIHN1ZG8gc2FmYXJpZHJpdmVyIC0tZW5hYmxlCiAgICAg
ICBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpIFdlYktpdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgMQogICAgIGRpc3BsYXlOYW1lOiAnQ29uZmlndXJlIFNhZmFy
aScKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJp
LXRlY2hub2xvZ3ktcHJldmlldy5yYgppbmRleCA1ODY3NWJkYWRkMDFiMzE1ZDhlYmY0ZTgyNGMz
ZTQ3YThjYTNkMDBkLi40OGY4N2RkNmM1YzRjOWJiYzhlZTc2OTVhNDE5OWQ1NDIzNjUyMDY3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zYWZhcmkt
dGVjaG5vbG9neS1wcmV2aWV3LnJiCkBAIC0xLDE5ICsxLDIwIEBACiBjYXNrICJzYWZhcmktdGVj
aG5vbG9neS1wcmV2aWV3IiBkbwotICBpZiBNYWNPUy52ZXJzaW9uIDw9IDpjYXRhbGluYQotICAg
IHZlcnNpb24gIjEyNSwwNzEtNDQ1MjctMjAyMTA1MjYtOTM0MzAyNDQtMDMzNC00ZmFlLTg3OGQt
NTY1MDJhNjU2MDAzIgotICAgIHNoYTI1NiAiNmVhODMwZWM1YzkxMDE2NjVlMThkNzdmMzFhN2Yy
MjBhMGZjOGFmYzM1YjlhYzAzNmVlMjlkNWVlM2RiZGQyMyIKLSAgZWxzZQotICAgIHZlcnNpb24g
IjEyNSwwNzEtNDU4OTktMjAyMTA1MjYtM2ZlNzM1OWMtMGYyMC00ODUwLWI2ZWMtZGE5YjE5NzEx
OWMyIgotICAgIHNoYTI1NiAiNjNlNDk2MWZkMGNjYTM0NWI1ODEyOGMwZWRiMzM2Mjc4NDdkMDJi
OTlhNzc2MTNjNTRjMGE4OWU2NDAyZDM2ZSIKKyAgaWYgTWFjT1MudmVyc2lvbiA9PSA6bW9udGVy
ZXkKKyAgICB2ZXJzaW9uICIxNDAsMDAyLTY5NTA3LTIwMjIwMjEwLTUyMTA5QjQ4LUM1QUItNEUy
MS05MUNCLUU5NDlBMUFCMEI2NiIKKyAgICB1cmwgImh0dHBzOi8vc2VjdXJlLWFwcGxkbmxkLmFw
cGxlLmNvbS9TVFAvI3t2ZXJzaW9uLmFmdGVyX2NvbW1hfS9TYWZhcmlUZWNobm9sb2d5UHJldmll
dy5kbWciCisgICAgc2hhMjU2ICIzZWYxMWI1YjhmZDM4OWU1MDk5OTk1MmU0NzVkYmM1NjIzOTgz
OTAwOWFkYzI2M2ZmNTBjNjQ5OGM5YjI1YTExIgorICBlbHNpZiBNYWNPUy52ZXJzaW9uID09IDpi
aWdfc3VyCisgICAgdmVyc2lvbiAiMTQwLDAwMi02OTYwMC0yMDIyMDIxMC02M0I5OUVEMS04NzJB
LTRGRjAtQTA2NS0zRTlENkI4MUI1ODMiCisgICAgdXJsICJodHRwczovL3NlY3VyZS1hcHBsZG5s
ZC5hcHBsZS5jb20vU1RQLyN7dmVyc2lvbi5hZnRlcl9jb21tYX0vU2FmYXJpVGVjaG5vbG9neVBy
ZXZpZXcuZG1nIgorICAgIHNoYTI1NiAiZTNhYjljYzA5YzcxNDg3ZTY4ZjY2ZWQ3N2VmNDEzMDQ4
YTNkNTdlOTdiZjM0NjEwN2NkNDUyNDMxYjYxOTlmZCIKICAgZW5kCiAKLSAgdXJsICJodHRwczov
L3NlY3VyZS1hcHBsZG5sZC5hcHBsZS5jb20vU1RQLyN7dmVyc2lvbi5hZnRlcl9jb21tYX0vU2Fm
YXJpVGVjaG5vbG9neVByZXZpZXcuZG1nIgogICBhcHBjYXN0ICJodHRwczovL2RldmVsb3Blci5h
cHBsZS5jb20vc2FmYXJpL2Rvd25sb2FkLyIKICAgbmFtZSAiU2FmYXJpIFRlY2hub2xvZ3kgUHJl
dmlldyIKICAgaG9tZXBhZ2UgImh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9zYWZhcmkvZG93
bmxvYWQvIgogCiAgIGF1dG9fdXBkYXRlcyB0cnVlCi0gIGRlcGVuZHNfb24gbWFjb3M6ICI+PSA6
Y2F0YWxpbmEiCisgIGRlcGVuZHNfb24gbWFjb3M6ICI+PSA6YmlnX3N1ciIKIAogICBwa2cgIlNh
ZmFyaSBUZWNobm9sb2d5IFByZXZpZXcucGtnIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3RveF9weXRlc3Qu
eW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS90b3hfcHl0ZXN0LnltbAppbmRleCAxMmVkNjZhOWEwMjA2ZjY4NjZmYjEyMGUyNjRi
ZTM5ZGM3ZTI5MmU0Li4zNzA0ZWNjNWJlZDlkNjIyNTc0Y2NiNzRjMjc1YTFiNWNmMTQ5YTNmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL3RveF9weXRlc3QueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55bWwKQEAgLTcs
NyArNyw5IEBAIHN0ZXBzOgogICBwYXJhbWV0ZXJzOgogICAgIHBhY2thZ2VzOiB0b3gKIAotLSBz
Y3JpcHQ6IHRveCAtYyAke3sgcGFyYW1ldGVycy5kaXJlY3RvcnkgfX0gLWUgJHt7IHBhcmFtZXRl
cnMudG94ZW52IH19IC0tIC0tanVuaXR4bWw9cmVzdWx0cy54bWwKKy0gc2NyaXB0OiB8CisgICAg
c2V0IC1ldXggLW8gcGlwZWZhaWwKKyAgICB0b3ggLWMgJHt7IHBhcmFtZXRlcnMuZGlyZWN0b3J5
IH19IC1lICR7eyBwYXJhbWV0ZXJzLnRveGVudiB9fSAtLSAtLWp1bml0eG1sPXJlc3VsdHMueG1s
CiAgIGRpc3BsYXlOYW1lOiAnUnVuIHRlc3RzJwogCiAtIHRhc2s6IFB1Ymxpc2hUZXN0UmVzdWx0
c0AyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwK
aW5kZXggNjNjN2U0NTgxMTI5N2EyZGQ1MzQyYjNiM2FiOTA5M2FjYWI2ZjVjZC4uYmNiODUzNmE1
Y2JhMGY3NDg4MGM1MWI0YzVjMmJlNThkYTE3ZTVhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9z
dHMueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbApAQCAtMSw1ICsxLDcgQEAKIHN0ZXBzOgot
LSBzY3JpcHQ6IC4vd3B0IG1ha2UtaG9zdHMtZmlsZSB8IHN1ZG8gdGVlIC1hIC9ldGMvaG9zdHMK
Ky0gc2NyaXB0OiB8CisgICAgc2V0IC1ldXggLW8gcGlwZWZhaWwKKyAgICAuL3dwdCBtYWtlLWhv
c3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAvZXRjL2hvc3RzCiAgIGRpc3BsYXlOYW1lOiAnVXBkYXRl
IGhvc3RzIChtYWNPUyknCiAgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJs
ZXNbJ0FnZW50Lk9TJ10sICdEYXJ3aW4nKSkKIC0gcG93ZXJzaGVsbDogfApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDU1YzY5MmI1ZTYwNzcwZjdmOWJhMDFkYTFkZTdjNGQzZWI2NGQ2NDEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvUkVBRE1FLm1kCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9hZmZlY3RlZF90ZXN0cy55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NoZWNrb3V0LnltbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2xlYW51cF93aW4xMC55
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2F6dXJlL2NvbS5hcHBsZS5TYWZhcmlUZWNobm9sb2d5UHJldmlldy5wbGlzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hv
b2sueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9p
bnN0YWxsX2VkZ2UueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRz
LnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3NhZmFyaS55bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3Bp
cF9pbnN0YWxsLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvcHVibGlzaF9sb2dzLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3kt
cHJldmlldy5yYgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0LnltbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBk
YXRlX2hvc3RzLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9k
aWZmLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9jaV9idWlsdF9kaWZmLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5k
ZXggZjhhZTNlNjFiZjc1NmQ5N2M3OGUyZDk1ODkxMjFiN2Q2MDEwNjZmYi4uZmFkOTQ2ZDI5NzNh
NjIxNWNhNWM0YzMwNmJkZmYxOTRiYWU3ZTQyZQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWls
dF9kaWZmLnNoCkBAIC0yMiw3ICsyMiw3IEBAIG1haW4oKSB7CiAgICAgICAgICdodG1sL2NhbnZh
cy9vZmZzY3JlZW4vdGV4dC8yZC50ZXh0LmRyYXcuc3Ryb2tlLmJhc2ljLnBuZycKICAgICApCiAK
LSAgICAuL3VwZGF0ZS1idWlsdC10ZXN0cy5zaAorICAgIC4vd3B0IHVwZGF0ZS1idWlsdAogICAg
IGdpdCB1cGRhdGUtaW5kZXggLS1hc3N1bWUtdW5jaGFuZ2VkICR7ZXhjbHVkZWRbKl19CiAgICAg
Z2l0IGRpZmYgLS1leGl0LWNvZGUKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNo
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aV9yZXNvdXJjZXNfdW5pdHRlc3Quc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9jaV90b29sc19pbnRlZ3JhdGlvbl90ZXN0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc19pbnRlZ3JhdGlvbl90
ZXN0LnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNf
dW5pdHRlc3Quc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAx
MDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJf
aW5mcmFzdHJ1Y3R1cmUuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uCmluZGV4IDNmYjZkMjIyYjE3ZGVkOWY3OGIwMjYw
NzUwOWQwOTBiMDY2MWZiNGQuLmQxNTZhMzJlNjUyYzFhNTlkZmY5MGRlMGE3MDNjZjlhOWE0OTM3
NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24KQEAgLTIwLDYgKzIwLDE2
IEBACiAgICAgImhlbHAiOiAiUmVnZW5lcmF0ZSB0aGUgV1BUIGNlcnRpZmljYXRlcyIsCiAgICAg
InZpcnR1YWxlbnYiOiBmYWxzZQogICB9LAorICAidXBkYXRlLWJ1aWx0IjogeworICAgICJwYXRo
IjogInVwZGF0ZV9idWlsdC5weSIsCisgICAgInNjcmlwdCI6ICJydW4iLAorICAgICJwYXJzZXIi
OiAiZ2V0X3BhcnNlciIsCisgICAgImhlbHAiOiAiVXBkYXRlIGJ1aWx0IHRlc3RzIiwKKyAgICAi
dmlydHVhbGVudiI6IHRydWUsCisgICAgInJlcXVpcmVtZW50cyI6IFsKKyAgICAgICAgInJlcXVp
cmVtZW50c19idWlsZC50eHQiCisgICAgXQorICB9LAogICAidGMtZG93bmxvYWQiOiB7CiAgICAg
InBhdGgiOiAidGMvZG93bmxvYWQucHkiLAogICAgICJzY3JpcHQiOiAicnVuIiwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
ZXBvY2hzX3VwZGF0ZS5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvZXBvY2hzX3VwZGF0ZS5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2ludGVyZmFjZXNfdXBkYXRlLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9pbnRlcmZhY2VzX3VwZGF0ZS5zaApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3JlcXVpcmVtZW50c19idWls
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3JlcXVpcmVtZW50c19idWlsZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc2MTAyZGMzZTY3NTU3NmY1
OWI4NzVlNWY5MzE5ZTY0MTZiMzUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcmVxdWlyZW1lbnRzX2J1aWxk
LnR4dApAQCAtMCwwICsxLDQgQEAKK2NhaXJvY2ZmaT09MS4zLjAKK2ZvbnR0b29scz09My4xMy4x
CitweXlhbWwKK2dlbnNoaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW5fdGMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQpvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGM4MjEzYjAzMWZjMjE4NjE2MzhmMzI5Y2YxMzE1OWU4
MGMwMjEwY2UuLjdlNzU5MjE4YzA5OGY0MGI0MzJkZDhkYzg4OTc5MGE0NjNmNjdiYTEKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW5f
dGMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9ydW5fdGMucHkKQEAgLTk2LDEyICs5NiwxNSBAQCBkZWYgZ2V0X3BhcnNlcigpOgog
ICAgIHAuYWRkX2FyZ3VtZW50KCItLXh2ZmIiLAogICAgICAgICAgICAgICAgICAgIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAgICAgICAgaGVscD0iU3RhcnQgeHZmYiIpCi0gICAg
cC5hZGRfYXJndW1lbnQoIi0tY2hlY2tvdXQiLAotICAgICAgICAgICAgICAgICAgIGhlbHA9IlJl
dmlzaW9uIHRvIGNoZWNrb3V0IGJlZm9yZSBzdGFydGluZyBqb2IiKQogICAgIHAuYWRkX2FyZ3Vt
ZW50KCItLWluc3RhbGwtY2VydGlmaWNhdGVzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVs
dD1Ob25lLAogICAgICAgICAgICAgICAgICAgIGhlbHA9Ikluc3RhbGwgd2ViLXBsYXRmb3JtLnRl
c3QgY2VydGlmaWNhdGVzIHRvIFVBIHN0b3JlIikKICAgICBwLmFkZF9hcmd1bWVudCgiLS1uby1p
bnN0YWxsLWNlcnRpZmljYXRlcyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PU5vbmUs
CiAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgaW5zdGFsbCB3ZWItcGxhdGZvcm0udGVz
dCBjZXJ0aWZpY2F0ZXMgdG8gVUEgc3RvcmUiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLW5vLXNl
dHVwLXJlcG9zaXRvcnkiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ic2V0dXBfcmVwb3Np
dG9yeSIsCisgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgcnVuIGFueSByZXBvc2l0b3J5
IHNldHVwIHN0ZXBzLCBpbnN0ZWFkIHVzZSB0aGUgZXhpc3Rpbmcgd29ya3RyZWUuICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICJUaGlzIGlzIHVzZWZ1bCBmb3IgbG9jYWwgdGVzdGluZy4iKQor
ICAgIHAuYWRkX2FyZ3VtZW50KCItLWNoZWNrb3V0IiwKKyAgICAgICAgICAgICAgICAgICBoZWxw
PSJSZXZpc2lvbiB0byBjaGVja291dCBiZWZvcmUgc3RhcnRpbmcgam9iIikKICAgICBwLmFkZF9h
cmd1bWVudCgiLS1yZWYiLAogICAgICAgICAgICAgICAgICAgIGhlbHA9IkdpdCByZWYgZm9yIHRo
ZSBjb21taXQgdGhhdCBzaG91bGQgYmUgcnVuIikKICAgICBwLmFkZF9hcmd1bWVudCgiLS1oZWFk
LXJldiIsCkBAIC0zOTgsNyArNDAxLDggQEAgZGVmIG1haW4oKToKICAgICBpZiBldmVudDoKICAg
ICAgICAgc2V0X3ZhcmlhYmxlcyhldmVudCkKIAotICAgIHNldHVwX3JlcG9zaXRvcnkoYXJncykK
KyAgICBpZiBhcmdzLnNldHVwX3JlcG9zaXRvcnk6CisgICAgICAgIHNldHVwX3JlcG9zaXRvcnko
YXJncykKIAogICAgICMgSGFjayBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKICAgICBpZiBh
cmdzLnNjcmlwdCBpbiBbInJ1bi1hbGwiLCAibGludCIsICJ1cGRhdGVfYnVpbHQiLCAidG9vbHNf
dW5pdHRlc3QiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rhc2tjbHVzdGVyLXJ1bi5weQpv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9f
X2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAy
Li5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19f
aW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZGVj
aXNpb24ucHkKaW5kZXggZDE5ZmY3NjkyY2Y0ZjYzMDJjYTMzZDkyN2M1MjMwODIwNTAyNDEzMi4u
ZjVjMTg0NDYwZTFjNTViOTVkNmUwNTYzMWMxNTU1OTE5ZjNlZjBlNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNp
c2lvbi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5CkBAIC0xMDAsNiArMTAwLDMxIEBAIGRlZiBnZXRfZXh0
cmFfam9icyhldmVudCk6CiAgICAgcmV0dXJuIGpvYnMKIAogCitkZWYgZmlsdGVyX2V4Y2x1ZGVk
X3VzZXJzKHRhc2tzLCBldmVudCk6CisgICAgIyBTb21lIHVzZXJzJyBwdWxsIHJlcXVlc3RzIGFy
ZSBleGNsdWRlZCBmcm9tIHRhc2tzLAorICAgICMgc3VjaCBhcyBwdWxsIHJlcXVlc3RzIGZyb20g
YXV0b21hdGVkIGV4cG9ydHMuCisgICAgdHJ5OgorICAgICAgICBzdWJtaXR0ZXIgPSBldmVudFsi
cHVsbF9yZXF1ZXN0Il1bInVzZXIiXVsibG9naW4iXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAg
ICAgICAgIyBKdXN0IGlnbm9yZSBleGNsdWRlZCB1c2VycyBpZiB0aGUKKyAgICAgICAgIyB1c2Vy
bmFtZSBjYW5ub3QgYmUgcHVsbGVkIGZyb20gdGhlIGV2ZW50LgorICAgICAgICBsb2dnZXIuZGVi
dWcoIlVuYWJsZSB0byByZWFkIHVzZXJuYW1lIGZyb20gZXZlbnQuIENvbnRpbnVpbmcuIikKKyAg
ICAgICAgcmV0dXJuCisKKyAgICBleGNsdWRlZF90YXNrcyA9IFtdCisgICAgIyBBIHNlcGFyYXRl
IGxpc3Qgb2YgaXRlbXMgZm9yIHRhc2tzIGlzIG5lZWRlZCB0byBpdGVyYXRlIG92ZXIKKyAgICAj
IGJlY2F1c2UgcmVtb3ZpbmcgYW4gaXRlbSBkdXJpbmcgaXRlcmF0aW9uIHdpbGwgcmFpc2UgYW4g
ZXJyb3IuCisgICAgZm9yIG5hbWUsIHRhc2sgaW4gbGlzdCh0YXNrcy5pdGVtcygpKToKKyAgICAg
ICAgaWYgc3VibWl0dGVyIGluIHRhc2suZ2V0KCJleGNsdWRlLXVzZXJzIiwgW10pOgorICAgICAg
ICAgICAgZXhjbHVkZWRfdGFza3MuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICB0YXNrcy5wb3Ao
bmFtZSkgICMgcmVtb3ZpbmcgZXhjbHVkZWQgdGFzaworICAgIGlmIGV4Y2x1ZGVkX3Rhc2tzOgor
ICAgICAgICBsb2dnZXIuaW5mbygKKyAgICAgICAgICAgIGYiVGFza3MgZXhjbHVkZWQgZm9yIHVz
ZXIge3N1Ym1pdHRlcn06XG4gKiAiICsKKyAgICAgICAgICAgICJcbiAqICIuam9pbihleGNsdWRl
ZF90YXNrcykKKyAgICAgICAgKQorCisKIGRlZiBmaWx0ZXJfc2NoZWR1bGVfaWYoZXZlbnQsIHRh
c2tzKToKICAgICBzY2hlZHVsZWQgPSBPcmRlcmVkRGljdCgpCiAgICAgcnVuX2pvYnMgPSBOb25l
CkBAIC0zMzgsNiArMzYzLDcgQEAgZGVmIGRlY2lkZShldmVudCk6CiAKICAgICB0cmlnZ2VyZWRf
dGFza3MgPSBmaWx0ZXJfdHJpZ2dlcnMoZXZlbnQsIGFsbF90YXNrcykKICAgICBzY2hlZHVsZWRf
dGFza3MgPSBmaWx0ZXJfc2NoZWR1bGVfaWYoZXZlbnQsIHRyaWdnZXJlZF90YXNrcykKKyAgICBm
aWx0ZXJfZXhjbHVkZWRfdXNlcnMoc2NoZWR1bGVkX3Rhc2tzLCBldmVudCkKIAogICAgIGxvZ2dl
ci5pbmZvKCJVTlNDSEVEVUxFRCBUQVNLUzpcbiAgJXMiICUgIlxuICAiLmpvaW4oc29ydGVkKHNl
dChhbGxfdGFza3Mua2V5cygpKSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoc2NoZWR1bGVkX3Rhc2tzLmtleXMoKSkpKSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCmluZGV4IDY0ODRlNjU0
YWM4YjQ4OWFjMzJlZWE4MGQ1YzBkNDUyYmVlMWRiMWQuLjRjNzQ2MmQxYWU1NDQ2NWU2YzczMjMy
MDM4MTk5ZjIwODI5OGFhMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy90
ZXN0LnltbApAQCAtMjk2LDkgKzI5NiwxMyBAQCB0YXNrczoKICAgICAgICAgLSB2YXJzOgogICAg
ICAgICAgICAgYnJvd3NlcjogZmlyZWZveAogICAgICAgICAgICAgY2hhbm5lbDogbmlnaHRseQor
ICAgICAgICAgICAgc3RhYmlsaXR5LWV4Y2x1ZGUtdXNlcnM6CisgICAgICAgICAgICAgIC0gbW96
LXdwdHN5bmMtYm90CiAgICAgICAgIC0gdmFyczoKICAgICAgICAgICAgIGJyb3dzZXI6IGNocm9t
ZQogICAgICAgICAgICAgY2hhbm5lbDogZGV2CisgICAgICAgICAgICBzdGFiaWxpdHktZXhjbHVk
ZS11c2VyczoKKyAgICAgICAgICAgICAgLSBjaHJvbWl1bS13cHQtZXhwb3J0LWJvdAogICAgICAg
ZG86CiAgICAgICAgIC0gd3B0LSR7dmFycy5icm93c2VyfS0ke3ZhcnMuY2hhbm5lbH0tc3RhYmls
aXR5OgogICAgICAgICAgICAgdXNlOgpAQCAtMzIyLDYgKzMyNiw3IEBAIHRhc2tzOgogICAgICAg
ICAgICAgICAtLXZlcmlmeS1yZXBlYXQtbG9vcD0wCiAgICAgICAgICAgICAgIC0tdmVyaWZ5LXJl
cGVhdC1yZXN0YXJ0PTEwCiAgICAgICAgICAgICAgIC0tZ2l0aHViLWNoZWNrcy10ZXh0LWZpbGU9
Ii9ob21lL3Rlc3QvYXJ0aWZhY3RzL2NoZWNrcnVuLm1kIgorICAgICAgICAgICAgZXhjbHVkZS11
c2VyczogJHt2YXJzLnN0YWJpbGl0eS1leGNsdWRlLXVzZXJzfQogCiAgICAgICAgIC0gd3B0LSR7
dmFycy5icm93c2VyfS0ke3ZhcnMuY2hhbm5lbH0tcmVzdWx0czoKICAgICAgICAgICAgIHVzZToK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvdGFza3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDIzYzI1MWI2OTBlNjM2OTYzY2I3MTA4ZmVk
MTM0Y2ViMTdlMTA2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGMvdGFza3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rhc2tzL3Rlc3QueW1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90
Yy90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTE2ZWZkYzllMWViYjBmNDc1YjJkN2NjOTdhY2I1MWExM2E2MzBkMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9lcG9jaHNfZGFp
bHlfcHVzaF9ldmVudC5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9tYXN0ZXJfcHVzaF9ldmVudC5qc29uCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0
ZGF0YS9wcl9ldmVudC5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy9fX2luaXRfXy5weQppbmRleCBh
NjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQz
NGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL19faW5pdF9fLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGMvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
ZXN0cy90ZXN0X3ZhbGlkLnB5CmluZGV4IGZmNmNhN2E0YzQ4YzJiZjRkODVjODc2ZDU5MGY4ZjA3
Nzg3MmIwNGUuLmVkZTNiZGJhN2M1ZGI2OTU0YjlmZmI3MmY2YzJlNDNmMDA5MDM5OGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGVzdHMvdGVzdF92YWxpZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKQEAgLTM3
LDYgKzM3LDI4IEBAIGRlZiB0ZXN0X3ZlcmlmeV90YXNrY2x1c3Rlcl95bWwoKToKICAgICAgICAg
anNvbmUucmVuZGVyKHRlbXBsYXRlLCBjb250ZXh0KQogCiAKK0BweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiZXZlbnRfcGF0aCxleHBlY3RlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygi
cHJfZXZlbnQuanNvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm96ZW5zZXQoWyJs
aW50IiwgIndwdC1jaHJvbWUtZGV2LXN0YWJpbGl0eSJdKSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICgicHJfZXZlbnRfdGVzdHNfYWZmZWN0ZWQuanNvbiIsIGZyb3plbnNldChbImxpbnQi
XSkpXQorICAgICAgICAgICAgICAgICAgICAgICAgICkKK2RlZiB0ZXN0X2V4Y2x1ZGVfdXNlcnMo
ZXZlbnRfcGF0aCwgZXhwZWN0ZWQpOgorICAgICIiIlZlcmlmeSB0aGF0IHRhc2tzIGV4Y2x1ZGVk
IGJ5IHRoZSBQUiBzdWJtaXR0ZXIgYXJlIHByb3Blcmx5IGV4Y2x1ZGVkIiIiCisgICAgdGFza3Mg
PSB7CisgICAgICAgICJsaW50IjogeworICAgICAgICAgICAgImNvbW1hbmRzIjogIndwdCBleGFt
cGxlIgorICAgICAgICB9LAorICAgICAgICAid3B0LWNocm9tZS1kZXYtc3RhYmlsaXR5Ijogewor
ICAgICAgICAgICAgImNvbW1hbmRzIjogIndwdCBleGFtcGxlIiwKKyAgICAgICAgICAgICJleGNs
dWRlLXVzZXJzIjogWyJjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCJdCisgICAgICAgIH0KKyAgICB9
CisgICAgd2l0aCBvcGVuKGRhdGFfcGF0aChldmVudF9wYXRoKSwgZW5jb2Rpbmc9InV0ZjgiKSBh
cyBmOgorICAgICAgICBldmVudCA9IGpzb24ubG9hZChmKQorICAgICAgICBkZWNpc2lvbi5maWx0
ZXJfZXhjbHVkZWRfdXNlcnModGFza3MsIGV2ZW50KQorICAgICAgICBhc3NlcnQgc2V0KHRhc2tz
KSA9PSBleHBlY3RlZAorCisKIGRlZiB0ZXN0X3ZlcmlmeV9wYXlsb2FkKCk6CiAgICAgIiIiVmVy
aWZ5IHRoYXQgdGhlIGRlY2lzaW9uIHRhc2sgcHJvZHVjZXMgdGFza3Mgd2l0aCBhIHZhbGlkIHBh
eWxvYWQiIiIKICAgICBmcm9tIHRvb2xzLmNpLnRjLmRlY2lzaW9uIGltcG9ydCBkZWNpZGUKQEAg
LTE0NSw3ICsxNjcsNiBAQCBkZWYgdGVzdF92ZXJpZnlfcGF5bG9hZCgpOgogICAgICAgJ3dwdC1m
aXJlZm94LW5pZ2h0bHktc3RhYmlsaXR5JywKICAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXJl
c3VsdHMnLAogICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVzdWx0cy13aXRob3V0LWNoYW5n
ZXMnLAotICAgICAgJ3dwdC1jaHJvbWUtZGV2LXN0YWJpbGl0eScsCiAgICAgICAnd3B0LWNocm9t
ZS1kZXYtcmVzdWx0cycsCiAgICAgICAnd3B0LWNocm9tZS1kZXYtcmVzdWx0cy13aXRob3V0LWNo
YW5nZXMnLAogICAgICAgJ2xpbnQnLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMv
dGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwNThl
ZmUyZGRiNTBmZjk2OTU5Y2U0YTZhMDI1MTlkOTM5NWQwMjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rl
c3RfZGVjaXNpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdGFza2dyYXBoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlk
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3RjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjkyMzRjNmFkMTdlY2U4OWVhYTdlZGZkZGY0MTRjNzgxOTkw
MDg0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9SRUFETUUu
bWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93bmxvYWQucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2dpdGh1Yl9jaGVja3Nf
b3V0cHV0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90Yy9zaW5rX3Rhc2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy9fX2lu
aXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAx
YzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90ZXN0cy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAg
QEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGly
ZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1Yjk3Y2IwNzgxZGVmOTY4ZGViY2FjNGM2OWI4OGY3NDNkNjIyZjI0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90ZXN0cy90ZXN0X2pvYnMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdXBkYXRlX2J1aWx0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS91cGRhdGVfYnVpbHQu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWFkYWJhNjRmNWRiNTI4ZDA5NzM5OTUyMDRhYjM2M2U0M2MwOTYxYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdXBkYXRlX2J1aWx0LnB5CkBAIC0wLDAgKzEsNjkgQEAKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9jZXNzCitmcm9tIGFyZ3BhcnNlIGltcG9y
dCBBcmd1bWVudFBhcnNlcgorCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKK3dwdF9y
b290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCisKK3NjcmlwdHMgPSB7CisgICAgImNhbnZhcyI6
IFsiaHRtbC9jYW52YXMvdG9vbHMvZ2VudGVzdC5weSJdLAorICAgICJjb25mb3JtYW5jZS1jaGVj
a2VycyI6IFsiY29uZm9ybWFuY2UtY2hlY2tlcnMvdG9vbHMvZGwucHkiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY29uZm9ybWFuY2UtY2hlY2tlcnMvdG9vbHMvaW5zLWRlbC1kYXRl
dGltZS5weSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25mb3JtYW5jZS1jaGVj
a2Vycy90b29scy9waWN0dXJlLnB5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv
bmZvcm1hbmNlLWNoZWNrZXJzL3Rvb2xzL3VybC5weSJdLAorICAgICJjc3MtdWkiOiBbImNzcy9j
c3MtdWkvdG9vbHMvYXBwZWFyYW5jZS1idWlsZC13ZWJraXQtcmVmdGVzdHMucHkiXSwKKyAgICAj
IEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMv
MzIwNjAKKyAgICAjICJjc3MtdGV4dCI6IFsiY3NzL2Nzcy10ZXh0L2xpbmUtYnJlYWtpbmcvdG9v
bHMvZ2VuZXJhdGUtc2VnbWVudC1icmVhay10cmFuc2Zvcm1hdGlvbi1ydWxlcy10ZXN0cy5weSJd
LAorICAgICMgImNzcy10ZXh0LWRlY29yIjogWyJjc3MvY3NzLXRleHQtZGVjb3IvdG9vbHMvZ2Vu
ZXJhdGUtdGV4dC1lbXBoYXNpcy1saW5lLWhlaWdodC10ZXN0cy5weSIsCisgICAgIyAgICAgICAg
ICAgICAgICAgICAgImNzcy9jc3MtdGV4dC1kZWNvci90b29scy9nZW5lcmF0ZS10ZXh0LWVtcGhh
c2lzLXBvc2l0aW9uLXByb3BlcnR5LXRlc3RzLnB5IiwKKyAgICAjICAgICAgICAgICAgICAgICAg
ICAiY3NzL2Nzcy10ZXh0LWRlY29yL3Rvb2xzL2dlbmVyYXRlLXRleHQtZW1waGFzaXMtcnVieS10
ZXN0cy5weSIsCisgICAgIyAgICAgICAgICAgICAgICAgICAgImNzcy9jc3MtdGV4dC1kZWNvci90
b29scy9nZW5lcmF0ZS10ZXh0LWVtcGhhc2lzLXN0eWxlLXByb3BlcnR5LXRlc3RzLnB5Il0sCisg
ICAgImh0bWw1bGliIjogWyJodG1sL3Rvb2xzL3VwZGF0ZV9odG1sNWxpYl90ZXN0cy5weSJdLAor
ICAgICJpbmZyYXN0cnVjdHVyZSI6IFsiaW5mcmFzdHJ1Y3R1cmUvYXNzdW1wdGlvbnMvdG9vbHMv
YWhlbS1nZW5lcmF0ZS10YWJsZS5weSJdLAorICAgICJtaW1lc25pZmYiOiBbIm1pbWVzbmlmZi9t
aW1lLXR5cGVzL3Jlc291cmNlcy9nZW5lcmF0ZWQtbWltZS10eXBlcy5weSJdLAorICAgICJzcGVj
dWxhdGl2ZS1wYXJzaW5nIjogWyJodG1sL3N5bnRheC9zcGVjdWxhdGl2ZS1wYXJzaW5nL3Rvb2xz
L2dlbmVyYXRlLnB5Il0KK30KKworCitkZWYgZ2V0X3BhcnNlcigpOgorICAgIHBhcnNlciA9IEFy
Z3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWxpc3QiLCBhY3Rpb249
InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTGlzdCBzdWl0ZXMg
dGhhdCBjYW4gYmUgdXBkYXRlZCBhbmQgdGhlIHJlbGF0ZWQgc2NyaXB0IGZpbGVzIikKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUiLCBuYXJncz0iKiIsIGNob2ljZXM9c2NyaXB0
cy5rZXlzKCksIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlN1
aXRlcyB0byB1cGRhdGUgKGRlZmF1bHQgaXMgdG8gdXBkYXRlIGV2ZXJ5dGhpbmcpIikKKyAgICBy
ZXR1cm4gcGFyc2VyCisKKworZGVmIGxpc3Rfc3VpdGVzKGluY2x1ZGUpOgorICAgIGZvciBuYW1l
LCBzY3JpcHRfcGF0aHMgaW4gc2NyaXB0cy5pdGVtcygpOgorICAgICAgICBpZiBuYW1lIGluIGlu
Y2x1ZGU6CisgICAgICAgICAgICBwcmludChuYW1lKQorICAgICAgICAgICAgZm9yIHNjcmlwdF9w
YXRoIGluIHNjcmlwdF9wYXRoczoKKyAgICAgICAgICAgICAgICBwcmludChmIiAgICB7c2NyaXB0
X3BhdGh9IikKKworCitkZWYgcnVuKHZlbnYsICoqa3dhcmdzKToKKyAgICBpbmNsdWRlID0ga3dh
cmdzWyJpbmNsdWRlIl0KKyAgICBpZiBpbmNsdWRlIGlzIE5vbmU6CisgICAgICAgIGluY2x1ZGUg
PSBsaXN0KHNjcmlwdHMua2V5cygpKQorCisgICAgaWYga3dhcmdzWyJsaXN0Il06CisgICAgICAg
IGxpc3Rfc3VpdGVzKGluY2x1ZGUpCisgICAgICAgIHJldHVybiAwCisKKyAgICBmYWlsZWQgPSBG
YWxzZQorCisgICAgZm9yIHRhcmdldCBpbiBpbmNsdWRlOgorICAgICAgICBmb3Igc2NyaXB0IGlu
IHNjcmlwdHNbdGFyZ2V0XToKKyAgICAgICAgICAgIHNjcmlwdF9wYXRoID0gc2NyaXB0LnJlcGxh
Y2UoIi8iLCBvcy5wYXRoLnNlcCkKKyAgICAgICAgICAgIGNtZCA9IFtvcy5wYXRoLmpvaW4odmVu
di5iaW5fcGF0aCwgInB5dGhvbjMiKSwgb3MucGF0aC5qb2luKHdwdF9yb290LCBzY3JpcHRfcGF0
aCldCisgICAgICAgICAgICBsb2dnZXIuaW5mbyhmIlJ1bm5pbmcgeycgJy5qb2luKGNtZCl9IikK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwo
Y21kLCBjd2Q9b3MucGF0aC5kaXJuYW1lKHNjcmlwdF9wYXRoKSkKKyAgICAgICAgICAgIGV4Y2Vw
dCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICAgICBsb2dnZXIu
ZXJyb3IoZiJVcGRhdGUgc2NyaXB0IHtzY3JpcHR9IGZhaWxlZCIpCisgICAgICAgICAgICAgICAg
ZmFpbGVkID0gVHJ1ZQorCisgICAgcmV0dXJuIDEgaWYgZmFpbGVkIGVsc2UgMApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdjYTlkZGQwYTAzNDY4ODZjNjU4OWUzYTk0OGE0OTc5Y2RmZTMxYzkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDMyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291
cmNlc191bml0dGVzdC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfaW50ZWdyYXRpb25fdGVzdC5zaAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRl
c3Quc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvZXBvY2hzX3VwZGF0
ZS5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvaW50ZXJmYWNlc191cGRhdGUuc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21ha2VfaG9zdHNfZmlsZS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbWFuaWZlc3RfYnVp
bGQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3JlZ2VuX2NlcnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9ydW5fdGMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rhc2tjbHVzdGVyLXJ1bi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5z
aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoCm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZmMyNTVhZTgzZjIyMTlkM2UzMmE4NTlmMGQ2Mzc0NWVk
NjgyYjQzNi4uYWRmZGY0MWFlNzM4MTJkZTE3Nzk3OGFjMDdmODdkNmM4ZWIxMGIxMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNp
dGVfYnVpbGQuc2gKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoCkBAIC0xMCw3ICsxMCw4IEBAIHNvdXJjZV9y
ZXZpc2lvbj0kKGdpdCByZXYtcGFyc2UgSEVBRCkKICMgd3B0LXByLWJvdC4KICMKICMgaHR0cHM6
Ly9oZWxwLmdpdGh1Yi5jb20vZW4vYXJ0aWNsZXMvZ2VuZXJpYy1qZWt5bGwtYnVpbGQtZmFpbHVy
ZXMKLXJlbW90ZV91cmw9aHR0cHM6Ly8ke0RFUExPWV9UT0tFTn1AZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0LmdpdAorcmVtb3RlX3VybD1odHRwczovLyR7REVQTE9ZX1RPS0VOfUBn
aXRodWIuY29tLyR7R0lUSFVCX1JFUE9TSVRPUll9LmdpdAord3B0X3Jvb3Q9JFBXRAogCiBmdW5j
dGlvbiBqc29uX3Byb3BlcnR5IHsKICAgY2F0ICR7MX0gfCBcCkBAIC0zMCwxOSArMzEsMjMgQEAg
Z2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIndwdC1wci1ib3QiCiAKICMgUHJlcGFyZSB0
aGUgb3V0cHV0IGRpcmVjdG9yeSBzbyB0aGF0IHRoZSBuZXcgYnVpbGQgY2FuIGJlIHB1c2hlZCB0
byB0aGUKICMgcmVwb3NpdG9yeSBhcyBhbiBpbmNyZW1lbnRhbCBjaGFuZ2UgdG8gdGhlIHByaW9y
IGJ1aWxkLgotbWtkaXIgLXAgZG9jcy9fYnVpbGQvaHRtbAotY2QgZG9jcy9fYnVpbGQvaHRtbAor
bWtkaXIgLXAgZG9jcy9fYnVpbGQKK2NkIGRvY3MvX2J1aWxkCiBnaXQgaW5pdAogZ2l0IGZldGNo
IC0tZGVwdGggMSAke3JlbW90ZV91cmx9IGdoLXBhZ2VzCiBnaXQgY2hlY2tvdXQgRkVUQ0hfSEVB
RAogZ2l0IHJtIC1yZiAuCiAKICMgQnVpbGQgdGhlIHdlYnNpdGUKLWNkIC4uLy4uCi1waXAgaW5z
dGFsbCAtciByZXF1aXJlbWVudHMudHh0Ci1tYWtlIGh0bWwKK3Vuc2V0IE5PREVfRU5WCitjZCAk
e3dwdF9yb290fS9kb2NzCitucG0gaW5zdGFsbCAuCitleHBvcnQgUEFUSD0iJFBXRC9ub2RlX21v
ZHVsZXMvLmJpbjokUEFUSCIKK2NkICR7d3B0X3Jvb3R9CiAKLWNkIF9idWlsZC9odG1sCisuL3dw
dCBidWlsZC1kb2NzCisKK2NkIGRvY3MvX2J1aWxkCiAjIENvbmZpZ3VyZSBETlMKIGVjaG8gd2Vi
LXBsYXRmb3JtLXRlc3RzLm9yZyA+IENOQU1FCiAjIERpc2FibGUgSmVreWxsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tl
ci8uYmFzaHJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9kb2NrZXIvLmJhc2hyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmUwM2M0ODlhYTUyODM2MDBjNDYwZTEy
YWY0YjYzODY5MjMxMWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvLmJhc2hyYwpAQCAtMCwwICsxLDQg
QEAKK2Z1bmN0aW9uIHh2ZmJfc3RhcnQoKSB7CisgICAgR0VPTUVUUlk9IiRTQ1JFRU5fV0lEVEgi
IngiIiRTQ1JFRU5fSEVJR0hUIiJ4IiIkU0NSRUVOX0RFUFRIIgorICAgIHh2ZmItcnVuIC0tc2Vy
dmVyLWFyZ3M9Ii1zY3JlZW4gMCAkR0VPTUVUUlkgLWFjICtleHRlbnNpb24gUkFORFIiICRACit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2RvY2tlci9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVh
NTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3
NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5
CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2Vh
cmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24v
RG9ja2VyZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAxZjk4ZTRkNGRmMGU3
Zjc1MDFiYjVkNzA1N2QxZDUyODIyMWJkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL0RvY2tlcmZpbGUKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLUZST00gcHl0aG9uOjItc3RyZXRjaAotCi1SVU4gYXB0LWdldCB1cGRh
dGUgJiYgYXB0LWdldCBpbnN0YWxsIC0teWVzIGdpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlv
bi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMjRiMmY0MDlhZjE3MmM5ODYzMWI5YmFhMTRjMzgxZmU5
M2I4MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9j
dW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZnJvbnRlbmQu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Rv
Y2tlci9mcm9udGVuZC5weQppbmRleCBjMDU5MzdiNzNkY2RhNzViODBlYmYzY2MyY2EyZjhkY2Nk
YjBkZmRhLi4yN2EwY2Q1OTAzMTRhNWZlNzA1YTgxNTUyZjE4MjEwNGUyMTRlMzQ5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Rv
Y2tlci9mcm9udGVuZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weQpAQCAtMTEzLDYgKzExMyw4IEBAIGRl
ZiBwYXJzZXJfcnVuKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAiL2hvbWUvdGVzdC93ZWIt
cGxhdGZvcm0tdGVzdHMvIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXByaXZpbGVnZWQi
LCBhY3Rpb249InN0b3JlX3RydWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVu
IHRoZSBpbWFnZSBpbiBwcml2aWxlZGdlZCBtb2RlIChyZXF1aXJlZCBmb3IgZW11bGF0b3JzKSIp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS10YWciLCBhY3Rpb249InN0b3JlIiwgZGVmYXVs
dD0id3B0OmxvY2FsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvY2tlciBpbWFn
ZSB0YWcgdG8gdXNlIChkZWZhdWx0IHdwdDpsb2NhbCkiKQogICAgIHJldHVybiBwYXJzZXIKIAog
CkBAIC0xMzAsNyArMTMyLDcgQEAgZGVmIHJ1bigqYXJncywgKiprd2FyZ3MpOgogICAgIGVsc2U6
CiAgICAgICAgIGFyZ3MuZXh0ZW5kKFsiLS1tb3VudCIsCiAgICAgICAgICAgICAgICAgICAgICAi
dHlwZT1iaW5kLHNvdXJjZT0lcyx0YXJnZXQ9L2hvbWUvdGVzdC93ZWItcGxhdGZvcm0tdGVzdHMi
ICUgd3B0X3Jvb3RdKQotICAgIGFyZ3MuZXh0ZW5kKFsiLWl0IiwgIndwdDpsb2NhbCJdKQorICAg
IGFyZ3MuZXh0ZW5kKFsiLWl0Iiwga3dhcmdzWyJ0YWciXV0pCiAKICAgICBwcm9jID0gc3VicHJv
Y2Vzcy5Qb3BlbihhcmdzKQogICAgIHByb2Mud2FpdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9yZXRyeS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2Vy
L3JldHJ5LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0
YXJ0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9kb2NrZXIvc3RhcnQuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9k
b2NrZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTExY2JmYmI5MGQ3NGE3YmVkYTc1YmQxYzI1YmZiNWY4YTMxNmE4YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL0RvY2tlcmZpbGUKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9S
RUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2RvY2tlci9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3Jl
dHJ5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9kb2NrZXIvc2VjY29tcC5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQuc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9n
aXRpZ25vcmUvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdl
NmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9naXRpZ25vcmUvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvX19pbml0X18ucHkKQEAgLTEgKzAsMCBA
QAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJl
Y3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRp
Z25vcmUvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4
YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dp
dGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZ2l0aWdub3JlL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMmI4MDQwMmNmZmIyMjg5MWI4Nzk2ZGRmMzQ5MmE3OGQ2YjY3ZWZjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2dpdGlnbm9yZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2Y1Y2NlMjhmZjc5NmFmYjFmMmQ2Mzg4MGQwNzAwMDc3YzdkNGZlMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRp
Z25vcmUvZ2l0aWdub3JlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19p
bml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3Ig
bW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvYS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL2EtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAwNDkx
ZmQ3ZTViYjZmYTI4YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1leHBl
Y3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlx
dWUvYS1yZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDA0OTFmZDdlNWJiNmZhMjhjNTE3YTBiYjMyYjhi
NTA2NTM5ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2Et
cmVmLmh0bWwKQEAgLTAsMCArMSBAQAorMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC9hLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMDQ5
MWZkN2U1YmI2ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNo
L2EtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9hLXJlZi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EtcmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAwNDkxZmQ3ZTVi
YjZmYTI4YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9hLXJlZi5odG1sCkBAIC0wLDAgKzEgQEAKKzEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZGJhMzQ0Y2Jh
ZjY3YWUyNTU1ZjNjODBiYjMwY2ZjMmVjZDg2MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBv
cnQvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC90b29scy9hLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmYjM1MjNlZTIyNGRj
YzY5ZGYzNjlkZTMzYjc1NDk4ZjdjYTc1NGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC9hLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM4Y2IwZjI5MzM5YzU4ZTAxYjY4MzdjMTEwMjhhNGMw
NWIxOTc2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlx
dWUvbWF0Y2gvdG9vbHMvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlx
dWUvbWF0Y2gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZmE2ZGRjMGI1
MTU1MWZkNDFjNmQ5YThkMGFmMmQ1OTUxOTU2NzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9tYXRjaC9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9ub3QtbWF0Y2gvYS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVl
L25vdC1tYXRjaC9hLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBjZmJmMDg4ODZmY2E5YTkxY2I3NTNlYzg3MzRjODRmY2JlNTJjOWYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVl
L25vdC1tYXRjaC9hLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtcmVmLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtcmVmLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGNmYmYwODg4NmZjYTlhOTFjYjc1M2VjODczNGM4NGZjYmU1MmM5ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvYS1yZWYuaHRtbApA
QCAtMCwwICsxIEBACisyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90
LW1hdGNoL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
bm90LW1hdGNoL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY1MjM0NjQwZWEzYWRiZmFjYjgyZWIzYTlhYTY5YmRkOWMwMTRhZmEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL25vdC1tYXRjaC9zdXBwb3J0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRj
aC9zdXBwb3J0L2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25v
dC1tYXRjaC90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9u
b3QtbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI0ZmE3ODE4OTg5YmIzNjI0MjJlMTQxZmYxN2YwMzIxMDc5MDBmZmMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL25vdC1tYXRjaC90b29scy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9v
bHMvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNo
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRkYmMzYmEwY2I2NmM4
MTc1ZmY2OTBmMDZiODM2MTIwZTJkYTNhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL3JlbGF0aXZlLXRlc3RoYXJuZXNzLWludGVyYWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvcmVsYXRpdmUtdGVzdGhhcm5lc3MtaW50ZXJhY3QuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNTBlZjk4M2E5MzlkYWE0NWI0NjcxYWVmMGFiMDA5NDQ1YTZhYTM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3JlbGF0aXZlLXRlc3RoYXJuZXNz
LWludGVyYWN0Lmh0bWwKQEAgLTAsMCArMSw1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxsaW5rIHJl
bD1oZWxwIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyL3Zpc3VmeC5odG1sI292ZXJm
bG93LWNsaXBwaW5nIj4KKzxtZXRhIG5hbWU9ZmxhZ3MgY29udGVudD1pbnRlcmFjdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3NlbGVjdG9ycy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU4MmE0NjBmMmNjZDFiMDQzMDBi
MmFmZDEwN2UxNzdlMjQzZTg1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL3NlbGVjdG9ycy9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9zdXBwb3J0L3Rvb2xzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9j
c3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDYzNDY0OWE0OWNhYmQ0ODA5YmM0NzFiODZmMzAyZWY5NmMxMGRhMTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9y
dC90b29scy9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBw
b3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNDNkNGE1NDU0ZDJk
NWNhYmIwMDFjN2Q2N2JiMjlkOWFhMThlN2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9j
c3MvY3NzLXVuaXF1ZS90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS90b29scy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGRiNmI4ODc4MzJjMjdmMmQ0Yzg5NzM4YTMzMTM1M2M3NDYzYmJmOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
dG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdG9vbHMvYS5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nz
cy11bmlxdWUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0
ZDMyNTFlMzU0Yzc2M2IxYTU5YjkxZjdlODExZGZmMmZlZGVlMjIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9hLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvcmVsYXRpdmUtdGVzdGhh
cm5lc3MuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1leHBlY3RlZC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5YmIyZDFkNjQzNGI4YjI5
YWU3NzVhZDhjMmU0OGM1MzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLXJlZi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1yZWYuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
NjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvcmVmL3NhbWVfZmlsZV9wYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3NhbWVfZmlsZV9w
YXRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4MGMxZjIwZGRmMGRmZjhiYTEwZWZmM2NjZTRmYzcyODZm
NzljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxlX3BhdGguaHRt
bApAQCAtMCwwICsxIEBACis8bGluayByZWw9Im1hdGNoIiBocmVmPSJzYW1lX2ZpbGVfcGF0aC5o
dG1sIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvcmVmL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDRk
YTU5YTkyY2I2NGMyNmFkY2YzYTg1MzM5N2U3MzdkNjA1NDc2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fi
c29sdXRlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLWV4cGVjdGVkLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVm
L2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvbm9uX2V4aXN0ZW50
X3JlbGF0aXZlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yb290X3JlbGF0aXZl
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvcmVmL3NhbWVfZmlsZV9lbXB0eS5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvdGVzdHMvZGlyMS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0cy9kaXIx
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjI5OTFkOWJl
NmNjZjQxODgwMTAwMDZhNmU2ZDgzNjk4ZDI4ZTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0cy9kaXIxL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3Rz
L2RpcjEvYS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2RpcjEvYS5qcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0
cy9kaXIxL2EueGh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVzdHMvZGlyMS9iLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS90ZXN0cy9kaXIyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2Rp
cjIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjZDY2OWU2
NTNiZmMyMzdiNjM3OGYzYWU5ZWU2Njc1MGM1NTBiYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2RpcjIvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVz
dHMvZGlyMi9hLnhodG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVzdHMvcmVsYXRpdmUtdGVz
dGhhcm5lc3MtbWFudWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVzdHMvcmVsYXRpdmUtdGVzdGhhcm5l
c3MtbWFudWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU2OTNiOTkwYzFkNTE2NWFhNTEwMzczZDVjNjk1
NWUwNjYxYjhhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0cy9yZWxhdGl2ZS10
ZXN0aGFybmVzcy1tYW51YWwuaHRtbApAQCAtMCwwICsxLDMgQEAKKzwhZG9jdHlwZSBodG1sPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM0ZDE2NzMw
ZjcwMDRmNzRkMjM0YzljY2FkYjJjMGVjZWQyYjUwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvYWJvdXRfYmxhbmsuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9icm9rZW4uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW5faWdub3JlZC5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2RlcGVuZGVuY3kuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9saW50Lmlnbm9yZQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9va2F5Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdiNTE4OWZiZTEx
ZDk4Y2RkNzg4ZjMwNmRlNjU2YjE2NjhiZWI4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvYmFzZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy90ZXN0X2ZpbGVfbGludHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9saW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9s
aW50cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2VhYzU4ZDRlZDcwNTM0YmU5ODYyYmM4ZWJlZWU3MGNm
MTVkOWM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9fX2luaXRf
Xy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9jYXRhbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDEzOTExYzBhN2JiZWNlY2Y2YWFkZmExMDVm
ZDhkNTU5YTA3Mjc2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3QvY2F0YWxvZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvY2F0YWxvZy94aHRtbC5kdGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY2F0YWxvZy94
aHRtbC5kdGQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L2NhdGFsb2cveGh0bWwuZHRkCmluZGV4IDgwNDIzNDgwYmM1OTc1NDI2OTEw
MTBhNTBjYTJjMTZmOTQ1YTcwODQuLjQzMDdiMWMyYzQzMzJiMjk0OTk5YTVmYTMxM2E2YTI4ZWVj
NTdmZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvY2F0YWxvZy94aHRtbC5kdGQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3ho
dG1sLmR0ZApAQCAtMSwyMTI1ICsxLDIxMjUgQEAKLTwhLS1FTlRJVFkgVGFiICImI3g5OyItLT4K
LTwhLS1FTlRJVFkgTmV3TGluZSAiJiN4QTsiLS0+Ci08IS0tRU5USVRZIGV4Y2wgIiYjeDIxOyIt
LT4KLTwhLS1FTlRJVFkgcXVvdCAiJiN4MjI7Ii0tPgotPCEtLUVOVElUWSBRVU9UICImI3gyMjsi
LS0+Ci08IS0tRU5USVRZIG51bSAiJiN4MjM7Ii0tPgotPCEtLUVOVElUWSBkb2xsYXIgIiYjeDI0
OyItLT4KLTwhLS1FTlRJVFkgcGVyY250ICImI3gyNTsiLS0+Ci08IS0tRU5USVRZIGFtcCAiJiN4
MjY7I3gyNjsiLS0+Ci08IS0tRU5USVRZIEFNUCAiJiN4MjY7I3gyNjsiLS0+Ci08IS0tRU5USVRZ
IGFwb3MgIiYjeDI3OyItLT4KLTwhLS1FTlRJVFkgbHBhciAiJiN4Mjg7Ii0tPgotPCEtLUVOVElU
WSBycGFyICImI3gyOTsiLS0+Ci08IS0tRU5USVRZIGFzdCAiJiN4MkE7Ii0tPgotPCEtLUVOVElU
WSBtaWRhc3QgIiYjeDJBOyItLT4KLTwhLS1FTlRJVFkgcGx1cyAiJiN4MkI7Ii0tPgotPCEtLUVO
VElUWSBjb21tYSAiJiN4MkM7Ii0tPgotPCEtLUVOVElUWSBwZXJpb2QgIiYjeDJFOyItLT4KLTwh
LS1FTlRJVFkgc29sICImI3gyRjsiLS0+Ci08IS0tRU5USVRZIGNvbG9uICImI3gzQTsiLS0+Ci08
IS0tRU5USVRZIHNlbWkgIiYjeDNCOyItLT4KLTwhLS1FTlRJVFkgbHQgIiYjeDI2OyN4M0M7Ii0t
PgotPCEtLUVOVElUWSBMVCAiJiN4MjY7I3gzQzsiLS0+Ci08IS0tRU5USVRZIG52bHQgIiYjeDI2
OyN4M0M7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIGVxdWFscyAiJiN4M0Q7Ii0tPgotPCEtLUVO
VElUWSBibmUgIiYjeDNEOyYjeDIwRTU7Ii0tPgotPCEtLUVOVElUWSBndCAiJiN4M0U7Ii0tPgot
PCEtLUVOVElUWSBHVCAiJiN4M0U7Ii0tPgotPCEtLUVOVElUWSBudmd0ICImI3gzRTsmI3gyMEQy
OyItLT4KLTwhLS1FTlRJVFkgcXVlc3QgIiYjeDNGOyItLT4KLTwhLS1FTlRJVFkgY29tbWF0ICIm
I3g0MDsiLS0+Ci08IS0tRU5USVRZIGxzcWIgIiYjeDVCOyItLT4KLTwhLS1FTlRJVFkgbGJyYWNr
ICImI3g1QjsiLS0+Ci08IS0tRU5USVRZIGJzb2wgIiYjeDVDOyItLT4KLTwhLS1FTlRJVFkgcnNx
YiAiJiN4NUQ7Ii0tPgotPCEtLUVOVElUWSByYnJhY2sgIiYjeDVEOyItLT4KLTwhLS1FTlRJVFkg
SGF0ICImI3g1RTsiLS0+Ci08IS0tRU5USVRZIGxvd2JhciAiJiN4NUY7Ii0tPgotPCEtLUVOVElU
WSBVbmRlckJhciAiJiN4NUY7Ii0tPgotPCEtLUVOVElUWSBncmF2ZSAiJiN4NjA7Ii0tPgotPCEt
LUVOVElUWSBEaWFjcml0aWNhbEdyYXZlICImI3g2MDsiLS0+Ci08IS0tRU5USVRZIGZqbGlnICIm
I3g2NjsmI3g2QTsiLS0+Ci08IS0tRU5USVRZIGxjdWIgIiYjeDdCOyItLT4KLTwhLS1FTlRJVFkg
bGJyYWNlICImI3g3QjsiLS0+Ci08IS0tRU5USVRZIHZlcmJhciAiJiN4N0M7Ii0tPgotPCEtLUVO
VElUWSB2ZXJ0ICImI3g3QzsiLS0+Ci08IS0tRU5USVRZIFZlcnRpY2FsTGluZSAiJiN4N0M7Ii0t
PgotPCEtLUVOVElUWSByY3ViICImI3g3RDsiLS0+Ci08IS0tRU5USVRZIHJicmFjZSAiJiN4N0Q7
Ii0tPgotPCEtLUVOVElUWSBuYnNwICImI3hBMDsiLS0+Ci08IS0tRU5USVRZIE5vbkJyZWFraW5n
U3BhY2UgIiYjeEEwOyItLT4KLTwhLS1FTlRJVFkgaWV4Y2wgIiYjeEExOyItLT4KLTwhLS1FTlRJ
VFkgY2VudCAiJiN4QTI7Ii0tPgotPCEtLUVOVElUWSBwb3VuZCAiJiN4QTM7Ii0tPgotPCEtLUVO
VElUWSBjdXJyZW4gIiYjeEE0OyItLT4KLTwhLS1FTlRJVFkgeWVuICImI3hBNTsiLS0+Ci08IS0t
RU5USVRZIGJydmJhciAiJiN4QTY7Ii0tPgotPCEtLUVOVElUWSBzZWN0ICImI3hBNzsiLS0+Ci08
IS0tRU5USVRZIERvdCAiJiN4QTg7Ii0tPgotPCEtLUVOVElUWSBkaWUgIiYjeEE4OyItLT4KLTwh
LS1FTlRJVFkgRG91YmxlRG90ICImI3hBODsiLS0+Ci08IS0tRU5USVRZIHVtbCAiJiN4QTg7Ii0t
PgotPCEtLUVOVElUWSBjb3B5ICImI3hBOTsiLS0+Ci08IS0tRU5USVRZIENPUFkgIiYjeEE5OyIt
LT4KLTwhLS1FTlRJVFkgb3JkZiAiJiN4QUE7Ii0tPgotPCEtLUVOVElUWSBsYXF1byAiJiN4QUI7
Ii0tPgotPCEtLUVOVElUWSBub3QgIiYjeEFDOyItLT4KLTwhLS1FTlRJVFkgc2h5ICImI3hBRDsi
LS0+Ci08IS0tRU5USVRZIHJlZyAiJiN4QUU7Ii0tPgotPCEtLUVOVElUWSBjaXJjbGVkUiAiJiN4
QUU7Ii0tPgotPCEtLUVOVElUWSBSRUcgIiYjeEFFOyItLT4KLTwhLS1FTlRJVFkgbWFjciAiJiN4
QUY7Ii0tPgotPCEtLUVOVElUWSBzdHJucyAiJiN4QUY7Ii0tPgotPCEtLUVOVElUWSBkZWcgIiYj
eEIwOyItLT4KLTwhLS1FTlRJVFkgcGx1c21uICImI3hCMTsiLS0+Ci08IS0tRU5USVRZIHBtICIm
I3hCMTsiLS0+Ci08IS0tRU5USVRZIFBsdXNNaW51cyAiJiN4QjE7Ii0tPgotPCEtLUVOVElUWSBz
dXAyICImI3hCMjsiLS0+Ci08IS0tRU5USVRZIHN1cDMgIiYjeEIzOyItLT4KLTwhLS1FTlRJVFkg
YWN1dGUgIiYjeEI0OyItLT4KLTwhLS1FTlRJVFkgRGlhY3JpdGljYWxBY3V0ZSAiJiN4QjQ7Ii0t
PgotPCEtLUVOVElUWSBtaWNybyAiJiN4QjU7Ii0tPgotPCEtLUVOVElUWSBwYXJhICImI3hCNjsi
LS0+Ci08IS0tRU5USVRZIG1pZGRvdCAiJiN4Qjc7Ii0tPgotPCEtLUVOVElUWSBjZW50ZXJkb3Qg
IiYjeEI3OyItLT4KLTwhLS1FTlRJVFkgQ2VudGVyRG90ICImI3hCNzsiLS0+Ci08IS0tRU5USVRZ
IGNlZGlsICImI3hCODsiLS0+Ci08IS0tRU5USVRZIENlZGlsbGEgIiYjeEI4OyItLT4KLTwhLS1F
TlRJVFkgc3VwMSAiJiN4Qjk7Ii0tPgotPCEtLUVOVElUWSBvcmRtICImI3hCQTsiLS0+Ci08IS0t
RU5USVRZIHJhcXVvICImI3hCQjsiLS0+Ci08IS0tRU5USVRZIGZyYWMxNCAiJiN4QkM7Ii0tPgot
PCEtLUVOVElUWSBmcmFjMTIgIiYjeEJEOyItLT4KLTwhLS1FTlRJVFkgaGFsZiAiJiN4QkQ7Ii0t
PgotPCEtLUVOVElUWSBmcmFjMzQgIiYjeEJFOyItLT4KLTwhLS1FTlRJVFkgaXF1ZXN0ICImI3hC
RjsiLS0+Ci08IS0tRU5USVRZIEFncmF2ZSAiJiN4QzA7Ii0tPgotPCEtLUVOVElUWSBBYWN1dGUg
IiYjeEMxOyItLT4KLTwhLS1FTlRJVFkgQWNpcmMgIiYjeEMyOyItLT4KLTwhLS1FTlRJVFkgQXRp
bGRlICImI3hDMzsiLS0+Ci08IS0tRU5USVRZIEF1bWwgIiYjeEM0OyItLT4KLTwhLS1FTlRJVFkg
QXJpbmcgIiYjeEM1OyItLT4KLTwhLS1FTlRJVFkgYW5nc3QgIiYjeEM1OyItLT4KLTwhLS1FTlRJ
VFkgQUVsaWcgIiYjeEM2OyItLT4KLTwhLS1FTlRJVFkgQ2NlZGlsICImI3hDNzsiLS0+Ci08IS0t
RU5USVRZIEVncmF2ZSAiJiN4Qzg7Ii0tPgotPCEtLUVOVElUWSBFYWN1dGUgIiYjeEM5OyItLT4K
LTwhLS1FTlRJVFkgRWNpcmMgIiYjeENBOyItLT4KLTwhLS1FTlRJVFkgRXVtbCAiJiN4Q0I7Ii0t
PgotPCEtLUVOVElUWSBJZ3JhdmUgIiYjeENDOyItLT4KLTwhLS1FTlRJVFkgSWFjdXRlICImI3hD
RDsiLS0+Ci08IS0tRU5USVRZIEljaXJjICImI3hDRTsiLS0+Ci08IS0tRU5USVRZIEl1bWwgIiYj
eENGOyItLT4KLTwhLS1FTlRJVFkgRVRIICImI3hEMDsiLS0+Ci08IS0tRU5USVRZIE50aWxkZSAi
JiN4RDE7Ii0tPgotPCEtLUVOVElUWSBPZ3JhdmUgIiYjeEQyOyItLT4KLTwhLS1FTlRJVFkgT2Fj
dXRlICImI3hEMzsiLS0+Ci08IS0tRU5USVRZIE9jaXJjICImI3hENDsiLS0+Ci08IS0tRU5USVRZ
IE90aWxkZSAiJiN4RDU7Ii0tPgotPCEtLUVOVElUWSBPdW1sICImI3hENjsiLS0+Ci08IS0tRU5U
SVRZIHRpbWVzICImI3hENzsiLS0+Ci08IS0tRU5USVRZIE9zbGFzaCAiJiN4RDg7Ii0tPgotPCEt
LUVOVElUWSBVZ3JhdmUgIiYjeEQ5OyItLT4KLTwhLS1FTlRJVFkgVWFjdXRlICImI3hEQTsiLS0+
Ci08IS0tRU5USVRZIFVjaXJjICImI3hEQjsiLS0+Ci08IS0tRU5USVRZIFV1bWwgIiYjeERDOyIt
LT4KLTwhLS1FTlRJVFkgWWFjdXRlICImI3hERDsiLS0+Ci08IS0tRU5USVRZIFRIT1JOICImI3hE
RTsiLS0+Ci08IS0tRU5USVRZIHN6bGlnICImI3hERjsiLS0+Ci08IS0tRU5USVRZIGFncmF2ZSAi
JiN4RTA7Ii0tPgotPCEtLUVOVElUWSBhYWN1dGUgIiYjeEUxOyItLT4KLTwhLS1FTlRJVFkgYWNp
cmMgIiYjeEUyOyItLT4KLTwhLS1FTlRJVFkgYXRpbGRlICImI3hFMzsiLS0+Ci08IS0tRU5USVRZ
IGF1bWwgIiYjeEU0OyItLT4KLTwhLS1FTlRJVFkgYXJpbmcgIiYjeEU1OyItLT4KLTwhLS1FTlRJ
VFkgYWVsaWcgIiYjeEU2OyItLT4KLTwhLS1FTlRJVFkgY2NlZGlsICImI3hFNzsiLS0+Ci08IS0t
RU5USVRZIGVncmF2ZSAiJiN4RTg7Ii0tPgotPCEtLUVOVElUWSBlYWN1dGUgIiYjeEU5OyItLT4K
LTwhLS1FTlRJVFkgZWNpcmMgIiYjeEVBOyItLT4KLTwhLS1FTlRJVFkgZXVtbCAiJiN4RUI7Ii0t
PgotPCEtLUVOVElUWSBpZ3JhdmUgIiYjeEVDOyItLT4KLTwhLS1FTlRJVFkgaWFjdXRlICImI3hF
RDsiLS0+Ci08IS0tRU5USVRZIGljaXJjICImI3hFRTsiLS0+Ci08IS0tRU5USVRZIGl1bWwgIiYj
eEVGOyItLT4KLTwhLS1FTlRJVFkgZXRoICImI3hGMDsiLS0+Ci08IS0tRU5USVRZIG50aWxkZSAi
JiN4RjE7Ii0tPgotPCEtLUVOVElUWSBvZ3JhdmUgIiYjeEYyOyItLT4KLTwhLS1FTlRJVFkgb2Fj
dXRlICImI3hGMzsiLS0+Ci08IS0tRU5USVRZIG9jaXJjICImI3hGNDsiLS0+Ci08IS0tRU5USVRZ
IG90aWxkZSAiJiN4RjU7Ii0tPgotPCEtLUVOVElUWSBvdW1sICImI3hGNjsiLS0+Ci08IS0tRU5U
SVRZIGRpdmlkZSAiJiN4Rjc7Ii0tPgotPCEtLUVOVElUWSBkaXYgIiYjeEY3OyItLT4KLTwhLS1F
TlRJVFkgb3NsYXNoICImI3hGODsiLS0+Ci08IS0tRU5USVRZIHVncmF2ZSAiJiN4Rjk7Ii0tPgot
PCEtLUVOVElUWSB1YWN1dGUgIiYjeEZBOyItLT4KLTwhLS1FTlRJVFkgdWNpcmMgIiYjeEZCOyIt
LT4KLTwhLS1FTlRJVFkgdXVtbCAiJiN4RkM7Ii0tPgotPCEtLUVOVElUWSB5YWN1dGUgIiYjeEZE
OyItLT4KLTwhLS1FTlRJVFkgdGhvcm4gIiYjeEZFOyItLT4KLTwhLS1FTlRJVFkgeXVtbCAiJiN4
RkY7Ii0tPgotPCEtLUVOVElUWSBBbWFjciAiJiN4MTAwOyItLT4KLTwhLS1FTlRJVFkgYW1hY3Ig
IiYjeDEwMTsiLS0+Ci08IS0tRU5USVRZIEFicmV2ZSAiJiN4MTAyOyItLT4KLTwhLS1FTlRJVFkg
YWJyZXZlICImI3gxMDM7Ii0tPgotPCEtLUVOVElUWSBBb2dvbiAiJiN4MTA0OyItLT4KLTwhLS1F
TlRJVFkgYW9nb24gIiYjeDEwNTsiLS0+Ci08IS0tRU5USVRZIENhY3V0ZSAiJiN4MTA2OyItLT4K
LTwhLS1FTlRJVFkgY2FjdXRlICImI3gxMDc7Ii0tPgotPCEtLUVOVElUWSBDY2lyYyAiJiN4MTA4
OyItLT4KLTwhLS1FTlRJVFkgY2NpcmMgIiYjeDEwOTsiLS0+Ci08IS0tRU5USVRZIENkb3QgIiYj
eDEwQTsiLS0+Ci08IS0tRU5USVRZIGNkb3QgIiYjeDEwQjsiLS0+Ci08IS0tRU5USVRZIENjYXJv
biAiJiN4MTBDOyItLT4KLTwhLS1FTlRJVFkgY2Nhcm9uICImI3gxMEQ7Ii0tPgotPCEtLUVOVElU
WSBEY2Fyb24gIiYjeDEwRTsiLS0+Ci08IS0tRU5USVRZIGRjYXJvbiAiJiN4MTBGOyItLT4KLTwh
LS1FTlRJVFkgRHN0cm9rICImI3gxMTA7Ii0tPgotPCEtLUVOVElUWSBkc3Ryb2sgIiYjeDExMTsi
LS0+Ci08IS0tRU5USVRZIEVtYWNyICImI3gxMTI7Ii0tPgotPCEtLUVOVElUWSBlbWFjciAiJiN4
MTEzOyItLT4KLTwhLS1FTlRJVFkgRWRvdCAiJiN4MTE2OyItLT4KLTwhLS1FTlRJVFkgZWRvdCAi
JiN4MTE3OyItLT4KLTwhLS1FTlRJVFkgRW9nb24gIiYjeDExODsiLS0+Ci08IS0tRU5USVRZIGVv
Z29uICImI3gxMTk7Ii0tPgotPCEtLUVOVElUWSBFY2Fyb24gIiYjeDExQTsiLS0+Ci08IS0tRU5U
SVRZIGVjYXJvbiAiJiN4MTFCOyItLT4KLTwhLS1FTlRJVFkgR2NpcmMgIiYjeDExQzsiLS0+Ci08
IS0tRU5USVRZIGdjaXJjICImI3gxMUQ7Ii0tPgotPCEtLUVOVElUWSBHYnJldmUgIiYjeDExRTsi
LS0+Ci08IS0tRU5USVRZIGdicmV2ZSAiJiN4MTFGOyItLT4KLTwhLS1FTlRJVFkgR2RvdCAiJiN4
MTIwOyItLT4KLTwhLS1FTlRJVFkgZ2RvdCAiJiN4MTIxOyItLT4KLTwhLS1FTlRJVFkgR2NlZGls
ICImI3gxMjI7Ii0tPgotPCEtLUVOVElUWSBIY2lyYyAiJiN4MTI0OyItLT4KLTwhLS1FTlRJVFkg
aGNpcmMgIiYjeDEyNTsiLS0+Ci08IS0tRU5USVRZIEhzdHJvayAiJiN4MTI2OyItLT4KLTwhLS1F
TlRJVFkgaHN0cm9rICImI3gxMjc7Ii0tPgotPCEtLUVOVElUWSBJdGlsZGUgIiYjeDEyODsiLS0+
Ci08IS0tRU5USVRZIGl0aWxkZSAiJiN4MTI5OyItLT4KLTwhLS1FTlRJVFkgSW1hY3IgIiYjeDEy
QTsiLS0+Ci08IS0tRU5USVRZIGltYWNyICImI3gxMkI7Ii0tPgotPCEtLUVOVElUWSBJb2dvbiAi
JiN4MTJFOyItLT4KLTwhLS1FTlRJVFkgaW9nb24gIiYjeDEyRjsiLS0+Ci08IS0tRU5USVRZIElk
b3QgIiYjeDEzMDsiLS0+Ci08IS0tRU5USVRZIGltYXRoICImI3gxMzE7Ii0tPgotPCEtLUVOVElU
WSBpbm9kb3QgIiYjeDEzMTsiLS0+Ci08IS0tRU5USVRZIElKbGlnICImI3gxMzI7Ii0tPgotPCEt
LUVOVElUWSBpamxpZyAiJiN4MTMzOyItLT4KLTwhLS1FTlRJVFkgSmNpcmMgIiYjeDEzNDsiLS0+
Ci08IS0tRU5USVRZIGpjaXJjICImI3gxMzU7Ii0tPgotPCEtLUVOVElUWSBLY2VkaWwgIiYjeDEz
NjsiLS0+Ci08IS0tRU5USVRZIGtjZWRpbCAiJiN4MTM3OyItLT4KLTwhLS1FTlRJVFkga2dyZWVu
ICImI3gxMzg7Ii0tPgotPCEtLUVOVElUWSBMYWN1dGUgIiYjeDEzOTsiLS0+Ci08IS0tRU5USVRZ
IGxhY3V0ZSAiJiN4MTNBOyItLT4KLTwhLS1FTlRJVFkgTGNlZGlsICImI3gxM0I7Ii0tPgotPCEt
LUVOVElUWSBsY2VkaWwgIiYjeDEzQzsiLS0+Ci08IS0tRU5USVRZIExjYXJvbiAiJiN4MTNEOyIt
LT4KLTwhLS1FTlRJVFkgbGNhcm9uICImI3gxM0U7Ii0tPgotPCEtLUVOVElUWSBMbWlkb3QgIiYj
eDEzRjsiLS0+Ci08IS0tRU5USVRZIGxtaWRvdCAiJiN4MTQwOyItLT4KLTwhLS1FTlRJVFkgTHN0
cm9rICImI3gxNDE7Ii0tPgotPCEtLUVOVElUWSBsc3Ryb2sgIiYjeDE0MjsiLS0+Ci08IS0tRU5U
SVRZIE5hY3V0ZSAiJiN4MTQzOyItLT4KLTwhLS1FTlRJVFkgbmFjdXRlICImI3gxNDQ7Ii0tPgot
PCEtLUVOVElUWSBOY2VkaWwgIiYjeDE0NTsiLS0+Ci08IS0tRU5USVRZIG5jZWRpbCAiJiN4MTQ2
OyItLT4KLTwhLS1FTlRJVFkgTmNhcm9uICImI3gxNDc7Ii0tPgotPCEtLUVOVElUWSBuY2Fyb24g
IiYjeDE0ODsiLS0+Ci08IS0tRU5USVRZIG5hcG9zICImI3gxNDk7Ii0tPgotPCEtLUVOVElUWSBF
TkcgIiYjeDE0QTsiLS0+Ci08IS0tRU5USVRZIGVuZyAiJiN4MTRCOyItLT4KLTwhLS1FTlRJVFkg
T21hY3IgIiYjeDE0QzsiLS0+Ci08IS0tRU5USVRZIG9tYWNyICImI3gxNEQ7Ii0tPgotPCEtLUVO
VElUWSBPZGJsYWMgIiYjeDE1MDsiLS0+Ci08IS0tRU5USVRZIG9kYmxhYyAiJiN4MTUxOyItLT4K
LTwhLS1FTlRJVFkgT0VsaWcgIiYjeDE1MjsiLS0+Ci08IS0tRU5USVRZIG9lbGlnICImI3gxNTM7
Ii0tPgotPCEtLUVOVElUWSBSYWN1dGUgIiYjeDE1NDsiLS0+Ci08IS0tRU5USVRZIHJhY3V0ZSAi
JiN4MTU1OyItLT4KLTwhLS1FTlRJVFkgUmNlZGlsICImI3gxNTY7Ii0tPgotPCEtLUVOVElUWSBy
Y2VkaWwgIiYjeDE1NzsiLS0+Ci08IS0tRU5USVRZIFJjYXJvbiAiJiN4MTU4OyItLT4KLTwhLS1F
TlRJVFkgcmNhcm9uICImI3gxNTk7Ii0tPgotPCEtLUVOVElUWSBTYWN1dGUgIiYjeDE1QTsiLS0+
Ci08IS0tRU5USVRZIHNhY3V0ZSAiJiN4MTVCOyItLT4KLTwhLS1FTlRJVFkgU2NpcmMgIiYjeDE1
QzsiLS0+Ci08IS0tRU5USVRZIHNjaXJjICImI3gxNUQ7Ii0tPgotPCEtLUVOVElUWSBTY2VkaWwg
IiYjeDE1RTsiLS0+Ci08IS0tRU5USVRZIHNjZWRpbCAiJiN4MTVGOyItLT4KLTwhLS1FTlRJVFkg
U2Nhcm9uICImI3gxNjA7Ii0tPgotPCEtLUVOVElUWSBzY2Fyb24gIiYjeDE2MTsiLS0+Ci08IS0t
RU5USVRZIFRjZWRpbCAiJiN4MTYyOyItLT4KLTwhLS1FTlRJVFkgdGNlZGlsICImI3gxNjM7Ii0t
PgotPCEtLUVOVElUWSBUY2Fyb24gIiYjeDE2NDsiLS0+Ci08IS0tRU5USVRZIHRjYXJvbiAiJiN4
MTY1OyItLT4KLTwhLS1FTlRJVFkgVHN0cm9rICImI3gxNjY7Ii0tPgotPCEtLUVOVElUWSB0c3Ry
b2sgIiYjeDE2NzsiLS0+Ci08IS0tRU5USVRZIFV0aWxkZSAiJiN4MTY4OyItLT4KLTwhLS1FTlRJ
VFkgdXRpbGRlICImI3gxNjk7Ii0tPgotPCEtLUVOVElUWSBVbWFjciAiJiN4MTZBOyItLT4KLTwh
LS1FTlRJVFkgdW1hY3IgIiYjeDE2QjsiLS0+Ci08IS0tRU5USVRZIFVicmV2ZSAiJiN4MTZDOyIt
LT4KLTwhLS1FTlRJVFkgdWJyZXZlICImI3gxNkQ7Ii0tPgotPCEtLUVOVElUWSBVcmluZyAiJiN4
MTZFOyItLT4KLTwhLS1FTlRJVFkgdXJpbmcgIiYjeDE2RjsiLS0+Ci08IS0tRU5USVRZIFVkYmxh
YyAiJiN4MTcwOyItLT4KLTwhLS1FTlRJVFkgdWRibGFjICImI3gxNzE7Ii0tPgotPCEtLUVOVElU
WSBVb2dvbiAiJiN4MTcyOyItLT4KLTwhLS1FTlRJVFkgdW9nb24gIiYjeDE3MzsiLS0+Ci08IS0t
RU5USVRZIFdjaXJjICImI3gxNzQ7Ii0tPgotPCEtLUVOVElUWSB3Y2lyYyAiJiN4MTc1OyItLT4K
LTwhLS1FTlRJVFkgWWNpcmMgIiYjeDE3NjsiLS0+Ci08IS0tRU5USVRZIHljaXJjICImI3gxNzc7
Ii0tPgotPCEtLUVOVElUWSBZdW1sICImI3gxNzg7Ii0tPgotPCEtLUVOVElUWSBaYWN1dGUgIiYj
eDE3OTsiLS0+Ci08IS0tRU5USVRZIHphY3V0ZSAiJiN4MTdBOyItLT4KLTwhLS1FTlRJVFkgWmRv
dCAiJiN4MTdCOyItLT4KLTwhLS1FTlRJVFkgemRvdCAiJiN4MTdDOyItLT4KLTwhLS1FTlRJVFkg
WmNhcm9uICImI3gxN0Q7Ii0tPgotPCEtLUVOVElUWSB6Y2Fyb24gIiYjeDE3RTsiLS0+Ci08IS0t
RU5USVRZIGZub2YgIiYjeDE5MjsiLS0+Ci08IS0tRU5USVRZIGltcGVkICImI3gxQjU7Ii0tPgot
PCEtLUVOVElUWSBnYWN1dGUgIiYjeDFGNTsiLS0+Ci08IS0tRU5USVRZIGptYXRoICImI3gyMzc7
Ii0tPgotPCEtLUVOVElUWSBjaXJjICImI3gyQzY7Ii0tPgotPCEtLUVOVElUWSBjYXJvbiAiJiN4
MkM3OyItLT4KLTwhLS1FTlRJVFkgSGFjZWsgIiYjeDJDNzsiLS0+Ci08IS0tRU5USVRZIGJyZXZl
ICImI3gyRDg7Ii0tPgotPCEtLUVOVElUWSBCcmV2ZSAiJiN4MkQ4OyItLT4KLTwhLS1FTlRJVFkg
ZG90ICImI3gyRDk7Ii0tPgotPCEtLUVOVElUWSBEaWFjcml0aWNhbERvdCAiJiN4MkQ5OyItLT4K
LTwhLS1FTlRJVFkgcmluZyAiJiN4MkRBOyItLT4KLTwhLS1FTlRJVFkgb2dvbiAiJiN4MkRCOyIt
LT4KLTwhLS1FTlRJVFkgdGlsZGUgIiYjeDJEQzsiLS0+Ci08IS0tRU5USVRZIERpYWNyaXRpY2Fs
VGlsZGUgIiYjeDJEQzsiLS0+Ci08IS0tRU5USVRZIGRibGFjICImI3gyREQ7Ii0tPgotPCEtLUVO
VElUWSBEaWFjcml0aWNhbERvdWJsZUFjdXRlICImI3gyREQ7Ii0tPgotPCEtLUVOVElUWSBEb3du
QnJldmUgIiYjeDMxMTsiLS0+Ci08IS0tRU5USVRZIEFscGhhICImI3gzOTE7Ii0tPgotPCEtLUVO
VElUWSBCZXRhICImI3gzOTI7Ii0tPgotPCEtLUVOVElUWSBHYW1tYSAiJiN4MzkzOyItLT4KLTwh
LS1FTlRJVFkgRGVsdGEgIiYjeDM5NDsiLS0+Ci08IS0tRU5USVRZIEVwc2lsb24gIiYjeDM5NTsi
LS0+Ci08IS0tRU5USVRZIFpldGEgIiYjeDM5NjsiLS0+Ci08IS0tRU5USVRZIEV0YSAiJiN4Mzk3
OyItLT4KLTwhLS1FTlRJVFkgVGhldGEgIiYjeDM5ODsiLS0+Ci08IS0tRU5USVRZIElvdGEgIiYj
eDM5OTsiLS0+Ci08IS0tRU5USVRZIEthcHBhICImI3gzOUE7Ii0tPgotPCEtLUVOVElUWSBMYW1i
ZGEgIiYjeDM5QjsiLS0+Ci08IS0tRU5USVRZIE11ICImI3gzOUM7Ii0tPgotPCEtLUVOVElUWSBO
dSAiJiN4MzlEOyItLT4KLTwhLS1FTlRJVFkgWGkgIiYjeDM5RTsiLS0+Ci08IS0tRU5USVRZIE9t
aWNyb24gIiYjeDM5RjsiLS0+Ci08IS0tRU5USVRZIFBpICImI3gzQTA7Ii0tPgotPCEtLUVOVElU
WSBSaG8gIiYjeDNBMTsiLS0+Ci08IS0tRU5USVRZIFNpZ21hICImI3gzQTM7Ii0tPgotPCEtLUVO
VElUWSBUYXUgIiYjeDNBNDsiLS0+Ci08IS0tRU5USVRZIFVwc2lsb24gIiYjeDNBNTsiLS0+Ci08
IS0tRU5USVRZIFBoaSAiJiN4M0E2OyItLT4KLTwhLS1FTlRJVFkgQ2hpICImI3gzQTc7Ii0tPgot
PCEtLUVOVElUWSBQc2kgIiYjeDNBODsiLS0+Ci08IS0tRU5USVRZIE9tZWdhICImI3gzQTk7Ii0t
PgotPCEtLUVOVElUWSBvaG0gIiYjeDNBOTsiLS0+Ci08IS0tRU5USVRZIGFscGhhICImI3gzQjE7
Ii0tPgotPCEtLUVOVElUWSBiZXRhICImI3gzQjI7Ii0tPgotPCEtLUVOVElUWSBnYW1tYSAiJiN4
M0IzOyItLT4KLTwhLS1FTlRJVFkgZGVsdGEgIiYjeDNCNDsiLS0+Ci08IS0tRU5USVRZIGVwc2kg
IiYjeDNCNTsiLS0+Ci08IS0tRU5USVRZIGVwc2lsb24gIiYjeDNCNTsiLS0+Ci08IS0tRU5USVRZ
IHpldGEgIiYjeDNCNjsiLS0+Ci08IS0tRU5USVRZIGV0YSAiJiN4M0I3OyItLT4KLTwhLS1FTlRJ
VFkgdGhldGEgIiYjeDNCODsiLS0+Ci08IS0tRU5USVRZIGlvdGEgIiYjeDNCOTsiLS0+Ci08IS0t
RU5USVRZIGthcHBhICImI3gzQkE7Ii0tPgotPCEtLUVOVElUWSBsYW1iZGEgIiYjeDNCQjsiLS0+
Ci08IS0tRU5USVRZIG11ICImI3gzQkM7Ii0tPgotPCEtLUVOVElUWSBudSAiJiN4M0JEOyItLT4K
LTwhLS1FTlRJVFkgeGkgIiYjeDNCRTsiLS0+Ci08IS0tRU5USVRZIG9taWNyb24gIiYjeDNCRjsi
LS0+Ci08IS0tRU5USVRZIHBpICImI3gzQzA7Ii0tPgotPCEtLUVOVElUWSByaG8gIiYjeDNDMTsi
LS0+Ci08IS0tRU5USVRZIHNpZ21hdiAiJiN4M0MyOyItLT4KLTwhLS1FTlRJVFkgdmFyc2lnbWEg
IiYjeDNDMjsiLS0+Ci08IS0tRU5USVRZIHNpZ21hZiAiJiN4M0MyOyItLT4KLTwhLS1FTlRJVFkg
c2lnbWEgIiYjeDNDMzsiLS0+Ci08IS0tRU5USVRZIHRhdSAiJiN4M0M0OyItLT4KLTwhLS1FTlRJ
VFkgdXBzaSAiJiN4M0M1OyItLT4KLTwhLS1FTlRJVFkgdXBzaWxvbiAiJiN4M0M1OyItLT4KLTwh
LS1FTlRJVFkgcGhpICImI3gzQzY7Ii0tPgotPCEtLUVOVElUWSBjaGkgIiYjeDNDNzsiLS0+Ci08
IS0tRU5USVRZIHBzaSAiJiN4M0M4OyItLT4KLTwhLS1FTlRJVFkgb21lZ2EgIiYjeDNDOTsiLS0+
Ci08IS0tRU5USVRZIHRoZXRhdiAiJiN4M0QxOyItLT4KLTwhLS1FTlRJVFkgdmFydGhldGEgIiYj
eDNEMTsiLS0+Ci08IS0tRU5USVRZIHRoZXRhc3ltICImI3gzRDE7Ii0tPgotPCEtLUVOVElUWSBV
cHNpICImI3gzRDI7Ii0tPgotPCEtLUVOVElUWSB1cHNpaCAiJiN4M0QyOyItLT4KLTwhLS1FTlRJ
VFkgc3RyYWlnaHRwaGkgIiYjeDNENTsiLS0+Ci08IS0tRU5USVRZIHBoaXYgIiYjeDNENTsiLS0+
Ci08IS0tRU5USVRZIHZhcnBoaSAiJiN4M0Q1OyItLT4KLTwhLS1FTlRJVFkgcGl2ICImI3gzRDY7
Ii0tPgotPCEtLUVOVElUWSB2YXJwaSAiJiN4M0Q2OyItLT4KLTwhLS1FTlRJVFkgR2FtbWFkICIm
I3gzREM7Ii0tPgotPCEtLUVOVElUWSBnYW1tYWQgIiYjeDNERDsiLS0+Ci08IS0tRU5USVRZIGRp
Z2FtbWEgIiYjeDNERDsiLS0+Ci08IS0tRU5USVRZIGthcHBhdiAiJiN4M0YwOyItLT4KLTwhLS1F
TlRJVFkgdmFya2FwcGEgIiYjeDNGMDsiLS0+Ci08IS0tRU5USVRZIHJob3YgIiYjeDNGMTsiLS0+
Ci08IS0tRU5USVRZIHZhcnJobyAiJiN4M0YxOyItLT4KLTwhLS1FTlRJVFkgZXBzaXYgIiYjeDNG
NTsiLS0+Ci08IS0tRU5USVRZIHN0cmFpZ2h0ZXBzaWxvbiAiJiN4M0Y1OyItLT4KLTwhLS1FTlRJ
VFkgdmFyZXBzaWxvbiAiJiN4M0Y1OyItLT4KLTwhLS1FTlRJVFkgYmVwc2kgIiYjeDNGNjsiLS0+
Ci08IS0tRU5USVRZIGJhY2tlcHNpbG9uICImI3gzRjY7Ii0tPgotPCEtLUVOVElUWSBJT2N5ICIm
I3g0MDE7Ii0tPgotPCEtLUVOVElUWSBESmN5ICImI3g0MDI7Ii0tPgotPCEtLUVOVElUWSBHSmN5
ICImI3g0MDM7Ii0tPgotPCEtLUVOVElUWSBKdWtjeSAiJiN4NDA0OyItLT4KLTwhLS1FTlRJVFkg
RFNjeSAiJiN4NDA1OyItLT4KLTwhLS1FTlRJVFkgSXVrY3kgIiYjeDQwNjsiLS0+Ci08IS0tRU5U
SVRZIFlJY3kgIiYjeDQwNzsiLS0+Ci08IS0tRU5USVRZIEpzZXJjeSAiJiN4NDA4OyItLT4KLTwh
LS1FTlRJVFkgTEpjeSAiJiN4NDA5OyItLT4KLTwhLS1FTlRJVFkgTkpjeSAiJiN4NDBBOyItLT4K
LTwhLS1FTlRJVFkgVFNIY3kgIiYjeDQwQjsiLS0+Ci08IS0tRU5USVRZIEtKY3kgIiYjeDQwQzsi
LS0+Ci08IS0tRU5USVRZIFVicmN5ICImI3g0MEU7Ii0tPgotPCEtLUVOVElUWSBEWmN5ICImI3g0
MEY7Ii0tPgotPCEtLUVOVElUWSBBY3kgIiYjeDQxMDsiLS0+Ci08IS0tRU5USVRZIEJjeSAiJiN4
NDExOyItLT4KLTwhLS1FTlRJVFkgVmN5ICImI3g0MTI7Ii0tPgotPCEtLUVOVElUWSBHY3kgIiYj
eDQxMzsiLS0+Ci08IS0tRU5USVRZIERjeSAiJiN4NDE0OyItLT4KLTwhLS1FTlRJVFkgSUVjeSAi
JiN4NDE1OyItLT4KLTwhLS1FTlRJVFkgWkhjeSAiJiN4NDE2OyItLT4KLTwhLS1FTlRJVFkgWmN5
ICImI3g0MTc7Ii0tPgotPCEtLUVOVElUWSBJY3kgIiYjeDQxODsiLS0+Ci08IS0tRU5USVRZIEpj
eSAiJiN4NDE5OyItLT4KLTwhLS1FTlRJVFkgS2N5ICImI3g0MUE7Ii0tPgotPCEtLUVOVElUWSBM
Y3kgIiYjeDQxQjsiLS0+Ci08IS0tRU5USVRZIE1jeSAiJiN4NDFDOyItLT4KLTwhLS1FTlRJVFkg
TmN5ICImI3g0MUQ7Ii0tPgotPCEtLUVOVElUWSBPY3kgIiYjeDQxRTsiLS0+Ci08IS0tRU5USVRZ
IFBjeSAiJiN4NDFGOyItLT4KLTwhLS1FTlRJVFkgUmN5ICImI3g0MjA7Ii0tPgotPCEtLUVOVElU
WSBTY3kgIiYjeDQyMTsiLS0+Ci08IS0tRU5USVRZIFRjeSAiJiN4NDIyOyItLT4KLTwhLS1FTlRJ
VFkgVWN5ICImI3g0MjM7Ii0tPgotPCEtLUVOVElUWSBGY3kgIiYjeDQyNDsiLS0+Ci08IS0tRU5U
SVRZIEtIY3kgIiYjeDQyNTsiLS0+Ci08IS0tRU5USVRZIFRTY3kgIiYjeDQyNjsiLS0+Ci08IS0t
RU5USVRZIENIY3kgIiYjeDQyNzsiLS0+Ci08IS0tRU5USVRZIFNIY3kgIiYjeDQyODsiLS0+Ci08
IS0tRU5USVRZIFNIQ0hjeSAiJiN4NDI5OyItLT4KLTwhLS1FTlRJVFkgSEFSRGN5ICImI3g0MkE7
Ii0tPgotPCEtLUVOVElUWSBZY3kgIiYjeDQyQjsiLS0+Ci08IS0tRU5USVRZIFNPRlRjeSAiJiN4
NDJDOyItLT4KLTwhLS1FTlRJVFkgRWN5ICImI3g0MkQ7Ii0tPgotPCEtLUVOVElUWSBZVWN5ICIm
I3g0MkU7Ii0tPgotPCEtLUVOVElUWSBZQWN5ICImI3g0MkY7Ii0tPgotPCEtLUVOVElUWSBhY3kg
IiYjeDQzMDsiLS0+Ci08IS0tRU5USVRZIGJjeSAiJiN4NDMxOyItLT4KLTwhLS1FTlRJVFkgdmN5
ICImI3g0MzI7Ii0tPgotPCEtLUVOVElUWSBnY3kgIiYjeDQzMzsiLS0+Ci08IS0tRU5USVRZIGRj
eSAiJiN4NDM0OyItLT4KLTwhLS1FTlRJVFkgaWVjeSAiJiN4NDM1OyItLT4KLTwhLS1FTlRJVFkg
emhjeSAiJiN4NDM2OyItLT4KLTwhLS1FTlRJVFkgemN5ICImI3g0Mzc7Ii0tPgotPCEtLUVOVElU
WSBpY3kgIiYjeDQzODsiLS0+Ci08IS0tRU5USVRZIGpjeSAiJiN4NDM5OyItLT4KLTwhLS1FTlRJ
VFkga2N5ICImI3g0M0E7Ii0tPgotPCEtLUVOVElUWSBsY3kgIiYjeDQzQjsiLS0+Ci08IS0tRU5U
SVRZIG1jeSAiJiN4NDNDOyItLT4KLTwhLS1FTlRJVFkgbmN5ICImI3g0M0Q7Ii0tPgotPCEtLUVO
VElUWSBvY3kgIiYjeDQzRTsiLS0+Ci08IS0tRU5USVRZIHBjeSAiJiN4NDNGOyItLT4KLTwhLS1F
TlRJVFkgcmN5ICImI3g0NDA7Ii0tPgotPCEtLUVOVElUWSBzY3kgIiYjeDQ0MTsiLS0+Ci08IS0t
RU5USVRZIHRjeSAiJiN4NDQyOyItLT4KLTwhLS1FTlRJVFkgdWN5ICImI3g0NDM7Ii0tPgotPCEt
LUVOVElUWSBmY3kgIiYjeDQ0NDsiLS0+Ci08IS0tRU5USVRZIGtoY3kgIiYjeDQ0NTsiLS0+Ci08
IS0tRU5USVRZIHRzY3kgIiYjeDQ0NjsiLS0+Ci08IS0tRU5USVRZIGNoY3kgIiYjeDQ0NzsiLS0+
Ci08IS0tRU5USVRZIHNoY3kgIiYjeDQ0ODsiLS0+Ci08IS0tRU5USVRZIHNoY2hjeSAiJiN4NDQ5
OyItLT4KLTwhLS1FTlRJVFkgaGFyZGN5ICImI3g0NEE7Ii0tPgotPCEtLUVOVElUWSB5Y3kgIiYj
eDQ0QjsiLS0+Ci08IS0tRU5USVRZIHNvZnRjeSAiJiN4NDRDOyItLT4KLTwhLS1FTlRJVFkgZWN5
ICImI3g0NEQ7Ii0tPgotPCEtLUVOVElUWSB5dWN5ICImI3g0NEU7Ii0tPgotPCEtLUVOVElUWSB5
YWN5ICImI3g0NEY7Ii0tPgotPCEtLUVOVElUWSBpb2N5ICImI3g0NTE7Ii0tPgotPCEtLUVOVElU
WSBkamN5ICImI3g0NTI7Ii0tPgotPCEtLUVOVElUWSBnamN5ICImI3g0NTM7Ii0tPgotPCEtLUVO
VElUWSBqdWtjeSAiJiN4NDU0OyItLT4KLTwhLS1FTlRJVFkgZHNjeSAiJiN4NDU1OyItLT4KLTwh
LS1FTlRJVFkgaXVrY3kgIiYjeDQ1NjsiLS0+Ci08IS0tRU5USVRZIHlpY3kgIiYjeDQ1NzsiLS0+
Ci08IS0tRU5USVRZIGpzZXJjeSAiJiN4NDU4OyItLT4KLTwhLS1FTlRJVFkgbGpjeSAiJiN4NDU5
OyItLT4KLTwhLS1FTlRJVFkgbmpjeSAiJiN4NDVBOyItLT4KLTwhLS1FTlRJVFkgdHNoY3kgIiYj
eDQ1QjsiLS0+Ci08IS0tRU5USVRZIGtqY3kgIiYjeDQ1QzsiLS0+Ci08IS0tRU5USVRZIHVicmN5
ICImI3g0NUU7Ii0tPgotPCEtLUVOVElUWSBkemN5ICImI3g0NUY7Ii0tPgotPCEtLUVOVElUWSBl
bnNwICImI3gyMDAyOyItLT4KLTwhLS1FTlRJVFkgZW1zcCAiJiN4MjAwMzsiLS0+Ci08IS0tRU5U
SVRZIGVtc3AxMyAiJiN4MjAwNDsiLS0+Ci08IS0tRU5USVRZIGVtc3AxNCAiJiN4MjAwNTsiLS0+
Ci08IS0tRU5USVRZIG51bXNwICImI3gyMDA3OyItLT4KLTwhLS1FTlRJVFkgcHVuY3NwICImI3gy
MDA4OyItLT4KLTwhLS1FTlRJVFkgdGhpbnNwICImI3gyMDA5OyItLT4KLTwhLS1FTlRJVFkgVGhp
blNwYWNlICImI3gyMDA5OyItLT4KLTwhLS1FTlRJVFkgaGFpcnNwICImI3gyMDBBOyItLT4KLTwh
LS1FTlRJVFkgVmVyeVRoaW5TcGFjZSAiJiN4MjAwQTsiLS0+Ci08IS0tRU5USVRZIFplcm9XaWR0
aFNwYWNlICImI3gyMDBCOyItLT4KLTwhLS1FTlRJVFkgTmVnYXRpdmVWZXJ5VGhpblNwYWNlICIm
I3gyMDBCOyItLT4KLTwhLS1FTlRJVFkgTmVnYXRpdmVUaGluU3BhY2UgIiYjeDIwMEI7Ii0tPgot
PCEtLUVOVElUWSBOZWdhdGl2ZU1lZGl1bVNwYWNlICImI3gyMDBCOyItLT4KLTwhLS1FTlRJVFkg
TmVnYXRpdmVUaGlja1NwYWNlICImI3gyMDBCOyItLT4KLTwhLS1FTlRJVFkgenduaiAiJiN4MjAw
QzsiLS0+Ci08IS0tRU5USVRZIHp3aiAiJiN4MjAwRDsiLS0+Ci08IS0tRU5USVRZIGxybSAiJiN4
MjAwRTsiLS0+Ci08IS0tRU5USVRZIHJsbSAiJiN4MjAwRjsiLS0+Ci08IS0tRU5USVRZIGh5cGhl
biAiJiN4MjAxMDsiLS0+Ci08IS0tRU5USVRZIGRhc2ggIiYjeDIwMTA7Ii0tPgotPCEtLUVOVElU
WSBuZGFzaCAiJiN4MjAxMzsiLS0+Ci08IS0tRU5USVRZIG1kYXNoICImI3gyMDE0OyItLT4KLTwh
LS1FTlRJVFkgaG9yYmFyICImI3gyMDE1OyItLT4KLTwhLS1FTlRJVFkgVmVyYmFyICImI3gyMDE2
OyItLT4KLTwhLS1FTlRJVFkgVmVydCAiJiN4MjAxNjsiLS0+Ci08IS0tRU5USVRZIGxzcXVvICIm
I3gyMDE4OyItLT4KLTwhLS1FTlRJVFkgT3BlbkN1cmx5UXVvdGUgIiYjeDIwMTg7Ii0tPgotPCEt
LUVOVElUWSByc3F1byAiJiN4MjAxOTsiLS0+Ci08IS0tRU5USVRZIHJzcXVvciAiJiN4MjAxOTsi
LS0+Ci08IS0tRU5USVRZIENsb3NlQ3VybHlRdW90ZSAiJiN4MjAxOTsiLS0+Ci08IS0tRU5USVRZ
IGxzcXVvciAiJiN4MjAxQTsiLS0+Ci08IS0tRU5USVRZIHNicXVvICImI3gyMDFBOyItLT4KLTwh
LS1FTlRJVFkgbGRxdW8gIiYjeDIwMUM7Ii0tPgotPCEtLUVOVElUWSBPcGVuQ3VybHlEb3VibGVR
dW90ZSAiJiN4MjAxQzsiLS0+Ci08IS0tRU5USVRZIHJkcXVvICImI3gyMDFEOyItLT4KLTwhLS1F
TlRJVFkgcmRxdW9yICImI3gyMDFEOyItLT4KLTwhLS1FTlRJVFkgQ2xvc2VDdXJseURvdWJsZVF1
b3RlICImI3gyMDFEOyItLT4KLTwhLS1FTlRJVFkgbGRxdW9yICImI3gyMDFFOyItLT4KLTwhLS1F
TlRJVFkgYmRxdW8gIiYjeDIwMUU7Ii0tPgotPCEtLUVOVElUWSBkYWdnZXIgIiYjeDIwMjA7Ii0t
PgotPCEtLUVOVElUWSBEYWdnZXIgIiYjeDIwMjE7Ii0tPgotPCEtLUVOVElUWSBkZGFnZ2VyICIm
I3gyMDIxOyItLT4KLTwhLS1FTlRJVFkgYnVsbCAiJiN4MjAyMjsiLS0+Ci08IS0tRU5USVRZIGJ1
bGxldCAiJiN4MjAyMjsiLS0+Ci08IS0tRU5USVRZIG5sZHIgIiYjeDIwMjU7Ii0tPgotPCEtLUVO
VElUWSBoZWxsaXAgIiYjeDIwMjY7Ii0tPgotPCEtLUVOVElUWSBtbGRyICImI3gyMDI2OyItLT4K
LTwhLS1FTlRJVFkgcGVybWlsICImI3gyMDMwOyItLT4KLTwhLS1FTlRJVFkgcGVydGVuayAiJiN4
MjAzMTsiLS0+Ci08IS0tRU5USVRZIHByaW1lICImI3gyMDMyOyItLT4KLTwhLS1FTlRJVFkgUHJp
bWUgIiYjeDIwMzM7Ii0tPgotPCEtLUVOVElUWSB0cHJpbWUgIiYjeDIwMzQ7Ii0tPgotPCEtLUVO
VElUWSBicHJpbWUgIiYjeDIwMzU7Ii0tPgotPCEtLUVOVElUWSBiYWNrcHJpbWUgIiYjeDIwMzU7
Ii0tPgotPCEtLUVOVElUWSBsc2FxdW8gIiYjeDIwMzk7Ii0tPgotPCEtLUVOVElUWSByc2FxdW8g
IiYjeDIwM0E7Ii0tPgotPCEtLUVOVElUWSBvbGluZSAiJiN4MjAzRTsiLS0+Ci08IS0tRU5USVRZ
IE92ZXJCYXIgIiYjeDIwM0U7Ii0tPgotPCEtLUVOVElUWSBjYXJldCAiJiN4MjA0MTsiLS0+Ci08
IS0tRU5USVRZIGh5YnVsbCAiJiN4MjA0MzsiLS0+Ci08IS0tRU5USVRZIGZyYXNsICImI3gyMDQ0
OyItLT4KLTwhLS1FTlRJVFkgYnNlbWkgIiYjeDIwNEY7Ii0tPgotPCEtLUVOVElUWSBxcHJpbWUg
IiYjeDIwNTc7Ii0tPgotPCEtLUVOVElUWSBNZWRpdW1TcGFjZSAiJiN4MjA1RjsiLS0+Ci08IS0t
RU5USVRZIFRoaWNrU3BhY2UgIiYjeDIwNUY7JiN4MjAwQTsiLS0+Ci08IS0tRU5USVRZIE5vQnJl
YWsgIiYjeDIwNjA7Ii0tPgotPCEtLUVOVElUWSBBcHBseUZ1bmN0aW9uICImI3gyMDYxOyItLT4K
LTwhLS1FTlRJVFkgYWYgIiYjeDIwNjE7Ii0tPgotPCEtLUVOVElUWSBJbnZpc2libGVUaW1lcyAi
JiN4MjA2MjsiLS0+Ci08IS0tRU5USVRZIGl0ICImI3gyMDYyOyItLT4KLTwhLS1FTlRJVFkgSW52
aXNpYmxlQ29tbWEgIiYjeDIwNjM7Ii0tPgotPCEtLUVOVElUWSBpYyAiJiN4MjA2MzsiLS0+Ci08
IS0tRU5USVRZIGV1cm8gIiYjeDIwQUM7Ii0tPgotPCEtLUVOVElUWSB0ZG90ICImI3gyMERCOyIt
LT4KLTwhLS1FTlRJVFkgVHJpcGxlRG90ICImI3gyMERCOyItLT4KLTwhLS1FTlRJVFkgRG90RG90
ICImI3gyMERDOyItLT4KLTwhLS1FTlRJVFkgQ29wZiAiJiN4MjEwMjsiLS0+Ci08IS0tRU5USVRZ
IGNvbXBsZXhlcyAiJiN4MjEwMjsiLS0+Ci08IS0tRU5USVRZIGluY2FyZSAiJiN4MjEwNTsiLS0+
Ci08IS0tRU5USVRZIGdzY3IgIiYjeDIxMEE7Ii0tPgotPCEtLUVOVElUWSBoYW1pbHQgIiYjeDIx
MEI7Ii0tPgotPCEtLUVOVElUWSBIaWxiZXJ0U3BhY2UgIiYjeDIxMEI7Ii0tPgotPCEtLUVOVElU
WSBIc2NyICImI3gyMTBCOyItLT4KLTwhLS1FTlRJVFkgSGZyICImI3gyMTBDOyItLT4KLTwhLS1F
TlRJVFkgUG9pbmNhcmVwbGFuZSAiJiN4MjEwQzsiLS0+Ci08IS0tRU5USVRZIHF1YXRlcm5pb25z
ICImI3gyMTBEOyItLT4KLTwhLS1FTlRJVFkgSG9wZiAiJiN4MjEwRDsiLS0+Ci08IS0tRU5USVRZ
IHBsYW5ja2ggIiYjeDIxMEU7Ii0tPgotPCEtLUVOVElUWSBwbGFuY2sgIiYjeDIxMEY7Ii0tPgot
PCEtLUVOVElUWSBoYmFyICImI3gyMTBGOyItLT4KLTwhLS1FTlRJVFkgcGxhbmt2ICImI3gyMTBG
OyItLT4KLTwhLS1FTlRJVFkgaHNsYXNoICImI3gyMTBGOyItLT4KLTwhLS1FTlRJVFkgSXNjciAi
JiN4MjExMDsiLS0+Ci08IS0tRU5USVRZIGltYWdsaW5lICImI3gyMTEwOyItLT4KLTwhLS1FTlRJ
VFkgaW1hZ2UgIiYjeDIxMTE7Ii0tPgotPCEtLUVOVElUWSBJbSAiJiN4MjExMTsiLS0+Ci08IS0t
RU5USVRZIGltYWdwYXJ0ICImI3gyMTExOyItLT4KLTwhLS1FTlRJVFkgSWZyICImI3gyMTExOyIt
LT4KLTwhLS1FTlRJVFkgTHNjciAiJiN4MjExMjsiLS0+Ci08IS0tRU5USVRZIGxhZ3JhbiAiJiN4
MjExMjsiLS0+Ci08IS0tRU5USVRZIExhcGxhY2V0cmYgIiYjeDIxMTI7Ii0tPgotPCEtLUVOVElU
WSBlbGwgIiYjeDIxMTM7Ii0tPgotPCEtLUVOVElUWSBOb3BmICImI3gyMTE1OyItLT4KLTwhLS1F
TlRJVFkgbmF0dXJhbHMgIiYjeDIxMTU7Ii0tPgotPCEtLUVOVElUWSBudW1lcm8gIiYjeDIxMTY7
Ii0tPgotPCEtLUVOVElUWSBjb3B5c3IgIiYjeDIxMTc7Ii0tPgotPCEtLUVOVElUWSB3ZWllcnAg
IiYjeDIxMTg7Ii0tPgotPCEtLUVOVElUWSB3cCAiJiN4MjExODsiLS0+Ci08IS0tRU5USVRZIFBv
cGYgIiYjeDIxMTk7Ii0tPgotPCEtLUVOVElUWSBwcmltZXMgIiYjeDIxMTk7Ii0tPgotPCEtLUVO
VElUWSByYXRpb25hbHMgIiYjeDIxMUE7Ii0tPgotPCEtLUVOVElUWSBRb3BmICImI3gyMTFBOyIt
LT4KLTwhLS1FTlRJVFkgUnNjciAiJiN4MjExQjsiLS0+Ci08IS0tRU5USVRZIHJlYWxpbmUgIiYj
eDIxMUI7Ii0tPgotPCEtLUVOVElUWSByZWFsICImI3gyMTFDOyItLT4KLTwhLS1FTlRJVFkgUmUg
IiYjeDIxMUM7Ii0tPgotPCEtLUVOVElUWSByZWFscGFydCAiJiN4MjExQzsiLS0+Ci08IS0tRU5U
SVRZIFJmciAiJiN4MjExQzsiLS0+Ci08IS0tRU5USVRZIHJlYWxzICImI3gyMTFEOyItLT4KLTwh
LS1FTlRJVFkgUm9wZiAiJiN4MjExRDsiLS0+Ci08IS0tRU5USVRZIHJ4ICImI3gyMTFFOyItLT4K
LTwhLS1FTlRJVFkgdHJhZGUgIiYjeDIxMjI7Ii0tPgotPCEtLUVOVElUWSBUUkFERSAiJiN4MjEy
MjsiLS0+Ci08IS0tRU5USVRZIGludGVnZXJzICImI3gyMTI0OyItLT4KLTwhLS1FTlRJVFkgWm9w
ZiAiJiN4MjEyNDsiLS0+Ci08IS0tRU5USVRZIG1obyAiJiN4MjEyNzsiLS0+Ci08IS0tRU5USVRZ
IFpmciAiJiN4MjEyODsiLS0+Ci08IS0tRU5USVRZIHplZXRyZiAiJiN4MjEyODsiLS0+Ci08IS0t
RU5USVRZIGlpb3RhICImI3gyMTI5OyItLT4KLTwhLS1FTlRJVFkgYmVybm91ICImI3gyMTJDOyIt
LT4KLTwhLS1FTlRJVFkgQmVybm91bGxpcyAiJiN4MjEyQzsiLS0+Ci08IS0tRU5USVRZIEJzY3Ig
IiYjeDIxMkM7Ii0tPgotPCEtLUVOVElUWSBDZnIgIiYjeDIxMkQ7Ii0tPgotPCEtLUVOVElUWSBD
YXlsZXlzICImI3gyMTJEOyItLT4KLTwhLS1FTlRJVFkgZXNjciAiJiN4MjEyRjsiLS0+Ci08IS0t
RU5USVRZIEVzY3IgIiYjeDIxMzA7Ii0tPgotPCEtLUVOVElUWSBleHBlY3RhdGlvbiAiJiN4MjEz
MDsiLS0+Ci08IS0tRU5USVRZIEZzY3IgIiYjeDIxMzE7Ii0tPgotPCEtLUVOVElUWSBGb3VyaWVy
dHJmICImI3gyMTMxOyItLT4KLTwhLS1FTlRJVFkgcGhtbWF0ICImI3gyMTMzOyItLT4KLTwhLS1F
TlRJVFkgTWVsbGludHJmICImI3gyMTMzOyItLT4KLTwhLS1FTlRJVFkgTXNjciAiJiN4MjEzMzsi
LS0+Ci08IS0tRU5USVRZIG9yZGVyICImI3gyMTM0OyItLT4KLTwhLS1FTlRJVFkgb3JkZXJvZiAi
JiN4MjEzNDsiLS0+Ci08IS0tRU5USVRZIG9zY3IgIiYjeDIxMzQ7Ii0tPgotPCEtLUVOVElUWSBh
bGVmc3ltICImI3gyMTM1OyItLT4KLTwhLS1FTlRJVFkgYWxlcGggIiYjeDIxMzU7Ii0tPgotPCEt
LUVOVElUWSBiZXRoICImI3gyMTM2OyItLT4KLTwhLS1FTlRJVFkgZ2ltZWwgIiYjeDIxMzc7Ii0t
PgotPCEtLUVOVElUWSBkYWxldGggIiYjeDIxMzg7Ii0tPgotPCEtLUVOVElUWSBDYXBpdGFsRGlm
ZmVyZW50aWFsRCAiJiN4MjE0NTsiLS0+Ci08IS0tRU5USVRZIEREICImI3gyMTQ1OyItLT4KLTwh
LS1FTlRJVFkgRGlmZmVyZW50aWFsRCAiJiN4MjE0NjsiLS0+Ci08IS0tRU5USVRZIGRkICImI3gy
MTQ2OyItLT4KLTwhLS1FTlRJVFkgRXhwb25lbnRpYWxFICImI3gyMTQ3OyItLT4KLTwhLS1FTlRJ
VFkgZXhwb25lbnRpYWxlICImI3gyMTQ3OyItLT4KLTwhLS1FTlRJVFkgZWUgIiYjeDIxNDc7Ii0t
PgotPCEtLUVOVElUWSBJbWFnaW5hcnlJICImI3gyMTQ4OyItLT4KLTwhLS1FTlRJVFkgaWkgIiYj
eDIxNDg7Ii0tPgotPCEtLUVOVElUWSBmcmFjMTMgIiYjeDIxNTM7Ii0tPgotPCEtLUVOVElUWSBm
cmFjMjMgIiYjeDIxNTQ7Ii0tPgotPCEtLUVOVElUWSBmcmFjMTUgIiYjeDIxNTU7Ii0tPgotPCEt
LUVOVElUWSBmcmFjMjUgIiYjeDIxNTY7Ii0tPgotPCEtLUVOVElUWSBmcmFjMzUgIiYjeDIxNTc7
Ii0tPgotPCEtLUVOVElUWSBmcmFjNDUgIiYjeDIxNTg7Ii0tPgotPCEtLUVOVElUWSBmcmFjMTYg
IiYjeDIxNTk7Ii0tPgotPCEtLUVOVElUWSBmcmFjNTYgIiYjeDIxNUE7Ii0tPgotPCEtLUVOVElU
WSBmcmFjMTggIiYjeDIxNUI7Ii0tPgotPCEtLUVOVElUWSBmcmFjMzggIiYjeDIxNUM7Ii0tPgot
PCEtLUVOVElUWSBmcmFjNTggIiYjeDIxNUQ7Ii0tPgotPCEtLUVOVElUWSBmcmFjNzggIiYjeDIx
NUU7Ii0tPgotPCEtLUVOVElUWSBsYXJyICImI3gyMTkwOyItLT4KLTwhLS1FTlRJVFkgbGVmdGFy
cm93ICImI3gyMTkwOyItLT4KLTwhLS1FTlRJVFkgTGVmdEFycm93ICImI3gyMTkwOyItLT4KLTwh
LS1FTlRJVFkgc2xhcnIgIiYjeDIxOTA7Ii0tPgotPCEtLUVOVElUWSBTaG9ydExlZnRBcnJvdyAi
JiN4MjE5MDsiLS0+Ci08IS0tRU5USVRZIHVhcnIgIiYjeDIxOTE7Ii0tPgotPCEtLUVOVElUWSB1
cGFycm93ICImI3gyMTkxOyItLT4KLTwhLS1FTlRJVFkgVXBBcnJvdyAiJiN4MjE5MTsiLS0+Ci08
IS0tRU5USVRZIFNob3J0VXBBcnJvdyAiJiN4MjE5MTsiLS0+Ci08IS0tRU5USVRZIHJhcnIgIiYj
eDIxOTI7Ii0tPgotPCEtLUVOVElUWSByaWdodGFycm93ICImI3gyMTkyOyItLT4KLTwhLS1FTlRJ
VFkgUmlnaHRBcnJvdyAiJiN4MjE5MjsiLS0+Ci08IS0tRU5USVRZIHNyYXJyICImI3gyMTkyOyIt
LT4KLTwhLS1FTlRJVFkgU2hvcnRSaWdodEFycm93ICImI3gyMTkyOyItLT4KLTwhLS1FTlRJVFkg
ZGFyciAiJiN4MjE5MzsiLS0+Ci08IS0tRU5USVRZIGRvd25hcnJvdyAiJiN4MjE5MzsiLS0+Ci08
IS0tRU5USVRZIERvd25BcnJvdyAiJiN4MjE5MzsiLS0+Ci08IS0tRU5USVRZIFNob3J0RG93bkFy
cm93ICImI3gyMTkzOyItLT4KLTwhLS1FTlRJVFkgaGFyciAiJiN4MjE5NDsiLS0+Ci08IS0tRU5U
SVRZIGxlZnRyaWdodGFycm93ICImI3gyMTk0OyItLT4KLTwhLS1FTlRJVFkgTGVmdFJpZ2h0QXJy
b3cgIiYjeDIxOTQ7Ii0tPgotPCEtLUVOVElUWSB2YXJyICImI3gyMTk1OyItLT4KLTwhLS1FTlRJ
VFkgdXBkb3duYXJyb3cgIiYjeDIxOTU7Ii0tPgotPCEtLUVOVElUWSBVcERvd25BcnJvdyAiJiN4
MjE5NTsiLS0+Ci08IS0tRU5USVRZIG53YXJyICImI3gyMTk2OyItLT4KLTwhLS1FTlRJVFkgVXBw
ZXJMZWZ0QXJyb3cgIiYjeDIxOTY7Ii0tPgotPCEtLUVOVElUWSBud2Fycm93ICImI3gyMTk2OyIt
LT4KLTwhLS1FTlRJVFkgbmVhcnIgIiYjeDIxOTc7Ii0tPgotPCEtLUVOVElUWSBVcHBlclJpZ2h0
QXJyb3cgIiYjeDIxOTc7Ii0tPgotPCEtLUVOVElUWSBuZWFycm93ICImI3gyMTk3OyItLT4KLTwh
LS1FTlRJVFkgc2VhcnIgIiYjeDIxOTg7Ii0tPgotPCEtLUVOVElUWSBzZWFycm93ICImI3gyMTk4
OyItLT4KLTwhLS1FTlRJVFkgTG93ZXJSaWdodEFycm93ICImI3gyMTk4OyItLT4KLTwhLS1FTlRJ
VFkgc3dhcnIgIiYjeDIxOTk7Ii0tPgotPCEtLUVOVElUWSBzd2Fycm93ICImI3gyMTk5OyItLT4K
LTwhLS1FTlRJVFkgTG93ZXJMZWZ0QXJyb3cgIiYjeDIxOTk7Ii0tPgotPCEtLUVOVElUWSBubGFy
ciAiJiN4MjE5QTsiLS0+Ci08IS0tRU5USVRZIG5sZWZ0YXJyb3cgIiYjeDIxOUE7Ii0tPgotPCEt
LUVOVElUWSBucmFyciAiJiN4MjE5QjsiLS0+Ci08IS0tRU5USVRZIG5yaWdodGFycm93ICImI3gy
MTlCOyItLT4KLTwhLS1FTlRJVFkgcmFycncgIiYjeDIxOUQ7Ii0tPgotPCEtLUVOVElUWSByaWdo
dHNxdWlnYXJyb3cgIiYjeDIxOUQ7Ii0tPgotPCEtLUVOVElUWSBucmFycncgIiYjeDIxOUQ7JiN4
MzM4OyItLT4KLTwhLS1FTlRJVFkgTGFyciAiJiN4MjE5RTsiLS0+Ci08IS0tRU5USVRZIHR3b2hl
YWRsZWZ0YXJyb3cgIiYjeDIxOUU7Ii0tPgotPCEtLUVOVElUWSBVYXJyICImI3gyMTlGOyItLT4K
LTwhLS1FTlRJVFkgUmFyciAiJiN4MjFBMDsiLS0+Ci08IS0tRU5USVRZIHR3b2hlYWRyaWdodGFy
cm93ICImI3gyMUEwOyItLT4KLTwhLS1FTlRJVFkgRGFyciAiJiN4MjFBMTsiLS0+Ci08IS0tRU5U
SVRZIGxhcnJ0bCAiJiN4MjFBMjsiLS0+Ci08IS0tRU5USVRZIGxlZnRhcnJvd3RhaWwgIiYjeDIx
QTI7Ii0tPgotPCEtLUVOVElUWSByYXJydGwgIiYjeDIxQTM7Ii0tPgotPCEtLUVOVElUWSByaWdo
dGFycm93dGFpbCAiJiN4MjFBMzsiLS0+Ci08IS0tRU5USVRZIExlZnRUZWVBcnJvdyAiJiN4MjFB
NDsiLS0+Ci08IS0tRU5USVRZIG1hcHN0b2xlZnQgIiYjeDIxQTQ7Ii0tPgotPCEtLUVOVElUWSBV
cFRlZUFycm93ICImI3gyMUE1OyItLT4KLTwhLS1FTlRJVFkgbWFwc3RvdXAgIiYjeDIxQTU7Ii0t
PgotPCEtLUVOVElUWSBtYXAgIiYjeDIxQTY7Ii0tPgotPCEtLUVOVElUWSBSaWdodFRlZUFycm93
ICImI3gyMUE2OyItLT4KLTwhLS1FTlRJVFkgbWFwc3RvICImI3gyMUE2OyItLT4KLTwhLS1FTlRJ
VFkgRG93blRlZUFycm93ICImI3gyMUE3OyItLT4KLTwhLS1FTlRJVFkgbWFwc3RvZG93biAiJiN4
MjFBNzsiLS0+Ci08IS0tRU5USVRZIGxhcnJoayAiJiN4MjFBOTsiLS0+Ci08IS0tRU5USVRZIGhv
b2tsZWZ0YXJyb3cgIiYjeDIxQTk7Ii0tPgotPCEtLUVOVElUWSByYXJyaGsgIiYjeDIxQUE7Ii0t
PgotPCEtLUVOVElUWSBob29rcmlnaHRhcnJvdyAiJiN4MjFBQTsiLS0+Ci08IS0tRU5USVRZIGxh
cnJscCAiJiN4MjFBQjsiLS0+Ci08IS0tRU5USVRZIGxvb3BhcnJvd2xlZnQgIiYjeDIxQUI7Ii0t
PgotPCEtLUVOVElUWSByYXJybHAgIiYjeDIxQUM7Ii0tPgotPCEtLUVOVElUWSBsb29wYXJyb3dy
aWdodCAiJiN4MjFBQzsiLS0+Ci08IS0tRU5USVRZIGhhcnJ3ICImI3gyMUFEOyItLT4KLTwhLS1F
TlRJVFkgbGVmdHJpZ2h0c3F1aWdhcnJvdyAiJiN4MjFBRDsiLS0+Ci08IS0tRU5USVRZIG5oYXJy
ICImI3gyMUFFOyItLT4KLTwhLS1FTlRJVFkgbmxlZnRyaWdodGFycm93ICImI3gyMUFFOyItLT4K
LTwhLS1FTlRJVFkgbHNoICImI3gyMUIwOyItLT4KLTwhLS1FTlRJVFkgTHNoICImI3gyMUIwOyIt
LT4KLTwhLS1FTlRJVFkgcnNoICImI3gyMUIxOyItLT4KLTwhLS1FTlRJVFkgUnNoICImI3gyMUIx
OyItLT4KLTwhLS1FTlRJVFkgbGRzaCAiJiN4MjFCMjsiLS0+Ci08IS0tRU5USVRZIHJkc2ggIiYj
eDIxQjM7Ii0tPgotPCEtLUVOVElUWSBjcmFyciAiJiN4MjFCNTsiLS0+Ci08IS0tRU5USVRZIGN1
bGFyciAiJiN4MjFCNjsiLS0+Ci08IS0tRU5USVRZIGN1cnZlYXJyb3dsZWZ0ICImI3gyMUI2OyIt
LT4KLTwhLS1FTlRJVFkgY3VyYXJyICImI3gyMUI3OyItLT4KLTwhLS1FTlRJVFkgY3VydmVhcnJv
d3JpZ2h0ICImI3gyMUI3OyItLT4KLTwhLS1FTlRJVFkgb2xhcnIgIiYjeDIxQkE7Ii0tPgotPCEt
LUVOVElUWSBjaXJjbGVhcnJvd2xlZnQgIiYjeDIxQkE7Ii0tPgotPCEtLUVOVElUWSBvcmFyciAi
JiN4MjFCQjsiLS0+Ci08IS0tRU5USVRZIGNpcmNsZWFycm93cmlnaHQgIiYjeDIxQkI7Ii0tPgot
PCEtLUVOVElUWSBsaGFydSAiJiN4MjFCQzsiLS0+Ci08IS0tRU5USVRZIExlZnRWZWN0b3IgIiYj
eDIxQkM7Ii0tPgotPCEtLUVOVElUWSBsZWZ0aGFycG9vbnVwICImI3gyMUJDOyItLT4KLTwhLS1F
TlRJVFkgbGhhcmQgIiYjeDIxQkQ7Ii0tPgotPCEtLUVOVElUWSBsZWZ0aGFycG9vbmRvd24gIiYj
eDIxQkQ7Ii0tPgotPCEtLUVOVElUWSBEb3duTGVmdFZlY3RvciAiJiN4MjFCRDsiLS0+Ci08IS0t
RU5USVRZIHVoYXJyICImI3gyMUJFOyItLT4KLTwhLS1FTlRJVFkgdXBoYXJwb29ucmlnaHQgIiYj
eDIxQkU7Ii0tPgotPCEtLUVOVElUWSBSaWdodFVwVmVjdG9yICImI3gyMUJFOyItLT4KLTwhLS1F
TlRJVFkgdWhhcmwgIiYjeDIxQkY7Ii0tPgotPCEtLUVOVElUWSB1cGhhcnBvb25sZWZ0ICImI3gy
MUJGOyItLT4KLTwhLS1FTlRJVFkgTGVmdFVwVmVjdG9yICImI3gyMUJGOyItLT4KLTwhLS1FTlRJ
VFkgcmhhcnUgIiYjeDIxQzA7Ii0tPgotPCEtLUVOVElUWSBSaWdodFZlY3RvciAiJiN4MjFDMDsi
LS0+Ci08IS0tRU5USVRZIHJpZ2h0aGFycG9vbnVwICImI3gyMUMwOyItLT4KLTwhLS1FTlRJVFkg
cmhhcmQgIiYjeDIxQzE7Ii0tPgotPCEtLUVOVElUWSByaWdodGhhcnBvb25kb3duICImI3gyMUMx
OyItLT4KLTwhLS1FTlRJVFkgRG93blJpZ2h0VmVjdG9yICImI3gyMUMxOyItLT4KLTwhLS1FTlRJ
VFkgZGhhcnIgIiYjeDIxQzI7Ii0tPgotPCEtLUVOVElUWSBSaWdodERvd25WZWN0b3IgIiYjeDIx
QzI7Ii0tPgotPCEtLUVOVElUWSBkb3duaGFycG9vbnJpZ2h0ICImI3gyMUMyOyItLT4KLTwhLS1F
TlRJVFkgZGhhcmwgIiYjeDIxQzM7Ii0tPgotPCEtLUVOVElUWSBMZWZ0RG93blZlY3RvciAiJiN4
MjFDMzsiLS0+Ci08IS0tRU5USVRZIGRvd25oYXJwb29ubGVmdCAiJiN4MjFDMzsiLS0+Ci08IS0t
RU5USVRZIHJsYXJyICImI3gyMUM0OyItLT4KLTwhLS1FTlRJVFkgcmlnaHRsZWZ0YXJyb3dzICIm
I3gyMUM0OyItLT4KLTwhLS1FTlRJVFkgUmlnaHRBcnJvd0xlZnRBcnJvdyAiJiN4MjFDNDsiLS0+
Ci08IS0tRU5USVRZIHVkYXJyICImI3gyMUM1OyItLT4KLTwhLS1FTlRJVFkgVXBBcnJvd0Rvd25B
cnJvdyAiJiN4MjFDNTsiLS0+Ci08IS0tRU5USVRZIGxyYXJyICImI3gyMUM2OyItLT4KLTwhLS1F
TlRJVFkgbGVmdHJpZ2h0YXJyb3dzICImI3gyMUM2OyItLT4KLTwhLS1FTlRJVFkgTGVmdEFycm93
UmlnaHRBcnJvdyAiJiN4MjFDNjsiLS0+Ci08IS0tRU5USVRZIGxsYXJyICImI3gyMUM3OyItLT4K
LTwhLS1FTlRJVFkgbGVmdGxlZnRhcnJvd3MgIiYjeDIxQzc7Ii0tPgotPCEtLUVOVElUWSB1dWFy
ciAiJiN4MjFDODsiLS0+Ci08IS0tRU5USVRZIHVwdXBhcnJvd3MgIiYjeDIxQzg7Ii0tPgotPCEt
LUVOVElUWSBycmFyciAiJiN4MjFDOTsiLS0+Ci08IS0tRU5USVRZIHJpZ2h0cmlnaHRhcnJvd3Mg
IiYjeDIxQzk7Ii0tPgotPCEtLUVOVElUWSBkZGFyciAiJiN4MjFDQTsiLS0+Ci08IS0tRU5USVRZ
IGRvd25kb3duYXJyb3dzICImI3gyMUNBOyItLT4KLTwhLS1FTlRJVFkgbHJoYXIgIiYjeDIxQ0I7
Ii0tPgotPCEtLUVOVElUWSBSZXZlcnNlRXF1aWxpYnJpdW0gIiYjeDIxQ0I7Ii0tPgotPCEtLUVO
VElUWSBsZWZ0cmlnaHRoYXJwb29ucyAiJiN4MjFDQjsiLS0+Ci08IS0tRU5USVRZIHJsaGFyICIm
I3gyMUNDOyItLT4KLTwhLS1FTlRJVFkgcmlnaHRsZWZ0aGFycG9vbnMgIiYjeDIxQ0M7Ii0tPgot
PCEtLUVOVElUWSBFcXVpbGlicml1bSAiJiN4MjFDQzsiLS0+Ci08IS0tRU5USVRZIG5sQXJyICIm
I3gyMUNEOyItLT4KLTwhLS1FTlRJVFkgbkxlZnRhcnJvdyAiJiN4MjFDRDsiLS0+Ci08IS0tRU5U
SVRZIG5oQXJyICImI3gyMUNFOyItLT4KLTwhLS1FTlRJVFkgbkxlZnRyaWdodGFycm93ICImI3gy
MUNFOyItLT4KLTwhLS1FTlRJVFkgbnJBcnIgIiYjeDIxQ0Y7Ii0tPgotPCEtLUVOVElUWSBuUmln
aHRhcnJvdyAiJiN4MjFDRjsiLS0+Ci08IS0tRU5USVRZIGxBcnIgIiYjeDIxRDA7Ii0tPgotPCEt
LUVOVElUWSBMZWZ0YXJyb3cgIiYjeDIxRDA7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVMZWZ0QXJy
b3cgIiYjeDIxRDA7Ii0tPgotPCEtLUVOVElUWSB1QXJyICImI3gyMUQxOyItLT4KLTwhLS1FTlRJ
VFkgVXBhcnJvdyAiJiN4MjFEMTsiLS0+Ci08IS0tRU5USVRZIERvdWJsZVVwQXJyb3cgIiYjeDIx
RDE7Ii0tPgotPCEtLUVOVElUWSByQXJyICImI3gyMUQyOyItLT4KLTwhLS1FTlRJVFkgUmlnaHRh
cnJvdyAiJiN4MjFEMjsiLS0+Ci08IS0tRU5USVRZIEltcGxpZXMgIiYjeDIxRDI7Ii0tPgotPCEt
LUVOVElUWSBEb3VibGVSaWdodEFycm93ICImI3gyMUQyOyItLT4KLTwhLS1FTlRJVFkgZEFyciAi
JiN4MjFEMzsiLS0+Ci08IS0tRU5USVRZIERvd25hcnJvdyAiJiN4MjFEMzsiLS0+Ci08IS0tRU5U
SVRZIERvdWJsZURvd25BcnJvdyAiJiN4MjFEMzsiLS0+Ci08IS0tRU5USVRZIGhBcnIgIiYjeDIx
RDQ7Ii0tPgotPCEtLUVOVElUWSBMZWZ0cmlnaHRhcnJvdyAiJiN4MjFENDsiLS0+Ci08IS0tRU5U
SVRZIERvdWJsZUxlZnRSaWdodEFycm93ICImI3gyMUQ0OyItLT4KLTwhLS1FTlRJVFkgaWZmICIm
I3gyMUQ0OyItLT4KLTwhLS1FTlRJVFkgdkFyciAiJiN4MjFENTsiLS0+Ci08IS0tRU5USVRZIFVw
ZG93bmFycm93ICImI3gyMUQ1OyItLT4KLTwhLS1FTlRJVFkgRG91YmxlVXBEb3duQXJyb3cgIiYj
eDIxRDU7Ii0tPgotPCEtLUVOVElUWSBud0FyciAiJiN4MjFENjsiLS0+Ci08IS0tRU5USVRZIG5l
QXJyICImI3gyMUQ3OyItLT4KLTwhLS1FTlRJVFkgc2VBcnIgIiYjeDIxRDg7Ii0tPgotPCEtLUVO
VElUWSBzd0FyciAiJiN4MjFEOTsiLS0+Ci08IS0tRU5USVRZIGxBYXJyICImI3gyMURBOyItLT4K
LTwhLS1FTlRJVFkgTGxlZnRhcnJvdyAiJiN4MjFEQTsiLS0+Ci08IS0tRU5USVRZIHJBYXJyICIm
I3gyMURCOyItLT4KLTwhLS1FTlRJVFkgUnJpZ2h0YXJyb3cgIiYjeDIxREI7Ii0tPgotPCEtLUVO
VElUWSB6aWdyYXJyICImI3gyMUREOyItLT4KLTwhLS1FTlRJVFkgbGFycmIgIiYjeDIxRTQ7Ii0t
PgotPCEtLUVOVElUWSBMZWZ0QXJyb3dCYXIgIiYjeDIxRTQ7Ii0tPgotPCEtLUVOVElUWSByYXJy
YiAiJiN4MjFFNTsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0QXJyb3dCYXIgIiYjeDIxRTU7Ii0tPgot
PCEtLUVOVElUWSBkdWFyciAiJiN4MjFGNTsiLS0+Ci08IS0tRU5USVRZIERvd25BcnJvd1VwQXJy
b3cgIiYjeDIxRjU7Ii0tPgotPCEtLUVOVElUWSBsb2FyciAiJiN4MjFGRDsiLS0+Ci08IS0tRU5U
SVRZIHJvYXJyICImI3gyMUZFOyItLT4KLTwhLS1FTlRJVFkgaG9hcnIgIiYjeDIxRkY7Ii0tPgot
PCEtLUVOVElUWSBmb3JhbGwgIiYjeDIyMDA7Ii0tPgotPCEtLUVOVElUWSBGb3JBbGwgIiYjeDIy
MDA7Ii0tPgotPCEtLUVOVElUWSBjb21wICImI3gyMjAxOyItLT4KLTwhLS1FTlRJVFkgY29tcGxl
bWVudCAiJiN4MjIwMTsiLS0+Ci08IS0tRU5USVRZIHBhcnQgIiYjeDIyMDI7Ii0tPgotPCEtLUVO
VElUWSBQYXJ0aWFsRCAiJiN4MjIwMjsiLS0+Ci08IS0tRU5USVRZIG5wYXJ0ICImI3gyMjAyOyYj
eDMzODsiLS0+Ci08IS0tRU5USVRZIGV4aXN0ICImI3gyMjAzOyItLT4KLTwhLS1FTlRJVFkgRXhp
c3RzICImI3gyMjAzOyItLT4KLTwhLS1FTlRJVFkgbmV4aXN0ICImI3gyMjA0OyItLT4KLTwhLS1F
TlRJVFkgTm90RXhpc3RzICImI3gyMjA0OyItLT4KLTwhLS1FTlRJVFkgbmV4aXN0cyAiJiN4MjIw
NDsiLS0+Ci08IS0tRU5USVRZIGVtcHR5ICImI3gyMjA1OyItLT4KLTwhLS1FTlRJVFkgZW1wdHlz
ZXQgIiYjeDIyMDU7Ii0tPgotPCEtLUVOVElUWSBlbXB0eXYgIiYjeDIyMDU7Ii0tPgotPCEtLUVO
VElUWSB2YXJub3RoaW5nICImI3gyMjA1OyItLT4KLTwhLS1FTlRJVFkgbmFibGEgIiYjeDIyMDc7
Ii0tPgotPCEtLUVOVElUWSBEZWwgIiYjeDIyMDc7Ii0tPgotPCEtLUVOVElUWSBpc2luICImI3gy
MjA4OyItLT4KLTwhLS1FTlRJVFkgaXNpbnYgIiYjeDIyMDg7Ii0tPgotPCEtLUVOVElUWSBFbGVt
ZW50ICImI3gyMjA4OyItLT4KLTwhLS1FTlRJVFkgaW4gIiYjeDIyMDg7Ii0tPgotPCEtLUVOVElU
WSBub3RpbiAiJiN4MjIwOTsiLS0+Ci08IS0tRU5USVRZIE5vdEVsZW1lbnQgIiYjeDIyMDk7Ii0t
PgotPCEtLUVOVElUWSBub3RpbnZhICImI3gyMjA5OyItLT4KLTwhLS1FTlRJVFkgbml2ICImI3gy
MjBCOyItLT4KLTwhLS1FTlRJVFkgUmV2ZXJzZUVsZW1lbnQgIiYjeDIyMEI7Ii0tPgotPCEtLUVO
VElUWSBuaSAiJiN4MjIwQjsiLS0+Ci08IS0tRU5USVRZIFN1Y2hUaGF0ICImI3gyMjBCOyItLT4K
LTwhLS1FTlRJVFkgbm90bmkgIiYjeDIyMEM7Ii0tPgotPCEtLUVOVElUWSBub3RuaXZhICImI3gy
MjBDOyItLT4KLTwhLS1FTlRJVFkgTm90UmV2ZXJzZUVsZW1lbnQgIiYjeDIyMEM7Ii0tPgotPCEt
LUVOVElUWSBwcm9kICImI3gyMjBGOyItLT4KLTwhLS1FTlRJVFkgUHJvZHVjdCAiJiN4MjIwRjsi
LS0+Ci08IS0tRU5USVRZIGNvcHJvZCAiJiN4MjIxMDsiLS0+Ci08IS0tRU5USVRZIENvcHJvZHVj
dCAiJiN4MjIxMDsiLS0+Ci08IS0tRU5USVRZIHN1bSAiJiN4MjIxMTsiLS0+Ci08IS0tRU5USVRZ
IFN1bSAiJiN4MjIxMTsiLS0+Ci08IS0tRU5USVRZIG1pbnVzICImI3gyMjEyOyItLT4KLTwhLS1F
TlRJVFkgbW5wbHVzICImI3gyMjEzOyItLT4KLTwhLS1FTlRJVFkgbXAgIiYjeDIyMTM7Ii0tPgot
PCEtLUVOVElUWSBNaW51c1BsdXMgIiYjeDIyMTM7Ii0tPgotPCEtLUVOVElUWSBwbHVzZG8gIiYj
eDIyMTQ7Ii0tPgotPCEtLUVOVElUWSBkb3RwbHVzICImI3gyMjE0OyItLT4KLTwhLS1FTlRJVFkg
c2V0bW4gIiYjeDIyMTY7Ii0tPgotPCEtLUVOVElUWSBzZXRtaW51cyAiJiN4MjIxNjsiLS0+Ci08
IS0tRU5USVRZIEJhY2tzbGFzaCAiJiN4MjIxNjsiLS0+Ci08IS0tRU5USVRZIHNzZXRtbiAiJiN4
MjIxNjsiLS0+Ci08IS0tRU5USVRZIHNtYWxsc2V0bWludXMgIiYjeDIyMTY7Ii0tPgotPCEtLUVO
VElUWSBsb3dhc3QgIiYjeDIyMTc7Ii0tPgotPCEtLUVOVElUWSBjb21wZm4gIiYjeDIyMTg7Ii0t
PgotPCEtLUVOVElUWSBTbWFsbENpcmNsZSAiJiN4MjIxODsiLS0+Ci08IS0tRU5USVRZIHJhZGlj
ICImI3gyMjFBOyItLT4KLTwhLS1FTlRJVFkgU3FydCAiJiN4MjIxQTsiLS0+Ci08IS0tRU5USVRZ
IHByb3AgIiYjeDIyMUQ7Ii0tPgotPCEtLUVOVElUWSBwcm9wdG8gIiYjeDIyMUQ7Ii0tPgotPCEt
LUVOVElUWSBQcm9wb3J0aW9uYWwgIiYjeDIyMUQ7Ii0tPgotPCEtLUVOVElUWSB2cHJvcCAiJiN4
MjIxRDsiLS0+Ci08IS0tRU5USVRZIHZhcnByb3B0byAiJiN4MjIxRDsiLS0+Ci08IS0tRU5USVRZ
IGluZmluICImI3gyMjFFOyItLT4KLTwhLS1FTlRJVFkgYW5ncnQgIiYjeDIyMUY7Ii0tPgotPCEt
LUVOVElUWSBhbmcgIiYjeDIyMjA7Ii0tPgotPCEtLUVOVElUWSBhbmdsZSAiJiN4MjIyMDsiLS0+
Ci08IS0tRU5USVRZIG5hbmcgIiYjeDIyMjA7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIGFuZ21z
ZCAiJiN4MjIyMTsiLS0+Ci08IS0tRU5USVRZIG1lYXN1cmVkYW5nbGUgIiYjeDIyMjE7Ii0tPgot
PCEtLUVOVElUWSBhbmdzcGggIiYjeDIyMjI7Ii0tPgotPCEtLUVOVElUWSBtaWQgIiYjeDIyMjM7
Ii0tPgotPCEtLUVOVElUWSBWZXJ0aWNhbEJhciAiJiN4MjIyMzsiLS0+Ci08IS0tRU5USVRZIHNt
aWQgIiYjeDIyMjM7Ii0tPgotPCEtLUVOVElUWSBzaG9ydG1pZCAiJiN4MjIyMzsiLS0+Ci08IS0t
RU5USVRZIG5taWQgIiYjeDIyMjQ7Ii0tPgotPCEtLUVOVElUWSBOb3RWZXJ0aWNhbEJhciAiJiN4
MjIyNDsiLS0+Ci08IS0tRU5USVRZIG5zbWlkICImI3gyMjI0OyItLT4KLTwhLS1FTlRJVFkgbnNo
b3J0bWlkICImI3gyMjI0OyItLT4KLTwhLS1FTlRJVFkgcGFyICImI3gyMjI1OyItLT4KLTwhLS1F
TlRJVFkgcGFyYWxsZWwgIiYjeDIyMjU7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVWZXJ0aWNhbEJh
ciAiJiN4MjIyNTsiLS0+Ci08IS0tRU5USVRZIHNwYXIgIiYjeDIyMjU7Ii0tPgotPCEtLUVOVElU
WSBzaG9ydHBhcmFsbGVsICImI3gyMjI1OyItLT4KLTwhLS1FTlRJVFkgbnBhciAiJiN4MjIyNjsi
LS0+Ci08IS0tRU5USVRZIG5wYXJhbGxlbCAiJiN4MjIyNjsiLS0+Ci08IS0tRU5USVRZIE5vdERv
dWJsZVZlcnRpY2FsQmFyICImI3gyMjI2OyItLT4KLTwhLS1FTlRJVFkgbnNwYXIgIiYjeDIyMjY7
Ii0tPgotPCEtLUVOVElUWSBuc2hvcnRwYXJhbGxlbCAiJiN4MjIyNjsiLS0+Ci08IS0tRU5USVRZ
IGFuZCAiJiN4MjIyNzsiLS0+Ci08IS0tRU5USVRZIHdlZGdlICImI3gyMjI3OyItLT4KLTwhLS1F
TlRJVFkgb3IgIiYjeDIyMjg7Ii0tPgotPCEtLUVOVElUWSB2ZWUgIiYjeDIyMjg7Ii0tPgotPCEt
LUVOVElUWSBjYXAgIiYjeDIyMjk7Ii0tPgotPCEtLUVOVElUWSBjYXBzICImI3gyMjI5OyYjeEZF
MDA7Ii0tPgotPCEtLUVOVElUWSBjdXAgIiYjeDIyMkE7Ii0tPgotPCEtLUVOVElUWSBjdXBzICIm
I3gyMjJBOyYjeEZFMDA7Ii0tPgotPCEtLUVOVElUWSBpbnQgIiYjeDIyMkI7Ii0tPgotPCEtLUVO
VElUWSBJbnRlZ3JhbCAiJiN4MjIyQjsiLS0+Ci08IS0tRU5USVRZIEludCAiJiN4MjIyQzsiLS0+
Ci08IS0tRU5USVRZIHRpbnQgIiYjeDIyMkQ7Ii0tPgotPCEtLUVOVElUWSBpaWludCAiJiN4MjIy
RDsiLS0+Ci08IS0tRU5USVRZIGNvbmludCAiJiN4MjIyRTsiLS0+Ci08IS0tRU5USVRZIG9pbnQg
IiYjeDIyMkU7Ii0tPgotPCEtLUVOVElUWSBDb250b3VySW50ZWdyYWwgIiYjeDIyMkU7Ii0tPgot
PCEtLUVOVElUWSBDb25pbnQgIiYjeDIyMkY7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVDb250b3Vy
SW50ZWdyYWwgIiYjeDIyMkY7Ii0tPgotPCEtLUVOVElUWSBDY29uaW50ICImI3gyMjMwOyItLT4K
LTwhLS1FTlRJVFkgY3dpbnQgIiYjeDIyMzE7Ii0tPgotPCEtLUVOVElUWSBjd2NvbmludCAiJiN4
MjIzMjsiLS0+Ci08IS0tRU5USVRZIENsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIzMjsi
LS0+Ci08IS0tRU5USVRZIGF3Y29uaW50ICImI3gyMjMzOyItLT4KLTwhLS1FTlRJVFkgQ291bnRl
ckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIzMzsiLS0+Ci08IS0tRU5USVRZIHRoZXJl
NCAiJiN4MjIzNDsiLS0+Ci08IS0tRU5USVRZIHRoZXJlZm9yZSAiJiN4MjIzNDsiLS0+Ci08IS0t
RU5USVRZIFRoZXJlZm9yZSAiJiN4MjIzNDsiLS0+Ci08IS0tRU5USVRZIGJlY2F1cyAiJiN4MjIz
NTsiLS0+Ci08IS0tRU5USVRZIGJlY2F1c2UgIiYjeDIyMzU7Ii0tPgotPCEtLUVOVElUWSBCZWNh
dXNlICImI3gyMjM1OyItLT4KLTwhLS1FTlRJVFkgcmF0aW8gIiYjeDIyMzY7Ii0tPgotPCEtLUVO
VElUWSBDb2xvbiAiJiN4MjIzNzsiLS0+Ci08IS0tRU5USVRZIFByb3BvcnRpb24gIiYjeDIyMzc7
Ii0tPgotPCEtLUVOVElUWSBtaW51c2QgIiYjeDIyMzg7Ii0tPgotPCEtLUVOVElUWSBkb3RtaW51
cyAiJiN4MjIzODsiLS0+Ci08IS0tRU5USVRZIG1ERG90ICImI3gyMjNBOyItLT4KLTwhLS1FTlRJ
VFkgaG9tdGh0ICImI3gyMjNCOyItLT4KLTwhLS1FTlRJVFkgc2ltICImI3gyMjNDOyItLT4KLTwh
LS1FTlRJVFkgVGlsZGUgIiYjeDIyM0M7Ii0tPgotPCEtLUVOVElUWSB0aGtzaW0gIiYjeDIyM0M7
Ii0tPgotPCEtLUVOVElUWSB0aGlja3NpbSAiJiN4MjIzQzsiLS0+Ci08IS0tRU5USVRZIG52c2lt
ICImI3gyMjNDOyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBic2ltICImI3gyMjNEOyItLT4KLTwh
LS1FTlRJVFkgYmFja3NpbSAiJiN4MjIzRDsiLS0+Ci08IS0tRU5USVRZIHJhY2UgIiYjeDIyM0Q7
JiN4MzMxOyItLT4KLTwhLS1FTlRJVFkgYWMgIiYjeDIyM0U7Ii0tPgotPCEtLUVOVElUWSBtc3Rw
b3MgIiYjeDIyM0U7Ii0tPgotPCEtLUVOVElUWSBhY0UgIiYjeDIyM0U7JiN4MzMzOyItLT4KLTwh
LS1FTlRJVFkgYWNkICImI3gyMjNGOyItLT4KLTwhLS1FTlRJVFkgd3JlYXRoICImI3gyMjQwOyIt
LT4KLTwhLS1FTlRJVFkgVmVydGljYWxUaWxkZSAiJiN4MjI0MDsiLS0+Ci08IS0tRU5USVRZIHdy
ICImI3gyMjQwOyItLT4KLTwhLS1FTlRJVFkgbnNpbSAiJiN4MjI0MTsiLS0+Ci08IS0tRU5USVRZ
IE5vdFRpbGRlICImI3gyMjQxOyItLT4KLTwhLS1FTlRJVFkgZXNpbSAiJiN4MjI0MjsiLS0+Ci08
IS0tRU5USVRZIEVxdWFsVGlsZGUgIiYjeDIyNDI7Ii0tPgotPCEtLUVOVElUWSBlcXNpbSAiJiN4
MjI0MjsiLS0+Ci08IS0tRU5USVRZIE5vdEVxdWFsVGlsZGUgIiYjeDIyNDI7JiN4MzM4OyItLT4K
LTwhLS1FTlRJVFkgbmVzaW0gIiYjeDIyNDI7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgc2ltZSAi
JiN4MjI0MzsiLS0+Ci08IS0tRU5USVRZIFRpbGRlRXF1YWwgIiYjeDIyNDM7Ii0tPgotPCEtLUVO
VElUWSBzaW1lcSAiJiN4MjI0MzsiLS0+Ci08IS0tRU5USVRZIG5zaW1lICImI3gyMjQ0OyItLT4K
LTwhLS1FTlRJVFkgbnNpbWVxICImI3gyMjQ0OyItLT4KLTwhLS1FTlRJVFkgTm90VGlsZGVFcXVh
bCAiJiN4MjI0NDsiLS0+Ci08IS0tRU5USVRZIGNvbmcgIiYjeDIyNDU7Ii0tPgotPCEtLUVOVElU
WSBUaWxkZUZ1bGxFcXVhbCAiJiN4MjI0NTsiLS0+Ci08IS0tRU5USVRZIHNpbW5lICImI3gyMjQ2
OyItLT4KLTwhLS1FTlRJVFkgbmNvbmcgIiYjeDIyNDc7Ii0tPgotPCEtLUVOVElUWSBOb3RUaWxk
ZUZ1bGxFcXVhbCAiJiN4MjI0NzsiLS0+Ci08IS0tRU5USVRZIGFzeW1wICImI3gyMjQ4OyItLT4K
LTwhLS1FTlRJVFkgYXAgIiYjeDIyNDg7Ii0tPgotPCEtLUVOVElUWSBUaWxkZVRpbGRlICImI3gy
MjQ4OyItLT4KLTwhLS1FTlRJVFkgYXBwcm94ICImI3gyMjQ4OyItLT4KLTwhLS1FTlRJVFkgdGhr
YXAgIiYjeDIyNDg7Ii0tPgotPCEtLUVOVElUWSB0aGlja2FwcHJveCAiJiN4MjI0ODsiLS0+Ci08
IS0tRU5USVRZIG5hcCAiJiN4MjI0OTsiLS0+Ci08IS0tRU5USVRZIE5vdFRpbGRlVGlsZGUgIiYj
eDIyNDk7Ii0tPgotPCEtLUVOVElUWSBuYXBwcm94ICImI3gyMjQ5OyItLT4KLTwhLS1FTlRJVFkg
YXBlICImI3gyMjRBOyItLT4KLTwhLS1FTlRJVFkgYXBwcm94ZXEgIiYjeDIyNEE7Ii0tPgotPCEt
LUVOVElUWSBhcGlkICImI3gyMjRCOyItLT4KLTwhLS1FTlRJVFkgbmFwaWQgIiYjeDIyNEI7JiN4
MzM4OyItLT4KLTwhLS1FTlRJVFkgYmNvbmcgIiYjeDIyNEM7Ii0tPgotPCEtLUVOVElUWSBiYWNr
Y29uZyAiJiN4MjI0QzsiLS0+Ci08IS0tRU5USVRZIGFzeW1wZXEgIiYjeDIyNEQ7Ii0tPgotPCEt
LUVOVElUWSBDdXBDYXAgIiYjeDIyNEQ7Ii0tPgotPCEtLUVOVElUWSBudmFwICImI3gyMjREOyYj
eDIwRDI7Ii0tPgotPCEtLUVOVElUWSBidW1wICImI3gyMjRFOyItLT4KLTwhLS1FTlRJVFkgSHVt
cERvd25IdW1wICImI3gyMjRFOyItLT4KLTwhLS1FTlRJVFkgQnVtcGVxICImI3gyMjRFOyItLT4K
LTwhLS1FTlRJVFkgTm90SHVtcERvd25IdW1wICImI3gyMjRFOyYjeDMzODsiLS0+Ci08IS0tRU5U
SVRZIG5idW1wICImI3gyMjRFOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGJ1bXBlICImI3gyMjRG
OyItLT4KLTwhLS1FTlRJVFkgSHVtcEVxdWFsICImI3gyMjRGOyItLT4KLTwhLS1FTlRJVFkgYnVt
cGVxICImI3gyMjRGOyItLT4KLTwhLS1FTlRJVFkgbmJ1bXBlICImI3gyMjRGOyYjeDMzODsiLS0+
Ci08IS0tRU5USVRZIE5vdEh1bXBFcXVhbCAiJiN4MjI0RjsmI3gzMzg7Ii0tPgotPCEtLUVOVElU
WSBlc2RvdCAiJiN4MjI1MDsiLS0+Ci08IS0tRU5USVRZIERvdEVxdWFsICImI3gyMjUwOyItLT4K
LTwhLS1FTlRJVFkgZG90ZXEgIiYjeDIyNTA7Ii0tPgotPCEtLUVOVElUWSBuZWRvdCAiJiN4MjI1
MDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBlRG90ICImI3gyMjUxOyItLT4KLTwhLS1FTlRJVFkg
ZG90ZXFkb3QgIiYjeDIyNTE7Ii0tPgotPCEtLUVOVElUWSBlZkRvdCAiJiN4MjI1MjsiLS0+Ci08
IS0tRU5USVRZIGZhbGxpbmdkb3RzZXEgIiYjeDIyNTI7Ii0tPgotPCEtLUVOVElUWSBlckRvdCAi
JiN4MjI1MzsiLS0+Ci08IS0tRU5USVRZIHJpc2luZ2RvdHNlcSAiJiN4MjI1MzsiLS0+Ci08IS0t
RU5USVRZIGNvbG9uZSAiJiN4MjI1NDsiLS0+Ci08IS0tRU5USVRZIGNvbG9uZXEgIiYjeDIyNTQ7
Ii0tPgotPCEtLUVOVElUWSBBc3NpZ24gIiYjeDIyNTQ7Ii0tPgotPCEtLUVOVElUWSBlY29sb24g
IiYjeDIyNTU7Ii0tPgotPCEtLUVOVElUWSBlcWNvbG9uICImI3gyMjU1OyItLT4KLTwhLS1FTlRJ
VFkgZWNpciAiJiN4MjI1NjsiLS0+Ci08IS0tRU5USVRZIGVxY2lyYyAiJiN4MjI1NjsiLS0+Ci08
IS0tRU5USVRZIGNpcmUgIiYjeDIyNTc7Ii0tPgotPCEtLUVOVElUWSBjaXJjZXEgIiYjeDIyNTc7
Ii0tPgotPCEtLUVOVElUWSB3ZWRnZXEgIiYjeDIyNTk7Ii0tPgotPCEtLUVOVElUWSB2ZWVlcSAi
JiN4MjI1QTsiLS0+Ci08IS0tRU5USVRZIHRyaWUgIiYjeDIyNUM7Ii0tPgotPCEtLUVOVElUWSB0
cmlhbmdsZXEgIiYjeDIyNUM7Ii0tPgotPCEtLUVOVElUWSBlcXVlc3QgIiYjeDIyNUY7Ii0tPgot
PCEtLUVOVElUWSBxdWVzdGVxICImI3gyMjVGOyItLT4KLTwhLS1FTlRJVFkgbmUgIiYjeDIyNjA7
Ii0tPgotPCEtLUVOVElUWSBOb3RFcXVhbCAiJiN4MjI2MDsiLS0+Ci08IS0tRU5USVRZIGVxdWl2
ICImI3gyMjYxOyItLT4KLTwhLS1FTlRJVFkgQ29uZ3J1ZW50ICImI3gyMjYxOyItLT4KLTwhLS1F
TlRJVFkgYm5lcXVpdiAiJiN4MjI2MTsmI3gyMEU1OyItLT4KLTwhLS1FTlRJVFkgbmVxdWl2ICIm
I3gyMjYyOyItLT4KLTwhLS1FTlRJVFkgTm90Q29uZ3J1ZW50ICImI3gyMjYyOyItLT4KLTwhLS1F
TlRJVFkgbGUgIiYjeDIyNjQ7Ii0tPgotPCEtLUVOVElUWSBsZXEgIiYjeDIyNjQ7Ii0tPgotPCEt
LUVOVElUWSBudmxlICImI3gyMjY0OyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBnZSAiJiN4MjI2
NTsiLS0+Ci08IS0tRU5USVRZIEdyZWF0ZXJFcXVhbCAiJiN4MjI2NTsiLS0+Ci08IS0tRU5USVRZ
IGdlcSAiJiN4MjI2NTsiLS0+Ci08IS0tRU5USVRZIG52Z2UgIiYjeDIyNjU7JiN4MjBEMjsiLS0+
Ci08IS0tRU5USVRZIGxFICImI3gyMjY2OyItLT4KLTwhLS1FTlRJVFkgTGVzc0Z1bGxFcXVhbCAi
JiN4MjI2NjsiLS0+Ci08IS0tRU5USVRZIGxlcXEgIiYjeDIyNjY7Ii0tPgotPCEtLUVOVElUWSBu
bEUgIiYjeDIyNjY7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbmxlcXEgIiYjeDIyNjY7JiN4MzM4
OyItLT4KLTwhLS1FTlRJVFkgZ0UgIiYjeDIyNjc7Ii0tPgotPCEtLUVOVElUWSBHcmVhdGVyRnVs
bEVxdWFsICImI3gyMjY3OyItLT4KLTwhLS1FTlRJVFkgZ2VxcSAiJiN4MjI2NzsiLS0+Ci08IS0t
RU5USVRZIG5nRSAiJiN4MjI2NzsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBuZ2VxcSAiJiN4MjI2
NzsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBOb3RHcmVhdGVyRnVsbEVxdWFsICImI3gyMjY3OyYj
eDMzODsiLS0+Ci08IS0tRU5USVRZIGxuRSAiJiN4MjI2ODsiLS0+Ci08IS0tRU5USVRZIGxuZXFx
ICImI3gyMjY4OyItLT4KLTwhLS1FTlRJVFkgbHZuRSAiJiN4MjI2ODsmI3hGRTAwOyItLT4KLTwh
LS1FTlRJVFkgbHZlcnRuZXFxICImI3gyMjY4OyYjeEZFMDA7Ii0tPgotPCEtLUVOVElUWSBnbkUg
IiYjeDIyNjk7Ii0tPgotPCEtLUVOVElUWSBnbmVxcSAiJiN4MjI2OTsiLS0+Ci08IS0tRU5USVRZ
IGd2bkUgIiYjeDIyNjk7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIGd2ZXJ0bmVxcSAiJiN4MjI2
OTsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgTHQgIiYjeDIyNkE7Ii0tPgotPCEtLUVOVElUWSBO
ZXN0ZWRMZXNzTGVzcyAiJiN4MjI2QTsiLS0+Ci08IS0tRU5USVRZIGxsICImI3gyMjZBOyItLT4K
LTwhLS1FTlRJVFkgbkx0diAiJiN4MjI2QTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBOb3RMZXNz
TGVzcyAiJiN4MjI2QTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBuTHQgIiYjeDIyNkE7JiN4MjBE
MjsiLS0+Ci08IS0tRU5USVRZIEd0ICImI3gyMjZCOyItLT4KLTwhLS1FTlRJVFkgTmVzdGVkR3Jl
YXRlckdyZWF0ZXIgIiYjeDIyNkI7Ii0tPgotPCEtLUVOVElUWSBnZyAiJiN4MjI2QjsiLS0+Ci08
IS0tRU5USVRZIG5HdHYgIiYjeDIyNkI7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgTm90R3JlYXRl
ckdyZWF0ZXIgIiYjeDIyNkI7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbkd0ICImI3gyMjZCOyYj
eDIwRDI7Ii0tPgotPCEtLUVOVElUWSB0d2l4dCAiJiN4MjI2QzsiLS0+Ci08IS0tRU5USVRZIGJl
dHdlZW4gIiYjeDIyNkM7Ii0tPgotPCEtLUVOVElUWSBOb3RDdXBDYXAgIiYjeDIyNkQ7Ii0tPgot
PCEtLUVOVElUWSBubHQgIiYjeDIyNkU7Ii0tPgotPCEtLUVOVElUWSBOb3RMZXNzICImI3gyMjZF
OyItLT4KLTwhLS1FTlRJVFkgbmxlc3MgIiYjeDIyNkU7Ii0tPgotPCEtLUVOVElUWSBuZ3QgIiYj
eDIyNkY7Ii0tPgotPCEtLUVOVElUWSBOb3RHcmVhdGVyICImI3gyMjZGOyItLT4KLTwhLS1FTlRJ
VFkgbmd0ciAiJiN4MjI2RjsiLS0+Ci08IS0tRU5USVRZIG5sZSAiJiN4MjI3MDsiLS0+Ci08IS0t
RU5USVRZIE5vdExlc3NFcXVhbCAiJiN4MjI3MDsiLS0+Ci08IS0tRU5USVRZIG5sZXEgIiYjeDIy
NzA7Ii0tPgotPCEtLUVOVElUWSBuZ2UgIiYjeDIyNzE7Ii0tPgotPCEtLUVOVElUWSBOb3RHcmVh
dGVyRXF1YWwgIiYjeDIyNzE7Ii0tPgotPCEtLUVOVElUWSBuZ2VxICImI3gyMjcxOyItLT4KLTwh
LS1FTlRJVFkgbHNpbSAiJiN4MjI3MjsiLS0+Ci08IS0tRU5USVRZIExlc3NUaWxkZSAiJiN4MjI3
MjsiLS0+Ci08IS0tRU5USVRZIGxlc3NzaW0gIiYjeDIyNzI7Ii0tPgotPCEtLUVOVElUWSBnc2lt
ICImI3gyMjczOyItLT4KLTwhLS1FTlRJVFkgZ3Ryc2ltICImI3gyMjczOyItLT4KLTwhLS1FTlRJ
VFkgR3JlYXRlclRpbGRlICImI3gyMjczOyItLT4KLTwhLS1FTlRJVFkgbmxzaW0gIiYjeDIyNzQ7
Ii0tPgotPCEtLUVOVElUWSBOb3RMZXNzVGlsZGUgIiYjeDIyNzQ7Ii0tPgotPCEtLUVOVElUWSBu
Z3NpbSAiJiN4MjI3NTsiLS0+Ci08IS0tRU5USVRZIE5vdEdyZWF0ZXJUaWxkZSAiJiN4MjI3NTsi
LS0+Ci08IS0tRU5USVRZIGxnICImI3gyMjc2OyItLT4KLTwhLS1FTlRJVFkgbGVzc2d0ciAiJiN4
MjI3NjsiLS0+Ci08IS0tRU5USVRZIExlc3NHcmVhdGVyICImI3gyMjc2OyItLT4KLTwhLS1FTlRJ
VFkgZ2wgIiYjeDIyNzc7Ii0tPgotPCEtLUVOVElUWSBndHJsZXNzICImI3gyMjc3OyItLT4KLTwh
LS1FTlRJVFkgR3JlYXRlckxlc3MgIiYjeDIyNzc7Ii0tPgotPCEtLUVOVElUWSBudGxnICImI3gy
Mjc4OyItLT4KLTwhLS1FTlRJVFkgTm90TGVzc0dyZWF0ZXIgIiYjeDIyNzg7Ii0tPgotPCEtLUVO
VElUWSBudGdsICImI3gyMjc5OyItLT4KLTwhLS1FTlRJVFkgTm90R3JlYXRlckxlc3MgIiYjeDIy
Nzk7Ii0tPgotPCEtLUVOVElUWSBwciAiJiN4MjI3QTsiLS0+Ci08IS0tRU5USVRZIFByZWNlZGVz
ICImI3gyMjdBOyItLT4KLTwhLS1FTlRJVFkgcHJlYyAiJiN4MjI3QTsiLS0+Ci08IS0tRU5USVRZ
IHNjICImI3gyMjdCOyItLT4KLTwhLS1FTlRJVFkgU3VjY2VlZHMgIiYjeDIyN0I7Ii0tPgotPCEt
LUVOVElUWSBzdWNjICImI3gyMjdCOyItLT4KLTwhLS1FTlRJVFkgcHJjdWUgIiYjeDIyN0M7Ii0t
PgotPCEtLUVOVElUWSBQcmVjZWRlc1NsYW50RXF1YWwgIiYjeDIyN0M7Ii0tPgotPCEtLUVOVElU
WSBwcmVjY3VybHllcSAiJiN4MjI3QzsiLS0+Ci08IS0tRU5USVRZIHNjY3VlICImI3gyMjdEOyIt
LT4KLTwhLS1FTlRJVFkgU3VjY2VlZHNTbGFudEVxdWFsICImI3gyMjdEOyItLT4KLTwhLS1FTlRJ
VFkgc3VjY2N1cmx5ZXEgIiYjeDIyN0Q7Ii0tPgotPCEtLUVOVElUWSBwcnNpbSAiJiN4MjI3RTsi
LS0+Ci08IS0tRU5USVRZIHByZWNzaW0gIiYjeDIyN0U7Ii0tPgotPCEtLUVOVElUWSBQcmVjZWRl
c1RpbGRlICImI3gyMjdFOyItLT4KLTwhLS1FTlRJVFkgc2NzaW0gIiYjeDIyN0Y7Ii0tPgotPCEt
LUVOVElUWSBzdWNjc2ltICImI3gyMjdGOyItLT4KLTwhLS1FTlRJVFkgU3VjY2VlZHNUaWxkZSAi
JiN4MjI3RjsiLS0+Ci08IS0tRU5USVRZIE5vdFN1Y2NlZWRzVGlsZGUgIiYjeDIyN0Y7JiN4MzM4
OyItLT4KLTwhLS1FTlRJVFkgbnByICImI3gyMjgwOyItLT4KLTwhLS1FTlRJVFkgbnByZWMgIiYj
eDIyODA7Ii0tPgotPCEtLUVOVElUWSBOb3RQcmVjZWRlcyAiJiN4MjI4MDsiLS0+Ci08IS0tRU5U
SVRZIG5zYyAiJiN4MjI4MTsiLS0+Ci08IS0tRU5USVRZIG5zdWNjICImI3gyMjgxOyItLT4KLTwh
LS1FTlRJVFkgTm90U3VjY2VlZHMgIiYjeDIyODE7Ii0tPgotPCEtLUVOVElUWSBzdWIgIiYjeDIy
ODI7Ii0tPgotPCEtLUVOVElUWSBzdWJzZXQgIiYjeDIyODI7Ii0tPgotPCEtLUVOVElUWSB2bnN1
YiAiJiN4MjI4MjsmI3gyMEQyOyItLT4KLTwhLS1FTlRJVFkgbnN1YnNldCAiJiN4MjI4MjsmI3gy
MEQyOyItLT4KLTwhLS1FTlRJVFkgTm90U3Vic2V0ICImI3gyMjgyOyYjeDIwRDI7Ii0tPgotPCEt
LUVOVElUWSBzdXAgIiYjeDIyODM7Ii0tPgotPCEtLUVOVElUWSBzdXBzZXQgIiYjeDIyODM7Ii0t
PgotPCEtLUVOVElUWSBTdXBlcnNldCAiJiN4MjI4MzsiLS0+Ci08IS0tRU5USVRZIHZuc3VwICIm
I3gyMjgzOyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBuc3Vwc2V0ICImI3gyMjgzOyYjeDIwRDI7
Ii0tPgotPCEtLUVOVElUWSBOb3RTdXBlcnNldCAiJiN4MjI4MzsmI3gyMEQyOyItLT4KLTwhLS1F
TlRJVFkgbnN1YiAiJiN4MjI4NDsiLS0+Ci08IS0tRU5USVRZIG5zdXAgIiYjeDIyODU7Ii0tPgot
PCEtLUVOVElUWSBzdWJlICImI3gyMjg2OyItLT4KLTwhLS1FTlRJVFkgU3Vic2V0RXF1YWwgIiYj
eDIyODY7Ii0tPgotPCEtLUVOVElUWSBzdWJzZXRlcSAiJiN4MjI4NjsiLS0+Ci08IS0tRU5USVRZ
IHN1cGUgIiYjeDIyODc7Ii0tPgotPCEtLUVOVElUWSBzdXBzZXRlcSAiJiN4MjI4NzsiLS0+Ci08
IS0tRU5USVRZIFN1cGVyc2V0RXF1YWwgIiYjeDIyODc7Ii0tPgotPCEtLUVOVElUWSBuc3ViZSAi
JiN4MjI4ODsiLS0+Ci08IS0tRU5USVRZIG5zdWJzZXRlcSAiJiN4MjI4ODsiLS0+Ci08IS0tRU5U
SVRZIE5vdFN1YnNldEVxdWFsICImI3gyMjg4OyItLT4KLTwhLS1FTlRJVFkgbnN1cGUgIiYjeDIy
ODk7Ii0tPgotPCEtLUVOVElUWSBuc3Vwc2V0ZXEgIiYjeDIyODk7Ii0tPgotPCEtLUVOVElUWSBO
b3RTdXBlcnNldEVxdWFsICImI3gyMjg5OyItLT4KLTwhLS1FTlRJVFkgc3VibmUgIiYjeDIyOEE7
Ii0tPgotPCEtLUVOVElUWSBzdWJzZXRuZXEgIiYjeDIyOEE7Ii0tPgotPCEtLUVOVElUWSB2c3Vi
bmUgIiYjeDIyOEE7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIHZhcnN1YnNldG5lcSAiJiN4MjI4
QTsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgc3VwbmUgIiYjeDIyOEI7Ii0tPgotPCEtLUVOVElU
WSBzdXBzZXRuZXEgIiYjeDIyOEI7Ii0tPgotPCEtLUVOVElUWSB2c3VwbmUgIiYjeDIyOEI7JiN4
RkUwMDsiLS0+Ci08IS0tRU5USVRZIHZhcnN1cHNldG5lcSAiJiN4MjI4QjsmI3hGRTAwOyItLT4K
LTwhLS1FTlRJVFkgY3VwZG90ICImI3gyMjhEOyItLT4KLTwhLS1FTlRJVFkgdXBsdXMgIiYjeDIy
OEU7Ii0tPgotPCEtLUVOVElUWSBVbmlvblBsdXMgIiYjeDIyOEU7Ii0tPgotPCEtLUVOVElUWSBz
cXN1YiAiJiN4MjI4RjsiLS0+Ci08IS0tRU5USVRZIFNxdWFyZVN1YnNldCAiJiN4MjI4RjsiLS0+
Ci08IS0tRU5USVRZIHNxc3Vic2V0ICImI3gyMjhGOyItLT4KLTwhLS1FTlRJVFkgTm90U3F1YXJl
U3Vic2V0ICImI3gyMjhGOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIHNxc3VwICImI3gyMjkwOyIt
LT4KLTwhLS1FTlRJVFkgU3F1YXJlU3VwZXJzZXQgIiYjeDIyOTA7Ii0tPgotPCEtLUVOVElUWSBz
cXN1cHNldCAiJiN4MjI5MDsiLS0+Ci08IS0tRU5USVRZIE5vdFNxdWFyZVN1cGVyc2V0ICImI3gy
MjkwOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIHNxc3ViZSAiJiN4MjI5MTsiLS0+Ci08IS0tRU5U
SVRZIFNxdWFyZVN1YnNldEVxdWFsICImI3gyMjkxOyItLT4KLTwhLS1FTlRJVFkgc3FzdWJzZXRl
cSAiJiN4MjI5MTsiLS0+Ci08IS0tRU5USVRZIHNxc3VwZSAiJiN4MjI5MjsiLS0+Ci08IS0tRU5U
SVRZIFNxdWFyZVN1cGVyc2V0RXF1YWwgIiYjeDIyOTI7Ii0tPgotPCEtLUVOVElUWSBzcXN1cHNl
dGVxICImI3gyMjkyOyItLT4KLTwhLS1FTlRJVFkgc3FjYXAgIiYjeDIyOTM7Ii0tPgotPCEtLUVO
VElUWSBTcXVhcmVJbnRlcnNlY3Rpb24gIiYjeDIyOTM7Ii0tPgotPCEtLUVOVElUWSBzcWNhcHMg
IiYjeDIyOTM7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIHNxY3VwICImI3gyMjk0OyItLT4KLTwh
LS1FTlRJVFkgU3F1YXJlVW5pb24gIiYjeDIyOTQ7Ii0tPgotPCEtLUVOVElUWSBzcWN1cHMgIiYj
eDIyOTQ7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIG9wbHVzICImI3gyMjk1OyItLT4KLTwhLS1F
TlRJVFkgQ2lyY2xlUGx1cyAiJiN4MjI5NTsiLS0+Ci08IS0tRU5USVRZIG9taW51cyAiJiN4MjI5
NjsiLS0+Ci08IS0tRU5USVRZIENpcmNsZU1pbnVzICImI3gyMjk2OyItLT4KLTwhLS1FTlRJVFkg
b3RpbWVzICImI3gyMjk3OyItLT4KLTwhLS1FTlRJVFkgQ2lyY2xlVGltZXMgIiYjeDIyOTc7Ii0t
PgotPCEtLUVOVElUWSBvc29sICImI3gyMjk4OyItLT4KLTwhLS1FTlRJVFkgb2RvdCAiJiN4MjI5
OTsiLS0+Ci08IS0tRU5USVRZIENpcmNsZURvdCAiJiN4MjI5OTsiLS0+Ci08IS0tRU5USVRZIG9j
aXIgIiYjeDIyOUE7Ii0tPgotPCEtLUVOVElUWSBjaXJjbGVkY2lyYyAiJiN4MjI5QTsiLS0+Ci08
IS0tRU5USVRZIG9hc3QgIiYjeDIyOUI7Ii0tPgotPCEtLUVOVElUWSBjaXJjbGVkYXN0ICImI3gy
MjlCOyItLT4KLTwhLS1FTlRJVFkgb2Rhc2ggIiYjeDIyOUQ7Ii0tPgotPCEtLUVOVElUWSBjaXJj
bGVkZGFzaCAiJiN4MjI5RDsiLS0+Ci08IS0tRU5USVRZIHBsdXNiICImI3gyMjlFOyItLT4KLTwh
LS1FTlRJVFkgYm94cGx1cyAiJiN4MjI5RTsiLS0+Ci08IS0tRU5USVRZIG1pbnVzYiAiJiN4MjI5
RjsiLS0+Ci08IS0tRU5USVRZIGJveG1pbnVzICImI3gyMjlGOyItLT4KLTwhLS1FTlRJVFkgdGlt
ZXNiICImI3gyMkEwOyItLT4KLTwhLS1FTlRJVFkgYm94dGltZXMgIiYjeDIyQTA7Ii0tPgotPCEt
LUVOVElUWSBzZG90YiAiJiN4MjJBMTsiLS0+Ci08IS0tRU5USVRZIGRvdHNxdWFyZSAiJiN4MjJB
MTsiLS0+Ci08IS0tRU5USVRZIHZkYXNoICImI3gyMkEyOyItLT4KLTwhLS1FTlRJVFkgUmlnaHRU
ZWUgIiYjeDIyQTI7Ii0tPgotPCEtLUVOVElUWSBkYXNodiAiJiN4MjJBMzsiLS0+Ci08IS0tRU5U
SVRZIExlZnRUZWUgIiYjeDIyQTM7Ii0tPgotPCEtLUVOVElUWSB0b3AgIiYjeDIyQTQ7Ii0tPgot
PCEtLUVOVElUWSBEb3duVGVlICImI3gyMkE0OyItLT4KLTwhLS1FTlRJVFkgYm90dG9tICImI3gy
MkE1OyItLT4KLTwhLS1FTlRJVFkgYm90ICImI3gyMkE1OyItLT4KLTwhLS1FTlRJVFkgcGVycCAi
JiN4MjJBNTsiLS0+Ci08IS0tRU5USVRZIFVwVGVlICImI3gyMkE1OyItLT4KLTwhLS1FTlRJVFkg
bW9kZWxzICImI3gyMkE3OyItLT4KLTwhLS1FTlRJVFkgdkRhc2ggIiYjeDIyQTg7Ii0tPgotPCEt
LUVOVElUWSBEb3VibGVSaWdodFRlZSAiJiN4MjJBODsiLS0+Ci08IS0tRU5USVRZIFZkYXNoICIm
I3gyMkE5OyItLT4KLTwhLS1FTlRJVFkgVnZkYXNoICImI3gyMkFBOyItLT4KLTwhLS1FTlRJVFkg
VkRhc2ggIiYjeDIyQUI7Ii0tPgotPCEtLUVOVElUWSBudmRhc2ggIiYjeDIyQUM7Ii0tPgotPCEt
LUVOVElUWSBudkRhc2ggIiYjeDIyQUQ7Ii0tPgotPCEtLUVOVElUWSBuVmRhc2ggIiYjeDIyQUU7
Ii0tPgotPCEtLUVOVElUWSBuVkRhc2ggIiYjeDIyQUY7Ii0tPgotPCEtLUVOVElUWSBwcnVyZWwg
IiYjeDIyQjA7Ii0tPgotPCEtLUVOVElUWSB2bHRyaSAiJiN4MjJCMjsiLS0+Ci08IS0tRU5USVRZ
IHZhcnRyaWFuZ2xlbGVmdCAiJiN4MjJCMjsiLS0+Ci08IS0tRU5USVRZIExlZnRUcmlhbmdsZSAi
JiN4MjJCMjsiLS0+Ci08IS0tRU5USVRZIHZydHJpICImI3gyMkIzOyItLT4KLTwhLS1FTlRJVFkg
dmFydHJpYW5nbGVyaWdodCAiJiN4MjJCMzsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0VHJpYW5nbGUg
IiYjeDIyQjM7Ii0tPgotPCEtLUVOVElUWSBsdHJpZSAiJiN4MjJCNDsiLS0+Ci08IS0tRU5USVRZ
IHRyaWFuZ2xlbGVmdGVxICImI3gyMkI0OyItLT4KLTwhLS1FTlRJVFkgTGVmdFRyaWFuZ2xlRXF1
YWwgIiYjeDIyQjQ7Ii0tPgotPCEtLUVOVElUWSBudmx0cmllICImI3gyMkI0OyYjeDIwRDI7Ii0t
PgotPCEtLUVOVElUWSBydHJpZSAiJiN4MjJCNTsiLS0+Ci08IS0tRU5USVRZIHRyaWFuZ2xlcmln
aHRlcSAiJiN4MjJCNTsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0VHJpYW5nbGVFcXVhbCAiJiN4MjJC
NTsiLS0+Ci08IS0tRU5USVRZIG52cnRyaWUgIiYjeDIyQjU7JiN4MjBEMjsiLS0+Ci08IS0tRU5U
SVRZIG9yaWdvZiAiJiN4MjJCNjsiLS0+Ci08IS0tRU5USVRZIGltb2YgIiYjeDIyQjc7Ii0tPgot
PCEtLUVOVElUWSBtdW1hcCAiJiN4MjJCODsiLS0+Ci08IS0tRU5USVRZIG11bHRpbWFwICImI3gy
MkI4OyItLT4KLTwhLS1FTlRJVFkgaGVyY29uICImI3gyMkI5OyItLT4KLTwhLS1FTlRJVFkgaW50
Y2FsICImI3gyMkJBOyItLT4KLTwhLS1FTlRJVFkgaW50ZXJjYWwgIiYjeDIyQkE7Ii0tPgotPCEt
LUVOVElUWSB2ZWViYXIgIiYjeDIyQkI7Ii0tPgotPCEtLUVOVElUWSBiYXJ2ZWUgIiYjeDIyQkQ7
Ii0tPgotPCEtLUVOVElUWSBhbmdydHZiICImI3gyMkJFOyItLT4KLTwhLS1FTlRJVFkgbHJ0cmkg
IiYjeDIyQkY7Ii0tPgotPCEtLUVOVElUWSB4d2VkZ2UgIiYjeDIyQzA7Ii0tPgotPCEtLUVOVElU
WSBXZWRnZSAiJiN4MjJDMDsiLS0+Ci08IS0tRU5USVRZIGJpZ3dlZGdlICImI3gyMkMwOyItLT4K
LTwhLS1FTlRJVFkgeHZlZSAiJiN4MjJDMTsiLS0+Ci08IS0tRU5USVRZIFZlZSAiJiN4MjJDMTsi
LS0+Ci08IS0tRU5USVRZIGJpZ3ZlZSAiJiN4MjJDMTsiLS0+Ci08IS0tRU5USVRZIHhjYXAgIiYj
eDIyQzI7Ii0tPgotPCEtLUVOVElUWSBJbnRlcnNlY3Rpb24gIiYjeDIyQzI7Ii0tPgotPCEtLUVO
VElUWSBiaWdjYXAgIiYjeDIyQzI7Ii0tPgotPCEtLUVOVElUWSB4Y3VwICImI3gyMkMzOyItLT4K
LTwhLS1FTlRJVFkgVW5pb24gIiYjeDIyQzM7Ii0tPgotPCEtLUVOVElUWSBiaWdjdXAgIiYjeDIy
QzM7Ii0tPgotPCEtLUVOVElUWSBkaWFtICImI3gyMkM0OyItLT4KLTwhLS1FTlRJVFkgZGlhbW9u
ZCAiJiN4MjJDNDsiLS0+Ci08IS0tRU5USVRZIERpYW1vbmQgIiYjeDIyQzQ7Ii0tPgotPCEtLUVO
VElUWSBzZG90ICImI3gyMkM1OyItLT4KLTwhLS1FTlRJVFkgc3N0YXJmICImI3gyMkM2OyItLT4K
LTwhLS1FTlRJVFkgU3RhciAiJiN4MjJDNjsiLS0+Ci08IS0tRU5USVRZIGRpdm9ueCAiJiN4MjJD
NzsiLS0+Ci08IS0tRU5USVRZIGRpdmlkZW9udGltZXMgIiYjeDIyQzc7Ii0tPgotPCEtLUVOVElU
WSBib3d0aWUgIiYjeDIyQzg7Ii0tPgotPCEtLUVOVElUWSBsdGltZXMgIiYjeDIyQzk7Ii0tPgot
PCEtLUVOVElUWSBydGltZXMgIiYjeDIyQ0E7Ii0tPgotPCEtLUVOVElUWSBsdGhyZWUgIiYjeDIy
Q0I7Ii0tPgotPCEtLUVOVElUWSBsZWZ0dGhyZWV0aW1lcyAiJiN4MjJDQjsiLS0+Ci08IS0tRU5U
SVRZIHJ0aHJlZSAiJiN4MjJDQzsiLS0+Ci08IS0tRU5USVRZIHJpZ2h0dGhyZWV0aW1lcyAiJiN4
MjJDQzsiLS0+Ci08IS0tRU5USVRZIGJzaW1lICImI3gyMkNEOyItLT4KLTwhLS1FTlRJVFkgYmFj
a3NpbWVxICImI3gyMkNEOyItLT4KLTwhLS1FTlRJVFkgY3V2ZWUgIiYjeDIyQ0U7Ii0tPgotPCEt
LUVOVElUWSBjdXJseXZlZSAiJiN4MjJDRTsiLS0+Ci08IS0tRU5USVRZIGN1d2VkICImI3gyMkNG
OyItLT4KLTwhLS1FTlRJVFkgY3VybHl3ZWRnZSAiJiN4MjJDRjsiLS0+Ci08IS0tRU5USVRZIFN1
YiAiJiN4MjJEMDsiLS0+Ci08IS0tRU5USVRZIFN1YnNldCAiJiN4MjJEMDsiLS0+Ci08IS0tRU5U
SVRZIFN1cCAiJiN4MjJEMTsiLS0+Ci08IS0tRU5USVRZIFN1cHNldCAiJiN4MjJEMTsiLS0+Ci08
IS0tRU5USVRZIENhcCAiJiN4MjJEMjsiLS0+Ci08IS0tRU5USVRZIEN1cCAiJiN4MjJEMzsiLS0+
Ci08IS0tRU5USVRZIGZvcmsgIiYjeDIyRDQ7Ii0tPgotPCEtLUVOVElUWSBwaXRjaGZvcmsgIiYj
eDIyRDQ7Ii0tPgotPCEtLUVOVElUWSBlcGFyICImI3gyMkQ1OyItLT4KLTwhLS1FTlRJVFkgbHRk
b3QgIiYjeDIyRDY7Ii0tPgotPCEtLUVOVElUWSBsZXNzZG90ICImI3gyMkQ2OyItLT4KLTwhLS1F
TlRJVFkgZ3Rkb3QgIiYjeDIyRDc7Ii0tPgotPCEtLUVOVElUWSBndHJkb3QgIiYjeDIyRDc7Ii0t
PgotPCEtLUVOVElUWSBMbCAiJiN4MjJEODsiLS0+Ci08IS0tRU5USVRZIG5MbCAiJiN4MjJEODsm
I3gzMzg7Ii0tPgotPCEtLUVOVElUWSBHZyAiJiN4MjJEOTsiLS0+Ci08IS0tRU5USVRZIGdnZyAi
JiN4MjJEOTsiLS0+Ci08IS0tRU5USVRZIG5HZyAiJiN4MjJEOTsmI3gzMzg7Ii0tPgotPCEtLUVO
VElUWSBsZWcgIiYjeDIyREE7Ii0tPgotPCEtLUVOVElUWSBMZXNzRXF1YWxHcmVhdGVyICImI3gy
MkRBOyItLT4KLTwhLS1FTlRJVFkgbGVzc2VxZ3RyICImI3gyMkRBOyItLT4KLTwhLS1FTlRJVFkg
bGVzZyAiJiN4MjJEQTsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgZ2VsICImI3gyMkRCOyItLT4K
LTwhLS1FTlRJVFkgZ3RyZXFsZXNzICImI3gyMkRCOyItLT4KLTwhLS1FTlRJVFkgR3JlYXRlckVx
dWFsTGVzcyAiJiN4MjJEQjsiLS0+Ci08IS0tRU5USVRZIGdlc2wgIiYjeDIyREI7JiN4RkUwMDsi
LS0+Ci08IS0tRU5USVRZIGN1ZXByICImI3gyMkRFOyItLT4KLTwhLS1FTlRJVFkgY3VybHllcXBy
ZWMgIiYjeDIyREU7Ii0tPgotPCEtLUVOVElUWSBjdWVzYyAiJiN4MjJERjsiLS0+Ci08IS0tRU5U
SVRZIGN1cmx5ZXFzdWNjICImI3gyMkRGOyItLT4KLTwhLS1FTlRJVFkgbnByY3VlICImI3gyMkUw
OyItLT4KLTwhLS1FTlRJVFkgTm90UHJlY2VkZXNTbGFudEVxdWFsICImI3gyMkUwOyItLT4KLTwh
LS1FTlRJVFkgbnNjY3VlICImI3gyMkUxOyItLT4KLTwhLS1FTlRJVFkgTm90U3VjY2VlZHNTbGFu
dEVxdWFsICImI3gyMkUxOyItLT4KLTwhLS1FTlRJVFkgbnNxc3ViZSAiJiN4MjJFMjsiLS0+Ci08
IS0tRU5USVRZIE5vdFNxdWFyZVN1YnNldEVxdWFsICImI3gyMkUyOyItLT4KLTwhLS1FTlRJVFkg
bnNxc3VwZSAiJiN4MjJFMzsiLS0+Ci08IS0tRU5USVRZIE5vdFNxdWFyZVN1cGVyc2V0RXF1YWwg
IiYjeDIyRTM7Ii0tPgotPCEtLUVOVElUWSBsbnNpbSAiJiN4MjJFNjsiLS0+Ci08IS0tRU5USVRZ
IGduc2ltICImI3gyMkU3OyItLT4KLTwhLS1FTlRJVFkgcHJuc2ltICImI3gyMkU4OyItLT4KLTwh
LS1FTlRJVFkgcHJlY25zaW0gIiYjeDIyRTg7Ii0tPgotPCEtLUVOVElUWSBzY25zaW0gIiYjeDIy
RTk7Ii0tPgotPCEtLUVOVElUWSBzdWNjbnNpbSAiJiN4MjJFOTsiLS0+Ci08IS0tRU5USVRZIG5s
dHJpICImI3gyMkVBOyItLT4KLTwhLS1FTlRJVFkgbnRyaWFuZ2xlbGVmdCAiJiN4MjJFQTsiLS0+
Ci08IS0tRU5USVRZIE5vdExlZnRUcmlhbmdsZSAiJiN4MjJFQTsiLS0+Ci08IS0tRU5USVRZIG5y
dHJpICImI3gyMkVCOyItLT4KLTwhLS1FTlRJVFkgbnRyaWFuZ2xlcmlnaHQgIiYjeDIyRUI7Ii0t
PgotPCEtLUVOVElUWSBOb3RSaWdodFRyaWFuZ2xlICImI3gyMkVCOyItLT4KLTwhLS1FTlRJVFkg
bmx0cmllICImI3gyMkVDOyItLT4KLTwhLS1FTlRJVFkgbnRyaWFuZ2xlbGVmdGVxICImI3gyMkVD
OyItLT4KLTwhLS1FTlRJVFkgTm90TGVmdFRyaWFuZ2xlRXF1YWwgIiYjeDIyRUM7Ii0tPgotPCEt
LUVOVElUWSBucnRyaWUgIiYjeDIyRUQ7Ii0tPgotPCEtLUVOVElUWSBudHJpYW5nbGVyaWdodGVx
ICImI3gyMkVEOyItLT4KLTwhLS1FTlRJVFkgTm90UmlnaHRUcmlhbmdsZUVxdWFsICImI3gyMkVE
OyItLT4KLTwhLS1FTlRJVFkgdmVsbGlwICImI3gyMkVFOyItLT4KLTwhLS1FTlRJVFkgY3Rkb3Qg
IiYjeDIyRUY7Ii0tPgotPCEtLUVOVElUWSB1dGRvdCAiJiN4MjJGMDsiLS0+Ci08IS0tRU5USVRZ
IGR0ZG90ICImI3gyMkYxOyItLT4KLTwhLS1FTlRJVFkgZGlzaW4gIiYjeDIyRjI7Ii0tPgotPCEt
LUVOVElUWSBpc2luc3YgIiYjeDIyRjM7Ii0tPgotPCEtLUVOVElUWSBpc2lucyAiJiN4MjJGNDsi
LS0+Ci08IS0tRU5USVRZIGlzaW5kb3QgIiYjeDIyRjU7Ii0tPgotPCEtLUVOVElUWSBub3RpbmRv
dCAiJiN4MjJGNTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBub3RpbnZjICImI3gyMkY2OyItLT4K
LTwhLS1FTlRJVFkgbm90aW52YiAiJiN4MjJGNzsiLS0+Ci08IS0tRU5USVRZIGlzaW5FICImI3gy
MkY5OyItLT4KLTwhLS1FTlRJVFkgbm90aW5FICImI3gyMkY5OyYjeDMzODsiLS0+Ci08IS0tRU5U
SVRZIG5pc2QgIiYjeDIyRkE7Ii0tPgotPCEtLUVOVElUWSB4bmlzICImI3gyMkZCOyItLT4KLTwh
LS1FTlRJVFkgbmlzICImI3gyMkZDOyItLT4KLTwhLS1FTlRJVFkgbm90bml2YyAiJiN4MjJGRDsi
LS0+Ci08IS0tRU5USVRZIG5vdG5pdmIgIiYjeDIyRkU7Ii0tPgotPCEtLUVOVElUWSBiYXJ3ZWQg
IiYjeDIzMDU7Ii0tPgotPCEtLUVOVElUWSBiYXJ3ZWRnZSAiJiN4MjMwNTsiLS0+Ci08IS0tRU5U
SVRZIEJhcndlZCAiJiN4MjMwNjsiLS0+Ci08IS0tRU5USVRZIGRvdWJsZWJhcndlZGdlICImI3gy
MzA2OyItLT4KLTwhLS1FTlRJVFkgbGNlaWwgIiYjeDIzMDg7Ii0tPgotPCEtLUVOVElUWSBMZWZ0
Q2VpbGluZyAiJiN4MjMwODsiLS0+Ci08IS0tRU5USVRZIHJjZWlsICImI3gyMzA5OyItLT4KLTwh
LS1FTlRJVFkgUmlnaHRDZWlsaW5nICImI3gyMzA5OyItLT4KLTwhLS1FTlRJVFkgbGZsb29yICIm
I3gyMzBBOyItLT4KLTwhLS1FTlRJVFkgTGVmdEZsb29yICImI3gyMzBBOyItLT4KLTwhLS1FTlRJ
VFkgcmZsb29yICImI3gyMzBCOyItLT4KLTwhLS1FTlRJVFkgUmlnaHRGbG9vciAiJiN4MjMwQjsi
LS0+Ci08IS0tRU5USVRZIGRyY3JvcCAiJiN4MjMwQzsiLS0+Ci08IS0tRU5USVRZIGRsY3JvcCAi
JiN4MjMwRDsiLS0+Ci08IS0tRU5USVRZIHVyY3JvcCAiJiN4MjMwRTsiLS0+Ci08IS0tRU5USVRZ
IHVsY3JvcCAiJiN4MjMwRjsiLS0+Ci08IS0tRU5USVRZIGJub3QgIiYjeDIzMTA7Ii0tPgotPCEt
LUVOVElUWSBwcm9mbGluZSAiJiN4MjMxMjsiLS0+Ci08IS0tRU5USVRZIHByb2ZzdXJmICImI3gy
MzEzOyItLT4KLTwhLS1FTlRJVFkgdGVscmVjICImI3gyMzE1OyItLT4KLTwhLS1FTlRJVFkgdGFy
Z2V0ICImI3gyMzE2OyItLT4KLTwhLS1FTlRJVFkgdWxjb3JuICImI3gyMzFDOyItLT4KLTwhLS1F
TlRJVFkgdWxjb3JuZXIgIiYjeDIzMUM7Ii0tPgotPCEtLUVOVElUWSB1cmNvcm4gIiYjeDIzMUQ7
Ii0tPgotPCEtLUVOVElUWSB1cmNvcm5lciAiJiN4MjMxRDsiLS0+Ci08IS0tRU5USVRZIGRsY29y
biAiJiN4MjMxRTsiLS0+Ci08IS0tRU5USVRZIGxsY29ybmVyICImI3gyMzFFOyItLT4KLTwhLS1F
TlRJVFkgZHJjb3JuICImI3gyMzFGOyItLT4KLTwhLS1FTlRJVFkgbHJjb3JuZXIgIiYjeDIzMUY7
Ii0tPgotPCEtLUVOVElUWSBmcm93biAiJiN4MjMyMjsiLS0+Ci08IS0tRU5USVRZIHNmcm93biAi
JiN4MjMyMjsiLS0+Ci08IS0tRU5USVRZIHNtaWxlICImI3gyMzIzOyItLT4KLTwhLS1FTlRJVFkg
c3NtaWxlICImI3gyMzIzOyItLT4KLTwhLS1FTlRJVFkgY3lsY3R5ICImI3gyMzJEOyItLT4KLTwh
LS1FTlRJVFkgcHJvZmFsYXIgIiYjeDIzMkU7Ii0tPgotPCEtLUVOVElUWSB0b3Bib3QgIiYjeDIz
MzY7Ii0tPgotPCEtLUVOVElUWSBvdmJhciAiJiN4MjMzRDsiLS0+Ci08IS0tRU5USVRZIHNvbGJh
ciAiJiN4MjMzRjsiLS0+Ci08IS0tRU5USVRZIGFuZ3phcnIgIiYjeDIzN0M7Ii0tPgotPCEtLUVO
VElUWSBsbW91c3QgIiYjeDIzQjA7Ii0tPgotPCEtLUVOVElUWSBsbW91c3RhY2hlICImI3gyM0Iw
OyItLT4KLTwhLS1FTlRJVFkgcm1vdXN0ICImI3gyM0IxOyItLT4KLTwhLS1FTlRJVFkgcm1vdXN0
YWNoZSAiJiN4MjNCMTsiLS0+Ci08IS0tRU5USVRZIHRicmsgIiYjeDIzQjQ7Ii0tPgotPCEtLUVO
VElUWSBPdmVyQnJhY2tldCAiJiN4MjNCNDsiLS0+Ci08IS0tRU5USVRZIGJicmsgIiYjeDIzQjU7
Ii0tPgotPCEtLUVOVElUWSBVbmRlckJyYWNrZXQgIiYjeDIzQjU7Ii0tPgotPCEtLUVOVElUWSBi
YnJrdGJyayAiJiN4MjNCNjsiLS0+Ci08IS0tRU5USVRZIE92ZXJQYXJlbnRoZXNpcyAiJiN4MjNE
QzsiLS0+Ci08IS0tRU5USVRZIFVuZGVyUGFyZW50aGVzaXMgIiYjeDIzREQ7Ii0tPgotPCEtLUVO
VElUWSBPdmVyQnJhY2UgIiYjeDIzREU7Ii0tPgotPCEtLUVOVElUWSBVbmRlckJyYWNlICImI3gy
M0RGOyItLT4KLTwhLS1FTlRJVFkgdHJwZXppdW0gIiYjeDIzRTI7Ii0tPgotPCEtLUVOVElUWSBl
bGludGVycyAiJiN4MjNFNzsiLS0+Ci08IS0tRU5USVRZIGJsYW5rICImI3gyNDIzOyItLT4KLTwh
LS1FTlRJVFkgb1MgIiYjeDI0Qzg7Ii0tPgotPCEtLUVOVElUWSBjaXJjbGVkUyAiJiN4MjRDODsi
LS0+Ci08IS0tRU5USVRZIGJveGggIiYjeDI1MDA7Ii0tPgotPCEtLUVOVElUWSBIb3Jpem9udGFs
TGluZSAiJiN4MjUwMDsiLS0+Ci08IS0tRU5USVRZIGJveHYgIiYjeDI1MDI7Ii0tPgotPCEtLUVO
VElUWSBib3hkciAiJiN4MjUwQzsiLS0+Ci08IS0tRU5USVRZIGJveGRsICImI3gyNTEwOyItLT4K
LTwhLS1FTlRJVFkgYm94dXIgIiYjeDI1MTQ7Ii0tPgotPCEtLUVOVElUWSBib3h1bCAiJiN4MjUx
ODsiLS0+Ci08IS0tRU5USVRZIGJveHZyICImI3gyNTFDOyItLT4KLTwhLS1FTlRJVFkgYm94dmwg
IiYjeDI1MjQ7Ii0tPgotPCEtLUVOVElUWSBib3hoZCAiJiN4MjUyQzsiLS0+Ci08IS0tRU5USVRZ
IGJveGh1ICImI3gyNTM0OyItLT4KLTwhLS1FTlRJVFkgYm94dmggIiYjeDI1M0M7Ii0tPgotPCEt
LUVOVElUWSBib3hIICImI3gyNTUwOyItLT4KLTwhLS1FTlRJVFkgYm94ViAiJiN4MjU1MTsiLS0+
Ci08IS0tRU5USVRZIGJveGRSICImI3gyNTUyOyItLT4KLTwhLS1FTlRJVFkgYm94RHIgIiYjeDI1
NTM7Ii0tPgotPCEtLUVOVElUWSBib3hEUiAiJiN4MjU1NDsiLS0+Ci08IS0tRU5USVRZIGJveGRM
ICImI3gyNTU1OyItLT4KLTwhLS1FTlRJVFkgYm94RGwgIiYjeDI1NTY7Ii0tPgotPCEtLUVOVElU
WSBib3hETCAiJiN4MjU1NzsiLS0+Ci08IS0tRU5USVRZIGJveHVSICImI3gyNTU4OyItLT4KLTwh
LS1FTlRJVFkgYm94VXIgIiYjeDI1NTk7Ii0tPgotPCEtLUVOVElUWSBib3hVUiAiJiN4MjU1QTsi
LS0+Ci08IS0tRU5USVRZIGJveHVMICImI3gyNTVCOyItLT4KLTwhLS1FTlRJVFkgYm94VWwgIiYj
eDI1NUM7Ii0tPgotPCEtLUVOVElUWSBib3hVTCAiJiN4MjU1RDsiLS0+Ci08IS0tRU5USVRZIGJv
eHZSICImI3gyNTVFOyItLT4KLTwhLS1FTlRJVFkgYm94VnIgIiYjeDI1NUY7Ii0tPgotPCEtLUVO
VElUWSBib3hWUiAiJiN4MjU2MDsiLS0+Ci08IS0tRU5USVRZIGJveHZMICImI3gyNTYxOyItLT4K
LTwhLS1FTlRJVFkgYm94VmwgIiYjeDI1NjI7Ii0tPgotPCEtLUVOVElUWSBib3hWTCAiJiN4MjU2
MzsiLS0+Ci08IS0tRU5USVRZIGJveEhkICImI3gyNTY0OyItLT4KLTwhLS1FTlRJVFkgYm94aEQg
IiYjeDI1NjU7Ii0tPgotPCEtLUVOVElUWSBib3hIRCAiJiN4MjU2NjsiLS0+Ci08IS0tRU5USVRZ
IGJveEh1ICImI3gyNTY3OyItLT4KLTwhLS1FTlRJVFkgYm94aFUgIiYjeDI1Njg7Ii0tPgotPCEt
LUVOVElUWSBib3hIVSAiJiN4MjU2OTsiLS0+Ci08IS0tRU5USVRZIGJveHZIICImI3gyNTZBOyIt
LT4KLTwhLS1FTlRJVFkgYm94VmggIiYjeDI1NkI7Ii0tPgotPCEtLUVOVElUWSBib3hWSCAiJiN4
MjU2QzsiLS0+Ci08IS0tRU5USVRZIHVoYmxrICImI3gyNTgwOyItLT4KLTwhLS1FTlRJVFkgbGhi
bGsgIiYjeDI1ODQ7Ii0tPgotPCEtLUVOVElUWSBibG9jayAiJiN4MjU4ODsiLS0+Ci08IS0tRU5U
SVRZIGJsazE0ICImI3gyNTkxOyItLT4KLTwhLS1FTlRJVFkgYmxrMTIgIiYjeDI1OTI7Ii0tPgot
PCEtLUVOVElUWSBibGszNCAiJiN4MjU5MzsiLS0+Ci08IS0tRU5USVRZIHNxdSAiJiN4MjVBMTsi
LS0+Ci08IS0tRU5USVRZIHNxdWFyZSAiJiN4MjVBMTsiLS0+Ci08IS0tRU5USVRZIFNxdWFyZSAi
JiN4MjVBMTsiLS0+Ci08IS0tRU5USVRZIHNxdWYgIiYjeDI1QUE7Ii0tPgotPCEtLUVOVElUWSBz
cXVhcmYgIiYjeDI1QUE7Ii0tPgotPCEtLUVOVElUWSBibGFja3NxdWFyZSAiJiN4MjVBQTsiLS0+
Ci08IS0tRU5USVRZIEZpbGxlZFZlcnlTbWFsbFNxdWFyZSAiJiN4MjVBQTsiLS0+Ci08IS0tRU5U
SVRZIEVtcHR5VmVyeVNtYWxsU3F1YXJlICImI3gyNUFCOyItLT4KLTwhLS1FTlRJVFkgcmVjdCAi
JiN4MjVBRDsiLS0+Ci08IS0tRU5USVRZIG1hcmtlciAiJiN4MjVBRTsiLS0+Ci08IS0tRU5USVRZ
IGZsdG5zICImI3gyNUIxOyItLT4KLTwhLS1FTlRJVFkgeHV0cmkgIiYjeDI1QjM7Ii0tPgotPCEt
LUVOVElUWSBiaWd0cmlhbmdsZXVwICImI3gyNUIzOyItLT4KLTwhLS1FTlRJVFkgdXRyaWYgIiYj
eDI1QjQ7Ii0tPgotPCEtLUVOVElUWSBibGFja3RyaWFuZ2xlICImI3gyNUI0OyItLT4KLTwhLS1F
TlRJVFkgdXRyaSAiJiN4MjVCNTsiLS0+Ci08IS0tRU5USVRZIHRyaWFuZ2xlICImI3gyNUI1OyIt
LT4KLTwhLS1FTlRJVFkgcnRyaWYgIiYjeDI1Qjg7Ii0tPgotPCEtLUVOVElUWSBibGFja3RyaWFu
Z2xlcmlnaHQgIiYjeDI1Qjg7Ii0tPgotPCEtLUVOVElUWSBydHJpICImI3gyNUI5OyItLT4KLTwh
LS1FTlRJVFkgdHJpYW5nbGVyaWdodCAiJiN4MjVCOTsiLS0+Ci08IS0tRU5USVRZIHhkdHJpICIm
I3gyNUJEOyItLT4KLTwhLS1FTlRJVFkgYmlndHJpYW5nbGVkb3duICImI3gyNUJEOyItLT4KLTwh
LS1FTlRJVFkgZHRyaWYgIiYjeDI1QkU7Ii0tPgotPCEtLUVOVElUWSBibGFja3RyaWFuZ2xlZG93
biAiJiN4MjVCRTsiLS0+Ci08IS0tRU5USVRZIGR0cmkgIiYjeDI1QkY7Ii0tPgotPCEtLUVOVElU
WSB0cmlhbmdsZWRvd24gIiYjeDI1QkY7Ii0tPgotPCEtLUVOVElUWSBsdHJpZiAiJiN4MjVDMjsi
LS0+Ci08IS0tRU5USVRZIGJsYWNrdHJpYW5nbGVsZWZ0ICImI3gyNUMyOyItLT4KLTwhLS1FTlRJ
VFkgbHRyaSAiJiN4MjVDMzsiLS0+Ci08IS0tRU5USVRZIHRyaWFuZ2xlbGVmdCAiJiN4MjVDMzsi
LS0+Ci08IS0tRU5USVRZIGxveiAiJiN4MjVDQTsiLS0+Ci08IS0tRU5USVRZIGxvemVuZ2UgIiYj
eDI1Q0E7Ii0tPgotPCEtLUVOVElUWSBjaXIgIiYjeDI1Q0I7Ii0tPgotPCEtLUVOVElUWSB0cmlk
b3QgIiYjeDI1RUM7Ii0tPgotPCEtLUVOVElUWSB4Y2lyYyAiJiN4MjVFRjsiLS0+Ci08IS0tRU5U
SVRZIGJpZ2NpcmMgIiYjeDI1RUY7Ii0tPgotPCEtLUVOVElUWSB1bHRyaSAiJiN4MjVGODsiLS0+
Ci08IS0tRU5USVRZIHVydHJpICImI3gyNUY5OyItLT4KLTwhLS1FTlRJVFkgbGx0cmkgIiYjeDI1
RkE7Ii0tPgotPCEtLUVOVElUWSBFbXB0eVNtYWxsU3F1YXJlICImI3gyNUZCOyItLT4KLTwhLS1F
TlRJVFkgRmlsbGVkU21hbGxTcXVhcmUgIiYjeDI1RkM7Ii0tPgotPCEtLUVOVElUWSBzdGFyZiAi
JiN4MjYwNTsiLS0+Ci08IS0tRU5USVRZIGJpZ3N0YXIgIiYjeDI2MDU7Ii0tPgotPCEtLUVOVElU
WSBzdGFyICImI3gyNjA2OyItLT4KLTwhLS1FTlRJVFkgcGhvbmUgIiYjeDI2MEU7Ii0tPgotPCEt
LUVOVElUWSBmZW1hbGUgIiYjeDI2NDA7Ii0tPgotPCEtLUVOVElUWSBtYWxlICImI3gyNjQyOyIt
LT4KLTwhLS1FTlRJVFkgc3BhZGVzICImI3gyNjYwOyItLT4KLTwhLS1FTlRJVFkgc3BhZGVzdWl0
ICImI3gyNjYwOyItLT4KLTwhLS1FTlRJVFkgY2x1YnMgIiYjeDI2NjM7Ii0tPgotPCEtLUVOVElU
WSBjbHVic3VpdCAiJiN4MjY2MzsiLS0+Ci08IS0tRU5USVRZIGhlYXJ0cyAiJiN4MjY2NTsiLS0+
Ci08IS0tRU5USVRZIGhlYXJ0c3VpdCAiJiN4MjY2NTsiLS0+Ci08IS0tRU5USVRZIGRpYW1zICIm
I3gyNjY2OyItLT4KLTwhLS1FTlRJVFkgZGlhbW9uZHN1aXQgIiYjeDI2NjY7Ii0tPgotPCEtLUVO
VElUWSBzdW5nICImI3gyNjZBOyItLT4KLTwhLS1FTlRJVFkgZmxhdCAiJiN4MjY2RDsiLS0+Ci08
IS0tRU5USVRZIG5hdHVyICImI3gyNjZFOyItLT4KLTwhLS1FTlRJVFkgbmF0dXJhbCAiJiN4MjY2
RTsiLS0+Ci08IS0tRU5USVRZIHNoYXJwICImI3gyNjZGOyItLT4KLTwhLS1FTlRJVFkgY2hlY2sg
IiYjeDI3MTM7Ii0tPgotPCEtLUVOVElUWSBjaGVja21hcmsgIiYjeDI3MTM7Ii0tPgotPCEtLUVO
VElUWSBjcm9zcyAiJiN4MjcxNzsiLS0+Ci08IS0tRU5USVRZIG1hbHQgIiYjeDI3MjA7Ii0tPgot
PCEtLUVOVElUWSBtYWx0ZXNlICImI3gyNzIwOyItLT4KLTwhLS1FTlRJVFkgc2V4dCAiJiN4Mjcz
NjsiLS0+Ci08IS0tRU5USVRZIFZlcnRpY2FsU2VwYXJhdG9yICImI3gyNzU4OyItLT4KLTwhLS1F
TlRJVFkgbGJicmsgIiYjeDI3NzI7Ii0tPgotPCEtLUVOVElUWSByYmJyayAiJiN4Mjc3MzsiLS0+
Ci08IS0tRU5USVRZIGJzb2xoc3ViICImI3gyN0M4OyItLT4KLTwhLS1FTlRJVFkgc3VwaHNvbCAi
JiN4MjdDOTsiLS0+Ci08IS0tRU5USVRZIGxvYnJrICImI3gyN0U2OyItLT4KLTwhLS1FTlRJVFkg
TGVmdERvdWJsZUJyYWNrZXQgIiYjeDI3RTY7Ii0tPgotPCEtLUVOVElUWSByb2JyayAiJiN4MjdF
NzsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0RG91YmxlQnJhY2tldCAiJiN4MjdFNzsiLS0+Ci08IS0t
RU5USVRZIGxhbmcgIiYjeDI3RTg7Ii0tPgotPCEtLUVOVElUWSBMZWZ0QW5nbGVCcmFja2V0ICIm
I3gyN0U4OyItLT4KLTwhLS1FTlRJVFkgbGFuZ2xlICImI3gyN0U4OyItLT4KLTwhLS1FTlRJVFkg
cmFuZyAiJiN4MjdFOTsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0QW5nbGVCcmFja2V0ICImI3gyN0U5
OyItLT4KLTwhLS1FTlRJVFkgcmFuZ2xlICImI3gyN0U5OyItLT4KLTwhLS1FTlRJVFkgTGFuZyAi
JiN4MjdFQTsiLS0+Ci08IS0tRU5USVRZIFJhbmcgIiYjeDI3RUI7Ii0tPgotPCEtLUVOVElUWSBs
b2FuZyAiJiN4MjdFQzsiLS0+Ci08IS0tRU5USVRZIHJvYW5nICImI3gyN0VEOyItLT4KLTwhLS1F
TlRJVFkgeGxhcnIgIiYjeDI3RjU7Ii0tPgotPCEtLUVOVElUWSBsb25nbGVmdGFycm93ICImI3gy
N0Y1OyItLT4KLTwhLS1FTlRJVFkgTG9uZ0xlZnRBcnJvdyAiJiN4MjdGNTsiLS0+Ci08IS0tRU5U
SVRZIHhyYXJyICImI3gyN0Y2OyItLT4KLTwhLS1FTlRJVFkgbG9uZ3JpZ2h0YXJyb3cgIiYjeDI3
RjY7Ii0tPgotPCEtLUVOVElUWSBMb25nUmlnaHRBcnJvdyAiJiN4MjdGNjsiLS0+Ci08IS0tRU5U
SVRZIHhoYXJyICImI3gyN0Y3OyItLT4KLTwhLS1FTlRJVFkgbG9uZ2xlZnRyaWdodGFycm93ICIm
I3gyN0Y3OyItLT4KLTwhLS1FTlRJVFkgTG9uZ0xlZnRSaWdodEFycm93ICImI3gyN0Y3OyItLT4K
LTwhLS1FTlRJVFkgeGxBcnIgIiYjeDI3Rjg7Ii0tPgotPCEtLUVOVElUWSBMb25nbGVmdGFycm93
ICImI3gyN0Y4OyItLT4KLTwhLS1FTlRJVFkgRG91YmxlTG9uZ0xlZnRBcnJvdyAiJiN4MjdGODsi
LS0+Ci08IS0tRU5USVRZIHhyQXJyICImI3gyN0Y5OyItLT4KLTwhLS1FTlRJVFkgTG9uZ3JpZ2h0
YXJyb3cgIiYjeDI3Rjk7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVMb25nUmlnaHRBcnJvdyAiJiN4
MjdGOTsiLS0+Ci08IS0tRU5USVRZIHhoQXJyICImI3gyN0ZBOyItLT4KLTwhLS1FTlRJVFkgTG9u
Z2xlZnRyaWdodGFycm93ICImI3gyN0ZBOyItLT4KLTwhLS1FTlRJVFkgRG91YmxlTG9uZ0xlZnRS
aWdodEFycm93ICImI3gyN0ZBOyItLT4KLTwhLS1FTlRJVFkgeG1hcCAiJiN4MjdGQzsiLS0+Ci08
IS0tRU5USVRZIGxvbmdtYXBzdG8gIiYjeDI3RkM7Ii0tPgotPCEtLUVOVElUWSBkemlncmFyciAi
JiN4MjdGRjsiLS0+Ci08IS0tRU5USVRZIG52bEFyciAiJiN4MjkwMjsiLS0+Ci08IS0tRU5USVRZ
IG52ckFyciAiJiN4MjkwMzsiLS0+Ci08IS0tRU5USVRZIG52SGFyciAiJiN4MjkwNDsiLS0+Ci08
IS0tRU5USVRZIE1hcCAiJiN4MjkwNTsiLS0+Ci08IS0tRU5USVRZIGxiYXJyICImI3gyOTBDOyIt
LT4KLTwhLS1FTlRJVFkgcmJhcnIgIiYjeDI5MEQ7Ii0tPgotPCEtLUVOVElUWSBia2Fyb3cgIiYj
eDI5MEQ7Ii0tPgotPCEtLUVOVElUWSBsQmFyciAiJiN4MjkwRTsiLS0+Ci08IS0tRU5USVRZIHJC
YXJyICImI3gyOTBGOyItLT4KLTwhLS1FTlRJVFkgZGJrYXJvdyAiJiN4MjkwRjsiLS0+Ci08IS0t
RU5USVRZIFJCYXJyICImI3gyOTEwOyItLT4KLTwhLS1FTlRJVFkgZHJia2Fyb3cgIiYjeDI5MTA7
Ii0tPgotPCEtLUVOVElUWSBERG90cmFoZCAiJiN4MjkxMTsiLS0+Ci08IS0tRU5USVRZIFVwQXJy
b3dCYXIgIiYjeDI5MTI7Ii0tPgotPCEtLUVOVElUWSBEb3duQXJyb3dCYXIgIiYjeDI5MTM7Ii0t
PgotPCEtLUVOVElUWSBSYXJydGwgIiYjeDI5MTY7Ii0tPgotPCEtLUVOVElUWSBsYXRhaWwgIiYj
eDI5MTk7Ii0tPgotPCEtLUVOVElUWSByYXRhaWwgIiYjeDI5MUE7Ii0tPgotPCEtLUVOVElUWSBs
QXRhaWwgIiYjeDI5MUI7Ii0tPgotPCEtLUVOVElUWSByQXRhaWwgIiYjeDI5MUM7Ii0tPgotPCEt
LUVOVElUWSBsYXJyZnMgIiYjeDI5MUQ7Ii0tPgotPCEtLUVOVElUWSByYXJyZnMgIiYjeDI5MUU7
Ii0tPgotPCEtLUVOVElUWSBsYXJyYmZzICImI3gyOTFGOyItLT4KLTwhLS1FTlRJVFkgcmFycmJm
cyAiJiN4MjkyMDsiLS0+Ci08IS0tRU5USVRZIG53YXJoayAiJiN4MjkyMzsiLS0+Ci08IS0tRU5U
SVRZIG5lYXJoayAiJiN4MjkyNDsiLS0+Ci08IS0tRU5USVRZIHNlYXJoayAiJiN4MjkyNTsiLS0+
Ci08IS0tRU5USVRZIGhrc2Vhcm93ICImI3gyOTI1OyItLT4KLTwhLS1FTlRJVFkgc3dhcmhrICIm
I3gyOTI2OyItLT4KLTwhLS1FTlRJVFkgaGtzd2Fyb3cgIiYjeDI5MjY7Ii0tPgotPCEtLUVOVElU
WSBud25lYXIgIiYjeDI5Mjc7Ii0tPgotPCEtLUVOVElUWSBuZXNlYXIgIiYjeDI5Mjg7Ii0tPgot
PCEtLUVOVElUWSB0b2VhICImI3gyOTI4OyItLT4KLTwhLS1FTlRJVFkgc2Vzd2FyICImI3gyOTI5
OyItLT4KLTwhLS1FTlRJVFkgdG9zYSAiJiN4MjkyOTsiLS0+Ci08IS0tRU5USVRZIHN3bndhciAi
JiN4MjkyQTsiLS0+Ci08IS0tRU5USVRZIHJhcnJjICImI3gyOTMzOyItLT4KLTwhLS1FTlRJVFkg
bnJhcnJjICImI3gyOTMzOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGN1ZGFycnIgIiYjeDI5MzU7
Ii0tPgotPCEtLUVOVElUWSBsZGNhICImI3gyOTM2OyItLT4KLTwhLS1FTlRJVFkgcmRjYSAiJiN4
MjkzNzsiLS0+Ci08IS0tRU5USVRZIGN1ZGFycmwgIiYjeDI5Mzg7Ii0tPgotPCEtLUVOVElUWSBs
YXJycGwgIiYjeDI5Mzk7Ii0tPgotPCEtLUVOVElUWSBjdXJhcnJtICImI3gyOTNDOyItLT4KLTwh
LS1FTlRJVFkgY3VsYXJycCAiJiN4MjkzRDsiLS0+Ci08IS0tRU5USVRZIHJhcnJwbCAiJiN4Mjk0
NTsiLS0+Ci08IS0tRU5USVRZIGhhcnJjaXIgIiYjeDI5NDg7Ii0tPgotPCEtLUVOVElUWSBVYXJy
b2NpciAiJiN4Mjk0OTsiLS0+Ci08IS0tRU5USVRZIGx1cmRzaGFyICImI3gyOTRBOyItLT4KLTwh
LS1FTlRJVFkgbGRydXNoYXIgIiYjeDI5NEI7Ii0tPgotPCEtLUVOVElUWSBMZWZ0UmlnaHRWZWN0
b3IgIiYjeDI5NEU7Ii0tPgotPCEtLUVOVElUWSBSaWdodFVwRG93blZlY3RvciAiJiN4Mjk0Rjsi
LS0+Ci08IS0tRU5USVRZIERvd25MZWZ0UmlnaHRWZWN0b3IgIiYjeDI5NTA7Ii0tPgotPCEtLUVO
VElUWSBMZWZ0VXBEb3duVmVjdG9yICImI3gyOTUxOyItLT4KLTwhLS1FTlRJVFkgTGVmdFZlY3Rv
ckJhciAiJiN4Mjk1MjsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0VmVjdG9yQmFyICImI3gyOTUzOyIt
LT4KLTwhLS1FTlRJVFkgUmlnaHRVcFZlY3RvckJhciAiJiN4Mjk1NDsiLS0+Ci08IS0tRU5USVRZ
IFJpZ2h0RG93blZlY3RvckJhciAiJiN4Mjk1NTsiLS0+Ci08IS0tRU5USVRZIERvd25MZWZ0VmVj
dG9yQmFyICImI3gyOTU2OyItLT4KLTwhLS1FTlRJVFkgRG93blJpZ2h0VmVjdG9yQmFyICImI3gy
OTU3OyItLT4KLTwhLS1FTlRJVFkgTGVmdFVwVmVjdG9yQmFyICImI3gyOTU4OyItLT4KLTwhLS1F
TlRJVFkgTGVmdERvd25WZWN0b3JCYXIgIiYjeDI5NTk7Ii0tPgotPCEtLUVOVElUWSBMZWZ0VGVl
VmVjdG9yICImI3gyOTVBOyItLT4KLTwhLS1FTlRJVFkgUmlnaHRUZWVWZWN0b3IgIiYjeDI5NUI7
Ii0tPgotPCEtLUVOVElUWSBSaWdodFVwVGVlVmVjdG9yICImI3gyOTVDOyItLT4KLTwhLS1FTlRJ
VFkgUmlnaHREb3duVGVlVmVjdG9yICImI3gyOTVEOyItLT4KLTwhLS1FTlRJVFkgRG93bkxlZnRU
ZWVWZWN0b3IgIiYjeDI5NUU7Ii0tPgotPCEtLUVOVElUWSBEb3duUmlnaHRUZWVWZWN0b3IgIiYj
eDI5NUY7Ii0tPgotPCEtLUVOVElUWSBMZWZ0VXBUZWVWZWN0b3IgIiYjeDI5NjA7Ii0tPgotPCEt
LUVOVElUWSBMZWZ0RG93blRlZVZlY3RvciAiJiN4Mjk2MTsiLS0+Ci08IS0tRU5USVRZIGxIYXIg
IiYjeDI5NjI7Ii0tPgotPCEtLUVOVElUWSB1SGFyICImI3gyOTYzOyItLT4KLTwhLS1FTlRJVFkg
ckhhciAiJiN4Mjk2NDsiLS0+Ci08IS0tRU5USVRZIGRIYXIgIiYjeDI5NjU7Ii0tPgotPCEtLUVO
VElUWSBsdXJ1aGFyICImI3gyOTY2OyItLT4KLTwhLS1FTlRJVFkgbGRyZGhhciAiJiN4Mjk2Nzsi
LS0+Ci08IS0tRU5USVRZIHJ1bHVoYXIgIiYjeDI5Njg7Ii0tPgotPCEtLUVOVElUWSByZGxkaGFy
ICImI3gyOTY5OyItLT4KLTwhLS1FTlRJVFkgbGhhcnVsICImI3gyOTZBOyItLT4KLTwhLS1FTlRJ
VFkgbGxoYXJkICImI3gyOTZCOyItLT4KLTwhLS1FTlRJVFkgcmhhcnVsICImI3gyOTZDOyItLT4K
LTwhLS1FTlRJVFkgbHJoYXJkICImI3gyOTZEOyItLT4KLTwhLS1FTlRJVFkgdWRoYXIgIiYjeDI5
NkU7Ii0tPgotPCEtLUVOVElUWSBVcEVxdWlsaWJyaXVtICImI3gyOTZFOyItLT4KLTwhLS1FTlRJ
VFkgZHVoYXIgIiYjeDI5NkY7Ii0tPgotPCEtLUVOVElUWSBSZXZlcnNlVXBFcXVpbGlicml1bSAi
JiN4Mjk2RjsiLS0+Ci08IS0tRU5USVRZIFJvdW5kSW1wbGllcyAiJiN4Mjk3MDsiLS0+Ci08IS0t
RU5USVRZIGVyYXJyICImI3gyOTcxOyItLT4KLTwhLS1FTlRJVFkgc2ltcmFyciAiJiN4Mjk3Mjsi
LS0+Ci08IS0tRU5USVRZIGxhcnJzaW0gIiYjeDI5NzM7Ii0tPgotPCEtLUVOVElUWSByYXJyc2lt
ICImI3gyOTc0OyItLT4KLTwhLS1FTlRJVFkgcmFycmFwICImI3gyOTc1OyItLT4KLTwhLS1FTlRJ
VFkgbHRsYXJyICImI3gyOTc2OyItLT4KLTwhLS1FTlRJVFkgZ3RyYXJyICImI3gyOTc4OyItLT4K
LTwhLS1FTlRJVFkgc3VicmFyciAiJiN4Mjk3OTsiLS0+Ci08IS0tRU5USVRZIHN1cGxhcnIgIiYj
eDI5N0I7Ii0tPgotPCEtLUVOVElUWSBsZmlzaHQgIiYjeDI5N0M7Ii0tPgotPCEtLUVOVElUWSBy
ZmlzaHQgIiYjeDI5N0Q7Ii0tPgotPCEtLUVOVElUWSB1ZmlzaHQgIiYjeDI5N0U7Ii0tPgotPCEt
LUVOVElUWSBkZmlzaHQgIiYjeDI5N0Y7Ii0tPgotPCEtLUVOVElUWSBsb3BhciAiJiN4Mjk4NTsi
LS0+Ci08IS0tRU5USVRZIHJvcGFyICImI3gyOTg2OyItLT4KLTwhLS1FTlRJVFkgbGJya2UgIiYj
eDI5OEI7Ii0tPgotPCEtLUVOVElUWSByYnJrZSAiJiN4Mjk4QzsiLS0+Ci08IS0tRU5USVRZIGxi
cmtzbHUgIiYjeDI5OEQ7Ii0tPgotPCEtLUVOVElUWSByYnJrc2xkICImI3gyOThFOyItLT4KLTwh
LS1FTlRJVFkgbGJya3NsZCAiJiN4Mjk4RjsiLS0+Ci08IS0tRU5USVRZIHJicmtzbHUgIiYjeDI5
OTA7Ii0tPgotPCEtLUVOVElUWSBsYW5nZCAiJiN4Mjk5MTsiLS0+Ci08IS0tRU5USVRZIHJhbmdk
ICImI3gyOTkyOyItLT4KLTwhLS1FTlRJVFkgbHBhcmx0ICImI3gyOTkzOyItLT4KLTwhLS1FTlRJ
VFkgcnBhcmd0ICImI3gyOTk0OyItLT4KLTwhLS1FTlRJVFkgZ3RsUGFyICImI3gyOTk1OyItLT4K
LTwhLS1FTlRJVFkgbHRyUGFyICImI3gyOTk2OyItLT4KLTwhLS1FTlRJVFkgdnppZ3phZyAiJiN4
Mjk5QTsiLS0+Ci08IS0tRU5USVRZIHZhbmdydCAiJiN4Mjk5QzsiLS0+Ci08IS0tRU5USVRZIGFu
Z3J0dmJkICImI3gyOTlEOyItLT4KLTwhLS1FTlRJVFkgYW5nZSAiJiN4MjlBNDsiLS0+Ci08IS0t
RU5USVRZIHJhbmdlICImI3gyOUE1OyItLT4KLTwhLS1FTlRJVFkgZHdhbmdsZSAiJiN4MjlBNjsi
LS0+Ci08IS0tRU5USVRZIHV3YW5nbGUgIiYjeDI5QTc7Ii0tPgotPCEtLUVOVElUWSBhbmdtc2Rh
YSAiJiN4MjlBODsiLS0+Ci08IS0tRU5USVRZIGFuZ21zZGFiICImI3gyOUE5OyItLT4KLTwhLS1F
TlRJVFkgYW5nbXNkYWMgIiYjeDI5QUE7Ii0tPgotPCEtLUVOVElUWSBhbmdtc2RhZCAiJiN4MjlB
QjsiLS0+Ci08IS0tRU5USVRZIGFuZ21zZGFlICImI3gyOUFDOyItLT4KLTwhLS1FTlRJVFkgYW5n
bXNkYWYgIiYjeDI5QUQ7Ii0tPgotPCEtLUVOVElUWSBhbmdtc2RhZyAiJiN4MjlBRTsiLS0+Ci08
IS0tRU5USVRZIGFuZ21zZGFoICImI3gyOUFGOyItLT4KLTwhLS1FTlRJVFkgYmVtcHR5diAiJiN4
MjlCMDsiLS0+Ci08IS0tRU5USVRZIGRlbXB0eXYgIiYjeDI5QjE7Ii0tPgotPCEtLUVOVElUWSBj
ZW1wdHl2ICImI3gyOUIyOyItLT4KLTwhLS1FTlRJVFkgcmFlbXB0eXYgIiYjeDI5QjM7Ii0tPgot
PCEtLUVOVElUWSBsYWVtcHR5diAiJiN4MjlCNDsiLS0+Ci08IS0tRU5USVRZIG9oYmFyICImI3gy
OUI1OyItLT4KLTwhLS1FTlRJVFkgb21pZCAiJiN4MjlCNjsiLS0+Ci08IS0tRU5USVRZIG9wYXIg
IiYjeDI5Qjc7Ii0tPgotPCEtLUVOVElUWSBvcGVycCAiJiN4MjlCOTsiLS0+Ci08IS0tRU5USVRZ
IG9sY3Jvc3MgIiYjeDI5QkI7Ii0tPgotPCEtLUVOVElUWSBvZHNvbGQgIiYjeDI5QkM7Ii0tPgot
PCEtLUVOVElUWSBvbGNpciAiJiN4MjlCRTsiLS0+Ci08IS0tRU5USVRZIG9mY2lyICImI3gyOUJG
OyItLT4KLTwhLS1FTlRJVFkgb2x0ICImI3gyOUMwOyItLT4KLTwhLS1FTlRJVFkgb2d0ICImI3gy
OUMxOyItLT4KLTwhLS1FTlRJVFkgY2lyc2NpciAiJiN4MjlDMjsiLS0+Ci08IS0tRU5USVRZIGNp
ckUgIiYjeDI5QzM7Ii0tPgotPCEtLUVOVElUWSBzb2xiICImI3gyOUM0OyItLT4KLTwhLS1FTlRJ
VFkgYnNvbGIgIiYjeDI5QzU7Ii0tPgotPCEtLUVOVElUWSBib3hib3ggIiYjeDI5Qzk7Ii0tPgot
PCEtLUVOVElUWSB0cmlzYiAiJiN4MjlDRDsiLS0+Ci08IS0tRU5USVRZIHJ0cmlsdHJpICImI3gy
OUNFOyItLT4KLTwhLS1FTlRJVFkgTGVmdFRyaWFuZ2xlQmFyICImI3gyOUNGOyItLT4KLTwhLS1F
TlRJVFkgTm90TGVmdFRyaWFuZ2xlQmFyICImI3gyOUNGOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZ
IFJpZ2h0VHJpYW5nbGVCYXIgIiYjeDI5RDA7Ii0tPgotPCEtLUVOVElUWSBOb3RSaWdodFRyaWFu
Z2xlQmFyICImI3gyOUQwOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGlpbmZpbiAiJiN4MjlEQzsi
LS0+Ci08IS0tRU5USVRZIGluZmludGllICImI3gyOUREOyItLT4KLTwhLS1FTlRJVFkgbnZpbmZp
biAiJiN4MjlERTsiLS0+Ci08IS0tRU5USVRZIGVwYXJzbCAiJiN4MjlFMzsiLS0+Ci08IS0tRU5U
SVRZIHNtZXBhcnNsICImI3gyOUU0OyItLT4KLTwhLS1FTlRJVFkgZXF2cGFyc2wgIiYjeDI5RTU7
Ii0tPgotPCEtLUVOVElUWSBsb3pmICImI3gyOUVCOyItLT4KLTwhLS1FTlRJVFkgYmxhY2tsb3pl
bmdlICImI3gyOUVCOyItLT4KLTwhLS1FTlRJVFkgUnVsZURlbGF5ZWQgIiYjeDI5RjQ7Ii0tPgot
PCEtLUVOVElUWSBkc29sICImI3gyOUY2OyItLT4KLTwhLS1FTlRJVFkgeG9kb3QgIiYjeDJBMDA7
Ii0tPgotPCEtLUVOVElUWSBiaWdvZG90ICImI3gyQTAwOyItLT4KLTwhLS1FTlRJVFkgeG9wbHVz
ICImI3gyQTAxOyItLT4KLTwhLS1FTlRJVFkgYmlnb3BsdXMgIiYjeDJBMDE7Ii0tPgotPCEtLUVO
VElUWSB4b3RpbWUgIiYjeDJBMDI7Ii0tPgotPCEtLUVOVElUWSBiaWdvdGltZXMgIiYjeDJBMDI7
Ii0tPgotPCEtLUVOVElUWSB4dXBsdXMgIiYjeDJBMDQ7Ii0tPgotPCEtLUVOVElUWSBiaWd1cGx1
cyAiJiN4MkEwNDsiLS0+Ci08IS0tRU5USVRZIHhzcWN1cCAiJiN4MkEwNjsiLS0+Ci08IS0tRU5U
SVRZIGJpZ3NxY3VwICImI3gyQTA2OyItLT4KLTwhLS1FTlRJVFkgcWludCAiJiN4MkEwQzsiLS0+
Ci08IS0tRU5USVRZIGlpaWludCAiJiN4MkEwQzsiLS0+Ci08IS0tRU5USVRZIGZwYXJ0aW50ICIm
I3gyQTBEOyItLT4KLTwhLS1FTlRJVFkgY2lyZm5pbnQgIiYjeDJBMTA7Ii0tPgotPCEtLUVOVElU
WSBhd2ludCAiJiN4MkExMTsiLS0+Ci08IS0tRU5USVRZIHJwcG9saW50ICImI3gyQTEyOyItLT4K
LTwhLS1FTlRJVFkgc2Nwb2xpbnQgIiYjeDJBMTM7Ii0tPgotPCEtLUVOVElUWSBucG9saW50ICIm
I3gyQTE0OyItLT4KLTwhLS1FTlRJVFkgcG9pbnRpbnQgIiYjeDJBMTU7Ii0tPgotPCEtLUVOVElU
WSBxdWF0aW50ICImI3gyQTE2OyItLT4KLTwhLS1FTlRJVFkgaW50bGFyaGsgIiYjeDJBMTc7Ii0t
PgotPCEtLUVOVElUWSBwbHVzY2lyICImI3gyQTIyOyItLT4KLTwhLS1FTlRJVFkgcGx1c2FjaXIg
IiYjeDJBMjM7Ii0tPgotPCEtLUVOVElUWSBzaW1wbHVzICImI3gyQTI0OyItLT4KLTwhLS1FTlRJ
VFkgcGx1c2R1ICImI3gyQTI1OyItLT4KLTwhLS1FTlRJVFkgcGx1c3NpbSAiJiN4MkEyNjsiLS0+
Ci08IS0tRU5USVRZIHBsdXN0d28gIiYjeDJBMjc7Ii0tPgotPCEtLUVOVElUWSBtY29tbWEgIiYj
eDJBMjk7Ii0tPgotPCEtLUVOVElUWSBtaW51c2R1ICImI3gyQTJBOyItLT4KLTwhLS1FTlRJVFkg
bG9wbHVzICImI3gyQTJEOyItLT4KLTwhLS1FTlRJVFkgcm9wbHVzICImI3gyQTJFOyItLT4KLTwh
LS1FTlRJVFkgQ3Jvc3MgIiYjeDJBMkY7Ii0tPgotPCEtLUVOVElUWSB0aW1lc2QgIiYjeDJBMzA7
Ii0tPgotPCEtLUVOVElUWSB0aW1lc2JhciAiJiN4MkEzMTsiLS0+Ci08IS0tRU5USVRZIHNtYXNo
cCAiJiN4MkEzMzsiLS0+Ci08IS0tRU5USVRZIGxvdGltZXMgIiYjeDJBMzQ7Ii0tPgotPCEtLUVO
VElUWSByb3RpbWVzICImI3gyQTM1OyItLT4KLTwhLS1FTlRJVFkgb3RpbWVzYXMgIiYjeDJBMzY7
Ii0tPgotPCEtLUVOVElUWSBPdGltZXMgIiYjeDJBMzc7Ii0tPgotPCEtLUVOVElUWSBvZGl2ICIm
I3gyQTM4OyItLT4KLTwhLS1FTlRJVFkgdHJpcGx1cyAiJiN4MkEzOTsiLS0+Ci08IS0tRU5USVRZ
IHRyaW1pbnVzICImI3gyQTNBOyItLT4KLTwhLS1FTlRJVFkgdHJpdGltZSAiJiN4MkEzQjsiLS0+
Ci08IS0tRU5USVRZIGlwcm9kICImI3gyQTNDOyItLT4KLTwhLS1FTlRJVFkgaW50cHJvZCAiJiN4
MkEzQzsiLS0+Ci08IS0tRU5USVRZIGFtYWxnICImI3gyQTNGOyItLT4KLTwhLS1FTlRJVFkgY2Fw
ZG90ICImI3gyQTQwOyItLT4KLTwhLS1FTlRJVFkgbmN1cCAiJiN4MkE0MjsiLS0+Ci08IS0tRU5U
SVRZIG5jYXAgIiYjeDJBNDM7Ii0tPgotPCEtLUVOVElUWSBjYXBhbmQgIiYjeDJBNDQ7Ii0tPgot
PCEtLUVOVElUWSBjdXBvciAiJiN4MkE0NTsiLS0+Ci08IS0tRU5USVRZIGN1cGNhcCAiJiN4MkE0
NjsiLS0+Ci08IS0tRU5USVRZIGNhcGN1cCAiJiN4MkE0NzsiLS0+Ci08IS0tRU5USVRZIGN1cGJy
Y2FwICImI3gyQTQ4OyItLT4KLTwhLS1FTlRJVFkgY2FwYnJjdXAgIiYjeDJBNDk7Ii0tPgotPCEt
LUVOVElUWSBjdXBjdXAgIiYjeDJBNEE7Ii0tPgotPCEtLUVOVElUWSBjYXBjYXAgIiYjeDJBNEI7
Ii0tPgotPCEtLUVOVElUWSBjY3VwcyAiJiN4MkE0QzsiLS0+Ci08IS0tRU5USVRZIGNjYXBzICIm
I3gyQTREOyItLT4KLTwhLS1FTlRJVFkgY2N1cHNzbSAiJiN4MkE1MDsiLS0+Ci08IS0tRU5USVRZ
IEFuZCAiJiN4MkE1MzsiLS0+Ci08IS0tRU5USVRZIE9yICImI3gyQTU0OyItLT4KLTwhLS1FTlRJ
VFkgYW5kYW5kICImI3gyQTU1OyItLT4KLTwhLS1FTlRJVFkgb3JvciAiJiN4MkE1NjsiLS0+Ci08
IS0tRU5USVRZIG9yc2xvcGUgIiYjeDJBNTc7Ii0tPgotPCEtLUVOVElUWSBhbmRzbG9wZSAiJiN4
MkE1ODsiLS0+Ci08IS0tRU5USVRZIGFuZHYgIiYjeDJBNUE7Ii0tPgotPCEtLUVOVElUWSBvcnYg
IiYjeDJBNUI7Ii0tPgotPCEtLUVOVElUWSBhbmRkICImI3gyQTVDOyItLT4KLTwhLS1FTlRJVFkg
b3JkICImI3gyQTVEOyItLT4KLTwhLS1FTlRJVFkgd2VkYmFyICImI3gyQTVGOyItLT4KLTwhLS1F
TlRJVFkgc2RvdGUgIiYjeDJBNjY7Ii0tPgotPCEtLUVOVElUWSBzaW1kb3QgIiYjeDJBNkE7Ii0t
PgotPCEtLUVOVElUWSBjb25nZG90ICImI3gyQTZEOyItLT4KLTwhLS1FTlRJVFkgbmNvbmdkb3Qg
IiYjeDJBNkQ7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgZWFzdGVyICImI3gyQTZFOyItLT4KLTwh
LS1FTlRJVFkgYXBhY2lyICImI3gyQTZGOyItLT4KLTwhLS1FTlRJVFkgYXBFICImI3gyQTcwOyIt
LT4KLTwhLS1FTlRJVFkgbmFwRSAiJiN4MkE3MDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBlcGx1
cyAiJiN4MkE3MTsiLS0+Ci08IS0tRU5USVRZIHBsdXNlICImI3gyQTcyOyItLT4KLTwhLS1FTlRJ
VFkgRXNpbSAiJiN4MkE3MzsiLS0+Ci08IS0tRU5USVRZIENvbG9uZSAiJiN4MkE3NDsiLS0+Ci08
IS0tRU5USVRZIEVxdWFsICImI3gyQTc1OyItLT4KLTwhLS1FTlRJVFkgZUREb3QgIiYjeDJBNzc7
Ii0tPgotPCEtLUVOVElUWSBkZG90c2VxICImI3gyQTc3OyItLT4KLTwhLS1FTlRJVFkgZXF1aXZE
RCAiJiN4MkE3ODsiLS0+Ci08IS0tRU5USVRZIGx0Y2lyICImI3gyQTc5OyItLT4KLTwhLS1FTlRJ
VFkgZ3RjaXIgIiYjeDJBN0E7Ii0tPgotPCEtLUVOVElUWSBsdHF1ZXN0ICImI3gyQTdCOyItLT4K
LTwhLS1FTlRJVFkgZ3RxdWVzdCAiJiN4MkE3QzsiLS0+Ci08IS0tRU5USVRZIGxlcyAiJiN4MkE3
RDsiLS0+Ci08IS0tRU5USVRZIExlc3NTbGFudEVxdWFsICImI3gyQTdEOyItLT4KLTwhLS1FTlRJ
VFkgbGVxc2xhbnQgIiYjeDJBN0Q7Ii0tPgotPCEtLUVOVElUWSBubGVzICImI3gyQTdEOyYjeDMz
ODsiLS0+Ci08IS0tRU5USVRZIE5vdExlc3NTbGFudEVxdWFsICImI3gyQTdEOyYjeDMzODsiLS0+
Ci08IS0tRU5USVRZIG5sZXFzbGFudCAiJiN4MkE3RDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBn
ZXMgIiYjeDJBN0U7Ii0tPgotPCEtLUVOVElUWSBHcmVhdGVyU2xhbnRFcXVhbCAiJiN4MkE3RTsi
LS0+Ci08IS0tRU5USVRZIGdlcXNsYW50ICImI3gyQTdFOyItLT4KLTwhLS1FTlRJVFkgbmdlcyAi
JiN4MkE3RTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBOb3RHcmVhdGVyU2xhbnRFcXVhbCAiJiN4
MkE3RTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBuZ2Vxc2xhbnQgIiYjeDJBN0U7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgbGVzZG90ICImI3gyQTdGOyItLT4KLTwhLS1FTlRJVFkgZ2VzZG90ICIm
I3gyQTgwOyItLT4KLTwhLS1FTlRJVFkgbGVzZG90byAiJiN4MkE4MTsiLS0+Ci08IS0tRU5USVRZ
IGdlc2RvdG8gIiYjeDJBODI7Ii0tPgotPCEtLUVOVElUWSBsZXNkb3RvciAiJiN4MkE4MzsiLS0+
Ci08IS0tRU5USVRZIGdlc2RvdG9sICImI3gyQTg0OyItLT4KLTwhLS1FTlRJVFkgbGFwICImI3gy
QTg1OyItLT4KLTwhLS1FTlRJVFkgbGVzc2FwcHJveCAiJiN4MkE4NTsiLS0+Ci08IS0tRU5USVRZ
IGdhcCAiJiN4MkE4NjsiLS0+Ci08IS0tRU5USVRZIGd0cmFwcHJveCAiJiN4MkE4NjsiLS0+Ci08
IS0tRU5USVRZIGxuZSAiJiN4MkE4NzsiLS0+Ci08IS0tRU5USVRZIGxuZXEgIiYjeDJBODc7Ii0t
PgotPCEtLUVOVElUWSBnbmUgIiYjeDJBODg7Ii0tPgotPCEtLUVOVElUWSBnbmVxICImI3gyQTg4
OyItLT4KLTwhLS1FTlRJVFkgbG5hcCAiJiN4MkE4OTsiLS0+Ci08IS0tRU5USVRZIGxuYXBwcm94
ICImI3gyQTg5OyItLT4KLTwhLS1FTlRJVFkgZ25hcCAiJiN4MkE4QTsiLS0+Ci08IS0tRU5USVRZ
IGduYXBwcm94ICImI3gyQThBOyItLT4KLTwhLS1FTlRJVFkgbEVnICImI3gyQThCOyItLT4KLTwh
LS1FTlRJVFkgbGVzc2VxcWd0ciAiJiN4MkE4QjsiLS0+Ci08IS0tRU5USVRZIGdFbCAiJiN4MkE4
QzsiLS0+Ci08IS0tRU5USVRZIGd0cmVxcWxlc3MgIiYjeDJBOEM7Ii0tPgotPCEtLUVOVElUWSBs
c2ltZSAiJiN4MkE4RDsiLS0+Ci08IS0tRU5USVRZIGdzaW1lICImI3gyQThFOyItLT4KLTwhLS1F
TlRJVFkgbHNpbWcgIiYjeDJBOEY7Ii0tPgotPCEtLUVOVElUWSBnc2ltbCAiJiN4MkE5MDsiLS0+
Ci08IS0tRU5USVRZIGxnRSAiJiN4MkE5MTsiLS0+Ci08IS0tRU5USVRZIGdsRSAiJiN4MkE5Mjsi
LS0+Ci08IS0tRU5USVRZIGxlc2dlcyAiJiN4MkE5MzsiLS0+Ci08IS0tRU5USVRZIGdlc2xlcyAi
JiN4MkE5NDsiLS0+Ci08IS0tRU5USVRZIGVscyAiJiN4MkE5NTsiLS0+Ci08IS0tRU5USVRZIGVx
c2xhbnRsZXNzICImI3gyQTk1OyItLT4KLTwhLS1FTlRJVFkgZWdzICImI3gyQTk2OyItLT4KLTwh
LS1FTlRJVFkgZXFzbGFudGd0ciAiJiN4MkE5NjsiLS0+Ci08IS0tRU5USVRZIGVsc2RvdCAiJiN4
MkE5NzsiLS0+Ci08IS0tRU5USVRZIGVnc2RvdCAiJiN4MkE5ODsiLS0+Ci08IS0tRU5USVRZIGVs
ICImI3gyQTk5OyItLT4KLTwhLS1FTlRJVFkgZWcgIiYjeDJBOUE7Ii0tPgotPCEtLUVOVElUWSBz
aW1sICImI3gyQTlEOyItLT4KLTwhLS1FTlRJVFkgc2ltZyAiJiN4MkE5RTsiLS0+Ci08IS0tRU5U
SVRZIHNpbWxFICImI3gyQTlGOyItLT4KLTwhLS1FTlRJVFkgc2ltZ0UgIiYjeDJBQTA7Ii0tPgot
PCEtLUVOVElUWSBMZXNzTGVzcyAiJiN4MkFBMTsiLS0+Ci08IS0tRU5USVRZIE5vdE5lc3RlZExl
c3NMZXNzICImI3gyQUExOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIEdyZWF0ZXJHcmVhdGVyICIm
I3gyQUEyOyItLT4KLTwhLS1FTlRJVFkgTm90TmVzdGVkR3JlYXRlckdyZWF0ZXIgIiYjeDJBQTI7
JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgZ2xqICImI3gyQUE0OyItLT4KLTwhLS1FTlRJVFkgZ2xh
ICImI3gyQUE1OyItLT4KLTwhLS1FTlRJVFkgbHRjYyAiJiN4MkFBNjsiLS0+Ci08IS0tRU5USVRZ
IGd0Y2MgIiYjeDJBQTc7Ii0tPgotPCEtLUVOVElUWSBsZXNjYyAiJiN4MkFBODsiLS0+Ci08IS0t
RU5USVRZIGdlc2NjICImI3gyQUE5OyItLT4KLTwhLS1FTlRJVFkgc210ICImI3gyQUFBOyItLT4K
LTwhLS1FTlRJVFkgbGF0ICImI3gyQUFCOyItLT4KLTwhLS1FTlRJVFkgc210ZSAiJiN4MkFBQzsi
LS0+Ci08IS0tRU5USVRZIHNtdGVzICImI3gyQUFDOyYjeEZFMDA7Ii0tPgotPCEtLUVOVElUWSBs
YXRlICImI3gyQUFEOyItLT4KLTwhLS1FTlRJVFkgbGF0ZXMgIiYjeDJBQUQ7JiN4RkUwMDsiLS0+
Ci08IS0tRU5USVRZIGJ1bXBFICImI3gyQUFFOyItLT4KLTwhLS1FTlRJVFkgcHJlICImI3gyQUFG
OyItLT4KLTwhLS1FTlRJVFkgcHJlY2VxICImI3gyQUFGOyItLT4KLTwhLS1FTlRJVFkgUHJlY2Vk
ZXNFcXVhbCAiJiN4MkFBRjsiLS0+Ci08IS0tRU5USVRZIG5wcmUgIiYjeDJBQUY7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgbnByZWNlcSAiJiN4MkFBRjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBO
b3RQcmVjZWRlc0VxdWFsICImI3gyQUFGOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIHNjZSAiJiN4
MkFCMDsiLS0+Ci08IS0tRU5USVRZIHN1Y2NlcSAiJiN4MkFCMDsiLS0+Ci08IS0tRU5USVRZIFN1
Y2NlZWRzRXF1YWwgIiYjeDJBQjA7Ii0tPgotPCEtLUVOVElUWSBuc2NlICImI3gyQUIwOyYjeDMz
ODsiLS0+Ci08IS0tRU5USVRZIG5zdWNjZXEgIiYjeDJBQjA7JiN4MzM4OyItLT4KLTwhLS1FTlRJ
VFkgTm90U3VjY2VlZHNFcXVhbCAiJiN4MkFCMDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBwckUg
IiYjeDJBQjM7Ii0tPgotPCEtLUVOVElUWSBzY0UgIiYjeDJBQjQ7Ii0tPgotPCEtLUVOVElUWSBw
cm5FICImI3gyQUI1OyItLT4KLTwhLS1FTlRJVFkgcHJlY25lcXEgIiYjeDJBQjU7Ii0tPgotPCEt
LUVOVElUWSBzY25FICImI3gyQUI2OyItLT4KLTwhLS1FTlRJVFkgc3VjY25lcXEgIiYjeDJBQjY7
Ii0tPgotPCEtLUVOVElUWSBwcmFwICImI3gyQUI3OyItLT4KLTwhLS1FTlRJVFkgcHJlY2FwcHJv
eCAiJiN4MkFCNzsiLS0+Ci08IS0tRU5USVRZIHNjYXAgIiYjeDJBQjg7Ii0tPgotPCEtLUVOVElU
WSBzdWNjYXBwcm94ICImI3gyQUI4OyItLT4KLTwhLS1FTlRJVFkgcHJuYXAgIiYjeDJBQjk7Ii0t
PgotPCEtLUVOVElUWSBwcmVjbmFwcHJveCAiJiN4MkFCOTsiLS0+Ci08IS0tRU5USVRZIHNjbmFw
ICImI3gyQUJBOyItLT4KLTwhLS1FTlRJVFkgc3VjY25hcHByb3ggIiYjeDJBQkE7Ii0tPgotPCEt
LUVOVElUWSBQciAiJiN4MkFCQjsiLS0+Ci08IS0tRU5USVRZIFNjICImI3gyQUJDOyItLT4KLTwh
LS1FTlRJVFkgc3ViZG90ICImI3gyQUJEOyItLT4KLTwhLS1FTlRJVFkgc3VwZG90ICImI3gyQUJF
OyItLT4KLTwhLS1FTlRJVFkgc3VicGx1cyAiJiN4MkFCRjsiLS0+Ci08IS0tRU5USVRZIHN1cHBs
dXMgIiYjeDJBQzA7Ii0tPgotPCEtLUVOVElUWSBzdWJtdWx0ICImI3gyQUMxOyItLT4KLTwhLS1F
TlRJVFkgc3VwbXVsdCAiJiN4MkFDMjsiLS0+Ci08IS0tRU5USVRZIHN1YmVkb3QgIiYjeDJBQzM7
Ii0tPgotPCEtLUVOVElUWSBzdXBlZG90ICImI3gyQUM0OyItLT4KLTwhLS1FTlRJVFkgc3ViRSAi
JiN4MkFDNTsiLS0+Ci08IS0tRU5USVRZIHN1YnNldGVxcSAiJiN4MkFDNTsiLS0+Ci08IS0tRU5U
SVRZIG5zdWJFICImI3gyQUM1OyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIG5zdWJzZXRlcXEgIiYj
eDJBQzU7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgc3VwRSAiJiN4MkFDNjsiLS0+Ci08IS0tRU5U
SVRZIHN1cHNldGVxcSAiJiN4MkFDNjsiLS0+Ci08IS0tRU5USVRZIG5zdXBFICImI3gyQUM2OyYj
eDMzODsiLS0+Ci08IS0tRU5USVRZIG5zdXBzZXRlcXEgIiYjeDJBQzY7JiN4MzM4OyItLT4KLTwh
LS1FTlRJVFkgc3Vic2ltICImI3gyQUM3OyItLT4KLTwhLS1FTlRJVFkgc3Vwc2ltICImI3gyQUM4
OyItLT4KLTwhLS1FTlRJVFkgc3VibkUgIiYjeDJBQ0I7Ii0tPgotPCEtLUVOVElUWSBzdWJzZXRu
ZXFxICImI3gyQUNCOyItLT4KLTwhLS1FTlRJVFkgdnN1Ym5FICImI3gyQUNCOyYjeEZFMDA7Ii0t
PgotPCEtLUVOVElUWSB2YXJzdWJzZXRuZXFxICImI3gyQUNCOyYjeEZFMDA7Ii0tPgotPCEtLUVO
VElUWSBzdXBuRSAiJiN4MkFDQzsiLS0+Ci08IS0tRU5USVRZIHN1cHNldG5lcXEgIiYjeDJBQ0M7
Ii0tPgotPCEtLUVOVElUWSB2c3VwbkUgIiYjeDJBQ0M7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZ
IHZhcnN1cHNldG5lcXEgIiYjeDJBQ0M7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIGNzdWIgIiYj
eDJBQ0Y7Ii0tPgotPCEtLUVOVElUWSBjc3VwICImI3gyQUQwOyItLT4KLTwhLS1FTlRJVFkgY3N1
YmUgIiYjeDJBRDE7Ii0tPgotPCEtLUVOVElUWSBjc3VwZSAiJiN4MkFEMjsiLS0+Ci08IS0tRU5U
SVRZIHN1YnN1cCAiJiN4MkFEMzsiLS0+Ci08IS0tRU5USVRZIHN1cHN1YiAiJiN4MkFENDsiLS0+
Ci08IS0tRU5USVRZIHN1YnN1YiAiJiN4MkFENTsiLS0+Ci08IS0tRU5USVRZIHN1cHN1cCAiJiN4
MkFENjsiLS0+Ci08IS0tRU5USVRZIHN1cGhzdWIgIiYjeDJBRDc7Ii0tPgotPCEtLUVOVElUWSBz
dXBkc3ViICImI3gyQUQ4OyItLT4KLTwhLS1FTlRJVFkgZm9ya3YgIiYjeDJBRDk7Ii0tPgotPCEt
LUVOVElUWSB0b3Bmb3JrICImI3gyQURBOyItLT4KLTwhLS1FTlRJVFkgbWxjcCAiJiN4MkFEQjsi
LS0+Ci08IS0tRU5USVRZIERhc2h2ICImI3gyQUU0OyItLT4KLTwhLS1FTlRJVFkgRG91YmxlTGVm
dFRlZSAiJiN4MkFFNDsiLS0+Ci08IS0tRU5USVRZIFZkYXNobCAiJiN4MkFFNjsiLS0+Ci08IS0t
RU5USVRZIEJhcnYgIiYjeDJBRTc7Ii0tPgotPCEtLUVOVElUWSB2QmFyICImI3gyQUU4OyItLT4K
LTwhLS1FTlRJVFkgdkJhcnYgIiYjeDJBRTk7Ii0tPgotPCEtLUVOVElUWSBWYmFyICImI3gyQUVC
OyItLT4KLTwhLS1FTlRJVFkgTm90ICImI3gyQUVDOyItLT4KLTwhLS1FTlRJVFkgYk5vdCAiJiN4
MkFFRDsiLS0+Ci08IS0tRU5USVRZIHJubWlkICImI3gyQUVFOyItLT4KLTwhLS1FTlRJVFkgY2ly
bWlkICImI3gyQUVGOyItLT4KLTwhLS1FTlRJVFkgbWlkY2lyICImI3gyQUYwOyItLT4KLTwhLS1F
TlRJVFkgdG9wY2lyICImI3gyQUYxOyItLT4KLTwhLS1FTlRJVFkgbmhwYXIgIiYjeDJBRjI7Ii0t
PgotPCEtLUVOVElUWSBwYXJzaW0gIiYjeDJBRjM7Ii0tPgotPCEtLUVOVElUWSBwYXJzbCAiJiN4
MkFGRDsiLS0+Ci08IS0tRU5USVRZIG5wYXJzbCAiJiN4MkFGRDsmI3gyMEU1OyItLT4KLTwhLS1F
TlRJVFkgZmZsaWcgIiYjeEZCMDA7Ii0tPgotPCEtLUVOVElUWSBmaWxpZyAiJiN4RkIwMTsiLS0+
Ci08IS0tRU5USVRZIGZsbGlnICImI3hGQjAyOyItLT4KLTwhLS1FTlRJVFkgZmZpbGlnICImI3hG
QjAzOyItLT4KLTwhLS1FTlRJVFkgZmZsbGlnICImI3hGQjA0OyItLT4KLTwhLS1FTlRJVFkgQXNj
ciAiJiN4MUQ0OUM7Ii0tPgotPCEtLUVOVElUWSBDc2NyICImI3gxRDQ5RTsiLS0+Ci08IS0tRU5U
SVRZIERzY3IgIiYjeDFENDlGOyItLT4KLTwhLS1FTlRJVFkgR3NjciAiJiN4MUQ0QTI7Ii0tPgot
PCEtLUVOVElUWSBKc2NyICImI3gxRDRBNTsiLS0+Ci08IS0tRU5USVRZIEtzY3IgIiYjeDFENEE2
OyItLT4KLTwhLS1FTlRJVFkgTnNjciAiJiN4MUQ0QTk7Ii0tPgotPCEtLUVOVElUWSBPc2NyICIm
I3gxRDRBQTsiLS0+Ci08IS0tRU5USVRZIFBzY3IgIiYjeDFENEFCOyItLT4KLTwhLS1FTlRJVFkg
UXNjciAiJiN4MUQ0QUM7Ii0tPgotPCEtLUVOVElUWSBTc2NyICImI3gxRDRBRTsiLS0+Ci08IS0t
RU5USVRZIFRzY3IgIiYjeDFENEFGOyItLT4KLTwhLS1FTlRJVFkgVXNjciAiJiN4MUQ0QjA7Ii0t
PgotPCEtLUVOVElUWSBWc2NyICImI3gxRDRCMTsiLS0+Ci08IS0tRU5USVRZIFdzY3IgIiYjeDFE
NEIyOyItLT4KLTwhLS1FTlRJVFkgWHNjciAiJiN4MUQ0QjM7Ii0tPgotPCEtLUVOVElUWSBZc2Ny
ICImI3gxRDRCNDsiLS0+Ci08IS0tRU5USVRZIFpzY3IgIiYjeDFENEI1OyItLT4KLTwhLS1FTlRJ
VFkgYXNjciAiJiN4MUQ0QjY7Ii0tPgotPCEtLUVOVElUWSBic2NyICImI3gxRDRCNzsiLS0+Ci08
IS0tRU5USVRZIGNzY3IgIiYjeDFENEI4OyItLT4KLTwhLS1FTlRJVFkgZHNjciAiJiN4MUQ0Qjk7
Ii0tPgotPCEtLUVOVElUWSBmc2NyICImI3gxRDRCQjsiLS0+Ci08IS0tRU5USVRZIGhzY3IgIiYj
eDFENEJEOyItLT4KLTwhLS1FTlRJVFkgaXNjciAiJiN4MUQ0QkU7Ii0tPgotPCEtLUVOVElUWSBq
c2NyICImI3gxRDRCRjsiLS0+Ci08IS0tRU5USVRZIGtzY3IgIiYjeDFENEMwOyItLT4KLTwhLS1F
TlRJVFkgbHNjciAiJiN4MUQ0QzE7Ii0tPgotPCEtLUVOVElUWSBtc2NyICImI3gxRDRDMjsiLS0+
Ci08IS0tRU5USVRZIG5zY3IgIiYjeDFENEMzOyItLT4KLTwhLS1FTlRJVFkgcHNjciAiJiN4MUQ0
QzU7Ii0tPgotPCEtLUVOVElUWSBxc2NyICImI3gxRDRDNjsiLS0+Ci08IS0tRU5USVRZIHJzY3Ig
IiYjeDFENEM3OyItLT4KLTwhLS1FTlRJVFkgc3NjciAiJiN4MUQ0Qzg7Ii0tPgotPCEtLUVOVElU
WSB0c2NyICImI3gxRDRDOTsiLS0+Ci08IS0tRU5USVRZIHVzY3IgIiYjeDFENENBOyItLT4KLTwh
LS1FTlRJVFkgdnNjciAiJiN4MUQ0Q0I7Ii0tPgotPCEtLUVOVElUWSB3c2NyICImI3gxRDRDQzsi
LS0+Ci08IS0tRU5USVRZIHhzY3IgIiYjeDFENENEOyItLT4KLTwhLS1FTlRJVFkgeXNjciAiJiN4
MUQ0Q0U7Ii0tPgotPCEtLUVOVElUWSB6c2NyICImI3gxRDRDRjsiLS0+Ci08IS0tRU5USVRZIEFm
ciAiJiN4MUQ1MDQ7Ii0tPgotPCEtLUVOVElUWSBCZnIgIiYjeDFENTA1OyItLT4KLTwhLS1FTlRJ
VFkgRGZyICImI3gxRDUwNzsiLS0+Ci08IS0tRU5USVRZIEVmciAiJiN4MUQ1MDg7Ii0tPgotPCEt
LUVOVElUWSBGZnIgIiYjeDFENTA5OyItLT4KLTwhLS1FTlRJVFkgR2ZyICImI3gxRDUwQTsiLS0+
Ci08IS0tRU5USVRZIEpmciAiJiN4MUQ1MEQ7Ii0tPgotPCEtLUVOVElUWSBLZnIgIiYjeDFENTBF
OyItLT4KLTwhLS1FTlRJVFkgTGZyICImI3gxRDUwRjsiLS0+Ci08IS0tRU5USVRZIE1mciAiJiN4
MUQ1MTA7Ii0tPgotPCEtLUVOVElUWSBOZnIgIiYjeDFENTExOyItLT4KLTwhLS1FTlRJVFkgT2Zy
ICImI3gxRDUxMjsiLS0+Ci08IS0tRU5USVRZIFBmciAiJiN4MUQ1MTM7Ii0tPgotPCEtLUVOVElU
WSBRZnIgIiYjeDFENTE0OyItLT4KLTwhLS1FTlRJVFkgU2ZyICImI3gxRDUxNjsiLS0+Ci08IS0t
RU5USVRZIFRmciAiJiN4MUQ1MTc7Ii0tPgotPCEtLUVOVElUWSBVZnIgIiYjeDFENTE4OyItLT4K
LTwhLS1FTlRJVFkgVmZyICImI3gxRDUxOTsiLS0+Ci08IS0tRU5USVRZIFdmciAiJiN4MUQ1MUE7
Ii0tPgotPCEtLUVOVElUWSBYZnIgIiYjeDFENTFCOyItLT4KLTwhLS1FTlRJVFkgWWZyICImI3gx
RDUxQzsiLS0+Ci08IS0tRU5USVRZIGFmciAiJiN4MUQ1MUU7Ii0tPgotPCEtLUVOVElUWSBiZnIg
IiYjeDFENTFGOyItLT4KLTwhLS1FTlRJVFkgY2ZyICImI3gxRDUyMDsiLS0+Ci08IS0tRU5USVRZ
IGRmciAiJiN4MUQ1MjE7Ii0tPgotPCEtLUVOVElUWSBlZnIgIiYjeDFENTIyOyItLT4KLTwhLS1F
TlRJVFkgZmZyICImI3gxRDUyMzsiLS0+Ci08IS0tRU5USVRZIGdmciAiJiN4MUQ1MjQ7Ii0tPgot
PCEtLUVOVElUWSBoZnIgIiYjeDFENTI1OyItLT4KLTwhLS1FTlRJVFkgaWZyICImI3gxRDUyNjsi
LS0+Ci08IS0tRU5USVRZIGpmciAiJiN4MUQ1Mjc7Ii0tPgotPCEtLUVOVElUWSBrZnIgIiYjeDFE
NTI4OyItLT4KLTwhLS1FTlRJVFkgbGZyICImI3gxRDUyOTsiLS0+Ci08IS0tRU5USVRZIG1mciAi
JiN4MUQ1MkE7Ii0tPgotPCEtLUVOVElUWSBuZnIgIiYjeDFENTJCOyItLT4KLTwhLS1FTlRJVFkg
b2ZyICImI3gxRDUyQzsiLS0+Ci08IS0tRU5USVRZIHBmciAiJiN4MUQ1MkQ7Ii0tPgotPCEtLUVO
VElUWSBxZnIgIiYjeDFENTJFOyItLT4KLTwhLS1FTlRJVFkgcmZyICImI3gxRDUyRjsiLS0+Ci08
IS0tRU5USVRZIHNmciAiJiN4MUQ1MzA7Ii0tPgotPCEtLUVOVElUWSB0ZnIgIiYjeDFENTMxOyIt
LT4KLTwhLS1FTlRJVFkgdWZyICImI3gxRDUzMjsiLS0+Ci08IS0tRU5USVRZIHZmciAiJiN4MUQ1
MzM7Ii0tPgotPCEtLUVOVElUWSB3ZnIgIiYjeDFENTM0OyItLT4KLTwhLS1FTlRJVFkgeGZyICIm
I3gxRDUzNTsiLS0+Ci08IS0tRU5USVRZIHlmciAiJiN4MUQ1MzY7Ii0tPgotPCEtLUVOVElUWSB6
ZnIgIiYjeDFENTM3OyItLT4KLTwhLS1FTlRJVFkgQW9wZiAiJiN4MUQ1Mzg7Ii0tPgotPCEtLUVO
VElUWSBCb3BmICImI3gxRDUzOTsiLS0+Ci08IS0tRU5USVRZIERvcGYgIiYjeDFENTNCOyItLT4K
LTwhLS1FTlRJVFkgRW9wZiAiJiN4MUQ1M0M7Ii0tPgotPCEtLUVOVElUWSBGb3BmICImI3gxRDUz
RDsiLS0+Ci08IS0tRU5USVRZIEdvcGYgIiYjeDFENTNFOyItLT4KLTwhLS1FTlRJVFkgSW9wZiAi
JiN4MUQ1NDA7Ii0tPgotPCEtLUVOVElUWSBKb3BmICImI3gxRDU0MTsiLS0+Ci08IS0tRU5USVRZ
IEtvcGYgIiYjeDFENTQyOyItLT4KLTwhLS1FTlRJVFkgTG9wZiAiJiN4MUQ1NDM7Ii0tPgotPCEt
LUVOVElUWSBNb3BmICImI3gxRDU0NDsiLS0+Ci08IS0tRU5USVRZIE9vcGYgIiYjeDFENTQ2OyIt
LT4KLTwhLS1FTlRJVFkgU29wZiAiJiN4MUQ1NEE7Ii0tPgotPCEtLUVOVElUWSBUb3BmICImI3gx
RDU0QjsiLS0+Ci08IS0tRU5USVRZIFVvcGYgIiYjeDFENTRDOyItLT4KLTwhLS1FTlRJVFkgVm9w
ZiAiJiN4MUQ1NEQ7Ii0tPgotPCEtLUVOVElUWSBXb3BmICImI3gxRDU0RTsiLS0+Ci08IS0tRU5U
SVRZIFhvcGYgIiYjeDFENTRGOyItLT4KLTwhLS1FTlRJVFkgWW9wZiAiJiN4MUQ1NTA7Ii0tPgot
PCEtLUVOVElUWSBhb3BmICImI3gxRDU1MjsiLS0+Ci08IS0tRU5USVRZIGJvcGYgIiYjeDFENTUz
OyItLT4KLTwhLS1FTlRJVFkgY29wZiAiJiN4MUQ1NTQ7Ii0tPgotPCEtLUVOVElUWSBkb3BmICIm
I3gxRDU1NTsiLS0+Ci08IS0tRU5USVRZIGVvcGYgIiYjeDFENTU2OyItLT4KLTwhLS1FTlRJVFkg
Zm9wZiAiJiN4MUQ1NTc7Ii0tPgotPCEtLUVOVElUWSBnb3BmICImI3gxRDU1ODsiLS0+Ci08IS0t
RU5USVRZIGhvcGYgIiYjeDFENTU5OyItLT4KLTwhLS1FTlRJVFkgaW9wZiAiJiN4MUQ1NUE7Ii0t
PgotPCEtLUVOVElUWSBqb3BmICImI3gxRDU1QjsiLS0+Ci08IS0tRU5USVRZIGtvcGYgIiYjeDFE
NTVDOyItLT4KLTwhLS1FTlRJVFkgbG9wZiAiJiN4MUQ1NUQ7Ii0tPgotPCEtLUVOVElUWSBtb3Bm
ICImI3gxRDU1RTsiLS0+Ci08IS0tRU5USVRZIG5vcGYgIiYjeDFENTVGOyItLT4KLTwhLS1FTlRJ
VFkgb29wZiAiJiN4MUQ1NjA7Ii0tPgotPCEtLUVOVElUWSBwb3BmICImI3gxRDU2MTsiLS0+Ci08
IS0tRU5USVRZIHFvcGYgIiYjeDFENTYyOyItLT4KLTwhLS1FTlRJVFkgcm9wZiAiJiN4MUQ1NjM7
Ii0tPgotPCEtLUVOVElUWSBzb3BmICImI3gxRDU2NDsiLS0+Ci08IS0tRU5USVRZIHRvcGYgIiYj
eDFENTY1OyItLT4KLTwhLS1FTlRJVFkgdW9wZiAiJiN4MUQ1NjY7Ii0tPgotPCEtLUVOVElUWSB2
b3BmICImI3gxRDU2NzsiLS0+Ci08IS0tRU5USVRZIHdvcGYgIiYjeDFENTY4OyItLT4KLTwhLS1F
TlRJVFkgeG9wZiAiJiN4MUQ1Njk7Ii0tPgotPCEtLUVOVElUWSB5b3BmICImI3gxRDU2QTsiLS0+
Ci08IS0tRU5USVRZIHpvcGYgIiYjeDFENTZCOyItLT4KKzwhRU5USVRZIFRhYiAiJiN4OTsiPgor
PCFFTlRJVFkgTmV3TGluZSAiJiN4QTsiPgorPCFFTlRJVFkgZXhjbCAiJiN4MjE7Ij4KKzwhRU5U
SVRZIHF1b3QgIiYjeDIyOyI+Cis8IUVOVElUWSBRVU9UICImI3gyMjsiPgorPCFFTlRJVFkgbnVt
ICImI3gyMzsiPgorPCFFTlRJVFkgZG9sbGFyICImI3gyNDsiPgorPCFFTlRJVFkgcGVyY250ICIm
I3gyNTsiPgorPCFFTlRJVFkgYW1wICImI3gyNjsjeDI2OyI+Cis8IUVOVElUWSBBTVAgIiYjeDI2
OyN4MjY7Ij4KKzwhRU5USVRZIGFwb3MgIiYjeDI3OyI+Cis8IUVOVElUWSBscGFyICImI3gyODsi
PgorPCFFTlRJVFkgcnBhciAiJiN4Mjk7Ij4KKzwhRU5USVRZIGFzdCAiJiN4MkE7Ij4KKzwhRU5U
SVRZIG1pZGFzdCAiJiN4MkE7Ij4KKzwhRU5USVRZIHBsdXMgIiYjeDJCOyI+Cis8IUVOVElUWSBj
b21tYSAiJiN4MkM7Ij4KKzwhRU5USVRZIHBlcmlvZCAiJiN4MkU7Ij4KKzwhRU5USVRZIHNvbCAi
JiN4MkY7Ij4KKzwhRU5USVRZIGNvbG9uICImI3gzQTsiPgorPCFFTlRJVFkgc2VtaSAiJiN4M0I7
Ij4KKzwhRU5USVRZIGx0ICImI3gyNjsjeDNDOyI+Cis8IUVOVElUWSBMVCAiJiN4MjY7I3gzQzsi
PgorPCFFTlRJVFkgbnZsdCAiJiN4MjY7I3gzQzsmI3gyMEQyOyI+Cis8IUVOVElUWSBlcXVhbHMg
IiYjeDNEOyI+Cis8IUVOVElUWSBibmUgIiYjeDNEOyYjeDIwRTU7Ij4KKzwhRU5USVRZIGd0ICIm
I3gzRTsiPgorPCFFTlRJVFkgR1QgIiYjeDNFOyI+Cis8IUVOVElUWSBudmd0ICImI3gzRTsmI3gy
MEQyOyI+Cis8IUVOVElUWSBxdWVzdCAiJiN4M0Y7Ij4KKzwhRU5USVRZIGNvbW1hdCAiJiN4NDA7
Ij4KKzwhRU5USVRZIGxzcWIgIiYjeDVCOyI+Cis8IUVOVElUWSBsYnJhY2sgIiYjeDVCOyI+Cis8
IUVOVElUWSBic29sICImI3g1QzsiPgorPCFFTlRJVFkgcnNxYiAiJiN4NUQ7Ij4KKzwhRU5USVRZ
IHJicmFjayAiJiN4NUQ7Ij4KKzwhRU5USVRZIEhhdCAiJiN4NUU7Ij4KKzwhRU5USVRZIGxvd2Jh
ciAiJiN4NUY7Ij4KKzwhRU5USVRZIFVuZGVyQmFyICImI3g1RjsiPgorPCFFTlRJVFkgZ3JhdmUg
IiYjeDYwOyI+Cis8IUVOVElUWSBEaWFjcml0aWNhbEdyYXZlICImI3g2MDsiPgorPCFFTlRJVFkg
ZmpsaWcgIiYjeDY2OyYjeDZBOyI+Cis8IUVOVElUWSBsY3ViICImI3g3QjsiPgorPCFFTlRJVFkg
bGJyYWNlICImI3g3QjsiPgorPCFFTlRJVFkgdmVyYmFyICImI3g3QzsiPgorPCFFTlRJVFkgdmVy
dCAiJiN4N0M7Ij4KKzwhRU5USVRZIFZlcnRpY2FsTGluZSAiJiN4N0M7Ij4KKzwhRU5USVRZIHJj
dWIgIiYjeDdEOyI+Cis8IUVOVElUWSByYnJhY2UgIiYjeDdEOyI+Cis8IUVOVElUWSBuYnNwICIm
I3hBMDsiPgorPCFFTlRJVFkgTm9uQnJlYWtpbmdTcGFjZSAiJiN4QTA7Ij4KKzwhRU5USVRZIGll
eGNsICImI3hBMTsiPgorPCFFTlRJVFkgY2VudCAiJiN4QTI7Ij4KKzwhRU5USVRZIHBvdW5kICIm
I3hBMzsiPgorPCFFTlRJVFkgY3VycmVuICImI3hBNDsiPgorPCFFTlRJVFkgeWVuICImI3hBNTsi
PgorPCFFTlRJVFkgYnJ2YmFyICImI3hBNjsiPgorPCFFTlRJVFkgc2VjdCAiJiN4QTc7Ij4KKzwh
RU5USVRZIERvdCAiJiN4QTg7Ij4KKzwhRU5USVRZIGRpZSAiJiN4QTg7Ij4KKzwhRU5USVRZIERv
dWJsZURvdCAiJiN4QTg7Ij4KKzwhRU5USVRZIHVtbCAiJiN4QTg7Ij4KKzwhRU5USVRZIGNvcHkg
IiYjeEE5OyI+Cis8IUVOVElUWSBDT1BZICImI3hBOTsiPgorPCFFTlRJVFkgb3JkZiAiJiN4QUE7
Ij4KKzwhRU5USVRZIGxhcXVvICImI3hBQjsiPgorPCFFTlRJVFkgbm90ICImI3hBQzsiPgorPCFF
TlRJVFkgc2h5ICImI3hBRDsiPgorPCFFTlRJVFkgcmVnICImI3hBRTsiPgorPCFFTlRJVFkgY2ly
Y2xlZFIgIiYjeEFFOyI+Cis8IUVOVElUWSBSRUcgIiYjeEFFOyI+Cis8IUVOVElUWSBtYWNyICIm
I3hBRjsiPgorPCFFTlRJVFkgc3RybnMgIiYjeEFGOyI+Cis8IUVOVElUWSBkZWcgIiYjeEIwOyI+
Cis8IUVOVElUWSBwbHVzbW4gIiYjeEIxOyI+Cis8IUVOVElUWSBwbSAiJiN4QjE7Ij4KKzwhRU5U
SVRZIFBsdXNNaW51cyAiJiN4QjE7Ij4KKzwhRU5USVRZIHN1cDIgIiYjeEIyOyI+Cis8IUVOVElU
WSBzdXAzICImI3hCMzsiPgorPCFFTlRJVFkgYWN1dGUgIiYjeEI0OyI+Cis8IUVOVElUWSBEaWFj
cml0aWNhbEFjdXRlICImI3hCNDsiPgorPCFFTlRJVFkgbWljcm8gIiYjeEI1OyI+Cis8IUVOVElU
WSBwYXJhICImI3hCNjsiPgorPCFFTlRJVFkgbWlkZG90ICImI3hCNzsiPgorPCFFTlRJVFkgY2Vu
dGVyZG90ICImI3hCNzsiPgorPCFFTlRJVFkgQ2VudGVyRG90ICImI3hCNzsiPgorPCFFTlRJVFkg
Y2VkaWwgIiYjeEI4OyI+Cis8IUVOVElUWSBDZWRpbGxhICImI3hCODsiPgorPCFFTlRJVFkgc3Vw
MSAiJiN4Qjk7Ij4KKzwhRU5USVRZIG9yZG0gIiYjeEJBOyI+Cis8IUVOVElUWSByYXF1byAiJiN4
QkI7Ij4KKzwhRU5USVRZIGZyYWMxNCAiJiN4QkM7Ij4KKzwhRU5USVRZIGZyYWMxMiAiJiN4QkQ7
Ij4KKzwhRU5USVRZIGhhbGYgIiYjeEJEOyI+Cis8IUVOVElUWSBmcmFjMzQgIiYjeEJFOyI+Cis8
IUVOVElUWSBpcXVlc3QgIiYjeEJGOyI+Cis8IUVOVElUWSBBZ3JhdmUgIiYjeEMwOyI+Cis8IUVO
VElUWSBBYWN1dGUgIiYjeEMxOyI+Cis8IUVOVElUWSBBY2lyYyAiJiN4QzI7Ij4KKzwhRU5USVRZ
IEF0aWxkZSAiJiN4QzM7Ij4KKzwhRU5USVRZIEF1bWwgIiYjeEM0OyI+Cis8IUVOVElUWSBBcmlu
ZyAiJiN4QzU7Ij4KKzwhRU5USVRZIGFuZ3N0ICImI3hDNTsiPgorPCFFTlRJVFkgQUVsaWcgIiYj
eEM2OyI+Cis8IUVOVElUWSBDY2VkaWwgIiYjeEM3OyI+Cis8IUVOVElUWSBFZ3JhdmUgIiYjeEM4
OyI+Cis8IUVOVElUWSBFYWN1dGUgIiYjeEM5OyI+Cis8IUVOVElUWSBFY2lyYyAiJiN4Q0E7Ij4K
KzwhRU5USVRZIEV1bWwgIiYjeENCOyI+Cis8IUVOVElUWSBJZ3JhdmUgIiYjeENDOyI+Cis8IUVO
VElUWSBJYWN1dGUgIiYjeENEOyI+Cis8IUVOVElUWSBJY2lyYyAiJiN4Q0U7Ij4KKzwhRU5USVRZ
IEl1bWwgIiYjeENGOyI+Cis8IUVOVElUWSBFVEggIiYjeEQwOyI+Cis8IUVOVElUWSBOdGlsZGUg
IiYjeEQxOyI+Cis8IUVOVElUWSBPZ3JhdmUgIiYjeEQyOyI+Cis8IUVOVElUWSBPYWN1dGUgIiYj
eEQzOyI+Cis8IUVOVElUWSBPY2lyYyAiJiN4RDQ7Ij4KKzwhRU5USVRZIE90aWxkZSAiJiN4RDU7
Ij4KKzwhRU5USVRZIE91bWwgIiYjeEQ2OyI+Cis8IUVOVElUWSB0aW1lcyAiJiN4RDc7Ij4KKzwh
RU5USVRZIE9zbGFzaCAiJiN4RDg7Ij4KKzwhRU5USVRZIFVncmF2ZSAiJiN4RDk7Ij4KKzwhRU5U
SVRZIFVhY3V0ZSAiJiN4REE7Ij4KKzwhRU5USVRZIFVjaXJjICImI3hEQjsiPgorPCFFTlRJVFkg
VXVtbCAiJiN4REM7Ij4KKzwhRU5USVRZIFlhY3V0ZSAiJiN4REQ7Ij4KKzwhRU5USVRZIFRIT1JO
ICImI3hERTsiPgorPCFFTlRJVFkgc3psaWcgIiYjeERGOyI+Cis8IUVOVElUWSBhZ3JhdmUgIiYj
eEUwOyI+Cis8IUVOVElUWSBhYWN1dGUgIiYjeEUxOyI+Cis8IUVOVElUWSBhY2lyYyAiJiN4RTI7
Ij4KKzwhRU5USVRZIGF0aWxkZSAiJiN4RTM7Ij4KKzwhRU5USVRZIGF1bWwgIiYjeEU0OyI+Cis8
IUVOVElUWSBhcmluZyAiJiN4RTU7Ij4KKzwhRU5USVRZIGFlbGlnICImI3hFNjsiPgorPCFFTlRJ
VFkgY2NlZGlsICImI3hFNzsiPgorPCFFTlRJVFkgZWdyYXZlICImI3hFODsiPgorPCFFTlRJVFkg
ZWFjdXRlICImI3hFOTsiPgorPCFFTlRJVFkgZWNpcmMgIiYjeEVBOyI+Cis8IUVOVElUWSBldW1s
ICImI3hFQjsiPgorPCFFTlRJVFkgaWdyYXZlICImI3hFQzsiPgorPCFFTlRJVFkgaWFjdXRlICIm
I3hFRDsiPgorPCFFTlRJVFkgaWNpcmMgIiYjeEVFOyI+Cis8IUVOVElUWSBpdW1sICImI3hFRjsi
PgorPCFFTlRJVFkgZXRoICImI3hGMDsiPgorPCFFTlRJVFkgbnRpbGRlICImI3hGMTsiPgorPCFF
TlRJVFkgb2dyYXZlICImI3hGMjsiPgorPCFFTlRJVFkgb2FjdXRlICImI3hGMzsiPgorPCFFTlRJ
VFkgb2NpcmMgIiYjeEY0OyI+Cis8IUVOVElUWSBvdGlsZGUgIiYjeEY1OyI+Cis8IUVOVElUWSBv
dW1sICImI3hGNjsiPgorPCFFTlRJVFkgZGl2aWRlICImI3hGNzsiPgorPCFFTlRJVFkgZGl2ICIm
I3hGNzsiPgorPCFFTlRJVFkgb3NsYXNoICImI3hGODsiPgorPCFFTlRJVFkgdWdyYXZlICImI3hG
OTsiPgorPCFFTlRJVFkgdWFjdXRlICImI3hGQTsiPgorPCFFTlRJVFkgdWNpcmMgIiYjeEZCOyI+
Cis8IUVOVElUWSB1dW1sICImI3hGQzsiPgorPCFFTlRJVFkgeWFjdXRlICImI3hGRDsiPgorPCFF
TlRJVFkgdGhvcm4gIiYjeEZFOyI+Cis8IUVOVElUWSB5dW1sICImI3hGRjsiPgorPCFFTlRJVFkg
QW1hY3IgIiYjeDEwMDsiPgorPCFFTlRJVFkgYW1hY3IgIiYjeDEwMTsiPgorPCFFTlRJVFkgQWJy
ZXZlICImI3gxMDI7Ij4KKzwhRU5USVRZIGFicmV2ZSAiJiN4MTAzOyI+Cis8IUVOVElUWSBBb2dv
biAiJiN4MTA0OyI+Cis8IUVOVElUWSBhb2dvbiAiJiN4MTA1OyI+Cis8IUVOVElUWSBDYWN1dGUg
IiYjeDEwNjsiPgorPCFFTlRJVFkgY2FjdXRlICImI3gxMDc7Ij4KKzwhRU5USVRZIENjaXJjICIm
I3gxMDg7Ij4KKzwhRU5USVRZIGNjaXJjICImI3gxMDk7Ij4KKzwhRU5USVRZIENkb3QgIiYjeDEw
QTsiPgorPCFFTlRJVFkgY2RvdCAiJiN4MTBCOyI+Cis8IUVOVElUWSBDY2Fyb24gIiYjeDEwQzsi
PgorPCFFTlRJVFkgY2Nhcm9uICImI3gxMEQ7Ij4KKzwhRU5USVRZIERjYXJvbiAiJiN4MTBFOyI+
Cis8IUVOVElUWSBkY2Fyb24gIiYjeDEwRjsiPgorPCFFTlRJVFkgRHN0cm9rICImI3gxMTA7Ij4K
KzwhRU5USVRZIGRzdHJvayAiJiN4MTExOyI+Cis8IUVOVElUWSBFbWFjciAiJiN4MTEyOyI+Cis8
IUVOVElUWSBlbWFjciAiJiN4MTEzOyI+Cis8IUVOVElUWSBFZG90ICImI3gxMTY7Ij4KKzwhRU5U
SVRZIGVkb3QgIiYjeDExNzsiPgorPCFFTlRJVFkgRW9nb24gIiYjeDExODsiPgorPCFFTlRJVFkg
ZW9nb24gIiYjeDExOTsiPgorPCFFTlRJVFkgRWNhcm9uICImI3gxMUE7Ij4KKzwhRU5USVRZIGVj
YXJvbiAiJiN4MTFCOyI+Cis8IUVOVElUWSBHY2lyYyAiJiN4MTFDOyI+Cis8IUVOVElUWSBnY2ly
YyAiJiN4MTFEOyI+Cis8IUVOVElUWSBHYnJldmUgIiYjeDExRTsiPgorPCFFTlRJVFkgZ2JyZXZl
ICImI3gxMUY7Ij4KKzwhRU5USVRZIEdkb3QgIiYjeDEyMDsiPgorPCFFTlRJVFkgZ2RvdCAiJiN4
MTIxOyI+Cis8IUVOVElUWSBHY2VkaWwgIiYjeDEyMjsiPgorPCFFTlRJVFkgSGNpcmMgIiYjeDEy
NDsiPgorPCFFTlRJVFkgaGNpcmMgIiYjeDEyNTsiPgorPCFFTlRJVFkgSHN0cm9rICImI3gxMjY7
Ij4KKzwhRU5USVRZIGhzdHJvayAiJiN4MTI3OyI+Cis8IUVOVElUWSBJdGlsZGUgIiYjeDEyODsi
PgorPCFFTlRJVFkgaXRpbGRlICImI3gxMjk7Ij4KKzwhRU5USVRZIEltYWNyICImI3gxMkE7Ij4K
KzwhRU5USVRZIGltYWNyICImI3gxMkI7Ij4KKzwhRU5USVRZIElvZ29uICImI3gxMkU7Ij4KKzwh
RU5USVRZIGlvZ29uICImI3gxMkY7Ij4KKzwhRU5USVRZIElkb3QgIiYjeDEzMDsiPgorPCFFTlRJ
VFkgaW1hdGggIiYjeDEzMTsiPgorPCFFTlRJVFkgaW5vZG90ICImI3gxMzE7Ij4KKzwhRU5USVRZ
IElKbGlnICImI3gxMzI7Ij4KKzwhRU5USVRZIGlqbGlnICImI3gxMzM7Ij4KKzwhRU5USVRZIEpj
aXJjICImI3gxMzQ7Ij4KKzwhRU5USVRZIGpjaXJjICImI3gxMzU7Ij4KKzwhRU5USVRZIEtjZWRp
bCAiJiN4MTM2OyI+Cis8IUVOVElUWSBrY2VkaWwgIiYjeDEzNzsiPgorPCFFTlRJVFkga2dyZWVu
ICImI3gxMzg7Ij4KKzwhRU5USVRZIExhY3V0ZSAiJiN4MTM5OyI+Cis8IUVOVElUWSBsYWN1dGUg
IiYjeDEzQTsiPgorPCFFTlRJVFkgTGNlZGlsICImI3gxM0I7Ij4KKzwhRU5USVRZIGxjZWRpbCAi
JiN4MTNDOyI+Cis8IUVOVElUWSBMY2Fyb24gIiYjeDEzRDsiPgorPCFFTlRJVFkgbGNhcm9uICIm
I3gxM0U7Ij4KKzwhRU5USVRZIExtaWRvdCAiJiN4MTNGOyI+Cis8IUVOVElUWSBsbWlkb3QgIiYj
eDE0MDsiPgorPCFFTlRJVFkgTHN0cm9rICImI3gxNDE7Ij4KKzwhRU5USVRZIGxzdHJvayAiJiN4
MTQyOyI+Cis8IUVOVElUWSBOYWN1dGUgIiYjeDE0MzsiPgorPCFFTlRJVFkgbmFjdXRlICImI3gx
NDQ7Ij4KKzwhRU5USVRZIE5jZWRpbCAiJiN4MTQ1OyI+Cis8IUVOVElUWSBuY2VkaWwgIiYjeDE0
NjsiPgorPCFFTlRJVFkgTmNhcm9uICImI3gxNDc7Ij4KKzwhRU5USVRZIG5jYXJvbiAiJiN4MTQ4
OyI+Cis8IUVOVElUWSBuYXBvcyAiJiN4MTQ5OyI+Cis8IUVOVElUWSBFTkcgIiYjeDE0QTsiPgor
PCFFTlRJVFkgZW5nICImI3gxNEI7Ij4KKzwhRU5USVRZIE9tYWNyICImI3gxNEM7Ij4KKzwhRU5U
SVRZIG9tYWNyICImI3gxNEQ7Ij4KKzwhRU5USVRZIE9kYmxhYyAiJiN4MTUwOyI+Cis8IUVOVElU
WSBvZGJsYWMgIiYjeDE1MTsiPgorPCFFTlRJVFkgT0VsaWcgIiYjeDE1MjsiPgorPCFFTlRJVFkg
b2VsaWcgIiYjeDE1MzsiPgorPCFFTlRJVFkgUmFjdXRlICImI3gxNTQ7Ij4KKzwhRU5USVRZIHJh
Y3V0ZSAiJiN4MTU1OyI+Cis8IUVOVElUWSBSY2VkaWwgIiYjeDE1NjsiPgorPCFFTlRJVFkgcmNl
ZGlsICImI3gxNTc7Ij4KKzwhRU5USVRZIFJjYXJvbiAiJiN4MTU4OyI+Cis8IUVOVElUWSByY2Fy
b24gIiYjeDE1OTsiPgorPCFFTlRJVFkgU2FjdXRlICImI3gxNUE7Ij4KKzwhRU5USVRZIHNhY3V0
ZSAiJiN4MTVCOyI+Cis8IUVOVElUWSBTY2lyYyAiJiN4MTVDOyI+Cis8IUVOVElUWSBzY2lyYyAi
JiN4MTVEOyI+Cis8IUVOVElUWSBTY2VkaWwgIiYjeDE1RTsiPgorPCFFTlRJVFkgc2NlZGlsICIm
I3gxNUY7Ij4KKzwhRU5USVRZIFNjYXJvbiAiJiN4MTYwOyI+Cis8IUVOVElUWSBzY2Fyb24gIiYj
eDE2MTsiPgorPCFFTlRJVFkgVGNlZGlsICImI3gxNjI7Ij4KKzwhRU5USVRZIHRjZWRpbCAiJiN4
MTYzOyI+Cis8IUVOVElUWSBUY2Fyb24gIiYjeDE2NDsiPgorPCFFTlRJVFkgdGNhcm9uICImI3gx
NjU7Ij4KKzwhRU5USVRZIFRzdHJvayAiJiN4MTY2OyI+Cis8IUVOVElUWSB0c3Ryb2sgIiYjeDE2
NzsiPgorPCFFTlRJVFkgVXRpbGRlICImI3gxNjg7Ij4KKzwhRU5USVRZIHV0aWxkZSAiJiN4MTY5
OyI+Cis8IUVOVElUWSBVbWFjciAiJiN4MTZBOyI+Cis8IUVOVElUWSB1bWFjciAiJiN4MTZCOyI+
Cis8IUVOVElUWSBVYnJldmUgIiYjeDE2QzsiPgorPCFFTlRJVFkgdWJyZXZlICImI3gxNkQ7Ij4K
KzwhRU5USVRZIFVyaW5nICImI3gxNkU7Ij4KKzwhRU5USVRZIHVyaW5nICImI3gxNkY7Ij4KKzwh
RU5USVRZIFVkYmxhYyAiJiN4MTcwOyI+Cis8IUVOVElUWSB1ZGJsYWMgIiYjeDE3MTsiPgorPCFF
TlRJVFkgVW9nb24gIiYjeDE3MjsiPgorPCFFTlRJVFkgdW9nb24gIiYjeDE3MzsiPgorPCFFTlRJ
VFkgV2NpcmMgIiYjeDE3NDsiPgorPCFFTlRJVFkgd2NpcmMgIiYjeDE3NTsiPgorPCFFTlRJVFkg
WWNpcmMgIiYjeDE3NjsiPgorPCFFTlRJVFkgeWNpcmMgIiYjeDE3NzsiPgorPCFFTlRJVFkgWXVt
bCAiJiN4MTc4OyI+Cis8IUVOVElUWSBaYWN1dGUgIiYjeDE3OTsiPgorPCFFTlRJVFkgemFjdXRl
ICImI3gxN0E7Ij4KKzwhRU5USVRZIFpkb3QgIiYjeDE3QjsiPgorPCFFTlRJVFkgemRvdCAiJiN4
MTdDOyI+Cis8IUVOVElUWSBaY2Fyb24gIiYjeDE3RDsiPgorPCFFTlRJVFkgemNhcm9uICImI3gx
N0U7Ij4KKzwhRU5USVRZIGZub2YgIiYjeDE5MjsiPgorPCFFTlRJVFkgaW1wZWQgIiYjeDFCNTsi
PgorPCFFTlRJVFkgZ2FjdXRlICImI3gxRjU7Ij4KKzwhRU5USVRZIGptYXRoICImI3gyMzc7Ij4K
KzwhRU5USVRZIGNpcmMgIiYjeDJDNjsiPgorPCFFTlRJVFkgY2Fyb24gIiYjeDJDNzsiPgorPCFF
TlRJVFkgSGFjZWsgIiYjeDJDNzsiPgorPCFFTlRJVFkgYnJldmUgIiYjeDJEODsiPgorPCFFTlRJ
VFkgQnJldmUgIiYjeDJEODsiPgorPCFFTlRJVFkgZG90ICImI3gyRDk7Ij4KKzwhRU5USVRZIERp
YWNyaXRpY2FsRG90ICImI3gyRDk7Ij4KKzwhRU5USVRZIHJpbmcgIiYjeDJEQTsiPgorPCFFTlRJ
VFkgb2dvbiAiJiN4MkRCOyI+Cis8IUVOVElUWSB0aWxkZSAiJiN4MkRDOyI+Cis8IUVOVElUWSBE
aWFjcml0aWNhbFRpbGRlICImI3gyREM7Ij4KKzwhRU5USVRZIGRibGFjICImI3gyREQ7Ij4KKzwh
RU5USVRZIERpYWNyaXRpY2FsRG91YmxlQWN1dGUgIiYjeDJERDsiPgorPCFFTlRJVFkgRG93bkJy
ZXZlICImI3gzMTE7Ij4KKzwhRU5USVRZIEFscGhhICImI3gzOTE7Ij4KKzwhRU5USVRZIEJldGEg
IiYjeDM5MjsiPgorPCFFTlRJVFkgR2FtbWEgIiYjeDM5MzsiPgorPCFFTlRJVFkgRGVsdGEgIiYj
eDM5NDsiPgorPCFFTlRJVFkgRXBzaWxvbiAiJiN4Mzk1OyI+Cis8IUVOVElUWSBaZXRhICImI3gz
OTY7Ij4KKzwhRU5USVRZIEV0YSAiJiN4Mzk3OyI+Cis8IUVOVElUWSBUaGV0YSAiJiN4Mzk4OyI+
Cis8IUVOVElUWSBJb3RhICImI3gzOTk7Ij4KKzwhRU5USVRZIEthcHBhICImI3gzOUE7Ij4KKzwh
RU5USVRZIExhbWJkYSAiJiN4MzlCOyI+Cis8IUVOVElUWSBNdSAiJiN4MzlDOyI+Cis8IUVOVElU
WSBOdSAiJiN4MzlEOyI+Cis8IUVOVElUWSBYaSAiJiN4MzlFOyI+Cis8IUVOVElUWSBPbWljcm9u
ICImI3gzOUY7Ij4KKzwhRU5USVRZIFBpICImI3gzQTA7Ij4KKzwhRU5USVRZIFJobyAiJiN4M0Ex
OyI+Cis8IUVOVElUWSBTaWdtYSAiJiN4M0EzOyI+Cis8IUVOVElUWSBUYXUgIiYjeDNBNDsiPgor
PCFFTlRJVFkgVXBzaWxvbiAiJiN4M0E1OyI+Cis8IUVOVElUWSBQaGkgIiYjeDNBNjsiPgorPCFF
TlRJVFkgQ2hpICImI3gzQTc7Ij4KKzwhRU5USVRZIFBzaSAiJiN4M0E4OyI+Cis8IUVOVElUWSBP
bWVnYSAiJiN4M0E5OyI+Cis8IUVOVElUWSBvaG0gIiYjeDNBOTsiPgorPCFFTlRJVFkgYWxwaGEg
IiYjeDNCMTsiPgorPCFFTlRJVFkgYmV0YSAiJiN4M0IyOyI+Cis8IUVOVElUWSBnYW1tYSAiJiN4
M0IzOyI+Cis8IUVOVElUWSBkZWx0YSAiJiN4M0I0OyI+Cis8IUVOVElUWSBlcHNpICImI3gzQjU7
Ij4KKzwhRU5USVRZIGVwc2lsb24gIiYjeDNCNTsiPgorPCFFTlRJVFkgemV0YSAiJiN4M0I2OyI+
Cis8IUVOVElUWSBldGEgIiYjeDNCNzsiPgorPCFFTlRJVFkgdGhldGEgIiYjeDNCODsiPgorPCFF
TlRJVFkgaW90YSAiJiN4M0I5OyI+Cis8IUVOVElUWSBrYXBwYSAiJiN4M0JBOyI+Cis8IUVOVElU
WSBsYW1iZGEgIiYjeDNCQjsiPgorPCFFTlRJVFkgbXUgIiYjeDNCQzsiPgorPCFFTlRJVFkgbnUg
IiYjeDNCRDsiPgorPCFFTlRJVFkgeGkgIiYjeDNCRTsiPgorPCFFTlRJVFkgb21pY3JvbiAiJiN4
M0JGOyI+Cis8IUVOVElUWSBwaSAiJiN4M0MwOyI+Cis8IUVOVElUWSByaG8gIiYjeDNDMTsiPgor
PCFFTlRJVFkgc2lnbWF2ICImI3gzQzI7Ij4KKzwhRU5USVRZIHZhcnNpZ21hICImI3gzQzI7Ij4K
KzwhRU5USVRZIHNpZ21hZiAiJiN4M0MyOyI+Cis8IUVOVElUWSBzaWdtYSAiJiN4M0MzOyI+Cis8
IUVOVElUWSB0YXUgIiYjeDNDNDsiPgorPCFFTlRJVFkgdXBzaSAiJiN4M0M1OyI+Cis8IUVOVElU
WSB1cHNpbG9uICImI3gzQzU7Ij4KKzwhRU5USVRZIHBoaSAiJiN4M0M2OyI+Cis8IUVOVElUWSBj
aGkgIiYjeDNDNzsiPgorPCFFTlRJVFkgcHNpICImI3gzQzg7Ij4KKzwhRU5USVRZIG9tZWdhICIm
I3gzQzk7Ij4KKzwhRU5USVRZIHRoZXRhdiAiJiN4M0QxOyI+Cis8IUVOVElUWSB2YXJ0aGV0YSAi
JiN4M0QxOyI+Cis8IUVOVElUWSB0aGV0YXN5bSAiJiN4M0QxOyI+Cis8IUVOVElUWSBVcHNpICIm
I3gzRDI7Ij4KKzwhRU5USVRZIHVwc2loICImI3gzRDI7Ij4KKzwhRU5USVRZIHN0cmFpZ2h0cGhp
ICImI3gzRDU7Ij4KKzwhRU5USVRZIHBoaXYgIiYjeDNENTsiPgorPCFFTlRJVFkgdmFycGhpICIm
I3gzRDU7Ij4KKzwhRU5USVRZIHBpdiAiJiN4M0Q2OyI+Cis8IUVOVElUWSB2YXJwaSAiJiN4M0Q2
OyI+Cis8IUVOVElUWSBHYW1tYWQgIiYjeDNEQzsiPgorPCFFTlRJVFkgZ2FtbWFkICImI3gzREQ7
Ij4KKzwhRU5USVRZIGRpZ2FtbWEgIiYjeDNERDsiPgorPCFFTlRJVFkga2FwcGF2ICImI3gzRjA7
Ij4KKzwhRU5USVRZIHZhcmthcHBhICImI3gzRjA7Ij4KKzwhRU5USVRZIHJob3YgIiYjeDNGMTsi
PgorPCFFTlRJVFkgdmFycmhvICImI3gzRjE7Ij4KKzwhRU5USVRZIGVwc2l2ICImI3gzRjU7Ij4K
KzwhRU5USVRZIHN0cmFpZ2h0ZXBzaWxvbiAiJiN4M0Y1OyI+Cis8IUVOVElUWSB2YXJlcHNpbG9u
ICImI3gzRjU7Ij4KKzwhRU5USVRZIGJlcHNpICImI3gzRjY7Ij4KKzwhRU5USVRZIGJhY2tlcHNp
bG9uICImI3gzRjY7Ij4KKzwhRU5USVRZIElPY3kgIiYjeDQwMTsiPgorPCFFTlRJVFkgREpjeSAi
JiN4NDAyOyI+Cis8IUVOVElUWSBHSmN5ICImI3g0MDM7Ij4KKzwhRU5USVRZIEp1a2N5ICImI3g0
MDQ7Ij4KKzwhRU5USVRZIERTY3kgIiYjeDQwNTsiPgorPCFFTlRJVFkgSXVrY3kgIiYjeDQwNjsi
PgorPCFFTlRJVFkgWUljeSAiJiN4NDA3OyI+Cis8IUVOVElUWSBKc2VyY3kgIiYjeDQwODsiPgor
PCFFTlRJVFkgTEpjeSAiJiN4NDA5OyI+Cis8IUVOVElUWSBOSmN5ICImI3g0MEE7Ij4KKzwhRU5U
SVRZIFRTSGN5ICImI3g0MEI7Ij4KKzwhRU5USVRZIEtKY3kgIiYjeDQwQzsiPgorPCFFTlRJVFkg
VWJyY3kgIiYjeDQwRTsiPgorPCFFTlRJVFkgRFpjeSAiJiN4NDBGOyI+Cis8IUVOVElUWSBBY3kg
IiYjeDQxMDsiPgorPCFFTlRJVFkgQmN5ICImI3g0MTE7Ij4KKzwhRU5USVRZIFZjeSAiJiN4NDEy
OyI+Cis8IUVOVElUWSBHY3kgIiYjeDQxMzsiPgorPCFFTlRJVFkgRGN5ICImI3g0MTQ7Ij4KKzwh
RU5USVRZIElFY3kgIiYjeDQxNTsiPgorPCFFTlRJVFkgWkhjeSAiJiN4NDE2OyI+Cis8IUVOVElU
WSBaY3kgIiYjeDQxNzsiPgorPCFFTlRJVFkgSWN5ICImI3g0MTg7Ij4KKzwhRU5USVRZIEpjeSAi
JiN4NDE5OyI+Cis8IUVOVElUWSBLY3kgIiYjeDQxQTsiPgorPCFFTlRJVFkgTGN5ICImI3g0MUI7
Ij4KKzwhRU5USVRZIE1jeSAiJiN4NDFDOyI+Cis8IUVOVElUWSBOY3kgIiYjeDQxRDsiPgorPCFF
TlRJVFkgT2N5ICImI3g0MUU7Ij4KKzwhRU5USVRZIFBjeSAiJiN4NDFGOyI+Cis8IUVOVElUWSBS
Y3kgIiYjeDQyMDsiPgorPCFFTlRJVFkgU2N5ICImI3g0MjE7Ij4KKzwhRU5USVRZIFRjeSAiJiN4
NDIyOyI+Cis8IUVOVElUWSBVY3kgIiYjeDQyMzsiPgorPCFFTlRJVFkgRmN5ICImI3g0MjQ7Ij4K
KzwhRU5USVRZIEtIY3kgIiYjeDQyNTsiPgorPCFFTlRJVFkgVFNjeSAiJiN4NDI2OyI+Cis8IUVO
VElUWSBDSGN5ICImI3g0Mjc7Ij4KKzwhRU5USVRZIFNIY3kgIiYjeDQyODsiPgorPCFFTlRJVFkg
U0hDSGN5ICImI3g0Mjk7Ij4KKzwhRU5USVRZIEhBUkRjeSAiJiN4NDJBOyI+Cis8IUVOVElUWSBZ
Y3kgIiYjeDQyQjsiPgorPCFFTlRJVFkgU09GVGN5ICImI3g0MkM7Ij4KKzwhRU5USVRZIEVjeSAi
JiN4NDJEOyI+Cis8IUVOVElUWSBZVWN5ICImI3g0MkU7Ij4KKzwhRU5USVRZIFlBY3kgIiYjeDQy
RjsiPgorPCFFTlRJVFkgYWN5ICImI3g0MzA7Ij4KKzwhRU5USVRZIGJjeSAiJiN4NDMxOyI+Cis8
IUVOVElUWSB2Y3kgIiYjeDQzMjsiPgorPCFFTlRJVFkgZ2N5ICImI3g0MzM7Ij4KKzwhRU5USVRZ
IGRjeSAiJiN4NDM0OyI+Cis8IUVOVElUWSBpZWN5ICImI3g0MzU7Ij4KKzwhRU5USVRZIHpoY3kg
IiYjeDQzNjsiPgorPCFFTlRJVFkgemN5ICImI3g0Mzc7Ij4KKzwhRU5USVRZIGljeSAiJiN4NDM4
OyI+Cis8IUVOVElUWSBqY3kgIiYjeDQzOTsiPgorPCFFTlRJVFkga2N5ICImI3g0M0E7Ij4KKzwh
RU5USVRZIGxjeSAiJiN4NDNCOyI+Cis8IUVOVElUWSBtY3kgIiYjeDQzQzsiPgorPCFFTlRJVFkg
bmN5ICImI3g0M0Q7Ij4KKzwhRU5USVRZIG9jeSAiJiN4NDNFOyI+Cis8IUVOVElUWSBwY3kgIiYj
eDQzRjsiPgorPCFFTlRJVFkgcmN5ICImI3g0NDA7Ij4KKzwhRU5USVRZIHNjeSAiJiN4NDQxOyI+
Cis8IUVOVElUWSB0Y3kgIiYjeDQ0MjsiPgorPCFFTlRJVFkgdWN5ICImI3g0NDM7Ij4KKzwhRU5U
SVRZIGZjeSAiJiN4NDQ0OyI+Cis8IUVOVElUWSBraGN5ICImI3g0NDU7Ij4KKzwhRU5USVRZIHRz
Y3kgIiYjeDQ0NjsiPgorPCFFTlRJVFkgY2hjeSAiJiN4NDQ3OyI+Cis8IUVOVElUWSBzaGN5ICIm
I3g0NDg7Ij4KKzwhRU5USVRZIHNoY2hjeSAiJiN4NDQ5OyI+Cis8IUVOVElUWSBoYXJkY3kgIiYj
eDQ0QTsiPgorPCFFTlRJVFkgeWN5ICImI3g0NEI7Ij4KKzwhRU5USVRZIHNvZnRjeSAiJiN4NDRD
OyI+Cis8IUVOVElUWSBlY3kgIiYjeDQ0RDsiPgorPCFFTlRJVFkgeXVjeSAiJiN4NDRFOyI+Cis8
IUVOVElUWSB5YWN5ICImI3g0NEY7Ij4KKzwhRU5USVRZIGlvY3kgIiYjeDQ1MTsiPgorPCFFTlRJ
VFkgZGpjeSAiJiN4NDUyOyI+Cis8IUVOVElUWSBnamN5ICImI3g0NTM7Ij4KKzwhRU5USVRZIGp1
a2N5ICImI3g0NTQ7Ij4KKzwhRU5USVRZIGRzY3kgIiYjeDQ1NTsiPgorPCFFTlRJVFkgaXVrY3kg
IiYjeDQ1NjsiPgorPCFFTlRJVFkgeWljeSAiJiN4NDU3OyI+Cis8IUVOVElUWSBqc2VyY3kgIiYj
eDQ1ODsiPgorPCFFTlRJVFkgbGpjeSAiJiN4NDU5OyI+Cis8IUVOVElUWSBuamN5ICImI3g0NUE7
Ij4KKzwhRU5USVRZIHRzaGN5ICImI3g0NUI7Ij4KKzwhRU5USVRZIGtqY3kgIiYjeDQ1QzsiPgor
PCFFTlRJVFkgdWJyY3kgIiYjeDQ1RTsiPgorPCFFTlRJVFkgZHpjeSAiJiN4NDVGOyI+Cis8IUVO
VElUWSBlbnNwICImI3gyMDAyOyI+Cis8IUVOVElUWSBlbXNwICImI3gyMDAzOyI+Cis8IUVOVElU
WSBlbXNwMTMgIiYjeDIwMDQ7Ij4KKzwhRU5USVRZIGVtc3AxNCAiJiN4MjAwNTsiPgorPCFFTlRJ
VFkgbnVtc3AgIiYjeDIwMDc7Ij4KKzwhRU5USVRZIHB1bmNzcCAiJiN4MjAwODsiPgorPCFFTlRJ
VFkgdGhpbnNwICImI3gyMDA5OyI+Cis8IUVOVElUWSBUaGluU3BhY2UgIiYjeDIwMDk7Ij4KKzwh
RU5USVRZIGhhaXJzcCAiJiN4MjAwQTsiPgorPCFFTlRJVFkgVmVyeVRoaW5TcGFjZSAiJiN4MjAw
QTsiPgorPCFFTlRJVFkgWmVyb1dpZHRoU3BhY2UgIiYjeDIwMEI7Ij4KKzwhRU5USVRZIE5lZ2F0
aXZlVmVyeVRoaW5TcGFjZSAiJiN4MjAwQjsiPgorPCFFTlRJVFkgTmVnYXRpdmVUaGluU3BhY2Ug
IiYjeDIwMEI7Ij4KKzwhRU5USVRZIE5lZ2F0aXZlTWVkaXVtU3BhY2UgIiYjeDIwMEI7Ij4KKzwh
RU5USVRZIE5lZ2F0aXZlVGhpY2tTcGFjZSAiJiN4MjAwQjsiPgorPCFFTlRJVFkgenduaiAiJiN4
MjAwQzsiPgorPCFFTlRJVFkgendqICImI3gyMDBEOyI+Cis8IUVOVElUWSBscm0gIiYjeDIwMEU7
Ij4KKzwhRU5USVRZIHJsbSAiJiN4MjAwRjsiPgorPCFFTlRJVFkgaHlwaGVuICImI3gyMDEwOyI+
Cis8IUVOVElUWSBkYXNoICImI3gyMDEwOyI+Cis8IUVOVElUWSBuZGFzaCAiJiN4MjAxMzsiPgor
PCFFTlRJVFkgbWRhc2ggIiYjeDIwMTQ7Ij4KKzwhRU5USVRZIGhvcmJhciAiJiN4MjAxNTsiPgor
PCFFTlRJVFkgVmVyYmFyICImI3gyMDE2OyI+Cis8IUVOVElUWSBWZXJ0ICImI3gyMDE2OyI+Cis8
IUVOVElUWSBsc3F1byAiJiN4MjAxODsiPgorPCFFTlRJVFkgT3BlbkN1cmx5UXVvdGUgIiYjeDIw
MTg7Ij4KKzwhRU5USVRZIHJzcXVvICImI3gyMDE5OyI+Cis8IUVOVElUWSByc3F1b3IgIiYjeDIw
MTk7Ij4KKzwhRU5USVRZIENsb3NlQ3VybHlRdW90ZSAiJiN4MjAxOTsiPgorPCFFTlRJVFkgbHNx
dW9yICImI3gyMDFBOyI+Cis8IUVOVElUWSBzYnF1byAiJiN4MjAxQTsiPgorPCFFTlRJVFkgbGRx
dW8gIiYjeDIwMUM7Ij4KKzwhRU5USVRZIE9wZW5DdXJseURvdWJsZVF1b3RlICImI3gyMDFDOyI+
Cis8IUVOVElUWSByZHF1byAiJiN4MjAxRDsiPgorPCFFTlRJVFkgcmRxdW9yICImI3gyMDFEOyI+
Cis8IUVOVElUWSBDbG9zZUN1cmx5RG91YmxlUXVvdGUgIiYjeDIwMUQ7Ij4KKzwhRU5USVRZIGxk
cXVvciAiJiN4MjAxRTsiPgorPCFFTlRJVFkgYmRxdW8gIiYjeDIwMUU7Ij4KKzwhRU5USVRZIGRh
Z2dlciAiJiN4MjAyMDsiPgorPCFFTlRJVFkgRGFnZ2VyICImI3gyMDIxOyI+Cis8IUVOVElUWSBk
ZGFnZ2VyICImI3gyMDIxOyI+Cis8IUVOVElUWSBidWxsICImI3gyMDIyOyI+Cis8IUVOVElUWSBi
dWxsZXQgIiYjeDIwMjI7Ij4KKzwhRU5USVRZIG5sZHIgIiYjeDIwMjU7Ij4KKzwhRU5USVRZIGhl
bGxpcCAiJiN4MjAyNjsiPgorPCFFTlRJVFkgbWxkciAiJiN4MjAyNjsiPgorPCFFTlRJVFkgcGVy
bWlsICImI3gyMDMwOyI+Cis8IUVOVElUWSBwZXJ0ZW5rICImI3gyMDMxOyI+Cis8IUVOVElUWSBw
cmltZSAiJiN4MjAzMjsiPgorPCFFTlRJVFkgUHJpbWUgIiYjeDIwMzM7Ij4KKzwhRU5USVRZIHRw
cmltZSAiJiN4MjAzNDsiPgorPCFFTlRJVFkgYnByaW1lICImI3gyMDM1OyI+Cis8IUVOVElUWSBi
YWNrcHJpbWUgIiYjeDIwMzU7Ij4KKzwhRU5USVRZIGxzYXF1byAiJiN4MjAzOTsiPgorPCFFTlRJ
VFkgcnNhcXVvICImI3gyMDNBOyI+Cis8IUVOVElUWSBvbGluZSAiJiN4MjAzRTsiPgorPCFFTlRJ
VFkgT3ZlckJhciAiJiN4MjAzRTsiPgorPCFFTlRJVFkgY2FyZXQgIiYjeDIwNDE7Ij4KKzwhRU5U
SVRZIGh5YnVsbCAiJiN4MjA0MzsiPgorPCFFTlRJVFkgZnJhc2wgIiYjeDIwNDQ7Ij4KKzwhRU5U
SVRZIGJzZW1pICImI3gyMDRGOyI+Cis8IUVOVElUWSBxcHJpbWUgIiYjeDIwNTc7Ij4KKzwhRU5U
SVRZIE1lZGl1bVNwYWNlICImI3gyMDVGOyI+Cis8IUVOVElUWSBUaGlja1NwYWNlICImI3gyMDVG
OyYjeDIwMEE7Ij4KKzwhRU5USVRZIE5vQnJlYWsgIiYjeDIwNjA7Ij4KKzwhRU5USVRZIEFwcGx5
RnVuY3Rpb24gIiYjeDIwNjE7Ij4KKzwhRU5USVRZIGFmICImI3gyMDYxOyI+Cis8IUVOVElUWSBJ
bnZpc2libGVUaW1lcyAiJiN4MjA2MjsiPgorPCFFTlRJVFkgaXQgIiYjeDIwNjI7Ij4KKzwhRU5U
SVRZIEludmlzaWJsZUNvbW1hICImI3gyMDYzOyI+Cis8IUVOVElUWSBpYyAiJiN4MjA2MzsiPgor
PCFFTlRJVFkgZXVybyAiJiN4MjBBQzsiPgorPCFFTlRJVFkgdGRvdCAiJiN4MjBEQjsiPgorPCFF
TlRJVFkgVHJpcGxlRG90ICImI3gyMERCOyI+Cis8IUVOVElUWSBEb3REb3QgIiYjeDIwREM7Ij4K
KzwhRU5USVRZIENvcGYgIiYjeDIxMDI7Ij4KKzwhRU5USVRZIGNvbXBsZXhlcyAiJiN4MjEwMjsi
PgorPCFFTlRJVFkgaW5jYXJlICImI3gyMTA1OyI+Cis8IUVOVElUWSBnc2NyICImI3gyMTBBOyI+
Cis8IUVOVElUWSBoYW1pbHQgIiYjeDIxMEI7Ij4KKzwhRU5USVRZIEhpbGJlcnRTcGFjZSAiJiN4
MjEwQjsiPgorPCFFTlRJVFkgSHNjciAiJiN4MjEwQjsiPgorPCFFTlRJVFkgSGZyICImI3gyMTBD
OyI+Cis8IUVOVElUWSBQb2luY2FyZXBsYW5lICImI3gyMTBDOyI+Cis8IUVOVElUWSBxdWF0ZXJu
aW9ucyAiJiN4MjEwRDsiPgorPCFFTlRJVFkgSG9wZiAiJiN4MjEwRDsiPgorPCFFTlRJVFkgcGxh
bmNraCAiJiN4MjEwRTsiPgorPCFFTlRJVFkgcGxhbmNrICImI3gyMTBGOyI+Cis8IUVOVElUWSBo
YmFyICImI3gyMTBGOyI+Cis8IUVOVElUWSBwbGFua3YgIiYjeDIxMEY7Ij4KKzwhRU5USVRZIGhz
bGFzaCAiJiN4MjEwRjsiPgorPCFFTlRJVFkgSXNjciAiJiN4MjExMDsiPgorPCFFTlRJVFkgaW1h
Z2xpbmUgIiYjeDIxMTA7Ij4KKzwhRU5USVRZIGltYWdlICImI3gyMTExOyI+Cis8IUVOVElUWSBJ
bSAiJiN4MjExMTsiPgorPCFFTlRJVFkgaW1hZ3BhcnQgIiYjeDIxMTE7Ij4KKzwhRU5USVRZIElm
ciAiJiN4MjExMTsiPgorPCFFTlRJVFkgTHNjciAiJiN4MjExMjsiPgorPCFFTlRJVFkgbGFncmFu
ICImI3gyMTEyOyI+Cis8IUVOVElUWSBMYXBsYWNldHJmICImI3gyMTEyOyI+Cis8IUVOVElUWSBl
bGwgIiYjeDIxMTM7Ij4KKzwhRU5USVRZIE5vcGYgIiYjeDIxMTU7Ij4KKzwhRU5USVRZIG5hdHVy
YWxzICImI3gyMTE1OyI+Cis8IUVOVElUWSBudW1lcm8gIiYjeDIxMTY7Ij4KKzwhRU5USVRZIGNv
cHlzciAiJiN4MjExNzsiPgorPCFFTlRJVFkgd2VpZXJwICImI3gyMTE4OyI+Cis8IUVOVElUWSB3
cCAiJiN4MjExODsiPgorPCFFTlRJVFkgUG9wZiAiJiN4MjExOTsiPgorPCFFTlRJVFkgcHJpbWVz
ICImI3gyMTE5OyI+Cis8IUVOVElUWSByYXRpb25hbHMgIiYjeDIxMUE7Ij4KKzwhRU5USVRZIFFv
cGYgIiYjeDIxMUE7Ij4KKzwhRU5USVRZIFJzY3IgIiYjeDIxMUI7Ij4KKzwhRU5USVRZIHJlYWxp
bmUgIiYjeDIxMUI7Ij4KKzwhRU5USVRZIHJlYWwgIiYjeDIxMUM7Ij4KKzwhRU5USVRZIFJlICIm
I3gyMTFDOyI+Cis8IUVOVElUWSByZWFscGFydCAiJiN4MjExQzsiPgorPCFFTlRJVFkgUmZyICIm
I3gyMTFDOyI+Cis8IUVOVElUWSByZWFscyAiJiN4MjExRDsiPgorPCFFTlRJVFkgUm9wZiAiJiN4
MjExRDsiPgorPCFFTlRJVFkgcnggIiYjeDIxMUU7Ij4KKzwhRU5USVRZIHRyYWRlICImI3gyMTIy
OyI+Cis8IUVOVElUWSBUUkFERSAiJiN4MjEyMjsiPgorPCFFTlRJVFkgaW50ZWdlcnMgIiYjeDIx
MjQ7Ij4KKzwhRU5USVRZIFpvcGYgIiYjeDIxMjQ7Ij4KKzwhRU5USVRZIG1obyAiJiN4MjEyNzsi
PgorPCFFTlRJVFkgWmZyICImI3gyMTI4OyI+Cis8IUVOVElUWSB6ZWV0cmYgIiYjeDIxMjg7Ij4K
KzwhRU5USVRZIGlpb3RhICImI3gyMTI5OyI+Cis8IUVOVElUWSBiZXJub3UgIiYjeDIxMkM7Ij4K
KzwhRU5USVRZIEJlcm5vdWxsaXMgIiYjeDIxMkM7Ij4KKzwhRU5USVRZIEJzY3IgIiYjeDIxMkM7
Ij4KKzwhRU5USVRZIENmciAiJiN4MjEyRDsiPgorPCFFTlRJVFkgQ2F5bGV5cyAiJiN4MjEyRDsi
PgorPCFFTlRJVFkgZXNjciAiJiN4MjEyRjsiPgorPCFFTlRJVFkgRXNjciAiJiN4MjEzMDsiPgor
PCFFTlRJVFkgZXhwZWN0YXRpb24gIiYjeDIxMzA7Ij4KKzwhRU5USVRZIEZzY3IgIiYjeDIxMzE7
Ij4KKzwhRU5USVRZIEZvdXJpZXJ0cmYgIiYjeDIxMzE7Ij4KKzwhRU5USVRZIHBobW1hdCAiJiN4
MjEzMzsiPgorPCFFTlRJVFkgTWVsbGludHJmICImI3gyMTMzOyI+Cis8IUVOVElUWSBNc2NyICIm
I3gyMTMzOyI+Cis8IUVOVElUWSBvcmRlciAiJiN4MjEzNDsiPgorPCFFTlRJVFkgb3JkZXJvZiAi
JiN4MjEzNDsiPgorPCFFTlRJVFkgb3NjciAiJiN4MjEzNDsiPgorPCFFTlRJVFkgYWxlZnN5bSAi
JiN4MjEzNTsiPgorPCFFTlRJVFkgYWxlcGggIiYjeDIxMzU7Ij4KKzwhRU5USVRZIGJldGggIiYj
eDIxMzY7Ij4KKzwhRU5USVRZIGdpbWVsICImI3gyMTM3OyI+Cis8IUVOVElUWSBkYWxldGggIiYj
eDIxMzg7Ij4KKzwhRU5USVRZIENhcGl0YWxEaWZmZXJlbnRpYWxEICImI3gyMTQ1OyI+Cis8IUVO
VElUWSBERCAiJiN4MjE0NTsiPgorPCFFTlRJVFkgRGlmZmVyZW50aWFsRCAiJiN4MjE0NjsiPgor
PCFFTlRJVFkgZGQgIiYjeDIxNDY7Ij4KKzwhRU5USVRZIEV4cG9uZW50aWFsRSAiJiN4MjE0Nzsi
PgorPCFFTlRJVFkgZXhwb25lbnRpYWxlICImI3gyMTQ3OyI+Cis8IUVOVElUWSBlZSAiJiN4MjE0
NzsiPgorPCFFTlRJVFkgSW1hZ2luYXJ5SSAiJiN4MjE0ODsiPgorPCFFTlRJVFkgaWkgIiYjeDIx
NDg7Ij4KKzwhRU5USVRZIGZyYWMxMyAiJiN4MjE1MzsiPgorPCFFTlRJVFkgZnJhYzIzICImI3gy
MTU0OyI+Cis8IUVOVElUWSBmcmFjMTUgIiYjeDIxNTU7Ij4KKzwhRU5USVRZIGZyYWMyNSAiJiN4
MjE1NjsiPgorPCFFTlRJVFkgZnJhYzM1ICImI3gyMTU3OyI+Cis8IUVOVElUWSBmcmFjNDUgIiYj
eDIxNTg7Ij4KKzwhRU5USVRZIGZyYWMxNiAiJiN4MjE1OTsiPgorPCFFTlRJVFkgZnJhYzU2ICIm
I3gyMTVBOyI+Cis8IUVOVElUWSBmcmFjMTggIiYjeDIxNUI7Ij4KKzwhRU5USVRZIGZyYWMzOCAi
JiN4MjE1QzsiPgorPCFFTlRJVFkgZnJhYzU4ICImI3gyMTVEOyI+Cis8IUVOVElUWSBmcmFjNzgg
IiYjeDIxNUU7Ij4KKzwhRU5USVRZIGxhcnIgIiYjeDIxOTA7Ij4KKzwhRU5USVRZIGxlZnRhcnJv
dyAiJiN4MjE5MDsiPgorPCFFTlRJVFkgTGVmdEFycm93ICImI3gyMTkwOyI+Cis8IUVOVElUWSBz
bGFyciAiJiN4MjE5MDsiPgorPCFFTlRJVFkgU2hvcnRMZWZ0QXJyb3cgIiYjeDIxOTA7Ij4KKzwh
RU5USVRZIHVhcnIgIiYjeDIxOTE7Ij4KKzwhRU5USVRZIHVwYXJyb3cgIiYjeDIxOTE7Ij4KKzwh
RU5USVRZIFVwQXJyb3cgIiYjeDIxOTE7Ij4KKzwhRU5USVRZIFNob3J0VXBBcnJvdyAiJiN4MjE5
MTsiPgorPCFFTlRJVFkgcmFyciAiJiN4MjE5MjsiPgorPCFFTlRJVFkgcmlnaHRhcnJvdyAiJiN4
MjE5MjsiPgorPCFFTlRJVFkgUmlnaHRBcnJvdyAiJiN4MjE5MjsiPgorPCFFTlRJVFkgc3JhcnIg
IiYjeDIxOTI7Ij4KKzwhRU5USVRZIFNob3J0UmlnaHRBcnJvdyAiJiN4MjE5MjsiPgorPCFFTlRJ
VFkgZGFyciAiJiN4MjE5MzsiPgorPCFFTlRJVFkgZG93bmFycm93ICImI3gyMTkzOyI+Cis8IUVO
VElUWSBEb3duQXJyb3cgIiYjeDIxOTM7Ij4KKzwhRU5USVRZIFNob3J0RG93bkFycm93ICImI3gy
MTkzOyI+Cis8IUVOVElUWSBoYXJyICImI3gyMTk0OyI+Cis8IUVOVElUWSBsZWZ0cmlnaHRhcnJv
dyAiJiN4MjE5NDsiPgorPCFFTlRJVFkgTGVmdFJpZ2h0QXJyb3cgIiYjeDIxOTQ7Ij4KKzwhRU5U
SVRZIHZhcnIgIiYjeDIxOTU7Ij4KKzwhRU5USVRZIHVwZG93bmFycm93ICImI3gyMTk1OyI+Cis8
IUVOVElUWSBVcERvd25BcnJvdyAiJiN4MjE5NTsiPgorPCFFTlRJVFkgbndhcnIgIiYjeDIxOTY7
Ij4KKzwhRU5USVRZIFVwcGVyTGVmdEFycm93ICImI3gyMTk2OyI+Cis8IUVOVElUWSBud2Fycm93
ICImI3gyMTk2OyI+Cis8IUVOVElUWSBuZWFyciAiJiN4MjE5NzsiPgorPCFFTlRJVFkgVXBwZXJS
aWdodEFycm93ICImI3gyMTk3OyI+Cis8IUVOVElUWSBuZWFycm93ICImI3gyMTk3OyI+Cis8IUVO
VElUWSBzZWFyciAiJiN4MjE5ODsiPgorPCFFTlRJVFkgc2VhcnJvdyAiJiN4MjE5ODsiPgorPCFF
TlRJVFkgTG93ZXJSaWdodEFycm93ICImI3gyMTk4OyI+Cis8IUVOVElUWSBzd2FyciAiJiN4MjE5
OTsiPgorPCFFTlRJVFkgc3dhcnJvdyAiJiN4MjE5OTsiPgorPCFFTlRJVFkgTG93ZXJMZWZ0QXJy
b3cgIiYjeDIxOTk7Ij4KKzwhRU5USVRZIG5sYXJyICImI3gyMTlBOyI+Cis8IUVOVElUWSBubGVm
dGFycm93ICImI3gyMTlBOyI+Cis8IUVOVElUWSBucmFyciAiJiN4MjE5QjsiPgorPCFFTlRJVFkg
bnJpZ2h0YXJyb3cgIiYjeDIxOUI7Ij4KKzwhRU5USVRZIHJhcnJ3ICImI3gyMTlEOyI+Cis8IUVO
VElUWSByaWdodHNxdWlnYXJyb3cgIiYjeDIxOUQ7Ij4KKzwhRU5USVRZIG5yYXJydyAiJiN4MjE5
RDsmI3gzMzg7Ij4KKzwhRU5USVRZIExhcnIgIiYjeDIxOUU7Ij4KKzwhRU5USVRZIHR3b2hlYWRs
ZWZ0YXJyb3cgIiYjeDIxOUU7Ij4KKzwhRU5USVRZIFVhcnIgIiYjeDIxOUY7Ij4KKzwhRU5USVRZ
IFJhcnIgIiYjeDIxQTA7Ij4KKzwhRU5USVRZIHR3b2hlYWRyaWdodGFycm93ICImI3gyMUEwOyI+
Cis8IUVOVElUWSBEYXJyICImI3gyMUExOyI+Cis8IUVOVElUWSBsYXJydGwgIiYjeDIxQTI7Ij4K
KzwhRU5USVRZIGxlZnRhcnJvd3RhaWwgIiYjeDIxQTI7Ij4KKzwhRU5USVRZIHJhcnJ0bCAiJiN4
MjFBMzsiPgorPCFFTlRJVFkgcmlnaHRhcnJvd3RhaWwgIiYjeDIxQTM7Ij4KKzwhRU5USVRZIExl
ZnRUZWVBcnJvdyAiJiN4MjFBNDsiPgorPCFFTlRJVFkgbWFwc3RvbGVmdCAiJiN4MjFBNDsiPgor
PCFFTlRJVFkgVXBUZWVBcnJvdyAiJiN4MjFBNTsiPgorPCFFTlRJVFkgbWFwc3RvdXAgIiYjeDIx
QTU7Ij4KKzwhRU5USVRZIG1hcCAiJiN4MjFBNjsiPgorPCFFTlRJVFkgUmlnaHRUZWVBcnJvdyAi
JiN4MjFBNjsiPgorPCFFTlRJVFkgbWFwc3RvICImI3gyMUE2OyI+Cis8IUVOVElUWSBEb3duVGVl
QXJyb3cgIiYjeDIxQTc7Ij4KKzwhRU5USVRZIG1hcHN0b2Rvd24gIiYjeDIxQTc7Ij4KKzwhRU5U
SVRZIGxhcnJoayAiJiN4MjFBOTsiPgorPCFFTlRJVFkgaG9va2xlZnRhcnJvdyAiJiN4MjFBOTsi
PgorPCFFTlRJVFkgcmFycmhrICImI3gyMUFBOyI+Cis8IUVOVElUWSBob29rcmlnaHRhcnJvdyAi
JiN4MjFBQTsiPgorPCFFTlRJVFkgbGFycmxwICImI3gyMUFCOyI+Cis8IUVOVElUWSBsb29wYXJy
b3dsZWZ0ICImI3gyMUFCOyI+Cis8IUVOVElUWSByYXJybHAgIiYjeDIxQUM7Ij4KKzwhRU5USVRZ
IGxvb3BhcnJvd3JpZ2h0ICImI3gyMUFDOyI+Cis8IUVOVElUWSBoYXJydyAiJiN4MjFBRDsiPgor
PCFFTlRJVFkgbGVmdHJpZ2h0c3F1aWdhcnJvdyAiJiN4MjFBRDsiPgorPCFFTlRJVFkgbmhhcnIg
IiYjeDIxQUU7Ij4KKzwhRU5USVRZIG5sZWZ0cmlnaHRhcnJvdyAiJiN4MjFBRTsiPgorPCFFTlRJ
VFkgbHNoICImI3gyMUIwOyI+Cis8IUVOVElUWSBMc2ggIiYjeDIxQjA7Ij4KKzwhRU5USVRZIHJz
aCAiJiN4MjFCMTsiPgorPCFFTlRJVFkgUnNoICImI3gyMUIxOyI+Cis8IUVOVElUWSBsZHNoICIm
I3gyMUIyOyI+Cis8IUVOVElUWSByZHNoICImI3gyMUIzOyI+Cis8IUVOVElUWSBjcmFyciAiJiN4
MjFCNTsiPgorPCFFTlRJVFkgY3VsYXJyICImI3gyMUI2OyI+Cis8IUVOVElUWSBjdXJ2ZWFycm93
bGVmdCAiJiN4MjFCNjsiPgorPCFFTlRJVFkgY3VyYXJyICImI3gyMUI3OyI+Cis8IUVOVElUWSBj
dXJ2ZWFycm93cmlnaHQgIiYjeDIxQjc7Ij4KKzwhRU5USVRZIG9sYXJyICImI3gyMUJBOyI+Cis8
IUVOVElUWSBjaXJjbGVhcnJvd2xlZnQgIiYjeDIxQkE7Ij4KKzwhRU5USVRZIG9yYXJyICImI3gy
MUJCOyI+Cis8IUVOVElUWSBjaXJjbGVhcnJvd3JpZ2h0ICImI3gyMUJCOyI+Cis8IUVOVElUWSBs
aGFydSAiJiN4MjFCQzsiPgorPCFFTlRJVFkgTGVmdFZlY3RvciAiJiN4MjFCQzsiPgorPCFFTlRJ
VFkgbGVmdGhhcnBvb251cCAiJiN4MjFCQzsiPgorPCFFTlRJVFkgbGhhcmQgIiYjeDIxQkQ7Ij4K
KzwhRU5USVRZIGxlZnRoYXJwb29uZG93biAiJiN4MjFCRDsiPgorPCFFTlRJVFkgRG93bkxlZnRW
ZWN0b3IgIiYjeDIxQkQ7Ij4KKzwhRU5USVRZIHVoYXJyICImI3gyMUJFOyI+Cis8IUVOVElUWSB1
cGhhcnBvb25yaWdodCAiJiN4MjFCRTsiPgorPCFFTlRJVFkgUmlnaHRVcFZlY3RvciAiJiN4MjFC
RTsiPgorPCFFTlRJVFkgdWhhcmwgIiYjeDIxQkY7Ij4KKzwhRU5USVRZIHVwaGFycG9vbmxlZnQg
IiYjeDIxQkY7Ij4KKzwhRU5USVRZIExlZnRVcFZlY3RvciAiJiN4MjFCRjsiPgorPCFFTlRJVFkg
cmhhcnUgIiYjeDIxQzA7Ij4KKzwhRU5USVRZIFJpZ2h0VmVjdG9yICImI3gyMUMwOyI+Cis8IUVO
VElUWSByaWdodGhhcnBvb251cCAiJiN4MjFDMDsiPgorPCFFTlRJVFkgcmhhcmQgIiYjeDIxQzE7
Ij4KKzwhRU5USVRZIHJpZ2h0aGFycG9vbmRvd24gIiYjeDIxQzE7Ij4KKzwhRU5USVRZIERvd25S
aWdodFZlY3RvciAiJiN4MjFDMTsiPgorPCFFTlRJVFkgZGhhcnIgIiYjeDIxQzI7Ij4KKzwhRU5U
SVRZIFJpZ2h0RG93blZlY3RvciAiJiN4MjFDMjsiPgorPCFFTlRJVFkgZG93bmhhcnBvb25yaWdo
dCAiJiN4MjFDMjsiPgorPCFFTlRJVFkgZGhhcmwgIiYjeDIxQzM7Ij4KKzwhRU5USVRZIExlZnRE
b3duVmVjdG9yICImI3gyMUMzOyI+Cis8IUVOVElUWSBkb3duaGFycG9vbmxlZnQgIiYjeDIxQzM7
Ij4KKzwhRU5USVRZIHJsYXJyICImI3gyMUM0OyI+Cis8IUVOVElUWSByaWdodGxlZnRhcnJvd3Mg
IiYjeDIxQzQ7Ij4KKzwhRU5USVRZIFJpZ2h0QXJyb3dMZWZ0QXJyb3cgIiYjeDIxQzQ7Ij4KKzwh
RU5USVRZIHVkYXJyICImI3gyMUM1OyI+Cis8IUVOVElUWSBVcEFycm93RG93bkFycm93ICImI3gy
MUM1OyI+Cis8IUVOVElUWSBscmFyciAiJiN4MjFDNjsiPgorPCFFTlRJVFkgbGVmdHJpZ2h0YXJy
b3dzICImI3gyMUM2OyI+Cis8IUVOVElUWSBMZWZ0QXJyb3dSaWdodEFycm93ICImI3gyMUM2OyI+
Cis8IUVOVElUWSBsbGFyciAiJiN4MjFDNzsiPgorPCFFTlRJVFkgbGVmdGxlZnRhcnJvd3MgIiYj
eDIxQzc7Ij4KKzwhRU5USVRZIHV1YXJyICImI3gyMUM4OyI+Cis8IUVOVElUWSB1cHVwYXJyb3dz
ICImI3gyMUM4OyI+Cis8IUVOVElUWSBycmFyciAiJiN4MjFDOTsiPgorPCFFTlRJVFkgcmlnaHRy
aWdodGFycm93cyAiJiN4MjFDOTsiPgorPCFFTlRJVFkgZGRhcnIgIiYjeDIxQ0E7Ij4KKzwhRU5U
SVRZIGRvd25kb3duYXJyb3dzICImI3gyMUNBOyI+Cis8IUVOVElUWSBscmhhciAiJiN4MjFDQjsi
PgorPCFFTlRJVFkgUmV2ZXJzZUVxdWlsaWJyaXVtICImI3gyMUNCOyI+Cis8IUVOVElUWSBsZWZ0
cmlnaHRoYXJwb29ucyAiJiN4MjFDQjsiPgorPCFFTlRJVFkgcmxoYXIgIiYjeDIxQ0M7Ij4KKzwh
RU5USVRZIHJpZ2h0bGVmdGhhcnBvb25zICImI3gyMUNDOyI+Cis8IUVOVElUWSBFcXVpbGlicml1
bSAiJiN4MjFDQzsiPgorPCFFTlRJVFkgbmxBcnIgIiYjeDIxQ0Q7Ij4KKzwhRU5USVRZIG5MZWZ0
YXJyb3cgIiYjeDIxQ0Q7Ij4KKzwhRU5USVRZIG5oQXJyICImI3gyMUNFOyI+Cis8IUVOVElUWSBu
TGVmdHJpZ2h0YXJyb3cgIiYjeDIxQ0U7Ij4KKzwhRU5USVRZIG5yQXJyICImI3gyMUNGOyI+Cis8
IUVOVElUWSBuUmlnaHRhcnJvdyAiJiN4MjFDRjsiPgorPCFFTlRJVFkgbEFyciAiJiN4MjFEMDsi
PgorPCFFTlRJVFkgTGVmdGFycm93ICImI3gyMUQwOyI+Cis8IUVOVElUWSBEb3VibGVMZWZ0QXJy
b3cgIiYjeDIxRDA7Ij4KKzwhRU5USVRZIHVBcnIgIiYjeDIxRDE7Ij4KKzwhRU5USVRZIFVwYXJy
b3cgIiYjeDIxRDE7Ij4KKzwhRU5USVRZIERvdWJsZVVwQXJyb3cgIiYjeDIxRDE7Ij4KKzwhRU5U
SVRZIHJBcnIgIiYjeDIxRDI7Ij4KKzwhRU5USVRZIFJpZ2h0YXJyb3cgIiYjeDIxRDI7Ij4KKzwh
RU5USVRZIEltcGxpZXMgIiYjeDIxRDI7Ij4KKzwhRU5USVRZIERvdWJsZVJpZ2h0QXJyb3cgIiYj
eDIxRDI7Ij4KKzwhRU5USVRZIGRBcnIgIiYjeDIxRDM7Ij4KKzwhRU5USVRZIERvd25hcnJvdyAi
JiN4MjFEMzsiPgorPCFFTlRJVFkgRG91YmxlRG93bkFycm93ICImI3gyMUQzOyI+Cis8IUVOVElU
WSBoQXJyICImI3gyMUQ0OyI+Cis8IUVOVElUWSBMZWZ0cmlnaHRhcnJvdyAiJiN4MjFENDsiPgor
PCFFTlRJVFkgRG91YmxlTGVmdFJpZ2h0QXJyb3cgIiYjeDIxRDQ7Ij4KKzwhRU5USVRZIGlmZiAi
JiN4MjFENDsiPgorPCFFTlRJVFkgdkFyciAiJiN4MjFENTsiPgorPCFFTlRJVFkgVXBkb3duYXJy
b3cgIiYjeDIxRDU7Ij4KKzwhRU5USVRZIERvdWJsZVVwRG93bkFycm93ICImI3gyMUQ1OyI+Cis8
IUVOVElUWSBud0FyciAiJiN4MjFENjsiPgorPCFFTlRJVFkgbmVBcnIgIiYjeDIxRDc7Ij4KKzwh
RU5USVRZIHNlQXJyICImI3gyMUQ4OyI+Cis8IUVOVElUWSBzd0FyciAiJiN4MjFEOTsiPgorPCFF
TlRJVFkgbEFhcnIgIiYjeDIxREE7Ij4KKzwhRU5USVRZIExsZWZ0YXJyb3cgIiYjeDIxREE7Ij4K
KzwhRU5USVRZIHJBYXJyICImI3gyMURCOyI+Cis8IUVOVElUWSBScmlnaHRhcnJvdyAiJiN4MjFE
QjsiPgorPCFFTlRJVFkgemlncmFyciAiJiN4MjFERDsiPgorPCFFTlRJVFkgbGFycmIgIiYjeDIx
RTQ7Ij4KKzwhRU5USVRZIExlZnRBcnJvd0JhciAiJiN4MjFFNDsiPgorPCFFTlRJVFkgcmFycmIg
IiYjeDIxRTU7Ij4KKzwhRU5USVRZIFJpZ2h0QXJyb3dCYXIgIiYjeDIxRTU7Ij4KKzwhRU5USVRZ
IGR1YXJyICImI3gyMUY1OyI+Cis8IUVOVElUWSBEb3duQXJyb3dVcEFycm93ICImI3gyMUY1OyI+
Cis8IUVOVElUWSBsb2FyciAiJiN4MjFGRDsiPgorPCFFTlRJVFkgcm9hcnIgIiYjeDIxRkU7Ij4K
KzwhRU5USVRZIGhvYXJyICImI3gyMUZGOyI+Cis8IUVOVElUWSBmb3JhbGwgIiYjeDIyMDA7Ij4K
KzwhRU5USVRZIEZvckFsbCAiJiN4MjIwMDsiPgorPCFFTlRJVFkgY29tcCAiJiN4MjIwMTsiPgor
PCFFTlRJVFkgY29tcGxlbWVudCAiJiN4MjIwMTsiPgorPCFFTlRJVFkgcGFydCAiJiN4MjIwMjsi
PgorPCFFTlRJVFkgUGFydGlhbEQgIiYjeDIyMDI7Ij4KKzwhRU5USVRZIG5wYXJ0ICImI3gyMjAy
OyYjeDMzODsiPgorPCFFTlRJVFkgZXhpc3QgIiYjeDIyMDM7Ij4KKzwhRU5USVRZIEV4aXN0cyAi
JiN4MjIwMzsiPgorPCFFTlRJVFkgbmV4aXN0ICImI3gyMjA0OyI+Cis8IUVOVElUWSBOb3RFeGlz
dHMgIiYjeDIyMDQ7Ij4KKzwhRU5USVRZIG5leGlzdHMgIiYjeDIyMDQ7Ij4KKzwhRU5USVRZIGVt
cHR5ICImI3gyMjA1OyI+Cis8IUVOVElUWSBlbXB0eXNldCAiJiN4MjIwNTsiPgorPCFFTlRJVFkg
ZW1wdHl2ICImI3gyMjA1OyI+Cis8IUVOVElUWSB2YXJub3RoaW5nICImI3gyMjA1OyI+Cis8IUVO
VElUWSBuYWJsYSAiJiN4MjIwNzsiPgorPCFFTlRJVFkgRGVsICImI3gyMjA3OyI+Cis8IUVOVElU
WSBpc2luICImI3gyMjA4OyI+Cis8IUVOVElUWSBpc2ludiAiJiN4MjIwODsiPgorPCFFTlRJVFkg
RWxlbWVudCAiJiN4MjIwODsiPgorPCFFTlRJVFkgaW4gIiYjeDIyMDg7Ij4KKzwhRU5USVRZIG5v
dGluICImI3gyMjA5OyI+Cis8IUVOVElUWSBOb3RFbGVtZW50ICImI3gyMjA5OyI+Cis8IUVOVElU
WSBub3RpbnZhICImI3gyMjA5OyI+Cis8IUVOVElUWSBuaXYgIiYjeDIyMEI7Ij4KKzwhRU5USVRZ
IFJldmVyc2VFbGVtZW50ICImI3gyMjBCOyI+Cis8IUVOVElUWSBuaSAiJiN4MjIwQjsiPgorPCFF
TlRJVFkgU3VjaFRoYXQgIiYjeDIyMEI7Ij4KKzwhRU5USVRZIG5vdG5pICImI3gyMjBDOyI+Cis8
IUVOVElUWSBub3RuaXZhICImI3gyMjBDOyI+Cis8IUVOVElUWSBOb3RSZXZlcnNlRWxlbWVudCAi
JiN4MjIwQzsiPgorPCFFTlRJVFkgcHJvZCAiJiN4MjIwRjsiPgorPCFFTlRJVFkgUHJvZHVjdCAi
JiN4MjIwRjsiPgorPCFFTlRJVFkgY29wcm9kICImI3gyMjEwOyI+Cis8IUVOVElUWSBDb3Byb2R1
Y3QgIiYjeDIyMTA7Ij4KKzwhRU5USVRZIHN1bSAiJiN4MjIxMTsiPgorPCFFTlRJVFkgU3VtICIm
I3gyMjExOyI+Cis8IUVOVElUWSBtaW51cyAiJiN4MjIxMjsiPgorPCFFTlRJVFkgbW5wbHVzICIm
I3gyMjEzOyI+Cis8IUVOVElUWSBtcCAiJiN4MjIxMzsiPgorPCFFTlRJVFkgTWludXNQbHVzICIm
I3gyMjEzOyI+Cis8IUVOVElUWSBwbHVzZG8gIiYjeDIyMTQ7Ij4KKzwhRU5USVRZIGRvdHBsdXMg
IiYjeDIyMTQ7Ij4KKzwhRU5USVRZIHNldG1uICImI3gyMjE2OyI+Cis8IUVOVElUWSBzZXRtaW51
cyAiJiN4MjIxNjsiPgorPCFFTlRJVFkgQmFja3NsYXNoICImI3gyMjE2OyI+Cis8IUVOVElUWSBz
c2V0bW4gIiYjeDIyMTY7Ij4KKzwhRU5USVRZIHNtYWxsc2V0bWludXMgIiYjeDIyMTY7Ij4KKzwh
RU5USVRZIGxvd2FzdCAiJiN4MjIxNzsiPgorPCFFTlRJVFkgY29tcGZuICImI3gyMjE4OyI+Cis8
IUVOVElUWSBTbWFsbENpcmNsZSAiJiN4MjIxODsiPgorPCFFTlRJVFkgcmFkaWMgIiYjeDIyMUE7
Ij4KKzwhRU5USVRZIFNxcnQgIiYjeDIyMUE7Ij4KKzwhRU5USVRZIHByb3AgIiYjeDIyMUQ7Ij4K
KzwhRU5USVRZIHByb3B0byAiJiN4MjIxRDsiPgorPCFFTlRJVFkgUHJvcG9ydGlvbmFsICImI3gy
MjFEOyI+Cis8IUVOVElUWSB2cHJvcCAiJiN4MjIxRDsiPgorPCFFTlRJVFkgdmFycHJvcHRvICIm
I3gyMjFEOyI+Cis8IUVOVElUWSBpbmZpbiAiJiN4MjIxRTsiPgorPCFFTlRJVFkgYW5ncnQgIiYj
eDIyMUY7Ij4KKzwhRU5USVRZIGFuZyAiJiN4MjIyMDsiPgorPCFFTlRJVFkgYW5nbGUgIiYjeDIy
MjA7Ij4KKzwhRU5USVRZIG5hbmcgIiYjeDIyMjA7JiN4MjBEMjsiPgorPCFFTlRJVFkgYW5nbXNk
ICImI3gyMjIxOyI+Cis8IUVOVElUWSBtZWFzdXJlZGFuZ2xlICImI3gyMjIxOyI+Cis8IUVOVElU
WSBhbmdzcGggIiYjeDIyMjI7Ij4KKzwhRU5USVRZIG1pZCAiJiN4MjIyMzsiPgorPCFFTlRJVFkg
VmVydGljYWxCYXIgIiYjeDIyMjM7Ij4KKzwhRU5USVRZIHNtaWQgIiYjeDIyMjM7Ij4KKzwhRU5U
SVRZIHNob3J0bWlkICImI3gyMjIzOyI+Cis8IUVOVElUWSBubWlkICImI3gyMjI0OyI+Cis8IUVO
VElUWSBOb3RWZXJ0aWNhbEJhciAiJiN4MjIyNDsiPgorPCFFTlRJVFkgbnNtaWQgIiYjeDIyMjQ7
Ij4KKzwhRU5USVRZIG5zaG9ydG1pZCAiJiN4MjIyNDsiPgorPCFFTlRJVFkgcGFyICImI3gyMjI1
OyI+Cis8IUVOVElUWSBwYXJhbGxlbCAiJiN4MjIyNTsiPgorPCFFTlRJVFkgRG91YmxlVmVydGlj
YWxCYXIgIiYjeDIyMjU7Ij4KKzwhRU5USVRZIHNwYXIgIiYjeDIyMjU7Ij4KKzwhRU5USVRZIHNo
b3J0cGFyYWxsZWwgIiYjeDIyMjU7Ij4KKzwhRU5USVRZIG5wYXIgIiYjeDIyMjY7Ij4KKzwhRU5U
SVRZIG5wYXJhbGxlbCAiJiN4MjIyNjsiPgorPCFFTlRJVFkgTm90RG91YmxlVmVydGljYWxCYXIg
IiYjeDIyMjY7Ij4KKzwhRU5USVRZIG5zcGFyICImI3gyMjI2OyI+Cis8IUVOVElUWSBuc2hvcnRw
YXJhbGxlbCAiJiN4MjIyNjsiPgorPCFFTlRJVFkgYW5kICImI3gyMjI3OyI+Cis8IUVOVElUWSB3
ZWRnZSAiJiN4MjIyNzsiPgorPCFFTlRJVFkgb3IgIiYjeDIyMjg7Ij4KKzwhRU5USVRZIHZlZSAi
JiN4MjIyODsiPgorPCFFTlRJVFkgY2FwICImI3gyMjI5OyI+Cis8IUVOVElUWSBjYXBzICImI3gy
MjI5OyYjeEZFMDA7Ij4KKzwhRU5USVRZIGN1cCAiJiN4MjIyQTsiPgorPCFFTlRJVFkgY3VwcyAi
JiN4MjIyQTsmI3hGRTAwOyI+Cis8IUVOVElUWSBpbnQgIiYjeDIyMkI7Ij4KKzwhRU5USVRZIElu
dGVncmFsICImI3gyMjJCOyI+Cis8IUVOVElUWSBJbnQgIiYjeDIyMkM7Ij4KKzwhRU5USVRZIHRp
bnQgIiYjeDIyMkQ7Ij4KKzwhRU5USVRZIGlpaW50ICImI3gyMjJEOyI+Cis8IUVOVElUWSBjb25p
bnQgIiYjeDIyMkU7Ij4KKzwhRU5USVRZIG9pbnQgIiYjeDIyMkU7Ij4KKzwhRU5USVRZIENvbnRv
dXJJbnRlZ3JhbCAiJiN4MjIyRTsiPgorPCFFTlRJVFkgQ29uaW50ICImI3gyMjJGOyI+Cis8IUVO
VElUWSBEb3VibGVDb250b3VySW50ZWdyYWwgIiYjeDIyMkY7Ij4KKzwhRU5USVRZIENjb25pbnQg
IiYjeDIyMzA7Ij4KKzwhRU5USVRZIGN3aW50ICImI3gyMjMxOyI+Cis8IUVOVElUWSBjd2Nvbmlu
dCAiJiN4MjIzMjsiPgorPCFFTlRJVFkgQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMy
OyI+Cis8IUVOVElUWSBhd2NvbmludCAiJiN4MjIzMzsiPgorPCFFTlRJVFkgQ291bnRlckNsb2Nr
d2lzZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIzMzsiPgorPCFFTlRJVFkgdGhlcmU0ICImI3gyMjM0
OyI+Cis8IUVOVElUWSB0aGVyZWZvcmUgIiYjeDIyMzQ7Ij4KKzwhRU5USVRZIFRoZXJlZm9yZSAi
JiN4MjIzNDsiPgorPCFFTlRJVFkgYmVjYXVzICImI3gyMjM1OyI+Cis8IUVOVElUWSBiZWNhdXNl
ICImI3gyMjM1OyI+Cis8IUVOVElUWSBCZWNhdXNlICImI3gyMjM1OyI+Cis8IUVOVElUWSByYXRp
byAiJiN4MjIzNjsiPgorPCFFTlRJVFkgQ29sb24gIiYjeDIyMzc7Ij4KKzwhRU5USVRZIFByb3Bv
cnRpb24gIiYjeDIyMzc7Ij4KKzwhRU5USVRZIG1pbnVzZCAiJiN4MjIzODsiPgorPCFFTlRJVFkg
ZG90bWludXMgIiYjeDIyMzg7Ij4KKzwhRU5USVRZIG1ERG90ICImI3gyMjNBOyI+Cis8IUVOVElU
WSBob210aHQgIiYjeDIyM0I7Ij4KKzwhRU5USVRZIHNpbSAiJiN4MjIzQzsiPgorPCFFTlRJVFkg
VGlsZGUgIiYjeDIyM0M7Ij4KKzwhRU5USVRZIHRoa3NpbSAiJiN4MjIzQzsiPgorPCFFTlRJVFkg
dGhpY2tzaW0gIiYjeDIyM0M7Ij4KKzwhRU5USVRZIG52c2ltICImI3gyMjNDOyYjeDIwRDI7Ij4K
KzwhRU5USVRZIGJzaW0gIiYjeDIyM0Q7Ij4KKzwhRU5USVRZIGJhY2tzaW0gIiYjeDIyM0Q7Ij4K
KzwhRU5USVRZIHJhY2UgIiYjeDIyM0Q7JiN4MzMxOyI+Cis8IUVOVElUWSBhYyAiJiN4MjIzRTsi
PgorPCFFTlRJVFkgbXN0cG9zICImI3gyMjNFOyI+Cis8IUVOVElUWSBhY0UgIiYjeDIyM0U7JiN4
MzMzOyI+Cis8IUVOVElUWSBhY2QgIiYjeDIyM0Y7Ij4KKzwhRU5USVRZIHdyZWF0aCAiJiN4MjI0
MDsiPgorPCFFTlRJVFkgVmVydGljYWxUaWxkZSAiJiN4MjI0MDsiPgorPCFFTlRJVFkgd3IgIiYj
eDIyNDA7Ij4KKzwhRU5USVRZIG5zaW0gIiYjeDIyNDE7Ij4KKzwhRU5USVRZIE5vdFRpbGRlICIm
I3gyMjQxOyI+Cis8IUVOVElUWSBlc2ltICImI3gyMjQyOyI+Cis8IUVOVElUWSBFcXVhbFRpbGRl
ICImI3gyMjQyOyI+Cis8IUVOVElUWSBlcXNpbSAiJiN4MjI0MjsiPgorPCFFTlRJVFkgTm90RXF1
YWxUaWxkZSAiJiN4MjI0MjsmI3gzMzg7Ij4KKzwhRU5USVRZIG5lc2ltICImI3gyMjQyOyYjeDMz
ODsiPgorPCFFTlRJVFkgc2ltZSAiJiN4MjI0MzsiPgorPCFFTlRJVFkgVGlsZGVFcXVhbCAiJiN4
MjI0MzsiPgorPCFFTlRJVFkgc2ltZXEgIiYjeDIyNDM7Ij4KKzwhRU5USVRZIG5zaW1lICImI3gy
MjQ0OyI+Cis8IUVOVElUWSBuc2ltZXEgIiYjeDIyNDQ7Ij4KKzwhRU5USVRZIE5vdFRpbGRlRXF1
YWwgIiYjeDIyNDQ7Ij4KKzwhRU5USVRZIGNvbmcgIiYjeDIyNDU7Ij4KKzwhRU5USVRZIFRpbGRl
RnVsbEVxdWFsICImI3gyMjQ1OyI+Cis8IUVOVElUWSBzaW1uZSAiJiN4MjI0NjsiPgorPCFFTlRJ
VFkgbmNvbmcgIiYjeDIyNDc7Ij4KKzwhRU5USVRZIE5vdFRpbGRlRnVsbEVxdWFsICImI3gyMjQ3
OyI+Cis8IUVOVElUWSBhc3ltcCAiJiN4MjI0ODsiPgorPCFFTlRJVFkgYXAgIiYjeDIyNDg7Ij4K
KzwhRU5USVRZIFRpbGRlVGlsZGUgIiYjeDIyNDg7Ij4KKzwhRU5USVRZIGFwcHJveCAiJiN4MjI0
ODsiPgorPCFFTlRJVFkgdGhrYXAgIiYjeDIyNDg7Ij4KKzwhRU5USVRZIHRoaWNrYXBwcm94ICIm
I3gyMjQ4OyI+Cis8IUVOVElUWSBuYXAgIiYjeDIyNDk7Ij4KKzwhRU5USVRZIE5vdFRpbGRlVGls
ZGUgIiYjeDIyNDk7Ij4KKzwhRU5USVRZIG5hcHByb3ggIiYjeDIyNDk7Ij4KKzwhRU5USVRZIGFw
ZSAiJiN4MjI0QTsiPgorPCFFTlRJVFkgYXBwcm94ZXEgIiYjeDIyNEE7Ij4KKzwhRU5USVRZIGFw
aWQgIiYjeDIyNEI7Ij4KKzwhRU5USVRZIG5hcGlkICImI3gyMjRCOyYjeDMzODsiPgorPCFFTlRJ
VFkgYmNvbmcgIiYjeDIyNEM7Ij4KKzwhRU5USVRZIGJhY2tjb25nICImI3gyMjRDOyI+Cis8IUVO
VElUWSBhc3ltcGVxICImI3gyMjREOyI+Cis8IUVOVElUWSBDdXBDYXAgIiYjeDIyNEQ7Ij4KKzwh
RU5USVRZIG52YXAgIiYjeDIyNEQ7JiN4MjBEMjsiPgorPCFFTlRJVFkgYnVtcCAiJiN4MjI0RTsi
PgorPCFFTlRJVFkgSHVtcERvd25IdW1wICImI3gyMjRFOyI+Cis8IUVOVElUWSBCdW1wZXEgIiYj
eDIyNEU7Ij4KKzwhRU5USVRZIE5vdEh1bXBEb3duSHVtcCAiJiN4MjI0RTsmI3gzMzg7Ij4KKzwh
RU5USVRZIG5idW1wICImI3gyMjRFOyYjeDMzODsiPgorPCFFTlRJVFkgYnVtcGUgIiYjeDIyNEY7
Ij4KKzwhRU5USVRZIEh1bXBFcXVhbCAiJiN4MjI0RjsiPgorPCFFTlRJVFkgYnVtcGVxICImI3gy
MjRGOyI+Cis8IUVOVElUWSBuYnVtcGUgIiYjeDIyNEY7JiN4MzM4OyI+Cis8IUVOVElUWSBOb3RI
dW1wRXF1YWwgIiYjeDIyNEY7JiN4MzM4OyI+Cis8IUVOVElUWSBlc2RvdCAiJiN4MjI1MDsiPgor
PCFFTlRJVFkgRG90RXF1YWwgIiYjeDIyNTA7Ij4KKzwhRU5USVRZIGRvdGVxICImI3gyMjUwOyI+
Cis8IUVOVElUWSBuZWRvdCAiJiN4MjI1MDsmI3gzMzg7Ij4KKzwhRU5USVRZIGVEb3QgIiYjeDIy
NTE7Ij4KKzwhRU5USVRZIGRvdGVxZG90ICImI3gyMjUxOyI+Cis8IUVOVElUWSBlZkRvdCAiJiN4
MjI1MjsiPgorPCFFTlRJVFkgZmFsbGluZ2RvdHNlcSAiJiN4MjI1MjsiPgorPCFFTlRJVFkgZXJE
b3QgIiYjeDIyNTM7Ij4KKzwhRU5USVRZIHJpc2luZ2RvdHNlcSAiJiN4MjI1MzsiPgorPCFFTlRJ
VFkgY29sb25lICImI3gyMjU0OyI+Cis8IUVOVElUWSBjb2xvbmVxICImI3gyMjU0OyI+Cis8IUVO
VElUWSBBc3NpZ24gIiYjeDIyNTQ7Ij4KKzwhRU5USVRZIGVjb2xvbiAiJiN4MjI1NTsiPgorPCFF
TlRJVFkgZXFjb2xvbiAiJiN4MjI1NTsiPgorPCFFTlRJVFkgZWNpciAiJiN4MjI1NjsiPgorPCFF
TlRJVFkgZXFjaXJjICImI3gyMjU2OyI+Cis8IUVOVElUWSBjaXJlICImI3gyMjU3OyI+Cis8IUVO
VElUWSBjaXJjZXEgIiYjeDIyNTc7Ij4KKzwhRU5USVRZIHdlZGdlcSAiJiN4MjI1OTsiPgorPCFF
TlRJVFkgdmVlZXEgIiYjeDIyNUE7Ij4KKzwhRU5USVRZIHRyaWUgIiYjeDIyNUM7Ij4KKzwhRU5U
SVRZIHRyaWFuZ2xlcSAiJiN4MjI1QzsiPgorPCFFTlRJVFkgZXF1ZXN0ICImI3gyMjVGOyI+Cis8
IUVOVElUWSBxdWVzdGVxICImI3gyMjVGOyI+Cis8IUVOVElUWSBuZSAiJiN4MjI2MDsiPgorPCFF
TlRJVFkgTm90RXF1YWwgIiYjeDIyNjA7Ij4KKzwhRU5USVRZIGVxdWl2ICImI3gyMjYxOyI+Cis8
IUVOVElUWSBDb25ncnVlbnQgIiYjeDIyNjE7Ij4KKzwhRU5USVRZIGJuZXF1aXYgIiYjeDIyNjE7
JiN4MjBFNTsiPgorPCFFTlRJVFkgbmVxdWl2ICImI3gyMjYyOyI+Cis8IUVOVElUWSBOb3RDb25n
cnVlbnQgIiYjeDIyNjI7Ij4KKzwhRU5USVRZIGxlICImI3gyMjY0OyI+Cis8IUVOVElUWSBsZXEg
IiYjeDIyNjQ7Ij4KKzwhRU5USVRZIG52bGUgIiYjeDIyNjQ7JiN4MjBEMjsiPgorPCFFTlRJVFkg
Z2UgIiYjeDIyNjU7Ij4KKzwhRU5USVRZIEdyZWF0ZXJFcXVhbCAiJiN4MjI2NTsiPgorPCFFTlRJ
VFkgZ2VxICImI3gyMjY1OyI+Cis8IUVOVElUWSBudmdlICImI3gyMjY1OyYjeDIwRDI7Ij4KKzwh
RU5USVRZIGxFICImI3gyMjY2OyI+Cis8IUVOVElUWSBMZXNzRnVsbEVxdWFsICImI3gyMjY2OyI+
Cis8IUVOVElUWSBsZXFxICImI3gyMjY2OyI+Cis8IUVOVElUWSBubEUgIiYjeDIyNjY7JiN4MzM4
OyI+Cis8IUVOVElUWSBubGVxcSAiJiN4MjI2NjsmI3gzMzg7Ij4KKzwhRU5USVRZIGdFICImI3gy
MjY3OyI+Cis8IUVOVElUWSBHcmVhdGVyRnVsbEVxdWFsICImI3gyMjY3OyI+Cis8IUVOVElUWSBn
ZXFxICImI3gyMjY3OyI+Cis8IUVOVElUWSBuZ0UgIiYjeDIyNjc7JiN4MzM4OyI+Cis8IUVOVElU
WSBuZ2VxcSAiJiN4MjI2NzsmI3gzMzg7Ij4KKzwhRU5USVRZIE5vdEdyZWF0ZXJGdWxsRXF1YWwg
IiYjeDIyNjc7JiN4MzM4OyI+Cis8IUVOVElUWSBsbkUgIiYjeDIyNjg7Ij4KKzwhRU5USVRZIGxu
ZXFxICImI3gyMjY4OyI+Cis8IUVOVElUWSBsdm5FICImI3gyMjY4OyYjeEZFMDA7Ij4KKzwhRU5U
SVRZIGx2ZXJ0bmVxcSAiJiN4MjI2ODsmI3hGRTAwOyI+Cis8IUVOVElUWSBnbkUgIiYjeDIyNjk7
Ij4KKzwhRU5USVRZIGduZXFxICImI3gyMjY5OyI+Cis8IUVOVElUWSBndm5FICImI3gyMjY5OyYj
eEZFMDA7Ij4KKzwhRU5USVRZIGd2ZXJ0bmVxcSAiJiN4MjI2OTsmI3hGRTAwOyI+Cis8IUVOVElU
WSBMdCAiJiN4MjI2QTsiPgorPCFFTlRJVFkgTmVzdGVkTGVzc0xlc3MgIiYjeDIyNkE7Ij4KKzwh
RU5USVRZIGxsICImI3gyMjZBOyI+Cis8IUVOVElUWSBuTHR2ICImI3gyMjZBOyYjeDMzODsiPgor
PCFFTlRJVFkgTm90TGVzc0xlc3MgIiYjeDIyNkE7JiN4MzM4OyI+Cis8IUVOVElUWSBuTHQgIiYj
eDIyNkE7JiN4MjBEMjsiPgorPCFFTlRJVFkgR3QgIiYjeDIyNkI7Ij4KKzwhRU5USVRZIE5lc3Rl
ZEdyZWF0ZXJHcmVhdGVyICImI3gyMjZCOyI+Cis8IUVOVElUWSBnZyAiJiN4MjI2QjsiPgorPCFF
TlRJVFkgbkd0diAiJiN4MjI2QjsmI3gzMzg7Ij4KKzwhRU5USVRZIE5vdEdyZWF0ZXJHcmVhdGVy
ICImI3gyMjZCOyYjeDMzODsiPgorPCFFTlRJVFkgbkd0ICImI3gyMjZCOyYjeDIwRDI7Ij4KKzwh
RU5USVRZIHR3aXh0ICImI3gyMjZDOyI+Cis8IUVOVElUWSBiZXR3ZWVuICImI3gyMjZDOyI+Cis8
IUVOVElUWSBOb3RDdXBDYXAgIiYjeDIyNkQ7Ij4KKzwhRU5USVRZIG5sdCAiJiN4MjI2RTsiPgor
PCFFTlRJVFkgTm90TGVzcyAiJiN4MjI2RTsiPgorPCFFTlRJVFkgbmxlc3MgIiYjeDIyNkU7Ij4K
KzwhRU5USVRZIG5ndCAiJiN4MjI2RjsiPgorPCFFTlRJVFkgTm90R3JlYXRlciAiJiN4MjI2Rjsi
PgorPCFFTlRJVFkgbmd0ciAiJiN4MjI2RjsiPgorPCFFTlRJVFkgbmxlICImI3gyMjcwOyI+Cis8
IUVOVElUWSBOb3RMZXNzRXF1YWwgIiYjeDIyNzA7Ij4KKzwhRU5USVRZIG5sZXEgIiYjeDIyNzA7
Ij4KKzwhRU5USVRZIG5nZSAiJiN4MjI3MTsiPgorPCFFTlRJVFkgTm90R3JlYXRlckVxdWFsICIm
I3gyMjcxOyI+Cis8IUVOVElUWSBuZ2VxICImI3gyMjcxOyI+Cis8IUVOVElUWSBsc2ltICImI3gy
MjcyOyI+Cis8IUVOVElUWSBMZXNzVGlsZGUgIiYjeDIyNzI7Ij4KKzwhRU5USVRZIGxlc3NzaW0g
IiYjeDIyNzI7Ij4KKzwhRU5USVRZIGdzaW0gIiYjeDIyNzM7Ij4KKzwhRU5USVRZIGd0cnNpbSAi
JiN4MjI3MzsiPgorPCFFTlRJVFkgR3JlYXRlclRpbGRlICImI3gyMjczOyI+Cis8IUVOVElUWSBu
bHNpbSAiJiN4MjI3NDsiPgorPCFFTlRJVFkgTm90TGVzc1RpbGRlICImI3gyMjc0OyI+Cis8IUVO
VElUWSBuZ3NpbSAiJiN4MjI3NTsiPgorPCFFTlRJVFkgTm90R3JlYXRlclRpbGRlICImI3gyMjc1
OyI+Cis8IUVOVElUWSBsZyAiJiN4MjI3NjsiPgorPCFFTlRJVFkgbGVzc2d0ciAiJiN4MjI3Njsi
PgorPCFFTlRJVFkgTGVzc0dyZWF0ZXIgIiYjeDIyNzY7Ij4KKzwhRU5USVRZIGdsICImI3gyMjc3
OyI+Cis8IUVOVElUWSBndHJsZXNzICImI3gyMjc3OyI+Cis8IUVOVElUWSBHcmVhdGVyTGVzcyAi
JiN4MjI3NzsiPgorPCFFTlRJVFkgbnRsZyAiJiN4MjI3ODsiPgorPCFFTlRJVFkgTm90TGVzc0dy
ZWF0ZXIgIiYjeDIyNzg7Ij4KKzwhRU5USVRZIG50Z2wgIiYjeDIyNzk7Ij4KKzwhRU5USVRZIE5v
dEdyZWF0ZXJMZXNzICImI3gyMjc5OyI+Cis8IUVOVElUWSBwciAiJiN4MjI3QTsiPgorPCFFTlRJ
VFkgUHJlY2VkZXMgIiYjeDIyN0E7Ij4KKzwhRU5USVRZIHByZWMgIiYjeDIyN0E7Ij4KKzwhRU5U
SVRZIHNjICImI3gyMjdCOyI+Cis8IUVOVElUWSBTdWNjZWVkcyAiJiN4MjI3QjsiPgorPCFFTlRJ
VFkgc3VjYyAiJiN4MjI3QjsiPgorPCFFTlRJVFkgcHJjdWUgIiYjeDIyN0M7Ij4KKzwhRU5USVRZ
IFByZWNlZGVzU2xhbnRFcXVhbCAiJiN4MjI3QzsiPgorPCFFTlRJVFkgcHJlY2N1cmx5ZXEgIiYj
eDIyN0M7Ij4KKzwhRU5USVRZIHNjY3VlICImI3gyMjdEOyI+Cis8IUVOVElUWSBTdWNjZWVkc1Ns
YW50RXF1YWwgIiYjeDIyN0Q7Ij4KKzwhRU5USVRZIHN1Y2NjdXJseWVxICImI3gyMjdEOyI+Cis8
IUVOVElUWSBwcnNpbSAiJiN4MjI3RTsiPgorPCFFTlRJVFkgcHJlY3NpbSAiJiN4MjI3RTsiPgor
PCFFTlRJVFkgUHJlY2VkZXNUaWxkZSAiJiN4MjI3RTsiPgorPCFFTlRJVFkgc2NzaW0gIiYjeDIy
N0Y7Ij4KKzwhRU5USVRZIHN1Y2NzaW0gIiYjeDIyN0Y7Ij4KKzwhRU5USVRZIFN1Y2NlZWRzVGls
ZGUgIiYjeDIyN0Y7Ij4KKzwhRU5USVRZIE5vdFN1Y2NlZWRzVGlsZGUgIiYjeDIyN0Y7JiN4MzM4
OyI+Cis8IUVOVElUWSBucHIgIiYjeDIyODA7Ij4KKzwhRU5USVRZIG5wcmVjICImI3gyMjgwOyI+
Cis8IUVOVElUWSBOb3RQcmVjZWRlcyAiJiN4MjI4MDsiPgorPCFFTlRJVFkgbnNjICImI3gyMjgx
OyI+Cis8IUVOVElUWSBuc3VjYyAiJiN4MjI4MTsiPgorPCFFTlRJVFkgTm90U3VjY2VlZHMgIiYj
eDIyODE7Ij4KKzwhRU5USVRZIHN1YiAiJiN4MjI4MjsiPgorPCFFTlRJVFkgc3Vic2V0ICImI3gy
MjgyOyI+Cis8IUVOVElUWSB2bnN1YiAiJiN4MjI4MjsmI3gyMEQyOyI+Cis8IUVOVElUWSBuc3Vi
c2V0ICImI3gyMjgyOyYjeDIwRDI7Ij4KKzwhRU5USVRZIE5vdFN1YnNldCAiJiN4MjI4MjsmI3gy
MEQyOyI+Cis8IUVOVElUWSBzdXAgIiYjeDIyODM7Ij4KKzwhRU5USVRZIHN1cHNldCAiJiN4MjI4
MzsiPgorPCFFTlRJVFkgU3VwZXJzZXQgIiYjeDIyODM7Ij4KKzwhRU5USVRZIHZuc3VwICImI3gy
MjgzOyYjeDIwRDI7Ij4KKzwhRU5USVRZIG5zdXBzZXQgIiYjeDIyODM7JiN4MjBEMjsiPgorPCFF
TlRJVFkgTm90U3VwZXJzZXQgIiYjeDIyODM7JiN4MjBEMjsiPgorPCFFTlRJVFkgbnN1YiAiJiN4
MjI4NDsiPgorPCFFTlRJVFkgbnN1cCAiJiN4MjI4NTsiPgorPCFFTlRJVFkgc3ViZSAiJiN4MjI4
NjsiPgorPCFFTlRJVFkgU3Vic2V0RXF1YWwgIiYjeDIyODY7Ij4KKzwhRU5USVRZIHN1YnNldGVx
ICImI3gyMjg2OyI+Cis8IUVOVElUWSBzdXBlICImI3gyMjg3OyI+Cis8IUVOVElUWSBzdXBzZXRl
cSAiJiN4MjI4NzsiPgorPCFFTlRJVFkgU3VwZXJzZXRFcXVhbCAiJiN4MjI4NzsiPgorPCFFTlRJ
VFkgbnN1YmUgIiYjeDIyODg7Ij4KKzwhRU5USVRZIG5zdWJzZXRlcSAiJiN4MjI4ODsiPgorPCFF
TlRJVFkgTm90U3Vic2V0RXF1YWwgIiYjeDIyODg7Ij4KKzwhRU5USVRZIG5zdXBlICImI3gyMjg5
OyI+Cis8IUVOVElUWSBuc3Vwc2V0ZXEgIiYjeDIyODk7Ij4KKzwhRU5USVRZIE5vdFN1cGVyc2V0
RXF1YWwgIiYjeDIyODk7Ij4KKzwhRU5USVRZIHN1Ym5lICImI3gyMjhBOyI+Cis8IUVOVElUWSBz
dWJzZXRuZXEgIiYjeDIyOEE7Ij4KKzwhRU5USVRZIHZzdWJuZSAiJiN4MjI4QTsmI3hGRTAwOyI+
Cis8IUVOVElUWSB2YXJzdWJzZXRuZXEgIiYjeDIyOEE7JiN4RkUwMDsiPgorPCFFTlRJVFkgc3Vw
bmUgIiYjeDIyOEI7Ij4KKzwhRU5USVRZIHN1cHNldG5lcSAiJiN4MjI4QjsiPgorPCFFTlRJVFkg
dnN1cG5lICImI3gyMjhCOyYjeEZFMDA7Ij4KKzwhRU5USVRZIHZhcnN1cHNldG5lcSAiJiN4MjI4
QjsmI3hGRTAwOyI+Cis8IUVOVElUWSBjdXBkb3QgIiYjeDIyOEQ7Ij4KKzwhRU5USVRZIHVwbHVz
ICImI3gyMjhFOyI+Cis8IUVOVElUWSBVbmlvblBsdXMgIiYjeDIyOEU7Ij4KKzwhRU5USVRZIHNx
c3ViICImI3gyMjhGOyI+Cis8IUVOVElUWSBTcXVhcmVTdWJzZXQgIiYjeDIyOEY7Ij4KKzwhRU5U
SVRZIHNxc3Vic2V0ICImI3gyMjhGOyI+Cis8IUVOVElUWSBOb3RTcXVhcmVTdWJzZXQgIiYjeDIy
OEY7JiN4MzM4OyI+Cis8IUVOVElUWSBzcXN1cCAiJiN4MjI5MDsiPgorPCFFTlRJVFkgU3F1YXJl
U3VwZXJzZXQgIiYjeDIyOTA7Ij4KKzwhRU5USVRZIHNxc3Vwc2V0ICImI3gyMjkwOyI+Cis8IUVO
VElUWSBOb3RTcXVhcmVTdXBlcnNldCAiJiN4MjI5MDsmI3gzMzg7Ij4KKzwhRU5USVRZIHNxc3Vi
ZSAiJiN4MjI5MTsiPgorPCFFTlRJVFkgU3F1YXJlU3Vic2V0RXF1YWwgIiYjeDIyOTE7Ij4KKzwh
RU5USVRZIHNxc3Vic2V0ZXEgIiYjeDIyOTE7Ij4KKzwhRU5USVRZIHNxc3VwZSAiJiN4MjI5Mjsi
PgorPCFFTlRJVFkgU3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjI5MjsiPgorPCFFTlRJVFkgc3Fz
dXBzZXRlcSAiJiN4MjI5MjsiPgorPCFFTlRJVFkgc3FjYXAgIiYjeDIyOTM7Ij4KKzwhRU5USVRZ
IFNxdWFyZUludGVyc2VjdGlvbiAiJiN4MjI5MzsiPgorPCFFTlRJVFkgc3FjYXBzICImI3gyMjkz
OyYjeEZFMDA7Ij4KKzwhRU5USVRZIHNxY3VwICImI3gyMjk0OyI+Cis8IUVOVElUWSBTcXVhcmVV
bmlvbiAiJiN4MjI5NDsiPgorPCFFTlRJVFkgc3FjdXBzICImI3gyMjk0OyYjeEZFMDA7Ij4KKzwh
RU5USVRZIG9wbHVzICImI3gyMjk1OyI+Cis8IUVOVElUWSBDaXJjbGVQbHVzICImI3gyMjk1OyI+
Cis8IUVOVElUWSBvbWludXMgIiYjeDIyOTY7Ij4KKzwhRU5USVRZIENpcmNsZU1pbnVzICImI3gy
Mjk2OyI+Cis8IUVOVElUWSBvdGltZXMgIiYjeDIyOTc7Ij4KKzwhRU5USVRZIENpcmNsZVRpbWVz
ICImI3gyMjk3OyI+Cis8IUVOVElUWSBvc29sICImI3gyMjk4OyI+Cis8IUVOVElUWSBvZG90ICIm
I3gyMjk5OyI+Cis8IUVOVElUWSBDaXJjbGVEb3QgIiYjeDIyOTk7Ij4KKzwhRU5USVRZIG9jaXIg
IiYjeDIyOUE7Ij4KKzwhRU5USVRZIGNpcmNsZWRjaXJjICImI3gyMjlBOyI+Cis8IUVOVElUWSBv
YXN0ICImI3gyMjlCOyI+Cis8IUVOVElUWSBjaXJjbGVkYXN0ICImI3gyMjlCOyI+Cis8IUVOVElU
WSBvZGFzaCAiJiN4MjI5RDsiPgorPCFFTlRJVFkgY2lyY2xlZGRhc2ggIiYjeDIyOUQ7Ij4KKzwh
RU5USVRZIHBsdXNiICImI3gyMjlFOyI+Cis8IUVOVElUWSBib3hwbHVzICImI3gyMjlFOyI+Cis8
IUVOVElUWSBtaW51c2IgIiYjeDIyOUY7Ij4KKzwhRU5USVRZIGJveG1pbnVzICImI3gyMjlGOyI+
Cis8IUVOVElUWSB0aW1lc2IgIiYjeDIyQTA7Ij4KKzwhRU5USVRZIGJveHRpbWVzICImI3gyMkEw
OyI+Cis8IUVOVElUWSBzZG90YiAiJiN4MjJBMTsiPgorPCFFTlRJVFkgZG90c3F1YXJlICImI3gy
MkExOyI+Cis8IUVOVElUWSB2ZGFzaCAiJiN4MjJBMjsiPgorPCFFTlRJVFkgUmlnaHRUZWUgIiYj
eDIyQTI7Ij4KKzwhRU5USVRZIGRhc2h2ICImI3gyMkEzOyI+Cis8IUVOVElUWSBMZWZ0VGVlICIm
I3gyMkEzOyI+Cis8IUVOVElUWSB0b3AgIiYjeDIyQTQ7Ij4KKzwhRU5USVRZIERvd25UZWUgIiYj
eDIyQTQ7Ij4KKzwhRU5USVRZIGJvdHRvbSAiJiN4MjJBNTsiPgorPCFFTlRJVFkgYm90ICImI3gy
MkE1OyI+Cis8IUVOVElUWSBwZXJwICImI3gyMkE1OyI+Cis8IUVOVElUWSBVcFRlZSAiJiN4MjJB
NTsiPgorPCFFTlRJVFkgbW9kZWxzICImI3gyMkE3OyI+Cis8IUVOVElUWSB2RGFzaCAiJiN4MjJB
ODsiPgorPCFFTlRJVFkgRG91YmxlUmlnaHRUZWUgIiYjeDIyQTg7Ij4KKzwhRU5USVRZIFZkYXNo
ICImI3gyMkE5OyI+Cis8IUVOVElUWSBWdmRhc2ggIiYjeDIyQUE7Ij4KKzwhRU5USVRZIFZEYXNo
ICImI3gyMkFCOyI+Cis8IUVOVElUWSBudmRhc2ggIiYjeDIyQUM7Ij4KKzwhRU5USVRZIG52RGFz
aCAiJiN4MjJBRDsiPgorPCFFTlRJVFkgblZkYXNoICImI3gyMkFFOyI+Cis8IUVOVElUWSBuVkRh
c2ggIiYjeDIyQUY7Ij4KKzwhRU5USVRZIHBydXJlbCAiJiN4MjJCMDsiPgorPCFFTlRJVFkgdmx0
cmkgIiYjeDIyQjI7Ij4KKzwhRU5USVRZIHZhcnRyaWFuZ2xlbGVmdCAiJiN4MjJCMjsiPgorPCFF
TlRJVFkgTGVmdFRyaWFuZ2xlICImI3gyMkIyOyI+Cis8IUVOVElUWSB2cnRyaSAiJiN4MjJCMzsi
PgorPCFFTlRJVFkgdmFydHJpYW5nbGVyaWdodCAiJiN4MjJCMzsiPgorPCFFTlRJVFkgUmlnaHRU
cmlhbmdsZSAiJiN4MjJCMzsiPgorPCFFTlRJVFkgbHRyaWUgIiYjeDIyQjQ7Ij4KKzwhRU5USVRZ
IHRyaWFuZ2xlbGVmdGVxICImI3gyMkI0OyI+Cis8IUVOVElUWSBMZWZ0VHJpYW5nbGVFcXVhbCAi
JiN4MjJCNDsiPgorPCFFTlRJVFkgbnZsdHJpZSAiJiN4MjJCNDsmI3gyMEQyOyI+Cis8IUVOVElU
WSBydHJpZSAiJiN4MjJCNTsiPgorPCFFTlRJVFkgdHJpYW5nbGVyaWdodGVxICImI3gyMkI1OyI+
Cis8IUVOVElUWSBSaWdodFRyaWFuZ2xlRXF1YWwgIiYjeDIyQjU7Ij4KKzwhRU5USVRZIG52cnRy
aWUgIiYjeDIyQjU7JiN4MjBEMjsiPgorPCFFTlRJVFkgb3JpZ29mICImI3gyMkI2OyI+Cis8IUVO
VElUWSBpbW9mICImI3gyMkI3OyI+Cis8IUVOVElUWSBtdW1hcCAiJiN4MjJCODsiPgorPCFFTlRJ
VFkgbXVsdGltYXAgIiYjeDIyQjg7Ij4KKzwhRU5USVRZIGhlcmNvbiAiJiN4MjJCOTsiPgorPCFF
TlRJVFkgaW50Y2FsICImI3gyMkJBOyI+Cis8IUVOVElUWSBpbnRlcmNhbCAiJiN4MjJCQTsiPgor
PCFFTlRJVFkgdmVlYmFyICImI3gyMkJCOyI+Cis8IUVOVElUWSBiYXJ2ZWUgIiYjeDIyQkQ7Ij4K
KzwhRU5USVRZIGFuZ3J0dmIgIiYjeDIyQkU7Ij4KKzwhRU5USVRZIGxydHJpICImI3gyMkJGOyI+
Cis8IUVOVElUWSB4d2VkZ2UgIiYjeDIyQzA7Ij4KKzwhRU5USVRZIFdlZGdlICImI3gyMkMwOyI+
Cis8IUVOVElUWSBiaWd3ZWRnZSAiJiN4MjJDMDsiPgorPCFFTlRJVFkgeHZlZSAiJiN4MjJDMTsi
PgorPCFFTlRJVFkgVmVlICImI3gyMkMxOyI+Cis8IUVOVElUWSBiaWd2ZWUgIiYjeDIyQzE7Ij4K
KzwhRU5USVRZIHhjYXAgIiYjeDIyQzI7Ij4KKzwhRU5USVRZIEludGVyc2VjdGlvbiAiJiN4MjJD
MjsiPgorPCFFTlRJVFkgYmlnY2FwICImI3gyMkMyOyI+Cis8IUVOVElUWSB4Y3VwICImI3gyMkMz
OyI+Cis8IUVOVElUWSBVbmlvbiAiJiN4MjJDMzsiPgorPCFFTlRJVFkgYmlnY3VwICImI3gyMkMz
OyI+Cis8IUVOVElUWSBkaWFtICImI3gyMkM0OyI+Cis8IUVOVElUWSBkaWFtb25kICImI3gyMkM0
OyI+Cis8IUVOVElUWSBEaWFtb25kICImI3gyMkM0OyI+Cis8IUVOVElUWSBzZG90ICImI3gyMkM1
OyI+Cis8IUVOVElUWSBzc3RhcmYgIiYjeDIyQzY7Ij4KKzwhRU5USVRZIFN0YXIgIiYjeDIyQzY7
Ij4KKzwhRU5USVRZIGRpdm9ueCAiJiN4MjJDNzsiPgorPCFFTlRJVFkgZGl2aWRlb250aW1lcyAi
JiN4MjJDNzsiPgorPCFFTlRJVFkgYm93dGllICImI3gyMkM4OyI+Cis8IUVOVElUWSBsdGltZXMg
IiYjeDIyQzk7Ij4KKzwhRU5USVRZIHJ0aW1lcyAiJiN4MjJDQTsiPgorPCFFTlRJVFkgbHRocmVl
ICImI3gyMkNCOyI+Cis8IUVOVElUWSBsZWZ0dGhyZWV0aW1lcyAiJiN4MjJDQjsiPgorPCFFTlRJ
VFkgcnRocmVlICImI3gyMkNDOyI+Cis8IUVOVElUWSByaWdodHRocmVldGltZXMgIiYjeDIyQ0M7
Ij4KKzwhRU5USVRZIGJzaW1lICImI3gyMkNEOyI+Cis8IUVOVElUWSBiYWNrc2ltZXEgIiYjeDIy
Q0Q7Ij4KKzwhRU5USVRZIGN1dmVlICImI3gyMkNFOyI+Cis8IUVOVElUWSBjdXJseXZlZSAiJiN4
MjJDRTsiPgorPCFFTlRJVFkgY3V3ZWQgIiYjeDIyQ0Y7Ij4KKzwhRU5USVRZIGN1cmx5d2VkZ2Ug
IiYjeDIyQ0Y7Ij4KKzwhRU5USVRZIFN1YiAiJiN4MjJEMDsiPgorPCFFTlRJVFkgU3Vic2V0ICIm
I3gyMkQwOyI+Cis8IUVOVElUWSBTdXAgIiYjeDIyRDE7Ij4KKzwhRU5USVRZIFN1cHNldCAiJiN4
MjJEMTsiPgorPCFFTlRJVFkgQ2FwICImI3gyMkQyOyI+Cis8IUVOVElUWSBDdXAgIiYjeDIyRDM7
Ij4KKzwhRU5USVRZIGZvcmsgIiYjeDIyRDQ7Ij4KKzwhRU5USVRZIHBpdGNoZm9yayAiJiN4MjJE
NDsiPgorPCFFTlRJVFkgZXBhciAiJiN4MjJENTsiPgorPCFFTlRJVFkgbHRkb3QgIiYjeDIyRDY7
Ij4KKzwhRU5USVRZIGxlc3Nkb3QgIiYjeDIyRDY7Ij4KKzwhRU5USVRZIGd0ZG90ICImI3gyMkQ3
OyI+Cis8IUVOVElUWSBndHJkb3QgIiYjeDIyRDc7Ij4KKzwhRU5USVRZIExsICImI3gyMkQ4OyI+
Cis8IUVOVElUWSBuTGwgIiYjeDIyRDg7JiN4MzM4OyI+Cis8IUVOVElUWSBHZyAiJiN4MjJEOTsi
PgorPCFFTlRJVFkgZ2dnICImI3gyMkQ5OyI+Cis8IUVOVElUWSBuR2cgIiYjeDIyRDk7JiN4MzM4
OyI+Cis8IUVOVElUWSBsZWcgIiYjeDIyREE7Ij4KKzwhRU5USVRZIExlc3NFcXVhbEdyZWF0ZXIg
IiYjeDIyREE7Ij4KKzwhRU5USVRZIGxlc3NlcWd0ciAiJiN4MjJEQTsiPgorPCFFTlRJVFkgbGVz
ZyAiJiN4MjJEQTsmI3hGRTAwOyI+Cis8IUVOVElUWSBnZWwgIiYjeDIyREI7Ij4KKzwhRU5USVRZ
IGd0cmVxbGVzcyAiJiN4MjJEQjsiPgorPCFFTlRJVFkgR3JlYXRlckVxdWFsTGVzcyAiJiN4MjJE
QjsiPgorPCFFTlRJVFkgZ2VzbCAiJiN4MjJEQjsmI3hGRTAwOyI+Cis8IUVOVElUWSBjdWVwciAi
JiN4MjJERTsiPgorPCFFTlRJVFkgY3VybHllcXByZWMgIiYjeDIyREU7Ij4KKzwhRU5USVRZIGN1
ZXNjICImI3gyMkRGOyI+Cis8IUVOVElUWSBjdXJseWVxc3VjYyAiJiN4MjJERjsiPgorPCFFTlRJ
VFkgbnByY3VlICImI3gyMkUwOyI+Cis8IUVOVElUWSBOb3RQcmVjZWRlc1NsYW50RXF1YWwgIiYj
eDIyRTA7Ij4KKzwhRU5USVRZIG5zY2N1ZSAiJiN4MjJFMTsiPgorPCFFTlRJVFkgTm90U3VjY2Vl
ZHNTbGFudEVxdWFsICImI3gyMkUxOyI+Cis8IUVOVElUWSBuc3FzdWJlICImI3gyMkUyOyI+Cis8
IUVOVElUWSBOb3RTcXVhcmVTdWJzZXRFcXVhbCAiJiN4MjJFMjsiPgorPCFFTlRJVFkgbnNxc3Vw
ZSAiJiN4MjJFMzsiPgorPCFFTlRJVFkgTm90U3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjJFMzsi
PgorPCFFTlRJVFkgbG5zaW0gIiYjeDIyRTY7Ij4KKzwhRU5USVRZIGduc2ltICImI3gyMkU3OyI+
Cis8IUVOVElUWSBwcm5zaW0gIiYjeDIyRTg7Ij4KKzwhRU5USVRZIHByZWNuc2ltICImI3gyMkU4
OyI+Cis8IUVOVElUWSBzY25zaW0gIiYjeDIyRTk7Ij4KKzwhRU5USVRZIHN1Y2Nuc2ltICImI3gy
MkU5OyI+Cis8IUVOVElUWSBubHRyaSAiJiN4MjJFQTsiPgorPCFFTlRJVFkgbnRyaWFuZ2xlbGVm
dCAiJiN4MjJFQTsiPgorPCFFTlRJVFkgTm90TGVmdFRyaWFuZ2xlICImI3gyMkVBOyI+Cis8IUVO
VElUWSBucnRyaSAiJiN4MjJFQjsiPgorPCFFTlRJVFkgbnRyaWFuZ2xlcmlnaHQgIiYjeDIyRUI7
Ij4KKzwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGUgIiYjeDIyRUI7Ij4KKzwhRU5USVRZIG5sdHJp
ZSAiJiN4MjJFQzsiPgorPCFFTlRJVFkgbnRyaWFuZ2xlbGVmdGVxICImI3gyMkVDOyI+Cis8IUVO
VElUWSBOb3RMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJFQzsiPgorPCFFTlRJVFkgbnJ0cmllICIm
I3gyMkVEOyI+Cis8IUVOVElUWSBudHJpYW5nbGVyaWdodGVxICImI3gyMkVEOyI+Cis8IUVOVElU
WSBOb3RSaWdodFRyaWFuZ2xlRXF1YWwgIiYjeDIyRUQ7Ij4KKzwhRU5USVRZIHZlbGxpcCAiJiN4
MjJFRTsiPgorPCFFTlRJVFkgY3Rkb3QgIiYjeDIyRUY7Ij4KKzwhRU5USVRZIHV0ZG90ICImI3gy
MkYwOyI+Cis8IUVOVElUWSBkdGRvdCAiJiN4MjJGMTsiPgorPCFFTlRJVFkgZGlzaW4gIiYjeDIy
RjI7Ij4KKzwhRU5USVRZIGlzaW5zdiAiJiN4MjJGMzsiPgorPCFFTlRJVFkgaXNpbnMgIiYjeDIy
RjQ7Ij4KKzwhRU5USVRZIGlzaW5kb3QgIiYjeDIyRjU7Ij4KKzwhRU5USVRZIG5vdGluZG90ICIm
I3gyMkY1OyYjeDMzODsiPgorPCFFTlRJVFkgbm90aW52YyAiJiN4MjJGNjsiPgorPCFFTlRJVFkg
bm90aW52YiAiJiN4MjJGNzsiPgorPCFFTlRJVFkgaXNpbkUgIiYjeDIyRjk7Ij4KKzwhRU5USVRZ
IG5vdGluRSAiJiN4MjJGOTsmI3gzMzg7Ij4KKzwhRU5USVRZIG5pc2QgIiYjeDIyRkE7Ij4KKzwh
RU5USVRZIHhuaXMgIiYjeDIyRkI7Ij4KKzwhRU5USVRZIG5pcyAiJiN4MjJGQzsiPgorPCFFTlRJ
VFkgbm90bml2YyAiJiN4MjJGRDsiPgorPCFFTlRJVFkgbm90bml2YiAiJiN4MjJGRTsiPgorPCFF
TlRJVFkgYmFyd2VkICImI3gyMzA1OyI+Cis8IUVOVElUWSBiYXJ3ZWRnZSAiJiN4MjMwNTsiPgor
PCFFTlRJVFkgQmFyd2VkICImI3gyMzA2OyI+Cis8IUVOVElUWSBkb3VibGViYXJ3ZWRnZSAiJiN4
MjMwNjsiPgorPCFFTlRJVFkgbGNlaWwgIiYjeDIzMDg7Ij4KKzwhRU5USVRZIExlZnRDZWlsaW5n
ICImI3gyMzA4OyI+Cis8IUVOVElUWSByY2VpbCAiJiN4MjMwOTsiPgorPCFFTlRJVFkgUmlnaHRD
ZWlsaW5nICImI3gyMzA5OyI+Cis8IUVOVElUWSBsZmxvb3IgIiYjeDIzMEE7Ij4KKzwhRU5USVRZ
IExlZnRGbG9vciAiJiN4MjMwQTsiPgorPCFFTlRJVFkgcmZsb29yICImI3gyMzBCOyI+Cis8IUVO
VElUWSBSaWdodEZsb29yICImI3gyMzBCOyI+Cis8IUVOVElUWSBkcmNyb3AgIiYjeDIzMEM7Ij4K
KzwhRU5USVRZIGRsY3JvcCAiJiN4MjMwRDsiPgorPCFFTlRJVFkgdXJjcm9wICImI3gyMzBFOyI+
Cis8IUVOVElUWSB1bGNyb3AgIiYjeDIzMEY7Ij4KKzwhRU5USVRZIGJub3QgIiYjeDIzMTA7Ij4K
KzwhRU5USVRZIHByb2ZsaW5lICImI3gyMzEyOyI+Cis8IUVOVElUWSBwcm9mc3VyZiAiJiN4MjMx
MzsiPgorPCFFTlRJVFkgdGVscmVjICImI3gyMzE1OyI+Cis8IUVOVElUWSB0YXJnZXQgIiYjeDIz
MTY7Ij4KKzwhRU5USVRZIHVsY29ybiAiJiN4MjMxQzsiPgorPCFFTlRJVFkgdWxjb3JuZXIgIiYj
eDIzMUM7Ij4KKzwhRU5USVRZIHVyY29ybiAiJiN4MjMxRDsiPgorPCFFTlRJVFkgdXJjb3JuZXIg
IiYjeDIzMUQ7Ij4KKzwhRU5USVRZIGRsY29ybiAiJiN4MjMxRTsiPgorPCFFTlRJVFkgbGxjb3Ju
ZXIgIiYjeDIzMUU7Ij4KKzwhRU5USVRZIGRyY29ybiAiJiN4MjMxRjsiPgorPCFFTlRJVFkgbHJj
b3JuZXIgIiYjeDIzMUY7Ij4KKzwhRU5USVRZIGZyb3duICImI3gyMzIyOyI+Cis8IUVOVElUWSBz
ZnJvd24gIiYjeDIzMjI7Ij4KKzwhRU5USVRZIHNtaWxlICImI3gyMzIzOyI+Cis8IUVOVElUWSBz
c21pbGUgIiYjeDIzMjM7Ij4KKzwhRU5USVRZIGN5bGN0eSAiJiN4MjMyRDsiPgorPCFFTlRJVFkg
cHJvZmFsYXIgIiYjeDIzMkU7Ij4KKzwhRU5USVRZIHRvcGJvdCAiJiN4MjMzNjsiPgorPCFFTlRJ
VFkgb3ZiYXIgIiYjeDIzM0Q7Ij4KKzwhRU5USVRZIHNvbGJhciAiJiN4MjMzRjsiPgorPCFFTlRJ
VFkgYW5nemFyciAiJiN4MjM3QzsiPgorPCFFTlRJVFkgbG1vdXN0ICImI3gyM0IwOyI+Cis8IUVO
VElUWSBsbW91c3RhY2hlICImI3gyM0IwOyI+Cis8IUVOVElUWSBybW91c3QgIiYjeDIzQjE7Ij4K
KzwhRU5USVRZIHJtb3VzdGFjaGUgIiYjeDIzQjE7Ij4KKzwhRU5USVRZIHRicmsgIiYjeDIzQjQ7
Ij4KKzwhRU5USVRZIE92ZXJCcmFja2V0ICImI3gyM0I0OyI+Cis8IUVOVElUWSBiYnJrICImI3gy
M0I1OyI+Cis8IUVOVElUWSBVbmRlckJyYWNrZXQgIiYjeDIzQjU7Ij4KKzwhRU5USVRZIGJicmt0
YnJrICImI3gyM0I2OyI+Cis8IUVOVElUWSBPdmVyUGFyZW50aGVzaXMgIiYjeDIzREM7Ij4KKzwh
RU5USVRZIFVuZGVyUGFyZW50aGVzaXMgIiYjeDIzREQ7Ij4KKzwhRU5USVRZIE92ZXJCcmFjZSAi
JiN4MjNERTsiPgorPCFFTlRJVFkgVW5kZXJCcmFjZSAiJiN4MjNERjsiPgorPCFFTlRJVFkgdHJw
ZXppdW0gIiYjeDIzRTI7Ij4KKzwhRU5USVRZIGVsaW50ZXJzICImI3gyM0U3OyI+Cis8IUVOVElU
WSBibGFuayAiJiN4MjQyMzsiPgorPCFFTlRJVFkgb1MgIiYjeDI0Qzg7Ij4KKzwhRU5USVRZIGNp
cmNsZWRTICImI3gyNEM4OyI+Cis8IUVOVElUWSBib3hoICImI3gyNTAwOyI+Cis8IUVOVElUWSBI
b3Jpem9udGFsTGluZSAiJiN4MjUwMDsiPgorPCFFTlRJVFkgYm94diAiJiN4MjUwMjsiPgorPCFF
TlRJVFkgYm94ZHIgIiYjeDI1MEM7Ij4KKzwhRU5USVRZIGJveGRsICImI3gyNTEwOyI+Cis8IUVO
VElUWSBib3h1ciAiJiN4MjUxNDsiPgorPCFFTlRJVFkgYm94dWwgIiYjeDI1MTg7Ij4KKzwhRU5U
SVRZIGJveHZyICImI3gyNTFDOyI+Cis8IUVOVElUWSBib3h2bCAiJiN4MjUyNDsiPgorPCFFTlRJ
VFkgYm94aGQgIiYjeDI1MkM7Ij4KKzwhRU5USVRZIGJveGh1ICImI3gyNTM0OyI+Cis8IUVOVElU
WSBib3h2aCAiJiN4MjUzQzsiPgorPCFFTlRJVFkgYm94SCAiJiN4MjU1MDsiPgorPCFFTlRJVFkg
Ym94ViAiJiN4MjU1MTsiPgorPCFFTlRJVFkgYm94ZFIgIiYjeDI1NTI7Ij4KKzwhRU5USVRZIGJv
eERyICImI3gyNTUzOyI+Cis8IUVOVElUWSBib3hEUiAiJiN4MjU1NDsiPgorPCFFTlRJVFkgYm94
ZEwgIiYjeDI1NTU7Ij4KKzwhRU5USVRZIGJveERsICImI3gyNTU2OyI+Cis8IUVOVElUWSBib3hE
TCAiJiN4MjU1NzsiPgorPCFFTlRJVFkgYm94dVIgIiYjeDI1NTg7Ij4KKzwhRU5USVRZIGJveFVy
ICImI3gyNTU5OyI+Cis8IUVOVElUWSBib3hVUiAiJiN4MjU1QTsiPgorPCFFTlRJVFkgYm94dUwg
IiYjeDI1NUI7Ij4KKzwhRU5USVRZIGJveFVsICImI3gyNTVDOyI+Cis8IUVOVElUWSBib3hVTCAi
JiN4MjU1RDsiPgorPCFFTlRJVFkgYm94dlIgIiYjeDI1NUU7Ij4KKzwhRU5USVRZIGJveFZyICIm
I3gyNTVGOyI+Cis8IUVOVElUWSBib3hWUiAiJiN4MjU2MDsiPgorPCFFTlRJVFkgYm94dkwgIiYj
eDI1NjE7Ij4KKzwhRU5USVRZIGJveFZsICImI3gyNTYyOyI+Cis8IUVOVElUWSBib3hWTCAiJiN4
MjU2MzsiPgorPCFFTlRJVFkgYm94SGQgIiYjeDI1NjQ7Ij4KKzwhRU5USVRZIGJveGhEICImI3gy
NTY1OyI+Cis8IUVOVElUWSBib3hIRCAiJiN4MjU2NjsiPgorPCFFTlRJVFkgYm94SHUgIiYjeDI1
Njc7Ij4KKzwhRU5USVRZIGJveGhVICImI3gyNTY4OyI+Cis8IUVOVElUWSBib3hIVSAiJiN4MjU2
OTsiPgorPCFFTlRJVFkgYm94dkggIiYjeDI1NkE7Ij4KKzwhRU5USVRZIGJveFZoICImI3gyNTZC
OyI+Cis8IUVOVElUWSBib3hWSCAiJiN4MjU2QzsiPgorPCFFTlRJVFkgdWhibGsgIiYjeDI1ODA7
Ij4KKzwhRU5USVRZIGxoYmxrICImI3gyNTg0OyI+Cis8IUVOVElUWSBibG9jayAiJiN4MjU4ODsi
PgorPCFFTlRJVFkgYmxrMTQgIiYjeDI1OTE7Ij4KKzwhRU5USVRZIGJsazEyICImI3gyNTkyOyI+
Cis8IUVOVElUWSBibGszNCAiJiN4MjU5MzsiPgorPCFFTlRJVFkgc3F1ICImI3gyNUExOyI+Cis8
IUVOVElUWSBzcXVhcmUgIiYjeDI1QTE7Ij4KKzwhRU5USVRZIFNxdWFyZSAiJiN4MjVBMTsiPgor
PCFFTlRJVFkgc3F1ZiAiJiN4MjVBQTsiPgorPCFFTlRJVFkgc3F1YXJmICImI3gyNUFBOyI+Cis8
IUVOVElUWSBibGFja3NxdWFyZSAiJiN4MjVBQTsiPgorPCFFTlRJVFkgRmlsbGVkVmVyeVNtYWxs
U3F1YXJlICImI3gyNUFBOyI+Cis8IUVOVElUWSBFbXB0eVZlcnlTbWFsbFNxdWFyZSAiJiN4MjVB
QjsiPgorPCFFTlRJVFkgcmVjdCAiJiN4MjVBRDsiPgorPCFFTlRJVFkgbWFya2VyICImI3gyNUFF
OyI+Cis8IUVOVElUWSBmbHRucyAiJiN4MjVCMTsiPgorPCFFTlRJVFkgeHV0cmkgIiYjeDI1QjM7
Ij4KKzwhRU5USVRZIGJpZ3RyaWFuZ2xldXAgIiYjeDI1QjM7Ij4KKzwhRU5USVRZIHV0cmlmICIm
I3gyNUI0OyI+Cis8IUVOVElUWSBibGFja3RyaWFuZ2xlICImI3gyNUI0OyI+Cis8IUVOVElUWSB1
dHJpICImI3gyNUI1OyI+Cis8IUVOVElUWSB0cmlhbmdsZSAiJiN4MjVCNTsiPgorPCFFTlRJVFkg
cnRyaWYgIiYjeDI1Qjg7Ij4KKzwhRU5USVRZIGJsYWNrdHJpYW5nbGVyaWdodCAiJiN4MjVCODsi
PgorPCFFTlRJVFkgcnRyaSAiJiN4MjVCOTsiPgorPCFFTlRJVFkgdHJpYW5nbGVyaWdodCAiJiN4
MjVCOTsiPgorPCFFTlRJVFkgeGR0cmkgIiYjeDI1QkQ7Ij4KKzwhRU5USVRZIGJpZ3RyaWFuZ2xl
ZG93biAiJiN4MjVCRDsiPgorPCFFTlRJVFkgZHRyaWYgIiYjeDI1QkU7Ij4KKzwhRU5USVRZIGJs
YWNrdHJpYW5nbGVkb3duICImI3gyNUJFOyI+Cis8IUVOVElUWSBkdHJpICImI3gyNUJGOyI+Cis8
IUVOVElUWSB0cmlhbmdsZWRvd24gIiYjeDI1QkY7Ij4KKzwhRU5USVRZIGx0cmlmICImI3gyNUMy
OyI+Cis8IUVOVElUWSBibGFja3RyaWFuZ2xlbGVmdCAiJiN4MjVDMjsiPgorPCFFTlRJVFkgbHRy
aSAiJiN4MjVDMzsiPgorPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ICImI3gyNUMzOyI+Cis8IUVOVElU
WSBsb3ogIiYjeDI1Q0E7Ij4KKzwhRU5USVRZIGxvemVuZ2UgIiYjeDI1Q0E7Ij4KKzwhRU5USVRZ
IGNpciAiJiN4MjVDQjsiPgorPCFFTlRJVFkgdHJpZG90ICImI3gyNUVDOyI+Cis8IUVOVElUWSB4
Y2lyYyAiJiN4MjVFRjsiPgorPCFFTlRJVFkgYmlnY2lyYyAiJiN4MjVFRjsiPgorPCFFTlRJVFkg
dWx0cmkgIiYjeDI1Rjg7Ij4KKzwhRU5USVRZIHVydHJpICImI3gyNUY5OyI+Cis8IUVOVElUWSBs
bHRyaSAiJiN4MjVGQTsiPgorPCFFTlRJVFkgRW1wdHlTbWFsbFNxdWFyZSAiJiN4MjVGQjsiPgor
PCFFTlRJVFkgRmlsbGVkU21hbGxTcXVhcmUgIiYjeDI1RkM7Ij4KKzwhRU5USVRZIHN0YXJmICIm
I3gyNjA1OyI+Cis8IUVOVElUWSBiaWdzdGFyICImI3gyNjA1OyI+Cis8IUVOVElUWSBzdGFyICIm
I3gyNjA2OyI+Cis8IUVOVElUWSBwaG9uZSAiJiN4MjYwRTsiPgorPCFFTlRJVFkgZmVtYWxlICIm
I3gyNjQwOyI+Cis8IUVOVElUWSBtYWxlICImI3gyNjQyOyI+Cis8IUVOVElUWSBzcGFkZXMgIiYj
eDI2NjA7Ij4KKzwhRU5USVRZIHNwYWRlc3VpdCAiJiN4MjY2MDsiPgorPCFFTlRJVFkgY2x1YnMg
IiYjeDI2NjM7Ij4KKzwhRU5USVRZIGNsdWJzdWl0ICImI3gyNjYzOyI+Cis8IUVOVElUWSBoZWFy
dHMgIiYjeDI2NjU7Ij4KKzwhRU5USVRZIGhlYXJ0c3VpdCAiJiN4MjY2NTsiPgorPCFFTlRJVFkg
ZGlhbXMgIiYjeDI2NjY7Ij4KKzwhRU5USVRZIGRpYW1vbmRzdWl0ICImI3gyNjY2OyI+Cis8IUVO
VElUWSBzdW5nICImI3gyNjZBOyI+Cis8IUVOVElUWSBmbGF0ICImI3gyNjZEOyI+Cis8IUVOVElU
WSBuYXR1ciAiJiN4MjY2RTsiPgorPCFFTlRJVFkgbmF0dXJhbCAiJiN4MjY2RTsiPgorPCFFTlRJ
VFkgc2hhcnAgIiYjeDI2NkY7Ij4KKzwhRU5USVRZIGNoZWNrICImI3gyNzEzOyI+Cis8IUVOVElU
WSBjaGVja21hcmsgIiYjeDI3MTM7Ij4KKzwhRU5USVRZIGNyb3NzICImI3gyNzE3OyI+Cis8IUVO
VElUWSBtYWx0ICImI3gyNzIwOyI+Cis8IUVOVElUWSBtYWx0ZXNlICImI3gyNzIwOyI+Cis8IUVO
VElUWSBzZXh0ICImI3gyNzM2OyI+Cis8IUVOVElUWSBWZXJ0aWNhbFNlcGFyYXRvciAiJiN4Mjc1
ODsiPgorPCFFTlRJVFkgbGJicmsgIiYjeDI3NzI7Ij4KKzwhRU5USVRZIHJiYnJrICImI3gyNzcz
OyI+Cis8IUVOVElUWSBic29saHN1YiAiJiN4MjdDODsiPgorPCFFTlRJVFkgc3VwaHNvbCAiJiN4
MjdDOTsiPgorPCFFTlRJVFkgbG9icmsgIiYjeDI3RTY7Ij4KKzwhRU5USVRZIExlZnREb3VibGVC
cmFja2V0ICImI3gyN0U2OyI+Cis8IUVOVElUWSByb2JyayAiJiN4MjdFNzsiPgorPCFFTlRJVFkg
UmlnaHREb3VibGVCcmFja2V0ICImI3gyN0U3OyI+Cis8IUVOVElUWSBsYW5nICImI3gyN0U4OyI+
Cis8IUVOVElUWSBMZWZ0QW5nbGVCcmFja2V0ICImI3gyN0U4OyI+Cis8IUVOVElUWSBsYW5nbGUg
IiYjeDI3RTg7Ij4KKzwhRU5USVRZIHJhbmcgIiYjeDI3RTk7Ij4KKzwhRU5USVRZIFJpZ2h0QW5n
bGVCcmFja2V0ICImI3gyN0U5OyI+Cis8IUVOVElUWSByYW5nbGUgIiYjeDI3RTk7Ij4KKzwhRU5U
SVRZIExhbmcgIiYjeDI3RUE7Ij4KKzwhRU5USVRZIFJhbmcgIiYjeDI3RUI7Ij4KKzwhRU5USVRZ
IGxvYW5nICImI3gyN0VDOyI+Cis8IUVOVElUWSByb2FuZyAiJiN4MjdFRDsiPgorPCFFTlRJVFkg
eGxhcnIgIiYjeDI3RjU7Ij4KKzwhRU5USVRZIGxvbmdsZWZ0YXJyb3cgIiYjeDI3RjU7Ij4KKzwh
RU5USVRZIExvbmdMZWZ0QXJyb3cgIiYjeDI3RjU7Ij4KKzwhRU5USVRZIHhyYXJyICImI3gyN0Y2
OyI+Cis8IUVOVElUWSBsb25ncmlnaHRhcnJvdyAiJiN4MjdGNjsiPgorPCFFTlRJVFkgTG9uZ1Jp
Z2h0QXJyb3cgIiYjeDI3RjY7Ij4KKzwhRU5USVRZIHhoYXJyICImI3gyN0Y3OyI+Cis8IUVOVElU
WSBsb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3Rjc7Ij4KKzwhRU5USVRZIExvbmdMZWZ0UmlnaHRB
cnJvdyAiJiN4MjdGNzsiPgorPCFFTlRJVFkgeGxBcnIgIiYjeDI3Rjg7Ij4KKzwhRU5USVRZIExv
bmdsZWZ0YXJyb3cgIiYjeDI3Rjg7Ij4KKzwhRU5USVRZIERvdWJsZUxvbmdMZWZ0QXJyb3cgIiYj
eDI3Rjg7Ij4KKzwhRU5USVRZIHhyQXJyICImI3gyN0Y5OyI+Cis8IUVOVElUWSBMb25ncmlnaHRh
cnJvdyAiJiN4MjdGOTsiPgorPCFFTlRJVFkgRG91YmxlTG9uZ1JpZ2h0QXJyb3cgIiYjeDI3Rjk7
Ij4KKzwhRU5USVRZIHhoQXJyICImI3gyN0ZBOyI+Cis8IUVOVElUWSBMb25nbGVmdHJpZ2h0YXJy
b3cgIiYjeDI3RkE7Ij4KKzwhRU5USVRZIERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyAiJiN4MjdG
QTsiPgorPCFFTlRJVFkgeG1hcCAiJiN4MjdGQzsiPgorPCFFTlRJVFkgbG9uZ21hcHN0byAiJiN4
MjdGQzsiPgorPCFFTlRJVFkgZHppZ3JhcnIgIiYjeDI3RkY7Ij4KKzwhRU5USVRZIG52bEFyciAi
JiN4MjkwMjsiPgorPCFFTlRJVFkgbnZyQXJyICImI3gyOTAzOyI+Cis8IUVOVElUWSBudkhhcnIg
IiYjeDI5MDQ7Ij4KKzwhRU5USVRZIE1hcCAiJiN4MjkwNTsiPgorPCFFTlRJVFkgbGJhcnIgIiYj
eDI5MEM7Ij4KKzwhRU5USVRZIHJiYXJyICImI3gyOTBEOyI+Cis8IUVOVElUWSBia2Fyb3cgIiYj
eDI5MEQ7Ij4KKzwhRU5USVRZIGxCYXJyICImI3gyOTBFOyI+Cis8IUVOVElUWSByQmFyciAiJiN4
MjkwRjsiPgorPCFFTlRJVFkgZGJrYXJvdyAiJiN4MjkwRjsiPgorPCFFTlRJVFkgUkJhcnIgIiYj
eDI5MTA7Ij4KKzwhRU5USVRZIGRyYmthcm93ICImI3gyOTEwOyI+Cis8IUVOVElUWSBERG90cmFo
ZCAiJiN4MjkxMTsiPgorPCFFTlRJVFkgVXBBcnJvd0JhciAiJiN4MjkxMjsiPgorPCFFTlRJVFkg
RG93bkFycm93QmFyICImI3gyOTEzOyI+Cis8IUVOVElUWSBSYXJydGwgIiYjeDI5MTY7Ij4KKzwh
RU5USVRZIGxhdGFpbCAiJiN4MjkxOTsiPgorPCFFTlRJVFkgcmF0YWlsICImI3gyOTFBOyI+Cis8
IUVOVElUWSBsQXRhaWwgIiYjeDI5MUI7Ij4KKzwhRU5USVRZIHJBdGFpbCAiJiN4MjkxQzsiPgor
PCFFTlRJVFkgbGFycmZzICImI3gyOTFEOyI+Cis8IUVOVElUWSByYXJyZnMgIiYjeDI5MUU7Ij4K
KzwhRU5USVRZIGxhcnJiZnMgIiYjeDI5MUY7Ij4KKzwhRU5USVRZIHJhcnJiZnMgIiYjeDI5MjA7
Ij4KKzwhRU5USVRZIG53YXJoayAiJiN4MjkyMzsiPgorPCFFTlRJVFkgbmVhcmhrICImI3gyOTI0
OyI+Cis8IUVOVElUWSBzZWFyaGsgIiYjeDI5MjU7Ij4KKzwhRU5USVRZIGhrc2Vhcm93ICImI3gy
OTI1OyI+Cis8IUVOVElUWSBzd2FyaGsgIiYjeDI5MjY7Ij4KKzwhRU5USVRZIGhrc3dhcm93ICIm
I3gyOTI2OyI+Cis8IUVOVElUWSBud25lYXIgIiYjeDI5Mjc7Ij4KKzwhRU5USVRZIG5lc2VhciAi
JiN4MjkyODsiPgorPCFFTlRJVFkgdG9lYSAiJiN4MjkyODsiPgorPCFFTlRJVFkgc2Vzd2FyICIm
I3gyOTI5OyI+Cis8IUVOVElUWSB0b3NhICImI3gyOTI5OyI+Cis8IUVOVElUWSBzd253YXIgIiYj
eDI5MkE7Ij4KKzwhRU5USVRZIHJhcnJjICImI3gyOTMzOyI+Cis8IUVOVElUWSBucmFycmMgIiYj
eDI5MzM7JiN4MzM4OyI+Cis8IUVOVElUWSBjdWRhcnJyICImI3gyOTM1OyI+Cis8IUVOVElUWSBs
ZGNhICImI3gyOTM2OyI+Cis8IUVOVElUWSByZGNhICImI3gyOTM3OyI+Cis8IUVOVElUWSBjdWRh
cnJsICImI3gyOTM4OyI+Cis8IUVOVElUWSBsYXJycGwgIiYjeDI5Mzk7Ij4KKzwhRU5USVRZIGN1
cmFycm0gIiYjeDI5M0M7Ij4KKzwhRU5USVRZIGN1bGFycnAgIiYjeDI5M0Q7Ij4KKzwhRU5USVRZ
IHJhcnJwbCAiJiN4Mjk0NTsiPgorPCFFTlRJVFkgaGFycmNpciAiJiN4Mjk0ODsiPgorPCFFTlRJ
VFkgVWFycm9jaXIgIiYjeDI5NDk7Ij4KKzwhRU5USVRZIGx1cmRzaGFyICImI3gyOTRBOyI+Cis8
IUVOVElUWSBsZHJ1c2hhciAiJiN4Mjk0QjsiPgorPCFFTlRJVFkgTGVmdFJpZ2h0VmVjdG9yICIm
I3gyOTRFOyI+Cis8IUVOVElUWSBSaWdodFVwRG93blZlY3RvciAiJiN4Mjk0RjsiPgorPCFFTlRJ
VFkgRG93bkxlZnRSaWdodFZlY3RvciAiJiN4Mjk1MDsiPgorPCFFTlRJVFkgTGVmdFVwRG93blZl
Y3RvciAiJiN4Mjk1MTsiPgorPCFFTlRJVFkgTGVmdFZlY3RvckJhciAiJiN4Mjk1MjsiPgorPCFF
TlRJVFkgUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTM7Ij4KKzwhRU5USVRZIFJpZ2h0VXBWZWN0b3JC
YXIgIiYjeDI5NTQ7Ij4KKzwhRU5USVRZIFJpZ2h0RG93blZlY3RvckJhciAiJiN4Mjk1NTsiPgor
PCFFTlRJVFkgRG93bkxlZnRWZWN0b3JCYXIgIiYjeDI5NTY7Ij4KKzwhRU5USVRZIERvd25SaWdo
dFZlY3RvckJhciAiJiN4Mjk1NzsiPgorPCFFTlRJVFkgTGVmdFVwVmVjdG9yQmFyICImI3gyOTU4
OyI+Cis8IUVOVElUWSBMZWZ0RG93blZlY3RvckJhciAiJiN4Mjk1OTsiPgorPCFFTlRJVFkgTGVm
dFRlZVZlY3RvciAiJiN4Mjk1QTsiPgorPCFFTlRJVFkgUmlnaHRUZWVWZWN0b3IgIiYjeDI5NUI7
Ij4KKzwhRU5USVRZIFJpZ2h0VXBUZWVWZWN0b3IgIiYjeDI5NUM7Ij4KKzwhRU5USVRZIFJpZ2h0
RG93blRlZVZlY3RvciAiJiN4Mjk1RDsiPgorPCFFTlRJVFkgRG93bkxlZnRUZWVWZWN0b3IgIiYj
eDI5NUU7Ij4KKzwhRU5USVRZIERvd25SaWdodFRlZVZlY3RvciAiJiN4Mjk1RjsiPgorPCFFTlRJ
VFkgTGVmdFVwVGVlVmVjdG9yICImI3gyOTYwOyI+Cis8IUVOVElUWSBMZWZ0RG93blRlZVZlY3Rv
ciAiJiN4Mjk2MTsiPgorPCFFTlRJVFkgbEhhciAiJiN4Mjk2MjsiPgorPCFFTlRJVFkgdUhhciAi
JiN4Mjk2MzsiPgorPCFFTlRJVFkgckhhciAiJiN4Mjk2NDsiPgorPCFFTlRJVFkgZEhhciAiJiN4
Mjk2NTsiPgorPCFFTlRJVFkgbHVydWhhciAiJiN4Mjk2NjsiPgorPCFFTlRJVFkgbGRyZGhhciAi
JiN4Mjk2NzsiPgorPCFFTlRJVFkgcnVsdWhhciAiJiN4Mjk2ODsiPgorPCFFTlRJVFkgcmRsZGhh
ciAiJiN4Mjk2OTsiPgorPCFFTlRJVFkgbGhhcnVsICImI3gyOTZBOyI+Cis8IUVOVElUWSBsbGhh
cmQgIiYjeDI5NkI7Ij4KKzwhRU5USVRZIHJoYXJ1bCAiJiN4Mjk2QzsiPgorPCFFTlRJVFkgbHJo
YXJkICImI3gyOTZEOyI+Cis8IUVOVElUWSB1ZGhhciAiJiN4Mjk2RTsiPgorPCFFTlRJVFkgVXBF
cXVpbGlicml1bSAiJiN4Mjk2RTsiPgorPCFFTlRJVFkgZHVoYXIgIiYjeDI5NkY7Ij4KKzwhRU5U
SVRZIFJldmVyc2VVcEVxdWlsaWJyaXVtICImI3gyOTZGOyI+Cis8IUVOVElUWSBSb3VuZEltcGxp
ZXMgIiYjeDI5NzA7Ij4KKzwhRU5USVRZIGVyYXJyICImI3gyOTcxOyI+Cis8IUVOVElUWSBzaW1y
YXJyICImI3gyOTcyOyI+Cis8IUVOVElUWSBsYXJyc2ltICImI3gyOTczOyI+Cis8IUVOVElUWSBy
YXJyc2ltICImI3gyOTc0OyI+Cis8IUVOVElUWSByYXJyYXAgIiYjeDI5NzU7Ij4KKzwhRU5USVRZ
IGx0bGFyciAiJiN4Mjk3NjsiPgorPCFFTlRJVFkgZ3RyYXJyICImI3gyOTc4OyI+Cis8IUVOVElU
WSBzdWJyYXJyICImI3gyOTc5OyI+Cis8IUVOVElUWSBzdXBsYXJyICImI3gyOTdCOyI+Cis8IUVO
VElUWSBsZmlzaHQgIiYjeDI5N0M7Ij4KKzwhRU5USVRZIHJmaXNodCAiJiN4Mjk3RDsiPgorPCFF
TlRJVFkgdWZpc2h0ICImI3gyOTdFOyI+Cis8IUVOVElUWSBkZmlzaHQgIiYjeDI5N0Y7Ij4KKzwh
RU5USVRZIGxvcGFyICImI3gyOTg1OyI+Cis8IUVOVElUWSByb3BhciAiJiN4Mjk4NjsiPgorPCFF
TlRJVFkgbGJya2UgIiYjeDI5OEI7Ij4KKzwhRU5USVRZIHJicmtlICImI3gyOThDOyI+Cis8IUVO
VElUWSBsYnJrc2x1ICImI3gyOThEOyI+Cis8IUVOVElUWSByYnJrc2xkICImI3gyOThFOyI+Cis8
IUVOVElUWSBsYnJrc2xkICImI3gyOThGOyI+Cis8IUVOVElUWSByYnJrc2x1ICImI3gyOTkwOyI+
Cis8IUVOVElUWSBsYW5nZCAiJiN4Mjk5MTsiPgorPCFFTlRJVFkgcmFuZ2QgIiYjeDI5OTI7Ij4K
KzwhRU5USVRZIGxwYXJsdCAiJiN4Mjk5MzsiPgorPCFFTlRJVFkgcnBhcmd0ICImI3gyOTk0OyI+
Cis8IUVOVElUWSBndGxQYXIgIiYjeDI5OTU7Ij4KKzwhRU5USVRZIGx0clBhciAiJiN4Mjk5Njsi
PgorPCFFTlRJVFkgdnppZ3phZyAiJiN4Mjk5QTsiPgorPCFFTlRJVFkgdmFuZ3J0ICImI3gyOTlD
OyI+Cis8IUVOVElUWSBhbmdydHZiZCAiJiN4Mjk5RDsiPgorPCFFTlRJVFkgYW5nZSAiJiN4MjlB
NDsiPgorPCFFTlRJVFkgcmFuZ2UgIiYjeDI5QTU7Ij4KKzwhRU5USVRZIGR3YW5nbGUgIiYjeDI5
QTY7Ij4KKzwhRU5USVRZIHV3YW5nbGUgIiYjeDI5QTc7Ij4KKzwhRU5USVRZIGFuZ21zZGFhICIm
I3gyOUE4OyI+Cis8IUVOVElUWSBhbmdtc2RhYiAiJiN4MjlBOTsiPgorPCFFTlRJVFkgYW5nbXNk
YWMgIiYjeDI5QUE7Ij4KKzwhRU5USVRZIGFuZ21zZGFkICImI3gyOUFCOyI+Cis8IUVOVElUWSBh
bmdtc2RhZSAiJiN4MjlBQzsiPgorPCFFTlRJVFkgYW5nbXNkYWYgIiYjeDI5QUQ7Ij4KKzwhRU5U
SVRZIGFuZ21zZGFnICImI3gyOUFFOyI+Cis8IUVOVElUWSBhbmdtc2RhaCAiJiN4MjlBRjsiPgor
PCFFTlRJVFkgYmVtcHR5diAiJiN4MjlCMDsiPgorPCFFTlRJVFkgZGVtcHR5diAiJiN4MjlCMTsi
PgorPCFFTlRJVFkgY2VtcHR5diAiJiN4MjlCMjsiPgorPCFFTlRJVFkgcmFlbXB0eXYgIiYjeDI5
QjM7Ij4KKzwhRU5USVRZIGxhZW1wdHl2ICImI3gyOUI0OyI+Cis8IUVOVElUWSBvaGJhciAiJiN4
MjlCNTsiPgorPCFFTlRJVFkgb21pZCAiJiN4MjlCNjsiPgorPCFFTlRJVFkgb3BhciAiJiN4MjlC
NzsiPgorPCFFTlRJVFkgb3BlcnAgIiYjeDI5Qjk7Ij4KKzwhRU5USVRZIG9sY3Jvc3MgIiYjeDI5
QkI7Ij4KKzwhRU5USVRZIG9kc29sZCAiJiN4MjlCQzsiPgorPCFFTlRJVFkgb2xjaXIgIiYjeDI5
QkU7Ij4KKzwhRU5USVRZIG9mY2lyICImI3gyOUJGOyI+Cis8IUVOVElUWSBvbHQgIiYjeDI5QzA7
Ij4KKzwhRU5USVRZIG9ndCAiJiN4MjlDMTsiPgorPCFFTlRJVFkgY2lyc2NpciAiJiN4MjlDMjsi
PgorPCFFTlRJVFkgY2lyRSAiJiN4MjlDMzsiPgorPCFFTlRJVFkgc29sYiAiJiN4MjlDNDsiPgor
PCFFTlRJVFkgYnNvbGIgIiYjeDI5QzU7Ij4KKzwhRU5USVRZIGJveGJveCAiJiN4MjlDOTsiPgor
PCFFTlRJVFkgdHJpc2IgIiYjeDI5Q0Q7Ij4KKzwhRU5USVRZIHJ0cmlsdHJpICImI3gyOUNFOyI+
Cis8IUVOVElUWSBMZWZ0VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7Ij4KKzwhRU5USVRZIE5vdExlZnRU
cmlhbmdsZUJhciAiJiN4MjlDRjsmI3gzMzg7Ij4KKzwhRU5USVRZIFJpZ2h0VHJpYW5nbGVCYXIg
IiYjeDI5RDA7Ij4KKzwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGVCYXIgIiYjeDI5RDA7JiN4MzM4
OyI+Cis8IUVOVElUWSBpaW5maW4gIiYjeDI5REM7Ij4KKzwhRU5USVRZIGluZmludGllICImI3gy
OUREOyI+Cis8IUVOVElUWSBudmluZmluICImI3gyOURFOyI+Cis8IUVOVElUWSBlcGFyc2wgIiYj
eDI5RTM7Ij4KKzwhRU5USVRZIHNtZXBhcnNsICImI3gyOUU0OyI+Cis8IUVOVElUWSBlcXZwYXJz
bCAiJiN4MjlFNTsiPgorPCFFTlRJVFkgbG96ZiAiJiN4MjlFQjsiPgorPCFFTlRJVFkgYmxhY2ts
b3plbmdlICImI3gyOUVCOyI+Cis8IUVOVElUWSBSdWxlRGVsYXllZCAiJiN4MjlGNDsiPgorPCFF
TlRJVFkgZHNvbCAiJiN4MjlGNjsiPgorPCFFTlRJVFkgeG9kb3QgIiYjeDJBMDA7Ij4KKzwhRU5U
SVRZIGJpZ29kb3QgIiYjeDJBMDA7Ij4KKzwhRU5USVRZIHhvcGx1cyAiJiN4MkEwMTsiPgorPCFF
TlRJVFkgYmlnb3BsdXMgIiYjeDJBMDE7Ij4KKzwhRU5USVRZIHhvdGltZSAiJiN4MkEwMjsiPgor
PCFFTlRJVFkgYmlnb3RpbWVzICImI3gyQTAyOyI+Cis8IUVOVElUWSB4dXBsdXMgIiYjeDJBMDQ7
Ij4KKzwhRU5USVRZIGJpZ3VwbHVzICImI3gyQTA0OyI+Cis8IUVOVElUWSB4c3FjdXAgIiYjeDJB
MDY7Ij4KKzwhRU5USVRZIGJpZ3NxY3VwICImI3gyQTA2OyI+Cis8IUVOVElUWSBxaW50ICImI3gy
QTBDOyI+Cis8IUVOVElUWSBpaWlpbnQgIiYjeDJBMEM7Ij4KKzwhRU5USVRZIGZwYXJ0aW50ICIm
I3gyQTBEOyI+Cis8IUVOVElUWSBjaXJmbmludCAiJiN4MkExMDsiPgorPCFFTlRJVFkgYXdpbnQg
IiYjeDJBMTE7Ij4KKzwhRU5USVRZIHJwcG9saW50ICImI3gyQTEyOyI+Cis8IUVOVElUWSBzY3Bv
bGludCAiJiN4MkExMzsiPgorPCFFTlRJVFkgbnBvbGludCAiJiN4MkExNDsiPgorPCFFTlRJVFkg
cG9pbnRpbnQgIiYjeDJBMTU7Ij4KKzwhRU5USVRZIHF1YXRpbnQgIiYjeDJBMTY7Ij4KKzwhRU5U
SVRZIGludGxhcmhrICImI3gyQTE3OyI+Cis8IUVOVElUWSBwbHVzY2lyICImI3gyQTIyOyI+Cis8
IUVOVElUWSBwbHVzYWNpciAiJiN4MkEyMzsiPgorPCFFTlRJVFkgc2ltcGx1cyAiJiN4MkEyNDsi
PgorPCFFTlRJVFkgcGx1c2R1ICImI3gyQTI1OyI+Cis8IUVOVElUWSBwbHVzc2ltICImI3gyQTI2
OyI+Cis8IUVOVElUWSBwbHVzdHdvICImI3gyQTI3OyI+Cis8IUVOVElUWSBtY29tbWEgIiYjeDJB
Mjk7Ij4KKzwhRU5USVRZIG1pbnVzZHUgIiYjeDJBMkE7Ij4KKzwhRU5USVRZIGxvcGx1cyAiJiN4
MkEyRDsiPgorPCFFTlRJVFkgcm9wbHVzICImI3gyQTJFOyI+Cis8IUVOVElUWSBDcm9zcyAiJiN4
MkEyRjsiPgorPCFFTlRJVFkgdGltZXNkICImI3gyQTMwOyI+Cis8IUVOVElUWSB0aW1lc2JhciAi
JiN4MkEzMTsiPgorPCFFTlRJVFkgc21hc2hwICImI3gyQTMzOyI+Cis8IUVOVElUWSBsb3RpbWVz
ICImI3gyQTM0OyI+Cis8IUVOVElUWSByb3RpbWVzICImI3gyQTM1OyI+Cis8IUVOVElUWSBvdGlt
ZXNhcyAiJiN4MkEzNjsiPgorPCFFTlRJVFkgT3RpbWVzICImI3gyQTM3OyI+Cis8IUVOVElUWSBv
ZGl2ICImI3gyQTM4OyI+Cis8IUVOVElUWSB0cmlwbHVzICImI3gyQTM5OyI+Cis8IUVOVElUWSB0
cmltaW51cyAiJiN4MkEzQTsiPgorPCFFTlRJVFkgdHJpdGltZSAiJiN4MkEzQjsiPgorPCFFTlRJ
VFkgaXByb2QgIiYjeDJBM0M7Ij4KKzwhRU5USVRZIGludHByb2QgIiYjeDJBM0M7Ij4KKzwhRU5U
SVRZIGFtYWxnICImI3gyQTNGOyI+Cis8IUVOVElUWSBjYXBkb3QgIiYjeDJBNDA7Ij4KKzwhRU5U
SVRZIG5jdXAgIiYjeDJBNDI7Ij4KKzwhRU5USVRZIG5jYXAgIiYjeDJBNDM7Ij4KKzwhRU5USVRZ
IGNhcGFuZCAiJiN4MkE0NDsiPgorPCFFTlRJVFkgY3Vwb3IgIiYjeDJBNDU7Ij4KKzwhRU5USVRZ
IGN1cGNhcCAiJiN4MkE0NjsiPgorPCFFTlRJVFkgY2FwY3VwICImI3gyQTQ3OyI+Cis8IUVOVElU
WSBjdXBicmNhcCAiJiN4MkE0ODsiPgorPCFFTlRJVFkgY2FwYnJjdXAgIiYjeDJBNDk7Ij4KKzwh
RU5USVRZIGN1cGN1cCAiJiN4MkE0QTsiPgorPCFFTlRJVFkgY2FwY2FwICImI3gyQTRCOyI+Cis8
IUVOVElUWSBjY3VwcyAiJiN4MkE0QzsiPgorPCFFTlRJVFkgY2NhcHMgIiYjeDJBNEQ7Ij4KKzwh
RU5USVRZIGNjdXBzc20gIiYjeDJBNTA7Ij4KKzwhRU5USVRZIEFuZCAiJiN4MkE1MzsiPgorPCFF
TlRJVFkgT3IgIiYjeDJBNTQ7Ij4KKzwhRU5USVRZIGFuZGFuZCAiJiN4MkE1NTsiPgorPCFFTlRJ
VFkgb3JvciAiJiN4MkE1NjsiPgorPCFFTlRJVFkgb3JzbG9wZSAiJiN4MkE1NzsiPgorPCFFTlRJ
VFkgYW5kc2xvcGUgIiYjeDJBNTg7Ij4KKzwhRU5USVRZIGFuZHYgIiYjeDJBNUE7Ij4KKzwhRU5U
SVRZIG9ydiAiJiN4MkE1QjsiPgorPCFFTlRJVFkgYW5kZCAiJiN4MkE1QzsiPgorPCFFTlRJVFkg
b3JkICImI3gyQTVEOyI+Cis8IUVOVElUWSB3ZWRiYXIgIiYjeDJBNUY7Ij4KKzwhRU5USVRZIHNk
b3RlICImI3gyQTY2OyI+Cis8IUVOVElUWSBzaW1kb3QgIiYjeDJBNkE7Ij4KKzwhRU5USVRZIGNv
bmdkb3QgIiYjeDJBNkQ7Ij4KKzwhRU5USVRZIG5jb25nZG90ICImI3gyQTZEOyYjeDMzODsiPgor
PCFFTlRJVFkgZWFzdGVyICImI3gyQTZFOyI+Cis8IUVOVElUWSBhcGFjaXIgIiYjeDJBNkY7Ij4K
KzwhRU5USVRZIGFwRSAiJiN4MkE3MDsiPgorPCFFTlRJVFkgbmFwRSAiJiN4MkE3MDsmI3gzMzg7
Ij4KKzwhRU5USVRZIGVwbHVzICImI3gyQTcxOyI+Cis8IUVOVElUWSBwbHVzZSAiJiN4MkE3Mjsi
PgorPCFFTlRJVFkgRXNpbSAiJiN4MkE3MzsiPgorPCFFTlRJVFkgQ29sb25lICImI3gyQTc0OyI+
Cis8IUVOVElUWSBFcXVhbCAiJiN4MkE3NTsiPgorPCFFTlRJVFkgZUREb3QgIiYjeDJBNzc7Ij4K
KzwhRU5USVRZIGRkb3RzZXEgIiYjeDJBNzc7Ij4KKzwhRU5USVRZIGVxdWl2REQgIiYjeDJBNzg7
Ij4KKzwhRU5USVRZIGx0Y2lyICImI3gyQTc5OyI+Cis8IUVOVElUWSBndGNpciAiJiN4MkE3QTsi
PgorPCFFTlRJVFkgbHRxdWVzdCAiJiN4MkE3QjsiPgorPCFFTlRJVFkgZ3RxdWVzdCAiJiN4MkE3
QzsiPgorPCFFTlRJVFkgbGVzICImI3gyQTdEOyI+Cis8IUVOVElUWSBMZXNzU2xhbnRFcXVhbCAi
JiN4MkE3RDsiPgorPCFFTlRJVFkgbGVxc2xhbnQgIiYjeDJBN0Q7Ij4KKzwhRU5USVRZIG5sZXMg
IiYjeDJBN0Q7JiN4MzM4OyI+Cis8IUVOVElUWSBOb3RMZXNzU2xhbnRFcXVhbCAiJiN4MkE3RDsm
I3gzMzg7Ij4KKzwhRU5USVRZIG5sZXFzbGFudCAiJiN4MkE3RDsmI3gzMzg7Ij4KKzwhRU5USVRZ
IGdlcyAiJiN4MkE3RTsiPgorPCFFTlRJVFkgR3JlYXRlclNsYW50RXF1YWwgIiYjeDJBN0U7Ij4K
KzwhRU5USVRZIGdlcXNsYW50ICImI3gyQTdFOyI+Cis8IUVOVElUWSBuZ2VzICImI3gyQTdFOyYj
eDMzODsiPgorPCFFTlRJVFkgTm90R3JlYXRlclNsYW50RXF1YWwgIiYjeDJBN0U7JiN4MzM4OyI+
Cis8IUVOVElUWSBuZ2Vxc2xhbnQgIiYjeDJBN0U7JiN4MzM4OyI+Cis8IUVOVElUWSBsZXNkb3Qg
IiYjeDJBN0Y7Ij4KKzwhRU5USVRZIGdlc2RvdCAiJiN4MkE4MDsiPgorPCFFTlRJVFkgbGVzZG90
byAiJiN4MkE4MTsiPgorPCFFTlRJVFkgZ2VzZG90byAiJiN4MkE4MjsiPgorPCFFTlRJVFkgbGVz
ZG90b3IgIiYjeDJBODM7Ij4KKzwhRU5USVRZIGdlc2RvdG9sICImI3gyQTg0OyI+Cis8IUVOVElU
WSBsYXAgIiYjeDJBODU7Ij4KKzwhRU5USVRZIGxlc3NhcHByb3ggIiYjeDJBODU7Ij4KKzwhRU5U
SVRZIGdhcCAiJiN4MkE4NjsiPgorPCFFTlRJVFkgZ3RyYXBwcm94ICImI3gyQTg2OyI+Cis8IUVO
VElUWSBsbmUgIiYjeDJBODc7Ij4KKzwhRU5USVRZIGxuZXEgIiYjeDJBODc7Ij4KKzwhRU5USVRZ
IGduZSAiJiN4MkE4ODsiPgorPCFFTlRJVFkgZ25lcSAiJiN4MkE4ODsiPgorPCFFTlRJVFkgbG5h
cCAiJiN4MkE4OTsiPgorPCFFTlRJVFkgbG5hcHByb3ggIiYjeDJBODk7Ij4KKzwhRU5USVRZIGdu
YXAgIiYjeDJBOEE7Ij4KKzwhRU5USVRZIGduYXBwcm94ICImI3gyQThBOyI+Cis8IUVOVElUWSBs
RWcgIiYjeDJBOEI7Ij4KKzwhRU5USVRZIGxlc3NlcXFndHIgIiYjeDJBOEI7Ij4KKzwhRU5USVRZ
IGdFbCAiJiN4MkE4QzsiPgorPCFFTlRJVFkgZ3RyZXFxbGVzcyAiJiN4MkE4QzsiPgorPCFFTlRJ
VFkgbHNpbWUgIiYjeDJBOEQ7Ij4KKzwhRU5USVRZIGdzaW1lICImI3gyQThFOyI+Cis8IUVOVElU
WSBsc2ltZyAiJiN4MkE4RjsiPgorPCFFTlRJVFkgZ3NpbWwgIiYjeDJBOTA7Ij4KKzwhRU5USVRZ
IGxnRSAiJiN4MkE5MTsiPgorPCFFTlRJVFkgZ2xFICImI3gyQTkyOyI+Cis8IUVOVElUWSBsZXNn
ZXMgIiYjeDJBOTM7Ij4KKzwhRU5USVRZIGdlc2xlcyAiJiN4MkE5NDsiPgorPCFFTlRJVFkgZWxz
ICImI3gyQTk1OyI+Cis8IUVOVElUWSBlcXNsYW50bGVzcyAiJiN4MkE5NTsiPgorPCFFTlRJVFkg
ZWdzICImI3gyQTk2OyI+Cis8IUVOVElUWSBlcXNsYW50Z3RyICImI3gyQTk2OyI+Cis8IUVOVElU
WSBlbHNkb3QgIiYjeDJBOTc7Ij4KKzwhRU5USVRZIGVnc2RvdCAiJiN4MkE5ODsiPgorPCFFTlRJ
VFkgZWwgIiYjeDJBOTk7Ij4KKzwhRU5USVRZIGVnICImI3gyQTlBOyI+Cis8IUVOVElUWSBzaW1s
ICImI3gyQTlEOyI+Cis8IUVOVElUWSBzaW1nICImI3gyQTlFOyI+Cis8IUVOVElUWSBzaW1sRSAi
JiN4MkE5RjsiPgorPCFFTlRJVFkgc2ltZ0UgIiYjeDJBQTA7Ij4KKzwhRU5USVRZIExlc3NMZXNz
ICImI3gyQUExOyI+Cis8IUVOVElUWSBOb3ROZXN0ZWRMZXNzTGVzcyAiJiN4MkFBMTsmI3gzMzg7
Ij4KKzwhRU5USVRZIEdyZWF0ZXJHcmVhdGVyICImI3gyQUEyOyI+Cis8IUVOVElUWSBOb3ROZXN0
ZWRHcmVhdGVyR3JlYXRlciAiJiN4MkFBMjsmI3gzMzg7Ij4KKzwhRU5USVRZIGdsaiAiJiN4MkFB
NDsiPgorPCFFTlRJVFkgZ2xhICImI3gyQUE1OyI+Cis8IUVOVElUWSBsdGNjICImI3gyQUE2OyI+
Cis8IUVOVElUWSBndGNjICImI3gyQUE3OyI+Cis8IUVOVElUWSBsZXNjYyAiJiN4MkFBODsiPgor
PCFFTlRJVFkgZ2VzY2MgIiYjeDJBQTk7Ij4KKzwhRU5USVRZIHNtdCAiJiN4MkFBQTsiPgorPCFF
TlRJVFkgbGF0ICImI3gyQUFCOyI+Cis8IUVOVElUWSBzbXRlICImI3gyQUFDOyI+Cis8IUVOVElU
WSBzbXRlcyAiJiN4MkFBQzsmI3hGRTAwOyI+Cis8IUVOVElUWSBsYXRlICImI3gyQUFEOyI+Cis8
IUVOVElUWSBsYXRlcyAiJiN4MkFBRDsmI3hGRTAwOyI+Cis8IUVOVElUWSBidW1wRSAiJiN4MkFB
RTsiPgorPCFFTlRJVFkgcHJlICImI3gyQUFGOyI+Cis8IUVOVElUWSBwcmVjZXEgIiYjeDJBQUY7
Ij4KKzwhRU5USVRZIFByZWNlZGVzRXF1YWwgIiYjeDJBQUY7Ij4KKzwhRU5USVRZIG5wcmUgIiYj
eDJBQUY7JiN4MzM4OyI+Cis8IUVOVElUWSBucHJlY2VxICImI3gyQUFGOyYjeDMzODsiPgorPCFF
TlRJVFkgTm90UHJlY2VkZXNFcXVhbCAiJiN4MkFBRjsmI3gzMzg7Ij4KKzwhRU5USVRZIHNjZSAi
JiN4MkFCMDsiPgorPCFFTlRJVFkgc3VjY2VxICImI3gyQUIwOyI+Cis8IUVOVElUWSBTdWNjZWVk
c0VxdWFsICImI3gyQUIwOyI+Cis8IUVOVElUWSBuc2NlICImI3gyQUIwOyYjeDMzODsiPgorPCFF
TlRJVFkgbnN1Y2NlcSAiJiN4MkFCMDsmI3gzMzg7Ij4KKzwhRU5USVRZIE5vdFN1Y2NlZWRzRXF1
YWwgIiYjeDJBQjA7JiN4MzM4OyI+Cis8IUVOVElUWSBwckUgIiYjeDJBQjM7Ij4KKzwhRU5USVRZ
IHNjRSAiJiN4MkFCNDsiPgorPCFFTlRJVFkgcHJuRSAiJiN4MkFCNTsiPgorPCFFTlRJVFkgcHJl
Y25lcXEgIiYjeDJBQjU7Ij4KKzwhRU5USVRZIHNjbkUgIiYjeDJBQjY7Ij4KKzwhRU5USVRZIHN1
Y2NuZXFxICImI3gyQUI2OyI+Cis8IUVOVElUWSBwcmFwICImI3gyQUI3OyI+Cis8IUVOVElUWSBw
cmVjYXBwcm94ICImI3gyQUI3OyI+Cis8IUVOVElUWSBzY2FwICImI3gyQUI4OyI+Cis8IUVOVElU
WSBzdWNjYXBwcm94ICImI3gyQUI4OyI+Cis8IUVOVElUWSBwcm5hcCAiJiN4MkFCOTsiPgorPCFF
TlRJVFkgcHJlY25hcHByb3ggIiYjeDJBQjk7Ij4KKzwhRU5USVRZIHNjbmFwICImI3gyQUJBOyI+
Cis8IUVOVElUWSBzdWNjbmFwcHJveCAiJiN4MkFCQTsiPgorPCFFTlRJVFkgUHIgIiYjeDJBQkI7
Ij4KKzwhRU5USVRZIFNjICImI3gyQUJDOyI+Cis8IUVOVElUWSBzdWJkb3QgIiYjeDJBQkQ7Ij4K
KzwhRU5USVRZIHN1cGRvdCAiJiN4MkFCRTsiPgorPCFFTlRJVFkgc3VicGx1cyAiJiN4MkFCRjsi
PgorPCFFTlRJVFkgc3VwcGx1cyAiJiN4MkFDMDsiPgorPCFFTlRJVFkgc3VibXVsdCAiJiN4MkFD
MTsiPgorPCFFTlRJVFkgc3VwbXVsdCAiJiN4MkFDMjsiPgorPCFFTlRJVFkgc3ViZWRvdCAiJiN4
MkFDMzsiPgorPCFFTlRJVFkgc3VwZWRvdCAiJiN4MkFDNDsiPgorPCFFTlRJVFkgc3ViRSAiJiN4
MkFDNTsiPgorPCFFTlRJVFkgc3Vic2V0ZXFxICImI3gyQUM1OyI+Cis8IUVOVElUWSBuc3ViRSAi
JiN4MkFDNTsmI3gzMzg7Ij4KKzwhRU5USVRZIG5zdWJzZXRlcXEgIiYjeDJBQzU7JiN4MzM4OyI+
Cis8IUVOVElUWSBzdXBFICImI3gyQUM2OyI+Cis8IUVOVElUWSBzdXBzZXRlcXEgIiYjeDJBQzY7
Ij4KKzwhRU5USVRZIG5zdXBFICImI3gyQUM2OyYjeDMzODsiPgorPCFFTlRJVFkgbnN1cHNldGVx
cSAiJiN4MkFDNjsmI3gzMzg7Ij4KKzwhRU5USVRZIHN1YnNpbSAiJiN4MkFDNzsiPgorPCFFTlRJ
VFkgc3Vwc2ltICImI3gyQUM4OyI+Cis8IUVOVElUWSBzdWJuRSAiJiN4MkFDQjsiPgorPCFFTlRJ
VFkgc3Vic2V0bmVxcSAiJiN4MkFDQjsiPgorPCFFTlRJVFkgdnN1Ym5FICImI3gyQUNCOyYjeEZF
MDA7Ij4KKzwhRU5USVRZIHZhcnN1YnNldG5lcXEgIiYjeDJBQ0I7JiN4RkUwMDsiPgorPCFFTlRJ
VFkgc3VwbkUgIiYjeDJBQ0M7Ij4KKzwhRU5USVRZIHN1cHNldG5lcXEgIiYjeDJBQ0M7Ij4KKzwh
RU5USVRZIHZzdXBuRSAiJiN4MkFDQzsmI3hGRTAwOyI+Cis8IUVOVElUWSB2YXJzdXBzZXRuZXFx
ICImI3gyQUNDOyYjeEZFMDA7Ij4KKzwhRU5USVRZIGNzdWIgIiYjeDJBQ0Y7Ij4KKzwhRU5USVRZ
IGNzdXAgIiYjeDJBRDA7Ij4KKzwhRU5USVRZIGNzdWJlICImI3gyQUQxOyI+Cis8IUVOVElUWSBj
c3VwZSAiJiN4MkFEMjsiPgorPCFFTlRJVFkgc3Vic3VwICImI3gyQUQzOyI+Cis8IUVOVElUWSBz
dXBzdWIgIiYjeDJBRDQ7Ij4KKzwhRU5USVRZIHN1YnN1YiAiJiN4MkFENTsiPgorPCFFTlRJVFkg
c3Vwc3VwICImI3gyQUQ2OyI+Cis8IUVOVElUWSBzdXBoc3ViICImI3gyQUQ3OyI+Cis8IUVOVElU
WSBzdXBkc3ViICImI3gyQUQ4OyI+Cis8IUVOVElUWSBmb3JrdiAiJiN4MkFEOTsiPgorPCFFTlRJ
VFkgdG9wZm9yayAiJiN4MkFEQTsiPgorPCFFTlRJVFkgbWxjcCAiJiN4MkFEQjsiPgorPCFFTlRJ
VFkgRGFzaHYgIiYjeDJBRTQ7Ij4KKzwhRU5USVRZIERvdWJsZUxlZnRUZWUgIiYjeDJBRTQ7Ij4K
KzwhRU5USVRZIFZkYXNobCAiJiN4MkFFNjsiPgorPCFFTlRJVFkgQmFydiAiJiN4MkFFNzsiPgor
PCFFTlRJVFkgdkJhciAiJiN4MkFFODsiPgorPCFFTlRJVFkgdkJhcnYgIiYjeDJBRTk7Ij4KKzwh
RU5USVRZIFZiYXIgIiYjeDJBRUI7Ij4KKzwhRU5USVRZIE5vdCAiJiN4MkFFQzsiPgorPCFFTlRJ
VFkgYk5vdCAiJiN4MkFFRDsiPgorPCFFTlRJVFkgcm5taWQgIiYjeDJBRUU7Ij4KKzwhRU5USVRZ
IGNpcm1pZCAiJiN4MkFFRjsiPgorPCFFTlRJVFkgbWlkY2lyICImI3gyQUYwOyI+Cis8IUVOVElU
WSB0b3BjaXIgIiYjeDJBRjE7Ij4KKzwhRU5USVRZIG5ocGFyICImI3gyQUYyOyI+Cis8IUVOVElU
WSBwYXJzaW0gIiYjeDJBRjM7Ij4KKzwhRU5USVRZIHBhcnNsICImI3gyQUZEOyI+Cis8IUVOVElU
WSBucGFyc2wgIiYjeDJBRkQ7JiN4MjBFNTsiPgorPCFFTlRJVFkgZmZsaWcgIiYjeEZCMDA7Ij4K
KzwhRU5USVRZIGZpbGlnICImI3hGQjAxOyI+Cis8IUVOVElUWSBmbGxpZyAiJiN4RkIwMjsiPgor
PCFFTlRJVFkgZmZpbGlnICImI3hGQjAzOyI+Cis8IUVOVElUWSBmZmxsaWcgIiYjeEZCMDQ7Ij4K
KzwhRU5USVRZIEFzY3IgIiYjeDFENDlDOyI+Cis8IUVOVElUWSBDc2NyICImI3gxRDQ5RTsiPgor
PCFFTlRJVFkgRHNjciAiJiN4MUQ0OUY7Ij4KKzwhRU5USVRZIEdzY3IgIiYjeDFENEEyOyI+Cis8
IUVOVElUWSBKc2NyICImI3gxRDRBNTsiPgorPCFFTlRJVFkgS3NjciAiJiN4MUQ0QTY7Ij4KKzwh
RU5USVRZIE5zY3IgIiYjeDFENEE5OyI+Cis8IUVOVElUWSBPc2NyICImI3gxRDRBQTsiPgorPCFF
TlRJVFkgUHNjciAiJiN4MUQ0QUI7Ij4KKzwhRU5USVRZIFFzY3IgIiYjeDFENEFDOyI+Cis8IUVO
VElUWSBTc2NyICImI3gxRDRBRTsiPgorPCFFTlRJVFkgVHNjciAiJiN4MUQ0QUY7Ij4KKzwhRU5U
SVRZIFVzY3IgIiYjeDFENEIwOyI+Cis8IUVOVElUWSBWc2NyICImI3gxRDRCMTsiPgorPCFFTlRJ
VFkgV3NjciAiJiN4MUQ0QjI7Ij4KKzwhRU5USVRZIFhzY3IgIiYjeDFENEIzOyI+Cis8IUVOVElU
WSBZc2NyICImI3gxRDRCNDsiPgorPCFFTlRJVFkgWnNjciAiJiN4MUQ0QjU7Ij4KKzwhRU5USVRZ
IGFzY3IgIiYjeDFENEI2OyI+Cis8IUVOVElUWSBic2NyICImI3gxRDRCNzsiPgorPCFFTlRJVFkg
Y3NjciAiJiN4MUQ0Qjg7Ij4KKzwhRU5USVRZIGRzY3IgIiYjeDFENEI5OyI+Cis8IUVOVElUWSBm
c2NyICImI3gxRDRCQjsiPgorPCFFTlRJVFkgaHNjciAiJiN4MUQ0QkQ7Ij4KKzwhRU5USVRZIGlz
Y3IgIiYjeDFENEJFOyI+Cis8IUVOVElUWSBqc2NyICImI3gxRDRCRjsiPgorPCFFTlRJVFkga3Nj
ciAiJiN4MUQ0QzA7Ij4KKzwhRU5USVRZIGxzY3IgIiYjeDFENEMxOyI+Cis8IUVOVElUWSBtc2Ny
ICImI3gxRDRDMjsiPgorPCFFTlRJVFkgbnNjciAiJiN4MUQ0QzM7Ij4KKzwhRU5USVRZIHBzY3Ig
IiYjeDFENEM1OyI+Cis8IUVOVElUWSBxc2NyICImI3gxRDRDNjsiPgorPCFFTlRJVFkgcnNjciAi
JiN4MUQ0Qzc7Ij4KKzwhRU5USVRZIHNzY3IgIiYjeDFENEM4OyI+Cis8IUVOVElUWSB0c2NyICIm
I3gxRDRDOTsiPgorPCFFTlRJVFkgdXNjciAiJiN4MUQ0Q0E7Ij4KKzwhRU5USVRZIHZzY3IgIiYj
eDFENENCOyI+Cis8IUVOVElUWSB3c2NyICImI3gxRDRDQzsiPgorPCFFTlRJVFkgeHNjciAiJiN4
MUQ0Q0Q7Ij4KKzwhRU5USVRZIHlzY3IgIiYjeDFENENFOyI+Cis8IUVOVElUWSB6c2NyICImI3gx
RDRDRjsiPgorPCFFTlRJVFkgQWZyICImI3gxRDUwNDsiPgorPCFFTlRJVFkgQmZyICImI3gxRDUw
NTsiPgorPCFFTlRJVFkgRGZyICImI3gxRDUwNzsiPgorPCFFTlRJVFkgRWZyICImI3gxRDUwODsi
PgorPCFFTlRJVFkgRmZyICImI3gxRDUwOTsiPgorPCFFTlRJVFkgR2ZyICImI3gxRDUwQTsiPgor
PCFFTlRJVFkgSmZyICImI3gxRDUwRDsiPgorPCFFTlRJVFkgS2ZyICImI3gxRDUwRTsiPgorPCFF
TlRJVFkgTGZyICImI3gxRDUwRjsiPgorPCFFTlRJVFkgTWZyICImI3gxRDUxMDsiPgorPCFFTlRJ
VFkgTmZyICImI3gxRDUxMTsiPgorPCFFTlRJVFkgT2ZyICImI3gxRDUxMjsiPgorPCFFTlRJVFkg
UGZyICImI3gxRDUxMzsiPgorPCFFTlRJVFkgUWZyICImI3gxRDUxNDsiPgorPCFFTlRJVFkgU2Zy
ICImI3gxRDUxNjsiPgorPCFFTlRJVFkgVGZyICImI3gxRDUxNzsiPgorPCFFTlRJVFkgVWZyICIm
I3gxRDUxODsiPgorPCFFTlRJVFkgVmZyICImI3gxRDUxOTsiPgorPCFFTlRJVFkgV2ZyICImI3gx
RDUxQTsiPgorPCFFTlRJVFkgWGZyICImI3gxRDUxQjsiPgorPCFFTlRJVFkgWWZyICImI3gxRDUx
QzsiPgorPCFFTlRJVFkgYWZyICImI3gxRDUxRTsiPgorPCFFTlRJVFkgYmZyICImI3gxRDUxRjsi
PgorPCFFTlRJVFkgY2ZyICImI3gxRDUyMDsiPgorPCFFTlRJVFkgZGZyICImI3gxRDUyMTsiPgor
PCFFTlRJVFkgZWZyICImI3gxRDUyMjsiPgorPCFFTlRJVFkgZmZyICImI3gxRDUyMzsiPgorPCFF
TlRJVFkgZ2ZyICImI3gxRDUyNDsiPgorPCFFTlRJVFkgaGZyICImI3gxRDUyNTsiPgorPCFFTlRJ
VFkgaWZyICImI3gxRDUyNjsiPgorPCFFTlRJVFkgamZyICImI3gxRDUyNzsiPgorPCFFTlRJVFkg
a2ZyICImI3gxRDUyODsiPgorPCFFTlRJVFkgbGZyICImI3gxRDUyOTsiPgorPCFFTlRJVFkgbWZy
ICImI3gxRDUyQTsiPgorPCFFTlRJVFkgbmZyICImI3gxRDUyQjsiPgorPCFFTlRJVFkgb2ZyICIm
I3gxRDUyQzsiPgorPCFFTlRJVFkgcGZyICImI3gxRDUyRDsiPgorPCFFTlRJVFkgcWZyICImI3gx
RDUyRTsiPgorPCFFTlRJVFkgcmZyICImI3gxRDUyRjsiPgorPCFFTlRJVFkgc2ZyICImI3gxRDUz
MDsiPgorPCFFTlRJVFkgdGZyICImI3gxRDUzMTsiPgorPCFFTlRJVFkgdWZyICImI3gxRDUzMjsi
PgorPCFFTlRJVFkgdmZyICImI3gxRDUzMzsiPgorPCFFTlRJVFkgd2ZyICImI3gxRDUzNDsiPgor
PCFFTlRJVFkgeGZyICImI3gxRDUzNTsiPgorPCFFTlRJVFkgeWZyICImI3gxRDUzNjsiPgorPCFF
TlRJVFkgemZyICImI3gxRDUzNzsiPgorPCFFTlRJVFkgQW9wZiAiJiN4MUQ1Mzg7Ij4KKzwhRU5U
SVRZIEJvcGYgIiYjeDFENTM5OyI+Cis8IUVOVElUWSBEb3BmICImI3gxRDUzQjsiPgorPCFFTlRJ
VFkgRW9wZiAiJiN4MUQ1M0M7Ij4KKzwhRU5USVRZIEZvcGYgIiYjeDFENTNEOyI+Cis8IUVOVElU
WSBHb3BmICImI3gxRDUzRTsiPgorPCFFTlRJVFkgSW9wZiAiJiN4MUQ1NDA7Ij4KKzwhRU5USVRZ
IEpvcGYgIiYjeDFENTQxOyI+Cis8IUVOVElUWSBLb3BmICImI3gxRDU0MjsiPgorPCFFTlRJVFkg
TG9wZiAiJiN4MUQ1NDM7Ij4KKzwhRU5USVRZIE1vcGYgIiYjeDFENTQ0OyI+Cis8IUVOVElUWSBP
b3BmICImI3gxRDU0NjsiPgorPCFFTlRJVFkgU29wZiAiJiN4MUQ1NEE7Ij4KKzwhRU5USVRZIFRv
cGYgIiYjeDFENTRCOyI+Cis8IUVOVElUWSBVb3BmICImI3gxRDU0QzsiPgorPCFFTlRJVFkgVm9w
ZiAiJiN4MUQ1NEQ7Ij4KKzwhRU5USVRZIFdvcGYgIiYjeDFENTRFOyI+Cis8IUVOVElUWSBYb3Bm
ICImI3gxRDU0RjsiPgorPCFFTlRJVFkgWW9wZiAiJiN4MUQ1NTA7Ij4KKzwhRU5USVRZIGFvcGYg
IiYjeDFENTUyOyI+Cis8IUVOVElUWSBib3BmICImI3gxRDU1MzsiPgorPCFFTlRJVFkgY29wZiAi
JiN4MUQ1NTQ7Ij4KKzwhRU5USVRZIGRvcGYgIiYjeDFENTU1OyI+Cis8IUVOVElUWSBlb3BmICIm
I3gxRDU1NjsiPgorPCFFTlRJVFkgZm9wZiAiJiN4MUQ1NTc7Ij4KKzwhRU5USVRZIGdvcGYgIiYj
eDFENTU4OyI+Cis8IUVOVElUWSBob3BmICImI3gxRDU1OTsiPgorPCFFTlRJVFkgaW9wZiAiJiN4
MUQ1NUE7Ij4KKzwhRU5USVRZIGpvcGYgIiYjeDFENTVCOyI+Cis8IUVOVElUWSBrb3BmICImI3gx
RDU1QzsiPgorPCFFTlRJVFkgbG9wZiAiJiN4MUQ1NUQ7Ij4KKzwhRU5USVRZIG1vcGYgIiYjeDFE
NTVFOyI+Cis8IUVOVElUWSBub3BmICImI3gxRDU1RjsiPgorPCFFTlRJVFkgb29wZiAiJiN4MUQ1
NjA7Ij4KKzwhRU5USVRZIHBvcGYgIiYjeDFENTYxOyI+Cis8IUVOVElUWSBxb3BmICImI3gxRDU2
MjsiPgorPCFFTlRJVFkgcm9wZiAiJiN4MUQ1NjM7Ij4KKzwhRU5USVRZIHNvcGYgIiYjeDFENTY0
OyI+Cis8IUVOVElUWSB0b3BmICImI3gxRDU2NTsiPgorPCFFTlRJVFkgdW9wZiAiJiN4MUQ1NjY7
Ij4KKzwhRU5USVRZIHZvcGYgIiYjeDFENTY3OyI+Cis8IUVOVElUWSB3b3BmICImI3gxRDU2ODsi
PgorPCFFTlRJVFkgeG9wZiAiJiN4MUQ1Njk7Ij4KKzwhRU5USVRZIHlvcGYgIiYjeDFENTZBOyI+
Cis8IUVOVElUWSB6b3BmICImI3gxRDU2QjsiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy9fX2luaXRf
Xy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2Zk
OTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9tYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL19faW5pdF9f
LnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8g
c2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWU1Mzk5ZjQ4MmI5ZjY0
ODg2MjNmMDcyODA2ODJiY2I3OTljYmFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0
X1hNTFBhcnNlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9pdGVtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlm
ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfdXRpbHMu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNzU5ZmVmOTAzNWIwMDZk
YjRjNzA5NzY1NjU3YzJlNDYyNmFmODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMwICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFu
ZHMuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvZG93bmxvYWQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2pzb25saWIucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2xv
Zy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvbWFuaWZlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RwYXRocy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdHlwZWRhdGEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXRpbHMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0NPTlRSSUJVVElORwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjQxNWY1ZDAxMWYzZTIyYmU1NTRmZjc1NWMwNzgwNTIyMTNh
ZmE5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L0NPTlRSSUJVVElORworKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLUZvciBpbnN0cnVj
dGlvbnMgZm9yIGNvbnRyaWJ1dGluZyBjb2RlLCBwbGVhc2UgcmVhZDoKLWh0dHBzOi8vZ2l0aHVi
LmNvbS9nb29nbGUvcHl3ZWJzb2NrZXQvd2lraS9Db2RlUmV2aWV3SW5zdHJ1Y3Rpb24KLQotWW91
IG11c3QgY29tcGxldGUgdGhlIEluZGl2aWR1YWwgQ29udHJpYnV0b3IgTGljZW5zZSBBZ3JlZW1l
bnQuCi1odHRwczovL2NsYS5kZXZlbG9wZXJzLmdvb2dsZS5jb20vYWJvdXQvZ29vZ2xlLWluZGl2
aWR1YWwKLVlvdSBjYW4gZG8gdGhpcyBvbmxpbmUsIGFuZCBpdCBvbmx5IHRha2VzIGEgbWludXRl
LgotCi1JZiB5b3UgYXJlIGNvbnRyaWJ1dGluZyBvbiBiZWhhbGYgb2YgYSBjb3Jwb3JhdGlvbiwg
eW91IG11c3QgZmlsbCBvdXQgdGhlCi1Db3Jwb3JhdGUgQ29udHJpYnV0b3IgTGljZW5zZSBBZ3Jl
ZW1lbnQKLWh0dHBzOi8vY2xhLmRldmVsb3BlcnMuZ29vZ2xlLmNvbS9hYm91dC9nb29nbGUtY29y
cG9yYXRlCi1hbmQgc2VuZCBpdCB0byB1cyBhcyBkZXNjcmliZWQgb24gdGhhdCBwYWdlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9MSUNFTlNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5ODlkMDJlNGNkMDkyMzc4MDZmN2RmOGJlYWVjYzY5MTUyNzM0MjhlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5TRQor
KysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUNvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5j
LgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6
Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmli
dXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1E
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxOTI1Njg4MmM1NmZlYjcyODEyYzk5YzhhODM3OTk3OWU2M2U0YTBj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTUFO
SUZFU1QuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLWluY2x1ZGUgQ09QWUlORwot
aW5jbHVkZSBNQU5JRkVTVC5pbgotaW5jbHVkZSBSRUFETUUKLXJlY3Vyc2l2ZS1pbmNsdWRlIGV4
YW1wbGUgKi5weQotcmVjdXJzaXZlLWluY2x1ZGUgbW9kX3B5d2Vic29ja2V0ICoucHkKLXJlY3Vy
c2l2ZS1pbmNsdWRlIHRlc3QgKi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JF
QURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhjNzU4ZjVlZWY0YzczMTg5MjY0
MWRlMzMzZTVkNzVkMTBhM2U1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUlO
U1RBTEwKLQotVG8gaW5zdGFsbCB0aGlzIHBhY2thZ2UgdG8gdGhlIHN5c3RlbSwgcnVuIHRoaXM6
Ci0kIHB5dGhvbiBzZXR1cC5weSBidWlsZAotJCBzdWRvIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxs
Ci0KLVRvIGluc3RhbGwgdGhpcyBwYWNrYWdlIGFzIGEgbm9ybWFsIHVzZXIsIHJ1biB0aGlzIGlu
c3RlYWQ6Ci0kIHB5dGhvbiBzZXR1cC5weSBidWlsZAotJCBweXRob24gc2V0dXAucHkgaW5zdGFs
bCAtLXVzZXIKLQotTEFVTkNICi0KLVRvIHVzZSBweXdlYnNvY2tldCBhcyBBcGFjaGUgbW9kdWxl
LCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVudDoKLSQgcHlkb2MgbW9kX3B5d2Vic29ja2V0
Ci0KLVRvIHVzZSBweXdlYnNvY2tldCBhcyBzdGFuZGFsb25lIHNlcnZlciwgcnVuIHRoaXMgdG8g
cmVhZCB0aGUgZG9jdW1lbnQ6Ci0kIHB5ZG9jIG1vZF9weXdlYnNvY2tldC5zdGFuZGFsb25lCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1kCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZThlOTEwYTg0ZWY5OTU2NjllYTA3MjNmMWJjN2YyOTkzNDY2NTg5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVB
RE1FLm1kCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0KLSMgcHl3ZWJzb2NrZXQgIwot
Ci1UaGUgcHl3ZWJzb2NrZXQgcHJvamVjdCBhaW1zIHRvIHByb3ZpZGUgYSBbV2ViU29ja2V0XSho
dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NSkgc3RhbmRhbG9uZSBzZXJ2ZXIgYW5k
IGEgV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgW0FwYWNoZSBIVFRQIFNlcnZlcl0oaHR0cHM6Ly9o
dHRwZC5hcGFjaGUub3JnLyksIG1vZFxfcHl3ZWJzb2NrZXQuCi0KLXB5d2Vic29ja2V0IGlzIGlu
dGVuZGVkIGZvciAqKnRlc3RpbmcqKiBvciAqKmV4cGVyaW1lbnRhbCoqIHB1cnBvc2VzLgotCi1Q
bGVhc2Ugc2VlIFtXaWtpXSguLi8uLi93aWtpKSBmb3IgbW9yZSBkZXRhaWxzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJv
cnRfaGFuZHNoYWtlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA4MDIz
YTFmZTkxZTJmMjk3N2IxNjNmOTc3ZGFlNjg1MDAwOWFhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dz
aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tl
dF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0
ZWRCeVVzZXJFeGNlcHRpb24oCi0gICAgICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlIikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgotICAgIHBhc3MKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9hYm9ydF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyYmJmMDA1ZjZhMzdjNjA5ZTE2YWJkZTRkZjk0MDI0MjY4ZDBk
YWVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9hYm9ydF93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENv
cHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0K
LQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MK
LQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIGhh
bmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3ZWJf
c29ja2V0X3RyYW5zZmVyX2RhdGEiKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4NjljZDdlMWVlNjUzZDU5ZjA0YjgwMmZmMzRjOGQwODEzMTdjYTg5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZl
cl9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi08IS0tCi1D
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5BcnJheUJ1
ZmZlciBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLXZhciBQUklOVF9TSVpFID0gdHJ1ZTsKLQotLy8gSW5pdGlhbCBzaXplIG9mIGFy
cmF5cy4KLXZhciBTVEFSVF9TSVpFID0gMTAgKiAxMDI0OwotLy8gU3RvcHMgYmVuY2htYXJrIHdo
ZW4gdGhlIHNpemUgb2YgYW4gYXJyYXkgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLXZhciBTVE9Q
X1RIUkVTSE9MRCA9IDEwMDAwMCAqIDEwMjQ7Ci0vLyBJZiB0aGUgc2l6ZSBvZiBlYWNoIGFycmF5
IGlzIHNtYWxsLCB3cml0ZS9yZWFkIHRoZSBhcnJheSBtdWx0aXBsZSB0aW1lcwotLy8gdW50aWwg
dGhlIHN1bSBvZiBzaXplcyByZWFjaGVzIHRoaXMgdGhyZXNob2xkLgotdmFyIE1JTl9UT1RBTCA9
IDEwMDAwMCAqIDEwMjQ7Ci12YXIgTVVMVElQTElFUlMgPSBbNSwgMl07Ci0KLS8vIFJlcGVhdCBi
ZW5jaG1hcmsgZm9yIHNldmVyYWwgdGltZXMgdG8gbWVhc3VyZSBwZXJmb3JtYW5jZSBvZiBvcHRp
bWl6ZWQKLS8vIChzdWNoIGFzIEpJVCkgcnVuLgotdmFyIFJFUEVBVF9GT1JfV0FSTVVQID0gMzsK
LQotZnVuY3Rpb24gd3JpdGVCZW5jaG1hcmsoc2l6ZSwgbWluVG90YWwpIHsKLSAgdmFyIHRvdGFs
U2l6ZSA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBtaW5Ub3RhbCkgewotICAgIHZhciBhcnJh
eUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgIC8vIFdyaXRlICdhJ3MuCi0g
ICAgZmlsbEFycmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDYxKTsKLQotICAgIHRvdGFsU2l6ZSAr
PSBzaXplOwotICB9Ci0gIHJldHVybiB0b3RhbFNpemU7Ci19Ci0KLWZ1bmN0aW9uIHJlYWRCZW5j
aG1hcmsoc2l6ZSwgbWluVG90YWwpIHsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHdoaWxlICh0
b3RhbFNpemUgPCBtaW5Ub3RhbCkgewotICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcihzaXplKTsKLQotICAgIGlmICghdmVyaWZ5QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4
MDApKSB7Ci0gICAgICBxdWV1ZUxvZygnVmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgcmV0
dXJuIC0xOwotICAgIH0KLQotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci0gIHJldHVybiB0
b3RhbFNpemU7Ci19Ci0KLWZ1bmN0aW9uIHJ1bkJlbmNobWFyayhiZW5jaG1hcmtGdW5jdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgICBzaXplLAotICAgICAgICAgICAgICAgICAgICAgIHN0b3BU
aHJlc2hvbGQsCi0gICAgICAgICAgICAgICAgICAgICAgbWluVG90YWwsCi0gICAgICAgICAgICAg
ICAgICAgICAgbXVsdGlwbGllcnMsCi0gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllcklu
ZGV4KSB7Ci0gIHdoaWxlIChzaXplIDw9IHN0b3BUaHJlc2hvbGQpIHsKLSAgICB2YXIgbWF4U3Bl
ZWQgPSAwOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSRVBFQVRfRk9SX1dBUk1VUDsgKytp
KSB7Ci0gICAgICB2YXIgc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gICAgICB2
YXIgdG90YWxTaXplID0gYmVuY2htYXJrRnVuY3Rpb24oc2l6ZSwgbWluVG90YWwpOwotCi0gICAg
ICBtYXhTcGVlZCA9IE1hdGgubWF4KG1heFNwZWVkLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBjYWxjdWxhdGVTcGVlZEluS0IodG90YWxTaXplLCBzdGFydFRpbWVJbk1zKSk7Ci0gICAgfQot
ICAgIHF1ZXVlTG9nKGZvcm1hdFJlc3VsdEluS2lCKHNpemUsIG1heFNwZWVkLCBQUklOVF9TSVpF
KSk7Ci0KLSAgICBzaXplICo9IG11bHRpcGxpZXJzW211bHRpcGxpZXJJbmRleF07Ci0gICAgbXVs
dGlwbGllckluZGV4ID0gKG11bHRpcGxpZXJJbmRleCArIDEpICUgbXVsdGlwbGllcnMubGVuZ3Ro
OwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJ1bkJlbmNobWFya3MoKSB7Ci0gIHF1ZXVlTG9nKCdNZXNz
YWdlIHNpemUgaW4gS2lCLCBTcGVlZCBpbiBrQi9zJyk7Ci0KLSAgcXVldWVMb2coJ1dyaXRlIGJl
bmNobWFyaycpOwotICBydW5CZW5jaG1hcmsoCi0gICAgICB3cml0ZUJlbmNobWFyaywgU1RBUlRf
U0laRSwgU1RPUF9USFJFU0hPTEQsIE1JTl9UT1RBTCwgTVVMVElQTElFUlMsIDApOwotICBxdWV1
ZUxvZygnRmluaXNoZWQnKTsKLQotICBxdWV1ZUxvZygnUmVhZCBiZW5jaG1hcmsnKTsKLSAgcnVu
QmVuY2htYXJrKAotICAgICAgcmVhZEJlbmNobWFyaywgU1RBUlRfU0laRSwgU1RPUF9USFJFU0hP
TEQsIE1JTl9UT1RBTCwgTVVMVElQTElFUlMsIDApOwotICBhZGRUb0xvZygnRmluaXNoZWQnKTsK
LX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xvZycpOwotCi0gIHF1ZXVlTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93
ZXJDYXNlKCkpOwotCi0gIGFkZFRvTG9nKCdTdGFydGVkLi4uJyk7Ci0KLSAgc2V0VGltZW91dChy
dW5CZW5jaG1hcmtzLCAwKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
ImluaXQoKSI+Ci08dGV4dGFyZWEKLSAgICBpZD0ibG9nIiByb3dzPSI1MCIgc3R5bGU9IndpZHRo
OiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2JlbmNoX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNjdjYTdkODk1NWZjMTYzZDUwMDFjZDg4
MTJlNmFlMjBjMTYyOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2JlbmNoX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYwICsw
LDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkEgc2ltcGxlIGxvYWQgdGVzdGVyIGZvciBX
ZWJTb2NrZXQgY2xpZW50cy4KLQotQSBjbGllbnQgcHJvZ3JhbSBzZW5kcyBhIG1lc3NhZ2UgZm9y
bWF0dGVkIGFzICI8dGltZT4gPGNvdW50PiA8bWVzc2FnZT4iIHRvCi10aGlzIGhhbmRsZXIuIFRo
aXMgaGFuZGxlciBzdGFydHMgc2VuZGluZyB0b3RhbCA8Y291bnQ+IFdlYlNvY2tldCBtZXNzYWdl
cwotY29udGFpbmluZyA8bWVzc2FnZT4gZXZlcnkgPHRpbWU+IHNlY29uZHMuIDx0aW1lPiBjYW4g
YmUgYSBmbG9hdGluZyBwb2ludAotdmFsdWUuIDxjb3VudD4gbXVzdCBiZSBhbiBpbnRlZ2VyIHZh
bHVlLgotIiIiCi0KLQotaW1wb3J0IHRpbWUKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcyAgIyBBbHdheXMgYWNjZXB0LgotCi0KLWRlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgbGluZSA9IHJlcXVlc3Qud3Nf
c3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgcGFydHMgPSBsaW5lLnNwbGl0KCcgJykKLSAg
ICBpZiBsZW4ocGFydHMpICE9IDM6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCBwYXJh
bWV0ZXIgZm9ybWF0JykKLSAgICB3YWl0ID0gZmxvYXQocGFydHNbMF0pCi0gICAgY291bnQgPSBp
bnQocGFydHNbMV0pCi0gICAgbWVzc2FnZSA9IHBhcnRzWzJdCi0gICAgZm9yIGkgaW4geHJhbmdl
KGNvdW50KToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1lc3NhZ2Up
Ci0gICAgICAgIHRpbWUuc2xlZXAod2FpdCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1h
cmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkyMzg2M2E5OTU2OTc2M2Fi
Nzk3NmE3ZGU3ODIwNWNhNjE5MmEyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxNzUgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi1BbGwg
cmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4K
LSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1B
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTxodG1s
PgotPGhlYWQ+Ci08dGl0bGU+V2ViU29ja2V0IGJlbmNobWFyazwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJiZW5jaG1hcmsuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBh
ZGRyZXNzQm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0Q29uZmlnKCkgewotICByZXR1cm4gewot
ICAgIHByZWZpeFVybDogYWRkcmVzc0JveC52YWx1ZSwKLSAgICBwcmludFNpemU6IGdldEJvb2xG
cm9tQ2hlY2tCb3goJ3ByaW50c2l6ZScpLAotICAgIG51bVNvY2tldHM6IGdldEludEZyb21JbnB1
dCgnbnVtc29ja2V0cycpLAotICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdlcy4KLSAgICBu
dW1JdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwKLSAgICBudW1X
YXJtVXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJhdGlvbnMnKSwK
LSAgICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyksCi0gICAgLy8gU3Rv
cHMgYmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRoaXMgdGhyZXNo
b2xkLgotICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRocmVzaG9sZCcp
LAotICAgIC8vIElmIHRoZSBzaXplIG9mIGVhY2ggbWVzc2FnZSBpcyBzbWFsbCwgc2VuZC9yZWNl
aXZlIG11bHRpcGxlIG1lc3NhZ2VzCi0gICAgLy8gdW50aWwgdGhlIHN1bSBvZiBzaXplcyByZWFj
aGVzIHRoaXMgdGhyZXNob2xkLgotICAgIG1pblRvdGFsOiBnZXRJbnRGcm9tSW5wdXQoJ21pbnRv
dGFsJyksCi0gICAgbXVsdGlwbGllcnM6IGdldEZsb2F0QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxp
ZXJzJyksCi0gICAgdmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScp
LAotICAgIGFkZFRvTG9nOiBhZGRUb0xvZywKLSAgICBhZGRUb1N1bW1hcnk6IGFkZFRvU3VtbWFy
eSwKLSAgICBtZWFzdXJlVmFsdWU6IG1lYXN1cmVWYWx1ZSwKLSAgICBub3RpZnlBYm9ydDogbm90
aWZ5QWJvcnQKLSAgfTsKLX0KLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJrKCkgewotICB2YXIg
Y29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVj
a0JveCgnd29ya2VyJyksICdzZW5kQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2
ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihj
b25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAncmVjZWl2ZUJlbmNobWFyaycp
OwotfQotCi1mdW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0
Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2Vy
JyksICdiYXRjaEJlbmNobWFyaycpOwotfQotCi1mdW5jdGlvbiBvblN0b3AoKSB7Ci0gIHZhciBj
b25maWcgPSBnZXRDb25maWcoKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNr
Qm94KCd3b3JrZXInKSwgJ3N0b3AnKTsKLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRkcmVz
c0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3N1bW1hcnknKTsKLQotICB2YXIgc2NoZW1lID0gd2luZG93LmxvY2F0
aW9uLnByb3RvY29sID09ICdodHRwczonID8gJ3dzczovLycgOiAnd3M6Ly8nOwotICB2YXIgZGVm
YXVsdEFkZHJlc3MgPSBzY2hlbWUgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYmVuY2htYXJr
X2hlbHBlcic7Ci0KLSAgYWRkcmVzc0JveC52YWx1ZSA9IGRlZmF1bHRBZGRyZXNzOwotCi0gIGFk
ZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotICBhZGRU
b1N1bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAg
aWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgewotICAgIGFkZFRvTG9nKCdXZWJTb2NrZXQg
aXMgbm90IGF2YWlsYWJsZScpOwotICB9Ci0KLSAgaW5pdFdvcmtlcignV2ViU29ja2V0JywgJycp
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXYg
aWQ9ImJlbmNobWFya19kaXYiPgotICB1cmwgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNz
IiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNr
PSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNl
aXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0
b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0ib25CYXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0
IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3AiIG9uY2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIv
PgotCi0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAg
PGxhYmVsIGZvcj0icHJpbnRzaXplIj5QcmludCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9s
YWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4K
LSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+VmVyaWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIiPgotICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBv
biB3b3JrZXI8L2xhYmVsPgotCi0gIDxici8+Ci0KLSAgUGFyYW1ldGVyczoKLQotICA8YnIvPgot
Ci0gIDx0YWJsZT4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtIHNvY2tldHM8L3RkPgotICAgICAg
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtc29ja2V0cyIgdmFsdWU9IjEiPjwvdGQ+Ci0g
ICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIGl0ZXJhdGlvbnM8L3RkPgot
ICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRlcmF0aW9ucyIgdmFsdWU9IjEi
PjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIHdhcm0tdXAg
aXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW13YXJt
dXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0
YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAg
PHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9
InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8
dHI+Ci0gICAgICA8dGQ+TWluaW11bSB0b3RhbDwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9
InRleHQiIGlkPSJtaW50b3RhbCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgot
ICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0aXBsaWVyczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5
cGU9InRleHQiIGlkPSJtdWx0aXBsaWVycyIgdmFsdWU9IjUsIDIiPjwvdGQ+Ci0gICAgPC90cj4K
LSAgPC90YWJsZT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhCi0g
ICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3Rl
eHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAgPHRl
eHRhcmVhCi0gICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIg
cmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotCi1Ob3RlOiBFZmZlY3Qgb2YgUlRUIGlzIG5v
dCBlbGltaW5hdGVkLgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvYmVuY2htYXJrLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggODU2NDM1ZDFkMGRkNzhkOTc5NGFhODRjMDI5YzhhYjRmNzMzOWVj
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYmVuY2htYXJrLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjE0ICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6
Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLWlmICh0
eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gInVuZGVmaW5lZCIpIHsKLSAgLy8gUnVubmluZyBvbiBh
IHdvcmtlcgotICBpbXBvcnRTY3JpcHRzKCd1dGlsLmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7Ci19
Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBnbG9iYWxzLgotdmFyIGJlbmNobWFyayA9IHtz
dGFydFRpbWVJbk1zOiAwfTsKLQotdmFyIHNvY2tldHMgPSBbXTsKLXZhciBudW1Fc3RhYmxpc2hl
ZFNvY2tldHMgPSAwOwotCi12YXIgdGltZXJJRCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lT
b2NrZXQoc29ja2V0KSB7Ci0gIHNvY2tldC5vbm9wZW4gPSBudWxsOwotICBzb2NrZXQub25tZXNz
YWdlID0gbnVsbDsKLSAgc29ja2V0Lm9uZXJyb3IgPSBudWxsOwotICBzb2NrZXQub25jbG9zZSA9
IG51bGw7Ci0gIHNvY2tldC5jbG9zZSgpOwotfQotCi1mdW5jdGlvbiBkZXN0cm95QWxsU29ja2V0
cygpIHsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ZGVzdHJveVNvY2tldChzb2NrZXRzW2ldKTsKLSAgfQotICBzb2NrZXRzID0gW107Ci19Ci0KLWZ1
bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZywgaXNXYXJtVXApIHsKLSAgdGlt
ZXJJRCA9IG51bGw7Ci0KLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQg
PSAwOwotCi0gIHZhciBvbk1lc3NhZ2VIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBp
ZiAoIXZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIGV2ZW50LmRhdGEsIHNpemUpKSB7Ci0g
ICAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0g
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IHNpemU7Ci0KLSAgICBp
ZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGlt
ZUluTXMsIHRvdGFsU2l6ZSwKLSAgICAgICAgaXNXYXJtVXApOwotCi0gICAgcnVuTmV4dFRhc2so
Y29uZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyAr
K2kpIHsKLSAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKLSAgICBzb2NrZXQub25tZXNzYWdl
ID0gb25NZXNzYWdlSGFuZGxlcjsKLSAgfQotCi0gIHZhciBkYXRhQXJyYXkgPSBbXTsKLQotICB3
aGlsZSAodG90YWxTaXplIDwgY29uZmlnLm1pblRvdGFsKSB7Ci0gICAgdmFyIGJ1ZmZlciA9IG5l
dyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgIGZpbGxBcnJheUJ1ZmZlcihidWZmZXIsIDB4NjEp
OwotCi0gICAgZGF0YUFycmF5LnB1c2goYnVmZmVyKTsKLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsK
LSAgfQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAg
dG90YWxTaXplID0gMDsKLQotICB2YXIgc29ja2V0SW5kZXggPSAwOwotICB2YXIgZGF0YUluZGV4
ID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZhciBj
b21tYW5kID0gWydzZW5kJ107Ci0gICAgY29tbWFuZC5wdXNoKGNvbmZpZy52ZXJpZnlEYXRhID8g
JzEnIDogJzAnKTsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKGNvbW1hbmQuam9pbign
ICcpKTsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKGRhdGFBcnJheVtkYXRhSW5kZXhd
KTsKLSAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5sZW5ndGg7
Ci0KLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgICArK2RhdGFJbmRleDsKLSAgfQotfQotCi1m
dW5jdGlvbiByZWNlaXZlQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7Ci0g
IHRpbWVySUQgPSBudWxsOwotCi0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBs
aWVkID0gMDsKLQotICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSBldmVudC5kYXRhLmJ5dGVMZW5ndGg7Ci0gICAgaWYgKGJ5
dGVzUmVjZWl2ZWQgIT0gc2l6ZSkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAn
ICsgc2l6ZSArICdCIGJ1dCByZWNlaXZlZCAnICsKLSAgICAgICAgICBieXRlc1JlY2VpdmVkICsg
J0InKTsKLSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJv
cnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY29uZmlnLnZlcmlmeURhdGEg
JiYgIXZlcmlmeUFycmF5QnVmZmVyKGV2ZW50LmRhdGEsIDB4NjEpKSB7Ci0gICAgICBjb25maWcu
YWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTsKLSAgICAgIGRlc3Ryb3lB
bGxTb2NrZXRzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQgKz0gYnl0ZXNSZWNlaXZlZDsKLQotICAgIGlmICh0
b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBj
YWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5N
cywgdG90YWxTaXplLAotICAgICAgICBpc1dhcm1VcCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25m
aWcpOwotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkg
ewotICAgIHZhciBzb2NrZXQgPSBzb2NrZXRzW2ldOwotICAgIHNvY2tldC5iaW5hcnlUeXBlID0g
J2FycmF5YnVmZmVyJzsKLSAgICBzb2NrZXQub25tZXNzYWdlID0gb25NZXNzYWdlSGFuZGxlcjsK
LSAgfQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAg
dmFyIHNvY2tldEluZGV4ID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3Rh
bCkgewotICAgIHNvY2tldHNbc29ja2V0SW5kZXhdLnNlbmQoJ3JlY2VpdmUgJyArIHNpemUpOwot
ICAgIHNvY2tldEluZGV4ID0gKHNvY2tldEluZGV4ICsgMSkgJSBzb2NrZXRzLmxlbmd0aDsKLQot
ICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVNvY2tldChj
b25maWcpIHsKLSAgLy8gVE9ETyh0eW9zaGlubyk6IEFkZCBUQ1Agd2FybSB1cC4KLSAgdmFyIHVy
bCA9IGNvbmZpZy5wcmVmaXhVcmw7Ci0KLSAgY29uZmlnLmFkZFRvTG9nKCdDb25uZWN0ICcgKyB1
cmwpOwotCi0gIHZhciBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0gIHNvY2tldC5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnVW5leHBlY3Rl
ZCBtZXNzYWdlIHJlY2VpdmVkLiBBYm9ydGluZy4nKTsKLSAgfTsKLSAgc29ja2V0Lm9uZXJyb3Ig
PSBmdW5jdGlvbigpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0Vycm9yJyk7Ci0gIH07Ci0gIHNv
Y2tldC5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0Ns
b3NlZCcpOwotICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICB9OwotICByZXR1cm4gc29ja2V0
OwotfQotCi1mdW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0
KHRpbWVySUQpOwotICBkZXN0cm95QWxsU29ja2V0cygpOwotCi0gIG51bUVzdGFibGlzaGVkU29j
a2V0cyA9IDA7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtU29ja2V0czsgKytp
KSB7Ci0gICAgdmFyIHNvY2tldCA9IGNyZWF0ZVNvY2tldChjb25maWcpOwotICAgIHNvY2tldC5v
bm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnT3BlbmVkJyk7Ci0K
LSAgICAgICsrbnVtRXN0YWJsaXNoZWRTb2NrZXRzOwotCi0gICAgICBpZiAobnVtRXN0YWJsaXNo
ZWRTb2NrZXRzID09IHNvY2tldHMubGVuZ3RoKSB7Ci0gICAgICAgIHJ1bk5leHRUYXNrKGNvbmZp
Zyk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICBzb2NrZXRzLnB1c2goc29ja2V0KTsKLSAgfQotfQot
Ci1mdW5jdGlvbiBnZXRDb25maWdTdHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAnKFdlYlNvY2tl
dCcgKwotICAgICcsICcgKyAodHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiID8g
J1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAnLCBudW1Tb2NrZXRzPScgKyBjb25maWcubnVtU29j
a2V0cyArCi0gICAgJywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKwot
ICAgICcsIHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAnLCBtaW5Ub3Rh
bD0nICsgY29uZmlnLm1pblRvdGFsICsKLSAgICAnLCBudW1XYXJtVXBJdGVyYXRpb25zPScgKyBj
b25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArCi0gICAgJyknOwotfQotCi1mdW5jdGlvbiBiYXRj
aEJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdCYXRjaCBiZW5jaG1hcmsn
KTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwotCi0gIHRh
c2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRkVGFza3MoY29uZmlnLCBzZW5k
QmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCAnU2VuZCBC
ZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgYWRkVGFza3MoY29uZmln
LCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmln
LCAnUmVjZWl2ZSBCZW5jaG1hcmsgJyArCi0gICAgICBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7
Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFudXAoKSB7Ci0g
IGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2ht
YXJrX2hlbHBlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0YWQwYmZlZWZjNmY0NDMwNTcxYjdiNTMy
MzNmYjc5NTA2MTRjZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsODUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiSGFuZGxlciBmb3IgYmVu
Y2htYXJrLmh0bWwuIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpOgotICAgICMgVHVybiBvZmYgY29tcHJlc3Npb24uCi0gICAgcmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29ycyA9IFtdCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KToKLSAgICBkYXRhID0gJycKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGNvbW1h
bmQgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBjb21t
YW5kIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShjb21tYW5kLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0lu
dmFsaWQgY29tbWFuZCBkYXRhOicgKyBjb21tYW5kKQotICAgICAgICBjb21tYW5kcyA9IGNvbW1h
bmQuc3BsaXQoJyAnKQotICAgICAgICBpZiBsZW4oY29tbWFuZHMpID09IDA6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTogJyArIGNvbW1hbmQpCi0K
LSAgICAgICAgaWYgY29tbWFuZHNbMF0gPT0gJ3JlY2VpdmUnOgotICAgICAgICAgICAgaWYgbGVu
KGNvbW1hbmRzKSAhPSAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBzZW5k
IGNvbW1hbmQnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCi0gICAgICAgICAg
ICBzaXplID0gaW50KGNvbW1hbmRzWzFdKQotCi0gICAgICAgICAgICAjIFJldXNlIGRhdGEgaWYg
cG9zc2libGUuCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gc2l6ZToKLSAgICAgICAgICAg
ICAgICBkYXRhID0gJ2EnICogc2l6ZQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2Vu
ZF9tZXNzYWdlKGRhdGEsIGJpbmFyeT1UcnVlKQotICAgICAgICBlbGlmIGNvbW1hbmRzWzBdID09
ICdzZW5kJzoKLSAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKLSAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0lsbGVnYWwg
bnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVjZWl2ZSBjb21tYW5kJyArCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjb21tYW5kKQotICAgICAgICAgICAgdmVyaWZ5X2RhdGEgPSBjb21tYW5kc1sx
XSA9PSAnMScKLQotICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVf
bWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBkYXRhIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBub3QgcmVjZWl2ZWQnKQotICAgICAgICAgICAgc2l6
ZSA9IGxlbihkYXRhKQotCi0gICAgICAgICAgICBpZiB2ZXJpZnlfZGF0YToKLSAgICAgICAgICAg
ICAgICBpZiBkYXRhICE9ICdhJyAqIHNpemU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ1BheWxvYWQgdmVyaWZpY2F0aW9uIGZhaWxlZCcpCi0KLSAgICAgICAgICAgIHJl
cXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShzdHIoc2l6ZSkpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQ6ICcgKyBjb21tYW5k
c1swXSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9j
bG9zZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNmIwODM4NDA4MTI0NTM5Nzk3NjU3ZDQwZDY0Mjc4ZjFhNjQ4MWMwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9jbG9zZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotaW1wb3J0IHN0cnVjdAotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxp
bmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5l
IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgY29kZSwgcmVhc29uID0gbGlu
ZS5zcGxpdCgnICcsIDEpCi0gICAgICAgIGlmIGNvZGUgaXMgTm9uZSBvciByZWFzb24gaXMgTm9u
ZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9j
b25uZWN0aW9uKGludChjb2RlKSwgcmVhc29uKQotICAgICAgICAjIGNsb3NlX2Nvbm5lY3Rpb24o
KSBpbml0aWF0ZXMgY2xvc2luZyBoYW5kc2hha2UuIEl0IHZhbGlkYXRlcyBjb2RlCi0gICAgICAg
ICMgYW5kIHJlYXNvbi4gSWYgeW91IHdhbnQgdG8gc2VuZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBm
b3IgYSB0ZXN0LAotICAgICAgICAjIGZvbGxvd2luZyBjb2RlIHdpbGwgYmUgdXNlZnVsLgotICAg
ICAgICAjID4gZGF0YSA9IHN0cnVjdC5wYWNrKCchSCcsIGludChjb2RlKSkgKyByZWFzb24uZW5j
b2RlKCdVVEYtOCcpCi0gICAgICAgICMgPiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoc3RyZWFt
LmNyZWF0ZV9jbG9zZV9mcmFtZShkYXRhKSkKLSAgICAgICAgIyA+ICMgU3VwcHJlc3MgdG8gcmUt
cmVzcG9uZCBjbGllbnQgcmVzcG9uZGluZyBjbG9zZSBmcmFtZS4KLSAgICAgICAgIyA+IHJhaXNl
IEV4Y2VwdGlvbigiY3VzdG9taXplZCBzZXJ2ZXIgaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtl
IikKLQotCi1kZWYgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKHJlcXVlc3Qp
OgotICAgICMgU2ltcGx5IGVjaG8gYSBjbG9zZSBzdGF0dXMgY29kZQotICAgIGNvZGUsIHJlYXNv
biA9IHJlcXVlc3Qud3NfY2xvc2VfY29kZSwgcmVxdWVzdC53c19jbG9zZV9yZWFzb24KLQotICAg
ICMgcHl3ZWJzb2NrZXQgc2V0cyBwc2V1ZG8gY29kZSBmb3IgcmVjZWl2aW5nIGFuIGVtcHR5IGJv
ZHkgY2xvc2UgZnJhbWUuCi0gICAgaWYgY29kZSA9PSBjb21tb24uU1RBVFVTX05PX1NUQVRVU19S
RUNFSVZFRDoKLSAgICAgICAgY29kZSA9IE5vbmUKLSAgICAgICAgcmVhc29uID0gJycKLSAgICBy
ZXR1cm4gY29kZSwgcmVhc29uCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvY29uc29sZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2NvbnNvbGUuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NkNmQ4ZjgwNjc2Yjk5OTFlMjJkZmM3ZWM4NTA4
MzQxMWRkZDBiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzE3ICswLDAg
QEAKLTwhLS0KLUNvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08IS0tCi1BIHNpbXBsZSBjb25z
b2xlIGZvciB0ZXN0aW5nIFdlYlNvY2tldCBzZXJ2ZXIuCi0KLVR5cGUgYW4gYWRkcmVzcyBpbnRv
IHRoZSB0b3AgdGV4dCBpbnB1dCBhbmQgY2xpY2sgY29ubmVjdCB0byBlc3RhYmxpc2gKLVdlYlNv
Y2tldC4gVGhlbiwgdHlwZSBzb21lIG1lc3NhZ2UgaW50byB0aGUgYm90dG9tIHRleHQgaW5wdXQg
YW5kIGNsaWNrIHNlbmQKLXRvIHNlbmQgdGhlIG1lc3NhZ2UuIFJlY2VpdmVkL3NlbnQgbWVzc2Fn
ZXMgYW5kIGNvbm5lY3Rpb24gc3RhdGUgd2lsbCBiZSBzaG93bgotb24gdGhlIG1pZGRsZSB0ZXh0
YXJlYS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPldlYlNvY2tldCBjb25zb2xlPC90
aXRsZT4KLTxzY3JpcHQ+Ci12YXIgc29ja2V0ID0gbnVsbDsKLQotdmFyIHNob3dUaW1lU3RhbXAg
PSBmYWxzZTsKLQotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotdmFyIHByb3RvY29sc0JveCA9IG51
bGw7Ci12YXIgbG9nQm94ID0gbnVsbDsKLXZhciBtZXNzYWdlQm94ID0gbnVsbDsKLXZhciBmaWxl
Qm94ID0gbnVsbDsKLXZhciBjb2RlQm94ID0gbnVsbDsKLXZhciByZWFzb25Cb3ggPSBudWxsOwot
Ci1mdW5jdGlvbiBnZXRUaW1lU3RhbXAoKSB7Ci0gIHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUo
KTsKLX0KLQotZnVuY3Rpb24gYWRkVG9Mb2cobG9nKSB7Ci0gIGlmIChzaG93VGltZVN0YW1wKSB7
Ci0gICAgbG9nQm94LnZhbHVlICs9ICdbJyArIGdldFRpbWVTdGFtcCgpICsgJ10gJzsKLSAgfQot
ICBsb2dCb3gudmFsdWUgKz0gbG9nICsgJ1xuJwotICAvLyBMYXJnZSBlbm91Z2ggdG8ga2VlcCBz
aG93aW5nIHRoZSBsYXRlc3QgbWVzc2FnZS4KLSAgbG9nQm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7
Ci19Ci0KLWZ1bmN0aW9uIHNldGJpbmFyeXR5cGUoYmluYXJ5VHlwZSkgewotICBpZiAoIXNvY2tl
dCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0K
LSAgc29ja2V0LmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOwotICBhZGRUb0xvZygnU2V0IGJpbmFy
eVR5cGUgdG8gJyArIGJpbmFyeVR5cGUpOwotfQotCi1mdW5jdGlvbiBzZW5kKCkgewotICBpZiAo
IXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwot
ICB9Ci0KLSAgc29ja2V0LnNlbmQobWVzc2FnZUJveC52YWx1ZSk7Ci0gIGFkZFRvTG9nKCc+ICcg
KyBtZXNzYWdlQm94LnZhbHVlKTsKLSAgbWVzc2FnZUJveC52YWx1ZSA9ICcnOwotfQotCi1mdW5j
dGlvbiBzZW5kZmlsZSgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNv
bm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIHZhciBmaWxlcyA9IGZpbGVCb3guZmls
ZXM7Ci0KLSAgaWYgKGZpbGVzLmxlbmd0aCA9PSAwKSB7Ci0gICAgYWRkVG9Mb2coJ0ZpbGUgbm90
IHNlbGVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgc29ja2V0LnNlbmQoZmlsZXNbMF0p
OwotICBhZGRUb0xvZygnPiBTZW5kICcgKyBmaWxlc1swXS5uYW1lKTsKLX0KLQotZnVuY3Rpb24g
cGFyc2VQcm90b2NvbHMocHJvdG9jb2xzVGV4dCkgewotICB2YXIgcHJvdG9jb2xzID0gcHJvdG9j
b2xzVGV4dC5zcGxpdCgnLCcpOwotICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3RvY29scy5sZW5n
dGg7ICsraSkgewotICAgIHByb3RvY29sc1tpXSA9IHByb3RvY29sc1tpXS50cmltKCk7Ci0gIH0K
LQotICBpZiAocHJvdG9jb2xzLmxlbmd0aCA9PSAwKSB7Ci0gICAgLy8gRG9uJ3QgcGFzcy4KLSAg
ICBwcm90b2NvbHMgPSBudWxsOwotICB9IGVsc2UgaWYgKHByb3RvY29scy5sZW5ndGggPT0gMSkg
ewotICAgIGlmIChwcm90b2NvbHNbMF0ubGVuZ3RoID09IDApIHsKLSAgICAgIC8vIERvbid0IHBh
c3MuCi0gICAgICBwcm90b2NvbHMgPSBudWxsOwotICAgIH0gZWxzZSB7Ci0gICAgICAvLyBQYXNz
IGFzIGEgc3RyaW5nLgotICAgICAgcHJvdG9jb2xzID0gcHJvdG9jb2xzWzBdOwotICAgIH0KLSAg
fQotCi0gIHJldHVybiBwcm90b2NvbHM7Ci19Ci0KLWZ1bmN0aW9uIGNvbm5lY3QoKSB7Ci0gIHZh
ciB1cmwgPSBhZGRyZXNzQm94LnZhbHVlOwotICB2YXIgcHJvdG9jb2xzID0gcGFyc2VQcm90b2Nv
bHMocHJvdG9jb2xzQm94LnZhbHVlKTsKLQotICBpZiAoJ1dlYlNvY2tldCcgaW4gd2luZG93KSB7
Ci0gICAgaWYgKHByb3RvY29scykgewotICAgICAgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmws
IHByb3RvY29scyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQo
dXJsKTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgc29ja2V0Lm9u
b3BlbiA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgZXh0cmFJbmZvID0gW107Ci0gICAgaWYgKCgn
cHJvdG9jb2wnIGluIHNvY2tldCkgJiYgc29ja2V0LnByb3RvY29sKSB7Ci0gICAgICBleHRyYUlu
Zm8ucHVzaCgncHJvdG9jb2wgPSAnICsgc29ja2V0LnByb3RvY29sKTsKLSAgICB9Ci0gICAgaWYg
KCgnZXh0ZW5zaW9ucycgaW4gc29ja2V0KSAmJiBzb2NrZXQuZXh0ZW5zaW9ucykgewotICAgICAg
ZXh0cmFJbmZvLnB1c2goJ2V4dGVuc2lvbnMgPSAnICsgc29ja2V0LmV4dGVuc2lvbnMpOwotICAg
IH0KLQotICAgIHZhciBsb2dNZXNzYWdlID0gJ09wZW5lZCc7Ci0gICAgaWYgKGV4dHJhSW5mby5s
ZW5ndGggPiAwKSB7Ci0gICAgICBsb2dNZXNzYWdlICs9ICcgKCcgKyBleHRyYUluZm8uam9pbign
LCAnKSArICcpJzsKLSAgICB9Ci0gICAgYWRkVG9Mb2cobG9nTWVzc2FnZSk7Ci0gIH07Ci0gIHNv
Y2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICBpZiAoKCdBcnJheUJ1ZmZl
cicgaW4gd2luZG93KSAmJiAoZXZlbnQuZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkgewot
ICAgICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYW4gQXJyYXlCdWZmZXIgb2YgJyArIGV2ZW50LmRh
dGEuYnl0ZUxlbmd0aCArCi0gICAgICAgICAgICAgICAnIGJ5dGVzJykKLSAgICB9IGVsc2UgaWYg
KCgnQmxvYicgaW4gd2luZG93KSAmJiAoZXZlbnQuZGF0YSBpbnN0YW5jZW9mIEJsb2IpKSB7Ci0g
ICAgICBhZGRUb0xvZygnPCBSZWNlaXZlZCBhIEJsb2Igb2YgJyArIGV2ZW50LmRhdGEuc2l6ZSAr
ICcgYnl0ZXMnKQotICAgIH0gZWxzZSB7Ci0gICAgICBhZGRUb0xvZygnPCAnICsgZXZlbnQuZGF0
YSk7Ci0gICAgfQotICB9OwotICBzb2NrZXQub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKLSAgICBh
ZGRUb0xvZygnRXJyb3InKTsKLSAgfTsKLSAgc29ja2V0Lm9uY2xvc2UgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKLSAgICB2YXIgbG9nTWVzc2FnZSA9ICdDbG9zZWQgKCc7Ci0gICAgaWYgKChhcmd1bWVu
dHMubGVuZ3RoID09IDEpICYmICgnQ2xvc2VFdmVudCcgaW4gd2luZG93KSAmJgotICAgICAgICAo
ZXZlbnQgaW5zdGFuY2VvZiBDbG9zZUV2ZW50KSkgewotICAgICAgbG9nTWVzc2FnZSArPSAnd2Fz
Q2xlYW4gPSAnICsgZXZlbnQud2FzQ2xlYW47Ci0gICAgICAvLyBjb2RlIGFuZCByZWFzb24gYXJl
IHByZXNlbnQgb25seSBmb3IKLSAgICAgIC8vIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRw
cm90b2NvbC0wNiBhbmQgbGF0ZXIKLSAgICAgIGlmICgnY29kZScgaW4gZXZlbnQpIHsKLSAgICAg
ICAgbG9nTWVzc2FnZSArPSAnLCBjb2RlID0gJyArIGV2ZW50LmNvZGU7Ci0gICAgICB9Ci0gICAg
ICBpZiAoJ3JlYXNvbicgaW4gZXZlbnQpIHsKLSAgICAgICAgbG9nTWVzc2FnZSArPSAnLCByZWFz
b24gPSAnICsgZXZlbnQucmVhc29uOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBsb2dN
ZXNzYWdlICs9ICdDbG9zZUV2ZW50IGlzIG5vdCBhdmFpbGFibGUnOwotICAgIH0KLSAgICBhZGRU
b0xvZyhsb2dNZXNzYWdlICsgJyknKTsKLSAgfTsKLQotICBpZiAocHJvdG9jb2xzKSB7Ci0gICAg
YWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVybCArICcgKHByb3RvY29scyA9ICcgKyBwcm90b2NvbHMg
KyAnKScpOwotICB9IGVsc2UgewotICAgIGFkZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwpOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIGNsb3NlU29ja2V0KCkgewotICBpZiAoIXNvY2tldCkgewotICAgIGFk
ZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgaWYgKGNvZGVC
b3gudmFsdWUgfHwgcmVhc29uQm94LnZhbHVlKSB7Ci0gICAgc29ja2V0LmNsb3NlKGNvZGVCb3gu
dmFsdWUsIHJlYXNvbkJveC52YWx1ZSk7Ci0gIH0gZWxzZSB7Ci0gICAgc29ja2V0LmNsb3NlKCk7
Ci0gIH0KLX0KLQotZnVuY3Rpb24gcHJpbnRTdGF0ZSgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAg
ICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQotCi0gIGFkZFRv
TG9nKAotICAgICAgJ3VybCA9ICcgKyBzb2NrZXQudXJsICsKLSAgICAgICcsIHJlYWR5U3RhdGUg
PSAnICsgc29ja2V0LnJlYWR5U3RhdGUgKwotICAgICAgJywgYnVmZmVyZWRBbW91bnQgPSAnICsg
c29ja2V0LmJ1ZmZlcmVkQW1vdW50KTsKLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgdmFyIHNj
aGVtZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDog
J3dzOi8vJzsKLSAgdmFyIGRlZmF1bHRBZGRyZXNzID0gc2NoZW1lICsgd2luZG93LmxvY2F0aW9u
Lmhvc3QgKyAnL2VjaG8nOwotCi0gIGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYWRkcmVzcycpOwotICBwcm90b2NvbHNCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cHJvdG9jb2xzJyk7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsK
LSAgbWVzc2FnZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZXNzYWdlJyk7Ci0gIGZp
bGVCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZScpOwotICBjb2RlQm94ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGUnKTsKLSAgcmVhc29uQm94ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3JlYXNvbicpOwotCi0gIGFkZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRk
cmVzczsKLQotICBpZiAoISgnV2ViU29ja2V0JyBpbiB3aW5kb3cpKSB7Ci0gICAgYWRkVG9Mb2co
J1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7Ci0gIH0KLX0KLTwvc2NyaXB0PgotPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KLWZvcm0gewotICBtYXJnaW46IDBweDsKLX0KLQotI2Nvbm5lY3Rf
ZGl2LCAjbG9nX2RpdiwgI3NlbmRfZGl2LCAjc2VuZGZpbGVfZGl2LCAjY2xvc2VfZGl2LCAjcHJp
bnRzdGF0ZV9kaXYgewotICBwYWRkaW5nOiA1cHg7Ci0gIG1hcmdpbjogNXB4OwotICBib3JkZXIt
d2lkdGg6IDBweCAwcHggMHB4IDEwcHg7Ci0gIGJvcmRlci1zdHlsZTogc29saWQ7Ci0gIGJvcmRl
ci1jb2xvcjogc2lsdmVyOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5p
dCgpIj4KLQotPGRpdj4KLQotPGRpdiBpZD0iY29ubmVjdF9kaXYiPgotICA8Zm9ybSBhY3Rpb249
IiMiIG9uc3VibWl0PSJjb25uZWN0KCk7IHJldHVybiBmYWxzZTsiPgotICAgIHVybCA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3Vi
bWl0IiB2YWx1ZT0iY29ubmVjdCI+Ci0gICAgPGJyLz4KLSAgICBwcm90b2NvbHMgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJwcm90b2NvbHMiIHNpemU9IjIwIj4KLSAgPC9mb3JtPgotPC9kaXY+Ci0K
LTxkaXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9
IjQwIiByZWFkb25seT48L3RleHRhcmVhPgotICA8YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2ti
b3giCi0gICAgICAgICBuYW1lPSJzaG93dGltZXN0YW1wIgotICAgICAgICAgdmFsdWU9InNob3d0
aW1lc3RhbXAiCi0gICAgICAgICBvbmNsaWNrPSJzaG93VGltZVN0YW1wID0gdGhpcy5jaGVja2Vk
Ij5TaG93IHRpbWUgc3RhbXAKLTwvZGl2PgotCi08ZGl2IGlkPSJzZW5kX2RpdiI+Ci0gIDxmb3Jt
IGFjdGlvbj0iIyIgb25zdWJtaXQ9InNlbmQoKTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgZGF0YSA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1lc3NhZ2UiIHNpemU9IjQwIj4KLSAgICA8aW5wdXQgdHlw
ZT0ic3VibWl0IiB2YWx1ZT0ic2VuZCI+Ci0gIDwvZm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJz
ZW5kZmlsZV9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJzZW5kZmlsZSgpOyBy
ZXR1cm4gZmFsc2U7Ij4KLSAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUiIHNpemU9IjQw
Ij4KLSAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2VuZCBmaWxlIj4KLSAgPC9mb3Jt
PgotCi0gIFNldCBiaW5hcnlUeXBlCi0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5h
bWU9ImJpbmFyeXR5cGUiCi0gICAgICAgICB2YWx1ZT0iYmxvYiIKLSAgICAgICAgIG9uY2xpY2s9
InNldGJpbmFyeXR5cGUoJ2Jsb2InKSIgY2hlY2tlZD5ibG9iCi0gIDxpbnB1dCB0eXBlPSJyYWRp
byIKLSAgICAgICAgIG5hbWU9ImJpbmFyeXR5cGUiCi0gICAgICAgICB2YWx1ZT0iYXJyYXlidWZm
ZXIiCi0gICAgICAgICBvbmNsaWNrPSJzZXRiaW5hcnl0eXBlKCdhcnJheWJ1ZmZlcicpIj5hcnJh
eWJ1ZmZlcgotPC9kaXY+Ci0KLTxkaXYgaWQ9ImNsb3NlX2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0i
IyIgb25zdWJtaXQ9ImNsb3NlU29ja2V0KCk7IHJldHVybiBmYWxzZTsiPgotICAgIGNvZGUgPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJjb2RlIiBzaXplPSIxMCI+Ci0gICAgcmVhc29uIDxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0icmVhc29uIiBzaXplPSIyMCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1p
dCIgdmFsdWU9ImNsb3NlIj4KLSAgPC9mb3JtPgotPC9kaXY+Ci0KLTxkaXYgaWQ9InByaW50c3Rh
dGVfZGl2Ij4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InByaW50IHN0YXRlIiBvbmNs
aWNrPSJwcmludFN0YXRlKCk7Ij4KLTwvZGl2PgotCi08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
Y29va2llX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIzMjcxNTJlNzAx
ZjdkMjAzMWQ3YzljZTA0NjI0Y2ZhODRhYzE2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29va2llX3dzaC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDMyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlO
RyBmaWxlIG9yIGF0Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNl
L2xpY2Vuc2VzL2JzZAotCi0KLWltcG9ydCB1cmxwYXJzZQotCi0KLWRlZiBfYWRkX3NldF9jb29r
aWUocmVxdWVzdCwgdmFsdWUpOgotICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoKCdT
ZXQtQ29va2llJywgdmFsdWUpKQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KToKLSAgICBjb21wb25lbnRzID0gdXJscGFyc2UudXJscGFyc2UocmVxdWVzdC51
cmkpCi0gICAgY29tbWFuZCA9IGNvbXBvbmVudHNbNF0KLQotICAgIE9ORV9EQVlfTElGRSA9ICdN
YXgtQWdlPTg2NDAwJwotCi0gICAgaWYgY29tbWFuZCA9PSAnc2V0JzoKLSAgICAgICAgX2FkZF9z
ZXRfY29va2llKHJlcXVlc3QsICc7ICcuam9pbihbJ2Zvbz1iYXInLCBPTkVfREFZX0xJRkVdKSkK
LSAgICBlbGlmIGNvbW1hbmQgPT0gJ3NldF9odHRwb25seSc6Ci0gICAgICAgIF9hZGRfc2V0X2Nv
b2tpZShyZXF1ZXN0LAotICAgICAgICAgICAgJzsgJy5qb2luKFsnaHR0cE9ubHlGb289YmFyJywg
T05FX0RBWV9MSUZFLCAnaHR0cE9ubHknXSkpCi0gICAgZWxpZiBjb21tYW5kID09ICdjbGVhcic6
Ci0gICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnZm9vPTA7IE1heC1BZ2U9MCcpCi0g
ICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnaHR0cE9ubHlGb289MDsgTWF4LUFnZT0w
JykKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHBhc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9l
Y2hvX2NsaWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFjNzQwZTcwNThi
ZDMxYTc4YmNmMWIxYjg5N2QzYmRmM2ZjN2Q0Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxMTI5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiU2ltcGxlIFdlYlNvY2tldCBjbGllbnQgbmFtZWQgZWNob19jbGll
bnQganVzdCBiZWNhdXNlIG9mIGhpc3RvcmljYWwgcmVhc29uLgotCi1tb2RfcHl3ZWJzb2NrZXQg
ZGlyZWN0b3J5IG11c3QgYmUgaW4gUFlUSE9OUEFUSC4KLQotRXhhbXBsZSBVc2FnZToKLQotIyBz
ZXJ2ZXIgc2V0dXAKLSAlIGNkICRweXdlYnNvY2tldAotICUgUFlUSE9OUEFUSD0kY3dkL3NyYyBw
eXRob24gLi9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtcCA4ODgwIFwKLSAgICAtZCAk
Y3dkL3NyYy9leGFtcGxlCi0KLSMgcnVuIGNsaWVudAotICUgUFlUSE9OUEFUSD0kY3dkL3NyYyBw
eXRob24gLi9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5weSAtcCA4ODgwIFwKLSAgICAgLXMgbG9j
YWxob3N0IFwKLSAgICAgLW8gaHR0cDovL2xvY2FsaG9zdCAtciAvZWNobyAtbSB0ZXN0Ci0KLW9y
Ci0KLSMgcnVuIGVjaG8gY2xpZW50IHRvIHRlc3QgSUVURiBIeUJpIDAwIHByb3RvY29sCi0gcnVu
IHdpdGggLS1wcm90b2NvbC12ZXJzaW9uPWh5YmkwMAotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvZGVjcwotaW1w
b3J0IGxvZ2dpbmcKLWZyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNlcgotaW1wb3J0IG9z
Ci1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgcmUKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QK
LWltcG9ydCBzeXMKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJv
Y2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdl
RGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9u
cyBpbXBvcnQgX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5l
eHRlbnNpb25zIGltcG9ydCBfcGFyc2Vfd2luZG93X2JpdHMKLWZyb20gbW9kX3B5d2Vic29ja2V0
LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0
IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFt
T3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fVElNRU9VVF9T
RUMgPSAxMAotX1VOREVGSU5FRF9QT1JUID0gLTEKLQotX1VQR1JBREVfSEVBREVSID0gJ1VwZ3Jh
ZGU6IHdlYnNvY2tldFxyXG4nCi1fVVBHUkFERV9IRUFERVJfSElYSUU3NSA9ICdVcGdyYWRlOiBX
ZWJTb2NrZXRcclxuJwotX0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVc
clxuJwotCi0jIFNwZWNpYWwgbWVzc2FnZSB0aGF0IHRlbGxzIHRoZSBlY2hvIHNlcnZlciB0byBz
dGFydCBjbG9zaW5nIGhhbmRzaGFrZQotX0dPT0RCWUVfTUVTU0FHRSA9ICdHb29kYnllJwotCi1f
UFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMgPSAnaHliaTEzJwotX1BST1RPQ09MX1ZFUlNJT05fSFlC
STA4ID0gJ2h5YmkwOCcKLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMCA9ICdoeWJpMDAnCi1fUFJP
VE9DT0xfVkVSU0lPTl9ISVhJRTc1ID0gJ2hpeGllNzUnCi0KLSMgQ29uc3RhbnRzIGZvciB0aGUg
LS10bHNfbW9kdWxlIGZsYWcuCi1fVExTX0JZX1NUQU5EQVJEX01PRFVMRSA9ICdzc2wnCi1fVExT
X0JZX1BZT1BFTlNTTCA9ICdweW9wZW5zc2wnCi0KLSMgVmFsdWVzIHVzZWQgYnkgdGhlIC0tdGxz
LXZlcnNpb24gZmxhZy4KLV9UTFNfVkVSU0lPTl9TU0wyMyA9ICdzc2wyMycKLV9UTFNfVkVSU0lP
Tl9TU0wzID0gJ3NzbDMnCi1fVExTX1ZFUlNJT05fVExTMSA9ICd0bHMxJwotCi0KLWNsYXNzIENs
aWVudEhhbmRzaGFrZUVycm9yKEV4Y2VwdGlvbik6Ci0gICAgcGFzcwotCi0KLWRlZiBfYnVpbGRf
bWV0aG9kX2xpbmUocmVzb3VyY2UpOgotICAgIHJldHVybiAnR0VUICVzIEhUVFAvMS4xXHJcbicg
JSByZXNvdXJjZQotCi0KLWRlZiBfb3JpZ2luX2hlYWRlcihoZWFkZXIsIG9yaWdpbik6Ci0gICAg
IyA0LjEgMTMuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiT3JpZ2luOiIsIGEgVSswMDIw
IFNQQUNFIGNoYXJhY3RlciwKLSAgICAjIGFuZCB0aGUgL29yaWdpbi8gdmFsdWUsIGNvbnZlcnRl
ZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnJXM6ICVzXHJc
bicgJSAoaGVhZGVyLCBvcmlnaW4ubG93ZXIoKSkKLQotCi1kZWYgX2Zvcm1hdF9ob3N0X2hlYWRl
cihob3N0LCBwb3J0LCBzZWN1cmUpOgotICAgICMgNC4xIDkuIExldCAvaG9zdHBvcnQvIGJlIGFu
IGVtcHR5IHN0cmluZy4KLSAgICAjIDQuMSAxMC4gQXBwZW5kIHRoZSAvaG9zdC8gdmFsdWUsIGNv
bnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvCi0gICAgIyAvaG9zdHBvcnQvCi0gICAgaG9z
dHBvcnQgPSBob3N0Lmxvd2VyKCkKLSAgICAjIDQuMSAxMS4gSWYgL3NlY3VyZS8gaXMgZmFsc2Us
IGFuZCAvcG9ydC8gaXMgbm90IDgwLCBvciBpZiAvc2VjdXJlLwotICAgICMgaXMgdHJ1ZSwgYW5k
IC9wb3J0LyBpcyBub3QgNDQzLCB0aGVuIGFwcGVuZCBhIFUrMDAzQSBDT0xPTiBjaGFyYWN0ZXIK
LSAgICAjICg6KSBmb2xsb3dlZCBieSB0aGUgdmFsdWUgb2YgL3BvcnQvLCBleHByZXNzZWQgYXMg
YSBiYXNlLXRlbiBpbnRlZ2VyLAotICAgICMgdG8gL2hvc3Rwb3J0LwotICAgIGlmICgobm90IHNl
Y3VyZSBhbmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQpIG9yCi0gICAg
ICAgIChzZWN1cmUgYW5kIHBvcnQgIT0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVf
UE9SVCkpOgotICAgICAgICBob3N0cG9ydCArPSAnOicgKyBzdHIocG9ydCkKLSAgICAjIDQuMSAx
Mi4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJIb3N0OiIsIGEgVSswMDIwIFNQQUNFCi0g
ICAgIyBjaGFyYWN0ZXIsIGFuZCAvaG9zdHBvcnQvLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4g
JyVzOiAlc1xyXG4nICUgKGNvbW1vbi5IT1NUX0hFQURFUiwgaG9zdHBvcnQpCi0KLQotZGVmIF9y
ZWNlaXZlX2J5dGVzKHNvY2tldCwgbGVuZ3RoKToKLSAgICBieXRlcyA9IFtdCi0gICAgcmVtYWlu
aW5nID0gbGVuZ3RoCi0gICAgd2hpbGUgcmVtYWluaW5nID4gMDoKLSAgICAgICAgcmVjZWl2ZWRf
Ynl0ZXMgPSBzb2NrZXQucmVjdihyZW1haW5pbmcpCi0gICAgICAgIGlmIG5vdCByZWNlaXZlZF9i
eXRlczoKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0Nvbm5l
Y3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnCi0gICAgICAg
ICAgICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9ubHkgJWQgYnl0ZXMp
JyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWluaW5nKSkKLSAgICAg
ICAgYnl0ZXMuYXBwZW5kKHJlY2VpdmVkX2J5dGVzKQotICAgICAgICByZW1haW5pbmcgLT0gbGVu
KHJlY2VpdmVkX2J5dGVzKQotICAgIHJldHVybiAnJy5qb2luKGJ5dGVzKQotCi0KLWRlZiBfZ2V0
X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lKToKLSAgICAiIiJHZXRzIHRoZSB2YWx1ZSBv
ZiB0aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1lIGZyb20gZmllbGRzLgotCi0gICAgVGhpcyBm
dW5jdGlvbiBleHBlY3RzIHRoYXQgdGhlcmUncyBvbmx5IG9uZSBoZWFkZXIgd2l0aCB0aGUgc3Bl
Y2lmaWVkIG5hbWUKLSAgICBpbiBmaWVsZHMuIE90aGVyd2lzZSwgcmFpc2VzIGFuIENsaWVudEhh
bmRzaGFrZUVycm9yLgotICAgICIiIgotCi0gICAgdmFsdWVzID0gZmllbGRzLmdldChuYW1lLmxv
d2VyKCkpCi0gICAgaWYgdmFsdWVzIGlzIE5vbmUgb3IgbGVuKHZhbHVlcykgPT0gMDoKLSAgICAg
ICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAnJXMgaGVhZGVyIG5v
dCBmb3VuZDogJXInICUgKG5hbWUsIHZhbHVlcykpCi0gICAgaWYgbGVuKHZhbHVlcykgPiAxOgot
ICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICdNdWx0aXBs
ZSAlcyBoZWFkZXJzIGZvdW5kOiAlcicgJSAobmFtZSwgdmFsdWVzKSkKLSAgICByZXR1cm4gdmFs
dWVzWzBdCi0KLQotZGVmIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF92YWx1ZSwgY2FzZV9zZW5z
aXRpdmU9RmFsc2UpOgotICAgICIiIkdldHMgYW5kIHZhbGlkYXRlcyB0aGUgdmFsdWUgb2YgdGhl
IGhlYWRlciBzcGVjaWZpZWQgYnkgbmFtZSBmcm9tCi0gICAgZmllbGRzLgotCi0gICAgSWYgZXhw
ZWN0ZWRfdmFsdWUgaXMgc3BlY2lmaWVkLCBjb21wYXJlcyBleHBlY3RlZCB2YWx1ZSBhbmQgYWN0
dWFsIHZhbHVlCi0gICAgYW5kIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VFcnJvciBvbiBmYWls
dXJlLiBZb3UgY2FuIHNwZWNpZnkgY2FzZQotICAgIHNlbnNpdGl2ZW5lc3MgaW4gdGhpcyBjb21w
YXJpc29uIGJ5IGNhc2Vfc2Vuc2l0aXZlIHBhcmFtZXRlci4gVGhpcyBmdW5jdGlvbgotICAgIGV4
cGVjdHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFt
ZSBpbiBmaWVsZHMuCi0gICAgT3RoZXJ3aXNlLCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtlRXJy
b3IuCi0gICAgIiIiCi0KLSAgICB2YWx1ZSA9IF9nZXRfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMs
IG5hbWUpCi0KLSAgICBpZiAoKGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZSAhPSBleHBlY3RlZF92
YWx1ZSkgb3IKLSAgICAgICAgKG5vdCBjYXNlX3NlbnNpdGl2ZSBhbmQgdmFsdWUubG93ZXIoKSAh
PSBleHBlY3RlZF92YWx1ZS5sb3dlcigpKSk6Ci0gICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFr
ZUVycm9yKAotICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXIgKGV4
cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgKG5hbWUsIGV4cGVjdGVkX3Zh
bHVlLCB2YWx1ZSkpCi0KLQotY2xhc3MgX1RMU1NvY2tldChvYmplY3QpOgotICAgICIiIldyYXBw
ZXIgZm9yIGEgVExTIGNvbm5lY3Rpb24uIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwKLSAg
ICAgICAgICAgICAgICAgcmF3X3NvY2tldCwgdGxzX21vZHVsZSwgdGxzX3ZlcnNpb24sIGRpc2Fi
bGVfdGxzX2NvbXByZXNzaW9uKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgaWYgdGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5E
QVJEX01PRFVMRToKLSAgICAgICAgICAgIGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9T
U0wyMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09MX1NTTHYyMwotICAg
ICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMzoKLSAgICAgICAg
ICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09MX1NTTHYzCi0gICAgICAgICAgICBlbGlmIHRs
c192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9UTFMxOgotICAgICAgICAgICAgICAgIHZlcnNpb24g
PSBzc2wuUFJPVE9DT0xfVExTdjEKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS10bHMtdmVy
c2lvbiBmbGFnOiAlcicgJSB0bHNfdmVyc2lvbikKLQotICAgICAgICAgICAgaWYgZGlzYWJsZV90
bHNfY29tcHJlc3Npb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgJy0tZGlzYWJsZS10bHMtY29tcHJlc3Npb24gaXMgbm90IGF2YWlsYWJs
ZSBmb3Igc3NsICcKLSAgICAgICAgICAgICAgICAgICAgJ21vZHVsZScpCi0KLSAgICAgICAgICAg
IHNlbGYuX3Rsc19zb2NrZXQgPSBzc2wud3JhcF9zb2NrZXQocmF3X3NvY2tldCwgc3NsX3ZlcnNp
b249dmVyc2lvbikKLQotICAgICAgICAgICAgIyBQcmludCBjaXBoZXIgaW4gdXNlLiBIYW5kc2hh
a2UgaXMgZG9uZSBvbiB3cmFwX3NvY2tldCBjYWxsLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oIkNpcGhlcjogJXMiLCBzZWxmLl90bHNfc29ja2V0LmNpcGhlcigpKQotICAgICAgICBl
bGlmIHRsc19tb2R1bGUgPT0gX1RMU19CWV9QWU9QRU5TU0w6Ci0gICAgICAgICAgICBpZiB0bHNf
dmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMjM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9
IE9wZW5TU0wuU1NMLlNTTHYyM19NRVRIT0QKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24g
PT0gX1RMU19WRVJTSU9OX1NTTDM6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IE9wZW5TU0wu
U1NMLlNTTHYzX01FVEhPRAotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZF
UlNJT05fVExTMToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNTTC5TU0wuVExTdjFf
TUVUSE9ECi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIC0tdGxzLXZlcnNpb24gZmxhZzogJXIn
ICUgdGxzX3ZlcnNpb24pCi0KLSAgICAgICAgICAgIGNvbnRleHQgPSBPcGVuU1NMLlNTTC5Db250
ZXh0KHZlcnNpb24pCi0KLSAgICAgICAgICAgIGlmIGRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgot
ICAgICAgICAgICAgICAgICMgT1BfTk9fQ09NUFJFU1NJT04gaXMgbm90IGRlZmluZWQgaW4gT3Bl
blNTTCBtb2R1bGUuCi0gICAgICAgICAgICAgICAgY29udGV4dC5zZXRfb3B0aW9ucygweDAwMDIw
MDAwKQotCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0ID0gT3BlblNTTC5TU0wuQ29ubmVj
dGlvbihjb250ZXh0LCByYXdfc29ja2V0KQotICAgICAgICAgICAgIyBDbGllbnQgbW9kZS4KLSAg
ICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuc2V0X2Nvbm5lY3Rfc3RhdGUoKQotICAgICAgICAg
ICAgc2VsZi5fdGxzX3NvY2tldC5zZXRibG9ja2luZyhUcnVlKQotCi0gICAgICAgICAgICAjIERv
IGhhbmRzaGFrZSBub3cgKG5vdCBuZWNlc3NhcnkpLgotICAgICAgICAgICAgc2VsZi5fdGxzX3Nv
Y2tldC5kb19oYW5kc2hha2UoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignTm8gVExTIHN1cHBvcnQgbW9kdWxlIGlzIGF2YWlsYWJsZScpCi0KLSAgICBkZWYg
c2VuZChzZWxmLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQud3JpdGUo
ZGF0YSkKLQotICAgIGRlZiBzZW5kYWxsKHNlbGYsIGRhdGEpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fdGxzX3NvY2tldC5zZW5kYWxsKGRhdGEpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBzaXplPS0x
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQucmVhZChzaXplKQotCi0gICAgZGVm
IGNsb3NlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5jbG9zZSgpCi0K
LSAgICBkZWYgZ2V0cGVlcm5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29j
a2V0LmdldHBlZXJuYW1lKCkKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VCYXNlKG9iamVjdCk6
Ci0gICAgIiIiQSBiYXNlIGNsYXNzIGZvciBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UgcHJv
Y2Vzc29ycyBmb3IgZWFjaAotICAgIHByb3RvY29sIHZlcnNpb24uCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIF9yZWFkX2ZpZWxkcyhzZWxmKToKLSAgICAgICAgIyA0
LjEgMzIuIGxldCAvZmllbGRzLyBiZSBhIGxpc3Qgb2YgbmFtZS12YWx1ZSBwYWlycywgaW5pdGlh
bGx5IGVtcHR5LgotICAgICAgICBmaWVsZHMgPSB7fQotICAgICAgICB3aGlsZSBUcnVlOiAgIyAi
RmllbGQiCi0gICAgICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBhbmQgL3ZhbHVlLyBiZSBl
bXB0eSBieXRlIGFycmF5cwotICAgICAgICAgICAgbmFtZSA9ICcnCi0gICAgICAgICAgICB2YWx1
ZSA9ICcnCi0gICAgICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KLSAgICAgICAgICAgIG5h
bWUgPSBzZWxmLl9yZWFkX25hbWUoKQotICAgICAgICAgICAgaWYgbmFtZSBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMKLSAg
ICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFNraXAgb25seSBvbmUgc3BhY2UgYXMgZGVzY3Jp
YmVkIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY2ggPSBzZWxmLl9za2lwX3NwYWNlcygpCi0g
ICAgICAgICAgICAjIDQuMSAzNi4gcmVhZCAvdmFsdWUvCi0gICAgICAgICAgICB2YWx1ZSA9IHNl
bGYuX3JlYWRfdmFsdWUoY2gpCi0gICAgICAgICAgICAjIDQuMSAzNy4gcmVhZCBhIGJ5dGUgZnJv
bSB0aGUgc2VydmVyCi0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tl
dCwgMSkKLSAgICAgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgICAg
ICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ0V4cGVj
dGVkIExGIGJ1dCBmb3VuZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZvciAnCi0gICAgICAg
ICAgICAgICAgICAgICdoZWFkZXIgJXInICUgKGNoLCB2YWx1ZSwgbmFtZSkpCi0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkICVyIGhlYWRlcicsIG5hbWUpCi0gICAgICAg
ICAgICAjIDQuMSAzOC4gYXBwZW5kIGFuIGVudHJ5IHRvIHRoZSAvZmllbGRzLyBsaXN0IHRoYXQg
aGFzIHRoZSBuYW1lCi0gICAgICAgICAgICAjIGdpdmVuIGJ5IHRoZSBzdHJpbmcgb2J0YWluZWQg
YnkgaW50ZXJwcmV0aW5nIHRoZSAvbmFtZS8gYnl0ZQotICAgICAgICAgICAgIyBhcnJheSBhcyBh
IFVURi04IHN0cmVhbSBhbmQgdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzdHJpbmcKLSAgICAgICAg
ICAgICMgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvdmFsdWUvIGJ5dGUgYXJyYXkgYXMg
YSBVVEYtOCBieXRlCi0gICAgICAgICAgICAjIHN0cmVhbS4KLSAgICAgICAgICAgIGZpZWxkcy5z
ZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCi0gICAgICAgICAgICAjIDQuMSAzOS4g
cmV0dXJuIHRvIHRoZSAiRmllbGQiIHN0ZXAgYWJvdmUKLSAgICAgICAgcmV0dXJuIGZpZWxkcwot
Ci0gICAgZGVmIF9yZWFkX25hbWUoc2VsZik6Ci0gICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUv
IGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgIG5hbWUgPSAnJwotICAgICAgICB3aGlsZSBU
cnVlOgotICAgICAgICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgot
ICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAg
ICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3Rl
ZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKLSAgICAgICAgICAgIGVs
aWYgY2ggPT0gJzonOiAgIyAweDNBCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUKLSAgICAg
ICAgICAgIGVsaWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIFJhbmdlIDB4MzEgdG8gMHg1
QQotICAgICAgICAgICAgICAgIGNoID0gY2hyKG9yZChjaCkgKyAweDIwKQotICAgICAgICAgICAg
ICAgIG5hbWUgKz0gY2gKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbmFtZSAr
PSBjaAotCi0gICAgZGVmIF9za2lwX3NwYWNlcyhzZWxmKToKLSAgICAgICAgIyA0LjEgMzUuIHJl
YWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAg
ICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBj
aCA9PSAnICc6ICAjIDB4MjAKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg
cmV0dXJuIGNoCi0KLSAgICBkZWYgX3JlYWRfdmFsdWUoc2VsZiwgY2gpOgotICAgICAgICAjIDQu
MSAzMy4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAgICAgdmFsdWUgPSAn
JwotICAgICAgICAjIDQuMSAzNi4gcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIuCi0gICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlCi0gICAgICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEK
LSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciB2YWx1ZSAlcicgJSB2
YWx1ZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdmFsdWUgKz0gY2gKLSAg
ICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotCi0KLWRlZiBf
Z2V0X3Blcm1lc3NhZ2VfZGVmbGF0ZV9mcmFtZXIoZXh0ZW5zaW9uX3Jlc3BvbnNlKToKLSAgICAi
IiJWYWxpZGF0ZSB0aGUgcmVzcG9uc2UgYW5kIHJldHVybiBhIGZyYW1lciBvYmplY3QgdXNpbmcg
dGhlIHBhcmFtZXRlcnMgaW4KLSAgICB0aGUgcmVzcG9uc2UuIFRoaXMgbWV0aG9kIGRvZXNuJ3Qg
YWNjZXB0IHRoZSBzZXJ2ZXJfLiogcGFyYW1ldGVycy4KLSAgICAiIiIKLQotICAgIGNsaWVudF9t
YXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSBO
b25lCi0KLSAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUgPSAoCi0gICAgICAgICAgICBQ
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAg
X0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgY2xpZW50X25vX2NvbnRleHRfdGFr
ZW92ZXJfbmFtZSA9ICgKLSAgICAgICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yLgotICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX05PX0NPTlRFWFRfVEFLRU9WRVJf
UEFSQU0pCi0KLSAgICAjIFdlIGRpZG4ndCBzZW5kIGFueSBzZXJ2ZXJfLiogcGFyYW1ldGVyLgot
ICAgICMgSGFuZGxlIHRob3NlIHBhcmFtZXRlcnMgYXMgaW52YWxpZCBpZiBmb3VuZCBpbiB0aGUg
cmVzcG9uc2UuCi0KLSAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUgaW4gZXh0ZW5zaW9u
X3Jlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlmIHBhcmFtX25hbWUgPT0gY2xp
ZW50X21heF93aW5kb3dfYml0c19uYW1lOgotICAgICAgICAgICAgaWYgY2xpZW50X21heF93aW5k
b3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hh
a2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aXBsZSAlcyBmb3VuZCcgJSBj
bGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUpCi0KLSAgICAgICAgICAgIHBhcnNlZF92YWx1ZSA9
IF9wYXJzZV93aW5kb3dfYml0cyhwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgIGlmIHBhcnNlZF92
YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZCAlczogJXInICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUsIHBhcmFtX3ZhbHVlKSkKLSAg
ICAgICAgICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHMgPSBwYXJzZWRfdmFsdWUKLSAgICAgICAg
ZWxpZiBwYXJhbV9uYW1lID09IGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWU6Ci0gICAg
ICAgICAgICBpZiBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdNdWx0aXBsZSAlcyBmb3VuZCcgJSBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9u
YW1lKQotCi0gICAgICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICdCYWQgJXM6IEhhcyB2YWx1ZSAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGNs
aWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUsIHBhcmFtX3ZhbHVlKSkKLSAgICAgICAgICAg
IGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gVHJ1ZQotCi0gICAgaWYgY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXIgaXMgTm9uZToKLSAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXIgPSBGYWxzZQotCi0gICAgcmV0dXJuIF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcihjbGllbnRf
bWF4X3dpbmRvd19iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50X25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vz
c29yKENsaWVudEhhbmRzaGFrZUJhc2UpOgotICAgICIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRz
aGFrZSBwcm9jZXNzb3IgZm9yCi0gICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3Rv
Y29sLTA2IGFuZCBsYXRlci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2Nr
ZXQsIG9wdGlvbnMpOgotICAgICAgICBzdXBlcihDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IsIHNl
bGYpLl9faW5pdF9fKCkKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLSAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6Ci0gICAgICAg
ICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0Lgot
Ci0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5k
c2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICByZXF1ZXN0X2xpbmUgPSBfYnVp
bGRfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAlcics
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2xpbmUpCi0gICAgICAgIHNlbGYu
X3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBmaWVsZHMgPSBbXQotICAg
ICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxm
Ll9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJf
cG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoX1VQR1JBREVfSEVBREVSKQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNU
SU9OX0hFQURFUikKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5vcmlnaW4gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnByb3RvY29sX3ZlcnNpb24gPT0gX1BST1RP
Q09MX1ZFUlNJT05fSFlCSTA4OgotICAgICAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdp
bl9oZWFkZXIoCi0gICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX09SSUdJ
Tl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hl
YWRlcihjb21tb24uT1JJR0lOX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLQotICAgICAgICBvcmlnaW5h
bF9rZXkgPSBvcy51cmFuZG9tKDE2KQotICAgICAgICBzZWxmLl9rZXkgPSBiYXNlNjQuYjY0ZW5j
b2RlKG9yaWdpbmFsX2tleSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJyVzOiAlciAoJXMpJywKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9I
RUFERVIsCi0gICAgICAgICAgICBzZWxmLl9rZXksCi0gICAgICAgICAgICB1dGlsLmhleGlmeShv
cmlnaW5hbF9rZXkpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKAotICAgICAgICAgICAgJyVzOiAl
c1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsIHNlbGYuX2tleSkpCi0K
LSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRlciA+IDA6Ci0gICAgICAgICAg
ICBmaWVsZHMuYXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJT
SU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudmVyc2lvbl9oZWFkZXIpKQotICAgICAgICBlbGlmIHNlbGYuX29wdGlvbnMu
cHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6Ci0gICAgICAgICAg
ICBmaWVsZHMuYXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJT
SU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bW1vbi5WRVJTSU9OX0hZQkkwOCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWVsZHMu
YXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURF
UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5WRVJT
SU9OX0hZQklfTEFURVNUKSkKLQotICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QgPSBbXQot
Ci0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgIGV4
dGVuc2lvbnNfdG9fcmVxdWVzdC5hcHBlbmQoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pKQotCi0gICAgICAg
IGlmIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZToKLSAgICAgICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICAgICAgIyBBY2Nl
cHQgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlciBieSBkZWZh
dWx0LgotICAgICAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAg
ICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAg
ICAgICAgICAgICBOb25lKQotICAgICAgICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0LmFwcGVu
ZChleHRlbnNpb24pCi0KLSAgICAgICAgaWYgbGVuKGV4dGVuc2lvbnNfdG9fcmVxdWVzdCkgIT0g
MDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgJyVzOiAlc1xy
XG4nICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19I
RUFERVIsCi0gICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9ucyhleHRlbnNp
b25zX3RvX3JlcXVlc3QpKSkKLQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAg
ICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0KLSAgICAgICAgc2VsZi5fc29ja2V0
LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBjbGll
bnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgaGVhZGVyczogJXInLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmllbGRzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N0YXJ0IHJlYWRp
bmcgU3RhdHVzLUxpbmUnKQotCi0gICAgICAgIHN0YXR1c19saW5lID0gJycKLSAgICAgICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAx
KQotICAgICAgICAgICAgc3RhdHVzX2xpbmUgKz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09ICdc
bic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBtID0gcmUubWF0Y2goJ0hUVFAv
XFxkK1xcLlxcZCsgKFxcZFxcZFxcZCkgLipcclxuJywgc3RhdHVzX2xpbmUpCi0gICAgICAgIGlm
IG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAg
ICAgICAgICAgICAgICdXcm9uZyBzdGF0dXMgbGluZSBmb3JtYXQ6ICVyJyAlIHN0YXR1c19saW5l
KQotICAgICAgICBzdGF0dXNfY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgaWYgc3RhdHVzX2Nv
ZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1VuZXhwZWN0ZWQg
c3RhdHVzIGNvZGUgJXMgd2l0aCBmb2xsb3dpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdoZWFkZXJzOiAlcicsIHN0YXR1c19jb2RlLCBzZWxmLl9yZWFkX2ZpZWxkcygpKQot
ICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAg
J0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlcicgJSBzdGF0dXNfY29k
ZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIHZhbGlkIFN0YXR1cy1M
aW5lJykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdGFydCByZWFkaW5nIGhlYWRlcnMg
dW50aWwgd2Ugc2VlIGFuIGVtcHR5IGxpbmUnKQotCi0gICAgICAgIGZpZWxkcyA9IHNlbGYuX3Jl
YWRfZmllbGRzKCkKLQotICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
MSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3Vu
ZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZvciBoZWFkZXIgJwotICAgICAgICAgICAgICAg
ICduYW1lICVyJyAlIChjaCwgdmFsdWUsIG5hbWUpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnUmVjZWl2ZWQgYW4gZW1wdHkgbGluZScpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnU2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0g
ICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAot
ICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldF
QlNPQ0tFVF9VUEdSQURFX1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBfdmFs
aWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAgICAgICAgICAg
IGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0NP
Tk5FQ1RJT05fVFlQRSwKLSAgICAgICAgICAgIEZhbHNlKQotCi0gICAgICAgIGFjY2VwdCA9IF9n
ZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywgY29tbW9uLlNFQ19XRUJT
T0NLRVRfQUNDRVBUX0hFQURFUikKLQotICAgICAgICAjIFZhbGlkYXRlCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGJpbmFyeV9hY2NlcHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2VwdCkKLSAg
ICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyJyAlCi0g
ICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2Vw
dCkpCi0KLSAgICAgICAgaWYgbGVuKGJpbmFyeV9hY2NlcHQpICE9IDIwOgotICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0RlY29kZWQgdmFs
dWUgb2YgJXMgaXMgbm90IDIwLWJ5dGUgbG9uZycgJQotICAgICAgICAgICAgICAgIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgJ1Jlc3BvbnNlIGZvciBjaGFsbGVuZ2UgOiAlciAoJXMpJywKLSAgICAg
ICAgICAgIGFjY2VwdCwgdXRpbC5oZXhpZnkoYmluYXJ5X2FjY2VwdCkpCi0KLSAgICAgICAgYmlu
YXJ5X2V4cGVjdGVkX2FjY2VwdCA9IHV0aWwuc2hhMV9oYXNoKAotICAgICAgICAgICAgc2VsZi5f
a2V5ICsgY29tbW9uLldFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICAgICAgZXhw
ZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0KQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3RlZCByZXNw
b25zZSBmb3IgY2hhbGxlbmdlOiAlciAoJXMpJywKLSAgICAgICAgICAgIGV4cGVjdGVkX2FjY2Vw
dCwgdXRpbC5oZXhpZnkoYmluYXJ5X2V4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgaWYgYWNj
ZXB0ICE9IGV4cGVjdGVkX2FjY2VwdDoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFr
ZUVycm9yKAotICAgICAgICAgICAgICAgICdJbnZhbGlkICVzIGhlYWRlcjogJXIgKGV4cGVjdGVk
OiAlcyknICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hF
QURFUiwgYWNjZXB0LCBleHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
YWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQgPSBG
YWxzZQotCi0gICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyID0gZmllbGRzLmdldCgKLSAgICAgICAg
ICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLmxvd2VyKCkpCi0gICAg
ICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICBpZiBleHRlbnNpb25zX2hlYWRl
ciBpcyBub3QgTm9uZSBhbmQgbGVuKGV4dGVuc2lvbnNfaGVhZGVyKSAhPSAwOgotICAgICAgICAg
ICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKGV4dGVuc2lv
bnNfaGVhZGVyWzBdKQotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgdGhlIG5ldyBz
dHlsZSBwZXJmcmFtZSBjb21wcmVzc2lvbiBleHRlbnNpb24uCi0gICAgICAgIGZvciBleHRlbnNp
b24gaW4gYWNjZXB0ZWRfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIGV4dGVuc2lvbl9uYW1lID0g
ZXh0ZW5zaW9uLm5hbWUoKQotICAgICAgICAgICAgaWYgKGV4dGVuc2lvbl9uYW1lID09IGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBhbmQKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLmRlZmxhdGVfZnJhbWUpOgotICAgICAgICAgICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0
ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgICAgICAgICB1bnVzZWRfZXh0ZW5zaW9u
X3Jlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSA9IHByb2Nlc3NvcgotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIChleHRlbnNpb25fbmFtZSA9PSBjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiBhbmQKLSAgICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICAgICAgcGVy
bWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkID0gVHJ1ZQotCi0gICAgICAgICAgICAgICAgZnJhbWVy
ID0gX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhbWVyKGV4dGVuc2lvbikKLSAgICAgICAgICAg
ICAgICBmcmFtZXIuc2V0X2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQoVHJ1ZSkKLSAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgPSBmcmFtZXIKLSAg
ICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hh
a2VFcnJvcigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBleHRlbnNpb24gJXInICUgZXh0
ZW5zaW9uX25hbWUpCi0KLSAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBh
bmQgbm90IGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCAlcywgYnV0IHRoZSBz
ZXJ2ZXIgcmVqZWN0ZWQgaXQnICUKLSAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFN
RV9FWFRFTlNJT04pCi0KLSAgICAgICAgaWYgKHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2Vf
ZGVmbGF0ZSBhbmQKLSAgICAgICAgICAgIG5vdCBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQp
OgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCi0gICAg
ICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRsZSBTZWMtV2ViU29ja2V0LVByb3RvY29sCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEhhbmRsZSBDb29raWUsIGV0Yy4KLQotCi1jbGFzcyBD
bGllbnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAoQ2xpZW50SGFuZHNoYWtlQmFzZSk6Ci0gICAg
IiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IKLSAgICBkcmFmdC1p
ZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAgKGVxdWl2YWxlbnQgdG8KLSAgICBkcmFm
dC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03NikuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgc29ja2V0LCBvcHRpb25zKToKLSAgICAgICAgc3VwZXIoQ2xpZW50SGFuZHNo
YWtlUHJvY2Vzc29ySHliaTAwLCBzZWxmKS5fX2luaXRfXygpCi0KLSAgICAgICAgc2VsZi5fc29j
a2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgaWYg
KHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSBvcgotICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy51c2VfcGVybWVzc2FnZV9kZWZsYXRlKToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J0h5QmkgMDAgZG9lc25cJ3Qgc3VwcG9ydCBleHRlbnNpb25zLicpCi0gICAgICAgICAgICBzeXMu
ZXhpdCgxKQotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybXMg
b3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmllZCBzb2NrZXQuCi0KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtlRXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChfYnVpbGRfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9u
cy5yZXNvdXJjZSkpCi0gICAgICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBs
aXN0IG9mIHN0cmluZ3MuCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFk
ZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBm
aWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUl9ISVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBB
ZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAg
IGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotICAgICAgICAjIDQuMSA5LTEyLiBB
ZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1h
dF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRv
IC9maWVsZHMvLgotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5vcmlnaW46Ci0gICAgICAg
ICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnU3BlY2lm
eSB0aGUgb3JpZ2luIG9mIHRoZSBjb25uZWN0aW9uIGJ5IC0tb3JpZ2luIGZsYWcnKQotICAgICAg
ICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVSLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkK
LSAgICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxk
IHRvIC9maWVsZHMvLgotICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMg
dG8gL2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtl
eTxuPiB0byAvZmllbGRzLy4KLSAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dl
bmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdO
dW1iZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAl
c1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVSLCBrZXkxKSkKLSAgICAg
ICAgc2VsZi5fbnVtYmVyMiwga2V5MiA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5
KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIyOiAlZCcsIHNlbGYuX251bWJl
cjIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKGNvbW1vbi5TRUNfV0VC
U09DS0VUX0tFWTJfSEVBREVSLCBrZXkyKSkKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczog
MFxyXG4nICUgY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSKQotCi0gICAgICAgICMg
NC4xIDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2ZpZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVyOiBz
ZW5kIHRoZQotICAgICAgICAjIHN0cmluZywgZW5jb2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQgYnkg
YSBVVEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFHRQotICAgICAgICAjIFJFVFVSTiBVKzAwMEEg
TElORSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgcmFuZG9tLnNodWZmbGUo
ZmllbGRzKQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAgICMgNC4xIDI1LiBzZW5kIGEgVVRGLTgtZW5j
b2RlZCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQKLSAgICAgICAgIyBj
aGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxu
JykKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBv
ZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRv
bSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAg
IHNlbGYuX2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9rZXkzKCkKLSAgICAgICAgIyA0LjEgMjcuIHNl
bmQgL2tleTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNl
bGYuX2tleTMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdLZXkz
OiAlciAoJXMpJywgc2VsZi5fa2V5MywgdXRpbC5oZXhpZnkoc2VsZi5fa2V5MykpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgaGFuZHNoYWtlJykKLQotICAgICAgICAjIDQuMSAy
OC4gUmVhZCBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIgdW50aWwgZWl0aGVyIHRoZSBjb25uZWN0aW9u
Ci0gICAgICAgICMgY2xvc2VzLCBvciBhIDB4MEEgYnl0ZSBpcyByZWFkLiBsZXQgL2ZpZWxkLyBi
ZSB0aGVzZSBieXRlcywgaW5jbHVkaW5nCi0gICAgICAgICMgdGhlIDB4MEEgYnl0ZXMuCi0gICAg
ICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3Jl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAg
ICAgICAgICAgIGlmIGNoID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
IyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFzdCBzZXZlbiBieXRlcyBsb25nLCBvciBpZiB0aGUg
bGFzdAotICAgICAgICAjIHR3byBieXRlcyBhcmVuJ3QgMHgwRCBhbmQgMHgwQSByZXNwZWN0aXZl
bHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAgICAgICMgY29udGFpbiBhdCBsZWFzdCB0d28gMHgy
MCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbgotICAgICAgICAjIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZp
ZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VF
cnJvcignV3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBtID0gcmUubWF0
Y2goJ1teIF0qIChbXiBdKikgLionLCBmaWVsZCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ05v
IEhUVFAgc3RhdHVzIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAg
ICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUgc3Vic3RyaW5nIG9mIC9maWVsZC8gdGhh
dCBzdGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBieXRlIGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5
dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3JlIHRoZQotICAgICAgICAjIHNlY29uZCAw
eDIwIGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgICMgNC4xIDMwLiBp
ZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcsIG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMg
aW4KLSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0
aGVuIGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAgICAjIGNvbm5lY3Rpb24gYW5kIGFib3J0IHRo
ZXNlIHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNv
ZGUpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAg
ICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBs
aW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4x
IDMxLiBpZiAvY29kZS8sIGludGVycHJldGVkIGFzIFVURi04LCBpcyAiMTAxIiwgdGhlbiBtb3Zl
IHRvIHRoZQotICAgICAgICAjIG5leHQgc3RlcC4KLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxp
bmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0
LjEgMzItMzkuIHJlYWQgZmllbGRzIGludG8gL2ZpZWxkcy8KLSAgICAgICAgZmllbGRzID0gc2Vs
Zi5fcmVhZF9maWVsZHMoKQotICAgICAgICAjIDQuMSA0MC4gX0ZpZWxkcyBwcm9jZXNzaW5nXwot
ICAgICAgICAjIHJlYWQgYSBieXRlIGZyb20gc2VydmVyCi0gICAgICAgIGNoID0gX3JlY2VpdmVf
Ynl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0g
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcignRXhwZWN0ZWQgTEYgYnV0IGZv
dW5kICVyJyAlIGNoKQotICAgICAgICAjIDQuMSA0MS4gY2hlY2sgL2ZpZWxkcy8KLSAgICAgICAg
IyBUT0RPKHVrYWkpOiBwcm90b2NvbAotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMg
InVwZ3JhZGUiCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0
byB0aGUgc3RyaW5nICJXZWJTb2NrZXQiLAotICAgICAgICAjICB0aGVuIGZhaWwgdGhlIFdlYlNv
Y2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgX3ZhbGlkYXRl
X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21t
b24uVVBHUkFERV9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVf
VFlQRV9ISVhJRTc1LAotICAgICAgICAgICAgVHJ1ZSkKLSAgICAgICAgIyBpZiB0aGUgZW50cnkn
cyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRl
ZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCi0gICAgICAgICMgIHRv
IHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9u
IGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgX3ZhbGlkYXRlX21h
bmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24u
Q09OTkVDVElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9DT05ORUNUSU9O
X1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBvcmlnaW4gPSBfZ2V0X21hbmRh
dG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX09S
SUdJTl9IRUFERVIpCi0KLSAgICAgICAgbG9jYXRpb24gPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIo
Ci0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURF
UikKLQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIG9yaWdpbiwgbG9jYXRpb24sIGNvb2tp
ZSwgLi4KLQotICAgICAgICAjIDQuMSA0Mi4gbGV0IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRl
bmF0aW9uIG9mIC9udW1iZXJfMS8sCi0gICAgICAgICMgZXhwcmVzc2VkIGFzIGEgYmlnIGVuZGlh
biAzMiBiaXQgaW50ZWdlciwgL251bWJlcl8yLywgZXhwcmVzc2VkCi0gICAgICAgICMgYXMgYmln
IGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgYW5kIHRoZSBlaWdodCBieXRlcyBvZiAva2V5XzMvIGlu
IHRoZQotICAgICAgICAjIG9yZGVyIHRoZXkgd2VyZSBzZW50IG9uIHRoZSB3aXJlLgotICAgICAg
ICBjaGFsbGVuZ2UgPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBj
aGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMikKLSAgICAgICAgY2hh
bGxlbmdlICs9IHNlbGYuX2tleTMKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywgY2hhbGxlbmdlLCB1dGlsLmhleGlmeShjaGFs
bGVuZ2UpKQotCi0gICAgICAgICMgNC4xIDQzLiBsZXQgL2V4cGVjdGVkLyBiZSB0aGUgTUQ1IGZp
bmdlcnByaW50IG9mIC9jaGFsbGVuZ2UvIGFzIGEKLSAgICAgICAgIyBiaWctZW5kaWFuIDEyOCBi
aXQgc3RyaW5nLgotICAgICAgICBleHBlY3RlZCA9IHV0aWwubWQ1X2hhc2goY2hhbGxlbmdlKS5k
aWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0
ZWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywKLSAgICAgICAgICAgIGV4cGVjdGVkLCB1
dGlsLmhleGlmeShleHBlY3RlZCkpCi0KLSAgICAgICAgIyA0LjEgNDQuIHJlYWQgc2l4dGVlbiBi
eXRlcyBmcm9tIHRoZSBzZXJ2ZXIuCi0gICAgICAgICMgbGV0IC9yZXBseS8gYmUgdGhvc2UgYnl0
ZXMuCi0gICAgICAgIHJlcGx5ID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxNikKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0FjdHVhbCBjaGFsbGVuZ2Ug
cmVzcG9uc2U6ICVyICglcyknLCByZXBseSwgdXRpbC5oZXhpZnkocmVwbHkpKQotCi0gICAgICAg
ICMgNC4xIDQ1LiBpZiAvcmVwbHkvIGRvZXMgbm90IGV4YWN0bHkgZXF1YWwgL2V4cGVjdGVkLywg
dGhlbiBmYWlsCi0gICAgICAgICMgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZXhwZWN0ZWQgIT0gcmVwbHk6Ci0gICAgICAgICAgICBy
YWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnQmFkIGNoYWxsZW5n
ZSByZXNwb25zZTogJXIgKGV4cGVjdGVkKSAhPSAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAg
ICAgIChleHBlY3RlZCwgcmVwbHkpKQotICAgICAgICAjIDQuMSA0Ni4gVGhlICpXZWJTb2NrZXQg
Y29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCouCi0KLSAgICBkZWYgX2dlbmVyYXRlX3NlY193ZWJz
b2NrZXRfa2V5KHNlbGYpOgotICAgICAgICAjIDQuMSAxNi4gbGV0IC9zcGFjZXNfbi8gYmUgYSBy
YW5kb20gaW50ZWdlciBmcm9tIDEgdG8gMTIgaW5jbHVzaXZlLgotICAgICAgICBzcGFjZXMgPSBy
YW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAgIyA0LjEgMTcuIGxldCAvbWF4X24vIGJlIHRo
ZSBsYXJnZXN0IGludGVnZXIgbm90IGdyZWF0ZXIgdGhhbgotICAgICAgICAjICA0LDI5NCw5Njcs
Mjk1IGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgbWF4bnVtID0gNDI5NDk2NzI5NSAv
IHNwYWNlcwotICAgICAgICAjIDQuMSAxOC4gbGV0IC9udW1iZXJfbi8gYmUgYSByYW5kb20gaW50
ZWdlciBmcm9tIDAgdG8gL21heF9uLwotICAgICAgICAjIGluY2x1c2l2ZS4KLSAgICAgICAgbnVt
YmVyID0gcmFuZG9tLnJhbmRpbnQoMCwgbWF4bnVtKQotICAgICAgICAjIDQuMSAxOS4gbGV0IC9w
cm9kdWN0X24vIGJlIHRoZSByZXN1bHQgb2YgbXVsdGlwbHlpbmcgL251bWJlcl9uLyBhbmQKLSAg
ICAgICAgIyAvc3BhY2VzX24vIHRvZ2V0aGVyLgotICAgICAgICBwcm9kdWN0ID0gbnVtYmVyICog
c3BhY2VzCi0gICAgICAgICMgNC4xIDIwLiBsZXQgL2tleV9uLyBiZSBhIHN0cmluZyBjb25zaXN0
aW5nIG9mIC9wcm9kdWN0X24vLCBleHByZXNzZWQKLSAgICAgICAgIyBpbiBiYXNlIHRlbiB1c2lu
ZyB0aGUgbnVtZXJhbHMgaW4gdGhlIHJhbmdlIFUrMDAzMCBESUdJVCBaRVJPICgwKSB0bwotICAg
ICAgICAjIFUrMDAzOSBESUdJVCBOSU5FICg5KS4KLSAgICAgICAga2V5ID0gc3RyKHByb2R1Y3Qp
Ci0gICAgICAgICMgNC4xIDIxLiBpbnNlcnQgYmV0d2VlbiBvbmUgYW5kIHR3ZWx2ZSByYW5kb20g
Y2hhcmFjdGVycyBmcm9tIHRoZQotICAgICAgICAjIHJhbmdlIFUrMDAyMSB0byBVKzAwMkYgYW5k
IFUrMDAzQSB0byBVKzAwN0UgaW50byAva2V5X24vIGF0IHJhbmRvbQotICAgICAgICAjIHBvc2l0
aW9ucy4KLSAgICAgICAgYXZhaWxhYmxlX2NoYXJzID0gcmFuZ2UoMHgyMSwgMHgyZiArIDEpICsg
cmFuZ2UoMHgzYSwgMHg3ZSArIDEpCi0gICAgICAgIG4gPSByYW5kb20ucmFuZGludCgxLCAxMikK
LSAgICAgICAgZm9yIF8gaW4geHJhbmdlKG4pOgotICAgICAgICAgICAgY2ggPSByYW5kb20uY2hv
aWNlKGF2YWlsYWJsZV9jaGFycykKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDAs
IGxlbihrZXkpKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArIGNocihjaCkgKyBrZXlb
cG9zOl0KLSAgICAgICAgIyA0LjEgMjIuIGluc2VydCAvc3BhY2VzX24vIFUrMDAyMCBTUEFDRSBj
aGFyYWN0ZXJzIGludG8gL2tleV9uLyBhdAotICAgICAgICAjIHJhbmRvbSBwb3NpdGlvbnMgb3Ro
ZXIgdGhhbiBzdGFydCBvciBlbmQgb2YgdGhlIHN0cmluZy4KLSAgICAgICAgZm9yIF8gaW4geHJh
bmdlKHNwYWNlcyk6Ci0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgxLCBsZW4oa2V5
KSAtIDEpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgJyAnICsga2V5W3BvczpdCi0g
ICAgICAgIHJldHVybiBudW1iZXIsIGtleQotCi0gICAgZGVmIF9nZW5lcmF0ZV9rZXkzKHNlbGYp
OgotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBjb25zaXN0aW5nIG9m
IGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50bHksIGEgcmFuZG9t
IDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVyKS4KLSAgICAgICAg
cmV0dXJuICcnLmpvaW4oW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgXyBpbiB4cmFu
Z2UoOCldKQotCi0KLWNsYXNzIENsaWVudENvbm5lY3Rpb24ob2JqZWN0KToKLSAgICAiIiJBIHdy
YXBwZXIgZm9yIHNvY2tldCBvYmplY3QgdG8gcHJvdmlkZSB0aGUgbXBfY29ubiBpbnRlcmZhY2Uu
Ci0gICAgbW9kX3B5d2Vic29ja2V0IGxpYnJhcnkgaXMgZGVzaWduZWQgdG8gYmUgd29ya2luZyBv
biBBcGFjaGUgbW9kX3B5dGhvbidzCi0gICAgbXBfY29ubiBvYmplY3QuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29j
a2V0Ci0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKGRhdGEpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBuKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3NvY2tldC5yZWN2KG4pCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fc29ja2V0LmdldHBlZXJuYW1lKCkKLSAgICByZW1vdGVfYWRkciA9
IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotCi1jbGFzcyBDbGllbnRSZXF1ZXN0KG9iamVj
dCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNsYXNzIGp1c3QgdG8gbWFrZSBpdCBhYmxlIHRvIHBhc3Mg
YSBzb2NrZXQgb2JqZWN0IHRvCi0gICAgZnVuY3Rpb25zIHRoYXQgZXhwZWN0IGEgbXBfcmVxdWVz
dCBvYmplY3QuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAg
ICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IENsaWVu
dENvbm5lY3Rpb24oc29ja2V0KQotCi0KLWRlZiBfaW1wb3J0X3NzbCgpOgotICAgIGdsb2JhbCBz
c2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzc2wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAg
ICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBfaW1w
b3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBPcGVuU1NMCi0gICAgdHJ5OgotICAgICAgICBp
bXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0
RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIEVjaG9DbGllbnQob2JqZWN0
KToKLSAgICAiIiJXZWJTb2NrZXQgZWNobyBjbGllbnQuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAg
IHNlbGYuX3NvY2tldCA9IE5vbmUKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9j
bGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICIiIlJ1biB0
aGUgY2xpZW50LgotCi0gICAgICAgIFNoYWtlIGhhbmRzIGFuZCB0aGVuIHJlcGVhdCBzZW5kaW5n
IG1lc3NhZ2UgYW5kIHJlY2VpdmluZyBpdHMgZWNoby4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
c2VsZi5fc29ja2V0ID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZXR0
aW1lb3V0KHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVvdXQpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHNlbGYuX3NvY2tldC5jb25uZWN0KChzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3Bv
cnQpKQotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3NvY2tldCA9IF9UTFNTb2NrZXQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3NvY2tldCwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfbW9kdWxlLAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnRsc192ZXJzaW9uLAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uKQotCi0gICAg
ICAgICAgICB2ZXJzaW9uID0gc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uCi0KLSAgICAg
ICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAg
ICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCwgc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAg
IGVsaWYgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICdJbnZhbGlkIC0tcHJvdG9jb2wtdmVyc2lvbiBmbGFnOiAlcicgJSB2ZXJzaW9uKQot
Ci0gICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKCkKLQotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgICAgICAg
ICByZXF1ZXN0ID0gQ2xpZW50UmVxdWVzdChzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgICAgIHZl
cnNpb25fbWFwID0gewotICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODog
Y29tbW9uLlZFUlNJT05fSFlCSTA4LAotICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9O
X0hZQkkxMzogY29tbW9uLlZFUlNJT05fSFlCSTEzLAotICAgICAgICAgICAgICAgIF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwMDogY29tbW9uLlZFUlNJT05fSFlCSTAwfQotICAgICAgICAgICAgcmVx
dWVzdC53c192ZXJzaW9uID0gdmVyc2lvbl9tYXBbdmVyc2lvbl0KLQotICAgICAgICAgICAgaWYg
KHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4IG9yCi0gICAgICAgICAgICAgICAg
dmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMpOgotICAgICAgICAgICAgICAgIHN0
cmVhbV9vcHRpb24gPSBTdHJlYW1PcHRpb25zKCkKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0
aW9uLm1hc2tfc2VuZCA9IFRydWUKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0aW9uLnVubWFz
a19yZWNlaXZlID0gRmFsc2UKLQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVm
bGF0ZV9mcmFtZSBpcyBub3QgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9
IHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbikKLQotICAgICAgICAgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSBpcyBub3QgRmFsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGZyYW1lciA9IHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2Vf
ZGVmbGF0ZQotICAgICAgICAgICAgICAgICAgICBmcmFtZXIuc2V0dXBfc3RyZWFtX29wdGlvbnMo
c3RyZWFtX29wdGlvbikKLQotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbSA9IFN0cmVhbShy
ZXF1ZXN0LCBzdHJlYW1fb3B0aW9uKQotICAgICAgICAgICAgZWxpZiB2ZXJzaW9uID09IF9QUk9U
T0NPTF9WRVJTSU9OX0hZQkkwMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJl
YW1IaXhpZTc1KHJlcXVlc3QsIFRydWUpCi0KLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYu
X29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVh
bS5zZW5kX21lc3NhZ2UobGluZSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZl
cmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCdTZW5kOiAlcycgJSBsaW5lKQotICAg
ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLl9z
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnUmVjdjogJXMn
ICUgcmVjZWl2ZWQpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAg
ICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwcmludCgnRXJyb3I6ICVzJyAlIGUpCi0gICAgICAgICAgICAgICAgICAgIHJh
aXNlCi0KLSAgICAgICAgICAgIHNlbGYuX2RvX2Nsb3NpbmdfaGFuZHNoYWtlKCkKLSAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCi0KLSAgICBkZWYgX2Rv
X2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtIGNsb3NpbmcgaGFu
ZHNoYWtlIHVzaW5nIHRoZSBzcGVjaWZpZWQgY2xvc2luZyBmcmFtZS4iIiIKLQotICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKVstMV0gPT0gX0dPT0RCWUVfTUVTU0FH
RToKLSAgICAgICAgICAgICMgcmVxdWVzdGVkIHNlcnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5k
c2hha2UsIHNvCi0gICAgICAgICAgICAjIGV4cGVjdGluZyBjbG9zaW5nIGhhbmRzaGFrZSBtZXNz
YWdlIGZyb20gc2VydmVyLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1dhaXQgZm9y
IHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAgICAgbWVzc2Fn
ZSA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgaWYgbWVzc2Fn
ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHByaW50KCdSZWN2IGNsb3NlJykKLSAgICAgICAg
ICAgICAgICBwcmludCgnU2VuZCBhY2snKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UgYW5k
IHNlbnQgYWNrJykKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcHJpbnQoJ1NlbmQg
Y2xvc2UnKQotICAgICAgICBzZWxmLl9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgcHJp
bnQoJ1JlY3YgYWNrJykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1JlY2VpdmVkIGFjaycp
Ci0KLQotZGVmIG1haW4oKToKLSAgICBzeXMuc3Rkb3V0ID0gY29kZWNzLmdldHdyaXRlcigndXRm
LTgnKShzeXMuc3Rkb3V0KQotCi0gICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKLSAgICAjIFdl
IGFjY2VwdCAtLWNvbW1hbmRfbGluZV9mbGFnIHN0eWxlIGZsYWdzIHdoaWNoIGlzIHRoZSBzYW1l
IGFzIEdvb2dsZQotICAgICMgZ2ZsYWdzIGluIGFkZGl0aW9uIHRvIGNvbW1vbiAtLWNvbW1hbmQt
bGluZS1mbGFnIHN0eWxlIGZsYWdzLgotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNl
cnZlci1ob3N0JywgJy0tc2VydmVyX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3NlcnZlcl9ob3N0JywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PSdsb2NhbGhvc3QnLCBoZWxwPSdzZXJ2ZXIgaG9zdCcpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1wJywgJy0tc2VydmVyLXBvcnQnLCAnLS1zZXJ2ZXJfcG9ydCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nc2VydmVyX3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9X1VOREVGSU5FRF9QT1JULCBoZWxwPSdzZXJ2ZXIgcG9ydCcpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1vJywgJy0tb3JpZ2luJywgZGVzdD0nb3JpZ2luJywgdHlwZT0n
c3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9J29yaWdp
bicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1yJywgJy0tcmVzb3VyY2UnLCBkZXN0PSdyZXNv
dXJjZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nL2Vj
aG8nLCBoZWxwPSdyZXNvdXJjZSBwYXRoJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAn
LS1tZXNzYWdlJywgZGVzdD0nbWVzc2FnZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0oJ2NvbW1hLXNlcGFyYXRlZCBtZXNzYWdlcyB0byBzZW5kLiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAnJXMgd2lsbCBmb3JjZSBjbG9zZSB0aGUgY29ubmVjdGlv
biBmcm9tIHNlcnZlci4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfR09PREJZRV9N
RVNTQUdFKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXEnLCAnLS1xdWlldCcsIGRlc3Q9J3Zl
cmJvc2UnLCBhY3Rpb249J3N0b3JlX2ZhbHNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PVRydWUsIGhlbHA9J3N1cHByZXNzIG1lc3NhZ2VzJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLXQnLCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8p
LiBCeSBkZWZhdWx0LCAnCi0gICAgICAgICAgICAgICAgICAgICAgJ2l0IGxvb2tzIGZvciBzc2wg
YW5kIHB5T3BlblNTTCBtb2R1bGUgYW5kIHVzZXMgZm91bmQgJwotICAgICAgICAgICAgICAgICAg
ICAgICdvbmUuIFVzZSAtLXRscy1tb2R1bGUgb3B0aW9uIHRvIHNwZWNpZnkgd2hpY2ggbW9kdWxl
ICcKLSAgICAgICAgICAgICAgICAgICAgICAndG8gdXNlJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLS10bHMtbW9kdWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9J3Rsc19tb2R1bGUnLAotICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAg
Y2hvaWNlcz1bX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMXSwKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2Ugc3NsIG1vZHVsZSBpZiAiJXMiIGlzIHNwZWNp
ZmllZC4gJwotICAgICAgICAgICAgICAgICAgICAgICdVc2UgcHlPcGVuU1NMIG1vZHVsZSBpZiAi
JXMiIGlzIHNwZWNpZmllZCcgJQotICAgICAgICAgICAgICAgICAgICAgIChfVExTX0JZX1NUQU5E
QVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0wpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LXRscy12ZXJzaW9uJywgJy0tdGxzX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9J3Rsc192ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdzdHJpbmcnLCBk
ZWZhdWx0PV9UTFNfVkVSU0lPTl9TU0wyMywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdU
TFMvU1NMIHZlcnNpb24gdG8gdXNlLiBPbmUgb2YgXCcnICsKLSAgICAgICAgICAgICAgICAgICAg
ICBfVExTX1ZFUlNJT05fU1NMMjMgKyAnXCcgKFNTTCB2ZXJzaW9uIDIgb3IgMyksIFwnJyArCi0g
ICAgICAgICAgICAgICAgICAgICAgX1RMU19WRVJTSU9OX1NTTDMgKyAnXCcgKFNTTCB2ZXJzaW9u
IDMpLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9UTFMxICsgJ1wn
IChUTFMgdmVyc2lvbiAxKScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGlzYWJsZS10bHMt
Y29tcHJlc3Npb24nLCAnLS1kaXNhYmxlX3Rsc19jb21wcmVzc2lvbicsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAotICAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nRGlzYWJsZSBUTFMgY29tcHJlc3Npb24uIEF2YWlsYWJsZSBvbmx5IHdo
ZW4gJwotICAgICAgICAgICAgICAgICAgICAgICdweU9wZW5TU0wgbW9kdWxlIGlzIHVzZWQuJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1zb2NrZXQtdGltZW91dCcsICctLXNvY2tl
dF90aW1lb3V0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzb2NrZXRfdGltZW91dCcs
IHR5cGU9J2ludCcsIGRlZmF1bHQ9X1RJTUVPVVRfU0VDLAotICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J1RpbWVvdXQoc2VjKSBmb3Igc29ja2V0cycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tZHJhZnQ3NScsIGRlc3Q9J2RyYWZ0NzUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nT2Jzb2xldGUgb3B0aW9uLiBEb25cJ3QgdXNlIHRoaXMuJykKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLS1wcm90b2NvbC12ZXJzaW9uJywgJy0tcHJvdG9jb2xfdmVyc2lvbicsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0ncHJvdG9jb2xfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAg
ICAgICAgdHlwZT0nc3RyaW5nJywgZGVmYXVsdD1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMsCi0g
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gdG8g
dXNlLiBPbmUgb2YgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lP
Tl9IWUJJMTMgKyAnXCcsIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZF
UlNJT05fSFlCSTA4ICsgJ1wnLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwMCArICdcJycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdmVyc2lv
bi1oZWFkZXInLCAnLS12ZXJzaW9uX2hlYWRlcicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVz
dD0ndmVyc2lvbl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRl
ZmF1bHQ9LTEsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3BlY2lmeSBTZWMtV2ViU29j
a2V0LVZlcnNpb24gaGVhZGVyIHZhbHVlJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kZWZs
YXRlLWZyYW1lJywgJy0tZGVmbGF0ZV9mcmFtZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVz
dD0nZGVmbGF0ZV9mcmFtZScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90
cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2UgdGhl
IGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdXNl
LXBlcm1lc3NhZ2UtZGVmbGF0ZScsICctLXVzZV9wZXJtZXNzYWdlX2RlZmxhdGUnLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlc3Q9J3VzZV9wZXJtZXNzYWdlX2RlZmxhdGUnLAotICAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nVXNlIHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9u
LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywg
dHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBk
ZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAn
aW5mbycsICd3YXJuJywgJ2Vycm9yJywgJ2NyaXRpY2FsJ10sCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nTG9nIGxldmVsLicpCi0KLSAgICAob3B0aW9ucywgdW51c2VkX2FyZ3MpID0gcGFy
c2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dnaW5n
LmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigpKSkKLQotICAgIGlmIG9wdGlv
bnMuZHJhZnQ3NToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnLS1kcmFmdDc1IG9wdGlvbiBp
cyBvYnNvbGV0ZS4nKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgb3B0aW9ucy5wcm90
b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzU6Ci0gICAgICAgIGxvZ2dp
bmcuY3JpdGljYWwoCi0gICAgICAgICAgICAnVmFsdWUgJXMgaXMgb2Jzb2xldGUgZm9yIC0tcHJv
dG9jb2xfdmVyc2lvbiBvcHRpb25zJyAlCi0gICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9I
SVhJRTc1KQotICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgb3B0aW9ucy51c2VfdGxzOgot
ICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIF9p
bXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19C
WV9TVEFOREFSRF9NT0RVTEUKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBz
c2wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsaWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAg
ICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgPSBfVExTX0JZX1BZT1BFTlNTTAotICAgICAg
ICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1VzaW5nIHB5T3BlblNTTCBtb2R1bGUnKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ1RMUyBzdXBwb3J0IHJlcXVpcmVzIHNzbCBvciBweU9wZW5TU0wgbW9k
dWxlLicpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25z
LnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiBu
b3QgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdzc2wg
bW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0g
ICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAg
ICAgICAgICAgaWYgbm90IF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgncHlPcGVuU1NMIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAg
ICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbG9nZ2lu
Zy5jcml0aWNhbCgnSW52YWxpZCAtLXRscy1tb2R1bGUgb3B0aW9uOiAlcicsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSkKLSAgICAgICAgICAgIHN5cy5l
eGl0KDEpCi0KLSAgICAgICAgaWYgKG9wdGlvbnMuZGlzYWJsZV90bHNfY29tcHJlc3Npb24gYW5k
Ci0gICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgIT0gX1RMU19CWV9QWU9QRU5TU0wpOgot
ICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnWW91IGNhbiBkaXNhYmxlIFRMUyBjb21wcmVz
c2lvbiBvbmx5IHdoZW4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NM
IG1vZHVsZSBpcyB1c2VkLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgIGVsc2U6Ci0g
ICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGxv
Z2dpbmcuY3JpdGljYWwoJ1VzZSAtLXRscy1tb2R1bGUgb3B0aW9uIG9ubHkgdG9nZXRoZXIgd2l0
aCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXVzZS10bHMgb3B0aW9uLicpCi0g
ICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG9wdGlvbnMuZGlzYWJsZV90bHNf
Y29tcHJlc3Npb246Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdVc2UgLS1kaXNhYmxl
LXRscy1jb21wcmVzc2lvbiBvbmx5IHRvZ2V0aGVyICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3dpdGggLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkK
LQotICAgICMgRGVmYXVsdCBwb3J0IG51bWJlciBkZXBlbmRzIG9uIHdoZXRoZXIgVExTIGlzIHVz
ZWQuCi0gICAgaWYgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9PSBfVU5ERUZJTkVEX1BPUlQ6Ci0gICAg
ICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgIG9wdGlvbnMuc2VydmVyX3BvcnQg
PSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tF
VF9QT1JUCi0KLSAgICAjIG9wdHBhcnNlIGRvZXNuJ3Qgc2VlbSB0byBoYW5kbGUgbm9uLWFzY2lp
IGRlZmF1bHQgdmFsdWVzLgotICAgICMgU2V0IGRlZmF1bHQgbWVzc2FnZSBoZXJlLgotICAgIGlm
IG5vdCBvcHRpb25zLm1lc3NhZ2U6Ci0gICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IHUnSGVsbG8s
XHU2NWU1XHU2NzJjJyAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotCi0gICAgRWNob0NsaWVudChv
cHRpb25zKS5ydW4oKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgbWFpbigp
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19u
b2V4dF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFkZjUxNTEyMjcxMTFlMTE0NDI0YzU1ODZhMTQyYTlhZGI3ZDYw
NGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKLQotCi1k
ZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIiIiUmVjZWl2
ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZSBpcyBwYXJzZWQgaW50bwot
ICAgIHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMuIHB5d2Vic29ja2V0IGNyZWF0ZXMg
ZXh0ZW5zaW9uCi0gICAgcHJvY2Vzc29ycyB1c2luZyBpdCBiZWZvcmUgZG9fZXh0cmFfaGFuZHNo
YWtlIGNhbGwgYW5kIG5ldmVyIGxvb2tzIGF0IGl0Ci0gICAgYWZ0ZXIgdGhlIGNhbGwuCi0KLSAg
ICBUbyByZWplY3QgcmVxdWVzdGVkIGV4dGVuc2lvbnMsIGNsZWFyIHRoZSBwcm9jZXNzb3IgbGlz
dC4KLSAgICAiIiIKLQotICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQot
Ci0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgIiIiRWNoby4g
U2FtZSBhcyBlY2hvX3dzaC5weS4iIiIKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUg
PSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlz
IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1
bmljb2RlKToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5l
LCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob193c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvZWNob193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NjQ2
YzMyY2ViNTE1ZjE1ZGQ1NzI2MjI2ODljNzllZTYxZTU0M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fd3NoLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotX0dPT0RCWUVf
TUVTU0FHRSA9IHUnR29vZGJ5ZScKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UocmVxdWVzdCk6Ci0gICAgIyBUaGlzIGV4YW1wbGUgaGFuZGxlciBhY2NlcHRzIGFueSByZXF1
ZXN0LiBTZWUgb3JpZ2luX2NoZWNrX3dzaC5weSBmb3IgaG93Ci0gICAgIyB0byByZWplY3QgYWNj
ZXNzIGZyb20gdW50cnVzdGVkIHNjcmlwdHMgYmFzZWQgb24gb3JpZ2luIHZhbHVlLgotCi0gICAg
cGFzcyAgIyBBbHdheXMgYWNjZXB0LgotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHJlcXVlc3Qud3Nfc3Ry
ZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJldHVybgotICAgICAgICBpZiBpc2luc3RhbmNlKGxpbmUsIHVuaWNvZGUpOgotICAgICAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1GYWxzZSkK
LSAgICAgICAgICAgIGlmIGxpbmUgPT0gX0dPT0RCWUVfTUVTU0FHRToKLSAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNl
bmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9VHJ1ZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZl
bnRzb3VyY2UuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGRkZjIzN2NmN2Q0
NzY0OTczNDdkMDk1YTEyMjk5NDE3N2UxNDA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKKysrIC9kZXYv
bnVsbApAQCAtMSw1NCArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAy
MDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJUaGlzIENHSSBzY3JpcHQgZ2VuZXJhdGVzIHRleHQvZXZlbnQtc3RyZWFtIHR5
cGUgZGF0YSBzdHJlYW0gZm9yIHRlc3RpbmcKLXRoZSBTZXJ2ZXItU2VudCBFdmVudHMuCi0KLUl0
IHdpbGwgb25seSB3b3JrIGNvcnJlY3RseSB3aXRoIEhUVFAgc2VydmVycyB0aGF0IGRvIG5vdCBi
dWZmZXIgdGhlIG91dHB1dCBvZgotQ0dJIHNjcmlwdHMuCi0iIiIKLQotCi1pbXBvcnQgc3lzCi1p
bXBvcnQgdGltZQotCi1zeXMuc3Rkb3V0LndyaXRlKCdDb250ZW50LXR5cGU6IHRleHQvZXZlbnQt
c3RyZWFtXHJcblxyXG4nKQotCi1pZCA9IDAKLQotd2hpbGUgVHJ1ZToKLSAgc3lzLnN0ZG91dC53
cml0ZSgnZGF0YTogSGVsbG9cclxuaWQ6ICVkXHJcblxyXG4nICUgaWQpCi0gIHN5cy5zdGRvdXQu
Zmx1c2goKQotCi0gIGlkID0gaWQgKyAxCi0KLSAgdGltZS5zbGVlcCgxKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2Uu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU5OGE4ODA3ZDFmZmNjZWNmNTg1
ZjFiYjY1NmZkMmQ5MDJmY2QzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDc0ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0g
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08IS0tCi1T
aW1wbGUgZXhhbXBsZSBvZiB0aGUgU2VydmVyLVNlbnQgRXZlbnRzCi1odHRwOi8vZGV2LnczLm9y
Zy9odG1sNS9ldmVudHNvdXJjZS8KLQotRm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgV2ViU29ja2V0
IFByb3RvY29sICYgQVBJLgotCi1SdW4gdGhlIHB5d2Vic29ja2V0IHdpdGggdGhlIC0tY2dpX3Bh
dGggcGFyYW1ldGVyLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2VydmVyLVNlbnQg
RXZlbnRzIEV4YW1wbGU8L3RpdGxlPgotPHNjcmlwdD4KLXZhciBldmVudFNvdXJjZSA9IG51bGw7
Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGRhdGEpIHsKLSAgbG9nQm94LnZhbHVlICs9IGRhdGEgKyAn
XG4nOwotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gaW5pdCgp
IHsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIGV2ZW50
U291cmNlICA9IG5ldyBFdmVudFNvdXJjZSgnL2V2ZW50c291cmNlLmNnaScpOwotICBldmVudFNv
dXJjZS5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICBhZGRUb0xvZygnb25vcGVuIChyZWFkeVN0
YXRlID0gJyArIGV2ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9Ci0gIGV2ZW50U291
cmNlLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgYWRkVG9Mb2coZXZlbnQuZGF0
YSk7Ci0gIH0KLSAgZXZlbnRTb3VyY2Uub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
YWRkVG9Mb2coJ29uZXJyb3IgKHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2UucmVhZHlTdGF0
ZSArICcpJyk7Ci0gIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0
KCkiPgotPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90
ZXh0YXJlYT4KLTxwIHN0eWxlPSJmb250LXNpemU6IHNtYWxsIj4KLSAgTWFrZSBzdXJlIHRoYXQg
cHl3ZWJzb2NrZXQgaXMgcnVuIHdpdGggLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCi08L3A+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDIxMDVlYjY3YTU1MzJiNzZiYzk3YmY4MzEwOGExOWUwNDNlNTRmMzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2ZldGNoX2JlbmNobWFyay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLTwh
LS0KLUNvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi1saWNlbnNl
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLWh0dHBzOi8vZGV2
ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotLS0+Ci08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPkZldGNoIEFQSSBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9
InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iZmV0Y2hfYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12
YXIgYWRkcmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJu
IHsKLSAgICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRC
b29sRnJvbUNoZWNrQm94KCdwcmludHNpemUnKSwKLSAgICBudW1GZXRjaGVzOiBnZXRJbnRGcm9t
SW5wdXQoJ251bUZldGNoZXMnKSwKLSAgICAvLyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMuCi0g
ICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0gICAg
bnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRpb25z
JyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRGcm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAgIC8v
IFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlzIHRo
cmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xkOiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJlc2hv
bGQnKSwKLSAgICBtdWx0aXBsaWVyczogZ2V0RmxvYXRBcnJheUZyb21JbnB1dCgnbXVsdGlwbGll
cnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNrQm94KCd2ZXJpZnlkYXRhJyks
Ci0gICAgYWRkVG9Mb2c6IGFkZFRvTG9nLAotICAgIGFkZFRvU3VtbWFyeTogYWRkVG9TdW1tYXJ5
LAotICAgIG1lYXN1cmVWYWx1ZTogbWVhc3VyZVZhbHVlLAotICAgIG5vdGlmeUFib3J0OiBub3Rp
ZnlBYm9ydAotICB9OwotfQotCi1mdW5jdGlvbiBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZhciBj
b25maWcgPSBnZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJh
ZGlvQm94KCdkYXRhdHlwZXJhZGlvJyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21D
aGVja0JveCgnd29ya2VyJyksICdzZW5kQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uUmVj
ZWl2ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBjb25maWcu
ZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsKLSAgZG9B
Y3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3JlY2VpdmVCZW5j
aG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25CYXRjaEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZp
ZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3go
J3dvcmtlcicpLCAnYmF0Y2hCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25TdG9wKCkgewot
ICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZy
b21DaGVja0JveCgnd29ya2VyJyksICdzdG9wJyk7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0g
IGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBsb2dC
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgLy8gU3BlY2lhbCBhZGRyZXNz
IG9mIHB5d2Vic29ja2V0IGZvciBYSFIvRmV0Y2ggQVBJIGJlbmNobWFyay4KLSAgYWRkcmVzc0Jv
eC52YWx1ZSA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOwotCi0gIGFkZFRv
TG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotICBhZGRUb1N1
bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAgaW5p
dFdvcmtlcignZmV0Y2gnLCAnJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0iaW5pdCgpIj4KLQotPGZvcm0gaWQ9ImJlbmNobWFya19mb3JtIj4KLSAgdXJsIHByZWZpeCA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlucHV0IHR5cGU9
ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNo
bWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJv
bkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIg
b25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50
IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5W
ZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+
Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0KLSAgPGJyLz4K
LQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0KLSAgPHRhYmxlPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW1iZXIgb2YgZmV0Y2goKSByZXF1ZXN0czwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5
cGU9InRleHQiIGlkPSJudW1GZXRjaGVzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAg
IDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlu
cHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8
L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90
ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMi
IHZhbHVlPSIwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0YXJ0IHNp
emU8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1
ZT0iMTAyNDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RvcCB0aHJl
c2hvbGQ8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9s
ZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0
ZD5NdWx0aXBsaWVyczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0
aXBsaWVycyIgdmFsdWU9IjUsIDIiPjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLQotICBT
ZXQgZGF0YSB0eXBlCi0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0
eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb3RleHQiCi0gICAgICAgICB2YWx1
ZT0idGV4dCIKLSAgICAgICAgIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb3RleHQi
PnRleHQ8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRh
dHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW9ibG9iIgotICAgICAgICAgdmFs
dWU9ImJsb2IiCi0gICAgICAgICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2Jsb2IiPmJsb2I8
L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJh
ZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciIKLSAgICAgICAgIHZh
bHVlPSJhcnJheWJ1ZmZlciIKLSAgICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYXJy
YXlidWZmZXIiPmFycmF5YnVmZmVyPC9sYWJlbD4KLTwvZm9ybT4KLQotPGRpdiBpZD0ibG9nX2Rp
diI+Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDog
MTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYi
PgotICBTdW1tYXJ5Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBz
dHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotPGRpdiBp
ZD0ibm90ZV9kaXYiPgotICBOb3RlOgotICA8dWw+Ci0gICAgPGxpPkVmZmVjdCBvZiBSVFQgYW5k
IHRpbWUgc3BlbnQgZm9yIEFycmF5QnVmZmVyIGNyZWF0aW9uIGluIHJlY2VpdmUgYmVuY2htYXJr
cyBhcmUgbm90IGVsaW1pbmF0ZWQuPC9saT4KLSAgICA8bGk+VGhlIFN0ZGRldiBjb2x1bW4gc2hv
d3MgTmFOIHdoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGlzIHNldCB0byAxLjwvbGk+Ci0g
IDwvdWw+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2ZldGNoX2JlbmNobWFyay5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzOTUyMTkwYThlMDczOWUzYTBmMmE0OGNi
ODNkYmU5YjMwMTUzOTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcworKysgL2Rldi9udWxsCkBAIC0x
LDIyNSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg
QlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZp
bGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xp
Y2Vuc2VzL2JzZAotCi12YXIgaXNXb3JrZXIgPSB0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gInVu
ZGVmaW5lZCI7Ci0KLWlmIChpc1dvcmtlcikgewotICAvLyBSdW5uaW5nIG9uIGEgd29ya2VyCi0g
IGltcG9ydFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3JrZXIuanMnKTsKLX0KLQotLy8gTmFt
ZXNwYWNlIGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVuY2htYXJrID0ge307Ci1iZW5jaG1h
cmsuc3RhcnRUaW1lSW5NcyA9IDA7Ci0KLXZhciB0aW1lcklEID0gbnVsbDsKLQotZnVuY3Rpb24g
c2VuZEJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0g
bnVsbDsKLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBudWxsOwotCi0gIC8vIFByZXBhcmUg
ZGF0YS4KLSAgdmFyIGRhdGFBcnJheSA9IFtdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZp
Zy5udW1GZXRjaGVzOyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IG51bGw7Ci0gICAgaWYgKGNvbmZp
Zy5kYXRhVHlwZSA9PSAnYXJyYXlidWZmZXInIHx8Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9
PSAnYmxvYicpIHsKLSAgICAgIGRhdGEgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAg
IGZpbGxBcnJheUJ1ZmZlcihkYXRhLCAweDYxKTsKLQotICAgICAgaWYgKGNvbmZpZy5kYXRhVHlw
ZSA9PSAnYmxvYicpIHsKLSAgICAgICAgZGF0YSA9IG5ldyBCbG9iKFtkYXRhXSk7Ci0gICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRhdGEgPSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsKLSAg
ICB9Ci0KLSAgICBkYXRhQXJyYXkucHVzaChkYXRhKTsKLSAgfQotCi0gIC8vIFN0YXJ0IHRpbWUg
bWVhc3VyaW5nLgotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwot
Ci0gIC8vIFN0YXJ0IGZldGNoLgotICB2YXIgcHJvbWlzZXMgPSBbXTsKLSAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7Ci0gICAgdmFyIGRhdGEgPSBkYXRhQXJy
YXlbaV07Ci0gICAgdmFyIHByb21pc2UgPSBmZXRjaChjb25maWcucHJlZml4VXJsICsgJ19zZW5k
JywKLSAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTogZGF0YX0p
Ci0gICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewotICAgICAgICAgIGlmIChyZXNw
b25zZS5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxl
ZCAoc3RhdHVzPScgKyByZXNwb25zZS5zdGF0dXMgKyAnKScpOwotICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIENoZWNrIGFuZCB3
YXJuIGlmIHByb3h5IGlzIGVuYWJsZWQuCi0gICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMu
Z2V0KCdWaWEnKSAhPT0gbnVsbCkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJO
SU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAo
Y29uZmlnLnZlcmlmeURhdGEpIHsKLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkK
LSAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbih0ZXh0KSB7Ci0gICAgICAgICAgICAgICAg
ICBpZiAoIXZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIHRleHQsIHNpemUpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAg
cHJvbWlzZXMucHVzaChwcm9taXNlKTsKLSAgfQotCi0gIC8vIEZpbmlzaCBhbmQgcmVwb3J0IHRp
bWUgbWVhc3VyaW5nLgotICBQcm9taXNlLmFsbChwcm9taXNlcykKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgewotICAgICAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgewot
ICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgY2FsY3Vs
YXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsCi0g
ICAgICAgICAgc2l6ZSAqIGNvbmZpZy5udW1GZXRjaGVzLCBpc1dhcm1VcCk7Ci0gICAgICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7Ci0gICAgICB9KQotICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsK
LSAgICAgICAgY29uZmlnLmFkZFRvTG9nKCJFUlJPUjogIiArIGUpOwotICAgICAgICBjb25maWcu
bm90aWZ5QWJvcnQoKTsKLSAgICAgIH0pOwotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJr
U3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotICBiZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51bGw7Ci0KLSAgLy8gU3RhcnQgdGltZSBtZWFzdXJpbmcu
Ci0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgLy8gU3Rh
cnQgZmV0Y2guCi0gIHZhciBwcm9taXNlcyA9IFtdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGNv
bmZpZy5udW1GZXRjaGVzOyArK2kpIHsKLSAgICB2YXIgcmVxdWVzdDsKLSAgICBpZiAoY29uZmln
Lm1ldGhvZEFuZENhY2hlID09PSAnR0VULU5PQ0FDSEUnKSB7Ci0gICAgICByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZV9nZXRub2NhY2hlPycgKyBzaXpl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdHRVQnfSk7Ci0gICAgfSBl
bHNlIGlmIChjb25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQtQ0FDSEUnKSB7Ci0gICAgICBy
ZXF1ZXN0ID0gbmV3IFJlcXVlc3QoY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZV9nZXRjYWNo
ZT8nICsgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnR0VUJ30p
OwotICAgIH0gZWxzZSB7Ci0gICAgICByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoY29uZmlnLnByZWZp
eFVybCArICdfcmVjZWl2ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDog
J1BPU1QnLCBib2R5OiBzaXplICsgJyBub25lJ30pOwotICAgIH0KLSAgICB2YXIgcHJvbWlzZSA9
IGZldGNoKHJlcXVlc3QpCi0gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAg
ICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPSAyMDApIHsKLSAgICAgICAgICAgIGNvbmZpZy5h
ZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyArIHRoaXMuc3RhdHVzICsgJyknKTsKLSAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBD
aGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgotICAgICAgICAgIGlmIChyZXNwb25z
ZS5oZWFkZXJzLmdldCgnVmlhJykgIT09IG51bGwpIHsKLSAgICAgICAgICAgIGNvbmZpZy5hZGRU
b0xvZygnV0FSTklORzogcHJveHkgc2VlbXMgZW5hYmxlZC4nKTsKLSAgICAgICAgICB9Ci0gICAg
ICAgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PT0gJ2FycmF5YnVmZmVyJykgewotICAgICAgICAg
ICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCkKLSAgICAgICAgICAgICAgICAudGhlbihm
dW5jdGlvbihhcnJheUJ1ZmZlcikgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIFthcnJheUJ1
ZmZlci5ieXRlTGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoIWNvbmZpZy52ZXJp
ZnlEYXRhIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlBcnJheUJ1ZmZlcihh
cnJheUJ1ZmZlciwgMHg2MSkpXTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICB9IGVs
c2UgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS5ibG9iKCkKLSAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbihibG9iKSB7Ci0g
ICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlCbG9iKGNvbmZpZywgYmxvYiwgMHg2MSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihyZWNlaXZlZFNpemUsIHZlcmlmaWNh
dGlvblJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShbcmVj
ZWl2ZWRTaXplLCB2ZXJpZmljYXRpb25SZXN1bHRdKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZShbYmxvYi5zaXplLCB0cnVlXSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKQotICAgICAg
ICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHRleHQpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVy
biBbdGV4dC5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICghY29uZmlnLnZlcmlm
eURhdGEgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPT0gcmVwZWF0U3RyaW5n
KCdhJywgdGV4dC5sZW5ndGgpKV07Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfQot
ICAgICAgICB9KQotICAgICAgICAudGhlbihmdW5jdGlvbihyZWNlaXZlZFNpemVBbmRWZXJpZmlj
YXRpb25SZXN1bHQpIHsKLSAgICAgICAgICB2YXIgcmVjZWl2ZWRTaXplID0gcmVjZWl2ZWRTaXpl
QW5kVmVyaWZpY2F0aW9uUmVzdWx0WzBdOwotICAgICAgICAgIHZhciB2ZXJpZmljYXRpb25SZXN1
bHQgPSByZWNlaXZlZFNpemVBbmRWZXJpZmljYXRpb25SZXN1bHRbMV07Ci0gICAgICAgICAgaWYg
KHJlY2VpdmVkU2l6ZSAhPT0gc2l6ZSkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdF
eHBlY3RlZCAnICsgc2l6ZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0IgYnV0IHJl
Y2VpdmVkICcgKyByZWNlaXZlZFNpemUgKyAnQicpOwotICAgICAgICAgICAgcmV0dXJuIFByb21p
c2UucmVqZWN0KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmICghdmVyaWZpY2F0aW9uUmVz
dWx0KSB7Ci0gICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlmaWNhdGlv
biBmYWlsZWQnKTsKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwotICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0gICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTsKLSAgfQotCi0g
IC8vIEZpbmlzaCBhbmQgcmVwb3J0IHRpbWUgbWVhc3VyaW5nLgotICBQcm9taXNlLmFsbChwcm9t
aXNlcykKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICBpZiAoYmVuY2htYXJrLnN0
YXJ0VGltZUluTXMgPT0gbnVsbCkgewotICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRU
aW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVu
Y2htYXJrLnN0YXJ0VGltZUluTXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
ICogY29uZmlnLm51bUZldGNoZXMsIGlzV2FybVVwKTsKLSAgICAgICAgcnVuTmV4dFRhc2soY29u
ZmlnKTsKLSAgICAgIH0pCi0gICAgICAuY2F0Y2goZnVuY3Rpb24oZSkgewotICAgICAgICBjb25m
aWcuYWRkVG9Mb2coIkVSUk9SOiAiICsgZSk7Ci0gICAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgp
OwotICAgICAgfSk7Ci19Ci0KLQotZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgewot
ICByZXR1cm4gJygnICsgY29uZmlnLmRhdGFUeXBlICsKLSAgICAnLCB2ZXJpZnlEYXRhPScgKyBj
b25maWcudmVyaWZ5RGF0YSArCi0gICAgJywgJyArIChpc1dvcmtlciA/ICdXb3JrZXInIDogJ01h
aW4nKSArCi0gICAgJywgbnVtRmV0Y2hlcz0nICsgY29uZmlnLm51bUZldGNoZXMgKwotICAgICcs
IG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRpb25zICsKLSAgICAnLCBudW1XYXJt
VXBJdGVyYXRpb25zPScgKyBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArCi0gICAgJyknOwot
fQotCi1mdW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0KHRp
bWVySUQpOwotCi0gIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGJhdGNoQmVu
Y2htYXJrKG9yaWdpbmFsQ29uZmlnKSB7Ci0gIG9yaWdpbmFsQ29uZmlnLmFkZFRvTG9nKCdCYXRj
aCBiZW5jaG1hcmsnKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0K
LSAgdmFyIGRhdGFUeXBlcyA9IFsndGV4dCcsICdibG9iJywgJ2FycmF5YnVmZmVyJ107Ci0gIHZh
ciBzdGVwRnVuY3MgPSBbc2VuZEJlbmNobWFya1N0ZXAsIHJlY2VpdmVCZW5jaG1hcmtTdGVwXTsK
LSAgdmFyIG5hbWVzID0gWydTZW5kJywgJ1JlY2VpdmUnXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzdGVwRnVuY3MubGVuZ3RoOyArK2kpIHsKLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFU
eXBlcy5sZW5ndGg7ICsraikgewotICAgICAgdmFyIGNvbmZpZyA9IGNsb25lQ29uZmlnKG9yaWdp
bmFsQ29uZmlnKTsKLSAgICAgIGNvbmZpZy5kYXRhVHlwZSA9IGRhdGFUeXBlc1tqXTsKLSAgICAg
IGFkZFRhc2tzKGNvbmZpZywgc3RlcEZ1bmNzW2ldKTsKLSAgICAgIGFkZFJlc3VsdFJlcG9ydGlu
Z1Rhc2soY29uZmlnLAotICAgICAgICAgIG5hbWVzW2ldICsgJyBiZW5jaG1hcmsgJyArIGdldENv
bmZpZ1N0cmluZyhjb25maWcpKTsKLSAgICB9Ci0gIH0KLQotICBzdGFydEJlbmNobWFyayhjb25m
aWcpOwotfQotCi1mdW5jdGlvbiBjbGVhbnVwKCkgewotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0
Y2hfcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTEyZGYyZTdkZjRkM2VhNjJkYzJhMGJkNWU4MWJlOGJmNWI1ZGJjOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hf
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJwZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iZmV0Y2hfYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxl
cl9tYXAudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWM0YzA5YWEwMDkxZDhi
YWYyOTA4OTU5OTA1ODY3ODQyYWViODY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMSArMCwwIEBACi0jIHdlYnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLCB1c2VkIGJ5
IHN0YW5kYWxvbmUucHkgLW0gb3B0aW9uLgotIyBBIGxpbmUgc3RhcnRpbmcgd2l0aCAnIycgaXMg
YSBjb21tZW50IGxpbmUuCi0jIEVhY2ggbGluZSBjb25zaXN0cyBvZiAnYWxpYXNfcmVzb3VyY2Vf
cGF0aCcgYW5kICdleGlzdGluZ19yZXNvdXJjZV9wYXRoJwotIyBzZXBhcmF0ZWQgYnkgc3BhY2Vz
LgotIyBBbGlhc2luZyBpcyBwcm9jZXNzZWQgZnJvbSB0aGUgdG9wIHRvIHRoZSBib3R0b20gb2Yg
dGhlIGxpbmUsIGFuZAotIyAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCcgbXVzdCBleGlzdCBiZWZv
cmUgaXQgaXMgYWxpYXNlZC4KLSMgRm9yIGV4YW1wbGUsCi0jICAvIC9lY2hvCi0jIG1lYW5zIHRo
YXQgYSByZXF1ZXN0IHRvICcvJyB3aWxsIGJlIGhhbmRsZWQgYnkgaGFuZGxlcnMgZm9yICcvZWNo
bycuCi0vIC9lY2hvCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oc3RzX3dzaC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9oc3RzX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg2
MTk0NjkyMWFmMDQ1OTRkNjIwMjZiNDZmMDc3NThkZGZlNDAyYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5leHRyYV9o
ZWFkZXJzLmFwcGVuZCgKLSAgICAgICAgKCdTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5JywgJ21h
eC1hZ2U9ODY0MDAnKSkKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8nLCBiaW5hcnk9RmFs
c2UpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaW50
ZXJuYWxfZXJyb3Jfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmU1ODFiNTRhNjQ4YzA5YTIyZjI1NDUxMjdk
NzBkZjA1MTM0OTIzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IG1zZ3V0aWwKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgcmFpc2UgbXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24oJ0ludGVudGlvbmFs
JykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmln
aW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNTc2N2FiOTMyZmI1ODI4MjRhYWYxYTU3ZDkyNDlj
MzA0YmQ1MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBUaGlzIGV4YW1wbGUgaXMgZGVyaXZlZCBmcm9t
IHRlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weS4KLQotCi1kZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgaWYgcmVxdWVzdC53c19v
cmlnaW4gPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbSc6Ci0gICAgICAgIHJldHVybgotICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1VuYWNjZXB0YWJsZSBvcmlnaW46ICVyJyAlIHJlcXVlc3Qud3Nfb3JpZ2lu
KQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXRlKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMs
ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNl
LCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDc4YWVkZTk3YTE0MzA0Mjg1NGU1NTU3Mjg5MzcyMjhmZWFjN2JlYjAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZv
cm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0icGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9y
bWFuY2VfdGVzdF9pZnJhbWUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NWIy
NWJkMWZmZDYzNzU5M2VmM2Y3ZjA2ZjBhNGZlNjYwYWQwZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3Rf
aWZyYW1lLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotZnVuY3Rpb24gcGVyZlRl
c3RBZGRUb0xvZyh0ZXh0KSB7Ci0gIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQnOiAnbG9n
JywgJ3ZhbHVlJzogdGV4dH0sICcqJyk7Ci19Ci0KLWZ1bmN0aW9uIHBlcmZUZXN0QWRkVG9TdW1t
YXJ5KHRleHQpIHsKLX0KLQotZnVuY3Rpb24gcGVyZlRlc3RNZWFzdXJlVmFsdWUodmFsdWUpIHsK
LSAgcGFyZW50LnBvc3RNZXNzYWdlKHsnY29tbWFuZCc6ICdtZWFzdXJlVmFsdWUnLCAndmFsdWUn
OiB2YWx1ZX0sICcqJyk7Ci19Ci0KLWZ1bmN0aW9uIHBlcmZUZXN0Tm90aWZ5QWJvcnQoKSB7Ci0g
IHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQnOiAnbm90aWZ5QWJvcnQnfSwgJyonKTsKLX0K
LQotZnVuY3Rpb24gZ2V0Q29uZmlnRm9yUGVyZm9ybWFuY2VUZXN0KGNvbm5lY3Rpb25UeXBlLCBk
YXRhVHlwZSwgYXN5bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
aWZ5RGF0YSwgbnVtSXRlcmF0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBudW1XYXJtVXBJdGVyYXRpb25zKSB7Ci0gIHZhciBwcmVmaXhVcmw7Ci0gIGlmIChjb25u
ZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcpIHsKLSAgICBwcmVmaXhVcmwgPSAnd3M6Ly8nICsg
bG9jYXRpb24uaG9zdCArICcvYmVuY2htYXJrX2hlbHBlcic7Ci0gIH0gZWxzZSB7Ci0gICAgLy8g
WEhSIG9yIGZldGNoCi0gICAgcHJlZml4VXJsID0gJ2h0dHA6Ly8nICsgbG9jYXRpb24uaG9zdCAr
ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOwotICB9Ci0KLSAgcmV0dXJuIHsK
LSAgICBwcmVmaXhVcmw6IHByZWZpeFVybCwKLSAgICBwcmludFNpemU6IHRydWUsCi0gICAgbnVt
WEhSczogMSwKLSAgICBudW1GZXRjaGVzOiAxLAotICAgIG51bVNvY2tldHM6IDEsCi0gICAgLy8g
KyAxIGlzIGZvciBhIHdhcm11cCBpdGVyYXRpb24gYnkgdGhlIFRlbGVtZXRyeSBmcmFtZXdvcmsu
Ci0gICAgbnVtSXRlcmF0aW9uczogbnVtSXRlcmF0aW9ucyArIG51bVdhcm1VcEl0ZXJhdGlvbnMg
KyAxLAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IG51bVdhcm1VcEl0ZXJhdGlvbnMsCi0gICAg
bWluVG90YWw6IDEwMjQwMDAwLAotICAgIHN0YXJ0U2l6ZTogMTAyNDAwMDAsCi0gICAgc3RvcFRo
cmVzaG9sZDogMTAyNDAwMDAsCi0gICAgbXVsdGlwbGllcnM6IFsyXSwKLSAgICB2ZXJpZnlEYXRh
OiB2ZXJpZnlEYXRhLAotICAgIGRhdGFUeXBlOiBkYXRhVHlwZSwKLSAgICBhc3luYzogYXN5bmMs
Ci0gICAgYWRkVG9Mb2c6IHBlcmZUZXN0QWRkVG9Mb2csCi0gICAgYWRkVG9TdW1tYXJ5OiBwZXJm
VGVzdEFkZFRvU3VtbWFyeSwKLSAgICBtZWFzdXJlVmFsdWU6IHBlcmZUZXN0TWVhc3VyZVZhbHVl
LAotICAgIG5vdGlmeUFib3J0OiBwZXJmVGVzdE5vdGlmeUFib3J0Ci0gIH07Ci19Ci0KLXZhciBk
YXRhOwotb25tZXNzYWdlID0gZnVuY3Rpb24obWVzc2FnZSkgewotICB2YXIgYWN0aW9uOwotICBp
ZiAobWVzc2FnZS5kYXRhLmNvbW1hbmQgPT09ICdzdGFydCcpIHsKLSAgICBkYXRhID0gbWVzc2Fn
ZS5kYXRhOwotICAgIGluaXRXb3JrZXIoZGF0YS5jb25uZWN0aW9uVHlwZSwgJ2h0dHA6Ly8nICsg
bG9jYXRpb24uaG9zdCk7Ci0gICAgYWN0aW9uID0gZGF0YS5iZW5jaG1hcmtOYW1lOwotICB9IGVs
c2UgewotICAgIGFjdGlvbiA9ICdzdG9wJzsKLSAgfQotCi0gIHZhciBjb25maWcgPSBnZXRDb25m
aWdGb3JQZXJmb3JtYW5jZVRlc3QoZGF0YS5jb25uZWN0aW9uVHlwZSwgZGF0YS5kYXRhVHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmFzeW5jLCBk
YXRhLnZlcmlmeURhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YS5udW1JdGVyYXRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGEubnVtV2FybVVwSXRlcmF0aW9ucyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywg
ZGF0YS5pc1dvcmtlciwgYWN0aW9uKTsKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3
ZWJzb2NrZXQuY29uZiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMzVkMTMwYTVjODRmNjlkZTRmODFkMzU4ZmIyY2RiNWJkZTRh
ZjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLSMKLSMgU2FtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgYXBh
Y2hlMgotIwotTG9nTGV2ZWwgZGVidWcKLTxJZk1vZHVsZSBweXRob25fbW9kdWxlPgotICBQeXRo
b25QYXRoICJzeXMucGF0aCtbJy9tb2RfcHl3ZWJzb2NrZXQnXSIKLSAgUHl0aG9uT3B0aW9uIG1v
ZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgL3Zhci93d3cKLSAgUHl0aG9uT3B0aW9uIG1vZF9w
eXdlYnNvY2tldC5oYW5kbGVyX3NjYW4gL3Zhci93d3cvd3MKLSAgI1B5dGhvbk9wdGlvbiBtb2Rf
cHl3ZWJzb2NrZXQuYWxsb3dfZHJhZnQ3NSBPbgotICA8TG9jYXRpb24gL3dzPgotICAgIFB5dGhv
bkhlYWRlclBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIK
LSAgPC9Mb2NhdGlvbj4KLTwvSWZNb2R1bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvc3Bl
Y2lhbF9oZWFkZXJzLmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTUwODBmMWYxYWVhM2EzN2E3ZTcyOWM2NzhkNmEx
MjMzN2JlZGI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsMjgg
KzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24KLQotIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Bl
bi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLSIiIkNHSSBzY3JpcHQgc2FtcGxlIGZvciB0ZXN0aW5n
IGVmZmVjdCBvZiBIVFRQIGhlYWRlcnMgb24gdGhlIG9yaWdpbiBwYWdlLgotCi1Ob3RlIHRoYXQg
Q0dJIHNjcmlwdHMgZG9uJ3Qgd29yayBvbiB0aGUgc3RhbmRhbG9uZSBweXdlYnNvY2tldCBydW5u
aW5nIGluIFRMUwotbW9kZS4KLSIiIgotCi0KLXByaW50ICIiIkNvbnRlbnQtdHlwZTogdGV4dC9o
dG1sCi1Db250ZW50LVNlY3VyaXR5LVBvbGljeTogY29ubmVjdC1zcmMgc2VsZgotCi08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPjwvdGl0bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci12YXIg
c29ja2V0ID0gbmV3IFdlYlNvY2tldCgid3M6Ly9leGFtcGxlLmNvbSIpOwotPC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+IiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS91dGlsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZWMwMDA3
YjFlZGQ1YTBjNTcxN2EyOGRhMDU1MjE4N2E2N2RhOWE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMzI3ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotLy8g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8g
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3Ig
Ym90aCBtYWluIGFuZCB3b3JrZXIgdGhyZWFkKS4KLQotdmFyIHJlc3VsdHMgPSB7fTsKLQotZnVu
Y3Rpb24gZ2V0VGltZVN0YW1wKCkgewotICByZXR1cm4gRGF0ZS5ub3coKTsKLX0KLQotZnVuY3Rp
b24gZm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3NhZ2VJbk1zLCBzdGRkZXZUaW1l
UGVyTWVzc2FnZUluTXMsCi0gICAgc3BlZWQsIHByaW50U2l6ZSkgewotICBpZiAocHJpbnRTaXpl
KSB7Ci0gICAgcmV0dXJuIChzaXplIC8gMTAyNCkgKwotICAgICAgICAnXHQnICsgdGltZVBlck1l
c3NhZ2VJbk1zLnRvRml4ZWQoMykgKwotICAgICAgICAoc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1z
ID09IC0xID8KLSAgICAgICAgICAgICcnIDoKLSAgICAgICAgICAgICdcdCcgKyBzdGRkZXZUaW1l
UGVyTWVzc2FnZUluTXMudG9GaXhlZCgzKSkgKwotICAgICAgICAnXHQnICsgc3BlZWQudG9GaXhl
ZCgzKTsKLSAgfSBlbHNlIHsKLSAgICByZXR1cm4gc3BlZWQudG9TdHJpbmcoKTsKLSAgfQotfQot
Ci1mdW5jdGlvbiBjbGVhckF2ZXJhZ2VEYXRhKCkgewotICByZXN1bHRzID0ge307Ci19Ci0KLWZ1
bmN0aW9uIHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZykgewotICBjb25maWcuYWRkVG9TdW1tYXJ5
KAotICAgICAgJ1NpemVbS2lCXVx0QXZlcmFnZSB0aW1lW21zXVx0U3RkZGV2IHRpbWVbbXNdXHRT
cGVlZFtLQi9zXScpOwotICBmb3IgKHZhciBzaXplIGluIHJlc3VsdHMpIHsKLSAgICB2YXIgYXZl
cmFnZVRpbWVQZXJNZXNzYWdlSW5NcyA9IHJlc3VsdHNbc2l6ZV0uc3VtX3QgLyByZXN1bHRzW3Np
emVdLm47Ci0gICAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJbktCKHNpemUsIGF2ZXJhZ2VU
aW1lUGVyTWVzc2FnZUluTXMpOwotICAgIC8vIENhbGN1bGF0ZSBzYW1wbGUgc3RhbmRhcmQgZGV2
aWF0aW9uCi0gICAgdmFyIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9IE1hdGguc3FydCgKLSAg
ICAgICAgKHJlc3VsdHNbc2l6ZV0uc3VtX3QyIC8gcmVzdWx0c1tzaXplXS5uIC0KLSAgICAgICAg
ICAgIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMgKiBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1z
KSAqCi0gICAgICAgIHJlc3VsdHNbc2l6ZV0ubiAvCi0gICAgICAgIChyZXN1bHRzW3NpemVdLm4g
LSAxKSk7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeShmb3JtYXRSZXN1bHRJbktpQigKLSAgICAg
ICAgc2l6ZSwgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJ
bk1zLCBzcGVlZCwKLSAgICAgICAgdHJ1ZSkpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGNhbGN1bGF0
ZVNwZWVkSW5LQihzaXplLCB0aW1lU3BlbnRJbk1zKSB7Ci0gIHJldHVybiBNYXRoLnJvdW5kKHNp
emUgLyB0aW1lU3BlbnRJbk1zICogMTAwMCkgLyAxMDAwOwotfQotCi1mdW5jdGlvbiBjYWxjdWxh
dGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBzdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCi0g
ICAgaXNXYXJtVXApIHsKLSAgdmFyIHRpbWVTcGVudEluTXMgPSBnZXRUaW1lU3RhbXAoKSAtIHN0
YXJ0VGltZUluTXM7Ci0gIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNpemUs
IHRpbWVTcGVudEluTXMpOwotICB2YXIgdGltZVBlck1lc3NhZ2VJbk1zID0gdGltZVNwZW50SW5N
cyAvICh0b3RhbFNpemUgLyBzaXplKTsKLSAgaWYgKCFpc1dhcm1VcCkgewotICAgIGNvbmZpZy5t
ZWFzdXJlVmFsdWUodGltZVBlck1lc3NhZ2VJbk1zKTsKLSAgICBpZiAoIXJlc3VsdHNbc2l6ZV0p
IHsKLSAgICAgIHJlc3VsdHNbc2l6ZV0gPSB7bjogMCwgc3VtX3Q6IDAsIHN1bV90MjogMH07Ci0g
ICAgfQotICAgIHJlc3VsdHNbc2l6ZV0ubiArKzsKLSAgICByZXN1bHRzW3NpemVdLnN1bV90ICs9
IHRpbWVQZXJNZXNzYWdlSW5NczsKLSAgICByZXN1bHRzW3NpemVdLnN1bV90MiArPSB0aW1lUGVy
TWVzc2FnZUluTXMgKiB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gIH0KLSAgY29uZmlnLmFkZFRvTG9n
KGZvcm1hdFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5NcywgLTEsIHNwZWVkLAot
ICAgICAgY29uZmlnLnByaW50U2l6ZSkpOwotfQotCi1mdW5jdGlvbiByZXBlYXRTdHJpbmcoc3Ry
LCBjb3VudCkgewotICB2YXIgZGF0YSA9ICcnOwotICB2YXIgZXhwQ2h1bmsgPSBzdHI7Ci0gIHZh
ciByZW1haW4gPSBjb3VudDsKLSAgd2hpbGUgKHRydWUpIHsKLSAgICBpZiAocmVtYWluICUgMikg
ewotICAgICAgZGF0YSArPSBleHBDaHVuazsKLSAgICAgIHJlbWFpbiA9IChyZW1haW4gLSAxKSAv
IDI7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJlbWFpbiAvPSAyOwotICAgIH0KLQotICAgIGlmIChy
ZW1haW4gPT0gMCkKLSAgICAgIGJyZWFrOwotCi0gICAgZXhwQ2h1bmsgPSBleHBDaHVuayArIGV4
cENodW5rOwotICB9Ci0gIHJldHVybiBkYXRhOwotfQotCi1mdW5jdGlvbiBmaWxsQXJyYXlCdWZm
ZXIoYnVmZmVyLCBjKSB7Ci0gIHZhciBpOwotCi0gIHZhciB1MzJDb250ZW50ID0gYyAqIDB4MDEw
MTAxMDE7Ci0KLSAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVyLmJ5dGVMZW5ndGgg
LyA0KTsKLSAgdmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyLCAwLCB1MzJCbG9j
a3MpOwotICAvLyBsZW5ndGggYXR0cmlidXRlIGlzIHNsb3cgb24gQ2hyb21lLiBEb24ndCB1c2Ug
aXQgZm9yIGxvb3AgY29uZGl0aW9uLgotICBmb3IgKGkgPSAwOyBpIDwgdTMyQmxvY2tzOyArK2kp
IHsKLSAgICB1MzJWaWV3W2ldID0gdTMyQ29udGVudDsKLSAgfQotCi0gIC8vIEZyYWN0aW9uCi0g
IHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsKLSAgdmFy
IHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThCbG9ja3Mp
OwotICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgewotICAgIHU4Vmlld1tpXSA9IGM7
Ci0gIH0KLX0KLQotZnVuY3Rpb24gdmVyaWZ5QXJyYXlCdWZmZXIoYnVmZmVyLCBleHBlY3RlZENo
YXIpIHsKLSAgdmFyIGk7Ci0KLSAgdmFyIGV4cGVjdGVkVTMyVmFsdWUgPSBleHBlY3RlZENoYXIg
KiAweDAxMDEwMTAxOwotCi0gIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRl
TGVuZ3RoIC8gNCk7Ci0gIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwg
dTMyQmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7Ci0gICAgaWYg
KHUzMlZpZXdbaV0gIT0gZXhwZWN0ZWRVMzJWYWx1ZSkgewotICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgfQotCi0gIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxv
Y2tzICogNDsKLSAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tz
ICogNCwgdThCbG9ja3MpOwotICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgewotICAg
IGlmICh1OFZpZXdbaV0gIT0gZXhwZWN0ZWRDaGFyKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotICB9Ci0KLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUJsb2IoY29u
ZmlnLCBibG9iLCBleHBlY3RlZENoYXIsIGRvbmVDYWxsYmFjaykgewotICB2YXIgcmVhZGVyID0g
bmV3IEZpbGVSZWFkZXIoYmxvYik7Ci0gIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0g
ICAgY29uZmlnLmFkZFRvTG9nKCdGaWxlUmVhZGVyIEVycm9yOiAnICsgcmVhZGVyLmVycm9yLm1l
c3NhZ2UpOwotICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIGZhbHNlKTsKLSAgfQotICByZWFk
ZXIub25sb2FkZW5kID0gZnVuY3Rpb24oKSB7Ci0gICAgdmFyIHJlc3VsdCA9IHZlcmlmeUFycmF5
QnVmZmVyKHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkQ2hhcik7Ci0gICAgZG9uZUNhbGxiYWNrKGJs
b2Iuc2l6ZSwgcmVzdWx0KTsKLSAgfQotICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7
Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIG1lc3NhZ2UsIHNp
emUpIHsKLSAgaWYgKHR5cGVvZiBtZXNzYWdlICE9ICdzdHJpbmcnKSB7Ci0gICAgY29uZmlnLmFk
ZFRvTG9nKCdJbnZhbGlkIGFjayB0eXBlOiAnICsgdHlwZW9mIG1lc3NhZ2UpOwotICAgIHJldHVy
biBmYWxzZTsKLSAgfQotICB2YXIgcGFyc2VkQWNrID0gcGFyc2VJbnQobWVzc2FnZSk7Ci0gIGlm
IChpc05hTihwYXJzZWRBY2spKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIGFjayB2
YWx1ZTogJyArIG1lc3NhZ2UpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotICBpZiAocGFyc2Vk
QWNrICE9IHNpemUpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coCi0gICAgICAgICdFeHBlY3RlZCBh
Y2sgZm9yICcgKyBzaXplICsgJ0IgYnV0IHJlY2VpdmVkIG9uZSBmb3IgJyArIHBhcnNlZEFjayAr
Ci0gICAgICAgICdCJyk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0KLSAgcmV0dXJuIHRydWU7
Ci19Ci0KLWZ1bmN0aW9uIGNsb25lQ29uZmlnKG9iaikgewotICB2YXIgbmV3T2JqID0ge307Ci0g
IGZvciAoa2V5IGluIG9iaikgewotICAgIG5ld09ialtrZXldID0gb2JqW2tleV07Ci0gIH0KLSAg
cmV0dXJuIG5ld09iajsKLX0KLQotdmFyIHRhc2tzID0gW107Ci0KLWZ1bmN0aW9uIHJ1bk5leHRU
YXNrKGNvbmZpZykgewotICB2YXIgdGFzayA9IHRhc2tzLnNoaWZ0KCk7Ci0gIGlmICh0YXNrID09
IHVuZGVmaW5lZCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRmluaXNoZWQnKTsKLSAgICBjbGVh
bnVwKCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRhc2ssIDAp
OwotfQotCi1mdW5jdGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKLSAgdmFyIGxlZ2Vu
ZCA9ICcnCi0gIGlmIChjb25maWcucHJpbnRTaXplKQotICAgIGxlZ2VuZCA9ICdNZXNzYWdlIHNp
emUgaW4gS2lCLCBUaW1lL21lc3NhZ2UgaW4gbXMsICc7Ci0gIGxlZ2VuZCArPSAnU3BlZWQgaW4g
a0Ivcyc7Ci0gIHJldHVybiBsZWdlbmQ7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRhc2tzKGNvbmZpZywg
c3RlcEZ1bmMpIHsKLSAgZm9yICh2YXIgaSA9IDA7Ci0gICAgICBpIDwgY29uZmlnLm51bVdhcm1V
cEl0ZXJhdGlvbnMgKyBjb25maWcubnVtSXRlcmF0aW9uczsgKytpKSB7Ci0gICAgdmFyIG11bHRp
cGxpZXJJbmRleCA9IDA7Ci0gICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7Ci0g
ICAgICAgICBzaXplIDw9IGNvbmZpZy5zdG9wVGhyZXNob2xkOwotICAgICAgICAgKyttdWx0aXBs
aWVySW5kZXgpIHsKLSAgICAgIHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKLSAgICAgICAgICBu
dWxsLAotICAgICAgICAgIHNpemUsCi0gICAgICAgICAgY29uZmlnLAotICAgICAgICAgIGkgPCBj
b25maWcubnVtV2FybVVwSXRlcmF0aW9ucyk7Ci0gICAgICB0YXNrcy5wdXNoKHRhc2spOwotICAg
ICAgdmFyIG11bHRpcGxpZXIgPSBjb25maWcubXVsdGlwbGllcnNbCi0gICAgICAgIG11bHRpcGxp
ZXJJbmRleCAlIGNvbmZpZy5tdWx0aXBsaWVycy5sZW5ndGhdOwotICAgICAgaWYgKG11bHRpcGxp
ZXIgPD0gMSkgewotICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQgbXVsdGlwbGllciAn
ICsgbXVsdGlwbGllcik7Ci0gICAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbXVsdGlwbGVyJyk7Ci0gICAgICB9Ci0gICAgICBzaXpl
ID0gTWF0aC5jZWlsKHNpemUgKiBtdWx0aXBsaWVyKTsKLSAgICB9Ci0gIH0KLX0KLQotZnVuY3Rp
b24gYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7Ci0gIHRhc2tzLnB1c2go
ZnVuY3Rpb24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAgICAgY29uZmlnLmFkZFRvU3Vt
bWFyeSh0aXRsZSk7Ci0gICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOwotICAgICAgY2xl
YXJBdmVyYWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfSk7Ci19Ci0K
LWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygnU2Vu
ZCBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZp
ZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRkVGFza3Mo
Y29uZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29u
ZmlnLCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3Rh
cnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFyayhjb25m
aWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJlbmNobWFyaycpOwotICBjb25maWcu
YWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsKLSAg
Y2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5jaG1hcmtT
dGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0gICAgICAnUmVjZWl2ZSBC
ZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5jaG1hcmso
Y29uZmlnKTsKLX0KLQotZnVuY3Rpb24gc3RvcChjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0KHRp
bWVySUQpOwotICB0aW1lcklEID0gbnVsbDsKLSAgdGFza3MgPSBbXTsKLSAgY29uZmlnLmFkZFRv
TG9nKCdTdG9wcGVkJyk7Ci0gIGNsZWFudXAoKTsKLX0KLQotdmFyIHdvcmtlcjsKLQotZnVuY3Rp
b24gaW5pdFdvcmtlcihjb25uZWN0aW9uVHlwZSwgb3JpZ2luKSB7Ci0gIHZhciBzY3JpcHRQYXRo
ID0KLSAgICBjb25uZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcgPyAnL2JlbmNobWFyay5qcycg
OgotICAgIGNvbm5lY3Rpb25UeXBlID09PSAnWEhSJyA/ICcveGhyX2JlbmNobWFyay5qcycgOgot
ICAgICcvZmV0Y2hfYmVuY2htYXJrLmpzJzsgLy8gY29ubmVjdGlvblR5cGUgPT09ICdmZXRjaCcK
LSAgd29ya2VyID0gbmV3IFdvcmtlcihvcmlnaW4gKyBzY3JpcHRQYXRoKTsKLX0KLQotZnVuY3Rp
b24gZG9BY3Rpb24oY29uZmlnLCBpc1dpbmRvd1RvV29ya2VyLCBhY3Rpb24pIHsKLSAgaWYgKGlz
V2luZG93VG9Xb3JrZXIpIHsKLSAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oYWRkVG9M
b2csIGFkZFRvU3VtbWFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3Vy
ZVZhbHVlLCBub3RpZnlBYm9ydCwgbWVzc2FnZSkgewotICAgICAgaWYgKG1lc3NhZ2UuZGF0YS50
eXBlID09PSAnYWRkVG9Mb2cnKQotICAgICAgICBhZGRUb0xvZyhtZXNzYWdlLmRhdGEuZGF0YSk7
Ci0gICAgICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRvU3VtbWFyeScpCi0g
ICAgICAgIGFkZFRvU3VtbWFyeShtZXNzYWdlLmRhdGEuZGF0YSk7Ci0gICAgICBlbHNlIGlmICht
ZXNzYWdlLmRhdGEudHlwZSA9PT0gJ21lYXN1cmVWYWx1ZScpCi0gICAgICAgIG1lYXN1cmVWYWx1
ZShtZXNzYWdlLmRhdGEuZGF0YSk7Ci0gICAgICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9
PT0gJ25vdGlmeUFib3J0JykKLSAgICAgICAgbm90aWZ5QWJvcnQoKTsKLSAgICB9LmJpbmQodW5k
ZWZpbmVkLCBjb25maWcuYWRkVG9Mb2csIGNvbmZpZy5hZGRUb1N1bW1hcnksCi0gICAgICAgICAg
IGNvbmZpZy5tZWFzdXJlVmFsdWUsIGNvbmZpZy5ub3RpZnlBYm9ydCk7Ci0gICAgY29uZmlnLmFk
ZFRvTG9nID0gdW5kZWZpbmVkOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSB1bmRlZmluZWQ7
Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IHVuZGVmaW5lZDsKLSAgICBjb25maWcubm90aWZ5
QWJvcnQgPSB1bmRlZmluZWQ7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiBhY3Rpb24s
IGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgaWYgKGFjdGlvbiA9PT0gJ3NlbmRC
ZW5jaG1hcmsnKQotICAgICAgc2VuZEJlbmNobWFyayhjb25maWcpOwotICAgIGVsc2UgaWYgKGFj
dGlvbiA9PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQotICAgICAgcmVjZWl2ZUJlbmNobWFyayhjb25m
aWcpOwotICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ2JhdGNoQmVuY2htYXJrJykKLSAgICAgIGJh
dGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09PSAnc3RvcCcpCi0g
ICAgICBzdG9wKGNvbmZpZyk7Ci0gIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGls
X21haW4uanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0NzFlZDYzZmI1ZDc0OWQwZWQyMTgxYjVhYWJjY2UyZTkzNjViODdlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91
dGlsX21haW4uanMKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vLyBDb3B5cmlnaHQg
MjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQg
Y2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxv
cGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRpZXMg
Zm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgdGhlIG1haW4gdGhyZWFkIG9ubHkpLgotCi12
YXIgbG9nQm94ID0gbnVsbDsKLXZhciBxdWV1ZWRMb2cgPSAnJzsKLQotdmFyIHN1bW1hcnlCb3gg
PSBudWxsOwotCi1mdW5jdGlvbiBxdWV1ZUxvZyhsb2cpIHsKLSAgcXVldWVkTG9nICs9IGxvZyAr
ICdcbic7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvTG9nKGxvZykgewotICBsb2dCb3gudmFsdWUgKz0g
cXVldWVkTG9nOwotICBxdWV1ZWRMb2cgPSAnJzsKLSAgbG9nQm94LnZhbHVlICs9IGxvZyArICdc
bic7Ci0gIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBhZGRUb1N1
bW1hcnkobG9nKSB7Ci0gIHN1bW1hcnlCb3gudmFsdWUgKz0gbG9nICsgJ1xuJzsKLSAgc3VtbWFy
eUJveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi0vLyB2YWx1ZTogZXhlY3V0aW9uIHRpbWUg
aW4gbWlsbGlzZWNvbmRzLgotLy8gY29uZmlnLm1lYXN1cmVWYWx1ZSBpcyBpbnRlbmRlZCB0byBi
ZSB1c2VkIGluIFBlcmZvcm1hbmNlIFRlc3RzLgotLy8gRG8gbm90aGluZyBoZXJlIGluIG5vbi1Q
ZXJmb3JtYW5jZVRlc3QuCi1mdW5jdGlvbiBtZWFzdXJlVmFsdWUodmFsdWUpIHsKLX0KLQotLy8g
Y29uZmlnLm5vdGlmeUFib3J0IGlzIGNhbGxlZCB3aGVuIHRoZSBiZW5jaG1hcmsgZmFpbGVkIGFu
ZCBhYm9ydGVkLCBhbmQKLS8vIGludGVuZGVkIHRvIGJlIHVzZWQgaW4gUGVyZm9ybWFuY2UgVGVz
dHMuCi0vLyBEbyBub3RoaW5nIGhlcmUgaW4gbm9uLVBlcmZvcm1hbmNlVGVzdC4KLWZ1bmN0aW9u
IG5vdGlmeUFib3J0KCkgewotfQotCi1mdW5jdGlvbiBnZXRJbnRGcm9tSW5wdXQoaWQpIHsKLSAg
cmV0dXJuIHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZSk7Ci19Ci0K
LWZ1bmN0aW9uIGdldFN0cmluZ0Zyb21SYWRpb0JveChuYW1lKSB7Ci0gIHZhciBsaXN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JlbmNobWFya19mb3JtJylbbmFtZV07Ci0gIGZvciAodmFy
IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkKLSAgICBpZiAobGlzdC5pdGVtKGkpLmNoZWNr
ZWQpCi0gICAgICByZXR1cm4gbGlzdC5pdGVtKGkpLnZhbHVlOwotICByZXR1cm4gdW5kZWZpbmVk
OwotfQotZnVuY3Rpb24gZ2V0Qm9vbEZyb21DaGVja0JveChpZCkgewotICByZXR1cm4gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoZWNrZWQ7Ci19Ci0KLWZ1bmN0aW9uIGdldEludEFycmF5
RnJvbUlucHV0KGlkKSB7Ci0gIHZhciBzdHJBcnJheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkKS52YWx1ZS5zcGxpdCgnLCcpOwotICByZXR1cm4gc3RyQXJyYXkubWFwKGZ1bmN0aW9uKHN0
cikgeyByZXR1cm4gcGFyc2VJbnQoc3RyLCAxMCk7IH0pOwotfQotCi1mdW5jdGlvbiBnZXRGbG9h
dEFycmF5RnJvbUlucHV0KGlkKSB7Ci0gIHZhciBzdHJBcnJheSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKS52YWx1ZS5zcGxpdCgnLCcpOwotICByZXR1cm4gc3RyQXJyYXkubWFwKHBhcnNl
RmxvYXQpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3V0aWxfd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
OGRjZjQ0MTcyOTlmOWM5ZDYxZGVlZmNiMWE1OTVhZWFiMDVkNTZjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dvcmtlci5q
cworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2ds
ZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLS8vIFV0aWxpdGllcyBmb3IgZXhhbXBs
ZSBhcHBsaWNhdGlvbnMgKGZvciB0aGUgd29ya2VyIHRocmVhZHMgb25seSkuCi0KLW9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7Ci0gIHZhciBjb25maWcgPSBtZXNzYWdlLmRhdGEuY29u
ZmlnOwotICBjb25maWcuYWRkVG9Mb2cgPSBmdW5jdGlvbih0ZXh0KSB7Ci0gICAgICBwb3N0TWVz
c2FnZSh7dHlwZTogJ2FkZFRvTG9nJywgZGF0YTogdGV4dH0pOyB9OwotICBjb25maWcuYWRkVG9T
dW1tYXJ5ID0gZnVuY3Rpb24odGV4dCkgewotICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdhZGRU
b1N1bW1hcnknLCBkYXRhOiB0ZXh0fSk7IH07Ci0gIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBmdW5j
dGlvbih2YWx1ZSkgewotICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6ICdtZWFzdXJlVmFsdWUnLCBk
YXRhOiB2YWx1ZX0pOyB9OwotICBjb25maWcubm90aWZ5QWJvcnQgPSBmdW5jdGlvbigpIHsgcG9z
dE1lc3NhZ2Uoe3R5cGU6ICdub3RpZnlBYm9ydCd9KTsgfTsKLQotICBkb0FjdGlvbihjb25maWcs
IGZhbHNlLCBtZXNzYWdlLmRhdGEudHlwZSk7Ci19OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwZjkzYjhiNjk1NWIwNjI1YTYxMTQ3ZDNjMzNiMjdlOWU5YjU1
ZDdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2Fib3J0X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxw
ZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nsb3NlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25z
b2xlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29va2llX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hv
X2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9lY2hvX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvZXZlbnRzb3VyY2UuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfcGVy
Zm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jf
d3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90
ZXN0X2lmcmFtZS5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS91dGlsX21haW4uanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUveGhyX2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9w
ZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhy
X2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAwZDIwYzljY2I0YWJlY2YyMzljNzViMTg1NzdiMGQx
ZmYxMWM5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEyICsw
LDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1u
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgot
PHRpdGxlPlhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyazwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRp
bF9tYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJrLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgYWRk
cmVzc0JveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldENvbmZpZygpIHsKLSAgcmV0dXJuIHsKLSAg
ICBwcmVmaXhVcmw6IGFkZHJlc3NCb3gudmFsdWUsCi0gICAgcHJpbnRTaXplOiBnZXRCb29sRnJv
bUNoZWNrQm94KCdwcmludHNpemUnKSwKLSAgICBudW1YSFJzOiBnZXRJbnRGcm9tSW5wdXQoJ251
bVhIUnMnKSwKLSAgICBhc3luYzogZ2V0Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSwKLSAgICAv
LyBJbml0aWFsIHNpemUgb2YgbWVzc2FnZXMuCi0gICAgbnVtSXRlcmF0aW9uczogZ2V0SW50RnJv
bUlucHV0KCdudW1pdGVyYXRpb25zJyksCi0gICAgbnVtV2FybVVwSXRlcmF0aW9uczogZ2V0SW50
RnJvbUlucHV0KCdudW13YXJtdXBpdGVyYXRpb25zJyksCi0gICAgc3RhcnRTaXplOiBnZXRJbnRG
cm9tSW5wdXQoJ3N0YXJ0c2l6ZScpLAotICAgIC8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBz
aXplIG9mIG1lc3NhZ2UgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLSAgICBzdG9wVGhyZXNob2xk
OiBnZXRJbnRGcm9tSW5wdXQoJ3N0b3B0aHJlc2hvbGQnKSwKLSAgICBtdWx0aXBsaWVyczogZ2V0
RmxvYXRBcnJheUZyb21JbnB1dCgnbXVsdGlwbGllcnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBnZXRC
b29sRnJvbUNoZWNrQm94KCd2ZXJpZnlkYXRhJyksCi0gICAgbWV0aG9kQW5kQ2FjaGU6IGdldFN0
cmluZ0Zyb21SYWRpb0JveCgnbWV0aG9kYW5kY2FjaGUnKSwKLSAgICBhZGRUb0xvZzogYWRkVG9M
b2csCi0gICAgYWRkVG9TdW1tYXJ5OiBhZGRUb1N1bW1hcnksCi0gICAgbWVhc3VyZVZhbHVlOiBt
ZWFzdXJlVmFsdWUsCi0gICAgbm90aWZ5QWJvcnQ6IG5vdGlmeUFib3J0Ci0gIH07Ci19Ci0KLWZ1
bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwot
ICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8n
KTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3Nl
bmRCZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgewotICB2
YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0cmluZ0Zy
b21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xG
cm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAncmVjZWl2ZUJlbmNobWFyaycpOwotfQotCi1mdW5jdGlv
biBvbkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRv
QWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdiYXRjaEJlbmNo
bWFyaycpOwotfQotCi1mdW5jdGlvbiBvblN0b3AoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25m
aWcoKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwg
J3N0b3AnKTsKLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRkcmVzc0JveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N1bW1hcnknKTsKLQotICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2YgcHl3ZWJzb2NrZXQgZm9yIFhI
UiBiZW5jaG1hcmsuCi0gIGFkZHJlc3NCb3gudmFsdWUgPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2Ni
ZjNhMmFkMjFjMjQ1JzsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50
b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50
LnRvTG93ZXJDYXNlKCkpOwotCi0gIGluaXRXb3JrZXIoJ1hIUicsICcnKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08Zm9ybSBpZD0iYmVuY2htYXJr
X2Zvcm0iPgotICB1cmwgcHJlZml4IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6
ZT0iNDAiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2VuZCIgb25jbGljaz0ib25T
ZW5kQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0icmVjZWl2ZSIg
b25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2
YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBl
PSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+Ci0KLSAgPGJyLz4KLQot
ICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNoZWNrZWQ+Ci0gIDxsYWJl
bCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIgbWVzc2FnZTwvbGFiZWw+
Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEiIGNoZWNrZWQ+Ci0gIDxs
YWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0id29ya2VyIj5SdW4gb24gd29y
a2VyPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXN5bmMiIGNoZWNrZWQ+
Ci0gIDxsYWJlbCBmb3I9ImFzeW5jIj5Bc3luYzwvbGFiZWw+PGJyPgotICAoUmVjZWl2ZSAmYW1w
OyZhbXA7IE5vbi1Xb3JrZXIgJmFtcDsmYW1wOyBTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3Bl
YykKLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6Ci0KLSAgPGJyLz4KLQotICA8dGFibGU+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bSBYSFJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Im51bVhIUnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgot
ICAgICAgPHRkPk51bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgotICAg
ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9
IjAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+
Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0
MCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwv
dGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1
ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk11bHRp
cGxpZXJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJz
IiB2YWx1ZT0iNSwgMiI+PC90ZD4KLSAgICA8L3RyPgotICA8L3RhYmxlPgotCi0gIFNldCBkYXRh
IHR5cGUKLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRp
byIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvdGV4dCIKLSAgICAgICAgIHZhbHVlPSJ0ZXh0
IgotICAgICAgICAgY2hlY2tlZD48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvdGV4dCI+dGV4dDwv
bGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFk
aW8iCi0gICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb2Jsb2IiCi0gICAgICAgICB2YWx1ZT0iYmxv
YiIKLSAgICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYmxvYiI+YmxvYjwvbGFiZWw+
Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0g
ICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIgotICAgICAgICAgdmFsdWU9ImFy
cmF5YnVmZmVyIgotICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZl
ciI+YXJyYXlidWZmZXI8L2xhYmVsPgotCi0gIDxicj4KLSAgU2V0IEhUVFAgbWV0aG9kIGFuZCBj
YWNoZSBjb250cm9sCi0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9Im1ldGhv
ZGFuZGNhY2hlIgotICAgICAgICAgaWQ9Im1ldGhvZGFuZGNhY2hlUE9TVCIKLSAgICAgICAgIHZh
bHVlPSJQT1NUIgotICAgICAgICAgY2hlY2tlZD48bGFiZWwgZm9yPSJtZXRob2RhbmRjYWNoZVBP
U1QiPlBPU1QgKE5vIENhY2hlKTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAg
ICAgIG5hbWU9Im1ldGhvZGFuZGNhY2hlIgotICAgICAgICAgaWQ9Im1ldGhvZGFuZGNhY2hlR0VU
Tk9DQUNIRSIKLSAgICAgICAgIHZhbHVlPSJHRVQtTk9DQUNIRSIKLSAgICAgICAgID48bGFiZWwg
Zm9yPSJtZXRob2RhbmRjYWNoZUdFVE5PQ0FDSEUiPkdFVCAoTm8gQ2FjaGUpPC9sYWJlbD4KLSAg
PGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2FjaGUiCi0gICAg
ICAgICBpZD0ibWV0aG9kYW5kY2FjaGVHRVRDQUNIRSIKLSAgICAgICAgIHZhbHVlPSJHRVQtQ0FD
SEUiCi0gICAgICAgICA+PGxhYmVsIGZvcj0ibWV0aG9kYW5kY2FjaGVHRVRDQUNIRSI+R0VUIChD
YWNoZSk8L2xhYmVsPgotICA8YnI+Ci0gIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDgwJSI+KENh
Y2hlIGNvbnRyb2w6IHJlY2VpdmUgb25seS4gQ2FjaGUgaXMgdmFsaWQgZm9yIDEwIHNlY29uZHMu
IFRoaXMgY29uZmlnIGNvbnRyb2xzIENhY2hlLWNvbnRyb2wgSFRUUCByZXNwb25zZSBoZWFkZXIu
IEJyb3dzZXJzIG1pZ2h0IG5vdCBjYWNoZSBkYXRhIGUuZy4gd2hlbiBpdCBpcyBsYXJnZSk8L3Nw
YW4+Ci08L2Zvcm0+Ci0KLTxkaXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEKLSAgICAgIGlk
PSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+
Ci08L2Rpdj4KLTxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQotICA8dGV4dGFyZWEK
LSAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25s
eT48L3RleHRhcmVhPgotPC9kaXY+Ci0KLTxkaXYgaWQ9Im5vdGVfZGl2Ij4KLSAgTm90ZToKLSAg
PHVsPgotICAgIDxsaT5FZmZlY3Qgb2YgUlRUIGFuZCB0aW1lIHNwZW50IGZvciBBcnJheUJ1ZmZl
ciBjcmVhdGlvbiBpbiByZWNlaXZlIGJlbmNobWFya3MgYXJlIG5vdCBlbGltaW5hdGVkLjwvbGk+
Ci0gICAgPGxpPlRoZSBTdGRkZXYgY29sdW1uIHNob3dzIE5hTiB3aGVuIHRoZSBudW1iZXIgb2Yg
aXRlcmF0aW9ucyBpcyBzZXQgdG8gMS48L2xpPgotICA8L3VsPgotPC9kaXY+Ci0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE0YTk3ZThmYjgzZTk0OGM4NWY5ZjAyMTAyMWRjNzQ3OTMwNWU2YzAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1h
cmsuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyOTIgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMu
Z29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotdmFyIGlzV29ya2VyID0gdHlw
ZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiOwotCi1pZiAoaXNXb3JrZXIpIHsKLSAg
Ly8gUnVubmluZyBvbiBhIHdvcmtlcgotICBpbXBvcnRTY3JpcHRzKCd1dGlsLmpzJywgJ3V0aWxf
d29ya2VyLmpzJyk7Ci19Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBnbG9iYWxzLgotdmFy
IGJlbmNobWFyayA9IHt9OwotYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSAwOwotCi12YXIgeGhy
cyA9IFtdOwotCi12YXIgdGltZXJJRCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lBbGxYSFJz
KCkgewotICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB4aHJz
W2ldLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7Ci0gICAgLy8gQWJvcnQgWEhScyBpZiB0aGV5
IGFyZSBub3QgeWV0IERPTkUgc3RhdGUuCi0gICAgLy8gQ2FsbGluZyBhYm9ydCgpIGhlcmUgKGku
ZS4gaW4gb25yZWFkeXN0YXRlY2hhbmdlIGhhbmRsZXIpIAotICAgIC8vIGNhdXNlcyAiTmV0d29y
a0Vycm9yIiBtZXNzYWdlcyBpbiBEZXZUb29scyBpbiBzeW5jIG1vZGUsCi0gICAgLy8gZXZlbiBp
ZiBpdCBpcyBhZnRlciB0cmFuc2l0aW9uIHRvIERPTkUgc3RhdGUuCi0gICAgaWYgKHhocnNbaV0u
cmVhZHlTdGF0ZSAhPSBYTUxIdHRwUmVxdWVzdC5ET05FKQotICAgICAgeGhyc1tpXS5hYm9ydCgp
OwotICB9Ci0gIHhocnMgPSBbXTsKLSAgLy8gZ2MoKSBtaWdodCBiZSBuZWVkZWQgZm9yIENocm9t
ZS9CbG9iCi19Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZywgaXNX
YXJtVXApIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMg
PSBudWxsOwotICB2YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0K
LSAgdmFyIG9uUmVhZHlTdGF0ZUNoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYg
KHRoaXMucmVhZHlTdGF0ZSAhPSB0aGlzLkRPTkUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAodGhpcy5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0Zh
aWxlZCAoc3RhdHVzPScgKyB0aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICBkZXN0cm95QWxsWEhS
cygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhICYmCi0gICAgICAgICF2ZXJpZnlBY2tub3dsZWRn
ZW1lbnQoY29uZmlnLCB0aGlzLnJlc3BvbnNlLCBzaXplKSkgewotICAgICAgZGVzdHJveUFsbFhI
UnMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHRvdGFsUmVwbGllZCArPSBzaXplOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRv
dGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChiZW5jaG1hcmsuc3Rh
cnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUlu
TXMgbm90IHNldCcpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIGNvbmZpZy5ub3Rp
ZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENoZWNrIGFuZCB3YXJu
IGlmIHByb3h5IGlzIGVuYWJsZWQuCi0gICAgaWYgKHRoaXMuZ2V0UmVzcG9uc2VIZWFkZXIoJ1Zp
YScpICE9PSBudWxsKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5IHNl
ZW1zIGVuYWJsZWQuJyk7Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZp
Zywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKLSAgICAgICAgaXNX
YXJtVXApOwotCi0gICAgZGVzdHJveUFsbFhIUnMoKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZp
Zyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsgKytpKSB7
Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vbnJlYWR5c3Rh
dGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAgIHhocnMucHVzaCh4aHIp
OwotICB9Ci0KLSAgdmFyIGRhdGFBcnJheSA9IFtdOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwg
eGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciBkYXRhID0gbnVsbDsKLSAgICBpZiAoY29uZmln
LmRhdGFUeXBlID09ICdhcnJheWJ1ZmZlcicgfHwKLSAgICAgICAgY29uZmlnLmRhdGFUeXBlID09
ICdibG9iJykgewotICAgICAgZGF0YSA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgICAg
ZmlsbEFycmF5QnVmZmVyKGRhdGEsIDB4NjEpOwotCi0gICAgICBpZiAoY29uZmlnLmRhdGFUeXBl
ID09ICdibG9iJykgewotICAgICAgICBkYXRhID0gbmV3IEJsb2IoW2RhdGFdKTsKLSAgICAgIH0K
LSAgICB9IGVsc2UgewotICAgICAgZGF0YSA9IHJlcGVhdFN0cmluZygnYScsIHNpemUpOwotICAg
IH0KLQotICAgIGRhdGFBcnJheS5wdXNoKGRhdGEpOwotICB9Ci0KLQotICBiZW5jaG1hcmsuc3Rh
cnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotICB0b3RhbFNpemUgPSBzaXplICogeGhycy5s
ZW5ndGg7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
dmFyIGRhdGEgPSBkYXRhQXJyYXlbaV07Ci0gICAgdmFyIHhociA9IHhocnNbaV07Ci0gICAgeGhy
Lm9wZW4oJ1BPU1QnLCBjb25maWcucHJlZml4VXJsICsgJ19zZW5kJywgY29uZmlnLmFzeW5jKTsK
LSAgICB4aHIuc2VuZChkYXRhKTsKLSAgfQotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJr
U3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIGJl
bmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZh
ciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZhciBjaGVja1Jlc3VsdEFuZENvbnRpbnVlID0gZnVu
Y3Rpb24gKGJ5dGVzUmVjZWl2ZWQsIHZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgIGlmICghdmVy
aWZpY2F0aW9uUmVzdWx0KSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlm
aWNhdGlvbiBmYWlsZWQnKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcu
bm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQg
Kz0gYnl0ZXNSZWNlaXZlZDsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsK
LSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMg
PT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQn
KTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsK
LSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmln
LCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplLAotICAgICAgICBpc1dh
cm1VcCk7Ci0KLSAgICBkZXN0cm95QWxsWEhScygpOwotCi0gICAgcnVuTmV4dFRhc2soY29uZmln
KTsKLSAgfQotCi0gIHZhciBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKCkg
ewotICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhpcy5ET05FKSB7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKHRoaXMuc3RhdHVzICE9IDIwMCkgewotICAgICAgY29uZmlnLmFk
ZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAgZGVz
dHJveUFsbFhIUnMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIC8vIENoZWNrIGFuZCB3YXJuIGlmIHByb3h5IGlzIGVuYWJsZWQuCi0g
ICAgaWYgKHRoaXMuZ2V0UmVzcG9uc2VIZWFkZXIoJ1ZpYScpICE9PSBudWxsKSB7Ci0gICAgICBj
b25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5IHNlZW1zIGVuYWJsZWQuJyk7Ci0gICAgfQot
Ci0gICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSAtMTsKLSAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUg
PT0gJ2FycmF5YnVmZmVyJykgewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2Uu
Ynl0ZUxlbmd0aDsKLSAgICB9IGVsc2UgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdibG9iJykg
ewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2Uuc2l6ZTsKLSAgICB9IGVsc2Ug
ewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2UubGVuZ3RoOwotICAgIH0KLSAg
ICBpZiAoYnl0ZXNSZWNlaXZlZCAhPSBzaXplKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0V4
cGVjdGVkICcgKyBzaXplICsKLSAgICAgICAgICAnQiBidXQgcmVjZWl2ZWQgJyArIGJ5dGVzUmVj
ZWl2ZWQgKyAnQicpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIGNvbmZpZy5ub3Rp
ZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnJlc3BvbnNl
VHlwZSA9PSAnYXJyYXlidWZmZXInKSB7Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5
dGVzUmVjZWl2ZWQsCi0gICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8IHZlcmlmeUFycmF5
QnVmZmVyKHRoaXMucmVzcG9uc2UsIDB4NjEpKTsKLSAgICB9IGVsc2UgaWYgKHRoaXMucmVzcG9u
c2VUeXBlID09ICdibG9iJykgewotICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKQotICAgICAg
ICB2ZXJpZnlCbG9iKGNvbmZpZywgdGhpcy5yZXNwb25zZSwgMHg2MSwgY2hlY2tSZXN1bHRBbmRD
b250aW51ZSk7Ci0gICAgICBlbHNlCi0gICAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGludWUoYnl0
ZXNSZWNlaXZlZCwgdHJ1ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGNoZWNrUmVzdWx0QW5kQ29u
dGludWUoCi0gICAgICAgICAgYnl0ZXNSZWNlaXZlZCwKLSAgICAgICAgICAhY29uZmlnLnZlcmlm
eURhdGEgfHwKLSAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZSA9PSByZXBlYXRTdHJpbmcoJ2En
LCB0aGlzLnJlc3BvbnNlLmxlbmd0aCkpOwotICAgIH0KLSAgfTsKLQotICBmb3IgKHZhciBpID0g
MDsgaSA8IGNvbmZpZy5udW1YSFJzOyArK2kpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNoYW5n
ZUhhbmRsZXI7Ci0gICAgeGhycy5wdXNoKHhocik7Ci0gIH0KLQotICBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotICB0b3RhbFNpemUgPSBzaXplICogeGhycy5sZW5n
dGg7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFy
IHhociA9IHhocnNbaV07Ci0gICAgaWYgKGNvbmZpZy5tZXRob2RBbmRDYWNoZSA9PT0gJ0dFVC1O
T0NBQ0hFJykgewotICAgICAgeGhyLm9wZW4oJ0dFVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3Jl
Y2VpdmVfZ2V0bm9jYWNoZT8nICsgc2l6ZSwKLSAgICAgICAgICBjb25maWcuYXN5bmMpOwotICAg
ICAgeGhyLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKLSAgICAgIHhoci5zZW5kKCk7
Ci0gICAgfSBlbHNlIGlmIChjb25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQtQ0FDSEUnKSB7
Ci0gICAgICB4aHIub3BlbignR0VUJywgY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZV9nZXRj
YWNoZT8nICsgc2l6ZSwKLSAgICAgICAgICBjb25maWcuYXN5bmMpOwotICAgICAgeGhyLnJlc3Bv
bnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKLSAgICAgIHhoci5zZW5kKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgIHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZScs
IGNvbmZpZy5hc3luYyk7Ci0gICAgICB4aHIucmVzcG9uc2VUeXBlID0gY29uZmlnLmRhdGFUeXBl
OwotICAgICAgeGhyLnNlbmQoc2l6ZSArICcgbm9uZScpOwotICAgIH0KLSAgfQotfQotCi0KLWZ1
bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKLSAgcmV0dXJuICcoJyArIGNvbmZpZy5k
YXRhVHlwZSArCi0gICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEgKwotICAg
ICcsICcgKyAoaXNXb3JrZXIgPyAnV29ya2VyJyA6ICdNYWluJykgKwotICAgICcsICcgKyAoY29u
ZmlnLmFzeW5jID8gJ0FzeW5jJyA6ICdTeW5jJykgKwotICAgICcsIG51bVhIUnM9JyArIGNvbmZp
Zy5udW1YSFJzICsKLSAgICAnLCBudW1JdGVyYXRpb25zPScgKyBjb25maWcubnVtSXRlcmF0aW9u
cyArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJh
dGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7
Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgZGVzdHJveUFsbFhIUnMoKTsKLQotICBydW5O
ZXh0VGFzayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5hbENv
bmZpZykgewotICBvcmlnaW5hbENvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7Ci0K
LSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotCi0gIHZhciBkYXRhVHlwZXMg
PSBbJ3RleHQnLCAnYmxvYicsICdhcnJheWJ1ZmZlciddOwotICB2YXIgc3RlcEZ1bmNzID0gW3Nl
bmRCZW5jaG1hcmtTdGVwLCByZWNlaXZlQmVuY2htYXJrU3RlcF07Ci0gIHZhciBuYW1lcyA9IFsn
U2VuZCcsICdSZWNlaXZlJ107Ci0gIHZhciBhc3luYyA9IFt0cnVlLCBmYWxzZV07Ci0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxlbmd0aDsgKytpKSB7Ci0gICAgZm9yICh2YXIgaiA9
IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyArK2opIHsKLSAgICAgIGZvciAodmFyIGsgPSAwOyBr
IDwgYXN5bmMubGVuZ3RoOyArK2spIHsKLSAgICAgICAgdmFyIGNvbmZpZyA9IGNsb25lQ29uZmln
KG9yaWdpbmFsQ29uZmlnKTsKLSAgICAgICAgY29uZmlnLmRhdGFUeXBlID0gZGF0YVR5cGVzW2pd
OwotICAgICAgICBjb25maWcuYXN5bmMgPSBhc3luY1trXTsKLQotICAgICAgICAvLyBSZWNlaXZl
ICYmIE5vbi1Xb3JrZXIgJiYgU3luYyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzcGVjCi0gICAg
ICAgIGlmIChzdGVwRnVuY3NbaV0gPT09IHJlY2VpdmVCZW5jaG1hcmtTdGVwICYmICFpc1dvcmtl
ciAmJgotICAgICAgICAgICAgIWNvbmZpZy5hc3luYykKLSAgICAgICAgICBjb250aW51ZTsKLQot
ICAgICAgICBhZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jc1tpXSk7Ci0gICAgICAgIGFkZFJlc3Vs
dFJlcG9ydGluZ1Rhc2soY29uZmlnLAotICAgICAgICAgICAgbmFtZXNbaV0gKyAnIGJlbmNobWFy
ayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICAgICAgfQotICAgIH0KLSAgfQotCi0g
IHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFudXAoKSB7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTBkYjBmYmVjNDk0NjUwOTEzMjliZGFmNDcxN2Q3MjE5ODg2YWQ2Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2V2ZW50X2xv
Z2dlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTIzICswLDAgQEAKLTwhLS0KLUNvcHlyaWdo
dCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVVzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi1saWNlbnNlIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLWh0dHBzOi8vZGV2ZWxvcGVycy5nb29n
bGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08
dGl0bGU+WEhSIGV2ZW50IGxvZ2dlcjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRpbF9tYWluLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgZXZlbnRzID0gW107Ci12YXIgc3RhcnRUaW1lID0g
MDsKLQotZnVuY3Rpb24gcnVuKCkgewotICBldmVudHMgPSBbXTsKLSAgc3RhcnRUaW1lID0gRGF0
ZS5ub3coKTsKLQotICBmdW5jdGlvbiBwdXNoVG9Mb2codHlwZSkgewotICAgIHZhciB0aW1lID0g
RGF0ZS5ub3coKTsKLSAgICBpZiAoZXZlbnRzLmxlbmd0aCAhPSAwICYmIHR5cGUgPT09IGV2ZW50
c1tldmVudHMubGVuZ3RoIC0gMV0udHlwZSkgewotICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGgg
LSAxXS5jb3VudCArPSAxOwotICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5sYXN0ID0g
dGltZTsKLSAgICB9IGVsc2UgewotICAgICAgZXZlbnRzLnB1c2goe3R5cGU6IHR5cGUsIGNvdW50
OiAxLCBmaXJzdDogdGltZSwgbGFzdDogdGltZX0pOwotICAgIH0KLSAgfQotCi0gIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLQotICBmdW5jdGlvbiBnZXRQcm9ncmVzc0V2ZW50RHVt
cChlKSB7Ci0gICAgcmV0dXJuICcoJyArIGUubGVuZ3RoQ29tcHV0YWJsZSArICcsICcgKyBlLmxv
YWRlZCArICcsICcgKyBlLnRvdGFsICsgJyknOwotICB9Ci0KLSAgdmFyIGR1bXBQcm9ncmVzc0V2
ZW50ID0gZ2V0Qm9vbEZyb21DaGVja0JveCgnZHVtcHByb2dyZXNzZXZlbnQnKTsKLQotICBmdW5j
dGlvbiBsb2coZSkgewotICAgIHZhciB0eXBlID0gZS50eXBlOwotICAgIGlmICh0eXBlID09PSAn
cmVhZHlzdGF0ZWNoYW5nZScpIHsKLSAgICAgIHR5cGUgKz0gZS50YXJnZXQucmVhZHlTdGF0ZTsK
LSAgICB9Ci0gICAgaWYgKGR1bXBQcm9ncmVzc0V2ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jl
c3NFdmVudCkpIHsKLSAgICAgIHR5cGUgKz0gZ2V0UHJvZ3Jlc3NFdmVudER1bXAoZSk7Ci0gICAg
fQotICAgIHB1c2hUb0xvZyh0eXBlKTsKLSAgfTsKLQotICBmdW5jdGlvbiBsb2dVcGxvYWQoZSkg
ewotICAgIHZhciB0eXBlID0gZS50eXBlOwotICAgIGlmIChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAo
ZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7Ci0gICAgICB0eXBlICs9IGdldFByb2dyZXNz
RXZlbnREdW1wKGUpOwotICAgIH0KLSAgICBwdXNoVG9Mb2coJ3VwbG9hZCcgKyB0eXBlKTsKLSAg
fQotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd1cGxvYWQnKSkgewotICAgIHZhciB1cGxv
YWQgPSB4aHIudXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWRzdGFydCA9IGxvZ1VwbG9hZDsKLSAg
ICB1cGxvYWQub25wcm9ncmVzcyA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25hYm9ydCA9IGxv
Z1VwbG9hZDsKLSAgICB1cGxvYWQub25lcnJvciA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25s
b2FkID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbnRpbWVvdXQgPSBsb2dVcGxvYWQ7Ci0gICAg
dXBsb2FkLm9ubG9hZGVuZCA9IGxvZ1VwbG9hZDsKLSAgfQotCi0gIHhoci5vbnJlYWR5c3RhdGVj
aGFuZ2UgPSBsb2c7Ci0gIHhoci5vbmxvYWRzdGFydCA9IGxvZzsKLSAgeGhyLm9ucHJvZ3Jlc3Mg
PSBsb2c7Ci0gIHhoci5vbmFib3J0ID0gbG9nOwotICB4aHIub25lcnJvciA9IGxvZzsKLSAgeGhy
Lm9ubG9hZCA9IGxvZzsKLSAgeGhyLm9udGltZW91dCA9IGxvZzsKLSAgeGhyLm9ubG9hZGVuZCA9
IGxvZzsKLQotICB4aHIub3BlbignUE9TVCcsICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQy
MWMyNDVfcmVjZWl2ZScsCi0gICAgICAgICAgIGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJykp
OwotICB2YXIgc2l6ZSA9IGdldEludEZyb21JbnB1dCgnc2l6ZScpOwotICB2YXIgY2h1bmtlZE1v
ZGUgPSAnbm9uZSc7Ci0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCdjaHVua2VkcmVzcG9uc2Un
KSkgewotICAgIGNodW5rZWRNb2RlID0gJ2NodW5rZWQnOwotICB9Ci0gIHhoci5zZW5kKHNpemUg
KyAnICcgKyBjaHVua2VkTW9kZSk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50KCkgewotICB2YXIgcmVz
dWx0ID0gJyc7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwotICAgIHZhciBsaW5lID0gJyc7Ci0gICAgbGluZSAr
PSAoZXZlbnQuZmlyc3QgLSBzdGFydFRpbWUpICsgIm1zIjsKLSAgICBpZiAoZXZlbnQuY291bnQg
PiAxKQotICAgICAgbGluZSArPSAiLSIgKyAoZXZlbnQubGFzdCAtIHN0YXJ0VGltZSkgKyAibXMi
OwotICAgIGVsc2UKLSAgICAgIGxpbmUgKz0gIiAgICAgICAgIjsKLSAgICB3aGlsZShsaW5lLmxl
bmd0aCA8IDE1KQotICAgICAgbGluZSArPSAiICI7Ci0gICAgbGluZSArPSAiOiAiICsgZXZlbnQu
dHlwZSArICcgKiAnICsgZXZlbnQuY291bnQgKyAnXG4nOwotICAgIHJlc3VsdCArPSBsaW5lOwot
ICB9Ci0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS52YWx1ZSA9IHJlc3VsdDsKLX0K
LTwvc2NyaXB0PgotCi08Ym9keT4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xz
PSI3MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLSAgPGJyLz4KLSAgU2l6ZTogPGlucHV0IHR5cGU9
InRleHQiIGlkPSJzaXplIiB2YWx1ZT0iNjU1MzYiPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgaWQ9ImNodW5rZWRyZXNwb25zZSI+Ci0gIDxsYWJlbCBmb3I9ImNodW5rZWRyZXNwb25z
ZSI+VXNlIENodW5rZWQgVC1FIGZvciByZXNwb25zZTwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5
cGU9ImNoZWNrYm94IiBpZD0idXBsb2FkIj4KLSAgPGxhYmVsIGZvcj0idXBsb2FkIj5VcGxvYWQg
cHJvZ3Jlc3M8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImR1bXBw
cm9ncmVzc2V2ZW50Ij4KLSAgPGxhYmVsIGZvcj0iZHVtcHByb2dyZXNzZXZlbnQiPgotICAgIER1
bXAgbGVuZ3RoQ29tcHV0YWJsZS9sb2FkZWQvdG90YWw8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJhc3luYyI+
QXN5bmM8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9InJ1bigp
IiB2YWx1ZT0iUnVuIFhIUiI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9InByaW50
KCkiIHZhbHVlPSJQcmludCBsb2ciPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3hocl9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYjAyYzllYTU2ZjZjMTBkMDNiZWMxMDM4ZDY3MjJkZTZlOGQzMWU1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJf
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJwZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0ieGhyX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDkzM2EyMjA0
NTFmYWRiNmEwMWE1YzFkNDVjMjU1MTQ2OGQ3ZDg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldl
YlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlci4KLQotbW9kX3B5d2Vic29j
a2V0IGlzIGEgV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVyCi1pbnRl
bmRlZCBmb3IgdGVzdGluZyBvciBleHBlcmltZW50YWwgcHVycG9zZXMuIG1vZF9weXRob24gaXMg
cmVxdWlyZWQuCi0KLQotSW5zdGFsbGF0aW9uCi09PT09PT09PT09PT0KLQotMC4gUHJlcGFyZSBh
biBBcGFjaGUgSFRUUCBTZXJ2ZXIgZm9yIHdoaWNoIG1vZF9weXRob24gaXMgZW5hYmxlZC4KLQot
MS4gU3BlY2lmeSB0aGUgZm9sbG93aW5nIEFwYWNoZSBIVFRQIFNlcnZlciBkaXJlY3RpdmVzIHRv
IHN1aXQgeW91cgotICAgY29uZmlndXJhdGlvbi4KLQotICAgSWYgbW9kX3B5d2Vic29ja2V0IGlz
IG5vdCBpbiB0aGUgUHl0aG9uIHBhdGgsIHNwZWNpZnkgdGhlIGZvbGxvd2luZy4KLSAgIDx3ZWJz
b2NrX2xpYj4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZSBtb2RfcHl3ZWJzb2NrZXQgaXMgaW5zdGFs
bGVkLgotCi0gICAgICAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWyc8d2Vic29ja19saWI+J10iCi0K
LSAgIEFsd2F5cyBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcuIDx3ZWJzb2NrX2hhbmRsZXJzPiBpcyB0
aGUgZGlyZWN0b3J5IHdoZXJlCi0gICB1c2VyLXdyaXR0ZW4gV2ViU29ja2V0IGhhbmRsZXJzIGFy
ZSBwbGFjZWQuCi0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJf
cm9vdCA8d2Vic29ja19oYW5kbGVycz4KLSAgICAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVy
IG1vZF9weXdlYnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0KLSAgIFRvIGxpbWl0IHRoZSBz
ZWFyY2ggZm9yIFdlYlNvY2tldCBoYW5kbGVycyB0byBhIGRpcmVjdG9yeSA8c2Nhbl9kaXI+Ci0g
ICB1bmRlciA8d2Vic29ja19oYW5kbGVycz4sIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgotCi0gICAg
ICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3NjYW4gPHNjYW5fZGlyPgot
Ci0gICA8c2Nhbl9kaXI+IGlzIHVzZWZ1bCBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gPHdlYnNv
Y2tfaGFuZGxlcnM+Ci0gICBjb250YWlucyBtYW55IG5vbi1XZWJTb2NrZXQgaGFuZGxlciBmaWxl
cy4KLQotICAgSWYgeW91IHdhbnQgdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBh
dGggaXMgbm90IHVuZGVyIHRoZSByb290Ci0gICBkaXJlY3RvcnkgKGkuZS4gc3ltYm9saWMgbGlu
ayBpcyBpbiByb290IGRpcmVjdG9yeSBidXQgaXRzIHRhcmdldCBpcyBub3QpLAotICAgY29uZmln
dXJlIGFzIGZvbGxvd3M6Ci0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFs
bG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIgT24KLQotICAgRXhhbXBsZSBzbmlwcGV0IG9m
IGh0dHBkLmNvbmY6Ci0gICAobW9kX3B5d2Vic29ja2V0IGlzIGluIC93ZWJzb2NrX2xpYiwgV2Vi
U29ja2V0IGhhbmRsZXJzIGFyZSBpbgotICAgL3dlYnNvY2tfaGFuZGxlcnMsIHBvcnQgaXMgODAg
Zm9yIHdzLCA0NDMgZm9yIHdzcy4pCi0KLSAgICAgICA8SWZNb2R1bGUgcHl0aG9uX21vZHVsZT4K
LSAgICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRoK1snL3dlYnNvY2tfbGliJ10iCi0gICAgICAg
ICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCAvd2Vic29ja19oYW5k
bGVycwotICAgICAgICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQu
aGVhZGVycGFyc2VyaGFuZGxlcgotICAgICAgIDwvSWZNb2R1bGU+Ci0KLTIuIFR1bmUgQXBhY2hl
IHBhcmFtZXRlcnMgZm9yIHNlcnZpbmcgV2ViU29ja2V0LiBXZSdkIGxpa2UgdG8gbm90ZSB0aGF0
IGF0Ci0gICBsZWFzdCBUaW1lT3V0IGRpcmVjdGl2ZSBmcm9tIGNvcmUgZmVhdHVyZXMgYW5kIFJl
cXVlc3RSZWFkVGltZW91dAotICAgZGlyZWN0aXZlIGZyb20gbW9kX3JlcXRpbWVvdXQgc2hvdWxk
IGJlIG1vZGlmaWVkIG5vdCB0byBraWxsIGNvbm5lY3Rpb25zCi0gICBpbiBvbmx5IGEgZmV3IHNl
Y29uZHMgb2YgaWRsZSB0aW1lLgotCi0zLiBWZXJpZnkgaW5zdGFsbGF0aW9uLiBZb3UgY2FuIHVz
ZSBleGFtcGxlL2NvbnNvbGUuaHRtbCB0byBwb2tlIHRoZSBzZXJ2ZXIuCi0KLQotV3JpdGluZyBX
ZWJTb2NrZXQgaGFuZGxlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVdoZW4gYSBX
ZWJTb2NrZXQgcmVxdWVzdCBjb21lcyBpbiwgdGhlIHJlc291cmNlIG5hbWUKLXNwZWNpZmllZCBp
biB0aGUgaGFuZHNoYWtlIGlzIGNvbnNpZGVyZWQgYXMgaWYgaXQgaXMgYSBmaWxlIHBhdGggdW5k
ZXIKLTx3ZWJzb2NrX2hhbmRsZXJzPiBhbmQgdGhlIGhhbmRsZXIgZGVmaW5lZCBpbgotPHdlYnNv
Y2tfaGFuZGxlcnM+LzxyZXNvdXJjZV9uYW1lPl93c2gucHkgaXMgaW52b2tlZC4KLQotRm9yIGV4
YW1wbGUsIGlmIHRoZSByZXNvdXJjZSBuYW1lIGlzIC9leGFtcGxlL2NoYXQsIHRoZSBoYW5kbGVy
IGRlZmluZWQgaW4KLTx3ZWJzb2NrX2hhbmRsZXJzPi9leGFtcGxlL2NoYXRfd3NoLnB5IGlzIGlu
dm9rZWQuCi0KLUEgV2ViU29ja2V0IGhhbmRsZXIgaXMgY29tcG9zZWQgb2YgdGhlIGZvbGxvd2lu
ZyB0aHJlZSBmdW5jdGlvbnM6Ci0KLSAgICB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KQotICAgIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgIHdlYl9z
b2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KQotCi13aGVyZToKLSAgICBy
ZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlIGlzIGNhbGxlZCBkdXJpbmcgdGhlIGhhbmRzaGFrZSBhZnRlciB0aGUKLWhlYWRlcnMgYXJl
IHN1Y2Nlc3NmdWxseSBwYXJzZWQgYW5kIFdlYlNvY2tldCBwcm9wZXJ0aWVzICh3c19sb2NhdGlv
biwKLXdzX29yaWdpbiwgYW5kIHdzX3Jlc291cmNlKSBhcmUgYWRkZWQgdG8gcmVxdWVzdC4gQSBo
YW5kbGVyCi1jYW4gcmVqZWN0IHRoZSByZXF1ZXN0IGJ5IHJhaXNpbmcgYW4gZXhjZXB0aW9uLgot
Ci1BIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgdGhhdCB5b3Ug
Y2FuIHVzZSBkdXJpbmcgdGhlCi1leHRyYSBoYW5kc2hha2UgKHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKToKLS0gd3NfcmVzb3VyY2UKLS0gd3Nfb3JpZ2luCi0tIHdzX3ZlcnNpb24KLS0g
d3NfbG9jYXRpb24gKEh5QmkgMDAgb25seSkKLS0gd3NfZXh0ZW5zaW9ucyAoSHlCaSAwNiBhbmQg
bGF0ZXIpCi0tIHdzX2RlZmxhdGUgKEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19wcm90b2NvbAot
LSB3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIChIeUJpIDA2IGFuZCBsYXRlcikKLQotVGhlIGxhc3Qg
dHdvIGFyZSBhIGJpdCB0cmlja3kuIFNlZSB0aGUgbmV4dCBzdWJzZWN0aW9uLgotCi0KLVN1YnBy
b3RvY29sIE5lZ290aWF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Gb3IgSHlCaSAw
NiBhbmQgbGF0ZXIsIHdzX3Byb3RvY29sIGlzIGFsd2F5cyBzZXQgdG8gTm9uZSB3aGVuCi13ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQuIElmIHdzX3JlcXVlc3RlZF9wcm90
b2NvbHMgaXMgbm90Ci1Ob25lLCB5b3UgbXVzdCBjaG9vc2Ugb25lIHN1YnByb3RvY29sIGZyb20g
dGhpcyBsaXN0IGFuZCBzZXQgaXQgdG8KLXdzX3Byb3RvY29sLgotCi1Gb3IgSHlCaSAwMCwgd2hl
biB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQsCi13c19wcm90b2NvbCBp
cyBzZXQgdG8gdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBjbGllbnQgaW4KLVNlYy1XZWJTb2NrZXQt
UHJvdG9jb2wgaGVhZGVyIG9yIE5vbmUgaWYKLXN1Y2ggaGVhZGVyIHdhcyBub3QgZm91bmQgaW4g
dGhlIG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QuIEZpbmlzaCBleHRyYQotaGFuZHNoYWtlIHdp
dGggd3NfcHJvdG9jb2wgdW50b3VjaGVkIHRvIGFjY2VwdCB0aGUgcmVxdWVzdCBzdWJwcm90b2Nv
bC4KLVRoZW4sIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyIHdpbGwgYmUgc2VudCB0bwot
dGhlIGNsaWVudCBpbiByZXNwb25zZSB3aXRoIHRoZSBzYW1lIHZhbHVlIGFzIHJlcXVlc3RlZC4g
UmFpc2UgYW4gZXhjZXB0aW9uCi1pbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSB0byBy
ZWplY3QgdGhlIHJlcXVlc3RlZCBzdWJwcm90b2NvbC4KLQotCi1EYXRhIFRyYW5zZmVyCi0tLS0t
LS0tLS0tLS0tCi0KLXdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBpcyBjYWxsZWQgYWZ0ZXIgdGhl
IGhhbmRzaGFrZSBjb21wbGV0ZWQKLXN1Y2Nlc3NmdWxseS4gQSBoYW5kbGVyIGNhbiByZWNlaXZl
L3NlbmQgbWVzc2FnZXMgZnJvbS90byB0aGUgY2xpZW50Ci11c2luZyByZXF1ZXN0LiBtb2RfcHl3
ZWJzb2NrZXQubXNndXRpbCBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzCi1mb3IgZGF0YSB0cmFu
c2Zlci4KLQotWW91IGNhbiByZWNlaXZlIGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0YXRl
bWVudC4KLQotICAgIG1lc3NhZ2UgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2Uo
KQotCi1UaGlzIGNhbGwgYmxvY2tzIHVudGlsIGFueSBjb21wbGV0ZSB0ZXh0IGZyYW1lIGFycml2
ZXMsIGFuZCB0aGUgcGF5bG9hZCBkYXRhCi1vZiB0aGUgaW5jb21pbmcgZnJhbWUgd2lsbCBiZSBz
dG9yZWQgaW50byBtZXNzYWdlLiBXaGVuIHlvdSdyZSB1c2luZyBJRVRGCi1IeUJpIDAwIG9yIGxh
dGVyIHByb3RvY29sLCByZWNlaXZlX21lc3NhZ2UoKSB3aWxsIHJldHVybiBOb25lIG9uIHJlY2Vp
dmluZwotY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZS4gV2hlbiBhbnkgZXJyb3Ig
b2NjdXJzLCByZWNlaXZlX21lc3NhZ2UoKQotd2lsbCByYWlzZSBzb21lIGV4Y2VwdGlvbi4KLQot
WW91IGNhbiBzZW5kIGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0YXRlbWVudC4KLQotICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotCi0KLUNsb3NpbmcgQ29u
bmVjdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUV4ZWN1dGluZyB0aGUgZm9sbG93aW5nIHN0
YXRlbWVudCBvciBqdXN0IHJldHVybi1pbmcgZnJvbQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRh
IGNhdXNlIGNvbm5lY3Rpb24gY2xvc2UuCi0KLSAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9j
b25uZWN0aW9uKCkKLQotY2xvc2VfY29ubmVjdGlvbiB3aWxsIHdhaXQKLWZvciBjbG9zaW5nIGhh
bmRzaGFrZSBhY2tub3dsZWRnZW1lbnQgY29taW5nIGZyb20gdGhlIGNsaWVudC4gV2hlbiBpdAot
Y291bGRuJ3QgcmVjZWl2ZSBhIHZhbGlkIGFja25vd2xlZGdlbWVudCwgcmFpc2VzIGFuIGV4Y2Vw
dGlvbi4KLQotd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlIGlzIGNhbGxlZCBh
ZnRlciB0aGUgc2VydmVyIHJlY2VpdmVzCi1pbmNvbWluZyBjbG9zaW5nIGZyYW1lIGZyb20gdGhl
IGNsaWVudCBwZWVyIGltbWVkaWF0ZWx5LiBZb3UgY2FuIHNwZWNpZnkKLWNvZGUgYW5kIHJlYXNv
biBieSByZXR1cm4gdmFsdWVzLiBUaGV5IGFyZSBzZW50IGFzIGEgb3V0Z29pbmcgY2xvc2luZyBm
cmFtZQotZnJvbSB0aGUgc2VydmVyLiBBIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5n
IHByb3BlcnRpZXMgdGhhdCB5b3UgY2FuCi11c2UgaW4gd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3Np
bmdfaGFuZHNoYWtlLgotLSB3c19jbG9zZV9jb2RlCi0tIHdzX2Nsb3NlX3JlYXNvbgotCi0KLVRo
cmVhZGluZwotLS0tLS0tLS0tCi0KLUEgV2ViU29ja2V0IGhhbmRsZXIgbXVzdCBiZSB0aHJlYWQt
c2FmZSBpZiB0aGUgc2VydmVyIChBcGFjaGUgb3IKLXN0YW5kYWxvbmUucHkpIGlzIGNvbmZpZ3Vy
ZWQgdG8gdXNlIHRocmVhZHMuCi0KLQotQ29uZmlndXJpbmcgV2ViU29ja2V0IEV4dGVuc2lvbiBQ
cm9jZXNzb3JzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
U2VlIGV4dGVuc2lvbnMucHkgZm9yIHN1cHBvcnRlZCBXZWJTb2NrZXQgZXh0ZW5zaW9ucy4gTm90
ZSB0aGF0IHRoZXkgYXJlCi11bnN0YWJsZSBhbmQgdGhlaXIgQVBJcyBhcmUgc3ViamVjdCB0byBj
aGFuZ2Ugc3Vic3RhbnRpYWxseS4KLQotQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlc2UgZXh0ZW5z
aW9uIHByb2Nlc3NpbmcgcmVsYXRlZCBhdHRyaWJ1dGVzLgotCi0tIHdzX3JlcXVlc3RlZF9leHRl
bnNpb25zOgotCi0gIEEgbGlzdCBvZiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyIGluc3RhbmNl
cyByZXByZXNlbnRpbmcgZXh0ZW5zaW9uCi0gIHBhcmFtZXRlcnMgcmVjZWl2ZWQgZnJvbSB0aGUg
Y2xpZW50IGluIHRoZSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgWW91IHNob3VsZG4n
dCBtb2RpZnkgaXQgbWFudWFsbHkuCi0KLS0gd3NfZXh0ZW5zaW9uczoKLQotICBBIGxpc3Qgb2Yg
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lv
bgotICBwYXJhbWV0ZXJzIHRvIHNlbmQgYmFjayB0byB0aGUgY2xpZW50IGluIHRoZSBzZXJ2ZXIn
cyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgWW91IHNob3VsZG4ndCB0b3VjaCBpdCBkaXJlY3RseS4g
SW5zdGVhZCwgY2FsbCBtZXRob2RzIG9uIGV4dGVuc2lvbgotICBwcm9jZXNzb3JzLgotCi0tIHdz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzOgotCi0gIEEgbGlzdCBvZiBsb2FkZWQgZXh0ZW5zaW9uIHBy
b2Nlc3NvcnMuIEZpbmQgdGhlIHByb2Nlc3NvciBmb3IgdGhlCi0gIGV4dGVuc2lvbiB5b3Ugd2Fu
dCB0byBjb25maWd1cmUgZnJvbSBpdCwgYW5kIGNhbGwgaXRzIG1ldGhvZHMuCi0iIiIKLQotCi0j
IHZpOnN0cz00IHN3PTQgZXQgdHc9NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1fYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1fYmFzZS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFhMTI1NGFlNmQwZTM2ZmI1ZTk3OTgxMjgz
YzU3YjE1ZGY2ZjNlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxODEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQmFzZSBzdHJlYW0gY2xh
c3MuCi0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1
c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotIyBtb2RfcHl0aG9uIGRvY3VtZW50IHNh
eXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgotIyBoYW5kbGVy
cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwK
LSMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0
IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3JpdGluZy9yZWFkaW5nLgotCi0KLWltcG9ydCBz
b2NrZXQKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0jIEV4Y2VwdGlv
bnMKLQotCi1jbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgot
ICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYSBjb25uZWN0aW9uIGlz
IHRlcm1pbmF0ZWQKLSAgICB1bmV4cGVjdGVkbHkuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQot
Y2xhc3MgSW52YWxpZEZyYW1lRXhjZXB0aW9uKENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmVk
IGFuIGludmFsaWQgZnJhbWUgd2UKLSAgICBjYW5ub3QgcGFyc2UuCi0gICAgIiIiCi0KLSAgICBw
YXNzCi0KLQotY2xhc3MgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIi
VGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBzZW5kX21lc3NhZ2UoKSBpcyBjYWxs
ZWQgb24KLSAgICBzZXJ2ZXItdGVybWluYXRlZCBjb25uZWN0aW9uIG9yIHJlY2VpdmVfbWVzc2Fn
ZSgpIGlzIGNhbGxlZCBvbgotICAgIGNsaWVudC10ZXJtaW5hdGVkIGNvbm5lY3Rpb24uCi0gICAg
IiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbihFeGNl
cHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVj
ZWl2ZSBhIGZyYW1lIHdpdGggZmxhZywgb3Bjb2RlCi0gICAgd2UgY2Fubm90IGhhbmRsZS4gSGFu
ZGxlcnMgY2FuIGp1c3QgY2F0Y2ggYW5kIGlnbm9yZSB0aGlzIGV4Y2VwdGlvbiBhbmQKLSAgICBj
YWxsIHJlY2VpdmVfbWVzc2FnZSgpIGFnYWluIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgdGhlIG5l
eHQgZnJhbWUuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgSW52YWxpZFVURjhFeGNl
cHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3
aGVuIHdlIHJlY2VpdmUgYSB0ZXh0IGZyYW1lIHdoaWNoCi0gICAgY29udGFpbnMgaW52YWxpZCBV
VEYtOCBzdHJpbmdzLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIFN0cmVhbUJhc2Uo
b2JqZWN0KToKLSAgICAiIiJCYXNlIHN0cmVhbSBjbGFzcy4iIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICBkZWYgX3Jl
YWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVhZHMgbGVuZ3RoIGJ5dGVzIGZyb20gY29u
bmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAotICAgICAgICBwcmVwZW5k
cyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWlu
LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlYWRfYnl0ZXMgPSBzZWxmLl9yZXF1ZXN0LmNvbm5l
Y3Rpb24ucmVhZChsZW5ndGgpCi0gICAgICAgICAgICBpZiBub3QgcmVhZF9ieXRlczoKLSAgICAg
ICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gUGVlciAoJXIpIGNsb3NlZCBj
b25uZWN0aW9uJyAlCi0gICAgICAgICAgICAgICAgICAgIChsZW5ndGgsIChzZWxmLl9yZXF1ZXN0
LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSkpCi0gICAgICAgICAgICByZXR1cm4gcmVhZF9ieXRl
cwotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6Ci0gICAgICAgICAgICAjIENhdGNo
IGEgc29ja2V0LmVycm9yLiBCZWNhdXNlIGl0J3Mgbm90IGEgY2hpbGQgY2xhc3Mgb2YgdGhlCi0g
ICAgICAgICAgICAjIElPRXJyb3IgcHJpb3IgdG8gUHl0aG9uIDIuNiwgd2UgY2Fubm90IG9taXQg
dGhpcyBleGNlcHQgY2xhdXNlLgotICAgICAgICAgICAgIyBVc2UgJXMgcmF0aGVyIHRoYW4gJXIg
Zm9yIHRoZSBleGNlcHRpb24gdG8gdXNlIGh1bWFuIGZyaWVuZGx5Ci0gICAgICAgICAgICAjIGZv
cm1hdC4KLSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIHNvY2tldC5lcnJvciAo
JXMpIG9jY3VycmVkJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgZSkpCi0gICAgICAgIGV4
Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAjIEFsc28gY2F0Y2ggYW4gSU9FcnJvciBi
ZWNhdXNlIG1vZF9weXRob24gdGhyb3dzIGl0LgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRl
IGZhaWxlZC4gSU9FcnJvciAoJXMpIG9jY3VycmVkJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0
aCwgZSkpCi0KLSAgICBkZWYgX3dyaXRlKHNlbGYsIGJ5dGVzX3RvX3dyaXRlKToKLSAgICAgICAg
IiIiV3JpdGVzIGdpdmVuIGJ5dGVzIHRvIGNvbm5lY3Rpb24uIEluIGNhc2Ugd2UgY2F0Y2ggYW55
IGV4Y2VwdGlvbiwKLSAgICAgICAgcHJlcGVuZHMgcmVtb3RlIGFkZHJlc3MgdG8gdGhlIGV4Y2Vw
dGlvbiBtZXNzYWdlIGFuZCByYWlzZSBhZ2Fpbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKGJ5dGVzX3RvX3dy
aXRlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICB1dGlsLnBy
ZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdGYWlsZWQg
dG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksCi0gICAgICAgICAgICAgICAg
ICAgIGUpCi0gICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIHJlY2VpdmVfYnl0ZXMoc2VsZiwg
bGVuZ3RoKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgbXVsdGlwbGUgYnl0ZXMuIFJldHJpZXMgcmVh
ZCB3aGVuIHdlIGNvdWxkbid0IHJlY2VpdmUgdGhlCi0gICAgICAgIHNwZWNpZmllZCBhbW91bnQu
Ci0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNl
cHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgcmVhZF9ieXRlcyA9IFtdCi0gICAgICAgIHdoaWxlIGxlbmd0aCA+IDA6Ci0gICAgICAg
ICAgICBuZXdfcmVhZF9ieXRlcyA9IHNlbGYuX3JlYWQobGVuZ3RoKQotICAgICAgICAgICAgcmVh
ZF9ieXRlcy5hcHBlbmQobmV3X3JlYWRfYnl0ZXMpCi0gICAgICAgICAgICBsZW5ndGggLT0gbGVu
KG5ld19yZWFkX2J5dGVzKQotICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5dGVzKQotCi0g
ICAgZGVmIF9yZWFkX3VudGlsKHNlbGYsIGRlbGltX2NoYXIpOgotICAgICAgICAiIiJSZWFkcyBi
eXRlcyB1bnRpbCB3ZSBlbmNvdW50ZXIgZGVsaW1fY2hhci4gVGhlIHJlc3VsdCB3aWxsIG5vdAot
ICAgICAgICBjb250YWluIGRlbGltX2NoYXIuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAg
ICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5
IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVhZF9ieXRlcyA9IFtdCi0gICAgICAg
IHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHNlbGYuX3JlYWQoMSkKLSAgICAgICAgICAg
IGlmIGNoID09IGRlbGltX2NoYXI6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAg
IHJlYWRfYnl0ZXMuYXBwZW5kKGNoKQotICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5dGVz
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvX3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhp
ZTc1LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNmNWIzMWJhMGZjM2MzYTM0
NzdkZTgyMjk3YTBjMjZkYTFjNDhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlz
IGZpbGUgcHJvdmlkZXMgYSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMgb2YgdGhl
IFdlYlNvY2tldAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwIGFuZCBIaXhpZSA3NS4KLQotU3Bl
Y2lmaWNhdGlvbjoKLS0gSHlCaSAwMCBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1p
ZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAKLS0gSGl4aWUgNzUgaHR0cDovL3Rvb2xz
LmlldGYub3JnL2h0bWwvZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzUKLSIiIgot
Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0
aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFt
ZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBTdHJl
YW1CYXNlCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9y
dGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQot
Y2xhc3MgU3RyZWFtSGl4aWU3NShTdHJlYW1CYXNlKToKLSAgICAiIiJBIGNsYXNzIGZvciBwYXJz
aW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24KLSAg
ICBIeUJpIDAwIGFuZCBIaXhpZSA3NS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBlbmFibGVfY2xvc2luZ19oYW5kc2hha2U9RmFsc2UpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIGVuYWJsZV9jbG9zaW5nX2hhbmRz
aGFrZTogdG8gbGV0IFN0cmVhbUhpeGllNzUgcGVyZm9ybSBjbG9zaW5nCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZSBhcyBzcGVjaWZpZWQgaW4gSHlCaSAw
MCwgc2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgb3B0aW9u
IHRvIFRydWUuCi0gICAgICAgICIiIgotCi0gICAgICAgIFN0cmVhbUJhc2UuX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dn
ZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2UgPSBlbmFi
bGVfY2xvc2luZ19oYW5kc2hha2UKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJt
aW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9
IEZhbHNlCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBi
aW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJTZW5kIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIG1lc3NhZ2U6IHVuaWNvZGUgc3RyaW5nIHRvIHNlbmQuCi0gICAgICAgICAg
ICBiaW5hcnk6IG5vdCB1c2VkIGluIGhpeGllNzUuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAg
ICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIHNlcnZlci10ZXJt
aW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgaWYgbm90IGVuZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNlbmRfbWVz
c2FnZSB3aXRoIGVuZD1GYWxzZScpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAg
cmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTdHJlYW1IaXhp
ZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdpdGggYmluYXJ5PVRydWUnKQotCi0g
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBy
YWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBz
ZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAg
ICAgICAgc2VsZi5fd3JpdGUoJycuam9pbihbJ1x4MDAnLCBtZXNzYWdlLmVuY29kZSgndXRmLTgn
KSwgJ1x4ZmYnXSkpCi0KLSAgICBkZWYgX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NShzZWxm
KToKLSAgICAgICAgIiIiUmVhZHMgYSBsZW5ndGggaGVhZGVyIGluIGEgSGl4aWU3NSB2ZXJzaW9u
IGZyYW1lIHdpdGggbGVuZ3RoLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIGxlbmd0aCA9IDAKLSAgICAgICAgd2hpbGUgVHJ1ZToK
LSAgICAgICAgICAgIGJfc3RyID0gc2VsZi5fcmVhZCgxKQotICAgICAgICAgICAgYiA9IG9yZChi
X3N0cikKLSAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCAqIDEyOCArIChiICYgMHg3ZikKLSAg
ICAgICAgICAgIGlmIChiICYgMHg4MCkgPT0gMDoKLSAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICByZXR1cm4gbGVuZ3RoCi0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxvYWQg
YW4gdW5pY29kZSBzdHJpbmcuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIHBheWxv
YWQgdW5pY29kZSBzdHJpbmcgaW4gYSBXZWJTb2NrZXQgZnJhbWUuCi0KLSAgICAgICAgUmFpc2Vz
OgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCBy
ZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAgICAgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIGNsaWVudC10ZXJtaW5hdGVkCi0gICAg
ICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5f
cmVxdWVzdC5jbGllbnRfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHJlY2VpdmVfbWVzc2FnZSBh
ZnRlciByZWNlaXZpbmcgYSBjbG9zaW5nICcKLSAgICAgICAgICAgICAgICAnaGFuZHNoYWtlJykK
LQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBSZWFkIDEgYnl0ZS4KLSAgICAg
ICAgICAgICMgbXBfY29ubi5yZWFkIHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMgYXJlIGF2YWlsYWJs
ZS4KLSAgICAgICAgICAgICMgVGltZW91dCBpcyBjb250cm9sbGVkIGJ5IFRpbWVPdXQgZGlyZWN0
aXZlIG9mIEFwYWNoZS4KLSAgICAgICAgICAgIGZyYW1lX3R5cGVfc3RyID0gc2VsZi5yZWNlaXZl
X2J5dGVzKDEpCi0gICAgICAgICAgICBmcmFtZV90eXBlID0gb3JkKGZyYW1lX3R5cGVfc3RyKQot
ICAgICAgICAgICAgaWYgKGZyYW1lX3R5cGUgJiAweDgwKSA9PSAweDgwOgotICAgICAgICAgICAg
ICAgICMgVGhlIHBheWxvYWQgbGVuZ3RoIGlzIHNwZWNpZmllZCBpbiB0aGUgZnJhbWUuCi0gICAg
ICAgICAgICAgICAgIyBSZWFkIGFuZCBkaXNjYXJkLgotICAgICAgICAgICAgICAgIGxlbmd0aCA9
IHNlbGYuX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgpCi0gICAgICAgICAgICAgICAgaWYg
bGVuZ3RoID4gMDoKLSAgICAgICAgICAgICAgICAgICAgXyA9IHNlbGYucmVjZWl2ZV9ieXRlcyhs
ZW5ndGgpCi0gICAgICAgICAgICAgICAgIyA1LjMgMy4gMTIuIGlmIC90eXBlLyBpcyAweEZGIGFu
ZCAvbGVuZ3RoLyBpcyAwLCB0aGVuIHNldCB0aGUKLSAgICAgICAgICAgICAgICAjIC9jbGllbnQg
dGVybWluYXRlZC8gZmxhZyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgICAgICAgICAg
aWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHhGRiBhbmQg
bGVuZ3RoID09IDA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rl
cm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYWNrIGZvciBzZXJ2
ZXItaW5pdGlhdGVkIGNsb3NpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYW5k
c2hha2UnKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZWQgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICdTZW50
IGFjayBmb3IgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICMgVGhlIHBheWxvYWQgaXMgZGVsaW1pdGVkIHdpdGggXHhmZi4KLSAgICAgICAgICAgICAgICBi
eXRlcyA9IHNlbGYuX3JlYWRfdW50aWwoJ1x4ZmYnKQotICAgICAgICAgICAgICAgICMgVGhlIFdl
YlNvY2tldCBwcm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZpZXMgdGhhdCBpbnZhbGlkCi0gICAg
ICAgICAgICAgICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBVK2ZmZmQgUkVQ
TEFDRU1FTlQKLSAgICAgICAgICAgICAgICAjIENIQVJBQ1RFUi4KLSAgICAgICAgICAgICAgICBt
ZXNzYWdlID0gYnl0ZXMuZGVjb2RlKCd1dGYtOCcsICdyZXBsYWNlJykKLSAgICAgICAgICAgICAg
ICBpZiBmcmFtZV90eXBlID09IDB4MDA6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXNz
YWdlCi0gICAgICAgICAgICAgICAgIyBEaXNjYXJkIGRhdGEgb2Ygb3RoZXIgdHlwZXMuCi0KLSAg
ICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxm
Ll9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRp
b25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0Nsb3NpbmcgaGFuZHNoYWtlIGlzIG5vdCBz
dXBwb3J0ZWQgaW4gSGl4aWUgNzUgcHJvdG9jb2wnKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qu
c2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgIyA1LjMgdGhlIHNlcnZlciBtYXkg
ZGVjaWRlIHRvIHRlcm1pbmF0ZSB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYnkKLSAgICAgICAg
IyBydW5uaW5nIHRocm91Z2ggdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgIyAxLiBzZW5k
IGEgMHhGRiBieXRlIGFuZCBhIDB4MDAgYnl0ZSB0byB0aGUgY2xpZW50IHRvIGluZGljYXRlIHRo
ZQotICAgICAgICAjIHN0YXJ0IG9mIHRoZSBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgc2Vs
Zi5fd3JpdGUoJ1x4ZmZceDAwJykKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIHVu
dXNlZF9jb2RlPScnLCB1bnVzZWRfcmVhc29uPScnKToKLSAgICAgICAgIiIiQ2xvc2VzIGEgV2Vi
U29ja2V0IGNvbm5lY3Rpb24uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVj
dGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gY2xvc2luZyBoYW5kc2hha2Ugd2FzCi0gICAg
ICAgICAgICAgICAgbm90IHN1Y2Nlc3NmdWxsLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgY2xvc2VfY29ubmVjdGlvbiBidXQg
c2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRlZCcpCi0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgotICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnQ29ubmVjdGlvbiBjbG9zZWQnKQotICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLQot
ICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwgdGhlIC9jbGllbnQgdGVybWluYXRl
ZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3IgdW50aWwgYSBzZXJ2ZXItZGVmaW5l
ZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAgICAgIyBGb3Igbm93LCB3ZSBleHBl
Y3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0IGFmdGVyIHNlbmRpbmcKLSAgICAg
ICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UsIGFuZCBpZiB3ZSBjb3VsZG4ndCByZWNlaXZlIG5v
bi1oYW5kc2hha2UKLSAgICAgICAgIyBmcmFtZSwgd2UgdGFrZSBpdCBhcyBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbi4KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNzYWdl
KCkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIENv
bm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEaWRuXCd0IHJl
Y2VpdmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICMgVE9ETzog
My4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICAjIG5vdGU6IG1vZF9w
eXRob24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhvZC4KLQot
ICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQg
c2VuZF9waW5nJykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJl
YW1faHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE4ZThmZmEzOTU1ZDVh
ZjVjM2I3YzUxNmJjZmE5ODBlZmU2ZGQ4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw4OTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhp
cyBmaWxlIHByb3ZpZGVzIGNsYXNzZXMgYW5kIGhlbHBlciBmdW5jdGlvbnMgZm9yIHBhcnNpbmcv
YnVpbGRpbmcgZnJhbWVzCi1vZiB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuCi0K
LVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1Ci0iIiIK
LQotCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCBvcwotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5h
dGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IElu
dmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGlt
cG9ydCBJbnZhbGlkVVRGOEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBTdHJlYW1CYXNlCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2Ug
aW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLQotCi1fTk9PUF9NQVNLRVIgPSB1dGls
Lk5vb3BNYXNrZXIoKQotCi0KLWNsYXNzIEZyYW1lKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZmluPTEsIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTAsCi0gICAgICAgICAgICAgICAg
IG9wY29kZT1Ob25lLCBwYXlsb2FkPScnKToKLSAgICAgICAgc2VsZi5maW4gPSBmaW4KLSAgICAg
ICAgc2VsZi5yc3YxID0gcnN2MQotICAgICAgICBzZWxmLnJzdjIgPSByc3YyCi0gICAgICAgIHNl
bGYucnN2MyA9IHJzdjMKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgc2Vs
Zi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLSMgSGVscGVyIGZ1bmN0aW9ucyBtYWRlIHB1YmxpYyB0
byBiZSB1c2VkIGZvciB3cml0aW5nIHVuaXR0ZXN0cyBmb3IgV2ViU29ja2V0Ci0jIGNsaWVudHMu
Ci0KLQotZGVmIGNyZWF0ZV9sZW5ndGhfaGVhZGVyKGxlbmd0aCwgbWFzayk6Ci0gICAgIiIiQ3Jl
YXRlcyBhIGxlbmd0aCBoZWFkZXIuCi0KLSAgICBBcmdzOgotICAgICAgICBsZW5ndGg6IEZyYW1l
IGxlbmd0aC4gTXVzdCBiZSBsZXNzIHRoYW4gMl42My4KLSAgICAgICAgbWFzazogTWFzayBiaXQu
IE11c3QgYmUgYm9vbGVhbi4KLQotICAgIFJhaXNlczoKLSAgICAgICAgVmFsdWVFcnJvcjogd2hl
biBiYWQgZGF0YSBpcyBnaXZlbi4KLSAgICAiIiIKLQotICAgIGlmIG1hc2s6Ci0gICAgICAgIG1h
c2tfYml0ID0gMSA8PCA3Ci0gICAgZWxzZToKLSAgICAgICAgbWFza19iaXQgPSAwCi0KLSAgICBp
ZiBsZW5ndGggPCAwOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdsZW5ndGggbXVzdCBiZSBu
b24gbmVnYXRpdmUgaW50ZWdlcicpCi0gICAgZWxpZiBsZW5ndGggPD0gMTI1OgotICAgICAgICBy
ZXR1cm4gY2hyKG1hc2tfYml0IHwgbGVuZ3RoKQotICAgIGVsaWYgbGVuZ3RoIDwgKDEgPDwgMTYp
OgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgMTI2KSArIHN0cnVjdC5wYWNrKCchSCcs
IGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0aCA8ICgxIDw8IDYzKToKLSAgICAgICAgcmV0dXJuIGNo
cihtYXNrX2JpdCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEnLCBsZW5ndGgpCi0gICAgZWxzZToK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBpcyB0b28gYmlnIGZvciBvbmUgZnJh
bWUnKQotCi0KLWRlZiBjcmVhdGVfaGVhZGVyKG9wY29kZSwgcGF5bG9hZF9sZW5ndGgsIGZpbiwg
cnN2MSwgcnN2MiwgcnN2MywgbWFzayk6Ci0gICAgIiIiQ3JlYXRlcyBhIGZyYW1lIGhlYWRlci4K
LQotICAgIFJhaXNlczoKLSAgICAgICAgRXhjZXB0aW9uOiB3aGVuIGJhZCBkYXRhIGlzIGdpdmVu
LgotICAgICIiIgotCi0gICAgaWYgb3Bjb2RlIDwgMCBvciAweGYgPCBvcGNvZGU6Ci0gICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ09wY29kZSBvdXQgb2YgcmFuZ2UnKQotCi0gICAgaWYgcGF5bG9h
ZF9sZW5ndGggPCAwIG9yICgxIDw8IDYzKSA8PSBwYXlsb2FkX2xlbmd0aDoKLSAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigncGF5bG9hZF9sZW5ndGggb3V0IG9mIHJhbmdlJykKLQotICAgIGlmIChm
aW4gfCByc3YxIHwgcnN2MiB8IHJzdjMpICYgfjE6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0ZJTiBiaXQgYW5kIFJlc2VydmVkIGJpdCBwYXJhbWV0ZXIgbXVzdCBiZSAwIG9yIDEnKQotCi0g
ICAgaGVhZGVyID0gJycKLQotICAgIGZpcnN0X2J5dGUgPSAoKGZpbiA8PCA3KQotICAgICAgICAg
ICAgICAgICAgfCAocnN2MSA8PCA2KSB8IChyc3YyIDw8IDUpIHwgKHJzdjMgPDwgNCkKLSAgICAg
ICAgICAgICAgICAgIHwgb3Bjb2RlKQotICAgIGhlYWRlciArPSBjaHIoZmlyc3RfYnl0ZSkKLSAg
ICBoZWFkZXIgKz0gY3JlYXRlX2xlbmd0aF9oZWFkZXIocGF5bG9hZF9sZW5ndGgsIG1hc2spCi0K
LSAgICByZXR1cm4gaGVhZGVyCi0KLQotZGVmIF9idWlsZF9mcmFtZShoZWFkZXIsIGJvZHksIG1h
c2spOgotICAgIGlmIG5vdCBtYXNrOgotICAgICAgICByZXR1cm4gaGVhZGVyICsgYm9keQotCi0g
ICAgbWFza2luZ19ub25jZSA9IG9zLnVyYW5kb20oNCkKLSAgICBtYXNrZXIgPSB1dGlsLlJlcGVh
dGVkWG9yTWFza2VyKG1hc2tpbmdfbm9uY2UpCi0KLSAgICByZXR1cm4gaGVhZGVyICsgbWFza2lu
Z19ub25jZSArIG1hc2tlci5tYXNrKGJvZHkpCi0KLQotZGVmIF9maWx0ZXJfYW5kX2Zvcm1hdF9m
cmFtZV9vYmplY3QoZnJhbWUsIG1hc2ssIGZyYW1lX2ZpbHRlcnMpOgotICAgIGZvciBmcmFtZV9m
aWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoKLSAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFt
ZSkKLQotICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIoCi0gICAgICAgIGZyYW1lLm9wY29kZSwg
bGVuKGZyYW1lLnBheWxvYWQpLCBmcmFtZS5maW4sCi0gICAgICAgIGZyYW1lLnJzdjEsIGZyYW1l
LnJzdjIsIGZyYW1lLnJzdjMsIG1hc2spCi0gICAgcmV0dXJuIF9idWlsZF9mcmFtZShoZWFkZXIs
IGZyYW1lLnBheWxvYWQsIG1hc2spCi0KLQotZGVmIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAg
bWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfQklOQVJZLCBmaW49MSwgbWFzaz1GYWxzZSwg
ZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgIiIiQ3JlYXRlcyBhIHNpbXBsZSBiaW5hcnkgZnJhbWUg
d2l0aCBubyBleHRlbnNpb24sIHJlc2VydmVkIGJpdC4iIiIKLQotICAgIGZyYW1lID0gRnJhbWUo
ZmluPWZpbiwgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1tZXNzYWdlKQotICAgIHJldHVybiBfZmls
dGVyX2FuZF9mb3JtYXRfZnJhbWVfb2JqZWN0KGZyYW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKQot
Ci0KLWRlZiBjcmVhdGVfdGV4dF9mcmFtZSgKLSAgICBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9Q
Q09ERV9URVhULCBmaW49MSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgIiIi
Q3JlYXRlcyBhIHNpbXBsZSB0ZXh0IGZyYW1lIHdpdGggbm8gZXh0ZW5zaW9uLCByZXNlcnZlZCBi
aXQuIiIiCi0KLSAgICBlbmNvZGVkX21lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQot
ICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKGVuY29kZWRfbWVzc2FnZSwgb3Bjb2RlLCBm
aW4sIG1hc2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfZmlsdGVycykK
LQotCi1kZWYgcGFyc2VfZnJhbWUocmVjZWl2ZV9ieXRlcywgbG9nZ2VyPU5vbmUsCi0gICAgICAg
ICAgICAgICAgd3NfdmVyc2lvbj1jb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVCwKLSAgICAgICAg
ICAgICAgICB1bm1hc2tfcmVjZWl2ZT1UcnVlKToKLSAgICAiIiJQYXJzZXMgYSBmcmFtZS4gUmV0
dXJucyBhIHR1cGxlIGNvbnRhaW5pbmcgZWFjaCBoZWFkZXIgZmllbGQgYW5kCi0gICAgcGF5bG9h
ZC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlY2VpdmVfYnl0ZXM6IGEgZnVuY3Rpb24gdGhhdCBy
ZWFkcyBmcmFtZSBkYXRhIGZyb20gYSBzdHJlYW0gb3IKLSAgICAgICAgICAgIHNvbWV0aGluZyBz
aW1pbGFyLiBUaGUgZnVuY3Rpb24gdGFrZXMgbGVuZ3RoIG9mIHRoZSBieXRlcyB0byBiZQotICAg
ICAgICAgICAgcmVhZC4gVGhlIGZ1bmN0aW9uIG11c3QgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24gaWYKLSAgICAgICAgICAgIHRoZXJlIGlzIG5vdCBlbm91Z2ggZGF0YSB0byBi
ZSByZWFkLgotICAgICAgICBsb2dnZXI6IGEgbG9nZ2luZyBvYmplY3QuCi0gICAgICAgIHdzX3Zl
cnNpb246IHRoZSB2ZXJzaW9uIG9mIFdlYlNvY2tldCBwcm90b2NvbC4KLSAgICAgICAgdW5tYXNr
X3JlY2VpdmU6IHVubWFzayByZWNlaXZlZCBmcmFtZXMuIFdoZW4gcmVjZWl2ZWQgdW5tYXNrZWQK
LSAgICAgICAgICAgIGZyYW1lLCByYWlzZXMgSW52YWxpZEZyYW1lRXhjZXB0aW9uLgotCi0gICAg
UmFpc2VzOgotICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWNl
aXZlX2J5dGVzIHJhaXNlcyBpdC4KLSAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVu
IHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qg
bG9nZ2VyOgotICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0KLSAgICBsb2dn
ZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSB0aGUgZmlyc3QgMiBvY3RldHMg
b2YgYSBmcmFtZScpCi0KLSAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoMikKLQotICAgIGZp
cnN0X2J5dGUgPSBvcmQocmVjZWl2ZWRbMF0pCi0gICAgZmluID0gKGZpcnN0X2J5dGUgPj4gNykg
JiAxCi0gICAgcnN2MSA9IChmaXJzdF9ieXRlID4+IDYpICYgMQotICAgIHJzdjIgPSAoZmlyc3Rf
Ynl0ZSA+PiA1KSAmIDEKLSAgICByc3YzID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0gICAgb3Bj
b2RlID0gZmlyc3RfYnl0ZSAmIDB4ZgotCi0gICAgc2Vjb25kX2J5dGUgPSBvcmQocmVjZWl2ZWRb
MV0pCi0gICAgbWFzayA9IChzZWNvbmRfYnl0ZSA+PiA3KSAmIDEKLSAgICBwYXlsb2FkX2xlbmd0
aCA9IHNlY29uZF9ieXRlICYgMHg3ZgotCi0gICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxf
RklORSwKLSAgICAgICAgICAgICAgICdGSU49JXMsIFJTVjE9JXMsIFJTVjI9JXMsIFJTVjM9JXMs
IG9wY29kZT0lcywgJwotICAgICAgICAgICAgICAgJ01hc2s9JXMsIFBheWxvYWRfbGVuZ3RoPSVz
JywKLSAgICAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBtYXNrLCBw
YXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIChtYXNrID09IDEpICE9IHVubWFza19yZWNlaXZlOgot
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAnTWFzayBi
aXQgb24gdGhlIHJlY2VpdmVkIGZyYW1lIGRpZFwnbnQgbWF0Y2ggbWFza2luZyAnCi0gICAgICAg
ICAgICAnY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZWQgZnJhbWVzJykKLQotICAgICMgVGhlIEh5
QmkgYW5kIGxhdGVyIHNwZWNzIGRpc2FsbG93IHB1dHRpbmcgYSB2YWx1ZSBpbiAweDAtMHhGRkZG
Ci0gICAgIyBpbnRvIHRoZSA4LW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGZpZWxkIChv
ciAweDAtMHhGRCBpbgotICAgICMgMi1vY3RldCBmaWVsZCkuCi0gICAgdmFsaWRfbGVuZ3RoX2Vu
Y29kaW5nID0gVHJ1ZQotICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDEKLSAgICBpZiBwYXls
b2FkX2xlbmd0aCA9PSAxMjc6Ci0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJ
TkUsCi0gICAgICAgICAgICAgICAgICAgJ1JlY2VpdmUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2Fk
IGxlbmd0aCcpCi0KLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5
dGVzKDgpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAg
ICAgICchUScsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQotICAgICAgICBpZiBwYXlsb2Fk
X2xlbmd0aCA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgg
Pj0gMl42MycpCi0gICAgICAgIGlmIHdzX3ZlcnNpb24gPj0gMTMgYW5kIHBheWxvYWRfbGVuZ3Ro
IDwgMHgxMDAwMDoKLSAgICAgICAgICAgIHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IEZhbHNlCi0g
ICAgICAgICAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSA4Ci0KLSAgICAgICAgbG9nZ2VyLmxv
Zyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAnRGVjb2RlZF9wYXls
b2FkX2xlbmd0aD0lcycsIHBheWxvYWRfbGVuZ3RoKQotICAgIGVsaWYgcGF5bG9hZF9sZW5ndGgg
PT0gMTI2OgotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAg
ICAgICAgICAgICAgICdSZWNlaXZlIDItb2N0ZXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgnKQot
Ci0gICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcygyKQotICAg
ICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIUgnLCBl
eHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAgICAgaWYgd3NfdmVyc2lvbiA+PSAxMyBh
bmQgcGF5bG9hZF9sZW5ndGggPCAxMjY6Ci0gICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2Rp
bmcgPSBGYWxzZQotICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gMgotCi0gICAg
ICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAg
J0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9JXMnLCBwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIG5v
dCB2YWxpZF9sZW5ndGhfZW5jb2Rpbmc6Ci0gICAgICAgIGxvZ2dlci53YXJuaW5nKAotICAgICAg
ICAgICAgJ1BheWxvYWQgbGVuZ3RoIGlzIG5vdCBlbmNvZGVkIHVzaW5nIHRoZSBtaW5pbWFsIG51
bWJlciBvZiAnCi0gICAgICAgICAgICAnYnl0ZXMgKCVkIGlzIGVuY29kZWQgdXNpbmcgJWQgYnl0
ZXMpJywKLSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoLAotICAgICAgICAgICAgbGVuZ3RoX2Vu
Y29kaW5nX2J5dGVzKQotCi0gICAgaWYgbWFzayA9PSAxOgotICAgICAgICBsb2dnZXIubG9nKGNv
bW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSBtYXNrJykKLQotICAgICAgICBtYXNraW5nX25v
bmNlID0gcmVjZWl2ZV9ieXRlcyg0KQotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9y
TWFza2VyKG1hc2tpbmdfbm9uY2UpCi0KLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVW
RUxfRklORSwgJ01hc2s9JXInLCBtYXNraW5nX25vbmNlKQotICAgIGVsc2U6Ci0gICAgICAgIG1h
c2tlciA9IF9OT09QX01BU0tFUgotCi0gICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklO
RSwgJ1JlY2VpdmUgcGF5bG9hZCBkYXRhJykKLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNv
bW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgcmVjZWl2ZV9zdGFydCA9IHRpbWUudGltZSgp
Ci0KLSAgICByYXdfcGF5bG9hZF9ieXRlcyA9IHJlY2VpdmVfYnl0ZXMocGF5bG9hZF9sZW5ndGgp
Ci0KLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAg
ICAgICAgbG9nZ2VyLmxvZygKLSAgICAgICAgICAgIGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAg
ICAgICAgICAgJ0RvbmUgcmVjZWl2aW5nIHBheWxvYWQgZGF0YSBhdCAlcyBNQi9zJywKLSAgICAg
ICAgICAgIHBheWxvYWRfbGVuZ3RoIC8gKHRpbWUudGltZSgpIC0gcmVjZWl2ZV9zdGFydCkgLyAx
MDAwIC8gMTAwMCkKLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnVW5tYXNr
IHBheWxvYWQgZGF0YScpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dM
RVZFTF9GSU5FKToKLSAgICAgICAgdW5tYXNrX3N0YXJ0ID0gdGltZS50aW1lKCkKLQotICAgIHVu
bWFza2VkX2J5dGVzID0gbWFza2VyLm1hc2socmF3X3BheWxvYWRfYnl0ZXMpCi0KLSAgICBpZiBs
b2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgbG9nZ2Vy
LmxvZygKLSAgICAgICAgICAgIGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgJ0Rv
bmUgdW5tYXNraW5nIHBheWxvYWQgZGF0YSBhdCAlcyBNQi9zJywKLSAgICAgICAgICAgIHBheWxv
YWRfbGVuZ3RoIC8gKHRpbWUudGltZSgpIC0gdW5tYXNrX3N0YXJ0KSAvIDEwMDAgLyAxMDAwKQot
Ci0gICAgcmV0dXJuIG9wY29kZSwgdW5tYXNrZWRfYnl0ZXMsIGZpbiwgcnN2MSwgcnN2MiwgcnN2
MwotCi0KLWNsYXNzIEZyYWdtZW50ZWRGcmFtZUJ1aWxkZXIob2JqZWN0KToKLSAgICAiIiJBIHN0
YXRlZnVsIGNsYXNzIHRvIHNlbmQgYSBtZXNzYWdlIGFzIGZyYWdtZW50cy4iIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBtYXNrLCBmcmFtZV9maWx0ZXJzPVtdLCBlbmNvZGVfdXRmOD1UcnVl
KToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4iIiIKLQotICAgICAgICBzZWxm
Ll9tYXNrID0gbWFzawotICAgICAgICBzZWxmLl9mcmFtZV9maWx0ZXJzID0gZnJhbWVfZmlsdGVy
cwotICAgICAgICAjIFRoaXMgaXMgZm9yIHNraXBwaW5nIFVURi04IGVuY29kaW5nIHdoZW4gYnVp
bGRpbmcgdGV4dCB0eXBlIGZyYW1lcwotICAgICAgICAjIGZyb20gY29tcHJlc3NlZCBkYXRhLgot
ICAgICAgICBzZWxmLl9lbmNvZGVfdXRmOCA9IGVuY29kZV91dGY4Ci0KLSAgICAgICAgc2VsZi5f
c3RhcnRlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBIb2xkIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJh
bWUgaW4gbWVzc2FnZXMgdG8gdmVyaWZ5IHR5cGVzIG9mIG90aGVyCi0gICAgICAgICMgZnJhbWVz
IGluIHRoZSBtZXNzYWdlIGFyZSBhbGwgdGhlIHNhbWUuCi0gICAgICAgIHNlbGYuX29wY29kZSA9
IGNvbW1vbi5PUENPREVfVEVYVAotCi0gICAgZGVmIGJ1aWxkKHNlbGYsIHBheWxvYWRfZGF0YSwg
ZW5kLCBiaW5hcnkpOgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBmcmFtZV90eXBl
ID0gY29tbW9uLk9QQ09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZyYW1l
X3R5cGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgaWYgc2VsZi5fc3RhcnRlZDoKLSAg
ICAgICAgICAgIGlmIHNlbGYuX29wY29kZSAhPSBmcmFtZV90eXBlOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ01lc3NhZ2UgdHlwZXMgYXJlIGRpZmZlcmVudCBpbiBmcmFtZXMg
Zm9yICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgc2FtZSBtZXNzYWdl
JykKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBmcmFtZV90eXBlCi0gICAgICAgICAgICBz
ZWxmLl9vcGNvZGUgPSBmcmFtZV90eXBlCi0KLSAgICAgICAgaWYgZW5kOgotICAgICAgICAgICAg
c2VsZi5fc3RhcnRlZCA9IEZhbHNlCi0gICAgICAgICAgICBmaW4gPSAxCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl9zdGFydGVkID0gVHJ1ZQotICAgICAgICAgICAgZmluID0gMAot
Ci0gICAgICAgIGlmIGJpbmFyeSBvciBub3Qgc2VsZi5fZW5jb2RlX3V0Zjg6Ci0gICAgICAgICAg
ICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgICAgICAgICBwYXlsb2FkX2Rh
dGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9mcmFtZV9maWx0ZXJzKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZV90ZXh0X2ZyYW1lKAotICAgICAgICAg
ICAgICAgIHBheWxvYWRfZGF0YSwgb3Bjb2RlLCBmaW4sIHNlbGYuX21hc2ssIHNlbGYuX2ZyYW1l
X2ZpbHRlcnMpCi0KLQotZGVmIF9jcmVhdGVfY29udHJvbF9mcmFtZShvcGNvZGUsIGJvZHksIG1h
c2ssIGZyYW1lX2ZpbHRlcnMpOgotICAgIGZyYW1lID0gRnJhbWUob3Bjb2RlPW9wY29kZSwgcGF5
bG9hZD1ib2R5KQotCi0gICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBmcmFtZV9maWx0ZXJzOgotICAg
ICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgaWYgbGVuKGZyYW1lLnBheWxv
YWQpID4gMTI1OgotICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAg
ICAgICAnUGF5bG9hZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFtZXMgbXVzdCBiZSAxMjUgYnl0
ZXMgb3IgbGVzcycpCi0KLSAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKAotICAgICAgICBmcmFt
ZS5vcGNvZGUsIGxlbihmcmFtZS5wYXlsb2FkKSwgZnJhbWUuZmluLAotICAgICAgICBmcmFtZS5y
c3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5yc3YzLCBtYXNrKQotICAgIHJldHVybiBfYnVpbGRfZnJh
bWUoaGVhZGVyLCBmcmFtZS5wYXlsb2FkLCBtYXNrKQotCi0KLWRlZiBjcmVhdGVfcGluZ19mcmFt
ZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4gX2NyZWF0
ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5PUENPREVfUElORywgYm9keSwgbWFzaywgZnJhbWVfZmls
dGVycykKLQotCi1kZWYgY3JlYXRlX3BvbmdfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVf
ZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJvbF9mcmFtZShjb21tb24uT1BD
T0RFX1BPTkcsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV9jbG9z
ZV9mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4g
X2NyZWF0ZV9jb250cm9sX2ZyYW1lKAotICAgICAgICBjb21tb24uT1BDT0RFX0NMT1NFLCBib2R5
LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2Vf
Ym9keShjb2RlLCByZWFzb24pOgotICAgIGJvZHkgPSAnJwotICAgIGlmIGNvZGUgaXMgbm90IE5v
bmU6Ci0gICAgICAgIGlmIChjb2RlID4gY29tbW9uLlNUQVRVU19VU0VSX1BSSVZBVEVfTUFYIG9y
Ci0gICAgICAgICAgICBjb2RlIDwgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSk6Ci0gICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ1N0YXR1cyBjb2RlIGlzIG91dCBv
ZiByYW5nZScpCi0gICAgICAgIGlmIChjb2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JF
Q0VJVkVEIG9yCi0gICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfQUJOT1JNQUxfQ0xP
U1VSRSBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX1RMU19IQU5EU0hBS0Up
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBp
cyByZXNlcnZlZCBwc2V1ZG8gJwotICAgICAgICAgICAgICAgICdjb2RlJykKLSAgICAgICAgZW5j
b2RlZF9yZWFzb24gPSByZWFzb24uZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGJvZHkgPSBzdHJ1
Y3QucGFjaygnIUgnLCBjb2RlKSArIGVuY29kZWRfcmVhc29uCi0gICAgcmV0dXJuIGJvZHkKLQot
Ci1jbGFzcyBTdHJlYW1PcHRpb25zKG9iamVjdCk6Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVl
cyB0byBjb25maWd1cmUgU3RyZWFtIG9iamVjdHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Zik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgU3RyZWFtT3B0aW9ucy4iIiIKLQotICAgICAgICAj
IEZpbHRlcnMgYXBwbGllZCB0byBmcmFtZXMuCi0gICAgICAgIHNlbGYub3V0Z29pbmdfZnJhbWVf
ZmlsdGVycyA9IFtdCi0gICAgICAgIHNlbGYuaW5jb21pbmdfZnJhbWVfZmlsdGVycyA9IFtdCi0K
LSAgICAgICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gbWVzc2FnZXMuIENvbnRyb2wgZnJhbWVzIGFy
ZSBub3QgYWZmZWN0ZWQgYnkgdGhlbS4KLSAgICAgICAgc2VsZi5vdXRnb2luZ19tZXNzYWdlX2Zp
bHRlcnMgPSBbXQotICAgICAgICBzZWxmLmluY29taW5nX21lc3NhZ2VfZmlsdGVycyA9IFtdCi0K
LSAgICAgICAgc2VsZi5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0ZjggPSBUcnVlCi0gICAgICAg
IHNlbGYubWFza19zZW5kID0gRmFsc2UKLSAgICAgICAgc2VsZi51bm1hc2tfcmVjZWl2ZSA9IFRy
dWUKLQotCi1jbGFzcyBTdHJlYW0oU3RyZWFtQmFzZSk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgcGFy
c2luZy9idWlsZGluZyBmcmFtZXMgb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbAotICAgIChSRkMg
NjQ1NSkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgb3B0aW9u
cyk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgU3RyZWFtQmFzZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotCi0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYu
X29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWlu
YXRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBG
YWxzZQotCi0gICAgICAgICMgSG9sZHMgYm9keSBvZiByZWNlaXZlZCBmcmFnbWVudHMuCi0gICAg
ICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgICMgSG9sZHMgdGhlIG9w
Y29kZSBvZiB0aGUgZmlyc3QgZnJhZ21lbnQuCi0gICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29k
ZSA9IE5vbmUKLQotICAgICAgICBzZWxmLl93cml0ZXIgPSBGcmFnbWVudGVkRnJhbWVCdWlsZGVy
KAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsIHNlbGYuX29wdGlvbnMub3V0
Z29pbmdfZnJhbWVfZmlsdGVycywKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZW5jb2RlX3Rl
eHRfbWVzc2FnZV90b191dGY4KQotCi0gICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBkZXF1ZSgp
Ci0KLSAgICBkZWYgX3JlY2VpdmVfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVzIGEg
ZnJhbWUgYW5kIHJldHVybiBkYXRhIGluIHRoZSBmcmFtZSBhcyBhIHR1cGxlIGNvbnRhaW5pbmcK
LSAgICAgICAgZWFjaCBoZWFkZXIgZmllbGQgYW5kIHBheWxvYWQgc2VwYXJhdGVseS4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjog
d2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAgICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAg
ICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFs
aWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0
aCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZWNlaXZlX2J5dGVzKGxlbmd0aCkKLQotICAg
ICAgICByZXR1cm4gcGFyc2VfZnJhbWUocmVjZWl2ZV9ieXRlcz1fcmVjZWl2ZV9ieXRlcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlcj1zZWxmLl9sb2dnZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICB3c192ZXJzaW9uPXNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVubWFza19yZWNlaXZlPXNlbGYuX29wdGlvbnMudW5t
YXNrX3JlY2VpdmUpCi0KLSAgICBkZWYgX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KHNl
bGYpOgotICAgICAgICBvcGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIsIHJz
djMgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lKCkKLQotICAgICAgICByZXR1cm4gRnJhbWUoZmluPWZp
biwgcnN2MT1yc3YxLCByc3YyPXJzdjIsIHJzdjM9cnN2MywKLSAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9dW5tYXNrZWRfYnl0ZXMpCi0KLSAgICBkZWYgcmVjZWl2
ZV9maWx0ZXJlZF9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgYSBmcmFtZSBhbmQg
YXBwbGllcyBmcmFtZSBmaWx0ZXJzIGFuZCBtZXNzYWdlIGZpbHRlcnMuCi0gICAgICAgIFRoZSBm
cmFtZSB0byBiZSByZWNlaXZlZCBtdXN0IHNhdGlzZnkgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0g
ICAgICAgIC0gVGhlIGZyYW1lIGlzIG5vdCBmcmFnbWVudGVkLgotICAgICAgICAtIFRoZSBvcGNv
ZGUgb2YgdGhlIGZyYW1lIGlzIFRFWFQgb3IgQklOQVJZLgotCi0gICAgICAgIERPIE5PVCBVU0Ug
dGhpcyBtZXRob2QgZXhjZXB0IGZvciB0ZXN0aW5nIHB1cnBvc2UuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIGZyYW1lID0gc2VsZi5fcmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3QoKQotICAg
ICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdTZWdtZW50ZWQgZnJhbWVzIG11c3Qgbm90IGJlIHJl
Y2VpdmVkIHZpYSAnCi0gICAgICAgICAgICAgICAgJ3JlY2VpdmVfZmlsdGVyZWRfZnJhbWUoKScp
Ci0gICAgICAgIGlmIChmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9URVhUIGFuZAotICAg
ICAgICAgICAgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZKToKLSAgICAgICAg
ICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnQ29udHJv
bCBmcmFtZXMgbXVzdCBub3QgYmUgcmVjZWl2ZWQgdmlhICcKLSAgICAgICAgICAgICAgICAncmVj
ZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykKLQotICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNl
bGYuX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lX2Zp
bHRlci5maWx0ZXIoZnJhbWUpCi0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9v
cHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lLnBheWxv
YWQgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgcmV0dXJu
IGZyYW1lCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBi
aW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJTZW5kIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIG1lc3NhZ2U6IHRleHQgaW4gdW5pY29kZSBvciBiaW5hcnkgaW4gc3RyIHRv
IHNlbmQuCi0gICAgICAgICAgICBiaW5hcnk6IHNlbmQgbWVzc2FnZSBhcyBiaW5hcnkgZnJhbWUu
Ci0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3
aGVuIGNhbGxlZCBvbiBhIHNlcnZlci10ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVj
dGlvbiBvciBjYWxsZWQgd2l0aCBpbmNvbnNpc3RlbnQgbWVzc2FnZSB0eXBlIG9yCi0gICAgICAg
ICAgICAgICAgYmluYXJ5IHBhcmFtZXRlci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2Vs
Zi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBh
ZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBpZiBiaW5h
cnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBC
YWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ01lc3NhZ2UgZm9yIGJpbmFy
eSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0cicpCi0KLSAgICAgICAgZm9yIG1lc3NhZ2Vf
ZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAg
ICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihtZXNzYWdlLCBlbmQsIGJpbmFy
eSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFNldCB0aGlzIHRvIGFueSBwb3NpdGl2
ZSBpbnRlZ2VyIHRvIGxpbWl0IG1heGltdW0gc2l6ZSBvZiBkYXRhIGluCi0gICAgICAgICAgICAj
IHBheWxvYWQgZGF0YSBvZiBlYWNoIGZyYW1lLgotICAgICAgICAgICAgTUFYX1BBWUxPQURfREFU
QV9TSVpFID0gLTEKLQotICAgICAgICAgICAgaWYgTUFYX1BBWUxPQURfREFUQV9TSVpFIDw9IDA6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGUoc2VsZi5fd3JpdGVyLmJ1aWxkKG1lc3NhZ2Us
IGVuZCwgYmluYXJ5KSkKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgYnl0
ZXNfd3JpdHRlbiA9IDAKLSAgICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAg
ZW5kX2Zvcl90aGlzX2ZyYW1lID0gZW5kCi0gICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUg
PSBsZW4obWVzc2FnZSkgLSBieXRlc193cml0dGVuCi0gICAgICAgICAgICAgICAgaWYgKE1BWF9Q
QVlMT0FEX0RBVEFfU0laRSA+IDAgYW5kCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dy
aXRlID4gTUFYX1BBWUxPQURfREFUQV9TSVpFKToKLSAgICAgICAgICAgICAgICAgICAgZW5kX2Zv
cl90aGlzX2ZyYW1lID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUg
PSBNQVhfUEFZTE9BRF9EQVRBX1NJWkUKLQotICAgICAgICAgICAgICAgIGZyYW1lID0gc2VsZi5f
d3JpdGVyLmJ1aWxkKAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlW2J5dGVzX3dyaXR0ZW46
Ynl0ZXNfd3JpdHRlbiArIGJ5dGVzX3RvX3dyaXRlXSwKLSAgICAgICAgICAgICAgICAgICAgZW5k
X2Zvcl90aGlzX2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICBiaW5hcnkpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAgICAgICAgICAgICAgICBieXRlc193cml0dGVu
ICs9IGJ5dGVzX3RvX3dyaXRlCi0KLSAgICAgICAgICAgICAgICAjIFRoaXMgaWYgbXVzdCBiZSBw
bGFjZWQgaGVyZSAodGhlIGVuZCBvZiB3aGlsZSBibG9jaykgc28gdGhhdAotICAgICAgICAgICAg
ICAgICMgYXQgbGVhc3Qgb25lIGZyYW1lIGlzIHNlbnQuCi0gICAgICAgICAgICAgICAgaWYgbGVu
KG1lc3NhZ2UpIDw9IGJ5dGVzX3dyaXR0ZW46Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0g
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oZSkKLQotICAgIGRlZiBfZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxm
LCBmcmFtZSk6Ci0gICAgICAgICIiIkdldHMgYSBtZXNzYWdlIGZyb20gZnJhbWUuIElmIHRoZSBt
ZXNzYWdlIGlzIGNvbXBvc2VkIG9mIGZyYWdtZW50ZWQKLSAgICAgICAgZnJhbWVzIGFuZCB0aGUg
ZnJhbWUgaXMgbm90IHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUsIHRoaXMgbWV0aG9kCi0gICAg
ICAgIHJldHVybnMgTm9uZS4gVGhlIHdob2xlIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZCB3aGVu
IHRoZSBsYXN0Ci0gICAgICAgIGZyYWdtZW50ZWQgZnJhbWUgaXMgcGFzc2VkIHRvIHRoaXMgbWV0
aG9kLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlv
bjogd2hlbiB0aGUgZnJhbWUgZG9lc24ndCBtYXRjaCBkZWZyYWdtZW50YXRpb24KLSAgICAgICAg
ICAgICAgICBjb250ZXh0LCBvciB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgotICAg
ICAgICAiIiIKLQotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT046Ci0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgot
ICAgICAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
SW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVk
IGEgdGVybWluYXRpb24gZnJhbWUgYnV0IGZyYWdtZW50YXRpb24gJwotICAgICAgICAgICAgICAg
ICAgICAgICAgJ25vdCBzdGFydGVkJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnUmVjZWl2ZWQgYW4gaW50ZXJtZWRpYXRlIGZyYW1lIGJ1dCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAnZnJhZ21lbnRhdGlvbiBub3Qgc3RhcnRlZCcpCi0KLSAgICAgICAgICAg
IGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAjIEVuZCBvZiBmcmFnbWVudGF0aW9uIGZy
YW1lCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFt
ZS5wYXlsb2FkKQotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJy5qb2luKHNlbGYuX3JlY2Vp
dmVkX2ZyYWdtZW50cykKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMg
PSBbXQotICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fcmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZWNl
aXZlZF9mcmFnbWVudHM6Ci0gICAgICAgICAgICAgICAgaWYgZnJhbWUuZmluOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnUmVjZWl2ZWQgYW4gdW5mcmFnbWVudGVkIGZyYW1lIHdpdGhvdXQgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgJ3Rlcm1pbmF0aW5nIGV4aXN0aW5nIGZyYWdtZW50YXRpb24nKQot
ICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdOZXcgZnJhZ21lbnRhdGlv
biBzdGFydGVkIHdpdGhvdXQgdGVybWluYXRpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAg
J2V4aXN0aW5nIGZyYWdtZW50YXRpb24nKQotCi0gICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0g
ICAgICAgICAgICAgICAgIyBVbmZyYWdtZW50ZWQgZnJhbWUKLQotICAgICAgICAgICAgICAgIHNl
bGYuX29yaWdpbmFsX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICAgICAgICAgIHJldHVy
biBmcmFtZS5wYXlsb2FkCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgU3Rh
cnQgb2YgZnJhZ21lbnRhdGlvbiBmcmFtZQotCi0gICAgICAgICAgICAgICAgaWYgY29tbW9uLmlz
X2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdDb250cm9s
IGZyYW1lcyBtdXN0IG5vdCBiZSBmcmFnbWVudGVkJykKLQotICAgICAgICAgICAgICAgIHNlbGYu
X29yaWdpbmFsX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICAgICAgICAgIHNlbGYuX3Jl
Y2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgZGVmIF9wcm9jZXNzX2Nsb3NlX21lc3NhZ2Uoc2VsZiwgbWVzc2Fn
ZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBjbG9zZSBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICBtZXNzYWdlOiBjbG9zZSBtZXNzYWdlLgotCi0gICAgICAgIFJhaXNlczoK
LSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgbWVzc2FnZSBpcyBp
bnZhbGlkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJt
aW5hdGVkID0gVHJ1ZQotCi0gICAgICAgICMgU3RhdHVzIGNvZGUgaXMgb3B0aW9uYWwuIFdlIGNh
biBoYXZlIHN0YXR1cyByZWFzb24gb25seSBpZiB3ZQotICAgICAgICAjIGhhdmUgc3RhdHVzIGNv
ZGUuIFN0YXR1cyByZWFzb24gY2FuIGJlIGVtcHR5IHN0cmluZy4gU28sCi0gICAgICAgICMgYWxs
b3dlZCBjYXNlcyBhcmUKLSAgICAgICAgIyAtIG5vIGFwcGxpY2F0aW9uIGRhdGE6IG5vIGNvZGUg
bm8gcmVhc29uCi0gICAgICAgICMgLSAyIG9jdGV0IG9mIGFwcGxpY2F0aW9uIGRhdGE6IGhhcyBj
b2RlIGJ1dCBubyByZWFzb24KLSAgICAgICAgIyAtIDMgb3IgbW9yZSBvY3RldCBvZiBhcHBsaWNh
dGlvbiBkYXRhOiBib3RoIGNvZGUgYW5kIHJlYXNvbgotICAgICAgICBpZiBsZW4obWVzc2FnZSkg
PT0gMDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgY2xvc2UgZnJh
bWUgKGVtcHR5IGJvZHkpJykKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29k
ZSA9ICgKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCkK
LSAgICAgICAgZWxpZiBsZW4obWVzc2FnZSkgPT0gMToKLSAgICAgICAgICAgIHJhaXNlIEludmFs
aWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWYgYSBjbG9zZSBmcmFtZSBoYXMg
c3RhdHVzIGNvZGUsIHRoZSBsZW5ndGggb2YgJwotICAgICAgICAgICAgICAgICdzdGF0dXMgY29k
ZSBtdXN0IGJlIDIgb2N0ZXQnKQotICAgICAgICBlbGlmIGxlbihtZXNzYWdlKSA+PSAyOgotICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlID0gc3RydWN0LnVucGFjaygKLSAg
ICAgICAgICAgICAgICAnIUgnLCBtZXNzYWdlWzA6Ml0pWzBdCi0gICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9IG1lc3NhZ2VbMjpdLmRlY29kZSgKLSAgICAgICAgICAg
ICAgICAndXRmLTgnLCAncmVwbGFjZScpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsb3NlIGZyYW1lIChjb2RlPSVkLCByZWFzb249
JXIpJywKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24pCi0KLSAgICAgICAgIyBB
cyB3ZSd2ZSByZWNlaXZlZCBhIGNsb3NlIGZyYW1lLCBubyBtb3JlIGRhdGEgaXMgY29taW5nIG92
ZXIgdGhlCi0gICAgICAgICMgc29ja2V0LiBXZSBjYW4gbm93IHNhZmVseSBjbG9zZSB0aGUgc29j
a2V0IHdpdGhvdXQgd29ycnlpbmcgYWJvdXQKLSAgICAgICAgIyBSU1Qgc2VuZGluZy4KLQotICAg
ICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhY2sgZm9yIHNlcnZl
ci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1JlY2VpdmVkIGNsaWVudC1p
bml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGNvZGUgPSBjb21tb24uU1RB
VFVTX05PUk1BTF9DTE9TVVJFCi0gICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fcmVxdWVzdCwgJ19kaXNwYXRjaGVyJyk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVy
ID0gc2VsZi5fcmVxdWVzdC5fZGlzcGF0Y2hlcgotICAgICAgICAgICAgY29kZSwgcmVhc29uID0g
ZGlzcGF0Y2hlci5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKAotICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3QpCi0gICAgICAgICAgICBpZiBjb2RlIGlzIE5vbmUgYW5kIHJlYXNvbiBpcyBu
b3QgTm9uZSBhbmQgbGVuKHJlYXNvbikgPiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci53YXJuaW5nKAotICAgICAgICAgICAgICAgICAgICAnSGFuZGxlciBzcGVjaWZpZWQgcmVhc29u
IGRlc3BpdGUgY29kZSBiZWluZyBOb25lJykKLSAgICAgICAgICAgICAgICByZWFzb24gPSAnJwot
ICAgICAgICAgICAgaWYgcmVhc29uIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmVhc29uID0g
JycKLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY2tub3dsZWRnZWQgY2xv
c2luZyBoYW5kc2hha2UgaW5pdGlhdGVkIGJ5IHRoZSBwZWVyICcKLSAgICAgICAgICAgICcoY29k
ZT0lciwgcmVhc29uPSVyKScsIGNvZGUsIHJlYXNvbikKLQotICAgIGRlZiBfcHJvY2Vzc19waW5n
X21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlByb2Nlc3NlcyBwaW5nIG1lc3Nh
Z2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHBpbmcgbWVzc2FnZS4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYu
X3JlcXVlc3Qub25fcGluZ19oYW5kbGVyCi0gICAgICAgICAgICBpZiBoYW5kbGVyOgotICAgICAg
ICAgICAgICAgIGhhbmRsZXIoc2VsZi5fcmVxdWVzdCwgbWVzc2FnZSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yIGFzIGU6Ci0gICAgICAgICAg
ICBwYXNzCi0gICAgICAgIHNlbGYuX3NlbmRfcG9uZyhtZXNzYWdlKQotCi0gICAgZGVmIF9wcm9j
ZXNzX3BvbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiUHJvY2Vzc2VzIHBv
bmcgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogcG9uZyBt
ZXNzYWdlLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgcGlu
ZyB0aW1lb3V0IGhhbmRsaW5nLgotCi0gICAgICAgIGluZmxpZ2h0X3BpbmdzID0gZGVxdWUoKQot
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfYm9keSA9IHNlbGYuX3BpbmdfcXVldWUucG9wbGVmdCgpCi0gICAgICAgICAgICAg
ICAgaWYgZXhwZWN0ZWRfYm9keSA9PSBtZXNzYWdlOgotICAgICAgICAgICAgICAgICAgICAjIGlu
ZmxpZ2h0X3BpbmdzIGNvbnRhaW5zIHBpbmdzIGlnbm9yZWQgYnkgdGhlCi0gICAgICAgICAgICAg
ICAgICAgICMgb3RoZXIgcGVlci4gSnVzdCBmb3JnZXQgdGhlbS4KLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1BpbmcgJXIg
aXMgYWNrZWQgKCVkIHBpbmdzIHdlcmUgaWdub3JlZCknLAotICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfYm9keSwgbGVuKGluZmxpZ2h0X3BpbmdzKSkKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpbmZs
aWdodF9waW5ncy5hcHBlbmQoZXhwZWN0ZWRfYm9keSkKLSAgICAgICAgICAgIGV4Y2VwdCBJbmRl
eEVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcmVjZWl2ZWQgcG9uZyB3YXMgdW5z
b2xpY2l0ZWQgcG9uZy4gS2VlcCB0aGUKLSAgICAgICAgICAgICAgICAjIHBpbmcgcXVldWUgYXMg
aXMuCi0gICAgICAgICAgICAgICAgc2VsZi5fcGluZ19xdWV1ZSA9IGluZmxpZ2h0X3BpbmdzCi0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhIHVuc29saWNpdGVk
IHBvbmcnKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgaGFuZGxlciA9IHNlbGYuX3JlcXVlc3Qub25fcG9uZ19oYW5kbGVyCi0gICAgICAgICAgICBp
ZiBoYW5kbGVyOgotICAgICAgICAgICAgICAgIGhhbmRsZXIoc2VsZi5fcmVxdWVzdCwgbWVzc2Fn
ZSkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlIGEg
V2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBheWxvYWQgYXMgYSB0ZXh0IGluCi0gICAg
ICAgIHVuaWNvZGUgb3IgYSBiaW5hcnkgaW4gc3RyLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAg
ICAgICAgICBwYXlsb2FkIGRhdGEgb2YgdGhlIGZyYW1lCi0gICAgICAgICAgICAtIGFzIHVuaWNv
ZGUgaW5zdGFuY2UgaWYgcmVjZWl2ZWQgdGV4dCBmcmFtZQotICAgICAgICAgICAgLSBhcyBzdHIg
aW5zdGFuY2UgaWYgcmVjZWl2ZWQgYmluYXJ5IGZyYW1lCi0gICAgICAgICAgICBvciBOb25lIGlm
ZiByZWNlaXZlZCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAg
ICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIGNsaWVudC10ZXJtaW5h
dGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAgICAgICAgICAg
ICAgIHN0cmluZy4KLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUg
ZnJhbWUgY29udGFpbnMgaW52YWxpZAotICAgICAgICAgICAgICAgIGRhdGEuCi0gICAgICAgICAg
ICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSByZWNlaXZlZCBmcmFtZSBoYXMK
LSAgICAgICAgICAgICAgICBmbGFncywgb3Bjb2RlIHdlIGNhbm5vdCBoYW5kbGUuIFlvdSBjYW4g
aWdub3JlIHRoaXMKLSAgICAgICAgICAgICAgICBleGNlcHRpb24gYW5kIGNvbnRpbnVlIHJlY2Vp
dmluZyB0aGUgbmV4dCBmcmFtZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC5jbGllbnRfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHJlY2VpdmVfbWVzc2FnZSBhZnRl
ciByZWNlaXZpbmcgYSBjbG9zaW5nICcKLSAgICAgICAgICAgICAgICAnaGFuZHNoYWtlJykKLQot
ICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2lsbCBibG9j
ayBpZiBubyBieXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgIyBUaW1lb3V0IGlzIGNv
bnRyb2xsZWQgYnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBhY2hlLgotCi0gICAgICAgICAgICBm
cmFtZSA9IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkKLQotICAgICAgICAg
ICAgIyBDaGVjayB0aGUgY29uc3RyYWludCBvbiB0aGUgcGF5bG9hZCBzaXplIGZvciBjb250cm9s
IGZyYW1lcwotICAgICAgICAgICAgIyBiZWZvcmUgZXh0ZW5zaW9uIHByb2Nlc3NlcyB0aGUgZnJh
bWUuCi0gICAgICAgICAgICAjIFNlZSBhbHNvIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3Jm
YzY0NTUjc2VjdGlvbi01LjUKLSAgICAgICAgICAgIGlmIChjb21tb24uaXNfY29udHJvbF9vcGNv
ZGUoZnJhbWUub3Bjb2RlKSBhbmQKLSAgICAgICAgICAgICAgICBsZW4oZnJhbWUucGF5bG9hZCkg
PiAxMjUpOgotICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgJ1BheWxvYWQgZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11
c3QgYmUgMTI1IGJ5dGVzIG9yICcKLSAgICAgICAgICAgICAgICAgICAgJ2xlc3MnKQotCi0gICAg
ICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfZnJhbWVf
ZmlsdGVyczoKLSAgICAgICAgICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0g
ICAgICAgICAgICBpZiBmcmFtZS5yc3YxIG9yIGZyYW1lLnJzdjIgb3IgZnJhbWUucnN2MzoKLSAg
ICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICAgICAnVW5zdXBwb3J0ZWQgZmxhZyBpcyBzZXQgKHJzdiA9ICVkJWQlZCknICUKLSAg
ICAgICAgICAgICAgICAgICAgKGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMpKQot
Ci0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShmcmFt
ZSkKLSAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBjb250
aW51ZQotCi0gICAgICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5p
bmNvbWluZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3Nh
Z2VfZmlsdGVyLmZpbHRlcihtZXNzYWdlKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9vcmlnaW5h
bF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9URVhUOgotICAgICAgICAgICAgICAgICMgVGhlIFdl
YlNvY2tldCBwcm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZpZXMgdGhhdCBpbnZhbGlkCi0gICAg
ICAgICAgICAgICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBVK2ZmZmQgUkVQ
TEFDRU1FTlQKLSAgICAgICAgICAgICAgICAjIENIQVJBQ1RFUi4KLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlLmRlY29kZSgndXRmLTgnKQot
ICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3IgYXMgZToKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24oZSkKLSAgICAgICAgICAgIGVs
aWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZOgotICAgICAg
ICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFs
X29wY29kZSA9PSBjb21tb24uT1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgICAgIHNlbGYuX3By
b2Nlc3NfY2xvc2VfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RF
X1BJTkc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19waW5nX21lc3NhZ2UobWVzc2Fn
ZSkKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENP
REVfUE9ORzoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3BvbmdfbWVzc2FnZShtZXNz
YWdlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRl
ZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnT3Bjb2RlICVkIGlzIG5vdCBz
dXBwb3J0ZWQnICUgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlKQotCi0gICAgZGVmIF9zZW5kX2Nsb3Np
bmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIGJvZHkgPSBjcmVhdGVf
Y2xvc2luZ19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pCi0gICAgICAgIGZyYW1lID0gY3Jl
YXRlX2Nsb3NlX2ZyYW1lKAotICAgICAgICAgICAgYm9keSwgbWFzaz1zZWxmLl9vcHRpb25zLm1h
c2tfc2VuZCwKLSAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnM9c2VsZi5fb3B0aW9ucy5vdXRnb2lu
Z19mcmFtZV9maWx0ZXJzKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0
ZWQgPSBUcnVlCi0KLSAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAgICBkZWYgY2xvc2Vf
Y29ubmVjdGlvbihzZWxmLCBjb2RlPWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNv
bj0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3Jlc3BvbnNlPVRydWUpOgotICAg
ICAgICAiIiJDbG9zZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4gTm90ZSB0aGF0IHRoaXMgbWV0
aG9kIGJsb2NrcyB1bnRpbAotICAgICAgICBpdCByZWNlaXZlcyBhY2tub3dsZWRnZW1lbnQgdG8g
dGhlIGNsb3NpbmcgaGFuZHNoYWtlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjb2Rl
OiBTdGF0dXMgY29kZSBmb3IgY2xvc2UgZnJhbWUuIElmIGNvZGUgaXMgTm9uZSwgYSBjbG9zZQot
ICAgICAgICAgICAgICAgIGZyYW1lIHdpdGggZW1wdHkgYm9keSB3aWxsIGJlIHNlbnQuCi0gICAg
ICAgICAgICByZWFzb246IHN0cmluZyByZXByZXNlbnRpbmcgY2xvc2UgcmVhc29uLgotICAgICAg
ICAgICAgd2FpdF9yZXNwb25zZTogVHJ1ZSB3aGVuIGNhbGxlciB3YW50IHRvIHdhaXQgdGhlIHJl
c3BvbnNlLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRp
b246IHdoZW4gcmVhc29uIGlzIHNwZWNpZmllZCB3aXRoIGNvZGUgTm9uZQotICAgICAgICAgICAg
b3IgcmVhc29uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBib3RoIHN0ciBhbmQgdW5pY29kZS4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVxdWVz
dGVkIGNsb3NlX2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBXaGVuIHdlIHJlY2VpdmUgYSBjbG9zZSBm
cmFtZSwgd2UgY2FsbCBfcHJvY2Vzc19jbG9zZV9tZXNzYWdlKCkuCi0gICAgICAgICMgX3Byb2Nl
c3NfY2xvc2VfbWVzc2FnZSgpIGltbWVkaWF0ZWx5IGFja25vd2xlZGdlcyB0byB0aGUKLSAgICAg
ICAgIyBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlIGFuZCBzZXRzIHNlcnZlcl90
ZXJtaW5hdGVkIHRvCi0gICAgICAgICMgVHJ1ZS4gU28sIGhlcmUgd2UgY2FuIGFzc3VtZSB0aGF0
IHdlIGhhdmVuJ3QgcmVjZWl2ZWQgYW55IGNsb3NlCi0gICAgICAgICMgZnJhbWUuIFdlJ3JlIGlu
aXRpYXRpbmcgYSBjbG9zaW5nIGhhbmRzaGFrZS4KLQotICAgICAgICBpZiBjb2RlIGlzIE5vbmU6
Ci0gICAgICAgICAgICBpZiByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoK
LSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICdjbG9zZSByZWFzb24gbXVzdCBub3QgYmUgc3BlY2lmaWVkIGlmIGNvZGUgaXMg
Tm9uZScpCi0gICAgICAgICAgICByZWFzb24gPSAnJwotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UocmVhc29uLCBzdHIpIGFuZCBub3QgaXNpbnN0YW5jZShyZWFz
b24sIHVuaWNvZGUpOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJlYXNvbiBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIHN0ciBvciB1bmljb2RlJykKLQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNo
YWtlKGNvZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJ0luaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSAoY29kZT0lciwgcmVhc29uPSVyKScsCi0g
ICAgICAgICAgICBjb2RlLCByZWFzb24pCi0KLSAgICAgICAgaWYgKGNvZGUgPT0gY29tbW9uLlNU
QVRVU19HT0lOR19BV0FZIG9yCi0gICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfUFJP
VE9DT0xfRVJST1IpIG9yIG5vdCB3YWl0X3Jlc3BvbnNlOgotICAgICAgICAgICAgIyBJdCBkb2Vz
bid0IG1ha2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSBpZiB0aGUgcmVhc29uIGlz
Ci0gICAgICAgICAgICAjIHByb3RvY29sIGVycm9yIG9yIHRoYXQgdGhlIHNlcnZlciBpcyBnb2lu
ZyBhd2F5LiBGb3Igc29tZSBvZgotICAgICAgICAgICAgIyBvdGhlciByZWFzb25zLCBpdCBtaWdo
dCBub3QgbWFrZSBzZW5zZSB0byB3YWl0IGZvciBhIGNsb3NlIGZyYW1lLAotICAgICAgICAgICAg
IyBidXQgaXQncyBub3QgY2xlYXIsIHlldC4KLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICMgVE9ETyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFn
IGhhcyBiZWVuIHNldCwKLSAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVv
dXQgZXhwaXJlcy4KLSAgICAgICAgIwotICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNl
aXZpbmcgY2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZwotICAgICAgICAjIG91
dCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNz
YWdlKCkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNl
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEaWRuXCd0
IHJlY2VpdmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICMgVE9E
TzogMy4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICAjIG5vdGU6IG1v
ZF9weXRob24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhvZC4K
LQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0nJyk6Ci0gICAgICAgIGZyYW1lID0gY3Jl
YXRlX3BpbmdfZnJhbWUoCi0gICAgICAgICAgICBib2R5LAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5tYXNrX3NlbmQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1l
X2ZpbHRlcnMpCi0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgICAgIHNlbGYuX3Bp
bmdfcXVldWUuYXBwZW5kKGJvZHkpCi0KLSAgICBkZWYgX3NlbmRfcG9uZyhzZWxmLCBib2R5KToK
LSAgICAgICAgZnJhbWUgPSBjcmVhdGVfcG9uZ19mcmFtZSgKLSAgICAgICAgICAgIGJvZHksCi0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKLSAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLSAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUp
Ci0KLSAgICBkZWYgZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm5zIHRoZSBvcGNvZGUgb2YgdGhlIFdlYlNvY2tldCBtZXNzYWdlIHdoaWNoIHRoZSBsYXN0
IHJlY2VpdmVkCi0gICAgICAgIGZyYW1lIGJlbG9uZ3MgdG8uIFRoZSByZXR1cm4gdmFsdWUgaXMg
dmFsaWQgaWZmIGltbWVkaWF0ZWx5IGFmdGVyCi0gICAgICAgIHJlY2VpdmVfbWVzc2FnZSBjYWxs
LgotICAgICAgICAiIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fb3JpZ2luYWxfb3Bjb2RlCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9j
b21tb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlmNzNkNjY1NjBkNjQ0MTU1ZWUwZjVmMmE1NTA5ODg5ODcxMzBkOWIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvY29tbW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzA2ICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBtdXN0IG5vdCBkZXBlbmQgb24gYW55IG1v
ZHVsZSBzcGVjaWZpYyB0byB0aGUgV2ViU29ja2V0IHByb3RvY29sLgotIiIiCi0KLQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLQotCi0jIEFkZGl0aW9uYWwg
bG9nIGxldmVsIGRlZmluaXRpb25zLgotTE9HTEVWRUxfRklORSA9IDkKLQotIyBDb25zdGFudHMg
aW5kaWNhdGluZyBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbi4KLVZFUlNJT05fSElYSUU3NSA9
IC0xCi1WRVJTSU9OX0hZQkkwMCA9IDAKLVZFUlNJT05fSFlCSTAxID0gMQotVkVSU0lPTl9IWUJJ
MDIgPSAyCi1WRVJTSU9OX0hZQkkwMyA9IDIKLVZFUlNJT05fSFlCSTA0ID0gNAotVkVSU0lPTl9I
WUJJMDUgPSA1Ci1WRVJTSU9OX0hZQkkwNiA9IDYKLVZFUlNJT05fSFlCSTA3ID0gNwotVkVSU0lP
Tl9IWUJJMDggPSA4Ci1WRVJTSU9OX0hZQkkwOSA9IDgKLVZFUlNJT05fSFlCSTEwID0gOAotVkVS
U0lPTl9IWUJJMTEgPSA4Ci1WRVJTSU9OX0hZQkkxMiA9IDgKLVZFUlNJT05fSFlCSTEzID0gMTMK
LVZFUlNJT05fSFlCSTE0ID0gMTMKLVZFUlNJT05fSFlCSTE1ID0gMTMKLVZFUlNJT05fSFlCSTE2
ID0gMTMKLVZFUlNJT05fSFlCSTE3ID0gMTMKLQotIyBDb25zdGFudHMgaW5kaWNhdGluZyBXZWJT
b2NrZXQgcHJvdG9jb2wgbGF0ZXN0IHZlcnNpb24uCi1WRVJTSU9OX0hZQklfTEFURVNUID0gVkVS
U0lPTl9IWUJJMTMKLQotIyBQb3J0IG51bWJlcnMKLURFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUID0g
ODAKLURFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVCA9IDQ0MwotCi0jIFNjaGVtZXMKLVdF
Ql9TT0NLRVRfU0NIRU1FID0gJ3dzJwotV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FID0gJ3dzcycK
LQotIyBGcmFtZSBvcGNvZGVzIGRlZmluZWQgaW4gdGhlIHNwZWMuCi1PUENPREVfQ09OVElOVUFU
SU9OID0gMHgwCi1PUENPREVfVEVYVCA9IDB4MQotT1BDT0RFX0JJTkFSWSA9IDB4MgotT1BDT0RF
X0NMT1NFID0gMHg4Ci1PUENPREVfUElORyA9IDB4OQotT1BDT0RFX1BPTkcgPSAweGEKLQotIyBV
VUlEcyB1c2VkIGJ5IEh5QmkgMDQgYW5kIGxhdGVyIG9wZW5pbmcgaGFuZHNoYWtlIGFuZCBmcmFt
ZSBtYXNraW5nLgotV0VCU09DS0VUX0FDQ0VQVF9VVUlEID0gJzI1OEVBRkE1LUU5MTQtNDdEQS05
NUNBLUM1QUIwREM4NUIxMScKLQotIyBPcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXIgbmFtZXMgYW5k
IGV4cGVjdGVkIHZhbHVlcy4KLVVQR1JBREVfSEVBREVSID0gJ1VwZ3JhZGUnCi1XRUJTT0NLRVRf
VVBHUkFERV9UWVBFID0gJ3dlYnNvY2tldCcKLVdFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3
NSA9ICdXZWJTb2NrZXQnCi1DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uJwotVVBHUkFE
RV9DT05ORUNUSU9OX1RZUEUgPSAnVXBncmFkZScKLUhPU1RfSEVBREVSID0gJ0hvc3QnCi1PUklH
SU5fSEVBREVSID0gJ09yaWdpbicKLVNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiA9ICdTZWMt
V2ViU29ja2V0LU9yaWdpbicKLVNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiA9ICdTZWMtV2ViU29j
a2V0LUtleScKLVNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUFj
Y2VwdCcKLVNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1WZXJz
aW9uJwotU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1Qcm90
b2NvbCcKLVNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1F
eHRlbnNpb25zJwotU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1E
cmFmdCcKLVNFQ19XRUJTT0NLRVRfS0VZMV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXkxJwot
U0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTInCi1TRUNfV0VC
U09DS0VUX0xPQ0FUSU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uJwotCi0jIEV4
dGVuc2lvbnMKLURFRkxBVEVfRlJBTUVfRVhURU5TSU9OID0gJ2RlZmxhdGUtZnJhbWUnCi1QRVJN
RVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKLVhfV0VCS0lU
X0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OID0gJ3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnCi1NVVhf
RVhURU5TSU9OID0gJ211eF9ET19OT1RfVVNFJwotCi0jIFN0YXR1cyBjb2RlcwotIyBDb2RlIFNU
QVRVU19OT19TVEFUVVNfUkVDRUlWRUQsIFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFLCBhbmQKLSMg
U1RBVFVTX1RMU19IQU5EU0hBS0UgYXJlIHBzZXVkbyBjb2RlcyB0byBpbmRpY2F0ZSBzcGVjaWZp
YyBlcnJvciBjYXNlcy4KLSMgQ291bGQgbm90IGJlIHVzZWQgZm9yIGNvZGVzIGluIGFjdHVhbCBj
bG9zaW5nIGZyYW1lcy4KLSMgQXBwbGljYXRpb24gbGV2ZWwgZXJyb3JzIG11c3QgdXNlIGNvZGVz
IGluIHRoZSByYW5nZQotIyBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgdG8gU1RBVFVTX1VT
RVJfUFJJVkFURV9NQVguIFRoZSBjb2RlcyBpbiB0aGUKLSMgcmFuZ2UgU1RBVFVTX1VTRVJfUkVH
SVNURVJFRF9CQVNFIHRvIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfTUFYIGFyZSBtYW5hZ2VkCi0j
IGJ5IElBTkEuIFVzdWFsbHkgYXBwbGljYXRpb24gbXVzdCBkZWZpbmUgdXNlciBwcm90b2NvbCBs
ZXZlbCBlcnJvcnMgaW4gdGhlCi0jIHJhbmdlIFNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSB0byBT
VEFUVVNfVVNFUl9QUklWQVRFX01BWC4KLVNUQVRVU19OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLVNU
QVRVU19HT0lOR19BV0FZID0gMTAwMQotU1RBVFVTX1BST1RPQ09MX0VSUk9SID0gMTAwMgotU1RB
VFVTX1VOU1VQUE9SVEVEX0RBVEEgPSAxMDAzCi1TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEID0g
MTAwNQotU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgPSAxMDA2Ci1TVEFUVVNfSU5WQUxJRF9GUkFN
RV9QQVlMT0FEX0RBVEEgPSAxMDA3Ci1TVEFUVVNfUE9MSUNZX1ZJT0xBVElPTiA9IDEwMDgKLVNU
QVRVU19NRVNTQUdFX1RPT19CSUcgPSAxMDA5Ci1TVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lPTiA9
IDEwMTAKLVNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiA9IDEwMTEKLVNUQVRVU19UTFNf
SEFORFNIQUtFID0gMTAxNQotU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNFID0gMzAwMAotU1RB
VFVTX1VTRVJfUkVHSVNURVJFRF9NQVggPSAzOTk5Ci1TVEFUVVNfVVNFUl9QUklWQVRFX0JBU0Ug
PSA0MDAwCi1TVEFUVVNfVVNFUl9QUklWQVRFX01BWCA9IDQ5OTkKLSMgRm9sbG93aW5nIGRlZmlu
aXRpb25zIGFyZSBhbGlhc2VzIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4gQXBwbGljYXRpb25zIG11
c3QKLSMgbm90IHVzZSB0aGVzZSBvYnNvbGV0ZWQgZGVmaW5pdGlvbnMgYW55bW9yZS4KLVNUQVRV
U19OT1JNQUwgPSBTVEFUVVNfTk9STUFMX0NMT1NVUkUKLVNUQVRVU19VTlNVUFBPUlRFRCA9IFNU
QVRVU19VTlNVUFBPUlRFRF9EQVRBCi1TVEFUVVNfQ09ERV9OT1RfQVZBSUxBQkxFID0gU1RBVFVT
X05PX1NUQVRVU19SRUNFSVZFRAotU1RBVFVTX0FCTk9STUFMX0NMT1NFID0gU1RBVFVTX0FCTk9S
TUFMX0NMT1NVUkUKLVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQUQgPSBTVEFUVVNfSU5WQUxJ
RF9GUkFNRV9QQVlMT0FEX0RBVEEKLVNUQVRVU19NQU5EQVRPUllfRVhUID0gU1RBVFVTX01BTkRB
VE9SWV9FWFRFTlNJT04KLQotIyBIVFRQIHN0YXR1cyBjb2RlcwotSFRUUF9TVEFUVVNfQkFEX1JF
UVVFU1QgPSA0MDAKLUhUVFBfU1RBVFVTX0ZPUkJJRERFTiA9IDQwMwotSFRUUF9TVEFUVVNfTk9U
X0ZPVU5EID0gNDA0Ci0KLQotZGVmIGlzX2NvbnRyb2xfb3Bjb2RlKG9wY29kZSk6Ci0gICAgcmV0
dXJuIChvcGNvZGUgPj4gMykgPT0gMQotCi0KLWNsYXNzIEV4dGVuc2lvblBhcmFtZXRlcihvYmpl
Y3QpOgotCi0gICAgIiIiVGhpcyBpcyBleGNoYW5nZWQgb24gZXh0ZW5zaW9uIG5lZ290aWF0aW9u
IGluIG9wZW5pbmcgaGFuZHNoYWtlLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUp
OgotICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBD
aGFuZ2UgdGhlIGRhdGEgc3RydWN0dXJlIHRvIG1vcmUgZWZmaWNpZW50IG9uZSBzdWNoCi0gICAg
ICAgICMgYXMgZGljdCB3aGVuIHRoZSBzcGVjIGNoYW5nZXMgdG8gc2F5IGxpa2UKLSAgICAgICAg
IyAtIFBhcmFtZXRlciBuYW1lcyBtdXN0IGJlIHVuaXF1ZQotICAgICAgICAjIC0gVGhlIG9yZGVy
IG9mIHBhcmFtZXRlcnMgaXMgbm90IHNpZ25pZmljYW50Ci0gICAgICAgIHNlbGYuX3BhcmFtZXRl
cnMgPSBbXQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgZXh0
ZW5zaW9uIG5hbWUuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9uYW1lCi0KLSAgICBkZWYgYWRk
X3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgICIiIkFkZCBhIHBhcmFtZXRl
ci4iIiIKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVycy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkKLQot
ICAgIGRlZiBnZXRfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBwYXJh
bWV0ZXJzLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcGFyYW1ldGVycwotCi0gICAgZGVmIGdl
dF9wYXJhbWV0ZXJfbmFtZXMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgbmFtZXMgb2Yg
dGhlIHBhcmFtZXRlcnMuIiIiCi0gICAgICAgIHJldHVybiBbbmFtZSBmb3IgbmFtZSwgdW51c2Vk
X3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnNdCi0KLSAgICBkZWYgaGFzX3BhcmFtZXRlcihzZWxm
LCBuYW1lKToKLSAgICAgICAgIiIiVGVzdCBpZiBhIHBhcmFtZXRlciBleGlzdHMuIiIiCi0gICAg
ICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBzZWxmLl9wYXJhbWV0ZXJzOgotICAg
ICAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGdldF9wYXJhbWV0ZXJfdmFsdWUo
c2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIkdldCB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBwYXJh
bWV0ZXIuIiIiCi0gICAgICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBzZWxmLl9w
YXJhbWV0ZXJzOgotICAgICAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBuYW1lOgotICAgICAgICAg
ICAgICAgIHJldHVybiBwYXJhbV92YWx1ZQotCi0KLWNsYXNzIEV4dGVuc2lvblBhcnNpbmdFeGNl
cHRpb24oRXhjZXB0aW9uKToKLQotICAgICIiIkV4Y2VwdGlvbiB0byBoYW5kbGUgZXJyb3JzIGlu
IGV4dGVuc2lvbiBwYXJzaW5nLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgot
ICAgICAgICBzdXBlcihFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhu
YW1lKQotCi0KLWRlZiBfcGFyc2VfZXh0ZW5zaW9uX3BhcmFtKHN0YXRlLCBkZWZpbml0aW9uKToK
LSAgICBwYXJhbV9uYW1lID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQot
Ci0gICAgaWYgcGFyYW1fbmFtZSBpcyBOb25lOgotICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJz
aW5nRXhjZXB0aW9uKCdObyB2YWxpZCBwYXJhbWV0ZXIgbmFtZSBmb3VuZCcpCi0KLSAgICBodHRw
X2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICBpZiBub3QgaHR0cF9oZWFk
ZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJz0nKToKLSAgICAgICAgZGVmaW5pdGlvbi5h
ZGRfcGFyYW1ldGVyKHBhcmFtX25hbWUsIE5vbmUpCi0gICAgICAgIHJldHVybgotCi0gICAgaHR0
cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgIyBUT0RPKHR5b3NoaW5v
KTogQWRkIGNvZGUgdG8gdmFsaWRhdGUgdGhhdCBwYXJzZWQgcGFyYW1fdmFsdWUgaXMgdG9rZW4K
LSAgICBwYXJhbV92YWx1ZSA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbl9vcl9xdW90
ZWRfc3RyaW5nKHN0YXRlKQotICAgIGlmIHBhcmFtX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgIHJh
aXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAgICAgICAgICAnTm8gdmFsaWQgcGFy
YW1ldGVyIHZhbHVlIGZvdW5kIG9uIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgJwotICAgICAgICAg
ICAgJ3BhcmFtZXRlciAlcicgJSBwYXJhbV9uYW1lKQotCi0gICAgZGVmaW5pdGlvbi5hZGRfcGFy
YW1ldGVyKHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlKQotCi0KLWRlZiBfcGFyc2VfZXh0ZW5zaW9u
KHN0YXRlKToKLSAgICBleHRlbnNpb25fdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVf
dG9rZW4oc3RhdGUpCi0gICAgaWYgZXh0ZW5zaW9uX3Rva2VuIGlzIE5vbmU6Ci0gICAgICAgIHJl
dHVybiBOb25lCi0KLSAgICBleHRlbnNpb24gPSBFeHRlbnNpb25QYXJhbWV0ZXIoZXh0ZW5zaW9u
X3Rva2VuKQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25z
dW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1
bWVfc3RyaW5nKHN0YXRlLCAnOycpOgotICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBodHRw
X2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgX3BhcnNlX2V4dGVuc2lvbl9wYXJhbShzdGF0ZSwgZXh0ZW5zaW9uKQotICAgICAgICBl
eGNlcHQgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcmFpc2Ug
RXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBh
cnNlIHBhcmFtZXRlciBmb3IgJXIgKCVyKScgJQotICAgICAgICAgICAgICAgIChleHRlbnNpb25f
dG9rZW4sIGUpKQotCi0gICAgcmV0dXJuIGV4dGVuc2lvbgotCi0KLWRlZiBwYXJzZV9leHRlbnNp
b25zKGRhdGEpOgotICAgICIiIlBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIg
dmFsdWUuCi0KLSAgICBSZXR1cm5zIGEgbGlzdCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0
cy4KLSAgICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KLSAgICAiIiIKLSAgICBzdGF0
ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCi0KLSAgICBleHRlbnNpb25f
bGlzdCA9IFtdCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgZXh0ZW5zaW9uID0gX3BhcnNlX2V4
dGVuc2lvbihzdGF0ZSkKLSAgICAgICAgaWYgZXh0ZW5zaW9uIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgZXh0ZW5zaW9uX2xpc3QuYXBwZW5kKGV4dGVuc2lvbikKLQotICAgICAgICBodHRwX2hl
YWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAgICAgaWYgaHR0cF9oZWFkZXJf
dXRpbC5wZWVrKHN0YXRlKSBpcyBOb25lOgotICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBp
ZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJywnKToKLSAgICAg
ICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0ZhaWxlZCB0byBwYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAnCi0gICAg
ICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlCi0gICAgICAgICAg
ICAgICAgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSkKLQotICAgICAgICBodHRwX2hlYWRl
cl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICBpZiBsZW4oZXh0ZW5zaW9uX2xpc3Qp
ID09IDA6Ci0gICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAgICAg
ICAgICAnTm8gdmFsaWQgZXh0ZW5zaW9uIGVudHJ5IGZvdW5kJykKLQotICAgIHJldHVybiBleHRl
bnNpb25fbGlzdAotCi0KLWRlZiBmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbik6Ci0gICAgIiIi
Rm9ybWF0IGFuIEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3QuIiIiCi0gICAgZm9ybWF0dGVkX3Bh
cmFtcyA9IFtleHRlbnNpb24ubmFtZSgpXQotICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1
ZSBpbiBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcnMoKToKLSAgICAgICAgaWYgcGFyYW1fdmFsdWUg
aXMgTm9uZToKLSAgICAgICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBwZW5kKHBhcmFtX25hbWUp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBxdW90ZWRfdmFsdWUgPSBodHRwX2hlYWRlcl91
dGlsLnF1b3RlX2lmX25lY2Vzc2FyeShwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgIGZvcm1hdHRl
ZF9wYXJhbXMuYXBwZW5kKCclcz0lcycgJSAocGFyYW1fbmFtZSwgcXVvdGVkX3ZhbHVlKSkKLSAg
ICByZXR1cm4gJzsgJy5qb2luKGZvcm1hdHRlZF9wYXJhbXMpCi0KLQotZGVmIGZvcm1hdF9leHRl
bnNpb25zKGV4dGVuc2lvbl9saXN0KToKLSAgICAiIiJGb3JtYXQgYSBsaXN0IG9mIEV4dGVuc2lv
blBhcmFtZXRlciBvYmplY3RzLiIiIgotICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdCA9IFtd
Ci0gICAgZm9yIGV4dGVuc2lvbiBpbiBleHRlbnNpb25fbGlzdDoKLSAgICAgICAgZm9ybWF0dGVk
X2V4dGVuc2lvbl9saXN0LmFwcGVuZChmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbikpCi0gICAg
cmV0dXJuICcsICcuam9pbihmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNTkxZmU4YjllOWVhZjJlOGViNGQ2ZDhiY2ZjYmE3MmUwMzBiYjQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2Rpc3BhdGNoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzkzICswLDAgQEAKLSMgQ29weXJp
Z2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIkRpc3BhdGNoIFdlYlNvY2tldCByZXF1ZXN0LgotIiIiCi0KLQotaW1w
b3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJlCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgbXV4Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLV9TT1VSQ0VfUEFUSF9QQVRURVJOID0gcmUuY29t
cGlsZShyJyg/aSlfd3NoXC5weSQnKQotX1NPVVJDRV9TVUZGSVggPSAnX3dzaC5weScKLV9ET19F
WFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FID0gJ3dlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlJwotX1RSQU5TRkVSX0RBVEFfSEFORExFUl9OQU1FID0gJ3dlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YScKLV9QQVNTSVZFX0NMT1NJTkdfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSA9ICgKLSAgICAn
d2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlJykKLQotCi1jbGFzcyBEaXNwYXRj
aEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIkV4Y2VwdGlvbiBpbiBkaXNwYXRjaGluZyBX
ZWJTb2NrZXQgcmVxdWVzdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0
dXM9Y29tbW9uLkhUVFBfU1RBVFVTX05PVF9GT1VORCk6Ci0gICAgICAgIHN1cGVyKERpc3BhdGNo
RXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBzZWxmLnN0YXR1cyA9IHN0
YXR1cwotCi0KLWRlZiBfZGVmYXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIo
cmVxdWVzdCk6Ci0gICAgIiIiRGVmYXVsdCB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5k
c2hha2UgaGFuZGxlci4iIiIKLQotICAgIHJldHVybiBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9T
VVJFLCAnJwotCi0KLWRlZiBfbm9ybWFsaXplX3BhdGgocGF0aCk6Ci0gICAgIiIiTm9ybWFsaXpl
IHBhdGguCi0KLSAgICBBcmdzOgotICAgICAgICBwYXRoOiB0aGUgcGF0aCB0byBub3JtYWxpemUu
Ci0KLSAgICBQYXRoIGlzIGNvbnZlcnRlZCB0byB0aGUgYWJzb2x1dGUgcGF0aC4KLSAgICBUaGUg
aW5wdXQgcGF0aCBjYW4gdXNlIGVpdGhlciAnXFwnIG9yICcvJyBhcyB0aGUgc2VwYXJhdG9yLgot
ICAgIFRoZSBub3JtYWxpemVkIHBhdGggYWx3YXlzIHVzZXMgJy8nIHJlZ2FyZGxlc3Mgb2YgdGhl
IHBsYXRmb3JtLgotICAgICIiIgotCi0gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCBvcy5w
YXRoLnNlcCkKLSAgICBwYXRoID0gb3MucGF0aC5yZWFscGF0aChwYXRoKQotICAgIHBhdGggPSBw
YXRoLnJlcGxhY2UoJ1xcJywgJy8nKQotICAgIHJldHVybiBwYXRoCi0KLQotZGVmIF9jcmVhdGVf
cGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoYmFzZV9kaXIpOgotICAgICIiIlJldHVybnMgYSBm
dW5jdGlvbiB0aGF0IGNvbnZlcnRzIHRoZSBwYXRoIG9mIGEgV2ViU29ja2V0IGhhbmRsZXIgc291
cmNlCi0gICAgZmlsZSB0byBhIHJlc291cmNlIHN0cmluZyBieSByZW1vdmluZyB0aGUgcGF0aCB0
byB0aGUgYmFzZSBkaXJlY3RvcnkgZnJvbQotICAgIGl0cyBoZWFkLCByZW1vdmluZyBfU09VUkNF
X1NVRkZJWCBmcm9tIGl0cyB0YWlsLCBhbmQgcmVwbGFjaW5nIHBhdGgKLSAgICBzZXBhcmF0b3Jz
IGluIGl0IHdpdGggJy8nLgotCi0gICAgQXJnczoKLSAgICAgICAgYmFzZV9kaXI6IHRoZSBwYXRo
IHRvIHRoZSBiYXNlIGRpcmVjdG9yeS4KLSAgICAiIiIKLQotICAgIGJhc2VfZGlyID0gX25vcm1h
bGl6ZV9wYXRoKGJhc2VfZGlyKQotCi0gICAgYmFzZV9sZW4gPSBsZW4oYmFzZV9kaXIpCi0gICAg
c3VmZml4X2xlbiA9IGxlbihfU09VUkNFX1NVRkZJWCkKLQotICAgIGRlZiBjb252ZXJ0ZXIocGF0
aCk6Ci0gICAgICAgIGlmIG5vdCBwYXRoLmVuZHN3aXRoKF9TT1VSQ0VfU1VGRklYKToKLSAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICMgX25vcm1hbGl6ZV9wYXRoIG11c3Qgbm90IGJl
IHVzZWQgYmVjYXVzZSByZXNvbHZpbmcgc3ltbGluayBicmVha3MKLSAgICAgICAgIyBmb2xsb3dp
bmcgcGF0aCBjaGVjay4KLSAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAnLycpCi0g
ICAgICAgIGlmIG5vdCBwYXRoLnN0YXJ0c3dpdGgoYmFzZV9kaXIpOgotICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHBhdGhbYmFzZV9sZW46LXN1ZmZpeF9sZW5dCi0KLSAg
ICByZXR1cm4gY29udmVydGVyCi0KLQotZGVmIF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhz
KGRpcmVjdG9yeSk6Ci0gICAgIiIiUmV0dXJucyBhIGdlbmVyYXRvciB0aGF0IGVudW1lcmF0ZXMg
V2ViU29ja2V0IEhhbmRsZXIgc291cmNlIGZpbGUgbmFtZXMKLSAgICBpbiB0aGUgZ2l2ZW4gZGly
ZWN0b3J5LgotICAgICIiIgotCi0gICAgZm9yIHJvb3QsIHVudXNlZF9kaXJzLCBmaWxlcyBpbiBv
cy53YWxrKGRpcmVjdG9yeSk6Ci0gICAgICAgIGZvciBiYXNlIGluIGZpbGVzOgotICAgICAgICAg
ICAgcGF0aCA9IG9zLnBhdGguam9pbihyb290LCBiYXNlKQotICAgICAgICAgICAgaWYgX1NPVVJD
RV9QQVRIX1BBVFRFUk4uc2VhcmNoKHBhdGgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHBhdGgK
LQotCi1jbGFzcyBfSGFuZGxlclN1aXRlKG9iamVjdCk6Ci0gICAgIiIiQSBoYW5kbGVyIHN1aXRl
IGhvbGRlciBjbGFzcy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkb19leHRyYV9oYW5k
c2hha2UsIHRyYW5zZmVyX2RhdGEsCi0gICAgICAgICAgICAgICAgIHBhc3NpdmVfY2xvc2luZ19o
YW5kc2hha2UpOgotICAgICAgICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZSA9IGRvX2V4dHJhX2hh
bmRzaGFrZQotICAgICAgICBzZWxmLnRyYW5zZmVyX2RhdGEgPSB0cmFuc2Zlcl9kYXRhCi0gICAg
ICAgIHNlbGYucGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSA9IHBhc3NpdmVfY2xvc2luZ19oYW5k
c2hha2UKLQotCi1kZWYgX3NvdXJjZV9oYW5kbGVyX2ZpbGUoaGFuZGxlcl9kZWZpbml0aW9uKToK
LSAgICAiIiJTb3VyY2UgYSBoYW5kbGVyIGRlZmluaXRpb24gc3RyaW5nLgotCi0gICAgQXJnczoK
LSAgICAgICAgaGFuZGxlcl9kZWZpbml0aW9uOiBhIHN0cmluZyBjb250YWluaW5nIFB5dGhvbiBz
dGF0ZW1lbnRzIHRoYXQgZGVmaW5lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxl
ciBmdW5jdGlvbnMuCi0gICAgIiIiCi0KLSAgICBnbG9iYWxfZGljID0ge30KLSAgICB0cnk6Ci0g
ICAgICAgIGV4ZWMoaGFuZGxlcl9kZWZpbml0aW9uLCBnbG9iYWxfZGljKQotICAgIGV4Y2VwdCBF
eGNlcHRpb246Ci0gICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdFcnJvciBpbiBzb3Vy
Y2luZyBoYW5kbGVyOicgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmdl
dF9zdGFja190cmFjZSgpKQotICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9
IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxl
ciA9IF9leHRyYWN0X2hhbmRsZXIoCi0gICAgICAgICAgICBnbG9iYWxfZGljLCBfUEFTU0lWRV9D
TE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAg
ICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gKAotICAgICAgICAgICAg
X2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKQotICAgIHJldHVybiBf
SGFuZGxlclN1aXRlKAotICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9ET19F
WFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FKSwKLSAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihn
bG9iYWxfZGljLCBfVFJBTlNGRVJfREFUQV9IQU5ETEVSX05BTUUpLAotICAgICAgICBwYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIpCi0KLQotZGVmIF9leHRyYWN0X2hhbmRsZXIoZGlj
LCBuYW1lKToKLSAgICAiIiJFeHRyYWN0cyBhIGNhbGxhYmxlIHdpdGggdGhlIHNwZWNpZmllZCBu
YW1lIGZyb20gdGhlIGdpdmVuIGRpY3Rpb25hcnkKLSAgICBkaWMuCi0gICAgIiIiCi0KLSAgICBp
ZiBuYW1lIG5vdCBpbiBkaWM6Ci0gICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBp
cyBub3QgZGVmaW5lZC4nICUgbmFtZSkKLSAgICBoYW5kbGVyID0gZGljW25hbWVdCi0gICAgaWYg
bm90IGNhbGxhYmxlKGhhbmRsZXIpOgotICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbign
JXMgaXMgbm90IGNhbGxhYmxlLicgJSBuYW1lKQotICAgIHJldHVybiBoYW5kbGVyCi0KLQotY2xh
c3MgRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkRpc3BhdGNoZXMgV2ViU29ja2V0IHJlcXVl
c3RzLgotCi0gICAgVGhpcyBjbGFzcyBtYWludGFpbnMgYSBtYXAgZnJvbSByZXNvdXJjZSBuYW1l
IHRvIGhhbmRsZXJzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxm
LCByb290X2Rpciwgc2Nhbl9kaXI9Tm9uZSwKLSAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lk
ZV9yb290X2Rpcj1UcnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByb290X2RpcjogVGhlIGRpcmVjdG9yeSB3aGVyZSBo
YW5kbGVyIGRlZmluaXRpb24gZmlsZXMgYXJlCi0gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vk
LgotICAgICAgICAgICAgc2Nhbl9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZp
bml0aW9uIGZpbGVzIGFyZQotICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaGVkLiBzY2FuX2Rp
ciBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIHJvb3RfZGlyLAotICAgICAgICAgICAgICAgICAg
ICAgIGluY2x1ZGluZyByb290X2RpciBpdHNlbGYuICBJZiBzY2FuX2RpciBpcyBOb25lLAotICAg
ICAgICAgICAgICAgICAgICAgIHJvb3RfZGlyIGlzIHVzZWQgYXMgc2Nhbl9kaXIuIHNjYW5fZGly
IGNhbiBiZSB1c2VmdWwKLSAgICAgICAgICAgICAgICAgICAgICBpbiBzYXZpbmcgc2NhbiB0aW1l
IHdoZW4gcm9vdF9kaXIgY29udGFpbnMgbWFueQotICAgICAgICAgICAgICAgICAgICAgIHN1YmRp
cmVjdG9yaWVzLgotICAgICAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcjog
U2NhbnMgaGFuZGxlciBmaWxlcyBldmVuIGlmIHRoZWlyCi0gICAgICAgICAgICAgICAgICAgICAg
Y2Fub25pY2FsIHBhdGggaXMgbm90IHVuZGVyIHJvb3RfZGlyLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAg
ICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcCA9IHt9Ci0gICAgICAgIHNlbGYuX3NvdXJjZV93YXJu
aW5ncyA9IFtdCi0gICAgICAgIGlmIHNjYW5fZGlyIGlzIE5vbmU6Ci0gICAgICAgICAgICBzY2Fu
X2RpciA9IHJvb3RfZGlyCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGly
KS5zdGFydHN3aXRoKAotICAgICAgICAgICAgICAgIG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIp
KToKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdzY2FuX2RpcjolcyBtdXN0
IGJlIGEgZGlyZWN0b3J5IHVuZGVyICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdyb290X2Rpcjolcy4nICUgKHNjYW5fZGlyLCByb290X2RpcikpCi0gICAgICAgIHNlbGYu
X3NvdXJjZV9oYW5kbGVyX2ZpbGVzX2luX2RpcigKLSAgICAgICAgICAgIHJvb3RfZGlyLCBzY2Fu
X2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcikKLQotICAgIGRlZiBhZGRfcmVz
b3VyY2VfcGF0aF9hbGlhcyhzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bGlhc19yZXNvdXJjZV9wYXRoLCBleGlzdGluZ19yZXNvdXJjZV9wYXRoKToKLSAgICAgICAgIiIi
QWRkIHJlc291cmNlIHBhdGggYWxpYXMuCi0KLSAgICAgICAgT25jZSBhZGRlZCwgcmVxdWVzdCB0
byBhbGlhc19yZXNvdXJjZV9wYXRoIHdvdWxkIGJlIGhhbmRsZWQgYnkKLSAgICAgICAgaGFuZGxl
ciByZWdpc3RlcmVkIGZvciBleGlzdGluZ19yZXNvdXJjZV9wYXRoLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9wYXRoOiBhbGlhcyByZXNvdXJjZSBwYXRoCi0g
ICAgICAgICAgICBleGlzdGluZ19yZXNvdXJjZV9wYXRoOiBleGlzdGluZyByZXNvdXJjZSBwYXRo
Ci0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0g
c2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbZXhpc3RpbmdfcmVzb3VyY2VfcGF0aF0KLSAgICAgICAg
ICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwW2FsaWFzX3Jlc291cmNlX3BhdGhdID0gaGFuZGxl
cl9zdWl0ZQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBEaXNw
YXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleGlzdGluZ19yZXNvdXJjZV9wYXRoKQotCi0gICAgZGVmIHNvdXJj
ZV93YXJuaW5ncyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHdhcm5pbmdzIGluIHNvdXJjaW5n
IGhhbmRsZXJzLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9zb3VyY2Vfd2FybmluZ3MKLQot
ICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkRv
IGV4dHJhIGNoZWNraW5nIGluIFdlYlNvY2tldCBoYW5kc2hha2UuCi0KLSAgICAgICAgU2VsZWN0
IGEgaGFuZGxlciBiYXNlZCBvbiByZXF1ZXN0LnVyaSBhbmQgY2FsbCBpdHMKLSAgICAgICAgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgZnVuY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQotICAgICAgICBSYWlzZXM6
Ci0gICAgICAgICAgICBEaXNwYXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5kbGVyIHdhcyBub3QgZm91
bmQKLSAgICAgICAgICAgIEFib3J0ZWRCeVVzZXJFeGNlcHRpb246IHdoZW4gdXNlciBoYW5kbGVy
IGFib3J0IGNvbm5lY3Rpb24KLSAgICAgICAgICAgIEhhbmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBv
cGVuaW5nIGhhbmRzaGFrZSBmYWlsZWQKLSAgICAgICAgIiIiCi0KLSAgICAgICAgaGFuZGxlcl9z
dWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAg
ICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hF
eGNlcHRpb24oJ05vIGhhbmRsZXIgZm9yOiAlcicgJSByZXF1ZXN0LndzX3Jlc291cmNlKQotICAg
ICAgICBkb19leHRyYV9oYW5kc2hha2VfID0gaGFuZGxlcl9zdWl0ZS5kb19leHRyYV9oYW5kc2hh
a2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZG9fZXh0cmFfaGFuZHNoYWtlXyhyZXF1ZXN0
KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToK
LSAgICAgICAgICAgICMgUmUtcmFpc2UgdG8gdGVsbCB0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rp
b24gdG8gZmluaXNoIHRoaXMKLSAgICAgICAgICAgICMgY29ubmVjdGlvbiB3aXRob3V0IHNlbmRp
bmcgYW55IGVycm9yLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIHV0aWwu
Z2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgICAgICclcyByYWlzZWQgZXhjZXB0aW9uIGZvciAlczogJyAl
ICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfRE9fRVhUUkFfSEFORFNIQUtFX0hBTkRM
RVJfTkFNRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNl
KSwKLSAgICAgICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNlIGhhbmRzaGFrZS5I
YW5kc2hha2VFeGNlcHRpb24oZSwgY29tbW9uLkhUVFBfU1RBVFVTX0ZPUkJJRERFTikKLQotICAg
IGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJMZXQgYSBoYW5k
bGVyIHRyYW5zZmVyX2RhdGEgd2l0aCBhIFdlYlNvY2tldCBjbGllbnQuCi0KLSAgICAgICAgU2Vs
ZWN0IGEgaGFuZGxlciBiYXNlZCBvbiByZXF1ZXN0LndzX3Jlc291cmNlIGFuZCBjYWxsIGl0cwot
ICAgICAgICB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgZnVuY3Rpb24uCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQotICAgICAgICBS
YWlzZXM6Ci0gICAgICAgICAgICBEaXNwYXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5kbGVyIHdhcyBu
b3QgZm91bmQKLSAgICAgICAgICAgIEFib3J0ZWRCeVVzZXJFeGNlcHRpb246IHdoZW4gdXNlciBo
YW5kbGVyIGFib3J0IGNvbm5lY3Rpb24KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5
b3NoaW5vKTogVGVybWluYXRlIHVuZGVybHlpbmcgVENQIGNvbm5lY3Rpb24gaWYgcG9zc2libGUu
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIG11eC51c2VfbXV4KHJlcXVlc3QpOgotICAg
ICAgICAgICAgICAgIG11eC5zdGFydChyZXF1ZXN0LCBzZWxmKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRfaGFuZGxlcl9zdWl0ZShy
ZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICAgICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhh
bmRsZXIgZm9yOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFf
ID0gaGFuZGxlcl9zdWl0ZS50cmFuc2Zlcl9kYXRhCi0gICAgICAgICAgICAgICAgdHJhbnNmZXJf
ZGF0YV8ocmVxdWVzdCkKLQotICAgICAgICAgICAgaWYgbm90IHJlcXVlc3Quc2VydmVyX3Rlcm1p
bmF0ZWQ6Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlv
bigpCi0gICAgICAgICMgQ2F0Y2ggbm9uLWNyaXRpY2FsIGV4Y2VwdGlvbnMgdGhlIGhhbmRsZXIg
ZGlkbid0IGhhbmRsZS4KLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgdXRpbC5n
ZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBtc2d1
dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25u
ZWN0aW9uKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRf
RVJST1IpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgIyBJbnZhbGlkRnJhbWVFeGNlcHRpb24gbXVzdCBiZSBjYXVnaHQgYmVm
b3JlCi0gICAgICAgICAgICAjIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIHRoYXQgY2F0
Y2hlcyBJbnZhbGlkRnJhbWVFeGNlcHRpb24uCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rp
b24oY29tbW9uLlNUQVRVU19QUk9UT0NPTF9FUlJPUikKLSAgICAgICAgZXhjZXB0IG1zZ3V0aWwu
VW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25u
ZWN0aW9uKGNvbW1vbi5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkKLSAgICAgICAgZXhjZXB0IHN0
cmVhbS5JbnZhbGlkVVRGOEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25u
ZWN0aW9uKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlM
T0FEX0RBVEEpCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLkNvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgIyBBbnkgb3RoZXIgZXhj
ZXB0aW9ucyBhcmUgZm9yd2FyZGVkIHRvIHRoZSBjYWxsZXIgb2YgdGhpcwotICAgICAgICAgICAg
IyBmdW5jdGlvbi4KLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCi0g
ICAgICAgICAgICAgICAgICAgIF9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFNRSwgcmVxdWVzdC53
c19yZXNvdXJjZSksCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNlCi0KLSAg
ICBkZWYgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAg
IiIiUHJlcGFyZSBjb2RlIGFuZCByZWFzb24gZm9yIHJlc3BvbmRpbmcgY2xpZW50IGluaXRpYXRl
ZCBjbG9zaW5nCi0gICAgICAgIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaGFu
ZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkK
LSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIF9k
ZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KQotICAgICAg
ICByZXR1cm4gaGFuZGxlcl9zdWl0ZS5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKHJlcXVlc3Qp
Ci0KLSAgICBkZWYgZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZiwgcmVzb3VyY2UpOgotICAgICAgICAi
IiJSZXRyaWV2ZXMgdHdvIGhhbmRsZXJzIChvbmUgZm9yIGV4dHJhIGhhbmRzaGFrZSBwcm9jZXNz
aW5nLCBhbmQgb25lCi0gICAgICAgIGZvciBkYXRhIHRyYW5zZmVyKSBmb3IgdGhlIGdpdmVuIHJl
cXVlc3QgYXMgYSBIYW5kbGVyU3VpdGUgb2JqZWN0LgotICAgICAgICAiIiIKLQotICAgICAgICBm
cmFnbWVudCA9IE5vbmUKLSAgICAgICAgaWYgJyMnIGluIHJlc291cmNlOgotICAgICAgICAgICAg
cmVzb3VyY2UsIGZyYWdtZW50ID0gcmVzb3VyY2Uuc3BsaXQoJyMnLCAxKQotICAgICAgICBpZiAn
PycgaW4gcmVzb3VyY2U6Ci0gICAgICAgICAgICByZXNvdXJjZSA9IHJlc291cmNlLnNwbGl0KCc/
JywgMSlbMF0KLSAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFw
LmdldChyZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBhbmQgZnJhZ21lbnQ6Ci0g
ICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignRnJhZ21lbnQgaWRlbnRpZmllcnMg
TVVTVCBOT1QgYmUgdXNlZCBvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnV2ViU29ja2V0IFVSSXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICByZXR1cm4gaGFuZGxlcl9z
dWl0ZQotCi0gICAgZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxlc19pbl9kaXIoCi0gICAgICAgIHNl
bGYsIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcik6
Ci0gICAgICAgICIiIlNvdXJjZSBhbGwgdGhlIGhhbmRsZXIgc291cmNlIGZpbGVzIGluIHRoZSBz
Y2FuX2RpciBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhlIHJlc291cmNlIHBhdGggaXMgZGV0ZXJt
aW5lZCByZWxhdGl2ZSB0byByb290X2Rpci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBXZSBi
dWlsZCBhIG1hcCBmcm9tIHJlc291cmNlIHRvIGhhbmRsZXIgY29kZSBhc3N1bWluZyB0aGF0IHRo
ZXJlJ3MKLSAgICAgICAgIyBvbmx5IG9uZSBwYXRoIGZyb20gcm9vdF9kaXIgdG8gc2Nhbl9kaXIg
YW5kIGl0IGNhbiBiZSBvYnRhaW5lZCBieQotICAgICAgICAjIGNvbXBhcmluZyByZWFscGF0aCBv
ZiB0aGVtLgotCi0gICAgICAgICMgSGVyZSB3ZSBjYW5ub3QgdXNlIGFic3BhdGguIFNlZQotICAg
ICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYwMwotCi0g
ICAgICAgIGNvbnZlcnQgPSBfY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKHJvb3Rf
ZGlyKQotICAgICAgICBzY2FuX3JlYWxwYXRoID0gb3MucGF0aC5yZWFscGF0aChzY2FuX2RpcikK
LSAgICAgICAgcm9vdF9yZWFscGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIpCi0gICAg
ICAgIGZvciBwYXRoIGluIF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKHNjYW5fcmVhbHBh
dGgpOgotICAgICAgICAgICAgaWYgKG5vdCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGly
IGFuZAotICAgICAgICAgICAgICAgIChub3Qgb3MucGF0aC5yZWFscGF0aChwYXRoKS5zdGFydHN3
aXRoKHJvb3RfcmVhbHBhdGgpKSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgICAgICAgICAnQ2Fub25pY2FsIHBhdGggb2YgJXMgaXMgbm90IHVuZGVy
IHJvb3QgZGlyZWN0b3J5JyAlCi0gICAgICAgICAgICAgICAgICAgIHBhdGgpCi0gICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBoYW5kbGVy
X3N1aXRlID0gX3NvdXJjZV9oYW5kbGVyX2ZpbGUob3BlbihwYXRoKS5yZWFkKCkpCi0gICAgICAg
ICAgICBleGNlcHQgRGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9zb3VyY2Vfd2FybmluZ3MuYXBwZW5kKCclczogJXMnICUgKHBhdGgsIGUpKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByZXNvdXJjZSA9IGNvbnZlcnQocGF0aCkKLSAg
ICAgICAgICAgIGlmIHJlc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnUGF0aCB0byByZXNvdXJjZSBjb252ZXJz
aW9uIG9uICVzIGZhaWxlZCcgJSBwYXRoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcFtjb252ZXJ0KHBhdGgpXSA9IGhhbmRsZXJfc3Vp
dGUKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2V4dGVuc2lvbnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWJlNzQ5ZmZmNTk4OTY1MTdmYzUxNTcxNzQ2
YzdmMWMyYTdlYjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw3NTAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9k
X3B5d2Vic29ja2V0Lmh0dHBfaGVhZGVyX3V0aWwgaW1wb3J0IHF1b3RlX2lmX25lY2Vzc2FyeQot
Ci0KLSMgVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHNlcnZlciBzaWRlIGV4dGVuc2lvbiBwcm9jZXNz
b3IgY2xhc3Nlcy4KLV9hdmFpbGFibGVfcHJvY2Vzc29ycyA9IHt9Ci1fY29tcHJlc3Npb25fZXh0
ZW5zaW9uX25hbWVzID0gW10KLQotCi1jbGFzcyBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2Uo
b2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fYWN0aXZlID0gVHJ1ZQotCi0gICAgZGVm
IHJlcXVlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0Ci0KLSAgICBkZWYg
bmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBjaGVja19jb25zaXN0
ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJvY2Vzc29ycyk6Ci0gICAgICAgIHBh
c3MKLQotICAgIGRlZiBzZXRfYWN0aXZlKHNlbGYsIGFjdGl2ZSk6Ci0gICAgICAgIHNlbGYuX2Fj
dGl2ZSA9IGFjdGl2ZQotCi0gICAgZGVmIGlzX2FjdGl2ZShzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX2FjdGl2ZQotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFs
KHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIGdldF9leHRlbnNpb25fcmVz
cG9uc2Uoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9hY3RpdmU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0V4dGVuc2lvbiAlcyBpcyBkZWFjdGl2YXRlZCcsIHNlbGYubmFt
ZSgpKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICByZXNwb25zZSA9IHNlbGYu
X2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoKQotICAgICAgICBpZiByZXNwb25zZSBp
cyBOb25lOgotICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UKLSAgICAgICAgcmV0dXJu
IHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYs
IHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldHVwX3N0cmVhbV9v
cHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgaWYgc2VsZi5fYWN0aXZlOgot
ICAgICAgICAgICAgc2VsZi5fc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc3RyZWFtX29w
dGlvbnMpCi0KLQotZGVmIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAg
IGxvZ2dlciwgb3JpZ2luYWxfYnl0ZXMsIGZpbHRlcmVkX2J5dGVzLCBhdmVyYWdlX3JhdGlvKToK
LSAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFpbGFibGUuCi0gICAgcmF0aW8g
PSBmbG9hdCgnaW5mJykKLSAgICBpZiBvcmlnaW5hbF9ieXRlcyAhPSAwOgotICAgICAgICByYXRp
byA9IGZsb2F0KGZpbHRlcmVkX2J5dGVzKSAvIG9yaWdpbmFsX2J5dGVzCi0KLSAgICBsb2dnZXIu
ZGVidWcoJ091dGdvaW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAoYXZlcmFnZTogJWYpJyAlCi0g
ICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQotCi0KLWRlZiBfbG9nX2luY29taW5n
X2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICBsb2dnZXIsIHJlY2VpdmVkX2J5dGVzLCBmaWx0
ZXJlZF9ieXRlcywgYXZlcmFnZV9yYXRpbyk6Ci0gICAgIyBQcmludCBpbmYgd2hlbiByYXRpbyBp
cyBub3QgYXZhaWxhYmxlLgotICAgIHJhdGlvID0gZmxvYXQoJ2luZicpCi0gICAgaWYgZmlsdGVy
ZWRfYnl0ZXMgIT0gMDoKLSAgICAgICAgcmF0aW8gPSBmbG9hdChyZWNlaXZlZF9ieXRlcykgLyBm
aWx0ZXJlZF9ieXRlcwotCi0gICAgbG9nZ2VyLmRlYnVnKCdJbmNvbWluZyBjb21wcmVzc2lvbiBy
YXRpbzogJWYgKGF2ZXJhZ2U6ICVmKScgJQotICAgICAgICAgICAgKHJhdGlvLCBhdmVyYWdlX3Jh
dGlvKSkKLQotCi1kZWYgX3BhcnNlX3dpbmRvd19iaXRzKGJpdHMpOgotICAgICIiIlJldHVybiBw
YXJzZWQgaW50ZWdlciB2YWx1ZSBpZmYgdGhlIGdpdmVuIHN0cmluZyBjb25mb3JtcyB0byB0aGUK
LSAgICBncmFtbWFyIG9mIHRoZSB3aW5kb3cgYml0cyBleHRlbnNpb24gcGFyYW1ldGVycy4KLSAg
ICAiIiIKLQotICAgIGlmIGJpdHMgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcign
VmFsdWUgaXMgcmVxdWlyZWQnKQotCi0gICAgIyBGb3Igbm9uIGludGVnZXIgdmFsdWVzIHN1Y2gg
YXMgIjEwLjAiLCBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkLgotICAgIGludF9iaXRzID0gaW50
KGJpdHMpCi0KLSAgICAjIEZpcnN0IGNvbmRpdGlvbiBpcyB0byBkcm9wIGxlYWRpbmcgemVybyBj
YXNlIGUuZy4gIjA4Ii4KLSAgICBpZiBiaXRzICE9IHN0cihpbnRfYml0cykgb3IgaW50X2JpdHMg
PCA4IG9yIGludF9iaXRzID4gMTU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQg
dmFsdWU6ICVyJyAlIGJpdHMpCi0KLSAgICByZXR1cm4gaW50X2JpdHMKLQotCi1jbGFzcyBfQXZl
cmFnZVJhdGlvQ2FsY3VsYXRvcihvYmplY3QpOgotICAgICIiIlN0b3JlcyB0b3RhbCBieXRlcyBv
ZiBvcmlnaW5hbCBhbmQgcmVzdWx0IGRhdGEsIGFuZCBjYWxjdWxhdGVzIGF2ZXJhZ2UKLSAgICBy
ZXN1bHQgLyBvcmlnaW5hbCByYXRpby4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgPSAwCi0gICAgICAgIHNlbGYu
X3RvdGFsX3Jlc3VsdF9ieXRlcyA9IDAKLQotICAgIGRlZiBhZGRfb3JpZ2luYWxfYnl0ZXMoc2Vs
ZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9ieXRlcyArPSB2YWx1ZQot
Ci0gICAgZGVmIGFkZF9yZXN1bHRfYnl0ZXMoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl90
b3RhbF9yZXN1bHRfYnl0ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBnZXRfYXZlcmFnZV9yYXRpbyhz
ZWxmKToKLSAgICAgICAgaWYgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgIT0gMDoKLSAgICAg
ICAgICAgIHJldHVybiAoZmxvYXQoc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzKSAvCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmV0dXJuIGZsb2F0KCdpbmYnKQotCi0KLWNsYXNzIERlZmxhdGVGcmFtZUV4
dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiImRl
ZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KLQotICAgIFNwZWNpZmljYXRpb246Ci0g
ICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdHlvc2hpbm8taHliaS13ZWJzb2Nr
ZXQtcGVyZnJhbWUtZGVmbGF0ZQotICAgICIiIgotCi0gICAgX1dJTkRPV19CSVRTX1BBUkFNID0g
J21heF93aW5kb3dfYml0cycKLSAgICBfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdub19j
b250ZXh0X3Rha2VvdmVyJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAg
ICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIHNlbGYuX3Jl
c3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIgPSBGYWxzZQotICAgICAgICBzZWxmLl9iZmluYWwg
PSBGYWxzZQotCi0gICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgb3V0
Z29pbmcgYnl0ZXMgc3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8KLSAgICAgICAgIyAgICAgKFRv
dGFsIGJ5dGVzIHNlbnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIp
Ci0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVy
YWdlUmF0aW9DYWxjdWxhdG9yKCkKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAg
ICAgKFRvdGFsIGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmspIC8KLSAgICAgICAgIyAg
ICAgKFRvdGFsIGluY29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmls
dGVyKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBf
QXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAg
cmV0dXJuIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTgotCi0gICAgZGVmIF9nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICAjIEFueSB1bmtub3duIHBh
cmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4KLQotICAgICAgICB3aW5kb3dfYml0cyA9IE5v
bmUKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYuX1dJTkRPV19C
SVRTX1BBUkFNKToKLSAgICAgICAgICAgIHdpbmRvd19iaXRzID0gc2VsZi5fcmVxdWVzdC5nZXRf
cGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX1dJTkRPV19CSVRTX1BBUkFN
KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdpbmRvd19iaXRzID0gX3BhcnNl
X3dpbmRvd19iaXRzKHdpbmRvd19iaXRzKQotICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Ig
YXMgZToKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIG5vX2NvbnRleHRf
dGFrZW92ZXIgPSBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoCi0gICAgICAgICAgICBzZWxm
Ll9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKQotICAgICAgICBpZiAobm9fY29udGV4dF90YWtl
b3ZlciBhbmQKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgK
LSAgICAgICAgICAgICAgICBzZWxmLl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKSBpcyBub3Qg
Tm9uZSk6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlbGYuX3JmYzE5Nzlf
ZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIoCi0gICAgICAgICAgICB3aW5kb3dfYml0
cywgbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVy
ID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKLQotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRn
b2luZyA9IFRydWUKLQotICAgICAgICByZXNwb25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0KLSAgICAgICAgaWYgc2VsZi5fcmVzcG9uc2Vfd2lu
ZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVy
KAotICAgICAgICAgICAgICAgIHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNLCBzdHIoc2VsZi5fcmVz
cG9uc2Vfd2luZG93X2JpdHMpKQotICAgICAgICBpZiBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0
X3Rha2VvdmVyOgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAg
ICAgICAgICBzZWxmLl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uICgn
Ci0gICAgICAgICAgICAncmVxdWVzdDogd2luZG93X2JpdHM9JXM7IG5vX2NvbnRleHRfdGFrZW92
ZXI9JXIsICcKLSAgICAgICAgICAgICdyZXNwb25zZTogd2luZG93X3diaXRzPSVzOyBub19jb250
ZXh0X3Rha2VvdmVyPSVyKScgJQotICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QubmFtZSgpLAot
ICAgICAgICAgICAgIHdpbmRvd19iaXRzLAotICAgICAgICAgICAgIG5vX2NvbnRleHRfdGFrZW92
ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMsCi0gICAgICAgICAg
ICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcikpCi0KLSAgICAgICAgcmV0dXJu
IHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYs
IHN0cmVhbV9vcHRpb25zKToKLQotICAgICAgICBjbGFzcyBfT3V0Z29pbmdGaWx0ZXIob2JqZWN0
KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2Vs
ZiwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fb3V0Z29pbmdfZmlsdGVy
KGZyYW1lKQotCi0gICAgICAgIGNsYXNzIF9JbmNvbWluZ0ZpbHRlcihvYmplY3QpOgotCi0gICAg
ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9pbmNvbWluZ19maWx0ZXIoZnJhbWUpCi0K
LSAgICAgICAgc3RyZWFtX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCi0g
ICAgICAgICAgICBfT3V0Z29pbmdGaWx0ZXIoc2VsZikpCi0gICAgICAgIHN0cmVhbV9vcHRpb25z
LmluY29taW5nX2ZyYW1lX2ZpbHRlcnMuaW5zZXJ0KAotICAgICAgICAgICAgMCwgX0luY29taW5n
RmlsdGVyKHNlbGYpKQotCi0gICAgZGVmIHNldF9yZXNwb25zZV93aW5kb3dfYml0cyhzZWxmLCB2
YWx1ZSk6Ci0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzID0gdmFsdWUKLQotICAg
IGRlZiBzZXRfcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmLCB2YWx1ZSk6Ci0gICAg
ICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIgPSB2YWx1ZQotCi0gICAgZGVm
IHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9iZmluYWwgPSB2YWx1ZQot
Ci0gICAgZGVmIGVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2Vs
Zi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCi0KLSAgICBkZWYgZGlzYWJsZV9vdXRnb2luZ19j
b21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBGYWxz
ZQotCi0gICAgZGVmIF9vdXRnb2luZ19maWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJU
cmFuc2Zvcm0gb3V0Z29pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb25seSBieQot
ICAgICAgICBhbiBfT3V0Z29pbmdGaWx0ZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBz
ZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVz
KAotICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBpZiAo
bm90IHNlbGYuX2NvbXByZXNzX291dGdvaW5nIG9yCi0gICAgICAgICAgICBjb21tb24uaXNfY29u
dHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKSk6Ci0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19h
dmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAg
ICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAg
ICAgZnJhbWUucGF5bG9hZCA9IHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIuZmlsdGVyKAotICAgICAg
ICAgICAgZnJhbWUucGF5bG9hZCwgYmZpbmFsPXNlbGYuX2JmaW5hbCkKLSAgICAgICAgZnJhbWUu
cnN2MSA9IDEKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5
bG9hZCkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFk
ZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQot
Ci0gICAgICAgIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSwK
LSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAg
c2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlv
KCkpCi0KLSAgICBkZWYgX2luY29taW5nX2ZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIi
IlRyYW5zZm9ybSBpbmNvbWluZyBmcmFtZXMuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmx5IGJ5
Ci0gICAgICAgIGFuIF9JbmNvbWluZ0ZpbHRlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAg
IHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVz
KAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBpZiBm
cmFtZS5yc3YxICE9IDEgb3IgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6
Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRk
X29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3Np
emUpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBmcmFtZS5wYXlsb2FkID0gc2VsZi5f
cmZjMTk3OV9pbmZsYXRlci5maWx0ZXIoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgZnJhbWUucnN2
MSA9IDAKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9h
ZCkKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9v
cmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0K
LSAgICAgICAgX2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplLAot
ICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBz
ZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8o
KSkKLQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5T
SU9OXSA9ICgKLSAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi1fY29tcHJlc3Np
b25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
Ci0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9F
WFRFTlNJT05dID0gKAotICAgIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikKLV9jb21w
cmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTikKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiInBlcm1lc3NhZ2UtZGVm
bGF0ZSBleHRlbnNpb24gcHJvY2Vzc29yLgotCi0gICAgU3BlY2lmaWNhdGlvbjoKLSAgICBodHRw
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktcGVybWVzc2FnZS1jb21wcmVz
c2lvbi0wOAotICAgICIiIgotCi0gICAgX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0gPSAn
c2VydmVyX21heF93aW5kb3dfYml0cycKLSAgICBfU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJf
UEFSQU0gPSAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInCi0gICAgX0NMSUVOVF9NQVhfV0lO
RE9XX0JJVFNfUEFSQU0gPSAnY2xpZW50X21heF93aW5kb3dfYml0cycKLSAgICBfQ0xJRU5UX05P
X0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBQ
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4iIiIKLQotICAgICAgICBFeHRlbnNp
b25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
cHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIHNlbGYuX2Ns
aWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLQotICAgIGRlZiBuYW1lKHNlbGYpOgot
ICAgICAgICAjIFRoaXMgbWV0aG9kIHJldHVybnMgImRlZmxhdGUiIChub3QgInBlcm1lc3NhZ2Ut
ZGVmbGF0ZSIpIGZvcgotICAgICAgICAjIGNvbXBhdGliaWxpdHkuCi0gICAgICAgIHJldHVybiAn
ZGVmbGF0ZScKLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxm
KToKLSAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX25hbWVz
KCk6Ci0gICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBbc2VsZi5fU0VSVkVSX01BWF9XSU5ET1df
QklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9f
Q09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNXToKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1Vua25vd24gcGFyYW1ldGVyOiAlcicsIG5hbWUpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gTm9uZQot
ICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoc2VsZi5fU0VSVkVSX01BWF9X
SU5ET1dfQklUU19QQVJBTSk6Ci0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0g
c2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBfcGFyc2Vfd2luZG93X2JpdHMo
Ci0gICAgICAgICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMpCi0gICAgICAgICAg
ICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQmFkICVzIHBhcmFtZXRlcjogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0K
LSAgICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIgPSBzZWxmLl9yZXF1ZXN0Lmhhc19w
YXJhbWV0ZXIoCi0gICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9Q
QVJBTSkKLSAgICAgICAgaWYgKHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyIGFuZAotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAg
IHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKSBpcyBub3QgTm9uZSk6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5vdCBoYXZl
IGEgdmFsdWU6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJW
RVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikKLSAgICAgICAgICAgIHJldHVybiBOb25l
Ci0KLSAgICAgICAgIyBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBjbGllbnQgaW5kaWNh
dGVzIHdoZXRoZXIgdGhlIGNsaWVudCBjYW4KLSAgICAgICAgIyBhY2NlcHQgY2xpZW50X21heF93
aW5kb3dfYml0cyBmcm9tIGEgc2VydmVyIG9yIG5vdC4KLSAgICAgICAgY2xpZW50X2NsaWVudF9t
YXhfd2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoCi0gICAgICAgICAg
ICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICBpZiAoY2xpZW50
X2NsaWVudF9tYXhfd2luZG93X2JpdHMgYW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lmdl
dF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5E
T1dfQklUU19QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCclcyBwYXJhbWV0ZXIgbXVzdCBub3QgaGF2ZSBhIHZhbHVlIGluIGEgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdjbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2U6ICVyJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19C
SVRTX1BBUkFNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jbGllbnRf
bWF4X3dpbmRvd19iaXRzKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZWxm
Ll9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAgICAg
c2VydmVyX21heF93aW5kb3dfYml0cywgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAg
ICAgICAgIyBOb3RlIHRoYXQgd2UgcHJlcGFyZSBmb3IgaW5jb21pbmcgbWVzc2FnZXMgY29tcHJl
c3NlZCB3aXRoIHdpbmRvdwotICAgICAgICAjIGJpdHMgdXB0byAxNSByZWdhcmRsZXNzIG9mIHRo
ZSBjbGllbnRfbWF4X3dpbmRvd19iaXRzIHZhbHVlIHRvIGJlCi0gICAgICAgICMgc2VudCB0byB0
aGUgY2xpZW50LgotICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3
OUluZmxhdGVyKCkKLQotICAgICAgICBzZWxmLl9mcmFtZXIgPSBfUGVyTWVzc2FnZURlZmxhdGVG
cmFtZXIoCi0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlcikKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9iZmluYWwoRmFsc2UpCi0g
ICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChUcnVlKQot
Ci0gICAgICAgIHJlc3BvbnNlID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihzZWxmLl9yZXF1
ZXN0Lm5hbWUoKSkKLQotICAgICAgICBpZiBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAg
ICBzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAgIHN0
cihzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKSkKLQotICAgICAgICBpZiBzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcjoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0K
LSAgICAgICAgaWYgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBpZiBub3QgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHM6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm9jZXNzb3IgaXMgY29uZmln
dXJlZCB0byB1c2UgJXMgYnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3RoZSBjbGllbnQgY2Fubm90IGFjY2VwdCBpdCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAg
ICAgICAgICAgICBzdHIoc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMpKQot
Ci0gICAgICAgIGlmIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAgICAg
ICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRf
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVzIGV4dGVuc2lvbiAoJwotICAgICAgICAgICAg
J3JlcXVlc3Q6IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9JXM7ICcKLSAgICAgICAgICAgICdzZXJ2
ZXJfbm9fY29udGV4dF90YWtlb3Zlcj0lciwgJwotICAgICAgICAgICAgJ3Jlc3BvbnNlOiBjbGll
bnRfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0gICAgICAgICAgICAnY2xpZW50X25vX2NvbnRleHRf
dGFrZW92ZXI9JXIpJyAlCi0gICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5uYW1lKCksCi0gICAg
ICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICBzZXJ2ZXJfbm9f
Y29udGV4dF90YWtlb3ZlciwKLSAgICAgICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21h
eF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlcikpCi0KLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0cmVh
bV9vcHRpb25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgc2VsZi5f
ZnJhbWVyLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQotCi0gICAgZGVmIHNl
dF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgIiIiSWYgdGhp
cyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhlCi0gICAgICAgIGNsaWVu
dF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlciB0byB0aGUgaGFuZHNoYWtlIHJl
c3BvbnNlLAotICAgICAgICBidXQgZG9lc24ndCByZWR1Y2UgdGhlIExaNzcgc2xpZGluZyB3aW5k
b3cgc2l6ZSBvZiBpdHMgaW5mbGF0ZXIuCi0gICAgICAgIEkuZS4sIHlvdSBjYW4gdXNlIHRoaXMg
Zm9yIHRlc3RpbmcgY2xpZW50IGltcGxlbWVudGF0aW9uIGJ1dCBjYW5ub3QKLSAgICAgICAgcmVk
dWNlIG1lbW9yeSB1c2FnZSBvZiB0aGlzIGNsYXNzLgotCi0gICAgICAgIElmIHRoaXMgbWV0aG9k
IGhhcyBiZWVuIGNhbGxlZCB3aXRoIFRydWUgYW5kIGFuIG9mZmVyIHdpdGhvdXQgdGhlCi0gICAg
ICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlciBpcyByZWNlaXZl
ZCwKLSAgICAgICAgLSAoV2hlbiBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0
ZW5zaW9uKSB0aGlzIHByb2Nlc3NvcgotICAgICAgICAgIGRlY2xpbmVzIHRoZSByZXF1ZXN0Lgot
ICAgICAgICAtIChXaGVuIHByb2Nlc3NpbmcgdGhlIHBlcm1lc3NhZ2UtY29tcHJlc3MgZXh0ZW5z
aW9uKSB0aGlzIHByb2Nlc3NvcgotICAgICAgICAgIGFjY2VwdHMgdGhlIHJlcXVlc3QuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gdmFsdWUKLQotICAgIGRlZiBzZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZiwg
dmFsdWUpOgotICAgICAgICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoaXMgY2xh
c3MgYWRkcyB0aGUKLSAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgZXh0ZW5zaW9u
IHBhcmFtZXRlciB0byB0aGUgaGFuZHNoYWtlCi0gICAgICAgIHJlc3BvbnNlLCBidXQgZG9lc24n
dCByZXNldCBpbmZsYXRlciBmb3IgZWFjaCBtZXNzYWdlLiBJLmUuLCB5b3UgY2FuCi0gICAgICAg
IHVzZSB0aGlzIGZvciB0ZXN0aW5nIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fubm90IHJl
ZHVjZSBtZW1vcnkKLSAgICAgICAgdXNhZ2Ugb2YgdGhpcyBjbGFzcy4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSB2YWx1ZQotCi0gICAg
ZGVmIHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2Jm
aW5hbCh2YWx1ZSkKLQotICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6
Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChUcnVl
KQotCi0gICAgZGVmIGRpc2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAgICAg
IHNlbGYuX2ZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChGYWxzZSkKLQotCi1j
bGFzcyBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIob2JqZWN0KToKLSAgICAiIiJBIGZyYW1lciBm
b3IgZXh0ZW5zaW9ucyB3aXRoIHBlci1tZXNzYWdlIERFRkxBVEUgZmVhdHVyZS4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBkZWZsYXRlX21heF93aW5kb3dfYml0cywgZGVmbGF0ZV9ub19j
b250ZXh0X3Rha2VvdmVyKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JG
QzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIGRlZmxhdGVfbWF4X3dpbmRvd19iaXRzLCBkZWZs
YXRlX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZsYXRl
ciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fYmZpbmFsID0gRmFs
c2UKLQotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkID0gRmFsc2UKLQot
ICAgICAgICAjIFRydWUgaWYgYSBtZXNzYWdlIGlzIGZyYWdtZW50ZWQgYW5kIGNvbXByZXNzaW9u
IGlzIG9uZ29pbmcuCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX29uZ29pbmcgPSBGYWxzZQotCi0g
ICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgb3V0Z29pbmcgYnl0ZXMg
c3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHNl
bnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNl
bGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxj
dWxhdG9yKCkKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5
dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmspIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGlu
Y29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAg
ICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlv
Q2FsY3VsYXRvcigpCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6Ci0gICAgICAg
IHNlbGYuX2JmaW5hbCA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2NvbXByZXNzX291dGdvaW5nX2Vu
YWJsZWQoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19lbmFi
bGVkID0gdmFsdWUKLQotICAgIGRlZiBfcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UsIGRlY29tcHJlc3MpOgotICAgICAgICBpZiBub3QgZGVjb21wcmVzczoKLSAgICAgICAg
ICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplID0gbGVu
KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRv
ci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6
ZSkKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fcmZjMTk3OV9pbmZsYXRlci5maWx0ZXIobWVz
c2FnZSkKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAg
ICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5h
bF9ieXRlcygKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAg
ICAgX2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIsCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplLAotICAgICAg
ICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9p
bmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKLQot
ICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9jZXNzX291dGdvaW5nX21lc3Nh
Z2Uoc2VsZiwgbWVzc2FnZSwgZW5kLCBiaW5hcnkpOgotICAgICAgICBpZiBub3QgYmluYXJ5Ogot
ICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAgICAg
aWYgbm90IHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQ6Ci0gICAgICAgICAgICByZXR1
cm4gbWVzc2FnZQotCi0gICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdl
KQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29y
aWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplKQotCi0gICAg
ICAgIG1lc3NhZ2UgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZpbHRlcigKLSAgICAgICAgICAg
IG1lc3NhZ2UsIGVuZD1lbmQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCi0KLSAgICAgICAgZmlsdGVy
ZWRfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2
ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgZmls
dGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Npb25f
cmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgIG9y
aWdpbmFsX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3Np
emUsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxh
dG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2NvbXByZXNz
X29uZ29pbmc6Ci0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuc2V0X2Nv
bXByZXNzaW9uX2JpdCgpCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX29uZ29pbmcgPSBub3QgZW5k
Ci0gICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdfZnJh
bWUoc2VsZiwgZnJhbWUpOgotICAgICAgICBpZiBmcmFtZS5yc3YxID09IDEgYW5kIG5vdCBjb21t
b24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIHNlbGYuX2lu
Y29taW5nX21lc3NhZ2VfZmlsdGVyLmRlY29tcHJlc3NfbmV4dF9tZXNzYWdlKCkKLSAgICAgICAg
ICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICBkZWYgX3Byb2Nlc3Nfb3V0Z29pbmdfZnJhbWUoc2Vs
ZiwgZnJhbWUsIGNvbXByZXNzaW9uX2JpdCk6Ci0gICAgICAgIGlmIChub3QgY29tcHJlc3Npb25f
Yml0IG9yCi0gICAgICAgICAgICBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2Rl
KSk6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBmcmFtZS5yc3YxID0gMQotCi0gICAg
ZGVmIHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAg
IiIiQ3JlYXRlcyBmaWx0ZXJzIGFuZCBzZXRzIHRoZW0gdG8gdGhlIFN0cmVhbU9wdGlvbnMuIiIi
Ci0KLSAgICAgICAgY2xhc3MgX091dGdvaW5nTWVzc2FnZUZpbHRlcihvYmplY3QpOgotCi0gICAg
ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBtZXNzYWdl
LCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5f
cGFyZW50Ll9wcm9jZXNzX291dGdvaW5nX21lc3NhZ2UoCi0gICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2UsIGVuZCwgYmluYXJ5KQotCi0gICAgICAgIGNsYXNzIF9JbmNvbWluZ01lc3NhZ2VGaWx0
ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UgPSBGYWxzZQotCi0gICAgICAgICAgICBkZWYgZGVj
b21wcmVzc19uZXh0X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZGVjb21w
cmVzc19uZXh0X21lc3NhZ2UgPSBUcnVlCi0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwg
bWVzc2FnZSk6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3BhcmVudC5fcHJvY2Vz
c19pbmNvbWluZ19tZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBzZWxmLl9k
ZWNvbXByZXNzX25leHRfbWVzc2FnZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNz
X25leHRfbWVzc2FnZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQot
ICAgICAgICBzZWxmLl9vdXRnb2luZ19tZXNzYWdlX2ZpbHRlciA9IF9PdXRnb2luZ01lc3NhZ2VG
aWx0ZXIoc2VsZikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIgPSBfSW5j
b21pbmdNZXNzYWdlRmlsdGVyKHNlbGYpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5n
X21lc3NhZ2VfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19tZXNz
YWdlX2ZpbHRlcikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0
ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX21lc3NhZ2VfZmlsdGVyKQot
Ci0gICAgICAgIGNsYXNzIF9PdXRnb2luZ0ZyYW1lRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAg
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3Bh
cmVudCA9IHBhcmVudAotICAgICAgICAgICAgICAgIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQg
PSBGYWxzZQotCi0gICAgICAgICAgICBkZWYgc2V0X2NvbXByZXNzaW9uX2JpdChzZWxmKToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gVHJ1ZQotCi0gICAgICAg
ICAgICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJl
bnQuX3Byb2Nlc3Nfb3V0Z29pbmdfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lLCBz
ZWxmLl9zZXRfY29tcHJlc3Npb25fYml0KQotICAgICAgICAgICAgICAgIHNlbGYuX3NldF9jb21w
cmVzc2lvbl9iaXQgPSBGYWxzZQotCi0gICAgICAgIGNsYXNzIF9JbmNvbWluZ0ZyYW1lRmlsdGVy
KG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYgZmls
dGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX3Byb2Nlc3Nf
aW5jb21pbmdfZnJhbWUoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmls
dGVyID0gX091dGdvaW5nRnJhbWVGaWx0ZXIoc2VsZikKLSAgICAgICAgc2VsZi5faW5jb21pbmdf
ZnJhbWVfZmlsdGVyID0gX0luY29taW5nRnJhbWVGaWx0ZXIoc2VsZikKLSAgICAgICAgc3RyZWFt
X29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxm
Ll9vdXRnb2luZ19mcmFtZV9maWx0ZXIpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29taW5n
X2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZnJhbWVf
ZmlsdGVyKQotCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmVuY29kZV90ZXh0X21lc3NhZ2VfdG9f
dXRmOCA9IEZhbHNlCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OXSA9ICgKLSAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3IpCi0jIFRPRE8odHlvc2hpbm8pOiBSZW9yZ2FuaXplIGNsYXNzIG5hbWVzLgot
X2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoJ2RlZmxhdGUnKQotCi0KLWNsYXNz
IE11eEV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAg
ICIiIldlYlNvY2tldCBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uIHByb2Nlc3Nvci4iIiIKLQotICAg
IF9RVU9UQV9QQVJBTSA9ICdxdW90YScKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0
KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJl
cXVlc3QpCi0gICAgICAgIHNlbGYuX3F1b3RhID0gMAotICAgICAgICBzZWxmLl9leHRlbnNpb25z
ID0gW10KLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gY29tbW9uLk1VWF9F
WFRFTlNJT04KLQotICAgIGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3Nv
cnMoc2VsZiwgcHJvY2Vzc29ycyk6Ci0gICAgICAgIGJlZm9yZV9tdXggPSBUcnVlCi0gICAgICAg
IGZvciBwcm9jZXNzb3IgaW4gcHJvY2Vzc29yczoKLSAgICAgICAgICAgIG5hbWUgPSBwcm9jZXNz
b3IubmFtZSgpCi0gICAgICAgICAgICBpZiBuYW1lID09IHNlbGYubmFtZSgpOgotICAgICAgICAg
ICAgICAgIGJlZm9yZV9tdXggPSBGYWxzZQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICBpZiBiZWZvcmVfbXV4OgotICAgICAgICAgICAgICAgICMgTXV4
IGV4dGVuc2lvbiBjYW5ub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25zCi0gICAgICAgICAgICAg
ICAgIyB0aGF0IGRlcGVuZCBvbiBmcmFtZSBib3VuZGFyeSwgZXh0ZW5zaW9uIGRhdGEgZmllbGQs
IG9yIGFueQotICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgYml0cyB3aGljaCBhcmUgYXR0cmli
dXRlZCB0byBlYWNoIGZyYW1lLgotICAgICAgICAgICAgICAgIGlmIChuYW1lID09IGNvbW1vbi5E
RUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNv
bW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgTXV4IGV4dGVuc2lvbiBzaG91bGQg
bm90IGJlIGFwcGxpZWQgYmVmb3JlIGFueSBoaXN0b3J5LWJhc2VkCi0gICAgICAgICAgICAgICAg
IyBjb21wcmVzc2lvbiBleHRlbnNpb24uCi0gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gJ2Rl
ZmxhdGUnIG9yCi0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhfV0VC
S0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z
ZXRfYWN0aXZlKEZhbHNlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgIGRlZiBf
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgc2VsZi5fYWN0
aXZlID0gRmFsc2UKLSAgICAgICAgcXVvdGEgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJf
dmFsdWUoc2VsZi5fUVVPVEFfUEFSQU0pCi0gICAgICAgIGlmIHF1b3RhIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHF1b3RhID0gaW50KHF1b3RhKQotICAg
ICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICAgICAgaWYgcXVvdGEgPCAwIG9yIHF1b3RhID49IDIgKiogMzI6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHNlbGYuX3F1b3RhID0gcXVvdGEK
LQotICAgICAgICBzZWxmLl9hY3RpdmUgPSBUcnVlCi0gICAgICAgIHJldHVybiBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9OKQotCi0gICAgZGVmIF9zZXR1cF9z
dHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHBh
c3MKLQotICAgIGRlZiBzZXRfcXVvdGEoc2VsZiwgcXVvdGEpOgotICAgICAgICBzZWxmLl9xdW90
YSA9IHF1b3RhCi0KLSAgICBkZWYgcXVvdGEoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9x
dW90YQotCi0gICAgZGVmIHNldF9leHRlbnNpb25zKHNlbGYsIGV4dGVuc2lvbnMpOgotICAgICAg
ICBzZWxmLl9leHRlbnNpb25zID0gZXh0ZW5zaW9ucwotCi0gICAgZGVmIGV4dGVuc2lvbnMoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9leHRlbnNpb25zCi0KLQotX2F2YWlsYWJsZV9wcm9j
ZXNzb3JzW2NvbW1vbi5NVVhfRVhURU5TSU9OXSA9IE11eEV4dGVuc2lvblByb2Nlc3NvcgotCi0K
LWRlZiBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCk6Ci0gICAgIiIi
R2l2ZW4gYW4gRXh0ZW5zaW9uUGFyYW1ldGVyIHJlcHJlc2VudGluZyBhbiBleHRlbnNpb24gb2Zm
ZXIgcmVjZWl2ZWQKLSAgICBmcm9tIGEgY2xpZW50LCBjb25maWd1cmVzIGFuZCByZXR1cm5zIGFu
IGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0gICAgZXh0ZW5zaW9uIHByb2Nlc3NvciBj
bGFzcy4KLSAgICAiIiIKLQotICAgIHByb2Nlc3Nvcl9jbGFzcyA9IF9hdmFpbGFibGVfcHJvY2Vz
c29ycy5nZXQoZXh0ZW5zaW9uX3JlcXVlc3QubmFtZSgpKQotICAgIGlmIHByb2Nlc3Nvcl9jbGFz
cyBpcyBOb25lOgotICAgICAgICByZXR1cm4gTm9uZQotICAgIHJldHVybiBwcm9jZXNzb3JfY2xh
c3MoZXh0ZW5zaW9uX3JlcXVlc3QpCi0KLQotZGVmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihl
eHRlbnNpb25fbmFtZSk6Ci0gICAgcmV0dXJuIGV4dGVuc2lvbl9uYW1lIGluIF9jb21wcmVzc2lv
bl9leHRlbnNpb25fbmFtZXMKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
ZmFzdF9tYXNraW5nLmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYWFkMjdmNTNj
NDZiZTJhNzFjNzA0YzcwOGZiYjNmNDJmMWEzZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkK
KysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywgR29vZ2xl
IEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotJW1vZHVsZSBmYXN0X21hc2tpbmcKLQotJWluY2x1ZGUg
ImNzdHJpbmcuaSIKLQotJXsKLSNpbmNsdWRlIDxjc3RyaW5nPgotCi0jaWZkZWYgX19TU0UyX18K
LSNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KLSNlbmRpZgotJX0KLQotJWFwcGx5IChjaGFyICpTVFJJ
TkcsIGludCBMRU5HVEgpIHsKLSAgICAoY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBheWxvYWRf
bGVuZ3RoKSwKLSAgICAoY29uc3QgY2hhciogbWFza2luZ19rZXksIGludCBtYXNraW5nX2tleV9s
ZW5ndGgpIH07Ci0lY3N0cmluZ19vdXRwdXRfYWxsb2NhdGVfc2l6ZSgKLSAgICBjaGFyKiogcmVz
dWx0LCBpbnQqIHJlc3VsdF9sZW5ndGgsIGRlbGV0ZSBbXSAqJDEpOwotCi0laW5saW5lICV7Ci0K
LXZvaWQgbWFzaygKLSAgICBjb25zdCBjaGFyKiBwYXlsb2FkLCBpbnQgcGF5bG9hZF9sZW5ndGgs
Ci0gICAgY29uc3QgY2hhciogbWFza2luZ19rZXksIGludCBtYXNraW5nX2tleV9sZW5ndGgsCi0g
ICAgaW50IG1hc2tpbmdfa2V5X2luZGV4LAotICAgIGNoYXIqKiByZXN1bHQsIGludCogcmVzdWx0
X2xlbmd0aCkgewotICAqcmVzdWx0ID0gbmV3IGNoYXJbcGF5bG9hZF9sZW5ndGhdOwotICAqcmVz
dWx0X2xlbmd0aCA9IHBheWxvYWRfbGVuZ3RoOwotICBtZW1jcHkoKnJlc3VsdCwgcGF5bG9hZCwg
cGF5bG9hZF9sZW5ndGgpOwotCi0gIGNoYXIqIGN1cnNvciA9ICpyZXN1bHQ7Ci0gIGNoYXIqIGN1
cnNvcl9lbmQgPSAqcmVzdWx0ICsgKnJlc3VsdF9sZW5ndGg7Ci0KLSNpZmRlZiBfX1NTRTJfXwot
ICB3aGlsZSAoKGN1cnNvciA8IGN1cnNvcl9lbmQpICYmCi0gICAgICAgICAocmVpbnRlcnByZXRf
Y2FzdDxzaXplX3Q+KGN1cnNvcikgJiAweGYpKSB7Ci0gICAgKmN1cnNvciBePSBtYXNraW5nX2tl
eVttYXNraW5nX2tleV9pbmRleF07Ci0gICAgKytjdXJzb3I7Ci0gICAgbWFza2luZ19rZXlfaW5k
ZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKLSAgfQot
ICBpZiAoY3Vyc29yID09IGN1cnNvcl9lbmQpIHsKLSAgICByZXR1cm47Ci0gIH0KLQotICBjb25z
dCBpbnQga0Jsb2NrU2l6ZSA9IDE2OwotICBfX20xMjhpIG1hc2tpbmdfa2V5X2Jsb2NrOwotICBm
b3IgKGludCBpID0gMDsgaSA8IGtCbG9ja1NpemU7ICsraSkgewotICAgICoocmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oJm1hc2tpbmdfa2V5X2Jsb2NrKSArIGkpID0KLSAgICAgICAgbWFza2luZ19r
ZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdf
a2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5ndGg7Ci0gIH0KLQotICB3aGlsZSAoY3Vy
c29yICsga0Jsb2NrU2l6ZSA8PSBjdXJzb3JfZW5kKSB7Ci0gICAgX19tMTI4aSBwYXlsb2FkX2Js
b2NrID0KLSAgICAgICAgX21tX2xvYWRfc2kxMjgocmVpbnRlcnByZXRfY2FzdDxfX20xMjhpKj4o
Y3Vyc29yKSk7Ci0gICAgX21tX3N0cmVhbV9zaTEyOChyZWludGVycHJldF9jYXN0PF9fbTEyOGkq
PihjdXJzb3IpLAotICAgICAgICAgICAgICAgICAgICAgX21tX3hvcl9zaTEyOChwYXlsb2FkX2Js
b2NrLCBtYXNraW5nX2tleV9ibG9jaykpOwotICAgIGN1cnNvciArPSBrQmxvY2tTaXplOwotICB9
Ci0jZW5kaWYKLQotICB3aGlsZSAoY3Vyc29yIDwgY3Vyc29yX2VuZCkgewotICAgICpjdXJzb3Ig
Xj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1h
c2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9s
ZW5ndGg7Ci0gIH0KLX0KLQotJX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hh
bmRzaGFrZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fX2lu
aXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA3MjYzYTY5ZmU5NTE1NmI1
ZjNiMzlkNTg4M2RiOTc1MjU5ZDM0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
V2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4gVGhpcyBjbGFzcyB0cnkgdG8g
YXBwbHkgYXZhaWxhYmxlCi1vcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3JzIGZvciBlYWNoIHBy
b3RvY29sIHZlcnNpb24gdW50aWwgYSBjb25uZWN0aW9uIGlzCi1zdWNjZXNzZnVsbHkgZXN0YWJs
aXNoZWQuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0IGh5Ymkw
MAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJpCi0jIEV4cG9ydCBB
Ym9ydGVkQnlVc2VyRXhjZXB0aW9uLCBIYW5kc2hha2VFeGNlcHRpb24sIGFuZCBWZXJzaW9uRXhj
ZXB0aW9uCi0jIHN5bWJvbCBmcm9tIHRoaXMgbW9kdWxlLgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9u
Ci0KLQotX0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWRlZiBkb19o
YW5kc2hha2UocmVxdWVzdCwgZGlzcGF0Y2hlciwgYWxsb3dEcmFmdDc1PUZhbHNlLCBzdHJpY3Q9
RmFsc2UpOgotICAgICIiIlBlcmZvcm1zIFdlYlNvY2tldCBoYW5kc2hha2UuCi0KLSAgICBBcmdz
OgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgIGRpc3BhdGNo
ZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotICAgICAgICBhbGxvd0RyYWZ0
NzU6IG9ic29sZXRlIGFyZ3VtZW50LiBpZ25vcmVkLgotICAgICAgICBzdHJpY3Q6IG9ic29sZXRl
IGFyZ3VtZW50LiBpZ25vcmVkLgotCi0gICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVz
IHN1Y2ggYXMgd3NfcmVzb3VyY2UgaW4gcGVyZm9ybWluZwotICAgIGhhbmRzaGFrZS4KLSAgICAi
IiIKLQotICAgIF9MT0dHRVIuZGVidWcoJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSByZXNv
dXJjZTogJXInLCByZXF1ZXN0LnVyaSkKLSAgICAjIFRvIHByaW50IG1pbWV0b29scy5NZXNzYWdl
IGFzIGVzY2FwZWQgb25lLWxpbmUgc3RyaW5nLCB3ZSBjb252ZXJ0cwotICAgICMgaGVhZGVyc19p
biB0byBkaWN0IG9iamVjdC4gV2l0aG91dCBjb252ZXJzaW9uLCBpZiB3ZSB1c2UgJXIsIGl0IGp1
c3QKLSAgICAjIHByaW50cyB0aGUgdHlwZSBhbmQgYWRkcmVzcywgYW5kIGlmIHdlIHVzZSAlcywg
aXQgcHJpbnRzIHRoZSBvcmlnaW5hbAotICAgICMgaGVhZGVyIHN0cmluZyBhcyBtdWx0aXBsZSBs
aW5lcy4KLSAgICAjCi0gICAgIyBCb3RoIG1pbWV0b29scy5NZXNzYWdlIGFuZCBNcFRhYmxlX1R5
cGUgb2YgbW9kX3B5dGhvbiBjYW4gYmUKLSAgICAjIGNvbnZlcnRlZCB0byBkaWN0LgotICAgICMK
LSAgICAjIG1pbWV0b29scy5NZXNzYWdlLl9fc3RyX18gcmV0dXJucyB0aGUgb3JpZ2luYWwgaGVh
ZGVyIHN0cmluZy4KLSAgICAjIGRpY3QobWltZXRvb2xzLk1lc3NhZ2Ugb2JqZWN0KSByZXR1cm5z
IHRoZSBtYXAgZnJvbSBoZWFkZXIgbmFtZXMgdG8KLSAgICAjIGhlYWRlciB2YWx1ZXMuIFdoaWxl
IE1wVGFibGVfVHlwZSBkb2Vzbid0IGhhdmUgc3VjaCBfX3N0cl9fIGJ1dCBqdXN0Ci0gICAgIyBf
X3JlcHJfXyB3aGljaCBmb3JtYXRzIGl0c2VsZiBhcyB3ZWxsIGFzIGRpY3Rpb25hcnkgb2JqZWN0
LgotICAgIF9MT0dHRVIuZGVidWcoCi0gICAgICAgICdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hh
a2UgaGVhZGVyczogJXInLCBkaWN0KHJlcXVlc3QuaGVhZGVyc19pbikpCi0KLSAgICBoYW5kc2hh
a2VycyA9IFtdCi0gICAgaGFuZHNoYWtlcnMuYXBwZW5kKAotICAgICAgICAoJ1JGQyA2NDU1Jywg
aHliaS5IYW5kc2hha2VyKHJlcXVlc3QsIGRpc3BhdGNoZXIpKSkKLSAgICBoYW5kc2hha2Vycy5h
cHBlbmQoCi0gICAgICAgICgnSHlCaSAwMCcsIGh5YmkwMC5IYW5kc2hha2VyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpKSkKLQotICAgIGZvciBuYW1lLCBoYW5kc2hha2VyIGluIGhhbmRzaGFrZXJzOgot
ICAgICAgICBfTE9HR0VSLmRlYnVnKCdUcnlpbmcgcHJvdG9jb2wgdmVyc2lvbiAlcycsIG5hbWUp
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAg
ICAgICAgICAgIF9MT0dHRVIuaW5mbygnRXN0YWJsaXNoZWQgKCVzIHByb3RvY29sKScsIG5hbWUp
Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgX0xPR0dFUi5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnRmFpbGVk
IHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFuZHNoYWtlIGFzICVzIHByb3RvY29sOiAlcicsCi0gICAg
ICAgICAgICAgICAgbmFtZSwgZSkKLSAgICAgICAgICAgIGlmIGUuc3RhdHVzOgotICAgICAgICAg
ICAgICAgIHJhaXNlIGUKLSAgICAgICAgZXhjZXB0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMg
ZToKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9uIGFz
IGU6Ci0gICAgICAgICAgICByYWlzZQotCi0gICAgIyBUT0RPKHRveW9zaGltKTogQWRkIGEgdGVz
dCB0byBjb3ZlciB0aGUgY2FzZSBhbGwgaGFuZHNoYWtlcnMgZmFpbC4KLSAgICByYWlzZSBIYW5k
c2hha2VFeGNlcHRpb24oCi0gICAgICAgICdGYWlsZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5k
c2hha2UgZm9yIGFsbCBhdmFpbGFibGUgcHJvdG9jb2xzJywKLSAgICAgICAgc3RhdHVzPWNvbW1v
bi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGFmMDUyNDJiZmNkNmZjOTZjYmQ4ODM5YjA3MDM4NDQyNGE3ZTI5Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9oYW5kc2hha2UvX2Jhc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODIgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiQ29tbW9uIGZ1bmN0aW9ucyBhbmQgZXhjZXB0aW9ucyB1c2Vk
IGJ5IFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZQotcHJvY2Vzc29ycy4KLSIiIgotCi0KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotY2xhc3MgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbihF
eGNlcHRpb24pOgotICAgICIiIkV4Y2VwdGlvbiBmb3IgYWJvcnRpbmcgYSBjb25uZWN0aW9uIGlu
dGVudGlvbmFsbHkuCi0KLSAgICBJZiB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gZG9fZXh0
cmFfaGFuZHNoYWtlIGhhbmRsZXIsIHRoZSBjb25uZWN0aW9uCi0gICAgd2lsbCBiZSBhYmFuZG9u
ZWQuIE5vIG90aGVyIFdlYlNvY2tldCBvciBIVFRQKFMpIGhhbmRsZXIgd2lsbCBiZSBpbnZva2Vk
LgotCi0gICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGluIHRyYW5zZmVyX2RhdGFfaGFu
ZGxlciwgdGhlIGNvbm5lY3Rpb24gd2lsbAotICAgIGJlIGNsb3NlZCB3aXRob3V0IGNsb3Npbmcg
aGFuZHNoYWtlLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyCi0gICAgd2ls
bCBiZSBpbnZva2VkLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEhhbmRzaGFrZUV4
Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2Vk
IHdoZW4gYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZwotICAgIFdlYlNvY2tldCBp
bml0aWFsIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
LCBzdGF0dXM9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEhhbmRzaGFrZUV4Y2VwdGlvbiwgc2VsZiku
X19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1jbGFzcyBW
ZXJzaW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBi
ZSByYWlzZWQgd2hlbiBhIHZlcnNpb24gb2YgY2xpZW50IHJlcXVlc3QgZG9lcyBub3QKLSAgICBt
YXRjaCB3aXRoIHZlcnNpb24gdGhlIHNlcnZlciBzdXBwb3J0cy4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdXBwb3J0ZWRfdmVyc2lvbnM9JycpOgotICAgICAgICAi
IiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHN1
cHBvcnRlZF92ZXJzaW9uOiBhIHN0ciBvYmplY3QgdG8gc2hvdyBzdXBwb3J0ZWQgaHliaSB2ZXJz
aW9ucy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiAnOCwgMTMnKQotICAg
ICAgICAiIiIKLSAgICAgICAgc3VwZXIoVmVyc2lvbkV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18o
bmFtZSkKLSAgICAgICAgc2VsZi5zdXBwb3J0ZWRfdmVyc2lvbnMgPSBzdXBwb3J0ZWRfdmVyc2lv
bnMKLQotCi1kZWYgZ2V0X2RlZmF1bHRfcG9ydChpc19zZWN1cmUpOgotICAgIGlmIGlzX3NlY3Vy
ZToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQK
LSAgICBlbHNlOgotICAgICAgICByZXR1cm4gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JU
Ci0KLQotZGVmIHZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKLSAgICAiIiJWYWxp
ZGF0ZSBhIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGZpZWxkLgotCi0gICAg
U2VlIHRoZSBTZWN0aW9uIDQuMS4sIDQuMi4yLiwgYW5kIDQuMy4gb2YgUkZDIDY0NTUuCi0gICAg
IiIiCi0KLSAgICBpZiBub3Qgc3VicHJvdG9jb2w6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScpCi0KLSAgICAjIFBhcmFt
ZXRlciBzaG91bGQgYmUgZW5jb2RlZCBIVFRQIHRva2VuLgotICAgIHN0YXRlID0gaHR0cF9oZWFk
ZXJfdXRpbC5QYXJzaW5nU3RhdGUoc3VicHJvdG9jb2wpCi0gICAgdG9rZW4gPSBodHRwX2hlYWRl
cl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgcmVzdCA9IGh0dHBfaGVhZGVyX3V0aWwu
cGVlayhzdGF0ZSkKLSAgICAjIElmIHxyZXN0fCBpcyBub3QgTm9uZSwgfHN1YnByb3RvY29sfCBp
cyBub3Qgb25lIHRva2VuIG9yIGludmFsaWQuIElmCi0gICAgIyB8cmVzdHwgaXMgTm9uZSwgfHRv
a2VufCBtdXN0IG5vdCBiZSBOb25lIGJlY2F1c2UgfHN1YnByb3RvY29sfCBpcwotICAgICMgY29u
Y2F0ZW5hdGlvbiBvZiB8dG9rZW58IGFuZCB8cmVzdHwgYW5kIGlzIG5vdCBOb25lLgotICAgIGlm
IHJlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52
YWxpZCBub24tdG9rZW4gc3RyaW5nIGluIHN1YnByb3RvY29sICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICduYW1lOiAlcicgJSByZXN0KQotCi0KLWRlZiBwYXJzZV9ob3N0X2hl
YWRlcihyZXF1ZXN0KToKLSAgICBmaWVsZHMgPSByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLkhP
U1RfSEVBREVSXS5zcGxpdCgnOicsIDEpCi0gICAgaWYgbGVuKGZpZWxkcykgPT0gMToKLSAgICAg
ICAgcmV0dXJuIGZpZWxkc1swXSwgZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkp
Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZmllbGRzWzBdLCBpbnQoZmllbGRzWzFdKQotICAg
IGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bignSW52YWxpZCBwb3J0IG51bWJlciBmb3JtYXQ6ICVyJyAlIGUpCi0KLQotZGVmIGZvcm1hdF9o
ZWFkZXIobmFtZSwgdmFsdWUpOgotICAgIHJldHVybiAnJXM6ICVzXHJcbicgJSAobmFtZSwgdmFs
dWUpCi0KLQotZGVmIGdldF9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSk6Ci0gICAgdmFs
dWUgPSByZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGtleSkKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgot
ICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0hlYWRlciAlcyBpcyBub3QgZGVmaW5l
ZCcgJSBrZXkpCi0gICAgcmV0dXJuIHZhbHVlCi0KLQotZGVmIHZhbGlkYXRlX21hbmRhdG9yeV9o
ZWFkZXIocmVxdWVzdCwga2V5LCBleHBlY3RlZF92YWx1ZSwgZmFpbF9zdGF0dXM9Tm9uZSk6Ci0g
ICAgdmFsdWUgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpCi0KLSAgICBpZiB2
YWx1ZS5sb3dlcigpICE9IGV4cGVjdGVkX3ZhbHVlLmxvd2VyKCk6Ci0gICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICdFeHBlY3RlZCAlciBmb3IgaGVhZGVyICVz
IGJ1dCBmb3VuZCAlciAoY2FzZS1pbnNlbnNpdGl2ZSknICUKLSAgICAgICAgICAgIChleHBlY3Rl
ZF92YWx1ZSwga2V5LCB2YWx1ZSksIHN0YXR1cz1mYWlsX3N0YXR1cykKLQotCi1kZWYgY2hlY2tf
cmVxdWVzdF9saW5lKHJlcXVlc3QpOgotICAgICMgNS4xIDEuIFRoZSB0aHJlZSBjaGFyYWN0ZXIg
VVRGLTggc3RyaW5nICJHRVQiLgotICAgICMgNS4xIDIuIEEgVVRGLTgtZW5jb2RlZCBVKzAwMjAg
U1BBQ0UgY2hhcmFjdGVyICgweDIwIGJ5dGUpLgotICAgIGlmIHJlcXVlc3QubWV0aG9kICE9ICdH
RVQnOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ01ldGhvZCBpcyBub3QgR0VU
OiAlcicgJSByZXF1ZXN0Lm1ldGhvZCkKLQotICAgIGlmIHJlcXVlc3QucHJvdG9jb2wgIT0gJ0hU
VFAvMS4xJzoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdWZXJzaW9uIGlzIG5v
dCBIVFRQLzEuMTogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QucHJvdG9jb2wpCi0KLQotZGVmIHBhcnNlX3Rva2VuX2xpc3QoZGF0YSk6Ci0gICAgIiIiUGFy
c2VzIGEgaGVhZGVyIHZhbHVlIHdoaWNoIGZvbGxvd3MgMSN0b2tlbiBhbmQgcmV0dXJucyBwYXJz
ZWQgZWxlbWVudHMKLSAgICBhcyBhIGxpc3Qgb2Ygc3RyaW5ncy4KLQotICAgIExlYWRpbmcgTFdT
ZXMgbXVzdCBiZSB0cmltbWVkLgotICAgICIiIgotCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91
dGlsLlBhcnNpbmdTdGF0ZShkYXRhKQotCi0gICAgdG9rZW5fbGlzdCA9IFtdCi0KLSAgICB3aGls
ZSBUcnVlOgotICAgICAgICB0b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihz
dGF0ZSkKLSAgICAgICAgaWYgdG9rZW4gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0b2tlbl9s
aXN0LmFwcGVuZCh0b2tlbikKLQotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdz
ZXMoc3RhdGUpCi0KLSAgICAgICAgaWYgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSBpcyBO
b25lOgotICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRp
bC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJywnKToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFr
ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgYSBjb21tYSBidXQgZm91bmQg
JXInICUgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSkKLQotICAgICAgICBodHRwX2hlYWRl
cl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICBpZiBsZW4odG9rZW5fbGlzdCkgPT0g
MDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdObyB2YWxpZCB0b2tlbiBmb3Vu
ZCcpCi0KLSAgICByZXR1cm4gdG9rZW5fbGlzdAotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmRiZjI1YTFkY2NhNzdjZDU4OWRiYTcwNTRmNGU2MjcyYzZkZWEyMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9oYW5kc2hha2UvaHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyMCArMCwwIEBACi0jIENv
cHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNo
YWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgKFJGQyA2NDU1KS4KLQot
U3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKLSIiIgot
Ci0KLSMgTm90ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlIGlzIHVzZWQgaW4gdGhpcyBtb2R1
bGUsIGV2ZW4gdGhvdWdoIG1vZF9weXRob24KLSMgZG9jdW1lbnQgc2F5cyB0aGF0IGl0IHNob3Vs
ZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbiBoYW5kbGVycy4KLSMgVW5mb3J0dW5hdGVseSwg
d2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwgcmVxdWVzdC53cml0ZSBpcyBu
b3QKLSMgc3VpdGFibGUgYmVjYXVzZSBpdCBkb2Vzbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMg
d3JpdGluZy4KLQotCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1p
bXBvcnQgcmUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKLWZy
b20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IGlzX2NvbXByZXNzaW9uX2V4dGVu
c2lvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19y
ZXF1ZXN0X2xpbmUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQg
Zm9ybWF0X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBnZXRfbWFuZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5fYmFzZSBpbXBvcnQgcGFyc2VfdG9rZW5fbGlzdAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29s
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCB1dGlsCi0KLQotIyBVc2VkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZSBpbiB0
aGUgU2VjLVdlYlNvY2tldC1LZXkgaGVhZGVyIHN0cmljdGx5LiBSRkMgNDY0OAotIyBkaXNhbGxv
d3Mgbm9uLXplcm8gcGFkZGluZywgc28gdGhlIGNoYXJhY3RlciByaWdodCBiZWZvcmUgPT0gbXVz
dCBiZSBhbnkgb2YKLSMgQSwgUSwgZyBhbmQgdy4KLV9TRUNfV0VCU09DS0VUX0tFWV9SRUdFWCA9
IHJlLmNvbXBpbGUoJ15bKy8wLTlBLVphLXpdezIxfVtBUWd3XT09JCcpCi0KLSMgRGVmaW5pbmcg
YWxpYXNlcyBmb3IgdmFsdWVzIHVzZWQgZnJlcXVlbnRseS4KLV9WRVJTSU9OX0xBVEVTVCA9IGNv
bW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCi1fVkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3RyKF9W
RVJTSU9OX0xBVEVTVCkKLV9TVVBQT1JURURfVkVSU0lPTlMgPSBbCi0gICAgX1ZFUlNJT05fTEFU
RVNULAotXQotCi0KLWRlZiBjb21wdXRlX2FjY2VwdChrZXkpOgotICAgICIiIkNvbXB1dGVzIHZh
bHVlIGZvciB0aGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyIGZyb20gdmFsdWUgb2YgdGhl
Ci0gICAgU2VjLVdlYlNvY2tldC1LZXkgaGVhZGVyLgotICAgICIiIgotCi0gICAgYWNjZXB0X2Jp
bmFyeSA9IHV0aWwuc2hhMV9oYXNoKAotICAgICAgICBrZXkgKyBjb21tb24uV0VCU09DS0VUX0FD
Q0VQVF9VVUlEKS5kaWdlc3QoKQotICAgIGFjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYWNjZXB0
X2JpbmFyeSkKLQotICAgIHJldHVybiAoYWNjZXB0LCBhY2NlcHRfYmluYXJ5KQotCi0KLWNsYXNz
IEhhbmRzaGFrZXIob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3Ig
Zm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0
aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRj
aC5EaXNwYXRjaGVyKS4KLQotICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMg
c3VjaCBhcyB3c19yZXNvdXJjZSBkdXJpbmcgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAg
ICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlz
cGF0Y2hlcgotCi0gICAgZGVmIF92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcihzZWxmKToKLSAg
ICAgICAgY29ubmVjdGlvbiA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdCwgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSKQotCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGNvbm5lY3Rpb25fdG9rZW5zID0gcGFyc2VfdG9rZW5fbGlzdChjb25uZWN0aW9u
KQotICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJz
ZSAlczogJXMnICUgKGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgZSkpCi0KLSAgICAgICAgY29u
bmVjdGlvbl9pc192YWxpZCA9IEZhbHNlCi0gICAgICAgIGZvciB0b2tlbiBpbiBjb25uZWN0aW9u
X3Rva2VuczoKLSAgICAgICAgICAgIGlmIHRva2VuLmxvd2VyKCkgPT0gY29tbW9uLlVQR1JBREVf
Q09OTkVDVElPTl9UWVBFLmxvd2VyKCk6Ci0gICAgICAgICAgICAgICAgY29ubmVjdGlvbl9pc192
YWxpZCA9IFRydWUKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBpZiBub3QgY29ubmVj
dGlvbl9pc192YWxpZDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnJXMgaGVhZGVyIGRvZXNuXCd0IGNvbnRhaW4gIiVzIicgJQotICAgICAg
ICAgICAgICAgIChjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5F
Q1RJT05fVFlQRSkpCi0KLSAgICBkZWYgZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBzZWxm
Ll9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
Y2xvc2VfcmVhc29uID0gTm9uZQotCi0gICAgICAgICMgUGFyc2luZy4KLQotICAgICAgICBjaGVj
a19yZXF1ZXN0X2xpbmUoc2VsZi5fcmVxdWVzdCkKLQotICAgICAgICB2YWxpZGF0ZV9tYW5kYXRv
cnlfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwKLSAgICAgICAgICAgIGNvbW1v
bi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9U
WVBFKQotCi0gICAgICAgIHNlbGYuX3ZhbGlkYXRlX2Nvbm5lY3Rpb25faGVhZGVyKCkKLQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX3Jlc291cmNlID0gc2VsZi5fcmVxdWVzdC51cmkKLQotICAg
ICAgICB1bnVzZWRfaG9zdCA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsIGNv
bW1vbi5IT1NUX0hFQURFUikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24gPSBz
ZWxmLl9jaGVja192ZXJzaW9uKCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9n
ZXRfb3JpZ2luKCkKLSAgICAgICAgICAgIHNlbGYuX3NldF9wcm90b2NvbCgpCi0gICAgICAgICAg
ICBzZWxmLl9wYXJzZV9leHRlbnNpb25zKCkKLQotICAgICAgICAgICAgIyBLZXkgdmFsaWRhdGlv
biwgcmVzcG9uc2UgZ2VuZXJhdGlvbi4KLQotICAgICAgICAgICAga2V5ID0gc2VsZi5fZ2V0X2tl
eSgpCi0gICAgICAgICAgICAoYWNjZXB0LCBhY2NlcHRfYmluYXJ5KSA9IGNvbXB1dGVfYWNjZXB0
KGtleSkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAn
JXM6ICVyICglcyknLAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQ
VF9IRUFERVIsCi0gICAgICAgICAgICAgICAgYWNjZXB0LAotICAgICAgICAgICAgICAgIHV0aWwu
aGV4aWZ5KGFjY2VwdF9iaW5hcnkpKQotCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1Byb3RvY29sIHZlcnNpb24gaXMgUkZDIDY0NTUnKQotCi0gICAgICAgICAgICAjIFNldHVwIGV4
dGVuc2lvbiBwcm9jZXNzb3JzLgotCi0gICAgICAgICAgICBwcm9jZXNzb3JzID0gW10KLSAgICAg
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgZm9yIGV4dGVuc2lvbl9yZXF1ZXN0IGluIHNlbGYuX3JlcXVl
c3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nv
ciA9IGdldF9leHRlbnNpb25fcHJvY2Vzc29yKGV4dGVuc2lvbl9yZXF1ZXN0KQotICAgICAgICAg
ICAgICAgICAgICAjIFVua25vd24gZXh0ZW5zaW9uIHJlcXVlc3RzIGFyZSBqdXN0IGlnbm9yZWQu
Ci0gICAgICAgICAgICAgICAgICAgIGlmIHByb2Nlc3NvciBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMuYXBwZW5kKHByb2Nlc3NvcikKLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBwcm9jZXNzb3JzCi0KLSAg
ICAgICAgICAgICMgTGlzdCBvZiBleHRyYSBoZWFkZXJzLiBUaGUgZXh0cmEgaGFuZHNoYWtlIGhh
bmRsZXIgbWF5IGFkZCBoZWFkZXIKLSAgICAgICAgICAgICMgZGF0YSBhcyBuYW1lL3ZhbHVlIHBh
aXJzIHRvIHRoaXMgbGlzdCBhbmQgcHl3ZWJzb2NrZXQgYXBwZW5kcwotICAgICAgICAgICAgIyB0
aGVtIHRvIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlLgotICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dC5leHRyYV9oZWFkZXJzID0gW10KLQotICAgICAgICAgICAgIyBFeHRyYSBoYW5kc2hha2UgaGFu
ZGxlciBtYXkgbW9kaWZ5L3JlbW92ZSBwcm9jZXNzb3JzLgotICAgICAgICAgICAgc2VsZi5fZGlz
cGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAgIHBy
b2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yIGlzIG5vdCBOb25l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzKQotCi0gICAgICAgICAgICAjIEFzayBlYWNoIHByb2Nlc3NvciBpZiB0
aGVyZSBhcmUgZXh0ZW5zaW9ucyBvbiB0aGUgcmVxdWVzdCB3aGljaAotICAgICAgICAgICAgIyBj
YW5ub3QgY28tZXhpc3QuIFdoZW4gcHJvY2Vzc29yIGRlY2lkZWQgb3RoZXIgcHJvY2Vzc29ycyBj
YW5ub3QKLSAgICAgICAgICAgICMgY28tZXhpc3Qgd2l0aCBpdCwgdGhlIHByb2Nlc3NvciBtYXJr
cyB0aGVtIChvciBpdHNlbGYpIGFzCi0gICAgICAgICAgICAjICJpbmFjdGl2ZSIuIFRoZSBmaXJz
dCBleHRlbnNpb24gcHJvY2Vzc29yIGhhcyB0aGUgcmlnaHQgdG8KLSAgICAgICAgICAgICMgbWFr
ZSB0aGUgZmluYWwgY2FsbC4KLSAgICAgICAgICAgIGZvciBwcm9jZXNzb3IgaW4gcmV2ZXJzZWQo
cHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAgICAgaWYgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgot
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IuY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhl
cl9wcm9jZXNzb3JzKAotICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKLSAgICAg
ICAgICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yLmlz
X2FjdGl2ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQot
Ci0gICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KLQotICAgICAgICAgICAgIyBX
ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IG9mIG11eCBleHRlbnNpb24gaGVyZS4KLSAgICAg
ICAgICAgICMgSWYgbXV4IGV4dGVuc2lvbiBleGlzdHM6Ci0gICAgICAgICAgICAjIC0gUmVtb3Zl
IHByb2Nlc3NvcnMgb2YgZXh0ZW5zaW9ucyBmb3IgbG9naWNhbCBjaGFubmVsLAotICAgICAgICAg
ICAgIyAgIHdoaWNoIGFyZSBwcm9jZXNzb3JzIGxvY2F0ZWQgYmVmb3JlIHRoZSBtdXggcHJvY2Vz
c29yCi0gICAgICAgICAgICAjIC0gUGFzcyBleHRlbnNpb24gcmVxdWVzdHMgZm9yIGxvZ2ljYWwg
Y2hhbm5lbCB0byBtdXggcHJvY2Vzc29yCi0gICAgICAgICAgICAjIC0gQXR0YWNoIHRoZSBtdXgg
cHJvY2Vzc29yIHRvIHRoZSByZXF1ZXN0LiBJdCB3aWxsIGJlIHJlZmVycmVkCi0gICAgICAgICAg
ICAjICAgYnkgZGlzcGF0Y2hlciB0byBzZWUgd2hldGhlciB0aGUgZGlzcGF0Y2hlciBzaG91bGQg
dXNlIG11eAotICAgICAgICAgICAgIyAgIGhhbmRsZXIgb3Igbm90LgotICAgICAgICAgICAgbXV4
X2luZGV4ID0gLTEKLSAgICAgICAgICAgIGZvciBpLCBwcm9jZXNzb3IgaW4gZW51bWVyYXRlKHBy
b2Nlc3NvcnMpOgotICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5uYW1lKCkgPT0gY29tbW9u
Lk1VWF9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgICAgIG11eF9pbmRleCA9IGkKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlmIG11eF9pbmRleCA+PSAwOgotICAg
ICAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zID0gW10KLSAgICAgICAgICAg
ICAgICBmb3IgcHJvY2Vzc29yIGluIHByb2Nlc3NvcnNbOm11eF9pbmRleF06Ci0gICAgICAgICAg
ICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zLmFwcGVuZChwcm9jZXNzb3IucmVx
dWVzdCgpKQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3Iuc2V0X2FjdGl2ZShGYWxzZSkK
LSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IgPSBwcm9jZXNzb3Jz
W211eF9pbmRleF0KLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lm11eF9wcm9jZXNzb3Iu
c2V0X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRl
bnNpb25zKQotICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHByb2Nl
c3NvcjogcHJvY2Vzc29yLmlzX2FjdGl2ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc29ycykKLQotICAgICAgICAgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJl
YW1PcHRpb25zKCkKLQotICAgICAgICAgICAgZm9yIGluZGV4LCBwcm9jZXNzb3IgaW4gZW51bWVy
YXRlKHByb2Nlc3NvcnMpOgotICAgICAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0
aXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBl
eHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0g
ICAgICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3Jlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgICMgUmVqZWN0ZWQuCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zLmFwcGVuZChleHRlbnNpb25fcmVzcG9u
c2UpCi0KLSAgICAgICAgICAgICAgICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3Ry
ZWFtX29wdGlvbnMpCi0KLSAgICAgICAgICAgICAgICBpZiBub3QgaXNfY29tcHJlc3Npb25fZXh0
ZW5zaW9uKHByb2Nlc3Nvci5uYW1lKCkpOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQot
Ci0gICAgICAgICAgICAgICAgIyBJbmFjdGl2YXRlIGFsbCBvZiB0aGUgZm9sbG93aW5nIGNvbXBy
ZXNzaW9uIGV4dGVuc2lvbnMuCi0gICAgICAgICAgICAgICAgZm9yIGogaW4geHJhbmdlKGluZGV4
ICsgMSwgbGVuKHByb2Nlc3NvcnMpKToKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNfY29tcHJl
c3Npb25fZXh0ZW5zaW9uKHByb2Nlc3NvcnNbal0ubmFtZSgpKToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3NvcnNbal0uc2V0X2FjdGl2ZShGYWxzZSkKLQotICAgICAgICAgICAgaWYg
bGVuKGFjY2VwdGVkX2V4dGVuc2lvbnMpID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX2V4dGVuc2lvbnMgPSBhY2NlcHRlZF9leHRlbnNpb25zCi0gICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnRXh0ZW5zaW9ucyBhY2Nl
cHRlZDogJXInLAotICAgICAgICAgICAgICAgICAgICBtYXAoY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlci5uYW1lLCBhY2NlcHRlZF9leHRlbnNpb25zKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zID0gTm9uZQotCi0gICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX3N0cmVhbSA9IHNlbGYuX2NyZWF0ZV9zdHJlYW0oc3RyZWFt
X29wdGlvbnMpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3By
b3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0Lndz
X3Byb3RvY29sIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdkb19leHRyYV9oYW5kc2hha2UgbXVz
dCBjaG9vc2Ugb25lIHN1YnByb3RvY29sIGZyb20gJwotICAgICAgICAgICAgICAgICAgICAgICAg
J3dzX3JlcXVlc3RlZF9wcm90b2NvbHMgYW5kIHNldCBpdCB0byB3c19wcm90b2NvbCcpCi0gICAg
ICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woc2VsZi5fcmVxdWVzdC53c19wcm90b2Nv
bCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAg
ICAgICAgJ1N1YnByb3RvY29sIGFjY2VwdGVkOiAlcicsCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICd3c19wcm90b2NvbCBtdXN0IGJlIE5vbmUgd2hlbiB0aGUgY2xpZW50IGRpZG5cJ3QgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QgYW55IHN1YnByb3RvY29sJykKLQotICAg
ICAgICAgICAgc2VsZi5fc2VuZF9oYW5kc2hha2UoYWNjZXB0KQotICAgICAgICBleGNlcHQgSGFu
ZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBpZiBub3QgZS5zdGF0dXM6Ci0gICAg
ICAgICAgICAgICAgIyBGYWxsYmFjayB0byA0MDAgYmFkIHJlcXVlc3QgYnkgZGVmYXVsdC4KLSAg
ICAgICAgICAgICAgICBlLnN0YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVAot
ICAgICAgICAgICAgcmFpc2UgZQotCi0gICAgZGVmIF9nZXRfb3JpZ2luKHNlbGYpOgotICAgICAg
ICBvcmlnaW5faGVhZGVyID0gY29tbW9uLk9SSUdJTl9IRUFERVIKLSAgICAgICAgb3JpZ2luID0g
c2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChvcmlnaW5faGVhZGVyKQotICAgICAgICBpZiBv
cmlnaW4gaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IHJl
cXVlc3QgZG9lcyBub3QgaGF2ZSBvcmlnaW4gaGVhZGVyJykKLSAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19vcmlnaW4gPSBvcmlnaW4KLQotICAgIGRlZiBfY2hlY2tfdmVyc2lvbihzZWxmKToKLSAg
ICAgICAgdmVyc2lvbiA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9W
RVJTSU9OX0hFQURFUikKLSAgICAgICAgaWYgdmVyc2lvbiA9PSBfVkVSU0lPTl9MQVRFU1RfU1RS
SU5HOgotICAgICAgICAgICAgcmV0dXJuIF9WRVJTSU9OX0xBVEVTVAotCi0gICAgICAgIGlmIHZl
cnNpb24uZmluZCgnLCcpID49IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIHZlcnNpb25zICglcikgYXJlIG5vdCBhbGxv
d2VkIGZvciBoZWFkZXIgJXMnICUKLSAgICAgICAgICAgICAgICAodmVyc2lvbiwgY29tbW9uLlNF
Q19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpLAotICAgICAgICAgICAgICAgIHN0YXR1cz1jb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgIHJhaXNlIFZlcnNpb25FeGNlcHRp
b24oCi0gICAgICAgICAgICAnVW5zdXBwb3J0ZWQgdmVyc2lvbiAlciBmb3IgaGVhZGVyICVzJyAl
Ci0gICAgICAgICAgICAodmVyc2lvbiwgY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFE
RVIpLAotICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb25zPScsICcuam9pbihtYXAoc3RyLCBf
U1VQUE9SVEVEX1ZFUlNJT05TKSkpCi0KLSAgICBkZWYgX3NldF9wcm90b2NvbChzZWxmKToKLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUKLQotICAgICAgICBwcm90b2Nv
bF9oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAotICAgICAgICAgICAgY29t
bW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSKQotCi0gICAgICAgIGlmIHByb3RvY29s
X2hlYWRlciBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRf
cHJvdG9jb2xzID0gTm9uZQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzID0gcGFyc2VfdG9rZW5fbGlzdCgKLSAgICAgICAg
ICAgIHByb3RvY29sX2hlYWRlcikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTdWJwcm90
b2NvbHMgcmVxdWVzdGVkOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMpCi0KLSAgICBkZWYgX3BhcnNlX2V4dGVuc2lv
bnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbnNfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFk
ZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNf
SEVBREVSKQotICAgICAgICBpZiBub3QgZXh0ZW5zaW9uc19oZWFkZXI6Ci0gICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0gTm9uZQotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1
ZXN0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAg
ICAgIGV4dGVuc2lvbnNfaGVhZGVyKQotICAgICAgICBleGNlcHQgY29tbW9uLkV4dGVuc2lvblBh
cnNpbmdFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5z
aW9ucyBoZWFkZXI6ICVyJyAlIGUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ0V4dGVuc2lvbnMgcmVxdWVzdGVkOiAlcicsCi0gICAgICAgICAgICBtYXAoY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlci5uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMpKQotCi0gICAgZGVmIF92YWxpZGF0ZV9rZXkoc2Vs
Ziwga2V5KToKLSAgICAgICAgaWYga2V5LmZpbmQoJywnKSA+PSAwOgotICAgICAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdSZXF1ZXN0IGhhcyBtdWx0aXBsZSAlcyBoZWFkZXIgbGlu
ZXMgb3IgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWlucyBp
bGxlZ2FsIGNoYXJhY3RlciBcJyxcJzogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKLQotICAg
ICAgICAjIFZhbGlkYXRlCi0gICAgICAgIGtleV9pc192YWxpZCA9IEZhbHNlCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgICMgVmFsaWRhdGUga2V5IGJ5IHF1aWNrIHJlZ2V4IG1hdGNoIGJlZm9y
ZSBwYXJzaW5nIGJ5IGJhc2U2NAotICAgICAgICAgICAgIyBtb2R1bGUuIEJlY2F1c2UgYmFzZTY0
IG1vZHVsZSBza2lwcyBpbnZhbGlkIGNoYXJhY3RlcnMsIHdlIGhhdmUKLSAgICAgICAgICAgICMg
dG8gZG8gdGhpcyBpbiBhZHZhbmNlIHRvIG1ha2UgdGhpcyBzZXJ2ZXIgc3RyaWN0bHkgcmVqZWN0
IGlsbGVnYWwKLSAgICAgICAgICAgICMga2V5cy4KLSAgICAgICAgICAgIGlmIF9TRUNfV0VCU09D
S0VUX0tFWV9SRUdFWC5tYXRjaChrZXkpOgotICAgICAgICAgICAgICAgIGRlY29kZWRfa2V5ID0g
YmFzZTY0LmI2NGRlY29kZShrZXkpCi0gICAgICAgICAgICAgICAgaWYgbGVuKGRlY29kZWRfa2V5
KSA9PSAxNjoKLSAgICAgICAgICAgICAgICAgICAga2V5X2lzX3ZhbGlkID0gVHJ1ZQotICAgICAg
ICBleGNlcHQgVHlwZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgaWYg
bm90IGtleV9pc192YWxpZDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlcicgJQotICAg
ICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLCBrZXkpKQotCi0g
ICAgICAgIHJldHVybiBkZWNvZGVkX2tleQotCi0gICAgZGVmIF9nZXRfa2V5KHNlbGYpOgotICAg
ICAgICBrZXkgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3QsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIpCi0KLSAgICAgICAgZGVjb2RlZF9r
ZXkgPSBzZWxmLl92YWxpZGF0ZV9rZXkoa2V5KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAgICBjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAgICAgICAga2V5LAotICAgICAgICAgICAgdXRpbC5o
ZXhpZnkoZGVjb2RlZF9rZXkpKQotCi0gICAgICAgIHJldHVybiBrZXkKLQotICAgIGRlZiBfY3Jl
YXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHJldHVybiBTdHJlYW0o
c2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYgX2NyZWF0ZV9oYW5kc2hh
a2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgcmVzcG9uc2UgPSBbXQotCi0gICAg
ICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxu
JykKLQotICAgICAgICAjIFdlYlNvY2tldCBoZWFkZXJzCi0gICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLCBjb21t
b24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3Jt
YXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24u
VVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0
X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIs
IGFjY2VwdCkpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAg
ICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIsCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAgIGlmIChzZWxmLl9yZXF1
ZXN0LndzX2V4dGVuc2lvbnMgaXMgbm90IE5vbmUgYW5kCi0gICAgICAgICAgICBsZW4oc2VsZi5f
cmVxdWVzdC53c19leHRlbnNpb25zKSAhPSAwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VY
VEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9u
cyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKLQotICAgICAgICAjIEhlYWRlcnMgbm90
IHNwZWNpZmljIGZvciBXZWJTb2NrZXQKLSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYu
X3JlcXVlc3QuZXh0cmFfaGVhZGVyczoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3Jt
YXRfaGVhZGVyKG5hbWUsIHZhbHVlKSkKLQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4n
KQotCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3BvbnNlKQotCi0gICAgZGVmIF9zZW5kX2hh
bmRzaGFrZShzZWxmLCBhY2NlcHQpOgotICAgICAgICByYXdfcmVzcG9uc2UgPSBzZWxmLl9jcmVh
dGVfaGFuZHNoYWtlX3Jlc3BvbnNlKGFjY2VwdCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXRlKHJhd19yZXNwb25zZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdT
ZW50IHNlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmF3X3Jlc3BvbnNlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg3NTc3MTdhNjM5YmFjM2RiMDVkNGNiMzAyN2UwNTVmZGJmN2YzY2YuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
aGFuZHNoYWtlL2h5YmkwMC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi0jIENv
cHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNo
YWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAw
LgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwCi0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3Vn
aAotIyBtb2RfcHl0aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9u
bHkgaW4gY29ubmVjdGlvbgotIyBoYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBv
dGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwKLSMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qg
c3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3Jp
dGluZy9yZWFkaW5nLgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJ1
Y3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBI
YW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5fYmFzZSBpbXBvcnQgZ2V0X2RlZmF1bHRfcG9ydAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFuZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBwYXJzZV9ob3N0X2hlYWRlcgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVh
ZGVyCi0KLQotX01BTkRBVE9SWV9IRUFERVJTID0gWwotICAgICMga2V5LCBleHBlY3RlZCB2YWx1
ZSBvciBOb25lCi0gICAgW2NvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9V
UEdSQURFX1RZUEVfSElYSUU3NV0sCi0gICAgW2NvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29t
bW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFXSwKLV0KLQotCi1kZWYgX3ZhbGlkYXRlX3N1YnBy
b3RvY29sKHN1YnByb3RvY29sKToKLSAgICAiIiJDaGVja3MgaWYgY2hhcmFjdGVycyBpbiBzdWJw
cm90b2NvbCBhcmUgaW4gcmFuZ2UgYmV0d2VlbiBVKzAwMjAgYW5kCi0gICAgVSswMDdFLiBBIHZh
bHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGZpZWxkIG5lZWQgdG8gc2F0aXNmeSB0
aGlzCi0gICAgcmVxdWlyZW1lbnQuCi0KLSAgICBTZWUgdGhlIFNlY3Rpb24gNC4xLiBPcGVuaW5n
IGhhbmRzaGFrZSBvZiB0aGUgc3BlYy4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBzdWJwcm90b2Nv
bDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHN1YnByb3RvY29s
IG5hbWU6IGVtcHR5JykKLQotICAgICMgUGFyYW1ldGVyIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2Ug
VSswMDIwIHRvIFUrMDA3RS4KLSAgICBmb3IgYyBpbiBzdWJwcm90b2NvbDoKLSAgICAgICAgaWYg
bm90IDB4MjAgPD0gb3JkKGMpIDw9IDB4N2U6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lsbGVnYWwgY2hhcmFjdGVyIGluIHN1YnByb3Rv
Y29sIG5hbWU6ICVyJyAlIGMpCi0KLQotZGVmIF9jaGVja19oZWFkZXJfbGluZXMocmVxdWVzdCwg
bWFuZGF0b3J5X2hlYWRlcnMpOgotICAgIGNoZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KQotCi0g
ICAgIyBUaGUgZXhwZWN0ZWQgZmllbGQgbmFtZXMsIGFuZCB0aGUgbWVhbmluZyBvZiB0aGVpciBj
b3JyZXNwb25kaW5nCi0gICAgIyB2YWx1ZXMsIGFyZSBhcyBmb2xsb3dzLgotICAgICMgIHxVcGdy
YWRlfCBhbmQgfENvbm5lY3Rpb258Ci0gICAgZm9yIGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gbWFu
ZGF0b3J5X2hlYWRlcnM6Ci0gICAgICAgIHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVz
dCwga2V5LCBleHBlY3RlZF92YWx1ZSkKLQotCi1kZWYgX2J1aWxkX2xvY2F0aW9uKHJlcXVlc3Qp
OgotICAgICIiIkJ1aWxkIFdlYlNvY2tldCBsb2NhdGlvbiBmb3IgcmVxdWVzdC4iIiIKLQotICAg
IGxvY2F0aW9uX3BhcnRzID0gW10KLSAgICBpZiByZXF1ZXN0LmlzX2h0dHBzKCk6Ci0gICAgICAg
IGxvY2F0aW9uX3BhcnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FKQot
ICAgIGVsc2U6Ci0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tF
VF9TQ0hFTUUpCi0gICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKCc6Ly8nKQotICAgIGhvc3QsIHBv
cnQgPSBwYXJzZV9ob3N0X2hlYWRlcihyZXF1ZXN0KQotICAgIGNvbm5lY3Rpb25fcG9ydCA9IHJl
cXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRyWzFdCi0gICAgaWYgcG9ydCAhPSBjb25uZWN0aW9u
X3BvcnQ6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSGVhZGVyL2Nvbm5lY3Rp
b24gcG9ydCBtaXNtYXRjaDogJWQvJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChwb3J0LCBjb25uZWN0aW9uX3BvcnQpKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZCho
b3N0KQotICAgIGlmIChwb3J0ICE9IGdldF9kZWZhdWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygp
KSk6Ci0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZCgnOicpCi0gICAgICAgIGxvY2F0aW9u
X3BhcnRzLmFwcGVuZChzdHIocG9ydCkpCi0gICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHJlcXVl
c3QudW5wYXJzZWRfdXJpKQotICAgIHJldHVybiAnJy5qb2luKGxvY2F0aW9uX3BhcnRzKQotCi0K
LWNsYXNzIEhhbmRzaGFrZXIob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9j
ZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIGRpc3BhdGNoZXI6IERp
c3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotCi0gICAgICAgIEhhbmRzaGFrZXIgd2ls
bCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKLSAgICAg
ICAgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGls
LmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVz
dAotICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgotCi0gICAgZGVmIGRvX2hh
bmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybSBXZWJTb2NrZXQgSGFuZHNoYWtlLgot
Ci0gICAgICAgIE9uIF9yZXF1ZXN0LCB3ZSBzZXQKLSAgICAgICAgICAgIHdzX3Jlc291cmNlLCB3
c19wcm90b2NvbCwgd3NfbG9jYXRpb24sIHdzX29yaWdpbiwgd3NfY2hhbGxlbmdlLAotICAgICAg
ICAgICAgd3NfY2hhbGxlbmdlX21kNTogV2ViU29ja2V0IGhhbmRzaGFrZSBpbmZvcm1hdGlvbi4K
LSAgICAgICAgICAgIHdzX3N0cmVhbTogRnJhbWUgZ2VuZXJhdGlvbi9wYXJzaW5nIGNsYXNzLgot
ICAgICAgICAgICAgd3NfdmVyc2lvbjogUHJvdG9jb2wgdmVyc2lvbi4KLQotICAgICAgICBSYWlz
ZXM6Ci0gICAgICAgICAgICBIYW5kc2hha2VFeGNlcHRpb246IHdoZW4gYW55IGVycm9yIGhhcHBl
bmVkIGluIHBhcnNpbmcgdGhlIG9wZW5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGFuZHNoYWtlIHJlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgNS4xIFJlYWRp
bmcgdGhlIGNsaWVudCdzIG9wZW5pbmcgaGFuZHNoYWtlLgotICAgICAgICAjIGRpc3BhdGNoZXIg
c2V0cyBpdCBpbiBzZWxmLl9yZXF1ZXN0LgotICAgICAgICBfY2hlY2tfaGVhZGVyX2xpbmVzKHNl
bGYuX3JlcXVlc3QsIF9NQU5EQVRPUllfSEVBREVSUykKLSAgICAgICAgc2VsZi5fc2V0X3Jlc291
cmNlKCkKLSAgICAgICAgc2VsZi5fc2V0X3N1YnByb3RvY29sKCkKLSAgICAgICAgc2VsZi5fc2V0
X2xvY2F0aW9uKCkKLSAgICAgICAgc2VsZi5fc2V0X29yaWdpbigpCi0gICAgICAgIHNlbGYuX3Nl
dF9jaGFsbGVuZ2VfcmVzcG9uc2UoKQotICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2xfdmVyc2lv
bigpCi0KLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5f
cmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9zZW5kX2hhbmRzaGFrZSgpCi0KLSAgICBkZWYgX3Nl
dF9yZXNvdXJjZShzZWxmKToKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNl
bGYuX3JlcXVlc3QudXJpCi0KLSAgICBkZWYgX3NldF9zdWJwcm90b2NvbChzZWxmKToKLSAgICAg
ICAgIyB8U2VjLVdlYlNvY2tldC1Qcm90b2NvbHwKLSAgICAgICAgc3VicHJvdG9jb2wgPSBzZWxm
Ll9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NL
RVRfUFJPVE9DT0xfSEVBREVSKQotICAgICAgICBpZiBzdWJwcm90b2NvbCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCkKLSAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCA9IHN1YnByb3RvY29sCi0KLSAgICBkZWYgX3NldF9s
b2NhdGlvbihzZWxmKToKLSAgICAgICAgIyB8SG9zdHwKLSAgICAgICAgaG9zdCA9IHNlbGYuX3Jl
cXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLkhPU1RfSEVBREVSKQotICAgICAgICBpZiBob3N0
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbiA9IF9i
dWlsZF9sb2NhdGlvbihzZWxmLl9yZXF1ZXN0KQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNr
IGhvc3QgaXMgdGhpcyBob3N0LgotCi0gICAgZGVmIF9zZXRfb3JpZ2luKHNlbGYpOgotICAgICAg
ICAjIHxPcmlnaW58Ci0gICAgICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5n
ZXQoY29tbW9uLk9SSUdJTl9IRUFERVIpCi0gICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0gb3JpZ2luCi0KLSAgICBkZWYg
X3NldF9wcm90b2NvbF92ZXJzaW9uKHNlbGYpOgotICAgICAgICAjIHxTZWMtV2ViU29ja2V0LURy
YWZ0fAotICAgICAgICBkcmFmdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9u
LlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSKQotICAgICAgICBpZiBkcmFmdCBpcyBub3QgTm9u
ZSBhbmQgZHJhZnQgIT0gJzAnOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9u
KCdJbGxlZ2FsIHZhbHVlIGZvciAlczogJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFmdCkpCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJzaW9uIGlzIEh5QmkgMDAnKQotICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1KHNlbGYuX3JlcXVlc3QsIFRydWUpCi0K
LSAgICBkZWYgX3NldF9jaGFsbGVuZ2VfcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgICMgNS4yIDQt
OC4KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UgPSBzZWxmLl9nZXRfY2hhbGxl
bmdlKCkKLSAgICAgICAgIyA1LjIgOS4gbGV0IC9yZXNwb25zZS8gYmUgdGhlIE1ENSBmaW50ZXJw
cmludCBvZiAvY2hhbGxlbmdlLwotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9t
ZDUgPSB1dGlsLm1kNV9oYXNoKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVu
Z2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdD
aGFsbGVuZ2U6ICVyICglcyknLAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVu
Z2UsCi0gICAgICAgICAgICB1dGlsLmhleGlmeShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2UgcmVz
cG9uc2U6ICVyICglcyknLAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2Vf
bWQ1LAotICAgICAgICAgICAgdXRpbC5oZXhpZnkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2Vf
bWQ1KSkKLQotICAgIGRlZiBfZ2V0X2tleV92YWx1ZShzZWxmLCBrZXlfZmllbGQpOgotICAgICAg
ICBrZXlfdmFsdWUgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBrZXlfZmll
bGQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclczogJXInLCBrZXlfZmllbGQsIGtl
eV92YWx1ZSkKLQotICAgICAgICAjIDUuMiA0LiBsZXQgL2tleS1udW1iZXJfbi8gYmUgdGhlIGRp
Z2l0cyAoY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UKLSAgICAgICAgIyBVKzAwMzAgRElHSVQgWkVS
TyAoMCkgdG8gVSswMDM5IERJR0lUIE5JTkUgKDkpKSBpbiAva2V5X24vLAotICAgICAgICAjIGlu
dGVycHJldGVkIGFzIGEgYmFzZSB0ZW4gaW50ZWdlciwgaWdub3JpbmcgYWxsIG90aGVyIGNoYXJh
Y3RlcnMKLSAgICAgICAgIyBpbiAva2V5X24vLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBr
ZXlfbnVtYmVyID0gaW50KHJlLnN1YigiXFxEIiwgIiIsIGtleV92YWx1ZSkpCi0gICAgICAgIGV4
Y2VwdDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29u
dGFpbnMgbm8gZGlnaXQnICUga2V5X2ZpZWxkKQotICAgICAgICAjIDUuMiA1LiBsZXQgL3NwYWNl
c19uLyBiZSB0aGUgbnVtYmVyIG9mIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzCi0gICAgICAgICMg
aW4gL2tleV9uLy4KLSAgICAgICAgc3BhY2VzID0gcmUuc3VibigiICIsICIiLCBrZXlfdmFsdWUp
WzFdCi0gICAgICAgIGlmIHNwYWNlcyA9PSAwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKCclcyBmaWVsZCBjb250YWlucyBubyBzcGFjZScgJSBrZXlfZmllbGQpCi0KLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJyVzOiBLZXktbnVtYmVyIGlz
ICVkIGFuZCBudW1iZXIgb2Ygc3BhY2VzIGlzICVkJywKLSAgICAgICAgICAgIGtleV9maWVsZCwg
a2V5X251bWJlciwgc3BhY2VzKQotCi0gICAgICAgICMgNS4yIDYuIGlmIC9rZXktbnVtYmVyX24v
IGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBvZiAvc3BhY2VzX24vCi0gICAgICAgICMgdGhl
biBhYm9ydCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uCi0gICAgICAgIGlmIGtleV9udW1iZXIg
JSBzcGFjZXMgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnJXM6IEtleS1udW1iZXIgKCVkKSBpcyBub3QgYW4gaW50ZWdyYWwgbXVs
dGlwbGUgb2Ygc3BhY2VzICcKLSAgICAgICAgICAgICAgICAnKCVkKScgJSAoa2V5X2ZpZWxkLCBr
ZXlfbnVtYmVyLCBzcGFjZXMpKQotICAgICAgICAjIDUuMiA3LiBsZXQgL3BhcnRfbi8gYmUgL2tl
eS1udW1iZXJfbi8gZGl2aWRlZCBieSAvc3BhY2VzX24vLgotICAgICAgICBwYXJ0ID0ga2V5X251
bWJlciAvIHNwYWNlcwotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzOiBQYXJ0IGlzICVk
Jywga2V5X2ZpZWxkLCBwYXJ0KQotICAgICAgICByZXR1cm4gcGFydAotCi0gICAgZGVmIF9nZXRf
Y2hhbGxlbmdlKHNlbGYpOgotICAgICAgICAjIDUuMiA0LTcuCi0gICAgICAgIGtleTEgPSBzZWxm
Ll9nZXRfa2V5X3ZhbHVlKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVSKQotICAgICAg
ICBrZXkyID0gc2VsZi5fZ2V0X2tleV92YWx1ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hF
QURFUikKLSAgICAgICAgIyA1LjIgOC4gbGV0IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0
aW9uIG9mIC9wYXJ0XzEvLAotICAgICAgICBjaGFsbGVuZ2UgPSAnJwotICAgICAgICBjaGFsbGVu
Z2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5MSkgICMgbmV0d29yayBieXRlb3JkZXIgaW50Ci0g
ICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBrZXkyKSAgIyBuZXR3b3JrIGJ5
dGVvcmRlciBpbnQKLSAgICAgICAgY2hhbGxlbmdlICs9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlv
bi5yZWFkKDgpCi0gICAgICAgIHJldHVybiBjaGFsbGVuZ2UKLQotICAgIGRlZiBfc2VuZF9oYW5k
c2hha2Uoc2VsZik6Ci0gICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICAjIDUuMiAxMC4g
c2VuZCB0aGUgZm9sbG93aW5nIGxpbmUuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8x
LjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJykKLQotICAgICAgICAjIDUu
MiAxMS4gc2VuZCB0aGUgZm9sbG93aW5nIGZpZWxkcyB0byB0aGUgY2xpZW50LgotICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURF
X0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSkpCi0gICAgICAg
IHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLkNPTk5F
Q1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX0xPQ0FUSU9OX0hFQURFUiwgc2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbikpCi0gICAg
ICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlNF
Q19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiwgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4pKQotICAg
ICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sOgotICAgICAgICAgICAgcmVzcG9uc2Uu
YXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NL
RVRfUFJPVE9DT0xfSEVBREVSLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJv
dG9jb2wpKQotICAgICAgICAjIDUuMiAxMi4gc2VuZCB0d28gYnl0ZXMgMHgwRCAweDBBLgotICAg
ICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4nKQotICAgICAgICAjIDUuMiAxMy4gc2VuZCAvcmVz
cG9uc2UvCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5n
ZV9tZDUpCi0KLSAgICAgICAgcmF3X3Jlc3BvbnNlID0gJycuam9pbihyZXNwb25zZSkKLSAgICAg
ICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKHJhd19yZXNwb25zZSkKLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXIn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3X3Jlc3BvbnNlKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTdhNDhjNjI3YmJkMjgwMzZjZTZi
NzM3YzY1YWJkM2VkMDZiZWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFr
ZS9fYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA2ZTc2Mzg1OTc5ODVhOTZhNGMwMGVhMDA1MmEwZDM3MTdlNDQwM2MuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVh
ZGVycGFyc2VyaGFuZGxlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1NyArMCwwIEBACi0jIENv
cHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi0iIiJQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIGZvciBtb2RfcHl3
ZWJzb2NrZXQuCi0KLUFwYWNoZSBIVFRQIFNlcnZlciBhbmQgbW9kX3B5dGhvbiBtdXN0IGJlIGNv
bmZpZ3VyZWQgc3VjaCB0aGF0IHRoaXMKLWZ1bmN0aW9uIGlzIGNhbGxlZCB0byBoYW5kbGUgV2Vi
U29ja2V0IHJlcXVlc3QuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotCi1mcm9tIG1vZF9weXRo
b24gaW1wb3J0IGFwYWNoZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQot
IyBQeXRob25PcHRpb24gdG8gc3BlY2lmeSB0aGUgaGFuZGxlciByb290IGRpcmVjdG9yeS4KLV9Q
WU9QVF9IQU5ETEVSX1JPT1QgPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCcKLQotIyBQ
eXRob25PcHRpb24gdG8gc3BlY2lmeSB0aGUgaGFuZGxlciBzY2FuIGRpcmVjdG9yeS4KLSMgVGhp
cyBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4KLSMgVGhlIGRl
ZmF1bHQgaXMgdGhlIHJvb3QgZGlyZWN0b3J5LgotX1BZT1BUX0hBTkRMRVJfU0NBTiA9ICdtb2Rf
cHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuJwotCi0jIFB5dGhvbk9wdGlvbiB0byBhbGxvdyBoYW5k
bGVycyB3aG9zZSBjYW5vbmljYWwgcGF0aCBpcwotIyBub3QgdW5kZXIgdGhlIHJvb3QgZGlyZWN0
b3J5LiBJdCdzIGRpc2FsbG93ZWQgYnkgZGVmYXVsdC4KLSMgU2V0IHRoaXMgb3B0aW9uIHdpdGgg
dmFsdWUgb2YgJ3llcycgdG8gYWxsb3cuCi1fUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9S
T09UID0gKAotICAgICdtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290
X2RpcicpCi0jIE1hcCBmcm9tIHZhbHVlcyB0byB0aGVpciBtZWFuaW5ncy4gJ1llcycgYW5kICdO
bycgYXJlIGFsbG93ZWQganVzdCBmb3IKLSMgY29tcGF0aWJpbGl0eS4KLV9QWU9QVF9BTExPV19I
QU5ETEVSU19PVVRTSURFX1JPT1RfREVGSU5JVElPTiA9IHsKLSAgICAnb2ZmJzogRmFsc2UsICdu
byc6IEZhbHNlLCAnb24nOiBUcnVlLCAneWVzJzogVHJ1ZX0KLQotIyAoT2Jzb2xldGUgb3B0aW9u
LiBJZ25vcmVkLikKLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdG8gYWxsb3cgaGFuZHNoYWtl
IGRlZmluZWQgaW4gSGl4aWUgNzUgdmVyc2lvbgotIyBwcm90b2NvbC4gVGhlIGRlZmF1bHQgaXMg
Tm9uZSAoT2ZmKQotX1BZT1BUX0FMTE9XX0RSQUZUNzUgPSAnbW9kX3B5d2Vic29ja2V0LmFsbG93
X2RyYWZ0NzUnCi0jIE1hcCBmcm9tIHZhbHVlcyB0byB0aGVpciBtZWFuaW5ncy4KLV9QWU9QVF9B
TExPV19EUkFGVDc1X0RFRklOSVRJT04gPSB7J29mZic6IEZhbHNlLCAnb24nOiBUcnVlfQotCi0K
LWNsYXNzIEFwYWNoZUxvZ0hhbmRsZXIobG9nZ2luZy5IYW5kbGVyKToKLQotICAgICIiIldyYXBw
ZXIgbG9nZ2luZy5IYW5kbGVyIHRvIGVtaXQgbG9nIG1lc3NhZ2UgdG8gYXBhY2hlJ3MgZXJyb3Iu
bG9nLiIiIgotCi0gICAgX0xFVkVMUyA9IHsKLSAgICAgICAgbG9nZ2luZy5ERUJVRzogYXBhY2hl
LkFQTE9HX0RFQlVHLAotICAgICAgICBsb2dnaW5nLklORk86IGFwYWNoZS5BUExPR19JTkZPLAot
ICAgICAgICBsb2dnaW5nLldBUk5JTkc6IGFwYWNoZS5BUExPR19XQVJOSU5HLAotICAgICAgICBs
b2dnaW5nLkVSUk9SOiBhcGFjaGUuQVBMT0dfRVJSLAotICAgICAgICBsb2dnaW5nLkNSSVRJQ0FM
OiBhcGFjaGUuQVBMT0dfQ1JJVCwKLSAgICAgICAgfQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlcXVlc3Q9Tm9uZSk6Ci0gICAgICAgIGxvZ2dpbmcuSGFuZGxlci5fX2luaXRfXyhzZWxmKQot
ICAgICAgICBzZWxmLl9sb2dfZXJyb3IgPSBhcGFjaGUubG9nX2Vycm9yCi0gICAgICAgIGlmIHJl
cXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dfZXJyb3IgPSByZXF1ZXN0
LmxvZ19lcnJvcgotCi0gICAgICAgICMgVGltZSBhbmQgbGV2ZWwgd2lsbCBiZSBwcmludGVkIGJ5
IEFwYWNoZS4KLSAgICAgICAgc2VsZi5fZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUo
bmFtZSlzOiAlKG1lc3NhZ2UpcycpCi0KLSAgICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgotICAg
ICAgICBhcGFjaGVfbGV2ZWwgPSBhcGFjaGUuQVBMT0dfREVCVUcKLSAgICAgICAgaWYgcmVjb3Jk
LmxldmVsbm8gaW4gQXBhY2hlTG9nSGFuZGxlci5fTEVWRUxTOgotICAgICAgICAgICAgYXBhY2hl
X2xldmVsID0gQXBhY2hlTG9nSGFuZGxlci5fTEVWRUxTW3JlY29yZC5sZXZlbG5vXQotCi0gICAg
ICAgIG1zZyA9IHNlbGYuX2Zvcm1hdHRlci5mb3JtYXQocmVjb3JkKQotCi0gICAgICAgICMgInNl
cnZlciIgcGFyYW1ldGVyIG11c3QgYmUgcGFzc2VkIHRvIGhhdmUgImxldmVsIiBwYXJhbWV0ZXIg
d29yay4KLSAgICAgICAgIyBJZiBvbmx5ICJsZXZlbCIgcGFyYW1ldGVyIGlzIHBhc3NlZCwgbm90
aGluZyBzaG93cyB1cCBvbiBBcGFjaGUncwotICAgICAgICAjIGxvZy4gSG93ZXZlciwgYXQgdGhp
cyBwb2ludCwgd2UgY2Fubm90IGdldCB0aGUgc2VydmVyIG9iamVjdCBvZiB0aGUKLSAgICAgICAg
IyB2aXJ0dWFsIGhvc3Qgd2hpY2ggd2lsbCBwcm9jZXNzIFdlYlNvY2tldCByZXF1ZXN0cy4gVGhl
IG9ubHkgc2VydmVyCi0gICAgICAgICMgb2JqZWN0IHdlIGNhbiBnZXQgaGVyZSBpcyBhcGFjaGUu
bWFpbl9zZXJ2ZXIuIEJ1dCBXaGVyZXZlciAoc2VydmVyCi0gICAgICAgICMgY29uZmlndXJhdGlv
biBjb250ZXh0IG9yIHZpcnR1YWwgaG9zdCBjb250ZXh0KSB3ZSBwdXQKLSAgICAgICAgIyBQeXRo
b25IZWFkZXJQYXJzZXJIYW5kbGVyIGRpcmVjdGl2ZSwgYXBhY2hlLm1haW5fc2VydmVyIGp1c3Qg
cG9pbnRzCi0gICAgICAgICMgdGhlIG1haW4gc2VydmVyIGluc3RhbmNlIChub3QgYW55IG9mIHZp
cnR1YWwgc2VydmVyIGluc3RhbmNlKS4gVGhlbiwKLSAgICAgICAgIyBBcGFjaGUgZm9sbG93cyBM
b2dMZXZlbCBkaXJlY3RpdmUgaW4gdGhlIHNlcnZlciBjb25maWd1cmF0aW9uIGNvbnRleHQKLSAg
ICAgICAgIyB0byBmaWx0ZXIgbG9ncy4gU28sIHdlIG5lZWQgdG8gc3BlY2lmeSBMb2dMZXZlbCBp
biB0aGUgc2VydmVyCi0gICAgICAgICMgY29uZmlndXJhdGlvbiBjb250ZXh0LiBFdmVuIGlmIHdl
IHNwZWNpZnkgIkxvZ0xldmVsIGRlYnVnIiBpbiB0aGUKLSAgICAgICAgIyB2aXJ0dWFsIGhvc3Qg
Y29udGV4dCB3aGljaCBhY3R1YWxseSBoYW5kbGVzIFdlYlNvY2tldCBjb25uZWN0aW9ucywKLSAg
ICAgICAgIyBERUJVRyBsZXZlbCBsb2dzIG5ldmVyIHNob3cgdXAgdW5sZXNzICJMb2dMZXZlbCBk
ZWJ1ZyIgaXMgc3BlY2lmaWVkCi0gICAgICAgICMgaW4gdGhlIHNlcnZlciBjb25maWd1cmF0aW9u
IGNvbnRleHQuCi0gICAgICAgICMKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogUHJvdmlkZSBs
b2dnaW5nIG1ldGhvZHMgb24gcmVxdWVzdCBvYmplY3QuIFdoZW4KLSAgICAgICAgIyByZXF1ZXN0
IGlzIG1wX3JlcXVlc3Qgb2JqZWN0ICh3aGVuIHVzZWQgdG9nZXRoZXIgd2l0aCBBcGFjaGUpLCB0
aGUKLSAgICAgICAgIyBtZXRob2RzIGNhbGwgcmVxdWVzdC5sb2dfZXJyb3IgaW5kaXJlY3RseS4g
V2hlbiByZXF1ZXN0IGlzCi0gICAgICAgICMgX1N0YW5kYWxvbmVSZXF1ZXN0LCB0aGUgbWV0aG9k
cyBjYWxsIFB5dGhvbidzIGxvZ2dpbmcgZmFjaWxpdHkgd2hpY2gKLSAgICAgICAgIyB3ZSBjcmVh
dGUgaW4gc3RhbmRhbG9uZS5weS4KLSAgICAgICAgc2VsZi5fbG9nX2Vycm9yKG1zZywgYXBhY2hl
X2xldmVsLCBhcGFjaGUubWFpbl9zZXJ2ZXIpCi0KLQotZGVmIF9jb25maWd1cmVfbG9nZ2luZygp
OgotICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICAjIExvZ3MgYXJlIGZpbHRl
cmVkIGJ5IEFwYWNoZSBiYXNlZCBvbiBMb2dMZXZlbCBkaXJlY3RpdmUgaW4gQXBhY2hlCi0gICAg
IyBjb25maWd1cmF0aW9uIGZpbGUuIFdlIG11c3QganVzdCBwYXNzIGxvZ3MgZm9yIGFsbCBsZXZl
bHMgdG8KLSAgICAjIEFwYWNoZUxvZ0hhbmRsZXIuCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dp
bmcuREVCVUcpCi0gICAgbG9nZ2VyLmFkZEhhbmRsZXIoQXBhY2hlTG9nSGFuZGxlcigpKQotCi0K
LV9jb25maWd1cmVfbG9nZ2luZygpCi0KLV9MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKLQotCi1kZWYgX3BhcnNlX29wdGlvbihuYW1lLCB2YWx1ZSwgZGVmaW5pdGlvbik6Ci0g
ICAgIiIiUmV0dXJuIHRoZSBtZWFuaW5nIG9mIGEgb3B0aW9uIHZhbHVlLiIiIgotICAgIGlmIHZh
bHVlIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgbWVhbmluZyA9IGRlZmlu
aXRpb24uZ2V0KHZhbHVlLmxvd2VyKCkpCi0gICAgaWYgbWVhbmluZyBpcyBOb25lOgotICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgZm9yIFB5dGhvbk9wdGlvbiAlczogJXIn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkpCi0gICAgcmV0dXJuIG1l
YW5pbmcKLQotCi1kZWYgX2NyZWF0ZV9kaXNwYXRjaGVyKCk6Ci0gICAgIiIiSW5pdGlhbGl6ZSBh
IGRpc3BhdGNoLkRpc3BhdGNoZXIuIiIiCi0gICAgX0xPR0dFUi5pbmZvKCdJbml0aWFsaXppbmcg
RGlzcGF0Y2hlcicpCi0KLSAgICBvcHRpb25zID0gYXBhY2hlLm1haW5fc2VydmVyLmdldF9vcHRp
b25zKCkKLQotICAgIGhhbmRsZXJfcm9vdCA9IG9wdGlvbnMuZ2V0KF9QWU9QVF9IQU5ETEVSX1JP
T1QsIE5vbmUpCi0gICAgaWYgbm90IGhhbmRsZXJfcm9vdDoKLSAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdQeXRob25PcHRpb24gJXMgaXMgbm90IGRlZmluZWQnICUgX1BZT1BUX0hBTkRMRVJfUk9P
VCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19FUlIpCi0KLSAgICBoYW5k
bGVyX3NjYW4gPSBvcHRpb25zLmdldChfUFlPUFRfSEFORExFUl9TQ0FOLCBoYW5kbGVyX3Jvb3Qp
Ci0KLSAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3QgPSBfcGFyc2Vfb3B0aW9uKAotICAg
ICAgICBfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09ULAotICAgICAgICBvcHRpb25z
LmdldChfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UKSwKLSAgICAgICAgX1BZT1BU
X0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVF9ERUZJTklUSU9OKQotCi0gICAgZGlzcGF0Y2hl
ciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoCi0gICAgICAgIGhhbmRsZXJfcm9vdCwgaGFuZGxlcl9z
Y2FuLCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3QpCi0KLSAgICBmb3Igd2FybmluZyBpbiBk
aXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpOgotICAgICAgICBhcGFjaGUubG9nX2Vycm9yKAot
ICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogV2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzog
JXMnICUgd2FybmluZywKLSAgICAgICAgICAgIGFwYWNoZS5BUExPR19XQVJOSU5HKQotCi0gICAg
cmV0dXJuIGRpc3BhdGNoZXIKLQotCi0jIEluaXRpYWxpemUKLV9kaXNwYXRjaGVyID0gX2NyZWF0
ZV9kaXNwYXRjaGVyKCkKLQotCi1kZWYgaGVhZGVycGFyc2VyaGFuZGxlcihyZXF1ZXN0KToKLSAg
ICAiIiJIYW5kbGUgcmVxdWVzdC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9w
eXRob24gcmVxdWVzdC4KLQotICAgIFRoaXMgZnVuY3Rpb24gaXMgbmFtZWQgaGVhZGVycGFyc2Vy
aGFuZGxlciBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0Ci0gICAgbmFtZSBmb3IgYSBQeXRob25I
ZWFkZXJQYXJzZXJIYW5kbGVyLgotICAgICIiIgotICAgIGhhbmRzaGFrZV9pc19kb25lID0gRmFs
c2UKLSAgICB0cnk6Ci0gICAgICAgICMgRmFsbGJhY2sgdG8gZGVmYXVsdCBodHRwIGhhbmRsZXIg
Zm9yIHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNoCi0gICAgICAgICMgd2UgZG9uJ3QgaGF2ZSByZXF1
ZXN0IGhhbmRsZXJzLgotICAgICAgICBpZiBub3QgX2Rpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3Vp
dGUocmVxdWVzdC51cmkpOgotICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAg
ICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogTm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJyAl
IHJlcXVlc3QudXJpLAotICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAg
ICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tl
dDogRmFsbGJhY2sgdG8gQXBhY2hlJywgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICBy
ZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgJ21vZF9w
eXdlYnNvY2tldDogRGlzcGF0Y2ggZmFpbGVkIGZvciBlcnJvcjogJXMnICUgZSwKLSAgICAgICAg
ICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICBpZiBub3QgaGFuZHNoYWtlX2lzX2RvbmU6
Ci0gICAgICAgICAgICByZXR1cm4gZS5zdGF0dXMKLQotICAgIHRyeToKLSAgICAgICAgYWxsb3df
ZHJhZnQ3NSA9IF9wYXJzZV9vcHRpb24oCi0gICAgICAgICAgICBfUFlPUFRfQUxMT1dfRFJBRlQ3
NSwKLSAgICAgICAgICAgIGFwYWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpLmdldChfUFlP
UFRfQUxMT1dfRFJBRlQ3NSksCi0gICAgICAgICAgICBfUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJ
TklUSU9OKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZS5kb19oYW5kc2hh
a2UoCi0gICAgICAgICAgICAgICAgcmVxdWVzdCwgX2Rpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1h
bGxvd19kcmFmdDc1KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNpb25FeGNlcHRpb24g
YXMgZToKLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24gZXJyb3I6ICVzJyAl
IGUsCi0gICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXF1
ZXN0LmVycl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFE
RVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBwb3J0ZWRf
dmVyc2lvbnMpCi0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkhUVFBfQkFEX1JFUVVFU1QKLSAg
ICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgICMgSGFuZHNoYWtlIGZvciB3cy93c3MgZmFpbGVkLgotICAgICAgICAgICAgIyBTZW5kIGh0
dHAgcmVzcG9uc2Ugd2l0aCBlcnJvciBzdGF0dXMuCi0gICAgICAgICAgICByZXF1ZXN0LmxvZ19l
cnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBIYW5kc2hha2UgZmFpbGVk
IGZvciBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykK
LSAgICAgICAgICAgIHJldHVybiBlLnN0YXR1cwotCi0gICAgICAgIGhhbmRzaGFrZV9pc19kb25l
ID0gVHJ1ZQotICAgICAgICByZXF1ZXN0Ll9kaXNwYXRjaGVyID0gX2Rpc3BhdGNoZXIKLSAgICAg
ICAgX2Rpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgIGV4Y2VwdCBoYW5kc2hh
a2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICByZXF1ZXN0LmxvZ19lcnJv
cignbW9kX3B5d2Vic29ja2V0OiBBYm9ydGVkOiAlcycgJSBlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24gY2FuIGFsc28gYmUgdGhyb3duIGlmIHNvbWV0aGlu
ZyBpcyB3cm9uZyBpbgotICAgICAgICAjIHB5d2Vic29ja2V0IGNvZGUuIEl0J3MgY2F1Z2h0IGhl
cmUsIHRoZW4uCi0KLSAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21vZF9weXdlYnNvY2tldDog
RXhjZXB0aW9uIG9jY3VycmVkOiAlc1xuJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
KGUsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBh
cGFjaGUuQVBMT0dfRVJSKQotICAgICAgICAjIFVua25vd24gZXhjZXB0aW9ucyBiZWZvcmUgaGFu
ZHNoYWtlIG1lYW4gQXBhY2hlIG11c3QgaGFuZGxlIGl0cwotICAgICAgICAjIHJlcXVlc3Qgd2l0
aCBhbm90aGVyIGhhbmRsZXIuCi0gICAgICAgIGlmIG5vdCBoYW5kc2hha2VfaXNfZG9uZToKLSAg
ICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKLSAgICAjIFNldCBhc3NiYWNrd2FyZHMg
dG8gc3VwcHJlc3MgcmVzcG9uc2UgaGVhZGVyIGdlbmVyYXRpb24gYnkgQXBhY2hlLgotICAgIHJl
cXVlc3QuYXNzYmFja3dhcmRzID0gMQotICAgIHJldHVybiBhcGFjaGUuRE9ORSAgIyBSZXR1cm4g
RE9ORSBzdWNoIHRoYXQgbm8gb3RoZXIgaGFuZGxlcnMgYXJlIGludm9rZWQuCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRl
cl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUwNTg0YzVkYWM4Y2M0NGM3NzZmN2NjYjRlNmE1
MDQwY2U1MjIyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRlcl91dGlsLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMjYzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlV0aWxpdGllcyBmb3Ig
cGFyc2luZyBhbmQgZm9ybWF0dGluZyBoZWFkZXJzIHRoYXQgZm9sbG93IHRoZSBncmFtbWFyIGRl
ZmluZWQKLWluIEhUVFAgUkZDIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzI2MTYudHh0Lgot
IiIiCi0KLQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHVybGxpYgotCi0KLV9TRVBBUkFUT1JTID0g
JygpPD5ALDs6XFwiL1tdPz17fSBcdCcKLQotCi1kZWYgX2lzX2NoYXIoYyk6Ci0gICAgIiIiUmV0
dXJucyB0cnVlIGlmZiBjIGlzIGluIENIQVIgYXMgc3BlY2lmaWVkIGluIEhUVFAgUkZDLiIiIgot
Ci0gICAgcmV0dXJuIG9yZChjKSA8PSAxMjcKLQotCi1kZWYgX2lzX2N0bChjKToKLSAgICAiIiJS
ZXR1cm5zIHRydWUgaWZmIGMgaXMgaW4gQ1RMIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIK
LQotICAgIHJldHVybiBvcmQoYykgPD0gMzEgb3Igb3JkKGMpID09IDEyNwotCi0KLWNsYXNzIFBh
cnNpbmdTdGF0ZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEpOgotICAg
ICAgICBzZWxmLmRhdGEgPSBkYXRhCi0gICAgICAgIHNlbGYuaGVhZCA9IDAKLQotCi1kZWYgcGVl
ayhzdGF0ZSwgcG9zPTApOgotICAgICIiIlBlZWtzIHRoZSBjaGFyYWN0ZXIgYXQgcG9zIGZyb20g
dGhlIGhlYWQgb2YgZGF0YS4iIiIKLQotICAgIGlmIHN0YXRlLmhlYWQgKyBwb3MgPj0gbGVuKHN0
YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgcmV0dXJuIHN0YXRlLmRhdGFb
c3RhdGUuaGVhZCArIHBvc10KLQotCi1kZWYgY29uc3VtZShzdGF0ZSwgYW1vdW50PTEpOgotICAg
ICIiIkNvbnN1bWVzIHNwZWNpZmllZCBhbW91bnQgb2YgYnl0ZXMgZnJvbSB0aGUgaGVhZCBhbmQg
cmV0dXJucyB0aGUKLSAgICBjb25zdW1lZCBieXRlcy4gSWYgdGhlcmUncyBub3QgZW5vdWdoIGJ5
dGVzIHRvIGNvbnN1bWUsIHJldHVybnMgTm9uZS4KLSAgICAiIiIKLQotICAgIGlmIHN0YXRlLmhl
YWQgKyBhbW91bnQgPiBsZW4oc3RhdGUuZGF0YSk6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICByZXN1bHQgPSBzdGF0ZS5kYXRhW3N0YXRlLmhlYWQ6c3RhdGUuaGVhZCArIGFtb3VudF0KLSAg
ICBzdGF0ZS5oZWFkID0gc3RhdGUuaGVhZCArIGFtb3VudAotICAgIHJldHVybiByZXN1bHQKLQot
Ci1kZWYgY29uc3VtZV9zdHJpbmcoc3RhdGUsIGV4cGVjdGVkKToKLSAgICAiIiJHaXZlbiBhIHBh
cnNpbmcgc3RhdGUgYW5kIGEgZXhwZWN0ZWQgc3RyaW5nLCBjb25zdW1lcyB0aGUgc3RyaW5nIGZy
b20KLSAgICB0aGUgaGVhZC4gUmV0dXJucyBUcnVlIGlmIGNvbnN1bWVkIHN1Y2Nlc3NmdWxseS4g
T3RoZXJ3aXNlLCByZXR1cm5zCi0gICAgRmFsc2UuCi0gICAgIiIiCi0KLSAgICBwb3MgPSAwCi0K
LSAgICBmb3IgYyBpbiBleHBlY3RlZDoKLSAgICAgICAgaWYgYyAhPSBwZWVrKHN0YXRlLCBwb3Mp
OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHBvcyArPSAxCi0KLSAgICBjb25z
dW1lKHN0YXRlLCBwb3MpCi0gICAgcmV0dXJuIFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3Moc3Rh
dGUpOgotICAgICIiIkNvbnN1bWVzIGEgTFdTIGZyb20gdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBp
ZiBhbnkgTFdTIGlzIGNvbnN1bWVkLgotICAgIE90aGVyd2lzZSwgcmV0dXJucyBGYWxzZS4KLQot
ICAgIExXUyA9IFtDUkxGXSAxKiggU1AgfCBIVCApCi0gICAgIiIiCi0KLSAgICBvcmlnaW5hbF9o
ZWFkID0gc3RhdGUuaGVhZAotCi0gICAgY29uc3VtZV9zdHJpbmcoc3RhdGUsICdcclxuJykKLQot
ICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0YXRlLCBw
b3MpCi0gICAgICAgIGlmIGMgPT0gJyAnIG9yIGMgPT0gJ1x0JzoKLSAgICAgICAgICAgIHBvcyAr
PSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBwb3MgPT0gMDoKLSAgICAgICAgICAg
ICAgICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb25zdW1lKHN0YXRlLCBw
b3MpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotCi1kZWYgY29uc3VtZV9sd3Nlcyhz
dGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgKkxXUyBmcm9tIHRoZSBoZWFkLiIiIgotCi0gICAgd2hp
bGUgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAgICBwYXNzCi0KLQotZGVmIGNvbnN1bWVfdG9r
ZW4oc3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgdG9rZW4gZnJvbSB0aGUgaGVhZC4gUmV0dXJu
cyB0aGUgdG9rZW4gb3IgTm9uZSBpZiBubyB0b2tlbgotICAgIHdhcyBmb3VuZC4KLSAgICAiIiIK
LQotICAgIHBvcyA9IDAKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGMgPSBwZWVrKHN0YXRl
LCBwb3MpCi0gICAgICAgIGlmIGMgaXMgTm9uZSBvciBjIGluIF9TRVBBUkFUT1JTIG9yIF9pc19j
dGwoYykgb3Igbm90IF9pc19jaGFyKGMpOgotICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWUoc3Rh
dGUsIHBvcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBvcyArPSAxCi0KLQotZGVmIGNv
bnN1bWVfdG9rZW5fb3JfcXVvdGVkX3N0cmluZyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgYSB0
b2tlbiBvciBhIHF1b3RlZC1zdHJpbmcsIGFuZCByZXR1cm5zIHRoZSB0b2tlbiBvciB1bnF1b3Rl
ZAotICAgIHN0cmluZy4gSWYgbm8gdG9rZW4gb3IgcXVvdGVkLXN0cmluZyB3YXMgZm91bmQsIHJl
dHVybnMgTm9uZS4KLSAgICAiIiIKLQotICAgIG9yaWdpbmFsX2hlYWQgPSBzdGF0ZS5oZWFkCi0K
LSAgICBpZiBub3QgY29uc3VtZV9zdHJpbmcoc3RhdGUsICciJyk6Ci0gICAgICAgIHJldHVybiBj
b25zdW1lX3Rva2VuKHN0YXRlKQotCi0gICAgcmVzdWx0ID0gW10KLQotICAgIGV4cGVjdF9xdW90
ZWRfcGFpciA9IEZhbHNlCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBpZiBub3QgZXhwZWN0
X3F1b3RlZF9wYWlyIGFuZCBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0gICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgJykKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgYyA9IGNvbnN1bWUo
c3RhdGUpCi0gICAgICAgIGlmIGMgaXMgTm9uZToKLSAgICAgICAgICAgICMgcXVvdGVkLXN0cmlu
ZyBpcyBub3QgZW5jbG9zZWQgd2l0aCBkb3VibGUgcXVvdGF0aW9uCi0gICAgICAgICAgICBzdGF0
ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ZWxpZiBleHBlY3RfcXVvdGVkX3BhaXI6Ci0gICAgICAgICAgICBleHBlY3RfcXVvdGVkX3BhaXIg
PSBGYWxzZQotICAgICAgICAgICAgaWYgX2lzX2NoYXIoYyk6Ci0gICAgICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChjKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIE5vbiBD
SEFSIGNoYXJhY3RlciBmb3VuZCBpbiBxdW90ZWQtcGFpcgotICAgICAgICAgICAgICAgIHN0YXRl
LmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgZWxpZiBjID09ICdcXCc6Ci0gICAgICAgICAgICBleHBlY3RfcXVvdGVkX3BhaXIgPSBUcnVl
Ci0gICAgICAgIGVsaWYgYyA9PSAnIic6Ci0gICAgICAgICAgICByZXR1cm4gJycuam9pbihyZXN1
bHQpCi0gICAgICAgIGVsaWYgX2lzX2N0bChjKToKLSAgICAgICAgICAgICMgSW52YWxpZCBjaGFy
YWN0ZXIgJXIgZm91bmQgaW4gcWR0ZXh0Ci0gICAgICAgICAgICBzdGF0ZS5oZWFkID0gb3JpZ2lu
YWxfaGVhZAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoYykKLQotCi1kZWYgcXVvdGVfaWZfbmVjZXNzYXJ5KHMpOgotICAg
ICIiIlF1b3RlcyBhcmJpdHJhcnkgc3RyaW5nIGludG8gcXVvdGVkLXN0cmluZy4iIiIKLQotICAg
IHF1b3RlID0gRmFsc2UKLSAgICBpZiBzID09ICcnOgotICAgICAgICByZXR1cm4gJyIiJwotCi0g
ICAgcmVzdWx0ID0gW10KLSAgICBmb3IgYyBpbiBzOgotICAgICAgICBpZiBjID09ICciJyBvciBj
IGluIF9TRVBBUkFUT1JTIG9yIF9pc19jdGwoYykgb3Igbm90IF9pc19jaGFyKGMpOgotICAgICAg
ICAgICAgcXVvdGUgPSBUcnVlCi0KLSAgICAgICAgaWYgYyA9PSAnIicgb3IgX2lzX2N0bChjKToK
LSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyArIGMpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0KLSAgICBpZiBxdW90ZToKLSAgICAgICAgcmV0dXJu
ICciJyArICcnLmpvaW4ocmVzdWx0KSArICciJwotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiAn
Jy5qb2luKHJlc3VsdCkKLQotCi1kZWYgcGFyc2VfdXJpKHVyaSk6Ci0gICAgIiIiUGFyc2UgYWJz
b2x1dGUgVVJJIHRoZW4gcmV0dXJuIGhvc3QsIHBvcnQgYW5kIHJlc291cmNlLiIiIgotCi0gICAg
cGFyc2VkID0gdXJsbGliLnBhcnNlLnVybHNwbGl0KHVyaSkKLSAgICBpZiBwYXJzZWQuc2NoZW1l
ICE9ICd3c3MnIGFuZCBwYXJzZWQuc2NoZW1lICE9ICd3cyc6Ci0gICAgICAgICMgfHVyaXwgbXVz
dCBiZSBhIHJlbGF0aXZlIFVSSS4KLSAgICAgICAgIyBUT0RPKHRveW9zaGltKTogU2hvdWxkIHZh
bGlkYXRlIHx1cml8LgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgdXJpCi0KLSAgICBpZiBw
YXJzZWQuaG9zdG5hbWUgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUK
LQotICAgIHBvcnQgPSBOb25lCi0gICAgdHJ5OgotICAgICAgICBwb3J0ID0gcGFyc2VkLnBvcnQK
LSAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAjIHBvcnQgcHJvcGVydHkgY2F1
c2UgVmFsdWVFcnJvciBvbiBpbnZhbGlkIG51bGwgcG9ydCBkZXNjcmlwdGlvbiBsaWtlCi0gICAg
ICAgICMgJ3dzOi8vaG9zdDovcGF0aCcuCi0gICAgICAgIHJldHVybiBOb25lLCBOb25lLCBOb25l
Ci0KLSAgICBpZiBwb3J0IGlzIE5vbmU6Ci0gICAgICAgIGlmIHBhcnNlZC5zY2hlbWUgPT0gJ3dz
JzoKLSAgICAgICAgICAgIHBvcnQgPSA4MAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9y
dCA9IDQ0MwotCi0gICAgcGF0aCA9IHBhcnNlZC5wYXRoCi0gICAgaWYgbm90IHBhdGg6Ci0gICAg
ICAgIHBhdGggKz0gJy8nCi0gICAgaWYgcGFyc2VkLnF1ZXJ5OgotICAgICAgICBwYXRoICs9ICc/
JyArIHBhcnNlZC5xdWVyeQotICAgIGlmIHBhcnNlZC5mcmFnbWVudDoKLSAgICAgICAgcGF0aCAr
PSAnIycgKyBwYXJzZWQuZnJhZ21lbnQKLQotICAgIHJldHVybiBwYXJzZWQuaG9zdG5hbWUsIHBv
cnQsIHBhdGgKLQotCi10cnk6Ci0gICAgdXJsbGliLnBhcnNlLnVzZXNfbmV0bG9jLmluZGV4KCd3
cycpCi1leGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICMgdXJscGFyc2UgaW4gUHl0aG9uMi41
LjEgZG9lc24ndCBoYXZlICd3cycgYW5kICd3c3MnIGVudHJpZXMuCi0gICAgdXJsbGliLnBhcnNl
LnVzZXNfbmV0bG9jLmFwcGVuZCgnd3MnKQotICAgIHVybGxpYi5wYXJzZS51c2VzX25ldGxvYy5h
cHBlbmQoJ3dzcycpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21l
bW9yaXppbmdmaWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2FmY2MxNTdl
ZDdhMWQ5NDJjYmY0MzU4YWZhMDQ1NDg0NmYwMWQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxl
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiTWVtb3JpemluZyBmaWxlLgotCi1BIG1lbW9yaXppbmcgZmlsZSB3cmFwcyBhIGZpbGUgYW5k
IG1lbW9yaXplcyBsaW5lcyByZWFkIGJ5IHJlYWRsaW5lLgotIiIiCi0KLQotY2xhc3MgTWVtb3Jp
emluZ0ZpbGUob2JqZWN0KToKLQotICAgICIiIk1lbW9yaXppbmdGaWxlIHdyYXBzIGEgZmlsZSBh
bmQgbWVtb3JpemVzIGxpbmVzIHJlYWQgYnkgcmVhZGxpbmUuCi0KLSAgICBOb3RlIHRoYXQgZGF0
YSByZWFkIGJ5IG90aGVyIG1ldGhvZHMgYXJlIG5vdCBtZW1vcml6ZWQuIFRoaXMgYmVoYXZpb3IK
LSAgICBpcyBnb29kIGVub3VnaCBmb3IgbWVtb3JpemluZyBsaW5lcyBTaW1wbGVIVFRQU2VydmVy
IHJlYWRzIGJlZm9yZQotICAgIHRoZSBjb250cm9sIHJlYWNoZXMgV2ViU29ja2V0UmVxdWVzdEhh
bmRsZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZV8sIG1heF9tZW1v
cml6ZWRfbGluZXM9MHg3RkZGRkZGRik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5j
ZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZmlsZV86IHRoZSBmaWxlIG9iamVjdCB0
byB3cmFwLgotICAgICAgICAgICAgbWF4X21lbW9yaXplZF9saW5lczogdGhlIG1heGltdW0gbnVt
YmVyIG9mIGxpbmVzIHRvIG1lbW9yaXplLgotICAgICAgICAgICAgICAgIE9ubHkgdGhlIGZpcnN0
IG1heF9tZW1vcml6ZWRfbGluZXMgYXJlIG1lbW9yaXplZC4KLSAgICAgICAgICAgICAgICBEZWZh
dWx0OiBzeXMubWF4aW50LgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGVf
Ci0gICAgICAgIHNlbGYuX21lbW9yaXplZF9saW5lcyA9IFtdCi0gICAgICAgIHNlbGYuX21heF9t
ZW1vcml6ZWRfbGluZXMgPSBtYXhfbWVtb3JpemVkX2xpbmVzCi0gICAgICAgIHNlbGYuX2J1ZmZl
cmVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fYnVmZmVyZWRfbGluZSA9IE5vbmUKLQotICAgIGRl
ZiBfX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gYSBmaWxl
IGF0dHJpYnV0ZS4KLQotICAgICAgICBSZXR1cm5zIHRoZSB2YWx1ZSBvdmVycmlkZGVuIGJ5IHRo
aXMgY2xhc3MgZm9yIHNvbWUgYXR0cmlidXRlcywKLSAgICAgICAgYW5kIGZvcndhcmRzIHRoZSBj
YWxsIHRvIF9maWxlIGZvciB0aGUgb3RoZXIgYXR0cmlidXRlcy4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGlmIG5hbWUgaW4gKCdfZmlsZScsICdfbWVtb3JpemVkX2xpbmVzJywgJ19tYXhfbWVtb3Jp
emVkX2xpbmVzJywKLSAgICAgICAgICAgICAgICAgICAgJ19idWZmZXJlZCcsICdfYnVmZmVyZWRf
bGluZScsICdyZWFkbGluZScsCi0gICAgICAgICAgICAgICAgICAgICdnZXRfbWVtb3JpemVkX2xp
bmVzJyk6Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwg
bmFtZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGUuX19nZXRhdHRyaWJ1dGVfXyhuYW1lKQot
Ci0gICAgZGVmIHJlYWRsaW5lKHNlbGYsIHNpemU9LTEpOgotICAgICAgICAiIiJPdmVycmlkZSBm
aWxlLnJlYWRsaW5lIGFuZCBtZW1vcml6ZSB0aGUgbGluZSByZWFkLgotCi0gICAgICAgIE5vdGUg
dGhhdCBldmVuIGlmIHNpemUgaXMgc3BlY2lmaWVkIGFuZCBzbWFsbGVyIHRoYW4gYWN0dWFsIHNp
emUsCi0gICAgICAgIHRoZSB3aG9sZSBsaW5lIHdpbGwgYmUgcmVhZCBvdXQgZnJvbSB1bmRlcmx5
aW5nIGZpbGUgb2JqZWN0IGJ5Ci0gICAgICAgIHN1YnNlcXVlbnQgcmVhZGxpbmUgY2FsbHMuCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9idWZmZXJlZDoKLSAgICAgICAgICAgIGxpbmUg
PSBzZWxmLl9idWZmZXJlZF9saW5lCi0gICAgICAgICAgICBzZWxmLl9idWZmZXJlZCA9IEZhbHNl
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsaW5lID0gc2VsZi5fZmlsZS5yZWFkbGluZSgp
Ci0gICAgICAgICAgICBpZiBsaW5lIGFuZCBsZW4oc2VsZi5fbWVtb3JpemVkX2xpbmVzKSA8IHNl
bGYuX21heF9tZW1vcml6ZWRfbGluZXM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbWVtb3JpemVk
X2xpbmVzLmFwcGVuZChsaW5lKQotICAgICAgICBpZiBzaXplID49IDAgYW5kIHNpemUgPCBsZW4o
bGluZSk6Ci0gICAgICAgICAgICBzZWxmLl9idWZmZXJlZCA9IFRydWUKLSAgICAgICAgICAgIHNl
bGYuX2J1ZmZlcmVkX2xpbmUgPSBsaW5lW3NpemU6XQotICAgICAgICAgICAgcmV0dXJuIGxpbmVb
OnNpemVdCi0gICAgICAgIHJldHVybiBsaW5lCi0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5l
cyhzZWxmKToKLSAgICAgICAgIiIiR2V0IGxpbmVzIG1lbW9yaXplZCBzbyBmYXIuIiIiCi0gICAg
ICAgIHJldHVybiBzZWxmLl9tZW1vcml6ZWRfbGluZXMKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9tc2d1dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzZj
NWIxZGJjZTk3ZDcyZjI2Y2I3N2NkYjdmODQ2NzQxYjFiYjNjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiTWVzc2FnZSByZWxhdGVkIHV0aWxpdGllcy4KLQotTm90ZTogcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoCi1tb2RfcHl0
aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVj
dGlvbgotaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4g
Rm9yIGV4YW1wbGUsCi1yZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNl
IHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdwotYnl0ZXMgd3JpdGluZy9yZWFkaW5nLgotIiIi
Ci0KLQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IHF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi0KLQot
IyBFeHBvcnQgRXhjZXB0aW9uIHN5bWJvbHMgZnJvbSBtc2d1dGlsIGZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotCi0KLSMg
QW4gQVBJIGZvciBoYW5kbGVyIHRvIHNlbmQvcmVjZWl2ZSBXZWJTb2NrZXQgbWVzc2FnZXMuCi1k
ZWYgY2xvc2VfY29ubmVjdGlvbihyZXF1ZXN0KToKLSAgICAiIiJDbG9zZSBjb25uZWN0aW9uLgot
Ci0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICIi
IgotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotCi0KLWRlZiBzZW5k
X21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZF9kYXRhLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToK
LSAgICAiIiJTZW5kIGEgbWVzc2FnZSAob3IgcGFydCBvZiBhIG1lc3NhZ2UpLgotCi0gICAgQXJn
czoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICBwYXlsb2Fk
X2RhdGE6IHVuaWNvZGUgdGV4dCBvciBzdHIgYmluYXJ5IHRvIHNlbmQuCi0gICAgICAgIGVuZDog
VHJ1ZSB0byB0ZXJtaW5hdGUgYSBtZXNzYWdlLgotICAgICAgICAgICAgIEZhbHNlIHRvIHNlbmQg
cGF5bG9hZF9kYXRhIGFzIHBhcnQgb2YgYSBtZXNzYWdlIHRoYXQgaXMgdG8gYmUKLSAgICAgICAg
ICAgICB0ZXJtaW5hdGVkIGJ5IG5leHQgb3IgbGF0ZXIgc2VuZF9tZXNzYWdlIGNhbGwgd2l0aCBl
bmQ9VHJ1ZS4KLSAgICAgICAgYmluYXJ5OiBzZW5kIHBheWxvYWRfZGF0YSBhcyBiaW5hcnkgZnJh
bWUocykuCi0gICAgUmFpc2VzOgotICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4g
c2VydmVyIGFscmVhZHkgdGVybWluYXRlZC4KLSAgICAiIiIKLSAgICByZXF1ZXN0LndzX3N0cmVh
bS5zZW5kX21lc3NhZ2UocGF5bG9hZF9kYXRhLCBlbmQsIGJpbmFyeSkKLQotCi1kZWYgcmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpOgotICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5k
IHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KLSAgICB1bmljb2RlIG9yIGEgYmluYXJ5
IGluIHN0ci4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVz
dC4KLSAgICBSYWlzZXM6Ci0gICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogICAgIHdoZW4g
Y2xpZW50IHNlbmQgaW52YWxpZCBmcmFtZS4KLSAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2Vw
dGlvbjogd2hlbiBjbGllbnQgc2VuZCB1bnN1cHBvcnRlZCBmcmFtZSBlLmcuIHNvbWUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgcmVzZXJ2ZWQgYml0IGlzIHNldCBidXQg
bm8gZXh0ZW5zaW9uIGNhbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNv
Z25pemUgaXQuCi0gICAgICAgIEludmFsaWRVVEY4RXhjZXB0aW9uOiAgICAgIHdoZW4gY2xpZW50
IHNlbmQgYSB0ZXh0IGZyYW1lIGNvbnRhaW5pbmcgYW55Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludmFsaWQgVVRGLTggc3RyaW5nLgotICAgICAgICBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbjogd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZGx5LgotICAgICAgICBCYWRPcGVy
YXRpb25FeGNlcHRpb246ICAgICB3aGVuIGNsaWVudCBhbHJlYWR5IHRlcm1pbmF0ZWQuCi0gICAg
IiIiCi0gICAgcmV0dXJuIHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLQot
ZGVmIHNlbmRfcGluZyhyZXF1ZXN0LCBib2R5PScnKToKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5z
ZW5kX3BpbmcoYm9keSkKLQotCi1jbGFzcyBNZXNzYWdlUmVjZWl2ZXIodGhyZWFkaW5nLlRocmVh
ZCk6Ci0gICAgIiIiVGhpcyBjbGFzcyByZWNlaXZlcyBtZXNzYWdlcyBmcm9tIHRoZSBjbGllbnQu
Ci0KLSAgICBUaGlzIGNsYXNzIHByb3ZpZGVzIHRocmVlIHdheXMgdG8gcmVjZWl2ZSBtZXNzYWdl
czogYmxvY2tpbmcsCi0gICAgbm9uLWJsb2NraW5nLCBhbmQgdmlhIGNhbGxiYWNrLiBDYWxsYmFj
ayBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZS4KLQotICAgIE5vdGU6IFRoaXMgY2xhc3Mgc2hv
dWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZvciB3c3MKLSAgICBi
ZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwgZXJyb3Ig
aWYgdGhlIHNvY2tldAotICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvbm1lc3NhZ2U9Tm9uZSk6
Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAgICAgb25tZXNz
YWdlOiBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGEgbWVzc2FnZSBpcyByZWNlaXZlZC4K
LSAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIE5vbmUuIElmIG5vdCBOb25lLCB0aGUgZnVu
Y3Rpb24gaXMgY2FsbGVkIG9uCi0gICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXIgdGhyZWFk
LiBJbiB0aGF0IGNhc2UsIE1lc3NhZ2VSZWNlaXZlci5yZWNlaXZlCi0gICAgICAgICAgICAgICAg
ICAgICAgIGFuZCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQgYXJlIHVzZWxlc3MKLSAg
ICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGV5IHdpbGwgbmV2ZXIgcmV0dXJuIGFueSBt
ZXNzYWdlcy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRf
XyhzZWxmKQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9x
dWV1ZSA9IHF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgc2VsZi5fb25tZXNzYWdlID0gb25tZXNzYWdl
Ci0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5zZXRE
YWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5zdGFydCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6
Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlY2VpdmVfbWVzc2FnZShzZWxmLl9yZXF1ZXN0
KQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29ubWVzc2FnZToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fb25tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBjbG9zZV9jb25uZWN0aW9uKHNlbGYuX3JlcXVlc3QpCi0KLSAgICBkZWYg
cmVjZWl2ZShzZWxmKToKLSAgICAgICAgIiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIGNo
YW5uZWwsIGJsb2NraW5nLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBtZXNzYWdl
IGFzIGEgdW5pY29kZSBzdHJpbmcuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5f
cXVldWUuZ2V0KCkKLQotICAgIGRlZiByZWNlaXZlX25vd2FpdChzZWxmKToKLSAgICAgICAgIiIi
IFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIGNoYW5uZWwsIG5vbi1ibG9ja2luZy4KLQotICAg
ICAgICBSZXR1cm5zOgotICAgICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUgc3RyaW5nIGlm
IGF2YWlsYWJsZS4gTm9uZSBvdGhlcndpc2UuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fcXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgIGV4
Y2VwdCBxdWV1ZS5FbXB0eToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBOb25lCi0gICAgICAgIHJl
dHVybiBtZXNzYWdlCi0KLSAgICBkZWYgc3RvcChzZWxmKToKLSAgICAgICAgIiIiUmVxdWVzdCB0
byBzdG9wIHRoaXMgaW5zdGFuY2UuCi0KLSAgICAgICAgVGhlIGluc3RhbmNlIHdpbGwgYmUgc3Rv
cHBlZCBhZnRlciByZWNlaXZpbmcgdGhlIG5leHQgbWVzc2FnZS4KLSAgICAgICAgVGhpcyBtZXRo
b2QgbWF5IG5vdCBiZSB2ZXJ5IHVzZWZ1bCwgYnV0IHRoZXJlIGlzIG5vIGNsZWFuIHdheQotICAg
ICAgICBpbiBQeXRob24gdG8gZm9yY2VmdWxseSBzdG9wIGEgcnVubmluZyB0aHJlYWQuCi0gICAg
ICAgICIiIgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKLQotCi1jbGFzcyBN
ZXNzYWdlU2VuZGVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIlRoaXMgY2xhc3Mgc2VuZHMg
bWVzc2FnZXMgdG8gdGhlIGNsaWVudC4KLQotICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMgYm90aCBz
eW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHdheXMgdG8gc2VuZAotICAgIG1lc3NhZ2VzLgot
Ci0gICAgTm90ZTogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRh
bG9uZSBzZXJ2ZXIgZm9yIHdzcwotICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkgdGhlIHNl
cnZlciByYWlzZXMgYSBmYXRhbCBlcnJvciBpZiB0aGUgc29ja2V0Ci0gICAgaXMgYWNjZXNzZWQg
ZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlcXVlc3QpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAg
IiIiCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2Vs
Zi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5fcXVldWUgPSBxdWV1ZS5RdWV1ZSgp
Ci0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgIHNlbGYuc3RhcnQoKQotCi0g
ICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIG1lc3Nh
Z2UsIGNvbmRpdGlvbiA9IHNlbGYuX3F1ZXVlLmdldCgpCi0gICAgICAgICAgICBjb25kaXRpb24u
YWNxdWlyZSgpCi0gICAgICAgICAgICBzZW5kX21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCwgbWVzc2Fn
ZSkKLSAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgY29uZGl0aW9u
LnJlbGVhc2UoKQotCi0gICAgZGVmIHNlbmQoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlNl
bmQgYSBtZXNzYWdlLCBibG9ja2luZy4iIiIKLQotICAgICAgICBjb25kaXRpb24gPSB0aHJlYWRp
bmcuQ29uZGl0aW9uKCkKLSAgICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxm
Ll9xdWV1ZS5wdXQoKG1lc3NhZ2UsIGNvbmRpdGlvbikpCi0gICAgICAgIGNvbmRpdGlvbi53YWl0
KCkKLQotICAgIGRlZiBzZW5kX25vd2FpdChzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiU2Vu
ZCBhIG1lc3NhZ2UsIG5vbi1ibG9ja2luZy4iIiIKLQotICAgICAgICBzZWxmLl9xdWV1ZS5wdXQo
KG1lc3NhZ2UsIHRocmVhZGluZy5Db25kaXRpb24oKSkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tdXgucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5NGY4YTE0NjQ1
YzU0YjY3NGI4MTQ1ODM2NzMxOWI2NjAzMDQ0N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTg4NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZp
bGUgcHJvdmlkZXMgY2xhc3NlcyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgbXVsdGlwbGV4aW5n
IGV4dGVuc2lvbi4KLQotU3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtaHliaS13ZWJzb2NrZXQtbXVsdGlwbGV4aW5nLTA2Ci0iIiIKLQotCi1pbXBv
cnQgY29sbGVjdGlvbnMKLWltcG9ydCBjb3B5Ci1pbXBvcnQgZW1haWwKLWltcG9ydCBlbWFpbC5w
YXJzZXIKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0IHN0cnVjdAotaW1wb3J0
IHRocmVhZGluZwotaW1wb3J0IHRyYWNlYmFjawotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkK
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2hlYWRlcgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfbGVuZ3RoX2hl
YWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBwYXJzZV9mcmFt
ZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJpCi0KLQotX0NPTlRS
T0xfQ0hBTk5FTF9JRCA9IDAKLV9ERUZBVUxUX0NIQU5ORUxfSUQgPSAxCi0KLV9NVVhfT1BDT0RF
X0FERF9DSEFOTkVMX1JFUVVFU1QgPSAwCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05T
RSA9IDEKLV9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA9IDIKLV9NVVhfT1BDT0RFX0RST1BfQ0hB
Tk5FTCA9IDMKLV9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPSA0Ci0KLV9NQVhfQ0hBTk5F
TF9JRCA9IDIgKiogMjkgLSAxCi0KLV9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTID0g
NjQKLV9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQgPSA4ICogMTAyNAotCi1fSEFORFNIQUtFX0VO
Q09ESU5HX0lERU5USVRZID0gMAotX0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQSA9IDEKLQotIyBX
ZSBuZWVkIG9ubHkgdGhlc2Ugc3RhdHVzIGNvZGUgZm9yIG5vdy4KLV9IVFRQX0JBRF9SRVNQT05T
RV9NRVNTQUdFUyA9IHsKLSAgICBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1Q6ICdCYWQg
UmVxdWVzdCcsCi19Ci0KLSMgRHJvcENoYW5uZWwgcmVhc29uIGNvZGUKLSMgVE9ETyhiYXNoaSk6
IERlZmluZSBhbGwgcmVhc29uIGNvZGUgZGVmaW5lZCBpbiAtMDUgZHJhZnQuCi1fRFJPUF9DT0RF
X05PUk1BTF9DTE9TVVJFID0gMTAwMAotCi1fRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElO
R19NRVNTQUdFID0gMjAwMQotX0RST1BfQ09ERV9DSEFOTkVMX0lEX1RSVU5DQVRFRCA9IDIwMDIK
LV9EUk9QX0NPREVfRU5DQVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCA9IDIwMDMKLV9EUk9Q
X0NPREVfVU5LTk9XTl9NVVhfT1BDT0RFID0gMjAwNAotX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLID0gMjAwNQotX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTID0g
MjAwNgotX0RST1BfQ09ERV9ORVdfQ0hBTk5FTF9TTE9UX1ZJT0xBVElPTiA9IDIwMDcKLV9EUk9Q
X0NPREVfVU5LTk9XTl9SRVFVRVNUX0VOQ09ESU5HID0gMjAxMAotCi1fRFJPUF9DT0RFX1NFTkRf
UVVPVEFfVklPTEFUSU9OID0gMzAwNQotX0RST1BfQ09ERV9TRU5EX1FVT1RBX09WRVJGTE9XID0g
MzAwNgotX0RST1BfQ09ERV9BQ0tOT1dMRURHRUQgPSAzMDA4Ci1fRFJPUF9DT0RFX0JBRF9GUkFH
TUVOVEFUSU9OID0gMzAwOQotCi0KLWNsYXNzIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oRXhjZXB0
aW9uKToKLQotICAgICIiIkV4Y2VwdGlvbiBpbiBoYW5kbGluZyBtdWx0aXBsZXhpbmcgZXh0ZW5z
aW9uLiIiIgotCi0gICAgcGFzcwotCi0KLSMgVGVtcG9yYXJ5Ci1jbGFzcyBNdXhOb3RJbXBsZW1l
bnRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotCi0gICAgIiIiUmFpc2VkIHdoZW4gYSBmbG93IGVu
dGVycyB1bmltcGxlbWVudGVkIGNvZGUgcGF0aC4iIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBM
b2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotCi0gICAgIiIiUmFp
c2VkIHdoZW4gbG9naWNhbCBjb25uZWN0aW9uIGlzIGdyYWNlZnVsbHkgY2xvc2VkLiIiIgotCi0g
ICAgcGFzcwotCi0KLWNsYXNzIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKEV4Y2VwdGlvbik6Ci0K
LSAgICAiIiJSYWlzZWQgd2hlbiB0aGVyZSBpcyBhIHBoeXNpY2FsIGNvbm5lY3Rpb24gZXJyb3Iu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZHJvcF9jb2RlLCBtZXNzYWdlPScnKToKLSAg
ICAgICAgc3VwZXIoUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsIHNlbGYpLl9faW5pdF9fKAotICAg
ICAgICAgICAgJ2NvZGU9JWQsIG1lc3NhZ2U9JXInICUgKGRyb3BfY29kZSwgbWVzc2FnZSkpCi0g
ICAgICAgIHNlbGYuZHJvcF9jb2RlID0gZHJvcF9jb2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9
IG1lc3NhZ2UKLQotCi1jbGFzcyBMb2dpY2FsQ2hhbm5lbEVycm9yKEV4Y2VwdGlvbik6Ci0KLSAg
ICAiIiJSYWlzZWQgd2hlbiB0aGVyZSBpcyBhIGxvZ2ljYWwgY2hhbm5lbCBlcnJvci4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2U9Jycp
OgotICAgICAgICAiIiJJbml0aWFsaXplIHRoZSBlcnJvciB3aXRoIGEgc3RhdHVzIG1lc3NhZ2Uu
IiIiCi0gICAgICAgIHN1cGVyKExvZ2ljYWxDaGFubmVsRXJyb3IsIHNlbGYpLl9faW5pdF9fKAot
ICAgICAgICAgICAgJ2NoYW5uZWxfaWQ9JWQsIGNvZGU9JWQsIG1lc3NhZ2U9JXInICUgKAotICAg
ICAgICAgICAgICAgIGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZSkpCi0gICAgICAgIHNl
bGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBkcm9w
X2NvZGUKLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotCi0KLWRlZiBfZW5jb2RlX2No
YW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0gICAgaWYgY2hhbm5lbF9pZCA8IDA6Ci0gICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgbXVzdCBub3QgYmUgbmVnYXRpdmUnICUgY2hh
bm5lbF9pZCkKLQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDc6Ci0gICAgICAgIHJldHVybiBj
aHIoY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAxNDoKLSAgICAgICAgcmV0
dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4ODAwMCArIGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5l
bF9pZCA8IDIgKiogMjE6Ci0gICAgICAgIGZpcnN0ID0gY2hyKDB4YzAgKyAoY2hhbm5lbF9pZCA+
PiAxNikpCi0gICAgICAgIHJldHVybiBmaXJzdCArIHN0cnVjdC5wYWNrKCchSCcsIGNoYW5uZWxf
aWQgJiAweGZmZmYpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjk6Ci0gICAgICAgIHJldHVy
biBzdHJ1Y3QucGFjaygnIUwnLCAweGUwMDAwMDAwICsgY2hhbm5lbF9pZCkKLQotICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQgJWQgaXMgdG9vIGxhcmdlJyAlIGNoYW5uZWxfaWQpCi0K
LQotZGVmIF9lbmNvZGVfbnVtYmVyKG51bWJlcik6Ci0gICAgcmV0dXJuIGNyZWF0ZV9sZW5ndGhf
aGVhZGVyKG51bWJlciwgRmFsc2UpCi0KLQotZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9u
c2UoY2hhbm5lbF9pZCwgZW5jb2RlZF9oYW5kc2hha2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1GYWxzZSk6Ci0gICAgaWYgZW5jb2Rpbmcg
IT0gMCBhbmQgZW5jb2RpbmcgIT0gMToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxp
ZCBlbmNvZGluZyAlZCcgJSBlbmNvZGluZykKLQotICAgIGZpcnN0X2J5dGUgPSAoKF9NVVhfT1BD
T0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFIDw8IDUpIHwKLSAgICAgICAgICAgICAgICAgIChyZWpl
Y3RlZCA8PCA0KSB8IGVuY29kaW5nKQotICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCi0g
ICAgICAgICAgICAgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAg
ICBfZW5jb2RlX251bWJlcihsZW4oZW5jb2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZHJv
cF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAgaWYgbGVu
KG1lc3NhZ2UpID4gMCBhbmQgY29kZSBpcyBOb25lOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdDb2RlIG11c3QgYmUgc3BlY2lmaWVkIGlmIG1lc3NhZ2UgaXMgc3BlY2lmaWVkJykKLQotICAg
IGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwgPDwgNQotICAgIGJsb2NrID0g
Y2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpCi0gICAgaWYg
Y29kZSBpcyBOb25lOgotICAgICAgICBibG9jayArPSBfZW5jb2RlX251bWJlcigwKSAgIyBSZWFz
b24gc2l6ZQotICAgIGVsc2U6Ci0gICAgICAgIHJlYXNvbiA9IHN0cnVjdC5wYWNrKCchSCcsIGNv
ZGUpICsgbWVzc2FnZQotICAgICAgICByZWFzb25fc2l6ZSA9IF9lbmNvZGVfbnVtYmVyKGxlbihy
ZWFzb24pKQotICAgICAgICBibG9jayArPSByZWFzb25fc2l6ZSArIHJlYXNvbgotCi0gICAgcmV0
dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxl
bmlzaGVkX3F1b3RhKToKLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfRkxPV19DT05UUk9M
IDw8IDUKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9lbmNv
ZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIo
cmVwbGVuaXNoZWRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX25l
d19jaGFubmVsX3Nsb3Qoc2xvdHMsIHNlbmRfcXVvdGEpOgotICAgIGlmIHNsb3RzIDwgMCBvciBz
ZW5kX3F1b3RhIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc2xvdHMgYW5kIHNlbmRf
cXVvdGEgbXVzdCBiZSBub24tbmVnYXRpdmUuJykKLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENP
REVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1Ci0gICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsK
LSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihzbG90cykgKwotICAgICAgICAgICAgIF9lbmNv
ZGVfbnVtYmVyKHNlbmRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRl
X2ZhbGxiYWNrX25ld19jaGFubmVsX3Nsb3QoKToKLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BD
T0RFX05FV19DSEFOTkVMX1NMT1QgPDwgNSkgfCAxICAjIFNldCB0aGUgRiBmbGFnCi0gICAgYmxv
Y2sgPSAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9udW1iZXIoMCkgKyBfZW5jb2RlX251bWJl
cigwKSkKLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX3BhcnNlX3JlcXVlc3RfdGV4dChyZXF1
ZXN0X3RleHQpOgotICAgIHJlcXVlc3RfbGluZSwgaGVhZGVyX2xpbmVzID0gcmVxdWVzdF90ZXh0
LnNwbGl0KCdcclxuJywgMSkKLQotICAgIHdvcmRzID0gcmVxdWVzdF9saW5lLnNwbGl0KCcgJykK
LSAgICBpZiBsZW4od29yZHMpICE9IDM6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCBS
ZXF1ZXN0LUxpbmUgc3ludGF4ICVyJyAlIHJlcXVlc3RfbGluZSkKLSAgICBbY29tbWFuZCwgcGF0
aCwgdmVyc2lvbl0gPSB3b3JkcwotICAgIGlmIHZlcnNpb24gIT0gJ0hUVFAvMS4xJzoKLSAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJlcXVlc3QgdmVyc2lvbiAlcicgJSB2ZXJzaW9uKQot
Ci0gICAgIyBlbWFpbC5wYXJzZXIuUGFyc2VyKCkgcGFyc2VzIFJGQyAyODIyIChSRkMgODIyKSBz
dHlsZSBoZWFkZXJzLgotICAgICMgUkZDIDY0NTUgcmVmZXJzIFJGQyAyNjE2IGZvciBoYW5kc2hh
a2UgcGFyc2luZywgYW5kIFJGQyAyNjE2IHJlZmVycwotICAgICMgUkZDIDgyMi4KLSAgICBoZWFk
ZXJzID0gZW1haWwucGFyc2VyLlBhcnNlcigpLnBhcnNlc3RyKGhlYWRlcl9saW5lcykKLSAgICBy
ZXR1cm4gY29tbWFuZCwgcGF0aCwgdmVyc2lvbiwgaGVhZGVycwotCi0KLWNsYXNzIF9Db250cm9s
QmxvY2sob2JqZWN0KToKLQotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgcGFyc2luZyBy
ZXN1bHQgb2YgbXVsdGlwbGV4aW5nIGNvbnRyb2wgYmxvY2suCi0KLSAgICBDb250cm9sIGJsb2Nr
IHNwZWNpZmljIGF0dHJpYnV0ZXMgd2lsbCBiZSBhZGRlZCBieSBfTXV4RnJhbWVQYXlsb2FkUGFy
c2VyLgotICAgIChlLmcuIGVuY29kZWRfaGFuZHNoYWtlIHdpbGwgYmUgYWRkZWQgZm9yIEFkZENo
YW5uZWxSZXF1ZXN0IGFuZAotICAgIEFkZENoYW5uZWxSZXNwb25zZSkKLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29k
ZQotCi0KLWNsYXNzIF9NdXhGcmFtZVBheWxvYWRQYXJzZXIob2JqZWN0KToKLQotICAgICIiIkEg
Y2xhc3MgdGhhdCBwYXJzZXMgbXVsdGlwbGV4ZWQgZnJhbWUgcGF5bG9hZC4iIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5fZGF0YSA9IHBheWxvYWQK
LSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiA9IDAKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0g
dXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgcmVhZF9jaGFubmVsX2lkKHNl
bGYpOgotICAgICAgICAiIiJSZWFkIGNoYW5uZWwgaWQuCi0KLSAgICAgICAgUmFpc2VzOgotICAg
ICAgICAgICAgVmFsdWVFcnJvcjogd2hlbiB0aGUgcGF5bG9hZCBkb2Vzbid0IGNvbnRhaW4KLSAg
ICAgICAgICAgICAgICB2YWxpZCBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLSAgICAgICAgcmVt
YWluaW5nX2xlbmd0aCA9IGxlbihzZWxmLl9kYXRhKSAtIHNlbGYuX3JlYWRfcG9zaXRpb24KLSAg
ICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBpZiByZW1haW5pbmdfbGVu
Z3RoID09IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwg
aWQgZm9ybWF0JykKLQotICAgICAgICBjaGFubmVsX2lkID0gb3JkKHNlbGYuX2RhdGFbcG9zXSkK
LSAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAxCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgJiAw
eGUwID09IDB4ZTA6Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdfbGVuZ3RoIDwgNDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchTCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kYXRhW3Bvczpwb3MrNF0pWzBdICYg
MHgxZmZmZmZmZgotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSA0Ci0gICAgICAgIGVs
aWYgY2hhbm5lbF9pZCAmIDB4YzAgPT0gMHhjMDoKLSAgICAgICAgICAgIGlmIHJlbWFpbmluZ19s
ZW5ndGggPCAzOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hh
bm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9ICgoKGNoYW5uZWxfaWQg
JiAweDFmKSA8PCAxNikgKwotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QudW5wYWNr
KCchSCcsIHNlbGYuX2RhdGFbcG9zKzE6cG9zKzNdKVswXSkKLSAgICAgICAgICAgIGNoYW5uZWxf
aWRfbGVuZ3RoID0gMwotICAgICAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6Ci0g
ICAgICAgICAgICBpZiByZW1haW5pbmdfbGVuZ3RoIDwgMjoKLSAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchSCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9kYXRhW3Bvczpwb3MrMl0pWzBdICYgMHgzZmZmCi0gICAgICAg
ICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDIKLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiAr
PSBjaGFubmVsX2lkX2xlbmd0aAotCi0gICAgICAgIHJldHVybiBjaGFubmVsX2lkCi0KLSAgICBk
ZWYgcmVhZF9pbm5lcl9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiUmVhZCBhbiBpbm5lciBmcmFt
ZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cjogd2hlbiB0aGUgaW5uZXIgZnJhbWUgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0gICAgICAg
IGlmIGxlbihzZWxmLl9kYXRhKSA9PSBzZWxmLl9yZWFkX3Bvc2l0aW9uOgotICAgICAgICAgICAg
cmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09E
RV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVEKQotCi0gICAgICAgIGJpdHMgPSBvcmQo
c2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAgICAgc2VsZi5fcmVhZF9wb3Np
dGlvbiArPSAxCi0gICAgICAgIGZpbiA9IChiaXRzICYgMHg4MCkgPT0gMHg4MAotICAgICAgICBy
c3YxID0gKGJpdHMgJiAweDQwKSA9PSAweDQwCi0gICAgICAgIHJzdjIgPSAoYml0cyAmIDB4MjAp
ID09IDB4MjAKLSAgICAgICAgcnN2MyA9IChiaXRzICYgMHgxMCkgPT0gMHgxMAotICAgICAgICBv
cGNvZGUgPSBiaXRzICYgMHhmCi0gICAgICAgIHBheWxvYWQgPSBzZWxmLnJlbWFpbmluZ19kYXRh
KCkKLSAgICAgICAgIyBDb25zdW1lIHJlc3Qgb2YgdGhlIG1lc3NhZ2Ugd2hpY2ggaXMgcGF5bG9h
ZCBkYXRhIG9mIHRoZSBvcmlnaW5hbAotICAgICAgICAjIGZyYW1lLgotICAgICAgICBzZWxmLl9y
ZWFkX3Bvc2l0aW9uID0gbGVuKHNlbGYuX2RhdGEpCi0gICAgICAgIHJldHVybiBmaW4sIHJzdjEs
IHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZAotCi0gICAgZGVmIF9yZWFkX251bWJlcihzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3NpdGlvbiArIDEgPiBsZW4oc2VsZi5fZGF0YSk6
Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICdDYW5ub3Qg
cmVhZCB0aGUgZmlyc3QgYnl0ZSBvZiBudW1iZXIgZmllbGQnKQotCi0gICAgICAgIG51bWJlciA9
IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAgICBpZiBudW1iZXIg
JiAweDgwID09IDB4ODA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAg
ICAgICAgICdUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgdGhlIGZpcnN0IGJ5dGUgb2YgbnVt
YmVyIHNob3VsZCAnCi0gICAgICAgICAgICAgICAgJ2JlIHVuc2V0JykKLSAgICAgICAgc2VsZi5f
cmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAgIHBvcyA9IHNlbGYuX3JlYWRfcG9zaXRpb24KLSAg
ICAgICAgaWYgbnVtYmVyID09IDEyNzoKLSAgICAgICAgICAgIGlmIHBvcyArIDggPiBsZW4oc2Vs
Zi5fZGF0YSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBudW1i
ZXIgZmllbGQnKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSA4Ci0gICAgICAg
ICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchUScsIHNlbGYuX2RhdGFbcG9zOnBvcys4XSlb
MF0KLSAgICAgICAgICAgIGlmIG51bWJlciA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFbmNvZGVkIG51bWJlciglZCkgPj0gMl42MycgJSBu
dW1iZXIpCi0gICAgICAgICAgICBpZiBudW1iZXIgPD0gMHhGRkZGOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICclZCBzaG91bGQgbm90IGJl
IGVuY29kZWQgYnkgOSBieXRlcyBlbmNvZGluZycgJSBudW1iZXIpCi0gICAgICAgICAgICByZXR1
cm4gbnVtYmVyCi0gICAgICAgIGlmIG51bWJlciA9PSAxMjY6Ci0gICAgICAgICAgICBpZiBwb3Mg
KyAyID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0ludmFsaWQgbnVtYmVyIGZpZWxkJykKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24g
Kz0gMgotICAgICAgICAgICAgbnVtYmVyID0gc3RydWN0LnVucGFjaygnIUgnLCBzZWxmLl9kYXRh
W3Bvczpwb3MrMl0pWzBdCi0gICAgICAgICAgICBpZiBudW1iZXIgPD0gMTI1OgotICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICclZCBzaG91bGQg
bm90IGJlIGVuY29kZWQgYnkgMyBieXRlcyBlbmNvZGluZycgJSBudW1iZXIpCi0gICAgICAgIHJl
dHVybiBudW1iZXIKLQotICAgIGRlZiBfcmVhZF9zaXplX2FuZF9jb250ZW50cyhzZWxmKToKLSAg
ICAgICAgIiIiUmVhZCBkYXRhIHRoYXQgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZzoKLSAgICAg
ICAgICAgIC0gdGhlIHNpemUgb2YgdGhlIGNvbnRlbnRzIGVuY29kZWQgdGhlIHNhbWUgd2F5IGFz
IHBheWxvYWQgbGVuZ3RoCi0gICAgICAgICAgICAgIG9mIHRoZSBXZWJTb2NrZXQgUHJvdG9jb2wg
d2l0aCAxIGJpdCBwYWRkaW5nIGF0IHRoZSBoZWFkLgotICAgICAgICAgICAgLSB0aGUgY29udGVu
dHMuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzaXplID0gc2VsZi5f
cmVhZF9udW1iZXIoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RyKGUpKQotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIHBv
cyArIHNpemUgPiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NP
TlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkICVkIGJ5dGVzIGRhdGEn
ICUgc2l6ZSkKLQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IHNpemUKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2RhdGFbcG9zOnBvcytzaXplXQotCi0gICAgZGVmIF9yZWFkX2FkZF9jaGFu
bmVsX3JlcXVlc3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJl
c2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDcKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0g
MDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAg
ICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAg
ICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICAjIEludmFsaWQg
ZW5jb2Rpbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IE11eEhhbmRsZXIuCi0gICAgICAgIGVuY29kaW5n
ID0gZmlyc3RfYnl0ZSAmIDB4MwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Js
b2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0spCi0gICAgICAgIGNvbnRyb2xf
YmxvY2suZW5jb2RpbmcgPSBlbmNvZGluZwotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IHNl
bGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29k
ZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hha2UKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xf
YmxvY2sKLQotICAgIGRlZiBfcmVhZF9hZGRfY2hhbm5lbF9yZXNwb25zZShzZWxmLCBmaXJzdF9i
eXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAy
KSAmIDB4MwotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3Qg
YmUgdW5zZXQnKQotCi0gICAgICAgIGNvbnRyb2xfYmxvY2suYWNjZXB0ZWQgPSAoZmlyc3RfYnl0
ZSA+PiA0KSAmIDEKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGluZyA9IGZpcnN0X2J5dGUg
JiAweDMKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lk
ID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBl
OgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9J
TlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29kZWRf
aGFuZHNoYWtlID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCi0gICAgICAgIHJldHVy
biBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfZmxvd19jb250cm9sKHNlbGYsIGZpcnN0
X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAw
eDFmCi0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNh
bENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVY
X0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1
bnNldCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVs
X2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICAgICAgY29udHJvbF9ibG9jay5z
ZW5kX3F1b3RhID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJv
ciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1Bf
Q09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyKGUpKQotCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2Nr
Ci0KLSAgICBkZWYgX3JlYWRfZHJvcF9jaGFubmVsKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xf
YmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFmCi0gICAgICAgIGlm
IHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ss
Ci0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFk
X2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLKQotICAgICAgICByZWFzb24gPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRl
bnRzKCkKLSAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoKLSAgICAgICAgICAgIGNvbnRyb2xf
YmxvY2suZHJvcF9jb2RlID0gTm9uZQotICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9wX21l
c3NhZ2UgPSAnJwotICAgICAgICBlbGlmIGxlbihyZWFzb24pID49IDI6Ci0gICAgICAgICAgICBj
b250cm9sX2Jsb2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcmVhc29uWzoyXSlb
MF0KLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0gcmVhc29uWzI6XQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Io
Ci0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAot
ICAgICAgICAgICAgICAgICdSZWNlaXZlZCBEcm9wQ2hhbm5lbCB0aGF0IGNvbmFpbnMgb25seSAx
LWJ5dGUgcmVhc29uJykKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBf
cmVhZF9uZXdfY2hhbm5lbF9zbG90KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgot
ICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFlCi0gICAgICAgIGlmIHJlc2VydmVk
ICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAg
ICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAg
ICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0gICAgICAgIGNvbnRyb2xf
YmxvY2suZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYgMQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBjb250cm9sX2Jsb2NrLnNsb3RzID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICAgICAg
Y29udHJvbF9ibG9jay5zZW5kX3F1b3RhID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0
aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGUpKQotICAgICAgICByZXR1cm4g
Y29udHJvbF9ibG9jawotCi0gICAgZGVmIHJlYWRfY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAg
ICAgICIiIlJlYWQgY29udHJvbCBibG9jayhzKS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAg
ICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGNvbnRhaW5zIGlu
dmFsaWQgY29udHJvbAotICAgICAgICAgICAgICAgYmxvY2socykuCi0gICAgICAgICAgIFN0b3BJ
dGVyYXRpb246IHdoZW4gbm8gY29udHJvbCBibG9ja3MgbGVmdC4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHdoaWxlIHNlbGYuX3JlYWRfcG9zaXRpb24gPCBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAg
ICAgICBmaXJzdF9ieXRlID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCi0g
ICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAgICAgICAgIG9wY29kZSA9
IChmaXJzdF9ieXRlID4+IDUpICYgMHg3Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrID0gX0Nv
bnRyb2xCbG9jayhvcGNvZGU9b3Bjb2RlKQotICAgICAgICAgICAgaWYgb3Bjb2RlID09IF9NVVhf
T1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1Q6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5f
cmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAg
ICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToK
LSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAot
ICAgICAgICAgICAgICAgICAgICBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAg
ICAgIHlpZWxkIHNlbGYuX3JlYWRfZmxvd19jb250cm9sKGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxv
Y2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6
Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9kcm9wX2NoYW5uZWwoZmlyc3RfYnl0
ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RF
X05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9uZXdf
Y2hhbm5lbF9zbG90KGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAg
ICAgICAgICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSwKLSAgICAgICAgICAg
ICAgICAgICAgJ0ludmFsaWQgb3Bjb2RlICVkJyAlIG9wY29kZSkKLQotICAgICAgICBhc3NlcnQg
c2VsZi5fcmVhZF9wb3NpdGlvbiA9PSBsZW4oc2VsZi5fZGF0YSkKLSAgICAgICAgcmFpc2UgU3Rv
cEl0ZXJhdGlvbgotCi0gICAgZGVmIHJlbWFpbmluZ19kYXRhKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm4gcmVtYWluaW5nIGRhdGEuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9kYXRhW3NlbGYu
X3JlYWRfcG9zaXRpb246XQotCi0KLWNsYXNzIF9Mb2dpY2FsUmVxdWVzdChvYmplY3QpOgotCi0g
ICAgIiIiTWltaWNzIG1vZF9weXRob24gcmVxdWVzdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjaGFubmVsX2lkLCBjb21tYW5kLCBwYXRoLCBwcm90b2NvbCwgaGVhZGVycywKLSAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5j
ZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5lbF9pZDogdGhlIGNoYW5uZWwg
aWQgb2YgdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgICAgIGNvbW1hbmQ6IEhUVFAgcmVx
dWVzdCBjb21tYW5kLgotICAgICAgICAgICAgcGF0aDogSFRUUCByZXF1ZXN0IHBhdGguCi0gICAg
ICAgICAgICBoZWFkZXJzOiBIVFRQIGhlYWRlcnMuCi0gICAgICAgICAgICBjb25uZWN0aW9uOiBf
TG9naWNhbENvbm5lY3Rpb24gaW5zdGFuY2UuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmNo
YW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYubWV0aG9kID0gY29tbWFuZAotICAg
ICAgICBzZWxmLnVyaSA9IHBhdGgKLSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCi0g
ICAgICAgIHNlbGYuaGVhZGVyc19pbiA9IGhlYWRlcnMKLSAgICAgICAgc2VsZi5jb25uZWN0aW9u
ID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICBkZWYgaXNfaHR0cHMo
c2VsZik6Ci0gICAgICAgICIiIk1pbWljIHJlcXVlc3QuaXNfaHR0cHMoKS4KLQotICAgICAgICBS
ZXR1cm5zIEZhbHNlIGJlY2F1c2UgdGhpcyBtZXRob2QgaXMgdXNlZCBvbmx5IGJ5IG9sZCBwcm90
b2NvbHMKLSAgICAgICAgKGhpeGllIGFuZCBoeWJpMDApLgotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgX0xvZ2ljYWxDb25uZWN0aW9uKG9iamVjdCk6Ci0KLSAg
ICAiIiJNaW1pY3MgbW9kX3B5dGhvbiBtcF9jb25uLiIiIgotCi0gICAgIyBGb3IgZGV0YWlscywg
c2VlIHRoZSBjb21tZW50IG9mIHNldF9yZWFkX3N0YXRlKCkuCi0gICAgU1RBVEVfQUNUSVZFID0g
MQotICAgIFNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEID0gMgotICAgIFNUQVRFX1RFUk1JTkFURUQg
PSAzCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIsIGNoYW5uZWxfaWQpOgot
ICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ6IGNoYW5uZWwgaWQgb2YgdGhpcyBjb25uZWN0aW9uLgotICAgICAgICAiIiIKLSAg
ICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLl9jaGFu
bmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhID0gJycKLQot
ICAgICAgICAjIC0gUHJvdGVjdHMgX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbgotICAgICAgICAj
IC0gU2lnbmFscyB0aGUgdGhyZWFkIHdhaXRpbmcgZm9yIGNvbXBsZXRpb24gb2Ygd3JpdGUgYnkg
bXV4IGhhbmRsZXIKLSAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNv
bmRpdGlvbigpCi0gICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNl
Ci0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkK
LSAgICAgICAgc2VsZi5fcmVhZF9zdGF0ZSA9IHNlbGYuU1RBVEVfQUNUSVZFCi0KLSAgICBkZWYg
Z2V0X2xvY2FsX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25u
LmxvY2FsX2FkZHIuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNh
bF9jb25uZWN0aW9uLmdldF9sb2NhbF9hZGRyKCkKLSAgICBsb2NhbF9hZGRyID0gcHJvcGVydHko
Z2V0X2xvY2FsX2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAgICAg
ICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVfYWRkci4iIiIKLSAgICAgICAgcmV0
dXJuIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24uZ2V0X3JlbW90ZV9hZGRy
KCkKLSAgICByZW1vdGVfYWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotICAgIGRl
ZiBnZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXQgbWVtb3JpemVkIGxp
bmVzLiBOb3Qgc3VwcG9ydGVkLiIiIgotICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0
aW9uKCdfTG9naWNhbENvbm5lY3Rpb24gZG9lcyBub3Qgc3VwcG9ydCAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9tZW1vcml6ZWRfbGluZXMnKQotCi0gICAgZGVm
IHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJXcml0ZSBkYXRhLiBtdXhfaGFuZGxlciBz
ZW5kcyBkYXRhIGFzeW5jaHJvbm91c2x5LgotCi0gICAgICAgIFRoZSBjYWxsZXIgd2lsbCBiZSBz
dXNwZW5kZWQgdW50aWwgd3JpdGUgZG9uZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
ZGF0YTogZGF0YSB0byBiZSB3cml0dGVuLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAg
IE11eFVuZXhwZWN0ZWRFeGNlcHRpb246IHdoZW4gY2FsbGVkIGJlZm9yZSBmaW5pc2hpbmcgdGhl
IHByZXZpb3VzCi0gICAgICAgICAgICAgICAgd3JpdGUuCi0gICAgICAgICIiIgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICBpZiBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAg
cmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0xvZ2lj
YWwgY29ubmVjdGlvbiAlZCBpcyBhbHJlYWR5IHdhaXRpbmcgdGhlIGNvbXBsZXRpb24gJwotICAg
ICAgICAgICAgICAgICAgICAnb2Ygd3JpdGUnICUgc2VsZi5fY2hhbm5lbF9pZCkKLQotICAgICAg
ICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gVHJ1ZQotICAgICAgICAgICAg
c2VsZi5fbXV4X2hhbmRsZXIuc2VuZF9kYXRhKHNlbGYuX2NoYW5uZWxfaWQsIGRhdGEpCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ud2FpdCgpCi0gICAgICAgICAgICAjIFRPRE8o
dHlvc2hpbm8pOiBSYWlzZSBhbiBleGNlcHRpb24gaWYgd29rZSB1cCBieSBvbl93cml0ZXJfZG9u
ZS4KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiB3cml0ZV9jb250cm9sX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAg
ICAgICIiIldyaXRlIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5uZWwuCi0KLSAgICAgICAgRG9u
J3Qgd2FpdCBmaW5pc2hpbmcgd3JpdGUgYmVjYXVzZSB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVk
IGJ5Ci0gICAgICAgIG11eCBkaXNwYXRjaGVyLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
ICBkYXRhOiBkYXRhIHRvIGJlIHdyaXR0ZW4uCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5zZW5kX2NvbnRyb2xfZGF0YShkYXRhKQotCi0gICAgZGVmIG9uX3dyaXRlX2Rh
dGFfZG9uZShzZWxmKToKLSAgICAgICAgIiIiQ2FsbGVkIHdoZW4gc2VuZGluZyBkYXRhIGlzIGNv
bXBsZXRlZC4iIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0
aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dhaXRpbmdfd3JpdGVfY29t
cGxldGlvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCBjYWxsIG9mIG9uX3dyaXRlX2RhdGFfZG9uZSBm
b3IgbG9naWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uICVkJyAlIHNlbGYu
X2NoYW5uZWxfaWQpCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24g
PSBGYWxzZQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICBkZWYgb25fd3JpdGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkNhbGxlZCBieSB0
aGUgbXV4IGhhbmRsZXIgd2hlbiB0aGUgd3JpdGVyIHRocmVhZCBoYXMgZmluaXNoZWQuIiIiCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBh
cHBlbmRfZnJhbWVfZGF0YShzZWxmLCBmcmFtZV9kYXRhKToKLSAgICAgICAgIiIiQXBwZW5kIGlu
Y29taW5nIGZyYW1lIGRhdGEuCi0KLSAgICAgICAgQ2FsbGVkIHdoZW4gbXV4X2hhbmRsZXIgZGlz
cGF0Y2hlcyBmcmFtZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nCi0gICAgICAgIGFwcGxpY2F0
aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBmcmFtZV9kYXRhOiBpbmNvbWluZyBm
cmFtZSBkYXRhLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24uYWNx
dWlyZSgpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgKz0gZnJhbWVfZGF0YQotICAgICAg
ICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIi
IlJlYWQgZGF0YS4KLQotICAgICAgICBCbG9ja3MgdW50aWwgZW5vdWdoIGRhdGEgaGFzIGFycml2
ZWQgdmlhIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IGxlbmd0aDogbGVuZ3RoIG9mIGRhdGEgdG8gYmUgcmVhZC4KLSAgICAgICAgUmFpc2VzOgotICAg
ICAgICAgICAgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb246IHdoZW4gY2xvc2luZyBo
YW5kc2hha2UgZm9yIHRoaXMKLSAgICAgICAgICAgICAgICBsb2dpY2FsIGNoYW5uZWwgaGFzIGJl
ZW4gcmVjZWl2ZWQuCi0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjog
d2hlbiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbiBoYXMKLSAgICAgICAgICAgICAgICBjbG9zZWQs
IG9yIGFuIGVycm9yIGlzIGNhdXNlZCBvbiB0aGUgcmVhZGVyIHRocmVhZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICB3aGlsZSAo
c2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX0FDVElWRSBhbmQKLSAgICAgICAgICAgICAg
IGxlbihzZWxmLl9pbmNvbWluZ19kYXRhKSA8IGxlbmd0aCk6Ci0gICAgICAgICAgICBzZWxmLl9y
ZWFkX2NvbmRpdGlvbi53YWl0KCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBzZWxm
Ll9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICdMb2dpY2FsIGNoYW5uZWwgJWQgaGFzIGNsb3NlZC4nICUgc2VsZi5fY2hhbm5l
bF9pZCkKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX1RF
Uk1JTkFURUQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBmYWlsZWQuIExv
Z2ljYWwgY2hhbm5lbCAoJWQpIGNsb3NlZCcgJQotICAgICAgICAgICAgICAgICAgICAobGVuZ3Ro
LCBzZWxmLl9jaGFubmVsX2lkKSkKLQotICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl9pbmNvbWlu
Z19kYXRhWzpsZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhID0gc2VsZi5f
aW5jb21pbmdfZGF0YVtsZW5ndGg6XQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAg
ICBkZWYgc2V0X3JlYWRfc3RhdGUoc2VsZiwgbmV3X3N0YXRlKToKLSAgICAgICAgIiIiU2V0IHRo
ZSBzdGF0ZSBvZiB0aGlzIGNvbm5lY3Rpb24uCi0KLSAgICAgICAgQ2FsbGVkIHdoZW4gYW4gZXZl
bnQgZm9yIHRoaXMgY29ubmVjdGlvbiBoYXMgb2NjdXJyZWQuCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBuZXdfc3RhdGU6IHN0YXRlIHRvIGJlIHNldC4gbmV3X3N0YXRlIG11c3QgYmUgb25l
IG9mIGZvbGxvd2luZ3M6Ci0gICAgICAgICAgICAtIFNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEOiB3
aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZvciB0aGlzCi0gICAgICAgICAgICAgICAgY29ubmVjdGlv
biBoYXMgYmVlbiByZWNlaXZlZC4KLSAgICAgICAgICAgIC0gU1RBVEVfVEVSTUlOQVRFRDogd2hl
biB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbiBoYXMgY2xvc2VkIG9yCi0gICAgICAgICAgICAgICAg
RHJvcENoYW5uZWwgb2YgdGhpcyBjb25uZWN0aW9uIGhhcyByZWNlaXZlZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9y
ZWFkX3N0YXRlID0gbmV3X3N0YXRlCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLm5vdGlm
eSgpCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNzIF9J
bm5lck1lc3NhZ2Uob2JqZWN0KToKLQotICAgICIiIkhvbGQgdGhlIHJlc3VsdCBvZiBfSW5uZXJN
ZXNzYWdlQnVpbGRlci5idWlsZCgpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29k
ZSwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYu
cGF5bG9hZCA9IHBheWxvYWQKLQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlQnVpbGRlcihvYmplY3Qp
OgotCi0gICAgIiIiQ2xhc3MgdG8gYnVpbGQgYW4gX0lubmVyTWVzc2FnZS4KLQotICAgIEEgY2xh
c3MgdGhhdCBob2xkcyB0aGUgY29udGV4dCBvZiBpbm5lciBtZXNzYWdlIGZyYWdtZW50YXRpb24g
YW5kCi0gICAgYnVpbGRzIGEgbWVzc2FnZSBmcm9tIGZyYWdtZW50ZWQgaW5uZXIgZnJhbWUocyku
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvbnRy
b2xfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRz
ID0gW10KLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYu
X3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9mcmFtZV9oYW5k
bGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0KLSAgICBkZWYgX2hhbmRsZV9maXJzdChzZWxmLCBm
cmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJTlVB
VElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbignU2VuZGluZyBp
bnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUnKQotCi0gICAgICAgIGlmIGNvbW1vbi5pc19jb250
cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nl
c3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKGZyYW1lKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9tZXNzYWdlKGZyYW1l
KQotCi0gICAgZGVmIF9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBmcmFt
ZSk6Ci0gICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCi0gICAgICAg
IHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0g
ICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVy
ID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfY29udHJvbAotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKCkK
LQotICAgIGRlZiBfcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZiwgZnJhbWUp
OgotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICBz
ZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAg
ICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9
IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2UKLSAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfbWVzc2FnZSgpCi0K
LSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVkX2NvbnRyb2woc2VsZiwgZnJhbWUpOgotICAgICAg
ICBpZiBmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAg
ICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1NlbmRp
bmcgaW52YWxpZCBvcGNvZGUgJWQgd2hpbGUgc2VuZGluZyBmcmFnbWVudGVkIGNvbnRyb2wgJwot
ICAgICAgICAgICAgICAgICdtZXNzYWdlJyAlIGZyYW1lLm9wY29kZSkKLSAgICAgICAgc2VsZi5f
cGVuZGluZ19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAg
aWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVy
biBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbCgpCi0KLSAgICBkZWYgX3JlYXNz
ZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYpOgotICAgICAgICBvcGNvZGUgPSBzZWxmLl9j
b250cm9sX29wY29kZQotICAgICAgICBwYXlsb2FkID0gJycuam9pbihzZWxmLl9wZW5kaW5nX2Nv
bnRyb2xfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9jb250cm9sX29wY29kZSA9IE5vbmUKLSAg
ICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIGlmIHNl
bGYuX21lc3NhZ2Vfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVf
aGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2UKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QKLSAg
ICAgICAgcmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVmIF9o
YW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIyBTZW5kZXIg
Y2FuIGludGVybGVhdmUgYSBjb250cm9sIG1lc3NhZ2Ugd2hpbGUgc2VuZGluZyBmcmFnbWVudGVk
Ci0gICAgICAgICMgbWVzc2FnZXMuCi0gICAgICAgIGlmIGNvbW1vbi5pc19jb250cm9sX29wY29k
ZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgaWYgc2VsZi5fY29udHJvbF9vcGNvZGUgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAgICAgJ1Nob3VsZCBub3QgcmVhY2ggaGVyZShCdWcgaW4gYnVpbGRl
ciknKQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9j
b250cm9sKGZyYW1lKQotCi0gICAgICAgIGlmIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RF
X0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCB3aGlsZSBzZW5kaW5n
IGZyYWdtZW50ZWQgbWVzc2FnZScgJQotICAgICAgICAgICAgICAgIGZyYW1lLm9wY29kZSkKLSAg
ICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9h
ZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfbWVzc2FnZSgpCi0KLSAg
ICBkZWYgX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBvcGNv
ZGUgPSBzZWxmLl9tZXNzYWdlX29wY29kZQotICAgICAgICBwYXlsb2FkID0gJycuam9pbihzZWxm
Ll9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29k
ZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cyA9IFtdCi0g
ICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QKLSAgICAgICAg
cmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVmIGJ1aWxkKHNl
bGYsIGZyYW1lKToKLSAgICAgICAgIiIiQnVpbGQgYW4gaW5uZXIgbWVzc2FnZS4KLQotICAgICAg
ICBSZXR1cm5zIGFuIF9Jbm5lck1lc3NhZ2UgaW5zdGFuY2Ugd2hlbiB0aGUgZ2l2ZW4gZnJhbWUg
aXMgdGhlIGxhc3QKLSAgICAgICAgZnJhZ21lbnRlZCBmcmFtZS4gUmV0dXJucyBOb25lIG90aGVy
d2lzZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZnJhbWU6IGFuIGlubmVyIGZyYW1l
LgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdo
ZW4gcmVjZWl2ZWQgaW52YWxpZCBvcGNvZGUuIChlLmcuCi0gICAgICAgICAgICAgICAgcmVjZWl2
aW5nIG5vbiBjb250aW51YXRpb24gZGF0YSBvcGNvZGUgYnV0IHRoZSBmaW4gZmxhZyBvZgotICAg
ICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBpbm5lciBmcmFtZSB3YXMgbm90IHNldC4pCi0gICAg
ICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fZnJhbWVfaGFuZGxlcihmcmFtZSkKLQotCi1j
bGFzcyBfTG9naWNhbFN0cmVhbShTdHJlYW0pOgotCi0gICAgIiIiTWltaWNzIHRoZSBTdHJlYW0g
Y2xhc3MuCi0KLSAgICBUaGlzIGNsYXNzIGludGVycHJldHMgbXVsdGlwbGV4ZWQgV2ViU29ja2V0
IGZyYW1lcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJl
YW1fb3B0aW9ucywgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSk6Ci0gICAgICAgICIiIkNvbnN0
cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDog
X0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgc3RyZWFtX29wdGlvbnM6IFN0
cmVhbU9wdGlvbnMgaW5zdGFuY2UuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBJbml0aWFsIHNl
bmQgcXVvdGEuCi0gICAgICAgICAgICByZWNlaXZlX3F1b3RhOiBJbml0aWFsIHJlY2VpdmUgcXVv
dGEuCi0gICAgICAgICIiIgotICAgICAgICAjIFBoeXNpY2FsIHN0cmVhbSBpcyByZXNwb25zaWJs
ZSBmb3IgbWFza2luZy4KLSAgICAgICAgc3RyZWFtX29wdGlvbnMudW5tYXNrX3JlY2VpdmUgPSBG
YWxzZQotICAgICAgICBTdHJlYW0uX19pbml0X18oc2VsZiwgcmVxdWVzdCwgc3RyZWFtX29wdGlv
bnMpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9z
ZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAgICAjIC0gUHJvdGVjdHMgX3NlbmRfY2xvc2Vk
IGFuZCBfc2VuZF9xdW90YQotICAgICAgICAjIC0gU2lnbmFscyB0aGUgdGhyZWFkIHdhaXRpbmcg
Zm9yIHNlbmQgcXVvdGEgcmVwbGVuaXNoZWQKLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24g
PSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLQotICAgICAgICAjIFRoZSBvcGNvZGUgb2YgdGhlIGZp
cnN0IGZyYW1lIGluIG1lc3NhZ2VzLgotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IGNv
bW1vbi5PUENPREVfVEVYVAotICAgICAgICAjIFRydWUgd2hlbiB0aGUgbGFzdCBtZXNzYWdlIHdh
cyBmcmFnbWVudGVkLgotICAgICAgICBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50ZWQg
PSBGYWxzZQotCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgPSByZWNlaXZlX3F1b3RhCi0g
ICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9yZSA9IHRocmVhZGluZy5TZW1h
cGhvcmUoKQotCi0gICAgICAgIHNlbGYuX2lubmVyX21lc3NhZ2VfYnVpbGRlciA9IF9Jbm5lck1l
c3NhZ2VCdWlsZGVyKCkKLQotICAgIGRlZiBfY3JlYXRlX2lubmVyX2ZyYW1lKHNlbGYsIG9wY29k
ZSwgcGF5bG9hZCwgZW5kPVRydWUpOgotICAgICAgICBmcmFtZSA9IEZyYW1lKGZpbj1lbmQsIG9w
Y29kZT1vcGNvZGUsIHBheWxvYWQ9cGF5bG9hZCkKLSAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBp
biBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICBmcmFt
ZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIGlmIGxlbihwYXlsb2FkKSAhPSBsZW4o
ZnJhbWUucGF5bG9hZCk6Ci0gICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdNdXggZXh0ZW5zaW9uIG11c3Qgbm90IGJlIHVzZWQgYWZ0ZXIg
ZXh0ZW5zaW9ucyB3aGljaCBjaGFuZ2UgJwotICAgICAgICAgICAgICAgICcgZnJhbWUgYm91bmRh
cnknKQotCi0gICAgICAgIGZpcnN0X2J5dGUgPSAoKGZyYW1lLmZpbiA8PCA3KSB8IChmcmFtZS5y
c3YxIDw8IDYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAoZnJhbWUucnN2MiA8PCA1KSB8IChm
cmFtZS5yc3YzIDw8IDQpIHwgZnJhbWUub3Bjb2RlKQotICAgICAgICByZXR1cm4gY2hyKGZpcnN0
X2J5dGUpICsgZnJhbWUucGF5bG9hZAotCi0gICAgZGVmIF93cml0ZV9pbm5lcl9mcmFtZShzZWxm
LCBvcGNvZGUsIHBheWxvYWQsIGVuZD1UcnVlKToKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBs
ZW4ocGF5bG9hZCkKLSAgICAgICAgd3JpdGVfcG9zaXRpb24gPSAwCi0KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgIyBBbiBpbm5lciBmcmFtZSB3aWxsIGJlIGZyYWdtZW50ZWQgaWYgdGhlcmUg
aXMgbm8gZW5vdWdoIHNlbmQKLSAgICAgICAgICAgICMgcXVvdGEuIFRoaXMgc2VtYXBob3JlIGVu
c3VyZXMgdGhhdCBmcmFnbWVudGVkIGlubmVyIGZyYW1lcyBhcmUKLSAgICAgICAgICAgICMgc2Vu
dCBpbiBvcmRlciBvbiB0aGUgbG9naWNhbCBjaGFubmVsLgotICAgICAgICAgICAgIyBOb3RlIHRo
YXQgZnJhbWVzIHRoYXQgY29tZSBmcm9tIG90aGVyIGxvZ2ljYWwgY2hhbm5lbHMgb3IKLSAgICAg
ICAgICAgICMgbXVsdGlwbGV4aW5nIGNvbnRyb2wgYmxvY2tzIGNhbiBiZSBpbnNlcnRlZCBiZXR3
ZWVuIGZyYWdtZW50ZWQKLSAgICAgICAgICAgICMgaW5uZXIgZnJhbWVzIG9uIHRoZSBwaHlzaWNh
bCBjaGFubmVsLgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3Jl
LmFjcXVpcmUoKQotCi0gICAgICAgICAgICAjIENvbnN1bWUgYW4gb2N0ZXQgcXVvdGEgd2hlbiB0
aGlzIGlzIHRoZSBmaXJzdCBmcmFnbWVudGVkIGZyYW1lLgotICAgICAgICAgICAgaWYgb3Bjb2Rl
ICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2VuZF9jbG9zZWQpIGFuZCBzZWxmLl9zZW5k
X3F1b3RhID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlv
bi53YWl0KCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9zZW5kX2Nsb3NlZDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0aW9uICVkIGlzIGNsb3NlZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkK
LQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhIC09IDEKLSAgICAgICAgICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgICAgICAgICAgd2hpbGUgd3JpdGVfcG9zaXRpb24gPCBwYXlsb2FkX2xl
bmd0aDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgICAgICB3aGlsZSAobm90IHNl
bGYuX3NlbmRfY2xvc2VkKSBhbmQgc2VsZi5fc2VuZF9xdW90YSA9PSAwOgotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdObyBxdW90YS4gV2FpdGluZyBGbG93Q29udHJvbCBtZXNzYWdlIGZvciAlZC4nICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi53YWl0KCkKLQotICAgICAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9zZW5kX2Nsb3NlZDoKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnTG9naWNhbCBjb25uZWN0aW9uICVkIGlzIGNsb3NlZCcgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucmVxdWVzdC5fY2hhbm5lbF9pZCkKLQotICAgICAgICAgICAgICAg
ICAgICByZW1haW5pbmcgPSBwYXlsb2FkX2xlbmd0aCAtIHdyaXRlX3Bvc2l0aW9uCi0gICAgICAg
ICAgICAgICAgICAgIHdyaXRlX2xlbmd0aCA9IG1pbihzZWxmLl9zZW5kX3F1b3RhLCByZW1haW5p
bmcpCi0gICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lX2VuZCA9ICgKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZCBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICh3cml0ZV9wb3Np
dGlvbiArIHdyaXRlX2xlbmd0aCA9PSBwYXlsb2FkX2xlbmd0aCkpCi0KLSAgICAgICAgICAgICAg
ICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9jcmVhdGVfaW5uZXJfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBvcGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkW3dy
aXRlX3Bvc2l0aW9uOndyaXRlX3Bvc2l0aW9uK3dyaXRlX2xlbmd0aF0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICBpbm5lcl9mcmFtZV9lbmQpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nl
bmRfcXVvdGEgLT0gd3JpdGVfbGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnQ29uc3VtZWQgcXVvdGE9JWQsIHJlbWFpbmluZz0lZCcgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX2xlbmd0aCwgc2VsZi5fc2VuZF9xdW90
YSkpCi0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgICAgICAjIFdyaXRpbmcgZGF0
YSB3aWxsIGJsb2NrIHRoZSB3b3JrZXIgc28gd2UgbmVlZCB0byByZWxlYXNlCi0gICAgICAgICAg
ICAgICAgIyBfc2VuZF9jb25kaXRpb24gYmVmb3JlIHdyaXRpbmcuCi0gICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGlubmVyIGZyYW1lOiAlcicgJSBpbm5lcl9mcmFt
ZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoaW5uZXJf
ZnJhbWUpCi0gICAgICAgICAgICAgICAgd3JpdGVfcG9zaXRpb24gKz0gd3JpdGVfbGVuZ3RoCi0K
LSAgICAgICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgotCi0g
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dy
aXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9yZS5yZWxlYXNlKCkKLQotICAgIGRlZiByZXBsZW5pc2hf
c2VuZF9xdW90YShzZWxmLCBzZW5kX3F1b3RhKToKLSAgICAgICAgIiIiUmVwbGVuaXNoIHNlbmQg
cXVvdGEuIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9xdW90YSArIHNlbmRfcXVvdGEg
PiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9
IDAKLSAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9QX0NPREVfU0VORF9RVU9U
QV9PVkVSRkxPVykKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgKz0gc2VuZF9xdW90YQot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXBsZW5pc2hlZCBzZW5kIHF1b3RhIGZv
ciBjaGFubmVsIGlkICVkOiAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIHNlbGYuX3NlbmRfcXVvdGEpKQotICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAg
ICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGNvbnN1bWVfcmVj
ZWl2ZV9xdW90YShzZWxmLCBhbW91bnQpOgotICAgICAgICAiIiJDb25zdW1lIHJlY2VpdmUgcXVv
dGEuIFJldHVybnMgRmFsc2Ugb24gZmFpbHVyZS4iIiIKLSAgICAgICAgaWYgc2VsZi5fcmVjZWl2
ZV9xdW90YSA8IGFtb3VudDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnVmlvbGF0
ZSBxdW90YSBvbiBjaGFubmVsIGlkICVkOiAlZCA8ICVkJyAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSwgYW1vdW50KSkKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhIC09IGFtb3VudAotICAg
ICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBl
bmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnNlbmRf
bWVzc2FnZS4iIiIKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoK
LSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFu
ZHNoYWtlJykKLQotICAgICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5p
Y29kZSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ01lc3NhZ2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0
cicpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9Q
Q09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5P
UENPREVfVEVYVAotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcp
Ci0KLSAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdf
bWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZp
bHRlcihtZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICBpZiBzZWxmLl9sYXN0X21lc3Nh
Z2Vfd2FzX2ZyYWdtZW50ZWQ6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gc2VsZi5fbWVzc2Fn
ZV9vcGNvZGU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdN
ZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnZnJhbWVzIGZvciB0aGUgc2FtZSBtZXNzYWdlJykKLSAgICAg
ICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IG9wY29kZQotCi0gICAgICAgIHNl
bGYuX3dyaXRlX2lubmVyX2ZyYW1lKG9wY29kZSwgbWVzc2FnZSwgZW5kKQotICAgICAgICBzZWxm
Ll9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdtZW50ZWQgPSBub3QgZW5kCi0KLSAgICBkZWYgX3JlY2Vp
dmVfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fcmVjZWl2ZV9mcmFt
ZS4KLQotICAgICAgICBJbiBhZGRpdGlvbiB0byBjYWxsIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZSwg
dGhpcyBtZXRob2QgYWRkcyB0aGUgYW1vdW50Ci0gICAgICAgIG9mIHBheWxvYWQgdG8gcmVjZWl2
aW5nIHF1b3RhIGFuZCBzZW5kcyBGbG93Q29udHJvbCB0byB0aGUgY2xpZW50LgotICAgICAgICBX
ZSBuZWVkIHRvIGRvIGl0IGhlcmUgYmVjYXVzZSBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkgaGFu
ZGxlcwotICAgICAgICBjb250cm9sIGZyYW1lcyBpbnRlcm5hbGx5LgotICAgICAgICAiIiIKLSAg
ICAgICAgb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBTdHJlYW0uX3Jl
Y2VpdmVfZnJhbWUoc2VsZikKLSAgICAgICAgYW1vdW50ID0gbGVuKHBheWxvYWQpCi0gICAgICAg
ICMgUmVwbGVuaXNoIGV4dHJhIG9uZSBvY3RldCB3aGVuIHJlY2VpdmluZyB0aGUgZmlyc3QgZnJh
Z21lbnRlZCBmcmFtZS4KLSAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElO
VUFUSU9OOgotICAgICAgICAgICAgYW1vdW50ICs9IDEKLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9x
dW90YSArPSBhbW91bnQKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9s
KHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFtb3VudCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5n
IGZsb3cgY29udHJvbCBmb3IgJWQsIHJlcGxlbmlzaGVkPSVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBhbW91bnQpKQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0g
ICAgICAgIHJldHVybiBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MwotCi0g
ICAgZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU3RyZWFtLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lLiIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBpbm5lcl9tZXNzYWdlID0gc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVy
LmJ1aWxkKGZyYW1lKQotICAgICAgICBleGNlcHQgSW52YWxpZEZyYW1lRXhjZXB0aW9uOgotICAg
ICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04pCi0KLSAg
ICAgICAgaWYgaW5uZXJfbWVzc2FnZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gaW5uZXJfbWVzc2FnZS5vcGNvZGUKLSAg
ICAgICAgcmV0dXJuIGlubmVyX21lc3NhZ2UucGF5bG9hZAotCi0gICAgZGVmIHJlY2VpdmVfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZS4i
IiIKLSAgICAgICAgIyBKdXN0IGNhbGwgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpLCBidXQgY2F0
Y2gKLSAgICAgICAgIyBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiwgd2hpY2ggaXMg
cmFpc2VkIHdoZW4gdGhlIGxvZ2ljYWwKLSAgICAgICAgIyBjb25uZWN0aW9uIGhhcyBjbG9zZWQg
Z3JhY2VmdWxseS4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIFN0cmVhbS5yZWNl
aXZlX21lc3NhZ2Uoc2VsZikKLSAgICAgICAgZXhjZXB0IExvZ2ljYWxDb25uZWN0aW9uQ2xvc2Vk
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hh
a2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLl9zZW5k
X2Nsb3NpbmdfaGFuZHNoYWtlLiIiIgotICAgICAgICBib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Nl
bmRpbmcgY2xvc2luZyBoYW5kc2hha2UgZm9yICVkOiAoJXIsICVyKScgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgY29kZSwgcmVhc29uKSkK
LSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9DTE9TRSwgYm9k
eSwgZW5kPVRydWUpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9
IFRydWUKLQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0nJyk6Ci0gICAgICAgICIiIk92
ZXJyaWRlIFN0cmVhbS5zZW5kX3BpbmcuIiIiCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
U2VuZGluZyBwaW5nIG9uIGxvZ2ljYWwgY2hhbm5lbCAlZDogJXInICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGJvZHkpKQotICAgICAgICBz
ZWxmLl93cml0ZV9pbm5lcl9mcmFtZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIGVuZD1UcnVl
KQotCi0gICAgICAgIHNlbGYuX3BpbmdfcXVldWUuYXBwZW5kKGJvZHkpCi0KLSAgICBkZWYgX3Nl
bmRfcG9uZyhzZWxmLCBib2R5KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLl9zZW5kX3Bv
bmcuIiIiCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBwb25nIG9uIGxvZ2lj
YWwgY2hhbm5lbCAlZDogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQsIGJvZHkpKQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFt
ZShjb21tb24uT1BDT0RFX1BPTkcsIGJvZHksIGVuZD1UcnVlKQotCi0gICAgZGVmIGNsb3NlX2Nv
bm5lY3Rpb24oc2VsZiwgY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249
JycpOgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbi4iIiIKLSAg
ICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQ2xvc2luZyBsb2dpY2FsIGNvbm5lY3Rpb24gJWQnICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgIGRlZiBzdG9wX3NlbmRpbmcoc2VsZik6Ci0g
ICAgICAgICIiIlN0b3AgYWNjZXB0aW5nIG5ldyBzZW5kIG9wZXJhdGlvbiAoX3dyaXRlX2lubmVy
X2ZyYW1lKS4iIiIKLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAg
ICAgIHNlbGYuX3NlbmRfY2xvc2VkID0gVHJ1ZQotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlv
bi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1j
bGFzcyBfT3V0Z29pbmdEYXRhKG9iamVjdCk6Ci0KLSAgICAiIiJTaW1wbGUgZGF0YS9jaGFubmVs
IGNvbnRhaW5lci4KLQotICAgIEEgc3RydWN0dXJlIHRoYXQgaG9sZHMgZGF0YSB0byBiZSBzZW50
IHZpYSBwaHlzaWNhbCBjb25uZWN0aW9uIGFuZAotICAgIG9yaWdpbiBvZiB0aGUgZGF0YS4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkYXRhKToKLSAgICAg
ICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLmRhdGEgPSBkYXRh
Ci0KLQotY2xhc3MgX1BoeXNpY2FsQ29ubmVjdGlvbldyaXRlcih0aHJlYWRpbmcuVGhyZWFkKToK
LQotICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHdyaXRpbmcgZGF0YSB0
byBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB0aGVy
ZSBpcyBubyB0aHJlYWQtc2FmZXR5IHByb2JsZW0gd2hlbiB0aGUgcmVhZGVyCi0gICAgdGhyZWFk
IHJlYWRzIGRhdGEgZnJvbSB0aGUgc2FtZSBzb2NrZXQgYXQgYSB0aW1lLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0
IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFuZGxlcjog
X011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRpbmcuVGhy
ZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0g
ICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0KLSAgICAgICAgIyBXaGVuIHNldCwgbWFrZSB0
aGlzIHRocmVhZCBzdG9wIGFjY2VwdGluZyBuZXcgZGF0YSwgZmx1c2ggcGVuZGluZwotICAgICAg
ICAjIGRhdGEgYW5kIGV4aXQuCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UK
LSAgICAgICAgIyBUaGUgY2xvc2UgY29kZSBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAg
ICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUKLSAg
ICAgICAgIyBEZXF1ZSBmb3IgcGFzc2luZyB3cml0ZSBkYXRhLiBJdCdzIHByb3RlY3RlZCBieSBf
ZGVxdWVfY29uZGl0aW9uCi0gICAgICAgICMgdW50aWwgX3N0b3BfcmVxdWVzdGVkIGlzIHNldC4K
LSAgICAgICAgc2VsZi5fZGVxdWUgPSBjb2xsZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgICMgLSBQ
cm90ZWN0cyBfZGVxdWUsIF9zdG9wX3JlcXVlc3RlZCBhbmQgX2Nsb3NlX2NvZGUKLSAgICAgICAg
IyAtIFNpZ25hbHMgdGhyZWFkcyB3YWl0aW5nIGZvciB0aGVtIHRvIGJlIGF2YWlsYWJsZQotICAg
ICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLQotICAg
IGRlZiBwdXRfb3V0Z29pbmdfZGF0YShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiUHV0IG91dGdv
aW5nIGRhdGEuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IF9PdXRnb2luZ0Rh
dGEgaW5zdGFuY2UuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbjogd2hlbiB0aGUgdGhyZWFkIGhhcyBiZWVuIHJlcXVlc3RlZCB0bwotICAgICAgICAg
ICAgICAgIHRlcm1pbmF0ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3N0
b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bignQ2Fubm90IHdyaXRlIGRhdGEgYW55bW9yZScpCi0KLSAgICAgICAgICAgIHNlbGYuX2RlcXVl
LmFwcGVuZChkYXRhKQotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLm5vdGlmeSgp
Ci0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVs
ZWFzZSgpCi0KLSAgICBkZWYgX3dyaXRlX2RhdGEoc2VsZiwgb3V0Z29pbmdfZGF0YSk6Ci0gICAg
ICAgIG1lc3NhZ2UgPSAoX2VuY29kZV9jaGFubmVsX2lkKG91dGdvaW5nX2RhdGEuY2hhbm5lbF9p
ZCkgKwotICAgICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEuZGF0YSkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtLnNlbmRfbWVz
c2FnZSgKLSAgICAgICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9
VHJ1ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgdXRpbC5w
cmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8g
c2VuZCBtZXNzYWdlIHRvICVyOiAnICUKLSAgICAgICAgICAgICAgICAoc2VsZi5fbXV4X2hhbmRs
ZXIucGh5c2ljYWxfY29ubmVjdGlvbi5yZW1vdGVfYWRkciwpLCBlKQotICAgICAgICAgICAgcmFp
c2UKLQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYmxvY2sg
dGhlIHRocmVhZCB0aGF0IHNlbmRzCi0gICAgICAgICMgY29udHJvbCBkYXRhIGFzIHdlbGwuCi0g
ICAgICAgIGlmIG91dGdvaW5nX2RhdGEuY2hhbm5lbF9pZCAhPSBfQ09OVFJPTF9DSEFOTkVMX0lE
OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3dyaXRlX2RhdGFfZG9uZShv
dXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAgaWYg
bGVuKHNlbGYuX2RlcXVlKSA9PSAwOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9j
b25kaXRpb24ud2FpdCgpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAg
ICAgICAgICBvdXRnb2luZ19kYXRhID0gc2VsZi5fZGVxdWUucG9wbGVmdCgpCi0KLSAgICAgICAg
ICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICAgICAg
c2VsZi5fd3JpdGVfZGF0YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAgICAgIHNlbGYuX2Rl
cXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLQotICAgICAgICAgICAgIyBGbHVzaCBkZXF1ZS4KLSAg
ICAgICAgICAgICMKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgc2VsZi5fZGVxdWVfY29u
ZGl0aW9uIGlzIGFsd2F5cyBhY3F1aXJlZC4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICB3aGlsZSBsZW4oc2VsZi5fZGVxdWUpID4gMDoKLSAgICAgICAgICAgICAgICAgICAgb3V0
Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQoKQotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl93cml0ZV9kYXRhKG91dGdvaW5nX2RhdGEpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAg
ICAgIyBDbG9zZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgICMgRG9uJ3Qgd2FpdCB0aGUgcmVzcG9uc2UgaGVyZS4gVGhlIHJlc3BvbnNlIHdp
bGwgYmUgcmVhZAotICAgICAgICAgICAgICAgICMgYnkgdGhlIHJlYWRlciB0aHJlYWQuCi0gICAg
ICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtLmNsb3NlX2Nvbm5l
Y3Rpb24oCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUsIHdhaXRfcmVzcG9u
c2U9RmFsc2UpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAnRmFpbGVkIHRvIGNsb3NlIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uOiAlcicgJSBlKQot
ICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5ub3RpZnlfd3JpdGVyX2RvbmUoKQotCi0gICAgZGVmIHN0b3Aoc2VsZiwg
Y2xvc2VfY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKToKLSAgICAgICAgIiIiU3Rv
cCB0aGUgd3JpdGVyIHRocmVhZC4iIiIKLSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKLSAgICAgICAgc2Vs
Zi5fY2xvc2VfY29kZSA9IGNsb3NlX2NvZGUKLSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9u
Lm5vdGlmeSgpCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1j
bGFzcyBfUGh5c2ljYWxDb25uZWN0aW9uUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgotCi0gICAg
IiIiQSB0aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gcGh5
c2ljYWwgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhf
aGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAg
ICAgICAiIiIKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2Vs
Zi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVl
KQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBwaHlzaWNhbF9zdHJlYW0gPSBzZWxmLl9tdXhfaGFuZGxl
ci5waHlzaWNhbF9zdHJlYW0KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcGh5c2ljYWxfc3Ry
ZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25l
OgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICMgQmVsb3cgaGFw
cGVucyBvbmx5IHdoZW4gYSBkYXRhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAg
ICAgb3Bjb2RlID0gcGh5c2ljYWxfc3RyZWFtLmdldF9sYXN0X3JlY2VpdmVkX29wY29kZSgpCi0g
ICAgICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZOgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24o
Ci0gICAgICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElO
R19NRVNTQUdFLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEgdGV4dCBtZXNz
YWdlIG9uIHBoeXNpY2FsIGNvbm5lY3Rpb24nKQotICAgICAgICAgICAgICAgICAgICBicmVhawot
Ci0gICAgICAgICAgICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gYXMgZToK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAg
ICAgICBicmVhawotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4
X2hhbmRsZXIuZGlzcGF0Y2hfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgZXhjZXB0IFBo
eXNpY2FsQ29ubmVjdGlvbkVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hh
bmRsZXIuZmFpbF9waHlzaWNhbF9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICBlLmRy
b3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBl
eGNlcHQgTG9naWNhbENoYW5uZWxFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX211
eF9oYW5kbGVyLmZhaWxfbG9naWNhbF9jaGFubmVsKAotICAgICAgICAgICAgICAgICAgICBlLmNo
YW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFj
ay5mb3JtYXRfZXhjKCkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5ub3RpZnlfcmVhZGVyX2RvbmUoKQotCi0KLWNsYXNzIF9Xb3JrZXIodGhyZWFk
aW5nLlRocmVhZCk6Ci0KLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBy
dW5uaW5nIHRoZSBjb3JyZXNwb25kaW5nIGFwcGxpY2F0aW9uCi0gICAgaGFuZGxlci4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlciwgcmVxdWVzdCk6Ci0gICAg
ICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAgICAgcmVxdWVz
dDogX0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAgdGhyZWFk
aW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFu
ZGxlcgotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLnNldERh
ZW1vbihUcnVlKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdMb2dpY2FsIGNoYW5uZWwgd29ya2VyIHN0YXJ0ZWQuIChpZD0lZCknICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgIyBOb24tY3JpdGljYWwgZXhjZXB0aW9ucyB3aWxsIGJlIGhhbmRsZWQg
YnkgZGlzcGF0Y2hlci4KLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmRpc3BhdGNoZXIu
dHJhbnNmZXJfZGF0YShzZWxmLl9yZXF1ZXN0KQotICAgICAgICBleGNlcHQgTG9naWNhbENoYW5u
ZWxFcnJvciBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9sb2dpY2Fs
X2NoYW5uZWwoCi0gICAgICAgICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRyb3BfY29kZSwgZS5t
ZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIu
bm90aWZ5X3dvcmtlcl9kb25lKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLQotCi1jbGFzcyBf
TXV4SGFuZHNoYWtlcihoeWJpLkhhbmRzaGFrZXIpOgotCi0gICAgIiIiT3BlbmluZyBoYW5kc2hh
a2UgcHJvY2Vzc29yIGZvciBtdWx0aXBsZXhpbmcuIiIiCi0KLSAgICBfRFVNTVlfV0VCU09DS0VU
X0tFWSA9ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCwgZGlzcGF0Y2hlciwgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSk6Ci0gICAg
ICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgcmVxdWVzdDogX0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgZGlzcGF0
Y2hlcjogRGlzcGF0Y2hlciBpbnN0YW5jZSAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0gICAgICAg
ICAgICBzZW5kX3F1b3RhOiBJbml0aWFsIHNlbmQgcXVvdGEuCi0gICAgICAgICAgICByZWNlaXZl
X3F1b3RhOiBJbml0aWFsIHJlY2VpdmUgcXVvdGEuCi0gICAgICAgICIiIgotICAgICAgICBoeWJp
LkhhbmRzaGFrZXIuX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAg
c2VsZi5fc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90
YSA9IHJlY2VpdmVfcXVvdGEKLQotICAgICAgICAjIEFwcGVuZCBoZWFkZXJzIHdoaWNoIHNob3Vs
ZCBub3QgYmUgaW5jbHVkZWQgaW4gaGFuZHNoYWtlIGZpZWxkIG9mCi0gICAgICAgICMgQWRkQ2hh
bm5lbFJlcXVlc3QuCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB3aGV0aGVyIHdl
IHNob3VsZCByYWlzZSBleGNlcHRpb24gd2hlbgotICAgICAgICAjICAgICB0aGVzZSBoZWFkZXJz
IGFyZSBpbmNsdWRlZCBhbHJlYWR5LgotICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9u
LlVQR1JBREVfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFE
RV9UWVBFKQotICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRf
VkVSU0lPTl9IRUFERVJdID0gKAotICAgICAgICAgICAgc3RyKGNvbW1vbi5WRVJTSU9OX0hZQklf
TEFURVNUKSkKLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5TRUNfV0VCU09DS0VU
X0tFWV9IRUFERVJdID0gKAotICAgICAgICAgICAgc2VsZi5fRFVNTVlfV0VCU09DS0VUX0tFWSkK
LQotICAgIGRlZiBfY3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAg
ICIiIk92ZXJyaWRlIGh5YmkuSGFuZHNoYWtlci5fY3JlYXRlX3N0cmVhbS4iIiIKLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdDcmVhdGluZyBsb2dpY2FsIHN0cmVhbSBmb3IgJWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAg
ICAgcmV0dXJuIF9Mb2dpY2FsU3RyZWFtKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwgc3Ry
ZWFtX29wdGlvbnMsIHNlbGYuX3NlbmRfcXVvdGEsCi0gICAgICAgICAgICBzZWxmLl9yZWNlaXZl
X3F1b3RhKQotCi0gICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYsIGFjY2Vw
dCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2Uu
IiIiCi0gICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hU
VFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAgIyBVcGdyYWRl
IGFuZCBTZWMtV2ViU29ja2V0LUFjY2VwdCBzaG91bGQgYmUgZXhjbHVkZWQuCi0gICAgICAgIHJl
c3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCi0gICAgICAgICAgICBjb21tb24uQ09OTkVD
VElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAgIGlm
IHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNw
b25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNf
V0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3Byb3RvY29sKSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyBp
cyBub3QgTm9uZSBhbmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lv
bnMpICE9IDApOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgK
LSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwK
LSAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53
c19leHRlbnNpb25zKSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0KLSAgICAg
ICAgcmV0dXJuICcnLmpvaW4ocmVzcG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtlKHNl
bGYsIGFjY2VwdCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuSGFuZHNoYWtlci5fc2VuZF9o
YW5kc2hha2UuIiIiCi0gICAgICAgICMgRG9uJ3Qgc2VuZCBoYW5kc2hha2UgcmVzcG9uc2UgZm9y
IHRoZSBkZWZhdWx0IGNoYW5uZWwKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lk
ID09IF9ERUZBVUxUX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBo
YW5kc2hha2VfcmVzcG9uc2UgPSBzZWxmLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKGFjY2Vw
dCkKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZV9yZXNwb25zZSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdTZW5kaW5nIGhhbmRzaGFrZSByZXNwb25zZSBmb3IgJWQ6ICVyJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBmcmFtZV9k
YXRhKSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0
YShmcmFtZV9kYXRhKQotCi0KLWNsYXNzIF9Mb2dpY2FsQ2hhbm5lbERhdGEob2JqZWN0KToKLQot
ICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgbG9naWNhbCBj
aGFubmVsLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHdvcmtlcik6Ci0g
ICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi53b3JrZXIgPSB3b3Jr
ZXIKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX05PUk1BTF9DTE9TVVJFCi0g
ICAgICAgIHNlbGYuZHJvcF9tZXNzYWdlID0gJycKLQotCi1jbGFzcyBfSGFuZHNoYWtlRGVsdGFC
YXNlKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGZvciBk
ZWx0YS1lbmNvZGVkIGhhbmRzaGFrZS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoZWFk
ZXJzKToKLSAgICAgICAgc2VsZi5faGVhZGVycyA9IGhlYWRlcnMKLQotICAgIGRlZiBjcmVhdGVf
aGVhZGVycyhzZWxmLCBkZWx0YT1Ob25lKToKLSAgICAgICAgIiIiQ3JlYXRlcyByZXF1ZXN0IGhl
YWRlcnMgZm9yIGFuIEFkZENoYW5uZWxSZXF1ZXN0IHRoYXQgaGFzCi0gICAgICAgIGRlbHRhLWVu
Y29kZWQgaGFuZHNoYWtlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkZWx0YTogaGVh
ZGVycyBzaG91bGQgYmUgb3ZlcnJpZGRlbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaGVhZGVy
cyA9IGNvcHkuY29weShzZWxmLl9oZWFkZXJzKQotICAgICAgICBpZiBkZWx0YToKLSAgICAgICAg
ICAgIGZvciBrZXksIHZhbHVlIGluIGRlbHRhLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgIyBU
aGUgc3BlYyByZXF1aXJlcyB0aGF0IGEgaGVhZGVyIHdpdGggYW4gZW1wdHkgdmFsdWUgaXMKLSAg
ICAgICAgICAgICAgICAjIHJlbW92ZWQgZnJvbSB0aGUgZGVsdGEgYmFzZS4KLSAgICAgICAgICAg
ICAgICBpZiBsZW4odmFsdWUpID09IDAgYW5kIGhlYWRlcnMuaGFzX2tleShrZXkpOgotICAgICAg
ICAgICAgICAgICAgICBkZWwgaGVhZGVyc1trZXldCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gdmFsdWUKLSAgICAgICAgcmV0dXJuIGhl
YWRlcnMKLQotCi1jbGFzcyBfTXV4SGFuZGxlcihvYmplY3QpOgotICAgICIiIk11bHRpcGxleGlu
ZyBoYW5kbGVyLiBXaGVuIGEgaGFuZGxlciBzdGFydHMsIGl0IGxhdW5jaGVzIHRocmVlCi0gICAg
dGhyZWFkczsgdGhlIHJlYWRlciB0aHJlYWQsIHRoZSB3cml0ZXIgdGhyZWFkLCBhbmQgYSB3b3Jr
ZXIgdGhyZWFkLgotCi0gICAgVGhlIHJlYWRlciB0aHJlYWQgcmVhZHMgZGF0YSBmcm9tIHRoZSBw
aHlzaWNhbCBzdHJlYW0sIGkuZS4sIHRoZQotICAgIHdzX3N0cmVhbSBvYmplY3Qgb2YgdGhlIHVu
ZGVybHlpbmcgd2Vic29ja2V0IGNvbm5lY3Rpb24uIFRoZSByZWFkZXIKLSAgICB0aHJlYWQgaW50
ZXJwcmV0cyBtdWx0aXBsZXhlZCBmcmFtZXMgYW5kIGRpc3BhdGNoZXMgdGhlbSB0byBsb2dpY2Fs
Ci0gICAgY2hhbm5lbHMuIE1ldGhvZHMgb2YgdGhpcyBjbGFzcyBhcmUgbW9zdGx5IGNhbGxlZCBi
eSB0aGUgcmVhZGVyIHRocmVhZC4KLQotICAgIFRoZSB3cml0ZXIgdGhyZWFkIHNlbmRzIG11bHRp
cGxleGVkIGZyYW1lcyB3aGljaCBhcmUgY3JlYXRlZCBieQotICAgIGxvZ2ljYWwgY2hhbm5lbHMg
dmlhIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVGhlIHdvcmtlciB0aHJlYWQgbGF1
bmNoZWQgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IGhhbmRsZXMgdGhlCi0gICAgIkltcGxpY2l0bHkg
T3BlbmVkIENvbm5lY3Rpb24iLiBJZiBtdWx0aXBsZXhpbmcgaGFuZGxlciByZWNlaXZlcwotICAg
IGFuIEFkZENoYW5uZWxSZXF1ZXN0IGFuZCBhY2NlcHRzIGl0LCB0aGUgaGFuZGxlciB3aWxsIGxh
dW5jaCBhIG5ldyB3b3JrZXIKLSAgICB0aHJlYWQgYW5kIGRpc3BhdGNoIHRoZSByZXF1ZXN0IHRv
IGl0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNo
ZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qgb2YgdGhlIHBoeXNpY2Fs
IGNvbm5lY3Rpb24uCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNl
IChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5vcmln
aW5hbF9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLmRpc3BhdGNoZXIgPSBkaXNwYXRj
aGVyCi0gICAgICAgIHNlbGYucGh5c2ljYWxfY29ubmVjdGlvbiA9IHJlcXVlc3QuY29ubmVjdGlv
bgotICAgICAgICBzZWxmLnBoeXNpY2FsX3N0cmVhbSA9IHJlcXVlc3Qud3Nfc3RyZWFtCi0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzID0ge30KLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgIyBIb2xkcyBjbGll
bnQncyBpbml0aWFsIHF1b3RhCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMgPSBjb2xsZWN0
aW9ucy5kZXF1ZSgpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gTm9uZQotICAgICAg
ICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBGYWxzZQotICAgICAgICBzZWxm
Ll9yZWFkZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3dyaXRlciA9IE5vbmUKLQotICAgIGRlZiBz
dGFydChzZWxmKToKLSAgICAgICAgIiIiU3RhcnRzIHRoZSBoYW5kbGVyLgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIE11eFVuZXhwZWN0ZWRFeGNlcHRpb246IHdoZW4gdGhlIGhhbmRs
ZXIgYWxyZWFkeSBzdGFydGVkLCBvciB3aGVuCi0gICAgICAgICAgICAgICAgb3BlbmluZyBoYW5k
c2hha2Ugb2YgdGhlIGRlZmF1bHQgY2hhbm5lbCBmYWlscy4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgaWYgc2VsZi5fcmVhZGVyIG9yIHNlbGYuX3dyaXRlcjoKLSAgICAgICAgICAgIHJhaXNlIE11
eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ011eEhhbmRsZXIgYWxyZWFkeSBzdGFydGVkJykKLQotICAg
ICAgICBzZWxmLl9yZWFkZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9uUmVhZGVyKHNlbGYpCi0gICAg
ICAgIHNlbGYuX3dyaXRlciA9IF9QaHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIoc2VsZikKLSAgICAg
ICAgc2VsZi5fcmVhZGVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0YXJ0KCkKLQot
ICAgICAgICAjIENyZWF0ZSAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuCi0gICAgICAg
IGxvZ2ljYWxfY29ubmVjdGlvbiA9IF9Mb2dpY2FsQ29ubmVjdGlvbihzZWxmLCBfREVGQVVMVF9D
SEFOTkVMX0lEKQotICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYub3JpZ2luYWxfcmVx
dWVzdC5oZWFkZXJzX2luKQotICAgICAgICAjIEFkZCBleHRlbnNpb25zIGZvciBsb2dpY2FsIGNo
YW5uZWwuCi0gICAgICAgIGhlYWRlcnNbY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19I
RUFERVJdID0gKAotICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKAotICAgICAg
ICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmV4dGVuc2lvbnMo
KSkpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gX0hhbmRzaGFrZURlbHRhQmFzZSho
ZWFkZXJzKQotICAgICAgICBsb2dpY2FsX3JlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoCi0gICAg
ICAgICAgICBfREVGQVVMVF9DSEFOTkVMX0lELAotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9y
ZXF1ZXN0Lm1ldGhvZCwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC51cmksCi0g
ICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QucHJvdG9jb2wsCi0gICAgICAgICAgICBz
ZWxmLl9oYW5kc2hha2VfYmFzZS5jcmVhdGVfaGVhZGVycygpLAotICAgICAgICAgICAgbG9naWNh
bF9jb25uZWN0aW9uKQotICAgICAgICAjIENsaWVudCdzIHNlbmQgcXVvdGEgZm9yIHRoZSBpbXBs
aWNpdGx5IG9wZW5lZCBjb25uZWN0aW9uIGlzIHplcm8sCi0gICAgICAgICMgYnV0IHdlIHdpbGwg
c2VuZCBGbG93Q29udHJvbCBsYXRlciBzbyBzZXQgdGhlIGluaXRpYWwgcXVvdGEgdG8KLSAgICAg
ICAgIyBfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5ULgotICAgICAgICBzZWxmLl9jaGFubmVsX3Ns
b3RzLmFwcGVuZChfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBzZW5kX3F1b3Rh
ID0gc2VsZi5vcmlnaW5hbF9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IucXVvdGEoKQotICAgICAgICBp
ZiBub3Qgc2VsZi5fZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3JlcXVlc3QoCi0gICAgICAgICAg
ICBsb2dpY2FsX3JlcXVlc3QsIHNlbmRfcXVvdGE9c2VuZF9xdW90YSk6Ci0gICAgICAgICAgICBy
YWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgaGFu
ZHNoYWtlIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaWQnKQotICAgICAgICBzZWxmLl9hZGRfbG9n
aWNhbF9jaGFubmVsKGxvZ2ljYWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgRmxvd0NvbnRy
b2wgZm9yIHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjb25uZWN0aW9uLgotICAgICAgICBmcmFtZV9k
YXRhID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woX0RFRkFVTFRfQ0hBTk5FTF9JRCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCi0gICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0
YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIGFkZF9jaGFubmVsX3Nsb3RzKHNlbGYsIHNsb3RzLCBz
ZW5kX3F1b3RhKToKLSAgICAgICAgIiIiQWRkcyBjaGFubmVsIHNsb3RzLgotCi0gICAgICAgIEFy
Z3M6Ci0gICAgICAgICAgICBzbG90czogbnVtYmVyIG9mIHNsb3RzIHRvIGJlIGFkZGVkLgotICAg
ICAgICAgICAgc2VuZF9xdW90YTogaW5pdGlhbCBzZW5kIHF1b3RhIGZvciBzbG90cy4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5leHRlbmQoW3NlbmRfcXVvdGFd
ICogc2xvdHMpCi0gICAgICAgICMgU2VuZCBOZXdDaGFubmVsU2xvdCB0byBjbGllbnQuCi0gICAg
ICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX25ld19jaGFubmVsX3Nsb3Qoc2xvdHMsIHNlbmRfcXVv
dGEpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRl
ZiB3YWl0X3VudGlsX2RvbmUoc2VsZiwgdGltZW91dD1Ob25lKToKLSAgICAgICAgIiIiV2FpdHMg
dW50aWwgYWxsIHdvcmtlcnMgYXJlIGRvbmUuIFJldHVybnMgRmFsc2Ugd2hlbiB0aW1lb3V0IGhh
cwotICAgICAgICBvY2N1cnJlZC4gUmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdXQgaW4gc2VjLgotICAgICAgICAiIiIK
LQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMp
ID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgd29ya2Vy
cyglZCkuLi4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHMpKQotICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25v
dGlmeV9yZWNlaXZlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24ud2FpdCh0aW1lb3V0KQotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxm
Ll93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXIocykgdGltZWQgb3V0JykKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAjIEZsdXNo
IHBlbmRpbmcgb3V0Z29pbmcgZGF0YQotICAgICAgICBzZWxmLl93cml0ZXIuc3RvcCgpCi0gICAg
ICAgIHNlbGYuX3dyaXRlci5qb2luKCkKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVm
IG5vdGlmeV93cml0ZV9kYXRhX2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNh
bGxlZCBieSB0aGUgd3JpdGVyIHRocmVhZCB3aGVuIGEgd3JpdGUgb3BlcmF0aW9uIGhhcyBkb25l
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBvYmplY3RpdmUgY2hh
bm5lbCBpZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBjaGFu
bmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgY2hhbm5l
bF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAgICAgICAgICAg
ICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24ub25fd3JpdGVfZGF0YV9kb25lKCkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdT
ZWVtcyB0aGF0IGxvZ2ljYWwgY2hhbm5lbCBmb3IgJWQgaGFzIGdvbmUnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICUgY2hhbm5lbF9pZCkKLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgZGVmIHNlbmRfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJTZW5kcyBk
YXRhIHZpYSB0aGUgY29udHJvbCBjaGFubmVsLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
ICBkYXRhOiBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3dy
aXRlci5wdXRfb3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRhKAotICAgICAgICAgICAgICAgIGNo
YW5uZWxfaWQ9X0NPTlRST0xfQ0hBTk5FTF9JRCwgZGF0YT1kYXRhKSkKLQotICAgIGRlZiBzZW5k
X2RhdGEoc2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6Ci0gICAgICAgICIiIlNlbmRzIGRhdGEgdmlh
IGdpdmVuIGxvZ2ljYWwgY2hhbm5lbC4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5Ci0gICAgICAg
IHdvcmtlciB0aHJlYWRzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lk
OiBvYmplY3RpdmUgY2hhbm5lbCBpZC4KLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2Vu
dC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRh
KF9PdXRnb2luZ0RhdGEoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1jaGFubmVsX2lkLCBk
YXRhPWRhdGEpKQotCi0gICAgZGVmIF9zZW5kX2Ryb3BfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lk
LCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9k
cm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ1NlbmRpbmcgZHJvcCBjaGFubmVsIGZvciBjaGFubmVs
IGlkICVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJh
bWVfZGF0YSkKLQotICAgIGRlZiBfc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShzZWxm
LCBjaGFubmVsX2lkLCBzdGF0dXM9Tm9uZSk6Ci0gICAgICAgIGlmIHN0YXR1cyBpcyBOb25lOgot
ICAgICAgICAgICAgc3RhdHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCi0KLSAg
ICAgICAgaWYgc3RhdHVzIGluIF9IVFRQX0JBRF9SRVNQT05TRV9NRVNTQUdFUzoKLSAgICAgICAg
ICAgIG1lc3NhZ2UgPSBfSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVNbc3RhdHVzXQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXNwb25zZSBtZXNzYWdl
IGZvciAlZCBpcyBub3QgZm91bmQnICUgc3RhdHVzKQotICAgICAgICAgICAgbWVzc2FnZSA9ICc/
Pz8nCi0KLSAgICAgICAgcmVzcG9uc2UgPSAnSFRUUC8xLjEgJWQgJXNcclxuXHJcbicgJSAoc3Rh
dHVzLCBtZXNzYWdlKQotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXNwb25zZShjaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1yZXNwb25zZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwgcmVqZWN0ZWQ9
VHJ1ZSkKLSAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAg
ZGVmIF9jcmVhdGVfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAgICAgaWYgYmxv
Y2suY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgIyBUT0RP
KGJhc2hpKTogUmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Igd2l0aCBjb2RlIDIwMDYKLSAg
ICAgICAgICAgICMgaW5zdGVhZCBvZiBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uLgotICAgICAgICAg
ICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2
ZWQgdGhlIGNvbnRyb2wgY2hhbm5lbCBpZCAoMCkgYXMgb2JqZWN0aXZlIGNoYW5uZWwgJwotICAg
ICAgICAgICAgICAgICdpZCBmb3IgQWRkQ2hhbm5lbCcpCi0KLSAgICAgICAgaWYgYmxvY2suZW5j
b2RpbmcgPiBfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRBOgotICAgICAgICAgICAgcmFpc2UgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9VTktOT1dO
X1JFUVVFU1RfRU5DT0RJTkcpCi0KLSAgICAgICAgbWV0aG9kLCBwYXRoLCB2ZXJzaW9uLCBoZWFk
ZXJzID0gX3BhcnNlX3JlcXVlc3RfdGV4dCgKLSAgICAgICAgICAgIGJsb2NrLmVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICBpZiBibG9jay5lbmNvZGluZyA9PSBfSEFORFNIQUtFX0VOQ09ESU5H
X0RFTFRBOgotICAgICAgICAgICAgaGVhZGVycyA9IHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0
ZV9oZWFkZXJzKGhlYWRlcnMpCi0KLSAgICAgICAgY29ubmVjdGlvbiA9IF9Mb2dpY2FsQ29ubmVj
dGlvbihzZWxmLCBibG9jay5jaGFubmVsX2lkKQotICAgICAgICByZXF1ZXN0ID0gX0xvZ2ljYWxS
ZXF1ZXN0KGJsb2NrLmNoYW5uZWxfaWQsIG1ldGhvZCwgcGF0aCwgdmVyc2lvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLCBjb25uZWN0aW9uKQotICAgICAgICBy
ZXR1cm4gcmVxdWVzdAotCi0gICAgZGVmIF9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVz
dChzZWxmLCByZXF1ZXN0LCBzZW5kX3F1b3RhPTApOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICByZWNlaXZlX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKLSAgICAgICAg
ZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9y
KAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9ORVdfQ0hB
Tk5FTF9TTE9UX1ZJT0xBVElPTikKLQotICAgICAgICBoYW5kc2hha2VyID0gX011eEhhbmRzaGFr
ZXIocmVxdWVzdCwgc2VsZi5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtl
LlZlcnNpb25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCcl
cycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQ
X1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBl
eGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgIyBU
T0RPKGJhc2hpKTogU2hvdWxkIHdlIF9GYWlsIHRoZSBMb2dpY2FsIENoYW5uZWxfIHdpdGggMzAw
MQotICAgICAgICAgICAgIyBpbnN0ZWFkPwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
JyVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9u
c2UocmVxdWVzdC5jaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM9ZS5zdGF0dXMpCi0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGFzIGU6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2Vs
Zi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShyZXF1ZXN0LmNoYW5uZWxfaWQpCi0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVm
IF9hZGRfbG9naWNhbF9jaGFubmVsKHNlbGYsIGxvZ2ljYWxfcmVxdWVzdCk6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUo
KQotICAgICAgICAgICAgaWYgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9n
aWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NoYW5u
ZWwgaWQgJWQgYWxyZWFkeSBleGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgcmFpc2Ug
UGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVf
Q0hBTk5FTF9BTFJFQURZX0VYSVNUUywKLSAgICAgICAgICAgICAgICAgICAgJ0NoYW5uZWwgaWQg
JWQgYWxyZWFkeSBleGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0
LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICB3b3JrZXIgPSBfV29ya2VyKHNlbGYsIGxvZ2ljYWxf
cmVxdWVzdCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEo
bG9naWNhbF9yZXF1ZXN0LCB3b3JrZXIpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzW2xvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkXSA9IGNoYW5uZWxfZGF0YQotICAgICAgICAg
ICAgd29ya2VyLnN0YXJ0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNzX2Fk
ZF9jaGFubmVsX3JlcXVlc3Qoc2VsZiwgYmxvY2spOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBsb2dpY2FsX3JlcXVlc3QgPSBzZWxmLl9jcmVhdGVfbG9naWNhbF9yZXF1ZXN0KGJsb2NrKQot
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdGYWlsZWQgdG8gY3JlYXRlIGxvZ2ljYWwgcmVxdWVzdDogJXInICUgZSkKLSAgICAg
ICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAg
ICAgICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVR
VUVTVCkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBzZWxmLl9kb19oYW5kc2hha2Vf
Zm9yX2xvZ2ljYWxfcmVxdWVzdChsb2dpY2FsX3JlcXVlc3QpOgotICAgICAgICAgICAgaWYgYmxv
Y2suZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElOR19JREVOVElUWToKLSAgICAgICAgICAg
ICAgICAjIFVwZGF0ZSBoYW5kc2hha2UgYmFzZS4KLSAgICAgICAgICAgICAgICAjIFRPRE8oYmFz
aGkpOiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gdXBkYXRlCi0gICAgICAg
ICAgICAgICAgIyBoYW5kc2hha2UgYmFzZS4KLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hh
a2VfYmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoCi0gICAgICAgICAgICAgICAgICAgIGxvZ2lj
YWxfcmVxdWVzdC5oZWFkZXJzX2luKQotICAgICAgICAgICAgc2VsZi5fYWRkX2xvZ2ljYWxfY2hh
bm5lbChsb2dpY2FsX3JlcXVlc3QpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgIGJsb2NrLmNo
YW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0KLSAgICBk
ZWYgX3Byb2Nlc3NfZmxvd19jb250cm9sKHNlbGYsIGJsb2NrKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAg
ICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
OgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2Vs
Zi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXQotICAgICAgICAgICAgY2hhbm5l
bF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnJlcGxlbmlzaF9zZW5kX3F1b3RhKAotICAgICAgICAg
ICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJv
Y2Vzc19kcm9wX2NoYW5uZWwoc2VsZiwgYmxvY2spOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoCi0gICAgICAgICAgICAnRHJvcENoYW5uZWwgcmVjZWl2ZWQgZm9yICVkOiBjb2RlPSVyLCBy
ZWFzb249JXInICUKLSAgICAgICAgICAgIChibG9jay5jaGFubmVsX2lkLCBibG9jay5kcm9wX2Nv
ZGUsIGJsb2NrLmRyb3BfbWVzc2FnZSkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90
IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX2Nv
ZGUgPSBfRFJPUF9DT0RFX0FDS05PV0xFREdFRAotCi0gICAgICAgICAgICAjIENsb3NlIHRoZSBs
b2dpY2FsIGNoYW5uZWwKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rp
b24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0aW9uLlNU
QVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJl
YW0uc3RvcF9zZW5kaW5nKCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNzX2Nv
bnRyb2xfYmxvY2tzKHNlbGYsIHBhcnNlcik6Ci0gICAgICAgIGZvciBjb250cm9sX2Jsb2NrIGlu
IHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCk6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjb250
cm9sX2Jsb2NrLm9wY29kZQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdjb250cm9s
IGJsb2NrIHJlY2VpdmVkLCBvcGNvZGU6ICVkJyAlIG9wY29kZSkKLSAgICAgICAgICAgIGlmIG9w
Y29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUOgotICAgICAgICAgICAgICAg
IHNlbGYuX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChjb250cm9sX2Jsb2NrKQotICAgICAg
ICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmVkIEFkZENoYW5uZWxSZXNwb25zZScpCi0gICAgICAgICAgICBl
bGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fcHJvY2Vzc19mbG93X2NvbnRyb2woY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVs
aWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgICAgICBz
ZWxmLl9wcm9jZXNzX2Ryb3BfY2hhbm5lbChjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxp
ZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RS
T1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZWQgTmV3Q2hhbm5lbFNsb3QnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAn
VW5leHBlY3RlZCBvcGNvZGUgJXInICUgb3Bjb2RlKQotCi0gICAgZGVmIF9wcm9jZXNzX2xvZ2lj
YWxfZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGFyc2VyKToKLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdSZWNlaXZlZCBhIGZyYW1lLiBjaGFubmVsIGlkPSVkJyAlIGNoYW5uZWxfaWQpCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNh
bF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICAjIFdlIG11c3QgaWdub3JlIHRoZSBtZXNzYWdl
IGZvciBhbiBpbmFjdGl2ZSBjaGFubmVsLgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAg
ICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQot
ICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWQgPSBwYXJz
ZXIucmVhZF9pbm5lcl9mcmFtZSgpCi0gICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSA9IGxlbihw
YXlsb2FkKQotICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OOgotICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlICs9IDEKLSAgICAgICAgICAgIGlm
IG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0uY29uc3VtZV9yZWNlaXZlX3F1b3Rh
KAotICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlKToKLSAgICAgICAgICAgICAgICAjIFRo
ZSBjbGllbnQgdmlvbGF0ZXMgcXVvdGEuIENsb3NlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAg
ICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAotICAgICAgICAgICAgICAgICAgICBj
aGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9OKQotICAgICAgICAgICAg
aGVhZGVyID0gY3JlYXRlX2hlYWRlcihvcGNvZGUsIGxlbihwYXlsb2FkKSwgZmluLCByc3YxLCBy
c3YyLCByc3YzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrPUZhbHNl
KQotICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGhlYWRlciArIHBheWxvYWQKLSAgICAgICAgICAg
IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uYXBwZW5kX2ZyYW1lX2RhdGEoZnJhbWVf
ZGF0YSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGRpc3BhdGNoX21lc3NhZ2Uoc2VsZiwg
bWVzc2FnZSk6Ci0gICAgICAgICIiIkRpc3BhdGNoZXMgbWVzc2FnZS4gVGhlIHJlYWRlciB0aHJl
YWQgY2FsbHMgdGhpcyBtZXRob2QuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3Nh
Z2U6IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIGVuY2Fwc3VsYXRlZCBmcmFtZS4KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3I6IGlmIHRoZSBtZXNz
YWdlIGNvbnRhaW5zIHBoeXNpY2FsCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbiBsZXZlbCBl
cnJvcnMuCi0gICAgICAgICAgICBMb2dpY2FsQ2hhbm5lbEVycm9yOiBpZiB0aGUgbWVzc2FnZSBj
b250YWlucyBsb2dpY2FsIGNoYW5uZWwKLSAgICAgICAgICAgICAgICBsZXZlbCBlcnJvcnMuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHBhcnNlciA9IF9NdXhGcmFtZVBheWxvYWRQYXJzZXIobWVz
c2FnZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFk
X2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9DSEFOTkVMX0lEX1RS
VU5DQVRFRCkKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgot
ICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19jb250cm9sX2Jsb2NrcyhwYXJzZXIpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZCwgcGFyc2VyKQotCi0gICAgZGVmIG5vdGlmeV93b3JrZXJfZG9uZShzZWxmLCBjaGFubmVsX2lk
KToKLSAgICAgICAgIiIiQ2FsbGVkIHdoZW4gYSB3b3JrZXIgaGFzIGZpbmlzaGVkLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBjaGFubmVsIGlkIGNvcnJlc3BvbmRl
ZCB3aXRoIHRoZSB3b3JrZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnV29ya2VyIGZvciBjaGFubmVsIGlkICVkIHRlcm1pbmF0ZWQnICUgY2hhbm5lbF9pZCkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRp
b24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgICAgICdDaGFubmVsIGlkICVkIG5vdCBmb3VuZCcgJSBjaGFu
bmVsX2lkKQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVs
cy5wb3AoY2hhbm5lbF9pZCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dv
cmtlcl9kb25lX25vdGlmeV9yZWNlaXZlZCA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBpZiBub3QgY2hhbm5lbF9k
YXRhLnJlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2Ry
b3BfY2hhbm5lbCgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBjb2RlPWNoYW5uZWxfZGF0
YS5kcm9wX2NvZGUsCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1jaGFubmVsX2RhdGEuZHJvcF9t
ZXNzYWdlKQotCi0gICAgZGVmIG5vdGlmeV9yZWFkZXJfZG9uZShzZWxmKToKLSAgICAgICAgIiIi
VGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkIHdoZW4gdGhlIHJlYWRl
ciBoYXMKLSAgICAgICAgZmluaXNoZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdUZXJtaWF0aW5nIGFsbCBsb2dpY2FsIGNvbm5lY3Rp
b25zIHdhaXRpbmcgZm9yIGluY29taW5nIGRhdGEgJwotICAgICAgICAgICAgJy4uLicpCi0gICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBm
b3IgY2hhbm5lbF9kYXRhIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMudmFsdWVzKCk6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVj
dGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25uZWN0
aW9uLlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQot
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAg
IGRlZiBub3RpZnlfd3JpdGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBieSB0aGUgd3JpdGVyIHRocmVhZCB3aGVuIHRoZSB3cml0ZXIgaGFzCi0gICAgICAg
IGZpbmlzaGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAnVGVybWlhdGluZyBhbGwgbG9naWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZv
ciB3cml0ZSAnCi0gICAgICAgICAgICAnY29tcGxldGlvbiAuLi4nKQotICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgZm9yIGNoYW5uZWxf
ZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnZhbHVlcygpOgotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24ub25fd3Jp
dGVyX2RvbmUoKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgc2Vs
Zi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgZmFpbF9w
aHlzaWNhbF9jb25uZWN0aW9uKHNlbGYsIGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAiIiJGYWls
IHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBj
b2RlOiBkcm9wIHJlYXNvbiBjb2RlLgotICAgICAgICAgICAgbWVzc2FnZTogZHJvcCBtZXNzYWdl
LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0ZhaWxpbmcgdGhl
IHBoeXNpY2FsIGNvbm5lY3Rpb24uLi4nKQotICAgICAgICBzZWxmLl9zZW5kX2Ryb3BfY2hhbm5l
bChfQ09OVFJPTF9DSEFOTkVMX0lELCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBzZWxmLl93cml0
ZXIuc3RvcChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQotCi0gICAgZGVm
IGZhaWxfbG9naWNhbF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpOgot
ICAgICAgICAiIiJGYWlsIGEgbG9naWNhbCBjaGFubmVsLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBjaGFubmVsX2lkOiBjaGFubmVsIGlkLgotICAgICAgICAgICAgY29kZTogZHJvcCBy
ZWFzb24gY29kZS4KLSAgICAgICAgICAgIG1lc3NhZ2U6IGRyb3AgbWVzc2FnZS4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsaW5nIGxvZ2ljYWwgY2hhbm5l
bCAlZC4uLicgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGNoYW5u
ZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICBjaGFubmVs
X2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdCi0gICAgICAgICAgICAg
ICAgIyBDbG9zZSB0aGUgbG9naWNhbCBjaGFubmVsLiBub3RpZnlfd29ya2VyX2RvbmUoKSB3aWxs
IGJlCi0gICAgICAgICAgICAgICAgIyBjYWxsZWQgbGF0ZXIgYW5kIGl0IHdpbGwgc2VuZCBEcm9w
Q2hhbm5lbC4KLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9jb2RlID0gY29kZQot
ICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX21lc3NhZ2UgPSBtZXNzYWdlCi0KLSAg
ICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0
YXRlKAotICAgICAgICAgICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rpb24uU1RBVEVfVEVSTUlO
QVRFRCkKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0uc3Rv
cF9zZW5kaW5nKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2Vu
ZF9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2Uo
KQotCi0KLWRlZiB1c2VfbXV4KHJlcXVlc3QpOgotICAgIHJldHVybiBoYXNhdHRyKHJlcXVlc3Qs
ICdtdXhfcHJvY2Vzc29yJykgYW5kICgKLSAgICAgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmlz
X2FjdGl2ZSgpKQotCi0KLWRlZiBzdGFydChyZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICBtdXhf
aGFuZGxlciA9IF9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotCi0gICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgIG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSgpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM4Nzg2MDY0ODg5ZTg0ZjExNWE3
NTY3OWFiNzFjNzQ0NjZhMGM2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMTIwOCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJp
Z2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIlN0YW5kYWxvbmUgV2ViU29ja2V0IHNlcnZlci4KLQotVXNlIHRoaXMg
ZmlsZSB0byBsYXVuY2ggcHl3ZWJzb2NrZXQgd2l0aG91dCBBcGFjaGUgSFRUUCBTZXJ2ZXIuCi0K
LQotQkFTSUMgVVNBR0UKLT09PT09PT09PT09Ci0KLUdvIHRvIHRoZSBzcmMgZGlyZWN0b3J5IGFu
ZCBydW4KLQotICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBbLXAgPHdz
X3BvcnQ+XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLXcgPHdl
YnNvY2tfaGFuZGxlcnM+XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbLWQgPGRvY3VtZW50X3Jvb3Q+XQotCi08d3NfcG9ydD4gaXMgdGhlIHBvcnQgbnVtYmVyIHRv
IHVzZSBmb3Igd3M6Ly8gY29ubmVjdGlvbi4KLQotPGRvY3VtZW50X3Jvb3Q+IGlzIHRoZSBwYXRo
IHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBIVE1MIGZpbGVzLgotCi08d2Vic29ja19oYW5kbGVy
cz4gaXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdlYlNvY2tldCBoYW5kbGVy
cy4KLUlmIG5vdCBzcGVjaWZpZWQsIDxkb2N1bWVudF9yb290PiB3aWxsIGJlIHVzZWQuIFNlZSBf
X2luaXRfXy5weSAob3IKLXJ1biAkIHB5ZG9jIG1vZF9weXdlYnNvY2tldCkgZm9yIGhvdyB0byB3
cml0ZSBXZWJTb2NrZXQgaGFuZGxlcnMuCi0KLUZvciBtb3JlIGRldGFpbCBhbmQgb3RoZXIgb3B0
aW9ucywgcnVuCi0KLSAgJCBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLS1o
ZWxwCi0KLW9yIHNlZSBfYnVpbGRfb3B0aW9uX3BhcnNlciBtZXRob2QgYmVsb3cuCi0KLUZvciB0
cm91YmxlIHNob290aW5nLCBhZGRpbmcgIi0tbG9nX2xldmVsIGRlYnVnIiBtaWdodCBoZWxwIHlv
dS4KLQotCi1UUlkgREVNTwotPT09PT09PT0KLQotR28gdG8gdGhlIHNyYyBkaXJlY3RvcnkgYW5k
IHJ1biBzdGFuZGFsb25lLnB5IHdpdGggLWQgb3B0aW9uIHRvIHNldCB0aGUKLWRvY3VtZW50IHJv
b3QgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGV4YW1wbGUgSFRNTHMgYW5kIGhhbmRsZXJz
IGxpa2UgdGhpczoKLQotICAkIGNkIHNyYwotICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZQotCi10byBsYXVuY2ggcHl3ZWJzb2Nr
ZXQgd2l0aCB0aGUgc2FtcGxlIGhhbmRsZXIgYW5kIGh0bWwgb24gcG9ydCA4MC4gT3BlbgotaHR0
cDovL2xvY2FsaG9zdC9jb25zb2xlLmh0bWwsIGNsaWNrIHRoZSBjb25uZWN0IGJ1dHRvbiwgdHlw
ZSBzb21ldGhpbmcgaW50bwotdGhlIHRleHQgYm94IG5leHQgdG8gdGhlIHNlbmQgYnV0dG9uIGFu
ZCBjbGljayB0aGUgc2VuZCBidXR0b24uIElmIGV2ZXJ5dGhpbmcKLWlzIHdvcmtpbmcsIHlvdSds
bCBzZWUgdGhlIG1lc3NhZ2UgeW91IHR5cGVkIGVjaG9lZCBieSB0aGUgc2VydmVyLgotCi0KLVVT
SU5HIFRMUwotPT09PT09PT09Ci0KLVRvIHJ1biB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgd2l0aCBU
TFMgc3VwcG9ydCwgcnVuIGl0IHdpdGggLXQsIC1rLCBhbmQgLWMKLW9wdGlvbnMuIFdoZW4gVExT
IGlzIGVuYWJsZWQsIHRoZSBzdGFuZGFsb25lIHNlcnZlciBhY2NlcHRzIG9ubHkgVExTIGNvbm5l
Y3Rpb24uCi0KLU5vdGUgdGhhdCB3aGVuIHNzbCBtb2R1bGUgaXMgdXNlZCBhbmQgdGhlIGtleS9j
ZXJ0IGxvY2F0aW9uIGlzIGluY29ycmVjdCwKLVRMUyBjb25uZWN0aW9uIHNpbGVudGx5IGZhaWxz
IHdoaWxlIHB5T3BlblNTTCBmYWlscyBvbiBzdGFydHVwLgotCi1FeGFtcGxlOgotCi0gICQgUFlU
SE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBcCi0gICAgICAg
IC1kIGV4YW1wbGUgXAotICAgICAgICAtcCAxMDQ0MyBcCi0gICAgICAgIC10IFwKLSAgICAgICAg
LWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIFwKLSAgICAgICAgLWsgLi4vdGVzdC9jZXJ0L2tleS5w
ZW0gXAotCi1Ob3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0aCB0byAtYyBhbmQg
LWsgb3B0aW9uLCBpdCB3aWxsIGJlIHJlc29sdmVkCi11c2luZyB0aGUgZG9jdW1lbnQgcm9vdCBk
aXJlY3RvcnkgYXMgdGhlIGJhc2UuCi0KLQotVVNJTkcgQ0xJRU5UIEFVVEhFTlRJQ0FUSU9OCi09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVG8gcnVuIHRoZSBzdGFuZGFsb25lIHNlcnZl
ciB3aXRoIFRMUyBjbGllbnQgYXV0aGVudGljYXRpb24gc3VwcG9ydCwgcnVuIGl0IHdpdGgKLS0t
dGxzLWNsaWVudC1hdXRoIGFuZCAtLXRscy1jbGllbnQtY2Egb3B0aW9ucyBpbiBhZGRpdGlvbiB0
byBvbmVzIHJlcXVpcmVkIGZvcgotVExTIHN1cHBvcnQuCi0KLUV4YW1wbGU6Ci0KLSAgJCBQWVRI
T05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC1kIGV4YW1wbGUg
LXAgMTA0NDMgLXQgXAotICAgICAgICAtYyAuLi90ZXN0L2NlcnQvY2VydC5wZW0gLWsgLi4vdGVz
dC9jZXJ0L2tleS5wZW0gXAotICAgICAgICAtLXRscy1jbGllbnQtYXV0aCBcCi0gICAgICAgIC0t
dGxzLWNsaWVudC1jYT0uLi90ZXN0L2NlcnQvY2FjZXJ0LnBlbQotCi1Ob3RlIHRoYXQgd2hlbiBw
YXNzaW5nIGEgcmVsYXRpdmUgcGF0aCB0byAtLXRscy1jbGllbnQtY2Egb3B0aW9uLCBpdCB3aWxs
IGJlCi1yZXNvbHZlZCB1c2luZyB0aGUgZG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkgYXMgdGhlIGJh
c2UuCi0KLQotQ09ORklHVVJBVElPTiBGSUxFCi09PT09PT09PT09PT09PT09PT0KLQotWW91IGNh
biBhbHNvIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB1c2UgaXQgYnkgc3BlY2lmeWlu
ZyB0aGUgcGF0aCB0bwotdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBieSAtLWNvbmZpZyBvcHRpb24u
IFBsZWFzZSB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQotZm9sbG93aW5nIHRoZSBkb2N1bWVu
dGF0aW9uIG9mIHRoZSBQeXRob24gQ29uZmlnUGFyc2VyIGxpYnJhcnkuIE5hbWUgb2YgZWFjaAot
ZW50cnkgbXVzdCBiZSB0aGUgbG9uZyB2ZXJzaW9uIGFyZ3VtZW50IG5hbWUuIEUuZy4gdG8gc2V0
IGxvZyBsZXZlbCB0byBkZWJ1ZywKLWFkZCB0aGUgZm9sbG93aW5nIGxpbmU6Ci0KLWxvZ19sZXZl
bD1kZWJ1ZwotCi1Gb3Igb3B0aW9ucyB3aGljaCBkb2Vzbid0IHRha2UgdmFsdWUsIHBsZWFzZSBh
ZGQgc29tZSBmYWtlIHZhbHVlLiBFLmcuIGZvcgotLS10bHMgb3B0aW9uLCBhZGQgdGhlIGZvbGxv
d2luZyBsaW5lOgotCi10bHM9VHJ1ZQotCi1Ob3RlIHRoYXQgdGxzIHdpbGwgYmUgZW5hYmxlZCBl
dmVuIGlmIHlvdSB3cml0ZSB0bHM9RmFsc2UgYXMgdGhlIHZhbHVlIHBhcnQgaXMKLWZha2UuCi0K
LVdoZW4gYm90aCBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBhbmQgYSBjb25maWd1cmF0aW9uIGZp
bGUgZW50cnkgYXJlIHNldCBmb3IKLXRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gaXRlbSwgdGhlIGNv
bW1hbmQgbGluZSB2YWx1ZSB3aWxsIG92ZXJyaWRlIG9uZSBpbiB0aGUKLWNvbmZpZ3VyYXRpb24g
ZmlsZS4KLQotCi1USFJFQURJTkcKLT09PT09PT09PQotCi1UaGlzIHNlcnZlciBpcyBkZXJpdmVk
IGZyb20gc29ja2V0c2VydmVyLlRocmVhZGluZ01peEluLiBIZW5jZSBhIHRocmVhZCBpcwotdXNl
ZCBmb3IgZWFjaCByZXF1ZXN0LgotCi0KLVNFQ1VSSVRZIFdBUk5JTkcKLT09PT09PT09PT09PT09
PT0KLQotVGhpcyB1c2VzIENHSUhUVFBTZXJ2ZXIgYW5kIENHSUhUVFBTZXJ2ZXIgaXMgbm90IHNl
Y3VyZS4KLUl0IG1heSBleGVjdXRlIGFyYml0cmFyeSBQeXRob24gY29kZSBvciBleHRlcm5hbCBw
cm9ncmFtcy4gSXQgc2hvdWxkIG5vdCBiZQotdXNlZCBvdXRzaWRlIGEgZmlyZXdhbGwuCi0iIiIK
LQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IEJhc2VIVFRQU2VydmVyCi1mcm9tIHNpeC5tb3ZlcyBp
bXBvcnQgQ0dJSFRUUFNlcnZlcgotZnJvbSBzaXgubW92ZXMgaW1wb3J0IFNpbXBsZUhUVFBTZXJ2
ZXIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBzb2NrZXRzZXJ2ZXIKLWZyb20gc2l4Lm1vdmVzIGlt
cG9ydCBjb25maWdwYXJzZXIKLWltcG9ydCBiYXNlNjQKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBo
dHRwX2NsaWVudAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBsb2dnaW5nLmhhbmRsZXJzCi1pbXBv
cnQgb3B0cGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc2VsZWN0Ci1pbXBvcnQg
c29ja2V0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdGltZQotZnJvbSBz
aXgubW92ZXMgaW1wb3J0IHVybGxpYgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRw
X2hlYWRlcl91dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbWVtb3JpemluZ2ZpbGUK
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC54
aHJfYmVuY2htYXJrX2hhbmRsZXIgaW1wb3J0IFhIUkJlbmNobWFya0hhbmRsZXIKLQotCi1fREVG
QVVMVF9MT0dfTUFYX0JZVEVTID0gMTAyNCAqIDI1NgotX0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VO
VCA9IDUKLQotX0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpFID0gMTI4Ci0KLSMgMTAyNCBpcyBw
cmFjdGljYWxseSBsYXJnZSBlbm91Z2ggdG8gY29udGFpbiBXZWJTb2NrZXQgaGFuZHNoYWtlIGxp
bmVzLgotX01BWF9NRU1PUklaRURfTElORVMgPSAxMDI0Ci0KLSMgQ29uc3RhbnRzIGZvciB0aGUg
LS10bHNfbW9kdWxlIGZsYWcuCi1fVExTX0JZX1NUQU5EQVJEX01PRFVMRSA9ICdzc2wnCi1fVExT
X0JZX1BZT1BFTlNTTCA9ICdweW9wZW5zc2wnCi0KLQotY2xhc3MgX1N0YW5kYWxvbmVDb25uZWN0
aW9uKG9iamVjdCk6Ci0gICAgIiIiTWltaWMgbW9kX3B5dGhvbiBtcF9jb25uLiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdF9oYW5k
bGVyOiBBIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIgPSByZXF1ZXN0X2hhbmRsZXIKLQotICAgIGRl
ZiBnZXRfbG9jYWxfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nv
bm4ubG9jYWxfYWRkci4iIiIKLQotICAgICAgICByZXR1cm4gKHNlbGYuX3JlcXVlc3RfaGFuZGxl
ci5zZXJ2ZXIuc2VydmVyX25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5k
bGVyLnNlcnZlci5zZXJ2ZXJfcG9ydCkKLSAgICBsb2NhbF9hZGRyID0gcHJvcGVydHkoZ2V0X2xv
Y2FsX2FkZHIpCi0KLSAgICBkZWYgZ2V0X3JlbW90ZV9hZGRyKHNlbGYpOgotICAgICAgICAiIiJH
ZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5yZW1vdGVfYWRkci4KLQotICAgICAgICBTZXR0aW5nIHRo
ZSBwcm9wZXJ0eSBpbiBfX2luaXRfXyB3b24ndCB3b3JrIGJlY2F1c2UgdGhlIHJlcXVlc3QKLSAg
ICAgICAgaGFuZGxlciBpcyBub3QgaW5pdGlhbGl6ZWQgeWV0IHRoZXJlLiIiIgotCi0gICAgICAg
IHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuY2xpZW50X2FkZHJlc3MKLSAgICByZW1vdGVf
YWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotICAgIGRlZiB3cml0ZShzZWxmLCBk
YXRhKToKLSAgICAgICAgIiIiTWltaWMgbXBfY29ubi53cml0ZSgpLiIiIgotCi0gICAgICAgIHJl
dHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIud2ZpbGUud3JpdGUoZGF0YSkKLQotICAgIGRlZiBy
ZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk1pbWljIG1wX2Nvbm4ucmVhZCgpLiIiIgot
Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmZpbGUucmVhZChsZW5ndGgp
Ci0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0IG1l
bW9yaXplZCBsaW5lcy4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVy
LnJmaWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotCi0KLWNsYXNzIF9TdGFuZGFsb25lUmVxdWVz
dChvYmplY3QpOgotICAgICIiIk1pbWljIG1vZF9weXRob24gcmVxdWVzdC4iIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIsIHVzZV90bHMpOgotICAgICAgICAiIiJD
b25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVl
c3RfaGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5kbGVyCi0gICAg
ICAgIHNlbGYuY29ubmVjdGlvbiA9IF9TdGFuZGFsb25lQ29ubmVjdGlvbihyZXF1ZXN0X2hhbmRs
ZXIpCi0gICAgICAgIHNlbGYuX3VzZV90bHMgPSB1c2VfdGxzCi0gICAgICAgIHNlbGYuaGVhZGVy
c19pbiA9IHJlcXVlc3RfaGFuZGxlci5oZWFkZXJzCi0KLSAgICBkZWYgZ2V0X3VyaShzZWxmKToK
LSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3QudXJpLgotCi0gICAgICAgIFRoaXMg
bWV0aG9kIHJldHVybnMgdGhlIHJhdyBkYXRhIGF0IHRoZSBSZXF1ZXN0LVVSSSBwYXJ0IG9mIHRo
ZQotICAgICAgICBSZXF1ZXN0LUxpbmUsIHdoaWxlIHRoZSB1cmkgbWV0aG9kIG9uIHRoZSByZXF1
ZXN0IG9iamVjdCBvZiBtb2RfcHl0aG9uCi0gICAgICAgIHJldHVybnMgdGhlIHBhdGggcG9ydGlv
biBhZnRlciBwYXJzaW5nIHRoZSByYXcgZGF0YS4gVGhpcyBiZWhhdmlvciBpcwotICAgICAgICBr
ZXB0IGZvciBjb21wYXRpYmlsaXR5LgotICAgICAgICAiIiIKLQotICAgICAgICByZXR1cm4gc2Vs
Zi5fcmVxdWVzdF9oYW5kbGVyLnBhdGgKLSAgICB1cmkgPSBwcm9wZXJ0eShnZXRfdXJpKQotCi0g
ICAgZGVmIGdldF91bnBhcnNlZF91cmkoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1p
YyByZXF1ZXN0LnVucGFyc2VkX3VyaS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVz
dF9oYW5kbGVyLnBhdGgKLSAgICB1bnBhcnNlZF91cmkgPSBwcm9wZXJ0eShnZXRfdW5wYXJzZWRf
dXJpKQotCi0gICAgZGVmIGdldF9tZXRob2Qoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBt
aW1pYyByZXF1ZXN0Lm1ldGhvZC4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9o
YW5kbGVyLmNvbW1hbmQKLSAgICBtZXRob2QgPSBwcm9wZXJ0eShnZXRfbWV0aG9kKQotCi0gICAg
ZGVmIGdldF9wcm90b2NvbChzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVl
c3QucHJvdG9jb2wuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5y
ZXF1ZXN0X3ZlcnNpb24KLSAgICBwcm90b2NvbCA9IHByb3BlcnR5KGdldF9wcm90b2NvbCkKLQot
ICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiTWltaWMgcmVxdWVzdC5pc19odHRw
cygpLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl91c2VfdGxzCi0KLQotZGVmIF9pbXBvcnRf
c3NsKCk6Ci0gICAgZ2xvYmFsIHNzbAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IHNzbAotICAg
ICAgICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLQotZGVmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgZ2xvYmFsIE9wZW5TU0wK
LSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBPcGVuU1NMLlNTTAotICAgICAgICByZXR1cm4gVHJ1
ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotY2xh
c3MgX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGNs
YXNzIGZvciBPcGVuU1NMLlNTTC5Db25uZWN0aW9uIHRvCi0gICAgLSBwcm92aWRlIG1ha2VmaWxl
IG1ldGhvZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBjbGFzcwotICAgIC0gdHdlYWsg
c2h1dGRvd24gbWV0aG9kIHNpbmNlIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24uc2h1dGRvd24gZG9l
c24ndAotICAgICAgYWNjZXB0IHRoZSAiaG93IiBhcmd1bWVudC4KLSAgICAtIGNvbnZlcnQgU3lz
Q2FsbEVycm9yIGV4Y2VwdGlvbnMgdGhhdCBpdHMgcmVjdiBtZXRob2QgbWF5IHJhaXNlIGludG8g
YQotICAgICAgcmV0dXJuIHZhbHVlIG9mICcnLCBtZWFuaW5nIEVPRi4gV2UgY2Fubm90IG92ZXJ3
cml0ZSB0aGUgcmVjdiBtZXRob2Qgb24KLSAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gc2luY2UgaXQn
cyBpbW11dGFibGUuCi0gICAgIiIiCi0KLSAgICBfT1ZFUlJJRERFTl9BVFRSSUJVVEVTID0gWydf
Y29ubmVjdGlvbicsICdtYWtlZmlsZScsICdzaHV0ZG93bicsICdyZWN2J10KLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBjb25uZWN0aW9uKToKLSAgICAgICAgc2VsZi5fY29ubmVjdGlvbiA9IGNv
bm5lY3Rpb24KLQotICAgIGRlZiBfX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpOgotICAgICAg
ICBpZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJV
VEVTOgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5h
bWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0aW9uLl9fZ2V0YXR0cmlidXRlX18obmFt
ZSkKLQotICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIGlm
IG5hbWUgaW4gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uLl9PVkVSUklEREVOX0FUVFJJQlVURVM6
Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVl
KQotICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX3NldGF0dHJfXyhuYW1lLCB2YWx1
ZSkKLQotICAgIGRlZiBtYWtlZmlsZShzZWxmLCBtb2RlPSdyJywgYnVmc2l6ZT0tMSk6Ci0gICAg
ICAgIHJldHVybiBzb2NrZXQuX2ZpbGVvYmplY3Qoc2VsZiwgbW9kZSwgYnVmc2l6ZSkKLQotICAg
IGRlZiBzaHV0ZG93bihzZWxmLCB1bnVzZWRfaG93KToKLSAgICAgICAgc2VsZi5fY29ubmVjdGlv
bi5zaHV0ZG93bigpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBidWZzaXplLCBmbGFncz0wKToKLSAg
ICAgICAgaWYgZmxhZ3MgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vbi16
ZXJvIGZsYWdzIG5vdCBhbGxvd2VkJykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fY29ubmVjdGlvbi5yZWN2KGJ1ZnNpemUpCi0gICAgICAgIGV4Y2VwdCBPcGVuU1NM
LlNTTC5TeXNDYWxsRXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUuYXJnc1swXSA9PSAtMToK
LSAgICAgICAgICAgICAgICAjIFN1cHByZXNzICJ1bmV4cGVjdGVkIEVPRiIgZXhjZXB0aW9uLiBT
ZWUgdGhlIE9wZW5TU0wgZG9jdW1lbnQKLSAgICAgICAgICAgICAgICAjIGZvciBTU0xfZ2V0X2Vy
cm9yLgotICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAgICAgcmFpc2UKLQotCi1k
ZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUp
OgotICAgICIiIlNldCBhbGlhc2VzIHNwZWNpZmllZCBpbiB3ZWJzb2NrX2hhbmRsZXJfbWFwX2Zp
bGUgaW4gZGlzcGF0Y2hlci4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGRpc3BhdGNoZXI6IGRpc3Bh
dGNoLkRpc3BhdGNoZXIgaW5zdGFuY2UKLSAgICAgICAgd2Vic29ja19oYW5kbGVyX21hcF9maWxl
OiBhbGlhcyBtYXAgZmlsZQotICAgICIiIgotCi0gICAgZnAgPSBvcGVuKHdlYnNvY2tfaGFuZGxl
cnNfbWFwX2ZpbGUpCi0gICAgdHJ5OgotICAgICAgICBmb3IgbGluZSBpbiBmcDoKLSAgICAgICAg
ICAgIGlmIGxpbmVbMF0gPT0gJyMnIG9yIGxpbmUuaXNzcGFjZSgpOgotICAgICAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2gocicoXFMrKVxzKyhcUyspJywgbGlu
ZSkKLSAgICAgICAgICAgIGlmIG5vdCBtOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2Fybmlu
ZygnV3JvbmcgZm9ybWF0IGluIG1hcCBmaWxlOicgKyBsaW5lKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5hZGRf
cmVzb3VyY2VfcGF0aF9hbGlhcygKLSAgICAgICAgICAgICAgICAgICAgbS5ncm91cCgxKSwgbS5n
cm91cCgyKSkKLSAgICAgICAgICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3Ioc3RyKGUpKQotICAgIGZpbmFsbHk6
Ci0gICAgICAgIGZwLmNsb3NlKCkKLQotCi1jbGFzcyBXZWJTb2NrZXRTZXJ2ZXIoc29ja2V0c2Vy
dmVyLlRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKLSAgICAiIiJI
VFRQU2VydmVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2NrZXQuIiIiCi0KLSAgICAjIE92ZXJyaWRl
cyBzb2NrZXRzZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uZGFlbW9uX3RocmVhZHMKLSAgICBkYWVtb25f
dGhyZWFkcyA9IFRydWUKLSAgICAjIE92ZXJyaWRlcyBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVy
LmFsbG93X3JldXNlX2FkZHJlc3MKLSAgICBhbGxvd19yZXVzZV9hZGRyZXNzID0gVHJ1ZQotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2Nr
ZXRzZXJ2ZXIuVENQU2VydmVyLl9faW5pdF9fIHRvIHNldCBTU0wgZW5hYmxlZAotICAgICAgICBz
b2NrZXQgb2JqZWN0IHRvIHNlbGYuc29ja2V0IGJlZm9yZSBzZXJ2ZXJfYmluZCBhbmQgc2VydmVy
X2FjdGl2YXRlLAotICAgICAgICBpZiBuZWNlc3NhcnkuCi0gICAgICAgICIiIgotCi0gICAgICAg
ICMgU2hhcmUgYSBEaXNwYXRjaGVyIGFtb25nIHJlcXVlc3QgaGFuZGxlcnMgdG8gc2F2ZSB0aW1l
IGZvcgotICAgICAgICAjIGluc3RhbnRpYXRpb24uICBEaXNwYXRjaGVyIGNhbiBiZSBzaGFyZWQg
YmVjYXVzZSBpdCBpcyB0aHJlYWQtc2FmZS4KLSAgICAgICAgb3B0aW9ucy5kaXNwYXRjaGVyID0g
ZGlzcGF0Y2guRGlzcGF0Y2hlcigKLSAgICAgICAgICAgIG9wdGlvbnMud2Vic29ja19oYW5kbGVy
cywKLSAgICAgICAgICAgIG9wdGlvbnMuc2Nhbl9kaXIsCi0gICAgICAgICAgICBvcHRpb25zLmFs
bG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCi0gICAgICAgIGlmIG9wdGlvbnMud2Vic29j
a19oYW5kbGVyc19tYXBfZmlsZToKLSAgICAgICAgICAgIF9hbGlhc19oYW5kbGVycyhvcHRpb25z
LmRpc3BhdGNoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy53ZWJzb2Nr
X2hhbmRsZXJzX21hcF9maWxlKQotICAgICAgICB3YXJuaW5ncyA9IG9wdGlvbnMuZGlzcGF0Y2hl
ci5zb3VyY2Vfd2FybmluZ3MoKQotICAgICAgICBpZiB3YXJuaW5nczoKLSAgICAgICAgICAgIGZv
ciB3YXJuaW5nIGluIHdhcm5pbmdzOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygn
V2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzogJXMnICUgd2FybmluZykKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLnJl
cXVlc3RfcXVldWVfc2l6ZSA9IG9wdGlvbnMucmVxdWVzdF9xdWV1ZV9zaXplCi0gICAgICAgIHNl
bGYuX193c19pc19zaHV0X2Rvd24gPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzZWxmLl9f
d3Nfc2VydmluZyA9IEZhbHNlCi0KLSAgICAgICAgc29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIuX19p
bml0X18oCi0gICAgICAgICAgICBzZWxmLCAob3B0aW9ucy5zZXJ2ZXJfaG9zdCwgb3B0aW9ucy5w
b3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCi0KLSAgICAgICAgIyBFeHBvc2UgdGhlIG9w
dGlvbnMgb2JqZWN0IHRvIGFsbG93IGhhbmRsZXIgb2JqZWN0cyBhY2Nlc3MgaXQuIFdlIG5hbWUK
LSAgICAgICAgIyBpdCB3aXRoIHdlYnNvY2tldF8gcHJlZml4IHRvIGF2b2lkIGNvbmZsaWN0Lgot
ICAgICAgICBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAg
ICBzZWxmLl9jcmVhdGVfc29ja2V0cygpCi0gICAgICAgIHNlbGYuc2VydmVyX2JpbmQoKQotICAg
ICAgICBzZWxmLnNlcnZlcl9hY3RpdmF0ZSgpCi0KLSAgICBkZWYgX2NyZWF0ZV9zb2NrZXRzKHNl
bGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9uYW1lLCBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5z
ZXJ2ZXJfYWRkcmVzcwotICAgICAgICBzZWxmLl9zb2NrZXRzID0gW10KLSAgICAgICAgaWYgbm90
IHNlbGYuc2VydmVyX25hbWU6Ci0gICAgICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0IGRvZXNu
J3Qgc3VwcG9ydCBJUHY2LCB0aGUgZmlyc3QgYmluZCBmYWlscy4KLSAgICAgICAgICAgICMgT24g
cGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSVB2NgotICAgICAgICAgICAgIyAtIElmIGl0IGJpbmRz
IGJvdGggSVB2NCBhbmQgSVB2NiBvbiBjYWxsIHdpdGggQUZfSU5FVDYsIHRoZQotICAgICAgICAg
ICAgIyAgIGZpcnN0IGJpbmQgc3VjY2VlZHMgYW5kIHRoZSBzZWNvbmQgZmFpbHMgKHdlJ2xsIHNl
ZSAnQWRkcmVzcwotICAgICAgICAgICAgIyAgIGFscmVhZHkgaW4gdXNlJyBlcnJvcikuCi0gICAg
ICAgICAgICAjIC0gSWYgaXQgYmluZHMgb25seSBJUHY2IG9uIGNhbGwgd2l0aCBBRl9JTkVUNiwg
Ym90aCBjYWxsIGFyZQotICAgICAgICAgICAgIyAgIGV4cGVjdGVkIHRvIHN1Y2NlZWQgdG8gbGlz
dGVuIGJvdGggcHJvdG9jb2wuCi0gICAgICAgICAgICBhZGRyaW5mb19hcnJheSA9IFsKLSAgICAg
ICAgICAgICAgICAoc29ja2V0LkFGX0lORVQ2LCBzb2NrZXQuU09DS19TVFJFQU0sICcnLCAnJywg
JycpLAotICAgICAgICAgICAgICAgIChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFN
LCAnJywgJycsICcnKV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFkZHJpbmZvX2FycmF5
ID0gc29ja2V0LmdldGFkZHJpbmZvKHNlbGYuc2VydmVyX25hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LkFGX1VOU1BF
QywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tl
dC5TT0NLX1NUUkVBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNvY2tldC5JUFBST1RPX1RDUCkKLSAgICAgICAgZm9yIGFkZHJpbmZvIGluIGFkZHJp
bmZvX2FycmF5OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0NyZWF0ZSBzb2NrZXQg
b246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICBmYW1pbHksIHNvY2t0eXBlLCBwcm90bywg
Y2Fub25uYW1lLCBzb2NrYWRkciA9IGFkZHJpbmZvCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgc29ja2V0XyA9IHNvY2tldC5zb2NrZXQoZmFtaWx5LCBzb2NrdHlwZSkKLSAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCi0gICAgICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi53ZWJzb2NrZXRfc2VydmVyX29w
dGlvbnMKLSAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnVzZV90bHM6Ci0gICAgICAgICAg
ICAgICAgIyBGb3IgdGhlIGNhc2Ugb2YgX0hBU19PUEVOX1NTTCwgd2UgZG8gd3JhcHBlciBzZXR1
cCBhZnRlcgotICAgICAgICAgICAgICAgICMgYWNjZXB0LgotICAgICAgICAgICAgICAgIGlmIHNl
cnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfYXV0aDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRp
b25hbDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wuQ0VS
VF9PUFRJT05BTAotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wuQ0VSVF9SRVFVSVJFRAotICAgICAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0g
c3NsLkNFUlRfTk9ORQotICAgICAgICAgICAgICAgICAgICBzb2NrZXRfID0gc3NsLndyYXBfc29j
a2V0KHNvY2tldF8sCi0gICAgICAgICAgICAgICAgICAgICAgICBrZXlmaWxlPXNlcnZlcl9vcHRp
b25zLnByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgY2VydGZpbGU9c2VydmVy
X29wdGlvbnMuY2VydGlmaWNhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lv
bj1zc2wuUFJPVE9DT0xfU1NMdjIzLAotICAgICAgICAgICAgICAgICAgICAgICAgY2FfY2VydHM9
c2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNl
cnRfcmVxcz1jbGllbnRfY2VydF8sCi0gICAgICAgICAgICAgICAgICAgICAgICBkb19oYW5kc2hh
a2Vfb25fY29ubmVjdD1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMuYXBwZW5kKChz
b2NrZXRfLCBhZGRyaW5mbykpCi0KLSAgICBkZWYgc2VydmVyX2JpbmQoc2VsZik6Ci0gICAgICAg
ICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuc2VydmVyX2JpbmQgdG8gZW5hYmxl
IG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMgYmluZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
ZmFpbGVkX3NvY2tldHMgPSBbXQotCi0gICAgICAgIGZvciBzb2NrZXRpbmZvIGluIHNlbGYuX3Nv
Y2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5mbyA9IHNvY2tldGluZm8KLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdCaW5kIG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAg
ICAgICAgaWYgc2VsZi5hbGxvd19yZXVzZV9hZGRyZXNzOgotICAgICAgICAgICAgICAgIHNvY2tl
dF8uc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JFVVNFQUREUiwgMSkK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrZXRfLmJpbmQoc2VsZi5zZXJ2
ZXJfYWRkcmVzcykKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCi0gICAg
ICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0gICAgICAgICAgICAgICAgZmFpbGVkX3NvY2tl
dHMuYXBwZW5kKHNvY2tldGluZm8pCi0gICAgICAgICAgICBpZiBzZWxmLnNlcnZlcl9hZGRyZXNz
WzFdID09IDA6Ci0gICAgICAgICAgICAgICAgIyBUaGUgb3BlcmF0aW5nIHN5c3RlbSBhc3NpZ25z
IHRoZSBhY3R1YWwgcG9ydCBudW1iZXIgZm9yIHBvcnQKLSAgICAgICAgICAgICAgICAjIG51bWJl
ciAwLiBUaGlzIGNhc2UsIHRoZSBzZWNvbmQgYW5kIGxhdGVyIHNvY2tldHMgc2hvdWxkIHVzZQot
ICAgICAgICAgICAgICAgICMgdGhlIHNhbWUgcG9ydCBudW1iZXIuIEFsc28gc2VsZi5zZXJ2ZXJf
cG9ydCBpcyByZXdyaXR0ZW4KLSAgICAgICAgICAgICAgICAjIGJlY2F1c2UgaXQgaXMgZXhwb3J0
ZWQsIGFuZCB3aWxsIGJlIHVzZWQgYnkgZXh0ZXJuYWwgY29kZS4KLSAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlcl9hZGRyZXNzID0gKAotICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9u
YW1lLCBzb2NrZXRfLmdldHNvY2tuYW1lKClbMV0pCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2
ZXJfcG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3NbMV0KLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnUG9ydCAlciBpcyBhc3NpZ25lZCcsIHNlbGYuc2VydmVyX3BvcnQpCi0KLSAg
ICAgICAgZm9yIHNvY2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6Ci0gICAgICAgICAgICBzZWxm
Ll9zb2NrZXRzLnJlbW92ZShzb2NrZXRpbmZvKQotCi0gICAgZGVmIHNlcnZlcl9hY3RpdmF0ZShz
ZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLlRDUFNlcnZlci5zZXJ2ZXJf
YWN0aXZhdGUgdG8gZW5hYmxlIG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMgbGlzdGVuLgotICAg
ICAgICAiIiIKLQotICAgICAgICBmYWlsZWRfc29ja2V0cyA9IFtdCi0KLSAgICAgICAgZm9yIHNv
Y2tldGluZm8gaW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tldF8sIGFkZHJpbmZv
ID0gc29ja2V0aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0xpc3RlbiBvbjog
JXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrZXRf
Lmxpc3RlbihzZWxmLnJlcXVlc3RfcXVldWVfc2l6ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBm
YWlsdXJlOiAlcicsIGUpCi0gICAgICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0gICAgICAg
ICAgICAgICAgZmFpbGVkX3NvY2tldHMuYXBwZW5kKHNvY2tldGluZm8pCi0KLSAgICAgICAgZm9y
IHNvY2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXRz
LnJlbW92ZShzb2NrZXRpbmZvKQotCi0gICAgICAgIGlmIGxlbihzZWxmLl9zb2NrZXRzKSA9PSAw
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICdO
byBzb2NrZXRzIGFjdGl2YXRlZC4gVXNlIGluZm8gbG9nIGxldmVsIHRvIHNlZSB0aGUgcmVhc29u
LicpCi0KLSAgICBkZWYgc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBz
b2NrZXRzZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9jbG9zZSB0byBlbmFibGUgbXVsdGlwbGUKLSAg
ICAgICAgc29ja2V0cyBjbG9zZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZm9yIHNvY2tldGlu
Zm8gaW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tldF8sIGFkZHJpbmZvID0gc29j
a2V0aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nsb3NlIG9uOiAlcicsIGFk
ZHJpbmZvKQotICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0KLSAgICBkZWYgZmlsZW5vKHNl
bGYpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIuVENQU2VydmVyLmZpbGVuby4i
IiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwoJ05vdCBzdXBwb3J0ZWQ6IGZpbGVu
bycpCi0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXRzWzBdWzBdLmZpbGVubygpCi0KLSAgICBk
ZWYgaGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLmhhbmRsZV9lcnJvci4iIiIKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZXJyb3IoCi0gICAgICAgICAgICAnRXhjZXB0aW9uIGluIHByb2Nlc3NpbmcgcmVx
dWVzdCBmcm9tOiAlclxuJXMnLAotICAgICAgICAgICAgY2xpZW50X2FkZHJlc3MsCi0gICAgICAg
ICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAjIE5vdGU6IGNsaWVudF9hZGRy
ZXNzIGlzIGEgdHVwbGUuCi0KLSAgICBkZWYgZ2V0X3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICIi
Ik92ZXJyaWRlIFRDUFNlcnZlci5nZXRfcmVxdWVzdCB0byB3cmFwIE9wZW5TU0wuU1NMLkNvbm5l
Y3Rpb24KLSAgICAgICAgb2JqZWN0IHdpdGggX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uIHRvIHBy
b3ZpZGUgbWFrZWZpbGUgbWV0aG9kLiBXZQotICAgICAgICBjYW5ub3Qgc3Vic3RpdHV0ZSBPcGVu
U1NMLlNTTC5Db25uZWN0aW9uLm1ha2VmaWxlIHNpbmNlIGl0J3MgcmVhZG9ubHkKLSAgICAgICAg
YXR0cmlidXRlLgotICAgICAgICAiIiIKLQotICAgICAgICBhY2NlcHRlZF9zb2NrZXQsIGNsaWVu
dF9hZGRyZXNzID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKLQotICAgICAgICBzZXJ2ZXJfb3B0aW9u
cyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAgIGlmIHNlcnZlcl9vcHRp
b25zLnVzZV90bHM6Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09
IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAg
ICAgZXhjZXB0IHNzbC5TU0xFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLQotICAgICAg
ICAgICAgICAgICMgUHJpbnQgY2lwaGVyIGluIHVzZS4gSGFuZHNoYWtlIGlzIGRvbmUgb24gYWNj
ZXB0LgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2lwaGVyOiAlcycsIGFj
Y2VwdGVkX3NvY2tldC5jaXBoZXIoKSkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ0NsaWVudCBjZXJ0OiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFjY2VwdGVkX3NvY2tldC5nZXRwZWVyY2VydCgpKQotICAgICAgICAgICAgZWxpZiBzZXJ2ZXJf
b3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgICAg
ICMgV2UgY2Fubm90IHByaW50IHRoZSBjaXBoZXIgaW4gdXNlLiBweU9wZW5TU0wgZG9lc24ndCBw
cm92aWRlCi0gICAgICAgICAgICAgICAgIyBhbnkgbWV0aG9kIHRvIGZldGNoIHRoYXQuCi0KLSAg
ICAgICAgICAgICAgICBjdHggPSBPcGVuU1NMLlNTTC5Db250ZXh0KE9wZW5TU0wuU1NMLlNTTHYy
M19NRVRIT0QpCi0gICAgICAgICAgICAgICAgY3R4LnVzZV9wcml2YXRla2V5X2ZpbGUoc2VydmVy
X29wdGlvbnMucHJpdmF0ZV9rZXkpCi0gICAgICAgICAgICAgICAgY3R4LnVzZV9jZXJ0aWZpY2F0
ZV9maWxlKHNlcnZlcl9vcHRpb25zLmNlcnRpZmljYXRlKQotCi0gICAgICAgICAgICAgICAgZGVm
IGRlZmF1bHRfY2FsbGJhY2soY29ubiwgY2VydCwgZXJybnVtLCBlcnJkZXB0aCwgb2spOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gb2sgPT0gMQotCi0gICAgICAgICAgICAgICAgIyBTZWUg
dGhlIE9wZW5TU0wgZG9jdW1lbnQgZm9yIFNTTF9DVFhfc2V0X3ZlcmlmeS4KLSAgICAgICAgICAg
ICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICAgICAg
ICAgIHZlcmlmeV9tb2RlID0gT3BlblNTTC5TU0wuVkVSSUZZX1BFRVIKLSAgICAgICAgICAgICAg
ICAgICAgaWYgbm90IHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9tb2RlIHw9IE9wZW5TU0wuU1NMLlZFUklGWV9G
QUlMX0lGX05PX1BFRVJfQ0VSVAotICAgICAgICAgICAgICAgICAgICBjdHguc2V0X3ZlcmlmeSh2
ZXJpZnlfbW9kZSwgZGVmYXVsdF9jYWxsYmFjaykKLSAgICAgICAgICAgICAgICAgICAgY3R4Lmxv
YWRfdmVyaWZ5X2xvY2F0aW9ucyhzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NhLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUpCi0gICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgY3R4LnNldF92ZXJpZnkoT3BlblNTTC5T
U0wuVkVSSUZZX05PTkUsIGRlZmF1bHRfY2FsbGJhY2spCi0KLSAgICAgICAgICAgICAgICBhY2Nl
cHRlZF9zb2NrZXQgPSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uKGN0eCwgYWNjZXB0ZWRfc29ja2V0
KQotICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5zZXRfYWNjZXB0X3N0YXRlKCkKLQot
ICAgICAgICAgICAgICAgICMgQ29udmVydCBTU0wgcmVsYXRlZCBlcnJvciBpbnRvIHNvY2tldC5l
cnJvciBzbyB0aGF0Ci0gICAgICAgICAgICAgICAgIyBTb2NrZXRTZXJ2ZXIgaWdub3JlcyB0aGVt
IGFuZCBrZWVwcyBydW5uaW5nLgotICAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICAj
IFRPRE8odHlvc2hpbm8pOiBDb252ZXJ0IGFsbCBraW5kcyBvZiBlcnJvcnMuCi0gICAgICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZG9faGFuZHNo
YWtlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgT3BlblNTTC5TU0wuRXJyb3IgYXMgZToKLSAg
ICAgICAgICAgICAgICAgICAgIyBTZXQgZXJybm8gcGFydCB0byAxIChTU0xfRVJST1JfU1NMKSBs
aWtlIHRoZSBzc2wgbW9kdWxlCi0gICAgICAgICAgICAgICAgICAgICMgZG9lcy4KLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUpCi0gICAgICAgICAgICAgICAg
ICAgIHJhaXNlIHNvY2tldC5lcnJvcigxLCAnJXInICUgZSkKLSAgICAgICAgICAgICAgICBjZXJ0
ID0gYWNjZXB0ZWRfc29ja2V0LmdldF9wZWVyX2NlcnRpZmljYXRlKCkKLSAgICAgICAgICAgICAg
ICBpZiBjZXJ0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0NsaWVudCBjZXJ0IHN1YmplY3Q6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNlcnQuZ2V0X3N1YmplY3QoKS5nZXRfY29tcG9uZW50cygpKQotICAg
ICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldCA9IF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbihh
Y2NlcHRlZF9zb2NrZXQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ05vIFRMUyBzdXBwb3J0IG1vZHVsZSBpcyBhdmFpbGFibGUnKQotCi0gICAg
ICAgIHJldHVybiBhY2NlcHRlZF9zb2NrZXQsIGNsaWVudF9hZGRyZXNzCi0KLSAgICBkZWYgc2Vy
dmVfZm9yZXZlcihzZWxmLCBwb2xsX2ludGVydmFsPTAuNSk6Ci0gICAgICAgICIiIk92ZXJyaWRl
IHNvY2tldHNlcnZlci5CYXNlU2VydmVyLnNlcnZlX2ZvcmV2ZXIuIiIiCi0KLSAgICAgICAgc2Vs
Zi5fX3dzX3NlcnZpbmcgPSBUcnVlCi0gICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24uY2xl
YXIoKQotICAgICAgICBoYW5kbGVfcmVxdWVzdCA9IHNlbGYuaGFuZGxlX3JlcXVlc3QKLSAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLCAnX2hhbmRsZV9yZXF1ZXN0X25vYmxvY2snKToKLSAgICAgICAg
ICAgIGhhbmRsZV9yZXF1ZXN0ID0gc2VsZi5faGFuZGxlX3JlcXVlc3Rfbm9ibG9jawotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoJ0ZhbGxiYWNrIHRvIGJs
b2NraW5nIHJlcXVlc3QgaGFuZGxlcicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxl
IHNlbGYuX193c19zZXJ2aW5nOgotICAgICAgICAgICAgICAgIHIsIHcsIGUgPSBzZWxlY3Quc2Vs
ZWN0KAotICAgICAgICAgICAgICAgICAgICBbc29ja2V0X1swXSBmb3Igc29ja2V0XyBpbiBzZWxm
Ll9zb2NrZXRzXSwKLSAgICAgICAgICAgICAgICAgICAgW10sIFtdLCBwb2xsX2ludGVydmFsKQot
ICAgICAgICAgICAgICAgIGZvciBzb2NrZXRfIGluIHI6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuc29ja2V0ID0gc29ja2V0XwotICAgICAgICAgICAgICAgICAgICBoYW5kbGVfcmVxdWVzdCgp
Ci0gICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBOb25lCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLnNldCgpCi0KLSAgICBkZWYgc2h1dGRv
d24oc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5CYXNlU2VydmVyLnNo
dXRkb3duLiIiIgotCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gRmFsc2UKLSAgICAgICAg
c2VsZi5fX3dzX2lzX3NodXRfZG93bi53YWl0KCkKLQotCi1jbGFzcyBXZWJTb2NrZXRSZXF1ZXN0
SGFuZGxlcihDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlcik6Ci0gICAgIiIiQ0dJ
SFRUUFJlcXVlc3RIYW5kbGVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2NrZXQuIiIiCi0KLSAgICAj
IFVzZSBodHRwX2NsaWVudC5IVFRQTWVzc2FnZSBpbnN0ZWFkIG9mIG1pbWV0b29scy5NZXNzYWdl
LgotICAgIE1lc3NhZ2VDbGFzcyA9IGh0dHBfY2xpZW50LkhUVFBNZXNzYWdlCi0KLSAgICBwcm90
b2NvbF92ZXJzaW9uID0gIkhUVFAvMS4xIgotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAg
ICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIuc2V0dXAgdG8g
d3JhcCByZmlsZQotICAgICAgICB3aXRoIE1lbW9yaXppbmdGaWxlLgotCi0gICAgICAgIFRoaXMg
bWV0aG9kIHdpbGwgYmUgY2FsbGVkIGJ5IEJhc2VSZXF1ZXN0SGFuZGxlcidzIGNvbnN0cnVjdG9y
Ci0gICAgICAgIGJlZm9yZSBjYWxsaW5nIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlLgot
ICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZSB3aWxsIGNhbGwKLSAgICAgICAg
QmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgYW5kIGl0IHdpbGwgY2Fs
bAotICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgotICAgICAg
ICAiIiIKLQotICAgICAgICAjIENhbGwgc3VwZXJjbGFzcydzIHNldHVwIHRvIHByZXBhcmUgcmZp
bGUsIHdmaWxlLCBldGMuIFNlZSBzZXR1cAotICAgICAgICAjIGRlZmluaXRpb24gb24gdGhlIHJv
b3QgY2xhc3Mgc29ja2V0c2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyIHRvCi0gICAgICAgICMg
dW5kZXJzdGFuZCB3aGF0IHRoaXMgZG9lcy4KLSAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQ
UmVxdWVzdEhhbmRsZXIuc2V0dXAoc2VsZikKLQotICAgICAgICBzZWxmLnJmaWxlID0gbWVtb3Jp
emluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoCi0gICAgICAgICAgICBzZWxmLnJmaWxlLAotICAgICAg
ICAgICAgbWF4X21lbW9yaXplZF9saW5lcz1fTUFYX01FTU9SSVpFRF9MSU5FUykKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKToKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IHNlcnZlci53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLQotICAgICAg
ICAjIE92ZXJyaWRlcyBDR0lIVFRQU2VydmVyUmVxdWVzdEhhbmRsZXIuY2dpX2RpcmVjdG9yaWVz
LgotICAgICAgICBzZWxmLmNnaV9kaXJlY3RvcmllcyA9IHNlbGYuX29wdGlvbnMuY2dpX2RpcmVj
dG9yaWVzCi0gICAgICAgICMgUmVwbGFjZSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaXNfZXhlY3V0
YWJsZSBtZXRob2QuCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRo
b2QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmlzX2V4ZWN1dGFibGUgPSBzZWxmLl9v
cHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kCi0KLSAgICAgICAgIyBUaGlzIGFjdHVhbGx5IGNh
bGxzIEJhc2VSZXF1ZXN0SGFuZGxlci5fX2luaXRfXy4KLSAgICAgICAgQ0dJSFRUUFNlcnZlci5D
R0lIVFRQUmVxdWVzdEhhbmRsZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCByZXF1ZXN0
LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKQotCi0gICAgZGVmIHBhcnNlX3JlcXVlc3Qoc2VsZik6
Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLkJhc2VIVFRQUmVxdWVzdEhhbmRs
ZXIucGFyc2VfcmVxdWVzdC4KLQotICAgICAgICBSZXR1cm4gVHJ1ZSB0byBjb250aW51ZSBwcm9j
ZXNzaW5nIGZvciBIVFRQKFMpLCBGYWxzZSBvdGhlcndpc2UuCi0KLSAgICAgICAgU2VlIEJhc2VI
VFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IG1ldGhvZCB3aGljaCBjYWxscwot
ICAgICAgICB0aGlzIG1ldGhvZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgcmV0dXJuIHZhbHVlIHdp
bGwgYmUgaGFuZGxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBXZSBob29rIHBhcnNlX3Jl
cXVlc3QgbWV0aG9kLCBidXQgYWxzbyBjYWxsIHRoZSBvcmlnaW5hbAotICAgICAgICAjIENHSUhU
VFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0IHNpbmNlIHdoZW4gd2UgcmV0dXJuIEZhbHNl
LAotICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgY29u
dGludWVzIHByb2Nlc3NpbmcgYW5kCi0gICAgICAgICMgaXQgbmVlZHMgdmFyaWFibGVzIHNldCBi
eSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KLSAgICAgICAgIwotICAgICAg
ICAjIFZhcmlhYmxlcyBzZXQgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSBhbHNvIHVzZWQgYnkgV2Vi
U29ja2V0IHJlcXVlc3QKLSAgICAgICAgIyBoYW5kbGluZyAoc2VsZi5wYXRoLCBzZWxmLmNvbW1h
bmQsIHNlbGYucmVxdWVzdGxpbmUsIGV0Yy4gU2VlIGFsc28KLSAgICAgICAgIyBob3cgX1N0YW5k
YWxvbmVSZXF1ZXN0J3MgbWVtYmVycyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlc2UKLSAgICAg
ICAgIyBhdHRyaWJ1dGVzKS4KLSAgICAgICAgaWYgbm90IENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJl
cXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLQotICAgICAgICBpZiBzZWxmLmNvbW1hbmQgPT0gIkNPTk5FQ1QiOgotICAgICAgICAgICAg
c2VsZi5zZW5kX3Jlc3BvbnNlKDIwMCwgIkNvbm5lY3RlZCIpCi0gICAgICAgICAgICBzZWxmLnNl
bmRfaGVhZGVyKCJDb25uZWN0aW9uIiwgImtlZXAtYWxpdmUiKQotICAgICAgICAgICAgc2VsZi5l
bmRfaGVhZGVycygpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnVzZV9iYXNpY19hdXRoOgotICAgICAgICAgICAgYXV0aCA9IHNlbGYuaGVhZGVy
cy5nZXRoZWFkZXIoJ0F1dGhvcml6YXRpb24nKQotICAgICAgICAgICAgaWYgYXV0aCAhPSBzZWxm
Ll9vcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbDoKLSAgICAgICAgICAgICAgICBzZWxmLnNl
bmRfcmVzcG9uc2UoNDAxKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ1dXVy1B
dXRoZW50aWNhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jhc2ljIHJl
YWxtPSJQeXdlYnNvY2tldCInKQotICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZXF1ZXN0IGJhc2ljIGF1dGhlbnRp
Y2F0aW9uJykKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAjIFNwZWNp
YWwgcGF0aHMgZm9yIFhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyawotICAgICAgICB4aHJfYmVuY2ht
YXJrX2hlbHBlcl9wcmVmaXggPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1Jwot
ICAgICAgICBwYXJzZWRfcGF0aCA9IHVybGxpYi5wYXJzZS51cmxzcGxpdChzZWxmLnBhdGgpCi0g
ICAgICAgIGlmIHBhcnNlZF9wYXRoLnBhdGggPT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZp
eCArICdfc2VuZCcpOgotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyID0gWEhSQmVu
Y2htYXJrSGFuZGxlcigKLSAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNlbGYucmZpbGUs
IHNlbGYud2ZpbGUpCi0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIuZG9fc2VuZCgp
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgcGFyc2VkX3BhdGgucGF0aCA9
PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsgJ19yZWNlaXZlJyk6Ci0gICAgICAgICAg
ICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAotICAgICAgICAg
ICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKLSAgICAgICAgICAg
IHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19yZWNlaXZlX2FuZF9wYXJzZSgpCi0gICAgICAgICAg
ICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgcGFyc2VkX3BhdGgucGF0aCA9PSAoeGhyX2JlbmNo
bWFya19oZWxwZXJfcHJlZml4ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19y
ZWNlaXZlX2dldG5vY2FjaGUnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9
IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxm
LnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRv
X3JlY2VpdmUoCi0gICAgICAgICAgICAgICAgaW50KHBhcnNlZF9wYXRoLnF1ZXJ5KSwgRmFsc2Us
IEZhbHNlKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHBhcnNlZF9wYXRo
LnBhdGggPT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdfcmVjZWl2ZV9nZXRjYWNoZScpOgotICAgICAgICAgICAgeGhyX2Jl
bmNobWFya19oYW5kbGVyID0gWEhSQmVuY2htYXJrSGFuZGxlcigKLSAgICAgICAgICAgICAgICBz
ZWxmLmhlYWRlcnMsIHNlbGYucmZpbGUsIHNlbGYud2ZpbGUpCi0gICAgICAgICAgICB4aHJfYmVu
Y2htYXJrX2hhbmRsZXIuZG9fcmVjZWl2ZSgKLSAgICAgICAgICAgICAgICBpbnQocGFyc2VkX3Bh
dGgucXVlcnkpLCBGYWxzZSwgVHJ1ZSkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAg
ICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoc2Vs
Zi5wYXRoKQotICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmluZm8oJ0ludmFsaWQgVVJJOiAlcicsIHNlbGYucGF0aCkKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAg
ICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgc2VydmVyX29wdGlvbnMgPSBzZWxmLnNlcnZl
ci53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLSAgICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHZhbGlkYXRpb25faG9zdCA9IHNlcnZlcl9vcHRpb25zLnZhbGlkYXRpb25f
aG9zdAotICAgICAgICAgICAgaWYgdmFsaWRhdGlvbl9ob3N0IGlzIG5vdCBOb25lIGFuZCBob3N0
ICE9IHZhbGlkYXRpb25faG9zdDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygn
SW52YWxpZCBob3N0OiAlciAoZXhwZWN0ZWQ6ICVyKScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaG9zdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxp
ZGF0aW9uX2hvc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNr
IHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK
LSAgICAgICAgaWYgcG9ydCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHZhbGlkYXRpb25fcG9y
dCA9IHNlcnZlcl9vcHRpb25zLnZhbGlkYXRpb25fcG9ydAotICAgICAgICAgICAgaWYgdmFsaWRh
dGlvbl9wb3J0IGlzIG5vdCBOb25lIGFuZCBwb3J0ICE9IHZhbGlkYXRpb25fcG9ydDoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52YWxpZCBwb3J0OiAlciAoZXhwZWN0ZWQ6
ICVyKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uX3BvcnQpCi0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgc2VsZi5wYXRoID0gcmVzb3Vy
Y2UKLQotICAgICAgICByZXF1ZXN0ID0gX1N0YW5kYWxvbmVSZXF1ZXN0KHNlbGYsIHNlbGYuX29w
dGlvbnMudXNlX3RscykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIEZhbGxiYWNrIHRv
IGRlZmF1bHQgaHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAotICAgICAg
ICAgICAgIyB3ZSBkb24ndCBoYXZlIHJlcXVlc3QgaGFuZGxlcnMuCi0gICAgICAgICAgICBpZiBu
b3Qgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLmdldF9oYW5kbGVyX3N1aXRlKHNlbGYucGF0aCk6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ05vIGhhbmRsZXIgZm9yIHJlc291
cmNlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXRoKQot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVx
dWVzdEhhbmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGV4Y2Vw
dCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0Rpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKLSAgICAgICAgICAg
IHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0g
ICAgICAgICMgSWYgYW55IEV4Y2VwdGlvbnMgd2l0aG91dCBleGNlcHQgY2xhdXNlIHNldHVwIChp
bmNsdWRpbmcKLSAgICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlvbikgaXMgcmFpc2VkIGJlbG93IHRo
aXMgcG9pbnQsIGl0IHdpbGwgYmUgY2F1Z2h0Ci0gICAgICAgICMgYW5kIGxvZ2dlZCBieSBXZWJT
b2NrZXRTZXJ2ZXIuCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIGhhbmRzaGFrZS5kb19oYW5kc2hha2UoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlciwKLSAgICAg
ICAgICAgICAgICAgICAgYWxsb3dEcmFmdDc1PXNlbGYuX29wdGlvbnMuYWxsb3dfZHJhZnQ3NSwK
LSAgICAgICAgICAgICAgICAgICAgc3RyaWN0PXNlbGYuX29wdGlvbnMuc3RyaWN0KQotICAgICAg
ICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0hhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24gZXJy
b3I6ICVzJywgZSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoY29tbW9uLkhU
VFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIo
Y29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlLnN1cHBvcnRlZF92ZXJzaW9ucykKLSAgICAgICAgICAgICAgICBzZWxm
LmVuZF9oZWFkZXJzKCkKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAg
IGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAg
ICAgIyBIYW5kc2hha2UgZm9yIHdzKHMpIGZhaWxlZC4KLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnSGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKLSAgICAgICAg
ICAgICAgICBzZWxmLnNlbmRfZXJyb3IoZS5zdGF0dXMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLSAgICAgICAgICAgIHJlcXVlc3QuX2Rpc3BhdGNoZXIgPSBzZWxmLl9vcHRpb25z
LmRpc3BhdGNoZXIKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlci50cmFuc2Zl
cl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Fib3J0ZWQ6ICVz
JywgZSkKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwg
Y29kZT0nLScsIHNpemU9Jy0nKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIu
bG9nX3JlcXVlc3QuIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyIlcyIgJXMgJXMn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RsaW5lLCBzdHIoY29kZSks
IHN0cihzaXplKSkKLQotICAgIGRlZiBsb2dfZXJyb3Ioc2VsZiwgKmFyZ3MpOgotICAgICAgICAi
IiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5sb2dfZXJyb3IuIiIiCi0KLSAgICAgICAgIyBEZXNw
aXRlIHRoZSBuYW1lLCB0aGlzIG1ldGhvZCBpcyBmb3Igd2FybmluZ3MgdGhhbiBmb3IgZXJyb3Jz
LgotICAgICAgICAjIEZvciBleGFtcGxlLCBIVFRQIHN0YXR1cyBjb2RlIGlzIGxvZ2dlZCBieSB0
aGlzIG1ldGhvZC4KLSAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoJyVzIC0gJXMnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3Nfc3RyaW5nKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0gJSBhcmdzWzE6XSkKLQotICAgIGRlZiBpc19j
Z2koc2VsZik6Ci0gICAgICAgICIiIlRlc3Qgd2hldGhlciBzZWxmLnBhdGggY29ycmVzcG9uZHMg
dG8gYSBDR0kgc2NyaXB0LgotCi0gICAgICAgIEFkZCBleHRyYSBjaGVjayB0aGF0IHNlbGYucGF0
aCBkb2Vzbid0IGNvbnRhaW5zIC4uCi0gICAgICAgIEFsc28gY2hlY2sgaWYgdGhlIGZpbGUgaXMg
YSBleGVjdXRhYmxlIGZpbGUgb3Igbm90LgotICAgICAgICBJZiB0aGUgZmlsZSBpcyBub3QgZXhl
Y3V0YWJsZSwgaXQgaXMgaGFuZGxlZCBhcyBzdGF0aWMgZmlsZSBvciBkaXIKLSAgICAgICAgcmF0
aGVyIHRoYW4gYSBDR0kgc2NyaXB0LgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBDR0lIVFRQ
U2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2VsZik6Ci0gICAgICAgICAgICBp
ZiAnLi4nIGluIHNlbGYucGF0aDoKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAg
ICAgICAgICMgc3RyaXAgcXVlcnkgcGFyYW1ldGVyIGZyb20gcmVxdWVzdCBwYXRoCi0gICAgICAg
ICAgICByZXNvdXJjZV9uYW1lID0gc2VsZi5wYXRoLnNwbGl0KCc/JywgMilbMF0KLSAgICAgICAg
ICAgICMgY29udmVydCByZXNvdXJjZV9uYW1lIGludG8gcmVhbCBwYXRoIG5hbWUgaW4gZmlsZXN5
c3RlbS4KLSAgICAgICAgICAgIHNjcmlwdGZpbGUgPSBzZWxmLnRyYW5zbGF0ZV9wYXRoKHJlc291
cmNlX25hbWUpCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5p
c19leGVjdXRhYmxlKHNjcmlwdGZpbGUpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQot
ICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIF9n
ZXRfbG9nZ2VyX2Zyb21fY2xhc3MoYyk6Ci0gICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKCcl
cy4lcycgJSAoYy5fX21vZHVsZV9fLCBjLl9fbmFtZV9fKSkKLQotCi1kZWYgX2NvbmZpZ3VyZV9s
b2dnaW5nKG9wdGlvbnMpOgotICAgIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGNvbW1vbi5MT0dMRVZF
TF9GSU5FLCAnRklORScpCi0KLSAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAg
bG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVw
cGVyKCkpKQotICAgIGlmIG9wdGlvbnMubG9nX2ZpbGU6Ci0gICAgICAgIGhhbmRsZXIgPSBsb2dn
aW5nLmhhbmRsZXJzLlJvdGF0aW5nRmlsZUhhbmRsZXIoCi0gICAgICAgICAgICAgICAgb3B0aW9u
cy5sb2dfZmlsZSwgJ2EnLCBvcHRpb25zLmxvZ19tYXgsIG9wdGlvbnMubG9nX2NvdW50KQotICAg
IGVsc2U6Ci0gICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQotICAgIGZv
cm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAgICAgICAgJ1slKGFzY3RpbWUpc10g
WyUobGV2ZWxuYW1lKXNdICUobmFtZSlzOiAlKG1lc3NhZ2UpcycpCi0gICAgaGFuZGxlci5zZXRG
b3JtYXR0ZXIoZm9ybWF0dGVyKQotICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCi0KLSAg
ICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1lID0gbG9nZ2luZy5nZXRMZXZlbE5hbWUoCi0gICAgICAg
IG9wdGlvbnMuZGVmbGF0ZV9sb2dfbGV2ZWwudXBwZXIoKSkKLSAgICBfZ2V0X2xvZ2dlcl9mcm9t
X2NsYXNzKHV0aWwuX0RlZmxhdGVyKS5zZXRMZXZlbCgKLSAgICAgICAgZGVmbGF0ZV9sb2dfbGV2
ZWxfbmFtZSkKLSAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0aWwuX0luZmxhdGVyKS5zZXRM
ZXZlbCgKLSAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkKLQotCi1kZWYgX2J1aWxkX29w
dGlvbl9wYXJzZXIoKToKLSAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tY29uZmlnJywgZGVzdD0nY29uZmlnX2ZpbGUnLCB0eXBl
PSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnUGF0aCB0byBjb25maWd1cmF0aW9uIGZpbGUuIFNlZSB0aGUg
ZmlsZSBjb21tZW50ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXQgdGhlIHRvcCBv
ZiB0aGlzIGZpbGUgZm9yIHRoZSBjb25maWd1cmF0aW9uICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZmlsZSBmb3JtYXQnKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLUgnLCAnLS1z
ZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSdzZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywKLSAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgaG9zdG5hbWUgdG8gbGlzdGVuIHRvJykKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLVYnLCAnLS12YWxpZGF0aW9uLWhvc3QnLCAnLS12YWxpZGF0
aW9uX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25faG9zdCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J3NlcnZlciBob3N0bmFtZSB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRoLicp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBl
PSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Y29tbW9uLkRFRkFVTFRfV0VC
X1NPQ0tFVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3BvcnQgdG8gbGlzdGVu
IHRvJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLVAnLCAnLS12YWxpZGF0aW9uLXBvcnQnLCAn
LS12YWxpZGF0aW9uX3BvcnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRp
b25fcG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25l
LAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBwb3J0IHRvIHZhbGlkYXRlIGlu
IGFic29sdXRlIHBhdGguJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXcnLCAnLS13ZWJzb2Nr
LWhhbmRsZXJzJywgJy0td2Vic29ja19oYW5kbGVycycsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nd2Vic29ja19oYW5kbGVycycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
LicsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1RoZSByb290IGRpcmVjdG9yeSBvZiBX
ZWJTb2NrZXQgaGFuZGxlciBmaWxlcy4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJ
ZiB0aGUgcGF0aCBpcyByZWxhdGl2ZSwgLS1kb2N1bWVudC1yb290IGlzIHVzZWQgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdhcyB0aGUgYmFzZS4nKSkKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLW0nLCAnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJywKLSAgICAgICAgICAgICAg
ICAgICAgICAnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYlNvY2tl
dCBoYW5kbGVycyBtYXAgZmlsZS4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFYWNo
IGxpbmUgY29uc2lzdHMgb2YgYWxpYXNfcmVzb3VyY2VfcGF0aCBhbmQgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdleGlzdGluZ19yZXNvdXJjZV9wYXRoLCBzZXBhcmF0ZWQgYnkgc3Bh
Y2VzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNjYW4tZGlyJywgJy0tc2Nh
bl9kaXInLCBkZXN0PSdzY2FuX2RpcicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1O
b25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNdXN0IGJlIGEgZGlyZWN0b3J5IHVu
ZGVyIC0td2Vic29jay1oYW5kbGVycy4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdP
bmx5IGhhbmRsZXJzIHVuZGVyIHRoaXMgZGlyZWN0b3J5IGFyZSBzY2FubmVkICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnYW5kIHJlZ2lzdGVyZWQgdG8gdGhlIHNlcnZlci4gJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VmdWwgZm9yIHNhdmluZyBzY2FuIHRpbWUgd2hl
biB0aGUgaGFuZGxlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3QgZGlyZWN0
b3J5IGNvbnRhaW5zIGxvdHMgb2YgZmlsZXMgdGhhdCBhcmUgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdub3QgaGFuZGxlciBmaWxlIG9yIGFyZSBoYW5kbGVyIGZpbGVzIGJ1dCB5b3Ug
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb25cJ3Qgd2FudCB0aGVtIHRvIGJlIHJl
Z2lzdGVyZWQuICcpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93LWhhbmRsZXJzLW91
dHNpZGUtcm9vdC1kaXInLAotICAgICAgICAgICAgICAgICAgICAgICctLWFsbG93X2hhbmRsZXJz
X291dHNpZGVfcm9vdF9kaXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2FsbG93X2hh
bmRsZXJzX291dHNpZGVfcm9vdF9kaXInLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0n
c3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSgnU2NhbnMgV2ViU29ja2V0IGhhbmRsZXJzIGV2ZW4gaWYg
dGhlaXIgY2Fub25pY2FsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCBpcyBu
b3QgdW5kZXIgLS13ZWJzb2NrLWhhbmRsZXJzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
ZCcsICctLWRvY3VtZW50LXJvb3QnLCAnLS1kb2N1bWVudF9yb290JywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdkb2N1bWVudF9yb290JywgZGVmYXVsdD0nLicsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nRG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkuJykKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0
aHMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jvb3QuJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0ZWQuIChlLmcgLXggL2NnaSwv
aHRiaW4pICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZXMgdW5kZXIgZG9jdW1l
bnRfcm9vdC9jZ2lfcGF0aCBhcmUgaGFuZGxlZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2FzIENHSSBwcm9ncmFtcy4gTXVzdCBiZSBleGVjdXRhYmxlLicpKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3Ry
dWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMg
KHdzczovLyknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNf
bW9kdWxlJywgZGVzdD0ndGxzX21vZHVsZScsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0n
Y2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzID0gW19UTFNfQllfU1RBTkRB
UkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCi0gICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQuICcKLSAgICAgICAgICAgICAg
ICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlP
UEVOU1NMKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1wcml2YXRlLWtleScsICct
LXByaXZhdGVfa2V5JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdwcml2YXRlX2tleScs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5
IGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRl
c3Q9J2NlcnRpZmljYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxw
PSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1j
bGllbnQtYXV0aCcsIGRlc3Q9J3Rsc19jbGllbnRfYXV0aCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdSZXF1ZXN0cyBUTFMgY2xpZW50IGF1dGggb24gZXZlcnkgY29ubmVjdGlvbi4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtY2VydC1vcHRpb25hbCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJywKLSAg
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNYWtlcyBjbGllbnQgY2VydGlmaWNhdGUgb3B0
aW9uYWwgZXZlbiB0aG91Z2ggJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgY2xp
ZW50IGF1dGggaXMgZW5hYmxlZC4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xp
ZW50LWNhJywgZGVzdD0ndGxzX2NsaWVudF9jYScsIGRlZmF1bHQ9JycsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0oJ1NwZWNpZmllcyBhIHBlbSBmaWxlIHdoaWNoIGNvbnRhaW5zIGEgc2V0
IG9mICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkIENBIGNlcnRp
ZmljYXRlcyB3aGljaCBhcmUgdXNlZCB0byAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3ZhbGlkYXRlIGNlcnRpZmljYXRlcyBwYXNzZWQgZnJvbSBjbGllbnRzJykpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aCcsIGRlc3Q9J3VzZV9iYXNpY19hdXRoJywKLSAgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlcXVpcmVzIEJhc2ljIGF1dGhlbnRpY2F0aW9uLicp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aC1jcmVkZW50aWFsJywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSdiYXNpY19hdXRoX2NyZWRlbnRpYWwnLCBkZWZhdWx0PSd0
ZXN0OnRlc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZmllcyB0aGUgY3Jl
ZGVudGlhbCBvZiBiYXNpYyBhdXRoZW50aWNhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAg
J2J5IHVzZXJuYW1lOnBhc3N3b3JkIHBhaXIgKGUuZy4gdGVzdDp0ZXN0KS4nKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9nX2ZpbGUnLCBkZXN0PSdsb2df
ZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nTG9nIGZpbGUu
JykKLSAgICAjIEN1c3RvbSBsb2cgbGV2ZWw6Ci0gICAgIyAtIEZJTkU6IFByaW50cyBzdGF0dXMg
b2YgZWFjaCBmcmFtZSBwcm9jZXNzaW5nIHN0ZXAKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1s
b2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAgICAgICAg
ICAgICAgIGNob2ljZXM9WydmaW5lJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
ZGVidWcnLCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjcml0aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J0xvZyBsZXZlbC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRlZmxhdGUtbG9nLWxl
dmVsJywgJy0tZGVmbGF0ZV9sb2dfbGV2ZWwnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9
J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGVmbGF0ZV9sb2dfbGV2ZWwn
LCBkZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcn
LCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdjcml0aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xv
ZyBsZXZlbCBmb3IgX0RlZmxhdGVyIGFuZCBfSW5mbGF0ZXIuJykKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLS10aHJlYWQtbW9uaXRvci1pbnRlcnZhbC1pbi1zZWMnLAotICAgICAgICAgICAgICAg
ICAgICAgICctLXRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYycsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0ndGhyZWFkX21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjJywKLSAgICAgICAg
ICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9KCdJZiBwb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwgcnVuIGEgdGhyZWFk
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9uaXRvciB0byBzaG93IHRoZSBzdGF0
dXMgb2Ygc2VydmVyIHRocmVhZHMgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJp
b2RpY2FsbHkgaW4gdGhlIHNwZWNpZmllZCBpbnRldmFsIGluICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnc2Vjb25kLiBJZiBub24tcG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQs
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZSB0aGUgdGhyZWFkIG1vbml0
b3IuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLW1heCcsICctLWxvZ19tYXgnLCBk
ZXN0PSdsb2dfbWF4JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PV9ERUZBVUxUX0xPR19NQVhfQllURVMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9n
IG1heGltdW0gYnl0ZXMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1jb3VudCcsICct
LWxvZ19jb3VudCcsIGRlc3Q9J2xvZ19jb3VudCcsCi0gICAgICAgICAgICAgICAgICAgICAgdHlw
ZT0naW50JywgZGVmYXVsdD1fREVGQVVMVF9MT0dfQkFDS1VQX0NPVU5ULAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J0xvZyBiYWNrdXAgY291bnQnKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLWFsbG93LWRyYWZ0NzUnLCBkZXN0PSdhbGxvd19kcmFmdDc1JywKLSAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLXN0cmljdCcsIGRlc3Q9J3N0cmljdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0nT2Jzb2xldGUgb3B0
aW9uLiBJZ25vcmVkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVldWUnLCBk
ZXN0PSdyZXF1ZXN0X3F1ZXVlX3NpemUnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9X0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpFLAotICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J3JlcXVlc3QgcXVldWUgc2l6ZScpCi0KLSAgICByZXR1cm4gcGFyc2VyCi0K
LQotY2xhc3MgVGhyZWFkTW9uaXRvcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICBkYWVtb24gPSBU
cnVlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaW50ZXJ2YWxfaW5fc2VjKToKLSAgICAgICAg
dGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSdUaHJlYWRNb25pdG9yJykKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAg
ICAgICBzZWxmLl9pbnRlcnZhbF9pbl9zZWMgPSBpbnRlcnZhbF9pbl9zZWMKLQotICAgIGRlZiBy
dW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICB0aHJlYWRfbmFtZV9s
aXN0ID0gW10KLSAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkaW5nLmVudW1lcmF0ZSgp
OgotICAgICAgICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QuYXBwZW5kKHRocmVhZC5uYW1lKQot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgIiVkIGFjdGl2
ZSB0aHJlYWRzOiAlcyIsCi0gICAgICAgICAgICAgICAgdGhyZWFkaW5nLmFjdGl2ZV9jb3VudCgp
LAotICAgICAgICAgICAgICAgICcsICcuam9pbih0aHJlYWRfbmFtZV9saXN0KSkKLSAgICAgICAg
ICAgIHRpbWUuc2xlZXAoc2VsZi5faW50ZXJ2YWxfaW5fc2VjKQotCi0KLWRlZiBfcGFyc2VfYXJn
c19hbmRfY29uZmlnKGFyZ3MpOgotICAgIHBhcnNlciA9IF9idWlsZF9vcHRpb25fcGFyc2VyKCkK
LQotICAgICMgRmlyc3QsIHBhcnNlIG9wdGlvbnMgd2l0aG91dCBjb25maWd1cmF0aW9uIGZpbGUu
Ci0gICAgdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzID0gcGFyc2VyLnBhcnNlX2Fy
Z3MoYXJncz1hcmdzKQotICAgIGlmIHRlbXBvcmFyeV9hcmdzOgotICAgICAgICBsb2dnaW5nLmNy
aXRpY2FsKAotICAgICAgICAgICAgJ1VucmVjb2duaXplZCBwb3NpdGlvbmFsIGFyZ3VtZW50czog
JXInLCB0ZW1wb3JhcnlfYXJncykKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIHRlbXBv
cmFyeV9vcHRpb25zLmNvbmZpZ19maWxlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb25m
aWdfZnAgPSBvcGVuKHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxlLCAncicpCi0gICAgICAg
IGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAg
ICAgICAgICAgICAgICdGYWlsZWQgdG8gb3BlbiBjb25maWd1cmF0aW9uIGZpbGUgJXI6ICVyJywK
LSAgICAgICAgICAgICAgICB0ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZSwKLSAgICAgICAg
ICAgICAgICBlKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBjb25maWdfcGFy
c2VyID0gY29uZmlncGFyc2VyLlNhZmVDb25maWdQYXJzZXIoKQotICAgICAgICBjb25maWdfcGFy
c2VyLnJlYWRmcChjb25maWdfZnApCi0gICAgICAgIGNvbmZpZ19mcC5jbG9zZSgpCi0KLSAgICAg
ICAgYXJnc19mcm9tX2NvbmZpZyA9IFtdCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBjb25m
aWdfcGFyc2VyLml0ZW1zKCdweXdlYnNvY2tldCcpOgotICAgICAgICAgICAgYXJnc19mcm9tX2Nv
bmZpZy5hcHBlbmQoJy0tJyArIG5hbWUpCi0gICAgICAgICAgICBhcmdzX2Zyb21fY29uZmlnLmFw
cGVuZCh2YWx1ZSkKLSAgICAgICAgaWYgYXJncyBpcyBOb25lOgotICAgICAgICAgICAgYXJncyA9
IGFyZ3NfZnJvbV9jb25maWcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFyZ3MgPSBhcmdz
X2Zyb21fY29uZmlnICsgYXJncwotICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoYXJn
cz1hcmdzKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiB0ZW1wb3Jhcnlfb3B0aW9ucywgdGVt
cG9yYXJ5X2FyZ3MKLQotCi1kZWYgX21haW4oYXJncz1Ob25lKToKLSAgICAiIiJZb3UgY2FuIGNh
bGwgdGhpcyBmdW5jdGlvbiBmcm9tIHlvdXIgb3duIHByb2dyYW0sIGJ1dCBwbGVhc2Ugbm90ZSB0
aGF0Ci0gICAgdGhpcyBmdW5jdGlvbiBoYXMgc29tZSBzaWRlLWVmZmVjdHMgdGhhdCBtaWdodCBh
ZmZlY3QgeW91ciBwcm9ncmFtLiBGb3IKLSAgICBleGFtcGxlLCB1dGlsLndyYXBfcG9wZW4zX2Zv
cl93aW4gdXNlIGluIHRoaXMgbWV0aG9kIHJlcGxhY2VzIGltcGxlbWVudGF0aW9uCi0gICAgb2Yg
b3MucG9wZW4zLgotICAgICIiIgotCi0gICAgb3B0aW9ucywgYXJncyA9IF9wYXJzZV9hcmdzX2Fu
ZF9jb25maWcoYXJncz1hcmdzKQotCi0gICAgb3MuY2hkaXIob3B0aW9ucy5kb2N1bWVudF9yb290
KQotCi0gICAgX2NvbmZpZ3VyZV9sb2dnaW5nKG9wdGlvbnMpCi0KLSAgICBpZiBvcHRpb25zLmFs
bG93X2RyYWZ0NzU6Ci0gICAgICAgIGxvZ2dpbmcud2FybmluZygnLS1hbGxvd19kcmFmdDc1IG9w
dGlvbiBpcyBvYnNvbGV0ZS4nKQotCi0gICAgaWYgb3B0aW9ucy5zdHJpY3Q6Ci0gICAgICAgIGxv
Z2dpbmcud2FybmluZygnLS1zdHJpY3Qgb3B0aW9uIGlzIG9ic29sZXRlLicpCi0KLSAgICAjIFRP
RE8odHlvc2hpbm8pOiBDbGVhbiB1cCBpbml0aWFsaXphdGlvbiBvZiBDR0kgcmVsYXRlZCB2YWx1
ZXMuIE1vdmUgc29tZQotICAgICMgb2YgY29kZSBoZXJlIHRvIFdlYlNvY2tldFJlcXVlc3RIYW5k
bGVyIGNsYXNzIGlmIGl0J3MgYmV0dGVyLgotICAgIG9wdGlvbnMuY2dpX2RpcmVjdG9yaWVzID0g
W10KLSAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kID0gTm9uZQotICAgIGlmIG9wdGlv
bnMuY2dpX3BhdGhzOgotICAgICAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IG9wdGlvbnMu
Y2dpX3BhdGhzLnNwbGl0KCcsJykKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnY3lnd2lu
JywgJ3dpbjMyJyk6Ci0gICAgICAgICAgICBjeWd3aW5fcGF0aCA9IE5vbmUKLSAgICAgICAgICAg
ICMgRm9yIFdpbjMyIFB5dGhvbiwgaXQgaXMgZXhwZWN0ZWQgdGhhdCBDWUdXSU5fUEFUSAotICAg
ICAgICAgICAgIyBpcyBzZXQgdG8gYSBkaXJlY3Rvcnkgb2YgY3lnd2luIGJpbmFyaWVzLgotICAg
ICAgICAgICAgIyBGb3IgZXhhbXBsZSwgd2Vic29ja2V0X3NlcnZlci5weSBpbiBDaHJvbWl1bSBz
ZXRzIENZR1dJTl9QQVRIIHRvCi0gICAgICAgICAgICAjIGZ1bGwgcGF0aCBvZiB0aGlyZF9wYXJ0
eS9jeWd3aW4vYmluLgotICAgICAgICAgICAgaWYgJ0NZR1dJTl9QQVRIJyBpbiBvcy5lbnZpcm9u
OgotICAgICAgICAgICAgICAgIGN5Z3dpbl9wYXRoID0gb3MuZW52aXJvblsnQ1lHV0lOX1BBVEgn
XQotICAgICAgICAgICAgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRoKQotCi0g
ICAgICAgICAgICBkZWYgX19jaGVja19zY3JpcHQoc2NyaXB0cGF0aCk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoc2NyaXB0cGF0aCwgY3lnd2luX3BhdGgp
Ci0KLSAgICAgICAgICAgIG9wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRob2QgPSBfX2NoZWNrX3Nj
cmlwdAotCi0gICAgaWYgb3B0aW9ucy51c2VfdGxzOgotICAgICAgICBpZiBvcHRpb25zLnRsc19t
b2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAg
ICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEUKLSAgICAg
ICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBzc2wgbW9kdWxlJykKLSAgICAgICAgICAg
IGVsaWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19t
b2R1bGUgPSBfVExTX0JZX1BZT1BFTlNTTAotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWco
J1VzaW5nIHB5T3BlblNTTCBtb2R1bGUnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1RMUyBzdXBw
b3J0IHJlcXVpcmVzIHNzbCBvciBweU9wZW5TU0wgbW9kdWxlLicpCi0gICAgICAgICAgICAgICAg
c3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9T
VEFOREFSRF9NT0RVTEU6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9zc2woKToKLSAgICAg
ICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdzc2wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUn
KQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNf
bW9kdWxlID09IF9UTFNfQllfUFlPUEVOU1NMOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRf
cHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgncHlPcGVuU1NM
IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnSW52YWxpZCAtLXRs
cy1tb2R1bGUgb3B0aW9uOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv
bnMudGxzX21vZHVsZSkKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgbm90
IG9wdGlvbnMucHJpdmF0ZV9rZXkgb3Igbm90IG9wdGlvbnMuY2VydGlmaWNhdGU6Ci0gICAgICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICAgICAnVG8gdXNlIFRMUywg
c3BlY2lmeSBwcml2YXRlX2tleSBhbmQgY2VydGlmaWNhdGUuJykKLSAgICAgICAgICAgIHN5cy5l
eGl0KDEpCi0KLSAgICAgICAgaWYgKG9wdGlvbnMudGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsIGFu
ZAotICAgICAgICAgICAgbm90IG9wdGlvbnMudGxzX2NsaWVudF9hdXRoKToKLSAgICAgICAgICAg
IGxvZ2dpbmcuY3JpdGljYWwoJ0NsaWVudCBhdXRoZW50aWNhdGlvbiBtdXN0IGJlIGVuYWJsZWQg
dG8gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlY2lmeSB0bHNfY2xpZW50X2Nl
cnRfb3B0aW9uYWwnKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAg
ICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5n
LmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25zLnRsc19jbGllbnRfYXV0aDoK
LSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1RMUyBtdXN0IGJlIGVuYWJsZWQgZm9yIGNs
aWVudCBhdXRoZW50aWNhdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAg
ICBpZiBvcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbDoKLSAgICAgICAgICAgIGxvZ2dp
bmcuY3JpdGljYWwoJ1RMUyBtdXN0IGJlIGVuYWJsZWQgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlv
bi4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG5vdCBvcHRpb25zLnNjYW5f
ZGlyOgotICAgICAgICBvcHRpb25zLnNjYW5fZGlyID0gb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJz
Ci0KLSAgICBpZiBvcHRpb25zLnVzZV9iYXNpY19hdXRoOgotICAgICAgICBvcHRpb25zLmJhc2lj
X2F1dGhfY3JlZGVudGlhbCA9ICdCYXNpYyAnICsgYmFzZTY0LmI2NGVuY29kZSgKLSAgICAgICAg
ICAgIG9wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50aWFsKQotCi0gICAgdHJ5OgotICAgICAgICBp
ZiBvcHRpb25zLnRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYyA+IDA6Ci0gICAgICAgICAg
ICAjIFJ1biBhIHRocmVhZCBtb25pdG9yIHRvIHNob3cgdGhlIHN0YXR1cyBvZiBzZXJ2ZXIgdGhy
ZWFkcyBmb3IKLSAgICAgICAgICAgICMgZGVidWdnaW5nLgotICAgICAgICAgICAgVGhyZWFkTW9u
aXRvcihvcHRpb25zLnRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYykuc3RhcnQoKQotCi0g
ICAgICAgIHNlcnZlciA9IFdlYlNvY2tldFNlcnZlcihvcHRpb25zKQotICAgICAgICBzZXJ2ZXIu
c2VydmVfZm9yZXZlcigpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKCdtb2RfcHl3ZWJzb2NrZXQ6ICVzJyAlIGUpCi0gICAgICAgIGxvZ2dpbmcu
Y3JpdGljYWwoJ21vZF9weXdlYnNvY2tldDogJXMnICUgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkK
LSAgICAgICAgc3lzLmV4aXQoMSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAg
IF9tYWluKHN5cy5hcmd2WzE6XSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0
cmVhbS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTdkMzEzNmFjOWI0MmY1ZGY1
NjUyZDkxZjNjODg2Zjg1ZWNiZjFmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgZXhw
b3J0cyBwdWJsaWMgc3ltYm9scy4iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZFVURjhFeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0
ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oaXhpZTc1IGlt
cG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IEZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVh
bQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW1PcHRpb25z
Ci0KLSMgVGhlc2UgbWV0aG9kcyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBXZWJTb2NrZXQg
Y2xpZW50IGRldmVsb3BlcnMgdG8gaGF2ZQotIyB0aGVpciBpbXBsZW1lbnRhdGlvbnMgcmVjZWl2
ZSBicm9rZW4gZGF0YSBpbiB0ZXN0cy4KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHli
aSBpbXBvcnQgY3JlYXRlX2Nsb3NlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2h5YmkgaW1wb3J0IGNyZWF0ZV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgY3JlYXRlX2xlbmd0aF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX3BpbmdfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX3BvbmdfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfdGV4dF9mcmFtZQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2Vf
Ym9keQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZjODI4NGNkMDc0NGNkZTM4NGM1NDJhOTZkY2MzMGFlZjVhZGU4
NzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvdXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyNCArMCwwIEBACi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgdXRpbGl0aWVzLiIiIgotCi0KLWltcG9y
dCBhcnJheQotaW1wb3J0IGVycm5vCi0KLSMgSW1wb3J0IGhhc2ggY2xhc3NlcyBmcm9tIGEgbW9k
dWxlIGF2YWlsYWJsZSBhbmQgcmVjb21tZW5kZWQgZm9yIGVhY2ggUHl0aG9uCi0jIHZlcnNpb24g
YW5kIHJlLWV4cG9ydCB0aG9zZSBzeW1ib2wuIFVzZSBzaGEgYW5kIG1kNSBtb2R1bGUgaW4gUHl0
aG9uIDIuNCwgYW5kCi0jIGhhc2hsaWIgbW9kdWxlIGluIFB5dGhvbiAyLjYuCi10cnk6Ci0gICAg
aW1wb3J0IGhhc2hsaWIKLSAgICBtZDVfaGFzaCA9IGhhc2hsaWIubWQ1Ci0gICAgc2hhMV9oYXNo
ID0gaGFzaGxpYi5zaGExCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgaW1wb3J0IG1kNQotICAg
IGltcG9ydCBzaGEKLSAgICBtZDVfaGFzaCA9IG1kNS5tZDUKLSAgICBzaGExX2hhc2ggPSBzaGEu
c2hhCi0KLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBTdHJpbmdJTwotaW1wb3J0IGxvZ2dpbmcKLWlt
cG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgdHJhY2ViYWNrCi1pbXBv
cnQgemxpYgotCi10cnk6Ci0gICAgZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGZhc3RfbWFz
a2luZwotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHBhc3MKLQotCi1kZWYgZ2V0X3N0YWNrX3Ry
YWNlKCk6Ci0gICAgIiIiR2V0IHRoZSBjdXJyZW50IHN0YWNrIHRyYWNlIGFzIHN0cmluZy4KLQot
ICAgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgUHl0aG9uIDIuMy4KLSAgICBUT0RPOiBSZW1v
dmUgdGhpcyB3aGVuIHdlIG9ubHkgc3VwcG9ydCBQeXRob24gMi40IGFuZCBhYm92ZS4KLSAgICAg
ICAgICBVc2UgdHJhY2ViYWNrLmZvcm1hdF9leGMgaW5zdGVhZC4KLSAgICAiIiIKLSAgICBvdXQg
PSBTdHJpbmdJTygpCi0gICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPW91dCkKLSAgICByZXR1
cm4gb3V0LmdldHZhbHVlKCkKLQotCi1kZWYgcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbiht
ZXNzYWdlLCBleGMpOgotICAgICIiIlByZXBlbmQgbWVzc2FnZSB0byB0aGUgZXhjZXB0aW9uLiIi
IgotICAgIGV4Yy5hcmdzID0gKG1lc3NhZ2UgKyBzdHIoZXhjKSwpCi0gICAgcmV0dXJuCi0KLQot
ZGVmIF9fdHJhbnNsYXRlX2ludGVycChpbnRlcnAsIGN5Z3dpbl9wYXRoKToKLSAgICAiIiJUcmFu
c2xhdGUgaW50ZXJwIHByb2dyYW0gcGF0aCBmb3IgV2luMzIgcHl0aG9uIHRvIHJ1biBjeWd3aW4g
cHJvZ3JhbQotICAgIChlLmcuIHBlcmwpLiAgTm90ZSB0aGF0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBw
YXRoIHRoYXQgY29udGFpbnMgc3BhY2UsCi0gICAgd2hpY2ggaXMgdHlwaWNhbGx5IHRydWUgZm9y
IFVuaXgsIHdoZXJlICMhLXNjcmlwdCBpcyB3cml0dGVuLgotICAgIEZvciBXaW4zMiBweXRob24s
IGN5Z3dpbl9wYXRoIGlzIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KLQotICAgIEFy
Z3M6Ci0gICAgICBpbnRlcnA6IGludGVycCBjb21tYW5kIGxpbmUKLSAgICAgIGN5Z3dpbl9wYXRo
OiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBvciBOb25lCi0gICAgUmV0dXJuczoK
LSAgICAgIHRyYW5zbGF0ZWQgaW50ZXJwIGNvbW1hbmQgbGluZS4KLSAgICAiIiIKLSAgICBpZiBu
b3QgY3lnd2luX3BhdGg6Ci0gICAgICAgIHJldHVybiBpbnRlcnAKLSAgICBtID0gcmUubWF0Y2go
J15bXiBdKi8oW14gXSspKCAuKik/JywgaW50ZXJwKQotICAgIGlmIG06Ci0gICAgICAgIGNtZCA9
IG9zLnBhdGguam9pbihjeWd3aW5fcGF0aCwgbS5ncm91cCgxKSkKLSAgICAgICAgcmV0dXJuIGNt
ZCArIG0uZ3JvdXAoMikKLSAgICByZXR1cm4gaW50ZXJwCi0KLQotZGVmIGdldF9zY3JpcHRfaW50
ZXJwKHNjcmlwdF9wYXRoLCBjeWd3aW5fcGF0aD1Ob25lKToKLSAgICByIiIiR2V0ICMhLWludGVy
cHJldGVyIGNvbW1hbmQgbGluZSBmcm9tIHRoZSBzY3JpcHQuCi0KLSAgICBJdCBhbHNvIGZpeGVz
IGNvbW1hbmQgcGF0aC4gIFdoZW4gQ3lnd2luIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIFdlYktp
dCwKLSAgICBpdCBjb3VsZCBydW4gIi91c3IvYmluL3BlcmwgLXdUIGhlbGxvLnBsIi4KLSAgICBX
aGVuIFdpbjMyIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIENocm9taXVtLCBpdCBjb3VsZG4ndC4g
IFNvLCBmaXgKLSAgICAiL3Vzci9iaW4vcGVybCIgdG8gIjxjeWd3aW5fcGF0aD5ccGVybC5leGUi
LgotCi0gICAgQXJnczoKLSAgICAgIHNjcmlwdF9wYXRoOiBwYXRobmFtZSBvZiB0aGUgc2NyaXB0
Ci0gICAgICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3Ig
Tm9uZQotICAgIFJldHVybnM6Ci0gICAgICAjIS1pbnRlcnByZXRlciBjb21tYW5kIGxpbmUsIG9y
IE5vbmUgaWYgaXQgaXMgbm90ICMhLXNjcmlwdC4KLSAgICAiIiIKLSAgICBmcCA9IG9wZW4oc2Ny
aXB0X3BhdGgpCi0gICAgbGluZSA9IGZwLnJlYWRsaW5lKCkKLSAgICBmcC5jbG9zZSgpCi0gICAg
bSA9IHJlLm1hdGNoKCdeIyEoLiopJywgbGluZSkKLSAgICBpZiBtOgotICAgICAgICByZXR1cm4g
X190cmFuc2xhdGVfaW50ZXJwKG0uZ3JvdXAoMSksIGN5Z3dpbl9wYXRoKQotICAgIHJldHVybiBO
b25lCi0KLQotZGVmIHdyYXBfcG9wZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpOgotICAgICIiIldy
YXAgcG9wZW4zIHRvIHN1cHBvcnQgIyEtc2NyaXB0IG9uIFdpbmRvd3MuCi0KLSAgICBBcmdzOgot
ICAgICAgY3lnd2luX3BhdGg6ICBwYXRoIGZvciBjeWd3aW4gYmluYXJ5IGlmIGNvbW1hbmQgcGF0
aCBpcyBuZWVkZWQgdG8gYmUKLSAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZC4gIE5vbmUg
aWYgbm8gdHJhbnNsYXRpb24gcmVxdWlyZWQuCi0gICAgIiIiCi0gICAgX19vcmlnX3BvcGVuMyA9
IG9zLnBvcGVuMwotCi0gICAgZGVmIF9fd3JhcF9wb3BlbjMoY21kLCBtb2RlPSd0JywgYnVmc2l6
ZT0tMSk6Ci0gICAgICAgIGNtZGxpbmUgPSBjbWQuc3BsaXQoJyAnKQotICAgICAgICBpbnRlcnAg
PSBnZXRfc2NyaXB0X2ludGVycChjbWRsaW5lWzBdLCBjeWd3aW5fcGF0aCkKLSAgICAgICAgaWYg
aW50ZXJwOgotICAgICAgICAgICAgY21kID0gaW50ZXJwICsgJyAnICsgY21kCi0gICAgICAgIHJl
dHVybiBfX29yaWdfcG9wZW4zKGNtZCwgbW9kZSwgYnVmc2l6ZSkKLQotICAgIG9zLnBvcGVuMyA9
IF9fd3JhcF9wb3BlbjMKLQotCi1kZWYgaGV4aWZ5KHMpOgotICAgIHJldHVybiAnICcuam9pbiht
YXAobGFtYmRhIHg6ICclMDJ4JyAlIG9yZCh4KSwgcykpCi0KLQotZGVmIGdldF9jbGFzc19sb2dn
ZXIobyk6Ci0gICAgIiIiUmV0dXJuIHRoZSBsb2dnaW5nIGNsYXNzIGluZm9ybWF0aW9uLiIiIgot
ICAgIHJldHVybiBsb2dnaW5nLmdldExvZ2dlcigKLSAgICAgICAgJyVzLiVzJyAlIChvLl9fY2xh
c3NfXy5fX21vZHVsZV9fLCBvLl9fY2xhc3NfXy5fX25hbWVfXykpCi0KLQotY2xhc3MgTm9vcE1h
c2tlcihvYmplY3QpOgotICAgICIiIkEgTm9PcCBtYXNraW5nIG9iamVjdC4KLQotICAgIFRoaXMg
aGFzIHRoZSBzYW1lIGludGVyZmFjZSBhcyBSZXBlYXRlZFhvck1hc2tlciBidXQganVzdCByZXR1
cm5zCi0gICAgdGhlIHN0cmluZyBwYXNzZWQgaW4gd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZS4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIiIiTm9PcC4iIiIK
LSAgICAgICAgcGFzcwotCi0gICAgZGVmIG1hc2soc2VsZiwgcyk6Ci0gICAgICAgICIiIk5vT3Au
IiIiCi0gICAgICAgIHJldHVybiBzCi0KLQotY2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXIob2JqZWN0
KToKLQotICAgICIiIkEgbWFza2luZyBvYmplY3QgdGhhdCBhcHBsaWVzIFhPUiBvbiB0aGUgc3Ry
aW5nLgotCi0gICAgQXBwbGllcyBYT1Igb24gdGhlIHN0cmluZyBnaXZlbiB0byBtYXNrIG1ldGhv
ZCB3aXRoIHRoZSBtYXNraW5nIGJ5dGVzCi0gICAgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yIHJl
cGVhdGVkbHkuIFRoaXMgb2JqZWN0IHJlbWVtYmVycyB0aGUgcG9zaXRpb24KLSAgICBpbiB0aGUg
bWFza2luZyBieXRlcyB0aGUgbGFzdCBtYXNrIG1ldGhvZCBjYWxsIGVuZGVkIGFuZCByZXN1bWVz
IGZyb20KLSAgICB0aGF0IHBvaW50IG9uIHRoZSBuZXh0IG1hc2sgbWV0aG9kIGNhbGwuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWFza2luZ19rZXkpOgotICAgICAgICBzZWxm
Ll9tYXNraW5nX2tleSA9IG1hc2tpbmdfa2V5Ci0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2lu
ZGV4ID0gMAotCi0gICAgZGVmIF9tYXNrX3VzaW5nX3N3aWcoc2VsZiwgcyk6Ci0gICAgICAgICIi
IlBlcmZvcm0gdGhlIG1hc2sgdmlhIFNXSUcuIiIiCi0gICAgICAgIG1hc2tlZF9kYXRhID0gZmFz
dF9tYXNraW5nLm1hc2soCi0gICAgICAgICAgICAgICAgcywgc2VsZi5fbWFza2luZ19rZXksIHNl
bGYuX21hc2tpbmdfa2V5X2luZGV4KQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9
ICgKLSAgICAgICAgICAgICAgICAoc2VsZi5fbWFza2luZ19rZXlfaW5kZXggKyBsZW4ocykpICUg
bGVuKHNlbGYuX21hc2tpbmdfa2V5KSkKLSAgICAgICAgcmV0dXJuIG1hc2tlZF9kYXRhCi0KLSAg
ICBkZWYgX21hc2tfdXNpbmdfYXJyYXkoc2VsZiwgcyk6Ci0gICAgICAgICIiIlBlcmZvcm0gdGhl
IG1hc2sgdmlhIHB5dGhvbi4iIiIKLSAgICAgICAgcmVzdWx0ID0gYXJyYXkuYXJyYXkoJ0InKQot
ICAgICAgICByZXN1bHQuZnJvbXN0cmluZyhzKQotCi0gICAgICAgICMgVXNlIHRlbXBvcmFyeSBs
b2NhbCB2YXJpYWJsZXMgdG8gZWxpbWluYXRlIHRoZSBjb3N0IHRvIGFjY2VzcwotICAgICAgICAj
IGF0dHJpYnV0ZXMKLSAgICAgICAgbWFza2luZ19rZXkgPSBtYXAob3JkLCBzZWxmLl9tYXNraW5n
X2tleSkKLSAgICAgICAgbWFza2luZ19rZXlfc2l6ZSA9IGxlbihtYXNraW5nX2tleSkKLSAgICAg
ICAgbWFza2luZ19rZXlfaW5kZXggPSBzZWxmLl9tYXNraW5nX2tleV9pbmRleAotCi0gICAgICAg
IGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0KSk6Ci0gICAgICAgICAgICByZXN1bHRbaV0gXj0g
bWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdCi0gICAgICAgICAgICBtYXNraW5nX2tleV9p
bmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfc2l6ZQotCi0gICAg
ICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gbWFza2luZ19rZXlfaW5kZXgKLQotICAgICAg
ICByZXR1cm4gcmVzdWx0LnRvc3RyaW5nKCkKLQotICAgIGlmICdmYXN0X21hc2tpbmcnIGluIGds
b2JhbHMoKToKLSAgICAgICAgbWFzayA9IF9tYXNrX3VzaW5nX3N3aWcKLSAgICBlbHNlOgotICAg
ICAgICBtYXNrID0gX21hc2tfdXNpbmdfYXJyYXkKLQotCi0jIEJ5IG1ha2luZyB3Yml0cyBvcHRp
b24gbmVnYXRpdmUsIHdlIGNhbiBzdXBwcmVzcyBDTUYvRkxHICgyIG9jdGV0KSBhbmQKLSMgQURM
RVIzMiAoNCBvY3RldCkgZmllbGRzIG9mIHpsaWIgc28gdGhhdCB3ZSBjYW4gdXNlIHpsaWIgbW9k
dWxlIGp1c3QgYXMKLSMgZGVmbGF0ZSBsaWJyYXJ5LiBESUNUSUQgd29uJ3QgYmUgYWRkZWQgYXMg
ZmFyIGFzIHdlIGRvbid0IHNldCBkaWN0aW9uYXJ5LgotIyBMWjc3IHdpbmRvdyBvZiAzMksgd2ls
bCBiZSB1c2VkIGZvciBib3RoIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uLgotIyBGb3Ig
ZGVjb21wcmVzc2lvbiwgd2UgY2FuIGp1c3QgdXNlIDMySyB0byBjb3ZlciBhbnkgd2luZG93cyBz
aXplLiBGb3IKLSMgY29tcHJlc3Npb24sIHdlIHVzZSAzMksgc28gcmVjZWl2ZXJzIG11c3QgdXNl
IDMySy4KLSMKLSMgQ29tcHJlc3Npb24gbGV2ZWwgaXMgWl9ERUZBVUxUX0NPTVBSRVNTSU9OLiBX
ZSBkb24ndCBoYXZlIHRvIG1hdGNoIGxldmVsCi0jIHRvIGRlY29kZS4KLSMKLSMgU2VlIHpjb25m
LmgsIGRlZmxhdGUuY2MsIGluZmxhdGUuY2Mgb2YgemxpYiBsaWJyYXJ5LCBhbmQgemxpYm1vZHVs
ZS5jIG9mCi0jIFB5dGhvbi4gU2VlIGFsc28gUkZDMTk1MCAoWkxJQiAzLjMpLgotCi0KLWNsYXNz
IF9EZWZsYXRlcihvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRz
KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAg
ICAgIHNlbGYuX2NvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIu
Wl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtd2luZG93X2JpdHMpCi0KLSAg
ICBkZWYgY29tcHJlc3Moc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0g
c2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1cm4g
Y29tcHJlc3NlZF9ieXRlcwotCi0gICAgZGVmIGNvbXByZXNzX2FuZF9mbHVzaChzZWxmLCBieXRl
cyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhi
eXRlcykKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyArPSBzZWxmLl9jb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBp
bnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJl
c3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5
dGVzCi0KLSAgICBkZWYgY29tcHJlc3NfYW5kX2ZpbmlzaChzZWxmLCBieXRlcyk6Ci0gICAgICAg
IGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhieXRlcykKLSAgICAg
ICAgY29tcHJlc3NlZF9ieXRlcyArPSBzZWxmLl9jb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNI
KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJl
c3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMKLQotCi1jbGFzcyBf
SW5mbGF0ZXIob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAg
c2VsZi5fd2luZG93X2JpdHMgPSB3aW5kb3dfYml0cwotCi0gICAgICAgIHNlbGYuX3VuY29uc3Vt
ZWQgPSAnJwotCi0gICAgICAgIHNlbGYucmVzZXQoKQotCi0gICAgZGVmIGRlY29tcHJlc3Moc2Vs
Ziwgc2l6ZSk6Ci0gICAgICAgIGlmIG5vdCAoc2l6ZSA9PSAtMSBvciBzaXplID4gMCk6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3NpemUgbXVzdCBiZSAtMSBvciBwb3NpdGl2ZScpCi0K
LSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGlm
IHNpemUgPT0gLTE6Ci0gICAgICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRl
Y29tcHJlc3Moc2VsZi5fdW5jb25zdW1lZCkKLSAgICAgICAgICAgICAgICAjIFNlZSBQeXRob24g
YnVnIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxMjA1MCB0bwotICAgICAgICAgICAgICAg
ICMgdW5kZXJzdGFuZCB3aHkgdGhlIHNhbWUgY29kZSBjYW5ub3QgYmUgdXNlZCBmb3IgdXBkYXRp
bmcKLSAgICAgICAgICAgICAgICAjIHNlbGYuX3VuY29uc3VtZWQgZm9yIGhlcmUgYW5kIGVsc2Ug
YmxvY2suCi0gICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9ICcnCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNvbXBy
ZXNzKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkLCBzaXplIC0gbGVuKGRh
dGEpKQotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNz
LnVuY29uc3VtZWRfdGFpbAotICAgICAgICAgICAgaWYgc2VsZi5fZGVjb21wcmVzcy51bnVzZWRf
ZGF0YToKLSAgICAgICAgICAgICAgICAjIEVuY291bnRlcmVkIGEgbGFzdCBibG9jayAoaS5lLiBh
IGJsb2NrIHdpdGggQkZJTkFMID0gMSkgYW5kCi0gICAgICAgICAgICAgICAgIyBmb3VuZCBhIG5l
dyBzdHJlYW0gKHVudXNlZF9kYXRhKS4gV2UgY2Fubm90IHVzZSB0aGUgc2FtZQotICAgICAgICAg
ICAgICAgICMgemxpYi5EZWNvbXByZXNzIG9iamVjdCBmb3IgdGhlIG5ldyBzdHJlYW0uIENyZWF0
ZSBhIG5ldwotICAgICAgICAgICAgICAgICMgRGVjb21wcmVzcyBvYmplY3QgdG8gZGVjb21wcmVz
cyB0aGUgbmV3IG9uZS4KLSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAgIyBJdCdz
IGZpbmUgdG8gaWdub3JlIHVuY29uc3VtZWRfdGFpbCBpZiB1bnVzZWRfZGF0YSBpcyBub3QKLSAg
ICAgICAgICAgICAgICAjIGVtcHR5LgotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQg
PSBzZWxmLl9kZWNvbXByZXNzLnVudXNlZF9kYXRhCi0gICAgICAgICAgICAgICAgc2VsZi5yZXNl
dCgpCi0gICAgICAgICAgICAgICAgaWYgc2l6ZSA+PSAwIGFuZCBsZW4oZGF0YSkgPT0gc2l6ZToK
LSAgICAgICAgICAgICAgICAgICAgIyBkYXRhIGlzIGZpbGxlZC4gRG9uJ3QgY2FsbCBkZWNvbXBy
ZXNzIGFnYWluLgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgICMgUmUtaW52b2tlIERlY29tcHJlc3MuZGVjb21wcmVz
cyB0byB0cnkgdG8gZGVjb21wcmVzcyBhbGwKLSAgICAgICAgICAgICAgICAgICAgIyBhdmFpbGFi
bGUgYnl0ZXMgYmVmb3JlIGludm9raW5nIHJlYWQgd2hpY2ggYmxvY2tzIHVudGlsCi0gICAgICAg
ICAgICAgICAgICAgICMgYW55IG5ldyBieXRlIGlzIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBIZXJl
LCBzaW5jZSB1bnVzZWRfZGF0YSBpcyBlbXB0eSwgZXZlbiBpZiB1bmNvbnN1bWVkX3RhaWwgaXMK
LSAgICAgICAgICAgICAgICAjIG5vdCBlbXB0eSwgYnl0ZXMgb2YgcmVxdWVzdGVkIGxlbmd0aCBh
cmUgYWxyZWFkeSBpbiBkYXRhLiBXZQotICAgICAgICAgICAgICAgICMgZG9uJ3QgaGF2ZSB0byAi
Y29udGludWUiIGhlcmUuCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBkYXRh
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdEZWNvbXByZXNzZWQgJXInLCBkYXRh
KQotICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgZGVmIGFwcGVuZChzZWxmLCBkYXRhKToKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdBcHBlbmRlZCAlcicsIGRhdGEpCi0gICAgICAgIHNl
bGYuX3VuY29uc3VtZWQgKz0gZGF0YQotCi0gICAgZGVmIHJlc2V0KHNlbGYpOgotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1Jlc2V0JykKLSAgICAgICAgc2VsZi5fZGVjb21wcmVzcyA9IHps
aWIuZGVjb21wcmVzc29iaigtc2VsZi5fd2luZG93X2JpdHMpCi0KLQotIyBDb21wcmVzc2VzL2Rl
Y29tcHJlc3NlcyBnaXZlbiBvY3RldHMgdXNpbmcgdGhlIG1ldGhvZCBpbnRyb2R1Y2VkIGluIFJG
QzE5NzkuCi0KLQotY2xhc3MgX1JGQzE5NzlEZWZsYXRlcihvYmplY3QpOgotICAgICIiIkEgY29t
cHJlc3NvciBjbGFzcyB0aGF0IGFwcGxpZXMgREVGTEFURSB0byBnaXZlbiBieXRlIHNlcXVlbmNl
IGFuZAotICAgIGZsdXNoZXMgdXNpbmcgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgaW4gdGhlIFJG
QzE5Nzkgc2VjdGlvbiAyLjEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2lu
ZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpOgotICAgICAgICBzZWxmLl9kZWZsYXRlciA9
IE5vbmUKLSAgICAgICAgaWYgd2luZG93X2JpdHMgaXMgTm9uZToKLSAgICAgICAgICAgIHdpbmRv
d19iaXRzID0gemxpYi5NQVhfV0JJVFMKLSAgICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5k
b3dfYml0cwotICAgICAgICBzZWxmLl9ub19jb250ZXh0X3Rha2VvdmVyID0gbm9fY29udGV4dF90
YWtlb3ZlcgotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBieXRlcywgZW5kPVRydWUsIGJmaW5hbD1G
YWxzZSk6Ci0gICAgICAgIGlmIHNlbGYuX2RlZmxhdGVyIGlzIE5vbmU6Ci0gICAgICAgICAgICBz
ZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRlcihzZWxmLl93aW5kb3dfYml0cykKLQotICAgICAgICBp
ZiBiZmluYWw6Ci0gICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19h
bmRfZmluaXNoKGJ5dGVzKQotICAgICAgICAgICAgIyBBZGQgYSBwYWRkaW5nIGJsb2NrIHdpdGgg
QkZJTkFMID0gMCBhbmQgQlRZUEUgPSAwLgotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsg
Y2hyKDApCi0gICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQKLQotICAgICAgICByZXN1bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19h
bmRfZmx1c2goYnl0ZXMpCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAgICMgU3RyaXAgbGFz
dCA0IG9jdGV0cyB3aGljaCBpcyBMRU4gYW5kIE5MRU4gZmllbGQgb2YgYQotICAgICAgICAgICAg
IyBub24tY29tcHJlc3NlZCBibG9jayBhZGRlZCBmb3IgWl9TWU5DX0ZMVVNILgotICAgICAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0WzotNF0KLQotICAgICAgICBpZiBzZWxmLl9ub19jb250ZXh0X3Rh
a2VvdmVyIGFuZCBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKLQotICAg
ICAgICByZXR1cm4gcmVzdWx0Ci0KLQotY2xhc3MgX1JGQzE5NzlJbmZsYXRlcihvYmplY3QpOgot
ICAgICIiIkEgZGVjb21wcmVzc29yIGNsYXNzIGEgbGEgUkZDMTk3OS4KLQotICAgIEEgZGVjb21w
cmVzc29yIGNsYXNzIGZvciBieXRlIHNlcXVlbmNlIGNvbXByZXNzZWQgYW5kIGZsdXNoZWQgZm9s
bG93aW5nCi0gICAgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlv
biAyLjEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHM9emxp
Yi5NQVhfV0JJVFMpOgotICAgICAgICBzZWxmLl9pbmZsYXRlciA9IF9JbmZsYXRlcih3aW5kb3df
Yml0cykKLQotICAgIGRlZiBmaWx0ZXIoc2VsZiwgYnl0ZXMpOgotICAgICAgICAjIFJlc3RvcmUg
c3RyaXBwZWQgTEVOIGFuZCBOTEVOIGZpZWxkIG9mIGEgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRk
ZWQKLSAgICAgICAgIyBmb3IgWl9TWU5DX0ZMVVNILgotICAgICAgICBzZWxmLl9pbmZsYXRlci5h
cHBlbmQoYnl0ZXMgKyAnXHgwMFx4MDBceGZmXHhmZicpCi0gICAgICAgIHJldHVybiBzZWxmLl9p
bmZsYXRlci5kZWNvbXByZXNzKC0xKQotCi0KLWNsYXNzIERlZmxhdGVTb2NrZXQob2JqZWN0KToK
LSAgICAiIiJBIHdyYXBwZXIgY2xhc3MgZm9yIHNvY2tldCBvYmplY3QgdG8gaW50ZXJjZXB0IHNl
bmQgYW5kIHJlY3YgdG8gcGVyZm9ybQotICAgIGRlZmxhdGUgY29tcHJlc3Npb24gYW5kIGRlY29t
cHJlc3Npb24gdHJhbnNwYXJlbnRseS4KLSAgICAiIiIKLQotICAgICMgU2l6ZSBvZiB0aGUgYnVm
ZmVyIHBhc3NlZCB0byByZWN2IHRvIHJlY2VpdmUgY29tcHJlc3NlZCBkYXRhLgotICAgIF9SRUNW
X1NJWkUgPSA0MDk2Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0KToKLSAgICAgICAg
c2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2RlZmxhdGVyID0gX0RlZmxhdGVyKHpsaWIu
TUFYX1dCSVRTKQotICAgICAgICBzZWxmLl9pbmZsYXRlciA9IF9JbmZsYXRlcih6bGliLk1BWF9X
QklUUykKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemUpOgotICAgICAgICAiIiJSZWNlaXZlcyBk
YXRhIGZyb20gdGhlIHNvY2tldCBzcGVjaWZpZWQgb24gdGhlIGNvbnN0cnVjdGlvbiB1cAotICAg
ICAgICB0byB0aGUgc3BlY2lmaWVkIHNpemUuIE9uY2UgYW55IGRhdGEgaXMgYXZhaWxhYmxlLCBy
ZXR1cm5zIGl0IGV2ZW4KLSAgICAgICAgaWYgaXQncyBzbWFsbGVyIHRoYW4gdGhlIHNwZWNpZmll
ZCBzaXplLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBbGxvdyBj
YWxsIHdpdGggc2l6ZT0wLiBJdCBzaG91bGQgYmxvY2sgdW50aWwgYW55Ci0gICAgICAgICMgZGVj
b21wcmVzc2VkIGRhdGEgaXMgYXZhaWxhYmxlLgotICAgICAgICBpZiBzaXplIDw9IDA6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vbi1wb3NpdGl2ZSBzaXplIHBhc3NlZCcpCi0gICAg
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBkYXRhID0gc2VsZi5faW5mbGF0ZXIuZGVjb21w
cmVzcyhzaXplKQotICAgICAgICAgICAgaWYgbGVuKGRhdGEpICE9IDA6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGRhdGEKLQotICAgICAgICAgICAgcmVhZF9kYXRhID0gc2VsZi5fc29ja2V0LnJl
Y3YoRGVmbGF0ZVNvY2tldC5fUkVDVl9TSVpFKQotICAgICAgICAgICAgaWYgbm90IHJlYWRfZGF0
YToKLSAgICAgICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAgICAgIHNlbGYuX2luZmxhdGVy
LmFwcGVuZChyZWFkX2RhdGEpCi0KLSAgICBkZWYgc2VuZGFsbChzZWxmLCBieXRlcyk6Ci0gICAg
ICAgIHNlbGYuc2VuZChieXRlcykKLQotICAgIGRlZiBzZW5kKHNlbGYsIGJ5dGVzKToKLSAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoc2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNo
KGJ5dGVzKSkKLSAgICAgICAgcmV0dXJuIGxlbihieXRlcykKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJjMjNhNWQyOGI3NWJjZDljNGE1ZGUwY2RjOGJkNWQ2NTM3ODU2OWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1fYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2NvbW1vbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zh
c3RfbWFza2luZy5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21zZ3V0
aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9zdGFuZGFsb25lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1h
cmtfaGFuZGxlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNo
bWFya19oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5k
bGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2E1YjA0OTIyMGVlNzkwZWZl
YTUxYmRhNmEzZjk1ZDhkY2YwOTc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0jIENvcHlyaWdodCAyMDE0IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQg
aW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNv
bS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgdXRpbAotCi0KLWNsYXNzIFhIUkJlbmNobWFya0hhbmRsZXIob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgaGVhZGVycywgcmZpbGUsIHdmaWxlKToKLSAgICAgICAgc2VsZi5fbG9n
Z2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5oZWFkZXJz
ID0gaGVhZGVycwotICAgICAgICBzZWxmLnJmaWxlID0gcmZpbGUKLSAgICAgICAgc2VsZi53Zmls
ZSA9IHdmaWxlCi0KLSAgICBkZWYgZG9fc2VuZChzZWxmKToKLSAgICAgICAgY29udGVudF9sZW5n
dGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCB0byByZWNlaXZlICVzIGJ5dGVzJywg
Y29udGVudF9sZW5ndGgpCi0KLSAgICAgICAgUkVDRUlWRV9CTE9DS19TSVpFID0gMTAyNCAqIDEw
MjQKLQotICAgICAgICBieXRlc190b19yZWNlaXZlID0gY29udGVudF9sZW5ndGgKLSAgICAgICAg
d2hpbGUgYnl0ZXNfdG9fcmVjZWl2ZSA+IDA6Ci0gICAgICAgICAgICBieXRlc190b19yZWNlaXZl
X2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3JlY2VpdmUKLSAgICAgICAgICAgIGlmIGJ5dGVzX3Rv
X3JlY2VpdmVfaW5fdGhpc19sb29wID4gUkVDRUlWRV9CTE9DS19TSVpFOgotICAgICAgICAgICAg
ICAgIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wID0gUkVDRUlWRV9CTE9DS19TSVpFCi0g
ICAgICAgICAgICByZWNlaXZlZF9kYXRhID0gc2VsZi5yZmlsZS5yZWFkKGJ5dGVzX3RvX3JlY2Vp
dmVfaW5fdGhpc19sb29wKQotICAgICAgICAgICAgaWYgcmVjZWl2ZWRfZGF0YSAhPSAoJ2EnICog
Ynl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3ApOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnUmVxdWVzdCBib2R5IHZlcmlmaWNhdGlvbiBmYWlsZWQnKQotICAgICAgICAg
ICAgICAgIHJldHVybgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSAtPSBsZW4ocmVjZWl2
ZWRfZGF0YSkKLSAgICAgICAgaWYgYnl0ZXNfdG9fcmVjZWl2ZSA8IDA6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkICVkIG1vcmUgYnl0ZXMgdGhhbiBleHBlY3RlZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtYnl0ZXNfdG9fcmVjZWl2ZSkpCi0g
ICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFJldHVybiB0aGUgbnVtYmVyIG9mIHJlY2Vp
dmVkIGJ5dGVzIGJhY2sgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgcmVzcG9uc2VfYm9keSA9ICcl
ZCcgJSBjb250ZW50X2xlbmd0aAotICAgICAgICBzZWxmLndmaWxlLndyaXRlKAotICAgICAgICAg
ICAgJ0hUVFAvMS4xIDIwMCBPS1xyXG4nCi0gICAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luOiAqXHJcbicKLSAgICAgICAgICAgICdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxy
XG4nCi0gICAgICAgICAgICAnQ29udGVudC1MZW5ndGg6ICVkXHJcbicKLSAgICAgICAgICAgICdc
clxuJXMnICUgKGxlbihyZXNwb25zZV9ib2R5KSwgcmVzcG9uc2VfYm9keSkpCi0gICAgICAgIHNl
bGYud2ZpbGUuZmx1c2goKQotCi0gICAgZGVmIGRvX3JlY2VpdmVfYW5kX3BhcnNlKHNlbGYpOgot
ICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0aGVhZGVyKCdDb250
ZW50LUxlbmd0aCcpKQotICAgICAgICByZXF1ZXN0X2JvZHkgPSBzZWxmLnJmaWxlLnJlYWQoY29u
dGVudF9sZW5ndGgpCi0KLSAgICAgICAgcmVxdWVzdF9hcnJheSA9IHJlcXVlc3RfYm9keS5zcGxp
dCgnICcpCi0gICAgICAgIGlmIGxlbihyZXF1ZXN0X2FycmF5KSA8IDI6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ01hbGZvcm1lZCByZXF1ZXN0IGJvZHk6ICVyJywgcmVxdWVzdF9i
b2R5KQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgc2l6ZSBwYXJh
bWV0ZXIuCi0gICAgICAgIGJ5dGVzX3RvX3NlbmQgPSByZXF1ZXN0X2FycmF5WzBdCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmQgPSBpbnQoYnl0ZXNfdG9fc2VuZCkKLSAg
ICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnTWFsZm9ybWVkIHNpemUgcGFyYW1ldGVyOiAlcicsIGJ5dGVzX3RvX3NlbmQpCi0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFBhcnNlIHRoZSB0cmFuc2ZlciBlbmNvZGluZyBw
YXJhbWV0ZXIuCi0gICAgICAgIGNodW5rZWRfbW9kZSA9IEZhbHNlCi0gICAgICAgIG1vZGVfcGFy
YW1ldGVyID0gcmVxdWVzdF9hcnJheVsxXQotICAgICAgICBpZiBtb2RlX3BhcmFtZXRlciA9PSAn
Y2h1bmtlZCc6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCBjaHVu
a2VkIHRyYW5zZmVyIGVuY29kaW5nJykKLSAgICAgICAgICAgIGNodW5rZWRfbW9kZSA9IFRydWUK
LSAgICAgICAgZWxpZiBtb2RlX3BhcmFtZXRlciAhPSAnbm9uZSc6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ0ludmFsaWQgbW9kZSBwYXJhbWV0ZXI6ICVyJywgbW9kZV9wYXJhbWV0
ZXIpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLmRvX3JlY2VpdmUoYnl0ZXNf
dG9fc2VuZCwgY2h1bmtlZF9tb2RlLCBGYWxzZSkKLQotICAgIGRlZiBkb19yZWNlaXZlKHNlbGYs
IGJ5dGVzX3RvX3NlbmQsIGNodW5rZWRfbW9kZSwgZW5hYmxlX2NhY2hlKToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1JlcXVlc3RlZCB0byBzZW5kICVzIGJ5dGVz
IChjaHVua2VkOiAlcywgY2FjaGU6ICVzKScsCi0gICAgICAgICAgICBieXRlc190b19zZW5kLCBj
aHVua2VkX21vZGUsIGVuYWJsZV9jYWNoZSkKLSAgICAgICAgIyBXcml0ZSBhIGhlYWRlcgotICAg
ICAgICByZXNwb25zZV9oZWFkZXIgPSAoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMjAwIE9LXHJc
bicKLSAgICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICpcclxuJwotICAg
ICAgICAgICAgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXHJcbicpCi0g
ICAgICAgIGlmIGVuYWJsZV9jYWNoZToKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSAn
Q2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbWF4LWFnZT0xMFxyXG4nCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXNwb25zZV9oZWFkZXIgKz0gXAotICAgICAgICAgICAgICAgICdDYWNoZS1D
b250cm9sOiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZVxyXG4nCi0gICAgICAg
IGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSAnVHJhbnNm
ZXItRW5jb2Rpbmc6IGNodW5rZWRcclxuXHJcbicKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJlc3BvbnNlX2hlYWRlciArPSAoCi0gICAgICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoOiAl
ZFxyXG5cclxuJyAlIGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIHNlbGYud2ZpbGUud3JpdGUocmVz
cG9uc2VfaGVhZGVyKQotICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQotICAgICAgICAjIFdy
aXRlIGEgYm9keQotICAgICAgICBTRU5EX0JMT0NLX1NJWkUgPSAxMDI0ICogMTAyNAotCi0gICAg
ICAgIHdoaWxlIGJ5dGVzX3RvX3NlbmQgPiAwOgotICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZF9p
bl90aGlzX2xvb3AgPSBieXRlc190b19zZW5kCi0gICAgICAgICAgICBpZiBieXRlc190b19zZW5k
X2luX3RoaXNfbG9vcCA+IFNFTkRfQkxPQ0tfU0laRToKLSAgICAgICAgICAgICAgICBieXRlc190
b19zZW5kX2luX3RoaXNfbG9vcCA9IFNFTkRfQkxPQ0tfU0laRQotCi0gICAgICAgICAgICBpZiBj
aHVua2VkX21vZGU6Ci0gICAgICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnJXhcclxuJyAl
IGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wKQotICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0
ZSgnYScgKiBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCkKLSAgICAgICAgICAgIGlmIGNodW5r
ZWRfbW9kZToKLSAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCdcclxuJykKLSAgICAg
ICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQotCi0gICAgICAgICAgICBieXRlc190b19zZW5kIC09
IGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wCi0KLSAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgot
ICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnMFxyXG5cclxuJykKLSAgICAgICAgICAgIHNl
bGYud2ZpbGUuZmx1c2goKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNWQ2YjEwNTg5OWNhMTM0OGQ3ZDZk
NjhiYmUyYmQ0OWU4NWQxMTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zZXR1cC5weQorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiU2V0IHVwIHNj
cmlwdCBmb3IgbW9kX3B5d2Vic29ja2V0LgotIiIiCi0KLQotZnJvbSBkaXN0dXRpbHMuY29yZSBp
bXBvcnQgc2V0dXAsIEV4dGVuc2lvbgotaW1wb3J0IHN5cwotCi0KLV9QQUNLQUdFX05BTUUgPSAn
bW9kX3B5d2Vic29ja2V0JwotCi0jIEJ1aWxkIGFuZCB1c2UgYSBDKysgZXh0ZW5zaW9uIGZvciBm
YXN0ZXIgbWFza2luZy4gU1dJRyBpcyByZXF1aXJlZC4KLV9VU0VfRkFTVF9NQVNLSU5HID0gRmFs
c2UKLQotaWYgc3lzLnZlcnNpb24gPCAnMi4zJzoKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAn
JXMgcmVxdWlyZXMgUHl0aG9uIDIuMyBvciBsYXRlci4nICUgX1BBQ0tBR0VfTkFNRQotICAgIHN5
cy5leGl0KDEpCi0KLWlmIF9VU0VfRkFTVF9NQVNLSU5HOgotICAgIHNldHVwKGV4dF9tb2R1bGVz
PVsKLSAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbigKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ21vZF9weXdlYnNvY2tldC9fZmFzdF9tYXNraW5nJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgWydtb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmknXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3dpZ19vcHRzPVsnLWMrKyddKV0pCi0KLXNldHVwKGF1dGhvcj0nWXV6byBG
dWppc2hpbWEnLAotICAgICAgYXV0aG9yX2VtYWlsPSd5dXpvQGNocm9taXVtLm9yZycsCi0gICAg
ICBkZXNjcmlwdGlvbj0nV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVy
LicsCi0gICAgICBsb25nX2Rlc2NyaXB0aW9uPSgKLSAgICAgICAgICAgICAgJ21vZF9weXdlYnNv
Y2tldCBpcyBhbiBBcGFjaGUgSFRUUCBTZXJ2ZXIgZXh0ZW5zaW9uIGZvciAnCi0gICAgICAgICAg
ICAgICd0aGUgV2ViU29ja2V0IFByb3RvY29sIChSRkMgNjQ1NSkuICcKLSAgICAgICAgICAgICAg
J1NlZSBtb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkgZm9yIG1vcmUgZGV0YWlsLicpLAotICAg
ICAgbGljZW5zZT0nU2VlIExJQ0VOU0UnLAotICAgICAgbmFtZT1fUEFDS0FHRV9OQU1FLAotICAg
ICAgcGFja2FnZXM9W19QQUNLQUdFX05BTUUsIF9QQUNLQUdFX05BTUUgKyAnLmhhbmRzaGFrZSdd
LAotICAgICAgdXJsPSdodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3ZWJzb2NrZXQvJywKLSAg
ICAgICMgU2VlIHRoZSBzb3VyY2Ugb2YgZGlzdHV0aWxzLnZlcnNpb24sIGRpc3R1dGlscy52ZXJz
aW9ucHJlZGljYXRlIGFuZAotICAgICAgIyBkaXN0dXRpbHMuZGlzdCB0byB1bmRlcnN0YW5kIGhv
dyB0byBuYW1lIHZlcnNpb24gbnVtYmVycy4KLSAgICAgIHZlcnNpb249JzAuNy45JywKLSAgICAg
ICkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL0NPUFlJTkcg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9DT1BZSU5HCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODlkMDJl
NGNkMDkyMzc4MDZmN2RmOGJlYWVjYzY5MTUyNzM0MjhlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL0NPUFlJTkcKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi1Db3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLUFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1U
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL01BTklGRVNULmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxOTI1Njg4MmM1NmZlYjcyODEyYzk5YzhhODM3OTk3OWU2M2U0YTBjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL01BTklG
RVNULmluCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pbmNsdWRlIENPUFlJTkcKLWlu
Y2x1ZGUgTUFOSUZFU1QuaW4KLWluY2x1ZGUgUkVBRE1FCi1yZWN1cnNpdmUtaW5jbHVkZSBleGFt
cGxlICoucHkKLXJlY3Vyc2l2ZS1pbmNsdWRlIG1vZF9weXdlYnNvY2tldCAqLnB5Ci1yZWN1cnNp
dmUtaW5jbHVkZSB0ZXN0ICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL1JFQURNRSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhjNzU4ZjVlZWY0Yzcz
MTg5MjY0MWRlMzMzZTVkNzVkMTBhM2U1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSwxNyAr
MCwwIEBACi1JTlNUQUxMCi0KLVRvIGluc3RhbGwgdGhpcyBwYWNrYWdlIHRvIHRoZSBzeXN0ZW0s
IHJ1biB0aGlzOgotJCBweXRob24gc2V0dXAucHkgYnVpbGQKLSQgc3VkbyBweXRob24gc2V0dXAu
cHkgaW5zdGFsbAotCi1UbyBpbnN0YWxsIHRoaXMgcGFja2FnZSBhcyBhIG5vcm1hbCB1c2VyLCBy
dW4gdGhpcyBpbnN0ZWFkOgotJCBweXRob24gc2V0dXAucHkgYnVpbGQKLSQgcHl0aG9uIHNldHVw
LnB5IGluc3RhbGwgLS11c2VyCi0KLUxBVU5DSAotCi1UbyB1c2UgcHl3ZWJzb2NrZXQgYXMgQXBh
Y2hlIG1vZHVsZSwgcnVuIHRoaXMgdG8gcmVhZCB0aGUgZG9jdW1lbnQ6Ci0kIHB5ZG9jIG1vZF9w
eXdlYnNvY2tldAotCi1UbyB1c2UgcHl3ZWJzb2NrZXQgYXMgc3RhbmRhbG9uZSBzZXJ2ZXIsIHJ1
biB0aGlzIHRvIHJlYWQgdGhlIGRvY3VtZW50OgotJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQuc3Rh
bmRhbG9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDgwMjNhMWZlOTFlMmYyOTc3YjE2M2Y5NzdkYWU2ODUwMDA5
YWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQz
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oCi0gICAgICAg
ICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIikKLQotCi1kZWYgd2Vi
X3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfd3NoLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9hYm9ydF93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJiYmYwMDVmNmEzN2M2MDllMTZhYmRlNGRmOTQwMjQyNjhkMGRhZWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF93
c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVk
QnlVc2VyRXhjZXB0aW9uKAotICAgICAgICAiQWJvcnRlZCBpbiB3ZWJfc29ja2V0X3RyYW5zZmVy
X2RhdGEiKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYXJyYXli
dWZmZXJfYmVuY2htYXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2OWNk
N2UxZWU2NTNkNTlmMDRiODAyZmYzNGM4ZDA4MTMxN2NhODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hcnJheWJ1ZmZlcl9i
ZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi08IS0tCi1Db3B5
cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5BcnJheUJ1ZmZl
ciBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLXZhciBQUklOVF9TSVpFID0gdHJ1ZTsKLQotLy8gSW5pdGlhbCBzaXplIG9mIGFycmF5
cy4KLXZhciBTVEFSVF9TSVpFID0gMTAgKiAxMDI0OwotLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4g
dGhlIHNpemUgb2YgYW4gYXJyYXkgZXhjZWVkcyB0aGlzIHRocmVzaG9sZC4KLXZhciBTVE9QX1RI
UkVTSE9MRCA9IDEwMDAwMCAqIDEwMjQ7Ci0vLyBJZiB0aGUgc2l6ZSBvZiBlYWNoIGFycmF5IGlz
IHNtYWxsLCB3cml0ZS9yZWFkIHRoZSBhcnJheSBtdWx0aXBsZSB0aW1lcwotLy8gdW50aWwgdGhl
IHN1bSBvZiBzaXplcyByZWFjaGVzIHRoaXMgdGhyZXNob2xkLgotdmFyIE1JTl9UT1RBTCA9IDEw
MDAwMCAqIDEwMjQ7Ci12YXIgTVVMVElQTElFUlMgPSBbNSwgMl07Ci0KLS8vIFJlcGVhdCBiZW5j
aG1hcmsgZm9yIHNldmVyYWwgdGltZXMgdG8gbWVhc3VyZSBwZXJmb3JtYW5jZSBvZiBvcHRpbWl6
ZWQKLS8vIChzdWNoIGFzIEpJVCkgcnVuLgotdmFyIFJFUEVBVF9GT1JfV0FSTVVQID0gMzsKLQot
ZnVuY3Rpb24gd3JpdGVCZW5jaG1hcmsoc2l6ZSwgbWluVG90YWwpIHsKLSAgdmFyIHRvdGFsU2l6
ZSA9IDA7Ci0gIHdoaWxlICh0b3RhbFNpemUgPCBtaW5Ub3RhbCkgewotICAgIHZhciBhcnJheUJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgIC8vIFdyaXRlICdhJ3MuCi0gICAg
ZmlsbEFycmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDYxKTsKLQotICAgIHRvdGFsU2l6ZSArPSBz
aXplOwotICB9Ci0gIHJldHVybiB0b3RhbFNpemU7Ci19Ci0KLWZ1bmN0aW9uIHJlYWRCZW5jaG1h
cmsoc2l6ZSwgbWluVG90YWwpIHsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHdoaWxlICh0b3Rh
bFNpemUgPCBtaW5Ub3RhbCkgewotICAgIHZhciBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZl
cihzaXplKTsKLQotICAgIGlmICghdmVyaWZ5QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4MDAp
KSB7Ci0gICAgICBxdWV1ZUxvZygnVmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgcmV0dXJu
IC0xOwotICAgIH0KLQotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci0gIHJldHVybiB0b3Rh
bFNpemU7Ci19Ci0KLWZ1bmN0aW9uIHJ1bkJlbmNobWFyayhiZW5jaG1hcmtGdW5jdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICBzaXplLAotICAgICAgICAgICAgICAgICAgICAgIHN0b3BUaHJl
c2hvbGQsCi0gICAgICAgICAgICAgICAgICAgICAgbWluVG90YWwsCi0gICAgICAgICAgICAgICAg
ICAgICAgbXVsdGlwbGllcnMsCi0gICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGllckluZGV4
KSB7Ci0gIHdoaWxlIChzaXplIDw9IHN0b3BUaHJlc2hvbGQpIHsKLSAgICB2YXIgbWF4U3BlZWQg
PSAwOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBSRVBFQVRfRk9SX1dBUk1VUDsgKytpKSB7
Ci0gICAgICB2YXIgc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOwotCi0gICAgICB2YXIg
dG90YWxTaXplID0gYmVuY2htYXJrRnVuY3Rpb24oc2l6ZSwgbWluVG90YWwpOwotCi0gICAgICBt
YXhTcGVlZCA9IE1hdGgubWF4KG1heFNwZWVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBj
YWxjdWxhdGVTcGVlZEluS0IodG90YWxTaXplLCBzdGFydFRpbWVJbk1zKSk7Ci0gICAgfQotICAg
IHF1ZXVlTG9nKGZvcm1hdFJlc3VsdEluS2lCKHNpemUsIG1heFNwZWVkLCBQUklOVF9TSVpFKSk7
Ci0KLSAgICBzaXplICo9IG11bHRpcGxpZXJzW211bHRpcGxpZXJJbmRleF07Ci0gICAgbXVsdGlw
bGllckluZGV4ID0gKG11bHRpcGxpZXJJbmRleCArIDEpICUgbXVsdGlwbGllcnMubGVuZ3RoOwot
ICB9Ci19Ci0KLWZ1bmN0aW9uIHJ1bkJlbmNobWFya3MoKSB7Ci0gIHF1ZXVlTG9nKCdNZXNzYWdl
IHNpemUgaW4gS2lCLCBTcGVlZCBpbiBrQi9zJyk7Ci0KLSAgcXVldWVMb2coJ1dyaXRlIGJlbmNo
bWFyaycpOwotICBydW5CZW5jaG1hcmsoCi0gICAgICB3cml0ZUJlbmNobWFyaywgU1RBUlRfU0la
RSwgU1RPUF9USFJFU0hPTEQsIE1JTl9UT1RBTCwgTVVMVElQTElFUlMsIDApOwotICBxdWV1ZUxv
ZygnRmluaXNoZWQnKTsKLQotICBxdWV1ZUxvZygnUmVhZCBiZW5jaG1hcmsnKTsKLSAgcnVuQmVu
Y2htYXJrKAotICAgICAgcmVhZEJlbmNobWFyaywgU1RBUlRfU0laRSwgU1RPUF9USFJFU0hPTEQs
IE1JTl9UT1RBTCwgTVVMVElQTElFUlMsIDApOwotICBhZGRUb0xvZygnRmluaXNoZWQnKTsKLX0K
LQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2xvZycpOwotCi0gIHF1ZXVlTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJD
YXNlKCkpOwotCi0gIGFkZFRvTG9nKCdTdGFydGVkLi4uJyk7Ci0KLSAgc2V0VGltZW91dChydW5C
ZW5jaG1hcmtzLCAwKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Imlu
aXQoKSI+Ci08dGV4dGFyZWEKLSAgICBpZD0ibG9nIiByb3dzPSI1MCIgc3R5bGU9IndpZHRoOiAx
MDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9iZW5jaF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNoX3dz
aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA2N2NhN2Q4OTU1ZmMxNjNkNTAw
MWNkODgxMmU2YWUyMGMxNjI5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNoX3dzaC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkEgc2ltcGxlIGxvYWQgdGVz
dGVyIGZvciBXZWJTb2NrZXQgY2xpZW50cy4KLQotQSBjbGllbnQgcHJvZ3JhbSBzZW5kcyBhIG1l
c3NhZ2UgZm9ybWF0dGVkIGFzICI8dGltZT4gPGNvdW50PiA8bWVzc2FnZT4iIHRvCi10aGlzIGhh
bmRsZXIuIFRoaXMgaGFuZGxlciBzdGFydHMgc2VuZGluZyB0b3RhbCA8Y291bnQ+IFdlYlNvY2tl
dCBtZXNzYWdlcwotY29udGFpbmluZyA8bWVzc2FnZT4gZXZlcnkgPHRpbWU+IHNlY29uZHMuIDx0
aW1lPiBjYW4gYmUgYSBmbG9hdGluZyBwb2ludAotdmFsdWUuIDxjb3VudD4gbXVzdCBiZSBhbiBp
bnRlZ2VyIHZhbHVlLgotIiIiCi0KLQotaW1wb3J0IHRpbWUKLQotCi1kZWYgd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcyAgIyBBbHdheXMgYWNjZXB0Lgot
Ci0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgbGluZSA9IHJl
cXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgcGFydHMgPSBsaW5lLnNwbGl0
KCcgJykKLSAgICBpZiBsZW4ocGFydHMpICE9IDM6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0JhZCBwYXJhbWV0ZXIgZm9ybWF0JykKLSAgICB3YWl0ID0gZmxvYXQocGFydHNbMF0pCi0gICAg
Y291bnQgPSBpbnQocGFydHNbMV0pCi0gICAgbWVzc2FnZSA9IHBhcnRzWzJdCi0gICAgZm9yIGkg
aW4geHJhbmdlKGNvdW50KToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdl
KG1lc3NhZ2UpCi0gICAgICAgIHRpbWUuc2xlZXAod2FpdCkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
YTIxODE3M2EwZjFmMzNhNGVkNDYyZTIxZjg2YzFiOGQ0OGJhNjIwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMDMgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIw
MTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1M
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+V2ViU29ja2V0IGJlbmNobWFy
azwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJiZW5jaG1hcmsuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0Q29u
ZmlnKCkgewotICByZXR1cm4gewotICAgIHByZWZpeFVybDogYWRkcmVzc0JveC52YWx1ZSwKLSAg
ICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6ZScpLAotICAgIG51bVNv
Y2tldHM6IGdldEludEZyb21JbnB1dCgnbnVtc29ja2V0cycpLAotICAgIC8vIEluaXRpYWwgc2l6
ZSBvZiBtZXNzYWdlcy4KLSAgICBudW1JdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0
ZXJhdGlvbnMnKSwKLSAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251
bXdhcm11cGl0ZXJhdGlvbnMnKSwKLSAgICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3Rh
cnRzaXplJyksCi0gICAgLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2Fn
ZSBleGNlZWRzIHRoaXMgdGhyZXNob2xkLgotICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21J
bnB1dCgnc3RvcHRocmVzaG9sZCcpLAotICAgIC8vIElmIHRoZSBzaXplIG9mIGVhY2ggbWVzc2Fn
ZSBpcyBzbWFsbCwgc2VuZC9yZWNlaXZlIG11bHRpcGxlIG1lc3NhZ2VzCi0gICAgLy8gdW50aWwg
dGhlIHN1bSBvZiBzaXplcyByZWFjaGVzIHRoaXMgdGhyZXNob2xkLgotICAgIG1pblRvdGFsOiBn
ZXRJbnRGcm9tSW5wdXQoJ21pbnRvdGFsJyksCi0gICAgbXVsdGlwbGllcnM6IGdldEludEFycmF5
RnJvbUlucHV0KCdtdWx0aXBsaWVycycpLAotICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hl
Y2tCb3goJ3ZlcmlmeWRhdGEnKQotICB9OwotfQotCi12YXIgd29ya2VyID0gbmV3IFdvcmtlcign
YmVuY2htYXJrLmpzJyk7Ci13b3JrZXIub25tZXNzYWdlID0gb25NZXNzYWdlOwotCi1mdW5jdGlv
biBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLQotICBp
ZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3Nh
Z2Uoe3R5cGU6ICdzZW5kQmVuY2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsK
LSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5
ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7
Ci0gICAgc2VuZEJlbmNobWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uUmVjZWl2
ZUJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRC
b29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlw
ZTogJ3JlY2VpdmVCZW5jaG1hcmsnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAg
IGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBh
ZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAg
ICByZWNlaXZlQmVuY2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25CYXRjaEJl
bmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRCb29s
RnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTog
J2JhdGNoQmVuY2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25m
aWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9T
dW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgYmF0
Y2hCZW5jaG1hcmsoY29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvblN0b3AoKSB7Ci0gIHZh
ciBjb25maWcgPSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29y
a2VyJykpIHsKLSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdzdG9wJywgY29uZmlnOiBj
b25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAg
ICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJl
VmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgc3RvcChjb25maWcpOwotICB9Ci19Ci1mdW5jdGlv
biBpbml0KCkgewotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJl
c3MnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIHN1
bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOwotCi0gIHZhciBz
Y2hlbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6
ICd3czovLyc7Ci0gIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlv
bi5ob3N0ICsgJy9iZW5jaG1hcmtfaGVscGVyJzsKLQotICBhZGRyZXNzQm94LnZhbHVlID0gZGVm
YXVsdEFkZHJlc3M7Ci0KLSAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9M
b3dlckNhc2UoKSk7Ci0gIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50
b0xvd2VyQ2FzZSgpKTsKLQotICBpZiAoISgnV2ViU29ja2V0JyBpbiB3aW5kb3cpKSB7Ci0gICAg
YWRkVG9Mb2coJ1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7Ci0gIH0KLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08ZGl2IGlkPSJiZW5jaG1hcmtf
ZGl2Ij4KLSAgdXJsIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgot
ICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2VuZCIgb25jbGljaz0ib25TZW5kQmVuY2ht
YXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0icmVjZWl2ZSIgb25jbGljaz0i
b25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmF0
Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24i
IHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+Ci0KLSAgPGJyLz4KLQotICA8aW5wdXQg
dHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9InBy
aW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIgbWVzc2FnZTwvbGFiZWw+Ci0gIDxpbnB1
dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9
InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0id29ya2VyIj5SdW4gb24gd29ya2VyPC9sYWJl
bD4KLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6Ci0KLSAgPGJyLz4KLQotICA8dGFibGU+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bSBzb2NrZXRzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9Im51bXNvY2tldHMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAg
PHRyPgotICAgICAgPHRkPk51bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5w
dXQgdHlwZT0idGV4dCIgaWQ9Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwv
dHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3Rk
PgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIg
dmFsdWU9IjAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6
ZTwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVl
PSIxMDI0MCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVz
aG9sZDwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xk
IiB2YWx1ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRk
Pk1pbmltdW0gdG90YWw8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWlu
dG90YWwiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAg
ICA8dGQ+TXVsdGlwbGllcnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
bXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgotICAgIDwvdHI+Ci0gIDwvdGFibGU+Ci08
L2Rpdj4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9ImxvZyIg
cm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2
PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYiPgotICBTdW1tYXJ5Ci0gIDx0ZXh0YXJlYQotICAgICAg
aWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4
dGFyZWE+Ci08L2Rpdj4KLQotTm90ZTogRWZmZWN0IG9mIFJUVCBpcyBub3QgZWxpbWluYXRlZC4K
LQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1h
cmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDM0N2FlOWUxM2RlMmYwNWRhMDg1YzQ5MjExZjU0YzBiNjg1MmFmMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL2JlbmNobWFyay5qcworKysgL2Rldi9udWxsCkBAIC0xLDMwOSArMCwwIEBACi0vLyBDb3B5
cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNl
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8v
ZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi1pZiAodHlw
ZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiKSB7Ci0gIC8vIFJ1bm5pbmcgb24gYSB3
b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOwotfQot
Ci0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KLXZhciBiZW5jaG1hcmsgPSB7c3Rh
cnRUaW1lSW5NczogMH07Ci0KLXZhciBzb2NrZXRzID0gW107Ci12YXIgbnVtRXN0YWJsaXNoZWRT
b2NrZXRzID0gMDsKLQotdmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBkZXN0cm95U29j
a2V0KHNvY2tldCkgewotICBzb2NrZXQub25vcGVuID0gbnVsbDsKLSAgc29ja2V0Lm9ubWVzc2Fn
ZSA9IG51bGw7Ci0gIHNvY2tldC5vbmVycm9yID0gbnVsbDsKLSAgc29ja2V0Lm9uY2xvc2UgPSBu
dWxsOwotICBzb2NrZXQuY2xvc2UoKTsKLX0KLQotZnVuY3Rpb24gZGVzdHJveUFsbFNvY2tldHMo
KSB7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIGRl
c3Ryb3lTb2NrZXQoc29ja2V0c1tpXSk7Ci0gIH0KLSAgc29ja2V0cyA9IFtdOwotfQotCi1mdW5j
dGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJRCA9IG51bGw7
Ci0KLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZh
ciBvbk1lc3NhZ2VIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBpZiAoIXZlcmlmeUFj
a25vd2xlZGdlbWVudChjb25maWcsIGV2ZW50LmRhdGEsIHNpemUpKSB7Ci0gICAgICBkZXN0cm95
QWxsU29ja2V0cygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCAr
PSBzaXplOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJl
bmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUpOwotCi0gICAgcnVuTmV4dFRhc2soY29u
ZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMubGVuZ3RoOyArK2kp
IHsKLSAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKLSAgICBzb2NrZXQub25tZXNzYWdlID0g
b25NZXNzYWdlSGFuZGxlcjsKLSAgfQotCi0gIHZhciBkYXRhQXJyYXkgPSBbXTsKLQotICB3aGls
ZSAodG90YWxTaXplIDwgY29uZmlnLm1pblRvdGFsKSB7Ci0gICAgdmFyIGJ1ZmZlciA9IG5ldyBB
cnJheUJ1ZmZlcihzaXplKTsKLQotICAgIGZpbGxBcnJheUJ1ZmZlcihidWZmZXIsIDB4NjEpOwot
Ci0gICAgZGF0YUFycmF5LnB1c2goYnVmZmVyKTsKLSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAg
fQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgdG90
YWxTaXplID0gMDsKLQotICB2YXIgc29ja2V0SW5kZXggPSAwOwotICB2YXIgZGF0YUluZGV4ID0g
MDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHZhciBjb21t
YW5kID0gWydzZW5kJ107Ci0gICAgY29tbWFuZC5wdXNoKGNvbmZpZy52ZXJpZnlEYXRhID8gJzEn
IDogJzAnKTsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKGNvbW1hbmQuam9pbignICcp
KTsKLSAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKGRhdGFBcnJheVtkYXRhSW5kZXhdKTsK
LSAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0cy5sZW5ndGg7Ci0K
LSAgICB0b3RhbFNpemUgKz0gc2l6ZTsKLSAgICArK2RhdGFJbmRleDsKLSAgfQotfQotCi1mdW5j
dGlvbiByZWNlaXZlQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcpIHsKLSAgdGltZXJJRCA9IG51
bGw7Ci0KLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0g
IHZhciBvbk1lc3NhZ2VIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICB2YXIgYnl0ZXNS
ZWNlaXZlZCA9IGV2ZW50LmRhdGEuYnl0ZUxlbmd0aDsKLSAgICBpZiAoYnl0ZXNSZWNlaXZlZCAh
PSBzaXplKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0V4cGVjdGVkICcgKyBzaXplICsgJ0Ig
YnV0IHJlY2VpdmVkICcgKwotICAgICAgICAgIGJ5dGVzUmVjZWl2ZWQgKyAnQicpOwotICAgICAg
ZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY29u
ZmlnLnZlcmlmeURhdGEgJiYgIXZlcmlmeUFycmF5QnVmZmVyKGV2ZW50LmRhdGEsIDB4NjEpKSB7
Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTsK
LSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
dG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwg
dG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FsY3VsYXRlQW5kTG9n
UmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSk7
Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBp
IDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIHZhciBzb2NrZXQgPSBzb2NrZXRzW2ldOwot
ICAgIHNvY2tldC5iaW5hcnlUeXBlID0gJ2FycmF5YnVmZmVyJzsKLSAgICBzb2NrZXQub25tZXNz
YWdlID0gb25NZXNzYWdlSGFuZGxlcjsKLSAgfQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1z
ID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgdmFyIHNvY2tldEluZGV4ID0gMDsKLSAgd2hpbGUgKHRv
dGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgewotICAgIHNvY2tldHNbc29ja2V0SW5kZXhdLnNl
bmQoJ3JlY2VpdmUgJyArIHNpemUpOwotICAgIHNvY2tldEluZGV4ID0gKHNvY2tldEluZGV4ICsg
MSkgJSBzb2NrZXRzLmxlbmd0aDsKLQotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci19Ci0K
LWZ1bmN0aW9uIGNyZWF0ZVNvY2tldChjb25maWcpIHsKLSAgLy8gVE9ETyh0eW9zaGlubyk6IEFk
ZCBUQ1Agd2FybSB1cC4KLSAgdmFyIHVybCA9IGNvbmZpZy5wcmVmaXhVcmw7Ci0KLSAgY29uZmln
LmFkZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwpOwotCi0gIHZhciBzb2NrZXQgPSBuZXcgV2ViU29j
a2V0KHVybCk7Ci0gIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewotICAgIGNv
bmZpZy5hZGRUb0xvZygnVW5leHBlY3RlZCBtZXNzYWdlIHJlY2VpdmVkLiBBYm9ydGluZy4nKTsK
LSAgfTsKLSAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICBjb25maWcuYWRkVG9M
b2coJ0Vycm9yJyk7Ci0gIH07Ci0gIHNvY2tldC5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICBjb25maWcuYWRkVG9Mb2coJ0Nsb3NlZCcpOwotICB9OwotICByZXR1cm4gc29ja2V0Owot
fQotCi12YXIgdGFza3MgPSBbXTsKLQotZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7
Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgZGVzdHJveUFsbFNvY2tldHMoKTsKLQotICBu
dW1Fc3RhYmxpc2hlZFNvY2tldHMgPSAwOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmln
Lm51bVNvY2tldHM7ICsraSkgewotICAgIHZhciBzb2NrZXQgPSBjcmVhdGVTb2NrZXQoY29uZmln
KTsKLSAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgICBjb25maWcuYWRkVG9M
b2coJ09wZW5lZCcpOwotCi0gICAgICArK251bUVzdGFibGlzaGVkU29ja2V0czsKLQotICAgICAg
aWYgKG51bUVzdGFibGlzaGVkU29ja2V0cyA9PSBzb2NrZXRzLmxlbmd0aCkgewotICAgICAgICBy
dW5OZXh0VGFzayhjb25maWcpOwotICAgICAgfQotICAgIH07Ci0gICAgc29ja2V0cy5wdXNoKHNv
Y2tldCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcnVuTmV4dFRhc2soY29uZmlnKSB7Ci0gIHZhciB0
YXNrID0gdGFza3Muc2hpZnQoKTsKLSAgaWYgKHRhc2sgPT0gdW5kZWZpbmVkKSB7Ci0gICAgY29u
ZmlnLmFkZFRvTG9nKCdGaW5pc2hlZCcpOwotICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0gICAg
cmV0dXJuOwotICB9Ci0gIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRhc2ssIDApOwotfQotCi1mdW5j
dGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKLSAgdmFyIGxlZ2VuZCA9ICcnCi0gIGlm
IChjb25maWcucHJpbnRTaXplKQotICAgIGxlZ2VuZCA9ICdNZXNzYWdlIHNpemUgaW4gS2lCLCBU
aW1lL21lc3NhZ2UgaW4gbXMsICc7Ci0gIGxlZ2VuZCArPSAnU3BlZWQgaW4ga0Ivcyc7Ci0gIHJl
dHVybiBsZWdlbmQ7Ci19Ci0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKLSAg
cmV0dXJuICcoV2ViU29ja2V0JyArCi0gICAgJywgJyArICh0eXBlb2YgaW1wb3J0U2NyaXB0cyAh
PT0gInVuZGVmaW5lZCIgPyAnV29ya2VyJyA6ICdNYWluJykgKwotICAgICcsIG51bVNvY2tldHM9
JyArIGNvbmZpZy5udW1Tb2NrZXRzICsKLSAgICAnLCBudW1JdGVyYXRpb25zPScgKyBjb25maWcu
bnVtSXRlcmF0aW9ucyArCi0gICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEg
KwotICAgICcsIG1pblRvdGFsPScgKyBjb25maWcubWluVG90YWwgKwotICAgICcsIG51bVdhcm1V
cEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAnKSc7Ci19
Ci0KLWZ1bmN0aW9uIGFkZFRhc2tzKGNvbmZpZywgc3RlcEZ1bmMpIHsKLSAgZm9yICh2YXIgaSA9
IDA7Ci0gICAgICBpIDwgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKyBjb25maWcubnVtSXRl
cmF0aW9uczsgKytpKSB7Ci0gICAgLy8gSWdub3JlIHRoZSBmaXJzdCB8Y29uZmlnLm51bVdhcm1V
cEl0ZXJhdGlvbnN8IGl0ZXJhdGlvbnMuCi0gICAgaWYgKGkgPT0gY29uZmlnLm51bVdhcm1VcEl0
ZXJhdGlvbnMpCi0gICAgICBhZGRSZXN1bHRDbGVhcmluZ1Rhc2soY29uZmlnKTsKLQotICAgIHZh
ciBtdWx0aXBsaWVySW5kZXggPSAwOwotICAgIGZvciAodmFyIHNpemUgPSBjb25maWcuc3RhcnRT
aXplOwotICAgICAgICAgc2l6ZSA8PSBjb25maWcuc3RvcFRocmVzaG9sZDsKLSAgICAgICAgICsr
bXVsdGlwbGllckluZGV4KSB7Ci0gICAgICB2YXIgdGFzayA9IHN0ZXBGdW5jLmJpbmQoCi0gICAg
ICAgICAgbnVsbCwKLSAgICAgICAgICBzaXplLAotICAgICAgICAgIGNvbmZpZyk7Ci0gICAgICB0
YXNrcy5wdXNoKHRhc2spOwotICAgICAgc2l6ZSAqPSBjb25maWcubXVsdGlwbGllcnNbCi0gICAg
ICAgICAgbXVsdGlwbGllckluZGV4ICUgY29uZmlnLm11bHRpcGxpZXJzLmxlbmd0aF07Ci0gICAg
fQotICB9Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCB0aXRs
ZSkgewotICB0YXNrcy5wdXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0aW1lcklEID0gbnVsbDsKLSAg
ICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkodGl0bGUpOwotICAgICAgcmVwb3J0QXZlcmFnZURhdGEo
Y29uZmlnKTsKLSAgICAgIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNv
bmZpZyk7Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBhZGRSZXN1bHRDbGVhcmluZ1Rhc2soY29uZmln
KSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rpb24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAg
ICAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfSk7
Ci19Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xv
ZygnU2VuZCBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5n
KGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRk
VGFza3MoY29uZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rh
c2soY29uZmlnLCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsK
LSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFy
ayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJlbmNobWFyaycpOwotICBj
b25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBb
XTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5j
aG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0gICAgICAnUmVj
ZWl2ZSBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5j
aG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsoY29uZmlnKSB7Ci0g
IGNvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhi
dWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJh
Z2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXApOwotICBhZGRS
ZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdT
dHJpbmcoY29uZmlnKSk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXAp
OwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1JlY2VpdmUgQmVuY2htYXJrICcg
KwotICAgICAgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25m
aWcpOwotfQotCi1mdW5jdGlvbiBzdG9wKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJ
RCk7Ci0gIHRpbWVySUQgPSBudWxsOwotICBjb25maWcuYWRkVG9Mb2coJ1N0b3BwZWQnKTsKLSAg
ZGVzdHJveUFsbFNvY2tldHMoKTsKLX0KLQotb25tZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2Up
IHsKLSAgdmFyIGNvbmZpZyA9IG1lc3NhZ2UuZGF0YS5jb25maWc7Ci0gIGNvbmZpZy5hZGRUb0xv
ZyA9IHdvcmtlckFkZFRvTG9nOwotICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gd29ya2VyQWRkVG9T
dW1tYXJ5OwotICBjb25maWcubWVhc3VyZVZhbHVlID0gd29ya2VyTWVhc3VyZVZhbHVlOwotICBp
ZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdzZW5kQmVuY2htYXJrJykKLSAgICBzZW5kQmVuY2ht
YXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAncmVjZWl2ZUJl
bmNobWFyaycpCi0gICAgcmVjZWl2ZUJlbmNobWFyayhjb25maWcpOwotICBlbHNlIGlmIChtZXNz
YWdlLmRhdGEudHlwZSA9PT0gJ2JhdGNoQmVuY2htYXJrJykKLSAgICBiYXRjaEJlbmNobWFyayhj
b25maWcpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ3N0b3AnKQotICAgIHN0
b3AoY29uZmlnKTsKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFya19o
ZWxwZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDRhZDBiZmVlZmM2ZjQ0MzA1NzFiN2I1MzIz
M2ZiNzk1MDYxNGNmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsODUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiSGFuZGxlciBmb3Ig
YmVuY2htYXJrLmh0bWwuIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtl
KHJlcXVlc3QpOgotICAgICMgVHVybiBvZmYgY29tcHJlc3Npb24uCi0gICAgcmVxdWVzdC53c19l
eHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YShyZXF1ZXN0KToKLSAgICBkYXRhID0gJycKLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGNv
bW1hbmQgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBj
b21tYW5kIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShjb21tYW5kLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0ludmFsaWQgY29tbWFuZCBkYXRhOicgKyBjb21tYW5kKQotICAgICAgICBjb21tYW5kcyA9IGNv
bW1hbmQuc3BsaXQoJyAnKQotICAgICAgICBpZiBsZW4oY29tbWFuZHMpID09IDA6Ci0gICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTogJyArIGNvbW1hbmQp
Ci0KLSAgICAgICAgaWYgY29tbWFuZHNbMF0gPT0gJ3JlY2VpdmUnOgotICAgICAgICAgICAgaWYg
bGVuKGNvbW1hbmRzKSAhPSAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBz
ZW5kIGNvbW1hbmQnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCi0gICAgICAg
ICAgICBzaXplID0gaW50KGNvbW1hbmRzWzFdKQotCi0gICAgICAgICAgICAjIFJldXNlIGRhdGEg
aWYgcG9zc2libGUuCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gc2l6ZToKLSAgICAgICAg
ICAgICAgICBkYXRhID0gJ2EnICogc2l6ZQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKGRhdGEsIGJpbmFyeT1UcnVlKQotICAgICAgICBlbGlmIGNvbW1hbmRzWzBd
ID09ICdzZW5kJzoKLSAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKLSAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0lsbGVn
YWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVjZWl2ZSBjb21tYW5kJyArCi0gICAgICAgICAg
ICAgICAgICAgICAgICBjb21tYW5kKQotICAgICAgICAgICAgdmVyaWZ5X2RhdGEgPSBjb21tYW5k
c1sxXSA9PSAnMScKLQotICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2Vp
dmVfbWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBkYXRhIGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBub3QgcmVjZWl2ZWQnKQotICAgICAgICAgICAg
c2l6ZSA9IGxlbihkYXRhKQotCi0gICAgICAgICAgICBpZiB2ZXJpZnlfZGF0YToKLSAgICAgICAg
ICAgICAgICBpZiBkYXRhICE9ICdhJyAqIHNpemU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1BheWxvYWQgdmVyaWZpY2F0aW9uIGZhaWxlZCcpCi0KLSAgICAgICAgICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShzdHIoc2l6ZSkpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQ6ICcgKyBjb21t
YW5kc1swXSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvY2xvc2Vfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jbG9zZV93c2gucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2YjA4Mzg0MDgxMjQ1Mzk3OTc2NTdkNDBkNjQyNzhm
MWE2NDgxYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9jbG9zZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCww
IEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHN0cnVjdAotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi0K
LQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MK
LQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGxpbmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQot
ICAgICAgICBpZiBsaW5lIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgY29k
ZSwgcmVhc29uID0gbGluZS5zcGxpdCgnICcsIDEpCi0gICAgICAgIGlmIGNvZGUgaXMgTm9uZSBv
ciByZWFzb24gaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGludChjb2RlKSwgcmVhc29uKQotICAgICAgICAjIGNs
b3NlX2Nvbm5lY3Rpb24oKSBpbml0aWF0ZXMgY2xvc2luZyBoYW5kc2hha2UuIEl0IHZhbGlkYXRl
cyBjb2RlCi0gICAgICAgICMgYW5kIHJlYXNvbi4gSWYgeW91IHdhbnQgdG8gc2VuZCBhIGJyb2tl
biBjbG9zZSBmcmFtZSBmb3IgYSB0ZXN0LAotICAgICAgICAjIGZvbGxvd2luZyBjb2RlIHdpbGwg
YmUgdXNlZnVsLgotICAgICAgICAjID4gZGF0YSA9IHN0cnVjdC5wYWNrKCchSCcsIGludChjb2Rl
KSkgKyByZWFzb24uZW5jb2RlKCdVVEYtOCcpCi0gICAgICAgICMgPiByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUoc3RyZWFtLmNyZWF0ZV9jbG9zZV9mcmFtZShkYXRhKSkKLSAgICAgICAgIyA+ICMg
U3VwcHJlc3MgdG8gcmUtcmVzcG9uZCBjbGllbnQgcmVzcG9uZGluZyBjbG9zZSBmcmFtZS4KLSAg
ICAgICAgIyA+IHJhaXNlIEV4Y2VwdGlvbigiY3VzdG9taXplZCBzZXJ2ZXIgaW5pdGlhdGVkIGNs
b3NpbmcgaGFuZHNoYWtlIikKLQotCi1kZWYgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgICMgU2ltcGx5IGVjaG8gYSBjbG9zZSBzdGF0dXMgY29kZQot
ICAgIGNvZGUsIHJlYXNvbiA9IHJlcXVlc3Qud3NfY2xvc2VfY29kZSwgcmVxdWVzdC53c19jbG9z
ZV9yZWFzb24KLQotICAgICMgcHl3ZWJzb2NrZXQgc2V0cyBwc2V1ZG8gY29kZSBmb3IgcmVjZWl2
aW5nIGFuIGVtcHR5IGJvZHkgY2xvc2UgZnJhbWUuCi0gICAgaWYgY29kZSA9PSBjb21tb24uU1RB
VFVTX05PX1NUQVRVU19SRUNFSVZFRDoKLSAgICAgICAgY29kZSA9IE5vbmUKLSAgICAgICAgcmVh
c29uID0gJycKLSAgICByZXR1cm4gY29kZSwgcmVhc29uCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2NvbnNvbGUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvY29uc29sZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2Q2ZDhm
ODA2NzZiOTk5MWUyMmRmYzdlYzg1MDgzNDExZGRkMGIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29uc29sZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzE3ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1k
aXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LS0tPgotCi08IS0tCi1BIHNpbXBsZSBjb25zb2xlIGZvciB0ZXN0aW5nIFdlYlNvY2tldCBzZXJ2
ZXIuCi0KLVR5cGUgYW4gYWRkcmVzcyBpbnRvIHRoZSB0b3AgdGV4dCBpbnB1dCBhbmQgY2xpY2sg
Y29ubmVjdCB0byBlc3RhYmxpc2gKLVdlYlNvY2tldC4gVGhlbiwgdHlwZSBzb21lIG1lc3NhZ2Ug
aW50byB0aGUgYm90dG9tIHRleHQgaW5wdXQgYW5kIGNsaWNrIHNlbmQKLXRvIHNlbmQgdGhlIG1l
c3NhZ2UuIFJlY2VpdmVkL3NlbnQgbWVzc2FnZXMgYW5kIGNvbm5lY3Rpb24gc3RhdGUgd2lsbCBi
ZSBzaG93bgotb24gdGhlIG1pZGRsZSB0ZXh0YXJlYS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgot
PHRpdGxlPldlYlNvY2tldCBjb25zb2xlPC90aXRsZT4KLTxzY3JpcHQ+Ci12YXIgc29ja2V0ID0g
bnVsbDsKLQotdmFyIHNob3dUaW1lU3RhbXAgPSBmYWxzZTsKLQotdmFyIGFkZHJlc3NCb3ggPSBu
dWxsOwotdmFyIHByb3RvY29sc0JveCA9IG51bGw7Ci12YXIgbG9nQm94ID0gbnVsbDsKLXZhciBt
ZXNzYWdlQm94ID0gbnVsbDsKLXZhciBmaWxlQm94ID0gbnVsbDsKLXZhciBjb2RlQm94ID0gbnVs
bDsKLXZhciByZWFzb25Cb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRUaW1lU3RhbXAoKSB7Ci0g
IHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKLX0KLQotZnVuY3Rpb24gYWRkVG9Mb2cobG9n
KSB7Ci0gIGlmIChzaG93VGltZVN0YW1wKSB7Ci0gICAgbG9nQm94LnZhbHVlICs9ICdbJyArIGdl
dFRpbWVTdGFtcCgpICsgJ10gJzsKLSAgfQotICBsb2dCb3gudmFsdWUgKz0gbG9nICsgJ1xuJwot
ICAvLyBMYXJnZSBlbm91Z2ggdG8ga2VlcCBzaG93aW5nIHRoZSBsYXRlc3QgbWVzc2FnZS4KLSAg
bG9nQm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLWZ1bmN0aW9uIHNldGJpbmFyeXR5cGUo
YmluYXJ5VHlwZSkgewotICBpZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVj
dGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgc29ja2V0LmJpbmFyeVR5cGUgPSBiaW5hcnlU
eXBlOwotICBhZGRUb0xvZygnU2V0IGJpbmFyeVR5cGUgdG8gJyArIGJpbmFyeVR5cGUpOwotfQot
Ci1mdW5jdGlvbiBzZW5kKCkgewotICBpZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3Qg
Y29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgc29ja2V0LnNlbmQobWVzc2FnZUJv
eC52YWx1ZSk7Ci0gIGFkZFRvTG9nKCc+ICcgKyBtZXNzYWdlQm94LnZhbHVlKTsKLSAgbWVzc2Fn
ZUJveC52YWx1ZSA9ICcnOwotfQotCi1mdW5jdGlvbiBzZW5kZmlsZSgpIHsKLSAgaWYgKCFzb2Nr
ZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwotICAgIHJldHVybjsKLSAgfQot
Ci0gIHZhciBmaWxlcyA9IGZpbGVCb3guZmlsZXM7Ci0KLSAgaWYgKGZpbGVzLmxlbmd0aCA9PSAw
KSB7Ci0gICAgYWRkVG9Mb2coJ0ZpbGUgbm90IHNlbGVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9
Ci0KLSAgc29ja2V0LnNlbmQoZmlsZXNbMF0pOwotICBhZGRUb0xvZygnPiBTZW5kICcgKyBmaWxl
c1swXS5uYW1lKTsKLX0KLQotZnVuY3Rpb24gcGFyc2VQcm90b2NvbHMocHJvdG9jb2xzVGV4dCkg
ewotICB2YXIgcHJvdG9jb2xzID0gcHJvdG9jb2xzVGV4dC5zcGxpdCgnLCcpOwotICBmb3IgKHZh
ciBpID0gMDsgaSA8IHByb3RvY29scy5sZW5ndGg7ICsraSkgewotICAgIHByb3RvY29sc1tpXSA9
IHByb3RvY29sc1tpXS50cmltKCk7Ci0gIH0KLQotICBpZiAocHJvdG9jb2xzLmxlbmd0aCA9PSAw
KSB7Ci0gICAgLy8gRG9uJ3QgcGFzcy4KLSAgICBwcm90b2NvbHMgPSBudWxsOwotICB9IGVsc2Ug
aWYgKHByb3RvY29scy5sZW5ndGggPT0gMSkgewotICAgIGlmIChwcm90b2NvbHNbMF0ubGVuZ3Ro
ID09IDApIHsKLSAgICAgIC8vIERvbid0IHBhc3MuCi0gICAgICBwcm90b2NvbHMgPSBudWxsOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAvLyBQYXNzIGFzIGEgc3RyaW5nLgotICAgICAgcHJvdG9jb2xz
ID0gcHJvdG9jb2xzWzBdOwotICAgIH0KLSAgfQotCi0gIHJldHVybiBwcm90b2NvbHM7Ci19Ci0K
LWZ1bmN0aW9uIGNvbm5lY3QoKSB7Ci0gIHZhciB1cmwgPSBhZGRyZXNzQm94LnZhbHVlOwotICB2
YXIgcHJvdG9jb2xzID0gcGFyc2VQcm90b2NvbHMocHJvdG9jb2xzQm94LnZhbHVlKTsKLQotICBp
ZiAoJ1dlYlNvY2tldCcgaW4gd2luZG93KSB7Ci0gICAgaWYgKHByb3RvY29scykgewotICAgICAg
c29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwsIHByb3RvY29scyk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTsKLSAgICB9Ci0gIH0gZWxzZSB7Ci0gICAg
cmV0dXJuOwotICB9Ci0KLSAgc29ja2V0Lm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
ZXh0cmFJbmZvID0gW107Ci0gICAgaWYgKCgncHJvdG9jb2wnIGluIHNvY2tldCkgJiYgc29ja2V0
LnByb3RvY29sKSB7Ci0gICAgICBleHRyYUluZm8ucHVzaCgncHJvdG9jb2wgPSAnICsgc29ja2V0
LnByb3RvY29sKTsKLSAgICB9Ci0gICAgaWYgKCgnZXh0ZW5zaW9ucycgaW4gc29ja2V0KSAmJiBz
b2NrZXQuZXh0ZW5zaW9ucykgewotICAgICAgZXh0cmFJbmZvLnB1c2goJ2V4dGVuc2lvbnMgPSAn
ICsgc29ja2V0LmV4dGVuc2lvbnMpOwotICAgIH0KLQotICAgIHZhciBsb2dNZXNzYWdlID0gJ09w
ZW5lZCc7Ci0gICAgaWYgKGV4dHJhSW5mby5sZW5ndGggPiAwKSB7Ci0gICAgICBsb2dNZXNzYWdl
ICs9ICcgKCcgKyBleHRyYUluZm8uam9pbignLCAnKSArICcpJzsKLSAgICB9Ci0gICAgYWRkVG9M
b2cobG9nTWVzc2FnZSk7Ci0gIH07Ci0gIHNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKLSAgICBpZiAoKCdBcnJheUJ1ZmZlcicgaW4gd2luZG93KSAmJiAoZXZlbnQuZGF0YSBp
bnN0YW5jZW9mIEFycmF5QnVmZmVyKSkgewotICAgICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYW4g
QXJyYXlCdWZmZXIgb2YgJyArIGV2ZW50LmRhdGEuYnl0ZUxlbmd0aCArCi0gICAgICAgICAgICAg
ICAnIGJ5dGVzJykKLSAgICB9IGVsc2UgaWYgKCgnQmxvYicgaW4gd2luZG93KSAmJiAoZXZlbnQu
ZGF0YSBpbnN0YW5jZW9mIEJsb2IpKSB7Ci0gICAgICBhZGRUb0xvZygnPCBSZWNlaXZlZCBhIEJs
b2Igb2YgJyArIGV2ZW50LmRhdGEuc2l6ZSArICcgYnl0ZXMnKQotICAgIH0gZWxzZSB7Ci0gICAg
ICBhZGRUb0xvZygnPCAnICsgZXZlbnQuZGF0YSk7Ci0gICAgfQotICB9OwotICBzb2NrZXQub25l
cnJvciA9IGZ1bmN0aW9uICgpIHsKLSAgICBhZGRUb0xvZygnRXJyb3InKTsKLSAgfTsKLSAgc29j
a2V0Lm9uY2xvc2UgPSBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICB2YXIgbG9nTWVzc2FnZSA9ICdD
bG9zZWQgKCc7Ci0gICAgaWYgKChhcmd1bWVudHMubGVuZ3RoID09IDEpICYmICgnQ2xvc2VFdmVu
dCcgaW4gd2luZG93KSAmJgotICAgICAgICAoZXZlbnQgaW5zdGFuY2VvZiBDbG9zZUV2ZW50KSkg
ewotICAgICAgbG9nTWVzc2FnZSArPSAnd2FzQ2xlYW4gPSAnICsgZXZlbnQud2FzQ2xlYW47Ci0g
ICAgICAvLyBjb2RlIGFuZCByZWFzb24gYXJlIHByZXNlbnQgb25seSBmb3IKLSAgICAgIC8vIGRy
YWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wNiBhbmQgbGF0ZXIKLSAgICAgIGlm
ICgnY29kZScgaW4gZXZlbnQpIHsKLSAgICAgICAgbG9nTWVzc2FnZSArPSAnLCBjb2RlID0gJyAr
IGV2ZW50LmNvZGU7Ci0gICAgICB9Ci0gICAgICBpZiAoJ3JlYXNvbicgaW4gZXZlbnQpIHsKLSAg
ICAgICAgbG9nTWVzc2FnZSArPSAnLCByZWFzb24gPSAnICsgZXZlbnQucmVhc29uOwotICAgICAg
fQotICAgIH0gZWxzZSB7Ci0gICAgICBsb2dNZXNzYWdlICs9ICdDbG9zZUV2ZW50IGlzIG5vdCBh
dmFpbGFibGUnOwotICAgIH0KLSAgICBhZGRUb0xvZyhsb2dNZXNzYWdlICsgJyknKTsKLSAgfTsK
LQotICBpZiAocHJvdG9jb2xzKSB7Ci0gICAgYWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVybCArICcg
KHByb3RvY29scyA9ICcgKyBwcm90b2NvbHMgKyAnKScpOwotICB9IGVsc2UgewotICAgIGFkZFRv
TG9nKCdDb25uZWN0ICcgKyB1cmwpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGNsb3NlU29ja2V0KCkg
ewotICBpZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAg
cmV0dXJuOwotICB9Ci0KLSAgaWYgKGNvZGVCb3gudmFsdWUgfHwgcmVhc29uQm94LnZhbHVlKSB7
Ci0gICAgc29ja2V0LmNsb3NlKGNvZGVCb3gudmFsdWUsIHJlYXNvbkJveC52YWx1ZSk7Ci0gIH0g
ZWxzZSB7Ci0gICAgc29ja2V0LmNsb3NlKCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcHJpbnRTdGF0
ZSgpIHsKLSAgaWYgKCFzb2NrZXQpIHsKLSAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOwot
ICAgIHJldHVybjsKLSAgfQotCi0gIGFkZFRvTG9nKAotICAgICAgJ3VybCA9ICcgKyBzb2NrZXQu
dXJsICsKLSAgICAgICcsIHJlYWR5U3RhdGUgPSAnICsgc29ja2V0LnJlYWR5U3RhdGUgKwotICAg
ICAgJywgYnVmZmVyZWRBbW91bnQgPSAnICsgc29ja2V0LmJ1ZmZlcmVkQW1vdW50KTsKLX0KLQot
ZnVuY3Rpb24gaW5pdCgpIHsKLSAgdmFyIHNjaGVtZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2Nv
bCA9PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDogJ3dzOi8vJzsKLSAgdmFyIGRlZmF1bHRBZGRyZXNz
ID0gc2NoZW1lICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2VjaG8nOwotCi0gIGFkZHJlc3NC
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBwcm90b2NvbHNCb3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvdG9jb2xzJyk7Ci0gIGxvZ0JveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLSAgbWVzc2FnZUJveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdtZXNzYWdlJyk7Ci0gIGZpbGVCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZmlsZScpOwotICBjb2RlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvZGUnKTsK
LSAgcmVhc29uQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlYXNvbicpOwotCi0gIGFk
ZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRkcmVzczsKLQotICBpZiAoISgnV2ViU29ja2V0JyBp
biB3aW5kb3cpKSB7Ci0gICAgYWRkVG9Mb2coJ1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7
Ci0gIH0KLX0KLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLWZvcm0gewotICBt
YXJnaW46IDBweDsKLX0KLQotI2Nvbm5lY3RfZGl2LCAjbG9nX2RpdiwgI3NlbmRfZGl2LCAjc2Vu
ZGZpbGVfZGl2LCAjY2xvc2VfZGl2LCAjcHJpbnRzdGF0ZV9kaXYgewotICBwYWRkaW5nOiA1cHg7
Ci0gIG1hcmdpbjogNXB4OwotICBib3JkZXItd2lkdGg6IDBweCAwcHggMHB4IDEwcHg7Ci0gIGJv
cmRlci1zdHlsZTogc29saWQ7Ci0gIGJvcmRlci1jb2xvcjogc2lsdmVyOwotfQotPC9zdHlsZT4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGRpdj4KLQotPGRpdiBpZD0iY29u
bmVjdF9kaXYiPgotICA8Zm9ybSBhY3Rpb249IiMiIG9uc3VibWl0PSJjb25uZWN0KCk7IHJldHVy
biBmYWxzZTsiPgotICAgIHVybCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9
IjQwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iY29ubmVjdCI+Ci0gICAgPGJy
Lz4KLSAgICBwcm90b2NvbHMgPGlucHV0IHR5cGU9InRleHQiIGlkPSJwcm90b2NvbHMiIHNpemU9
IjIwIj4KLSAgPC9mb3JtPgotPC9kaXY+Ci0KLTxkaXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFy
ZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9IjQwIiByZWFkb25seT48L3RleHRhcmVhPgotICA8
YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giCi0gICAgICAgICBuYW1lPSJzaG93dGltZXN0
YW1wIgotICAgICAgICAgdmFsdWU9InNob3d0aW1lc3RhbXAiCi0gICAgICAgICBvbmNsaWNrPSJz
aG93VGltZVN0YW1wID0gdGhpcy5jaGVja2VkIj5TaG93IHRpbWUgc3RhbXAKLTwvZGl2PgotCi08
ZGl2IGlkPSJzZW5kX2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJtaXQ9InNlbmQoKTsg
cmV0dXJuIGZhbHNlOyI+Ci0gICAgZGF0YSA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1lc3NhZ2Ui
IHNpemU9IjQwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0ic2VuZCI+Ci0gIDwv
Zm9ybT4KLTwvZGl2PgotCi08ZGl2IGlkPSJzZW5kZmlsZV9kaXYiPgotICA8Zm9ybSBhY3Rpb249
IiMiIG9uc3VibWl0PSJzZW5kZmlsZSgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICA8aW5wdXQgdHlw
ZT0iZmlsZSIgaWQ9ImZpbGUiIHNpemU9IjQwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2
YWx1ZT0ic2VuZCBmaWxlIj4KLSAgPC9mb3JtPgotCi0gIFNldCBiaW5hcnlUeXBlCi0gIDxpbnB1
dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImJpbmFyeXR5cGUiCi0gICAgICAgICB2YWx1
ZT0iYmxvYiIKLSAgICAgICAgIG9uY2xpY2s9InNldGJpbmFyeXR5cGUoJ2Jsb2InKSIgY2hlY2tl
ZD5ibG9iCi0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImJpbmFyeXR5cGUi
Ci0gICAgICAgICB2YWx1ZT0iYXJyYXlidWZmZXIiCi0gICAgICAgICBvbmNsaWNrPSJzZXRiaW5h
cnl0eXBlKCdhcnJheWJ1ZmZlcicpIj5hcnJheWJ1ZmZlcgotPC9kaXY+Ci0KLTxkaXYgaWQ9ImNs
b3NlX2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJtaXQ9ImNsb3NlU29ja2V0KCk7IHJl
dHVybiBmYWxzZTsiPgotICAgIGNvZGUgPGlucHV0IHR5cGU9InRleHQiIGlkPSJjb2RlIiBzaXpl
PSIxMCI+Ci0gICAgcmVhc29uIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVhc29uIiBzaXplPSIy
MCI+Ci0gICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNsb3NlIj4KLSAgPC9mb3JtPgot
PC9kaXY+Ci0KLTxkaXYgaWQ9InByaW50c3RhdGVfZGl2Ij4KLSAgPGlucHV0IHR5cGU9ImJ1dHRv
biIgdmFsdWU9InByaW50IHN0YXRlIiBvbmNsaWNrPSJwcmludFN0YXRlKCk7Ij4KLTwvZGl2Pgot
Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb29raWVfd3NoLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjMyNzE1MmU3MDFmN2QyMDMxZDdjOWNlMDQ2MjRjZmE4
NGFjMTZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvY29va2llX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLSMg
bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0jIGh0
dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0K
LWltcG9ydCB1cmxwYXJzZQotCi0KLWRlZiBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgdmFsdWUp
OgotICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoKCdTZXQtQ29va2llJywgdmFsdWUp
KQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBj
b21wb25lbnRzID0gdXJscGFyc2UudXJscGFyc2UocmVxdWVzdC51cmkpCi0gICAgY29tbWFuZCA9
IGNvbXBvbmVudHNbNF0KLQotICAgIE9ORV9EQVlfTElGRSA9ICdNYXgtQWdlPTg2NDAwJwotCi0g
ICAgaWYgY29tbWFuZCA9PSAnc2V0JzoKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3Qs
ICc7ICcuam9pbihbJ2Zvbz1iYXInLCBPTkVfREFZX0xJRkVdKSkKLSAgICBlbGlmIGNvbW1hbmQg
PT0gJ3NldF9odHRwb25seSc6Ci0gICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LAotICAg
ICAgICAgICAgJzsgJy5qb2luKFsnaHR0cE9ubHlGb289YmFyJywgT05FX0RBWV9MSUZFLCAnaHR0
cE9ubHknXSkpCi0gICAgZWxpZiBjb21tYW5kID09ICdjbGVhcic6Ci0gICAgICAgIF9hZGRfc2V0
X2Nvb2tpZShyZXF1ZXN0LCAnZm9vPTA7IE1heC1BZ2U9MCcpCi0gICAgICAgIF9hZGRfc2V0X2Nv
b2tpZShyZXF1ZXN0LCAnaHR0cE9ubHlGb289MDsgTWF4LUFnZT0wJykKLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NDNjZTY0ZThiODg2NTYyZmM2OTIw
OTgzNGJmOTJiMTM5OTE0MmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMTI4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiU2ltcGxlIFdlYlNvY2tldCBjbGllbnQgbmFtZWQgZWNob19jbGllbnQganVz
dCBiZWNhdXNlIG9mIGhpc3RvcmljYWwgcmVhc29uLgotCi1tb2RfcHl3ZWJzb2NrZXQgZGlyZWN0
b3J5IG11c3QgYmUgaW4gUFlUSE9OUEFUSC4KLQotRXhhbXBsZSBVc2FnZToKLQotIyBzZXJ2ZXIg
c2V0dXAKLSAlIGNkICRweXdlYnNvY2tldAotICUgUFlUSE9OUEFUSD0kY3dkL3NyYyBweXRob24g
Li9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtcCA4ODgwIFwKLSAgICAtZCAkY3dkL3Ny
Yy9leGFtcGxlCi0KLSMgcnVuIGNsaWVudAotICUgUFlUSE9OUEFUSD0kY3dkL3NyYyBweXRob24g
Li9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5weSAtcCA4ODgwIFwKLSAgICAgLXMgbG9jYWxob3N0
IFwKLSAgICAgLW8gaHR0cDovL2xvY2FsaG9zdCAtciAvZWNobyAtbSB0ZXN0Ci0KLW9yCi0KLSMg
cnVuIGVjaG8gY2xpZW50IHRvIHRlc3QgSUVURiBIeUJpIDAwIHByb3RvY29sCi0gcnVuIHdpdGgg
LS1wcm90b2NvbC12ZXJzaW9uPWh5YmkwMAotIiIiCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0
IGNvZGVjcwotaW1wb3J0IGxvZ2dpbmcKLWZyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNl
cgotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgcmUKLWltcG9ydCBzb2NrZXQKLWlt
cG9ydCBzdHJ1Y3QKLWltcG9ydCBzeXMKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNv
bW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRGVmbGF0ZUZyYW1l
RXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9y
dCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuZXh0ZW5zaW9ucyBpbXBvcnQgX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBfcGFyc2Vfd2luZG93X2JpdHMKLWZyb20gbW9k
X3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5z
dHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBp
bXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQot
Ci1fVElNRU9VVF9TRUMgPSAxMAotX1VOREVGSU5FRF9QT1JUID0gLTEKLQotX1VQR1JBREVfSEVB
REVSID0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi1fVVBHUkFERV9IRUFERVJfSElYSUU3NSA9
ICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotX0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rp
b246IFVwZ3JhZGVcclxuJwotCi0jIFNwZWNpYWwgbWVzc2FnZSB0aGF0IHRlbGxzIHRoZSBlY2hv
IHNlcnZlciB0byBzdGFydCBjbG9zaW5nIGhhbmRzaGFrZQotX0dPT0RCWUVfTUVTU0FHRSA9ICdH
b29kYnllJwotCi1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTMgPSAnaHliaTEzJwotX1BST1RPQ09M
X1ZFUlNJT05fSFlCSTA4ID0gJ2h5YmkwOCcKLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMCA9ICdo
eWJpMDAnCi1fUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1ID0gJ2hpeGllNzUnCi0KLSMgQ29uc3Rh
bnRzIGZvciB0aGUgLS10bHNfbW9kdWxlIGZsYWcuCi1fVExTX0JZX1NUQU5EQVJEX01PRFVMRSA9
ICdzc2wnCi1fVExTX0JZX1BZT1BFTlNTTCA9ICdweW9wZW5zc2wnCi0KLSMgVmFsdWVzIHVzZWQg
YnkgdGhlIC0tdGxzLXZlcnNpb24gZmxhZy4KLV9UTFNfVkVSU0lPTl9TU0wyMyA9ICdzc2wyMycK
LV9UTFNfVkVSU0lPTl9TU0wzID0gJ3NzbDMnCi1fVExTX1ZFUlNJT05fVExTMSA9ICd0bHMxJwot
Ci0KLWNsYXNzIENsaWVudEhhbmRzaGFrZUVycm9yKEV4Y2VwdGlvbik6Ci0gICAgcGFzcwotCi0K
LWRlZiBfYnVpbGRfbWV0aG9kX2xpbmUocmVzb3VyY2UpOgotICAgIHJldHVybiAnR0VUICVzIEhU
VFAvMS4xXHJcbicgJSByZXNvdXJjZQotCi0KLWRlZiBfb3JpZ2luX2hlYWRlcihoZWFkZXIsIG9y
aWdpbik6Ci0gICAgIyA0LjEgMTMuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiT3JpZ2lu
OiIsIGEgVSswMDIwIFNQQUNFIGNoYXJhY3RlciwKLSAgICAjIGFuZCB0aGUgL29yaWdpbi8gdmFs
dWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvIC9maWVsZHMvLgotICAgIHJldHVy
biAnJXM6ICVzXHJcbicgJSAoaGVhZGVyLCBvcmlnaW4ubG93ZXIoKSkKLQotCi1kZWYgX2Zvcm1h
dF9ob3N0X2hlYWRlcihob3N0LCBwb3J0LCBzZWN1cmUpOgotICAgICMgNC4xIDkuIExldCAvaG9z
dHBvcnQvIGJlIGFuIGVtcHR5IHN0cmluZy4KLSAgICAjIDQuMSAxMC4gQXBwZW5kIHRoZSAvaG9z
dC8gdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIHRvCi0gICAgIyAvaG9zdHBv
cnQvCi0gICAgaG9zdHBvcnQgPSBob3N0Lmxvd2VyKCkKLSAgICAjIDQuMSAxMS4gSWYgL3NlY3Vy
ZS8gaXMgZmFsc2UsIGFuZCAvcG9ydC8gaXMgbm90IDgwLCBvciBpZiAvc2VjdXJlLwotICAgICMg
aXMgdHJ1ZSwgYW5kIC9wb3J0LyBpcyBub3QgNDQzLCB0aGVuIGFwcGVuZCBhIFUrMDAzQSBDT0xP
TiBjaGFyYWN0ZXIKLSAgICAjICg6KSBmb2xsb3dlZCBieSB0aGUgdmFsdWUgb2YgL3BvcnQvLCBl
eHByZXNzZWQgYXMgYSBiYXNlLXRlbiBpbnRlZ2VyLAotICAgICMgdG8gL2hvc3Rwb3J0LwotICAg
IGlmICgobm90IHNlY3VyZSBhbmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BP
UlQpIG9yCi0gICAgICAgIChzZWN1cmUgYW5kIHBvcnQgIT0gY29tbW9uLkRFRkFVTFRfV0VCX1NP
Q0tFVF9TRUNVUkVfUE9SVCkpOgotICAgICAgICBob3N0cG9ydCArPSAnOicgKyBzdHIocG9ydCkK
LSAgICAjIDQuMSAxMi4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJIb3N0OiIsIGEgVSsw
MDIwIFNQQUNFCi0gICAgIyBjaGFyYWN0ZXIsIGFuZCAvaG9zdHBvcnQvLCB0byAvZmllbGRzLy4K
LSAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKGNvbW1vbi5IT1NUX0hFQURFUiwgaG9zdHBvcnQp
Ci0KLQotZGVmIF9yZWNlaXZlX2J5dGVzKHNvY2tldCwgbGVuZ3RoKToKLSAgICBieXRlcyA9IFtd
Ci0gICAgcmVtYWluaW5nID0gbGVuZ3RoCi0gICAgd2hpbGUgcmVtYWluaW5nID4gMDoKLSAgICAg
ICAgcmVjZWl2ZWRfYnl0ZXMgPSBzb2NrZXQucmVjdihyZW1haW5pbmcpCi0gICAgICAgIGlmIG5v
dCByZWNlaXZlZF9ieXRlczoKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoCi0gICAgICAgICAg
ICAgICAgJ0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0
aCAnCi0gICAgICAgICAgICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9u
bHkgJWQgYnl0ZXMpJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWlu
aW5nKSkKLSAgICAgICAgYnl0ZXMuYXBwZW5kKHJlY2VpdmVkX2J5dGVzKQotICAgICAgICByZW1h
aW5pbmcgLT0gbGVuKHJlY2VpdmVkX2J5dGVzKQotICAgIHJldHVybiAnJy5qb2luKGJ5dGVzKQot
Ci0KLWRlZiBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lKToKLSAgICAiIiJHZXRz
IHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1lIGZyb20gZmllbGRzLgot
Ci0gICAgVGhpcyBmdW5jdGlvbiBleHBlY3RzIHRoYXQgdGhlcmUncyBvbmx5IG9uZSBoZWFkZXIg
d2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUKLSAgICBpbiBmaWVsZHMuIE90aGVyd2lzZSwgcmFpc2Vz
IGFuIENsaWVudEhhbmRzaGFrZUVycm9yLgotICAgICIiIgotCi0gICAgdmFsdWVzID0gZmllbGRz
LmdldChuYW1lLmxvd2VyKCkpCi0gICAgaWYgdmFsdWVzIGlzIE5vbmUgb3IgbGVuKHZhbHVlcykg
PT0gMDoKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAn
JXMgaGVhZGVyIG5vdCBmb3VuZDogJXInICUgKG5hbWUsIHZhbHVlcykpCi0gICAgaWYgbGVuKHZh
bHVlcykgPiAxOgotICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAg
ICAgICdNdWx0aXBsZSAlcyBoZWFkZXJzIGZvdW5kOiAlcicgJSAobmFtZSwgdmFsdWVzKSkKLSAg
ICByZXR1cm4gdmFsdWVzWzBdCi0KLQotZGVmIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKGZp
ZWxkcywgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF92YWx1
ZSwgY2FzZV9zZW5zaXRpdmU9RmFsc2UpOgotICAgICIiIkdldHMgYW5kIHZhbGlkYXRlcyB0aGUg
dmFsdWUgb2YgdGhlIGhlYWRlciBzcGVjaWZpZWQgYnkgbmFtZSBmcm9tCi0gICAgZmllbGRzLgot
Ci0gICAgSWYgZXhwZWN0ZWRfdmFsdWUgaXMgc3BlY2lmaWVkLCBjb21wYXJlcyBleHBlY3RlZCB2
YWx1ZSBhbmQgYWN0dWFsIHZhbHVlCi0gICAgYW5kIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VF
cnJvciBvbiBmYWlsdXJlLiBZb3UgY2FuIHNwZWNpZnkgY2FzZQotICAgIHNlbnNpdGl2ZW5lc3Mg
aW4gdGhpcyBjb21wYXJpc29uIGJ5IGNhc2Vfc2Vuc2l0aXZlIHBhcmFtZXRlci4gVGhpcyBmdW5j
dGlvbgotICAgIGV4cGVjdHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3aXRoIHRoZSBz
cGVjaWZpZWQgbmFtZSBpbiBmaWVsZHMuCi0gICAgT3RoZXJ3aXNlLCByYWlzZXMgYW4gQ2xpZW50
SGFuZHNoYWtlRXJyb3IuCi0gICAgIiIiCi0KLSAgICB2YWx1ZSA9IF9nZXRfbWFuZGF0b3J5X2hl
YWRlcihmaWVsZHMsIG5hbWUpCi0KLSAgICBpZiAoKGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZSAh
PSBleHBlY3RlZF92YWx1ZSkgb3IKLSAgICAgICAgKG5vdCBjYXNlX3NlbnNpdGl2ZSBhbmQgdmFs
dWUubG93ZXIoKSAhPSBleHBlY3RlZF92YWx1ZS5sb3dlcigpKSk6Ci0gICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRl
ciAlczogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgKG5hbWUs
IGV4cGVjdGVkX3ZhbHVlLCB2YWx1ZSkpCi0KLQotY2xhc3MgX1RMU1NvY2tldChvYmplY3QpOgot
ICAgICIiIldyYXBwZXIgZm9yIGEgVExTIGNvbm5lY3Rpb24uIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwKLSAgICAgICAgICAgICAgICAgcmF3X3NvY2tldCwgdGxzX21vZHVsZSwgdGxzX3Zl
cnNpb24sIGRpc2FibGVfdGxzX2NvbXByZXNzaW9uKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0g
dXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgaWYgdGxzX21vZHVsZSA9PSBf
VExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAgICAgIGlmIHRsc192ZXJzaW9uID09IF9U
TFNfVkVSU0lPTl9TU0wyMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09M
X1NTTHYyMwotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NM
MzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc3NsLlBST1RPQ09MX1NTTHYzCi0gICAgICAg
ICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9UTFMxOgotICAgICAgICAgICAg
ICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfVExTdjEKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ0ludmFs
aWQgLS10bHMtdmVyc2lvbiBmbGFnOiAlcicgJSB0bHNfdmVyc2lvbikKLQotICAgICAgICAgICAg
aWYgZGlzYWJsZV90bHNfY29tcHJlc3Npb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigKLSAgICAgICAgICAgICAgICAgICAgJy0tZGlzYWJsZS10bHMtY29tcHJlc3Npb24gaXMg
bm90IGF2YWlsYWJsZSBmb3Igc3NsICcKLSAgICAgICAgICAgICAgICAgICAgJ21vZHVsZScpCi0K
LSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQgPSBzc2wud3JhcF9zb2NrZXQocmF3X3NvY2tl
dCwgc3NsX3ZlcnNpb249dmVyc2lvbikKLQotICAgICAgICAgICAgIyBQcmludCBjaXBoZXIgaW4g
dXNlLiBIYW5kc2hha2UgaXMgZG9uZSBvbiB3cmFwX3NvY2tldCBjYWxsLgotICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oIkNpcGhlcjogJXMiLCBzZWxmLl90bHNfc29ja2V0LmNpcGhlcigp
KQotICAgICAgICBlbGlmIHRsc19tb2R1bGUgPT0gX1RMU19CWV9QWU9QRU5TU0w6Ci0gICAgICAg
ICAgICBpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMjM6Ci0gICAgICAgICAgICAg
ICAgdmVyc2lvbiA9IE9wZW5TU0wuU1NMLlNTTHYyM19NRVRIT0QKLSAgICAgICAgICAgIGVsaWYg
dGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDM6Ci0gICAgICAgICAgICAgICAgdmVyc2lv
biA9IE9wZW5TU0wuU1NMLlNTTHYzX01FVEhPRAotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lv
biA9PSBfVExTX1ZFUlNJT05fVExTMToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNT
TC5TU0wuVExTdjFfTUVUSE9ECi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIC0tdGxzLXZlcnNp
b24gZmxhZzogJXInICUgdGxzX3ZlcnNpb24pCi0KLSAgICAgICAgICAgIGNvbnRleHQgPSBPcGVu
U1NMLlNTTC5Db250ZXh0KHZlcnNpb24pCi0KLSAgICAgICAgICAgIGlmIGRpc2FibGVfdGxzX2Nv
bXByZXNzaW9uOgotICAgICAgICAgICAgICAgICMgT1BfTk9fQ09NUFJFU1NJT04gaXMgbm90IGRl
ZmluZWQgaW4gT3BlblNTTCBtb2R1bGUuCi0gICAgICAgICAgICAgICAgY29udGV4dC5zZXRfb3B0
aW9ucygweDAwMDIwMDAwKQotCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0ID0gT3BlblNT
TC5TU0wuQ29ubmVjdGlvbihjb250ZXh0LCByYXdfc29ja2V0KQotICAgICAgICAgICAgIyBDbGll
bnQgbW9kZS4KLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQuc2V0X2Nvbm5lY3Rfc3RhdGUo
KQotICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldC5zZXRibG9ja2luZyhUcnVlKQotCi0gICAg
ICAgICAgICAjIERvIGhhbmRzaGFrZSBub3cgKG5vdCBuZWNlc3NhcnkpLgotICAgICAgICAgICAg
c2VsZi5fdGxzX3NvY2tldC5kb19oYW5kc2hha2UoKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcignTm8gVExTIHN1cHBvcnQgbW9kdWxlIGlzIGF2YWlsYWJsZScp
Ci0KLSAgICBkZWYgc2VuZChzZWxmLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19z
b2NrZXQud3JpdGUoZGF0YSkKLQotICAgIGRlZiBzZW5kYWxsKHNlbGYsIGRhdGEpOgotICAgICAg
ICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5zZW5kYWxsKGRhdGEpCi0KLSAgICBkZWYgcmVjdihz
ZWxmLCBzaXplPS0xKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQucmVhZChzaXpl
KQotCi0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tl
dC5jbG9zZSgpCi0KLSAgICBkZWYgZ2V0cGVlcm5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl90bHNfc29ja2V0LmdldHBlZXJuYW1lKCkKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VC
YXNlKG9iamVjdCk6Ci0gICAgIiIiQSBiYXNlIGNsYXNzIGZvciBXZWJTb2NrZXQgb3BlbmluZyBo
YW5kc2hha2UgcHJvY2Vzc29ycyBmb3IgZWFjaAotICAgIHByb3RvY29sIHZlcnNpb24uCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIF9yZWFkX2ZpZWxkcyhzZWxmKToK
LSAgICAgICAgIyA0LjEgMzIuIGxldCAvZmllbGRzLyBiZSBhIGxpc3Qgb2YgbmFtZS12YWx1ZSBw
YWlycywgaW5pdGlhbGx5IGVtcHR5LgotICAgICAgICBmaWVsZHMgPSB7fQotICAgICAgICB3aGls
ZSBUcnVlOiAgIyAiRmllbGQiCi0gICAgICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBhbmQg
L3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICAgICAgbmFtZSA9ICcnCi0gICAg
ICAgICAgICB2YWx1ZSA9ICcnCi0gICAgICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KLSAg
ICAgICAgICAgIG5hbWUgPSBzZWxmLl9yZWFkX25hbWUoKQotICAgICAgICAgICAgaWYgbmFtZSBp
cyBOb25lOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAjIDQuMSAzNS4gcmVh
ZCBzcGFjZXMKLSAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFNraXAgb25seSBvbmUgc3Bh
Y2UgYXMgZGVzY3JpYmVkIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY2ggPSBzZWxmLl9za2lw
X3NwYWNlcygpCi0gICAgICAgICAgICAjIDQuMSAzNi4gcmVhZCAvdmFsdWUvCi0gICAgICAgICAg
ICB2YWx1ZSA9IHNlbGYuX3JlYWRfdmFsdWUoY2gpCi0gICAgICAgICAgICAjIDQuMSAzNy4gcmVh
ZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVz
KHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAg
ICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAg
ICAgICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZv
ciAnCi0gICAgICAgICAgICAgICAgICAgICdoZWFkZXIgJXInICUgKGNoLCB2YWx1ZSwgbmFtZSkp
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkICVyIGhlYWRlcicsIG5h
bWUpCi0gICAgICAgICAgICAjIDQuMSAzOC4gYXBwZW5kIGFuIGVudHJ5IHRvIHRoZSAvZmllbGRz
LyBsaXN0IHRoYXQgaGFzIHRoZSBuYW1lCi0gICAgICAgICAgICAjIGdpdmVuIGJ5IHRoZSBzdHJp
bmcgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvbmFtZS8gYnl0ZQotICAgICAgICAgICAg
IyBhcnJheSBhcyBhIFVURi04IHN0cmVhbSBhbmQgdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzdHJp
bmcKLSAgICAgICAgICAgICMgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvdmFsdWUvIGJ5
dGUgYXJyYXkgYXMgYSBVVEYtOCBieXRlCi0gICAgICAgICAgICAjIHN0cmVhbS4KLSAgICAgICAg
ICAgIGZpZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCi0gICAgICAgICAg
ICAjIDQuMSAzOS4gcmV0dXJuIHRvIHRoZSAiRmllbGQiIHN0ZXAgYWJvdmUKLSAgICAgICAgcmV0
dXJuIGZpZWxkcwotCi0gICAgZGVmIF9yZWFkX25hbWUoc2VsZik6Ci0gICAgICAgICMgNC4xIDMz
LiBsZXQgL25hbWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgIG5hbWUgPSAnJwotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20g
dGhlIHNlcnZlcgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0gICAgICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAgICAgICAgICAgICAg
cmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAg
ICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKLSAg
ICAgICAgICAgIGVsaWYgY2ggPT0gJzonOiAgIyAweDNBCi0gICAgICAgICAgICAgICAgcmV0dXJu
IG5hbWUKLSAgICAgICAgICAgIGVsaWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIFJhbmdl
IDB4MzEgdG8gMHg1QQotICAgICAgICAgICAgICAgIGNoID0gY2hyKG9yZChjaCkgKyAweDIwKQot
ICAgICAgICAgICAgICAgIG5hbWUgKz0gY2gKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgbmFtZSArPSBjaAotCi0gICAgZGVmIF9za2lwX3NwYWNlcyhzZWxmKToKLSAgICAgICAg
IyA0LjEgMzUuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICB3aGlsZSBUcnVl
OgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAg
ICAgICAgICBpZiBjaCA9PSAnICc6ICAjIDB4MjAKLSAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgcmV0dXJuIGNoCi0KLSAgICBkZWYgX3JlYWRfdmFsdWUoc2VsZiwgY2gpOgot
ICAgICAgICAjIDQuMSAzMy4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAg
ICAgdmFsdWUgPSAnJwotICAgICAgICAjIDQuMSAzNi4gcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIu
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBE
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCi0gICAgICAgICAgICBlbGlmIGNoID09ICdc
bic6ICAjIDB4MEEKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciB2
YWx1ZSAlcicgJSB2YWx1ZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdmFs
dWUgKz0gY2gKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAx
KQotCi0KLWRlZiBfZ2V0X3Blcm1lc3NhZ2VfZGVmbGF0ZV9mcmFtZXIoZXh0ZW5zaW9uX3Jlc3Bv
bnNlKToKLSAgICAiIiJWYWxpZGF0ZSB0aGUgcmVzcG9uc2UgYW5kIHJldHVybiBhIGZyYW1lciBv
YmplY3QgdXNpbmcgdGhlIHBhcmFtZXRlcnMgaW4KLSAgICB0aGUgcmVzcG9uc2UuIFRoaXMgbWV0
aG9kIGRvZXNuJ3QgYWNjZXB0IHRoZSBzZXJ2ZXJfLiogcGFyYW1ldGVycy4KLSAgICAiIiIKLQot
ICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgY2xpZW50X25vX2NvbnRleHRf
dGFrZW92ZXIgPSBOb25lCi0KLSAgICBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUgPSAoCi0g
ICAgICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvci4KLSAgICAgICAg
ICAgICAgICAgICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXJfbmFtZSA9ICgKLSAgICAgICAgICAgIFBlck1lc3NhZ2VEZWZsYXRl
RXh0ZW5zaW9uUHJvY2Vzc29yLgotICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX05PX0NPTlRF
WFRfVEFLRU9WRVJfUEFSQU0pCi0KLSAgICAjIFdlIGRpZG4ndCBzZW5kIGFueSBzZXJ2ZXJfLiog
cGFyYW1ldGVyLgotICAgICMgSGFuZGxlIHRob3NlIHBhcmFtZXRlcnMgYXMgaW52YWxpZCBpZiBm
b3VuZCBpbiB0aGUgcmVzcG9uc2UuCi0KLSAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUg
aW4gZXh0ZW5zaW9uX3Jlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCk6Ci0gICAgICAgIGlmIHBhcmFt
X25hbWUgPT0gY2xpZW50X21heF93aW5kb3dfYml0c19uYW1lOgotICAgICAgICAgICAgaWYgY2xp
ZW50X21heF93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBD
bGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aXBsZSAl
cyBmb3VuZCcgJSBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUpCi0KLSAgICAgICAgICAgIHBh
cnNlZF92YWx1ZSA9IF9wYXJzZV93aW5kb3dfYml0cyhwYXJhbV92YWx1ZSkKLSAgICAgICAgICAg
IGlmIHBhcnNlZF92YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhh
bmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZCAlczogJXInICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWUsIHBhcmFt
X3ZhbHVlKSkKLSAgICAgICAgICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHMgPSBwYXJzZWRfdmFs
dWUKLSAgICAgICAgZWxpZiBwYXJhbV9uYW1lID09IGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
X25hbWU6Ci0gICAgICAgICAgICBpZiBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICdNdWx0aXBsZSAlcyBmb3VuZCcgJSBjbGllbnRfbm9fY29udGV4
dF90YWtlb3Zlcl9uYW1lKQotCi0gICAgICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdCYWQgJXM6IEhhcyB2YWx1ZSAlcicgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgKGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUsIHBhcmFtX3ZhbHVlKSkK
LSAgICAgICAgICAgIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyID0gVHJ1ZQotCi0gICAgaWYg
Y2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgaXMgTm9uZToKLSAgICAgICAgY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXIgPSBGYWxzZQotCi0gICAgcmV0dXJuIF9QZXJNZXNzYWdlRGVmbGF0ZUZy
YW1lcihjbGllbnRfbWF4X3dpbmRvd19iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLQotY2xhc3MgQ2xpZW50SGFu
ZHNoYWtlUHJvY2Vzc29yKENsaWVudEhhbmRzaGFrZUJhc2UpOgotICAgICIiIldlYlNvY2tldCBv
cGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yCi0gICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdl
YnNvY2tldHByb3RvY29sLTA2IGFuZCBsYXRlci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBzb2NrZXQsIG9wdGlvbnMpOgotICAgICAgICBzdXBlcihDbGllbnRIYW5kc2hha2VQ
cm9jZXNzb3IsIHNlbGYpLl9faW5pdF9fKCkKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2Nr
ZXQKLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiBoYW5kc2hha2Uoc2Vs
Zik6Ci0gICAgICAgICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZp
ZWQgc29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENsaWVudEhhbmRzaGFr
ZUVycm9yOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICByZXF1ZXN0
X2xpbmUgPSBfYnVpbGRfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgUmVxdWVz
dC1MaW5lOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2xpbmUpCi0g
ICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBmaWVs
ZHMgPSBbXQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSKQotICAgICAgICBmaWVsZHMuYXBw
ZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5vcmlnaW4g
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnByb3RvY29sX3ZlcnNp
b24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4OgotICAgICAgICAgICAgICAgIGZpZWxkcy5h
cHBlbmQoX29yaWdpbl9oZWFkZXIoCi0gICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX09SSUdJTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
b3JpZ2luKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmllbGRzLmFwcGVu
ZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lOX0hFQURFUiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLQotICAg
ICAgICBvcmlnaW5hbF9rZXkgPSBvcy51cmFuZG9tKDE2KQotICAgICAgICBzZWxmLl9rZXkgPSBi
YXNlNjQuYjY0ZW5jb2RlKG9yaWdpbmFsX2tleSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgJyVzOiAlciAoJXMpJywKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX0tFWV9IRUFERVIsCi0gICAgICAgICAgICBzZWxmLl9rZXksCi0gICAgICAgICAgICB1
dGlsLmhleGlmeShvcmlnaW5hbF9rZXkpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKAotICAgICAg
ICAgICAgJyVzOiAlc1xyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsIHNl
bGYuX2tleSkpCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRlciA+IDA6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMudmVyc2lvbl9oZWFkZXIpKQotICAgICAgICBlbGlmIHNl
bGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1vbi5WRVJTSU9OX0hZQkkwOCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBmaWVsZHMuYXBwZW5kKCclczogJWRcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9W
RVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUKSkKLQotICAgICAgICBleHRlbnNpb25zX3RvX3Jl
cXVlc3QgPSBbXQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZToKLSAg
ICAgICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdC5hcHBlbmQoCi0gICAgICAgICAgICAgICAg
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
KQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZToKLSAg
ICAgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAg
ICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICAgICAgIyBBY2NlcHQgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFt
ZXRlciBieSBkZWZhdWx0LgotICAgICAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoCi0g
ICAgICAgICAgICAgICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFN
LAotICAgICAgICAgICAgICAgICAgICBOb25lKQotICAgICAgICAgICAgZXh0ZW5zaW9uc190b19y
ZXF1ZXN0LmFwcGVuZChleHRlbnNpb24pCi0KLSAgICAgICAgaWYgbGVuKGV4dGVuc2lvbnNfdG9f
cmVxdWVzdCkgIT0gMDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoCi0gICAgICAgICAgICAg
ICAgJyVzOiAlc1xyXG4nICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRf
RVhURU5TSU9OU19IRUFERVIsCi0gICAgICAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5z
aW9ucyhleHRlbnNpb25zX3RvX3JlcXVlc3QpKSkKLQotICAgICAgICBmb3IgZmllbGQgaW4gZmll
bGRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0KLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnU2VudCBjbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2UgaGVhZGVyczogJXInLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmllbGRzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1N0YXJ0IHJlYWRpbmcgU3RhdHVzLUxpbmUnKQotCi0gICAgICAgIHN0YXR1c19saW5lID0gJycK
LSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQotICAgICAgICAgICAgc3RhdHVzX2xpbmUgKz0gY2gKLSAgICAgICAgICAg
IGlmIGNoID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBtID0gcmUu
bWF0Y2goJ0hUVFAvXFxkK1wuXFxkKyAoXFxkXFxkXFxkKSAuKlxyXG4nLCBzdGF0dXNfbGluZSkK
LSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoCi0gICAgICAgICAgICAgICAgJ1dyb25nIHN0YXR1cyBsaW5lIGZvcm1hdDogJXInICUg
c3RhdHVzX2xpbmUpCi0gICAgICAgIHN0YXR1c19jb2RlID0gbS5ncm91cCgxKQotICAgICAgICBp
ZiBzdGF0dXNfY29kZSAhPSAnMTAxJzoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
VW5leHBlY3RlZCBzdGF0dXMgY29kZSAlcyB3aXRoIGZvbGxvd2luZyAnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2hlYWRlcnM6ICVyJywgc3RhdHVzX2NvZGUsIHNlbGYuX3JlYWRf
ZmllbGRzKCkpCi0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyJyAl
IHN0YXR1c19jb2RlKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgdmFs
aWQgU3RhdHVzLUxpbmUnKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N0YXJ0IHJlYWRp
bmcgaGVhZGVycyB1bnRpbCB3ZSBzZWUgYW4gZW1wdHkgbGluZScpCi0KLSAgICAgICAgZmllbGRz
ID0gc2VsZi5fcmVhZF9maWVsZHMoKQotCi0gICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAg
ICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQg
TEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9yIGhlYWRlciAnCi0gICAg
ICAgICAgICAgICAgJ25hbWUgJXInICUgKGNoLCB2YWx1ZSwgbmFtZSkpCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhbiBlbXB0eSBsaW5lJykKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdTZXJ2ZXJcJ3Mgb3BlbmluZyBoYW5kc2hha2UgaGVhZGVyczogJXInLCBm
aWVsZHMpCi0KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAg
ICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsCi0gICAgICAgICAg
ICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSwKLSAgICAgICAgICAgIEZhbHNlKQotCi0g
ICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAot
ICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLAotICAgICAgICAgICAgY29tbW9u
LlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAg
YWNjZXB0ID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLCBjb21t
b24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgYmluYXJ5X2FjY2VwdCA9IGJhc2U2NC5iNjRkZWNvZGUo
YWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRl
ciAlczogJXInICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBU
X0hFQURFUiwgYWNjZXB0KSkKLQotICAgICAgICBpZiBsZW4oYmluYXJ5X2FjY2VwdCkgIT0gMjA6
Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAg
ICAnRGVjb2RlZCB2YWx1ZSBvZiAlcyBpcyBub3QgMjAtYnl0ZSBsb25nJyAlCi0gICAgICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUikKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnUmVzcG9uc2UgZm9yIGNoYWxsZW5nZSA6ICVy
ICglcyknLAotICAgICAgICAgICAgYWNjZXB0LCB1dGlsLmhleGlmeShiaW5hcnlfYWNjZXB0KSkK
LQotICAgICAgICBiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0ID0gdXRpbC5zaGExX2hhc2goCi0gICAg
ICAgICAgICBzZWxmLl9rZXkgKyBjb21tb24uV0VCU09DS0VUX0FDQ0VQVF9VVUlEKS5kaWdlc3Qo
KQotICAgICAgICBleHBlY3RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKGJpbmFyeV9leHBl
Y3RlZF9hY2NlcHQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
J0V4cGVjdGVkIHJlc3BvbnNlIGZvciBjaGFsbGVuZ2U6ICVyICglcyknLAotICAgICAgICAgICAg
ZXhwZWN0ZWRfYWNjZXB0LCB1dGlsLmhleGlmeShiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0KSkKLQot
ICAgICAgICBpZiBhY2NlcHQgIT0gZXhwZWN0ZWRfYWNjZXB0OgotICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0ludmFsaWQgJXMgaGVhZGVy
OiAlciAoZXhwZWN0ZWQ6ICVzKScgJQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNP
Q0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQsIGV4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAg
ZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0
ZV9hY2NlcHRlZCA9IEZhbHNlCi0KLSAgICAgICAgZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMu
Z2V0KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIu
bG93ZXIoKSkKLSAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgIGlmIGV4
dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lIGFuZCBsZW4oZXh0ZW5zaW9uc19oZWFkZXIpICE9
IDA6Ci0gICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVu
c2lvbnMoZXh0ZW5zaW9uc19oZWFkZXJbMF0pCi0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3Vw
cG9ydCB0aGUgbmV3IHN0eWxlIHBlcmZyYW1lIGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KLSAgICAg
ICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25zOgotICAgICAgICAgICAgZXh0
ZW5zaW9uX25hbWUgPSBleHRlbnNpb24ubmFtZSgpCi0gICAgICAgICAgICBpZiAoZXh0ZW5zaW9u
X25hbWUgPT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIGFuZAotICAgICAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSk6Ci0gICAgICAgICAgICAgICAgZGVmbGF0
ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBEZWZs
YXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICAgICAgICAgIHVu
dXNlZF9leHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lID0gcHJvY2Vz
c29yCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgKGV4dGVuc2lv
bl9uYW1lID09IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OIGFuZAotICAgICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlKToKLSAgICAg
ICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQgPSBUcnVlCi0KLSAgICAgICAg
ICAgICAgICBmcmFtZXIgPSBfZ2V0X3Blcm1lc3NhZ2VfZGVmbGF0ZV9mcmFtZXIoZXh0ZW5zaW9u
KQotICAgICAgICAgICAgICAgIGZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChU
cnVlKQotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0
ZSA9IGZyYW1lcgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIHJhaXNl
IENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGV4dGVu
c2lvbiAlcicgJSBleHRlbnNpb25fbmFtZSkKLQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy5k
ZWZsYXRlX2ZyYW1lIGFuZCBub3QgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCk6Ci0gICAgICAgICAg
ICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVk
ICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBpdCcgJQotICAgICAgICAgICAgICAgIGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51
c2VfcGVybWVzc2FnZV9kZWZsYXRlIGFuZAotICAgICAgICAgICAgbm90IHBlcm1lc3NhZ2VfZGVm
bGF0ZV9hY2NlcHRlZCk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCAlcywgYnV0IHRoZSBzZXJ2ZXIgcmVqZWN0
ZWQgaXQnICUKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9F
WFRFTlNJT04pCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogSGFuZGxlIFNlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogSGFuZGxlIENvb2tpZSwgZXRj
LgotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMChDbGllbnRIYW5kc2hh
a2VCYXNlKToKLSAgICAiIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZv
cgotICAgIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMCAoZXF1aXZhbGVu
dCB0bwotICAgIGRyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3RvY29sLTc2KS4KLSAgICAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQsIG9wdGlvbnMpOgotICAgICAgICBzdXBl
cihDbGllbnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAsIHNlbGYpLl9faW5pdF9fKCkKLQotICAg
ICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlv
bnMKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
LQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lIG9yCi0gICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgotICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgnSHlCaSAwMCBkb2VzblwndCBzdXBwb3J0IGV4dGVuc2lvbnMuJykKLSAg
ICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYpOgotICAgICAg
ICAiIiJQZXJmb3JtcyBvcGVuaW5nIGhhbmRzaGFrZSBvbiB0aGUgc3BlY2lmaWVkIHNvY2tldC4K
LQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDbGllbnRIYW5kc2hha2VFcnJvcjogaGFu
ZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyA0LjEgNS4gc2VuZCByZXF1
ZXN0IGxpbmUuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKF9idWlsZF9tZXRob2RfbGlu
ZShzZWxmLl9vcHRpb25zLnJlc291cmNlKSkKLSAgICAgICAgIyA0LjEgNi4gTGV0IC9maWVsZHMv
IGJlIGFuIGVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAg
ICAgIyA0LjEgNy4gQWRkIHRoZSBzdHJpbmcgIlVwZ3JhZGU6IFdlYlNvY2tldCIgdG8gL2ZpZWxk
cy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSX0hJWElFNzUpCi0gICAg
ICAgICMgNC4xIDguIEFkZCB0aGUgc3RyaW5nICJDb25uZWN0aW9uOiBVcGdyYWRlIiB0byAvZmll
bGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFERVIpCi0gICAgICAg
ICMgNC4xIDktMTIuIEFkZCBIb3N0OiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRz
LmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAgICAjIDQuMSAxMy4gQWRkIE9y
aWdpbjogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLm9y
aWdpbjoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAg
ICAgICAgICdTcGVjaWZ5IHRoZSBvcmlnaW4gb2YgdGhlIGNvbm5lY3Rpb24gYnkgLS1vcmlnaW4g
ZmxhZycpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoY29tbW9uLk9SSUdJ
Tl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5vcmlnaW4pKQotICAgICAgICAjIFRPRE86IDQuMSAxNCBBZGQgU2VjLVdlYlNvY2tldC1Q
cm90b2NvbDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgICMgVE9ETzogNC4xIDE1IEFkZCBj
b29raWUgaGVhZGVycyB0byAvZmllbGRzLy4KLQotICAgICAgICAjIDQuMSAxNi0yMy4gQWRkIFNl
Yy1XZWJTb2NrZXQtS2V5PG4+IHRvIC9maWVsZHMvLgotICAgICAgICBzZWxmLl9udW1iZXIxLCBr
ZXkxID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoKQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ051bWJlcjE6ICVkJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgZmllbGRz
LmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMV9IRUFERVIs
IGtleTEpKQotICAgICAgICBzZWxmLl9udW1iZXIyLCBrZXkyID0gc2VsZi5fZ2VuZXJhdGVfc2Vj
X3dlYnNvY2tldF9rZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjI6ICVk
Jywgc2VsZi5fbnVtYmVyMikKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAo
Y29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIsIGtleTIpKQotCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoJyVzOiAwXHJcbicgJSBjb21tb24uU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFERVIp
Ci0KLSAgICAgICAgIyA0LjEgMjQuIEZvciBlYWNoIHN0cmluZyBpbiAvZmllbGRzLywgaW4gYSBy
YW5kb20gb3JkZXI6IHNlbmQgdGhlCi0gICAgICAgICMgc3RyaW5nLCBlbmNvZGVkIGFzIFVURi04
LCBmb2xsb3dlZCBieSBhIFVURi04IGVuY29kZWQgVSswMDBEIENBUlJJQUdFCi0gICAgICAgICMg
UkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgotICAgICAgICBy
YW5kb20uc2h1ZmZsZShmaWVsZHMpCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAg
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKLSAgICAgICAgIyA0LjEgMjUuIHNl
bmQgYSBVVEYtOC1lbmNvZGVkIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gVSswMDBBIExJTkUgRkVF
RAotICAgICAgICAjIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgc2VsZi5fc29ja2V0
LnNlbmRhbGwoJ1xyXG4nKQotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmlu
ZyBjb25zaXN0aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFs
ZW50bHksIGEgcmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9y
ZGVyKS4KLSAgICAgICAgc2VsZi5fa2V5MyA9IHNlbGYuX2dlbmVyYXRlX2tleTMoKQotICAgICAg
ICAjIDQuMSAyNy4gc2VuZCAva2V5My8gdG8gdGhlIHNlcnZlci4KLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoc2VsZi5fa2V5MykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ0tleTM6ICVyICglcyknLCBzZWxmLl9rZXkzLCB1dGlsLmhleGlmeShzZWxmLl9r
ZXkzKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBoYW5kc2hha2UnKQotCi0g
ICAgICAgICMgNC4xIDI4LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIg
dGhlIGNvbm5lY3Rpb24KLSAgICAgICAgIyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQu
IGxldCAvZmllbGQvIGJlIHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcKLSAgICAgICAgIyB0aGUgMHgw
QSBieXRlcy4KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAg
ICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBm
aWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAjIGlmIC9maWVsZC8gaXMgbm90IGF0IGxlYXN0IHNldmVuIGJ5dGVzIGxv
bmcsIG9yIGlmIHRoZSBsYXN0Ci0gICAgICAgICMgdHdvIGJ5dGVzIGFyZW4ndCAweDBEIGFuZCAw
eDBBIHJlc3BlY3RpdmVseSwgb3IgaWYgaXQgZG9lcyBub3QKLSAgICAgICAgIyBjb250YWluIGF0
IGxlYXN0IHR3byAweDIwIGJ5dGVzLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9u
Ci0gICAgICAgICMgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBsZW4oZmllbGQp
IDwgNyBvciBub3QgZmllbGQuZW5kc3dpdGgoJ1xyXG4nKToKLSAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAg
ICAgIG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAgICAgICBpZiBt
IGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAnTm8gSFRUUCBzdGF0dXMgY29kZSBmb3VuZCBpbiBzdGF0dXMgbGluZTogJXIn
ICUgZmllbGQpCi0gICAgICAgICMgNC4xIDI5LiBsZXQgL2NvZGUvIGJlIHRoZSBzdWJzdHJpbmcg
b2YgL2ZpZWxkLyB0aGF0IHN0YXJ0cyBmcm9tIHRoZQotICAgICAgICAjIGJ5dGUgYWZ0ZXIgdGhl
IGZpcnN0IDB4MjAgYnl0ZSwgYW5kIGVuZHMgd2l0aCB0aGUgYnl0ZSBiZWZvcmUgdGhlCi0gICAg
ICAgICMgc2Vjb25kIDB4MjAgYnl0ZS4KLSAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAg
ICAgIyA0LjEgMzAuIGlmIC9jb2RlLyBpcyBub3QgdGhyZWUgYnl0ZXMgbG9uZywgb3IgaWYgYW55
IG9mIHRoZSBieXRlcyBpbgotICAgICAgICAjIC9jb2RlLyBhcmUgbm90IGluIHRoZSByYW5nZSAw
eDMwIHRvIDB4OTAsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0Ci0gICAgICAgICMgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaCgnWzAtOV1b
MC05XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJv
cigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29kZSAlciBpcyBub3QgdGhyZWUgZGln
aXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNvZGUsIGZpZWxkKSkK
LSAgICAgICAgIyA0LjEgMzEuIGlmIC9jb2RlLywgaW50ZXJwcmV0ZWQgYXMgVVRGLTgsIGlzICIx
MDEiLCB0aGVuIG1vdmUgdG8gdGhlCi0gICAgICAgICMgbmV4dCBzdGVwLgotICAgICAgICBpZiBj
b2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAl
ciBpbiBzdGF0dXMgbGluZTogJwotICAgICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQp
KQotICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRzLwotICAgICAg
ICBmaWVsZHMgPSBzZWxmLl9yZWFkX2ZpZWxkcygpCi0gICAgICAgICMgNC4xIDQwLiBfRmllbGRz
IHByb2Nlc3NpbmdfCi0gICAgICAgICMgcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIKLSAgICAgICAg
Y2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdc
bic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKCdFeHBl
Y3RlZCBMRiBidXQgZm91bmQgJXInICUgY2gpCi0gICAgICAgICMgNC4xIDQxLiBjaGVjayAvZmll
bGRzLwotICAgICAgICAjIFRPRE8odWthaSk6IHByb3RvY29sCi0gICAgICAgICMgaWYgdGhlIGVu
dHJ5J3MgbmFtZSBpcyAidXBncmFkZSIKLSAgICAgICAgIyAgaWYgdGhlIHZhbHVlIGlzIG5vdCBl
eGFjdGx5IGVxdWFsIHRvIHRoZSBzdHJpbmcgIldlYlNvY2tldCIsCi0gICAgICAgICMgIHRoZW4g
ZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAg
ICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAg
ICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5XRUJT
T0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUsCi0gICAgICAgICAgICBUcnVlKQotICAgICAgICAj
IGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgImNvbm5lY3Rpb24iCi0gICAgICAgICMgIGlmIHRoZSB2
YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgaXMgbm90IGV4YWN0bHkgZXF1YWwK
LSAgICAgICAgIyAgdG8gdGhlIHN0cmluZyAidXBncmFkZSIsIHRoZW4gZmFpbCB0aGUgV2ViU29j
a2V0IGNvbm5lY3Rpb24gYW5kCi0gICAgICAgICMgIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAg
ICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAgICAg
ICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5VUEdS
QURFX0NPTk5FQ1RJT05fVFlQRSwKLSAgICAgICAgICAgIEZhbHNlKQotCi0gICAgICAgIG9yaWdp
biA9IF9nZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywgY29tbW9uLlNF
Q19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUikKLQotICAgICAgICBsb2NhdGlvbiA9IF9nZXRfbWFu
ZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywgY29tbW9uLlNFQ19XRUJTT0NLRVRf
TE9DQVRJT05fSEVBREVSKQotCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBs
b2NhdGlvbiwgY29va2llLCAuLgotCi0gICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8g
YmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL251bWJlcl8xLywKLSAgICAgICAgIyBleHByZXNzZWQg
YXMgYSBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKLSAg
ICAgICAgIyBhcyBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVz
IG9mIC9rZXlfMy8gaW4gdGhlCi0gICAgICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhl
IHdpcmUuCi0gICAgICAgIGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJl
cjEpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIy
KQotICAgICAgICBjaGFsbGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0
aWwuaGV4aWZ5KGNoYWxsZW5nZSkpCi0KLSAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQv
IGJlIHRoZSBNRDUgZmluZ2VycHJpbnQgb2YgL2NoYWxsZW5nZS8gYXMgYQotICAgICAgICAjIGJp
Zy1lbmRpYW4gMTI4IGJpdCBzdHJpbmcuCi0gICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFz
aChjaGFsbGVuZ2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdFeHBlY3RlZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAotICAgICAgICAg
ICAgZXhwZWN0ZWQsIHV0aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQotICAgICAgICAjIDQuMSA0NC4g
cmVhZCBzaXh0ZWVuIGJ5dGVzIGZyb20gdGhlIHNlcnZlci4KLSAgICAgICAgIyBsZXQgL3JlcGx5
LyBiZSB0aG9zZSBieXRlcy4KLSAgICAgICAgcmVwbHkgPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9z
b2NrZXQsIDE2KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQWN0
dWFsIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsIHJlcGx5LCB1dGlsLmhleGlmeShyZXBs
eSkpCi0KLSAgICAgICAgIyA0LjEgNDUuIGlmIC9yZXBseS8gZG9lcyBub3QgZXhhY3RseSBlcXVh
bCAvZXhwZWN0ZWQvLCB0aGVuIGZhaWwKLSAgICAgICAgIyB0aGUgV2ViU29ja2V0IGNvbm5lY3Rp
b24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBleHBlY3RlZCAhPSByZXBseToK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoZXhwZWN0ZWQpICE9ICVyIChhY3R1YWwpJyAl
Ci0gICAgICAgICAgICAgICAgKGV4cGVjdGVkLCByZXBseSkpCi0gICAgICAgICMgNC4xIDQ2LiBU
aGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkKi4KLQotICAgIGRlZiBfZ2Vu
ZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2VsZik6Ci0gICAgICAgICMgNC4xIDE2LiBsZXQgL3Nw
YWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMSB0byAxMiBpbmNsdXNpdmUuCi0gICAg
ICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICAjIDQuMSAxNy4gbGV0
IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50ZWdlciBub3QgZ3JlYXRlciB0aGFuCi0gICAgICAg
ICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBieSAvc3BhY2VzX24vLgotICAgICAgICBtYXhudW0g
PSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCi0gICAgICAgICMgNC4xIDE4LiBsZXQgL251bWJlcl9uLyBi
ZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byAvbWF4X24vCi0gICAgICAgICMgaW5jbHVzaXZl
LgotICAgICAgICBudW1iZXIgPSByYW5kb20ucmFuZGludCgwLCBtYXhudW0pCi0gICAgICAgICMg
NC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUgdGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyAvbnVt
YmVyX24vIGFuZAotICAgICAgICAjIC9zcGFjZXNfbi8gdG9nZXRoZXIuCi0gICAgICAgIHByb2R1
Y3QgPSBudW1iZXIgKiBzcGFjZXMKLSAgICAgICAgIyA0LjEgMjAuIGxldCAva2V5X24vIGJlIGEg
c3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1Y3Rfbi8sIGV4cHJlc3NlZAotICAgICAgICAjIGlu
IGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFscyBpbiB0aGUgcmFuZ2UgVSswMDMwIERJR0lUIFpF
Uk8gKDApIHRvCi0gICAgICAgICMgVSswMDM5IERJR0lUIE5JTkUgKDkpLgotICAgICAgICBrZXkg
PSBzdHIocHJvZHVjdCkKLSAgICAgICAgIyA0LjEgMjEuIGluc2VydCBiZXR3ZWVuIG9uZSBhbmQg
dHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZyb20gdGhlCi0gICAgICAgICMgcmFuZ2UgVSswMDIx
IHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUrMDA3RSBpbnRvIC9rZXlfbi8gYXQgcmFuZG9tCi0g
ICAgICAgICMgcG9zaXRpb25zLgotICAgICAgICBhdmFpbGFibGVfY2hhcnMgPSByYW5nZSgweDIx
LCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAweDdlICsgMSkKLSAgICAgICAgbiA9IHJhbmRvbS5y
YW5kaW50KDEsIDEyKQotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uobik6Ci0gICAgICAgICAgICBj
aCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxlX2NoYXJzKQotICAgICAgICAgICAgcG9zID0gcmFu
ZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsg
Y2hyKGNoKSArIGtleVtwb3M6XQotICAgICAgICAjIDQuMSAyMi4gaW5zZXJ0IC9zcGFjZXNfbi8g
VSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50byAva2V5X24vIGF0Ci0gICAgICAgICMgcmFuZG9t
IHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc3RyaW5nLgotICAgICAg
ICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5k
aW50KDEsIGxlbihrZXkpIC0gMSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyAnICcg
KyBrZXlbcG9zOl0KLSAgICAgICAgcmV0dXJuIG51bWJlciwga2V5Ci0KLSAgICBkZWYgX2dlbmVy
YXRlX2tleTMoc2VsZik6Ci0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5n
IGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxl
bnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3Jk
ZXIpLgotICAgICAgICByZXR1cm4gJycuam9pbihbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkp
IGZvciBfIGluIHhyYW5nZSg4KV0pCi0KLQotY2xhc3MgQ2xpZW50Q29ubmVjdGlvbihvYmplY3Qp
OgotICAgICIiIkEgd3JhcHBlciBmb3Igc29ja2V0IG9iamVjdCB0byBwcm92aWRlIHRoZSBtcF9j
b25uIGludGVyZmFjZS4KLSAgICBtb2RfcHl3ZWJzb2NrZXQgbGlicmFyeSBpcyBkZXNpZ25lZCB0
byBiZSB3b3JraW5nIG9uIEFwYWNoZSBtb2RfcHl0aG9uJ3MKLSAgICBtcF9jb25uIG9iamVjdC4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxm
Ll9zb2NrZXQgPSBzb2NrZXQKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoZGF0YSkKLQotICAgIGRlZiByZWFkKHNlbGYsIG4pOgotICAg
ICAgICByZXR1cm4gc2VsZi5fc29ja2V0LnJlY3YobikKLQotICAgIGRlZiBnZXRfcmVtb3RlX2Fk
ZHIoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXQuZ2V0cGVlcm5hbWUoKQotICAg
IHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRyKQotCi0KLWNsYXNzIENsaWVu
dFJlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJBIHdyYXBwZXIgY2xhc3MganVzdCB0byBtYWtlIGl0
IGFibGUgdG8gcGFzcyBhIHNvY2tldCBvYmplY3QgdG8KLSAgICBmdW5jdGlvbnMgdGhhdCBleHBl
Y3QgYSBtcF9yZXF1ZXN0IG9iamVjdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBzb2NrZXQpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIo
c2VsZikKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLSAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gQ2xpZW50Q29ubmVjdGlvbihzb2NrZXQpCi0KLQotZGVmIF9pbXBvcnRfc3NsKCk6
Ci0gICAgZ2xvYmFsIHNzbAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IHNzbAotICAgICAgICBy
ZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLQotZGVmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgZ2xvYmFsIE9wZW5TU0wKLSAgICB0
cnk6Ci0gICAgICAgIGltcG9ydCBPcGVuU1NMLlNTTAotICAgICAgICByZXR1cm4gVHJ1ZQotICAg
IGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgRWNo
b0NsaWVudChvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBlY2hvIGNsaWVudC4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9w
dGlvbnMKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAg
ICAgICAgIiIiUnVuIHRoZSBjbGllbnQuCi0KLSAgICAgICAgU2hha2UgaGFuZHMgYW5kIHRoZW4g
cmVwZWF0IHNlbmRpbmcgbWVzc2FnZSBhbmQgcmVjZWl2aW5nIGl0cyBlY2hvLgotICAgICAgICAi
IiIKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgc2Vs
Zi5fc29ja2V0LnNldHRpbWVvdXQoc2VsZi5fb3B0aW9ucy5zb2NrZXRfdGltZW91dCkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNvbm5lY3QoKHNlbGYuX29wdGlvbnMu
c2VydmVyX2hvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5zZXJ2ZXJfcG9ydCkpCi0gICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV90bHM6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0ID0gX1RMU1NvY2tldCgKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fc29ja2V0LAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnRsc19tb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudGxzX3ZlcnNp
b24sCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzYWJsZV90bHNfY29tcHJl
c3Npb24pCi0KLSAgICAgICAgICAgIHZlcnNpb24gPSBzZWxmLl9vcHRpb25zLnByb3RvY29sX3Zl
cnNpb24KLQotICAgICAgICAgICAgaWYgKHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlC
STA4IG9yCi0gICAgICAgICAgICAgICAgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MTMpOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVBy
b2Nlc3NvcigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25z
KQotICAgICAgICAgICAgZWxpZiB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwMDoK
LSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBDbGllbnRIYW5kc2hha2VQcm9jZXNz
b3JIeWJpMDAoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldCwgc2VsZi5fb3B0aW9u
cykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS1wcm90b2NvbC12ZXJzaW9uIGZsYWc6ICVy
JyAlIHZlcnNpb24pCi0KLSAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2UoKQot
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVjdGlvbiBlc3RhYmxpc2hlZCcp
Ci0KLSAgICAgICAgICAgIHJlcXVlc3QgPSBDbGllbnRSZXF1ZXN0KHNlbGYuX3NvY2tldCkKLQot
ICAgICAgICAgICAgdmVyc2lvbl9tYXAgPSB7Ci0gICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZF
UlNJT05fSFlCSTA4OiBjb21tb24uVkVSU0lPTl9IWUJJMDgsCi0gICAgICAgICAgICAgICAgX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTEzOiBjb21tb24uVkVSU0lPTl9IWUJJMTMsCi0gICAgICAgICAg
ICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOiBjb21tb24uVkVSU0lPTl9IWUJJMDB9Ci0g
ICAgICAgICAgICByZXF1ZXN0LndzX3ZlcnNpb24gPSB2ZXJzaW9uX21hcFt2ZXJzaW9uXQotCi0g
ICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggb3IKLSAg
ICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyk6Ci0gICAg
ICAgICAgICAgICAgc3RyZWFtX29wdGlvbiA9IFN0cmVhbU9wdGlvbnMoKQotICAgICAgICAgICAg
ICAgIHN0cmVhbV9vcHRpb24ubWFza19zZW5kID0gVHJ1ZQotICAgICAgICAgICAgICAgIHN0cmVh
bV9vcHRpb24udW5tYXNrX3JlY2VpdmUgPSBGYWxzZQotCi0gICAgICAgICAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lIGlzIG5vdCBGYWxzZToKLSAgICAgICAgICAgICAgICAg
ICAgcHJvY2Vzc29yID0gc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lCi0gICAgICAgICAgICAg
ICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9uKQotCi0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlIGlz
IG5vdCBGYWxzZToKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVyID0gc2VsZi5fb3B0aW9ucy51
c2VfcGVybWVzc2FnZV9kZWZsYXRlCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lci5zZXR1cF9z
dHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9uKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fc3Ry
ZWFtID0gU3RyZWFtKHJlcXVlc3QsIHN0cmVhbV9vcHRpb24pCi0gICAgICAgICAgICBlbGlmIHZl
cnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgotICAgICAgICAgICAgICAgIHNlbGYu
X3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxdWVzdCwgVHJ1ZSkKLQotICAgICAgICAgICAgZm9y
IGxpbmUgaW4gc2VsZi5fb3B0aW9ucy5tZXNzYWdlLnNwbGl0KCcsJyk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lKQotICAgICAgICAgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1NlbmQ6ICVz
JyAlIGxpbmUKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJlY2Vp
dmVkID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLSAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQgJ1JlY3Y6ICVzJyAlIHJlY2VpdmVkCi0gICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biwgZToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0Vycm9yOiAlcycgJSBlCi0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlCi0KLSAgICAgICAgICAgIHNlbGYuX2RvX2Nsb3NpbmdfaGFuZHNoYWtlKCkK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCi0KLSAg
ICBkZWYgX2RvX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtIGNs
b3NpbmcgaGFuZHNoYWtlIHVzaW5nIHRoZSBzcGVjaWZpZWQgY2xvc2luZyBmcmFtZS4iIiIKLQot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKVstMV0gPT0gX0dPT0RC
WUVfTUVTU0FHRToKLSAgICAgICAgICAgICMgcmVxdWVzdGVkIHNlcnZlciBpbml0aWF0ZWQgY2xv
c2luZyBoYW5kc2hha2UsIHNvCi0gICAgICAgICAgICAjIGV4cGVjdGluZyBjbG9zaW5nIGhhbmRz
aGFrZSBtZXNzYWdlIGZyb20gc2VydmVyLgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J1dhaXQgZm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAg
ICAgbWVzc2FnZSA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAg
aWYgbWVzc2FnZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHByaW50ICdSZWN2IGNsb3NlJwot
ICAgICAgICAgICAgICAgIHByaW50ICdTZW5kIGFjaycKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsb3NpbmcgaGFuZHNo
YWtlIGFuZCBzZW50IGFjaycpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHByaW50
ICdTZW5kIGNsb3NlJwotICAgICAgICBzZWxmLl9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAg
ICAgcHJpbnQgJ1JlY3YgYWNrJwotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnUmVjZWl2ZWQg
YWNrJykKLQotCi1kZWYgbWFpbigpOgotICAgIHN5cy5zdGRvdXQgPSBjb2RlY3MuZ2V0d3JpdGVy
KCd1dGYtOCcpKHN5cy5zdGRvdXQpCi0KLSAgICBwYXJzZXIgPSBPcHRpb25QYXJzZXIoKQotICAg
ICMgV2UgYWNjZXB0IC0tY29tbWFuZF9saW5lX2ZsYWcgc3R5bGUgZmxhZ3Mgd2hpY2ggaXMgdGhl
IHNhbWUgYXMgR29vZ2xlCi0gICAgIyBnZmxhZ3MgaW4gYWRkaXRpb24gdG8gY29tbW9uIC0tY29t
bWFuZC1saW5lLWZsYWcgc3R5bGUgZmxhZ3MuCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywg
Jy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nc2VydmVyX2hvc3QnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9J2xvY2FsaG9zdCcsIGhlbHA9J3NlcnZlciBob3N0JykKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLXAnLCAnLS1zZXJ2ZXItcG9ydCcsICctLXNlcnZlcl9wb3J0JywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfcG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1fVU5ERUZJTkVEX1BPUlQsIGhlbHA9J3NlcnZlciBwb3J0JykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLW8nLCAnLS1vcmlnaW4nLCBkZXN0PSdvcmlnaW4nLCB0
eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0n
b3JpZ2luJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXInLCAnLS1yZXNvdXJjZScsIGRlc3Q9
J3Jlc291cmNlJywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PScvZWNobycsIGhlbHA9J3Jlc291cmNlIHBhdGgnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
bScsICctLW1lc3NhZ2UnLCBkZXN0PSdtZXNzYWdlJywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnY29tbWEtc2VwYXJhdGVkIG1lc3NhZ2VzIHRvIHNlbmQuICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICclcyB3aWxsIGZvcmNlIGNsb3NlIHRoZSBjb25u
ZWN0aW9uIGZyb20gc2VydmVyLicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9HT09E
QllFX01FU1NBR0UpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcScsICctLXF1aWV0JywgZGVz
dD0ndmVyYm9zZScsIGFjdGlvbj0nc3RvcmVfZmFsc2UnLAotICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9VHJ1ZSwgaGVscD0nc3VwcHJlc3MgbWVzc2FnZXMnKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdz
czovLykuIEJ5IGRlZmF1bHQsICcKLSAgICAgICAgICAgICAgICAgICAgICAnaXQgbG9va3MgZm9y
IHNzbCBhbmQgcHlPcGVuU1NMIG1vZHVsZSBhbmQgdXNlcyBmb3VuZCAnCi0gICAgICAgICAgICAg
ICAgICAgICAgJ29uZS4gVXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gdG8gc3BlY2lmeSB3aGljaCBt
b2R1bGUgJwotICAgICAgICAgICAgICAgICAgICAgICd0byB1c2UnKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNfbW9kdWxlJywgZGVzdD0ndGxzX21vZHVsZScs
Ci0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBjaG9pY2VzPVtfVExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0xd
LAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSBzc2wgbW9kdWxlIGlmICIlcyIgaXMg
c3BlY2lmaWVkLiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ1VzZSBweU9wZW5TU0wgbW9kdWxl
IGlmICIlcyIgaXMgc3BlY2lmaWVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgKF9UTFNfQllf
U1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTCkpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy0tdGxzLXZlcnNpb24nLCAnLS10bHNfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0ndGxzX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3N0cmlu
ZycsIGRlZmF1bHQ9X1RMU19WRVJTSU9OX1NTTDIzLAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J1RMUy9TU0wgdmVyc2lvbiB0byB1c2UuIE9uZSBvZiBcJycgKwotICAgICAgICAgICAgICAg
ICAgICAgIF9UTFNfVkVSU0lPTl9TU0wyMyArICdcJyAoU1NMIHZlcnNpb24gMiBvciAzKSwgXCcn
ICsKLSAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fU1NMMyArICdcJyAoU1NMIHZl
cnNpb24gMyksIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1RMU19WRVJTSU9OX1RMUzEg
KyAnXCcgKFRMUyB2ZXJzaW9uIDEpJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kaXNhYmxl
LXRscy1jb21wcmVzc2lvbicsICctLWRpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdkaXNhYmxlX3Rsc19jb21wcmVzc2lvbicsCi0gICAgICAgICAg
ICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdEaXNhYmxlIFRMUyBjb21wcmVzc2lvbi4gQXZhaWxhYmxlIG9u
bHkgd2hlbiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ3B5T3BlblNTTCBtb2R1bGUgaXMgdXNl
ZC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctaycsICctLXNvY2tldC10aW1lb3V0JywgJy0t
c29ja2V0X3RpbWVvdXQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NvY2tldF90aW1l
b3V0JywgdHlwZT0naW50JywgZGVmYXVsdD1fVElNRU9VVF9TRUMsCi0gICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nVGltZW91dChzZWMpIGZvciBzb2NrZXRzJykKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLS1kcmFmdDc1JywgZGVzdD0nZHJhZnQ3NScsCi0gICAgICAgICAgICAgICAgICAgICAg
YWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSdPYnNvbGV0ZSBvcHRpb24uIERvblwndCB1c2UgdGhpcy4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLXByb3RvY29sLXZlcnNpb24nLCAnLS1wcm90b2NvbF92ZXJzaW9uJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSdwcm90b2NvbF92ZXJzaW9uJywKLSAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPSdzdHJpbmcnLCBkZWZhdWx0PV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkx
MywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lv
biB0byB1c2UuIE9uZSBvZiBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9W
RVJTSU9OX0hZQkkxMyArICdcJywgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9D
T0xfVkVSU0lPTl9IWUJJMDggKyAnXCcsIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTAwICsgJ1wnJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS12
ZXJzaW9uLWhlYWRlcicsICctLXZlcnNpb25faGVhZGVyJywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSd2ZXJzaW9uX2hlYWRlcicsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50
JywgZGVmYXVsdD0tMSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTcGVjaWZ5IFNlYy1X
ZWJTb2NrZXQtVmVyc2lvbiBoZWFkZXIgdmFsdWUnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWRlZmxhdGUtZnJhbWUnLCAnLS1kZWZsYXRlX2ZyYW1lJywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSdkZWZsYXRlX2ZyYW1lJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0
b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1Vz
ZSB0aGUgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LS11c2UtcGVybWVzc2FnZS1kZWZsYXRlJywgJy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZScsCi0g
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2UgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRl
bnNpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2
ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZl
bCcsIGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1
ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InLCAnY3JpdGljYWwnXSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdMb2cgbGV2ZWwuJykKLQotICAgIChvcHRpb25zLCB1bnVzZWRfYXJncykg
PSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGxldmVsPWxv
Z2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpKQotCi0gICAgaWYg
b3B0aW9ucy5kcmFmdDc1OgotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCctLWRyYWZ0NzUgb3B0
aW9uIGlzIG9ic29sZXRlLicpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBvcHRpb25z
LnByb3RvY29sX3ZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3NToKLSAgICAgICAg
bG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICdWYWx1ZSAlcyBpcyBvYnNvbGV0ZSBmb3Ig
LS1wcm90b2NvbF92ZXJzaW9uIG9wdGlvbnMnICUKLSAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJT
SU9OX0hJWElFNzUpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBvcHRpb25zLnVzZV90
bHM6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBpcyBOb25lOgotICAgICAgICAgICAg
aWYgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUgPSBf
VExTX0JZX1NUQU5EQVJEX01PRFVMRQotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1Vz
aW5nIHNzbCBtb2R1bGUnKQotICAgICAgICAgICAgZWxpZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgot
ICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfUFlPUEVOU1NMCi0g
ICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgcHlPcGVuU1NMIG1vZHVsZScpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnVExTIHN1cHBvcnQgcmVxdWlyZXMgc3NsIG9yIHB5T3BlblNT
TCBtb2R1bGUuJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9w
dGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAgICAg
IGlmIG5vdCBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwo
J3NzbCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQo
MSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9QWU9QRU5TU0w6
Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAgICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKCdweU9wZW5TU0wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQot
ICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBs
b2dnaW5nLmNyaXRpY2FsKCdJbnZhbGlkIC0tdGxzLW1vZHVsZSBvcHRpb246ICVyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlKQotICAgICAgICAgICAg
c3lzLmV4aXQoMSkKLQotICAgICAgICBpZiAob3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lv
biBhbmQKLSAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSAhPSBfVExTX0JZX1BZT1BFTlNT
TCk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdZb3UgY2FuIGRpc2FibGUgVExTIGNv
bXByZXNzaW9uIG9ubHkgd2hlbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdweU9w
ZW5TU0wgbW9kdWxlIGlzIHVzZWQuJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgZWxz
ZToKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0b2dldGhl
ciB3aXRoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tdXNlLXRscyBvcHRpb24u
JykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy5kaXNhYmxl
X3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1VzZSAtLWRp
c2FibGUtdGxzLWNvbXByZXNzaW9uIG9ubHkgdG9nZXRoZXIgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnd2l0aCAtLXVzZS10bHMgb3B0aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhp
dCgxKQotCi0gICAgIyBEZWZhdWx0IHBvcnQgbnVtYmVyIGRlcGVuZHMgb24gd2hldGhlciBUTFMg
aXMgdXNlZC4KLSAgICBpZiBvcHRpb25zLnNlcnZlcl9wb3J0ID09IF9VTkRFRklORURfUE9SVDoK
LSAgICAgICAgaWYgb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJf
cG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG9wdGlvbnMuc2VydmVyX3BvcnQgPSBjb21tb24uREVGQVVMVF9XRUJf
U09DS0VUX1BPUlQKLQotICAgICMgb3B0cGFyc2UgZG9lc24ndCBzZWVtIHRvIGhhbmRsZSBub24t
YXNjaWkgZGVmYXVsdCB2YWx1ZXMuCi0gICAgIyBTZXQgZGVmYXVsdCBtZXNzYWdlIGhlcmUuCi0g
ICAgaWYgbm90IG9wdGlvbnMubWVzc2FnZToKLSAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gdSdI
ZWxsbyxcdTY1ZTVcdTY3MmMnICAgIyAiSmFwYW4iIGluIEphcGFuZXNlCi0KLSAgICBFY2hvQ2xp
ZW50KG9wdGlvbnMpLnJ1bigpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBt
YWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvZWNob19ub2V4dF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGY1MTUxMjI3MTExZTExNDQyNGM1NTg2
YTE0MmE5YWRiN2Q2MDRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw2MSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1fR09PREJZRV9NRVNTQUdFID0g
dSdHb29kYnllJwotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICAiIiJSZWNlaXZlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIHZhbHVl
IGlzIHBhcnNlZCBpbnRvCi0gICAgcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucy4gcHl3
ZWJzb2NrZXQgY3JlYXRlcyBleHRlbnNpb24KLSAgICBwcm9jZXNzb3JzIHVzaW5nIGl0IGJlZm9y
ZSBkb19leHRyYV9oYW5kc2hha2UgY2FsbCBhbmQgbmV2ZXIgbG9va3MgYXQgaXQKLSAgICBhZnRl
ciB0aGUgY2FsbC4KLQotICAgIFRvIHJlamVjdCByZXF1ZXN0ZWQgZXh0ZW5zaW9ucywgY2xlYXIg
dGhlIHByb2Nlc3NvciBsaXN0LgotICAgICIiIgotCi0gICAgcmVxdWVzdC53c19leHRlbnNpb25f
cHJvY2Vzc29ycyA9IFtdCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKLSAgICAiIiJFY2hvLiBTYW1lIGFzIGVjaG9fd3NoLnB5LiIiIgotCi0gICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0g
ICAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBp
c2luc3RhbmNlKGxpbmUsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1GYWxzZSkKLSAgICAgICAgICAgIGlmIGxpbmUgPT0g
X0dPT0RCWUVfTUVTU0FHRToKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9
VHJ1ZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvZWNob193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzODY0NmMzMmNlYjUxNWYxNWRkNTcyNjIyNjg5Yzc5ZWU2MWU1
NDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvZWNob193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi1fR09PREJZRV9NRVNTQUdFID0gdSdHb29kYnllJwotCi0KLWRl
ZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFRoaXMgZXhh
bXBsZSBoYW5kbGVyIGFjY2VwdHMgYW55IHJlcXVlc3QuIFNlZSBvcmlnaW5fY2hlY2tfd3NoLnB5
IGZvciBob3cKLSAgICAjIHRvIHJlamVjdCBhY2Nlc3MgZnJvbSB1bnRydXN0ZWQgc2NyaXB0cyBi
YXNlZCBvbiBvcmlnaW4gdmFsdWUuCi0KLSAgICBwYXNzICAjIEFsd2F5cyBhY2NlcHQuCi0KLQot
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICB3aGlsZSBUcnVlOgot
ICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAg
ICAgaWYgbGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlzaW5z
dGFuY2UobGluZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5k
X21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNlKQotICAgICAgICAgICAgaWYgbGluZSA9PSBfR09P
REJZRV9NRVNTQUdFOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVl
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9l
dmVudHNvdXJjZS5jZ2kgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNlLmNnaQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRkZGYyMzdjZjdkNDc2NDk3MzQ3ZDA5NWExMjI5OTQx
NzdlMTQwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNlLmNnaQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICsw
LDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMg
Q0dJIHNjcmlwdCBnZW5lcmF0ZXMgdGV4dC9ldmVudC1zdHJlYW0gdHlwZSBkYXRhIHN0cmVhbSBm
b3IgdGVzdGluZwotdGhlIFNlcnZlci1TZW50IEV2ZW50cy4KLQotSXQgd2lsbCBvbmx5IHdvcmsg
Y29ycmVjdGx5IHdpdGggSFRUUCBzZXJ2ZXJzIHRoYXQgZG8gbm90IGJ1ZmZlciB0aGUgb3V0cHV0
IG9mCi1DR0kgc2NyaXB0cy4KLSIiIgotCi0KLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi0KLXN5
cy5zdGRvdXQud3JpdGUoJ0NvbnRlbnQtdHlwZTogdGV4dC9ldmVudC1zdHJlYW1cclxuXHJcbicp
Ci0KLWlkID0gMAotCi13aGlsZSBUcnVlOgotICBzeXMuc3Rkb3V0LndyaXRlKCdkYXRhOiBIZWxs
b1xyXG5pZDogJWRcclxuXHJcbicgJSBpZCkKLSAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgaWQg
PSBpZCArIDEKLQotICB0aW1lLnNsZWVwKDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2V2ZW50c291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OThhODgwN2QxZmZjY2VjZjU4NWYxYmI2NTZm
ZDJkOTAyZmNkMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzQgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRz
IHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTwhLS0KLVNpbXBs
ZSBleGFtcGxlIG9mIHRoZSBTZXJ2ZXItU2VudCBFdmVudHMKLWh0dHA6Ly9kZXYudzMub3JnL2h0
bWw1L2V2ZW50c291cmNlLwotCi1Gb3IgY29tcGFyaXNvbiB3aXRoIHRoZSBXZWJTb2NrZXQgUHJv
dG9jb2wgJiBBUEkuCi0KLVJ1biB0aGUgcHl3ZWJzb2NrZXQgd2l0aCB0aGUgLS1jZ2lfcGF0aCBw
YXJhbWV0ZXIuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TZXJ2ZXItU2VudCBFdmVu
dHMgRXhhbXBsZTwvdGl0bGU+Ci08c2NyaXB0PgotdmFyIGV2ZW50U291cmNlID0gbnVsbDsKLQot
ZnVuY3Rpb24gYWRkVG9Mb2coZGF0YSkgewotICBsb2dCb3gudmFsdWUgKz0gZGF0YSArICdcbic7
Ci0gIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewot
ICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgZXZlbnRTb3Vy
Y2UgID0gbmV3IEV2ZW50U291cmNlKCcvZXZlbnRzb3VyY2UuY2dpJyk7Ci0gIGV2ZW50U291cmNl
Lm9ub3BlbiA9IGZ1bmN0aW9uKCkgewotICAgIGFkZFRvTG9nKCdvbm9wZW4gKHJlYWR5U3RhdGUg
PSAnICsgZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSArICcpJyk7Ci0gIH0KLSAgZXZlbnRTb3VyY2Uu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBhZGRUb0xvZyhldmVudC5kYXRhKTsK
LSAgfQotICBldmVudFNvdXJjZS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBhZGRU
b0xvZygnb25lcnJvciAocmVhZHlTdGF0ZSA9ICcgKyBldmVudFNvdXJjZS5yZWFkeVN0YXRlICsg
JyknKTsKLSAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+
Ci08dGV4dGFyZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9IjQwIiByZWFkb25seT48L3RleHRh
cmVhPgotPHAgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGwiPgotICBNYWtlIHN1cmUgdGhhdCBweXdl
YnNvY2tldCBpcyBydW4gd2l0aCAtLWNnaV9wYXRoIHBhcmFtZXRlci4KLTwvcD4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIxYzRjMDlhYTAwOTFkOGJhZjI5MDg5NTk5MDU4Njc4NDJhZWI4NjUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9o
YW5kbGVyX21hcC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jIHdlYnNvY2tl
dCBoYW5kbGVyIG1hcCBmaWxlLCB1c2VkIGJ5IHN0YW5kYWxvbmUucHkgLW0gb3B0aW9uLgotIyBB
IGxpbmUgc3RhcnRpbmcgd2l0aCAnIycgaXMgYSBjb21tZW50IGxpbmUuCi0jIEVhY2ggbGluZSBj
b25zaXN0cyBvZiAnYWxpYXNfcmVzb3VyY2VfcGF0aCcgYW5kICdleGlzdGluZ19yZXNvdXJjZV9w
YXRoJwotIyBzZXBhcmF0ZWQgYnkgc3BhY2VzLgotIyBBbGlhc2luZyBpcyBwcm9jZXNzZWQgZnJv
bSB0aGUgdG9wIHRvIHRoZSBib3R0b20gb2YgdGhlIGxpbmUsIGFuZAotIyAnZXhpc3RpbmdfcmVz
b3VyY2VfcGF0aCcgbXVzdCBleGlzdCBiZWZvcmUgaXQgaXMgYWxpYXNlZC4KLSMgRm9yIGV4YW1w
bGUsCi0jICAvIC9lY2hvCi0jIG1lYW5zIHRoYXQgYSByZXF1ZXN0IHRvICcvJyB3aWxsIGJlIGhh
bmRsZWQgYnkgaGFuZGxlcnMgZm9yICcvZWNobycuCi0vIC9lY2hvCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvaHN0c193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hzdHNfd3NoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODYxOTQ2OTIxYWYwNDU5NGQ2MjAyNmI0
NmYwNzc1OGRkZmU0MDJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaHN0c193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0
MCArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5leHRyYV9oZWFkZXJzLmFwcGVuZCgKLSAg
ICAgICAgKCdTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5JywgJ21heC1hZ2U9ODY0MDAnKSkKLQot
Ci1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3Qud3Nf
c3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8nLCBiaW5hcnk9RmFsc2UpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dz
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmZTU4MWI1NGE2NDhjMDlhMjJmMjU0NTEyN2Q3MGRmMDUxMzQ5
MjM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDIg
KzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IG1zZ3V0aWwKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6
Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0g
ICAgcmFpc2UgbXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24oJ0ludGVudGlvbmFsJykKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvb3JpZ2lu
X2NoZWNrX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA1NzY3YWI5MzJmYjU4MjgyNGFhZjFhNTdkOTI0
OWMzMDRiZDUxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0NCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIyBUaGlzIGV4YW1wbGUgaXMgZGVyaXZl
ZCBmcm9tIHRlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weS4KLQotCi1k
ZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgaWYgcmVxdWVz
dC53c19vcmlnaW4gPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbSc6Ci0gICAgICAgIHJldHVybgotICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ1VuYWNjZXB0YWJsZSBvcmlnaW46ICVyJyAlIHJlcXVlc3Qud3Nf
b3JpZ2luKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBm
b3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jl
c291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM1
ZDEzMGE1Yzg0ZjY5ZGU0ZjgxZDM1OGZiMmNkYjViZGU0YWY2ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3B5d2Vic29ja2V0
LmNvbmYKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
IwotIyBTYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciBhcGFjaGUyCi0jCi1Mb2dMZXZlbCBk
ZWJ1ZwotPElmTW9kdWxlIHB5dGhvbl9tb2R1bGU+Ci0gIFB5dGhvblBhdGggInN5cy5wYXRoK1sn
L21vZF9weXdlYnNvY2tldCddIgotICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRs
ZXJfcm9vdCAvdmFyL3d3dwotICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJf
c2NhbiAvdmFyL3d3dy93cwotICAjUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5hbGxvd19k
cmFmdDc1IE9uCi0gIDxMb2NhdGlvbiAvd3M+Ci0gICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxl
ciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotICA8L0xvY2F0aW9uPgotPC9J
Zk1vZHVsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNn
aSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWE1MDgwZjFmMWFlYTNhMzdhN2U3MjljNjc4ZDZhMTIzMzdiZWRiNy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci0jIS91c3IvYmluL3B5dGhvbgotCi0jIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlCi0jIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJ
TkcgZmlsZSBvciBhdAotIyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJj
ZS9saWNlbnNlcy9ic2QKLQotIiIiQ0dJIHNjcmlwdCBzYW1wbGUgZm9yIHRlc3RpbmcgZWZmZWN0
IG9mIEhUVFAgaGVhZGVycyBvbiB0aGUgb3JpZ2luIHBhZ2UuCi0KLU5vdGUgdGhhdCBDR0kgc2Ny
aXB0cyBkb24ndCB3b3JrIG9uIHRoZSBzdGFuZGFsb25lIHB5d2Vic29ja2V0IHJ1bm5pbmcgaW4g
VExTCi1tb2RlLgotIiIiCi0KLQotcHJpbnQgIiIiQ29udGVudC10eXBlOiB0ZXh0L2h0bWwKLUNv
bnRlbnQtU2VjdXJpdHktUG9saWN5OiBjb25uZWN0LXNyYyBzZWxmCi0KLTxodG1sPgotPGhlYWQ+
Ci08dGl0bGU+PC90aXRsZT4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLXZhciBzb2NrZXQg
PSBuZXcgV2ViU29ja2V0KCJ3czovL2V4YW1wbGUuY29tIik7Ci08L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4iIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbC5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvdXRpbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFjYWQ0
OTc1ZWUwY2VhZWM2YTg5ODJlMjk1NGNmOTY0ZmRlNTJlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWwuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNzcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMu
Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLS8vIFV0aWxpdGllcyBmb3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMg
KGZvciBib3RoIG1haW4gYW5kIHdvcmtlciB0aHJlYWQpLgotCi12YXIgcmVzdWx0cyA9IHt9Owot
Ci1mdW5jdGlvbiBnZXRUaW1lU3RhbXAoKSB7Ci0gIHJldHVybiBEYXRlLm5vdygpOwotfQotCi1m
dW5jdGlvbiBmb3JtYXRSZXN1bHRJbktpQihzaXplLCB0aW1lUGVyTWVzc2FnZUluTXMsIHN0ZGRl
dlRpbWVQZXJNZXNzYWdlSW5NcywKLSAgICBzcGVlZCwgcHJpbnRTaXplKSB7Ci0gIGlmIChwcmlu
dFNpemUpIHsKLSAgICByZXR1cm4gKHNpemUgLyAxMDI0KSArCi0gICAgICAgICdcdCcgKyB0aW1l
UGVyTWVzc2FnZUluTXMudG9GaXhlZCgzKSArCi0gICAgICAgIChzdGRkZXZUaW1lUGVyTWVzc2Fn
ZUluTXMgPT0gLTEgPwotICAgICAgICAgICAgJycgOgotICAgICAgICAgICAgJ1x0JyArIHN0ZGRl
dlRpbWVQZXJNZXNzYWdlSW5Ncy50b0ZpeGVkKDMpKSArCi0gICAgICAgICdcdCcgKyBzcGVlZC50
b0ZpeGVkKDMpOwotICB9IGVsc2UgewotICAgIHJldHVybiBzcGVlZC50b1N0cmluZygpOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIGNsZWFyQXZlcmFnZURhdGEoKSB7Ci0gIHJlc3VsdHMgPSB7fTsKLX0K
LQotZnVuY3Rpb24gcmVwb3J0QXZlcmFnZURhdGEoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb1N1
bW1hcnkoCi0gICAgICAnU2l6ZVtLaUJdXHRBdmVyYWdlIHRpbWVbbXNdXHRTdGRkZXYgdGltZVtt
c11cdFNwZWVkW0tCL3NdJyk7Ci0gIGZvciAodmFyIHNpemUgaW4gcmVzdWx0cykgewotICAgIHZh
ciBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zID0gcmVzdWx0c1tzaXplXS5zdW1fdCAvIHJlc3Vs
dHNbc2l6ZV0ubjsKLSAgICB2YXIgc3BlZWQgPSBjYWxjdWxhdGVTcGVlZEluS0Ioc2l6ZSwgYXZl
cmFnZVRpbWVQZXJNZXNzYWdlSW5Ncyk7Ci0gICAgLy8gQ2FsY3VsYXRlIHNhbXBsZSBzdGFuZGFy
ZCBkZXZpYXRpb24KLSAgICB2YXIgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zID0gTWF0aC5zcXJ0
KAotICAgICAgICAocmVzdWx0c1tzaXplXS5zdW1fdDIgLyByZXN1bHRzW3NpemVdLm4gLQotICAg
ICAgICAgICAgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5NcyAqIGF2ZXJhZ2VUaW1lUGVyTWVzc2Fn
ZUluTXMpICoKLSAgICAgICAgcmVzdWx0c1tzaXplXS5uIC8KLSAgICAgICAgKHJlc3VsdHNbc2l6
ZV0ubiAtIDEpKTsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5KGZvcm1hdFJlc3VsdEluS2lCKAot
ICAgICAgICBzaXplLCBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zLCBzdGRkZXZUaW1lUGVyTWVz
c2FnZUluTXMsIHNwZWVkLAotICAgICAgICB0cnVlKSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2Fs
Y3VsYXRlU3BlZWRJbktCKHNpemUsIHRpbWVTcGVudEluTXMpIHsKLSAgcmV0dXJuIE1hdGgucm91
bmQoc2l6ZSAvIHRpbWVTcGVudEluTXMgKiAxMDAwKSAvIDEwMDA7Ci19Ci0KLWZ1bmN0aW9uIGNh
bGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIHN0YXJ0VGltZUluTXMsIHRvdGFsU2l6
ZSkgewotICB2YXIgdGltZVNwZW50SW5NcyA9IGdldFRpbWVTdGFtcCgpIC0gc3RhcnRUaW1lSW5N
czsKLSAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwgdGltZVNwZW50
SW5Ncyk7Ci0gIHZhciB0aW1lUGVyTWVzc2FnZUluTXMgPSB0aW1lU3BlbnRJbk1zIC8gKHRvdGFs
U2l6ZSAvIHNpemUpOwotICBpZiAoIXJlc3VsdHNbc2l6ZV0pIHsKLSAgICByZXN1bHRzW3NpemVd
ID0ge246IDAsIHN1bV90OiAwLCBzdW1fdDI6IDB9OwotICB9Ci0gIGNvbmZpZy5tZWFzdXJlVmFs
dWUodGltZVBlck1lc3NhZ2VJbk1zKTsKLSAgcmVzdWx0c1tzaXplXS5uICsrOwotICByZXN1bHRz
W3NpemVdLnN1bV90ICs9IHRpbWVQZXJNZXNzYWdlSW5NczsKLSAgcmVzdWx0c1tzaXplXS5zdW1f
dDIgKz0gdGltZVBlck1lc3NhZ2VJbk1zICogdGltZVBlck1lc3NhZ2VJbk1zOwotICBjb25maWcu
YWRkVG9Mb2coZm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3NhZ2VJbk1zLCAtMSwg
c3BlZWQsCi0gICAgICBjb25maWcucHJpbnRTaXplKSk7Ci19Ci0KLWZ1bmN0aW9uIGZpbGxBcnJh
eUJ1ZmZlcihidWZmZXIsIGMpIHsKLSAgdmFyIGk7Ci0KLSAgdmFyIHUzMkNvbnRlbnQgPSBjICog
MHgwMTAxMDEwMTsKLQotICB2YXIgdTMyQmxvY2tzID0gTWF0aC5mbG9vcihidWZmZXIuYnl0ZUxl
bmd0aCAvIDQpOwotICB2YXIgdTMyVmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmZXIsIDAsIHUz
MkJsb2Nrcyk7Ci0gIC8vIGxlbmd0aCBhdHRyaWJ1dGUgaXMgc2xvdyBvbiBDaHJvbWUuIERvbid0
IHVzZSBpdCBmb3IgbG9vcCBjb25kaXRpb24uCi0gIGZvciAoaSA9IDA7IGkgPCB1MzJCbG9ja3M7
ICsraSkgewotICAgIHUzMlZpZXdbaV0gPSB1MzJDb250ZW50OwotICB9Ci0KLSAgLy8gRnJhY3Rp
b24KLSAgdmFyIHU4QmxvY2tzID0gYnVmZmVyLmJ5dGVMZW5ndGggLSB1MzJCbG9ja3MgKiA0Owot
ICB2YXIgdThWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCB1MzJCbG9ja3MgKiA0LCB1OEJs
b2Nrcyk7Ci0gIGZvciAoaSA9IDA7IGkgPCB1OEJsb2NrczsgKytpKSB7Ci0gICAgdThWaWV3W2ld
ID0gYzsKLSAgfQotfQotCi1mdW5jdGlvbiB2ZXJpZnlBcnJheUJ1ZmZlcihidWZmZXIsIGV4cGVj
dGVkQ2hhcikgewotICB2YXIgaTsKLQotICB2YXIgZXhwZWN0ZWRVMzJWYWx1ZSA9IGV4cGVjdGVk
Q2hhciAqIDB4MDEwMTAxMDE7Ci0KLSAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVy
LmJ5dGVMZW5ndGggLyA0KTsKLSAgdmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVy
LCAwLCB1MzJCbG9ja3MpOwotICBmb3IgKGkgPSAwOyBpIDwgdTMyQmxvY2tzOyArK2kpIHsKLSAg
ICBpZiAodTMyVmlld1tpXSAhPSBleHBlY3RlZFUzMlZhbHVlKSB7Ci0gICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICB9Ci0KLSAgdmFyIHU4QmxvY2tzID0gYnVmZmVyLmJ5dGVMZW5ndGggLSB1
MzJCbG9ja3MgKiA0OwotICB2YXIgdThWaWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCB1MzJC
bG9ja3MgKiA0LCB1OEJsb2Nrcyk7Ci0gIGZvciAoaSA9IDA7IGkgPCB1OEJsb2NrczsgKytpKSB7
Ci0gICAgaWYgKHU4Vmlld1tpXSAhPSBleHBlY3RlZENoYXIpIHsKLSAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gdmVyaWZ5Qmxv
Yihjb25maWcsIGJsb2IsIGV4cGVjdGVkQ2hhciwgZG9uZUNhbGxiYWNrKSB7Ci0gIHZhciByZWFk
ZXIgPSBuZXcgRmlsZVJlYWRlcihibG9iKTsKLSAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigp
IHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbGVSZWFkZXIgRXJyb3I6ICcgKyByZWFkZXIuZXJy
b3IubWVzc2FnZSk7Ci0gICAgZG9uZUNhbGxiYWNrKGJsb2Iuc2l6ZSwgZmFsc2UpOwotICB9Ci0g
IHJlYWRlci5vbmxvYWRlbmQgPSBmdW5jdGlvbigpIHsKLSAgICB2YXIgcmVzdWx0ID0gdmVyaWZ5
QXJyYXlCdWZmZXIocmVhZGVyLnJlc3VsdCwgZXhwZWN0ZWRDaGFyKTsKLSAgICBkb25lQ2FsbGJh
Y2soYmxvYi5zaXplLCByZXN1bHQpOwotICB9Ci0gIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihi
bG9iKTsKLX0KLQotZnVuY3Rpb24gdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgbWVzc2Fn
ZSwgc2l6ZSkgewotICBpZiAodHlwZW9mIG1lc3NhZ2UgIT0gJ3N0cmluZycpIHsKLSAgICBjb25m
aWcuYWRkVG9Mb2coJ0ludmFsaWQgYWNrIHR5cGU6ICcgKyB0eXBlb2YgbWVzc2FnZSk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotICB9Ci0gIHZhciBwYXJzZWRBY2sgPSBwYXJzZUludChtZXNzYWdlKTsK
LSAgaWYgKGlzTmFOKHBhcnNlZEFjaykpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQg
YWNrIHZhbHVlOiAnICsgbWVzc2FnZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIGlmIChw
YXJzZWRBY2sgIT0gc2l6ZSkgewotICAgIGNvbmZpZy5hZGRUb0xvZygKLSAgICAgICAgJ0V4cGVj
dGVkIGFjayBmb3IgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2ZWQgb25lIGZvciAnICsgcGFyc2Vk
QWNrICsKLSAgICAgICAgJ0InKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLQotICByZXR1cm4g
dHJ1ZTsKLX0KLQotZnVuY3Rpb24gY2xvbmVDb25maWcob2JqKSB7Ci0gIHZhciBuZXdPYmogPSB7
fTsKLSAgZm9yIChrZXkgaW4gb2JqKSB7Ci0gICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsKLSAg
fQotICByZXR1cm4gbmV3T2JqOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGls
X21haW4uanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxfbWFpbi5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjAzZDFjMmJkYzQ2MmM2NTRmNjAzNWJhOTZlNGViOGEyYmFhN2I4NC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL3V0aWxfbWFpbi5qcworKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6
Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLS8vIFV0
aWxpdGllcyBmb3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMgKGZvciB0aGUgbWFpbiB0aHJlYWQgb25s
eSkuCi0KLXZhciBsb2dCb3ggPSBudWxsOwotdmFyIHF1ZXVlZExvZyA9ICcnOwotCi12YXIgc3Vt
bWFyeUJveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIHF1ZXVlTG9nKGxvZykgewotICBxdWV1ZWRMb2cg
Kz0gbG9nICsgJ1xuJzsKLX0KLQotZnVuY3Rpb24gYWRkVG9Mb2cobG9nKSB7Ci0gIGxvZ0JveC52
YWx1ZSArPSBxdWV1ZWRMb2c7Ci0gIHF1ZXVlZExvZyA9ICcnOwotICBsb2dCb3gudmFsdWUgKz0g
bG9nICsgJ1xuJzsKLSAgbG9nQm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLWZ1bmN0aW9u
IGFkZFRvU3VtbWFyeShsb2cpIHsKLSAgc3VtbWFyeUJveC52YWx1ZSArPSBsb2cgKyAnXG4nOwot
ICBzdW1tYXJ5Qm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLS8vIHZhbHVlOiBleGVjdXRp
b24gdGltZSBpbiBtaWxsaXNlY29uZHMuCi0vLyBjb25maWcubWVhc3VyZVZhbHVlIGlzIGludGVu
ZGVkIHRvIGJlIHVzZWQgaW4gUGVyZm9ybWFuY2UgVGVzdHMuCi0vLyBEbyBub3RoaW5nIGhlcmUg
aW4gbm9uLVBlcmZvcm1hbmNlVGVzdC4KLWZ1bmN0aW9uIG1lYXN1cmVWYWx1ZSh2YWx1ZSkgewot
fQotCi1mdW5jdGlvbiBnZXRJbnRGcm9tSW5wdXQoaWQpIHsKLSAgcmV0dXJuIHBhcnNlSW50KGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZSk7Ci19Ci0KLWZ1bmN0aW9uIGdldFN0cmlu
Z0Zyb21SYWRpb0JveChuYW1lKSB7Ci0gIHZhciBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JlbmNobWFya19mb3JtJylbbmFtZV07Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5s
ZW5ndGg7ICsraSkKLSAgICBpZiAobGlzdC5pdGVtKGkpLmNoZWNrZWQpCi0gICAgICByZXR1cm4g
bGlzdC5pdGVtKGkpLnZhbHVlOwotICByZXR1cm4gdW5kZWZpbmVkOwotfQotZnVuY3Rpb24gZ2V0
Qm9vbEZyb21DaGVja0JveChpZCkgewotICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpLmNoZWNrZWQ7Ci19Ci0KLWZ1bmN0aW9uIGdldEludEFycmF5RnJvbUlucHV0KGlkKSB7Ci0g
IHZhciBzdHJBcnJheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZS5zcGxpdCgn
LCcpOwotICByZXR1cm4gc3RyQXJyYXkubWFwKGZ1bmN0aW9uKHN0cikgeyByZXR1cm4gcGFyc2VJ
bnQoc3RyLCAxMCk7IH0pOwotfQotCi1mdW5jdGlvbiBvbk1lc3NhZ2UobWVzc2FnZSkgewotICBp
ZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdhZGRUb0xvZycpCi0gICAgYWRkVG9Mb2cobWVzc2Fn
ZS5kYXRhLmRhdGEpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRvU3Vt
bWFyeScpCi0gICAgYWRkVG9TdW1tYXJ5KG1lc3NhZ2UuZGF0YS5kYXRhKTsKLSAgZWxzZSBpZiAo
bWVzc2FnZS5kYXRhLnR5cGUgPT09ICdtZWFzdXJlVmFsdWUnKQotICAgIG1lYXN1cmVWYWx1ZSht
ZXNzYWdlLmRhdGEuZGF0YSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxf
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX3dvcmtlci5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjY0Zjc4MjlkNTJkODUwNjQ5ODg5ZjliMGFjZTk5ODVjN2I2MjEx
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL3V0aWxfd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAot
Ly8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8g
bGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBo
dHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQot
Ly8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIHRoZSB3b3JrZXIgdGhy
ZWFkcyBvbmx5KS4KLQotZnVuY3Rpb24gd29ya2VyQWRkVG9Mb2codGV4dCkgewotICBwb3N0TWVz
c2FnZSh7dHlwZTogJ2FkZFRvTG9nJywgZGF0YTogdGV4dH0pOwotfQotCi1mdW5jdGlvbiB3b3Jr
ZXJBZGRUb1N1bW1hcnkodGV4dCkgewotICBwb3N0TWVzc2FnZSh7dHlwZTogJ2FkZFRvU3VtbWFy
eScsIGRhdGE6IHRleHR9KTsKLX0KLQotZnVuY3Rpb24gd29ya2VyTWVhc3VyZVZhbHVlKHZhbHVl
KSB7Ci0gIHBvc3RNZXNzYWdlKHt0eXBlOiAnbWVhc3VyZVZhbHVlJywgZGF0YTogdmFsdWV9KTsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
ZjFmNzk5YmM0MWM0YWMxMGM1ODZjNzFiY2EzY2JiMzA5YzFiOWE2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X3dz
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2JlbmNoX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVu
Y2htYXJrX2hlbHBlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nsb3NlX3dzaC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvY29uc29sZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb29raWVfd3No
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
ZWNob19ub2V4dF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2VjaG9fd3NoLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNl
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvaHN0c193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
cHl3ZWJzb2NrZXQuY29uZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvdXRpbC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF9tYWluLmpz
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX3dvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhy
X2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2ht
YXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NjIyOTc3NWY1YWMwODJh
MWZkZDMyN2E0NTk1ZGY5MWQxZmJkNTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMjIgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJ
bmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1l
dDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3Ry
aWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+
Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+WE1MSHR0cFJlcXVlc3QgYmVuY2htYXJrPC90aXRs
ZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InV0
aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Inhocl9iZW5jaG1hcmsuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLQotZnVuY3Rpb24gZ2V0Q29uZmln
KCkgewotICByZXR1cm4gewotICAgIHByZWZpeFVybDogYWRkcmVzc0JveC52YWx1ZSwKLSAgICBw
cmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6ZScpLAotICAgIG51bVhIUnM6
IGdldEludEZyb21JbnB1dCgnbnVtWEhScycpLAotICAgIGFzeW5jOiBnZXRCb29sRnJvbUNoZWNr
Qm94KCdhc3luYycpLAotICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdlcy4KLSAgICBudW1J
dGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwKLSAgICBudW1XYXJt
VXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJhdGlvbnMnKSwKLSAg
ICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyksCi0gICAgLy8gU3RvcHMg
YmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRoaXMgdGhyZXNob2xk
LgotICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRocmVzaG9sZCcpLAot
ICAgIC8vIElmIHRoZSBzaXplIG9mIGVhY2ggbWVzc2FnZSBpcyBzbWFsbCwgc2VuZC9yZWNlaXZl
IG11bHRpcGxlIG1lc3NhZ2VzCi0gICAgLy8gdW50aWwgdGhlIHN1bSBvZiBzaXplcyByZWFjaGVz
IHRoaXMgdGhyZXNob2xkLgotICAgIC8vIG1pblRvdGFsOiBnZXRJbnRGcm9tSW5wdXQoJ21pbnRv
dGFsJyksCi0gICAgLy8gbWluVG90YWwgaXMgbm90IHlldCBpbXBsZW1lbnRlZCBvbiBYSFIgYmVu
Y2htYXJrCi0gICAgbXVsdGlwbGllcnM6IGdldEludEFycmF5RnJvbUlucHV0KCdtdWx0aXBsaWVy
cycpLAotICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRhdGEnKQot
ICB9OwotfQotCi12YXIgd29ya2VyID0gbmV3IFdvcmtlcigneGhyX2JlbmNobWFyay5qcycpOwot
d29ya2VyLm9ubWVzc2FnZSA9IG9uTWVzc2FnZTsKLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJr
KCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdl
dFN0cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotCi0gIGlmIChnZXRCb29sRnJv
bUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ3Nl
bmRCZW5jaG1hcmsnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5h
ZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1h
cnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBzZW5kQmVu
Y2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkg
ewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0
cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotCi0gIGlmIChnZXRCb29sRnJvbUNo
ZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ3JlY2Vp
dmVCZW5jaG1hcmsnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5h
ZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1h
cnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICByZWNlaXZl
QmVuY2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25CYXRjaEJlbmNobWFyaygp
IHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNr
Qm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ2JhdGNoQmVu
Y2htYXJrJywgY29uZmlnOiBjb25maWd9KTsKLSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9M
b2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5Owot
ICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBtZWFzdXJlVmFsdWU7Ci0gICAgYmF0Y2hCZW5jaG1h
cmsoY29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvblN0b3AoKSB7Ci0gIHZhciBjb25maWcg
PSBnZXRDb25maWcoKTsKLQotICBpZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJykpIHsK
LSAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6ICdzdG9wJywgY29uZmlnOiBjb25maWd9KTsK
LSAgfSBlbHNlIHsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSBhZGRUb0xvZzsKLSAgICBjb25maWcu
YWRkVG9TdW1tYXJ5ID0gYWRkVG9TdW1tYXJ5OwotICAgIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSBt
ZWFzdXJlVmFsdWU7Ci0gICAgc3RvcChjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGluaXQo
KSB7Ci0gIGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwot
ICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgLy8gU3BlY2lhbCBh
ZGRyZXNzIG9mIHB5d2Vic29ja2V0IGZvciBYSFIgYmVuY2htYXJrLgotICBhZGRyZXNzQm94LnZh
bHVlID0gJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NSc7Ci0KLSAgYWRkVG9Mb2co
d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0gIGFkZFRvU3VtbWFy
eSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08Zm9ybSBpZD0iYmVuY2htYXJr
X2Zvcm0iPgotICB1cmwgcHJlZml4IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6
ZT0iNDAiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2VuZCIgb25jbGljaz0ib25T
ZW5kQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0icmVjZWl2ZSIg
b25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2
YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBl
PSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+Ci0KLSAgPGJyLz4KLQot
ICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNoZWNrZWQ+Ci0gIDxsYWJl
bCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIgbWVzc2FnZTwvbGFiZWw+
Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEiIGNoZWNrZWQ+Ci0gIDxs
YWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0id29ya2VyIj5SdW4gb24gd29y
a2VyPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXN5bmMiIGNoZWNrZWQ+
Ci0gIDxsYWJlbCBmb3I9ImFzeW5jIj5Bc3luYzwvbGFiZWw+PGJyPgotICAoUmVjZWl2ZSAmYW1w
OyZhbXA7IE5vbi1Xb3JrZXIgJmFtcDsmYW1wOyBTeW5jIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3Bl
YykKLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6Ci0KLSAgPGJyLz4KLQotICA8dGFibGU+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bSBYSFJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Im51bVhIUnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgot
ICAgICAgPHRkPk51bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0g
ICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgotICAg
ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9
IjAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+
Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0
MCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwv
dGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1
ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk1pbmlt
dW0gdG90YWw8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWludG90YWwi
IHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+
TXVsdGlwbGllcnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlw
bGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgotICAgIDwvdHI+Ci0gIDwvdGFibGU+Ci0KLSAgU2V0
IGRhdGEgdHlwZQotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlw
ZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW90ZXh0IgotICAgICAgICAgdmFsdWU9
InRleHQiCi0gICAgICAgICBjaGVja2VkPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW90ZXh0Ij50
ZXh0PC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5
cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvYmxvYiIKLSAgICAgICAgIHZhbHVl
PSJibG9iIgotICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9ibG9iIj5ibG9iPC9s
YWJlbD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRp
byIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIiCi0gICAgICAgICB2YWx1
ZT0iYXJyYXlidWZmZXIiCi0gICAgICAgICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2FycmF5
YnVmZmVyIj5hcnJheWJ1ZmZlcjwvbGFiZWw+Ci08L2Zvcm0+Ci0KLTxkaXYgaWQ9ImxvZ19kaXYi
PgotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEw
MCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4K
LSAgU3VtbWFyeQotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5
bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci0KLU5vdGU6IEVm
ZmVjdCBvZiBSVFQgYW5kIHRpbWUgc3BlbnQgZm9yIEFycmF5QnVmZmVyIGNyZWF0aW9uIGluIHJl
Y2VpdmUgYmVuY2htYXJrcyBhcmUgbm90IGVsaW1pbmF0ZWQuCi0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUveGhyX2JlbmNobWFyay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjMzYzdjYjM4YzQ5ZTE1OWRiNWE0MTZkOWFmZGEwOWIyZWYzODZjYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5j
aG1hcmsuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzODkgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNh
biBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3Bl
cnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotdmFyIGlzV29ya2VyID0g
dHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiOwotCi1pZiAoaXNXb3JrZXIpIHsK
LSAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgotICBpbXBvcnRTY3JpcHRzKCd1dGlsLmpzJywgJ3V0
aWxfd29ya2VyLmpzJyk7Ci19Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBnbG9iYWxzLgot
dmFyIGJlbmNobWFyayA9IHt9OwotYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSAwOwotCi12YXIg
eGhycyA9IFtdOwotCi12YXIgdGltZXJJRCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lBbGxY
SFJzKCkgewotICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB4
aHJzW2ldLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7Ci0gICAgLy8gQWJvcnQgWEhScyBpZiB0
aGV5IGFyZSBub3QgeWV0IERPTkUgc3RhdGUuCi0gICAgLy8gQ2FsbGluZyBhYm9ydCgpIGhlcmUg
KGkuZS4gaW4gb25yZWFkeXN0YXRlY2hhbmdlIGhhbmRsZXIpIAotICAgIC8vIGNhdXNlcyAiTmV0
d29ya0Vycm9yIiBtZXNzYWdlcyBpbiBEZXZUb29scyBpbiBzeW5jIG1vZGUsCi0gICAgLy8gZXZl
biBpZiBpdCBpcyBhZnRlciB0cmFuc2l0aW9uIHRvIERPTkUgc3RhdGUuCi0gICAgaWYgKHhocnNb
aV0ucmVhZHlTdGF0ZSAhPSBYTUxIdHRwUmVxdWVzdC5ET05FKQotICAgICAgeGhyc1tpXS5hYm9y
dCgpOwotICB9Ci0gIHhocnMgPSBbXTsKLSAgLy8gZ2MoKSBtaWdodCBiZSBuZWVkZWQgZm9yIENo
cm9tZS9CbG9iCi19Ci0KLWZ1bmN0aW9uIHJlcGVhdFN0cmluZyhzdHIsIGNvdW50KSB7Ci0gIHZh
ciBkYXRhID0gJyc7Ci0gIHZhciBleHBDaHVuayA9IHN0cjsKLSAgdmFyIHJlbWFpbiA9IGNvdW50
OwotICB3aGlsZSAodHJ1ZSkgewotICAgIGlmIChyZW1haW4gJSAyKSB7Ci0gICAgICBkYXRhICs9
IGV4cENodW5rOwotICAgICAgcmVtYWluID0gKHJlbWFpbiAtIDEpIC8gMjsKLSAgICB9IGVsc2Ug
ewotICAgICAgcmVtYWluIC89IDI7Ci0gICAgfQotCi0gICAgaWYgKHJlbWFpbiA9PSAwKQotICAg
ICAgYnJlYWs7Ci0KLSAgICBleHBDaHVuayA9IGV4cENodW5rICsgZXhwQ2h1bms7Ci0gIH0KLSAg
cmV0dXJuIGRhdGE7Ci19Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZp
ZykgewotICB0aW1lcklEID0gbnVsbDsKLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51
bGw7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2
YXIgb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhp
cy5yZWFkeVN0YXRlICE9IHRoaXMuRE9ORSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICh0aGlzLnN0YXR1cyAhPSAyMDApIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVk
IChzdGF0dXM9JyArIHRoaXMuc3RhdHVzICsgJyknKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7
Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhICYmCi0g
ICAgICAgICF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCB0aGlzLnJlc3BvbnNlLCBzaXpl
KSkgewotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICB0b3RhbFJlcGxpZWQgKz0gc2l6ZTsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNp
emUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGlt
ZUluTXMgPT0gbnVsbCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5v
dCBzZXQnKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0
VGltZUluTXMsIHRvdGFsU2l6ZSk7Ci0KLSAgICBkZXN0cm95QWxsWEhScygpOwotCi0gICAgcnVu
TmV4dFRhc2soY29uZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5u
dW1YSFJzOyArK2kpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAg
eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNoYW5nZUhhbmRsZXI7Ci0gICAg
eGhycy5wdXNoKHhocik7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5ID0gW107Ci0KLSAgZm9yICh2
YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIGRhdGEgPSBudWxsOwot
ICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2FycmF5YnVmZmVyJyB8fAotICAgICAgICBjb25m
aWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICBkYXRhID0gbmV3IEFycmF5QnVmZmVyKHNp
emUpOwotCi0gICAgICBmaWxsQXJyYXlCdWZmZXIoZGF0YSwgMHg2MSk7Ci0KLSAgICAgIGlmIChj
b25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICAgIGRhdGEgPSBuZXcgQmxvYihbZGF0
YV0pOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBkYXRhID0gcmVwZWF0U3RyaW5nKCdh
Jywgc2l6ZSk7Ci0gICAgfQotCi0gICAgZGF0YUFycmF5LnB1c2goZGF0YSk7Ci0gIH0KLQotCi0g
IGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0gIHRvdGFsU2l6ZSA9
IHNpemUgKiB4aHJzLmxlbmd0aDsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3Ro
OyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IGRhdGFBcnJheVtpXTsKLSAgICB2YXIgeGhyID0geGhy
c1tpXTsKLSAgICB4aHIub3BlbignUE9TVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3NlbmQnLCBj
b25maWcuYXN5bmMpOwotICAgIHhoci5zZW5kKGRhdGEpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJl
Y2VpdmVCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZykgewotICB0aW1lcklEID0gbnVsbDsKLQot
ICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51bGw7Ci0gIHZhciB0b3RhbFNpemUgPSAwOwot
ICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgY2hlY2tSZXN1bHRBbmRDb250aW51ZSA9
IGZ1bmN0aW9uIChieXRlc1JlY2VpdmVkLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICBpZiAo
IXZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2
ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBieXRlc1JlY2VpdmVkOwotCi0gICAg
aWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlmIChiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0gICAgICBjb25maWcu
YWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwotICAgICAgZGVzdHJveUFsbFhIUnMo
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29u
ZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKTsKLQotICAgIGRl
c3Ryb3lBbGxYSFJzKCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9Ci0KLSAgdmFy
IG9uUmVhZHlTdGF0ZUNoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKHRoaXMu
cmVhZHlTdGF0ZSAhPSB0aGlzLkRPTkUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAodGhpcy5zdGF0dXMgIT0gMjAwKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAo
c3RhdHVzPScgKyB0aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwot
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHZhciBieXRlc1JlY2VpdmVkID0gLTE7Ci0gICAg
aWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZlcicpIHsKLSAgICAgIGJ5dGVzUmVj
ZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmJ5dGVMZW5ndGg7Ci0gICAgfSBlbHNlIGlmICh0aGlzLnJl
c3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3Bv
bnNlLnNpemU7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3Bv
bnNlLmxlbmd0aDsKLSAgICB9Ci0gICAgaWYgKGJ5dGVzUmVjZWl2ZWQgIT0gc2l6ZSkgewotICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6ZSArCi0gICAgICAgICAgJ0IgYnV0
IHJlY2VpdmVkICcgKyBieXRlc1JlY2VpdmVkICsgJ0InKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJz
KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09
ICdhcnJheWJ1ZmZlcicpIHsKLSAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGludWUoYnl0ZXNSZWNl
aXZlZCwKLSAgICAgICAgICAhY29uZmlnLnZlcmlmeURhdGEgfHwgdmVyaWZ5QXJyYXlCdWZmZXIo
dGhpcy5yZXNwb25zZSwgMHg2MSkpOwotICAgIH0gZWxzZSBpZiAodGhpcy5yZXNwb25zZVR5cGUg
PT0gJ2Jsb2InKSB7Ci0gICAgICBpZiAoY29uZmlnLnZlcmlmeURhdGEpCi0gICAgICAgIHZlcmlm
eUJsb2IoY29uZmlnLCB0aGlzLnJlc3BvbnNlLCAweDYxLCBjaGVja1Jlc3VsdEFuZENvbnRpbnVl
KTsKLSAgICAgIGVsc2UKLSAgICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2Vp
dmVkLCB0cnVlKTsKLSAgICB9IGVsc2UgewotICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZSgK
LSAgICAgICAgICBieXRlc1JlY2VpdmVkLAotICAgICAgICAgICFjb25maWcudmVyaWZ5RGF0YSB8
fAotICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlID09IHJlcGVhdFN0cmluZygnYScsIHRoaXMu
cmVzcG9uc2UubGVuZ3RoKSk7Ci0gICAgfQotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwg
Y29uZmlnLm51bVhIUnM7ICsraSkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKLSAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxl
cjsKLSAgICB4aHJzLnB1c2goeGhyKTsKLSAgfQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1z
ID0gZ2V0VGltZVN0YW1wKCk7Ci0gIHRvdGFsU2l6ZSA9IHNpemUgKiB4aHJzLmxlbmd0aDsKLQot
ICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgeGhyID0g
eGhyc1tpXTsKLSAgICB4aHIub3BlbignUE9TVCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2Vp
dmUnLCBjb25maWcuYXN5bmMpOwotICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5
cGU7Ci0gICAgeGhyLnNlbmQoc2l6ZSArICcgbm9uZScpOwotICB9Ci19Ci0KLQotZnVuY3Rpb24g
Z2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgewotICByZXR1cm4gJygnICsgY29uZmlnLmRhdGFUeXBl
ICsKLSAgICAnLCB2ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0gICAgJywgJyAr
IChpc1dvcmtlciA/ICdXb3JrZXInIDogJ01haW4nKSArCi0gICAgJywgJyArIChjb25maWcuYXN5
bmMgPyAnQXN5bmMnIDogJ1N5bmMnKSArCi0gICAgJywgbnVtWEhScz0nICsgY29uZmlnLm51bVhI
UnMgKwotICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRpb25zICsKLSAg
ICAnLCBudW1XYXJtVXBJdGVyYXRpb25zPScgKyBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyAr
Ci0gICAgJyknOwotfQotCi1mdW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xl
YXJUaW1lb3V0KHRpbWVySUQpOwotICBkZXN0cm95QWxsWEhScygpOwotCi0gIHJ1bk5leHRUYXNr
KGNvbmZpZyk7Ci19Ci0KLS8vIFRPRE8oaGlyb3NoaWdlKTogdGhlIGZvbGxvd2luZyBjb2RlIGlz
IHRoZSBzYW1lIGFzIGJlbmNobWFyay5odG1sCi0vLyBhbmQgc29tZSBvZiB0aGVtIHNob3VsZCBi
ZSBtZXJnZWQgaW50byBlLmcuIHV0aWwuanMKLQotdmFyIHRhc2tzID0gW107Ci0KLWZ1bmN0aW9u
IHJ1bk5leHRUYXNrKGNvbmZpZykgewotICB2YXIgdGFzayA9IHRhc2tzLnNoaWZ0KCk7Ci0gIGlm
ICh0YXNrID09IHVuZGVmaW5lZCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRmluaXNoZWQnKTsK
LSAgICBkZXN0cm95QWxsWEhScygpOwotICAgIHJldHVybjsKLSAgfQotICB0aW1lcklEID0gc2V0
VGltZW91dCh0YXNrLCAwKTsKLX0KLQotZnVuY3Rpb24gYnVpbGRMZWdlbmRTdHJpbmcoY29uZmln
KSB7Ci0gIHZhciBsZWdlbmQgPSAnJwotICBpZiAoY29uZmlnLnByaW50U2l6ZSkKLSAgICBsZWdl
bmQgPSAnTWVzc2FnZSBzaXplIGluIEtpQiwgVGltZS9tZXNzYWdlIGluIG1zLCAnOwotICBsZWdl
bmQgKz0gJ1NwZWVkIGluIGtCL3MnOwotICByZXR1cm4gbGVnZW5kOwotfQotCi1mdW5jdGlvbiBh
ZGRUYXNrcyhjb25maWcsIHN0ZXBGdW5jKSB7Ci0gIGZvciAodmFyIGkgPSAwOwotICAgICAgaSA8
IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsgY29uZmlnLm51bUl0ZXJhdGlvbnM7ICsraSkg
ewotICAgIC8vIElnbm9yZSB0aGUgZmlyc3QgfGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zfCBp
dGVyYXRpb25zLgotICAgIGlmIChpID09IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zKQotICAg
ICAgYWRkUmVzdWx0Q2xlYXJpbmdUYXNrKGNvbmZpZyk7Ci0KLSAgICB2YXIgbXVsdGlwbGllcklu
ZGV4ID0gMDsKLSAgICBmb3IgKHZhciBzaXplID0gY29uZmlnLnN0YXJ0U2l6ZTsKLSAgICAgICAg
IHNpemUgPD0gY29uZmlnLnN0b3BUaHJlc2hvbGQ7Ci0gICAgICAgICArK211bHRpcGxpZXJJbmRl
eCkgewotICAgICAgdmFyIHRhc2sgPSBzdGVwRnVuYy5iaW5kKAotICAgICAgICAgIG51bGwsCi0g
ICAgICAgICAgc2l6ZSwKLSAgICAgICAgICBjb25maWcpOwotICAgICAgdGFza3MucHVzaCh0YXNr
KTsKLSAgICAgIHNpemUgKj0gY29uZmlnLm11bHRpcGxpZXJzWwotICAgICAgICAgIG11bHRpcGxp
ZXJJbmRleCAlIGNvbmZpZy5tdWx0aXBsaWVycy5sZW5ndGhdOwotICAgIH0KLSAgfQotfQotCi1m
dW5jdGlvbiBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgdGl0bGUpIHsKLSAgdGFza3Mu
cHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAgICBjb25maWcuYWRk
VG9TdW1tYXJ5KHRpdGxlKTsKLSAgICAgIHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZyk7Ci0gICAg
ICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsK
LX0KLQotZnVuY3Rpb24gYWRkUmVzdWx0Q2xlYXJpbmdUYXNrKGNvbmZpZykgewotICB0YXNrcy5w
dXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0aW1lcklEID0gbnVsbDsKLSAgICAgIGNsZWFyQXZlcmFn
ZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0pOwotfQotCi0vLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrKGNv
bmZpZykgewotICBjb25maWcuYWRkVG9Mb2coJ1NlbmQgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5h
ZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBj
bGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXAp
OwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBn
ZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0K
LWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xvZygn
UmVjZWl2ZSBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5n
KGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRk
VGFza3MoY29uZmlnLCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGlu
Z1Rhc2soY29uZmlnLAotICAgICAgJ1JlY2VpdmUgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJp
bmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGJh
dGNoQmVuY2htYXJrKG9yaWdpbmFsQ29uZmlnKSB7Ci0gIG9yaWdpbmFsQ29uZmlnLmFkZFRvTG9n
KCdCYXRjaCBiZW5jaG1hcmsnKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRh
KCk7Ci0KLSAgdmFyIGRhdGFUeXBlcyA9IFsndGV4dCcsICdibG9iJywgJ2FycmF5YnVmZmVyJ107
Ci0gIHZhciBzdGVwRnVuY3MgPSBbc2VuZEJlbmNobWFya1N0ZXAsIHJlY2VpdmVCZW5jaG1hcmtT
dGVwXTsKLSAgdmFyIG5hbWVzID0gWydTZW5kJywgJ1JlY2VpdmUnXTsKLSAgdmFyIGFzeW5jID0g
W3RydWUsIGZhbHNlXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGVwRnVuY3MubGVuZ3RoOyAr
K2kpIHsKLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFUeXBlcy5sZW5ndGg7ICsraikgewot
ICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBhc3luYy5sZW5ndGg7ICsraykgewotICAgICAgICB2
YXIgY29uZmlnID0gY2xvbmVDb25maWcob3JpZ2luYWxDb25maWcpOwotICAgICAgICBjb25maWcu
ZGF0YVR5cGUgPSBkYXRhVHlwZXNbal07Ci0gICAgICAgIGNvbmZpZy5hc3luYyA9IGFzeW5jW2td
OwotCi0gICAgICAgIC8vIFJlY2VpdmUgJiYgTm9uLVdvcmtlciAmJiBTeW5jIGlzIG5vdCBzdXBw
b3J0ZWQgYnkgdGhlIHNwZWMKLSAgICAgICAgaWYgKHN0ZXBGdW5jc1tpXSA9PT0gcmVjZWl2ZUJl
bmNobWFya1N0ZXAgJiYgIWlzV29ya2VyICYmCi0gICAgICAgICAgICAhY29uZmlnLmFzeW5jKQot
ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGFkZFRhc2tzKGNvbmZpZywgc3RlcEZ1bmNz
W2ldKTsKLSAgICAgICAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0gICAgICAgICAg
ICBuYW1lc1tpXSArICcgYmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0g
ICAgICB9Ci0gICAgfQotICB9Ci0KLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotCi1m
dW5jdGlvbiBzdG9wKGNvbmZpZykgewotICBkZXN0cm95QWxsWEhScygpOwotICBjbGVhclRpbWVv
dXQodGltZXJJRCk7Ci0gIHRpbWVySUQgPSBudWxsOwotICBjb25maWcuYWRkVG9Mb2coJ1N0b3Bw
ZWQnKTsKLX0KLQotb25tZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHsKLSAgdmFyIGNvbmZp
ZyA9IG1lc3NhZ2UuZGF0YS5jb25maWc7Ci0gIGNvbmZpZy5hZGRUb0xvZyA9IHdvcmtlckFkZFRv
TG9nOwotICBjb25maWcuYWRkVG9TdW1tYXJ5ID0gd29ya2VyQWRkVG9TdW1tYXJ5OwotICBjb25m
aWcubWVhc3VyZVZhbHVlID0gd29ya2VyTWVhc3VyZVZhbHVlOwotICBpZiAobWVzc2FnZS5kYXRh
LnR5cGUgPT09ICdzZW5kQmVuY2htYXJrJykKLSAgICBzZW5kQmVuY2htYXJrKGNvbmZpZyk7Ci0g
IGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAncmVjZWl2ZUJlbmNobWFyaycpCi0gICAg
cmVjZWl2ZUJlbmNobWFyayhjb25maWcpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9
PT0gJ2JhdGNoQmVuY2htYXJrJykKLSAgICBiYXRjaEJlbmNobWFyayhjb25maWcpOwotICBlbHNl
IGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ3N0b3AnKQotICAgIHN0b3AoY29uZmlnKTsKLX07
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2OTgzNTUzYjhhYzgwMzU5ZWU4NWJhOTgxZTUwMDU4ZWNlNDM3YzhhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUveGhyX2V2ZW50X2xvZ2dlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAK
LTwhLS0KLUNvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0K
LVVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi1saWNl
bnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLWh0dHBzOi8v
ZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotLS0+Ci0KLTxo
dG1sPgotPGhlYWQ+Ci08dGl0bGU+WEhSIGV2ZW50IGxvZ2dlcjwvdGl0bGU+Ci08c2NyaXB0IHNy
Yz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12YXIgZXZlbnRzID0gW107Ci0K
LWZ1bmN0aW9uIHJ1bigpIHsKLSAgZXZlbnRzID0gW107Ci0KLSAgZnVuY3Rpb24gcHVzaFRvTG9n
KHR5cGUpIHsKLSAgICBpZiAoZXZlbnRzLmxlbmd0aCAhPSAwICYmIHR5cGUgPT09IGV2ZW50c1tl
dmVudHMubGVuZ3RoIC0gMV0udHlwZSkgewotICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAx
XS5jb3VudCArPSAxOwotICAgIH0gZWxzZSB7Ci0gICAgICBldmVudHMucHVzaCh7dHlwZTogdHlw
ZSwgY291bnQ6IDF9KTsKLSAgICB9Ci0gIH0KLQotICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci0KLSAgZnVuY3Rpb24gZ2V0UHJvZ3Jlc3NFdmVudER1bXAoZSkgewotICAgIHJldHVy
biAnKCcgKyBlLmxlbmd0aENvbXB1dGFibGUgKyAnLCAnICsgZS5sb2FkZWQgKyAnLCAnICsgZS50
b3RhbCArICcpJzsKLSAgfQotCi0gIHZhciBkdW1wUHJvZ3Jlc3NFdmVudCA9IGdldEJvb2xGcm9t
Q2hlY2tCb3goJ2R1bXBwcm9ncmVzc2V2ZW50Jyk7Ci0KLSAgZnVuY3Rpb24gbG9nKGUpIHsKLSAg
ICB2YXIgdHlwZSA9IGUudHlwZTsKLSAgICBpZiAodHlwZSA9PT0gJ3JlYWR5c3RhdGVjaGFuZ2Un
KSB7Ci0gICAgICB0eXBlICs9IGUudGFyZ2V0LnJlYWR5U3RhdGU7Ci0gICAgfQotICAgIGlmIChk
dW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7Ci0gICAg
ICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOwotICAgIH0KLSAgICBwdXNoVG9Mb2co
dHlwZSk7Ci0gIH07Ci0KLSAgZnVuY3Rpb24gbG9nVXBsb2FkKGUpIHsKLSAgICB2YXIgdHlwZSA9
IGUudHlwZTsKLSAgICBpZiAoZHVtcFByb2dyZXNzRXZlbnQgJiYgKGUgaW5zdGFuY2VvZiBQcm9n
cmVzc0V2ZW50KSkgewotICAgICAgdHlwZSArPSBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKTsKLSAg
ICB9Ci0gICAgcHVzaFRvTG9nKCd1cGxvYWQnICsgdHlwZSk7Ci0gIH0KLQotICBpZiAoZ2V0Qm9v
bEZyb21DaGVja0JveCgndXBsb2FkJykpIHsKLSAgICB2YXIgdXBsb2FkID0geGhyLnVwbG9hZDsK
LSAgICB1cGxvYWQub25sb2Fkc3RhcnQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ucHJvZ3Jl
c3MgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9uYWJvcnQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBs
b2FkLm9uZXJyb3IgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ubG9hZCA9IGxvZ1VwbG9hZDsK
LSAgICB1cGxvYWQub250aW1lb3V0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWRlbmQg
PSBsb2dVcGxvYWQ7Ci0gIH0KLQotICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gbG9nOwotICB4
aHIub25sb2Fkc3RhcnQgPSBsb2c7Ci0gIHhoci5vbnByb2dyZXNzID0gbG9nOwotICB4aHIub25h
Ym9ydCA9IGxvZzsKLSAgeGhyLm9uZXJyb3IgPSBsb2c7Ci0gIHhoci5vbmxvYWQgPSBsb2c7Ci0g
IHhoci5vbnRpbWVvdXQgPSBsb2c7Ci0gIHhoci5vbmxvYWRlbmQgPSBsb2c7Ci0KLSAgeGhyLm9w
ZW4oJ1BPU1QnLCAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1X3JlY2VpdmUnLAot
ICAgICAgICAgICBnZXRCb29sRnJvbUNoZWNrQm94KCdhc3luYycpKTsKLSAgdmFyIHNpemUgPSBn
ZXRJbnRGcm9tSW5wdXQoJ3NpemUnKTsKLSAgdmFyIGNodW5rZWRNb2RlID0gJ25vbmUnOwotICBp
ZiAoZ2V0Qm9vbEZyb21DaGVja0JveCgnY2h1bmtlZHJlc3BvbnNlJykpIHsKLSAgICBjaHVua2Vk
TW9kZSA9ICdjaHVua2VkJzsKLSAgfQotICB4aHIuc2VuZChzaXplICsgJyAnICsgY2h1bmtlZE1v
ZGUpOwotfQotCi1mdW5jdGlvbiBwcmludCgpIHsKLSAgdmFyIHJlc3VsdCA9ICcnOwotICBmb3Ig
KHZhciBpID0gMDsgaSA8IGV2ZW50cy5sZW5ndGg7ICsraSkgewotICAgIHZhciBldmVudCA9IGV2
ZW50c1tpXTsKLSAgICByZXN1bHQgKz0gZXZlbnQudHlwZSArICcgKiAnICsgZXZlbnQuY291bnQg
KyAnXG4nOwotICB9Ci0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS52YWx1ZSA9IHJl
c3VsdDsKLX0KLTwvc2NyaXB0PgotCi08Ym9keT4KLSAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9
IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLSAgPGJyLz4KLSAgU2l6ZTogPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJzaXplIiB2YWx1ZT0iNjU1MzYiPjxici8+Ci0gIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9ImNodW5rZWRyZXNwb25zZSI+Ci0gIDxsYWJlbCBmb3I9ImNodW5r
ZWRyZXNwb25zZSI+VXNlIENodW5rZWQgVC1FIGZvciByZXNwb25zZTwvbGFiZWw+PGJyLz4KLSAg
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idXBsb2FkIj4KLSAgPGxhYmVsIGZvcj0idXBsb2Fk
Ij5VcGxvYWQgcHJvZ3Jlc3M8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9ImR1bXBwcm9ncmVzc2V2ZW50Ij4KLSAgPGxhYmVsIGZvcj0iZHVtcHByb2dyZXNzZXZlbnQi
PgotICAgIER1bXAgbGVuZ3RoQ29tcHV0YWJsZS9sb2FkZWQvdG90YWw8L2xhYmVsPjxici8+Ci0g
IDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBjaGVja2VkPgotICA8bGFiZWwgZm9y
PSJhc3luYyI+QXN5bmM8L2xhYmVsPjxici8+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xp
Y2s9InJ1bigpIiB2YWx1ZT0iUnVuIFhIUiI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xp
Y2s9InByaW50KCkiIHZhbHVlPSJQcmludCBsb2ciPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MDkzM2EyMjA0NTFmYWRiNmEwMWE1YzFkNDVjMjU1MTQ2OGQ3ZDg1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9f
X2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyNCArMCwwIEBACi0jIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuCi0K
LW1vZF9weXdlYnNvY2tldCBpcyBhIFdlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQ
IFNlcnZlcgotaW50ZW5kZWQgZm9yIHRlc3Rpbmcgb3IgZXhwZXJpbWVudGFsIHB1cnBvc2VzLiBt
b2RfcHl0aG9uIGlzIHJlcXVpcmVkLgotCi0KLUluc3RhbGxhdGlvbgotPT09PT09PT09PT09Ci0K
LTAuIFByZXBhcmUgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGZvciB3aGljaCBtb2RfcHl0aG9uIGlz
IGVuYWJsZWQuCi0KLTEuIFNwZWNpZnkgdGhlIGZvbGxvd2luZyBBcGFjaGUgSFRUUCBTZXJ2ZXIg
ZGlyZWN0aXZlcyB0byBzdWl0IHlvdXIKLSAgIGNvbmZpZ3VyYXRpb24uCi0KLSAgIElmIG1vZF9w
eXdlYnNvY2tldCBpcyBub3QgaW4gdGhlIFB5dGhvbiBwYXRoLCBzcGVjaWZ5IHRoZSBmb2xsb3dp
bmcuCi0gICA8d2Vic29ja19saWI+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgbW9kX3B5d2Vic29j
a2V0IGlzIGluc3RhbGxlZC4KLQotICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRoK1snPHdlYnNv
Y2tfbGliPiddIgotCi0gICBBbHdheXMgc3BlY2lmeSB0aGUgZm9sbG93aW5nLiA8d2Vic29ja19o
YW5kbGVycz4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZQotICAgdXNlci13cml0dGVuIFdlYlNvY2tl
dCBoYW5kbGVycyBhcmUgcGxhY2VkLgotCi0gICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNv
Y2tldC5oYW5kbGVyX3Jvb3QgPHdlYnNvY2tfaGFuZGxlcnM+Ci0gICAgICAgUHl0aG9uSGVhZGVy
UGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotCi0gICBU
byBsaW1pdCB0aGUgc2VhcmNoIGZvciBXZWJTb2NrZXQgaGFuZGxlcnMgdG8gYSBkaXJlY3Rvcnkg
PHNjYW5fZGlyPgotICAgdW5kZXIgPHdlYnNvY2tfaGFuZGxlcnM+LCBjb25maWd1cmUgYXMgZm9s
bG93czoKLQotICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2Fu
IDxzY2FuX2Rpcj4KLQotICAgPHNjYW5fZGlyPiBpcyB1c2VmdWwgaW4gc2F2aW5nIHNjYW4gdGlt
ZSB3aGVuIDx3ZWJzb2NrX2hhbmRsZXJzPgotICAgY29udGFpbnMgbWFueSBub24tV2ViU29ja2V0
IGhhbmRsZXIgZmlsZXMuCi0KLSAgIElmIHlvdSB3YW50IHRvIGFsbG93IGhhbmRsZXJzIHdob3Nl
IGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRlciB0aGUgcm9vdAotICAgZGlyZWN0b3J5IChpLmUu
IHN5bWJvbGljIGxpbmsgaXMgaW4gcm9vdCBkaXJlY3RvcnkgYnV0IGl0cyB0YXJnZXQgaXMgbm90
KSwKLSAgIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgotCi0gICAgICAgUHl0aG9uT3B0aW9uIG1vZF9w
eXdlYnNvY2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIE9uCi0KLSAgIEV4YW1w
bGUgc25pcHBldCBvZiBodHRwZC5jb25mOgotICAgKG1vZF9weXdlYnNvY2tldCBpcyBpbiAvd2Vi
c29ja19saWIsIFdlYlNvY2tldCBoYW5kbGVycyBhcmUgaW4KLSAgIC93ZWJzb2NrX2hhbmRsZXJz
LCBwb3J0IGlzIDgwIGZvciB3cywgNDQzIGZvciB3c3MuKQotCi0gICAgICAgPElmTW9kdWxlIHB5
dGhvbl9tb2R1bGU+Ci0gICAgICAgICBQeXRob25QYXRoICJzeXMucGF0aCtbJy93ZWJzb2NrX2xp
YiddIgotICAgICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3Qg
L3dlYnNvY2tfaGFuZGxlcnMKLSAgICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9k
X3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKLSAgICAgICA8L0lmTW9kdWxlPgotCi0y
LiBUdW5lIEFwYWNoZSBwYXJhbWV0ZXJzIGZvciBzZXJ2aW5nIFdlYlNvY2tldC4gV2UnZCBsaWtl
IHRvIG5vdGUgdGhhdCBhdAotICAgbGVhc3QgVGltZU91dCBkaXJlY3RpdmUgZnJvbSBjb3JlIGZl
YXR1cmVzIGFuZCBSZXF1ZXN0UmVhZFRpbWVvdXQKLSAgIGRpcmVjdGl2ZSBmcm9tIG1vZF9yZXF0
aW1lb3V0IHNob3VsZCBiZSBtb2RpZmllZCBub3QgdG8ga2lsbCBjb25uZWN0aW9ucwotICAgaW4g
b25seSBhIGZldyBzZWNvbmRzIG9mIGlkbGUgdGltZS4KLQotMy4gVmVyaWZ5IGluc3RhbGxhdGlv
bi4gWW91IGNhbiB1c2UgZXhhbXBsZS9jb25zb2xlLmh0bWwgdG8gcG9rZSB0aGUgc2VydmVyLgot
Ci0KLVdyaXRpbmcgV2ViU29ja2V0IGhhbmRsZXJzCi09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi1XaGVuIGEgV2ViU29ja2V0IHJlcXVlc3QgY29tZXMgaW4sIHRoZSByZXNvdXJjZSBuYW1l
Ci1zcGVjaWZpZWQgaW4gdGhlIGhhbmRzaGFrZSBpcyBjb25zaWRlcmVkIGFzIGlmIGl0IGlzIGEg
ZmlsZSBwYXRoIHVuZGVyCi08d2Vic29ja19oYW5kbGVycz4gYW5kIHRoZSBoYW5kbGVyIGRlZmlu
ZWQgaW4KLTx3ZWJzb2NrX2hhbmRsZXJzPi88cmVzb3VyY2VfbmFtZT5fd3NoLnB5IGlzIGludm9r
ZWQuCi0KLUZvciBleGFtcGxlLCBpZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyAvZXhhbXBsZS9jaGF0
LCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCi08d2Vic29ja19oYW5kbGVycz4vZXhhbXBsZS9jaGF0
X3dzaC5weSBpcyBpbnZva2VkLgotCi1BIFdlYlNvY2tldCBoYW5kbGVyIGlzIGNvbXBvc2VkIG9m
IHRoZSBmb2xsb3dpbmcgdGhyZWUgZnVuY3Rpb25zOgotCi0gICAgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCkKLSAgICB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCkKLSAgICB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCkKLQot
d2hlcmU6Ci0gICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotCi13ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQgZHVyaW5nIHRoZSBoYW5kc2hha2UgYWZ0ZXIgdGhl
Ci1oZWFkZXJzIGFyZSBzdWNjZXNzZnVsbHkgcGFyc2VkIGFuZCBXZWJTb2NrZXQgcHJvcGVydGll
cyAod3NfbG9jYXRpb24sCi13c19vcmlnaW4sIGFuZCB3c19yZXNvdXJjZSkgYXJlIGFkZGVkIHRv
IHJlcXVlc3QuIEEgaGFuZGxlcgotY2FuIHJlamVjdCB0aGUgcmVxdWVzdCBieSByYWlzaW5nIGFu
IGV4Y2VwdGlvbi4KLQotQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0
aWVzIHRoYXQgeW91IGNhbiB1c2UgZHVyaW5nIHRoZQotZXh0cmEgaGFuZHNoYWtlICh3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6Ci0tIHdzX3Jlc291cmNlCi0tIHdzX29yaWdpbgotLSB3
c192ZXJzaW9uCi0tIHdzX2xvY2F0aW9uIChIeUJpIDAwIG9ubHkpCi0tIHdzX2V4dGVuc2lvbnMg
KEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19kZWZsYXRlIChIeUJpIDA2IGFuZCBsYXRlcikKLS0g
d3NfcHJvdG9jb2wKLS0gd3NfcmVxdWVzdGVkX3Byb3RvY29scyAoSHlCaSAwNiBhbmQgbGF0ZXIp
Ci0KLVRoZSBsYXN0IHR3byBhcmUgYSBiaXQgdHJpY2t5LiBTZWUgdGhlIG5leHQgc3Vic2VjdGlv
bi4KLQotCi1TdWJwcm90b2NvbCBOZWdvdGlhdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotRm9yIEh5QmkgMDYgYW5kIGxhdGVyLCB3c19wcm90b2NvbCBpcyBhbHdheXMgc2V0IHRvIE5v
bmUgd2hlbgotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLiBJZiB3c19y
ZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdAotTm9uZSwgeW91IG11c3QgY2hvb3NlIG9uZSBzdWJw
cm90b2NvbCBmcm9tIHRoaXMgbGlzdCBhbmQgc2V0IGl0IHRvCi13c19wcm90b2NvbC4KLQotRm9y
IEh5QmkgMDAsIHdoZW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkLAot
d3NfcHJvdG9jb2wgaXMgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgY2xpZW50IGluCi1T
ZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciBvciBOb25lIGlmCi1zdWNoIGhlYWRlciB3YXMg
bm90IGZvdW5kIGluIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0LiBGaW5pc2ggZXh0cmEK
LWhhbmRzaGFrZSB3aXRoIHdzX3Byb3RvY29sIHVudG91Y2hlZCB0byBhY2NlcHQgdGhlIHJlcXVl
c3Qgc3VicHJvdG9jb2wuCi1UaGVuLCBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciB3aWxs
IGJlIHNlbnQgdG8KLXRoZSBjbGllbnQgaW4gcmVzcG9uc2Ugd2l0aCB0aGUgc2FtZSB2YWx1ZSBh
cyByZXF1ZXN0ZWQuIFJhaXNlIGFuIGV4Y2VwdGlvbgotaW4gd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0ZWQgc3VicHJvdG9jb2wuCi0KLQotRGF0YSBU
cmFuc2ZlcgotLS0tLS0tLS0tLS0tLQotCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgaXMgY2Fs
bGVkIGFmdGVyIHRoZSBoYW5kc2hha2UgY29tcGxldGVkCi1zdWNjZXNzZnVsbHkuIEEgaGFuZGxl
ciBjYW4gcmVjZWl2ZS9zZW5kIG1lc3NhZ2VzIGZyb20vdG8gdGhlIGNsaWVudAotdXNpbmcgcmVx
dWVzdC4gbW9kX3B5d2Vic29ja2V0Lm1zZ3V0aWwgbW9kdWxlIHByb3ZpZGVzIHV0aWxpdGllcwot
Zm9yIGRhdGEgdHJhbnNmZXIuCi0KLVlvdSBjYW4gcmVjZWl2ZSBhIG1lc3NhZ2UgYnkgdGhlIGZv
bGxvd2luZyBzdGF0ZW1lbnQuCi0KLSAgICBtZXNzYWdlID0gcmVxdWVzdC53c19zdHJlYW0ucmVj
ZWl2ZV9tZXNzYWdlKCkKLQotVGhpcyBjYWxsIGJsb2NrcyB1bnRpbCBhbnkgY29tcGxldGUgdGV4
dCBmcmFtZSBhcnJpdmVzLCBhbmQgdGhlIHBheWxvYWQgZGF0YQotb2YgdGhlIGluY29taW5nIGZy
YW1lIHdpbGwgYmUgc3RvcmVkIGludG8gbWVzc2FnZS4gV2hlbiB5b3UncmUgdXNpbmcgSUVURgot
SHlCaSAwMCBvciBsYXRlciBwcm90b2NvbCwgcmVjZWl2ZV9tZXNzYWdlKCkgd2lsbCByZXR1cm4g
Tm9uZSBvbiByZWNlaXZpbmcKLWNsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UuIFdo
ZW4gYW55IGVycm9yIG9jY3VycywgcmVjZWl2ZV9tZXNzYWdlKCkKLXdpbGwgcmFpc2Ugc29tZSBl
eGNlcHRpb24uCi0KLVlvdSBjYW4gc2VuZCBhIG1lc3NhZ2UgYnkgdGhlIGZvbGxvd2luZyBzdGF0
ZW1lbnQuCi0KLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQot
Ci1DbG9zaW5nIENvbm5lY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1FeGVjdXRpbmcgdGhl
IGZvbGxvd2luZyBzdGF0ZW1lbnQgb3IganVzdCByZXR1cm4taW5nIGZyb20KLXdlYl9zb2NrZXRf
dHJhbnNmZXJfZGF0YSBjYXVzZSBjb25uZWN0aW9uIGNsb3NlLgotCi0gICAgcmVxdWVzdC53c19z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0KLWNsb3NlX2Nvbm5lY3Rpb24gd2lsbCB3YWl0Ci1m
b3IgY2xvc2luZyBoYW5kc2hha2UgYWNrbm93bGVkZ2VtZW50IGNvbWluZyBmcm9tIHRoZSBjbGll
bnQuIFdoZW4gaXQKLWNvdWxkbid0IHJlY2VpdmUgYSB2YWxpZCBhY2tub3dsZWRnZW1lbnQsIHJh
aXNlcyBhbiBleGNlcHRpb24uCi0KLXdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFr
ZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHNlcnZlciByZWNlaXZlcwotaW5jb21pbmcgY2xvc2luZyBm
cmFtZSBmcm9tIHRoZSBjbGllbnQgcGVlciBpbW1lZGlhdGVseS4gWW91IGNhbiBzcGVjaWZ5Ci1j
b2RlIGFuZCByZWFzb24gYnkgcmV0dXJuIHZhbHVlcy4gVGhleSBhcmUgc2VudCBhcyBhIG91dGdv
aW5nIGNsb3NpbmcgZnJhbWUKLWZyb20gdGhlIHNlcnZlci4gQSByZXF1ZXN0IG9iamVjdCBoYXMg
dGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbgotdXNlIGluIHdlYl9zb2NrZXRf
cGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZS4KLS0gd3NfY2xvc2VfY29kZQotLSB3c19jbG9zZV9y
ZWFzb24KLQotCi1UaHJlYWRpbmcKLS0tLS0tLS0tLQotCi1BIFdlYlNvY2tldCBoYW5kbGVyIG11
c3QgYmUgdGhyZWFkLXNhZmUgaWYgdGhlIHNlcnZlciAoQXBhY2hlIG9yCi1zdGFuZGFsb25lLnB5
KSBpcyBjb25maWd1cmVkIHRvIHVzZSB0aHJlYWRzLgotCi0KLUNvbmZpZ3VyaW5nIFdlYlNvY2tl
dCBFeHRlbnNpb24gUHJvY2Vzc29ycwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVNlZSBleHRlbnNpb25zLnB5IGZvciBzdXBwb3J0ZWQgV2ViU29ja2V0IGV4
dGVuc2lvbnMuIE5vdGUgdGhhdCB0aGV5IGFyZQotdW5zdGFibGUgYW5kIHRoZWlyIEFQSXMgYXJl
IHN1YmplY3QgdG8gY2hhbmdlIHN1YnN0YW50aWFsbHkuCi0KLUEgcmVxdWVzdCBvYmplY3QgaGFz
IHRoZXNlIGV4dGVuc2lvbiBwcm9jZXNzaW5nIHJlbGF0ZWQgYXR0cmlidXRlcy4KLQotLSB3c19y
ZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKLQotICBBIGxpc3Qgb2YgY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lvbgotICBwYXJhbWV0ZXJzIHJlY2Vp
dmVkIGZyb20gdGhlIGNsaWVudCBpbiB0aGUgY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UuCi0g
IFlvdSBzaG91bGRuJ3QgbW9kaWZ5IGl0IG1hbnVhbGx5LgotCi0tIHdzX2V4dGVuc2lvbnM6Ci0K
LSAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJlcHJlc2Vu
dGluZyBleHRlbnNpb24KLSAgcGFyYW1ldGVycyB0byBzZW5kIGJhY2sgdG8gdGhlIGNsaWVudCBp
biB0aGUgc2VydmVyJ3Mgb3BlbmluZyBoYW5kc2hha2UuCi0gIFlvdSBzaG91bGRuJ3QgdG91Y2gg
aXQgZGlyZWN0bHkuIEluc3RlYWQsIGNhbGwgbWV0aG9kcyBvbiBleHRlbnNpb24KLSAgcHJvY2Vz
c29ycy4KLQotLSB3c19leHRlbnNpb25fcHJvY2Vzc29yczoKLQotICBBIGxpc3Qgb2YgbG9hZGVk
IGV4dGVuc2lvbiBwcm9jZXNzb3JzLiBGaW5kIHRoZSBwcm9jZXNzb3IgZm9yIHRoZQotICBleHRl
bnNpb24geW91IHdhbnQgdG8gY29uZmlndXJlIGZyb20gaXQsIGFuZCBjYWxsIGl0cyBtZXRob2Rz
LgotIiIiCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0IHR3PTcyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L19zdHJlYW1fYmFzZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIzNTY2
NmJiYjFkNTFjMTBkYjNmOTFiZGE0YWJjZDdhZmViMjY4Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVh
bV9iYXNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTgxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIkJhc2Ugc3RyZWFtIGNsYXNzLgotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gK
LSMgbW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5
IGluIGNvbm5lY3Rpb24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3Ro
ZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3JpdGUvcmVhZCBhcmUgbm90IHN1
aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzCi0jIHdyaXRp
bmcvcmVhZGluZy4KLQotCi1pbXBvcnQgc29ja2V0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCB1dGlsCi0KLQotIyBFeGNlcHRpb25zCi0KLQotY2xhc3MgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJh
aXNlZCB3aGVuIGEgY29ubmVjdGlvbiBpcyB0ZXJtaW5hdGVkCi0gICAgdW5leHBlY3RlZGx5Lgot
ICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEludmFsaWRGcmFtZUV4Y2VwdGlvbihDb25u
ZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBi
ZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlZCBhbiBpbnZhbGlkIGZyYW1lIHdlCi0gICAgY2Fubm90
IHBhcnNlLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIEJhZE9wZXJhdGlvbkV4Y2Vw
dGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdo
ZW4gc2VuZF9tZXNzYWdlKCkgaXMgY2FsbGVkIG9uCi0gICAgc2VydmVyLXRlcm1pbmF0ZWQgY29u
bmVjdGlvbiBvciByZWNlaXZlX21lc3NhZ2UoKSBpcyBjYWxsZWQgb24KLSAgICBjbGllbnQtdGVy
bWluYXRlZCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIFVuc3Vw
cG9ydGVkRnJhbWVFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3
aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmUgYSBmcmFtZSB3aXRoIGZsYWcsIG9wY29kZQot
ICAgIHdlIGNhbm5vdCBoYW5kbGUuIEhhbmRsZXJzIGNhbiBqdXN0IGNhdGNoIGFuZCBpZ25vcmUg
dGhpcyBleGNlcHRpb24gYW5kCi0gICAgY2FsbCByZWNlaXZlX21lc3NhZ2UoKSBhZ2FpbiB0byBj
b250aW51ZSBwcm9jZXNzaW5nIHRoZSBuZXh0IGZyYW1lLgotICAgICIiIgotCi0gICAgcGFzcwot
Ci0KLWNsYXNzIEludmFsaWRVVEY4RXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBl
eGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlIGEgdGV4dCBmcmFtZSB3aGlj
aAotICAgIGNvbnRhaW5zIGludmFsaWQgVVRGLTggc3RyaW5ncy4KLSAgICAiIiIKLQotICAgIHBh
c3MKLQotCi1jbGFzcyBTdHJlYW1CYXNlKG9iamVjdCk6Ci0gICAgIiIiQmFzZSBzdHJlYW0gY2xh
c3MuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNv
bnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVz
dDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0
ID0gcmVxdWVzdAotCi0gICAgZGVmIF9yZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJl
YWRzIGxlbmd0aCBieXRlcyBmcm9tIGNvbm5lY3Rpb24uIEluIGNhc2Ugd2UgY2F0Y2ggYW55IGV4
Y2VwdGlvbiwKLSAgICAgICAgcHJlcGVuZHMgcmVtb3RlIGFkZHJlc3MgdG8gdGhlIGV4Y2VwdGlv
biBtZXNzYWdlIGFuZCByYWlzZSBhZ2Fpbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
ICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkg
c3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWFkX2J5
dGVzID0gc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlYWQobGVuZ3RoKQotICAgICAgICAgICAg
aWYgbm90IHJlYWRfYnl0ZXM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZpbmcgJWQgYnl0ZSBm
YWlsZWQuIFBlZXIgKCVyKSBjbG9zZWQgY29ubmVjdGlvbicgJQotICAgICAgICAgICAgICAgICAg
ICAobGVuZ3RoLCAoc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCkpKQotICAg
ICAgICAgICAgcmV0dXJuIHJlYWRfYnl0ZXMKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciwg
ZToKLSAgICAgICAgICAgICMgQ2F0Y2ggYSBzb2NrZXQuZXJyb3IuIEJlY2F1c2UgaXQncyBub3Qg
YSBjaGlsZCBjbGFzcyBvZiB0aGUKLSAgICAgICAgICAgICMgSU9FcnJvciBwcmlvciB0byBQeXRo
b24gMi42LCB3ZSBjYW5ub3Qgb21pdCB0aGlzIGV4Y2VwdCBjbGF1c2UuCi0gICAgICAgICAgICAj
IFVzZSAlcyByYXRoZXIgdGhhbiAlciBmb3IgdGhlIGV4Y2VwdGlvbiB0byB1c2UgaHVtYW4gZnJp
ZW5kbHkKLSAgICAgICAgICAgICMgZm9ybWF0LgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRl
IGZhaWxlZC4gc29ja2V0LmVycm9yICglcykgb2NjdXJyZWQnICUKLSAgICAgICAgICAgICAgICAo
bGVuZ3RoLCBlKSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6Ci0gICAgICAgICAgICAjIEFs
c28gY2F0Y2ggYW4gSU9FcnJvciBiZWNhdXNlIG1vZF9weXRob24gdGhyb3dzIGl0LgotICAgICAg
ICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gSU9FcnJvciAoJXMpIG9jY3VycmVkJyAlCi0g
ICAgICAgICAgICAgICAgKGxlbmd0aCwgZSkpCi0KLSAgICBkZWYgX3dyaXRlKHNlbGYsIGJ5dGVz
X3RvX3dyaXRlKToKLSAgICAgICAgIiIiV3JpdGVzIGdpdmVuIGJ5dGVzIHRvIGNvbm5lY3Rpb24u
IEluIGNhc2Ugd2UgY2F0Y2ggYW55IGV4Y2VwdGlvbiwKLSAgICAgICAgcHJlcGVuZHMgcmVtb3Rl
IGFkZHJlc3MgdG8gdGhlIGV4Y2VwdGlvbiBtZXNzYWdlIGFuZCByYWlzZSBhZ2Fpbi4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKGJ5dGVzX3RvX3dyaXRlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICAgICAnRmFpbGVkIHRvIHNlbmQgbWVzc2FnZSB0byAlcjogJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZW1vdGVfYWRkciwp
LAotICAgICAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRlZiBy
ZWNlaXZlX2J5dGVzKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJlY2VpdmVzIG11bHRpcGxl
IGJ5dGVzLiBSZXRyaWVzIHJlYWQgd2hlbiB3ZSBjb3VsZG4ndCByZWNlaXZlIHRoZQotICAgICAg
ICBzcGVjaWZpZWQgYW1vdW50LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHJlYWRfYnl0ZXMgPSBbXQotICAgICAgICB3aGlsZSBs
ZW5ndGggPiAwOgotICAgICAgICAgICAgbmV3X3JlYWRfYnl0ZXMgPSBzZWxmLl9yZWFkKGxlbmd0
aCkKLSAgICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5kKG5ld19yZWFkX2J5dGVzKQotICAgICAg
ICAgICAgbGVuZ3RoIC09IGxlbihuZXdfcmVhZF9ieXRlcykKLSAgICAgICAgcmV0dXJuICcnLmpv
aW4ocmVhZF9ieXRlcykKLQotICAgIGRlZiBfcmVhZF91bnRpbChzZWxmLCBkZWxpbV9jaGFyKToK
LSAgICAgICAgIiIiUmVhZHMgYnl0ZXMgdW50aWwgd2UgZW5jb3VudGVyIGRlbGltX2NoYXIuIFRo
ZSByZXN1bHQgd2lsbCBub3QKLSAgICAgICAgY29udGFpbiBkZWxpbV9jaGFyLgotCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVu
IHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlYWRf
Ynl0ZXMgPSBbXQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSBzZWxmLl9y
ZWFkKDEpCi0gICAgICAgICAgICBpZiBjaCA9PSBkZWxpbV9jaGFyOgotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgICAgICByZWFkX2J5dGVzLmFwcGVuZChjaCkKLSAgICAgICAgcmV0dXJu
ICcnLmpvaW4ocmVhZF9ieXRlcykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5NGNmNWIzMWJhMGZjM2MzYTM0NzdkZTgyMjk3YTBjMjZkYTFjNDhjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGEgY2xhc3MgZm9y
IHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIHZlcnNp
b24gSHlCaSAwMCBhbmQgSGl4aWUgNzUuCi0KLVNwZWNpZmljYXRpb246Ci0tIEh5QmkgMDAgaHR0
cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3Rv
Y29sLTAwCi0tIEhpeGllIDc1IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWhpeGll
LXRoZXdlYnNvY2tldHByb3RvY29sLTc1Ci0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGlt
cG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgU3RyZWFtQmFzZQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLWNsYXNzIFN0cmVhbUhpeGllNzUoU3RyZWFt
QmFzZSk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMgb2YgdGhl
IFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uCi0gICAgSHlCaSAwMCBhbmQgSGl4aWUgNzUuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZW5hYmxlX2Nsb3Npbmdf
aGFuZHNoYWtlPUZhbHNlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0g
ICAgICAgICAgICBlbmFibGVfY2xvc2luZ19oYW5kc2hha2U6IHRvIGxldCBTdHJlYW1IaXhpZTc1
IHBlcmZvcm0gY2xvc2luZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YW5kc2hha2UgYXMgc3BlY2lmaWVkIGluIEh5QmkgMDAsIHNldAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzIG9wdGlvbiB0byBUcnVlLgotICAgICAgICAiIiIKLQot
ICAgICAgICBTdHJlYW1CYXNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
ZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlID0gZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlCi0KLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0gICAgICAgIHNl
bGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAgZGVmIHNlbmRfbWVz
c2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgIiIi
U2VuZCBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiB1bmlj
b2RlIHN0cmluZyB0byBzZW5kLgotICAgICAgICAgICAgYmluYXJ5OiBub3QgdXNlZCBpbiBoaXhp
ZTc1LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bjogd2hlbiBjYWxsZWQgb24gYSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIG5vdCBlbmQ6Ci0gICAgICAgICAg
ICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1N0cmVhbUhp
eGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBlbmQ9RmFsc2UnKQotCi0g
ICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNlbmRf
bWVzc2FnZSB3aXRoIGJpbmFyeT1UcnVlJykKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNl
cnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFmdGVyIHNlbmRpbmcg
b3V0IGEgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIHNlbGYuX3dyaXRlKCcnLmpvaW4o
WydceDAwJywgbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JyksICdceGZmJ10pKQotCi0gICAgZGVmIF9y
ZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGllNzUoc2VsZik6Ci0gICAgICAgICIiIlJlYWRzIGEgbGVu
Z3RoIGhlYWRlciBpbiBhIEhpeGllNzUgdmVyc2lvbiBmcmFtZSB3aXRoIGxlbmd0aC4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjog
d2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICBs
ZW5ndGggPSAwCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBiX3N0ciA9IHNlbGYu
X3JlYWQoMSkKLSAgICAgICAgICAgIGIgPSBvcmQoYl9zdHIpCi0gICAgICAgICAgICBsZW5ndGgg
PSBsZW5ndGggKiAxMjggKyAoYiAmIDB4N2YpCi0gICAgICAgICAgICBpZiAoYiAmIDB4ODApID09
IDA6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgcmV0dXJuIGxlbmd0aAotCi0gICAg
ZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZSBhIFdlYlNvY2tl
dCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFuIHVuaWNvZGUgc3RyaW5nLgotCi0gICAg
ICAgIFJldHVybnM6Ci0gICAgICAgICAgICBwYXlsb2FkIHVuaWNvZGUgc3RyaW5nIGluIGEgV2Vi
U29ja2V0IGZyYW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQotICAgICAgICAgICAg
ICAgIHN0cmluZy4KLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxs
ZWQgb24gYSBjbGllbnQtdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uCi0g
ICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQ6
Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1JlcXVlc3RlZCByZWNlaXZlX21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEgY2xvc2luZyAn
Ci0gICAgICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgICMgUmVhZCAxIGJ5dGUuCi0gICAgICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxs
IGJsb2NrIGlmIG5vIGJ5dGVzIGFyZSBhdmFpbGFibGUuCi0gICAgICAgICAgICAjIFRpbWVvdXQg
aXMgY29udHJvbGxlZCBieSBUaW1lT3V0IGRpcmVjdGl2ZSBvZiBBcGFjaGUuCi0gICAgICAgICAg
ICBmcmFtZV90eXBlX3N0ciA9IHNlbGYucmVjZWl2ZV9ieXRlcygxKQotICAgICAgICAgICAgZnJh
bWVfdHlwZSA9IG9yZChmcmFtZV90eXBlX3N0cikKLSAgICAgICAgICAgIGlmIChmcmFtZV90eXBl
ICYgMHg4MCkgPT0gMHg4MDoKLSAgICAgICAgICAgICAgICAjIFRoZSBwYXlsb2FkIGxlbmd0aCBp
cyBzcGVjaWZpZWQgaW4gdGhlIGZyYW1lLgotICAgICAgICAgICAgICAgICMgUmVhZCBhbmQgZGlz
Y2FyZC4KLSAgICAgICAgICAgICAgICBsZW5ndGggPSBzZWxmLl9yZWFkX3BheWxvYWRfbGVuZ3Ro
X2hpeGllNzUoKQotICAgICAgICAgICAgICAgIGlmIGxlbmd0aCA+IDA6Ci0gICAgICAgICAgICAg
ICAgICAgIF8gPSBzZWxmLnJlY2VpdmVfYnl0ZXMobGVuZ3RoKQotICAgICAgICAgICAgICAgICMg
NS4zIDMuIDEyLiBpZiAvdHlwZS8gaXMgMHhGRiBhbmQgL2xlbmd0aC8gaXMgMCwgdGhlbiBzZXQg
dGhlCi0gICAgICAgICAgICAgICAgIyAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2lu
Z19oYW5kc2hha2U6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAg
ICAgICBpZiBmcmFtZV90eXBlID09IDB4RkYgYW5kIGxlbmd0aCA9PSAwOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZHNoYWtlJykKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGNsaWVudC1pbml0aWF0ZWQg
Y2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY2xv
c2luZ19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnU2VudCBhY2sgZm9yIGNsaWVudC1pbml0aWF0ZWQg
Y2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFRoZSBwYXlsb2FkIGlzIGRlbGltaXRl
ZCB3aXRoIFx4ZmYuCi0gICAgICAgICAgICAgICAgYnl0ZXMgPSBzZWxmLl9yZWFkX3VudGlsKCdc
eGZmJykKLSAgICAgICAgICAgICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgc2VjdGlvbiA0
LjQgc3BlY2lmaWVzIHRoYXQgaW52YWxpZAotICAgICAgICAgICAgICAgICMgY2hhcmFjdGVycyBt
dXN0IGJlIHJlcGxhY2VkIHdpdGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAgICAgICAgICAgICAg
IyBDSEFSQUNURVIuCi0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGJ5dGVzLmRlY29kZSgndXRm
LTgnLCAncmVwbGFjZScpCi0gICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSAweDAwOgot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAgICAgICAgICAgICAgICMgRGlz
Y2FyZCBkYXRhIG9mIG90aGVyIHR5cGVzLgotCi0gICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNo
YWtlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtl
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdDbG9zaW5nIGhhbmRzaGFrZSBpcyBub3Qgc3VwcG9ydGVkIGluIEhpeGllIDc1IHByb3Rv
Y29sJykKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQot
Ci0gICAgICAgICMgNS4zIHRoZSBzZXJ2ZXIgbWF5IGRlY2lkZSB0byB0ZXJtaW5hdGUgdGhlIFdl
YlNvY2tldCBjb25uZWN0aW9uIGJ5Ci0gICAgICAgICMgcnVubmluZyB0aHJvdWdoIHRoZSBmb2xs
b3dpbmcgc3RlcHM6Ci0gICAgICAgICMgMS4gc2VuZCBhIDB4RkYgYnl0ZSBhbmQgYSAweDAwIGJ5
dGUgdG8gdGhlIGNsaWVudCB0byBpbmRpY2F0ZSB0aGUKLSAgICAgICAgIyBzdGFydCBvZiB0aGUg
Y2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIHNlbGYuX3dyaXRlKCdceGZmXHgwMCcpCi0KLSAg
ICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmLCB1bnVzZWRfY29kZT0nJywgdW51c2VkX3JlYXNv
bj0nJyk6Ci0gICAgICAgICIiIkNsb3NlcyBhIFdlYlNvY2tldCBjb25uZWN0aW9uLgotCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3
aGVuIGNsb3NpbmcgaGFuZHNoYWtlIHdhcwotICAgICAgICAgICAgICAgIG5vdCBzdWNjZXNzZnVs
bC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWlu
YXRlZDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAn
UmVxdWVzdGVkIGNsb3NlX2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0
ZWQnKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9j
bG9zaW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1p
bmF0ZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nvbm5lY3Rpb24g
Y2xvc2VkJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2lu
Z19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgc2VydmVyLWlu
aXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiAyLiB3
YWl0IHVudGlsIHRoZSAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgaGFzIGJlZW4gc2V0LAotICAg
ICAgICAjIG9yIHVudGlsIGEgc2VydmVyLWRlZmluZWQgdGltZW91dCBleHBpcmVzLgotICAgICAg
ICAjCi0gICAgICAgICMgRm9yIG5vdywgd2UgZXhwZWN0IHJlY2VpdmluZyBjbG9zaW5nIGhhbmRz
aGFrZSByaWdodCBhZnRlciBzZW5kaW5nCi0gICAgICAgICMgb3V0IGNsb3NpbmcgaGFuZHNoYWtl
LCBhbmQgaWYgd2UgY291bGRuJ3QgcmVjZWl2ZSBub24taGFuZHNoYWtlCi0gICAgICAgICMgZnJh
bWUsIHdlIHRha2UgaXQgYXMgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24uCi0gICAgICAg
IG1lc3NhZ2UgPSBzZWxmLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFjayBmb3IgY2xvc2lu
ZyBoYW5kc2hha2UnKQotICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29u
bmVjdGlvbi4KLSAgICAgICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rpb24gKG1wX2Nvbm4p
IGRvZXNuJ3QgaGF2ZSBjbG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJv
ZHkpOgotICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAn
U3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNlbmRfcGluZycpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9o
eWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThhNDllM2MzZGM5NWJhOWY3ZmQ0MTI4OTM4M2ZlMDdh
ZmRkNTc3Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsODg3ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRl
cyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1l
cwotb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9u
OgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQotIiIiCi0KLQotZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgZGVxdWUKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBz
dHJ1Y3QKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZFVU
RjhFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgU3Ry
ZWFtQmFzZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBv
cnRlZEZyYW1lRXhjZXB0aW9uCi0KLQotX05PT1BfTUFTS0VSID0gdXRpbC5Ob29wTWFza2VyKCkK
LQotCi1jbGFzcyBGcmFtZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbj0x
LCByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wLAotICAgICAgICAgICAgICAgICBvcGNvZGU9Tm9uZSwg
cGF5bG9hZD0nJyk6Ci0gICAgICAgIHNlbGYuZmluID0gZmluCi0gICAgICAgIHNlbGYucnN2MSA9
IHJzdjEKLSAgICAgICAgc2VsZi5yc3YyID0gcnN2MgotICAgICAgICBzZWxmLnJzdjMgPSByc3Yz
Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBh
eWxvYWQKLQotCi0jIEhlbHBlciBmdW5jdGlvbnMgbWFkZSBwdWJsaWMgdG8gYmUgdXNlZCBmb3Ig
d3JpdGluZyB1bml0dGVzdHMgZm9yIFdlYlNvY2tldAotIyBjbGllbnRzLgotCi0KLWRlZiBjcmVh
dGVfbGVuZ3RoX2hlYWRlcihsZW5ndGgsIG1hc2spOgotICAgICIiIkNyZWF0ZXMgYSBsZW5ndGgg
aGVhZGVyLgotCi0gICAgQXJnczoKLSAgICAgICAgbGVuZ3RoOiBGcmFtZSBsZW5ndGguIE11c3Qg
YmUgbGVzcyB0aGFuIDJeNjMuCi0gICAgICAgIG1hc2s6IE1hc2sgYml0LiBNdXN0IGJlIGJvb2xl
YW4uCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIFZhbHVlRXJyb3I6IHdoZW4gYmFkIGRhdGEgaXMg
Z2l2ZW4uCi0gICAgIiIiCi0KLSAgICBpZiBtYXNrOgotICAgICAgICBtYXNrX2JpdCA9IDEgPDwg
NwotICAgIGVsc2U6Ci0gICAgICAgIG1hc2tfYml0ID0gMAotCi0gICAgaWYgbGVuZ3RoIDwgMDoK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGVuZ3RoIG11c3QgYmUgbm9uIG5lZ2F0aXZlIGlu
dGVnZXInKQotICAgIGVsaWYgbGVuZ3RoIDw9IDEyNToKLSAgICAgICAgcmV0dXJuIGNocihtYXNr
X2JpdCB8IGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0aCA8ICgxIDw8IDE2KToKLSAgICAgICAgcmV0
dXJuIGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygnIUgnLCBsZW5ndGgpCi0gICAg
ZWxpZiBsZW5ndGggPCAoMSA8PCA2Myk6Ci0gICAgICAgIHJldHVybiBjaHIobWFza19iaXQgfCAx
MjcpICsgc3RydWN0LnBhY2soJyFRJywgbGVuZ3RoKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1BheWxvYWQgaXMgdG9vIGJpZyBmb3Igb25lIGZyYW1lJykKLQotCi1kZWYg
Y3JlYXRlX2hlYWRlcihvcGNvZGUsIHBheWxvYWRfbGVuZ3RoLCBmaW4sIHJzdjEsIHJzdjIsIHJz
djMsIG1hc2spOgotICAgICIiIkNyZWF0ZXMgYSBmcmFtZSBoZWFkZXIuCi0KLSAgICBSYWlzZXM6
Ci0gICAgICAgIEV4Y2VwdGlvbjogd2hlbiBiYWQgZGF0YSBpcyBnaXZlbi4KLSAgICAiIiIKLQot
ICAgIGlmIG9wY29kZSA8IDAgb3IgMHhmIDwgb3Bjb2RlOgotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdPcGNvZGUgb3V0IG9mIHJhbmdlJykKLQotICAgIGlmIHBheWxvYWRfbGVuZ3RoIDwgMCBv
ciAoMSA8PCA2MykgPD0gcGF5bG9hZF9sZW5ndGg6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J3BheWxvYWRfbGVuZ3RoIG91dCBvZiByYW5nZScpCi0KLSAgICBpZiAoZmluIHwgcnN2MSB8IHJz
djIgfCByc3YzKSAmIH4xOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdGSU4gYml0IGFuZCBS
ZXNlcnZlZCBiaXQgcGFyYW1ldGVyIG11c3QgYmUgMCBvciAxJykKLQotICAgIGhlYWRlciA9ICcn
Ci0KLSAgICBmaXJzdF9ieXRlID0gKChmaW4gPDwgNykKLSAgICAgICAgICAgICAgICAgIHwgKHJz
djEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpCi0gICAgICAgICAgICAgICAgICB8
IG9wY29kZSkKLSAgICBoZWFkZXIgKz0gY2hyKGZpcnN0X2J5dGUpCi0gICAgaGVhZGVyICs9IGNy
ZWF0ZV9sZW5ndGhfaGVhZGVyKHBheWxvYWRfbGVuZ3RoLCBtYXNrKQotCi0gICAgcmV0dXJuIGhl
YWRlcgotCi0KLWRlZiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBib2R5LCBtYXNrKToKLSAgICBpZiBu
b3QgbWFzazoKLSAgICAgICAgcmV0dXJuIGhlYWRlciArIGJvZHkKLQotICAgIG1hc2tpbmdfbm9u
Y2UgPSBvcy51cmFuZG9tKDQpCi0gICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlciht
YXNraW5nX25vbmNlKQotCi0gICAgcmV0dXJuIGhlYWRlciArIG1hc2tpbmdfbm9uY2UgKyBtYXNr
ZXIubWFzayhib2R5KQotCi0KLWRlZiBfZmlsdGVyX2FuZF9mb3JtYXRfZnJhbWVfb2JqZWN0KGZy
YW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKLSAgICBmb3IgZnJhbWVfZmlsdGVyIGluIGZyYW1l
X2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICBoZWFk
ZXIgPSBjcmVhdGVfaGVhZGVyKAotICAgICAgICBmcmFtZS5vcGNvZGUsIGxlbihmcmFtZS5wYXls
b2FkKSwgZnJhbWUuZmluLAotICAgICAgICBmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5y
c3YzLCBtYXNrKQotICAgIHJldHVybiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBmcmFtZS5wYXlsb2Fk
LCBtYXNrKQotCi0KLWRlZiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgIG1lc3NhZ2UsIG9wY29k
ZT1jb21tb24uT1BDT0RFX0JJTkFSWSwgZmluPTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9
W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUgYmluYXJ5IGZyYW1lIHdpdGggbm8gZXh0ZW5z
aW9uLCByZXNlcnZlZCBiaXQuIiIiCi0KLSAgICBmcmFtZSA9IEZyYW1lKGZpbj1maW4sIG9wY29k
ZT1vcGNvZGUsIHBheWxvYWQ9bWVzc2FnZSkKLSAgICByZXR1cm4gX2ZpbHRlcl9hbmRfZm9ybWF0
X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRl
X3RleHRfZnJhbWUoCi0gICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCwgZmlu
PTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgotICAgICIiIkNyZWF0ZXMgYSBzaW1w
bGUgdGV4dCBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2ZWQgYml0LiIiIgotCi0gICAg
ZW5jb2RlZF9tZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLSAgICByZXR1cm4gY3Jl
YXRlX2JpbmFyeV9mcmFtZShlbmNvZGVkX21lc3NhZ2UsIG9wY29kZSwgZmluLCBtYXNrLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIHBhcnNl
X2ZyYW1lKHJlY2VpdmVfYnl0ZXMsIGxvZ2dlcj1Ob25lLAotICAgICAgICAgICAgICAgIHdzX3Zl
cnNpb249Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsCi0gICAgICAgICAgICAgICAgdW5tYXNr
X3JlY2VpdmU9VHJ1ZSk6Ci0gICAgIiIiUGFyc2VzIGEgZnJhbWUuIFJldHVybnMgYSB0dXBsZSBj
b250YWluaW5nIGVhY2ggaGVhZGVyIGZpZWxkIGFuZAotICAgIHBheWxvYWQuCi0KLSAgICBBcmdz
OgotICAgICAgICByZWNlaXZlX2J5dGVzOiBhIGZ1bmN0aW9uIHRoYXQgcmVhZHMgZnJhbWUgZGF0
YSBmcm9tIGEgc3RyZWFtIG9yCi0gICAgICAgICAgICBzb21ldGhpbmcgc2ltaWxhci4gVGhlIGZ1
bmN0aW9uIHRha2VzIGxlbmd0aCBvZiB0aGUgYnl0ZXMgdG8gYmUKLSAgICAgICAgICAgIHJlYWQu
IFRoZSBmdW5jdGlvbiBtdXN0IHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uIGlm
Ci0gICAgICAgICAgICB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgdG8gYmUgcmVhZC4KLSAgICAg
ICAgbG9nZ2VyOiBhIGxvZ2dpbmcgb2JqZWN0LgotICAgICAgICB3c192ZXJzaW9uOiB0aGUgdmVy
c2lvbiBvZiBXZWJTb2NrZXQgcHJvdG9jb2wuCi0gICAgICAgIHVubWFza19yZWNlaXZlOiB1bm1h
c2sgcmVjZWl2ZWQgZnJhbWVzLiBXaGVuIHJlY2VpdmVkIHVubWFza2VkCi0gICAgICAgICAgICBm
cmFtZSwgcmFpc2VzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KLQotICAgIFJhaXNlczoKLSAgICAg
ICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVjZWl2ZV9ieXRlcyByYWlz
ZXMgaXQuCi0gICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgZnJhbWUgY29u
dGFpbnMgaW52YWxpZCBkYXRhLgotICAgICIiIgotCi0gICAgaWYgbm90IGxvZ2dlcjoKLSAgICAg
ICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotCi0gICAgbG9nZ2VyLmxvZyhjb21tb24u
TE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgdGhlIGZpcnN0IDIgb2N0ZXRzIG9mIGEgZnJhbWUnKQot
Ci0gICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKDIpCi0KLSAgICBmaXJzdF9ieXRlID0gb3Jk
KHJlY2VpdmVkWzBdKQotICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcpICYgMQotICAgIHJzdjEg
PSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKLSAgICByc3YyID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAx
Ci0gICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgIG9wY29kZSA9IGZpcnN0X2J5
dGUgJiAweGYKLQotICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVkWzFdKQotICAgIG1hc2sg
PSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCi0gICAgcGF5bG9hZF9sZW5ndGggPSBzZWNvbmRfYnl0
ZSAmIDB4N2YKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAg
ICAgICAgICAnRklOPSVzLCBSU1YxPSVzLCBSU1YyPSVzLCBSU1YzPSVzLCBvcGNvZGU9JXMsICcK
LSAgICAgICAgICAgICAgICdNYXNrPSVzLCBQYXlsb2FkX2xlbmd0aD0lcycsCi0gICAgICAgICAg
ICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgbWFzaywgcGF5bG9hZF9sZW5ndGgp
Ci0KLSAgICBpZiAobWFzayA9PSAxKSAhPSB1bm1hc2tfcmVjZWl2ZToKLSAgICAgICAgcmFpc2Ug
SW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgJ01hc2sgYml0IG9uIHRoZSByZWNl
aXZlZCBmcmFtZSBkaWRcJ250IG1hdGNoIG1hc2tpbmcgJwotICAgICAgICAgICAgJ2NvbmZpZ3Vy
YXRpb24gZm9yIHJlY2VpdmVkIGZyYW1lcycpCi0KLSAgICAjIFRoZSBIeUJpIGFuZCBsYXRlciBz
cGVjcyBkaXNhbGxvdyBwdXR0aW5nIGEgdmFsdWUgaW4gMHgwLTB4RkZGRgotICAgICMgaW50byB0
aGUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVsZCAob3IgMHgwLTB4RkQgaW4K
LSAgICAjIDItb2N0ZXQgZmllbGQpLgotICAgIHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IFRydWUK
LSAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAxCi0gICAgaWYgcGF5bG9hZF9sZW5ndGggPT0g
MTI3OgotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlIDgtb2N0ZXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgnKQotCi0g
ICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyg4KQotICAgICAg
ICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIVEnLCBleHRl
bmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPiAweDdG
RkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQotICAg
ICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xlbmd0aCA8IDB4MTAwMDA6Ci0g
ICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxzZQotICAgICAgICAgICAgbGVu
Z3RoX2VuY29kaW5nX2J5dGVzID0gOAotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xF
VkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9JXMn
LCBwYXlsb2FkX2xlbmd0aCkKLSAgICBlbGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNjoKLSAgICAg
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZSAyLW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoJykKLQotICAgICAgICBleHRl
bmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoMikKLSAgICAgICAgcGF5bG9hZF9s
ZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFIJywgZXh0ZW5kZWRfcGF5bG9h
ZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHdzX3ZlcnNpb24gPj0gMTMgYW5kIHBheWxvYWRfbGVu
Z3RoIDwgMTI2OgotICAgICAgICAgICAgdmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAg
ICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDIKLQotICAgICAgICBsb2dnZXIubG9n
KGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdEZWNvZGVkX3BheWxv
YWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgpCi0KLSAgICBpZiBub3QgdmFsaWRfbGVuZ3Ro
X2VuY29kaW5nOgotICAgICAgICBsb2dnZXIud2FybmluZygKLSAgICAgICAgICAgICdQYXlsb2Fk
IGxlbmd0aCBpcyBub3QgZW5jb2RlZCB1c2luZyB0aGUgbWluaW1hbCBudW1iZXIgb2YgJwotICAg
ICAgICAgICAgJ2J5dGVzICglZCBpcyBlbmNvZGVkIHVzaW5nICVkIGJ5dGVzKScsCi0gICAgICAg
ICAgICBwYXlsb2FkX2xlbmd0aCwKLSAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcykK
LQotICAgIGlmIG1hc2sgPT0gMToKLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxf
RklORSwgJ1JlY2VpdmUgbWFzaycpCi0KLSAgICAgICAgbWFza2luZ19ub25jZSA9IHJlY2VpdmVf
Ynl0ZXMoNCkKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcihtYXNraW5n
X25vbmNlKQotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdNYXNr
PSVyJywgbWFza2luZ19ub25jZSkKLSAgICBlbHNlOgotICAgICAgICBtYXNrZXIgPSBfTk9PUF9N
QVNLRVIKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNlaXZlIHBh
eWxvYWQgZGF0YScpCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxf
RklORSk6Ci0gICAgICAgIHJlY2VpdmVfc3RhcnQgPSB0aW1lLnRpbWUoKQotCi0gICAgcmF3X3Bh
eWxvYWRfYnl0ZXMgPSByZWNlaXZlX2J5dGVzKHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbG9n
Z2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIGxvZ2dlci5s
b2coCi0gICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICdEb25l
IHJlY2VpdmluZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCi0gICAgICAgICAgICBwYXlsb2Fk
X2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHJlY2VpdmVfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0g
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1VubWFzayBwYXlsb2FkIGRhdGEn
KQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0g
ICAgICAgIHVubWFza19zdGFydCA9IHRpbWUudGltZSgpCi0KLSAgICB1bm1hc2tlZF9ieXRlcyA9
IG1hc2tlci5tYXNrKHJhd19wYXlsb2FkX2J5dGVzKQotCi0gICAgaWYgbG9nZ2VyLmlzRW5hYmxl
ZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6Ci0gICAgICAgIGxvZ2dlci5sb2coCi0gICAgICAg
ICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICdEb25lIHVubWFza2luZyBw
YXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCi0gICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0
aW1lLnRpbWUoKSAtIHVubWFza19zdGFydCkgLyAxMDAwIC8gMTAwMCkKLQotICAgIHJldHVybiBv
cGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMKLQotCi1jbGFzcyBG
cmFnbWVudGVkRnJhbWVCdWlsZGVyKG9iamVjdCk6Ci0gICAgIiIiQSBzdGF0ZWZ1bCBjbGFzcyB0
byBzZW5kIGEgbWVzc2FnZSBhcyBmcmFnbWVudHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbWFzaywgZnJhbWVfZmlsdGVycz1bXSwgZW5jb2RlX3V0Zjg9VHJ1ZSk6Ci0gICAgICAgICIi
IkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuIiIiCi0KLSAgICAgICAgc2VsZi5fbWFzayA9IG1hc2sK
LSAgICAgICAgc2VsZi5fZnJhbWVfZmlsdGVycyA9IGZyYW1lX2ZpbHRlcnMKLSAgICAgICAgIyBU
aGlzIGlzIGZvciBza2lwcGluZyBVVEYtOCBlbmNvZGluZyB3aGVuIGJ1aWxkaW5nIHRleHQgdHlw
ZSBmcmFtZXMKLSAgICAgICAgIyBmcm9tIGNvbXByZXNzZWQgZGF0YS4KLSAgICAgICAgc2VsZi5f
ZW5jb2RlX3V0ZjggPSBlbmNvZGVfdXRmOAotCi0gICAgICAgIHNlbGYuX3N0YXJ0ZWQgPSBGYWxz
ZQotCi0gICAgICAgICMgSG9sZCBvcGNvZGUgb2YgdGhlIGZpcnN0IGZyYW1lIGluIG1lc3NhZ2Vz
IHRvIHZlcmlmeSB0eXBlcyBvZiBvdGhlcgotICAgICAgICAjIGZyYW1lcyBpbiB0aGUgbWVzc2Fn
ZSBhcmUgYWxsIHRoZSBzYW1lLgotICAgICAgICBzZWxmLl9vcGNvZGUgPSBjb21tb24uT1BDT0RF
X1RFWFQKLQotICAgIGRlZiBidWlsZChzZWxmLCBwYXlsb2FkX2RhdGEsIGVuZCwgYmluYXJ5KToK
LSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IGNvbW1vbi5PUENP
REVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmcmFtZV90eXBlID0gY29tbW9u
Lk9QQ09ERV9URVhUCi0gICAgICAgIGlmIHNlbGYuX3N0YXJ0ZWQ6Ci0gICAgICAgICAgICBpZiBz
ZWxmLl9vcGNvZGUgIT0gZnJhbWVfdHlwZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gZnJhbWVzIGZvciAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHNhbWUgbWVzc2FnZScpCi0gICAgICAgICAg
ICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQotICAgICAgICAgICAgc2VsZi5fb3Bjb2RlID0g
ZnJhbWVfdHlwZQotCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWQg
PSBGYWxzZQotICAgICAgICAgICAgZmluID0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5fc3RhcnRlZCA9IFRydWUKLSAgICAgICAgICAgIGZpbiA9IDAKLQotICAgICAgICBpZiBi
aW5hcnkgb3Igbm90IHNlbGYuX2VuY29kZV91dGY4OgotICAgICAgICAgICAgcmV0dXJuIGNyZWF0
ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgICAgICAgICAgcGF5bG9hZF9kYXRhLCBvcGNvZGUsIGZp
biwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVfdGV4dF9mcmFtZSgKLSAgICAgICAgICAgICAgICBwYXlsb2Fk
X2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9mcmFtZV9maWx0ZXJzKQotCi0K
LWRlZiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUob3Bjb2RlLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0
ZXJzKToKLSAgICBmcmFtZSA9IEZyYW1lKG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9Ym9keSkKLQot
ICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoKLSAgICAgICAgZnJhbWVfZmls
dGVyLmZpbHRlcihmcmFtZSkKLQotICAgIGlmIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEyNToKLSAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1BheWxvYWQg
ZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1IGJ5dGVzIG9yIGxlc3MnKQot
Ci0gICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigKLSAgICAgICAgZnJhbWUub3Bjb2RlLCBsZW4o
ZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKLSAgICAgICAgZnJhbWUucnN2MSwgZnJhbWUucnN2
MiwgZnJhbWUucnN2MywgbWFzaykKLSAgICByZXR1cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwgZnJh
bWUucGF5bG9hZCwgbWFzaykKLQotCi1kZWYgY3JlYXRlX3BpbmdfZnJhbWUoYm9keSwgbWFzaz1G
YWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJvbF9mcmFt
ZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVm
IGNyZWF0ZV9wb25nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgot
ICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9uLk9QQ09ERV9QT05HLCBib2R5
LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfY2xvc2VfZnJhbWUoYm9keSwg
bWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJv
bF9mcmFtZSgKLSAgICAgICAgY29tbW9uLk9QQ09ERV9DTE9TRSwgYm9keSwgbWFzaywgZnJhbWVf
ZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVh
c29uKToKLSAgICBib2R5ID0gJycKLSAgICBpZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICBp
ZiAoY29kZSA+IGNvbW1vbi5TVEFUVVNfVVNFUl9QUklWQVRFX01BWCBvcgotICAgICAgICAgICAg
Y29kZSA8IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgotICAgICAgICAgICAgcmFpc2Ug
QmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBpcyBvdXQgb2YgcmFuZ2UnKQotICAg
ICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCBvcgotICAg
ICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgb3IKLSAgICAg
ICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19UTFNfSEFORFNIQUtFKToKLSAgICAgICAgICAg
IHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignU3RhdHVzIGNvZGUgaXMgcmVzZXJ2ZWQgcHNl
dWRvICcKLSAgICAgICAgICAgICAgICAnY29kZScpCi0gICAgICAgIGVuY29kZWRfcmVhc29uID0g
cmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywg
Y29kZSkgKyBlbmNvZGVkX3JlYXNvbgotICAgIHJldHVybiBib2R5Ci0KLQotY2xhc3MgU3RyZWFt
T3B0aW9ucyhvYmplY3QpOgotICAgICIiIkhvbGRzIG9wdGlvbiB2YWx1ZXMgdG8gY29uZmlndXJl
IFN0cmVhbSBvYmplY3RzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIFN0cmVhbU9wdGlvbnMuIiIiCi0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxp
ZWQgdG8gZnJhbWVzLgotICAgICAgICBzZWxmLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQot
ICAgICAgICBzZWxmLmluY29taW5nX2ZyYW1lX2ZpbHRlcnMgPSBbXQotCi0gICAgICAgICMgRmls
dGVycyBhcHBsaWVkIHRvIG1lc3NhZ2VzLiBDb250cm9sIGZyYW1lcyBhcmUgbm90IGFmZmVjdGVk
IGJ5IHRoZW0uCi0gICAgICAgIHNlbGYub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLSAg
ICAgICAgc2VsZi5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMgPSBbXQotCi0gICAgICAgIHNlbGYu
ZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gVHJ1ZQotICAgICAgICBzZWxmLm1hc2tfc2Vu
ZCA9IEZhbHNlCi0gICAgICAgIHNlbGYudW5tYXNrX3JlY2VpdmUgPSBUcnVlCi0KLQotY2xhc3Mg
U3RyZWFtKFN0cmVhbUJhc2UpOgotICAgICIiIkEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcg
ZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wKLSAgICAoUkZDIDY0NTUpLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIG9wdGlvbnMpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBy
ZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgIFN0cmVh
bUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgICAg
ICAjIEhvbGRzIGJvZHkgb2YgcmVjZWl2ZWQgZnJhZ21lbnRzLgotICAgICAgICBzZWxmLl9yZWNl
aXZlZF9mcmFnbWVudHMgPSBbXQotICAgICAgICAjIEhvbGRzIHRoZSBvcGNvZGUgb2YgdGhlIGZp
cnN0IGZyYWdtZW50LgotICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBOb25lCi0KLSAg
ICAgICAgc2VsZi5fd3JpdGVyID0gRnJhZ21lbnRlZEZyYW1lQnVpbGRlcigKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMubWFza19zZW5kLCBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2Zp
bHRlcnMsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVuY29kZV90ZXh0X21lc3NhZ2VfdG9f
dXRmOCkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlID0gZGVxdWUoKQotCi0gICAgZGVmIF9y
ZWNlaXZlX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlcyBhIGZyYW1lIGFuZCByZXR1
cm4gZGF0YSBpbiB0aGUgZnJhbWUgYXMgYSB0dXBsZSBjb250YWluaW5nCi0gICAgICAgIGVhY2gg
aGVhZGVyIGZpZWxkIGFuZCBwYXlsb2FkIHNlcGFyYXRlbHkuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1
cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAgICAgSW52YWxpZEZy
YW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhsZW5ndGgpOgotICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVjZWl2ZV9ieXRlcyhsZW5ndGgpCi0KLSAgICAgICAgcmV0dXJuIHBh
cnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXM9X3JlY2VpdmVfYnl0ZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd3NfdmVyc2lvbj1zZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1zZWxmLl9vcHRpb25zLnVubWFza19yZWNlaXZlKQot
Ci0gICAgZGVmIF9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdChzZWxmKToKLSAgICAgICAg
b3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCByc3YzID0gc2VsZi5fcmVj
ZWl2ZV9mcmFtZSgpCi0KLSAgICAgICAgcmV0dXJuIEZyYW1lKGZpbj1maW4sIHJzdjE9cnN2MSwg
cnN2Mj1yc3YyLCByc3YzPXJzdjMsCi0gICAgICAgICAgICAgICAgICAgICBvcGNvZGU9b3Bjb2Rl
LCBwYXlsb2FkPXVubWFza2VkX2J5dGVzKQotCi0gICAgZGVmIHJlY2VpdmVfZmlsdGVyZWRfZnJh
bWUoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVzIGEgZnJhbWUgYW5kIGFwcGxpZXMgZnJhbWUg
ZmlsdGVycyBhbmQgbWVzc2FnZSBmaWx0ZXJzLgotICAgICAgICBUaGUgZnJhbWUgdG8gYmUgcmVj
ZWl2ZWQgbXVzdCBzYXRpc2Z5IGZvbGxvd2luZyBjb25kaXRpb25zOgotICAgICAgICAtIFRoZSBm
cmFtZSBpcyBub3QgZnJhZ21lbnRlZC4KLSAgICAgICAgLSBUaGUgb3Bjb2RlIG9mIHRoZSBmcmFt
ZSBpcyBURVhUIG9yIEJJTkFSWS4KLQotICAgICAgICBETyBOT1QgVVNFIHRoaXMgbWV0aG9kIGV4
Y2VwdCBmb3IgdGVzdGluZyBwdXJwb3NlLgotICAgICAgICAiIiIKLQotICAgICAgICBmcmFtZSA9
IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkKLSAgICAgICAgaWYgbm90IGZy
YW1lLmZpbjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnU2VnbWVudGVkIGZyYW1lcyBtdXN0IG5vdCBiZSByZWNlaXZlZCB2aWEgJwot
ICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKCknKQotICAgICAgICBpZiAo
ZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfVEVYVCBhbmQKLSAgICAgICAgICAgIGZyYW1l
Lm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFSWSk6Ci0gICAgICAgICAgICByYWlzZSBJbnZh
bGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0NvbnRyb2wgZnJhbWVzIG11c3Qg
bm90IGJlIHJlY2VpdmVkIHZpYSAnCi0gICAgICAgICAgICAgICAgJ3JlY2VpdmVfZmlsdGVyZWRf
ZnJhbWUoKScpCi0KLSAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmlu
Y29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZy
YW1lKQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWlu
Z19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICBmcmFtZS5wYXlsb2FkID0gbWVzc2FnZV9m
aWx0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHJldHVybiBmcmFtZQotCi0gICAg
ZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToK
LSAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
ZXNzYWdlOiB0ZXh0IGluIHVuaWNvZGUgb3IgYmluYXJ5IGluIHN0ciB0byBzZW5kLgotICAgICAg
ICAgICAgYmluYXJ5OiBzZW5kIG1lc3NhZ2UgYXMgYmluYXJ5IGZyYW1lLgotCi0gICAgICAgIFJh
aXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24g
YSBzZXJ2ZXItdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gb3IgY2FsbGVk
IHdpdGggaW5jb25zaXN0ZW50IG1lc3NhZ2UgdHlwZSBvcgotICAgICAgICAgICAgICAgIGJpbmFy
eSBwYXJhbWV0ZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2Vy
dmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBv
dXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3Rh
bmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBi
ZSBpbnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxm
Ll9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2Ug
PSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgIyBTZXQgdGhpcyB0byBhbnkgcG9zaXRpdmUgaW50ZWdlciB0byBs
aW1pdCBtYXhpbXVtIHNpemUgb2YgZGF0YSBpbgotICAgICAgICAgICAgIyBwYXlsb2FkIGRhdGEg
b2YgZWFjaCBmcmFtZS4KLSAgICAgICAgICAgIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA9IC0xCi0K
LSAgICAgICAgICAgIGlmIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA8PSAwOgotICAgICAgICAgICAg
ICAgIHNlbGYuX3dyaXRlKHNlbGYuX3dyaXRlci5idWlsZChtZXNzYWdlLCBlbmQsIGJpbmFyeSkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gPSAw
Ci0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19m
cmFtZSA9IGVuZAotICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRlID0gbGVuKG1lc3NhZ2Up
IC0gYnl0ZXNfd3JpdHRlbgotICAgICAgICAgICAgICAgIGlmIChNQVhfUEFZTE9BRF9EQVRBX1NJ
WkUgPiAwIGFuZAotICAgICAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA+IE1BWF9QQVlM
T0FEX0RBVEFfU0laRSk6Ci0gICAgICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFtZSA9
IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRlID0gTUFYX1BBWUxPQURf
REFUQV9TSVpFCi0KLSAgICAgICAgICAgICAgICBmcmFtZSA9IHNlbGYuX3dyaXRlci5idWlsZCgK
LSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVtieXRlc193cml0dGVuOmJ5dGVzX3dyaXR0ZW4g
KyBieXRlc190b193cml0ZV0sCi0gICAgICAgICAgICAgICAgICAgIGVuZF9mb3JfdGhpc19mcmFt
ZSwKLSAgICAgICAgICAgICAgICAgICAgYmluYXJ5KQotICAgICAgICAgICAgICAgIHNlbGYuX3dy
aXRlKGZyYW1lKQotCi0gICAgICAgICAgICAgICAgYnl0ZXNfd3JpdHRlbiArPSBieXRlc190b193
cml0ZQotCi0gICAgICAgICAgICAgICAgIyBUaGlzIGlmIG11c3QgYmUgcGxhY2VkIGhlcmUgKHRo
ZSBlbmQgb2Ygd2hpbGUgYmxvY2spIHNvIHRoYXQKLSAgICAgICAgICAgICAgICAjIGF0IGxlYXN0
IG9uZSBmcmFtZSBpcyBzZW50LgotICAgICAgICAgICAgICAgIGlmIGxlbihtZXNzYWdlKSA8PSBi
eXRlc193cml0dGVuOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBleGNlcHQg
VmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihl
KQotCi0gICAgZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAg
ICAgIiIiR2V0cyBhIG1lc3NhZ2UgZnJvbSBmcmFtZS4gSWYgdGhlIG1lc3NhZ2UgaXMgY29tcG9z
ZWQgb2YgZnJhZ21lbnRlZAotICAgICAgICBmcmFtZXMgYW5kIHRoZSBmcmFtZSBpcyBub3QgdGhl
IGxhc3QgZnJhZ21lbnRlZCBmcmFtZSwgdGhpcyBtZXRob2QKLSAgICAgICAgcmV0dXJucyBOb25l
LiBUaGUgd2hvbGUgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIHdoZW4gdGhlIGxhc3QKLSAgICAg
ICAgZnJhZ21lbnRlZCBmcmFtZSBpcyBwYXNzZWQgdG8gdGhpcyBtZXRob2QuCi0KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFt
ZSBkb2Vzbid0IG1hdGNoIGRlZnJhZ21lbnRhdGlvbgotICAgICAgICAgICAgICAgIGNvbnRleHQs
IG9yIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHM6Ci0gICAgICAgICAgICAgICAg
aWYgZnJhbWUuZmluOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYSB0ZXJtaW5hdGlvbiBm
cmFtZSBidXQgZnJhZ21lbnRhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnbm90IHN0
YXJ0ZWQnKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZl
ZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUgYnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdm
cmFnbWVudGF0aW9uIG5vdCBzdGFydGVkJykKLQotICAgICAgICAgICAgaWYgZnJhbWUuZmluOgot
ICAgICAgICAgICAgICAgICMgRW5kIG9mIGZyYWdtZW50YXRpb24gZnJhbWUKLSAgICAgICAgICAg
ICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAg
ICAgICAgICAgICAgbWVzc2FnZSA9ICcnLmpvaW4oc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzKQot
ICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
IyBJbnRlcm1lZGlhdGUgZnJhbWUKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFn
bWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50czoK
LSAgICAgICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZl
ZCBhbiB1bmZyYWdtZW50ZWQgZnJhbWUgd2l0aG91dCAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAndGVybWluYXRpbmcgZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicpCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ05ldyBmcmFnbWVudGF0aW9uIHN0YXJ0ZWQgd2l0aG91
dCB0ZXJtaW5hdGluZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RpbmcgZnJhZ21l
bnRhdGlvbicpCi0KLSAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAj
IFVuZnJhZ21lbnRlZCBmcmFtZQotCi0gICAgICAgICAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bj
b2RlID0gZnJhbWUub3Bjb2RlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZyYW1lLnBheWxvYWQK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBTdGFydCBvZiBmcmFnbWVudGF0
aW9uIGZyYW1lCi0KLSAgICAgICAgICAgICAgICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUo
ZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRyb2wgZnJhbWVzIG11c3Qgbm90
IGJlIGZyYWdtZW50ZWQnKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2Rl
ID0gZnJhbWUub3Bjb2RlCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRz
LmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICBkZWYgX3Byb2Nlc3NfY2xvc2VfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIi
UHJvY2Vzc2VzIGNsb3NlIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1l
c3NhZ2U6IGNsb3NlIG1lc3NhZ2UuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgSW52
YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBtZXNzYWdlIGlzIGludmFsaWQuCi0gICAgICAg
ICIiIgotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBUcnVlCi0K
LSAgICAgICAgIyBTdGF0dXMgY29kZSBpcyBvcHRpb25hbC4gV2UgY2FuIGhhdmUgc3RhdHVzIHJl
YXNvbiBvbmx5IGlmIHdlCi0gICAgICAgICMgaGF2ZSBzdGF0dXMgY29kZS4gU3RhdHVzIHJlYXNv
biBjYW4gYmUgZW1wdHkgc3RyaW5nLiBTbywKLSAgICAgICAgIyBhbGxvd2VkIGNhc2VzIGFyZQot
ICAgICAgICAjIC0gbm8gYXBwbGljYXRpb24gZGF0YTogbm8gY29kZSBubyByZWFzb24KLSAgICAg
ICAgIyAtIDIgb2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogaGFzIGNvZGUgYnV0IG5vIHJlYXNv
bgotICAgICAgICAjIC0gMyBvciBtb3JlIG9jdGV0IG9mIGFwcGxpY2F0aW9uIGRhdGE6IGJvdGgg
Y29kZSBhbmQgcmVhc29uCi0gICAgICAgIGlmIGxlbihtZXNzYWdlKSA9PSAwOgotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBjbG9zZSBmcmFtZSAoZW1wdHkgYm9keSkn
KQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlID0gKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEKQotICAgICAgICBlbGlmIGxl
bihtZXNzYWdlKSA9PSAxOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdJZiBhIGNsb3NlIGZyYW1lIGhhcyBzdGF0dXMgY29kZSwgdGhl
IGxlbmd0aCBvZiAnCi0gICAgICAgICAgICAgICAgJ3N0YXR1cyBjb2RlIG11c3QgYmUgMiBvY3Rl
dCcpCi0gICAgICAgIGVsaWYgbGVuKG1lc3NhZ2UpID49IDI6Ci0gICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgICAgICch
SCcsIG1lc3NhZ2VbMDoyXSlbMF0KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2Vf
cmVhc29uID0gbWVzc2FnZVsyOl0uZGVjb2RlKAotICAgICAgICAgICAgICAgICd1dGYtOCcsICdy
ZXBsYWNlJykKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAg
ICAnUmVjZWl2ZWQgY2xvc2UgZnJhbWUgKGNvZGU9JWQsIHJlYXNvbj0lciknLAotICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSwKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbikKLQotICAgICAgICAjIEFzIHdlJ3ZlIHJlY2VpdmVk
IGEgY2xvc2UgZnJhbWUsIG5vIG1vcmUgZGF0YSBpcyBjb21pbmcgb3ZlciB0aGUKLSAgICAgICAg
IyBzb2NrZXQuIFdlIGNhbiBub3cgc2FmZWx5IGNsb3NlIHRoZSBzb2NrZXQgd2l0aG91dCB3b3Jy
eWluZyBhYm91dAotICAgICAgICAjIFJTVCBzZW5kaW5nLgotCi0gICAgICAgIGlmIHNlbGYuX3Jl
cXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9z
aW5nIGhhbmRzaGFrZScpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoCi0gICAgICAgICAgICAnUmVjZWl2ZWQgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5n
IGhhbmRzaGFrZScpCi0KLSAgICAgICAgY29kZSA9IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NV
UkUKLSAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9yZXF1ZXN0
LCAnX2Rpc3BhdGNoZXInKToKLSAgICAgICAgICAgIGRpc3BhdGNoZXIgPSBzZWxmLl9yZXF1ZXN0
Ll9kaXNwYXRjaGVyCi0gICAgICAgICAgICBjb2RlLCByZWFzb24gPSBkaXNwYXRjaGVyLnBhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2UoCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCkKLSAg
ICAgICAgICAgIGlmIGNvZGUgaXMgTm9uZSBhbmQgcmVhc29uIGlzIG5vdCBOb25lIGFuZCBsZW4o
cmVhc29uKSA+IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoCi0gICAg
ICAgICAgICAgICAgICAgICdIYW5kbGVyIHNwZWNpZmllZCByZWFzb24gZGVzcGl0ZSBjb2RlIGJl
aW5nIE5vbmUnKQotICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgICAgICBpZiBy
ZWFzb24gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZWFzb24gPSAnJwotICAgICAgICBzZWxm
Ll9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNvZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ0Fja25vd2xlZGdlZCBjbG9zaW5nIGhhbmRzaGFrZSBp
bml0aWF0ZWQgYnkgdGhlIHBlZXIgJwotICAgICAgICAgICAgJyhjb2RlPSVyLCByZWFzb249JXIp
JywgY29kZSwgcmVhc29uKQotCi0gICAgZGVmIF9wcm9jZXNzX3BpbmdfbWVzc2FnZShzZWxmLCBt
ZXNzYWdlKToKLSAgICAgICAgIiIiUHJvY2Vzc2VzIHBpbmcgbWVzc2FnZS4KLQotICAgICAgICBB
cmdzOgotICAgICAgICAgICAgbWVzc2FnZTogcGluZyBtZXNzYWdlLgotICAgICAgICAiIiIKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kbGVyID0gc2VsZi5fcmVxdWVzdC5vbl9waW5n
X2hhbmRsZXIKLSAgICAgICAgICAgIGlmIGhhbmRsZXI6Ci0gICAgICAgICAgICAgICAgaGFuZGxl
cihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3IsIGU6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIHNl
bGYuX3NlbmRfcG9uZyhtZXNzYWdlKQotCi0gICAgZGVmIF9wcm9jZXNzX3BvbmdfbWVzc2FnZShz
ZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiUHJvY2Vzc2VzIHBvbmcgbWVzc2FnZS4KLQotICAg
ICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogcG9uZyBtZXNzYWdlLgotICAgICAgICAi
IiIKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgcGluZyB0aW1lb3V0IGhhbmRsaW5n
LgotCi0gICAgICAgIGluZmxpZ2h0X3BpbmdzID0gZGVxdWUoKQotCi0gICAgICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfYm9keSA9IHNl
bGYuX3BpbmdfcXVldWUucG9wbGVmdCgpCi0gICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfYm9k
eSA9PSBtZXNzYWdlOgotICAgICAgICAgICAgICAgICAgICAjIGluZmxpZ2h0X3BpbmdzIGNvbnRh
aW5zIHBpbmdzIGlnbm9yZWQgYnkgdGhlCi0gICAgICAgICAgICAgICAgICAgICMgb3RoZXIgcGVl
ci4gSnVzdCBmb3JnZXQgdGhlbS4KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1BpbmcgJXIgaXMgYWNrZWQgKCVkIHBpbmdz
IHdlcmUgaWdub3JlZCknLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfYm9keSwg
bGVuKGluZmxpZ2h0X3BpbmdzKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpbmZsaWdodF9waW5ncy5hcHBlbmQo
ZXhwZWN0ZWRfYm9keSkKLSAgICAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yLCBlOgotICAgICAg
ICAgICAgICAgICMgVGhlIHJlY2VpdmVkIHBvbmcgd2FzIHVuc29saWNpdGVkIHBvbmcuIEtlZXAg
dGhlCi0gICAgICAgICAgICAgICAgIyBwaW5nIHF1ZXVlIGFzIGlzLgotICAgICAgICAgICAgICAg
IHNlbGYuX3BpbmdfcXVldWUgPSBpbmZsaWdodF9waW5ncwotICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYSB1bnNvbGljaXRlZCBwb25nJykKLSAgICAgICAgICAg
ICAgICBicmVhawotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRsZXIgPSBzZWxmLl9y
ZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlcgotICAgICAgICAgICAgaWYgaGFuZGxlcjoKLSAgICAgICAg
ICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvciwgZToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIGRlZiByZWNlaXZlX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJl
dHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KLSAgICAgICAgdW5pY29kZSBvciBhIGJpbmFy
eSBpbiBzdHIuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIHBheWxvYWQgZGF0YSBv
ZiB0aGUgZnJhbWUKLSAgICAgICAgICAgIC0gYXMgdW5pY29kZSBpbnN0YW5jZSBpZiByZWNlaXZl
ZCB0ZXh0IGZyYW1lCi0gICAgICAgICAgICAtIGFzIHN0ciBpbnN0YW5jZSBpZiByZWNlaXZlZCBi
aW5hcnkgZnJhbWUKLSAgICAgICAgICAgIG9yIE5vbmUgaWZmIHJlY2VpdmVkIGNsb3NpbmcgaGFu
ZHNoYWtlLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRp
b246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdo
ZW4gcmVhZCByZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAg
ICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlk
Ci0gICAgICAgICAgICAgICAgZGF0YS4KLSAgICAgICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNl
cHRpb246IHdoZW4gdGhlIHJlY2VpdmVkIGZyYW1lIGhhcwotICAgICAgICAgICAgICAgIGZsYWdz
LCBvcGNvZGUgd2UgY2Fubm90IGhhbmRsZS4gWW91IGNhbiBpZ25vcmUgdGhpcwotICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbiBhbmQgY29udGludWUgcmVjZWl2aW5nIHRoZSBuZXh0IGZyYW1lLgot
ICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVk
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3Npbmcg
JwotICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0g
ICAgICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxsIGJsb2NrIGlmIG5vIGJ5dGVzIGFyZSBhdmFp
bGFibGUuCi0gICAgICAgICAgICAjIFRpbWVvdXQgaXMgY29udHJvbGxlZCBieSBUaW1lT3V0IGRp
cmVjdGl2ZSBvZiBBcGFjaGUuCi0KLSAgICAgICAgICAgIGZyYW1lID0gc2VsZi5fcmVjZWl2ZV9m
cmFtZV9hc19mcmFtZV9vYmplY3QoKQotCi0gICAgICAgICAgICAjIENoZWNrIHRoZSBjb25zdHJh
aW50IG9uIHRoZSBwYXlsb2FkIHNpemUgZm9yIGNvbnRyb2wgZnJhbWVzCi0gICAgICAgICAgICAj
IGJlZm9yZSBleHRlbnNpb24gcHJvY2Vzc2VzIHRoZSBmcmFtZS4KLSAgICAgICAgICAgICMgU2Vl
IGFsc28gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NSNzZWN0aW9uLTUuNQotICAg
ICAgICAgICAgaWYgKGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpIGFuZAot
ICAgICAgICAgICAgICAgIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEyNSk6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnUGF5
bG9hZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFtZXMgbXVzdCBiZSAxMjUgYnl0ZXMgb3IgJwot
ICAgICAgICAgICAgICAgICAgICAnbGVzcycpCi0KLSAgICAgICAgICAgIGZvciBmcmFtZV9maWx0
ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzOgotICAgICAgICAgICAg
ICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgICAgIGlmIGZyYW1lLnJz
djEgb3IgZnJhbWUucnN2MiBvciBmcmFtZS5yc3YzOgotICAgICAgICAgICAgICAgIHJhaXNlIFVu
c3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdVbnN1cHBvcnRl
ZCBmbGFnIGlzIHNldCAocnN2ID0gJWQlZCVkKScgJQotICAgICAgICAgICAgICAgICAgICAoZnJh
bWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MykpCi0KLSAgICAgICAgICAgIG1lc3NhZ2Ug
PSBzZWxmLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKGZyYW1lKQotICAgICAgICAgICAgaWYgbWVz
c2FnZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIGZv
ciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVy
czoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKG1lc3Nh
Z2UpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BD
T0RFX1RFWFQ6Ci0gICAgICAgICAgICAgICAgIyBUaGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rp
b24gNC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKLSAgICAgICAgICAgICAgICAjIGNoYXJhY3Rl
cnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVOVAotICAgICAgICAgICAg
ICAgICMgQ0hBUkFDVEVSLgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIG1lc3NhZ2UuZGVjb2RlKCd1dGYtOCcpCi0gICAgICAgICAgICAgICAgZXhjZXB0
IFVuaWNvZGVEZWNvZGVFcnJvciwgZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxp
ZFVURjhFeGNlcHRpb24oZSkKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2Rl
ID09IGNvbW1vbi5PUENPREVfQklOQVJZOgotICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdl
Ci0gICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RF
X0NMT1NFOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY2xvc2VfbWVzc2FnZShtZXNz
YWdlKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBlbGlmIHNlbGYu
X29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX1BJTkc6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fcHJvY2Vzc19waW5nX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGVsaWYgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfUE9ORzoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9wcm9jZXNzX3BvbmdfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICAgICAnT3Bjb2RlICVkIGlzIG5vdCBzdXBwb3J0ZWQnICUgc2VsZi5fb3JpZ2lu
YWxfb3Bjb2RlKQotCi0gICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUs
IHJlYXNvbik6Ci0gICAgICAgIGJvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keShj
b2RlLCByZWFzb24pCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2Nsb3NlX2ZyYW1lKAotICAgICAg
ICAgICAgYm9keSwgbWFzaz1zZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKLSAgICAgICAgICAgIGZy
YW1lX2ZpbHRlcnM9c2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzKQotCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgc2Vs
Zi5fd3JpdGUoZnJhbWUpCi0KLSAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmLCBjb2RlPWNv
bW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICB3YWl0X3Jlc3BvbnNlPVRydWUpOgotICAgICAgICAiIiJDbG9zZXMgYSBXZWJTb2Nr
ZXQgY29ubmVjdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY29kZTogU3RhdHVz
IGNvZGUgZm9yIGNsb3NlIGZyYW1lLiBJZiBjb2RlIGlzIE5vbmUsIGEgY2xvc2UKLSAgICAgICAg
ICAgICAgICBmcmFtZSB3aXRoIGVtcHR5IGJvZHkgd2lsbCBiZSBzZW50LgotICAgICAgICAgICAg
cmVhc29uOiBzdHJpbmcgcmVwcmVzZW50aW5nIGNsb3NlIHJlYXNvbi4KLSAgICAgICAgICAgIHdh
aXRfcmVzcG9uc2U6IFRydWUgd2hlbiBjYWxsZXIgd2FudCB0byB3YWl0IHRoZSByZXNwb25zZS4K
LSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVu
IHJlYXNvbiBpcyBzcGVjaWZpZWQgd2l0aCBjb2RlIE5vbmUKLSAgICAgICAgICAgIG9yIHJlYXNv
biBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgYm90aCBzdHIgYW5kIHVuaWNvZGUuCi0gICAgICAgICIi
IgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9z
ZV9jb25uZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5hdGVkJykKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIGlmIGNvZGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHJl
YXNvbiBpcyBub3QgTm9uZSBhbmQgbGVuKHJlYXNvbikgPiAwOgotICAgICAgICAgICAgICAgIHJh
aXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJl
YXNvbiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgaWYgY29kZSBpcyBOb25lJykKLSAgICAgICAgICAg
IHJlYXNvbiA9ICcnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShyZWFzb24sIHN0cikgYW5kIG5vdCBpc2luc3RhbmNlKHJlYXNvbiwgdW5pY29kZSk6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAnY2xvc2UgcmVhc29uIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Ygc3RyIG9yIHVuaWNvZGUn
KQotCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoY29kZSwgcmVhc29uKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnSW5pdGlhdGVkIGNsb3Np
bmcgaGFuZHNoYWtlIChjb2RlPSVyLCByZWFzb249JXIpJywKLSAgICAgICAgICAgIGNvZGUsIHJl
YXNvbikKLQotICAgICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX0dPSU5HX0FXQVkgb3IK
LSAgICAgICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19QUk9UT0NPTF9FUlJPUikgb3Igbm90
IHdhaXRfcmVzcG9uc2U6Ci0gICAgICAgICAgICAjIEl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byB3
YWl0IGZvciBhIGNsb3NlIGZyYW1lIGlmIHRoZSByZWFzb24gaXMKLSAgICAgICAgICAgICMgcHJv
dG9jb2wgZXJyb3Igb3IgdGhhdCB0aGUgc2VydmVyIGlzIGdvaW5nIGF3YXkuIEZvciBzb21lIG9m
Ci0gICAgICAgICAgICAjIG90aGVyIHJlYXNvbnMsIGl0IG1pZ2h0IG5vdCBtYWtlIHNlbnNlIHRv
IHdhaXQgZm9yIGEgY2xvc2UgZnJhbWUsCi0gICAgICAgICAgICAjIGJ1dCBpdCdzIG5vdCBjbGVh
ciwgeWV0LgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiAyLiB3
YWl0IHVudGlsIHRoZSAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgaGFzIGJlZW4gc2V0LAotICAg
ICAgICAjIG9yIHVudGlsIGEgc2VydmVyLWRlZmluZWQgdGltZW91dCBleHBpcmVzLgotICAgICAg
ICAjCi0gICAgICAgICMgRm9yIG5vdywgd2UgZXhwZWN0IHJlY2VpdmluZyBjbG9zaW5nIGhhbmRz
aGFrZSByaWdodCBhZnRlciBzZW5kaW5nCi0gICAgICAgICMgb3V0IGNsb3NpbmcgaGFuZHNoYWtl
LgotICAgICAgICBtZXNzYWdlID0gc2VsZi5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBt
ZXNzYWdlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0RpZG5cJ3QgcmVjZWl2ZSB2YWxpZCBhY2sg
Zm9yIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgIyBUT0RPOiAzLiBjbG9zZSB0aGUgV2Vi
U29ja2V0IGNvbm5lY3Rpb24uCi0gICAgICAgICMgbm90ZTogbW9kX3B5dGhvbiBDb25uZWN0aW9u
IChtcF9jb25uKSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0aG9kLgotCi0gICAgZGVmIHNlbmRfcGlu
ZyhzZWxmLCBib2R5PScnKToKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfcGluZ19mcmFtZSgKLSAg
ICAgICAgICAgIGJvZHksCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLSAgICAgICAg
c2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5fcGluZ19xdWV1ZS5hcHBlbmQoYm9k
eSkKLQotICAgIGRlZiBfc2VuZF9wb25nKHNlbGYsIGJvZHkpOgotICAgICAgICBmcmFtZSA9IGNy
ZWF0ZV9wb25nX2ZyYW1lKAotICAgICAgICAgICAgYm9keSwKLSAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFt
ZV9maWx0ZXJzKQotICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAgIGRlZiBnZXRfbGFz
dF9yZWNlaXZlZF9vcGNvZGUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIG9wY29kZSBv
ZiB0aGUgV2ViU29ja2V0IG1lc3NhZ2Ugd2hpY2ggdGhlIGxhc3QgcmVjZWl2ZWQKLSAgICAgICAg
ZnJhbWUgYmVsb25ncyB0by4gVGhlIHJldHVybiB2YWx1ZSBpcyB2YWxpZCBpZmYgaW1tZWRpYXRl
bHkgYWZ0ZXIKLSAgICAgICAgcmVjZWl2ZV9tZXNzYWdlIGNhbGwuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHJldHVybiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9jb21tb24ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyZmMyZWFkNjQ4MWJlNTdiN2FlNGM2NjhjMjJlY2IxZWM0YmJjYjJiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNv
Y2tldC9jb21tb24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIG11c3Qgbm90IGRlcGVuZCBvbiBhbnkgbW9kdWxlIHNw
ZWNpZmljIHRvIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wuCi0iIiIKLQotCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotCi0KLSMgQWRkaXRpb25hbCBsb2cgbGV2
ZWwgZGVmaW5pdGlvbnMuCi1MT0dMRVZFTF9GSU5FID0gOQotCi0jIENvbnN0YW50cyBpbmRpY2F0
aW5nIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uLgotVkVSU0lPTl9ISVhJRTc1ID0gLTEKLVZF
UlNJT05fSFlCSTAwID0gMAotVkVSU0lPTl9IWUJJMDEgPSAxCi1WRVJTSU9OX0hZQkkwMiA9IDIK
LVZFUlNJT05fSFlCSTAzID0gMgotVkVSU0lPTl9IWUJJMDQgPSA0Ci1WRVJTSU9OX0hZQkkwNSA9
IDUKLVZFUlNJT05fSFlCSTA2ID0gNgotVkVSU0lPTl9IWUJJMDcgPSA3Ci1WRVJTSU9OX0hZQkkw
OCA9IDgKLVZFUlNJT05fSFlCSTA5ID0gOAotVkVSU0lPTl9IWUJJMTAgPSA4Ci1WRVJTSU9OX0hZ
QkkxMSA9IDgKLVZFUlNJT05fSFlCSTEyID0gOAotVkVSU0lPTl9IWUJJMTMgPSAxMwotVkVSU0lP
Tl9IWUJJMTQgPSAxMwotVkVSU0lPTl9IWUJJMTUgPSAxMwotVkVSU0lPTl9IWUJJMTYgPSAxMwot
VkVSU0lPTl9IWUJJMTcgPSAxMwotCi0jIENvbnN0YW50cyBpbmRpY2F0aW5nIFdlYlNvY2tldCBw
cm90b2NvbCBsYXRlc3QgdmVyc2lvbi4KLVZFUlNJT05fSFlCSV9MQVRFU1QgPSBWRVJTSU9OX0hZ
QkkxMwotCi0jIFBvcnQgbnVtYmVycwotREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAotREVG
QVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUID0gNDQzCi0KLSMgU2NoZW1lcwotV0VCX1NPQ0tF
VF9TQ0hFTUUgPSAnd3MnCi1XRUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUgPSAnd3NzJwotCi0jIEZy
YW1lIG9wY29kZXMgZGVmaW5lZCBpbiB0aGUgc3BlYy4KLU9QQ09ERV9DT05USU5VQVRJT04gPSAw
eDAKLU9QQ09ERV9URVhUID0gMHgxCi1PUENPREVfQklOQVJZID0gMHgyCi1PUENPREVfQ0xPU0Ug
PSAweDgKLU9QQ09ERV9QSU5HID0gMHg5Ci1PUENPREVfUE9ORyA9IDB4YQotCi0jIFVVSURzIHVz
ZWQgYnkgSHlCaSAwNCBhbmQgbGF0ZXIgb3BlbmluZyBoYW5kc2hha2UgYW5kIGZyYW1lIG1hc2tp
bmcuCi1XRUJTT0NLRVRfQUNDRVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVB
QjBEQzg1QjExJwotCi0jIE9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlciBuYW1lcyBhbmQgZXhwZWN0
ZWQgdmFsdWVzLgotVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZScKLVdFQlNPQ0tFVF9VUEdSQURF
X1RZUEUgPSAnd2Vic29ja2V0JwotV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1ID0gJ1dl
YlNvY2tldCcKLUNPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb24nCi1VUEdSQURFX0NPTk5F
Q1RJT05fVFlQRSA9ICdVcGdyYWRlJwotSE9TVF9IRUFERVIgPSAnSG9zdCcKLU9SSUdJTl9IRUFE
RVIgPSAnT3JpZ2luJwotU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSID0gJ1NlYy1XZWJTb2Nr
ZXQtT3JpZ2luJwotU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5
JwotU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0Jwot
U0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVZlcnNpb24nCi1T
RUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJwot
U0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMnCi1TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LURyYWZ0Jwot
U0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTEnCi1TRUNfV0VC
U09DS0VUX0tFWTJfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5MicKLVNFQ19XRUJTT0NLRVRf
TE9DQVRJT05fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb24nCi0KLSMgRXh0ZW5zaW9u
cwotREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKLVBFUk1FU1NBR0Vf
Q09NUFJFU1NJT05fRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtY29tcHJlc3MnCi1QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKLVhfV0VCS0lUX0RFRkxB
VEVfRlJBTUVfRVhURU5TSU9OID0gJ3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnCi1YX1dFQktJVF9Q
RVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiA9ICd4LXdlYmtpdC1wZXJtZXNzYWdlLWNv
bXByZXNzJwotTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKLQotIyBTdGF0dXMgY29k
ZXMKLSMgQ29kZSBTVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVELCBTVEFUVVNfQUJOT1JNQUxfQ0xP
U1VSRSwgYW5kCi0jIFNUQVRVU19UTFNfSEFORFNIQUtFIGFyZSBwc2V1ZG8gY29kZXMgdG8gaW5k
aWNhdGUgc3BlY2lmaWMgZXJyb3IgY2FzZXMuCi0jIENvdWxkIG5vdCBiZSB1c2VkIGZvciBjb2Rl
cyBpbiBhY3R1YWwgY2xvc2luZyBmcmFtZXMuCi0jIEFwcGxpY2F0aW9uIGxldmVsIGVycm9ycyBt
dXN0IHVzZSBjb2RlcyBpbiB0aGUgcmFuZ2UKLSMgU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNF
IHRvIFNUQVRVU19VU0VSX1BSSVZBVEVfTUFYLiBUaGUgY29kZXMgaW4gdGhlCi0jIHJhbmdlIFNU
QVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX01BWCBh
cmUgbWFuYWdlZAotIyBieSBJQU5BLiBVc3VhbGx5IGFwcGxpY2F0aW9uIG11c3QgZGVmaW5lIHVz
ZXIgcHJvdG9jb2wgbGV2ZWwgZXJyb3JzIGluIHRoZQotIyByYW5nZSBTVEFUVVNfVVNFUl9QUklW
QVRFX0JBU0UgdG8gU1RBVFVTX1VTRVJfUFJJVkFURV9NQVguCi1TVEFUVVNfTk9STUFMX0NMT1NV
UkUgPSAxMDAwCi1TVEFUVVNfR09JTkdfQVdBWSA9IDEwMDEKLVNUQVRVU19QUk9UT0NPTF9FUlJP
UiA9IDEwMDIKLVNUQVRVU19VTlNVUFBPUlRFRF9EQVRBID0gMTAwMwotU1RBVFVTX05PX1NUQVRV
U19SRUNFSVZFRCA9IDEwMDUKLVNUQVRVU19BQk5PUk1BTF9DTE9TVVJFID0gMTAwNgotU1RBVFVT
X0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBID0gMTAwNwotU1RBVFVTX1BPTElDWV9WSU9MQVRJ
T04gPSAxMDA4Ci1TVEFUVVNfTUVTU0FHRV9UT09fQklHID0gMTAwOQotU1RBVFVTX01BTkRBVE9S
WV9FWFRFTlNJT04gPSAxMDEwCi1TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IgPSAxMDEx
Ci1TVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUKLVNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFT
RSA9IDMwMDAKLVNUQVRVU19VU0VSX1JFR0lTVEVSRURfTUFYID0gMzk5OQotU1RBVFVTX1VTRVJf
UFJJVkFURV9CQVNFID0gNDAwMAotU1RBVFVTX1VTRVJfUFJJVkFURV9NQVggPSA0OTk5Ci0jIEZv
bGxvd2luZyBkZWZpbml0aW9ucyBhcmUgYWxpYXNlcyB0byBrZWVwIGNvbXBhdGliaWxpdHkuIEFw
cGxpY2F0aW9ucyBtdXN0Ci0jIG5vdCB1c2UgdGhlc2Ugb2Jzb2xldGVkIGRlZmluaXRpb25zIGFu
eW1vcmUuCi1TVEFUVVNfTk9STUFMID0gU1RBVFVTX05PUk1BTF9DTE9TVVJFCi1TVEFUVVNfVU5T
VVBQT1JURUQgPSBTVEFUVVNfVU5TVVBQT1JURURfREFUQQotU1RBVFVTX0NPREVfTk9UX0FWQUlM
QUJMRSA9IFNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQKLVNUQVRVU19BQk5PUk1BTF9DTE9TRSA9
IFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFCi1TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEID0g
U1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBCi1TVEFUVVNfTUFOREFUT1JZX0VYVCA9
IFNUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OCi0KLSMgSFRUUCBzdGF0dXMgY29kZXMKLUhUVFBf
U1RBVFVTX0JBRF9SRVFVRVNUID0gNDAwCi1IVFRQX1NUQVRVU19GT1JCSURERU4gPSA0MDMKLUhU
VFBfU1RBVFVTX05PVF9GT1VORCA9IDQwNAotCi0KLWRlZiBpc19jb250cm9sX29wY29kZShvcGNv
ZGUpOgotICAgIHJldHVybiAob3Bjb2RlID4+IDMpID09IDEKLQotCi1jbGFzcyBFeHRlbnNpb25Q
YXJhbWV0ZXIob2JqZWN0KToKLSAgICAiIiJIb2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhbiBleHRl
bnNpb24gd2hpY2ggaXMgZXhjaGFuZ2VkIG9uIGV4dGVuc2lvbgotICAgIG5lZ290aWF0aW9uIGlu
IG9wZW5pbmcgaGFuZHNoYWtlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUpOgotICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQotICAgICAgICAjIFRPRE8odHlvc2hpbm8p
OiBDaGFuZ2UgdGhlIGRhdGEgc3RydWN0dXJlIHRvIG1vcmUgZWZmaWNpZW50IG9uZSBzdWNoCi0g
ICAgICAgICMgYXMgZGljdCB3aGVuIHRoZSBzcGVjIGNoYW5nZXMgdG8gc2F5IGxpa2UKLSAgICAg
ICAgIyAtIFBhcmFtZXRlciBuYW1lcyBtdXN0IGJlIHVuaXF1ZQotICAgICAgICAjIC0gVGhlIG9y
ZGVyIG9mIHBhcmFtZXRlcnMgaXMgbm90IHNpZ25pZmljYW50Ci0gICAgICAgIHNlbGYuX3BhcmFt
ZXRlcnMgPSBbXQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9u
YW1lCi0KLSAgICBkZWYgYWRkX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAg
IHNlbGYuX3BhcmFtZXRlcnMuYXBwZW5kKChuYW1lLCB2YWx1ZSkpCi0KLSAgICBkZWYgZ2V0X3Bh
cmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9wYXJhbWV0ZXJzCi0KLSAgICBk
ZWYgZ2V0X3BhcmFtZXRlcl9uYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIFtuYW1lIGZvciBu
YW1lLCB1bnVzZWRfdmFsdWUgaW4gc2VsZi5fcGFyYW1ldGVyc10KLQotICAgIGRlZiBoYXNfcGFy
YW1ldGVyKHNlbGYsIG5hbWUpOgotICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUg
aW4gc2VsZi5fcGFyYW1ldGVyczoKLSAgICAgICAgICAgIGlmIHBhcmFtX25hbWUgPT0gbmFtZToK
LSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IGRlZiBnZXRfcGFyYW1ldGVyX3ZhbHVlKHNlbGYsIG5hbWUpOgotICAgICAgICBmb3IgcGFyYW1f
bmFtZSwgcGFyYW1fdmFsdWUgaW4gc2VsZi5fcGFyYW1ldGVyczoKLSAgICAgICAgICAgIGlmIHBh
cmFtX25hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gcGFyYW1fdmFsdWUKLQot
Ci1jbGFzcyBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG5hbWUpOgotICAgICAgICBzdXBlcihFeHRlbnNpb25QYXJzaW5nRXhjZXB0
aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotCi0KLWRlZiBfcGFyc2VfZXh0ZW5zaW9uX3BhcmFt
KHN0YXRlLCBkZWZpbml0aW9uKToKLSAgICBwYXJhbV9uYW1lID0gaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX3Rva2VuKHN0YXRlKQotCi0gICAgaWYgcGFyYW1fbmFtZSBpcyBOb25lOgotICAgICAg
ICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uKCdObyB2YWxpZCBwYXJhbWV0ZXIgbmFt
ZSBmb3VuZCcpCi0KLSAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0K
LSAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJz0nKToK
LSAgICAgICAgZGVmaW5pdGlvbi5hZGRfcGFyYW1ldGVyKHBhcmFtX25hbWUsIE5vbmUpCi0gICAg
ICAgIHJldHVybgotCi0gICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQot
Ci0gICAgIyBUT0RPKHR5b3NoaW5vKTogQWRkIGNvZGUgdG8gdmFsaWRhdGUgdGhhdCBwYXJzZWQg
cGFyYW1fdmFsdWUgaXMgdG9rZW4KLSAgICBwYXJhbV92YWx1ZSA9IGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV90b2tlbl9vcl9xdW90ZWRfc3RyaW5nKHN0YXRlKQotICAgIGlmIHBhcmFtX3ZhbHVl
IGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAg
ICAgICAgICAnTm8gdmFsaWQgcGFyYW1ldGVyIHZhbHVlIGZvdW5kIG9uIHRoZSByaWdodC1oYW5k
IHNpZGUgb2YgJwotICAgICAgICAgICAgJ3BhcmFtZXRlciAlcicgJSBwYXJhbV9uYW1lKQotCi0g
ICAgZGVmaW5pdGlvbi5hZGRfcGFyYW1ldGVyKHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlKQotCi0K
LWRlZiBfcGFyc2VfZXh0ZW5zaW9uKHN0YXRlKToKLSAgICBleHRlbnNpb25fdG9rZW4gPSBodHRw
X2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0gICAgaWYgZXh0ZW5zaW9uX3Rva2Vu
IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBleHRlbnNpb24gPSBFeHRlbnNp
b25QYXJhbWV0ZXIoZXh0ZW5zaW9uX3Rva2VuKQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
aHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRlKQotCi0gICAgICAgIGlmIG5vdCBo
dHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnOycpOgotICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0K
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX3BhcnNlX2V4dGVuc2lvbl9wYXJhbShzdGF0ZSwg
ZXh0ZW5zaW9uKQotICAgICAgICBleGNlcHQgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBwYXJhbWV0ZXIgZm9yICVyICglciknICUKLSAgICAgICAg
ICAgICAgICAoZXh0ZW5zaW9uX3Rva2VuLCBlKSkKLQotICAgIHJldHVybiBleHRlbnNpb24KLQot
Ci1kZWYgcGFyc2VfZXh0ZW5zaW9ucyhkYXRhKToKLSAgICAiIiJQYXJzZXMgU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZSByZXR1cm5zIGEgbGlzdCBvZgotICAgIEV4dGVuc2lv
blBhcmFtZXRlciBvYmplY3RzLgotCi0gICAgTGVhZGluZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQu
Ci0gICAgIiIiCi0KLSAgICBzdGF0ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRh
dGEpCi0KLSAgICBleHRlbnNpb25fbGlzdCA9IFtdCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
ZXh0ZW5zaW9uID0gX3BhcnNlX2V4dGVuc2lvbihzdGF0ZSkKLSAgICAgICAgaWYgZXh0ZW5zaW9u
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZXh0ZW5zaW9uX2xpc3QuYXBwZW5kKGV4dGVuc2lv
bikKLQotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAg
ICAgICAgaWYgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSBpcyBOb25lOgotICAgICAgICAg
ICAgYnJlYWsKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmlu
ZyhzdGF0ZSwgJywnKToKLSAgICAgICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJzZSBTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMgaGVhZGVyOiAnCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZv
dW5kICVyJyAlCi0gICAgICAgICAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSkK
LQotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICBp
ZiBsZW4oZXh0ZW5zaW9uX2xpc3QpID09IDA6Ci0gICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNp
bmdFeGNlcHRpb24oCi0gICAgICAgICAgICAnTm8gdmFsaWQgZXh0ZW5zaW9uIGVudHJ5IGZvdW5k
JykKLQotICAgIHJldHVybiBleHRlbnNpb25fbGlzdAotCi0KLWRlZiBmb3JtYXRfZXh0ZW5zaW9u
KGV4dGVuc2lvbik6Ci0gICAgIiIiRm9ybWF0cyBhbiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0
LiIiIgotCi0gICAgZm9ybWF0dGVkX3BhcmFtcyA9IFtleHRlbnNpb24ubmFtZSgpXQotICAgIGZv
ciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcnMoKToK
LSAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgIGZvcm1hdHRlZF9w
YXJhbXMuYXBwZW5kKHBhcmFtX25hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBxdW90
ZWRfdmFsdWUgPSBodHRwX2hlYWRlcl91dGlsLnF1b3RlX2lmX25lY2Vzc2FyeShwYXJhbV92YWx1
ZSkKLSAgICAgICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBwZW5kKCclcz0lcycgJSAocGFyYW1f
bmFtZSwgcXVvdGVkX3ZhbHVlKSkKLSAgICByZXR1cm4gJzsgJy5qb2luKGZvcm1hdHRlZF9wYXJh
bXMpCi0KLQotZGVmIGZvcm1hdF9leHRlbnNpb25zKGV4dGVuc2lvbl9saXN0KToKLSAgICAiIiJG
b3JtYXRzIGEgbGlzdCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cy4iIiIKLQotICAgIGZv
cm1hdHRlZF9leHRlbnNpb25fbGlzdCA9IFtdCi0gICAgZm9yIGV4dGVuc2lvbiBpbiBleHRlbnNp
b25fbGlzdDoKLSAgICAgICAgZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0LmFwcGVuZChmb3JtYXRf
ZXh0ZW5zaW9uKGV4dGVuc2lvbikpCi0gICAgcmV0dXJuICcsICcuam9pbihmb3JtYXR0ZWRfZXh0
ZW5zaW9uX2xpc3QpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
ZGlzcGF0Y2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2YzkxZTBjOTBlNzQy
OWQwZjc2MGMwZTljN2I5ODEyMDQwOTJhMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMzkzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkRp
c3BhdGNoIFdlYlNvY2tldCByZXF1ZXN0LgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCBvcwotaW1wb3J0IHJlCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBtc2d1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXV4Ci1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
dXRpbAotCi0KLV9TT1VSQ0VfUEFUSF9QQVRURVJOID0gcmUuY29tcGlsZShyJyg/aSlfd3NoXC5w
eSQnKQotX1NPVVJDRV9TVUZGSVggPSAnX3dzaC5weScKLV9ET19FWFRSQV9IQU5EU0hBS0VfSEFO
RExFUl9OQU1FID0gJ3dlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlJwotX1RSQU5TRkVSX0RB
VEFfSEFORExFUl9OQU1FID0gJ3dlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YScKLV9QQVNTSVZFX0NM
T1NJTkdfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSA9ICgKLSAgICAnd2ViX3NvY2tldF9wYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlJykKLQotCi1jbGFzcyBEaXNwYXRjaEV4Y2VwdGlvbihFeGNlcHRp
b24pOgotICAgICIiIkV4Y2VwdGlvbiBpbiBkaXNwYXRjaGluZyBXZWJTb2NrZXQgcmVxdWVzdC4i
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXM9Y29tbW9uLkhUVFBfU1RB
VFVTX05PVF9GT1VORCk6Ci0gICAgICAgIHN1cGVyKERpc3BhdGNoRXhjZXB0aW9uLCBzZWxmKS5f
X2luaXRfXyhuYW1lKQotICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwotCi0KLWRlZiBfZGVm
YXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIocmVxdWVzdCk6Ci0gICAgIiIi
RGVmYXVsdCB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UgaGFuZGxlci4iIiIK
LQotICAgIHJldHVybiBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCAnJwotCi0KLWRlZiBf
bm9ybWFsaXplX3BhdGgocGF0aCk6Ci0gICAgIiIiTm9ybWFsaXplIHBhdGguCi0KLSAgICBBcmdz
OgotICAgICAgICBwYXRoOiB0aGUgcGF0aCB0byBub3JtYWxpemUuCi0KLSAgICBQYXRoIGlzIGNv
bnZlcnRlZCB0byB0aGUgYWJzb2x1dGUgcGF0aC4KLSAgICBUaGUgaW5wdXQgcGF0aCBjYW4gdXNl
IGVpdGhlciAnXFwnIG9yICcvJyBhcyB0aGUgc2VwYXJhdG9yLgotICAgIFRoZSBub3JtYWxpemVk
IHBhdGggYWx3YXlzIHVzZXMgJy8nIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtLgotICAgICIi
IgotCi0gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCBvcy5wYXRoLnNlcCkKLSAgICBwYXRo
ID0gb3MucGF0aC5yZWFscGF0aChwYXRoKQotICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywg
Jy8nKQotICAgIHJldHVybiBwYXRoCi0KLQotZGVmIF9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9j
b252ZXJ0ZXIoYmFzZV9kaXIpOgotICAgICIiIlJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNvbnZl
cnRzIHRoZSBwYXRoIG9mIGEgV2ViU29ja2V0IGhhbmRsZXIgc291cmNlCi0gICAgZmlsZSB0byBh
IHJlc291cmNlIHN0cmluZyBieSByZW1vdmluZyB0aGUgcGF0aCB0byB0aGUgYmFzZSBkaXJlY3Rv
cnkgZnJvbQotICAgIGl0cyBoZWFkLCByZW1vdmluZyBfU09VUkNFX1NVRkZJWCBmcm9tIGl0cyB0
YWlsLCBhbmQgcmVwbGFjaW5nIHBhdGgKLSAgICBzZXBhcmF0b3JzIGluIGl0IHdpdGggJy8nLgot
Ci0gICAgQXJnczoKLSAgICAgICAgYmFzZV9kaXI6IHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVj
dG9yeS4KLSAgICAiIiIKLQotICAgIGJhc2VfZGlyID0gX25vcm1hbGl6ZV9wYXRoKGJhc2VfZGly
KQotCi0gICAgYmFzZV9sZW4gPSBsZW4oYmFzZV9kaXIpCi0gICAgc3VmZml4X2xlbiA9IGxlbihf
U09VUkNFX1NVRkZJWCkKLQotICAgIGRlZiBjb252ZXJ0ZXIocGF0aCk6Ci0gICAgICAgIGlmIG5v
dCBwYXRoLmVuZHN3aXRoKF9TT1VSQ0VfU1VGRklYKToKLSAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgICMgX25vcm1hbGl6ZV9wYXRoIG11c3Qgbm90IGJlIHVzZWQgYmVjYXVzZSByZXNv
bHZpbmcgc3ltbGluayBicmVha3MKLSAgICAgICAgIyBmb2xsb3dpbmcgcGF0aCBjaGVjay4KLSAg
ICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAnLycpCi0gICAgICAgIGlmIG5vdCBwYXRo
LnN0YXJ0c3dpdGgoYmFzZV9kaXIpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
cmV0dXJuIHBhdGhbYmFzZV9sZW46LXN1ZmZpeF9sZW5dCi0KLSAgICByZXR1cm4gY29udmVydGVy
Ci0KLQotZGVmIF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKGRpcmVjdG9yeSk6Ci0gICAg
IiIiUmV0dXJucyBhIGdlbmVyYXRvciB0aGF0IGVudW1lcmF0ZXMgV2ViU29ja2V0IEhhbmRsZXIg
c291cmNlIGZpbGUgbmFtZXMKLSAgICBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5LgotICAgICIiIgot
Ci0gICAgZm9yIHJvb3QsIHVudXNlZF9kaXJzLCBmaWxlcyBpbiBvcy53YWxrKGRpcmVjdG9yeSk6
Ci0gICAgICAgIGZvciBiYXNlIGluIGZpbGVzOgotICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgu
am9pbihyb290LCBiYXNlKQotICAgICAgICAgICAgaWYgX1NPVVJDRV9QQVRIX1BBVFRFUk4uc2Vh
cmNoKHBhdGgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHBhdGgKLQotCi1jbGFzcyBfSGFuZGxl
clN1aXRlKG9iamVjdCk6Ci0gICAgIiIiQSBoYW5kbGVyIHN1aXRlIGhvbGRlciBjbGFzcy4iIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkb19leHRyYV9oYW5kc2hha2UsIHRyYW5zZmVyX2Rh
dGEsCi0gICAgICAgICAgICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UpOgotICAgICAg
ICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZSA9IGRvX2V4dHJhX2hhbmRzaGFrZQotICAgICAgICBz
ZWxmLnRyYW5zZmVyX2RhdGEgPSB0cmFuc2Zlcl9kYXRhCi0gICAgICAgIHNlbGYucGFzc2l2ZV9j
bG9zaW5nX2hhbmRzaGFrZSA9IHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UKLQotCi1kZWYgX3Nv
dXJjZV9oYW5kbGVyX2ZpbGUoaGFuZGxlcl9kZWZpbml0aW9uKToKLSAgICAiIiJTb3VyY2UgYSBo
YW5kbGVyIGRlZmluaXRpb24gc3RyaW5nLgotCi0gICAgQXJnczoKLSAgICAgICAgaGFuZGxlcl9k
ZWZpbml0aW9uOiBhIHN0cmluZyBjb250YWluaW5nIFB5dGhvbiBzdGF0ZW1lbnRzIHRoYXQgZGVm
aW5lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciBmdW5jdGlvbnMuCi0gICAg
IiIiCi0KLSAgICBnbG9iYWxfZGljID0ge30KLSAgICB0cnk6Ci0gICAgICAgIGV4ZWMgaGFuZGxl
cl9kZWZpbml0aW9uIGluIGdsb2JhbF9kaWMKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAg
ICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignRXJyb3IgaW4gc291cmNpbmcgaGFuZGxlcjonICsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkK
LSAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIgPSBOb25lCi0gICAgdHJ5Ogot
ICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIgPSBfZXh0cmFjdF9oYW5k
bGVyKAotICAgICAgICAgICAgZ2xvYmFsX2RpYywgX1BBU1NJVkVfQ0xPU0lOR19IQU5EU0hBS0Vf
SEFORExFUl9OQU1FKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHBhc3NpdmVfY2xv
c2luZ19oYW5kc2hha2VfaGFuZGxlciA9ICgKLSAgICAgICAgICAgIF9kZWZhdWx0X3Bhc3NpdmVf
Y2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcikKLSAgICByZXR1cm4gX0hhbmRsZXJTdWl0ZSgKLSAg
ICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfRE9fRVhUUkFfSEFORFNIQUtFX0hB
TkRMRVJfTkFNRSksCi0gICAgICAgIF9leHRyYWN0X2hhbmRsZXIoZ2xvYmFsX2RpYywgX1RSQU5T
RkVSX0RBVEFfSEFORExFUl9OQU1FKSwKLSAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFr
ZV9oYW5kbGVyKQotCi0KLWRlZiBfZXh0cmFjdF9oYW5kbGVyKGRpYywgbmFtZSk6Ci0gICAgIiIi
RXh0cmFjdHMgYSBjYWxsYWJsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBmcm9tIHRoZSBnaXZl
biBkaWN0aW9uYXJ5Ci0gICAgZGljLgotICAgICIiIgotCi0gICAgaWYgbmFtZSBub3QgaW4gZGlj
OgotICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGRlZmluZWQuJyAl
IG5hbWUpCi0gICAgaGFuZGxlciA9IGRpY1tuYW1lXQotICAgIGlmIG5vdCBjYWxsYWJsZShoYW5k
bGVyKToKLSAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJyVzIGlzIG5vdCBjYWxsYWJs
ZS4nICUgbmFtZSkKLSAgICByZXR1cm4gaGFuZGxlcgotCi0KLWNsYXNzIERpc3BhdGNoZXIob2Jq
ZWN0KToKLSAgICAiIiJEaXNwYXRjaGVzIFdlYlNvY2tldCByZXF1ZXN0cy4KLQotICAgIFRoaXMg
Y2xhc3MgbWFpbnRhaW5zIGEgbWFwIGZyb20gcmVzb3VyY2UgbmFtZSB0byBoYW5kbGVycy4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwgcm9vdF9kaXIsIHNjYW5f
ZGlyPU5vbmUsCi0gICAgICAgIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXI9VHJ1ZSk6
Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgcm9vdF9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0aW9u
IGZpbGVzIGFyZQotICAgICAgICAgICAgICAgICAgICAgIHBsYWNlZC4KLSAgICAgICAgICAgIHNj
YW5fZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJlIGhhbmRsZXIgZGVmaW5pdGlvbiBmaWxlcyBhcmUK
LSAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hlZC4gc2Nhbl9kaXIgbXVzdCBiZSBhIGRpcmVj
dG9yeSB1bmRlciByb290X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgcm9v
dF9kaXIgaXRzZWxmLiAgSWYgc2Nhbl9kaXIgaXMgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAg
ICByb290X2RpciBpcyB1c2VkIGFzIHNjYW5fZGlyLiBzY2FuX2RpciBjYW4gYmUgdXNlZnVsCi0g
ICAgICAgICAgICAgICAgICAgICAgaW4gc2F2aW5nIHNjYW4gdGltZSB3aGVuIHJvb3RfZGlyIGNv
bnRhaW5zIG1hbnkKLSAgICAgICAgICAgICAgICAgICAgICBzdWJkaXJlY3Rvcmllcy4KLSAgICAg
ICAgICAgIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXI6IFNjYW5zIGhhbmRsZXIgZmls
ZXMgZXZlbiBpZiB0aGVpcgotICAgICAgICAgICAgICAgICAgICAgIGNhbm9uaWNhbCBwYXRoIGlz
IG5vdCB1bmRlciByb290X2Rpci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5faGFuZGxlcl9z
dWl0ZV9tYXAgPSB7fQotICAgICAgICBzZWxmLl9zb3VyY2Vfd2FybmluZ3MgPSBbXQotICAgICAg
ICBpZiBzY2FuX2RpciBpcyBOb25lOgotICAgICAgICAgICAgc2Nhbl9kaXIgPSByb290X2Rpcgot
ICAgICAgICBpZiBub3Qgb3MucGF0aC5yZWFscGF0aChzY2FuX2Rpcikuc3RhcnRzd2l0aCgKLSAg
ICAgICAgICAgICAgICBvcy5wYXRoLnJlYWxwYXRoKHJvb3RfZGlyKSk6Ci0gICAgICAgICAgICBy
YWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignc2Nhbl9kaXI6JXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1
bmRlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncm9vdF9kaXI6JXMu
JyAlIChzY2FuX2Rpciwgcm9vdF9kaXIpKQotICAgICAgICBzZWxmLl9zb3VyY2VfaGFuZGxlcl9m
aWxlc19pbl9kaXIoCi0gICAgICAgICAgICByb290X2Rpciwgc2Nhbl9kaXIsIGFsbG93X2hhbmRs
ZXJzX291dHNpZGVfcm9vdF9kaXIpCi0KLSAgICBkZWYgYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMo
c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNfcmVzb3VyY2VfcGF0
aCwgZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCk6Ci0gICAgICAgICIiIkFkZCByZXNvdXJjZSBwYXRo
IGFsaWFzLgotCi0gICAgICAgIE9uY2UgYWRkZWQsIHJlcXVlc3QgdG8gYWxpYXNfcmVzb3VyY2Vf
cGF0aCB3b3VsZCBiZSBoYW5kbGVkIGJ5Ci0gICAgICAgIGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3Ig
ZXhpc3RpbmdfcmVzb3VyY2VfcGF0aC4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgYWxp
YXNfcmVzb3VyY2VfcGF0aDogYWxpYXMgcmVzb3VyY2UgcGF0aAotICAgICAgICAgICAgZXhpc3Rp
bmdfcmVzb3VyY2VfcGF0aDogZXhpc3RpbmcgcmVzb3VyY2UgcGF0aAotICAgICAgICAiIiIKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRsZXJfc3Vp
dGVfbWFwW2V4aXN0aW5nX3Jlc291cmNlX3BhdGhdCi0gICAgICAgICAgICBzZWxmLl9oYW5kbGVy
X3N1aXRlX21hcFthbGlhc19yZXNvdXJjZV9wYXRoXSA9IGhhbmRsZXJfc3VpdGUKLSAgICAgICAg
ZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05v
IGhhbmRsZXIgZm9yOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCkKLQotICAgIGRlZiBzb3VyY2Vfd2FybmluZ3Moc2VsZik6
Ci0gICAgICAgICIiIlJldHVybiB3YXJuaW5ncyBpbiBzb3VyY2luZyBoYW5kbGVycy4iIiIKLQot
ICAgICAgICByZXR1cm4gc2VsZi5fc291cmNlX3dhcm5pbmdzCi0KLSAgICBkZWYgZG9fZXh0cmFf
aGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJEbyBleHRyYSBjaGVja2luZyBp
biBXZWJTb2NrZXQgaGFuZHNoYWtlLgotCi0gICAgICAgIFNlbGVjdCBhIGhhbmRsZXIgYmFzZWQg
b24gcmVxdWVzdC51cmkgYW5kIGNhbGwgaXRzCi0gICAgICAgIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlIGZ1bmN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0
OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRGlz
cGF0Y2hFeGNlcHRpb246IHdoZW4gaGFuZGxlciB3YXMgbm90IGZvdW5kCi0gICAgICAgICAgICBB
Ym9ydGVkQnlVc2VyRXhjZXB0aW9uOiB3aGVuIHVzZXIgaGFuZGxlciBhYm9ydCBjb25uZWN0aW9u
Ci0gICAgICAgICAgICBIYW5kc2hha2VFeGNlcHRpb246IHdoZW4gb3BlbmluZyBoYW5kc2hha2Ug
ZmFpbGVkCi0gICAgICAgICIiIgotCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdldF9o
YW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJfc3Vp
dGUgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5k
bGVyIGZvcjogJXInICUgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgZG9fZXh0cmFfaGFu
ZHNoYWtlXyA9IGhhbmRsZXJfc3VpdGUuZG9fZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGRvX2V4dHJhX2hhbmRzaGFrZV8ocmVxdWVzdCkKLSAgICAgICAgZXhjZXB0
IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgIyBSZS1y
YWlzZSB0byB0ZWxsIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB0byBmaW5pc2ggdGhpcwot
ICAgICAgICAgICAgIyBjb25uZWN0aW9uIHdpdGhvdXQgc2VuZGluZyBhbnkgZXJyb3IuCi0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkK
LSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICclcyByYWlzZWQgZXhjZXB0aW9uIGZvciAlczogJyAlICgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfRE9fRVhUUkFfSEFORFNIQUtFX0hBTkRMRVJfTkFNRSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlKSwKLSAgICAgICAgICAgICAgICAg
ICAgZSkKLSAgICAgICAgICAgIHJhaXNlIGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24oZSwg
Y29tbW9uLkhUVFBfU1RBVFVTX0ZPUkJJRERFTikKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNl
bGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJMZXQgYSBoYW5kbGVyIHRyYW5zZmVyX2RhdGEgd2l0
aCBhIFdlYlNvY2tldCBjbGllbnQuCi0KLSAgICAgICAgU2VsZWN0IGEgaGFuZGxlciBiYXNlZCBv
biByZXF1ZXN0LndzX3Jlc291cmNlIGFuZCBjYWxsIGl0cwotICAgICAgICB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEgZnVuY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBE
aXNwYXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5kbGVyIHdhcyBub3QgZm91bmQKLSAgICAgICAgICAg
IEFib3J0ZWRCeVVzZXJFeGNlcHRpb246IHdoZW4gdXNlciBoYW5kbGVyIGFib3J0IGNvbm5lY3Rp
b24KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogVGVybWluYXRlIHVu
ZGVybHlpbmcgVENQIGNvbm5lY3Rpb24gaWYgcG9zc2libGUuCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGlmIG11eC51c2VfbXV4KHJlcXVlc3QpOgotICAgICAgICAgICAgICAgIG11eC5zdGFy
dChyZXF1ZXN0LCBzZWxmKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBoYW5k
bGVyX3N1aXRlID0gc2VsZi5nZXRfaGFuZGxlcl9zdWl0ZShyZXF1ZXN0LndzX3Jlc291cmNlKQot
ICAgICAgICAgICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgaXMgTm9uZToKLSAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhhbmRsZXIgZm9yOiAlcicgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3Jlc291
cmNlKQotICAgICAgICAgICAgICAgIHRyYW5zZmVyX2RhdGFfID0gaGFuZGxlcl9zdWl0ZS50cmFu
c2Zlcl9kYXRhCi0gICAgICAgICAgICAgICAgdHJhbnNmZXJfZGF0YV8ocmVxdWVzdCkKLQotICAg
ICAgICAgICAgaWYgbm90IHJlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0gICAgICAgICMgQ2F0Y2gg
bm9uLWNyaXRpY2FsIGV4Y2VwdGlvbnMgdGhlIGhhbmRsZXIgZGlkbid0IGhhbmRsZS4KLSAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAg
ICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgbXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAg
Y29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLSAgICAgICAgZXhjZXB0IG1z
Z3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgIyBJbnZhbGlkRnJh
bWVFeGNlcHRpb24gbXVzdCBiZSBjYXVnaHQgYmVmb3JlCi0gICAgICAgICAgICAjIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uIHRoYXQgY2F0Y2hlcyBJbnZhbGlkRnJhbWVFeGNlcHRpb24u
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJl
cXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNUQVRVU19QUk9UT0NPTF9F
UlJPUikKLSAgICAgICAgZXhjZXB0IG1zZ3V0aWwuVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiwg
ZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1VOU1VQUE9S
VEVEX0RBVEEpCi0gICAgICAgIGV4Y2VwdCBzdHJlYW0uSW52YWxpZFVURjhFeGNlcHRpb24sIGU6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJl
cXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgY29tbW9u
LlNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSkKLSAgICAgICAgZXhjZXB0IG1zZ3V0
aWwuQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAg
ICAgICAgICMgQW55IG90aGVyIGV4Y2VwdGlvbnMgYXJlIGZvcndhcmRlZCB0byB0aGUgY2FsbGVy
IG9mIHRoaXMKLSAgICAgICAgICAgICMgZnVuY3Rpb24uCi0gICAgICAgICAgICB1dGlsLnByZXBl
bmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJyVzIHJhaXNlZCBleGNl
cHRpb24gZm9yICVzOiAnICUgKAotICAgICAgICAgICAgICAgICAgICBfVFJBTlNGRVJfREFUQV9I
QU5ETEVSX05BTUUsIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAotICAgICAgICAgICAgICAgIGUpCi0g
ICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2Uoc2Vs
ZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIlByZXBhcmUgY29kZSBhbmQgcmVhc29uIGZvciByZXNw
b25kaW5nIGNsaWVudCBpbml0aWF0ZWQgY2xvc2luZwotICAgICAgICBoYW5kc2hha2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRl
KHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJfc3VpdGUgaXMgTm9uZToK
LSAgICAgICAgICAgIHJldHVybiBfZGVmYXVsdF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hh
bmRsZXIocmVxdWVzdCkKLSAgICAgICAgcmV0dXJuIGhhbmRsZXJfc3VpdGUucGFzc2l2ZV9jbG9z
aW5nX2hhbmRzaGFrZShyZXF1ZXN0KQotCi0gICAgZGVmIGdldF9oYW5kbGVyX3N1aXRlKHNlbGYs
IHJlc291cmNlKToKLSAgICAgICAgIiIiUmV0cmlldmVzIHR3byBoYW5kbGVycyAob25lIGZvciBl
eHRyYSBoYW5kc2hha2UgcHJvY2Vzc2luZywgYW5kIG9uZQotICAgICAgICBmb3IgZGF0YSB0cmFu
c2ZlcikgZm9yIHRoZSBnaXZlbiByZXF1ZXN0IGFzIGEgSGFuZGxlclN1aXRlIG9iamVjdC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgZnJhZ21lbnQgPSBOb25lCi0gICAgICAgIGlmICcjJyBpbiBy
ZXNvdXJjZToKLSAgICAgICAgICAgIHJlc291cmNlLCBmcmFnbWVudCA9IHJlc291cmNlLnNwbGl0
KCcjJywgMSkKLSAgICAgICAgaWYgJz8nIGluIHJlc291cmNlOgotICAgICAgICAgICAgcmVzb3Vy
Y2UgPSByZXNvdXJjZS5zcGxpdCgnPycsIDEpWzBdCi0gICAgICAgIGhhbmRsZXJfc3VpdGUgPSBz
ZWxmLl9oYW5kbGVyX3N1aXRlX21hcC5nZXQocmVzb3VyY2UpCi0gICAgICAgIGlmIGhhbmRsZXJf
c3VpdGUgYW5kIGZyYWdtZW50OgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24o
J0ZyYWdtZW50IGlkZW50aWZpZXJzIE1VU1QgTk9UIGJlIHVzZWQgb24gJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1dlYlNvY2tldCBVUklzJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAg
ICAgICAgcmV0dXJuIGhhbmRsZXJfc3VpdGUKLQotICAgIGRlZiBfc291cmNlX2hhbmRsZXJfZmls
ZXNfaW5fZGlyKAotICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nhbl9kaXIsIGFsbG93X2hhbmRs
ZXJzX291dHNpZGVfcm9vdF9kaXIpOgotICAgICAgICAiIiJTb3VyY2UgYWxsIHRoZSBoYW5kbGVy
IHNvdXJjZSBmaWxlcyBpbiB0aGUgc2Nhbl9kaXIgZGlyZWN0b3J5LgotCi0gICAgICAgIFRoZSBy
ZXNvdXJjZSBwYXRoIGlzIGRldGVybWluZWQgcmVsYXRpdmUgdG8gcm9vdF9kaXIuCi0gICAgICAg
ICIiIgotCi0gICAgICAgICMgV2UgYnVpbGQgYSBtYXAgZnJvbSByZXNvdXJjZSB0byBoYW5kbGVy
IGNvZGUgYXNzdW1pbmcgdGhhdCB0aGVyZSdzCi0gICAgICAgICMgb25seSBvbmUgcGF0aCBmcm9t
IHJvb3RfZGlyIHRvIHNjYW5fZGlyIGFuZCBpdCBjYW4gYmUgb2J0YWluZWQgYnkKLSAgICAgICAg
IyBjb21wYXJpbmcgcmVhbHBhdGggb2YgdGhlbS4KLQotICAgICAgICAjIEhlcmUgd2UgY2Fubm90
IHVzZSBhYnNwYXRoLiBTZWUKLSAgICAgICAgIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE2MDMKLQotICAgICAgICBjb252ZXJ0ID0gX2NyZWF0ZV9wYXRoX3RvX3Jl
c291cmNlX2NvbnZlcnRlcihyb290X2RpcikKLSAgICAgICAgc2Nhbl9yZWFscGF0aCA9IG9zLnBh
dGgucmVhbHBhdGgoc2Nhbl9kaXIpCi0gICAgICAgIHJvb3RfcmVhbHBhdGggPSBvcy5wYXRoLnJl
YWxwYXRoKHJvb3RfZGlyKQotICAgICAgICBmb3IgcGF0aCBpbiBfZW51bWVyYXRlX2hhbmRsZXJf
ZmlsZV9wYXRocyhzY2FuX3JlYWxwYXRoKToKLSAgICAgICAgICAgIGlmIChub3QgYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290X2RpciBhbmQKLSAgICAgICAgICAgICAgICAobm90IG9zLnBhdGgu
cmVhbHBhdGgocGF0aCkuc3RhcnRzd2l0aChyb290X3JlYWxwYXRoKSkpOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ0Nhbm9uaWNhbCBw
YXRoIG9mICVzIGlzIG5vdCB1bmRlciByb290IGRpcmVjdG9yeScgJQotICAgICAgICAgICAgICAg
ICAgICBwYXRoKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IF9zb3VyY2VfaGFuZGxlcl9maWxlKG9wZW4o
cGF0aCkucmVhZCgpKQotICAgICAgICAgICAgZXhjZXB0IERpc3BhdGNoRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3NvdXJjZV93YXJuaW5ncy5hcHBlbmQoJyVzOiAlcycgJSAo
cGF0aCwgZSkpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJlc291cmNl
ID0gY29udmVydChwYXRoKQotICAgICAgICAgICAgaWYgcmVzb3VyY2UgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdQYXRo
IHRvIHJlc291cmNlIGNvbnZlcnNpb24gb24gJXMgZmFpbGVkJyAlIHBhdGgpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwW2NvbnZlcnQo
cGF0aCldID0gaGFuZGxlcl9zdWl0ZQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDlhOWZkY2Y5NDc5ODZhMWI0Y2FjYmU0NmYzZDUzZTAxNThkYjdjYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
ZXh0ZW5zaW9ucy5weQorKysgL2Rldi9udWxsCkBAIC0xLDg4NSArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaHR0cF9oZWFkZXJf
dXRpbCBpbXBvcnQgcXVvdGVfaWZfbmVjZXNzYXJ5Ci0KLQotIyBUaGUgbGlzdCBvZiBhdmFpbGFi
bGUgc2VydmVyIHNpZGUgZXh0ZW5zaW9uIHByb2Nlc3NvciBjbGFzc2VzLgotX2F2YWlsYWJsZV9w
cm9jZXNzb3JzID0ge30KLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMgPSBbXQotCi0KLWNs
YXNzIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFz
c19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAg
ICBzZWxmLl9hY3RpdmUgPSBUcnVlCi0KLSAgICBkZWYgcmVxdWVzdChzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3JlcXVlc3QKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIGNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29y
cyhzZWxmLCBwcm9jZXNzb3JzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldF9hY3RpdmUo
c2VsZiwgYWN0aXZlKToKLSAgICAgICAgc2VsZi5fYWN0aXZlID0gYWN0aXZlCi0KLSAgICBkZWYg
aXNfYWN0aXZlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYWN0aXZlCi0KLSAgICBkZWYg
X2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIHJldHVybiBO
b25lCi0KLSAgICBkZWYgZ2V0X2V4dGVuc2lvbl9yZXNwb25zZShzZWxmKToKLSAgICAgICAgaWYg
bm90IHNlbGYuX2FjdGl2ZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRXh0ZW5z
aW9uICVzIGlzIGRlYWN0aXZhdGVkJywgc2VsZi5uYW1lKCkpCi0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi5fZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9p
bnRlcm5hbCgpCi0gICAgICAgIGlmIHJlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxm
Ll9hY3RpdmUgPSBGYWxzZQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0
dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlvbnMoc2VsZiwgc3RyZWFtX29wdGlv
bnMpOgotICAgICAgICBpZiBzZWxmLl9hY3RpdmU6Ci0gICAgICAgICAgICBzZWxmLl9zZXR1cF9z
dHJlYW1fb3B0aW9uc19pbnRlcm5hbChzdHJlYW1fb3B0aW9ucykKLQotCi1kZWYgX2xvZ19vdXRn
b2luZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgbG9nZ2VyLCBvcmlnaW5hbF9ieXRlcywg
ZmlsdGVyZWRfYnl0ZXMsIGF2ZXJhZ2VfcmF0aW8pOgotICAgICMgUHJpbnQgaW5mIHdoZW4gcmF0
aW8gaXMgbm90IGF2YWlsYWJsZS4KLSAgICByYXRpbyA9IGZsb2F0KCdpbmYnKQotICAgIGlmIG9y
aWdpbmFsX2J5dGVzICE9IDA6Ci0gICAgICAgIHJhdGlvID0gZmxvYXQoZmlsdGVyZWRfYnl0ZXMp
IC8gb3JpZ2luYWxfYnl0ZXMKLQotICAgIGxvZ2dlci5kZWJ1ZygnT3V0Z29pbmcgY29tcHJlc3Np
b24gcmF0aW86ICVmIChhdmVyYWdlOiAlZiknICUKLSAgICAgICAgICAgIChyYXRpbywgYXZlcmFn
ZV9yYXRpbykpCi0KLQotZGVmIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAg
ICAgIGxvZ2dlciwgcmVjZWl2ZWRfYnl0ZXMsIGZpbHRlcmVkX2J5dGVzLCBhdmVyYWdlX3JhdGlv
KToKLSAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFpbGFibGUuCi0gICAgcmF0
aW8gPSBmbG9hdCgnaW5mJykKLSAgICBpZiBmaWx0ZXJlZF9ieXRlcyAhPSAwOgotICAgICAgICBy
YXRpbyA9IGZsb2F0KHJlY2VpdmVkX2J5dGVzKSAvIGZpbHRlcmVkX2J5dGVzCi0KLSAgICBsb2dn
ZXIuZGVidWcoJ0luY29taW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAoYXZlcmFnZTogJWYpJyAl
Ci0gICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQotCi0KLWRlZiBfcGFyc2Vfd2lu
ZG93X2JpdHMoYml0cyk6Ci0gICAgIiIiUmV0dXJuIHBhcnNlZCBpbnRlZ2VyIHZhbHVlIGlmZiB0
aGUgZ2l2ZW4gc3RyaW5nIGNvbmZvcm1zIHRvIHRoZQotICAgIGdyYW1tYXIgb2YgdGhlIHdpbmRv
dyBiaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXJzLgotICAgICIiIgotCi0gICAgaWYgYml0cyBpcyBO
b25lOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdWYWx1ZSBpcyByZXF1aXJlZCcpCi0KLSAg
ICAjIEZvciBub24gaW50ZWdlciB2YWx1ZXMgc3VjaCBhcyAiMTAuMCIsIFZhbHVlRXJyb3Igd2ls
bCBiZSByYWlzZWQuCi0gICAgaW50X2JpdHMgPSBpbnQoYml0cykKLQotICAgICMgRmlyc3QgY29u
ZGl0aW9uIGlzIHRvIGRyb3AgbGVhZGluZyB6ZXJvIGNhc2UgZS5nLiAiMDgiLgotICAgIGlmIGJp
dHMgIT0gc3RyKGludF9iaXRzKSBvciBpbnRfYml0cyA8IDggb3IgaW50X2JpdHMgPiAxNToKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCB2YWx1ZTogJXInICUgYml0cykKLQotICAg
IHJldHVybiBpbnRfYml0cwotCi0KLWNsYXNzIF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKG9iamVj
dCk6Ci0gICAgIiIiU3RvcmVzIHRvdGFsIGJ5dGVzIG9mIG9yaWdpbmFsIGFuZCByZXN1bHQgZGF0
YSwgYW5kIGNhbGN1bGF0ZXMgYXZlcmFnZQotICAgIHJlc3VsdCAvIG9yaWdpbmFsIHJhdGlvLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl90b3RhbF9v
cmlnaW5hbF9ieXRlcyA9IDAKLSAgICAgICAgc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzID0gMAot
Ci0gICAgZGVmIGFkZF9vcmlnaW5hbF9ieXRlcyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYu
X3RvdGFsX29yaWdpbmFsX2J5dGVzICs9IHZhbHVlCi0KLSAgICBkZWYgYWRkX3Jlc3VsdF9ieXRl
cyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcyArPSB2YWx1
ZQotCi0gICAgZGVmIGdldF9hdmVyYWdlX3JhdGlvKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl90
b3RhbF9vcmlnaW5hbF9ieXRlcyAhPSAwOgotICAgICAgICAgICAgcmV0dXJuIChmbG9hdChzZWxm
Ll90b3RhbF9yZXN1bHRfYnl0ZXMpIC8KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdG90YWxf
b3JpZ2luYWxfYnl0ZXMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQo
J2luZicpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lv
blByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIiZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24gcHJv
Y2Vzc29yLgotCi0gICAgU3BlY2lmaWNhdGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9kcmFmdC10eW9zaGluby1oeWJpLXdlYnNvY2tldC1wZXJmcmFtZS1kZWZsYXRlCi0gICAg
IiIiCi0KLSAgICBfV0lORE9XX0JJVFNfUEFSQU0gPSAnbWF4X3dpbmRvd19iaXRzJwotICAgIF9O
T19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ25vX2NvbnRleHRfdGFrZW92ZXInCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4dGVuc2lvblByb2Nlc3Nvcklu
dGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5k
b3dfYml0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3Zl
ciA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2JmaW5hbCA9IEZhbHNlCi0KLSAgICAgICAgIyBDYWxj
dWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBvdXRnb2luZyBieXRlcyBzdXBwbGllZCB0byB0
aGlzIGZpbHRlcikgLwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0
d29yayBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0g
ICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQg
ZnJvbSB0aGUgbmV0d29yaykgLwotICAgICAgICAjICAgICAoVG90YWwgaW5jb21pbmcgYnl0ZXMg
b2J0YWluZWQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYuX2luY29t
aW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkK
LQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwo
c2VsZik6Ci0gICAgICAgICMgQW55IHVua25vd24gcGFyYW1ldGVyIHdpbGwgYmUganVzdCBpZ25v
cmVkLgotCi0gICAgICAgIHdpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBpZiBzZWxmLl9yZXF1
ZXN0Lmhhc19wYXJhbWV0ZXIoc2VsZi5fV0lORE9XX0JJVFNfUEFSQU0pOgotICAgICAgICAgICAg
d2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgd2luZG93X2JpdHMgPSBfcGFyc2Vfd2luZG93X2JpdHMod2luZG93X2JpdHMp
Ci0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgICAgIG5vX2NvbnRleHRfdGFrZW92ZXIgPSBzZWxmLl9yZXF1ZXN0Lmhh
c19wYXJhbWV0ZXIoCi0gICAgICAgICAgICBzZWxmLl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFN
KQotICAgICAgICBpZiAobm9fY29udGV4dF90YWtlb3ZlciBhbmQKLSAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9OT19D
T05URVhUX1RBS0VPVkVSX1BBUkFNKSBpcyBub3QgTm9uZSk6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVm
bGF0ZXIoCi0gICAgICAgICAgICB3aW5kb3dfYml0cywgbm9fY29udGV4dF90YWtlb3ZlcikKLQot
ICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkK
LQotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9IFRydWUKLQotICAgICAgICByZXNw
b25zZSA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoc2VsZi5fcmVxdWVzdC5uYW1lKCkpCi0K
LSAgICAgICAgaWYgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX1dJ
TkRPV19CSVRTX1BBUkFNLCBzdHIoc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMpKQotICAgICAg
ICBpZiBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAgICAgICAgcmVz
cG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9OT19DT05URVhUX1RB
S0VPVkVSX1BBUkFNLCBOb25lKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uICgnCi0gICAgICAgICAgICAncmVxdWVzdDogd2lu
ZG93X2JpdHM9JXM7IG5vX2NvbnRleHRfdGFrZW92ZXI9JXIsICcKLSAgICAgICAgICAgICdyZXNw
b25zZTogd2luZG93X3diaXRzPSVzOyBub19jb250ZXh0X3Rha2VvdmVyPSVyKScgJQotICAgICAg
ICAgICAgKHNlbGYuX3JlcXVlc3QubmFtZSgpLAotICAgICAgICAgICAgIHdpbmRvd19iaXRzLAot
ICAgICAgICAgICAgIG5vX2NvbnRleHRfdGFrZW92ZXIsCi0gICAgICAgICAgICAgc2VsZi5fcmVz
cG9uc2Vfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4
dF90YWtlb3ZlcikpCi0KLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVw
X3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLQotICAgICAg
ICBjbGFzcyBfT3V0Z29pbmdGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50
Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAgICAgICAg
IHNlbGYuX3BhcmVudC5fb3V0Z29pbmdfZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIGNsYXNzIF9J
bmNvbWluZ0ZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
cGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAg
ICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFy
ZW50Ll9pbmNvbWluZ19maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgc3RyZWFtX29wdGlvbnMub3V0
Z29pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBfT3V0Z29pbmdGaWx0ZXIo
c2VsZikpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnMuaW5z
ZXJ0KAotICAgICAgICAgICAgMCwgX0luY29taW5nRmlsdGVyKHNlbGYpKQotCi0gICAgZGVmIHNl
dF9yZXNwb25zZV93aW5kb3dfYml0cyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX3Jlc3Bv
bnNlX3dpbmRvd19iaXRzID0gdmFsdWUKLQotICAgIGRlZiBzZXRfcmVzcG9uc2Vfbm9fY29udGV4
dF90YWtlb3ZlcihzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRl
eHRfdGFrZW92ZXIgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgot
ICAgICAgICBzZWxmLl9iZmluYWwgPSB2YWx1ZQotCi0gICAgZGVmIGVuYWJsZV9vdXRnb2luZ19j
b21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVl
Ci0KLSAgICBkZWYgZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAg
c2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBGYWxzZQotCi0gICAgZGVmIF9vdXRnb2luZ19maWx0
ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJUcmFuc2Zvcm0gb3V0Z29pbmcgZnJhbWVzLiBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgb25seSBieQotICAgICAgICBhbiBfT3V0Z29pbmdGaWx0ZXIg
aW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSA9
IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlv
X2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgICAgIG9yaWdpbmFs
X3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBpZiAobm90IHNlbGYuX2NvbXByZXNzX291dGdvaW5n
IG9yCi0gICAgICAgICAgICBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKSk6
Ci0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRk
X3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXpl
KQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgZnJhbWUucGF5bG9hZCA9IHNlbGYuX3Jm
YzE5NzlfZGVmbGF0ZXIuZmlsdGVyKAotICAgICAgICAgICAgZnJhbWUucGF5bG9hZCwgYmZpbmFs
PXNlbGYuX2JmaW5hbCkKLSAgICAgICAgZnJhbWUucnN2MSA9IDEKLQotICAgICAgICBmaWx0ZXJl
ZF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5fb3V0Z29p
bmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAg
ICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfb3V0Z29pbmdfY29t
cHJlc3Npb25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAg
ICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9w
YXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRp
b19jYWxjdWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLSAgICBkZWYgX2luY29taW5nX2Zp
bHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIlRyYW5zZm9ybSBpbmNvbWluZyBmcmFtZXMu
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmx5IGJ5Ci0gICAgICAgIGFuIF9JbmNvbWluZ0ZpbHRl
ciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXpl
ID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0
aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgIHJlY2VpdmVk
X3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBpZiBmcmFtZS5yc3YxICE9IDEgb3IgY29tbW9uLmlz
X2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWlu
Z19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAg
ICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUpCi0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBmcmFtZS5wYXlsb2FkID0gc2VsZi5fcmZjMTk3OV9pbmZsYXRlci5maWx0ZXIoZnJh
bWUucGF5bG9hZCkKLSAgICAgICAgZnJhbWUucnN2MSA9IDAKLQotICAgICAgICBmaWx0ZXJlZF9w
YXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5faW5jb21pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKLSAgICAgICAgICAg
ICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgX2xvZ19pbmNvbWluZ19jb21w
cmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAg
ICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3Bh
eWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlv
X2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKLQotCi1fYXZhaWxhYmxlX3Byb2Nlc3Nv
cnNbY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgKLSAgICBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IpCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChj
b21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tj
b21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT05dID0gKAotICAgIERlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcikKLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBw
ZW5kKGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotCi1kZWYgX3Bh
cnNlX2NvbXByZXNzaW9uX21ldGhvZChkYXRhKToKLSAgICAiIiJQYXJzZXMgdGhlIHZhbHVlIG9m
ICJtZXRob2QiIGV4dGVuc2lvbiBwYXJhbWV0ZXIuIiIiCi0KLSAgICByZXR1cm4gY29tbW9uLnBh
cnNlX2V4dGVuc2lvbnMoZGF0YSkKLQotCi1kZWYgX2NyZWF0ZV9hY2NlcHRlZF9tZXRob2RfZGVz
YyhtZXRob2RfbmFtZSwgbWV0aG9kX3BhcmFtcyk6Ci0gICAgIiIiQ3JlYXRlcyBhY2NlcHRlZC1t
ZXRob2QtZGVzYyBmcm9tIGdpdmVuIG1ldGhvZCBuYW1lIGFuZCBwYXJhbWV0ZXJzIiIiCi0KLSAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKG1ldGhvZF9uYW1lKQotICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBtZXRob2RfcGFyYW1zOgotICAgICAgICBleHRlbnNpb24uYWRk
X3BhcmFtZXRlcihuYW1lLCB2YWx1ZSkKLSAgICByZXR1cm4gY29tbW9uLmZvcm1hdF9leHRlbnNp
b24oZXh0ZW5zaW9uKQotCi0KLWNsYXNzIENvbXByZXNzaW9uRXh0ZW5zaW9uUHJvY2Vzc29yQmFz
ZShFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiIkJhc2UgY2xhc3MgZm9yIHBl
cmZyYW1lLWNvbXByZXNzIGFuZCBwZXJtZXNzYWdlLWNvbXByZXNzIGV4dGVuc2lvbi4iIiIKLQot
ICAgIF9NRVRIT0RfUEFSQU0gPSAnbWV0aG9kJwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3QpOgotICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0gICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX21ldGhvZF9uYW1lID0gTm9uZQotICAg
ICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3IgPSBOb25lCi0gICAgICAgIHNlbGYuX2Nv
bXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rID0gTm9uZQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiAnJwotCi0gICAgZGVmIF9sb29rdXBfY29tcHJlc3Npb25fcHJvY2Vzc29y
KHNlbGYsIG1ldGhvZF9kZXNjKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfZ2V0
X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9yZXNwb25zZShzZWxmKToKLSAgICAgICAgIiIiTG9va3Mg
dXAgdGhlIGNvbXByZXNzaW9uIHByb2Nlc3NvciBiYXNlZCBvbiB0aGUgc2VsZi5fcmVxdWVzdCBh
bmQKLSAgICAgICAgICAgcmV0dXJucyB0aGUgY29tcHJlc3Npb24gcHJvY2Vzc29yJ3MgcmVzcG9u
c2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIG1ldGhvZF9saXN0ID0gc2VsZi5fcmVxdWVzdC5n
ZXRfcGFyYW1ldGVyX3ZhbHVlKHNlbGYuX01FVEhPRF9QQVJBTSkKLSAgICAgICAgaWYgbWV0aG9k
X2xpc3QgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIG1ldGhvZHMg
PSBfcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKG1ldGhvZF9saXN0KQotICAgICAgICBpZiBtZXRo
b2RzIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBjb21yZXNzaW9u
X3Byb2Nlc3NvciA9IE5vbmUKLSAgICAgICAgIyBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiB0
cmllcyBvbmx5IHRoZSBmaXJzdCBtZXRob2QgdGhhdCBtYXRjaGVzCi0gICAgICAgICMgc3VwcG9y
dGVkIGFsZ29yaXRobS4gRm9sbG93aW5nIG1ldGhvZHMgYXJlbid0IHRyaWVkIGV2ZW4gaWYgdGhl
Ci0gICAgICAgICMgZmlyc3Qgb25lIGlzIHJlamVjdGVkLgotICAgICAgICAjIFRPRE8oYmFzaGkp
OiBOZWVkIHRvIGNsYXJpZnkgdGhpcyBiZWhhdmlvci4KLSAgICAgICAgZm9yIG1ldGhvZF9kZXNj
IGluIG1ldGhvZHM6Ci0gICAgICAgICAgICBjb21wcmVzc2lvbl9wcm9jZXNzb3IgPSBzZWxmLl9s
b29rdXBfY29tcHJlc3Npb25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIG1ldGhvZF9kZXNj
KQotICAgICAgICAgICAgaWYgY29tcHJlc3Npb25fcHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX21ldGhvZF9uYW1lID0gbWV0aG9kX2Rlc2Mu
bmFtZSgpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgY29tcHJlc3Npb25fcHJv
Y2Vzc29yIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIGlmIHNl
bGYuX2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rOgotICAgICAgICAgICAgc2VsZi5fY29tcHJl
c3Npb25fcHJvY2Vzc29yX2hvb2soY29tcHJlc3Npb25fcHJvY2Vzc29yKQotCi0gICAgICAgIHBy
b2Nlc3Nvcl9yZXNwb25zZSA9IGNvbXByZXNzaW9uX3Byb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlKCkKLSAgICAgICAgaWYgcHJvY2Vzc29yX3Jlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3IgPSBj
b21wcmVzc2lvbl9wcm9jZXNzb3IKLSAgICAgICAgcmV0dXJuIHByb2Nlc3Nvcl9yZXNwb25zZQot
Ci0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAg
ICBwcm9jZXNzb3JfcmVzcG9uc2UgPSBzZWxmLl9nZXRfY29tcHJlc3Npb25fcHJvY2Vzc29yX3Jl
c3BvbnNlKCkKLSAgICAgICAgaWYgcHJvY2Vzc29yX3Jlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHJlc3BvbnNlID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcihzZWxmLl9yZXF1ZXN0Lm5hbWUoKSkKLSAgICAgICAgYWNjZXB0ZWRfbWV0aG9kX2Rl
c2MgPSBfY3JlYXRlX2FjY2VwdGVkX21ldGhvZF9kZXNjKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9tZXRob2RfbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yX3Jlc3BvbnNlLmdldF9wYXJhbWV0ZXJz
KCkpCi0gICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoc2VsZi5fTUVUSE9EX1BBUkFNLCBh
Y2NlcHRlZF9tZXRob2RfZGVzYykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24gKG1ldGhvZDogJXMpJyAlCi0gICAgICAgICAgICAo
c2VsZi5fcmVxdWVzdC5uYW1lKCksIHNlbGYuX2NvbXByZXNzaW9uX21ldGhvZF9uYW1lKSkKLSAg
ICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25zX2lu
dGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgaWYgc2VsZi5fY29tcHJlc3Np
b25fcHJvY2Vzc29yIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5f
Y29tcHJlc3Npb25fcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25z
KQotCi0gICAgZGVmIHNldF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vayhzZWxmLCBob29rKToK
LSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2sgPSBob29rCi0KLSAgICBk
ZWYgZ2V0X2NvbXByZXNzaW9uX3Byb2Nlc3NvcihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2NvbXByZXNzaW9uX3Byb2Nlc3NvcgotCi0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5z
aW9uUHJvY2Vzc29yKEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIicGVybWVz
c2FnZS1kZWZsYXRlIGV4dGVuc2lvbiBwcm9jZXNzb3IuIEl0J3MgYWxzbyB1c2VkIGZvcgotICAg
IHBlcm1lc3NhZ2UtY29tcHJlc3MgZXh0ZW5zaW9uIHdoZW4gdGhlIGRlZmxhdGUgbWV0aG9kIGlz
IGNob3Nlbi4KLQotICAgIFNwZWNpZmljYXRpb246Ci0gICAgaHR0cDovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBlcm1lc3NhZ2UtY29tcHJlc3Npb24tMDgKLSAgICAiIiIK
LQotICAgIF9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0gJ3NlcnZlcl9tYXhfd2luZG93
X2JpdHMnCi0gICAgX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ3NlcnZlcl9u
b19jb250ZXh0X3Rha2VvdmVyJwotICAgIF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0g
J2NsaWVudF9tYXhfd2luZG93X2JpdHMnCi0gICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVS
X1BBUkFNID0gJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyJwotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QsIGRyYWZ0MDg9VHJ1ZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBQZXJN
ZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAg
ICAgICBkcmFmdDA4OiBGb2xsb3cgdGhlIGNvbnN0cmFpbnRzIG9uIHRoZSBwYXJhbWV0ZXJzIHRo
YXQgd2VyZSBub3QKLSAgICAgICAgICAgICAgICBzcGVjaWZpZWQgZm9yIHBlcm1lc3NhZ2UtY29t
cHJlc3MgYnV0IGFyZSBzcGVjaWZpZWQgZm9yCi0gICAgICAgICAgICAgICAgcGVybWVzc2FnZS1k
ZWZsYXRlIGFzIG9uCi0gICAgICAgICAgICAgICAgZHJhZnQtaWV0Zi1oeWJpLXBlcm1lc3NhZ2Ut
Y29tcHJlc3Npb24tMDguCi0gICAgICAgICIiIgotCi0gICAgICAgIEV4dGVuc2lvblByb2Nlc3Nv
ckludGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9sb2dnZXIg
PSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9wcmVmZXJyZWRf
Y2xpZW50X21heF93aW5kb3dfYml0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXIgPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX2RyYWZ0MDggPSBkcmFmdDA4
Ci0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdkZWZsYXRlJwotCi0gICAg
ZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICBpZiBz
ZWxmLl9kcmFmdDA4OgotICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fcmVxdWVzdC5nZXRf
cGFyYW1ldGVyX25hbWVzKCk6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gW3NlbGYu
X1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFN
XToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmtub3duIHBhcmFt
ZXRlcjogJXInLCBuYW1lKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgIyBBbnkgdW5rbm93biBwYXJhbWV0ZXIgd2lsbCBiZSBqdXN0
IGlnbm9yZWQuCi0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgc2VydmVyX21heF93aW5kb3df
Yml0cyA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNlbGYu
X1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0pOgotICAgICAgICAgICAgc2VydmVyX21heF93
aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gX3BhcnNl
X3dpbmRvd19iaXRzKAotICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
KQotICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdCYWQgJXMgcGFyYW1ldGVyOiAlcicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLQotICAgICAgICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciA9IHNlbGYuX3Jl
cXVlc3QuaGFzX3BhcmFtZXRlcigKLSAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhU
X1RBS0VPVkVSX1BBUkFNKQotICAgICAgICBpZiAoc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIg
YW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAg
ICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pIGlzIG5v
dCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1ldGVyIG11
c3Qgbm90IGhhdmUgYSB2YWx1ZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotICAgICAgICAgICAg
cmV0dXJuIE5vbmUKLQotICAgICAgICAjIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJvbSBhIGNs
aWVudCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY2xpZW50IGNhbgotICAgICAgICAjIGFjY2VwdCBj
bGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBzZXJ2ZXIgb3Igbm90LgotICAgICAgICBjbGll
bnRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcigK
LSAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAg
IGlmIChzZWxmLl9kcmFmdDA4IGFuZAotICAgICAgICAgICAgY2xpZW50X2NsaWVudF9tYXhfd2lu
ZG93X2JpdHMgYW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFs
dWUoCi0gICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkg
aXMgbm90IE5vbmUpOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcyBwYXJhbWV0
ZXIgbXVzdCBub3QgaGF2ZSBhIHZhbHVlIGluIGEgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2U6ICVyJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
KQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxh
dGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAgICAgc2VydmVyX21heF93aW5k
b3dfYml0cywgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICAgICAgIyBOb3RlIHRo
YXQgd2UgcHJlcGFyZSBmb3IgaW5jb21pbmcgbWVzc2FnZXMgY29tcHJlc3NlZCB3aXRoIHdpbmRv
dwotICAgICAgICAjIGJpdHMgdXB0byAxNSByZWdhcmRsZXNzIG9mIHRoZSBjbGllbnRfbWF4X3dp
bmRvd19iaXRzIHZhbHVlIHRvIGJlCi0gICAgICAgICMgc2VudCB0byB0aGUgY2xpZW50LgotICAg
ICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKLQot
ICAgICAgICBzZWxmLl9mcmFtZXIgPSBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIoCi0gICAgICAg
ICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikK
LSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9iZmluYWwoRmFsc2UpCi0gICAgICAgIHNlbGYuX2Zy
YW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChUcnVlKQotCi0gICAgICAgIHJlc3Bv
bnNlID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihzZWxmLl9yZXF1ZXN0Lm5hbWUoKSkKLQot
ICAgICAgICBpZiBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJf
TUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfbWF4X3dp
bmRvd19iaXRzKSkKLQotICAgICAgICBpZiBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcjoKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5f
U0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAgICAgaWYgc2Vs
Zi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBpZiBzZWxmLl9kcmFmdDA4IGFuZCBub3QgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2Jp
dHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm9jZXNzb3IgaXMgY29u
ZmlndXJlZCB0byB1c2UgJXMgYnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3RoZSBjbGllbnQgY2Fubm90IGFjY2VwdCBpdCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIo
Ci0gICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAg
ICAgICAgICAgICAgICBzdHIoc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMp
KQotCi0gICAgICAgIGlmIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAg
ICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9DTElF
TlRfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVzIGV4dGVuc2lvbiAoJwotICAgICAgICAg
ICAgJ3JlcXVlc3Q6IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9JXM7ICcKLSAgICAgICAgICAgICdz
ZXJ2ZXJfbm9fY29udGV4dF90YWtlb3Zlcj0lciwgJwotICAgICAgICAgICAgJ3Jlc3BvbnNlOiBj
bGllbnRfbWF4X3dpbmRvd19iaXRzPSVzOyAnCi0gICAgICAgICAgICAnY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXI9JXIpJyAlCi0gICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5uYW1lKCksCi0g
ICAgICAgICAgICAgc2VydmVyX21heF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICBzZXJ2ZXJf
bm9fY29udGV4dF90YWtlb3ZlciwKLSAgICAgICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50
X21heF93aW5kb3dfYml0cywKLSAgICAgICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlcikpCi0KLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlCi0KLSAgICBkZWYgX3NldHVwX3N0
cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgc2Vs
Zi5fZnJhbWVyLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQotCi0gICAgZGVm
IHNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgIiIiSWYg
dGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGlzIGNsYXNzIGFkZHMgdGhlCi0gICAgICAgIGNs
aWVudF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlciB0byB0aGUgaGFuZHNoYWtl
IHJlc3BvbnNlLAotICAgICAgICBidXQgZG9lc24ndCByZWR1Y2UgdGhlIExaNzcgc2xpZGluZyB3
aW5kb3cgc2l6ZSBvZiBpdHMgaW5mbGF0ZXIuCi0gICAgICAgIEkuZS4sIHlvdSBjYW4gdXNlIHRo
aXMgZm9yIHRlc3RpbmcgY2xpZW50IGltcGxlbWVudGF0aW9uIGJ1dCBjYW5ub3QKLSAgICAgICAg
cmVkdWNlIG1lbW9yeSB1c2FnZSBvZiB0aGlzIGNsYXNzLgotCi0gICAgICAgIElmIHRoaXMgbWV0
aG9kIGhhcyBiZWVuIGNhbGxlZCB3aXRoIFRydWUgYW5kIGFuIG9mZmVyIHdpdGhvdXQgdGhlCi0g
ICAgICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZXh0ZW5zaW9uIHBhcmFtZXRlciBpcyByZWNl
aXZlZCwKLSAgICAgICAgLSAoV2hlbiBwcm9jZXNzaW5nIHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUg
ZXh0ZW5zaW9uKSB0aGlzIHByb2Nlc3NvcgotICAgICAgICAgIGRlY2xpbmVzIHRoZSByZXF1ZXN0
LgotICAgICAgICAtIChXaGVuIHByb2Nlc3NpbmcgdGhlIHBlcm1lc3NhZ2UtY29tcHJlc3MgZXh0
ZW5zaW9uKSB0aGlzIHByb2Nlc3NvcgotICAgICAgICAgIGFjY2VwdHMgdGhlIHJlcXVlc3QuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19i
aXRzID0gdmFsdWUKLQotICAgIGRlZiBzZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIoc2Vs
ZiwgdmFsdWUpOgotICAgICAgICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoaXMg
Y2xhc3MgYWRkcyB0aGUKLSAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgZXh0ZW5z
aW9uIHBhcmFtZXRlciB0byB0aGUgaGFuZHNoYWtlCi0gICAgICAgIHJlc3BvbnNlLCBidXQgZG9l
c24ndCByZXNldCBpbmZsYXRlciBmb3IgZWFjaCBtZXNzYWdlLiBJLmUuLCB5b3UgY2FuCi0gICAg
ICAgIHVzZSB0aGlzIGZvciB0ZXN0aW5nIGNsaWVudCBpbXBsZW1lbnRhdGlvbiBidXQgY2Fubm90
IHJlZHVjZSBtZW1vcnkKLSAgICAgICAgdXNhZ2Ugb2YgdGhpcyBjbGFzcy4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSB2YWx1ZQotCi0g
ICAgZGVmIHNldF9iZmluYWwoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0
X2JmaW5hbCh2YWx1ZSkKLQotICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2Vs
Zik6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChU
cnVlKQotCi0gICAgZGVmIGRpc2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6Ci0gICAg
ICAgIHNlbGYuX2ZyYW1lci5zZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChGYWxzZSkKLQot
Ci1jbGFzcyBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIob2JqZWN0KToKLSAgICAiIiJBIGZyYW1l
ciBmb3IgZXh0ZW5zaW9ucyB3aXRoIHBlci1tZXNzYWdlIERFRkxBVEUgZmVhdHVyZS4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWZsYXRlX21heF93aW5kb3dfYml0cywgZGVmbGF0ZV9u
b19jb250ZXh0X3Rha2VvdmVyKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwu
X1JGQzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIGRlZmxhdGVfbWF4X3dpbmRvd19iaXRzLCBk
ZWZsYXRlX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9pbmZs
YXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAgICAgc2VsZi5fYmZpbmFsID0g
RmFsc2UKLQotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkID0gRmFsc2UK
LQotICAgICAgICAjIFRydWUgaWYgYSBtZXNzYWdlIGlzIGZyYWdtZW50ZWQgYW5kIGNvbXByZXNz
aW9uIGlzIG9uZ29pbmcuCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX29uZ29pbmcgPSBGYWxzZQot
Ci0gICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgb3V0Z29pbmcgYnl0
ZXMgc3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8KLSAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVz
IHNlbnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAg
IHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9D
YWxjdWxhdG9yKCkKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRvdGFs
IGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmspIC8KLSAgICAgICAgIyAgICAgKFRvdGFs
IGluY29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVyIGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAg
ICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJh
dGlvQ2FsY3VsYXRvcigpCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6Ci0gICAg
ICAgIHNlbGYuX2JmaW5hbCA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2NvbXByZXNzX291dGdvaW5n
X2VuYWJsZWQoc2VsZiwgdmFsdWUpOgotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZ19l
bmFibGVkID0gdmFsdWUKLQotICAgIGRlZiBfcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlKHNlbGYs
IG1lc3NhZ2UsIGRlY29tcHJlc3MpOgotICAgICAgICBpZiBub3QgZGVjb21wcmVzczoKLSAgICAg
ICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplID0g
bGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3Vs
YXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRf
c2l6ZSkKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fcmZjMTk3OV9pbmZsYXRlci5maWx0ZXIo
bWVzc2FnZSkKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkK
LSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9vcmln
aW5hbF9ieXRlcygKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAg
ICAgICAgX2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplLAotICAg
ICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBzZWxm
Ll9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkK
LQotICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgZGVmIF9wcm9jZXNzX291dGdvaW5nX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kLCBiaW5hcnkpOgotICAgICAgICBpZiBub3QgYmluYXJ5
OgotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAg
ICAgaWYgbm90IHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gbWVzc2FnZQotCi0gICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNz
YWdlKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRk
X29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplKQotCi0g
ICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyLmZpbHRlcigKLSAgICAgICAg
ICAgIG1lc3NhZ2UsIGVuZD1lbmQsIGJmaW5hbD1zZWxmLl9iZmluYWwpCi0KLSAgICAgICAgZmls
dGVyZWRfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX291dGdvaW5n
X2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAg
ZmlsdGVyZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Np
b25fcmF0aW8oCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAotICAgICAgICAgICAgICAg
IG9yaWdpbmFsX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2Fk
X3NpemUsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxj
dWxhdG9yLmdldF9hdmVyYWdlX3JhdGlvKCkpCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2NvbXBy
ZXNzX29uZ29pbmc6Ci0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuc2V0
X2NvbXByZXNzaW9uX2JpdCgpCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX29uZ29pbmcgPSBub3Qg
ZW5kCi0gICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICBkZWYgX3Byb2Nlc3NfaW5jb21pbmdf
ZnJhbWUoc2VsZiwgZnJhbWUpOgotICAgICAgICBpZiBmcmFtZS5yc3YxID09IDEgYW5kIG5vdCBj
b21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIHNlbGYu
X2luY29taW5nX21lc3NhZ2VfZmlsdGVyLmRlY29tcHJlc3NfbmV4dF9tZXNzYWdlKCkKLSAgICAg
ICAgICAgIGZyYW1lLnJzdjEgPSAwCi0KLSAgICBkZWYgX3Byb2Nlc3Nfb3V0Z29pbmdfZnJhbWUo
c2VsZiwgZnJhbWUsIGNvbXByZXNzaW9uX2JpdCk6Ci0gICAgICAgIGlmIChub3QgY29tcHJlc3Np
b25fYml0IG9yCi0gICAgICAgICAgICBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bj
b2RlKSk6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBmcmFtZS5yc3YxID0gMQotCi0g
ICAgZGVmIHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAg
ICAgIiIiQ3JlYXRlcyBmaWx0ZXJzIGFuZCBzZXRzIHRoZW0gdG8gdGhlIFN0cmVhbU9wdGlvbnMu
IiIiCi0KLSAgICAgICAgY2xhc3MgX091dGdvaW5nTWVzc2FnZUZpbHRlcihvYmplY3QpOgotCi0g
ICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBtZXNz
YWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fcGFyZW50Ll9wcm9jZXNzX291dGdvaW5nX21lc3NhZ2UoCi0gICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2UsIGVuZCwgYmluYXJ5KQotCi0gICAgICAgIGNsYXNzIF9JbmNvbWluZ01lc3NhZ2VG
aWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0gICAgICAgICAgICAgICAg
c2VsZi5fZGVjb21wcmVzc19uZXh0X21lc3NhZ2UgPSBGYWxzZQotCi0gICAgICAgICAgICBkZWYg
ZGVjb21wcmVzc19uZXh0X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZGVj
b21wcmVzc19uZXh0X21lc3NhZ2UgPSBUcnVlCi0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2Vs
ZiwgbWVzc2FnZSk6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3BhcmVudC5fcHJv
Y2Vzc19pbmNvbWluZ19tZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLCBzZWxm
Ll9kZWNvbXByZXNzX25leHRfbWVzc2FnZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXBy
ZXNzX25leHRfbWVzc2FnZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UK
LQotICAgICAgICBzZWxmLl9vdXRnb2luZ19tZXNzYWdlX2ZpbHRlciA9IF9PdXRnb2luZ01lc3Nh
Z2VGaWx0ZXIoc2VsZikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIgPSBf
SW5jb21pbmdNZXNzYWdlRmlsdGVyKHNlbGYpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdv
aW5nX21lc3NhZ2VfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19t
ZXNzYWdlX2ZpbHRlcikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9m
aWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX21lc3NhZ2VfZmlsdGVy
KQotCi0gICAgICAgIGNsYXNzIF9PdXRnb2luZ0ZyYW1lRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYu
X3BhcmVudCA9IHBhcmVudAotICAgICAgICAgICAgICAgIHNlbGYuX3NldF9jb21wcmVzc2lvbl9i
aXQgPSBGYWxzZQotCi0gICAgICAgICAgICBkZWYgc2V0X2NvbXByZXNzaW9uX2JpdChzZWxmKToK
LSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0ID0gVHJ1ZQotCi0gICAg
ICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9w
YXJlbnQuX3Byb2Nlc3Nfb3V0Z29pbmdfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGZyYW1l
LCBzZWxmLl9zZXRfY29tcHJlc3Npb25fYml0KQotICAgICAgICAgICAgICAgIHNlbGYuX3NldF9j
b21wcmVzc2lvbl9iaXQgPSBGYWxzZQotCi0gICAgICAgIGNsYXNzIF9JbmNvbWluZ0ZyYW1lRmls
dGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYg
ZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX3Byb2Nl
c3NfaW5jb21pbmdfZnJhbWUoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVf
ZmlsdGVyID0gX091dGdvaW5nRnJhbWVGaWx0ZXIoc2VsZikKLSAgICAgICAgc2VsZi5faW5jb21p
bmdfZnJhbWVfZmlsdGVyID0gX0luY29taW5nRnJhbWVGaWx0ZXIoc2VsZikKLSAgICAgICAgc3Ry
ZWFtX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBz
ZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIpCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmluY29t
aW5nX2ZyYW1lX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZnJh
bWVfZmlsdGVyKQotCi0gICAgICAgIHN0cmVhbV9vcHRpb25zLmVuY29kZV90ZXh0X21lc3NhZ2Vf
dG9fdXRmOCA9IEZhbHNlCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OXSA9ICgKLSAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3IpCi0jIFRPRE8odHlvc2hpbm8pOiBSZW9yZ2FuaXplIGNsYXNzIG5hbWVz
LgotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoJ2RlZmxhdGUnKQotCi0KLWNs
YXNzIFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcigKLSAgICBDb21wcmVzc2lv
bkV4dGVuc2lvblByb2Nlc3NvckJhc2UpOgotICAgICIiInBlcm1lc3NhZ2UtY29tcHJlc3MgZXh0
ZW5zaW9uIHByb2Nlc3Nvci4KLQotICAgIFNwZWNpZmljYXRpb246Ci0gICAgaHR0cDovL3Rvb2xz
LmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBlcm1lc3NhZ2UtY29tcHJlc3Npb24KLSAg
ICAiIiIKLQotICAgIF9ERUZMQVRFX01FVEhPRCA9ICdkZWZsYXRlJwotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBDb21wcmVzc2lvbkV4dGVuc2lvblByb2Nlc3Nv
ckJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAg
ICAgICByZXR1cm4gY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OCi0KLSAg
ICBkZWYgX2xvb2t1cF9jb21wcmVzc2lvbl9wcm9jZXNzb3Ioc2VsZiwgbWV0aG9kX2Rlc2MpOgot
ICAgICAgICBpZiBtZXRob2RfZGVzYy5uYW1lKCkgPT0gc2VsZi5fREVGTEFURV9NRVRIT0Q6Ci0g
ICAgICAgICAgICByZXR1cm4gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IobWV0
aG9kX2Rlc2MsIEZhbHNlKQotICAgICAgICByZXR1cm4gTm9uZQotCi0KLV9hdmFpbGFibGVfcHJv
Y2Vzc29yc1tjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT05dID0gKAotICAg
IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcikKLV9jb21wcmVzc2lvbl9leHRl
bnNpb25fbmFtZXMuYXBwZW5kKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lP
TikKLQotCi1jbGFzcyBNdXhFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50
ZXJmYWNlKToKLSAgICAiIiJXZWJTb2NrZXQgbXVsdGlwbGV4aW5nIGV4dGVuc2lvbiBwcm9jZXNz
b3IuIiIiCi0KLSAgICBfUVVPVEFfUEFSQU0gPSAncXVvdGEnCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9xdW90YSA9IDAKLSAgICAgICAgc2Vs
Zi5fZXh0ZW5zaW9ucyA9IFtdCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJu
IGNvbW1vbi5NVVhfRVhURU5TSU9OCi0KLSAgICBkZWYgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9v
dGhlcl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nlc3NvcnMpOgotICAgICAgICBiZWZvcmVfbXV4ID0g
VHJ1ZQotICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHByb2Nlc3NvcnM6Ci0gICAgICAgICAgICBu
YW1lID0gcHJvY2Vzc29yLm5hbWUoKQotICAgICAgICAgICAgaWYgbmFtZSA9PSBzZWxmLm5hbWUo
KToKLSAgICAgICAgICAgICAgICBiZWZvcmVfbXV4ID0gRmFsc2UKLSAgICAgICAgICAgICAgICBj
b250aW51ZQotICAgICAgICAgICAgaWYgbm90IHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgYmVmb3JlX211eDoKLSAgICAgICAg
ICAgICAgICAjIE11eCBleHRlbnNpb24gY2Fubm90IGJlIHVzZWQgYWZ0ZXIgZXh0ZW5zaW9ucwot
ICAgICAgICAgICAgICAgICMgdGhhdCBkZXBlbmQgb24gZnJhbWUgYm91bmRhcnksIGV4dGVuc2lv
biBkYXRhIGZpZWxkLCBvciBhbnkKLSAgICAgICAgICAgICAgICAjIHJlc2VydmVkIGJpdHMgd2hp
Y2ggYXJlIGF0dHJpYnV0ZWQgdG8gZWFjaCBmcmFtZS4KLSAgICAgICAgICAgICAgICBpZiAobmFt
ZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIE11eCBleHRl
bnNpb24gc2hvdWxkIG5vdCBiZSBhcHBsaWVkIGJlZm9yZSBhbnkgaGlzdG9yeS1iYXNlZAotICAg
ICAgICAgICAgICAgICMgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAgICAgICAgICAgIGlm
IChuYW1lID09IGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBvcgotICAgICAgICAgICAg
ICAgICAgICBuYW1lID09IGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBv
cgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNT
SU9OX0VYVEVOU0lPTiBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1vbi5YX1dF
QktJVF9QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAg
IHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHF1b3RhID0gc2VsZi5fcmVxdWVzdC5nZXRf
cGFyYW1ldGVyX3ZhbHVlKHNlbGYuX1FVT1RBX1BBUkFNKQotICAgICAgICBpZiBxdW90YSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBxdW90YSA9IGludChx
dW90YSkKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgICAgICBpZiBxdW90YSA8IDAgb3IgcXVvdGEgPj0gMiAqKiAz
MjoKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgc2VsZi5fcXVvdGEg
PSBxdW90YQotCi0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IFRydWUKLSAgICAgICAgcmV0dXJuIGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLk1VWF9FWFRFTlNJT04pCi0KLSAgICBkZWYg
X3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAg
ICAgICAgcGFzcwotCi0gICAgZGVmIHNldF9xdW90YShzZWxmLCBxdW90YSk6Ci0gICAgICAgIHNl
bGYuX3F1b3RhID0gcXVvdGEKLQotICAgIGRlZiBxdW90YShzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX3F1b3RhCi0KLSAgICBkZWYgc2V0X2V4dGVuc2lvbnMoc2VsZiwgZXh0ZW5zaW9ucyk6
Ci0gICAgICAgIHNlbGYuX2V4dGVuc2lvbnMgPSBleHRlbnNpb25zCi0KLSAgICBkZWYgZXh0ZW5z
aW9ucyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2V4dGVuc2lvbnMKLQotCi1fYXZhaWxh
YmxlX3Byb2Nlc3NvcnNbY29tbW9uLk1VWF9FWFRFTlNJT05dID0gTXV4RXh0ZW5zaW9uUHJvY2Vz
c29yCi0KLQotZGVmIGdldF9leHRlbnNpb25fcHJvY2Vzc29yKGV4dGVuc2lvbl9yZXF1ZXN0KToK
LSAgICAiIiJHaXZlbiBhbiBFeHRlbnNpb25QYXJhbWV0ZXIgcmVwcmVzZW50aW5nIGFuIGV4dGVu
c2lvbiBvZmZlciByZWNlaXZlZAotICAgIGZyb20gYSBjbGllbnQsIGNvbmZpZ3VyZXMgYW5kIHJl
dHVybnMgYW4gaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcKLSAgICBleHRlbnNpb24gcHJv
Y2Vzc29yIGNsYXNzLgotICAgICIiIgotCi0gICAgcHJvY2Vzc29yX2NsYXNzID0gX2F2YWlsYWJs
ZV9wcm9jZXNzb3JzLmdldChleHRlbnNpb25fcmVxdWVzdC5uYW1lKCkpCi0gICAgaWYgcHJvY2Vz
c29yX2NsYXNzIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBOb25lCi0gICAgcmV0dXJuIHByb2Nl
c3Nvcl9jbGFzcyhleHRlbnNpb25fcmVxdWVzdCkKLQotCi1kZWYgaXNfY29tcHJlc3Npb25fZXh0
ZW5zaW9uKGV4dGVuc2lvbl9uYW1lKToKLSAgICByZXR1cm4gZXh0ZW5zaW9uX25hbWUgaW4gX2Nv
bXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZGFhZDI3ZjUzYzQ2YmUyYTcxYzcwNGM3MDhmYmIzZjQyZjFhM2QxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNv
Y2tldC9mYXN0X21hc2tpbmcuaQorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8vIENv
cHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0v
LyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotLy8gZGlzdHJp
YnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotLy8g
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8vIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLS8vIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0lbW9kdWxlIGZhc3Rf
bWFza2luZwotCi0laW5jbHVkZSAiY3N0cmluZy5pIgotCi0lewotI2luY2x1ZGUgPGNzdHJpbmc+
Ci0KLSNpZmRlZiBfX1NTRTJfXwotI2luY2x1ZGUgPGVtbWludHJpbi5oPgotI2VuZGlmCi0lfQot
Ci0lYXBwbHkgKGNoYXIgKlNUUklORywgaW50IExFTkdUSCkgewotICAgIChjb25zdCBjaGFyKiBw
YXlsb2FkLCBpbnQgcGF5bG9hZF9sZW5ndGgpLAotICAgIChjb25zdCBjaGFyKiBtYXNraW5nX2tl
eSwgaW50IG1hc2tpbmdfa2V5X2xlbmd0aCkgfTsKLSVjc3RyaW5nX291dHB1dF9hbGxvY2F0ZV9z
aXplKAotICAgIGNoYXIqKiByZXN1bHQsIGludCogcmVzdWx0X2xlbmd0aCwgZGVsZXRlIFtdICok
MSk7Ci0KLSVpbmxpbmUgJXsKLQotdm9pZCBtYXNrKAotICAgIGNvbnN0IGNoYXIqIHBheWxvYWQs
IGludCBwYXlsb2FkX2xlbmd0aCwKLSAgICBjb25zdCBjaGFyKiBtYXNraW5nX2tleSwgaW50IG1h
c2tpbmdfa2V5X2xlbmd0aCwKLSAgICBpbnQgbWFza2luZ19rZXlfaW5kZXgsCi0gICAgY2hhcioq
IHJlc3VsdCwgaW50KiByZXN1bHRfbGVuZ3RoKSB7Ci0gICpyZXN1bHQgPSBuZXcgY2hhcltwYXls
b2FkX2xlbmd0aF07Ci0gICpyZXN1bHRfbGVuZ3RoID0gcGF5bG9hZF9sZW5ndGg7Ci0gIG1lbWNw
eSgqcmVzdWx0LCBwYXlsb2FkLCBwYXlsb2FkX2xlbmd0aCk7Ci0KLSAgY2hhciogY3Vyc29yID0g
KnJlc3VsdDsKLSAgY2hhciogY3Vyc29yX2VuZCA9ICpyZXN1bHQgKyAqcmVzdWx0X2xlbmd0aDsK
LQotI2lmZGVmIF9fU1NFMl9fCi0gIHdoaWxlICgoY3Vyc29yIDwgY3Vyc29yX2VuZCkgJiYKLSAg
ICAgICAgIChyZWludGVycHJldF9jYXN0PHNpemVfdD4oY3Vyc29yKSAmIDB4ZikpIHsKLSAgICAq
Y3Vyc29yIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICArK2N1cnNvcjsK
LSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2lu
Z19rZXlfbGVuZ3RoOwotICB9Ci0gIGlmIChjdXJzb3IgPT0gY3Vyc29yX2VuZCkgewotICAgIHJl
dHVybjsKLSAgfQotCi0gIGNvbnN0IGludCBrQmxvY2tTaXplID0gMTY7Ci0gIF9fbTEyOGkgbWFz
a2luZ19rZXlfYmxvY2s7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwga0Jsb2NrU2l6ZTsgKytpKSB7
Ci0gICAgKihyZWludGVycHJldF9jYXN0PGNoYXIqPigmbWFza2luZ19rZXlfYmxvY2spICsgaSkg
PQotICAgICAgICBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07Ci0gICAgbWFza2luZ19r
ZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsK
LSAgfQotCi0gIHdoaWxlIChjdXJzb3IgKyBrQmxvY2tTaXplIDw9IGN1cnNvcl9lbmQpIHsKLSAg
ICBfX20xMjhpIHBheWxvYWRfYmxvY2sgPQotICAgICAgICBfbW1fbG9hZF9zaTEyOChyZWludGVy
cHJldF9jYXN0PF9fbTEyOGkqPihjdXJzb3IpKTsKLSAgICBfbW1fc3RyZWFtX3NpMTI4KHJlaW50
ZXJwcmV0X2Nhc3Q8X19tMTI4aSo+KGN1cnNvciksCi0gICAgICAgICAgICAgICAgICAgICBfbW1f
eG9yX3NpMTI4KHBheWxvYWRfYmxvY2ssIG1hc2tpbmdfa2V5X2Jsb2NrKSk7Ci0gICAgY3Vyc29y
ICs9IGtCbG9ja1NpemU7Ci0gIH0KLSNlbmRpZgotCi0gIHdoaWxlIChjdXJzb3IgPCBjdXJzb3Jf
ZW5kKSB7Ci0gICAgKmN1cnNvciBePSBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07Ci0g
ICAgKytjdXJzb3I7Ci0gICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXgg
KyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKLSAgfQotfQotCi0lfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE5NGY2YjM5NWFlMjNiM2ExMzY0MWNkNGI5MDRmNTkzNWQxZmExZjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMCAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hh
a2UgcHJvY2Vzc29yLiBUaGlzIGNsYXNzIHRyeSB0byBhcHBseSBhdmFpbGFibGUKLW9wZW5pbmcg
aGFuZHNoYWtlIHByb2Nlc3NvcnMgZm9yIGVhY2ggcHJvdG9jb2wgdmVyc2lvbiB1bnRpbCBhIGNv
bm5lY3Rpb24gaXMKLXN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4KLSIiIgotCi0KLWltcG9ydCBs
b2dnaW5nCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaTAwCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UgaW1wb3J0IGh5YmkKLSMgRXhwb3J0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIEhh
bmRzaGFrZUV4Y2VwdGlvbiwgYW5kIFZlcnNpb25FeGNlcHRpb24KLSMgc3ltYm9sIGZyb20gdGhp
cyBtb2R1bGUuCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFi
b3J0ZWRCeVVzZXJFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KLQotCi1fTE9HR0VSID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVmIGRvX2hhbmRzaGFrZShyZXF1ZXN0LCBkaXNwYXRj
aGVyLCBhbGxvd0RyYWZ0NzU9RmFsc2UsIHN0cmljdD1GYWxzZSk6Ci0gICAgIiIiUGVyZm9ybXMg
V2ViU29ja2V0IGhhbmRzaGFrZS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9w
eXRob24gcmVxdWVzdC4KLSAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2gu
RGlzcGF0Y2hlcikuCi0gICAgICAgIGFsbG93RHJhZnQ3NTogb2Jzb2xldGUgYXJndW1lbnQuIGln
bm9yZWQuCi0gICAgICAgIHN0cmljdDogb2Jzb2xldGUgYXJndW1lbnQuIGlnbm9yZWQuCi0KLSAg
ICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBpbiBw
ZXJmb3JtaW5nCi0gICAgaGFuZHNoYWtlLgotICAgICIiIgotCi0gICAgX0xPR0dFUi5kZWJ1Zygn
Q2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIHJlc291cmNlOiAlcicsIHJlcXVlc3QudXJpKQot
ICAgICMgVG8gcHJpbnQgbWltZXRvb2xzLk1lc3NhZ2UgYXMgZXNjYXBlZCBvbmUtbGluZSBzdHJp
bmcsIHdlIGNvbnZlcnRzCi0gICAgIyBoZWFkZXJzX2luIHRvIGRpY3Qgb2JqZWN0LiBXaXRob3V0
IGNvbnZlcnNpb24sIGlmIHdlIHVzZSAlciwgaXQganVzdAotICAgICMgcHJpbnRzIHRoZSB0eXBl
IGFuZCBhZGRyZXNzLCBhbmQgaWYgd2UgdXNlICVzLCBpdCBwcmludHMgdGhlIG9yaWdpbmFsCi0g
ICAgIyBoZWFkZXIgc3RyaW5nIGFzIG11bHRpcGxlIGxpbmVzLgotICAgICMKLSAgICAjIEJvdGgg
bWltZXRvb2xzLk1lc3NhZ2UgYW5kIE1wVGFibGVfVHlwZSBvZiBtb2RfcHl0aG9uIGNhbiBiZQot
ICAgICMgY29udmVydGVkIHRvIGRpY3QuCi0gICAgIwotICAgICMgbWltZXRvb2xzLk1lc3NhZ2Uu
X19zdHJfXyByZXR1cm5zIHRoZSBvcmlnaW5hbCBoZWFkZXIgc3RyaW5nLgotICAgICMgZGljdCht
aW1ldG9vbHMuTWVzc2FnZSBvYmplY3QpIHJldHVybnMgdGhlIG1hcCBmcm9tIGhlYWRlciBuYW1l
cyB0bwotICAgICMgaGVhZGVyIHZhbHVlcy4gV2hpbGUgTXBUYWJsZV9UeXBlIGRvZXNuJ3QgaGF2
ZSBzdWNoIF9fc3RyX18gYnV0IGp1c3QKLSAgICAjIF9fcmVwcl9fIHdoaWNoIGZvcm1hdHMgaXRz
ZWxmIGFzIHdlbGwgYXMgZGljdGlvbmFyeSBvYmplY3QuCi0gICAgX0xPR0dFUi5kZWJ1ZygKLSAg
ICAgICAgJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGRpY3QocmVx
dWVzdC5oZWFkZXJzX2luKSkKLQotICAgIGhhbmRzaGFrZXJzID0gW10KLSAgICBoYW5kc2hha2Vy
cy5hcHBlbmQoCi0gICAgICAgICgnUkZDIDY0NTUnLCBoeWJpLkhhbmRzaGFrZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikpKQotICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKLSAgICAgICAgKCdIeUJpIDAw
JywgaHliaTAwLkhhbmRzaGFrZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikpKQotCi0gICAgZm9yIG5h
bWUsIGhhbmRzaGFrZXIgaW4gaGFuZHNoYWtlcnM6Ci0gICAgICAgIF9MT0dHRVIuZGVidWcoJ1Ry
eWluZyBwcm90b2NvbCB2ZXJzaW9uICVzJywgbmFtZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgX0xPR0dFUi5pbmZvKCdF
c3RhYmxpc2hlZCAoJXMgcHJvdG9jb2wpJywgbmFtZSkKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgX0xPR0dFUi5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFuZHNo
YWtlIGFzICVzIHByb3RvY29sOiAlcicsCi0gICAgICAgICAgICAgICAgbmFtZSwgZSkKLSAgICAg
ICAgICAgIGlmIGUuc3RhdHVzOgotICAgICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgZXhj
ZXB0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByYWlzZQotICAgICAg
ICBleGNlcHQgVmVyc2lvbkV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHJhaXNlCi0KLSAgICAj
IFRPRE8odG95b3NoaW0pOiBBZGQgYSB0ZXN0IHRvIGNvdmVyIHRoZSBjYXNlIGFsbCBoYW5kc2hh
a2VycyBmYWlsLgotICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgJ0ZhaWxl
ZCB0byBjb21wbGV0ZSBvcGVuaW5nIGhhbmRzaGFrZSBmb3IgYWxsIGF2YWlsYWJsZSBwcm90b2Nv
bHMnLAotICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9fYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
X2Jhc2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5OTNhNTg0YjdiM2U1MmI2
MDdiNjViZjM4YWZkY2FkZGNhMmZlNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJDb21tb24gZnVuY3Rpb25zIGFuZCBleGNlcHRpb25zIHVzZWQgYnkgV2ViU29ja2V0IG9wZW5p
bmcgaGFuZHNoYWtlCi1wcm9jZXNzb3JzLgotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0
aWwKLQotCi1jbGFzcyBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIi
RXhjZXB0aW9uIGZvciBhYm9ydGluZyBhIGNvbm5lY3Rpb24gaW50ZW50aW9uYWxseS4KLQotICAg
IElmIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBpbiBkb19leHRyYV9oYW5kc2hha2UgaGFuZGxl
ciwgdGhlIGNvbm5lY3Rpb24KLSAgICB3aWxsIGJlIGFiYW5kb25lZC4gTm8gb3RoZXIgV2ViU29j
a2V0IG9yIEhUVFAoUykgaGFuZGxlciB3aWxsIGJlIGludm9rZWQuCi0KLSAgICBJZiB0aGlzIGV4
Y2VwdGlvbiBpcyByYWlzZWQgaW4gdHJhbnNmZXJfZGF0YV9oYW5kbGVyLCB0aGUgY29ubmVjdGlv
biB3aWxsCi0gICAgYmUgY2xvc2VkIHdpdGhvdXQgY2xvc2luZyBoYW5kc2hha2UuIE5vIG90aGVy
IFdlYlNvY2tldCBvciBIVFRQKFMpIGhhbmRsZXIKLSAgICB3aWxsIGJlIGludm9rZWQuCi0gICAg
IiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgSGFuZHNoYWtlRXhjZXB0aW9uKEV4Y2VwdGlvbik6
Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBhbiBlcnJvciBvY2N1
cnJlZCB3aGlsZSBwcm9jZXNzaW5nCi0gICAgV2ViU29ja2V0IGluaXRpYWwgaGFuZHNoYWtlLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1Ob25lKToKLSAg
ICAgICAgc3VwZXIoSGFuZHNoYWtlRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAg
ICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwotCi0KLWNsYXNzIFZlcnNpb25FeGNlcHRpb24oRXhj
ZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGEgdmVy
c2lvbiBvZiBjbGllbnQgcmVxdWVzdCBkb2VzIG5vdAotICAgIG1hdGNoIHdpdGggdmVyc2lvbiB0
aGUgc2VydmVyIHN1cHBvcnRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIHN1cHBvcnRlZF92ZXJzaW9ucz0nJyk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0
YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb246IGEg
c3RyIG9iamVjdCB0byBzaG93IHN1cHBvcnRlZCBoeWJpIHZlcnNpb25zLgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChlLmcuICc4LCAxMycpCi0gICAgICAgICIiIgotICAgICAgICBz
dXBlcihWZXJzaW9uRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBzZWxm
LnN1cHBvcnRlZF92ZXJzaW9ucyA9IHN1cHBvcnRlZF92ZXJzaW9ucwotCi0KLWRlZiBnZXRfZGVm
YXVsdF9wb3J0KGlzX3NlY3VyZSk6Ci0gICAgaWYgaXNfc2VjdXJlOgotICAgICAgICByZXR1cm4g
Y29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAotICAgIGVsc2U6Ci0gICAgICAg
IHJldHVybiBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQKLQotCi1kZWYgdmFsaWRhdGVf
c3VicHJvdG9jb2woc3VicHJvdG9jb2wpOgotICAgICIiIlZhbGlkYXRlIGEgdmFsdWUgaW4gdGhl
IFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgZmllbGQuCi0KLSAgICBTZWUgdGhlIFNlY3Rpb24gNC4x
LiwgNC4yLjIuLCBhbmQgNC4zLiBvZiBSRkMgNjQ1NS4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBz
dWJwcm90b2NvbDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHN1
YnByb3RvY29sIG5hbWU6IGVtcHR5JykKLQotICAgICMgUGFyYW1ldGVyIHNob3VsZCBiZSBlbmNv
ZGVkIEhUVFAgdG9rZW4uCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBhcnNpbmdTdGF0
ZShzdWJwcm90b2NvbCkKLSAgICB0b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tl
bihzdGF0ZSkKLSAgICByZXN0ID0gaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKQotICAgICMg
SWYgfHJlc3R8IGlzIG5vdCBOb25lLCB8c3VicHJvdG9jb2x8IGlzIG5vdCBvbmUgdG9rZW4gb3Ig
aW52YWxpZC4gSWYKLSAgICAjIHxyZXN0fCBpcyBOb25lLCB8dG9rZW58IG11c3Qgbm90IGJlIE5v
bmUgYmVjYXVzZSB8c3VicHJvdG9jb2x8IGlzCi0gICAgIyBjb25jYXRlbmF0aW9uIG9mIHx0b2tl
bnwgYW5kIHxyZXN0fCBhbmQgaXMgbm90IE5vbmUuCi0gICAgaWYgcmVzdCBpcyBub3QgTm9uZToK
LSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIG5vbi10b2tlbiBzdHJp
bmcgaW4gc3VicHJvdG9jb2wgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25h
bWU6ICVyJyAlIHJlc3QpCi0KLQotZGVmIHBhcnNlX2hvc3RfaGVhZGVyKHJlcXVlc3QpOgotICAg
IGZpZWxkcyA9IHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uSE9TVF9IRUFERVJdLnNwbGl0KCc6
JywgMSkKLSAgICBpZiBsZW4oZmllbGRzKSA9PSAxOgotICAgICAgICByZXR1cm4gZmllbGRzWzBd
LCBnZXRfZGVmYXVsdF9wb3J0KHJlcXVlc3QuaXNfaHR0cHMoKSkKLSAgICB0cnk6Ci0gICAgICAg
IHJldHVybiBmaWVsZHNbMF0sIGludChmaWVsZHNbMV0pCi0gICAgZXhjZXB0IFZhbHVlRXJyb3Is
IGU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBwb3J0IG51bWJl
ciBmb3JtYXQ6ICVyJyAlIGUpCi0KLQotZGVmIGZvcm1hdF9oZWFkZXIobmFtZSwgdmFsdWUpOgot
ICAgIHJldHVybiAnJXM6ICVzXHJcbicgJSAobmFtZSwgdmFsdWUpCi0KLQotZGVmIGdldF9tYW5k
YXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSk6Ci0gICAgdmFsdWUgPSByZXF1ZXN0LmhlYWRlcnNf
aW4uZ2V0KGtleSkKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICByYWlzZSBIYW5kc2hh
a2VFeGNlcHRpb24oJ0hlYWRlciAlcyBpcyBub3QgZGVmaW5lZCcgJSBrZXkpCi0gICAgcmV0dXJu
IHZhbHVlCi0KLQotZGVmIHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5LCBl
eHBlY3RlZF92YWx1ZSwgZmFpbF9zdGF0dXM9Tm9uZSk6Ci0gICAgdmFsdWUgPSBnZXRfbWFuZGF0
b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpCi0KLSAgICBpZiB2YWx1ZS5sb3dlcigpICE9IGV4cGVj
dGVkX3ZhbHVlLmxvd2VyKCk6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICdFeHBlY3RlZCAlciBmb3IgaGVhZGVyICVzIGJ1dCBmb3VuZCAlciAoY2FzZS1p
bnNlbnNpdGl2ZSknICUKLSAgICAgICAgICAgIChleHBlY3RlZF92YWx1ZSwga2V5LCB2YWx1ZSks
IHN0YXR1cz1mYWlsX3N0YXR1cykKLQotCi1kZWYgY2hlY2tfcmVxdWVzdF9saW5lKHJlcXVlc3Qp
OgotICAgICMgNS4xIDEuIFRoZSB0aHJlZSBjaGFyYWN0ZXIgVVRGLTggc3RyaW5nICJHRVQiLgot
ICAgICMgNS4xIDIuIEEgVVRGLTgtZW5jb2RlZCBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyICgweDIw
IGJ5dGUpLgotICAgIGlmIHJlcXVlc3QubWV0aG9kICE9ICdHRVQnOgotICAgICAgICByYWlzZSBI
YW5kc2hha2VFeGNlcHRpb24oJ01ldGhvZCBpcyBub3QgR0VUOiAlcicgJSByZXF1ZXN0Lm1ldGhv
ZCkKLQotICAgIGlmIHJlcXVlc3QucHJvdG9jb2wgIT0gJ0hUVFAvMS4xJzoKLSAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdWZXJzaW9uIGlzIG5vdCBIVFRQLzEuMTogJXInICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QucHJvdG9jb2wpCi0KLQotZGVm
IHBhcnNlX3Rva2VuX2xpc3QoZGF0YSk6Ci0gICAgIiIiUGFyc2VzIGEgaGVhZGVyIHZhbHVlIHdo
aWNoIGZvbGxvd3MgMSN0b2tlbiBhbmQgcmV0dXJucyBwYXJzZWQgZWxlbWVudHMKLSAgICBhcyBh
IGxpc3Qgb2Ygc3RyaW5ncy4KLQotICAgIExlYWRpbmcgTFdTZXMgbXVzdCBiZSB0cmltbWVkLgot
ICAgICIiIgotCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBhcnNpbmdTdGF0ZShkYXRh
KQotCi0gICAgdG9rZW5fbGlzdCA9IFtdCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICB0b2tl
biA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0ZSkKLSAgICAgICAgaWYgdG9r
ZW4gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0b2tlbl9saXN0LmFwcGVuZCh0b2tlbikKLQot
ICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAgICAg
aWYgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSBpcyBOb25lOgotICAgICAgICAgICAgYnJl
YWsKLQotICAgICAgICBpZiBub3QgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0
ZSwgJywnKToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnRXhwZWN0ZWQgYSBjb21tYSBidXQgZm91bmQgJXInICUgaHR0cF9oZWFkZXJfdXRp
bC5wZWVrKHN0YXRlKSkKLQotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMo
c3RhdGUpCi0KLSAgICBpZiBsZW4odG9rZW5fbGlzdCkgPT0gMDoKLSAgICAgICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKCdObyB2YWxpZCB0b2tlbiBmb3VuZCcpCi0KLSAgICByZXR1cm4gdG9r
ZW5fbGlzdAotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9oeWJpLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWQxMGVh
MzcyODI5ZDA5M2Q2NmU2YWM2MGFjY2NkOWMxY2FlZmI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvaHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyMCArMCwwIEBACi0jIENvcHlyaWdodCAy
MDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nl
c3NvciBmb3IgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgKFJGQyA2NDU1KS4KLQotU3BlY2lmaWNh
dGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKLSIiIgotCi0KLSMgTm90
ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlIGlzIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4g
dGhvdWdoIG1vZF9weXRob24KLSMgZG9jdW1lbnQgc2F5cyB0aGF0IGl0IHNob3VsZCBiZSB1c2Vk
IG9ubHkgaW4gY29ubmVjdGlvbiBoYW5kbGVycy4KLSMgVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBu
byBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwgcmVxdWVzdC53cml0ZSBpcyBub3QKLSMgc3Vp
dGFibGUgYmVjYXVzZSBpdCBkb2Vzbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMgd3JpdGluZy4K
LQotCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUK
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuZXh0ZW5zaW9ucyBpbXBvcnQgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKLWZyb20gbW9kX3B5
d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0X2xp
bmUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0X2hl
YWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFu
ZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9y
dCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgcGFyc2VfdG9rZW5fbGlzdAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Ll9iYXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCB1dGlsCi0KLQotIyBVc2VkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZSBpbiB0aGUgU2VjLVdl
YlNvY2tldC1LZXkgaGVhZGVyIHN0cmljdGx5LiBSRkMgNDY0OAotIyBkaXNhbGxvd3Mgbm9uLXpl
cm8gcGFkZGluZywgc28gdGhlIGNoYXJhY3RlciByaWdodCBiZWZvcmUgPT0gbXVzdCBiZSBhbnkg
b2YKLSMgQSwgUSwgZyBhbmQgdy4KLV9TRUNfV0VCU09DS0VUX0tFWV9SRUdFWCA9IHJlLmNvbXBp
bGUoJ15bKy8wLTlBLVphLXpdezIxfVtBUWd3XT09JCcpCi0KLSMgRGVmaW5pbmcgYWxpYXNlcyBm
b3IgdmFsdWVzIHVzZWQgZnJlcXVlbnRseS4KLV9WRVJTSU9OX0xBVEVTVCA9IGNvbW1vbi5WRVJT
SU9OX0hZQklfTEFURVNUCi1fVkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3RyKF9WRVJTSU9OX0xB
VEVTVCkKLV9TVVBQT1JURURfVkVSU0lPTlMgPSBbCi0gICAgX1ZFUlNJT05fTEFURVNULAotXQot
Ci0KLWRlZiBjb21wdXRlX2FjY2VwdChrZXkpOgotICAgICIiIkNvbXB1dGVzIHZhbHVlIGZvciB0
aGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyIGZyb20gdmFsdWUgb2YgdGhlCi0gICAgU2Vj
LVdlYlNvY2tldC1LZXkgaGVhZGVyLgotICAgICIiIgotCi0gICAgYWNjZXB0X2JpbmFyeSA9IHV0
aWwuc2hhMV9oYXNoKAotICAgICAgICBrZXkgKyBjb21tb24uV0VCU09DS0VUX0FDQ0VQVF9VVUlE
KS5kaWdlc3QoKQotICAgIGFjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYWNjZXB0X2JpbmFyeSkK
LQotICAgIHJldHVybiAoYWNjZXB0LCBhY2NlcHRfYmluYXJ5KQotCi0KLWNsYXNzIEhhbmRzaGFr
ZXIob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBX
ZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNl
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVl
c3QuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRj
aGVyKS4KLQotICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3
c19yZXNvdXJjZSBkdXJpbmcgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9y
ZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgot
Ci0gICAgZGVmIF92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcihzZWxmKToKLSAgICAgICAgY29u
bmVjdGlvbiA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dCwgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGNvbm5lY3Rpb25fdG9rZW5zID0gcGFyc2VfdG9rZW5fbGlzdChjb25uZWN0aW9uKQotICAgICAg
ICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNo
YWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgJXM6ICVzJyAl
IChjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGUpKQotCi0gICAgICAgIGNvbm5lY3Rpb25faXNf
dmFsaWQgPSBGYWxzZQotICAgICAgICBmb3IgdG9rZW4gaW4gY29ubmVjdGlvbl90b2tlbnM6Ci0g
ICAgICAgICAgICBpZiB0b2tlbi5sb3dlcigpID09IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05f
VFlQRS5sb3dlcigpOgotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQgPSBUcnVl
Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgaWYgbm90IGNvbm5lY3Rpb25faXNfdmFs
aWQ6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJyVzIGhlYWRlciBkb2VzblwndCBjb250YWluICIlcyInICUKLSAgICAgICAgICAgICAgICAo
Y29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUp
KQotCi0gICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19jbG9zZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNv
biA9IE5vbmUKLQotICAgICAgICAjIFBhcnNpbmcuCi0KLSAgICAgICAgY2hlY2tfcmVxdWVzdF9s
aW5lKHNlbGYuX3JlcXVlc3QpCi0KLSAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigK
LSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9I
RUFERVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKLQotICAg
ICAgICBzZWxmLl92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcigpCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCi0KLSAgICAgICAgdW51c2Vk
X2hvc3QgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBjb21tb24uSE9TVF9I
RUFERVIpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5fY2hlY2tf
dmVyc2lvbigpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZ2V0X29yaWdpbigp
Ci0gICAgICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2woKQotICAgICAgICAgICAgc2VsZi5fcGFy
c2VfZXh0ZW5zaW9ucygpCi0KLSAgICAgICAgICAgICMgS2V5IHZhbGlkYXRpb24sIHJlc3BvbnNl
IGdlbmVyYXRpb24uCi0KLSAgICAgICAgICAgIGtleSA9IHNlbGYuX2dldF9rZXkoKQotICAgICAg
ICAgICAgKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkgPSBjb21wdXRlX2FjY2VwdChrZXkpCi0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgJyVzOiAlciAoJXMp
JywKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLAot
ICAgICAgICAgICAgICAgIGFjY2VwdCwKLSAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShhY2Nl
cHRfYmluYXJ5KSkKLQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2
ZXJzaW9uIGlzIFJGQyA2NDU1JykKLQotICAgICAgICAgICAgIyBTZXR1cCBleHRlbnNpb24gcHJv
Y2Vzc29ycy4KLQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFtdCi0gICAgICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVl
c3RlZF9leHRlbnNpb25zOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBnZXRfZXh0
ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCkKLSAgICAgICAgICAgICAgICAgICAg
IyBVbmtub3duIGV4dGVuc2lvbiByZXF1ZXN0cyBhcmUganVzdCBpZ25vcmVkLgotICAgICAgICAg
ICAgICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCi0gICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gcHJvY2Vzc29ycwotCi0gICAgICAgICAgICAj
IExpc3Qgb2YgZXh0cmEgaGVhZGVycy4gVGhlIGV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBh
ZGQgaGVhZGVyCi0gICAgICAgICAgICAjIGRhdGEgYXMgbmFtZS92YWx1ZSBwYWlycyB0byB0aGlz
IGxpc3QgYW5kIHB5d2Vic29ja2V0IGFwcGVuZHMKLSAgICAgICAgICAgICMgdGhlbSB0byB0aGUg
V2ViU29ja2V0IGhhbmRzaGFrZS4KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVh
ZGVycyA9IFtdCi0KLSAgICAgICAgICAgICMgRXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IG1v
ZGlmeS9yZW1vdmUgcHJvY2Vzc29ycy4KLSAgICAgICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9f
ZXh0cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICAgICBwcm9jZXNzb3JzID0g
ZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3NvciBpcyBub3QgTm9uZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29ycykKLQotICAgICAgICAgICAgIyBBc2sgZWFjaCBwcm9jZXNzb3IgaWYgdGhlcmUgYXJlIGV4
dGVuc2lvbnMgb24gdGhlIHJlcXVlc3Qgd2hpY2gKLSAgICAgICAgICAgICMgY2Fubm90IGNvLWV4
aXN0LiBXaGVuIHByb2Nlc3NvciBkZWNpZGVkIG90aGVyIHByb2Nlc3NvcnMgY2Fubm90Ci0gICAg
ICAgICAgICAjIGNvLWV4aXN0IHdpdGggaXQsIHRoZSBwcm9jZXNzb3IgbWFya3MgdGhlbSAob3Ig
aXRzZWxmKSBhcwotICAgICAgICAgICAgIyAiaW5hY3RpdmUiLiBUaGUgZmlyc3QgZXh0ZW5zaW9u
IHByb2Nlc3NvciBoYXMgdGhlIHJpZ2h0IHRvCi0gICAgICAgICAgICAjIG1ha2UgdGhlIGZpbmFs
IGNhbGwuCi0gICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHJldmVyc2VkKHByb2Nlc3NvcnMp
OgotICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzc29yLmNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29y
cygKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCi0gICAgICAgICAgICBwcm9j
ZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKLQotICAgICAgICAg
ICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0KLSAgICAgICAgICAgICMgV2UgbmVlZCB0byB0
YWtlIGludG8gYWNjb3VudCBvZiBtdXggZXh0ZW5zaW9uIGhlcmUuCi0gICAgICAgICAgICAjIElm
IG11eCBleHRlbnNpb24gZXhpc3RzOgotICAgICAgICAgICAgIyAtIFJlbW92ZSBwcm9jZXNzb3Jz
IG9mIGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbCwKLSAgICAgICAgICAgICMgICB3aGlj
aCBhcmUgcHJvY2Vzc29ycyBsb2NhdGVkIGJlZm9yZSB0aGUgbXV4IHByb2Nlc3NvcgotICAgICAg
ICAgICAgIyAtIFBhc3MgZXh0ZW5zaW9uIHJlcXVlc3RzIGZvciBsb2dpY2FsIGNoYW5uZWwgdG8g
bXV4IHByb2Nlc3NvcgotICAgICAgICAgICAgIyAtIEF0dGFjaCB0aGUgbXV4IHByb2Nlc3NvciB0
byB0aGUgcmVxdWVzdC4gSXQgd2lsbCBiZSByZWZlcnJlZAotICAgICAgICAgICAgIyAgIGJ5IGRp
c3BhdGNoZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGRpc3BhdGNoZXIgc2hvdWxkIHVzZSBtdXgKLSAg
ICAgICAgICAgICMgICBoYW5kbGVyIG9yIG5vdC4KLSAgICAgICAgICAgIG11eF9pbmRleCA9IC0x
Ci0gICAgICAgICAgICBmb3IgaSwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToK
LSAgICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IubmFtZSgpID09IGNvbW1vbi5NVVhfRVhURU5T
SU9OOgotICAgICAgICAgICAgICAgICAgICBtdXhfaW5kZXggPSBpCi0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBtdXhfaW5kZXggPj0gMDoKLSAgICAgICAgICAgICAg
ICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgICAgICAgICAgZm9yIHBy
b2Nlc3NvciBpbiBwcm9jZXNzb3JzWzptdXhfaW5kZXhdOgotICAgICAgICAgICAgICAgICAgICBs
b2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucy5hcHBlbmQocHJvY2Vzc29yLnJlcXVlc3QoKSkKLSAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gcHJvY2Vzc29yc1ttdXhfaW5kZXhd
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNp
b25zKAotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAg
ICAgICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nl
c3Nvci5pc19hY3RpdmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
b2Nlc3NvcnMpCi0KLSAgICAgICAgICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygp
Ci0KLSAgICAgICAgICAgIGZvciBpbmRleCwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNz
b3JzKToKLSAgICAgICAgICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uX3Jl
c3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICAgICAg
ICAgIGlmIGV4dGVuc2lvbl9yZXNwb25zZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICAj
IFJlamVjdGVkLgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAg
ICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uX3Jlc3BvbnNlKQotCi0gICAg
ICAgICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25z
KQotCi0gICAgICAgICAgICAgICAgaWYgbm90IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihwcm9j
ZXNzb3IubmFtZSgpKToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAg
ICAgICAgICMgSW5hY3RpdmF0ZSBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb21wcmVzc2lvbiBleHRl
bnNpb25zLgotICAgICAgICAgICAgICAgIGZvciBqIGluIHhyYW5nZShpbmRleCArIDEsIGxlbihw
cm9jZXNzb3JzKSk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGlzX2NvbXByZXNzaW9uX2V4dGVu
c2lvbihwcm9jZXNzb3JzW2pdLm5hbWUoKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm9j
ZXNzb3JzW2pdLnNldF9hY3RpdmUoRmFsc2UpCi0KLSAgICAgICAgICAgIGlmIGxlbihhY2NlcHRl
ZF9leHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRl
bnNpb25zID0gYWNjZXB0ZWRfZXh0ZW5zaW9ucwotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbnMgYWNjZXB0ZWQ6ICVyJywK
LSAgICAgICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwg
YWNjZXB0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5vbmUKLQotICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9vcHRpb25zKQot
Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBp
cyBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3QgY2hvb3NlIG9u
ZSBzdWJwcm90b2NvbCBmcm9tICcKLSAgICAgICAgICAgICAgICAgICAgICAgICd3c19yZXF1ZXN0
ZWRfcHJvdG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQotICAgICAgICAgICAgICAg
IHZhbGlkYXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdTdWJw
cm90b2NvbCBhY2NlcHRlZDogJXInLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX3Byb3RvY29sKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAnd3NfcHJv
dG9jb2wgbXVzdCBiZSBOb25lIHdoZW4gdGhlIGNsaWVudCBkaWRuXCd0ICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdyZXF1ZXN0IGFueSBzdWJwcm90b2NvbCcpCi0KLSAgICAgICAgICAgIHNl
bGYuX3NlbmRfaGFuZHNoYWtlKGFjY2VwdCkKLSAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2Vw
dGlvbiwgZToKLSAgICAgICAgICAgIGlmIG5vdCBlLnN0YXR1czoKLSAgICAgICAgICAgICAgICAj
IEZhbGxiYWNrIHRvIDQwMCBiYWQgcmVxdWVzdCBieSBkZWZhdWx0LgotICAgICAgICAgICAgICAg
IGUuc3RhdHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCi0gICAgICAgICAgICBy
YWlzZSBlCi0KLSAgICBkZWYgX2dldF9vcmlnaW4oc2VsZik6Ci0gICAgICAgIG9yaWdpbl9oZWFk
ZXIgPSBjb21tb24uT1JJR0lOX0hFQURFUgotICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0
LmhlYWRlcnNfaW4uZ2V0KG9yaWdpbl9oZWFkZXIpCi0gICAgICAgIGlmIG9yaWdpbiBpcyBOb25l
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgcmVxdWVzdCBkb2VzIG5v
dCBoYXZlIG9yaWdpbiBoZWFkZXInKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9
IG9yaWdpbgotCi0gICAgZGVmIF9jaGVja192ZXJzaW9uKHNlbGYpOgotICAgICAgICB2ZXJzaW9u
ID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVS
KQotICAgICAgICBpZiB2ZXJzaW9uID09IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6Ci0gICAgICAg
ICAgICByZXR1cm4gX1ZFUlNJT05fTEFURVNUCi0KLSAgICAgICAgaWYgdmVyc2lvbi5maW5kKCcs
JykgPj0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnTXVsdGlwbGUgdmVyc2lvbnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9yIGhlYWRl
ciAlcycgJQotICAgICAgICAgICAgICAgICh2ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9W
RVJTSU9OX0hFQURFUiksCi0gICAgICAgICAgICAgICAgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRV
U19CQURfUkVRVUVTVCkKLSAgICAgICAgcmFpc2UgVmVyc2lvbkV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICdVbnN1cHBvcnRlZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUKLSAgICAgICAgICAg
ICh2ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiksCi0gICAgICAg
ICAgICBzdXBwb3J0ZWRfdmVyc2lvbnM9JywgJy5qb2luKG1hcChzdHIsIF9TVVBQT1JURURfVkVS
U0lPTlMpKSkKLQotICAgIGRlZiBfc2V0X3Byb3RvY29sKHNlbGYpOgotICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotCi0gICAgICAgIHByb3RvY29sX2hlYWRlciA9IHNl
bGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNP
Q0tFVF9QUk9UT0NPTF9IRUFERVIpCi0KLSAgICAgICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5v
bmU6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBO
b25lCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVl
c3RlZF9wcm90b2NvbHMgPSBwYXJzZV90b2tlbl9saXN0KAotICAgICAgICAgICAgcHJvdG9jb2xf
aGVhZGVyKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0
ZWQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVx
dWVzdGVkX3Byb3RvY29scykKLQotICAgIGRlZiBfcGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKLSAg
ICAgICAgZXh0ZW5zaW9uc19oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAot
ICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIpCi0gICAg
ICAgIGlmIG5vdCBleHRlbnNpb25zX2hlYWRlcjoKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgPSBOb25lCi0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNp
b25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9u
c19oZWFkZXIpCi0gICAgICAgIGV4Y2VwdCBjb21tb24uRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlv
biwgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnRmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXI6ICVy
JyAlIGUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4dGVu
c2lvbnMgcmVxdWVzdGVkOiAlcicsCi0gICAgICAgICAgICBtYXAoY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlci5uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVk
X2V4dGVuc2lvbnMpKQotCi0gICAgZGVmIF92YWxpZGF0ZV9rZXkoc2VsZiwga2V5KToKLSAgICAg
ICAgaWYga2V5LmZpbmQoJywnKSA+PSAwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhj
ZXB0aW9uKCdSZXF1ZXN0IGhhcyBtdWx0aXBsZSAlcyBoZWFkZXIgbGluZXMgb3IgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWlucyBpbGxlZ2FsIGNoYXJhY3Rl
ciBcJyxcJzogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29t
bW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKLQotICAgICAgICAjIFZhbGlkYXRl
Ci0gICAgICAgIGtleV9pc192YWxpZCA9IEZhbHNlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
ICMgVmFsaWRhdGUga2V5IGJ5IHF1aWNrIHJlZ2V4IG1hdGNoIGJlZm9yZSBwYXJzaW5nIGJ5IGJh
c2U2NAotICAgICAgICAgICAgIyBtb2R1bGUuIEJlY2F1c2UgYmFzZTY0IG1vZHVsZSBza2lwcyBp
bnZhbGlkIGNoYXJhY3RlcnMsIHdlIGhhdmUKLSAgICAgICAgICAgICMgdG8gZG8gdGhpcyBpbiBh
ZHZhbmNlIHRvIG1ha2UgdGhpcyBzZXJ2ZXIgc3RyaWN0bHkgcmVqZWN0IGlsbGVnYWwKLSAgICAg
ICAgICAgICMga2V5cy4KLSAgICAgICAgICAgIGlmIF9TRUNfV0VCU09DS0VUX0tFWV9SRUdFWC5t
YXRjaChrZXkpOgotICAgICAgICAgICAgICAgIGRlY29kZWRfa2V5ID0gYmFzZTY0LmI2NGRlY29k
ZShrZXkpCi0gICAgICAgICAgICAgICAgaWYgbGVuKGRlY29kZWRfa2V5KSA9PSAxNjoKLSAgICAg
ICAgICAgICAgICAgICAga2V5X2lzX3ZhbGlkID0gVHJ1ZQotICAgICAgICBleGNlcHQgVHlwZUVy
cm9yLCBlOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIGlmIG5vdCBrZXlfaXNfdmFsaWQ6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXInICUKLSAgICAgICAgICAgICAgICAoY29t
bW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKLQotICAgICAgICByZXR1cm4gZGVj
b2RlZF9rZXkKLQotICAgIGRlZiBfZ2V0X2tleShzZWxmKToKLSAgICAgICAga2V5ID0gZ2V0X21h
bmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSKQotCi0gICAgICAgIGRlY29kZWRfa2V5ID0gc2VsZi5fdmFsaWRh
dGVfa2V5KGtleSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
JXM6ICVyICglcyknLAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURF
UiwKLSAgICAgICAgICAgIGtleSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGRlY29kZWRfa2V5
KSkKLQotICAgICAgICByZXR1cm4ga2V5Ci0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwg
c3RyZWFtX29wdGlvbnMpOgotICAgICAgICByZXR1cm4gU3RyZWFtKHNlbGYuX3JlcXVlc3QsIHN0
cmVhbV9vcHRpb25zKQotCi0gICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYs
IGFjY2VwdCk6Ci0gICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICByZXNwb25zZS5hcHBl
bmQoJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAgIyBX
ZWJTb2NrZXQgaGVhZGVycwotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigK
LSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdS
QURFX1RZUEUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAg
ICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElP
Tl9UWVBFKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAg
ICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQotICAgICAg
ICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
cmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNF
Q19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2wpKQotICAgICAgICBpZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25z
IGlzIG5vdCBOb25lIGFuZAotICAgICAgICAgICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5z
aW9ucykgIT0gMCk6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigK
LSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwK
LSAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53
c19leHRlbnNpb25zKSkpCi0KLSAgICAgICAgIyBIZWFkZXJzIG5vdCBzcGVjaWZpYyBmb3IgV2Vi
U29ja2V0Ci0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hl
YWRlcnM6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcihuYW1lLCB2
YWx1ZSkpCi0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLQotICAgICAgICByZXR1
cm4gJycuam9pbihyZXNwb25zZSkKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNj
ZXB0KToKLSAgICAgICAgcmF3X3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNw
b25zZShhY2NlcHQpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdf
cmVzcG9uc2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3Bl
bmluZyBoYW5kc2hha2U6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNw
b25zZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9w
eXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9oeWJpMDAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NTc3
MTdhNjM5YmFjM2RiMDVkNGNiMzAyN2UwNTVmZGJmN2YzY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRz
aGFrZS9oeWJpMDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOTMgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSBw
cm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQKLXByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLQot
U3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHli
aS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMAotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gKLSMg
bW9kX3B5dGhvbiBkb2N1bWVudCBzYXlzIHRoYXQgdGhleSBzaG91bGQgYmUgdXNlZCBvbmx5IGlu
IGNvbm5lY3Rpb24KLSMgaGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIg
b3B0aW9ucy4gRm9yIGV4YW1wbGUsCi0jIHJlcXVlc3Qud3JpdGUvcmVhZCBhcmUgbm90IHN1aXRh
YmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3IGJ5dGVzCi0jIHdyaXRpbmcv
cmVhZGluZy4KLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHJlCi1pbXBvcnQgc3RydWN0Ci0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNo
YWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0
IGNoZWNrX3JlcXVlc3RfbGluZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNl
IGltcG9ydCBmb3JtYXRfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jh
c2UgaW1wb3J0IGdldF9kZWZhdWx0X3BvcnQKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5fYmFzZSBpbXBvcnQgZ2V0X21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgcGFyc2VfaG9zdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vi
c29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcgot
Ci0KLV9NQU5EQVRPUllfSEVBREVSUyA9IFsKLSAgICAjIGtleSwgZXhwZWN0ZWQgdmFsdWUgb3Ig
Tm9uZQotICAgIFtjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFE
RV9UWVBFX0hJWElFNzVdLAotICAgIFtjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5V
UEdSQURFX0NPTk5FQ1RJT05fVFlQRV0sCi1dCi0KLQotZGVmIF92YWxpZGF0ZV9zdWJwcm90b2Nv
bChzdWJwcm90b2NvbCk6Ci0gICAgIiIiQ2hlY2tzIGlmIGNoYXJhY3RlcnMgaW4gc3VicHJvdG9j
b2wgYXJlIGluIHJhbmdlIGJldHdlZW4gVSswMDIwIGFuZAotICAgIFUrMDA3RS4gQSB2YWx1ZSBp
biB0aGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBmaWVsZCBuZWVkIHRvIHNhdGlzZnkgdGhpcwot
ICAgIHJlcXVpcmVtZW50LgotCi0gICAgU2VlIHRoZSBTZWN0aW9uIDQuMS4gT3BlbmluZyBoYW5k
c2hha2Ugb2YgdGhlIHNwZWMuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qgc3VicHJvdG9jb2w6Ci0g
ICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1l
OiBlbXB0eScpCi0KLSAgICAjIFBhcmFtZXRlciBzaG91bGQgYmUgaW4gdGhlIHJhbmdlIFUrMDAy
MCB0byBVKzAwN0UuCi0gICAgZm9yIGMgaW4gc3VicHJvdG9jb2w6Ci0gICAgICAgIGlmIG5vdCAw
eDIwIDw9IG9yZChjKSA8PSAweDdlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIGNoYXJhY3RlciBpbiBzdWJwcm90b2NvbCBu
YW1lOiAlcicgJSBjKQotCi0KLWRlZiBfY2hlY2tfaGVhZGVyX2xpbmVzKHJlcXVlc3QsIG1hbmRh
dG9yeV9oZWFkZXJzKToKLSAgICBjaGVja19yZXF1ZXN0X2xpbmUocmVxdWVzdCkKLQotICAgICMg
VGhlIGV4cGVjdGVkIGZpZWxkIG5hbWVzLCBhbmQgdGhlIG1lYW5pbmcgb2YgdGhlaXIgY29ycmVz
cG9uZGluZwotICAgICMgdmFsdWVzLCBhcmUgYXMgZm9sbG93cy4KLSAgICAjICB8VXBncmFkZXwg
YW5kIHxDb25uZWN0aW9ufAotICAgIGZvciBrZXksIGV4cGVjdGVkX3ZhbHVlIGluIG1hbmRhdG9y
eV9oZWFkZXJzOgotICAgICAgICB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtl
eSwgZXhwZWN0ZWRfdmFsdWUpCi0KLQotZGVmIF9idWlsZF9sb2NhdGlvbihyZXF1ZXN0KToKLSAg
ICAiIiJCdWlsZCBXZWJTb2NrZXQgbG9jYXRpb24gZm9yIHJlcXVlc3QuIiIiCi0KLSAgICBsb2Nh
dGlvbl9wYXJ0cyA9IFtdCi0gICAgaWYgcmVxdWVzdC5pc19odHRwcygpOgotICAgICAgICBsb2Nh
dGlvbl9wYXJ0cy5hcHBlbmQoY29tbW9uLldFQl9TT0NLRVRfU0VDVVJFX1NDSEVNRSkKLSAgICBl
bHNlOgotICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoY29tbW9uLldFQl9TT0NLRVRfU0NI
RU1FKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZCgnOi8vJykKLSAgICBob3N0LCBwb3J0ID0g
cGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCkKLSAgICBjb25uZWN0aW9uX3BvcnQgPSByZXF1ZXN0
LmNvbm5lY3Rpb24ubG9jYWxfYWRkclsxXQotICAgIGlmIHBvcnQgIT0gY29ubmVjdGlvbl9wb3J0
OgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0hlYWRlci9jb25uZWN0aW9uIHBv
cnQgbWlzbWF0Y2g6ICVkLyVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
cG9ydCwgY29ubmVjdGlvbl9wb3J0KSkKLSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoaG9zdCkK
LSAgICBpZiAocG9ydCAhPSBnZXRfZGVmYXVsdF9wb3J0KHJlcXVlc3QuaXNfaHR0cHMoKSkpOgot
ICAgICAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQoJzonKQotICAgICAgICBsb2NhdGlvbl9wYXJ0
cy5hcHBlbmQoc3RyKHBvcnQpKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChyZXF1ZXN0LnVu
cGFyc2VkX3VyaSkKLSAgICByZXR1cm4gJycuam9pbihsb2NhdGlvbl9wYXJ0cykKLQotCi1jbGFz
cyBIYW5kc2hha2VyKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29y
IGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLSAgICAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIi
Q29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1
ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRj
aGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLQotICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRk
IGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBpbiBwZXJmb3JtaW5nCi0gICAgICAgIGhh
bmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAg
ICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLQotICAgIGRlZiBkb19oYW5kc2hh
a2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm0gV2ViU29ja2V0IEhhbmRzaGFrZS4KLQotICAg
ICAgICBPbiBfcmVxdWVzdCwgd2Ugc2V0Ci0gICAgICAgICAgICB3c19yZXNvdXJjZSwgd3NfcHJv
dG9jb2wsIHdzX2xvY2F0aW9uLCB3c19vcmlnaW4sIHdzX2NoYWxsZW5nZSwKLSAgICAgICAgICAg
IHdzX2NoYWxsZW5nZV9tZDU6IFdlYlNvY2tldCBoYW5kc2hha2UgaW5mb3JtYXRpb24uCi0gICAg
ICAgICAgICB3c19zdHJlYW06IEZyYW1lIGdlbmVyYXRpb24vcGFyc2luZyBjbGFzcy4KLSAgICAg
ICAgICAgIHdzX3ZlcnNpb246IFByb3RvY29sIHZlcnNpb24uCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgSGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIGFueSBlcnJvciBoYXBwZW5lZCBp
biBwYXJzaW5nIHRoZSBvcGVuaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh
bmRzaGFrZSByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICAjIDUuMSBSZWFkaW5nIHRo
ZSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIyBkaXNwYXRjaGVyIHNldHMg
aXQgaW4gc2VsZi5fcmVxdWVzdC4KLSAgICAgICAgX2NoZWNrX2hlYWRlcl9saW5lcyhzZWxmLl9y
ZXF1ZXN0LCBfTUFOREFUT1JZX0hFQURFUlMpCi0gICAgICAgIHNlbGYuX3NldF9yZXNvdXJjZSgp
Ci0gICAgICAgIHNlbGYuX3NldF9zdWJwcm90b2NvbCgpCi0gICAgICAgIHNlbGYuX3NldF9sb2Nh
dGlvbigpCi0gICAgICAgIHNlbGYuX3NldF9vcmlnaW4oKQotICAgICAgICBzZWxmLl9zZXRfY2hh
bGxlbmdlX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5fc2V0X3Byb3RvY29sX3ZlcnNpb24oKQot
Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVl
c3QpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9oYW5kc2hha2UoKQotCi0gICAgZGVmIF9zZXRfcmVz
b3VyY2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVzb3VyY2UgPSBzZWxmLl9y
ZXF1ZXN0LnVyaQotCi0gICAgZGVmIF9zZXRfc3VicHJvdG9jb2woc2VsZik6Ci0gICAgICAgICMg
fFNlYy1XZWJTb2NrZXQtUHJvdG9jb2x8Ci0gICAgICAgIHN1YnByb3RvY29sID0gc2VsZi5fcmVx
dWVzdC5oZWFkZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BS
T1RPQ09MX0hFQURFUikKLSAgICAgICAgaWYgc3VicHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woc3VicHJvdG9jb2wpCi0gICAgICAgIHNlbGYu
X3JlcXVlc3Qud3NfcHJvdG9jb2wgPSBzdWJwcm90b2NvbAotCi0gICAgZGVmIF9zZXRfbG9jYXRp
b24oc2VsZik6Ci0gICAgICAgICMgfEhvc3R8Ci0gICAgICAgIGhvc3QgPSBzZWxmLl9yZXF1ZXN0
LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5IT1NUX0hFQURFUikKLSAgICAgICAgaWYgaG9zdCBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfbG9jYXRpb24gPSBfYnVpbGRf
bG9jYXRpb24oc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBob3N0
IGlzIHRoaXMgaG9zdC4KLQotICAgIGRlZiBfc2V0X29yaWdpbihzZWxmKToKLSAgICAgICAgIyB8
T3JpZ2lufAotICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGNv
bW1vbi5PUklHSU5fSEVBREVSKQotICAgICAgICBpZiBvcmlnaW4gaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9yaWdpbgotCi0gICAgZGVmIF9zZXRf
cHJvdG9jb2xfdmVyc2lvbihzZWxmKToKLSAgICAgICAgIyB8U2VjLVdlYlNvY2tldC1EcmFmdHwK
LSAgICAgICAgZHJhZnQgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KGNvbW1vbi5TRUNf
V0VCU09DS0VUX0RSQUZUX0hFQURFUikKLSAgICAgICAgaWYgZHJhZnQgaXMgbm90IE5vbmUgYW5k
IGRyYWZ0ICE9ICcwJzoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSWxs
ZWdhbCB2YWx1ZSBmb3IgJXM6ICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHJhZnQpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnUHJvdG9jb2wgdmVyc2lvbiBpcyBIeUJpIDAwJykKLSAgICAgICAgc2VsZi5fcmVxdWVz
dC53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSTAwCi0gICAgICAgIHNlbGYuX3JlcXVl
c3Qud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShzZWxmLl9yZXF1ZXN0LCBUcnVlKQotCi0gICAg
ZGVmIF9zZXRfY2hhbGxlbmdlX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICAjIDUuMiA0LTguCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlID0gc2VsZi5fZ2V0X2NoYWxsZW5nZSgp
Ci0gICAgICAgICMgNS4yIDkuIGxldCAvcmVzcG9uc2UvIGJlIHRoZSBNRDUgZmludGVycHJpbnQg
b2YgL2NoYWxsZW5nZS8KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1ID0g
dXRpbC5tZDVfaGFzaCgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlKS5k
aWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxl
bmdlOiAlciAoJXMpJywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlLAot
ICAgICAgICAgICAgdXRpbC5oZXhpZnkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlIHJlc3BvbnNl
OiAlciAoJXMpJywKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSwK
LSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSkp
Ci0KLSAgICBkZWYgX2dldF9rZXlfdmFsdWUoc2VsZiwga2V5X2ZpZWxkKToKLSAgICAgICAga2V5
X3ZhbHVlID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwga2V5X2ZpZWxkKQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXM6ICVyJywga2V5X2ZpZWxkLCBrZXlfdmFs
dWUpCi0KLSAgICAgICAgIyA1LjIgNC4gbGV0IC9rZXktbnVtYmVyX24vIGJlIHRoZSBkaWdpdHMg
KGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlCi0gICAgICAgICMgVSswMDMwIERJR0lUIFpFUk8gKDAp
IHRvIFUrMDAzOSBESUdJVCBOSU5FICg5KSkgaW4gL2tleV9uLywKLSAgICAgICAgIyBpbnRlcnBy
ZXRlZCBhcyBhIGJhc2UgdGVuIGludGVnZXIsIGlnbm9yaW5nIGFsbCBvdGhlciBjaGFyYWN0ZXJz
Ci0gICAgICAgICMgaW4gL2tleV9uLy4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAga2V5X251
bWJlciA9IGludChyZS5zdWIoIlxcRCIsICIiLCBrZXlfdmFsdWUpKQotICAgICAgICBleGNlcHQ6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJyVzIGZpZWxkIGNvbnRhaW5z
IG5vIGRpZ2l0JyAlIGtleV9maWVsZCkKLSAgICAgICAgIyA1LjIgNS4gbGV0IC9zcGFjZXNfbi8g
YmUgdGhlIG51bWJlciBvZiBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycwotICAgICAgICAjIGluIC9r
ZXlfbi8uCi0gICAgICAgIHNwYWNlcyA9IHJlLnN1Ym4oIiAiLCAiIiwga2V5X3ZhbHVlKVsxXQot
ICAgICAgICBpZiBzcGFjZXMgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2Vw
dGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gc3BhY2UnICUga2V5X2ZpZWxkKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogS2V5LW51bWJlciBpcyAlZCBh
bmQgbnVtYmVyIG9mIHNwYWNlcyBpcyAlZCcsCi0gICAgICAgICAgICBrZXlfZmllbGQsIGtleV9u
dW1iZXIsIHNwYWNlcykKLQotICAgICAgICAjIDUuMiA2LiBpZiAva2V5LW51bWJlcl9uLyBpcyBu
b3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2YgL3NwYWNlc19uLwotICAgICAgICAjIHRoZW4gYWJv
cnQgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICBpZiBrZXlfbnVtYmVyICUgc3Bh
Y2VzICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJyVzOiBLZXktbnVtYmVyICglZCkgaXMgbm90IGFuIGludGVncmFsIG11bHRpcGxl
IG9mIHNwYWNlcyAnCi0gICAgICAgICAgICAgICAgJyglZCknICUgKGtleV9maWVsZCwga2V5X251
bWJlciwgc3BhY2VzKSkKLSAgICAgICAgIyA1LjIgNy4gbGV0IC9wYXJ0X24vIGJlIC9rZXktbnVt
YmVyX24vIGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgcGFydCA9IGtleV9udW1iZXIg
LyBzcGFjZXMKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclczogUGFydCBpcyAlZCcsIGtl
eV9maWVsZCwgcGFydCkKLSAgICAgICAgcmV0dXJuIHBhcnQKLQotICAgIGRlZiBfZ2V0X2NoYWxs
ZW5nZShzZWxmKToKLSAgICAgICAgIyA1LjIgNC03LgotICAgICAgICBrZXkxID0gc2VsZi5fZ2V0
X2tleV92YWx1ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUikKLSAgICAgICAga2V5
MiA9IHNlbGYuX2dldF9rZXlfdmFsdWUoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIp
Ci0gICAgICAgICMgNS4yIDguIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBv
ZiAvcGFydF8xLywKLSAgICAgICAgY2hhbGxlbmdlID0gJycKLSAgICAgICAgY2hhbGxlbmdlICs9
IHN0cnVjdC5wYWNrKCchSScsIGtleTEpICAjIG5ldHdvcmsgYnl0ZW9yZGVyIGludAotICAgICAg
ICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5MikgICMgbmV0d29yayBieXRlb3Jk
ZXIgaW50Ci0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVh
ZCg4KQotICAgICAgICByZXR1cm4gY2hhbGxlbmdlCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtl
KHNlbGYpOgotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgIyA1LjIgMTAuIHNlbmQg
dGhlIGZvbGxvd2luZyBsaW5lLgotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hUVFAvMS4xIDEw
MSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicpCi0KLSAgICAgICAgIyA1LjIgMTEu
IHNlbmQgdGhlIGZvbGxvd2luZyBmaWVsZHMgdG8gdGhlIGNsaWVudC4KLSAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFE
RVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUpKQotICAgICAgICByZXNw
b25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9O
X0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLSAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tF
VF9MT0NBVElPTl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3NfbG9jYXRpb24pKQotICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VC
U09DS0VUX09SSUdJTl9IRUFERVIsIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luKSkKLSAgICAgICAg
aWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbDoKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BS
T1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29s
KSkKLSAgICAgICAgIyA1LjIgMTIuIHNlbmQgdHdvIGJ5dGVzIDB4MEQgMHgwQS4KLSAgICAgICAg
cmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLSAgICAgICAgIyA1LjIgMTMuIHNlbmQgL3Jlc3BvbnNl
LwotICAgICAgICByZXNwb25zZS5hcHBlbmQoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1
KQotCi0gICAgICAgIHJhd19yZXNwb25zZSA9ICcnLmpvaW4ocmVzcG9uc2UpCi0gICAgICAgIHNl
bGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVzcG9uc2UpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3BlbmluZyBoYW5kc2hha2U6ICVyJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNwb25zZSkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTBkZDc1NGE0OTAzNjhiOWU3
YTU5MzM2NWYyZmQwYzA0MTdkMmQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vi
c29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5k
c2hha2UvaHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAw
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFu
ZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjQ0NDIxY2Y3OWJjZGQ3MzdkY2I1N2Y5
ZjQzMzZiZTBlODRjYTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjU0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlB5
dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgZm9yIG1vZF9weXdlYnNvY2tldC4KLQotQXBhY2hlIEhU
VFAgU2VydmVyIGFuZCBtb2RfcHl0aG9uIG11c3QgYmUgY29uZmlndXJlZCBzdWNoIHRoYXQgdGhp
cwotZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGhhbmRsZSBXZWJTb2NrZXQgcmVxdWVzdC4KLSIiIgot
Ci0KLWltcG9ydCBsb2dnaW5nCi0KLWZyb20gbW9kX3B5dGhvbiBpbXBvcnQgYXBhY2hlCi0KLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBkaXNwYXRjaAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVj
aWZ5IHRoZSBoYW5kbGVyIHJvb3QgZGlyZWN0b3J5LgotX1BZT1BUX0hBTkRMRVJfUk9PVCA9ICdt
b2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290JwotCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5
IHRoZSBoYW5kbGVyIHNjYW4gZGlyZWN0b3J5LgotIyBUaGlzIG11c3QgYmUgYSBkaXJlY3Rvcnkg
dW5kZXIgdGhlIHJvb3QgZGlyZWN0b3J5LgotIyBUaGUgZGVmYXVsdCBpcyB0aGUgcm9vdCBkaXJl
Y3RvcnkuCi1fUFlPUFRfSEFORExFUl9TQ0FOID0gJ21vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Nj
YW4nCi0KLSMgUHl0aG9uT3B0aW9uIHRvIGFsbG93IGhhbmRsZXJzIHdob3NlIGNhbm9uaWNhbCBw
YXRoIGlzCi0jIG5vdCB1bmRlciB0aGUgcm9vdCBkaXJlY3RvcnkuIEl0J3MgZGlzYWxsb3dlZCBi
eSBkZWZhdWx0LgotIyBTZXQgdGhpcyBvcHRpb24gd2l0aCB2YWx1ZSBvZiAneWVzJyB0byBhbGxv
dy4KLV9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1QgPSAoCi0gICAgJ21vZF9weXdl
YnNvY2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyJykKLSMgTWFwIGZyb20gdmFs
dWVzIHRvIHRoZWlyIG1lYW5pbmdzLiAnWWVzJyBhbmQgJ05vJyBhcmUgYWxsb3dlZCBqdXN0IGZv
cgotIyBjb21wYXRpYmlsaXR5LgotX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVF9E
RUZJTklUSU9OID0gewotICAgICdvZmYnOiBGYWxzZSwgJ25vJzogRmFsc2UsICdvbic6IFRydWUs
ICd5ZXMnOiBUcnVlfQotCi0jIChPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuKQotIyBQeXRob25P
cHRpb24gdG8gc3BlY2lmeSB0byBhbGxvdyBoYW5kc2hha2UgZGVmaW5lZCBpbiBIaXhpZSA3NSB2
ZXJzaW9uCi0jIHByb3RvY29sLiBUaGUgZGVmYXVsdCBpcyBOb25lIChPZmYpCi1fUFlPUFRfQUxM
T1dfRFJBRlQ3NSA9ICdtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfZHJhZnQ3NScKLSMgTWFwIGZyb20g
dmFsdWVzIHRvIHRoZWlyIG1lYW5pbmdzLgotX1BZT1BUX0FMTE9XX0RSQUZUNzVfREVGSU5JVElP
TiA9IHsnb2ZmJzogRmFsc2UsICdvbic6IFRydWV9Ci0KLQotY2xhc3MgQXBhY2hlTG9nSGFuZGxl
cihsb2dnaW5nLkhhbmRsZXIpOgotICAgICIiIldyYXBwZXIgbG9nZ2luZy5IYW5kbGVyIHRvIGVt
aXQgbG9nIG1lc3NhZ2UgdG8gYXBhY2hlJ3MgZXJyb3IubG9nLiIiIgotCi0gICAgX0xFVkVMUyA9
IHsKLSAgICAgICAgbG9nZ2luZy5ERUJVRzogYXBhY2hlLkFQTE9HX0RFQlVHLAotICAgICAgICBs
b2dnaW5nLklORk86IGFwYWNoZS5BUExPR19JTkZPLAotICAgICAgICBsb2dnaW5nLldBUk5JTkc6
IGFwYWNoZS5BUExPR19XQVJOSU5HLAotICAgICAgICBsb2dnaW5nLkVSUk9SOiBhcGFjaGUuQVBM
T0dfRVJSLAotICAgICAgICBsb2dnaW5nLkNSSVRJQ0FMOiBhcGFjaGUuQVBMT0dfQ1JJVCwKLSAg
ICAgICAgfQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Q9Tm9uZSk6Ci0gICAgICAg
IGxvZ2dpbmcuSGFuZGxlci5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dfZXJyb3Ig
PSBhcGFjaGUubG9nX2Vycm9yCi0gICAgICAgIGlmIHJlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dfZXJyb3IgPSByZXF1ZXN0LmxvZ19lcnJvcgotCi0gICAgICAgICMg
VGltZSBhbmQgbGV2ZWwgd2lsbCBiZSBwcmludGVkIGJ5IEFwYWNoZS4KLSAgICAgICAgc2VsZi5f
Zm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUobmFtZSlzOiAlKG1lc3NhZ2UpcycpCi0K
LSAgICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgotICAgICAgICBhcGFjaGVfbGV2ZWwgPSBhcGFj
aGUuQVBMT0dfREVCVUcKLSAgICAgICAgaWYgcmVjb3JkLmxldmVsbm8gaW4gQXBhY2hlTG9nSGFu
ZGxlci5fTEVWRUxTOgotICAgICAgICAgICAgYXBhY2hlX2xldmVsID0gQXBhY2hlTG9nSGFuZGxl
ci5fTEVWRUxTW3JlY29yZC5sZXZlbG5vXQotCi0gICAgICAgIG1zZyA9IHNlbGYuX2Zvcm1hdHRl
ci5mb3JtYXQocmVjb3JkKQotCi0gICAgICAgICMgInNlcnZlciIgcGFyYW1ldGVyIG11c3QgYmUg
cGFzc2VkIHRvIGhhdmUgImxldmVsIiBwYXJhbWV0ZXIgd29yay4KLSAgICAgICAgIyBJZiBvbmx5
ICJsZXZlbCIgcGFyYW1ldGVyIGlzIHBhc3NlZCwgbm90aGluZyBzaG93cyB1cCBvbiBBcGFjaGUn
cwotICAgICAgICAjIGxvZy4gSG93ZXZlciwgYXQgdGhpcyBwb2ludCwgd2UgY2Fubm90IGdldCB0
aGUgc2VydmVyIG9iamVjdCBvZiB0aGUKLSAgICAgICAgIyB2aXJ0dWFsIGhvc3Qgd2hpY2ggd2ls
bCBwcm9jZXNzIFdlYlNvY2tldCByZXF1ZXN0cy4gVGhlIG9ubHkgc2VydmVyCi0gICAgICAgICMg
b2JqZWN0IHdlIGNhbiBnZXQgaGVyZSBpcyBhcGFjaGUubWFpbl9zZXJ2ZXIuIEJ1dCBXaGVyZXZl
ciAoc2VydmVyCi0gICAgICAgICMgY29uZmlndXJhdGlvbiBjb250ZXh0IG9yIHZpcnR1YWwgaG9z
dCBjb250ZXh0KSB3ZSBwdXQKLSAgICAgICAgIyBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIGRp
cmVjdGl2ZSwgYXBhY2hlLm1haW5fc2VydmVyIGp1c3QgcG9pbnRzCi0gICAgICAgICMgdGhlIG1h
aW4gc2VydmVyIGluc3RhbmNlIChub3QgYW55IG9mIHZpcnR1YWwgc2VydmVyIGluc3RhbmNlKS4g
VGhlbiwKLSAgICAgICAgIyBBcGFjaGUgZm9sbG93cyBMb2dMZXZlbCBkaXJlY3RpdmUgaW4gdGhl
IHNlcnZlciBjb25maWd1cmF0aW9uIGNvbnRleHQKLSAgICAgICAgIyB0byBmaWx0ZXIgbG9ncy4g
U28sIHdlIG5lZWQgdG8gc3BlY2lmeSBMb2dMZXZlbCBpbiB0aGUgc2VydmVyCi0gICAgICAgICMg
Y29uZmlndXJhdGlvbiBjb250ZXh0LiBFdmVuIGlmIHdlIHNwZWNpZnkgIkxvZ0xldmVsIGRlYnVn
IiBpbiB0aGUKLSAgICAgICAgIyB2aXJ0dWFsIGhvc3QgY29udGV4dCB3aGljaCBhY3R1YWxseSBo
YW5kbGVzIFdlYlNvY2tldCBjb25uZWN0aW9ucywKLSAgICAgICAgIyBERUJVRyBsZXZlbCBsb2dz
IG5ldmVyIHNob3cgdXAgdW5sZXNzICJMb2dMZXZlbCBkZWJ1ZyIgaXMgc3BlY2lmaWVkCi0gICAg
ICAgICMgaW4gdGhlIHNlcnZlciBjb25maWd1cmF0aW9uIGNvbnRleHQuCi0gICAgICAgICMKLSAg
ICAgICAgIyBUT0RPKHR5b3NoaW5vKTogUHJvdmlkZSBsb2dnaW5nIG1ldGhvZHMgb24gcmVxdWVz
dCBvYmplY3QuIFdoZW4KLSAgICAgICAgIyByZXF1ZXN0IGlzIG1wX3JlcXVlc3Qgb2JqZWN0ICh3
aGVuIHVzZWQgdG9nZXRoZXIgd2l0aCBBcGFjaGUpLCB0aGUKLSAgICAgICAgIyBtZXRob2RzIGNh
bGwgcmVxdWVzdC5sb2dfZXJyb3IgaW5kaXJlY3RseS4gV2hlbiByZXF1ZXN0IGlzCi0gICAgICAg
ICMgX1N0YW5kYWxvbmVSZXF1ZXN0LCB0aGUgbWV0aG9kcyBjYWxsIFB5dGhvbidzIGxvZ2dpbmcg
ZmFjaWxpdHkgd2hpY2gKLSAgICAgICAgIyB3ZSBjcmVhdGUgaW4gc3RhbmRhbG9uZS5weS4KLSAg
ICAgICAgc2VsZi5fbG9nX2Vycm9yKG1zZywgYXBhY2hlX2xldmVsLCBhcGFjaGUubWFpbl9zZXJ2
ZXIpCi0KLQotZGVmIF9jb25maWd1cmVfbG9nZ2luZygpOgotICAgIGxvZ2dlciA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKCkKLSAgICAjIExvZ3MgYXJlIGZpbHRlcmVkIGJ5IEFwYWNoZSBiYXNlZCBvbiBM
b2dMZXZlbCBkaXJlY3RpdmUgaW4gQXBhY2hlCi0gICAgIyBjb25maWd1cmF0aW9uIGZpbGUuIFdl
IG11c3QganVzdCBwYXNzIGxvZ3MgZm9yIGFsbCBsZXZlbHMgdG8KLSAgICAjIEFwYWNoZUxvZ0hh
bmRsZXIuCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0gICAgbG9nZ2VyLmFk
ZEhhbmRsZXIoQXBhY2hlTG9nSGFuZGxlcigpKQotCi0KLV9jb25maWd1cmVfbG9nZ2luZygpCi0K
LV9MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1kZWYgX3BhcnNlX29w
dGlvbihuYW1lLCB2YWx1ZSwgZGVmaW5pdGlvbik6Ci0gICAgaWYgdmFsdWUgaXMgTm9uZToKLSAg
ICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBtZWFuaW5nID0gZGVmaW5pdGlvbi5nZXQodmFsdWUu
bG93ZXIoKSkKLSAgICBpZiBtZWFuaW5nIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSW52YWxpZCB2YWx1ZSBmb3IgUHl0aG9uT3B0aW9uICVzOiAlcicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgKG5hbWUsIHZhbHVlKSkKLSAgICByZXR1cm4gbWVhbmluZwotCi0KLWRlZiBf
Y3JlYXRlX2Rpc3BhdGNoZXIoKToKLSAgICBfTE9HR0VSLmluZm8oJ0luaXRpYWxpemluZyBEaXNw
YXRjaGVyJykKLQotICAgIG9wdGlvbnMgPSBhcGFjaGUubWFpbl9zZXJ2ZXIuZ2V0X29wdGlvbnMo
KQotCi0gICAgaGFuZGxlcl9yb290ID0gb3B0aW9ucy5nZXQoX1BZT1BUX0hBTkRMRVJfUk9PVCwg
Tm9uZSkKLSAgICBpZiBub3QgaGFuZGxlcl9yb290OgotICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1B5dGhvbk9wdGlvbiAlcyBpcyBub3QgZGVmaW5lZCcgJSBfUFlPUFRfSEFORExFUl9ST09ULAot
ICAgICAgICAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0VSUikKLQotICAgIGhhbmRsZXJf
c2NhbiA9IG9wdGlvbnMuZ2V0KF9QWU9QVF9IQU5ETEVSX1NDQU4sIGhhbmRsZXJfcm9vdCkKLQot
ICAgIGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdCA9IF9wYXJzZV9vcHRpb24oCi0gICAgICAg
IF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1QsCi0gICAgICAgIG9wdGlvbnMuZ2V0
KF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1QpLAotICAgICAgICBfUFlPUFRfQUxM
T1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04pCi0KLSAgICBkaXNwYXRjaGVyID0g
ZGlzcGF0Y2guRGlzcGF0Y2hlcigKLSAgICAgICAgaGFuZGxlcl9yb290LCBoYW5kbGVyX3NjYW4s
IGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdCkKLQotICAgIGZvciB3YXJuaW5nIGluIGRpc3Bh
dGNoZXIuc291cmNlX3dhcm5pbmdzKCk6Ci0gICAgICAgIGFwYWNoZS5sb2dfZXJyb3IoCi0gICAg
ICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBXYXJuaW5nIGluIHNvdXJjZSBsb2FkaW5nOiAlcycg
JSB3YXJuaW5nLAotICAgICAgICAgICAgYXBhY2hlLkFQTE9HX1dBUk5JTkcpCi0KLSAgICByZXR1
cm4gZGlzcGF0Y2hlcgotCi0KLSMgSW5pdGlhbGl6ZQotX2Rpc3BhdGNoZXIgPSBfY3JlYXRlX2Rp
c3BhdGNoZXIoKQotCi0KLWRlZiBoZWFkZXJwYXJzZXJoYW5kbGVyKHJlcXVlc3QpOgotICAgICIi
IkhhbmRsZSByZXF1ZXN0LgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotCi0gICAgVGhpcyBmdW5jdGlvbiBpcyBuYW1lZCBoZWFkZXJwYXJzZXJoYW5k
bGVyIGJlY2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQKLSAgICBuYW1lIGZvciBhIFB5dGhvbkhlYWRl
clBhcnNlckhhbmRsZXIuCi0gICAgIiIiCi0KLSAgICBoYW5kc2hha2VfaXNfZG9uZSA9IEZhbHNl
Ci0gICAgdHJ5OgotICAgICAgICAjIEZhbGxiYWNrIHRvIGRlZmF1bHQgaHR0cCBoYW5kbGVyIGZv
ciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAotICAgICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVz
dCBoYW5kbGVycy4KLSAgICAgICAgaWYgbm90IF9kaXNwYXRjaGVyLmdldF9oYW5kbGVyX3N1aXRl
KHJlcXVlc3QudXJpKToKLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAg
ICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IE5vIGhhbmRsZXIgZm9yIHJlc291cmNlOiAlcicgJSBy
ZXF1ZXN0LnVyaSwKLSAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAg
ICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6
IEZhbGxiYWNrIHRvIEFwYWNoZScsIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmV0
dXJuIGFwYWNoZS5ERUNMSU5FRAotICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlv
biwgZToKLSAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAnbW9kX3B5d2Vi
c29ja2V0OiBEaXNwYXRjaCBmYWlsZWQgZm9yIGVycm9yOiAlcycgJSBlLAotICAgICAgICAgICAg
YXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgIGlmIG5vdCBoYW5kc2hha2VfaXNfZG9uZToKLSAg
ICAgICAgICAgIHJldHVybiBlLnN0YXR1cwotCi0gICAgdHJ5OgotICAgICAgICBhbGxvd19kcmFm
dDc1ID0gX3BhcnNlX29wdGlvbigKLSAgICAgICAgICAgIF9QWU9QVF9BTExPV19EUkFGVDc1LAot
ICAgICAgICAgICAgYXBhY2hlLm1haW5fc2VydmVyLmdldF9vcHRpb25zKCkuZ2V0KF9QWU9QVF9B
TExPV19EUkFGVDc1KSwKLSAgICAgICAgICAgIF9QWU9QVF9BTExPV19EUkFGVDc1X0RFRklOSVRJ
T04pCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZHNoYWtlLmRvX2hhbmRzaGFrZSgK
LSAgICAgICAgICAgICAgICByZXF1ZXN0LCBfZGlzcGF0Y2hlciwgYWxsb3dEcmFmdDc1PWFsbG93
X2RyYWZ0NzUpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdtb2RfcHl3
ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24gZXJyb3I6ICVzJyAlIGUsCi0g
ICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXF1ZXN0LmVy
cl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lv
bnMpCi0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkhUVFBfQkFEX1JFUVVFU1QKLSAgICAgICAg
ZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIEhh
bmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KLSAgICAgICAgICAgICMgU2VuZCBodHRwIHJlc3Bv
bnNlIHdpdGggZXJyb3Igc3RhdHVzLgotICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogSGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJy
b3I6ICVzJyAlIGUsCi0gICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAg
ICAgICByZXR1cm4gZS5zdGF0dXMKLQotICAgICAgICBoYW5kc2hha2VfaXNfZG9uZSA9IFRydWUK
LSAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IF9kaXNwYXRjaGVyCi0gICAgICAgIF9kaXNw
YXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0
ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3
ZWJzb2NrZXQ6IEFib3J0ZWQ6ICVzJyAlIGUsIGFwYWNoZS5BUExPR19JTkZPKQotICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24gY2FuIGFsc28gYmUg
dGhyb3duIGlmIHNvbWV0aGluZyBpcyB3cm9uZyBpbgotICAgICAgICAjIHB5d2Vic29ja2V0IGNv
ZGUuIEl0J3MgY2F1Z2h0IGhlcmUsIHRoZW4uCi0KLSAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3Io
J21vZF9weXdlYnNvY2tldDogRXhjZXB0aW9uIG9jY3VycmVkOiAlc1xuJXMnICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGUsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJSKQotICAgICAgICAjIFVua25vd24gZXhj
ZXB0aW9ucyBiZWZvcmUgaGFuZHNoYWtlIG1lYW4gQXBhY2hlIG11c3QgaGFuZGxlIGl0cwotICAg
ICAgICAjIHJlcXVlc3Qgd2l0aCBhbm90aGVyIGhhbmRsZXIuCi0gICAgICAgIGlmIG5vdCBoYW5k
c2hha2VfaXNfZG9uZToKLSAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKLSAgICAj
IFNldCBhc3NiYWNrd2FyZHMgdG8gc3VwcHJlc3MgcmVzcG9uc2UgaGVhZGVyIGdlbmVyYXRpb24g
YnkgQXBhY2hlLgotICAgIHJlcXVlc3QuYXNzYmFja3dhcmRzID0gMQotICAgIHJldHVybiBhcGFj
aGUuRE9ORSAgIyBSZXR1cm4gRE9ORSBzdWNoIHRoYXQgbm8gb3RoZXIgaGFuZGxlcnMgYXJlIGlu
dm9rZWQuCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9odHRwX2hlYWRlcl91dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzc0
NjUzOTMyODVmZjFiZDZiZjhkOTk0MDFjYzY3NDQyMTI1ZTBiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9odHRw
X2hlYWRlcl91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLSMgQ29weXJp
Z2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIlV0aWxpdGllcyBmb3IgcGFyc2luZyBhbmQgZm9ybWF0dGluZyBoZWFk
ZXJzIHRoYXQgZm9sbG93IHRoZSBncmFtbWFyIGRlZmluZWQKLWluIEhUVFAgUkZDIGh0dHA6Ly93
d3cuaWV0Zi5vcmcvcmZjL3JmYzI2MTYudHh0LgotIiIiCi0KLQotaW1wb3J0IHVybHBhcnNlCi0K
LQotX1NFUEFSQVRPUlMgPSAnKCk8PkAsOzpcXCIvW10/PXt9IFx0JwotCi0KLWRlZiBfaXNfY2hh
cihjKToKLSAgICAiIiJSZXR1cm5zIHRydWUgaWZmIGMgaXMgaW4gQ0hBUiBhcyBzcGVjaWZpZWQg
aW4gSFRUUCBSRkMuIiIiCi0KLSAgICByZXR1cm4gb3JkKGMpIDw9IDEyNwotCi0KLWRlZiBfaXNf
Y3RsKGMpOgotICAgICIiIlJldHVybnMgdHJ1ZSBpZmYgYyBpcyBpbiBDVEwgYXMgc3BlY2lmaWVk
IGluIEhUVFAgUkZDLiIiIgotCi0gICAgcmV0dXJuIG9yZChjKSA8PSAzMSBvciBvcmQoYykgPT0g
MTI3Ci0KLQotY2xhc3MgUGFyc2luZ1N0YXRlKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKLSAgICAgICAgc2VsZi5oZWFk
ID0gMAotCi0KLWRlZiBwZWVrKHN0YXRlLCBwb3M9MCk6Ci0gICAgIiIiUGVla3MgdGhlIGNoYXJh
Y3RlciBhdCBwb3MgZnJvbSB0aGUgaGVhZCBvZiBkYXRhLiIiIgotCi0gICAgaWYgc3RhdGUuaGVh
ZCArIHBvcyA+PSBsZW4oc3RhdGUuZGF0YSk6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBy
ZXR1cm4gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkICsgcG9zXQotCi0KLWRlZiBjb25zdW1lKHN0YXRl
LCBhbW91bnQ9MSk6Ci0gICAgIiIiQ29uc3VtZXMgc3BlY2lmaWVkIGFtb3VudCBvZiBieXRlcyBm
cm9tIHRoZSBoZWFkIGFuZCByZXR1cm5zIHRoZQotICAgIGNvbnN1bWVkIGJ5dGVzLiBJZiB0aGVy
ZSdzIG5vdCBlbm91Z2ggYnl0ZXMgdG8gY29uc3VtZSwgcmV0dXJucyBOb25lLgotICAgICIiIgot
Ci0gICAgaWYgc3RhdGUuaGVhZCArIGFtb3VudCA+IGxlbihzdGF0ZS5kYXRhKToKLSAgICAgICAg
cmV0dXJuIE5vbmUKLQotICAgIHJlc3VsdCA9IHN0YXRlLmRhdGFbc3RhdGUuaGVhZDpzdGF0ZS5o
ZWFkICsgYW1vdW50XQotICAgIHN0YXRlLmhlYWQgPSBzdGF0ZS5oZWFkICsgYW1vdW50Ci0gICAg
cmV0dXJuIHJlc3VsdAotCi0KLWRlZiBjb25zdW1lX3N0cmluZyhzdGF0ZSwgZXhwZWN0ZWQpOgot
ICAgICIiIkdpdmVuIGEgcGFyc2luZyBzdGF0ZSBhbmQgYSBleHBlY3RlZCBzdHJpbmcsIGNvbnN1
bWVzIHRoZSBzdHJpbmcgZnJvbQotICAgIHRoZSBoZWFkLiBSZXR1cm5zIFRydWUgaWYgY29uc3Vt
ZWQgc3VjY2Vzc2Z1bGx5LiBPdGhlcndpc2UsIHJldHVybnMKLSAgICBGYWxzZS4KLSAgICAiIiIK
LQotICAgIHBvcyA9IDAKLQotICAgIGZvciBjIGluIGV4cGVjdGVkOgotICAgICAgICBpZiBjICE9
IHBlZWsoc3RhdGUsIHBvcyk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcG9z
ICs9IDEKLQotICAgIGNvbnN1bWUoc3RhdGUsIHBvcykKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRl
ZiBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgYSBMV1MgZnJvbSB0aGUgaGVh
ZC4gUmV0dXJucyBUcnVlIGlmIGFueSBMV1MgaXMgY29uc3VtZWQuCi0gICAgT3RoZXJ3aXNlLCBy
ZXR1cm5zIEZhbHNlLgotCi0gICAgTFdTID0gW0NSTEZdIDEqKCBTUCB8IEhUICkKLSAgICAiIiIK
LQotICAgIG9yaWdpbmFsX2hlYWQgPSBzdGF0ZS5oZWFkCi0KLSAgICBjb25zdW1lX3N0cmluZyhz
dGF0ZSwgJ1xyXG4nKQotCi0gICAgcG9zID0gMAotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
YyA9IHBlZWsoc3RhdGUsIHBvcykKLSAgICAgICAgaWYgYyA9PSAnICcgb3IgYyA9PSAnXHQnOgot
ICAgICAgICAgICAgcG9zICs9IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHBvcyA9
PSAwOgotICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGNvbnN1bWUoc3RhdGUsIHBvcykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0KLWRl
ZiBjb25zdW1lX2x3c2VzKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyAqTFdTIGZyb20gdGhlIGhl
YWQuIiIiCi0KLSAgICB3aGlsZSBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0gICAgICAgIHBhc3MKLQot
Ci1kZWYgY29uc3VtZV90b2tlbihzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgYSB0b2tlbiBmcm9t
IHRoZSBoZWFkLiBSZXR1cm5zIHRoZSB0b2tlbiBvciBOb25lIGlmIG5vIHRva2VuCi0gICAgd2Fz
IGZvdW5kLgotICAgICIiIgotCi0gICAgcG9zID0gMAotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgYyA9IHBlZWsoc3RhdGUsIHBvcykKLSAgICAgICAgaWYgYyBpcyBOb25lIG9yIGMgaW4gX1NF
UEFSQVRPUlMgb3IgX2lzX2N0bChjKSBvciBub3QgX2lzX2NoYXIoYyk6Ci0gICAgICAgICAgICBp
ZiBwb3MgPT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICAgICBy
ZXR1cm4gY29uc3VtZShzdGF0ZSwgcG9zKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9z
ICs9IDEKLQotCi1kZWYgY29uc3VtZV90b2tlbl9vcl9xdW90ZWRfc3RyaW5nKHN0YXRlKToKLSAg
ICAiIiJDb25zdW1lcyBhIHRva2VuIG9yIGEgcXVvdGVkLXN0cmluZywgYW5kIHJldHVybnMgdGhl
IHRva2VuIG9yIHVucXVvdGVkCi0gICAgc3RyaW5nLiBJZiBubyB0b2tlbiBvciBxdW90ZWQtc3Ry
aW5nIHdhcyBmb3VuZCwgcmV0dXJucyBOb25lLgotICAgICIiIgotCi0gICAgb3JpZ2luYWxfaGVh
ZCA9IHN0YXRlLmhlYWQKLQotICAgIGlmIG5vdCBjb25zdW1lX3N0cmluZyhzdGF0ZSwgJyInKToK
LSAgICAgICAgcmV0dXJuIGNvbnN1bWVfdG9rZW4oc3RhdGUpCi0KLSAgICByZXN1bHQgPSBbXQot
Ci0gICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gRmFsc2UKLQotICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgIGlmIG5vdCBleHBlY3RfcXVvdGVkX3BhaXIgYW5kIGNvbnN1bWVfbHdzKHN0YXRlKToKLSAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKQotICAgICAgICAgICAgY29udGludWUKLQotICAg
ICAgICBjID0gY29uc3VtZShzdGF0ZSkKLSAgICAgICAgaWYgYyBpcyBOb25lOgotICAgICAgICAg
ICAgIyBxdW90ZWQtc3RyaW5nIGlzIG5vdCBlbmNsb3NlZCB3aXRoIGRvdWJsZSBxdW90YXRpb24K
LSAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAgICAgICByZXR1
cm4gTm9uZQotICAgICAgICBlbGlmIGV4cGVjdF9xdW90ZWRfcGFpcjoKLSAgICAgICAgICAgIGV4
cGVjdF9xdW90ZWRfcGFpciA9IEZhbHNlCi0gICAgICAgICAgICBpZiBfaXNfY2hhcihjKToKLSAg
ICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICMgTm9uIENIQVIgY2hhcmFjdGVyIGZvdW5kIGluIHF1b3RlZC1wYWlyCi0gICAg
ICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQotICAgICAgICBlbGlmIGMgPT0gJ1xcJzoKLSAgICAgICAgICAgIGV4cGVjdF9x
dW90ZWRfcGFpciA9IFRydWUKLSAgICAgICAgZWxpZiBjID09ICciJzoKLSAgICAgICAgICAgIHJl
dHVybiAnJy5qb2luKHJlc3VsdCkKLSAgICAgICAgZWxpZiBfaXNfY3RsKGMpOgotICAgICAgICAg
ICAgIyBJbnZhbGlkIGNoYXJhY3RlciAlciBmb3VuZCBpbiBxZHRleHQKLSAgICAgICAgICAgIHN0
YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKQotCi0KLWRlZiBxdW90ZV9pZl9u
ZWNlc3Nhcnkocyk6Ci0gICAgIiIiUXVvdGVzIGFyYml0cmFyeSBzdHJpbmcgaW50byBxdW90ZWQt
c3RyaW5nLiIiIgotCi0gICAgcXVvdGUgPSBGYWxzZQotICAgIGlmIHMgPT0gJyc6Ci0gICAgICAg
IHJldHVybiAnIiInCi0KLSAgICByZXN1bHQgPSBbXQotICAgIGZvciBjIGluIHM6Ci0gICAgICAg
IGlmIGMgPT0gJyInIG9yIGMgaW4gX1NFUEFSQVRPUlMgb3IgX2lzX2N0bChjKSBvciBub3QgX2lz
X2NoYXIoYyk6Ci0gICAgICAgICAgICBxdW90ZSA9IFRydWUKLQotICAgICAgICBpZiBjID09ICci
JyBvciBfaXNfY3RsKGMpOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXFwnICsgYykKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYykKLQotICAgIGlmIHF1b3Rl
OgotICAgICAgICByZXR1cm4gJyInICsgJycuam9pbihyZXN1bHQpICsgJyInCi0gICAgZWxzZToK
LSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQotCi0KLWRlZiBwYXJzZV91cmkodXJpKToK
LSAgICAiIiJQYXJzZSBhYnNvbHV0ZSBVUkkgdGhlbiByZXR1cm4gaG9zdCwgcG9ydCBhbmQgcmVz
b3VyY2UuIiIiCi0KLSAgICBwYXJzZWQgPSB1cmxwYXJzZS51cmxzcGxpdCh1cmkpCi0gICAgaWYg
cGFyc2VkLnNjaGVtZSAhPSAnd3NzJyBhbmQgcGFyc2VkLnNjaGVtZSAhPSAnd3MnOgotICAgICAg
ICAjIHx1cml8IG11c3QgYmUgYSByZWxhdGl2ZSBVUkkuCi0gICAgICAgICMgVE9ETyh0b3lvc2hp
bSk6IFNob3VsZCB2YWxpZGF0ZSB8dXJpfC4KLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIHVy
aQotCi0gICAgaWYgcGFyc2VkLmhvc3RuYW1lIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBOb25l
LCBOb25lLCBOb25lCi0KLSAgICBwb3J0ID0gTm9uZQotICAgIHRyeToKLSAgICAgICAgcG9ydCA9
IHBhcnNlZC5wb3J0Ci0gICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICMgcG9ydCBw
cm9wZXJ0eSBjYXVzZSBWYWx1ZUVycm9yIG9uIGludmFsaWQgbnVsbCBwb3J0IGRlc2NyaXB0aW9u
IGxpa2UKLSAgICAgICAgIyAnd3M6Ly9ob3N0Oi9wYXRoJy4KLSAgICAgICAgcmV0dXJuIE5vbmUs
IE5vbmUsIE5vbmUKLQotICAgIGlmIHBvcnQgaXMgTm9uZToKLSAgICAgICAgaWYgcGFyc2VkLnNj
aGVtZSA9PSAnd3MnOgotICAgICAgICAgICAgcG9ydCA9IDgwCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBwb3J0ID0gNDQzCi0KLSAgICBwYXRoID0gcGFyc2VkLnBhdGgKLSAgICBpZiBub3Qg
cGF0aDoKLSAgICAgICAgcGF0aCArPSAnLycKLSAgICBpZiBwYXJzZWQucXVlcnk6Ci0gICAgICAg
IHBhdGggKz0gJz8nICsgcGFyc2VkLnF1ZXJ5Ci0gICAgaWYgcGFyc2VkLmZyYWdtZW50OgotICAg
ICAgICBwYXRoICs9ICcjJyArIHBhcnNlZC5mcmFnbWVudAotCi0gICAgcmV0dXJuIHBhcnNlZC5o
b3N0bmFtZSwgcG9ydCwgcGF0aAotCi0KLXRyeToKLSAgICB1cmxwYXJzZS51c2VzX25ldGxvYy5p
bmRleCgnd3MnKQotZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgIyB1cmxwYXJzZSBpbiBQeXRo
b24yLjUuMSBkb2Vzbid0IGhhdmUgJ3dzJyBhbmQgJ3dzcycgZW50cmllcy4KLSAgICB1cmxwYXJz
ZS51c2VzX25ldGxvYy5hcHBlbmQoJ3dzJykKLSAgICB1cmxwYXJzZS51c2VzX25ldGxvYy5hcHBl
bmQoJ3dzcycpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvbWVtb3JpemluZ2ZpbGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNGNk
OTU4NTk1YWJkZmMwYzQwZDQzMDg0ODg3MDBiN2I5M2M2YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21lbW9y
aXppbmdmaWxlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNZW1vcml6aW5nIGZpbGUuCi0K
LUEgbWVtb3JpemluZyBmaWxlIHdyYXBzIGEgZmlsZSBhbmQgbWVtb3JpemVzIGxpbmVzIHJlYWQg
YnkgcmVhZGxpbmUuCi0iIiIKLQotCi1pbXBvcnQgc3lzCi0KLQotY2xhc3MgTWVtb3JpemluZ0Zp
bGUob2JqZWN0KToKLSAgICAiIiJNZW1vcml6aW5nRmlsZSB3cmFwcyBhIGZpbGUgYW5kIG1lbW9y
aXplcyBsaW5lcyByZWFkIGJ5IHJlYWRsaW5lLgotCi0gICAgTm90ZSB0aGF0IGRhdGEgcmVhZCBi
eSBvdGhlciBtZXRob2RzIGFyZSBub3QgbWVtb3JpemVkLiBUaGlzIGJlaGF2aW9yCi0gICAgaXMg
Z29vZCBlbm91Z2ggZm9yIG1lbW9yaXppbmcgbGluZXMgU2ltcGxlSFRUUFNlcnZlciByZWFkcyBi
ZWZvcmUKLSAgICB0aGUgY29udHJvbCByZWFjaGVzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVfLCBtYXhfbWVtb3JpemVkX2xp
bmVzPXN5cy5tYXhpbnQpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIGZpbGVfOiB0aGUgZmlsZSBvYmplY3QgdG8gd3JhcC4K
LSAgICAgICAgICAgIG1heF9tZW1vcml6ZWRfbGluZXM6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBs
aW5lcyB0byBtZW1vcml6ZS4KLSAgICAgICAgICAgICAgICBPbmx5IHRoZSBmaXJzdCBtYXhfbWVt
b3JpemVkX2xpbmVzIGFyZSBtZW1vcml6ZWQuCi0gICAgICAgICAgICAgICAgRGVmYXVsdDogc3lz
Lm1heGludC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGVfCi0gICAg
ICAgIHNlbGYuX21lbW9yaXplZF9saW5lcyA9IFtdCi0gICAgICAgIHNlbGYuX21heF9tZW1vcml6
ZWRfbGluZXMgPSBtYXhfbWVtb3JpemVkX2xpbmVzCi0gICAgICAgIHNlbGYuX2J1ZmZlcmVkID0g
RmFsc2UKLSAgICAgICAgc2VsZi5fYnVmZmVyZWRfbGluZSA9IE5vbmUKLQotICAgIGRlZiBfX2dl
dGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpOgotICAgICAgICBpZiBuYW1lIGluICgnX2ZpbGUnLCAn
X21lbW9yaXplZF9saW5lcycsICdfbWF4X21lbW9yaXplZF9saW5lcycsCi0gICAgICAgICAgICAg
ICAgICAgICdfYnVmZmVyZWQnLCAnX2J1ZmZlcmVkX2xpbmUnLCAncmVhZGxpbmUnLAotICAgICAg
ICAgICAgICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpOgotICAgICAgICAgICAgcmV0dXJu
IG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpCi0gICAgICAgIHJldHVybiBzZWxm
Ll9maWxlLl9fZ2V0YXR0cmlidXRlX18obmFtZSkKLQotICAgIGRlZiByZWFkbGluZShzZWxmLCBz
aXplPS0xKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgZmlsZS5yZWFkbGluZSBhbmQgbWVtb3JpemUg
dGhlIGxpbmUgcmVhZC4KLQotICAgICAgICBOb3RlIHRoYXQgZXZlbiBpZiBzaXplIGlzIHNwZWNp
ZmllZCBhbmQgc21hbGxlciB0aGFuIGFjdHVhbCBzaXplLAotICAgICAgICB0aGUgd2hvbGUgbGlu
ZSB3aWxsIGJlIHJlYWQgb3V0IGZyb20gdW5kZXJseWluZyBmaWxlIG9iamVjdCBieQotICAgICAg
ICBzdWJzZXF1ZW50IHJlYWRsaW5lIGNhbGxzLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBz
ZWxmLl9idWZmZXJlZDoKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9idWZmZXJlZF9saW5lCi0g
ICAgICAgICAgICBzZWxmLl9idWZmZXJlZCA9IEZhbHNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBsaW5lID0gc2VsZi5fZmlsZS5yZWFkbGluZSgpCi0gICAgICAgICAgICBpZiBsaW5lIGFu
ZCBsZW4oc2VsZi5fbWVtb3JpemVkX2xpbmVzKSA8IHNlbGYuX21heF9tZW1vcml6ZWRfbGluZXM6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbWVtb3JpemVkX2xpbmVzLmFwcGVuZChsaW5lKQotICAg
ICAgICBpZiBzaXplID49IDAgYW5kIHNpemUgPCBsZW4obGluZSk6Ci0gICAgICAgICAgICBzZWxm
Ll9idWZmZXJlZCA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlcmVkX2xpbmUgPSBsaW5l
W3NpemU6XQotICAgICAgICAgICAgcmV0dXJuIGxpbmVbOnNpemVdCi0gICAgICAgIHJldHVybiBs
aW5lCi0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0
IGxpbmVzIG1lbW9yaXplZCBzbyBmYXIuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tZW1vcml6
ZWRfbGluZXMKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21zZ3V0
aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMWEwMTE0YjRiYzQxOGIyMGU2
YTE1NTY1OWU5MjU3YWFiNzM2ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwyMTkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTWVzc2FnZSBy
ZWxhdGVkIHV0aWxpdGllcy4KLQotTm90ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQg
YXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoCi1tb2RfcHl0aG9uIGRvY3VtZW50
IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgotaGFuZGxl
cnMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUs
Ci1yZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3Qg
YWxsb3cgZGlyZWN0IHJhdwotYnl0ZXMgd3JpdGluZy9yZWFkaW5nLgotIiIiCi0KLQotaW1wb3J0
IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi0KLQotIyBFeHBvcnQgRXhjZXB0aW9uIHN5bWJvbHMg
ZnJvbSBtc2d1dGlsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRp
b25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5z
dXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotCi0KLSMgQW4gQVBJIGZvciBoYW5kbGVyIHRvIHNlbmQv
cmVjZWl2ZSBXZWJTb2NrZXQgbWVzc2FnZXMuCi1kZWYgY2xvc2VfY29ubmVjdGlvbihyZXF1ZXN0
KToKLSAgICAiIiJDbG9zZSBjb25uZWN0aW9uLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVz
dDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICIiIgotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNs
b3NlX2Nvbm5lY3Rpb24oKQotCi0KLWRlZiBzZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZF9k
YXRhLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAiIiJTZW5kIGEgbWVzc2FnZSAob3Ig
cGFydCBvZiBhIG1lc3NhZ2UpLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5
dGhvbiByZXF1ZXN0LgotICAgICAgICBwYXlsb2FkX2RhdGE6IHVuaWNvZGUgdGV4dCBvciBzdHIg
YmluYXJ5IHRvIHNlbmQuCi0gICAgICAgIGVuZDogVHJ1ZSB0byB0ZXJtaW5hdGUgYSBtZXNzYWdl
LgotICAgICAgICAgICAgIEZhbHNlIHRvIHNlbmQgcGF5bG9hZF9kYXRhIGFzIHBhcnQgb2YgYSBt
ZXNzYWdlIHRoYXQgaXMgdG8gYmUKLSAgICAgICAgICAgICB0ZXJtaW5hdGVkIGJ5IG5leHQgb3Ig
bGF0ZXIgc2VuZF9tZXNzYWdlIGNhbGwgd2l0aCBlbmQ9VHJ1ZS4KLSAgICAgICAgYmluYXJ5OiBz
ZW5kIHBheWxvYWRfZGF0YSBhcyBiaW5hcnkgZnJhbWUocykuCi0gICAgUmFpc2VzOgotICAgICAg
ICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gc2VydmVyIGFscmVhZHkgdGVybWluYXRlZC4K
LSAgICAiIiIKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UocGF5bG9hZF9kYXRh
LCBlbmQsIGJpbmFyeSkKLQotCi1kZWYgcmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpOgotICAgICIi
IlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRl
eHQgaW4KLSAgICB1bmljb2RlIG9yIGEgYmluYXJ5IGluIHN0ci4KLQotICAgIEFyZ3M6Ci0gICAg
ICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICBSYWlzZXM6Ci0gICAgICAgIElu
dmFsaWRGcmFtZUV4Y2VwdGlvbjogICAgIHdoZW4gY2xpZW50IHNlbmQgaW52YWxpZCBmcmFtZS4K
LSAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbjogd2hlbiBjbGllbnQgc2VuZCB1bnN1
cHBvcnRlZCBmcmFtZSBlLmcuIHNvbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb2YgcmVzZXJ2ZWQgYml0IGlzIHNldCBidXQgbm8gZXh0ZW5zaW9uIGNhbgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgaXQuCi0gICAgICAgIEludmFsaWRV
VEY4RXhjZXB0aW9uOiAgICAgIHdoZW4gY2xpZW50IHNlbmQgYSB0ZXh0IGZyYW1lIGNvbnRhaW5p
bmcgYW55Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWQgVVRGLTgg
c3RyaW5nLgotICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiB0aGUg
Y29ubmVjdGlvbiBpcyBjbG9zZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5leHBlY3RlZGx5LgotICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246ICAgICB3aGVuIGNs
aWVudCBhbHJlYWR5IHRlcm1pbmF0ZWQuCi0gICAgIiIiCi0gICAgcmV0dXJuIHJlcXVlc3Qud3Nf
c3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLQotZGVmIHNlbmRfcGluZyhyZXF1ZXN0LCBib2R5
PScnKToKLSAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoYm9keSkKLQotCi1jbGFzcyBN
ZXNzYWdlUmVjZWl2ZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiVGhpcyBjbGFzcyByZWNl
aXZlcyBtZXNzYWdlcyBmcm9tIHRoZSBjbGllbnQuCi0KLSAgICBUaGlzIGNsYXNzIHByb3ZpZGVz
IHRocmVlIHdheXMgdG8gcmVjZWl2ZSBtZXNzYWdlczogYmxvY2tpbmcsCi0gICAgbm9uLWJsb2Nr
aW5nLCBhbmQgdmlhIGNhbGxiYWNrLiBDYWxsYmFjayBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5j
ZS4KLQotICAgIE5vdGU6IFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0
YW5kYWxvbmUgc2VydmVyIGZvciB3c3MKLSAgICBiZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRo
ZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwgZXJyb3IgaWYgdGhlIHNvY2tldAotICAgIGlzIGFjY2Vz
c2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZXF1ZXN0LCBvbm1lc3NhZ2U9Tm9uZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotICAgICAgICAgICAgb25tZXNzYWdlOiBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxl
ZCB3aGVuIGEgbWVzc2FnZSBpcyByZWNlaXZlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgTWF5
IGJlIE5vbmUuIElmIG5vdCBOb25lLCB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIG9uCi0gICAgICAg
ICAgICAgICAgICAgICAgIGFub3RoZXIgdGhyZWFkLiBJbiB0aGF0IGNhc2UsIE1lc3NhZ2VSZWNl
aXZlci5yZWNlaXZlCi0gICAgICAgICAgICAgICAgICAgICAgIGFuZCBNZXNzYWdlUmVjZWl2ZXIu
cmVjZWl2ZV9ub3dhaXQgYXJlIHVzZWxlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgYmVjYXVz
ZSB0aGV5IHdpbGwgbmV2ZXIgcmV0dXJuIGFueSBtZXNzYWdlcy4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9yZXF1
ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAg
ICAgc2VsZi5fb25tZXNzYWdlID0gb25tZXNzYWdlCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVz
dGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5z
dGFydCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9
IHJlY2VpdmVfbWVzc2FnZShzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAgICAgIGlmIHNlbGYu
X29ubWVzc2FnZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb25tZXNzYWdlKG1lc3NhZ2Up
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVldWUu
cHV0KG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBjbG9zZV9jb25uZWN0
aW9uKHNlbGYuX3JlcXVlc3QpCi0KLSAgICBkZWYgcmVjZWl2ZShzZWxmKToKLSAgICAgICAgIiIi
IFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIGNoYW5uZWwsIGJsb2NraW5nLgotCi0gICAgICAg
IFJldHVybnM6Ci0gICAgICAgICAgICBtZXNzYWdlIGFzIGEgdW5pY29kZSBzdHJpbmcuCi0gICAg
ICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcXVldWUuZ2V0KCkKLQotICAgIGRlZiByZWNl
aXZlX25vd2FpdChzZWxmKToKLSAgICAgICAgIiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhl
IGNoYW5uZWwsIG5vbi1ibG9ja2luZy4KLQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAg
bWVzc2FnZSBhcyBhIHVuaWNvZGUgc3RyaW5nIGlmIGF2YWlsYWJsZS4gTm9uZSBvdGhlcndpc2Uu
Ci0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5f
cXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKLSAgICAgICAg
ICAgIG1lc3NhZ2UgPSBOb25lCi0gICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICBkZWYgc3Rv
cChzZWxmKToKLSAgICAgICAgIiIiUmVxdWVzdCB0byBzdG9wIHRoaXMgaW5zdGFuY2UuCi0KLSAg
ICAgICAgVGhlIGluc3RhbmNlIHdpbGwgYmUgc3RvcHBlZCBhZnRlciByZWNlaXZpbmcgdGhlIG5l
eHQgbWVzc2FnZS4KLSAgICAgICAgVGhpcyBtZXRob2QgbWF5IG5vdCBiZSB2ZXJ5IHVzZWZ1bCwg
YnV0IHRoZXJlIGlzIG5vIGNsZWFuIHdheQotICAgICAgICBpbiBQeXRob24gdG8gZm9yY2VmdWxs
eSBzdG9wIGEgcnVubmluZyB0aHJlYWQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9zdG9w
X3JlcXVlc3RlZCA9IFRydWUKLQotCi1jbGFzcyBNZXNzYWdlU2VuZGVyKHRocmVhZGluZy5UaHJl
YWQpOgotICAgICIiIlRoaXMgY2xhc3Mgc2VuZHMgbWVzc2FnZXMgdG8gdGhlIGNsaWVudC4KLQot
ICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMgYm90aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3Vz
IHdheXMgdG8gc2VuZAotICAgIG1lc3NhZ2VzLgotCi0gICAgTm90ZTogVGhpcyBjbGFzcyBzaG91
bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgZm9yIHdzcwotICAgIGJl
Y2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkgdGhlIHNlcnZlciByYWlzZXMgYSBmYXRhbCBlcnJvciBp
ZiB0aGUgc29ja2V0Ci0gICAgaXMgYWNjZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJDb25z
dHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6
IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgIiIiCi0gICAgICAgIHRocmVhZGluZy5UaHJl
YWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAg
ICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRy
dWUpCi0gICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAg
d2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIG1lc3NhZ2UsIGNvbmRpdGlvbiA9IHNlbGYuX3F1ZXVl
LmdldCgpCi0gICAgICAgICAgICBjb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBzZW5k
X21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCwgbWVzc2FnZSkKLSAgICAgICAgICAgIGNvbmRpdGlvbi5u
b3RpZnkoKQotICAgICAgICAgICAgY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIHNlbmQo
c2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIlNlbmQgYSBtZXNzYWdlLCBibG9ja2luZy4iIiIK
LQotICAgICAgICBjb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgY29u
ZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoKG1lc3NhZ2UsIGNvbmRp
dGlvbikpCi0gICAgICAgIGNvbmRpdGlvbi53YWl0KCkKLQotICAgIGRlZiBzZW5kX25vd2FpdChz
ZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiU2VuZCBhIG1lc3NhZ2UsIG5vbi1ibG9ja2luZy4i
IiIKLQotICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoKG1lc3NhZ2UsIHRocmVhZGluZy5Db25kaXRp
b24oKSkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvbXV4LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L211eC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzMzQ2ODViMzExMjI1ZTM4NzNiOWI4MjhlZDAz
MWE3ZTkwNzgwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTg4
OSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgY2xh
c3NlcyBhbmQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgbXVsdGlwbGV4aW5nIGV4dGVuc2lvbi4KLQot
U3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHli
aS13ZWJzb2NrZXQtbXVsdGlwbGV4aW5nLTA2Ci0iIiIKLQotCi1pbXBvcnQgY29sbGVjdGlvbnMK
LWltcG9ydCBjb3B5Ci1pbXBvcnQgZW1haWwKLWltcG9ydCBlbWFpbC5wYXJzZXIKLWltcG9ydCBs
b2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHRocmVhZGluZwotaW1w
b3J0IHRyYWNlYmFjawotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRP
cGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBv
cnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IEZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfbGVuZ3RoX2hlYWRlcgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBwYXJzZV9mcmFtZQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBoeWJpCi0KLQotX0NPTlRST0xfQ0hBTk5FTF9JRCA9
IDAKLV9ERUZBVUxUX0NIQU5ORUxfSUQgPSAxCi0KLV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JF
UVVFU1QgPSAwCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRSA9IDEKLV9NVVhfT1BD
T0RFX0ZMT1dfQ09OVFJPTCA9IDIKLV9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCA9IDMKLV9NVVhf
T1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPSA0Ci0KLV9NQVhfQ0hBTk5FTF9JRCA9IDIgKiogMjkg
LSAxCi0KLV9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTID0gNjQKLV9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQgPSA4ICogMTAyNAotCi1fSEFORFNIQUtFX0VOQ09ESU5HX0lERU5USVRZ
ID0gMAotX0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQSA9IDEKLQotIyBXZSBuZWVkIG9ubHkgdGhl
c2Ugc3RhdHVzIGNvZGUgZm9yIG5vdy4KLV9IVFRQX0JBRF9SRVNQT05TRV9NRVNTQUdFUyA9IHsK
LSAgICBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1Q6ICdCYWQgUmVxdWVzdCcsCi19Ci0K
LSMgRHJvcENoYW5uZWwgcmVhc29uIGNvZGUKLSMgVE9ETyhiYXNoaSk6IERlZmluZSBhbGwgcmVh
c29uIGNvZGUgZGVmaW5lZCBpbiAtMDUgZHJhZnQuCi1fRFJPUF9DT0RFX05PUk1BTF9DTE9TVVJF
ID0gMTAwMAotCi1fRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19NRVNTQUdFID0gMjAw
MQotX0RST1BfQ09ERV9DSEFOTkVMX0lEX1RSVU5DQVRFRCA9IDIwMDIKLV9EUk9QX0NPREVfRU5D
QVBTVUxBVEVEX0ZSQU1FX0lTX1RSVU5DQVRFRCA9IDIwMDMKLV9EUk9QX0NPREVfVU5LTk9XTl9N
VVhfT1BDT0RFID0gMjAwNAotX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLID0g
MjAwNQotX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTID0gMjAwNgotX0RST1BfQ09E
RV9ORVdfQ0hBTk5FTF9TTE9UX1ZJT0xBVElPTiA9IDIwMDcKLV9EUk9QX0NPREVfVU5LTk9XTl9S
RVFVRVNUX0VOQ09ESU5HID0gMjAxMAotCi1fRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9O
ID0gMzAwNQotX0RST1BfQ09ERV9TRU5EX1FVT1RBX09WRVJGTE9XID0gMzAwNgotX0RST1BfQ09E
RV9BQ0tOT1dMRURHRUQgPSAzMDA4Ci1fRFJPUF9DT0RFX0JBRF9GUkFHTUVOVEFUSU9OID0gMzAw
OQotCi0KLWNsYXNzIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJF
eGNlcHRpb24gaW4gaGFuZGxpbmcgbXVsdGlwbGV4aW5nIGV4dGVuc2lvbi4iIiIKLSAgICBwYXNz
Ci0KLQotIyBUZW1wb3JhcnkKLWNsYXNzIE11eE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gYSBmbG93IGVudGVycyB1bmltcGxlbWVudGVkIGNv
ZGUgcGF0aC4iIiIKLSAgICBwYXNzCi0KLQotY2xhc3MgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRF
eGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJSYWlzZWQgd2hlbiBsb2dpY2FsIGNvbm5lY3Rp
b24gaXMgZ3JhY2VmdWxseSBjbG9zZWQuIiIiCi0gICAgcGFzcwotCi0KLWNsYXNzIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gdGhlcmUgaXMg
YSBwaHlzaWNhbCBjb25uZWN0aW9uIGVycm9yLiIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBk
cm9wX2NvZGUsIG1lc3NhZ2U9JycpOgotICAgICAgICBzdXBlcihQaHlzaWNhbENvbm5lY3Rpb25F
cnJvciwgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICAnY29kZT0lZCwgbWVzc2FnZT0lcicg
JSAoZHJvcF9jb2RlLCBtZXNzYWdlKSkKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBkcm9wX2Nv
ZGUKLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotCi0KLWNsYXNzIExvZ2ljYWxDaGFu
bmVsRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiJSYWlzZWQgd2hlbiB0aGVyZSBpcyBhIGxvZ2lj
YWwgY2hhbm5lbCBlcnJvci4iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwg
ZHJvcF9jb2RlLCBtZXNzYWdlPScnKToKLSAgICAgICAgc3VwZXIoTG9naWNhbENoYW5uZWxFcnJv
ciwgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICAnY2hhbm5lbF9pZD0lZCwgY29kZT0lZCwg
bWVzc2FnZT0lcicgJSAoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgZHJvcF9jb2RlLCBt
ZXNzYWdlKSkKLSAgICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBz
ZWxmLmRyb3BfY29kZSA9IGRyb3BfY29kZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdl
Ci0KLQotZGVmIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKToKLSAgICBpZiBjaGFubmVs
X2lkIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBtdXN0IG5v
dCBiZSBuZWdhdGl2ZScgJSBjaGFubmVsX2lkKQotCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiog
NzoKLSAgICAgICAgcmV0dXJuIGNocihjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQgPCAy
ICoqIDE0OgotICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFIJywgMHg4MDAwICsgY2hhbm5l
bF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyMToKLSAgICAgICAgZmlyc3QgPSBjaHIo
MHhjMCArIChjaGFubmVsX2lkID4+IDE2KSkKLSAgICAgICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0
LnBhY2soJyFIJywgY2hhbm5lbF9pZCAmIDB4ZmZmZikKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAq
KiAyOToKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFu
bmVsX2lkKQotCi0gICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBpcyB0b28gbGFy
Z2UnICUgY2hhbm5lbF9pZCkKLQotCi1kZWYgX2VuY29kZV9udW1iZXIobnVtYmVyKToKLSAgICBy
ZXR1cm4gY3JlYXRlX2xlbmd0aF9oZWFkZXIobnVtYmVyLCBGYWxzZSkKLQotCi1kZWYgX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkLCBlbmNvZGVkX2hhbmRzaGFrZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTAsIHJlamVjdGVkPUZhbHNl
KToKLSAgICBpZiBlbmNvZGluZyAhPSAwIGFuZCBlbmNvZGluZyAhPSAxOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGVuY29kaW5nICVkJyAlIGVuY29kaW5nKQotCi0gICAgZmly
c3RfYnl0ZSA9ICgoX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPDwgNSkgfAotICAg
ICAgICAgICAgICAgICAgKHJlamVjdGVkIDw8IDQpIHwgZW5jb2RpbmcpCi0gICAgYmxvY2sgPSAo
Y2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5l
bF9pZCkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVkX2hhbmRzaGFr
ZSkpICsKLSAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSkKLSAgICByZXR1cm4gYmxvY2sK
LQotCi1kZWYgX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNz
YWdlPScnKToKLSAgICBpZiBsZW4obWVzc2FnZSkgPiAwIGFuZCBjb2RlIGlzIE5vbmU6Ci0gICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NvZGUgbXVzdCBiZSBzcGVjaWZpZWQgaWYgbWVzc2FnZSBp
cyBzcGVjaWZpZWQnKQotCi0gICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TCA8PCA1Ci0gICAgYmxvY2sgPSBjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQo
Y2hhbm5lbF9pZCkKLSAgICBpZiBjb2RlIGlzIE5vbmU6Ci0gICAgICAgIGJsb2NrICs9IF9lbmNv
ZGVfbnVtYmVyKDApICMgUmVhc29uIHNpemUKLSAgICBlbHNlOgotICAgICAgICByZWFzb24gPSBz
dHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIG1lc3NhZ2UKLSAgICAgICAgcmVhc29uX3NpemUgPSBf
ZW5jb2RlX251bWJlcihsZW4ocmVhc29uKSkKLSAgICAgICAgYmxvY2sgKz0gcmVhc29uX3NpemUg
KyByZWFzb24KLQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29udHJv
bChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgZmlyc3RfYnl0ZSA9IF9NVVhf
T1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1Ci0gICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsK
LSAgICAgICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAg
ICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkKLSAgICByZXR1cm4gYmxvY2sK
LQotCi1kZWYgX2NyZWF0ZV9uZXdfY2hhbm5lbF9zbG90KHNsb3RzLCBzZW5kX3F1b3RhKToKLSAg
ICBpZiBzbG90cyA8IDAgb3Igc2VuZF9xdW90YSA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ3Nsb3RzIGFuZCBzZW5kX3F1b3RhIG11c3QgYmUgbm9uLW5lZ2F0aXZlLicpCi0gICAgZmly
c3RfYnl0ZSA9IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPDwgNQotICAgIGJsb2NrID0g
KGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIoc2xvdHMpICsK
LSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihzZW5kX3F1b3RhKSkKLSAgICByZXR1cm4gYmxv
Y2sKLQotCi1kZWYgX2NyZWF0ZV9mYWxsYmFja19uZXdfY2hhbm5lbF9zbG90KCk6Ci0gICAgZmly
c3RfYnl0ZSA9IChfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUpIHwgMSAjIFNldCB0
aGUgRiBmbGFnCi0gICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9udW1iZXIo
MCkgKyBfZW5jb2RlX251bWJlcigwKSkKLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX3BhcnNl
X3JlcXVlc3RfdGV4dChyZXF1ZXN0X3RleHQpOgotICAgIHJlcXVlc3RfbGluZSwgaGVhZGVyX2xp
bmVzID0gcmVxdWVzdF90ZXh0LnNwbGl0KCdcclxuJywgMSkKLQotICAgIHdvcmRzID0gcmVxdWVz
dF9saW5lLnNwbGl0KCcgJykKLSAgICBpZiBsZW4od29yZHMpICE9IDM6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0JhZCBSZXF1ZXN0LUxpbmUgc3ludGF4ICVyJyAlIHJlcXVlc3RfbGluZSkK
LSAgICBbY29tbWFuZCwgcGF0aCwgdmVyc2lvbl0gPSB3b3JkcwotICAgIGlmIHZlcnNpb24gIT0g
J0hUVFAvMS4xJzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJlcXVlc3QgdmVyc2lv
biAlcicgJSB2ZXJzaW9uKQotCi0gICAgIyBlbWFpbC5wYXJzZXIuUGFyc2VyKCkgcGFyc2VzIFJG
QyAyODIyIChSRkMgODIyKSBzdHlsZSBoZWFkZXJzLgotICAgICMgUkZDIDY0NTUgcmVmZXJzIFJG
QyAyNjE2IGZvciBoYW5kc2hha2UgcGFyc2luZywgYW5kIFJGQyAyNjE2IHJlZmVycwotICAgICMg
UkZDIDgyMi4KLSAgICBoZWFkZXJzID0gZW1haWwucGFyc2VyLlBhcnNlcigpLnBhcnNlc3RyKGhl
YWRlcl9saW5lcykKLSAgICByZXR1cm4gY29tbWFuZCwgcGF0aCwgdmVyc2lvbiwgaGVhZGVycwot
Ci0KLWNsYXNzIF9Db250cm9sQmxvY2sob2JqZWN0KToKLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0
IGhvbGRzIHBhcnNpbmcgcmVzdWx0IG9mIG11bHRpcGxleGluZyBjb250cm9sIGJsb2NrLgotICAg
IENvbnRyb2wgYmxvY2sgc3BlY2lmaWMgYXR0cmlidXRlcyB3aWxsIGJlIGFkZGVkIGJ5IF9NdXhG
cmFtZVBheWxvYWRQYXJzZXIuCi0gICAgKGUuZy4gZW5jb2RlZF9oYW5kc2hha2Ugd2lsbCBiZSBh
ZGRlZCBmb3IgQWRkQ2hhbm5lbFJlcXVlc3QgYW5kCi0gICAgQWRkQ2hhbm5lbFJlc3BvbnNlKQot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSk6Ci0gICAgICAgIHNlbGYu
b3Bjb2RlID0gb3Bjb2RlCi0KLQotY2xhc3MgX011eEZyYW1lUGF5bG9hZFBhcnNlcihvYmplY3Qp
OgotICAgICIiIkEgY2xhc3MgdGhhdCBwYXJzZXMgbXVsdGlwbGV4ZWQgZnJhbWUgcGF5bG9hZC4i
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXlsb2FkKToKLSAgICAgICAgc2VsZi5fZGF0
YSA9IHBheWxvYWQKLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiA9IDAKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgcmVhZF9j
aGFubmVsX2lkKHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBjaGFubmVsIGlkLgotCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIFZhbHVlRXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgZG9lc24n
dCBjb250YWluCi0gICAgICAgICAgICAgICAgdmFsaWQgY2hhbm5lbCBpZC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgcmVtYWluaW5nX2xlbmd0aCA9IGxlbihzZWxmLl9kYXRhKSAtIHNlbGYuX3Jl
YWRfcG9zaXRpb24KLSAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBp
ZiByZW1haW5pbmdfbGVuZ3RoID09IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJ
bnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLQotICAgICAgICBjaGFubmVsX2lkID0gb3JkKHNl
bGYuX2RhdGFbcG9zXSkKLSAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAxCi0gICAgICAgIGlm
IGNoYW5uZWxfaWQgJiAweGUwID09IDB4ZTA6Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdfbGVu
Z3RoIDwgNDoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5u
ZWwgaWQgZm9ybWF0JykKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCch
TCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kYXRhW3Bv
czpwb3MrNF0pWzBdICYgMHgxZmZmZmZmZgotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGgg
PSA0Ci0gICAgICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4YzAgPT0gMHhjMDoKLSAgICAgICAgICAg
IGlmIHJlbWFpbmluZ19sZW5ndGggPCAzOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9
ICgoKGNoYW5uZWxfaWQgJiAweDFmKSA8PCAxNikgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QudW5wYWNrKCchSCcsIHNlbGYuX2RhdGFbcG9zKzE6cG9zKzNdKVswXSkKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMwotICAgICAgICBlbGlmIGNoYW5uZWxfaWQgJiAw
eDgwID09IDB4ODA6Ci0gICAgICAgICAgICBpZiByZW1haW5pbmdfbGVuZ3RoIDwgMjoKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchSCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kYXRhW3Bvczpwb3MrMl0pWzBdICYg
MHgzZmZmCi0gICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDIKLSAgICAgICAgc2VsZi5f
cmVhZF9wb3NpdGlvbiArPSBjaGFubmVsX2lkX2xlbmd0aAotCi0gICAgICAgIHJldHVybiBjaGFu
bmVsX2lkCi0KLSAgICBkZWYgcmVhZF9pbm5lcl9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiUmVh
ZHMgYW4gaW5uZXIgZnJhbWUuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIGlubmVyIGZyYW1lIGlzIGludmFsaWQuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGlmIGxlbihzZWxmLl9kYXRhKSA9PSBzZWxmLl9yZWFkX3Bvc2l0
aW9uOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVEKQotCi0g
ICAgICAgIGJpdHMgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAg
ICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAgIGZpbiA9IChiaXRzICYgMHg4MCkg
PT0gMHg4MAotICAgICAgICByc3YxID0gKGJpdHMgJiAweDQwKSA9PSAweDQwCi0gICAgICAgIHJz
djIgPSAoYml0cyAmIDB4MjApID09IDB4MjAKLSAgICAgICAgcnN2MyA9IChiaXRzICYgMHgxMCkg
PT0gMHgxMAotICAgICAgICBvcGNvZGUgPSBiaXRzICYgMHhmCi0gICAgICAgIHBheWxvYWQgPSBz
ZWxmLnJlbWFpbmluZ19kYXRhKCkKLSAgICAgICAgIyBDb25zdW1lIHJlc3Qgb2YgdGhlIG1lc3Nh
Z2Ugd2hpY2ggaXMgcGF5bG9hZCBkYXRhIG9mIHRoZSBvcmlnaW5hbAotICAgICAgICAjIGZyYW1l
LgotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uID0gbGVuKHNlbGYuX2RhdGEpCi0gICAgICAg
IHJldHVybiBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZAotCi0gICAgZGVm
IF9yZWFkX251bWJlcihzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3NpdGlvbiArIDEg
PiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAg
ICAgICAgICAgICdDYW5ub3QgcmVhZCB0aGUgZmlyc3QgYnl0ZSBvZiBudW1iZXIgZmllbGQnKQot
Ci0gICAgICAgIG51bWJlciA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQot
ICAgICAgICBpZiBudW1iZXIgJiAweDgwID09IDB4ODA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKAotICAgICAgICAgICAgICAgICdUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgdGhl
IGZpcnN0IGJ5dGUgb2YgbnVtYmVyIHNob3VsZCAnCi0gICAgICAgICAgICAgICAgJ2JlIHVuc2V0
JykKLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAxCi0gICAgICAgIHBvcyA9IHNlbGYu
X3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYgbnVtYmVyID09IDEyNzoKLSAgICAgICAgICAgIGlm
IHBvcyArIDggPiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignSW52YWxpZCBudW1iZXIgZmllbGQnKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3Np
dGlvbiArPSA4Ci0gICAgICAgICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchUScsIHNlbGYu
X2RhdGFbcG9zOnBvcys4XSlbMF0KLSAgICAgICAgICAgIGlmIG51bWJlciA+IDB4N0ZGRkZGRkZG
RkZGRkZGRjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFbmNvZGVkIG51bWJl
ciglZCkgPj0gMl42MycgJSBudW1iZXIpCi0gICAgICAgICAgICBpZiBudW1iZXIgPD0gMHhGRkZG
OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAg
ICclZCBzaG91bGQgbm90IGJlIGVuY29kZWQgYnkgOSBieXRlcyBlbmNvZGluZycgJSBudW1iZXIp
Ci0gICAgICAgICAgICByZXR1cm4gbnVtYmVyCi0gICAgICAgIGlmIG51bWJlciA9PSAxMjY6Ci0g
ICAgICAgICAgICBpZiBwb3MgKyAyID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgbnVtYmVyIGZpZWxkJykKLSAgICAgICAgICAgIHNl
bGYuX3JlYWRfcG9zaXRpb24gKz0gMgotICAgICAgICAgICAgbnVtYmVyID0gc3RydWN0LnVucGFj
aygnIUgnLCBzZWxmLl9kYXRhW3Bvczpwb3MrMl0pWzBdCi0gICAgICAgICAgICBpZiBudW1iZXIg
PD0gMTI1OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAg
ICAgICAgICclZCBzaG91bGQgbm90IGJlIGVuY29kZWQgYnkgMyBieXRlcyBlbmNvZGluZycgJSBu
dW1iZXIpCi0gICAgICAgIHJldHVybiBudW1iZXIKLQotICAgIGRlZiBfcmVhZF9zaXplX2FuZF9j
b250ZW50cyhzZWxmKToKLSAgICAgICAgIiIiUmVhZHMgZGF0YSB0aGF0IGNvbnNpc3RzIG9mIGZv
bGxvd2luZ3M6Ci0gICAgICAgICAgICAtIHRoZSBzaXplIG9mIHRoZSBjb250ZW50cyBlbmNvZGVk
IHRoZSBzYW1lIHdheSBhcyBwYXlsb2FkIGxlbmd0aAotICAgICAgICAgICAgICBvZiB0aGUgV2Vi
U29ja2V0IFByb3RvY29sIHdpdGggMSBiaXQgcGFkZGluZyBhdCB0aGUgaGVhZC4KLSAgICAgICAg
ICAgIC0gdGhlIGNvbnRlbnRzLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBzaXplID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJv
ciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NP
REVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cihlKSkKLSAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlv
bgotICAgICAgICBpZiBwb3MgKyBzaXplID4gbGVuKHNlbGYuX2RhdGEpOgotICAgICAgICAgICAg
cmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09E
RV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdDYW5ub3QgcmVh
ZCAlZCBieXRlcyBkYXRhJyAlIHNpemUpCi0KLSAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiAr
PSBzaXplCi0gICAgICAgIHJldHVybiBzZWxmLl9kYXRhW3Bvczpwb3Mrc2l6ZV0KLQotICAgIGRl
ZiBfcmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxv
Y2spOgotICAgICAgICByZXNlcnZlZCA9IChmaXJzdF9ieXRlID4+IDIpICYgMHg3Ci0gICAgICAg
IGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxP
Q0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAg
ICAgICAgIyBJbnZhbGlkIGVuY29kaW5nIHdpbGwgYmUgaGFuZGxlZCBieSBNdXhIYW5kbGVyLgot
ICAgICAgICBlbmNvZGluZyA9IGZpcnN0X2J5dGUgJiAweDMKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQot
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAg
ICAgICAgY29udHJvbF9ibG9jay5lbmNvZGluZyA9IGVuY29kaW5nCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCi0gICAgICAgIGNvbnRy
b2xfYmxvY2suZW5jb2RlZF9oYW5kc2hha2UgPSBlbmNvZGVkX2hhbmRzaGFrZQotICAgICAgICBy
ZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IChm
aXJzdF9ieXRlID4+IDIpICYgMHgzCi0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAg
ICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJP
UF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2Vy
dmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAgICAgY29udHJvbF9ibG9jay5hY2NlcHRl
ZCA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29kaW5n
ID0gZmlyc3RfYnl0ZSAmIDB4MwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Js
b2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Io
X0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICBjb250cm9sX2Js
b2NrLmVuY29kZWRfaGFuZHNoYWtlID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCi0g
ICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfZmxvd19jb250cm9s
KHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IGZp
cnN0X2J5dGUgJiAweDFmCi0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICBy
YWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RF
X0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJp
dHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9i
bG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICAgICAgY29u
dHJvbF9ibG9jay5zZW5kX3F1b3RhID0gc2VsZi5fcmVhZF9udW1iZXIoKQotICAgICAgICBleGNl
cHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVy
cm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihlKSkKLQotICAgICAgICByZXR1cm4gY29u
dHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2Ryb3BfY2hhbm5lbChzZWxmLCBmaXJzdF9ieXRl
LCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZgot
ICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25u
ZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05U
Uk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQn
KQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9
IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0g
ICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFM
SURfTVVYX0NPTlRST0xfQkxPQ0spCi0gICAgICAgIHJlYXNvbiA9IHNlbGYuX3JlYWRfc2l6ZV9h
bmRfY29udGVudHMoKQotICAgICAgICBpZiBsZW4ocmVhc29uKSA9PSAwOgotICAgICAgICAgICAg
Y29udHJvbF9ibG9jay5kcm9wX2NvZGUgPSBOb25lCi0gICAgICAgICAgICBjb250cm9sX2Jsb2Nr
LmRyb3BfbWVzc2FnZSA9ICcnCi0gICAgICAgIGVsaWYgbGVuKHJlYXNvbikgPj0gMjoKLSAgICAg
ICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9jb2RlID0gc3RydWN0LnVucGFjaygnIUgnLCByZWFz
b25bOjJdKVswXQotICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9wX21lc3NhZ2UgPSByZWFz
b25bMjpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xf
QkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIERyb3BDaGFubmVsIHRoYXQgY29uYWlu
cyBvbmx5IDEtYnl0ZSByZWFzb24nKQotICAgICAgICByZXR1cm4gY29udHJvbF9ibG9jawotCi0g
ICAgZGVmIF9yZWFkX25ld19jaGFubmVsX3Nsb3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9i
bG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWUKLSAgICAgICAgaWYg
cmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
KAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywK
LSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLSAgICAgICAg
Y29udHJvbF9ibG9jay5mYWxsYmFjayA9IGZpcnN0X2J5dGUgJiAxCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2xvdHMgPSBzZWxmLl9yZWFkX251bWJlcigpCi0gICAg
ICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRfcXVvdGEgPSBzZWxmLl9yZWFkX251bWJlcigpCi0g
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGUpKQotICAgICAgICBy
ZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIHJlYWRfY29udHJvbF9ibG9ja3Moc2VsZik6
Ci0gICAgICAgICIiIlJlYWRzIGNvbnRyb2wgYmxvY2socykuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcjogd2hlbiB0aGUgcGF5bG9hZCBjb250
YWlucyBpbnZhbGlkIGNvbnRyb2wKLSAgICAgICAgICAgICAgIGJsb2NrKHMpLgotICAgICAgICAg
ICBTdG9wSXRlcmF0aW9uOiB3aGVuIG5vIGNvbnRyb2wgYmxvY2tzIGxlZnQuCi0gICAgICAgICIi
IgotCi0gICAgICAgIHdoaWxlIHNlbGYuX3JlYWRfcG9zaXRpb24gPCBsZW4oc2VsZi5fZGF0YSk6
Ci0gICAgICAgICAgICBmaXJzdF9ieXRlID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3Np
dGlvbl0pCi0gICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAgICAgICAg
IG9wY29kZSA9IChmaXJzdF9ieXRlID4+IDUpICYgMHg3Ci0gICAgICAgICAgICBjb250cm9sX2Js
b2NrID0gX0NvbnRyb2xCbG9jayhvcGNvZGU9b3Bjb2RlKQotICAgICAgICAgICAgaWYgb3Bjb2Rl
ID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1Q6Ci0gICAgICAgICAgICAgICAgeWll
bGQgc2VsZi5fcmVhZF9hZGRfY2hhbm5lbF9yZXF1ZXN0KGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxv
Y2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVNQT05TRToKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9jaGFubmVsX3Jl
c3BvbnNlKAotICAgICAgICAgICAgICAgICAgICBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQot
ICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAg
ICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfZmxvd19jb250cm9sKGZpcnN0X2J5dGUsIGNv
bnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9Q
X0NIQU5ORUw6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9kcm9wX2NoYW5uZWwo
Zmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5f
cmVhZF9uZXdfY2hhbm5lbF9zbG90KGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
KAotICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fTVVYX09QQ09ERSwKLSAg
ICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgb3Bjb2RlICVkJyAlIG9wY29kZSkKLQotICAgICAg
ICBhc3NlcnQgc2VsZi5fcmVhZF9wb3NpdGlvbiA9PSBsZW4oc2VsZi5fZGF0YSkKLSAgICAgICAg
cmFpc2UgU3RvcEl0ZXJhdGlvbgotCi0gICAgZGVmIHJlbWFpbmluZ19kYXRhKHNlbGYpOgotICAg
ICAgICAiIiJSZXR1cm5zIHJlbWFpbmluZyBkYXRhLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxm
Ll9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb246XQotCi0KLWNsYXNzIF9Mb2dpY2FsUmVxdWVzdChv
YmplY3QpOgotICAgICIiIk1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgY29tbWFuZCwgcGF0aCwgcHJvdG9jb2wsIGhlYWRl
cnMsCi0gICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24pOgotICAgICAgICAiIiJDb25zdHJ1Y3Rz
IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiB0
aGUgY2hhbm5lbCBpZCBvZiB0aGUgbG9naWNhbCBjaGFubmVsLgotICAgICAgICAgICAgY29tbWFu
ZDogSFRUUCByZXF1ZXN0IGNvbW1hbmQuCi0gICAgICAgICAgICBwYXRoOiBIVFRQIHJlcXVlc3Qg
cGF0aC4KLSAgICAgICAgICAgIGhlYWRlcnM6IEhUVFAgaGVhZGVycy4KLSAgICAgICAgICAgIGNv
bm5lY3Rpb246IF9Mb2dpY2FsQ29ubmVjdGlvbiBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLm1ldGhvZCA9
IGNvbW1hbmQKLSAgICAgICAgc2VsZi51cmkgPSBwYXRoCi0gICAgICAgIHNlbGYucHJvdG9jb2wg
PSBwcm90b2NvbAotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSBoZWFkZXJzCi0gICAgICAgIHNl
bGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5zZXJ2ZXJfdGVybWluYXRl
ZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAg
ZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAgICAiIiJNaW1pY3MgcmVxdWVzdC5pc19odHRwcygp
LiBSZXR1cm5zIEZhbHNlIGJlY2F1c2UgdGhpcyBtZXRob2QgaXMKLSAgICAgICAgdXNlZCBvbmx5
IGJ5IG9sZCBwcm90b2NvbHMgKGhpeGllIGFuZCBoeWJpMDApLgotICAgICAgICAiIiIKLQotICAg
ICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBfTG9naWNhbENvbm5lY3Rpb24ob2JqZWN0KToK
LSAgICAiIiJNaW1pY3MgbW9kX3B5dGhvbiBtcF9jb25uLiIiIgotCi0gICAgIyBGb3IgZGV0YWls
cywgc2VlIHRoZSBjb21tZW50IG9mIHNldF9yZWFkX3N0YXRlKCkuCi0gICAgU1RBVEVfQUNUSVZF
ID0gMQotICAgIFNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEID0gMgotICAgIFNUQVRFX1RFUk1JTkFU
RUQgPSAzCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIsIGNoYW5uZWxfaWQp
OgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBtdXhfaGFuZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICAg
ICBjaGFubmVsX2lkOiBjaGFubmVsIGlkIG9mIHRoaXMgY29ubmVjdGlvbi4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxm
Ll9jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhID0g
JycKLQotICAgICAgICAjIC0gUHJvdGVjdHMgX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbgotICAg
ICAgICAjIC0gU2lnbmFscyB0aGUgdGhyZWFkIHdhaXRpbmcgZm9yIGNvbXBsZXRpb24gb2Ygd3Jp
dGUgYnkgbXV4IGhhbmRsZXIKLSAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uID0gdGhyZWFk
aW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9
IEZhbHNlCi0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0
aW9uKCkKLSAgICAgICAgc2VsZi5fcmVhZF9zdGF0ZSA9IHNlbGYuU1RBVEVfQUNUSVZFCi0KLSAg
ICBkZWYgZ2V0X2xvY2FsX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBt
cF9jb25uLmxvY2FsX2FkZHIuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX211eF9oYW5kbGVy
LnBoeXNpY2FsX2Nvbm5lY3Rpb24uZ2V0X2xvY2FsX2FkZHIoKQotICAgIGxvY2FsX2FkZHIgPSBw
cm9wZXJ0eShnZXRfbG9jYWxfYWRkcikKLQotICAgIGRlZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6
Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25uLnJlbW90ZV9hZGRyLiIiIgotCi0g
ICAgICAgIHJldHVybiBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLmdldF9y
ZW1vdGVfYWRkcigpCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIp
Ci0KLSAgICBkZWYgZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgIiIiR2V0cyBt
ZW1vcml6ZWQgbGluZXMuIE5vdCBzdXBwb3J0ZWQuIiIiCi0KLSAgICAgICAgcmFpc2UgTXV4VW5l
eHBlY3RlZEV4Y2VwdGlvbignX0xvZ2ljYWxDb25uZWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfbWVtb3JpemVkX2xpbmVz
JykKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiV3JpdGVzIGRhdGEu
IG11eF9oYW5kbGVyIHNlbmRzIGRhdGEgYXN5bmNocm9ub3VzbHkuIFRoZSBjYWxsZXIgd2lsbAot
ICAgICAgICBiZSBzdXNwZW5kZWQgdW50aWwgd3JpdGUgZG9uZS4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSB3cml0dGVuLgotCi0gICAgICAgIFJhaXNlczoK
LSAgICAgICAgICAgIE11eFVuZXhwZWN0ZWRFeGNlcHRpb246IHdoZW4gY2FsbGVkIGJlZm9yZSBm
aW5pc2hpbmcgdGhlIHByZXZpb3VzCi0gICAgICAgICAgICAgICAgd3JpdGUuCi0gICAgICAgICIi
IgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1
aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbjoKLSAg
ICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICAgICAnTG9naWNhbCBjb25uZWN0aW9uICVkIGlzIGFscmVhZHkgd2FpdGluZyB0aGUgY29t
cGxldGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICdvZiB3cml0ZScgJSBzZWxmLl9jaGFubmVs
X2lkKQotCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBUcnVl
Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5zZW5kX2RhdGEoc2VsZi5fY2hhbm5lbF9p
ZCwgZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi53YWl0KCkKLSAgICAg
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB3b2tlIHVwIGJ5
IG9uX3dyaXRlcl9kb25lLgotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3Jp
dGVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIHdyaXRlX2NvbnRyb2xfZGF0YShzZWxm
LCBkYXRhKToKLSAgICAgICAgIiIiV3JpdGVzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5uZWwu
IERvbid0IHdhaXQgZmluaXNoaW5nIHdyaXRlCi0gICAgICAgIGJlY2F1c2UgdGhpcyBtZXRob2Qg
Y2FuIGJlIGNhbGxlZCBieSBtdXggZGlzcGF0Y2hlci4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgICAgZGF0YTogZGF0YSB0byBiZSB3cml0dGVuLgotICAgICAgICAiIiIKLQotICAgICAgICBz
ZWxmLl9tdXhfaGFuZGxlci5zZW5kX2NvbnRyb2xfZGF0YShkYXRhKQotCi0gICAgZGVmIG9uX3dy
aXRlX2RhdGFfZG9uZShzZWxmKToKLSAgICAgICAgIiIiQ2FsbGVkIHdoZW4gc2VuZGluZyBkYXRh
IGlzIGNvbXBsZXRlZC4iIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0
ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fd2FpdGluZ193
cml0ZV9jb21wbGV0aW9uOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdJbnZhbGlkIGNhbGwgb2Ygb25fd3JpdGVfZGF0
YV9kb25lIGZvciBsb2dpY2FsICcKLSAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24gJWQn
ICUgc2VsZi5fY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29t
cGxldGlvbiA9IEZhbHNlCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ubm90aWZ5
KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBvbl93cml0ZXJfZG9uZShzZWxmKToKLSAgICAgICAgIiIiQ2Fs
bGVkIGJ5IHRoZSBtdXggaGFuZGxlciB3aGVuIHRoZSB3cml0ZXIgdGhyZWFkIGhhcyBmaW5pc2hl
ZC4iIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24u
YWNxdWlyZSgpCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBG
YWxzZQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0K
LQotICAgIGRlZiBhcHBlbmRfZnJhbWVfZGF0YShzZWxmLCBmcmFtZV9kYXRhKToKLSAgICAgICAg
IiIiQXBwZW5kcyBpbmNvbWluZyBmcmFtZSBkYXRhLiBDYWxsZWQgd2hlbiBtdXhfaGFuZGxlciBk
aXNwYXRjaGVzCi0gICAgICAgIGZyYW1lIGRhdGEgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYXBwbGlj
YXRpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGZyYW1lX2RhdGE6IGluY29taW5n
IGZyYW1lIGRhdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19kYXRhICs9IGZyYW1lX2RhdGEKLSAg
ICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fcmVhZF9j
b25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAg
ICAiIiJSZWFkcyBkYXRhLiBCbG9ja3MgdW50aWwgZW5vdWdoIGRhdGEgaGFzIGFycml2ZWQgdmlh
IHBoeXNpY2FsCi0gICAgICAgIGNvbm5lY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICAgIGxlbmd0aDogbGVuZ3RoIG9mIGRhdGEgdG8gYmUgcmVhZC4KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb246IHdoZW4gY2xvc2lu
ZyBoYW5kc2hha2UgZm9yIHRoaXMKLSAgICAgICAgICAgICAgICBsb2dpY2FsIGNoYW5uZWwgaGFz
IGJlZW4gcmVjZWl2ZWQuCi0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bjogd2hlbiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbiBoYXMKLSAgICAgICAgICAgICAgICBjbG9z
ZWQsIG9yIGFuIGVycm9yIGlzIGNhdXNlZCBvbiB0aGUgcmVhZGVyIHRocmVhZC4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHdo
aWxlIChzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfQUNUSVZFIGFuZAotICAgICAgICAg
ICAgICAgbGVuKHNlbGYuX2luY29taW5nX2RhdGEpIDwgbGVuZ3RoKToKLSAgICAgICAgICAgIHNl
bGYuX3JlYWRfY29uZGl0aW9uLndhaXQoKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlm
IHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9HUkFDRUZVTExZX0NMT1NFRDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY2hhbm5lbCAlZCBoYXMgY2xvc2VkLicgJSBzZWxmLl9j
aGFubmVsX2lkKQotICAgICAgICAgICAgZWxpZiBzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RB
VEVfVEVSTUlOQVRFRDoKLSAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxl
ZC4gTG9naWNhbCBjaGFubmVsICglZCkgY2xvc2VkJyAlCi0gICAgICAgICAgICAgICAgICAgIChs
ZW5ndGgsIHNlbGYuX2NoYW5uZWxfaWQpKQotCi0gICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2lu
Y29taW5nX2RhdGFbOmxlbmd0aF0KLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSBz
ZWxmLl9pbmNvbWluZ19kYXRhW2xlbmd0aDpdCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICByZXR1cm4gdmFsdWUK
LQotICAgIGRlZiBzZXRfcmVhZF9zdGF0ZShzZWxmLCBuZXdfc3RhdGUpOgotICAgICAgICAiIiJT
ZXRzIHRoZSBzdGF0ZSBvZiB0aGlzIGNvbm5lY3Rpb24uIENhbGxlZCB3aGVuIGFuIGV2ZW50IGZv
ciB0aGlzCi0gICAgICAgIGNvbm5lY3Rpb24gaGFzIG9jY3VycmVkLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICBuZXdfc3RhdGU6IHN0YXRlIHRvIGJlIHNldC4gbmV3X3N0YXRlIG11c3Qg
YmUgb25lIG9mIGZvbGxvd2luZ3M6Ci0gICAgICAgICAgICAtIFNUQVRFX0dSQUNFRlVMTFlfQ0xP
U0VEOiB3aGVuIGNsb3NpbmcgaGFuZHNoYWtlIGZvciB0aGlzCi0gICAgICAgICAgICAgICAgY29u
bmVjdGlvbiBoYXMgYmVlbiByZWNlaXZlZC4KLSAgICAgICAgICAgIC0gU1RBVEVfVEVSTUlOQVRF
RDogd2hlbiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbiBoYXMgY2xvc2VkIG9yCi0gICAgICAgICAg
ICAgICAgRHJvcENoYW5uZWwgb2YgdGhpcyBjb25uZWN0aW9uIGhhcyByZWNlaXZlZC4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
IHNlbGYuX3JlYWRfc3RhdGUgPSBuZXdfc3RhdGUKLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRp
b24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQot
Y2xhc3MgX0lubmVyTWVzc2FnZShvYmplY3QpOgotICAgICIiIkhvbGRzIHRoZSByZXN1bHQgb2Yg
X0lubmVyTWVzc2FnZUJ1aWxkZXIuYnVpbGQoKS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcGNvZGUsIHBheWxvYWQpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQot
ICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXlsb2FkCi0KLQotY2xhc3MgX0lubmVyTWVzc2FnZUJ1
aWxkZXIob2JqZWN0KToKLSAgICAiIiJBIGNsYXNzIHRoYXQgaG9sZHMgdGhlIGNvbnRleHQgb2Yg
aW5uZXIgbWVzc2FnZSBmcmFnbWVudGF0aW9uIGFuZAotICAgIGJ1aWxkcyBhIG1lc3NhZ2UgZnJv
bSBmcmFnbWVudGVkIGlubmVyIGZyYW1lKHMpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICBzZWxmLl9jb250cm9sX29wY29kZSA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vf
b3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0g
W10KLSAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAotCi0g
ICAgZGVmIF9oYW5kbGVfZmlyc3Qoc2VsZiwgZnJhbWUpOgotICAgICAgICBpZiBmcmFtZS5vcGNv
ZGUgPT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICByYWlzZSBJbnZh
bGlkRnJhbWVFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBjb250aW51YXRpb24gb3Bjb2RlJykK
LQotICAgICAgICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChm
cmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX2Zp
cnN0X2ZyYWdtZW50ZWRfbWVzc2FnZShmcmFtZSkKLQotICAgIGRlZiBfcHJvY2Vzc19maXJzdF9m
cmFnbWVudGVkX2NvbnRyb2woc2VsZiwgZnJhbWUpOgotICAgICAgICBzZWxmLl9jb250cm9sX29w
Y29kZSA9IGZyYW1lLm9wY29kZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21l
bnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAg
ICAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX2Nv
bnRyb2wKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFz
c2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbCgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZmlyc3RfZnJh
Z21lbnRlZF9tZXNzYWdlKHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNv
ZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50
cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAg
ICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21lbnRlZF9tZXNz
YWdlCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3Nl
bWJsZV9mcmFnbWVudGVkX21lc3NhZ2UoKQotCi0gICAgZGVmIF9oYW5kbGVfZnJhZ21lbnRlZF9j
b250cm9sKHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNl
bmRpbmcgZnJhZ21lbnRlZCBjb250cm9sICcKLSAgICAgICAgICAgICAgICAnbWVzc2FnZScgJSBm
cmFtZS5vcGNvZGUpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMuYXBw
ZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVk
X2NvbnRyb2woKQotCi0gICAgZGVmIF9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbChzZWxm
KToKLSAgICAgICAgb3Bjb2RlID0gc2VsZi5fY29udHJvbF9vcGNvZGUKLSAgICAgICAgcGF5bG9h
ZCA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cykKLSAgICAgICAgc2Vs
Zi5fY29udHJvbF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9m
cmFnbWVudHMgPSBbXQotICAgICAgICBpZiBzZWxmLl9tZXNzYWdlX29wY29kZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21l
bnRlZF9tZXNzYWdlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5k
bGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0gICAgICAgIHJldHVybiBfSW5uZXJNZXNzYWdlKG9w
Y29kZSwgcGF5bG9hZCkKLQotICAgIGRlZiBfaGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxm
LCBmcmFtZSk6Ci0gICAgICAgICMgU2VuZGVyIGNhbiBpbnRlcmxlYXZlIGEgY29udHJvbCBtZXNz
YWdlIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZAotICAgICAgICAjIG1lc3NhZ2VzLgotICAgICAg
ICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAg
IGlmIHNlbGYuX2NvbnRyb2xfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJh
aXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdTaG91bGQg
bm90IHJlYWNoIGhlcmUoQnVnIGluIGJ1aWxkZXIpJykKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChmcmFtZSkKLQotICAgICAgICBpZiBm
cmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICBy
YWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1NlbmRpbmcgaW52
YWxpZCBvcGNvZGUgJWQgd2hpbGUgc2VuZGluZyBmcmFnbWVudGVkIG1lc3NhZ2UnICUKLSAgICAg
ICAgICAgICAgICBmcmFtZS5vcGNvZGUpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9m
cmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhc3NlbWJs
ZV9mcmFnbWVudGVkX21lc3NhZ2UoKQotCi0gICAgZGVmIF9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRf
bWVzc2FnZShzZWxmKToKLSAgICAgICAgb3Bjb2RlID0gc2VsZi5fbWVzc2FnZV9vcGNvZGUKLSAg
ICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cykK
LSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRp
bmdfbWVzc2FnZV9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0g
c2VsZi5faGFuZGxlX2ZpcnN0Ci0gICAgICAgIHJldHVybiBfSW5uZXJNZXNzYWdlKG9wY29kZSwg
cGF5bG9hZCkKLQotICAgIGRlZiBidWlsZChzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIkJ1aWxk
IGFuIGlubmVyIG1lc3NhZ2UuIFJldHVybnMgYW4gX0lubmVyTWVzc2FnZSBpbnN0YW5jZSB3aGVu
Ci0gICAgICAgIHRoZSBnaXZlbiBmcmFtZSBpcyB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lLiBS
ZXR1cm5zIE5vbmUgb3RoZXJ3aXNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBmcmFt
ZTogYW4gaW5uZXIgZnJhbWUuCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEludmFsaWRG
cmFtZUV4Y2VwdGlvbjogd2hlbiByZWNlaXZlZCBpbnZhbGlkIG9wY29kZS4gKGUuZy4KLSAgICAg
ICAgICAgICAgICByZWNlaXZpbmcgbm9uIGNvbnRpbnVhdGlvbiBkYXRhIG9wY29kZSBidXQgdGhl
IGZpbiBmbGFnIG9mCi0gICAgICAgICAgICAgICAgdGhlIHByZXZpb3VzIGlubmVyIGZyYW1lIHdh
cyBub3Qgc2V0LikKLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZyYW1lX2hh
bmRsZXIoZnJhbWUpCi0KLQotY2xhc3MgX0xvZ2ljYWxTdHJlYW0oU3RyZWFtKToKLSAgICAiIiJN
aW1pY3MgdGhlIFN0cmVhbSBjbGFzcy4gVGhpcyBjbGFzcyBpbnRlcnByZXRzIG11bHRpcGxleGVk
IFdlYlNvY2tldAotICAgIGZyYW1lcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucywgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSk6Ci0g
ICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgICAgIHN0
cmVhbV9vcHRpb25zOiBTdHJlYW1PcHRpb25zIGluc3RhbmNlLgotICAgICAgICAgICAgc2VuZF9x
dW90YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90YTogSW5p
dGlhbCByZWNlaXZlIHF1b3RhLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFBoeXNpY2FsIHN0
cmVhbSBpcyByZXNwb25zaWJsZSBmb3IgbWFza2luZy4KLSAgICAgICAgc3RyZWFtX29wdGlvbnMu
dW5tYXNrX3JlY2VpdmUgPSBGYWxzZQotICAgICAgICBTdHJlYW0uX19pbml0X18oc2VsZiwgcmVx
dWVzdCwgc3RyZWFtX29wdGlvbnMpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zZWQgPSBGYWxz
ZQotICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAgICAjIC0gUHJv
dGVjdHMgX3NlbmRfY2xvc2VkIGFuZCBfc2VuZF9xdW90YQotICAgICAgICAjIC0gU2lnbmFscyB0
aGUgdGhyZWFkIHdhaXRpbmcgZm9yIHNlbmQgcXVvdGEgcmVwbGVuaXNoZWQKLSAgICAgICAgc2Vs
Zi5fc2VuZF9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLQotICAgICAgICAjIFRo
ZSBvcGNvZGUgb2YgdGhlIGZpcnN0IGZyYW1lIGluIG1lc3NhZ2VzLgotICAgICAgICBzZWxmLl9t
ZXNzYWdlX29wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAotICAgICAgICAjIFRydWUgd2hlbiB0
aGUgbGFzdCBtZXNzYWdlIHdhcyBmcmFnbWVudGVkLgotICAgICAgICBzZWxmLl9sYXN0X21lc3Nh
Z2Vfd2FzX2ZyYWdtZW50ZWQgPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEg
PSByZWNlaXZlX3F1b3RhCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9y
ZSA9IHRocmVhZGluZy5TZW1hcGhvcmUoKQotCi0gICAgICAgIHNlbGYuX2lubmVyX21lc3NhZ2Vf
YnVpbGRlciA9IF9Jbm5lck1lc3NhZ2VCdWlsZGVyKCkKLQotICAgIGRlZiBfY3JlYXRlX2lubmVy
X2ZyYW1lKHNlbGYsIG9wY29kZSwgcGF5bG9hZCwgZW5kPVRydWUpOgotICAgICAgICBmcmFtZSA9
IEZyYW1lKGZpbj1lbmQsIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9cGF5bG9hZCkKLSAgICAgICAg
Zm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnM6
Ci0gICAgICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgICAgIGlmIGxl
bihwYXlsb2FkKSAhPSBsZW4oZnJhbWUucGF5bG9hZCk6Ci0gICAgICAgICAgICByYWlzZSBNdXhV
bmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdXggZXh0ZW5zaW9uIG11c3Qg
bm90IGJlIHVzZWQgYWZ0ZXIgZXh0ZW5zaW9ucyB3aGljaCBjaGFuZ2UgJwotICAgICAgICAgICAg
ICAgICcgZnJhbWUgYm91bmRhcnknKQotCi0gICAgICAgIGZpcnN0X2J5dGUgPSAoKGZyYW1lLmZp
biA8PCA3KSB8IChmcmFtZS5yc3YxIDw8IDYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAoZnJh
bWUucnN2MiA8PCA1KSB8IChmcmFtZS5yc3YzIDw8IDQpIHwgZnJhbWUub3Bjb2RlKQotICAgICAg
ICByZXR1cm4gY2hyKGZpcnN0X2J5dGUpICsgZnJhbWUucGF5bG9hZAotCi0gICAgZGVmIF93cml0
ZV9pbm5lcl9mcmFtZShzZWxmLCBvcGNvZGUsIHBheWxvYWQsIGVuZD1UcnVlKToKLSAgICAgICAg
cGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgd3JpdGVfcG9zaXRpb24gPSAw
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBBbiBpbm5lciBmcmFtZSB3aWxsIGJlIGZy
YWdtZW50ZWQgaWYgdGhlcmUgaXMgbm8gZW5vdWdoIHNlbmQKLSAgICAgICAgICAgICMgcXVvdGEu
IFRoaXMgc2VtYXBob3JlIGVuc3VyZXMgdGhhdCBmcmFnbWVudGVkIGlubmVyIGZyYW1lcyBhcmUK
LSAgICAgICAgICAgICMgc2VudCBpbiBvcmRlciBvbiB0aGUgbG9naWNhbCBjaGFubmVsLgotICAg
ICAgICAgICAgIyBOb3RlIHRoYXQgZnJhbWVzIHRoYXQgY29tZSBmcm9tIG90aGVyIGxvZ2ljYWwg
Y2hhbm5lbHMgb3IKLSAgICAgICAgICAgICMgbXVsdGlwbGV4aW5nIGNvbnRyb2wgYmxvY2tzIGNh
biBiZSBpbnNlcnRlZCBiZXR3ZWVuIGZyYWdtZW50ZWQKLSAgICAgICAgICAgICMgaW5uZXIgZnJh
bWVzIG9uIHRoZSBwaHlzaWNhbCBjaGFubmVsLgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfaW5u
ZXJfZnJhbWVfc2VtYXBob3JlLmFjcXVpcmUoKQotCi0gICAgICAgICAgICAjIENvbnN1bWUgYW4g
b2N0ZXQgcXVvdGEgd2hlbiB0aGlzIGlzIHRoZSBmaXJzdCBmcmFnbWVudGVkIGZyYW1lLgotICAg
ICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24u
YWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2VuZF9jbG9z
ZWQpIGFuZCBzZWxmLl9zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9zZW5kX2NvbmRpdGlvbi53YWl0KCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9zZW5kX2Nsb3NlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0
aW9uICVkIGlzIGNsb3NlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QuY2hhbm5lbF9pZCkKLQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3Rh
IC09IDEKLSAgICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAgICAgd2hpbGUgd3JpdGVfcG9z
aXRpb24gPCBwYXlsb2FkX2xlbmd0aDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgICAg
ICAgICB3aGlsZSAobm90IHNlbGYuX3NlbmRfY2xvc2VkKSBhbmQgc2VsZi5fc2VuZF9xdW90YSA9
PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdObyBxdW90YS4gV2FpdGluZyBGbG93Q29udHJvbCBtZXNz
YWdlIGZvciAlZC4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlv
bi53YWl0KCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9zZW5kX2Nsb3NlZDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0aW9uICVkIGlzIGNsb3NlZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVxdWVzdC5fY2hhbm5lbF9pZCkK
LQotICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgPSBwYXlsb2FkX2xlbmd0aCAtIHdyaXRl
X3Bvc2l0aW9uCi0gICAgICAgICAgICAgICAgICAgIHdyaXRlX2xlbmd0aCA9IG1pbihzZWxmLl9z
ZW5kX3F1b3RhLCByZW1haW5pbmcpCi0gICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lX2Vu
ZCA9ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGVuZCBhbmQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICh3cml0ZV9wb3NpdGlvbiArIHdyaXRlX2xlbmd0aCA9PSBwYXlsb2FkX2xlbmd0aCkp
Ci0KLSAgICAgICAgICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9jcmVhdGVfaW5uZXJf
ZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXlsb2FkW3dyaXRlX3Bvc2l0aW9uOndyaXRlX3Bvc2l0aW9uK3dyaXRlX2xlbmd0
aF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZV9lbmQpCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgLT0gd3JpdGVfbGVuZ3RoCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29uc3VtZWQgcXVvdGE9JWQsIHJlbWFpbmluZz0l
ZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX2xlbmd0
aCwgc2VsZi5fc2VuZF9xdW90YSkpCi0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAg
ICAgICAjIFdyaXRpbmcgZGF0YSB3aWxsIGJsb2NrIHRoZSB3b3JrZXIgc28gd2UgbmVlZCB0byBy
ZWxlYXNlCi0gICAgICAgICAgICAgICAgIyBfc2VuZF9jb25kaXRpb24gYmVmb3JlIHdyaXRpbmcu
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGlubmVyIGZyYW1l
OiAlcicgJSBpbm5lcl9mcmFtZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUoaW5uZXJfZnJhbWUpCi0gICAgICAgICAgICAgICAgd3JpdGVfcG9zaXRpb24g
Kz0gd3JpdGVfbGVuZ3RoCi0KLSAgICAgICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RF
X0NPTlRJTlVBVElPTgotCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAg
ICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKGUpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUucmVsZWFzZSgpCi0KLSAg
ICBkZWYgcmVwbGVuaXNoX3NlbmRfcXVvdGEoc2VsZiwgc2VuZF9xdW90YSk6Ci0gICAgICAgICIi
IlJlcGxlbmlzaCBzZW5kIHF1b3RhLiIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNl
bGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9x
dW90YSArIHNlbmRfcXVvdGEgPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fc2VuZF9xdW90YSA9IDAKLSAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5l
bEVycm9yKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIF9E
Uk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVykKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVv
dGEgKz0gc2VuZF9xdW90YQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXBsZW5p
c2hlZCBzZW5kIHF1b3RhIGZvciBjaGFubmVsIGlkICVkOiAlZCcgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIHNlbGYuX3NlbmRfcXVv
dGEpKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24u
bm90aWZ5KCkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgZGVmIGNvbnN1bWVfcmVjZWl2ZV9xdW90YShzZWxmLCBhbW91bnQpOgotICAgICAgICAiIiJD
b25zdW1lcyByZWNlaXZlIHF1b3RhLiBSZXR1cm5zIEZhbHNlIG9uIGZhaWx1cmUuIiIiCi0KLSAg
ICAgICAgaWYgc2VsZi5fcmVjZWl2ZV9xdW90YSA8IGFtb3VudDoKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnVmlvbGF0ZSBxdW90YSBvbiBjaGFubmVsIGlkICVkOiAlZCA8ICVkJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9p
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSwg
YW1vdW50KSkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBzZWxmLl9yZWNlaXZl
X3F1b3RhIC09IGFtb3VudAotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIHNlbmRfbWVz
c2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU3RyZWFtLnNlbmRfbWVzc2FnZS4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1
ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFmdGVyIHNl
bmRpbmcgb3V0IGEgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGlmIGJpbmFyeSBhbmQg
aXNpbnN0YW5jZShtZXNzYWdlLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTWVzc2FnZSBmb3IgYmluYXJ5IGZyYW1l
IG11c3QgYmUgaW5zdGFuY2Ugb2Ygc3RyJykKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAg
ICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0gICAgICAgICAgICBtZXNzYWdlID0g
bWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4g
c2VsZi5fb3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICBtZXNz
YWdlID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKG1lc3NhZ2UsIGVuZCwgYmluYXJ5KQotCi0gICAg
ICAgIGlmIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZDoKLSAgICAgICAgICAgIGlm
IG9wY29kZSAhPSBzZWxmLl9tZXNzYWdlX29wY29kZToKLSAgICAgICAgICAgICAgICByYWlzZSBC
YWRPcGVyYXRpb25FeGNlcHRpb24oJ01lc3NhZ2UgdHlwZXMgYXJlIGRpZmZlcmVudCBpbiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcmFtZXMgZm9yIHRo
ZSBzYW1lIG1lc3NhZ2UnKQotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2Rl
ID0gb3Bjb2RlCi0KLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUob3Bjb2RlLCBtZXNz
YWdlLCBlbmQpCi0gICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZCA9IG5v
dCBlbmQKLQotICAgIGRlZiBfcmVjZWl2ZV9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJp
ZGVzIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZS4KLQotICAgICAgICBJbiBhZGRpdGlvbiB0byBjYWxs
IFN0cmVhbS5fcmVjZWl2ZV9mcmFtZSwgdGhpcyBtZXRob2QgYWRkcyB0aGUgYW1vdW50Ci0gICAg
ICAgIG9mIHBheWxvYWQgdG8gcmVjZWl2aW5nIHF1b3RhIGFuZCBzZW5kcyBGbG93Q29udHJvbCB0
byB0aGUgY2xpZW50LgotICAgICAgICBXZSBuZWVkIHRvIGRvIGl0IGhlcmUgYmVjYXVzZSBTdHJl
YW0ucmVjZWl2ZV9tZXNzYWdlKCkgaGFuZGxlcwotICAgICAgICBjb250cm9sIGZyYW1lcyBpbnRl
cm5hbGx5LgotICAgICAgICAiIiIKLQotICAgICAgICBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2
MSwgcnN2MiwgcnN2MyA9IFN0cmVhbS5fcmVjZWl2ZV9mcmFtZShzZWxmKQotICAgICAgICBhbW91
bnQgPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgIyBSZXBsZW5pc2ggZXh0cmEgb25lIG9jdGV0IHdo
ZW4gcmVjZWl2aW5nIHRoZSBmaXJzdCBmcmFnbWVudGVkIGZyYW1lLgotICAgICAgICBpZiBvcGNv
ZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICBhbW91bnQgKz0g
MQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhICs9IGFtb3VudAotICAgICAgICBmcmFtZV9k
YXRhID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50KQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgZmxvdyBjb250cm9sIGZvciAlZCwgcmVwbGVuaXNo
ZWQ9JWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5u
ZWxfaWQsIGFtb3VudCkpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZV9j
b250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLSAgICAgICAgcmV0dXJuIG9wY29kZSwgcGF5bG9hZCwg
ZmluLCByc3YxLCByc3YyLCByc3YzCi0KLSAgICBkZWYgX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUo
c2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLl9nZXRfbWVzc2FnZV9m
cm9tX2ZyYW1lLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5l
cl9tZXNzYWdlID0gc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyLmJ1aWxkKGZyYW1lKQotICAg
ICAgICBleGNlcHQgSW52YWxpZEZyYW1lRXhjZXB0aW9uOgotICAgICAgICAgICAgcmFpc2UgTG9n
aWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxf
aWQsIF9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04pCi0KLSAgICAgICAgaWYgaW5uZXJfbWVz
c2FnZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgc2VsZi5fb3Jp
Z2luYWxfb3Bjb2RlID0gaW5uZXJfbWVzc2FnZS5vcGNvZGUKLSAgICAgICAgcmV0dXJuIGlubmVy
X21lc3NhZ2UucGF5bG9hZAotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAg
ICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UuIiIiCi0KLSAgICAgICAgIyBK
dXN0IGNhbGwgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpLCBidXQgY2F0Y2gKLSAgICAgICAgIyBM
b2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiwgd2hpY2ggaXMgcmFpc2VkIHdoZW4gdGhl
IGxvZ2ljYWwKLSAgICAgICAgIyBjb25uZWN0aW9uIGhhcyBjbG9zZWQgZ3JhY2VmdWxseS4KLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2Uoc2Vs
ZikKLSAgICAgICAgZXhjZXB0IExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUsIHJl
YXNvbik6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX3NlbmRfY2xvc2luZ19oYW5kc2hh
a2UuIiIiCi0KLSAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNv
ZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGNsb3Npbmcg
aGFuZHNoYWtlIGZvciAlZDogKCVyLCAlciknICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGNvZGUsIHJlYXNvbikpCi0gICAgICAgIHNlbGYu
X3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIGVuZD1UcnVlKQot
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICBk
ZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFt
LnNlbmRfcGluZyIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBwaW5n
IG9uIGxvZ2ljYWwgY2hhbm5lbCAlZDogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGJvZHkpKQotICAgICAgICBzZWxmLl93cml0ZV9p
bm5lcl9mcmFtZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIGVuZD1UcnVlKQotCi0gICAgICAg
IHNlbGYuX3BpbmdfcXVldWUuYXBwZW5kKGJvZHkpCi0KLSAgICBkZWYgX3NlbmRfcG9uZyhzZWxm
LCBib2R5KToKLSAgICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5fc2VuZF9wb25nIiIiCi0KLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIHBvbmcgb24gbG9naWNhbCBjaGFubmVs
ICVkOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hh
bm5lbF9pZCwgYm9keSkpCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5P
UENPREVfUE9ORywgYm9keSwgZW5kPVRydWUpCi0KLSAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihz
ZWxmLCBjb2RlPWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAg
ICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbi4iIiIKLQotICAgICAgICAj
IFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbG9z
aW5nIGxvZ2ljYWwgY29ubmVjdGlvbiAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90
ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgZGVmIHN0b3Bfc2VuZGluZyhzZWxmKToKLSAgICAgICAg
IiIiU3RvcHMgYWNjZXB0aW5nIG5ldyBzZW5kIG9wZXJhdGlvbiAoX3dyaXRlX2lubmVyX2ZyYW1l
KS4iIiIKLQotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAg
c2VsZi5fc2VuZF9jbG9zZWQgPSBUcnVlCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLm5v
dGlmeSgpCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNz
IF9PdXRnb2luZ0RhdGEob2JqZWN0KToKLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGRh
dGEgdG8gYmUgc2VudCB2aWEgcGh5c2ljYWwgY29ubmVjdGlvbiBhbmQKLSAgICBvcmlnaW4gb2Yg
dGhlIGRhdGEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwg
ZGF0YSk6Ci0gICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgc2Vs
Zi5kYXRhID0gZGF0YQotCi0KLWNsYXNzIF9QaHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIodGhyZWFk
aW5nLlRocmVhZCk6Ci0gICAgIiIiQSB0aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3Igd3Jp
dGluZyBkYXRhIHRvIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0KLSAgICBUT0RPKGJhc2hpKTogTWFr
ZSBzdXJlIHRoZXJlIGlzIG5vIHRocmVhZC1zYWZldHkgcHJvYmxlbSB3aGVuIHRoZSByZWFkZXIK
LSAgICB0aHJlYWQgcmVhZHMgZGF0YSBmcm9tIHRoZSBzYW1lIHNvY2tldCBhdCBhIHRpbWUuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4X2hhbmRsZXIpOgotICAgICAgICAi
IiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
dXhfaGFuZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0g
dXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0g
bXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLQotICAgICAgICAjIFdo
ZW4gc2V0LCBtYWtlIHRoaXMgdGhyZWFkIHN0b3AgYWNjZXB0aW5nIG5ldyBkYXRhLCBmbHVzaCBw
ZW5kaW5nCi0gICAgICAgICMgZGF0YSBhbmQgZXhpdC4KLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1
ZXN0ZWQgPSBGYWxzZQotICAgICAgICAjIFRoZSBjbG9zZSBjb2RlIG9mIHRoZSBwaHlzaWNhbCBj
b25uZWN0aW9uLgotICAgICAgICBzZWxmLl9jbG9zZV9jb2RlID0gY29tbW9uLlNUQVRVU19OT1JN
QUxfQ0xPU1VSRQotICAgICAgICAjIERlcXVlIGZvciBwYXNzaW5nIHdyaXRlIGRhdGEuIEl0J3Mg
cHJvdGVjdGVkIGJ5IF9kZXF1ZV9jb25kaXRpb24KLSAgICAgICAgIyB1bnRpbCBfc3RvcF9yZXF1
ZXN0ZWQgaXMgc2V0LgotICAgICAgICBzZWxmLl9kZXF1ZSA9IGNvbGxlY3Rpb25zLmRlcXVlKCkK
LSAgICAgICAgIyAtIFByb3RlY3RzIF9kZXF1ZSwgX3N0b3BfcmVxdWVzdGVkIGFuZCBfY2xvc2Vf
Y29kZQotICAgICAgICAjIC0gU2lnbmFscyB0aHJlYWRzIHdhaXRpbmcgZm9yIHRoZW0gdG8gYmUg
YXZhaWxhYmxlCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25k
aXRpb24oKQotCi0gICAgZGVmIHB1dF9vdXRnb2luZ19kYXRhKHNlbGYsIGRhdGEpOgotICAgICAg
ICAiIiJQdXRzIG91dGdvaW5nIGRhdGEuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRh
dGE6IF9PdXRnb2luZ0RhdGEgaW5zdGFuY2UuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAg
ICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHRoZSB0aHJlYWQgaGFzIGJlZW4gcmVxdWVz
dGVkIHRvCi0gICAgICAgICAgICAgICAgdGVybWluYXRlLgotICAgICAgICAiIiIKLQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAg
ICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICByYWlzZSBC
YWRPcGVyYXRpb25FeGNlcHRpb24oJ0Nhbm5vdCB3cml0ZSBkYXRhIGFueW1vcmUnKQotCi0gICAg
ICAgICAgICBzZWxmLl9kZXF1ZS5hcHBlbmQoZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX2RlcXVl
X2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF93cml0ZV9kYXRhKHNlbGYsIG91
dGdvaW5nX2RhdGEpOgotICAgICAgICBtZXNzYWdlID0gKF9lbmNvZGVfY2hhbm5lbF9pZChvdXRn
b2luZ19kYXRhLmNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRh
LmRhdGEpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnBoeXNp
Y2FsX3N0cmVhbS5zZW5kX21lc3NhZ2UoCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1tZXNzYWdl
LCBlbmQ9VHJ1ZSwgYmluYXJ5PVRydWUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0g
ICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6ICcgJQotICAgICAgICAgICAgICAg
IChzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksIGUp
Ci0gICAgICAgICAgICByYWlzZQotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IEl0IHdvdWxkIGJl
IGJldHRlciB0byBibG9jayB0aGUgdGhyZWFkIHRoYXQgc2VuZHMKLSAgICAgICAgIyBjb250cm9s
IGRhdGEgYXMgd2VsbC4KLSAgICAgICAgaWYgb3V0Z29pbmdfZGF0YS5jaGFubmVsX2lkICE9IF9D
T05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlf
d3JpdGVfZGF0YV9kb25lKG91dGdvaW5nX2RhdGEuY2hhbm5lbF9pZCkKLQotICAgIGRlZiBydW4o
c2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAg
ICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZGVxdWUpID09IDA6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi53YWl0KCkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKLQotICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEgPSBzZWxmLl9kZXF1ZS5wb3Bs
ZWZ0KCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG91dGdvaW5nX2RhdGEpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQotCi0gICAgICAgICAgICAj
IEZsdXNoIGRlcXVlLgotICAgICAgICAgICAgIwotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50
LCBzZWxmLl9kZXF1ZV9jb25kaXRpb24gaXMgYWx3YXlzIGFjcXVpcmVkLgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIHdoaWxlIGxlbihzZWxmLl9kZXF1ZSkgPiAwOgotICAgICAg
ICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2VsZi5fZGVxdWUucG9wbGVmdCgpCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3V0Z29pbmdfZGF0YSkKLSAgICAgICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVh
c2UoKQotCi0gICAgICAgICAgICAjIENsb3NlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIyBEb24ndCB3YWl0IHRoZSByZXNwb25zZSBoZXJl
LiBUaGUgcmVzcG9uc2Ugd2lsbCBiZSByZWFkCi0gICAgICAgICAgICAgICAgIyBieSB0aGUgcmVh
ZGVyIHRocmVhZC4KLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xvc2Vf
Y29kZSwgd2FpdF9yZXNwb25zZT1GYWxzZSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24s
IGU6Ci0gICAgICAgICAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIGNsb3NlIHRoZSBwaHlzaWNhbCBjb25uZWN0
aW9uOiAlcicgJSBlKQotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd3JpdGVyX2RvbmUoKQotCi0gICAg
ZGVmIHN0b3Aoc2VsZiwgY2xvc2VfY29kZT1jb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKToK
LSAgICAgICAgIiIiU3RvcHMgdGhlIHdyaXRlciB0aHJlYWQuIiIiCi0KLSAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9
IFRydWUKLSAgICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNsb3NlX2NvZGUKLSAgICAgICAgc2Vs
Zi5fZGVxdWVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlv
bi5yZWxlYXNlKCkKLQotCi1jbGFzcyBfUGh5c2ljYWxDb25uZWN0aW9uUmVhZGVyKHRocmVhZGlu
Zy5UaHJlYWQpOgotICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJlYWRp
bmcgZGF0YSBmcm9tIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbXV4X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3Rh
bmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFuZGxlcjogX011eEhhbmRs
ZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAg
c2VsZi5zZXREYWVtb24oVHJ1ZSkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcGh5c2ljYWxfc3RyZWFt
ID0gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtCi0gICAgICAgICAgICAgICAgbWVz
c2FnZSA9IHBoeXNpY2FsX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgICAg
IGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ICAgICAgICAjIEJlbG93IGhhcHBlbnMgb25seSB3aGVuIGEgZGF0YSBtZXNzYWdlIGlzIHJlY2Vp
dmVkLgotICAgICAgICAgICAgICAgIG9wY29kZSA9IHBoeXNpY2FsX3N0cmVhbS5nZXRfbGFzdF9y
ZWNlaXZlZF9vcGNvZGUoKQotICAgICAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BD
T0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9w
aHlzaWNhbF9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9J
TlZBTElEX0VOQ0FQU1VMQVRJTkdfTUVTU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdS
ZWNlaXZlZCBhIHRleHQgbWVzc2FnZSBvbiBwaHlzaWNhbCBjb25uZWN0aW9uJykKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgZXhjZXB0IENvbm5lY3Rpb25UZXJtaW5h
dGVkRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMn
LCBlKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaF9tZXNzYWdlKG1lc3NhZ2UpCi0gICAg
ICAgICAgICBleGNlcHQgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsIGU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9waHlzaWNhbF9jb25uZWN0aW9uKAotICAgICAgICAg
ICAgICAgICAgICBlLmRyb3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICBleGNlcHQgTG9naWNhbENoYW5uZWxFcnJvciwgZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKLSAgICAgICAgICAg
ICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRyb3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAg
ICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV9yZWFkZXJfZG9uZSgpCi0KLQotY2xhc3MgX1dv
cmtlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNp
YmxlIGZvciBydW5uaW5nIHRoZSBjb3JyZXNwb25kaW5nIGFwcGxpY2F0aW9uCi0gICAgaGFuZGxl
ci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlciwgcmVxdWVz
dCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAg
ICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRs
ZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAg
ICBzZWxmLnNldERhZW1vbihUcnVlKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdMb2dpY2FsIGNoYW5uZWwgd29ya2VyIHN0YXJ0ZWQuIChpZD0lZCkn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBOb24tY3JpdGljYWwgZXhjZXB0aW9ucyB3aWxs
IGJlIGhhbmRsZWQgYnkgZGlzcGF0Y2hlci4KLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVy
LmRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShzZWxmLl9yZXF1ZXN0KQotICAgICAgICBleGNlcHQg
TG9naWNhbENoYW5uZWxFcnJvciwgZToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZh
aWxfbG9naWNhbF9jaGFubmVsKAotICAgICAgICAgICAgICAgIGUuY2hhbm5lbF9pZCwgZS5kcm9w
X2NvZGUsIGUubWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX211
eF9oYW5kbGVyLm5vdGlmeV93b3JrZXJfZG9uZShzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0K
LQotY2xhc3MgX011eEhhbmRzaGFrZXIoaHliaS5IYW5kc2hha2VyKToKLSAgICAiIiJPcGVuaW5n
IGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIG11bHRpcGxleGluZy4iIiIKLQotICAgIF9EVU1NWV9X
RUJTT0NLRVRfS0VZID0gJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PScKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyLCBzZW5kX3F1b3RhLCByZWNlaXZlX3F1b3Rh
KToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5jZS4KLSAgICAgICAgICAg
IGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgot
ICAgICAgICAgICAgc2VuZF9xdW90YTogSW5pdGlhbCBzZW5kIHF1b3RhLgotICAgICAgICAgICAg
cmVjZWl2ZV9xdW90YTogSW5pdGlhbCByZWNlaXZlIHF1b3RhLgotICAgICAgICAiIiIKLQotICAg
ICAgICBoeWJpLkhhbmRzaGFrZXIuX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgc2VsZi5fcmVj
ZWl2ZV9xdW90YSA9IHJlY2VpdmVfcXVvdGEKLQotICAgICAgICAjIEFwcGVuZCBoZWFkZXJzIHdo
aWNoIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gaGFuZHNoYWtlIGZpZWxkIG9mCi0gICAgICAg
ICMgQWRkQ2hhbm5lbFJlcXVlc3QuCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB3
aGV0aGVyIHdlIHNob3VsZCByYWlzZSBleGNlcHRpb24gd2hlbgotICAgICAgICAjICAgICB0aGVz
ZSBoZWFkZXJzIGFyZSBpbmNsdWRlZCBhbHJlYWR5LgotICAgICAgICByZXF1ZXN0LmhlYWRlcnNf
aW5bY29tbW9uLlVQR1JBREVfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIGNvbW1vbi5XRUJTT0NL
RVRfVVBHUkFERV9UWVBFKQotICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLlNFQ19X
RUJTT0NLRVRfVkVSU0lPTl9IRUFERVJdID0gKAotICAgICAgICAgICAgc3RyKGNvbW1vbi5WRVJT
SU9OX0hZQklfTEFURVNUKSkKLSAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5TRUNf
V0VCU09DS0VUX0tFWV9IRUFERVJdID0gKAotICAgICAgICAgICAgc2VsZi5fRFVNTVlfV0VCU09D
S0VUX0tFWSkKLQotICAgIGRlZiBfY3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0aW9ucyk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuSGFuZHNoYWtlci5fY3JlYXRlX3N0cmVhbS4iIiIK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NyZWF0aW5nIGxvZ2ljYWwgc3RyZWFtIGZv
ciAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVs
X2lkKQotICAgICAgICByZXR1cm4gX0xvZ2ljYWxTdHJlYW0oCi0gICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucywgc2VsZi5fc2VuZF9xdW90YSwKLSAgICAgICAgICAgIHNl
bGYuX3JlY2VpdmVfcXVvdGEpCi0KLSAgICBkZWYgX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2Uo
c2VsZiwgYWNjZXB0KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5fY3JlYXRlX2hhbmRzaGFr
ZV9yZXNwb25zZS4iIiIKLQotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgcmVzcG9u
c2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nKQotCi0gICAg
ICAgICMgVXBncmFkZSBhbmQgU2VjLVdlYlNvY2tldC1BY2NlcHQgc2hvdWxkIGJlIGV4Y2x1ZGVk
LgotICAgICAgICByZXNwb25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAg
Y29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUp
KQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgKLSAgICAgICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIsCi0gICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAgIGlmIChzZWxmLl9yZXF1ZXN0Lndz
X2V4dGVuc2lvbnMgaXMgbm90IE5vbmUgYW5kCi0gICAgICAgICAgICBsZW4oc2VsZi5fcmVxdWVz
dC53c19leHRlbnNpb25zKSAhPSAwKToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6
ICVzXHJcbicgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5T
SU9OU19IRUFERVIsCi0gICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNl
bGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xy
XG4nKQotCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3BvbnNlKQotCi0gICAgZGVmIF9zZW5k
X2hhbmRzaGFrZShzZWxmLCBhY2NlcHQpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLkhhbmRz
aGFrZXIuX3NlbmRfaGFuZHNoYWtlLiIiIgotCi0gICAgICAgICMgRG9uJ3Qgc2VuZCBoYW5kc2hh
a2UgcmVzcG9uc2UgZm9yIHRoZSBkZWZhdWx0IGNoYW5uZWwKLSAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC5jaGFubmVsX2lkID09IF9ERUZBVUxUX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICByZXR1
cm4KLQotICAgICAgICBoYW5kc2hha2VfcmVzcG9uc2UgPSBzZWxmLl9jcmVhdGVfaGFuZHNoYWtl
X3Jlc3BvbnNlKGFjY2VwdCkKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZV9yZXNwb25zZSkKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGhhbmRzaGFrZSByZXNwb25zZSBmb3Ig
JWQ6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkLCBmcmFtZV9kYXRhKSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndy
aXRlX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0KLWNsYXNzIF9Mb2dpY2FsQ2hhbm5lbERh
dGEob2JqZWN0KToKLSAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGFi
b3V0IGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0LCB3b3JrZXIpOgotICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAg
IHNlbGYud29ya2VyID0gd29ya2VyCi0gICAgICAgIHNlbGYuZHJvcF9jb2RlID0gX0RST1BfQ09E
RV9OT1JNQUxfQ0xPU1VSRQotICAgICAgICBzZWxmLmRyb3BfbWVzc2FnZSA9ICcnCi0KLQotY2xh
c3MgX0hhbmRzaGFrZURlbHRhQmFzZShvYmplY3QpOgotICAgICIiIkEgY2xhc3MgdGhhdCBob2xk
cyBpbmZvcm1hdGlvbiBmb3IgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgaGVhZGVycyk6Ci0gICAgICAgIHNlbGYuX2hlYWRlcnMgPSBoZWFkZXJz
Ci0KLSAgICBkZWYgY3JlYXRlX2hlYWRlcnMoc2VsZiwgZGVsdGE9Tm9uZSk6Ci0gICAgICAgICIi
IkNyZWF0ZXMgcmVxdWVzdCBoZWFkZXJzIGZvciBhbiBBZGRDaGFubmVsUmVxdWVzdCB0aGF0IGhh
cwotICAgICAgICBkZWx0YS1lbmNvZGVkIGhhbmRzaGFrZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgZGVsdGE6IGhlYWRlcnMgc2hvdWxkIGJlIG92ZXJyaWRkZW4uCi0gICAgICAgICIi
IgotCi0gICAgICAgIGhlYWRlcnMgPSBjb3B5LmNvcHkoc2VsZi5faGVhZGVycykKLSAgICAgICAg
aWYgZGVsdGE6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBkZWx0YS5pdGVtcygpOgot
ICAgICAgICAgICAgICAgICMgVGhlIHNwZWMgcmVxdWlyZXMgdGhhdCBhIGhlYWRlciB3aXRoIGFu
IGVtcHR5IHZhbHVlIGlzCi0gICAgICAgICAgICAgICAgIyByZW1vdmVkIGZyb20gdGhlIGRlbHRh
IGJhc2UuCi0gICAgICAgICAgICAgICAgaWYgbGVuKHZhbHVlKSA9PSAwIGFuZCBoZWFkZXJzLmhh
c19rZXkoa2V5KToKLSAgICAgICAgICAgICAgICAgICAgZGVsIGhlYWRlcnNba2V5XQotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IHZhbHVl
Ci0gICAgICAgIHJldHVybiBoZWFkZXJzCi0KLQotY2xhc3MgX011eEhhbmRsZXIob2JqZWN0KToK
LSAgICAiIiJNdWx0aXBsZXhpbmcgaGFuZGxlci4gV2hlbiBhIGhhbmRsZXIgc3RhcnRzLCBpdCBs
YXVuY2hlcyB0aHJlZQotICAgIHRocmVhZHM7IHRoZSByZWFkZXIgdGhyZWFkLCB0aGUgd3JpdGVy
IHRocmVhZCwgYW5kIGEgd29ya2VyIHRocmVhZC4KLQotICAgIFRoZSByZWFkZXIgdGhyZWFkIHJl
YWRzIGRhdGEgZnJvbSB0aGUgcGh5c2ljYWwgc3RyZWFtLCBpLmUuLCB0aGUKLSAgICB3c19zdHJl
YW0gb2JqZWN0IG9mIHRoZSB1bmRlcmx5aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uLiBUaGUgcmVh
ZGVyCi0gICAgdGhyZWFkIGludGVycHJldHMgbXVsdGlwbGV4ZWQgZnJhbWVzIGFuZCBkaXNwYXRj
aGVzIHRoZW0gdG8gbG9naWNhbAotICAgIGNoYW5uZWxzLiBNZXRob2RzIG9mIHRoaXMgY2xhc3Mg
YXJlIG1vc3RseSBjYWxsZWQgYnkgdGhlIHJlYWRlciB0aHJlYWQuCi0KLSAgICBUaGUgd3JpdGVy
IHRocmVhZCBzZW5kcyBtdWx0aXBsZXhlZCBmcmFtZXMgd2hpY2ggYXJlIGNyZWF0ZWQgYnkKLSAg
ICBsb2dpY2FsIGNoYW5uZWxzIHZpYSB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgIFRo
ZSB3b3JrZXIgdGhyZWFkIGxhdW5jaGVkIGF0IHRoZSBzdGFydGluZyBwb2ludCBoYW5kbGVzIHRo
ZQotICAgICJJbXBsaWNpdGx5IE9wZW5lZCBDb25uZWN0aW9uIi4gSWYgbXVsdGlwbGV4aW5nIGhh
bmRsZXIgcmVjZWl2ZXMKLSAgICBhbiBBZGRDaGFubmVsUmVxdWVzdCBhbmQgYWNjZXB0cyBpdCwg
dGhlIGhhbmRsZXIgd2lsbCBsYXVuY2ggYSBuZXcgd29ya2VyCi0gICAgdGhyZWFkIGFuZCBkaXNw
YXRjaCB0aGUgcmVxdWVzdCB0byBpdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBkaXNwYXRjaGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5j
ZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1
ZXN0IG9mIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAgICAgZGlzcGF0Y2hlcjog
RGlzcGF0Y2hlciBpbnN0YW5jZSAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5k
aXNwYXRjaGVyID0gZGlzcGF0Y2hlcgotICAgICAgICBzZWxmLnBoeXNpY2FsX2Nvbm5lY3Rpb24g
PSByZXF1ZXN0LmNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5waHlzaWNhbF9zdHJlYW0gPSByZXF1
ZXN0LndzX3N0cmVhbQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dn
ZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVscyA9IHt9Ci0gICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0g
ICAgICAgICMgSG9sZHMgY2xpZW50J3MgaW5pdGlhbCBxdW90YQotICAgICAgICBzZWxmLl9jaGFu
bmVsX3Nsb3RzID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICBzZWxmLl9oYW5kc2hha2Vf
YmFzZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0g
RmFsc2UKLSAgICAgICAgc2VsZi5fcmVhZGVyID0gTm9uZQotICAgICAgICBzZWxmLl93cml0ZXIg
PSBOb25lCi0KLSAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgICIiIlN0YXJ0cyB0aGUgaGFu
ZGxlci4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBNdXhVbmV4cGVjdGVkRXhjZXB0
aW9uOiB3aGVuIHRoZSBoYW5kbGVyIGFscmVhZHkgc3RhcnRlZCwgb3Igd2hlbgotICAgICAgICAg
ICAgICAgIG9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBkZWZhdWx0IGNoYW5uZWwgZmFpbHMuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRlciBvciBzZWxmLl93cml0ZXI6Ci0g
ICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKCdNdXhIYW5kbGVyIGFscmVh
ZHkgc3RhcnRlZCcpCi0KLSAgICAgICAgc2VsZi5fcmVhZGVyID0gX1BoeXNpY2FsQ29ubmVjdGlv
blJlYWRlcihzZWxmKQotICAgICAgICBzZWxmLl93cml0ZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9u
V3JpdGVyKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRlci5zdGFydCgpCi0gICAgICAgIHNlbGYu
X3dyaXRlci5zdGFydCgpCi0KLSAgICAgICAgIyBDcmVhdGUgIkltcGxpY2l0bHkgT3BlbmVkIENv
bm5lY3Rpb24iLgotICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24gPSBfTG9naWNhbENvbm5lY3Rp
b24oc2VsZiwgX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLSAgICAgICAgaGVhZGVycyA9IGNvcHkuY29w
eShzZWxmLm9yaWdpbmFsX3JlcXVlc3QuaGVhZGVyc19pbikKLSAgICAgICAgIyBBZGQgZXh0ZW5z
aW9ucyBmb3IgbG9naWNhbCBjaGFubmVsLgotICAgICAgICBoZWFkZXJzW2NvbW1vbi5TRUNfV0VC
U09DS0VUX0VYVEVOU0lPTlNfSEVBREVSXSA9ICgKLSAgICAgICAgICAgIGNvbW1vbi5mb3JtYXRf
ZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubXV4X3By
b2Nlc3Nvci5leHRlbnNpb25zKCkpKQotICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9I
YW5kc2hha2VEZWx0YUJhc2UoaGVhZGVycykKLSAgICAgICAgbG9naWNhbF9yZXF1ZXN0ID0gX0xv
Z2ljYWxSZXF1ZXN0KAotICAgICAgICAgICAgX0RFRkFVTFRfQ0hBTk5FTF9JRCwKLSAgICAgICAg
ICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tZXRob2QsCi0gICAgICAgICAgICBzZWxmLm9yaWdp
bmFsX3JlcXVlc3QudXJpLAotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnByb3Rv
Y29sLAotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoKSwK
LSAgICAgICAgICAgIGxvZ2ljYWxfY29ubmVjdGlvbikKLSAgICAgICAgIyBDbGllbnQncyBzZW5k
IHF1b3RhIGZvciB0aGUgaW1wbGljaXRseSBvcGVuZWQgY29ubmVjdGlvbiBpcyB6ZXJvLAotICAg
ICAgICAjIGJ1dCB3ZSB3aWxsIHNlbmQgRmxvd0NvbnRyb2wgbGF0ZXIgc28gc2V0IHRoZSBpbml0
aWFsIHF1b3RhIHRvCi0gICAgICAgICMgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVC4KLSAgICAg
ICAgc2VsZi5fY2hhbm5lbF9zbG90cy5hcHBlbmQoX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LSAgICAgICAgc2VuZF9xdW90YSA9IHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29y
LnF1b3RhKCkKLSAgICAgICAgaWYgbm90IHNlbGYuX2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9y
ZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0LCBzZW5kX3F1b3RhPXNlbmRfcXVv
dGEpOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnRmFpbGVkIGhhbmRzaGFrZSBvbiB0aGUgZGVmYXVsdCBjaGFubmVsIGlkJykKLSAg
ICAgICAgc2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChsb2dpY2FsX3JlcXVlc3QpCi0KLSAgICAg
ICAgIyBTZW5kIEZsb3dDb250cm9sIGZvciB0aGUgaW1wbGljaXRseSBvcGVuZWQgY29ubmVjdGlv
bi4KLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9sKF9ERUZBVUxUX0NI
QU5ORUxfSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU5J
VElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY29ubmVjdGlv
bi53cml0ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRlZiBhZGRfY2hhbm5lbF9z
bG90cyhzZWxmLCBzbG90cywgc2VuZF9xdW90YSk6Ci0gICAgICAgICIiIkFkZHMgY2hhbm5lbCBz
bG90cy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgc2xvdHM6IG51bWJlciBvZiBzbG90
cyB0byBiZSBhZGRlZC4KLSAgICAgICAgICAgIHNlbmRfcXVvdGE6IGluaXRpYWwgc2VuZCBxdW90
YSBmb3Igc2xvdHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMu
ZXh0ZW5kKFtzZW5kX3F1b3RhXSAqIHNsb3RzKQotICAgICAgICAjIFNlbmQgTmV3Q2hhbm5lbFNs
b3QgdG8gY2xpZW50LgotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9uZXdfY2hhbm5lbF9z
bG90KHNsb3RzLCBzZW5kX3F1b3RhKQotICAgICAgICBzZWxmLnNlbmRfY29udHJvbF9kYXRhKGZy
YW1lX2RhdGEpCi0KLSAgICBkZWYgd2FpdF91bnRpbF9kb25lKHNlbGYsIHRpbWVvdXQ9Tm9uZSk6
Ci0gICAgICAgICIiIldhaXRzIHVudGlsIGFsbCB3b3JrZXJzIGFyZSBkb25lLiBSZXR1cm5zIEZh
bHNlIHdoZW4gdGltZW91dCBoYXMKLSAgICAgICAgb2NjdXJyZWQuIFJldHVybnMgVHJ1ZSBvbiBz
dWNjZXNzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICB0aW1lb3V0OiB0aW1lb3V0IGlu
IHNlYy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIGxlbihzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzKSA+IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdXYWl0aW5nIHdvcmtlcnMoJWQpLi4uJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxlbihzZWxmLl9sb2dpY2FsX2NoYW5uZWxzKSkKLSAgICAgICAgICAgICAgICBz
ZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBGYWxzZQotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLndhaXQodGltZW91dCkKLSAgICAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkOgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgd29ya2VyKHMpIHRpbWVk
IG91dCcpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICAgICAgIyBGbHVzaCBwZW5kaW5nIG91dGdvaW5nIGRhdGEKLSAgICAgICAgc2VsZi5f
d3JpdGVyLnN0b3AoKQotICAgICAgICBzZWxmLl93cml0ZXIuam9pbigpCi0KLSAgICAgICAgcmV0
dXJuIFRydWUKLQotICAgIGRlZiBub3RpZnlfd3JpdGVfZGF0YV9kb25lKHNlbGYsIGNoYW5uZWxf
aWQpOgotICAgICAgICAiIiJDYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiBhIHdyaXRl
IG9wZXJhdGlvbiBoYXMgZG9uZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgY2hhbm5l
bF9pZDogb2JqZWN0aXZlIGNoYW5uZWwgaWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQot
ICAgICAgICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAg
ICAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5l
bF9pZF0KLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLm9u
X3dyaXRlX2RhdGFfZG9uZSgpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnU2VlbXMgdGhhdCBsb2dpY2FsIGNoYW5uZWwgZm9yICVkIGhhcyBn
b25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGNoYW5uZWxfaWQpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBzZW5kX2NvbnRyb2xfZGF0YShzZWxmLCBkYXRhKToK
LSAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4KLQotICAgICAg
ICBBcmdzOgotICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgotICAgICAgICAiIiIK
LQotICAgICAgICBzZWxmLl93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgK
LSAgICAgICAgICAgICAgICBjaGFubmVsX2lkPV9DT05UUk9MX0NIQU5ORUxfSUQsIGRhdGE9ZGF0
YSkpCi0KLSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIGNoYW5uZWxfaWQsIGRhdGEpOgotICAgICAg
ICAiIiJTZW5kcyBkYXRhIHZpYSBnaXZlbiBsb2dpY2FsIGNoYW5uZWwuIFRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBieQotICAgICAgICB3b3JrZXIgdGhyZWFkcy4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgY2hhbm5lbF9pZDogb2JqZWN0aXZlIGNoYW5uZWwgaWQuCi0gICAgICAgICAgICBk
YXRhOiBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3dyaXRl
ci5wdXRfb3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRhKAotICAgICAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9Y2hhbm5lbF9pZCwgZGF0YT1kYXRhKSkKLQotICAgIGRlZiBfc2VuZF9kcm9wX2NoYW5u
ZWwoc2VsZiwgY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICAgICAgZnJh
bWVfZGF0YSA9IF9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2Up
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdTZW5kaW5nIGRyb3Ag
Y2hhbm5lbCBmb3IgY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVsX2lkKQotICAgICAgICBzZWxmLnNl
bmRfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgX3NlbmRfZXJyb3JfYWRkX2No
YW5uZWxfcmVzcG9uc2Uoc2VsZiwgY2hhbm5lbF9pZCwgc3RhdHVzPU5vbmUpOgotICAgICAgICBp
ZiBzdGF0dXMgaXMgTm9uZToKLSAgICAgICAgICAgIHN0YXR1cyA9IGNvbW1vbi5IVFRQX1NUQVRV
U19CQURfUkVRVUVTVAotCi0gICAgICAgIGlmIHN0YXR1cyBpbiBfSFRUUF9CQURfUkVTUE9OU0Vf
TUVTU0FHRVM6Ci0gICAgICAgICAgICBtZXNzYWdlID0gX0hUVFBfQkFEX1JFU1BPTlNFX01FU1NB
R0VTW3N0YXR1c10KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnUmVzcG9uc2UgbWVzc2FnZSBmb3IgJWQgaXMgbm90IGZvdW5kJyAlIHN0YXR1cykKLSAgICAg
ICAgICAgIG1lc3NhZ2UgPSAnPz8/JwotCi0gICAgICAgIHJlc3BvbnNlID0gJ0hUVFAvMS4xICVk
ICVzXHJcblxyXG4nICUgKHN0YXR1cywgbWVzc2FnZSkKLSAgICAgICAgZnJhbWVfZGF0YSA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9cmVzcG9u
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
Y29kaW5nPTAsIHJlamVjdGVkPVRydWUpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEo
ZnJhbWVfZGF0YSkKLQotICAgIGRlZiBfY3JlYXRlX2xvZ2ljYWxfcmVxdWVzdChzZWxmLCBibG9j
ayk6Ci0gICAgICAgIGlmIGJsb2NrLmNoYW5uZWxfaWQgPT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoK
LSAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9y
IHdpdGggY29kZSAyMDA2Ci0gICAgICAgICAgICAjIGluc3RlYWQgb2YgTXV4VW5leHBlY3RlZEV4
Y2VwdGlvbi4KLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1JlY2VpdmVkIHRoZSBjb250cm9sIGNoYW5uZWwgaWQgKDApIGFzIG9iamVj
dGl2ZSBjaGFubmVsICcKLSAgICAgICAgICAgICAgICAnaWQgZm9yIEFkZENoYW5uZWwnKQotCi0g
ICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID4gX0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQToKLSAg
ICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAg
IF9EUk9QX0NPREVfVU5LTk9XTl9SRVFVRVNUX0VOQ09ESU5HKQotCi0gICAgICAgIG1ldGhvZCwg
cGF0aCwgdmVyc2lvbiwgaGVhZGVycyA9IF9wYXJzZV9yZXF1ZXN0X3RleHQoCi0gICAgICAgICAg
ICBibG9jay5lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgaWYgYmxvY2suZW5jb2RpbmcgPT0g
X0hBTkRTSEFLRV9FTkNPRElOR19ERUxUQToKLSAgICAgICAgICAgIGhlYWRlcnMgPSBzZWxmLl9o
YW5kc2hha2VfYmFzZS5jcmVhdGVfaGVhZGVycyhoZWFkZXJzKQotCi0gICAgICAgIGNvbm5lY3Rp
b24gPSBfTG9naWNhbENvbm5lY3Rpb24oc2VsZiwgYmxvY2suY2hhbm5lbF9pZCkKLSAgICAgICAg
cmVxdWVzdCA9IF9Mb2dpY2FsUmVxdWVzdChibG9jay5jaGFubmVsX2lkLCBtZXRob2QsIHBhdGgs
IHZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywgY29u
bmVjdGlvbikKLSAgICAgICAgcmV0dXJuIHJlcXVlc3QKLQotICAgIGRlZiBfZG9faGFuZHNoYWtl
X2Zvcl9sb2dpY2FsX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgc2VuZF9xdW90YT0wKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmVjZWl2ZV9xdW90YSA9IHNlbGYuX2NoYW5uZWxfc2xvdHMu
cG9wbGVmdCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAgcmFpc2Ug
TG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNoYW5uZWxfaWQs
IF9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04pCi0KLSAgICAgICAgaGFuZHNo
YWtlciA9IF9NdXhIYW5kc2hha2VyKHJlcXVlc3QsIHNlbGYuZGlzcGF0Y2hlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRk
X2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5jaGFubmVsX2lkLCBz
dGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgIyBUT0RPKGJhc2hpKTogU2hvdWxkIHdlIF9GYWlsIHRoZSBMb2dpY2FsIENo
YW5uZWxfIHdpdGggMzAwMQotICAgICAgICAgICAgIyBpbnN0ZWFkPwotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRk
X2NoYW5uZWxfcmVzcG9uc2UocmVxdWVzdC5jaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9ZS5zdGF0dXMpCi0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2Vy
RXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAg
ICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UocmVxdWVzdC5j
aGFubmVsX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIFRy
dWUKLQotICAgIGRlZiBfYWRkX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBsb2dpY2FsX3JlcXVlc3Qp
OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lk
IGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAg
ICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAg
ICBfRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCi0gICAgICAgICAgICAgICAgICAg
ICdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlCi0gICAgICAgICAgICAgICAgICAgIGxv
Z2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlcihz
ZWxmLCBsb2dpY2FsX3JlcXVlc3QpCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBfTG9naWNh
bENoYW5uZWxEYXRhKGxvZ2ljYWxfcmVxdWVzdCwgd29ya2VyKQotICAgICAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZF0gPSBjaGFubmVsX2Rh
dGEKLSAgICAgICAgICAgIHdvcmtlci5zdGFydCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRl
ZiBfcHJvY2Vzc19hZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0ID0gc2VsZi5fY3JlYXRlX2xvZ2ljYWxfcmVx
dWVzdChibG9jaykKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0ZhaWxlZCB0byBjcmVhdGUgbG9naWNhbCByZXF1ZXN0OiAlcicg
JSBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZSgK
LSAgICAgICAgICAgICAgICBibG9jay5jaGFubmVsX2lkLCBzdGF0dXM9Y29tbW9uLkhUVFBfU1RB
VFVTX0JBRF9SRVFVRVNUKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHNlbGYuX2Rv
X2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KGxvZ2ljYWxfcmVxdWVzdCk6Ci0gICAgICAg
ICAgICBpZiBibG9jay5lbmNvZGluZyA9PSBfSEFORFNIQUtFX0VOQ09ESU5HX0lERU5USVRZOgot
ICAgICAgICAgICAgICAgICMgVXBkYXRlIGhhbmRzaGFrZSBiYXNlLgotICAgICAgICAgICAgICAg
ICMgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB0aGlzIGlzIHRoZSByaWdodCBwbGFjZSB0byB1cGRh
dGUKLSAgICAgICAgICAgICAgICAjIGhhbmRzaGFrZSBiYXNlLgotICAgICAgICAgICAgICAgIHNl
bGYuX2hhbmRzaGFrZV9iYXNlID0gX0hhbmRzaGFrZURlbHRhQmFzZSgKLSAgICAgICAgICAgICAg
ICAgICAgbG9naWNhbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCi0gICAgICAgICAgICBzZWxmLl9hZGRf
bG9naWNhbF9jaGFubmVsKGxvZ2ljYWxfcmVxdWVzdCkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAg
ICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVT
VCkKLQotICAgIGRlZiBfcHJvY2Vzc19mbG93X2NvbnRyb2woc2VsZiwgYmxvY2spOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1
aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVs
X2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRdCi0gICAgICAg
ICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0ucmVwbGVuaXNoX3NlbmRfcXVvdGEo
Ci0gICAgICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSkKLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgZGVmIF9wcm9jZXNzX2Ryb3BfY2hhbm5lbChzZWxmLCBibG9jayk6Ci0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdEcm9wQ2hhbm5lbCByZWNlaXZlZCBmb3IgJWQ6
IGNvZGU9JXIsIHJlYXNvbj0lcicgJQotICAgICAgICAgICAgKGJsb2NrLmNoYW5uZWxfaWQsIGJs
b2NrLmRyb3BfY29kZSwgYmxvY2suZHJvcF9tZXNzYWdlKSkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
ICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgot
ICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXQotICAgICAgICAgICAgY2hhbm5lbF9k
YXRhLmRyb3BfY29kZSA9IF9EUk9QX0NPREVfQUNLTk9XTEVER0VECi0KLSAgICAgICAgICAgICMg
Q2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbAotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVl
c3QuY29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAgICAgICAgICBfTG9naWNhbENv
bm5lY3Rpb24uU1RBVEVfVEVSTUlOQVRFRCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1
ZXN0LndzX3N0cmVhbS5zdG9wX3NlbmRpbmcoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYg
X3Byb2Nlc3NfY29udHJvbF9ibG9ja3Moc2VsZiwgcGFyc2VyKToKLSAgICAgICAgZm9yIGNvbnRy
b2xfYmxvY2sgaW4gcGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKToKLSAgICAgICAgICAgIG9w
Y29kZSA9IGNvbnRyb2xfYmxvY2sub3Bjb2RlCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ2NvbnRyb2wgYmxvY2sgcmVjZWl2ZWQsIG9wY29kZTogJWQnICUgb3Bjb2RlKQotICAgICAg
ICAgICAgaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1Q6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19hZGRfY2hhbm5lbF9yZXF1ZXN0KGNvbnRyb2xfYmxv
Y2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVNQT05TRToKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NL
LAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgQWRkQ2hhbm5lbFJlc3BvbnNlJykKLSAg
ICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Zsb3dfY29udHJvbChjb250cm9sX2Jsb2NrKQotICAg
ICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMOgotICAgICAg
ICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfZHJvcF9jaGFubmVsKGNvbnRyb2xfYmxvY2spCi0gICAg
ICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAg
ICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBOZXdDaGFubmVsU2xvdCcpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICdVbmV4cGVjdGVkIG9wY29kZSAlcicgJSBvcGNvZGUpCi0KLSAgICBkZWYgX3By
b2Nlc3NfbG9naWNhbF9mcmFtZShzZWxmLCBjaGFubmVsX2lkLCBwYXJzZXIpOgotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGEgZnJhbWUuIGNoYW5uZWwgaWQ9JWQnICUgY2hh
bm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgICMgV2UgbXVzdCBpZ25vcmUg
dGhlIG1lc3NhZ2UgZm9yIGFuIGluYWN0aXZlIGNoYW5uZWwuCi0gICAgICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2No
YW5uZWxfaWRdCi0gICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5
bG9hZCA9IHBhcnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKLSAgICAgICAgICAgIGNvbnN1bWluZ19i
eXRlID0gbGVuKHBheWxvYWQpCi0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09E
RV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgY29uc3VtaW5nX2J5dGUgKz0gMQotICAg
ICAgICAgICAgaWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5jb25zdW1lX3Jl
Y2VpdmVfcXVvdGEoCi0gICAgICAgICAgICAgICAgY29uc3VtaW5nX2J5dGUpOgotICAgICAgICAg
ICAgICAgICMgVGhlIGNsaWVudCB2aW9sYXRlcyBxdW90YS4gQ2xvc2UgbG9naWNhbCBjaGFubmVs
LgotICAgICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgIGNoYW5uZWxfaWQsIF9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04pCi0g
ICAgICAgICAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKG9wY29kZSwgbGVuKHBheWxvYWQpLCBm
aW4sIHJzdjEsIHJzdjIsIHJzdjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hc2s9RmFsc2UpCi0gICAgICAgICAgICBmcmFtZV9kYXRhID0gaGVhZGVyICsgcGF5bG9hZAot
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5hcHBlbmRfZnJhbWVf
ZGF0YShmcmFtZV9kYXRhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgZGlzcGF0Y2hfbWVz
c2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRGlzcGF0Y2hlcyBtZXNzYWdlLiBUaGUg
cmVhZGVyIHRocmVhZCBjYWxscyB0aGlzIG1ldGhvZC4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgICAgbWVzc2FnZTogYSBtZXNzYWdlIHRoYXQgY29udGFpbnMgZW5jYXBzdWxhdGVkIGZyYW1l
LgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcjog
aWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgcGh5c2ljYWwKLSAgICAgICAgICAgICAgICBjb25uZWN0
aW9uIGxldmVsIGVycm9ycy4KLSAgICAgICAgICAgIExvZ2ljYWxDaGFubmVsRXJyb3I6IGlmIHRo
ZSBtZXNzYWdlIGNvbnRhaW5zIGxvZ2ljYWwgY2hhbm5lbAotICAgICAgICAgICAgICAgIGxldmVs
IGVycm9ycy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcGFyc2VyID0gX011eEZyYW1lUGF5bG9h
ZFBhcnNlcihtZXNzYWdlKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjaGFubmVsX2lkID0g
cGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgot
ICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9DSEFO
TkVMX0lEX1RSVU5DQVRFRCkKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFO
TkVMX0lEOgotICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19jb250cm9sX2Jsb2NrcyhwYXJzZXIp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZCwgcGFyc2VyKQotCi0gICAgZGVmIG5vdGlmeV93b3JrZXJfZG9uZShzZWxmLCBj
aGFubmVsX2lkKToKLSAgICAgICAgIiIiQ2FsbGVkIHdoZW4gYSB3b3JrZXIgaGFzIGZpbmlzaGVk
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBjaGFubmVsIGlkIGNv
cnJlc3BvbmRlZCB3aXRoIHRoZSB3b3JrZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnV29ya2VyIGZvciBjaGFubmVsIGlkICVkIHRlcm1pbmF0ZWQnICUgY2hh
bm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0
ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdDaGFubmVsIGlkICVkIG5vdCBmb3Vu
ZCcgJSBjaGFubmVsX2lkKQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNh
bF9jaGFubmVscy5wb3AoY2hhbm5lbF9pZCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNlaXZlZCA9IFRydWUKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBpZiBub3Qg
Y2hhbm5lbF9kYXRhLnJlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxm
Ll9zZW5kX2Ryb3BfY2hhbm5lbCgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBjb2RlPWNo
YW5uZWxfZGF0YS5kcm9wX2NvZGUsCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1jaGFubmVsX2Rh
dGEuZHJvcF9tZXNzYWdlKQotCi0gICAgZGVmIG5vdGlmeV9yZWFkZXJfZG9uZShzZWxmKToKLSAg
ICAgICAgIiIiVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkIHdoZW4g
dGhlIHJlYWRlciBoYXMKLSAgICAgICAgZmluaXNoZWQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdUZXJtaWF0aW5nIGFsbCBsb2dpY2Fs
IGNvbm5lY3Rpb25zIHdhaXRpbmcgZm9yIGluY29taW5nIGRhdGEgJwotICAgICAgICAgICAgJy4u
LicpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQot
ICAgICAgICBmb3IgY2hhbm5lbF9kYXRhIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMudmFsdWVz
KCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVl
c3QuY29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgX0xvZ2lj
YWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0
X2V4YygpKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNl
KCkKLQotICAgIGRlZiBub3RpZnlfd3JpdGVyX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIlRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgd3JpdGVyIHRocmVhZCB3aGVuIHRoZSB3cml0ZXIgaGFz
Ci0gICAgICAgIGZpbmlzaGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAnVGVybWlhdGluZyBhbGwgbG9naWNhbCBjb25uZWN0aW9ucyB3
YWl0aW5nIGZvciB3cml0ZSAnCi0gICAgICAgICAgICAnY29tcGxldGlvbiAuLi4nKQotICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgZm9y
IGNoYW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnZhbHVlcygpOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rp
b24ub25fd3JpdGVyX2RvbmUoKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBk
ZWYgZmFpbF9waHlzaWNhbF9jb25uZWN0aW9uKHNlbGYsIGNvZGUsIG1lc3NhZ2UpOgotICAgICAg
ICAiIiJGYWlsIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBjb2RlOiBkcm9wIHJlYXNvbiBjb2RlLgotICAgICAgICAgICAgbWVzc2FnZTogZHJv
cCBtZXNzYWdlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Zh
aWxpbmcgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uLi4nKQotICAgICAgICBzZWxmLl9zZW5kX2Ry
b3BfY2hhbm5lbChfQ09OVFJPTF9DSEFOTkVMX0lELCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBz
ZWxmLl93cml0ZXIuc3RvcChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQot
Ci0gICAgZGVmIGZhaWxfbG9naWNhbF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGUsIG1l
c3NhZ2UpOgotICAgICAgICAiIiJGYWlsIGEgbG9naWNhbCBjaGFubmVsLgotCi0gICAgICAgIEFy
Z3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBjaGFubmVsIGlkLgotICAgICAgICAgICAgY29k
ZTogZHJvcCByZWFzb24gY29kZS4KLSAgICAgICAgICAgIG1lc3NhZ2U6IGRyb3AgbWVzc2FnZS4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsaW5nIGxvZ2lj
YWwgY2hhbm5lbCAlZC4uLicgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAg
ICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdCi0gICAg
ICAgICAgICAgICAgIyBDbG9zZSB0aGUgbG9naWNhbCBjaGFubmVsLiBub3RpZnlfd29ya2VyX2Rv
bmUoKSB3aWxsIGJlCi0gICAgICAgICAgICAgICAgIyBjYWxsZWQgbGF0ZXIgYW5kIGl0IHdpbGwg
c2VuZCBEcm9wQ2hhbm5lbC4KLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9jb2Rl
ID0gY29kZQotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX21lc3NhZ2UgPSBtZXNz
YWdlCi0KLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNl
dF9yZWFkX3N0YXRlKAotICAgICAgICAgICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rpb24uU1RB
VEVfVEVSTUlOQVRFRCkKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19z
dHJlYW0uc3RvcF9zZW5kaW5nKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LnJlbGVhc2UoKQotCi0KLWRlZiB1c2VfbXV4KHJlcXVlc3QpOgotICAgIHJldHVybiBoYXNhdHRy
KHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykgYW5kICgKLSAgICAgICAgcmVxdWVzdC5tdXhfcHJv
Y2Vzc29yLmlzX2FjdGl2ZSgpKQotCi0KLWRlZiBzdGFydChyZXF1ZXN0LCBkaXNwYXRjaGVyKToK
LSAgICBtdXhfaGFuZGxlciA9IF9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMo
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgIG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSgpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9zdGFuZGFsb25lLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNGMy
OTllYWYzZGY5ZmMzZTE3MzhiY2ZlNzA3NzMxOWY4NzZlODk0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE5MyArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlN0YW5kYWxvbmUgV2ViU29ja2V0
IHNlcnZlci4KLQotVXNlIHRoaXMgZmlsZSB0byBsYXVuY2ggcHl3ZWJzb2NrZXQgd2l0aG91dCBB
cGFjaGUgSFRUUCBTZXJ2ZXIuCi0KLQotQkFTSUMgVVNBR0UKLT09PT09PT09PT09Ci0KLUdvIHRv
IHRoZSBzcmMgZGlyZWN0b3J5IGFuZCBydW4KLQotICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQv
c3RhbmRhbG9uZS5weSBbLXAgPHdzX3BvcnQ+XQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbLXcgPHdlYnNvY2tfaGFuZGxlcnM+XQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbLWQgPGRvY3VtZW50X3Jvb3Q+XQotCi08d3NfcG9ydD4g
aXMgdGhlIHBvcnQgbnVtYmVyIHRvIHVzZSBmb3Igd3M6Ly8gY29ubmVjdGlvbi4KLQotPGRvY3Vt
ZW50X3Jvb3Q+IGlzIHRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBIVE1MIGZpbGVz
LgotCi08d2Vic29ja19oYW5kbGVycz4gaXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5
IG9mIFdlYlNvY2tldCBoYW5kbGVycy4KLUlmIG5vdCBzcGVjaWZpZWQsIDxkb2N1bWVudF9yb290
PiB3aWxsIGJlIHVzZWQuIFNlZSBfX2luaXRfXy5weSAob3IKLXJ1biAkIHB5ZG9jIG1vZF9weXdl
YnNvY2tldCkgZm9yIGhvdyB0byB3cml0ZSBXZWJTb2NrZXQgaGFuZGxlcnMuCi0KLUZvciBtb3Jl
IGRldGFpbCBhbmQgb3RoZXIgb3B0aW9ucywgcnVuCi0KLSAgJCBweXRob24gbW9kX3B5d2Vic29j
a2V0L3N0YW5kYWxvbmUucHkgLS1oZWxwCi0KLW9yIHNlZSBfYnVpbGRfb3B0aW9uX3BhcnNlciBt
ZXRob2QgYmVsb3cuCi0KLUZvciB0cm91YmxlIHNob290aW5nLCBhZGRpbmcgIi0tbG9nX2xldmVs
IGRlYnVnIiBtaWdodCBoZWxwIHlvdS4KLQotCi1UUlkgREVNTwotPT09PT09PT0KLQotR28gdG8g
dGhlIHNyYyBkaXJlY3RvcnkgYW5kIHJ1biBzdGFuZGFsb25lLnB5IHdpdGggLWQgb3B0aW9uIHRv
IHNldCB0aGUKLWRvY3VtZW50IHJvb3QgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGV4YW1w
bGUgSFRNTHMgYW5kIGhhbmRsZXJzIGxpa2UgdGhpczoKLQotICAkIGNkIHNyYwotICAkIFBZVEhP
TlBBVEg9LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZQot
Ci10byBsYXVuY2ggcHl3ZWJzb2NrZXQgd2l0aCB0aGUgc2FtcGxlIGhhbmRsZXIgYW5kIGh0bWwg
b24gcG9ydCA4MC4gT3BlbgotaHR0cDovL2xvY2FsaG9zdC9jb25zb2xlLmh0bWwsIGNsaWNrIHRo
ZSBjb25uZWN0IGJ1dHRvbiwgdHlwZSBzb21ldGhpbmcgaW50bwotdGhlIHRleHQgYm94IG5leHQg
dG8gdGhlIHNlbmQgYnV0dG9uIGFuZCBjbGljayB0aGUgc2VuZCBidXR0b24uIElmIGV2ZXJ5dGhp
bmcKLWlzIHdvcmtpbmcsIHlvdSdsbCBzZWUgdGhlIG1lc3NhZ2UgeW91IHR5cGVkIGVjaG9lZCBi
eSB0aGUgc2VydmVyLgotCi0KLVVTSU5HIFRMUwotPT09PT09PT09Ci0KLVRvIHJ1biB0aGUgc3Rh
bmRhbG9uZSBzZXJ2ZXIgd2l0aCBUTFMgc3VwcG9ydCwgcnVuIGl0IHdpdGggLXQsIC1rLCBhbmQg
LWMKLW9wdGlvbnMuIFdoZW4gVExTIGlzIGVuYWJsZWQsIHRoZSBzdGFuZGFsb25lIHNlcnZlciBh
Y2NlcHRzIG9ubHkgVExTIGNvbm5lY3Rpb24uCi0KLU5vdGUgdGhhdCB3aGVuIHNzbCBtb2R1bGUg
aXMgdXNlZCBhbmQgdGhlIGtleS9jZXJ0IGxvY2F0aW9uIGlzIGluY29ycmVjdCwKLVRMUyBjb25u
ZWN0aW9uIHNpbGVudGx5IGZhaWxzIHdoaWxlIHB5T3BlblNTTCBmYWlscyBvbiBzdGFydHVwLgot
Ci1FeGFtcGxlOgotCi0gICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3Rh
bmRhbG9uZS5weSBcCi0gICAgICAgIC1kIGV4YW1wbGUgXAotICAgICAgICAtcCAxMDQ0MyBcCi0g
ICAgICAgIC10IFwKLSAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIFwKLSAgICAgICAg
LWsgLi4vdGVzdC9jZXJ0L2tleS5wZW0gXAotCi1Ob3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVs
YXRpdmUgcGF0aCB0byAtYyBhbmQgLWsgb3B0aW9uLCBpdCB3aWxsIGJlIHJlc29sdmVkCi11c2lu
ZyB0aGUgZG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkgYXMgdGhlIGJhc2UuCi0KLQotVVNJTkcgQ0xJ
RU5UIEFVVEhFTlRJQ0FUSU9OCi09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVG8gcnVu
IHRoZSBzdGFuZGFsb25lIHNlcnZlciB3aXRoIFRMUyBjbGllbnQgYXV0aGVudGljYXRpb24gc3Vw
cG9ydCwgcnVuIGl0IHdpdGgKLS0tdGxzLWNsaWVudC1hdXRoIGFuZCAtLXRscy1jbGllbnQtY2Eg
b3B0aW9ucyBpbiBhZGRpdGlvbiB0byBvbmVzIHJlcXVpcmVkIGZvcgotVExTIHN1cHBvcnQuCi0K
LUV4YW1wbGU6Ci0KLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFu
ZGFsb25lLnB5IC1kIGV4YW1wbGUgLXAgMTA0NDMgLXQgXAotICAgICAgICAtYyAuLi90ZXN0L2Nl
cnQvY2VydC5wZW0gLWsgLi4vdGVzdC9jZXJ0L2tleS5wZW0gXAotICAgICAgICAtLXRscy1jbGll
bnQtYXV0aCBcCi0gICAgICAgIC0tdGxzLWNsaWVudC1jYT0uLi90ZXN0L2NlcnQvY2FjZXJ0LnBl
bQotCi1Ob3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0aCB0byAtLXRscy1jbGll
bnQtY2Egb3B0aW9uLCBpdCB3aWxsIGJlCi1yZXNvbHZlZCB1c2luZyB0aGUgZG9jdW1lbnQgcm9v
dCBkaXJlY3RvcnkgYXMgdGhlIGJhc2UuCi0KLQotQ09ORklHVVJBVElPTiBGSUxFCi09PT09PT09
PT09PT09PT09PT0KLQotWW91IGNhbiBhbHNvIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIGFu
ZCB1c2UgaXQgYnkgc3BlY2lmeWluZyB0aGUgcGF0aCB0bwotdGhlIGNvbmZpZ3VyYXRpb24gZmls
ZSBieSAtLWNvbmZpZyBvcHRpb24uIFBsZWFzZSB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQot
Zm9sbG93aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBQeXRob24gQ29uZmlnUGFyc2VyIGxp
YnJhcnkuIE5hbWUgb2YgZWFjaAotZW50cnkgbXVzdCBiZSB0aGUgbG9uZyB2ZXJzaW9uIGFyZ3Vt
ZW50IG5hbWUuIEUuZy4gdG8gc2V0IGxvZyBsZXZlbCB0byBkZWJ1ZywKLWFkZCB0aGUgZm9sbG93
aW5nIGxpbmU6Ci0KLWxvZ19sZXZlbD1kZWJ1ZwotCi1Gb3Igb3B0aW9ucyB3aGljaCBkb2Vzbid0
IHRha2UgdmFsdWUsIHBsZWFzZSBhZGQgc29tZSBmYWtlIHZhbHVlLiBFLmcuIGZvcgotLS10bHMg
b3B0aW9uLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lOgotCi10bHM9VHJ1ZQotCi1Ob3RlIHRoYXQg
dGxzIHdpbGwgYmUgZW5hYmxlZCBldmVuIGlmIHlvdSB3cml0ZSB0bHM9RmFsc2UgYXMgdGhlIHZh
bHVlIHBhcnQgaXMKLWZha2UuCi0KLVdoZW4gYm90aCBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBh
bmQgYSBjb25maWd1cmF0aW9uIGZpbGUgZW50cnkgYXJlIHNldCBmb3IKLXRoZSBzYW1lIGNvbmZp
Z3VyYXRpb24gaXRlbSwgdGhlIGNvbW1hbmQgbGluZSB2YWx1ZSB3aWxsIG92ZXJyaWRlIG9uZSBp
biB0aGUKLWNvbmZpZ3VyYXRpb24gZmlsZS4KLQotCi1USFJFQURJTkcKLT09PT09PT09PQotCi1U
aGlzIHNlcnZlciBpcyBkZXJpdmVkIGZyb20gU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLiBI
ZW5jZSBhIHRocmVhZCBpcwotdXNlZCBmb3IgZWFjaCByZXF1ZXN0LgotCi0KLVNFQ1VSSVRZIFdB
Uk5JTkcKLT09PT09PT09PT09PT09PT0KLQotVGhpcyB1c2VzIENHSUhUVFBTZXJ2ZXIgYW5kIENH
SUhUVFBTZXJ2ZXIgaXMgbm90IHNlY3VyZS4KLUl0IG1heSBleGVjdXRlIGFyYml0cmFyeSBQeXRo
b24gY29kZSBvciBleHRlcm5hbCBwcm9ncmFtcy4gSXQgc2hvdWxkIG5vdCBiZQotdXNlZCBvdXRz
aWRlIGEgZmlyZXdhbGwuCi0iIiIKLQotaW1wb3J0IEJhc2VIVFRQU2VydmVyCi1pbXBvcnQgQ0dJ
SFRUUFNlcnZlcgotaW1wb3J0IFNpbXBsZUhUVFBTZXJ2ZXIKLWltcG9ydCBTb2NrZXRTZXJ2ZXIK
LWltcG9ydCBDb25maWdQYXJzZXIKLWltcG9ydCBiYXNlNjQKLWltcG9ydCBodHRwbGliCi1pbXBv
cnQgbG9nZ2luZwotaW1wb3J0IGxvZ2dpbmcuaGFuZGxlcnMKLWltcG9ydCBvcHRwYXJzZQotaW1w
b3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzZWxlY3QKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBz
eXMKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBkaXNwYXRjaAotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtZW1v
cml6aW5nZmlsZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5
d2Vic29ja2V0Lnhocl9iZW5jaG1hcmtfaGFuZGxlciBpbXBvcnQgWEhSQmVuY2htYXJrSGFuZGxl
cgotCi0KLV9ERUZBVUxUX0xPR19NQVhfQllURVMgPSAxMDI0ICogMjU2Ci1fREVGQVVMVF9MT0df
QkFDS1VQX0NPVU5UID0gNQotCi1fREVGQVVMVF9SRVFVRVNUX1FVRVVFX1NJWkUgPSAxMjgKLQot
IyAxMDI0IGlzIHByYWN0aWNhbGx5IGxhcmdlIGVub3VnaCB0byBjb250YWluIFdlYlNvY2tldCBo
YW5kc2hha2UgbGluZXMuCi1fTUFYX01FTU9SSVpFRF9MSU5FUyA9IDEwMjQKLQotIyBDb25zdGFu
dHMgZm9yIHRoZSAtLXRsc19tb2R1bGUgZmxhZy4KLV9UTFNfQllfU1RBTkRBUkRfTU9EVUxFID0g
J3NzbCcKLV9UTFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNzbCcKLQotCi1jbGFzcyBfU3RhbmRh
bG9uZUNvbm5lY3Rpb24ob2JqZWN0KToKLSAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIG1wX2Nvbm4u
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdF9oYW5kbGVyKToKLSAgICAgICAg
IiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBy
ZXF1ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgaW5zdGFuY2UuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlciA9IHJlcXVlc3RfaGFuZGxl
cgotCi0gICAgZGVmIGdldF9sb2NhbF9hZGRyKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8g
bWltaWMgbXBfY29ubi5sb2NhbF9hZGRyLiIiIgotCi0gICAgICAgIHJldHVybiAoc2VsZi5fcmVx
dWVzdF9oYW5kbGVyLnNlcnZlci5zZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZlcl9wb3J0KQotICAgIGxvY2FsX2FkZHIgPSBwcm9w
ZXJ0eShnZXRfbG9jYWxfYWRkcikKLQotICAgIGRlZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6Ci0g
ICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25uLnJlbW90ZV9hZGRyLgotCi0gICAgICAg
IFNldHRpbmcgdGhlIHByb3BlcnR5IGluIF9faW5pdF9fIHdvbid0IHdvcmsgYmVjYXVzZSB0aGUg
cmVxdWVzdAotICAgICAgICBoYW5kbGVyIGlzIG5vdCBpbml0aWFsaXplZCB5ZXQgdGhlcmUuIiIi
Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5jbGllbnRfYWRkcmVzcwot
ICAgIHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRyKQotCi0gICAgZGVmIHdy
aXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJNaW1pYyBtcF9jb25uLndyaXRlKCkuIiIiCi0K
LSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci53ZmlsZS53cml0ZShkYXRhKQot
Ci0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiTWltaWMgbXBfY29ubi5y
ZWFkKCkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZmlsZS5y
ZWFkKGxlbmd0aCkKLQotICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAg
ICAiIiJHZXQgbWVtb3JpemVkIGxpbmVzLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1
ZXN0X2hhbmRsZXIucmZpbGUuZ2V0X21lbW9yaXplZF9saW5lcygpCi0KLQotY2xhc3MgX1N0YW5k
YWxvbmVSZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiTWltaWMgbW9kX3B5dGhvbiByZXF1ZXN0LiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3RfaGFuZGxlciwgdXNlX3Rscyk6Ci0g
ICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgICAgcmVxdWVzdF9oYW5kbGVyOiBBIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyIGluc3RhbmNl
LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19s
b2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIgPSByZXF1ZXN0X2hh
bmRsZXIKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gX1N0YW5kYWxvbmVDb25uZWN0aW9uKHJl
cXVlc3RfaGFuZGxlcikKLSAgICAgICAgc2VsZi5fdXNlX3RscyA9IHVzZV90bHMKLSAgICAgICAg
c2VsZi5oZWFkZXJzX2luID0gcmVxdWVzdF9oYW5kbGVyLmhlYWRlcnMKLQotICAgIGRlZiBnZXRf
dXJpKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51cmkuCi0KLSAg
ICAgICAgVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgcmF3IGRhdGEgYXQgdGhlIFJlcXVlc3QtVVJJ
IHBhcnQgb2YgdGhlCi0gICAgICAgIFJlcXVlc3QtTGluZSwgd2hpbGUgdGhlIHVyaSBtZXRob2Qg
b24gdGhlIHJlcXVlc3Qgb2JqZWN0IG9mIG1vZF9weXRob24KLSAgICAgICAgcmV0dXJucyB0aGUg
cGF0aCBwb3J0aW9uIGFmdGVyIHBhcnNpbmcgdGhlIHJhdyBkYXRhLiBUaGlzIGJlaGF2aW9yIGlz
Ci0gICAgICAgIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucGF0aAotICAgIHVyaSA9IHByb3BlcnR5KGdl
dF91cmkpCi0KLSAgICBkZWYgZ2V0X3VucGFyc2VkX3VyaShzZWxmKToKLSAgICAgICAgIiIiR2V0
dGVyIHRvIG1pbWljIHJlcXVlc3QudW5wYXJzZWRfdXJpLiIiIgotCi0gICAgICAgIHJldHVybiBz
ZWxmLl9yZXF1ZXN0X2hhbmRsZXIucGF0aAotICAgIHVucGFyc2VkX3VyaSA9IHByb3BlcnR5KGdl
dF91bnBhcnNlZF91cmkpCi0KLSAgICBkZWYgZ2V0X21ldGhvZChzZWxmKToKLSAgICAgICAgIiIi
R2V0dGVyIHRvIG1pbWljIHJlcXVlc3QubWV0aG9kLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxm
Ll9yZXF1ZXN0X2hhbmRsZXIuY29tbWFuZAotICAgIG1ldGhvZCA9IHByb3BlcnR5KGdldF9tZXRo
b2QpCi0KLSAgICBkZWYgZ2V0X3Byb3RvY29sKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8g
bWltaWMgcmVxdWVzdC5wcm90b2NvbC4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVz
dF9oYW5kbGVyLnJlcXVlc3RfdmVyc2lvbgotICAgIHByb3RvY29sID0gcHJvcGVydHkoZ2V0X3By
b3RvY29sKQotCi0gICAgZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAgICAiIiJNaW1pYyByZXF1
ZXN0LmlzX2h0dHBzKCkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3VzZV90bHMKLQotCi1k
ZWYgX2ltcG9ydF9zc2woKToKLSAgICBnbG9iYWwgc3NsCi0gICAgdHJ5OgotICAgICAgICBpbXBv
cnQgc3NsCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAg
ICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICBnbG9i
YWwgT3BlblNTTAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IE9wZW5TU0wuU1NMCi0gICAgICAg
IHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFs
c2UKLQotCi1jbGFzcyBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24ob2JqZWN0KToKLSAgICAiIiJB
IHdyYXBwZXIgY2xhc3MgZm9yIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24gdG8KLSAgICAtIHByb3Zp
ZGUgbWFrZWZpbGUgbWV0aG9kIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGNsYXNzCi0g
ICAgLSB0d2VhayBzaHV0ZG93biBtZXRob2Qgc2luY2UgT3BlblNTTC5TU0wuQ29ubmVjdGlvbi5z
aHV0ZG93biBkb2Vzbid0Ci0gICAgICBhY2NlcHQgdGhlICJob3ciIGFyZ3VtZW50LgotICAgIC0g
Y29udmVydCBTeXNDYWxsRXJyb3IgZXhjZXB0aW9ucyB0aGF0IGl0cyByZWN2IG1ldGhvZCBtYXkg
cmFpc2UgaW50byBhCi0gICAgICByZXR1cm4gdmFsdWUgb2YgJycsIG1lYW5pbmcgRU9GLiBXZSBj
YW5ub3Qgb3ZlcndyaXRlIHRoZSByZWN2IG1ldGhvZCBvbgotICAgICAgc2VsZi5fY29ubmVjdGlv
biBzaW5jZSBpdCdzIGltbXV0YWJsZS4KLSAgICAiIiIKLQotICAgIF9PVkVSUklEREVOX0FUVFJJ
QlVURVMgPSBbJ19jb25uZWN0aW9uJywgJ21ha2VmaWxlJywgJ3NodXRkb3duJywgJ3JlY3YnXQot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbm5lY3Rpb24pOgotICAgICAgICBzZWxmLl9jb25u
ZWN0aW9uID0gY29ubmVjdGlvbgotCi0gICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFt
ZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uLl9PVkVSUklE
REVOX0FUVFJJQlVURVM6Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRl
X18oc2VsZiwgbmFtZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19nZXRhdHRy
aWJ1dGVfXyhuYW1lKQotCi0gICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToK
LSAgICAgICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24uX09WRVJSSURERU5f
QVRUUklCVVRFUzoKLSAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwg
bmFtZSwgdmFsdWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0aW9uLl9fc2V0YXR0cl9f
KG5hbWUsIHZhbHVlKQotCi0gICAgZGVmIG1ha2VmaWxlKHNlbGYsIG1vZGU9J3InLCBidWZzaXpl
PS0xKToKLSAgICAgICAgcmV0dXJuIHNvY2tldC5fZmlsZW9iamVjdChzZWxmLCBtb2RlLCBidWZz
aXplKQotCi0gICAgZGVmIHNodXRkb3duKHNlbGYsIHVudXNlZF9ob3cpOgotICAgICAgICBzZWxm
Ll9jb25uZWN0aW9uLnNodXRkb3duKCkKLQotICAgIGRlZiByZWN2KHNlbGYsIGJ1ZnNpemUsIGZs
YWdzPTApOgotICAgICAgICBpZiBmbGFncyAhPSAwOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignTm9uLXplcm8gZmxhZ3Mgbm90IGFsbG93ZWQnKQotCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0aW9uLnJlY3YoYnVmc2l6ZSkKLSAgICAgICAgZXhj
ZXB0IE9wZW5TU0wuU1NMLlN5c0NhbGxFcnJvciwgKGVyciwgbWVzc2FnZSk6Ci0gICAgICAgICAg
ICBpZiBlcnIgPT0gLTE6Ci0gICAgICAgICAgICAgICAgIyBTdXBwcmVzcyAidW5leHBlY3RlZCBF
T0YiIGV4Y2VwdGlvbi4gU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50Ci0gICAgICAgICAgICAgICAg
IyBmb3IgU1NMX2dldF9lcnJvci4KLSAgICAgICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAg
ICAgIHJhaXNlCi0KLQotZGVmIF9hbGlhc19oYW5kbGVycyhkaXNwYXRjaGVyLCB3ZWJzb2NrX2hh
bmRsZXJzX21hcF9maWxlKToKLSAgICAiIiJTZXQgYWxpYXNlcyBzcGVjaWZpZWQgaW4gd2Vic29j
a19oYW5kbGVyX21hcF9maWxlIGluIGRpc3BhdGNoZXIuCi0KLSAgICBBcmdzOgotICAgICAgICBk
aXNwYXRjaGVyOiBkaXNwYXRjaC5EaXNwYXRjaGVyIGluc3RhbmNlCi0gICAgICAgIHdlYnNvY2tf
aGFuZGxlcl9tYXBfZmlsZTogYWxpYXMgbWFwIGZpbGUKLSAgICAiIiIKLQotICAgIGZwID0gb3Bl
bih3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKQotICAgIHRyeToKLSAgICAgICAgZm9yIGxpbmUg
aW4gZnA6Ci0gICAgICAgICAgICBpZiBsaW5lWzBdID09ICcjJyBvciBsaW5lLmlzc3BhY2UoKToK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCcoXFMr
KVxzKyhcUyspJywgbGluZSkKLSAgICAgICAgICAgIGlmIG5vdCBtOgotICAgICAgICAgICAgICAg
IGxvZ2dpbmcud2FybmluZygnV3JvbmcgZm9ybWF0IGluIG1hcCBmaWxlOicgKyBsaW5lKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
ZGlzcGF0Y2hlci5hZGRfcmVzb3VyY2VfcGF0aF9hbGlhcygKLSAgICAgICAgICAgICAgICAgICAg
bS5ncm91cCgxKSwgbS5ncm91cCgyKSkKLSAgICAgICAgICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNw
YXRjaEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmVycm9yKHN0cihlKSkK
LSAgICBmaW5hbGx5OgotICAgICAgICBmcC5jbG9zZSgpCi0KLQotY2xhc3MgV2ViU29ja2V0U2Vy
dmVyKFNvY2tldFNlcnZlci5UaHJlYWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZl
cik6Ci0gICAgIiIiSFRUUFNlcnZlciBzcGVjaWFsaXplZCBmb3IgV2ViU29ja2V0LiIiIgotCi0g
ICAgIyBPdmVycmlkZXMgU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLmRhZW1vbl90aHJlYWRz
Ci0gICAgZGFlbW9uX3RocmVhZHMgPSBUcnVlCi0gICAgIyBPdmVycmlkZXMgQmFzZUhUVFBTZXJ2
ZXIuSFRUUFNlcnZlci5hbGxvd19yZXVzZV9hZGRyZXNzCi0gICAgYWxsb3dfcmV1c2VfYWRkcmVz
cyA9IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU29ja2V0U2VydmVyLlRDUFNlcnZlci5fX2luaXRfXyB0byBzZXQgU1NMIGVuYWJs
ZWQKLSAgICAgICAgc29ja2V0IG9iamVjdCB0byBzZWxmLnNvY2tldCBiZWZvcmUgc2VydmVyX2Jp
bmQgYW5kIHNlcnZlcl9hY3RpdmF0ZSwKLSAgICAgICAgaWYgbmVjZXNzYXJ5LgotICAgICAgICAi
IiIKLQotICAgICAgICAjIFNoYXJlIGEgRGlzcGF0Y2hlciBhbW9uZyByZXF1ZXN0IGhhbmRsZXJz
IHRvIHNhdmUgdGltZSBmb3IKLSAgICAgICAgIyBpbnN0YW50aWF0aW9uLiAgRGlzcGF0Y2hlciBj
YW4gYmUgc2hhcmVkIGJlY2F1c2UgaXQgaXMgdGhyZWFkLXNhZmUuCi0gICAgICAgIG9wdGlvbnMu
ZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoCi0gICAgICAgICAgICBvcHRpb25zLndl
YnNvY2tfaGFuZGxlcnMsCi0gICAgICAgICAgICBvcHRpb25zLnNjYW5fZGlyLAotICAgICAgICAg
ICAgb3B0aW9ucy5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyKQotICAgICAgICBpZiBv
cHRpb25zLndlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGU6Ci0gICAgICAgICAgICBfYWxpYXNfaGFu
ZGxlcnMob3B0aW9ucy5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
dGlvbnMud2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSkKLSAgICAgICAgd2FybmluZ3MgPSBvcHRp
b25zLmRpc3BhdGNoZXIuc291cmNlX3dhcm5pbmdzKCkKLSAgICAgICAgaWYgd2FybmluZ3M6Ci0g
ICAgICAgICAgICBmb3Igd2FybmluZyBpbiB3YXJuaW5nczoKLSAgICAgICAgICAgICAgICBsb2dn
aW5nLndhcm5pbmcoJ1dhcm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5yZXF1ZXN0X3F1ZXVlX3NpemUgPSBvcHRpb25zLnJlcXVlc3RfcXVldWVfc2l6
ZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAg
ICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBGYWxzZQotCi0gICAgICAgIFNvY2tldFNlcnZlci5C
YXNlU2VydmVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgKG9wdGlvbnMuc2VydmVyX2hv
c3QsIG9wdGlvbnMucG9ydCksIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKQotCi0gICAgICAgICMg
RXhwb3NlIHRoZSBvcHRpb25zIG9iamVjdCB0byBhbGxvdyBoYW5kbGVyIG9iamVjdHMgYWNjZXNz
IGl0LiBXZSBuYW1lCi0gICAgICAgICMgaXQgd2l0aCB3ZWJzb2NrZXRfIHByZWZpeCB0byBhdm9p
ZCBjb25mbGljdC4KLSAgICAgICAgc2VsZi53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMgPSBvcHRp
b25zCi0KLSAgICAgICAgc2VsZi5fY3JlYXRlX3NvY2tldHMoKQotICAgICAgICBzZWxmLnNlcnZl
cl9iaW5kKCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfYWN0aXZhdGUoKQotCi0gICAgZGVmIF9jcmVh
dGVfc29ja2V0cyhzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJfbmFtZSwgc2VsZi5zZXJ2ZXJf
cG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3MKLSAgICAgICAgc2VsZi5fc29ja2V0cyA9IFtdCi0g
ICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9uYW1lOgotICAgICAgICAgICAgIyBPbiBwbGF0Zm9y
bXMgdGhhdCBkb2Vzbid0IHN1cHBvcnQgSVB2NiwgdGhlIGZpcnN0IGJpbmQgZmFpbHMuCi0gICAg
ICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnRzIElQdjYKLSAgICAgICAgICAgICMg
LSBJZiBpdCBiaW5kcyBib3RoIElQdjQgYW5kIElQdjYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCB0
aGUKLSAgICAgICAgICAgICMgICBmaXJzdCBiaW5kIHN1Y2NlZWRzIGFuZCB0aGUgc2Vjb25kIGZh
aWxzICh3ZSdsbCBzZWUgJ0FkZHJlc3MKLSAgICAgICAgICAgICMgICBhbHJlYWR5IGluIHVzZScg
ZXJyb3IpLgotICAgICAgICAgICAgIyAtIElmIGl0IGJpbmRzIG9ubHkgSVB2NiBvbiBjYWxsIHdp
dGggQUZfSU5FVDYsIGJvdGggY2FsbCBhcmUKLSAgICAgICAgICAgICMgICBleHBlY3RlZCB0byBz
dWNjZWVkIHRvIGxpc3RlbiBib3RoIHByb3RvY29sLgotICAgICAgICAgICAgYWRkcmluZm9fYXJy
YXkgPSBbCi0gICAgICAgICAgICAgICAgKHNvY2tldC5BRl9JTkVUNiwgc29ja2V0LlNPQ0tfU1RS
RUFNLCAnJywgJycsICcnKSwKLSAgICAgICAgICAgICAgICAoc29ja2V0LkFGX0lORVQsIHNvY2tl
dC5TT0NLX1NUUkVBTSwgJycsICcnLCAnJyldCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBh
ZGRyaW5mb19hcnJheSA9IHNvY2tldC5nZXRhZGRyaW5mbyhzZWxmLnNlcnZlcl9uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf
cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
Y2tldC5BRl9VTlNQRUMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb2NrZXQuU09DS19TVFJFQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBQUk9UT19UQ1ApCi0gICAgICAgIGZvciBhZGRy
aW5mbyBpbiBhZGRyaW5mb19hcnJheToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdD
cmVhdGUgc29ja2V0IG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAgICAgICAgZmFtaWx5LCBzb2Nr
dHlwZSwgcHJvdG8sIGNhbm9ubmFtZSwgc29ja2FkZHIgPSBhZGRyaW5mbwotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8gPSBzb2NrZXQuc29ja2V0KGZhbWlseSwgc29j
a3R5cGUpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgc2VydmVyX29wdGlvbnMgPSBzZWxmLndlYnNvY2tl
dF9zZXJ2ZXJfb3B0aW9ucwotICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudXNlX3RsczoK
LSAgICAgICAgICAgICAgICAjIEZvciB0aGUgY2FzZSBvZiBfSEFTX09QRU5fU1NMLCB3ZSBkbyB3
cmFwcGVyIHNldHVwIGFmdGVyCi0gICAgICAgICAgICAgICAgIyBhY2NlcHQuCi0gICAgICAgICAg
ICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01P
RFVMRToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9h
dXRoOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVu
dF9jZXJ0X29wdGlvbmFsOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0
XyA9IHNzbC5DRVJUX09QVElPTkFMCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX1JFUVVJUkVE
Ci0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnRfY2VydF8gPSBzc2wuQ0VSVF9OT05FCi0gICAgICAgICAgICAgICAgICAgIHNvY2tldF8gPSBz
c2wud3JhcF9zb2NrZXQoc29ja2V0XywKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleWZpbGU9
c2VydmVyX29wdGlvbnMucHJpdmF0ZV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICBjZXJ0
ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHNzbF92ZXJzaW9uPXNzbC5QUk9UT0NPTF9TU0x2MjMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjYV9jZXJ0cz1zZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NhLAotICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydF9yZXFzPWNsaWVudF9jZXJ0XywKLSAgICAgICAgICAgICAgICAgICAgICAg
IGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0PUZhbHNlKQotICAgICAgICAgICAgc2VsZi5fc29ja2V0
cy5hcHBlbmQoKHNvY2tldF8sIGFkZHJpbmZvKSkKLQotICAgIGRlZiBzZXJ2ZXJfYmluZChzZWxm
KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLlRDUFNlcnZlci5zZXJ2ZXJfYmlu
ZCB0byBlbmFibGUgbXVsdGlwbGUKLSAgICAgICAgc29ja2V0cyBiaW5kLgotICAgICAgICAiIiIK
LQotICAgICAgICBmYWlsZWRfc29ja2V0cyA9IFtdCi0KLSAgICAgICAgZm9yIHNvY2tldGluZm8g
aW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tldF8sIGFkZHJpbmZvID0gc29ja2V0
aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0JpbmQgb246ICVyJywgYWRkcmlu
Zm8pCi0gICAgICAgICAgICBpZiBzZWxmLmFsbG93X3JldXNlX2FkZHJlc3M6Ci0gICAgICAgICAg
ICAgICAgc29ja2V0Xy5zZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU09fUkVV
U0VBRERSLCAxKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8uYmlu
ZChzZWxmLnNlcnZlcl9hZGRyZXNzKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcics
IGUpCi0gICAgICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0gICAgICAgICAgICAgICAgZmFp
bGVkX3NvY2tldHMuYXBwZW5kKHNvY2tldGluZm8pCi0gICAgICAgICAgICBpZiBzZWxmLnNlcnZl
cl9hZGRyZXNzWzFdID09IDA6Ci0gICAgICAgICAgICAgICAgIyBUaGUgb3BlcmF0aW5nIHN5c3Rl
bSBhc3NpZ25zIHRoZSBhY3R1YWwgcG9ydCBudW1iZXIgZm9yIHBvcnQKLSAgICAgICAgICAgICAg
ICAjIG51bWJlciAwLiBUaGlzIGNhc2UsIHRoZSBzZWNvbmQgYW5kIGxhdGVyIHNvY2tldHMgc2hv
dWxkIHVzZQotICAgICAgICAgICAgICAgICMgdGhlIHNhbWUgcG9ydCBudW1iZXIuIEFsc28gc2Vs
Zi5zZXJ2ZXJfcG9ydCBpcyByZXdyaXR0ZW4KLSAgICAgICAgICAgICAgICAjIGJlY2F1c2UgaXQg
aXMgZXhwb3J0ZWQsIGFuZCB3aWxsIGJlIHVzZWQgYnkgZXh0ZXJuYWwgY29kZS4KLSAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9hZGRyZXNzID0gKAotICAgICAgICAgICAgICAgICAgICBzZWxm
LnNlcnZlcl9uYW1lLCBzb2NrZXRfLmdldHNvY2tuYW1lKClbMV0pCi0gICAgICAgICAgICAgICAg
c2VsZi5zZXJ2ZXJfcG9ydCA9IHNlbGYuc2VydmVyX2FkZHJlc3NbMV0KLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnUG9ydCAlciBpcyBhc3NpZ25lZCcsIHNlbGYuc2VydmVyX3Bv
cnQpCi0KLSAgICAgICAgZm9yIHNvY2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6Ci0gICAgICAg
ICAgICBzZWxmLl9zb2NrZXRzLnJlbW92ZShzb2NrZXRpbmZvKQotCi0gICAgZGVmIHNlcnZlcl9h
Y3RpdmF0ZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLlRDUFNlcnZl
ci5zZXJ2ZXJfYWN0aXZhdGUgdG8gZW5hYmxlIG11bHRpcGxlCi0gICAgICAgIHNvY2tldHMgbGlz
dGVuLgotICAgICAgICAiIiIKLQotICAgICAgICBmYWlsZWRfc29ja2V0cyA9IFtdCi0KLSAgICAg
ICAgZm9yIHNvY2tldGluZm8gaW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tldF8s
IGFkZHJpbmZvID0gc29ja2V0aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0xp
c3RlbiBvbjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBzb2NrZXRfLmxpc3RlbihzZWxmLnJlcXVlc3RfcXVldWVfc2l6ZSkKLSAgICAgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1Nr
aXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQot
ICAgICAgICAgICAgICAgIGZhaWxlZF9zb2NrZXRzLmFwcGVuZChzb2NrZXRpbmZvKQotCi0gICAg
ICAgIGZvciBzb2NrZXRpbmZvIGluIGZhaWxlZF9zb2NrZXRzOgotICAgICAgICAgICAgc2VsZi5f
c29ja2V0cy5yZW1vdmUoc29ja2V0aW5mbykKLQotICAgICAgICBpZiBsZW4oc2VsZi5fc29ja2V0
cykgPT0gMDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5jcml0aWNhbCgKLSAgICAgICAgICAg
ICAgICAnTm8gc29ja2V0cyBhY3RpdmF0ZWQuIFVzZSBpbmZvIGxvZyBsZXZlbCB0byBzZWUgdGhl
IHJlYXNvbi4nKQotCi0gICAgZGVmIHNlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgIiIiT3Zl
cnJpZGUgU29ja2V0U2VydmVyLlRDUFNlcnZlci5zZXJ2ZXJfY2xvc2UgdG8gZW5hYmxlIG11bHRp
cGxlCi0gICAgICAgIHNvY2tldHMgY2xvc2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZvciBz
b2NrZXRpbmZvIGluIHNlbGYuX3NvY2tldHM6Ci0gICAgICAgICAgICBzb2NrZXRfLCBhZGRyaW5m
byA9IHNvY2tldGluZm8KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDbG9zZSBvbjog
JXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoKQotCi0gICAgZGVmIGZp
bGVubyhzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLlRDUFNlcnZlci5m
aWxlbm8uIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKCdOb3Qgc3VwcG9ydGVk
OiBmaWxlbm8nKQotICAgICAgICByZXR1cm4gc2VsZi5fc29ja2V0c1swXVswXS5maWxlbm8oKQot
Ci0gICAgZGVmIGhhbmRsZV9lcnJvcihzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcyk6Ci0g
ICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5oYW5kbGVfZXJyb3IuIiIiCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmVycm9yKAotICAgICAgICAgICAgJ0V4Y2VwdGlvbiBpbiBwcm9jZXNz
aW5nIHJlcXVlc3QgZnJvbTogJXJcbiVzJywKLSAgICAgICAgICAgIGNsaWVudF9hZGRyZXNzLAot
ICAgICAgICAgICAgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgIyBOb3RlOiBjbGll
bnRfYWRkcmVzcyBpcyBhIHR1cGxlLgotCi0gICAgZGVmIGdldF9yZXF1ZXN0KHNlbGYpOgotICAg
ICAgICAiIiJPdmVycmlkZSBUQ1BTZXJ2ZXIuZ2V0X3JlcXVlc3QgdG8gd3JhcCBPcGVuU1NMLlNT
TC5Db25uZWN0aW9uCi0gICAgICAgIG9iamVjdCB3aXRoIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlv
biB0byBwcm92aWRlIG1ha2VmaWxlIG1ldGhvZC4gV2UKLSAgICAgICAgY2Fubm90IHN1YnN0aXR1
dGUgT3BlblNTTC5TU0wuQ29ubmVjdGlvbi5tYWtlZmlsZSBzaW5jZSBpdCdzIHJlYWRvbmx5Ci0g
ICAgICAgIGF0dHJpYnV0ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgYWNjZXB0ZWRfc29ja2V0
LCBjbGllbnRfYWRkcmVzcyA9IHNlbGYuc29ja2V0LmFjY2VwdCgpCi0KLSAgICAgICAgc2VydmVy
X29wdGlvbnMgPSBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotICAgICAgICBpZiBzZXJ2
ZXJfb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX21v
ZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5kb19oYW5kc2hha2UoKQotICAgICAg
ICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQotICAgICAgICAgICAgICAgICAgICByYWlzZQotCi0g
ICAgICAgICAgICAgICAgIyBQcmludCBjaXBoZXIgaW4gdXNlLiBIYW5kc2hha2UgaXMgZG9uZSBv
biBhY2NlcHQuCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDaXBoZXI6ICVz
JywgYWNjZXB0ZWRfc29ja2V0LmNpcGhlcigpKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnQ2xpZW50IGNlcnQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWNjZXB0ZWRfc29ja2V0LmdldHBlZXJjZXJ0KCkpCi0gICAgICAgICAgICBlbGlmIHNl
cnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9QWU9QRU5TU0w6Ci0gICAgICAgICAg
ICAgICAgIyBXZSBjYW5ub3QgcHJpbnQgdGhlIGNpcGhlciBpbiB1c2UuIHB5T3BlblNTTCBkb2Vz
bid0IHByb3ZpZGUKLSAgICAgICAgICAgICAgICAjIGFueSBtZXRob2QgdG8gZmV0Y2ggdGhhdC4K
LQotICAgICAgICAgICAgICAgIGN0eCA9IE9wZW5TU0wuU1NMLkNvbnRleHQoT3BlblNTTC5TU0wu
U1NMdjIzX01FVEhPRCkKLSAgICAgICAgICAgICAgICBjdHgudXNlX3ByaXZhdGVrZXlfZmlsZShz
ZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tleSkKLSAgICAgICAgICAgICAgICBjdHgudXNlX2NlcnRp
ZmljYXRlX2ZpbGUoc2VydmVyX29wdGlvbnMuY2VydGlmaWNhdGUpCi0KLSAgICAgICAgICAgICAg
ICBkZWYgZGVmYXVsdF9jYWxsYmFjayhjb25uLCBjZXJ0LCBlcnJudW0sIGVycmRlcHRoLCBvayk6
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBvayA9PSAxCi0KLSAgICAgICAgICAgICAgICAj
IFNlZSB0aGUgT3BlblNTTCBkb2N1bWVudCBmb3IgU1NMX0NUWF9zZXRfdmVyaWZ5LgotICAgICAg
ICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfYXV0aDoKLSAgICAgICAgICAg
ICAgICAgICAgdmVyaWZ5X21vZGUgPSBPcGVuU1NMLlNTTC5WRVJJRllfUEVFUgotICAgICAgICAg
ICAgICAgICAgICBpZiBub3Qgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jZXJ0X29wdGlvbmFs
OgotICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X21vZGUgfD0gT3BlblNTTC5TU0wuVkVS
SUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUCi0gICAgICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVy
aWZ5KHZlcmlmeV9tb2RlLCBkZWZhdWx0X2NhbGxiYWNrKQotICAgICAgICAgICAgICAgICAgICBj
dHgubG9hZF92ZXJpZnlfbG9jYXRpb25zKHNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2EsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBjdHguc2V0X3ZlcmlmeShPcGVu
U1NMLlNTTC5WRVJJRllfTk9ORSwgZGVmYXVsdF9jYWxsYmFjaykKLQotICAgICAgICAgICAgICAg
IGFjY2VwdGVkX3NvY2tldCA9IE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24oY3R4LCBhY2NlcHRlZF9z
b2NrZXQpCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LnNldF9hY2NlcHRfc3RhdGUo
KQotCi0gICAgICAgICAgICAgICAgIyBDb252ZXJ0IFNTTCByZWxhdGVkIGVycm9yIGludG8gc29j
a2V0LmVycm9yIHNvIHRoYXQKLSAgICAgICAgICAgICAgICAjIFNvY2tldFNlcnZlciBpZ25vcmVz
IHRoZW0gYW5kIGtlZXBzIHJ1bm5pbmcuCi0gICAgICAgICAgICAgICAgIwotICAgICAgICAgICAg
ICAgICMgVE9ETyh0eW9zaGlubyk6IENvbnZlcnQgYWxsIGtpbmRzIG9mIGVycm9ycy4KLSAgICAg
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldC5kb19o
YW5kc2hha2UoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBPcGVuU1NMLlNTTC5FcnJvciwgZToK
LSAgICAgICAgICAgICAgICAgICAgIyBTZXQgZXJybm8gcGFydCB0byAxIChTU0xfRVJST1JfU1NM
KSBsaWtlIHRoZSBzc2wgbW9kdWxlCi0gICAgICAgICAgICAgICAgICAgICMgZG9lcy4KLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUpCi0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcigxLCAnJXInICUgZSkKLSAgICAgICAgICAgICAgICBj
ZXJ0ID0gYWNjZXB0ZWRfc29ja2V0LmdldF9wZWVyX2NlcnRpZmljYXRlKCkKLSAgICAgICAgICAg
ICAgICBpZiBjZXJ0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ0NsaWVudCBjZXJ0IHN1YmplY3Q6ICVyJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNlcnQuZ2V0X3N1YmplY3QoKS5nZXRfY29tcG9uZW50cygpKQot
ICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldCA9IF9TdGFuZGFsb25lU1NMQ29ubmVjdGlv
bihhY2NlcHRlZF9zb2NrZXQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ05vIFRMUyBzdXBwb3J0IG1vZHVsZSBpcyBhdmFpbGFibGUnKQotCi0g
ICAgICAgIHJldHVybiBhY2NlcHRlZF9zb2NrZXQsIGNsaWVudF9hZGRyZXNzCi0KLSAgICBkZWYg
c2VydmVfZm9yZXZlcihzZWxmLCBwb2xsX2ludGVydmFsPTAuNSk6Ci0gICAgICAgICIiIk92ZXJy
aWRlIFNvY2tldFNlcnZlci5CYXNlU2VydmVyLnNlcnZlX2ZvcmV2ZXIuIiIiCi0KLSAgICAgICAg
c2VsZi5fX3dzX3NlcnZpbmcgPSBUcnVlCi0gICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24u
Y2xlYXIoKQotICAgICAgICBoYW5kbGVfcmVxdWVzdCA9IHNlbGYuaGFuZGxlX3JlcXVlc3QKLSAg
ICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX2hhbmRsZV9yZXF1ZXN0X25vYmxvY2snKToKLSAgICAg
ICAgICAgIGhhbmRsZV9yZXF1ZXN0ID0gc2VsZi5faGFuZGxlX3JlcXVlc3Rfbm9ibG9jawotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoJ0ZhbGxiYWNrIHRv
IGJsb2NraW5nIHJlcXVlc3QgaGFuZGxlcicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdo
aWxlIHNlbGYuX193c19zZXJ2aW5nOgotICAgICAgICAgICAgICAgIHIsIHcsIGUgPSBzZWxlY3Qu
c2VsZWN0KAotICAgICAgICAgICAgICAgICAgICBbc29ja2V0X1swXSBmb3Igc29ja2V0XyBpbiBz
ZWxmLl9zb2NrZXRzXSwKLSAgICAgICAgICAgICAgICAgICAgW10sIFtdLCBwb2xsX2ludGVydmFs
KQotICAgICAgICAgICAgICAgIGZvciBzb2NrZXRfIGluIHI6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuc29ja2V0ID0gc29ja2V0XwotICAgICAgICAgICAgICAgICAgICBoYW5kbGVfcmVxdWVz
dCgpCi0gICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBOb25lCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLnNldCgpCi0KLSAgICBkZWYgc2h1
dGRvd24oc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFNvY2tldFNlcnZlci5CYXNlU2VydmVy
LnNodXRkb3duLiIiIgotCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gRmFsc2UKLSAgICAg
ICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi53YWl0KCkKLQotCi1jbGFzcyBXZWJTb2NrZXRSZXF1
ZXN0SGFuZGxlcihDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlcik6Ci0gICAgIiIi
Q0dJSFRUUFJlcXVlc3RIYW5kbGVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2NrZXQuIiIiCi0KLSAg
ICAjIFVzZSBodHRwbGliLkhUVFBNZXNzYWdlIGluc3RlYWQgb2YgbWltZXRvb2xzLk1lc3NhZ2Uu
Ci0gICAgTWVzc2FnZUNsYXNzID0gaHR0cGxpYi5IVFRQTWVzc2FnZQotCi0gICAgcHJvdG9jb2xf
dmVyc2lvbiA9ICJIVFRQLzEuMSIKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU29ja2V0U2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyLnNldHVwIHRvIHdyYXAg
cmZpbGUKLSAgICAgICAgd2l0aCBNZW1vcml6aW5nRmlsZS4KLQotICAgICAgICBUaGlzIG1ldGhv
ZCB3aWxsIGJlIGNhbGxlZCBieSBCYXNlUmVxdWVzdEhhbmRsZXIncyBjb25zdHJ1Y3RvcgotICAg
ICAgICBiZWZvcmUgY2FsbGluZyBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZS4KLSAgICAg
ICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUgd2lsbCBjYWxsCi0gICAgICAgIEJhc2VI
VFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IGFuZCBpdCB3aWxsIGNhbGwKLSAg
ICAgICAgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgIyBDYWxsIHN1cGVyY2xhc3MncyBzZXR1cCB0byBwcmVwYXJlIHJmaWxlLCB3
ZmlsZSwgZXRjLiBTZWUgc2V0dXAKLSAgICAgICAgIyBkZWZpbml0aW9uIG9uIHRoZSByb290IGNs
YXNzIFNvY2tldFNlcnZlci5TdHJlYW1SZXF1ZXN0SGFuZGxlciB0bwotICAgICAgICAjIHVuZGVy
c3RhbmQgd2hhdCB0aGlzIGRvZXMuCi0gICAgICAgIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVl
c3RIYW5kbGVyLnNldHVwKHNlbGYpCi0KLSAgICAgICAgc2VsZi5yZmlsZSA9IG1lbW9yaXppbmdm
aWxlLk1lbW9yaXppbmdGaWxlKAotICAgICAgICAgICAgc2VsZi5yZmlsZSwKLSAgICAgICAgICAg
IG1heF9tZW1vcml6ZWRfbGluZXM9X01BWF9NRU1PUklaRURfTElORVMpCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MsIHNlcnZlcik6Ci0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYu
X29wdGlvbnMgPSBzZXJ2ZXIud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0KLSAgICAgICAgIyBP
dmVycmlkZXMgQ0dJSFRUUFNlcnZlclJlcXVlc3RIYW5kbGVyLmNnaV9kaXJlY3Rvcmllcy4KLSAg
ICAgICAgc2VsZi5jZ2lfZGlyZWN0b3JpZXMgPSBzZWxmLl9vcHRpb25zLmNnaV9kaXJlY3Rvcmll
cwotICAgICAgICAjIFJlcGxhY2UgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLmlzX2V4ZWN1dGFibGUg
bWV0aG9kLgotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5pc19leGVjdXRhYmxlID0gc2VsZi5fb3B0aW9u
cy5pc19leGVjdXRhYmxlX21ldGhvZAotCi0gICAgICAgICMgVGhpcyBhY3R1YWxseSBjYWxscyBC
YXNlUmVxdWVzdEhhbmRsZXIuX19pbml0X18uCi0gICAgICAgIENHSUhUVFBTZXJ2ZXIuQ0dJSFRU
UFJlcXVlc3RIYW5kbGVyLl9faW5pdF9fKAotICAgICAgICAgICAgc2VsZiwgcmVxdWVzdCwgY2xp
ZW50X2FkZHJlc3MsIHNlcnZlcikKLQotICAgIGRlZiBwYXJzZV9yZXF1ZXN0KHNlbGYpOgotICAg
ICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5CYXNlSFRUUFJlcXVlc3RIYW5kbGVyLnBh
cnNlX3JlcXVlc3QuCi0KLSAgICAgICAgUmV0dXJuIFRydWUgdG8gY29udGludWUgcHJvY2Vzc2lu
ZyBmb3IgSFRUUChTKSwgRmFsc2Ugb3RoZXJ3aXNlLgotCi0gICAgICAgIFNlZSBCYXNlSFRUUFJl
cXVlc3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBtZXRob2Qgd2hpY2ggY2FsbHMKLSAgICAg
ICAgdGhpcyBtZXRob2QgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGJl
IGhhbmRsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgV2UgaG9vayBwYXJzZV9yZXF1ZXN0
IG1ldGhvZCwgYnV0IGFsc28gY2FsbCB0aGUgb3JpZ2luYWwKLSAgICAgICAgIyBDR0lIVFRQUmVx
dWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdCBzaW5jZSB3aGVuIHdlIHJldHVybiBGYWxzZSwKLSAg
ICAgICAgIyBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IGNvbnRpbnVl
cyBwcm9jZXNzaW5nIGFuZAotICAgICAgICAjIGl0IG5lZWRzIHZhcmlhYmxlcyBzZXQgYnkgQ0dJ
SFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0gICAgICAgICMKLSAgICAgICAgIyBW
YXJpYWJsZXMgc2V0IGJ5IHRoaXMgbWV0aG9kIHdpbGwgYmUgYWxzbyB1c2VkIGJ5IFdlYlNvY2tl
dCByZXF1ZXN0Ci0gICAgICAgICMgaGFuZGxpbmcgKHNlbGYucGF0aCwgc2VsZi5jb21tYW5kLCBz
ZWxmLnJlcXVlc3RsaW5lLCBldGMuIFNlZSBhbHNvCi0gICAgICAgICMgaG93IF9TdGFuZGFsb25l
UmVxdWVzdCdzIG1lbWJlcnMgYXJlIGltcGxlbWVudGVkIHVzaW5nIHRoZXNlCi0gICAgICAgICMg
YXR0cmlidXRlcykuCi0gICAgICAgIGlmIG5vdCBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0
SGFuZGxlci5wYXJzZV9yZXF1ZXN0KHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0K
LSAgICAgICAgaWYgc2VsZi5jb21tYW5kID09ICJDT05ORUNUIjoKLSAgICAgICAgICAgIHNlbGYu
c2VuZF9yZXNwb25zZSgyMDAsICJDb25uZWN0ZWQiKQotICAgICAgICAgICAgc2VsZi5zZW5kX2hl
YWRlcigiQ29ubmVjdGlvbiIsICJrZWVwLWFsaXZlIikKLSAgICAgICAgICAgIHNlbGYuZW5kX2hl
YWRlcnMoKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy51c2VfYmFzaWNfYXV0aDoKLSAgICAgICAgICAgIGF1dGggPSBzZWxmLmhlYWRlcnMuZ2V0
aGVhZGVyKCdBdXRob3JpemF0aW9uJykKLSAgICAgICAgICAgIGlmIGF1dGggIT0gc2VsZi5fb3B0
aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRpYWw6Ci0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jl
c3BvbnNlKDQwMSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCdXV1ctQXV0aGVu
dGljYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCYXNpYyByZWFsbT0i
UHl3ZWJzb2NrZXQiJykKLSAgICAgICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnUmVxdWVzdCBiYXNpYyBhdXRoZW50aWNhdGlv
bicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaG9zdCwgcG9ydCwg
cmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaShzZWxmLnBhdGgpCi0KLSAgICAg
ICAgIyBTcGVjaWFsIHBhdGhzIGZvciBYTUxIdHRwUmVxdWVzdCBiZW5jaG1hcmsKLSAgICAgICAg
eGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ID0gJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJh
ZDIxYzI0NScKLSAgICAgICAgaWYgcmVzb3VyY2UgPT0gKHhocl9iZW5jaG1hcmtfaGVscGVyX3By
ZWZpeCArICdfc2VuZCcpOgotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyID0gWEhS
QmVuY2htYXJrSGFuZGxlcigKLSAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNlbGYucmZp
bGUsIHNlbGYud2ZpbGUpCi0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIuZG9fc2Vu
ZCgpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgcmVzb3VyY2UgPT0gKHho
cl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCArICdfcmVjZWl2ZScpOgotICAgICAgICAgICAgeGhy
X2JlbmNobWFya19oYW5kbGVyID0gWEhSQmVuY2htYXJrSGFuZGxlcigKLSAgICAgICAgICAgICAg
ICBzZWxmLmhlYWRlcnMsIHNlbGYucmZpbGUsIHNlbGYud2ZpbGUpCi0gICAgICAgICAgICB4aHJf
YmVuY2htYXJrX2hhbmRsZXIuZG9fcmVjZWl2ZSgpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UK
LQotICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0ludmFsaWQgVVJJOiAlcicsIHNlbGYucGF0aCkKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhhbmRsZXInKQotICAgICAgICAg
ICAgcmV0dXJuIFRydWUKLSAgICAgICAgc2VydmVyX29wdGlvbnMgPSBzZWxmLnNlcnZlci53ZWJz
b2NrZXRfc2VydmVyX29wdGlvbnMKLSAgICAgICAgaWYgaG9zdCBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIHZhbGlkYXRpb25faG9zdCA9IHNlcnZlcl9vcHRpb25zLnZhbGlkYXRpb25faG9zdAot
ICAgICAgICAgICAgaWYgdmFsaWRhdGlvbl9ob3N0IGlzIG5vdCBOb25lIGFuZCBob3N0ICE9IHZh
bGlkYXRpb25faG9zdDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52YWxp
ZCBob3N0OiAlciAoZXhwZWN0ZWQ6ICVyKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG9zdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9u
X2hvc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENH
SUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAg
ICAgaWYgcG9ydCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHZhbGlkYXRpb25fcG9ydCA9IHNl
cnZlcl9vcHRpb25zLnZhbGlkYXRpb25fcG9ydAotICAgICAgICAgICAgaWYgdmFsaWRhdGlvbl9w
b3J0IGlzIG5vdCBOb25lIGFuZCBwb3J0ICE9IHZhbGlkYXRpb25fcG9ydDoKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52YWxpZCBwb3J0OiAlciAoZXhwZWN0ZWQ6ICVyKScs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uX3BvcnQpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgc2VsZi5wYXRoID0gcmVzb3VyY2UKLQot
ICAgICAgICByZXF1ZXN0ID0gX1N0YW5kYWxvbmVSZXF1ZXN0KHNlbGYsIHNlbGYuX29wdGlvbnMu
dXNlX3RscykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIEZhbGxiYWNrIHRvIGRlZmF1
bHQgaHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAotICAgICAgICAgICAg
IyB3ZSBkb24ndCBoYXZlIHJlcXVlc3QgaGFuZGxlcnMuCi0gICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5kaXNwYXRjaGVyLmdldF9oYW5kbGVyX3N1aXRlKHNlbGYucGF0aCk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ05vIGhhbmRsZXIgZm9yIHJlc291cmNlOiAl
cicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXRoKQotICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdGYWxsYmFjayB0byBDR0lIVFRQUmVxdWVzdEhh
bmRsZXInKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGV4Y2VwdCBkaXNw
YXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdEaXNwYXRjaCBmYWlsZWQgZm9yIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICBzZWxmLnNl
bmRfZXJyb3IoZS5zdGF0dXMpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAj
IElmIGFueSBFeGNlcHRpb25zIHdpdGhvdXQgZXhjZXB0IGNsYXVzZSBzZXR1cCAoaW5jbHVkaW5n
Ci0gICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24pIGlzIHJhaXNlZCBiZWxvdyB0aGlzIHBvaW50
LCBpdCB3aWxsIGJlIGNhdWdodAotICAgICAgICAjIGFuZCBsb2dnZWQgYnkgV2ViU29ja2V0U2Vy
dmVyLgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBo
YW5kc2hha2UuZG9faGFuZHNoYWtlKAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIsCi0gICAgICAgICAgICAg
ICAgICAgIGFsbG93RHJhZnQ3NT1zZWxmLl9vcHRpb25zLmFsbG93X2RyYWZ0NzUsCi0gICAgICAg
ICAgICAgICAgICAgIHN0cmljdD1zZWxmLl9vcHRpb25zLnN0cmljdCkKLSAgICAgICAgICAgIGV4
Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnSGFuZHNoYWtlIGZhaWxlZCBmb3IgdmVyc2lvbiBlcnJvcjogJXMnLCBl
KQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZShjb21tb24uSFRUUF9TVEFUVVNf
QkFEX1JFUVVFU1QpCi0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcihjb21tb24uU0VD
X1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGUuc3VwcG9ydGVkX3ZlcnNpb25zKQotICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRl
cnMoKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgZXhjZXB0IGhh
bmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgIyBIYW5kc2hh
a2UgZm9yIHdzKHMpIGZhaWxlZC4KLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygn
SGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKLSAgICAgICAgICAgICAgICBzZWxm
LnNlbmRfZXJyb3IoZS5zdGF0dXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAg
ICAgICAgICAgIHJlcXVlc3QuX2Rpc3BhdGNoZXIgPSBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIK
LSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdBYm9ydGVkOiAlcycsIGUpCi0gICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgZGVmIGxvZ19yZXF1ZXN0KHNlbGYsIGNvZGU9Jy0nLCBzaXpl
PSctJyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLmxvZ19yZXF1ZXN0LiIi
IgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCciJXMiICVzICVzJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0bGluZSwgc3RyKGNvZGUpLCBzdHIoc2l6ZSkpCi0K
LSAgICBkZWYgbG9nX2Vycm9yKHNlbGYsICphcmdzKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFz
ZUhUVFBTZXJ2ZXIubG9nX2Vycm9yLiIiIgotCi0gICAgICAgICMgRGVzcGl0ZSB0aGUgbmFtZSwg
dGhpcyBtZXRob2QgaXMgZm9yIHdhcm5pbmdzIHRoYW4gZm9yIGVycm9ycy4KLSAgICAgICAgIyBG
b3IgZXhhbXBsZSwgSFRUUCBzdGF0dXMgY29kZSBpcyBsb2dnZWQgYnkgdGhpcyBtZXRob2QuCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKCclcyAtICVzJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5hZGRyZXNzX3N0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdzWzBdICUgYXJnc1sxOl0pCi0KLSAgICBkZWYgaXNfY2dpKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0IHdoZXRoZXIgc2VsZi5wYXRoIGNvcnJlc3BvbmRzIHRvIGEgQ0dJIHNjcmlw
dC4KLQotICAgICAgICBBZGQgZXh0cmEgY2hlY2sgdGhhdCBzZWxmLnBhdGggZG9lc24ndCBjb250
YWlucyAuLgotICAgICAgICBBbHNvIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGEgZXhlY3V0YWJsZSBm
aWxlIG9yIG5vdC4KLSAgICAgICAgSWYgdGhlIGZpbGUgaXMgbm90IGV4ZWN1dGFibGUsIGl0IGlz
IGhhbmRsZWQgYXMgc3RhdGljIGZpbGUgb3IgZGlyCi0gICAgICAgIHJhdGhlciB0aGFuIGEgQ0dJ
IHNjcmlwdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgQ0dJSFRUUFNlcnZlci5DR0lIVFRQ
UmVxdWVzdEhhbmRsZXIuaXNfY2dpKHNlbGYpOgotICAgICAgICAgICAgaWYgJy4uJyBpbiBzZWxm
LnBhdGg6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICAjIHN0cmlw
IHF1ZXJ5IHBhcmFtZXRlciBmcm9tIHJlcXVlc3QgcGF0aAotICAgICAgICAgICAgcmVzb3VyY2Vf
bmFtZSA9IHNlbGYucGF0aC5zcGxpdCgnPycsIDIpWzBdCi0gICAgICAgICAgICAjIGNvbnZlcnQg
cmVzb3VyY2VfbmFtZSBpbnRvIHJlYWwgcGF0aCBuYW1lIGluIGZpbGVzeXN0ZW0uCi0gICAgICAg
ICAgICBzY3JpcHRmaWxlID0gc2VsZi50cmFuc2xhdGVfcGF0aChyZXNvdXJjZV9uYW1lKQotICAg
ICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHNjcmlwdGZpbGUpOgotICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZXhlY3V0YWJsZShz
Y3JpcHRmaWxlKToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIHJl
dHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBfZ2V0X2xvZ2dlcl9mcm9t
X2NsYXNzKGMpOgotICAgIHJldHVybiBsb2dnaW5nLmdldExvZ2dlcignJXMuJXMnICUgKGMuX19t
b2R1bGVfXywgYy5fX25hbWVfXykpCi0KLQotZGVmIF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25z
KToKLSAgICBsb2dnaW5nLmFkZExldmVsTmFtZShjb21tb24uTE9HTEVWRUxfRklORSwgJ0ZJTkUn
KQotCi0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotICAgIGxvZ2dlci5zZXRMZXZl
bChsb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigpKSkKLSAgICBp
ZiBvcHRpb25zLmxvZ19maWxlOgotICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5oYW5kbGVycy5S
b3RhdGluZ0ZpbGVIYW5kbGVyKAotICAgICAgICAgICAgICAgIG9wdGlvbnMubG9nX2ZpbGUsICdh
Jywgb3B0aW9ucy5sb2dfbWF4LCBvcHRpb25zLmxvZ19jb3VudCkKLSAgICBlbHNlOgotICAgICAg
ICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKCkKLSAgICBmb3JtYXR0ZXIgPSBsb2dn
aW5nLkZvcm1hdHRlcigKLSAgICAgICAgICAgICdbJShhc2N0aW1lKXNdIFslKGxldmVsbmFtZSlz
XSAlKG5hbWUpczogJShtZXNzYWdlKXMnKQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1h
dHRlcikKLSAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQotCi0gICAgZGVmbGF0ZV9sb2df
bGV2ZWxfbmFtZSA9IGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKAotICAgICAgICBvcHRpb25zLmRlZmxh
dGVfbG9nX2xldmVsLnVwcGVyKCkpCi0gICAgX2dldF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9E
ZWZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAgIGRlZmxhdGVfbG9nX2xldmVsX25hbWUpCi0gICAg
X2dldF9sb2dnZXJfZnJvbV9jbGFzcyh1dGlsLl9JbmZsYXRlcikuc2V0TGV2ZWwoCi0gICAgICAg
IGRlZmxhdGVfbG9nX2xldmVsX25hbWUpCi0KLQotZGVmIF9idWlsZF9vcHRpb25fcGFyc2VyKCk6
Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLWNvbmZpZycsIGRlc3Q9J2NvbmZpZ19maWxlJywgdHlwZT0nc3RyaW5nJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0oJ1BhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlLiBTZWUgdGhlIGZpbGUgY29tbWVudCAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIGZv
ciB0aGUgY29uZmlndXJhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUg
Zm9ybWF0JykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1IJywgJy0tc2VydmVyLWhvc3QnLCAn
LS1zZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3Qn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nc2VydmVyIGhvc3RuYW1lIHRvIGxpc3RlbiB0bycpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1WJywgJy0tdmFsaWRhdGlvbi1ob3N0JywgJy0tdmFsaWRhdGlvbl9ob3N0JywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSd2YWxpZGF0aW9uX2hvc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2
ZXIgaG9zdG5hbWUgdG8gdmFsaWRhdGUgaW4gYWJzb2x1dGUgcGF0aC4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PWNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwb3J0IHRvIGxpc3RlbiB0bycpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1QJywgJy0tdmFsaWRhdGlvbi1wb3J0JywgJy0tdmFsaWRhdGlvbl9w
b3J0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2YWxpZGF0aW9uX3BvcnQnLCB0eXBl
PSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgcG9ydCB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRo
LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy13JywgJy0td2Vic29jay1oYW5kbGVycycsICct
LXdlYnNvY2tfaGFuZGxlcnMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tf
aGFuZGxlcnMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy4nLAotICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCdUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgV2ViU29ja2V0IGhhbmRs
ZXIgZmlsZXMuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWYgdGhlIHBhdGggaXMg
cmVsYXRpdmUsIC0tZG9jdW1lbnQtcm9vdCBpcyB1c2VkICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnYXMgdGhlIGJhc2UuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0t
d2Vic29jay1oYW5kbGVycy1tYXAtZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgJy0td2Vi
c29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vi
c29ja19oYW5kbGVyc19tYXBfZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1O
b25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdXZWJTb2NrZXQgaGFuZGxlcnMgbWFw
IGZpbGUuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRWFjaCBsaW5lIGNvbnNpc3Rz
IG9mIGFsaWFzX3Jlc291cmNlX3BhdGggYW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnZXhpc3RpbmdfcmVzb3VyY2VfcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcy4nKSkKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zY2FuLWRpcicsICctLXNjYW5fZGlyJywgZGVzdD0n
c2Nhbl9kaXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSgnTXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciAtLXdlYnNvY2st
aGFuZGxlcnMuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnT25seSBoYW5kbGVycyB1
bmRlciB0aGlzIGRpcmVjdG9yeSBhcmUgc2Nhbm5lZCAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2FuZCByZWdpc3RlcmVkIHRvIHRoZSBzZXJ2ZXIuICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnVXNlZnVsIGZvciBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gdGhlIGhhbmRsZXIg
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290IGRpcmVjdG9yeSBjb250YWlucyBs
b3RzIG9mIGZpbGVzIHRoYXQgYXJlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm90
IGhhbmRsZXIgZmlsZSBvciBhcmUgaGFuZGxlciBmaWxlcyBidXQgeW91ICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZG9uXCd0IHdhbnQgdGhlbSB0byBiZSByZWdpc3RlcmVkLiAnKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1hbGxvdy1oYW5kbGVycy1vdXRzaWRlLXJvb3QtZGly
JywKLSAgICAgICAgICAgICAgICAgICAgICAnLS1hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3Rf
ZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdhbGxvd19oYW5kbGVyc19vdXRzaWRl
X3Jvb3RfZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ1NjYW5zIFdlYlNvY2tldCBoYW5kbGVycyBldmVuIGlmIHRoZWlyIGNhbm9uaWNh
bCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGggaXMgbm90IHVuZGVyIC0td2Vi
c29jay1oYW5kbGVycy4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWQnLCAnLS1kb2N1bWVu
dC1yb290JywgJy0tZG9jdW1lbnRfcm9vdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
ZG9jdW1lbnRfcm9vdCcsIGRlZmF1bHQ9Jy4nLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J0RvY3VtZW50IHJvb3QgZGlyZWN0b3J5LicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy14Jywg
Jy0tY2dpLXBhdGhzJywgJy0tY2dpX3BhdGhzJywgZGVzdD0nY2dpX3BhdGhzJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0o
J0NHSSBwYXRocyByZWxhdGl2ZSB0byBkb2N1bWVudF9yb290LicKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnQ29tbWEtc2VwYXJhdGVkLiAoZS5nIC14IC9jZ2ksL2h0YmluKSAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0ZpbGVzIHVuZGVyIGRvY3VtZW50X3Jvb3QvY2dpX3Bh
dGggYXJlIGhhbmRsZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcyBDR0kgcHJv
Z3JhbXMuIE11c3QgYmUgZXhlY3V0YWJsZS4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXQn
LCAnLS10bHMnLCBkZXN0PSd1c2VfdGxzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSd1c2UgVExTICh3c3M6Ly8pJykKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtbW9kdWxlJywgJy0tdGxzX21vZHVsZScsIGRlc3Q9
J3Rsc19tb2R1bGUnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IFtfVExTX0JZX1NUQU5EQVJEX01PRFVMRSwgX1RM
U19CWV9QWU9QRU5TU0xdLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSBzc2wgbW9k
dWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkLiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ1VzZSBw
eU9wZW5TU0wgbW9kdWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgKF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTCkpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tcHJpdmF0ZS1rZXknLCAnLS1wcml2YXRlX2tleScs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ncHJpdmF0ZV9rZXknLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBwcml2YXRlIGtleSBmaWxlLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1jJywgJy0tY2VydGlmaWNhdGUnLCBkZXN0PSdjZXJ0aWZpY2F0
ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIGNlcnRpZmlj
YXRlIGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWF1dGgnLCBk
ZXN0PSd0bHNfY2xpZW50X2F1dGgnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nUmVx
dWVzdHMgVExTIGNsaWVudCBhdXRoIG9uIGV2ZXJ5IGNvbm5lY3Rpb24uJykKLSAgICBwYXJzZXIu
YWRkX29wdGlvbignLS10bHMtY2xpZW50LWNlcnQtb3B0aW9uYWwnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J3Rsc19jbGllbnRfY2VydF9vcHRpb25hbCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnTWFrZXMgY2xpZW50IGNlcnRpZmljYXRlIG9wdGlvbmFsIGV2ZW4gdGhv
dWdoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVExTIGNsaWVudCBhdXRoIGlzIGVu
YWJsZWQuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNsaWVudC1jYScsIGRlc3Q9
J3Rsc19jbGllbnRfY2EnLCBkZWZhdWx0PScnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
KCdTcGVjaWZpZXMgYSBwZW0gZmlsZSB3aGljaCBjb250YWlucyBhIHNldCBvZiAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NvbmNhdGVuYXRlZCBDQSBjZXJ0aWZpY2F0ZXMgd2hpY2gg
YXJlIHVzZWQgdG8gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZSBjZXJ0
aWZpY2F0ZXMgcGFzc2VkIGZyb20gY2xpZW50cycpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWJhc2ljLWF1dGgnLCBkZXN0PSd1c2VfYmFzaWNfYXV0aCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdSZXF1aXJlcyBCYXNpYyBhdXRoZW50aWNhdGlvbi4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLWJhc2ljLWF1dGgtY3JlZGVudGlhbCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0nYmFzaWNfYXV0aF9jcmVkZW50aWFsJywgZGVmYXVsdD0ndGVzdDp0ZXN0JywKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdTcGVjaWZpZXMgdGhlIGNyZWRlbnRpYWwgb2YgYmFz
aWMgYXV0aGVudGljYXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICdieSB1c2VybmFtZTpw
YXNzd29yZCBwYWlyIChlLmcuIHRlc3Q6dGVzdCkuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LWwnLCAnLS1sb2ctZmlsZScsICctLWxvZ19maWxlJywgZGVzdD0nbG9nX2ZpbGUnLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J0xvZyBmaWxlLicpCi0gICAgIyBDdXN0
b20gbG9nIGxldmVsOgotICAgICMgLSBGSU5FOiBQcmludHMgc3RhdHVzIG9mIGVhY2ggZnJhbWUg
cHJvY2Vzc2luZyBzdGVwCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0t
bG9nX2xldmVsJywgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSds
b2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2Vz
PVsnZmluZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYnVnJywgJ2luZm8n
LCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwu
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kZWZsYXRlLWxvZy1sZXZlbCcsICctLWRlZmxh
dGVfbG9nX2xldmVsJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RlZmxhdGVfbG9nX2xldmVsJywgZGVmYXVsdD0nd2Fy
bicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2Fy
bmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Y3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwgZm9yIF9E
ZWZsYXRlciBhbmQgX0luZmxhdGVyLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGhyZWFk
LW1vbml0b3ItaW50ZXJ2YWwtaW4tc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICAnLS10aHJl
YWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3RocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYycsCi0gICAgICAgICAgICAgICAgICAgICAg
dHlwZT0naW50JywgZGVmYXVsdD0tMSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnSWYg
cG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQsIHJ1biBhIHRocmVhZCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ21vbml0b3IgdG8gc2hvdyB0aGUgc3RhdHVzIG9mIHNlcnZlciB0
aHJlYWRzICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVyaW9kaWNhbGx5IGluIHRo
ZSBzcGVjaWZpZWQgaW50ZXZhbCBpbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nl
Y29uZC4gSWYgbm9uLXBvc2l0aXZlIGludGVnZXIgaXMgc3BlY2lmaWVkLCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Rpc2FibGUgdGhlIHRocmVhZCBtb25pdG9yLicpKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLWxvZy1tYXgnLCAnLS1sb2dfbWF4JywgZGVzdD0nbG9nX21heCcs
IHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9MT0df
TUFYX0JZVEVTLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBtYXhpbXVtIGJ5dGVz
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctY291bnQnLCAnLS1sb2dfY291bnQnLCBk
ZXN0PSdsb2dfY291bnQnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcsIGRlZmF1
bHQ9X0RFRkFVTFRfTE9HX0JBQ0tVUF9DT1VOVCwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdMb2cgYmFja3VwIGNvdW50JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1hbGxvdy1kcmFm
dDc1JywgZGVzdD0nYWxsb3dfZHJhZnQ3NScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1z
dHJpY3QnLCBkZXN0PSdzdHJpY3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcScsICctLXF1ZXVlJywgZGVzdD0ncmVxdWVzdF9x
dWV1ZV9zaXplJywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9E
RUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdy
ZXF1ZXN0IHF1ZXVlIHNpemUnKQotCi0gICAgcmV0dXJuIHBhcnNlcgotCi0KLWNsYXNzIFRocmVh
ZE1vbml0b3IodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgZGFlbW9uID0gVHJ1ZQotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGludGVydmFsX2luX3NlYyk6Ci0gICAgICAgIHRocmVhZGluZy5UaHJl
YWQuX19pbml0X18oc2VsZiwgbmFtZT0nVGhyZWFkTW9uaXRvcicpCi0KLSAgICAgICAgc2VsZi5f
bG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5faW50
ZXJ2YWxfaW5fc2VjID0gaW50ZXJ2YWxfaW5fc2VjCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdGhyZWFkX25hbWVfbGlzdCA9IFtdCi0gICAg
ICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZGluZy5lbnVtZXJhdGUoKToKLSAgICAgICAgICAg
ICAgICB0aHJlYWRfbmFtZV9saXN0LmFwcGVuZCh0aHJlYWQubmFtZSkKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5pbmZvKAotICAgICAgICAgICAgICAgICIlZCBhY3RpdmUgdGhyZWFkczogJXMi
LAotICAgICAgICAgICAgICAgIHRocmVhZGluZy5hY3RpdmVfY291bnQoKSwKLSAgICAgICAgICAg
ICAgICAnLCAnLmpvaW4odGhyZWFkX25hbWVfbGlzdCkpCi0gICAgICAgICAgICB0aW1lLnNsZWVw
KHNlbGYuX2ludGVydmFsX2luX3NlYykKLQotCi1kZWYgX3BhcnNlX2FyZ3NfYW5kX2NvbmZpZyhh
cmdzKToKLSAgICBwYXJzZXIgPSBfYnVpbGRfb3B0aW9uX3BhcnNlcigpCi0KLSAgICAjIEZpcnN0
LCBwYXJzZSBvcHRpb25zIHdpdGhvdXQgY29uZmlndXJhdGlvbiBmaWxlLgotICAgIHRlbXBvcmFy
eV9vcHRpb25zLCB0ZW1wb3JhcnlfYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykK
LSAgICBpZiB0ZW1wb3JhcnlfYXJnczoKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAg
ICAgICAgICdVbnJlY29nbml6ZWQgcG9zaXRpb25hbCBhcmd1bWVudHM6ICVyJywgdGVtcG9yYXJ5
X2FyZ3MpCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiB0ZW1wb3Jhcnlfb3B0aW9ucy5j
b25maWdfZmlsZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29uZmlnX2ZwID0gb3Blbih0
ZW1wb3Jhcnlfb3B0aW9ucy5jb25maWdfZmlsZSwgJ3InKQotICAgICAgICBleGNlcHQgSU9FcnJv
ciwgZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAgICAgJ0Zh
aWxlZCB0byBvcGVuIGNvbmZpZ3VyYXRpb24gZmlsZSAlcjogJXInLAotICAgICAgICAgICAgICAg
IHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxlLAotICAgICAgICAgICAgICAgIGUpCi0gICAg
ICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGNvbmZpZ19wYXJzZXIgPSBDb25maWdQYXJz
ZXIuU2FmZUNvbmZpZ1BhcnNlcigpCi0gICAgICAgIGNvbmZpZ19wYXJzZXIucmVhZGZwKGNvbmZp
Z19mcCkKLSAgICAgICAgY29uZmlnX2ZwLmNsb3NlKCkKLQotICAgICAgICBhcmdzX2Zyb21fY29u
ZmlnID0gW10KLSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGNvbmZpZ19wYXJzZXIuaXRlbXMo
J3B5d2Vic29ja2V0Jyk6Ci0gICAgICAgICAgICBhcmdzX2Zyb21fY29uZmlnLmFwcGVuZCgnLS0n
ICsgbmFtZSkKLSAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKHZhbHVlKQotICAg
ICAgICBpZiBhcmdzIGlzIE5vbmU6Ci0gICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZp
ZwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXJncyA9IGFyZ3NfZnJvbV9jb25maWcgKyBh
cmdzCi0gICAgICAgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncyhhcmdzPWFyZ3MpCi0gICAgZWxz
ZToKLSAgICAgICAgcmV0dXJuIHRlbXBvcmFyeV9vcHRpb25zLCB0ZW1wb3JhcnlfYXJncwotCi0K
LWRlZiBfbWFpbihhcmdzPU5vbmUpOgotICAgICIiIllvdSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9u
IGZyb20geW91ciBvd24gcHJvZ3JhbSwgYnV0IHBsZWFzZSBub3RlIHRoYXQKLSAgICB0aGlzIGZ1
bmN0aW9uIGhhcyBzb21lIHNpZGUtZWZmZWN0cyB0aGF0IG1pZ2h0IGFmZmVjdCB5b3VyIHByb2dy
YW0uIEZvcgotICAgIGV4YW1wbGUsIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbiB1c2UgaW4gdGhp
cyBtZXRob2QgcmVwbGFjZXMgaW1wbGVtZW50YXRpb24KLSAgICBvZiBvcy5wb3BlbjMuCi0gICAg
IiIiCi0KLSAgICBvcHRpb25zLCBhcmdzID0gX3BhcnNlX2FyZ3NfYW5kX2NvbmZpZyhhcmdzPWFy
Z3MpCi0KLSAgICBvcy5jaGRpcihvcHRpb25zLmRvY3VtZW50X3Jvb3QpCi0KLSAgICBfY29uZmln
dXJlX2xvZ2dpbmcob3B0aW9ucykKLQotICAgIGlmIG9wdGlvbnMuYWxsb3dfZHJhZnQ3NToKLSAg
ICAgICAgbG9nZ2luZy53YXJuaW5nKCctLWFsbG93X2RyYWZ0NzUgb3B0aW9uIGlzIG9ic29sZXRl
LicpCi0KLSAgICBpZiBvcHRpb25zLnN0cmljdDoKLSAgICAgICAgbG9nZ2luZy53YXJuaW5nKCct
LXN0cmljdCBvcHRpb24gaXMgb2Jzb2xldGUuJykKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IENs
ZWFuIHVwIGluaXRpYWxpemF0aW9uIG9mIENHSSByZWxhdGVkIHZhbHVlcy4gTW92ZSBzb21lCi0g
ICAgIyBvZiBjb2RlIGhlcmUgdG8gV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgY2xhc3MgaWYgaXQn
cyBiZXR0ZXIuCi0gICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBbXQotICAgIG9wdGlvbnMu
aXNfZXhlY3V0YWJsZV9tZXRob2QgPSBOb25lCi0gICAgaWYgb3B0aW9ucy5jZ2lfcGF0aHM6Ci0g
ICAgICAgIG9wdGlvbnMuY2dpX2RpcmVjdG9yaWVzID0gb3B0aW9ucy5jZ2lfcGF0aHMuc3BsaXQo
JywnKQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKLSAg
ICAgICAgICAgIGN5Z3dpbl9wYXRoID0gTm9uZQotICAgICAgICAgICAgIyBGb3IgV2luMzIgUHl0
aG9uLCBpdCBpcyBleHBlY3RlZCB0aGF0IENZR1dJTl9QQVRICi0gICAgICAgICAgICAjIGlzIHNl
dCB0byBhIGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCi0gICAgICAgICAgICAjIEZvciBl
eGFtcGxlLCB3ZWJzb2NrZXRfc2VydmVyLnB5IGluIENocm9taXVtIHNldHMgQ1lHV0lOX1BBVEgg
dG8KLSAgICAgICAgICAgICMgZnVsbCBwYXRoIG9mIHRoaXJkX3BhcnR5L2N5Z3dpbi9iaW4uCi0g
ICAgICAgICAgICBpZiAnQ1lHV0lOX1BBVEgnIGluIG9zLmVudmlyb246Ci0gICAgICAgICAgICAg
ICAgY3lnd2luX3BhdGggPSBvcy5lbnZpcm9uWydDWUdXSU5fUEFUSCddCi0gICAgICAgICAgICB1
dGlsLndyYXBfcG9wZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpCi0KLSAgICAgICAgICAgIGRlZiBf
X2NoZWNrX3NjcmlwdChzY3JpcHRwYXRoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gdXRpbC5n
ZXRfc2NyaXB0X2ludGVycChzY3JpcHRwYXRoLCBjeWd3aW5fcGF0aCkKLQotICAgICAgICAgICAg
b3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCA9IF9fY2hlY2tfc2NyaXB0Ci0KLSAgICBpZiBv
cHRpb25zLnVzZV90bHM6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBpcyBOb25lOgot
ICAgICAgICAgICAgaWYgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRs
c19tb2R1bGUgPSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRQotICAgICAgICAgICAgICAgIGxvZ2dp
bmcuZGVidWcoJ1VzaW5nIHNzbCBtb2R1bGUnKQotICAgICAgICAgICAgZWxpZiBfaW1wb3J0X3B5
b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllf
UFlPUEVOU1NMCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgcHlPcGVuU1NM
IG1vZHVsZScpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoCi0gICAgICAgICAgICAgICAgICAgICAgICAnVExTIHN1cHBvcnQgcmVxdWlyZXMgc3Ns
IG9yIHB5T3BlblNTTCBtb2R1bGUuJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAg
ICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToK
LSAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dp
bmcuY3JpdGljYWwoJ3NzbCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAg
ICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19C
WV9QWU9QRU5TU0w6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9weW9wZW5zc2woKToKLSAg
ICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdweU9wZW5TU0wgbW9kdWxlIGlzIG5vdCBh
dmFpbGFibGUnKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdJbnZhbGlkIC0tdGxzLW1vZHVsZSBvcHRpb246
ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlKQot
ICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBub3Qgb3B0aW9ucy5wcml2YXRl
X2tleSBvciBub3Qgb3B0aW9ucy5jZXJ0aWZpY2F0ZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoCi0gICAgICAgICAgICAgICAgICAgICdUbyB1c2UgVExTLCBzcGVjaWZ5IHByaXZhdGVf
a2V5IGFuZCBjZXJ0aWZpY2F0ZS4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAg
ICBpZiAob3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwgYW5kCi0gICAgICAgICAgICBu
b3Qgb3B0aW9ucy50bHNfY2xpZW50X2F1dGgpOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNh
bCgnQ2xpZW50IGF1dGhlbnRpY2F0aW9uIG11c3QgYmUgZW5hYmxlZCB0byAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdzcGVjaWZ5IHRsc19jbGllbnRfY2VydF9vcHRpb25hbCcpCi0g
ICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgIGVsc2U6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxz
X21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1VzZSAt
LXRscy1tb2R1bGUgb3B0aW9uIG9ubHkgdG9nZXRoZXIgd2l0aCAnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICctLXVzZS10bHMgb3B0aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgx
KQotCi0gICAgICAgIGlmIG9wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgnVExTIG11c3QgYmUgZW5hYmxlZCBmb3IgY2xpZW50IGF1dGhlbnRpY2F0
aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG9wdGlvbnMudGxz
X2NsaWVudF9jZXJ0X29wdGlvbmFsOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVExT
IG11c3QgYmUgZW5hYmxlZCBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uLicpCi0gICAgICAgICAg
ICBzeXMuZXhpdCgxKQotCi0gICAgaWYgbm90IG9wdGlvbnMuc2Nhbl9kaXI6Ci0gICAgICAgIG9w
dGlvbnMuc2Nhbl9kaXIgPSBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnMKLQotICAgIGlmIG9wdGlv
bnMudXNlX2Jhc2ljX2F1dGg6Ci0gICAgICAgIG9wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50aWFs
ID0gJ0Jhc2ljICcgKyBiYXNlNjQuYjY0ZW5jb2RlKAotICAgICAgICAgICAgb3B0aW9ucy5iYXNp
Y19hdXRoX2NyZWRlbnRpYWwpCi0KLSAgICB0cnk6Ci0gICAgICAgIGlmIG9wdGlvbnMudGhyZWFk
X21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjID4gMDoKLSAgICAgICAgICAgICMgUnVuIGEgdGhyZWFk
IG1vbml0b3IgdG8gc2hvdyB0aGUgc3RhdHVzIG9mIHNlcnZlciB0aHJlYWRzIGZvcgotICAgICAg
ICAgICAgIyBkZWJ1Z2dpbmcuCi0gICAgICAgICAgICBUaHJlYWRNb25pdG9yKG9wdGlvbnMudGhy
ZWFkX21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjKS5zdGFydCgpCi0KLSAgICAgICAgc2VydmVyID0g
V2ViU29ja2V0U2VydmVyKG9wdGlvbnMpCi0gICAgICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkK
LSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdtb2Rf
cHl3ZWJzb2NrZXQ6ICVzJyAlIGUpCi0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ21vZF9weXdl
YnNvY2tldDogJXMnICUgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgc3lzLmV4aXQo
MSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIF9tYWluKHN5cy5hcmd2WzE6
XSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGM1MzMyNzk3NDk3YjU4MGUzYjdlZmYyZjg4
ZDE4OGQ3MDQxZjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw1NyArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgZXhwb3J0cyBw
dWJsaWMgc3ltYm9scy4KLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkVVRGOEV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZy
YW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2hpeGllNzUgaW1wb3J0
IFN0cmVhbUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQg
RnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKLQot
IyBUaGVzZSBtZXRob2RzIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IFdlYlNvY2tldCBjbGll
bnQgZGV2ZWxvcGVycyB0byBoYXZlCi0jIHRoZWlyIGltcGxlbWVudGF0aW9ucyByZWNlaXZlIGJy
b2tlbiBkYXRhIGluIHRlc3RzLgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGlt
cG9ydCBjcmVhdGVfY2xvc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHli
aSBpbXBvcnQgY3JlYXRlX2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBjcmVhdGVfbGVuZ3RoX2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVh
bV9oeWJpIGltcG9ydCBjcmVhdGVfcGluZ19mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfcG9uZ19mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV90ZXh0X2ZyYW1lCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC91dGlsLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjI0YWUzOTQyZDdmZTJjZjc3Yjk4ODQ5NWVmNmUyOGEx
YmY0OGRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDE2ICsw
LDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCB1dGlsaXRpZXMuCi0iIiIK
LQotCi1pbXBvcnQgYXJyYXkKLWltcG9ydCBlcnJubwotCi0jIEltcG9ydCBoYXNoIGNsYXNzZXMg
ZnJvbSBhIG1vZHVsZSBhdmFpbGFibGUgYW5kIHJlY29tbWVuZGVkIGZvciBlYWNoIFB5dGhvbgot
IyB2ZXJzaW9uIGFuZCByZS1leHBvcnQgdGhvc2Ugc3ltYm9sLiBVc2Ugc2hhIGFuZCBtZDUgbW9k
dWxlIGluIFB5dGhvbiAyLjQsIGFuZAotIyBoYXNobGliIG1vZHVsZSBpbiBQeXRob24gMi42Lgot
dHJ5OgotICAgIGltcG9ydCBoYXNobGliCi0gICAgbWQ1X2hhc2ggPSBoYXNobGliLm1kNQotICAg
IHNoYTFfaGFzaCA9IGhhc2hsaWIuc2hhMQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGltcG9y
dCBtZDUKLSAgICBpbXBvcnQgc2hhCi0gICAgbWQ1X2hhc2ggPSBtZDUubWQ1Ci0gICAgc2hhMV9o
YXNoID0gc2hhLnNoYQotCi1pbXBvcnQgU3RyaW5nSU8KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQg
b3MKLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHRyYWNlYmFjawotaW1wb3J0IHps
aWIKLQotdHJ5OgotICAgIGZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBmYXN0X21hc2tpbmcK
LWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBwYXNzCi0KLQotZGVmIGdldF9zdGFja190cmFjZSgp
OgotICAgICIiIkdldCB0aGUgY3VycmVudCBzdGFjayB0cmFjZSBhcyBzdHJpbmcuCi0KLSAgICBU
aGlzIGlzIG5lZWRlZCB0byBzdXBwb3J0IFB5dGhvbiAyLjMuCi0gICAgVE9ETzogUmVtb3ZlIHRo
aXMgd2hlbiB3ZSBvbmx5IHN1cHBvcnQgUHl0aG9uIDIuNCBhbmQgYWJvdmUuCi0gICAgICAgICAg
VXNlIHRyYWNlYmFjay5mb3JtYXRfZXhjIGluc3RlYWQuCi0gICAgIiIiCi0KLSAgICBvdXQgPSBT
dHJpbmdJTy5TdHJpbmdJTygpCi0gICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPW91dCkKLSAg
ICByZXR1cm4gb3V0LmdldHZhbHVlKCkKLQotCi1kZWYgcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2Vw
dGlvbihtZXNzYWdlLCBleGMpOgotICAgICIiIlByZXBlbmQgbWVzc2FnZSB0byB0aGUgZXhjZXB0
aW9uLiIiIgotCi0gICAgZXhjLmFyZ3MgPSAobWVzc2FnZSArIHN0cihleGMpLCkKLSAgICByZXR1
cm4KLQotCi1kZWYgX190cmFuc2xhdGVfaW50ZXJwKGludGVycCwgY3lnd2luX3BhdGgpOgotICAg
ICIiIlRyYW5zbGF0ZSBpbnRlcnAgcHJvZ3JhbSBwYXRoIGZvciBXaW4zMiBweXRob24gdG8gcnVu
IGN5Z3dpbiBwcm9ncmFtCi0gICAgKGUuZy4gcGVybCkuICBOb3RlIHRoYXQgaXQgZG9lc24ndCBz
dXBwb3J0IHBhdGggdGhhdCBjb250YWlucyBzcGFjZSwKLSAgICB3aGljaCBpcyB0eXBpY2FsbHkg
dHJ1ZSBmb3IgVW5peCwgd2hlcmUgIyEtc2NyaXB0IGlzIHdyaXR0ZW4uCi0gICAgRm9yIFdpbjMy
IHB5dGhvbiwgY3lnd2luX3BhdGggaXMgYSBkaXJlY3Rvcnkgb2YgY3lnd2luIGJpbmFyaWVzLgot
Ci0gICAgQXJnczoKLSAgICAgIGludGVycDogaW50ZXJwIGNvbW1hbmQgbGluZQotICAgICAgY3ln
d2luX3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dpbiBiaW5hcnksIG9yIE5vbmUKLSAgICBS
ZXR1cm5zOgotICAgICAgdHJhbnNsYXRlZCBpbnRlcnAgY29tbWFuZCBsaW5lLgotICAgICIiIgot
ICAgIGlmIG5vdCBjeWd3aW5fcGF0aDoKLSAgICAgICAgcmV0dXJuIGludGVycAotICAgIG0gPSBy
ZS5tYXRjaCgnXlteIF0qLyhbXiBdKykoIC4qKT8nLCBpbnRlcnApCi0gICAgaWYgbToKLSAgICAg
ICAgY21kID0gb3MucGF0aC5qb2luKGN5Z3dpbl9wYXRoLCBtLmdyb3VwKDEpKQotICAgICAgICBy
ZXR1cm4gY21kICsgbS5ncm91cCgyKQotICAgIHJldHVybiBpbnRlcnAKLQotCi1kZWYgZ2V0X3Nj
cmlwdF9pbnRlcnAoc2NyaXB0X3BhdGgsIGN5Z3dpbl9wYXRoPU5vbmUpOgotICAgICIiIkdldHMg
IyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5lIGZyb20gdGhlIHNjcmlwdC4KLQotICAgIEl0IGFs
c28gZml4ZXMgY29tbWFuZCBwYXRoLiAgV2hlbiBDeWd3aW4gUHl0aG9uIGlzIHVzZWQsIGUuZy4g
aW4gV2ViS2l0LAotICAgIGl0IGNvdWxkIHJ1biAiL3Vzci9iaW4vcGVybCAtd1QgaGVsbG8ucGwi
LgotICAgIFdoZW4gV2luMzIgUHl0aG9uIGlzIHVzZWQsIGUuZy4gaW4gQ2hyb21pdW0sIGl0IGNv
dWxkbid0LiAgU28sIGZpeAotICAgICIvdXNyL2Jpbi9wZXJsIiB0byAiPGN5Z3dpbl9wYXRoPlxw
ZXJsLmV4ZSIuCi0KLSAgICBBcmdzOgotICAgICAgc2NyaXB0X3BhdGg6IHBhdGhuYW1lIG9mIHRo
ZSBzY3JpcHQKLSAgICAgIGN5Z3dpbl9wYXRoOiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3aW4gYmlu
YXJ5LCBvciBOb25lCi0gICAgUmV0dXJuczoKLSAgICAgICMhLWludGVycHJldGVyIGNvbW1hbmQg
bGluZSwgb3IgTm9uZSBpZiBpdCBpcyBub3QgIyEtc2NyaXB0LgotICAgICIiIgotICAgIGZwID0g
b3BlbihzY3JpcHRfcGF0aCkKLSAgICBsaW5lID0gZnAucmVhZGxpbmUoKQotICAgIGZwLmNsb3Nl
KCkKLSAgICBtID0gcmUubWF0Y2goJ14jISguKiknLCBsaW5lKQotICAgIGlmIG06Ci0gICAgICAg
IHJldHVybiBfX3RyYW5zbGF0ZV9pbnRlcnAobS5ncm91cCgxKSwgY3lnd2luX3BhdGgpCi0gICAg
cmV0dXJuIE5vbmUKLQotCi1kZWYgd3JhcF9wb3BlbjNfZm9yX3dpbihjeWd3aW5fcGF0aCk6Ci0g
ICAgIiIiV3JhcCBwb3BlbjMgdG8gc3VwcG9ydCAjIS1zY3JpcHQgb24gV2luZG93cy4KLQotICAg
IEFyZ3M6Ci0gICAgICBjeWd3aW5fcGF0aDogIHBhdGggZm9yIGN5Z3dpbiBiaW5hcnkgaWYgY29t
bWFuZCBwYXRoIGlzIG5lZWRlZCB0byBiZQotICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVk
LiAgTm9uZSBpZiBubyB0cmFuc2xhdGlvbiByZXF1aXJlZC4KLSAgICAiIiIKLQotICAgIF9fb3Jp
Z19wb3BlbjMgPSBvcy5wb3BlbjMKLQotICAgIGRlZiBfX3dyYXBfcG9wZW4zKGNtZCwgbW9kZT0n
dCcsIGJ1ZnNpemU9LTEpOgotICAgICAgICBjbWRsaW5lID0gY21kLnNwbGl0KCcgJykKLSAgICAg
ICAgaW50ZXJwID0gZ2V0X3NjcmlwdF9pbnRlcnAoY21kbGluZVswXSwgY3lnd2luX3BhdGgpCi0g
ICAgICAgIGlmIGludGVycDoKLSAgICAgICAgICAgIGNtZCA9IGludGVycCArICcgJyArIGNtZAot
ICAgICAgICByZXR1cm4gX19vcmlnX3BvcGVuMyhjbWQsIG1vZGUsIGJ1ZnNpemUpCi0KLSAgICBv
cy5wb3BlbjMgPSBfX3dyYXBfcG9wZW4zCi0KLQotZGVmIGhleGlmeShzKToKLSAgICByZXR1cm4g
JyAnLmpvaW4obWFwKGxhbWJkYSB4OiAnJTAyeCcgJSBvcmQoeCksIHMpKQotCi0KLWRlZiBnZXRf
Y2xhc3NfbG9nZ2VyKG8pOgotICAgIHJldHVybiBsb2dnaW5nLmdldExvZ2dlcigKLSAgICAgICAg
JyVzLiVzJyAlIChvLl9fY2xhc3NfXy5fX21vZHVsZV9fLCBvLl9fY2xhc3NfXy5fX25hbWVfXykp
Ci0KLQotY2xhc3MgTm9vcE1hc2tlcihvYmplY3QpOgotICAgICIiIkEgbWFza2luZyBvYmplY3Qg
dGhhdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGFzIFJlcGVhdGVkWG9yTWFza2VyIGJ1dAotICAg
IGp1c3QgcmV0dXJucyB0aGUgc3RyaW5nIHBhc3NlZCBpbiB3aXRob3V0IG1ha2luZyBhbnkgY2hh
bmdlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBwYXNzCi0K
LSAgICBkZWYgbWFzayhzZWxmLCBzKToKLSAgICAgICAgcmV0dXJuIHMKLQotCi1jbGFzcyBSZXBl
YXRlZFhvck1hc2tlcihvYmplY3QpOgotICAgICIiIkEgbWFza2luZyBvYmplY3QgdGhhdCBhcHBs
aWVzIFhPUiBvbiB0aGUgc3RyaW5nIGdpdmVuIHRvIG1hc2sgbWV0aG9kCi0gICAgd2l0aCB0aGUg
bWFza2luZyBieXRlcyBnaXZlbiB0byB0aGUgY29uc3RydWN0b3IgcmVwZWF0ZWRseS4gVGhpcyBv
YmplY3QKLSAgICByZW1lbWJlcnMgdGhlIHBvc2l0aW9uIGluIHRoZSBtYXNraW5nIGJ5dGVzIHRo
ZSBsYXN0IG1hc2sgbWV0aG9kIGNhbGwKLSAgICBlbmRlZCBhbmQgcmVzdW1lcyBmcm9tIHRoYXQg
cG9pbnQgb24gdGhlIG5leHQgbWFzayBtZXRob2QgY2FsbC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtYXNraW5nX2tleSk6Ci0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5ID0g
bWFza2luZ19rZXkKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSAwCi0KLSAgICBk
ZWYgX21hc2tfdXNpbmdfc3dpZyhzZWxmLCBzKToKLSAgICAgICAgbWFza2VkX2RhdGEgPSBmYXN0
X21hc2tpbmcubWFzaygKLSAgICAgICAgICAgICAgICBzLCBzZWxmLl9tYXNraW5nX2tleSwgc2Vs
Zi5fbWFza2luZ19rZXlfaW5kZXgpCi0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0g
KAotICAgICAgICAgICAgICAgIChzZWxmLl9tYXNraW5nX2tleV9pbmRleCArIGxlbihzKSkgJSBs
ZW4oc2VsZi5fbWFza2luZ19rZXkpKQotICAgICAgICByZXR1cm4gbWFza2VkX2RhdGEKLQotICAg
IGRlZiBfbWFza191c2luZ19hcnJheShzZWxmLCBzKToKLSAgICAgICAgcmVzdWx0ID0gYXJyYXku
YXJyYXkoJ0InKQotICAgICAgICByZXN1bHQuZnJvbXN0cmluZyhzKQotCi0gICAgICAgICMgVXNl
IHRlbXBvcmFyeSBsb2NhbCB2YXJpYWJsZXMgdG8gZWxpbWluYXRlIHRoZSBjb3N0IHRvIGFjY2Vz
cwotICAgICAgICAjIGF0dHJpYnV0ZXMKLSAgICAgICAgbWFza2luZ19rZXkgPSBtYXAob3JkLCBz
ZWxmLl9tYXNraW5nX2tleSkKLSAgICAgICAgbWFza2luZ19rZXlfc2l6ZSA9IGxlbihtYXNraW5n
X2tleSkKLSAgICAgICAgbWFza2luZ19rZXlfaW5kZXggPSBzZWxmLl9tYXNraW5nX2tleV9pbmRl
eAotCi0gICAgICAgIGZvciBpIGluIHhyYW5nZShsZW4ocmVzdWx0KSk6Ci0gICAgICAgICAgICBy
ZXN1bHRbaV0gXj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdCi0gICAgICAgICAgICBt
YXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlf
c2l6ZQotCi0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gbWFza2luZ19rZXlfaW5k
ZXgKLQotICAgICAgICByZXR1cm4gcmVzdWx0LnRvc3RyaW5nKCkKLQotICAgIGlmICdmYXN0X21h
c2tpbmcnIGluIGdsb2JhbHMoKToKLSAgICAgICAgbWFzayA9IF9tYXNrX3VzaW5nX3N3aWcKLSAg
ICBlbHNlOgotICAgICAgICBtYXNrID0gX21hc2tfdXNpbmdfYXJyYXkKLQotCi0jIEJ5IG1ha2lu
ZyB3Yml0cyBvcHRpb24gbmVnYXRpdmUsIHdlIGNhbiBzdXBwcmVzcyBDTUYvRkxHICgyIG9jdGV0
KSBhbmQKLSMgQURMRVIzMiAoNCBvY3RldCkgZmllbGRzIG9mIHpsaWIgc28gdGhhdCB3ZSBjYW4g
dXNlIHpsaWIgbW9kdWxlIGp1c3QgYXMKLSMgZGVmbGF0ZSBsaWJyYXJ5LiBESUNUSUQgd29uJ3Qg
YmUgYWRkZWQgYXMgZmFyIGFzIHdlIGRvbid0IHNldCBkaWN0aW9uYXJ5LgotIyBMWjc3IHdpbmRv
dyBvZiAzMksgd2lsbCBiZSB1c2VkIGZvciBib3RoIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNz
aW9uLgotIyBGb3IgZGVjb21wcmVzc2lvbiwgd2UgY2FuIGp1c3QgdXNlIDMySyB0byBjb3ZlciBh
bnkgd2luZG93cyBzaXplLiBGb3IKLSMgY29tcHJlc3Npb24sIHdlIHVzZSAzMksgc28gcmVjZWl2
ZXJzIG11c3QgdXNlIDMySy4KLSMKLSMgQ29tcHJlc3Npb24gbGV2ZWwgaXMgWl9ERUZBVUxUX0NP
TVBSRVNTSU9OLiBXZSBkb24ndCBoYXZlIHRvIG1hdGNoIGxldmVsCi0jIHRvIGRlY29kZS4KLSMK
LSMgU2VlIHpjb25mLmgsIGRlZmxhdGUuY2MsIGluZmxhdGUuY2Mgb2YgemxpYiBsaWJyYXJ5LCBh
bmQgemxpYm1vZHVsZS5jIG9mCi0jIFB5dGhvbi4gU2VlIGFsc28gUkZDMTk1MCAoWkxJQiAzLjMp
LgotCi0KLWNsYXNzIF9EZWZsYXRlcihvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHdpbmRvd19iaXRzKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX2NvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtd2luZG93
X2JpdHMpCi0KLSAgICBkZWYgY29tcHJlc3Moc2VsZiwgYnl0ZXMpOgotICAgICAgICBjb21wcmVz
c2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3MoYnl0ZXMpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAg
ICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcwotCi0gICAgZGVmIGNvbXByZXNzX2FuZF9mbHVz
aChzZWxmLCBieXRlcyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVz
cy5jb21wcmVzcyhieXRlcykKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyArPSBzZWxmLl9jb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBj
b21wcmVzc2VkX2J5dGVzCi0KLSAgICBkZWYgY29tcHJlc3NfYW5kX2ZpbmlzaChzZWxmLCBieXRl
cyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhi
eXRlcykKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyArPSBzZWxmLl9jb21wcmVzcy5mbHVzaCh6
bGliLlpfRklOSVNIKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0
ICVyJywgYnl0ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0
ICVyJywgY29tcHJlc3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMK
LQotCi1jbGFzcyBfSW5mbGF0ZXIob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3
aW5kb3dfYml0cyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IGdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLSAgICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5kb3dfYml0cwotCi0gICAgICAgIHNl
bGYuX3VuY29uc3VtZWQgPSAnJwotCi0gICAgICAgIHNlbGYucmVzZXQoKQotCi0gICAgZGVmIGRl
Y29tcHJlc3Moc2VsZiwgc2l6ZSk6Ci0gICAgICAgIGlmIG5vdCAoc2l6ZSA9PSAtMSBvciBzaXpl
ID4gMCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3NpemUgbXVzdCBiZSAtMSBvciBw
b3NpdGl2ZScpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGlmIHNpemUgPT0gLTE6Ci0gICAgICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9k
ZWNvbXByZXNzLmRlY29tcHJlc3Moc2VsZi5fdW5jb25zdW1lZCkKLSAgICAgICAgICAgICAgICAj
IFNlZSBQeXRob24gYnVnIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxMjA1MCB0bwotICAg
ICAgICAgICAgICAgICMgdW5kZXJzdGFuZCB3aHkgdGhlIHNhbWUgY29kZSBjYW5ub3QgYmUgdXNl
ZCBmb3IgdXBkYXRpbmcKLSAgICAgICAgICAgICAgICAjIHNlbGYuX3VuY29uc3VtZWQgZm9yIGhl
cmUgYW5kIGVsc2UgYmxvY2suCi0gICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9ICcn
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5fZGVjb21w
cmVzcy5kZWNvbXByZXNzKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkLCBz
aXplIC0gbGVuKGRhdGEpKQotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBzZWxm
Ll9kZWNvbXByZXNzLnVuY29uc3VtZWRfdGFpbAotICAgICAgICAgICAgaWYgc2VsZi5fZGVjb21w
cmVzcy51bnVzZWRfZGF0YToKLSAgICAgICAgICAgICAgICAjIEVuY291bnRlcmVkIGEgbGFzdCBi
bG9jayAoaS5lLiBhIGJsb2NrIHdpdGggQkZJTkFMID0gMSkgYW5kCi0gICAgICAgICAgICAgICAg
IyBmb3VuZCBhIG5ldyBzdHJlYW0gKHVudXNlZF9kYXRhKS4gV2UgY2Fubm90IHVzZSB0aGUgc2Ft
ZQotICAgICAgICAgICAgICAgICMgemxpYi5EZWNvbXByZXNzIG9iamVjdCBmb3IgdGhlIG5ldyBz
dHJlYW0uIENyZWF0ZSBhIG5ldwotICAgICAgICAgICAgICAgICMgRGVjb21wcmVzcyBvYmplY3Qg
dG8gZGVjb21wcmVzcyB0aGUgbmV3IG9uZS4KLSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAg
ICAgICAgIyBJdCdzIGZpbmUgdG8gaWdub3JlIHVuY29uc3VtZWRfdGFpbCBpZiB1bnVzZWRfZGF0
YSBpcyBub3QKLSAgICAgICAgICAgICAgICAjIGVtcHR5LgotICAgICAgICAgICAgICAgIHNlbGYu
X3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNzLnVudXNlZF9kYXRhCi0gICAgICAgICAgICAg
ICAgc2VsZi5yZXNldCgpCi0gICAgICAgICAgICAgICAgaWYgc2l6ZSA+PSAwIGFuZCBsZW4oZGF0
YSkgPT0gc2l6ZToKLSAgICAgICAgICAgICAgICAgICAgIyBkYXRhIGlzIGZpbGxlZC4gRG9uJ3Qg
Y2FsbCBkZWNvbXByZXNzIGFnYWluLgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgUmUtaW52b2tlIERlY29tcHJl
c3MuZGVjb21wcmVzcyB0byB0cnkgdG8gZGVjb21wcmVzcyBhbGwKLSAgICAgICAgICAgICAgICAg
ICAgIyBhdmFpbGFibGUgYnl0ZXMgYmVmb3JlIGludm9raW5nIHJlYWQgd2hpY2ggYmxvY2tzIHVu
dGlsCi0gICAgICAgICAgICAgICAgICAgICMgYW55IG5ldyBieXRlIGlzIGF2YWlsYWJsZS4KLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgIyBIZXJlLCBzaW5jZSB1bnVzZWRfZGF0YSBpcyBlbXB0eSwgZXZlbiBpZiB1bmNvbnN1
bWVkX3RhaWwgaXMKLSAgICAgICAgICAgICAgICAjIG5vdCBlbXB0eSwgYnl0ZXMgb2YgcmVxdWVz
dGVkIGxlbmd0aCBhcmUgYWxyZWFkeSBpbiBkYXRhLiBXZQotICAgICAgICAgICAgICAgICMgZG9u
J3QgaGF2ZSB0byAiY29udGludWUiIGhlcmUuCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAg
ICAgICBpZiBkYXRhOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdEZWNvbXByZXNz
ZWQgJXInLCBkYXRhKQotICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgZGVmIGFwcGVuZChzZWxm
LCBkYXRhKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdBcHBlbmRlZCAlcicsIGRhdGEp
Ci0gICAgICAgIHNlbGYuX3VuY29uc3VtZWQgKz0gZGF0YQotCi0gICAgZGVmIHJlc2V0KHNlbGYp
OgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jlc2V0JykKLSAgICAgICAgc2VsZi5fZGVj
b21wcmVzcyA9IHpsaWIuZGVjb21wcmVzc29iaigtc2VsZi5fd2luZG93X2JpdHMpCi0KLQotIyBD
b21wcmVzc2VzL2RlY29tcHJlc3NlcyBnaXZlbiBvY3RldHMgdXNpbmcgdGhlIG1ldGhvZCBpbnRy
b2R1Y2VkIGluIFJGQzE5NzkuCi0KLQotY2xhc3MgX1JGQzE5NzlEZWZsYXRlcihvYmplY3QpOgot
ICAgICIiIkEgY29tcHJlc3NvciBjbGFzcyB0aGF0IGFwcGxpZXMgREVGTEFURSB0byBnaXZlbiBi
eXRlIHNlcXVlbmNlIGFuZAotICAgIGZsdXNoZXMgdXNpbmcgdGhlIGFsZ29yaXRobSBkZXNjcmli
ZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpOgotICAgICAgICBzZWxm
Ll9kZWZsYXRlciA9IE5vbmUKLSAgICAgICAgaWYgd2luZG93X2JpdHMgaXMgTm9uZToKLSAgICAg
ICAgICAgIHdpbmRvd19iaXRzID0gemxpYi5NQVhfV0JJVFMKLSAgICAgICAgc2VsZi5fd2luZG93
X2JpdHMgPSB3aW5kb3dfYml0cwotICAgICAgICBzZWxmLl9ub19jb250ZXh0X3Rha2VvdmVyID0g
bm9fY29udGV4dF90YWtlb3ZlcgotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBieXRlcywgZW5kPVRy
dWUsIGJmaW5hbD1GYWxzZSk6Ci0gICAgICAgIGlmIHNlbGYuX2RlZmxhdGVyIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRlcihzZWxmLl93aW5kb3dfYml0cykK
LQotICAgICAgICBpZiBiZmluYWw6Ci0gICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9kZWZsYXRl
ci5jb21wcmVzc19hbmRfZmluaXNoKGJ5dGVzKQotICAgICAgICAgICAgIyBBZGQgYSBwYWRkaW5n
IGJsb2NrIHdpdGggQkZJTkFMID0gMCBhbmQgQlRZUEUgPSAwLgotICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICsgY2hyKDApCi0gICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQKLQotICAgICAgICByZXN1bHQgPSBzZWxmLl9kZWZsYXRl
ci5jb21wcmVzc19hbmRfZmx1c2goYnl0ZXMpCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAg
ICMgU3RyaXAgbGFzdCA0IG9jdGV0cyB3aGljaCBpcyBMRU4gYW5kIE5MRU4gZmllbGQgb2YgYQot
ICAgICAgICAgICAgIyBub24tY29tcHJlc3NlZCBibG9jayBhZGRlZCBmb3IgWl9TWU5DX0ZMVVNI
LgotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0WzotNF0KLQotICAgICAgICBpZiBzZWxmLl9u
b19jb250ZXh0X3Rha2VvdmVyIGFuZCBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9
IE5vbmUKLQotICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLQotY2xhc3MgX1JGQzE5NzlJbmZsYXRl
cihvYmplY3QpOgotICAgICIiIkEgZGVjb21wcmVzc29yIGNsYXNzIGZvciBieXRlIHNlcXVlbmNl
IGNvbXByZXNzZWQgYW5kIGZsdXNoZWQgZm9sbG93aW5nCi0gICAgdGhlIGFsZ29yaXRobSBkZXNj
cmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgd2luZG93X2JpdHM9emxpYi5NQVhfV0JJVFMpOgotICAgICAgICBzZWxmLl9p
bmZsYXRlciA9IF9JbmZsYXRlcih3aW5kb3dfYml0cykKLQotICAgIGRlZiBmaWx0ZXIoc2VsZiwg
Ynl0ZXMpOgotICAgICAgICAjIFJlc3RvcmUgc3RyaXBwZWQgTEVOIGFuZCBOTEVOIGZpZWxkIG9m
IGEgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQKLSAgICAgICAgIyBmb3IgWl9TWU5DX0ZMVVNI
LgotICAgICAgICBzZWxmLl9pbmZsYXRlci5hcHBlbmQoYnl0ZXMgKyAnXHgwMFx4MDBceGZmXHhm
ZicpCi0gICAgICAgIHJldHVybiBzZWxmLl9pbmZsYXRlci5kZWNvbXByZXNzKC0xKQotCi0KLWNs
YXNzIERlZmxhdGVTb2NrZXQob2JqZWN0KToKLSAgICAiIiJBIHdyYXBwZXIgY2xhc3MgZm9yIHNv
Y2tldCBvYmplY3QgdG8gaW50ZXJjZXB0IHNlbmQgYW5kIHJlY3YgdG8gcGVyZm9ybQotICAgIGRl
ZmxhdGUgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gdHJhbnNwYXJlbnRseS4KLSAgICAi
IiIKLQotICAgICMgU2l6ZSBvZiB0aGUgYnVmZmVyIHBhc3NlZCB0byByZWN2IHRvIHJlY2VpdmUg
Y29tcHJlc3NlZCBkYXRhLgotICAgIF9SRUNWX1NJWkUgPSA0MDk2Ci0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYu
X2RlZmxhdGVyID0gX0RlZmxhdGVyKHpsaWIuTUFYX1dCSVRTKQotICAgICAgICBzZWxmLl9pbmZs
YXRlciA9IF9JbmZsYXRlcih6bGliLk1BWF9XQklUUykKLQotICAgIGRlZiByZWN2KHNlbGYsIHNp
emUpOgotICAgICAgICAiIiJSZWNlaXZlcyBkYXRhIGZyb20gdGhlIHNvY2tldCBzcGVjaWZpZWQg
b24gdGhlIGNvbnN0cnVjdGlvbiB1cAotICAgICAgICB0byB0aGUgc3BlY2lmaWVkIHNpemUuIE9u
Y2UgYW55IGRhdGEgaXMgYXZhaWxhYmxlLCByZXR1cm5zIGl0IGV2ZW4KLSAgICAgICAgaWYgaXQn
cyBzbWFsbGVyIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplLgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIFRPRE8odHlvc2hpbm8pOiBBbGxvdyBjYWxsIHdpdGggc2l6ZT0wLiBJdCBzaG91bGQgYmxv
Y2sgdW50aWwgYW55Ci0gICAgICAgICMgZGVjb21wcmVzc2VkIGRhdGEgaXMgYXZhaWxhYmxlLgot
ICAgICAgICBpZiBzaXplIDw9IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vbi1w
b3NpdGl2ZSBzaXplIHBhc3NlZCcpCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBk
YXRhID0gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVzcyhzaXplKQotICAgICAgICAgICAgaWYgbGVu
KGRhdGEpICE9IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgICAgICAgICAg
cmVhZF9kYXRhID0gc2VsZi5fc29ja2V0LnJlY3YoRGVmbGF0ZVNvY2tldC5fUkVDVl9TSVpFKQot
ICAgICAgICAgICAgaWYgbm90IHJlYWRfZGF0YToKLSAgICAgICAgICAgICAgICByZXR1cm4gJycK
LSAgICAgICAgICAgIHNlbGYuX2luZmxhdGVyLmFwcGVuZChyZWFkX2RhdGEpCi0KLSAgICBkZWYg
c2VuZGFsbChzZWxmLCBieXRlcyk6Ci0gICAgICAgIHNlbGYuc2VuZChieXRlcykKLQotICAgIGRl
ZiBzZW5kKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoc2VsZi5f
ZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVzKSkKLSAgICAgICAgcmV0dXJuIGxlbihi
eXRlcykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9w
eXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTc5ZGYzNTk5OGQxMTUx
YjNiMDk4YTA1YTBiMWM4NzlkNDI1MmQ4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9i
YXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvY29tbW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGVh
ZGVycGFyc2VyaGFuZGxlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRl
cl91dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvbXV4LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5k
bGVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFy
a19oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFu
ZGxlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjczNWM3ZTJhM2RiOGRjN2M0
M2ZkMTcyMDE0OTVkNDM1Y2NlNjhjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5k
bGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29n
bGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCB1dGlsCi0KLQotY2xhc3MgWEhSQmVuY2htYXJrSGFuZGxlcihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBoZWFkZXJzLCByZmlsZSwgd2ZpbGUpOgotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLmhl
YWRlcnMgPSBoZWFkZXJzCi0gICAgICAgIHNlbGYucmZpbGUgPSByZmlsZQotICAgICAgICBzZWxm
LndmaWxlID0gd2ZpbGUKLQotICAgIGRlZiBkb19zZW5kKHNlbGYpOgotICAgICAgICBjb250ZW50
X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0aGVhZGVyKCdDb250ZW50LUxlbmd0aCcpKQot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVxdWVzdGVkIHRvIHJlY2VpdmUgJXMgYnl0
ZXMnLCBjb250ZW50X2xlbmd0aCkKLQotICAgICAgICBSRUNFSVZFX0JMT0NLX1NJWkUgPSAxMDI0
ICogMTAyNAotCi0gICAgICAgIGJ5dGVzX3RvX3JlY2VpdmUgPSBjb250ZW50X2xlbmd0aAotICAg
ICAgICB3aGlsZSBieXRlc190b19yZWNlaXZlID4gMDoKLSAgICAgICAgICAgIGJ5dGVzX3RvX3Jl
Y2VpdmVfaW5fdGhpc19sb29wID0gYnl0ZXNfdG9fcmVjZWl2ZQotICAgICAgICAgICAgaWYgYnl0
ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPiBSRUNFSVZFX0JMT0NLX1NJWkU6Ci0gICAgICAg
ICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPSBSRUNFSVZFX0JMT0NLX1NJ
WkUKLSAgICAgICAgICAgIHJlY2VpdmVkX2RhdGEgPSBzZWxmLnJmaWxlLnJlYWQoYnl0ZXNfdG9f
cmVjZWl2ZV9pbl90aGlzX2xvb3ApCi0gICAgICAgICAgICBpZiByZWNlaXZlZF9kYXRhICE9ICgn
YScgKiBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0IGJvZHkgdmVyaWZpY2F0aW9uIGZhaWxlZCcpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBieXRlc190b19yZWNlaXZlIC09IGxlbihy
ZWNlaXZlZF9kYXRhKQotICAgICAgICBpZiBieXRlc190b19yZWNlaXZlIDwgMDoKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgJWQgbW9yZSBieXRlcyB0aGFuIGV4cGVj
dGVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKC1ieXRlc190b19yZWNlaXZl
KSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgUmV0dXJuIHRoZSBudW1iZXIgb2Yg
cmVjZWl2ZWQgYnl0ZXMgYmFjayB0byB0aGUgY2xpZW50LgotICAgICAgICByZXNwb25zZV9ib2R5
ID0gJyVkJyAlIGNvbnRlbnRfbGVuZ3RoCi0gICAgICAgIHNlbGYud2ZpbGUud3JpdGUoCi0gICAg
ICAgICAgICAnSFRUUC8xLjEgMjAwIE9LXHJcbicKLSAgICAgICAgICAgICdDb250ZW50LVR5cGU6
IHRleHQvaHRtbFxyXG4nCi0gICAgICAgICAgICAnQ29udGVudC1MZW5ndGg6ICVkXHJcbicKLSAg
ICAgICAgICAgICdcclxuJXMnICUgKGxlbihyZXNwb25zZV9ib2R5KSwgcmVzcG9uc2VfYm9keSkp
Ci0gICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQotCi0gICAgZGVmIGRvX3JlY2VpdmUoc2VsZik6
Ci0gICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0Nv
bnRlbnQtTGVuZ3RoJykpCi0gICAgICAgIHJlcXVlc3RfYm9keSA9IHNlbGYucmZpbGUucmVhZChj
b250ZW50X2xlbmd0aCkKLQotICAgICAgICByZXF1ZXN0X2FycmF5ID0gcmVxdWVzdF9ib2R5LnNw
bGl0KCcgJykKLSAgICAgICAgaWYgbGVuKHJlcXVlc3RfYXJyYXkpIDwgMjoKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnTWFsZm9ybWVkIHJlcXVlc3QgYm9keTogJXInLCByZXF1ZXN0
X2JvZHkpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFBhcnNlIHRoZSBzaXplIHBh
cmFtZXRlci4KLSAgICAgICAgYnl0ZXNfdG9fc2VuZCA9IHJlcXVlc3RfYXJyYXlbMF0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZCA9IGludChieXRlc190b19zZW5kKQot
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnTWFsZm9ybWVkIHNpemUgcGFyYW1ldGVyOiAlcicsIGJ5dGVzX3RvX3NlbmQpCi0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0ZWQgdG8g
c2VuZCAlcyBieXRlcycsIGJ5dGVzX3RvX3NlbmQpCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgdHJh
bnNmZXIgZW5jb2RpbmcgcGFyYW1ldGVyLgotICAgICAgICBjaHVua2VkX21vZGUgPSBGYWxzZQot
ICAgICAgICBtb2RlX3BhcmFtZXRlciA9IHJlcXVlc3RfYXJyYXlbMV0KLSAgICAgICAgaWYgbW9k
ZV9wYXJhbWV0ZXIgPT0gJ2NodW5rZWQnOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdSZXF1ZXN0ZWQgY2h1bmtlZCB0cmFuc2ZlciBlbmNvZGluZycpCi0gICAgICAgICAgICBjaHVu
a2VkX21vZGUgPSBUcnVlCi0gICAgICAgIGVsaWYgbW9kZV9wYXJhbWV0ZXIgIT0gJ25vbmUnOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdJbnZhbGlkIG1vZGUgcGFyYW1ldGVyOiAl
cicsIG1vZGVfcGFyYW1ldGVyKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBXcml0
ZSBhIGhlYWRlcgotICAgICAgICByZXNwb25zZV9oZWFkZXIgPSAoCi0gICAgICAgICAgICAnSFRU
UC8xLjEgMjAwIE9LXHJcbicKLSAgICAgICAgICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbVxyXG4nKQotICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAg
ICByZXNwb25zZV9oZWFkZXIgKz0gJ1RyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXHJcblxyXG4n
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXNwb25zZV9oZWFkZXIgKz0gKAotICAgICAg
ICAgICAgICAgICdDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbicgJSBieXRlc190b19zZW5kKQot
ICAgICAgICBzZWxmLndmaWxlLndyaXRlKHJlc3BvbnNlX2hlYWRlcikKLSAgICAgICAgc2VsZi53
ZmlsZS5mbHVzaCgpCi0KLSAgICAgICAgIyBXcml0ZSBhIGJvZHkKLSAgICAgICAgU0VORF9CTE9D
S19TSVpFID0gMTAyNCAqIDEwMjQKLQotICAgICAgICB3aGlsZSBieXRlc190b19zZW5kID4gMDoK
LSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gYnl0ZXNfdG9fc2VuZAot
ICAgICAgICAgICAgaWYgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AgPiBTRU5EX0JMT0NLX1NJ
WkU6Ci0gICAgICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AgPSBTRU5EX0JM
T0NLX1NJWkUKLQotICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgICAg
IHNlbGYud2ZpbGUud3JpdGUoJyV4XHJcbicgJSBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCkK
LSAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoJ2EnICogYnl0ZXNfdG9fc2VuZF9pbl90aGlz
X2xvb3ApCi0gICAgICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi53ZmlsZS53cml0ZSgnXHJcbicpCi0gICAgICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQot
ICAgICAgICAgICAgYnl0ZXNfdG9fc2VuZCAtPSBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcAot
Ci0gICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUo
JzBcclxuXHJcbicpCi0gICAgICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvc2V0dXAucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGFkYThkYjNlMTExYjBhNTQzMWQ3MWU2MWY0NDkxM2VjNWRhYzkyNDguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvc2V0
dXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlNldCB1cCBzY3JpcHQgZm9yIG1vZF9weXdl
YnNvY2tldC4KLSIiIgotCi0KLWZyb20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBFeHRl
bnNpb24KLWltcG9ydCBzeXMKLQotCi1fUEFDS0FHRV9OQU1FID0gJ21vZF9weXdlYnNvY2tldCcK
LQotIyBCdWlsZCBhbmQgdXNlIGEgQysrIGV4dGVuc2lvbiBmb3IgZmFzdGVyIG1hc2tpbmcuIFNX
SUcgaXMgcmVxdWlyZWQuCi1fVVNFX0ZBU1RfTUFTS0lORyA9IEZhbHNlCi0KLWlmIHN5cy52ZXJz
aW9uIDwgJzIuMyc6Ci0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgJyVzIHJlcXVpcmVzIFB5dGhv
biAyLjMgb3IgbGF0ZXIuJyAlIF9QQUNLQUdFX05BTUUKLSAgICBzeXMuZXhpdCgxKQotCi1pZiBf
VVNFX0ZBU1RfTUFTS0lORzoKLSAgICBzZXR1cChleHRfbW9kdWxlcz1bCi0gICAgICAgICAgICAg
ICAgICBFeHRlbnNpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2Nr
ZXQvX2Zhc3RfbWFza2luZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFsnbW9kX3B5d2Vi
c29ja2V0L2Zhc3RfbWFza2luZy5pJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN3aWdf
b3B0cz1bJy1jKysnXSldKQotCi1zZXR1cChhdXRob3I9J1l1em8gRnVqaXNoaW1hJywKLSAgICAg
IGF1dGhvcl9lbWFpbD0neXV6b0BjaHJvbWl1bS5vcmcnLAotICAgICAgZGVzY3JpcHRpb249J1dl
YlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlci4nLAotICAgICAgbG9uZ19k
ZXNjcmlwdGlvbj0oCi0gICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQgaXMgYW4gQXBhY2hl
IEhUVFAgU2VydmVyIGV4dGVuc2lvbiBmb3IgJwotICAgICAgICAgICAgICAndGhlIFdlYlNvY2tl
dCBQcm90b2NvbCAoUkZDIDY0NTUpLiAnCi0gICAgICAgICAgICAgICdTZWUgbW9kX3B5d2Vic29j
a2V0L19faW5pdF9fLnB5IGZvciBtb3JlIGRldGFpbC4nKSwKLSAgICAgIGxpY2Vuc2U9J1NlZSBD
T1BZSU5HJywKLSAgICAgIG5hbWU9X1BBQ0tBR0VfTkFNRSwKLSAgICAgIHBhY2thZ2VzPVtfUEFD
S0FHRV9OQU1FLCBfUEFDS0FHRV9OQU1FICsgJy5oYW5kc2hha2UnXSwKLSAgICAgIHVybD0naHR0
cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3B5d2Vic29ja2V0LycsCi0gICAgICAjIFNlZSB0aGUgc291
cmNlIG9mIGRpc3R1dGlscy52ZXJzaW9uLCBkaXN0dXRpbHMudmVyc2lvbnByZWRpY2F0ZSBhbmQK
LSAgICAgICMgZGlzdHV0aWxzLmRpc3QgdG8gdW5kZXJzdGFuZCBob3cgdG8gbmFtZSB2ZXJzaW9u
IG51bWJlcnMuCi0gICAgICB2ZXJzaW9uPScwLjcuOScsCi0gICAgICApCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19faW5pdF9fLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19faW5pdF9fLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NhY2VydC5wZW0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L2NlcnQvY2FjZXJ0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGRhZGFlMTIxYmRkM2FkYjc0NDM4M2NkM2JmMDhjMjI2Zjg1NTRiYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2Fj
ZXJ0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElG
SUNBVEUtLS0tLQotTUlJQ3ZEQ0NBaVdnQXdJQkFnSUpBS3FWZ2hrR0YxclNNQTBHQ1NxR1NJYjNE
UUVCQlFVQU1Fa3hDekFKQmdOVgotQkFZVEFrcFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklH
QTFVRUNoTUxjSGwzWldKemIyTnJaWFF4RkRBUwotQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUI0
WERURXlNRFl3TmpBM01qUXpNMW9YRFRNNU1UQXlNekEzTWpRegotTTFvd1NURUxNQWtHQTFVRUJo
TUNTbEF4RGpBTUJnTlZCQWdUQlZSdmEzbHZNUlF3RWdZRFZRUUtFd3R3ZVhkbAotWW5OdlkydGxk
REVVTUJJR0ExVUVBeE1MY0hsM1pXSnpiMk5yWlhRd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRAot
Z1kwQU1JR0pBb0dCQUtvU0VXMmJpUXhWck1NS2RuLzhQSnpEWWlTWERQUjlXUWJMUlJRMUdtNWpr
Q1lpYWhYVwotdTJDYlRUaGZQUGZpMk5IQTNJK0hsVDdnTzl5UjdSVlV2TjZJU1V6R3dYREVxNGY0
VU5xdFFPaFFhcXFLK0NaOQotTE8vQmhPL1lZZk5yYlNQbFl6SFVLYVQ5ZXNlN3hPOVZ6VktMVytx
VWYyTWpoNC8rU3p4QkROUDdBZ01CQUFHagotZ2Fzd2dhZ3dIUVlEVlIwT0JCWUVGT3NXZHhDU3V5
aHdhWmVhYjZCb1RobzMrK2J6TUhrR0ExVWRJd1J5TUhDQQotRk9zV2R4Q1N1eWh3YVplYWI2Qm9U
aG8zKytiem9VMmtTekJKTVFzd0NRWURWUVFHRXdKS1VERU9NQXdHQTFVRQotQ0JNRlZHOXJlVzh4
RkRBU0JnTlZCQW9UQzNCNWQyVmljMjlqYTJWME1SUXdFZ1lEVlFRREV3dHdlWGRsWW5OdgotWTJ0
bGRJSUpBS3FWZ2hrR0YxclNNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUZCUUFE
Z1lFQQotZ3NNSTFXRVlxTncvamhVSWRyVEJjQ3hKMFg2aEp2QTl6aUtBTlZtMVJzKzRQM1lEQXJr
UThiQ3I2eFkrS3c3cwotWnAweUU3ZE04R01kaStEVTZoTDN0M0U1ZU1rVFMxeVpyOVdDSzRmMlJM
bytldDk4c2VsWnlkcEhlbUYzREpKMwotZ0FqOFN4NExCYUc4Q2IvV25FTVB2M014RzNmQkU1ZmF2
RjZWNGpVMDdoUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvY2VydC9jZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jZXJ0LnBlbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUzNzlhNzJiMGRhYzVmNDE5NzljODAyYzY2M2Rm
OGI4OGRlYTgyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L2NlcnQvY2VydC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCww
IEBACi1DZXJ0aWZpY2F0ZToKLSAgICBEYXRhOgotICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0g
ICAgICAgIFNlcmlhbCBOdW1iZXI6IDEgKDB4MSkKLSAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRo
bTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQz1KUCwgU1Q9VG9reW8s
IE89cHl3ZWJzb2NrZXQsIENOPXB5d2Vic29ja2V0Ci0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAg
ICAgICBOb3QgQmVmb3JlOiBKdW4gIDYgMDc6MjU6MDggMjAxMiBHTVQKLSAgICAgICAgICAgIE5v
dCBBZnRlciA6IE9jdCAyMyAwNzoyNTowOCAyMDM5IEdNVAotICAgICAgICBTdWJqZWN0OiBDPUpQ
LCBTVD1Ub2t5bywgTz1weXdlYnNvY2tldCwgQ049cHl3ZWJzb2NrZXQKLSAgICAgICAgU3ViamVj
dCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNh
RW5jcnlwdGlvbgotICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgxMDI0IGJpdCkKLSAgICAg
ICAgICAgICAgICBNb2R1bHVzICgxMDI0IGJpdCk6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmRl
OjEwOmNlOjNhOjVhOjA0OmE0OjFjOjI5OjkzOjVjOjIzOjgyOjFhOgotICAgICAgICAgICAgICAg
ICAgICBmMjowNjowMTplNjoyYjphNDowZjpkZDo3Nzo0OTo3Njo4OTowMzphMjoyMToKLSAgICAg
ICAgICAgICAgICAgICAgZGU6MDQ6NzU6YzY6ZTI6ZGQ6ZmI6MzU6Mjc6M2E6YTI6OTI6OGU6MTI6
NjI6Ci0gICAgICAgICAgICAgICAgICAgIDJiOjNlOjFmOmY0Ojc4OmRmOmI2Ojk0OmNiOjI3OmQ2
OmNiOmQ2OjM3OmQ3OgotICAgICAgICAgICAgICAgICAgICA1YzowODpmMDowOTozZTpjOTpjZToy
NDoyZDowMDpjOTpkZjo0YTplMDo5OToKLSAgICAgICAgICAgICAgICAgICAgZTU6ZmI6MjM6YTk6
ZTI6ZDY6Yzk6M2Q6OTY6ZmE6MDE6ODg6ZGU6NWE6ODk6Ci0gICAgICAgICAgICAgICAgICAgIGIw
OmNmOjAzOjY3OjZmOjA0Ojg2OjFkOmVmOjYyOjFjOjU1OmE5OjA3OjlhOgotICAgICAgICAgICAg
ICAgICAgICAyZTo2NjoyYTo3Mzo1Yjo0Yzo2MjowMzpmOTo4Mjo4MzpkYjo2ODpiZjpiODoKLSAg
ICAgICAgICAgICAgICAgICAgNGI6MGI6OGI6OTM6MTE6Yjg6NTQ6NzM6N2IKLSAgICAgICAgICAg
ICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25z
OgotICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKLSAgICAgICAgICAgICAg
ICBDQTpGQUxTRQotICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKLSAgICAgICAgICAg
ICAgICBTU0wgU2VydmVyCi0gICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKLSAgICAgICAg
ICAgICAgICBPcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZQotICAgICAgICAgICAgWDUwOXYz
IFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIDgyOkExOjczOjhCOjE2
OjBDOjdDOkU0OkQzOjQ2Ojk1OjEzOjk1OjFBOjMyOkMxOjg0OkU5OjA2OjAwCi0gICAgICAgICAg
ICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlp
ZDpFQjoxNjo3NzoxMDo5MjpCQjoyODo3MDo2OTo5Nzo5QTo2RjpBMDo2ODo0RToxQTozNzpGQjpF
NjpGMwotCi0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCi0g
ICAgICAgIDZiOmIzOjQ2OjI5OjAyOmRmOmIwOmM4OjhlOmM0OmQ3OjdmOmEwOjFlOjBkOjFhOmVi
OjJmOgotICAgICAgICBkZjpkMTo0ODo1NzozNjo1Zjo5NTo4YzoxYjpmMDo1MTpkNjo1MjplNzo4
ZDo4NDozYjo5ZjoKLSAgICAgICAgZDg6ZWQ6MjI6OWM6YWE6YmQ6ZWU6OWI6OTA6MWQ6ODQ6YTM6
NGM6MGI6Y2I6ZWI6NjQ6NzM6Ci0gICAgICAgIGJhOmY3OjE1OmNlOmRhOjVmOmRiOjhiOjE1OjA3
OmE2OjI4OjdmOmI5OjhjOjExOjliOjY0OgotICAgICAgICBkMzpmMTpiZTo1Mjo0ZjpjMzpkODo1
ODpmZTpkZTo1Njo2Mzo2MzozYjo1MTplZDphNzo4MToKLSAgICAgICAgZjk6MDU6NTE6NzA6NjM6
MzI6MDk6MGU6OTQ6N2U6MDU6ZmU6YTE6NTY6MTg6MzQ6OTg6ZDU6Ci0gICAgICAgIDk5OjFlOjRl
OjI3OjM4Ojg5OjkwOjZhOmU1OmNlOjYwOjM1OjAxOmY1OmRlOjM0OjYwOmIxOgotICAgICAgICBj
YjphZQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDbURDQ0FnR2dBd0lCQWdJQkFU
QU5CZ2txaGtpRzl3MEJBUVVGQURCSk1Rc3dDUVlEVlFRR0V3SktVREVPCi1NQXdHQTFVRUNCTUZW
RzlyZVc4eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3Ci1lWGRs
WW5OdlkydGxkREFlRncweE1qQTJNRFl3TnpJMU1EaGFGdzB6T1RFd01qTXdOekkxTURoYU1Fa3hD
ekFKCi1CZ05WQkFZVEFrcFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwz
WldKemIyTnJaWFF4Ci1GREFTQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUlHZk1BMEdDU3FHU0li
M0RRRUJBUVVBQTRHTkFEQ0JpUUtCCi1nUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQw
bDJpUU9pSWQ0RWRjYmkzZnMxSnpxaWtvNFNZaXMrCi1IL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5
YzRrTFFESjMwcmdtZVg3STZuaTFzazlsdm9CaU41YWliRFBBMmR2Ci1CSVlkNzJJY1Zha0htaTVt
S25OYlRHSUQrWUtEMjJpL3VFc0xpNU1SdUZSemV3SURBUUFCbzRHUE1JR01NQWtHCi1BMVVkRXdR
Q01BQXdFUVlKWUlaSUFZYjRRZ0VCQkFRREFnWkFNQ3dHQ1dDR1NBR0crRUlCRFFRZkZoMVBjR1Z1
Ci1VMU5NSUVkbGJtVnlZWFJsWkNCRFpYSjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVncUZ6aXhZ
TWZPVFRScFVUCi1sUm95d1lUcEJnQXdId1lEVlIwakJCZ3dGb0FVNnhaM0VKSzdLSEJwbDVwdm9H
aE9HamY3NXZNd0RRWUpLb1pJCi1odmNOQVFFRkJRQURnWUVBYTdOR0tRTGZzTWlPeE5kL29CNE5H
dXN2MzlGSVZ6WmZsWXdiOEZIV1V1ZU5oRHVmCi0yTzBpbktxOTdwdVFIWVNqVEF2TDYyUnp1dmNW
enRwZjI0c1ZCNllvZjdtTUVadGswL0crVWsvRDJGaiszbFpqCi1ZenRSN2FlQitRVlJjR015Q1E2
VWZnWCtvVllZTkpqVm1SNU9KemlKa0dybHptQTFBZlhlTkdDeHk2ND0KLS0tLS0tRU5EIENFUlRJ
RklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jbGllbnRfY2VydC5w
MTIgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxNGUxMzk5Mjc5ODJmYTk4MjNhNTcyMzFhZjExMzQ5OWQ2YTVhOGIwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI1ODIKemNtWStGWEgqamk3S01gIzB0Qmcy
cXpGaXRQIWY8UEhBLSpOTG9AVl9nY2YwdDhXQigjST97JVlSRngqdWAlKXlKCnoxbkchSzM1YnFo
WHJYN0FiOVElamY4NnVseCVadi0+JUheQWFacHdla1A0MllufWc2diNPdVlBOEd0bXZWalNJagp6
RnBoNVUoKFolZkFTd1N1a1lYR3A9RipBKTBSZmk8YCVlT2ReRnBCaS1mI3M3ZmlyPz4yY1ckVCM7
MipHQVBfQWUKejFfI2xybjJFKGVLT01KNk4yNllKbmVfQGhwfVNLUFhVQjdGTWVyX341fDFxZ0N7
VHFubkJ1djEka3BwNU9CeiVACno8bXlTdys/WT5eakFaNCNYQS19KiFRc2J1T2hXKHNPODM2Nigk
OygxQT5tbyhPLSV4KGhuKD15Wjt5fk5HI1FYMQp6Z0hrU2leXjhjdjRUVFNMOXZuNXFSKD5fRDNm
Jm9jKmp3UGdJI0tAUSNBc0wpRDtCRCZXYjJkK0kxXko3bj59WVoKemJDWG85Zk9AZyFAZFdZYTJW
JX07KSF7PHpEY3wocHZKSWF4VzdOZE8lTzZmPnImYU9ycEhre29fUjltUTQ3dW9iCno/bD45fG58
WDNgYWdwXkc7THdYUjU8KGxyK1I8Y0w1alRRKD9eRDxrUm8hSF9UI3A/eTNkfV50Q1lWIThSXk4/
fQp6QyolWG05TGVmPmo3aGxyLT9qSGxwfHdmQSZebi1zOzwheiRxRDF4UHEhOEtRMX1+ZHVwd35C
TTFnc35AQW87Q3EKendSZ1V8Ml5kfU4tZ1Y7QGFZa3U4SSV9fDxsNlFNPz1kfkZZcGJHRkg5JnZO
Z0taKlN5Y0lTfG1jdU9SP2wmQ093Cnpze3pkNXptZWx4cU4xRFF5e31QZ0I9dSNmeklOUGtCMG9O
KmNrM3ZgKzF7IVlYUH57RVZJN1ZxaCp+dWFXX35VQwp6bFIzM1JaMDVIaGtDLTFlSXApLUBZXnl2
Yy18UiUhKjlkdzduZlcpeWpjSElZZjZyPWFDdChVaGktRkptMm57XykKeiV7dWxCVVhSYDI8Pmx4
fWVHbVNtUko+NW90a0AoK3Bqc1BxOzRoWjZGSUtsI3tueFAhQUwhMjhfX0FZZmxgVmd7CnpsUlJh
QVJ8Vm15MV9gXmJialpyekF7USRsWWVqSVlkXkEkWj5XJmp5bk09S2BUbDR3Vikzd0BkMUpjYC01
LUNHSgp6eHFeQDhfKCE8WkYycWxoX1p9fW5yP1MmNSp6K0ZAKXYoWjFFSXM7SG19ITF+TVRMIWox
QGMkWkhMUn1WKD07Xm8KemRVcGZ5P28+eXpvbF9zaTw8VUVCPXQoZWVCemdKXldZd3NIQ0c5MzRz
JGQpQHFxSHdnXnlaTXtgXmpKITk7dHI2Cnplb1VheSYkK0J5R3xOXl96b0FIXnRZSWc+aGFZd3xA
fGMzMV53KG5VZDdrKFltRUo3NlZZNzkrKEMoXyQ7MU1zVQp6aGlOaStCNWdTckRqfDk+PEA/NlIm
OHpibThicj9DLU5uMWNrKCs8TkslNyk2di13V3E0PU1fVGJ0MTk0elUqeUYKemg8b3Q8SEJXbm94
QiUxazkoTTBvPE5nKVJnSFMoIz9lZEVRQiFefEZrLV8oYWBiVUJMQUsqaH5hen4hX3h1PVQ0Cno2
RzVLLWFYSm90SFFsRUM4Q1U1fFJ5TVJ1UWtYRSk/XnY2KGk9TXUpPSRebyUwIXlzNUdWUmFYWjJT
Mkg0STgzTAp6cSliYHxQeHsoODlXMzJ6cTRzcXpIK0JBS1A5dWFERXBEOElJQTlELUg0NUMlVlQ/
SkojTWErQkBpOU1QZEYtIyMKek54RjVUdX1pel9oeiRTS1owX18mIVlwMXlhZFZ6b2NARXkrQmVm
SkN0Q1NWZDUoSnkoPEM2SWNDV31EbUh3QzhUCnpSe2txdlJAPzNyekxHMiRaZGN4LTV2RlJAZCRR
I0REK357ZGhAbWRfZWBCQjYqVVk2Uis0XiNVJXo0bHR4OUIlOwp6TlY4eip7R2NHTTtncTJSdHlk
antIMFMwcCN6PDYlN20zISV7P01RdWE8YEBlNWJPdGJkIUVjP0dedXhmNGd4Y0kKei1GN1NUWWl+
dkRibXZDWjNORGNmSGo4PkM5RlY2amQxfShwU3dyZ0drKlFaOVJyNCk2IXNTa1RVcWJ4YmFlYTJ1
Cnp3U2AkeW9zUSllYiVvX3ZKTyohQWBkUjtZNGs+JnFZenVhLVpORTwzRkU9SStlU1U7eCFwdF5B
MzU+b0lvUGBKcQp6Wmx+KXJDNjBMK2tTeEFnb1BFfHJHalZAPzJBeSpYYj0kY2BjX0wzPUV6aGpC
VUQ9aDFfNCVlQkNmbGomRUhabU8KenN7MWJ8TnV4Nis7SyNLQj1Ua198aWt8eyowMWRrJDlLYTZg
Y1JVPU1jWWlOIWstYSkyUEQzMWg8Y1RzJWtQaG9aCnpPKTJ3X1Q5LTh3Mk5NJiZxMnBsNF5LcX1D
UGU9bDlocSRXNCF0O0pEJXxVSigyOHZEYk0qTD5WRjdiV19Ye2IxNAp6R053KHc+RV9TOWA8O3hR
bFBgQHNkPjZtM24yKUwpMHAhWFJyRCMyNWlJa1JEcykxdWpOJVNzeXcjNjJ2ZHYmQWwKemNkai1Z
bCM2K0BhMFdzY1U8M2BndlckMnctKF5IZkVSeXhzTnNxNm1LMGQ4Oz8wTFNlTmglTkVlMEJZSjRJ
TChhCnokV1huZClQQlc8QVRre3klMlM5R1BhMnF5SlckXkpKX2NvX1hQMW05RX1qKVE/XmwkIypN
RHhQNXxtWTF6Y3EzeQp6Yj1AenlDWHVnd2R7Tmp4P2kyN2orelhPNCpWPn1aZS16QlF4KUh5bndM
YE5qKCE5dCk1NGRPO3pUVn4tTyM7VTsKek13cDBQVS11VUw/IyM4TC0pJnZtYm5BbW4jQCZhPnY9
Y1B9RVVRSlZ3YUR3OVY8LUl3WXRpVDl3KFRNZWEyJUR5Cnp8QTQwJE41dW9pUUVeX3tTMS1pYHE1
bHR0cGc+U0Q0cGFmaGZsQnw2UEU+IT5zaFdrb0VtWmhnK34wSHA8M0tUQAp6OWprJHFNQz0wJkJi
a15mUm80ZjM4Sn5pV0N8eEdQMGB3WjNGI2s4ZypJZE5ZJEdGLUF4OF48RHJCXmoyOFhiNnMKelJ8
O1Z2YXIlPHxUWkt+PjMwa0QzKVckQUQjKHR0YCNAeDdROE9ZYXBUX0p5TTF2VD9sYngtK19GKEpG
JXlTME8kCnpwUyNsfXcqMGo+Yn1NM2U7NEk+e3BNTT5zJWA/ZlNBRV9RYmBBbj5fViFraX0kOXdN
TjkoZlUxdUpHbTBNaTdoSwp6QTVsMGUxd1ZjXiRxbD81Z20+OEV2QnBTYVdmNVRJZzNaU2J1Smhw
O2ElKFora2N7Y2R2MVB1WCRlMkdBTj9KZjgKeldLTmdTPChNMkZOVWBSeGRCR31mPVMxcm5RKmVS
MTJxRl9DJiZwbkBgeSVDfkw5XlFfWjlsaCZHPVh2R0MhNDEwCnp5bik1bz0peDJpSlkrXj9eRUxq
bnRISGB9Syl6YT9JPXx2ISRoTDBuJkd6eXB6YUx3TmRlTT1Pald8LS09bVJfagp6eXQ/flZ4X185
QkV2Y2hMPzlodVVvYi01bityMT88eEBjZ301YXxWfEZjRlFPKmVJcHdaRW5+VkdMZXF2U0BXazIK
eikhK0QzLTt7NEBPTyliK2JRTyM9LUUrQmVPQGYhMzxpVDBtYjJwYjM4OHtHSVJhcmpkblRpJUA/
NHF3eSNxNjBZCnpxaUF8e3Q2bzQ5RU0xOEomdzhEQSN3UUREc0Z3TiRIRypNVEwyMUJRailZUmBX
NUw7WmZNTTwqckw9RklnfDBiSgp6VDlyN0ZsQkxMXnJWJTFVTyEzfEdERWFNIWpIUExyPzVRQnVD
QyFXKT5kcmZeUkNgYDdZUllaKEs+aWUwPnBKZF4KekpXX0h7JSleYyE2Pmx8OVA4P2M9aihCNTdZ
Sno4P1h5UXpFOXVHYX1kVjBQVHAzITtwIVNGKX10LWk+QzxFZEgrCnpNS0FTblYjISZTV2ZkfTBk
bGpYc3lRZnpzQDZpMCtkcVNISkx+Rjd+b3R8JEh3ZitGKjBqQ0sqdzVXb0ZAUTloTgp6aGxrJVN7
aDZDNTdDSTJfNVI5O2YzO3AtMT5EVW4qVV5lb0dqaHFvOypSKiRrVkUwMUo+VEpRUnN2OW96Jmsh
M3oKemtXVDsqMFFlME0zVUNMdzBEPUorZkdmY0Z2SlV8YFVkc0tfMzR0VHZIe2YmLVk4V0ZHaD9e
UCFYNTt5PUZadURzCmZmcldrMCVNKE9HblRNTjxoJnFAeUxkRFVfJk1jQWY/fDFrTWVqVU5vCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2tleS5wZW0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2Nl
cnQva2V5LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFlODU4MzE4ZjI5YmE2
YjQ2MjNiZDVmYmM0YTA4Y2U3M2Q5MDMxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQva2V5LnBlbQorKysgL2Rldi9udWxs
CkBAIC0xLDE1ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUNY
Z0lCQUFLQmdRRGVFTTQ2V2dTa0hDbVRYQ09DR3ZJR0FlWXJwQS9kZDBsMmlRT2lJZDRFZGNiaTNm
czEKLUp6cWlrbzRTWWlzK0gvUjQzN2FVeXlmV3k5WTMxMXdJOEFrK3ljNGtMUURKMzByZ21lWDdJ
Nm5pMXNrOWx2b0IKLWlONWFpYkRQQTJkdkJJWWQ3MkljVmFrSG1pNW1Lbk5iVEdJRCtZS0QyMmkv
dUVzTGk1TVJ1RlJ6ZXdJREFRQUIKLUFvR0JBSXVDdVYxVmNuYjdybThDd3RnWlA1WGdtWTh2U2p4
VGxkYWZhNlh2YXdFWVVUUDBTNzd2LzFsbGcxWXYKLVVJVitJK1BRZ0c5b1ZvWU9sMjJMb2ltSFMv
WjNlMWZzb3Q1dERZc3pHZTgvR2tzdDRvYVJlU294dkJVYTZXWHAKLVFTbzdZRkNhanVIdEUrVy9n
ekYrVUhiZHp6WElEalFaMzE0TE5GNXQrNFVuc0VQQkFrRUErZ2lySW1xV29NMnQKLTNVUjhmOG9l
a0VSd3NtRU1mOURINVlwSDRjdlVudkkra3dlc0MvcjJVOFNobysrZnlFTVVObTdhSVhHcU5MZ2EK
LW9nQU0rNE5YNFFKQkFPTmRTeFNheTIyZWdUR05vSWhMbmRsaldrdU90LzlGV2oya2xmLzRReEQ0
YmxNSlE1T3EKLVFkT0dBaDduVlFqcFBMUTVEN0NCVkFLcEdNMkNEK1FKQnRzQ1FFUDJrejM1cHhQ
eWxHM3VyY0MybWZReEJra1cKLVpDVmlCTlA1OEd3SjBiT2F1VE9TQkV3RlhXdUxxVHc4YUR3eEw0
OVVObXFjME4wZnBlMmZBZWhqM1VFQ1FRQ20KLUZIL0RqVThMdzd5YmRkak50bTZYWFB1WU5hZ3h6
M2Nia0I0QjNGY2hEbGVJVUR3TW9WRjBNVzliSTUvNTRtVjEKLVFEazF0VUtvcnR4dlFaSmFBRDRC
QWtFQWhHT0hRcVBkNmJCQm9GQnZwYUx6UEpNeHdMS3JCK1d0a3EvUWxDNzIKLUNsUmlNbjJnOFNB
TGlJTDNCRGdHWEtjS0UvV3k3am8vYWYvSkN6US9jUHF0L0E9PQotLS0tLS1FTkQgUlNBIFBSSVZB
VEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2JkNzAzZDgyMWVhNWJhZWUxNTU2MTFlZTg0N2YyNzBjYmEyNmY3NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L2NlcnQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2FjZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9j
ZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jbGllbnRfY2VydC5wMTIKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L2NlcnQva2V5LnBlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jbGllbnRfZm9yX3Rl
c3RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzdmODA1ZWU5NGU1NDk0NjllZDg3MGRhZTdlMGNjZjIwMjZi
ZWFiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMDAg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJXZWJTb2NrZXQgY2xpZW50IHV0aWxpdHkgZm9yIHRlc3RpbmcuCi0KLVRoaXMgbW9kdWxlIGNv
bnRhaW5zIGhlbHBlciBtZXRob2RzIGZvciBwZXJmb3JtaW5nIGhhbmRzaGFrZSwgZnJhbWUKLXNl
bmRpbmcvcmVjZWl2aW5nIGFzIGEgV2ViU29ja2V0IGNsaWVudC4KLQotVGhpcyBpcyBjb2RlIGZv
ciB0ZXN0aW5nIG1vZF9weXdlYnNvY2tldC4gS2VlcCB0aGlzIGNvZGUgaW5kZXBlbmRlbnQgZnJv
bQotbW9kX3B5d2Vic29ja2V0LiBEb24ndCBpbXBvcnQgZS5nLiBTdHJlYW0gY2xhc3MgZm9yIGdl
bmVyYXRpbmcgZnJhbWUgZm9yCi10ZXN0aW5nLiBVc2luZyB1dGlsLmhleGlmeSwgZXRjLiB0aGF0
IGFyZSBub3QgcmVsYXRlZCB0byBwcm90b2NvbCBwcm9jZXNzaW5nCi1pcyBhbGxvd2VkLgotCi1O
b3RlOgotVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCwgZS5nLiwgd2UgY3V0IGNvcm5lcnMg
aW4gaGFuZHNoYWtlLgotIiIiCi0KLQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGVycm5vCi1pbXBv
cnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgcmUKLWltcG9ydCBz
b2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aW1lCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotREVG
QVVMVF9QT1JUID0gODAKLURFRkFVTFRfU0VDVVJFX1BPUlQgPSA0NDMKLQotIyBPcGNvZGVzIGlu
dHJvZHVjZWQgaW4gSUVURiBIeUJpIDAxIGZvciB0aGUgbmV3IGZyYW1pbmcgZm9ybWF0Ci1PUENP
REVfQ09OVElOVUFUSU9OID0gMHgwCi1PUENPREVfQ0xPU0UgPSAweDgKLU9QQ09ERV9QSU5HID0g
MHg5Ci1PUENPREVfUE9ORyA9IDB4YQotT1BDT0RFX1RFWFQgPSAweDEKLU9QQ09ERV9CSU5BUlkg
PSAweDIKLQotIyBTdHJpbmdzIHVzZWQgZm9yIGhhbmRzaGFrZQotX1VQR1JBREVfSEVBREVSID0g
J1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi1fVVBHUkFERV9IRUFERVJfSElYSUU3NSA9ICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJwotX0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb246IFVw
Z3JhZGVcclxuJwotCi1XRUJTT0NLRVRfQUNDRVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RB
LTk1Q0EtQzVBQjBEQzg1QjExJwotCi0jIFN0YXR1cyBjb2RlcwotU1RBVFVTX05PUk1BTF9DTE9T
VVJFID0gMTAwMAotU1RBVFVTX0dPSU5HX0FXQVkgPSAxMDAxCi1TVEFUVVNfUFJPVE9DT0xfRVJS
T1IgPSAxMDAyCi1TVEFUVVNfVU5TVVBQT1JURURfREFUQSA9IDEwMDMKLVNUQVRVU19OT19TVEFU
VVNfUkVDRUlWRUQgPSAxMDA1Ci1TVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKLVNUQVRV
U19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSA9IDEwMDcKLVNUQVRVU19QT0xJQ1lfVklPTEFU
SU9OID0gMTAwOAotU1RBVFVTX01FU1NBR0VfVE9PX0JJRyA9IDEwMDkKLVNUQVRVU19NQU5EQVRP
UllfRVhUID0gMTAxMAotU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQotU1RB
VFVTX1RMU19IQU5EU0hBS0UgPSAxMDE1Ci0KLSMgRXh0ZW5zaW9uIHRva2VucwotX0RFRkxBVEVf
RlJBTUVfRVhURU5TSU9OID0gJ2RlZmxhdGUtZnJhbWUnCi0jIFRPRE8oYmFzaGkpOiBVcGRhdGUg
YWZ0ZXIgbXV4IGltcGxlbWVudGF0aW9uIGZpbmlzaGVkLgotX01VWF9FWFRFTlNJT04gPSAnbXV4
X0RPX05PVF9VU0UnCi1fUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiA9ICdwZXJtZXNzYWdl
LWRlZmxhdGUnCi0KLWRlZiBfbWV0aG9kX2xpbmUocmVzb3VyY2UpOgotICAgIHJldHVybiAnR0VU
ICVzIEhUVFAvMS4xXHJcbicgJSByZXNvdXJjZQotCi0KLWRlZiBfc2VjX29yaWdpbl9oZWFkZXIo
b3JpZ2luKToKLSAgICByZXR1cm4gJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAlc1xyXG4nICUgb3Jp
Z2luLmxvd2VyKCkKLQotCi1kZWYgX29yaWdpbl9oZWFkZXIob3JpZ2luKToKLSAgICAjIDQuMSAx
My4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46IiwgYSBVKzAwMjAgU1BBQ0Ug
Y2hhcmFjdGVyLAotICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwgY29udmVydGVkIHRvIEFT
Q0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICdPcmlnaW46ICVzXHJcbicg
JSBvcmlnaW4ubG93ZXIoKQotCi0KLWRlZiBfZm9ybWF0X2hvc3RfaGVhZGVyKGhvc3QsIHBvcnQs
IHNlY3VyZSk6Ci0gICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9ydC8gYmUgYW4gZW1wdHkgc3RyaW5n
LgotICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2YWx1ZSwgY29udmVydGVkIHRvIEFT
Q0lJIGxvd2VyY2FzZSwgdG8KLSAgICAjIC9ob3N0cG9ydC8KLSAgICBob3N0cG9ydCA9IGhvc3Qu
bG93ZXIoKQotICAgICMgNC4xIDExLiBJZiAvc2VjdXJlLyBpcyBmYWxzZSwgYW5kIC9wb3J0LyBp
cyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCi0gICAgIyBpcyB0cnVlLCBhbmQgL3BvcnQvIGlzIG5v
dCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9OIGNoYXJhY3RlcgotICAgICMgKDopIGZv
bGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJlc3NlZCBhcyBhIGJhc2UtdGVuIGlu
dGVnZXIsCi0gICAgIyB0byAvaG9zdHBvcnQvCi0gICAgaWYgKChub3Qgc2VjdXJlIGFuZCBwb3J0
ICE9IERFRkFVTFRfUE9SVCkgb3IKLSAgICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBERUZBVUxU
X1NFQ1VSRV9QT1JUKSk6Ci0gICAgICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQotICAg
ICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAg
U1BBQ0UKLSAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgotICAg
IHJldHVybiAnSG9zdDogJXNcclxuJyAlIGhvc3Rwb3J0Ci0KLQotIyBUT0RPKHR5b3NoaW5vKTog
RGVmaW5lIGEgYmFzZSBjbGFzcyBhbmQgbW92ZSB0aGVzZSBzaGFyZWQgbWV0aG9kcyB0byB0aGF0
LgotCi0KLWRlZiByZWNlaXZlX2J5dGVzKHNvY2tldCwgbGVuZ3RoKToKLSAgICByZWNlaXZlZF9i
eXRlcyA9IFtdCi0gICAgcmVtYWluaW5nID0gbGVuZ3RoCi0gICAgd2hpbGUgcmVtYWluaW5nID4g
MDoKLSAgICAgICAgbmV3X3JlY2VpdmVkX2J5dGVzID0gc29ja2V0LnJlY3YocmVtYWluaW5nKQot
ICAgICAgICBpZiBub3QgbmV3X3JlY2VpdmVkX2J5dGVzOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2
aW5nIHJlcXVlc3RlZCBsZW5ndGggJwotICAgICAgICAgICAgICAgICcocmVxdWVzdGVkICVkIGJ5
dGVzIGJ1dCByZWNlaXZlZCBvbmx5ICVkIGJ5dGVzKScgJQotICAgICAgICAgICAgICAgIChsZW5n
dGgsIGxlbmd0aCAtIHJlbWFpbmluZykpCi0gICAgICAgIHJlY2VpdmVkX2J5dGVzLmFwcGVuZChu
ZXdfcmVjZWl2ZWRfYnl0ZXMpCi0gICAgICAgIHJlbWFpbmluZyAtPSBsZW4obmV3X3JlY2VpdmVk
X2J5dGVzKQotICAgIHJldHVybiAnJy5qb2luKHJlY2VpdmVkX2J5dGVzKQotCi0KLSMgVE9ETyh0
eW9zaGlubyk6IE5vdyB0aGUgV2ViU29ja2V0SGFuZHNoYWtlIGNsYXNzIGRpdmVydHMgdGhlc2Ug
bWV0aG9kcy4gV2UKLSMgc2hvdWxkIG1vdmUgdG8gSFRUUCBwYXJzZXIgYXMgc3BlY2lmaWVkIGlu
IFJGQyA2NDU1LiBGb3IgSHlCaSAwMCBhbmQKLSMgSGl4aWUgNzUsIHBhY2sgdGhlc2UgbWV0aG9k
cyBhcyBzb21lIHBhcnNlciBjbGFzcy4KLQotCi1kZWYgX3JlYWRfZmllbGRzKHNvY2tldCk6Ci0g
ICAgIyA0LjEgMzIuIGxldCAvZmllbGRzLyBiZSBhIGxpc3Qgb2YgbmFtZS12YWx1ZSBwYWlycywg
aW5pdGlhbGx5IGVtcHR5LgotICAgIGZpZWxkcyA9IHt9Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYW5kIC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMK
LSAgICAgICAgbmFtZSA9ICcnCi0gICAgICAgIHZhbHVlID0gJycKLSAgICAgICAgIyA0LjEgMzQu
IHJlYWQgL25hbWUvCi0gICAgICAgIG5hbWUgPSBfcmVhZF9uYW1lKHNvY2tldCkKLSAgICAgICAg
aWYgbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgIyA0LjEgMzUuIHJl
YWQgc3BhY2VzCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFNraXAgb25seSBvbmUgc3BhY2Ug
YXMgZGVzY3JpYmVkIGluIHRoZSBzcGVjLgotICAgICAgICBjaCA9IF9za2lwX3NwYWNlcyhzb2Nr
ZXQpCi0gICAgICAgICMgNC4xIDM2LiByZWFkIC92YWx1ZS8KLSAgICAgICAgdmFsdWUgPSBfcmVh
ZF92YWx1ZShzb2NrZXQsIGNoKQotICAgICAgICAjIDQuMSAzNy4gcmVhZCBhIGJ5dGUgZnJvbSB0
aGUgc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAgICAg
IGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFs
dWUgJXIgZm9yIGhlYWRlciAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjaCwgbmFtZSwgdmFs
dWUpKQotICAgICAgICAjIDQuMSAzOC4gYXBwZW5kIGFuIGVudHJ5IHRvIHRoZSAvZmllbGRzLyBs
aXN0IHRoYXQgaGFzIHRoZSBuYW1lCi0gICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBvYnRh
aW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1lLyBieXRlCi0gICAgICAgICMgYXJyYXkgYXMg
YSBVVEYtOCBzdHJlYW0gYW5kIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc3RyaW5nCi0gICAgICAg
ICMgb2J0YWluZWQgYnkgaW50ZXJwcmV0aW5nIHRoZSAvdmFsdWUvIGJ5dGUgYXJyYXkgYXMgYSBV
VEYtOCBieXRlCi0gICAgICAgICMgc3RyZWFtLgotICAgICAgICBmaWVsZHMuc2V0ZGVmYXVsdChu
YW1lLCBbXSkuYXBwZW5kKHZhbHVlKQotICAgICAgICAjIDQuMSAzOS4gcmV0dXJuIHRvIHRoZSAi
RmllbGQiIHN0ZXAgYWJvdmUKLSAgICByZXR1cm4gZmllbGRzCi0KLQotZGVmIF9yZWFkX25hbWUo
c29ja2V0KToKLSAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBiZSBlbXB0eSBieXRlIGFycmF5cwot
ICAgIG5hbWUgPSAnJwotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICMgNC4xIDM0LiByZWFkIGEg
Ynl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwg
MSkKLSAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhl
YWRlciBuYW1lICVyJyAlIG5hbWUpCi0gICAgICAgIGVsaWYgY2ggPT0gJzonOiAgIyAweDNBCi0g
ICAgICAgICAgICByZXR1cm4gbmFtZQotICAgICAgICBlbGlmIGNoID49ICdBJyBhbmQgY2ggPD0g
J1onOiAgIyByYW5nZSAweDMxIHRvIDB4NUEKLSAgICAgICAgICAgIGNoID0gY2hyKG9yZChjaCkg
KyAweDIwKQotICAgICAgICAgICAgbmFtZSArPSBjaAotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgbmFtZSArPSBjaAotCi0KLWRlZiBfc2tpcF9zcGFjZXMoc29ja2V0KToKLSAgICAjIDQuMSAz
NS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
Y2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggPT0gJyAnOiAgIyAw
eDIwCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICByZXR1cm4gY2gKLQotCi1kZWYgX3Jl
YWRfdmFsdWUoc29ja2V0LCBjaCk6Ci0gICAgIyA0LjEgMzMuIGxldCAvdmFsdWUvIGJlIGVtcHR5
IGJ5dGUgYXJyYXlzCi0gICAgdmFsdWUgPSAnJwotICAgICMgNC4xIDM2LiByZWFkIGEgYnl0ZSBm
cm9tIHNlcnZlci4KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAw
eDBECi0gICAgICAgICAgICByZXR1cm4gdmFsdWUKLSAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAg
IyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgTEYgd2hlbiByZWFkaW5nIGhlYWRlciB2YWx1ZSAlcicgJSB2YWx1ZSkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHZhbHVlICs9IGNoCi0gICAgICAgIGNoID0gcmVjZWl2ZV9i
eXRlcyhzb2NrZXQsIDEpCi0KLQotZGVmIHJlYWRfZnJhbWVfaGVhZGVyKHNvY2tldCk6Ci0gICAg
cmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMikKLQotICAgIGZpcnN0X2J5dGUgPSBv
cmQocmVjZWl2ZWRbMF0pCi0gICAgZmluID0gKGZpcnN0X2J5dGUgPj4gNykgJiAxCi0gICAgcnN2
MSA9IChmaXJzdF9ieXRlID4+IDYpICYgMQotICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA+PiA1KSAm
IDEKLSAgICByc3YzID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0gICAgb3Bjb2RlID0gZmlyc3Rf
Ynl0ZSAmIDB4ZgotCi0gICAgc2Vjb25kX2J5dGUgPSBvcmQocmVjZWl2ZWRbMV0pCi0gICAgbWFz
ayA9IChzZWNvbmRfYnl0ZSA+PiA3KSAmIDEKLSAgICBwYXlsb2FkX2xlbmd0aCA9IHNlY29uZF9i
eXRlICYgMHg3ZgotCi0gICAgaWYgbWFzayAhPSAwOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAnTWFzayBiaXQgbXVzdCBiZSAwIGZvciBmcmFtZXMgY29taW5nIGZyb20g
c2VydmVyJykKLQotICAgIGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNzoKLSAgICAgICAgZXh0ZW5k
ZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgOCkKLSAgICAgICAgcGF5
bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFRJywgZXh0ZW5kZWRf
cGF5bG9hZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoID4gMHg3RkZGRkZG
RkZGRkZGRkZGOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHRlbmRlZCBwYXlsb2Fk
IGxlbmd0aCA+PSAyXjYzJykKLSAgICBlbGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNjoKLSAgICAg
ICAgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMikKLSAg
ICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFIJywg
ZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCi0KLSAgICByZXR1cm4gZmluLCByc3YxLCByc3Yy
LCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3RoCi0KLQotY2xhc3MgX1RMU1NvY2tldChvYmpl
Y3QpOgotICAgICIiIldyYXBwZXIgZm9yIGEgVExTIGNvbm5lY3Rpb24uIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmF3X3NvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NzbCA9IHNvY2tldC5z
c2wocmF3X3NvY2tldCkKLQotICAgIGRlZiBzZW5kKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3NzbC53cml0ZShieXRlcykKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9LTEp
OgotICAgICAgICByZXR1cm4gc2VsZi5fc3NsLnJlYWQoc2l6ZSkKLQotICAgIGRlZiBjbG9zZShz
ZWxmKToKLSAgICAgICAgIyBOb3RoaW5nIHRvIGRvLgotICAgICAgICBwYXNzCi0KLQotY2xhc3Mg
SHR0cFN0YXR1c0V4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdp
bGwgYmUgcmFpc2VkIHdoZW4gdW5leHBlY3RlZCBodHRwIHN0YXR1cyBjb2RlIHdhcwotICAgIHJl
Y2VpdmVkIGFzIGEgcmVzdWx0IG9mIGhhbmRzaGFrZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lLCBzdGF0dXMpOgotICAgICAgICBzdXBlcihIdHRwU3RhdHVzRXhjZXB0
aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwot
Ci0KLWNsYXNzIFdlYlNvY2tldEhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFu
ZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucwotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAgICAi
IiJIYW5kc2hha2UgV2ViU29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEV4
Y2VwdGlvbjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5f
c29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNl
bGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3Blbmlu
ZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2Vs
Zi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtdCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSKQotICAgICAgICBmaWVsZHMuYXBw
ZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRf
aG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMudXNlX3RscykpCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uIGlzIDg6
Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9zZWNfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRp
b25zLm9yaWdpbikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9v
cmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLQotICAgICAgICBvcmlnaW5hbF9r
ZXkgPSBvcy51cmFuZG9tKDE2KQotICAgICAgICBrZXkgPSBiYXNlNjQuYjY0ZW5jb2RlKG9yaWdp
bmFsX2tleSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5OiAlcyAoJXMpJywga2V5LCB1dGlsLmhleGlmeShvcmlnaW5hbF9rZXkpKQot
ICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTogJXNcclxuJyAlIGtleSkK
LQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LVZlcnNpb246ICVkXHJcbicg
JSBzZWxmLl9vcHRpb25zLnZlcnNpb24pCi0KLSAgICAgICAgIyBTZXR0aW5nIHVwIGV4dGVuc2lv
bnMuCi0gICAgICAgIGlmIGxlbihzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKLSAgICAg
ICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihzZWxmLl9vcHRpb25zLmV4dGVu
c2lvbnMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2Ug
cmVxdWVzdCBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICBmb3IgZmllbGQgaW4gZmll
bGRzOgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0gICAgICAgIHNl
bGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygn
U2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0JykKLQotICAgICAgICBmaWVsZCA9ICcnCi0g
ICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5f
c29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNoID09
ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlc3BvbnNlLUxpbmU6ICVyJywgZmllbGQpCi0KLSAgICAg
ICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Igbm90IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkK
LSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAg
IGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnTm8gSFRUUCBzdGF0dXMgY29kZSBmb3VuZCBpbiBzdGF0dXMgbGluZTogJXInICUgZmll
bGQpCi0gICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaCgn
WzAtOV1bMC05XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGlu
IHN0YXR1cyBsaW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAg
ICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQg
Zm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUs
IGZpZWxkKSwgaW50KGNvZGUpKQotICAgICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5f
c29ja2V0KQotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAg
ICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0V4cGVjdGVkIExGIGJ1dCBmb3VuZDogJXInICUgY2gpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXNwb25zZSBoZWFkZXJzOiAlcicsIGZpZWxkcykK
LQotICAgICAgICAjIENoZWNrIC9maWVsZHMvCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ3VwZ3Jh
ZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUn
XSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0aW9u
IGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQotICAgICAgICBpZiBm
aWVsZHNbJ3VwZ3JhZGUnXVswXSAhPSAnd2Vic29ja2V0JzoKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBVcGdyYWRlIGhlYWRlciB2YWx1
ZTogJXMnICUgZmllbGRzWyd1cGdyYWRlJ11bMF0pCi0gICAgICAgIGlmIGZpZWxkc1snY29ubmVj
dGlvbiddWzBdLmxvd2VyKCkgIT0gJ3VwZ3JhZGUnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIENvbm5lY3Rpb24gaGVhZGVyIHZhbHVl
OiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snY29ubmVjdGlvbiddWzBdKQotCi0gICAg
ICAgIGlmIGxlbihmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10pICE9IDE6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1XZWJT
b2NrZXQtQWNjZXB0IGhlYWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRz
WydzZWMtd2Vic29ja2V0LWFjY2VwdCddKQotCi0gICAgICAgIGFjY2VwdCA9IGZpZWxkc1snc2Vj
LXdlYnNvY2tldC1hY2NlcHQnXVswXQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgZGVjb2RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2VwdCkK
LSAgICAgICAgZXhjZXB0IFR5cGVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFr
ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyIFNl
Yy1XZWJTb2NrZXQtQWNjZXB0OiAnICsgYWNjZXB0KQotCi0gICAgICAgIGlmIGxlbihkZWNvZGVk
X2FjY2VwdCkgIT0gMjA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ0RlY29kZWQgdmFsdWUgb2YgU2VjLVdlYlNvY2tldC1BY2NlcHQgaXMg
bm90IDIwLWJ5dGUgbG9uZycpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdBY3R1YWwg
U2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVyICglcyknLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWNjZXB0LCB1dGlsLmhleGlmeShkZWNvZGVkX2FjY2VwdCkpCi0KLSAgICAgICAgb3JpZ2lu
YWxfZXhwZWN0ZWRfYWNjZXB0ID0gdXRpbC5zaGExX2hhc2goCi0gICAgICAgICAgICBrZXkgKyBX
RUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9
IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfZXhwZWN0ZWRfYWNjZXB0KQotCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnRXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVyICglcykn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfYWNjZXB0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXRpbC5oZXhpZnkob3JpZ2luYWxfZXhwZWN0ZWRfYWNjZXB0KSkK
LQotICAgICAgICBpZiBhY2NlcHQgIT0gZXhwZWN0ZWRfYWNjZXB0OgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbnZhbGlkIFNlYy1XZWJTb2NrZXQtQWNj
ZXB0IGhlYWRlcjogJXIgKGV4cGVjdGVkKSAhPSAlciAnCi0gICAgICAgICAgICAgICAgJyhhY3R1
YWwpJyAlIChhY2NlcHQsIGV4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgc2VydmVyX2V4dGVu
c2lvbnNfaGVhZGVyID0gZmllbGRzLmdldCgnc2VjLXdlYnNvY2tldC1leHRlbnNpb25zJykKLSAg
ICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgIGlmIHNlcnZlcl9leHRlbnNp
b25zX2hlYWRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMg
PSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICAgICAgJywgJy5qb2lu
KHNlcnZlcl9leHRlbnNpb25zX2hlYWRlcikpCi0KLSAgICAgICAgIyBTY2FuIGFjY2VwdGVkIGV4
dGVuc2lvbiBsaXN0IHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSB1bnJlY29nbml6ZWQKLSAgICAg
ICAgIyBleHRlbnNpb25zIG9yIGV4dGVuc2lvbnMgd2UgZGlkbid0IHJlcXVlc3QgaW4gaXQuIFRo
ZW4sIGZvcgotICAgICAgICAjIGV4dGVuc2lvbnMgd2UgcmVxdWVzdCwgcGFyc2UgdGhlbSBhbmQg
c3RvcmUgcGFyYW1ldGVycy4gVGhleSB3aWxsIGJlCi0gICAgICAgICMgdXNlZCBsYXRlciBieSBl
YWNoIGV4dGVuc2lvbi4KLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IEZhbHNlCi0g
ICAgICAgIG11eF9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAgIGZvciBleHRlbnNpb24gaW4gYWNj
ZXB0ZWRfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX0RF
RkxBVEVfRlJBTUVfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
dXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICAgICAgICAgIGRlZmxhdGVfZnJhbWVfYWNj
ZXB0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBp
ZiBleHRlbnNpb24ubmFtZSgpID09IF9NVVhfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMudXNlX211eDoKLSAgICAgICAgICAgICAgICAgICAgbXV4X2FjY2VwdGVk
ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgZXh0
ZW5zaW9uLm5hbWUoKSA9PSBfUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTjoKLSAgICAgICAg
ICAgICAgICBjaGVja2VyID0gc2VsZi5fb3B0aW9ucy5jaGVja19wZXJtZXNzYWdlX2RlZmxhdGUK
LSAgICAgICAgICAgICAgICBpZiBjaGVja2VyOgotICAgICAgICAgICAgICAgICAgICBjaGVja2Vy
KGV4dGVuc2lvbikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCB1bnJlY29nbml6ZWQg
ZXh0ZW5zaW9uOiAlcycgJSBleHRlbnNpb24ubmFtZSgpKQotCi0gICAgICAgICMgTGV0IGFsbCBl
eHRlbnNpb25zIGNoZWNrIHRoZSByZXNwb25zZSBmb3IgZXh0ZW5zaW9uIHJlcXVlc3QuCi0KLSAg
ICAgICAgaWYgKHNlbGYuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWUgYW5kCi0gICAgICAgICAg
ICBub3QgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJyVzIGV4dGVuc2lvbiBub3QgYWNjZXB0ZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy51c2VfbXV4IGFuZCBub3QgbXV4X2FjY2VwdGVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCclcyBleHRlbnNpb24gbm90IGFjY2VwdGVkJyAlIF9NVVhfRVhURU5TSU9OKQotCi0KLWNs
YXNzIFdlYlNvY2tldEh5YmkwMEhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFu
ZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIEh5Qmkg
MDAuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgZHJhZnRfZmll
bGQpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
LQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9kcmFmdF9m
aWVsZCA9IGRyYWZ0X2ZpZWxkCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNvY2tldCk6Ci0g
ICAgICAgICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAg
ICAgICAgRXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3Qg
bGluZS4KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMu
cmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2Ug
UmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNl
bmRhbGwocmVxdWVzdF9saW5lKQotICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUgYW4g
ZW1wdHkgbGlzdCBvZiBzdHJpbmdzLgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICAjIDQu
MSA3LiBBZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4KLSAg
ICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAgICAgIyA0
LjEgOC4gQWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMvLgot
ICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgIyA0LjEg
OS0xMi4gQWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5k
KF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9o
b3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMudXNlX3RscykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2luOiBm
aWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihz
ZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2Vi
U29ja2V0LVByb3RvY29sOiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgIyBUT0RPOiA0LjEg
MTUgQWRkIGNvb2tpZSBoZWFkZXJzIHRvIC9maWVsZHMvLgotCi0gICAgICAgICMgNC4xIDE2LTIz
LiBBZGQgU2VjLVdlYlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxkcy8uCi0gICAgICAgIHNlbGYuX251
bWJlcjEsIGtleTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAg
ICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTE6ICVzXHJcbicgJSBrZXkxKQotICAg
ICAgICBzZWxmLl9udW1iZXIyLCBrZXkyID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9r
ZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjI6ICVkJywgc2VsZi5fbnVt
YmVyMSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXkyOiAlc1xyXG4n
ICUga2V5MikKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LURyYWZ0OiAl
c1xyXG4nICUgc2VsZi5fZHJhZnRfZmllbGQpCi0KLSAgICAgICAgIyA0LjEgMjQuIEZvciBlYWNo
IHN0cmluZyBpbiAvZmllbGRzLywgaW4gYSByYW5kb20gb3JkZXI6IHNlbmQgdGhlCi0gICAgICAg
ICMgc3RyaW5nLCBlbmNvZGVkIGFzIFVURi04LCBmb2xsb3dlZCBieSBhIFVURi04IGVuY29kZWQg
VSswMDBEIENBUlJJQUdFCi0gICAgICAgICMgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQgY2hhcmFj
dGVyIHBhaXIgKENSTEYpLgotICAgICAgICByYW5kb20uc2h1ZmZsZShmaWVsZHMpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6
ICVyJywgZmllbGRzKQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoZmllbGQpCi0KLSAgICAgICAgIyA0LjEgMjUuIHNlbmQgYSBV
VEYtOC1lbmNvZGVkIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gVSswMDBBIExJTkUgRkVFRAotICAg
ICAgICAjIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRh
bGwoJ1xyXG4nKQotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBjb25z
aXN0aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50bHks
IGEgcmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVyKS4K
LSAgICAgICAgc2VsZi5fa2V5MyA9IHNlbGYuX2dlbmVyYXRlX2tleTMoKQotICAgICAgICAjIDQu
MSAyNy4gc2VuZCAva2V5My8gdG8gdGhlIHNlcnZlci4KLSAgICAgICAgc2VsZi5fc29ja2V0LnNl
bmRhbGwoc2VsZi5fa2V5MykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJ0tleTM6ICVyICglcyknLCBzZWxmLl9rZXkzLCB1dGlsLmhleGlmeShzZWxmLl9rZXkzKSkK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1
ZXN0JykKLQotICAgICAgICAjIDQuMSAyOC4gUmVhZCBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIgdW50
aWwgZWl0aGVyIHRoZSBjb25uZWN0aW9uCi0gICAgICAgICMgY2xvc2VzLCBvciBhIDB4MEEgYnl0
ZSBpcyByZWFkLiBsZXQgL2ZpZWxkLyBiZSB0aGVzZSBieXRlcywgaW5jbHVkaW5nCi0gICAgICAg
ICMgdGhlIDB4MEEgYnl0ZXMuCi0gICAgICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAg
ICAgICAgICBmaWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5k
c2hha2UgUmVzcG9uc2UtTGluZTogJXInLCBmaWVsZCkKLQotICAgICAgICAjIGlmIC9maWVsZC8g
aXMgbm90IGF0IGxlYXN0IHNldmVuIGJ5dGVzIGxvbmcsIG9yIGlmIHRoZSBsYXN0Ci0gICAgICAg
ICMgdHdvIGJ5dGVzIGFyZW4ndCAweDBEIGFuZCAweDBBIHJlc3BlY3RpdmVseSwgb3IgaWYgaXQg
ZG9lcyBub3QKLSAgICAgICAgIyBjb250YWluIGF0IGxlYXN0IHR3byAweDIwIGJ5dGVzLCB0aGVu
IGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uCi0gICAgICAgICMgYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgotICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmllbGQuZW5kc3dpdGgo
J1xyXG4nKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV3Jvbmcgc3RhdHVzIGxpbmU6
ICVyJyAlIGZpZWxkKQotICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChbXiBdKikgLionLCBm
aWVsZCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdObyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgIyA0
LjEgMjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAvZmllbGQvIHRoYXQgc3RhcnRz
IGZyb20gdGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmlyc3QgMHgyMCBieXRlLCBhbmQg
ZW5kcyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAgICAgIyBzZWNvbmQgMHgyMCBieXRl
LgotICAgICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICAjIDQuMSAzMC4gaWYgL2NvZGUv
IGlzIG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2YgdGhlIGJ5dGVzIGluCi0gICAg
ICAgICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAgdG8gMHg5MCwgdGhlbiBmYWls
IHRoZSBXZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVw
cy4KLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMg
Y29kZSAlciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAgICAg
ICAgICAgICAgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0LjEgMzEuIGlmIC9jb2RlLywgaW50
ZXJwcmV0ZWQgYXMgVVRGLTgsIGlzICIxMDEiLCB0aGVuIG1vdmUgdG8gdGhlCi0gICAgICAgICMg
bmV4dCBzdGVwLgotICAgICAgICBpZiBjb2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2Ug
SHR0cFN0YXR1c0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0
dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAg
ICAgJyVyJyAlIChjb2RlLCBmaWVsZCksIGludChjb2RlKSkKLSAgICAgICAgIyA0LjEgMzItMzku
IHJlYWQgZmllbGRzIGludG8gL2ZpZWxkcy8KLSAgICAgICAgZmllbGRzID0gX3JlYWRfZmllbGRz
KHNlbGYuX3NvY2tldCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFu
ZHNoYWtlIHJlc3BvbnNlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgICMgNC4xIDQw
LiBfRmllbGRzIHByb2Nlc3NpbmdfCi0gICAgICAgICMgcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIK
LSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYg
Y2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHBlY3Rl
ZCBMRiBidXQgZm91bmQgJXInICUgY2gpCi0gICAgICAgICMgNC4xIDQxLiBjaGVjayAvZmllbGRz
LwotICAgICAgICBpZiBsZW4oZmllbGRzWyd1cGdyYWRlJ10pICE9IDE6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFVwZ3JhZGUgaGVhZGVy
cyBmb3VuZDogJXMnICUgZmllbGRzWyd1cGdyYWRlJ10pCi0gICAgICAgIGlmIGxlbihmaWVsZHNb
J2Nvbm5lY3Rpb24nXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnTXVsdGlwbGUgQ29ubmVjdGlvbiBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVs
ZHNbJ2Nvbm5lY3Rpb24nXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1v
cmlnaW4nXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1PcmlnaW4gaGVhZGVycyBmb3VuZDogJXMnICUK
LSAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy1zZWJzb2NrZXQtb3JpZ2luJ10pCi0gICAgICAg
IGlmIGxlbihmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtbG9jYXRpb24nXSkgIT0gMToKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgU2VjLVdlYlNv
Y2tldC1Mb2NhdGlvbiBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxk
c1snc2VjLXNlYnNvY2tldC1sb2NhdGlvbiddKQotICAgICAgICAjIFRPRE8odWthaSk6IHByb3Rv
Y29sCi0gICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAidXBncmFkZSIKLSAgICAgICAg
IyAgaWYgdGhlIHZhbHVlIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBzdHJpbmcgIldlYlNv
Y2tldCIsCi0gICAgICAgICMgIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5k
IGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBmaWVsZHNbJ3VwZ3JhZGUnXVswXSAhPSAn
V2ViU29ja2V0JzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCBVcGdyYWRlIGhlYWRlciB2YWx1ZTogJXMnICUgZmllbGRzWyd1cGdyYWRl
J11bMF0pCi0gICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKLSAg
ICAgICAgIyAgaWYgdGhlIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBu
b3QgZXhhY3RseSBlcXVhbAotICAgICAgICAjICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhl
biBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQKLSAgICAgICAgIyAgYWJvcnQgdGhl
c2Ugc3RlcHMuCi0gICAgICAgIGlmIGZpZWxkc1snY29ubmVjdGlvbiddWzBdLmxvd2VyKCkgIT0g
J3VwZ3JhZGUnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIENvbm5lY3Rpb24gaGVhZGVyIHZhbHVlOiAlcycgJQotICAgICAgICAgICAg
ICAgIGZpZWxkc1snY29ubmVjdGlvbiddWzBdKQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNr
IG9yaWdpbiwgbG9jYXRpb24sIGNvb2tpZSwgLi4KLQotICAgICAgICAjIDQuMSA0Mi4gbGV0IC9j
aGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9udW1iZXJfMS8sCi0gICAgICAgICMg
ZXhwcmVzc2VkIGFzIGEgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgL251bWJlcl8yLywgZXhw
cmVzc2VkCi0gICAgICAgICMgYXMgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgYW5kIHRoZSBl
aWdodCBieXRlcyBvZiAva2V5XzMvIGluIHRoZQotICAgICAgICAjIG9yZGVyIHRoZXkgd2VyZSBz
ZW50IG9uIHRoZSB3aXJlLgotICAgICAgICBjaGFsbGVuZ2UgPSBzdHJ1Y3QucGFjaygnIUknLCBz
ZWxmLl9udW1iZXIxKQotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywgc2Vs
Zi5fbnVtYmVyMikKLSAgICAgICAgY2hhbGxlbmdlICs9IHNlbGYuX2tleTMKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywgY2hh
bGxlbmdlLCB1dGlsLmhleGlmeShjaGFsbGVuZ2UpKQotCi0gICAgICAgICMgNC4xIDQzLiBsZXQg
L2V4cGVjdGVkLyBiZSB0aGUgTUQ1IGZpbmdlcnByaW50IG9mIC9jaGFsbGVuZ2UvIGFzIGEKLSAg
ICAgICAgIyBiaWctZW5kaWFuIDEyOCBiaXQgc3RyaW5nLgotICAgICAgICBleHBlY3RlZCA9IHV0
aWwubWQ1X2hhc2goY2hhbGxlbmdlKS5kaWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoCi0gICAgICAgICAgICAnRXhwZWN0ZWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywK
LSAgICAgICAgICAgIGV4cGVjdGVkLCB1dGlsLmhleGlmeShleHBlY3RlZCkpCi0KLSAgICAgICAg
IyA0LjEgNDQuIHJlYWQgc2l4dGVlbiBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIuCi0gICAgICAgICMg
bGV0IC9yZXBseS8gYmUgdGhvc2UgYnl0ZXMuCi0gICAgICAgIHJlcGx5ID0gcmVjZWl2ZV9ieXRl
cyhzZWxmLl9zb2NrZXQsIDE2KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAg
ICAgICAnQWN0dWFsIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsIHJlcGx5LCB1dGlsLmhl
eGlmeShyZXBseSkpCi0KLSAgICAgICAgIyA0LjEgNDUuIGlmIC9yZXBseS8gZG9lcyBub3QgZXhh
Y3RseSBlcXVhbCAvZXhwZWN0ZWQvLCB0aGVuIGZhaWwKLSAgICAgICAgIyB0aGUgV2ViU29ja2V0
IGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBleHBlY3RlZCAh
PSByZXBseToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
QmFkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKGV4cGVjdGVkKSAhPSAlciAoYWN0dWFsKScgJQot
ICAgICAgICAgICAgICAgIChleHBlY3RlZCwgcmVwbHkpKQotICAgICAgICAjIDQuMSA0Ni4gVGhl
ICpXZWJTb2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCouCi0KLSAgICBkZWYgX2dlbmVy
YXRlX3NlY193ZWJzb2NrZXRfa2V5KHNlbGYpOgotICAgICAgICAjIDQuMSAxNi4gbGV0IC9zcGFj
ZXNfbi8gYmUgYSByYW5kb20gaW50ZWdlciBmcm9tIDEgdG8gMTIgaW5jbHVzaXZlLgotICAgICAg
ICBzcGFjZXMgPSByYW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAgIyA0LjEgMTcuIGxldCAv
bWF4X24vIGJlIHRoZSBsYXJnZXN0IGludGVnZXIgbm90IGdyZWF0ZXIgdGhhbgotICAgICAgICAj
ICA0LDI5NCw5NjcsMjk1IGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgbWF4bnVtID0g
NDI5NDk2NzI5NSAvIHNwYWNlcwotICAgICAgICAjIDQuMSAxOC4gbGV0IC9udW1iZXJfbi8gYmUg
YSByYW5kb20gaW50ZWdlciBmcm9tIDAgdG8gL21heF9uLwotICAgICAgICAjIGluY2x1c2l2ZS4K
LSAgICAgICAgbnVtYmVyID0gcmFuZG9tLnJhbmRpbnQoMCwgbWF4bnVtKQotICAgICAgICAjIDQu
MSAxOS4gbGV0IC9wcm9kdWN0X24vIGJlIHRoZSByZXN1bHQgb2YgbXVsdGlwbHlpbmcgL251bWJl
cl9uLyBhbmQKLSAgICAgICAgIyAvc3BhY2VzX24vIHRvZ2V0aGVyLgotICAgICAgICBwcm9kdWN0
ID0gbnVtYmVyICogc3BhY2VzCi0gICAgICAgICMgNC4xIDIwLiBsZXQgL2tleV9uLyBiZSBhIHN0
cmluZyBjb25zaXN0aW5nIG9mIC9wcm9kdWN0X24vLCBleHByZXNzZWQKLSAgICAgICAgIyBpbiBi
YXNlIHRlbiB1c2luZyB0aGUgbnVtZXJhbHMgaW4gdGhlIHJhbmdlIFUrMDAzMCBESUdJVCBaRVJP
ICgwKSB0bwotICAgICAgICAjIFUrMDAzOSBESUdJVCBOSU5FICg5KS4KLSAgICAgICAga2V5ID0g
c3RyKHByb2R1Y3QpCi0gICAgICAgICMgNC4xIDIxLiBpbnNlcnQgYmV0d2VlbiBvbmUgYW5kIHR3
ZWx2ZSByYW5kb20gY2hhcmFjdGVycyBmcm9tIHRoZQotICAgICAgICAjIHJhbmdlIFUrMDAyMSB0
byBVKzAwMkYgYW5kIFUrMDAzQSB0byBVKzAwN0UgaW50byAva2V5X24vIGF0IHJhbmRvbQotICAg
ICAgICAjIHBvc2l0aW9ucy4KLSAgICAgICAgYXZhaWxhYmxlX2NoYXJzID0gcmFuZ2UoMHgyMSwg
MHgyZiArIDEpICsgcmFuZ2UoMHgzYSwgMHg3ZSArIDEpCi0gICAgICAgIG4gPSByYW5kb20ucmFu
ZGludCgxLCAxMikKLSAgICAgICAgZm9yIF8gaW4geHJhbmdlKG4pOgotICAgICAgICAgICAgY2gg
PSByYW5kb20uY2hvaWNlKGF2YWlsYWJsZV9jaGFycykKLSAgICAgICAgICAgIHBvcyA9IHJhbmRv
bS5yYW5kaW50KDAsIGxlbihrZXkpKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArIGNo
cihjaCkgKyBrZXlbcG9zOl0KLSAgICAgICAgIyA0LjEgMjIuIGluc2VydCAvc3BhY2VzX24vIFUr
MDAyMCBTUEFDRSBjaGFyYWN0ZXJzIGludG8gL2tleV9uLyBhdAotICAgICAgICAjIHJhbmRvbSBw
b3NpdGlvbnMgb3RoZXIgdGhhbiBzdGFydCBvciBlbmQgb2YgdGhlIHN0cmluZy4KLSAgICAgICAg
Zm9yIF8gaW4geHJhbmdlKHNwYWNlcyk6Ci0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGlu
dCgxLCBsZW4oa2V5KSAtIDEpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgJyAnICsg
a2V5W3BvczpdCi0gICAgICAgIHJldHVybiBudW1iZXIsIGtleQotCi0gICAgZGVmIF9nZW5lcmF0
ZV9rZXkzKHNlbGYpOgotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBj
b25zaXN0aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50
bHksIGEgcmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVy
KS4KLSAgICAgICAgcmV0dXJuICcnLmpvaW4oW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBm
b3IgXyBpbiB4cmFuZ2UoOCldKQotCi0KLWNsYXNzIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2Uo
b2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgSUVURiBI
aXhpZSA3NS4iIiIKLQotICAgIF9FWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAgICAgJ0hUVFAv
MS4xIDEwMSBXZWIgU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nICsKLSAgICAgICAgX1VQ
R1JBREVfSEVBREVSX0hJWElFNzUgKwotICAgICAgICBfQ09OTkVDVElPTl9IRUFERVIpCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRp
b25zCi0KLSAgICBkZWYgX3NraXBfaGVhZGVycyhzZWxmKToKLSAgICAgICAgdGVybWluYXRvciA9
ICdcclxuXHJcbicKLSAgICAgICAgcG9zID0gMAotICAgICAgICB3aGlsZSBwb3MgPCBsZW4odGVy
bWluYXRvcik6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29j
a2V0LCAxKQotICAgICAgICAgICAgaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvcltwb3NdOgotICAg
ICAgICAgICAgICAgIHBvcyArPSAxCi0gICAgICAgICAgICBlbGlmIHJlY2VpdmVkID09IHRlcm1p
bmF0b3JbMF06Ci0gICAgICAgICAgICAgICAgcG9zID0gMQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBwb3MgPSAwCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNvY2tldCk6
Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9
IF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xp
bmUpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAg
ICBoZWFkZXJzID0gX1VQR1JBREVfSEVBREVSX0hJWElFNzUgKyBfQ09OTkVDVElPTl9IRUFERVIK
LSAgICAgICAgaGVhZGVycyArPSBfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVy
X3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0gICAgICAgIGhlYWRl
cnMgKz0gX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGhl
YWRlcnMpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlcnMpCi0KLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAgICAgIGZvciBleHBlY3Rl
ZF9jaGFyIGluIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2UuX0VYUEVDVEVEX1JFU1BPTlNFOgot
ICAgICAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAg
ICAgICAgICAgIGlmIGV4cGVjdGVkX2NoYXIgIT0gcmVjZWl2ZWQ6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdIYW5kc2hha2UgZmFpbHVyZScpCi0gICAgICAgICMgV2UgY3V0IGNv
cm5lcnMgYW5kIHNraXAgb3RoZXIgaGVhZGVycy4KLSAgICAgICAgc2VsZi5fc2tpcF9oZWFkZXJz
KCkKLQotCi1jbGFzcyBXZWJTb2NrZXRTdHJlYW0ob2JqZWN0KToKLSAgICAiIiJGcmFtZSBwcm9j
ZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQsIGhhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuX2hhbmRz
aGFrZSA9IGhhbmRzaGFrZQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAg
ICAjIEZpbHRlcnMgYXBwbGllZCB0byBhcHBsaWNhdGlvbiBkYXRhIHBhcnQgb2YgZGF0YSBmcmFt
ZXMuCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLSAgICAgICAg
c2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotCi0gICAgICAgIGlmIHNlbGYuX2hh
bmRzaGFrZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgIHNlbGYuX291
dGdvaW5nX2ZyYW1lX2ZpbHRlciA9ICgKLSAgICAgICAgICAgICAgICB1dGlsLl9SRkMxOTc5RGVm
bGF0ZXIoTm9uZSwgRmFsc2UpKQotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZnJhbWVfZmls
dGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKLQotICAgICAgICBzZWxmLl9mcmFnbWVudGVk
ID0gRmFsc2UKLQotICAgIGRlZiBfbWFza19oeWJpKHNlbGYsIHMpOgotICAgICAgICAjIFRPRE8o
dHlvc2hpbm8pOiBvcy51cmFuZG9tIGRvZXMgb3Blbi9yZWFkL2Nsb3NlIGZvciBldmVyeSBjYWxs
LiBJZgotICAgICAgICAjIHBlcmZvcm1hbmNlIG1hdHRlcnMsIGNoYW5nZSB0aGlzIHRvIHNvbWUg
bGlicmFyeSBjYWxsIHRoYXQgZ2VuZXJhdGVzCi0gICAgICAgICMgY3J5cHRvZ3JhcGhpY2FsbHkg
c2VjdXJlIHBzZXVkbyByYW5kb20gbnVtYmVyIHNlcXVlbmNlLgotICAgICAgICBtYXNraW5nX25v
bmNlID0gb3MudXJhbmRvbSg0KQotICAgICAgICByZXN1bHQgPSBbbWFza2luZ19ub25jZV0KLSAg
ICAgICAgY291bnQgPSAwCi0gICAgICAgIGZvciBjIGluIHM6Ci0gICAgICAgICAgICByZXN1bHQu
YXBwZW5kKGNocihvcmQoYykgXiBvcmQobWFza2luZ19ub25jZVtjb3VudF0pKSkKLSAgICAgICAg
ICAgIGNvdW50ID0gKGNvdW50ICsgMSkgJSBsZW4obWFza2luZ19ub25jZSkKLSAgICAgICAgcmV0
dXJuICcnLmpvaW4ocmVzdWx0KQotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5
dGVzKHNlbGYsIGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhl
YWRlciArIHNlbGYuX21hc2tfaHliaShib2R5KSkKLQotICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwg
cGF5bG9hZCwgZnJhbWVfdHlwZSwgZW5kPVRydWUsIG1hc2s9VHJ1ZSwKLSAgICAgICAgICAgICAg
ICAgIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTApOgotICAgICAgICBpZiBzZWxmLl9vdXRnb2luZ19m
cmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0
Z29pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihwYXlsb2FkKQotCi0gICAgICAgIGlmIHNlbGYuX2Zy
YWdtZW50ZWQ6Ci0gICAgICAgICAgICBvcGNvZGUgPSBPUENPREVfQ09OVElOVUFUSU9OCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBmcmFtZV90eXBlCi0KLSAgICAgICAgaWYg
ZW5kOgotICAgICAgICAgICAgc2VsZi5fZnJhZ21lbnRlZCA9IEZhbHNlCi0gICAgICAgICAgICBm
aW4gPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9mcmFnbWVudGVkID0gVHJ1
ZQotICAgICAgICAgICAgZmluID0gMAotCi0gICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZS5fb3B0
aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgIHJzdjEgPSAxCi0KLSAgICAgICAg
aWYgbWFzazoKLSAgICAgICAgICAgIG1hc2tfYml0ID0gMSA8PCA3Ci0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBtYXNrX2JpdCA9IDAKLQotICAgICAgICBoZWFkZXIgPSBjaHIoZmluIDw8IDcg
fCByc3YxIDw8IDYgfCByc3YyIDw8IDUgfCByc3YzIDw8IDQgfCBvcGNvZGUpCi0gICAgICAgIHBh
eWxvYWRfbGVuZ3RoID0gbGVuKHBheWxvYWQpCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoIDw9
IDEyNToKLSAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCBwYXlsb2FkX2xlbmd0
aCkKLSAgICAgICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA8IDEgPDwgMTY6Ci0gICAgICAgICAgICBo
ZWFkZXIgKz0gY2hyKG1hc2tfYml0IHwgMTI2KSArIHN0cnVjdC5wYWNrKCchSCcsIHBheWxvYWRf
bGVuZ3RoKQotICAgICAgICBlbGlmIHBheWxvYWRfbGVuZ3RoIDwgMSA8PCA2MzoKLSAgICAgICAg
ICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAxMjcpICsgc3RydWN0LnBhY2soJyFRJywgcGF5
bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1RvbyBsb25nIHBheWxvYWQgKCVkIGJ5dGUpJyAlIHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBp
ZiBtYXNrOgotICAgICAgICAgICAgcGF5bG9hZCA9IHNlbGYuX21hc2tfaHliaShwYXlsb2FkKQot
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXIgKyBwYXlsb2FkKQotCi0gICAgZGVm
IHNlbmRfYmluYXJ5KHNlbGYsIHBheWxvYWQsIGVuZD1UcnVlLCBtYXNrPVRydWUpOgotICAgICAg
ICBzZWxmLnNlbmRfZGF0YShwYXlsb2FkLCBPUENPREVfQklOQVJZLCBlbmQsIG1hc2spCi0KLSAg
ICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIGVuZD1UcnVlLCBtYXNrPVRydWUpOgotICAg
ICAgICBzZWxmLnNlbmRfZGF0YShwYXlsb2FkLmVuY29kZSgndXRmLTgnKSwgT1BDT0RFX1RFWFQs
IGVuZCwgbWFzaykKLQotICAgIGRlZiBfYXNzZXJ0X3JlY2VpdmVfZGF0YShzZWxmLCBwYXlsb2Fk
LCBvcGNvZGUsIGZpbiwgcnN2MSwgcnN2MiwgcnN2Myk6Ci0gICAgICAgIChhY3R1YWxfZmluLCBh
Y3R1YWxfcnN2MSwgYWN0dWFsX3JzdjIsIGFjdHVhbF9yc3YzLCBhY3R1YWxfb3Bjb2RlLAotICAg
ICAgICAgcGF5bG9hZF9sZW5ndGgpID0gcmVhZF9mcmFtZV9oZWFkZXIoc2VsZi5fc29ja2V0KQot
Ci0gICAgICAgIGlmIGFjdHVhbF9vcGNvZGUgIT0gb3Bjb2RlOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIG9wY29kZTogJWQgKGV4cGVj
dGVkKSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChvcGNvZGUsIGFjdHVhbF9v
cGNvZGUpKQotCi0gICAgICAgIGlmIGFjdHVhbF9maW4gIT0gZmluOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZpbjogJWQgKGV4cGVj
dGVkKSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChmaW4sIGFjdHVhbF9maW4p
KQotCi0gICAgICAgIGlmIHJzdjEgaXMgTm9uZToKLSAgICAgICAgICAgIHJzdjEgPSAwCi0gICAg
ICAgICAgICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0g
ICAgICAgICAgICAgICAgcnN2MSA9IDEKLQotICAgICAgICBpZiByc3YyIGlzIE5vbmU6Ci0gICAg
ICAgICAgICByc3YyID0gMAotCi0gICAgICAgIGlmIHJzdjMgaXMgTm9uZToKLSAgICAgICAgICAg
IHJzdjMgPSAwCi0KLSAgICAgICAgaWYgYWN0dWFsX3JzdjEgIT0gcnN2MToKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCByc3YxOiAlciAo
ZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHJzdjEsIGFjdHVh
bF9yc3YxKSkKLQotICAgICAgICBpZiBhY3R1YWxfcnN2MiAhPSByc3YyOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjI6ICVyIChl
eHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocnN2MiwgYWN0dWFs
X3JzdjIpKQotCi0gICAgICAgIGlmIGFjdHVhbF9yc3YzICE9IHJzdjM6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MzogJXIgKGV4
cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChyc3YzLCBhY3R1YWxf
cnN2MykpCi0KLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
cGF5bG9hZF9sZW5ndGgpCi0KLSAgICAgICAgaWYgc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLl9pbmNvbWluZ19mcmFt
ZV9maWx0ZXIuZmlsdGVyKHJlY2VpdmVkKQotCi0gICAgICAgIGlmIGxlbihyZWNlaXZlZCkgIT0g
bGVuKHBheWxvYWQpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdVbmV4cGVjdGVkIHBheWxvYWQgbGVuZ3RoOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1
YWwpJyAlCi0gICAgICAgICAgICAgICAgKGxlbihwYXlsb2FkKSwgbGVuKHJlY2VpdmVkKSkpCi0K
LSAgICAgICAgaWYgcGF5bG9hZCAhPSByZWNlaXZlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkOiAlciAoZXhwZWN0ZWQp
IHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHBheWxvYWQsIHJlY2VpdmVkKSkK
LQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9Q
Q09ERV9CSU5BUlksIGZpbj0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1O
b25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9yZWNlaXZl
X2RhdGEocGF5bG9hZCwgb3Bjb2RlLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMpCi0KLSAgICBkZWYg
YXNzZXJ0X3JlY2VpdmVfdGV4dChzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX1RFWFQsIGZp
bj0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9Tm9uZSwgcnN2Mj1Ob25lLCBy
c3YzPU5vbmUpOgotICAgICAgICBzZWxmLl9hc3NlcnRfcmVjZWl2ZV9kYXRhKHBheWxvYWQuZW5j
b2RlKCd1dGYtOCcpLCBvcGNvZGUsIGZpbiwgcnN2MSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByc3YyLCByc3YzKQotCi0gICAgZGVmIF9idWlsZF9jbG9zZV9mcmFtZShzZWxm
LCBjb2RlLCByZWFzb24sIG1hc2spOgotICAgICAgICBmcmFtZSA9IGNocigxIDw8IDcgfCBPUENP
REVfQ0xPU0UpCi0KLSAgICAgICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJv
ZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGJvZHkgPSAnJwotICAgICAgICBpZiBtYXNrOgotICAg
ICAgICAgICAgZnJhbWUgKz0gY2hyKDEgPDwgNyB8IGxlbihib2R5KSkgKyBzZWxmLl9tYXNrX2h5
YmkoYm9keSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZyYW1lICs9IGNocihsZW4oYm9k
eSkpICsgYm9keQotICAgICAgICByZXR1cm4gZnJhbWUKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNl
bGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKAotICAgICAg
ICAgICAgc2VsZi5fYnVpbGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29uLCBUcnVlKSkKLQotICAg
IGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBl
eHBlY3RlZF9mcmFtZSA9IHNlbGYuX2J1aWxkX2Nsb3NlX2ZyYW1lKGNvZGUsIHJlYXNvbiwgRmFs
c2UpCi0gICAgICAgIGFjdHVhbF9mcmFtZSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBs
ZW4oZXhwZWN0ZWRfZnJhbWUpKQotICAgICAgICBpZiBhY3R1YWxfZnJhbWUgIT0gZXhwZWN0ZWRf
ZnJhbWU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgY2xvc2UgZnJhbWU6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAg
ICAgICAgICAgICAgICAoZXhwZWN0ZWRfZnJhbWUsIGFjdHVhbF9mcmFtZSkpCi0KLQotY2xhc3Mg
V2ViU29ja2V0U3RyZWFtSGl4aWU3NShvYmplY3QpOgotICAgICIiIkZyYW1lIHByb2Nlc3NvciBm
b3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIEhpeGllIDc1IGFuZCBIeUJpIDAwLgot
ICAgICIiIgotCi0gICAgX0NMT1NFX0ZSQU1FID0gJ1x4ZmZceDAwJwotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHNvY2tldCwgdW51c2VkX2hhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuX3NvY2tl
dCA9IHNvY2tldAotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNlbGYs
IGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlciArIGJv
ZHkpCi0KLSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIHBheWxvYWQsIHVudXNlZF9mcmFtZV90eXBl
bSwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAgICBmcmFtZSA9ICcnLmpvaW4oWydc
eDAwJywgcGF5bG9hZCwgJ1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJh
bWUpCi0KLSAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgdW51c2VkX3BheWxvYWQsIHVudXNlZF9l
bmQsIHVudXNlZF9tYXNrKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNlbmRfdGV4dChzZWxm
LCBwYXlsb2FkLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIGVuY29kZWRfcGF5
bG9hZCA9IHBheWxvYWQuZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGZyYW1lID0gJycuam9pbihb
J1x4MDAnLCBlbmNvZGVkX3BheWxvYWQsICdceGZmJ10pCi0gICAgICAgIHNlbGYuX3NvY2tldC5z
ZW5kYWxsKGZyYW1lKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2JpbmFyeShzZWxmLCBwYXls
b2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wKToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdCaW5hcnkgZnJhbWUgaXMgbm90IHN1cHBvcnRlZCBpbiBoaXhpZTc1JykKLQotICAgIGRlZiBh
c3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYsIHBheWxvYWQpOgotICAgICAgICByZWNlaXZlZCA9IHJl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotCi0gICAgICAgIGlmIHJlY2VpdmVkICE9ICdc
eDAwJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBmcmFtZSB0eXBlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0gICAg
ICAgICAgICAgICAgKDAsIG9yZChyZWNlaXZlZCkpKQotCi0gICAgICAgIHJlY2VpdmVkID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihwYXlsb2FkKSArIDEpCi0gICAgICAgIGlmIHJl
Y2VpdmVkWy0xXSAhPSAnXHhmZic6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1Rlcm1pbmF0aW9uIGV4cGVjdGVkOiAweGZmIChleHBlY3RlZCkgdnMgJXIg
KGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICByZWNlaXZlZCkKLQotICAgICAgICBpZiByZWNl
aXZlZFswOi0xXSAhPSBwYXlsb2FkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdVbmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFj
dHVhbCknICUKLSAgICAgICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2ZWRbMDotMV0pKQotCi0g
ICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoc2VsZi5fQ0xPU0VfRlJBTUUpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVf
Y2xvc2Uoc2VsZiwgdW51c2VkX2NvZGUsIHVudXNlZF9yZWFzb24pOgotICAgICAgICBjbG9zaW5n
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihzZWxmLl9DTE9TRV9GUkFNRSkpCi0g
ICAgICAgIGlmIGNsb3NpbmcgIT0gc2VsZi5fQ0xPU0VfRlJBTUU6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ0RpZG5cJ3QgcmVjZWl2ZSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLQotY2xh
c3MgQ2xpZW50T3B0aW9ucyhvYmplY3QpOgotICAgICIiIkhvbGRzIG9wdGlvbiB2YWx1ZXMgdG8g
Y29uZmlndXJlIHRoZSBDbGllbnQgb2JqZWN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBzZWxmLnZlcnNpb24gPSAxMwotICAgICAgICBzZWxmLnNlcnZlcl9ob3N0ID0g
JycKLSAgICAgICAgc2VsZi5vcmlnaW4gPSAnJwotICAgICAgICBzZWxmLnJlc291cmNlID0gJycK
LSAgICAgICAgc2VsZi5zZXJ2ZXJfcG9ydCA9IC0xCi0gICAgICAgIHNlbGYuc29ja2V0X3RpbWVv
dXQgPSAxMDAwCi0gICAgICAgIHNlbGYudXNlX3RscyA9IEZhbHNlCi0gICAgICAgIHNlbGYuZXh0
ZW5zaW9ucyA9IFtdCi0gICAgICAgICMgRW5hYmxlIGRlZmxhdGUtYXBwbGljYXRpb24tZGF0YS4K
LSAgICAgICAgc2VsZi51c2VfZGVmbGF0ZV9mcmFtZSA9IEZhbHNlCi0gICAgICAgICMgRW5hYmxl
IG11eAotICAgICAgICBzZWxmLnVzZV9tdXggPSBGYWxzZQotCi0gICAgZGVmIGVuYWJsZV9kZWZs
YXRlX2ZyYW1lKHNlbGYpOgotICAgICAgICBzZWxmLnVzZV9kZWZsYXRlX2ZyYW1lID0gVHJ1ZQot
ICAgICAgICBzZWxmLmV4dGVuc2lvbnMuYXBwZW5kKF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
LQotICAgIGRlZiBlbmFibGVfbXV4KHNlbGYpOgotICAgICAgICBzZWxmLnVzZV9tdXggPSBUcnVl
Ci0gICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5hcHBlbmQoX01VWF9FWFRFTlNJT04pCi0KLQotZGVm
IGNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoaG9zdCwgcG9ydCwgdGltZW91dCwgdXNlX3RscywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5PTEwLCBzbGVlcF9zZWM9MC4xKToK
LSAgICByZXRyeV9jb3VudCA9IDAKLSAgICB3aGlsZSByZXRyeV9jb3VudCA8IHJldHJ5OgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgICAgICBz
LnNldHRpbWVvdXQodGltZW91dCkKLSAgICAgICAgICAgIHMuY29ubmVjdCgoaG9zdCwgcG9ydCkp
Ci0gICAgICAgICAgICBpZiB1c2VfdGxzOgotICAgICAgICAgICAgICAgIHJldHVybiBfVExTU29j
a2V0KHMpCi0gICAgICAgICAgICByZXR1cm4gcwotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9y
LCBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQ09OTlJFRlVTRUQ6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0
cnlfY291bnQgPSByZXRyeV9jb3VudCArIDEKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKHNs
ZWVwX3NlYykKLQotICAgIHJldHVybiBOb25lCi0KLQotY2xhc3MgQ2xpZW50KG9iamVjdCk6Ci0g
ICAgIiIiV2ViU29ja2V0IGNsaWVudC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRp
b25zLCBoYW5kc2hha2UsIHN0cmVhbV9jbGFzcyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRp
b25zCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IE5vbmUKLQotICAgICAgICBzZWxmLl9oYW5kc2hh
a2UgPSBoYW5kc2hha2UKLSAgICAgICAgc2VsZi5fc3RyZWFtX2NsYXNzID0gc3RyZWFtX2NsYXNz
Ci0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gY29ubmVj
dF9zb2NrZXRfd2l0aF9yZXRyeSgKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9ob3N0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zb2NrZXRfdGltZW91dCwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRz
aGFrZShzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgc2VsZi5fc3RyZWFtID0gc2VsZi5fc3RyZWFt
X2NsYXNzKHNlbGYuX3NvY2tldCwgc2VsZi5faGFuZHNoYWtlKQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKLQotICAgIGRlZiBzZW5kX2ZyYW1l
X29mX2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkpOgotICAgICAgICBzZWxmLl9z
dHJlYW0uc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoaGVhZGVyLCBib2R5KQotCi0gICAg
ZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlLCBy
YXc9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpOgotICAgICAgICBpZiBi
aW5hcnk6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkobWVzc2FnZSwgZW5k
LCBtYXNrKQotICAgICAgICBlbGlmIHJhdzoKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5k
X2RhdGEobWVzc2FnZSwgT1BDT0RFX1RFWFQsIGVuZCwgbWFzaykKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX3RleHQobWVzc2FnZSwgZW5kLCBtYXNrKQotCi0g
ICAgZGVmIGFzc2VydF9yZWNlaXZlKHNlbGYsIHBheWxvYWQsIGJpbmFyeT1GYWxzZSk6Ci0gICAg
ICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9i
aW5hcnkocGF5bG9hZCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5h
c3NlcnRfcmVjZWl2ZV90ZXh0KHBheWxvYWQpCi0KLSAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBj
b2RlPVNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fc3Ry
ZWFtLnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Ns
b3NlKHNlbGYsIGNvZGU9U1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAg
ICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAg
ZGVmIGNsb3NlX3NvY2tldChzZWxmKToKLSAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKLQot
ICAgIGRlZiBhc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoc2VsZik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJlYWRfZGF0YSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgaWYgc3RyKGUpLmZpbmQoCi0g
ICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVz
dGVkIGxlbmd0aCAnKSA9PSAwOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIGVycm9yX251bWJlciwgbWVzc2FnZSA9IGUKLSAgICAgICAg
ICAgICAgICBmb3IgZXJyb3JfbmFtZSBpbiBbJ0VDT05OUkVTRVQnLCAnV1NBRUNPTk5SRVNFVCdd
OgotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JfbmFtZSBpbiBkaXIoZXJybm8pIGFuZAot
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfbnVtYmVyID09IGdldGF0dHIoZXJybm8sIGVy
cm9yX25hbWUpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAg
ZXhjZXB0OgotICAgICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgICAgIHJhaXNlIGUKLQot
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nvbm5lY3Rpb24gaXMgbm90IGNsb3NlZCAoUmVhZDog
JXIpJyAlIHJlYWRfZGF0YSkKLQotCi1kZWYgY3JlYXRlX2NsaWVudChvcHRpb25zKToKLSAgICBy
ZXR1cm4gQ2xpZW50KAotICAgICAgICBvcHRpb25zLCBXZWJTb2NrZXRIYW5kc2hha2Uob3B0aW9u
cyksIFdlYlNvY2tldFN0cmVhbSkKLQotCi1kZWYgY3JlYXRlX2NsaWVudF9oeWJpMDAob3B0aW9u
cyk6Ci0gICAgcmV0dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywKLSAgICAgICAgV2ViU29j
a2V0SHliaTAwSGFuZHNoYWtlKG9wdGlvbnMsICcwJyksCi0gICAgICAgIFdlYlNvY2tldFN0cmVh
bUhpeGllNzUpCi0KLQotZGVmIGNyZWF0ZV9jbGllbnRfaGl4aWU3NShvcHRpb25zKToKLSAgICBy
ZXR1cm4gQ2xpZW50KAotICAgICAgICBvcHRpb25zLCBXZWJTb2NrZXRIaXhpZTc1SGFuZHNoYWtl
KG9wdGlvbnMpLCBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3Zjg2ZmRiNDE2M2Q0ZTczODk1MmIzY2NiNzdm
MTkyMTZiYzU5MTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQorKysgL2Rl
di9udWxsCkBAIC0xLDY3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiVGVzdCBmb3IgZW5kLXRvLWVuZCB3aXRoIGV4dGVybmFsIHNlcnZl
ci4KLQotVGhpcyB0ZXN0IGlzIG5vdCBydW4gYnkgcnVuX2FsbC5weSBiZWNhdXNlIGl0IHJlcXVp
cmVzIHNvbWUgcHJlcGFyYXRpb25zLgotSWYgeW91IHdvdWxkIGxpa2UgdG8gcnVuIHRoaXMgdGVz
dCBjb3JyZWN0bHksIGxhdW5jaCBBcGFjaGUgd2l0aCBtb2RfcHl0aG9uCi1hbmQgbW9kX3B5d2Vi
c29ja2V0IG1hbnVhbGx5LiBJbiBhZGRpdGlvbiwgeW91IHNob3VsZCBwYXNzIGFsbG93X2RyYWZ0
NzUgb3B0aW9uCi1hbmQgZXhhbXBsZSBwYXRoIGFzIGhhbmRsZXJfc2NhbiBvcHRpb24gYW5kIEFw
YWNoZSdzIERvY3VtZW50Um9vdC4KLSIiIgotCi0KLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IHN5
cwotaW1wb3J0IHRlc3QudGVzdF9lbmR0b2VuZAotaW1wb3J0IHVuaXR0ZXN0Ci0KLQotX0RFRkFV
TFRfV0VCX1NPQ0tFVF9QT1JUID0gODAKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RXaXRoRXh0ZXJu
YWxTZXJ2ZXIodGVzdC50ZXN0X2VuZHRvZW5kLkVuZFRvRW5kVGVzdCk6Ci0gICAgcGFzcwotCi1p
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBh
cnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQn
LCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfV0VC
X1NPQ0tFVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2V4dGVybmFsIHRlc3Qg
c2VydmVyIHBvcnQuJykKLSAgICAob3B0aW9ucywgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygp
Ci0KLSAgICB0ZXN0LnRlc3RfZW5kdG9lbmQuX3VzZV9leHRlcm5hbF9zZXJ2ZXIgPSBUcnVlCi0g
ICAgdGVzdC50ZXN0X2VuZHRvZW5kLl9leHRlcm5hbF9zZXJ2ZXJfcG9ydCA9IG9wdGlvbnMucG9y
dAotCi0gICAgdW5pdHRlc3QubWFpbihhcmd2PVtzeXMuYXJndlswXV0pCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L21vY2sucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L21vY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZmZjYWM0OGRjNDNh
NTJiOWNjZjFiY2QwMTI5NzU0MjQwNDhkNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMjIxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1vY2tzIGZvciB0ZXN0aW5n
LgotIiIiCi0KLQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgdGhyZWFkaW5nCi0KLWZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBv
cnQgU3RyZWFtSGl4aWU3NQotCi0KLWNsYXNzIF9Nb2NrQ29ubkJhc2Uob2JqZWN0KToKLSAgICAi
IiJCYXNlIGNsYXNzIG9mIG1vY2tzIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgotCi0g
ICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBhIChtb2Nr
KSBtcF9jb25uLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBz
ZWxmLl93cml0ZV9kYXRhID0gW10KLSAgICAgICAgc2VsZi5yZW1vdGVfYWRkciA9ICdmYWtlX2Fk
ZHJlc3MnCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIk92ZXJyaWRl
IG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ud3JpdGUuIiIiCi0KLSAgICAgICAgc2VsZi5fd3Jp
dGVfZGF0YS5hcHBlbmQoZGF0YSkKLQotICAgIGRlZiB3cml0dGVuX2RhdGEoc2VsZik6Ci0gICAg
ICAgICIiIkdldCBieXRlcyB3cml0dGVuIHRvIHRoaXMgbW9jay4iIiIKLQotICAgICAgICByZXR1
cm4gJycuam9pbihzZWxmLl93cml0ZV9kYXRhKQotCi0KLWNsYXNzIE1vY2tDb25uKF9Nb2NrQ29u
bkJhc2UpOgotICAgICIiIk1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAg
ICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20g
YSAobW9jaykgbXBfY29ubiBhcwotICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVu
IHRvIGl0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYWRfZGF0YSk6Ci0g
ICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIHJlYWRfZGF0YTogYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgd2hlbiByZWFk
KiBtZXRob2RzIGFyZQotICAgICAgICAgICAgY2FsbGVkLgotICAgICAgICAiIiIKLQotICAgICAg
ICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRfZGF0YSA9
IHJlYWRfZGF0YQotICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IDAKLQotICAgIGRlZiByZWFkbGlu
ZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5y
ZWFkbGluZS4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVh
ZF9kYXRhKToKLSAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICBlbmRfaW5kZXggPSBzZWxm
Ll9yZWFkX2RhdGEuZmluZCgnXG4nLCBzZWxmLl9yZWFkX3BvcykgKyAxCi0gICAgICAgIGlmIG5v
dCBlbmRfaW5kZXg6Ci0gICAgICAgICAgICBlbmRfaW5kZXggPSBsZW4oc2VsZi5fcmVhZF9kYXRh
KQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCi0KLSAgICBkZWYg
cmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNo
ZS5tcF9jb25uLnJlYWQuIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNl
bGYuX3JlYWRfZGF0YSk6Ci0gICAgICAgICAgICByZXR1cm4gJycKLSAgICAgICAgZW5kX2luZGV4
ID0gbWluKGxlbihzZWxmLl9yZWFkX2RhdGEpLCBzZWxmLl9yZWFkX3BvcyArIGxlbmd0aCkKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQotCi0gICAgZGVmIF9yZWFk
X3VwX3RvKHNlbGYsIGVuZF9pbmRleCk6Ci0gICAgICAgIGxpbmUgPSBzZWxmLl9yZWFkX2RhdGFb
c2VsZi5fcmVhZF9wb3M6ZW5kX2luZGV4XQotICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IGVuZF9p
bmRleAotICAgICAgICByZXR1cm4gbGluZQotCi0KLWNsYXNzIE1vY2tCbG9ja2luZ0Nvbm4oX01v
Y2tDb25uQmFzZSk6Ci0gICAgIiIiQmxvY2tpbmcgbW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUu
bXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxk
IGJlIHJlYWQgZnJvbSBhIChtb2NrKSBtcF9jb25uIGFzCi0gICAgd2VsbCBhcyB0byBjaGVjayB3
aGF0IGlzIHdyaXR0ZW4gdG8gaXQuCi0gICAgQ2FsbGVycyBvZiByZWFkKiBtZXRob2RzIHdpbGwg
YmxvY2sgaWYgdGhlcmUgaXMgbm8gYnl0ZXMgYXZhaWxhYmxlLgotICAgICIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCi0g
ICAgICAgIHNlbGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgZGVmIHJlYWRsaW5lKHNl
bGYpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRs
aW5lLiIiIgotICAgICAgICBsaW5lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
ICAgIGMgPSBzZWxmLl9xdWV1ZS5nZXQoKQotICAgICAgICAgICAgbGluZSArPSBjCi0gICAgICAg
ICAgICBpZiBjID09ICdcbic6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKLQotICAgIGRl
ZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBh
Y2hlLm1wX2Nvbm4ucmVhZC4iIiIKLQotICAgICAgICBkYXRhID0gJycKLSAgICAgICAgZm9yIHVu
dXNlZCBpbiByYW5nZShsZW5ndGgpOgotICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9xdWV1ZS5n
ZXQoKQotICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgZGVmIHB1dF9ieXRlcyhzZWxmLCBieXRl
cyk6Ci0gICAgICAgICIiIlB1dCBieXRlcyB0byBiZSByZWFkIGZyb20gdGhpcyBtb2NrLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBieXRlczogYnl0ZXMgdG8gYmUgcmVhZC4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgZm9yIGJ5dGUgaW4gYnl0ZXM6Ci0gICAgICAgICAgICBzZWxmLl9x
dWV1ZS5wdXQoYnl0ZSkKLQotCi1jbGFzcyBNb2NrVGFibGUoZGljdCk6Ci0gICAgIiIiTW9jayB0
YWJsZS4KLQotICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gbXBfdGFibGUuIE5vdGUgdGhhdCBv
bmx5IHRoZSBtZXRob2RzIHVzZWQgYnkKLSAgICB0ZXN0cyBhcmUgb3ZlcnJpZGRlbi4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb3B5X2Zyb209e30pOgotICAgICAgICBpZiBp
c2luc3RhbmNlKGNvcHlfZnJvbSwgZGljdCk6Ci0gICAgICAgICAgICBjb3B5X2Zyb20gPSBjb3B5
X2Zyb20uaXRlbXMoKQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjb3B5X2Zyb206Ci0gICAg
ICAgICAgICBzZWxmLl9fc2V0aXRlbV9fKGtleSwgdmFsdWUpCi0KLSAgICBkZWYgX19nZXRpdGVt
X18oc2VsZiwga2V5KToKLSAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19n
ZXRpdGVtX18oa2V5Lmxvd2VyKCkpCi0KLSAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2
YWx1ZSk6Ci0gICAgICAgIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19zZXRpdGVtX18oa2V5Lmxv
d2VyKCksIHZhbHVlKQotCi0gICAgZGVmIGdldChzZWxmLCBrZXksIGRlZl92YWx1ZT1Ob25lKToK
LSAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuZ2V0KGtleS5sb3dlcigpLCBk
ZWZfdmFsdWUpCi0KLQotY2xhc3MgTW9ja1JlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJNb2NrIHJl
cXVlc3QuCi0KLSAgICBUaGlzIG1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgdXJpPU5vbmUsIGhlYWRlcnNfaW49e30sIGNvbm5lY3Rp
b249Tm9uZSwgbWV0aG9kPSdHRVQnLAotICAgICAgICAgICAgICAgICBwcm90b2NvbD0nSFRUUC8x
LjEnLCBpc19odHRwcz1GYWxzZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4K
LQotICAgICAgICBBcmd1bWVudHM6Ci0gICAgICAgICAgICB1cmk6IFVSSSBvZiB0aGUgcmVxdWVz
dC4KLSAgICAgICAgICAgIGhlYWRlcnNfaW46IFJlcXVlc3QgaGVhZGVycy4KLSAgICAgICAgICAg
IGNvbm5lY3Rpb246IENvbm5lY3Rpb24gdXNlZCBmb3IgdGhlIHJlcXVlc3QuCi0gICAgICAgICAg
ICBtZXRob2Q6IHJlcXVlc3QgbWV0aG9kLgotICAgICAgICAgICAgaXNfaHR0cHM6IFdoZXRoZXIg
dGhpcyByZXF1ZXN0IGlzIG92ZXIgU1NMLgotCi0gICAgICAgIFNlZSB0aGUgZG9jdW1lbnQgb2Yg
bW9kX3B5dGhvbiBSZXF1ZXN0IGZvciBkZXRhaWxzLgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi51cmkgPSB1cmkKLSAgICAgICAgc2VsZi51bnBhcnNlZF91cmkgPSB1cmkKLSAgICAgICAgc2Vs
Zi5jb25uZWN0aW9uID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAot
ICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2VsZi5oZWFkZXJzX2lu
ID0gTW9ja1RhYmxlKGhlYWRlcnNfaW4pCi0gICAgICAgICMgc2VsZi5pc19odHRwc18gbmVlZHMg
dG8gYmUgYWNjZXNzaWJsZSBmcm9tIHRlc3RzLiAgVG8gYXZvaWQgbmFtZQotICAgICAgICAjIGNv
bmZsaWN0IHdpdGggc2VsZi5pc19odHRwcygpLCBpdCBpcyBuYW1lZCBhcyBzdWNoLgotICAgICAg
ICBzZWxmLmlzX2h0dHBzXyA9IGlzX2h0dHBzCi0gICAgICAgIHNlbGYud3Nfc3RyZWFtID0gU3Ry
ZWFtSGl4aWU3NShzZWxmLCBUcnVlKQotICAgICAgICBzZWxmLndzX2Nsb3NlX2NvZGUgPSBOb25l
Ci0gICAgICAgIHNlbGYud3NfY2xvc2VfcmVhc29uID0gTm9uZQotICAgICAgICBzZWxmLndzX3Zl
cnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi53c19kZWZsYXRlID0g
RmFsc2UKLQotICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHdoZXRo
ZXIgdGhpcyByZXF1ZXN0IGlzIG92ZXIgU1NMLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5pc19o
dHRwc18KLQotCi1jbGFzcyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIk1vY2sgZm9y
IGRpc3BhdGNoLkRpc3BhdGNoZXIuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAg
ICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCA9IEZhbHNlCi0KLSAgICBkZWYgZG9f
ZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHNlbGYuZG9fZXh0
cmFfaGFuZHNoYWtlX2NhbGxlZCA9IFRydWUKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYs
IGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGQ1NDM1YThjYzBlMjc1NWM1ODNjMzZkMGNlYWYzZjNmZjYwMjFiMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L211
eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OTAgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2Nr
ZXQgY2xpZW50IHV0aWxpdHkgZm9yIHRlc3RpbmcgbXV4IGV4dGVuc2lvbi4KLQotVGhpcyBjb2Rl
IHNob3VsZCBiZSBpbmRlcGVuZGVudCBmcm9tIG1vZF9weXdlYnNvY2tldC4gU2VlIHRoZSBjb21t
ZW50IG9mCi1jbGllbnRfZm9yX3Rlc3RpbmcucHkuCi0KLU5PVEU6IFRoaXMgY29kZSBpcyBmYXIg
ZnJvbSByb2J1c3QgbGlrZSBjbGllbnRfZm9yX3Rlc3RpbmcucHkuCi0iIiIKLQotCi0KLWltcG9y
dCBRdWV1ZQotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgZW1haWwK
LWltcG9ydCBlbWFpbC5wYXJzZXIKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0
IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQg
dGhyZWFkaW5nCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLWZyb20gdGVz
dCBpbXBvcnQgY2xpZW50X2Zvcl90ZXN0aW5nCi0KLQotX0NPTlRST0xfQ0hBTk5FTF9JRCA9IDAK
LV9ERUZBVUxUX0NIQU5ORUxfSUQgPSAxCi0KLV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVF
U1QgPSAwCi1fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRSA9IDEKLV9NVVhfT1BDT0RF
X0ZMT1dfQ09OVFJPTCA9IDIKLV9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCA9IDMKLV9NVVhfT1BD
T0RFX05FV19DSEFOTkVMX1NMT1QgPSA0Ci0KLQotY2xhc3MgX0NvbnRyb2xCbG9jazoKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUK
LQotCi1kZWYgX3BhcnNlX2hhbmRzaGFrZV9yZXNwb25zZShyZXNwb25zZSk6Ci0gICAgc3RhdHVz
X2xpbmUsIGhlYWRlcl9saW5lcyA9IHJlc3BvbnNlLnNwbGl0KCdcclxuJywgMSkKLQotICAgIHdv
cmRzID0gc3RhdHVzX2xpbmUuc3BsaXQoJyAnKQotICAgIGlmIGxlbih3b3JkcykgPCAzOgotICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgU3RhdHVzLUxpbmUgc3ludGF4ICVyJyAlIHN0YXR1
c19saW5lKQotICAgIFt2ZXJzaW9uLCByZXNwb25zZV9jb2RlXSA9IHdvcmRzWzoyXQotICAgIGlm
IHZlcnNpb24gIT0gJ0hUVFAvMS4xJzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJl
c3BvbnNlIHZlcnNpb24gJXInICUgdmVyc2lvbikKLQotICAgIGlmIHJlc3BvbnNlX2NvZGUgIT0g
JzEwMSc6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JhZCByZXNwb25zZSBjb2RlICVyICcg
JSByZXNwb25zZV9jb2RlKQotICAgIGhlYWRlcnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFy
c2VzdHIoaGVhZGVyX2xpbmVzKQotICAgIHJldHVybiBoZWFkZXJzCi0KLQotZGVmIF9wYXJzZV9j
aGFubmVsX2lkKGRhdGEsIG9mZnNldD0wKToKLSAgICBsZW5ndGggPSBsZW4oZGF0YSkKLSAgICBy
ZW1haW5pbmcgPSBsZW5ndGggLSBvZmZzZXQKLQotICAgIGlmIHJlbWFpbmluZyA8PSAwOgotICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNoYW5uZWwgaWQgZm91bmQnKQotCi0gICAgY2hhbm5l
bF9pZCA9IG9yZChkYXRhW29mZnNldF0pCi0gICAgY2hhbm5lbF9pZF9sZW5ndGggPSAxCi0gICAg
aWYgY2hhbm5lbF9pZCAmIDB4ZTAgPT0gMHhlMDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgNDoK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcp
Ci0gICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchTCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0Om9mZnNldCs0XSlbMF0gJiAweDFmZmZm
ZmZmCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gNAotICAgIGVsaWYgY2hhbm5lbF9pZCAm
IDB4YzAgPT0gMHhjMDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgMzoKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgIGNoYW5u
ZWxfaWQgPSAoKChjaGFubmVsX2lkICYgMHgxZikgPDwgMTYpICsKLSAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFbb2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSkKLSAg
ICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAzCi0gICAgZWxpZiBjaGFubmVsX2lkICYgMHg4MCA9
PSAweDgwOgotICAgICAgICBpZiByZW1haW5pbmcgPCAyOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9
IHN0cnVjdC51bnBhY2soJyFIJywgZGF0YVtvZmZzZXQ6b2Zmc2V0KzJdKVswXSAmIDB4M2ZmZgot
ICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDIKLQotICAgIHJldHVybiBjaGFubmVsX2lkLCBj
aGFubmVsX2lkX2xlbmd0aAotCi0KLWRlZiBfcGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNldD0wKToK
LSAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbb2Zmc2V0XSkKLSAgICBpZiAoZmlyc3RfYnl0ZSAm
IDB4ODApICE9IDA6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVGhlIE1TQiBvZiBudW1iZXIg
ZmllbGQgbXVzdCBiZSB1bnNldCcpCi0gICAgZmlyc3RfYnl0ZSA9IGZpcnN0X2J5dGUgJiAweDdm
Ci0gICAgaWYgZmlyc3RfYnl0ZSA9PSAxMjc6Ci0gICAgICAgIGlmIG9mZnNldCArIDkgPiBsZW4o
ZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLSAg
ICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJyFRJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrOV0p
WzBdLCA5Ci0gICAgaWYgZmlyc3RfYnl0ZSA9PSAxMjY6Ci0gICAgICAgIGlmIG9mZnNldCArIDMg
PiBsZW4oZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVy
JykKLSAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJyFIJywgZGF0YVtvZmZzZXQrMTpvZmZz
ZXQrM10pWzBdLCAzCi0gICAgcmV0dXJuIGZpcnN0X2J5dGUsIDEKLQotCi1kZWYgX3BhcnNlX3Np
emVfYW5kX2NvbnRlbnRzKGRhdGEsIG9mZnNldD0wKToKLSAgICBzaXplLCBhZHZhbmNlID0gX3Bh
cnNlX251bWJlcihkYXRhLCBvZmZzZXQpCi0gICAgc3RhcnRfcG9zaXRpb24gPSBvZmZzZXQgKyBh
ZHZhbmNlCi0gICAgZW5kX3Bvc2l0aW9uID0gc3RhcnRfcG9zaXRpb24gKyBzaXplCi0gICAgaWYg
bGVuKGRhdGEpIDwgZW5kX3Bvc2l0aW9uOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFs
aWQgc2l6ZSBvZiBjb250cm9sIGJsb2NrICglZCA8ICVkKScgJSAoCi0gICAgICAgICAgICAgICAg
bGVuKGRhdGEpLCBlbmRfcG9zaXRpb24pKQotICAgIHJldHVybiBkYXRhW3N0YXJ0X3Bvc2l0aW9u
OmVuZF9wb3NpdGlvbl0sIHNpemUgKyBhZHZhbmNlCi0KLQotZGVmIF9wYXJzZV9jb250cm9sX2Js
b2NrcyhkYXRhKToKLSAgICBibG9ja3MgPSBbXQotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAg
IHBvcyA9IDAKLQotICAgIHdoaWxlIHBvcyA8IGxlbmd0aDoKLSAgICAgICAgZmlyc3RfYnl0ZSA9
IG9yZChkYXRhW3Bvc10pCi0gICAgICAgIHBvcyArPSAxCi0gICAgICAgIG9wY29kZSA9IChmaXJz
dF9ieXRlID4+IDUpICYgMHg3Ci0gICAgICAgIGJsb2NrID0gX0NvbnRyb2xCbG9jayhvcGNvZGUp
Ci0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3VwcG9ydCBtb3JlIG9wY29kZQotICAgICAgICBp
ZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAg
ICBibG9jay5lbmNvZGUgPSBmaXJzdF9ieXRlICYgMwotICAgICAgICAgICAgYmxvY2sucmVqZWN0
ZWQgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLQotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2
YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNo
YW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSwgYWR2YW5jZSA9IF9wYXJzZV9zaXplX2FuZF9jb250
ZW50cyhkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5lbmNvZGVkX2hhbmRzaGFrZSA9IGVu
Y29kZWRfaGFuZHNoYWtlCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAg
YmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMOgotICAgICAgICAgICAgYmxvY2subXV4X2Vycm9yID0gKGZpcnN0X2J5dGUg
Pj4gNCkgJiAxCi0KLSAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hh
bm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5jaGFubmVsX2lkID0gY2hhbm5l
bF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLQotICAgICAgICAgICAgcmVhc29uLCBh
ZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBvcykKLSAgICAgICAgICAg
IGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9jb2RlID0g
Tm9uZQotICAgICAgICAgICAgICAgIGJsb2NrLmRyb3BfbWVzc2FnZSA9ICcnCi0gICAgICAgICAg
ICBlbGlmIGxlbihyZWFzb24pID49IDI6Ci0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9jb2Rl
ID0gc3RydWN0LnVucGFjaygnIUgnLCByZWFzb25bOjJdKVswXQotICAgICAgICAgICAgICAgIGJs
b2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIERyb3BDaGFubmVsJykKLSAgICAgICAg
ICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAg
ICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAg
ICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAg
ICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyAr
PSBhZHZhbmNlCi0gICAgICAgICAgICBzZW5kX3F1b3RhLCBhZHZhbmNlID0gX3BhcnNlX251bWJl
cihkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90YQot
ICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxv
Y2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6
Ci0gICAgICAgICAgICBmYWxsYmFjayA9IGZpcnN0X2J5dGUgJiAxCi0gICAgICAgICAgICBzbG90
cywgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQotICAgICAgICAgICAgcG9zICs9
IGFkdmFuY2UKLSAgICAgICAgICAgIHNlbmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVy
KGRhdGEsIHBvcykKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBpZiBm
YWxsYmFjayA9PSAxIGFuZCAoc2xvdHMgIT0gMCBvciBzZW5kX3F1b3RhICE9IDApOgotICAgICAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignc2xvdHMgYW5kIHNlbmRfcXVvdGEgbXVzdCBiZSB6
ZXJvIGlmIEYgYml0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIHNldCcp
Ci0gICAgICAgICAgICBibG9jay5mYWxsYmFjayA9IGZhbGxiYWNrCi0gICAgICAgICAgICBibG9j
ay5zbG90cyA9IHNsb3RzCi0gICAgICAgICAgICBibG9jay5zZW5kX3F1b3RhID0gc2VuZF9xdW90
YQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5zdXBwb3J0ZWQgbXV4
IG9wY29kZSAlZCByZWNlaXZlZCcgJSBvcGNvZGUpCi0KLSAgICByZXR1cm4gYmxvY2tzCi0KLQot
ZGVmIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKToKLSAgICBpZiBjaGFubmVsX2lkIDwg
MDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBtdXN0IG5vdCBiZSBu
ZWdhdGl2ZScgJSBjaGFubmVsX2lkKQotCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogNzoKLSAg
ICAgICAgcmV0dXJuIGNocihjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDE0
OgotICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFIJywgMHg4MDAwICsgY2hhbm5lbF9pZCkK
LSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyMToKLSAgICAgICAgZmlyc3QgPSBjaHIoMHhjMCAr
IChjaGFubmVsX2lkID4+IDE2KSkKLSAgICAgICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0LnBhY2so
JyFIJywgY2hhbm5lbF9pZCAmIDB4ZmZmZikKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyOToK
LSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFubmVsX2lk
KQotCi0gICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBpcyB0b28gbGFyZ2UnICUg
Y2hhbm5lbF9pZCkKLQotCi1kZWYgX2VuY29kZV9udW1iZXIobnVtYmVyKToKLSAgICBpZiBudW1i
ZXIgPD0gMTI1OgotICAgICAgICByZXR1cm4gY2hyKG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8
ICgxIDw8IDE2KToKLSAgICAgICAgcmV0dXJuIGNocigweDdlKSArIHN0cnVjdC5wYWNrKCchSCcs
IG51bWJlcikKLSAgICBlbGlmIG51bWJlciA8ICgxIDw8IDYzKToKLSAgICAgICAgcmV0dXJuIGNo
cigweDdmKSArIHN0cnVjdC5wYWNrKCchUScsIG51bWJlcikKLSAgICBlbHNlOgotICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgbnVtYmVyJykKLQotCi1kZWYgX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0KGNoYW5uZWxfaWQsIGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0wKToKLSAgICBsZW5ndGggPSBsZW4oZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgaGFuZHNoYWtlX2xlbmd0aCA9IF9lbmNvZGVfbnVtYmVyKGxlbmd0
aCkKLQotICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8
PCA1KSB8IGVuY29kaW5nCi0gICAgcmV0dXJuIChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2No
YW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgaGFuZHNoYWtlX2xlbmd0aCArIGVu
Y29kZWRfaGFuZHNoYWtlKQotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lk
LCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgZmlyc3RfYnl0ZSA9IChfTVVYX09QQ09ERV9GTE9X
X0NPTlRST0wgPDwgNSkKLSAgICByZXR1cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hh
bm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICBfZW5jb2RlX251bWJlcihyZXBsZW5p
c2hlZF9xdW90YSkpCi0KLQotY2xhc3MgX011eFJlYWRlclRocmVhZCh0aHJlYWRpbmcuVGhyZWFk
KToKLSAgICAiIiJNdXggcmVhZGVyIHRocmVhZC4KLQotICAgIFJlYWRzIGZyYW1lcyBhbmQgcGFz
c2VzIHRoZW0gdG8gdGhlIG11eCBjbGllbnQuIFRoaXMgdGhyZWFkIGFjY2Vzc2VzCi0gICAgcHJp
dmF0ZSBmdW5jdGlvbnMvdmFyaWFibGVzIG9mIHRoZSBtdXggY2xpZW50LgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eCk6Ci0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19p
bml0X18oc2VsZikKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5f
bXV4ID0gbXV4Ci0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKLQotICAgIGRl
ZiBfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBmaXJzdF9vcGNvZGUgPSBOb25lCi0g
ICAgICAgIHBlbmRpbmdfcGF5bG9hZCA9IFtdCi0gICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9w
X3JlcXVlc3RlZDoKLSAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBw
YXlsb2FkX2xlbmd0aCA9ICgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcucmVh
ZF9mcmFtZV9oZWFkZXIoc2VsZi5fbXV4Ll9zb2NrZXQpKQotCi0gICAgICAgICAgICBpZiBub3Qg
Zmlyc3Rfb3Bjb2RlOgotICAgICAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQ6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
UmVjZWl2ZWQgYSB0ZXh0IG1lc3NhZ2Ugb24gcGh5c2ljYWwgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24nKQotICAgICAgICAgICAgICAgIGlmIG9wY29k
ZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUg
YnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcmFnbWVudGF0aW9u
IHdhcyBub3Qgc3RhcnRlZCcpCi0gICAgICAgICAgICAgICAgaWYgKG9wY29kZSA9PSBjbGllbnRf
Zm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWSBvcgotICAgICAgICAgICAgICAgICAgICBvcGNvZGUg
PT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9QT05HIG9yCi0gICAgICAgICAgICAgICAgICAg
IG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1BPTkcgb3IKLSAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0UpOgotICAg
ICAgICAgICAgICAgICAgICBmaXJzdF9vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGFuIHVu
ZGVmaW5lZCBvcGNvZGUgZnJhbWU6ICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGNvZGUpCi0KLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlICE9IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignUmVjZWl2ZWQgYSBuZXcgb3Bjb2RlIGJlZm9yZSAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd0ZXJtaW5hdGluZyBmcmFnbWVudGF0aW9uJykKLQotICAgICAgICAgICAg
cGF5bG9hZCA9IGNsaWVudF9mb3JfdGVzdGluZy5yZWNlaXZlX2J5dGVzKAotICAgICAgICAgICAg
ICAgIHNlbGYuX211eC5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKLQotICAgICAgICAgICAgaWYg
c2VsZi5fbXV4Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgcGF5bG9hZCA9IHNlbGYuX211eC5faW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihw
YXlsb2FkKQotCi0gICAgICAgICAgICBwZW5kaW5nX3BheWxvYWQuYXBwZW5kKHBheWxvYWQpCi0K
LSAgICAgICAgICAgIGlmIGZpbjoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlm
IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLQot
ICAgICAgICBtZXNzYWdlID0gJycuam9pbihwZW5kaW5nX3BheWxvYWQpCi0gICAgICAgIHJldHVy
biBmaXJzdF9vcGNvZGUsIG1lc3NhZ2UKLQotICAgIGRlZiByZXF1ZXN0X3N0b3Aoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gVHJ1ZQotCi0gICAgZGVmIHJ1bihzZWxmKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVk
OgotICAgICAgICAgICAgICAgICMgb3Bjb2RlIGlzIE9QQ09ERV9CSU5BUlkgb3IgY29udHJvbCBv
cGNvZGVzIHdoZW4gYSBtZXNzYWdlCi0gICAgICAgICAgICAgICAgIyBpcyBzdWNjZXNmdWxseSBy
ZWNlaXZlZC4KLSAgICAgICAgICAgICAgICBvcGNvZGUsIG1lc3NhZ2UgPSBzZWxmLl9yZWNlaXZl
X21lc3NhZ2UoKQotICAgICAgICAgICAgICAgIGlmIG5vdCBvcGNvZGU6Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIGlmIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX0JJTkFSWToKLSAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2
YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX211eC5fZGlzcGF0Y2hfZnJhbWUoY2hhbm5lbF9pZCwgbWVzc2FnZVthZHZhbmNlOl0pCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9wcm9j
ZXNzX2NvbnRyb2xfbWVzc2FnZShvcGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9tdXguX25vdGlmeV9yZWFkZXJfZG9uZSgpCi0KLQotY2xhc3MgX0lu
bmVyRnJhbWUob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmluLCByc3YxLCByc3Yy
LCByc3YzLCBvcGNvZGUsIHBheWxvYWQpOgotICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAg
ICBzZWxmLnJzdjEgPSByc3YxCi0gICAgICAgIHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2Vs
Zi5yc3YzID0gcnN2MwotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxm
LnBheWxvYWQgPSBwYXlsb2FkCi0KLQotY2xhc3MgX0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3Qp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5xdWV1ZSA9IFF1ZXVlLlF1
ZXVlKCkKLSAgICAgICAgc2VsZi5zZW5kX3F1b3RhID0gMAotICAgICAgICBzZWxmLnJlY2VpdmVf
cXVvdGEgPSAwCi0KLQotY2xhc3MgTXV4Q2xpZW50KG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0
IG11eCBjbGllbnQuCi0KLSAgICBOb3RlIHRoYXQgdGhpcyBjbGFzcyBpcyBOT1QgdGhyZWFkLXNh
ZmUuIERvIG5vdCBhY2Nlc3MgYW4gaW5zdGFuY2Ugb2YgdGhpcwotICAgIGNsYXNzIGZyb20gbXVs
dGlwbGUgdGhyZWFkcyBhdCBhIHNhbWUgdGltZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAg
c2VsZi5fb3B0aW9ucy5lbmFibGVfbXV4KCkKLSAgICAgICAgc2VsZi5fc3RyZWFtID0gTm9uZQot
ICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGNs
aWVudF9mb3JfdGVzdGluZy5XZWJTb2NrZXRIYW5kc2hha2Uoc2VsZi5fb3B0aW9ucykKLSAgICAg
ICAgc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAgICAgICBzZWxmLl9vdXRn
b2luZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0KLSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gRmFs
c2UKLSAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQgPSBOb25lCi0gICAgICAgIHNlbGYuX2NvbnRy
b2xfYmxvY2tzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxm
Ll9jb250cm9sX2Jsb2NrcyA9IFtdCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMgPSBjb2xs
ZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
ID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpOwotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
ID0ge30KLSAgICAgICAgc2VsZi5fdGltZW91dCA9IDIKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxf
Y29ubmVjdGlvbl9jbG9zZV9ldmVudCA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29u
bmVjdGlvbl9jbG9zZV9tZXNzYWdlID0gTm9uZQotCi0gICAgZGVmIF9wYXJzZV9pbm5lcl9mcmFt
ZShzZWxmLCBkYXRhKToKLSAgICAgICAgaWYgbGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZW5jYXBzdWxhdGVkIGZyYW1lIHJlY2VpdmVkJykKLQot
ICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbMF0pCi0gICAgICAgIGZpbiA9IChmaXJzdF9i
eXRlIDw8IDcpICYgMQotICAgICAgICByc3YxID0gKGZpcnN0X2J5dGUgPDwgNikgJiAxCi0gICAg
ICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA8PCA1KSAmIDEKLSAgICAgICAgcnN2MyA9IChmaXJzdF9i
eXRlIDw8IDQpICYgMQotICAgICAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICAg
ICAgaWYgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyOgotICAgICAgICAgICAgcGF5bG9hZCA9
IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIoCi0gICAgICAgICAgICAgICAgZGF0
YVsxOl0pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwYXlsb2FkID0gZGF0YVsxOl0KLQot
ICAgICAgICByZXR1cm4gX0lubmVyRnJhbWUoZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUs
IHBheWxvYWQpCi0KLSAgICBkZWYgX3Byb2Nlc3NfbXV4X2NvbnRyb2xfYmxvY2tzKHNlbGYpOgot
ICAgICAgICBmb3IgYmxvY2sgaW4gc2VsZi5fY29udHJvbF9ibG9ja3M6Ci0gICAgICAgICAgICBp
ZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAg
ICAgICAgICAgICAgIyBBZGRDaGFubmVsUmVzcG9uc2Ugd2lsbCBiZSBoYW5kbGVkIGluIGFkZF9j
aGFubmVsKCkuCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsaWYgYmxv
Y2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBp
biBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdJbnZhbGlkIGZsb3cgY29udHJvbCByZWNlaXZlZCBmb3IgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFubmVsIGlkICVkJyAlIGJsb2NrLmNo
YW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxv
Y2suY2hhbm5lbF9pZF0uc2VuZF9xdW90YSArPSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBi
bG9jay5zZW5kX3F1b3RhKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQot
ICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxf
U0xPVDoKLSAgICAgICAgICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzLmV4dGVuZChbYmxvY2su
c2VuZF9xdW90YV0gKiBibG9jay5zbG90cykKLQotICAgIGRlZiBfZGlzcGF0Y2hfZnJhbWUoc2Vs
ZiwgY2hhbm5lbF9pZCwgcGF5bG9hZCk6Ci0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NPTlRS
T0xfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5f
Y29udHJvbF9ibG9ja3MgKz0gX3BhcnNlX2NvbnRyb2xfYmxvY2tzKHBheWxvYWQpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcHJvY2Vzc19tdXhfY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24u
cmVsZWFzZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAg
ICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBsb2dpY2FsIGZyYW1lIG9u
IGNoYW5uZWwgaWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVkLCB3
aGljaCBpcyBub3QgZXN0YWJsaXNoZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X3BhcnNlX2lubmVyX2ZyYW1lKHBheWxvYWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNlaXZlX3F1b3RhIC09ICgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGxlbihpbm5lcl9mcmFtZS5wYXlsb2FkKSkKLSAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgPCAwOgotICAg
ICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBzZXJ2ZXIgdmlvbGF0ZXMgcXVv
dGEgb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5uZWwgaWQg
JWQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLnB1dChpbm5lcl9mcmFtZSkK
LQotICAgIGRlZiBfcHJvY2Vzc19jb250cm9sX21lc3NhZ2Uoc2VsZiwgb3Bjb2RlLCBtZXNzYWdl
KToKLSAgICAgICAgIyBQaW5nL1BvbmcgYXJlIG5vdCBzdXBwb3J0ZWQuCi0gICAgICAgIGlmIG9w
Y29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgc2Vs
Zi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlID0gbWVzc2FnZQotICAgICAgICAg
ICAgaWYgc2VsZi5faXNfYWN0aXZlOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5k
X2Nsb3NlKAotICAgICAgICAgICAgICAgICAgICBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFU
VVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJykKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWFk
X3RocmVhZC5yZXF1ZXN0X3N0b3AoKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9waHlzaWNhbF9j
b25uZWN0aW9uX2Nsb3NlX2V2ZW50OgotICAgICAgICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nv
bm5lY3Rpb25fY2xvc2VfZXZlbnQuc2V0KCkKLQotICAgIGRlZiBfbm90aWZ5X3JlYWRlcl9kb25l
KHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlYWQgdGhyZWFkIHRlcm1pbmF0
ZWQuJykKLSAgICAgICAgc2VsZi5jbG9zZV9zb2NrZXQoKQotCi0gICAgZGVmIF9hc3NlcnRfY2hh
bm5lbF9zbG90X2F2YWlsYWJsZShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2Vs
Zi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbGVu
KHNlbGYuX2NoYW5uZWxfc2xvdHMpID09IDA6Ci0gICAgICAgICAgICAgICAgIyBXYWl0IG9uY2UK
LSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ud2FpdCh0aW1l
b3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgbGVuKHNlbGYu
X2NoYW5uZWxfc2xvdHMpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxl
ZCB0byByZWNlaXZlIE5ld0NoYW5uZWxTbG90JykKLQotICAgIGRlZiBfYXNzZXJ0X3NlbmRfcXVv
dGFfYXZhaWxhYmxlKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgot
ICAgICAgICAgICAgICAgICMgV2FpdCBvbmNlCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRv
IHJlY2VpdmUgRmxvd0NvbnRyb2wgZm9yIGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFubmVsX2lkKQotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX3NvY2tldCA9IGNsaWVudF9mb3JfdGVzdGluZy5jb25uZWN0X3NvY2tldF93aXRo
X3JldHJ5KAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMudXNlX3RscykKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3Nv
Y2tldCkKLSAgICAgICAgc2VsZi5fc3RyZWFtID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNvY2tl
dFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldCwgc2VsZi5faGFuZHNoYWtlKQotCi0g
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbX0RFRkFVTFRfQ0hBTk5FTF9JRF0gPSBfTG9n
aWNhbENoYW5uZWxEYXRhKCkKLQotICAgICAgICBzZWxmLl9yZWFkX3RocmVhZCA9IF9NdXhSZWFk
ZXJUaHJlYWQoc2VsZikKLSAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQuc3RhcnQoKQotCi0gICAg
ICAgIHNlbGYuX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZhaWxhYmxlKCkKLSAgICAgICAgc2VsZi5f
YXNzZXJ0X3NlbmRfcXVvdGFfYXZhaWxhYmxlKF9ERUZBVUxUX0NIQU5ORUxfSUQpCi0KLSAgICAg
ICAgc2VsZi5faXNfYWN0aXZlID0gVHJ1ZQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29u
bmVjdGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICBkZWYgYWRkX2NoYW5uZWwoc2VsZiwgY2hhbm5l
bF9pZCwgb3B0aW9ucyk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBjbGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAg
ICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdDaGFubmVsIGlkICVkIGFscmVhZHkgZXhpc3RzJyAlIGNoYW5uZWxf
aWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VuZF9xdW90YSA9IHNlbGYuX2NoYW5u
ZWxfc2xvdHMucG9wbGVmdCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yLCBlOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBjaGFubmVsIHNsb3RzOiAlcicgJSBlKQotCi0gICAg
ICAgICMgQ3JlYXRlIEFkZENoYW5uZWwgcmVxdWVzdAotICAgICAgICByZXF1ZXN0X2xpbmUgPSAn
R0VUICVzIEhUVFAvMS4xXHJcbicgJSBvcHRpb25zLnJlc291cmNlCi0gICAgICAgIGZpZWxkcyA9
IFtdCi0gICAgICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQgPT0gY2xpZW50X2Zvcl90ZXN0aW5n
LkRFRkFVTFRfUE9SVDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6ICVzXHJcbicg
JSBvcHRpb25zLnNlcnZlcl9ob3N0Lmxvd2VyKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBmaWVsZHMuYXBwZW5kKCdIb3N0OiAlczolZFxyXG4nICUgKG9wdGlvbnMuc2VydmVyX2hvc3Qu
bG93ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9ucy5zZXJ2ZXJfcG9ydCkpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ09yaWdpbjogJXNc
clxuJyAlIG9wdGlvbnMub3JpZ2luLmxvd2VyKCkpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ0Nv
bm5lY3Rpb246IFVwZ3JhZGVcclxuJykKLQotICAgICAgICBpZiBsZW4ob3B0aW9ucy5leHRlbnNp
b25zKSA+IDA6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnM6ICVzXHJcbicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4ob3B0
aW9ucy5leHRlbnNpb25zKSkKLQotICAgICAgICBoYW5kc2hha2UgPSByZXF1ZXN0X2xpbmUgKyAn
Jy5qb2luKGZpZWxkcykgKyAnXHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdCgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQsIGhhbmRz
aGFrZSkKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChfQ09OVFJPTF9DSEFO
TkVMX0lEKSArIGFkZF9jaGFubmVsX3JlcXVlc3QKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRf
YmluYXJ5KHBheWxvYWQpCi0KLSAgICAgICAgIyBXYWl0IEFkZENoYW5uZWxSZXNwb25zZQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgQWRkQ2hhbm5lbFJlc3BvbnNlIGZvciB0
aGUgcmVxdWVzdC4uLicpCi0gICAgICAgIHJlc3BvbnNlID0gTm9uZQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAg
ICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgIGZvciBibG9jayBpbiBzZWxmLl9j
b250cm9sX2Jsb2NrczoKLSAgICAgICAgICAgICAgICAgICAgaWYgYmxvY2sub3Bjb2RlICE9IF9N
VVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgICAgICAgICAgICAgaWYgYmxvY2suY2hhbm5lbF9pZCA9PSBjaGFu
bmVsX2lkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBibG9jawotICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MucmVtb3ZlKHJlc3BvbnNlKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBpZiByZXNwb25z
ZToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250
cm9sX2Jsb2Nrc19jb25kaXRpb24ud2FpdChzZWxmLl90aW1lb3V0KQotICAgICAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignQWRkQ2hhbm5lbFJlcXVlc3QgdGltZWQgb3V0JykKLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAg
ICAgICAjIFZhbGlkYXRlIEFkZENoYW5uZWxSZXNwb25zZQotICAgICAgICBpZiByZXNwb25zZS5y
ZWplY3RlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVGhlIHNlcnZlciByZWplY3Rl
ZCBBZGRDaGFubmVsUmVxdWVzdCcpCi0KLSAgICAgICAgZmllbGRzID0gX3BhcnNlX2hhbmRzaGFr
ZV9yZXNwb25zZShyZXNwb25zZS5lbmNvZGVkX2hhbmRzaGFrZSkKLQotICAgICAgICAjIFNob3Vs
ZCB3ZSByZWplY3Qgd2hlbiBVcGdyYWRlLCBDb25uZWN0aW9uLCBvciBTZWMtV2ViU29ja2V0LUFj
Y2VwdAotICAgICAgICAjIGhlYWRlcnMgZXhpc3Q/Ci0KLSAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbY2hhbm5lbF9pZF0gPSBfTG9naWNhbENoYW5uZWxEYXRhKCkKLSAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0xvZ2ljYWwgY2hhbm5lbCAlZCBlc3RhYmxpc2hlZCcgJSBjaGFu
bmVsX2lkKQotCi0gICAgZGVmIF9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKHNlbGYs
IGNoYW5uZWxfaWQpOgotICAgICAgICBpZiBub3Qgc2VsZi5faXNfYWN0aXZlOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdNdXggY2xpZW50IGlzIG5vdCBhY3RpdmUnKQotCi0gICAgICAg
IGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ0xvZ2ljYWwgY2hhbm5lbCAlZCBpcyBub3QgZXN0YWJsaXNoZWQu
JykKLQotICAgIGRlZiBkcm9wX2NoYW5uZWwoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICMg
VE9ETyhiYXNoaSk6IEltcGxlbWVudAotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2VuZF9mbG93
X2NvbnRyb2woc2VsZiwgY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgICAgICBz
ZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlz
aGVkX3F1b3RhKQotICAgICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9M
X0NIQU5ORUxfSUQpICsgZmxvd19jb250cm9sCi0gICAgICAgICMgUmVwbGVuaXNoIHJlY2VpdmUg
cXVvdGEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2No
YW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgKz0gKAotICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVk
X3F1b3RhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFy
eShwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBjaGFubmVsX2lkLCBtZXNz
YWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNh
bF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAg
ICAgICAgICAgIGZpcnN0X2J5dGUgPSAoZW5kIDw8IDcpIHwgY2xpZW50X2Zvcl90ZXN0aW5nLk9Q
Q09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpcnN0X2J5dGUgPSAoZW5k
IDw8IDcpIHwgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUCi0gICAgICAgICAgICBtZXNz
YWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA8IGxlbiht
ZXNzYWdlKToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmQgcXVvdGEgdmlv
bGF0aW9uOiAlZCA8ICVkJyAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxlbihtZXNzYWdlKSkpCi0KLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0uc2VuZF9xdW90YSAtPSBsZW4obWVzc2FnZSkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQot
ICAgICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsgY2hyKGZp
cnN0X2J5dGUpICsgbWVzc2FnZQotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5
bG9hZCkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZShzZWxmLCBjaGFubmVsX2lkLCBwYXlsb2Fk
LCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNf
b3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJfZnJh
bWUgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKLSAgICAg
ICAgICAgICAgICB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1ZS5F
bXB0eSwgZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVz
c2FnZSBmcm9tIGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFubmVsX2lkKQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29kZSA9IGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBvcGNvZGUgPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQKLQotICAgICAgICBpZiBp
bm5lcl9mcmFtZS5vcGNvZGUgIT0gb3Bjb2RlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdVbmV4cGVjdGVkIG9wY29kZSByZWNlaXZlZCAoJXIgIT0gJXIpJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGV4cGVjdGVkX29wY29kZSwgaW5uZXJfZnJhbWUub3Bjb2RlKSkKLQot
ICAgICAgICBpZiBpbm5lcl9mcmFtZS5wYXlsb2FkICE9IHBheWxvYWQ6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgcGF5bG9hZCByZWNlaXZlZCcpCi0KLSAgICBkZWYg
c2VuZF9jbG9zZShzZWxmLCBjaGFubmVsX2lkLCBjb2RlPU5vbmUsIHJlYXNvbj0nJyk6Ci0gICAg
ICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQot
ICAgICAgICBpZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5w
YWNrKCchSCcsIGNvZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgYm9keSA9ICcnCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9ICgxIDw8IDcpIHwg
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRQotICAgICAgICBwYXlsb2FkID0gX2VuY29k
ZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsgY2hyKGZpcnN0X2J5dGUpICsgYm9keQotICAgICAg
ICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgIGRlZiBhc3NlcnRfcmVj
ZWl2ZV9jbG9zZShzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNh
bF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1
ZS5nZXQoCi0gICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBl
eGNlcHQgUXVldWUuRW1wdHksIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5v
dCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbm5lbF9pZCkKLSAgICAgICAgaWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9
IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0RpZG5cJ3QgcmVjZWl2ZSBjbG9zZSBmcmFtZScpCi0KLSAgICBkZWYgc2VuZF9waHlz
aWNhbF9jb25uZWN0aW9uX2Nsb3NlKHNlbGYsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKLSAgICAg
ICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudCA9IHRocmVhZGluZy5FdmVu
dCgpCi0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAg
ICMgVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgb25seSBhZnRlciBjYWxsaW5nCi0gICAgIyBzZW5k
X3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2UoKS4KLSAgICBkZWYgYXNzZXJ0X3BoeXNpY2FsX2Nv
bm5lY3Rpb25fcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgc2VsZiwgY29kZT1jbGllbnRfZm9yX3Rl
c3RpbmcuU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9w
aHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LndhaXQodGltZW91dD1zZWxmLl90aW1lb3V0
KQotICAgICAgICBpZiAobm90IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQu
aXNTZXQoKSBvcgotICAgICAgICAgICAgbm90IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xv
c2VfbWVzc2FnZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0RpZG5cJ3QgcmVjZWl2
ZSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYpOgotICAg
ICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQotICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2Uo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9ydW5fYWxsLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9y
dW5fYWxsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGE1ZDg3ZDgzODIyYjA3
ODNiZTEzZTMzZGRhM2FiNjFhNWFmZTQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvcnVuX2FsbC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDg5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAx
MSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotIiIiUnVuIGFsbCB0ZXN0cyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCi0KLVRoaXMgc3Vp
dGUgaXMgZXhwZWN0ZWQgdG8gYmUgcnVuIHVuZGVyIHB5d2Vic29ja2V0J3Mgc3JjIGRpcmVjdG9y
eSwgaS5lLiB0aGUKLWRpcmVjdG9yeSBjb250YWluaW5nIG1vZF9weXdlYnNvY2tldCwgdGVzdCwg
ZXRjLgotCi1UbyBjaGFuZ2UgbG9nZ2luIGxldmVsLCBwbGVhc2Ugc3BlY2lmeSAtLWxvZy1sZXZl
bCBvcHRpb24uCi0gICAgcHl0aG9uIHRlc3QvcnVuX3Rlc3QucHkgLS1sb2ctbGV2ZWwgZGVidWcK
LQotVG8gcGFzcyBhbnkgb3B0aW9uIHRvIHVuaXR0ZXN0IG1vZHVsZSwgcGxlYXNlIHNwZWNpZnkg
b3B0aW9ucyBhZnRlciAnLS0nLiBGb3IKLWV4YW1wbGUsIHJ1biB0aGlzIGZvciBtYWtpbmcgdGhl
IHRlc3QgcnVubmVyIHZlcmJvc2UuCi0gICAgcHl0aG9uIHRlc3QvcnVuX3Rlc3QucHkgLS1sb2ct
bGV2ZWwgZGVidWcgLS0gLXYKLSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3B0cGFy
c2UKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLQot
Ci1fVEVTVF9NT0RVTEVfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKHRlc3RfLispXC5weSQnKQot
Ci0KLWRlZiBfbGlzdF90ZXN0X21vZHVsZXMoZGlyZWN0b3J5KToKLSAgICBtb2R1bGVfbmFtZXMg
PSBbXQotICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKGRpcmVjdG9yeSk6Ci0gICAgICAg
IG1hdGNoID0gX1RFU1RfTU9EVUxFX1BBVFRFUk4uc2VhcmNoKGZpbGVuYW1lKQotICAgICAgICBp
ZiBtYXRjaDoKLSAgICAgICAgICAgIG1vZHVsZV9uYW1lcy5hcHBlbmQobWF0Y2guZ3JvdXAoMSkp
Ci0gICAgcmV0dXJuIG1vZHVsZV9uYW1lcwotCi0KLWRlZiBfc3VpdGUoKToKLSAgICBsb2FkZXIg
PSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKLSAgICByZXR1cm4gbG9hZGVyLmxvYWRUZXN0c0Zyb21O
YW1lcygKLSAgICAgICAgICAgIF9saXN0X3Rlc3RfbW9kdWxlcyhvcy5wYXRoLmpvaW4ob3MucGF0
aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuJykpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm5pbmcnLAot
ICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcn
LCAnd2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRp
Y2FsJ10pCi0gICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICBsb2dn
aW5nLmJhc2ljQ29uZmlnKAotICAgICAgICAgICAgbGV2ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUo
b3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSksCi0gICAgICAgICAgICBmb3JtYXQ9JyUobGV2ZWxu
YW1lKXMgJShhc2N0aW1lKXMgJwotICAgICAgICAgICAgICAgICAgICclKGZpbGVuYW1lKXM6JShs
aW5lbm8pZF0gJwotICAgICAgICAgICAgICAgICAgICclKG1lc3NhZ2UpcycsCi0gICAgICAgICAg
ICBkYXRlZm10PSclSDolTTolUycpCi0gICAgdW5pdHRlc3QubWFpbihkZWZhdWx0VGVzdD0nX3N1
aXRlJywgYXJndj1bc3lzLmFyZ3ZbMF1dICsgYXJncykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qvc2V0X3N5c19wYXRoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9zZXRfc3lzX3BhdGgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzZkYjll
YTRkMzgzYTM3YzI3YTA2MGEwZWYxYzU2M2JiYjFlMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9zZXRfc3lzX3BhdGgucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJDb25m
aWd1cmF0aW9uIGZvciB0ZXN0aW5nLgotCi1UZXN0IGZpbGVzIHNob3VsZCBpbXBvcnQgdGhpcyBt
b2R1bGUgYmVmb3JlIG1vZF9weXdlYnNvY2tldC4KLSIiIgotCi0KLWltcG9ydCBvcwotaW1wb3J0
IHN5cwotCi0KLSMgQWRkIHRoZSBwYXJlbnQgZGlyZWN0b3J5IHRvIHN5cy5wYXRoIHRvIGVuYWJs
ZSBpbXBvcnRpbmcgbW9kX3B5d2Vic29ja2V0Lgotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
am9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4uJykpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDljYTNkNGYzYWUxZGJmNWY5N2IyN2Q4NGVjNmU2NDIyZmQwZWNhYTQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2Rpc3Bh
dGNoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3Ry
aWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGRpc3BhdGNoIG1vZHVs
ZS4iIiIKLQotCi1pbXBvcnQgb3MKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9I
QU5ETEVSU19ESVIgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgIG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdLCAndGVzdGRhdGEnLCAnaGFuZGxlcnMnKQotCi1fVEVTVF9IQU5ETEVSU19TVUJfRElS
ID0gb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicpCi0KLQotY2xhc3MgRGlz
cGF0Y2hlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGRp
c3BhdGNoIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X25vcm1hbGl6ZV9wYXRoKHNlbGYpOgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2Uo
J1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXpl
X3BhdGgoJy9hL2InKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgo
Jy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlz
cGF0Y2guX25vcm1hbGl6ZV9wYXRoKCdcXGFcXGInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCcvYS9jLy4uL2InKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJ2FiYycpLnJlcGxhY2UoJ1xc
JywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3Bh
dGgoJ2FiYycpKQotCi0gICAgZGVmIHRlc3RfY29udmVydGVyKHNlbGYpOgotICAgICAgICBjb252
ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKCcvYS9i
JykKLSAgICAgICAgIyBQeXRob24gYnVpbHQgYnkgTVNDIGluc2VydHMgYSBkcml2ZSBuYW1lIGxp
a2UgJ0M6XCcgdmlhIHJlYWxwYXRoKCkuCi0gICAgICAgICMgQ29udmVydGVyIEdlbmVyYXRvciBl
eHBhbmRzIHByb3ZpZGVkIHBhdGggdXNpbmcgcmVhbHBhdGgoKSBhbmQgdXNlcwotICAgICAgICAj
IHRoZSBwYXRoIGluY2x1ZGluZyBhIGRyaXZlIG5hbWUgdG8gdmVyaWZ5IHRoZSBwcmVmaXguCi0g
ICAgICAgIG9zX3Jvb3QgPSBvcy5wYXRoLnJlYWxwYXRoKCcvJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnL2MvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9jL2hf
d3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgY29udmVydGVyKG9zX3Jv
b3QgKyAnYS9iL2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0
ZXIoJ2EvYi9oX3dzaC5weScpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVh
dGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJ2EvYicpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJy9oJywgY29udmVydGVyKGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgKLSAgICAgICAg
ICAgICdhL2IvaF93c2gucHknKSkpCi0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2Ny
ZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcignL2EvYi8vLycpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKGRpc3BhdGNoLl9ub3JtYWxp
emVfcGF0aCgKLSAgICAgICAgICAgICcvYS9iLy4uL2IvaF93c2gucHknKSkpCi0KLSAgICAgICAg
Y29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcigK
LSAgICAgICAgICAgICcvYS8uLi9hL2IvLi4vYi8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotCi0gICAgICAgIGNv
bnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIocidc
YVxiJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCAr
IHInYVxiXGhfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVy
dGVyKG9zX3Jvb3QgKyByJ2EvYi9oX3dzaC5weScpKQotCi0gICAgZGVmIHRlc3RfZW51bWVyYXRl
X2hhbmRsZXJfZmlsZV9wYXRocyhzZWxmKToKLSAgICAgICAgcGF0aHMgPSBsaXN0KAotICAgICAg
ICAgICAgZGlzcGF0Y2guX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoX1RFU1RfSEFORExF
UlNfRElSKSkKLSAgICAgICAgcGF0aHMuc29ydCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
OCwgbGVuKHBhdGhzKSkKLSAgICAgICAgZXhwZWN0ZWRfcGF0aHMgPSBbCi0gICAgICAgICAgICAg
ICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ2Fib3J0X2J5X3VzZXJfd3NoLnB5
JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ2Js
YW5rX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVS
U19ESVIsICdvcmlnaW5fY2hlY2tfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5q
b2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdleGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3Mu
cGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVfd3NoLnB5
JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1
YicsICdwbGFpbl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1Rf
SEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25n
X2hhbmRzaGFrZV9zaWdfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9U
RVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3
cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgXQotICAgICAgICBm
b3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfcGF0aHMsIHBhdGhzKToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiB0ZXN0
X3NvdXJjZV9oYW5kbGVyX2ZpbGUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAot
ICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2Vf
aGFuZGxlcl9maWxlLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAg
ICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2Zp
bGUsICdkZWYnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIGRpc3Bh
dGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJzEv
MCcpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcyhkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmls
ZSgKLSAgICAgICAgICAgICAgICAnZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpOnBhc3NcbicKLSAgICAgICAgICAgICAgICAnZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YShyZXF1ZXN0KTpwYXNzXG4nKSkKLQotICAgIGRlZiB0ZXN0X3NvdXJjZV93YXJuaW5ncyhz
ZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfRElSLCBOb25lKQotICAgICAgICB3YXJuaW5ncyA9IGRpc3BhdGNoZXIuc291cmNlX3dh
cm5pbmdzKCkKLSAgICAgICAgd2FybmluZ3Muc29ydCgpCi0gICAgICAgIGV4cGVjdGVkX3dhcm5p
bmdzID0gWwotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigK
LSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5Jykp
ICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMg
bm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0
aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAn
bm9uX2NhbGxhYmxlX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBjYWxsYWJsZS4nKSwKLSAgICAgICAgICAgICAgICAo
b3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIF9URVNU
X0hBTkRMRVJTX0RJUiwgJ3N1YicsICd3cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weScpKSArCi0g
ICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBk
ZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9p
bigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3dyb25n
X3RyYW5zZmVyX3NpZ193c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEgaXMgbm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAgICAgXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyg0LCBsZW4od2FybmluZ3MpKQotICAgICAgICBmb3IgZXhw
ZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfd2FybmluZ3MsIHdhcm5pbmdzKToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgdGVz
dF9kb19leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRj
aC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9
IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9vcmln
aW5fY2hlY2snCi0gICAgICAgIHJlcXVlc3Qud3Nfb3JpZ2luID0gJ2h0dHA6Ly9leGFtcGxlLmNv
bScKLSAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkgICMgTXVz
dCBub3QgcmFpc2UgZXhjZXB0aW9uLgotCi0gICAgICAgIHJlcXVlc3Qud3Nfb3JpZ2luID0gJ2h0
dHA6Ly9iYWQuZXhhbXBsZS5jb20nCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRpc3BhdGNo
ZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpCi0gICAgICAgICAgICBzZWxmLmZhaWwoJ0Nv
dWxkIG5vdCBjYXRjaCBIYW5kc2hha2VFeGNlcHRpb24gd2l0aCA0MDMgc3RhdHVzJykKLSAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyg0MDMsIGUuc3RhdHVzKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgotICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIGV4Y2VwdGlvbjogJXInICUg
ZSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25l
KQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qu
d3NfcmVzb3VyY2UgPSAnL2Fib3J0X2J5X3VzZXInCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZSwgcmVxdWVzdCkKLQotICAgIGRlZiB0
ZXN0X3RyYW5zZmVyX2RhdGEoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5E
aXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLQotICAgICAgICByZXF1ZXN0ID0g
bW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0g
ICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAgICAgcmVx
dWVzdC53c19wcm90b2NvbCA9ICdwMScKLSAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRh
KHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ29yaWdpbl9jaGVja193c2gucHkg
aXMgY2FsbGVkIGZvciAvb3JpZ2luX2NoZWNrLCBwMScKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChj
b25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJlcXVlc3Qud3Nf
cmVzb3VyY2UgPSAnL3N1Yi9wbGFpbicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5v
bmUKLSAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWlu
LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubign
XHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3ViL3BsYWluPycK
LSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUKLSAgICAgICAgZGlzcGF0Y2hlci50
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFp
bl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWluPywgTm9uZScKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2Nr
UmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJl
cXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFpbj9xPXYnCi0gICAgICAgIHJlcXVlc3Qud3Nf
cHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNhbGxlZCBm
b3IgL3N1Yi9wbGFpbj9xPXYsIE5vbmUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZc
eDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRhX25vX2hhbmRsZXIoc2VsZik6
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJT
X0RJUiwgTm9uZSkKLSAgICAgICAgZm9yIHJlc291cmNlIGluIFsnL2JsYW5rJywgJy9zdWIvbm9u
X2NhbGxhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnL3N1Yi9ub193c2hfYXRfdGhl
X2VuZCcsICcvZG9lcy9ub3QvZXhpc3QnXToKLSAgICAgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1v
Y2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJykpCi0gICAgICAgICAgICByZXF1
ZXN0LndzX3Jlc291cmNlID0gcmVzb3VyY2UKLSAgICAgICAgICAgIHJlcXVlc3Qud3NfcHJvdG9j
b2wgPSAncDInCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hlci50
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKLSAgICAg
ICAgICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAg
ICAgICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ05vIGhhbmRsZXInKSAhPSAtMSkKLSAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkK
LQotICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfaGFuZGxlcl9leGNlcHRpb24oc2VsZik6Ci0g
ICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJ
UiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1t
b2NrLk1vY2tDb25uKCcnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3ViL2V4
Y2VwdGlvbl9pbl90cmFuc2ZlcicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMycK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpCi0gICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBl
OgotICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5kKCdJbnRlbnRpb25hbCcp
ICE9IC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGV4Y2VwdGlv
bjogJXMnICUgZSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0X3RyYW5zZmVyX2RhdGEoc2VsZik6Ci0g
ICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJ
UiwgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICBy
ZXF1ZXN0LndzX3Jlc291cmNlID0gJy9hYm9ydF9ieV91c2VyJwotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhLCByZXF1ZXN0KQotCi0gICAgZGVm
IHRlc3Rfc2Nhbl9kaXIoc2VsZik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVy
KF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBs
ZW4oZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9v
cmlnaW5fY2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZh
aWxVbmxlc3MoCi0gICAgICAgICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRp
c3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIvcGxh
aW4nIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9zdWJf
ZGlyKHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5E
TEVSU19ESVIsIF9URVNUX0hBTkRMRVJTX1NVQl9ESVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMiwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsSWYo
Jy9vcmlnaW5fY2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxm
LmZhaWxVbmxlc3MoCi0gICAgICAgICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGlu
IGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIv
cGxhaW4nIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9z
dWJfZGlyX2FzX3Jvb3Qoc2VsZik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVy
KF9URVNUX0hBTkRMRVJTX1NVQl9ESVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF9URVNUX0hBTkRMRVJTX1NVQl9ESVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
bGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9vcmln
aW5fY2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxJ
ZignL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFw
KQotICAgICAgICBzZWxmLmZhaWxJZignL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcicg
aW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3Bs
YWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fZGly
X211c3RfdW5kZXJfcm9vdChzZWxmKToKLSAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hlcignYS9i
JywgJ2EvYi9jJykgICMgT0sKLSAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hlcignYS9iLy8vJywg
J2EvYicpICAjIE9LCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNo
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVy
LCAnYS9iL2MnLCAnYS9iJykKLQotICAgIGRlZiB0ZXN0X3Jlc291cmNlX3BhdGhfYWxpYXMoc2Vs
Zik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJ
UiwgTm9uZSkKLSAgICAgICAgZGlzcC5hZGRfcmVzb3VyY2VfcGF0aF9hbGlhcygnLycsICcvb3Jp
Z2luX2NoZWNrJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1LCBsZW4oZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9vcmlnaW5fY2hlY2snIGlu
IGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoCi0gICAg
ICAgICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3Vp
dGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIvcGxhaW4nIGluIGRpc3AuX2hh
bmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy8nIGluIGRpc3AuX2hh
bmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhkaXNwYXRjaC5EaXNw
YXRjaEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcC5hZGRfcmVzb3Vy
Y2VfcGF0aF9hbGlhcywgJy9hbGlhcycsICcvbm90LWV4aXN0JykKLQotCi1pZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2VuZHRvZW5kLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X2VuZHRvZW5kLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTVj
ZjYxNTczOTE3ZDg3ZDEzNjViMTZhNThjMmM0MTg4YTkxMmVjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9lbmR0b2VuZC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDc1MyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkVuZC10by1lbmQgdGVzdHMgZm9yIHB5d2Vic29j
a2V0LiBUZXN0cyBzdGFuZGFsb25lLnB5IGJ5IGRlZmF1bHQuIFlvdQotY2FuIGFsc28gdGVzdCBt
b2RfcHl3ZWJzb2NrZXQgaG9zdGVkIG9uIGFuIEFwYWNoZSBzZXJ2ZXIgYnkgc2V0dGluZwotX3Vz
ZV9leHRlcm5hbF9zZXJ2ZXIgdG8gVHJ1ZSBhbmQgbW9kaWZ5aW5nIF9leHRlcm5hbF9zZXJ2ZXJf
cG9ydCB0byBwb2ludCB0bwotdGhlIHBvcnQgb24gd2hpY2ggdGhlIEFwYWNoZSBzZXJ2ZXIgaXMg
cnVubmluZy4KLSIiIgotCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzaWdu
YWwKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1pbXBvcnQg
dGltZQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5
cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIHRlc3QgaW1w
b3J0IGNsaWVudF9mb3JfdGVzdGluZwotZnJvbSB0ZXN0IGltcG9ydCBtdXhfY2xpZW50X2Zvcl90
ZXN0aW5nCi0KLQotIyBTcGVjaWFsIG1lc3NhZ2UgdGhhdCB0ZWxscyB0aGUgZWNobyBzZXJ2ZXIg
dG8gc3RhcnQgY2xvc2luZyBoYW5kc2hha2UKLV9HT09EQllFX01FU1NBR0UgPSAnR29vZGJ5ZScK
LQotX1NFUlZFUl9XQVJNVVBfSU5fU0VDID0gMC4yCi0KLSMgSWYgeW91IHdhbnQgdG8gdXNlIGV4
dGVybmFsIHNlcnZlciB0byBydW4gZW5kIHRvIGVuZCB0ZXN0cywgc2V0IGZvbGxvd2luZwotIyBw
YXJhbWV0ZXJzIGNvcnJlY3RseS4KLV91c2VfZXh0ZXJuYWxfc2VydmVyID0gRmFsc2UKLV9leHRl
cm5hbF9zZXJ2ZXJfcG9ydCA9IDAKLQotCi0jIFRlc3QgYm9keSBmdW5jdGlvbnMKLWRlZiBfZWNo
b19jaGVja19wcm9jZWR1cmUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBj
bGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JykKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ3Rl
c3QnKQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ2hlbGxvd29ybGQnKQotICAgIGNsaWVudC5h
c3NlcnRfcmVjZWl2ZSgnaGVsbG93b3JsZCcpCi0KLSAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0g
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgIGNsaWVudC5hc3NlcnRfY29u
bmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9iaW5h
cnkoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNz
YWdlKCdiaW5hcnknLCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2Jp
bmFyeScsIGJpbmFyeT1UcnVlKQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ1x4MDBceDgwXHhm
ZVx4ZmZceDAwXHg4MCcsIGJpbmFyeT1UcnVlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgn
XHgwMFx4ODBceGZlXHhmZlx4MDBceDgwJywgYmluYXJ5PVRydWUpCi0KLSAgICBjbGllbnQuc2Vu
ZF9jbG9zZSgpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgIGNsaWVu
dC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVja19wcm9jZWR1
cmVfd2l0aF9nb29kYnllKGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xp
ZW50LnNlbmRfbWVzc2FnZSgndGVzdCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCd0ZXN0
JykKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoX0dPT0RCWUVfTUVTU0FHRSkKLSAgICBjbGll
bnQuYXNzZXJ0X3JlY2VpdmUoX0dPT0RCWUVfTUVTU0FHRSkKLQotICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZV9jbG9zZSgpCi0gICAgY2xpZW50LnNlbmRfY2xvc2UoKQotCi0gICAgY2xpZW50LmFz
c2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93
aXRoX2NvZGVfYW5kX3JlYXNvbihjbGllbnQsIGNvZGUsIHJlYXNvbik6Ci0gICAgY2xpZW50LmNv
bm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotICAgIGNsaWVu
dC5hc3NlcnRfcmVjZWl2ZV9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBjbGllbnQuYXNzZXJ0
X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX3VubWFza2VkX2ZyYW1lX2NoZWNrX3Byb2Nl
ZHVyZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21l
c3NhZ2UoJ3Rlc3QnLCBtYXNrPUZhbHNlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9z
ZShjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1BST1RPQ09MX0VSUk9SLCAnJykKLQotICAgIGNs
aWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfbXV4X2VjaG9fY2hlY2tf
cHJvY2VkdXJlKG11eF9jbGllbnQpOgotICAgIG11eF9jbGllbnQuY29ubmVjdCgpCi0gICAgbXV4
X2NsaWVudC5zZW5kX2Zsb3dfY29udHJvbCgxLCAxMDI0KQotCi0gICAgbG9naWNhbF9jaGFubmVs
X29wdGlvbnMgPSBjbGllbnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9ucygpCi0gICAgbG9naWNh
bF9jaGFubmVsX29wdGlvbnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JwotICAgIGxvZ2ljYWxf
Y2hhbm5lbF9vcHRpb25zLnNlcnZlcl9wb3J0ID0gODAKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0
aW9ucy5vcmlnaW4gPSAnaHR0cDovL2xvY2FsaG9zdCcKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0
aW9ucy5yZXNvdXJjZSA9ICcvZWNobycKLSAgICBtdXhfY2xpZW50LmFkZF9jaGFubmVsKDIsIGxv
Z2ljYWxfY2hhbm5lbF9vcHRpb25zKQotICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2wo
MiwgMTAyNCkKLQotICAgIG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDIsICd0ZXN0JykKLSAgICBt
dXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDIsICd0ZXN0JykKLQotICAgIG11eF9jbGllbnQuYWRk
X2NoYW5uZWwoMywgbG9naWNhbF9jaGFubmVsX29wdGlvbnMpCi0gICAgbXV4X2NsaWVudC5zZW5k
X2Zsb3dfY29udHJvbCgzLCAxMDI0KQotCi0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMiwg
J2hlbGxvJykKLSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgzLCAnd29ybGQnKQotICAgIG11
eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUoMiwgJ2hlbGxvJykKLSAgICBtdXhfY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKDMsICd3b3JsZCcpCi0KLSAgICAjIERvbid0IHNlbmQgY2xvc2UgbWVzc2FnZSBv
biBjaGFubmVsIGlkIDEgc28gdGhhdCBzZXJ2ZXItaW5pdGlhdGVkCi0gICAgIyBjbG9zaW5nIGhh
bmRzaGFrZSB3b24ndCBvY2N1ci4KLSAgICBtdXhfY2xpZW50LnNlbmRfY2xvc2UoMikKLSAgICBt
dXhfY2xpZW50LnNlbmRfY2xvc2UoMykKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKDIpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgzKQotCi0gICAgbXV4
X2NsaWVudC5zZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2UoKQotICAgIG11eF9jbGllbnQu
YXNzZXJ0X3BoeXNpY2FsX2Nvbm5lY3Rpb25fcmVjZWl2ZV9jbG9zZSgpCi0KLQotY2xhc3MgRW5k
VG9FbmRUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQmFzZSBjbGFzcyBmb3Ig
ZW5kLXRvLWVuZCB0ZXN0cyB0aGF0IGxhdW5jaCBweXdlYnNvY2tldCBzdGFuZGFsb25lCi0gICAg
c2VydmVyIGFzIGEgc2VwYXJhdGUgcHJvY2VzcywgY29ubmVjdCB0byBpdCB1c2luZyB0aGUgY2xp
ZW50X2Zvcl90ZXN0aW5nCi0gICAgbW9kdWxlLCBhbmQgY2hlY2sgaWYgdGhlIHNlcnZlciBiZWhh
dmVzIGNvcnJlY3RseSBieSBleGNoYW5naW5nIG9wZW5pbmcKLSAgICBoYW5kc2hha2UgYW5kIGZy
YW1lcyBvdmVyIGEgVENQIGNvbm5lY3Rpb24uCi0gICAgIiIiCi0KLSAgICBkZWYgc2V0VXAoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuc2VydmVyX3N0ZGVyciA9IE5vbmUKLSAgICAgICAgc2VsZi50b3Bf
ZGlyID0gb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLi4nKQotICAg
ICAgICBvcy5wdXRlbnYoJ1BZVEhPTlBBVEgnLCBvcy5wYXRoLnBhdGhzZXAuam9pbihzeXMucGF0
aCkpCi0gICAgICAgIHNlbGYuc3RhbmRhbG9uZV9jb21tYW5kID0gb3MucGF0aC5qb2luKAotICAg
ICAgICAgICAgc2VsZi50b3BfZGlyLCAnbW9kX3B5d2Vic29ja2V0JywgJ3N0YW5kYWxvbmUucHkn
KQotICAgICAgICBzZWxmLmRvY3VtZW50X3Jvb3QgPSBvcy5wYXRoLmpvaW4oc2VsZi50b3BfZGly
LCAnZXhhbXBsZScpCi0gICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgcy5iaW5k
KCgnbG9jYWxob3N0JywgMCkpCi0gICAgICAgIChfLCBzZWxmLnRlc3RfcG9ydCkgPSBzLmdldHNv
Y2tuYW1lKCkKLSAgICAgICAgcy5jbG9zZSgpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IGNs
aWVudF9mb3JfdGVzdGluZy5DbGllbnRPcHRpb25zKCkKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfaG9zdCA9ICdsb2NhbGhvc3QnCi0gICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luID0g
J2h0dHA6Ly9sb2NhbGhvc3QnCi0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2Vj
aG8nCi0KLSAgICAgICAgIyBUT0RPKHRveW9zaGltKTogRWxpbWluYXRlIGxhdW5jaGluZyBhIHN0
YW5kYWxvbmUgc2VydmVyIG9uIHVzaW5nCi0gICAgICAgICMgZXh0ZXJuYWwgc2VydmVyLgotCi0g
ICAgICAgIGlmIF91c2VfZXh0ZXJuYWxfc2VydmVyOgotICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy5zZXJ2ZXJfcG9ydCA9IF9leHRlcm5hbF9zZXJ2ZXJfcG9ydAotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IHNlbGYudGVzdF9wb3J0Ci0KLSAg
ICAjIFRPRE8odHlvc2hpbm8pOiBVc2UgdGVhckRvd24gdG8ga2lsbCB0aGUgc2VydmVyLgotCi0g
ICAgZGVmIF9ydW5fcHl0aG9uX2NvbW1hbmQoc2VsZiwgY29tbWFuZGxpbmUsIHN0ZG91dD1Ob25l
LCBzdGRlcnI9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhl
Y3V0YWJsZV0gKyBjb21tYW5kbGluZSwgY2xvc2VfZmRzPVRydWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZG91dD1zdGRvdXQsIHN0ZGVycj1zdGRlcnIpCi0KLSAgICBkZWYg
X3J1bl9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIGFyZ3MgPSBbc2VsZi5zdGFuZGFsb25lX2NvbW1h
bmQsCi0gICAgICAgICAgICAgICAgJy1IJywgJ2xvY2FsaG9zdCcsCi0gICAgICAgICAgICAgICAg
Jy1WJywgJ2xvY2FsaG9zdCcsCi0gICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYudGVzdF9w
b3J0KSwKLSAgICAgICAgICAgICAgICAnLVAnLCBzdHIoc2VsZi50ZXN0X3BvcnQpLAotICAgICAg
ICAgICAgICAgICctZCcsIHNlbGYuZG9jdW1lbnRfcm9vdF0KLQotICAgICAgICAjIEluaGVyaXQg
dGhlIGxldmVsIHNldCB0byB0aGUgcm9vdCBsb2dnZXIgYnkgdGVzdCBydW5uZXIuCi0gICAgICAg
IHJvb3RfbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotICAgICAgICBsb2dfbGV2ZWwgPSBy
b290X2xvZ2dlci5nZXRFZmZlY3RpdmVMZXZlbCgpCi0gICAgICAgIGlmIGxvZ19sZXZlbCAhPSBs
b2dnaW5nLk5PVFNFVDoKLSAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctLWxvZy1sZXZlbCcpCi0g
ICAgICAgICAgICBhcmdzLmFwcGVuZChsb2dnaW5nLmdldExldmVsTmFtZShsb2dfbGV2ZWwpLmxv
d2VyKCkpCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLnNlcnZl
cl9zdGRlcnIpCi0KLSAgICBkZWYgX2tpbGxfcHJvY2VzcyhzZWxmLCBwaWQpOgotICAgICAgICBp
ZiBzeXMucGxhdGZvcm0gaW4gKCd3aW4zMicsICdjeWd3aW4nKToKLSAgICAgICAgICAgIHN1YnBy
b2Nlc3MuY2FsbCgKLSAgICAgICAgICAgICAgICAoJ3Rhc2traWxsLmV4ZScsICcvZicsICcvcGlk
Jywgc3RyKHBpZCkpLCBjbG9zZV9mZHM9VHJ1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IG9zLmtpbGwocGlkLCBzaWduYWwuU0lHS0lMTCkKLQotCi1jbGFzcyBFbmRUb0VuZEh5QmlUZXN0
KEVuZFRvRW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgRW5kVG9F
bmRUZXN0QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVmIF9ydW5fdGVzdF93aXRoX2NsaWVudF9v
cHRpb25zKHNlbGYsIHRlc3RfZnVuY3Rpb24sIG9wdGlvbnMpOgotICAgICAgICBzZXJ2ZXIgPSBz
ZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBUT0RPKHR5b3No
aW5vKTogYWRkIHNvbWUgbG9naWMgdG8gcG9sbCB0aGUgc2VydmVyIHVudGlsIGl0Ci0gICAgICAg
ICAgICAjIGJlY29tZXMgcmVhZHkKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJN
VVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3Jl
YXRlX2NsaWVudChvcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAg
ICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0
ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9u
cyh0ZXN0X2Z1bmN0aW9uLCBzZWxmLl9vcHRpb25zKQotCi0gICAgZGVmIF9ydW5fZGVmbGF0ZV9m
cmFtZV90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9y
dW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVS
X1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZW5hYmxlX2RlZmxh
dGVfZnJhbWUoKQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0
ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX3Blcm1lc3Nh
Z2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgc2VsZiwgb2ZmZXIsIHJlc3BvbnNlX2NoZWNr
ZXIsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9T
RUMpCi0KLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucyArPSBvZmZlcgotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5jaGVja19wZXJtZXNzYWdlX2RlZmxhdGUgPSByZXNwb25z
ZV9jaGVja2VyCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRl
X2NsaWVudChzZWxmLl9vcHRpb25zKQotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAgICAgaWYgdGVzdF9mdW5jdGlvbiBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0K
LSAgICAgICAgICAgICAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLSAgICAg
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBp
ZCkKLQotICAgIGRlZiBfcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uX3Rlc3Qoc2VsZiwg
dGVzdF9mdW5jdGlvbiwgY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVhc29uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZl
cigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBf
SU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRl
X2NsaWVudChzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHRlc3RfZnVuY3Rpb24oY2xpZW50LCBjb2RlLCByZWFzb24pCi0gICAgICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYg
X3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qoc2VsZiwgb3B0aW9ucywgc3RhdHVzKToKLSAgICAgICAg
c2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRp
bWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBj
bGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChvcHRpb25zKQotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLSAgICAgICAgICAgICAgICBzZWxm
LmZhaWwoJ0NvdWxkIG5vdCBjYXRjaCBIdHRwU3RhdHVzRXhjZXB0aW9uJykKLSAgICAgICAgICAg
IGV4Y2VwdCBjbGllbnRfZm9yX3Rlc3RpbmcuSHR0cFN0YXR1c0V4Y2VwdGlvbiwgZToKLSAgICAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgZS5zdGF0dXMpCi0gICAgICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ2F0Y2gg
dW5leHBlY3RlZCBleGNlcHRpb24nKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fbXV4X3Rlc3Qo
c2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIo
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lO
X1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gbXV4X2NsaWVudF9mb3JfdGVzdGluZy5NdXhD
bGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAg
ICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiB0ZXN0X2VjaG8oc2VsZik6
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRl
ZiB0ZXN0X2VjaG9fYmluYXJ5KHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19j
aGVja19wcm9jZWR1cmVfd2l0aF9iaW5hcnkpCi0KLSAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9j
bG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJl
X3dpdGhfZ29vZGJ5ZSkKLQotICAgIGRlZiB0ZXN0X3VubWFza2VkX2ZyYW1lKHNlbGYpOgotICAg
ICAgICBzZWxmLl9ydW5fdGVzdChfdW5tYXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJlKQotCi0g
ICAgZGVmIHRlc3RfZWNob19kZWZsYXRlX2ZyYW1lKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5f
ZGVmbGF0ZV9mcmFtZV90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0
X2VjaG9fZGVmbGF0ZV9mcmFtZV9zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1
bl9kZWZsYXRlX2ZyYW1lX3Rlc3QoCi0gICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1cmVf
d2l0aF9nb29kYnllKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGUoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZy
b20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAgICAgICAgY2xpZW50Ll9z
dHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAot
ICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAg
ICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywK
LSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVY
VCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2Vu
ZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0g
ICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMo
KSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAg
ICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25z
ZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVz
dF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fZnJhbWVzKHNlbGYpOgotICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBp
biB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAg
ICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgZW5kPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVh
bS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGM5XHhjOVx4MDdceDAwJywKLSAg
ICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUKQotICAgICAg
ICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAg
ICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAg
ICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAg
ICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9u
c2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2Vs
Zi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVz
c2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdl
X2RlZmxhdGVfdHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAg
ICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAg
J1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGll
bnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkK
LSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAg
ICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAg
ICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAg
ICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2Vp
dmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAg
ICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAg
ICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNl
X2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0
X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19tc2dzX3NlcnZlcl9ub19jb250ZXh0X3Rha2Vv
dmVyKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAg
ICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNsaWVudC5f
c3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4Yzlc
eGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4
MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0
OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQot
ICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAg
ICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAg
ICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQot
ICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYg
cmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAg
ICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV9wcmVm
ZXJlbmNlKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAg
ICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAg
IGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5u
YW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9w
YXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0
KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJywgJ2RlZmxhdGUtZnJhbWUn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRo
X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0g
ICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAg
ICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgY29t
cHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAg
ICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1l
dGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsoJ3NlcnZlcl9tYXhf
d2luZG93X2JpdHMnLCAnMTAnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3Nl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVu
X3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1k
ZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTEwOyAnCi0gICAgICAgICAgICAgICAgICdz
ZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2No
ZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Vj
aG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFkX3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGll
bnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
KQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRl
ZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAg
ICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0
cz0zMDAwMDAwJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2Rl
ZmxhdGVfd2l0aF9iYWRfc2VydmVyX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgZGVm
IHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkK
LSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVm
IHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAg
ICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsn
cGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTMwMDAwMDAnXSwKLSAg
ICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVu
Y3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX3VuZGVm
aW5lZF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6
Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFt
ZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5j
ZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdl
X2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgZm9v
PWJhciddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAg
ICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fY2xvc2Vfd2l0aF9jb2RlX2Fu
ZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2Nsb3Nl
JwotICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdCgKLSAg
ICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3JlYXNvbiwgMzMz
MywgJ3N1bnN1bnN1bnN1bicpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Nsb3NlX3dpdGhfZW1wdHlf
Ym9keShzZWxmKToKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvY2xvc2UnCi0g
ICAgICAgIHNlbGYuX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90ZXN0KAotICAgICAg
ICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uLCBOb25lLCAn
JykKLQotICAgIGRlZiB0ZXN0X211eF9lY2hvKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fbXV4
X3Rlc3QoX211eF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29u
X3Byb3RvY29sX2Vycm9yKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIg
c2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIHByb3RvY29sIGVycm9yIHN0YXR1cwotICAgICAgICBj
b2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRhIHdpdGggc29tZSBwcm90b2NvbCBlcnJvci4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAg
ICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBJbnRlcm1lZGlhdGUgZnJh
bWUgd2l0aG91dCBhbnkgcHJlY2VkaW5nIHN0YXJ0IG9mIGZyYWdtZW50YXRpb24KLSAgICAgICAg
ICAgICMgZnJhbWUuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlf
Ynl0ZXMoJ1x4ODBceDgwJywgJycpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVf
Y2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9UT0NP
TF9FUlJPUikKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAg
ZGVmIHRlc3RfY2xvc2Vfb25fdW5zdXBwb3J0ZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggdW5zdXBwb3J0ZWQg
b3BlcmF0aW9uCi0gICAgICAgIHN0YXR1cyBjb2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBkYXRh
IGFza2luZyBzb21lIG9wZXJhdGlvbiB0aGF0IGlzCi0gICAgICAgIG5vdCBzdXBwb3J0ZWQgYnkg
dGhlIHNlcnZlci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xp
ZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBUZXh0
IGZyYW1lIHdpdGggUlNWMyBiaXQgcmFpc2VkLgotICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJh
bWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDkxXHg4MCcsICcnKQotICAgICAgICAgICAgY2xpZW50
LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGlu
Zy5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0
X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25faW52YWxpZF9mcmFtZShzZWxmKToK
LSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0
aCBpbnZhbGlkIGZyYW1lIHBheWxvYWQKLSAgICAgICAgZGF0YSBzdGF0dXMgY29kZSB3aGVuIHRo
ZSBjbGllbnQgc2VuZHMgYW4gaW52YWxpZCBmcmFtZSBsaWtlIGNvbnRhaW5pbmcKLSAgICAgICAg
aW52YWxpZCBVVEYtOCBjaGFyYWN0ZXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0
X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAg
ICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIGludmFsaWQgVVRGLTggc3RyaW5nLgotICAgICAgICAg
ICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnXHg4MCcsIHJhdz1UcnVlKQotICAgICAgICAgICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX2ludGVybmFs
X2VuZHBvaW50X2Vycm9yKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIg
c2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIGludGVybmFsIGVuZHBvaW50Ci0gICAgICAgIGVycm9y
IHN0YXR1cyBjb2RlIHdoZW4gdGhlIGhhbmRsZXIgZG9lcyBiYWQgb3BlcmF0aW9uLgotICAgICAg
ICAiIiIKLQotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9pbnRlcm5hbF9lcnJv
cicKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xp
ZW50LmNvbm5lY3QoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAot
ICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfSU5URVJOQUxfRU5EUE9J
TlRfRVJST1IpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAg
ICMgVE9ETyh0b3lvc2hpbSk6IEFkZCB0ZXN0cyB0byB2ZXJpZnkgaW52YWxpZCBhYnNvbHV0ZSB1
cmkgaGFuZGxpbmcgbGlrZQotICAgICMgaG9zdCB1bm1hdGNoLCBwb3J0IHVubWF0Y2ggYW5kIGlu
dmFsaWQgcG9ydCBkZXNjcmlwdGlvbiAoJzonIHdpdGhvdXQgcG9ydAotICAgICMgbnVtYmVyKS4K
LQotICAgIGRlZiB0ZXN0X2Fic29sdXRlX3VyaShzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgYWJz
b2x1dGUgdXJpIHJlcXVlc3QuIiIiCi0KLSAgICAgICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMK
LSAgICAgICAgb3B0aW9ucy5yZXNvdXJjZSA9ICd3czovL2xvY2FsaG9zdDolZC9lY2hvJyAlIG9w
dGlvbnMuc2VydmVyX3BvcnQKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0
aW9ucyhfZWNob19jaGVja19wcm9jZWR1cmUsIG9wdGlvbnMpCi0KLSAgICBkZWYgdGVzdF9vcmln
aW5fY2hlY2soc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sgb24gb3JpZ2lu
IGNoZWNrIGZhaWwuIiIiCi0KLSAgICAgICAgb3B0aW9ucyA9IHNlbGYuX29wdGlvbnMKLSAgICAg
ICAgb3B0aW9ucy5yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICAjIFNlcnZlciBz
aG93cyB3YXJuaW5nIG1lc3NhZ2UgZm9yIGh0dHAgNDAzIGZhbGxiYWNrLiBUaGlzIHdhcm5pbmcK
LSAgICAgICAgIyBtZXNzYWdlIGlzIGNvbmZ1c2luZy4gRm9sbG93aW5nIHBpcGUgZGlzcG9zZXMg
d2FybmluZyBtZXNzYWdlcy4KLSAgICAgICAgc2VsZi5zZXJ2ZXJfc3RkZXJyID0gc3VicHJvY2Vz
cy5QSVBFCi0gICAgICAgIHNlbGYuX3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAz
KQotCi0gICAgZGVmIHRlc3RfdmVyc2lvbl9jaGVjayhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMg
aHR0cCBmYWxsYmFjayBvbiB2ZXJzaW9uIGNoZWNrIGZhaWwuIiIiCi0KLSAgICAgICAgb3B0aW9u
cyA9IHNlbGYuX29wdGlvbnMKLSAgICAgICAgb3B0aW9ucy52ZXJzaW9uID0gOTkKLSAgICAgICAg
c2VsZi5fcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChvcHRpb25zLCA0MDApCi0KLQotY2xhc3MgRW5k
VG9FbmRIeUJpMDBUZXN0KEVuZFRvRW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToK
LSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVmIF9ydW5fdGVz
dChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZl
cigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBf
SU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRl
X2NsaWVudF9oeWJpMDAoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiB0ZXN0X2Vj
aG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZSkK
LQotICAgIGRlZiB0ZXN0X2VjaG9fc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9y
dW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnllKQotCi0KLWNsYXNzIEVu
ZFRvRW5kVGVzdFdpdGhFY2hvQ2xpZW50KEVuZFRvRW5kVGVzdEJhc2UpOgotICAgIGRlZiBzZXRV
cChzZWxmKToKLSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRVcChzZWxmKQotCi0gICAgZGVm
IF9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgc2VsZiwgZXhwZWN0
ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpOgotICAgICAgICBhY3R1YWwgPSBzdGRvdXRkYXRh
LmRlY29kZSgidXRmLTgiKQotICAgICAgICBpZiBhY3R1YWwgIT0gZXhwZWN0ZWQ6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgcmVzdWx0IG9uIGV4YW1wbGUgZWNobyBj
bGllbnQ6ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJXIgKGV4cGVjdGVkKSB2cyAl
ciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZCwgYWN0
dWFsKSkKLSAgICAgICAgaWYgc3RkZXJyZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBlcnJvciBtZXNzYWdlIG9uIGV4YW1wbGUgZWNobyAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudDogJXInICUgc3RkZXJyZGF0YSkK
LQotICAgIGRlZiB0ZXN0X2V4YW1wbGVfZWNob19jbGllbnQoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHRoYXQgdGhlIGVjaG9fY2xpZW50LnB5IGV4YW1wbGUgY2FuIHRhbGsgd2l0aCB0aGUgc2Vy
dmVyLiIiIgotCi0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAg
ICAgICAgICAgY2xpZW50X2NvbW1hbmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAg
c2VsZi50b3BfZGlyLCAnZXhhbXBsZScsICdlY2hvX2NsaWVudC5weScpCi0KLSAgICAgICAgICAg
ICMgRXhwZWN0ZWQgb3V0cHV0IGZvciB0aGUgZGVmYXVsdCBtZXNzYWdlcy4KLSAgICAgICAgICAg
IGRlZmF1bHRfZXhwZWN0YXRpb24gPSAoJ1NlbmQ6IEhlbGxvXG4nICdSZWN2OiBIZWxsb1xuJwot
ICAgICAgICAgICAgICAgIHUnU2VuZDogXHU2NWU1XHU2NzJjXG4nIHUnUmVjdjogXHU2NWU1XHU2
NzJjXG4nCi0gICAgICAgICAgICAgICAgJ1NlbmQgY2xvc2VcbicgJ1JlY3YgYWNrXG4nKQotCi0g
ICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAn
LXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCldCi0gICAgICAgICAgICBjbGllbnQg
PSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkK
LSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUo
KQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0g
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24sIHN0ZG91dGRhdGEsIHN0ZGVy
cmRhdGEpCi0KLSAgICAgICAgICAgICMgUHJvY2VzcyBhIGJpZyBtZXNzYWdlIGZvciB3aGljaCBl
eHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBpcyB1c2VkLgotICAgICAgICAgICAgIyBUbyBoYW5kbGUg
ZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgsIHdzX3ZlcnNpb24gYXR0cmlidXRlIHdpbGwgYmUKLSAg
ICAgICAgICAgICMgYWNjZXNzZWQuIFRoaXMgdGVzdCBjaGVja3MgdGhhdCB3c192ZXJzaW9uIGlz
IGNvcnJlY3RseSBzZXQuCi0gICAgICAgICAgICBiaWdfbWVzc2FnZSA9ICdhJyAqIDEwMjQKLSAg
ICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICct
cCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSwKLSAgICAgICAgICAgICAgICAgICAg
Jy1tJywgYmlnX21lc3NhZ2VdCi0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9u
X2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91
dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgZXhw
ZWN0ZWQgPSAoJ1NlbmQ6ICVzXG5SZWN2OiAlc1xuU2VuZCBjbG9zZVxuUmVjdiBhY2tcbicgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgKGJpZ19tZXNzYWdlLCBiaWdfbWVzc2FnZSkpCi0gICAg
ICAgICAgICBzZWxmLl9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAg
ICAgICAgICBleHBlY3RlZCwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLQotICAgICAgICAgICAg
IyBUZXN0IHRoZSBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uLgotICAgICAgICAgICAgYXJn
cyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYu
X29wdGlvbnMuc2VydmVyX3BvcnQpLAotICAgICAgICAgICAgICAgICAgICAnLS11c2VfcGVybWVz
c2FnZV9kZWZsYXRlJ10KLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29t
bWFuZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0
YSwgc3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBzZWxmLl9j
aGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdF9leHBlY3RhdGlvbiwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2YzhiMTI2MmQ4OWI5NDk2NDk2NWMzYzM4ZDVjYzQ5NDQ3OWMxYjY3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dF9leHRlbnNpb25zLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzYwICswLDAgQEAKLSMhL3Vzci9i
aW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGV4dGVu
c2lvbnMgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHpsaWIKLQotaW1w
b3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNv
Y2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBleHRlbnNpb25zCi0KLQotY2xhc3MgRXh0ZW5zaW9uc1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIG5vbi1jbGFzcyBt
ZXRob2RzIGluIGV4dGVuc2lvbnMucHkiIiIKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3dpbmRvd19i
aXRzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICdmb29iYXInKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJyA4ICcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnYThhJykKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwMDAwMCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNl
X3dpbmRvd19iaXRzLCAnMDAwMDgnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzB4OCcpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMs
ICc5LjUnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25z
Ll9wYXJzZV93aW5kb3dfYml0cywgJzguMCcpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE1JykKLQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJy04
JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFy
c2Vfd2luZG93X2JpdHMsICcwJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc3JykKLQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE2
JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICAgICAgVmFsdWVFcnJv
ciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxMDAwMDAwMCcpCi0KLQotY2xhc3Mg
Q29tcHJlc3Npb25NZXRob2RQYXJhbWV0ZXJQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJBIHVuaXR0ZXN0IGZvciBfcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kIHdoaWNoIHBh
cnNlcyB0aGUgY29tcHJlc3Npb24KLSAgICBtZXRob2QgZGVzY3JpcHRpb24gdXNlZCBieSBwZXJm
cmFtZS1jb21wcmVzc2lvbiBhbmQgcGVybWVzc2FnZS1jb21wcmVzc2lvbgotICAgIGV4dGVuc2lv
biBpbiB0aGVpciAibWV0aG9kIiBleHRlbnNpb24gcGFyYW1ldGVyLgotICAgICIiIgotCi0gICAg
ZGVmIHRlc3RfcGFyc2VfbWV0aG9kX3NpbXBsZShzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3Qg
PSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoJ2ZvbycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAgICAgbWV0aG9kID0gbWV0
aG9kX2xpc3RbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kLm5hbWUo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4obWV0aG9kLmdldF9wYXJhbWV0ZXJz
KCkpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9kX3dpdGhfcGFyYW1ldGVyKHNlbGYpOgot
ICAgICAgICBtZXRob2RfbGlzdCA9IGV4dGVuc2lvbnMuX3BhcnNlX2NvbXByZXNzaW9uX21ldGhv
ZCgnZm9vOyB4OyB5PTEwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWV0aG9k
X2xpc3QpKQotICAgICAgICBtZXRob2QgPSBtZXRob2RfbGlzdFswXQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdmb28nLCBtZXRob2QubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDIsIGxlbihtZXRob2QuZ2V0X3BhcmFtZXRlcnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtZXRob2QuaGFzX3BhcmFtZXRlcigneCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtZXRob2QuaGFzX3BhcmFtZXRlcigneScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcxMCcsIG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd5JykpCi0KLSAgICBkZWYgdGVzdF9w
YXJzZV9tZXRob2Rfd2l0aF9xdW90ZWRfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBtZXRob2Rf
bGlzdCA9IGV4dGVuc2lvbnMuX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZCgKLSAgICAgICAgICAg
ICdmb287IHg9IkhlbGxvIFdvcmxkIjsgeT0xMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAgICAgbWV0aG9kID0gbWV0aG9kX2xpc3RbMF0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyLCBsZW4obWV0aG9kLmdldF9wYXJhbWV0ZXJzKCkpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWV0aG9kLmhhc19wYXJhbWV0ZXIoJ3gnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG8gV29ybGQnLCBtZXRob2QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgneCcp
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWV0aG9kLmhhc19wYXJhbWV0ZXIoJ3knKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTAnLCBtZXRob2QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgn
eScpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfbWV0aG9kX211bHRpcGxlKHNlbGYpOgotICAgICAg
ICBtZXRob2RfbGlzdCA9IGV4dGVuc2lvbnMuX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZCgnZm9v
LCBiYXInKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihtZXRob2RfbGlzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIG1ldGhvZF9saXN0WzBdLm5hbWUoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4obWV0aG9kX2xpc3RbMF0uZ2V0X3BhcmFtZXRl
cnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2JhcicsIG1ldGhvZF9saXN0WzFdLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4obWV0aG9kX2xpc3RbMV0uZ2V0
X3BhcmFtZXRlcnMoKSkpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9tZXRob2RfbXVsdGlwbGVfbWV0
aG9kc193aXRoX3F1b3RlZF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0g
ZXh0ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKAotICAgICAgICAgICAgJ2Zvbzsg
eD0iSGVsbG8gV29ybGQiLCBiYXI7IHk9MTAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIs
IGxlbihtZXRob2RfbGlzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIG1ldGhv
ZF9saXN0WzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWV0aG9k
X2xpc3RbMF0uZ2V0X3BhcmFtZXRlcnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtZXRo
b2RfbGlzdFswXS5oYXNfcGFyYW1ldGVyKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J0hlbGxvIFdvcmxkJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RfbGlzdFswXS5n
ZXRfcGFyYW1ldGVyX3ZhbHVlKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2Jhcics
IG1ldGhvZF9saXN0WzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o
bWV0aG9kX2xpc3RbMV0uZ2V0X3BhcmFtZXRlcnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtZXRob2RfbGlzdFsxXS5oYXNfcGFyYW1ldGVyKCd5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJzEwJywgbWV0aG9kX2xpc3RbMV0uZ2V0X3BhcmFtZXRlcl92YWx1ZSgneScpKQotCi0g
ICAgZGVmIHRlc3RfY3JlYXRlX21ldGhvZF9kZXNjX3NpbXBsZShzZWxmKToKLSAgICAgICAgcGFy
YW1zID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZm9vJykKLSAgICAgICAgZGVzYyA9IGV4
dGVuc2lvbnMuX2NyZWF0ZV9hY2NlcHRlZF9tZXRob2RfZGVzYygnZm9vJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZ2V0X3Bh
cmFtZXRlcnMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgZGVzYykKLQotICAg
IGRlZiB0ZXN0X2NyZWF0ZV9tZXRob2RfZGVzY193aXRoX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAg
ICAgIHBhcmFtcyA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ2ZvbycpCi0gICAgICAgIHBh
cmFtcy5hZGRfcGFyYW1ldGVyKCd4JywgJ0hlbGxvLCBXb3JsZCcpCi0gICAgICAgIHBhcmFtcy5h
ZGRfcGFyYW1ldGVyKCd5JywgJzEwJykKLSAgICAgICAgZGVzYyA9IGV4dGVuc2lvbnMuX2NyZWF0
ZV9hY2NlcHRlZF9tZXRob2RfZGVzYygnZm9vJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZ2V0X3BhcmFtZXRlcnMoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vOyB4PSJIZWxsbywgV29ybGQiOyB5PTEwJywgZGVz
YykKLQotCi1jbGFzcyBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3JQYXJzaW5nVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBE
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IgcGFyc2VzIGdpdmVuCi0gICAgZXh0ZW5zaW9u
IHBhcmFtZXRlciBjb3JyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9yZWdpc3RyeShz
ZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nl
c3NvcigKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdkZWZsYXRl
LWZyYW1lJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lv
blByb2Nlc3NvcikKLQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNp
b25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
J3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNl
KHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgZGVmIHRlc3RfbWluaW1hbF9vZmZl
cihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRl
bnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdw
ZXJmcmFtZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4
dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRl
ZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVu
KHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
emxpYi5NQVhfV0JJVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMx
OTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9j
ZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYg
dGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVy
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAg
IHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTAnKQotICAgICAg
ICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nvcihw
YXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCBy
ZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNl
LmdldF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAsIHByb2Nl
c3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0KLSAgICBkZWYgdGVzdF9vZmZl
cl93aXRoX291dF9vZl9yYW5nZV9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFt
ZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAg
ICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzAnKQotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nv
cihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRv
d19iaXRzX3dpdGhvdXRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIu
YWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3Bv
bnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXIoc2Vs
Zik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZy
YW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbm9fY29udGV4
dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9
IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fbm9fY29udGV4dF90
YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3Zlcl93
aXRoX3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0
ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0g
ZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgot
ICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1k
ZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2ZvbycsICdiYXInKQot
ICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxh
dGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJl
c3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlRXh0
ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEg
dW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IgcGFyc2VzCi0gICAgZ2l2ZW4gZXh0ZW5zaW9uIHBhcmFtZXRlciBjb3JyZWN0bHkuCi0g
ICAgIiIiCi0KLSAgICBkZWYgdGVzdF9yZWdpc3RyeShzZWxmKToKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRJc0luc3RhbmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IpCi0K
LSAgICBkZWYgdGVzdF9taW5pbWFsX29mZmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBl
eHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAg
ICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAg
ICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRl
cnMoKSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6bGliLk1BWF9XQklUUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19i
aXRzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRl
ci5fbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dp
bmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFt
ZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICcxMCcpCi0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVy
KQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25z
ZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnc2VydmVyX21heF93aW5kb3df
Yml0cycsICcxMCcpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFy
YW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAsIHByb2Nlc3Nvci5fcmZj
MTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX291
dF9vZl9yYW5nZV9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBh
cmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzAnKQotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3Iu
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhf
d2luZG93X2JpdHNfd2l0aG91dF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFy
YW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3Iu
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19j
b250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRk
X3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICBw
cm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29y
KHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9u
X3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRl
JywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9u
b19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2Nl
c3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgIGRlZiB0
ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3Zlcl93aXRoX3ZhbHVlKHNlbGYpOgotICAg
ICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRl
ZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRl
eHRfdGFrZW92ZXInLCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5Q
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQot
ICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfdW5rbm93bl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAg
IHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0
ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKLSAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVu
c2lvblByb2Nlc3NvckJ1aWxkaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1
bml0dGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvciBidWlsZHMKLSAgICBhIHJlc3BvbnNlIGJhc2VkIG9uIHNwZWNpZmllZCBvcHRpb25zIGNv
cnJlY3RseS4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfbWF4X3dpbmRv
d19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRl
cignY2xpZW50X21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4
dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQot
ICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCi0KLSAgICAg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJywgJzEw
JyldLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkp
Ci0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X2Ns
aWVudF9wZXJtaXNzaW9uKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0gICAgICAgIHByb2Nlc3Nv
ci5zZXRfY2xpZW50X21heF93aW5kb3dfYml0cygxMCkKLQotICAgICAgICByZXNwb25zZSA9IHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocmVzcG9uc2UpCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX3RydWVfZm9yX25vX2Nv
bnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICBwcm9jZXNz
b3Iuc2V0X2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0KLSAgICAgICAgcmVzcG9u
c2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbKCdjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0g
ICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9mYWxzZV9mb3Jfbm9fY29udGV4dF90YWtlb3Zlcihz
ZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4
dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
J3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXIoRmFsc2UpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3Iu
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1l
c3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLQotY2xhc3MgUGVyTWVzc2Fn
ZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg
ZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
Z2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVybWVzc2FnZS1jb21wcmVzcycpKQotICAgICAgICBzZWxmLmFzc2VydElz
SW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5z
aW9ucy5QZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IpCi0KLQotaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2UucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhYTc4YWMwNWU1ODcxZDE1OWE2N2Y3ZTQxNmYzMDI3MDBmYTBmOTI2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5k
c2hha2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFuZHNoYWtlLl9i
YXNlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0
aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBpbXBvcnQgRXh0ZW5zaW9uUGFyYW1ldGVyCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBpbXBvcnQgZm9ybWF0X2V4dGVuc2lvbnMK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBpbXBvcnQgcGFyc2VfZXh0ZW5zaW9ucwotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVf
c3VicHJvdG9jb2wKLQotCi1jbGFzcyBWYWxpZGF0ZVN1YnByb3RvY29sVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgdmFsaWRhdGVfc3VicHJvdG9jb2wgbWV0
aG9kLiIiIgotCi0gICAgZGVmIHRlc3RfdmFsaWRhdGVfc3VicHJvdG9jb2woc2VsZik6Ci0gICAg
ICAgICMgU2hvdWxkIHN1Y2NlZWQuCi0gICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1w
bGUnKQotICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCgnU2FtcGxlJykKLSAgICAgICAgdmFs
aWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4N2Vwcm90b2NvbCcpCi0KLSAgICAgICAgIyBTaG91
bGQgZmFpbC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9j
b2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDA5cHJvdG9jb2wnKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2FtcGxlXHgxOXByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFu
ZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MjBwcm90b2NvbCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRl
X3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFw
YW5lc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQotCi0KLV9U
RVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vJywgWygnZm9vJywgW10pXSks
Ci0gICAgKCdmb287IGJhcicsIFsoJ2ZvbycsIFsoJ2JhcicsIE5vbmUpXSldKSwKLSAgICAoJ2Zv
bzsgYmFyPWJheicsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKV0pXSksCi0gICAgKCdmb287IGJh
cj1iYXo7IGNhcj1jZHInLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyksICgnY2FyJywgJ2Nkcicp
XSldKSwKLSAgICAoJ2ZvbzsgYmFyPWJheiwgY2FyOyBjZHInLAotICAgICBbKCdmb28nLCBbKCdi
YXInLCAnYmF6JyldKSwgKCdjYXInLCBbKCdjZHInLCBOb25lKV0pXSksCi0gICAgKCdhLCBiLCBj
LCBkJywKLSAgICAgWygnYScsIFtdKSwgKCdiJywgW10pLCAoJ2MnLCBbXSksICgnZCcsIFtdKV0p
LAotICAgIF0KLQotCi1fVEVTVF9RVU9URURfRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb287
IGJhcj0iIicsIFsoJ2ZvbycsIFsoJ2JhcicsICcnKV0pXSksCi0gICAgKCdmb287IGJhcj0iIGJh
eiAiJywgWygnZm9vJywgWygnYmFyJywgJyBiYXogJyldKV0pLAotICAgICgnZm9vOyBiYXI9Iixi
YXo7IicsIFsoJ2ZvbycsIFsoJ2JhcicsICcsYmF6OycpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSJc
XFxyXFxcbmJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnXHJcbmJheicpXSldKSwKLSAgICAoJ2Zv
bzsgYmFyPSJcXCJiYXoiJywgWygnZm9vJywgWygnYmFyJywgJyJiYXonKV0pXSksCi0gICAgKCdm
b287IGJhcj0iXHhiYmJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnXHhiYmJheicpXSldKSwKLSAg
ICBdCi0KLQotX1RFU1RfUkVEVU5EQU5UX1RPS0VOX0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgn
Zm9vIFx0ICcsIFsoJ2ZvbycsIFtdKV0pLAotICAgICgnZm9vOyBcclxuIGJhcicsIFsoJ2Zvbycs
IFsoJ2JhcicsIE5vbmUpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPVxyXG4gXHJcbiBiYXonLCBbKCdm
b28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAotICAgICgnZm9vIDtiYXIgPSBiYXogJywgWygnZm9v
JywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2ZvbyxiYXIsLGJheicsIFsoJ2ZvbycsIFtd
KSwgKCdiYXInLCBbXSksICgnYmF6JywgW10pXSksCi0gICAgXQotCi0KLV9URVNUX1JFRFVOREFO
VF9RVU9URURfRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb287IGJhcj0iXHJcbiBcclxuIGJh
eiInLCBbKCdmb28nLCBbKCdiYXInLCAnICBiYXonKV0pXSksCi0gICAgXQotCi0KLWNsYXNzIEV4
dGVuc2lvbnNQYXJzZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiBfdmVyaWZ5
X2V4dGVuc2lvbl9saXN0KHNlbGYsIGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAg
ICAgIiIiVmVyaWZpZXMgdGhhdCBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cyBpbiBhY3R1YWxf
bGlzdCBoYXZlIHRoZQotICAgICAgICBzYW1lIG1lbWJlcnMgYXMgZXh0ZW5zaW9uIGRlZmluaXRp
b25zIGluIGV4cGVjdGVkX2xpc3QuIEV4dGVuc2lvbgotICAgICAgICBkZWZpbml0aW9uIHVzZWQg
aW4gdGhpcyB0ZXN0IGlzIGEgcGFpciBvZiBhbiBleHRlbnNpb24gbmFtZSBhbmQgYQotICAgICAg
ICBwYXJhbWV0ZXIgZGljdGlvbmFyeS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihhY3R1YWxfbGlzdCkpCi0gICAgICAgIGZv
ciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0g
ICAgICAgICAgICAobmFtZSwgcGFyYW1ldGVycykgPSBleHBlY3RlZAotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChuYW1lLCBhY3R1YWwuX25hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBhcmFtZXRlcnMsIGFjdHVhbC5fcGFyYW1ldGVycykKLQotICAgIGRlZiB0ZXN0X3Bh
cnNlKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBf
VEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRl
bnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25z
KGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcXVvdGVkX2RhdGEoc2Vs
Zik6Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1FV
T1RFRF9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25f
bGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1h
dHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVkdW5kYW50X2RhdGEoc2VsZik6
Ci0gICAgICAgIGZvciAoZm9ybWF0dGVkX3N0cmluZywKLSAgICAgICAgICAgICBkZWZpbml0aW9u
KSBpbiBfVEVTVF9SRURVTkRBTlRfVE9LRU5fRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBz
ZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwg
cGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNl
X3JlZHVuZGFudF9xdW90ZWRfZGF0YShzZWxmKToKLSAgICAgICAgZm9yIChmb3JtYXR0ZWRfc3Ry
aW5nLAotICAgICAgICAgICAgIGRlZmluaXRpb24pIGluIF9URVNUX1JFRFVOREFOVF9RVU9URURf
RVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3Qo
Ci0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRf
c3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2JhZF9kYXRhKHNlbGYpOgotICAgICAgICBf
VEVTVF9CQURfRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgICAgICAgICAoJ2ZvbzsgOyAnKSwKLSAg
ICAgICAgICAgICgnZm9vOyBhIGEnKSwKLSAgICAgICAgICAgICgnZm9vIGZvbycpLAotICAgICAg
ICAgICAgKCcsLCwnKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9JyksCi0gICAgICAgICAgICAo
J2ZvbzsgYmFyPSJob2dlJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPSJhXHIiJyksCi0gICAg
ICAgICAgICAoJ2ZvbzsgYmFyPSJcXFx4ZmYiJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPVxy
YScpLAotICAgICAgICAgICAgXQotCi0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nIGluIF9U
RVNUX0JBRF9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAot
ICAgICAgICAgICAgICAgIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIHBhcnNlX2V4dGVuc2lv
bnMsIGZvcm1hdHRlZF9zdHJpbmcpCi0KLQotY2xhc3MgRm9ybWF0RXh0ZW5zaW9uc1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfZm9ybWF0X2V4dGVuc2lvbnMoc2VsZik6
Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nLCBkZWZpbml0aW9ucyBpbiBfVEVTVF9UT0tF
Tl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIGV4dGVuc2lvbnMgPSBbXQotICAgICAgICAg
ICAgZm9yIGRlZmluaXRpb24gaW4gZGVmaW5pdGlvbnM6Ci0gICAgICAgICAgICAgICAgKG5hbWUs
IHBhcmFtZXRlcnMpID0gZGVmaW5pdGlvbgotICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9IEV4
dGVuc2lvblBhcmFtZXRlcihuYW1lKQotICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5fcGFyYW1l
dGVycyA9IHBhcmFtZXRlcnMKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRl
bnNpb24pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGZv
cm1hdHRlZF9zdHJpbmcsIGZvcm1hdF9leHRlbnNpb25zKGV4dGVuc2lvbnMpKQotCi0KLWlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5Ymku
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZjODcxMzgyMzBiMzAzYmYzOGRjNGNmODRjMTI5MGE4OGY3YmQ4ZDIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTM0ICswLDAg
QEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVz
dHMgZm9yIGhhbmRzaGFrZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9y
dCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2Nr
ZXQgbW9kdWxlLgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBBYm9ydGVkQnlVc2VyRXhjZXB0aW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4
Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBWZXJz
aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaSBpbXBvcnQg
SGFuZHNoYWtlcgotCi1pbXBvcnQgbW9jawotCi0KLWNsYXNzIFJlcXVlc3REZWZpbml0aW9uKG9i
amVjdCk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgaG9sZGluZyBkYXRhIGZvciBjb25zdHJ1Y3Rpbmcg
b3BlbmluZyBoYW5kc2hha2Ugc3RyaW5ncyBmb3IKLSAgICB0ZXN0aW5nIHRoZSBvcGVuaW5nIGhh
bmRzaGFrZSBwcm9jZXNzb3IuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0
aG9kLCB1cmksIGhlYWRlcnMpOgotICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAotICAgICAg
ICBzZWxmLnVyaSA9IHVyaQotICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCi0KLQotZGVm
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpOgotICAgIHJldHVybiBSZXF1ZXN0RGVmaW5pdGlv
bigKLSAgICAgICAgJ0dFVCcsICcvZGVtbycsCi0gICAgICAgIHsnSG9zdCc6ICdzZXJ2ZXIuZXhh
bXBsZS5jb20nLAotICAgICAgICAgJ1VwZ3JhZGUnOiAnd2Vic29ja2V0JywKLSAgICAgICAgICdD
b25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5JzogJ2RH
aGxJSE5oYlhCc1pTQnViMjVqWlE9PScsCi0gICAgICAgICAnU2VjLVdlYlNvY2tldC1WZXJzaW9u
JzogJzEzJywKLSAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJ30pCi0KLQot
ZGVmIF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZik6Ci0gICAgY29ubiA9IG1vY2suTW9ja0Nv
bm4oJycpCi0gICAgcmV0dXJuIG1vY2suTW9ja1JlcXVlc3QoCi0gICAgICAgIG1ldGhvZD1yZXF1
ZXN0X2RlZi5tZXRob2QsCi0gICAgICAgIHVyaT1yZXF1ZXN0X2RlZi51cmksCi0gICAgICAgIGhl
YWRlcnNfaW49cmVxdWVzdF9kZWYuaGVhZGVycywKLSAgICAgICAgY29ubmVjdGlvbj1jb25uKQot
Ci0KLWRlZiBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCk6Ci0gICAgaGFuZHNoYWtlciA9IEhh
bmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgIHJldHVybiBoYW5k
c2hha2VyCi0KLQotY2xhc3MgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIob2JqZWN0KToK
LSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlzcGF0Y2hlciBzZXRzIHRo
ZSBpLXRoIHN1YnByb3RvY29sCi0gICAgb2YgcmVxdWVzdGVkIG9uZXMgdG8gd3NfcHJvdG9jb2wg
d2hlcmUgaSBpcyBnaXZlbiBvbiBjb25zdHJ1Y3Rpb24gYXMgaW5kZXgKLSAgICBhcmd1bWVudC4g
SWYgaW5kZXggaXMgbmVnYXRpdmUsIGRlZmF1bHRfdmFsdWUgd2lsbCBiZSBzZXQgdG8gd3NfcHJv
dG9jb2wuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaW5kZXgsIGRlZmF1bHRf
dmFsdWU9Tm9uZSk6Ci0gICAgICAgIHNlbGYuaW5kZXggPSBpbmRleAotICAgICAgICBzZWxmLmRl
ZmF1bHRfdmFsdWUgPSBkZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtl
KHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIGlmIHNlbGYuaW5kZXggPj0gMDoKLSAgICAg
ICAgICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9IGNvbm5fY29udGV4dC53c19yZXF1ZXN0
ZWRfcHJvdG9jb2xzWwotICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhdCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBjb25uX2NvbnRleHQud3NfcHJvdG9jb2wgPSBzZWxmLmRlZmF1bHRfdmFs
dWUKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAg
IHBhc3MKLQotCi1jbGFzcyBIYW5kc2hha2VBYm9ydGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0g
ICAgcGFzcwotCi0KLWNsYXNzIEFib3J0aW5nRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkEg
ZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNwYXRjaGVyIHJhaXNlcyBhbiBleGNlcHRp
b24gaW4KLSAgICBkb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0LgotICAg
ICIiIgotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgot
ICAgICAgICByYWlzZSBIYW5kc2hha2VBYm9ydGVkRXhjZXB0aW9uKCdBbiBleGNlcHRpb24gdG8g
cmVqZWN0IHRoZSByZXF1ZXN0JykKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5f
Y29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBBYm9ydGVkQnlVc2VyRGlzcGF0Y2hl
cihvYmplY3QpOgotICAgICIiIkEgZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNwYXRj
aGVyIHJhaXNlcyBhbgotICAgIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24gaW4gZG9fZXh0cmFfaGFu
ZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRlZiBkb19leHRy
YV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcmFpc2UgQWJvcnRlZEJ5
VXNlckV4Y2VwdGlvbignQW4gQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiB0byByZWplY3QgdGhlICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVxdWVzdCcpCi0KLSAgICBk
ZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBwYXNzCi0KLQot
X0VYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3Rv
Y29sc1xyXG4nCi0gICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUFjY2VwdDogczNwUExNQmlUeGFROWtZ
R3p6aFpSYksreE9vPVxyXG5cclxuJykKLQotCi1jbGFzcyBIYW5kc2hha2VyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgZHJhZnQtaWV0Zi1oeWJpLXRoZXdl
YnNvY2tldHByb3RvY29sLTA2IGFuZCBsYXRlcgotICAgIGhhbmRzaGFrZSBwcm9jZXNzb3IuCi0g
ICAgIiIiCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBtb2NrLk1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgaGFuZHNoYWtlciA9
IEhhbmRzaGFrZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgaGFuZHNoYWtlci5kb19o
YW5kc2hha2UoKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNwYXRjaGVyLmRvX2V4dHJh
X2hhbmRzaGFrZV9jYWxsZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVlc3Qud3NfcmVzb3VyY2Up
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHJlcXVlc3Qu
d3Nfb3JpZ2luKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfcHJv
dG9jb2wpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19leHRlbnNp
b25zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNU
LCByZXF1ZXN0LndzX3ZlcnNpb24pCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9l
eHRyYV9oZWFkZXJzKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCi0gICAgICAgICMgQWRkIGhlYWRlcnMgbm90IHJlbGF0ZWQgdG8gV2ViU29j
a2V0IG9wZW5pbmcgaGFuZHNoYWtlLgotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydGb29L
ZXknXSA9ICdCYXJWYWx1ZScKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRW1wdHlLZXkn
XSA9ICcnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikK
LSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAg
ICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX2NhcGl0YWxpemVkX3Zh
bHVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ3VwZ3JhZGUnXSA9ICdXRUJTT0NLRVQn
Ci0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAg
ICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdVUEdSQURFJwotCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhh
bmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtl
ci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
X0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9tdWx0aXBsZV9jb25uZWN0aW9uX3ZhbHVl
cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnVXBncmFkZSwg
a2VlcC1hbGl2ZSwgLCAnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1
ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0
KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0aW5nX2hhbmRzaGFrZShzZWxm
KToKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICBfY3JlYXRl
X3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkpLAotICAgICAgICAgICAgQWJvcnRp
bmdEaXNwYXRjaGVyKCkpCi0gICAgICAgICMgZG9fZXh0cmFfaGFuZHNoYWtlIHJhaXNlcyBhbiBl
eGNlcHRpb24uIENoZWNrIHRoYXQgaXQncyBub3QgY2F1Z2h0IGJ5Ci0gICAgICAgICMgZG9faGFu
ZHNoYWtlLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VBYm9ydGVkRXhjZXB0
aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFr
ZV93aXRoX3Byb3RvY29sKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wnXSA9ICdjaGF0LCBzdXBlcmNoYXQnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIocmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIoMCkpCi0gICAgICAgIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBFWFBFQ1RFRF9SRVNQT05TRSA9ICgK
LSAgICAgICAgICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCi0gICAg
ICAgICAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAgICAgICAgICdDb25uZWN0aW9u
OiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUFjY2VwdDogczNwUExN
QmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Q
cm90b2NvbDogY2hhdFxyXG5cclxuJykKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVYUEVD
VEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ2NoYXQnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVm
IHRlc3RfZG9faGFuZHNoYWtlX3Byb3RvY29sX25vdF9pbl9yZXF1ZXN0X2J1dF9pbl9yZXNwb25z
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIHJlcXVlc3QsIFN1YnByb3Rv
Y29sQ2hvb3NpbmdEaXNwYXRjaGVyKC0xLCAnZm9vYmFyJykpCi0gICAgICAgICMgTm8gcmVxdWVz
dCBoYXMgYmVlbiBtYWRlIGJ1dCB3c19wcm90b2NvbCBpcyBzZXQuIEhhbmRzaGFrZUV4Y2VwdGlv
bgotICAgICAgICAjIG11c3QgYmUgcmFpc2VkLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhI
YW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRl
c3RfZG9faGFuZHNoYWtlX3dpdGhfcHJvdG9jb2xfbm9fcHJvdG9jb2xfc2VsZWN0aW9uKHNlbGYp
OgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAg
ICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9ICdjaGF0
LCBzdXBlcmNoYXQnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQot
ICAgICAgICAjIHdzX3Byb3RvY29sIGlzIG5vdCBzZXQuIEhhbmRzaGFrZUV4Y2VwdGlvbiBtdXN0
IGJlIHJhaXNlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9u
LCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93
aXRoX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAncGVybWVzc2FnZS1jb21wcmVzczsgbWV0
aG9kPWRlZmxhdGUsIHVua25vd24nKQotCi0gICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0gKAot
ICAgICAgICAgICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAg
ICAgICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1C
aVR4YVE5a1lHenpoWlJiSyt4T289XHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUV4
dGVuc2lvbnM6IHBlcm1lc3NhZ2UtY29tcHJlc3M7IG1ldGhvZD1kZWZsYXRlXHJcbicKLSAgICAg
ICAgICAgICdcclxuJykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3Qp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChFWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMp
KQotICAgICAgICBleHRlbnNpb24gPSByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ21ldGhvZCddLCBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcl9uYW1lcygp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywgZXh0ZW5zaW9uLmdldF9wYXJh
bWV0ZXJfdmFsdWUoJ21ldGhvZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihy
ZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0K
LSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wZXJtZXNzYWdlX2NvbXByZXNzKHNlbGYp
OgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAg
ICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAot
ICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtY29tcHJlc3M7IG1ldGhvZD1kZWZsYXRlJykKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNo
YWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0Vf
Q09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkK
LQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3F1b3RlZF9leHRlbnNpb25zKHNlbGYp
OgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAg
ICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAot
ICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtY29tcHJlc3M7IG1ldGhvZD1kZWZsYXRlLCAsICcKLSAg
ICAgICAgICAgICd1bmtub3duOyBlICAgPSAgICAibWNeMiI7IG1hPSJcclxuICAgICAgXFxccmYg
ICI7IHB2PW5ydCcpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQot
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMiwgbGVuKHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJz
dF9leHRlbnNpb24gPSByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zWzBdCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtY29tcHJlc3MnLCBmaXJzdF9leHRlbnNpb24u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbWV0aG9kJ10sIGZpcnN0X2V4dGVu
c2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2Rl
ZmxhdGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2V4dGVuc2lvbi5nZXRfcGFy
YW1ldGVyX3ZhbHVlKCdtZXRob2QnKSkKLSAgICAgICAgc2Vjb25kX2V4dGVuc2lvbiA9IHJlcXVl
c3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnNbMV0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
dW5rbm93bicsIHNlY29uZF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgWydlJywgJ21hJywgJ3B2J10sIHNlY29uZF9leHRlbnNpb24uZ2V0
X3BhcmFtZXRlcl9uYW1lcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdtY14yJywgc2Vj
b25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdlJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJyBccmYgJywgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdt
YScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCducnQnLCBzZWNvbmRfZXh0ZW5zaW9uLmdl
dF9wYXJhbWV0ZXJfdmFsdWUoJ3B2JykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0
aF9vcHRpb25hbF9oZWFkZXJzKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0VtcHR5VmFs
dWUnXSA9ICcnCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0FLZXknXSA9ICdBVmFsdWUn
Ci0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAg
ICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAnQVZhbHVlJywgcmVxdWVzdC5oZWFkZXJzX2luWydBS2V5J10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAnJywgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0eVZh
bHVlJ10pCi0KLSAgICBkZWYgdGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAg
ICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKAotICAgICAgICAgICAgX2NyZWF0ZV9yZXF1ZXN0
KF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpKSwKLSAgICAgICAgICAgIEFib3J0ZWRCeVVzZXJE
aXNwYXRjaGVyKCkpCi0gICAgICAgICMgZG9fZXh0cmFfaGFuZHNoYWtlIHJhaXNlcyBhbiBBYm9y
dGVkQnlVc2VyRXhjZXB0aW9uLiBDaGVjayB0aGF0IGl0J3MKLSAgICAgICAgIyBub3QgY2F1Z2h0
IGJ5IGRvX2hhbmRzaGFrZS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQWJvcnRlZEJ5VXNl
ckV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2Vfd2l0aF9tdXhfYW5kX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoJyVzLCAlcycgJSAoCi0gICAg
ICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtl
cihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMg
bXV4IHNob3VsZCBiZSByZWplY3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o
cmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC53c19leHRlbnNpb25zWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBs
ZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkK
LQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX2RlZmxhdGVfZnJhbWVfYW5kX211eChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQot
ICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9
ICgnJXMsICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2Vy
ID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJz
dF9leHRlbnNpb24gPSByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgp
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIocmVxdWVzdCwgJ211eCcpKQotCi0g
ICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcGVybWVzc2FnZV9jb21wcmVzc19hbmRfbXV4
KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucydd
ID0gKAotICAgICAgICAgICAgJyVzOyBtZXRob2Q9ZGVmbGF0ZSwgJXMnICUgKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAg
ICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRz
aGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25zWzBdLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhU
RU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhf
RVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9u
X3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihy
ZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVxdWVz
dC5tdXhfcHJvY2Vzc29yLmlzX2FjdGl2ZSgpKQotICAgICAgICBtdXhfZXh0ZW5zaW9ucyA9IHJl
cXVlc3QubXV4X3Byb2Nlc3Nvci5leHRlbnNpb25zKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBsZW4obXV4X2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBtdXhfZXh0ZW5zaW9uc1swXS5uYW1lKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hh
a2Vfd2l0aF9tdXhfYW5kX3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAnJXMs
ICVzOyBtZXRob2Q9ZGVmbGF0ZScgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLk1VWF9FWFRF
TlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhU
RU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikK
LSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAg
ICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBiZSByZWpl
Y3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19leHRlbnNpb25zWzBd
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05f
RVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2V4dGVuc2lvbi5uYW1l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9u
X3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5T
SU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNT
QUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCi0KLSAgICBkZWYgdGVz
dF9iYWRfcmVxdWVzdHMoc2VsZik6Ci0gICAgICAgIGJhZF9jYXNlcyA9IFsKLSAgICAgICAgICAg
ICgnSFRUUCByZXF1ZXN0JywKLSAgICAgICAgICAgICBSZXF1ZXN0RGVmaW5pdGlvbigKLSAgICAg
ICAgICAgICAgICAgJ0dFVCcsICcvZGVtbycsCi0gICAgICAgICAgICAgICAgIHsnSG9zdCc6ICd3
d3cuZ29vZ2xlLmNvbScsCi0gICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6Ci0gICAgICAg
ICAgICAgICAgICAgICAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBY
IDEwLjU7JwotICAgICAgICAgICAgICAgICAgICAgICcgZW4tVVM7IHJ2OjEuOS4xLjMpIEdlY2tv
LzIwMDkwODI0IEZpcmVmb3gvMy41LjMnCi0gICAgICAgICAgICAgICAgICAgICAgJyBHVEI2IEdU
QkEnLAotICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6Ci0gICAgICAgICAgICAgICAgICAgICAg
J3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcK
LSAgICAgICAgICAgICAgICAgICAgICAnKi8qO3E9MC44JywKLSAgICAgICAgICAgICAgICAgICdB
Y2NlcHQtTGFuZ3VhZ2UnOiAnZW4tdXMsZW47cT0wLjUnLAotICAgICAgICAgICAgICAgICAgJ0Fj
Y2VwdC1FbmNvZGluZyc6ICdnemlwLGRlZmxhdGUnLAotICAgICAgICAgICAgICAgICAgJ0FjY2Vw
dC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNycsCi0gICAgICAgICAg
ICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAotICAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rp
b24nOiAna2VlcC1hbGl2ZSd9KSwgTm9uZSwgVHJ1ZSldCi0KLSAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5tZXRob2Qg
PSAnUE9TVCcKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIG1ldGhvZCcsIHJlcXVl
c3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydIb3N0J10K
LSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgSG9zdCcsIHJlcXVlc3RfZGVmLCBO
b25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0
X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10KLSAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgVXBncmFkZScsIHJlcXVlc3RfZGVmLCBOb25l
LCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXSA9ICdub253ZWJzb2Nr
ZXQnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBVcGdyYWRlJywgcmVxdWVzdF9k
ZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24n
XQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBDb25uZWN0aW9uJywgcmVxdWVz
dF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbidd
ID0gJ0Rvd25ncmFkZScKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIENvbm5lY3Rp
b24nLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1LZXknXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2lu
ZyBTZWMtV2ViU29ja2V0LUtleScsIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKLSAgICAgICAgICAgICdkR2hs
SUhOaGJYQnNaU0J1YjI1alpRPT1nYXJiYWdlJykKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgo
J1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5ICh3aXRoIGdhcmJhZ2Ugb24gdGhlIHRhaWwpJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1
ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gJ1lRPT0nICAjIEJBU0U2NCBv
ZiAnYScKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAgICgnV3JvbmcgU2Vj
LVdlYlNvY2tldC1LZXkgKGRlY29kZWQgdmFsdWUgaXMgbm90IDE2IG9jdGV0cyBsb25nKScsCi0g
ICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICAjIFRoZSBsYXN0IGNoYXJh
Y3RlciByaWdodCBiZWZvcmUgPT0gbXVzdCBiZSBhbnkgb2YgQSwgUSwgdyBhbmQgZy4KLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKLSAgICAgICAg
ICAgICdBUUlEQkFVR0J3Z0pDZ3NNRFE0UEVDPT0nKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5k
KAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAocGFkZGluZyBiaXRzIGFy
ZSBub3QgemVybyknLAotICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0g
ICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAg
cmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKLSAgICAgICAgICAg
ICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0sZEdobElITmhiWEJzWlNCdWIyNWpaUT09JykKLSAg
ICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tl
dC1LZXkgKG11bHRpcGxlIHZhbHVlcyknLAotICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAs
IFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lv
biddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJTb2NrZXQtVmVy
c2lvbicsIHJlcXVlc3RfZGVmLCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVl
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddID0gJzMn
Ci0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24n
LCByZXF1ZXN0X2RlZiwgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQot
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMTMsIDEz
JwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9u
IChtdWx0aXBsZSB2YWx1ZXMpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9k
ZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVBy
b3RvY29sJ10gPSAnaWxsZWdhbFx4MDlwcm90b2NvbCcKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVu
ZCgoJ0lsbGVnYWwgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJycKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgo
J0VtcHR5IFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICBmb3IgKGNhc2VfbmFtZSwgcmVx
dWVzdF9kZWYsIGV4cGVjdGVkX3N0YXR1cywKLSAgICAgICAgICAgICBleHBlY3RfaGFuZHNoYWtl
X2V4Y2VwdGlvbikgaW4gYmFkX2Nhc2VzOgotICAgICAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2Vy
KHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5mYWlsKCdObyBleGNlcHRpb24gdGhyb3duIGZvciBcJyVzXCcgY2FzZScgJSBjYXNlX25hbWUp
Ci0gICAgICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKLSAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3N0YXR1cywgZS5zdGF0dXMpCi0gICAg
ICAgICAgICBleGNlcHQgVmVyc2lvbkV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQotCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3M2Y5ZjI3Y2EyZDk0MjFiMjMwMTVmNThjODkzYWNmMWRjMDA5ZGVmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTE2ICswLDAg
QEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVz
dHMgZm9yIGhhbmRzaGFrZS5oeWJpMDAgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAot
Ci1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5
d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNl
IGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5oeWJpMDAgaW1wb3J0IEhhbmRzaGFrZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5oeWJpMDAgaW1wb3J0IF92YWxpZGF0ZV9zdWJwcm90b2NvbAotZnJvbSB0ZXN0IGltcG9ydCBt
b2NrCi0KLQotX1RFU1RfS0VZMSA9ICc0IEAxICA0NjU0NnhXJTBsIDEgNScKLV9URVNUX0tFWTIg
PSAnMTI5OTggNSBZMyAxICAuUDAwJwotX1RFU1RfS0VZMyA9ICdebjpkc1s0VScKLV9URVNUX0NI
QUxMRU5HRV9SRVNQT05TRSA9ICc4aktTXCd5OkcqQ28sV3hhLScKLQotCi1fR09PRF9SRVFVRVNU
ID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAn
SG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAot
ICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29j
a2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAg
ICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMp
Ci0KLV9HT09EX1JFUVVFU1RfQ0FQSVRBTElaRURfSEVBREVSX1ZBTFVFUyA9ICgKLSAgICA4MCwK
LSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBs
ZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVUEdSQURFJywKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dFQlNPQ0tFVCcsCi0gICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0
dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVFV
RVNUX0NBU0VfTUlYRURfSEVBREVSX05BTUVTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAg
ICcvZGVtbycsCi0gICAgewotICAgICAgICAnaE9zVCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAg
ICdjT25OZUN0SW9OJzogJ1VwZ3JhZGUnLAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkyJzog
X1RFU1RfS0VZMiwKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQtcFJvVG9Db0wnOiAnc2FtcGxlJywK
LSAgICAgICAgJ3VQZ1JhRGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ3NFYy13RWJzT2NLZVQt
a0V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdvUmlHaU4nOiAnaHR0cDovL2V4YW1wbGUuY29t
JywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9S
VCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2Vcclxu
JwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRl
XHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1v
XHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4n
Ci0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsK
LSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFU1BPTlNFX1NFQ1VSRSA9
ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwot
ICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3NzOi8vZXhhbXBsZS5jb20vZGVtb1xy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwot
ICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0g
ICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX05PTkRFRkFVTFRf
UE9SVCA9ICgKLSAgICA4MDgxLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAg
ICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbTo4MDgxJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAn
VXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFk
ZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZ
MSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAg
X1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JUID0gKAotICAgICdI
VFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3Jh
ZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCi0g
ICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RF
U1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQT05TRV9TRUNVUkVfTk9OREVGID0g
KAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0g
ICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxu
JwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3c3M6Ly9leGFtcGxlLmNvbTo4MDgxL2Rl
bW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJc
bicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicg
KwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9OT19QUk9U
T0NPTCA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAg
ICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRl
JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdV
cGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVT
VF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwK
LSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9OT19QUk9UT0NPTCA9ICgKLSAgICAn
SFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1xyXG4n
ICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFUVVFU1RfV0lUSF9P
UFRJT05BTF9IRUFERVJTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0g
ICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9u
JzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwK
LSAgICAgICAgJ0VtcHR5VmFsdWUnOiAnJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9j
b2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ0FLZXknOiAnQVZhbHVlJywKLSAgICAgICAgJ1VwZ3Jh
ZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tF
WTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAg
IF9URVNUX0tFWTMpCi0KLSMgVE9ETyh0eW9zaGlubyk6IEluY2x1ZGUgXHIgXG4gaW4ga2V5Mywg
Y2hhbGxlbmdlIHJlc3BvbnNlLgotCi1fR09PRF9SRVFVRVNUX1dJVEhfTk9OUFJJTlRBQkxFX0tF
WSA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAg
J0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywK
LSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6ICd5ICBSMiA0OCBRMU80ICBlfEJWMyBpNSAx
ICB1LSA2NScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0g
ICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTEnOiAnMzYgNyAgIDc0IGkgIDkyIDJcJ20gOSAwRycsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0
cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgICcnLmpvaW4obWFwKGNociwgWzB4MDEsIDB4
ZDEsIDB4ZGQsIDB4M2IsIDB4ZDEsIDB4NTYsIDB4NjMsIDB4ZmZdKSkpCi0KLV9HT09EX1JFU1BP
TlNFX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tl
dCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwot
ICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlv
bjogd3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46
IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNh
bXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICAnJy5qb2luKG1hcChjaHIsIFsweDBiLCAweDk5
LCAweGZhLCAweDU1LCAweGJkLCAweDAxLCAweDIzLCAweDdiLAotICAgICAgICAgICAgICAgICAg
ICAgIDB4NDUsIDB4YTIsIDB4ZjEsIDB4ZDAsIDB4ODcsIDB4OGEsIDB4ZWUsIDB4ZWJdKSkpCi0K
LV9HT09EX1JFUVVFU1RfV0lUSF9RVUVSWV9QQVJUID0gKAotICAgIDgwLAotICAgICdHRVQnLAot
ICAgICcvZGVtbz9lPW1jMicsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScs
Ci0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAn
c2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4
YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX1dJ
VEhfUVVFUllfUEFSVCA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBI
YW5kc2hha2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0
aW9uOiBVcGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFt
cGxlLmNvbS9kZW1vP2U9bWMyXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6
Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxy
XG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9CQURf
UkVRVUVTVFMgPSAoCi0gICAgKCAgIyBIVFRQIHJlcXVlc3QKLSAgICAgICAgODAsCi0gICAgICAg
ICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6
ICd3d3cuZ29vZ2xlLmNvbScsCi0gICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUu
MCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41OycKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28vMjAwOTA4MjQgRmlyZWZveC8zLjUu
MycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJyBHVEI2IEdUQkEnLAotICAgICAgICAgICAg
J0FjY2VwdCc6ICd0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3ht
bDtxPTAuOSwnCi0gICAgICAgICAgICAgICAgICAgICAgJyovKjtxPTAuOCcsCi0gICAgICAgICAg
ICAnQWNjZXB0LUxhbmd1YWdlJzogJ2VuLXVzLGVuO3E9MC41JywKLSAgICAgICAgICAgICdBY2Nl
cHQtRW5jb2RpbmcnOiAnZ3ppcCxkZWZsYXRlJywKLSAgICAgICAgICAgICdBY2NlcHQtQ2hhcnNl
dCc6ICdJU08tODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcnLAotICAgICAgICAgICAgJ0tlZXAt
QWxpdmUnOiAnMzAwJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxpdmUnLAot
ICAgICAgICB9KSwKLSAgICAoICAjIFdyb25nIG1ldGhvZAotICAgICAgICA4MCwKLSAgICAgICAg
J1BPU1QnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6
ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRl
JzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1Rf
S0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAg
ICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBNaXNzaW5nIFVwZ3JhZGUKLSAg
ICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0g
ICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9L
RVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAg
J09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVT
VF9LRVkzKSwKLSAgICAoICAjIFdyb25nIFVwZ3JhZGUKLSAgICAgICAgODAsCi0gICAgICAgICdH
RVQnLAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdl
eGFtcGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzog
J05vbldlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1Rf
S0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAg
ICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBFbXB0eSBXZWJTb2NrZXQtUHJv
dG9jb2wKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2RlbW8nLAotICAg
ICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICAgICAn
Q29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTIn
OiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnJywK
LSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDov
L2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAg
IyBXcm9uZyBwb3J0IG51bWJlciBmb3JtYXQKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAot
ICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxl
LmNvbToweDUwJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAn
V2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkx
LAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9
LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIEhlYWRlci9jb25uZWN0aW9uIHBvcnQg
bWlzbWF0Y2gKLSAgICAgICAgODA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycs
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAg
ICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6
ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdp
bic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkz
KSwKLSAgICAoICAjIElsbGVnYWwgV2ViU29ja2V0LVByb3RvY29sCi0gICAgICAgIDgwLAotICAg
ICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hv
c3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScs
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ2lsbGVnYWxceDA5cHJvdG9jb2wnLAotICAg
ICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhh
bXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSkKLQotCi1kZWYg
X2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKLSAgICBkYXRhID0gJycKLSAgICBpZiBsZW4o
cmVxdWVzdF9kZWYpID4gNDoKLSAgICAgICAgZGF0YSA9IHJlcXVlc3RfZGVmWzRdCi0gICAgY29u
biA9IG1vY2suTW9ja0Nvbm4oZGF0YSkKLSAgICBjb25uLmxvY2FsX2FkZHIgPSAoJzAuMC4wLjAn
LCByZXF1ZXN0X2RlZlswXSkKLSAgICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKLSAgICAgICAg
bWV0aG9kPXJlcXVlc3RfZGVmWzFdLAotICAgICAgICB1cmk9cmVxdWVzdF9kZWZbMl0sCi0gICAg
ICAgIGhlYWRlcnNfaW49cmVxdWVzdF9kZWZbM10sCi0gICAgICAgIGNvbm5lY3Rpb249Y29ubikK
LQotCi1kZWYgX2NyZWF0ZV9nZXRfbWVtb3JpemVkX2xpbmVzKGxpbmVzKToKLSAgICAiIiJDcmVh
dGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcuIiIiCi0KLSAgICBk
ZWYgZ2V0X21lbW9yaXplZF9saW5lcygpOgotICAgICAgICByZXR1cm4gbGluZXMKLSAgICByZXR1
cm4gZ2V0X21lbW9yaXplZF9saW5lcwotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RzX3dpdGhfbGlu
ZXMocmVxdWVzdF9saW5lc19zZXQpOgotICAgIHJlcXVlc3RzID0gW10KLSAgICBmb3IgbGluZXMg
aW4gcmVxdWVzdF9saW5lc19zZXQ6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
X0dPT0RfUkVRVUVTVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF9tZW1vcml6ZWRf
bGluZXMgPSBfY3JlYXRlX2dldF9tZW1vcml6ZWRfbGluZXMoCi0gICAgICAgICAgICAgICAgbGlu
ZXMpCi0gICAgICAgIHJlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KQotICAgIHJldHVybiByZXF1ZXN0
cwotCi0KLWNsYXNzIEh5QmkwMEhhbmRzaGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQot
ICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVCkKLSAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2Rl
bW8nLCByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRw
Oi8vZXhhbXBsZS5jb20nLCByZXF1ZXN0LndzX29yaWdpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnd3M6Ly9leGFtcGxlLmNvbS9kZW1vJywgcmVxdWVzdC53c19sb2NhdGlvbikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAg
IGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9jYXBpdGFsaXplZF9oZWFkZXJfdmFsdWVzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FQSVRBTEla
RURfSEVBREVSX1ZBTFVFUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVz
dCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JU
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9jYXNlX21peGVkX2hlYWRlcl9uYW1l
cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNU
X0NBU0VfTUlYRURfSEVBREVSX05BTUVTKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtl
cihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZB
VUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3NlY3VyZV9kZWZhdWx0
X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVR
VUVTVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmxvY2FsX2FkZHIgPSAoJzAuMC4wLjAn
LCA0NDMpCi0gICAgICAgIHJlcXVlc3QuaXNfaHR0cHNfID0gVHJ1ZQotICAgICAgICBoYW5kc2hh
a2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09P
RF9SRVNQT05TRV9TRUNVUkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUn
LCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X25vbmRl
ZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09P
RF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
Y2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX05PTkRFRkFVTFRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9j
b2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfc2VjdXJlX25vbl9kZWZhdWx0X3BvcnQo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9O
T05ERUZBVUxUX1BPUlQpCi0gICAgICAgIHJlcXVlc3QuaXNfaHR0cHNfID0gVHJ1ZQotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChfR09PRF9SRVNQT05TRV9TRUNVUkVfTk9OREVGLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dv
b2RfcmVxdWVzdF9kZWZhdWx0X25vX3Byb3RvY29sKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9fUFJPVE9DT0wpCi0gICAgICAgIGhhbmRz
aGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAg
ICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9H
T09EX1JFU1BPTlNFX05PX1BST1RPQ09MLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X29w
dGlvbmFsX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
X0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBVmFsdWUn
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc19pblsnQUtleSddKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuaGVhZGVyc19pblsnRW1wdHlWYWx1ZSddKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1
ZXN0X3dpdGhfbm9ucHJpbnRhYmxlX2tleShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSkKLSAgICAgICAg
aGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQot
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVfS0VZLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0
ZXN0X2dvb2RfcmVxdWVzdF93aXRoX3F1ZXJ5X3BhcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRIX1FVRVJZX1BBUlQpCi0gICAgICAg
IGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkK
LSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKF9HT09EX1JFU1BPTlNFX1dJVEhfUVVFUllfUEFSVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ3dzOi8vZXhhbXBsZS5jb20vZGVtbz9lPW1jMicsIHJlcXVlc3Qud3NfbG9jYXRp
b24pCi0KLSAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdHMoc2VsZik6Ci0gICAgICAgIGZvciByZXF1
ZXN0IGluIG1hcChfY3JlYXRlX3JlcXVlc3QsIF9CQURfUkVRVUVTVFMpOgotICAgICAgICAgICAg
aGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hh
a2VyLmRvX2hhbmRzaGFrZSkKLQotCi1jbGFzcyBIeUJpMDBWYWxpZGF0ZVN1YnByb3RvY29sVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfdmFsaWRhdGVfc3VicHJvdG9jb2wo
c2VsZik6Ci0gICAgICAgICMgc2hvdWxkIHN1Y2NlZWQuCi0gICAgICAgIF92YWxpZGF0ZV9zdWJw
cm90b2NvbCgnc2FtcGxlJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdTYW1wbGUn
KQotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4N2Vwcm90b2NvbCcpCi0g
ICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlXHgyMHByb3RvY29sJykKLQotICAg
ICAgICAjIHNob3VsZCBmYWlsLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VF
eGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2Nv
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlk
YXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgxOXBy
b3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiSmFw
YW4iIGluIEphcGFuZXNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHUnXHU2NWU1XHU2NzJj
JykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2h0
dHBfaGVhZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDM2ZGM1N2MzNzMxMDcxZmUyOTAxOTE5
ZTMzZjI0YzFiNTU5ZjYwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDkwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIGh0dHBfaGVhZGVyX3V0aWwgbW9kdWxlLiIiIgotCi0K
LWltcG9ydCB1bml0dGVzdAotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFk
ZXJfdXRpbAotCi0KLWNsYXNzIFVuaXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJB
IHVuaXR0ZXN0IGZvciBodHRwX2hlYWRlcl91dGlsIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0
X3BhcnNlX3JlbGF0aXZlX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2Ug
PSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnL3dzL3Rlc3QnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcG9y
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAg
IGRlZiB0ZXN0X3BhcnNlX2Fic29sdXRlX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwg
cmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAgICAgICd3czov
L2xvY2FsaG9zdDoxMDA4MC93cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnbG9j
YWxob3N0JywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDA4MCwgcG9ydCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAgICAgICBo
b3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAg
ICAgICAgJ3dzOi8vZXhhbXBsZS5jb20vd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4MCwgcG9y
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3dzL3Rlc3QnLCByZXNvdXJjZSkKLQotICAg
ICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAot
ICAgICAgICAgICAgJ3dzczovL2V4YW1wbGUuY29tLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0NDMsIHBv
cnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy8nLCByZXNvdXJjZSkKLQotICAgICAgICBo
b3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAg
ICAgICAgJ3dzOi8vZXhhbXBsZS5jb206ODA4MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J2V4YW1wbGUuY29tJywgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4MDgwLCBwb3J0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2UpCi0KLSAgICBkZWYgdGVz
dF9wYXJzZV9pbnZhbGlkX3VyaShzZWxmKToKLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2Ug
PSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly8vJykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9
IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xvY2FsaG9zdDonKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJl
c291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vbG9jYWxob3N0Oi93cycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLQotaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOGYxYjhlZWY0MzM3OGE5YjAwNjI1ZjIyMGM5N2ZlMjJmNzQwYThmNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBm
b3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBTdHJpbmdJTwotaW1wb3J0
IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxv
Y2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgbWVtb3JpemluZ2ZpbGUKLQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgotCi0gICAg
ZGVmIGNoZWNrKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwgbnVtX3JlYWQsIGV4cGVjdGVkX2xpc3Qp
OgotICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdlKG51bV9yZWFkKToKLSAgICAgICAgICAgIG1l
bW9yaXppbmdfZmlsZS5yZWFkbGluZSgpCi0gICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3Jpemlu
Z19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAgZm9yIGV4cGVjdGVk
LCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiBjaGVja193aXRo
X3NpemUoc2VsZiwgbWVtb3JpemluZ19maWxlLCByZWFkX3NpemUsIGV4cGVjdGVkX2xpc3QpOgot
ICAgICAgICByZWFkX2xpc3QgPSBbXQotICAgICAgICByZWFkX2xpbmUgPSAnJwotICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgbGluZSA9IG1lbW9yaXppbmdfZmlsZS5yZWFkbGluZShy
ZWFkX3NpemUpCi0gICAgICAgICAgICBsaW5lX2xlbmd0aCA9IGxlbihsaW5lKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGxpbmVfbGVuZ3RoIDw9IHJlYWRfc2l6ZSkKLSAgICAgICAgICAg
IGlmIGxpbmVfbGVuZ3RoID09IDA6Ci0gICAgICAgICAgICAgICAgaWYgcmVhZF9saW5lICE9ICcn
OgotICAgICAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5kKHJlYWRfbGluZSkKLSAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcmVhZF9saW5lICs9IGxpbmUKLSAgICAgICAg
ICAgIGlmIGxpbmVbbGluZV9sZW5ndGggLSAxXSA9PSAnXG4nOgotICAgICAgICAgICAgICAgIHJl
YWRfbGlzdC5hcHBlbmQocmVhZF9saW5lKQotICAgICAgICAgICAgICAgIHJlYWRfbGluZSA9ICcn
Ci0gICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxlLmdldF9tZW1vcml6ZWRfbGlu
ZXMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFj
dHVhbF9saXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCks
IGxlbihyZWFkX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCwgcmVhZCBpbiB6
aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWFkX2xpc3QpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChleHBlY3RlZCwgYWN0dWFsKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rl
ZCwgcmVhZCkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAg
ICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmlu
Z0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkK
LSAgICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9cbicsICdXb3Js
ZFxuJywgJ1dlbGNvbWUnXSkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfbGlt
aXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1v
cml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAg
ICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJyksIDIpCi0gICAgICAgIHNlbGYuY2hlY2sobWVt
b3JpemluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbiddKQotCi0gICAgZGVmIHRlc3Rf
Z2V0X21lbW9yaXplZF9saW5lc19lbXB0eV9maWxlKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5n
X2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygK
LSAgICAgICAgICAgICAgICAnJykpCi0gICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxl
LCAxMCwgW10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX3dpdGhfc2l6ZShz
ZWxmKToKLSAgICAgICAgZm9yIHNpemUgaW4gcmFuZ2UoMSwgMTApOgotICAgICAgICAgICAgbWVt
b3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3Ry
aW5nSU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQotICAgICAg
ICAgICAgc2VsZi5jaGVja193aXRoX3NpemUobWVtb3JpemluZ19maWxlLCBzaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2VsY29t
ZSddKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21v
Y2sucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbW9jay5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2RjMjNhNzNkOGZiMWEwN2FlYjNlNWFlOTQwMmNjODZiOGZjYzM2Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RfbW9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtb2NrIG1vZHVs
ZS4iIiIKLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB1bml0dGVz
dAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9k
X3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotY2xhc3Mg
TW9ja0Nvbm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBN
b2NrQ29ubiBjbGFzcy4iIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5f
Y29ubiA9IG1vY2suTW9ja0Nvbm4oJ0FCQ1xyXG5ERUZHXHJcblxyXG5ISUpLJykKLQotICAgIGRl
ZiB0ZXN0X3JlYWRsaW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBQkNcclxu
Jywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdERUZH
XHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SElKSycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
Jywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3RfcmVhZChzZWxmKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbkQnLCBzZWxmLl9jb25uLnJlYWQoNikpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0VGR1xyXG5cclxuSEknLCBzZWxmLl9jb25uLnJlYWQo
OSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0pLJywgc2VsZi5fY29ubi5yZWFkKDEwKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5yZWFkKDEwKSkKLQotICAg
IGRlZiB0ZXN0X3JlYWRfYW5kX3JlYWRsaW5lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnRUZHXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHJcbkhJSksnLCBzZWxmLl9jb25uLnJlYWQoOSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkKLQotICAgIGRlZiB0ZXN0X3dyaXRl
KHNlbGYpOgotICAgICAgICBzZWxmLl9jb25uLndyaXRlKCdIZWxsb1xyXG4nKQotICAgICAgICBz
ZWxmLl9jb25uLndyaXRlKCdXb3JsZFxyXG4nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
ZWxsb1xyXG5Xb3JsZFxyXG4nLCBzZWxmLl9jb25uLndyaXR0ZW5fZGF0YSgpKQotCi0KLWNsYXNz
IE1vY2tCbG9ja2luZ0Nvbm5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0
ZXN0IGZvciBNb2NrQmxvY2tpbmdDb25uIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfcmVhZChz
ZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCBkYXRhIHB1dCB0byBNb2NrQmxvY2tpbmdDb25u
IGJ5IHB1dF9ieXRlcyBtZXRob2QgY2FuIGJlCi0gICAgICAgIHJlYWQgZnJvbSBpdC4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgY2xhc3MgTGluZVJlYWRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAg
ICAgICAgICAgICIiIkEgdGVzdCBjbGFzcyB0aGF0IGxhdW5jaGVzIGEgdGhyZWFkLCBjYWxscyBy
ZWFkbGluZSBvbiB0aGUKLSAgICAgICAgICAgIHNwZWNpZmllZCBjb25uIHJlcGVhdGVkbHkgYW5k
IHB1dHMgdGhlIHJlYWQgZGF0YSB0byB0aGUgc3BlY2lmaWVkCi0gICAgICAgICAgICBxdWV1ZS4K
LSAgICAgICAgICAgICIiIgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubiwg
cXVldWUpOgotICAgICAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikK
LSAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZSA9IHF1ZXVlCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fY29ubiA9IGNvbm4KLSAgICAgICAgICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAg
ICAgICAgICAgICAgIHNlbGYuc3RhcnQoKQotCi0gICAgICAgICAgICBkZWYgcnVuKHNlbGYpOgot
ICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBz
ZWxmLl9jb25uLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0
KGRhdGEpCi0KLSAgICAgICAgY29ubiA9IG1vY2suTW9ja0Jsb2NraW5nQ29ubigpCi0gICAgICAg
IHF1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICByZWFkZXIgPSBMaW5lUmVhZGVyKGNvbm4s
IHF1ZXVlKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MocXVldWUuZW1wdHkoKSkKLSAgICAgICAg
Y29ubi5wdXRfYnl0ZXMoJ0ZvbyBiYXJcclxuJykKLSAgICAgICAgcmVhZCA9IHF1ZXVlLmdldCgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0ZvbyBiYXJcclxuJywgcmVhZCkKLQotCi1jbGFz
cyBNb2NrVGFibGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZv
ciBNb2NrVGFibGUgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfZnJvbV9kaWN0KHNl
bGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKHsnS2V5JzogJ1ZhbHVlJ30pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVz
dF9jcmVhdGVfZnJvbV9saXN0KHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxl
KFsoJ0tleScsICdWYWx1ZScpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0
YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxl
WydrZXknXSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX3R1cGxlKHNlbGYpOgotICAgICAg
ICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKCgoJ0tleScsICdWYWx1ZScpLCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVzdF9zZXRfYW5k
X2dldChzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgdGFibGUuZ2V0KCdLZXknKSkKLSAgICAgICAgdGFibGVbJ0tl
eSddID0gJ1ZhbHVlJwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdl
dCgnS2V5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdr
ZXknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydLZXknXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tFWSddKQotCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9tc2d1dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmVkY2Y5MmY2
MWZlOGNkOWU1NjBmMjc0YTg5YTAzYjQzYTcyYmRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tc2d1dGlsLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTM1NiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtc2d1dGlsIG1vZHVsZS4iIiIKLQotCi1p
bXBvcnQgYXJyYXkKLWltcG9ydCBRdWV1ZQotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHN0cnVjdAot
aW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVw
ZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5z
aW9ucyBpbXBvcnQgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9j
ZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBlck1lc3NhZ2VE
ZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNn
dXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBJbnZhbGlkVVRGOEV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZyb20gbW9k
X3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgdXRpbAotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotIyBXZSB1c2Ugb25lIGZpeGVk
IG5vbmNlIGZvciB0ZXN0aW5nIGluc3RlYWQgb2YgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlIFBS
TkcuCi1fTUFTS0lOR19OT05DRSA9ICdBQkNEJwotCi0KLWRlZiBfbWFza19oeWJpKGZyYW1lKToK
LSAgICBmcmFtZV9rZXkgPSBtYXAob3JkLCBfTUFTS0lOR19OT05DRSkKLSAgICBmcmFtZV9rZXlf
bGVuID0gbGVuKGZyYW1lX2tleSkKLSAgICByZXN1bHQgPSBhcnJheS5hcnJheSgnQicpCi0gICAg
cmVzdWx0LmZyb21zdHJpbmcoZnJhbWUpCi0gICAgY291bnQgPSAwCi0gICAgZm9yIGkgaW4geHJh
bmdlKGxlbihyZXN1bHQpKToKLSAgICAgICAgcmVzdWx0W2ldIF49IGZyYW1lX2tleVtjb3VudF0K
LSAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGZyYW1lX2tleV9sZW4KLSAgICByZXR1cm4g
X01BU0tJTkdfTk9OQ0UgKyByZXN1bHQudG9zdHJpbmcoKQotCi0KLWRlZiBfaW5zdGFsbF9leHRl
bnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMpOgotICAg
IHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgIGlmIHJl
c3BvbnNlIGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlv
bnMoc3RyZWFtX29wdGlvbnMpCi0gICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnMuYXBwZW5kKHByb2Nlc3NvcikKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0
YSgKLSAgICAgICAgcmVhZF9kYXRhLAotICAgICAgICBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9Tm9u
ZSwKLSAgICAgICAgcGVybWVzc2FnZV9jb21wcmVzc2lvbl9yZXF1ZXN0PU5vbmUsCi0gICAgICAg
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PU5vbmUpOgotICAgIHJlcSA9IG1vY2suTW9ja1Jl
cXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnLmpvaW4ocmVhZF9kYXRhKSkpCi0gICAg
cmVxLndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotICAgIHJlcS53c19l
eHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCi0KLSAgICBwcm9jZXNzb3IgPSBOb25lCi0gICAgaWYg
ZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3IgPSBE
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0KQotICAg
IGVsaWYgcGVybWVzc2FnZV9jb21wcmVzc2lvbl9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAg
ICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAg
ICAgICAgICAgICAgcGVybWVzc2FnZV9jb21wcmVzc2lvbl9yZXF1ZXN0KQotICAgIGVsaWYgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3NvciA9
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIHBl
cm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0KQotCi0gICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1P
cHRpb25zKCkKLSAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgIF9pbnN0YWxs
X2V4dGVuc2lvbl9wcm9jZXNzb3IocHJvY2Vzc29yLCByZXEsIHN0cmVhbV9vcHRpb25zKQotICAg
IHJlcS53c19zdHJlYW0gPSBTdHJlYW0ocmVxLCBzdHJlYW1fb3B0aW9ucykKLQotICAgIHJldHVy
biByZXEKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0KCpmcmFtZXMpOgotICAgICIiIkNyZWF0ZXMg
TW9ja1JlcXVlc3QgdXNpbmcgZGF0YSBnaXZlbiBhcyBmcmFtZXMuCi0KLSAgICBmcmFtZXMgd2ls
bCBiZSByZXR1cm5lZCBvbiBjYWxsaW5nIHJlcXVlc3QuY29ubmVjdGlvbi5yZWFkKCkgd2hlcmUg
cmVxdWVzdAotICAgIGlzIE1vY2tSZXF1ZXN0IHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24uCi0g
ICAgIiIiCi0KLSAgICByZWFkX2RhdGEgPSBbXQotICAgIGZvciAoaGVhZGVyLCBib2R5KSBpbiBm
cmFtZXM6Ci0gICAgICAgIHJlYWRfZGF0YS5hcHBlbmQoaGVhZGVyICsgX21hc2tfaHliaShib2R5
KSkKLQotICAgIHJldHVybiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKHJlYWRfZGF0YSkK
LQotCi1kZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCk6Ci0gICAgIiIiQ3JlYXRlcyBNb2Nr
UmVxdWVzdC4KLQotICAgIERhdGEgd3JpdHRlbiB0byBhIE1vY2tSZXF1ZXN0IGNhbiBiZSByZWFk
IG91dCBieSBjYWxsaW5nCi0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpLgot
ICAgICIiIgotCi0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9j
a0Jsb2NraW5nQ29ubigpKQotICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlC
SV9MQVRFU1QKLSAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotICAgIHJlcS53
c19zdHJlYW0gPSBTdHJlYW0ocmVxLCBzdHJlYW1fb3B0aW9ucykKLSAgICByZXR1cm4gcmVxCi0K
LQotZGVmIF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KHJlYWRfZGF0YT0nJyk6Ci0gICAgcmVxID0g
bW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4ocmVhZF9kYXRhKSkKLSAg
ICByZXEud3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXEpCi0gICAgcmV0dXJuIHJlcQotCi0K
LWRlZiBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpOgotICAgIHJlcSA9IG1vY2su
TW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKSkKLSAgICByZXEu
d3Nfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXEpCi0gICAgcmV0dXJuIHJlcQotCi0KLWNsYXNz
IEJhc2ljTWVzc2FnZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkJhc2ljIHRlc3Rz
IGZvciBTdHJlYW0uIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgw
NUhlbGxvJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHBh
eWxvYWQgPSAnYScgKiAxMjUKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0g
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdkJyArIHBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9tZWRpdW1fbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4
MVx4N2VceDAwXHg3ZScgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICog
KCgxIDw8IDE2KSAtIDEpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDgxXHg3ZVx4ZmZceGZmJyArIHBheWxvYWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3Rfc2VuZF9sYXJnZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICog
KDEgPDwgMTYpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDgxXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwJyArIHBheWxv
YWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCB1J1x1NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlzIGVuY29kZWQgYXMg
ZTYsOTcsYTUgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4MDNceGU2
XHg5N1x4YTUnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudHMoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJyAnLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ1dvcmxkJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICchJywgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMVx4
MDVIZWxsb1x4MDBceDAxIFx4MDBceDA1V29ybGRceDgwXHgwMSEnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfZnJhZ21lbnRzX2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9uKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvIFdvcmxkIScsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnJywgVHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHgwMVx4MGNIZWxsbyBXb3JsZCFceDgwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2
ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAg
ICAgICAgICAgKCdceDgxXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI1Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZCcsIHBheWxvYWQpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZWRpdW1fbWVzc2FnZShzZWxmKToK
LSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCgnXHg4MVx4ZmVceDAwXHg3ZScsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ICAgIHBheWxvYWQgPSAnYScgKiAoKDEgPDwgMTYpIC0gMSkKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZlXHhmZlx4ZmYnLCBwYXlsb2FkKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbGFyZ2VfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5
bG9hZCA9ICdhJyAqICgxIDw8IDE2KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KAotICAgICAgICAgICAgKCdceDgxXHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAw
JywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xlbmd0aF9u
b3RfZW5jb2RlZF91c2luZ19taW5pbWFsX251bWJlcl9vZl9ieXRlcyhzZWxmKToKLSAgICAgICAg
IyBMb2cgd2FybmluZyBvbiByZWNlaXZpbmcgYmFkIHBheWxvYWQgbGVuZ3RoIGZpZWxkIHRoYXQg
ZG9lc24ndCB1c2UKLSAgICAgICAgIyBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBidXQgY29udGlu
dWUgcHJvY2Vzc2luZy4KLQotICAgICAgICBwYXlsb2FkID0gJ2EnCi0gICAgICAgICMgMSBieXRl
IGNhbiBiZSByZXByZXNlbnRlZCB3aXRob3V0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGZpZWxk
LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDgx
XHhmZlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxJywgcGF5bG9hZCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceDgzJywgJ1x4ZTZceDljXHhhYycp
KQotICAgICAgICAjIFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04Ci0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29k
ZShzZWxmKToKLSAgICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04Lgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ODInLCAnXHg4MFx4ODEn
KSkKLSAgICAgICAgIyBJbnZhbGlkIGNoYXJhY3RlcnMgc2hvdWxkIHJhaXNlIEludmFsaWRVVEY4
RXhjZXB0aW9uCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRVVEY4RXhjZXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVf
ZnJhZ21lbnRzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAg
ICAgICAgICAgKCdceDAxXHg4NScsICdIZWxsbycpLAotICAgICAgICAgICAgKCdceDAwXHg4MScs
ICcgJyksCi0gICAgICAgICAgICAoJ1x4MDBceDg1JywgJ1dvcmxkJyksCi0gICAgICAgICAgICAo
J1x4ODBceDgxJywgJyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQh
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX2ZyYWdtZW50c191bmljb2RlKHNlbGYpOgotICAgICAgICAjIFVURi04IGVuY29kZXMgVSs2
ZjIyIGludG8gZTZiY2EyIGFuZCBVKzViNTcgaW50byBlNWFkOTcuCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDgyJywgJ1x4ZTZceGJjJyks
Ci0gICAgICAgICAgICAoJ1x4MDBceDgyJywgJ1x4YTJceGU1JyksCi0gICAgICAgICAgICAoJ1x4
ODBceDgyJywgJ1x4YWRceDk3JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdTZmMjJc
dTViNTcnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfZnJhZ21lbnRzX2ltbWVkaWF0ZV96ZXJvX3Rlcm1pbmF0aW9uKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4Yycs
ICdIZWxsbyBXb3JsZCEnKSwgKCdceDgwXHg4MCcsICcnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8gV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19kdXBsaWNhdGVfc3RhcnQoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDg1
JywgJ0hlbGxvJyksICgnXHgwMVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfaW50ZXJtZWRpYXRl
X2J1dF9ub3Rfc3RhcnRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgoJ1x4MDBceDg1JywgJ0hlbGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0
aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2VuZF9idXRfbm90X3N0YXJ0ZWQoc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgwXHg4NScsICdIZWxs
bycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2Vw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX21lc3NhZ2VfZGlzY2FyZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgKLSAgICAgICAgICAgICgnXHg4Zlx4ODYnLCAnSUdOT1JFJyksICgnXHg4MVx4ODUnLCAn
SGVsbG8nKSwKLSAgICAgICAgICAgICgnXHg4Zlx4ODknLCAnRElTUkVHQVJEJyksICgnXHg4MVx4
ODYnLCAnV29ybGQhJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuVW5zdXBw
b3J0ZWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG1zZ3V0aWwuVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsIHJlcXVlc3QpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3Qp
KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9jbG9zZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OFx4OGEnLCBzdHJ1Y3QucGFjaygn
IUgnLCAxMDAwKSArICdHb29kIGJ5ZScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEwMDAsIHJlcXVlc3Qud3NfY2xvc2VfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnR29vZCBieWUnLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbikKLQotICAgIGRlZiB0ZXN0X3Nl
bmRfbG9uZ2VzdF9jbG9zZShzZWxmKToKLSAgICAgICAgcmVhc29uID0gJ2EnICogMTIzCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODhceGZkJywK
LSAgICAgICAgICAgICBzdHJ1Y3QucGFjaygnIUgnLCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9T
VVJFKSArIHJlYXNvbikpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rp
b24oY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZWFzb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVx
dWVzdC53c19jbG9zZV9jb2RlLCBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uLCByZWFzb24pCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2Nsb3NlX3Rvb19sb25nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5CYWRP
cGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbS5jbG9z
ZV9jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VS
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EnICogMTI0KQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9jbG9zZV9pbmNvbnNpc3RlbnRfY29kZV9hbmRfcmVhc29uKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgIyByZWFzb24gcGFyYW1ldGVyIG11
c3Qgbm90IGJlIHNwZWNpZmllZCB3aGVuIGNvZGUgaXMgTm9uZS4KLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2EnKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5n
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ0hlbGxvIFdvcmxkIScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ODlceDBjSGVsbG8gV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5k
X2xvbmdlc3RfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdhJyAqIDEyNSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4N2QnICsgJ2EnICogMTI1LAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfcGluZ190b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9u
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnNlbmRfcGluZywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2EnICogMTI2KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBwaW5nIGNvbnRyb2wgZnJhbWUuIiIiCi0KLSAgICAg
ICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVzc2FnZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LmNh
bGxlZCA9IFRydWUKLQotICAgICAgICAjIFN0cmVhbSBhdXRvbWF0aWNhbGx5IHJlc3BvbmQgdG8g
cGluZyB3aXRoIHBvbmcgd2l0aG91dCBhbnkgYWN0aW9uCi0gICAgICAgICMgYnkgYXBwbGljYXRp
b24gbGF5ZXIuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAg
ICAoJ1x4ODlceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4YVx4MDVIZWxsbycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceDg1Jywg
J0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5vbl9waW5n
X2hhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy
ZXF1ZXN0LmNhbGxlZCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbG9uZ2VzdF9waW5nKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg5
XHhmZCcsICdhJyAqIDEyNSksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4YVx4N2QnICsgJ2EnICogMTI1LAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfcGluZ190b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODlceGZlXHgwMFx4N2UnLCAnYScgKiAxMjYpKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3Bvbmcoc2Vs
Zik6Ci0gICAgICAgICIiIlRlc3RzIHJlY2VpdmluZyBhIHBvbmcgY29udHJvbCBmcmFtZS4iIiIK
LQotICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCBtZXNzYWdlKToKLSAgICAgICAgICAgIHJl
cXVlc3QuY2FsbGVkID0gVHJ1ZQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
Ci0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29ybGQn
KSkKLSAgICAgICAgcmVxdWVzdC5vbl9wb25nX2hhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ODlceDA1SGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgIyBWYWxpZCBwb25nIGlzIHJlY2VpdmVk
LCBidXQgcmVjZWl2ZV9tZXNzYWdlIHdvbid0IHJldHVybiBmb3IgaXQuCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0g
ICAgICAgICMgQ2hlY2sgdGhhdCBub3RoaW5nIHdhcyB3cml0dGVuIGFmdGVyIHJlY2VpdmVfbWVz
c2FnZSBjYWxsLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhlbGxvJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QuY2FsbGVkKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV91bnNvbGljaXRlZF9wb25nKHNlbGYpOgotICAgICAgICAjIFVuc29saWNpdGVk
IHBvbmcgaXMgYWxsb3dlZCBmcm9tIEh5QmkgMDcuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUn
LCAnV29ybGQnKSkKLSAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkKLQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhhXHg4
NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9waW5nKHJlcXVlc3QsICdKdW1ibycpCi0gICAgICAgICMgQm9keSBtaXNtYXRjaC4KLSAgICAg
ICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3Bpbmdf
Y2Fubm90X2JlX2ZyYWdtZW50ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoKCdceDA5XHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyht
c2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QpCi0KLSAgICBkZWYgdGVzdF9waW5nX3dpdGhfdG9vX2xvbmdfcGF5bG9hZChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODlceGZlXHgwMVx4MDAnLCAnYScg
KiAyNTYpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3Nh
Z2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLQotY2xhc3MgRGVmbGF0
ZUZyYW1lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZm9yIGNoZWNraW5n
IGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
KHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAg
ICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dC
SVRTKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29t
bW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVl
c3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVs
bG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0g
ICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihj
b21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0K
LSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0g
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZV9iZmluYWwoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAg
ICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAg
ICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yID0gcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29yc1swXQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5zZXRfYmZpbmFsKFRydWUp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgZXhwZWN0
ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvICsgY2hy
KDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8p
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3NlZF93b3JsZCArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAn
XHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21w
cmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdl
X2NvbXBfYml0KHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0g
ICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXps
aWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2Zy
YW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4o
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
cHJvY2Vzc29yID0gcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBkZWZsYXRlX2Zy
YW1lX3Byb2Nlc3Nvci5kaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgZGVmbGF0ZV9mcmFt
ZV9wcm9jZXNzb3IuZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKCkKLSAgICAgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBleHBlY3RlZCA9ICcn
Ci0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycp
Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0K
LSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGV4cGVjdGVkICs9
ICdceDgxXHgwNUhlbGxvJwotCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hl
bGxvID0gY29tcHJlc3NlZF8ybmRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhj
MSVjJyAlIGxlbihjb21wcmVzc2VkXzJuZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29t
cHJlc3NlZF8ybmRfaGVsbG8KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21l
c3NhZ2Vfbm9fY29udGV4dF90YWtlb3Zlcl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGNvbXBy
ZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2Vv
dmVyJywgTm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAg
ICAgICAgZm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3Nh
Z2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzc2VkX21lc3NhZ2UgPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX21lc3NhZ2UgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfbWVzc2Fn
ZSA9IGNvbXByZXNzZWRfbWVzc2FnZVs6LTRdCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycg
JSBsZW4oY29tcHJlc3NlZF9tZXNzYWdlKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2Vk
X21lc3NhZ2UKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgZXhwZWN0
ZWQgKyBleHBlY3RlZCArIGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdF9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0cyB0aGF0IGlmIHRoZXJlJ3MgYW55dGhpbmcgd3Jvbmcgd2l0aCBkZWZsYXRlLWZy
YW1lIGV4dGVuc2lvbgotICAgICAgICByZXF1ZXN0LCBkZWZsYXRlLWZyYW1lIGlzIHJlamVjdGVk
LgotICAgICAgICAiIiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBtYXhfd2lu
ZG93X2JpdHMgbGVzcyB0aGFuIDggaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9w
YXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICc3JykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIG1heF93aW5kb3dfYml0cyBncmVhdGVyIHRoYW4g
MTUgaXMgaWxsZWdhbC4KLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5k
b3dfYml0cycsICcxNicpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lv
blByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJv
Y2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgICAgICBleHRlbnNpb24gPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
LSAgICAgICAgIyBOb24gaW50ZWdlciBtYXhfd2luZG93X2JpdHMgaXMgaWxsZWdhbC4KLSAgICAg
ICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICdmb29iYXInKQot
ICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5z
aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgbm9fY29u
dGV4dF90YWtlb3ZlciBtdXN0IG5vdCBoYXZlIGFueSB2YWx1ZS4KLSAgICAgICAgZXh0ZW5zaW9u
LmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCAnZm9vYmFyJykKLSAgICAgICAg
cHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpKQotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2VfcGFyYW1ldGVycyhzZWxmKToKLSAgICAg
ICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9G
UkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lv
blByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfcmVzcG9uc2Vfd2lu
ZG93X2JpdHMoOCkKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5oYXNfcGFyYW1ldGVy
KCdtYXhfd2luZG93X2JpdHMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnOCcsIHJlc3Bv
bnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21heF93aW5kb3dfYml0cycpKQotCi0gICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVf
RVhURU5TSU9OKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9j
ZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X3Jlc3BvbnNlX25vX2NvbnRl
eHRfdGFrZW92ZXIoVHJ1ZSkKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5oYXNfcGFy
YW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgK
LSAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ25vX2NvbnRleHRfdGFr
ZW92ZXInKSBpcyBOb25lKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNz
ZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRf
aGVsbG8pCi0KLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgPSBjb21wcmVzcy5jb21wcmVz
cygnV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gJ1x4
MDAnCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd2Vic29ja2V0
KSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dlYnNvY2tl
dCkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQn
KQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRd
Ci0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4
MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAg
ICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJp
KHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0g
ICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV9tZXNzYWdlX2NsaWVudF91c2luZ19zbWFsbGVyX3dpbmRvdyhzZWxmKToKLSAg
ICAgICAgIiIiVGVzdCB0aGF0IGZyYW1lcyBjb21pbmcgZnJvbSBhIGNsaWVudCB3aGljaCBpcyB1
c2luZyBzbWFsbGVyIHdpbmRvdwotICAgICAgICBzaXplIHRoYXQgdGhlIHNlcnZlciBhcmUgY29y
cmVjdGx5IHJlY2VpdmVkLgotICAgICAgICAiIiIKLQotICAgICAgICAjIFVzaW5nIHRoZSBzbWFs
bGVzdCB3aW5kb3cgYml0cyBvZiA4IGZvciBnZW5lcmF0aW5nIGlucHV0IGZyYW1lcy4KLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC04KQotCi0gICAgICAgIGRhdGEgPSAnJwot
Ci0gICAgICAgICMgVXNlIGEgZnJhbWUgd2hvc2UgY29udGVudCBpcyBiaWdnZXIgdGhhbiB0aGUg
Y2xpZW50cycgREVGTEFURSB3aW5kb3cKLSAgICAgICAgIyBzaXplIGJlZm9yZSBjb21wcmVzc2lv
bi4gVGhlIGNvbnRlbnQgbWFpbmx5IGNvbnNpc3RzIG9mICdhJyBidXQKLSAgICAgICAgIyByZXBl
dGl0aW9uIG9mICdiJyBpcyBwdXQgYXQgdGhlIGhlYWQgYW5kIHRhaWwgc28gdGhhdCBpZiB0aGUg
d2luZG93Ci0gICAgICAgICMgc2l6ZSBpcyBiaWcsIHRoZSBoZWFkIGlzIGJhY2stcmVmZXJlbmNl
ZCBidXQgaWYgc21hbGwsIG5vdC4KLSAgICAgICAgcGF5bG9hZCA9ICdiJyAqIDY0ICsgJ2EnICog
MTAyNCArICdiJyAqIDY0Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21w
cmVzcyhwYXlsb2FkKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Nl
ZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRf
aGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVs
bG8pCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScg
KyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5z
aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3Nh
Z2VfY29tcF9iaXQoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhj
MSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9t
YXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBkYXRhICs9ICdceDgxXHg4NScg
KyBfbWFza19oeWJpKCdIZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvICs9
IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkXzJu
ZF9oZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhj
MSVjJyAlIChsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSAr
PSBfbWFza19oeWJpKGNvbXByZXNzZWRfMm5kX2hlbGxvKQotCi0gICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAg
ICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIGZv
ciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X21lc3NhZ2VfdmFyaW91c19idHlwZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBk
YXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAg
IGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgIGNvbXByZXNz
ZWRfd2Vic29ja2V0ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcpCi0gICAgICAgIGNv
bXByZXNzZWRfd2Vic29ja2V0ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9ICdceDAwJwotICAgICAgICBkYXRhICs9ICdceGMx
JWMnICUgKGxlbihjb21wcmVzc2VkX3dlYnNvY2tldCkgfCAweDgwKQotICAgICAgICBkYXRhICs9
IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93ZWJzb2NrZXQpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkX3dv
cmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3Js
ZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMn
ICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tf
aHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAg
ZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSAr
ICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9m
cmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8n
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnV2ViU29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5z
aW9uLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBleHRl
bnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1v
bi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9k
ZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXBy
ZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCA9ICdceGMxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9lbXB0eV9tZXNzYWdlKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0IHRoYXQgYW4gZW1wdHkgbWVzc2FnZSBpcyBjb21wcmVzc2VkIGNvcnJlY3RseS4i
IiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAg
ICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnKQotCi0gICAgICAgICMgUGF5bG9hZCBpbiBi
aW5hcnk6IDBiMDAwMDAwMTAgMGIwMDAwMDAwMAotICAgICAgICAjIEZyb20gTFNCLAotICAgICAg
ICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFICgw
MSB0aGF0IG1lYW5zIGZpeGVkIEh1ZmZtYW4pCi0gICAgICAgICMgLSA3IGJpdHMgb2YgdGhlIGZp
cnN0IGNvZGUgKDAwMDAwMDAgdGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlCi0gICAgICAgICMgICBl
bmQtb2YtYmxvY2spCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMg
LSAyIGJpdHMgb2YgQlRZUEUgKG5vIGNvbXByZXNzaW9uKQotICAgICAgICAjIC0gMyBiaXRzIG9m
IHBhZGRpbmcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMVx4MDJceDAyXHgwMCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3dpdGhfbnVsbF9jaGFyYWN0ZXIoc2VsZik6
Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIHNpbXBsZSBwYXlsb2FkIChvbmUgbnVsbCkgaXMgZnJh
bWVkIGNvcnJlY3RseS4iIiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQotCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdceDAwJykKLQotICAg
ICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAwYjAxMTAwMDEwIDBiMDAwMDAwMDAgMGIwMDAwMDAw
MAotICAgICAgICAjIEZyb20gTFNCLAotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQot
ICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFICgwMSB0aGF0IG1lYW5zIGZpeGVkIEh1ZmZtYW4p
Ci0gICAgICAgICMgLSA4IGJpdHMgb2YgdGhlIGZpcnN0IGNvZGUgKDAwMTEwMDAwIHRoYXQgaXMg
dGhlIGNvZGUgZm9yIHRoZSBsaXRlcmFsCi0gICAgICAgICMgICBhbHBoYWJldCAweDAwKQotICAg
ICAgICAjIC0gNyBiaXRzIG9mIHRoZSBzZWNvbmQgY29kZSAoMDAwMDAwMCB0aGF0IGlzIHRoZSBj
b2RlIGZvciB0aGUKLSAgICAgICAgIyAgIGVuZC1vZi1ibG9jaykKLSAgICAgICAgIyAtIDEgYml0
IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAobm8gY29tcHJlc3Np
b24pCi0gICAgICAgICMgLSAyIGJpdHMgb2YgcGFkZGluZwotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdceGMxXHgwM1x4NjJceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF90d29f
bWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJ
T04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAg
ICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0g
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgY29tcHJlc3Mg
PSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXhwZWN0
ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxs
b1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVs
bG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21w
cmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJl
c3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBleHBlY3Rl
ZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCAr
PSBjb21wcmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX2ZyYWdtZW50ZWQoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRl
bnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVu
ZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0dvb2RieWUn
LCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3Js
ZCcpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRf
aGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29t
cHJlc3NlZF9nb29kYnllID0gY29tcHJlc3MuY29tcHJlc3MoJ0dvb2RieWUnKQotICAgICAgICBj
b21wcmVzc2VkX2dvb2RieWUgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGV4cGVjdGVkICs9ICdceDAwJWMnICUgbGVuKGNvbXByZXNzZWRfZ29vZGJ5ZSkKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9nb29kYnllCi0gICAgICAgIGNvbXByZXNzZWRf
d29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dv
cmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVz
c2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdc
eDgwJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXBy
ZXNzZWRfd29ybGQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2Zy
YWdtZW50ZWRfZW1wdHlfZmlyc3RfZnJhbWUoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Rf
ZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVx
dWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcn
LCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxs
bycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnJykK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxv
KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIGNvbXByZXNz
ZWRfZW1wdHkgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
X2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9
ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkpCi0gICAgICAgIGV4cGVjdGVkICs9IGNv
bXByZXNzZWRfZW1wdHkKLSAgICAgICAgcHJpbnQgJyVyJyAlIGV4cGVjdGVkCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkX2VtcHR5X2xhc3RfZnJh
bWUoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Ci0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycpCi0KLSAgICAgICAgY29tcHJlc3Mg
PSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBl
Y3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNz
LmNvbXByZXNzKCcnKQotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3Nl
ZF9lbXB0eVs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNz
ZWRfZW1wdHkpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfZW1wdHkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VzaW5nX3NtYWxsX3dpbmRvdyhzZWxm
KToKLSAgICAgICAgY29tbW9uX3BhcnQgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0g
ICAgICAgIHRlc3RfbWVzc2FnZSA9IGNvbW1vbl9wYXJ0ICsgJy0nICogMzAwMDAgKyBjb21tb25f
cGFydAotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0g
ICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzgn
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAg
ICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCB0ZXN0X21lc3NhZ2UpCi0KLSAgICAg
ICAgZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplID0gMgotICAgICAgICBleHBlY3RlZF93
ZWJzb2NrZXRfcGF5bG9hZF9zaXplID0gOTEKLQotICAgICAgICBhY3R1YWxfZnJhbWUgPSByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemUgKwotICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgbGVuKGFjdHVhbF9mcmFtZSkpCi0gICAgICAgIGFjdHVhbF9oZWFkZXIgPSBhY3R1YWxfZnJh
bWVbMDpleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3NpemVdCi0gICAgICAgIGFjdHVhbF9wYXls
b2FkID0gYWN0dWFsX2ZyYW1lW2V4cGVjdGVkX3dlYnNvY2tldF9oZWFkZXJfc2l6ZTpdCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAnXHhjMSVjJyAlIGV4cGVj
dGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUsIGFjdHVhbF9oZWFkZXIpCi0gICAgICAgIGRlY29t
cHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmooLTgpCi0gICAgICAgIGRlY29tcHJlc3NlZF9tZXNz
YWdlID0gZGVjb21wcmVzcy5kZWNvbXByZXNzKAotICAgICAgICAgICAgICAgIGFjdHVhbF9wYXls
b2FkICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQotICAgICAgICBkZWNvbXByZXNzZWRfbWVzc2FnZSAr
PSBkZWNvbXByZXNzLmZsdXNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X21lc3Nh
Z2UsIGRlY29tcHJlc3NlZF9tZXNzYWdlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxl
bihkZWNvbXByZXNzLnVudXNlZF9kYXRhKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBs
ZW4oZGVjb21wcmVzcy51bmNvbnN1bWVkX3RhaWwpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNz
YWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5Q
RVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFt
ZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3IgaSBpbiB4cmFu
Z2UoMyk6Ci0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8n
LCBlbmQ9RmFsc2UpCi0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
SGVsbG8nLCBlbmQ9VHJ1ZSkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBmaXJzdF9oZWxsbyA9IGNvbXByZXNzLmNv
bXByZXNzKCdIZWxsbycpCi0gICAgICAgIGZpcnN0X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGZpcnN0
X2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBmaXJzdF9oZWxsbwotICAgICAgICBzZWNvbmRf
aGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBzZWNvbmRfaGVsbG8g
Kz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIHNlY29uZF9oZWxs
byA9IHNlY29uZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVu
KHNlY29uZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gc2Vjb25kX2hlbGxvCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVk
ICsgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWRfYmZpbmFsKHNl
bGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAg
ICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0g
ICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0uc2V0X2JmaW5hbChUcnVl
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFs
c2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIGVuZD1U
cnVlKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxp
Yi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsbyArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHg0MSVjJyAl
IGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hl
bGxvCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcp
Ci0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklT
SCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkK
LSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgPSAnXHhj
MSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9t
YXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAg
ICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAw
MCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRF
TlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAot
ICAgICAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lv
bikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
X3JhbmRvbV9zZWN0aW9uKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgYSBjb21wcmVzc2Vk
IG1lc3NhZ2UgZnJhZ21lbnRlZCBpbnRvIGxvdHMgb2YgY2h1bmtzIGlzCi0gICAgICAgIGNvcnJl
Y3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQot
ICAgICAgICBwYXlsb2FkID0gJycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRp
bnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLQotICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lP
TiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX3Bh
eWxvYWQgPSBjb21wcmVzcy5jb21wcmVzcyhwYXlsb2FkKQotICAgICAgICBjb21wcmVzc2VkX3Bh
eWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRfcGF5bG9hZFs6LTRdCi0KLSAgICAgICAgIyBGcmFn
bWVudCB0aGUgY29tcHJlc3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBmcmFtZXMuCi0gICAgICAg
IGJ5dGVzX2NodW5rZWQgPSAwCi0gICAgICAgIGRhdGEgPSAnJwotICAgICAgICBmcmFtZV9jb3Vu
dCA9IDAKLQotICAgICAgICBjaHVua19zaXplcyA9IFtdCi0KLSAgICAgICAgd2hpbGUgYnl0ZXNf
Y2h1bmtlZCA8IGxlbihjb21wcmVzc2VkX3BheWxvYWQpOgotICAgICAgICAgICAgIyBNYWtlIHN1
cmUgdGhhdAotICAgICAgICAgICAgIyAtIHRoZSBsZW5ndGggb2YgY2h1bmtzIGFyZSBlcXVhbCBv
ciBsZXNzIHRoYW4gMTI1IHNvIHRoYXQgd2UgY2FuCi0gICAgICAgICAgICAjICAgdXNlIDEgb2N0
ZXQgbGVuZ3RoIGhlYWRlciBmb3JtYXQgZm9yIGFsbCBmcmFtZXMuCi0gICAgICAgICAgICAjIC0g
YXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVhdGVkLgotICAgICAgICAgICAgY2h1bmtfc2l6ZSA9
IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAgICAgIDEsIG1pbigxMjUsCi0gICAgICAgICAg
ICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3BheWxvYWQpIC8gMTAsCi0gICAgICAgICAgICAg
ICAgICAgICAgIGxlbihjb21wcmVzc2VkX3BheWxvYWQpIC0gYnl0ZXNfY2h1bmtlZCkpCi0gICAg
ICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6ZSkKLSAgICAgICAgICAgIGNodW5r
ID0gY29tcHJlc3NlZF9wYXlsb2FkWwotICAgICAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQ6Ynl0
ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCi0gICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNo
dW5rX3NpemUKLQotICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSAweDAwCi0gICAgICAgICAgICBp
ZiBsZW4oZGF0YSkgPT0gMDoKLSAgICAgICAgICAgICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29j
dGV0IHwgMHg0MgotICAgICAgICAgICAgaWYgYnl0ZXNfY2h1bmtlZCA9PSBsZW4oY29tcHJlc3Nl
ZF9wYXlsb2FkKToKLSAgICAgICAgICAgICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwg
MHg4MAotCi0gICAgICAgICAgICBkYXRhICs9ICclYyVjJyAlIChmaXJzdF9vY3RldCwgY2h1bmtf
c2l6ZSB8IDB4ODApCi0gICAgICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY2h1bmspCi0KLSAg
ICAgICAgICAgIGZyYW1lX2NvdW50ICs9IDEKLQotICAgICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6
ICVyIiAlIGNodW5rX3NpemVzCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6
ZXMpID4gMTApCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4
XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykK
LQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAg
ICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAgY29t
cHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAg
ZGF0YSA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNz
KCdIZWxsb1dlYlNvY2tldCcpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgc3BsaXRfcG9zaXRpb24gPSBsZW4oY29tcHJlc3Nl
ZF9oZWxsbykgLyAyCi0gICAgICAgIGRhdGEgKz0gJ1x4NDElYycgJSAoc3BsaXRfcG9zaXRpb24g
fCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsb1s6c3Bs
aXRfcG9zaXRpb25dKQotCi0gICAgICAgIGRhdGEgKz0gJ1x4ODAlYycgJSAoKGxlbihjb21wcmVz
c2VkX2hlbGxvKSAtIHNwbGl0X3Bvc2l0aW9uKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21h
c2tfaHliaShjb21wcmVzc2VkX2hlbGxvW3NwbGl0X3Bvc2l0aW9uOl0pCi0KLSAgICAgICAgY29t
cHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNv
bXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0
YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBk
YXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZy
YW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2so
JyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVG
TEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9y
YXdkYXRhKAotICAgICAgICAgICAgICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0
PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG9XZWJTb2NrZXQnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX21peGVkX2J0eXBlKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0IHRoYXQgYSBtZXNzYWdlIGNvbXByZXNzZWQgdXNpbmcgbG90cyBvZiBERUZMQVRF
IGJsb2NrcyB3aXRoCi0gICAgICAgIHZhcmlvdXMgZmx1c2ggbW9kZSBpcyBjb3JyZWN0bHkgcmVj
ZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAgICAgICAg
cGF5bG9hZCA9ICcnLmpvaW4oCi0gICAgICAgICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1
NSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0KLSAgICAgICAgY29tcHJlc3MgPSBOb25lCi0K
LSAgICAgICAgIyBGcmFnbWVudCB0aGUgY29tcHJlc3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBm
cmFtZXMuCi0gICAgICAgIGJ5dGVzX2NodW5rZWQgPSAwCi0gICAgICAgIGNvbXByZXNzZWRfcGF5
bG9hZCA9ICcnCi0KLSAgICAgICAgY2h1bmtfc2l6ZXMgPSBbXQotICAgICAgICBtZXRob2RzID0g
W10KLSAgICAgICAgc3luY191c2VkID0gRmFsc2UKLSAgICAgICAgZmluaXNoX3VzZWQgPSBGYWxz
ZQotCi0gICAgICAgIHdoaWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4ocGF5bG9hZCk6Ci0gICAgICAg
ICAgICAjIE1ha2Ugc3VyZSBhdCBsZWFzdCAxMCBjaHVua3MgYXJlIGNyZWF0ZWQuCi0gICAgICAg
ICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCi0gICAgICAgICAgICAgICAgMSwgbWlu
KDEwMCwgbGVuKHBheWxvYWQpIC0gYnl0ZXNfY2h1bmtlZCkpCi0gICAgICAgICAgICBjaHVua19z
aXplcy5hcHBlbmQoY2h1bmtfc2l6ZSkKLSAgICAgICAgICAgIGNodW5rID0gcGF5bG9hZFtieXRl
c19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotCi0gICAgICAgICAgICBieXRl
c19jaHVua2VkICs9IGNodW5rX3NpemUKLQotICAgICAgICAgICAgaWYgY29tcHJlc3MgaXMgTm9u
ZToKLSAgICAgICAgICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAg
ICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAotICAgICAgICAgICAgICAg
ICAgICB6bGliLkRFRkxBVEVELAotICAgICAgICAgICAgICAgICAgICAtemxpYi5NQVhfV0JJVFMp
Ci0KLSAgICAgICAgICAgIGlmIGJ5dGVzX2NodW5rZWQgPT0gbGVuKHBheWxvYWQpOgotICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykK
LSAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCi0gICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29t
cHJlc3NlZF9wYXlsb2FkWzotNF0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
bWV0aG9kID0gcmFuZG9tLnJhbmRpbnQoMCwgMSkKLSAgICAgICAgICAgICAgICBtZXRob2RzLmFw
cGVuZChtZXRob2QpCi0gICAgICAgICAgICAgICAgaWYgbWV0aG9kID09IDA6Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykK
LSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICAgICAgICAgICAgICBzeW5jX3VzZWQgPSBUcnVl
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9w
YXlsb2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNodW5rKQotICAgICAgICAgICAgICAgICAgICBj
b21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAg
ICAgICAgICAgICAgICAgY29tcHJlc3MgPSBOb25lCi0gICAgICAgICAgICAgICAgICAgIGZpbmlz
aF91c2VkID0gVHJ1ZQotCi0gICAgICAgIHByaW50ICJDaHVuayBzaXplczogJXIiICUgY2h1bmtf
c2l6ZXMKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXplcykgPiAxMCkKLSAg
ICAgICAgcHJpbnQgIk1ldGhvZHM6ICVyIiAlIG1ldGhvZHMKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHN5bmNfdXNlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbmlzaF91c2VkKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxMjUgPCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjb21wcmVzc2VkX3BheWxvYWQpIDwgNjU1MzYpCi0g
ICAgICAgIGRhdGEgPSAnXHhjMlx4ZmUnICsgc3RydWN0LnBhY2soJyFIJywgbGVuKGNvbXByZXNz
ZWRfcGF5bG9hZCkpCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3BheWxv
YWQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScg
KyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAg
Y29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgcGVybWVzc2Fn
ZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBh
eWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQot
Y2xhc3MgUGVyTWVzc2FnZUNvbXByZXNzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIi
VGVzdHMgZm9yIGNoZWNraW5nIHBlcm1lc3NhZ2UtY29tcHJlc3Npb24gZXh0ZW5zaW9uLiIiIgot
Ci0gICAgZGVmIHRlc3RfZGVmbGF0ZV9yZXNwb25zZV9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgY29t
bW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24u
YWRkX3BhcmFtZXRlcignbWV0aG9kJywgJ2RlZmxhdGUnKQotICAgICAgICBwcm9jZXNzb3IgPSBQ
ZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBy
ZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9u
c2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWV0aG9kJykpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIo
J21ldGhvZCcsICdkZWZsYXRlJykKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZUNvbXBy
ZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLQotICAgICAgICBkZWYgX2NvbXByZXNz
aW9uX3Byb2Nlc3Nvcl9ob29rKGNvbXByZXNzaW9uX3Byb2Nlc3Nvcik6Ci0gICAgICAgICAgICBj
b21wcmVzc2lvbl9wcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoOCkKLSAgICAg
ICAgICAgIGNvbXByZXNzaW9uX3Byb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXIoVHJ1ZSkKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9v
aygKLSAgICAgICAgICAgIF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vaykKLSAgICAgICAgcmVz
cG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAnZGVmbGF0ZTsgY2xpZW50X21heF93aW5kb3dfYml0
cz04OyBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicsCi0gICAgICAgICAgICByZXNwb25zZS5n
ZXRfcGFyYW1ldGVyX3ZhbHVlKCdtZXRob2QnKSkKLQotCi1jbGFzcyBNZXNzYWdlVGVzdEhpeGll
NzUodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBkcmFmdC1oaXhpZS10aGV3
ZWJzb2NrZXRwcm90b2NvbC03NiBzdHJlYW0gY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5k
X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3
NSgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBIZWxsb1x4ZmYnLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfdW5pY29kZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQotICAgICAgICAjIFUrNjVl
NSBpcyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4MDBceGU2XHg5N1x4YTVceGZmJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgn
XHgwMEhlbGxvXHhmZlx4MDBXb3JsZCFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwXHhlNlx4OWNceGFjXHhmZicpCi0g
ICAgICAgICMgVSs2NzJjIGlzIGVuY29kZWQgYXMgZTYsOWMsYWMgaW4gVVRGLTgKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh1J1x1NjcyYycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Vycm9uZW91c191bmljb2RlKHNl
bGYpOgotICAgICAgICAjIFx4ODAgYW5kIFx4ODEgYXJlIGludmFsaWQgYXMgVVRGLTguCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ODBceDgxXHhmZicp
Ci0gICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoCi0g
ICAgICAgICMgVStmZmZkIFJFUExBQ0VNRU5UIENIQVJBQ1RFUgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHUnXHVmZmZkXHVmZmZkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGlzY2FyZChzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDgwXHgwNklHTk9SRVx4MDBIZWxs
b1x4ZmYnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHgwMURJ
U1JFR0FSRFx4ZmZceDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hl
bGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0K
LWNsYXNzIE1lc3NhZ2VSZWNlaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRl
c3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVJlY2VpdmVyLiIiIgotCi0gICAgZGVm
IHRlc3RfcXVldWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3Jl
cXVlc3QoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVl
c3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZlX25v
d2FpdCgpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFceDg2
JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
byEnLCByZWNlaXZlci5yZWNlaXZlKCkpCi0KLSAgICBkZWYgdGVzdF9vbm1lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIG9ubWVzc2FnZV9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYg
b25tZXNzYWdlX2hhbmRsZXIobWVzc2FnZSk6Ci0gICAgICAgICAgICBvbm1lc3NhZ2VfcXVldWUu
cHV0KG1lc3NhZ2UpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVz
dCgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCwg
b25tZXNzYWdlX2hhbmRsZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygnXHg4MVx4ODYnICsgX21hc2tfaHliaSgnSGVsbG8hJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvIScsIG9ubWVzc2FnZV9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNzYWdl
UmVjZWl2ZXJIaXhpZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhl
IFN0cmVhbUhpeGllNzUgY2xhc3MgdXNpbmcgTWVzc2FnZVJlY2VpdmVyLiIiIgotCi0gICAgZGVm
IHRlc3RfcXVldWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3Jl
cXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2
ZXIocmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlY2VpdmVyLnJl
Y2VpdmVfbm93YWl0KCkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygn
XHgwMEhlbGxvIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCByZWNl
aXZlci5yZWNlaXZlKCkpCi0KLSAgICBkZWYgdGVzdF9vbm1lc3NhZ2Uoc2VsZik6Ci0gICAgICAg
IG9ubWVzc2FnZV9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgb25tZXNzYWdl
X2hhbmRsZXIobWVzc2FnZSk6Ci0gICAgICAgICAgICBvbm1lc3NhZ2VfcXVldWUucHV0KG1lc3Nh
Z2UpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1
KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0LCBv
bm1lc3NhZ2VfaGFuZGxlcikKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KCdceDAwSGVsbG8hXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIG9u
bWVzc2FnZV9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNzYWdlU2VuZGVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhlIFN0cmVhbSBjbGFzcyB1c2luZyBNZXNzYWdl
U2VuZGVyLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwuTWVz
c2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kKCdXb3JsZCcpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1V29ybGQnLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX25vd2FpdChzZWxmKToKLSAgICAg
ICAgIyBVc2UgYSBxdWV1ZSB0byBjaGVjayB0aGUgYnl0ZXMgd3JpdHRlbiBieSBNZXNzYWdlU2Vu
ZGVyLgotICAgICAgICAjIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSBjYW5ub3Qg
YmUgdXNlZCBoZXJlIGJlY2F1c2UKLSAgICAgICAgIyBNZXNzYWdlU2VuZGVyIHJ1bnMgaW4gYSBz
ZXBhcmF0ZSB0aHJlYWQuCi0gICAgICAgIHNlbmRfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAg
ICAgICAgZGVmIHdyaXRlKGJ5dGVzKToKLSAgICAgICAgICAgIHNlbmRfcXVldWUucHV0KGJ5dGVz
KQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQotCi0gICAgICAgIHNlbmRlciA9IG1z
Z3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kX25vd2Fp
dCgnSGVsbG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4MDVIZWxsbycsIHNlbmRfcXVldWUuZ2V0KCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1V29ybGQnLCBzZW5kX3F1ZXVlLmdldCgpKQot
Ci0KLWNsYXNzIE1lc3NhZ2VTZW5kZXJIaXhpZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiVGVzdHMgdGhlIFN0cmVhbUhpeGllNzUgY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRlci4i
IiIKLQotICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwuTWVz
c2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kKCdXb3JsZCcpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX25vd2FpdChzZWxmKToKLSAgICAg
ICAgIyBVc2UgYSBxdWV1ZSB0byBjaGVjayB0aGUgYnl0ZXMgd3JpdHRlbiBieSBNZXNzYWdlU2Vu
ZGVyLgotICAgICAgICAjIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSBjYW5ub3Qg
YmUgdXNlZCBoZXJlIGJlY2F1c2UKLSAgICAgICAgIyBNZXNzYWdlU2VuZGVyIHJ1bnMgaW4gYSBz
ZXBhcmF0ZSB0aHJlYWQuCi0gICAgICAgIHNlbmRfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAg
ICAgICAgZGVmIHdyaXRlKGJ5dGVzKToKLSAgICAgICAgICAgIHNlbmRfcXVldWUucHV0KGJ5dGVz
KQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSA9IHdyaXRlCi0KLSAgICAgICAgc2Vu
ZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0KLSAgICAgICAgc2VuZGVyLnNl
bmRfbm93YWl0KCdIZWxsbycpCi0gICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgnV29ybGQnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgc2VuZF9xdWV1ZS5nZXQo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFdvcmxkXHhmZicsIHNlbmRfcXVldWUu
Z2V0KCkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWlu
KCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dF9tdXgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXV4LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkNDU5ODk0NGUwODdjYmQyYzJiMmNlMmE0YjA4OWFhZmQ3YTMzNGMyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9tdXgucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDg5ICswLDAgQEAKLSMhL3Vzci9iaW4v
ZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG11eCBtb2R1
bGUuIiIiCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0IGNvcHkKLWltcG9ydCBsb2dnaW5nCi1pbXBv
cnQgb3B0cGFyc2UKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAot
aW1wb3J0IHRpbWUKLWltcG9ydCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRl
IHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXV4
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJt
aW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0
IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1f
aHliaSBpbXBvcnQgRnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVh
bU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRl
X2JpbmFyeV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBj
cmVhdGVfY2xvc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgcGFyc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVu
c2lvbnMgaW1wb3J0IE11eEV4dGVuc2lvblByb2Nlc3NvcgotCi0KLWltcG9ydCBtb2NrCi0KLQot
X1RFU1RfSEVBREVSUyA9IHsnSG9zdCc6ICdzZXJ2ZXIuZXhhbXBsZS5jb20nLAotICAgICAgICAg
ICAgICAgICAnVXBncmFkZSc6ICd3ZWJzb2NrZXQnLAotICAgICAgICAgICAgICAgICAnQ29ubmVj
dGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Jzog
J2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PScsCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LVZlcnNpb24nOiAnMTMnLAotICAgICAgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9l
eGFtcGxlLmNvbSd9Ci0KLQotY2xhc3MgX091dGdvaW5nQ2hhbm5lbERhdGEob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQotICAgICAg
ICBzZWxmLmNvbnRyb2xfbWVzc2FnZXMgPSBbXQotCi0gICAgICAgIHNlbGYuYnVpbGRlciA9IG11
eC5fSW5uZXJNZXNzYWdlQnVpbGRlcigpCi0KLWNsYXNzIF9Nb2NrTXV4Q29ubmVjdGlvbihtb2Nr
Lk1vY2tCbG9ja2luZ0Nvbm4pOgotICAgICIiIk1vY2sgY2xhc3Mgb2YgbW9kX3B5dGhvbiBjb25u
ZWN0aW9uIGZvciBtdXguIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIG1v
Y2suTW9ja0Jsb2NraW5nQ29ubi5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9jb250cm9s
X2Jsb2NrcyA9IFtdCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfZGF0YSA9IHt9Ci0KLSAgICAgICAg
c2VsZi5fY3VycmVudF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21l
bnRzID0gW10KLQotICAgICAgICBzZWxmLnNlcnZlcl9jbG9zZV9jb2RlID0gTm9uZQotCi0gICAg
ZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJPdmVycmlkZSBNb2NrQmxvY2tpbmdD
b25uLndyaXRlLiIiIgotCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZGF0YSA9IGRhdGEKLSAgICAg
ICAgc2VsZi5fcG9zaXRpb24gPSAwCi0KLSAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0
aCk6Ci0gICAgICAgICAgICBpZiBzZWxmLl9wb3NpdGlvbiArIGxlbmd0aCA+IGxlbihzZWxmLl9j
dXJyZW50X2RhdGEpOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVk
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHJlY2VpdmUgJWQgYnl0
ZXMgZnJvbSBlbmNhcHN1bGF0ZWQgJwotICAgICAgICAgICAgICAgICAgICAnZnJhbWUnICUgbGVu
Z3RoKQotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2N1cnJlbnRfZGF0YVtzZWxmLl9wb3NpdGlv
bjpzZWxmLl9wb3NpdGlvbitsZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9wb3NpdGlvbiArPSBs
ZW5ndGgKLSAgICAgICAgICAgIHJldHVybiBkYXRhCi0KLSAgICAgICAgIyBQYXJzZSBwaHlzaWNh
bCBmcmFtZXMgYW5kIGFzc2VtYmxlIGEgbWVzc2FnZSBpZiB0aGUgbWVzc2FnZSBpcwotICAgICAg
ICAjIGZyYWdtZW50ZWQuCi0gICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3Yy
LCByc3YzID0gKAotICAgICAgICAgICAgcGFyc2VfZnJhbWUoX3JlY2VpdmVfYnl0ZXMsIHVubWFz
a19yZWNlaXZlPUZhbHNlKSkKLQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cy5hcHBl
bmQocGF5bG9hZCkKLQotICAgICAgICBpZiBzZWxmLl9jdXJyZW50X29wY29kZSBpcyBOb25lOgot
ICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIGNvbnRpbnVhdGlv
biBvcGNvZGUnKQotICAgICAgICAgICAgc2VsZi5fY3VycmVudF9vcGNvZGUgPSBvcGNvZGUKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxp
ZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQotICAgICAgICBpZiBub3QgZmluOgotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgaW5uZXJfZnJhbWVfZGF0YSA9ICcnLmpvaW4oc2VsZi5fcGVuZGlu
Z19mcmFnbWVudHMpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KLSAgICAg
ICAgc2VsZi5fY3VycmVudF9vcGNvZGUgPSBOb25lCi0KLSAgICAgICAgIyBIYW5kbGUgYSBjb250
cm9sIG1lc3NhZ2Ugb24gdGhlIHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgICMgVE9ETyhiYXNo
aSk6IFN1cHBvcnQgb3RoZXIgb3Bjb2RlcyBpZiBuZWVkZWQuCi0gICAgICAgIGlmIG9wY29kZSA9
PSBjb21tb24uT1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgaWYgbGVuKHBheWxvYWQpID49IDI6
Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2so
JyFIJywgcGF5bG9hZFs6Ml0pWzBdCi0gICAgICAgICAgICBjbG9zZV9ib2R5ID0gY3JlYXRlX2Ns
b3NpbmdfaGFuZHNoYWtlX2JvZHkoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JN
QUxfQ0xPU1VSRSwgJycpCi0gICAgICAgICAgICBjbG9zZV9mcmFtZSA9IGNyZWF0ZV9jbG9zZV9m
cmFtZShjbG9zZV9ib2R5LCBtYXNrPVRydWUpCi0gICAgICAgICAgICBzZWxmLnB1dF9ieXRlcyhj
bG9zZV9mcmFtZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgUGFyc2UgdGhlIHBh
eWxvYWQgb2YgdGhlIG1lc3NhZ2Ugb24gcGh5c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoaW5uZXJfZnJhbWVfZGF0YSkKLSAgICAgICAg
Y2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBpZiBjaGFubmVs
X2lkID09IG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgc2VsZi5fY29udHJv
bF9ibG9ja3MuZXh0ZW5kKGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9jaGFu
bmVsX2RhdGE6Ci0gICAgICAgICAgICBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0gPSBf
T3V0Z29pbmdDaGFubmVsRGF0YSgpCi0gICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2NoYW5u
ZWxfZGF0YVtjaGFubmVsX2lkXQotCi0gICAgICAgICMgUGFyc2UgbG9naWNhbCBmcmFtZXMgYW5k
IGFzc2VtYmxlIGFuIGlubmVyIChsb2dpY2FsKSBtZXNzYWdlLgotICAgICAgICAoaW5uZXJfZmlu
LCBpbm5lcl9yc3YxLCBpbm5lcl9yc3YyLCBpbm5lcl9yc3YzLCBpbm5lcl9vcGNvZGUsCi0gICAg
ICAgICBpbm5lcl9wYXlsb2FkKSA9IHBhcnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKLSAgICAgICAg
aW5uZXJfZnJhbWUgPSBGcmFtZShpbm5lcl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIsIGlu
bmVyX3JzdjMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfb3Bjb2RlLCBpbm5l
cl9wYXlsb2FkKQotICAgICAgICBtZXNzYWdlID0gY2hhbm5lbF9kYXRhLmJ1aWxkZXIuYnVpbGQo
aW5uZXJfZnJhbWUpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJl
dHVybgotCi0gICAgICAgIGlmIChtZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX1RFWFQg
b3IKLSAgICAgICAgICAgIG1lc3NhZ2Uub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZKToK
LSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZS5wYXlsb2Fk
KQotCi0gICAgICAgICAgICBzZWxmLm9uX2RhdGFfbWVzc2FnZShtZXNzYWdlLnBheWxvYWQpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEuY29udHJvbF9tZXNzYWdlcy5h
cHBlbmQoCi0gICAgICAgICAgICAgICAgeydvcGNvZGUnOiBtZXNzYWdlLm9wY29kZSwKLSAgICAg
ICAgICAgICAgICAgJ21lc3NhZ2UnOiBtZXNzYWdlLnBheWxvYWR9KQotCi0gICAgZGVmIG9uX2Rh
dGFfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fY29udHJv
bF9ibG9ja3MKLQotICAgIGRlZiBnZXRfd3JpdHRlbl9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lk
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5tZXNzYWdl
cwotCi0gICAgZGVmIGdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9p
ZCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0uY29udHJv
bF9tZXNzYWdlcwotCi0KLWNsYXNzIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24oX01vY2tNdXhDb25u
ZWN0aW9uKToKLSAgICAiIiJTcGVjaWNpYWxpemVkIHZlcnNpb24gb2YgX01vY2tNdXhDb25uZWN0
aW9uLiBJdHMgd3JpdGUoKSBtZXRob2QgcmFpc2VzCi0gICAgYW4gZXhjZXB0aW9uIGZvciB0ZXN0
aW5nIHdoZW4gYSBkYXRhIG1lc3NhZ2UgaXMgd3JpdHRlbi4KLSAgICAiIiIKLQotICAgIGRlZiBv
bl9kYXRhX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIHRvIHJh
aXNlIGFuIGV4Y2VwdGlvbi4iIiIKLQotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlv
bmFsIGZhaWx1cmUnKQotCi0KLWNsYXNzIF9DaGFubmVsRXZlbnQob2JqZWN0KToKLSAgICAiIiJB
IHN0cnVjdHVyZSB0aGF0IHJlY29yZHMgY2hhbm5lbCBldmVudHMuIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IE5vbmUKLSAgICAgICAgc2VsZi5t
ZXNzYWdlcyA9IFtdCi0gICAgICAgIHNlbGYuZXhjZXB0aW9uID0gTm9uZQotICAgICAgICBzZWxm
LmNsaWVudF9pbml0aWF0ZWRfY2xvc2luZyA9IEZhbHNlCi0KLQotY2xhc3MgX011eE1vY2tEaXNw
YXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiTW9jayBjbGFzcyBvZiBkaXNwYXRjaC5EaXNwYXRjaGVy
IGZvciBtdXguIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuY2hh
bm5lbF9ldmVudHMgPSB7fQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCByZXF1
ZXN0KToKLSAgICAgICAgaWYgcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IHJlcXVlc3Qud3NfcmVxdWVz
dGVkX3Byb3RvY29sc1swXQotCi0gICAgZGVmIF9kb19lY2hvKHNlbGYsIHJlcXVlc3QsIGNoYW5u
ZWxfZXZlbnRzKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBy
ZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgaWYgbWVzc2Fn
ZSA9PSBOb25lOgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZXZlbnRzLmNsaWVudF9pbml0aWF0
ZWRfY2xvc2luZyA9IFRydWUKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGlm
IG1lc3NhZ2UgPT0gJ0dvb2RieWUnOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAg
ICAgY2hhbm5lbF9ldmVudHMubWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCi0gICAgICAgICAgICAj
IGVjaG8gYmFjawotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1l
c3NhZ2UpCi0KLSAgICBkZWYgX2RvX3Bpbmcoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMp
OgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLQotICAgIGRl
ZiBfZG9fcGluZ193aGlsZV9oZWxsb193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50
cyk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5k
PUZhbHNlKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLSAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkK
LQotICAgIGRlZiBfZG9fdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwg
Y2hhbm5lbF9ldmVudHMpOgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2Uo
J0hlbGxvICcsIGVuZD1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5n
KCdQaW5nIScpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUG9uZyEnKQot
ICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVl
KQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIHNlbGYu
Y2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSA9IF9DaGFubmVsRXZlbnQoKQotICAg
ICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0ucmVxdWVzdCA9IHJl
cXVlc3QKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIE5vdGU6IG1vcmUgaGFuZGxlciB3
aWxsIGJlIGFkZGVkLgotICAgICAgICAgICAgaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ2VjaG8n
KToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19lY2hvKHJlcXVlc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0p
Ci0gICAgICAgICAgICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nJyk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fZG9fcGluZyhyZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAgICAgICAg
ICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgndHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQn
KToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb190d29fcGluZ193aGlsZV9oZWxsb193b3JsZCgK
LSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0
LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGlu
Z193aGlsZV9oZWxsb193b3JsZCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX3Bpbmdfd2hp
bGVfaGVsbG9fd29ybGQoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5l
bF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVl
c3QucGF0aCkKLSAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgot
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAg
ICAgICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQot
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2
ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlvbiA9IGUKLSAgICAgICAgICAgIHJhaXNl
Ci0KLQotZGVmIF9jcmVhdGVfbW9ja19yZXF1ZXN0KGNvbm5lY3Rpb249Tm9uZSwgbG9naWNhbF9j
aGFubmVsX2V4dGVuc2lvbnM9Tm9uZSk6Ci0gICAgaWYgY29ubmVjdGlvbiBpcyBOb25lOgotICAg
ICAgICBjb25uZWN0aW9uID0gX01vY2tNdXhDb25uZWN0aW9uKCkKLQotICAgIHJlcXVlc3QgPSBt
b2NrLk1vY2tSZXF1ZXN0KHVyaT0nL2VjaG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlYWRlcnNfaW49X1RFU1RfSEVBREVSUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25uZWN0aW9uPWNvbm5lY3Rpb24pCi0gICAgcmVxdWVzdC53c19zdHJlYW0gPSBTdHJl
YW0ocmVxdWVzdCwgb3B0aW9ucz1TdHJlYW1PcHRpb25zKCkpCi0gICAgcmVxdWVzdC5tdXhfcHJv
Y2Vzc29yID0gTXV4RXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKLSAgICBpZiBsb2dpY2FsX2NoYW5uZWxf
ZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToKLSAgICAgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNl
dF9leHRlbnNpb25zKGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zKQotICAgIHJlcXVlc3QubXV4
X3Byb2Nlc3Nvci5zZXRfcXVvdGEoOCAqIDEwMjQpCi0gICAgcmV0dXJuIHJlcXVlc3QKLQotCi1k
ZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKGNoYW5uZWxfaWQsIGVuY29kaW5n
LCBlbmNvZGVkX2hhbmRzaGFrZSk6Ci0gICAgIyBBbGxvdyBpbnZhbGlkIGVuY29kaW5nIGZvciB0
ZXN0aW5nLgotICAgIGZpcnN0X2J5dGUgPSAoKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVFVRVNUIDw8IDUpIHwgZW5jb2RpbmcpCi0gICAgcGF5bG9hZCA9IChjaHIoZmlyc3RfYnl0ZSkg
KwotICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0g
ICAgICAgICAgICAgICBtdXguX2VuY29kZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkg
KwotICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgcmV0dXJuIGNyZWF0ZV9i
aW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJP
TF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfZHJv
cF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAg
cGF5bG9hZCA9IG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNz
YWdlKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNv
ZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1U
cnVlKQotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkLCByZXBs
ZW5pc2hlZF9xdW90YSk6Ci0gICAgcGF5bG9hZCA9IG11eC5fY3JlYXRlX2Zsb3dfY29udHJvbChj
aGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSkKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9m
cmFtZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5O
RUxfSUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQsIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsIHJzdjE9RmFsc2UsIHJzdjI9RmFsc2Us
IHJzdjM9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSk6Ci0gICAg
Yml0cyA9IGNocigoZmluIDw8IDcpIHwgKHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3Yz
IDw8IDQpIHwgb3Bjb2RlKQotICAgIHBheWxvYWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNo
YW5uZWxfaWQpICsgYml0cyArIG1lc3NhZ2UKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFt
ZShwYXlsb2FkLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nLCBleHRlbnNpb25zPU5vbmUpOgotICAgIGhlYWRlcnMgPSAoCi0gICAgICAgICdH
RVQgJXMgSFRUUC8xLjFcclxuJwotICAgICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJc
bicKLSAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAnT3JpZ2luOiBo
dHRwOi8vZXhhbXBsZS5jb21cclxuJykgJSBwYXRoCi0gICAgaWYgZXh0ZW5zaW9uczoKLSAgICAg
ICAgaGVhZGVycyArPSAnJXM6ICVzJyAlICgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09D
S0VUX0VYVEVOU0lPTlNfSEVBREVSLCBleHRlbnNpb25zKQotICAgIHJldHVybiBoZWFkZXJzCi0K
LQotY2xhc3MgTXV4VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBm
b3IgbXV4IG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfZGVjb2RlKHNlbGYp
OgotICAgICAgICBkYXRhID0gJ1x4MDBceDAxXHhiZlx4ZmZceGRmXHhmZlx4ZmZceGZmXHhmZlx4
ZmZceGZmJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRh
KQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMCwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBh
cnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGNoYW5u
ZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDE0IC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAg
Y2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDIgKiogMjEgLSAxLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFy
c2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyOSAt
IDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJz
ZXIuX3JlYWRfcG9zaXRpb24pCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lkX2VuY29kZShzZWxm
KToKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHgwMCcsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXgu
X2VuY29kZV9jaGFubmVsX2lkKDIgKiogMTQgLSAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdceGJmXHhmZicsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFu
bmVsX2lkKDIgKiogMTQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzBAXHgwMCcsIGVu
Y29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEg
LSAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGRmXHhmZlx4ZmYnLCBlbmNvZGVkKQot
ICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDIxKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceGUwIFx4MDBceDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5j
b2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyOSAtIDEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4ZmZceGZmXHhmZlx4ZmYnLCBlbmNvZGVkKQotICAgICAgICAjIGNoYW5u
ZWxfaWQgaXMgdG9vIGxhcmdlCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIDIgKiogMjkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX211bHRp
cGxlX2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICAjIFVzZSBBZGRDaGFubmVsUmVxdWVz
dCBiZWNhdXNlIGl0IGNhbiBjb250YWluIGFyYml0cmFyeSBsZW5ndGggb2YgZGF0YQotICAgICAg
ICBkYXRhID0gKCdceDAwXHgwMVx4MDFhJwotICAgICAgICAgICAgICAgICdceDAwXHgwMlx4N2Ql
cycKLSAgICAgICAgICAgICAgICAnXHgwMFx4MDNceDdlXHhmZlx4ZmYlcycKLSAgICAgICAgICAg
ICAgICAnXHgwMFx4MDRceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAlcycpICUg
KAotICAgICAgICAgICAgJ2EnICogMHg3ZCwgJ2InICogMHhmZmZmLCAnYycgKiAweDEwMDAwKQot
ICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAg
ICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoNCwgbGVuKGJsb2NrcykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzBdLm9wY29kZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzWzBdLmVuY29kZWRfaGFuZHNoYWtlKSkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9S
RVFVRVNULCBibG9ja3NbMV0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJs
b2Nrc1sxXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4N2QsIGxlbihi
bG9ja3NbMV0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1syXS5vcGNvZGUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgYmxvY2tzWzJdLmNoYW5uZWxfaWQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMHhmZmZmLCBsZW4oYmxvY2tzWzJdLmVuY29kZWRfaGFuZHNoYWtl
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5F
TF9SRVFVRVNULCBibG9ja3NbM10ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQs
IGJsb2Nrc1szXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4MTAwMDAs
IGxlbihibG9ja3NbM10uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIuX3JlYWRfcG9zaXRpb24pCi0KLSAgICBkZWYgdGVzdF9y
ZWFkX2FkZF9jaGFubmVsX3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHgwMFx4MDFc
eDAxYScKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkK
LSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNU
LCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1sw
XS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0u
ZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgZGVmIHRlc3RfcmVhZF9kcm9wX2NoYW5uZWwoc2Vs
Zik6Ci0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDFceDAwJwotICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNl
ci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxf
aWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBibG9j
a3NbMF0uZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihibG9ja3Nb
MF0uZHJvcF9tZXNzYWdlKSkKLQotICAgICAgICBkYXRhID0gJ1x4NjBceDAyXHgwOVx4MDNceGU4
U3VjY2VzcycKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0
YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3MpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwMCwgYmxvY2tzWzBdLmRyb3BfY29kZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnU3VjY2VzcycsIGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpCi0KLSAg
ICAgICAgIyBSZWFzb24gaXMgdG9vIHNob3J0LgotICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgw
MVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRy
b2xfYmxvY2tzKCkpKQotCi0gICAgZGVmIHRlc3RfcmVhZF9mbG93X2NvbnRyb2woc2VsZik6Ci0g
ICAgICAgIGRhdGEgPSAnXHg0MFx4MDFceDAyJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZy
YW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFk
X2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nr
cykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCwgYmxv
Y2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3NbMF0uc2Vu
ZF9xdW90YSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfbmV3X2NoYW5uZWxfc2xvdChzZWxmKToKLSAg
ICAgICAgZGF0YSA9ICdceDgwXHgwMVx4MDJceDAyXHgwMycKLSAgICAgICAgcGFyc2VyID0gbXV4
Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1w
bGVtZW50Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25F
cnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFk
X2NvbnRyb2xfYmxvY2tzKCkpKQotCi0gICAgZGVmIHRlc3RfcmVhZF9pbnZhbGlkX251bWJlcl9m
aWVsZF9pbl9jb250cm9sX2Jsb2NrKHNlbGYpOgotICAgICAgICAjIE5vIG51bWJlciBmaWVsZC4K
LSAgICAgICAgZGF0YSA9ICcnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2Fk
UGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNl
ci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBUaGUgbGFzdCB0d28gYnl0ZXMgYXJlIG1pc3Np
bmcuCi0gICAgICAgIGRhdGEgPSAnXHg3ZScKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFt
ZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIE1pc3NpbmcgdGhlIGxhc3Qgb25l
IGJ5dGUuCi0gICAgICAgIGRhdGEgPSAnXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDAn
Ci0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0K
LSAgICAgICAgIyBUaGUgbGVuZ3RoIG9mIG51bWJlciBmaWVsZCBpcyB0b28gbGFyZ2UuCi0gICAg
ICAgIGRhdGEgPSAnXHg3Zlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJwotICAgICAg
ICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAg
ICMgVGhlIG1zYiBvZiB0aGUgZmlyc3QgYnl0ZSBpcyBzZXQuCi0gICAgICAgIGRhdGEgPSAnXHg4
MCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikK
LQotICAgICAgICAjIFVzaW5nIDMgYnl0ZXMgZW5jb2RpbmcgZm9yIDEyNS4KLSAgICAgICAgZGF0
YSA9ICdceDdlXHgwMFx4N2QnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2Fk
UGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNl
ci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBVc2luZyA5IGJ5dGVzIGVuY29kaW5nIGZvciAw
eGZmZmYKLSAgICAgICAgZGF0YSA9ICdceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZlx4
ZmYnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIp
Ci0KLSAgICBkZWYgdGVzdF9yZWFkX2ludmFsaWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6Ci0g
ICAgICAgICMgT25seSBjb250YWluIG51bWJlciBmaWVsZC4KLSAgICAgICAgZGF0YSA9ICdceDAx
JwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5fcmVhZF9zaXplX2FuZF9jb250ZW50cykKLQot
ICAgIGRlZiB0ZXN0X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShzZWxmKToKLSAgICAgICAg
ZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPSdGb29CYXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlamVjdGVkPUZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eDIwXHgwMVx4MDZGb29CYXInLCBkYXRhKQotCi0gICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT0nSGVsbG8nLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVk
PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MzFceDAyXHgwNUhlbGxvJywgZGF0
YSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIGRh
dGEgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZD0xKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDYwXHgwMVx4MDAnLCBkYXRhKQotCi0gICAgICAgIGRhdGEgPSBtdXgu
X2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvZGU9MjAwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdlcnJvcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1x4NjBceDAxXHgwN1x4MDdceGQwZXJyb3InLCBkYXRhKQotCi0gICAgICAgICMgcmVhc29uIG11
c3QgYmUgZW1wdHkgaWYgY29kZSBpcyBOb25lCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fY3JlYXRlX2Ryb3BfY2hh
bm5lbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgTm9uZSwgJ0Zvb0JhcicpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9yZXF1ZXN0X3RleHQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfdGV4
dCA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoKQotICAgICAgICBjb21tYW5kLCBwYXRoLCB2ZXJz
aW9uLCBoZWFkZXJzID0gbXV4Ll9wYXJzZV9yZXF1ZXN0X3RleHQocmVxdWVzdF90ZXh0KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdHRVQnLCBjb21tYW5kKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcvZWNobycsIHBhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hUVFAvMS4x
JywgdmVyc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oaGVhZGVycykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NlcnZlci5leGFtcGxlLmNvbScsIGhlYWRlcnNbJ0hv
c3QnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgaGVh
ZGVyc1snT3JpZ2luJ10pCi0KLQotY2xhc3MgTXV4SGFuZGxlclRlc3QodW5pdHRlc3QuVGVzdENh
c2UpOgotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29k
ZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9j
aGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAot
ICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVz
c2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNo
YW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQotICAgICAgICAjIENoYW5uZWwgMgotICAgICAgICBt
ZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAg
ICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNzYWdlc1swXSkKLSAgICAgICAgY29udHJvbF9ibG9j
a3MgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAg
ICAgICAjIFRoZXJlIHNob3VsZCBiZSA4IGNvbnRyb2wgYmxvY2tzOgotICAgICAgICAjICAgLSAx
IE5ld0NoYW5uZWxTbG90Ci0gICAgICAgICMgICAtIDIgQWRkQ2hhbm5lbFJlc3BvbnNlcyBmb3Ig
Y2hhbm5lbCBpZCAyIGFuZCAzCi0gICAgICAgICMgICAtIDYgRmxvd0NvbnRyb2xzIGZvciBjaGFu
bmVsIGlkIDEgKGluaXRpYWxpemUpLCAnSGVsbG8nLCAnV29ybGQnLAotICAgICAgICAjICAgICBh
bmQgMyAnR29vZGJ5ZSdzCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOSwgbGVuKGNvbnRyb2xf
YmxvY2tzKSkKLQotICAgIGRlZiB0ZXN0X3BoeXNpY2FsX2Nvbm5lY3Rpb25fd3JpdGVfZmFpbHVy
ZShzZWxmKToKLSAgICAgICAgIyBVc2UgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbi4KLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KGNvbm5lY3Rpb249X0ZhaWxPbldyaXRlQ29u
bmVjdGlvbigpKQotCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBMZXQgdGhlIHdvcmtl
ciBlY2hvIGJhY2sgJ0hlbGxvJy4gSXQgY2F1c2VzIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24KLSAg
ICAgICAgIyByYWlzaW5nIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBleGl0LiBU
aGlzIHdpbGwgYmUgdW5uZWNlc3Nhcnkgd2hlbgotICAgICAgICAjIF9Mb2dpY2FsQ29ubmVjdGlv
bi53cml0ZSgpIGlzIGNoYW5nZWQgdG8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmCi0gICAgICAgICMg
d29rZSB1cCBieSBvbl93cml0ZXJfZG9uZS4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBk
b25lLgotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Jsb2NrZWQoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBf
TXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hh
bm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAg
ICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIE9uIHJlY2VpdmluZyB0aGlz
ICdIZWxsbycsIHRoZSBzZXJ2ZXIgdHJpZXMgdG8gZWNobyBiYWNrICdIZWxsbycsCi0gICAgICAg
ICMgYnV0IGl0IHdpbGwgYmUgYmxvY2tlZCBzaW5jZSB0aGVyZSdzIG5vIHNlbmQgcXVvdGEgYXZh
aWxhYmxlIGZvciB0aGUKLSAgICAgICAgIyBjaGFubmVsIDIuCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgV2FpdCB1bnRpbCB0aGUg
d29ya2VyIGlzIGJsb2NrZWQgZHVlIHRvIHNlbmQgcXVvdGEgc2hvcnRhZ2UuCi0gICAgICAgIHRp
bWUuc2xlZXAoMSkKLQotICAgICAgICAjIENsb3NlIHRoZSBjaGFubmVsIDIuIFRoZSB3b3JrZXIg
c2hvdWxkIGJlIG5vdGlmaWVkIG9mIHRoZSBlbmQgb2YKLSAgICAgICAgIyB3cml0ZXIgdGhyZWFk
IGFuZCBzdG9wIHdhaXRpbmcgZm9yIHNlbmQgcXVvdGEgdG8gYmUgcmVwbGVuaXNoZWQuCi0gICAg
ICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9
MikKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkK
LQotICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2hhbm5lbCAxIGlzIGFsc28gY2xvc2VkLgotICAg
ICAgICBkcm9wX2NoYW5uZWwgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lk
PTEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQot
Ci0gICAgICAgICMgQWxsIHRocmVhZHMgc2hvdWxkIGJlIGRvbmUuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgIGRl
ZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2VuY29kaW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEu
MVxyXG5cclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0x
LCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3Nh
Z2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9t
ZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYg
dGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZ19vdmVycmlkZShzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9D
SEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXgu
X0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICAjIE92ZXJyaWRlIFNlYy1XZWJT
b2NrZXQtUHJvdG9jb2wuCi0gICAgICAgIGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxu
JwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJwot
ICAgICAgICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxv
d19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hl
ZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29u
dHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1sw
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgneC1mb28nLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkK
LQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2FmdGVyX2lkZW50aXR5KHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICAjIFNlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wgaXMgZGlmZmVyZW50IGZyb20gY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UK
LSAgICAgICAgIyBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgIyBUT0RPKGJh
c2hpKTogUmVtb3ZlIFVwZ3JhZGUsIENvbm5lY3Rpb24sIFNlYy1XZWJTb2NrZXQtS2V5IGFuZAot
ICAgICAgICAjIFNlYy1XZWJTb2NrZXQtVmVyc2lvbi4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSAoCi0gICAgICAgICAgICAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAg
ICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRl
XHJcbicKLSAgICAgICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAg
ICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAv
MS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5n
PTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0g
X2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
W10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3Nh
Z2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5uZWwgMwotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMgSGFuZHNoYWtlIGJh
c2Ugc2hvdWxkIGJlIHVwZGF0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAneC1mb28nLAotICAgICAgICAgICAgbXV4X2hhbmRsZXIuX2hhbmRzaGFrZV9iYXNlLl9o
ZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10pCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hh
bm5lbF9kZWx0YV9yZW1vdmVfaGVhZGVyKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotICAgICAgICAjIE92ZXJyaWRlIGhhbmRzaGFrZSBkZWx0YSBiYXNlLgotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9ICgKLSAgICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8x
LjFcclxuJwotICAgICAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCi0gICAg
ICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJwotICAgICAgICAgICAg
J0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4
YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFJl
bW92ZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlci4KLSAgICAgICAgZGVsdGEgPSAoJ0dF
VCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sOicKLSAgICAgICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0zLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9
J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcp
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1l
c3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5j
aGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dv
cmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMg
Q2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2Vz
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAg
ICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVz
c2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgJ3gtZm9vJywKLSAgICAgICAg
ICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBk
ZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZ19wZXJtZXNzYWdlX2NvbXByZXNzKHNl
bGYpOgotICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGNvbXByZXNzIGV4dGVuc2lvbiBvbiB0
aGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5lbC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1v
bi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgJyVzOyBtZXRob2Q9ZGVmbGF0ZScgJSBj
b21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRl
bnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNo
ZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVy
LmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxy
XG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29k
ZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yMCkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBT
ZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyBvbiBsb2dpY2FsIGNoYW5uZWwgMSBhbmQgMi4KLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0u
bWVzc2FnZXMpCi0gICAgICAgICMgV3JpdHRlbiAnSGVsbG8ncyBzaG91bGQgYmUgY29tcHJlc3Nl
ZC4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVz
c2FnZXMoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotICAg
ICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYg
dGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZ19yZW1vdmVfZXh0ZW5zaW9ucyhzZWxmKToK
LSAgICAgICAgIyBFbmFibGUgcGVybWVzc2FnZSBjb21wcmVzcyBleHRlbnNpb24gb24gdGhlIGlt
cGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFy
c2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICclczsgbWV0aG9kPWRlZmxhdGUnICUgY29tbW9u
LlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9u
cz1leHRlbnNpb25zKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkK
LSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hl
cikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRf
Y2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1Jf
Q0xJRU5UKQotCi0gICAgICAgICMgUmVtb3ZlIHBlcm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5zaW9u
LgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczpcclxuJwotICAgICAgICAgICAgICAgICAn
XHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVu
Y29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0
ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yMCkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
IyBTZW5kIGNvbXByZXNzZWQgbWVzc2FnZSBvbiBsb2dpY2FsIGNoYW5uZWwgMi4gVGhlIG1lc3Nh
Z2Ugc2hvdWxkCi0gICAgICAgICMgYmUgcmVqZWN0ZWQgKHNpbmNlIHJzdjEgaXMgc2V0KS4KLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29k
ZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG11eC5fRFJPUF9DT0RFX05PUk1BTF9DTE9TVVJFLCBkcm9wX2NoYW5uZWwuZHJvcF9jb2Rl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQot
ICAgICAgICAjIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24gc2hvdWxkIGJlIHJhaXNlZCBvbiBs
b2dpY2FsIGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZGlz
cGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5leGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24pKQotCi0gICAgZGVmIHRl
c3RfYWRkX2NoYW5uZWxfaW52YWxpZF9lbmNvZGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0zLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgK
LSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09E
RV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVf
VU5LTk9XTl9SRVFVRVNUX0VOQ09ESU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bf
Y2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRV
U19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hh
bm5lbF9pbmNvbXBsZXRlX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBpbmNvbXBsZXRlX2VuY29kZWRfaGFuZHNoYWtlID0gJ0dF
VCAvZWNobyBIVFRQLzEuMScKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWluY29tcGxldGVfZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoMSBpbiBkaXNw
YXRjaGVyLmNoYW5uZWxfZXZlbnRzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IDIgaW4g
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50cykKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2R1
cGxpY2F0ZV9jaGFubmVsX2lkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihw
YXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5n
PTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBm
b3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQot
ICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlf
RVhJU1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lO
VF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2Vy
dmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2Ryb3BfY2hhbm5lbChzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFM
X05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBkcm9wX2NoYW5u
ZWwgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTIpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAgICMgVGVy
bWluYXRlIGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGV4Y2VwdGlv
biA9IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0uZXhjZXB0aW9uCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShleGNlcHRpb24uX19jbGFzc19fID09IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nX2ZyYW1lKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAg
ICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09G
X0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11
eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTMpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAg
IHBpbmdfZnJhbWUgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIFdvcmxk
IScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNv
bW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhw
aW5nX2ZyYW1lKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uT1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTMpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBhIHBp
bmcgd2l0aCBtZXNzYWdlICdIZWxsbyB3b3JsZCEnIGluIHR3byBmcmFnbWVudGVkIGZyYW1lcy4K
LSAgICAgICAgcGluZ19mcmFtZTEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdI
ZWxsbyAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49
RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29k
ZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMocGluZ19mcmFtZTEpCi0gICAgICAgIHBpbmdfZnJhbWUyID0gX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMikKLQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBtZXNzYWdlc1swXVsn
b3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1lc3Nh
Z2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50ZWRfcGlu
Z193aGlsZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBt
dXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5O
RUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5J
VElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3Jl
cXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBj
aGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1l
bmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhh
ZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTkpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2Vu
ZCBhIGZyYWdtZW50ZWQgZnJhbWUgb2YgbWVzc2FnZSAnSGVsbG8gJy4KLSAgICAgICAgaGVsbG8g
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoaGVsbG8pCi0KLSAgICAgICAgIyBCZWZvcmUgc2VuZGluZyB0aGUgbGFzdCBm
cmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLCBzZW5kIGEKLSAgICAgICAgIyBmcmFnbWVu
dGVkIHBpbmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGkn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJ
TkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0gICAgICAg
IHBpbmcyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLQotICAgICAgICAjIFNlbmQg
dGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgd29ybGQg
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xf
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdl
cygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJv
bF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1Bpbmch
JywgY29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2
ZV90d29fcGluZ193aGlsZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
ICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVS
X09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjUpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAg
ICAgICMgU2VuZCBhIGZyYWdtZW50ZWQgZnJhbWUgb2YgbWVzc2FnZSAnSGVsbG8gJy4KLSAgICAg
ICAgaGVsbG8gPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoaGVsbG8pCi0KLSAgICAgICAgIyBCZWZvcmUgc2VuZGluZyB0
aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLCBzZW5kIGEKLSAgICAgICAg
IyBmcmFnbWVudGVkIHBpbmcgYW5kIGEgbm9uLWZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAgcGlu
ZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLSAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2Rl
PWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKHBpbmcyKQotICAgICAgICBwaW5nMyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1BvbmchJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRy
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24u
T1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzMp
Ci0KLSAgICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3Nh
Z2UuCi0gICAgICAgIHdvcmxkID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQhJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh3b3JsZCkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdl
cygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2Vz
KQotICAgICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
T1BDT0RFX1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcsIGNvbnRyb2xfbWVzc2Fn
ZXNbMV1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQb25nIScsIGNvbnRy
b2xfbWVzc2FnZXNbMV1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2Fn
ZV93aGlsZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBm
cmFnbWVudGVkIHBpbmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT0nUGknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BD
T0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0K
LSAgICAgICAgIyBCZWZvcmUgc2VuZGluZyB0aGUgbGFzdCBmcmFnbWVudGVkIHBpbmcsIHNlbmQg
YSBtZXNzYWdlLgotICAgICAgICAjIFRoZSBsb2dpY2FsIGNoYW5uZWwgKDIpIHNob3VsZCBiZSBk
cm9wcGVkLgotICAgICAgICBtZXNzYWdlID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdI
ZWxsbyB3b3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bj1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKG1lc3NhZ2UpCi0K
LSAgICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2Uu
Ci0gICAgICAgIHBpbmcyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElP
TikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAg
aWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgIyBObyBt
ZXNzYWdlIHNob3VsZCBiZSBzZW50IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoS2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAyKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJ
QUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAg
ICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJh
bWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29u
dHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVv
dGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wp
Ci0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVv
dXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5P
UENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9zZW5k
X2ZyYWdtZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
cGF0aD0nL3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICAjIFJlcGxlbmlzaCAzIGJ5dGVzLiBUaGlzIGlzbid0IGVub3VnaCB0byBzZW5k
IHRoZSB3aG9sZSBwaW5nIGZyYW1lCi0gICAgICAgICMgYmVjYXVzZSB0aGUgZnJhbWUgd2lsbCBo
YXZlIDUgYnl0ZXMgbWVzc2FnZSgnUGluZyEnKS4gVGhlIGZyYW1lCi0gICAgICAgICMgc2hvdWxk
IGJlIGZyYWdtZW50ZWQuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBXYWl0IHVudGls
IHRoZSB3b3JrZXIgaXMgYmxvY2tlZCBkdWUgdG8gc2VuZCBxdW90YSBzaG9ydGFnZS4KLSAgICAg
ICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAyICsgMSBi
eXRlcyAoaW5jbHVkaW5nIGV4dHJhIGNvc3QpLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0g
ICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcs
IG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEn
LCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVk
X3Bpbmdfd2hpbGVfc2VuZGluZ19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKAotICAgICAgICAgICAgcGF0aD0nL3Bpbmdfd2hpbGVfaGVs
bG9fd29ybGQnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKLSAgICAgICAgIyAtIHRleHQgbWVzc2Fn
ZSAnSGVsbG8gJyB3aXRoIGZpbj0wCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1BpbmchJyBtZXNz
YWdlCi0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQotICAgICAg
ICAjIFJlcGxlbmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBwaW5nIHdp
bGwgYmUKLSAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAg
ICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9MTApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQotCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxl
bmlzaCByZW1haW5pbmcgMyArIDYgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9OSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAg
ICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMo
MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykK
LSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9Q
Q09ERV9QSU5HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfdHdvX3Bpbmdfd2hpbGVfc2VuZGluZ19mcmFnbWVu
dGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKAotICAg
ICAgICAgICAgcGF0aD0nL3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBBcHBsaWNhdGlvbiB3
aWxsIHNlbmQ6Ci0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ0hlbGxvICcgd2l0aCBmaW49MAot
ICAgICAgICAjIC0gcGluZyB3aXRoICdQaW5nIScgbWVzc2FnZQotICAgICAgICAjIC0gcGluZyB3
aXRoICdQb25nIScgbWVzc2FnZQotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdXb3JsZCEnIHdp
dGggZmluPTEKLSAgICAgICAgIyBSZXBsZW5pc2ggKDYgKyAxKSArICgyICsgMSkgYnl0ZXMgc28g
dGhhdCB0aGUgZmlyc3QgcGluZyB3aWxsIGJlCi0gICAgICAgICMgZnJhZ21lbnRlZCBvbiB0aGUg
bG9naWNhbCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEwKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICB0aW1lLnNsZWVw
KDEpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDMgKyAoNSArIDEpICsgNiBieXRl
cy4gVGhlIHNlY29uZCBwaW5nIHdvbid0Ci0gICAgICAgICMgYmUgZnJhZ21lbnRlZCBvbiB0aGUg
bG9naWNhbCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE1KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBj
b250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcs
IGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVzc2FnZXNbMV1bJ29wY29k
ZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQb25nIScsIGNvbnRyb2xfbWVzc2FnZXNb
MV1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZHJvcF9jaGFubmVsKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotCi0gICAgICAgICMgRHJvcENoYW5uZWwgZm9yIGNoYW5uZWwgaWQgMSB3aGljaCBkb2Vzbid0
IGhhdmUgcmVhc29uLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBc
eDYwXHgwMVx4MDAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0g
ICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0FD
S05PV0xFREdFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9j
b2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lk
KQotCi0gICAgZGVmIHRlc3RfdHdvX2Zsb3dfY29udHJvbChzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVM
X1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJ
QUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVh
dGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1
ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hh
bm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5j
b2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRk
X2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFJlcGxlbmlzaCA1IGJ5dGVzLgotICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCAxMCBieXRlcy4gVGhlIHNlcnZlciB3aWxsIHRy
eSBlY2hvIGJhY2sgMTAgYnl0ZXMuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNz
YWdlPSdIZWxsb1dvcmxkJykpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggNSArIDEgKHBlci1tZXNz
YWdlIGV4dHJhIGNvc3QpIGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsb1dvcmxkJ10sIG1lc3NhZ2VzKQotICAgICAgICByZWNl
aXZlZF9mbG93X2NvbnRyb2xzID0gWwotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCBhbmQgYi5jaGFubmVsX2lkID09
IDJdCi0gICAgICAgICMgUmVwbGVuaXNobWVudCBmb3IgJ0hlbGxvV29ybGQnICsgMQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDExLCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVv
dGEpCi0gICAgICAgICMgUmVwbGVuaXNobWVudCBmb3IgJ0dvb2RieWUnICsgMQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDgsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMV0uc2VuZF9xdW90YSkK
LQotICAgIGRlZiB0ZXN0X25vX3NlbmRfcXVvdGFfb25fc2VydmVyKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdIZWxsb1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICAjIEp1c3Qgd2FpdCBmb3IgMSBzZWMgc28gdGhh
dCB0aGUgc2VydmVyIGF0dGVtcHRzIHRvIGVjaG8gYmFjawotICAgICAgICAjICdIZWxsb1dvcmxk
Jy4KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0xKSkKLQotICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hh
bm5lbCAyLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAyKQotCi0gICAgZGVmIHRlc3Rfbm9fc2VuZF9xdW90
YV9vbl9zZXJ2ZXJfZm9yX3Blcm1lc3NhZ2VfZXh0cmFfY29zdChzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAg
bXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9j
cmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgIyBSZXBsZW5pc2ggb25s
eSBsZW4oJ1dvcmxkJykgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgICMgU2VydmVy
IHNob3VsZCBub3QgY2FsbGJhY2sgZm9yIHRoaXMgbWVzc2FnZS4KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICAjIEp1c3Qgd2FpdCBmb3IgMSBz
ZWMgc28gdGhhdCB0aGUgc2VydmVyIGF0dGVtcHRzIHRvIGVjaG8gYmFjawotICAgICAgICAjICdX
b3JsZCcuCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MSkpCi0KLSAgICAgICAgIyBPbmx5IG9uZSBtZXNzYWdlIHNob3VsZCBiZSBz
ZW50IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
J10sIG1lc3NhZ2VzKQotCi0gICAgZGVmIHRlc3RfcXVvdGFfdmlvbGF0aW9uX2J5X2NsaWVudChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklU
SUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAwKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdIZWxsb1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgY29udHJvbF9ibG9j
a3MgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDUsIGxlbihjb250cm9sX2Jsb2NrcykpCi0gICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIGNvbnRyb2xfYmxvY2tz
Ci0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklP
TEFUSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUp
Ci0KLSAgICBkZWYgdGVzdF9jb25zdW1lX3F1b3RhX2VtcHR5X21lc3NhZ2Uoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgICMgQ2xpZW50IGhhcyAxIGJ5dGUgcXVvdGEuCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMSkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxlbmlzaGVkX3F1b3RhPTIpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoZmxvd19jb250cm9sKQotICAgICAgICAjIFNlbmQgYW4gZW1wdHkgbWVzc2FnZS4gUHl3ZWJz
b2NrZXQgYWx3YXlzIHJlcGxlbmlzaGVzIDEgYnl0ZSBxdW90YQotICAgICAgICAjIGZvciBlbXB0
eSBtZXNzYWdlCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPScnKSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICAjIFRoaXMgbWVzc2FnZSB2aW9sYXRlcyBxdW90YSBvbiBjaGFubmVsIGlkIDIuCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ubWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBkaXNwYXRjaGVyLmNo
YW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzWzBdKQotCi0gICAgICAgIHJlY2VpdmVkX2Zsb3dfY29u
dHJvbHMgPSBbCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXgu
X01VWF9PUENPREVfRkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVjZWl2ZWRfZmxvd19jb250cm9scykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1swXS5zZW5kX3F1b3Rh
KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGlu
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAg
ICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9OLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0KLSAgICBkZWYg
dGVzdF9jb25zdW1lX3F1b3RhX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAg
IyBDbGllbnQgaGFzIGxlbignSGVsbG8nKSArIGxlbignR29vZGJ5ZScpICsgMiBieXRlcyBxdW90
YS4KLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxNCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9
IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGUnLCBmaW49RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdsbG8nLCBmaW49VHJ1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJ
T04pKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBtZXNzYWdl
cykKLQotICAgIGRlZiB0ZXN0X2ZyYWdtZW50ZWRfY29udHJvbF9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
ICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVS
X09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgUmVwbGVuaXNoIHRvdGFs
IDYgYnl0ZXMgaW4gMyBGbG93Q29udHJvbHMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1lc3NhZ2VzWzBdWydvcGNv
ZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBtZXNzYWdlc1swXVsnbWVz
c2FnZSddKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9zbG90X3Zpb2xhdGlvbl9ieV9jbGllbnQo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKHNsb3RzPTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGE9bXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgIyBUaGlzIHJlcXVl
c3Qgc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVh
dGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1
ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hh
bm5lbF9pZD0zLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5j
b2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRk
X2NoYW5uZWxfcmVxdWVzdCkKLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MywgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNz
YWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
Lmhhc19rZXkoMykpCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBi
IGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcygp
Ci0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1Rf
VklPTEFUSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2Nv
ZGUpCi0KLSAgICBkZWYgdGVzdF9xdW90YV9vdmVyZmxvd19ieV9jbGllbnQoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKHNsb3RzPTEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGE9bXV4Ll9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0gICAgICAgICMgUmVwbGVuaXNoIDB4N0ZGRkZGRkZGRkZGRkZGRiBieXRlcyB0
d2ljZS4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90
YT0weDdGRkZGRkZGRkZGRkZGRkYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoZmxvd19jb250cm9sKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZs
b3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAg
ICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9i
bG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1Bf
Q0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5l
bF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RB
X09WRVJGTE9XLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2Nv
ZGUpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX2VuY2Fwc3VsYXRlZF9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotCi0gICAgICAgIGZpcnN0X2J5dGUgPSAobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JF
UVVFU1QgPDwgNSkKLSAgICAgICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAg
ICAgICAgICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgxKSArCi0gICAgICAgICAgICAgICAgIG11
eC5fZW5jb2RlX251bWJlcigwKSkKLSAgICAgICAgcGF5bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5u
ZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgYmxvY2sKLSAgICAgICAgdGV4dF9mcmFt
ZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUocGF5bG9hZCwgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVY
VCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHRleHRfZnJhbWUpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGlu
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAg
ICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19N
RVNTQUdFLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lO
VF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2Vy
dmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lkX3RydW5jYXRlZChzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLQotICAgICAgICAjIFRoZSBsYXN0IGJ5dGUgb2YgdGhlIGNoYW5uZWwgaWQgaXMgbWlz
c2luZy4KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDgwJywgbWFzaz1U
cnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBp
biByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAg
ICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9DSEFOTkVMX0lEX1RSVU5DQVRFRCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9z
ZV9jb2RlKQotCi0gICAgZGVmIHRlc3RfaW5uZXJfZnJhbWVfdHJ1bmNhdGVkKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
Ci0gICAgICAgICMgSnVzdCBjb250YWluIGNoYW5uZWwgaWQgMS4KLSAgICAgICAgZnJhbWUgPSBj
cmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAxJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5u
ZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4
Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXgu
X0RST1BfQ09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVELAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAg
ICBkZWYgdGVzdF91bmtub3duX211eF9vcGNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBVbmRl
ZmluZWQgb3Bjb2RlIDUKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAw
XHhhMCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
cmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAg
ICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxv
Y2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NI
QU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfVU5LTk9XTl9N
VVhfT1BDT0RFLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2Nv
ZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQ
T0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
c2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX211eF9jb250cm9sX2Js
b2NrKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgRHJvcENoYW5uZWwgY29udGFpbnMgMSBieXRlIHJl
YXNvbgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceDYwXHgwMFx4
MDFceDAwJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAg
ICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9i
bG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1Bf
Q0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5l
bC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRF
Uk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9wZXJtZXNzYWdlX2Nv
bXByZXNzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAg
ICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5zaW9uIG9uIGxvZ2ljYWwgY2hh
bm5lbCAyLgotICAgICAgICBleHRlbnNpb25zID0gJyVzOyBtZXRob2Q9ZGVmbGF0ZScgJSAoCi0g
ICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0gICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNo
bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBjb21wcmVzc2Vk
ICdIZWxsbycgdHdpY2UuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xID0gY29tcHJlc3MuY29tcHJl
c3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xID0gY29tcHJlc3Nl
ZF9oZWxsbzFbOi00XQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21w
cmVzc2VkX2hlbGxvMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRy
dWUpKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxs
bycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8yICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiA9IGNvbXByZXNzZWRfaGVsbG8y
WzotNF0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9o
ZWxsbzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nLCAnSGVsbG8nXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAg
ICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNvbXByZXNzZWQuCi0gICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21wcmVzc2VkX2hlbGxvMSwgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbzIsIG1lc3NhZ2VzWzFdKQotCi0KLSAgICBkZWYgdGVz
dF9wZXJtZXNzYWdlX2NvbXByZXNzX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAg
ZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgJyVzOyBt
ZXRob2Q9ZGVmbGF0ZScgJSBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04p
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAgICAgICAgIGxv
Z2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJf
T0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNz
ZWQgJ0hlbGxvSGVsbG9IZWxsbycgYXMgZnJhZ21lbnRlZCBtZXNzYWdlLgotICAgICAgICBjb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvSGVsbG9IZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLQotICAgICAg
ICBtID0gbGVuKGNvbXByZXNzZWRfaGVsbG8pIC8gMgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbXByZXNz
ZWRfaGVsbG9bOm1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxz
ZSwgcnN2MT1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
b21tb24uT1BDT0RFX1RFWFQpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG9bbTpd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLCByc3YxPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RF
X0NPTlRJTlVBVElPTikpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
SGVsbG9IZWxsbyddLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxv
LCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfYmFkX2ZyYWdtZW50ZWRfbWVz
c2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4
Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8n
KQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAj
IFNlbmQgYSBmcmFtZSB3aXRoIGZpbj1GYWxzZSwgYW5kIHRoZW4gc2VuZCBhIGZyYW1lIHdpdGgK
LSAgICAgICAgIyBvcGNvZGU9VEVYVCAobm90IENPTlRJTlVBVElPTikuIExvZ2ljYWwgY2hhbm5l
bCAyIHNob3VsZCBiZSBkcm9wcGVkLgotICAgICAgICBmcmFtZTEgPSBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT0nSGVsbG8gJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZT1jb21tb24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZnJhbWUxKQotICAgICAgICBmcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1U
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFt
ZTIpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rp
bmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBvcGNvZGU9Q09OVElOVUFUSU9OIHdpdGhv
dXQgYSBwcmVjZWRpbmcgZnJhbWUKLSAgICAgICAgIyB0aGUgZmluIG9mIHdoaWNoIGlzIG5vdCBz
ZXQuIExvZ2ljYWwgY2hhbm5lbCAzIHNob3VsZCBiZSBkcm9wcGVkLgotICAgICAgICBmcmFtZTMg
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8nLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUzKQotCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTQsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZy
YW1lIHdpdGggb3Bjb2RlPVBJTkcgYW5kIGZpbj1GYWxzZSwgYW5kIHRoZW4gc2VuZCBhIGZyYW1l
Ci0gICAgICAgICMgd2l0aCBvcGNvZGU9VEVYVCAobm90IENPTlRJTlVBVElPTikuIExvZ2ljYWwg
Y2hhbm5lbCA0IHNob3VsZCBiZQotICAgICAgICAjIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lNCA9
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaW5nJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWU0KQotICAgICAgICBmcmFtZTUgPSBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT0nSGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZyYW1lNSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWxzID0gWwotICAg
ICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJv
bF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RS
T1BfQ0hBTk5FTF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oZHJvcF9jaGFubmVs
cykpCi0gICAgICAgIGZvciBkIGluIGRyb3BfY2hhbm5lbHM6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0JBRF9GUkFHTUVOVEFUSU9OLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkLmRyb3BfY29kZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9z
dHJlYW0ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxYWNmZWIwNDhkM2IyMDMy
YTc5NDhjZmEyYWRlYTdjZTY0Zjk1YWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbS5weQorKysgL2Rldi9udWxs
CkBAIC0xLDc3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0
ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBt
b2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCi0KLQotY2xhc3MgU3RyZWFt
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Igc3RyZWFtIG1v
ZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9oZWFkZXIoc2VsZik6Ci0gICAgICAgICMg
bW9yZSwgcnN2MSwgLi4uLCByc3Y0IGFyZSBhbGwgdHJ1ZQotICAgICAgICBoZWFkZXIgPSBzdHJl
YW0uY3JlYXRlX2hlYWRlcihjb21tb24uT1BDT0RFX1RFWFQsIDEsIDEsIDEsIDEsIDEsIDEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZjFceDgxJywgaGVhZGVyKQotCi0gICAgICAgICMg
TWF4aW11bSBwYXlsb2FkIHNpemUKLSAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9oZWFk
ZXIoCi0gICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsICgxIDw8IDYzKSAtIDEsIDAsIDAs
IDAsIDAsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDdmXHg3Zlx4ZmZceGZm
XHhmZlx4ZmZceGZmXHhmZlx4ZmYnLCBoZWFkZXIpCi0KLSAgICAgICAgIyBJbnZhbGlkIG9wY29k
ZSAweDEwCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAweDEwLCAwLCAwLCAwLCAwLCAwLCAwKQotCi0gICAgICAgICMgSW52YWxpZCB2YWx1
ZSAweGYgcGFzc2VkIHRvIG1vcmUgcGFyYW1ldGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVh
ZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDAsIDB4
ZiwgMCwgMCwgMCwgMCkKLQotICAgICAgICAjIFRvbyBsb25nIHBheWxvYWRfbGVuZ3RoCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb21t
b24uT1BDT0RFX1RFWFQsIDEgPDwgNjMsIDAsIDAsIDAsIDAsIDApCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2E5YWM3MTMwYjczMDRlYjkyZGJiYmMxNTMzYWE0MTU0NWUwMjQ2ZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3Rfc3RyZWFtX2hpeGllNzUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0jIS91
c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBz
dHJlYW0gbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9t
IHRlc3QudGVzdF9tc2d1dGlsIGltcG9ydCBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NQotCi0KLWNs
YXNzIFN0cmVhbUhpeGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0
ZXN0IGZvciBTdHJlYW1IaXhpZTc1IGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfcGF5bG9hZF9s
ZW5ndGgoc2VsZik6Ci0gICAgICAgIGZvciBsZW5ndGgsIGJ5dGVzIGluICgoMCwgJ1x4MDAnKSwg
KDB4N2YsICdceDdmJyksICgweDgwLCAnXHg4MVx4MDAnKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgweDEyMzQsICdceDgwXHhhNFx4MzQnKSk6Ci0gICAgICAgICAgICB0ZXN0X3N0
cmVhbSA9IFN0cmVhbUhpeGllNzUoX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoYnl0ZXMpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBsZW5ndGgsIHRlc3Rf
c3RyZWFtLl9yZWFkX3BheWxvYWRfbGVuZ3RoX2hpeGllNzUoKSkKLQotCi1pZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3V0aWwucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBmNGFiMDU5NjUy
YzU4NjllYzIwNWExMjhkZjkzOTE0Y2E4YzcxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfdXRpbC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDIwMCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJp
Z2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciB1dGlsIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgb3MK
LWltcG9ydCByYW5kb20KLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0
X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1v
ZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1fVEVTVF9EQVRB
X0RJUiA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rlc3RkYXRh
JykKLQotCi1jbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0
dGVzdCBmb3IgdXRpbCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9nZXRfc3RhY2tfdHJhY2Uo
c2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ05vbmVcbicsIHV0aWwuZ2V0X3N0YWNr
X3RyYWNlKCkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGEgPSAxIC8gMCAgIyBJbnRlbnRp
b25hbGx5IHJhaXNlIGV4Y2VwdGlvbi4KLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIHRyYWNlID0gdXRpbC5nZXRfc3RhY2tfdHJhY2UoKQotICAgICAgICAgICAgc2VsZi5m
YWlsVW5sZXNzKHRyYWNlLnN0YXJ0c3dpdGgoJ1RyYWNlYmFjaycpKQotICAgICAgICAgICAgc2Vs
Zi5mYWlsVW5sZXNzKHRyYWNlLmZpbmQoJ1plcm9EaXZpc2lvbkVycm9yJykgIT0gLTEpCi0KLSAg
ICBkZWYgdGVzdF9wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKHNlbGYpOgotICAgICAgICBl
eGMgPSBFeGNlcHRpb24oJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQn
LCBzdHIoZXhjKSkKLSAgICAgICAgdXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKCdI
ZWxsbyAnLCBleGMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkJywgc3Ry
KGV4YykpCi0KLSAgICBkZWYgdGVzdF9nZXRfc2NyaXB0X2ludGVycChzZWxmKToKLSAgICAgICAg
Y3lnd2luX3BhdGggPSAnYzpcXGN5Z3dpblxcYmluJwotICAgICAgICBjeWd3aW5fcGVybCA9IG9z
LnBhdGguam9pbihjeWd3aW5fcGF0aCwgJ3BlcmwnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4o
X1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVT
VF9EQVRBX0RJUiwgJ1JFQURNRScpLCBjeWd3aW5fcGF0aCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJy91c3IvYmluL3BlcmwgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAg
ICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJykpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGN5Z3dpbl9wZXJsICsgJyAtd1QnLCB1dGlsLmdldF9zY3JpcHRf
aW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnaGVsbG8u
cGwnKSwgY3lnd2luX3BhdGgpKQotCi0gICAgZGVmIHRlc3RfaGV4aWZ5KHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCc2MSA3YSA0MSA1YSAzMCAzOSAyMCAwOSAwZCAwYSAwMCBmZics
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5oZXhpZnkoJ2F6QVowOSBcdFxyXG5ceDAw
XHhmZicpKQotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFza2VyVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgUmVwZWF0ZWRYb3JNYXNrZXIgY2xhc3MuIiIiCi0K
LSAgICBkZWYgdGVzdF9tYXNrKHNlbGYpOgotICAgICAgICAjIFNhbXBsZSBpbnB1dCBlNiw5Nyxh
NSBpcyBVKzY1ZTUgaW4gVVRGLTgKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1h
c2tlcignXHhmZlx4ZmZceGZmXHhmZicpCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdc
eGU2XHg5N1x4YTUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDE5XHg2OFx4NWEnLCBy
ZXN1bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHgwMFx4
MDBceDAwXHgwMCcpCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5N1x4YTUn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGU2XHg5N1x4YTUnLCByZXN1bHQpCi0KLSAg
ICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHhlNlx4OTdceGE1XHgyMCcp
Ci0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceGU2XHg5N1x4YTUnKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDAwXHgwMFx4MDAnLCByZXN1bHQpCi0KLSAgICBkZWYgdGVzdF9t
YXNrX3R3aWNlKHNlbGYpOgotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2Vy
KCdceDAwXHg3Zlx4ZmZceDIwJykKLSAgICAgICAgIyBtYXNrWzBdLCBtYXNrWzFdLCAuLi4gd2ls
bCBiZSB1c2VkLgotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHgwMFx4MDBceDAwXHgw
MFx4MDAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwXHg3Zlx4ZmZceDIwXHgwMCcs
IHJlc3VsdCkKLSAgICAgICAgIyBtYXNrWzJdLCBtYXNrWzBdLCAuLi4gd2lsbCBiZSB1c2VkIGZv
ciB0aGUgbmV4dCBjYWxsLgotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHgwMFx4MDBc
eDAwXHgwMFx4MDAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDdmXHhmZlx4MjBceDAw
XHg3ZicsIHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21hc2tfbGFyZ2VfZGF0YShzZWxmKToKLSAg
ICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignbUFTaycpCi0gICAgICAgIG9y
aWdpbmFsID0gJycuam9pbihbY2hyKGkgJSAyNTYpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0g
ICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKG9yaWdpbmFsKQotICAgICAgICBleHBlY3RlZCA9
ICcnLmpvaW4oCi0gICAgICAgICAgICAgICAgW2NocigoaSAlIDI1NikgXiBvcmQoJ21BU2snW2kg
JSA0XSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXhwZWN0ZWQsIHJlc3VsdCkKLQotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFz
a2VyKCdNYVNrJykKLSAgICAgICAgZmlyc3RfcGFydCA9ICdUaGUgV2ViU29ja2V0IFByb3RvY29s
IGVuYWJsZXMgdHdvLXdheSBjb21tdW5pY2F0aW9uLicKLSAgICAgICAgcmVzdWx0ID0gbWFza2Vy
Lm1hc2soZmlyc3RfcGFydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICAgICAnXHgxOVx0NktceDFhXHgwNDE4Ilx4MDI4XHgwZTlBXHgwM1x4MTkiXHgxNTxceDA4Ilxy
c1x4MGUjJwotICAgICAgICAgICAgICAgICdceDAwMVx4MDcoXHgxMnNceDFmOlx4MGV+XHgxYyxc
eDE4c1x4MDgiXHgwYz5ceDFlI1x4MDgwXG45JwotICAgICAgICAgICAgICAgICdceDA4PFx4MDVj
JywKLSAgICAgICAgICAgICAgICByZXN1bHQpCi0gICAgICAgIHNlY29uZF9wYXJ0ID0gJ0l0IGhh
cyB0d28gcGFydHM6IGEgaGFuZHNoYWtlIGFuZCB0aGUgZGF0YSB0cmFuc2Zlci4nCi0gICAgICAg
IHJlc3VsdCA9IG1hc2tlci5tYXNrKHNlY29uZF9wYXJ0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgICAgICIoJ0slXHgwMCBLOVx4MTY8Sz1ceDAwIVx4MWY+W3Ncbm1c
dDJceDA1KVx4MTI7XG4mXHgwNHNcbiMiCi0gICAgICAgICAgICAgICAgIlx4MDVzXHgxZiVceDA0
c1x4MGYsXHgxNTJLOVx4MTMyXHgwNT5ceDA3Nlx4MTljIiwKLSAgICAgICAgICAgICAgICByZXN1
bHQpCi0KLQotZGVmIGdldF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIG1pbl9udW1fY2h1bmtzKToK
LSAgICBjaHVua3MgPSBbXQotICAgIGJ5dGVzX2NodW5rZWQgPSAwCi0KLSAgICB3aGlsZSBieXRl
c19jaHVua2VkIDwgbGVuKHNvdXJjZSk6Ci0gICAgICAgIGNodW5rX3NpemUgPSByYW5kb20ucmFu
ZGludCgKLSAgICAgICAgICAgIDEsCi0gICAgICAgICAgICBtaW4obGVuKHNvdXJjZSkgLyBtaW5f
bnVtX2NodW5rcywgbGVuKHNvdXJjZSkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgY2h1bmsg
PSBzb3VyY2VbYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6ZV0KLSAgICAg
ICAgY2h1bmtzLmFwcGVuZChjaHVuaykKLSAgICAgICAgYnl0ZXNfY2h1bmtlZCArPSBjaHVua19z
aXplCi0KLSAgICByZXR1cm4gY2h1bmtzCi0KLQotY2xhc3MgSW5mbGF0ZXJEZWZsYXRlclRlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIF9JbmZsYXRlciBhbmQg
X0RlZmxhdGVyIGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfaW5mbGF0ZV9kZWZsYXRlX2RlZmF1
bHQoc2VsZik6Ci0gICAgICAgIGlucHV0ID0gYidoZWxsbycgKyAnLScgKiAzMDAwMCArIGInaGVs
bG8nCi0gICAgICAgIGluZmxhdGVyMTUgPSB1dGlsLl9JbmZsYXRlcigxNSkKLSAgICAgICAgZGVm
bGF0ZXIxNSA9IHV0aWwuX0RlZmxhdGVyKDE1KQotICAgICAgICBpbmZsYXRlcjggPSB1dGlsLl9J
bmZsYXRlcig4KQotICAgICAgICBkZWZsYXRlcjggPSB1dGlsLl9EZWZsYXRlcig4KQotCi0gICAg
ICAgIGNvbXByZXNzZWQxNSA9IGRlZmxhdGVyMTUuY29tcHJlc3NfYW5kX2ZpbmlzaChpbnB1dCkK
LSAgICAgICAgY29tcHJlc3NlZDggPSBkZWZsYXRlcjguY29tcHJlc3NfYW5kX2ZpbmlzaChpbnB1
dCkKLQotICAgICAgICBpbmZsYXRlcjE1LmFwcGVuZChjb21wcmVzc2VkMTUpCi0gICAgICAgIGlu
ZmxhdGVyOC5hcHBlbmQoY29tcHJlc3NlZDgpCi0KLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVh
bChjb21wcmVzc2VkMTUsIGNvbXByZXNzZWQ4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlu
cHV0LCBpbmZsYXRlcjE1LmRlY29tcHJlc3MoLTEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGlucHV0LCBpbmZsYXRlcjguZGVjb21wcmVzcygtMSkpCi0KLSAgICBkZWYgdGVzdF9yYW5kb21f
c2VjdGlvbihzZWxmKToKLSAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBzb3VyY2Ug
PSAnJy5qb2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3Ig
aSBpbiB4cmFuZ2UoMTAwICogMTAyNCldKQotCi0gICAgICAgIGNodW5rZWRfaW5wdXQgPSBnZXRf
cmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQgIklucHV0IGNodW5rIHNp
emVzOiAlciIgJSBbbGVuKGMpIGZvciBjIGluIGNodW5rZWRfaW5wdXRdCi0KLSAgICAgICAgZGVm
bGF0ZXIgPSB1dGlsLl9EZWZsYXRlcigxNSkKLSAgICAgICAgY29tcHJlc3NlZCA9IFtdCi0gICAg
ICAgIGZvciBjaHVuayBpbiBjaHVua2VkX2lucHV0OgotICAgICAgICAgICAgY29tcHJlc3NlZC5h
cHBlbmQoZGVmbGF0ZXIuY29tcHJlc3MoY2h1bmspKQotICAgICAgICBjb21wcmVzc2VkLmFwcGVu
ZChkZWZsYXRlci5jb21wcmVzc19hbmRfZmluaXNoKCcnKSkKLQotICAgICAgICBjaHVua2VkX2V4
cGVjdGF0aW9uID0gZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50
ICgiRXhwZWN0YXRpb24gY2h1bmsgc2l6ZXM6ICVyIiAlCi0gICAgICAgICAgICAgICBbbGVuKGMp
IGZvciBjIGluIGNodW5rZWRfZXhwZWN0YXRpb25dKQotCi0gICAgICAgIGluZmxhdGVyID0gdXRp
bC5fSW5mbGF0ZXIoMTUpCi0gICAgICAgIGluZmxhdGVyLmFwcGVuZCgnJy5qb2luKGNvbXByZXNz
ZWQpKQotICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtlZF9leHBlY3RhdGlvbjoKLSAgICAgICAg
ICAgIGRlY29tcHJlc3NlZCA9IGluZmxhdGVyLmRlY29tcHJlc3MobGVuKGNodW5rKSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2h1bmssIGRlY29tcHJlc3NlZCkKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcnLCBpbmZsYXRlci5kZWNvbXByZXNzKC0xKSkKLQotCi1pZiBfX25h
bWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9SRUFETUUgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RkYXRhL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzAwMWFhNTU5NWNkZDEzNDA3ZjU3MjhlY2Q1MzJhNWQxMjI2M2VmYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL1JF
QURNRQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVRlc3QgZGF0YSBkaXJlY3RvcnkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93
c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3No
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjdmOTkzMGY3ODI0YzNhNTM1OTE0
YTViMzc3OWY2YjZmYmEyNDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93
c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9y
dGVkQnlVc2VyRXhjZXB0aW9uKCJhYm9ydCBmb3IgdGVzdCIpCi0KLQotZGVmIHdlYl9zb2NrZXRf
dHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNl
ckV4Y2VwdGlvbigiYWJvcnQgZm9yIHRlc3QiKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2Y4N2M2YWYyM2RmMDhlZmUzNTc1Y2FlMjA4ZGU1MDIyY2JhYTY2
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSMgaW50ZW50aW9uYWxseSBsZWZ0IGJs
YW5rCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9j
aGVja193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVj
a193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjMTM5ZmExNzZjYzM0MTdi
ZTk2ZGU3OThlNmE4MWVkMTQ5YjE5OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hl
Y2tfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAw
OSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGlm
IHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBsZS5jb20nOgotICAgICAgICByZXR1
cm4KLSAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFibGUgb3JpZ2luOiAlcicgJSByZXF1
ZXN0LndzX29yaWdpbikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBj
YWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVz
dC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNl
cHRpb25faW5fdHJhbnNmZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjk4MmQwMjMxZWYwMGYwMmUwZDkwZGY2NzhlYjgwNGJhNDM4NjJkOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRXhjZXB0aW9u
IGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSgpLgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tl
dF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIEV4Y2VwdGlvbignSW50ZW50aW9u
YWwgRXhjZXB0aW9uIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qu
d3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3No
X2F0X3RoZV9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193
c2hfYXRfdGhlX2VuZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdlN2JlMTgw
MmUzYzY2YzYzODQ5ODc1ZWEzNWUyNDA2YTM4MWU2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi9ub193c2hfYXRfdGhlX2VuZC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvcnJlY3Qgc2lnbmF0dXJlcywgd3JvbmcgZmlsZSBuYW1l
LgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgot
ICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgKLSAgICAgICAgICAgICdzdWIvbm9fd3NoX2F0X3Ro
ZV9lbmQucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgIChyZXF1ZXN0Lndz
X3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxs
YWJsZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2Fs
bGFibGVfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjM1MmViNGNhMjM4
OTUyMjM5ZTM1NDI3MjhjZTNiMzhkODNkZDZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25v
bl9jYWxsYWJsZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0jIENvcHly
aWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJOb24tY2FsbGFibGUgaGFuZGxlcnMuCi0iIiIKLQotCi13ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZSA9IFRydWUKLXdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSA9
IDEKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEv
aGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZGIzZmY2OTMwMjU2YmMxYjEzZTJjNGMyZDFjODQzYzRiN2M4MGFhNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0j
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNh
bGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0
LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhZDNmMmU4NTkxMGNiNjdjYTIz
NmIxNDNmZDEwYTVhMjc3ZWRlZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9z
aWdfd3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2YmY2NTliYzlhZjAxYzEwN2VmMzUwOGIyYjVkMDE3M2RjZjU5MDA5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV3Jvbmcgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Ugc2lnbmF0dXJlLgotIiIiCi0KLQotZGVmIG5vX3dl
Yl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZSgKLSAgICAgICAgICAgICdzdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkgaXMg
Y2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwg
cmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdf
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNm
ZXJfc2lnX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBlMmU1NTA3OTRi
N2I5OTBlMGI0NGIzM2NmYzJkNGQxNTJlNmMwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93
cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV3Jvbmcgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKCkg
c2lnbmF0dXJlLgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgbm9fd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJl
cXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgKLSAgICAgICAgICAgICdzdWIv
d3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAg
ICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0MDI4YWU0Nzc2Y2Q2
NzlkZjNiNDM0NjhjNzE2MzFhMTVhZjBiMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlNTMxZjkxMzQxZjg2ZmFh
ZTQ4MTBhN2MwMjM0ZjY3NDA3YjMyYTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRh
dGEvUkVBRE1FCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGVlNzI0MGRhMjg5OTIyM2M2YzIyNDk5NzM2YWNiZGM2M2FmZDU4Mi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvbW9jay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvcnVuX2FsbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qvc2V0X3N5c19wYXRoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2VuZHRv
ZW5kLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfaGFuZHNoYWtlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tZW1vcml6aW5n
ZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tb2NrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0
X21zZ3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXV4LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90
ZXN0X3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF91dGlsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3ZDMyYTZiNmJiYmY4NmNlODhjZTY5YWJjM2RlNWE1MzQwMDE2YzZkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09Q
WUlORwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvUkVBRE1FCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
c2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9f
X2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY4MzRiODI4NWE1NmJl
ZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAt
MSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0
aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jYWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2Fj
ZXJ0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGRhZGFlMTIxYmRkM2FkYjc0
NDM4M2NkM2JmMDhjMjI2Zjg1NTRiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jYWNlcnQucGVtCisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDdkRDQ0FpV2dB
d0lCQWdJSkFLcVZnaGtHRjFyU01BMEdDU3FHU0liM0RRRUJCUVVBTUVreEN6QUpCZ05WCi1CQVlU
QWtwUU1RNHdEQVlEVlFRSUV3VlViMnQ1YnpFVU1CSUdBMVVFQ2hNTGNIbDNaV0p6YjJOclpYUXhG
REFTCi1CZ05WQkFNVEMzQjVkMlZpYzI5amEyVjBNQjRYRFRFeU1EWXdOakEzTWpRek0xb1hEVE01
TVRBeU16QTNNalF6Ci1NMW93U1RFTE1Ba0dBMVVFQmhNQ1NsQXhEakFNQmdOVkJBZ1RCVlJ2YTNs
dk1SUXdFZ1lEVlFRS0V3dHdlWGRsCi1Zbk52WTJ0bGRERVVNQklHQTFVRUF4TUxjSGwzWldKemIy
TnJaWFF3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFECi1nWTBBTUlHSkFvR0JBS29TRVcyYmlReFZy
TU1LZG4vOFBKekRZaVNYRFBSOVdRYkxSUlExR201amtDWWlhaFhXCi11MkNiVFRoZlBQZmkyTkhB
M0krSGxUN2dPOXlSN1JWVXZONklTVXpHd1hERXE0ZjRVTnF0UU9oUWFxcUsrQ1o5Ci1MTy9CaE8v
WVlmTnJiU1BsWXpIVUthVDllc2U3eE85VnpWS0xXK3FVZjJNamg0LytTenhCRE5QN0FnTUJBQUdq
Ci1nYXN3Z2Fnd0hRWURWUjBPQkJZRUZPc1dkeENTdXlod2FaZWFiNkJvVGhvMysrYnpNSGtHQTFV
ZEl3UnlNSENBCi1GT3NXZHhDU3V5aHdhWmVhYjZCb1RobzMrK2J6b1Uya1N6QkpNUXN3Q1FZRFZR
UUdFd0pLVURFT01Bd0dBMVVFCi1DQk1GVkc5cmVXOHhGREFTQmdOVkJBb1RDM0I1ZDJWaWMyOWph
MlYwTVJRd0VnWURWUVFERXd0d2VYZGxZbk52Ci1ZMnRsZElJSkFLcVZnaGtHRjFyU01Bd0dBMVVk
RXdRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFRkJRQURnWUVBCi1nc01JMVdFWXFOdy9qaFVJZHJU
QmNDeEowWDZoSnZBOXppS0FOVm0xUnMrNFAzWURBcmtROGJDcjZ4WStLdzdzCi1acDB5RTdkTThH
TWRpK0RVNmhMM3QzRTVlTWtUUzF5WnI5V0NLNGYyUkxvK2V0OThzZWxaeWRwSGVtRjNESkozCi1n
QWo4U3g0TEJhRzhDYi9XbkVNUHYzTXhHM2ZCRTVmYXZGNlY0alUwN2hRPQotLS0tLS1FTkQgQ0VS
VElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2VydC5wZW0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvY2VydC9jZXJ0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjUzNzlh
NzJiMGRhYzVmNDE5NzljODAyYzY2M2RmOGI4OGRlYTgyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jZXJ0LnBlbQorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAg
IFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMSAoMHgxKQotICAgICAg
ICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNz
dWVyOiBDPUpQLCBTVD1Ub2t5bywgTz1weXdlYnNvY2tldCwgQ049cHl3ZWJzb2NrZXQKLSAgICAg
ICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEp1biAgNiAwNzoyNTowOCAyMDEy
IEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogT2N0IDIzIDA3OjI1OjA4IDIwMzkgR01UCi0g
ICAgICAgIFN1YmplY3Q6IEM9SlAsIFNUPVRva3lvLCBPPXB5d2Vic29ja2V0LCBDTj1weXdlYnNv
Y2tldAotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1Ymxp
YyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICBSU0EgUHVibGljIEtl
eTogKDEwMjQgYml0KQotICAgICAgICAgICAgICAgIE1vZHVsdXMgKDEwMjQgYml0KToKLSAgICAg
ICAgICAgICAgICAgICAgMDA6ZGU6MTA6Y2U6M2E6NWE6MDQ6YTQ6MWM6Mjk6OTM6NWM6MjM6ODI6
MWE6Ci0gICAgICAgICAgICAgICAgICAgIGYyOjA2OjAxOmU2OjJiOmE0OjBmOmRkOjc3OjQ5Ojc2
Ojg5OjAzOmEyOjIxOgotICAgICAgICAgICAgICAgICAgICBkZTowNDo3NTpjNjplMjpkZDpmYjoz
NToyNzozYTphMjo5Mjo4ZToxMjo2MjoKLSAgICAgICAgICAgICAgICAgICAgMmI6M2U6MWY6ZjQ6
Nzg6ZGY6YjY6OTQ6Y2I6Mjc6ZDY6Y2I6ZDY6Mzc6ZDc6Ci0gICAgICAgICAgICAgICAgICAgIDVj
OjA4OmYwOjA5OjNlOmM5OmNlOjI0OjJkOjAwOmM5OmRmOjRhOmUwOjk5OgotICAgICAgICAgICAg
ICAgICAgICBlNTpmYjoyMzphOTplMjpkNjpjOTozZDo5NjpmYTowMTo4ODpkZTo1YTo4OToKLSAg
ICAgICAgICAgICAgICAgICAgYjA6Y2Y6MDM6Njc6NmY6MDQ6ODY6MWQ6ZWY6NjI6MWM6NTU6YTk6
MDc6OWE6Ci0gICAgICAgICAgICAgICAgICAgIDJlOjY2OjJhOjczOjViOjRjOjYyOjAzOmY5Ojgy
OjgzOmRiOjY4OmJmOmI4OgotICAgICAgICAgICAgICAgICAgICA0YjowYjo4Yjo5MzoxMTpiODo1
NDo3Mzo3YgotICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKLSAgICAg
ICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWlu
dHM6IAotICAgICAgICAgICAgICAgIENBOkZBTFNFCi0gICAgICAgICAgICBOZXRzY2FwZSBDZXJ0
IFR5cGU6IAotICAgICAgICAgICAgICAgIFNTTCBTZXJ2ZXIKLSAgICAgICAgICAgIE5ldHNjYXBl
IENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIE9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl
Ci0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAg
ICAgICAgODI6QTE6NzM6OEI6MTY6MEM6N0M6RTQ6RDM6NDY6OTU6MTM6OTU6MUE6MzI6QzE6ODQ6
RTk6MDY6MDAKLSAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAot
ICAgICAgICAgICAgICAgIGtleWlkOkVCOjE2Ojc3OjEwOjkyOkJCOjI4OjcwOjY5Ojk3OjlBOjZG
OkEwOjY4OjRFOjFBOjM3OkZCOkU2OkYzCi0KLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEx
V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgNmI6YjM6NDY6Mjk6MDI6ZGY6YjA6Yzg6OGU6YzQ6
ZDc6N2Y6YTA6MWU6MGQ6MWE6ZWI6MmY6Ci0gICAgICAgIGRmOmQxOjQ4OjU3OjM2OjVmOjk1Ojhj
OjFiOmYwOjUxOmQ2OjUyOmU3OjhkOjg0OjNiOjlmOgotICAgICAgICBkODplZDoyMjo5YzphYTpi
ZDplZTo5Yjo5MDoxZDo4NDphMzo0YzowYjpjYjplYjo2NDo3MzoKLSAgICAgICAgYmE6Zjc6MTU6
Y2U6ZGE6NWY6ZGI6OGI6MTU6MDc6YTY6Mjg6N2Y6Yjk6OGM6MTE6OWI6NjQ6Ci0gICAgICAgIGQz
OmYxOmJlOjUyOjRmOmMzOmQ4OjU4OmZlOmRlOjU2OjYzOjYzOjNiOjUxOmVkOmE3OjgxOgotICAg
ICAgICBmOTowNTo1MTo3MDo2MzozMjowOTowZTo5NDo3ZTowNTpmZTphMTo1NjoxODozNDo5ODpk
NToKLSAgICAgICAgOTk6MWU6NGU6Mjc6Mzg6ODk6OTA6NmE6ZTU6Y2U6NjA6MzU6MDE6ZjU6ZGU6
MzQ6NjA6YjE6Ci0gICAgICAgIGNiOmFlCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1J
SUNtRENDQWdHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJKTVFzd0NRWURWUVFHRXdK
S1VERU8KLU1Bd0dBMVVFQ0JNRlZHOXJlVzh4RkRBU0JnTlZCQW9UQzNCNWQyVmljMjlqYTJWME1S
UXdFZ1lEVlFRREV3dHcKLWVYZGxZbk52WTJ0bGREQWVGdzB4TWpBMk1EWXdOekkxTURoYUZ3MHpP
VEV3TWpNd056STFNRGhhTUVreEN6QUoKLUJnTlZCQVlUQWtwUU1RNHdEQVlEVlFRSUV3VlViMnQ1
YnpFVU1CSUdBMVVFQ2hNTGNIbDNaV0p6YjJOclpYUXgKLUZEQVNCZ05WQkFNVEMzQjVkMlZpYzI5
amEyVjBNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0IKLWdRRGVFTTQ2V2dTa0hD
bVRYQ09DR3ZJR0FlWXJwQS9kZDBsMmlRT2lJZDRFZGNiaTNmczFKenFpa280U1lpcysKLUgvUjQz
N2FVeXlmV3k5WTMxMXdJOEFrK3ljNGtMUURKMzByZ21lWDdJNm5pMXNrOWx2b0JpTjVhaWJEUEEy
ZHYKLUJJWWQ3MkljVmFrSG1pNW1Lbk5iVEdJRCtZS0QyMmkvdUVzTGk1TVJ1RlJ6ZXdJREFRQUJv
NEdQTUlHTU1Ba0cKLUExVWRFd1FDTUFBd0VRWUpZSVpJQVliNFFnRUJCQVFEQWdaQU1Dd0dDV0NH
U0FHRytFSUJEUVFmRmgxUGNHVnUKLVUxTk1JRWRsYm1WeVlYUmxaQ0JEWlhKMGFXWnBZMkYwWlRB
ZEJnTlZIUTRFRmdRVWdxRnppeFlNZk9UVFJwVVQKLWxSb3l3WVRwQmdBd0h3WURWUjBqQkJnd0Zv
QVU2eFozRUpLN0tIQnBsNXB2b0doT0dqZjc1dk13RFFZSktvWkkKLWh2Y05BUUVGQlFBRGdZRUFh
N05HS1FMZnNNaU94TmQvb0I0Tkd1c3YzOUZJVnpaZmxZd2I4RkhXVXVlTmhEdWYKLTJPMGluS3E5
N3B1UUhZU2pUQXZMNjJSenV2Y1Z6dHBmMjRzVkI2WW9mN21NRVp0azAvRytVay9EMkZqKzNsWmoK
LVl6dFI3YWVCK1FWUmNHTXlDUTZVZmdYK29WWVlOSmpWbVI1T0p6aUprR3Jsem1BMUFmWGVOR0N4
eTY0PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2Nl
cnQvY2xpZW50X2NlcnQucDEyIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGUxMzk5Mjc5ODJmYTk4MjNhNTcyMzFhZjExMzQ5
OWQ2YTVhOGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDI1ODIKemNtWStGWEgq
amk3S01gIzB0QmcycXpGaXRQIWY8UEhBLSpOTG9AVl9nY2YwdDhXQigjST97JVlSRngqdWAlKXlK
CnoxbkchSzM1YnFoWHJYN0FiOVElamY4NnVseCVadi0+JUheQWFacHdla1A0MllufWc2diNPdVlB
OEd0bXZWalNJagp6RnBoNVUoKFolZkFTd1N1a1lYR3A9RipBKTBSZmk8YCVlT2ReRnBCaS1mI3M3
ZmlyPz4yY1ckVCM7MipHQVBfQWUKejFfI2xybjJFKGVLT01KNk4yNllKbmVfQGhwfVNLUFhVQjdG
TWVyX341fDFxZ0N7VHFubkJ1djEka3BwNU9CeiVACno8bXlTdys/WT5eakFaNCNYQS19KiFRc2J1
T2hXKHNPODM2NigkOygxQT5tbyhPLSV4KGhuKD15Wjt5fk5HI1FYMQp6Z0hrU2leXjhjdjRUVFNM
OXZuNXFSKD5fRDNmJm9jKmp3UGdJI0tAUSNBc0wpRDtCRCZXYjJkK0kxXko3bj59WVoKemJDWG85
Zk9AZyFAZFdZYTJWJX07KSF7PHpEY3wocHZKSWF4VzdOZE8lTzZmPnImYU9ycEhre29fUjltUTQ3
dW9iCno/bD45fG58WDNgYWdwXkc7THdYUjU8KGxyK1I8Y0w1alRRKD9eRDxrUm8hSF9UI3A/eTNk
fV50Q1lWIThSXk4/fQp6QyolWG05TGVmPmo3aGxyLT9qSGxwfHdmQSZebi1zOzwheiRxRDF4UHEh
OEtRMX1+ZHVwd35CTTFnc35AQW87Q3EKendSZ1V8Ml5kfU4tZ1Y7QGFZa3U4SSV9fDxsNlFNPz1k
fkZZcGJHRkg5JnZOZ0taKlN5Y0lTfG1jdU9SP2wmQ093Cnpze3pkNXptZWx4cU4xRFF5e31QZ0I9
dSNmeklOUGtCMG9OKmNrM3ZgKzF7IVlYUH57RVZJN1ZxaCp+dWFXX35VQwp6bFIzM1JaMDVIaGtD
LTFlSXApLUBZXnl2Yy18UiUhKjlkdzduZlcpeWpjSElZZjZyPWFDdChVaGktRkptMm57XykKeiV7
dWxCVVhSYDI8Pmx4fWVHbVNtUko+NW90a0AoK3Bqc1BxOzRoWjZGSUtsI3tueFAhQUwhMjhfX0FZ
ZmxgVmd7CnpsUlJhQVJ8Vm15MV9gXmJialpyekF7USRsWWVqSVlkXkEkWj5XJmp5bk09S2BUbDR3
Vikzd0BkMUpjYC01LUNHSgp6eHFeQDhfKCE8WkYycWxoX1p9fW5yP1MmNSp6K0ZAKXYoWjFFSXM7
SG19ITF+TVRMIWoxQGMkWkhMUn1WKD07Xm8KemRVcGZ5P28+eXpvbF9zaTw8VUVCPXQoZWVCemdK
XldZd3NIQ0c5MzRzJGQpQHFxSHdnXnlaTXtgXmpKITk7dHI2Cnplb1VheSYkK0J5R3xOXl96b0FI
XnRZSWc+aGFZd3xAfGMzMV53KG5VZDdrKFltRUo3NlZZNzkrKEMoXyQ7MU1zVQp6aGlOaStCNWdT
ckRqfDk+PEA/NlImOHpibThicj9DLU5uMWNrKCs8TkslNyk2di13V3E0PU1fVGJ0MTk0elUqeUYK
emg8b3Q8SEJXbm94QiUxazkoTTBvPE5nKVJnSFMoIz9lZEVRQiFefEZrLV8oYWBiVUJMQUsqaH5h
en4hX3h1PVQ0Cno2RzVLLWFYSm90SFFsRUM4Q1U1fFJ5TVJ1UWtYRSk/XnY2KGk9TXUpPSRebyUw
IXlzNUdWUmFYWjJTMkg0STgzTAp6cSliYHxQeHsoODlXMzJ6cTRzcXpIK0JBS1A5dWFERXBEOElJ
QTlELUg0NUMlVlQ/SkojTWErQkBpOU1QZEYtIyMKek54RjVUdX1pel9oeiRTS1owX18mIVlwMXlh
ZFZ6b2NARXkrQmVmSkN0Q1NWZDUoSnkoPEM2SWNDV31EbUh3QzhUCnpSe2txdlJAPzNyekxHMiRa
ZGN4LTV2RlJAZCRRI0REK357ZGhAbWRfZWBCQjYqVVk2Uis0XiNVJXo0bHR4OUIlOwp6TlY4eip7
R2NHTTtncTJSdHlkantIMFMwcCN6PDYlN20zISV7P01RdWE8YEBlNWJPdGJkIUVjP0dedXhmNGd4
Y0kKei1GN1NUWWl+dkRibXZDWjNORGNmSGo4PkM5RlY2amQxfShwU3dyZ0drKlFaOVJyNCk2IXNT
a1RVcWJ4YmFlYTJ1Cnp3U2AkeW9zUSllYiVvX3ZKTyohQWBkUjtZNGs+JnFZenVhLVpORTwzRkU9
SStlU1U7eCFwdF5BMzU+b0lvUGBKcQp6Wmx+KXJDNjBMK2tTeEFnb1BFfHJHalZAPzJBeSpYYj0k
Y2BjX0wzPUV6aGpCVUQ9aDFfNCVlQkNmbGomRUhabU8KenN7MWJ8TnV4Nis7SyNLQj1Ua198aWt8
eyowMWRrJDlLYTZgY1JVPU1jWWlOIWstYSkyUEQzMWg8Y1RzJWtQaG9aCnpPKTJ3X1Q5LTh3Mk5N
JiZxMnBsNF5LcX1DUGU9bDlocSRXNCF0O0pEJXxVSigyOHZEYk0qTD5WRjdiV19Ye2IxNAp6R053
KHc+RV9TOWA8O3hRbFBgQHNkPjZtM24yKUwpMHAhWFJyRCMyNWlJa1JEcykxdWpOJVNzeXcjNjJ2
ZHYmQWwKemNkai1ZbCM2K0BhMFdzY1U8M2BndlckMnctKF5IZkVSeXhzTnNxNm1LMGQ4Oz8wTFNl
TmglTkVlMEJZSjRJTChhCnokV1huZClQQlc8QVRre3klMlM5R1BhMnF5SlckXkpKX2NvX1hQMW05
RX1qKVE/XmwkIypNRHhQNXxtWTF6Y3EzeQp6Yj1AenlDWHVnd2R7Tmp4P2kyN2orelhPNCpWPn1a
ZS16QlF4KUh5bndMYE5qKCE5dCk1NGRPO3pUVn4tTyM7VTsKek13cDBQVS11VUw/IyM4TC0pJnZt
Ym5BbW4jQCZhPnY9Y1B9RVVRSlZ3YUR3OVY8LUl3WXRpVDl3KFRNZWEyJUR5Cnp8QTQwJE41dW9p
UUVeX3tTMS1pYHE1bHR0cGc+U0Q0cGFmaGZsQnw2UEU+IT5zaFdrb0VtWmhnK34wSHA8M0tUQAp6
OWprJHFNQz0wJkJia15mUm80ZjM4Sn5pV0N8eEdQMGB3WjNGI2s4ZypJZE5ZJEdGLUF4OF48RHJC
XmoyOFhiNnMKelJ8O1Z2YXIlPHxUWkt+PjMwa0QzKVckQUQjKHR0YCNAeDdROE9ZYXBUX0p5TTF2
VD9sYngtK19GKEpGJXlTME8kCnpwUyNsfXcqMGo+Yn1NM2U7NEk+e3BNTT5zJWA/ZlNBRV9RYmBB
bj5fViFraX0kOXdNTjkoZlUxdUpHbTBNaTdoSwp6QTVsMGUxd1ZjXiRxbD81Z20+OEV2QnBTYVdm
NVRJZzNaU2J1SmhwO2ElKFora2N7Y2R2MVB1WCRlMkdBTj9KZjgKeldLTmdTPChNMkZOVWBSeGRC
R31mPVMxcm5RKmVSMTJxRl9DJiZwbkBgeSVDfkw5XlFfWjlsaCZHPVh2R0MhNDEwCnp5bik1bz0p
eDJpSlkrXj9eRUxqbnRISGB9Syl6YT9JPXx2ISRoTDBuJkd6eXB6YUx3TmRlTT1Pald8LS09bVJf
agp6eXQ/flZ4X185QkV2Y2hMPzlodVVvYi01bityMT88eEBjZ301YXxWfEZjRlFPKmVJcHdaRW5+
VkdMZXF2U0BXazIKeikhK0QzLTt7NEBPTyliK2JRTyM9LUUrQmVPQGYhMzxpVDBtYjJwYjM4OHtH
SVJhcmpkblRpJUA/NHF3eSNxNjBZCnpxaUF8e3Q2bzQ5RU0xOEomdzhEQSN3UUREc0Z3TiRIRypN
VEwyMUJRailZUmBXNUw7WmZNTTwqckw9RklnfDBiSgp6VDlyN0ZsQkxMXnJWJTFVTyEzfEdERWFN
IWpIUExyPzVRQnVDQyFXKT5kcmZeUkNgYDdZUllaKEs+aWUwPnBKZF4KekpXX0h7JSleYyE2Pmx8
OVA4P2M9aihCNTdZSno4P1h5UXpFOXVHYX1kVjBQVHAzITtwIVNGKX10LWk+QzxFZEgrCnpNS0FT
blYjISZTV2ZkfTBkbGpYc3lRZnpzQDZpMCtkcVNISkx+Rjd+b3R8JEh3ZitGKjBqQ0sqdzVXb0ZA
UTloTgp6aGxrJVN7aDZDNTdDSTJfNVI5O2YzO3AtMT5EVW4qVV5lb0dqaHFvOypSKiRrVkUwMUo+
VEpRUnN2OW96JmshM3oKemtXVDsqMFFlME0zVUNMdzBEPUorZkdmY0Z2SlV8YFVkc0tfMzR0VHZI
e2YmLVk4V0ZHaD9eUCFYNTt5PUZadURzCmZmcldrMCVNKE9HblRNTjxoJnFAeUxkRFVfJk1jQWY/
fDFrTWVqVU5vCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBlbSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jZXJ0L2tleS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhZTg1ODMxOGYy
OWJhNmI0NjIzYmQ1ZmJjNGEwOGNlNzNkOTAzMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBlbQorKysgL2Rldi9udWxs
CkBAIC0xLDE1ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUNY
Z0lCQUFLQmdRRGVFTTQ2V2dTa0hDbVRYQ09DR3ZJR0FlWXJwQS9kZDBsMmlRT2lJZDRFZGNiaTNm
czEKLUp6cWlrbzRTWWlzK0gvUjQzN2FVeXlmV3k5WTMxMXdJOEFrK3ljNGtMUURKMzByZ21lWDdJ
Nm5pMXNrOWx2b0IKLWlONWFpYkRQQTJkdkJJWWQ3MkljVmFrSG1pNW1Lbk5iVEdJRCtZS0QyMmkv
dUVzTGk1TVJ1RlJ6ZXdJREFRQUIKLUFvR0JBSXVDdVYxVmNuYjdybThDd3RnWlA1WGdtWTh2U2p4
VGxkYWZhNlh2YXdFWVVUUDBTNzd2LzFsbGcxWXYKLVVJVitJK1BRZ0c5b1ZvWU9sMjJMb2ltSFMv
WjNlMWZzb3Q1dERZc3pHZTgvR2tzdDRvYVJlU294dkJVYTZXWHAKLVFTbzdZRkNhanVIdEUrVy9n
ekYrVUhiZHp6WElEalFaMzE0TE5GNXQrNFVuc0VQQkFrRUErZ2lySW1xV29NMnQKLTNVUjhmOG9l
a0VSd3NtRU1mOURINVlwSDRjdlVudkkra3dlc0MvcjJVOFNobysrZnlFTVVObTdhSVhHcU5MZ2EK
LW9nQU0rNE5YNFFKQkFPTmRTeFNheTIyZWdUR05vSWhMbmRsaldrdU90LzlGV2oya2xmLzRReEQ0
YmxNSlE1T3EKLVFkT0dBaDduVlFqcFBMUTVEN0NCVkFLcEdNMkNEK1FKQnRzQ1FFUDJrejM1cHhQ
eWxHM3VyY0MybWZReEJra1cKLVpDVmlCTlA1OEd3SjBiT2F1VE9TQkV3RlhXdUxxVHc4YUR3eEw0
OVVObXFjME4wZnBlMmZBZWhqM1VFQ1FRQ20KLUZIL0RqVThMdzd5YmRkak50bTZYWFB1WU5hZ3h6
M2Nia0I0QjNGY2hEbGVJVUR3TW9WRjBNVzliSTUvNTRtVjEKLVFEazF0VUtvcnR4dlFaSmFBRDRC
QWtFQWhHT0hRcVBkNmJCQm9GQnZwYUx6UEpNeHdMS3JCK1d0a3EvUWxDNzIKLUNsUmlNbjJnOFNB
TGlJTDNCRGdHWEtjS0UvV3k3am8vYWYvSkN6US9jUHF0L0E9PQotLS0tLS1FTkQgUlNBIFBSSVZB
VEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ4MTI0MTZiODZiNWU1OGZkZjUyZTFlNTk2YzcxZGJlYjFiNDQ1MWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvY2VydC9jYWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2VydC5wZW0KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
Y2VydC9jbGllbnRfY2VydC5wMTIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9rZXkucGVtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3Jf
dGVzdGluZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThkMTg1NzEyZWVhNDA4
YTIzZDI0ZmJjY2UxYWFmNDkzYTVhYTdlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTEwMCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3IgdGVzdGluZy4K
LQotVGhpcyBtb2R1bGUgY29udGFpbnMgaGVscGVyIG1ldGhvZHMgZm9yIHBlcmZvcm1pbmcgaGFu
ZHNoYWtlLCBmcmFtZQotc2VuZGluZy9yZWNlaXZpbmcgYXMgYSBXZWJTb2NrZXQgY2xpZW50Lgot
Ci1UaGlzIGlzIGNvZGUgZm9yIHRlc3RpbmcgbW9kX3B5d2Vic29ja2V0LiBLZWVwIHRoaXMgY29k
ZSBpbmRlcGVuZGVudCBmcm9tCi1tb2RfcHl3ZWJzb2NrZXQuIERvbid0IGltcG9ydCBlLmcuIFN0
cmVhbSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBmcmFtZSBmb3IKLXRlc3RpbmcuIFVzaW5nIHV0aWwu
aGV4aWZ5LCBldGMuIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHByb3RvY29sIHByb2Nlc3NpbmcK
LWlzIGFsbG93ZWQuCi0KLU5vdGU6Ci1UaGlzIGNvZGUgaXMgZmFyIGZyb20gcm9idXN0LCBlLmcu
LCB3ZSBjdXQgY29ybmVycyBpbiBoYW5kc2hha2UuCi0iIiIKLQotCi1pbXBvcnQgYmFzZTY0Ci1p
bXBvcnQgZXJybm8KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWlt
cG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHRpbWUKLQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLQotCi1ERUZBVUxUX1BPUlQgPSA4MAotREVGQVVMVF9TRUNVUkVfUE9SVCA9IDQ0
MwotCi0jIE9wY29kZXMgaW50cm9kdWNlZCBpbiBJRVRGIEh5QmkgMDEgZm9yIHRoZSBuZXcgZnJh
bWluZyBmb3JtYXQKLU9QQ09ERV9DT05USU5VQVRJT04gPSAweDAKLU9QQ09ERV9DTE9TRSA9IDB4
OAotT1BDT0RFX1BJTkcgPSAweDkKLU9QQ09ERV9QT05HID0gMHhhCi1PUENPREVfVEVYVCA9IDB4
MQotT1BDT0RFX0JJTkFSWSA9IDB4MgotCi0jIFN0cmluZ3MgdXNlZCBmb3IgaGFuZHNoYWtlCi1f
VVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLV9VUEdSQURFX0hFQURF
Ul9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi1fQ09OTkVDVElPTl9IRUFERVIg
PSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0KLVdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCA9ICcy
NThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCi0KLSMgU3RhdHVzIGNvZGVzCi1T
VEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi1TVEFUVVNfR09JTkdfQVdBWSA9IDEwMDEKLVNU
QVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIKLVNUQVRVU19VTlNVUFBPUlRFRF9EQVRBID0gMTAw
MwotU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCA9IDEwMDUKLVNUQVRVU19BQk5PUk1BTF9DTE9T
VVJFID0gMTAwNgotU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBID0gMTAwNwotU1RB
VFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4Ci1TVEFUVVNfTUVTU0FHRV9UT09fQklHID0gMTAw
OQotU1RBVFVTX01BTkRBVE9SWV9FWFQgPSAxMDEwCi1TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRf
RVJST1IgPSAxMDExCi1TVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUKLQotIyBFeHRlbnNpb24g
dG9rZW5zCi1fREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKLSMgVE9E
TyhiYXNoaSk6IFVwZGF0ZSBhZnRlciBtdXggaW1wbGVtZW50YXRpb24gZmluaXNoZWQuCi1fTVVY
X0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKLV9QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5T
SU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKLQotZGVmIF9tZXRob2RfbGluZShyZXNvdXJjZSk6
Ci0gICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291cmNlCi0KLQotZGVmIF9z
ZWNfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgotICAgIHJldHVybiAnU2VjLVdlYlNvY2tldC1Pcmln
aW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIoKQotCi0KLWRlZiBfb3JpZ2luX2hlYWRlcihvcmln
aW4pOgotICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9yaWdpbjoi
LCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCi0gICAgIyBhbmQgdGhlIC9vcmlnaW4vIHZhbHVl
LCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4g
J09yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCi0KLQotZGVmIF9mb3JtYXRfaG9zdF9o
ZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKLSAgICAjIDQuMSA5LiBMZXQgL2hvc3Rwb3J0LyBi
ZSBhbiBlbXB0eSBzdHJpbmcuCi0gICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hvc3QvIHZhbHVl
LCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bwotICAgICMgL2hvc3Rwb3J0LwotICAg
IGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCi0gICAgIyA0LjEgMTEuIElmIC9zZWN1cmUvIGlzIGZh
bHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KLSAgICAjIGlzIHRydWUs
IGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09MT04gY2hhcmFj
dGVyCi0gICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0LywgZXhwcmVzc2Vk
IGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKLSAgICAjIHRvIC9ob3N0cG9ydC8KLSAgICBpZiAoKG5v
dCBzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9QT1JUKSBvcgotICAgICAgICAoc2VjdXJlIGFu
ZCBwb3J0ICE9IERFRkFVTFRfU0VDVVJFX1BPUlQpKToKLSAgICAgICAgaG9zdHBvcnQgKz0gJzon
ICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAi
SG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAgICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rwb3J0Lywg
dG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICdIb3N0OiAlc1xyXG4nICUgaG9zdHBvcnQKLQotCi0j
IFRPRE8odHlvc2hpbm8pOiBEZWZpbmUgYSBiYXNlIGNsYXNzIGFuZCBtb3ZlIHRoZXNlIHNoYXJl
ZCBtZXRob2RzIHRvIHRoYXQuCi0KLQotZGVmIHJlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5ndGgp
OgotICAgIHJlY2VpdmVkX2J5dGVzID0gW10KLSAgICByZW1haW5pbmcgPSBsZW5ndGgKLSAgICB3
aGlsZSByZW1haW5pbmcgPiAwOgotICAgICAgICBuZXdfcmVjZWl2ZWRfYnl0ZXMgPSBzb2NrZXQu
cmVjdihyZW1haW5pbmcpCi0gICAgICAgIGlmIG5vdCBuZXdfcmVjZWl2ZWRfYnl0ZXM6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24gY2xv
c2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnCi0gICAgICAgICAgICAgICAg
JyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9ubHkgJWQgYnl0ZXMpJyAlCi0gICAg
ICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWluaW5nKSkKLSAgICAgICAgcmVjZWl2
ZWRfYnl0ZXMuYXBwZW5kKG5ld19yZWNlaXZlZF9ieXRlcykKLSAgICAgICAgcmVtYWluaW5nIC09
IGxlbihuZXdfcmVjZWl2ZWRfYnl0ZXMpCi0gICAgcmV0dXJuICcnLmpvaW4ocmVjZWl2ZWRfYnl0
ZXMpCi0KLQotIyBUT0RPKHR5b3NoaW5vKTogTm93IHRoZSBXZWJTb2NrZXRIYW5kc2hha2UgY2xh
c3MgZGl2ZXJ0cyB0aGVzZSBtZXRob2RzLiBXZQotIyBzaG91bGQgbW92ZSB0byBIVFRQIHBhcnNl
ciBhcyBzcGVjaWZpZWQgaW4gUkZDIDY0NTUuIEZvciBIeUJpIDAwIGFuZAotIyBIaXhpZSA3NSwg
cGFjayB0aGVzZSBtZXRob2RzIGFzIHNvbWUgcGFyc2VyIGNsYXNzLgotCi0KLWRlZiBfcmVhZF9m
aWVsZHMoc29ja2V0KToKLSAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEgbGlzdCBvZiBu
YW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCi0gICAgZmllbGRzID0ge30KLSAgICB3
aGlsZSBUcnVlOgotICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBhbmQgL3ZhbHVlLyBiZSBl
bXB0eSBieXRlIGFycmF5cwotICAgICAgICBuYW1lID0gJycKLSAgICAgICAgdmFsdWUgPSAnJwot
ICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KLSAgICAgICAgbmFtZSA9IF9yZWFkX25hbWUo
c29ja2V0KQotICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawotICAg
ICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogU2tp
cCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCi0gICAgICAgIGNoID0g
X3NraXBfc3BhY2VzKHNvY2tldCkKLSAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVlLwotICAg
ICAgICB2YWx1ZSA9IF9yZWFkX3ZhbHVlKHNvY2tldCwgY2gpCi0gICAgICAgICMgNC4xIDM3LiBy
ZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNv
Y2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIg
d2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAgICAgICAgICAgICAgICAnJXIn
ICUgKGNoLCBuYW1lLCB2YWx1ZSkpCi0gICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4gZW50cnkg
dG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKLSAgICAgICAgIyBnaXZlbiBi
eSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL25hbWUvIGJ5dGUKLSAg
ICAgICAgIyBhcnJheSBhcyBhIFVURi04IHN0cmVhbSBhbmQgdGhlIHZhbHVlIGdpdmVuIGJ5IHRo
ZSBzdHJpbmcKLSAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8g
Ynl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKLSAgICAgICAgIyBzdHJlYW0uCi0gICAgICAgIGZp
ZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCi0gICAgICAgICMgNC4xIDM5
LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQotICAgIHJldHVybiBmaWVsZHMKLQot
Ci1kZWYgX3JlYWRfbmFtZShzb2NrZXQpOgotICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGJlIGVt
cHR5IGJ5dGUgYXJyYXlzCi0gICAgbmFtZSA9ICcnCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
IyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgICAgICBjaCA9IHJlY2Vp
dmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBM
RiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKLSAgICAgICAgZWxpZiBjaCA9
PSAnOic6ICAjIDB4M0EKLSAgICAgICAgICAgIHJldHVybiBuYW1lCi0gICAgICAgIGVsaWYgY2gg
Pj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIHJhbmdlIDB4MzEgdG8gMHg1QQotICAgICAgICAgICAg
Y2ggPSBjaHIob3JkKGNoKSArIDB4MjApCi0gICAgICAgICAgICBuYW1lICs9IGNoCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBuYW1lICs9IGNoCi0KLQotZGVmIF9za2lwX3NwYWNlcyhzb2Nr
ZXQpOgotICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICB3aGls
ZSBUcnVlOgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBp
ZiBjaCA9PSAnICc6ICAjIDB4MjAKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHJldHVy
biBjaAotCi0KLWRlZiBfcmVhZF92YWx1ZShzb2NrZXQsIGNoKToKLSAgICAjIDQuMSAzMy4gbGV0
IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICB2YWx1ZSA9ICcnCi0gICAgIyA0LjEg
MzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGlm
IGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZQotICAgICAgICBl
bGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVlICVy
JyAlIHZhbHVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdmFsdWUgKz0gY2gKLSAgICAg
ICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLQotCi1kZWYgcmVhZF9mcmFtZV9oZWFk
ZXIoc29ja2V0KToKLSAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAyKQotCi0g
ICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkKLSAgICBmaW4gPSAoZmlyc3RfYnl0ZSA+
PiA3KSAmIDEKLSAgICByc3YxID0gKGZpcnN0X2J5dGUgPj4gNikgJiAxCi0gICAgcnN2MiA9IChm
aXJzdF9ieXRlID4+IDUpICYgMQotICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAg
ICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICBzZWNvbmRfYnl0ZSA9IG9yZChyZWNl
aXZlZFsxXSkKLSAgICBtYXNrID0gKHNlY29uZF9ieXRlID4+IDcpICYgMQotICAgIHBheWxvYWRf
bGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCi0KLSAgICBpZiBtYXNrICE9IDA6Ci0gICAgICAg
IHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICdNYXNrIGJpdCBtdXN0IGJlIDAgZm9yIGZy
YW1lcyBjb21pbmcgZnJvbSBzZXJ2ZXInKQotCi0gICAgaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI3
OgotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0
LCA4KQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAg
ICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAgICAgaWYgcGF5bG9hZF9s
ZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQotICAgIGVsaWYgcGF5bG9hZF9sZW5n
dGggPT0gMTI2OgotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0
ZXMoc29ja2V0LCAyKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0g
ICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLQotICAgIHJldHVy
biBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGgKLQotCi1jbGFz
cyBfVExTU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiV3JhcHBlciBmb3IgYSBUTFMgY29ubmVjdGlv
bi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdfc29ja2V0KToKLSAgICAgICAgc2Vs
Zi5fc3NsID0gc29ja2V0LnNzbChyYXdfc29ja2V0KQotCi0gICAgZGVmIHNlbmQoc2VsZiwgYnl0
ZXMpOgotICAgICAgICByZXR1cm4gc2VsZi5fc3NsLndyaXRlKGJ5dGVzKQotCi0gICAgZGVmIHJl
Y3Yoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zc2wucmVhZChzaXplKQot
Ci0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICAjIE5vdGhpbmcgdG8gZG8uCi0gICAgICAg
IHBhc3MKLQotCi1jbGFzcyBIdHRwU3RhdHVzRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIi
VGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB1bmV4cGVjdGVkIGh0dHAgc3RhdHVz
IGNvZGUgd2FzCi0gICAgcmVjZWl2ZWQgYXMgYSByZXN1bHQgb2YgaGFuZHNoYWtlLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cyk6Ci0gICAgICAgIHN1cGVy
KEh0dHBTdGF0dXNFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYu
c3RhdHVzID0gc3RhdHVzCi0KLQotY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlKG9iamVjdCk6Ci0g
ICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3Rv
Y29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0g
ICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAg
ICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNv
Y2tldCk6Ci0gICAgICAgICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCi0KLSAgICAgICAgUmFpc2Vz
OgotICAgICAgICAgICAgRXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIK
LQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICByZXF1ZXN0X2xpbmUg
PSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9s
aW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0KLSAgICAg
ICAgZmllbGRzID0gW10KLSAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIpCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
c2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLnZlcnNpb24gPT0gODoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX3NlY19vcmlnaW5f
aGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotCi0g
ICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCi0gICAgICAgIGtleSA9IGJhc2U2
NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXk6ICVzICglcyknLCBrZXksIHV0aWwuaGV4aWZ5
KG9yaWdpbmFsX2tleSkpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5
OiAlc1xyXG4nICUga2V5KQotCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQt
VmVyc2lvbjogJWRcclxuJyAlIHNlbGYuX29wdGlvbnMudmVyc2lvbikKLQotICAgICAgICAjIFNl
dHRpbmcgdXAgZXh0ZW5zaW9ucy4KLSAgICAgICAgaWYgbGVuKHNlbGYuX29wdGlvbnMuZXh0ZW5z
aW9ucykgPiAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1FeHRl
bnNpb25zOiAlc1xyXG4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKHNl
bGYuX29wdGlvbnMuZXh0ZW5zaW9ucykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdP
cGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAg
IGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChm
aWVsZCkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAg
ICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBmaWVsZCArPSBjaAotICAg
ICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVzcG9uc2UtTGluZTogJXIn
LCBmaWVsZCkKLQotICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmllbGQuZW5kc3dp
dGgoJ1xyXG4nKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV3Jvbmcgc3RhdHVzIGxp
bmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChbXiBdKikgLion
LCBmaWVsZCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1
cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAg
aWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29kZSAlciBpcyBu
b3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNv
ZGUsIGZpZWxkKSkKLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKLSAgICAgICAgICAgIHJhaXNl
IEh0dHBTdGF0dXNFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3Rh
dHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJwotICAgICAgICAgICAg
ICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCi0gICAgICAgIGZpZWxkcyA9IF9y
ZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kOiAlcicgJSBjaCkKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlc3BvbnNlIGhlYWRl
cnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgICMgQ2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgaWYg
bGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBVcGdyYWRlIGhlYWRlcnMgZm91bmQ6ICVzJyAl
IGZpZWxkc1sndXBncmFkZSddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydjb25uZWN0aW9uJ10p
ICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011
bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWydjb25uZWN0aW9u
J10pCi0gICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICd3ZWJzb2NrZXQnOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVw
Z3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKLSAgICAgICAg
aWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVj
dGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0
aW9uJ11bMF0pCi0KLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1hY2NlcHQn
XSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
TXVsdGlwbGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVycyBmb3VuZDogJXMnICUKLSAgICAg
ICAgICAgICAgICBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10pCi0KLSAgICAgICAgYWNj
ZXB0ID0gZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddWzBdCi0KLSAgICAgICAgIyBWYWxp
ZGF0ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkZWNvZGVkX2FjY2VwdCA9IGJhc2U2NC5i
NjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9yIGFzIGU6Ci0gICAgICAg
ICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lsbGVnYWwg
dmFsdWUgZm9yIGhlYWRlciBTZWMtV2ViU29ja2V0LUFjY2VwdDogJyArIGFjY2VwdCkKLQotICAg
ICAgICBpZiBsZW4oZGVjb2RlZF9hY2NlcHQpICE9IDIwOgotICAgICAgICAgICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEZWNvZGVkIHZhbHVlIG9mIFNlYy1X
ZWJTb2NrZXQtQWNjZXB0IGlzIG5vdCAyMC1ieXRlIGxvbmcnKQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnQWN0dWFsIFNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlciAoJXMpJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdCwgdXRpbC5oZXhpZnkoZGVjb2RlZF9hY2NlcHQp
KQotCi0gICAgICAgIG9yaWdpbmFsX2V4cGVjdGVkX2FjY2VwdCA9IHV0aWwuc2hhMV9oYXNoKAot
ICAgICAgICAgICAga2V5ICsgV0VCU09DS0VUX0FDQ0VQVF9VVUlEKS5kaWdlc3QoKQotICAgICAg
ICBleHBlY3RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0ZW5jb2RlKG9yaWdpbmFsX2V4cGVjdGVkX2Fj
Y2VwdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0V4cGVjdGVkIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0OiAlciAoJXMpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X2FjY2VwdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KG9yaWdpbmFs
X2V4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgaWYgYWNjZXB0ICE9IGV4cGVjdGVkX2FjY2Vw
dDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSW52YWxp
ZCBTZWMtV2ViU29ja2V0LUFjY2VwdCBoZWFkZXI6ICVyIChleHBlY3RlZCkgIT0gJXIgJwotICAg
ICAgICAgICAgICAgICcoYWN0dWFsKScgJSAoYWNjZXB0LCBleHBlY3RlZF9hY2NlcHQpKQotCi0g
ICAgICAgIHNlcnZlcl9leHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQoJ3NlYy13ZWJzb2Nr
ZXQtZXh0ZW5zaW9ucycpCi0gICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBbXQotICAgICAg
ICBpZiBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBh
Y2NlcHRlZF9leHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAg
ICAgICAgICAgICcsICcuam9pbihzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIpKQotCi0gICAgICAg
ICMgU2NhbiBhY2NlcHRlZCBleHRlbnNpb24gbGlzdCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbnkg
dW5yZWNvZ25pemVkCi0gICAgICAgICMgZXh0ZW5zaW9ucyBvciBleHRlbnNpb25zIHdlIGRpZG4n
dCByZXF1ZXN0IGluIGl0LiBUaGVuLCBmb3IKLSAgICAgICAgIyBleHRlbnNpb25zIHdlIHJlcXVl
c3QsIHBhcnNlIHRoZW0gYW5kIHN0b3JlIHBhcmFtZXRlcnMuIFRoZXkgd2lsbCBiZQotICAgICAg
ICAjIHVzZWQgbGF0ZXIgYnkgZWFjaCBleHRlbnNpb24uCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
YWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBtdXhfYWNjZXB0ZWQgPSBGYWxzZQotICAgICAgICBm
b3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBpZiBleHRl
bnNpb24ubmFtZSgpID09IF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTjoKLSAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgICAgICAg
ICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfTVVYX0VYVEVOU0lPTjoK
LSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXg6Ci0gICAgICAgICAgICAg
ICAgICAgIG11eF9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX1BFUk1FU1NBR0VfREVGTEFURV9F
WFRFTlNJT046Ci0gICAgICAgICAgICAgICAgY2hlY2tlciA9IHNlbGYuX29wdGlvbnMuY2hlY2tf
cGVybWVzc2FnZV9kZWZsYXRlCi0gICAgICAgICAgICAgICAgaWYgY2hlY2tlcjoKLSAgICAgICAg
ICAgICAgICAgICAgY2hlY2tlcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0KLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVj
ZWl2ZWQgdW5yZWNvZ25pemVkIGV4dGVuc2lvbjogJXMnICUgZXh0ZW5zaW9uLm5hbWUoKSkKLQot
ICAgICAgICAjIExldCBhbGwgZXh0ZW5zaW9ucyBjaGVjayB0aGUgcmVzcG9uc2UgZm9yIGV4dGVu
c2lvbiByZXF1ZXN0LgotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9kZWZsYXRlX2Zy
YW1lIGFuZAotICAgICAgICAgICAgbm90IGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQpOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBleHRlbnNpb24gbm90IGFjY2VwdGVkJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX211eCBhbmQgbm90IG11eF9hY2NlcHRlZDoKLSAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2NlcHRlZCcgJSBfTVVY
X0VYVEVOU0lPTikKLQotCi1jbGFzcyBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob2JqZWN0KToK
LSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJv
dG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG9wdGlvbnMsIGRyYWZ0X2ZpZWxkKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAg
ICAgICAgc2VsZi5fZHJhZnRfZmllbGQgPSBkcmFmdF9maWVsZAotCi0gICAgZGVmIGhhbmRzaGFr
ZShzZWxmLCBzb2NrZXQpOgotICAgICAgICAiIiJIYW5kc2hha2UgV2ViU29ja2V0LgotCi0gICAg
ICAgIFJhaXNlczoKLSAgICAgICAgICAgIEV4Y2VwdGlvbjogaGFuZHNoYWtlIGZhaWxlZC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgIyA0
LjEgNS4gc2VuZCByZXF1ZXN0IGxpbmUuCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9tZXRob2Rf
bGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J09wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUpCi0gICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLSAgICAgICAgIyA0LjEgNi4g
TGV0IC9maWVsZHMvIGJlIGFuIGVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4KLSAgICAgICAgZmllbGRz
ID0gW10KLSAgICAgICAgIyA0LjEgNy4gQWRkIHRoZSBzdHJpbmcgIlVwZ3JhZGU6IFdlYlNvY2tl
dCIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVBREVSX0hJ
WElFNzUpCi0gICAgICAgICMgNC4xIDguIEFkZCB0aGUgc3RyaW5nICJDb25uZWN0aW9uOiBVcGdy
YWRlIiB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElPTl9IRUFE
RVIpCi0gICAgICAgICMgNC4xIDktMTIuIEFkZCBIb3N0OiBmaWVsZCB0byAvZmllbGRzLy4KLSAg
ICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVy
X3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAgICAjIDQu
MSAxMy4gQWRkIE9yaWdpbjogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBl
bmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICAjIFRPRE86
IDQuMSAxNCBBZGQgU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogZmllbGQgdG8gL2ZpZWxkcy8uCi0g
ICAgICAgICMgVE9ETzogNC4xIDE1IEFkZCBjb29raWUgaGVhZGVycyB0byAvZmllbGRzLy4KLQot
ICAgICAgICAjIDQuMSAxNi0yMy4gQWRkIFNlYy1XZWJTb2NrZXQtS2V5PG4+IHRvIC9maWVsZHMv
LgotICAgICAgICBzZWxmLl9udW1iZXIxLCBrZXkxID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNv
Y2tldF9rZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjE6ICVkJywgc2Vs
Zi5fbnVtYmVyMSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXkxOiAl
c1xyXG4nICUga2V5MSkKLSAgICAgICAgc2VsZi5fbnVtYmVyMiwga2V5MiA9IHNlbGYuX2dlbmVy
YXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1i
ZXIyOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJT
b2NrZXQtS2V5MjogJXNcclxuJyAlIGtleTIpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2Vj
LVdlYlNvY2tldC1EcmFmdDogJXNcclxuJyAlIHNlbGYuX2RyYWZ0X2ZpZWxkKQotCi0gICAgICAg
ICMgNC4xIDI0LiBGb3IgZWFjaCBzdHJpbmcgaW4gL2ZpZWxkcy8sIGluIGEgcmFuZG9tIG9yZGVy
OiBzZW5kIHRoZQotICAgICAgICAjIHN0cmluZywgZW5jb2RlZCBhcyBVVEYtOCwgZm9sbG93ZWQg
YnkgYSBVVEYtOCBlbmNvZGVkIFUrMDAwRCBDQVJSSUFHRQotICAgICAgICAjIFJFVFVSTiBVKzAw
MEEgTElORSBGRUVEIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgcmFuZG9tLnNodWZm
bGUoZmllbGRzKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hh
a2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGZpZWxkcykKLSAgICAgICAgZm9yIGZpZWxkIGluIGZp
ZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotCi0gICAgICAg
ICMgNC4xIDI1LiBzZW5kIGEgVVRGLTgtZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIFUr
MDAwQSBMSU5FIEZFRUQKLSAgICAgICAgIyBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAg
IHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5
My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAg
ICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEg
YmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHNlbGYuX2tleTMgPSBzZWxmLl9nZW5lcmF0ZV9r
ZXkzKCkKLSAgICAgICAgIyA0LjEgMjcuIHNlbmQgL2tleTMvIHRvIHRoZSBzZXJ2ZXIuCi0gICAg
ICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX2tleTMpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdLZXkzOiAlciAoJXMpJywgc2VsZi5fa2V5MywgdXRpbC5o
ZXhpZnkoc2VsZi5fa2V5MykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3Bl
bmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMg
ZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUgY29ubmVjdGlvbgotICAgICAgICAjIGNs
b3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMs
IGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5dGVzLgotICAgICAgICBmaWVsZCA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQotICAgICAgICAgICAgZmllbGQgKz0gY2gKLSAgICAgICAgICAgIGlmIGNo
ID09ICdcbic6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlc3BvbnNlLUxpbmU6ICVyJywgZmllbGQpCi0KLSAg
ICAgICAgIyBpZiAvZmllbGQvIGlzIG5vdCBhdCBsZWFzdCBzZXZlbiBieXRlcyBsb25nLCBvciBp
ZiB0aGUgbGFzdAotICAgICAgICAjIHR3byBieXRlcyBhcmVuJ3QgMHgwRCBhbmQgMHgwQSByZXNw
ZWN0aXZlbHksIG9yIGlmIGl0IGRvZXMgbm90Ci0gICAgICAgICMgY29udGFpbiBhdCBsZWFzdCB0
d28gMHgyMCBieXRlcywgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbgotICAgICAg
ICAjIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbGVuKGZpZWxkKSA8IDcgb3Ig
bm90IGZpZWxkLmVuZHN3aXRoKCdcclxuJyk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdb
XiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gY29kZSBmb3VuZCBpbiBzdGF0dXMgbGluZTogJXInICUg
ZmllbGQpCi0gICAgICAgICMgNC4xIDI5LiBsZXQgL2NvZGUvIGJlIHRoZSBzdWJzdHJpbmcgb2Yg
L2ZpZWxkLyB0aGF0IHN0YXJ0cyBmcm9tIHRoZQotICAgICAgICAjIGJ5dGUgYWZ0ZXIgdGhlIGZp
cnN0IDB4MjAgYnl0ZSwgYW5kIGVuZHMgd2l0aCB0aGUgYnl0ZSBiZWZvcmUgdGhlCi0gICAgICAg
ICMgc2Vjb25kIDB4MjAgYnl0ZS4KLSAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAg
IyA0LjEgMzAuIGlmIC9jb2RlLyBpcyBub3QgdGhyZWUgYnl0ZXMgbG9uZywgb3IgaWYgYW55IG9m
IHRoZSBieXRlcyBpbgotICAgICAgICAjIC9jb2RlLyBhcmUgbm90IGluIHRoZSByYW5nZSAweDMw
IHRvIDB4OTAsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0Ci0gICAgICAgICMgY29ubmVjdGlvbiBh
bmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIG5vdCByZS5tYXRjaCgnWzAtOV1bMC05
XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0hUVFAgc3RhdHVzIGNvZGUgJXIgaXMgbm90IHRocmVlIGRpZ2l0IGluIHN0YXR1cyBs
aW5lOiAlcicgJQotICAgICAgICAgICAgICAgIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4x
IDMxLiBpZiAvY29kZS8sIGludGVycHJldGVkIGFzIFVURi04LCBpcyAiMTAxIiwgdGhlbiBtb3Zl
IHRvIHRoZQotICAgICAgICAjIG5leHQgc3RlcC4KLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoK
LSAgICAgICAgICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGlu
ZTogJwotICAgICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCi0g
ICAgICAgICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAgIGZp
ZWxkcyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXNwb25zZSBoZWFkZXJzOiAlcicsIGZpZWxkcykK
LQotICAgICAgICAjIDQuMSA0MC4gX0ZpZWxkcyBwcm9jZXNzaW5nXwotICAgICAgICAjIHJlYWQg
YSBieXRlIGZyb20gc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2Nr
ZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyJyAlIGNoKQotICAgICAgICAjIDQu
MSA0MS4gY2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAh
PSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0
aXBsZSBVcGdyYWRlIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQotICAg
ICAgICBpZiBsZW4oZmllbGRzWydjb25uZWN0aW9uJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVy
cyBmb3VuZDogJXMnICUgZmllbGRzWydjb25uZWN0aW9uJ10pCi0gICAgICAgIGlmIGxlbihmaWVs
ZHNbJ3NlYy13ZWJzb2NrZXQtb3JpZ2luJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFNlYy1XZWJTb2NrZXQtT3JpZ2luIGhl
YWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0
LW9yaWdpbiddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LWxvY2F0aW9u
J10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J011bHRpcGxlIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gaGVhZGVycyBmb3VuZDogJXMnICUKLSAg
ICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy1zZWJzb2NrZXQtbG9jYXRpb24nXSkKLSAgICAgICAg
IyBUT0RPKHVrYWkpOiBwcm90b2NvbAotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMg
InVwZ3JhZGUiCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSBpcyBub3QgZXhhY3RseSBlcXVhbCB0
byB0aGUgc3RyaW5nICJXZWJTb2NrZXQiLAotICAgICAgICAjICB0aGVuIGZhaWwgdGhlIFdlYlNv
Y2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZmllbGRz
Wyd1cGdyYWRlJ11bMF0gIT0gJ1dlYlNvY2tldCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgVXBncmFkZSBoZWFkZXIgdmFsdWU6ICVz
JyAlIGZpZWxkc1sndXBncmFkZSddWzBdKQotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUg
aXMgImNvbm5lY3Rpb24iCi0gICAgICAgICMgIGlmIHRoZSB2YWx1ZSwgY29udmVydGVkIHRvIEFT
Q0lJIGxvd2VyY2FzZSwgaXMgbm90IGV4YWN0bHkgZXF1YWwKLSAgICAgICAgIyAgdG8gdGhlIHN0
cmluZyAidXBncmFkZSIsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kCi0g
ICAgICAgICMgIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBmaWVsZHNbJ2Nvbm5lY3Rp
b24nXVswXS5sb3dlcigpICE9ICd1cGdyYWRlJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBDb25uZWN0aW9uIGhlYWRlciB2YWx1ZTog
JXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXSkKLSAgICAgICAg
IyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0aW9uLCBjb29raWUsIC4uCi0KLSAgICAg
ICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVt
YmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBhIGJpZyBlbmRpYW4gMzIgYml0IGludGVn
ZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAgICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0
IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2YgL2tleV8zLyBpbiB0aGUKLSAgICAgICAg
IyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2lyZS4KLSAgICAgICAgY2hhbGxlbmdlID0g
c3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0
cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzZWxm
Ll9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxs
ZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5oZXhpZnkoY2hhbGxlbmdlKSkKLQotICAg
ICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUgdGhlIE1ENSBmaW5nZXJwcmludCBvZiAv
Y2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVuZGlhbiAxMjggYml0IHN0cmluZy4KLSAg
ICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSBy
ZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhw
ZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUg
c2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkvIGJlIHRob3NlIGJ5dGVzLgotICAgICAgICBy
ZXBseSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxNikKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ0FjdHVhbCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICgl
cyknLCByZXBseSwgdXRpbC5oZXhpZnkocmVwbHkpKQotCi0gICAgICAgICMgNC4xIDQ1LiBpZiAv
cmVwbHkvIGRvZXMgbm90IGV4YWN0bHkgZXF1YWwgL2V4cGVjdGVkLywgdGhlbiBmYWlsCi0gICAg
ICAgICMgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICAgICAgaWYgZXhwZWN0ZWQgIT0gcmVwbHk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkg
IT0gJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKLSAg
ICAgICAgIyA0LjEgNDYuIFRoZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQq
LgotCi0gICAgZGVmIF9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleShzZWxmKToKLSAgICAgICAg
IyA0LjEgMTYuIGxldCAvc3BhY2VzX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEy
IGluY2x1c2l2ZS4KLSAgICAgICAgc3BhY2VzID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAg
ICAgICMgNC4xIDE3LiBsZXQgL21heF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVh
dGVyIHRoYW4KLSAgICAgICAgIyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8u
Ci0gICAgICAgIG1heG51bSA9IDQyOTQ5NjcyOTUgLyBzcGFjZXMKLSAgICAgICAgIyA0LjEgMTgu
IGxldCAvbnVtYmVyX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KLSAg
ICAgICAgIyBpbmNsdXNpdmUuCi0gICAgICAgIG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1h
eG51bSkKLSAgICAgICAgIyA0LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9m
IG11bHRpcGx5aW5nIC9udW1iZXJfbi8gYW5kCi0gICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhl
ci4KLSAgICAgICAgcHJvZHVjdCA9IG51bWJlciAqIHNwYWNlcwotICAgICAgICAjIDQuMSAyMC4g
bGV0IC9rZXlfbi8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVz
c2VkCi0gICAgICAgICMgaW4gYmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5n
ZSBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8KLSAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAo
OSkuCi0gICAgICAgIGtleSA9IHN0cihwcm9kdWN0KQotICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0
IGJldHdlZW4gb25lIGFuZCB0d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKLSAgICAg
ICAgIyByYW5nZSBVKzAwMjEgdG8gVSswMDJGIGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tl
eV9uLyBhdCByYW5kb20KLSAgICAgICAgIyBwb3NpdGlvbnMuCi0gICAgICAgIGF2YWlsYWJsZV9j
aGFycyA9IHJhbmdlKDB4MjEsIDB4MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQotICAg
ICAgICBuID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShu
KToKLSAgICAgICAgICAgIGNoID0gcmFuZG9tLmNob2ljZShhdmFpbGFibGVfY2hhcnMpCi0gICAg
ICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgwLCBsZW4oa2V5KSkKLSAgICAgICAgICAgIGtl
eSA9IGtleVswOnBvc10gKyBjaHIoY2gpICsga2V5W3BvczpdCi0gICAgICAgICMgNC4xIDIyLiBp
bnNlcnQgL3NwYWNlc19uLyBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQK
LSAgICAgICAgIyByYW5kb20gcG9zaXRpb25zIG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRo
ZSBzdHJpbmcuCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShzcGFjZXMpOgotICAgICAgICAgICAg
cG9zID0gcmFuZG9tLnJhbmRpbnQoMSwgbGVuKGtleSkgLSAxKQotICAgICAgICAgICAga2V5ID0g
a2V5WzA6cG9zXSArICcgJyArIGtleVtwb3M6XQotICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkK
LQotICAgIGRlZiBfZ2VuZXJhdGVfa2V5MyhzZWxmKToKLSAgICAgICAgIyA0LjEgMjYuIGxldCAv
a2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0g
ICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGlu
IGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9t
LnJhbmRpbnQoMCwgMjU1KSkgZm9yIF8gaW4geHJhbmdlKDgpXSkKLQotCi1jbGFzcyBXZWJTb2Nr
ZXRIaXhpZTc1SGFuZHNoYWtlKG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IGhhbmRzaGFrZSBw
cm9jZXNzb3IgZm9yIElFVEYgSGl4aWUgNzUuIiIiCi0KLSAgICBfRVhQRUNURURfUkVTUE9OU0Ug
PSAoCi0gICAgICAgICdIVFRQLzEuMSAxMDEgV2ViIFNvY2tldCBQcm90b2NvbCBIYW5kc2hha2Vc
clxuJyArCi0gICAgICAgIF9VUEdSQURFX0hFQURFUl9ISVhJRTc1ICsKLSAgICAgICAgX0NPTk5F
Q1RJT05fSEVBREVSKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgZGVmIF9za2lwX2hlYWRlcnMoc2VsZik6Ci0g
ICAgICAgIHRlcm1pbmF0b3IgPSAnXHJcblxyXG4nCi0gICAgICAgIHBvcyA9IDAKLSAgICAgICAg
d2hpbGUgcG9zIDwgbGVuKHRlcm1pbmF0b3IpOgotICAgICAgICAgICAgcmVjZWl2ZWQgPSByZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIHJlY2VpdmVkID09IHRl
cm1pbmF0b3JbcG9zXToKLSAgICAgICAgICAgICAgICBwb3MgKz0gMQotICAgICAgICAgICAgZWxp
ZiByZWNlaXZlZCA9PSB0ZXJtaW5hdG9yWzBdOgotICAgICAgICAgICAgICAgIHBvcyA9IDEKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcG9zID0gMAotCi0gICAgZGVmIGhhbmRz
aGFrZShzZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAg
ICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxp
bmU6ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1
ZXN0X2xpbmUpCi0KLSAgICAgICAgaGVhZGVycyA9IF9VUEdSQURFX0hFQURFUl9ISVhJRTc1ICsg
X0NPTk5FQ1RJT05fSEVBREVSCi0gICAgICAgIGhlYWRlcnMgKz0gX2Zvcm1hdF9ob3N0X2hlYWRl
cigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2Vf
dGxzKQotICAgICAgICBoZWFkZXJzICs9IF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3Jp
Z2luKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVl
c3QgaGVhZGVyczogJXInLCBoZWFkZXJzKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCho
ZWFkZXJzKQotCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKCdcclxuJykKLQotICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0JykKLQot
ICAgICAgICBmb3IgZXhwZWN0ZWRfY2hhciBpbiBXZWJTb2NrZXRIaXhpZTc1SGFuZHNoYWtlLl9F
WFBFQ1RFRF9SRVNQT05TRToKLSAgICAgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhz
ZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBleHBlY3RlZF9jaGFyICE9IHJlY2VpdmVk
OgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSGFuZHNoYWtlIGZhaWx1cmUnKQot
ICAgICAgICAjIFdlIGN1dCBjb3JuZXJzIGFuZCBza2lwIG90aGVyIGhlYWRlcnMuCi0gICAgICAg
IHNlbGYuX3NraXBfaGVhZGVycygpCi0KLQotY2xhc3MgV2ViU29ja2V0U3RyZWFtKG9iamVjdCk6
Ci0gICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMg
NjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCBoYW5kc2hha2UpOgot
ICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBoYW5kc2hha2UKLSAgICAgICAgc2VsZi5fc29ja2V0
ID0gc29ja2V0Ci0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gYXBwbGljYXRpb24gZGF0
YSBwYXJ0IG9mIGRhdGEgZnJhbWVzLgotICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0
ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLQot
ICAgICAgICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0g
ICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSAoCi0gICAgICAgICAgICAg
ICAgdXRpbC5fUkZDMTk3OURlZmxhdGVyKE5vbmUsIEZhbHNlKSkKLSAgICAgICAgICAgIHNlbGYu
X2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCi0KLSAgICAg
ICAgc2VsZi5fZnJhZ21lbnRlZCA9IEZhbHNlCi0KLSAgICBkZWYgX21hc2tfaHliaShzZWxmLCBz
KToKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogb3MudXJhbmRvbSBkb2VzIG9wZW4vcmVhZC9j
bG9zZSBmb3IgZXZlcnkgY2FsbC4gSWYKLSAgICAgICAgIyBwZXJmb3JtYW5jZSBtYXR0ZXJzLCBj
aGFuZ2UgdGhpcyB0byBzb21lIGxpYnJhcnkgY2FsbCB0aGF0IGdlbmVyYXRlcwotICAgICAgICAj
IGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG8gcmFuZG9tIG51bWJlciBzZXF1ZW5jZS4K
LSAgICAgICAgbWFza2luZ19ub25jZSA9IG9zLnVyYW5kb20oNCkKLSAgICAgICAgcmVzdWx0ID0g
W21hc2tpbmdfbm9uY2VdCi0gICAgICAgIGNvdW50ID0gMAotICAgICAgICBmb3IgYyBpbiBzOgot
ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaHIob3JkKGMpIF4gb3JkKG1hc2tpbmdfbm9uY2Vb
Y291bnRdKSkpCi0gICAgICAgICAgICBjb3VudCA9IChjb3VudCArIDEpICUgbGVuKG1hc2tpbmdf
bm9uY2UpCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKLQotICAgIGRlZiBzZW5kX2Zy
YW1lX29mX2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkpOgotICAgICAgICBzZWxm
Ll9zb2NrZXQuc2VuZGFsbChoZWFkZXIgKyBzZWxmLl9tYXNrX2h5YmkoYm9keSkpCi0KLSAgICBk
ZWYgc2VuZF9kYXRhKHNlbGYsIHBheWxvYWQsIGZyYW1lX3R5cGUsIGVuZD1UcnVlLCBtYXNrPVRy
dWUsCi0gICAgICAgICAgICAgICAgICByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wKToKLSAgICAgICAg
aWYgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
cGF5bG9hZCA9IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocGF5bG9hZCkKLQot
ICAgICAgICBpZiBzZWxmLl9mcmFnbWVudGVkOgotICAgICAgICAgICAgb3Bjb2RlID0gT1BDT0RF
X0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Bjb2RlID0gZnJhbWVf
dHlwZQotCi0gICAgICAgIGlmIGVuZDoKLSAgICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBG
YWxzZQotICAgICAgICAgICAgZmluID0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2Vs
Zi5fZnJhZ21lbnRlZCA9IFRydWUKLSAgICAgICAgICAgIGZpbiA9IDAKLQotICAgICAgICBpZiBz
ZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICBy
c3YxID0gMQotCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBtYXNrX2JpdCA9IDEgPDwg
NwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFza19iaXQgPSAwCi0KLSAgICAgICAgaGVh
ZGVyID0gY2hyKGZpbiA8PCA3IHwgcnN2MSA8PCA2IHwgcnN2MiA8PCA1IHwgcnN2MyA8PCA0IHwg
b3Bjb2RlKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXlsb2FkKQotICAgICAgICBp
ZiBwYXlsb2FkX2xlbmd0aCA8PSAxMjU6Ci0gICAgICAgICAgICBoZWFkZXIgKz0gY2hyKG1hc2tf
Yml0IHwgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPCAxIDw8
IDE2OgotICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3Qu
cGFjaygnIUgnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA8
IDEgPDwgNjM6Ci0gICAgICAgICAgICBoZWFkZXIgKz0gY2hyKG1hc2tfYml0IHwgMTI3KSArIHN0
cnVjdC5wYWNrKCchUScsIHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdUb28gbG9uZyBwYXlsb2FkICglZCBieXRlKScgJSBwYXlsb2Fk
X2xlbmd0aCkKLSAgICAgICAgaWYgbWFzazoKLSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9t
YXNrX2h5YmkocGF5bG9hZCkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsg
cGF5bG9hZCkKLQotICAgIGRlZiBzZW5kX2JpbmFyeShzZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1ZSwg
bWFzaz1UcnVlKToKLSAgICAgICAgc2VsZi5zZW5kX2RhdGEocGF5bG9hZCwgT1BDT0RFX0JJTkFS
WSwgZW5kLCBtYXNrKQotCi0gICAgZGVmIHNlbmRfdGV4dChzZWxmLCBwYXlsb2FkLCBlbmQ9VHJ1
ZSwgbWFzaz1UcnVlKToKLSAgICAgICAgc2VsZi5zZW5kX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0
Zi04JyksIE9QQ09ERV9URVhULCBlbmQsIG1hc2spCi0KLSAgICBkZWYgX2Fzc2VydF9yZWNlaXZl
X2RhdGEoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMpOgotICAg
ICAgICAoYWN0dWFsX2ZpbiwgYWN0dWFsX3JzdjEsIGFjdHVhbF9yc3YyLCBhY3R1YWxfcnN2Mywg
YWN0dWFsX29wY29kZSwKLSAgICAgICAgIHBheWxvYWRfbGVuZ3RoKSA9IHJlYWRfZnJhbWVfaGVh
ZGVyKHNlbGYuX3NvY2tldCkKLQotICAgICAgICBpZiBhY3R1YWxfb3Bjb2RlICE9IG9wY29kZToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3Rl
ZCBvcGNvZGU6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAg
ICAob3Bjb2RlLCBhY3R1YWxfb3Bjb2RlKSkKLQotICAgICAgICBpZiBhY3R1YWxfZmluICE9IGZp
bjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBl
Y3RlZCBmaW46ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAg
ICAoZmluLCBhY3R1YWxfZmluKSkKLQotICAgICAgICBpZiByc3YxIGlzIE5vbmU6Ci0gICAgICAg
ICAgICByc3YxID0gMAotICAgICAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVz
ZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgICAgIHJzdjEgPSAxCi0KLSAgICAgICAgaWYg
cnN2MiBpcyBOb25lOgotICAgICAgICAgICAgcnN2MiA9IDAKLQotICAgICAgICBpZiByc3YzIGlz
IE5vbmU6Ci0gICAgICAgICAgICByc3YzID0gMAotCi0gICAgICAgIGlmIGFjdHVhbF9yc3YxICE9
IHJzdjE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgcnN2MTogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAg
ICAgICAgIChyc3YxLCBhY3R1YWxfcnN2MSkpCi0KLSAgICAgICAgaWYgYWN0dWFsX3JzdjIgIT0g
cnN2MjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCByc3YyOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAg
ICAgICAgKHJzdjIsIGFjdHVhbF9yc3YyKSkKLQotICAgICAgICBpZiBhY3R1YWxfcnN2MyAhPSBy
c3YzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIHJzdjM6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAg
ICAgICAocnN2MywgYWN0dWFsX3JzdjMpKQotCi0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9i
eXRlcyhzZWxmLl9zb2NrZXQsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgICAgIGlmIHNlbGYuX2lu
Y29taW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlY2VpdmVkID0g
c2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcihyZWNlaXZlZCkKLQotICAgICAgICBp
ZiBsZW4ocmVjZWl2ZWQpICE9IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkIGxlbmd0aDogJWQgKGV4
cGVjdGVkKSB2cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChsZW4ocGF5bG9hZCks
IGxlbihyZWNlaXZlZCkpKQotCi0gICAgICAgIGlmIHBheWxvYWQgIT0gcmVjZWl2ZWQ6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5
bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChw
YXlsb2FkLCByZWNlaXZlZCkpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYs
IHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBmaW49MSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJzdjE9Tm9uZSwgcnN2Mj1Ob25lLCByc3YzPU5vbmUpOgotICAgICAgICBz
ZWxmLl9hc3NlcnRfcmVjZWl2ZV9kYXRhKHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3Yy
LCByc3YzKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwgcGF5bG9hZCwgb3Bj
b2RlPU9QQ09ERV9URVhULCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3Yx
PU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3JlY2Vp
dmVfZGF0YShwYXlsb2FkLmVuY29kZSgndXRmLTgnKSwgb3Bjb2RlLCBmaW4sIHJzdjEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MiwgcnN2MykKLQotICAgIGRlZiBfYnVp
bGRfY2xvc2VfZnJhbWUoc2VsZiwgY29kZSwgcmVhc29uLCBtYXNrKToKLSAgICAgICAgZnJhbWUg
PSBjaHIoMSA8PCA3IHwgT1BDT0RFX0NMT1NFKQotCi0gICAgICAgIGlmIGNvZGUgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFzb24u
ZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBib2R5ID0gJycKLSAg
ICAgICAgaWYgbWFzazoKLSAgICAgICAgICAgIGZyYW1lICs9IGNocigxIDw8IDcgfCBsZW4oYm9k
eSkpICsgc2VsZi5fbWFza19oeWJpKGJvZHkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBm
cmFtZSArPSBjaHIobGVuKGJvZHkpKSArIGJvZHkKLSAgICAgICAgcmV0dXJuIGZyYW1lCi0KLSAg
ICBkZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbCgKLSAgICAgICAgICAgIHNlbGYuX2J1aWxkX2Nsb3NlX2ZyYW1lKGNvZGUsIHJl
YXNvbiwgVHJ1ZSkpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY29kZSwg
cmVhc29uKToKLSAgICAgICAgZXhwZWN0ZWRfZnJhbWUgPSBzZWxmLl9idWlsZF9jbG9zZV9mcmFt
ZShjb2RlLCByZWFzb24sIEZhbHNlKQotICAgICAgICBhY3R1YWxfZnJhbWUgPSByZWNlaXZlX2J5
dGVzKHNlbGYuX3NvY2tldCwgbGVuKGV4cGVjdGVkX2ZyYW1lKSkKLSAgICAgICAgaWYgYWN0dWFs
X2ZyYW1lICE9IGV4cGVjdGVkX2ZyYW1lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGNsb3NlIGZyYW1lOiAlciAoZXhwZWN0ZWQpIHZz
ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVkX2ZyYW1lLCBhY3R1YWxf
ZnJhbWUpKQotCi0KLWNsYXNzIFdlYlNvY2tldFN0cmVhbUhpeGllNzUob2JqZWN0KToKLSAgICAi
IiJGcmFtZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiBIaXhp
ZSA3NSBhbmQgSHlCaSAwMC4KLSAgICAiIiIKLQotICAgIF9DTE9TRV9GUkFNRSA9ICdceGZmXHgw
MCcKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQsIHVudXNlZF9oYW5kc2hha2UpOgot
ICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgIGRlZiBzZW5kX2ZyYW1lX29mX2Fy
Yml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJvZHkpOgotICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbChoZWFkZXIgKyBib2R5KQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2Fk
LCB1bnVzZWRfZnJhbWVfdHlwZW0sIHVudXNlZF9lbmQsIHVudXNlZF9tYXNrKToKLSAgICAgICAg
ZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIHBheWxvYWQsICdceGZmJ10pCi0gICAgICAgIHNlbGYu
X3NvY2tldC5zZW5kYWxsKGZyYW1lKQotCi0gICAgZGVmIHNlbmRfYmluYXJ5KHNlbGYsIHVudXNl
ZF9wYXlsb2FkLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIHBhc3MKLQotICAg
IGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgot
ICAgICAgICBlbmNvZGVkX3BheWxvYWQgPSBwYXlsb2FkLmVuY29kZSgndXRmLTgnKQotICAgICAg
ICBmcmFtZSA9ICcnLmpvaW4oWydceDAwJywgZW5jb2RlZF9wYXlsb2FkLCAnXHhmZiddKQotICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2
ZV9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9QQ09ERV9CSU5BUlksIGZpbj0xLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCk6Ci0gICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignQmluYXJ5IGZyYW1lIGlzIG5vdCBzdXBwb3J0ZWQgaW4gaGl4
aWU3NScpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfdGV4dChzZWxmLCBwYXlsb2FkKToKLSAg
ICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLQotICAgICAg
ICBpZiByZWNlaXZlZCAhPSAnXHgwMCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZnJhbWUgdHlwZTogJWQgKGV4cGVjdGVkKSB2cyAl
ZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgICgwLCBvcmQocmVjZWl2ZWQpKSkKLQotICAg
ICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBsZW4ocGF5bG9hZCkg
KyAxKQotICAgICAgICBpZiByZWNlaXZlZFstMV0gIT0gJ1x4ZmYnOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdUZXJtaW5hdGlvbiBleHBlY3RlZDogMHhm
ZiAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWQp
Ci0KLSAgICAgICAgaWYgcmVjZWl2ZWRbMDotMV0gIT0gcGF5bG9hZDoKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkOiAlciAo
ZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHBheWxvYWQsIHJl
Y2VpdmVkWzA6LTFdKSkKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGUsIHJlYXNvbik6
Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHNlbGYuX0NMT1NFX0ZSQU1FKQotCi0gICAg
ZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIHVudXNlZF9jb2RlLCB1bnVzZWRfcmVhc29u
KToKLSAgICAgICAgY2xvc2luZyA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBsZW4oc2Vs
Zi5fQ0xPU0VfRlJBTUUpKQotICAgICAgICBpZiBjbG9zaW5nICE9IHNlbGYuX0NMT1NFX0ZSQU1F
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2luZyBo
YW5kc2hha2UnKQotCi0KLWNsYXNzIENsaWVudE9wdGlvbnMob2JqZWN0KToKLSAgICAiIiJIb2xk
cyBvcHRpb24gdmFsdWVzIHRvIGNvbmZpZ3VyZSB0aGUgQ2xpZW50IG9iamVjdC4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi52ZXJzaW9uID0gMTMKLSAgICAgICAg
c2VsZi5zZXJ2ZXJfaG9zdCA9ICcnCi0gICAgICAgIHNlbGYub3JpZ2luID0gJycKLSAgICAgICAg
c2VsZi5yZXNvdXJjZSA9ICcnCi0gICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSAtMQotICAgICAg
ICBzZWxmLnNvY2tldF90aW1lb3V0ID0gMTAwMAotICAgICAgICBzZWxmLnVzZV90bHMgPSBGYWxz
ZQotICAgICAgICBzZWxmLmV4dGVuc2lvbnMgPSBbXQotICAgICAgICAjIEVuYWJsZSBkZWZsYXRl
LWFwcGxpY2F0aW9uLWRhdGEuCi0gICAgICAgIHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBGYWxz
ZQotICAgICAgICAjIEVuYWJsZSBtdXgKLSAgICAgICAgc2VsZi51c2VfbXV4ID0gRmFsc2UKLQot
ICAgIGRlZiBlbmFibGVfZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi51c2VfZGVm
bGF0ZV9mcmFtZSA9IFRydWUKLSAgICAgICAgc2VsZi5leHRlbnNpb25zLmFwcGVuZChfREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0KLSAgICBkZWYgZW5hYmxlX211eChzZWxmKToKLSAgICAgICAg
c2VsZi51c2VfbXV4ID0gVHJ1ZQotICAgICAgICBzZWxmLmV4dGVuc2lvbnMuYXBwZW5kKF9NVVhf
RVhURU5TSU9OKQotCi0KLWRlZiBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KGhvc3QsIHBvcnQs
IHRpbWVvdXQsIHVzZV90bHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyeT0x
MCwgc2xlZXBfc2VjPTAuMSk6Ci0gICAgcmV0cnlfY291bnQgPSAwCi0gICAgd2hpbGUgcmV0cnlf
Y291bnQgPCByZXRyeToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9IHNvY2tldC5zb2Nr
ZXQoKQotICAgICAgICAgICAgcy5zZXR0aW1lb3V0KHRpbWVvdXQpCi0gICAgICAgICAgICBzLmNv
bm5lY3QoKGhvc3QsIHBvcnQpKQotICAgICAgICAgICAgaWYgdXNlX3RsczoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gX1RMU1NvY2tldChzKQotICAgICAgICAgICAgcmV0dXJuIHMKLSAgICAgICAg
ZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJu
by5FQ09OTlJFRlVTRUQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgcmV0cnlfY291bnQgPSByZXRyeV9jb3VudCArIDEKLSAgICAgICAg
ICAgICAgICB0aW1lLnNsZWVwKHNsZWVwX3NlYykKLQotICAgIHJldHVybiBOb25lCi0KLQotY2xh
c3MgQ2xpZW50KG9iamVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IGNsaWVudC4iIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBoYW5kc2hha2UsIHN0cmVhbV9jbGFzcyk6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAg
IHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IE5vbmUKLQot
ICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBoYW5kc2hha2UKLSAgICAgICAgc2VsZi5fc3RyZWFt
X2NsYXNzID0gc3RyZWFtX2NsYXNzCi0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAg
c2VsZi5fc29ja2V0ID0gY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeSgKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zb2NrZXRfdGlt
ZW91dCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAg
c2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZShzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgc2VsZi5f
c3RyZWFtID0gc2VsZi5fc3RyZWFtX2NsYXNzKHNlbGYuX3NvY2tldCwgc2VsZi5faGFuZHNoYWtl
KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykK
LQotICAgIGRlZiBzZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcyhzZWxmLCBoZWFkZXIsIGJv
ZHkpOgotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMo
aGVhZGVyLCBib2R5KQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9
VHJ1ZSwgYmluYXJ5PUZhbHNlLCByYXc9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBtYXNr
PVRydWUpOgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2Vu
ZF9iaW5hcnkobWVzc2FnZSwgZW5kLCBtYXNrKQotICAgICAgICBlbGlmIHJhdzoKLSAgICAgICAg
ICAgIHNlbGYuX3N0cmVhbS5zZW5kX2RhdGEobWVzc2FnZSwgT1BDT0RFX1RFWFQsIGVuZCwgbWFz
aykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX3RleHQobWVz
c2FnZSwgZW5kLCBtYXNrKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlKHNlbGYsIHBheWxvYWQs
IGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIHNlbGYuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkocGF5bG9hZCkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNlbGYuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV90ZXh0KHBheWxvYWQpCi0KLSAgICBk
ZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlPVNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScn
KToKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAg
ZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNvZGU9U1RBVFVTX05PUk1BTF9DTE9TVVJF
LCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
Y29kZSwgcmVhc29uKQotCi0gICAgZGVmIGNsb3NlX3NvY2tldChzZWxmKToKLSAgICAgICAgc2Vs
Zi5fc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBhc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoc2Vs
Zik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlYWRfZGF0YSA9IHJlY2VpdmVfYnl0ZXMo
c2VsZi5fc29ja2V0LCAxKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAg
ICAgICBpZiBzdHIoZSkuZmluZCgKLSAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQg
YmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcpID09IDA6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZXJyb3JfbnVtYmVy
LCBtZXNzYWdlID0gZQotICAgICAgICAgICAgICAgIGZvciBlcnJvcl9uYW1lIGluIFsnRUNPTk5S
RVNFVCcsICdXU0FFQ09OTlJFU0VUJ106Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcl9u
YW1lIGluIGRpcihlcnJubykgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9udW1i
ZXIgPT0gZ2V0YXR0cihlcnJubywgZXJyb3JfbmFtZSkpOgotICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgZQot
ICAgICAgICAgICAgcmFpc2UgZQotCi0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ29ubmVjdGlv
biBpcyBub3QgY2xvc2VkIChSZWFkOiAlciknICUgcmVhZF9kYXRhKQotCi0KLWRlZiBjcmVhdGVf
Y2xpZW50KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9wdGlvbnMsIFdl
YlNvY2tldEhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29ja2V0U3RyZWFtKQotCi0KLWRlZiBjcmVh
dGVfY2xpZW50X2h5YmkwMChvcHRpb25zKToKLSAgICByZXR1cm4gQ2xpZW50KAotICAgICAgICBv
cHRpb25zLAotICAgICAgICBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob3B0aW9ucywgJzAnKSwK
LSAgICAgICAgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKLQotCi1kZWYgY3JlYXRlX2NsaWVudF9o
aXhpZTc1KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9wdGlvbnMsIFdl
YlNvY2tldEhpeGllNzVIYW5kc2hha2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVhbUhpeGllNzUp
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRf
d2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5h
bF9zZXJ2ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3Zjg2ZmRiNDE2M2Q0
ZTczODk1MmIzY2NiNzdmMTkyMTZiYzU5MTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVy
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0IGZvciBlbmQtdG8tZW5kIHdpdGggZXh0
ZXJuYWwgc2VydmVyLgotCi1UaGlzIHRlc3QgaXMgbm90IHJ1biBieSBydW5fYWxsLnB5IGJlY2F1
c2UgaXQgcmVxdWlyZXMgc29tZSBwcmVwYXJhdGlvbnMuCi1JZiB5b3Ugd291bGQgbGlrZSB0byBy
dW4gdGhpcyB0ZXN0IGNvcnJlY3RseSwgbGF1bmNoIEFwYWNoZSB3aXRoIG1vZF9weXRob24KLWFu
ZCBtb2RfcHl3ZWJzb2NrZXQgbWFudWFsbHkuIEluIGFkZGl0aW9uLCB5b3Ugc2hvdWxkIHBhc3Mg
YWxsb3dfZHJhZnQ3NSBvcHRpb24KLWFuZCBleGFtcGxlIHBhdGggYXMgaGFuZGxlcl9zY2FuIG9w
dGlvbiBhbmQgQXBhY2hlJ3MgRG9jdW1lbnRSb290LgotIiIiCi0KLQotaW1wb3J0IG9wdHBhcnNl
Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGVzdC50ZXN0X2VuZHRvZW5kCi1pbXBvcnQgdW5pdHRlc3QK
LQotCi1fREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAotCi0KLWNsYXNzIEVuZFRvRW5kVGVz
dFdpdGhFeHRlcm5hbFNlcnZlcih0ZXN0LnRlc3RfZW5kdG9lbmQuRW5kVG9FbmRUZXN0KToKLSAg
ICBwYXNzCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgcGFyc2VyID0gb3B0cGFy
c2UuT3B0aW9uUGFyc2VyKCkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wb3J0Jywg
ZGVzdD0ncG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1f
REVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nZXh0
ZXJuYWwgdGVzdCBzZXJ2ZXIgcG9ydC4nKQotICAgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5w
YXJzZV9hcmdzKCkKLQotICAgIHRlc3QudGVzdF9lbmR0b2VuZC5fdXNlX2V4dGVybmFsX3NlcnZl
ciA9IFRydWUKLSAgICB0ZXN0LnRlc3RfZW5kdG9lbmQuX2V4dGVybmFsX3NlcnZlcl9wb3J0ID0g
b3B0aW9ucy5wb3J0Ci0KLSAgICB1bml0dGVzdC5tYWluKGFyZ3Y9W3N5cy5hcmd2WzBdXSkKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tb2NrLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L21vY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZmZjYWM0OGRj
NDNhNTJiOWNjZjFiY2QwMTI5NzU0MjQwNDhkNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyMjEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0j
IGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0j
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTW9ja3MgZm9yIHRlc3Rpbmcu
Ci0iIiIKLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9y
dCBTdHJlYW1IaXhpZTc1Ci0KLQotY2xhc3MgX01vY2tDb25uQmFzZShvYmplY3QpOgotICAgICIi
IkJhc2UgY2xhc3Mgb2YgbW9ja3MgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAg
ICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGEgKG1vY2sp
IG1wX2Nvbm4uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNl
bGYuX3dyaXRlX2RhdGEgPSBbXQotICAgICAgICBzZWxmLnJlbW90ZV9hZGRyID0gJ2Zha2VfYWRk
cmVzcycKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUg
bW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi53cml0ZS4iIiIKLQotICAgICAgICBzZWxmLl93cml0
ZV9kYXRhLmFwcGVuZChkYXRhKQotCi0gICAgZGVmIHdyaXR0ZW5fZGF0YShzZWxmKToKLSAgICAg
ICAgIiIiR2V0IGJ5dGVzIHdyaXR0ZW4gdG8gdGhpcyBtb2NrLiIiIgotCi0gICAgICAgIHJldHVy
biAnJy5qb2luKHNlbGYuX3dyaXRlX2RhdGEpCi0KLQotY2xhc3MgTW9ja0Nvbm4oX01vY2tDb25u
QmFzZSk6Ci0gICAgIiIiTW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAg
IFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSBh
IChtb2NrKSBtcF9jb25uIGFzCi0gICAgd2VsbCBhcyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4g
dG8gaXQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVhZF9kYXRhKToKLSAg
ICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAg
ICAgICAgcmVhZF9kYXRhOiBieXRlcyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCB3aGVuIHJlYWQq
IG1ldGhvZHMgYXJlCi0gICAgICAgICAgICBjYWxsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IF9Nb2NrQ29ubkJhc2UuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcmVhZF9kYXRhID0g
cmVhZF9kYXRhCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zID0gMAotCi0gICAgZGVmIHJlYWRsaW5l
KHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJl
YWRsaW5lLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRfcG9zID49IGxlbihzZWxmLl9yZWFk
X2RhdGEpOgotICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgIGVuZF9pbmRleCA9IHNlbGYu
X3JlYWRfZGF0YS5maW5kKCdcbicsIHNlbGYuX3JlYWRfcG9zKSArIDEKLSAgICAgICAgaWYgbm90
IGVuZF9pbmRleDoKLSAgICAgICAgICAgIGVuZF9pbmRleCA9IGxlbihzZWxmLl9yZWFkX2RhdGEp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWFkX3VwX3RvKGVuZF9pbmRleCkKLQotICAgIGRlZiBy
ZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hl
Lm1wX2Nvbm4ucmVhZC4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2Vs
Zi5fcmVhZF9kYXRhKToKLSAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICBlbmRfaW5kZXgg
PSBtaW4obGVuKHNlbGYuX3JlYWRfZGF0YSksIHNlbGYuX3JlYWRfcG9zICsgbGVuZ3RoKQotICAg
ICAgICByZXR1cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCi0KLSAgICBkZWYgX3JlYWRf
dXBfdG8oc2VsZiwgZW5kX2luZGV4KToKLSAgICAgICAgbGluZSA9IHNlbGYuX3JlYWRfZGF0YVtz
ZWxmLl9yZWFkX3BvczplbmRfaW5kZXhdCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zID0gZW5kX2lu
ZGV4Ci0gICAgICAgIHJldHVybiBsaW5lCi0KLQotY2xhc3MgTW9ja0Jsb2NraW5nQ29ubihfTW9j
a0Nvbm5CYXNlKToKLSAgICAiIiJCbG9ja2luZyBtb2NrIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5t
cF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQg
YmUgcmVhZCBmcm9tIGEgKG1vY2spIG1wX2Nvbm4gYXMKLSAgICB3ZWxsIGFzIHRvIGNoZWNrIHdo
YXQgaXMgd3JpdHRlbiB0byBpdC4KLSAgICBDYWxsZXJzIG9mIHJlYWQqIG1ldGhvZHMgd2lsbCBi
bG9jayBpZiB0aGVyZSBpcyBubyBieXRlcyBhdmFpbGFibGUuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIF9Nb2NrQ29ubkJhc2UuX19pbml0X18oc2VsZikKLSAg
ICAgICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICBkZWYgcmVhZGxpbmUoc2Vs
Zik6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZGxp
bmUuIiIiCi0gICAgICAgIGxpbmUgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAg
ICAgYyA9IHNlbGYuX3F1ZXVlLmdldCgpCi0gICAgICAgICAgICBsaW5lICs9IGMKLSAgICAgICAg
ICAgIGlmIGMgPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICByZXR1cm4gbGluZQotCi0gICAgZGVm
IHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFj
aGUubXBfY29ubi5yZWFkLiIiIgotCi0gICAgICAgIGRhdGEgPSAnJwotICAgICAgICBmb3IgdW51
c2VkIGluIHJhbmdlKGxlbmd0aCk6Ci0gICAgICAgICAgICBkYXRhICs9IHNlbGYuX3F1ZXVlLmdl
dCgpCi0gICAgICAgIHJldHVybiBkYXRhCi0KLSAgICBkZWYgcHV0X2J5dGVzKHNlbGYsIGJ5dGVz
KToKLSAgICAgICAgIiIiUHV0IGJ5dGVzIHRvIGJlIHJlYWQgZnJvbSB0aGlzIG1vY2suCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIGJ5dGVzOiBieXRlcyB0byBiZSByZWFkLgotICAgICAg
ICAiIiIKLQotICAgICAgICBmb3IgYnl0ZSBpbiBieXRlczoKLSAgICAgICAgICAgIHNlbGYuX3F1
ZXVlLnB1dChieXRlKQotCi0KLWNsYXNzIE1vY2tUYWJsZShkaWN0KToKLSAgICAiIiJNb2NrIHRh
YmxlLgotCi0gICAgVGhpcyBtaW1pY3MgbW9kX3B5dGhvbiBtcF90YWJsZS4gTm90ZSB0aGF0IG9u
bHkgdGhlIG1ldGhvZHMgdXNlZCBieQotICAgIHRlc3RzIGFyZSBvdmVycmlkZGVuLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvcHlfZnJvbT17fSk6Ci0gICAgICAgIGlmIGlz
aW5zdGFuY2UoY29weV9mcm9tLCBkaWN0KToKLSAgICAgICAgICAgIGNvcHlfZnJvbSA9IGNvcHlf
ZnJvbS5pdGVtcygpCi0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGNvcHlfZnJvbToKLSAgICAg
ICAgICAgIHNlbGYuX19zZXRpdGVtX18oa2V5LCB2YWx1ZSkKLQotICAgIGRlZiBfX2dldGl0ZW1f
XyhzZWxmLCBrZXkpOgotICAgICAgICByZXR1cm4gc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5fX2dl
dGl0ZW1fXyhrZXkubG93ZXIoKSkKLQotICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZh
bHVlKToKLSAgICAgICAgc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5fX3NldGl0ZW1fXyhrZXkubG93
ZXIoKSwgdmFsdWUpCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmX3ZhbHVlPU5vbmUpOgot
ICAgICAgICByZXR1cm4gc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5nZXQoa2V5Lmxvd2VyKCksIGRl
Zl92YWx1ZSkKLQotCi1jbGFzcyBNb2NrUmVxdWVzdChvYmplY3QpOgotICAgICIiIk1vY2sgcmVx
dWVzdC4KLQotICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmk9Tm9uZSwgaGVhZGVyc19pbj17fSwgY29ubmVjdGlv
bj1Ob25lLCBtZXRob2Q9J0dFVCcsCi0gICAgICAgICAgICAgICAgIHByb3RvY29sPSdIVFRQLzEu
MScsIGlzX2h0dHBzPUZhbHNlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgot
Ci0gICAgICAgIEFyZ3VtZW50czoKLSAgICAgICAgICAgIHVyaTogVVJJIG9mIHRoZSByZXF1ZXN0
LgotICAgICAgICAgICAgaGVhZGVyc19pbjogUmVxdWVzdCBoZWFkZXJzLgotICAgICAgICAgICAg
Y29ubmVjdGlvbjogQ29ubmVjdGlvbiB1c2VkIGZvciB0aGUgcmVxdWVzdC4KLSAgICAgICAgICAg
IG1ldGhvZDogcmVxdWVzdCBtZXRob2QuCi0gICAgICAgICAgICBpc19odHRwczogV2hldGhlciB0
aGlzIHJlcXVlc3QgaXMgb3ZlciBTU0wuCi0KLSAgICAgICAgU2VlIHRoZSBkb2N1bWVudCBvZiBt
b2RfcHl0aG9uIFJlcXVlc3QgZm9yIGRldGFpbHMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxm
LnVyaSA9IHVyaQotICAgICAgICBzZWxmLnVucGFyc2VkX3VyaSA9IHVyaQotICAgICAgICBzZWxm
LmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uCi0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0g
ICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLmhlYWRlcnNfaW4g
PSBNb2NrVGFibGUoaGVhZGVyc19pbikKLSAgICAgICAgIyBzZWxmLmlzX2h0dHBzXyBuZWVkcyB0
byBiZSBhY2Nlc3NpYmxlIGZyb20gdGVzdHMuICBUbyBhdm9pZCBuYW1lCi0gICAgICAgICMgY29u
ZmxpY3Qgd2l0aCBzZWxmLmlzX2h0dHBzKCksIGl0IGlzIG5hbWVkIGFzIHN1Y2guCi0gICAgICAg
IHNlbGYuaXNfaHR0cHNfID0gaXNfaHR0cHMKLSAgICAgICAgc2VsZi53c19zdHJlYW0gPSBTdHJl
YW1IaXhpZTc1KHNlbGYsIFRydWUpCi0gICAgICAgIHNlbGYud3NfY2xvc2VfY29kZSA9IE5vbmUK
LSAgICAgICAgc2VsZi53c19jbG9zZV9yZWFzb24gPSBOb25lCi0gICAgICAgIHNlbGYud3NfdmVy
c2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZQkkwMAotICAgICAgICBzZWxmLndzX2RlZmxhdGUgPSBG
YWxzZQotCi0gICAgZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gd2hldGhl
ciB0aGlzIHJlcXVlc3QgaXMgb3ZlciBTU0wuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmlzX2h0
dHBzXwotCi0KLWNsYXNzIE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiTW9jayBmb3Ig
ZGlzcGF0Y2guRGlzcGF0Y2hlci4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAg
ICAgc2VsZi5kb19leHRyYV9oYW5kc2hha2VfY2FsbGVkID0gRmFsc2UKLQotICAgIGRlZiBkb19l
eHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgc2VsZi5kb19leHRy
YV9oYW5kc2hha2VfY2FsbGVkID0gVHJ1ZQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwg
Y29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
bXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzA0ZTdmYzk1ZDNmYzViM2VlMmQ5ZTU0ZjIwNzgyYWRkYWUyMDQwZi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbXV4X2NsaWVudF9mb3Jf
dGVzdGluZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5MCArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBjbGllbnQgdXRp
bGl0eSBmb3IgdGVzdGluZyBtdXggZXh0ZW5zaW9uLgotCi1UaGlzIGNvZGUgc2hvdWxkIGJlIGlu
ZGVwZW5kZW50IGZyb20gbW9kX3B5d2Vic29ja2V0LiBTZWUgdGhlIGNvbW1lbnQgb2YKLWNsaWVu
dF9mb3JfdGVzdGluZy5weS4KLQotTk9URTogVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCBs
aWtlIGNsaWVudF9mb3JfdGVzdGluZy5weS4KLSIiIgotCi0KLQotaW1wb3J0IFF1ZXVlCi1pbXBv
cnQgYmFzZTY0Ci1pbXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBlbWFpbAotaW1wb3J0IGVtYWls
LnBhcnNlcgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQgb3MKLWltcG9ydCBy
YW5kb20KLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcKLQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotZnJvbSB0ZXN0IGltcG9ydCBjbGll
bnRfZm9yX3Rlc3RpbmcKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFVTFRfQ0hB
Tk5FTF9JRCA9IDEKLQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKLV9NVVhf
T1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19DT05UUk9M
ID0gMgotX01VWF9PUENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVXX0NIQU5O
RUxfU0xPVCA9IDQKLQotCi1jbGFzcyBfQ29udHJvbEJsb2NrOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcGNvZGUpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotCi0KLWRlZiBfcGFy
c2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlKToKLSAgICBzdGF0dXNfbGluZSwgaGVhZGVy
X2xpbmVzID0gcmVzcG9uc2Uuc3BsaXQoJ1xyXG4nLCAxKQotCi0gICAgd29yZHMgPSBzdGF0dXNf
bGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHdvcmRzKSA8IDM6Ci0gICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0JhZCBTdGF0dXMtTGluZSBzeW50YXggJXInICUgc3RhdHVzX2xpbmUpCi0gICAg
W3ZlcnNpb24sIHJlc3BvbnNlX2NvZGVdID0gd29yZHNbOjJdCi0gICAgaWYgdmVyc2lvbiAhPSAn
SFRUUC8xLjEnOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgdmVyc2lv
biAlcicgJSB2ZXJzaW9uKQotCi0gICAgaWYgcmVzcG9uc2VfY29kZSAhPSAnMTAxJzoKLSAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJlc3BvbnNlIGNvZGUgJXIgJyAlIHJlc3BvbnNlX2Nv
ZGUpCi0gICAgaGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJf
bGluZXMpCi0gICAgcmV0dXJuIGhlYWRlcnMKLQotCi1kZWYgX3BhcnNlX2NoYW5uZWxfaWQoZGF0
YSwgb2Zmc2V0PTApOgotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAgIHJlbWFpbmluZyA9IGxl
bmd0aCAtIG9mZnNldAotCi0gICAgaWYgcmVtYWluaW5nIDw9IDA6Ci0gICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignTm8gY2hhbm5lbCBpZCBmb3VuZCcpCi0KLSAgICBjaGFubmVsX2lkID0gb3JkKGRh
dGFbb2Zmc2V0XSkKLSAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKLSAgICBpZiBjaGFubmVsX2lk
ICYgMHhlMCA9PSAweGUwOgotICAgICAgICBpZiByZW1haW5pbmcgPCA0OgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hh
bm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YVtvZmZzZXQ6b2Zmc2V0KzRdKVswXSAmIDB4MWZmZmZmZmYKLSAgICAgICAg
Y2hhbm5lbF9pZF9sZW5ndGggPSA0Ci0gICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMw
OgotICAgICAgICBpZiByZW1haW5pbmcgPCAzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9ICgoKGNo
YW5uZWxfaWQgJiAweDFmKSA8PCAxNikgKwotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51
bnBhY2soJyFIJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdKQotICAgICAgICBjaGFubmVs
X2lkX2xlbmd0aCA9IDMKLSAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6Ci0gICAg
ICAgIGlmIHJlbWFpbmluZyA8IDI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFs
aWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFj
aygnIUgnLCBkYXRhW29mZnNldDpvZmZzZXQrMl0pWzBdICYgMHgzZmZmCi0gICAgICAgIGNoYW5u
ZWxfaWRfbGVuZ3RoID0gMgotCi0gICAgcmV0dXJuIGNoYW5uZWxfaWQsIGNoYW5uZWxfaWRfbGVu
Z3RoCi0KLQotZGVmIF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0PTApOgotICAgIGZpcnN0X2J5
dGUgPSBvcmQoZGF0YVtvZmZzZXRdKQotICAgIGlmIChmaXJzdF9ieXRlICYgMHg4MCkgIT0gMDoK
LSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgTVNCIG9mIG51bWJlciBmaWVsZCBtdXN0IGJl
IHVuc2V0JykKLSAgICBmaXJzdF9ieXRlID0gZmlyc3RfYnl0ZSAmIDB4N2YKLSAgICBpZiBmaXJz
dF9ieXRlID09IDEyNzoKLSAgICAgICAgaWYgb2Zmc2V0ICsgOSA+IGxlbihkYXRhKToKLSAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAgICByZXR1cm4g
c3RydWN0LnVucGFjaygnIVEnLCBkYXRhW29mZnNldCsxOm9mZnNldCs5XSlbMF0sIDkKLSAgICBp
ZiBmaXJzdF9ieXRlID09IDEyNjoKLSAgICAgICAgaWYgb2Zmc2V0ICsgMyA+IGxlbihkYXRhKToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAgICBy
ZXR1cm4gc3RydWN0LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0sIDMK
LSAgICByZXR1cm4gZmlyc3RfYnl0ZSwgMQotCi0KLWRlZiBfcGFyc2Vfc2l6ZV9hbmRfY29udGVu
dHMoZGF0YSwgb2Zmc2V0PTApOgotICAgIHNpemUsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRh
dGEsIG9mZnNldCkKLSAgICBzdGFydF9wb3NpdGlvbiA9IG9mZnNldCArIGFkdmFuY2UKLSAgICBl
bmRfcG9zaXRpb24gPSBzdGFydF9wb3NpdGlvbiArIHNpemUKLSAgICBpZiBsZW4oZGF0YSkgPCBl
bmRfcG9zaXRpb246Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBzaXplIG9mIGNv
bnRyb2wgYmxvY2sgKCVkIDwgJWQpJyAlICgKLSAgICAgICAgICAgICAgICBsZW4oZGF0YSksIGVu
ZF9wb3NpdGlvbikpCi0gICAgcmV0dXJuIGRhdGFbc3RhcnRfcG9zaXRpb246ZW5kX3Bvc2l0aW9u
XSwgc2l6ZSArIGFkdmFuY2UKLQotCi1kZWYgX3BhcnNlX2NvbnRyb2xfYmxvY2tzKGRhdGEpOgot
ICAgIGJsb2NrcyA9IFtdCi0gICAgbGVuZ3RoID0gbGVuKGRhdGEpCi0gICAgcG9zID0gMAotCi0g
ICAgd2hpbGUgcG9zIDwgbGVuZ3RoOgotICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbcG9z
XSkKLSAgICAgICAgcG9zICs9IDEKLSAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4gNSkg
JiAweDcKLSAgICAgICAgYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZSkKLQotICAgICAgICAj
IFRPRE8oYmFzaGkpOiBTdXBwb3J0IG1vcmUgb3Bjb2RlCi0gICAgICAgIGlmIG9wY29kZSA9PSBf
TVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgIGJsb2NrLmVuY29k
ZSA9IGZpcnN0X2J5dGUgJiAzCi0gICAgICAgICAgICBibG9jay5yZWplY3RlZCA9IChmaXJzdF9i
eXRlID4+IDQpICYgMQotCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNl
X2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNo
YW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0KLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlLCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBv
cykKLSAgICAgICAgICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hh
a2UKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBwZW5k
KGJsb2NrKQotICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6
Ci0gICAgICAgICAgICBibG9jay5tdXhfZXJyb3IgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLQot
ICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEs
IHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAg
ICAgICBwb3MgKz0gYWR2YW5jZQotCi0gICAgICAgICAgICByZWFzb24sIGFkdmFuY2UgPSBfcGFy
c2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgcG9zKQotICAgICAgICAgICAgaWYgbGVuKHJlYXNv
bikgPT0gMDoKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBOb25lCi0gICAgICAg
ICAgICAgICAgYmxvY2suZHJvcF9tZXNzYWdlID0gJycKLSAgICAgICAgICAgIGVsaWYgbGVuKHJl
YXNvbikgPj0gMjoKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5w
YWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCi0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9tZXNz
YWdlID0gcmVhc29uWzI6XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ0ludmFsaWQgRHJvcENoYW5uZWwnKQotICAgICAgICAgICAgcG9zICs9IGFk
dmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQs
IGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9j
ay5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAg
ICAgICAgICAgIHNlbmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykK
LSAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICAgICBw
b3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAg
ZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAg
IGZhbGxiYWNrID0gZmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgICAgIHNsb3RzLCBhZHZhbmNlID0g
X3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAg
ICAgICAgICAgc2VuZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQot
ICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGlmIGZhbGxiYWNrID09IDEg
YW5kIChzbG90cyAhPSAwIG9yIHNlbmRfcXVvdGEgIT0gMCk6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIHplcm8gaWYgRiBiaXQg
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgc2V0JykKLSAgICAgICAgICAg
IGJsb2NrLmZhbGxiYWNrID0gZmFsbGJhY2sKLSAgICAgICAgICAgIGJsb2NrLnNsb3RzID0gc2xv
dHMKLSAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICAg
ICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBtdXggb3Bjb2RlICVkIHJl
Y2VpdmVkJyAlIG9wY29kZSkKLQotICAgIHJldHVybiBibG9ja3MKLQotCi1kZWYgX2VuY29kZV9j
aGFubmVsX2lkKGNoYW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNo
YW5uZWxfaWQpCi0KLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAgICByZXR1cm4g
Y2hyKGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0gICAgICAgIHJl
dHVybiBzdHJ1Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAgIGlmIGNoYW5u
ZWxfaWQgPCAyICoqIDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQg
Pj4gMTYpKQotICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVs
X2lkICYgMHhmZmZmKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAgICAgICByZXR1
cm4gc3RydWN0LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0KLSAgICByYWlz
ZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQot
Ci0KLWRlZiBfZW5jb2RlX251bWJlcihudW1iZXIpOgotICAgIGlmIG51bWJlciA8PSAxMjU6Ci0g
ICAgICAgIHJldHVybiBjaHIobnVtYmVyKQotICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgMTYpOgot
ICAgICAgICByZXR1cm4gY2hyKDB4N2UpICsgc3RydWN0LnBhY2soJyFIJywgbnVtYmVyKQotICAg
IGVsaWYgbnVtYmVyIDwgKDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hyKDB4N2YpICsgc3Ry
dWN0LnBhY2soJyFRJywgbnVtYmVyKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSW52YWxpZCBudW1iZXInKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3Qo
Y2hhbm5lbF9pZCwgZW5jb2RlZF9oYW5kc2hha2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuY29kaW5nPTApOgotICAgIGxlbmd0aCA9IGxlbihlbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICBoYW5kc2hha2VfbGVuZ3RoID0gX2VuY29kZV9udW1iZXIobGVuZ3RoKQotCi0gICAgZmly
c3RfYnl0ZSA9IChfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2Rp
bmcKLSAgICByZXR1cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFu
bmVsX2lkKSArCi0gICAgICAgICAgICBoYW5kc2hha2VfbGVuZ3RoICsgZW5jb2RlZF9oYW5kc2hh
a2UpCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVk
X3F1b3RhKToKLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1
KQotICAgIHJldHVybiAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5u
ZWxfaWQpICsKLSAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkK
LQotCi1jbGFzcyBfTXV4UmVhZGVyVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIk11
eCByZWFkZXIgdGhyZWFkLgotCi0gICAgUmVhZHMgZnJhbWVzIGFuZCBwYXNzZXMgdGhlbSB0byB0
aGUgbXV4IGNsaWVudC4gVGhpcyB0aHJlYWQgYWNjZXNzZXMKLSAgICBwcml2YXRlIGZ1bmN0aW9u
cy92YXJpYWJsZXMgb2YgdGhlIG11eCBjbGllbnQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbXV4KToKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQot
ICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLl9tdXggPSBtdXgKLSAg
ICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9yZWNlaXZlX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIGZpcnN0X29wY29kZSA9IE5vbmUKLSAgICAgICAgcGVuZGlu
Z19wYXlsb2FkID0gW10KLSAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgot
ICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3Ro
ID0gKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5yZWFkX2ZyYW1lX2hlYWRl
cihzZWxmLl9tdXguX3NvY2tldCkpCi0KLSAgICAgICAgICAgIGlmIG5vdCBmaXJzdF9vcGNvZGU6
Ci0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVf
VEVYVDoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIHRl
eHQgbWVzc2FnZSBvbiBwaHlzaWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY29ubmVjdGlvbicpCi0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gd2FzIG5vdCBzdGFy
dGVkJykKLSAgICAgICAgICAgICAgICBpZiAob3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5P
UENPREVfQklOQVJZIG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9y
X3Rlc3RpbmcuT1BDT0RFX1BPTkcgb3IKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfUE9ORyBvcgotICAgICAgICAgICAgICAgICAgICBvcGNv
ZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRSk6Ci0gICAgICAgICAgICAgICAg
ICAgIGZpcnN0X29wY29kZSA9IG9wY29kZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG9wY29k
ZSBmcmFtZTogJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29k
ZSkKLQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZl
ZCBhIG5ldyBvcGNvZGUgYmVmb3JlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3Rlcm1pbmF0aW5nIGZyYWdtZW50YXRpb24nKQotCi0gICAgICAgICAgICBwYXlsb2FkID0gY2xp
ZW50X2Zvcl90ZXN0aW5nLnJlY2VpdmVfYnl0ZXMoCi0gICAgICAgICAgICAgICAgc2VsZi5fbXV4
Ll9zb2NrZXQsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9tdXguX2lu
Y29taW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBwYXlsb2Fk
ID0gc2VsZi5fbXV4Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCi0KLSAg
ICAgICAgICAgIHBlbmRpbmdfcGF5bG9hZC5hcHBlbmQocGF5bG9hZCkKLQotICAgICAgICAgICAg
aWYgZmluOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgc2VsZi5fc3RvcF9y
ZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotCi0gICAgICAgIG1lc3Nh
Z2UgPSAnJy5qb2luKHBlbmRpbmdfcGF5bG9hZCkKLSAgICAgICAgcmV0dXJuIGZpcnN0X29wY29k
ZSwgbWVzc2FnZQotCi0gICAgZGVmIHJlcXVlc3Rfc3RvcChzZWxmKToKLSAgICAgICAgc2VsZi5f
c3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAg
ICAgICAgIyBvcGNvZGUgaXMgT1BDT0RFX0JJTkFSWSBvciBjb250cm9sIG9wY29kZXMgd2hlbiBh
IG1lc3NhZ2UKLSAgICAgICAgICAgICAgICAjIGlzIHN1Y2Nlc2Z1bGx5IHJlY2VpdmVkLgotICAg
ICAgICAgICAgICAgIG9wY29kZSwgbWVzc2FnZSA9IHNlbGYuX3JlY2VpdmVfbWVzc2FnZSgpCi0g
ICAgICAgICAgICAgICAgaWYgbm90IG9wY29kZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVf
QklOQVJZOgotICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNl
X2NoYW5uZWxfaWQobWVzc2FnZSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9kaXNw
YXRjaF9mcmFtZShjaGFubmVsX2lkLCBtZXNzYWdlW2FkdmFuY2U6XSkKLSAgICAgICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3Byb2Nlc3NfY29udHJvbF9t
ZXNzYWdlKG9wY29kZSwgbWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX211eC5fbm90aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfSW5uZXJGcmFtZShvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29k
ZSwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYuZmluID0gZmluCi0gICAgICAgIHNlbGYucnN2MSA9
IHJzdjEKLSAgICAgICAgc2VsZi5yc3YyID0gcnN2MgotICAgICAgICBzZWxmLnJzdjMgPSByc3Yz
Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBh
eWxvYWQKLQotCi1jbGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnF1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAg
ICBzZWxmLnNlbmRfcXVvdGEgPSAwCi0gICAgICAgIHNlbGYucmVjZWl2ZV9xdW90YSA9IDAKLQot
Ci1jbGFzcyBNdXhDbGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgbXV4IGNsaWVudC4K
LQotICAgIE5vdGUgdGhhdCB0aGlzIGNsYXNzIGlzIE5PVCB0aHJlYWQtc2FmZS4gRG8gbm90IGFj
Y2VzcyBhbiBpbnN0YW5jZSBvZiB0aGlzCi0gICAgY2xhc3MgZnJvbSBtdWx0aXBsZSB0aHJlYWRz
IGF0IGEgc2FtZSB0aW1lLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlv
bnMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
LQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9vcHRpb25z
LmVuYWJsZV9tdXgoKQotICAgICAgICBzZWxmLl9zdHJlYW0gPSBOb25lCi0gICAgICAgIHNlbGYu
X3NvY2tldCA9IE5vbmUKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gY2xpZW50X2Zvcl90ZXN0
aW5nLldlYlNvY2tldEhhbmRzaGFrZShzZWxmLl9vcHRpb25zKQotICAgICAgICBzZWxmLl9pbmNv
bWluZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2Zp
bHRlciA9IE5vbmUKLQotICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQotICAgICAgICBz
ZWxmLl9yZWFkX3RocmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29u
ZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzID0gW10KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVl
KCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRpbmcu
Q29uZGl0aW9uKCk7Ci0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQotICAgICAg
ICBzZWxmLl90aW1lb3V0ID0gMgotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Ns
b3NlX2V2ZW50ID0gTm9uZQotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3Nl
X21lc3NhZ2UgPSBOb25lCi0KLSAgICBkZWYgX3BhcnNlX2lubmVyX2ZyYW1lKHNlbGYsIGRhdGEp
OgotICAgICAgICBpZiBsZW4oZGF0YSkgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSW52YWxpZCBlbmNhcHN1bGF0ZWQgZnJhbWUgcmVjZWl2ZWQnKQotCi0gICAgICAgIGZpcnN0
X2J5dGUgPSBvcmQoZGF0YVswXSkKLSAgICAgICAgZmluID0gKGZpcnN0X2J5dGUgPDwgNykgJiAx
Ci0gICAgICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA8PCA2KSAmIDEKLSAgICAgICAgcnN2MiA9IChm
aXJzdF9ieXRlIDw8IDUpICYgMQotICAgICAgICByc3YzID0gKGZpcnN0X2J5dGUgPDwgNCkgJiAx
Ci0gICAgICAgIG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQotICAgICAgICBpZiBzZWxmLl9v
dXRnb2luZ19mcmFtZV9maWx0ZXI6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0Z29p
bmdfZnJhbWVfZmlsdGVyLmZpbHRlcigKLSAgICAgICAgICAgICAgICBkYXRhWzE6XSkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHBheWxvYWQgPSBkYXRhWzE6XQotCi0gICAgICAgIHJldHVy
biBfSW5uZXJGcmFtZShmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCkKLQot
ICAgIGRlZiBfcHJvY2Vzc19tdXhfY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAgICAgIGZvciBi
bG9jayBpbiBzZWxmLl9jb250cm9sX2Jsb2NrczoKLSAgICAgICAgICAgIGlmIGJsb2NrLm9wY29k
ZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAgICAj
IEFkZENoYW5uZWxSZXNwb25zZSB3aWxsIGJlIGhhbmRsZWQgaW4gYWRkX2NoYW5uZWwoKS4KLSAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0g
X01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0g
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0lu
dmFsaWQgZmxvdyBjb250cm9sIHJlY2VpdmVkIGZvciAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgYmxvY2suY2hhbm5lbF9pZCkKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lk
XS5zZW5kX3F1b3RhICs9ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVv
dGEpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
Lm5vdGlmeSgpCi0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICBl
bGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtibG9jay5zZW5kX3F1b3RhXSAq
IGJsb2NrLnNsb3RzKQotCi0gICAgZGVmIF9kaXNwYXRjaF9mcmFtZShzZWxmLCBjaGFubmVsX2lk
LCBwYXlsb2FkKToKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lE
OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tz
X2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nr
cyArPSBfcGFyc2VfY29udHJvbF9ibG9ja3MocGF5bG9hZCkKLSAgICAgICAgICAgICAgICBzZWxm
Ll9wcm9jZXNzX211eF9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICAgICAgc2VsZi5fY29u
dHJvbF9ibG9ja3NfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICBpZiBub3Qg
Y2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGxvZ2ljYWwgZnJhbWUgb24gY2hhbm5lbCBpZCAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJWQsIHdoaWNoIGlzIG5vdCBl
c3RhYmxpc2hlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5l
bF9pZCkKLQotICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fcGFyc2VfaW5uZXJf
ZnJhbWUocGF5bG9hZCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2No
YW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgLT0gKAotICAgICAgICAgICAgICAgICAgICAgICAgbGVu
KGlubmVyX2ZyYW1lLnBheWxvYWQpKQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSA8IDA6Ci0gICAgICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignVGhlIHNlcnZlciB2aW9sYXRlcyBxdW90YSBvbiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVs
X2lkKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUucHV0KGlubmVyX2ZyYW1lKQotCi0gICAgZGVmIF9w
cm9jZXNzX2NvbnRyb2xfbWVzc2FnZShzZWxmLCBvcGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAj
IFBpbmcvUG9uZyBhcmUgbm90IHN1cHBvcnRlZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICBzZWxmLl9waHlzaWNhbF9j
b25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgICAgICBpZiBzZWxmLl9p
c19hY3RpdmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoCi0gICAg
ICAgICAgICAgICAgICAgIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xP
U1VSRSwgcmVhc29uPScnKQotICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnJlcXVl
c3Rfc3RvcCgpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xv
c2VfZXZlbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9z
ZV9ldmVudC5zZXQoKQotCi0gICAgZGVmIF9ub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVhZCB0aHJlYWQgdGVybWluYXRlZC4nKQotICAgICAg
ICBzZWxmLmNsb3NlX3NvY2tldCgpCi0KLSAgICBkZWYgX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZh
aWxhYmxlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Js
b2Nrc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5l
bF9zbG90cykgPT0gMDoKLSAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQotICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGlt
ZW91dCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90
cykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2VpdmUg
TmV3Q2hhbm5lbFNsb3QnKQotCi0gICAgZGVmIF9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFibGUo
c2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICAg
ICAgIyBXYWl0IG9uY2UKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9
PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBGbG93
Q29udHJvbCBmb3IgY2hhbm5lbCBpZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYW5uZWxfaWQpCi0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAgc2VsZi5fc29j
a2V0ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
c29ja2V0X3RpbWVvdXQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQot
Ci0gICAgICAgIHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotICAgICAg
ICBzZWxmLl9zdHJlYW0gPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0U3RyZWFtKAotICAg
ICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCi0KLSAgICAgICAgc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tfREVGQVVMVF9DSEFOTkVMX0lEXSA9IF9Mb2dpY2FsQ2hhbm5lbERh
dGEoKQotCi0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gX011eFJlYWRlclRocmVhZChzZWxm
KQotICAgICAgICBzZWxmLl9yZWFkX3RocmVhZC5zdGFydCgpCi0KLSAgICAgICAgc2VsZi5fYXNz
ZXJ0X2NoYW5uZWxfc2xvdF9hdmFpbGFibGUoKQotICAgICAgICBzZWxmLl9hc3NlcnRfc2VuZF9x
dW90YV9hdmFpbGFibGUoX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLQotICAgICAgICBzZWxmLl9pc19h
Y3RpdmUgPSBUcnVlCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFi
bGlzaGVkJykKLQotICAgIGRlZiBhZGRfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBvcHRpb25z
KToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignTXV4IGNsaWVudCBpcyBub3QgYWN0aXZlJykKLQotICAgICAgICBpZiBjaGFubmVs
X2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0NoYW5uZWwgaWQgJWQgYWxyZWFkeSBleGlzdHMnICUgY2hhbm5lbF9pZCkKLQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZW5kX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3Bs
ZWZ0KCkKLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignTm8gY2hhbm5lbCBzbG90czogJXInICUgZSkKLQotICAgICAgICAjIENyZWF0
ZSBBZGRDaGFubmVsIHJlcXVlc3QKLSAgICAgICAgcmVxdWVzdF9saW5lID0gJ0dFVCAlcyBIVFRQ
LzEuMVxyXG4nICUgb3B0aW9ucy5yZXNvdXJjZQotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAg
ICBpZiBvcHRpb25zLnNlcnZlcl9wb3J0ID09IGNsaWVudF9mb3JfdGVzdGluZy5ERUZBVUxUX1BP
UlQ6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdIb3N0OiAlc1xyXG4nICUgb3B0aW9ucy5z
ZXJ2ZXJfaG9zdC5sb3dlcigpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFw
cGVuZCgnSG9zdDogJXM6JWRcclxuJyAlIChvcHRpb25zLnNlcnZlcl9ob3N0Lmxvd2VyKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuc2Vy
dmVyX3BvcnQpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdPcmlnaW46ICVzXHJcbicgJSBvcHRp
b25zLm9yaWdpbi5sb3dlcigpKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdDb25uZWN0aW9uOiBV
cGdyYWRlXHJcbicpCi0KLSAgICAgICAgaWYgbGVuKG9wdGlvbnMuZXh0ZW5zaW9ucykgPiAwOgot
ICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiAlc1xy
XG4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKG9wdGlvbnMuZXh0ZW5z
aW9ucykpCi0KLSAgICAgICAgaGFuZHNoYWtlID0gcmVxdWVzdF9saW5lICsgJycuam9pbihmaWVs
ZHMpICsgJ1xyXG4nCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3QoCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBoYW5kc2hha2UpCi0gICAg
ICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBh
ZGRfY2hhbm5lbF9yZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXls
b2FkKQotCi0gICAgICAgICMgV2FpdCBBZGRDaGFubmVsUmVzcG9uc2UKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdXYWl0aW5nIEFkZENoYW5uZWxSZXNwb25zZSBmb3IgdGhlIHJlcXVlc3Qu
Li4nKQotICAgICAgICByZXNwb25zZSA9IE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBmb3IgYmxvY2sgaW4gc2VsZi5fY29udHJvbF9ibG9j
a3M6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGJsb2NrLm9wY29kZSAhPSBfTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICAgICAgICAgIGlmIGJsb2NrLmNoYW5uZWxfaWQgPT0gY2hhbm5lbF9pZDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYmxvY2sKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzLnJlbW92ZShyZXNwb25zZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgaWYgcmVzcG9uc2U6Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLndhaXQoc2VsZi5fdGltZW91dCkKLSAgICAgICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5faXNfYWN0aXZlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0FkZENo
YW5uZWxSZXF1ZXN0IHRpbWVkIG91dCcpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgIyBWYWxp
ZGF0ZSBBZGRDaGFubmVsUmVzcG9uc2UKLSAgICAgICAgaWYgcmVzcG9uc2UucmVqZWN0ZWQ6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RoZSBzZXJ2ZXIgcmVqZWN0ZWQgQWRkQ2hhbm5l
bFJlcXVlc3QnKQotCi0gICAgICAgIGZpZWxkcyA9IF9wYXJzZV9oYW5kc2hha2VfcmVzcG9uc2Uo
cmVzcG9uc2UuZW5jb2RlZF9oYW5kc2hha2UpCi0KLSAgICAgICAgIyBTaG91bGQgd2UgcmVqZWN0
IHdoZW4gVXBncmFkZSwgQ29ubmVjdGlvbiwgb3IgU2VjLVdlYlNvY2tldC1BY2NlcHQKLSAgICAg
ICAgIyBoZWFkZXJzIGV4aXN0PwotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29u
ZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxf
aWRdID0gX0xvZ2ljYWxDaGFubmVsRGF0YSgpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdMb2dpY2FsIGNoYW5uZWwgJWQgZXN0YWJsaXNoZWQnICUgY2hhbm5lbF9pZCkKLQot
ICAgIGRlZiBfY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChzZWxmLCBjaGFubmVsX2lk
KToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignTXV4IGNsaWVudCBpcyBub3QgYWN0aXZlJykKLQotICAgICAgICBpZiBub3QgY2hh
bm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdMb2dpY2FsIGNoYW5uZWwgJWQgaXMgbm90IGVzdGFibGlzaGVkLicpCi0KLSAgICBk
ZWYgZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICAjIFRPRE8oYmFzaGkp
OiBJbXBsZW1lbnQKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNlbmRfZmxvd19jb250cm9sKHNl
bGYsIGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAgICAgICAgc2VsZi5fY2hlY2tf
bG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSkK
LSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChfQ09OVFJPTF9DSEFOTkVMX0lE
KSArIGZsb3dfY29udHJvbAotICAgICAgICAjIFJlcGxlbmlzaCByZWNlaXZlIHF1b3RhCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5y
ZWNlaXZlX3F1b3RhICs9ICgKLSAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YSkKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLnJlbGVhc2UoKQotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkK
LQotICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY2hhbm5lbF9pZCwgbWVzc2FnZSwgZW5kPVRy
dWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9p
c19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICBm
aXJzdF9ieXRlID0gKGVuZCA8PCA3KSB8IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZ
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaXJzdF9ieXRlID0gKGVuZCA8PCA3KSB8IGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVAotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3Nh
Z2UuZW5jb2RlKCd1dGYtOCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPCBsZW4obWVzc2FnZSk6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kIHF1b3RhIHZpb2xhdGlvbjogJWQg
PCAlZCcgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
W2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBsZW4obWVz
c2FnZSkpKQotCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgLT0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgcGF5
bG9hZCA9IF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArIGNocihmaXJzdF9ieXRlKSAr
IG1lc3NhZ2UKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAg
ICBkZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgY2hhbm5lbF9pZCwgcGF5bG9hZCwgYmluYXJ5PUZh
bHNlKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFu
bmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5nZXQoCi0gICAgICAgICAgICAgICAg
dGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBleGNlcHQgUXVldWUuRW1wdHkgYXMgZToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVzc2FnZSBmcm9t
IGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lk
KQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29kZSA9IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUg
PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQKLQotICAgICAgICBpZiBpbm5lcl9mcmFt
ZS5vcGNvZGUgIT0gb3Bjb2RlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVj
dGVkIG9wY29kZSByZWNlaXZlZCAoJXIgIT0gJXIpJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGV4cGVjdGVkX29wY29kZSwgaW5uZXJfZnJhbWUub3Bjb2RlKSkKLQotICAgICAgICBp
ZiBpbm5lcl9mcmFtZS5wYXlsb2FkICE9IHBheWxvYWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1VuZXhwZWN0ZWQgcGF5bG9hZCByZWNlaXZlZCcpCi0KLSAgICBkZWYgc2VuZF9jbG9z
ZShzZWxmLCBjaGFubmVsX2lkLCBjb2RlPU5vbmUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYu
X2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAgICAgICBp
ZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcs
IGNvZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgYm9keSA9ICcnCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9ICgxIDw8IDcpIHwgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9DTE9TRQotICAgICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVs
X2lkKGNoYW5uZWxfaWQpICsgY2hyKGZpcnN0X2J5dGUpICsgYm9keQotICAgICAgICBzZWxmLl9z
dHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9z
ZShzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVs
X2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVy
X2ZyYW1lID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5nZXQoCi0g
ICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBleGNlcHQgUXVl
dWUuRW1wdHkgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2Vp
dmUgbWVzc2FnZSBmcm9tIGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFubmVsX2lkKQotICAgICAgICBpZiBpbm5lcl9mcmFtZS5vcGNvZGUgIT0gY2xpZW50
X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
RGlkblwndCByZWNlaXZlIGNsb3NlIGZyYW1lJykKLQotICAgIGRlZiBzZW5kX3BoeXNpY2FsX2Nv
bm5lY3Rpb25fY2xvc2Uoc2VsZiwgY29kZT1Ob25lLCByZWFzb249JycpOgotICAgICAgICBzZWxm
Ll9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgIyBUaGlz
IG1ldGhvZCBjYW4gYmUgdXNlZCBvbmx5IGFmdGVyIGNhbGxpbmcKLSAgICAjIHNlbmRfcGh5c2lj
YWxfY29ubmVjdGlvbl9jbG9zZSgpLgotICAgIGRlZiBhc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlv
bl9yZWNlaXZlX2Nsb3NlKAotICAgICAgICBzZWxmLCBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5T
VEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNpY2Fs
X2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAg
ICAgIGlmIChub3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5pc1NldCgp
IG9yCi0gICAgICAgICAgICBub3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNz
YWdlKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3Np
bmcgaGFuZHNoYWtlJykKLQotICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6Ci0gICAgICAgIHNl
bGYuX2lzX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvcnVuX2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxsLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGE1ZDg3ZDgzODIyYjA3ODNiZTEzZTMzZGRhM2Fi
NjFhNWFmZTQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9ydW5fYWxsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJSdW4gYWxsIHRl
c3RzIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KLQotVGhpcyBzdWl0ZSBpcyBleHBlY3RlZCB0byBi
ZSBydW4gdW5kZXIgcHl3ZWJzb2NrZXQncyBzcmMgZGlyZWN0b3J5LCBpLmUuIHRoZQotZGlyZWN0
b3J5IGNvbnRhaW5pbmcgbW9kX3B5d2Vic29ja2V0LCB0ZXN0LCBldGMuCi0KLVRvIGNoYW5nZSBs
b2dnaW4gbGV2ZWwsIHBsZWFzZSBzcGVjaWZ5IC0tbG9nLWxldmVsIG9wdGlvbi4KLSAgICBweXRo
b24gdGVzdC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1ZwotCi1UbyBwYXNzIGFueSBvcHRp
b24gdG8gdW5pdHRlc3QgbW9kdWxlLCBwbGVhc2Ugc3BlY2lmeSBvcHRpb25zIGFmdGVyICctLScu
IEZvcgotZXhhbXBsZSwgcnVuIHRoaXMgZm9yIG1ha2luZyB0aGUgdGVzdCBydW5uZXIgdmVyYm9z
ZS4KLSAgICBweXRob24gdGVzdC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1ZyAtLSAtdgot
IiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCi1pbXBv
cnQgcmUKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi0KLV9URVNUX01PRFVMRV9QQVRU
RVJOID0gcmUuY29tcGlsZShyJ14odGVzdF8uKylcLnB5JCcpCi0KLQotZGVmIF9saXN0X3Rlc3Rf
bW9kdWxlcyhkaXJlY3RvcnkpOgotICAgIG1vZHVsZV9uYW1lcyA9IFtdCi0gICAgZm9yIGZpbGVu
YW1lIGluIG9zLmxpc3RkaXIoZGlyZWN0b3J5KToKLSAgICAgICAgbWF0Y2ggPSBfVEVTVF9NT0RV
TEVfUEFUVEVSTi5zZWFyY2goZmlsZW5hbWUpCi0gICAgICAgIGlmIG1hdGNoOgotICAgICAgICAg
ICAgbW9kdWxlX25hbWVzLmFwcGVuZChtYXRjaC5ncm91cCgxKSkKLSAgICByZXR1cm4gbW9kdWxl
X25hbWVzCi0KLQotZGVmIF9zdWl0ZSgpOgotICAgIGxvYWRlciA9IHVuaXR0ZXN0LlRlc3RMb2Fk
ZXIoKQotICAgIHJldHVybiBsb2FkZXIubG9hZFRlc3RzRnJvbU5hbWVzKAotICAgICAgICAgICAg
X2xpc3RfdGVzdF9tb2R1bGVzKG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XSwgJy4nKSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBv
cHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZl
bCcsICctLWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD0nd2FybmluZycsCi0gICAgICAgICAgICAgICAgICAg
ICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JpdGljYWwnXSkKLSAgICBvcHRpb25z
LCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoCi0g
ICAgICAgICAgICBsZXZlbD1sb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51
cHBlcigpKSwKLSAgICAgICAgICAgIGZvcm1hdD0nJShsZXZlbG5hbWUpcyAlKGFzY3RpbWUpcyAn
Ci0gICAgICAgICAgICAgICAgICAgJyUoZmlsZW5hbWUpczolKGxpbmVubylkXSAnCi0gICAgICAg
ICAgICAgICAgICAgJyUobWVzc2FnZSlzJywKLSAgICAgICAgICAgIGRhdGVmbXQ9JyVIOiVNOiVT
JykKLSAgICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0PSdfc3VpdGUnLCBhcmd2PVtzeXMuYXJn
dlswXV0gKyBhcmdzKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3NldF9zeXNfcGF0aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9zZXRfc3lzX3BhdGgucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzZkYjllYTRkMzgzYTM3YzI3YTA2MGEwZWYxYzU2M2Ji
YjFlMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3NldF9zeXNfcGF0aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbmZpZ3VyYXRpb24gZm9yIHRlc3RpbmcuCi0KLVRlc3Qg
ZmlsZXMgc2hvdWxkIGltcG9ydCB0aGlzIG1vZHVsZSBiZWZvcmUgbW9kX3B5d2Vic29ja2V0Lgot
IiIiCi0KLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLQotIyBBZGQgdGhlIHBhcmVudCBkaXJl
Y3RvcnkgdG8gc3lzLnBhdGggdG8gZW5hYmxlIGltcG9ydGluZyBtb2RfcHl3ZWJzb2NrZXQuCi1z
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBd
LCAnLi4nKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGUxNmQ2MDU2MDljOGFiN2IzMGQ3MjA2MzgzMGZmNDM0YzFjNTZk
YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyODggKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Ig
ZGlzcGF0Y2ggbW9kdWxlLiIiIgotCi0KLWltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWlt
cG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJz
b2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gdGVzdCBpbXBvcnQgbW9j
awotCi0KLV9URVNUX0hBTkRMRVJTX0RJUiA9IG9zLnBhdGguam9pbigKLSAgICAgICAgb3MucGF0
aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0YScsICdoYW5kbGVycycpCi0KLV9URVNUX0hB
TkRMRVJTX1NVQl9ESVIgPSBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJykK
LQotCi1jbGFzcyBEaXNwYXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1
bml0dGVzdCBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3Rfbm9ybWFsaXpl
X3BhdGgoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcv
YS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Bh
dGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9z
LnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJ1xcYVxcYicpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8n
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJy9h
L2MvLi4vYicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnYWJj
JykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNo
Ll9ub3JtYWxpemVfcGF0aCgnYWJjJykpCi0KLSAgICBkZWYgdGVzdF9jb252ZXJ0ZXIoc2VsZik6
Ci0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9j
b252ZXJ0ZXIoJy9hL2InKQotICAgICAgICAjIFB5dGhvbiBidWlsdCBieSBNU0MgaW5zZXJ0cyBh
IGRyaXZlIG5hbWUgbGlrZSAnQzpcJyB2aWEgcmVhbHBhdGgoKS4KLSAgICAgICAgIyBDb252ZXJ0
ZXIgR2VuZXJhdG9yIGV4cGFuZHMgcHJvdmlkZWQgcGF0aCB1c2luZyByZWFscGF0aCgpIGFuZCB1
c2VzCi0gICAgICAgICMgdGhlIHBhdGggaW5jbHVkaW5nIGEgZHJpdmUgbmFtZSB0byB2ZXJpZnkg
dGhlIHByZWZpeC4KLSAgICAgICAgb3Nfcm9vdCA9IG9zLnBhdGgucmVhbHBhdGgoJy8nKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dz
aC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvYy9oJywgY29udmVydGVyKG9zX3Jv
b3QgKyAnYS9iL2MvaF93c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBj
b252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE5vbmUsIGNvbnZlcnRlcignYS9iL2hfd3NoLnB5JykpCi0KLSAgICAgICAgY29udmVydGVyID0g
ZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcignYS9iJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9w
YXRoKAotICAgICAgICAgICAgJ2EvYi9oX3dzaC5weScpKSkKLQotICAgICAgICBjb252ZXJ0ZXIg
PSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKCcvYS9iLy8vJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2Iv
aF93c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlz
cGF0Y2guX25vcm1hbGl6ZV9wYXRoKAotICAgICAgICAgICAgJy9hL2IvLi4vYi9oX3dzaC5weScp
KSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3Vy
Y2VfY29udmVydGVyKAotICAgICAgICAgICAgJy9hLy4uL2EvYi8uLi9iLycpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5Jykp
Ci0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNl
X2NvbnZlcnRlcihyJ1xhXGInKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZl
cnRlcihvc19yb290ICsgcidhXGJcaF93c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArIHInYS9iL2hfd3NoLnB5JykpCi0KLSAgICBkZWYg
dGVzdF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKHNlbGYpOgotICAgICAgICBwYXRocyA9
IGxpc3QoCi0gICAgICAgICAgICBkaXNwYXRjaC5fZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRo
cyhfVEVTVF9IQU5ETEVSU19ESVIpKQotICAgICAgICBwYXRocy5zb3J0KCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCg4LCBsZW4ocGF0aHMpKQotICAgICAgICBleHBlY3RlZF9wYXRocyA9IFsK
LSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYWJvcnRf
YnlfdXNlcl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFO
RExFUlNfRElSLCAnYmxhbmtfd3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2lu
KF9URVNUX0hBTkRMRVJTX0RJUiwgJ29yaWdpbl9jaGVja193c2gucHknKSwKLSAgICAgICAgICAg
ICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHknKSwKLSAgICAg
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9j
YWxsYWJsZV93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFO
RExFUlNfRElSLCAnc3ViJywgJ3BsYWluX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBh
dGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHknKSwKLSAgICAgICAgICAgICAgICBv
cy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHknKSwKLSAgICAgICAgICAgICAg
ICBdCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBlY3RlZF9wYXRocywg
cGF0aHMpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQot
Ci0gICAgZGVmIHRlc3Rfc291cmNlX2hhbmRsZXJfZmlsZShzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoCi0gICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlz
cGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICcnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cygKLSAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291
cmNlX2hhbmRsZXJfZmlsZSwgJ2RlZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAg
ICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFu
ZGxlcl9maWxlLCAnMS8wJykKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKGRpc3BhdGNoLl9zb3Vy
Y2VfaGFuZGxlcl9maWxlKAotICAgICAgICAgICAgICAgICdkZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6cGFzc1xuJwotICAgICAgICAgICAgICAgICdkZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOnBhc3NcbicpKQotCi0gICAgZGVmIHRlc3Rfc291
cmNlX3dhcm5pbmdzKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0
Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHdhcm5pbmdzID0gZGlzcGF0
Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQotICAgICAgICB3YXJuaW5ncy5zb3J0KCkKLSAgICAgICAg
ZXhwZWN0ZWRfd2FybmluZ3MgPSBbCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgo
b3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdi
bGFua193c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4nKSwKLSAgICAgICAgICAgICAgICAob3MucGF0aC5y
ZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJT
X0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAg
Jzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGNhbGxhYmxlLicpLAotICAg
ICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAgICAgICAg
ICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3dyb25nX2hhbmRzaGFrZV9zaWdf
d3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UgaXMgbm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBh
dGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIs
ICdzdWInLCAnd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAg
ICc6IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBpcyBub3QgZGVmaW5lZC4nKSwKLSAgICAgICAg
ICAgICAgICBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQsIGxlbih3YXJuaW5ncykpCi0g
ICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBlY3RlZF93YXJuaW5ncywgd2Fy
bmluZ3MpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIGFjdHVhbCkK
LQotICAgIGRlZiB0ZXN0X2RvX2V4dHJhX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgZGlzcGF0
Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAg
ICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVz
b3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0
cDovL2V4YW1wbGUuY29tJwotICAgICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KSAgIyBNdXN0IG5vdCByYWlzZSBleGNlcHRpb24uCi0KLSAgICAgICAgcmVxdWVzdC53
c19vcmlnaW4gPSAnaHR0cDovL2JhZC5leGFtcGxlLmNvbScKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkKLSAgICAgICAgICAg
IHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEhhbmRzaGFrZUV4Y2VwdGlvbiB3aXRoIDQwMyBz
dGF0dXMnKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoNDAzLCBlLnN0YXR1cykKLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVk
IGV4Y2VwdGlvbjogJXInICUgZSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFr
ZShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1Rf
SEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgp
Ci0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL2Fib3J0X2J5X3VzZXInCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZSwgcmVx
dWVzdCkKLQotICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGEoc2VsZik6Ci0gICAgICAgIGRpc3Bh
dGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLQot
ICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nv
bm4oJ1x4ZmZceDAwJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9j
aGVjaycKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMScKLSAgICAgICAgZGlzcGF0
Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ29y
aWdpbl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAvb3JpZ2luX2NoZWNrLCBwMScKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0ID0g
bW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZceDAwJykpCi0g
ICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFpbicKLSAgICAgICAgcmVxdWVz
dC53c19wcm90b2NvbCA9IE5vbmUKLSAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJl
cXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2Fs
bGVkIGZvciAvc3ViL3BsYWluLCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZm
XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9ICcvc3ViL3BsYWluPycKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUKLSAg
ICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWluPywgTm9u
ZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBy
ZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJ1x4ZmZc
eDAwJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9wbGFpbj9xPXYnCi0g
ICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25lCi0gICAgICAgIGRpc3BhdGNoZXIudHJh
bnNmZXJfZGF0YShyZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzdWIvcGxhaW5f
d3NoLnB5IGlzIGNhbGxlZCBmb3IgL3N1Yi9wbGFpbj9xPXYsIE5vbmUnCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRh
X25vX2hhbmRsZXIoc2VsZik6Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRj
aGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgZm9yIHJlc291cmNlIGluIFsn
L2JsYW5rJywgJy9zdWIvbm9uX2NhbGxhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAn
L3N1Yi9ub193c2hfYXRfdGhlX2VuZCcsICcvZG9lcy9ub3QvZXhpc3QnXToKLSAgICAgICAgICAg
IHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJykp
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gcmVzb3VyY2UKLSAgICAgICAgICAg
IHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDInCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgICAgICAgICAg
c2VsZi5mYWlsKCkKLSAgICAgICAgICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlv
biBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyhzdHIoZSkuZmluZCgnTm8g
aGFuZGxlcicpICE9IC0xKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgICAgICBzZWxmLmZhaWwoKQotCi0gICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0YV9oYW5kbGVy
X2V4Y2VwdGlvbihzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNo
ZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2Nr
UmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycpKQotICAgICAgICByZXF1ZXN0Lndz
X3Jlc291cmNlID0gJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJwotICAgICAgICByZXF1ZXN0
LndzX3Byb3RvY29sID0gJ3AzJwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVy
LnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyhzdHIo
ZSkuZmluZCgnSW50ZW50aW9uYWwnKSAhPSAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCBleGNlcHRpb246ICVzJyAlIGUpCi0KLSAgICBkZWYgdGVzdF9hYm9ydF90
cmFuc2Zlcl9kYXRhKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0
Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1v
Y2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvYWJvcnRfYnlfdXNl
cicKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0
YSwgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fZGlyKHNlbGYpOgotICAgICAgICBkaXNw
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoNCwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAg
ICAgc2VsZi5mYWlsVW5sZXNzKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRl
X21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhjZXB0
aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2Vs
Zi5mYWlsVW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLQot
ICAgIGRlZiB0ZXN0X3NjYW5fc3ViX2RpcihzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNo
LkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBfVEVTVF9IQU5ETEVSU19TVUJfRElSKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkp
Ci0gICAgICAgIHNlbGYuZmFpbElmKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1
aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhj
ZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkK
LQotICAgIGRlZiB0ZXN0X3NjYW5fc3ViX2Rpcl9hc19yb290KHNlbGYpOgotICAgICAgICBkaXNw
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19TVUJfRElSLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19TVUJfRElSKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAg
ICAgIHNlbGYuZmFpbElmKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBk
aXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9zdWIvcGxhaW4n
IGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9l
eGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAg
ICBzZWxmLmZhaWxVbmxlc3MoJy9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0K
LSAgICBkZWYgdGVzdF9zY2FuX2Rpcl9tdXN0X3VuZGVyX3Jvb3Qoc2VsZik6Ci0gICAgICAgIGRp
c3BhdGNoLkRpc3BhdGNoZXIoJ2EvYicsICdhL2IvYycpICAjIE9LCi0gICAgICAgIGRpc3BhdGNo
LkRpc3BhdGNoZXIoJ2EvYi8vLycsICdhL2InKSAgIyBPSwotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlzcGF0Y2guRGlzcGF0Y2hlciwgJ2EvYi9jJywgJ2EvYicpCi0KLSAgICBkZWYgdGVzdF9y
ZXNvdXJjZV9wYXRoX2FsaWFzKHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0
Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIGRpc3AuYWRkX3Jlc291cmNl
X3BhdGhfYWxpYXMoJy8nLCAnL29yaWdpbl9jaGVjaycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoNSwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsVW5s
ZXNzKCcvb3JpZ2luX2NoZWNrJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKAotICAgICAgICAgICAgJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVy
JyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcv
c3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWls
VW5sZXNzKCcvJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3AuYWRkX3Jlc291cmNlX3BhdGhfYWxpYXMsICcvYWxpYXMnLCAnL25vdC1leGlz
dCcpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRv
ZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM2ODBlYzJlYmE2NzI0YTc0OTA1YmU0ZjE1ODFmMzZhN2E3Zjc3MTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
ZW5kdG9lbmQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NTMgKzAsMCBAQAotIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJFbmQtdG8tZW5kIHRlc3RzIGZv
ciBweXdlYnNvY2tldC4gVGVzdHMgc3RhbmRhbG9uZS5weSBieSBkZWZhdWx0LiBZb3UKLWNhbiBh
bHNvIHRlc3QgbW9kX3B5d2Vic29ja2V0IGhvc3RlZCBvbiBhbiBBcGFjaGUgc2VydmVyIGJ5IHNl
dHRpbmcKLV91c2VfZXh0ZXJuYWxfc2VydmVyIHRvIFRydWUgYW5kIG1vZGlmeWluZyBfZXh0ZXJu
YWxfc2VydmVyX3BvcnQgdG8gcG9pbnQgdG8KLXRoZSBwb3J0IG9uIHdoaWNoIHRoZSBBcGFjaGUg
c2VydmVyIGlzIHJ1bm5pbmcuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1p
bXBvcnQgc2lnbmFsCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5
cwotaW1wb3J0IHRpbWUKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAj
IFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJv
bSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3RpbmcKLWZyb20gdGVzdCBpbXBvcnQgbXV4X2Ns
aWVudF9mb3JfdGVzdGluZwotCi0KLSMgU3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVj
aG8gc2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCi1fR09PREJZRV9NRVNTQUdFID0g
J0dvb2RieWUnCi0KLV9TRVJWRVJfV0FSTVVQX0lOX1NFQyA9IDAuMgotCi0jIElmIHlvdSB3YW50
IHRvIHVzZSBleHRlcm5hbCBzZXJ2ZXIgdG8gcnVuIGVuZCB0byBlbmQgdGVzdHMsIHNldCBmb2xs
b3dpbmcKLSMgcGFyYW1ldGVycyBjb3JyZWN0bHkuCi1fdXNlX2V4dGVybmFsX3NlcnZlciA9IEZh
bHNlCi1fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSAwCi0KLQotIyBUZXN0IGJvZHkgZnVuY3Rpb25z
Ci1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3Qo
KQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcpCi0gICAgY2xpZW50LmFzc2VydF9y
ZWNlaXZlKCd0ZXN0JykKLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdoZWxsb3dvcmxkJykKLSAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2hlbGxvd29ybGQnKQotCi0gICAgY2xpZW50LnNlbmRf
Y2xvc2UoKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICBjbGllbnQu
YXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJl
X3dpdGhfYmluYXJ5KGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50
LnNlbmRfbWVzc2FnZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LmFzc2VydF9y
ZWNlaXZlKCdiaW5hcnknLCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdc
eDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuYXNzZXJ0
X3JlY2VpdmUoJ1x4MDBceDgwXHhmZVx4ZmZceDAwXHg4MCcsIGJpbmFyeT1UcnVlKQotCi0gICAg
Y2xpZW50LnNlbmRfY2xvc2UoKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0K
LSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hl
Y2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkK
LQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQotICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZSgndGVzdCcpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKF9HT09EQllFX01FU1NBR0Up
Ci0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKF9HT09EQllFX01FU1NBR0UpCi0KLSAgICBjbGll
bnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLQotICAg
IGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVja19w
cm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24oY2xpZW50LCBjb2RlLCByZWFzb24pOgotICAg
IGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKGNvZGUsIHJlYXNvbikK
LSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgY2xp
ZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF91bm1hc2tlZF9mcmFtZV9j
aGVja19wcm9jZWR1cmUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGll
bnQuc2VuZF9tZXNzYWdlKCd0ZXN0JywgbWFzaz1GYWxzZSkKLSAgICBjbGllbnQuYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2UoY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19QUk9UT0NPTF9FUlJPUiwgJycp
Ci0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX211eF9l
Y2hvX2NoZWNrX3Byb2NlZHVyZShtdXhfY2xpZW50KToKLSAgICBtdXhfY2xpZW50LmNvbm5lY3Qo
KQotICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMSwgMTAyNCkKLQotICAgIGxvZ2lj
YWxfY2hhbm5lbF9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5nLkNsaWVudE9wdGlvbnMoKQot
ICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnNlcnZlcl9ob3N0ID0gJ2xvY2FsaG9zdCcKLSAg
ICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IDgwCi0gICAgbG9naWNhbF9j
aGFubmVsX29wdGlvbnMub3JpZ2luID0gJ2h0dHA6Ly9sb2NhbGhvc3QnCi0gICAgbG9naWNhbF9j
aGFubmVsX29wdGlvbnMucmVzb3VyY2UgPSAnL2VjaG8nCi0gICAgbXV4X2NsaWVudC5hZGRfY2hh
bm5lbCgyLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxv
d19jb250cm9sKDIsIDEwMjQpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAndGVz
dCcpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAndGVzdCcpCi0KLSAgICBtdXhf
Y2xpZW50LmFkZF9jaGFubmVsKDMsIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zKQotICAgIG11eF9j
bGllbnQuc2VuZF9mbG93X2NvbnRyb2woMywgMTAyNCkKLQotICAgIG11eF9jbGllbnQuc2VuZF9t
ZXNzYWdlKDIsICdoZWxsbycpCi0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMywgJ3dvcmxk
JykKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDIsICdoZWxsbycpCi0gICAgbXV4X2Ns
aWVudC5hc3NlcnRfcmVjZWl2ZSgzLCAnd29ybGQnKQotCi0gICAgIyBEb24ndCBzZW5kIGNsb3Nl
IG1lc3NhZ2Ugb24gY2hhbm5lbCBpZCAxIHNvIHRoYXQgc2VydmVyLWluaXRpYXRlZAotICAgICMg
Y2xvc2luZyBoYW5kc2hha2Ugd29uJ3Qgb2NjdXIuCi0gICAgbXV4X2NsaWVudC5zZW5kX2Nsb3Nl
KDIpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Nsb3NlKDMpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRf
cmVjZWl2ZV9jbG9zZSgyKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoMykK
LQotICAgIG11eF9jbGllbnQuc2VuZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKCkKLSAgICBt
dXhfY2xpZW50LmFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2VpdmVfY2xvc2UoKQotCi0K
LWNsYXNzIEVuZFRvRW5kVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkJhc2Ug
Y2xhc3MgZm9yIGVuZC10by1lbmQgdGVzdHMgdGhhdCBsYXVuY2ggcHl3ZWJzb2NrZXQgc3RhbmRh
bG9uZQotICAgIHNlcnZlciBhcyBhIHNlcGFyYXRlIHByb2Nlc3MsIGNvbm5lY3QgdG8gaXQgdXNp
bmcgdGhlIGNsaWVudF9mb3JfdGVzdGluZwotICAgIG1vZHVsZSwgYW5kIGNoZWNrIGlmIHRoZSBz
ZXJ2ZXIgYmVoYXZlcyBjb3JyZWN0bHkgYnkgZXhjaGFuZ2luZyBvcGVuaW5nCi0gICAgaGFuZHNo
YWtlIGFuZCBmcmFtZXMgb3ZlciBhIFRDUCBjb25uZWN0aW9uLgotICAgICIiIgotCi0gICAgZGVm
IHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9zdGRlcnIgPSBOb25lCi0gICAgICAg
IHNlbGYudG9wX2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwg
Jy4uJykKLSAgICAgICAgb3MucHV0ZW52KCdQWVRIT05QQVRIJywgb3MucGF0aC5wYXRoc2VwLmpv
aW4oc3lzLnBhdGgpKQotICAgICAgICBzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCA9IG9zLnBhdGgu
am9pbigKLSAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ21vZF9weXdlYnNvY2tldCcsICdzdGFu
ZGFsb25lLnB5JykKLSAgICAgICAgc2VsZi5kb2N1bWVudF9yb290ID0gb3MucGF0aC5qb2luKHNl
bGYudG9wX2RpciwgJ2V4YW1wbGUnKQotICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCi0gICAg
ICAgIHMuYmluZCgoJ2xvY2FsaG9zdCcsIDApKQotICAgICAgICAoXywgc2VsZi50ZXN0X3BvcnQp
ID0gcy5nZXRzb2NrbmFtZSgpCi0gICAgICAgIHMuY2xvc2UoKQotCi0gICAgICAgIHNlbGYuX29w
dGlvbnMgPSBjbGllbnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9ucygpCi0gICAgICAgIHNlbGYu
X29wdGlvbnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JwotICAgICAgICBzZWxmLl9vcHRpb25z
Lm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0JwotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291
cmNlID0gJy9lY2hvJwotCi0gICAgICAgICMgVE9ETyh0b3lvc2hpbSk6IEVsaW1pbmF0ZSBsYXVu
Y2hpbmcgYSBzdGFuZGFsb25lIHNlcnZlciBvbiB1c2luZwotICAgICAgICAjIGV4dGVybmFsIHNl
cnZlci4KLQotICAgICAgICBpZiBfdXNlX2V4dGVybmFsX3NlcnZlcjoKLSAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBfZXh0ZXJuYWxfc2VydmVyX3BvcnQKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBzZWxmLnRlc3Rf
cG9ydAotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTogVXNlIHRlYXJEb3duIHRvIGtpbGwgdGhlIHNl
cnZlci4KLQotICAgIGRlZiBfcnVuX3B5dGhvbl9jb21tYW5kKHNlbGYsIGNvbW1hbmRsaW5lLCBz
dGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUpOgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Qb3Bl
bihbc3lzLmV4ZWN1dGFibGVdICsgY29tbWFuZGxpbmUsIGNsb3NlX2Zkcz1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3Rkb3V0LCBzdGRlcnI9c3RkZXJyKQot
Ci0gICAgZGVmIF9ydW5fc2VydmVyKHNlbGYpOgotICAgICAgICBhcmdzID0gW3NlbGYuc3RhbmRh
bG9uZV9jb21tYW5kLAotICAgICAgICAgICAgICAgICctSCcsICdsb2NhbGhvc3QnLAotICAgICAg
ICAgICAgICAgICctVicsICdsb2NhbGhvc3QnLAotICAgICAgICAgICAgICAgICctcCcsIHN0cihz
ZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAgICAgICAgJy1QJywgc3RyKHNlbGYudGVzdF9wb3J0
KSwKLSAgICAgICAgICAgICAgICAnLWQnLCBzZWxmLmRvY3VtZW50X3Jvb3RdCi0KLSAgICAgICAg
IyBJbmhlcml0IHRoZSBsZXZlbCBzZXQgdG8gdGhlIHJvb3QgbG9nZ2VyIGJ5IHRlc3QgcnVubmVy
LgotICAgICAgICByb290X2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICAgICAgbG9n
X2xldmVsID0gcm9vdF9sb2dnZXIuZ2V0RWZmZWN0aXZlTGV2ZWwoKQotICAgICAgICBpZiBsb2df
bGV2ZWwgIT0gbG9nZ2luZy5OT1RTRVQ6Ci0gICAgICAgICAgICBhcmdzLmFwcGVuZCgnLS1sb2ct
bGV2ZWwnKQotICAgICAgICAgICAgYXJncy5hcHBlbmQobG9nZ2luZy5nZXRMZXZlbE5hbWUobG9n
X2xldmVsKS5sb3dlcigpKQotCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fcHl0aG9uX2NvbW1h
bmQoYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9
c2VsZi5zZXJ2ZXJfc3RkZXJyKQotCi0gICAgZGVmIF9raWxsX3Byb2Nlc3Moc2VsZiwgcGlkKToK
LSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAnY3lnd2luJyk6Ci0gICAgICAg
ICAgICBzdWJwcm9jZXNzLmNhbGwoCi0gICAgICAgICAgICAgICAgKCd0YXNra2lsbC5leGUnLCAn
L2YnLCAnL3BpZCcsIHN0cihwaWQpKSwgY2xvc2VfZmRzPVRydWUpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwpCi0KLQotY2xhc3MgRW5kVG9F
bmRIeUJpVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg
ICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfcnVuX3Rlc3Rfd2l0
aF9jbGllbnRfb3B0aW9ucyhzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBvcHRpb25zKToKLSAgICAgICAg
c2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMg
VE9ETyh0eW9zaGlubyk6IGFkZCBzb21lIGxvZ2ljIHRvIHBvbGwgdGhlIHNlcnZlciB1bnRpbCBp
dAotICAgICAgICAgICAgIyBiZWNvbWVzIHJlYWR5Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9T
RVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90
ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX3Rl
c3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dpdGhfY2xp
ZW50X29wdGlvbnModGVzdF9mdW5jdGlvbiwgc2VsZi5fb3B0aW9ucykKLQotICAgIGRlZiBfcnVu
X2RlZmxhdGVfZnJhbWVfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVy
ID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xl
ZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVu
YWJsZV9kZWZsYXRlX2ZyYW1lKCkKLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVz
dGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1
bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgIHNlbGYsIG9mZmVyLCByZXNw
b25zZV9jaGVja2VyLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVu
X3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9X
QVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmV4dGVuc2lvbnMgKz0g
b2ZmZXIKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuY2hlY2tfcGVybWVzc2FnZV9kZWZsYXRl
ID0gcmVzcG9uc2VfY2hlY2tlcgotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0
aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKLQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgICAgIGlmIHRlc3Rf
ZnVuY3Rpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24o
Y2xpZW50KQotCi0gICAgICAgICAgICAgICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3Nl
ZCgpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9z
b2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNz
KHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90
ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24sIGNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYu
X3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJW
RVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0
aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCwgY29kZSwgcmVhc29uKQotICAgICAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQot
Ci0gICAgZGVmIF9ydW5faHR0cF9mYWxsYmFja190ZXN0KHNlbGYsIG9wdGlvbnMsIHN0YXR1cyk6
Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAg
Y2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0gICAgICAgICAg
ICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2ggSHR0cFN0YXR1c0V4Y2VwdGlvbicpCi0g
ICAgICAgICAgICBleGNlcHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0dHBTdGF0dXNFeGNlcHRpb24g
YXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgZS5zdGF0dXMp
Ci0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5mYWlsKCdDYXRjaCB1bmV4cGVjdGVkIGV4Y2VwdGlvbicpCi0gICAgICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYg
X3J1bl9tdXhfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2Vs
Zi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NF
UlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBtdXhfY2xpZW50X2Zv
cl90ZXN0aW5nLk11eENsaWVudChzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIHRl
c3RfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2Vk
dXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19iaW5hcnkoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1
bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFyeSkKLQotICAgIGRlZiB0ZXN0
X2VjaG9fc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19j
aGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnllKQotCi0gICAgZGVmIHRlc3RfdW5tYXNrZWRfZnJh
bWUoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF91bm1hc2tlZF9mcmFtZV9jaGVja19w
cm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAg
ICAgIHNlbGYuX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlKQot
Ci0gICAgZGVmIHRlc3RfZWNob19kZWZsYXRlX2ZyYW1lX3NlcnZlcl9jbG9zZShzZWxmKToKLSAg
ICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVfdGVzdCgKLSAgICAgICAgICAgIF9lY2hvX2No
ZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3Nh
Z2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAg
ICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBj
b21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAg
ICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50
Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0
aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAg
ICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2
ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0
ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5n
ZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVf
dGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAotICAgICAgICAg
ICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikK
LQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19mcmFtZXMoc2VsZik6
Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20g
dGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2Vu
ZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkJywKLSAgICAgICAgICAg
ICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAg
ICAgICBlbmQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAg
IGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4YzlceGM5
XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X1RFWFQpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnko
Ci0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwK
LSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9j
bG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAg
ICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkK
LQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAg
ICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9j
aGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9l
Y2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fbWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGlu
IHRoZSBzcGVjLgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAg
ICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAg
ICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAg
ICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAg
IHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFy
eSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVh
bS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4
MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAg
ICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZl
X2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRl
ci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdl
dF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90
ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAg
ICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQot
Ci0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfdHdvX21zZ3Nfc2VydmVyX25v
X2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVu
dCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAg
ICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhm
Mlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAg
ICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAn
XHhmMlx4MDBceDExXHgwMFx4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAg
ICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAg
ICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAg
ICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9i
aW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAw
JywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVf
VEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQu
c2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQot
Ci0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2Vv
dmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLmdl
dF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90
ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlciddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAg
ICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2Fn
ZV9kZWZsYXRlX3ByZWZlcmVuY2Uoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNs
aWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAg
ICAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAw
JwotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAg
ICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQot
Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFt
ZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRl
JywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBw
YXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2Fn
ZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnLCAn
ZGVmbGF0ZS1mcmFtZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAg
ICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2Fn
ZV9kZWZsYXRlX3dpdGhfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rp
b24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMu
Ci0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgw
N1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAg
ICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAg
ICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3Yx
PTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVu
dC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIo
cGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRl
ZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
Wygnc2VydmVyX21heF93aW5kb3dfYml0cycsICcxMCcpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAg
ICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAg
WydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MTA7ICcKLSAgICAg
ICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAgICAg
ICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0g
ICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9iYWRfc2VydmVyX21heF93
aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAg
ICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVy
KToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9m
IHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVm
bGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJf
bWF4X3dpbmRvd19iaXRzPTMwMDAwMDAnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVj
a2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hv
X3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX2JhZF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYp
OgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50
LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkK
LQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZs
YXRlJykKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAg
ICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9
MzAwMDAwMCddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAg
ICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZs
YXRlX3dpdGhfdW5kZWZpbmVkX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAg
ICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNl
X2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBl
Y3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2Fn
ZS1kZWZsYXRlOyBmb289YmFyJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwK
LSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19jbG9z
ZV93aXRoX2NvZGVfYW5kX3JlYXNvbihzZWxmKToKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNv
dXJjZSA9ICcvY2xvc2UnCi0gICAgICAgIHNlbGYuX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3Jl
YXNvbl90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9h
bmRfcmVhc29uLCAzMzMzLCAnc3Vuc3Vuc3Vuc3VuJykKLQotICAgIGRlZiB0ZXN0X2VjaG9fY2xv
c2Vfd2l0aF9lbXB0eV9ib2R5KHNlbGYpOgotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNl
ID0gJy9jbG9zZScKLSAgICAgICAgc2VsZi5fcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29u
X3Rlc3QoCi0gICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9y
ZWFzb24sIE5vbmUsICcnKQotCi0gICAgZGVmIHRlc3RfbXV4X2VjaG8oc2VsZik6Ci0gICAgICAg
IHNlbGYuX3J1bl9tdXhfdGVzdChfbXV4X2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVm
IHRlc3RfY2xvc2Vfb25fcHJvdG9jb2xfZXJyb3Ioc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRo
YXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggcHJvdG9jb2wgZXJyb3Igc3Rh
dHVzCi0gICAgICAgIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGRhdGEgd2l0aCBzb21lIHBy
b3RvY29sIGVycm9yLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIElu
dGVybWVkaWF0ZSBmcmFtZSB3aXRob3V0IGFueSBwcmVjZWRpbmcgc3RhcnQgb2YgZnJhZ21lbnRh
dGlvbgotICAgICAgICAgICAgIyBmcmFtZS4KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1l
X29mX2FyYml0cmFyeV9ieXRlcygnXHg4MFx4ODAnLCAnJykKLSAgICAgICAgICAgIGNsaWVudC5h
c3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3Rpbmcu
U1RBVFVTX1BST1RPQ09MX0VSUk9SKQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVu
Y3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl91bnN1cHBvcnRlZF9mcmFtZShzZWxmKToK
LSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0
aCB1bnN1cHBvcnRlZCBvcGVyYXRpb24KLSAgICAgICAgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xp
ZW50IHNlbmRzIGRhdGEgYXNraW5nIHNvbWUgb3BlcmF0aW9uIHRoYXQgaXMKLSAgICAgICAgbm90
IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgdGVz
dF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAg
ICAgICAgICAjIFRleHQgZnJhbWUgd2l0aCBSU1YzIGJpdCByYWlzZWQuCi0gICAgICAgICAgICBj
bGllbnQuc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoJ1x4OTFceDgwJywgJycpCi0gICAg
ICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xp
ZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19VTlNVUFBPUlRFRF9EQVRBKQotCi0gICAgICAgIHNlbGYu
X3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9pbnZhbGlk
X2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBj
bG9zZSBmcmFtZSB3aXRoIGludmFsaWQgZnJhbWUgcGF5bG9hZAotICAgICAgICBkYXRhIHN0YXR1
cyBjb2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBhbiBpbnZhbGlkIGZyYW1lIGxpa2UgY29udGFp
bmluZwotICAgICAgICBpbnZhbGlkIFVURi04IGNoYXJhY3Rlci4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25u
ZWN0KCkKLQotICAgICAgICAgICAgIyBUZXh0IGZyYW1lIHdpdGggaW52YWxpZCBVVEYtOCBzdHJp
bmcuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdceDgwJywgcmF3PVRydWUpCi0g
ICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAg
Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSkKLQot
ICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xv
c2Vfb25faW50ZXJuYWxfZW5kcG9pbnRfZXJyb3Ioc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRo
YXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggaW50ZXJuYWwgZW5kcG9pbnQK
LSAgICAgICAgZXJyb3Igc3RhdHVzIGNvZGUgd2hlbiB0aGUgaGFuZGxlciBkb2VzIGJhZCBvcGVy
YXRpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAn
L2ludGVybmFsX2Vycm9yJwotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0g
ICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19J
TlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1
bmN0aW9uKQotCi0gICAgIyBUT0RPKHRveW9zaGltKTogQWRkIHRlc3RzIHRvIHZlcmlmeSBpbnZh
bGlkIGFic29sdXRlIHVyaSBoYW5kbGluZyBsaWtlCi0gICAgIyBob3N0IHVubWF0Y2gsIHBvcnQg
dW5tYXRjaCBhbmQgaW52YWxpZCBwb3J0IGRlc2NyaXB0aW9uICgnOicgd2l0aG91dCBwb3J0Ci0g
ICAgIyBudW1iZXIpLgotCi0gICAgZGVmIHRlc3RfYWJzb2x1dGVfdXJpKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0cyBhYnNvbHV0ZSB1cmkgcmVxdWVzdC4iIiIKLQotICAgICAgICBvcHRpb25zID0g
c2VsZi5fb3B0aW9ucwotICAgICAgICBvcHRpb25zLnJlc291cmNlID0gJ3dzOi8vbG9jYWxob3N0
OiVkL2VjaG8nICUgb3B0aW9ucy5zZXJ2ZXJfcG9ydAotICAgICAgICBzZWxmLl9ydW5fdGVzdF93
aXRoX2NsaWVudF9vcHRpb25zKF9lY2hvX2NoZWNrX3Byb2NlZHVyZSwgb3B0aW9ucykKLQotICAg
IGRlZiB0ZXN0X29yaWdpbl9jaGVjayhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgaHR0cCBmYWxs
YmFjayBvbiBvcmlnaW4gY2hlY2sgZmFpbC4iIiIKLQotICAgICAgICBvcHRpb25zID0gc2VsZi5f
b3B0aW9ucwotICAgICAgICBvcHRpb25zLnJlc291cmNlID0gJy9vcmlnaW5fY2hlY2snCi0gICAg
ICAgICMgU2VydmVyIHNob3dzIHdhcm5pbmcgbWVzc2FnZSBmb3IgaHR0cCA0MDMgZmFsbGJhY2su
IFRoaXMgd2FybmluZwotICAgICAgICAjIG1lc3NhZ2UgaXMgY29uZnVzaW5nLiBGb2xsb3dpbmcg
cGlwZSBkaXNwb3NlcyB3YXJuaW5nIG1lc3NhZ2VzLgotICAgICAgICBzZWxmLnNlcnZlcl9zdGRl
cnIgPSBzdWJwcm9jZXNzLlBJUEUKLSAgICAgICAgc2VsZi5fcnVuX2h0dHBfZmFsbGJhY2tfdGVz
dChvcHRpb25zLCA0MDMpCi0KLSAgICBkZWYgdGVzdF92ZXJzaW9uX2NoZWNrKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0cyBodHRwIGZhbGxiYWNrIG9uIHZlcnNpb24gY2hlY2sgZmFpbC4iIiIKLQot
ICAgICAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAgICBvcHRpb25zLnZlcnNpb24g
PSA5OQotICAgICAgICBzZWxmLl9ydW5faHR0cF9mYWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMCkK
LQotCi1jbGFzcyBFbmRUb0VuZEh5QmkwMFRlc3QoRW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVm
IHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0KLSAg
ICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBz
ZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChf
U0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3Jf
dGVzdGluZy5jcmVhdGVfY2xpZW50X2h5YmkwMChzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0g
ICAgZGVmIHRlc3RfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hl
Y2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUp
Ci0KLQotY2xhc3MgRW5kVG9FbmRUZXN0V2l0aEVjaG9DbGllbnQoRW5kVG9FbmRUZXN0QmFzZSk6
Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNlLnNldFVwKHNl
bGYpCi0KLSAgICBkZWYgX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAg
ICBzZWxmLCBleHBlY3RlZCwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSk6Ci0gICAgICAgIGFjdHVh
bCA9IHN0ZG91dGRhdGEuZGVjb2RlKCJ1dGYtOCIpCi0gICAgICAgIGlmIGFjdHVhbCAhPSBleHBl
Y3RlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCByZXN1bHQgb24g
ZXhhbXBsZSBlY2hvIGNsaWVudDogJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICclciAo
ZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGV4cGVjdGVkLCBhY3R1YWwpKQotICAgICAgICBpZiBzdGRlcnJkYXRhIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGVycm9yIG1lc3NhZ2Ugb24g
ZXhhbXBsZSBlY2hvICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xpZW50OiAlcicg
JSBzdGRlcnJkYXRhKQotCi0gICAgZGVmIHRlc3RfZXhhbXBsZV9lY2hvX2NsaWVudChzZWxmKToK
LSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgZWNob19jbGllbnQucHkgZXhhbXBsZSBjYW4gdGFs
ayB3aXRoIHRoZSBzZXJ2ZXIuIiIiCi0KLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZl
cigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBf
SU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnRfY29tbWFuZCA9IG9zLnBhdGguam9pbigKLSAg
ICAgICAgICAgICAgICBzZWxmLnRvcF9kaXIsICdleGFtcGxlJywgJ2VjaG9fY2xpZW50LnB5JykK
LQotICAgICAgICAgICAgIyBFeHBlY3RlZCBvdXRwdXQgZm9yIHRoZSBkZWZhdWx0IG1lc3NhZ2Vz
LgotICAgICAgICAgICAgZGVmYXVsdF9leHBlY3RhdGlvbiA9ICgnU2VuZDogSGVsbG9cbicgJ1Jl
Y3Y6IEhlbGxvXG4nCi0gICAgICAgICAgICAgICAgdSdTZW5kOiBcdTY1ZTVcdTY3MmNcbicgdSdS
ZWN2OiBcdTY1ZTVcdTY3MmNcbicKLSAgICAgICAgICAgICAgICAnU2VuZCBjbG9zZVxuJyAnUmVj
diBhY2tcbicpCi0KLSAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCi0gICAgICAg
ICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KV0KLSAgICAg
ICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLCBzdGRvdXQ9c3Vi
cHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSA9IGNsaWVu
dC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBzZWxmLl9jaGVja19leGFtcGxlX2VjaG9fY2xp
ZW50X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9leHBlY3RhdGlvbiwgc3Rk
b3V0ZGF0YSwgc3RkZXJyZGF0YSkKLQotICAgICAgICAgICAgIyBQcm9jZXNzIGEgYmlnIG1lc3Nh
Z2UgZm9yIHdoaWNoIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGlzIHVzZWQuCi0gICAgICAgICAg
ICAjIFRvIGhhbmRsZSBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCwgd3NfdmVyc2lvbiBhdHRyaWJ1
dGUgd2lsbCBiZQotICAgICAgICAgICAgIyBhY2Nlc3NlZC4gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHdzX3ZlcnNpb24gaXMgY29ycmVjdGx5IHNldC4KLSAgICAgICAgICAgIGJpZ19tZXNzYWdlID0g
J2EnICogMTAyNAotICAgICAgICAgICAgYXJncyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAg
ICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQpLAotICAgICAg
ICAgICAgICAgICAgICAnLW0nLCBiaWdfbWVzc2FnZV0KLSAgICAgICAgICAgIGNsaWVudCA9IHNl
bGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAg
ICAgICAgICAgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0g
ICAgICAgICAgICBleHBlY3RlZCA9ICgnU2VuZDogJXNcblJlY3Y6ICVzXG5TZW5kIGNsb3NlXG5S
ZWN2IGFja1xuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoYmlnX21lc3NhZ2UsIGJpZ19t
ZXNzYWdlKSkKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVz
dWx0KAotICAgICAgICAgICAgICAgIGV4cGVjdGVkLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQot
Ci0gICAgICAgICAgICAjIFRlc3QgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uCi0g
ICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAn
LXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCksCi0gICAgICAgICAgICAgICAgICAg
ICctLXVzZV9wZXJtZXNzYWdlX2RlZmxhdGUnXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5f
cnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAg
ICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAg
ICAgICAgIHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5w
aWQpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVu
c2lvbnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NGE0Mzg0NzkyYmZmZDBhMjBkMmU3NTQzM2RjMjkwOWNmOTNkZTZkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2V4dGVuc2lvbnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNzkgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgZXh0
ZW5zaW9ucyBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgemxpYgotCi1p
bXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vi
c29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGV4dGVuc2lvbnMKLQotCi1jbGFzcyBFeHRlbnNpb25z
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Igbm9uLWNsYXNz
IG1ldGhvZHMgaW4gZXh0ZW5zaW9ucy5weSIiIgotCi0gICAgZGVmIHRlc3RfcGFyc2Vfd2luZG93
X2JpdHMoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVu
c2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJ2Zvb2JhcicpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dp
bmRvd19iaXRzLCAnIDggJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICdhOGEnKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAwMDAw
JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFy
c2Vfd2luZG93X2JpdHMsICcwMDAwOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMHg4JykKLQotICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0
cywgJzkuNScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lv
bnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOC4wJykKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc4JykKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMTUnKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAn
LTgnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9w
YXJzZV93aW5kb3dfYml0cywgJzAnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzcnKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAn
MTYnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICBWYWx1ZUVy
cm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzEwMDAwMDAwJykKLQotCi1jbGFz
cyBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3JQYXJzaW5nVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IgcGFyc2VzIGdpdmVuCi0gICAgZXh0ZW5zaW9uIHBhcmFtZXRlciBj
b3JyZWN0bHkuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9yZWdpc3RyeShzZWxmKToKLSAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigKLSAgICAg
ICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdkZWZsYXRlLWZyYW1lJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikK
LQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29y
KAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3gtd2Via2l0LWRl
ZmxhdGUtZnJhbWUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHByb2Nlc3NvciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgZGVmIHRlc3RfbWluaW1hbF9vZmZlcihzZWxmKToKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZs
YXRlJykpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNw
b25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdl
dF9wYXJhbWV0ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhfV0JJ
VFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVy
Ll93aW5kb3dfYml0cykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3JmYzE5
NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93
aXRoX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5h
ZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTAnKQotICAgICAgICBwcm9jZXNzb3Ig
PSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0K
LSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25zZS5uYW1l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0
ZXJzKCkpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAsIHByb2Nlc3Nvci5fcmZjMTk3
OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX291dF9v
Zl9yYW5nZV9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0
ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzAnKQotICAgICAgICBwcm9jZXNz
b3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVz
cG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzX3dpdGhv
dXRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRl
cignbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAg
ICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAg
IHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUn
KQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3Zlcics
IE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5n
ZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVyZnJh
bWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fbm9fY29udGV4dF90YWtlb3ZlcikKLQot
ICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3Zlcl93aXRoX3ZhbHVlKHNl
bGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJm
cmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRl
eHRfdGFrZW92ZXInLCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5E
ZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBk
ZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBwYXJh
bWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAg
ICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2ZvbycsICdiYXInKQotICAgICAgICBwcm9j
ZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0
ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25z
ZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9w
YXJhbWV0ZXJzKCkpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vz
c29yUGFyc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9y
IGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IgcGFyc2Vz
Ci0gICAgZ2l2ZW4gZXh0ZW5zaW9uIHBhcmFtZXRlciBjb3JyZWN0bHkuCi0gICAgIiIiCi0KLSAg
ICBkZWYgdGVzdF9yZWdpc3RyeShzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJ
c0luc3RhbmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVu
c2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IpCi0KLSAgICBkZWYgdGVz
dF9taW5pbWFsX29mZmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcmVzcG9u
c2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6bGliLk1BWF9XQklUUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fbm9fY29udGV4
dF90YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzKHNl
bGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVy
X21heF93aW5kb3dfYml0cycsICcxMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAg
IHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnc2VydmVyX21heF93aW5kb3dfYml0cycsICcxMCcp
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAsIHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRl
ci5fd2luZG93X2JpdHMpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX291dF9vZl9yYW5nZV9t
YXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRf
cGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzAnKQotICAgICAgICBwcm9jZXNz
b3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFt
ZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lv
bl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHNf
d2l0aG91dF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9w
YXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBwcm9jZXNz
b3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFt
ZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lv
bl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2Vv
dmVyKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcign
c2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBl
eHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikK
LQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2Uu
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9ub19jb250ZXh0X3Rh
a2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9w
YXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2Nlc3Nvci5fcmZjMTk3
OV9kZWZsYXRlci5fbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dp
dGhfbm9fY29udGV4dF90YWtlb3Zlcl93aXRoX3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0
ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAg
ICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIn
LCAnZm9vYmFyJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVm
bGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0
X29mZmVyX3dpdGhfdW5rbm93bl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAg
IHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0
ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
ckJ1aWxkaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Ig
Y2hlY2tpbmcgdGhhdCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvciBidWlsZHMK
LSAgICBhIHJlc3BvbnNlIGJhc2VkIG9uIHNwZWNpZmllZCBvcHRpb25zIGNvcnJlY3RseS4KLSAg
ICAiIiIKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfbWF4X3dpbmRvd19iaXRzKHNlbGYp
OgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNz
YWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignY2xpZW50X21h
eF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotICAgICAgICBwcm9j
ZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCi0KLSAgICAgICAgcmVzcG9uc2Ug
PSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJywgJzEwJyldLAotICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICBkZWYg
dGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X2NsaWVudF9wZXJtaXNz
aW9uKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZs
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50
X21heF93aW5kb3dfYml0cygxMCkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVzcG9uc2Up
Ci0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX3RydWVfZm9yX25vX2NvbnRleHRfdGFrZW92
ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbKCdjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgZGVmIHRlc3Rf
cmVzcG9uc2Vfd2l0aF9mYWxzZV9mb3Jfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZScpKQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRfdGFr
ZW92ZXIoRmFsc2UpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lv
bl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0
ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVz
cG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZS5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE3OGFjMDVlNTg3MWQxNTlhNjdmN2U0
MTZmMzAyNzAwZmEwZjkyNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwx
ODggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJUZXN0cyBmb3IgaGFuZHNoYWtlLl9iYXNlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5p
dHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRl
IG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBp
bXBvcnQgRXh0ZW5zaW9uUGFyYW1ldGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1w
b3J0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1v
biBpbXBvcnQgZm9ybWF0X2V4dGVuc2lvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBp
bXBvcnQgcGFyc2VfZXh0ZW5zaW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKLQotCi1jbGFzcyBWYWxpZGF0
ZVN1YnByb3RvY29sVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBm
b3IgdmFsaWRhdGVfc3VicHJvdG9jb2wgbWV0aG9kLiIiIgotCi0gICAgZGVmIHRlc3RfdmFsaWRh
dGVfc3VicHJvdG9jb2woc2VsZik6Ci0gICAgICAgICMgU2hvdWxkIHN1Y2NlZWQuCi0gICAgICAg
IHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQotICAgICAgICB2YWxpZGF0ZV9zdWJwcm90
b2NvbCgnU2FtcGxlJykKLSAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4N2Vw
cm90b2NvbCcpCi0KLSAgICAgICAgIyBTaG91bGQgZmFpbC4KLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxp
ZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICdzYW1wbGVceDA5cHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hh
a2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3Rv
Y29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgxOXByb3RvY29sJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3NhbXBsZVx4MjBwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhh
bmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3Vi
cHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDdmcHJvdG9jb2wn
KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgdSdcdTY1ZTVcdTY3MmMnKQotCi0KLV9URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRBID0gWwot
ICAgICgnZm9vJywgWygnZm9vJywgW10pXSksCi0gICAgKCdmb287IGJhcicsIFsoJ2ZvbycsIFso
J2JhcicsIE5vbmUpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPWJheicsIFsoJ2ZvbycsIFsoJ2Jhcics
ICdiYXonKV0pXSksCi0gICAgKCdmb287IGJhcj1iYXo7IGNhcj1jZHInLCBbKCdmb28nLCBbKCdi
YXInLCAnYmF6JyksICgnY2FyJywgJ2NkcicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPWJheiwgY2Fy
OyBjZHInLAotICAgICBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKSwgKCdjYXInLCBbKCdjZHIn
LCBOb25lKV0pXSksCi0gICAgKCdhLCBiLCBjLCBkJywKLSAgICAgWygnYScsIFtdKSwgKCdiJywg
W10pLCAoJ2MnLCBbXSksICgnZCcsIFtdKV0pLAotICAgIF0KLQotCi1fVEVTVF9RVU9URURfRVhU
RU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb287IGJhcj0iIicsIFsoJ2ZvbycsIFsoJ2JhcicsICcn
KV0pXSksCi0gICAgKCdmb287IGJhcj0iIGJheiAiJywgWygnZm9vJywgWygnYmFyJywgJyBiYXog
JyldKV0pLAotICAgICgnZm9vOyBiYXI9IixiYXo7IicsIFsoJ2ZvbycsIFsoJ2JhcicsICcsYmF6
OycpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSJcXFxyXFxcbmJheiInLCBbKCdmb28nLCBbKCdiYXIn
LCAnXHJcbmJheicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSJcXCJiYXoiJywgWygnZm9vJywgWygn
YmFyJywgJyJiYXonKV0pXSksCi0gICAgKCdmb287IGJhcj0iXHhiYmJheiInLCBbKCdmb28nLCBb
KCdiYXInLCAnXHhiYmJheicpXSldKSwKLSAgICBdCi0KLQotX1RFU1RfUkVEVU5EQU5UX1RPS0VO
X0VYVEVOU0lPTl9EQVRBID0gWwotICAgICgnZm9vIFx0ICcsIFsoJ2ZvbycsIFtdKV0pLAotICAg
ICgnZm9vOyBcclxuIGJhcicsIFsoJ2ZvbycsIFsoJ2JhcicsIE5vbmUpXSldKSwKLSAgICAoJ2Zv
bzsgYmFyPVxyXG4gXHJcbiBiYXonLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAotICAg
ICgnZm9vIDtiYXIgPSBiYXogJywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAo
J2ZvbyxiYXIsLGJheicsIFsoJ2ZvbycsIFtdKSwgKCdiYXInLCBbXSksICgnYmF6JywgW10pXSks
Ci0gICAgXQotCi0KLV9URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEEgPSBbCi0g
ICAgKCdmb287IGJhcj0iXHJcbiBcclxuIGJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnICBiYXon
KV0pXSksCi0gICAgXQotCi0KLWNsYXNzIEV4dGVuc2lvbnNQYXJzZXJUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLQotICAgIGRlZiBfdmVyaWZ5X2V4dGVuc2lvbl9saXN0KHNlbGYsIGV4cGVjdGVk
X2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAgICAgIiIiVmVyaWZpZXMgdGhhdCBFeHRlbnNpb25Q
YXJhbWV0ZXIgb2JqZWN0cyBpbiBhY3R1YWxfbGlzdCBoYXZlIHRoZQotICAgICAgICBzYW1lIG1l
bWJlcnMgYXMgZXh0ZW5zaW9uIGRlZmluaXRpb25zIGluIGV4cGVjdGVkX2xpc3QuIEV4dGVuc2lv
bgotICAgICAgICBkZWZpbml0aW9uIHVzZWQgaW4gdGhpcyB0ZXN0IGlzIGEgcGFpciBvZiBhbiBl
eHRlbnNpb24gbmFtZSBhbmQgYQotICAgICAgICBwYXJhbWV0ZXIgZGljdGlvbmFyeS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxl
bihhY3R1YWxfbGlzdCkpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBl
Y3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0gICAgICAgICAgICAobmFtZSwgcGFyYW1ldGVycykg
PSBleHBlY3RlZAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lLCBhY3R1YWwuX25h
bWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtZXRlcnMsIGFjdHVhbC5fcGFy
YW1ldGVycykKLQotICAgIGRlZiB0ZXN0X3BhcnNlKHNlbGYpOgotICAgICAgICBmb3IgZm9ybWF0
dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToKLSAg
ICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBk
ZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVm
IHRlc3RfcGFyc2VfcXVvdGVkX2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3Ry
aW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1FVT1RFRF9FWFRFTlNJT05fREFUQToKLSAgICAgICAg
ICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0
aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3Rf
cGFyc2VfcmVkdW5kYW50X2RhdGEoc2VsZik6Ci0gICAgICAgIGZvciAoZm9ybWF0dGVkX3N0cmlu
ZywKLSAgICAgICAgICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURVTkRBTlRfVE9LRU5fRVhU
RU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0g
ICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3Ry
aW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFudF9xdW90ZWRfZGF0YShzZWxmKToK
LSAgICAgICAgZm9yIChmb3JtYXR0ZWRfc3RyaW5nLAotICAgICAgICAgICAgIGRlZmluaXRpb24p
IGluIF9URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEE6Ci0gICAgICAgICAgICBz
ZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCi0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwg
cGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNl
X2JhZF9kYXRhKHNlbGYpOgotICAgICAgICBfVEVTVF9CQURfRVhURU5TSU9OX0RBVEEgPSBbCi0g
ICAgICAgICAgICAoJ2ZvbzsgOyAnKSwKLSAgICAgICAgICAgICgnZm9vOyBhIGEnKSwKLSAgICAg
ICAgICAgICgnZm9vIGZvbycpLAotICAgICAgICAgICAgKCcsLCwnKSwKLSAgICAgICAgICAgICgn
Zm9vOyBiYXI9JyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPSJob2dlJyksCi0gICAgICAgICAg
ICAoJ2ZvbzsgYmFyPSJhXHIiJyksCi0gICAgICAgICAgICAoJ2ZvbzsgYmFyPSJcXFx4ZmYiJyks
Ci0gICAgICAgICAgICAoJ2ZvbzsgYmFyPVxyYScpLAotICAgICAgICAgICAgXQotCi0gICAgICAg
IGZvciBmb3JtYXR0ZWRfc3RyaW5nIGluIF9URVNUX0JBRF9FWFRFTlNJT05fREFUQToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgICAgIEV4dGVuc2lvblBhcnNp
bmdFeGNlcHRpb24sIHBhcnNlX2V4dGVuc2lvbnMsIGZvcm1hdHRlZF9zdHJpbmcpCi0KLQotY2xh
c3MgRm9ybWF0RXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRl
c3RfZm9ybWF0X2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5n
LCBkZWZpbml0aW9ucyBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAg
IGV4dGVuc2lvbnMgPSBbXQotICAgICAgICAgICAgZm9yIGRlZmluaXRpb24gaW4gZGVmaW5pdGlv
bnM6Ci0gICAgICAgICAgICAgICAgKG5hbWUsIHBhcmFtZXRlcnMpID0gZGVmaW5pdGlvbgotICAg
ICAgICAgICAgICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihuYW1lKQotICAgICAg
ICAgICAgICAgIGV4dGVuc2lvbi5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMKLSAgICAgICAgICAg
ICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9zdHJpbmcsIGZvcm1hdF9leHRlbnNp
b25zKGV4dGVuc2lvbnMpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5p
dHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJp
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGFhZjY0MGE1ODhlMmIwNDJmMzJh
OWM2NmEzNjk3YWQ0ZGQxMGJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNTIxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiVGVzdHMgZm9yIGhhbmRzaGFrZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNv
bW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBBYm9ydGVk
QnlVc2VyRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCBWZXJzaW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuaHliaSBpbXBvcnQgSGFuZHNoYWtlcgotCi1pbXBvcnQgbW9jawotCi0KLWNsYXNzIFJlcXVl
c3REZWZpbml0aW9uKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgaG9sZGluZyBkYXRhIGZv
ciBjb25zdHJ1Y3Rpbmcgb3BlbmluZyBoYW5kc2hha2Ugc3RyaW5ncyBmb3IKLSAgICB0ZXN0aW5n
IHRoZSBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbWV0aG9kLCB1cmksIGhlYWRlcnMpOgotICAgICAgICBzZWxmLm1ldGhvZCA9
IG1ldGhvZAotICAgICAgICBzZWxmLnVyaSA9IHVyaQotICAgICAgICBzZWxmLmhlYWRlcnMgPSBo
ZWFkZXJzCi0KLQotZGVmIF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpOgotICAgIHJldHVybiBS
ZXF1ZXN0RGVmaW5pdGlvbigKLSAgICAgICAgJ0dFVCcsICcvZGVtbycsCi0gICAgICAgIHsnSG9z
dCc6ICdzZXJ2ZXIuZXhhbXBsZS5jb20nLAotICAgICAgICAgJ1VwZ3JhZGUnOiAnd2Vic29ja2V0
JywKLSAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtS2V5JzogJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PScsCi0gICAgICAgICAnU2VjLVdl
YlNvY2tldC1WZXJzaW9uJzogJzEzJywKLSAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1w
bGUuY29tJ30pCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZik6Ci0gICAgY29u
biA9IG1vY2suTW9ja0Nvbm4oJycpCi0gICAgcmV0dXJuIG1vY2suTW9ja1JlcXVlc3QoCi0gICAg
ICAgIG1ldGhvZD1yZXF1ZXN0X2RlZi5tZXRob2QsCi0gICAgICAgIHVyaT1yZXF1ZXN0X2RlZi51
cmksCi0gICAgICAgIGhlYWRlcnNfaW49cmVxdWVzdF9kZWYuaGVhZGVycywKLSAgICAgICAgY29u
bmVjdGlvbj1jb25uKQotCi0KLWRlZiBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCk6Ci0gICAg
aGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQot
ICAgIHJldHVybiBoYW5kc2hha2VyCi0KLQotY2xhc3MgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3Bh
dGNoZXIob2JqZWN0KToKLSAgICAiIiJBIGRpc3BhdGNoZXIgZm9yIHRlc3RpbmcuIFRoaXMgZGlz
cGF0Y2hlciBzZXRzIHRoZSBpLXRoIHN1YnByb3RvY29sCi0gICAgb2YgcmVxdWVzdGVkIG9uZXMg
dG8gd3NfcHJvdG9jb2wgd2hlcmUgaSBpcyBnaXZlbiBvbiBjb25zdHJ1Y3Rpb24gYXMgaW5kZXgK
LSAgICBhcmd1bWVudC4gSWYgaW5kZXggaXMgbmVnYXRpdmUsIGRlZmF1bHRfdmFsdWUgd2lsbCBi
ZSBzZXQgdG8gd3NfcHJvdG9jb2wuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
aW5kZXgsIGRlZmF1bHRfdmFsdWU9Tm9uZSk6Ci0gICAgICAgIHNlbGYuaW5kZXggPSBpbmRleAot
ICAgICAgICBzZWxmLmRlZmF1bHRfdmFsdWUgPSBkZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYgZG9f
ZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIGlmIHNlbGYuaW5k
ZXggPj0gMDoKLSAgICAgICAgICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9IGNvbm5fY29u
dGV4dC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzWwotICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhd
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjb25uX2NvbnRleHQud3NfcHJvdG9jb2wgPSBz
ZWxmLmRlZmF1bHRfdmFsdWUKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29u
dGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBIYW5kc2hha2VBYm9ydGVkRXhjZXB0aW9u
KEV4Y2VwdGlvbik6Ci0gICAgcGFzcwotCi0KLWNsYXNzIEFib3J0aW5nRGlzcGF0Y2hlcihvYmpl
Y3QpOgotICAgICIiIkEgZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNwYXRjaGVyIHJh
aXNlcyBhbiBleGNlcHRpb24gaW4KLSAgICBkb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRo
ZSByZXF1ZXN0LgotICAgICIiIgotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBj
b25uX2NvbnRleHQpOgotICAgICAgICByYWlzZSBIYW5kc2hha2VBYm9ydGVkRXhjZXB0aW9uKCdB
biBleGNlcHRpb24gdG8gcmVqZWN0IHRoZSByZXF1ZXN0JykKLQotICAgIGRlZiB0cmFuc2Zlcl9k
YXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBBYm9ydGVk
QnlVc2VyRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkEgZGlzcGF0Y2hlciBmb3IgdGVzdGlu
Zy4gVGhpcyBkaXNwYXRjaGVyIHJhaXNlcyBhbgotICAgIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24g
aW4gZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdC4KLSAgICAiIiIKLQot
ICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAg
cmFpc2UgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbignQW4gQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiB0
byByZWplY3QgdGhlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVx
dWVzdCcpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAg
ICAgICBwYXNzCi0KLQotX0VYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICdIVFRQLzEuMSAxMDEg
U3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCi0gICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0g
ICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUFjY2VwdDog
czNwUExNQmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG5cclxuJykKLQotCi1jbGFzcyBIYW5kc2hh
a2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgZHJhZnQt
aWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTA2IGFuZCBsYXRlcgotICAgIGhhbmRzaGFr
ZSBwcm9jZXNzb3IuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Uoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3Rf
ZGVmKCkpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBtb2NrLk1vY2tEaXNwYXRjaGVyKCkKLSAgICAg
ICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkaXNw
YXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZV9jYWxsZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVl
c3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxl
LmNvbScsIHJlcXVlc3Qud3Nfb3JpZ2luKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVx
dWVzdC53c19leHRlbnNpb25zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5WRVJT
SU9OX0hZQklfTEFURVNULCByZXF1ZXN0LndzX3ZlcnNpb24pCi0KLSAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2Vfd2l0aF9leHRyYV9oZWFkZXJzKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgICMgQWRkIGhlYWRlcnMgbm90IHJl
bGF0ZWQgdG8gV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlLgotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydGb29LZXknXSA9ICdCYXJWYWx1ZScKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snRW1wdHlLZXknXSA9ICcnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihy
ZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRo
X2NhcGl0YWxpemVkX3ZhbHVlKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ3VwZ3JhZGUn
XSA9ICdXRUJTT0NLRVQnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1
ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0
KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9
ICdVUEdSQURFJwotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9k
ZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAg
ICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9tdWx0aXBsZV9j
b25uZWN0aW9uX3ZhbHVlcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9u
J10gPSAnVXBncmFkZSwga2VlcC1hbGl2ZSwgLCAnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFu
ZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0aW5n
X2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0gICAg
ICAgICAgICBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkpLAotICAg
ICAgICAgICAgQWJvcnRpbmdEaXNwYXRjaGVyKCkpCi0gICAgICAgICMgZG9fZXh0cmFfaGFuZHNo
YWtlIHJhaXNlcyBhbiBleGNlcHRpb24uIENoZWNrIHRoYXQgaXQncyBub3QgY2F1Z2h0IGJ5Ci0g
ICAgICAgICMgZG9faGFuZHNoYWtlLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hh
a2VBYm9ydGVkRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0
ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Byb3RvY29sKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2Rl
ZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRl
cnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9ICdjaGF0LCBzdXBlcmNoYXQnCi0KLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNo
YWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIo
MCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLQotICAgICAgICBFWFBFQ1RF
RF9SRVNQT05TRSA9ICgKLSAgICAgICAgICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3Rv
Y29sc1xyXG4nCi0gICAgICAgICAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAgICAg
ICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUFjY2VwdDogczNwUExNQmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG4nCi0gICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogY2hhdFxyXG5cclxuJykKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKEVYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NoYXQnLCByZXF1ZXN0LndzX3Byb3Rv
Y29sKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3Byb3RvY29sX25vdF9pbl9yZXF1ZXN0
X2J1dF9pbl9yZXNwb25zZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIHJl
cXVlc3QsIFN1YnByb3RvY29sQ2hvb3NpbmdEaXNwYXRjaGVyKC0xLCAnZm9vYmFyJykpCi0gICAg
ICAgICMgTm8gcmVxdWVzdCBoYXMgYmVlbiBtYWRlIGJ1dCB3c19wcm90b2NvbCBpcyBzZXQuIEhh
bmRzaGFrZUV4Y2VwdGlvbgotICAgICAgICAjIG11c3QgYmUgcmFpc2VkLgotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcHJvdG9jb2xfbm9fcHJvdG9jb2xf
c2VsZWN0aW9uKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1
ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnXSA9ICdjaGF0LCBzdXBlcmNoYXQnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNo
YWtlcihyZXF1ZXN0KQotICAgICAgICAjIHdzX3Byb3RvY29sIGlzIG5vdCBzZXQuIEhhbmRzaGFr
ZUV4Y2VwdGlvbiBtdXN0IGJlIHJhaXNlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFu
ZHNoYWtlRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0
X2RvX2hhbmRzaGFrZV93aXRoX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAncGVybWVzc2Fn
ZS1kZWZsYXRlOyBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicpCi0KLSAgICAgICAgRVhQRUNU
RURfUkVTUE9OU0UgPSAoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuJwotICAgICAgICAgICAgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgICAg
ICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tl
dC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxuJwotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJwotICAgICAgICAgICAgICAgICdwZXJtZXNzYWdl
LWRlZmxhdGU7IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyXHJcbicKLSAgICAgICAgICAgICdc
clxuJykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQot
ICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFWFBF
Q1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAg
ICBleHRlbnNpb24gPSByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBleHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcl9uYW1lcygpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLmdldF9wYXJhbWV0
ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0
ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29yc1swXS5uYW1lKCkpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9xdW90ZWRf
ZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4
dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICdwZXJtZXNzYWdlLWRlZmxhdGUsICwgJwotICAg
ICAgICAgICAgJ3Vua25vd247IGUgICA9ICAgICJtY14yIjsgbWE9IlxyXG4gICAgICBcXFxyZiAg
IjsgcHY9bnJ0JykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3Rf
ZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0g
ICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyLCBsZW4ocmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0
X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnNbMF0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgZmlyc3RfZXh0ZW5zaW9uLm5h
bWUoKSkKLSAgICAgICAgc2Vjb25kX2V4dGVuc2lvbiA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4
dGVuc2lvbnNbMV0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndW5rbm93bicsIHNlY29uZF9l
eHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
WydlJywgJ21hJywgJ3B2J10sIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl9uYW1lcygp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdtY14yJywgc2Vjb25kX2V4dGVuc2lvbi5nZXRf
cGFyYW1ldGVyX3ZhbHVlKCdlJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyBccmYgJywg
c2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtYScpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCducnQnLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUo
J3B2JykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9vcHRpb25hbF9oZWFkZXJz
KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0VtcHR5VmFsdWUnXSA9ICcnCi0gICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0FLZXknXSA9ICdBVmFsdWUnCi0KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9j
cmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAnQVZhbHVlJywgcmVx
dWVzdC5oZWFkZXJzX2luWydBS2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICAnJywgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0eVZhbHVlJ10pCi0KLSAgICBkZWYg
dGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBI
YW5kc2hha2VyKAotICAgICAgICAgICAgX2NyZWF0ZV9yZXF1ZXN0KF9jcmVhdGVfZ29vZF9yZXF1
ZXN0X2RlZigpKSwKLSAgICAgICAgICAgIEFib3J0ZWRCeVVzZXJEaXNwYXRjaGVyKCkpCi0gICAg
ICAgICMgZG9fZXh0cmFfaGFuZHNoYWtlIHJhaXNlcyBhbiBBYm9ydGVkQnlVc2VyRXhjZXB0aW9u
LiBDaGVjayB0aGF0IGl0J3MKLSAgICAgICAgIyBub3QgY2F1Z2h0IGJ5IGRvX2hhbmRzaGFrZS4K
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9tdXhf
YW5kX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNv
Y2tldC1FeHRlbnNpb25zJ10gPSAoJyVzLCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9u
Lk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikK
LSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAg
ICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICMgbXV4IHNob3VsZCBiZSByZWpl
Y3RlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25zKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25zWzBd
Lm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9F
WFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25f
cHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLkRF
RkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkKLQotICAgIGRlZiB0ZXN0X2Rv
X2hhbmRzaGFrZV93aXRoX2RlZmxhdGVfZnJhbWVfYW5kX211eChzZWxmKToKLSAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgnJXMsICVzJyAlICgKLSAg
ICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAg
ICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hh
a2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAg
IyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJzdF9leHRlbnNpb24gPSByZXF1
ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVG
TEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfZXh0
ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGhhc2F0dHIocmVxdWVzdCwgJ211eCcpKQotCi0gICAgZGVmIHRlc3RfZG9faGFu
ZHNoYWtlX3dpdGhfcGVybWVzc2FnZV9kZWZsYXRlX2FuZF9tdXgoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9k
ZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAn
JXMsICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VY
VEVOU0lPTiwKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19o
YW5kc2hha2UoKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJ
T04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25zWzBdLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNb
MV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihyZXF1ZXN0LCAnbXV4
X3Byb2Nlc3NvcicpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVxdWVzdC5tdXhfcHJvY2Vz
c29yLmlzX2FjdGl2ZSgpKQotICAgICAgICBtdXhfZXh0ZW5zaW9ucyA9IHJlcXVlc3QubXV4X3By
b2Nlc3Nvci5leHRlbnNpb25zKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obXV4
X2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIG11eF9leHRlbnNp
b25zWzBdLm5hbWUoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211eF9hbmRf
cGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJT
b2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAgICAgJyVzLCAlcycgJSAoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hh
a2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAg
IyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJzdF9leHRlbnNpb24gPSByZXF1
ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVS
TUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaXJz
dF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0
cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3Rz
KHNlbGYpOgotICAgICAgICBiYWRfY2FzZXMgPSBbCi0gICAgICAgICAgICAoJ0hUVFAgcmVxdWVz
dCcsCi0gICAgICAgICAgICAgUmVxdWVzdERlZmluaXRpb24oCi0gICAgICAgICAgICAgICAgICdH
RVQnLCAnL2RlbW8nLAotICAgICAgICAgICAgICAgICB7J0hvc3QnOiAnd3d3Lmdvb2dsZS5jb20n
LAotICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOgotICAgICAgICAgICAgICAgICAgICAg
ICdNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMC41OycKLSAgICAg
ICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJl
Zm94LzMuNS4zJwotICAgICAgICAgICAgICAgICAgICAgICcgR1RCNiBHVEJBJywKLSAgICAgICAg
ICAgICAgICAgICdBY2NlcHQnOgotICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwsYXBw
bGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwnCi0gICAgICAgICAgICAg
ICAgICAgICAgJyovKjtxPTAuOCcsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdl
JzogJ2VuLXVzLGVuO3E9MC41JywKLSAgICAgICAgICAgICAgICAgICdBY2NlcHQtRW5jb2Rpbmcn
OiAnZ3ppcCxkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICdBY2NlcHQtQ2hhcnNldCc6ICdJ
U08tODg1OS0xLHV0Zi04O3E9MC43LCo7cT0wLjcnLAotICAgICAgICAgICAgICAgICAgJ0tlZXAt
QWxpdmUnOiAnMzAwJywKLSAgICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ2tlZXAtYWxp
dmUnfSksIE5vbmUsIFRydWUpXQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYubWV0aG9kID0gJ1BPU1QnCi0gICAg
ICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBtZXRob2QnLCByZXF1ZXN0X2RlZiwgTm9uZSwg
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snSG9zdCddCi0gICAgICAgIGJhZF9j
YXNlcy5hcHBlbmQoKCdNaXNzaW5nIEhvc3QnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0K
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snVXBncmFkZSddCi0gICAgICAgIGJhZF9jYXNlcy5h
cHBlbmQoKCdNaXNzaW5nIFVwZ3JhZGUnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10gPSAnbm9ud2Vic29ja2V0JwotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgVXBncmFkZScsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVl
KSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0g
ICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10KLSAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgQ29ubmVjdGlvbicsIHJlcXVlc3RfZGVmLCBOb25lLCBU
cnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdEb3duZ3JhZGUn
Ci0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBDb25uZWN0aW9uJywgcmVxdWVzdF9k
ZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtS2V5J10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tl
dC1LZXknLCByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9
IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNb
J1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnZEdobElITmhiWEJzWlNCdWIy
NWpaUT09Z2FyYmFnZScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2Vi
U29ja2V0LUtleSAod2l0aCBnYXJiYWdlIG9uIHRoZSB0YWlsKScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICdZUT09JyAgIyBCQVNFNjQgb2YgJ2EnCi0gICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5
IChkZWNvZGVkIHZhbHVlIGlzIG5vdCAxNiBvY3RldHMgbG9uZyknLAotICAgICAgICAgICAgIHJl
cXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgIyBUaGUgbGFzdCBjaGFyYWN0ZXIgcmlnaHQgYmVm
b3JlID09IG11c3QgYmUgYW55IG9mIEEsIFEsIHcgYW5kIGcuCi0gICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnQVFJREJBVUdC
d2dKQ2dzTURRNFBFQz09JykKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAg
ICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKHBhZGRpbmcgYml0cyBhcmUgbm90IHplcm8pJywK
LSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhl
YWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAoCi0gICAgICAgICAgICAnZEdobElITmhiWEJz
WlNCdWIyNWpaUT09LGRHaGxJSE5oYlhCc1pTQnViMjVqWlE9PScpCi0gICAgICAgIGJhZF9jYXNl
cy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5IChtdWx0aXBs
ZSB2YWx1ZXMpJywKLSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAg
ICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRl
bCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXQotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMtV2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0
X2RlZiwgTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXSA9ICczJwotICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uJywgcmVxdWVzdF9kZWYs
IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKLQotICAgICAgICByZXF1
ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVm
LmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddID0gJzEzLCAxMycKLSAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbiAobXVsdGlwbGUgdmFs
dWVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUp
KQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAg
ICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2ls
bGVnYWxceDA5cHJvdG9jb2wnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdJbGxlZ2FsIFNl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wnLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQt
UHJvdG9jb2wnXSA9ICcnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdFbXB0eSBTZWMtV2Vi
U29ja2V0LVByb3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYs
IDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgZm9yIChjYXNlX25hbWUsIHJlcXVlc3RfZGVmLCBleHBl
Y3RlZF9zdGF0dXMsCi0gICAgICAgICAgICAgZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pIGlu
IGJhZF9jYXNlczoKLSAgICAgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCi0gICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2Nr
Lk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnTm8gZXhj
ZXB0aW9uIHRocm93biBmb3IgXCclc1wnIGNhc2UnICUgY2FzZV9uYW1lKQotICAgICAgICAgICAg
ZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkX3N0YXR1cywgZS5zdGF0dXMpCi0gICAgICAgICAgICBleGNl
cHQgVmVyc2lvbkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9oYW5kc2hha2VfaHliaTAwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2Y5
ZjI3Y2EyZDk0MjFiMjMwMTVmNThjODkzYWNmMWRjMDA5ZGVmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJp
MDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFuZHNoYWtlLmh5Ymkw
MCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGgg
ICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgSGFuZHNo
YWtlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgX3ZhbGlk
YXRlX3N1YnByb3RvY29sCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9LRVkxID0g
JzQgQDEgIDQ2NTQ2eFclMGwgMSA1JwotX1RFU1RfS0VZMiA9ICcxMjk5OCA1IFkzIDEgIC5QMDAn
Ci1fVEVTVF9LRVkzID0gJ15uOmRzWzRVJwotX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFID0gJzhq
S1NcJ3k6RypDbyxXeGEtJwotCi0KLV9HT09EX1JFUVVFU1QgPSAoCi0gICAgODAsCi0gICAgJ0dF
VCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywK
LSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0
LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdz
YW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhh
bXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVRVUVTVF9DQVBJ
VEFMSVpFRF9IRUFERVJfVkFMVUVTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVt
bycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25u
ZWN0aW9uJzogJ1VQR1JBREUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1Rf
S0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAg
ICAgJ1VwZ3JhZGUnOiAnV0VCU09DS0VUJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAg
ICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJf
TkFNRVMgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAg
ICAgICdoT3NUJzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ2NPbk5lQ3RJb04nOiAnVXBncmFk
ZScsCi0gICAgICAgICdzRWMtd0Vic09jS2VULWtFeTInOiBfVEVTVF9LRVkyLAotICAgICAgICAn
c0VjLXdFYnNPY0tlVC1wUm9Ub0NvTCc6ICdzYW1wbGUnLAotICAgICAgICAndVBnUmFEZSc6ICdX
ZWJTb2NrZXQnLAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkxJzogX1RFU1RfS0VZMSwKLSAg
ICAgICAgJ29SaUdpTic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1Rf
S0VZMykKLQotX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JUID0gKAotICAgICdIVFRQLzEuMSAx
MDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNv
Y2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29j
a2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29j
a2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Q
cm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9S
RVNQT05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VDVVJFID0gKAotICAgICdIVFRQLzEuMSAxMDEg
V2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tl
dFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0
LUxvY2F0aW9uOiB3c3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tl
dC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVT
UE9OU0UpCi0KLV9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUID0gKAotICAgIDgwODEsCi0g
ICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUu
Y29tOjgwODEnLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzog
J2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9S
RVNQT05TRV9OT05ERUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQg
UHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246
IHdzOi8vZXhhbXBsZS5jb206ODA4MS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Pcmln
aW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6
IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0Up
Ci0KLV9HT09EX1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBX
ZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0
XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQt
TG9jYXRpb246IHdzczovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJT
b2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0
LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdF
X1JFU1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX05PX1BST1RPQ09MID0gKAotICAgIDgwLAotICAg
ICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNv
bScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywK
LSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmln
aW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9H
T09EX1JFU1BPTlNFX05PX1BST1RPQ09MID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0
IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0g
ICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9u
OiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjog
aHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5H
RV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMgPSAoCi0g
ICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0Jzog
J2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnRW1wdHlWYWx1ZSc6
ICcnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAg
ICAnQUtleSc6ICdBVmFsdWUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6
ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotIyBUT0RP
KHR5b3NoaW5vKTogSW5jbHVkZSBcciBcbiBpbiBrZXkzLCBjaGFsbGVuZ2UgcmVzcG9uc2UuCi0K
LV9HT09EX1JFUVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAotICAgIDgwLAotICAgICdH
RVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScs
Ci0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkyJzogJ3kgIFIyIDQ4IFExTzQgIGV8QlYzIGk1IDEgIHUtIDY1JywKLSAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2Vi
U29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6ICczNiA3ICAgNzQgaSAgOTIg
MlwnbSA5IDBHJywKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAg
IH0sCi0gICAgJycuam9pbihtYXAoY2hyLCBbMHgwMSwgMHhkMSwgMHhkZCwgMHgzYiwgMHhkMSwg
MHg1NiwgMHg2MywgMHhmZl0pKSkKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVf
S0VZID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxy
XG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3Jh
ZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2Rl
bW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJc
bicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicg
KwotICAgICcnLmpvaW4obWFwKGNociwgWzB4MGIsIDB4OTksIDB4ZmEsIDB4NTUsIDB4YmQsIDB4
MDEsIDB4MjMsIDB4N2IsCi0gICAgICAgICAgICAgICAgICAgICAgMHg0NSwgMHhhMiwgMHhmMSwg
MHhkMCwgMHg4NywgMHg4YSwgMHhlZSwgMHhlYl0pKSkKLQotX0dPT0RfUkVRVUVTVF9XSVRIX1FV
RVJZX1BBUlQgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vP2U9bWMyJywKLSAg
ICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24n
OiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAot
ICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBn
cmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1Rf
S0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0g
ICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9QQVJUID0gKAotICAg
ICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1Vw
Z3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAg
ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzJcclxu
JwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAg
ICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAg
IF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0JBRF9SRVFVRVNUUyA9ICgKLSAgICAoICAj
IEhUVFAgcmVxdWVzdAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVt
bycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKLSAg
ICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVs
IE1hYyBPUyBYIDEwLjU7JwotICAgICAgICAgICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjox
LjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnIEdUQjYgR1RCQScsCi0gICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCxh
cHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKLSAgICAgICAgICAg
ICAgICAgICAgICAnKi8qO3E9MC44JywKLSAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAn
ZW4tdXMsZW47cT0wLjUnLAotICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLGRl
ZmxhdGUnLAotICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7
cT0wLjcsKjtxPTAuNycsCi0gICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAotICAgICAg
ICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZScsCi0gICAgICAgIH0pLAotICAgICggICMg
V3JvbmcgbWV0aG9kCi0gICAgICAgIDgwLAotICAgICAgICAnUE9TVCcsCi0gICAgICAgICcvZGVt
bycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAg
ICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09y
aWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9L
RVkzKSwKLSAgICAoICAjIE1pc3NpbmcgVXBncmFkZQotICAgICAgICA4MCwKLSAgICAgICAgJ0dF
VCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFt
cGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgV3Jv
bmcgVXBncmFkZQotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycs
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAg
ICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6
ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnTm9uV2ViU29ja2V0JywKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09y
aWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9L
RVkzKSwKLSAgICAoICAjIEVtcHR5IFdlYlNvY2tldC1Qcm90b2NvbAotICAgICAgICA4MCwKLSAg
ICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdI
b3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUn
LAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAg
ICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICcnLAotICAgICAgICAgICAgJ1VwZ3JhZGUn
OiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9L
RVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAg
ICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIFdyb25nIHBvcnQgbnVtYmVyIGZv
cm1hdAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjB4NTAnLAotICAgICAgICAg
ICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzog
J3NhbXBsZScsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2lu
JzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMp
LAotICAgICggICMgSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaAotICAgICAgICA4MDgw
LAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAg
ICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBn
cmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAg
ICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgSWxsZWdhbCBX
ZWJTb2NrZXQtUHJvdG9jb2wKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAn
L2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0g
ICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2Vi
U29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnOiAnaWxsZWdhbFx4MDlwcm90b2NvbCcsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdX
ZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEs
Ci0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0s
Ci0gICAgICAgIF9URVNUX0tFWTMpLAotKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpOgotICAgIGRhdGEgPSAnJwotICAgIGlmIGxlbihyZXF1ZXN0X2RlZikgPiA0OgotICAg
ICAgICBkYXRhID0gcmVxdWVzdF9kZWZbNF0KLSAgICBjb25uID0gbW9jay5Nb2NrQ29ubihkYXRh
KQotICAgIGNvbm4ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIHJlcXVlc3RfZGVmWzBdKQotICAg
IHJldHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWZbMV0s
Ci0gICAgICAgIHVyaT1yZXF1ZXN0X2RlZlsyXSwKLSAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0
X2RlZlszXSwKLSAgICAgICAgY29ubmVjdGlvbj1jb25uKQotCi0KLWRlZiBfY3JlYXRlX2dldF9t
ZW1vcml6ZWRfbGluZXMobGluZXMpOgotICAgICIiIkNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJl
dHVybnMgdGhlIGdpdmVuIHN0cmluZy4iIiIKLQotICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVz
KCk6Ci0gICAgICAgIHJldHVybiBsaW5lcwotICAgIHJldHVybiBnZXRfbWVtb3JpemVkX2xpbmVz
Ci0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdHNfd2l0aF9saW5lcyhyZXF1ZXN0X2xpbmVzX3NldCk6
Ci0gICAgcmVxdWVzdHMgPSBbXQotICAgIGZvciBsaW5lcyBpbiByZXF1ZXN0X2xpbmVzX3NldDoK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X21lbW9yaXplZF9saW5lcyA9IF9jcmVhdGVfZ2V0X21l
bW9yaXplZF9saW5lcygKLSAgICAgICAgICAgICAgICBsaW5lcykKLSAgICAgICAgcmVxdWVzdHMu
YXBwZW5kKHJlcXVlc3QpCi0gICAgcmV0dXJuIHJlcXVlc3RzCi0KLQotY2xhc3MgSHlCaTAwSGFu
ZHNoYWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1
ZXN0X2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dChfR09PRF9SRVFVRVNUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVlc3Qud3NfcmVzb3Vy
Y2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHJlcXVl
c3Qud3Nfb3JpZ2luKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29t
L2RlbW8nLCByZXF1ZXN0LndzX2xvY2F0aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdz
YW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0
X2NhcGl0YWxpemVkX2hlYWRlcl92YWx1ZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJfVkFMVUVTKQotICAg
ICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVy
KCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
Z29vZF9yZXF1ZXN0X2Nhc2VfbWl4ZWRfaGVhZGVyX25hbWVzKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFN
RVMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rp
c3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9nb29kX3JlcXVlc3Rfc2VjdXJlX2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIDQ0MykKLSAgICAgICAgcmVxdWVz
dC5pc19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVl
c3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hh
a2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wp
Ci0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfbm9uZGVmYXVsdF9wb3J0KHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9Q
T1JUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQot
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoX0dPT0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dv
b2RfcmVxdWVzdF9zZWN1cmVfbm9uX2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKLSAgICAg
ICAgcmVxdWVzdC5pc19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hh
a2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NF
Q1VSRV9OT05ERUYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1
ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2RlZmF1bHRfbm9f
cHJvdG9jb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0Rf
UkVRVUVTVF9OT19QUk9UT0NPTCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVx
dWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9D
T0wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfcHJvdG9j
b2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfT1BU
SU9OQUxfSEVBREVSUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwg
bW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FWYWx1ZScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydBS2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0
eVZhbHVlJ10pCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9ub25wcmludGFibGVf
a2V5KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVF
U1RfV0lUSF9OT05QUklOVEFCTEVfS0VZKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtl
cihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRI
X05PTlBSSU5UQUJMRV9LRVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUn
LCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhf
cXVlcnlfcGFydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09P
RF9SRVFVRVNUX1dJVEhfUVVFUllfUEFSVCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfV0lU
SF9RVUVSWV9QQVJULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6Ly9leGFtcGxl
LmNvbS9kZW1vP2U9bWMyJywgcmVxdWVzdC53c19sb2NhdGlvbikKLQotICAgIGRlZiB0ZXN0X2Jh
ZF9yZXF1ZXN0cyhzZWxmKToKLSAgICAgICAgZm9yIHJlcXVlc3QgaW4gbWFwKF9jcmVhdGVfcmVx
dWVzdCwgX0JBRF9SRVFVRVNUUyk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtl
cihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0K
LWNsYXNzIEh5QmkwMFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICBkZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyBzaG91
bGQgc3VjY2VlZC4KLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQotICAg
ICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCi0gICAgICAgIF92YWxpZGF0ZV9z
dWJwcm90b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnBy
b3RvY29sKCdzYW1wbGVceDIwcHJvdG9jb2wnKQotCi0gICAgICAgICMgc2hvdWxkIGZhaWwuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nh
bXBsZVx4N2Zwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29s
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQotCi0KLWlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDM2ZGM1N2MzNzMxMDcxZmUyOTAxOTE5ZTMzZjI0YzFiNTU5ZjYwNS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hl
YWRlcl91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaHR0cF9oZWFk
ZXJfdXRpbCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotY2xhc3MgVW5pdFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGh0dHBfaGVhZGVyX3V0aWwgbW9k
dWxlLiIiIgotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVsYXRpdmVfdXJpKHNlbGYpOgotICAgICAg
ICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCcvd3Mv
dGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgaG9zdCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvd3Mv
dGVzdCcsIHJlc291cmNlKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfYWJzb2x1dGVfdXJpKHNlbGYp
OgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2Vf
dXJpKAotICAgICAgICAgICAgJ3dzOi8vbG9jYWxob3N0OjEwMDgwL3dzL3Rlc3QnKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdsb2NhbGhvc3QnLCBob3N0KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEwMDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvd3MvdGVzdCcs
IHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJf
dXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9leGFtcGxlLmNvbS93cy90ZXN0JykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvd3Mv
dGVzdCcsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9o
ZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3NzOi8vZXhhbXBsZS5jb20vJykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDQ0MywgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLycs
IHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJf
dXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9leGFtcGxlLmNvbTo4MDgwJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDgwODAsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy8nLCBy
ZXNvdXJjZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2ludmFsaWRfdXJpKHNlbGYpOgotICAgICAg
ICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czov
Ly8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQotCi0gICAgICAg
IGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8v
bG9jYWxob3N0OicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0K
LSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3Vy
aSgnd3M6Ly9sb2NhbGhvc3Q6L3dzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBy
ZXNvdXJjZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1h
aW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
bWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYxYjhlZWY0MzM3OGE5YjAwNjI1ZjIyMGM5N2Zl
MjJmNzQwYThmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEw
NCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIlRlc3RzIGZvciBtZW1vcml6aW5nZmlsZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IFN0cmlu
Z0lPCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lz
LnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBtZW1vcml6aW5nZmlsZQotCi0KLWNsYXNzIFV0aWxUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBtZW1vcml6aW5nZmlsZSBtb2R1bGUu
IiIiCi0KLSAgICBkZWYgY2hlY2soc2VsZiwgbWVtb3JpemluZ19maWxlLCBudW1fcmVhZCwgZXhw
ZWN0ZWRfbGlzdCk6Ci0gICAgICAgIGZvciB1bnVzZWQgaW4gcmFuZ2UobnVtX3JlYWQpOgotICAg
ICAgICAgICAgbWVtb3JpemluZ19maWxlLnJlYWRsaW5lKCkKLSAgICAgICAgYWN0dWFsX2xpc3Qg
PSBtZW1vcml6aW5nX2ZpbGUuZ2V0X21lbW9yaXplZF9saW5lcygpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBm
b3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVm
IGNoZWNrX3dpdGhfc2l6ZShzZWxmLCBtZW1vcml6aW5nX2ZpbGUsIHJlYWRfc2l6ZSwgZXhwZWN0
ZWRfbGlzdCk6Ci0gICAgICAgIHJlYWRfbGlzdCA9IFtdCi0gICAgICAgIHJlYWRfbGluZSA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBsaW5lID0gbWVtb3JpemluZ19maWxl
LnJlYWRsaW5lKHJlYWRfc2l6ZSkKLSAgICAgICAgICAgIGxpbmVfbGVuZ3RoID0gbGVuKGxpbmUp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobGluZV9sZW5ndGggPD0gcmVhZF9zaXplKQot
ICAgICAgICAgICAgaWYgbGluZV9sZW5ndGggPT0gMDoKLSAgICAgICAgICAgICAgICBpZiByZWFk
X2xpbmUgIT0gJyc6Ci0gICAgICAgICAgICAgICAgICAgIHJlYWRfbGlzdC5hcHBlbmQocmVhZF9s
aW5lKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICByZWFkX2xpbmUgKz0gbGlu
ZQotICAgICAgICAgICAgaWYgbGluZVtsaW5lX2xlbmd0aCAtIDFdID09ICdcbic6Ci0gICAgICAg
ICAgICAgICAgcmVhZF9saXN0LmFwcGVuZChyZWFkX2xpbmUpCi0gICAgICAgICAgICAgICAgcmVh
ZF9saW5lID0gJycKLSAgICAgICAgYWN0dWFsX2xpc3QgPSBtZW1vcml6aW5nX2ZpbGUuZ2V0X21l
bW9yaXplZF9saW5lcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xp
c3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBl
Y3RlZF9saXN0KSwgbGVuKHJlYWRfbGlzdCkpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFs
LCByZWFkIGluIHppcChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfbGlzdCk6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGVkLCByZWFkKQotCi0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lcyhz
ZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3Jpemlu
Z0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxu
V2VsY29tZScpKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwgMywgWydIZWxs
b1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSddKQotCi0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXpl
ZF9saW5lc19saW1pdF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgIG1lbW9yaXppbmdf
ZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAot
ICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSwgMikKLSAgICAgICAgc2Vs
Zi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxuJ10pCi0KLSAg
ICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX2VtcHR5X2ZpbGUoc2VsZik6Ci0gICAgICAg
IG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lP
LlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICcnKSkKLSAgICAgICAgc2VsZi5jaGVjayhtZW1v
cml6aW5nX2ZpbGUsIDEwLCBbXSkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNf
d2l0aF9zaXplKHNlbGYpOgotICAgICAgICBmb3Igc2l6ZSBpbiByYW5nZSgxLCAxMCk6Ci0gICAg
ICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShT
dHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAgICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21l
JykpCi0gICAgICAgICAgICBzZWxmLmNoZWNrX3dpdGhfc2l6ZShtZW1vcml6aW5nX2ZpbGUsIHNp
emUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ0hlbGxvXG4nLCAnV29ybGRc
bicsICdXZWxjb21lJ10pCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRl
c3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF9tb2NrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2RjMjNhNzNkOGZiMWEwN2FlYjNlNWFlOTQwMmNjODZiOGZjYzM2Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9tb2NrLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52
IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG1vY2sgbW9kdWxl
LiIiIgotCi0KLWltcG9ydCBRdWV1ZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVuaXR0ZXN0
Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2Rf
cHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1jbGFzcyBN
b2NrQ29ublRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1v
Y2tDb25uIGNsYXNzLiIiIgotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLl9j
b25uID0gbW9jay5Nb2NrQ29ubignQUJDXHJcbkRFRkdcclxuXHJcbkhJSksnKQotCi0gICAgZGVm
IHRlc3RfcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG4n
LCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0RFRkdc
clxuJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
clxuJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
SUpLJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcn
LCBzZWxmLl9jb25uLnJlYWRsaW5lKCkpCi0KLSAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnRUZHXHJcblxyXG5ISScsIHNlbGYuX2Nvbm4ucmVhZCg5
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSksnLCBzZWxmLl9jb25uLnJlYWQoMTApKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWQoMTApKQotCi0gICAg
ZGVmIHRlc3RfcmVhZF9hbmRfcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0FCQ1xyXG5EJywgc2VsZi5fY29ubi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdFRkdcclxuJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdcclxuSElKSycsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3Rfd3JpdGUo
c2VsZik6Ci0gICAgICAgIHNlbGYuX2Nvbm4ud3JpdGUoJ0hlbGxvXHJcbicpCi0gICAgICAgIHNl
bGYuX2Nvbm4ud3JpdGUoJ1dvcmxkXHJcbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hl
bGxvXHJcbldvcmxkXHJcbicsIHNlbGYuX2Nvbm4ud3JpdHRlbl9kYXRhKCkpCi0KLQotY2xhc3Mg
TW9ja0Jsb2NraW5nQ29ublRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRl
c3QgZm9yIE1vY2tCbG9ja2luZ0Nvbm4gY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9yZWFkKHNl
bGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IGRhdGEgcHV0IHRvIE1vY2tCbG9ja2luZ0Nvbm4g
YnkgcHV0X2J5dGVzIG1ldGhvZCBjYW4gYmUKLSAgICAgICAgcmVhZCBmcm9tIGl0LgotICAgICAg
ICAiIiIKLQotICAgICAgICBjbGFzcyBMaW5lUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgotICAg
ICAgICAgICAgIiIiQSB0ZXN0IGNsYXNzIHRoYXQgbGF1bmNoZXMgYSB0aHJlYWQsIGNhbGxzIHJl
YWRsaW5lIG9uIHRoZQotICAgICAgICAgICAgc3BlY2lmaWVkIGNvbm4gcmVwZWF0ZWRseSBhbmQg
cHV0cyB0aGUgcmVhZCBkYXRhIHRvIHRoZSBzcGVjaWZpZWQKLSAgICAgICAgICAgIHF1ZXVlLgot
ICAgICAgICAgICAgIiIiCi0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uLCBx
dWV1ZSk6Ci0gICAgICAgICAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQot
ICAgICAgICAgICAgICAgIHNlbGYuX3F1ZXVlID0gcXVldWUKLSAgICAgICAgICAgICAgICBzZWxm
Ll9jb25uID0gY29ubgotICAgICAgICAgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAg
ICAgICAgICAgICAgc2VsZi5zdGFydCgpCi0KLSAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Ci0g
ICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNl
bGYuX2Nvbm4ucmVhZGxpbmUoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQo
ZGF0YSkKLQotICAgICAgICBjb25uID0gbW9jay5Nb2NrQmxvY2tpbmdDb25uKCkKLSAgICAgICAg
cXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHJlYWRlciA9IExpbmVSZWFkZXIoY29ubiwg
cXVldWUpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcyhxdWV1ZS5lbXB0eSgpKQotICAgICAgICBj
b25uLnB1dF9ieXRlcygnRm9vIGJhclxyXG4nKQotICAgICAgICByZWFkID0gcXVldWUuZ2V0KCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnRm9vIGJhclxyXG4nLCByZWFkKQotCi0KLWNsYXNz
IE1vY2tUYWJsZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9y
IE1vY2tUYWJsZSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2RpY3Qoc2Vs
Zik6Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoeydLZXknOiAnVmFsdWUnfSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0
X2NyZWF0ZV9mcm9tX2xpc3Qoc2VsZik6Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUo
WygnS2V5JywgJ1ZhbHVlJyldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRh
YmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVb
J2tleSddKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fdHVwbGUoc2VsZik6Ci0gICAgICAg
IHRhYmxlID0gbW9jay5Nb2NrVGFibGUoKCgnS2V5JywgJ1ZhbHVlJyksKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0X3NldF9hbmRf
Z2V0KHNlbGYpOgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCB0YWJsZS5nZXQoJ0tleScpKQotICAgICAgICB0YWJsZVsnS2V5
J10gPSAnVmFsdWUnCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0
KCdLZXknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ2tl
eScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tleSddKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsnS0VZJ10pCi0KLQotaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1
dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzQ3MzVjNjMwNDdkMmVkYjIz
OGNiNTI1NWFkNDc0YTJlNGQwYTgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzQ3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAx
MiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotIiIiVGVzdHMgZm9yIG1zZ3V0aWwgbW9kdWxlLiIiIgotZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBwcmludF9mdW5jdGlvbgotCi0KLWltcG9ydCBhcnJheQotaW1wb3J0IFF1ZXVlCi1pbXBv
cnQgcmFuZG9tCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB6bGliCi0K
LWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3
ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBlck1l
c3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgbXNndXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBJbnZhbGlkVVRG
OEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgdXRpbAotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotIyBXZSB1c2Ugb25l
IGZpeGVkIG5vbmNlIGZvciB0ZXN0aW5nIGluc3RlYWQgb2YgY3J5cHRvZ3JhcGhpY2FsbHkgc2Vj
dXJlIFBSTkcuCi1fTUFTS0lOR19OT05DRSA9ICdBQkNEJwotCi0KLWRlZiBfbWFza19oeWJpKGZy
YW1lKToKLSAgICBmcmFtZV9rZXkgPSBtYXAob3JkLCBfTUFTS0lOR19OT05DRSkKLSAgICBmcmFt
ZV9rZXlfbGVuID0gbGVuKGZyYW1lX2tleSkKLSAgICByZXN1bHQgPSBhcnJheS5hcnJheSgnQicp
Ci0gICAgcmVzdWx0LmZyb21zdHJpbmcoZnJhbWUpCi0gICAgY291bnQgPSAwCi0gICAgZm9yIGkg
aW4geHJhbmdlKGxlbihyZXN1bHQpKToKLSAgICAgICAgcmVzdWx0W2ldIF49IGZyYW1lX2tleVtj
b3VudF0KLSAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGZyYW1lX2tleV9sZW4KLSAgICBy
ZXR1cm4gX01BU0tJTkdfTk9OQ0UgKyByZXN1bHQudG9zdHJpbmcoKQotCi0KLWRlZiBfaW5zdGFs
bF9leHRlbnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMp
OgotICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
IGlmIHJlc3BvbnNlIGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFt
X29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0gICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnMuYXBwZW5kKHByb2Nlc3NvcikKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2Zyb21f
cmF3ZGF0YSgKLSAgICAgICAgcmVhZF9kYXRhLAotICAgICAgICBkZWZsYXRlX2ZyYW1lX3JlcXVl
c3Q9Tm9uZSwKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9Tm9uZSk6Ci0gICAg
cmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycuam9pbihy
ZWFkX2RhdGEpKSkKLSAgICByZXEud3NfdmVyc2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFU
RVNUCi0gICAgcmVxLndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10KLQotICAgIHByb2Nlc3Nv
ciA9IE5vbmUKLSAgICBpZiBkZWZsYXRlX2ZyYW1lX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAg
ICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihkZWZsYXRlX2Zy
YW1lX3JlcXVlc3QpCi0gICAgZWxpZiBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCBpcyBub3Qg
Tm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IoCi0gICAgICAgICAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3QpCi0KLSAg
ICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotICAgIGlmIHByb2Nlc3NvciBpcyBu
b3QgTm9uZToKLSAgICAgICAgX2luc3RhbGxfZXh0ZW5zaW9uX3Byb2Nlc3Nvcihwcm9jZXNzb3Is
IHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbShyZXEsIHN0
cmVhbV9vcHRpb25zKQotCi0gICAgcmV0dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3Qo
KmZyYW1lcyk6Ci0gICAgIiIiQ3JlYXRlcyBNb2NrUmVxdWVzdCB1c2luZyBkYXRhIGdpdmVuIGFz
IGZyYW1lcy4KLQotICAgIGZyYW1lcyB3aWxsIGJlIHJldHVybmVkIG9uIGNhbGxpbmcgcmVxdWVz
dC5jb25uZWN0aW9uLnJlYWQoKSB3aGVyZSByZXF1ZXN0Ci0gICAgaXMgTW9ja1JlcXVlc3QgcmV0
dXJuZWQgYnkgdGhpcyBmdW5jdGlvbi4KLSAgICAiIiIKLQotICAgIHJlYWRfZGF0YSA9IFtdCi0g
ICAgZm9yIChoZWFkZXIsIGJvZHkpIGluIGZyYW1lczoKLSAgICAgICAgcmVhZF9kYXRhLmFwcGVu
ZChoZWFkZXIgKyBfbWFza19oeWJpKGJvZHkpKQotCi0gICAgcmV0dXJuIF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEocmVhZF9kYXRhKQotCi0KLWRlZiBfY3JlYXRlX2Jsb2NraW5nX3JlcXVl
c3QoKToKLSAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0LgotCi0gICAgRGF0YSB3cml0dGVuIHRv
IGEgTW9ja1JlcXVlc3QgY2FuIGJlIHJlYWQgb3V0IGJ5IGNhbGxpbmcKLSAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkuCi0gICAgIiIiCi0KLSAgICByZXEgPSBtb2NrLk1vY2tS
ZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdDb25uKCkpCi0gICAgcmVxLndzX3Zl
cnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotICAgIHN0cmVhbV9vcHRpb25zID0g
U3RyZWFtT3B0aW9ucygpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbShyZXEsIHN0cmVhbV9v
cHRpb25zKQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUo
cmVhZF9kYXRhPScnKToKLSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9j
ay5Nb2NrQ29ubihyZWFkX2RhdGEpKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1
KHJlcSkKLSAgICByZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9o
aXhpZTc1KCk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9j
a0Jsb2NraW5nQ29ubigpKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1KHJlcSkK
LSAgICByZXR1cm4gcmVxCi0KLQotY2xhc3MgQmFzaWNNZXNzYWdlVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgIiIiQmFzaWMgdGVzdHMgZm9yIFN0cmVhbS4iIiIKLQotICAgIGRlZiB0ZXN0
X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2QnICsgcGF5
bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lZGl1bV9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICBwYXlsb2FkID0gJ2EnICogMTI2Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZVx4MDBceDdlJyArIHBheWxvYWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoKDEgPDwgMTYpIC0gMSkKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdlXHhmZlx4ZmYn
ICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2xhcmdlX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBh
eWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdmXHgwMFx4MDBceDAwXHgw
MFx4MDBceDAxXHgwMFx4MDAnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21l
c3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgp
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKLSAgICAg
ICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDgxXHgwM1x4ZTZceDk3XHhhNScsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9tZXNzYWdlX2ZyYWdtZW50cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycs
IEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnICcsIEZhbHNl
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnLCBGYWxzZSkK
LSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJyEnLCBUcnVlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwNUhlbGxvXHgwMFx4MDEgXHgwMFx4MDVXb3JsZFx4
ODBceDAxIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudHNfaW1tZWRpYXRlX3pl
cm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8gV29ybGQhJywg
RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnLCBUcnVlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwY0hlbGxvIFdvcmxkIVx4ODBceDAwJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceDg1JywgJ0hlbGxvJyks
ICgnXHg4MVx4ODYnLCAnV29ybGQhJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ICAgIHBheWxvYWQgPSAnYScgKiAxMjUKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgoJ1x4ODFceGZkJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9h
ZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX21lZGl1bV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI2Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4MDBceDdlJywgcGF5
bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgoMSA8PCAxNikg
LSAxKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmVceGZmXHhm
ZicsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9sYXJnZV9t
ZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICogKDEgPDwgMTYpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceGZmXHgwMFx4
MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfbGVuZ3RoX25vdF9lbmNvZGVkX3VzaW5nX21pbmltYWxfbnVtYmVy
X29mX2J5dGVzKHNlbGYpOgotICAgICAgICAjIExvZyB3YXJuaW5nIG9uIHJlY2VpdmluZyBiYWQg
cGF5bG9hZCBsZW5ndGggZmllbGQgdGhhdCBkb2Vzbid0IHVzZQotICAgICAgICAjIG1pbmltYWwg
bnVtYmVyIG9mIGJ5dGVzIGJ1dCBjb250aW51ZSBwcm9jZXNzaW5nLgotCi0gICAgICAgIHBheWxv
YWQgPSAnYScKLSAgICAgICAgIyAxIGJ5dGUgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGhvdXQgZXh0
ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQuCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceGZmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw
MFx4MDEnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVz
c2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgn
XHg4MVx4ODMnLCAnXHhlNlx4OWNceGFjJykpCi0gICAgICAgICMgVSs2NzJjIGlzIGVuY29kZWQg
YXMgZTYsOWMsYWMgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1NjcyYycs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2
ZV9tZXNzYWdlX2Vycm9uZW91c191bmljb2RlKHNlbGYpOgotICAgICAgICAjIFx4ODAgYW5kIFx4
ODEgYXJlIGludmFsaWQgYXMgVVRGLTguCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoKCdceDgxXHg4MicsICdceDgwXHg4MScpKQotICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVy
cyBzaG91bGQgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24KLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoSW52YWxpZFVURjhFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHMoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDg1JywgJ0hlbGxvJyks
Ci0gICAgICAgICAgICAoJ1x4MDBceDgxJywgJyAnKSwKLSAgICAgICAgICAgICgnXHgwMFx4ODUn
LCAnV29ybGQnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODEnLCAnIScpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX3VuaWNvZGUoc2VsZik6Ci0g
ICAgICAgICMgVVRGLTggZW5jb2RlcyBVKzZmMjIgaW50byBlNmJjYTIgYW5kIFUrNWI1NyBpbnRv
IGU1YWQ5Ny4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAg
ICgnXHgwMVx4ODInLCAnXHhlNlx4YmMnKSwKLSAgICAgICAgICAgICgnXHgwMFx4ODInLCAnXHhh
Mlx4ZTUnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODInLCAnXHhhZFx4OTcnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh1J1x1NmYyMlx1NWI1NycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfaW1tZWRpYXRlX3pl
cm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
Ci0gICAgICAgICAgICAoJ1x4MDFceDhjJywgJ0hlbGxvIFdvcmxkIScpLCAoJ1x4ODBceDgwJywg
JycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRz
X2R1cGxpY2F0ZV9zdGFydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgKLSAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwgKCdceDAxXHg4NScsICdXb3Js
ZCcpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2Vw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX2ZyYWdtZW50c19pbnRlcm1lZGlhdGVfYnV0X25vdF9zdGFydGVkKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwMFx4ODUnLCAnSGVsbG8nKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVu
dHNfZW5kX2J1dF9ub3Rfc3RhcnRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgoJ1x4ODBceDg1JywgJ0hlbGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kaXNjYXJkKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhmXHg4Nics
ICdJR05PUkUnKSwgKCdceDgxXHg4NScsICdIZWxsbycpLAotICAgICAgICAgICAgKCdceDhmXHg4
OScsICdESVNSRUdBUkQnKSwgKCdceDgxXHg4NicsICdXb3JsZCEnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMobXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwgcmVxdWVzdCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5VbnN1cHBvcnRlZEZyYW1l
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZSwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2Nsb3Nl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAg
KCdceDg4XHg4YScsIHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwMCwgcmVxdWVzdC53c19jbG9zZV9jb2Rl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdHb29kIGJ5ZScsIHJlcXVlc3Qud3NfY2xvc2Vf
cmVhc29uKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0X2Nsb3NlKHNlbGYpOgotICAgICAg
ICByZWFzb24gPSAnYScgKiAxMjMKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
LSAgICAgICAgICAgICgnXHg4OFx4ZmQnLAotICAgICAgICAgICAgIHN0cnVjdC5wYWNrKCchSCcs
IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpICsgcmVhc29uKSkKLSAgICAgICAgcmVxdWVz
dC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3NlX2NvZGUsIGNvbW1vbi5TVEFU
VVNfTk9STUFMX0NMT1NVUkUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdC53c19j
bG9zZV9yZWFzb24sIHJlYXNvbikKLQotICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfdG9vX2xvbmco
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAn
YScgKiAxMjQpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Nsb3NlX2luY29uc2lzdGVudF9jb2RlX2Fu
ZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAg
ICAgICAjIHJlYXNvbiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIHdoZW4gY29kZSBp
cyBOb25lLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnYScp
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSGVsbG8g
V29ybGQhJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MGNIZWxsbyBXb3JsZCEn
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbG9uZ2VzdF9waW5nKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVx
dWVzdCwgJ2EnICogMTI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHg3ZCcgKyAn
YScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nX3Rvb19sb25nKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAnYScgKiAxMjYpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX3Bpbmcoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHJlY2VpdmluZyBhIHBpbmcg
Y29udHJvbCBmcmFtZS4iIiIKLQotICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCBtZXNzYWdl
KToKLSAgICAgICAgICAgIHJlcXVlc3QuY2FsbGVkID0gVHJ1ZQotCi0gICAgICAgICMgU3RyZWFt
IGF1dG9tYXRpY2FsbHkgcmVzcG9uZCB0byBwaW5nIHdpdGggcG9uZyB3aXRob3V0IGFueSBhY3Rp
b24KLSAgICAgICAgIyBieSBhcHBsaWNhdGlvbiBsYXllci4KLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4ODUnLCAnSGVsbG8nKSwgKCdceDgx
XHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eDhhXHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
LSAgICAgICAgICAgICgnXHg4OVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcp
KQotICAgICAgICByZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QuY2FsbGVkKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9sb25nZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceGZkJywgJ2EnICogMTI1KSwgKCdceDgxXHg4NScs
ICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDhhXHg3
ZCcgKyAnYScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nX3Rvb19sb25n
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4OVx4ZmVceDAw
XHg3ZScsICdhJyAqIDEyNikpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52
YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfcG9uZyhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgcmVjZWl2aW5n
IGEgcG9uZyBjb250cm9sIGZyYW1lLiIiIgotCi0gICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3Qs
IG1lc3NhZ2UpOgotICAgICAgICAgICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCi0KLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4YVx4ODUnLCAnSGVs
bG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0Lm9uX3BvbmdfaGFu
ZGxlciA9IGhhbmRsZXIKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ0hlbGxv
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MDVIZWxsbycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAg
ICAjIFZhbGlkIHBvbmcgaXMgcmVjZWl2ZWQsIGJ1dCByZWNlaXZlX21lc3NhZ2Ugd29uJ3QgcmV0
dXJuIGZvciBpdC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgIyBDaGVjayB0aGF0IG5vdGhpbmcgd2Fz
IHdyaXR0ZW4gYWZ0ZXIgcmVjZWl2ZV9tZXNzYWdlIGNhbGwuCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4ODlceDA1SGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVx
dWVzdC5jYWxsZWQpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3Vuc29saWNpdGVkX3Bvbmcoc2Vs
Zik6Ci0gICAgICAgICMgVW5zb2xpY2l0ZWQgcG9uZyBpcyBhbGxvd2VkIGZyb20gSHlCaSAwNy4K
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4YVx4
ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUnLCAnV29y
bGQnKSkKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ0p1bWJvJykKLSAgICAg
ICAgIyBCb2R5IG1pc21hdGNoLgotICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KQotCi0gICAgZGVmIHRlc3RfcGluZ19jYW5ub3RfYmVfZnJhZ21lbnRlZChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4MDlceDg1JywgJ0hlbGxvJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3Bpbmdfd2l0aF90
b29fbG9uZ19wYXlsb2FkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KCgnXHg4OVx4ZmVceDAxXHgwMCcsICdhJyAqIDI1NikpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdCkKLQotCi1jbGFzcyBEZWZsYXRlRnJhbWVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJUZXN0cyBmb3IgY2hlY2tpbmcgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24uIiIiCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxp
Yi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBj
b21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4
cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVj
dGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29t
cHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxl
bihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxk
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2JmaW5hbChzZWxm
KToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IgPSBy
ZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdCi0gICAgICAgIGRlZmxhdGVfZnJhbWVf
cHJvY2Vzc29yLnNldF9iZmluYWwoVHJ1ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J1dvcmxkJykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
Kz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG8gKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzEl
YycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3Nl
ZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29y
bGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkICsgY2hy
KDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQp
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfY29tcF9iaXQoc2VsZik6Ci0gICAgICAgIGNvbXBy
ZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBS
RVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAot
ICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3Jz
KSkKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IgPSByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzWzBdCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdI
ZWxsbycpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmRpc2FibGVfb3V0Z29pbmdf
Y29tcHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVs
bG8nKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5lbmFibGVfb3V0Z29pbmdfY29t
cHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8n
KQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAl
IGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hl
bGxvCi0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODFceDA1SGVsbG8nCi0KLSAgICAgICAgY29t
cHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBj
b21wcmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxsb1s6LTRd
Ci0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfMm5kX2hlbGxv
KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkXzJuZF9oZWxsbwotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9ub19jb250ZXh0X3Rha2VvdmVyX3BhcmFt
ZXRlcihzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAg
ICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1B
WF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9w
YXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZsYXRlX2Zy
YW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6Ci0gICAg
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAg
IGNvbXByZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfbWVzc2FnZSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29tcHJlc3NlZF9tZXNzYWdlWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX21lc3NhZ2UpCi0gICAg
ICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfbWVzc2FnZQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0ZWQsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2JhZF9yZXF1ZXN0
X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgaWYgdGhlcmUncyBhbnl0
aGluZyB3cm9uZyB3aXRoIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uCi0gICAgICAgIHJlcXVlc3Qs
IGRlZmxhdGUtZnJhbWUgaXMgcmVqZWN0ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OKQotICAgICAgICAjIG1heF93aW5kb3dfYml0cyBsZXNzIHRoYW4gOCBpcyBpbGxlZ2Fs
LgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzcn
KQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0
ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgbWF4
X3dpbmRvd19iaXRzIGdyZWF0ZXIgdGhhbiAxNSBpcyBpbGxlZ2FsLgotICAgICAgICBleHRlbnNp
b24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzE2JykKLSAgICAgICAgcHJvY2Vz
c29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgp
KQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIE5vbiBpbnRlZ2VyIG1heF93aW5k
b3dfYml0cyBpcyBpbGxlZ2FsLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWF4
X3dpbmRvd19iaXRzJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgICAgICBleHRl
bnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VY
VEVOU0lPTikKLSAgICAgICAgIyBub19jb250ZXh0X3Rha2VvdmVyIG11c3Qgbm90IGhhdmUgYW55
IHZhbHVlLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtl
b3ZlcicsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9yZXNwb25z
ZV9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcHJvY2Vz
c29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAg
cHJvY2Vzc29yLnNldF9yZXNwb25zZV93aW5kb3dfYml0cyg4KQotICAgICAgICByZXNwb25zZSA9
IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCc4JywgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWF4X3dp
bmRvd19iaXRzJykpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHByb2Nlc3NvciA9
IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHByb2Nl
c3Nvci5zZXRfcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotICAgICAgICByZXNw
b25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFt
ZXRlcl92YWx1ZSgnbm9fY29udGV4dF90YWtlb3ZlcicpIGlzIE5vbmUpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVz
c29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxB
VEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSAr
PSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRh
ICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBjb21wcmVzc2VkX3dl
YnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2NrZXQnKQotICAgICAgICBjb21wcmVz
c2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBj
b21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAl
IChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFz
a19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChs
ZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5Ymko
Y29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEg
Kz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29v
ZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Y29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVf
cmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3Qp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3Nh
Z2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfY2xpZW50X3VzaW5n
X3NtYWxsZXJfd2luZG93KHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgZnJhbWVzIGNvbWlu
ZyBmcm9tIGEgY2xpZW50IHdoaWNoIGlzIHVzaW5nIHNtYWxsZXIgd2luZG93Ci0gICAgICAgIHNp
emUgdGhhdCB0aGUgc2VydmVyIGFyZSBjb3JyZWN0bHkgcmVjZWl2ZWQuCi0gICAgICAgICIiIgot
Ci0gICAgICAgICMgVXNpbmcgdGhlIHNtYWxsZXN0IHdpbmRvdyBiaXRzIG9mIDggZm9yIGdlbmVy
YXRpbmcgaW5wdXQgZnJhbWVzLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwg
LTgpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgIyBVc2UgYSBmcmFtZSB3aG9zZSBj
b250ZW50IGlzIGJpZ2dlciB0aGFuIHRoZSBjbGllbnRzJyBERUZMQVRFIHdpbmRvdwotICAgICAg
ICAjIHNpemUgYmVmb3JlIGNvbXByZXNzaW9uLiBUaGUgY29udGVudCBtYWlubHkgY29uc2lzdHMg
b2YgJ2EnIGJ1dAotICAgICAgICAjIHJlcGV0aXRpb24gb2YgJ2InIGlzIHB1dCBhdCB0aGUgaGVh
ZCBhbmQgdGFpbCBzbyB0aGF0IGlmIHRoZSB3aW5kb3cKLSAgICAgICAgIyBzaXplIGlzIGJpZywg
dGhlIGhlYWQgaXMgYmFjay1yZWZlcmVuY2VkIGJ1dCBpZiBzbWFsbCwgbm90LgotICAgICAgICBw
YXlsb2FkID0gJ2InICogNjQgKyAnYScgKiAxMDI0ICsgJ2InICogNjQKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKHBheWxvYWQpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSArPSAn
XHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9
IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0g
ICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywg
MTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRl
ZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jb21wX2JpdChzZWxmKToKLSAgICAgICAgY29t
cHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09N
UFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRh
ID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hl
bGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpf
U1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9b
Oi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8
IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQotCi0g
ICAgICAgIGRhdGEgKz0gJ1x4ODFceDg1JyArIF9tYXNrX2h5YmkoJ0hlbGxvJykKLQotICAgICAg
ICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVM
VF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAg
IGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3NlZF8ybmRfaGVsbG9b
Oi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkXzJuZF9oZWxs
bykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF8ybmRfaGVs
bG8pCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1
ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV92YXJpb3VzX2J0eXBlKHNlbGYpOgot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNz
ZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRf
aGVsbG8pCi0KLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgPSBjb21wcmVzcy5jb21wcmVz
cygnV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gJ1x4
MDAnCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd2Vic29ja2V0
KSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dlYnNvY2tl
dCkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQn
KQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRd
Ci0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQpIHwgMHg4
MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0KLSAgICAg
ICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJp
KHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0g
ICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0KLWNsYXNzIFBl
ck1lc3NhZ2VEZWZsYXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZm9y
IHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uIiIiCi0KLSAgICBkZWYgdGVzdF9yZXNwb25z
ZV9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJ
T04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90
YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VEZWZsYXRlRXh0
ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3Iu
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgKLSAgICAg
ICAgICAgIHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVy
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBOb25lLCByZXNwb25z
ZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicpKQotCi0g
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAg
ICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9u
LmFkZF9wYXJhbWV0ZXIoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBw
cm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24p
Ci0KLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDgpCi0gICAg
ICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1ZSkKLSAgICAg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAnOCcsIHJlc3BvbnNlLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKAotICAgICAgICAgICAgcmVzcG9uc2UuaGFzX3BhcmFtZXRlcignY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIE5v
bmUsCi0gICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdjbGllbnRfbm9f
Y29udGV4dF90YWtlb3ZlcicpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgot
ICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywg
cGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwg
emxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCA9ICdceGMxJWMn
ICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRf
aGVsbG8KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9lbXB0eV9tZXNzYWdlKHNl
bGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgYW4gZW1wdHkgbWVzc2FnZSBpcyBjb21wcmVzc2Vk
IGNvcnJlY3RseS4iIiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5T
SU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAg
ICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQot
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnKQotCi0gICAgICAgICMg
UGF5bG9hZCBpbiBiaW5hcnk6IDBiMDAwMDAwMDAKLSAgICAgICAgIyBGcm9tIExTQiwKLSAgICAg
ICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAo
bm8gY29tcHJlc3Npb24pCi0gICAgICAgICMgLSA1IGJpdHMgb2YgcGFkZGluZwotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceGMxXHgwMVx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRf
bWVzc2FnZV93aXRoX251bGxfY2hhcmFjdGVyKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQg
YSBzaW1wbGUgcGF5bG9hZCAob25lIG51bGwpIGlzIGZyYW1lZCBjb3JyZWN0bHkuIiIiCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBl
cm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLQotICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCAnXHgwMCcpCi0KLSAgICAgICAgIyBQYXlsb2FkIGluIGJpbmFy
eTogMGIwMTEwMDAxMCAwYjAwMDAwMDAwIDBiMDAwMDAwMDAKLSAgICAgICAgIyBGcm9tIExTQiwK
LSAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBC
VFlQRSAoMDEgdGhhdCBtZWFucyBmaXhlZCBIdWZmbWFuKQotICAgICAgICAjIC0gOCBiaXRzIG9m
IHRoZSBmaXJzdCBjb2RlICgwMDExMDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0aGUgbGl0ZXJh
bAotICAgICAgICAjICAgYWxwaGFiZXQgMHgwMCkKLSAgICAgICAgIyAtIDcgYml0cyBvZiB0aGUg
c2Vjb25kIGNvZGUgKDAwMDAwMDAgdGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlCi0gICAgICAgICMg
ICBlbmQtb2YtYmxvY2spCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAg
ICMgLSAyIGJpdHMgb2YgQlRZUEUgKG5vIGNvbXByZXNzaW9uKQotICAgICAgICAjIC0gMiBiaXRz
IG9mIHBhZGRpbmcKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMVx4MDNceDYyXHgwMFx4
MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfdHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVz
c2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwg
LXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3Rl
ZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCAr
PSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
LmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21w
cmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29t
cHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkKHNlbGYp
OgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAn
JywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdHb29kYnllJywgZW5kPUZhbHNlKQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGNvbXByZXNz
ID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhw
ZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3Rl
ZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIGNvbXByZXNzZWRfZ29vZGJ5ZSA9IGNvbXBy
ZXNzLmNvbXByZXNzKCdHb29kYnllJykKLSAgICAgICAgY29tcHJlc3NlZF9nb29kYnllICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCArPSAnXHgw
MCVjJyAlIGxlbihjb21wcmVzc2VkX2dvb2RieWUpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXBy
ZXNzZWRfZ29vZGJ5ZQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJl
c3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRf
d29ybGRbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVzc2Vk
X3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVkX2VtcHR5X2ZpcnN0X2Zy
YW1lKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAg
ICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJywgZW5kPUZhbHNlKQotICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNz
ID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVk
ID0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0g
Y29tcHJlc3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3MuY29t
cHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNz
ZWRfZW1wdHlbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVz
c2VkX2VtcHR5KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2VtcHR5Ci0gICAgICAg
IHByaW50KCclcicgJSBleHBlY3RlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rl
ZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9tZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfbGFzdF9mcmFtZShzZWxmKToKLSAgICAgICAgZXh0
ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2Vf
ZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0g
ICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQs
IC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNv
bXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1
c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4o
Y29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwot
ICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3MuY29tcHJlc3MoJycpCi0gICAgICAg
IGNvbXByZXNzZWRfZW1wdHkgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0KLSAgICAgICAg
ZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVj
dGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX21lc3NhZ2VfdXNpbmdfc21hbGxfd2luZG93KHNlbGYpOgotICAgICAgICBjb21tb25fcGFy
dCA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLSAgICAgICAgdGVzdF9tZXNzYWdlID0g
Y29tbW9uX3BhcnQgKyAnLScgKiAzMDAwMCArIGNvbW1vbl9wYXJ0Ci0KLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJh
bWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnOCcpCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNz
YWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsIHRlc3RfbWVzc2FnZSkKLQotICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRf
aGVhZGVyX3NpemUgPSAyCi0gICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUg
PSA5MQotCi0gICAgICAgIGFjdHVhbF9mcmFtZSA9IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3dlYnNvY2tldF9oZWFk
ZXJfc2l6ZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X3Bh
eWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oYWN0dWFsX2ZyYW1lKSkK
LSAgICAgICAgYWN0dWFsX2hlYWRlciA9IGFjdHVhbF9mcmFtZVswOmV4cGVjdGVkX3dlYnNvY2tl
dF9oZWFkZXJfc2l6ZV0KLSAgICAgICAgYWN0dWFsX3BheWxvYWQgPSBhY3R1YWxfZnJhbWVbZXhw
ZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplOl0KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgICAgICdceGMxJWMnICUgZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxvYWRf
c2l6ZSwgYWN0dWFsX2hlYWRlcikKLSAgICAgICAgZGVjb21wcmVzcyA9IHpsaWIuZGVjb21wcmVz
c29iaigtOCkKLSAgICAgICAgZGVjb21wcmVzc2VkX21lc3NhZ2UgPSBkZWNvbXByZXNzLmRlY29t
cHJlc3MoCi0gICAgICAgICAgICAgICAgYWN0dWFsX3BheWxvYWQgKyAnXHgwMFx4MDBceGZmXHhm
ZicpCi0gICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlICs9IGRlY29tcHJlc3MuZmx1c2goKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3RfbWVzc2FnZSwgZGVjb21wcmVzc2VkX21lc3Nh
Z2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGRlY29tcHJlc3MudW51c2VkX2Rh
dGEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXByZXNzLnVuY29uc3Vt
ZWRfdGFpbCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vfbm9fY29udGV4dF90YWtlb3Zl
cl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRF
TlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVz
dD1leHRlbnNpb24pCi0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1UcnVlKQotCi0g
ICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGli
LlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQot
Ci0gICAgICAgIGZpcnN0X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgZmlyc3RfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oZmlyc3RfaGVsbG8pCi0gICAgICAgIGV4cGVj
dGVkICs9IGZpcnN0X2hlbGxvCi0gICAgICAgIHNlY29uZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIHNlY29uZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGli
LlpfU1lOQ19GTFVTSCkKLSAgICAgICAgc2Vjb25kX2hlbGxvID0gc2Vjb25kX2hlbGxvWzotNF0K
LSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oc2Vjb25kX2hlbGxvKQotICAgICAg
ICBleHBlY3RlZCArPSBzZWNvbmRfaGVsbG8KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwKLSAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVz
dF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9iZmluYWwoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxh
dGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihy
ZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgcmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29yc1swXS5zZXRfYmZpbmFsKFRydWUpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJywgZW5kPVRydWUpCi0KLSAgICAgICAgZXhwZWN0
ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9G
SU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvICsgY2hy
KDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8p
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3NlZF93b3JsZCArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAn
XHg4MCVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21w
cmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNz
YWdlX2RlZmxhdGUoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNv
bXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1
c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVz
c2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSA9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2Vk
X2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hl
bGxvKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEn
ICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgZGF0YSwg
cGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfcmFuZG9tX3NlY3Rpb24oc2VsZik6
Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIGNvbXByZXNzZWQgbWVzc2FnZSBmcmFnbWVudGVkIGlu
dG8gbG90cyBvZiBjaHVua3MgaXMKLSAgICAgICAgY29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAg
ICAiIiIKLQotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHBheWxvYWQgPSAnJy5q
b2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4
cmFuZ2UoMTAwMCldKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzLmNvbXBy
ZXNzKHBheWxvYWQpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJl
c3NlZF9wYXlsb2FkWzotNF0KLQotICAgICAgICAjIEZyYWdtZW50IHRoZSBjb21wcmVzc2VkIHBh
eWxvYWQgaW50byBsb3RzIG9mIGZyYW1lcy4KLSAgICAgICAgYnl0ZXNfY2h1bmtlZCA9IDAKLSAg
ICAgICAgZGF0YSA9ICcnCi0gICAgICAgIGZyYW1lX2NvdW50ID0gMAotCi0gICAgICAgIGNodW5r
X3NpemVzID0gW10KLQotICAgICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKGNvbXByZXNz
ZWRfcGF5bG9hZCk6Ci0gICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0Ci0gICAgICAgICAgICAj
IC0gdGhlIGxlbmd0aCBvZiBjaHVua3MgYXJlIGVxdWFsIG9yIGxlc3MgdGhhbiAxMjUgc28gdGhh
dCB3ZSBjYW4KLSAgICAgICAgICAgICMgICB1c2UgMSBvY3RldCBsZW5ndGggaGVhZGVyIGZvcm1h
dCBmb3IgYWxsIGZyYW1lcy4KLSAgICAgICAgICAgICMgLSBhdCBsZWFzdCAxMCBjaHVua3MgYXJl
IGNyZWF0ZWQuCi0gICAgICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCi0gICAg
ICAgICAgICAgICAgMSwgbWluKDEyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgbGVuKGNvbXBy
ZXNzZWRfcGF5bG9hZCkgLyAxMCwKLSAgICAgICAgICAgICAgICAgICAgICAgbGVuKGNvbXByZXNz
ZWRfcGF5bG9hZCkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgICAgIGNodW5rX3NpemVzLmFw
cGVuZChjaHVua19zaXplKQotICAgICAgICAgICAgY2h1bmsgPSBjb21wcmVzc2VkX3BheWxvYWRb
Ci0gICAgICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6
ZV0KLSAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgICAgICAg
ICBmaXJzdF9vY3RldCA9IDB4MDAKLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSA9PSAwOgotICAg
ICAgICAgICAgICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDQyCi0gICAgICAgICAg
ICBpZiBieXRlc19jaHVua2VkID09IGxlbihjb21wcmVzc2VkX3BheWxvYWQpOgotICAgICAgICAg
ICAgICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDgwCi0KLSAgICAgICAgICAgIGRh
dGEgKz0gJyVjJWMnICUgKGZpcnN0X29jdGV0LCBjaHVua19zaXplIHwgMHg4MCkKLSAgICAgICAg
ICAgIGRhdGEgKz0gX21hc2tfaHliaShjaHVuaykKLQotICAgICAgICAgICAgZnJhbWVfY291bnQg
Kz0gMQotCi0gICAgICAgIHByaW50KCJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCi0KLSAgICAgICAg
IyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0
cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24g
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Rf
ZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVl
c3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX3R3b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRF
RkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb1dlYlNvY2tldCcpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAg
ICAgICAgc3BsaXRfcG9zaXRpb24gPSBsZW4oY29tcHJlc3NlZF9oZWxsbykgLyAyCi0gICAgICAg
IGRhdGEgKz0gJ1x4NDElYycgJSAoc3BsaXRfcG9zaXRpb24gfCAweDgwKQotICAgICAgICBkYXRh
ICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsb1s6c3BsaXRfcG9zaXRpb25dKQotCi0gICAg
ICAgIGRhdGEgKz0gJ1x4ODAlYycgJSAoKGxlbihjb21wcmVzc2VkX2hlbGxvKSAtIHNwbGl0X3Bv
c2l0aW9uKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hl
bGxvW3NwbGl0X3Bvc2l0aW9uOl0pCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNz
b2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRF
RkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQg
PSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4o
Y29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29t
cHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0g
J1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBi
eWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0g
ICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAg
ICAgIGRhdGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnSGVsbG9XZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2
ZV9tZXNzYWdlX21peGVkX2J0eXBlKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgYSBtZXNz
YWdlIGNvbXByZXNzZWQgdXNpbmcgbG90cyBvZiBERUZMQVRFIGJsb2NrcyB3aXRoCi0gICAgICAg
IHZhcmlvdXMgZmx1c2ggbW9kZSBpcyBjb3JyZWN0bHkgcmVjZWl2ZWQuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oCi0g
ICAgICAgICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgx
MDAwKV0pCi0KLSAgICAgICAgY29tcHJlc3MgPSBOb25lCi0KLSAgICAgICAgIyBGcmFnbWVudCB0
aGUgY29tcHJlc3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBmcmFtZXMuCi0gICAgICAgIGJ5dGVz
X2NodW5rZWQgPSAwCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9ICcnCi0KLSAgICAgICAg
Y2h1bmtfc2l6ZXMgPSBbXQotICAgICAgICBtZXRob2RzID0gW10KLSAgICAgICAgc3luY191c2Vk
ID0gRmFsc2UKLSAgICAgICAgZmluaXNoX3VzZWQgPSBGYWxzZQotCi0gICAgICAgIHdoaWxlIGJ5
dGVzX2NodW5rZWQgPCBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAgICAjIE1ha2Ugc3VyZSBhdCBs
ZWFzdCAxMCBjaHVua3MgYXJlIGNyZWF0ZWQuCi0gICAgICAgICAgICBjaHVua19zaXplID0gcmFu
ZG9tLnJhbmRpbnQoCi0gICAgICAgICAgICAgICAgMSwgbWluKDEwMCwgbGVuKHBheWxvYWQpIC0g
Ynl0ZXNfY2h1bmtlZCkpCi0gICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6
ZSkKLSAgICAgICAgICAgIGNodW5rID0gcGF5bG9hZFtieXRlc19jaHVua2VkOmJ5dGVzX2NodW5r
ZWQgKyBjaHVua19zaXplXQotCi0gICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3Np
emUKLQotICAgICAgICAgICAgaWYgY29tcHJlc3MgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBj
b21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLAotICAgICAgICAgICAgICAgICAgICB6bGliLkRFRkxBVEVELAot
ICAgICAgICAgICAgICAgICAgICAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgICAgIGlmIGJ5
dGVzX2NodW5rZWQgPT0gbGVuKHBheWxvYWQpOgotICAgICAgICAgICAgICAgIGNvbXByZXNzZWRf
cGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKLSAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3NlZF9wYXlsb2FkWzotNF0K
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWV0aG9kID0gcmFuZG9tLnJhbmRp
bnQoMCwgMSkKLSAgICAgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChtZXRob2QpCi0gICAgICAg
ICAgICAgICAgaWYgbWV0aG9kID09IDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRf
cGF5bG9hZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKLSAgICAgICAgICAgICAgICAgICAg
Y29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQot
ICAgICAgICAgICAgICAgICAgICBzeW5jX3VzZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNv
bXByZXNzKGNodW5rKQotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgICAgICAgICAgICAgY29tcHJl
c3MgPSBOb25lCi0gICAgICAgICAgICAgICAgICAgIGZpbmlzaF91c2VkID0gVHJ1ZQotCi0gICAg
ICAgIHByaW50KCJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCi0gICAgICAgIHByaW50KCJNZXRob2Rz
OiAlciIgJSBtZXRob2RzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3luY191c2VkKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoZmluaXNoX3VzZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKDEyNSA8IGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobGVuKGNvbXByZXNzZWRfcGF5bG9hZCkgPCA2NTUzNikKLSAgICAgICAgZGF0YSA9ICdceGMy
XHhmZScgKyBzdHJ1Y3QucGFjaygnIUgnLCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKLSAgICAg
ICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfcGF5bG9hZCkKLQotICAgICAgICAjIENs
b3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0
LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9E
RUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBNZXNzYWdlVGVzdEhp
eGllNzUodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBkcmFmdC1oaXhpZS10
aGV3ZWJzb2NrZXRwcm90b2NvbC03NiBzdHJlYW0gY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4
aWU3NSgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBIZWxsb1x4ZmYnLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfdW5pY29kZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQotICAgICAgICAjIFUr
NjVlNSBpcyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4MDBceGU2XHg5N1x4YTVceGZmJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3
NSgnXHgwMEhlbGxvXHhmZlx4MDBXb3JsZCFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwXHhlNlx4OWNceGFjXHhmZicp
Ci0gICAgICAgICMgVSs2NzJjIGlzIGVuY29kZWQgYXMgZTYsOWMsYWMgaW4gVVRGLTgKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1NjcyYycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Vycm9uZW91c191bmljb2Rl
KHNlbGYpOgotICAgICAgICAjIFx4ODAgYW5kIFx4ODEgYXJlIGludmFsaWQgYXMgVVRGLTguCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ODBceDgxXHhm
ZicpCi0gICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNob3VsZCBiZSByZXBsYWNlZCB3aXRo
Ci0gICAgICAgICMgVStmZmZkIFJFUExBQ0VNRU5UIENIQVJBQ1RFUgotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHUnXHVmZmZkXHVmZmZkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGlzY2FyZChzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDgwXHgwNklHTk9SRVx4MDBI
ZWxsb1x4ZmYnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHgw
MURJU1JFR0FSRFx4ZmZceDAwV29ybGQhXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0KLWNsYXNzIE1lc3NhZ2VSZWNlaXZlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIi
IlRlc3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVJlY2VpdmVyLiIiIgotCi0gICAg
ZGVmIHRlc3RfcXVldWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5n
X3JlcXVlc3QoKQotICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJl
cXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZl
X25vd2FpdCgpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4ODFc
eDg2JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
ZWxsbyEnLCByZWNlaXZlci5yZWNlaXZlKCkpCi0KLSAgICBkZWYgdGVzdF9vbm1lc3NhZ2Uoc2Vs
Zik6Ci0gICAgICAgIG9ubWVzc2FnZV9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBk
ZWYgb25tZXNzYWdlX2hhbmRsZXIobWVzc2FnZSk6Ci0gICAgICAgICAgICBvbm1lc3NhZ2VfcXVl
dWUucHV0KG1lc3NhZ2UpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVx
dWVzdCgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVz
dCwgb25tZXNzYWdlX2hhbmRsZXIpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygnXHg4MVx4ODYnICsgX21hc2tfaHliaSgnSGVsbG8hJykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0hlbGxvIScsIG9ubWVzc2FnZV9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNz
YWdlUmVjZWl2ZXJIaXhpZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMg
dGhlIFN0cmVhbUhpeGllNzUgY2xhc3MgdXNpbmcgTWVzc2FnZVJlY2VpdmVyLiIiIgotCi0gICAg
ZGVmIHRlc3RfcXVldWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5n
X3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVj
ZWl2ZXIocmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlY2VpdmVy
LnJlY2VpdmVfbm93YWl0KCkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygnXHgwMEhlbGxvIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBy
ZWNlaXZlci5yZWNlaXZlKCkpCi0KLSAgICBkZWYgdGVzdF9vbm1lc3NhZ2Uoc2VsZik6Ci0gICAg
ICAgIG9ubWVzc2FnZV9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgb25tZXNz
YWdlX2hhbmRsZXIobWVzc2FnZSk6Ci0gICAgICAgICAgICBvbm1lc3NhZ2VfcXVldWUucHV0KG1l
c3NhZ2UpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhp
ZTc1KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0
LCBvbm1lc3NhZ2VfaGFuZGxlcikKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKCdceDAwSGVsbG8hXHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScs
IG9ubWVzc2FnZV9xdWV1ZS5nZXQoKSkKLQotCi1jbGFzcyBNZXNzYWdlU2VuZGVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhlIFN0cmVhbSBjbGFzcyB1c2luZyBNZXNz
YWdlU2VuZGVyLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZChzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwu
TWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kKCdXb3JsZCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1V29ybGQnLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX25vd2FpdChzZWxmKToKLSAg
ICAgICAgIyBVc2UgYSBxdWV1ZSB0byBjaGVjayB0aGUgYnl0ZXMgd3JpdHRlbiBieSBNZXNzYWdl
U2VuZGVyLgotICAgICAgICAjIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSBjYW5u
b3QgYmUgdXNlZCBoZXJlIGJlY2F1c2UKLSAgICAgICAgIyBNZXNzYWdlU2VuZGVyIHJ1bnMgaW4g
YSBzZXBhcmF0ZSB0aHJlYWQuCi0gICAgICAgIHNlbmRfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0K
LSAgICAgICAgZGVmIHdyaXRlKGJ5dGVzKToKLSAgICAgICAgICAgIHNlbmRfcXVldWUucHV0KGJ5
dGVzKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQotCi0gICAgICAgIHNlbmRlciA9
IG1zZ3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kX25v
d2FpdCgnSGVsbG8nKQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4MDVIZWxsbycsIHNlbmRfcXVldWUuZ2V0KCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1V29ybGQnLCBzZW5kX3F1ZXVlLmdldCgp
KQotCi0KLWNsYXNzIE1lc3NhZ2VTZW5kZXJIaXhpZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0gICAgIiIiVGVzdHMgdGhlIFN0cmVhbUhpeGllNzUgY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRl
ci4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCi0gICAgICAgIHNlbmRlciA9IG1zZ3V0aWwu
TWVzc2FnZVNlbmRlcihyZXF1ZXN0KQotCi0gICAgICAgIHNlbmRlci5zZW5kKCdXb3JsZCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX25vd2FpdChzZWxmKToKLSAg
ICAgICAgIyBVc2UgYSBxdWV1ZSB0byBjaGVjayB0aGUgYnl0ZXMgd3JpdHRlbiBieSBNZXNzYWdl
U2VuZGVyLgotICAgICAgICAjIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSBjYW5u
b3QgYmUgdXNlZCBoZXJlIGJlY2F1c2UKLSAgICAgICAgIyBNZXNzYWdlU2VuZGVyIHJ1bnMgaW4g
YSBzZXBhcmF0ZSB0aHJlYWQuCi0gICAgICAgIHNlbmRfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0K
LSAgICAgICAgZGVmIHdyaXRlKGJ5dGVzKToKLSAgICAgICAgICAgIHNlbmRfcXVldWUucHV0KGJ5
dGVzKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3
NSgpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSA9IHdyaXRlCi0KLSAgICAgICAg
c2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0KLSAgICAgICAgc2VuZGVy
LnNlbmRfbm93YWl0KCdIZWxsbycpCi0gICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgnV29ybGQn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgc2VuZF9xdWV1ZS5n
ZXQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFdvcmxkXHhmZicsIHNlbmRfcXVl
dWUuZ2V0KCkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5t
YWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X211eC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDc3M2RlY2JmZDY2ZDBkZmZlZjBiNDI4N2JhZDg3NDUzZmMxZDY0NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG11eCBtb2R1bGUuIiIiCi0K
LWltcG9ydCBRdWV1ZQotaW1wb3J0IGNvcHkKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3B0cGFy
c2UKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHRp
bWUKLWltcG9ydCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRo
IHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXV4Ci1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9y
dGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgRnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFt
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMK
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9m
cmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xv
c2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRl
X2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHli
aSBpbXBvcnQgcGFyc2VfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1w
b3J0IE11eEV4dGVuc2lvblByb2Nlc3NvcgotCi0KLWltcG9ydCBtb2NrCi0KLQotX1RFU1RfSEVB
REVSUyA9IHsnSG9zdCc6ICdzZXJ2ZXIuZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgICAgICAn
VXBncmFkZSc6ICd3ZWJzb2NrZXQnLAotICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdV
cGdyYWRlJywKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5JzogJ2RHaGxJSE5o
YlhCc1pTQnViMjVqWlE9PScsCi0gICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNp
b24nOiAnMTMnLAotICAgICAgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bSd9Ci0KLQotY2xhc3MgX091dGdvaW5nQ2hhbm5lbERhdGEob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQotICAgICAgICBzZWxmLmNv
bnRyb2xfbWVzc2FnZXMgPSBbXQotCi0gICAgICAgIHNlbGYuYnVpbGRlciA9IG11eC5fSW5uZXJN
ZXNzYWdlQnVpbGRlcigpCi0KLWNsYXNzIF9Nb2NrTXV4Q29ubmVjdGlvbihtb2NrLk1vY2tCbG9j
a2luZ0Nvbm4pOgotICAgICIiIk1vY2sgY2xhc3Mgb2YgbW9kX3B5dGhvbiBjb25uZWN0aW9uIGZv
ciBtdXguIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIG1vY2suTW9ja0Js
b2NraW5nQ29ubi5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyA9
IFtdCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfZGF0YSA9IHt9Ci0KLSAgICAgICAgc2VsZi5fY3Vy
cmVudF9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10K
LQotICAgICAgICBzZWxmLnNlcnZlcl9jbG9zZV9jb2RlID0gTm9uZQotCi0gICAgZGVmIHdyaXRl
KHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJPdmVycmlkZSBNb2NrQmxvY2tpbmdDb25uLndyaXRl
LiIiIgotCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZGF0YSA9IGRhdGEKLSAgICAgICAgc2VsZi5f
cG9zaXRpb24gPSAwCi0KLSAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0aCk6Ci0gICAg
ICAgICAgICBpZiBzZWxmLl9wb3NpdGlvbiArIGxlbmd0aCA+IGxlbihzZWxmLl9jdXJyZW50X2Rh
dGEpOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHJlY2VpdmUgJWQgYnl0ZXMgZnJvbSBl
bmNhcHN1bGF0ZWQgJwotICAgICAgICAgICAgICAgICAgICAnZnJhbWUnICUgbGVuZ3RoKQotICAg
ICAgICAgICAgZGF0YSA9IHNlbGYuX2N1cnJlbnRfZGF0YVtzZWxmLl9wb3NpdGlvbjpzZWxmLl9w
b3NpdGlvbitsZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9wb3NpdGlvbiArPSBsZW5ndGgKLSAg
ICAgICAgICAgIHJldHVybiBkYXRhCi0KLSAgICAgICAgIyBQYXJzZSBwaHlzaWNhbCBmcmFtZXMg
YW5kIGFzc2VtYmxlIGEgbWVzc2FnZSBpZiB0aGUgbWVzc2FnZSBpcwotICAgICAgICAjIGZyYWdt
ZW50ZWQuCi0gICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzID0g
KAotICAgICAgICAgICAgcGFyc2VfZnJhbWUoX3JlY2VpdmVfYnl0ZXMsIHVubWFza19yZWNlaXZl
PUZhbHNlKSkKLQotICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cy5hcHBlbmQocGF5bG9h
ZCkKLQotICAgICAgICBpZiBzZWxmLl9jdXJyZW50X29wY29kZSBpcyBOb25lOgotICAgICAgICAg
ICAgaWYgb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUn
KQotICAgICAgICAgICAgc2VsZi5fY3VycmVudF9vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoK
LSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUg
JWQnICUgb3Bjb2RlKQotICAgICAgICBpZiBub3QgZmluOgotICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICAgICAgaW5uZXJfZnJhbWVfZGF0YSA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19mcmFnbWVu
dHMpCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2VsZi5f
Y3VycmVudF9vcGNvZGUgPSBOb25lCi0KLSAgICAgICAgIyBIYW5kbGUgYSBjb250cm9sIG1lc3Nh
Z2Ugb24gdGhlIHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBv
cnQgb3RoZXIgb3Bjb2RlcyBpZiBuZWVkZWQuCi0gICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24u
T1BDT0RFX0NMT1NFOgotICAgICAgICAgICAgaWYgbGVuKHBheWxvYWQpID49IDI6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcGF5
bG9hZFs6Ml0pWzBdCi0gICAgICAgICAgICBjbG9zZV9ib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2JvZHkoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VS
RSwgJycpCi0gICAgICAgICAgICBjbG9zZV9mcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFtZShjbG9z
ZV9ib2R5LCBtYXNrPVRydWUpCi0gICAgICAgICAgICBzZWxmLnB1dF9ieXRlcyhjbG9zZV9mcmFt
ZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgUGFyc2UgdGhlIHBheWxvYWQgb2Yg
dGhlIG1lc3NhZ2Ugb24gcGh5c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgcGFyc2VyID0gbXV4Ll9N
dXhGcmFtZVBheWxvYWRQYXJzZXIoaW5uZXJfZnJhbWVfZGF0YSkKLSAgICAgICAgY2hhbm5lbF9p
ZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBpZiBjaGFubmVsX2lkID09IG11
eC5fQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Mu
ZXh0ZW5kKGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0gICAgICAgICAgICBy
ZXR1cm4KLQotICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9jaGFubmVsX2RhdGE6
Ci0gICAgICAgICAgICBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0gPSBfT3V0Z29pbmdD
aGFubmVsRGF0YSgpCi0gICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2NoYW5uZWxfZGF0YVtj
aGFubmVsX2lkXQotCi0gICAgICAgICMgUGFyc2UgbG9naWNhbCBmcmFtZXMgYW5kIGFzc2VtYmxl
IGFuIGlubmVyIChsb2dpY2FsKSBtZXNzYWdlLgotICAgICAgICAoaW5uZXJfZmluLCBpbm5lcl9y
c3YxLCBpbm5lcl9yc3YyLCBpbm5lcl9yc3YzLCBpbm5lcl9vcGNvZGUsCi0gICAgICAgICBpbm5l
cl9wYXlsb2FkKSA9IHBhcnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKLSAgICAgICAgaW5uZXJfZnJh
bWUgPSBGcmFtZShpbm5lcl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIsIGlubmVyX3JzdjMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJfb3Bjb2RlLCBpbm5lcl9wYXlsb2Fk
KQotICAgICAgICBtZXNzYWdlID0gY2hhbm5lbF9kYXRhLmJ1aWxkZXIuYnVpbGQoaW5uZXJfZnJh
bWUpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotCi0g
ICAgICAgIGlmIChtZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX1RFWFQgb3IKLSAgICAg
ICAgICAgIG1lc3NhZ2Uub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZKToKLSAgICAgICAg
ICAgIGNoYW5uZWxfZGF0YS5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZS5wYXlsb2FkKQotCi0gICAg
ICAgICAgICBzZWxmLm9uX2RhdGFfbWVzc2FnZShtZXNzYWdlLnBheWxvYWQpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEuY29udHJvbF9tZXNzYWdlcy5hcHBlbmQoCi0g
ICAgICAgICAgICAgICAgeydvcGNvZGUnOiBtZXNzYWdlLm9wY29kZSwKLSAgICAgICAgICAgICAg
ICAgJ21lc3NhZ2UnOiBtZXNzYWdlLnBheWxvYWR9KQotCi0gICAgZGVmIG9uX2RhdGFfbWVzc2Fn
ZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGdldF93cml0dGVuX2Nv
bnRyb2xfYmxvY2tzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fY29udHJvbF9ibG9ja3MK
LQotICAgIGRlZiBnZXRfd3JpdHRlbl9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5tZXNzYWdlcwotCi0gICAg
ZGVmIGdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0uY29udHJvbF9tZXNzYWdl
cwotCi0KLWNsYXNzIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24oX01vY2tNdXhDb25uZWN0aW9uKToK
LSAgICAiIiJTcGVjaWNpYWxpemVkIHZlcnNpb24gb2YgX01vY2tNdXhDb25uZWN0aW9uLiBJdHMg
d3JpdGUoKSBtZXRob2QgcmFpc2VzCi0gICAgYW4gZXhjZXB0aW9uIGZvciB0ZXN0aW5nIHdoZW4g
YSBkYXRhIG1lc3NhZ2UgaXMgd3JpdHRlbi4KLSAgICAiIiIKLQotICAgIGRlZiBvbl9kYXRhX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIHRvIHJhaXNlIGFuIGV4
Y2VwdGlvbi4iIiIKLQotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIGZhaWx1
cmUnKQotCi0KLWNsYXNzIF9DaGFubmVsRXZlbnQob2JqZWN0KToKLSAgICAiIiJBIHN0cnVjdHVy
ZSB0aGF0IHJlY29yZHMgY2hhbm5lbCBldmVudHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Zik6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IE5vbmUKLSAgICAgICAgc2VsZi5tZXNzYWdlcyA9
IFtdCi0gICAgICAgIHNlbGYuZXhjZXB0aW9uID0gTm9uZQotICAgICAgICBzZWxmLmNsaWVudF9p
bml0aWF0ZWRfY2xvc2luZyA9IEZhbHNlCi0KLQotY2xhc3MgX011eE1vY2tEaXNwYXRjaGVyKG9i
amVjdCk6Ci0gICAgIiIiTW9jayBjbGFzcyBvZiBkaXNwYXRjaC5EaXNwYXRjaGVyIGZvciBtdXgu
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuY2hhbm5lbF9ldmVu
dHMgPSB7fQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKLSAg
ICAgICAgaWYgcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3Rv
Y29sc1swXQotCi0gICAgZGVmIF9kb19lY2hvKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRz
KToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSByZXF1ZXN0Lndz
X3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICAgICAgaWYgbWVzc2FnZSA9PSBOb25l
OgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZXZlbnRzLmNsaWVudF9pbml0aWF0ZWRfY2xvc2lu
ZyA9IFRydWUKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGlmIG1lc3NhZ2Ug
PT0gJ0dvb2RieWUnOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgY2hhbm5l
bF9ldmVudHMubWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCi0gICAgICAgICAgICAjIGVjaG8gYmFj
awotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1lc3NhZ2UpCi0K
LSAgICBkZWYgX2RvX3Bpbmcoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgotICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLQotICAgIGRlZiBfZG9fcGlu
Z193aGlsZV9oZWxsb193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5kPUZhbHNlKQot
ICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLSAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkKLQotICAgIGRl
ZiBfZG9fdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9l
dmVudHMpOgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcs
IGVuZD1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScp
Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUG9uZyEnKQotICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVlKQotCi0gICAg
ZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIHNlbGYuY2hhbm5lbF9l
dmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSA9IF9DaGFubmVsRXZlbnQoKQotICAgICAgICBzZWxm
LmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0ucmVxdWVzdCA9IHJlcXVlc3QKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIE5vdGU6IG1vcmUgaGFuZGxlciB3aWxsIGJlIGFk
ZGVkLgotICAgICAgICAgICAgaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ2VjaG8nKToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9kb19lY2hvKHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAg
ICAgICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nJyk6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fZG9fcGluZyhyZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAgZWxpZiBy
ZXF1ZXN0LnVyaS5lbmRzd2l0aCgndHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9kb190d29fcGluZ193aGlsZV9oZWxsb193b3JsZCgKLSAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxf
aWRdKQotICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGluZ193aGlsZV9o
ZWxsb193b3JsZCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX3Bpbmdfd2hpbGVfaGVsbG9f
d29ybGQoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNb
cmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVlc3QucGF0aCkK
LSAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAg
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAgICBleGNl
cHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYu
Y2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNb
cmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAgICAgICByYWlzZQotCi0K
LWRlZiBfY3JlYXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPU5vbmUsIGxvZ2ljYWxfY2hhbm5l
bF9leHRlbnNpb25zPU5vbmUpOgotICAgIGlmIGNvbm5lY3Rpb24gaXMgTm9uZToKLSAgICAgICAg
Y29ubmVjdGlvbiA9IF9Nb2NrTXV4Q29ubmVjdGlvbigpCi0KLSAgICByZXF1ZXN0ID0gbW9jay5N
b2NrUmVxdWVzdCh1cmk9Jy9lY2hvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWFkZXJzX2luPV9URVNUX0hFQURFUlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29ubmVjdGlvbj1jb25uZWN0aW9uKQotICAgIHJlcXVlc3Qud3Nfc3RyZWFtID0gU3RyZWFtKHJl
cXVlc3QsIG9wdGlvbnM9U3RyZWFtT3B0aW9ucygpKQotICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nv
ciA9IE11eEV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcihjb21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgaWYgbG9naWNhbF9jaGFubmVsX2V4dGVu
c2lvbnMgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfZXh0
ZW5zaW9ucyhsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKLSAgICByZXF1ZXN0Lm11eF9wcm9j
ZXNzb3Iuc2V0X3F1b3RhKDggKiAxMDI0KQotICAgIHJldHVybiByZXF1ZXN0Ci0KLQotZGVmIF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZShjaGFubmVsX2lkLCBlbmNvZGluZywgZW5j
b2RlZF9oYW5kc2hha2UpOgotICAgICMgQWxsb3cgaW52YWxpZCBlbmNvZGluZyBmb3IgdGVzdGlu
Zy4KLSAgICBmaXJzdF9ieXRlID0gKChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVT
VCA8PCA1KSB8IGVuY29kaW5nKQotICAgIHBheWxvYWQgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAg
ICAgICAgICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAg
ICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVkX2hhbmRzaGFrZSkpICsKLSAg
ICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5
X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hB
Tk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2Ryb3BfY2hh
bm5lbF9mcmFtZShjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgIHBheWxv
YWQgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkK
LSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2No
YW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkK
LQotCi1kZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZCwgcmVwbGVuaXNo
ZWRfcXVvdGEpOgotICAgIHBheWxvYWQgPSBtdXguX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5l
bF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUo
Ci0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lE
KSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkLCBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9CSU5BUlksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLCByc3YxPUZhbHNlLCByc3YyPUZhbHNlLCByc3Yz
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpOgotICAgIGJpdHMg
PSBjaHIoKGZpbiA8PCA3KSB8IChyc3YxIDw8IDYpIHwgKHJzdjIgPDwgNSkgfCAocnN2MyA8PCA0
KSB8IG9wY29kZSkKLSAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVs
X2lkKSArIGJpdHMgKyBtZXNzYWdlCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUocGF5
bG9hZCwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJywgZXh0ZW5zaW9ucz1Ob25lKToKLSAgICBoZWFkZXJzID0gKAotICAgICAgICAnR0VUICVz
IEhUVFAvMS4xXHJcbicKLSAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCi0g
ICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgJ09yaWdpbjogaHR0cDov
L2V4YW1wbGUuY29tXHJcbicpICUgcGF0aAotICAgIGlmIGV4dGVuc2lvbnM6Ci0gICAgICAgIGhl
YWRlcnMgKz0gJyVzOiAlcycgJSAoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9F
WFRFTlNJT05TX0hFQURFUiwgZXh0ZW5zaW9ucykKLSAgICByZXR1cm4gaGVhZGVycwotCi0KLWNs
YXNzIE11eFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIG11
eCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lkX2RlY29kZShzZWxmKToKLSAg
ICAgICAgZGF0YSA9ICdceDAwXHgwMVx4YmZceGZmXHhkZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhm
ZicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAg
ICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIu
cmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBjaGFubmVsX2lk
KQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAxNCAtIDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5u
ZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyICoqIDIxIC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5y
ZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMjkgLSAxLCBj
aGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhKSwgcGFyc2VyLl9y
ZWFkX3Bvc2l0aW9uKQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF9lbmNvZGUoc2VsZik6Ci0g
ICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNv
ZGVfY2hhbm5lbF9pZCgyICoqIDE0IC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhi
Zlx4ZmYnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9p
ZCgyICoqIDE0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGMwQFx4MDAnLCBlbmNvZGVk
KQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDIxIC0gMSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhkZlx4ZmZceGZmJywgZW5jb2RlZCkKLSAgICAg
ICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHhlMCBceDAwXHgwMCcsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQg
PSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjkgLSAxKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceGZmXHhmZlx4ZmZceGZmJywgZW5jb2RlZCkKLSAgICAgICAgIyBjaGFubmVsX2lk
IGlzIHRvbyBsYXJnZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFubmVsX2lkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAyICoqIDI5KQotCi0gICAgZGVmIHRlc3RfcmVhZF9tdWx0aXBsZV9j
b250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgIyBVc2UgQWRkQ2hhbm5lbFJlcXVlc3QgYmVj
YXVzZSBpdCBjYW4gY29udGFpbiBhcmJpdHJhcnkgbGVuZ3RoIG9mIGRhdGEKLSAgICAgICAgZGF0
YSA9ICgnXHgwMFx4MDFceDAxYScKLSAgICAgICAgICAgICAgICAnXHgwMFx4MDJceDdkJXMnCi0g
ICAgICAgICAgICAgICAgJ1x4MDBceDAzXHg3ZVx4ZmZceGZmJXMnCi0gICAgICAgICAgICAgICAg
J1x4MDBceDA0XHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwJXMnKSAlICgKLSAg
ICAgICAgICAgICdhJyAqIDB4N2QsICdiJyAqIDB4ZmZmZiwgJ2MnICogMHgxMDAwMCkKLSAgICAg
ICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxv
Y2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDQsIGxlbihibG9ja3MpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4
Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVT
VCwgYmxvY2tzWzFdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3Nb
MV0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweDdkLCBsZW4oYmxvY2tz
WzFdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5f
TVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMl0ub3Bjb2RlKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDMsIGJsb2Nrc1syXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDB4ZmZmZiwgbGVuKGJsb2Nrc1syXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVR
VUVTVCwgYmxvY2tzWzNdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBibG9j
a3NbM10uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweDEwMDAwLCBsZW4o
YmxvY2tzWzNdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihkYXRhKSwgcGFyc2VyLl9yZWFkX3Bvc2l0aW9uKQotCi0gICAgZGVmIHRlc3RfcmVhZF9h
ZGRfY2hhbm5lbF9yZXF1ZXN0KHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4MDBceDAxXHgwMWEn
Ci0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAg
ICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxv
Y2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hh
bm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzWzBdLmVuY29k
ZWRfaGFuZHNoYWtlKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfZHJvcF9jaGFubmVsKHNlbGYpOgot
ICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhG
cmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVh
ZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9j
a3MpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwsIGJs
b2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgYmxvY2tzWzBd
LmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oYmxvY2tzWzBdLmRy
b3BfbWVzc2FnZSkpCi0KLSAgICAgICAgZGF0YSA9ICdceDYwXHgwMlx4MDlceDAzXHhlOFN1Y2Nl
c3MnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0g
ICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCht
dXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEwMDAsIGJsb2Nrc1swXS5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1N1Y2Nlc3MnLCBibG9ja3NbMF0uZHJvcF9tZXNzYWdlKQotCi0gICAgICAg
ICMgUmVhc29uIGlzIHRvbyBzaG9ydC4KLSAgICAgICAgZGF0YSA9ICdceDYwXHgwMVx4MDFceDAw
JwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Js
b2NrcygpKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfZmxvd19jb250cm9sKHNlbGYpOgotICAgICAg
ICBkYXRhID0gJ1x4NDBceDAxXHgwMicKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBh
eWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIucmVhZF9jb250
cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3MpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wsIGJsb2Nrc1sw
XS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzBdLnNlbmRfcXVv
dGEpCi0KLSAgICBkZWYgdGVzdF9yZWFkX25ld19jaGFubmVsX3Nsb3Qoc2VsZik6Ci0gICAgICAg
IGRhdGEgPSAnXHg4MFx4MDFceDAyXHgwMlx4MDMnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4
RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IEltcGxlbWVu
dAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbGlzdChwYXJzZXIucmVhZF9jb250
cm9sX2Jsb2NrcygpKSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfaW52YWxpZF9udW1iZXJfZmllbGRf
aW5fY29udHJvbF9ibG9jayhzZWxmKToKLSAgICAgICAgIyBObyBudW1iZXIgZmllbGQuCi0gICAg
ICAgIGRhdGEgPSAnJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNl
cihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3Jl
YWRfbnVtYmVyKQotCi0gICAgICAgICMgVGhlIGxhc3QgdHdvIGJ5dGVzIGFyZSBtaXNzaW5nLgot
ICAgICAgICBkYXRhID0gJ1x4N2UnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXls
b2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBh
cnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBNaXNzaW5nIHRoZSBsYXN0IG9uZSBieXRl
LgotICAgICAgICBkYXRhID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwJwotICAg
ICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAg
ICAgICMgVGhlIGxlbmd0aCBvZiBudW1iZXIgZmllbGQgaXMgdG9vIGxhcmdlLgotICAgICAgICBk
YXRhID0gJ1x4N2ZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZicKLSAgICAgICAgcGFy
c2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFRo
ZSBtc2Igb2YgdGhlIGZpcnN0IGJ5dGUgaXMgc2V0LgotICAgICAgICBkYXRhID0gJ1x4ODAnCi0g
ICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAg
ICAgICAgIyBVc2luZyAzIGJ5dGVzIGVuY29kaW5nIGZvciAxMjUuCi0gICAgICAgIGRhdGEgPSAn
XHg3ZVx4MDBceDdkJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNl
cihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3Jl
YWRfbnVtYmVyKQotCi0gICAgICAgICMgVXNpbmcgOSBieXRlcyBlbmNvZGluZyBmb3IgMHhmZmZm
Ci0gICAgICAgIGRhdGEgPSAnXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4ZmZceGZmJwot
ICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0g
ICAgZGVmIHRlc3RfcmVhZF9pbnZhbGlkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgotICAgICAg
ICAjIE9ubHkgY29udGFpbiBudW1iZXIgZmllbGQuCi0gICAgICAgIGRhdGEgPSAnXHgwMScKLSAg
ICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJzZXIuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMpCi0KLSAgICBk
ZWYgdGVzdF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgIGRhdGEg
PSBtdXguX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkPTEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT0nRm9vQmFyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVuY29kaW5nPTAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWplY3RlZD1GYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgyMFx4
MDFceDA2Rm9vQmFyJywgZGF0YSkKLQotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfYWRkX2No
YW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9J0hlbGxvJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3RlZD1UcnVl
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDMxXHgwMlx4MDVIZWxsbycsIGRhdGEpCi0K
LSAgICBkZWYgdGVzdF9jcmVhdGVfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAgICBkYXRhID0g
bXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQ9MSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHg2MFx4MDFceDAwJywgZGF0YSkKLQotICAgICAgICBkYXRhID0gbXV4Ll9jcmVh
dGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2RlPTIwMDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT0nZXJyb3InKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDYw
XHgwMVx4MDdceDA3XHhkMGVycm9yJywgZGF0YSkKLQotICAgICAgICAjIHJlYXNvbiBtdXN0IGJl
IGVtcHR5IGlmIGNvZGUgaXMgTm9uZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDEsIE5vbmUsICdGb29CYXInKQotCi0gICAgZGVm
IHRlc3RfcGFyc2VfcmVxdWVzdF90ZXh0KHNlbGYpOgotICAgICAgICByZXF1ZXN0X3RleHQgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKCkKLSAgICAgICAgY29tbWFuZCwgcGF0aCwgdmVyc2lvbiwg
aGVhZGVycyA9IG11eC5fcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVlc3RfdGV4dCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnR0VUJywgY29tbWFuZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnL2VjaG8nLCBwYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIVFRQLzEuMScsIHZl
cnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVuKGhlYWRlcnMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdzZXJ2ZXIuZXhhbXBsZS5jb20nLCBoZWFkZXJzWydIb3N0J10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIGhlYWRlcnNb
J09yaWdpbiddKQotCi0KLWNsYXNzIE11eEhhbmRsZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNz
YWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndh
aXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10s
IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2Vz
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5uZWwgMwotICAgICAgICBt
ZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIGNvbnRyb2xfYmxvY2tzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAg
IyBUaGVyZSBzaG91bGQgYmUgOCBjb250cm9sIGJsb2NrczoKLSAgICAgICAgIyAgIC0gMSBOZXdD
aGFubmVsU2xvdAotICAgICAgICAjICAgLSAyIEFkZENoYW5uZWxSZXNwb25zZXMgZm9yIGNoYW5u
ZWwgaWQgMiBhbmQgMwotICAgICAgICAjICAgLSA2IEZsb3dDb250cm9scyBmb3IgY2hhbm5lbCBp
ZCAxIChpbml0aWFsaXplKSwgJ0hlbGxvJywgJ1dvcmxkJywKLSAgICAgICAgIyAgICAgYW5kIDMg
J0dvb2RieWUncwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDksIGxlbihjb250cm9sX2Jsb2Nr
cykpCi0KLSAgICBkZWYgdGVzdF9waHlzaWNhbF9jb25uZWN0aW9uX3dyaXRlX2ZhaWx1cmUoc2Vs
Zik6Ci0gICAgICAgICMgVXNlIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24uCi0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdChjb25uZWN0aW9uPV9GYWlsT25Xcml0ZUNvbm5lY3Rp
b24oKSkKLQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgTGV0IHRoZSB3b3JrZXIgZWNo
byBiYWNrICdIZWxsbycuIEl0IGNhdXNlcyBfRmFpbE9uV3JpdGVDb25uZWN0aW9uCi0gICAgICAg
ICMgcmFpc2luZyBhbiBleGNlcHRpb24uCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgICMgTGV0IHRoZSB3b3JrZXIgZXhpdC4gVGhpcyB3
aWxsIGJlIHVubmVjZXNzYXJ5IHdoZW4KLSAgICAgICAgIyBfTG9naWNhbENvbm5lY3Rpb24ud3Jp
dGUoKSBpcyBjaGFuZ2VkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiBpZgotICAgICAgICAjIHdva2Ug
dXAgYnkgb25fd3JpdGVyX2RvbmUuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNz
YWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgIyBBbGwgdGhyZWFkcyBzaG91bGQgYmUgZG9uZS4K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9ibG9ja2VkKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
PWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBPbiByZWNlaXZpbmcgdGhpcyAnSGVs
bG8nLCB0aGUgc2VydmVyIHRyaWVzIHRvIGVjaG8gYmFjayAnSGVsbG8nLAotICAgICAgICAjIGJ1
dCBpdCB3aWxsIGJlIGJsb2NrZWQgc2luY2UgdGhlcmUncyBubyBzZW5kIHF1b3RhIGF2YWlsYWJs
ZSBmb3IgdGhlCi0gICAgICAgICMgY2hhbm5lbCAyLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtl
ciBpcyBibG9ja2VkIGR1ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgotICAgICAgICB0aW1lLnNs
ZWVwKDEpCi0KLSAgICAgICAgIyBDbG9zZSB0aGUgY2hhbm5lbCAyLiBUaGUgd29ya2VyIHNob3Vs
ZCBiZSBub3RpZmllZCBvZiB0aGUgZW5kIG9mCi0gICAgICAgICMgd3JpdGVyIHRocmVhZCBhbmQg
c3RvcCB3YWl0aW5nIGZvciBzZW5kIHF1b3RhIHRvIGJlIHJlcGxlbmlzaGVkLgotICAgICAgICBk
cm9wX2NoYW5uZWwgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTIpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAg
ICAgICAgIyBNYWtlIHN1cmUgdGhlIGNoYW5uZWwgMSBpcyBhbHNvIGNsb3NlZC4KLSAgICAgICAg
ZHJvcF9jaGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0xKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAg
ICAgICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICBkZWYgdGVz
dF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RT
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVP
VEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxu
XHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5j
b2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykK
LSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotCi0gICAgZGVmIHRlc3Rf
YWRkX2NoYW5uZWxfZGVsdGFfZW5jb2Rpbmdfb3ZlcnJpZGUoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklU
SUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBPdmVycmlkZSBTZWMtV2ViU29ja2V0
LVByb3RvY29sLgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAg
ICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAg
ICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29u
dHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVv
dGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wp
Ci0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzJdLm1lc3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNz
YWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3gtZm9vJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAg
ICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9hZnRlcl9pZGVudGl0eShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9
IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5k
bGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgIyBTZWMtV2ViU29ja2V0LVBy
b3RvY29sIGlzIGRpZmZlcmVudCBmcm9tIGNsaWVudCdzIG9wZW5pbmcgaGFuZHNoYWtlCi0gICAg
ICAgICMgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAgICMgVE9ETyhiYXNoaSk6
IFJlbW92ZSBVcGdyYWRlLCBDb25uZWN0aW9uLCBTZWMtV2ViU29ja2V0LUtleSBhbmQKLSAgICAg
ICAgIyBTZWMtV2ViU29ja2V0LVZlcnNpb24uCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
KAotICAgICAgICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAnSG9z
dDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4n
Ci0gICAgICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICAgICAg
ICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxy
XG5cclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0xLCBl
bmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2Vz
ID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIEhhbmRzaGFrZSBiYXNlIHNo
b3VsZCBiZSB1cGRhdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
J3gtZm9vJywKLSAgICAgICAgICAgIG11eF9oYW5kbGVyLl9oYW5kc2hha2VfYmFzZS5faGVhZGVy
c1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxf
ZGVsdGFfcmVtb3ZlX2hlYWRlcihzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLSAgICAgICAgIyBPdmVycmlkZSBoYW5kc2hha2UgZGVsdGEgYmFzZS4KLSAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UgPSAoCi0gICAgICAgICAgICAnR0VUIC9lY2hvIEhUVFAvMS4xXHJc
bicKLSAgICAgICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAgICAgICAgICdDb25u
ZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFtcGxl
LmNvbVxyXG4nCi0gICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBSZW1vdmUg
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCBoZWFkZXIuCi0gICAgICAgIGRlbHRhID0gKCdHRVQgL2Vj
aG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bDonCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MywgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxs
bycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nV29ybGQnKSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdl
cykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydXb3JsZCdd
LCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQotICAgICAgICAjIENoYW5u
ZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9t
ZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMg
Q2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2Vz
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNzYWdlc1swXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZvbycsCi0gICAgICAgICAgICBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1szXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRl
c3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgot
ICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGRlZmxhdGUgZXh0ZW5zaW9uIG9uIHRoZSBpbXBs
aWNpdGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNl
X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KAotICAgICAgICAg
ICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9ZXh0ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBkZWx0YSA9ICdH
RVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBm
bG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlz
aGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG8nIG9uIGxvZ2ljYWwg
Y2hhbm5lbCAxIGFuZCAyLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0g
ICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXps
aWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJl
c3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRf
aGVsbG9bOi00XQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPWNvbXBy
ZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVl
KSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxs
bywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgIyBXcml0dGVuICdIZWxs
bydzIHNob3VsZCBiZSBjb21wcmVzc2VkLgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9o
ZWxsbywgbWVzc2FnZXNbMF0pCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBt
ZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2VuY29kaW5nX3Jl
bW92ZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGRlZmxh
dGUgZXh0ZW5zaW9uIG9uIHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICBl
eHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9ZXh0
ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICAjIFJlbW92ZSBwZXJtZXNzYWdlIGRlZmxhdGUgZXh0ZW5zaW9uLgotICAg
ICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczpcclxuJwotICAgICAgICAgICAgICAgICAnXHJcbicp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRf
aGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yMCkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5k
IGNvbXByZXNzZWQgbWVzc2FnZSBvbiBsb2dpY2FsIGNoYW5uZWwgMi4gVGhlIG1lc3NhZ2Ugc2hv
dWxkCi0gICAgICAgICMgYmUgcmVqZWN0ZWQgKHNpbmNlIHJzdjEgaXMgc2V0KS4KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hh
bm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBt
dXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11
eC5fRFJPUF9DT0RFX05PUk1BTF9DTE9TVVJFLCBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAg
ICAjIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24gc2hvdWxkIGJlIHJhaXNlZCBvbiBsb2dpY2Fs
IGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZGlzcGF0Y2hl
ci5jaGFubmVsX2V2ZW50c1syXS5leGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24pKQotCi0gICAgZGVmIHRlc3RfYWRk
X2NoYW5uZWxfaW52YWxpZF9lbmNvZGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFf
Rk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVz
dF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0zLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAg
ICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
YmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9Q
X0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfVU5LTk9X
Tl9SRVFVRVNUX0VOQ09ESU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5l
bC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRF
Uk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9p
bmNvbXBsZXRlX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICBpbmNvbXBsZXRlX2VuY29kZWRfaGFuZHNoYWtlID0gJ0dFVCAvZWNo
byBIVFRQLzEuMScKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWluY29tcGxldGVfZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5
ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoMSBpbiBkaXNwYXRjaGVy
LmNoYW5uZWxfZXZlbnRzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IDIgaW4gZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50cykKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2R1cGxpY2F0
ZV9jaGFubmVsX2lkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQot
Ci0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAs
Ci0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0g
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0g
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBp
biByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAg
ICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RT
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJP
UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Ns
b3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBf
Y3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTIpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAgICMgVGVybWluYXRl
IGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0x
LCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGV4Y2VwdGlvbiA9IGRp
c3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0uZXhjZXB0aW9uCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShleGNlcHRpb24uX19jbGFzc19fID09IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nX2ZyYW1lKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBt
dXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5O
RUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5J
VElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3Jl
cXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBj
aGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1l
bmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhh
ZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTMpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHBpbmdf
ZnJhbWUgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIFdvcmxkIScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5P
UENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2Zy
YW1lKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BD
T0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTMpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBhIHBpbmcgd2l0
aCBtZXNzYWdlICdIZWxsbyB3b3JsZCEnIGluIHR3byBmcmFnbWVudGVkIGZyYW1lcy4KLSAgICAg
ICAgcGluZ19mcmFtZTEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21t
b24uT1BDT0RFX1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGlu
Z19mcmFtZTEpCi0gICAgICAgIHBpbmdfZnJhbWUyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0nV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMikKLQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFu
ZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBtZXNzYWdlc1swXVsnb3Bjb2Rl
J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1lc3NhZ2VzWzBd
WydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50ZWRfcGluZ193aGls
ZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTkpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBhIGZy
YWdtZW50ZWQgZnJhbWUgb2YgbWVzc2FnZSAnSGVsbG8gJy4KLSAgICAgICAgaGVsbG8gPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49RmFsc2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoaGVsbG8pCi0KLSAgICAgICAgIyBCZWZvcmUgc2VuZGluZyB0aGUgbGFzdCBmcmFnbWVu
dGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLCBzZW5kIGEKLSAgICAgICAgIyBmcmFnbWVudGVkIHBp
bmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGknLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJTkcpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0gICAgICAgIHBpbmcy
ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLQotICAgICAgICAjIFNlbmQgdGhlIGxh
c3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgd29ybGQgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNz
YWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29u
dHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV90d29f
cGluZ193aGlsZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjUpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMg
U2VuZCBhIGZyYWdtZW50ZWQgZnJhbWUgb2YgbWVzc2FnZSAnSGVsbG8gJy4KLSAgICAgICAgaGVs
bG8gPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoaGVsbG8pCi0KLSAgICAgICAgIyBCZWZvcmUgc2VuZGluZyB0aGUgbGFz
dCBmcmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLCBzZW5kIGEKLSAgICAgICAgIyBmcmFn
bWVudGVkIHBpbmcgYW5kIGEgbm9uLWZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAgcGluZzEgPSBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhwaW5nMSkKLSAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKHBpbmcyKQotICAgICAgICBwaW5nMyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1Bv
bmchJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RF
X1BJTkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzMpCi0KLSAg
ICAgICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0g
ICAgICAgIHdvcmxkID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nV29ybGQhJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElP
TikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyh3b3JsZCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAg
ICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RF
X1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcsIGNvbnRyb2xfbWVzc2FnZXNbMV1b
J29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQb25nIScsIGNvbnRyb2xfbWVz
c2FnZXNbMV1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV93aGls
ZV9yZWNlaXZpbmdfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE5KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFnbWVu
dGVkIHBpbmcuCi0gICAgICAgIHBpbmcxID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGkn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1BJ
TkcpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzEpCi0KLSAgICAg
ICAgIyBCZWZvcmUgc2VuZGluZyB0aGUgbGFzdCBmcmFnbWVudGVkIHBpbmcsIHNlbmQgYSBtZXNz
YWdlLgotICAgICAgICAjIFRoZSBsb2dpY2FsIGNoYW5uZWwgKDIpIHNob3VsZCBiZSBkcm9wcGVk
LgotICAgICAgICBtZXNzYWdlID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyB3
b3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKG1lc3NhZ2UpCi0KLSAgICAg
ICAgIyBTZW5kIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UuCi0gICAg
ICAgIHBpbmcyID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nbmchJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMikKLQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkKLSAgICAgICAgIyBObyBtZXNzYWdl
IHNob3VsZCBiZSBzZW50IG9uIGNoYW5uZWwgMi4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
S2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9tZXNzYWdlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAyKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0g
ICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9
IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9Mikp
Ci0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29u
dHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVf
UElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQ
aW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2ZyYWdt
ZW50ZWRfcGluZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xv
dHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQot
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0n
L3BpbmcnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAot
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICAjIFJlcGxlbmlzaCAzIGJ5dGVzLiBUaGlzIGlzbid0IGVub3VnaCB0byBzZW5kIHRoZSB3
aG9sZSBwaW5nIGZyYW1lCi0gICAgICAgICMgYmVjYXVzZSB0aGUgZnJhbWUgd2lsbCBoYXZlIDUg
Ynl0ZXMgbWVzc2FnZSgnUGluZyEnKS4gVGhlIGZyYW1lCi0gICAgICAgICMgc2hvdWxkIGJlIGZy
YWdtZW50ZWQuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBXYWl0IHVudGlsIHRoZSB3
b3JrZXIgaXMgYmxvY2tlZCBkdWUgdG8gc2VuZCBxdW90YSBzaG9ydGFnZS4KLSAgICAgICAgdGlt
ZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAyICsgMSBieXRlcyAo
aW5jbHVkaW5nIGV4dHJhIGNvc3QpLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAg
IG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1lc3Nh
Z2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBtZXNz
YWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudGVkX3Bpbmdf
d2hpbGVfc2VuZGluZ19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKAotICAgICAgICAgICAgcGF0aD0nL3Bpbmdfd2hpbGVfaGVsbG9fd29y
bGQnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKLSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAnSGVs
bG8gJyB3aXRoIGZpbj0wCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1BpbmchJyBtZXNzYWdlCi0g
ICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQotICAgICAgICAjIFJl
cGxlbmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBwaW5nIHdpbGwgYmUK
LSAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgIGZs
b3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGE9MTApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19j
b250cm9sKQotCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxlbmlzaCBy
ZW1haW5pbmcgMyArIDYgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9OSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAg
ICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9Q
SU5HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYg
dGVzdF9zZW5kX2ZyYWdtZW50ZWRfdHdvX3Bpbmdfd2hpbGVfc2VuZGluZ19mcmFnbWVudGVkX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKAotICAgICAgICAg
ICAgcGF0aD0nL3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBBcHBsaWNhdGlvbiB3aWxsIHNl
bmQ6Ci0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ0hlbGxvICcgd2l0aCBmaW49MAotICAgICAg
ICAjIC0gcGluZyB3aXRoICdQaW5nIScgbWVzc2FnZQotICAgICAgICAjIC0gcGluZyB3aXRoICdQ
b25nIScgbWVzc2FnZQotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdXb3JsZCEnIHdpdGggZmlu
PTEKLSAgICAgICAgIyBSZXBsZW5pc2ggKDYgKyAxKSArICgyICsgMSkgYnl0ZXMgc28gdGhhdCB0
aGUgZmlyc3QgcGluZyB3aWxsIGJlCi0gICAgICAgICMgZnJhZ21lbnRlZCBvbiB0aGUgbG9naWNh
bCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTEwKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICB0aW1lLnNsZWVwKDEpCi0K
LSAgICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDMgKyAoNSArIDEpICsgNiBieXRlcy4gVGhl
IHNlY29uZCBwaW5nIHdvbid0Ci0gICAgICAgICMgYmUgZnJhZ21lbnRlZCBvbiB0aGUgbG9naWNh
bCBjaGFubmVsLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTE1KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhf
aGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBjb250cm9s
X21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRy
b2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5n
IScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVzc2FnZXNbMV1bJ29wY29kZSddKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQb25nIScsIGNvbnRyb2xfbWVzc2FnZXNbMV1bJ21l
c3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0g
ICAgICAgICMgRHJvcENoYW5uZWwgZm9yIGNoYW5uZWwgaWQgMSB3aGljaCBkb2Vzbid0IGhhdmUg
cmVhc29uLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceDYwXHgw
MVx4MDAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
ZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAg
ICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Js
b2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9D
SEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0FDS05PV0xF
REdFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotCi0g
ICAgZGVmIHRlc3RfdHdvX2Zsb3dfY29udHJvbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RT
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVP
VEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFJlcGxlbmlzaCA1IGJ5dGVzLgotICAgICAgICBmbG93
X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVk
X3F1b3RhPTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgICMgU2VuZCAxMCBieXRlcy4gVGhlIHNlcnZlciB3aWxsIHRyeSBlY2hv
IGJhY2sgMTAgYnl0ZXMuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdI
ZWxsb1dvcmxkJykpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggNSArIDEgKHBlci1tZXNzYWdlIGV4
dHJhIGNvc3QpIGJ5dGVzLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsb1dvcmxkJ10sIG1lc3NhZ2VzKQotICAgICAgICByZWNlaXZlZF9m
bG93X2NvbnRyb2xzID0gWwotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUg
PT0gbXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCBhbmQgYi5jaGFubmVsX2lkID09IDJdCi0g
ICAgICAgICMgUmVwbGVuaXNobWVudCBmb3IgJ0hlbGxvV29ybGQnICsgMQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDExLCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCi0g
ICAgICAgICMgUmVwbGVuaXNobWVudCBmb3IgJ0dvb2RieWUnICsgMQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDgsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMV0uc2VuZF9xdW90YSkKLQotICAg
IGRlZiB0ZXN0X25vX3NlbmRfcXVvdGFfb25fc2VydmVyKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdIZWxsb1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICAjIEp1c3Qgd2FpdCBmb3IgMSBzZWMgc28gdGhhdCB0aGUg
c2VydmVyIGF0dGVtcHRzIHRvIGVjaG8gYmFjawotICAgICAgICAjICdIZWxsb1dvcmxkJy4KLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0xKSkKLQotICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5lbCAy
LgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAyKQotCi0gICAgZGVmIHRlc3Rfbm9fc2VuZF9xdW90YV9vbl9z
ZXJ2ZXJfZm9yX3Blcm1lc3NhZ2VfZXh0cmFfY29zdChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVf
cmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0
ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5l
bF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2Rl
ZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgIyBSZXBsZW5pc2ggb25seSBsZW4o
J1dvcmxkJykgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgICMgU2VydmVyIHNob3Vs
ZCBub3QgY2FsbGJhY2sgZm9yIHRoaXMgbWVzc2FnZS4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICAjIEp1c3Qgd2FpdCBmb3IgMSBzZWMgc28g
dGhhdCB0aGUgc2VydmVyIGF0dGVtcHRzIHRvIGVjaG8gYmFjawotICAgICAgICAjICdXb3JsZCcu
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MSkpCi0KLSAgICAgICAgIyBPbmx5IG9uZSBtZXNzYWdlIHNob3VsZCBiZSBzZW50IG9u
IGNoYW5uZWwgMi4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIG1l
c3NhZ2VzKQotCi0gICAgZGVmIHRlc3RfcXVvdGFfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0
Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9N
dXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAwKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdIZWxsb1dvcmxkJykpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgY29udHJvbF9ibG9ja3MgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDUsIGxlbihjb250cm9sX2Jsb2NrcykpCi0gICAgICAgIGRyb3BfY2hh
bm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIGNvbnRyb2xfYmxvY2tzCi0gICAg
ICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9O
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0KLSAg
ICBkZWYgdGVzdF9jb25zdW1lX3F1b3RhX2VtcHR5X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
ICMgQ2xpZW50IGhhcyAxIGJ5dGUgcXVvdGEuCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywgMSkKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2Vj
aG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTIpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotICAgICAgICAjIFNlbmQgYW4gZW1wdHkgbWVzc2FnZS4gUHl3ZWJzb2NrZXQg
YWx3YXlzIHJlcGxlbmlzaGVzIDEgYnl0ZSBxdW90YQotICAgICAgICAjIGZvciBlbXB0eSBtZXNz
YWdlCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPScnKSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICAjIFRo
aXMgbWVzc2FnZSB2aW9sYXRlcyBxdW90YSBvbiBjaGFubmVsIGlkIDIuCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVz
c2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBkaXNwYXRjaGVyLmNoYW5uZWxf
ZXZlbnRzWzJdLm1lc3NhZ2VzWzBdKQotCi0gICAgICAgIHJlY2VpdmVkX2Zsb3dfY29udHJvbHMg
PSBbCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9P
UENPREVfRkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBsZW4ocmVjZWl2ZWRfZmxvd19jb250cm9scykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1swXS5zZW5kX3F1b3RhKQotCi0g
ICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklPTEFUSU9OLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9j
b25zdW1lX3F1b3RhX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgIyBDbGll
bnQgaGFzIGxlbignSGVsbG8nKSArIGxlbignR29vZGJ5ZScpICsgMiBieXRlcyBxdW90YS4KLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLCAxNCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVh
dGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1
ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hh
bm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5j
b2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRk
X2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3df
Y29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGUnLCBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdsbG8nLCBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pKQot
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBtZXNzYWdlcykKLQot
ICAgIGRlZiB0ZXN0X2ZyYWdtZW50ZWRfY29udHJvbF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgUmVwbGVuaXNoIHRvdGFsIDYgYnl0
ZXMgaW4gMyBGbG93Q29udHJvbHMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0yKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTMpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSdd
KQotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9zbG90X3Zpb2xhdGlvbl9ieV9jbGllbnQoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKHNsb3RzPTEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGE9bXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29k
ZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9j
aGFubmVsX3JlcXVlc3QpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgIyBUaGlzIHJlcXVlc3Qgc2hv
dWxkIGJlIHJlamVjdGVkLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0zLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MywgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzLmhhc19r
ZXkoMykpCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBi
IGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAg
ICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFU
SU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0K
LSAgICBkZWYgdGVzdF9xdW90YV9vdmVyZmxvd19ieV9jbGllbnQoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKHNsb3RzPTEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbmRfcXVvdGE9bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0gICAgICAgICMgUmVwbGVuaXNoIDB4N0ZGRkZGRkZGRkZGRkZGRiBieXRlcyB0d2ljZS4K
LSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0weDdG
RkZGRkZGRkZGRkZGRkYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29u
dHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAg
YiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3Mo
KQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBkcm9wX2NoYW5uZWwuY2hhbm5lbF9pZCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9TRU5EX1FVT1RBX09WRVJG
TE9XLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0K
LSAgICBkZWYgdGVzdF9pbnZhbGlkX2VuY2Fwc3VsYXRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0g
ICAgICAgIGZpcnN0X2J5dGUgPSAobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1Qg
PDwgNSkKLSAgICAgICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAgICAg
ICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgxKSArCi0gICAgICAgICAgICAgICAgIG11eC5fZW5j
b2RlX251bWJlcigwKSkKLSAgICAgICAgcGF5bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQo
bXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgYmxvY2sKLSAgICAgICAgdGV4dF9mcmFtZSA9IGNy
ZWF0ZV9iaW5hcnlfZnJhbWUocGF5bG9hZCwgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHRleHRfZnJhbWUpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0g
ICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19NRVNTQUdF
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJP
UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Ns
b3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9jaGFubmVsX2lkX3RydW5jYXRlZChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LQotICAgICAgICAjIFRoZSBsYXN0IGJ5dGUgb2YgdGhlIGNoYW5uZWwgaWQgaXMgbWlzc2luZy4K
LSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDgwJywgbWFzaz1UcnVlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAg
aWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9DSEFOTkVMX0lEX1RSVU5DQVRFRCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkcm9wX2NoYW5uZWwuZHJvcF9jb2RlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnNlcnZlcl9jbG9zZV9jb2Rl
KQotCi0gICAgZGVmIHRlc3RfaW5uZXJfZnJhbWVfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAg
ICAgICMgSnVzdCBjb250YWluIGNoYW5uZWwgaWQgMS4KLSAgICAgICAgZnJhbWUgPSBjcmVhdGVf
YmluYXJ5X2ZyYW1lKCdceDAxJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBu
ZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhf
T1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1Bf
Q09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVELAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYg
dGVzdF91bmtub3duX211eF9vcGNvZGUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBVbmRlZmluZWQg
b3Bjb2RlIDUKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfYmluYXJ5X2ZyYW1lKCdceDAwXHhhMCcs
IG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIg
Zm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkK
LSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfVU5LTk9XTl9NVVhfT1BD
T0RFLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9F
UlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVy
X2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX211eF9jb250cm9sX2Jsb2NrKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQotCi0gICAgICAgICMgRHJvcENoYW5uZWwgY29udGFpbnMgMSBieXRlIHJlYXNvbgot
ICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceDYwXHgwMFx4MDFceDAw
JywgbWFzaz1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1l
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAg
YiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3Mo
KQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9w
X2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9F
TkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9wZXJtZXNzYWdlX2RlZmxhdGUo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBF
bmFibGUgcGVybWVzc2FnZSBkZWZsYXRlIGV4dGVuc2lvbiBvbiBsb2dpY2FsIGNoYW5uZWwgMi4K
LSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9O
Ci0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBjb21w
cmVzc2VkICdIZWxsbycgdHdpY2UuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8xID0gY29t
cHJlc3NlZF9oZWxsbzFbOi00XQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2Fn
ZT1jb21wcmVzc2VkX2hlbGxvMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
c3YxPVRydWUpKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiA9IGNvbXByZXNzLmNvbXByZXNz
KCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8yICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMiA9IGNvbXByZXNzZWRf
aGVsbG8yWzotNF0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJl
c3NlZF9oZWxsbzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1UcnVl
KSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nLCAnSGVsbG8nXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2Vz
KQotICAgICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNvbXByZXNzZWQuCi0gICAg
ICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvMSwgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbzIsIG1lc3NhZ2VzWzFdKQotCi0KLSAgICBk
ZWYgdGVzdF9wZXJtZXNzYWdlX2RlZmxhdGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lv
bnM9ZXh0ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
Ci0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG9IZWxsb0hlbGxvJyBh
cyBmcmFnbWVudGVkIG1lc3NhZ2UuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG9IZWxsb0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotCi0gICAgICAgIG0gPSBsZW4oY29tcHJlc3NlZF9o
ZWxsbykgLyAyCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1s6bV0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLCByc3YxPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1ttOl0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmluPVRydWUsIHJzdjE9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKSkKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG9IZWxsb0hlbGxvJ10sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykK
LSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotCi0gICAg
ZGVmIHRlc3RfcmVjZWl2ZV9iYWRfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011
eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIo
cmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5f
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggZmlu
PUZhbHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUgd2l0aAotICAgICAgICAjIG9wY29kZT1URVhU
IChub3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDIgc2hvdWxkIGJlIGRyb3BwZWQu
Ci0gICAgICAgIGZyYW1lMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVY
VCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTEpCi0gICAgICAg
IGZyYW1lMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMikKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgYSBm
cmFtZSB3aXRoIG9wY29kZT1DT05USU5VQVRJT04gd2l0aG91dCBhIHByZWNlZGluZyBmcmFtZQot
ICAgICAgICAjIHRoZSBmaW4gb2Ygd2hpY2ggaXMgbm90IHNldC4gTG9naWNhbCBjaGFubmVsIDMg
c2hvdWxkIGJlIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lMyA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
b21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmcmFtZTMpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9NCwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBvcGNvZGU9UElORyBh
bmQgZmluPUZhbHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUKLSAgICAgICAgIyB3aXRoIG9wY29k
ZT1URVhUIChub3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDQgc2hvdWxkIGJlCi0g
ICAgICAgICMgZHJvcHBlZC4KLSAgICAgICAgZnJhbWU0ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J1BpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlu
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNv
bW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
cmFtZTQpCi0gICAgICAgIGZyYW1lNSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxs
bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RF
X1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWU1KQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbHMgPSBbCi0gICAgICAgICAgICBiIGZvciBiIGluIHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAg
ICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMXQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDMsIGxlbihkcm9wX2NoYW5uZWxzKSkKLSAgICAgICAgZm9yIGQgaW4g
ZHJvcF9jaGFubmVsczoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NP
REVfQkFEX0ZSQUdNRU5UQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuZHJv
cF9jb2RlKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFp
bigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9z
dHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW0ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDgxYWNmZWIwNDhkM2IyMDMyYTc5NDhjZmEyYWRlYTdjZTY0Zjk1YWUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
c3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Igc3RyZWFtIG1vZHVs
ZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRh
dGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBz
dHJlYW0KLQotCi1jbGFzcyBTdHJlYW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJB
IHVuaXR0ZXN0IGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2hl
YWRlcihzZWxmKToKLSAgICAgICAgIyBtb3JlLCByc3YxLCAuLi4sIHJzdjQgYXJlIGFsbCB0cnVl
Ci0gICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5PUENPREVfVEVY
VCwgMSwgMSwgMSwgMSwgMSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhmMVx4ODEn
LCBoZWFkZXIpCi0KLSAgICAgICAgIyBNYXhpbXVtIHBheWxvYWQgc2l6ZQotICAgICAgICBoZWFk
ZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5PUENPREVfVEVY
VCwgKDEgPDwgNjMpIC0gMSwgMCwgMCwgMCwgMCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHgwMVx4N2ZceDdmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZicsIGhlYWRlcikKLQot
ICAgICAgICAjIEludmFsaWQgb3Bjb2RlIDB4MTAKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFk
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDAsIDAsIDAsIDAsIDAsIDApCi0K
LSAgICAgICAgIyBJbnZhbGlkIHZhbHVlIDB4ZiBwYXNzZWQgdG8gbW9yZSBwYXJhbWV0ZXIKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bW1vbi5PUENPREVfVEVYVCwgMCwgMHhmLCAwLCAwLCAwLCAwKQotCi0gICAgICAgICMgVG9vIGxv
bmcgcGF5bG9hZF9sZW5ndGgKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbW1vbi5PUENPREVfVEVYVCwgMSA8PCA2MywgMCwgMCwgMCwg
MCwgMCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4o
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3Ry
ZWFtX2hpeGllNzUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E5YWM3MTMwYjczMDRlYjkyZGJiYmMxNTMzYWE0MTU0
NWUwMjQ2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU5ICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
VGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9y
dCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2Nr
ZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhp
eGllNzUKLWZyb20gdGVzdC50ZXN0X21zZ3V0aWwgaW1wb3J0IF9jcmVhdGVfcmVxdWVzdF9oaXhp
ZTc1Ci0KLQotY2xhc3MgU3RyZWFtSGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAg
ICIiIkEgdW5pdHRlc3QgZm9yIFN0cmVhbUhpeGllNzUgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVz
dF9wYXlsb2FkX2xlbmd0aChzZWxmKToKLSAgICAgICAgZm9yIGxlbmd0aCwgYnl0ZXMgaW4gKCgw
LCAnXHgwMCcpLCAoMHg3ZiwgJ1x4N2YnKSwgKDB4ODAsICdceDgxXHgwMCcpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKDB4MTIzNCwgJ1x4ODBceGE0XHgzNCcpKToKLSAgICAgICAg
ICAgIHRlc3Rfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShi
eXRlcykpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGxl
bmd0aCwgdGVzdF9zdHJlYW0uX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgpKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRiYTNmNDc3
MzdhMzMxZWYwMzkwY2M2YjBjODFjMmQzNGE0MjgzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIHV0aWwgbW9kdWxlLiIiIgotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgotCi0KLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1w
b3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRl
IHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLV9URVNUX0RBVEFfRElSID0gb3MucGF0aC5qb2lu
KG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAndGVzdGRhdGEnKQotCi0KLWNsYXNzIFV0aWxU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciB1dGlsIG1vZHVs
ZS4iIiIKLQotICAgIGRlZiB0ZXN0X2dldF9zdGFja190cmFjZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnTm9uZVxuJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgYSA9IDEgLyAwICAjIEludGVudGlvbmFsbHkgcmFpc2UgZXhjZXB0
aW9uLgotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgdHJhY2UgPSB1dGls
LmdldF9zdGFja190cmFjZSgpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3ModHJhY2Uuc3Rh
cnRzd2l0aCgnVHJhY2ViYWNrJykpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3ModHJhY2Uu
ZmluZCgnWmVyb0RpdmlzaW9uRXJyb3InKSAhPSAtMSkKLQotICAgIGRlZiB0ZXN0X3ByZXBlbmRf
bWVzc2FnZV90b19leGNlcHRpb24oc2VsZik6Ci0gICAgICAgIGV4YyA9IEV4Y2VwdGlvbignV29y
bGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIHN0cihleGMpKQotICAgICAg
ICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oJ0hlbGxvICcsIGV4YykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQnLCBzdHIoZXhjKSkKLQotICAgIGRlZiB0
ZXN0X2dldF9zY3JpcHRfaW50ZXJwKHNlbGYpOgotICAgICAgICBjeWd3aW5fcGF0aCA9ICdjOlxc
Y3lnd2luXFxiaW4nCi0gICAgICAgIGN5Z3dpbl9wZXJsID0gb3MucGF0aC5qb2luKGN5Z3dpbl9w
YXRoLCAncGVybCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRpbC5nZXRfc2Ny
aXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ1JF
QURNRScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRf
aW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1F
JyksIGN5Z3dpbl9wYXRoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3Vzci9iaW4vcGVy
bCAtd1QnLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2lu
KF9URVNUX0RBVEFfRElSLCAnaGVsbG8ucGwnKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y3lnd2luX3BlcmwgKyAnIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAg
ICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5wbCcpLCBjeWd3aW5fcGF0aCkp
Ci0KLSAgICBkZWYgdGVzdF9oZXhpZnkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JzYxIDdhIDQxIDVhIDMwIDM5IDIwIDA5IDBkIDBhIDAwIGZmJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICB1dGlsLmhleGlmeSgnYXpBWjA5IFx0XHJcblx4MDBceGZmJykpCi0KLQotY2xhc3Mg
UmVwZWF0ZWRYb3JNYXNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0
ZXN0IGZvciBSZXBlYXRlZFhvck1hc2tlciBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X21hc2so
c2VsZik6Ci0gICAgICAgICMgU2FtcGxlIGlucHV0IGU2LDk3LGE1IGlzIFUrNjVlNSBpbiBVVEYt
OAotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceGZmXHhmZlx4ZmZc
eGZmJykKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MTlceDY4XHg1YScsIHJlc3VsdCkKLQotICAgICAgICBt
YXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceDAwXHgwMFx4MDBceDAwJykKLSAgICAg
ICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ZTZceDk3XHhhNScsIHJlc3VsdCkKLQotICAgICAgICBtYXNrZXIgPSB1dGls
LlJlcGVhdGVkWG9yTWFza2VyKCdceGU2XHg5N1x4YTVceDIwJykKLSAgICAgICAgcmVzdWx0ID0g
bWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4
MDBceDAwXHgwMCcsIHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21hc2tfdHdpY2Uoc2VsZik6Ci0g
ICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDdmXHhmZlx4MjAn
KQotICAgICAgICAjIG1hc2tbMF0sIG1hc2tbMV0sIC4uLiB3aWxsIGJlIHVzZWQuCi0gICAgICAg
IHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgwMCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MDBceDdmXHhmZlx4MjBceDAwJywgcmVzdWx0KQotICAgICAgICAj
IG1hc2tbMl0sIG1hc2tbMF0sIC4uLiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBuZXh0IGNhbGwuCi0g
ICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgwMCcpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4N2ZceGZmXHgyMFx4MDBceDdmJywgcmVzdWx0KQotCi0g
ICAgZGVmIHRlc3RfbWFza19sYXJnZV9kYXRhKHNlbGYpOgotICAgICAgICBtYXNrZXIgPSB1dGls
LlJlcGVhdGVkWG9yTWFza2VyKCdtQVNrJykKLSAgICAgICAgb3JpZ2luYWwgPSAnJy5qb2luKFtj
aHIoaSAlIDI1NikgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLSAgICAgICAgcmVzdWx0ID0gbWFz
a2VyLm1hc2sob3JpZ2luYWwpCi0gICAgICAgIGV4cGVjdGVkID0gJycuam9pbigKLSAgICAgICAg
ICAgICAgICBbY2hyKChpICUgMjU2KSBeIG9yZCgnbUFTaydbaSAlIDRdKSkgZm9yIGkgaW4geHJh
bmdlKDEwMDApXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVzdWx0KQot
Ci0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ01hU2snKQotICAgICAg
ICBmaXJzdF9wYXJ0ID0gJ1RoZSBXZWJTb2NrZXQgUHJvdG9jb2wgZW5hYmxlcyB0d28td2F5IGNv
bW11bmljYXRpb24uJwotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhmaXJzdF9wYXJ0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICdceDE5XHQ2S1x4MWFc
eDA0MTgiXHgwMjhceDBlOUFceDAzXHgxOSJceDE1PFx4MDgiXHJzXHgwZSMnCi0gICAgICAgICAg
ICAgICAgJ1x4MDAxXHgwNyhceDEyc1x4MWY6XHgwZX5ceDFjLFx4MThzXHgwOCJceDBjPlx4MWUj
XHgwODBcbjknCi0gICAgICAgICAgICAgICAgJ1x4MDg8XHgwNWMnLAotICAgICAgICAgICAgICAg
IHJlc3VsdCkKLSAgICAgICAgc2Vjb25kX3BhcnQgPSAnSXQgaGFzIHR3byBwYXJ0czogYSBoYW5k
c2hha2UgYW5kIHRoZSBkYXRhIHRyYW5zZmVyLicKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1h
c2soc2Vjb25kX3BhcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg
ICAgIignSyVceDAwIEs5XHgxNjxLPVx4MDAhXHgxZj5bc1xubVx0Mlx4MDUpXHgxMjtcbiZceDA0
c1xuIyIKLSAgICAgICAgICAgICAgICAiXHgwNXNceDFmJVx4MDRzXHgwZixceDE1Mks5XHgxMzJc
eDA1Plx4MDc2XHgxOWMiLAotICAgICAgICAgICAgICAgIHJlc3VsdCkKLQotCi1kZWYgZ2V0X3Jh
bmRvbV9zZWN0aW9uKHNvdXJjZSwgbWluX251bV9jaHVua3MpOgotICAgIGNodW5rcyA9IFtdCi0g
ICAgYnl0ZXNfY2h1bmtlZCA9IDAKLQotICAgIHdoaWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4oc291
cmNlKToKLSAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAg
MSwKLSAgICAgICAgICAgIG1pbihsZW4oc291cmNlKSAvIG1pbl9udW1fY2h1bmtzLCBsZW4oc291
cmNlKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAgICBjaHVuayA9IHNvdXJjZVtieXRlc19jaHVu
a2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotICAgICAgICBjaHVua3MuYXBwZW5kKGNo
dW5rKQotICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKLQotICAgIHJldHVybiBj
aHVua3MKLQotCi1jbGFzcyBJbmZsYXRlckRlZmxhdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgX0luZmxhdGVyIGFuZCBfRGVmbGF0ZXIgY2xhc3MuIiIi
Ci0KLSAgICBkZWYgdGVzdF9pbmZsYXRlX2RlZmxhdGVfZGVmYXVsdChzZWxmKToKLSAgICAgICAg
aW5wdXQgPSBiJ2hlbGxvJyArICctJyAqIDMwMDAwICsgYidoZWxsbycKLSAgICAgICAgaW5mbGF0
ZXIxNSA9IHV0aWwuX0luZmxhdGVyKDE1KQotICAgICAgICBkZWZsYXRlcjE1ID0gdXRpbC5fRGVm
bGF0ZXIoMTUpCi0gICAgICAgIGluZmxhdGVyOCA9IHV0aWwuX0luZmxhdGVyKDgpCi0gICAgICAg
IGRlZmxhdGVyOCA9IHV0aWwuX0RlZmxhdGVyKDgpCi0KLSAgICAgICAgY29tcHJlc3NlZDE1ID0g
ZGVmbGF0ZXIxNS5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotICAgICAgICBjb21wcmVzc2Vk
OCA9IGRlZmxhdGVyOC5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotCi0gICAgICAgIGluZmxh
dGVyMTUuYXBwZW5kKGNvbXByZXNzZWQxNSkKLSAgICAgICAgaW5mbGF0ZXI4LmFwcGVuZChjb21w
cmVzc2VkOCkKLQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGNvbXByZXNzZWQxNSwgY29t
cHJlc3NlZDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGluZmxhdGVyMTUuZGVj
b21wcmVzcygtMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGluZmxhdGVyOC5k
ZWNvbXByZXNzKC0xKSkKLQotICAgIGRlZiB0ZXN0X3JhbmRvbV9zZWN0aW9uKHNlbGYpOgotICAg
ICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHNvdXJjZSA9ICcnLmpvaW4oCi0gICAgICAg
ICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAgKiAx
MDI0KV0pCi0KLSAgICAgICAgY2h1bmtlZF9pbnB1dCA9IGdldF9yYW5kb21fc2VjdGlvbihzb3Vy
Y2UsIDEwKQotICAgICAgICBwcmludCgiSW5wdXQgY2h1bmsgc2l6ZXM6ICVyIiAlIFtsZW4oYykg
Zm9yIGMgaW4gY2h1bmtlZF9pbnB1dF0pCi0KLSAgICAgICAgZGVmbGF0ZXIgPSB1dGlsLl9EZWZs
YXRlcigxNSkKLSAgICAgICAgY29tcHJlc3NlZCA9IFtdCi0gICAgICAgIGZvciBjaHVuayBpbiBj
aHVua2VkX2lucHV0OgotICAgICAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29t
cHJlc3MoY2h1bmspKQotICAgICAgICBjb21wcmVzc2VkLmFwcGVuZChkZWZsYXRlci5jb21wcmVz
c19hbmRfZmluaXNoKCcnKSkKLQotICAgICAgICBjaHVua2VkX2V4cGVjdGF0aW9uID0gZ2V0X3Jh
bmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50ICgiRXhwZWN0YXRpb24gY2h1
bmsgc2l6ZXM6ICVyIiAlCi0gICAgICAgICAgICAgICBbbGVuKGMpIGZvciBjIGluIGNodW5rZWRf
ZXhwZWN0YXRpb25dKQotCi0gICAgICAgIGluZmxhdGVyID0gdXRpbC5fSW5mbGF0ZXIoMTUpCi0g
ICAgICAgIGluZmxhdGVyLmFwcGVuZCgnJy5qb2luKGNvbXByZXNzZWQpKQotICAgICAgICBmb3Ig
Y2h1bmsgaW4gY2h1bmtlZF9leHBlY3RhdGlvbjoKLSAgICAgICAgICAgIGRlY29tcHJlc3NlZCA9
IGluZmxhdGVyLmRlY29tcHJlc3MobGVuKGNodW5rKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY2h1bmssIGRlY29tcHJlc3NlZCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcn
LCBpbmZsYXRlci5kZWNvbXByZXNzKC0xKSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18n
OgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9SRUFETUUK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwMDFhYTU1OTVjZGQxMzQwN2Y1NzI4ZWNk
NTMyYTVkMTIyNjNlZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLVRlc3QgZGF0YSBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9hYm9ydF9ieV91c2VyX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY3
Zjk5MzBmNzgyNGMzYTUzNTkxNGE1YjM3NzlmNmI2ZmJhMjQzZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
YWJvcnRfYnlfdXNlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENv
cHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi0K
LQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHJhaXNl
IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCJhYm9ydCBmb3IgdGVzdCIpCi0KLQot
ZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hh
a2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigiYWJvcnQgZm9yIHRlc3QiKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5r
X3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9ibGFua193c2gucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmODdjNmFmMjNkZjA4ZWZlMzU3NWNhZTIwOGRlNTAy
MmNiYWE2NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSMgaW50ZW50aW9uYWxseSBsZWZ0
IGJsYW5rCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2No
ZWNrX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3No
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzEzOWZhMTc2Y2MzNDE3YmU5NmRl
Nzk4ZTZhODFlZDE0OWIxOTkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGlmIHJlcXVlc3Qu
d3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBsZS5jb20nOgotICAgICAgICByZXR1cm4KLSAgICBy
YWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFibGUgb3JpZ2luOiAlcicgJSByZXF1ZXN0LndzX29y
aWdpbikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9y
ICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNv
dXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFu
c2Zlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9p
bl90cmFuc2Zlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ODJkMDIz
MWVmMDBmMDJlMGQ5MGRmNjc4ZWI4MDRiYTQzODYyZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9l
eGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRXhjZXB0aW9uIGluIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YSgpLgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJl
cXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpOgotICAgIHJhaXNlIEV4Y2VwdGlvbignSW50ZW50aW9uYWwgRXhjZXB0aW9uIGZvciAlcywg
JXMnICUKLSAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qu
d3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE3ZTdiZTE4MDJlM2M2NmM2Mzg0OTg3NWVhMzVlMjQwNmEzODFl
NjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvcnJlY3Qgc2ln
bmF0dXJlcywgd3JvbmcgZmlsZSBuYW1lLgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MKLQotCi1kZWYgd2ViX3NvY2tldF90cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgKLSAgICAg
ICAgICAgICdzdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUK
LSAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjYzNTJlYjRjYTIzODk1MjIzOWUzNTQyNzI4Y2UzYjM4ZDgzZGQ2Yi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCww
IEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJOb24tY2FsbGFibGUgaGFuZGxlcnMuCi0iIiIK
LQotCi13ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSA9IFRydWUKLXdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YSA9IDEKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRiM2ZmNjkzMDI1NmJjMWIxM2UyYzRjMmQxYzg0M2M0YjdjODBhYTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0j
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKCdzdWIvcGxhaW5fd3NoLnB5IGlzIGNh
bGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0
LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDlhMzYxNDI2ODJhMTZjODI0YTUyYjZhZTJh
M2M2YTFjNWI2MDkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJmNjU5YmM5YWYwMWMxMDdlZjM1MDhiMmI1ZDAxNzNk
Y2Y1OTAwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
V3Jvbmcgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Ugc2lnbmF0dXJlLgotIiIiCi0KLQot
ZGVmIG5vX3dlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIHBhc3MK
LQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZSgKLSAgICAgICAgICAgICdzdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193
c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAocmVxdWVzdC53c19y
ZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVy
X3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5z
ZmVyX3NpZ193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZTJlNTUwNzk0
YjdiOTkwZTBiNDRiMzNjZmMyZDRkMTUyZTZjMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9u
Z190cmFuc2Zlcl9zaWdfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiV3Jvbmcgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKCkgc2ln
bmF0dXJlLgotIiIiCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVl
c3QpOgotICAgIHBhc3MKLQotCi1kZWYgbm9fd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpOgotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgKLSAgICAgICAgICAgICdzdWIvd3Jv
bmdfdHJhbnNmZXJfc2lnX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAg
ICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWZjN2JlZjQyOTE4OTIzMTNjMGY2NjM5
ZGUxMTgyNjFiYjI0MmUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9i
bGFua193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dz
aC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3OGNjYTNlZGU2OGMzYzE0ODBmMWNlZjY4YTRlNWVkZjY5MDg2NTU2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGZiNWU0MTU4MDAxYzE1ZmY4NWUzMTFiY2M2Y2YyNTFmYmIxY2QzZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxsLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3NldF9zeXNfcGF0aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25z
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNo
YWtlX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXppbmdm
aWxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW0ucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmIyZWQ1MjNiM2IyMjJiYTE3NTg3YTRmZTY3
MGE2Njg5ZGQzZDA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L0NPTlRSSUJVVElORwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5TRQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTUFOSUZFU1Qu
aW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L1JFQURNRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9x
dWljL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcXVpYy9SRUFETUUubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVm
MWQ2NmUzMjIwMjg1ZjhiMWViMGUwYTdkMTg4YTA5MzUwYzNmZDguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL1JFQURNRS5tZAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLVRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zCi1bUVVJQ10oaHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtcXVpYy10cmFuc3BvcnQpIHJlbGF0ZWQgdG9vbHMu
Ci0KLSMgUXVpY1RyYW5zcG9ydAotW3F1aWNfdHJhbnNwb3J0X3NlcnZlci5weV0oLi9xdWljX3Ry
YW5zcG9ydF9zZXJ2ZXIucHkpIGltcGxlbWVudHMgYSBzaW1wbGUKLVtRdWljVHJhbnNwb3J0XSho
dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdnZ2LXdlYnRyYW5zcG9ydC1xdWljKSBz
ZXJ2ZXIKLWZvciB0ZXN0aW5nLiBJdCB1c2VzIFthaW9xdWljXShodHRwczovL2dpdGh1Yi5jb20v
YWlvcnRjL2Fpb3F1aWMvKSwgYW5kIHRlc3QKLWF1dGhvcnMgY2FuIGltcGxlbWVudCBjdXN0b20g
aGFuZGxlcnMgYnkgcHV0dGluZyBweXRob24gc2NyaXB0cyBpbgotW3dwdC93ZWJ0cmFuc3BvcnQv
cXVpYy9oYW5kbGVycy9dKC4uLy4uL3dlYnRyYW5zcG9ydC9xdWljL2hhbmRsZXJzLykuCi0KLSMj
IEN1c3RvbSBIYW5kbGVycwotVGhlIFF1aWNUcmFuc3BvcnRTZXJ2ZXIgY2FsbHMgZnVuY3Rpb25z
IGRlZmluZWQgaW4gZWFjaCBoYW5kbGVyIHNjcmlwdC4KLQotIC0gYGhhbmRsZV9jbGllbnRfaW5k
aWNhdGlvbmAgaXMgY2FsbGVkIGR1cmluZyB0aGUgY2xpZW50IGluZGljYXRpb24gcHJvY2Vzcy4K
LSAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdGhyZWUgYXJndW1lbnRzOgotICAgCi0g
ICAtIGBjb25uZWN0aW9uYDogW2BhaW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2Nv
bGBdKHByb3RvY29sKQotICAgLSBgb3JpZ2luYDogYHN0cmAgVGhlIG9yaWdpbiBvZiB0aGUgaW5p
dGlhdG9yLgotICAgLSBgcXVlcnlgOiBgRGljdFtzdHIsIHN0cl1gIFRoZSBkaWN0aW9uYXJ5IG9m
IHF1ZXJ5IHBhcmFtZXRlcnMgb2YgdGhlIFVSTCBvZiB0aGUKLSAgICAgY29ubmVjdGlvbi4KLQot
ICAgQSBoYW5kbGVyIGNhbiBhYm9ydCB0aGUgY2xpZW50IGluZGljYXRpb24gcHJvY2VzcyBlaXRo
ZXIgYnkgcmFpc2luZyBhbgotICAgZXhjZXB0aW9uIG9yIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24u
Ci0JICAgIAotIC0gYGhhbmRsZV9ldmVudGAgaXMgY2FsbGVkIHdoZW4gYSBbYFF1aWNFdmVudGBd
KGV2ZW50KSBhcnJpdmVzLgotICAgLSBgY29ubmVjdGlvbmA6IFtgYWlvcXVpYy5hc3luY2lvLlF1
aWNDb25uZWN0aW9uUHJvdG9jb2xgXShwcm90b2NvbCkKLSAgIC0gYGV2ZW50YDogW2BhaW9xdWlj
LnF1aWMuZXZlbnRzLlF1aWNFdmVudGBdKGV2ZW50KQotCi0gICBUaGlzIGZ1bmN0aW9uIGlzIG5v
dCBjYWxsZWQgdW50aWwgdGhlIGNsaWVudCBpbmRpY2F0aW9uIHByb2Nlc3MgZmluaXNoZXMKLSAg
IHN1Y2Nlc3NmdWxseS4KLQotW3Byb3RvY29sXTogaHR0cHM6Ly9haW9xdWljLnJlYWR0aGVkb2Nz
LmlvL2VuL2xhdGVzdC9hc3luY2lvLmh0bWwjYWlvcXVpYy5hc3luY2lvLlF1aWNDb25uZWN0aW9u
UHJvdG9jb2wKLVtldmVudF06IGh0dHBzOi8vYWlvcXVpYy5yZWFkdGhlZG9jcy5pby9lbi9sYXRl
c3QvcXVpYy5odG1sI21vZHVsZS1haW9xdWljLnF1aWMuZXZlbnRzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3F1aWMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9xdWljL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9x
dWljL2NlcnRzL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy9SRUFETUUubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDIxNmNmMTNmZmZjMWJiYTg3ZDYxMGUyMmNmNjBlMTEwNDNmNTM5MTguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL1JFQURNRS5tZAor
KysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRvIGdlbmVyYXRlIGNlcnQua2V5IGFuZCBj
ZXJ0LnBlbToKLQotIDEuIFJlbW92ZSB3ZWItcGxhdGZvcm0udGVzdC5rZXkgYW5kIHdlYi1wbGF0
Zm9ybS50ZXN0LnBlbSBpbiAuLi8uLi9jZXJ0cy4KLSAxLiBGcm9tIHRoZSByb290LCBydW4KLSAg
ICBgLi93cHQgc2VydmUgLS1jb25maWcgdG9vbHMvcXVpYy9jZXJ0cy9jb25maWcuanNvbmAgYW5k
IHRlcm1pbmF0ZSBpdAotICAgIGFmdGVyIGl0IGhhcyBzdGFydGVkIHVwLgotIDEuIE1vdmUgdG9v
bHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qua2V5IHRvIHRvb2xzL3F1aWMvY2VydHMvY2VydC5r
ZXkuCi0gMS4gTW92ZSB0b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0gdG8gdG9vbHMv
cXVpYy9jZXJ0cy9jZXJ0LnBlbS4KLSAxLiBSZWNvdmVyIHRoZSBvcmlnaW5hbCB3ZWItcGxhdGZv
cm0udGVzdC5rZXkgYW5kIHdlYi1wbGF0Zm9ybS50ZXN0LnBlbSBpbgotICAgIC4uLy4uL2NlcnRz
LgotCi1TZWUgYWxzbzogLi4vLi4vY2VydHMvUkVBRE1FLm1kClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQua2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQua2V5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTNjZGZhNTQzNzI4YjYzNjliMDVlZWZlMjA4MTFjZDY2
NjJiNzE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0
cy9jZXJ0LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS0tLS0tQkVHSU4gUFJJ
VkFURSBLRVktLS0tLQotTUlJRXdBSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS293Z2dTbUFn
RUFBb0lCQVFEYnlQdWlCR3B4aGF2RgotM2o3cEk2ZytBMGdDNEJUTFRxTU9iS1NUa1FXc2pxMUdP
ZDJMQTFsd1RQTE9id3J2aElVRnpid29JYk93b1BNZQotTWtqc3NGQ0hHM0ZNajU2Y0tpQVEyREZJ
NmRLNVBqR1VWTlNSeGsvRjRIaDJaeDlEVEVObC9FYi9jUlQyeXV1KwotVzlIQ3UvQldmYld3bHd3
TjV2eHluZUNvaDVjQkIvamQxS1RPUmd1WXB1YXRIYjg1QUQ1QlJoWUxYd0hGN3lWSAotTlZ4SGV1
R2xLMzF5dVlDSE5LdkJIRGdaRjVUcDhGcUtYblZVK1BsS1hDU1U1NjAyYzJVNXhISUZ2S1R5aVps
TQotY1lYTlNVcDBsY053L2lUU1Z0c1BFNGsxc3R1NnFrV2RUN0gvdVUrR1VCK2FMcU8rc3ZBL3M5
R0dYOEhaZ3QrcgotdlNGRThsSUpBZ01CQUFFQ2dnRUJBSkE5NkQ5ZGpJb3lneGhhRW9tcG1Db1N0
emtEM1VITXV5Q2xWcUZ1UlA0SgotcVZoMGM1eGZOMXlIYzdiZGs1eThLUjAwOTY2UzU3NGM4MUcz
Q0xzbHY4UGIwOUMrVlFjQ2NvYjdpK1RoYUNXZwotMXFNVnhXaGljVXBaVmxYR3VmTE40MUhVYnJn
SWZBeTRBbDJ0SHc0aGo4c0R0N0ZNZ0dIRFhaelBWbmprZThyMQotTzlZaUpsMVF4NEw3dk1XcnVH
YTlRV2pGZ0huRyt1aGFLanNMMnY3SlFPR3k1dDhhYm9WeWI3aDhyR2cvbUMrZQotSElZT3VjVjFh
RU1nWVZhQW5oR3NLTUhreDVBMXhXcFhCU3J1RytHUkJ4L2tYV1ora0NOY2tMWHVWZHJocTRISQot
QWRieEl6cVFUUE1YcE8zUkF1anlyeGtIYWJFTk1QQS9GR0g0c3ptZExvRUNnWUVBOXo4cGU3L3ZT
bFdnZmhzRgotejVRbndXSHlGanJ1aGdELzJzYTRMQi9jbXdUUWRHdzhFNVROSERiQ2dtUzQ5OURa
VVhJWnVCT1Rla2RFVkRRYQotbmc4VnlMM283RG1zKzVpUGk1Y3FzY3AxS2tqTEVNeVBwcXM0SlR1
aXhScGptTWZ5Y2R4VlRwWGhjdXFuSnBUTAotUUM5cFI1Ti96WmNBTURsQnYwRnpjOFQ3OFhrQ2dZ
RUE0NUR1ZVdHSFZmMnU0dU1ZeVd4eVpoYU5EYWdsMTN5eAotL29TU1VUem9MdlNwR1F4S2t2K2Z4
U05xTDNudTVJYTZ1RDRHdTVOdWJQNEhyL1ZlU0tSZm1rVDFsdXZGY1ZmQwota244cjhic3NacTg1
NUFWSnhYYTVLMWF1V2pDdUZIajBwWWY1NnNmaGtQeHBZMFJRRWdrdnVFM2lvc1ExMmdGWAotdncx
NDdGdFFVUkVDZ1lFQTg1UnBWUDQ1UzMxaU9QcDhWZzE2d1J5eWVFNGtzU1lJNmtyK0pKSmJMdW1t
U0J4ZAotYjFrWVhTUmhxajU2cjhJMFp2WEcrcjltZW4vOWhBczA4ZVNnckh6VUhPMlJTdWo0K2ll
Nkt4L3ZIL0pKQkVyVAotZHZxVnZMQ3M0Z3ZtZFJ6KzhFZUdUMzUvZGt4UTBrU2luS0JZMHVnd2I2
WEV6TDJMMVZVdzNhd0NIZGtDZ1lFQQotcXRRSWdPdjZ1VTJuZEVEQVFheDhNRENya0YzeWtsSFVH
RmtTc1pORVJNTjdFUWVPRDgxKzlYRkJiQVJmbGdPaAotdFY4eWxLcjNFVENkT3JTNkkxUHBSSmlS
dDhxanZCTUNTQkRaUHl5Z0J6RnhCc0FGZ2dzK3M4N3RNVjByd01pUAotOXBjZHYrWnVhUFZpYzVj
N2VGNlhDUWJHcENNZ3ZkZVdOQ0I3N3dvWlA5RUNnWUVBbG9ia1BHRFlDeS9SYVZpVQotRmJxNUdv
NncwcE1Wbkx6WWJuNEdoMUFKUGVRS0lTcVh0Slo3dHFwZFcraTdxemtMdzc0RUxhWUNCUjJaRWxy
agotRVZlNWFST3g2VEZOOVJuamtGbnl2OUxleVlMK1lQYzhBSXdWVUNlU1Bpa1NHTEZwSmZhL2p3
RG1XaDN2SG1tQQotTlJVUDQwd2J0Qmk0MkMydWRyVHhVV3NIeHFjPQotLS0tLS1FTkQgUFJJVkFU
RSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQucGVtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTcwZjFiMDgyYWNiMzA1MzIxM2JjN2VlNzRmNWUz
NjdjODlmZjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9j
ZXJ0cy9jZXJ0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDI0MCArMCwwIEBACi1DZXJ0aWZpY2F0
ZToKLSAgICBEYXRhOgotICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBO
dW1iZXI6IDkxOTQ5MiAoMHhlMDdjNCkKLSAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hh
MjU2V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDTj13ZWItcGxhdGZvcm0tdGVz
dHMKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEFwciAyMCAxMToy
MDo1NiAyMDIwIEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogQXByIDE4IDExOjIwOjU2IDIw
MzAgR01UCi0gICAgICAgIFN1YmplY3Q6IENOPXdlYi1wbGF0Zm9ybS50ZXN0Ci0gICAgICAgIFN1
YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06
IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBSU0EgUHVibGljLUtleTogKDIwNDggYml0
KQotICAgICAgICAgICAgICAgIE1vZHVsdXM6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmRiOmM4
OmZiOmEyOjA0OjZhOjcxOjg1OmFiOmM1OmRlOjNlOmU5OjIzOgotICAgICAgICAgICAgICAgICAg
ICBhODozZTowMzo0ODowMjplMDoxNDpjYjo0ZTphMzowZTo2YzphNDo5Mzo5MToKLSAgICAgICAg
ICAgICAgICAgICAgMDU6YWM6OGU6YWQ6NDY6Mzk6ZGQ6OGI6MDM6NTk6NzA6NGM6ZjI6Y2U6NmY6
Ci0gICAgICAgICAgICAgICAgICAgIDBhOmVmOjg0Ojg1OjA1OmNkOmJjOjI4OjIxOmIzOmIwOmEw
OmYzOjFlOjMyOgotICAgICAgICAgICAgICAgICAgICA0ODplYzpiMDo1MDo4NzoxYjo3MTo0Yzo4
Zjo5ZTo5YzoyYToyMDoxMDpkODoKLSAgICAgICAgICAgICAgICAgICAgMzE6NDg6ZTk6ZDI6Yjk6
M2U6MzE6OTQ6NTQ6ZDQ6OTE6YzY6NGY6YzU6ZTA6Ci0gICAgICAgICAgICAgICAgICAgIDc4Ojc2
OjY3OjFmOjQzOjRjOjQzOjY1OmZjOjQ2OmZmOjcxOjE0OmY2OmNhOgotICAgICAgICAgICAgICAg
ICAgICBlYjpiZTo1YjpkMTpjMjpiYjpmMDo1Njo3ZDpiNTpiMDo5NzowYzowZDplNjoKLSAgICAg
ICAgICAgICAgICAgICAgZmM6NzI6OWQ6ZTA6YTg6ODc6OTc6MDE6MDc6Zjg6ZGQ6ZDQ6YTQ6Y2U6
NDY6Ci0gICAgICAgICAgICAgICAgICAgIDBiOjk4OmE2OmU2OmFkOjFkOmJmOjM5OjAwOjNlOjQx
OjQ2OjE2OjBiOjVmOgotICAgICAgICAgICAgICAgICAgICAwMTpjNTplZjoyNTo0NzozNTo1Yzo0
Nzo3YTplMTphNToyYjo3ZDo3MjpiOToKLSAgICAgICAgICAgICAgICAgICAgODA6ODc6MzQ6YWI6
YzE6MWM6Mzg6MTk6MTc6OTQ6ZTk6ZjA6NWE6OGE6NWU6Ci0gICAgICAgICAgICAgICAgICAgIDc1
OjU0OmY4OmY5OjRhOjVjOjI0Ojk0OmU3OmFkOjM2OjczOjY1OjM5OmM0OgotICAgICAgICAgICAg
ICAgICAgICA3MjowNTpiYzphNDpmMjo4OTo5OTo0Yzo3MTo4NTpjZDo0OTo0YTo3NDo5NToKLSAg
ICAgICAgICAgICAgICAgICAgYzM6NzA6ZmU6MjQ6ZDI6NTY6ZGI6MGY6MTM6ODk6MzU6YjI6ZGI6
YmE6YWE6Ci0gICAgICAgICAgICAgICAgICAgIDQ1OjlkOjRmOmIxOmZmOmI5OjRmOjg2OjUwOjFm
OjlhOjJlOmEzOmJlOmIyOgotICAgICAgICAgICAgICAgICAgICBmMDozZjpiMzpkMTo4Njo1Zjpj
MTpkOTo4MjpkZjphYjpiZDoyMTo0NDpmMjoKLSAgICAgICAgICAgICAgICAgICAgNTI6MDkKLSAg
ICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBl
eHRlbnNpb25zOgotICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKLSAgICAg
ICAgICAgICAgICBDQTpGQUxTRQotICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50
aWZpZXI6IAotICAgICAgICAgICAgICAgIDc5Ojk2OkUxOjk2OkYzOjdDOjQxOjJCOjNCOjlGOjFC
OjBEOkQ2OkE5OkI4OkI3OjRGOkU2OjYxOjVDCi0gICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5
IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlpZDpGNjpCOTpEQToxNjowNzow
NTpCQjo2RjpDOTo2MzozMDpDNjo2Nzo0MDpDQjowMzpEMzoxRTo5MDpFQwotCi0gICAgICAgICAg
ICBYNTA5djMgS2V5IFVzYWdlOiAKLSAgICAgICAgICAgICAgICBEaWdpdGFsIFNpZ25hdHVyZSwg
Tm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50Ci0gICAgICAgICAgICBYNTA5djMgRXh0
ZW5kZWQgS2V5IFVzYWdlOiAKLSAgICAgICAgICAgICAgICBUTFMgV2ViIFNlcnZlciBBdXRoZW50
aWNhdGlvbgotICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgQWx0ZXJuYXRpdmUgTmFtZTogCi0g
ICAgICAgICAgICAgICAgRE5TOndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4LndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5LndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6bm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3AyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
d3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4
OC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg1
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjYu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNC53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc5Lndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTkud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDM5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2MC53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI4LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTQud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDY5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0MC53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNzQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMxLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3AxOC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzMud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDc3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMi53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNTQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYzLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTUud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDE2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNi53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMjcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI5LndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A5NC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDQud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDMzLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4NC53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wMzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYxLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A3MC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDQzLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3OC53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wMjYud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc2LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A1Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTkud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDg2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0Ni53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMTcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A5My53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDU1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
NTEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ1LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4
MC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ5
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Ny53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzUu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5Mi53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDEzLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjQud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDk3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNy53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTYud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYyLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A4Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjUud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDExLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1MC53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wMzgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgzLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A4MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjAud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDIxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMy53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wNDIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIyLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A2NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTYud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDg3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxOS53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNTMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMwLndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A0OC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzQud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDUubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxLm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wMzYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1My5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDUwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjQubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk1
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDczLm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wMTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDgxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzAubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDQwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A2NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3Mi53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wODAubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Mi5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDY4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDUu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDcyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTAubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A4OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ5Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNzcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3OS5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDM5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDQubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU4Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wMTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wNjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDI5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTgubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A2NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI2Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5
NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wMzMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMy5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDU3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTQubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A4NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ2Lm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3AzMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYwLm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wOTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1MS5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDQxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzUubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQy
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3AzNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ4Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Ni5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDg0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzQubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDExLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3MS53d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg2Lm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyMC5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDc2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjcu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDc1Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTUubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A0Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE4Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyOC5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
NjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDkxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzQubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A1OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg4Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wODcubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Ond3dzEud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3Mi53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnd3dzIud3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud3d3MS53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4t
LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3Mi53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3MS5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3MS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIueG4tLWx2
ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzIud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dy5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Ond3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEueG4tLWx2
ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cyLm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEueG4tLW44ajZk
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFo
djI4YS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
d3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQueG4tLWx2ZS02bGFkLm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnhuLS1uOGo2ZHM1M2x3d2tycWh2
MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUz
bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
Ci0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KLSAgICAg
ICAgIDBiOjhiOjU1OjZhOmI0OjY1OmE4OjJhOjNiOmMwOjYyOjBlOjg1OmQ1OmRjOjk5OjlmOjNm
OgotICAgICAgICAgZDA6Yjc6ZmY6Y2I6YjY6Njg6ZTU6YWU6ZDM6YTI6NGU6Yzg6ZDQ6YWE6MzQ6
OTU6ZTQ6OWU6Ci0gICAgICAgICA0YjplNDo3NDplNDpjNDplYzoxMTozMTo2NzplNTphNjpkYTo4
NTo2YjowZjpkNzo2NDpiNzoKLSAgICAgICAgIGU3OmViOmZlOjA5OmI2Ojg4OmUxOjc0OjFkOjBj
OjE1OmEzOjJlOjAxOjAzOmZjOjY3OjljOgotICAgICAgICAgN2M6YmE6ZTY6ZmI6NTI6MWQ6NTg6
Y2Q6Njg6YTM6NTU6OGM6OWI6NTc6YmI6ODk6MzI6MTA6Ci0gICAgICAgICA0MTo3MTo5OTphMzox
YTpkYzoyNToyZDpkMDpiOToxYTphZjplNjo3Njo0MDpkNzpmNToyMzoKLSAgICAgICAgIGE5OmQ4
OjU5OjQ1OjhhOmFiOjUzOjUzOjg3OmNjOjE0OmIzOjg3OmRlOjFkOjAxOjk5OjdhOgotICAgICAg
ICAgNGY6NzI6NDc6Njk6OWM6OTg6NzM6OTQ6Nzk6OTA6MjU6NzA6MDI6ZWM6NzU6YjI6Nzc6MTE6
Ci0gICAgICAgICAyODo5NzpjZDo0MzozZDpkNTo2ODozODo3Mzo3MTpmZDphOTowYjphMjplZDoy
ZDoxYzo2ZToKLSAgICAgICAgIGUxOjA1OmQ0OjMwOmE2OjY0OjA0OjEwOmNhOmU4OmU2OmUwOjdh
OmE5OmY0OjI2Ojk0OjZiOgotICAgICAgICAgYTQ6Mjg6YWE6MGM6ZWI6M2U6ZTA6ZWY6ZDI6YmU6
MGI6NzA6ZTQ6ZGQ6NGM6ZmM6YTI6ODc6Ci0gICAgICAgICAwYzoyNDo4Mzo3MjplMjplNDo2Zjoy
NTphODplZTpjNToxMjo4OTpkOTpkZDo4Zjo4MjoxNDoKLSAgICAgICAgIGMzOmQ2OjA2OmFlOjFk
OmJiOjdiOjNjOmZjOjliOjI3OjU2OjUwOmI0OjI4OjQ0OjYwOjgwOgotICAgICAgICAgMTc6ODc6
MWM6YjE6Y2U6NmQ6Nzc6YjQ6ZDE6MmI6MzI6ZTg6ZDA6YmE6MDY6NmY6NGQ6MDQ6Ci0gICAgICAg
ICBmZjo2MDpmZTplMwotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlndkRDQ0g2U2dB
d0lCQWdJRERnZkVNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1CMHhHekFaQmdOVkJBTU1FbmRsCi1ZaTF3
YkdGMFptOXliUzEwWlhOMGN6QWVGdzB5TURBME1qQXhNVEl3TlRaYUZ3MHpNREEwTVRneE1USXdO
VFphCi1NQnd4R2pBWUJnTlZCQU1NRVhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTUlJQklqQU5CZ2tx
aGtpRzl3MEJBUUVGCi1BQU9DQVE4QU1JSUJDZ0tDQVFFQTI4ajdvZ1JxY1lXcnhkNCs2U09vUGdO
SUF1QVV5MDZqRG15a2s1RUZySTZ0Ci1Sam5kaXdOWmNFenl6bThLNzRTRkJjMjhLQ0d6c0tEekhq
Skk3TEJRaHh0eFRJK2VuQ29nRU5neFNPblN1VDR4Ci1sRlRVa2NaUHhlQjRkbWNmUTB4RFpmeEcv
M0VVOXNycnZsdlJ3cnZ3Vm4yMXNKY01EZWI4Y3AzZ3FJZVhBUWY0Ci0zZFNremtZTG1LYm1yUjIv
T1FBK1FVWVdDMThCeGU4bFJ6VmNSM3JocFN0OWNybUFoelNyd1J3NEdSZVU2ZkJhCi1pbDUxVlBq
NVNsd2tsT2V0Tm5ObE9jUnlCYnlrOG9tWlRIR0Z6VWxLZEpYRGNQNGswbGJiRHhPSk5iTGJ1cXBG
Ci1uVSt4LzdsUGhsQWZtaTZqdnJMd1A3UFJobC9CMllMZnE3MGhSUEpTQ1FJREFRQUJvNEllQkRD
Q0hnQXdDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVlWmJobHZOOFFTczdueHNOMXFtNHQw
L21ZVnd3SHdZRFZSMGpCQmd3Ci1Gb0FVOXJuYUZnY0Z1Mi9KWXpER1owRExBOU1la093d0N3WURW
UjBQQkFRREFnWGdNQk1HQTFVZEpRUU1NQW9HCi1DQ3NHQVFVRkJ3TUJNSUlkandZRFZSMFJCSUlk
aGpDQ0hZS0NFWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFZ2Ci1jRGd1ZDJWaUxYQnNZWFJtYjNK
dExuUmxjM1NDRlc5d055NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVZiM0E1Ci1MbmRsWWkxd2JH
RjBabTl5YlM1MFpYTjBnaFZ2Y0RRdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ZXNXZkQzEzCi1a
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVZiM0EyTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hWdmNE
TXVkMlZpCi1MWEJzWVhSbWIzSnRMblJsYzNTQ0ZXOXdNaTUzWldJdGNHeGhkR1p2Y20wdWRHVnpk
SUlWYjNBeExuZGxZaTF3Ci1iR0YwWm05eWJTNTBaWE4wZ2hWM2QzY3VkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NGVzl3TlM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE9DNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVdiM0E1T0M1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE5T
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E0T1M1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpk
SUlXYjNBMk5pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EzTWk1M1pXSXRjR3hoCi1kR1p2
Y20wdWRHVnpkSUlXYjNBeU5DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EwTVM1M1pXSXRj
R3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBM09TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E1
TVM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMU9TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSVdiM0F6T1M1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMk1DNTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSVdiM0ExT0M1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBeU9DNTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdkM2QzTVM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlX
YjNBeE5DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EyT1M1M1pXSXRjR3hoCi1kR1p2Y20w
dWRHVnpkSUlXYjNBME1DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EzTkM1M1pXSXRjR3ho
Ci1kR1p2Y20wdWRHVnpkSUlXYjNBek1TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F4T0M1
M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBM015NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJ
SVdiM0EzTnk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBeE1pNTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSVdiM0ExTkM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMk15NTNaV0l0
Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EzTVM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNB
NU5TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F4Tmk1M1pXSXRjR3hoCi1kR1p2Y20wdWRH
VnpkSUlXYjNBek5pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F5Tnk1M1pXSXRjR3hoCi1k
R1p2Y20wdWRHVnpkSUlXYjNBeU9TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E1TkM1M1pX
SXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBME5DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdi
M0F6TXk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE5DNTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSVdiM0F6TWk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMk1TNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVdiM0EzTUM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXZDNkM01p
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EwTXk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpk
SUlXYjNBM09DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F5Tmk1M1pXSXRjR3hoCi1kR1p2
Y20wdWRHVnpkSUlXYjNBM05pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0ExTWk1M1pXSXRj
R3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNU9TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E0
Tmk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBME5pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSVdiM0F4Tnk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNU1DNTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSVdiM0E1TXk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBeE1DNTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0ExTlM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlX
YjNBME55NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0ExTVM1M1pXSXRjR3hoCi1kR1p2Y20w
dWRHVnpkSUlXYjNBME5TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E0TUM1M1pXSXRjR3ho
Ci1kR1p2Y20wdWRHVnpkSUlXYjNBMk9DNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EwT1M1
M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMU55NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJ
SVdiM0F6TlM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMk55NTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSVdiM0E1TWk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBeE5TNTNaV0l0
Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F4TXk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNB
M05TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EyTkM1M1pXSXRjR3hoCi1kR1p2Y20wdWRH
VnpkSUlXYjNBNU55NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F6Tnk1M1pXSXRjR3hoCi1k
R1p2Y20wdWRHVnpkSUlXYjNBMU5pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0EyTWk1M1pX
SXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE1pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdi
M0F5TlM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBeE1TNTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSVdiM0ExTUM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBek9DNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVdiM0E0TXk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE1T
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F5TUM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpk
SUlXYjNBeU1TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F5TXk1M1pXSXRjR3hoCi1kR1p2
Y20wdWRHVnpkSUlXYjNBME1pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F5TWk1M1pXSXRj
R3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMk5TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0E1
Tmk1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBNE55NTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSVdiM0F4T1M1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBMU15NTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSVdiM0F6TUM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUlXYjNBME9DNTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdiM0F6TkM1M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUla
YjNBMkxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaYjNBekxtNXZkQzEzCi1aV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVpiM0F5TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVpiM0Ex
Ci1MbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmQzZDNMbTV2ZEMxM1pXSXRjR3hoZEda
dmNtMHVkR1Z6Ci1kSUlaZDNkM0xuZDNkeTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaYjNBM0xt
NXZkQzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSVpiM0EwTG01dmRDMTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSVpiM0E0TG01dmRDMTNaV0l0Ci1jR3hoZEdadmNtMHVkR1Z6ZElJWmIzQTVMbTV2
ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmIzQXhMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20w
dWRHVnpkSUlhYjNBek5pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCi1HbTl3TlRNdWJt
OTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RVd0xtNXZkQzEzWldJdGNHeGhkR1p2Ci1j
bTB1ZEdWemRJSWFiM0F5TkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbTl3TXpFdWJt
OTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRGsxTG01dmRDMTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSWFiM0E0Ci1NeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0duZDNkekl1
Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1aWE4wZ2hwdmNEY3pMbTV2ZEMxM1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZElJYWIzQXhPUzV1YjNRdGQyVmlMWEJzCi1ZWFJtYjNKdExuUmxjM1NDR205d01q
RXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEZ3hMbTV2Ci1kQzEzWldJdGNHeGhk
R1p2Y20wdWRHVnpkSUlhYjNBM01DNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCi1HbTl3
TnpndWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RRd0xtNXZkQzEzWldJdGNHeGhk
R1p2Ci1jbTB1ZEdWemRJSWFiM0F5TlM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbTl3
TmpVdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhOMGdocDNkM2N1ZDNkM01pNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSWFiM0E0Ci1NQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dt
OXdOVEl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1aWE4wZ2hwdmNEWTRMbTV2ZEMxM1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJYWIzQTBOUzV1YjNRdGQyVmlMWEJzCi1ZWFJtYjNKdExuUmxjM1ND
R205d056RXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEY3lMbTV2Ci1kQzEzWldJ
dGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBNU1DNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1ND
Ci1HbTl3T0RrdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RRNUxtNXZkQzEzWldJ
dGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0EzTnk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMz
U0NHbTl3TnprdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRGd5TG01dmRDMTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFkM2QzCi1MbmQzZHpFdWQyVmlMWEJzWVhSbWIzSnRMblJs
YzNTQ0dtOXdNVEl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1aWE4wZ2hwdmNETTVMbTV2ZEMx
M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQTBOQzV1YjNRdGQyVmlMWEJzCi1ZWFJtYjNKdExu
UmxjM1NDR25kM2R6RXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEVTRMbTV2Ci1k
QzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBeE5DNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExu
UmxjM1NDCi1HbTl3TXpBdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RZeUxtNXZk
QzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0EyTVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NHbTl3T1RJdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjREk1TG01
dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0E1Ci1PQzV1YjNRdGQyVmlMWEJzWVhSbWIz
SnRMblJsYzNTQ0dtOXdOalF1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1aWE4wZ2hwdmNESTJM
bTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQXlNaTV1YjNRdGQyVmlMWEJzCi1ZWFJt
YjNKdExuUmxjM1NDR205d09UUXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNETTRM
bTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBek15NXViM1F0ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDCi1HbTl3TWpNdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RV
M0xtNXZkQzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0ExTkM1dWIzUXRkMlZpTFhCc1lY
Um1iM0p0TG5SbGMzU0NHbTl3T0RVdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhOMGdocHZj
RFEyTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0E1Ci1OeTV1YjNRdGQyVmlMWEJz
WVhSbWIzSnRMblJsYzNTQ0dtOXdNekl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1aWE4wZ2hw
dmNEWXdMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQTVOaTV1YjNRdGQyVmlMWEJz
Ci1ZWFJtYjNKdExuUmxjM1NDR205d05URXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hw
dmNEUXhMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBek5TNXViM1F0ZDJWaUxY
QnNZWFJtYjNKdExuUmxjM1NDCi1HbTl3T1RrdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBn
aHB2Y0RReUxtNXZkQzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0EyTnk1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzU0NHbTl3TXpjdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXliUzUwWlhO
MGdocHZjRFE0TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0ExCi1OUzV1YjNRdGQy
VmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdOVFl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwCi1a
WE4wZ2hwdmNEZzBMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQXpOQzV1YjNRdGQy
VmlMWEJzCi1ZWFJtYjNKdExuUmxjM1NDR205d05qa3VibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBa
WE4wZ2hwdmNERXhMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBNU15NXViM1F0
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCi1HbmQzZHpFdWQzZDNMbmRsWWkxd2JHRjBabTl5YlM1
MFpYTjBnaHB2Y0RnMkxtNXZkQzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0F4TXk1dWIz
UXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbTl3TWpBdWJtOTBMWGRsCi1ZaTF3YkdGMFptOXli
UzUwWlhOMGdocHZjRGMyTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0F5Ci1OeTV1
YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdNVGN1Ym05MExYZGxZaTF3YkdGMFptOXli
UzUwCi1aWE4wZ2hwdmNEYzFMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQXhOUzV1
YjNRdGQyVmlMWEJzCi1ZWFJtYjNKdExuUmxjM1NDR205d05EY3VibTkwTFhkbFlpMXdiR0YwWm05
eWJTNTBaWE4wZ2hwdmNERTRMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBMk15
NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCi1HbTl3TWpndWJtOTBMWGRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBnaHB2Y0RRekxtNXZkQzEzWldJdGNHeGhkR1p2Ci1jbTB1ZEdWemRJSWFiM0Ey
Tmk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbmQzZHpJdWQzZDNMbmRsCi1ZaTF3YkdG
MFptOXliUzUwWlhOMGdocHZjRGt4TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0Ez
Ci1OQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdOVGt1Ym05MExYZGxZaTF3YkdG
MFptOXliUzUwCi1aWE4wZ2hwdmNEZzRMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIz
QTROeTV1YjNRdGQyVmlMWEJzCi1ZWFJtYjNKdExuUmxjM1NDR205d01UQXVibTkwTFhkbFlpMXdi
R0YwWm05eWJTNTBaWE4wZ2hwdmNERTJMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUli
ZDNkM01TNTNkM2N5TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wCi1naHQzZDNjeUxuZDNkekl1ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDRzNkM2R6SXVkM2QzTVM1M1pXSXRjR3hoCi1kR1p2Y20wdWRH
VnpkSUliZDNkM01TNTNkM2N4TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2gxM2QzY3VkM2QzCi1M
bTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJZWVHNHRMV3gyWlMwMmJHRmtMbmRsWWkxd2JH
RjBabTl5Ci1iUzUwWlhOMGdoNTNkM2N4TG5kM2R5NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxj
M1NDSG5kM2R5NTNkM2N5Ci1MbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJZWQzZDNNaTUz
ZDNjdWJtOTBMWGRsWWkxd2JHRjBabTl5Ci1iUzUwWlhOMGdoNTNkM2N1ZDNkM01TNXViM1F0ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6SXVkM2QzCi1NaTV1YjNRdGQyVmlMWEJzWVhSbWIz
SnRMblJsYzNTQ0gzZDNkekl1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtCi1iM0p0TG5SbGMzU0NI
M2QzZHpFdWQzZDNNUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0gzZDNkekV1Ci1kM2Qz
TWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJbmh1TFMxc2RtVXRObXhoWkM1M2QzY3Vk
MlZpCi1MWEJzWVhSbWIzSnRMblJsYzNTQ0luaHVMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJz
WVhSbWIzSnRMblJsCi1jM1NDSW5kM2R5NTRiaTB0YkhabExUWnNZV1F1ZDJWaUxYQnNZWFJtYjNK
dExuUmxjM1NDSTNkM2R6SXVlRzR0Ci1MV3gyWlMwMmJHRmtMbmRsWWkxd2JHRjBabTl5YlM1MFpY
TjBnaU40YmkwdGJIWmxMVFpzWVdRdWQzZDNNaTUzCi1aV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWpl
RzR0TFd4MlpTMDJiR0ZrTG5kM2R6RXVkMlZpTFhCc1lYUm1iM0p0Ci1MblJsYzNTQ0kzZDNkekV1
ZUc0dExXeDJaUzAyYkdGa0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpWjRiaTB0Ci1iSFpsTFRa
c1lXUXVkM2QzTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSW1kM2QzTG5odUxTMXNkbVV0
Ci1ObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NKM2h1TFMxc2RtVXRObXhoWkM1
M2QzY3hMbTV2Ci1kQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUluZDNkM01pNTRiaTB0YkhabExU
WnNZV1F1Ym05MExYZGxZaTF3Ci1iR0YwWm05eWJTNTBaWE4wZ2lkM2QzY3hMbmh1TFMxc2RtVXRO
bXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0Ci1MblJsYzNTQ0ozaHVMUzFzZG1VdE5teGhaQzUz
ZDNjeUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlwCi1lRzR0TFc0NGFqWmtjelV6Ykhk
M2EzSnhhSFl5T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0szaHVMUzFzCi1kbVV0Tm14aFpD
NTRiaTB0YkhabExUWnNZV1F1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTFhkM2R5NTRiaTB0Ci1i
amhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUl0ZUc0dExX
NDRhalprCi1jelV6YkhkM2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBn
aTE0YmkwdGJqaHFObVJ6Ci1OVE5zZDNkcmNuRm9kakk0WVM1M2QzY3VkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NMbmQzZHpFdWVHNHRMVzQ0Ci1halprY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpTFhC
c1lYUm1iM0p0TG5SbGMzU0NMbmh1TFMxdU9HbzJaSE0xCi1NMngzZDJ0eWNXaDJNamhoTG5kM2R6
SXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmh1TFMxdU9HbzJaSE0xCi1NMngzZDJ0eWNXaDJN
amhoTG5kM2R6RXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmQzZHpJdWVHNHRMVzQ0Ci1halpr
Y3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NMM2h1TFMxc2RtVXRO
bXhoCi1aQzU0YmkwdGJIWmxMVFpzWVdRdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnakYz
ZDNjdWVHNHRMVzQ0Ci1halprY3pVemJIZDNhM0p4YUhZeU9HRXVibTkwTFhkbFlpMXdiR0YwWm05
eWJTNTBaWE4wZ2pGNGJpMHRiamhxCi1ObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTNkM2N1Ym05MExY
ZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqSjRiaTB0Ci1iamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZ
UzUzZDNjeUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUl5Ci1kM2QzTVM1NGJpMHRiamhx
Tm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCi1jM1NDTW5k
M2R6SXVlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxd2JHRjBabTl5
Ci1iUzUwWlhOMGdqSjRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1M2QzY3hMbTV2ZEMx
M1pXSXRjR3hoCi1kR1p2Y20wdWRHVnpkSUkyZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9H
RXVlRzR0TFd4MlpTMDJiR0ZrCi1MbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnalo0YmkwdGJIWmxM
VFpzWVdRdWVHNHRMVzQ0YWpaa2N6VXpiSGQzCi1hM0p4YUhZeU9HRXVkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NPbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyCi1NamhoTG5odUxTMXNkbVV0Tm14
aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDT25odUxTMXNkbVV0Ci1ObXhoWkM1NGJp
MHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCi1j
M1NDUVhodUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxdU9HbzJaSE0xTTJ4M2Qy
dHljV2gyCi1NamhoTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2tWNGJpMHRiamhxTm1Sek5UTnNk
M2RyY25Gb2RqSTRZUzU0Ci1iaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzUXdEUVlKCi1Lb1pJaHZjTkFRRUxCUUFEZ2dFQkFBdUxWV3EwWmFn
cU84QmlEb1hWM0ptZlA5QzMvOHUyYU9XdTA2Sk95TlNxCi1OSlhrbmt2a2RPVEU3QkV4WitXbTJv
VnJEOWRrdCtmci9nbTJpT0YwSFF3Vm95NEJBL3hubkh5NjV2dFNIVmpOCi1hS05Wakp0WHU0a3lF
RUZ4bWFNYTNDVXQwTGthcitaMlFOZjFJNm5ZV1VXS3ExTlRoOHdVczRmZUhRR1plazl5Ci1SMm1j
bUhPVWVaQWxjQUxzZGJKM0VTaVh6VU05MVdnNGMzSDlxUXVpN1MwY2J1RUYxRENtWkFRUXl1am00
SHFwCi05Q2FVYTZRb3FnenJQdUR2MHI0TGNPVGRUUHlpaHd3a2czTGk1RzhscU83RkVvblozWStD
Rk1QV0JxNGR1M3M4Ci0vSnNuVmxDMEtFUmdnQmVISExIT2JYZTAwU3N5Nk5DNkJtOU5CUDlnL3VN
PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NvbmZpZy5qc29u
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWlj
L2NlcnRzL2NvbmZpZy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmE2ZDA1
MjlmYjk0NDljNGJmYjBjOTM1NDZhNzk2MmE1YWJkMjJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy9jb25maWcuanNvbgorKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLXsKLSAgICAicG9ydHMiOiB7Ci0gICAgICAgICJodHRwIjogW10sCi0g
ICAgICAgICJodHRwcyI6IFsiYXV0byJdLAotICAgICAgICAid3MiOiBbXSwKLSAgICAgICAgIndz
cyI6IFtdCi0gICAgfSwKLSAgICAiY2hlY2tfc3ViZG9tYWlucyI6IGZhbHNlLAotICAgICJzc2wi
OiB7Ci0gICAgICAgICJ0eXBlIjogIm9wZW5zc2wiLAotICAgICAgICAib3BlbnNzbCI6IHsKLSAg
ICAgICAgICAgICJkdXJhdGlvbiI6IDM2NTAsCi0gICAgICAgICAgICAiZm9yY2VfcmVnZW5lcmF0
ZSI6IGZhbHNlLAotICAgICAgICAgICAgImJhc2VfcGF0aCI6ICJ0b29scy9jZXJ0cyIKLSAgICAg
ICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzlmYzVhMTlmM2NiOWQ2
NDMzYWU0MzQzNTEzZTg0NDVkZTg0ODg5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3F1aWMvY2VydHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQua2V5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2Nl
cnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9xdWljL2NlcnRzL2NvbmZpZy5qc29uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY29tbWFuZHMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jb21tYW5k
cy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDk2ZjQ4MzZmZjkwZGQyNTM1
NTljMGI2MWYyOWEzY2Q0NjdkZDU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcXVpYy9jb21tYW5kcy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAot
ewotICAic2VydmUtcXVpYy10cmFuc3BvcnQiOiB7Ci0gICAgInBhdGgiOiAic2VydmUucHkiLAot
ICAgICJzY3JpcHQiOiAicnVuIiwKLSAgICAicGFyc2VyIjogImdldF9wYXJzZXIiLAotICAgICJo
ZWxwIjogIlN0YXJ0IHRoZSBRVUlDIHNlcnZlciBmb3IgV2ViVHJhbnNwb3J0IiwKLSAgICAidmly
dHVhbGVudiI6IHRydWUsCi0gICAgInJlcXVpcmVtZW50cyI6IFsKLSAgICAgICJyZXF1aXJlbWVu
dHMudHh0IgotICAgIF0KLSAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3F1aWNfdHJhbnNwb3J0X3NlcnZlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVp
Yy9xdWljX3RyYW5zcG9ydF9zZXJ2ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwNjI2MGU3OTRiZGZjZTE3NzA3YTY5ZTRjZTYyMzNiMWY5NzEyNzQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3F1aWNfdHJhbnNwb3J0X3NlcnZlci5weQor
KysgL2Rldi9udWxsCkBAIC0xLDIwNCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGlv
Ci1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJ1Y3QKLWlt
cG9ydCB1cmxsaWIucGFyc2UKLWltcG9ydCB0cmFjZWJhY2sKLWZyb20gdHlwaW5nIGltcG9ydCBB
bnksIERpY3QsIEl0ZXJhdG9yLCBMaXN0LCBPcHRpb25hbCwgVHVwbGUKLQotZnJvbSBhaW9xdWlj
LmFzeW5jaW8gaW1wb3J0IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wsIHNlcnZlCi1mcm9tIGFpb3F1
aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbgotZnJvbSBhaW9x
dWljLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgRU5EX1NUQVRFUwotZnJvbSBhaW9xdWljLnF1aWMu
ZXZlbnRzIGltcG9ydCBTdHJlYW1EYXRhUmVjZWl2ZWQsIFF1aWNFdmVudAotZnJvbSBhaW9xdWlj
LnRscyBpbXBvcnQgU2Vzc2lvblRpY2tldAotCi1TRVJWRVJfTkFNRSA9ICdhaW9xdWljLXRyYW5z
cG9ydCcKLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi1oYW5kbGVyc19w
YXRoID0gJycKLQotCi1jbGFzcyBFdmVudEhhbmRsZXI6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNvbm5lY3Rpb246IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wsIGdsb2JhbF9kaWN0OiBEaWN0W3N0
ciwgQW55XSk6Ci0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24KLSAgICAgICAg
c2VsZi5nbG9iYWxfZGljdCA9IGdsb2JhbF9kaWN0Ci0KLSAgICBkZWYgaGFuZGxlX2NsaWVudF9p
bmRpY2F0aW9uKAotICAgICAgICAgICAgc2VsZiwKLSAgICAgICAgICAgIG9yaWdpbjogc3RyLAot
ICAgICAgICAgICAgcXVlcnk6IERpY3Rbc3RyLCBzdHJdKSAtPiBOb25lOgotICAgICAgICBuYW1l
ID0gJ2hhbmRsZV9jbGllbnRfaW5kaWNhdGlvbicKLSAgICAgICAgaWYgbmFtZSBpbiBzZWxmLmds
b2JhbF9kaWN0OgotICAgICAgICAgICAgc2VsZi5nbG9iYWxfZGljdFtuYW1lXShzZWxmLmNvbm5l
Y3Rpb24sIG9yaWdpbiwgcXVlcnkpCi0KLSAgICBkZWYgaGFuZGxlX2V2ZW50KHNlbGYsIGV2ZW50
OiBRdWljRXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgIG5hbWUgPSAnaGFuZGxlX2V2ZW50JwotICAg
ICAgICBpZiBuYW1lIGluIHNlbGYuZ2xvYmFsX2RpY3Q6Ci0gICAgICAgICAgICBzZWxmLmdsb2Jh
bF9kaWN0W25hbWVdKHNlbGYuY29ubmVjdGlvbiwgZXZlbnQpCi0KLQotY2xhc3MgUXVpY1RyYW5z
cG9ydFByb3RvY29sKFF1aWNDb25uZWN0aW9uUHJvdG9jb2wpOiAgIyB0eXBlOiBpZ25vcmUKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3M6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gTm9uZToK
LSAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCi0gICAgICAgIHNlbGYu
cGVuZGluZ19ldmVudHM6IExpc3RbUXVpY0V2ZW50XSA9IFtdCi0gICAgICAgIHNlbGYuY2xpZW50
X2luZGljYXRpb25fZmluaXNoZWQgPSBGYWxzZQotICAgICAgICBzZWxmLmNsaWVudF9pbmRpY2F0
aW9uX2RhdGEgPSBiJycKLSAgICAgICAgc2VsZi5oYW5kbGVyOiBPcHRpb25hbFtFdmVudEhhbmRs
ZXJdID0gTm9uZQotCi0gICAgZGVmIHF1aWNfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IFF1
aWNFdmVudCkgLT4gTm9uZToKLSAgICAgICAgcHJlZml4ID0gJyEhJwotICAgICAgICBsb2dnZXIu
aW5mbygnUVVJQyBldmVudDogJXMnLCB0eXBlKGV2ZW50KSkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgaWYgKG5vdCBzZWxmLmNsaWVudF9pbmRpY2F0aW9uX2ZpbmlzaGVkIGFuZAotICAgICAg
ICAgICAgICAgICAgICBpc2luc3RhbmNlKGV2ZW50LCBTdHJlYW1EYXRhUmVjZWl2ZWQpIGFuZAot
ICAgICAgICAgICAgICAgICAgICBldmVudC5zdHJlYW1faWQgPT0gMik6Ci0gICAgICAgICAgICAg
ICAgIyBjbGllbnQgaW5kaWNhdGlvbiBwcm9jZXNzCi0gICAgICAgICAgICAgICAgcHJlZml4ID0g
J0NsaWVudCBpbmRpY2F0aW9uIGVycm9yOiAnCi0gICAgICAgICAgICAgICAgc2VsZi5jbGllbnRf
aW5kaWNhdGlvbl9kYXRhICs9IGV2ZW50LmRhdGEKLSAgICAgICAgICAgICAgICBpZiBsZW4oc2Vs
Zi5jbGllbnRfaW5kaWNhdGlvbl9kYXRhKSA+IDY1NTM1OgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ3RvbyBsYXJnZSBkYXRhIGZvciBjbGllbnQgaW5kaWNhdGlvbicpCi0g
ICAgICAgICAgICAgICAgaWYgZXZlbnQuZW5kX3N0cmVhbToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5wcm9jZXNzX2NsaWVudF9pbmRpY2F0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYuaGFuZGxlciBpcyBub3QgTm9uZQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxm
LmlzX2Nsb3Npbmdfb3JfY2xvc2VkKCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgICAgICAgICAgcHJlZml4ID0gJ0V2ZW50IGhhbmRsaW5nIEVycm9yOiAnCi0g
ICAgICAgICAgICAgICAgICAgIGZvciBlIGluIHNlbGYucGVuZGluZ19ldmVudHM6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZXIuaGFuZGxlX2V2ZW50KGUpCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYucGVuZGluZ19ldmVudHMuY2xlYXIoKQotICAgICAgICAgICAgZWxpZiBu
b3Qgc2VsZi5jbGllbnRfaW5kaWNhdGlvbl9maW5pc2hlZDoKLSAgICAgICAgICAgICAgICBzZWxm
LnBlbmRpbmdfZXZlbnRzLmFwcGVuZChldmVudCkKLSAgICAgICAgICAgIGVsaWYgc2VsZi5oYW5k
bGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHByZWZpeCA9ICdFdmVudCBoYW5kbGlu
ZyBFcnJvcjogJwotICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlci5oYW5kbGVfZXZlbnQoZXZl
bnQpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuaGFu
ZGxlciA9IE5vbmUKLSAgICAgICAgICAgIGxvZ2dlci53YXJuKHByZWZpeCArIHN0cihlKSkKLSAg
ICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQotICAgICAgICAgICAgc2VsZi5jbG9zZSgp
Ci0KLSAgICBkZWYgcGFyc2VfY2xpZW50X2luZGljYXRpb24oc2VsZiwgYnM6IGlvLkJ5dGVzSU8p
IC0+IEl0ZXJhdG9yW1R1cGxlW2ludCwgYnl0ZXNdXToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGtleV9iID0gYnMucmVhZCgyKQotICAgICAgICAgICAgaWYgbGVuKGtleV9iKSA9
PSAwOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgbGVuZ3RoX2IgPSBicy5y
ZWFkKDIpCi0gICAgICAgICAgICBpZiBsZW4oa2V5X2IpICE9IDI6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdmYWlsZWQgdG8gZ2V0ICJLZXkiIGZpZWxkJykKLSAgICAgICAgICAg
IGlmIGxlbihsZW5ndGhfYikgIT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J2ZhaWxlZCB0byBnZXQgIkxlbmd0aCIgZmllbGQnKQotICAgICAgICAgICAga2V5ID0gc3RydWN0
LnVucGFjaygnIUgnLCBrZXlfYilbMF0KLSAgICAgICAgICAgIGxlbmd0aCA9IHN0cnVjdC51bnBh
Y2soJyFIJywgbGVuZ3RoX2IpWzBdCi0gICAgICAgICAgICB2YWx1ZSA9IGJzLnJlYWQobGVuZ3Ro
KQotICAgICAgICAgICAgaWYgbGVuKHZhbHVlKSAhPSBsZW5ndGg6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCd0cnVuY2F0ZWQgIlZhbHVlIiBmaWVsZCcpCi0gICAgICAgICAgICB5
aWVsZCAoa2V5LCB2YWx1ZSkKLQotICAgIGRlZiBwcm9jZXNzX2NsaWVudF9pbmRpY2F0aW9uKHNl
bGYpIC0+IE5vbmU6Ci0gICAgICAgIG9yaWdpbiA9IE5vbmUKLSAgICAgICAgb3JpZ2luX3N0cmlu
ZyA9IE5vbmUKLSAgICAgICAgcGF0aCA9IE5vbmUKLSAgICAgICAgcGF0aF9zdHJpbmcgPSBOb25l
Ci0gICAgICAgIEtFWV9PUklHSU4gPSAwCi0gICAgICAgIEtFWV9QQVRIID0gMQotICAgICAgICBm
b3IgKGtleSwgdmFsdWUpIGluIHNlbGYucGFyc2VfY2xpZW50X2luZGljYXRpb24oCi0gICAgICAg
ICAgICAgICAgaW8uQnl0ZXNJTyhzZWxmLmNsaWVudF9pbmRpY2F0aW9uX2RhdGEpKToKLSAgICAg
ICAgICAgIGlmIGtleSA9PSBLRVlfT1JJR0lOOgotICAgICAgICAgICAgICAgIG9yaWdpbl9zdHJp
bmcgPSB2YWx1ZS5kZWNvZGUoKQotICAgICAgICAgICAgICAgIG9yaWdpbiA9IHVybGxpYi5wYXJz
ZS51cmxwYXJzZShvcmlnaW5fc3RyaW5nKQotICAgICAgICAgICAgZWxpZiBrZXkgPT0gS0VZX1BB
VEg6Ci0gICAgICAgICAgICAgICAgcGF0aF9zdHJpbmcgPSB2YWx1ZS5kZWNvZGUoKQotICAgICAg
ICAgICAgICAgIHBhdGggPSB1cmxsaWIucGFyc2UudXJscGFyc2UocGF0aF9zdHJpbmcpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgV2UgbXVzdCBpZ25vcmUgdW5yZWNvZ25p
emVkIGZpZWxkcy4KLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgIGxvZ2dlci5pbmZvKCdv
cmlnaW4gPSAlcywgcGF0aCA9ICVzJywgb3JpZ2luX3N0cmluZywgcGF0aF9zdHJpbmcpCi0gICAg
ICAgIGlmIG9yaWdpbiBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBv
cmlnaW4gaXMgZ2l2ZW4nKQotICAgICAgICBhc3NlcnQgb3JpZ2luX3N0cmluZyBpcyBub3QgTm9u
ZQotICAgICAgICBpZiBwYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J05vIHBhdGggaXMgZ2l2ZW4nKQotICAgICAgICBhc3NlcnQgcGF0aF9zdHJpbmcgaXMgbm90IE5v
bmUKLSAgICAgICAgaWYgb3JpZ2luLnNjaGVtZSAhPSAnaHR0cHMnIGFuZCBvcmlnaW4uc2NoZW1l
ICE9ICdodHRwJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBvcmlnaW46
ICVzJyAlIG9yaWdpbl9zdHJpbmcpCi0gICAgICAgIGlmIG9yaWdpbi5uZXRsb2MgPT0gJyc6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgb3JpZ2luOiAlcycgJSBvcmlnaW5f
c3RyaW5nKQotCi0gICAgICAgICMgVG8gbWFrZSB0aGUgc2l0dWF0aW9uIHNpbXBsZSB3ZSBhY2Nl
cHQgb25seSBzaW1wbGUgcGF0aCBzdHJpbmdzLgotICAgICAgICBtID0gcmUuY29tcGlsZShyJ14v
KFthLXpBLVowLTlcLl9cLV0rKSQnKS5tYXRjaChwYXRoLnBhdGgpCi0gICAgICAgIGlmIG0gaXMg
Tm9uZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBwYXRoOiAlcycgJSBw
YXRoX3N0cmluZykKLQotICAgICAgICBoYW5kbGVyX25hbWUgPSBtLmdyb3VwKDEpCi0gICAgICAg
IHF1ZXJ5ID0gZGljdCh1cmxsaWIucGFyc2UucGFyc2VfcXNsKHBhdGgucXVlcnkpKQotICAgICAg
ICBzZWxmLmhhbmRsZXIgPSBzZWxmLmNyZWF0ZV9ldmVudF9oYW5kbGVyKGhhbmRsZXJfbmFtZSkK
LSAgICAgICAgc2VsZi5oYW5kbGVyLmhhbmRsZV9jbGllbnRfaW5kaWNhdGlvbihvcmlnaW5fc3Ry
aW5nLCBxdWVyeSkKLSAgICAgICAgaWYgc2VsZi5pc19jbG9zaW5nX29yX2Nsb3NlZCgpOgotICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuY2xpZW50X2luZGljYXRpb25fZmluaXNoZWQg
PSBUcnVlCi0gICAgICAgIGxvZ2dlci5pbmZvKCdDbGllbnQgaW5kaWNhdGlvbiBmaW5pc2hlZCcp
Ci0KLSAgICBkZWYgY3JlYXRlX2V2ZW50X2hhbmRsZXIoc2VsZiwgaGFuZGxlcl9uYW1lOiBzdHIp
IC0+IEV2ZW50SGFuZGxlcjoKLSAgICAgICAgZ2xvYmFsX2RpY3Q6IERpY3Rbc3RyLCBBbnldID0g
e30KLSAgICAgICAgd2l0aCBvcGVuKGhhbmRsZXJzX3BhdGggKyAnLycgKyBoYW5kbGVyX25hbWUp
IGFzIGY6Ci0gICAgICAgICAgICBleGVjKGYucmVhZCgpLCBnbG9iYWxfZGljdCkKLSAgICAgICAg
cmV0dXJuIEV2ZW50SGFuZGxlcihzZWxmLCBnbG9iYWxfZGljdCkKLQotICAgIGRlZiBpc19jbG9z
aW5nX29yX2Nsb3NlZChzZWxmKSAtPiBib29sOgotICAgICAgICBpZiBzZWxmLl9xdWljLl9jbG9z
ZV9wZW5kaW5nOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgaWYgc2VsZi5fcXVp
Yy5fc3RhdGUgaW4gRU5EX1NUQVRFUzoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAg
IHJldHVybiBGYWxzZQotCi0KLWNsYXNzIFNlc3Npb25UaWNrZXRTdG9yZToKLSAgICAnJycKLSAg
ICBTaW1wbGUgaW4tbWVtb3J5IHN0b3JlIGZvciBzZXNzaW9uIHRpY2tldHMuCi0gICAgJycnCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzOiBE
aWN0W2J5dGVzLCBTZXNzaW9uVGlja2V0XSA9IHt9Ci0KLSAgICBkZWYgYWRkKHNlbGYsIHRpY2tl
dDogU2Vzc2lvblRpY2tldCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzW3RpY2tldC50
aWNrZXRdID0gdGlja2V0Ci0KLSAgICBkZWYgcG9wKHNlbGYsIGxhYmVsOiBieXRlcykgLT4gT3B0
aW9uYWxbU2Vzc2lvblRpY2tldF06Ci0gICAgICAgIHJldHVybiBzZWxmLnRpY2tldHMucG9wKGxh
YmVsLCBOb25lKQotCi0KLWRlZiBzdGFydCgqKmt3YXJnczogQW55KSAtPiBOb25lOgotICAgIGNv
bmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgYWxwbl9wcm90b2NvbHM9
Wyd3cS12dnYtMDEnXSArIFsnc2lkdWNrJ10sCi0gICAgICAgIGlzX2NsaWVudD1GYWxzZSwKLSAg
ICAgICAgbWF4X2RhdGFncmFtX2ZyYW1lX3NpemU9NjU1MzYsCi0gICAgKQotCi0gICAgZ2xvYmFs
IGhhbmRsZXJzX3BhdGgKLSAgICBoYW5kbGVyc19wYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguZXhwYW5kdXNlcigKLSAgICAgICAga3dhcmdzWydoYW5kbGVyc19wYXRoJ10pKQotICAgIGxv
Z2dlci5pbmZvKCdwb3J0ID0gJXMnLCBrd2FyZ3NbJ3BvcnQnXSkKLSAgICBsb2dnZXIuaW5mbygn
aGFuZGxlcnMgcGF0aCA9ICVzJywgaGFuZGxlcnNfcGF0aCkKLQotICAgICMgbG9hZCBTU0wgY2Vy
dGlmaWNhdGUgYW5kIGtleQotICAgIGNvbmZpZ3VyYXRpb24ubG9hZF9jZXJ0X2NoYWluKGt3YXJn
c1snY2VydGlmaWNhdGUnXSwga3dhcmdzWydwcml2YXRlX2tleSddKQotCi0gICAgdGlja2V0X3N0
b3JlID0gU2Vzc2lvblRpY2tldFN0b3JlKCkKLQotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVu
dF9sb29wKCkKLSAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgKLSAgICAgICAgc2VydmUoCi0g
ICAgICAgICAgICBrd2FyZ3NbJ2hvc3QnXSwKLSAgICAgICAgICAgIGt3YXJnc1sncG9ydCddLAot
ICAgICAgICAgICAgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgY3Jl
YXRlX3Byb3RvY29sPVF1aWNUcmFuc3BvcnRQcm90b2NvbCwKLSAgICAgICAgICAgIHNlc3Npb25f
dGlja2V0X2ZldGNoZXI9dGlja2V0X3N0b3JlLnBvcCwKLSAgICAgICAgICAgIHNlc3Npb25fdGlj
a2V0X2hhbmRsZXI9dGlja2V0X3N0b3JlLmFkZCwKLSAgICAgICAgKQotICAgICkKLSAgICB0cnk6
Ci0gICAgICAgIGxvb3AucnVuX2ZvcmV2ZXIoKQotICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVw
dDoKLSAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvcmVxdWlyZW1lbnRz
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjViNjRjYjkwOWRiM2IzZDE5NmQy
YjYzZjBhNGYxZTM5ZmUwYjVlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvcmVxdWlyZW1lbnRzLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWFp
b3F1aWM9PTAuOS4xMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3NlcnZlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3NlcnZlLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmOWFlNzViYzRlODJjNTA0NzVhZWZkODFkNDE3ODExNjMxMTdkY2Jk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9zZXJ2ZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbjMKLQot
aW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1m
cm9tIHR5cGluZyBpbXBvcnQgQW55Ci0KLV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
Ci0KLQotZGVmIGdldF9wYXJzZXIoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcjoKLSAgICBw
YXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nUVVJQyBzZXJ2ZXIn
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICctYycsCi0gICAgICAgICctLWNl
cnRpZmljYXRlJywKLSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIGRlZmF1bHQ9b3MucGF0aC5q
b2luKF9kaXIsICdjZXJ0cycsICdjZXJ0LnBlbScpLAotICAgICAgICBoZWxwPSdsb2FkIHRoZSBU
TFMgY2VydGlmaWNhdGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUnLAotICAgICkKLSAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAnLS1ob3N0JywKLSAgICAgICAgdHlwZT1zdHIsCi0g
ICAgICAgIGRlZmF1bHQ9Jzo6JywKLSAgICAgICAgaGVscD0nbGlzdGVuIG9uIHRoZSBzcGVjaWZp
ZWQgYWRkcmVzcyAoZGVmYXVsdHMgdG8gOjopJywKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgKLSAgICAgICAgJy0tcG9ydCcsCi0gICAgICAgIHR5cGU9aW50LAotICAgICAgICBkZWZh
dWx0PTQ0MzMsCi0gICAgICAgIGhlbHA9J2xpc3RlbiBvbiB0aGUgc3BlY2lmaWVkIHBvcnQgKGRl
ZmF1bHRzIHRvIDQ0MzMpJywKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAg
ICAgJy1rJywKLSAgICAgICAgJy0tcHJpdmF0ZS1rZXknLAotICAgICAgICB0eXBlPXN0ciwKLSAg
ICAgICAgZGVmYXVsdD1vcy5wYXRoLmpvaW4oX2RpciwgJ2NlcnRzJywgJ2NlcnQua2V5JyksCi0g
ICAgICAgIGhlbHA9J2xvYWQgdGhlIFRMUyBwcml2YXRlIGtleSBmcm9tIHRoZSBzcGVjaWZpZWQg
ZmlsZScsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICctLWhhbmRs
ZXJzLXBhdGgnLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgZGVmYXVsdD1vcy5wYXRoLmpv
aW4oCi0gICAgICAgICAgICBfZGlyLCAnLi4nLCAnLi4nLCAnd2VidHJhbnNwb3J0JywgJ3F1aWMn
LCAnaGFuZGxlcnMnKSwKLSAgICAgICAgaGVscD0ndGhlIGRpcmVjdG9yeSBwYXRoIG9mIFF1aWNU
cmFuc3BvcnQgZXZlbnQgaGFuZGxlcnMnLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAotICAgICAgICAnLXYnLAotICAgICAgICAnLS12ZXJib3NlJywKLSAgICAgICAgYWN0aW9uPSdz
dG9yZV90cnVlJywKLSAgICAgICAgaGVscD0naW5jcmVhc2UgbG9nZ2luZyB2ZXJib3NpdHknCi0g
ICAgKQotICAgIHJldHVybiBwYXJzZXIKLQotCi1kZWYgcnVuKHZlbnY6IEFueSwgKiprd2FyZ3M6
IEFueSkgLT4gTm9uZToKLSAgICAjIFRoZSB2ZW52IGFyZ3VtZW50IGlzIHBhc3NlZCB3aXRoIGB3
cHQgc2VydmUtcXVpYy10cmFuc3BvcnRgIGJ1dCBpcyB1bnVzZWQuCi0gICAgYXNzZXJ0IHN5cy52
ZXJzaW9uX2luZm8ubWFqb3IgPT0gMywgJ1FVSUMgc2VydmVyIG9ubHkgcnVucyBpbiBQeXRob24g
MycKLSAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKAotICAgICAgICBmb3JtYXQ9JyUoYXNjdGltZSlz
ICUobGV2ZWxuYW1lKXMgJShuYW1lKXMgJShtZXNzYWdlKXMnLAotICAgICAgICBsZXZlbD1sb2dn
aW5nLkRFQlVHIGlmIGt3YXJncy5nZXQoJ3ZlcmJvc2UnKSBlbHNlIGxvZ2dpbmcuSU5GTywKLSAg
ICApCi0KLSAgICAjIERlbGF5IGltcG9ydCBhZnRlciB2ZXJzaW9uIGNoZWNrIHRvIG1ha2UgdGhl
IGVycm9yIGVhc2llciB0byB1bmRlcnN0YW5kLgotICAgIGZyb20gLnF1aWNfdHJhbnNwb3J0X3Nl
cnZlciBpbXBvcnQgc3RhcnQKLSAgICBzdGFydCgqKmt3YXJncykKLQotCi1kZWYgbWFpbigpIC0+
IE5vbmU6Ci0gICAgIyBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIGV4ZWN1dGluZyB0aGUgc2NyaXB0
IGRpcmVjdGx5LiBVc2VycyBhcmUKLSAgICAjIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB2ZW52
IHRoZW1zZWx2ZXMuIGB3cHQgc2VydmUtcXVpYy10cmFuc3BvcnRgIGRvZXMKLSAgICAjIE5PVCB1
c2UgdGhpcyBjb2RlIHBhdGguCi0gICAga3dhcmdzID0gdmFycyhnZXRfcGFyc2VyKCkucGFyc2Vf
YXJncygpKQotICAgIHJ1bihOb25lLCAqKmt3YXJncykKLQotCi1pZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgotICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2Q1NDU5ZTE1MWYyZTQyOTM5ZGU5
OTU3YjUxNTMzYWJhNmEwZGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcXVpYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cXVpYy9SRUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3F1aWMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY29tbWFuZHMuanNvbgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9xdWljX3RyYW5zcG9ydF9z
ZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvcmVxdWlyZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9zZXJ2ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfcHl0
ZXN0LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKaW5kZXggNDJlYjQ1NzM5MTQ4YjkzOGYxZjllNDhm
ODM5YTE5MmFmYzlkN2NiMC4uN2MwY2NhYjYzNTEwMTI2YWI5MmMxYjRkYWFhY2FhMjY4ZmQ4NjIz
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19weXRlc3QudHh0CkBA
IC0xLDMgKzEsMyBAQAogcHl0ZXN0PT02LjIuNQotcHl0ZXN0LWNvdj09Mi4xMi4xCi1oeXBvdGhl
c2lzPT02LjIzLjEKK3B5dGVzdC1jb3Y9PTMuMC4wCitoeXBvdGhlc2lzPT02LjMxLjMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cmVxdWlyZW1lbnRzX3Rlc3RzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX3Rlc3RzLnR4dAppbmRleCAyODBmMzk1N2Y3
ZWU3NDE3NzkwZWRhYmY2ZDJlZWI3MWVmOTJiZGM4Li4wNGUxMWViMTBlOGQxZWE1YjBhMmYwNzJi
M2RkYmZiMDExYjliMWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c190ZXN0cy50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNf
dGVzdHMudHh0CkBAIC0xLDUgKzEsNSBAQAotanNvbi1lPT00LjQuMQoranNvbi1lPT00LjQuMwog
anNvbnNjaGVtYT09My4yLjAKIHB5eWFtbD09NS40LjEKLXJlcXVlc3RzPT0yLjI2LjAKK3JlcXVl
c3RzPT0yLjI3LjEKIHRhc2tjbHVzdGVyPT00NC4yLjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL2Nzcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggY2EwYzE4MTUyZGQ0MjkxMjhlMjEyNTQxM2YyYWI4YjcyYWMyMWQ2Zi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLXRoZW1l
Lm1pbi5jc3MKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLm1pbi5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9ydW5uZXIvZm9udHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDRkYWYyNzIxM2JjNjM4MmNiYmNhYzg5Mzc0NWM4NmY1YmIzZTU3MjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGlj
b25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJl
Z3VsYXIuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250
cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLndvZmYKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0
NGIyYTU3NTFjM2Y5OGU0NzQwNmM3ZThjZjg4OGZlY2Q3Y2EwNzYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LmNzcwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3Jl
cG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL3J1bm5lci5jc3MKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci91cGRhdGVfbWFuaWZlc3QucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2NyaXB0cy9pZDJwYXRoLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM5YjhkNjQ0YmM1MzNiZDQ4MDRlOWE0Nzg0OWQ3ZjgwYzQ2ZGVjYTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0KLXZhciBmcyA9IHJlcXVpcmUoImZzIikKLSwg
ICBwdGggPSByZXF1aXJlKCJwYXRoIikKLSwgICBpZCA9IHByb2Nlc3MuYXJndlsyXQotOwotCi1p
ZiAoIWlkKSB7Ci0gICAgY29uc29sZS5sb2coIk1pc3NpbmcgSUQiKTsKLSAgICBwcm9jZXNzLmV4
aXQoMSk7Ci19Ci0KLWNvbnNvbGUubG9nKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHB0aC5q
b2luKF9fZGlybmFtZSwgImlkMnBhdGguanNvbiIpLCAidXRmOCIpKVtpZF0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3Jp
cHRzL2lkMnBhdGguanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJwYXRoLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQ5MWJkODY5NGM1N2VjOGIzZGU2YjhiMjE3ZTQwMDAyM2U3ODVhNGMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanNvbgorKysg
L2Rldi9udWxsCkBAIC0xLDgyMiArMCwwIEBACi17Ci0gICAgImludHJvZHVjdGlvbiI6ICJtaWNy
b2RhdGEvaW50cm9kdWN0aW9uIiwKLSAgICAiYmFja2dyb3VuZCI6ICJodG1sL2ludHJvZHVjdGlv
bi9iYWNrZ3JvdW5kIiwKLSAgICAiYXVkaWVuY2UiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYXVkaWVu
Y2UiLAotICAgICJzY29wZSI6ICJodG1sL2ludHJvZHVjdGlvbi9zY29wZSIsCi0gICAgImhpc3Rv
cnktMCI6ICJodG1sL2ludHJvZHVjdGlvbi9oaXN0b3J5LTAiLAotICAgICJkZXNpZ24tbm90ZXMi
OiAiaHRtbC9pbnRyb2R1Y3Rpb24vZGVzaWduLW5vdGVzIiwKLSAgICAic2VyaWFsaXphYmlsaXR5
LW9mLXNjcmlwdC1leGVjdXRpb24iOiAiaHRtbC9pbnRyb2R1Y3Rpb24vZGVzaWduLW5vdGVzL3Nl
cmlhbGl6YWJpbGl0eS1vZi1zY3JpcHQtZXhlY3V0aW9uIiwKLSAgICAiY29tcGxpYW5jZS13aXRo
LW90aGVyLXNwZWNpZmljYXRpb25zIjogImh0bWwvaW50cm9kdWN0aW9uL2Rlc2lnbi1ub3Rlcy9j
b21wbGlhbmNlLXdpdGgtb3RoZXItc3BlY2lmaWNhdGlvbnMiLAotICAgICJodG1sLXZzLXhodG1s
IjogImh0bWwvaW50cm9kdWN0aW9uL2h0bWwtdnMteGh0bWwiLAotICAgICJzdHJ1Y3R1cmUtb2Yt
dGhpcy1zcGVjaWZpY2F0aW9uIjogImh0bWwvaW50cm9kdWN0aW9uL3N0cnVjdHVyZS1vZi10aGlz
LXNwZWNpZmljYXRpb24iLAotICAgICJob3ctdG8tcmVhZC10aGlzLXNwZWNpZmljYXRpb24iOiAi
aHRtbC9pbnRyb2R1Y3Rpb24vc3RydWN0dXJlLW9mLXRoaXMtc3BlY2lmaWNhdGlvbi9ob3ctdG8t
cmVhZC10aGlzLXNwZWNpZmljYXRpb24iLAotICAgICJ0eXBvZ3JhcGhpYy1jb252ZW50aW9ucyI6
ICJodG1sL2ludHJvZHVjdGlvbi9zdHJ1Y3R1cmUtb2YtdGhpcy1zcGVjaWZpY2F0aW9uL3R5cG9n
cmFwaGljLWNvbnZlbnRpb25zIiwKLSAgICAiZmluZ2VycHJpbnQiOiAiaHRtbC9pbnRyb2R1Y3Rp
b24vZmluZ2VycHJpbnQiLAotICAgICJhLXF1aWNrLWludHJvZHVjdGlvbi10by1odG1sIjogImh0
bWwvaW50cm9kdWN0aW9uL2EtcXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwiLAotICAgICJ3cml0
aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIjogImh0bWwvaW50cm9kdWN0aW9uL2Et
cXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwvd3JpdGluZy1zZWN1cmUtYXBwbGljYXRpb25zLXdp
dGgtaHRtbCIsCi0gICAgImNvbW1vbi1waXRmYWxscy10by1hdm9pZC13aGVuLXVzaW5nLXRoZS1z
Y3JpcHRpbmctYXBpcyI6ICJodG1sL2ludHJvZHVjdGlvbi9hLXF1aWNrLWludHJvZHVjdGlvbi10
by1odG1sL2NvbW1vbi1waXRmYWxscy10by1hdm9pZC13aGVuLXVzaW5nLXRoZS1zY3JpcHRpbmct
YXBpcyIsCi0gICAgImNvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy1mb3ItYXV0aG9ycyI6ICJodG1s
L2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMiLAotICAg
ICJwcmVzZW50YXRpb25hbC1tYXJrdXAiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vY29uZm9ybWFuY2Ut
cmVxdWlyZW1lbnRzLWZvci1hdXRob3JzL3ByZXNlbnRhdGlvbmFsLW1hcmt1cCIsCi0gICAgInN5
bnRheC1lcnJvcnMiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vY29uZm9ybWFuY2UtcmVxdWlyZW1lbnRz
LWZvci1hdXRob3JzL3N5bnRheC1lcnJvcnMiLAotICAgICJyZXN0cmljdGlvbnMtb24tY29udGVu
dC1tb2RlbHMtYW5kLW9uLWF0dHJpYnV0ZS12YWx1ZXMiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vY29u
Zm9ybWFuY2UtcmVxdWlyZW1lbnRzLWZvci1hdXRob3JzL3Jlc3RyaWN0aW9ucy1vbi1jb250ZW50
LW1vZGVscy1hbmQtb24tYXR0cmlidXRlLXZhbHVlcyIsCi0gICAgInN1Z2dlc3RlZC1yZWFkaW5n
IjogImh0bWwvaW50cm9kdWN0aW9uL3N1Z2dlc3RlZC1yZWFkaW5nIiwKLSAgICAiaW5mcmFzdHJ1
Y3R1cmUiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZSIsCi0gICAgInRlcm1pbm9sb2d5IjogIm1pY3Jv
ZGF0YS90ZXJtaW5vbG9neSIsCi0gICAgInJlc291cmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJl
L3Rlcm1pbm9sb2d5L3Jlc291cmNlcyIsCi0gICAgInhtbCI6ICJodG1sL2luZnJhc3RydWN0dXJl
L3Rlcm1pbm9sb2d5L3htbCIsCi0gICAgImRvbS10cmVlcyI6ICJodG1sL2luZnJhc3RydWN0dXJl
L3Rlcm1pbm9sb2d5L2RvbS10cmVlcyIsCi0gICAgInNjcmlwdGluZy0wIjogImh0bWwvaW5mcmFz
dHJ1Y3R1cmUvdGVybWlub2xvZ3kvc2NyaXB0aW5nLTAiLAotICAgICJwbHVnaW5zIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvcGx1Z2lucyIsCi0gICAgImNoYXJhY3Rlci1lbmNv
ZGluZ3MiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9neS9jaGFyYWN0ZXItZW5jb2Rp
bmdzIiwKLSAgICAiY29uZm9ybWFuY2UtcmVxdWlyZW1lbnRzIjogIm1pY3JvZGF0YS9jb25mb3Jt
YW5jZS1yZXF1aXJlbWVudHMiLAotICAgICJjb25mb3JtYW5jZS1jbGFzc2VzIjogImh0bWwvaW5m
cmFzdHJ1Y3R1cmUvY29uZm9ybWFuY2UtcmVxdWlyZW1lbnRzL2NvbmZvcm1hbmNlLWNsYXNzZXMi
LAotICAgICJkZXBlbmRlbmNpZXMiOiAibWljcm9kYXRhL2RlcGVuZGVuY2llcyIsCi0gICAgImV4
dGVuc2liaWxpdHkiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb25mb3JtYW5jZS1yZXF1aXJlbWVu
dHMvZXh0ZW5zaWJpbGl0eSIsCi0gICAgImNhc2Utc2Vuc2l0aXZpdHktYW5kLXN0cmluZy1jb21w
YXJpc29uIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY2FzZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5n
LWNvbXBhcmlzb24iLAotICAgICJ1dGYtOCI6ICJodG1sL2luZnJhc3RydWN0dXJlL3V0Zi04IiwK
LSAgICAiY29tbW9uLW1pY3Jvc3ludGF4ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24t
bWljcm9zeW50YXhlcyIsCi0gICAgImNvbW1vbi1wYXJzZXItaWRpb21zIjogImh0bWwvaW5mcmFz
dHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvY29tbW9uLXBhcnNlci1pZGlvbXMiLAotICAg
ICJib29sZWFuLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9z
eW50YXhlcy9ib29sZWFuLWF0dHJpYnV0ZXMiLAotICAgICJrZXl3b3Jkcy1hbmQtZW51bWVyYXRl
ZC1hdHRyaWJ1dGVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMv
a2V5d29yZHMtYW5kLWVudW1lcmF0ZWQtYXR0cmlidXRlcyIsCi0gICAgIm51bWJlcnMiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKLSAgICAic2ln
bmVkLWludGVnZXJzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMv
bnVtYmVycyIsCi0gICAgIm5vbi1uZWdhdGl2ZS1pbnRlZ2VycyI6ICJodG1sL2luZnJhc3RydWN0
dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL251bWJlcnMiLAotICAgICJmbG9hdGluZy1wb2ludC1u
dW1iZXJzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvbnVtYmVy
cyIsCi0gICAgInBlcmNlbnRhZ2VzLWFuZC1kaW1lbnNpb25zIjogImh0bWwvaW5mcmFzdHJ1Y3R1
cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvbnVtYmVycyIsCi0gICAgImxpc3RzLW9mLWludGVnZXJz
IjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvbnVtYmVycyIsCi0g
ICAgImxpc3RzLW9mLWRpbWVuc2lvbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWlj
cm9zeW50YXhlcy9udW1iZXJzIiwKLSAgICAiZGF0ZXMtYW5kLXRpbWVzIjogImh0bWwvaW5mcmFz
dHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKLSAgICAibW9u
dGhzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5k
LXRpbWVzIiwKLSAgICAiZGF0ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9z
eW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJ5ZWFybGVzcy1kYXRlcyI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCi0gICAg
InRpbWVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMt
YW5kLXRpbWVzIiwKLSAgICAibG9jYWwtZGF0ZXMtYW5kLXRpbWVzIjogImh0bWwvaW5mcmFzdHJ1
Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKLSAgICAidGltZS16
b25lcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFu
ZC10aW1lcyIsCi0gICAgImdsb2JhbC1kYXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJ3ZWVrcyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1l
cyIsCi0gICAgImR1cmF0aW9ucyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5
bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCi0gICAgInZhZ3Vlci1tb21lbnRzLWluLXRpbWUiOiAi
aHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMi
LAotICAgICJjb2xvcnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9jb2xvcnMiLAotICAgICJzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zIjogImh0bWwvaW5mcmFzdHJ1
Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvc3BhY2Utc2VwYXJhdGVkLXRva2VucyIsCi0gICAg
ImNvbW1hLXNlcGFyYXRlZC10b2tlbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWlj
cm9zeW50YXhlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zIiwKLSAgICAic3ludGF4LXJlZmVyZW5j
ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9zeW50YXgtcmVm
ZXJlbmNlcyIsCi0gICAgIm1xIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3lu
dGF4ZXMvbXEiLAotICAgICJ1cmxzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscyIsCi0gICAg
InRlcm1pbm9sb2d5LTAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Rlcm1pbm9sb2d5LTAi
LAotICAgICJwYXJzaW5nLXVybHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3BhcnNpbmct
dXJscyIsCi0gICAgImJhc2UtdXJscyI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvYmFzZS11
cmxzIiwKLSAgICAicmVzb2x2aW5nLXVybHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Jl
c29sdmluZy11cmxzIiwKLSAgICAidXJsLW1hbmlwdWxhdGlvbi1hbmQtY3JlYXRpb24iOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS91cmxzL3VybC1tYW5pcHVsYXRpb24tYW5kLWNyZWF0aW9uIiwKLSAg
ICAiZHluYW1pYy1jaGFuZ2VzLXRvLWJhc2UtdXJscyI6ICJodG1sL2luZnJhc3RydWN0dXJlL3Vy
bHMvZHluYW1pYy1jaGFuZ2VzLXRvLWJhc2UtdXJscyIsCi0gICAgImludGVyZmFjZXMtZm9yLXVy
bC1tYW5pcHVsYXRpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL2ludGVyZmFjZXMtZm9y
LXVybC1tYW5pcHVsYXRpb24iLAotICAgICJmZXRjaGluZy1yZXNvdXJjZXMiOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMiLAotICAgICJ0ZXJtaW5vbG9neS0xIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL3Rlcm1pbm9sb2d5LTEiLAotICAg
ICJwcm9jZXNzaW5nLW1vZGVsIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3Vy
Y2VzL3Byb2Nlc3NpbmctbW9kZWwiLAotICAgICJlbmNyeXB0ZWQtaHR0cC1hbmQtcmVsYXRlZC1z
ZWN1cml0eS1jb25jZXJucyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291cmNl
cy9lbmNyeXB0ZWQtaHR0cC1hbmQtcmVsYXRlZC1zZWN1cml0eS1jb25jZXJucyIsCi0gICAgImNv
bnRlbnQtdHlwZS1zbmlmZmluZyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291
cmNlcy9jb250ZW50LXR5cGUtc25pZmZpbmciLAotICAgICJleHRyYWN0aW5nLWNoYXJhY3Rlci1l
bmNvZGluZ3MtZnJvbS1tZXRhLWVsZW1lbnRzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hp
bmctcmVzb3VyY2VzL2V4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxl
bWVudHMiLAotICAgICJjb3JzLXNldHRpbmdzLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvY29ycy1zZXR0aW5ncy1hdHRyaWJ1dGVzIiwKLSAgICAi
Y29ycy1lbmFibGVkLWZldGNoIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3Vy
Y2VzL2NvcnMtZW5hYmxlZC1mZXRjaCIsCi0gICAgImNvbW1vbi1kb20taW50ZXJmYWNlcyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcyIsCi0gICAgInJlZmxlY3Rp
bmctY29udGVudC1hdHRyaWJ1dGVzLWluLWlkbC1hdHRyaWJ1dGVzIjogImh0bWwvaW5mcmFzdHJ1
Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL3JlZmxlY3RpbmctY29udGVudC1hdHRyaWJ1dGVz
LWluLWlkbC1hdHRyaWJ1dGVzIiwKLSAgICAiY29sbGVjdGlvbnMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMiLAotICAgICJodG1sYWxsY29s
bGVjdGlvbiI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcy9jb2xs
ZWN0aW9ucyIsCi0gICAgImh0bWxmb3JtY29udHJvbHNjb2xsZWN0aW9uIjogImh0bWwvaW5mcmFz
dHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25zIiwKLSAgICAiaHRtbG9w
dGlvbnNjb2xsZWN0aW9uIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZh
Y2VzL2NvbGxlY3Rpb25zIiwKLSAgICAiZG9tc3RyaW5nbWFwIjogImh0bWwvaW5mcmFzdHJ1Y3R1
cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2RvbXN0cmluZ21hcCIsCi0gICAgInRyYW5zZmVyYWJs
ZS1vYmplY3RzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL3Ry
YW5zZmVyYWJsZS1vYmplY3RzIiwKLSAgICAic2FmZS1wYXNzaW5nLW9mLXN0cnVjdHVyZWQtZGF0
YSI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNlcy9zYWZlLXBhc3Np
bmctb2Ytc3RydWN0dXJlZC1kYXRhIiwKLSAgICAiZ2FyYmFnZS1jb2xsZWN0aW9uIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2dhcmJhZ2UtY29sbGVjdGlvbiIs
Ci0gICAgIm5hbWVzcGFjZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9uYW1lc3BhY2VzIiwKLSAg
ICAiZG9tIjogImh0bWwvZG9tIiwKLSAgICAiZG9jdW1lbnRzIjogImh0bWwvZG9tL2RvY3VtZW50
cyIsCi0gICAgInRoZS1kb2N1bWVudC1vYmplY3QiOiAiaHRtbC9kb20vZG9jdW1lbnRzL3RoZS1k
b2N1bWVudC1vYmplY3QiLAotICAgICJzZWN1cml0eS1kb2N1bWVudCI6ICJodG1sL2RvbS9kb2N1
bWVudHMvc2VjdXJpdHktZG9jdW1lbnQiLAotICAgICJyZXNvdXJjZS1tZXRhZGF0YS1tYW5hZ2Vt
ZW50IjogImh0bWwvZG9tL2RvY3VtZW50cy9yZXNvdXJjZS1tZXRhZGF0YS1tYW5hZ2VtZW50IiwK
LSAgICAiZG9tLXRyZWUtYWNjZXNzb3JzIjogImh0bWwvZG9tL2RvY3VtZW50cy9kb20tdHJlZS1h
Y2Nlc3NvcnMiLAotICAgICJsb2FkaW5nLXhtbC1kb2N1bWVudHMiOiAiaHRtbC9kb20vZG9jdW1l
bnRzL2xvYWRpbmcteG1sLWRvY3VtZW50cyIsCi0gICAgImVsZW1lbnRzIjogImh0bWwvZG9tL2Vs
ZW1lbnRzIiwKLSAgICAic2VtYW50aWNzLTAiOiAiaHRtbC9kb20vZWxlbWVudHMvc2VtYW50aWNz
LTAiLAotICAgICJlbGVtZW50cy1pbi10aGUtZG9tIjogImh0bWwvZG9tL2VsZW1lbnRzL2VsZW1l
bnRzLWluLXRoZS1kb20iLAotICAgICJnbG9iYWwtYXR0cmlidXRlcyI6ICJodG1sL2RvbS9lbGVt
ZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgInRoZS1pZC1hdHRyaWJ1dGUiOiAiaHRtbC9k
b20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMiLAotICAgICJ0aGUtdGl0bGUtYXR0cmlidXRl
IjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKLSAgICAidGhlLWxhbmct
YW5kLXhtbDpsYW5nLWF0dHJpYnV0ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJp
YnV0ZXMiLAotICAgICJ0aGUtdHJhbnNsYXRlLWF0dHJpYnV0ZSI6ICJodG1sL2RvbS9lbGVtZW50
cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgInRoZS14bWw6YmFzZS1hdHRyaWJ1dGUtKHhtbC1v
bmx5KSI6ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgInRoZS1k
aXItYXR0cmlidXRlIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKLSAg
ICAiY2xhc3NlcyI6ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAg
InRoZS1zdHlsZS1hdHRyaWJ1dGUiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0
ZXMiLAotICAgICJlbWJlZGRpbmctY3VzdG9tLW5vbi12aXNpYmxlLWRhdGEtd2l0aC10aGUtZGF0
YS0qLWF0dHJpYnV0ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMiLAot
ICAgICJlbGVtZW50LWRlZmluaXRpb25zIjogImh0bWwvZG9tL2VsZW1lbnRzL2VsZW1lbnQtZGVm
aW5pdGlvbnMiLAotICAgICJhdHRyaWJ1dGVzIjogImh0bWwvZG9tL2VsZW1lbnRzL2VsZW1lbnQt
ZGVmaW5pdGlvbnMiLAotICAgICJjb250ZW50LW1vZGVscyI6ICJodG1sL2RvbS9lbGVtZW50cy9j
b250ZW50LW1vZGVscyIsCi0gICAgImtpbmRzLW9mLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVu
dHMvY29udGVudC1tb2RlbHMiLAotICAgICJtZXRhZGF0YS1jb250ZW50IjogImh0bWwvZG9tL2Vs
ZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAiZmxvdy1jb250ZW50IjogImh0bWwvZG9tL2Vs
ZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAic2VjdGlvbmluZy1jb250ZW50IjogImh0bWwv
ZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAiaGVhZGluZy1jb250ZW50IjogImh0
bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAicGhyYXNpbmctY29udGVudCI6
ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1vZGVscyIsCi0gICAgImVtYmVkZGVkLWNvbnRl
bnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAotICAgICJpbnRlcmFjdGl2
ZS1jb250ZW50IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAicGFs
cGFibGUtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1vZGVscyIsCi0gICAg
InRyYW5zcGFyZW50LWNvbnRlbnQtbW9kZWxzIjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQt
bW9kZWxzIiwKLSAgICAicGFyYWdyYXBocyI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1v
ZGVscyIsCi0gICAgInJlcXVpcmVtZW50cy1yZWxhdGluZy10by1iaWRpcmVjdGlvbmFsLWFsZ29y
aXRobS1mb3JtYXR0aW5nLWNoYXJhY3RlcnMiOiAiaHRtbC9kb20vZWxlbWVudHMvcmVxdWlyZW1l
bnRzLXJlbGF0aW5nLXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZvcm1hdHRpbmctY2hhcmFj
dGVycyIsCi0gICAgIndhaS1hcmlhIjogImh0bWwvZG9tL2VsZW1lbnRzL3dhaS1hcmlhIiwKLSAg
ICAiYXJpYS1yb2xlLWF0dHJpYnV0ZSI6ICJodG1sL2RvbS9lbGVtZW50cy93YWktYXJpYSIsCi0g
ICAgInN0YXRlLWFuZC1wcm9wZXJ0eS1hdHRyaWJ1dGVzIjogImh0bWwvZG9tL2VsZW1lbnRzL3dh
aS1hcmlhIiwKLSAgICAic2VjLXN0cm9uZy1uYXRpdmUtc2VtYW50aWNzIjogImh0bWwvZG9tL2Vs
ZW1lbnRzL3dhaS1hcmlhIiwKLSAgICAic2VjLWltcGxpY2l0LWFyaWEtc2VtYW50aWNzIjogImh0
bWwvZG9tL2VsZW1lbnRzL3dhaS1hcmlhIiwKLSAgICAiaW50ZXJhY3Rpb25zLXdpdGgteHBhdGgt
YW5kLXhzbHQiOiAiaHRtbC9kb20vaW50ZXJhY3Rpb25zLXdpdGgteHBhdGgtYW5kLXhzbHQiLAot
ICAgICJkeW5hbWljLW1hcmt1cC1pbnNlcnRpb24iOiAiaHRtbC9kb20vZHluYW1pYy1tYXJrdXAt
aW5zZXJ0aW9uIiwKLSAgICAib3BlbmluZy10aGUtaW5wdXQtc3RyZWFtIjogImh0bWwvZG9tL2R5
bmFtaWMtbWFya3VwLWluc2VydGlvbi9vcGVuaW5nLXRoZS1pbnB1dC1zdHJlYW0iLAotICAgICJj
bG9zaW5nLXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0
aW9uL2Nsb3NpbmctdGhlLWlucHV0LXN0cmVhbSIsCi0gICAgImRvY3VtZW50LndyaXRlKCkiOiAi
aHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL2RvY3VtZW50LXdyaXRlIiwKLSAgICAi
ZG9jdW1lbnQud3JpdGVsbigpIjogImh0bWwvZG9tL2R5bmFtaWMtbWFya3VwLWluc2VydGlvbi9k
b2N1bWVudC13cml0ZWxuIiwKLSAgICAic2VtYW50aWNzIjogImh0bWwvc2VtYW50aWNzIiwKLSAg
ICAidGhlLXJvb3QtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90aGUtcm9vdC1lbGVtZW50IiwK
LSAgICAidGhlLWh0bWwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90aGUtcm9vdC1lbGVtZW50
L3RoZS1odG1sLWVsZW1lbnQiLAotICAgICJkb2N1bWVudC1tZXRhZGF0YSI6ICJodG1sL3NlbWFu
dGljcy9kb2N1bWVudC1tZXRhZGF0YSIsCi0gICAgInRoZS1oZWFkLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLWhlYWQtZWxlbWVudCIsCi0gICAgInRoZS10
aXRsZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS10aXRs
ZS1lbGVtZW50IiwKLSAgICAidGhlLWJhc2UtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9kb2N1
bWVudC1tZXRhZGF0YS90aGUtYmFzZS1lbGVtZW50IiwKLSAgICAidGhlLWxpbmstZWxlbWVudCI6
ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbGluay1lbGVtZW50IiwKLSAg
ICAidGhlLW1ldGEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90
aGUtbWV0YS1lbGVtZW50IiwKLSAgICAic3RhbmRhcmQtbWV0YWRhdGEtbmFtZXMiOiAiaHRtbC9z
ZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudCIsCi0gICAgIm90aGVy
LW1ldGFkYXRhLW5hbWVzIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1t
ZXRhLWVsZW1lbnQiLAotICAgICJwcmFnbWEtZGlyZWN0aXZlcyI6ICJodG1sL3NlbWFudGljcy9k
b2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKLSAgICAib3RoZXItcHJhZ21hLWRp
cmVjdGl2ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxl
bWVudCIsCi0gICAgImNoYXJzZXQiOiAiaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEv
dGhlLW1ldGEtZWxlbWVudCIsCi0gICAgInRoZS1zdHlsZS1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1zdHlsZS1lbGVtZW50IiwKLSAgICAic3R5bGluZyI6
ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS9zdHlsaW5nIiwKLSAgICAic2NyaXB0
aW5nLTEiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEiLAotICAgICJ0aGUtc2NyaXB0LWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwK
LSAgICAic2NyaXB0aW5nTGFuZ3VhZ2VzIjogImh0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS1zY3JpcHQtZWxlbWVudCIsCi0gICAgInJlc3RyaWN0aW9ucy1mb3ItY29udGVudHMtb2Ytc2Ny
aXB0LWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxl
bWVudCIsCi0gICAgImlubGluZS1kb2N1bWVudGF0aW9uLWZvci1leHRlcm5hbC1zY3JpcHRzIjog
Imh0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudCIsCi0gICAgInNj
cmlwdFRhZ1hTTFQiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50IiwKLSAgICAidGhlLW5vc2NyaXB0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLW5vc2NyaXB0LWVsZW1lbnQiLAotICAgICJzZWN0aW9ucyI6ICJodG1sL3NlbWFu
dGljcy9zZWN0aW9ucyIsCi0gICAgInRoZS1ib2R5LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
c2VjdGlvbnMvdGhlLWJvZHktZWxlbWVudCIsCi0gICAgInRoZS1hcnRpY2xlLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhlLWFydGljbGUtZWxlbWVudCIsCi0gICAgInRoZS1z
ZWN0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhlLXNlY3Rpb24tZWxl
bWVudCIsCi0gICAgInRoZS1uYXYtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90
aGUtbmF2LWVsZW1lbnQiLAotICAgICJ0aGUtYXNpZGUtZWxlbWVudCI6ICJodG1sL3NlbWFudGlj
cy9zZWN0aW9ucy90aGUtYXNpZGUtZWxlbWVudCIsCi0gICAgInRoZS1oMSwtaDIsLWgzLC1oNCwt
aDUsLWFuZC1oNi1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtaDEtaDIt
aDMtaDQtaDUtYW5kLWg2LWVsZW1lbnRzIiwKLSAgICAidGhlLWhncm91cC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1oZ3JvdXAtZWxlbWVudCIsCi0gICAgInRoZS1oZWFk
ZXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtaGVhZGVyLWVsZW1lbnQi
LAotICAgICJ0aGUtZm9vdGVyLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhl
LWZvb3Rlci1lbGVtZW50IiwKLSAgICAidGhlLWFkZHJlc3MtZWxlbWVudCI6ICJodG1sL3NlbWFu
dGljcy9zZWN0aW9ucy90aGUtYWRkcmVzcy1lbGVtZW50IiwKLSAgICAiaGVhZGluZ3MtYW5kLXNl
Y3Rpb25zIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL2hlYWRpbmdzLWFuZC1zZWN0aW9ucyIs
Ci0gICAgIm91dGxpbmVzIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL2hlYWRpbmdzLWFuZC1z
ZWN0aW9ucyIsCi0gICAgInVzYWdlLXN1bW1hcnktMCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9u
cy91c2FnZS1zdW1tYXJ5LTAiLAotICAgICJncm91cGluZy1jb250ZW50IjogImh0bWwvc2VtYW50
aWNzL2dyb3VwaW5nLWNvbnRlbnQiLAotICAgICJ0aGUtcC1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLXAtZWxlbWVudCIsCi0gICAgInRoZS1oci1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWhyLWVsZW1lbnQiLAotICAg
ICJ0aGUtcHJlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUt
cHJlLWVsZW1lbnQiLAotICAgICJ0aGUtYmxvY2txdW90ZS1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWJsb2NrcXVvdGUtZWxlbWVudCIsCi0gICAgInRoZS1v
bC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLW9sLWVsZW1l
bnQiLAotICAgICJ0aGUtdWwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250
ZW50L3RoZS11bC1lbGVtZW50IiwKLSAgICAidGhlLWxpLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZ3JvdXBpbmctY29udGVudC90aGUtbGktZWxlbWVudCIsCi0gICAgInRoZS1kbC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWRsLWVsZW1lbnQiLAotICAg
ICJ0aGUtZHQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1k
dC1lbGVtZW50IiwKLSAgICAidGhlLWRkLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtZGQtZWxlbWVudCIsCi0gICAgInRoZS1maWd1cmUtZWxlbWVudCI6ICJo
dG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWd1cmUtZWxlbWVudCIsCi0gICAg
InRoZS1maWdjYXB0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVu
dC90aGUtZmlnY2FwdGlvbi1lbGVtZW50IiwKLSAgICAidGhlLWRpdi1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWRpdi1lbGVtZW50IiwKLSAgICAidGV4dC1s
ZXZlbC1zZW1hbnRpY3MiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MiLAot
ICAgICJ0aGUtYS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNz
L3RoZS1hLWVsZW1lbnQiLAotICAgICJ0aGUtZW0tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90
ZXh0LWxldmVsLXNlbWFudGljcy90aGUtZW0tZWxlbWVudCIsCi0gICAgInRoZS1zdHJvbmctZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtc3Ryb25nLWVs
ZW1lbnQiLAotICAgICJ0aGUtc21hbGwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxl
dmVsLXNlbWFudGljcy90aGUtc21hbGwtZWxlbWVudCIsCi0gICAgInRoZS1zLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXMtZWxlbWVudCIsCi0gICAg
InRoZS1jaXRlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3Mv
dGhlLWNpdGUtZWxlbWVudCIsCi0gICAgInRoZS1xLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
dGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXEtZWxlbWVudCIsCi0gICAgInRoZS1kZm4tZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtZGZuLWVsZW1lbnQi
LAotICAgICJ0aGUtYWJici1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2Vt
YW50aWNzL3RoZS1hYmJyLWVsZW1lbnQiLAotICAgICJ0aGUtdGltZS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS10aW1lLWVsZW1lbnQiLAotICAgICJ0
aGUtY29kZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3Ro
ZS1jb2RlLWVsZW1lbnQiLAotICAgICJ0aGUtdmFyLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
dGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXZhci1lbGVtZW50IiwKLSAgICAidGhlLXNhbXAtZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtc2FtcC1lbGVt
ZW50IiwKLSAgICAidGhlLWtiZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwt
c2VtYW50aWNzL3RoZS1rYmQtZWxlbWVudCIsCi0gICAgInRoZS1zdWItYW5kLXN1cC1lbGVtZW50
cyI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtc3ViLWFuZC1zdXAt
ZWxlbWVudHMiLAotICAgICJ0aGUtaS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2
ZWwtc2VtYW50aWNzL3RoZS1pLWVsZW1lbnQiLAotICAgICJ0aGUtYi1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1iLWVsZW1lbnQiLAotICAgICJ0aGUt
dS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS11LWVs
ZW1lbnQiLAotICAgICJ0aGUtbWFyay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2
ZWwtc2VtYW50aWNzL3RoZS1tYXJrLWVsZW1lbnQiLAotICAgICJ0aGUtcnVieS1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ydWJ5LWVsZW1lbnQiLAot
ICAgICJ0aGUtcnQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGlj
cy90aGUtcnQtZWxlbWVudCIsCi0gICAgInRoZS1ycC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNz
L3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ycC1lbGVtZW50IiwKLSAgICAidGhlLWJkaS1lbGVt
ZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1iZGktZWxlbWVu
dCIsCi0gICAgInRoZS1iZG8tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNl
bWFudGljcy90aGUtYmRvLWVsZW1lbnQiLAotICAgICJ0aGUtc3Bhbi1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zcGFuLWVsZW1lbnQiLAotICAgICJ0
aGUtYnItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
YnItZWxlbWVudCIsCi0gICAgInRoZS13YnItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0
LWxldmVsLXNlbWFudGljcy90aGUtd2JyLWVsZW1lbnQiLAotICAgICJ1c2FnZS1zdW1tYXJ5Ijog
Imh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3VzYWdlLXN1bW1hcnkiLAotICAg
ICJlZGl0cyI6ICJodG1sL3NlbWFudGljcy9lZGl0cyIsCi0gICAgInRoZS1pbnMtZWxlbWVudCI6
ICJodG1sL3NlbWFudGljcy9lZGl0cy90aGUtaW5zLWVsZW1lbnQiLAotICAgICJ0aGUtZGVsLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZWRpdHMvdGhlLWRlbC1lbGVtZW50IiwKLSAgICAiYXR0
cmlidXRlcy1jb21tb24tdG8taW5zLWFuZC1kZWwtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3Mv
ZWRpdHMvYXR0cmlidXRlcy1jb21tb24tdG8taW5zLWFuZC1kZWwtZWxlbWVudHMiLAotICAgICJl
ZGl0cy1hbmQtcGFyYWdyYXBocyI6ICJodG1sL3NlbWFudGljcy9lZGl0cy9lZGl0cy1hbmQtcGFy
YWdyYXBocyIsCi0gICAgImVkaXRzLWFuZC1saXN0cyI6ICJodG1sL3NlbWFudGljcy9lZGl0cy9l
ZGl0cy1hbmQtbGlzdHMiLAotICAgICJlZGl0cy1hbmQtdGFibGVzIjogImh0bWwvc2VtYW50aWNz
L2VkaXRzL2VkaXRzLWFuZC10YWJsZXMiLAotICAgICJlbWJlZGRlZC1jb250ZW50LTAiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wIiwKLSAgICAidGhlLWltZy1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAotICAg
ICJhbHQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVu
dCIsCi0gICAgImdlbmVyYWwtZ3VpZGVsaW5lcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiYS1saW5rLW9yLWJ1dHRvbi1jb250YWlu
aW5nLW5vdGhpbmctYnV0LXRoZS1pbWFnZSI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiYS1waHJhc2Utb3ItcGFyYWdyYXBoLXdpdGgt
YW4tYWx0ZXJuYXRpdmUtZ3JhcGhpY2FsLXJlcHJlc2VudGF0aW9uOi1jaGFydHMsLWRpYWdyYW1z
LC1ncmFwaHMsLW1hcHMsLWlsbHVzdHJhdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAgImEtc2hvcnQtcGhyYXNlLW9yLWxhYmVs
LXdpdGgtYW4tYWx0ZXJuYXRpdmUtZ3JhcGhpY2FsLXJlcHJlc2VudGF0aW9uOi1pY29ucywtbG9n
b3MiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIs
Ci0gICAgInRleHQtdGhhdC1oYXMtYmVlbi1yZW5kZXJlZC10by1hLWdyYXBoaWMtZm9yLXR5cG9n
cmFwaGljYWwtZWZmZWN0IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUt
aW1nLWVsZW1lbnQiLAotICAgICJhLWdyYXBoaWNhbC1yZXByZXNlbnRhdGlvbi1vZi1zb21lLW9m
LXRoZS1zdXJyb3VuZGluZy10ZXh0IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtaW1nLWVsZW1lbnQiLAotICAgICJhLXB1cmVseS1kZWNvcmF0aXZlLWltYWdlLXRoYXQt
ZG9lc24ndC1hZGQtYW55LWluZm9ybWF0aW9uIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAotICAgICJhLWdyb3VwLW9mLWltYWdlcy10aGF0LWZv
cm0tYS1zaW5nbGUtbGFyZ2VyLXBpY3R1cmUtd2l0aC1uby1saW5rcyI6ICJodG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiYS1ncm91cC1vZi1p
bWFnZXMtdGhhdC1mb3JtLWEtc2luZ2xlLWxhcmdlci1waWN0dXJlLXdpdGgtbGlua3MiOiAiaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAgImEt
a2V5LXBhcnQtb2YtdGhlLWNvbnRlbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAgImFuLWltYWdlLW5vdC1pbnRlbmRlZC1mb3ItdGhl
LXVzZXIiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVu
dCIsCi0gICAgImd1aWRhbmNlLWZvci1tYXJrdXAtZ2VuZXJhdG9ycyI6ICJodG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiZ3VpZGFuY2UtZm9y
LWNvbmZvcm1hbmNlLWNoZWNrZXJzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtaW1nLWVsZW1lbnQiLAotICAgICJ0aGUtaWZyYW1lLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pZnJhbWUtZWxlbWVudCIsCi0gICAgInRoZS1l
bWJlZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtZW1i
ZWQtZWxlbWVudCIsCi0gICAgInRoZS1vYmplY3QtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLW9iamVjdC1lbGVtZW50IiwKLSAgICAidGhlLXBhcmFtLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1wYXJhbS1lbGVt
ZW50IiwKLSAgICAidGhlLXZpZGVvLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL3RoZS12aWRlby1lbGVtZW50IiwKLSAgICAidGhlLWF1ZGlvLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1hdWRpby1lbGVtZW50IiwKLSAg
ICAidGhlLXNvdXJjZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtc291cmNlLWVsZW1lbnQiLAotICAgICJ0aGUtdHJhY2stZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLXRyYWNrLWVsZW1lbnQiLAotICAgICJtZWRp
YS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxl
bWVudHMiLAotICAgICJlcnJvci1jb2RlcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJsb2NhdGlvbi1vZi10aGUtbWVkaWEtcmVzb3Vy
Y2UiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwK
LSAgICAibWltZS10eXBlcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVk
aWEtZWxlbWVudHMiLAotICAgICJuZXR3b3JrLXN0YXRlcyI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJsb2FkaW5nLXRoZS1tZWRpYS1y
ZXNvdXJjZSI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVu
dHMiLAotICAgICJvZmZzZXRzLWludG8tdGhlLW1lZGlhLXJlc291cmNlIjogImh0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInJlYWR5LXN0YXRl
cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAot
ICAgICJwbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZSI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJzZWVraW5nIjogImh0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgIm1lZGlhLXJlc291
cmNlcy13aXRoLW11bHRpcGxlLW1lZGlhLXRyYWNrcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJhdWRpb3RyYWNrbGlzdC1hbmQtdmlk
ZW90cmFja2xpc3Qtb2JqZWN0cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
bWVkaWEtZWxlbWVudHMiLAotICAgICJzZWxlY3Rpbmctc3BlY2lmaWMtYXVkaW8tYW5kLXZpZGVv
LXRyYWNrcy1kZWNsYXJhdGl2ZWx5IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInN5bmNocm9uaXNpbmctbXVsdGlwbGUtbWVkaWEtZWxl
bWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRz
IiwKLSAgICAiaW50cm9kdWN0aW9uLTAiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAibWVkaWEtY29udHJvbGxlcnMiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAiYXNzaWduaW5n
LWEtbWVkaWEtY29udHJvbGxlci1kZWNsYXJhdGl2ZWx5IjogImh0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInRpbWVkLXRleHQtdHJhY2tzIjog
Imh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAg
InRleHQtdHJhY2stbW9kZWwiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKLSAgICAic291cmNpbmctaW4tYmFuZC10ZXh0LXRyYWNrcyI6ICJodG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJzb3Vy
Y2luZy1vdXQtb2YtYmFuZC10ZXh0LXRyYWNrcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJndWlkZWxpbmVzLWZvci1leHBvc2luZy1j
dWVzLWluLXZhcmlvdXMtZm9ybWF0cy1hcy10ZXh0LXRyYWNrLWN1ZXMiOiAiaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAidGV4dC10cmFjay1h
cGkiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwK
LSAgICAidGV4dC10cmFja3MtZGVzY3JpYmluZy1jaGFwdGVycyI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJjdWUtZXZlbnRzIjogImh0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInVz
ZXItaW50ZXJmYWNlIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1l
bGVtZW50cyIsCi0gICAgInRpbWUtcmFuZ2VzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgImV2ZW50LWRlZmluaXRpb25zIjogImh0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgIm1lZGlh
ZXZlbnRzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCi0gICAgInNlY3VyaXR5LWFuZC1wcml2YWN5LWNvbnNpZGVyYXRpb25zIjogImh0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgImJlc3QtcHJh
Y3RpY2VzLWZvci1hdXRob3JzLXVzaW5nLW1lZGlhLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgImJlc3QtcHJhY3RpY2Vz
LWZvci1pbXBsZW1lbnRvcnMtb2YtbWVkaWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAidGhlLWNhbnZhcy1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtY2FudmFzLWVsZW1lbnQi
LAotICAgICJjb2xvci1zcGFjZXMtYW5kLWNvbG9yLWNvcnJlY3Rpb24iOiAiaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCi0gICAgInNlY3VyaXR5
LXdpdGgtY2FudmFzLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtY2FudmFzLWVsZW1lbnQiLAotICAgICJ0aGUtbWFwLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1tYXAtZWxlbWVudCIsCi0gICAgInRoZS1hcmVh
LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1hcmVhLWVs
ZW1lbnQiLAotICAgICJpbWFnZS1tYXBzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQtMC9pbWFnZS1tYXBzIiwKLSAgICAiYXV0aG9yaW5nIjogImh0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQtMC9pbWFnZS1tYXBzIiwKLSAgICAicHJvY2Vzc2luZy1tb2RlbC0wIjogImh0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9pbWFnZS1tYXBzIiwKLSAgICAibWF0aG1s
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tYXRobWwiLAotICAgICJzdmci
OiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3N2ZyIsCi0gICAgImRpbWVuc2lv
bi1hdHRyaWJ1dGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9kaW1lbnNp
b24tYXR0cmlidXRlcyIsCi0gICAgInRhYnVsYXItZGF0YSI6ICJodG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEiLAotICAgICJ0aGUtdGFibGUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQiLAotICAgICJ0YWJsZS1kZXNjcmlwdGlvbnMtdGVj
aG5pcXVlcyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQi
LAotICAgICJ0YWJsZS1sYXlvdXQtdGVjaG5pcXVlcyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFy
LWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQiLAotICAgICJ0aGUtY2FwdGlvbi1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50IiwKLSAgICAidGhl
LWNvbGdyb3VwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS1jb2xn
cm91cC1lbGVtZW50IiwKLSAgICAidGhlLWNvbC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3Rh
YnVsYXItZGF0YS90aGUtY29sLWVsZW1lbnQiLAotICAgICJ0aGUtdGJvZHktZWxlbWVudCI6ICJo
dG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRib2R5LWVsZW1lbnQiLAotICAgICJ0aGUt
dGhlYWQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRoZWFkLWVs
ZW1lbnQiLAotICAgICJ0aGUtdGZvb3QtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFy
LWRhdGEvdGhlLXRmb290LWVsZW1lbnQiLAotICAgICJ0aGUtdHItZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRyLWVsZW1lbnQiLAotICAgICJ0aGUtdGQtZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRkLWVsZW1lbnQiLAotICAgICJ0
aGUtdGgtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRoLWVsZW1l
bnQiLAotICAgICJhdHRyaWJ1dGVzLWNvbW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMiOiAiaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL2F0dHJpYnV0ZXMtY29tbW9uLXRvLXRkLWFuZC10aC1l
bGVtZW50cyIsCi0gICAgInByb2Nlc3NpbmctbW9kZWwtMSI6ICJodG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvcHJvY2Vzc2luZy1tb2RlbC0xIiwKLSAgICAiZm9ybWluZy1hLXRhYmxlIjogImh0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9wcm9jZXNzaW5nLW1vZGVsLTEiLAotICAgICJoZWFk
ZXItYW5kLWRhdGEtY2VsbC1zZW1hbnRpY3MiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3Byb2Nlc3NpbmctbW9kZWwtMSIsCi0gICAgImV4YW1wbGVzIjogImNhbnZhczJkL2V4YW1wbGVz
IiwKLSAgICAiZm9ybXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMiLAotICAgICJpbnRyb2R1Y3Rp
b24tMSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCi0gICAgIndyaXRp
bmctYS1mb3JtJ3MtdXNlci1pbnRlcmZhY2UiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9k
dWN0aW9uLTEiLAotICAgICJpbXBsZW1lbnRpbmctdGhlLXNlcnZlci1zaWRlLXByb2Nlc3Npbmct
Zm9yLWEtZm9ybSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCi0gICAg
ImNvbmZpZ3VyaW5nLWEtZm9ybS10by1jb21tdW5pY2F0ZS13aXRoLWEtc2VydmVyIjogImh0bWwv
c2VtYW50aWNzL2Zvcm1zL2ludHJvZHVjdGlvbi0xIiwKLSAgICAiY2xpZW50LXNpZGUtZm9ybS12
YWxpZGF0aW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2ludHJvZHVjdGlvbi0xIiwKLSAgICAi
ZW5hYmxpbmctY2xpZW50LXNpZGUtYXV0b21hdGljLWZpbGxpbmctb2YtZm9ybS1jb250cm9scyI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCi0gICAgImltcHJvdmluZy10
aGUtdXNlci1leHBlcmllbmNlLW9uLW1vYmlsZS1kZXZpY2VzIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL2ludHJvZHVjdGlvbi0xIiwKLSAgICAidGhlLWRpZmZlcmVuY2UtYmV0d2Vlbi10aGUtZmll
bGQtdHlwZSwtdGhlLWF1dG9maWxsLWZpZWxkLW5hbWUsLWFuZC10aGUtaW5wdXQtbW9kYWxpdHki
OiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAotICAgICJpbnB1dC1hdXRo
b3Itbm90ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAotICAgICJj
YXRlZ29yaWVzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NhdGVnb3JpZXMiLAotICAgICJ0aGUt
Zm9ybS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1mb3JtLWVsZW1lbnQiLAot
ICAgICJ0aGUtZmllbGRzZXQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZmll
bGRzZXQtZWxlbWVudCIsCi0gICAgInRoZS1sZWdlbmQtZWxlbWVudCI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy90aGUtbGVnZW5kLWVsZW1lbnQiLAotICAgICJ0aGUtbGFiZWwtZWxlbWVudCI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtbGFiZWwtZWxlbWVudCIsCi0gICAgInRoZS1pbnB1dC1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAi
c3RhdGVzLW9mLXRoZS10eXBlLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUt
aW5wdXQtZWxlbWVudCIsCi0gICAgImhpZGRlbi1zdGF0ZS0odHlwZT1oaWRkZW4pIjogImh0bWwv
c2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAidGV4dC0odHlwZT10ZXh0
KS1zdGF0ZS1hbmQtc2VhcmNoLXN0YXRlLSh0eXBlPXNlYXJjaCkiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0ZWxlcGhvbmUtc3RhdGUtKHR5cGU9dGVs
KSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInVybC1z
dGF0ZS0odHlwZT11cmwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
IiwKLSAgICAiZS1tYWlsLXN0YXRlLSh0eXBlPWVtYWlsKSI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInBhc3N3b3JkLXN0YXRlLSh0eXBlPXBhc3N3b3Jk
KSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgImRhdGUt
YW5kLXRpbWUtc3RhdGUtKHR5cGU9ZGF0ZXRpbWUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiZGF0ZS1zdGF0ZS0odHlwZT1kYXRlKSI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgIm1vbnRoLXN0YXRlLSh0eXBl
PW1vbnRoKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAg
IndlZWstc3RhdGUtKHR5cGU9d2VlaykiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0
LWVsZW1lbnQiLAotICAgICJ0aW1lLXN0YXRlLSh0eXBlPXRpbWUpIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAibG9jYWwtZGF0ZS1hbmQtdGltZS1zdGF0
ZS0odHlwZT1kYXRldGltZS1sb2NhbCkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0
LWVsZW1lbnQiLAotICAgICJudW1iZXItc3RhdGUtKHR5cGU9bnVtYmVyKSI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInJhbmdlLXN0YXRlLSh0eXBlPXJh
bmdlKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgImNv
bG9yLXN0YXRlLSh0eXBlPWNvbG9yKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQt
ZWxlbWVudCIsCi0gICAgImNoZWNrYm94LXN0YXRlLSh0eXBlPWNoZWNrYm94KSI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInJhZGlvLWJ1dHRvbi1zdGF0
ZS0odHlwZT1yYWRpbykiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQi
LAotICAgICJmaWxlLXVwbG9hZC1zdGF0ZS0odHlwZT1maWxlKSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInN1Ym1pdC1idXR0b24tc3RhdGUtKHR5cGU9
c3VibWl0KSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAg
ImltYWdlLWJ1dHRvbi1zdGF0ZS0odHlwZT1pbWFnZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJyZXNldC1idXR0b24tc3RhdGUtKHR5cGU9cmVzZXQp
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiYnV0dG9u
LXN0YXRlLSh0eXBlPWJ1dHRvbikiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVs
ZW1lbnQiLAotICAgICJpbnB1dC1pbXBsLW5vdGVzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiY29tbW9uLWlucHV0LWVsZW1lbnQtYXR0cmlidXRlcyI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1tYXhs
ZW5ndGgtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
IiwKLSAgICAidGhlLXNpemUtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1p
bnB1dC1lbGVtZW50IiwKLSAgICAidGhlLXJlYWRvbmx5LWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1yZXF1aXJlZC1hdHRyaWJ1
dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0aGUt
bXVsdGlwbGUtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKLSAgICAidGhlLXBhdHRlcm4tYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAidGhlLW1pbi1hbmQtbWF4LWF0dHJpYnV0ZXMiOiAi
aHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0aGUtc3RlcC1h
dHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAg
ICJ0aGUtbGlzdC1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVs
ZW1lbnQiLAotICAgICJ0aGUtcGxhY2Vob2xkZXItYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiY29tbW9uLWlucHV0LWVsZW1lbnQtYXBp
cyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgImNvbW1v
bi1ldmVudC1iZWhhdmlvcnMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1l
bnQiLAotICAgICJ0aGUtYnV0dG9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhl
LWJ1dHRvbi1lbGVtZW50IiwKLSAgICAidGhlLXNlbGVjdC1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL3RoZS1zZWxlY3QtZWxlbWVudCIsCi0gICAgInRoZS1kYXRhbGlzdC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1kYXRhbGlzdC1lbGVtZW50IiwKLSAgICAidGhl
LW9wdGdyb3VwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLW9wdGdyb3VwLWVs
ZW1lbnQiLAotICAgICJ0aGUtb3B0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLW9wdGlvbi1lbGVtZW50IiwKLSAgICAidGhlLXRleHRhcmVhLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLXRleHRhcmVhLWVsZW1lbnQiLAotICAgICJ0aGUta2V5Z2VuLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWtleWdlbi1lbGVtZW50IiwKLSAgICAi
dGhlLW91dHB1dC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1vdXRwdXQtZWxl
bWVudCIsCi0gICAgInRoZS1wcm9ncmVzcy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1wcm9ncmVzcy1lbGVtZW50IiwKLSAgICAidGhlLW1ldGVyLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLW1ldGVyLWVsZW1lbnQiLAotICAgICJmb3JtLWNvbnRyb2wtaW5m
cmFzdHJ1Y3R1cmUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1jb250cm9sLWluZnJhc3Ry
dWN0dXJlIiwKLSAgICAiYS1mb3JtLWNvbnRyb2wncy12YWx1ZSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUiLAotICAgICJtdXRhYmlsaXR5IjogImh0
bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZSIsCi0gICAgImFz
c29jaWF0aW9uLW9mLWNvbnRyb2xzLWFuZC1mb3JtcyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9m
b3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUiLAotICAgICJhdHRyaWJ1dGVzLWNvbW1vbi10by1m
b3JtLWNvbnRyb2xzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRv
LWZvcm0tY29udHJvbHMiLAotICAgICJuYW1pbmctZm9ybS1jb250cm9sczotdGhlLW5hbWUtYXR0
cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0t
Y29udHJvbHMiLAotICAgICJzdWJtaXR0aW5nLWVsZW1lbnQtZGlyZWN0aW9uYWxpdHk6LXRoZS1k
aXJuYW1lLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1v
bi10by1mb3JtLWNvbnRyb2xzIiwKLSAgICAibGltaXRpbmctdXNlci1pbnB1dC1sZW5ndGg6LXRo
ZS1tYXhsZW5ndGgtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMt
Y29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAotICAgICJlbmFibGluZy1hbmQtZGlzYWJsaW5nLWZv
cm0tY29udHJvbHM6LXRoZS1kaXNhYmxlZC1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9y
bXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCi0gICAgImZvcm0tc3VibWlz
c2lvbiI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNv
bnRyb2xzIiwKLSAgICAiYXV0b2ZvY3VzaW5nLWEtZm9ybS1jb250cm9sOi10aGUtYXV0b2ZvY3Vz
LWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1m
b3JtLWNvbnRyb2xzIiwKLSAgICAiaW5wdXQtbW9kYWxpdGllczotdGhlLWlucHV0bW9kZS1hdHRy
aWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1j
b250cm9scyIsCi0gICAgImF1dG9maWxsaW5nLWZvcm0tY29udHJvbHM6LXRoZS1hdXRvY29tcGxl
dGUtYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRv
LWZvcm0tY29udHJvbHMiLAotICAgICJ0ZXh0RmllbGRTZWxlY3Rpb24iOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uIiwKLSAgICAiY29uc3RyYWludHMiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMiLAotICAgICJkZWZpbml0aW9ucyI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIsCi0gICAgImNvbnN0cmFpbnQtdmFsaWRhdGlvbiI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIsCi0gICAgInRoZS1jb25zdHJhaW50
LXZhbGlkYXRpb24tYXBpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzIiwKLSAg
ICAic2VjdXJpdHktZm9ybXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMiLAot
ICAgICJmb3JtLXN1Ym1pc3Npb24tMCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3JtLXN1Ym1p
c3Npb24tMCIsCi0gICAgImludHJvZHVjdGlvbi0yIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zv
cm0tc3VibWlzc2lvbi0wIiwKLSAgICAiaW1wbGljaXQtc3VibWlzc2lvbiI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy9mb3JtLXN1Ym1pc3Npb24tMCIsCi0gICAgImZvcm0tc3VibWlzc2lvbi1hbGdv
cml0aG0iOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAiLAotICAgICJj
b25zdHJ1Y3RpbmctZm9ybS1kYXRhLXNldCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3JtLXN1
Ym1pc3Npb24tMCIsCi0gICAgInVybC1lbmNvZGVkLWZvcm0tZGF0YSI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy9mb3JtLXN1Ym1pc3Npb24tMCIsCi0gICAgIm11bHRpcGFydC1mb3JtLWRhdGEiOiAi
aHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAiLAotICAgICJwbGFpbi10ZXh0
LWZvcm0tZGF0YSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3JtLXN1Ym1pc3Npb24tMCIsCi0g
ICAgInJlc2V0dGluZy1hLWZvcm0iOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvcmVzZXR0aW5nLWEt
Zm9ybSIsCi0gICAgImludGVyYWN0aXZlLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2ludGVy
YWN0aXZlLWVsZW1lbnRzIiwKLSAgICAidGhlLWRldGFpbHMtZWxlbWVudCI6ICJodG1sL3NlbWFu
dGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGV0YWlscy1lbGVtZW50IiwKLSAgICAidGhl
LXN1bW1hcnktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90
aGUtc3VtbWFyeS1lbGVtZW50IiwKLSAgICAidGhlLWNvbW1hbmQtZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtY29tbWFuZC1lbGVtZW50IiwKLSAgICAi
dGhlLW1lbnUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90
aGUtbWVudS1lbGVtZW50IiwKLSAgICAibWVudXMtaW50cm8iOiAiaHRtbC9zZW1hbnRpY3MvaW50
ZXJhY3RpdmUtZWxlbWVudHMvdGhlLW1lbnUtZWxlbWVudCIsCi0gICAgImJ1aWxkaW5nLW1lbnVz
LWFuZC10b29sYmFycyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUt
bWVudS1lbGVtZW50IiwKLSAgICAiY29udGV4dC1tZW51cyI6ICJodG1sL3NlbWFudGljcy9pbnRl
cmFjdGl2ZS1lbGVtZW50cy90aGUtbWVudS1lbGVtZW50IiwKLSAgICAidG9vbGJhcnMiOiAiaHRt
bC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvdGhlLW1lbnUtZWxlbWVudCIsCi0gICAg
ImNvbW1hbmRzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1hbmRz
IiwKLSAgICAidXNpbmctdGhlLWEtZWxlbWVudC10by1kZWZpbmUtYS1jb21tYW5kIjogImh0bWwv
c2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1hbmRzIiwKLSAgICAidXNpbmctdGhl
LWJ1dHRvbi1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAiaHRtbC9zZW1hbnRpY3MvaW50
ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAotICAgICJ1c2luZy10aGUtaW5wdXQtZWxlbWVu
dC10by1kZWZpbmUtYS1jb21tYW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1l
bnRzL2NvbW1hbmRzIiwKLSAgICAidXNpbmctdGhlLW9wdGlvbi1lbGVtZW50LXRvLWRlZmluZS1h
LWNvbW1hbmQiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMi
LAotICAgICJ1c2luZy10aGUtY29tbWFuZC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAi
aHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAotICAgICJ1c2lu
Zy10aGUtY29tbWFuZC1hdHRyaWJ1dGUtb24tY29tbWFuZC1lbGVtZW50cy10by1kZWZpbmUtYS1j
b21tYW5kLWluZGlyZWN0bHkiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMv
Y29tbWFuZHMiLAotICAgICJ1c2luZy10aGUtYWNjZXNza2V5LWF0dHJpYnV0ZS1vbi1hLWxhYmVs
LWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2
ZS1lbGVtZW50cy9jb21tYW5kcyIsCi0gICAgInVzaW5nLXRoZS1hY2Nlc3NrZXktYXR0cmlidXRl
LW9uLWEtbGVnZW5kLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGlj
cy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCi0gICAgInVzaW5nLXRoZS1hY2Nlc3Nr
ZXktYXR0cmlidXRlLXRvLWRlZmluZS1hLWNvbW1hbmQtb24tb3RoZXItZWxlbWVudHMiOiAiaHRt
bC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAotICAgICJ0aGUtZGlh
bG9nLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvdGhlLWRp
YWxvZy1lbGVtZW50IiwKLSAgICAiYW5jaG9yLXBvaW50cyI6ICJodG1sL3NlbWFudGljcy9pbnRl
cmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQiLAotICAgICJsaW5rcyI6ICJodG1s
L3NlbWFudGljcy9saW5rcyIsCi0gICAgImludHJvZHVjdGlvbi0zIjogImh0bWwvc2VtYW50aWNz
L2xpbmtzL2ludHJvZHVjdGlvbi0zIiwKLSAgICAibGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVh
LWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmtzLWNyZWF0ZWQtYnktYS1hbmQt
YXJlYS1lbGVtZW50cyIsCi0gICAgImZvbGxvd2luZy1oeXBlcmxpbmtzIjogImh0bWwvc2VtYW50
aWNzL2xpbmtzL2ZvbGxvd2luZy1oeXBlcmxpbmtzIiwKLSAgICAiZG93bmxvYWRpbmctcmVzb3Vy
Y2VzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2Rvd25sb2FkaW5nLXJlc291cmNlcyIsCi0gICAg
Imh5cGVybGluay1hdWRpdGluZyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9kb3dubG9hZGluZy1y
ZXNvdXJjZXMiLAotICAgICJsaW5rVHlwZXMiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5
cGVzIiwKLSAgICAicmVsLWFsdGVybmF0ZSI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlw
ZXMiLAotICAgICJsaW5rLXR5cGUtYXV0aG9yIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0
eXBlcyIsCi0gICAgImxpbmstdHlwZS1ib29rbWFyayI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAotICAgICJsaW5rLXR5cGUtaGVscCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAotICAgICJyZWwtaWNvbiI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlw
ZXMiLAotICAgICJsaW5rLXR5cGUtbGljZW5zZSI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5r
dHlwZXMiLAotICAgICJsaW5rLXR5cGUtbm9mb2xsb3ciOiAiaHRtbC9zZW1hbnRpY3MvbGlua3Mv
bGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLW5vcmVmZXJyZXIiOiAiaHRtbC9zZW1hbnRpY3Mv
bGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLXByZWZldGNoIjogImh0bWwvc2VtYW50
aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgImxpbmstdHlwZS1zZWFyY2giOiAiaHRtbC9zZW1h
bnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLXN0eWxlc2hlZXQiOiAiaHRt
bC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLXRhZyI6ICJodG1s
L3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAotICAgICJzZXF1ZW50aWFsLWxpbmstdHlwZXMi
OiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLW5leHQi
OiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLXByZXYi
OiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAib3RoZXItbGluay10eXBl
cyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAotICAgICJjb21tb24taWRpb21z
IjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMiLAotICAgICJ0aGUtbWFpbi1wYXJ0LW9m
LXRoZS1jb250ZW50IjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvdGhlLW1haW4tcGFy
dC1vZi10aGUtY29udGVudCIsCi0gICAgInJlbC11cCI6ICJodG1sL3NlbWFudGljcy9jb21tb24t
aWRpb21zL3JlbC11cCIsCi0gICAgInRhZy1jbG91ZHMiOiAiaHRtbC9zZW1hbnRpY3MvY29tbW9u
LWlkaW9tcy90YWctY2xvdWRzIiwKLSAgICAiY29udmVyc2F0aW9ucyI6ICJodG1sL3NlbWFudGlj
cy9jb21tb24taWRpb21zL2NvbnZlcnNhdGlvbnMiLAotICAgICJmb290bm90ZXMiOiAiaHRtbC9z
ZW1hbnRpY3MvY29tbW9uLWlkaW9tcy9mb290bm90ZXMiLAotICAgICJkaXNhYmxlZC1lbGVtZW50
cyI6ICJodG1sL3NlbWFudGljcy9kaXNhYmxlZC1lbGVtZW50cyIsCi0gICAgInNlbGVjdG9ycyI6
ICJodG1sL3NlbWFudGljcy9zZWxlY3RvcnMiLAotICAgICJjYXNlLXNlbnNpdGl2aXR5IjogImh0
bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9jYXNlLXNlbnNpdGl2aXR5IiwKLSAgICAicHNldWRvLWNs
YXNzZXMiOiAiaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzIiwKLSAgICAi
YnJvd3NlcnMiOiAiaHRtbC9icm93c2VycyIsCi0gICAgIndpbmRvd3MiOiAiaHRtbC9icm93c2Vy
cy93aW5kb3dzIiwKLSAgICAibmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzIjogImh0bWwvYnJvd3Nl
cnMvd2luZG93cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMiLAotICAgICJuYXZpZ2F0aW5nLW5l
c3RlZC1icm93c2luZy1jb250ZXh0cy1pbi10aGUtZG9tIjogImh0bWwvYnJvd3NlcnMvd2luZG93
cy9uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMiLAotICAgICJhdXhpbGlhcnktYnJvd3NpbmctY29u
dGV4dHMiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0
cyIsCi0gICAgIm5hdmlnYXRpbmctYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzLWluLXRoZS1k
b20iOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL2F1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyIs
Ci0gICAgInNlY29uZGFyeS1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRv
d3Mvc2Vjb25kYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAic2VjdXJpdHktbmF2IjogImh0
bWwvYnJvd3NlcnMvd2luZG93cy9zZWN1cml0eS1uYXYiLAotICAgICJncm91cGluZ3Mtb2YtYnJv
d3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL2dyb3VwaW5ncy1vZi1icm93
c2luZy1jb250ZXh0cyIsCi0gICAgImJyb3dzaW5nLWNvbnRleHQtbmFtZXMiOiAiaHRtbC9icm93
c2Vycy93aW5kb3dzL2Jyb3dzaW5nLWNvbnRleHQtbmFtZXMiLAotICAgICJ0aGUtd2luZG93LW9i
amVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0IiwKLSAgICAic2VjdXJpdHkt
d2luZG93IjogImh0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvc2VjdXJpdHktd2luZG93
IiwKLSAgICAiYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJvd3NpbmctY29udGV4
dHMtYnktbmFtZSI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FwaXMtZm9yLWNy
ZWF0aW5nLWFuZC1uYXZpZ2F0aW5nLWJyb3dzaW5nLWNvbnRleHRzLWJ5LW5hbWUiLAotICAgICJh
Y2Nlc3Npbmctb3RoZXItYnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC9hY2Nlc3Npbmctb3RoZXItYnJvd3NpbmctY29udGV4dHMiLAotICAgICJuYW1l
ZC1hY2Nlc3Mtb24tdGhlLXdpbmRvdy1vYmplY3QiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC9uYW1lZC1hY2Nlc3Mtb24tdGhlLXdpbmRvdy1vYmplY3QiLAotICAgICJnYXJiYWdl
LWNvbGxlY3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzIjogImh0bWwvYnJvd3NlcnMvdGhlLXdp
bmRvdy1vYmplY3QvZ2FyYmFnZS1jb2xsZWN0aW9uLWFuZC1icm93c2luZy1jb250ZXh0cyIsCi0g
ICAgImNsb3NpbmctYnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC9jbG9zaW5nLWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAiYnJvd3Nlci1pbnRlcmZh
Y2UtZWxlbWVudHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9icm93c2VyLWlu
dGVyZmFjZS1lbGVtZW50cyIsCi0gICAgInRoZS13aW5kb3dwcm94eS1vYmplY3QiOiAiaHRtbC9i
cm93c2Vycy90aGUtd2luZG93LW9iamVjdC90aGUtd2luZG93cHJveHktb2JqZWN0IiwKLSAgICAi
b3JpZ2luIjogImh0bWwvYnJvd3NlcnMvb3JpZ2luIiwKLSAgICAicmVsYXhpbmctdGhlLXNhbWUt
b3JpZ2luLXJlc3RyaWN0aW9uIjogImh0bWwvYnJvd3NlcnMvb3JpZ2luL3JlbGF4aW5nLXRoZS1z
YW1lLW9yaWdpbi1yZXN0cmljdGlvbiIsCi0gICAgInNhbmRib3hpbmciOiAiaHRtbC9icm93c2Vy
cy9zYW5kYm94aW5nIiwKLSAgICAiaGlzdG9yeSI6ICJodG1sL2Jyb3dzZXJzL2hpc3RvcnkiLAot
ICAgICJ0aGUtc2Vzc2lvbi1oaXN0b3J5LW9mLWJyb3dzaW5nLWNvbnRleHRzIjogImh0bWwvYnJv
d3NlcnMvaGlzdG9yeS90aGUtc2Vzc2lvbi1oaXN0b3J5LW9mLWJyb3dzaW5nLWNvbnRleHRzIiwK
LSAgICAidGhlLWhpc3RvcnktaW50ZXJmYWNlIjogImh0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUt
aGlzdG9yeS1pbnRlcmZhY2UiLAotICAgICJ0aGUtbG9jYXRpb24taW50ZXJmYWNlIjogImh0bWwv
YnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlIiwKLSAgICAic2VjdXJpdHkt
bG9jYXRpb24iOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2Ui
LAotICAgICJoaXN0b3J5LW5vdGVzIjogImh0bWwvYnJvd3NlcnMvaGlzdG9yeS9oaXN0b3J5LW5v
dGVzIiwKLSAgICAiYnJvd3NpbmctdGhlLXdlYiI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRo
ZS13ZWIiLAotICAgICJuYXZpZ2F0aW5nLWFjcm9zcy1kb2N1bWVudHMiOiAiaHRtbC9icm93c2Vy
cy9icm93c2luZy10aGUtd2ViL25hdmlnYXRpbmctYWNyb3NzLWRvY3VtZW50cyIsCi0gICAgInJl
YWQtaHRtbCI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1odG1sIiwKLSAg
ICAicmVhZC14bWwiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3JlYWQteG1sIiwK
LSAgICAicmVhZC10ZXh0IjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXRl
eHQiLAotICAgICJyZWFkLW11bHRpcGFydC14LW1peGVkLXJlcGxhY2UiOiAiaHRtbC9icm93c2Vy
cy9icm93c2luZy10aGUtd2ViL3JlYWQtbXVsdGlwYXJ0LXgtbWl4ZWQtcmVwbGFjZSIsCi0gICAg
InJlYWQtbWVkaWEiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL3JlYWQtbWVkaWEi
LAotICAgICJyZWFkLXBsdWdpbiI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVh
ZC1wbHVnaW4iLAotICAgICJyZWFkLXVhLWlubGluZSI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5n
LXRoZS13ZWIvcmVhZC11YS1pbmxpbmUiLAotICAgICJzY3JvbGwtdG8tZnJhZ2lkIjogImh0bWwv
YnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9zY3JvbGwtdG8tZnJhZ2lkIiwKLSAgICAiaGlzdG9y
eS10cmF2ZXJzYWwiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJh
dmVyc2FsIiwKLSAgICAiZXZlbnQtZGVmaW5pdGlvbnMtMCI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dz
aW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwiLAotICAgICJ1bmxvYWRpbmctZG9jdW1lbnRz
IjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzIiwK
LSAgICAiZXZlbnQtZGVmaW5pdGlvbiI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIv
dW5sb2FkaW5nLWRvY3VtZW50cyIsCi0gICAgImFib3J0aW5nLWEtZG9jdW1lbnQtbG9hZCI6ICJo
dG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvYWJvcnRpbmctYS1kb2N1bWVudC1sb2FkIiwK
LSAgICAib2ZmbGluZSI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUiLAotICAgICJpbnRyb2R1Y3Rp
b24tNCI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvaW50cm9kdWN0aW9uLTQiLAotICAgICJzdXBw
b3J0aW5nLW9mZmxpbmUtY2FjaGluZy1mb3ItbGVnYWN5LWFwcGxpY2F0aW9ucyI6ICJodG1sL2Jy
b3dzZXJzL29mZmxpbmUvaW50cm9kdWN0aW9uLTQiLAotICAgICJhcHBjYWNoZWV2ZW50cyI6ICJo
dG1sL2Jyb3dzZXJzL29mZmxpbmUvaW50cm9kdWN0aW9uLTQiLAotICAgICJhcHBjYWNoZSI6ICJo
dG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUiLAotICAgICJtYW5pZmVzdHMiOiAiaHRtbC9i
cm93c2Vycy9vZmZsaW5lL21hbmlmZXN0cyIsCi0gICAgInNvbWUtc2FtcGxlLW1hbmlmZXN0cyI6
ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvbWFuaWZlc3RzIiwKLSAgICAid3JpdGluZy1jYWNoZS1t
YW5pZmVzdHMiOiAiaHRtbC9icm93c2Vycy9vZmZsaW5lL21hbmlmZXN0cyIsCi0gICAgInBhcnNp
bmctY2FjaGUtbWFuaWZlc3RzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9tYW5pZmVzdHMiLAot
ICAgICJkb3dubG9hZGluZy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSI6ICJodG1s
L2Jyb3dzZXJzL29mZmxpbmUvZG93bmxvYWRpbmctb3ItdXBkYXRpbmctYW4tYXBwbGljYXRpb24t
Y2FjaGUiLAotICAgICJ0aGUtYXBwbGljYXRpb24tY2FjaGUtc2VsZWN0aW9uLWFsZ29yaXRobSI6
ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvdGhlLWFwcGxpY2F0aW9uLWNhY2hlLXNlbGVjdGlvbi1h
bGdvcml0aG0iLAotICAgICJjaGFuZ2VzVG9OZXR3b3JraW5nTW9kZWwiOiAiaHRtbC9icm93c2Vy
cy9vZmZsaW5lL2NoYW5nZXN0b25ldHdvcmtpbmdtb2RlbCIsCi0gICAgImV4cGlyaW5nLWFwcGxp
Y2F0aW9uLWNhY2hlcyI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvZXhwaXJpbmctYXBwbGljYXRp
b24tY2FjaGVzIiwKLSAgICAiZGlzay1zcGFjZSI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvZGlz
ay1zcGFjZSIsCi0gICAgImFwcGxpY2F0aW9uLWNhY2hlLWFwaSI6ICJodG1sL2Jyb3dzZXJzL29m
ZmxpbmUvYXBwbGljYXRpb24tY2FjaGUtYXBpIiwKLSAgICAiYnJvd3Nlci1zdGF0ZSI6ICJodG1s
L2Jyb3dzZXJzL29mZmxpbmUvYnJvd3Nlci1zdGF0ZSIsCi0gICAgIndlYmFwcGFwaXMiOiAiaHRt
bC93ZWJhcHBhcGlzIiwKLSAgICAic2NyaXB0aW5nIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRp
bmciLAotICAgICJpbnRyb2R1Y3Rpb24tNSI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2lu
dHJvZHVjdGlvbi01IiwKLSAgICAiZW5hYmxpbmctYW5kLWRpc2FibGluZy1zY3JpcHRpbmciOiAi
aHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9lbmFibGluZy1hbmQtZGlzYWJsaW5nLXNjcmlwdGlu
ZyIsCi0gICAgInByb2Nlc3NpbmctbW9kZWwtMiI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMiIsCi0gICAgImRlZmluaXRpb25zLTAiOiAiaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAotICAgICJjYWxsaW5nLXNjcmlwdHMi
OiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAotICAgICJj
cmVhdGluZy1zY3JpcHRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1t
b2RlbC0yIiwKLSAgICAia2lsbGluZy1zY3JpcHRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRp
bmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKLSAgICAicnVudGltZS1zY3JpcHQtZXJyb3JzIjogImh0
bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKLSAgICAicnVudGlt
ZS1zY3JpcHQtZXJyb3JzLWluLWRvY3VtZW50cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L3Byb2Nlc3NpbmctbW9kZWwtMiIsCi0gICAgImV2ZW50LWxvb3BzIjogImh0bWwvd2ViYXBwYXBp
cy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMiLAotICAgICJkZWZpbml0aW9ucy0xIjogImh0bWwvd2Vi
YXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMiLAotICAgICJwcm9jZXNzaW5nLW1vZGVsLTMi
OiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIsCi0gICAgImdlbmVyaWMt
dGFzay1zb3VyY2VzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnQtbG9vcHMiLAot
ICAgICJqYXZhc2NyaXB0LXByb3RvY29sIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvamF2
YXNjcmlwdC1wcm90b2NvbCIsCi0gICAgImV2ZW50cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL2V2ZW50cyIsCi0gICAgImV2ZW50LWhhbmRsZXItYXR0cmlidXRlcyI6ICJodG1sL3dlYmFw
cGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCi0gICAgImV2ZW50LWhhbmRsZXJzLW9uLWVsZW1lbnRz
LC1kb2N1bWVudC1vYmplY3RzLC1hbmQtd2luZG93LW9iamVjdHMiOiAiaHRtbC93ZWJhcHBhcGlz
L3NjcmlwdGluZy9ldmVudHMiLAotICAgICJldmVudC1maXJpbmciOiAiaHRtbC93ZWJhcHBhcGlz
L3NjcmlwdGluZy9ldmVudHMiLAotICAgICJldmVudHMtYW5kLXRoZS13aW5kb3ctb2JqZWN0Ijog
Imh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwKLSAgICAiYXRvYiI6ICJodG1sL3dl
YmFwcGFwaXMvYXRvYiIsCi0gICAgInRpbWVycyI6ICJodG1sL3dlYmFwcGFwaXMvdGltZXJzIiwK
LSAgICAidXNlci1wcm9tcHRzIjogImh0bWwvd2ViYXBwYXBpcy91c2VyLXByb21wdHMiLAotICAg
ICJzaW1wbGUtZGlhbG9ncyI6ICJodG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL3NpbXBsZS1k
aWFsb2dzIiwKLSAgICAicHJpbnRpbmciOiAiaHRtbC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cy9w
cmludGluZyIsCi0gICAgImRpYWxvZ3MtaW1wbGVtZW50ZWQtdXNpbmctc2VwYXJhdGUtZG9jdW1l
bnRzIjogImh0bWwvd2ViYXBwYXBpcy91c2VyLXByb21wdHMvZGlhbG9ncy1pbXBsZW1lbnRlZC11
c2luZy1zZXBhcmF0ZS1kb2N1bWVudHMiLAotICAgICJzeXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxp
dGllcyI6ICJodG1sL3dlYmFwcGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMiLAot
ICAgICJ0aGUtbmF2aWdhdG9yLW9iamVjdCI6ICJodG1sL3dlYmFwcGFwaXMvc3lzdGVtLXN0YXRl
LWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1vYmplY3QiLAotICAgICJjbGllbnQtaWRl
bnRpZmljYXRpb24iOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0
aWVzL3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKLSAgICAiY3VzdG9tLWhhbmRsZXJzIjogImh0bWwv
d2ViYXBwYXBpcy9zeXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcy90aGUtbmF2aWdhdG9yLW9i
amVjdCIsCi0gICAgInNlY3VyaXR5LWFuZC1wcml2YWN5IjogImh0bWwvd2ViYXBwYXBpcy9zeXN0
ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcy90aGUtbmF2aWdhdG9yLW9iamVjdCIsCi0gICAgInNh
bXBsZS1oYW5kbGVyLWltcGwiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2Fw
YWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKLSAgICAibWFudWFsbHktcmVsZWFzaW5n
LXRoZS1zdG9yYWdlLW11dGV4IjogImh0bWwvd2ViYXBwYXBpcy9zeXN0ZW0tc3RhdGUtYW5kLWNh
cGFiaWxpdGllcy90aGUtbmF2aWdhdG9yLW9iamVjdCIsCi0gICAgInRoZS1leHRlcm5hbC1pbnRl
cmZhY2UiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzL3Ro
ZS1leHRlcm5hbC1pbnRlcmZhY2UiLAotICAgICJlZGl0aW5nIjogImh0bWwvZWRpdGluZyIsCi0g
ICAgInRoZS1oaWRkZW4tYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy90aGUtaGlkZGVuLWF0dHJp
YnV0ZSIsCi0gICAgImluZXJ0LXN1YnRyZWVzIjogImh0bWwvZWRpdGluZy9pbmVydC1zdWJ0cmVl
cyIsCi0gICAgInRoZS1pbmVydC1hdHRyaWJ1dGUiOiAiaHRtbC9lZGl0aW5nL2luZXJ0LXN1YnRy
ZWVzL3RoZS1pbmVydC1hdHRyaWJ1dGUiLAotICAgICJhY3RpdmF0aW9uIjogImh0bWwvZWRpdGlu
Zy9hY3RpdmF0aW9uIiwKLSAgICAiZm9jdXMiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzIiwKLSAgICAi
c2VxdWVudGlhbC1mb2N1cy1uYXZpZ2F0aW9uLWFuZC10aGUtdGFiaW5kZXgtYXR0cmlidXRlIjog
Imh0bWwvZWRpdGluZy9mb2N1cy9zZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10
YWJpbmRleC1hdHRyaWJ1dGUiLAotICAgICJmb2N1cy1tYW5hZ2VtZW50IjogImh0bWwvZWRpdGlu
Zy9mb2N1cy9mb2N1cy1tYW5hZ2VtZW50IiwKLSAgICAiZG9jdW1lbnQtbGV2ZWwtZm9jdXMtYXBp
cyI6ICJodG1sL2VkaXRpbmcvZm9jdXMvZG9jdW1lbnQtbGV2ZWwtZm9jdXMtYXBpcyIsCi0gICAg
ImVsZW1lbnQtbGV2ZWwtZm9jdXMtYXBpcyI6ICJodG1sL2VkaXRpbmcvZm9jdXMvZWxlbWVudC1s
ZXZlbC1mb2N1cy1hcGlzIiwKLSAgICAiYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0cyI6ICJo
dG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0cyIsCi0gICAgImludHJvZHVj
dGlvbi02IjogImh0bWwvZWRpdGluZy9hc3NpZ25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzL2ludHJv
ZHVjdGlvbi02IiwKLSAgICAidGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUiOiAiaHRtbC9lZGl0aW5n
L2Fzc2lnbmluZy1rZXlib2FyZC1zaG9ydGN1dHMvdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUiLAot
ICAgICJwcm9jZXNzaW5nLW1vZGVsLTQiOiAiaHRtbC9lZGl0aW5nL2Fzc2lnbmluZy1rZXlib2Fy
ZC1zaG9ydGN1dHMvcHJvY2Vzc2luZy1tb2RlbC00IiwKLSAgICAiZWRpdGluZy0wIjogImh0bWwv
ZWRpdGluZy9lZGl0aW5nLTAiLAotICAgICJjb250ZW50ZWRpdGFibGUiOiAiaHRtbC9lZGl0aW5n
L2VkaXRpbmctMC9jb250ZW50ZWRpdGFibGUiLAotICAgICJtYWtpbmctZW50aXJlLWRvY3VtZW50
cy1lZGl0YWJsZTotdGhlLWRlc2lnbm1vZGUtaWRsLWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcv
ZWRpdGluZy0wL21ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlLXRoZS1kZXNpZ25tb2Rl
LWlkbC1hdHRyaWJ1dGUiLAotICAgICJiZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3Jz
IjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvYmVzdC1wcmFjdGljZXMtZm9yLWluLXBhZ2UtZWRp
dG9ycyIsCi0gICAgImVkaXRpbmctYXBpcyI6ICJodG1sL2VkaXRpbmcvZWRpdGluZy0wL2VkaXRp
bmctYXBpcyIsCi0gICAgInNwZWxsaW5nLWFuZC1ncmFtbWFyLWNoZWNraW5nIjogImh0bWwvZWRp
dGluZy9lZGl0aW5nLTAvc3BlbGxpbmctYW5kLWdyYW1tYXItY2hlY2tpbmciLAotICAgICJkbmQi
OiAiaHRtbC9lZGl0aW5nL2RuZCIsCi0gICAgImludHJvZHVjdGlvbi03IjogImh0bWwvZWRpdGlu
Zy9kbmQvaW50cm9kdWN0aW9uLTciLAotICAgICJ0aGUtZHJhZy1kYXRhLXN0b3JlIjogImh0bWwv
ZWRpdGluZy9kbmQvdGhlLWRyYWctZGF0YS1zdG9yZSIsCi0gICAgInRoZS1kYXRhdHJhbnNmZXIt
aW50ZXJmYWNlIjogImh0bWwvZWRpdGluZy9kbmQvdGhlLWRhdGF0cmFuc2Zlci1pbnRlcmZhY2Ui
LAotICAgICJ0aGUtZGF0YXRyYW5zZmVyaXRlbWxpc3QtaW50ZXJmYWNlIjogImh0bWwvZWRpdGlu
Zy9kbmQvdGhlLWRhdGF0cmFuc2Zlci1pbnRlcmZhY2UiLAotICAgICJ0aGUtZGF0YXRyYW5zZmVy
aXRlbS1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZGF0YXRyYW5zZmVyLWludGVy
ZmFjZSIsCi0gICAgInRoZS1kcmFnZXZlbnQtaW50ZXJmYWNlIjogImh0bWwvZWRpdGluZy9kbmQv
dGhlLWRyYWdldmVudC1pbnRlcmZhY2UiLAotICAgICJkcmFnLWFuZC1kcm9wLXByb2Nlc3Npbmct
bW9kZWwiOiAiaHRtbC9lZGl0aW5nL2RuZC9kcmFnLWFuZC1kcm9wLXByb2Nlc3NpbmctbW9kZWwi
LAotICAgICJkbmRldmVudHMiOiAiaHRtbC9lZGl0aW5nL2RuZC9kbmRldmVudHMiLAotICAgICJ0
aGUtZHJhZ2dhYmxlLWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcvZG5kL3RoZS1kcmFnZ2FibGUt
YXR0cmlidXRlIiwKLSAgICAidGhlLWRyb3B6b25lLWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcv
ZG5kL3RoZS1kcm9wem9uZS1hdHRyaWJ1dGUiLAotICAgICJzZWN1cml0eS1yaXNrcy1pbi10aGUt
ZHJhZy1hbmQtZHJvcC1tb2RlbCI6ICJodG1sL2VkaXRpbmcvZG5kL3NlY3VyaXR5LXJpc2tzLWlu
LXRoZS1kcmFnLWFuZC1kcm9wLW1vZGVsIiwKLSAgICAic3ludGF4IjogImh0bWwvc3ludGF4IiwK
LSAgICAid3JpdGluZyI6ICJodG1sL3N5bnRheC93cml0aW5nIiwKLSAgICAidGhlLWRvY3R5cGUi
OiAiaHRtbC9zeW50YXgvd3JpdGluZy90aGUtZG9jdHlwZSIsCi0gICAgImVsZW1lbnRzLTAiOiAi
aHRtbC9zeW50YXgvd3JpdGluZy9lbGVtZW50cy0wIiwKLSAgICAic3RhcnQtdGFncyI6ICJodG1s
L3N5bnRheC93cml0aW5nL2VsZW1lbnRzLTAiLAotICAgICJlbmQtdGFncyI6ICJodG1sL3N5bnRh
eC93cml0aW5nL2VsZW1lbnRzLTAiLAotICAgICJhdHRyaWJ1dGVzLTAiOiAiaHRtbC9zeW50YXgv
d3JpdGluZy9lbGVtZW50cy0wIiwKLSAgICAib3B0aW9uYWwtdGFncyI6ICJodG1sL3N5bnRheC93
cml0aW5nL2VsZW1lbnRzLTAiLAotICAgICJlbGVtZW50LXJlc3RyaWN0aW9ucyI6ICJodG1sL3N5
bnRheC93cml0aW5nL2VsZW1lbnRzLTAiLAotICAgICJjZGF0YS1yY2RhdGEtcmVzdHJpY3Rpb25z
IjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCi0gICAgInRleHQiOiAiaHRtbC9z
eW50YXgvd3JpdGluZy90ZXh0IiwKLSAgICAibmV3bGluZXMiOiAiaHRtbC9zeW50YXgvd3JpdGlu
Zy90ZXh0IiwKLSAgICAiY2hhcmFjdGVyLXJlZmVyZW5jZXMiOiAiaHRtbC9zeW50YXgvd3JpdGlu
Zy9jaGFyYWN0ZXItcmVmZXJlbmNlcyIsCi0gICAgImNkYXRhLXNlY3Rpb25zIjogImh0bWwvc3lu
dGF4L3dyaXRpbmcvY2RhdGEtc2VjdGlvbnMiLAotICAgICJjb21tZW50cyI6ICJodG1sL3N5bnRh
eC93cml0aW5nL2NvbW1lbnRzIiwKLSAgICAicGFyc2luZyI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKLSAgICAib3ZlcnZpZXctb2YtdGhlLXBhcnNpbmctbW9kZWwiOiAiaHRtbC9zeW50YXgvcGFy
c2luZyIsCi0gICAgInRoZS1pbnB1dC1ieXRlLXN0cmVhbSI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKLSAgICAiZGV0ZXJtaW5pbmctdGhlLWNoYXJhY3Rlci1lbmNvZGluZyI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAiY2hhcmFjdGVyLWVuY29kaW5ncy0wIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAotICAgICJjaGFuZ2luZy10aGUtZW5jb2Rpbmctd2hpbGUtcGFyc2luZyI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKLSAgICAicHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAidGhlLWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAotICAgICJ0aGUtc3RhY2stb2Ytb3Blbi1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKLSAgICAidGhlLWxpc3Qtb2YtYWN0aXZlLWZvcm1hdHRpbmctZWxlbWVudHMiOiAiaHRtbC9z
eW50YXgvcGFyc2luZyIsCi0gICAgInRoZS1lbGVtZW50LXBvaW50ZXJzIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJvdGhlci1wYXJzaW5nLXN0YXRlLWZsYWdzIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJ0b2tlbml6YXRpb24iOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgImRhdGEtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNoYXJhY3Rlci1y
ZWZlcmVuY2UtaW4tZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmNk
YXRhLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjaGFyYWN0ZXItcmVmZXJl
bmNlLWluLXJjZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmF3dGV4
dC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBsYWludGV4dC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAidGFnLW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2lu
ZyIsCi0gICAgImVuZC10YWctb3Blbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAg
ICAidGFnLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInJjZGF0YS1s
ZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmNkYXRh
LWVuZC10YWctb3Blbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmNkYXRh
LWVuZC10YWctbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmF3dGV4
dC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmF3
dGV4dC1lbmQtdGFnLW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInJh
d3RleHQtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJz
Y3JpcHQtZGF0YS1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAic2NyaXB0LWRhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAotICAgICJzY3JpcHQtZGF0YS1lbmQtdGFnLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgv
cGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWVzY2FwZS1zdGFydC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZXNjYXBlLXN0YXJ0LWRhc2gtc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWVzY2FwZWQtc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWVzY2FwZWQtZGFzaC1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1k
YXNoLWRhc2gtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRh
LWVzY2FwZWQtbGVzcy10aGFuLXNpZ24tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgInNjcmlwdC1kYXRhLWVzY2FwZWQtZW5kLXRhZy1vcGVuLXN0YXRlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJzY3JpcHQtZGF0YS1lc2NhcGVkLWVuZC10YWctbmFtZS1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1z
dGFydC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91
YmxlLWVzY2FwZWQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1k
YXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgInNjcmlwdC1kYXRhLWRvdWJsZS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtbGVzcy10aGFu
LXNpZ24tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWRv
dWJsZS1lc2NhcGUtZW5kLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJiZWZv
cmUtYXR0cmlidXRlLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImF0
dHJpYnV0ZS1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhZnRlci1h
dHRyaWJ1dGUtbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYmVmb3Jl
LWF0dHJpYnV0ZS12YWx1ZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYXR0
cmlidXRlLXZhbHVlLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKLSAgICAiYXR0cmlidXRlLXZhbHVlLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAiYXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tYXR0cmli
dXRlLXZhbHVlLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhZnRlci1hdHRy
aWJ1dGUtdmFsdWUtKHF1b3RlZCktc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAg
InNlbGYtY2xvc2luZy1zdGFydC10YWctc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgImJvZ3VzLWNvbW1lbnQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgIm1h
cmt1cC1kZWNsYXJhdGlvbi1vcGVuLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAg
ICJjb21tZW50LXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjb21t
ZW50LXN0YXJ0LWRhc2gtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNvbW1l
bnQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNvbW1lbnQtZW5kLWRhc2gt
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNvbW1lbnQtZW5kLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjb21tZW50LWVuZC1iYW5nLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJkb2N0eXBlLXN0YXRlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAotICAgICJiZWZvcmUtZG9jdHlwZS1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAotICAgICJkb2N0eXBlLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIs
Ci0gICAgImFmdGVyLWRvY3R5cGUtbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAiYWZ0ZXItZG9jdHlwZS1wdWJsaWMta2V5d29yZC1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAiYmVmb3JlLWRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKGRv
dWJsZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJkb2N0eXBl
LXB1YmxpYy1pZGVudGlmaWVyLShzaW5nbGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAiYWZ0ZXItZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYmV0d2Vlbi1kb2N0eXBlLXB1YmxpYy1hbmQtc3lz
dGVtLWlkZW50aWZpZXJzLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhZnRl
ci1kb2N0eXBlLXN5c3RlbS1rZXl3b3JkLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAot
ICAgICJiZWZvcmUtZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci1zdGF0ZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAiZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oZG91YmxlLXF1b3Rl
ZCktc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImRvY3R5cGUtc3lzdGVtLWlk
ZW50aWZpZXItKHNpbmdsZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAot
ICAgICJhZnRlci1kb2N0eXBlLXN5c3RlbS1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJib2d1cy1kb2N0eXBlLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAotICAgICJjZGF0YS1zZWN0aW9uLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAot
ICAgICJ0b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAotICAgICJ0cmVlLWNvbnN0cnVjdGlvbiI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAg
ICAiY3JlYXRpbmctYW5kLWluc2VydGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5n
IiwKLSAgICAiY2xvc2luZy1lbGVtZW50cy10aGF0LWhhdmUtaW1wbGllZC1lbmQtdGFncyI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiZm9zdGVyLXBhcmVudGluZyI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWluaHRtbCI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKLSAgICAidGhlLWluaXRpYWwtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFy
c2luZyIsCi0gICAgInRoZS1iZWZvcmUtaHRtbC1pbnNlcnRpb24tbW9kZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAidGhlLWJlZm9yZS1oZWFkLWluc2VydGlvbi1tb2RlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5oZWFkIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5oZWFkbm9zY3JpcHQiOiAiaHRtbC9zeW50
YXgvcGFyc2luZyIsCi0gICAgInRoZS1hZnRlci1oZWFkLWluc2VydGlvbi1tb2RlIjogImh0bWwv
c3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5ib2R5IjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5jZGF0YSI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKLSAgICAicGFyc2luZy1tYWluLWludGFibGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIs
Ci0gICAgInBhcnNpbmctbWFpbi1pbnRhYmxldGV4dCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAicGFyc2luZy1tYWluLWluY2FwdGlvbiI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAg
ICAicGFyc2luZy1tYWluLWluY29sZ3JvdXAiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAg
InBhcnNpbmctbWFpbi1pbnRib2R5IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJz
aW5nLW1haW4taW50ciI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWlu
LWludGQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmctbWFpbi1pbnNlbGVj
dCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWluc2VsZWN0aW50
YWJsZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWFmdGVyYm9k
eSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWluZnJhbWVzZXQi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmctbWFpbi1hZnRlcmZyYW1lc2V0
IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUtYWZ0ZXItYWZ0ZXItYm9keS1pbnNl
cnRpb24tbW9kZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAidGhlLWFmdGVyLWFmdGVy
LWZyYW1lc2V0LWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJw
YXJzaW5nLW1haW4taW5mb3JlaWduIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUt
ZW5kIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjb2VyY2luZy1hbi1odG1sLWRvbS1p
bnRvLWFuLWluZm9zZXQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImFuLWludHJvZHVj
dGlvbi10by1lcnJvci1oYW5kbGluZy1hbmQtc3RyYW5nZS1jYXNlcy1pbi10aGUtcGFyc2VyIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJtaXNuZXN0ZWQtdGFnczotYi1pLS9iLS9pIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJtaXNuZXN0ZWQtdGFnczotYi1wLS9iLS9wIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ1bmV4cGVjdGVkLW1hcmt1cC1pbi10YWJsZXMi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdHMtdGhhdC1tb2RpZnktdGhlLXBh
Z2UtYXMtaXQtaXMtYmVpbmctcGFyc2VkIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0
aGUtZXhlY3V0aW9uLW9mLXNjcmlwdHMtdGhhdC1hcmUtbW92aW5nLWFjcm9zcy1tdWx0aXBsZS1k
b2N1bWVudHMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInVuY2xvc2VkLWZvcm1hdHRp
bmctZWxlbWVudHMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNlcmlhbGl6aW5nLWh0
bWwtZnJhZ21lbnRzIjogImh0bWwvc3ludGF4L3NlcmlhbGl6aW5nLWh0bWwtZnJhZ21lbnRzIiwK
LSAgICAicGFyc2luZy1odG1sLWZyYWdtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5nLWh0bWwt
ZnJhZ21lbnRzIiwKLSAgICAibmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMiOiAiaHRtbC9zeW50
YXgvbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMiLAotICAgICJ0aGUteGh0bWwtc3ludGF4Ijog
Imh0bWwvdGhlLXhodG1sLXN5bnRheCIsCi0gICAgIndyaXRpbmcteGh0bWwtZG9jdW1lbnRzIjog
Imh0bWwvdGhlLXhodG1sLXN5bnRheC93cml0aW5nLXhodG1sLWRvY3VtZW50cyIsCi0gICAgInBh
cnNpbmcteGh0bWwtZG9jdW1lbnRzIjogImh0bWwvdGhlLXhodG1sLXN5bnRheC9wYXJzaW5nLXho
dG1sLWRvY3VtZW50cyIsCi0gICAgInNlcmlhbGl6aW5nLXhodG1sLWZyYWdtZW50cyI6ICJodG1s
L3RoZS14aHRtbC1zeW50YXgvc2VyaWFsaXppbmcteGh0bWwtZnJhZ21lbnRzIiwKLSAgICAicGFy
c2luZy14aHRtbC1mcmFnbWVudHMiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0
bWwtZnJhZ21lbnRzIiwKLSAgICAicmVuZGVyaW5nIjogImh0bWwvcmVuZGVyaW5nIiwKLSAgICAi
aW50cm9kdWN0aW9uLTgiOiAiaHRtbC9yZW5kZXJpbmcvaW50cm9kdWN0aW9uLTgiLAotICAgICJ0
aGUtY3NzLXVzZXItYWdlbnQtc3R5bGUtc2hlZXQtYW5kLXByZXNlbnRhdGlvbmFsLWhpbnRzIjog
Imh0bWwvcmVuZGVyaW5nL3RoZS1jc3MtdXNlci1hZ2VudC1zdHlsZS1zaGVldC1hbmQtcHJlc2Vu
dGF0aW9uYWwtaGludHMiLAotICAgICJub24tcmVwbGFjZWQtZWxlbWVudHMiOiAiaHRtbC9yZW5k
ZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzIiwKLSAgICAiaGlkZGVuLWVsZW1lbnRzIjogImh0
bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9oaWRkZW4tZWxlbWVudHMiLAotICAg
ICJ0aGUtcGFnZSI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxlbWVudHMvdGhlLXBh
Z2UiLAotICAgICJmbG93LWNvbnRlbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQt
ZWxlbWVudHMvZmxvdy1jb250ZW50LTAiLAotICAgICJwaHJhc2luZy1jb250ZW50LTAiOiAiaHRt
bC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3BocmFzaW5nLWNvbnRlbnQtMCIsCi0g
ICAgImJpZGlyZWN0aW9uYWwtdGV4dCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxl
bWVudHMvYmlkaXJlY3Rpb25hbC10ZXh0IiwKLSAgICAicXVvdGVzIjogImh0bWwvcmVuZGVyaW5n
L25vbi1yZXBsYWNlZC1lbGVtZW50cy9xdW90ZXMiLAotICAgICJzZWN0aW9ucy1hbmQtaGVhZGlu
Z3MiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3NlY3Rpb25zLWFuZC1o
ZWFkaW5ncyIsCi0gICAgImxpc3RzIjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVt
ZW50cy9saXN0cyIsCi0gICAgInRhYmxlcyI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQt
ZWxlbWVudHMvdGFibGVzIiwKLSAgICAiZm9ybS1jb250cm9scyI6ICJodG1sL3JlbmRlcmluZy9u
b24tcmVwbGFjZWQtZWxlbWVudHMvZm9ybS1jb250cm9scyIsCi0gICAgInRoZS1oci1lbGVtZW50
LTAiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3RoZS1oci1lbGVtZW50
LTAiLAotICAgICJ0aGUtZmllbGRzZXQtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL25vbi1y
ZXBsYWNlZC1lbGVtZW50cy90aGUtZmllbGRzZXQtZWxlbWVudC0wIiwKLSAgICAicmVwbGFjZWQt
ZWxlbWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMiLAotICAgICJlbWJl
ZGRlZC1jb250ZW50LTEiOiAiaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvZW1iZWRk
ZWQtY29udGVudC0xIiwKLSAgICAiaW1hZ2VzIjogImh0bWwvcmVuZGVyaW5nL3JlcGxhY2VkLWVs
ZW1lbnRzL2ltYWdlcyIsCi0gICAgImF0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5k
LWltYWdlcyI6ICJodG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9hdHRyaWJ1dGVzLWZv
ci1lbWJlZGRlZC1jb250ZW50LWFuZC1pbWFnZXMiLAotICAgICJpbWFnZS1tYXBzLTAiOiAiaHRt
bC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvaW1hZ2UtbWFwcy0wIiwKLSAgICAidG9vbGJh
cnMtMCI6ICJodG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy90b29sYmFycy0wIiwKLSAg
ICAiYmluZGluZ3MiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MiLAotICAgICJpbnRyb2R1Y3Rp
b24tOSI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy9pbnRyb2R1Y3Rpb24tOSIsCi0gICAgInRo
ZS1idXR0b24tZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1idXR0b24t
ZWxlbWVudC0wIiwKLSAgICAidGhlLWRldGFpbHMtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5n
L2JpbmRpbmdzL3RoZS1kZXRhaWxzLWVsZW1lbnQtMCIsCi0gICAgInRoZS1pbnB1dC1lbGVtZW50
LWFzLWEtdGV4dC1lbnRyeS13aWRnZXQiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlu
cHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCIsCi0gICAgInRoZS1pbnB1dC1lbGVt
ZW50LWFzLWRvbWFpbi1zcGVjaWZpYy13aWRnZXRzIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdz
L3RoZS1pbnB1dC1lbGVtZW50LWFzLWRvbWFpbi1zcGVjaWZpYy13aWRnZXRzIiwKLSAgICAidGhl
LWlucHV0LWVsZW1lbnQtYXMtYS1yYW5nZS1jb250cm9sIjogImh0bWwvcmVuZGVyaW5nL2JpbmRp
bmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtcmFuZ2UtY29udHJvbCIsCi0gICAgInRoZS1pbnB1
dC1lbGVtZW50LWFzLWEtY29sb3Itd2VsbCI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUt
aW5wdXQtZWxlbWVudC1hcy1hLWNvbG9yLXdlbGwiLAotICAgICJ0aGUtaW5wdXQtZWxlbWVudC1h
cy1hLWNoZWNrYm94LWFuZC1yYWRpby1idXR0b24td2lkZ2V0cyI6ICJodG1sL3JlbmRlcmluZy9i
aW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLWNoZWNrYm94LWFuZC1yYWRpby1idXR0b24t
d2lkZ2V0cyIsCi0gICAgInRoZS1pbnB1dC1lbGVtZW50LWFzLWEtZmlsZS11cGxvYWQtY29udHJv
bCI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLWZpbGUt
dXBsb2FkLWNvbnRyb2wiLAotICAgICJ0aGUtaW5wdXQtZWxlbWVudC1hcy1hLWJ1dHRvbiI6ICJo
dG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLWJ1dHRvbiIsCi0g
ICAgInRoZS1tYXJxdWVlLWVsZW1lbnQiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLW1h
cnF1ZWUtZWxlbWVudCIsCi0gICAgInRoZS1tZXRlci1lbGVtZW50LTAiOiAiaHRtbC9yZW5kZXJp
bmcvYmluZGluZ3MvdGhlLW1ldGVyLWVsZW1lbnQtMCIsCi0gICAgInRoZS1wcm9ncmVzcy1lbGVt
ZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLXByb2dyZXNzLWVsZW1lbnQtMCIs
Ci0gICAgInRoZS1zZWxlY3QtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3Ro
ZS1zZWxlY3QtZWxlbWVudC0wIiwKLSAgICAidGhlLXRleHRhcmVhLWVsZW1lbnQtMCI6ICJodG1s
L3JlbmRlcmluZy9iaW5kaW5ncy90aGUtdGV4dGFyZWEtZWxlbWVudC0wIiwKLSAgICAidGhlLWtl
eWdlbi1lbGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWtleWdlbi1lbGVt
ZW50LTAiLAotICAgICJmcmFtZXMtYW5kLWZyYW1lc2V0cyI6ICJodG1sL3JlbmRlcmluZy9mcmFt
ZXMtYW5kLWZyYW1lc2V0cyIsCi0gICAgImludGVyYWN0aXZlLW1lZGlhIjogImh0bWwvcmVuZGVy
aW5nL2ludGVyYWN0aXZlLW1lZGlhIiwKLSAgICAibGlua3MsLWZvcm1zLC1hbmQtbmF2aWdhdGlv
biI6ICJodG1sL3JlbmRlcmluZy9pbnRlcmFjdGl2ZS1tZWRpYS9saW5rcy1mb3Jtcy1hbmQtbmF2
aWdhdGlvbiIsCi0gICAgInRoZS10aXRsZS1hdHRyaWJ1dGUtMCI6ICJodG1sL3JlbmRlcmluZy9p
bnRlcmFjdGl2ZS1tZWRpYS90aGUtdGl0bGUtYXR0cmlidXRlLTAiLAotICAgICJlZGl0aW5nLWhv
c3RzIjogImh0bWwvcmVuZGVyaW5nL2ludGVyYWN0aXZlLW1lZGlhL2VkaXRpbmctaG9zdHMiLAot
ICAgICJ0ZXh0LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiOiAiaHRtbC9yZW5k
ZXJpbmcvaW50ZXJhY3RpdmUtbWVkaWEvdGV4dC1yZW5kZXJlZC1pbi1uYXRpdmUtdXNlci1pbnRl
cmZhY2VzIiwKLSAgICAicHJpbnQtbWVkaWEiOiAiaHRtbC9yZW5kZXJpbmcvcHJpbnQtbWVkaWEi
LAotICAgICJ1bnN0eWxlZC14bWwtZG9jdW1lbnRzIjogImh0bWwvcmVuZGVyaW5nL3Vuc3R5bGVk
LXhtbC1kb2N1bWVudHMiLAotICAgICJvYnNvbGV0ZSI6ICJodG1sL29ic29sZXRlIiwKLSAgICAi
b2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMiOiAiaHRtbC9vYnNvbGV0ZS9vYnNvbGV0
ZS1idXQtY29uZm9ybWluZy1mZWF0dXJlcyIsCi0gICAgIndhcm5pbmdzLWZvci1vYnNvbGV0ZS1i
dXQtY29uZm9ybWluZy1mZWF0dXJlcyI6ICJodG1sL29ic29sZXRlL29ic29sZXRlLWJ1dC1jb25m
b3JtaW5nLWZlYXR1cmVzL3dhcm5pbmdzLWZvci1vYnNvbGV0ZS1idXQtY29uZm9ybWluZy1mZWF0
dXJlcyIsCi0gICAgIm5vbi1jb25mb3JtaW5nLWZlYXR1cmVzIjogImh0bWwvb2Jzb2xldGUvbm9u
LWNvbmZvcm1pbmctZmVhdHVyZXMiLAotICAgICJyZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0
aW9ucyI6ICJodG1sL29ic29sZXRlL3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIiwK
LSAgICAidGhlLWFwcGxldC1lbGVtZW50IjogImh0bWwvb2Jzb2xldGUvcmVxdWlyZW1lbnRzLWZv
ci1pbXBsZW1lbnRhdGlvbnMvdGhlLWFwcGxldC1lbGVtZW50IiwKLSAgICAidGhlLW1hcnF1ZWUt
ZWxlbWVudC0wIjogImh0bWwvb2Jzb2xldGUvcmVxdWlyZW1lbnRzLWZvci1pbXBsZW1lbnRhdGlv
bnMvdGhlLW1hcnF1ZWUtZWxlbWVudC0wIiwKLSAgICAiZnJhbWVzIjogImh0bWwvb2Jzb2xldGUv
cmVxdWlyZW1lbnRzLWZvci1pbXBsZW1lbnRhdGlvbnMvZnJhbWVzIiwKLSAgICAib3RoZXItZWxl
bWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXMiOiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMt
Zm9yLWltcGxlbWVudGF0aW9ucy9vdGhlci1lbGVtZW50cy1hdHRyaWJ1dGVzLWFuZC1hcGlzIiwK
LSAgICAiaWFuYSI6ICJtaWNyb2RhdGEvaWFuYSIsCi0gICAgInRleHQvaHRtbCI6ICJodG1sL2lh
bmEvdGV4dC1odG1sIiwKLSAgICAibXVsdGlwYXJ0L3gtbWl4ZWQtcmVwbGFjZSI6ICJodG1sL2lh
bmEvbXVsdGlwYXJ0LXgtbWl4ZWQtcmVwbGFjZSIsCi0gICAgImFwcGxpY2F0aW9uL3hodG1sK3ht
bCI6ICJodG1sL2lhbmEvYXBwbGljYXRpb24teGh0bWwteG1sIiwKLSAgICAiYXBwbGljYXRpb24v
eC13d3ctZm9ybS11cmxlbmNvZGVkIjogImh0bWwvaWFuYS9hcHBsaWNhdGlvbi14LXd3dy1mb3Jt
LXVybGVuY29kZWQiLAotICAgICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IjogImh0bWwvaWFuYS90ZXh0
LWNhY2hlLW1hbmlmZXN0IiwKLSAgICAicGluZy10byI6ICJodG1sL2lhbmEvcGluZy10byIsCi0g
ICAgIndlYistc2NoZW1lLXByZWZpeCI6ICJodG1sL2lhbmEvd2ViLXNjaGVtZS1wcmVmaXgiLAot
ICAgICJ0aGUtY2FudmFzLXN0YXRlIjogImNhbnZhczJkL3RoZS1jYW52YXMtc3RhdGUiLAotICAg
ICJkcmF3aW5nc3R5bGUtb2JqZWN0cyI6ICJjYW52YXMyZC9kcmF3aW5nc3R5bGUtb2JqZWN0cyIs
Ci0gICAgImxpbmUtc3R5bGVzIjogImNhbnZhczJkL2xpbmUtc3R5bGVzIiwKLSAgICAidGV4dC1z
dHlsZXMiOiAiY2FudmFzMmQvdGV4dC1zdHlsZXMiLAotICAgICJidWlsZGluZy1wYXRocyI6ICJj
YW52YXMyZC9idWlsZGluZy1wYXRocyIsCi0gICAgInBhdGgtb2JqZWN0cyI6ICJjYW52YXMyZC9w
YXRoLW9iamVjdHMiLAotICAgICJ0cmFuc2Zvcm1hdGlvbnMiOiAiY2FudmFzMmQvdHJhbnNmb3Jt
YXRpb25zIiwKLSAgICAiZmlsbC1hbmQtc3Ryb2tlLXN0eWxlcyI6ICJjYW52YXMyZC9maWxsLWFu
ZC1zdHJva2Utc3R5bGVzIiwKLSAgICAiZHJhd2luZy1yZWN0YW5nbGVzLXRvLXRoZS1jYW52YXMi
OiAiY2FudmFzMmQvZHJhd2luZy1yZWN0YW5nbGVzLXRvLXRoZS1jYW52YXMiLAotICAgICJkcmF3
aW5nLXRleHQtdG8tdGhlLWNhbnZhcyI6ICJjYW52YXMyZC9kcmF3aW5nLXRleHQtdG8tdGhlLWNh
bnZhcyIsCi0gICAgImRyYXdpbmctcGF0aHMtdG8tdGhlLWNhbnZhcyI6ICJjYW52YXMyZC9kcmF3
aW5nLXBhdGhzLXRvLXRoZS1jYW52YXMiLAotICAgICJkcmF3aW5nLWltYWdlcy10by10aGUtY2Fu
dmFzIjogImNhbnZhczJkL2RyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMiLAotICAgICJoaXQt
cmVnaW9ucyI6ICJjYW52YXMyZC9oaXQtcmVnaW9ucyIsCi0gICAgInBpeGVsLW1hbmlwdWxhdGlv
biI6ICJjYW52YXMyZC9waXhlbC1tYW5pcHVsYXRpb24iLAotICAgICJjb21wb3NpdGluZyI6ICJj
YW52YXMyZC9jb21wb3NpdGluZyIsCi0gICAgInNoYWRvd3MiOiAiY2FudmFzMmQvc2hhZG93cyIs
Ci0gICAgImRyYXdpbmctbW9kZWwiOiAiY2FudmFzMmQvZHJhd2luZy1tb2RlbCIsCi0gICAgImJl
c3QtcHJhY3RpY2VzIjogImNhbnZhczJkL2Jlc3QtcHJhY3RpY2VzIiwKLSAgICAib3ZlcnZpZXci
OiAibWljcm9kYXRhL2ludHJvZHVjdGlvbi9vdmVydmlldyIsCi0gICAgInRoZS1iYXNpYy1zeW50
YXgiOiAibWljcm9kYXRhL2ludHJvZHVjdGlvbi90aGUtYmFzaWMtc3ludGF4IiwKLSAgICAidHlw
ZWQtaXRlbXMiOiAibWljcm9kYXRhL2ludHJvZHVjdGlvbi90eXBlZC1pdGVtcyIsCi0gICAgImds
b2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMiOiAibWljcm9kYXRhL2ludHJvZHVjdGlvbi9nbG9i
YWwtaWRlbnRpZmllcnMtZm9yLWl0ZW1zIiwKLSAgICAic2VsZWN0aW5nLW5hbWVzLXdoZW4tZGVm
aW5pbmctdm9jYWJ1bGFyaWVzIjogIm1pY3JvZGF0YS9pbnRyb2R1Y3Rpb24vc2VsZWN0aW5nLW5h
bWVzLXdoZW4tZGVmaW5pbmctdm9jYWJ1bGFyaWVzIiwKLSAgICAidXNpbmctdGhlLW1pY3JvZGF0
YS1kb20tYXBpIjogIm1pY3JvZGF0YS9pbnRyb2R1Y3Rpb24vdXNpbmctdGhlLW1pY3JvZGF0YS1k
b20tYXBpIiwKLSAgICAiZW5jb2RpbmctbWljcm9kYXRhIjogIm1pY3JvZGF0YS9lbmNvZGluZy1t
aWNyb2RhdGEiLAotICAgICJ0aGUtbWljcm9kYXRhLW1vZGVsIjogIm1pY3JvZGF0YS9lbmNvZGlu
Zy1taWNyb2RhdGEvdGhlLW1pY3JvZGF0YS1tb2RlbCIsCi0gICAgIml0ZW1zIjogIm1pY3JvZGF0
YS9lbmNvZGluZy1taWNyb2RhdGEvaXRlbXMiLAotICAgICJuYW1lczotdGhlLWl0ZW1wcm9wLWF0
dHJpYnV0ZSI6ICJtaWNyb2RhdGEvZW5jb2RpbmctbWljcm9kYXRhL25hbWVzLXRoZS1pdGVtcHJv
cC1hdHRyaWJ1dGUiLAotICAgICJ2YWx1ZXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0
YS92YWx1ZXMiLAotICAgICJhc3NvY2lhdGluZy1uYW1lcy13aXRoLWl0ZW1zIjogIm1pY3JvZGF0
YS9lbmNvZGluZy1taWNyb2RhdGEvYXNzb2NpYXRpbmctbmFtZXMtd2l0aC1pdGVtcyIsCi0gICAg
Im1pY3JvZGF0YS1hbmQtb3RoZXItbmFtZXNwYWNlcyI6ICJtaWNyb2RhdGEvZW5jb2RpbmctbWlj
cm9kYXRhL21pY3JvZGF0YS1hbmQtb3RoZXItbmFtZXNwYWNlcyIsCi0gICAgIm1pY3JvZGF0YS1k
b20tYXBpIjogIm1pY3JvZGF0YS9taWNyb2RhdGEtZG9tLWFwaSIsCi0gICAgImh0bWxwcm9wZXJ0
aWVzY29sbGVjdGlvbiI6ICJtaWNyb2RhdGEvbWljcm9kYXRhLWRvbS1hcGkvaHRtbHByb3BlcnRp
ZXNjb2xsZWN0aW9uIiwKLSAgICAiY29udmVydGluZy1odG1sLXRvLW90aGVyLWZvcm1hdHMiOiAi
bWljcm9kYXRhL2NvbnZlcnRpbmctaHRtbC10by1vdGhlci1mb3JtYXRzIiwKLSAgICAianNvbiI6
ICJtaWNyb2RhdGEvY29udmVydGluZy1odG1sLXRvLW90aGVyLWZvcm1hdHMvanNvbiIKLX0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFu
aWZlc3QuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5ZTM3MTdhYjU2NDQ2Mzcz
YjdiNzFjMDUyYmVhZjcyYzAxZTMxOGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zY3JpcHRzL21hbmlmZXN0LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAg
QEAKLS8vIGdyYWIgdGVzdCBtZXRhZGF0YSBmcm9tIGEgdGVzdCBmaWxlCi1mdW5jdGlvbiBfX3Jl
c3VsdF9oYW5kbGVyKCkgewotCi0gICAgZnVuY3Rpb24gX19nZXRfbWV0YWRhdGEoKSB7Ci0gICAg
ICAgIHZhciBvYmogPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgIHZhciBhdXRob3IgPSBbXTsKLSAg
ICAgICAgdmFyIGFzc2VydCA9IFtdOwotICAgICAgICB2YXIgaGVscCA9IFtdOwotICAgICAgICB2
YXIgbWF0Y2ggPSBbXTsKLSAgICAgICAgdmFyIG1pc21hdGNoID0gW107Ci0gICAgICAgIHZhciBm
bGFncyA9IFtdOwotICAgICAgICB2YXIgbm9kZXM7Ci0KLSAgICAgICAgbm9kZXMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0iYXV0aG9yIl0nKTsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIGhyZWYg
PSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKLSAgICAgICAgICAgIHZhciB0aXRsZSA9
IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgidGl0bGUiKTsKLSAgICAgICAgICAgIHZhciBzID0gdGl0
bGU7Ci0gICAgICAgICAgICBpZiAoaHJlZiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcyAr
PSAiIDwiICsgaHJlZiArICI+IjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dGhvci5w
dXNoKHMpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouYXV0
aG9yID0gYXV0aG9yOwotICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
J21ldGFbbmFtZT0iYXNzZXJ0Il0nKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rl
cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgYXNzZXJ0LnB1c2gobm9kZXNbaV0uZ2V0QXR0
cmlidXRlKCJjb250ZW50IikpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2Rlcy5sZW5ndGgg
PiAwKSBvYmouYXNzZXJ0ID0gYXNzZXJ0OwotICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJoZWxwIl0nKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaGVscC5wdXNoKG5vZGVzW2ld
LmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLSAgICAgICAgfQotICAgICAgICBpZiAobm9kZXMubGVu
Z3RoID4gMCkgb2JqLmhlbHAgPSBoZWxwOwotICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtYXRjaCJdJyk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIG1hdGNoLnB1c2gobm9kZXNb
aV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2Rlcy5s
ZW5ndGggPiAwKSBvYmoubWF0Y2ggPSBtYXRjaDsKLSAgICAgICAgbm9kZXMgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ibWlzbWF0Y2giXScpOwotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBtaXNtYXRjaC5w
dXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLm1hdGNoID0gbWlzbWF0Y2g7Ci0gICAgICAgIG5vZGVz
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWV0YVtuYW1lPSJmbGFncyJdJyk7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAg
IGZsYWdzLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50IikpOwotICAgICAgICB9
Ci0gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouZmxhZ3MgPSBmbGFnczsKLQotICAg
ICAgICByZXR1cm4gb2JqOwotICAgIH0KLQotICAgIHZhciBtZXRhID0gX19nZXRfbWV0YWRhdGEo
KTsKLSAgICB2YXIgbm9kZXM7Ci0KLSAgICBmdW5jdGlvbiBjb3B5KG9iaiwgcHJvcCwgYXJyKSB7
Ci0gICAgICAgIGlmICh0eXBlb2YgYXJyICE9PSAidW5kZWZpbmVkIikgewotICAgICAgICAgICAg
dmFyIGEgPSBbXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpPGFyci5sZW5ndGg7aSsr
KSB7Ci0gICAgICAgICAgICAgICAgYVtpXSA9IGFycltpXTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIG9ialtwcm9wXSA9IGE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLQotICAgIHZhciByZXQg
PSBuZXcgT2JqZWN0KCk7Ci0gICAgcmV0LmxvY2F0aW9uID0gZG9jdW1lbnQubG9jYXRpb24uaHJl
ZjsKLSAgICByZXQudHlwZSAgPSAibWFudWFsIjsKLSAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0
KCk7Ci0KLSAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMk
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0nKTsKLSAgICBpZiAobm9kZSAhPT0gbnVsbCkg
ewotICAgICAgICByZXQudHlwZSA9ICJzY3JpcHQiOwotICAgIH0KLQotICAgIGlmIChyZXQudHlw
ZSA9PT0gInNjcmlwdCIpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBtZXRhZGF0YV9nZW5lcmF0b3Ig
PT09ICJ1bmRlZmluZWQiCi0gICAgICAgICAgICB8fCBPYmplY3Qua2V5cyhtZXRhZGF0YV9nZW5l
cmF0b3IuY3VycmVudE1ldGFkYXRhKS5sZW5ndGggPT09IDApCi0gICAgICAgICAgICByZXR1cm4g
IldSQVBQRVI6VFJZX0FHQUlOIjsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBrZXkgaW4gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YSkgewotICAgICAgICAg
ICAgICAgIHZhciBvYmogPSBtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRhW2tleV07
Ci0gICAgICAgICAgICAgICAgdmFyIG5ld3Rlc3QgPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgICAg
ICAgICAgcmV0LnRlc3RzW2tleV09IG5ld3Rlc3Q7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVv
ZiBvYmouaGVscCA9PT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAgICAgICAgICAgY29weShu
ZXd0ZXN0LCAiaGVscCIsIG1ldGEuaGVscCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0
eXBlb2Ygb2JqLmhlbHAgPT09ICJzdHJpbmciKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5ld3Rl
c3QuaGVscCA9IFsgb2JqLmhlbHAgXTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAidW5kZWZpbmVkIikgewotICAgICAgICAgICAg
ICAgICAgICBjb3B5KG5ld3Rlc3QsICJhdXRob3IiLCBtZXRhLmF1dGhvcik7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmF1dGhvciA9PT0gInN0cmluZyIpIHsKLSAgICAg
ICAgICAgICAgICAgICAgbmV3dGVzdC5hdXRob3IgPSBbIG9iai5hdXRob3IgXTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmouYXNzZXJ0ID09PSAidW5k
ZWZpbmVkIikgewotICAgICAgICAgICAgICAgICAgICBjb3B5KG5ld3Rlc3QsICJhc3NlcnQiLCBt
ZXRhLmFzc2VydCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmFzc2Vy
dCA9PT0gInN0cmluZyIpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3dGVzdC5hc3NlcnQgPSBb
IG9iai5hc3NlcnQgXTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29weShu
ZXd0ZXN0LCAibWF0Y2giLCBtZXRhLm1hdGNoKTsKLSAgICAgICAgICAgICAgICBjb3B5KG5ld3Rl
c3QsICJtaXNtYXRjaCIsIG1ldGEubWlzbWF0Y2gpOwotICAgICAgICAgICAgICAgIGNvcHkobmV3
dGVzdCwgImZsYWdzIiwgbWV0YS5mbGFncyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdmFyIG5ld3Rlc3Qg
PSBtZXRhOwotICAgICAgICByZXQudGVzdHNbZG9jdW1lbnQudGl0bGVdPSBuZXd0ZXN0OwotCi0g
ICAgICAgIGlmICh0eXBlb2YgbmV3dGVzdC5tYXRjaCAhPT0gInVuZGVmaW5lZCIKLSAgICAgICAg
ICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotICAgICAg
ICAgICAgcmV0LnR5cGUgPSAicmVmdGVzdCI7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
cmV0OwotICAgIH0KLQotfQotCi1mdW5jdGlvbiBfX2dpdmVfdXAoKSB7Ci0gICAgdmFyIHJldCA9
IG5ldyBPYmplY3QoKTsKLSAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
OwotICAgIHJldC50eXBlICA9ICJtYW51YWwiOwotICAgIHJldC50ZXN0cyA9IG5ldyBPYmplY3Qo
KTsKLQotICAgIHZhciBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyQ9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiXScpOwotICAgIGlmIChub2RlICE9PSBudWxsKSB7
Ci0gICAgICAgIHJldC50eXBlID0gInNjcmlwdCI7Ci0gICAgfSBlbHNlIGlmICh0eXBlb2YgbmV3
dGVzdC5tYXRjaCAhPT0gInVuZGVmaW5lZCIKLSAgICAgICAgICAgICAgIHx8IHR5cGVvZiBuZXd0
ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotICAgICAgICByZXQudHlwZSA9ICJyZWZ0
ZXN0IjsKLSAgICB9Ci0KLSAgICB2YXIgbmV3dGVzdCA9IF9fZ2V0X21ldGFkYXRhKCk7Ci0gICAg
cmV0LnRlc3RzW2RvY3VtZW50LnRpdGxlXT0gbmV3dGVzdDsKLQotICAgIHJldHVybiByZXQ7Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NjcmlwdHMvcGFja2FnZS5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3BhY2thZ2UuanNvbgpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTYxOGY2NjkxZjVmZjJlZTFhM2RmNmUwOGVjMzhiMjNjYzI5NGZj
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvcGFja2Fn
ZS5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotewotICAgICJuYW1lIjogICAg
ICJjb252ZXJ0IgotLCAgICJ2ZXJzaW9uIjogICIwLjAuMSIKLSwgICAicHJpdmF0ZSI6ICB0cnVl
Ci0sICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgIm1rZGlycCI6ICAgICAgICIqIgotICAg
ICwgICAid3JlbmNoIjogICAgICAgIioiCi0gICAgLCAgICJ1bmRlcnNjb3JlIjogICAiKiIKLSAg
ICAsICAgImpzZG9tIjogICAgICAgICIqIgotICAgIH0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Njcmlw
dHMvdG9jLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTdiNzE4MTQzZjkzMTMy
MDA3Nzc2ODZlMjM2M2M5MzZlNjQ5ZDcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc2NyaXB0cy90b2MuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcgKzAsMCBAQAot
Ly8gZ3JhYiB0aGUgdGFibGUgb2YgY29udGVudHMgZmlsbGVkIHdpdGggYWxsIHRoZSBhbmNob3Jz
Ci1mdW5jdGlvbiBfX3Jlc3VsdF9oYW5kbGVyKCkgewotICAgIGZ1bmN0aW9uIGdldE1hcCgpIHsK
LSAgICAgICAgdmFyIHRvY19lbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRl
bnRzIikubmV4dEVsZW1lbnRTaWJsaW5nOwotCi0gICAgICAgIGZ1bmN0aW9uIGdldFNlY3Rpb24o
KSB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBnZXRJZHMobm9kZSkgewotICAgICAgICAgICAgICAg
IHZhciBhID0gW107Ci0KLSAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSBub2RlLnF1ZXJ5U2Vs
ZWN0b3JBbGwoJypbaWRdJyk7Ci0gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
b2Rlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICBhLnB1c2gobm9kZXNbaV0u
Z2V0QXR0cmlidXRlKCJpZCIpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGE7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGdldFRPQ0lk
cygpIHsKLSAgICAgICAgICAgICAgICB2YXIgYSA9IFtdOwotCi0gICAgICAgICAgICAgICAgdmFy
IG5vZGVzID0gdG9jX2VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGknKTsKLSAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciBocmVmID0gbm9kZXNbaV0uZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmli
dXRlKCJocmVmIik7Ci0gICAgICAgICAgICAgICAgICAgIGEucHVzaChocmVmLnN1YnN0cmluZygx
KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBhOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOwotICAgICAgICAg
ICAgdmFyIGlkcyA9IGdldElkcyhkb2N1bWVudCk7Ci0gICAgICAgICAgICB2YXIgdG9jID0gZ2V0
VE9DSWRzKCk7Ci0KLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdG9jLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGtleTEgPSB0b2NbaS0xXTsKLSAgICAgICAgICAg
ICAgICB2YXIga2V5MiA9IHRvY1tpXTsKLSAgICAgICAgICAgICAgICB2YXIgbWFwID0gW107Ci0K
LSAgICAgICAgICAgICAgICB2YXIgaW5kZXgxID0gaWRzLmluZGV4T2Yoa2V5MSk7Ci0gICAgICAg
ICAgICAgICAgdmFyIGluZGV4MiA9IGlkcy5pbmRleE9mKGtleTIpOwotCi0gICAgICAgICAgICAg
ICAgaWYgKChpbmRleDItaW5kZXgxKSA+IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2
YXIgaiA9IGluZGV4MSsxOyBqIDwgaW5kZXgyO2orKykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgbWFwLnB1c2goaWRzW2pdKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgIG9ialtrZXkxXSA9IG1hcDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIga2V5ID0gdG9jW3RvYy5sZW5ndGgt
MV07Ci0gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gaWRzLmluZGV4T2Yoa2V5KTsKLSAgICAg
ICAgICAgICAgICB2YXIgbWFwID0gW107Ci0KLSAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0g
aW5kZXgrMTsgaiA8IGlkcy5sZW5ndGg7aisrKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1hcC5w
dXNoKGlkc1tqXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG9ialtrZXld
ID0gbWFwOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gb2JqOwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc2VjdGlvbihpZCkgewotICAgICAgICAgICAgdGhpcy5p
ZCA9IGlkOwotICAgICAgICB9Ci0gICAgICAgIGZ1bmN0aW9uIGFkZFN1YlNlY3Rpb24oc2VjdGlv
biwgc3ViKSB7Ci0gICAgICAgICAgICBpZiAodHlwZW9mIHNlY3Rpb24uc2VjdGlvbnMgPT09ICJ1
bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICAgICAgc2VjdGlvbi5zZWN0aW9ucyA9IFtdOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgc2VjdGlvbi5zZWN0aW9ucy5wdXNoKHN1Yik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBsaShlbCwgbWFwKSB7Ci0gICAgICAgICAgICB2YXIg
b2JqID0gbmV3IHNlY3Rpb24oZWwuZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVm
Iikuc3Vic3RyaW5nKDEpKTsKLSAgICAgICAgICAgIG9iai50aXRsZSA9IGVsLmZpcnN0RWxlbWVu
dENoaWxkLnRleHRDb250ZW50OwotICAgICAgICAgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVt
ZW50Q2hpbGQ7Ci0KLSAgICAgICAgICAgIHZhciBtID0gbWFwW29iai5pZF07Ci0gICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG0ubGVuZ3RoOyBpKyspICB7Ci0gICAgICAgICAgICAgICAg
dmFyIHN1YiA9IG5ldyBzZWN0aW9uKG1baV0pOwotICAgICAgICAgICAgICAgIGFkZFN1YlNlY3Rp
b24ob2JqLCBzdWIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgd2hpbGUgKGNoaWxkICE9
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVOYW1lID09PSAiT0wiKSBv
bChjaGlsZCwgb2JqLCBtYXApOwotICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQubmV4dEVs
ZW1lbnRTaWJsaW5nOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG9iajsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIG9sKGVsLCBzZWN0aW9uLCBtYXApIHsKLSAgICAg
ICAgICAgIHZhciBjaGlsZCA9IGVsLmZpcnN0RWxlbWVudENoaWxkOwotICAgICAgICAgICAgd2hp
bGUgKGNoaWxkICE9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgYWRkU3ViU2VjdGlvbihzZWN0
aW9uLCBsaShjaGlsZCwgbWFwKSk7Ci0gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5uZXh0
RWxlbWVudFNpYmxpbmc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIg
bWFwID0gZ2V0U2VjdGlvbigpOwotICAgICAgICB2YXIgbWFpbiA9IG5ldyBzZWN0aW9uKCJfX19t
YWluX19fIik7Ci0gICAgICAgIG1haW4udGl0bGUgPSBkb2N1bWVudC50aXRsZTsKLQotICAgICAg
ICBvbCh0b2NfZWxlbWVudCwgbWFpbiwgbWFwKTsKLQotICAgICAgICByZXR1cm4gbWFpbjsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gZ2V0TWFwKCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBkYXRlLWRpcmVj
dG9yeS1zdHJ1Y3R1cmUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBkYXRlLWRpcmVjdG9yeS1zdHJ1Y3R1cmUuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNzNkOTNhYzk2YjE5ZmVhM2QwZjc4ZDYxZGYxNTA1
YjhhMDZlM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRz
L3VwZGF0ZS1kaXJlY3Rvcnktc3RydWN0dXJlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICsw
LDAgQEAKLQotLy8gY29udmVydCBmcm9tIG9sZC1zdHlsZSB0ZXN0IHN0cnVjdHVyZSB0byBuZXcg
c3R5bGUKLQotdmFyIGZzID0gcmVxdWlyZSgiZnMiKQotLCAgIHB0aCA9IHJlcXVpcmUoInBhdGgi
KQotLCAgIGpzZG9tID0gcmVxdWlyZSgianNkb20iKQotLCAgIG1rZGlycCA9IHJlcXVpcmUoIm1r
ZGlycCIpLnN5bmMKLSwgICB0ZXN0RGlyID0gcHRoLmpvaW4oX19kaXJuYW1lLCAiLi4vLi4iKQot
LCAgIE1BWF9ERVBUSCA9IDMKLSwgICBpZDJwYXRoID0ge30KLSwgICBsaW1pdERlcHRoID0gewot
ICAgICAgICBwYXJzaW5nOiAgICB0cnVlCi0gICAgfQotOwotCi12YXIgc2VjdGlvbnMgPSB7Ci0g
ICAgaHRtbDogICAgICAgImh0dHA6Ly93d3cudzMub3JnL2h0bWwvd2cvZHJhZnRzL2h0bWwvbWFz
dGVyL092ZXJ2aWV3Lmh0bWwiCi0sICAgY2FudmFzMmQ6ICAgImh0dHA6Ly93d3cudzMub3JnL2h0
bWwvd2cvZHJhZnRzLzJkY29udGV4dC9odG1sNV9jYW52YXMvT3ZlcnZpZXcuaHRtbCIKLSwgICBt
aWNyb2RhdGE6ICAiaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy9kcmFmdHMvbWljcm9kYXRhL21h
c3Rlci9PdmVydmlldy5odG1sIgotfTsKLQotZnVuY3Rpb24gd2Fsa1RyZWUgKCQsICRlbCwgbGlz
dCkgewotICAgICRlbC5maW5kKCI+IGxpIikuZWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZh
ciAkbGkgPSAkKHRoaXMpCi0gICAgICAgICwgICAkYSA9ICRsaS5maW5kKCI+IGEiKS5maXJzdCgp
Ci0gICAgICAgIDsKLSAgICAgICAgLy8gc2tpcCBzZWN0aW9ucyB0aGF0IGRvbid0IGhhdmUgYSBu
dW1iZXIKLSAgICAgICAgaWYgKCEvXlxzKlxkKy8udGVzdCgkYS50ZXh0KCkpKSByZXR1cm47Ci0g
ICAgICAgIHZhciBocmVmID0gJGEuYXR0cigiaHJlZiIpLnJlcGxhY2UoL14uKiMvLCAiIikKLSAg
ICAgICAgLCAgIGRlZiA9IHsKLSAgICAgICAgICAgICAgICBpZDogaHJlZi50b0xvd2VyQ2FzZSgp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcLV0vZywgIi0iKQot
ICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wtezIsfS9nLCAiLSIpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKD86XlwtfFwtJCkvZywgIiIpCi0gICAgICAgICAg
ICAsICAgb3JpZ2luYWxfaWQ6IGhyZWYKLSAgICAgICAgICAgIH0KLSAgICAgICAgLCAgICRvbCA9
ICRsaS5maW5kKCI+IG9sIikuZmlyc3QoKQotICAgICAgICA7Ci0gICAgICAgIGlmICgkb2wubGVu
Z3RoKSB7Ci0gICAgICAgICAgICBkZWYuY2hpbGRyZW4gPSBbXTsKLSAgICAgICAgICAgIHdhbGtU
cmVlKCQsICRvbCwgZGVmLmNoaWxkcmVuKTsKLSAgICAgICAgfQotICAgICAgICBsaXN0LnB1c2go
ZGVmKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gZXh0cmFjdFNlY3Rpb25zIChzZWMsIHNlY0Rp
ciwgc3BlYywgY2IpIHsKLSAgICBqc2RvbS5lbnYoCi0gICAgICAgIHNwZWMKLSAgICAsICAgZnVu
Y3Rpb24gKGVyciwgd2luZG93KSB7Ci0gICAgICAgICAgICBpZiAoZXJyKSByZXR1cm4gY2IoZXJy
KTsKLSAgICAgICAgICAgIGpzZG9tLmpRdWVyeWlmeSh3aW5kb3csICJodHRwczovL2FqYXguZ29v
Z2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjguMy9qcXVlcnkubWluLmpzIiwgZnVuY3Rp
b24gKHdpbmRvdywgJCkgewotICAgICAgICAgICAgICAgIGlmICghJCkgcmV0dXJuIGNiKCIkIHdh
cyBub3QgZGVmaW5lZCIpOwotICAgICAgICAgICAgICAgIHZhciAkcm9vdCA9ICQoImJvZHkgPiBv
bC50b2MiKS5maXJzdCgpCi0gICAgICAgICAgICAgICAgLCAgIHRyZWUgPSBbXQotICAgICAgICAg
ICAgICAgIDsKLSAgICAgICAgICAgICAgICB3YWxrVHJlZSgkLCAkcm9vdCwgdHJlZSk7Ci0gICAg
ICAgICAgICAgICAgY2IobnVsbCwgdHJlZSwgc2VjLCBzZWNEaXIpOwotICAgICAgICAgICAgfQot
ICAgICAgICApOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBtYWtlSUQyUGF0aCAoYmFzZSwgdHJl
ZSkgewotICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHJlZS5sZW5ndGg7IGkgPCBuOyBpKyspIHsK
LSAgICAgICAgdmFyIHNlYyA9IHRyZWVbaV07Ci0gICAgICAgIGlkMnBhdGhbc2VjLm9yaWdpbmFs
X2lkXSA9IGJhc2U7Ci0gICAgICAgIGlmIChzZWMuY2hpbGRyZW4gJiYgc2VjLmNoaWxkcmVuLmxl
bmd0aCkgbWFrZUlEMlBhdGgoYmFzZSwgc2VjLmNoaWxkcmVuKTsKLSAgICB9Ci19Ci0KLWZ1bmN0
aW9uIG1ha2VEaXJzIChiYXNlLCB0cmVlLCBkZXB0aCkgewotICAgIGNvbnNvbGUubG9nKCJNYWtp
bmcgIiArIGJhc2UgKyAiIGF0IGRlcHRoICIgKyBkZXB0aCk7Ci0gICAgZm9yICh2YXIgaSA9IDAs
IG4gPSB0cmVlLmxlbmd0aDsgaSA8IG47IGkrKykgewotICAgICAgICB2YXIgc2VjID0gdHJlZVtp
XQotICAgICAgICAsICAgcGF0aCA9IHB0aC5qb2luKGJhc2UsIHNlYy5pZCkKLSAgICAgICAgOwot
ICAgICAgICBta2RpcnAocGF0aCk7Ci0gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRoLmpvaW4o
cGF0aCwgIi5naXRrZWVwIiksICIiLCAidXRmOCIpOwotICAgICAgICBpZDJwYXRoW3NlYy5vcmln
aW5hbF9pZF0gPSBwYXRoOwotICAgICAgICBpZiAoc2VjLmlkICE9PSBzZWMub3JpZ2luYWxfaWQp
IHsKLSAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRoLmpvaW4ocGF0aCwgIm9yaWdpbmFs
LWlkLmpzb24iKSwgSlNPTi5zdHJpbmdpZnkoeyBvcmlnaW5hbF9pZDogc2VjLm9yaWdpbmFsX2lk
fSksICJ1dGY4Iik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNlYy5jaGlsZHJlbiAmJiBzZWMu
Y2hpbGRyZW4ubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpZiAoZGVwdGggPT09IE1BWF9ERVBUSCB8
fCBsaW1pdERlcHRoW3NlYy5pZF0pIHsKLSAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5j
KHB0aC5qb2luKHBhdGgsICJjb250YWlucy5qc29uIiksIEpTT04uc3RyaW5naWZ5KHNlYy5jaGls
ZHJlbiwgbnVsbCwgNCksICJ1dGY4Iik7Ci0gICAgICAgICAgICAgICAgbWFrZUlEMlBhdGgocGF0
aCwgc2VjLmNoaWxkcmVuKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgIG1ha2VEaXJzKHBhdGgsIHNlYy5jaGlsZHJlbiwgZGVwdGggKyAxKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotZm9yICh2YXIgc2VjIGluIHNlY3Rp
b25zKSB7Ci0gICAgdmFyIHNlY0RpciA9IHB0aC5qb2luKHRlc3REaXIsIHNlYyk7Ci0gICAgbWtk
aXJwKHNlY0Rpcik7Ci0gICAgY29uc29sZS5sb2coIkxhdW5jaGluZyBleHRyYWN0aW9uIGZvciAi
ICsgc2VjKTsKLSAgICBleHRyYWN0U2VjdGlvbnMoc2VjLCBzZWNEaXIsIHNlY3Rpb25zW3NlY10s
IGZ1bmN0aW9uIChlcnIsIHRvYywgc2VjLCBzZWNEaXIpIHsKLSAgICAgICAgaWYgKGVycikgcmV0
dXJuIGNvbnNvbGUubG9nKCJFUlJPUjogIiArIGVycik7Ci0gICAgICAgIG1ha2VEaXJzKHNlY0Rp
ciwgdG9jLCAxKTsKLSAgICAgICAgZm9yICh2YXIgayBpbiBpZDJwYXRoKSBpZDJwYXRoW2tdID0g
aWQycGF0aFtrXS5yZXBsYWNlKHRlc3REaXIgKyAiLyIsICIiKTsKLSAgICAgICAgZnMud3JpdGVG
aWxlU3luYyhwdGguam9pbihfX2Rpcm5hbWUsICJpZDJwYXRoLmpzb24iKSwgSlNPTi5zdHJpbmdp
ZnkoaWQycGF0aCwgbnVsbCwgNCksICJ1dGY4Iik7Ci0gICAgfSk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZlYjliMjYyNzNlMmZjNmVkOWY0NDYxOGY0ZDliNTBiZWIzMzQ2ODAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQy
cGF0aC5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zY3JpcHRzL21hbmlmZXN0LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3BhY2thZ2UuanNvbgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBk
YXRlLWRpcmVjdG9yeS1zdHJ1Y3R1cmUuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWIzNTZlOWU2Y2Ex
NGVjNzRhOWU4ZDczMGU5NTYyMzQ2ZTE0OTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NlcnZlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVz
dF9mdW5jdGlvbmFsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93YXZlLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVu
dGF0aW9uL01ha2VmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWViYWZjZDZkNjBmMTI5Y2I1YzYyNmZiMmUwNGQ0MGY3OGUzNzVkYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL01h
a2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLSMgTWFrZWZpbGUgZm9yIFNw
aGlueCBkb2N1bWVudGF0aW9uCi0jCi0KLSMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZy
b20gdGhlIGNvbW1hbmQgbGluZS4KLVNQSElOWE9QVFMgICAgPQotU1BISU5YQlVJTEQgICA9IHNw
aGlueC1idWlsZAotUEFQRVIgICAgICAgICA9Ci1CVUlMRERJUiAgICAgID0gX2J1aWxkCi0KLSMg
SW50ZXJuYWwgdmFyaWFibGVzLgotUEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6
ZT1hNAotUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKLUFMTFNQ
SElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikp
ICQoU1BISU5YT1BUUykgLgotCi0uUEhPTlk6IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNpbmds
ZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBsYXRl
eHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0Ci0KLWhlbHA6Ci0JQGVjaG8g
IlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCi0J
QGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKLQlAZWNo
byAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRp
cmVjdG9yaWVzIgotCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBI
VE1MIGZpbGUiCi0JQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIKLQlA
ZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIKLQlAZWNobyAiICBodG1saGVs
cCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJvamVjdCIKLQlAZWNobyAi
ICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIKLQlA
ZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2pl
Y3QiCi0JQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIiCi0JQGVjaG8gIiAgbGF0
ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBF
Uj1sZXR0ZXIiCi0JQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBy
dW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgotCUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0
ZXh0IGZpbGVzIgotCUBlY2hvICIgIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCi0J
QGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2Fk
ZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCi0JQGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwg
ZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eSIKLQlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1
biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQp
IgotCi1jbGVhbjoKLQktcm0gLXJmICQoQlVJTERESVIpLyoKLQotaHRtbDoKLQkkKFNQSElOWEJV
SUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAotCUBlY2hvCi0J
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikv
aHRtbC4iCi0KLWRpcmh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hl
ZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgotCi1zaW5nbGVo
dG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJV
SUxERElSKS9zaW5nbGVodG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBI
VE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCi0KLXBpY2tsZToKLQkkKFNQ
SElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNrbGUK
LQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUg
cGlja2xlIGZpbGVzLiIKLQotanNvbjoKLQkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvanNvbgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
OyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKLQotaHRtbGhlbHA6Ci0JJChT
UEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1s
aGVscAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRN
TCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCi0JICAgICAgIi5oaHAgcHJvamVjdCBmaWxlIGlu
ICQoQlVJTERESVIpL2h0bWxoZWxwLiIKLQotcXRoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1iIHF0
aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAotCUBlY2hvCi0JQGVjaG8g
IkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9yIiB3
aXRoIHRoZSIgXAotCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvcXRo
ZWxwLCBsaWtlIHRoaXM6IgotCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJTERE
SVIpL3F0aGVscC9zaXgucWhjcCIKLQlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKLQlA
ZWNobyAiIyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC9zaXgu
cWhjIgotCi1kZXZoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1iIGRldmhlbHAgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9kZXZoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIG1rZGlyIC1wICQk
SE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC9zaXgiCi0JQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJ
UikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvc2l4IgotCUBlY2hvICIjIGRl
dmhlbHAiCi0KLWVwdWI6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL2VwdWIKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIGVw
dWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKLQotbGF0ZXg6Ci0JJChTUEhJTlhCVUlM
RCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAotCUBlY2hvCi0J
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L2xhdGV4LiIKLQlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVuIHRo
ZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAotCSAgICAgICIodXNlIFxgbWFrZSBsYXRleHBkZicg
aGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKLQotbGF0ZXhwZGY6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAotCUBlY2hv
ICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4iCi0JbWFrZSAtQyAkKEJV
SUxERElSKS9sYXRleCBhbGwtcGRmCi0JQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUgUERG
IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCi0KLXRleHQ6Ci0JJChTUEhJTlhCVUlM
RCkgLWIgdGV4dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleHQKLQlAZWNobwotCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3Rl
eHQuIgotCi1tYW46Ci0JJChTUEhJTlhCVUlMRCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvbWFuCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51YWwg
cGFnZXMgYXJlIGluICQoQlVJTERESVIpL21hbi4iCi0KLWNoYW5nZXM6Ci0JJChTUEhJTlhCVUlM
RCkgLWIgY2hhbmdlcyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2NoYW5nZXMKLQlAZWNo
bwotCUBlY2hvICJUaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9jaGFuZ2VzLiIK
LQotbGlua2NoZWNrOgotCSQoU1BISU5YQlVJTEQpIC1iIGxpbmtjaGVjayAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2xpbmtjaGVjawotCUBlY2hvCi0JQGVjaG8gIkxpbmsgY2hlY2sgY29t
cGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCAiIFwKLQkgICAg
ICAib3IgaW4gJChCVUlMRERJUikvbGlua2NoZWNrL291dHB1dC50eHQuIgotCi1kb2N0ZXN0Ogot
CSQoU1BISU5YQlVJTEQpIC1iIGRvY3Rlc3QgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9k
b2N0ZXN0Ci0JQGVjaG8gIlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNvdXJjZXMgZmluaXNo
ZWQsIGxvb2sgYXQgdGhlICIgXAotCSAgICAgICJyZXN1bHRzIGluICQoQlVJTERESVIpL2RvY3Rl
c3Qvb3V0cHV0LnR4dC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0
aW9uL2NvbmYucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNTQyODdhNjllMDQ3
MDdiMWE1MGVmNmI2NmZhYTZiZDJkMTg4MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9jb25mLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MjE3ICswLDAgQEAKLSMgLSotIGNvZGluZzogdXRmLTggLSotCi0jCi0jIHNpeCBkb2N1bWVudGF0
aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZQotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQot
IyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJl
IGluIGFub3RoZXIgZGlyZWN0b3J5LAotIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBh
dGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKLSMgZG9jdW1lbnRh
dGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ug
c2hvd24gaGVyZS4KLSNzeXMucGF0aC5hcHBlbmQob3MucGF0aC5hYnNwYXRoKCcuJykpCi0KLSMg
LS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEg
bWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KLW5lZWRzX3NwaGlueCA9ICIx
LjAiCi0KLSMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJlLCBhcyBz
dHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCi0jIGNvbWluZyB3aXRoIFNwaGlueCAobmFt
ZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMuCi1leHRlbnNpb25zID0gWyJz
cGhpbnguZXh0LmludGVyc3BoaW54Il0KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0
ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi10ZW1wbGF0ZXNfcGF0
aCA9IFsiX3RlbXBsYXRlcyJdCi0KLSMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVzLgot
c291cmNlX3N1ZmZpeCA9ICIucnN0IgotCi0jIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXMu
Ci0jc291cmNlX2VuY29kaW5nID0gInV0Zi04LXNpZyIKLQotIyBUaGUgbWFzdGVyIHRvY3RyZWUg
ZG9jdW1lbnQuCi1tYXN0ZXJfZG9jID0gImluZGV4IgotCi0jIEdlbmVyYWwgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHByb2plY3QuCi1wcm9qZWN0ID0gdSJzaXgiCi1jb3B5cmlnaHQgPSB1IjIwMTAt
MjAxNCwgQmVuamFtaW4gUGV0ZXJzb24iCi0KLXN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5qb2luKCIuIiwgIi4uIikpKQotZnJvbSBzaXggaW1wb3J0IF9fdmVyc2lvbl9f
IGFzIHNpeF92ZXJzaW9uCi1zeXMucGF0aC5wb3AoKQotCi0jIFRoZSB2ZXJzaW9uIGluZm8gZm9y
IHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IK
LSMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBs
YWNlcyB0aHJvdWdob3V0IHRoZQotIyBidWlsdCBkb2N1bWVudHMuCi0jCi0jIFRoZSBzaG9ydCBY
LlkgdmVyc2lvbi4KLXZlcnNpb24gPSBzaXhfdmVyc2lvbls6LTJdCi0jIFRoZSBmdWxsIHZlcnNp
b24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCi1yZWxlYXNlID0gc2l4X3ZlcnNpb24K
LQotIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhpbnguIFJl
ZmVyIHRvIGRvY3VtZW50YXRpb24KLSMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFuZ3VhZ2Vz
LgotI2xhbmd1YWdlID0gTm9uZQotCi0jIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBmb3IgcmVwbGFj
aW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCi0jIG5vbi1mYWxzZSB2
YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgotI3RvZGF5ID0gJycKLSMgRWxzZSwgdG9kYXlfZm10IGlz
IHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgotI3RvZGF5X2ZtdCA9ICcl
QiAlZCwgJVknCi0KLSMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNlIGRpcmVj
dG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKLSMgZGlyZWN0b3JpZXMgdG8gaWdub3JlIHdoZW4g
bG9va2luZyBmb3Igc291cmNlIGZpbGVzLgotZXhjbHVkZV9wYXR0ZXJucyA9IFsiX2J1aWxkIl0K
LQotIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFya3VwOiBgdGV4dGAp
IHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KLSNkZWZhdWx0X3JvbGUgPSBOb25lCi0KLSMgSWYg
dHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3NzLXJlZmVyZW5j
ZSB0ZXh0LgotI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKLQotIyBJZiB0cnVlLCB0
aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgZGVzY3JpcHRp
b24KLSMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCi0jYWRkX21vZHVsZV9u
YW1lcyA9IFRydWUKLQotIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBtb2R1bGVhdXRob3Ig
ZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQotIyBvdXRwdXQuIFRoZXkgYXJlIGlnbm9y
ZWQgYnkgZGVmYXVsdC4KLSNzaG93X2F1dGhvcnMgPSBGYWxzZQotCi0jIFRoZSBuYW1lIG9mIHRo
ZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNlLgotcHlnbWVudHNf
c3R5bGUgPSAic3BoaW54IgotCi0jIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVzIGZvciBtb2R1
bGUgaW5kZXggc29ydGluZy4KLSNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10KLQotCi0jIC0t
IE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhU
TUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKLSMgYSBsaXN0IG9mIGJ1
aWx0aW4gdGhlbWVzLgotaHRtbF90aGVtZSA9ICJkZWZhdWx0IgotCi0jIFRoZW1lIG9wdGlvbnMg
YXJlIHRoZW1lLXNwZWNpZmljIGFuZCBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2YgYSB0
aGVtZQotIyBmdXJ0aGVyLiAgRm9yIGEgbGlzdCBvZiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgZWFj
aCB0aGVtZSwgc2VlIHRoZQotIyBkb2N1bWVudGF0aW9uLgotI2h0bWxfdGhlbWVfb3B0aW9ucyA9
IHt9Ci0KLSMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJlLCBy
ZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLSNodG1sX3RoZW1lX3BhdGggPSBbXQotCi0jIFRo
ZSBuYW1lIGZvciB0aGlzIHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQgZGVm
YXVsdHMgdG8KLSMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgotI2h0bWxf
dGl0bGUgPSBOb25lCi0KLSMgQSBzaG9ydGVyIHRpdGxlIGZvciB0aGUgbmF2aWdhdGlvbiBiYXIu
ICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIGh0bWxfdGl0bGUuCi0jaHRtbF9zaG9ydF90aXRsZSA9
IE5vbmUKLQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlzIGRp
cmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAotIyBvZiB0aGUgc2lkZWJhci4KLSNodG1sX2xv
Z28gPSBOb25lCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBzdGF0
aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmljb24gb2YgdGhlCi0jIGRvY3MuICBUaGlzIGZpbGUgc2hv
dWxkIGJlIGEgV2luZG93cyBpY29uIGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMyCi0j
IHBpeGVscyBsYXJnZS4KLSNodG1sX2Zhdmljb24gPSBOb25lCi0KLSMgQWRkIGFueSBwYXRocyB0
aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhl
cmUsCi0jIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIg
dGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAotIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3Nz
IiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAiZGVmYXVsdC5jc3MiLgotaHRtbF9zdGF0aWNf
cGF0aCA9IFsiX3N0YXRpYyJdCi0KLSMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0
aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCi0jIHVzaW5nIHRoZSBn
aXZlbiBzdHJmdGltZSBmb3JtYXQuCi0jaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAl
WScKLQotIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90
ZXMgYW5kIGRhc2hlcyB0bwotIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KLSNo
dG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUKLQotIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMs
IG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCi0jaHRtbF9zaWRlYmFycyA9
IHt9Ci0KLSMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8g
cGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bwotIyB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX2FkZGl0
aW9uYWxfcGFnZXMgPSB7fQotCi0jIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJh
dGVkLgotI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLSMgSWYgZmFsc2UsIG5vIGluZGV4
IGlzIGdlbmVyYXRlZC4KLSNodG1sX3VzZV9pbmRleCA9IFRydWUKLQotIyBJZiB0cnVlLCB0aGUg
aW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KLSNo
dG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKLQotIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBz
b3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCi0jaHRtbF9zaG93X3NvdXJjZWxpbmsgPSBU
cnVlCi0KLSMgSWYgdHJ1ZSwgIkNyZWF0ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0aGUg
SFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfc3BoaW54ID0gVHJ1ZQot
Ci0jIElmIHRydWUsICIoQykgQ29weXJpZ2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9v
dGVyLiBEZWZhdWx0IGlzIFRydWUuCi0jaHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUKLQotIyBJ
ZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFu
ZCBhbGwgcGFnZXMgd2lsbAotIyBjb250YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQu
ICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBiZSB0aGUKLSMgYmFzZSBVUkwgZnJvbSB3
aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQuCi0jaHRtbF91c2Vfb3BlbnNlYXJjaCA9
ICcnCi0KLSMgSWYgbm9uZW1wdHksIHRoaXMgaXMgdGhlIGZpbGUgbmFtZSBzdWZmaXggZm9yIEhU
TUwgZmlsZXMgKGUuZy4gIi54aHRtbCIpLgotI2h0bWxfZmlsZV9zdWZmaXggPSAnJwotCi0jIE91
dHB1dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCi1odG1saGVscF9iYXNl
bmFtZSA9ICdzaXhkb2MnCi0KLQotIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGUgcGFw
ZXIgc2l6ZSAoJ2xldHRlcicgb3IgJ2E0JykuCi0jbGF0ZXhfcGFwZXJfc2l6ZSA9ICdsZXR0ZXIn
Ci0KLSMgVGhlIGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KLSNsYXRleF9m
b250X3NpemUgPSAnMTBwdCcKLQotIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIExh
VGVYIGZpbGVzLiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBu
YW1lLCB0aXRsZSwgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4KLWxhdGV4
X2RvY3VtZW50cyA9IFsKLSAgKCJpbmRleCIsICJzaXgudGV4IiwgdSJzaXggRG9jdW1lbnRhdGlv
biIsCi0gICB1IkJlbmphbWluIFBldGVyc29uIiwgIm1hbnVhbCIpLAotXQotCi0jIFRoZSBuYW1l
IG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBh
dCB0aGUgdG9wIG9mCi0jIHRoZSB0aXRsZSBwYWdlLgotI2xhdGV4X2xvZ28gPSBOb25lCi0KLSMg
Rm9yICJtYW51YWwiIGRvY3VtZW50cywgaWYgdGhpcyBpcyB0cnVlLCB0aGVuIHRvcGxldmVsIGhl
YWRpbmdzIGFyZSBwYXJ0cywKLSMgbm90IGNoYXB0ZXJzLgotI2xhdGV4X3VzZV9wYXJ0cyA9IEZh
bHNlCi0KLSMgSWYgdHJ1ZSwgc2hvdyBwYWdlIHJlZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwgbGlu
a3MuCi0jbGF0ZXhfc2hvd19wYWdlcmVmcyA9IEZhbHNlCi0KLSMgSWYgdHJ1ZSwgc2hvdyBVUkwg
YWRkcmVzc2VzIGFmdGVyIGV4dGVybmFsIGxpbmtzLgotI2xhdGV4X3Nob3dfdXJscyA9IEZhbHNl
Ci0KLSMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgotI2xhdGV4X3By
ZWFtYmxlID0gJycKLQotIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFs
bCBtYW51YWxzLgotI2xhdGV4X2FwcGVuZGljZXMgPSBbXQotCi0jIElmIGZhbHNlLCBubyBtb2R1
bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgotI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQotCi0K
LSMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4g
TGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwg
YXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgotbWFuX3BhZ2VzID0gWwotICAgICgiaW5kZXgiLCAi
c2l4IiwgdSJzaXggRG9jdW1lbnRhdGlvbiIsCi0gICAgIFt1IkJlbmphbWluIFBldGVyc29uIl0s
IDEpCi1dCi0KLSMgLS0gSW50ZXJzcGhpbnggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWludGVyc3BoaW54X21hcHBpbmcg
PSB7InB5MiIgOiAoImh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvIiwgTm9uZSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICJweTMiIDogKCJodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLyIsIE5v
bmUpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4
LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTgyN2U2Njk1YjU5MzFlNTUxNDRj
ODU4NzZiN2Q2ZjI1NWNmMzQ0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDc4NSAr
MCwwIEBACi1TaXg6IFB5dGhvbiAyIGFuZCAzIENvbXBhdGliaWxpdHkgTGlicmFyeQotPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotLi4gbW9kdWxlOjogc2l4Ci0g
ICA6c3lub3BzaXM6IFB5dGhvbiAyIGFuZCAzIGNvbXBhdGliaWxpdHkKLQotLi4gbW9kdWxlYXV0
aG9yOjogQmVuamFtaW4gUGV0ZXJzb24gPGJlbmphbWluQHB5dGhvbi5vcmc+Ci0uLiBzZWN0aW9u
YXV0aG9yOjogQmVuamFtaW4gUGV0ZXJzb24gPGJlbmphbWluQHB5dGhvbi5vcmc+Ci0KLQotU2l4
IHByb3ZpZGVzIHNpbXBsZSB1dGlsaXRpZXMgZm9yIHdyYXBwaW5nIG92ZXIgZGlmZmVyZW5jZXMg
YmV0d2VlbiBQeXRob24gMiBhbmQKLVB5dGhvbiAzLiAgSXQgaXMgaW50ZW5kZWQgdG8gc3VwcG9y
dCBjb2RlYmFzZXMgdGhhdCB3b3JrIG9uIGJvdGggUHl0aG9uIDIgYW5kIDMKLXdpdGhvdXQgbW9k
aWZpY2F0aW9uLiAgc2l4IGNvbnNpc3RzIG9mIG9ubHkgb25lIFB5dGhvbiBmaWxlLCBzbyBpdCBp
cyBwYWlubGVzcwotdG8gY29weSBpbnRvIGEgcHJvamVjdC4KLQotU2l4IGNhbiBiZSBkb3dubG9h
ZGVkIG9uIGBQeVBpIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2l4Lz5gXy4gIEl0cyBi
dWcKLXRyYWNrZXIgYW5kIGNvZGUgaG9zdGluZyBpcyBvbiBgQml0QnVja2V0IDxodHRwOi8vYml0
YnVja2V0Lm9yZy9ndXR3b3J0aC9zaXg+YF8uCi0KLVRoZSBuYW1lLCAic2l4IiwgY29tZXMgZnJv
bSB0aGUgZmFjdCB0aGF0IDIqMyBlcXVhbHMgNi4gIFdoeSBub3QgYWRkaXRpb24/Ci1NdWx0aXBs
aWNhdGlvbiBpcyBtb3JlIHBvd2VyZnVsLCBhbmQsIGFueXdheSwgImZpdmUiIGhhcyBhbHJlYWR5
IGJlZW4gc25hdGNoZWQKLWF3YXkgYnkgdGhlIFpvcGUgRml2ZSBwcm9qZWN0LgotCi0KLUluZGlj
ZXMgYW5kIHRhYmxlcwotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSogOnJlZjpgZ2VuaW5kZXhgCi0q
IDpyZWY6YHNlYXJjaGAKLQotCi1QYWNrYWdlIGNvbnRlbnRzCi0tLS0tLS0tLS0tLS0tLS0tCi0K
LS4uIGRhdGE6OiBQWTIKLQotICAgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGNvZGUgaXMg
cnVubmluZyBvbiBQeXRob24gMi4KLQotLi4gZGF0YTo6IFBZMwotCi0gICBBIGJvb2xlYW4gaW5k
aWNhdGluZyBpZiB0aGUgY29kZSBpcyBydW5uaW5nIG9uIFB5dGhvbiAzLgotCi0KLUNvbnN0YW50
cwotPj4+Pj4+Pj4+Ci0KLVNpeCBwcm92aWRlcyBjb25zdGFudHMgdGhhdCBtYXkgZGlmZmVyIGJl
dHdlZW4gUHl0aG9uIHZlcnNpb25zLiAgT25lcyBlbmRpbmcKLWBgX3R5cGVzYGAgYXJlIG1vc3Rs
eSB1c2VmdWwgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgYGlzaW5zdGFuY2VgYCBvcgotYGBp
c3N1YmNsYXNzYGAuCi0KLQotLi4gZGF0YTo6IGNsYXNzX3R5cGVzCi0KLSAgIFBvc3NpYmxlIGNs
YXNzIHR5cGVzLiAgSW4gUHl0aG9uIDIsIHRoaXMgZW5jb21wYXNzZXMgb2xkLXN0eWxlIGFuZCBu
ZXctc3R5bGUKLSAgIGNsYXNzZXMuICBJbiBQeXRob24gMywgdGhpcyBpcyBqdXN0IG5ldy1zdHls
ZXMuCi0KLQotLi4gZGF0YTo6IGludGVnZXJfdHlwZXMKLQotICAgUG9zc2libGUgaW50ZWdlciB0
eXBlcy4gIEluIFB5dGhvbiAyLCB0aGlzIGlzIDpmdW5jOmBweTI6bG9uZ2AgYW5kCi0gICA6ZnVu
YzpgcHkyOmludGAsIGFuZCBpbiBQeXRob24gMywganVzdCA6ZnVuYzpgcHkzOmludGAuCi0KLQot
Li4gZGF0YTo6IHN0cmluZ190eXBlcwotCi0gICBQb3NzaWJsZSB0eXBlcyBmb3IgdGV4dCBkYXRh
LiAgVGhpcyBpcyA6ZnVuYzpgcHkyOmJhc2VzdHJpbmdgIGluIFB5dGhvbiAyIGFuZAotICAgOmZ1
bmM6YHB5MzpzdHJgIGluIFB5dGhvbiAzLgotCi0KLS4uIGRhdGE6OiB0ZXh0X3R5cGUKLQotICAg
VHlwZSBmb3IgcmVwcmVzZW50aW5nIChVbmljb2RlKSB0ZXh0dWFsIGRhdGEuICBUaGlzIGlzIDpm
dW5jOmBweTI6dW5pY29kZWAgaW4KLSAgIFB5dGhvbiAyIGFuZCA6ZnVuYzpgcHkzOnN0cmAgaW4g
UHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IGJpbmFyeV90eXBlCi0KLSAgIFR5cGUgZm9yIHJlcHJl
c2VudGluZyBiaW5hcnkgZGF0YS4gIFRoaXMgaXMgOmZ1bmM6YHB5MjpzdHJgIGluIFB5dGhvbiAy
IGFuZAotICAgOmZ1bmM6YHB5MzpieXRlc2AgaW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IE1B
WFNJWkUKLQotICAgVGhlIG1heGltdW0gIHNpemUgb2YgYSAgY29udGFpbmVyIGxpa2UgOmZ1bmM6
YHB5MzpsaXN0YCAgb3IgOmZ1bmM6YHB5MzpkaWN0YC4KLSAgIFRoaXMgIGlzICBlcXVpdmFsZW50
ICB0byAgOmRhdGE6YHB5MzpzeXMubWF4c2l6ZWAgaW4gIFB5dGhvbiAgMi42ICBhbmQgIGxhdGVy
Ci0gICAoaW5jbHVkaW5nIDMueCkuICAgTm90ZSwgdGhpcyBpcyB0ZW1wdGluZ2x5ICBzaW1pbGFy
IHRvLCBidXQgbm90ICB0aGUgc2FtZSBhcwotICAgOmRhdGE6YHB5MjpzeXMubWF4aW50YCAgaW4g
IFB5dGhvbiAgMi4gICBUaGVyZSBpcyAgbm8gIGRpcmVjdCAgZXF1aXZhbGVudCAgdG8KLSAgIDpk
YXRhOmBweTI6c3lzLm1heGludGAgaW4gIFB5dGhvbiAzICBiZWNhdXNlIGl0cyBpbnRlZ2VyICB0
eXBlIGhhcyAgbm8gbGltaXRzCi0gICBhc2lkZSBmcm9tIG1lbW9yeS4KLQotCi1IZXJlJ3MgZXhh
bXBsZSB1c2FnZSBvZiB0aGUgbW9kdWxlOjoKLQotICAgaW1wb3J0IHNpeAotCi0gICBkZWYgZGlz
cGF0Y2hfdHlwZXModmFsdWUpOgotICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5pbnRl
Z2VyX3R5cGVzKToKLSAgICAgICAgICAgaGFuZGxlX2ludGVnZXIodmFsdWUpCi0gICAgICAgZWxp
ZiBpc2luc3RhbmNlKHZhbHVlLCBzaXguY2xhc3NfdHlwZXMpOgotICAgICAgICAgICBoYW5kbGVf
Y2xhc3ModmFsdWUpCi0gICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzaXguc3RyaW5nX3R5
cGVzKToKLSAgICAgICAgICAgaGFuZGxlX3N0cmluZyh2YWx1ZSkKLQotCi1PYmplY3QgbW9kZWwg
Y29tcGF0aWJpbGl0eQotPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KLQotUHl0aG9uIDMgcmVu
YW1lZCB0aGUgYXR0cmlidXRlcyBvZiBzZXZlcmFsIGludGVycHJldGVyIGRhdGEgc3RydWN0dXJl
cy4gIFRoZQotZm9sbG93aW5nIGFjY2Vzc29ycyBhcmUgYXZhaWxhYmxlLiAgTm90ZSB0aGF0IHRo
ZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zcGVjdAotZnVuY3Rpb25zIGFuZCBtZXRob2RzIGlzIHRo
ZSBzdGRsaWIgOm1vZDpgcHkzOmluc3BlY3RgIG1vZHVsZS4KLQotCi0uLiBmdW5jdGlvbjo6IGdl
dF91bmJvdW5kX2Z1bmN0aW9uKG1ldGgpCi0KLSAgIEdldCB0aGUgZnVuY3Rpb24gb3V0IG9mIHVu
Ym91bmQgbWV0aG9kICptZXRoKi4gIEluIFB5dGhvbiAzLCB1bmJvdW5kIG1ldGhvZHMKLSAgIGRv
bid0IGV4aXN0LCBzbyB0aGlzIGZ1bmN0aW9uIGp1c3QgcmV0dXJucyAqbWV0aCogdW5jaGFuZ2Vk
LiAgRXhhbXBsZQotICAgdXNhZ2U6OgotCi0gICAgICBmcm9tIHNpeCBpbXBvcnQgZ2V0X3VuYm91
bmRfZnVuY3Rpb24KLQotICAgICAgY2xhc3MgWChvYmplY3QpOgotICAgICAgICAgIGRlZiBtZXRo
b2Qoc2VsZik6Ci0gICAgICAgICAgICAgIHBhc3MKLSAgICAgIG1ldGhvZF9mdW5jdGlvbiA9IGdl
dF91bmJvdW5kX2Z1bmN0aW9uKFgubWV0aG9kKQotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X21ldGhv
ZF9mdW5jdGlvbihtZXRoKQotCi0gICBHZXQgdGhlIGZ1bmN0aW9uIG91dCBvZiBtZXRob2Qgb2Jq
ZWN0ICptZXRoKi4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9tZXRob2Rfc2VsZihtZXRoKQotCi0g
ICBHZXQgdGhlIGBgc2VsZmBgIG9mIGJvdW5kIG1ldGhvZCAqbWV0aCouCi0KLQotLi4gZnVuY3Rp
b246OiBnZXRfZnVuY3Rpb25fY2xvc3VyZShmdW5jKQotCi0gICBHZXQgdGhlIGNsb3N1cmUgKGxp
c3Qgb2YgY2VsbHMpIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQK
LSAgIHRvIGBgZnVuYy5fX2Nsb3N1cmVfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVu
Y19jbG9zdXJlYGAgb24gUHl0aG9uCi0gICAyLjUuCi0KLQotLi4gZnVuY3Rpb246OiBnZXRfZnVu
Y3Rpb25fY29kZShmdW5jKQotCi0gICBHZXQgdGhlIGNvZGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0
aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KLSAgIGBgZnVuYy5fX2NvZGVfX2BgIG9u
IFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19jb2RlYGAgb24gUHl0aG9uIDIuNS4KLQotCi0u
LiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9kZWZhdWx0cyhmdW5jKQotCi0gICBHZXQgdGhlIGRl
ZmF1bHRzIHR1cGxlIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQg
dG8KLSAgIGBgZnVuYy5fX2RlZmF1bHRzX19gYCBvbiBQeXRob24gMi42KyBhbmQgYGBmdW5jLmZ1
bmNfZGVmYXVsdHNgYCBvbiBQeXRob24KLSAgIDIuNS4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9m
dW5jdGlvbl9nbG9iYWxzKGZ1bmMpCi0KLSAgIEdldCB0aGUgZ2xvYmFscyBvZiAqZnVuYyouICBU
aGlzIGlzIGVxdWl2YWxlbnQgdG8gYGBmdW5jLl9fZ2xvYmFsc19fYGAgb24KLSAgIFB5dGhvbiAy
LjYrIGFuZCBgYGZ1bmMuZnVuY19nbG9iYWxzYGAgb24gUHl0aG9uIDIuNS4KLQotCi0uLiBmdW5j
dGlvbjo6IG5leHQoaXQpCi0gICAgICAgICAgICAgIGFkdmFuY2VfaXRlcmF0b3IoaXQpCi0KLSAg
IEdldCB0aGUgbmV4dCBpdGVtIG9mIGl0ZXJhdG9yICppdCouICA6ZXhjOmBweTM6U3RvcEl0ZXJh
dGlvbmAgaXMgcmFpc2VkIGlmCi0gICB0aGUgaXRlcmF0b3IgaXMgZXhoYXVzdGVkLiAgVGhpcyBp
cyBhIHJlcGxhY2VtZW50IGZvciBjYWxsaW5nIGBgaXQubmV4dCgpYGAKLSAgIGluIFB5dGhvbiAy
IGFuZCBgYG5leHQoaXQpYGAgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBjYWxsYWJs
ZShvYmopCi0KLSAgIENoZWNrIGlmICpvYmoqIGNhbiBiZSBjYWxsZWQuICBOb3RlIGBgY2FsbGFi
bGVgYCBoYXMgcmV0dXJuZWQgaW4gUHl0aG9uIDMuMiwKLSAgIHNvIHVzaW5nIHNpeCdzIHZlcnNp
b24gaXMgb25seSBuZWNlc3Nhcnkgd2hlbiBzdXBwb3J0aW5nIFB5dGhvbiAzLjAgb3IgMy4xLgot
Ci0KLS4uIGZ1bmN0aW9uOjogaXRlcmtleXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAgIFJl
dHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3Mga2V5cy4gVGhpcyByZXBsYWNl
cwotICAgYGBkaWN0aW9uYXJ5Lml0ZXJrZXlzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9u
YXJ5LmtleXMoKWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3Vn
aCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVydmFsdWVz
KGRpY3Rpb25hcnksICoqa3dhcmdzKQotCi0gICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgKmRp
Y3Rpb25hcnkqXCdzIHZhbHVlcy4gVGhpcyByZXBsYWNlcwotICAgYGBkaWN0aW9uYXJ5Lml0ZXJ2
YWx1ZXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkudmFsdWVzKClgYCBvbgotICAg
UHl0aG9uIDMuICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcg
bWV0aG9kLgotCi0KLS4uIGZ1bmN0aW9uOjogaXRlcml0ZW1zKGRpY3Rpb25hcnksICoqa3dhcmdz
KQotCi0gICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgKmRpY3Rpb25hcnkqXCdzIGl0ZW1zLiBU
aGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcml0ZW1zKClgYCBvbiBQeXRob24gMiBh
bmQgYGBkaWN0aW9uYXJ5Lml0ZW1zKClgYCBvbgotICAgUHl0aG9uIDMuICAqa3dhcmdzKiBhcmUg
cGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcgbWV0aG9kLgotCi0KLS4uIGZ1bmN0aW9u
OjogaXRlcmxpc3RzKGRpY3Rpb25hcnksICoqa3dhcmdzKQotCi0gICBDYWxscyBgYGRpY3Rpb25h
cnkuaXRlcmxpc3RzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9uYXJ5Lmxpc3RzKClgYCBv
bgotICAgUHl0aG9uIDMuICBObyBidWlsdGluIFB5dGhvbiBtYXBwaW5nIHR5cGUgaGFzIHN1Y2gg
YSBtZXRob2Q7IHRoaXMgbWV0aG9kIGlzCi0gICBpbnRlbmRlZCBmb3IgdXNlIHdpdGggbXVsdGkt
dmFsdWVkIGRpY3Rpb25hcmllcyBsaWtlIGBXZXJremV1ZydzCi0gICA8aHR0cDovL3dlcmt6ZXVn
LnBvY29vLm9yZy9kb2NzL2RhdGFzdHJ1Y3R1cmVzLyN3ZXJremV1Zy5kYXRhc3RydWN0dXJlcy5N
dWx0aURpY3Q+YF8uCi0gICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVy
bHlpbmcgbWV0aG9kLgotCi0KLS4uIGZ1bmN0aW9uOjogdmlld2tleXMoZGljdGlvbmFyeSkKLQot
ICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJlcGxhY2Vz
Ci0gICA6bWV0aDpgcHkyOmRpY3Qudmlld2tleXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRoOmBw
eTM6ZGljdC5rZXlzYCBvbgotICAgUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3dmFs
dWVzKGRpY3Rpb25hcnkpCi0KLSAgIFJldHVybiBhIHZpZXcgb3ZlciAqZGljdGlvbmFyeSpcJ3Mg
dmFsdWVzLiBUaGlzIHJlcGxhY2VzCi0gICA6bWV0aDpgcHkyOmRpY3Qudmlld3ZhbHVlc2Agb24g
UHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0LnZhbHVlc2Agb24KLSAgIFB5dGhvbiAzLgot
Ci0KLS4uIGZ1bmN0aW9uOjogdmlld2l0ZW1zKGRpY3Rpb25hcnkpCi0KLSAgIFJldHVybiBhIHZp
ZXcgb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRlbXMuIFRoaXMgcmVwbGFjZXMKLSAgIDptZXRoOmBw
eTI6ZGljdC52aWV3aXRlbXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRoOmBweTM6ZGljdC5pdGVt
c2Agb24KLSAgIFB5dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogY3JlYXRlX2JvdW5kX21ldGhv
ZChmdW5jLCBvYmopCi0KLSAgIFJldHVybiBhIG1ldGhvZCBvYmplY3Qgd3JhcHBpbmcgKmZ1bmMq
IGFuZCBib3VuZCB0byAqb2JqKi4gIE9uIGJvdGggUHl0aG9uIDIKLSAgIGFuZCAzLCB0aGlzIHdp
bGwgcmV0dXJuIGEgOmZ1bmM6YHB5Mzp0eXBlcy5NZXRob2RUeXBlYCBvYmplY3QuICBUaGUgcmVh
c29uCi0gICB0aGlzIHdyYXBwZXIgZXhpc3RzIGlzIHRoYXQgb24gUHl0aG9uIDIsIHRoZSBgYE1l
dGhvZFR5cGVgYCBjb25zdHJ1Y3RvcgotICAgcmVxdWlyZXMgdGhlICpvYmoqJ3MgY2xhc3MgdG8g
YmUgcGFzc2VkLgotCi0KLS4uIGNsYXNzOjogSXRlcmF0b3IKLQotICAgQSBjbGFzcyBmb3IgbWFr
aW5nIHBvcnRhYmxlIGl0ZXJhdG9ycy4gVGhlIGludGVudGlvbiBpcyB0aGF0IGl0IGJlIHN1YmNs
YXNzZWQKLSAgIGFuZCBzdWJjbGFzc2VzIHByb3ZpZGUgYSBgYF9fbmV4dF9fYGAgbWV0aG9kLiBJ
biBQeXRob24gMiwgOmNsYXNzOmBJdGVyYXRvcmAKLSAgIGhhcyBvbmUgbWV0aG9kOiBgYG5leHRg
YC4gSXQgc2ltcGx5IGRlbGVnYXRlcyB0byBgYF9fbmV4dF9fYGAuIEFuIGFsdGVybmF0ZQotICAg
d2F5IHRvIGRvIHRoaXMgd291bGQgYmUgdG8gc2ltcGx5IGFsaWFzIGBgbmV4dGBgIHRvIGBgX19u
ZXh0X19gYC4gSG93ZXZlciwKLSAgIHRoaXMgaW50ZXJhY3RzIGJhZGx5IHdpdGggc3ViY2xhc3Nl
cyB0aGF0IG92ZXJyaWRlCi0gICBgYF9fbmV4dF9fYGAuIDpjbGFzczpgSXRlcmF0b3JgIGlzIGVt
cHR5IG9uIFB5dGhvbiAzLiAoSW4gZmFjdCwgaXQgaXMganVzdAotICAgYWxpYXNlZCB0byA6Y2xh
c3M6YHB5MzpvYmplY3RgLikKLQotCi0uLiBmdW5jdGlvbjo6IHdyYXBzKHdyYXBwZWQsIGFzc2ln
bmVkPWZ1bmN0b29scy5XUkFQUEVSX0FTU0lHTk1FTlRTLCB1cGRhdGVkPWZ1bmN0b29scy5XUkFQ
UEVSX1VQREFURVMpCi0KLSAgIFRoaXMgaXMgZXhhY3RseSB0aGUgOmZ1bmM6YHB5MzpmdW5jdG9v
bHMud3JhcHNgIGRlY29yYXRvciwgYnV0IGl0IHNldHMgdGhlCi0gICBgYF9fd3JhcHBlZF9fYGAg
YXR0cmlidXRlIG9uIHdoYXQgaXQgZGVjb3JhdGVzIGFzIDpmdW5jOmBweTM6ZnVuY3Rvb2xzLndy
YXBzYAotICAgZG9lcyBvbiBQeXRob24gdmVyc2lvbnMgYWZ0ZXIgMy4yLgotCi0KLVN5bnRheCBj
b21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1UaGVzZSBmdW5jdGlvbnMgc21v
b3RoIG92ZXIgb3BlcmF0aW9ucyB3aGljaCBoYXZlIGRpZmZlcmVudCBzeW50YXhlcyBiZXR3ZWVu
Ci1QeXRob24gMiBhbmQgMy4KLQotCi0uLiBmdW5jdGlvbjo6IGV4ZWNfKGNvZGUsIGdsb2JhbHM9
Tm9uZSwgbG9jYWxzPU5vbmUpCi0KLSAgIEV4ZWN1dGUgKmNvZGUqIGluIHRoZSBzY29wZSBvZiAq
Z2xvYmFscyogYW5kICpsb2NhbHMqLiAgKmNvZGUqIGNhbiBiZSBhCi0gICBzdHJpbmcgb3IgYSBj
b2RlIG9iamVjdC4gIElmICpnbG9iYWxzKiBvciAqbG9jYWxzKiBhcmUgbm90IGdpdmVuLCB0aGV5
IHdpbGwKLSAgIGRlZmF1bHQgdG8gdGhlIHNjb3BlIG9mIHRoZSBjYWxsZXIuICBJZiBqdXN0ICpn
bG9iYWxzKiBpcyBnaXZlbiwgaXQgd2lsbCBhbHNvCi0gICBiZSB1c2VkIGFzICpsb2NhbHMqLgot
Ci0gICAuLiBub3RlOjoKLQotICAgICAgUHl0aG9uIDMncyA6ZnVuYzpgcHkzOmV4ZWNgIGRvZXNu
J3QgdGFrZSBrZXl3b3JkIGFyZ3VtZW50cywgc28gY2FsbGluZwotICAgICAgOmZ1bmM6YGV4ZWNg
IHdpdGggdGhlbSBzaG91bGQgYmUgYXZvaWRlZC4KLQotCi0uLiBmdW5jdGlvbjo6IHByaW50Xygq
YXJncywgKiwgZmlsZT1zeXMuc3Rkb3V0LCBlbmQ9IlxcbiIsIHNlcD0iICIpCi0KLSAgIFByaW50
ICphcmdzKiBpbnRvICpmaWxlKi4gIEVhY2ggYXJndW1lbnQgd2lsbCBiZSBzZXBhcmF0ZWQgd2l0
aCAqc2VwKiBhbmQKLSAgICplbmQqIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgZmlsZSBhZnRlciB0
aGUgbGFzdCBhcmd1bWVudCBpcyBwcmludGVkLgotCi0gICAuLiBub3RlOjoKLQotICAgICAgSW4g
UHl0aG9uIDIsIHRoaXMgZnVuY3Rpb24gaW1pdGF0ZXMgUHl0aG9uIDMncyA6ZnVuYzpgcHkzOnBy
aW50YCBieSBub3QKLSAgICAgIGhhdmluZyBzb2Z0c3BhY2Ugc3VwcG9ydC4gIElmIHlvdSBkb24n
dCBrbm93IHdoYXQgdGhhdCBpcywgeW91J3JlIHByb2JhYmx5Ci0gICAgICBvay4gOikKLQotCi0u
LiBmdW5jdGlvbjo6IHJhaXNlX2Zyb20oZXhjX3ZhbHVlLCBleGNfdmFsdWVfZnJvbSkKLQotICAg
UmFpc2UgYW4gZXhjZXB0aW9uIGZyb20gYSBjb250ZXh0LiAgT24gUHl0aG9uIDMsIHRoaXMgaXMg
ZXF1aXZhbGVudCB0bwotICAgYGByYWlzZSBleGNfdmFsdWUgZnJvbSBleGNfdmFsdWVfZnJvbWBg
LiAgT24gUHl0aG9uIDIsIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQKLSAgIGV4Y2VwdGlvbiBjaGFp
bmluZywgaXQgaXMgZXF1aXZhbGVudCB0byBgYHJhaXNlIGV4Y192YWx1ZWBgLgotCi0KLS4uIGZ1
bmN0aW9uOjogcmVyYWlzZShleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdHJhY2ViYWNrPU5vbmUp
Ci0KLSAgIFJlcmFpc2UgYW4gZXhjZXB0aW9uLCBwb3NzaWJseSB3aXRoIGEgZGlmZmVyZW50IHRy
YWNlYmFjay4gIEluIHRoZSBzaW1wbGUKLSAgIGNhc2UsIGBgcmVyYWlzZSgqc3lzLmV4Y19pbmZv
KCkpYGAgd2l0aCBhbiBhY3RpdmUgZXhjZXB0aW9uIChpbiBhbiBleGNlcHQKLSAgIGJsb2NrKSBy
ZXJhaXNlcyB0aGUgY3VycmVudCBleGNlcHRpb24gd2l0aCB0aGUgbGFzdCB0cmFjZWJhY2suICBB
IGRpZmZlcmVudAotICAgdHJhY2ViYWNrIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgKmV4Y190
cmFjZWJhY2sqIHBhcmFtZXRlci4gIE5vdGUgdGhhdAotICAgc2luY2UgdGhlIGV4Y2VwdGlvbiBy
ZXJhaXNpbmcgaXMgZG9uZSB3aXRoaW4gdGhlIDpmdW5jOmByZXJhaXNlYCBmdW5jdGlvbiwKLSAg
IFB5dGhvbiB3aWxsIGF0dGFjaCB0aGUgY2FsbCBmcmFtZSBvZiA6ZnVuYzpgcmVyYWlzZWAgdG8g
d2hhdGV2ZXIgdHJhY2ViYWNrIGlzCi0gICByYWlzZWQuCi0KLQotLi4gZnVuY3Rpb246OiB3aXRo
X21ldGFjbGFzcyhtZXRhY2xhc3MsICpiYXNlcykKLQotICAgQ3JlYXRlIGEgbmV3IGNsYXNzIHdp
dGggYmFzZSBjbGFzc2VzICpiYXNlcyogYW5kIG1ldGFjbGFzcyAqbWV0YWNsYXNzKi4gIFRoaXMK
LSAgIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgaW4gY2xhc3MgZGVjbGFyYXRpb25zIGxpa2UgdGhp
czogOjoKLQotICAgICAgZnJvbSBzaXggaW1wb3J0IHdpdGhfbWV0YWNsYXNzCi0KLSAgICAgIGNs
YXNzIE1ldGEodHlwZSk6Ci0gICAgICAgICAgcGFzcwotCi0gICAgICBjbGFzcyBCYXNlKG9iamVj
dCk6Ci0gICAgICAgICAgcGFzcwotCi0gICAgICBjbGFzcyBNeUNsYXNzKHdpdGhfbWV0YWNsYXNz
KE1ldGEsIEJhc2UpKToKLSAgICAgICAgICBwYXNzCi0KLSAgIEFub3RoZXIgd2F5IHRvIHNldCBh
IG1ldGFjbGFzcyBvbiBhIGNsYXNzIGlzIHdpdGggdGhlIDpmdW5jOmBhZGRfbWV0YWNsYXNzYAot
ICAgZGVjb3JhdG9yLgotCi0KLS4uIGZ1bmN0aW9uOjogYWRkX21ldGFjbGFzcyhtZXRhY2xhc3Mp
Ci0KLSAgIENsYXNzIGRlY29yYXRvciB0aGF0IHJlcGxhY2VzIGEgbm9ybWFsbHktY29uc3RydWN0
ZWQgY2xhc3Mgd2l0aCBhCi0gICBtZXRhY2xhc3MtY29uc3RydWN0ZWQgb25lLiAgRXhhbXBsZSB1
c2FnZTogOjoKLQotICAgICAgIEBhZGRfbWV0YWNsYXNzKE1ldGEpCi0gICAgICAgY2xhc3MgTXlD
bGFzcyhvYmplY3QpOgotICAgICAgICAgICBwYXNzCi0KLSAgIFRoYXQgY29kZSBwcm9kdWNlcyBh
IGNsYXNzIGVxdWl2YWxlbnQgdG8gOjoKLQotICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0LCBt
ZXRhY2xhc3M9TWV0YSk6Ci0gICAgICAgICAgIHBhc3MKLQotICAgb24gUHl0aG9uIDMgb3IgOjoK
LQotICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgX19tZXRhY2xhc3Nf
XyA9IE15TWV0YQotCi0gICBvbiBQeXRob24gMi4KLQotICAgTm90ZSB0aGF0IGNsYXNzIGRlY29y
YXRvcnMgcmVxdWlyZSBQeXRob24gMi42LiBIb3dldmVyLCB0aGUgZWZmZWN0IG9mIHRoZQotICAg
ZGVjb3JhdG9yIGNhbiBiZSBlbXVsYXRlZCBvbiBQeXRob24gMi41IGxpa2Ugc286OgotCi0gICAg
ICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgotICAgICAgICAgICBwYXNzCi0gICAgICAgTXlDbGFz
cyA9IGFkZF9tZXRhY2xhc3MoTWV0YSkoTXlDbGFzcykKLQotCi1CaW5hcnkgYW5kIHRleHQgZGF0
YQotPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KLQotUHl0aG9uIDMgZW5mb3JjZXMgdGhlIGRpc3RpbmN0
aW9uIGJldHdlZW4gYnl0ZSBzdHJpbmdzIGFuZCB0ZXh0IHN0cmluZ3MgZmFyIG1vcmUKLXJpZ29y
aW91c2x5IHRoYW4gUHl0aG9uIDIgZG9lczsgYmluYXJ5IGRhdGEgY2Fubm90IGJlIGF1dG9tYXRp
Y2FsbHkgY29lcmNlZCB0bwotb3IgZnJvbSB0ZXh0IGRhdGEuICBzaXggcHJvdmlkZXMgc2V2ZXJh
bCBmdW5jdGlvbnMgdG8gYXNzaXN0IGluIGNsYXNzaWZ5aW5nCi1zdHJpbmcgZGF0YSBpbiBhbGwg
UHl0aG9uIHZlcnNpb25zLgotCi0KLS4uIGZ1bmN0aW9uOjogYihkYXRhKQotCi0gICBBICJmYWtl
IiBieXRlcyBsaXRlcmFsLiAgKmRhdGEqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3RyaW5n
IGxpdGVyYWwuICBJbgotICAgUHl0aG9uIDIsIDpmdW5jOmBiYCByZXR1cm5zIGEgOC1iaXQgc3Ry
aW5nLiAgSW4gUHl0aG9uIDMsICpkYXRhKiBpcyBlbmNvZGVkCi0gICB3aXRoIHRoZSBsYXRpbi0x
IGVuY29kaW5nIHRvIGJ5dGVzLgotCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBTaW5jZSBhbGwg
UHl0aG9uIHZlcnNpb25zIDIuNiBhbmQgYWZ0ZXIgc3VwcG9ydCB0aGUgYGBiYGAgcHJlZml4LAot
ICAgICAgOmZ1bmM6YGJgLCBjb2RlIHdpdGhvdXQgMi41IHN1cHBvcnQgZG9lc24ndCBuZWVkIDpm
dW5jOmBiYC4KLQotCi0uLiBmdW5jdGlvbjo6IHUodGV4dCkKLQotICAgQSAiZmFrZSIgdW5pY29k
ZSBsaXRlcmFsLiAgKnRleHQqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3RyaW5nIGxpdGVy
YWwuCi0gICBJbiBQeXRob24gMiwgOmZ1bmM6YHVgIHJldHVybnMgdW5pY29kZSwgYW5kIGluIFB5
dGhvbiAzLCBhIHN0cmluZy4gIEFsc28sIGluCi0gICBQeXRob24gMiwgdGhlIHN0cmluZyBpcyBk
ZWNvZGVkIHdpdGggdGhlIGBgdW5pY29kZS1lc2NhcGVgYCBjb2RlYywgd2hpY2gKLSAgIGFsbG93
cyB1bmljb2RlIGVzY2FwZXMgdG8gYmUgdXNlZCBpbiBpdC4KLQotCi0gICAuLiBub3RlOjoKLQot
ICAgICAgSW4gUHl0aG9uIDMuMywgdGhlIGBgdWBgIHByZWZpeCBoYXMgYmVlbiByZWludHJvZHVj
ZWQuIENvZGUgdGhhdCBvbmx5Ci0gICAgICBzdXBwb3J0cyBQeXRob24gMyB2ZXJzaW9ucyBncmVh
dGVyIHRoYW4gMy4zIHRodXMgZG9lcyBub3QgbmVlZAotICAgICAgOmZ1bmM6YHVgLgotCi0gICAu
LiBub3RlOjoKLQotICAgICAgT24gUHl0aG9uIDIsIDpmdW5jOmB1YCBkb2Vzbid0IGtub3cgd2hh
dCB0aGUgZW5jb2Rpbmcgb2YgdGhlIGxpdGVyYWwKLSAgICAgIGlzLiBFYWNoIGJ5dGUgaXMgY29u
dmVydGVkIGRpcmVjdGx5IHRvIHRoZSB1bmljb2RlIGNvZGVwb2ludCBvZiB0aGUgc2FtZQotICAg
ICAgdmFsdWUuIEJlY2F1c2Ugb2YgdGhpcywgaXQncyBvbmx5IHNhZmUgdG8gdXNlIDpmdW5jOmB1
YCB3aXRoIHN0cmluZ3Mgb2YKLSAgICAgIEFTQ0lJIGRhdGEuCi0KLQotLi4gZnVuY3Rpb246OiB1
bmljaHIoYykKLQotICAgUmV0dXJuIHRoZSAoVW5pY29kZSkgc3RyaW5nIHJlcHJlc2VudGluZyB0
aGUgY29kZXBvaW50ICpjKi4gIFRoaXMgaXMKLSAgIGVxdWl2YWxlbnQgdG8gOmZ1bmM6YHB5Mjp1
bmljaHJgIG9uIFB5dGhvbiAyIGFuZCA6ZnVuYzpgcHkzOmNocmAgb24gUHl0aG9uIDMuCi0KLQot
Li4gZnVuY3Rpb246OiBpbnQyYnl0ZShpKQotCi0gICBDb252ZXJ0cyAqaSogdG8gYSBieXRlLiAg
KmkqIG11c3QgYmUgaW4gYGByYW5nZSgwLCAyNTYpYGAuICBUaGlzIGlzCi0gICBlcXVpdmFsZW50
IHRvIDpmdW5jOmBweTI6Y2hyYCBpbiBQeXRob24gMiBhbmQgYGBieXRlcygoaSwpKWBgIGluIFB5
dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogYnl0ZTJpbnQoYnMpCi0KLSAgIENvbnZlcnRzIHRo
ZSBmaXJzdCBieXRlIG9mICpicyogdG8gYW4gaW50ZWdlci4gIFRoaXMgaXMgZXF1aXZhbGVudCB0
bwotICAgYGBvcmQoYnNbMF0pYGAgb24gUHl0aG9uIDIgYW5kIGBgYnNbMF1gYCBvbiBQeXRob24g
My4KLQotCi0uLiBmdW5jdGlvbjo6IGluZGV4Ynl0ZXMoYnVmLCBpKQotCi0gICBSZXR1cm4gdGhl
IGJ5dGUgYXQgaW5kZXggKmkqIG9mICpidWYqIGFzIGFuIGludGVnZXIuICBUaGlzIGlzIGVxdWl2
YWxlbnQgdG8KLSAgIGluZGV4aW5nIGEgYnl0ZXMgb2JqZWN0IGluIFB5dGhvbiAzLgotCi0KLS4u
IGZ1bmN0aW9uOjogaXRlcmJ5dGVzKGJ1ZikKLQotICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIg
Ynl0ZXMgaW4gKmJ1ZiogYXMgaW50ZWdlcnMuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KLSAgIGEg
Ynl0ZXMgb2JqZWN0IGl0ZXJhdG9yIGluIFB5dGhvbiAzLgotCi0KLS4uIGRhdGE6OiBTdHJpbmdJ
TwotCi0gICBUaGlzIGlzIGFuIGZha2UgZmlsZSBvYmplY3QgZm9yIHRleHR1YWwgZGF0YS4gIEl0
J3MgYW4gYWxpYXMgZm9yCi0gICA6Y2xhc3M6YHB5MjpTdHJpbmdJTy5TdHJpbmdJT2AgaW4gUHl0
aG9uIDIgYW5kIDpjbGFzczpgcHkzOmlvLlN0cmluZ0lPYCBpbgotICAgUHl0aG9uIDMuCi0KLQot
Li4gZGF0YTo6IEJ5dGVzSU8KLQotICAgVGhpcyBpcyBhIGZha2UgZmlsZSBvYmplY3QgZm9yIGJp
bmFyeSBkYXRhLiAgSW4gUHl0aG9uIDIsIGl0J3MgYW4gYWxpYXMgZm9yCi0gICA6Y2xhc3M6YHB5
MjpTdHJpbmdJTy5TdHJpbmdJT2AsIGJ1dCBpbiBQeXRob24gMywgaXQncyBhbiBhbGlhcyBmb3IK
LSAgIDpjbGFzczpgcHkzOmlvLkJ5dGVzSU9gLgotCi0KLVJlbmFtZWQgbW9kdWxlcyBhbmQgYXR0
cmlidXRlcyBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+PgotCi0uLiBtb2R1bGU6OiBzaXgubW92ZXMKLSAgIDpzeW5vcHNpczogUmVuYW1l
ZCBtb2R1bGVzIGFuZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkKLQotUHl0aG9uIDMgcmVvcmdh
bml6ZWQgdGhlIHN0YW5kYXJkIGxpYnJhcnkgYW5kIG1vdmVkIHNldmVyYWwgZnVuY3Rpb25zIHRv
Ci1kaWZmZXJlbnQgbW9kdWxlcy4gIFNpeCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgaW50ZXJmYWNl
IHRvIHRoZW0gdGhyb3VnaCB0aGUgZmFrZQotOm1vZDpgc2l4Lm1vdmVzYCBtb2R1bGUuICBGb3Ig
ZXhhbXBsZSwgdG8gbG9hZCB0aGUgbW9kdWxlIGZvciBwYXJzaW5nIEhUTUwgb24KLVB5dGhvbiAy
IG9yIDMsIHdyaXRlOjoKLQotICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0bWxfcGFyc2VyCi0K
LVNpbWlsYXJseSwgdG8gZ2V0IHRoZSBmdW5jdGlvbiB0byByZWxvYWQgbW9kdWxlcywgd2hpY2gg
d2FzIG1vdmVkIGZyb20gdGhlCi1idWlsdGluIG1vZHVsZSB0byB0aGUgYGBpbXBgYCBtb2R1bGUs
IHVzZTo6Ci0KLSAgIGZyb20gc2l4Lm1vdmVzIGltcG9ydCByZWxvYWRfbW9kdWxlCi0KLUZvciB0
aGUgbW9zdCBwYXJ0LCA6bW9kOmBzaXgubW92ZXNgIGFsaWFzZXMgYXJlIHRoZSBuYW1lcyBvZiB0
aGUgbW9kdWxlcyBpbgotUHl0aG9uIDMuICBXaGVuIHRoZSBuZXcgUHl0aG9uIDMgbmFtZSBpcyBh
IHBhY2thZ2UsIHRoZSBjb21wb25lbnRzIG9mIHRoZSBuYW1lCi1hcmUgc2VwYXJhdGVkIGJ5IHVu
ZGVyc2NvcmVzLiAgRm9yIGV4YW1wbGUsIGBgaHRtbC5wYXJzZXJgYCBiZWNvbWVzCi1gYGh0bWxf
cGFyc2VyYGAuICBJbiBzb21lIGNhc2VzIHdoZXJlIHNldmVyYWwgbW9kdWxlcyBoYXZlIGJlZW4g
Y29tYmluZWQsIHRoZQotUHl0aG9uIDIgbmFtZSBpcyByZXRhaW5lZC4gIFRoaXMgaXMgc28gdGhl
IGFwcHJvcHJpYXRlIG1vZHVsZXMgY2FuIGJlIGZvdW5kIHdoZW4KLXJ1bm5pbmcgb24gUHl0aG9u
IDIuICBGb3IgZXhhbXBsZSwgYGBCYXNlSFRUUFNlcnZlcmBgIHdoaWNoIGlzIGluCi1gYGh0dHAu
c2VydmVyYGAgaW4gUHl0aG9uIDMgaXMgYWxpYXNlZCBhcyBgYEJhc2VIVFRQU2VydmVyYGAuCi0K
LVNvbWUgbW9kdWxlcyB3aGljaCBoYWQgdHdvIGltcGxlbWVudGF0aW9ucyBoYXZlIGJlZW4gbWVy
Z2VkIGluIFB5dGhvbiAzLiAgRm9yCi1leGFtcGxlLCBgYGNQaWNrbGVgYCBubyBsb25nZXIgZXhp
c3RzIGluIFB5dGhvbiAzOyBpdCB3YXMgbWVyZ2VkIHdpdGgKLWBgcGlja2xlYGAuICBJbiB0aGVz
ZSBjYXNlcywgZmV0Y2hpbmcgdGhlIGZhc3QgdmVyc2lvbiB3aWxsIGxvYWQgdGhlIGZhc3Qgb25l
IG9uCi1QeXRob24gMiBhbmQgdGhlIG1lcmdlZCBtb2R1bGUgaW4gUHl0aG9uIDMuCi0KLVRoZSA6
bW9kOmBweTI6dXJsbGliYCwgOm1vZDpgcHkyOnVybGxpYjJgLCBhbmQgOm1vZDpgcHkyOnVybHBh
cnNlYCBtb2R1bGVzIGhhdmUKLWJlZW4gY29tYmluZWQgaW4gdGhlIDptb2Q6YHB5Mzp1cmxsaWJg
IHBhY2thZ2UgaW4gUHl0aG9uIDMuICBUaGUKLTptb2Q6YHNpeC5tb3Zlcy51cmxsaWJgIHBhY2th
Z2UgaXMgYSB2ZXJzaW9uLWluZGVwZW5kZW50IGxvY2F0aW9uIGZvciB0aGlzCi1mdW5jdGlvbmFs
aXR5OyBpdHMgc3RydWN0dXJlIG1pbWljcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBQeXRob24gMwot
Om1vZDpgcHkzOnVybGxpYmAgcGFja2FnZS4KLQotLi4gbm90ZTo6Ci0KLSAgIEluIG9yZGVyIHRv
IG1ha2UgaW1wb3J0cyBvZiB0aGUgZm9ybTo6Ci0KLSAgICAgZnJvbSBzaXgubW92ZXMuY1BpY2ts
ZSBpbXBvcnQgbG9hZHMKLQotICAgd29yaywgc2l4IHBsYWNlcyBzcGVjaWFsIHByb3h5IG9iamVj
dHMgaW4gaW4gOmRhdGE6YHB5MzpzeXMubW9kdWxlc2AuIFRoZXNlCi0gICBwcm94aWVzIGxhemls
eSBsb2FkIHRoZSB1bmRlcmx5aW5nIG1vZHVsZSB3aGVuIGFuIGF0dHJpYnV0ZSBpcyBmZXRjaGVk
LiBUaGlzCi0gICB3aWxsIGZhaWwgaWYgdGhlIHVuZGVybHlpbmcgbW9kdWxlIGlzIG5vdCBhdmFp
bGFibGUgaW4gdGhlIFB5dGhvbgotICAgaW50ZXJwcmV0ZXIuIEZvciBleGFtcGxlLCBgYHN5cy5t
b2R1bGVzWyJzaXgubW92ZXMud2lucmVnIl0uTG9hZEtleWBgIHdvdWxkCi0gICBmYWlsIG9uIGFu
eSBub24tV2luZG93cyBwbGF0Zm9ybS4gVW5mb3J0dW5hdGVseSwgc29tZSBhcHBsaWNhdGlvbnMg
dHJ5IHRvCi0gICBsb2FkIGF0dHJpYnV0ZXMgb24gZXZlcnkgbW9kdWxlIGluIDpkYXRhOmBweTM6
c3lzLm1vZHVsZXNgLiBzaXggbWl0aWdhdGVzCi0gICB0aGlzIHByb2JsZW0gZm9yIHNvbWUgYXBw
bGljYXRpb25zIGJ5IHByZXRlbmRpbmcgYXR0cmlidXRlcyBvbiB1bmltcG9ydGFibGUKLSAgIG1v
ZHVsZXMgZG9uJ3QgZXhpc3QuIFRoaXMgaGFjayBkb2Vzbid0IHdvcmsgaW4gZXZlcnkgY2FzZSwg
dGhvdWdoLiBJZiB5b3UgYXJlCi0gICBlbmNvdW50ZXJpbmcgcHJvYmxlbXMgd2l0aCB0aGUgbGF6
eSBtb2R1bGVzIGFuZCBkb24ndCB1c2UgYW55IGZyb20gaW1wb3J0cwotICAgZGlyZWN0bHkgZnJv
bSBgYHNpeC5tb3Zlc2BgIG1vZHVsZXMsIHlvdSBjYW4gd29ya2Fyb3VuZCB0aGUgaXNzdWUgYnkg
cmVtb3ZpbmcKLSAgIHRoZSBzaXggcHJveHkgbW9kdWxlczo6Ci0KLSAgICAgZCA9IFtuYW1lIGZv
ciBuYW1lIGluIHN5cy5tb2R1bGVzIGlmIG5hbWUuc3RhcnRzd2l0aCgic2l4Lm1vdmVzLiIpXQot
ICAgICBmb3IgbmFtZSBpbiBkOgotICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCi0KLVN1
cHBvcnRlZCByZW5hbWVzOgotCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICB8IFB5dGhvbiAy
IG5hbWUgICAgICAgICAgICAgICAgICAgICAgIHwgUHl0aG9uIDMgbmFtZSAgICAgICAgICAgICAg
ICAgICAgICAgfAotKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0rCi18IGBgYnVpbHRpbnNgYCAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6X19idWls
dGluX19gICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpidWlsdGluc2AgICAgICAgICAgICAgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYGNvbmZpZ3BhcnNlcmBgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkNvbmZpZ1BhcnNlcmAg
ICAgICAgICAgICAgfCA6bW9kOmBweTM6Y29uZmlncGFyc2VyYCAgICAgICAgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBjb3B5
cmVnYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mjpjb3B5X3JlZ2AgICAgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkzOmNvcHlyZWdgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgY1BpY2tsZWBgICAg
ICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6Y1BpY2tsZWAgICAgICAgICAgICAgICAgICB8IDpt
b2Q6YHB5MzpwaWNrbGVgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGNTdHJpbmdJT2BgICAgICAgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MjpjU3RyaW5nSU8uU3RyaW5nSU9gICAgICAgfCA6Y2xhc3M6YHB5
Mzppby5TdHJpbmdJT2AgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBkYm1fZ251YGAgICAgICAgICAgICAgICAgICB8
IDpmdW5jOmBweTI6Z2RibWAgICAgICAgICAgICAgICAgICAgIHwgOmNsYXNzOmBweTM6ZGJtLmdu
dWAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCi18IGBgX2R1bW15X3RocmVhZGBgICAgICAgICAgICAgfCA6bW9kOmBw
eTI6ZHVtbXlfdGhyZWFkYCAgICAgICAgICAgICB8IDptb2Q6YHB5MzpfZHVtbXlfdGhyZWFkYCAg
ICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKwotfCBgYGVtYWlsX21pbWVfbXVsdGlwYXJ0YGAgICAgIHwgOm1vZDpgcHkyOmVtYWls
Lk1JTUVNdWx0aXBhcnRgICAgICAgfCA6bW9kOmBweTM6ZW1haWwubWltZS5tdWx0aXBhcnRgICAg
ICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
LXwgYGBlbWFpbF9taW1lX25vbm11bHRpcGFydGBgICB8IDptb2Q6YHB5MjplbWFpbC5NSU1FTm9u
TXVsdGlwYXJ0YCAgIHwgOm1vZDpgcHkzOmVtYWlsLm1pbWUubm9ubXVsdGlwYXJ0YCAgfAotKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZW1h
aWxfbWltZV90ZXh0YGAgICAgICAgICAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRVRleHRgICAgICAg
ICAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLnRleHRgICAgICAgICAgIHwKLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGVtYWlsX21pbWVf
YmFzZWBgICAgICAgICAgIHwgOm1vZDpgcHkyOmVtYWlsLk1JTUVCYXNlYCAgICAgICAgICAgfCA6
bW9kOmBweTM6ZW1haWwubWltZS5iYXNlYCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBmaWx0ZXJgYCAgICAgICAgICAg
ICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmlmaWx0ZXJgICAgICAgIHwgOmZ1bmM6YHB5
MzpmaWx0ZXJgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZmlsdGVyZmFsc2VgYCAgICAgICAgICAgICAg
fCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pZmlsdGVyZmFsc2VgICB8IDpmdW5jOmBweTM6aXRlcnRv
b2xzLmZpbHRlcmZhbHNlYCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY29va2llamFyYGAgICAgICAgICAgIHwgOm1vZDpg
cHkyOmNvb2tpZWxpYmAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5jb29raWVqYXJg
ICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKLXwgYGBodHRwX2Nvb2tpZXNgYCAgICAgICAgICAgICB8IDptb2Q6YHB5MjpDb29r
aWVgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuY29va2llc2AgICAgICAgICAg
ICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci18IGBgaHRtbF9lbnRpdGllc2BgICAgICAgICAgICAgfCA6bW9kOmBweTI6aHRtbGVudGl0eWRl
ZnNgICAgICAgICAgICB8IDptb2Q6YHB5MzpodG1sLmVudGl0aWVzYCAgICAgICAgICAgIHwKLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0
bWxfcGFyc2VyYGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkhUTUxQYXJzZXJgICAgICAgICAg
ICAgICAgfCA6bW9kOmBweTM6aHRtbC5wYXJzZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBodHRwX2NsaWVu
dGBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpodHRwbGliYCAgICAgICAgICAgICAgICAgIHwg
Om1vZDpgcHkzOmh0dHAuY2xpZW50YCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgQmFzZUhUVFBTZXJ2ZXJgYCAg
ICAgICAgICAgfCA6bW9kOmBweTI6QmFzZUhUVFBTZXJ2ZXJgICAgICAgICAgICB8IDptb2Q6YHB5
MzpodHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYENHSUhUVFBTZXJ2ZXJgYCAgICAgICAgICAg
IHwgOm1vZDpgcHkyOkNHSUhUVFBTZXJ2ZXJgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5z
ZXJ2ZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBTaW1wbGVIVFRQU2VydmVyYGAgICAgICAgICB8IDptb2Q6
YHB5MjpTaW1wbGVIVFRQU2VydmVyYCAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuc2VydmVyYCAg
ICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgaW5wdXRgYCAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOnJh
d19pbnB1dGAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6aW5wdXRgICAgICAgICAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYGludGVybmBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppbnRlcm5gICAg
ICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOnN5cy5pbnRlcm5gICAgICAgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBt
YXBgYCAgICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmltYXBgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MzptYXBgICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcXVldWVgYCAg
ICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6UXVldWVgICAgICAgICAgICAgICAgICAgICB8
IDptb2Q6YHB5MzpxdWV1ZWAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHJhbmdlYGAgICAgICAgICAg
ICAgICAgICAgIHwgOmZ1bmM6YHB5Mjp4cmFuZ2VgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpg
cHkzOnJhbmdlYCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGByZWR1Y2VgYCAgICAgICAgICAgICAgICAg
ICB8IDpmdW5jOmBweTI6cmVkdWNlYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MzpmdW5j
dG9vbHMucmVkdWNlYCAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcmVsb2FkX21vZHVsZWBgICAgICAgICAgICAgfCA6ZnVu
YzpgcHkyOnJlbG9hZGAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6aW1wLnJlbG9hZGAg
ICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKwotfCBgYHJlcHJsaWJgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnJl
cHJgICAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6cmVwcmxpYmAgICAgICAgICAgICAg
ICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKLXwgYGBzaGxleF9xdW90ZWBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpwaXBlcy5xdW90
ZWAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnNobGV4LnF1b3RlYCAgICAgICAgICAgICAgfAot
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBg
c29ja2V0c2VydmVyYGAgICAgICAgICAgICAgfCA6bW9kOmBweTI6U29ja2V0U2VydmVyYCAgICAg
ICAgICAgICB8IDptb2Q6YHB5Mzpzb2NrZXRzZXJ2ZXJgICAgICAgICAgICAgIHwKLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYF90aHJlYWRg
YCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnRocmVhZGAgICAgICAgICAgICAgICAgICAg
fCA6bW9kOmBweTM6X3RocmVhZGAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyYGAgICAgICAg
ICAgICAgICAgICB8IDptb2Q6YHB5MjpUa2ludGVyYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpg
cHkzOnRraW50ZXJgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9kaWFsb2dgYCAgICAgICAg
ICAgfCA6bW9kOmBweTI6RGlhbG9nYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2lu
dGVyLmRpYWxvZ2AgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZmlsZWRpYWxvZ2BgICAgICAgIHwgOm1v
ZDpgcHkyOkZpbGVEaWFsb2dgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5GaWxl
RGlhbG9nYCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX3Njcm9sbGVkdGV4dGBgICAgICB8IDptb2Q6YHB5MjpT
Y3JvbGxlZFRleHRgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuc2Nyb2xsZWR0ZXh0
YCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgdGtpbnRlcl9zaW1wbGVkaWFsb2dgYCAgICAgfCA6bW9kOmBweTI6U2ltcGxlRGlh
bG9nYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnNpbXBsZWRpYWxvZ2AgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YHRraW50ZXJfdHRrYGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnR0a2AgICAgICAgICAgICAg
ICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci50dGtgICAgICAgICAgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVy
X3RpeGBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpUaXhgICAgICAgICAgICAgICAgICAgICAg
IHwgOm1vZDpgcHkzOnRraW50ZXIudGl4YCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9jb25zdGFu
dHNgYCAgICAgICAgfCA6bW9kOmBweTI6VGtjb25zdGFudHNgICAgICAgICAgICAgICB8IDptb2Q6
YHB5Mzp0a2ludGVyLmNvbnN0YW50c2AgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZG5kYGAgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkyOlRrZG5kYCAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtp
bnRlci5kbmRgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2NvbG9yY2hvb3NlcmBgICAgICB8IDpt
b2Q6YHB5Mjp0a0NvbG9yQ2hvb3NlcmAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuY29s
b3JjaG9vc2VyYCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9jb21tb25kaWFsb2dgYCAgICAgfCA6bW9kOmBweTI6
dGtDb21tb25EaWFsb2dgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmNvbW1vbmRpYWxv
Z2AgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotfCBgYHRraW50ZXJfdGtmaWxlZGlhbG9nYGAgICAgIHwgOm1vZDpgcHkyOnRrRmlsZURp
YWxvZ2AgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5maWxlZGlhbG9nYCAgICAgICB8
Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwg
YGB0a2ludGVyX2ZvbnRgYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp0a0ZvbnRgICAgICAgICAg
ICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZm9udGAgICAgICAgICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRl
cl9tZXNzYWdlYm94YGAgICAgICAgfCA6bW9kOmBweTI6dGtNZXNzYWdlQm94YCAgICAgICAgICAg
ICB8IDptb2Q6YHB5Mzp0a2ludGVyLm1lc3NhZ2Vib3hgICAgICAgIHwKLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfdGtzaW1w
bGVkaWFsb2dgYCAgIHwgOm1vZDpgcHkyOnRrU2ltcGxlRGlhbG9nYCAgICAgICAgICAgfCA6bW9k
OmBweTM6dGtpbnRlci5zaW1wbGVkaWFsb2dgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB1cmxsaWIucGFyc2VgYCAgICAgICAg
ICAgICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJsbGliLnBhcnNlYCAgIHwgOm1vZDpgcHkzOnVy
bGxpYi5wYXJzZWAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGliLmVycm9yYGAgICAgICAgICAgICAgfCBT
ZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5lcnJvcmAgICB8IDptb2Q6YHB5Mzp1cmxsaWIuZXJy
b3JgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKwotfCBgYHVybGxpYi5yZXF1ZXN0YGAgICAgICAgICAgIHwgU2VlIDptb2Q6
YHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdGAgfCA6bW9kOmBweTM6dXJsbGliLnJlcXVlc3RgICAg
ICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKLXwgYGB1cmxsaWIucmVzcG9uc2VgYCAgICAgICAgICB8IFNlZSA6bW9kOmBzaXgubW92
ZXMudXJsbGliLnJlc3BvbnNlYHwgOm1vZDpgcHkzOnVybGxpYi5yZXNwb25zZWAgICAgICAgICAg
fAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18
IGBgdXJsbGliLnJvYm90cGFyc2VyYGAgICAgICAgfCA6bW9kOmBweTI6cm9ib3RwYXJzZXJgICAg
ICAgICAgICAgICB8IDptb2Q6YHB5Mzp1cmxsaWIucm9ib3RwYXJzZXJgICAgICAgIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHVybGxp
Yl9yb2JvdHBhcnNlcmBgICAgICAgIHwgOm1vZDpgcHkyOnJvYm90cGFyc2VyYCAgICAgICAgICAg
ICAgfCA6bW9kOmBweTM6dXJsbGliLnJvYm90cGFyc2VyYCAgICAgICB8Ci0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBVc2VyRGljdGBgICAg
ICAgICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVzZXJEaWN0LlVzZXJEaWN0YCAgICAgIHwgOmNs
YXNzOmBweTM6Y29sbGVjdGlvbnMuVXNlckRpY3RgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgVXNlckxpc3RgYCAgICAgICAgICAg
ICAgICAgfCA6Y2xhc3M6YHB5MjpVc2VyTGlzdC5Vc2VyTGlzdGAgICAgICB8IDpjbGFzczpgcHkz
OmNvbGxlY3Rpb25zLlVzZXJMaXN0YCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFVzZXJTdHJpbmdgYCAgICAgICAgICAgICAgIHwg
OmNsYXNzOmBweTI6VXNlclN0cmluZy5Vc2VyU3RyaW5nYCAgfCA6Y2xhc3M6YHB5Mzpjb2xsZWN0
aW9ucy5Vc2VyU3RyaW5nYCB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGB3aW5yZWdgYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5
Mjpfd2lucmVnYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOndpbnJlZ2AgICAgICAgICAg
ICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgeG1scnBjX2NsaWVudGBgICAgICAgICAgICAgfCA6bW9kOmBweTI6eG1scnBj
bGliYCAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp4bWxycGMuY2xpZW50YCAgICAgICAgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYHhtbHJwY19zZXJ2ZXJgYCAgICAgICAgICAgIHwgOm1vZDpgcHkyOlNpbXBsZVhNTFJQQ1Nl
cnZlcmAgICAgICAgfCA6bW9kOmBweTM6eG1scnBjLnNlcnZlcmAgICAgICAgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB4cmFu
Z2VgYCAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6eHJhbmdlYCAgICAgICAgICAgICAg
ICAgIHwgOmZ1bmM6YHB5MzpyYW5nZWAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgemlwYGAgICAgICAg
ICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pemlwYCAgICAgICAgICB8IDpm
dW5jOmBweTM6emlwYCAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHppcF9sb25nZXN0YGAgICAgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaXppcF9sb25nZXN0YCAgfCA6ZnVuYzpgcHkz
Oml0ZXJ0b29scy56aXBfbG9uZ2VzdGAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQotdXJsbGliIHBhcnNlCi08PDw8PDw8PDw8PDwKLQot
Li4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5wYXJzZQotICAgOnN5bm9wc2lzOiBTdHVmZiBm
cm9tIDptb2Q6YHB5Mjp1cmxwYXJzZWAgYW5kIDptb2Q6YHB5Mjp1cmxsaWJgIGluIFB5dGhvbiAy
IGFuZCA6bW9kOmBweTM6dXJsbGliLnBhcnNlYCBpbiBQeXRob24gMwotCi1Db250YWlucyBmdW5j
dGlvbnMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIucGFyc2VgIGFuZCBQeXRob24g
MidzOgotCi06bW9kOmBweTI6dXJscGFyc2VgOgotCi0qIDpmdW5jOmBweTI6dXJscGFyc2UuUGFy
c2VSZXN1bHRgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UuU3BsaXRSZXN1bHRgCi0qIDpmdW5jOmBw
eTI6dXJscGFyc2UudXJscGFyc2VgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsdW5wYXJzZWAK
LSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5wYXJzZV9xc2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5w
YXJzZV9xc2xgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsam9pbmAKLSogOmZ1bmM6YHB5Mjp1
cmxwYXJzZS51cmxkZWZyYWdgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsc3BsaXRgCi0qIDpm
dW5jOmBweTI6dXJscGFyc2UudXJsdW5zcGxpdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5zcGxp
dHF1ZXJ5YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfZnJhZ21lbnRgCi0qIDpmdW5jOmBw
eTI6dXJscGFyc2UudXNlc19uZXRsb2NgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19wYXJh
bXNgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19xdWVyeWAKLSogOmZ1bmM6YHB5Mjp1cmxw
YXJzZS51c2VzX3JlbGF0aXZlYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmZ1bmM6
YHB5Mjp1cmxsaWIucXVvdGVgCi0qIDpmdW5jOmBweTI6dXJsbGliLnF1b3RlX3BsdXNgCi0qIDpm
dW5jOmBweTI6dXJsbGliLnNwbGl0dGFnYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5zcGxpdHVzZXJg
Ci0qIDpmdW5jOmBweTI6dXJsbGliLnVucXVvdGVgCi0qIDpmdW5jOmBweTI6dXJsbGliLnVucXVv
dGVfcGx1c2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJsZW5jb2RlYAotCi0KLXVybGxpYiBlcnJv
cgotPDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IKLSAg
IDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6bW9kOmBweTI6dXJsbGliYCBhbmQgOm1vZDpgcHkyOnVy
bGxpYjJgIGluIFB5dGhvbiAyIGFuZCA6bW9kOmBweTM6dXJsbGliLmVycm9yYCBpbiBQeXRob24g
MwotCi1Db250YWlucyBleGNlcHRpb25zIGZyb20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGli
LmVycm9yYCBhbmQgUHl0aG9uIDInczoKLQotOm1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmV4Yzpg
cHkyOnVybGxpYi5Db250ZW50VG9vU2hvcnRFcnJvcmAKLQotYW5kIDptb2Q6YHB5Mjp1cmxsaWIy
YDoKLQotKiA6ZXhjOmBweTI6dXJsbGliMi5VUkxFcnJvcmAKLSogOmV4YzpgcHkyOnVybGxpYjIu
SFRUUEVycm9yYAotCi0KLXVybGxpYiByZXF1ZXN0Ci08PDw8PDw8PDw8PDw8PAotCi0uLiBtb2R1
bGU6OiBzaXgubW92ZXMudXJsbGliLnJlcXVlc3QKLSAgIDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6
bW9kOmBweTI6dXJsbGliYCBhbmQgOm1vZDpgcHkyOnVybGxpYjJgIGluIFB5dGhvbiAyIGFuZCA6
bW9kOmBweTM6dXJsbGliLnJlcXVlc3RgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGl0ZW1zIGZy
b20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnJlcXVlc3RgIGFuZCBQeXRob24gMidzOgot
Ci06bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZnVuYzpgcHkyOnVybGxpYi5wYXRobmFtZTJ1cmxg
Ci0qIDpmdW5jOmBweTI6dXJsbGliLnVybDJwYXRobmFtZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIu
Z2V0cHJveGllc2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJscmV0cmlldmVgCi0qIDpmdW5jOmBw
eTI6dXJsbGliLnVybGNsZWFudXBgCi0qIDpjbGFzczpgcHkyOnVybGxpYi5VUkxvcGVuZXJgCi0q
IDpjbGFzczpgcHkyOnVybGxpYi5GYW5jeVVSTG9wZW5lcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIu
cHJveHlfYnlwYXNzYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYjJgOgotCi0qIDpmdW5jOmBweTI6
dXJsbGliMi51cmxvcGVuYAotKiA6ZnVuYzpgcHkyOnVybGxpYjIuaW5zdGFsbF9vcGVuZXJgCi0q
IDpmdW5jOmBweTI6dXJsbGliMi5idWlsZF9vcGVuZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIu
UmVxdWVzdGAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5PcGVuZXJEaXJlY3RvcmAKLSogOmNsYXNz
OmBweTI6dXJsbGliMi5IVFRQRGVmYXVsdEVycm9ySGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJs
bGliMi5IVFRQUmVkaXJlY3RIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBDb29r
aWVQcm9jZXNzb3JgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuUHJveHlIYW5kbGVyYAotKiA6Y2xh
c3M6YHB5Mjp1cmxsaWIyLkJhc2VIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBQ
YXNzd29yZE1ncmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQUGFzc3dvcmRNZ3JXaXRoRGVm
YXVsdFJlYWxtYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkFic3RyYWN0QmFzaWNBdXRoSGFuZGxl
cmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQQmFzaWNBdXRoSGFuZGxlcmAKLSogOmNsYXNz
OmBweTI6dXJsbGliMi5Qcm94eUJhc2ljQXV0aEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxp
YjIuQWJzdHJhY3REaWdlc3RBdXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQ
RGlnZXN0QXV0aEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuUHJveHlEaWdlc3RBdXRo
SGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQSGFuZGxlcmAKLSogOmNsYXNzOmBw
eTI6dXJsbGliMi5IVFRQU0hhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuRmlsZUhhbmRs
ZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuRlRQSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJs
bGliMi5DYWNoZUZUUEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuVW5rbm93bkhhbmRs
ZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUEVycm9yUHJvY2Vzc29yYAotCi0KLXVybGxp
YiByZXNwb25zZQotPDw8PDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxs
aWIucmVzcG9uc2UKLSAgIDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6bW9kOmBweTI6dXJsbGliYCBp
biBQeXRob24gMiBhbmQgOm1vZDpgcHkzOnVybGxpYi5yZXNwb25zZWAgaW4gUHl0aG9uIDMKLQot
Q29udGFpbnMgY2xhc3NlcyBmcm9tIFB5dGhvbiAzJ3MgOm1vZDpgcHkzOnVybGxpYi5yZXNwb25z
ZWAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxsaWJgOgotCi0qIDpjbGFzczpgcHky
OnVybGxpYi5hZGRiYXNlYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkY2xvc2Vob29rYAotKiA6
Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkaW5mb2AKLSogOmNsYXNzOmBweTI6dXJsbGliLmFkZGluZm91
cmxgCi0KLQotQWR2YW5jZWQgLSBDdXN0b21pemluZyByZW5hbWVzCi08PDw8PDw8PDw8PDw8PDw8
PDw8PDw8PDw8PDw8PDwKLQotLi4gY3VycmVudG1vZHVsZTo6IHNpeAotCi1JdCBpcyBwb3NzaWJs
ZSB0byBhZGQgYWRkaXRpb25hbCBuYW1lcyB0byB0aGUgOm1vZDpgc2l4Lm1vdmVzYCBuYW1lc3Bh
Y2UuCi0KLQotLi4gZnVuY3Rpb246OiBhZGRfbW92ZShpdGVtKQotCi0gICBBZGQgKml0ZW0qIHRv
IHRoZSA6bW9kOmBzaXgubW92ZXNgIG1hcHBpbmcuICAqaXRlbSogc2hvdWxkIGJlIGEKLSAgIDpj
bGFzczpgTW92ZWRBdHRyaWJ1dGVgIG9yIDpjbGFzczpgTW92ZWRNb2R1bGVgIGluc3RhbmNlLgot
Ci0KLS4uIGZ1bmN0aW9uOjogcmVtb3ZlX21vdmUobmFtZSkKLQotICAgUmVtb3ZlIHRoZSA6bW9k
OmBzaXgubW92ZXNgIG1hcHBpbmcgY2FsbGVkICpuYW1lKi4gICpuYW1lKiBzaG91bGQgYmUgYQot
ICAgc3RyaW5nLgotCi0KLUluc3RhbmNlcyBvZiB0aGUgZm9sbG93aW5nIGNsYXNzZXMgY2FuIGJl
IHBhc3NlZCB0byA6ZnVuYzpgYWRkX21vdmVgLiAgTmVpdGhlcgotaGF2ZSBhbnkgcHVibGljIG1l
bWJlcnMuCi0KLQotLi4gY2xhc3M6OiBNb3ZlZE1vZHVsZShuYW1lLCBvbGRfbW9kLCBuZXdfbW9k
KQotCi0gICBDcmVhdGUgYSBtYXBwaW5nIGZvciA6bW9kOmBzaXgubW92ZXNgIGNhbGxlZCAqbmFt
ZSogdGhhdCByZWZlcmVuY2VzIGRpZmZlcmVudAotICAgbW9kdWxlcyBpbiBQeXRob24gMiBhbmQg
My4gICpvbGRfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9uIDIgbW9kdWxlLgotICAgKm5l
d19tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMyBtb2R1bGUuCi0KLQotLi4gY2xhc3M6
OiBNb3ZlZEF0dHJpYnV0ZShuYW1lLCBvbGRfbW9kLCBuZXdfbW9kLCBvbGRfYXR0cj1Ob25lLCBu
ZXdfYXR0cj1Ob25lKQotCi0gICBDcmVhdGUgYSBtYXBwaW5nIGZvciA6bW9kOmBzaXgubW92ZXNg
IGNhbGxlZCAqbmFtZSogdGhhdCByZWZlcmVuY2VzIGRpZmZlcmVudAotICAgYXR0cmlidXRlcyBp
biBQeXRob24gMiBhbmQgMy4gICpvbGRfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9uIDIg
bW9kdWxlLgotICAgKm5ld19tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMyBtb2R1bGUu
ICBJZiAqbmV3X2F0dHIqIGlzIG5vdCBnaXZlbiwgaXQKLSAgIGRlZmF1bHRzIHRvICpvbGRfYXR0
ciouICBJZiBuZWl0aGVyIGlzIGdpdmVuLCB0aGV5IGJvdGggZGVmYXVsdCB0byAqbmFtZSouCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBkN2I3OGZiNTE2MDg1Y2Ew
YTczYjA0NTQ4MDA2ZTdhNTIxZWYzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24v
Y29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTk4NjUzZWQwZmUy
ZmFlZThhZmY2N2E0Y2IzZWZkOTdlYTMwN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2l4L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zaXgvc2l4LnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvX19pbml0
X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NmJlODUxZDY0ZmIwOTdjMjg3
Yjg2ZmI1MWExOTc4NDZmNDJjMzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zc2x1dGlscy9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
aW1wb3J0IG9wZW5zc2wKLWltcG9ydCBwcmVnZW5lcmF0ZWQKLWZyb20gYmFzZSBpbXBvcnQgTm9T
U0xFbnZpcm9ubWVudAotZnJvbSBvcGVuc3NsIGltcG9ydCBPcGVuU1NMRW52aXJvbm1lbnQKLWZy
b20gcHJlZ2VuZXJhdGVkIGltcG9ydCBQcmVnZW5lcmF0ZWRTU0xFbnZpcm9ubWVudAotCi1lbnZp
cm9ubWVudHMgPSB7Im5vbmUiOiBOb1NTTEVudmlyb25tZW50LAotICAgICAgICAgICAgICAgICJv
cGVuc3NsIjogT3BlblNTTEVudmlyb25tZW50LAotICAgICAgICAgICAgICAgICJwcmVnZW5lcmF0
ZWQiOiBQcmVnZW5lcmF0ZWRTU0xFbnZpcm9ubWVudH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRp
bHMvYmFzZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM3YWU1ZjIzY2NmMWZh
OThjZDM5NmFmODg2OWIyNzRmYzllMzQ2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci1jbGFzcyBOb1NTTEVudmlyb25tZW50KG9iamVjdCk6Ci0gICAgc3NsX2VuYWJsZWQgPSBGYWxz
ZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIHBh
c3MKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmCi0KLSAg
ICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwotCi0g
ICAgZGVmIGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3QpOgotICAgICAgICByZXR1cm4gTm9uZSwg
Tm9uZQotCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDljMjQ3MWFhZWUzOTllNTdkMDQyNWFiMWYzNjNlNzAxNWQ0NWExYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL29wZW5zc2wu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjIgKzAsMCBAQAotaW1wb3J0IGZ1bmN0b29scwotaW1w
b3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgc3VicHJvY2Vzcwot
aW1wb3J0IHRlbXBmaWxlCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRh
Ci0KLSMgQW1vdW50IG9mIHRpbWUgYmV5b25kIHRoZSBwcmVzZW50IHRvIGNvbnNpZGVyIGNlcnRp
ZmljYXRlcyAiZXhwaXJlZC4iIFRoaXMKLSMgYWxsb3dzIGNlcnRpZmljYXRlcyB0byBiZSBwcm9h
Y3RpdmVseSByZS1nZW5lcmF0ZWQgaW4gdGhlICJidWZmZXIiIHBlcmlvZAotIyBwcmlvciB0byB0
aGVpciBleGFjdCBleHBpcmF0aW9uIHRpbWUuCi1DRVJUX0VYUElSWV9CVUZGRVIgPSBkaWN0KGhv
dXJzPTYpCi0KLWNsYXNzIE9wZW5TU0wob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBiaW5hcnksIGJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywgZHVyYXRpb24sCi0g
ICAgICAgICAgICAgICAgIGJhc2VfY29uZl9wYXRoPU5vbmUpOgotICAgICAgICAiIiJDb250ZXh0
IG1hbmFnZXIgZm9yIGludGVyYWN0aW5nIHdpdGggT3BlblNTTC4KLSAgICAgICAgQ3JlYXRlcyBh
IGNvbmZpZyBmaWxlIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNvbnRleHQuCi0KLSAgICAgICAg
OnBhcmFtIGxvZ2dlcjogc3RkbGliIGxvZ2dlciBvciBweXRob24gc3RydWN0dXJlZCBsb2dnZXIK
LSAgICAgICAgOnBhcmFtIGJpbmFyeTogcGF0aCB0byBvcGVuc3NsIGJpbmFyeQotICAgICAgICA6
cGFyYW0gYmFzZV9wYXRoOiBwYXRoIHRvIGRpcmVjdG9yeSBmb3Igc3RvcmluZyBjZXJ0aWZpY2F0
ZXMKLSAgICAgICAgOnBhcmFtIGNvbmZfcGF0aDogcGF0aCBmb3IgY29uZmlndXJhdGlvbiBmaWxl
IHN0b3JpbmcgY29uZmlndXJhdGlvbiBkYXRhCi0gICAgICAgIDpwYXJhbSBob3N0czogbGlzdCBv
ZiBob3N0cyB0byBpbmNsdWRlIGluIGNvbmZpZ3VyYXRpb24gKG9yIE5vbmUgaWYgbm90Ci0gICAg
ICAgICAgICAgICAgICAgICAgZ2VuZXJhdGluZyBob3N0IGNlcnRpZmljYXRlcykKLSAgICAgICAg
OnBhcmFtIGR1cmF0aW9uOiBDZXJ0aWZpY2F0ZSBkdXJhdGlvbiBpbiBkYXlzIiIiCi0KLSAgICAg
ICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5h
cnkKLSAgICAgICAgc2VsZi5jb25mX3BhdGggPSBjb25mX3BhdGgKLSAgICAgICAgc2VsZi5iYXNl
X2NvbmZfcGF0aCA9IGJhc2VfY29uZl9wYXRoCi0gICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2Vy
Ci0gICAgICAgIHNlbGYucHJvYyA9IE5vbmUKLSAgICAgICAgc2VsZi5jbWQgPSBbXQotICAgICAg
ICBzZWxmLmhvc3RzID0gaG9zdHMKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCi0K
LSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICB3aXRoIG9wZW4oc2VsZi5jb25mX3Bh
dGgsICJ3IikgYXMgZjoKLSAgICAgICAgICAgIGYud3JpdGUoZ2V0X2NvbmZpZyhzZWxmLmJhc2Vf
cGF0aCwgc2VsZi5ob3N0cywgc2VsZi5kdXJhdGlvbikpCi0gICAgICAgIHJldHVybiBzZWxmCi0K
LSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgb3MudW5s
aW5rKHNlbGYuY29uZl9wYXRoKQotCi0gICAgZGVmIGxvZyhzZWxmLCBsaW5lKToKLSAgICAgICAg
aWYgaGFzYXR0cihzZWxmLmxvZ2dlciwgInByb2Nlc3Nfb3V0cHV0Iik6Ci0gICAgICAgICAgICBz
ZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnByb2MucGlkIGlmIHNlbGYucHJvYyBpcyBu
b3QgTm9uZSBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY21kKSkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKGxpbmUpCi0KLSAgICBkZWYgX19jYWxs
X18oc2VsZiwgY21kLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJSdW4gYSBjb21tYW5k
IHVzaW5nIE9wZW5TU0wgaW4gdGhlIGN1cnJlbnQgY29udGV4dC4KLQotICAgICAgICA6cGFyYW0g
Y21kOiBUaGUgb3BlbnNzbCBzdWJjb21tYW5kIHRvIHJ1bgotICAgICAgICA6cGFyYW0gKmFyZ3M6
IEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNvbW1hbmQKLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYuY21kID0gW3NlbGYuYmluYXJ5LCBjbWRdCi0gICAgICAgIGlmIGNtZCAh
PSAieDUwOSI6Ci0gICAgICAgICAgICBzZWxmLmNtZCArPSBbIi1jb25maWciLCBzZWxmLmNvbmZf
cGF0aF0KLSAgICAgICAgc2VsZi5jbWQgKz0gbGlzdChhcmdzKQotCi0gICAgICAgICMgQ29weSB0
aGUgZW52aXJvbm1lbnQsIGNvbnZlcnRpbmcgdG8gcGxhaW4gc3RyaW5ncy4gV2luZG93cwotICAg
ICAgICAjIFN0YXJ0UHJvY2VzcyBpcyBwaWNreSBhYm91dCBhbGwgdGhlIGtleXMvdmFsdWVzIGJl
aW5nIHBsYWluIHN0cmluZ3MsCi0gICAgICAgICMgYnV0IGF0IGxlYXN0IGluIE1TWVMgc2hlbGxz
LCB0aGUgb3MuZW52aXJvbiBkaWN0aW9uYXJ5IGNhbiBiZSBtaXhlZC4KLSAgICAgICAgZW52ID0g
e30KLSAgICAgICAgZm9yIGssIHYgaW4gb3MuZW52aXJvbi5pdGVyaXRlbXMoKToKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBlbnZbay5lbmNvZGUoInV0ZjgiKV0gPSB2LmVuY29k
ZSgidXRmOCIpCi0gICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAg
ICAgICAgICAgIHBhc3MKLQotICAgICAgICBpZiBzZWxmLmJhc2VfY29uZl9wYXRoIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgZW52WyJPUEVOU1NMX0NPTkYiXSA9IHNlbGYuYmFzZV9jb25mX3Bh
dGguZW5jb2RlKCJ1dGY4IikKLQotICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVu
KHNlbGYuY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERP
VVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKLSAgICAg
ICAgc3Rkb3V0LCBzdGRlcnIgPSBzZWxmLnByb2MuY29tbXVuaWNhdGUoKQotICAgICAgICBzZWxm
LmxvZyhzdGRvdXQpCi0gICAgICAgIGlmIHNlbGYucHJvYy5yZXR1cm5jb2RlICE9IDA6Ci0gICAg
ICAgICAgICByYWlzZSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcihzZWxmLnByb2MucmV0
dXJuY29kZSwgc2VsZi5jbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQ9c3Rkb3V0KQotCi0gICAgICAgIHNlbGYuY21kID0gW10KLSAgICAg
ICAgc2VsZi5wcm9jID0gTm9uZQotICAgICAgICByZXR1cm4gc3Rkb3V0Ci0KLQotZGVmIG1ha2Vf
c3ViamVjdChjb21tb25fbmFtZSwKLSAgICAgICAgICAgICAgICAgY291bnRyeT1Ob25lLAotICAg
ICAgICAgICAgICAgICBzdGF0ZT1Ob25lLAotICAgICAgICAgICAgICAgICBsb2NhbGl0eT1Ob25l
LAotICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAg
b3JnYW5pemF0aW9uX3VuaXQ9Tm9uZSk6Ci0gICAgYXJncyA9IFsoImNvdW50cnkiLCAiQyIpLAot
ICAgICAgICAgICAgKCJzdGF0ZSIsICJTVCIpLAotICAgICAgICAgICAgKCJsb2NhbGl0eSIsICJM
IiksCi0gICAgICAgICAgICAoIm9yZ2FuaXphdGlvbiIsICJPIiksCi0gICAgICAgICAgICAoIm9y
Z2FuaXphdGlvbl91bml0IiwgIk9VIiksCi0gICAgICAgICAgICAoImNvbW1vbl9uYW1lIiwgIkNO
IildCi0KLSAgICBydiA9IFtdCi0KLSAgICBmb3IgdmFyLCBrZXkgaW4gYXJnczoKLSAgICAgICAg
dmFsdWUgPSBsb2NhbHMoKVt2YXJdCi0gICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcnYuYXBwZW5kKCIvJXM9JXMiICUgKGtleSwgdmFsdWUucmVwbGFjZSgiLyIsICJc
XC8iKSkpCi0KLSAgICByZXR1cm4gIiIuam9pbihydikKLQotZGVmIG1ha2VfYWx0X25hbWVzKGhv
c3RzKToKLSAgICBydiA9IFtdCi0gICAgZm9yIG5hbWUgaW4gaG9zdHM6Ci0gICAgICAgIHJ2LmFw
cGVuZCgiRE5TOiVzIiAlIG5hbWUpCi0gICAgcmV0dXJuICIsIi5qb2luKHJ2KQotCi1kZWYgZ2V0
X2NvbmZpZyhyb290X2RpciwgaG9zdHMsIGR1cmF0aW9uPTMwKToKLSAgICBpZiBob3N0cyBpcyBO
b25lOgotICAgICAgICBzYW5fbGluZSA9ICIiCi0gICAgZWxzZToKLSAgICAgICAgc2FuX2xpbmUg
PSAic3ViamVjdEFsdE5hbWUgPSAlcyIgJSBtYWtlX2FsdF9uYW1lcyhob3N0cykKLQotICAgIGlm
IG9zLnBhdGguc2VwID09ICJcXCI6Ci0gICAgICAgICMgVGhpcyBzZWVtcyB0byBiZSBuZWVkZWQg
Zm9yIHRoZSBTaGluaW5nIExpZ2h0IE9wZW5TU0wgb24KLSAgICAgICAgIyBXaW5kb3dzLCBhdCBs
ZWFzdC4KLSAgICAgICAgcm9vdF9kaXIgPSByb290X2Rpci5yZXBsYWNlKCJcXCIsICJcXFxcIikK
LQotICAgIHJ2ID0gIiIiWyBjYSBdCi1kZWZhdWx0X2NhID0gQ0FfZGVmYXVsdAotCi1bIENBX2Rl
ZmF1bHQgXQotZGlyID0gJShyb290X2RpcilzCi1jZXJ0cyA9ICRkaXIKLW5ld19jZXJ0c19kaXIg
PSAkY2VydHMKLWNybF9kaXIgPSAkZGlyJShzZXApc2NybAotZGF0YWJhc2UgPSAkZGlyJShzZXAp
c2luZGV4LnR4dAotcHJpdmF0ZV9rZXkgPSAkZGlyJShzZXApc2Nha2V5LnBlbQotY2VydGlmaWNh
dGUgPSAkZGlyJShzZXApc2NhY2VydC5wZW0KLXNlcmlhbCA9ICRkaXIlKHNlcClzc2VyaWFsCi1j
cmxkaXIgPSAkZGlyJShzZXApc2NybAotY3JsbnVtYmVyID0gJGRpciUoc2VwKXNjcmxudW1iZXIK
LWNybCA9ICRjcmxkaXIlKHNlcClzY3JsLnBlbQotUkFOREZJTEUgPSAkZGlyJShzZXApc3ByaXZh
dGUlKHNlcClzLnJhbmQKLXg1MDlfZXh0ZW5zaW9ucyA9IHVzcl9jZXJ0Ci1uYW1lX29wdCAgICAg
ICAgPSBjYV9kZWZhdWx0Ci1jZXJ0X29wdCAgICAgICAgPSBjYV9kZWZhdWx0Ci1kZWZhdWx0X2Rh
eXMgPSAlKGR1cmF0aW9uKWQKLWRlZmF1bHRfY3JsX2RheXMgPSAlKGR1cmF0aW9uKWQKLWRlZmF1
bHRfbWQgPSBzaGEyNTYKLXByZXNlcnZlID0gbm8KLXBvbGljeSA9IHBvbGljeV9hbnl0aGluZwot
Y29weV9leHRlbnNpb25zID0gY29weQotCi1bIHBvbGljeV9hbnl0aGluZyBdCi1jb3VudHJ5TmFt
ZSA9IG9wdGlvbmFsCi1zdGF0ZU9yUHJvdmluY2VOYW1lID0gb3B0aW9uYWwKLWxvY2FsaXR5TmFt
ZSA9IG9wdGlvbmFsCi1vcmdhbml6YXRpb25OYW1lID0gb3B0aW9uYWwKLW9yZ2FuaXphdGlvbmFs
VW5pdE5hbWUgPSBvcHRpb25hbAotY29tbW9uTmFtZSA9IHN1cHBsaWVkCi1lbWFpbEFkZHJlc3Mg
PSBvcHRpb25hbAotCi1bIHJlcSBdCi1kZWZhdWx0X2JpdHMgPSAyMDQ4Ci1kZWZhdWx0X2tleWZp
bGUgID0gcHJpdmtleS5wZW0KLWRpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0aW5ndWlzaGVk
X25hbWUKLWF0dHJpYnV0ZXMgPSByZXFfYXR0cmlidXRlcwoteDUwOV9leHRlbnNpb25zID0gdjNf
Y2EKLQotIyBQYXNzd29yZHMgZm9yIHByaXZhdGUga2V5cyBpZiBub3QgcHJlc2VudCB0aGV5IHdp
bGwgYmUgcHJvbXB0ZWQgZm9yCi0jIGlucHV0X3Bhc3N3b3JkID0gc2VjcmV0Ci0jIG91dHB1dF9w
YXNzd29yZCA9IHNlY3JldAotc3RyaW5nX21hc2sgPSB1dGY4b25seQotcmVxX2V4dGVuc2lvbnMg
PSB2M19yZXEKLQotWyByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lIF0KLWNvdW50cnlOYW1lID0gQ291
bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKQotY291bnRyeU5hbWVfZGVmYXVsdCA9IEFVCi1jb3Vu
dHJ5TmFtZV9taW4gPSAyCi1jb3VudHJ5TmFtZV9tYXggPSAyCi1zdGF0ZU9yUHJvdmluY2VOYW1l
ID0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKQotc3RhdGVPclByb3ZpbmNlTmFt
ZV9kZWZhdWx0ID0KLWxvY2FsaXR5TmFtZSA9IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQotMC5v
cmdhbml6YXRpb25OYW1lID0gT3JnYW5pemF0aW9uIE5hbWUKLTAub3JnYW5pemF0aW9uTmFtZV9k
ZWZhdWx0ID0gV2ViIFBsYXRmb3JtIFRlc3RzCi1vcmdhbml6YXRpb25hbFVuaXROYW1lID0gT3Jn
YW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikKLSNvcmdhbml6YXRpb25hbFVuaXRO
YW1lX2RlZmF1bHQgPQotY29tbW9uTmFtZSA9IENvbW1vbiBOYW1lIChlLmcuIHNlcnZlciBGUURO
IG9yIFlPVVIgbmFtZSkKLWNvbW1vbk5hbWVfbWF4ID0gNjQKLWVtYWlsQWRkcmVzcyA9IEVtYWls
IEFkZHJlc3MKLWVtYWlsQWRkcmVzc19tYXggPSA2NAotCi1bIHJlcV9hdHRyaWJ1dGVzIF0KLQot
WyB1c3JfY2VydCBdCi1iYXNpY0NvbnN0cmFpbnRzPUNBOmZhbHNlCi1zdWJqZWN0S2V5SWRlbnRp
Zmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkLGlzc3VlcgotCi1bIHYzX3Jl
cSBdCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6RkFMU0UKLWtleVVzYWdlID0gbm9uUmVwdWRpYXRp
b24sIGRpZ2l0YWxTaWduYXR1cmUsIGtleUVuY2lwaGVybWVudAotZXh0ZW5kZWRLZXlVc2FnZSA9
IHNlcnZlckF1dGgKLSUoc2FuX2xpbmUpcwotCi1bIHYzX2NhIF0KLWJhc2ljQ29uc3RyYWludHMg
PSBDQTp0cnVlCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVudGlm
aWVyPWtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlzCi1rZXlVc2FnZSA9IGtleUNlcnRTaWduCi0i
IiIgJSB7InJvb3RfZGlyIjogcm9vdF9kaXIsCi0gICAgICAgInNhbl9saW5lIjogc2FuX2xpbmUs
Ci0gICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24sCi0gICAgICAgInNlcCI6IG9zLnBhdGguc2Vw
LnJlcGxhY2UoIlxcIiwgIlxcXFwiKX0KLQotICAgIHJldHVybiBydgotCi1jbGFzcyBPcGVuU1NM
RW52aXJvbm1lbnQob2JqZWN0KToKLSAgICBzc2xfZW5hYmxlZCA9IFRydWUKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIG9wZW5zc2xfYmluYXJ5PSJvcGVuc3NsIiwgYmFzZV9wYXRo
PU5vbmUsCi0gICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJ3ZWItcGxhdGZvcm0tdGVzdHMiLCBm
b3JjZV9yZWdlbmVyYXRlPUZhbHNlLAotICAgICAgICAgICAgICAgICBkdXJhdGlvbj0zMCwgYmFz
ZV9jb25mX3BhdGg9Tm9uZSk6Ci0gICAgICAgICIiIlNTTCBlbnZpcm9ubWVudCB0aGF0IGNyZWF0
ZXMgYSBsb2NhbCBDQSBhbmQgaG9zdCBjZXJ0aWZpY2F0ZSB1c2luZyBPcGVuU1NMLgotCi0gICAg
ICAgIEJ5IGRlZmF1bHQgdGhpcyB3aWxsIGxvb2sgaW4gYmFzZV9wYXRoIGZvciBleGlzdGluZyBj
ZXJ0aWZpY2F0ZXMgdGhhdCBhcmUgc3RpbGwKLSAgICAgICAgdmFsaWQgYW5kIG9ubHkgY3JlYXRl
IG5ldyBjZXJ0aWZpY2F0ZXMgaWYgdGhlcmUgYXJlbid0IGFueS4gVGhpcyBiZWhhdmlvdXIgY2Fu
Ci0gICAgICAgIGJlIGFkanVzdGVkIHVzaW5nIHRoZSBmb3JjZV9yZWdlbmVyYXRlIG9wdGlvbi4K
LQotICAgICAgICA6cGFyYW0gbG9nZ2VyOiBhIHN0ZGxpYiBsb2dnaW5nIGNvbXBhdGlibGUgbG9n
Z2VyIG9yIG1vemxvZyBzdHJ1Y3R1cmVkIGxvZ2dlcgotICAgICAgICA6cGFyYW0gb3BlbnNzbF9i
aW5hcnk6IFBhdGggdG8gdGhlIE9wZW5TU0wgYmluYXJ5Ci0gICAgICAgIDpwYXJhbSBiYXNlX3Bh
dGg6IFBhdGggaW4gd2hpY2ggY2VydGlmaWNhdGVzIHdpbGwgYmUgc3RvcmVkLiBJZiBOb25lLCBh
IHRlbXBvcmFyeQotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgd2lsbCBiZSB1
c2VkIGFuZCByZW1vdmVkIHdoZW4gdGhlIHNlcnZlciBzaHV0cyBkb3duCi0gICAgICAgIDpwYXJh
bSBwYXNzd29yZDogUGFzc3dvcmQgdG8gdXNlCi0gICAgICAgIDpwYXJhbSBmb3JjZV9yZWdlbmVy
YXRlOiBBbHdheXMgY3JlYXRlIGEgbmV3IGNlcnRpZmljYXRlIGV2ZW4gaWYgb25lIGFscmVhZHkg
ZXhpc3RzLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLQotICAg
ICAgICBzZWxmLnRlbXBvcmFyeSA9IEZhbHNlCi0gICAgICAgIGlmIGJhc2VfcGF0aCBpcyBOb25l
OgotICAgICAgICAgICAgYmFzZV9wYXRoID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAgICAg
ICBzZWxmLnRlbXBvcmFyeSA9IFRydWUKLQotICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IG9zLnBh
dGguYWJzcGF0aChiYXNlX3BhdGgpCi0gICAgICAgIHNlbGYucGFzc3dvcmQgPSBwYXNzd29yZAot
ICAgICAgICBzZWxmLmZvcmNlX3JlZ2VuZXJhdGUgPSBmb3JjZV9yZWdlbmVyYXRlCi0gICAgICAg
IHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotICAgICAgICBzZWxmLmJhc2VfY29uZl9wYXRoID0g
YmFzZV9jb25mX3BhdGgKLQotICAgICAgICBzZWxmLnBhdGggPSBOb25lCi0gICAgICAgIHNlbGYu
YmluYXJ5ID0gb3BlbnNzbF9iaW5hcnkKLSAgICAgICAgc2VsZi5vcGVuc3NsID0gTm9uZQotCi0g
ICAgICAgIHNlbGYuX2NhX2NlcnRfcGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2Ffa2V5X3Bh
dGggPSBOb25lCi0gICAgICAgIHNlbGYuaG9zdF9jZXJ0aWZpY2F0ZXMgPSB7fQotCi0gICAgZGVm
IF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYuYmFz
ZV9wYXRoKToKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYuYmFzZV9wYXRoKQotCi0gICAg
ICAgIHBhdGggPSBmdW5jdG9vbHMucGFydGlhbChvcy5wYXRoLmpvaW4sIHNlbGYuYmFzZV9wYXRo
KQotCi0gICAgICAgIHdpdGggb3BlbihwYXRoKCJpbmRleC50eHQiKSwgInciKToKLSAgICAgICAg
ICAgIHBhc3MKLSAgICAgICAgd2l0aCBvcGVuKHBhdGgoInNlcmlhbCIpLCAidyIpIGFzIGY6Ci0g
ICAgICAgICAgICBzZXJpYWwgPSAiJXgiICUgcmFuZG9tLnJhbmRpbnQoMCwgMTAwMDAwMCkKLSAg
ICAgICAgICAgIGlmIGxlbihzZXJpYWwpICUgMjoKLSAgICAgICAgICAgICAgICBzZXJpYWwgPSAi
MCIgKyBzZXJpYWwKLSAgICAgICAgICAgIGYud3JpdGUoc2VyaWFsKQotCi0gICAgICAgIHNlbGYu
cGF0aCA9IHBhdGgKLQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYudGVtcG9yYXJ5OgotICAgICAg
ICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLmJhc2VfcGF0aCkKLQotICAgIGRlZiBfY29uZmlnX29w
ZW5zc2woc2VsZiwgaG9zdHMpOgotICAgICAgICBjb25mX3BhdGggPSBzZWxmLnBhdGgoIm9wZW5z
c2wuY2ZnIikKLSAgICAgICAgcmV0dXJuIE9wZW5TU0woc2VsZi5sb2dnZXIsIHNlbGYuYmluYXJ5
LCBzZWxmLmJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywKLSAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5kdXJhdGlvbiwgc2VsZi5iYXNlX2NvbmZfcGF0aCkKLQotICAgIGRlZiBjYV9jZXJ0
X3BhdGgoc2VsZik6Ci0gICAgICAgICIiIkdldCB0aGUgcGF0aCB0byB0aGUgQ0EgY2VydGlmaWNh
dGUgZmlsZSwgZ2VuZXJhdGluZyBhCi0gICAgICAgIG5ldyBvbmUgaWYgbmVlZGVkIiIiCi0gICAg
ICAgIGlmIHNlbGYuX2NhX2NlcnRfcGF0aCBpcyBOb25lIGFuZCBub3Qgc2VsZi5mb3JjZV9yZWdl
bmVyYXRlOgotICAgICAgICAgICAgc2VsZi5fbG9hZF9jYV9jZXJ0KCkKLSAgICAgICAgaWYgc2Vs
Zi5fY2FfY2VydF9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9jYV9jZXJ0X3BhdGgKLQotICAgIGRlZiBfbG9hZF9jYV9j
ZXJ0KHNlbGYpOgotICAgICAgICBrZXlfcGF0aCA9IHNlbGYucGF0aCgiY2FrZXkucGVtIikKLSAg
ICAgICAgY2VydF9wYXRoID0gc2VsZi5wYXRoKCJjYWNlcnQucGVtIikKLQotICAgICAgICBpZiBz
ZWxmLmNoZWNrX2tleV9jZXJ0KGtleV9wYXRoLCBjZXJ0X3BhdGgsIE5vbmUpOgotICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiVXNpbmcgZXhpc3RpbmcgQ0EgY2VydCIpCi0gICAgICAgICAg
ICBzZWxmLl9jYV9rZXlfcGF0aCwgc2VsZi5fY2FfY2VydF9wYXRoID0ga2V5X3BhdGgsIGNlcnRf
cGF0aAotCi0gICAgZGVmIGNoZWNrX2tleV9jZXJ0KHNlbGYsIGtleV9wYXRoLCBjZXJ0X3BhdGgs
IGhvc3RzKToKLSAgICAgICAgIiIiQ2hlY2sgdGhhdCBhIGtleSBhbmQgY2VydCBmaWxlIGV4aXN0
IGFuZCBhcmUgdmFsaWQiIiIKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGtleV9wYXRo
KSBvciBub3Qgb3MucGF0aC5leGlzdHMoY2VydF9wYXRoKToKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQotCi0gICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woaG9zdHMpIGFzIG9wZW5z
c2w6Ci0gICAgICAgICAgICBlbmRfZGF0ZV9zdHIgPSBvcGVuc3NsKCJ4NTA5IiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1ub291dCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICItZW5kZGF0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItaW4iLCBjZXJ0X3BhdGgpLnNwbGl0KCI9IiwgMSlbMV0uc3RyaXAoKQotICAgICAg
ICAgICAgIyBOb3Qgc3VyZSBpZiB0aGlzIHdvcmtzIGluIG90aGVyIGxvY2FsZXMKLSAgICAgICAg
ICAgIGVuZF9kYXRlID0gZGF0ZXRpbWUuc3RycHRpbWUoZW5kX2RhdGVfc3RyLCAiJWIgJWQgJUg6
JU06JVMgJVkgJVoiKQotICAgICAgICAgICAgdGltZV9idWZmZXIgPSB0aW1lZGVsdGEoKipDRVJU
X0VYUElSWV9CVUZGRVIpCi0gICAgICAgICAgICAjIEJlY2F1c2UgYHN0cnB0aW1lYCBkb2VzIG5v
dCBhY2NvdW50IGZvciB0aW1lIHpvbmUgb2Zmc2V0cywgaXQgaXMKLSAgICAgICAgICAgICMgYWx3
YXlzIGluIHRlcm1zIG9mIFVUQywgc28gdGhlIGN1cnJlbnQgdGltZSBzaG91bGQgYmUgY2FsY3Vs
YXRlZAotICAgICAgICAgICAgIyBhY2NvcmRpbmdseS4KLSAgICAgICAgICAgIGlmIGVuZF9kYXRl
IDwgZGF0ZXRpbWUudXRjbm93KCkgKyB0aW1lX2J1ZmZlcjoKLSAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICAjVE9ETzogY2hlY2sgdGhlIGtleSBhY3R1YWxseSBzaWduZWQg
dGhlIGNlcnQuCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX2dlbmVyYXRlX2NhKHNl
bGYpOgotICAgICAgICBwYXRoID0gc2VsZi5wYXRoCi0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IkdlbmVyYXRpbmcgbmV3IENBIGluICVzIiAlIHNlbGYuYmFzZV9wYXRoKQotCi0gICAgICAgIGtl
eV9wYXRoID0gcGF0aCgiY2FrZXkucGVtIikKLSAgICAgICAgcmVxX3BhdGggPSBwYXRoKCJjYXJl
cS5wZW0iKQotICAgICAgICBjZXJ0X3BhdGggPSBwYXRoKCJjYWNlcnQucGVtIikKLQotICAgICAg
ICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKE5vbmUpIGFzIG9wZW5zc2w6Ci0gICAgICAgICAg
ICBvcGVuc3NsKCJyZXEiLAotICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAgICAg
ICAgICAgICAgICAgIi1uZXciLAotICAgICAgICAgICAgICAgICAgICAiLW5ld2tleSIsICJyc2E6
MjA0OCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5b3V0Iiwga2V5X3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICItb3V0IiwgcmVxX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItc3Vi
aiIsIG1ha2Vfc3ViamVjdCgid2ViLXBsYXRmb3JtLXRlc3RzIiksCi0gICAgICAgICAgICAgICAg
ICAgICItcGFzc291dCIsICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQpCi0KLSAgICAgICAgICAg
IG9wZW5zc2woImNhIiwKLSAgICAgICAgICAgICAgICAgICAgIi1iYXRjaCIsCi0gICAgICAgICAg
ICAgICAgICAgICItY3JlYXRlX3NlcmlhbCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5Zmls
ZSIsIGtleV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLXBhc3NpbiIsICJwYXNzOiVzIiAl
IHNlbGYucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICItc2VsZnNpZ24iLAotICAgICAg
ICAgICAgICAgICAgICAiLWV4dGVuc2lvbnMiLCAidjNfY2EiLAotICAgICAgICAgICAgICAgICAg
ICAiLWluIiwgcmVxX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItb3V0IiwgY2VydF9wYXRo
KQotCi0gICAgICAgIG9zLnVubGluayhyZXFfcGF0aCkKLQotICAgICAgICBzZWxmLl9jYV9rZXlf
cGF0aCwgc2VsZi5fY2FfY2VydF9wYXRoID0ga2V5X3BhdGgsIGNlcnRfcGF0aAotCi0gICAgZGVm
IGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3RzKToKLSAgICAgICAgIiIiR2V0IGEgdHVwbGUgb2Yg
KHByaXZhdGUga2V5IHBhdGgsIGNlcnRpZmljYXRlIHBhdGgpIGZvciBhIGhvc3QsCi0gICAgICAg
IGdlbmVyYXRpbmcgbmV3IG9uZXMgaWYgbmVjZXNzYXJ5LgotCi0gICAgICAgIGhvc3RzIG11c3Qg
YmUgYSBsaXN0IG9mIGFsbCBob3N0cyB0byBhcHBlYXIgb24gdGhlIGNlcnRpZmljYXRlLCB3aXRo
Ci0gICAgICAgIHRoZSBwcmltYXJ5IGhvc3RuYW1lIGZpcnN0LiIiIgotICAgICAgICBob3N0cyA9
IHR1cGxlKGhvc3RzKQotICAgICAgICBpZiBob3N0cyBub3QgaW4gc2VsZi5ob3N0X2NlcnRpZmlj
YXRlczoKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmZvcmNlX3JlZ2VuZXJhdGU6Ci0gICAgICAg
ICAgICAgICAga2V5X2NlcnQgPSBzZWxmLl9sb2FkX2hvc3RfY2VydChob3N0cykKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAga2V5X2NlcnQgPSBOb25lCi0gICAgICAgICAgICBp
ZiBrZXlfY2VydCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGtleSwgY2VydCA9IHNlbGYuX2dl
bmVyYXRlX2hvc3RfY2VydChob3N0cykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAga2V5LCBjZXJ0ID0ga2V5X2NlcnQKLSAgICAgICAgICAgIHNlbGYuaG9zdF9jZXJ0aWZpY2F0
ZXNbaG9zdHNdID0ga2V5LCBjZXJ0Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYuaG9zdF9jZXJ0aWZp
Y2F0ZXNbaG9zdHNdCi0KLSAgICBkZWYgX2xvYWRfaG9zdF9jZXJ0KHNlbGYsIGhvc3RzKToKLSAg
ICAgICAgaG9zdCA9IGhvc3RzWzBdCi0gICAgICAgIGtleV9wYXRoID0gc2VsZi5wYXRoKCIlcy5r
ZXkiICUgaG9zdCkKLSAgICAgICAgY2VydF9wYXRoID0gc2VsZi5wYXRoKCIlcy5wZW0iICUgaG9z
dCkKLQotICAgICAgICAjIFRPRE86IGNoZWNrIHRoYXQgdGhpcyBjZXJ0IHdhcyBzaWduZWQgYnkg
dGhlIENBIGNlcnQKLSAgICAgICAgaWYgc2VsZi5jaGVja19rZXlfY2VydChrZXlfcGF0aCwgY2Vy
dF9wYXRoLCBob3N0cyk6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVc2luZyBleGlz
dGluZyBob3N0IGNlcnQiKQotICAgICAgICAgICAgcmV0dXJuIGtleV9wYXRoLCBjZXJ0X3BhdGgK
LQotICAgIGRlZiBfZ2VuZXJhdGVfaG9zdF9jZXJ0KHNlbGYsIGhvc3RzKToKLSAgICAgICAgaG9z
dCA9IGhvc3RzWzBdCi0gICAgICAgIGlmIHNlbGYuX2NhX2tleV9wYXRoIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgpCi0gICAgICAgIGNhX2tleV9wYXRoID0gc2VsZi5f
Y2Ffa2V5X3BhdGgKLQotICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoY2Ffa2V5X3BhdGgp
Ci0KLSAgICAgICAgcGF0aCA9IHNlbGYucGF0aAotCi0gICAgICAgIHJlcV9wYXRoID0gcGF0aCgi
d3B0LnJlcSIpCi0gICAgICAgIGNlcnRfcGF0aCA9IHBhdGgoIiVzLnBlbSIgJSBob3N0KQotICAg
ICAgICBrZXlfcGF0aCA9IHBhdGgoIiVzLmtleSIgJSBob3N0KQotCi0gICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIkdlbmVyYXRpbmcgbmV3IGhvc3QgY2VydCIpCi0KLSAgICAgICAgd2l0aCBzZWxm
Ll9jb25maWdfb3BlbnNzbChob3N0cykgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIG9wZW5zc2wo
InJlcSIsCi0gICAgICAgICAgICAgICAgICAgICItYmF0Y2giLAotICAgICAgICAgICAgICAgICAg
ICAiLW5ld2tleSIsICJyc2E6MjA0OCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5b3V0Iiwg
a2V5X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCBjYV9rZXlfcGF0aCwKLSAgICAg
ICAgICAgICAgICAgICAgIi1ub2RlcyIsCi0gICAgICAgICAgICAgICAgICAgICItb3V0IiwgcmVx
X3BhdGgpCi0KLSAgICAgICAgICAgIG9wZW5zc2woImNhIiwKLSAgICAgICAgICAgICAgICAgICAg
Ii1iYXRjaCIsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCByZXFfcGF0aCwKLSAgICAgICAg
ICAgICAgICAgICAgIi1wYXNzaW4iLCAicGFzczolcyIgJSBzZWxmLnBhc3N3b3JkLAotICAgICAg
ICAgICAgICAgICAgICAiLXN1YmoiLCBtYWtlX3N1YmplY3QoaG9zdCksCi0gICAgICAgICAgICAg
ICAgICAgICItb3V0IiwgY2VydF9wYXRoKQotCi0gICAgICAgIG9zLnVubGluayhyZXFfcGF0aCkK
LQotICAgICAgICByZXR1cm4ga2V5X3BhdGgsIGNlcnRfcGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9wcmVn
ZW5lcmF0ZWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmM0ODdkZjNhZGQwMzkxYzNlZjcxYjY5ZWQ5ZjM3NzM0ZjE0Mjg5MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWNsYXNzIFByZWdlbmVyYXRlZFNTTEVudmly
b25tZW50KG9iamVjdCk6Ci0gICAgIiIiU1NMIGVudmlyb25tZW50IHRvIHVzZSB3aXRoIGV4aXN0
aW5nIGtleS9jZXJ0aWZpY2F0ZSBmaWxlcwotICAgIGUuZy4gd2hlbiBydW5uaW5nIG9uIGEgc2Vy
dmVyIHdpdGggYSBwdWJsaWMgZG9tYWluIG5hbWUKLSAgICAiIiIKLSAgICBzc2xfZW5hYmxlZCA9
IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGhvc3Rfa2V5X3BhdGgsIGhv
c3RfY2VydF9wYXRoLAotICAgICAgICAgICAgICAgICBjYV9jZXJ0X3BhdGg9Tm9uZSk6Ci0gICAg
ICAgIHNlbGYuX2NhX2NlcnRfcGF0aCA9IGNhX2NlcnRfcGF0aAotICAgICAgICBzZWxmLl9ob3N0
X2tleV9wYXRoID0gaG9zdF9rZXlfcGF0aAotICAgICAgICBzZWxmLl9ob3N0X2NlcnRfcGF0aCA9
IGhvc3RfY2VydF9wYXRoCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHBhc3MKLQotICAgIGRlZiBob3N0X2NlcnRfcGF0aChzZWxmLCBob3N0cyk6Ci0gICAgICAg
ICIiIlJldHVybiB0aGUga2V5IGFuZCBjZXJ0aWZpY2F0ZSBwYXRocyBmb3IgdGhlIGhvc3QiIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3Rfa2V5X3BhdGgsIHNlbGYuX2hvc3RfY2VydF9wYXRo
Ci0KLSAgICBkZWYgY2FfY2VydF9wYXRoKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGNl
cnRpZmljYXRlIHBhdGggb2YgdGhlIENBIHRoYXQgc2lnbmVkIHRoZQotICAgICAgICBob3N0IGNl
cnRpZmljYXRlcywgb3IgTm9uZSBpZiB0aGF0IGlzbid0IGtub3duIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9jYV9jZXJ0X3BhdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmMwMTc5Zjg3NGU5
MzBmZGU4NDM0ODUwOTY1ZGFmOTA5MmJkMjU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9vcGVuc3Ns
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
c2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy8uZ2l0aHVi
L3dvcmtmbG93cy90ZXN0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvLmdpdGh1Yi93b3JrZmxvd3MvdGVz
dHMueW1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjQ0ZGU5MzU2OWI3Nzg0MDA1
NjQxYTY1ODE3MWQ5YzdhYTUyNmE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0cy55bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMTggKzAsMCBAQAotbmFtZTogdGVzdHMKLQotb246IFtwdXNoLCBw
dWxsX3JlcXVlc3RdCi0KLWpvYnM6Ci0KLSAgbGludDoKLSAgICBydW5zLW9uOiB1YnVudHUtbGF0
ZXN0Ci0gICAgc3RlcHM6Ci0gICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLSAgICAg
IC0gdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjEKLSAgICAgICAgd2l0aDoKLSAgICAgICAg
ICBweXRob24tdmVyc2lvbjogMy43Ci0gICAgICAtIG5hbWU6IEluc3RhbGwgcGFja2FnZXMKLSAg
ICAgICAgcnVuOiBwaXAgaW5zdGFsbCBibGFjayBmbGFrZTggaXNvcnQgbXlweQotICAgICAgLSBu
YW1lOiBSdW4gbGludGVycwotICAgICAgICBydW46IHwKLSAgICAgICAgICBmbGFrZTggZXhhbXBs
ZXMgc3JjIHRlc3RzCi0gICAgICAgICAgaXNvcnQgLWMgLWRmIC1yYyBleGFtcGxlcyBzcmMgdGVz
dHMKLSAgICAgICAgICBibGFjayAtLWNoZWNrIC0tZGlmZiBleGFtcGxlcyBzcmMgdGVzdHMKLSAg
ICAgICAgICBteXB5IGV4YW1wbGVzIHNyYwotCi0gIHRlc3Q6Ci0gICAgcnVucy1vbjogJHt7IG1h
dHJpeC5vcyB9fQotICAgIHN0cmF0ZWd5OgotICAgICAgZmFpbC1mYXN0OiBmYWxzZQotICAgICAg
bWF0cml4OgotICAgICAgICBvczogW3VidW50dS1sYXRlc3QsIG1hY29zLWxhdGVzdCwgd2luZG93
cy1sYXRlc3RdCi0gICAgICAgIHB5dGhvbjogWzMuOCwgMy43LCAzLjZdCi0gICAgc3RlcHM6Ci0g
ICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLSAgICAgIC0gdXNlczogYWN0aW9ucy9z
ZXR1cC1weXRob25AdjEKLSAgICAgICAgd2l0aDoKLSAgICAgICAgICBweXRob24tdmVyc2lvbjog
JHt7IG1hdHJpeC5weXRob24gfX0KLSAgICAgIC0gbmFtZTogRGlzYWJsZSBmaXJld2FsbCBhbmQg
Y29uZmlndXJlIGNvbXBpbGVyCi0gICAgICAgIGlmOiBtYXRyaXgub3MgPT0gJ21hY29zLWxhdGVz
dCcKLSAgICAgICAgcnVuOiB8Ci0gICAgICAgICAgc3VkbyAvdXNyL2xpYmV4ZWMvQXBwbGljYXRp
b25GaXJld2FsbC9zb2NrZXRmaWx0ZXJmdyAtLXNldGdsb2JhbHN0YXRlIG9mZgotICAgICAgICAg
IGVjaG8gIjo6c2V0LWVudiBuYW1lPUFJT1FVSUNfU0tJUF9URVNUUzo6Y2hhY2hhMjAiCi0gICAg
ICAgICAgZWNobyAiOjpzZXQtZW52IG5hbWU9Q0ZMQUdTOjotSS91c3IvbG9jYWwvb3B0L29wZW5z
c2wvaW5jbHVkZSIKLSAgICAgICAgICBlY2hvICI6OnNldC1lbnYgbmFtZT1MREZMQUdTOjotTC91
c3IvbG9jYWwvb3B0L29wZW5zc2wvbGliIgotICAgICAgLSBuYW1lOiBJbnN0YWxsIE9wZW5TU0wK
LSAgICAgICAgaWY6IG1hdHJpeC5vcyA9PSAnd2luZG93cy1sYXRlc3QnCi0gICAgICAgIHJ1bjog
fAotICAgICAgICAgIGNob2NvIGluc3RhbGwgb3BlbnNzbCAtLW5vLXByb2dyZXNzCi0gICAgICAg
ICAgZWNobyAiOjpzZXQtZW52IG5hbWU9Q0w6Oi9JQzpcUHJvZ3JhfjFcT3BlblNTTC1XaW42NFxp
bmNsdWRlIgotICAgICAgICAgIGVjaG8gIjo6c2V0LWVudiBuYW1lPUxJTks6Oi9MSUJQQVRIOkM6
XFByb2dyYX4xXE9wZW5TU0wtV2luNjRcbGliIgotICAgICAgLSBuYW1lOiBSdW4gdGVzdHMKLSAg
ICAgICAgcnVuOiB8Ci0gICAgICAgICAgcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC1VIHBpcCBzZXR1
cHRvb2xzIHdoZWVsCi0gICAgICAgICAgcGlwIGluc3RhbGwgY292ZXJhZ2UKLSAgICAgICAgICBw
aXAgaW5zdGFsbCAuCi0gICAgICAgICAgY292ZXJhZ2UgcnVuIC1tIHVuaXR0ZXN0IGRpc2NvdmVy
IC12Ci0gICAgICAgICAgY292ZXJhZ2UgeG1sCi0gICAgICAgIHNoZWxsOiBiYXNoCi0gICAgICAt
IG5hbWU6IFVwbG9hZCBjb3ZlcmFnZSByZXBvcnQKLSAgICAgICAgdXNlczogY29kZWNvdi9jb2Rl
Y292LWFjdGlvbkB2MQotICAgICAgICBpZjogbWF0cml4LnB5dGhvbiAhPSAncHlweTMnCi0gICAg
ICAgIHdpdGg6Ci0gICAgICAgICAgdG9rZW46ICR7eyBzZWNyZXRzLkNPREVDT1ZfVE9LRU4gfX0K
LQotICBwYWNrYWdlLXNvdXJjZToKLSAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0Ci0gICAgc3Rl
cHM6Ci0gICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLSAgICAgIC0gdXNlczogYWN0
aW9ucy9zZXR1cC1weXRob25AdjEKLSAgICAgICAgd2l0aDoKLSAgICAgICAgICBweXRob24tdmVy
c2lvbjogMy43Ci0gICAgICAtIG5hbWU6IEJ1aWxkIHNvdXJjZSBwYWNrYWdlCi0gICAgICAgIHJ1
bjogcHl0aG9uIHNldHVwLnB5IHNkaXN0Ci0gICAgICAtIG5hbWU6IFVwbG9hZCBzb3VyY2UgcGFj
a2FnZQotICAgICAgICB1c2VzOiBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2MQotICAgICAgICB3
aXRoOgotICAgICAgICAgIG5hbWU6IGRpc3QKLSAgICAgICAgICBwYXRoOiBkaXN0LwotCi0gIHBh
Y2thZ2Utd2hlZWw6Ci0gICAgcnVucy1vbjogJHt7IG1hdHJpeC5vcyB9fQotICAgIHN0cmF0ZWd5
OgotICAgICAgbWF0cml4OgotICAgICAgICBvczogW3VidW50dS1sYXRlc3QsIG1hY29zLWxhdGVz
dCwgd2luZG93cy1sYXRlc3RdCi0gICAgc3RlcHM6Ci0gICAgICAtIHVzZXM6IGFjdGlvbnMvY2hl
Y2tvdXRAdjIKLSAgICAgIC0gdXNlczogYWN0aW9ucy9zZXR1cC1weXRob25AdjEKLSAgICAgICAg
d2l0aDoKLSAgICAgICAgICBweXRob24tdmVyc2lvbjogMy43Ci0gICAgICAtIG5hbWU6IEJ1aWxk
IHdoZWVscwotICAgICAgICBlbnY6Ci0gICAgICAgICAgQ0lCV19CRUZPUkVfQlVJTEQ6IHB5dGhv
biBzY3JpcHRzL2ZldGNoLXZlbmRvciAvdG1wL3ZlbmRvcgotICAgICAgICAgIENJQldfQkVGT1JF
X0JVSUxEX1dJTkRPV1M6IHB5dGhvbiBzY3JpcHRzXGZldGNoLXZlbmRvciBDOlxjaWJ3XHZlbmRv
cgotICAgICAgICAgIENJQldfRU5WSVJPTk1FTlQ6IEFJT1FVSUNfU0tJUF9URVNUUz1pcHY2LGxv
c3MgQ0ZMQUdTPS1JL3RtcC92ZW5kb3IvaW5jbHVkZSBMREZMQUdTPS1ML3RtcC92ZW5kb3IvbGli
Ci0gICAgICAgICAgQ0lCV19FTlZJUk9OTUVOVF9XSU5ET1dTOiBBSU9RVUlDX1NLSVBfVEVTVFM9
aXB2Nixsb3NzIENMPSIvSUM6XGNpYndcdmVuZG9yXGluY2x1ZGUiIExJTks9Ii9MSUJQQVRIOkM6
XGNpYndcdmVuZG9yXGxpYiIKLSAgICAgICAgICBDSUJXX1NLSVA6IGNwMjctKiBjcDMzLSogY3Az
NC0qIGNwMzUtKiBwcDI3LSoKLSAgICAgICAgICBDSUJXX1RFU1RfQ09NTUFORDogcHl0aG9uIC1t
IHVuaXR0ZXN0IGRpc2NvdmVyIC10IHtwcm9qZWN0fSAtcyB7cHJvamVjdH0vdGVzdHMKLSAgICAg
ICAgcnVuOiB8Ci0gICAgICAgICAgcGlwIGluc3RhbGwgY2lidWlsZHdoZWVsCi0gICAgICAgICAg
Y2lidWlsZHdoZWVsIC0tb3V0cHV0LWRpciBkaXN0Ci0gICAgICAtIG5hbWU6IFVwbG9hZCB3aGVl
bHMKLSAgICAgICAgdXNlczogYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjEKLSAgICAgICAgd2l0
aDoKLSAgICAgICAgICBuYW1lOiBkaXN0Ci0gICAgICAgICAgcGF0aDogZGlzdC8KLQotICBwdWJs
aXNoOgotICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKLSAgICBuZWVkczogW2xpbnQsIHRlc3Qs
IHBhY2thZ2Utc291cmNlLCBwYWNrYWdlLXdoZWVsXQotICAgIHN0ZXBzOgotICAgICAgLSB1c2Vz
OiBhY3Rpb25zL2NoZWNrb3V0QHYyCi0gICAgICAtIHVzZXM6IGFjdGlvbnMvZG93bmxvYWQtYXJ0
aWZhY3RAdjEKLSAgICAgICAgd2l0aDoKLSAgICAgICAgICBuYW1lOiBkaXN0Ci0gICAgICAgICAg
cGF0aDogZGlzdC8KLSAgICAgIC0gbmFtZTogUHVibGlzaCB0byBQeVBJCi0gICAgICAgIGlmOiBn
aXRodWIuZXZlbnRfbmFtZSA9PSAncHVzaCcgJiYgc3RhcnRzV2l0aChnaXRodWIuZXZlbnQucmVm
LCAncmVmcy90YWdzLycpCi0gICAgICAgIHVzZXM6IHB5cGEvZ2gtYWN0aW9uLXB5cGktcHVibGlz
aEBtYXN0ZXIKLSAgICAgICAgd2l0aDoKLSAgICAgICAgICB1c2VyOiBfX3Rva2VuX18KLSAgICAg
ICAgICBwYXNzd29yZDogJHt7IHNlY3JldHMuUFlQSV9UT0tFTiB9fQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
Ly5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjYmMwYWU5OWIyMGY0ODllZTc3YTg1NTllNTJhYzc5NDUzNGRhZTA3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy8uZ2l0
aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0cy55bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL0xJQ0VOU0UKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0OTkyNGE1YWEwODM5ODZkMGJkNzA2OWVkYzZl
ZGRlYWI3Y2UwYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1D
b3B5cmlnaHQgKGMpIDIwMTkgSmVyZW15IExhaW7DqS4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0K
LVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAg
ICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gICAgICBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgYWlvcXVpYyBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5Ci0gICAgICBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Ci0gICAgICBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi1GT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAotREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLVNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi1DQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAotT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvTUFOSUZFU1QuaW4K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZTA5MDNhZjk5NGUzNGMzNWQ4YjJlZWUy
MGI0YmIzYjc2OWRlMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL01BTklGRVNULmluCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi1pbmNsdWRlIExJQ0VOU0UKLXJlY3Vyc2l2ZS1pbmNsdWRlIGRvY3MgKi5weSAqLnJzdCBN
YWtlZmlsZQotcmVjdXJzaXZlLWluY2x1ZGUgZXhhbXBsZXMgKi5odG1sICoucHkKLXJlY3Vyc2l2
ZS1pbmNsdWRlIHRlc3RzICouYmluICoucGVtICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9SRUFETUUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL1JFQURNRS5yc3QKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDIwZDUwMmE3NzAwYmE3OWQ1N2I0MjY3OTkxMjQxNzgxZGQ5YTc0NjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L1JFQURNRS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMzEgKzAsMCBAQAotYWlvcXVpYwotPT09
PT09PQotCi18cnRkfCB8cHlwaS12fCB8cHlwaS1weXZlcnNpb25zfCB8cHlwaS1sfCB8dGVzdHN8
IHxjb2RlY292fCB8YmxhY2t8Ci0KLS4uIHxydGR8IGltYWdlOjogaHR0cHM6Ly9yZWFkdGhlZG9j
cy5vcmcvcHJvamVjdHMvYWlvcXVpYy9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKLSAgICA6dGFyZ2V0
OiBodHRwczovL2Fpb3F1aWMucmVhZHRoZWRvY3MuaW8vCi0KLS4uIHxweXBpLXZ8IGltYWdlOjog
aHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvYWlvcXVpYy5zdmcKLSAgICA6dGFyZ2V0OiBo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Fpb3F1aWMKLQotLi4gfHB5cGktcHl2ZXJzaW9u
c3wgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9haW9xdWlj
LnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYWlvcXVpYwot
Ci0uLiB8cHlwaS1sfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9sL2Fpb3F1
aWMuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9haW9xdWlj
Ci0KLS4uIHx0ZXN0c3wgaW1hZ2U6OiBodHRwczovL2dpdGh1Yi5jb20vYWlvcnRjL2Fpb3F1aWMv
d29ya2Zsb3dzL3Rlc3RzL2JhZGdlLnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNv
bS9haW9ydGMvYWlvcXVpYy9hY3Rpb25zCi0KLS4uIHxjb2RlY292fCBpbWFnZTo6IGh0dHBzOi8v
aW1nLnNoaWVsZHMuaW8vY29kZWNvdi9jL2dpdGh1Yi9haW9ydGMvYWlvcXVpYy5zdmcKLSAgICA6
dGFyZ2V0OiBodHRwczovL2NvZGVjb3YuaW8vZ2gvYWlvcnRjL2Fpb3F1aWMKLQotLi4gfGJsYWNr
fCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY29kZSUyMHN0eWxlLWJsYWNr
LTAwMDAwMC5zdmcKLSAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2JsYWNr
Ci0KLVdoYXQgaXMgYGBhaW9xdWljYGA/Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1gYGFpb3F1
aWNgYCBpcyBhIGxpYnJhcnkgZm9yIHRoZSBRVUlDIG5ldHdvcmsgcHJvdG9jb2wgaW4gUHl0aG9u
LiBJdCBmZWF0dXJlcwotYSBtaW5pbWFsIFRMUyAxLjMgaW1wbGVtZW50YXRpb24sIGEgUVVJQyBz
dGFjayBhbmQgYW4gSFRUUC8zIHN0YWNrLgotCi1RVUlDIHN0YW5kYXJkaXNhdGlvbiBpcyBub3Qg
ZmluYWxpc2VkIHlldCwgYnV0IGBgYWlvcXVpY2BgIGNsb3NlbHkgdHJhY2tzIHRoZQotc3BlY2lm
aWNhdGlvbiBkcmFmdHMgYW5kIGlzIHJlZ3VsYXJseSB0ZXN0ZWQgZm9yIGludGVyb3BlcmFiaWxp
dHkgYWdhaW5zdCBvdGhlcgotYFFVSUMgaW1wbGVtZW50YXRpb25zYF8uCi0KLVRvIGxlYXJuIG1v
cmUgYWJvdXQgYGBhaW9xdWljYGAgcGxlYXNlIGByZWFkIHRoZSBkb2N1bWVudGF0aW9uYF8uCi0K
LVdoeSBzaG91bGQgSSB1c2UgYGBhaW9xdWljYGA/Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi1gYGFpb3F1aWNgYCBoYXMgYmVlbiBkZXNpZ25lZCB0byBiZSBlbWJlZGRlZCBpbnRv
IFB5dGhvbiBjbGllbnQgYW5kIHNlcnZlcgotbGlicmFyaWVzIHdpc2hpbmcgdG8gc3VwcG9ydCBR
VUlDIGFuZCAvIG9yIEhUVFAvMy4gVGhlIGdvYWwgaXMgdG8gcHJvdmlkZSBhCi1jb21tb24gY29k
ZWJhc2UgZm9yIFB5dGhvbiBsaWJyYXJpZXMgaW4gdGhlIGhvcGUgb2YgYXZvaWRpbmcgZHVwbGlj
YXRlZCBlZmZvcnQuCi0KLUJvdGggdGhlIFFVSUMgYW5kIHRoZSBIVFRQLzMgQVBJcyBmb2xsb3cg
dGhlICJicmluZyB5b3VyIG93biBJL08iIHBhdHRlcm4sCi1sZWF2aW5nIGFjdHVhbCBJL08gb3Bl
cmF0aW9ucyB0byB0aGUgQVBJIHVzZXIuIFRoaXMgYXBwcm9hY2ggaGFzIGEgbnVtYmVyIG9mCi1h
ZHZhbnRhZ2VzIGluY2x1ZGluZyBtYWtpbmcgdGhlIGNvZGUgdGVzdGFibGUgYW5kIGFsbG93aW5n
IGludGVncmF0aW9uIHdpdGgKLWRpZmZlcmVudCBjb25jdXJyZW5jeSBtb2RlbHMuCi0KLUZlYXR1
cmVzCi0tLS0tLS0tLQotCi0tIFFVSUMgc3RhY2sgY29uZm9ybWluZyB3aXRoIGRyYWZ0LTI3Ci0t
IEhUVFAvMyBzdGFjayBjb25mb3JtaW5nIHdpdGggZHJhZnQtMjcKLS0gbWluaW1hbCBUTFMgMS4z
IGltcGxlbWVudGF0aW9uCi0tIElQdjQgYW5kIElQdjYgc3VwcG9ydAotLSBjb25uZWN0aW9uIG1p
Z3JhdGlvbiBhbmQgTkFUIHJlYmluZGluZwotLSBsb2dnaW5nIFRMUyB0cmFmZmljIHNlY3JldHMK
LS0gbG9nZ2luZyBRVUlDIGV2ZW50cyBpbiBRTE9HIGZvcm1hdAotLSBIVFRQLzMgc2VydmVyIHB1
c2ggc3VwcG9ydAotCi1SZXF1aXJlbWVudHMKLS0tLS0tLS0tLS0tLQotCi1gYGFpb3F1aWNgYCBy
ZXF1aXJlcyBQeXRob24gMy42IG9yIGJldHRlciwgYW5kIHRoZSBPcGVuU1NMIGRldmVsb3BtZW50
IGhlYWRlcnMuCi0KLUxpbnV4Ci0uLi4uLgotCi1PbiBEZWJpYW4vVWJ1bnR1IHJ1bjoKLQotLi4g
Y29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAgJCBzdWRvIGFwdCBpbnN0YWxsIGxpYnNzbC1kZXYg
cHl0aG9uMy1kZXYKLQotT24gQWxwaW5lIExpbnV4IHlvdSB3aWxsIGFsc28gbmVlZCB0aGUgZm9s
bG93aW5nOgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29sZQotCi0gICAkIHN1ZG8gYXB0IGluc3Rh
bGwgYnNkLWNvbXBhdC1oZWFkZXJzIGxpYmZmaS1kZXYKLQotT1MgWAotLi4uLgotCi1PbiBPUyBY
IHJ1bjoKLQotLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAgJCBicmV3IGluc3RhbGwgb3Bl
bnNzbAotCi1Zb3Ugd2lsbCBuZWVkIHRvIHNldCBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0
byBsaW5rIGFnYWluc3QgT3BlblNTTDoKLQotLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAg
JCBleHBvcnQgQ0ZMQUdTPS1JL3Vzci9sb2NhbC9vcHQvb3BlbnNzbC9pbmNsdWRlCi0gICAkIGV4
cG9ydCBMREZMQUdTPS1ML3Vzci9sb2NhbC9vcHQvb3BlbnNzbC9saWIKLQotV2luZG93cwotLi4u
Li4uLgotCi1PbiBXaW5kb3dzIHRoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIE9wZW5TU0wgaXMg
dG8gdXNlIGBDaG9jb2xhdGV5YF8uCi0KLS4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCi0KLSAgID4g
Y2hvY28gaW5zdGFsbCBvcGVuc3NsCi0KLVlvdSB3aWxsIG5lZWQgdG8gc2V0IHNvbWUgZW52aXJv
bm1lbnQgdmFyaWFibGVzIHRvIGxpbmsgYWdhaW5zdCBPcGVuU1NMOgotCi0uLiBjb2RlLWJsb2Nr
OjogY29uc29sZQotCi0gID4gJEVudjpDTCA9ICIvSUM6XFByb2dyYX4xXE9wZW5TU0wtV2luNjRc
aW5jbHVkZSIKLSAgPiAkRW52OkxJTksgPSAiL0xJQlBBVEg6QzpcUHJvZ3JhfjFcT3BlblNTTC1X
aW42NFxsaWIiCi0KLVJ1bm5pbmcgdGhlIGV4YW1wbGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1gYWlvcXVpY2AgY29tZXMgd2l0aCBhIG51bWJlciBvZiBleGFtcGxlcyBpbGx1c3RyYXRpbmcg
dmFyaW91cyBRVUlDIHVzZWNhc2VzLgotCi1Zb3UgY2FuIGJyb3dzZSB0aGVzZSBleGFtcGxlcyBo
ZXJlOiBodHRwczovL2dpdGh1Yi5jb20vYWlvcnRjL2Fpb3F1aWMvdHJlZS9tYXN0ZXIvZXhhbXBs
ZXMKLQotTGljZW5zZQotLS0tLS0tLQotCi1gYGFpb3F1aWNgYCBpcyByZWxlYXNlZCB1bmRlciB0
aGUgYEJTRCBsaWNlbnNlYF8uCi0KLS4uIF9yZWFkIHRoZSBkb2N1bWVudGF0aW9uOiBodHRwczov
L2Fpb3F1aWMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0LwotLi4gX1FVSUMgaW1wbGVtZW50YXRp
b25zOiBodHRwczovL2dpdGh1Yi5jb20vcXVpY3dnL2Jhc2UtZHJhZnRzL3dpa2kvSW1wbGVtZW50
YXRpb25zCi0uLiBfY3J5cHRvZ3JhcGh5OiBodHRwczovL2NyeXB0b2dyYXBoeS5pby8KLS4uIF9D
aG9jb2xhdGV5OiBodHRwczovL2Nob2NvbGF0ZXkub3JnLwotLi4gX0JTRCBsaWNlbnNlOiBodHRw
czovL2Fpb3F1aWMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2xpY2Vuc2UuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvTWFrZWZpbGUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9NYWtl
ZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NiNzM4Yjk2MTdmYjJkOWRkMDY2
ODRiZDIyNGYwYWQwM2UwNmEwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0x
LDIwICswLDAgQEAKLSMgTWluaW1hbCBtYWtlZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRpb24K
LSMKLQotIyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5l
LgotU1BISU5YT1BUUyAgICA9Ci1TUEhJTlhCVUlMRCAgID0gc3BoaW54LWJ1aWxkCi1TUEhJTlhQ
Uk9KICAgID0gYWlvcXVpYwotU09VUkNFRElSICAgICA9IC4KLUJVSUxERElSICAgICAgPSBfYnVp
bGQKLQotIyBQdXQgaXQgZmlyc3Qgc28gdGhhdCAibWFrZSIgd2l0aG91dCBhcmd1bWVudCBpcyBs
aWtlICJtYWtlIGhlbHAiLgotaGVscDoKLQlAJChTUEhJTlhCVUlMRCkgLU0gaGVscCAiJChTT1VS
Q0VESVIpIiAiJChCVUlMRERJUikiICQoU1BISU5YT1BUUykgJChPKQotCi0uUEhPTlk6IGhlbHAg
TWFrZWZpbGUKLQotIyBDYXRjaC1hbGwgdGFyZ2V0OiByb3V0ZSBhbGwgdW5rbm93biB0YXJnZXRz
IHRvIFNwaGlueCB1c2luZyB0aGUgbmV3Ci0jICJtYWtlIG1vZGUiIG9wdGlvbi4gICQoTykgaXMg
bWVhbnQgYXMgYSBzaG9ydGN1dCBmb3IgJChTUEhJTlhPUFRTKS4KLSU6IE1ha2VmaWxlCi0JQCQo
U1BISU5YQlVJTEQpIC1NICRAICIkKFNPVVJDRURJUikiICIkKEJVSUxERElSKSIgJChTUEhJTlhP
UFRTKSAkKE8pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2RvY3MvYXN5bmNpby5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9hc3luY2lvLnJzdApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVjNTY4MDkwMTQ2MGIwMzI4M2E0YWM2Y2Y2
NTRlOGMyYWFjNjBmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9hc3luY2lvLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDMy
ICswLDAgQEAKLWFzeW5jaW8gQVBJCi09PT09PT09PT09PQotCi1UaGUgYXN5bmNpbyBBUEkgcHJv
dmlkZXMgYSBoaWdoLWxldmVsIFFVSUMgQVBJIGJ1aWx0IG9uIHRvcCBvZiA6bW9kOmBhc3luY2lv
YCwKLVB5dGhvbidzIHN0YW5kYXJkIGFzeW5jaHJvbm91cyBJL08gZnJhbWV3b3JrLgotCi1gYGFp
b3F1aWNgYCBjb21lcyB3aXRoIGEgc2VsZWN0aW9uIG9mIGV4YW1wbGVzLCBpbmNsdWRpbmc6Ci0K
LS0gYW4gSFRUUC8zIGNsaWVudAotLSBhbiBIVFRQLzMgc2VydmVyCi0KLVRoZSBleGFtcGxlcyBj
YW4gYmUgYnJvd3NlZCBvbiBHaXRIdWI6Ci0KLWh0dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlv
cXVpYy90cmVlL21hc3Rlci9leGFtcGxlcwotCi0uLiBhdXRvbW9kdWxlOjogYWlvcXVpYy5hc3lu
Y2lvCi0KLUNsaWVudAotLS0tLS0tCi0KLSAgICAuLiBhdXRvZnVuY3Rpb246OiBjb25uZWN0Ci0K
LVNlcnZlcgotLS0tLS0tCi0KLSAgICAuLiBhdXRvZnVuY3Rpb246OiBzZXJ2ZQotCi1Db21tb24K
LS0tLS0tLQotCi0gICAgLi4gYXV0b2NsYXNzOjogUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbAotICAg
ICAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2NvbmYucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvZG9jcy9jb25mLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
ODkwNjJhYzk3NTMyNmE0N2Y4OGVkYWU0ZDhkMzQzY2ZlNzYwYzBjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2NvbmYucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwot
IyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KLSMKLSMgYWlvcXVpYyBkb2N1bWVudGF0aW9uIGJ1aWxk
IGNvbmZpZ3VyYXRpb24gZmlsZSwgY3JlYXRlZCBieQotIyBzcGhpbngtcXVpY2tzdGFydCBvbiBU
aHUgRmViICA4IDE3OjIyOjE0IDIwMTguCi0jCi0jIFRoaXMgZmlsZSBpcyBleGVjZmlsZSgpZCB3
aXRoIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBzZXQgdG8gaXRzCi0jIGNvbnRhaW5pbmcgZGlyLgot
IwotIyBOb3RlIHRoYXQgbm90IGFsbCBwb3NzaWJsZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmUg
cHJlc2VudCBpbiB0aGlzCi0jIGF1dG9nZW5lcmF0ZWQgZmlsZS4KLSMKLSMgQWxsIGNvbmZpZ3Vy
YXRpb24gdmFsdWVzIGhhdmUgYSBkZWZhdWx0OyB2YWx1ZXMgdGhhdCBhcmUgY29tbWVudGVkIG91
dAotIyBzZXJ2ZSB0byBzaG93IHRoZSBkZWZhdWx0LgotCi1pbXBvcnQgc3lzLCBvcwotCi0jIElm
IGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBhcmUgaW4g
YW5vdGhlciBkaXJlY3RvcnksCi0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMucGF0aCBo
ZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1bWVudGF0aW9u
IHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlrZSBzaG93
biBoZXJlLgotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguYWJzcGF0aCgnLi4nKSkKLQotCi1j
bGFzcyBNb2NrQnVmZmVyOgotICAgIEJ1ZmZlciA9IE5vbmUKLSAgICBCdWZmZXJSZWFkRXJyb3Ig
PSBOb25lCi0gICAgQnVmZmVyV3JpdGVFcnJvciA9IE5vbmUKLQotCi1jbGFzcyBNb2NrQ3J5cHRv
OgotICAgIEFFQUQgPSBOb25lCi0gICAgQ3J5cHRvRXJyb3IgPSBWYWx1ZUVycm9yCi0gICAgSGVh
ZGVyUHJvdGVjdGlvbiA9IE5vbmUKLQotCi1jbGFzcyBNb2NrUHlsc3FwYWNrOgotICAgIERlY29k
ZXIgPSBOb25lCi0gICAgRW5jb2RlciA9IE5vbmUKLSAgICBTdHJlYW1CbG9ja2VkID0gTm9uZQot
Ci0KLXN5cy5tb2R1bGVzLnVwZGF0ZSh7Ci0gICAgImFpb3F1aWMuX2J1ZmZlciI6IE1vY2tCdWZm
ZXIoKSwKLSAgICAiYWlvcXVpYy5fY3J5cHRvIjogTW9ja0NyeXB0bygpLAotICAgICJweWxzcXBh
Y2siOiBNb2NrUHlsc3FwYWNrKCksCi19KQotCi0jIC0tIEdlbmVyYWwgY29uZmlndXJhdGlvbiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBJZiB5
b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBp
dCBoZXJlLgotIwotIyBuZWVkc19zcGhpbnggPSAnMS4wJwotCi0jIEFkZCBhbnkgU3BoaW54IGV4
dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBjYW4gYmUKLSMgZXh0
ZW5zaW9ucyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhpbnguZXh0LionKSBvciB5b3Vy
IGN1c3RvbQotIyBvbmVzLgotZXh0ZW5zaW9ucyA9IFsKLSAgICAnc3BoaW54LmV4dC5hdXRvZG9j
JywKLSAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsCi0gICAgJ3NwaGlueF9hdXRvZG9jX3R5
cGVoaW50cycsCi0gICAgJ3NwaGlueGNvbnRyaWIuYXN5bmNpbycsCi1dCi1pbnRlcnNwaGlueF9t
YXBwaW5nID0gewotICAgICdjcnlwdG9ncmFwaHknOiAoJ2h0dHBzOi8vY3J5cHRvZ3JhcGh5Lmlv
L2VuL2xhdGVzdCcsIE5vbmUpLAotICAgICdweXRob24nOiAoJ2h0dHBzOi8vZG9jcy5weXRob24u
b3JnLzMnLCBOb25lKSwKLX0KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0
ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi10ZW1wbGF0ZXNfcGF0aCA9IFsn
X3RlbXBsYXRlcyddCi0KLSMgVGhlIHN1ZmZpeChlcykgb2Ygc291cmNlIGZpbGVuYW1lcy4KLSMg
WW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIHN1ZmZpeCBhcyBhIGxpc3Qgb2Ygc3RyaW5nOgotIwot
IyBzb3VyY2Vfc3VmZml4ID0gWycucnN0JywgJy5tZCddCi1zb3VyY2Vfc3VmZml4ID0gJy5yc3Qn
Ci0KLSMgVGhlIG1hc3RlciB0b2N0cmVlIGRvY3VtZW50LgotbWFzdGVyX2RvYyA9ICdpbmRleCcK
LQotIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0LgotcHJvamVjdCA9ICdh
aW9xdWljJwotY29weXJpZ2h0ID0gdScyMDE5LCBKZXJlbXkgTGFpbsOpJwotYXV0aG9yID0gdSdK
ZXJlbXkgTGFpbsOpJwotCi0jIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdy
ZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKLSMgfHZlcnNpb258IGFuZCB8
cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRo
ZQotIyBidWlsdCBkb2N1bWVudHMuCi0jCi0jIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KLXZlcnNp
b24gPSAnJwotIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdz
LgotcmVsZWFzZSA9ICcnCi0KLSMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1dG9nZW5lcmF0
ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCi0jIGZvciBhIGxpc3Qgb2Ygc3Vw
cG9ydGVkIGxhbmd1YWdlcy4KLSMKLSMgVGhpcyBpcyBhbHNvIHVzZWQgaWYgeW91IGRvIGNvbnRl
bnQgdHJhbnNsYXRpb24gdmlhIGdldHRleHQgY2F0YWxvZ3MuCi0jIFVzdWFsbHkgeW91IHNldCAi
bGFuZ3VhZ2UiIGZyb20gdGhlIGNvbW1hbmQgbGluZSBmb3IgdGhlc2UgY2FzZXMuCi1sYW5ndWFn
ZSA9IE5vbmUKLQotIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0
b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAotIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBs
b29raW5nIGZvciBzb3VyY2UgZmlsZXMuCi0jIFRoaXMgcGF0dGVybnMgYWxzbyBlZmZlY3QgdG8g
aHRtbF9zdGF0aWNfcGF0aCBhbmQgaHRtbF9leHRyYV9wYXRoCi1leGNsdWRlX3BhdHRlcm5zID0g
WydfYnVpbGQnLCAnVGh1bWJzLmRiJywgJy5EU19TdG9yZSddCi0KLSMgVGhlIG5hbWUgb2YgdGhl
IFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCi1weWdtZW50c19z
dHlsZSA9ICdzcGhpbngnCi0KLSMgSWYgdHJ1ZSwgYHRvZG9gIGFuZCBgdG9kb0xpc3RgIHByb2R1
Y2Ugb3V0cHV0LCBlbHNlIHRoZXkgcHJvZHVjZSBub3RoaW5nLgotdG9kb19pbmNsdWRlX3RvZG9z
ID0gRmFsc2UKLQotCi0jIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGUgdGhlbWUgdG8gdXNlIGZv
ciBIVE1MIGFuZCBIVE1MIEhlbHAgcGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCi0j
IGEgbGlzdCBvZiBidWlsdGluIHRoZW1lcy4KLSMKLWh0bWxfdGhlbWUgPSAnYWxhYmFzdGVyJwot
Ci0jIFRoZW1lIG9wdGlvbnMgYXJlIHRoZW1lLXNwZWNpZmljIGFuZCBjdXN0b21pemUgdGhlIGxv
b2sgYW5kIGZlZWwgb2YgYSB0aGVtZQotIyBmdXJ0aGVyLiAgRm9yIGEgbGlzdCBvZiBvcHRpb25z
IGF2YWlsYWJsZSBmb3IgZWFjaCB0aGVtZSwgc2VlIHRoZQotIyBkb2N1bWVudGF0aW9uLgotIwot
aHRtbF90aGVtZV9vcHRpb25zID0gewotICAgICdkZXNjcmlwdGlvbic6ICdBIGxpYnJhcnkgZm9y
IFFVSUMgaW4gUHl0aG9uLicsCi0gICAgJ2dpdGh1Yl9idXR0b24nOiBUcnVlLAotICAgICdnaXRo
dWJfdXNlcic6ICdhaW9ydGMnLAotICAgICdnaXRodWJfcmVwbyc6ICdhaW9xdWljJywKLX0KLQot
IyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFz
IHN0eWxlIHNoZWV0cykgaGVyZSwKLSMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkg
YXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCi0jIHNvIGEgZmlsZSBu
YW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNz
cyIuCi1odG1sX3N0YXRpY19wYXRoID0gWydfc3RhdGljJ10KLQotIyBDdXN0b20gc2lkZWJhciB0
ZW1wbGF0ZXMsIG11c3QgYmUgYSBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBkb2N1bWVudCBuYW1lcwot
IyB0byB0ZW1wbGF0ZSBuYW1lcy4KLSMKLSMgVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhlIGFsYWJh
c3RlciB0aGVtZQotIyByZWZzOiBodHRwOi8vYWxhYmFzdGVyLnJlYWR0aGVkb2NzLmlvL2VuL2xh
dGVzdC9pbnN0YWxsYXRpb24uaHRtbCNzaWRlYmFycwotaHRtbF9zaWRlYmFycyA9IHsKLSAgICAn
KionOiBbCi0gICAgICAgICdhYm91dC5odG1sJywKLSAgICAgICAgJ25hdmlnYXRpb24uaHRtbCcs
Ci0gICAgICAgICdyZWxhdGlvbnMuaHRtbCcsCi0gICAgICAgICdzZWFyY2hib3guaHRtbCcsCi0g
ICAgXQotfQotCi0KLSMgLS0gT3B0aW9ucyBmb3IgSFRNTEhlbHAgb3V0cHV0IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIE91dHB1dCBmaWxlIGJhc2UgbmFt
ZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCi1odG1saGVscF9iYXNlbmFtZSA9ICdhaW9xdWljZG9j
JwotCi0KLSMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1sYXRleF9lbGVtZW50cyA9IHsKLSAgICAjIFRo
ZSBwYXBlciBzaXplICgnbGV0dGVycGFwZXInIG9yICdhNHBhcGVyJykuCi0gICAgIwotICAgICMg
J3BhcGVyc2l6ZSc6ICdsZXR0ZXJwYXBlcicsCi0KLSAgICAjIFRoZSBmb250IHNpemUgKCcxMHB0
JywgJzExcHQnIG9yICcxMnB0JykuCi0gICAgIwotICAgICMgJ3BvaW50c2l6ZSc6ICcxMHB0JywK
LQotICAgICMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgotICAgICMK
LSAgICAjICdwcmVhbWJsZSc6ICcnLAotCi0gICAgIyBMYXRleCBmaWd1cmUgKGZsb2F0KSBhbGln
bm1lbnQKLSAgICAjCi0gICAgIyAnZmlndXJlX2FsaWduJzogJ2h0YnAnLAotfQotCi0jIEdyb3Vw
aW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCi0j
IChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLAotIyAgYXV0aG9yLCBkb2N1
bWVudGNsYXNzIFtob3d0bywgbWFudWFsLCBvciBvd24gY2xhc3NdKS4KLWxhdGV4X2RvY3VtZW50
cyA9IFsKLSAgICAobWFzdGVyX2RvYywgJ2Fpb3F1aWMudGV4JywgJ2Fpb3F1aWMgRG9jdW1lbnRh
dGlvbicsCi0gICAgIGF1dGhvciwgJ21hbnVhbCcpLAotXQotCi0KLSMgLS0gT3B0aW9ucyBmb3Ig
bWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0jIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9u
KS4KLW1hbl9wYWdlcyA9IFsKLSAgICAobWFzdGVyX2RvYywgJ2Fpb3F1aWMnLCAnYWlvcXVpYyBE
b2N1bWVudGF0aW9uJywKLSAgICAgW2F1dGhvcl0sIDEpCi1dCi0KLQotIyAtLSBPcHRpb25zIGZv
ciBUZXhpbmZvIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBUZXhpbmZvIGZpbGVzLiBM
aXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwg
YXV0aG9yLAotIyAgZGlyIG1lbnUgZW50cnksIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSkKLXRleGlu
Zm9fZG9jdW1lbnRzID0gWwotICAgIChtYXN0ZXJfZG9jLCAnYWlvcXVpYycsICdhaW9xdWljIERv
Y3VtZW50YXRpb24nLAotICAgICBhdXRob3IsICdhaW9xdWljJywgJ09uZSBsaW5lIGRlc2NyaXB0
aW9uIG9mIHByb2plY3QuJywKLSAgICAgJ01pc2NlbGxhbmVvdXMnKSwKLV0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9kb2NzL2Rlc2lnbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9kZXNpZ24u
cnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTI5ZTc2MmY1YTYzNGUyYTM1Nzkx
ZTQ2NWI5MDQ5YmE0YmU2MjE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2Rlc2lnbi5yc3QKKysrIC9kZXYvbnVsbApAQCAt
MSwzNyArMCwwIEBACi1EZXNpZ24KLT09PT09PQotCi1TYW5zLUlPIEFQSXMKLS4uLi4uLi4uLi4u
LgotCi1Cb3RoIHRoZSBRVUlDIGFuZCB0aGUgSFRUUC8zIEFQSXMgZm9sbG93IHRoZSBgc2FucyBJ
L09gXyBwYXR0ZXJuLCBsZWF2aW5nCi1hY3R1YWwgSS9PIG9wZXJhdGlvbnMgdG8gdGhlIEFQSSB1
c2VyLiBUaGlzIGFwcHJvYWNoIGhhcyBhIG51bWJlciBvZgotYWR2YW50YWdlcyBpbmNsdWRpbmcg
bWFraW5nIHRoZSBjb2RlIHRlc3RhYmxlIGFuZCBhbGxvd2luZyBpbnRlZ3JhdGlvbiB3aXRoCi1k
aWZmZXJlbnQgY29uY3VycmVuY3kgbW9kZWxzLgotCi1UTFMgYW5kIGVuY3J5cHRpb24KLS4uLi4u
Li4uLi4uLi4uLi4uLgotCi1UTFMgMS4zCi0rKysrKysrCi0KLWBgYWlvcXVpY2BgIGZlYXR1cmVz
IGEgbWluaW1hbCBUTFMgMS4zIGltcGxlbWVudGF0aW9uIGJ1aWx0IHVwb24gdGhlCi1gY3J5cHRv
Z3JhcGh5YF8gbGlicmFyeS4gVGhpcyBpcyBiZWNhdXNlIFFVSUMgcmVxdWlyZXMgc29tZSBBUElz
IHdoaWNoIGFyZQotY3VycmVudGx5IHVuYXZhaWxhYmxlIGluIG1haW5zdHJlYW0gVExTIGltcGxl
bWVudGF0aW9ucyBzdWNoIGFzIE9wZW5TU0w6Ci0KLS0gdGhlIGFiaWxpdHkgdG8gZXh0cmFjdCB0
cmFmZmljIHNlY3JldHMKLQotLSB0aGUgYWJpbGl0eSB0byBvcGVyYXRlIGRpcmVjdGx5IG9uIFRM
UyBtZXNzYWdlcywgd2l0aG91dCB1c2luZyB0aGUgVExTCi0gIHJlY29yZCBsYXllcgotCi1IZWFk
ZXIgcHJvdGVjdGlvbiBhbmQgcGF5bG9hZCBlbmNyeXB0aW9uCi0rKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCi0KLVFVSUMgbWFrZXMgZXh0ZW5zaXZlIHVzZSBvZiBjcnlw
dG9ncmFwaGljIG9wZXJhdGlvbnMgdG8gcHJvdGVjdCBRVUlDIHBhY2tldAotaGVhZGVycyBhbmQg
ZW5jcnlwdCBwYWNrZXQgcGF5bG9hZHMuIFRoZXNlIG9wZXJhdGlvbnMgb2NjdXIgZm9yIGV2ZXJ5
IHNpbmdsZQotcGFja2V0IGFuZCBhcmUgYSBkZXRlcm1pbmluZyBmYWN0b3IgZm9yIHBlcmZvcm1h
bmNlLiBGb3IgdGhpcyByZWFzb24sIHRoZXkKLWFyZSBpbXBsZW1lbnRlZCBhcyBhIEMgZXh0ZW5z
aW9uIGxpbmtlZCB0byBgT3BlblNTTGBfLgotCi0uLiBfc2FucyBJL086IGh0dHBzOi8vc2Fucy1p
by5yZWFkdGhlZG9jcy5pby8KLS4uIF9jcnlwdG9ncmFwaHk6IGh0dHBzOi8vY3J5cHRvZ3JhcGh5
LmlvLwotLi4gX09wZW5TU0w6IGh0dHBzOi8vd3d3Lm9wZW5zc2wub3JnLwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL2RvY3MvaDMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvaDMucnN0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGUyMjAxYzQzZDQ2YjBjYmIyYmFjMjhkZmNmNTky
MGEwMTI5MTVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9kb2NzL2gzLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LUhUVFAvMyBBUEkKLT09PT09PT09PT0KLQotVGhlIEhUVFAvMyBBUEkgcGVyZm9ybXMgbm8gSS9P
IG9uIGl0cyBvd24sIGxlYXZpbmcgdGhpcyB0byB0aGUgQVBJIHVzZXIuCi1UaGlzIGFsbG93cyB5
b3UgdG8gaW50ZWdyYXRlIEhUVFAvMyBpbiBhbnkgUHl0aG9uIGFwcGxpY2F0aW9uLCByZWdhcmRs
ZXNzIG9mCi10aGUgY29uY3VycmVuY3kgbW9kZWwgeW91IGFyZSB1c2luZy4KLQotQ29ubmVjdGlv
bgotLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogYWlvcXVpYy5oMy5jb25uZWN0aW9uCi0K
LSAgICAuLiBhdXRvY2xhc3M6OiBIM0Nvbm5lY3Rpb24KLSAgICAgICAgOm1lbWJlcnM6Ci0KLQot
RXZlbnRzCi0tLS0tLS0KLQotLi4gYXV0b21vZHVsZTo6IGFpb3F1aWMuaDMuZXZlbnRzCi0KLSAg
ICAuLiBhdXRvY2xhc3M6OiBIM0V2ZW50Ci0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0
b2NsYXNzOjogRGF0YVJlY2VpdmVkCi0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0b2Ns
YXNzOjogSGVhZGVyc1JlY2VpdmVkCi0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0b2Ns
YXNzOjogUHVzaFByb21pc2VSZWNlaXZlZAotICAgICAgICA6bWVtYmVyczoKLQotCi1FeGNlcHRp
b25zCi0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBhaW9xdWljLmgzLmV4Y2VwdGlvbnMK
LQotICAgIC4uIGF1dG9jbGFzczo6IEgzRXJyb3IKLSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAu
LiBhdXRvY2xhc3M6OiBOb0F2YWlsYWJsZVB1c2hJREVycm9yCi0gICAgICAgIDptZW1iZXJzOgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2Rv
Y3MvaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODQxNTYxYTIyNDA0
MGJjMWE4YWNlMjY2YWQwMTU2OGY2ODQxN2E0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2luZGV4LnJzdAorKysgL2Rldi9u
dWxsCkBAIC0xLDM5ICswLDAgQEAKLWFpb3F1aWMKLT09PT09PT0KLQotfHB5cGktdnwgfHB5cGkt
cHl2ZXJzaW9uc3wgfHB5cGktbHwgfHRlc3RzfCB8Y29kZWNvdnwKLQotLi4gfHB5cGktdnwgaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9haW9xdWljLnN2ZwotICAgIDp0YXJn
ZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYWlvcXVpYwotCi0uLiB8cHlwaS1weXZl
cnNpb25zfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2Fp
b3F1aWMuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9haW9x
dWljCi0KLS4uIHxweXBpLWx8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wv
YWlvcXVpYy5zdmcKLSAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Fp
b3F1aWMKLQotLi4gfHRlc3RzfCBpbWFnZTo6IGh0dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlv
cXVpYy93b3JrZmxvd3MvdGVzdHMvYmFkZ2Uuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9naXRo
dWIuY29tL2Fpb3J0Yy9haW9xdWljL2FjdGlvbnMKLQotLi4gfGNvZGVjb3Z8IGltYWdlOjogaHR0
cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2MvZ2l0aHViL2Fpb3J0Yy9haW9xdWljLnN2Zwot
ICAgIDp0YXJnZXQ6IGh0dHBzOi8vY29kZWNvdi5pby9naC9haW9ydGMvYWlvcXVpYwotCi1gYGFp
b3F1aWNgYCBpcyBhIGxpYnJhcnkgZm9yIHRoZSBRVUlDIG5ldHdvcmsgcHJvdG9jb2wgaW4gUHl0
aG9uLiBJdCBmZWF0dXJlcyBzZXZlcmFsCi1BUElzOgotCi0tIGEgUVVJQyBBUEkgZm9sbG93aW5n
IHRoZSAiYnJpbmcgeW91ciBvd24gSS9PIiBwYXR0ZXJuLCBzdWl0YWJsZSBmb3IKLSAgZW1iZWRk
aW5nIGluIGFueSBmcmFtZXdvcmssCi0KLS0gYW4gSFRUUC8zIEFQSSB3aGljaCBhbHNvIGZvbGxv
d3MgdGhlICJicmluZyB5b3VyIG93biBJL08iIHBhdHRlcm4sCi0KLS0gYSBRVUlDIGNvbnZlbmll
bmNlIEFQSSBidWlsdCBvbiB0b3Agb2YgOm1vZDpgYXN5bmNpb2AsIFB5dGhvbidzIHN0YW5kYXJk
IGFzeW5jaHJvbm91cwotICBJL08gZnJhbWV3b3JrLgotCi0uLiB0b2N0cmVlOjoKLSAgIDptYXhk
ZXB0aDogMgotCi0gICBkZXNpZ24KLSAgIHF1aWMKLSAgIGgzCi0gICBhc3luY2lvCi0gICBsaWNl
bnNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9saWNlbnNlLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9kb2NzL2xpY2Vuc2UucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDJk
M2IwN2ZjOTNmNjQ3ZjNmZDA4ZTY1YjRiNGZhZGRjZjMzYWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2xpY2Vuc2UucnN0
CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1MaWNlbnNlCi0tLS0tLS0tCi0KLS4uIGxp
dGVyYWxpbmNsdWRlOjogLi4vTElDRU5TRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3Mv
cXVpYy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9xdWljLnJzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjBlYmVmYjQ5ZDUxNGE0NTE1YzIyM2NkYzg0MzY5Y2QxNmExMmI3My4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
ZG9jcy9xdWljLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLVFVSUMgQVBJCi09
PT09PT09PQotCi1UaGUgUVVJQyBBUEkgcGVyZm9ybXMgbm8gSS9PIG9uIGl0cyBvd24sIGxlYXZp
bmcgdGhpcyB0byB0aGUgQVBJIHVzZXIuCi1UaGlzIGFsbG93cyB5b3UgdG8gaW50ZWdyYXRlIFFV
SUMgaW4gYW55IFB5dGhvbiBhcHBsaWNhdGlvbiwgcmVnYXJkbGVzcyBvZgotdGhlIGNvbmN1cnJl
bmN5IG1vZGVsIHlvdSBhcmUgdXNpbmcuCi0KLUNvbm5lY3Rpb24KLS0tLS0tLS0tLS0KLQotLi4g
YXV0b21vZHVsZTo6IGFpb3F1aWMucXVpYy5jb25uZWN0aW9uCi0KLSAgICAuLiBhdXRvY2xhc3M6
OiBRdWljQ29ubmVjdGlvbgotICAgICAgICA6bWVtYmVyczoKLQotCi1Db25maWd1cmF0aW9uCi0t
LS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlv
bgotCi0gICAgLi4gYXV0b2NsYXNzOjogUXVpY0NvbmZpZ3VyYXRpb24KLSAgICAgICAgOm1lbWJl
cnM6Ci0KLS4uIGF1dG9tb2R1bGU6OiBhaW9xdWljLnF1aWMubG9nZ2VyCi0KLSAgICAuLiBhdXRv
Y2xhc3M6OiBRdWljTG9nZ2VyCi0gICAgICAgIDptZW1iZXJzOgotCi1FdmVudHMKLS0tLS0tLQot
Ci0uLiBhdXRvbW9kdWxlOjogYWlvcXVpYy5xdWljLmV2ZW50cwotCi0gICAgLi4gYXV0b2NsYXNz
OjogUXVpY0V2ZW50Ci0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0b2NsYXNzOjogQ29u
bmVjdGlvblRlcm1pbmF0ZWQKLSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6
OiBIYW5kc2hha2VDb21wbGV0ZWQKLSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xh
c3M6OiBQaW5nQWNrbm93bGVkZ2VkCi0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0b2Ns
YXNzOjogU3RyZWFtRGF0YVJlY2VpdmVkCi0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gYXV0
b2NsYXNzOjogU3RyZWFtUmVzZXQKLSAgICAgICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODBlNzk5OTA0M2QyOTc0MWEx
MzQ5MTY2NzhkNTQwNDk5MmE5NzVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvTWFrZWZpbGUK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvZG9jcy9hc3luY2lvLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2NvbmYu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9kZXNpZ24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvaDMu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvbGlj
ZW5zZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9xdWljLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2V4YW1wbGVzL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvUkVBRE1F
LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ0YWY1N2Q1MTQ0YWYxM2U0MmQ3
OTdiYTMwOWY5NzRjNjM1NzU4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvUkVBRE1FLnJzdAorKysgL2Rldi9udWxs
CkBAIC0xLDYyICswLDAgQEAKLUV4YW1wbGVzCi09PT09PT09PQotCi1BZnRlciBjaGVja2luZyBv
dXQgdGhlIGNvZGUgdXNpbmcgZ2l0IHlvdSBjYW4gcnVuOgotCi0uLiBjb2RlLWJsb2NrOjogY29u
c29sZQotCi0gICAkIHBpcCBpbnN0YWxsIC1lIC4KLSAgICQgcGlwIGluc3RhbGwgYWlvZmlsZXMg
YXNnaXJlZiBkbnNsaWIgaHR0cGJpbiBzdGFybGV0dGUgd3Nwcm90bwotCi0KLUhUVFAvMwotLS0t
LS0tCi0KLUhUVFAvMyBzZXJ2ZXIKLS4uLi4uLi4uLi4uLi4KLQotWW91IGNhbiBydW4gdGhlIGV4
YW1wbGUgc2VydmVyLCB3aGljaCBoYW5kbGVzIGJvdGggSFRUUC8wLjkgYW5kIEhUVFAvMzoKLQot
Li4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAgJCBweXRob24gZXhhbXBsZXMvaHR0cDNfc2Vy
dmVyLnB5IC0tY2VydGlmaWNhdGUgdGVzdHMvc3NsX2NlcnQucGVtIC0tcHJpdmF0ZS1rZXkgdGVz
dHMvc3NsX2tleS5wZW0KLQotSFRUUC8zIGNsaWVudAotLi4uLi4uLi4uLi4uLgotCi1Zb3UgY2Fu
IHJ1biB0aGUgZXhhbXBsZSBjbGllbnQgdG8gcGVyZm9ybSBhbiBIVFRQLzMgcmVxdWVzdDoKLQot
Li4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAkIHB5dGhvbiBleGFtcGxlcy9odHRwM19jbGll
bnQucHkgLS1jYS1jZXJ0cyB0ZXN0cy9weWNhY2VydC5wZW0gaHR0cHM6Ly9sb2NhbGhvc3Q6NDQz
My8KLQotQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHBlcmZvcm0gYW4gSFRUUC8wLjkgcmVxdWVzdDoK
LQotLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAkIHB5dGhvbiBleGFtcGxlcy9odHRwM19j
bGllbnQucHkgLS1jYS1jZXJ0cyB0ZXN0cy9weWNhY2VydC5wZW0gLS1sZWdhY3ktaHR0cCBodHRw
czovL2xvY2FsaG9zdDo0NDMzLwotCi1Zb3UgY2FuIGFsc28gb3BlbiBhIFdlYlNvY2tldCBvdmVy
IEhUVFAvMzoKLQotLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAkIHB5dGhvbiBleGFtcGxl
cy9odHRwM19jbGllbnQucHkgLS1jYS1jZXJ0cyB0ZXN0cy9weWNhY2VydC5wZW0gd3NzOi8vbG9j
YWxob3N0OjQ0MzMvd3MKLQotCi1ETlMgb3ZlciBRVUlDCi0tLS0tLS0tLS0tLS0tCi0KLUJ5IGRl
ZmF1bHQgdGhlIHNlcnZlciB3aWxsIHVzZSB0aGUgYEdvb2dsZSBQdWJsaWMgRE5TYF8gc2Vydmlj
ZSwgeW91IGNhbgotb3ZlcnJpZGUgdGhpcyB3aXRoIHRoZSBgYC0tcmVzb2x2ZXJgYCBhcmd1bWVu
dC4KLQotLi4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAgICQgcHl0aG9uIGV4YW1wbGVzL2Rv
cV9zZXJ2ZXIucHkgLS1jZXJ0aWZpY2F0ZSB0ZXN0cy9zc2xfY2VydC5wZW0gLS1wcml2YXRlLWtl
eSB0ZXN0cy9zc2xfa2V5LnBlbQotCi1Zb3UgY2FuIHRoZW4gcnVuIHRoZSBjbGllbnQgd2l0aCBh
IHNwZWNpZmljIHF1ZXJ5OgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29sZQotCi0gICAgJCBweXRo
b24gZXhhbXBsZXMvZG9xX2NsaWVudC5weSAtLWNhLWNlcnRzIHRlc3RzL3B5Y2FjZXJ0LnBlbSAt
LWRuc190eXBlICJBIiAtLXF1ZXJ5ICJxdWljLmFpb3J0Yy5vcmciIC0tcG9ydCA0Nzg0Ci0KLS4u
IF9Hb29nbGUgUHVibGljIEROUzogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc3BlZWQv
cHVibGljLWRucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RlbW8ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvZXhhbXBsZXMvZGVtby5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmQ0Zjk3NTJmMTRjNzk3ZjQyOTI3NzM3OWQwNzZkZDU2YWNlOTIwMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMv
ZGVtby5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0jCi0jIGRlbW8gYXBwbGlj
YXRpb24gZm9yIGh0dHAzX3NlcnZlci5weQotIwotCi1pbXBvcnQgZGF0ZXRpbWUKLWltcG9ydCBv
cwotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQotCi1pbXBvcnQgaHR0cGJpbgot
ZnJvbSBhc2dpcmVmLndzZ2kgaW1wb3J0IFdzZ2lUb0FzZ2kKLWZyb20gc3RhcmxldHRlLmFwcGxp
Y2F0aW9ucyBpbXBvcnQgU3RhcmxldHRlCi1mcm9tIHN0YXJsZXR0ZS5yZXNwb25zZXMgaW1wb3J0
IFBsYWluVGV4dFJlc3BvbnNlLCBSZXNwb25zZQotZnJvbSBzdGFybGV0dGUuc3RhdGljZmlsZXMg
aW1wb3J0IFN0YXRpY0ZpbGVzCi1mcm9tIHN0YXJsZXR0ZS50ZW1wbGF0aW5nIGltcG9ydCBKaW5q
YTJUZW1wbGF0ZXMKLWZyb20gc3RhcmxldHRlLndlYnNvY2tldHMgaW1wb3J0IFdlYlNvY2tldERp
c2Nvbm5lY3QKLQotUk9PVCA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKLVNUQVRJQ19ST09U
ID0gb3MuZW52aXJvbi5nZXQoIlNUQVRJQ19ST09UIiwgb3MucGF0aC5qb2luKFJPT1QsICJodGRv
Y3MiKSkKLVNUQVRJQ19VUkwgPSAiLyIKLUxPR1NfUEFUSCA9IG9zLnBhdGguam9pbihTVEFUSUNf
Uk9PVCwgImxvZ3MiKQotUVZJU19VUkwgPSAiaHR0cHM6Ly9xdmlzLmVkbS51aGFzc2VsdC5iZS8i
Ci0KLXRlbXBsYXRlcyA9IEppbmphMlRlbXBsYXRlcyhkaXJlY3Rvcnk9b3MucGF0aC5qb2luKFJP
T1QsICJ0ZW1wbGF0ZXMiKSkKLWFwcCA9IFN0YXJsZXR0ZSgpCi0KLQotQGFwcC5yb3V0ZSgiLyIp
Ci1hc3luYyBkZWYgaG9tZXBhZ2UocmVxdWVzdCk6Ci0gICAgIiIiCi0gICAgU2ltcGxlIGhvbWVw
YWdlLgotICAgICIiIgotICAgIGF3YWl0IHJlcXVlc3Quc2VuZF9wdXNoX3Byb21pc2UoIi9zdHls
ZS5jc3MiKQotICAgIHJldHVybiB0ZW1wbGF0ZXMuVGVtcGxhdGVSZXNwb25zZSgiaW5kZXguaHRt
bCIsIHsicmVxdWVzdCI6IHJlcXVlc3R9KQotCi0KLUBhcHAucm91dGUoIi9lY2hvIiwgbWV0aG9k
cz1bIlBPU1QiXSkKLWFzeW5jIGRlZiBlY2hvKHJlcXVlc3QpOgotICAgICIiIgotICAgIEhUVFAg
ZWNobyBlbmRwb2ludC4KLSAgICAiIiIKLSAgICBjb250ZW50ID0gYXdhaXQgcmVxdWVzdC5ib2R5
KCkKLSAgICBtZWRpYV90eXBlID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikK
LSAgICByZXR1cm4gUmVzcG9uc2UoY29udGVudCwgbWVkaWFfdHlwZT1tZWRpYV90eXBlKQotCi0K
LUBhcHAucm91dGUoIi9sb2dzLz8iKQotYXN5bmMgZGVmIGxvZ3MocmVxdWVzdCk6Ci0gICAgIiIi
Ci0gICAgQnJvd3NhYmxlIGxpc3Qgb2YgUUxPRyBmaWxlcy4KLSAgICAiIiIKLSAgICBsb2dzID0g
W10KLSAgICBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKExPR1NfUEFUSCk6Ci0gICAgICAgIGlmIG5h
bWUuZW5kc3dpdGgoIi5xbG9nIik6Ci0gICAgICAgICAgICBzID0gb3Muc3RhdChvcy5wYXRoLmpv
aW4oTE9HU19QQVRILCBuYW1lKSkKLSAgICAgICAgICAgIGZpbGVfdXJsID0gImh0dHBzOi8vIiAr
IHJlcXVlc3QuaGVhZGVyc1siaG9zdCJdICsgIi9sb2dzLyIgKyBuYW1lCi0gICAgICAgICAgICBs
b2dzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJkYXRl
IjogZGF0ZXRpbWUuZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcChzLnN0X210aW1lKS5zdHJmdGlt
ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICIlWS0lbS0lZCAlSDolTTolUyIKLSAgICAgICAg
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgImZpbGVfdXJsIjogZmlsZV91cmws
Ci0gICAgICAgICAgICAgICAgICAgICJuYW1lIjogbmFtZVs6LTVdLAotICAgICAgICAgICAgICAg
ICAgICAicXZpc191cmwiOiBRVklTX1VSTAotICAgICAgICAgICAgICAgICAgICArICI/IgotICAg
ICAgICAgICAgICAgICAgICArIHVybGVuY29kZSh7ImZpbGUiOiBmaWxlX3VybH0pCi0gICAgICAg
ICAgICAgICAgICAgICsgIiMvc2VxdWVuY2UiLAotICAgICAgICAgICAgICAgICAgICAic2l6ZSI6
IHMuc3Rfc2l6ZSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICApCi0gICAgcmV0dXJu
IHRlbXBsYXRlcy5UZW1wbGF0ZVJlc3BvbnNlKAotICAgICAgICAibG9ncy5odG1sIiwKLSAgICAg
ICAgewotICAgICAgICAgICAgImxvZ3MiOiBzb3J0ZWQobG9ncywga2V5PWxhbWJkYSB4OiB4WyJk
YXRlIl0sIHJldmVyc2U9VHJ1ZSksCi0gICAgICAgICAgICAicmVxdWVzdCI6IHJlcXVlc3QsCi0g
ICAgICAgIH0sCi0gICAgKQotCi0KLUBhcHAucm91dGUoIi97c2l6ZTppbnR9IikKLWRlZiBwYWRk
aW5nKHJlcXVlc3QpOgotICAgICIiIgotICAgIER5bmFtaWNhbGx5IGdlbmVyYXRlZCBkYXRhLCBt
YXhpbXVtIDUwTUIuCi0gICAgIiIiCi0gICAgc2l6ZSA9IG1pbig1MDAwMDAwMCwgcmVxdWVzdC5w
YXRoX3BhcmFtc1sic2l6ZSJdKQotICAgIHJldHVybiBQbGFpblRleHRSZXNwb25zZSgiWiIgKiBz
aXplKQotCi0KLUBhcHAud2Vic29ja2V0X3JvdXRlKCIvd3MiKQotYXN5bmMgZGVmIHdzKHdlYnNv
Y2tldCk6Ci0gICAgIiIiCi0gICAgV2ViU29ja2V0IGVjaG8gZW5kcG9pbnQuCi0gICAgIiIiCi0g
ICAgaWYgImNoYXQiIGluIHdlYnNvY2tldC5zY29wZVsic3VicHJvdG9jb2xzIl06Ci0gICAgICAg
IHN1YnByb3RvY29sID0gImNoYXQiCi0gICAgZWxzZToKLSAgICAgICAgc3VicHJvdG9jb2wgPSBO
b25lCi0gICAgYXdhaXQgd2Vic29ja2V0LmFjY2VwdChzdWJwcm90b2NvbD1zdWJwcm90b2NvbCkK
LQotICAgIHRyeToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBh
d2FpdCB3ZWJzb2NrZXQucmVjZWl2ZV90ZXh0KCkKLSAgICAgICAgICAgIGF3YWl0IHdlYnNvY2tl
dC5zZW5kX3RleHQobWVzc2FnZSkKLSAgICBleGNlcHQgV2ViU29ja2V0RGlzY29ubmVjdDoKLSAg
ICAgICAgcGFzcwotCi0KLWFwcC5tb3VudCgiL2h0dHBiaW4iLCBXc2dpVG9Bc2dpKGh0dHBiaW4u
YXBwKSkKLQotYXBwLm1vdW50KFNUQVRJQ19VUkwsIFN0YXRpY0ZpbGVzKGRpcmVjdG9yeT1TVEFU
SUNfUk9PVCwgaHRtbD1UcnVlKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9k
b3FfY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RvcV9jbGllbnQucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YzFhNDRmMDI4Y2I1OTY5MmM5NDA3MTk1MTdmMTNk
Y2I0ZjEwYTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL2V4YW1wbGVzL2RvcV9jbGllbnQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwx
NjIgKzAsMCBAQAotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGpzb24K
LWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcGlja2xlCi1pbXBvcnQgc3NsCi1mcm9tIHR5cGluZyBp
bXBvcnQgT3B0aW9uYWwsIGNhc3QKLQotZnJvbSBkbnNsaWIuZG5zIGltcG9ydCBRVFlQRSwgRE5T
UXVlc3Rpb24sIEROU1JlY29yZAotCi1mcm9tIGFpb3F1aWMuYXN5bmNpby5jbGllbnQgaW1wb3J0
IGNvbm5lY3QKLWZyb20gYWlvcXVpYy5hc3luY2lvLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVj
dGlvblByb3RvY29sCi1mcm9tIGFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWlj
Q29uZmlndXJhdGlvbgotZnJvbSBhaW9xdWljLnF1aWMuZXZlbnRzIGltcG9ydCBRdWljRXZlbnQs
IFN0cmVhbURhdGFSZWNlaXZlZAotZnJvbSBhaW9xdWljLnF1aWMubG9nZ2VyIGltcG9ydCBRdWlj
TG9nZ2VyCi0KLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJjbGllbnQiKQotCi0KLWNsYXNz
IERvUUNsaWVudChRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKipr
d2FyZ3MpCi0gICAgICAgIHNlbGYuX2Fja193YWl0ZXI6IE9wdGlvbmFsW2FzeW5jaW8uRnV0dXJl
W05vbmVdXSA9IE5vbmUKLQotICAgIGFzeW5jIGRlZiBxdWVyeShzZWxmLCBxdWVyeV90eXBlOiBz
dHIsIGRuc19xdWVyeTogc3RyKSAtPiBOb25lOgotICAgICAgICBxdWVyeSA9IEROU1JlY29yZChx
PUROU1F1ZXN0aW9uKGRuc19xdWVyeSwgZ2V0YXR0cihRVFlQRSwgcXVlcnlfdHlwZSkpKQotICAg
ICAgICBzdHJlYW1faWQgPSBzZWxmLl9xdWljLmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQo
KQotICAgICAgICBsb2dnZXIuZGVidWcoZiJTdHJlYW0gSUQ6IHtzdHJlYW1faWR9IikKLSAgICAg
ICAgZW5kX3N0cmVhbSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0
YShzdHJlYW1faWQsIGJ5dGVzKHF1ZXJ5LnBhY2soKSksIGVuZF9zdHJlYW0pCi0gICAgICAgIHdh
aXRlciA9IHNlbGYuX2xvb3AuY3JlYXRlX2Z1dHVyZSgpCi0gICAgICAgIHNlbGYuX2Fja193YWl0
ZXIgPSB3YWl0ZXIKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICAgICAgcmV0dXJuIGF3
YWl0IGFzeW5jaW8uc2hpZWxkKHdhaXRlcikKLQotICAgIGRlZiBxdWljX2V2ZW50X3JlY2VpdmVk
KHNlbGYsIGV2ZW50OiBRdWljRXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgIGlmIHNlbGYuX2Fja193
YWl0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBTdHJl
YW1EYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAgIGFuc3dlciA9IEROU1JlY29yZC5wYXJz
ZShldmVudC5kYXRhKQotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGFuc3dlcikKLSAgICAg
ICAgICAgICAgICB3YWl0ZXIgPSBzZWxmLl9hY2tfd2FpdGVyCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fYWNrX3dhaXRlciA9IE5vbmUKLSAgICAgICAgICAgICAgICB3YWl0ZXIuc2V0X3Jlc3VsdChO
b25lKQotCi0KLWRlZiBzYXZlX3Nlc3Npb25fdGlja2V0KHRpY2tldCk6Ci0gICAgIiIiCi0gICAg
Q2FsbGJhY2sgd2hpY2ggaXMgaW52b2tlZCBieSB0aGUgVExTIGVuZ2luZSB3aGVuIGEgbmV3IHNl
c3Npb24gdGlja2V0Ci0gICAgaXMgcmVjZWl2ZWQuCi0gICAgIiIiCi0gICAgbG9nZ2VyLmluZm8o
Ik5ldyBzZXNzaW9uIHRpY2tldCByZWNlaXZlZCIpCi0gICAgaWYgYXJncy5zZXNzaW9uX3RpY2tl
dDoKLSAgICAgICAgd2l0aCBvcGVuKGFyZ3Muc2Vzc2lvbl90aWNrZXQsICJ3YiIpIGFzIGZwOgot
ICAgICAgICAgICAgcGlja2xlLmR1bXAodGlja2V0LCBmcCkKLQotCi1hc3luYyBkZWYgcnVuKAot
ICAgIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uLAotICAgIGhvc3Q6IHN0ciwKLSAg
ICBwb3J0OiBpbnQsCi0gICAgcXVlcnlfdHlwZTogc3RyLAotICAgIGRuc19xdWVyeTogc3RyLAot
KSAtPiBOb25lOgotICAgIGxvZ2dlci5kZWJ1ZyhmIkNvbm5lY3RpbmcgdG8ge2hvc3R9Ontwb3J0
fSIpCi0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBob3N0LAotICAgICAgICBwb3J0
LAotICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgIHNlc3Npb25f
dGlja2V0X2hhbmRsZXI9c2F2ZV9zZXNzaW9uX3RpY2tldCwKLSAgICAgICAgY3JlYXRlX3Byb3Rv
Y29sPURvUUNsaWVudCwKLSAgICApIGFzIGNsaWVudDoKLSAgICAgICAgY2xpZW50ID0gY2FzdChE
b1FDbGllbnQsIGNsaWVudCkKLSAgICAgICAgbG9nZ2VyLmRlYnVnKCJTZW5kaW5nIEROUyBxdWVy
eSIpCi0gICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxdWVyeV90eXBlLCBkbnNfcXVlcnkpCi0K
LQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1
bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iRE5TIG92ZXIgUVVJQyBjbGllbnQiKQotICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi10IiwgIi0tdHlwZSIsIHR5cGU9c3RyLCBoZWxwPSJUeXBlIG9mIHJl
Y29yZCB0byAiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLWhvc3QiLAot
ICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgZGVmYXVsdD0ibG9jYWxob3N0IiwKLSAgICAgICAg
aGVscD0iVGhlIHJlbW90ZSBwZWVyJ3MgaG9zdCBuYW1lIG9yIElQIGFkZHJlc3MiLAotICAgICkK
LSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLS1wb3J0IiwgdHlwZT1pbnQsIGRl
ZmF1bHQ9Nzg0LCBoZWxwPSJUaGUgcmVtb3RlIHBlZXIncyBwb3J0IG51bWJlciIKLSAgICApCi0g
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1rIiwKLSAgICAgICAgIi0taW5zZWN1
cmUiLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJkbyBub3Qg
dmFsaWRhdGUgc2VydmVyIGNlcnRpZmljYXRlIiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgKLSAgICAgICAgIi0tY2EtY2VydHMiLCB0eXBlPXN0ciwgaGVscD0ibG9hZCBDQSBjZXJ0
aWZpY2F0ZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiCi0gICAgKQotICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tZG5zX3R5cGUiLCBoZWxwPSJUaGUgRE5TIHF1ZXJ5IHR5cGUgdG8gc2VuZCIp
Ci0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1xdWVyeSIsIGhlbHA9IkRvbWFpbiB0byBxdWVy
eSIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1xIiwgIi0tcXVpYy1sb2ci
LCB0eXBlPXN0ciwgaGVscD0ibG9nIFFVSUMgZXZlbnRzIHRvIGEgZmlsZSBpbiBRTE9HIGZvcm1h
dCIKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1sIiwKLSAgICAg
ICAgIi0tc2VjcmV0cy1sb2ciLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgaGVscD0ibG9n
IHNlY3JldHMgdG8gYSBmaWxlLCBmb3IgdXNlIHdpdGggV2lyZXNoYXJrIiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1zIiwKLSAgICAgICAgIi0tc2Vzc2lvbi10
aWNrZXQiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgaGVscD0icmVhZCBhbmQgd3JpdGUg
c2Vzc2lvbiB0aWNrZXQgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiLAotICAgICkKLSAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXYiLCAiLS12ZXJib3NlIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgaGVscD0iaW5jcmVhc2UgbG9nZ2luZyB2ZXJib3NpdHkiCi0gICAgKQotCi0gICAg
YXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoCi0g
ICAgICAgIGZvcm1hdD0iJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG5hbWUpcyAlKG1lc3Nh
Z2UpcyIsCi0gICAgICAgIGxldmVsPWxvZ2dpbmcuREVCVUcgaWYgYXJncy52ZXJib3NlIGVsc2Ug
bG9nZ2luZy5JTkZPLAotICAgICkKLQotICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJh
dGlvbigKLSAgICAgICAgYWxwbl9wcm90b2NvbHM9WyJkcSJdLCBpc19jbGllbnQ9VHJ1ZSwgbWF4
X2RhdGFncmFtX2ZyYW1lX3NpemU9NjU1MzYKLSAgICApCi0gICAgaWYgYXJncy5jYV9jZXJ0czoK
LSAgICAgICAgY29uZmlndXJhdGlvbi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoYXJncy5jYV9jZXJ0
cykKLSAgICBpZiBhcmdzLmluc2VjdXJlOgotICAgICAgICBjb25maWd1cmF0aW9uLnZlcmlmeV9t
b2RlID0gc3NsLkNFUlRfTk9ORQotICAgIGlmIGFyZ3MucXVpY19sb2c6Ci0gICAgICAgIGNvbmZp
Z3VyYXRpb24ucXVpY19sb2dnZXIgPSBRdWljTG9nZ2VyKCkKLSAgICBpZiBhcmdzLnNlY3JldHNf
bG9nOgotICAgICAgICBjb25maWd1cmF0aW9uLnNlY3JldHNfbG9nX2ZpbGUgPSBvcGVuKGFyZ3Mu
c2VjcmV0c19sb2csICJhIikKLSAgICBpZiBhcmdzLnNlc3Npb25fdGlja2V0OgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oYXJncy5zZXNzaW9uX3RpY2tldCwgInJiIikgYXMg
ZnA6Ci0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi5zZXNzaW9uX3RpY2tldCA9IHBpY2ts
ZS5sb2FkKGZwKQotICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6Ci0gICAgICAgICAg
ICBsb2dnZXIuZGVidWcoZiJVbmFibGUgdG8gcmVhZCB7YXJncy5zZXNzaW9uX3RpY2tldH0iKQot
ICAgICAgICAgICAgcGFzcwotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dlci5kZWJ1ZygiTm8gc2Vz
c2lvbiB0aWNrZXQgZGVmaW5lZC4uLiIpCi0KLSAgICBsb29wID0gYXN5bmNpby5nZXRfZXZlbnRf
bG9vcCgpCi0gICAgdHJ5OgotICAgICAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgKLSAgICAg
ICAgICAgIHJ1bigKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24s
Ci0gICAgICAgICAgICAgICAgaG9zdD1hcmdzLmhvc3QsCi0gICAgICAgICAgICAgICAgcG9ydD1h
cmdzLnBvcnQsCi0gICAgICAgICAgICAgICAgcXVlcnlfdHlwZT1hcmdzLmRuc190eXBlLAotICAg
ICAgICAgICAgICAgIGRuc19xdWVyeT1hcmdzLnF1ZXJ5LAotICAgICAgICAgICAgKQotICAgICAg
ICApCi0gICAgZmluYWxseToKLSAgICAgICAgaWYgY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlciBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHdpdGggb3BlbihhcmdzLnF1aWNfbG9nLCAidyIpIGFz
IGxvZ2dlcl9mcDoKLSAgICAgICAgICAgICAgICBqc29uLmR1bXAoY29uZmlndXJhdGlvbi5xdWlj
X2xvZ2dlci50b19kaWN0KCksIGxvZ2dlcl9mcCwgaW5kZW50PTQpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvZXhhbXBsZXMvZG9xX3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9k
b3Ffc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzM0N2ZlNmMxODk2
M2UwNTk2YTg2ODhhNWVjNmViYTI4NGQwMjU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9kb3Ffc2VydmVyLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLWltcG9ydCBhcmdwYXJzZQotaW1wb3J0IGFz
eW5jaW8KLWltcG9ydCBqc29uCi1pbXBvcnQgbG9nZ2luZwotZnJvbSB0eXBpbmcgaW1wb3J0IERp
Y3QsIE9wdGlvbmFsCi0KLWZyb20gZG5zbGliLmRucyBpbXBvcnQgRE5TUmVjb3JkCi0KLWZyb20g
YWlvcXVpYy5hc3luY2lvIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3RvY29sLCBzZXJ2ZQotZnJv
bSBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZy
b20gYWlvcXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0IFF1aWNDb25uZWN0aW9uCi1mcm9tIGFp
b3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFByb3RvY29sTmVnb3RpYXRlZCwgUXVpY0V2ZW50LCBT
dHJlYW1EYXRhUmVjZWl2ZWQKLWZyb20gYWlvcXVpYy5xdWljLmxvZ2dlciBpbXBvcnQgUXVpY0xv
Z2dlcgotZnJvbSBhaW9xdWljLnRscyBpbXBvcnQgU2Vzc2lvblRpY2tldAotCi10cnk6Ci0gICAg
aW1wb3J0IHV2bG9vcAotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHV2bG9vcCA9IE5vbmUKLQot
Ci1jbGFzcyBEbnNDb25uZWN0aW9uOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBxdWljOiBRdWlj
Q29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYuX3F1aWMgPSBxdWljCi0KLSAgICBkZWYgZG9fcXVl
cnkoc2VsZiwgcGF5bG9hZCkgLT4gYnl0ZXM6Ci0gICAgICAgIHEgPSBETlNSZWNvcmQucGFyc2Uo
cGF5bG9hZCkKLSAgICAgICAgcmV0dXJuIHEuc2VuZChzZWxmLnJlc29sdmVyKCksIDUzKQotCi0g
ICAgZGVmIHJlc29sdmVyKHNlbGYpIC0+IHN0cjoKLSAgICAgICAgcmV0dXJuIGFyZ3MucmVzb2x2
ZXIKLQotICAgIGRlZiBoYW5kbGVfZXZlbnQoc2VsZiwgZXZlbnQ6IFF1aWNFdmVudCkgLT4gTm9u
ZToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgU3RyZWFtRGF0YVJlY2VpdmVkKToKLSAg
ICAgICAgICAgIGRhdGEgPSBzZWxmLmRvX3F1ZXJ5KGV2ZW50LmRhdGEpCi0gICAgICAgICAgICBl
bmRfc3RyZWFtID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0
YShldmVudC5zdHJlYW1faWQsIGRhdGEsIGVuZF9zdHJlYW0pCi0KLQotY2xhc3MgRG5zU2VydmVy
UHJvdG9jb2woUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCk6Ci0KLSAgICAjIC0wMCBzcGVjaWZpZXMg
J2RxJywgJ2RvcScsIGFuZCAnZG9xLWgwMCcgKHRoZSBsYXR0ZXIgb2J2aW91c2x5IHR5aW5nIHRv
Ci0gICAgIyB0aGUgdmVyc2lvbiBvZiB0aGUgZHJhZnQgaXQgbWF0Y2hlcykuIFRoaXMgaXMgY29u
ZnVzaW5nLCBzbyB3ZSdsbCBqdXN0Ci0gICAgIyBzdXBwb3J0IHRoZW0gYWxsLCB1bnRpbCBmdXR1
cmUgZHJhZnRzIGRlZmluZSBjb25mbGljdGluZyBiZWhhdmlvdXIuCi0gICAgU1VQUE9SVEVEX0FM
UE5TID0gWyJkcSIsICJkb3EiLCAiZG9xLWgwMCJdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
KmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2Fy
Z3MpCi0gICAgICAgIHNlbGYuX2RuczogT3B0aW9uYWxbRG5zQ29ubmVjdGlvbl0gPSBOb25lCi0K
LSAgICBkZWYgcXVpY19ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogUXVpY0V2ZW50KToKLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgUHJvdG9jb2xOZWdvdGlhdGVkKToKLSAgICAgICAg
ICAgIGlmIGV2ZW50LmFscG5fcHJvdG9jb2wgaW4gRG5zU2VydmVyUHJvdG9jb2wuU1VQUE9SVEVE
X0FMUE5TOgotICAgICAgICAgICAgICAgIHNlbGYuX2RucyA9IERuc0Nvbm5lY3Rpb24oc2VsZi5f
cXVpYykKLSAgICAgICAgaWYgc2VsZi5fZG5zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2Vs
Zi5fZG5zLmhhbmRsZV9ldmVudChldmVudCkKLQotCi1jbGFzcyBTZXNzaW9uVGlja2V0U3RvcmU6
Ci0gICAgIiIiCi0gICAgU2ltcGxlIGluLW1lbW9yeSBzdG9yZSBmb3Igc2Vzc2lvbiB0aWNrZXRz
LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNl
bGYudGlja2V0czogRGljdFtieXRlcywgU2Vzc2lvblRpY2tldF0gPSB7fQotCi0gICAgZGVmIGFk
ZChzZWxmLCB0aWNrZXQ6IFNlc3Npb25UaWNrZXQpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYudGlj
a2V0c1t0aWNrZXQudGlja2V0XSA9IHRpY2tldAotCi0gICAgZGVmIHBvcChzZWxmLCBsYWJlbDog
Ynl0ZXMpIC0+IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRdOgotICAgICAgICByZXR1cm4gc2VsZi50
aWNrZXRzLnBvcChsYWJlbCwgTm9uZSkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgot
Ci0gICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249IkROUyBv
dmVyIFFVSUMgc2VydmVyIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLS1o
b3N0IiwKLSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIGRlZmF1bHQ9Ijo6IiwKLSAgICAgICAg
aGVscD0ibGlzdGVuIG9uIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyAoZGVmYXVsdHMgdG8gOjopIiwK
LSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0tcG9ydCIsCi0gICAg
ICAgIHR5cGU9aW50LAotICAgICAgICBkZWZhdWx0PTQ3ODQsCi0gICAgICAgIGhlbHA9Imxpc3Rl
biBvbiB0aGUgc3BlY2lmaWVkIHBvcnQgKGRlZmF1bHRzIHRvIDQ3ODQpIiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1rIiwKLSAgICAgICAgIi0tcHJpdmF0ZS1r
ZXkiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKLSAgICAgICAg
aGVscD0ibG9hZCB0aGUgVExTIHByaXZhdGUga2V5IGZyb20gdGhlIHNwZWNpZmllZCBmaWxlIiwK
LSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1jIiwKLSAgICAgICAg
Ii0tY2VydGlmaWNhdGUiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgcmVxdWlyZWQ9VHJ1
ZSwKLSAgICAgICAgaGVscD0ibG9hZCB0aGUgVExTIGNlcnRpZmljYXRlIGZyb20gdGhlIHNwZWNp
ZmllZCBmaWxlIiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1y
IiwKLSAgICAgICAgIi0tcmVzb2x2ZXIiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgZGVm
YXVsdD0iOC44LjguOCIsCi0gICAgICAgIGhlbHA9IlVwc3RyZWFtIENsYXNzaWMgRE5TIHJlc29s
dmVyIHRvIHVzZSIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICIt
cyIsCi0gICAgICAgICItLXN0YXRlbGVzcy1yZXRyeSIsCi0gICAgICAgIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCi0gICAgICAgIGhlbHA9InNlbmQgYSBzdGF0ZWxlc3MgcmV0cnkgZm9yIG5ldyBjb25u
ZWN0aW9ucyIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItcSIs
ICItLXF1aWMtbG9nIiwgdHlwZT1zdHIsIGhlbHA9ImxvZyBRVUlDIGV2ZW50cyB0byBhIGZpbGUg
aW4gUUxPRyBmb3JtYXQiCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAg
ICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJpbmNyZWFzZSBs
b2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0KLSAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3Mo
KQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgZm9ybWF0PSIlKGFzY3RpbWUp
cyAlKGxldmVsbmFtZSlzICUobmFtZSlzICUobWVzc2FnZSlzIiwKLSAgICAgICAgbGV2ZWw9bG9n
Z2luZy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxzZSBsb2dnaW5nLklORk8sCi0gICAgKQotCi0g
ICAgaWYgYXJncy5xdWljX2xvZzoKLSAgICAgICAgcXVpY19sb2dnZXIgPSBRdWljTG9nZ2VyKCkK
LSAgICBlbHNlOgotICAgICAgICBxdWljX2xvZ2dlciA9IE5vbmUKLQotICAgIGNvbmZpZ3VyYXRp
b24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgYWxwbl9wcm90b2NvbHM9WyJkcSJdLAot
ICAgICAgICBpc19jbGllbnQ9RmFsc2UsCi0gICAgICAgIG1heF9kYXRhZ3JhbV9mcmFtZV9zaXpl
PTY1NTM2LAotICAgICAgICBxdWljX2xvZ2dlcj1xdWljX2xvZ2dlciwKLSAgICApCi0KLSAgICBj
b25maWd1cmF0aW9uLmxvYWRfY2VydF9jaGFpbihhcmdzLmNlcnRpZmljYXRlLCBhcmdzLnByaXZh
dGVfa2V5KQotCi0gICAgdGlja2V0X3N0b3JlID0gU2Vzc2lvblRpY2tldFN0b3JlKCkKLQotICAg
IGlmIHV2bG9vcCBpcyBub3QgTm9uZToKLSAgICAgICAgdXZsb29wLmluc3RhbGwoKQotICAgIGxv
b3AgPSBhc3luY2lvLmdldF9ldmVudF9sb29wKCkKLSAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0
ZSgKLSAgICAgICAgc2VydmUoCi0gICAgICAgICAgICBhcmdzLmhvc3QsCi0gICAgICAgICAgICBh
cmdzLnBvcnQsCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAg
ICAgICAgICBjcmVhdGVfcHJvdG9jb2w9RG5zU2VydmVyUHJvdG9jb2wsCi0gICAgICAgICAgICBz
ZXNzaW9uX3RpY2tldF9mZXRjaGVyPXRpY2tldF9zdG9yZS5wb3AsCi0gICAgICAgICAgICBzZXNz
aW9uX3RpY2tldF9oYW5kbGVyPXRpY2tldF9zdG9yZS5hZGQsCi0gICAgICAgICAgICBzdGF0ZWxl
c3NfcmV0cnk9YXJncy5zdGF0ZWxlc3NfcmV0cnksCi0gICAgICAgICkKLSAgICApCi0gICAgdHJ5
OgotICAgICAgICBsb29wLnJ1bl9mb3JldmVyKCkKLSAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1
cHQ6Ci0gICAgICAgIHBhc3MKLSAgICBmaW5hbGx5OgotICAgICAgICBpZiBjb25maWd1cmF0aW9u
LnF1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgd2l0aCBvcGVuKGFyZ3MucXVp
Y19sb2csICJ3IikgYXMgbG9nZ2VyX2ZwOgotICAgICAgICAgICAgICAgIGpzb24uZHVtcChjb25m
aWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2RpY3QoKSwgbG9nZ2VyX2ZwLCBpbmRlbnQ9NCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvcm9ib3RzLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvcm9ib3RzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTFhYTBiZGVhYWNlNjM3MmE3ZWIxMzAxMGZkMTY2NmM2NTU0Njg2NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhh
bXBsZXMvaHRkb2NzL3JvYm90cy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVVz
ZXItYWdlbnQ6ICoKLURpc2FsbG93OiAvbG9ncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL2h0ZG9jcy9zdHlsZS5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHRkb2NzL3N0
eWxlLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE1MjNkYjhhZDhkMTZmNzUy
NjBjNTgxN2FiNDhlODllMjFlYmJkNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHRkb2NzL3N0eWxlLmNzcworKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWJvZHkgewotICAgIGZvbnQtZmFtaWx5OiBBcmlh
bCwgc2Fucy1zZXJpZjsKLSAgICBmb250LXNpemU6IDE2cHg7Ci0gICAgbWFyZ2luOiAwIGF1dG87
Ci0gICAgd2lkdGg6IDQwZW07Ci19Ci0KLXRhYmxlLmxvZ3MgewotICAgIHdpZHRoOiAxMDAlOwot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0ZG9jcy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NjgyMGRmMGRmODA5YzdjOTg5OTI3YThiOGIzMjhlMDQ5
NTZmZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL2V4YW1wbGVzL2h0ZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvcm9i
b3RzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvc3R5bGUuY3NzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0cDNfY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L2V4YW1wbGVzL2h0dHAzX2NsaWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGE4ODhhMzZlYTdlYmEyN2YzNmE1ZGQ0MGIwYzc2YTA0MjQ5ZGMyOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0
cDNfY2xpZW50LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDU1ICswLDAgQEAKLWltcG9ydCBhcmdw
YXJzZQotaW1wb3J0IGFzeW5jaW8KLWltcG9ydCBqc29uCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0
IG9zCi1pbXBvcnQgcGlja2xlCi1pbXBvcnQgc3NsCi1pbXBvcnQgdGltZQotZnJvbSBjb2xsZWN0
aW9ucyBpbXBvcnQgZGVxdWUKLWZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZSwgRGVxdWUsIERp
Y3QsIExpc3QsIE9wdGlvbmFsLCBVbmlvbiwgY2FzdAotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0
IHVybHBhcnNlCi0KLWltcG9ydCB3c3Byb3RvCi1pbXBvcnQgd3Nwcm90by5ldmVudHMKLQotaW1w
b3J0IGFpb3F1aWMKLWZyb20gYWlvcXVpYy5hc3luY2lvLmNsaWVudCBpbXBvcnQgY29ubmVjdAot
ZnJvbSBhaW9xdWljLmFzeW5jaW8ucHJvdG9jb2wgaW1wb3J0IFF1aWNDb25uZWN0aW9uUHJvdG9j
b2wKLWZyb20gYWlvcXVpYy5oMC5jb25uZWN0aW9uIGltcG9ydCBIMF9BTFBOLCBIMENvbm5lY3Rp
b24KLWZyb20gYWlvcXVpYy5oMy5jb25uZWN0aW9uIGltcG9ydCBIM19BTFBOLCBIM0Nvbm5lY3Rp
b24KLWZyb20gYWlvcXVpYy5oMy5ldmVudHMgaW1wb3J0ICgKLSAgICBEYXRhUmVjZWl2ZWQsCi0g
ICAgSDNFdmVudCwKLSAgICBIZWFkZXJzUmVjZWl2ZWQsCi0gICAgUHVzaFByb21pc2VSZWNlaXZl
ZCwKLSkKLWZyb20gYWlvcXVpYy5xdWljLmNvbmZpZ3VyYXRpb24gaW1wb3J0IFF1aWNDb25maWd1
cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFF1aWNFdmVudAotZnJvbSBh
aW9xdWljLnF1aWMubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi1mcm9tIGFpb3F1aWMudGxzIGlt
cG9ydCBTZXNzaW9uVGlja2V0Ci0KLXRyeToKLSAgICBpbXBvcnQgdXZsb29wCi1leGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgdXZsb29wID0gTm9uZQotCi1sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dl
cigiY2xpZW50IikKLQotSHR0cENvbm5lY3Rpb24gPSBVbmlvbltIMENvbm5lY3Rpb24sIEgzQ29u
bmVjdGlvbl0KLQotVVNFUl9BR0VOVCA9ICJhaW9xdWljLyIgKyBhaW9xdWljLl9fdmVyc2lvbl9f
Ci0KLQotY2xhc3MgVVJMOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0cikgLT4gTm9u
ZToKLSAgICAgICAgcGFyc2VkID0gdXJscGFyc2UodXJsKQotCi0gICAgICAgIHNlbGYuYXV0aG9y
aXR5ID0gcGFyc2VkLm5ldGxvYwotICAgICAgICBzZWxmLmZ1bGxfcGF0aCA9IHBhcnNlZC5wYXRo
Ci0gICAgICAgIGlmIHBhcnNlZC5xdWVyeToKLSAgICAgICAgICAgIHNlbGYuZnVsbF9wYXRoICs9
ICI/IiArIHBhcnNlZC5xdWVyeQotICAgICAgICBzZWxmLnNjaGVtZSA9IHBhcnNlZC5zY2hlbWUK
LQotCi1jbGFzcyBIdHRwUmVxdWVzdDoKLSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYs
IG1ldGhvZDogc3RyLCB1cmw6IFVSTCwgY29udGVudDogYnl0ZXMgPSBiIiIsIGhlYWRlcnM6IERp
Y3QgPSB7fQotICAgICkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5jb250ZW50ID0gY29udGVudAot
ICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCi0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0
aG9kCi0gICAgICAgIHNlbGYudXJsID0gdXJsCi0KLQotY2xhc3MgV2ViU29ja2V0OgotICAgIGRl
ZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwgaHR0cDogSHR0cENvbm5lY3Rpb24sIHN0cmVhbV9p
ZDogaW50LCB0cmFuc21pdDogQ2FsbGFibGVbW10sIE5vbmVdCi0gICAgKSAtPiBOb25lOgotICAg
ICAgICBzZWxmLmh0dHAgPSBodHRwCi0gICAgICAgIHNlbGYucXVldWU6IGFzeW5jaW8uUXVldWVb
c3RyXSA9IGFzeW5jaW8uUXVldWUoKQotICAgICAgICBzZWxmLnN0cmVhbV9pZCA9IHN0cmVhbV9p
ZAotICAgICAgICBzZWxmLnN1YnByb3RvY29sOiBPcHRpb25hbFtzdHJdID0gTm9uZQotICAgICAg
ICBzZWxmLnRyYW5zbWl0ID0gdHJhbnNtaXQKLSAgICAgICAgc2VsZi53ZWJzb2NrZXQgPSB3c3By
b3RvLkNvbm5lY3Rpb24od3Nwcm90by5Db25uZWN0aW9uVHlwZS5DTElFTlQpCi0KLSAgICBhc3lu
YyBkZWYgY2xvc2Uoc2VsZiwgY29kZT0xMDAwLCByZWFzb249IiIpIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBQZXJmb3JtIHRoZSBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGRhdGEgPSBzZWxmLndlYnNvY2tldC5zZW5kKAotICAgICAgICAgICAgd3Nwcm90
by5ldmVudHMuQ2xvc2VDb25uZWN0aW9uKGNvZGU9Y29kZSwgcmVhc29uPXJlYXNvbikKLSAgICAg
ICAgKQotICAgICAgICBzZWxmLmh0dHAuc2VuZF9kYXRhKHN0cmVhbV9pZD1zZWxmLnN0cmVhbV9p
ZCwgZGF0YT1kYXRhLCBlbmRfc3RyZWFtPVRydWUpCi0gICAgICAgIHNlbGYudHJhbnNtaXQoKQot
Ci0gICAgYXN5bmMgZGVmIHJlY3Yoc2VsZikgLT4gc3RyOgotICAgICAgICAiIiIKLSAgICAgICAg
UmVjZWl2ZSB0aGUgbmV4dCBtZXNzYWdlLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIGF3
YWl0IHNlbGYucXVldWUuZ2V0KCkKLQotICAgIGFzeW5jIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2U6
IHN0cikgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFNlbmQgYSBtZXNzYWdlLgotICAg
ICAgICAiIiIKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobWVzc2FnZSwgc3RyKQotCi0gICAg
ICAgIGRhdGEgPSBzZWxmLndlYnNvY2tldC5zZW5kKHdzcHJvdG8uZXZlbnRzLlRleHRNZXNzYWdl
KGRhdGE9bWVzc2FnZSkpCi0gICAgICAgIHNlbGYuaHR0cC5zZW5kX2RhdGEoc3RyZWFtX2lkPXNl
bGYuc3RyZWFtX2lkLCBkYXRhPWRhdGEsIGVuZF9zdHJlYW09RmFsc2UpCi0gICAgICAgIHNlbGYu
dHJhbnNtaXQoKQotCi0gICAgZGVmIGh0dHBfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IEgz
RXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIEhlYWRlcnNSZWNl
aXZlZCk6Ci0gICAgICAgICAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiBldmVudC5oZWFkZXJzOgot
ICAgICAgICAgICAgICAgIGlmIGhlYWRlciA9PSBiInNlYy13ZWJzb2NrZXQtcHJvdG9jb2wiOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnByb3RvY29sID0gdmFsdWUuZGVjb2RlKCkKLSAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAg
c2VsZi53ZWJzb2NrZXQucmVjZWl2ZV9kYXRhKGV2ZW50LmRhdGEpCi0KLSAgICAgICAgZm9yIHdz
X2V2ZW50IGluIHNlbGYud2Vic29ja2V0LmV2ZW50cygpOgotICAgICAgICAgICAgc2VsZi53ZWJz
b2NrZXRfZXZlbnRfcmVjZWl2ZWQod3NfZXZlbnQpCi0KLSAgICBkZWYgd2Vic29ja2V0X2V2ZW50
X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiB3c3Byb3RvLmV2ZW50cy5FdmVudCkgLT4gTm9uZToKLSAg
ICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgd3Nwcm90by5ldmVudHMuVGV4dE1lc3NhZ2UpOgot
ICAgICAgICAgICAgc2VsZi5xdWV1ZS5wdXRfbm93YWl0KGV2ZW50LmRhdGEpCi0KLQotY2xhc3Mg
SHR0cENsaWVudChRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgotICAgICAgICBzdXBlcigpLl9faW5pdF9fKCph
cmdzLCAqKmt3YXJncykKLQotICAgICAgICBzZWxmLnB1c2hlczogRGljdFtpbnQsIERlcXVlW0gz
RXZlbnRdXSA9IHt9Ci0gICAgICAgIHNlbGYuX2h0dHA6IE9wdGlvbmFsW0h0dHBDb25uZWN0aW9u
XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVxdWVzdF9ldmVudHM6IERpY3RbaW50LCBEZXF1ZVtI
M0V2ZW50XV0gPSB7fQotICAgICAgICBzZWxmLl9yZXF1ZXN0X3dhaXRlcjogRGljdFtpbnQsIGFz
eW5jaW8uRnV0dXJlW0RlcXVlW0gzRXZlbnRdXV0gPSB7fQotICAgICAgICBzZWxmLl93ZWJzb2Nr
ZXRzOiBEaWN0W2ludCwgV2ViU29ja2V0XSA9IHt9Ci0KLSAgICAgICAgaWYgc2VsZi5fcXVpYy5j
b25maWd1cmF0aW9uLmFscG5fcHJvdG9jb2xzWzBdLnN0YXJ0c3dpdGgoImhxLSIpOgotICAgICAg
ICAgICAgc2VsZi5faHR0cCA9IEgwQ29ubmVjdGlvbihzZWxmLl9xdWljKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5faHR0cCA9IEgzQ29ubmVjdGlvbihzZWxmLl9xdWljKQotCi0g
ICAgYXN5bmMgZGVmIGdldChzZWxmLCB1cmw6IHN0ciwgaGVhZGVyczogRGljdCA9IHt9KSAtPiBE
ZXF1ZVtIM0V2ZW50XToKLSAgICAgICAgIiIiCi0gICAgICAgIFBlcmZvcm0gYSBHRVQgcmVxdWVz
dC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBhd2FpdCBzZWxmLl9yZXF1ZXN0KAotICAg
ICAgICAgICAgSHR0cFJlcXVlc3QobWV0aG9kPSJHRVQiLCB1cmw9VVJMKHVybCksIGhlYWRlcnM9
aGVhZGVycykKLSAgICAgICAgKQotCi0gICAgYXN5bmMgZGVmIHBvc3Qoc2VsZiwgdXJsOiBzdHIs
IGRhdGE6IGJ5dGVzLCBoZWFkZXJzOiBEaWN0ID0ge30pIC0+IERlcXVlW0gzRXZlbnRdOgotICAg
ICAgICAiIiIKLSAgICAgICAgUGVyZm9ybSBhIFBPU1QgcmVxdWVzdC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHJldHVybiBhd2FpdCBzZWxmLl9yZXF1ZXN0KAotICAgICAgICAgICAgSHR0cFJlcXVl
c3QobWV0aG9kPSJQT1NUIiwgdXJsPVVSTCh1cmwpLCBjb250ZW50PWRhdGEsIGhlYWRlcnM9aGVh
ZGVycykKLSAgICAgICAgKQotCi0gICAgYXN5bmMgZGVmIHdlYnNvY2tldChzZWxmLCB1cmw6IHN0
ciwgc3VicHJvdG9jb2xzOiBMaXN0W3N0cl0gPSBbXSkgLT4gV2ViU29ja2V0OgotICAgICAgICAi
IiIKLSAgICAgICAgT3BlbiBhIFdlYlNvY2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJlcXVl
c3QgPSBIdHRwUmVxdWVzdChtZXRob2Q9IkNPTk5FQ1QiLCB1cmw9VVJMKHVybCkpCi0gICAgICAg
IHN0cmVhbV9pZCA9IHNlbGYuX3F1aWMuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0g
ICAgICAgIHdlYnNvY2tldCA9IFdlYlNvY2tldCgKLSAgICAgICAgICAgIGh0dHA9c2VsZi5faHR0
cCwgc3RyZWFtX2lkPXN0cmVhbV9pZCwgdHJhbnNtaXQ9c2VsZi50cmFuc21pdAotICAgICAgICAp
Ci0KLSAgICAgICAgc2VsZi5fd2Vic29ja2V0c1tzdHJlYW1faWRdID0gd2Vic29ja2V0Ci0KLSAg
ICAgICAgaGVhZGVycyA9IFsKLSAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkNPTk5FQ1QiKSwK
LSAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAoYiI6YXV0
aG9yaXR5IiwgcmVxdWVzdC51cmwuYXV0aG9yaXR5LmVuY29kZSgpKSwKLSAgICAgICAgICAgIChi
IjpwYXRoIiwgcmVxdWVzdC51cmwuZnVsbF9wYXRoLmVuY29kZSgpKSwKLSAgICAgICAgICAgIChi
Ijpwcm90b2NvbCIsIGIid2Vic29ja2V0IiksCi0gICAgICAgICAgICAoYiJ1c2VyLWFnZW50Iiwg
VVNFUl9BR0VOVC5lbmNvZGUoKSksCi0gICAgICAgICAgICAoYiJzZWMtd2Vic29ja2V0LXZlcnNp
b24iLCBiIjEzIiksCi0gICAgICAgIF0KLSAgICAgICAgaWYgc3VicHJvdG9jb2xzOgotICAgICAg
ICAgICAgaGVhZGVycy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgKGIic2VjLXdlYnNvY2tldC1w
cm90b2NvbCIsICIsICIuam9pbihzdWJwcm90b2NvbHMpLmVuY29kZSgpKQotICAgICAgICAgICAg
KQotICAgICAgICBzZWxmLl9odHRwLnNlbmRfaGVhZGVycyhzdHJlYW1faWQ9c3RyZWFtX2lkLCBo
ZWFkZXJzPWhlYWRlcnMpCi0KLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICAgICAgcmV0
dXJuIHdlYnNvY2tldAotCi0gICAgZGVmIGh0dHBfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6
IEgzRXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIChIZWFkZXJz
UmVjZWl2ZWQsIERhdGFSZWNlaXZlZCkpOgotICAgICAgICAgICAgc3RyZWFtX2lkID0gZXZlbnQu
c3RyZWFtX2lkCi0gICAgICAgICAgICBpZiBzdHJlYW1faWQgaW4gc2VsZi5fcmVxdWVzdF9ldmVu
dHM6Ci0gICAgICAgICAgICAgICAgIyBodHRwCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dF9ldmVudHNbZXZlbnQuc3RyZWFtX2lkXS5hcHBlbmQoZXZlbnQpCi0gICAgICAgICAgICAgICAg
aWYgZXZlbnQuc3RyZWFtX2VuZGVkOgotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3dhaXRl
ciA9IHNlbGYuX3JlcXVlc3Rfd2FpdGVyLnBvcChzdHJlYW1faWQpCi0gICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3Rfd2FpdGVyLnNldF9yZXN1bHQoc2VsZi5fcmVxdWVzdF9ldmVudHMucG9wKHN0
cmVhbV9pZCkpCi0KLSAgICAgICAgICAgIGVsaWYgc3RyZWFtX2lkIGluIHNlbGYuX3dlYnNvY2tl
dHM6Ci0gICAgICAgICAgICAgICAgIyB3ZWJzb2NrZXQKLSAgICAgICAgICAgICAgICB3ZWJzb2Nr
ZXQgPSBzZWxmLl93ZWJzb2NrZXRzW3N0cmVhbV9pZF0KLSAgICAgICAgICAgICAgICB3ZWJzb2Nr
ZXQuaHR0cF9ldmVudF9yZWNlaXZlZChldmVudCkKLQotICAgICAgICAgICAgZWxpZiBldmVudC5w
dXNoX2lkIGluIHNlbGYucHVzaGVzOgotICAgICAgICAgICAgICAgICMgcHVzaAotICAgICAgICAg
ICAgICAgIHNlbGYucHVzaGVzW2V2ZW50LnB1c2hfaWRdLmFwcGVuZChldmVudCkKLQotICAgICAg
ICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIFB1c2hQcm9taXNlUmVjZWl2ZWQpOgotICAgICAgICAg
ICAgc2VsZi5wdXNoZXNbZXZlbnQucHVzaF9pZF0gPSBkZXF1ZSgpCi0gICAgICAgICAgICBzZWxm
LnB1c2hlc1tldmVudC5wdXNoX2lkXS5hcHBlbmQoZXZlbnQpCi0KLSAgICBkZWYgcXVpY19ldmVu
dF9yZWNlaXZlZChzZWxmLCBldmVudDogUXVpY0V2ZW50KSAtPiBOb25lOgotICAgICAgICAjIMKg
cGFzcyBldmVudCB0byB0aGUgSFRUUCBsYXllcgotICAgICAgICBpZiBzZWxmLl9odHRwIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgZm9yIGh0dHBfZXZlbnQgaW4gc2VsZi5faHR0cC5oYW5kbGVf
ZXZlbnQoZXZlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuaHR0cF9ldmVudF9yZWNlaXZlZCho
dHRwX2V2ZW50KQotCi0gICAgYXN5bmMgZGVmIF9yZXF1ZXN0KHNlbGYsIHJlcXVlc3Q6IEh0dHBS
ZXF1ZXN0KToKLSAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5fcXVpYy5nZXRfbmV4dF9hdmFpbGFi
bGVfc3RyZWFtX2lkKCkKLSAgICAgICAgc2VsZi5faHR0cC5zZW5kX2hlYWRlcnMoCi0gICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAg
ICAgICAgICAgKGIiOm1ldGhvZCIsIHJlcXVlc3QubWV0aG9kLmVuY29kZSgpKSwKLSAgICAgICAg
ICAgICAgICAoYiI6c2NoZW1lIiwgcmVxdWVzdC51cmwuc2NoZW1lLmVuY29kZSgpKSwKLSAgICAg
ICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgcmVxdWVzdC51cmwuYXV0aG9yaXR5LmVuY29kZSgp
KSwKLSAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIHJlcXVlc3QudXJsLmZ1bGxfcGF0aC5lbmNv
ZGUoKSksCi0gICAgICAgICAgICAgICAgKGIidXNlci1hZ2VudCIsIFVTRVJfQUdFTlQuZW5jb2Rl
KCkpLAotICAgICAgICAgICAgXQotICAgICAgICAgICAgKyBbKGsuZW5jb2RlKCksIHYuZW5jb2Rl
KCkpIGZvciAoaywgdikgaW4gcmVxdWVzdC5oZWFkZXJzLml0ZW1zKCldLAotICAgICAgICApCi0g
ICAgICAgIHNlbGYuX2h0dHAuc2VuZF9kYXRhKHN0cmVhbV9pZD1zdHJlYW1faWQsIGRhdGE9cmVx
dWVzdC5jb250ZW50LCBlbmRfc3RyZWFtPVRydWUpCi0KLSAgICAgICAgd2FpdGVyID0gc2VsZi5f
bG9vcC5jcmVhdGVfZnV0dXJlKCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdF9ldmVudHNbc3RyZWFt
X2lkXSA9IGRlcXVlKCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdF93YWl0ZXJbc3RyZWFtX2lkXSA9
IHdhaXRlcgotICAgICAgICBzZWxmLnRyYW5zbWl0KCkKLQotICAgICAgICByZXR1cm4gYXdhaXQg
YXN5bmNpby5zaGllbGQod2FpdGVyKQotCi0KLWFzeW5jIGRlZiBwZXJmb3JtX2h0dHBfcmVxdWVz
dCgKLSAgICBjbGllbnQ6IEh0dHBDbGllbnQsIHVybDogc3RyLCBkYXRhOiBzdHIsIGluY2x1ZGU6
IGJvb2wsIG91dHB1dF9kaXI6IE9wdGlvbmFsW3N0cl0sCi0pIC0+IE5vbmU6Ci0gICAgIyBwZXJm
b3JtIHJlcXVlc3QKLSAgICBzdGFydCA9IHRpbWUudGltZSgpCi0gICAgaWYgZGF0YSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgaHR0cF9ldmVudHMgPSBhd2FpdCBjbGllbnQucG9zdCgKLSAgICAgICAg
ICAgIHVybCwKLSAgICAgICAgICAgIGRhdGE9ZGF0YS5lbmNvZGUoKSwKLSAgICAgICAgICAgIGhl
YWRlcnM9eyJjb250ZW50LXR5cGUiOiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVk
In0sCi0gICAgICAgICkKLSAgICBlbHNlOgotICAgICAgICBodHRwX2V2ZW50cyA9IGF3YWl0IGNs
aWVudC5nZXQodXJsKQotICAgIGVsYXBzZWQgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0Ci0KLSAgICAj
IHByaW50IHNwZWVkCi0gICAgb2N0ZXRzID0gMAotICAgIGZvciBodHRwX2V2ZW50IGluIGh0dHBf
ZXZlbnRzOgotICAgICAgICBpZiBpc2luc3RhbmNlKGh0dHBfZXZlbnQsIERhdGFSZWNlaXZlZCk6
Ci0gICAgICAgICAgICBvY3RldHMgKz0gbGVuKGh0dHBfZXZlbnQuZGF0YSkKLSAgICBsb2dnZXIu
aW5mbygKLSAgICAgICAgIlJlY2VpdmVkICVkIGJ5dGVzIGluICUuMWYgcyAoJS4zZiBNYnBzKSIK
LSAgICAgICAgJSAob2N0ZXRzLCBlbGFwc2VkLCBvY3RldHMgKiA4IC8gZWxhcHNlZCAvIDEwMDAw
MDApCi0gICAgKQotCi0gICAgIyBvdXRwdXQgcmVzcG9uc2UKLSAgICBpZiBvdXRwdXRfZGlyIGlz
IG5vdCBOb25lOgotICAgICAgICBvdXRwdXRfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAgICAg
ICAgIG91dHB1dF9kaXIsIG9zLnBhdGguYmFzZW5hbWUodXJscGFyc2UodXJsKS5wYXRoKSBvciAi
aW5kZXguaHRtbCIKLSAgICAgICAgKQotICAgICAgICB3aXRoIG9wZW4ob3V0cHV0X3BhdGgsICJ3
YiIpIGFzIG91dHB1dF9maWxlOgotICAgICAgICAgICAgZm9yIGh0dHBfZXZlbnQgaW4gaHR0cF9l
dmVudHM6Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShodHRwX2V2ZW50LCBIZWFkZXJz
UmVjZWl2ZWQpIGFuZCBpbmNsdWRlOgotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzID0gYiIi
Ci0gICAgICAgICAgICAgICAgICAgIGZvciBrLCB2IGluIGh0dHBfZXZlbnQuaGVhZGVyczoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgKz0gayArIGIiOiAiICsgdiArIGIiXHJcbiIK
LSAgICAgICAgICAgICAgICAgICAgaWYgaGVhZGVyczoKLSAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dF9maWxlLndyaXRlKGhlYWRlcnMgKyBiIlxyXG4iKQotICAgICAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShodHRwX2V2ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAg
ICAgICBvdXRwdXRfZmlsZS53cml0ZShodHRwX2V2ZW50LmRhdGEpCi0KLQotZGVmIHNhdmVfc2Vz
c2lvbl90aWNrZXQodGlja2V0OiBTZXNzaW9uVGlja2V0KSAtPiBOb25lOgotICAgICIiIgotICAg
IENhbGxiYWNrIHdoaWNoIGlzIGludm9rZWQgYnkgdGhlIFRMUyBlbmdpbmUgd2hlbiBhIG5ldyBz
ZXNzaW9uIHRpY2tldAotICAgIGlzIHJlY2VpdmVkLgotICAgICIiIgotICAgIGxvZ2dlci5pbmZv
KCJOZXcgc2Vzc2lvbiB0aWNrZXQgcmVjZWl2ZWQiKQotICAgIGlmIGFyZ3Muc2Vzc2lvbl90aWNr
ZXQ6Ci0gICAgICAgIHdpdGggb3BlbihhcmdzLnNlc3Npb25fdGlja2V0LCAid2IiKSBhcyBmcDoK
LSAgICAgICAgICAgIHBpY2tsZS5kdW1wKHRpY2tldCwgZnApCi0KLQotYXN5bmMgZGVmIHJ1bigK
LSAgICBjb25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlvbiwKLSAgICB1cmxzOiBMaXN0W3N0
cl0sCi0gICAgZGF0YTogc3RyLAotICAgIGluY2x1ZGU6IGJvb2wsCi0gICAgb3V0cHV0X2Rpcjog
T3B0aW9uYWxbc3RyXSwKLSAgICBsb2NhbF9wb3J0OiBpbnQsCi0pIC0+IE5vbmU6Ci0gICAgIyBw
YXJzZSBVUkwKLSAgICBwYXJzZWQgPSB1cmxwYXJzZSh1cmxzWzBdKQotICAgIGFzc2VydCBwYXJz
ZWQuc2NoZW1lIGluICgKLSAgICAgICAgImh0dHBzIiwKLSAgICAgICAgIndzcyIsCi0gICAgKSwg
Ik9ubHkgaHR0cHM6Ly8gb3Igd3NzOi8vIFVSTHMgYXJlIHN1cHBvcnRlZC4iCi0gICAgaWYgIjoi
IGluIHBhcnNlZC5uZXRsb2M6Ci0gICAgICAgIGhvc3QsIHBvcnRfc3RyID0gcGFyc2VkLm5ldGxv
Yy5zcGxpdCgiOiIpCi0gICAgICAgIHBvcnQgPSBpbnQocG9ydF9zdHIpCi0gICAgZWxzZToKLSAg
ICAgICAgaG9zdCA9IHBhcnNlZC5uZXRsb2MKLSAgICAgICAgcG9ydCA9IDQ0MwotCi0gICAgYXN5
bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBob3N0LAotICAgICAgICBwb3J0LAotICAgICAgICBj
b25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgIGNyZWF0ZV9wcm90b2NvbD1IdHRw
Q2xpZW50LAotICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXNhdmVfc2Vzc2lvbl90aWNr
ZXQsCi0gICAgICAgIGxvY2FsX3BvcnQ9bG9jYWxfcG9ydCwKLSAgICApIGFzIGNsaWVudDoKLSAg
ICAgICAgY2xpZW50ID0gY2FzdChIdHRwQ2xpZW50LCBjbGllbnQpCi0KLSAgICAgICAgaWYgcGFy
c2VkLnNjaGVtZSA9PSAid3NzIjoKLSAgICAgICAgICAgIHdzID0gYXdhaXQgY2xpZW50LndlYnNv
Y2tldCh1cmxzWzBdLCBzdWJwcm90b2NvbHM9WyJjaGF0IiwgInN1cGVyY2hhdCJdKQotCi0gICAg
ICAgICAgICAjIHNlbmQgc29tZSBtZXNzYWdlcyBhbmQgcmVjZWl2ZSByZXBseQotICAgICAgICAg
ICAgZm9yIGkgaW4gcmFuZ2UoMik6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJIZWxsbyB7
fSwgV2ViU29ja2V0ISIuZm9ybWF0KGkpCi0gICAgICAgICAgICAgICAgcHJpbnQoIj4gIiArIG1l
c3NhZ2UpCi0gICAgICAgICAgICAgICAgYXdhaXQgd3Muc2VuZChtZXNzYWdlKQotCi0gICAgICAg
ICAgICAgICAgbWVzc2FnZSA9IGF3YWl0IHdzLnJlY3YoKQotICAgICAgICAgICAgICAgIHByaW50
KCI8ICIgKyBtZXNzYWdlKQotCi0gICAgICAgICAgICBhd2FpdCB3cy5jbG9zZSgpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAjIHBlcmZvcm0gcmVxdWVzdAotICAgICAgICAgICAgY29yb3Mg
PSBbCi0gICAgICAgICAgICAgICAgcGVyZm9ybV9odHRwX3JlcXVlc3QoCi0gICAgICAgICAgICAg
ICAgICAgIGNsaWVudD1jbGllbnQsCi0gICAgICAgICAgICAgICAgICAgIHVybD11cmwsCi0gICAg
ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgaW5jbHVkZT1p
bmNsdWRlLAotICAgICAgICAgICAgICAgICAgICBvdXRwdXRfZGlyPW91dHB1dF9kaXIsCi0gICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGZvciB1cmwgaW4gdXJscwotICAgICAgICAg
ICAgXQotICAgICAgICAgICAgYXdhaXQgYXN5bmNpby5nYXRoZXIoKmNvcm9zKQotCi0KLWlmIF9f
bmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgZGVmYXVsdHMgPSBRdWljQ29uZmlndXJhdGlvbihp
c19jbGllbnQ9VHJ1ZSkKLQotICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRl
c2NyaXB0aW9uPSJIVFRQLzMgY2xpZW50IikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAidXJsIiwgdHlwZT1zdHIsIG5hcmdzPSIrIiwgaGVscD0idGhlIFVSTCB0byBxdWVyeSAo
bXVzdCBiZSBIVFRQUykiCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAg
ICItLWNhLWNlcnRzIiwgdHlwZT1zdHIsIGhlbHA9ImxvYWQgQ0EgY2VydGlmaWNhdGVzIGZyb20g
dGhlIHNwZWNpZmllZCBmaWxlIgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLWQiLCAiLS1kYXRhIiwgdHlwZT1zdHIsIGhlbHA9InNlbmQgdGhlIHNwZWNpZmllZCBk
YXRhIGluIGEgUE9TVCByZXF1ZXN0IgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAot
ICAgICAgICAiLWkiLAotICAgICAgICAiLS1pbmNsdWRlIiwKLSAgICAgICAgYWN0aW9uPSJzdG9y
ZV90cnVlIiwKLSAgICAgICAgaGVscD0iaW5jbHVkZSB0aGUgSFRUUCByZXNwb25zZSBoZWFkZXJz
IGluIHRoZSBvdXRwdXQiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAg
ICAiLS1tYXgtZGF0YSIsCi0gICAgICAgIHR5cGU9aW50LAotICAgICAgICBoZWxwPSJjb25uZWN0
aW9uLXdpZGUgZmxvdyBjb250cm9sIGxpbWl0IChkZWZhdWx0OiAlZCkiICUgZGVmYXVsdHMubWF4
X2RhdGEsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLW1heC1z
dHJlYW0tZGF0YSIsCi0gICAgICAgIHR5cGU9aW50LAotICAgICAgICBoZWxwPSJwZXItc3RyZWFt
IGZsb3cgY29udHJvbCBsaW1pdCAoZGVmYXVsdDogJWQpIiAlIGRlZmF1bHRzLm1heF9zdHJlYW1f
ZGF0YSwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1rIiwKLSAg
ICAgICAgIi0taW5zZWN1cmUiLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAg
ICBoZWxwPSJkbyBub3QgdmFsaWRhdGUgc2VydmVyIGNlcnRpZmljYXRlIiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1sZWdhY3ktaHR0cCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGhlbHA9InVzZSBIVFRQLzAuOSIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAg
Ii0tb3V0cHV0LWRpciIsIHR5cGU9c3RyLCBoZWxwPSJ3cml0ZSBkb3dubG9hZGVkIGZpbGVzIHRv
IHRoaXMgZGlyZWN0b3J5IiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAg
ICAgIi1xIiwgIi0tcXVpYy1sb2ciLCB0eXBlPXN0ciwgaGVscD0ibG9nIFFVSUMgZXZlbnRzIHRv
IGEgZmlsZSBpbiBRTE9HIGZvcm1hdCIKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgK
LSAgICAgICAgIi1sIiwKLSAgICAgICAgIi0tc2VjcmV0cy1sb2ciLAotICAgICAgICB0eXBlPXN0
ciwKLSAgICAgICAgaGVscD0ibG9nIHNlY3JldHMgdG8gYSBmaWxlLCBmb3IgdXNlIHdpdGggV2ly
ZXNoYXJrIiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1zIiwK
LSAgICAgICAgIi0tc2Vzc2lvbi10aWNrZXQiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAg
aGVscD0icmVhZCBhbmQgd3JpdGUgc2Vzc2lvbiB0aWNrZXQgZnJvbSB0aGUgc3BlY2lmaWVkIGZp
bGUiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXYiLCAiLS12
ZXJib3NlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iaW5jcmVhc2UgbG9nZ2luZyB2ZXJi
b3NpdHkiCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLWxvY2Fs
LXBvcnQiLCB0eXBlPWludCwgZGVmYXVsdD0wLCBoZWxwPSJsb2NhbCBwb3J0IHRvIGJpbmQgZm9y
IGNvbm5lY3Rpb25zIiwKLSAgICApCi0KLSAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQot
Ci0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgZm9ybWF0PSIlKGFzY3RpbWUpcyAl
KGxldmVsbmFtZSlzICUobmFtZSlzICUobWVzc2FnZSlzIiwKLSAgICAgICAgbGV2ZWw9bG9nZ2lu
Zy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxzZSBsb2dnaW5nLklORk8sCi0gICAgKQotCi0gICAg
aWYgYXJncy5vdXRwdXRfZGlyIGlzIG5vdCBOb25lIGFuZCBub3Qgb3MucGF0aC5pc2Rpcihhcmdz
Lm91dHB1dF9kaXIpOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVzIGlzIG5vdCBhIGRpcmVj
dG9yeSIgJSBhcmdzLm91dHB1dF9kaXIpCi0KLSAgICAjIHByZXBhcmUgY29uZmlndXJhdGlvbgot
ICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgaXNfY2xpZW50
PVRydWUsIGFscG5fcHJvdG9jb2xzPUgwX0FMUE4gaWYgYXJncy5sZWdhY3lfaHR0cCBlbHNlIEgz
X0FMUE4KLSAgICApCi0gICAgaWYgYXJncy5jYV9jZXJ0czoKLSAgICAgICAgY29uZmlndXJhdGlv
bi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoYXJncy5jYV9jZXJ0cykKLSAgICBpZiBhcmdzLmluc2Vj
dXJlOgotICAgICAgICBjb25maWd1cmF0aW9uLnZlcmlmeV9tb2RlID0gc3NsLkNFUlRfTk9ORQot
ICAgIGlmIGFyZ3MubWF4X2RhdGE6Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24ubWF4X2RhdGEgPSBh
cmdzLm1heF9kYXRhCi0gICAgaWYgYXJncy5tYXhfc3RyZWFtX2RhdGE6Ci0gICAgICAgIGNvbmZp
Z3VyYXRpb24ubWF4X3N0cmVhbV9kYXRhID0gYXJncy5tYXhfc3RyZWFtX2RhdGEKLSAgICBpZiBh
cmdzLnF1aWNfbG9nOgotICAgICAgICBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyID0gUXVpY0xv
Z2dlcigpCi0gICAgaWYgYXJncy5zZWNyZXRzX2xvZzoKLSAgICAgICAgY29uZmlndXJhdGlvbi5z
ZWNyZXRzX2xvZ19maWxlID0gb3BlbihhcmdzLnNlY3JldHNfbG9nLCAiYSIpCi0gICAgaWYgYXJn
cy5zZXNzaW9uX3RpY2tldDoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGFy
Z3Muc2Vzc2lvbl90aWNrZXQsICJyYiIpIGFzIGZwOgotICAgICAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb24uc2Vzc2lvbl90aWNrZXQgPSBwaWNrbGUubG9hZChmcCkKLSAgICAgICAgZXhjZXB0IEZp
bGVOb3RGb3VuZEVycm9yOgotICAgICAgICAgICAgcGFzcwotCi0gICAgaWYgdXZsb29wIGlzIG5v
dCBOb25lOgotICAgICAgICB1dmxvb3AuaW5zdGFsbCgpCi0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0
X2V2ZW50X2xvb3AoKQotICAgIHRyeToKLSAgICAgICAgbG9vcC5ydW5fdW50aWxfY29tcGxldGUo
Ci0gICAgICAgICAgICBydW4oCi0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj1jb25maWd1
cmF0aW9uLAotICAgICAgICAgICAgICAgIHVybHM9YXJncy51cmwsCi0gICAgICAgICAgICAgICAg
ZGF0YT1hcmdzLmRhdGEsCi0gICAgICAgICAgICAgICAgaW5jbHVkZT1hcmdzLmluY2x1ZGUsCi0g
ICAgICAgICAgICAgICAgb3V0cHV0X2Rpcj1hcmdzLm91dHB1dF9kaXIsCi0gICAgICAgICAgICAg
ICAgbG9jYWxfcG9ydD1hcmdzLmxvY2FsX3BvcnQsCi0gICAgICAgICAgICApCi0gICAgICAgICkK
LSAgICBmaW5hbGx5OgotICAgICAgICBpZiBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgd2l0aCBvcGVuKGFyZ3MucXVpY19sb2csICJ3IikgYXMgbG9n
Z2VyX2ZwOgotICAgICAgICAgICAgICAgIGpzb24uZHVtcChjb25maWd1cmF0aW9uLnF1aWNfbG9n
Z2VyLnRvX2RpY3QoKSwgbG9nZ2VyX2ZwLCBpbmRlbnQ9NCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9leGFtcGxlcy9odHRwM19zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0
cDNfc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTViMDRiMDNjMTU0
M2YzNjBkMDQ2ODg2OTgzNTM2Y2UyNWVhYTdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odHRwM19zZXJ2ZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0ODQgKzAsMCBAQAotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQg
YXN5bmNpbwotaW1wb3J0IGltcG9ydGxpYgotaW1wb3J0IGpzb24KLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgb3MKLWltcG9ydCB0aW1lCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotZnJv
bSBlbWFpbC51dGlscyBpbXBvcnQgZm9ybWF0ZGF0ZQotZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxh
YmxlLCBEZXF1ZSwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9uLCBjYXN0Ci0KLWltcG9ydCB3
c3Byb3RvCi1pbXBvcnQgd3Nwcm90by5ldmVudHMKLQotaW1wb3J0IGFpb3F1aWMKLWZyb20gYWlv
cXVpYy5hc3luY2lvIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3RvY29sLCBzZXJ2ZQotZnJvbSBh
aW9xdWljLmgwLmNvbm5lY3Rpb24gaW1wb3J0IEgwX0FMUE4sIEgwQ29ubmVjdGlvbgotZnJvbSBh
aW9xdWljLmgzLmNvbm5lY3Rpb24gaW1wb3J0IEgzX0FMUE4sIEgzQ29ubmVjdGlvbgotZnJvbSBh
aW9xdWljLmgzLmV2ZW50cyBpbXBvcnQgRGF0YVJlY2VpdmVkLCBIM0V2ZW50LCBIZWFkZXJzUmVj
ZWl2ZWQKLWZyb20gYWlvcXVpYy5oMy5leGNlcHRpb25zIGltcG9ydCBOb0F2YWlsYWJsZVB1c2hJ
REVycm9yCi1mcm9tIGFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmln
dXJhdGlvbgotZnJvbSBhaW9xdWljLnF1aWMuZXZlbnRzIGltcG9ydCBEYXRhZ3JhbUZyYW1lUmVj
ZWl2ZWQsIFByb3RvY29sTmVnb3RpYXRlZCwgUXVpY0V2ZW50Ci1mcm9tIGFpb3F1aWMucXVpYy5s
b2dnZXIgaW1wb3J0IFF1aWNMb2dnZXIsIFF1aWNMb2dnZXJUcmFjZQotZnJvbSBhaW9xdWljLnRs
cyBpbXBvcnQgU2Vzc2lvblRpY2tldAotCi10cnk6Ci0gICAgaW1wb3J0IHV2bG9vcAotZXhjZXB0
IEltcG9ydEVycm9yOgotICAgIHV2bG9vcCA9IE5vbmUKLQotQXNnaUFwcGxpY2F0aW9uID0gQ2Fs
bGFibGUKLUh0dHBDb25uZWN0aW9uID0gVW5pb25bSDBDb25uZWN0aW9uLCBIM0Nvbm5lY3Rpb25d
Ci0KLVNFUlZFUl9OQU1FID0gImFpb3F1aWMvIiArIGFpb3F1aWMuX192ZXJzaW9uX18KLQotCi1j
bGFzcyBIdHRwUmVxdWVzdEhhbmRsZXI6Ci0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxm
LAotICAgICAgICAqLAotICAgICAgICBhdXRob3JpdHk6IGJ5dGVzLAotICAgICAgICBjb25uZWN0
aW9uOiBIdHRwQ29ubmVjdGlvbiwKLSAgICAgICAgcHJvdG9jb2w6IFF1aWNDb25uZWN0aW9uUHJv
dG9jb2wsCi0gICAgICAgIHNjb3BlOiBEaWN0LAotICAgICAgICBzdHJlYW1fZW5kZWQ6IGJvb2ws
Ci0gICAgICAgIHN0cmVhbV9pZDogaW50LAotICAgICAgICB0cmFuc21pdDogQ2FsbGFibGVbW10s
IE5vbmVdLAotICAgICkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5hdXRob3JpdHkgPSBhdXRob3Jp
dHkKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLnBy
b3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2VsZi5xdWV1ZTogYXN5bmNpby5RdWV1ZVtEaWN0
XSA9IGFzeW5jaW8uUXVldWUoKQotICAgICAgICBzZWxmLnNjb3BlID0gc2NvcGUKLSAgICAgICAg
c2VsZi5zdHJlYW1faWQgPSBzdHJlYW1faWQKLSAgICAgICAgc2VsZi50cmFuc21pdCA9IHRyYW5z
bWl0Ci0KLSAgICAgICAgaWYgc3RyZWFtX2VuZGVkOgotICAgICAgICAgICAgc2VsZi5xdWV1ZS5w
dXRfbm93YWl0KHsidHlwZSI6ICJodHRwLnJlcXVlc3QifSkKLQotICAgIGRlZiBodHRwX2V2ZW50
X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBIM0V2ZW50KSAtPiBOb25lOgotICAgICAgICBpZiBpc2lu
c3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgc2VsZi5xdWV1ZS5wdXRf
bm93YWl0KAotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAi
aHR0cC5yZXF1ZXN0IiwKLSAgICAgICAgICAgICAgICAgICAgImJvZHkiOiBldmVudC5kYXRhLAot
ICAgICAgICAgICAgICAgICAgICAibW9yZV9ib2R5Ijogbm90IGV2ZW50LnN0cmVhbV9lbmRlZCwK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICApCi0gICAgICAgIGVsaWYgaXNpbnN0YW5j
ZShldmVudCwgSGVhZGVyc1JlY2VpdmVkKSBhbmQgZXZlbnQuc3RyZWFtX2VuZGVkOgotICAgICAg
ICAgICAgc2VsZi5xdWV1ZS5wdXRfbm93YWl0KAotICAgICAgICAgICAgICAgIHsidHlwZSI6ICJo
dHRwLnJlcXVlc3QiLCAiYm9keSI6IGIiIiwgIm1vcmVfYm9keSI6IEZhbHNlfQotICAgICAgICAg
ICAgKQotCi0gICAgYXN5bmMgZGVmIHJ1bl9hc2dpKHNlbGYsIGFwcDogQXNnaUFwcGxpY2F0aW9u
KSAtPiBOb25lOgotICAgICAgICBhd2FpdCBhcHBsaWNhdGlvbihzZWxmLnNjb3BlLCBzZWxmLnJl
Y2VpdmUsIHNlbGYuc2VuZCkKLQotICAgIGFzeW5jIGRlZiByZWNlaXZlKHNlbGYpIC0+IERpY3Q6
Ci0gICAgICAgIHJldHVybiBhd2FpdCBzZWxmLnF1ZXVlLmdldCgpCi0KLSAgICBhc3luYyBkZWYg
c2VuZChzZWxmLCBtZXNzYWdlOiBEaWN0KSAtPiBOb25lOgotICAgICAgICBpZiBtZXNzYWdlWyJ0
eXBlIl0gPT0gImh0dHAucmVzcG9uc2Uuc3RhcnQiOgotICAgICAgICAgICAgc2VsZi5jb25uZWN0
aW9uLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c2VsZi5zdHJlYW1f
aWQsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjpz
dGF0dXMiLCBzdHIobWVzc2FnZVsic3RhdHVzIl0pLmVuY29kZSgpKSwKLSAgICAgICAgICAgICAg
ICAgICAgKGIic2VydmVyIiwgU0VSVkVSX05BTUUuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAg
ICAgICAoYiJkYXRlIiwgZm9ybWF0ZGF0ZSh0aW1lLnRpbWUoKSwgdXNlZ210PVRydWUpLmVuY29k
ZSgpKSwKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgKyBbKGssIHYpIGZvciBr
LCB2IGluIG1lc3NhZ2VbImhlYWRlcnMiXV0sCi0gICAgICAgICAgICApCi0gICAgICAgIGVsaWYg
bWVzc2FnZVsidHlwZSJdID09ICJodHRwLnJlc3BvbnNlLmJvZHkiOgotICAgICAgICAgICAgc2Vs
Zi5jb25uZWN0aW9uLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c2VsZi5z
dHJlYW1faWQsCi0gICAgICAgICAgICAgICAgZGF0YT1tZXNzYWdlLmdldCgiYm9keSIsIGIiIiks
Ci0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1ub3QgbWVzc2FnZS5nZXQoIm1vcmVfYm9keSIs
IEZhbHNlKSwKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxpZiBtZXNzYWdlWyJ0eXBlIl0gPT0g
Imh0dHAucmVzcG9uc2UucHVzaCIgYW5kIGlzaW5zdGFuY2UoCi0gICAgICAgICAgICBzZWxmLmNv
bm5lY3Rpb24sIEgzQ29ubmVjdGlvbgotICAgICAgICApOgotICAgICAgICAgICAgcmVxdWVzdF9o
ZWFkZXJzID0gWwotICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAg
ICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgKGIiOmF1
dGhvcml0eSIsIHNlbGYuYXV0aG9yaXR5KSwKLSAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIG1l
c3NhZ2VbInBhdGgiXS5lbmNvZGUoKSksCi0gICAgICAgICAgICBdICsgWyhrLCB2KSBmb3Igaywg
diBpbiBtZXNzYWdlWyJoZWFkZXJzIl1dCi0KLSAgICAgICAgICAgICMgc2VuZCBwdXNoIHByb21p
c2UKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwdXNoX3N0cmVhbV9pZCA9IHNl
bGYuY29ubmVjdGlvbi5zZW5kX3B1c2hfcHJvbWlzZSgKLSAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtX2lkPXNlbGYuc3RyZWFtX2lkLCBoZWFkZXJzPXJlcXVlc3RfaGVhZGVycwotICAgICAgICAg
ICAgICAgICkKLSAgICAgICAgICAgIGV4Y2VwdCBOb0F2YWlsYWJsZVB1c2hJREVycm9yOgotICAg
ICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAjIGZha2UgcmVxdWVzdAotICAgICAg
ICAgICAgY2FzdChIdHRwU2VydmVyUHJvdG9jb2wsIHNlbGYucHJvdG9jb2wpLmh0dHBfZXZlbnRf
cmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAg
ICAgICAgICBoZWFkZXJzPXJlcXVlc3RfaGVhZGVycywgc3RyZWFtX2VuZGVkPVRydWUsIHN0cmVh
bV9pZD1wdXNoX3N0cmVhbV9pZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLSAg
ICAgICAgc2VsZi50cmFuc21pdCgpCi0KLQotY2xhc3MgV2ViU29ja2V0SGFuZGxlcjoKLSAgICBk
ZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsCi0gICAgICAgICosCi0gICAgICAgIGNvbm5lY3Rp
b246IEh0dHBDb25uZWN0aW9uLAotICAgICAgICBzY29wZTogRGljdCwKLSAgICAgICAgc3RyZWFt
X2lkOiBpbnQsCi0gICAgICAgIHRyYW5zbWl0OiBDYWxsYWJsZVtbXSwgTm9uZV0sCi0gICAgKSAt
PiBOb25lOgotICAgICAgICBzZWxmLmNsb3NlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuY29ubmVj
dGlvbiA9IGNvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5odHRwX2V2ZW50X3F1ZXVlOiBEZXF1ZVtE
YXRhUmVjZWl2ZWRdID0gZGVxdWUoKQotICAgICAgICBzZWxmLnF1ZXVlOiBhc3luY2lvLlF1ZXVl
W0RpY3RdID0gYXN5bmNpby5RdWV1ZSgpCi0gICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQotICAg
ICAgICBzZWxmLnN0cmVhbV9pZCA9IHN0cmVhbV9pZAotICAgICAgICBzZWxmLnRyYW5zbWl0ID0g
dHJhbnNtaXQKLSAgICAgICAgc2VsZi53ZWJzb2NrZXQ6IE9wdGlvbmFsW3dzcHJvdG8uQ29ubmVj
dGlvbl0gPSBOb25lCi0KLSAgICBkZWYgaHR0cF9ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDog
SDNFdmVudCkgLT4gTm9uZToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgRGF0YVJlY2Vp
dmVkKSBhbmQgbm90IHNlbGYuY2xvc2VkOgotICAgICAgICAgICAgaWYgc2VsZi53ZWJzb2NrZXQg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi53ZWJzb2NrZXQucmVjZWl2ZV9kYXRh
KGV2ZW50LmRhdGEpCi0KLSAgICAgICAgICAgICAgICBmb3Igd3NfZXZlbnQgaW4gc2VsZi53ZWJz
b2NrZXQuZXZlbnRzKCk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYud2Vic29ja2V0X2V2ZW50
X3JlY2VpdmVkKHdzX2V2ZW50KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAj
IGRlbGF5IGV2ZW50IHByb2Nlc3NpbmcgdW50aWwgd2UgZ2V0IGB3ZWJzb2NrZXQuYWNjZXB0YAot
ICAgICAgICAgICAgICAgICMgZnJvbSB0aGUgQVNHSSBhcHBsaWNhdGlvbgotICAgICAgICAgICAg
ICAgIHNlbGYuaHR0cF9ldmVudF9xdWV1ZS5hcHBlbmQoZXZlbnQpCi0KLSAgICBkZWYgd2Vic29j
a2V0X2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiB3c3Byb3RvLmV2ZW50cy5FdmVudCkgLT4g
Tm9uZToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgd3Nwcm90by5ldmVudHMuVGV4dE1l
c3NhZ2UpOgotICAgICAgICAgICAgc2VsZi5xdWV1ZS5wdXRfbm93YWl0KHsidHlwZSI6ICJ3ZWJz
b2NrZXQucmVjZWl2ZSIsICJ0ZXh0IjogZXZlbnQuZGF0YX0pCi0gICAgICAgIGVsaWYgaXNpbnN0
YW5jZShldmVudCwgd3Nwcm90by5ldmVudHMuTWVzc2FnZSk6Ci0gICAgICAgICAgICBzZWxmLnF1
ZXVlLnB1dF9ub3dhaXQoeyJ0eXBlIjogIndlYnNvY2tldC5yZWNlaXZlIiwgImJ5dGVzIjogZXZl
bnQuZGF0YX0pCi0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgd3Nwcm90by5ldmVudHMu
Q2xvc2VDb25uZWN0aW9uKToKLSAgICAgICAgICAgIHNlbGYucXVldWUucHV0X25vd2FpdCh7InR5
cGUiOiAid2Vic29ja2V0LmRpc2Nvbm5lY3QiLCAiY29kZSI6IGV2ZW50LmNvZGV9KQotCi0gICAg
YXN5bmMgZGVmIHJ1bl9hc2dpKHNlbGYsIGFwcDogQXNnaUFwcGxpY2F0aW9uKSAtPiBOb25lOgot
ICAgICAgICBzZWxmLnF1ZXVlLnB1dF9ub3dhaXQoeyJ0eXBlIjogIndlYnNvY2tldC5jb25uZWN0
In0pCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYXdhaXQgYXBwbGljYXRpb24oc2VsZi5z
Y29wZSwgc2VsZi5yZWNlaXZlLCBzZWxmLnNlbmQpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBpZiBub3Qgc2VsZi5jbG9zZWQ6Ci0gICAgICAgICAgICAgICAgYXdhaXQgc2VsZi5zZW5k
KHsidHlwZSI6ICJ3ZWJzb2NrZXQuY2xvc2UiLCAiY29kZSI6IDEwMDB9KQotCi0gICAgYXN5bmMg
ZGVmIHJlY2VpdmUoc2VsZikgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIGF3YWl0IHNlbGYucXVl
dWUuZ2V0KCkKLQotICAgIGFzeW5jIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2U6IERpY3QpIC0+IE5v
bmU6Ci0gICAgICAgIGRhdGEgPSBiIiIKLSAgICAgICAgZW5kX3N0cmVhbSA9IEZhbHNlCi0gICAg
ICAgIGlmIG1lc3NhZ2VbInR5cGUiXSA9PSAid2Vic29ja2V0LmFjY2VwdCI6Ci0gICAgICAgICAg
ICBzdWJwcm90b2NvbCA9IG1lc3NhZ2UuZ2V0KCJzdWJwcm90b2NvbCIpCi0KLSAgICAgICAgICAg
IHNlbGYud2Vic29ja2V0ID0gd3Nwcm90by5Db25uZWN0aW9uKHdzcHJvdG8uQ29ubmVjdGlvblR5
cGUuU0VSVkVSKQotCi0gICAgICAgICAgICBoZWFkZXJzID0gWwotICAgICAgICAgICAgICAgIChi
IjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgIChiInNlcnZlciIsIFNFUlZFUl9O
QU1FLmVuY29kZSgpKSwKLSAgICAgICAgICAgICAgICAoYiJkYXRlIiwgZm9ybWF0ZGF0ZSh0aW1l
LnRpbWUoKSwgdXNlZ210PVRydWUpLmVuY29kZSgpKSwKLSAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgIGlmIHN1YnByb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGhlYWRlcnMu
YXBwZW5kKChiInNlYy13ZWJzb2NrZXQtcHJvdG9jb2wiLCBzdWJwcm90b2NvbC5lbmNvZGUoKSkp
Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uc2VuZF9oZWFkZXJzKHN0cmVhbV9pZD1zZWxm
LnN0cmVhbV9pZCwgaGVhZGVycz1oZWFkZXJzKQotCi0gICAgICAgICAgICAjIGNvbnN1bWUgYmFj
a2xvZwotICAgICAgICAgICAgd2hpbGUgc2VsZi5odHRwX2V2ZW50X3F1ZXVlOgotICAgICAgICAg
ICAgICAgIHNlbGYuaHR0cF9ldmVudF9yZWNlaXZlZChzZWxmLmh0dHBfZXZlbnRfcXVldWUucG9w
bGVmdCgpKQotCi0gICAgICAgIGVsaWYgbWVzc2FnZVsidHlwZSJdID09ICJ3ZWJzb2NrZXQuY2xv
c2UiOgotICAgICAgICAgICAgaWYgc2VsZi53ZWJzb2NrZXQgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgZGF0YSA9IHNlbGYud2Vic29ja2V0LnNlbmQoCi0gICAgICAgICAgICAgICAgICAg
IHdzcHJvdG8uZXZlbnRzLkNsb3NlQ29ubmVjdGlvbihjb2RlPW1lc3NhZ2VbImNvZGUiXSkKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYu
Y29ubmVjdGlvbi5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1z
ZWxmLnN0cmVhbV9pZCwgaGVhZGVycz1bKGIiOnN0YXR1cyIsIGIiNDAzIildCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgZW5kX3N0cmVhbSA9IFRydWUKLSAgICAgICAgZWxpZiBtZXNz
YWdlWyJ0eXBlIl0gPT0gIndlYnNvY2tldC5zZW5kIjoKLSAgICAgICAgICAgIGlmIG1lc3NhZ2Uu
Z2V0KCJ0ZXh0IikgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYud2Vi
c29ja2V0LnNlbmQoCi0gICAgICAgICAgICAgICAgICAgIHdzcHJvdG8uZXZlbnRzLlRleHRNZXNz
YWdlKGRhdGE9bWVzc2FnZVsidGV4dCJdKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAg
IGVsaWYgbWVzc2FnZS5nZXQoImJ5dGVzIikgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
ZGF0YSA9IHNlbGYud2Vic29ja2V0LnNlbmQoCi0gICAgICAgICAgICAgICAgICAgIHdzcHJvdG8u
ZXZlbnRzLk1lc3NhZ2UoZGF0YT1tZXNzYWdlWyJieXRlcyJdKQotICAgICAgICAgICAgICAgICkK
LQotICAgICAgICBpZiBkYXRhOgotICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLnNlbmRfZGF0
YSgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c2VsZi5zdHJlYW1faWQsIGRhdGE9ZGF0YSwg
ZW5kX3N0cmVhbT1lbmRfc3RyZWFtCi0gICAgICAgICAgICApCi0gICAgICAgIGlmIGVuZF9zdHJl
YW06Ci0gICAgICAgICAgICBzZWxmLmNsb3NlZCA9IFRydWUKLSAgICAgICAgc2VsZi50cmFuc21p
dCgpCi0KLQotSGFuZGxlciA9IFVuaW9uW0h0dHBSZXF1ZXN0SGFuZGxlciwgV2ViU29ja2V0SGFu
ZGxlcl0KLQotCi1jbGFzcyBIdHRwU2VydmVyUHJvdG9jb2woUXVpY0Nvbm5lY3Rpb25Qcm90b2Nv
bCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncykgLT4gTm9uZToKLSAg
ICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCi0gICAgICAgIHNlbGYuX2hh
bmRsZXJzOiBEaWN0W2ludCwgSGFuZGxlcl0gPSB7fQotICAgICAgICBzZWxmLl9odHRwOiBPcHRp
b25hbFtIdHRwQ29ubmVjdGlvbl0gPSBOb25lCi0KLSAgICBkZWYgaHR0cF9ldmVudF9yZWNlaXZl
ZChzZWxmLCBldmVudDogSDNFdmVudCkgLT4gTm9uZToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShl
dmVudCwgSGVhZGVyc1JlY2VpdmVkKSBhbmQgZXZlbnQuc3RyZWFtX2lkIG5vdCBpbiBzZWxmLl9o
YW5kbGVyczoKLSAgICAgICAgICAgIGF1dGhvcml0eSA9IE5vbmUKLSAgICAgICAgICAgIGhlYWRl
cnMgPSBbXQotICAgICAgICAgICAgaHR0cF92ZXJzaW9uID0gIjAuOSIgaWYgaXNpbnN0YW5jZShz
ZWxmLl9odHRwLCBIMENvbm5lY3Rpb24pIGVsc2UgIjMiCi0gICAgICAgICAgICByYXdfcGF0aCA9
IGIiIgotICAgICAgICAgICAgbWV0aG9kID0gIiIKLSAgICAgICAgICAgIHByb3RvY29sID0gTm9u
ZQotICAgICAgICAgICAgZm9yIGhlYWRlciwgdmFsdWUgaW4gZXZlbnQuaGVhZGVyczoKLSAgICAg
ICAgICAgICAgICBpZiBoZWFkZXIgPT0gYiI6YXV0aG9yaXR5IjoKLSAgICAgICAgICAgICAgICAg
ICAgYXV0aG9yaXR5ID0gdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQo
KGIiaG9zdCIsIHZhbHVlKSkKLSAgICAgICAgICAgICAgICBlbGlmIGhlYWRlciA9PSBiIjptZXRo
b2QiOgotICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSB2YWx1ZS5kZWNvZGUoKQotICAgICAg
ICAgICAgICAgIGVsaWYgaGVhZGVyID09IGIiOnBhdGgiOgotICAgICAgICAgICAgICAgICAgICBy
YXdfcGF0aCA9IHZhbHVlCi0gICAgICAgICAgICAgICAgZWxpZiBoZWFkZXIgPT0gYiI6cHJvdG9j
b2wiOgotICAgICAgICAgICAgICAgICAgICBwcm90b2NvbCA9IHZhbHVlLmRlY29kZSgpCi0gICAg
ICAgICAgICAgICAgZWxpZiBoZWFkZXIgYW5kIG5vdCBoZWFkZXIuc3RhcnRzd2l0aChiIjoiKToK
LSAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGhlYWRlciwgdmFsdWUpKQotCi0g
ICAgICAgICAgICBpZiBiIj8iIGluIHJhd19wYXRoOgotICAgICAgICAgICAgICAgIHBhdGhfYnl0
ZXMsIHF1ZXJ5X3N0cmluZyA9IHJhd19wYXRoLnNwbGl0KGIiPyIsIG1heHNwbGl0PTEpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBhdGhfYnl0ZXMsIHF1ZXJ5X3N0cmluZyA9
IHJhd19wYXRoLCBiIiIKLSAgICAgICAgICAgIHBhdGggPSBwYXRoX2J5dGVzLmRlY29kZSgpCi0K
LSAgICAgICAgICAgICMgRklYTUU6IGFkZCBhIHB1YmxpYyBBUEkgdG8gcmV0cmlldmUgcGVlciBh
ZGRyZXNzCi0gICAgICAgICAgICBjbGllbnRfYWRkciA9IHNlbGYuX2h0dHAuX3F1aWMuX25ldHdv
cmtfcGF0aHNbMF0uYWRkcgotICAgICAgICAgICAgY2xpZW50ID0gKGNsaWVudF9hZGRyWzBdLCBj
bGllbnRfYWRkclsxXSkKLQotICAgICAgICAgICAgaGFuZGxlcjogSGFuZGxlcgotICAgICAgICAg
ICAgc2NvcGU6IERpY3QKLSAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAiQ09OTkVDVCIgYW5kIHBy
b3RvY29sID09ICJ3ZWJzb2NrZXQiOgotICAgICAgICAgICAgICAgIHN1YnByb3RvY29sczogTGlz
dFtzdHJdID0gW10KLSAgICAgICAgICAgICAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiBldmVudC5o
ZWFkZXJzOgotICAgICAgICAgICAgICAgICAgICBpZiBoZWFkZXIgPT0gYiJzZWMtd2Vic29ja2V0
LXByb3RvY29sIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHN1YnByb3RvY29scyA9IFt4LnN0
cmlwKCkgZm9yIHggaW4gdmFsdWUuZGVjb2RlKCkuc3BsaXQoIiwiKV0KLSAgICAgICAgICAgICAg
ICBzY29wZSA9IHsKLSAgICAgICAgICAgICAgICAgICAgImNsaWVudCI6IGNsaWVudCwKLSAgICAg
ICAgICAgICAgICAgICAgImhlYWRlcnMiOiBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAi
aHR0cF92ZXJzaW9uIjogaHR0cF92ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAibWV0aG9k
IjogbWV0aG9kLAotICAgICAgICAgICAgICAgICAgICAicGF0aCI6IHBhdGgsCi0gICAgICAgICAg
ICAgICAgICAgICJxdWVyeV9zdHJpbmciOiBxdWVyeV9zdHJpbmcsCi0gICAgICAgICAgICAgICAg
ICAgICJyYXdfcGF0aCI6IHJhd19wYXRoLAotICAgICAgICAgICAgICAgICAgICAicm9vdF9wYXRo
IjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJzY2hlbWUiOiAid3NzIiwKLSAgICAgICAgICAg
ICAgICAgICAgInN1YnByb3RvY29scyI6IHN1YnByb3RvY29scywKLSAgICAgICAgICAgICAgICAg
ICAgInR5cGUiOiAid2Vic29ja2V0IiwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaGFuZGxlciA9IFdlYlNvY2tldEhhbmRsZXIoCi0gICAgICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb249c2VsZi5faHR0cCwKLSAgICAgICAgICAgICAgICAgICAgc2NvcGU9c2NvcGUsCi0gICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1ldmVudC5zdHJlYW1faWQsCi0gICAgICAgICAgICAg
ICAgICAgIHRyYW5zbWl0PXNlbGYudHJhbnNtaXQsCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zOiBEaWN0W3N0ciwgRGljdF0g
PSB7fQotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5faHR0cCwgSDNDb25uZWN0
aW9uKToKLSAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uc1siaHR0cC5yZXNwb25zZS5wdXNo
Il0gPSB7fQotICAgICAgICAgICAgICAgIHNjb3BlID0gewotICAgICAgICAgICAgICAgICAgICAi
Y2xpZW50IjogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAiZXh0ZW5zaW9ucyI6IGV4dGVu
c2lvbnMsCi0gICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIjogaGVhZGVycywKLSAgICAgICAg
ICAgICAgICAgICAgImh0dHBfdmVyc2lvbiI6IGh0dHBfdmVyc2lvbiwKLSAgICAgICAgICAgICAg
ICAgICAgIm1ldGhvZCI6IG1ldGhvZCwKLSAgICAgICAgICAgICAgICAgICAgInBhdGgiOiBwYXRo
LAotICAgICAgICAgICAgICAgICAgICAicXVlcnlfc3RyaW5nIjogcXVlcnlfc3RyaW5nLAotICAg
ICAgICAgICAgICAgICAgICAicmF3X3BhdGgiOiByYXdfcGF0aCwKLSAgICAgICAgICAgICAgICAg
ICAgInJvb3RfcGF0aCI6ICIiLAotICAgICAgICAgICAgICAgICAgICAic2NoZW1lIjogImh0dHBz
IiwKLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiaHR0cCIsCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBIdHRwUmVxdWVzdEhhbmRsZXIoCi0gICAgICAg
ICAgICAgICAgICAgIGF1dGhvcml0eT1hdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb249c2VsZi5faHR0cCwKLSAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9c2VsZiwK
LSAgICAgICAgICAgICAgICAgICAgc2NvcGU9c2NvcGUsCi0gICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9lbmRlZD1ldmVudC5zdHJlYW1fZW5kZWQsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1ldmVudC5zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgIHRyYW5zbWl0PXNlbGYu
dHJhbnNtaXQsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5faGFuZGxlcnNb
ZXZlbnQuc3RyZWFtX2lkXSA9IGhhbmRsZXIKLSAgICAgICAgICAgIGFzeW5jaW8uZW5zdXJlX2Z1
dHVyZShoYW5kbGVyLnJ1bl9hc2dpKGFwcGxpY2F0aW9uKSkKLSAgICAgICAgZWxpZiAoCi0gICAg
ICAgICAgICBpc2luc3RhbmNlKGV2ZW50LCAoRGF0YVJlY2VpdmVkLCBIZWFkZXJzUmVjZWl2ZWQp
KQotICAgICAgICAgICAgYW5kIGV2ZW50LnN0cmVhbV9pZCBpbiBzZWxmLl9oYW5kbGVycwotICAg
ICAgICApOgotICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuX2hhbmRsZXJzW2V2ZW50LnN0cmVh
bV9pZF0KLSAgICAgICAgICAgIGhhbmRsZXIuaHR0cF9ldmVudF9yZWNlaXZlZChldmVudCkKLQot
ICAgIGRlZiBxdWljX2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBRdWljRXZlbnQpIC0+IE5v
bmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIFByb3RvY29sTmVnb3RpYXRlZCk6Ci0g
ICAgICAgICAgICBpZiBldmVudC5hbHBuX3Byb3RvY29sLnN0YXJ0c3dpdGgoImgzLSIpOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2h0dHAgPSBIM0Nvbm5lY3Rpb24oc2VsZi5fcXVpYykKLSAgICAg
ICAgICAgIGVsaWYgZXZlbnQuYWxwbl9wcm90b2NvbC5zdGFydHN3aXRoKCJocS0iKToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9odHRwID0gSDBDb25uZWN0aW9uKHNlbGYuX3F1aWMpCi0gICAgICAg
IGVsaWYgaXNpbnN0YW5jZShldmVudCwgRGF0YWdyYW1GcmFtZVJlY2VpdmVkKToKLSAgICAgICAg
ICAgIGlmIGV2ZW50LmRhdGEgPT0gYiJxdWFjayI6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcXVp
Yy5zZW5kX2RhdGFncmFtX2ZyYW1lKGIicXVhY2stYWNrIikKLQotICAgICAgICAjIMKgcGFzcyBl
dmVudCB0byB0aGUgSFRUUCBsYXllcgotICAgICAgICBpZiBzZWxmLl9odHRwIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZm9yIGh0dHBfZXZlbnQgaW4gc2VsZi5faHR0cC5oYW5kbGVfZXZlbnQo
ZXZlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuaHR0cF9ldmVudF9yZWNlaXZlZChodHRwX2V2
ZW50KQotCi0KLWNsYXNzIFNlc3Npb25UaWNrZXRTdG9yZToKLSAgICAiIiIKLSAgICBTaW1wbGUg
aW4tbWVtb3J5IHN0b3JlIGZvciBzZXNzaW9uIHRpY2tldHMuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzOiBEaWN0W2J5dGVz
LCBTZXNzaW9uVGlja2V0XSA9IHt9Ci0KLSAgICBkZWYgYWRkKHNlbGYsIHRpY2tldDogU2Vzc2lv
blRpY2tldCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzW3RpY2tldC50aWNrZXRdID0g
dGlja2V0Ci0KLSAgICBkZWYgcG9wKHNlbGYsIGxhYmVsOiBieXRlcykgLT4gT3B0aW9uYWxbU2Vz
c2lvblRpY2tldF06Ci0gICAgICAgIHJldHVybiBzZWxmLnRpY2tldHMucG9wKGxhYmVsLCBOb25l
KQotCi0KLWNsYXNzIFF1aWNMb2dnZXJDdXN0b20oUXVpY0xvZ2dlcik6Ci0gICAgIiIiCi0gICAg
Q3VzdG9tIFFVSUMgbG9nZ2VyIHdoaWNoIHdyaXRlcyBvbmUgdHJhY2UgcGVyIGZpbGUuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aDogc3RyKSAtPiBOb25lOgotICAgICAg
ICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIlFVSUMgbG9nIG91dHB1dCBkaXJlY3RvcnkgJyVzJyBkb2VzIG5vdCBleGlzdCIgJSBwYXRo
KQotICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgIHN1cGVyKCkuX19pbml0X18oKQot
Ci0gICAgZGVmIGVuZF90cmFjZShzZWxmLCB0cmFjZTogUXVpY0xvZ2dlclRyYWNlKSAtPiBOb25l
OgotICAgICAgICB0cmFjZV9kaWN0ID0gdHJhY2UudG9fZGljdCgpCi0gICAgICAgIHRyYWNlX3Bh
dGggPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBzZWxmLnBhdGgsIHRyYWNlX2RpY3RbImNv
bW1vbl9maWVsZHMiXVsiT0RDSUQiXSArICIucWxvZyIKLSAgICAgICAgKQotICAgICAgICB3aXRo
IG9wZW4odHJhY2VfcGF0aCwgInciKSBhcyBsb2dnZXJfZnA6Ci0gICAgICAgICAgICBqc29uLmR1
bXAoeyJxbG9nX3ZlcnNpb24iOiAiZHJhZnQtMDEiLCAidHJhY2VzIjogW3RyYWNlX2RpY3RdfSwg
bG9nZ2VyX2ZwKQotICAgICAgICBzZWxmLl90cmFjZXMucmVtb3ZlKHRyYWNlKQotCi0KLWlmIF9f
bmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJz
ZXIoZGVzY3JpcHRpb249IlFVSUMgc2VydmVyIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAot
ICAgICAgICAiYXBwIiwKLSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIG5hcmdzPSI/IiwKLSAg
ICAgICAgZGVmYXVsdD0iZGVtbzphcHAiLAotICAgICAgICBoZWxwPSJ0aGUgQVNHSSBhcHBsaWNh
dGlvbiBhcyA8bW9kdWxlPjo8YXR0cmlidXRlPiIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoCi0gICAgICAgICItYyIsCi0gICAgICAgICItLWNlcnRpZmljYXRlIiwKLSAgICAgICAg
dHlwZT1zdHIsCi0gICAgICAgIHJlcXVpcmVkPVRydWUsCi0gICAgICAgIGhlbHA9ImxvYWQgdGhl
IFRMUyBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZSIsCi0gICAgKQotICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLWhvc3QiLAotICAgICAgICB0eXBlPXN0ciwK
LSAgICAgICAgZGVmYXVsdD0iOjoiLAotICAgICAgICBoZWxwPSJsaXN0ZW4gb24gdGhlIHNwZWNp
ZmllZCBhZGRyZXNzIChkZWZhdWx0cyB0byA6OikiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAiLS1wb3J0IiwKLSAgICAgICAgdHlwZT1pbnQsCi0gICAgICAgIGRl
ZmF1bHQ9NDQzMywKLSAgICAgICAgaGVscD0ibGlzdGVuIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCAo
ZGVmYXVsdHMgdG8gNDQzMykiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLWsiLAotICAgICAgICAiLS1wcml2YXRlLWtleSIsCi0gICAgICAgIHR5cGU9c3RyLAot
ICAgICAgICByZXF1aXJlZD1UcnVlLAotICAgICAgICBoZWxwPSJsb2FkIHRoZSBUTFMgcHJpdmF0
ZSBrZXkgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAiLWwiLAotICAgICAgICAiLS1zZWNyZXRzLWxvZyIsCi0gICAgICAg
IHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJsb2cgc2VjcmV0cyB0byBhIGZpbGUsIGZvciB1c2Ug
d2l0aCBXaXJlc2hhcmsiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAg
ICAiLXEiLCAiLS1xdWljLWxvZyIsIHR5cGU9c3RyLCBoZWxwPSJsb2cgUVVJQyBldmVudHMgdG8g
YSBmaWxlIGluIFFMT0cgZm9ybWF0IgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAot
ICAgICAgICAiLXIiLAotICAgICAgICAiLS1zdGF0ZWxlc3MtcmV0cnkiLAotICAgICAgICBhY3Rp
b249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJzZW5kIGEgc3RhdGVsZXNzIHJldHJ5IGZv
ciBuZXcgY29ubmVjdGlvbnMiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLXYiLCAiLS12ZXJib3NlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iaW5jcmVh
c2UgbG9nZ2luZyB2ZXJib3NpdHkiCi0gICAgKQotICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJn
cygpCi0KLSAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKAotICAgICAgICBmb3JtYXQ9IiUoYXNjdGlt
ZSlzICUobGV2ZWxuYW1lKXMgJShuYW1lKXMgJShtZXNzYWdlKXMiLAotICAgICAgICBsZXZlbD1s
b2dnaW5nLkRFQlVHIGlmIGFyZ3MudmVyYm9zZSBlbHNlIGxvZ2dpbmcuSU5GTywKLSAgICApCi0K
LSAgICAjIGltcG9ydCBBU0dJIGFwcGxpY2F0aW9uCi0gICAgbW9kdWxlX3N0ciwgYXR0cl9zdHIg
PSBhcmdzLmFwcC5zcGxpdCgiOiIsIG1heHNwbGl0PTEpCi0gICAgbW9kdWxlID0gaW1wb3J0bGli
LmltcG9ydF9tb2R1bGUobW9kdWxlX3N0cikKLSAgICBhcHBsaWNhdGlvbiA9IGdldGF0dHIobW9k
dWxlLCBhdHRyX3N0cikKLQotICAgICMgY3JlYXRlIFFVSUMgbG9nZ2VyCi0gICAgaWYgYXJncy5x
dWljX2xvZzoKLSAgICAgICAgcXVpY19sb2dnZXIgPSBRdWljTG9nZ2VyQ3VzdG9tKGFyZ3MucXVp
Y19sb2cpCi0gICAgZWxzZToKLSAgICAgICAgcXVpY19sb2dnZXIgPSBOb25lCi0KLSAgICAjIG9w
ZW4gU1NMIGxvZyBmaWxlCi0gICAgaWYgYXJncy5zZWNyZXRzX2xvZzoKLSAgICAgICAgc2VjcmV0
c19sb2dfZmlsZSA9IG9wZW4oYXJncy5zZWNyZXRzX2xvZywgImEiKQotICAgIGVsc2U6Ci0gICAg
ICAgIHNlY3JldHNfbG9nX2ZpbGUgPSBOb25lCi0KLSAgICBjb25maWd1cmF0aW9uID0gUXVpY0Nv
bmZpZ3VyYXRpb24oCi0gICAgICAgIGFscG5fcHJvdG9jb2xzPUgzX0FMUE4gKyBIMF9BTFBOICsg
WyJzaWR1Y2siXSwKLSAgICAgICAgaXNfY2xpZW50PUZhbHNlLAotICAgICAgICBtYXhfZGF0YWdy
YW1fZnJhbWVfc2l6ZT02NTUzNiwKLSAgICAgICAgcXVpY19sb2dnZXI9cXVpY19sb2dnZXIsCi0g
ICAgICAgIHNlY3JldHNfbG9nX2ZpbGU9c2VjcmV0c19sb2dfZmlsZSwKLSAgICApCi0KLSAgICAj
IGxvYWQgU1NMIGNlcnRpZmljYXRlIGFuZCBrZXkKLSAgICBjb25maWd1cmF0aW9uLmxvYWRfY2Vy
dF9jaGFpbihhcmdzLmNlcnRpZmljYXRlLCBhcmdzLnByaXZhdGVfa2V5KQotCi0gICAgdGlja2V0
X3N0b3JlID0gU2Vzc2lvblRpY2tldFN0b3JlKCkKLQotICAgIGlmIHV2bG9vcCBpcyBub3QgTm9u
ZToKLSAgICAgICAgdXZsb29wLmluc3RhbGwoKQotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVu
dF9sb29wKCkKLSAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgKLSAgICAgICAgc2VydmUoCi0g
ICAgICAgICAgICBhcmdzLmhvc3QsCi0gICAgICAgICAgICBhcmdzLnBvcnQsCi0gICAgICAgICAg
ICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICBjcmVhdGVfcHJvdG9j
b2w9SHR0cFNlcnZlclByb3RvY29sLAotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXRfZmV0Y2hl
cj10aWNrZXRfc3RvcmUucG9wLAotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXRfaGFuZGxlcj10
aWNrZXRfc3RvcmUuYWRkLAotICAgICAgICAgICAgc3RhdGVsZXNzX3JldHJ5PWFyZ3Muc3RhdGVs
ZXNzX3JldHJ5LAotICAgICAgICApCi0gICAgKQotICAgIHRyeToKLSAgICAgICAgbG9vcC5ydW5f
Zm9yZXZlcigpCi0gICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICBwYXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0cHhfY2xpZW50LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2V4YW1wbGVzL2h0dHB4X2NsaWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAxZTM4NGUzNTRiMjI1MjQzZDRkNjBiNzU5ODU1ZDUwMmMyOTk5ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBs
ZXMvaHR0cHhfY2xpZW50LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjEzICswLDAgQEAKLWltcG9y
dCBhcmdwYXJzZQotaW1wb3J0IGFzeW5jaW8KLWltcG9ydCBqc29uCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IHBpY2tsZQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLWZyb20gY29sbGVjdGlvbnMg
aW1wb3J0IGRlcXVlCi1mcm9tIHR5cGluZyBpbXBvcnQgRGVxdWUsIERpY3QsIGNhc3QKLWZyb20g
dXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQotCi1mcm9tIGh0dHB4IGltcG9ydCBBc3luY0Ns
aWVudAotZnJvbSBodHRweC5jb25maWcgaW1wb3J0IFRpbWVvdXQKLWZyb20gaHR0cHguZGlzcGF0
Y2guYmFzZSBpbXBvcnQgQXN5bmNEaXNwYXRjaGVyCi1mcm9tIGh0dHB4Lm1vZGVscyBpbXBvcnQg
UmVxdWVzdCwgUmVzcG9uc2UKLQotZnJvbSBhaW9xdWljLmFzeW5jaW8uY2xpZW50IGltcG9ydCBj
b25uZWN0Ci1mcm9tIGFpb3F1aWMuYXN5bmNpby5wcm90b2NvbCBpbXBvcnQgUXVpY0Nvbm5lY3Rp
b25Qcm90b2NvbAotZnJvbSBhaW9xdWljLmgzLmNvbm5lY3Rpb24gaW1wb3J0IEgzX0FMUE4sIEgz
Q29ubmVjdGlvbgotZnJvbSBhaW9xdWljLmgzLmV2ZW50cyBpbXBvcnQgRGF0YVJlY2VpdmVkLCBI
M0V2ZW50LCBIZWFkZXJzUmVjZWl2ZWQKLWZyb20gYWlvcXVpYy5xdWljLmNvbmZpZ3VyYXRpb24g
aW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVpYy5ldmVudHMgaW1wb3J0
IFF1aWNFdmVudAotZnJvbSBhaW9xdWljLnF1aWMubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi0K
LWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJjbGllbnQiKQotCi0KLWNsYXNzIEgzRGlzcGF0
Y2hlcihRdWljQ29ubmVjdGlvblByb3RvY29sLCBBc3luY0Rpc3BhdGNoZXIpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBzdXBlcigpLl9faW5pdF9f
KCphcmdzLCAqKmt3YXJncykKLQotICAgICAgICBzZWxmLl9odHRwID0gSDNDb25uZWN0aW9uKHNl
bGYuX3F1aWMpCi0gICAgICAgIHNlbGYuX3JlcXVlc3RfZXZlbnRzOiBEaWN0W2ludCwgRGVxdWVb
SDNFdmVudF1dID0ge30KLSAgICAgICAgc2VsZi5fcmVxdWVzdF93YWl0ZXI6IERpY3RbaW50LCBh
c3luY2lvLkZ1dHVyZVtEZXF1ZVtIM0V2ZW50XV1dID0ge30KLQotICAgIGFzeW5jIGRlZiBzZW5k
KHNlbGYsIHJlcXVlc3Q6IFJlcXVlc3QsIHRpbWVvdXQ6IFRpbWVvdXQgPSBOb25lKSAtPiBSZXNw
b25zZToKLSAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5fcXVpYy5nZXRfbmV4dF9hdmFpbGFibGVf
c3RyZWFtX2lkKCkKLQotICAgICAgICAjIHByZXBhcmUgcmVxdWVzdAotICAgICAgICBzZWxmLl9o
dHRwLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAg
ICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgcmVxdWVzdC5t
ZXRob2QuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCByZXF1ZXN0LnVy
bC5zY2hlbWUuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCBzdHIo
cmVxdWVzdC51cmwuYXV0aG9yaXR5KS5lbmNvZGUoKSksCi0gICAgICAgICAgICAgICAgKGIiOnBh
dGgiLCByZXF1ZXN0LnVybC5mdWxsX3BhdGguZW5jb2RlKCkpLAotICAgICAgICAgICAgXQotICAg
ICAgICAgICAgKyBbCi0gICAgICAgICAgICAgICAgKGsuZW5jb2RlKCksIHYuZW5jb2RlKCkpCi0g
ICAgICAgICAgICAgICAgZm9yIChrLCB2KSBpbiByZXF1ZXN0LmhlYWRlcnMuaXRlbXMoKQotICAg
ICAgICAgICAgICAgIGlmIGsgbm90IGluICgiY29ubmVjdGlvbiIsICJob3N0IikKLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5faHR0cC5zZW5kX2RhdGEoc3RyZWFtX2lk
PXN0cmVhbV9pZCwgZGF0YT1yZXF1ZXN0LnJlYWQoKSwgZW5kX3N0cmVhbT1UcnVlKQotCi0gICAg
ICAgICMgdHJhbnNtaXQgcmVxdWVzdAotICAgICAgICB3YWl0ZXIgPSBzZWxmLl9sb29wLmNyZWF0
ZV9mdXR1cmUoKQotICAgICAgICBzZWxmLl9yZXF1ZXN0X2V2ZW50c1tzdHJlYW1faWRdID0gZGVx
dWUoKQotICAgICAgICBzZWxmLl9yZXF1ZXN0X3dhaXRlcltzdHJlYW1faWRdID0gd2FpdGVyCi0g
ICAgICAgIHNlbGYudHJhbnNtaXQoKQotCi0gICAgICAgICMgcHJvY2VzcyByZXNwb25zZQotICAg
ICAgICBldmVudHM6IERlcXVlW0gzRXZlbnRdID0gYXdhaXQgYXN5bmNpby5zaGllbGQod2FpdGVy
KQotICAgICAgICBjb250ZW50ID0gYiIiCi0gICAgICAgIGhlYWRlcnMgPSBbXQotICAgICAgICBz
dGF0dXNfY29kZSA9IE5vbmUKLSAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50czoKLSAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIEhlYWRlcnNSZWNlaXZlZCk6Ci0gICAgICAgICAgICAg
ICAgZm9yIGhlYWRlciwgdmFsdWUgaW4gZXZlbnQuaGVhZGVyczoKLSAgICAgICAgICAgICAgICAg
ICAgaWYgaGVhZGVyID09IGIiOnN0YXR1cyI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0
dXNfY29kZSA9IGludCh2YWx1ZS5kZWNvZGUoKSkKLSAgICAgICAgICAgICAgICAgICAgZWxpZiBo
ZWFkZXJbMDoxXSAhPSBiIjoiOgotICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5hcHBl
bmQoKGhlYWRlci5kZWNvZGUoKSwgdmFsdWUuZGVjb2RlKCkpKQotICAgICAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAgIGNvbnRlbnQg
Kz0gZXZlbnQuZGF0YQotCi0gICAgICAgIHJldHVybiBSZXNwb25zZSgKLSAgICAgICAgICAgIHN0
YXR1c19jb2RlPXN0YXR1c19jb2RlLAotICAgICAgICAgICAgaHR0cF92ZXJzaW9uPSJIVFRQLzMi
LAotICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzLAotICAgICAgICAgICAgY29udGVudD1jb250
ZW50LAotICAgICAgICAgICAgcmVxdWVzdD1yZXF1ZXN0LAotICAgICAgICApCi0KLSAgICBkZWYg
aHR0cF9ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogSDNFdmVudCk6Ci0gICAgICAgIGlmIGlz
aW5zdGFuY2UoZXZlbnQsIChIZWFkZXJzUmVjZWl2ZWQsIERhdGFSZWNlaXZlZCkpOgotICAgICAg
ICAgICAgc3RyZWFtX2lkID0gZXZlbnQuc3RyZWFtX2lkCi0gICAgICAgICAgICBpZiBzdHJlYW1f
aWQgaW4gc2VsZi5fcmVxdWVzdF9ldmVudHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dF9ldmVudHNbZXZlbnQuc3RyZWFtX2lkXS5hcHBlbmQoZXZlbnQpCi0gICAgICAgICAgICAgICAg
aWYgZXZlbnQuc3RyZWFtX2VuZGVkOgotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3dhaXRl
ciA9IHNlbGYuX3JlcXVlc3Rfd2FpdGVyLnBvcChzdHJlYW1faWQpCi0gICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3Rfd2FpdGVyLnNldF9yZXN1bHQoc2VsZi5fcmVxdWVzdF9ldmVudHMucG9wKHN0
cmVhbV9pZCkpCi0KLSAgICBkZWYgcXVpY19ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogUXVp
Y0V2ZW50KToKLSAgICAgICAgIyDCoHBhc3MgZXZlbnQgdG8gdGhlIEhUVFAgbGF5ZXIKLSAgICAg
ICAgaWYgc2VsZi5faHR0cCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZvciBodHRwX2V2ZW50
IGluIHNlbGYuX2h0dHAuaGFuZGxlX2V2ZW50KGV2ZW50KToKLSAgICAgICAgICAgICAgICBzZWxm
Lmh0dHBfZXZlbnRfcmVjZWl2ZWQoaHR0cF9ldmVudCkKLQotCi1kZWYgc2F2ZV9zZXNzaW9uX3Rp
Y2tldCh0aWNrZXQpOgotICAgICIiIgotICAgIENhbGxiYWNrIHdoaWNoIGlzIGludm9rZWQgYnkg
dGhlIFRMUyBlbmdpbmUgd2hlbiBhIG5ldyBzZXNzaW9uIHRpY2tldAotICAgIGlzIHJlY2VpdmVk
LgotICAgICIiIgotICAgIGxvZ2dlci5pbmZvKCJOZXcgc2Vzc2lvbiB0aWNrZXQgcmVjZWl2ZWQi
KQotICAgIGlmIGFyZ3Muc2Vzc2lvbl90aWNrZXQ6Ci0gICAgICAgIHdpdGggb3BlbihhcmdzLnNl
c3Npb25fdGlja2V0LCAid2IiKSBhcyBmcDoKLSAgICAgICAgICAgIHBpY2tsZS5kdW1wKHRpY2tl
dCwgZnApCi0KLQotYXN5bmMgZGVmIHJ1bihjb25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlv
biwgdXJsOiBzdHIsIGRhdGE6IHN0cikgLT4gTm9uZToKLSAgICAjIHBhcnNlIFVSTAotICAgIHBh
cnNlZCA9IHVybHBhcnNlKHVybCkKLSAgICBhc3NlcnQgcGFyc2VkLnNjaGVtZSA9PSAiaHR0cHMi
LCAiT25seSBodHRwczovLyBVUkxzIGFyZSBzdXBwb3J0ZWQuIgotICAgIGlmICI6IiBpbiBwYXJz
ZWQubmV0bG9jOgotICAgICAgICBob3N0LCBwb3J0X3N0ciA9IHBhcnNlZC5uZXRsb2Muc3BsaXQo
IjoiKQotICAgICAgICBwb3J0ID0gaW50KHBvcnRfc3RyKQotICAgIGVsc2U6Ci0gICAgICAgIGhv
c3QgPSBwYXJzZWQubmV0bG9jCi0gICAgICAgIHBvcnQgPSA0NDMKLQotICAgIGFzeW5jIHdpdGgg
Y29ubmVjdCgKLSAgICAgICAgaG9zdCwKLSAgICAgICAgcG9ydCwKLSAgICAgICAgY29uZmlndXJh
dGlvbj1jb25maWd1cmF0aW9uLAotICAgICAgICBjcmVhdGVfcHJvdG9jb2w9SDNEaXNwYXRjaGVy
LAotICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXNhdmVfc2Vzc2lvbl90aWNrZXQsCi0g
ICAgKSBhcyBkaXNwYXRjaDoKLSAgICAgICAgY2xpZW50ID0gQXN5bmNDbGllbnQoZGlzcGF0Y2g9
Y2FzdChBc3luY0Rpc3BhdGNoZXIsIGRpc3BhdGNoKSkKLQotICAgICAgICAjIHBlcmZvcm0gcmVx
dWVzdAotICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCi0gICAgICAgIGlmIGRhdGEgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KAotICAgICAg
ICAgICAgICAgIHVybCwKLSAgICAgICAgICAgICAgICBkYXRhPWRhdGEuZW5jb2RlKCksCi0gICAg
ICAgICAgICAgICAgaGVhZGVycz17ImNvbnRlbnQtdHlwZSI6ICJhcHBsaWNhdGlvbi94LXd3dy1m
b3JtLXVybGVuY29kZWQifSwKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCh1cmwpCi0KLSAgICAgICAgZWxhcHNlZCA9
IHRpbWUudGltZSgpIC0gc3RhcnQKLQotICAgICAgICAjIHByaW50IHNwZWVkCi0gICAgICAgIG9j
dGV0cyA9IGxlbihyZXNwb25zZS5jb250ZW50KQotICAgICAgICBsb2dnZXIuaW5mbygKLSAgICAg
ICAgICAgICJSZWNlaXZlZCAlZCBieXRlcyBpbiAlLjFmIHMgKCUuM2YgTWJwcykiCi0gICAgICAg
ICAgICAlIChvY3RldHMsIGVsYXBzZWQsIG9jdGV0cyAqIDggLyBlbGFwc2VkIC8gMTAwMDAwMCkK
LSAgICAgICAgKQotCi0gICAgICAgICMgcHJpbnQgcmVzcG9uc2UKLSAgICAgICAgZm9yIGhlYWRl
ciwgdmFsdWUgaW4gcmVzcG9uc2UuaGVhZGVycy5pdGVtcygpOgotICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZShoZWFkZXIgKyAiOiAiICsgdmFsdWUgKyAiXHJcbiIpCi0gICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoIlxyXG4iKQotICAgICAgICBzeXMuc3Rkb3V0LmJ1ZmZlci53cml0ZShyZXNw
b25zZS5jb250ZW50KQotICAgICAgICBzeXMuc3Rkb3V0LmJ1ZmZlci5mbHVzaCgpCi0KLQotaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcihkZXNjcmlwdGlvbj0iSFRUUC8zIGNsaWVudCIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgidXJsIiwgdHlwZT1zdHIsIGhlbHA9InRoZSBVUkwgdG8gcXVlcnkgKG11c3QgYmUgSFRUUFMp
IikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLWQiLCAiLS1kYXRhIiwgdHlw
ZT1zdHIsIGhlbHA9InNlbmQgdGhlIHNwZWNpZmllZCBkYXRhIGluIGEgUE9TVCByZXF1ZXN0Igot
ICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXEiLCAiLS1xdWljLWxv
ZyIsIHR5cGU9c3RyLCBoZWxwPSJsb2cgUVVJQyBldmVudHMgdG8gYSBmaWxlIGluIFFMT0cgZm9y
bWF0IgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLWwiLAotICAg
ICAgICAiLS1zZWNyZXRzLWxvZyIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJs
b2cgc2VjcmV0cyB0byBhIGZpbGUsIGZvciB1c2Ugd2l0aCBXaXJlc2hhcmsiLAotICAgICkKLSAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXMiLAotICAgICAgICAiLS1zZXNzaW9u
LXRpY2tldCIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJyZWFkIGFuZCB3cml0
ZSBzZXNzaW9uIHRpY2tldCBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZSIsCi0gICAgKQotICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBoZWxwPSJpbmNyZWFzZSBsb2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0KLSAg
ICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygK
LSAgICAgICAgZm9ybWF0PSIlKGFzY3RpbWUpcyAlKGxldmVsbmFtZSlzICUobmFtZSlzICUobWVz
c2FnZSlzIiwKLSAgICAgICAgbGV2ZWw9bG9nZ2luZy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxz
ZSBsb2dnaW5nLklORk8sCi0gICAgKQotCi0gICAgIyBwcmVwYXJlIGNvbmZpZ3VyYXRpb24KLSAg
ICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUsIGFscG5f
cHJvdG9jb2xzPUgzX0FMUE4pCi0gICAgaWYgYXJncy5xdWljX2xvZzoKLSAgICAgICAgY29uZmln
dXJhdGlvbi5xdWljX2xvZ2dlciA9IFF1aWNMb2dnZXIoKQotICAgIGlmIGFyZ3Muc2VjcmV0c19s
b2c6Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24uc2VjcmV0c19sb2dfZmlsZSA9IG9wZW4oYXJncy5z
ZWNyZXRzX2xvZywgImEiKQotICAgIGlmIGFyZ3Muc2Vzc2lvbl90aWNrZXQ6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHdpdGggb3BlbihhcmdzLnNlc3Npb25fdGlja2V0LCAicmIiKSBhcyBm
cDoKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLnNlc3Npb25fdGlja2V0ID0gcGlja2xl
LmxvYWQoZnApCi0gICAgICAgIGV4Y2VwdCBGaWxlTm90Rm91bmRFcnJvcjoKLSAgICAgICAgICAg
IHBhc3MKLQotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVudF9sb29wKCkKLSAgICB0cnk6Ci0g
ICAgICAgIGxvb3AucnVuX3VudGlsX2NvbXBsZXRlKAotICAgICAgICAgICAgcnVuKGNvbmZpZ3Vy
YXRpb249Y29uZmlndXJhdGlvbiwgdXJsPWFyZ3MudXJsLCBkYXRhPWFyZ3MuZGF0YSkKLSAgICAg
ICAgKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGlmIGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oYXJncy5xdWljX2xvZywgInciKSBh
cyBsb2dnZXJfZnA6Ci0gICAgICAgICAgICAgICAganNvbi5kdW1wKGNvbmZpZ3VyYXRpb24ucXVp
Y19sb2dnZXIudG9fZGljdCgpLCBsb2dnZXJfZnAsIGluZGVudD00KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL2V4YW1wbGVzL2ludGVyb3AucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaW50
ZXJvcC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZhZDIwYjY2YjRiNzUxM2Vj
ZWE2YmEzM2QzNzRhNDk1ZTRlNTJhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaW50ZXJvcC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDUzMiArMCwwIEBACi0jCi0jICEhISBXQVJOSU5HICEhIQotIwotIyBUaGlzIGV4
YW1wbGUgdXNlcyBzb21lIHByaXZhdGUgQVBJcy4KLSMKLQotaW1wb3J0IGFyZ3BhcnNlCi1pbXBv
cnQgYXN5bmNpbwotaW1wb3J0IGpzb24KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgc3NsCi1pbXBv
cnQgdGltZQotZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzLCBmaWVsZAotZnJvbSBl
bnVtIGltcG9ydCBGbGFnCi1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIGNhc3QKLQotaW1w
b3J0IHJlcXVlc3RzCi1pbXBvcnQgdXJsbGliMwotZnJvbSBodHRwM19jbGllbnQgaW1wb3J0IEh0
dHBDbGllbnQKLQotZnJvbSBhaW9xdWljLmFzeW5jaW8gaW1wb3J0IGNvbm5lY3QKLWZyb20gYWlv
cXVpYy5oMC5jb25uZWN0aW9uIGltcG9ydCBIMF9BTFBOCi1mcm9tIGFpb3F1aWMuaDMuY29ubmVj
dGlvbiBpbXBvcnQgSDNfQUxQTiwgSDNDb25uZWN0aW9uCi1mcm9tIGFpb3F1aWMuaDMuZXZlbnRz
IGltcG9ydCBEYXRhUmVjZWl2ZWQsIEhlYWRlcnNSZWNlaXZlZCwgUHVzaFByb21pc2VSZWNlaXZl
ZAotZnJvbSBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRp
b24KLWZyb20gYWlvcXVpYy5xdWljLmxvZ2dlciBpbXBvcnQgUXVpY0xvZ2dlcgotCi0KLWNsYXNz
IFJlc3VsdChGbGFnKToKLSAgICBWID0gMHgwMDAwMDEKLSAgICBIID0gMHgwMDAwMDIKLSAgICBE
ID0gMHgwMDAwMDQKLSAgICBDID0gMHgwMDAwMDgKLSAgICBSID0gMHgwMDAwMTAKLSAgICBaID0g
MHgwMDAwMjAKLSAgICBTID0gMHgwMDAwNDAKLSAgICBRID0gMHgwMDAwODAKLQotICAgIE0gPSAw
eDAwMDEwMAotICAgIEIgPSAweDAwMDIwMAotICAgIEEgPSAweDAwMDQwMAotICAgIFUgPSAweDAw
MDgwMAotICAgIFAgPSAweDAwMTAwMAotICAgIEUgPSAweDAwMjAwMAotICAgIEwgPSAweDAwNDAw
MAotICAgIFQgPSAweDAwODAwMAotCi0gICAgdGhyZWUgPSAweDAxMDAwMAotICAgIGQgPSAweDAy
MDAwMAotICAgIHAgPSAweDA0MDAwMAotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAg
IGZsYWdzID0gc29ydGVkKAotICAgICAgICAgICAgbWFwKAotICAgICAgICAgICAgICAgIGxhbWJk
YSB4OiBnZXRhdHRyKFJlc3VsdCwgeCksCi0gICAgICAgICAgICAgICAgZmlsdGVyKGxhbWJkYSB4
OiBub3QgeC5zdGFydHN3aXRoKCJfIiksIGRpcihSZXN1bHQpKSwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICAgICBrZXk9bGFtYmRhIHg6IHgudmFsdWUsCi0gICAgICAgICkKLSAgICAgICAgcmVz
dWx0X3N0ciA9ICIiCi0gICAgICAgIGZvciBmbGFnIGluIGZsYWdzOgotICAgICAgICAgICAgaWYg
c2VsZiAmIGZsYWc6Ci0gICAgICAgICAgICAgICAgcmVzdWx0X3N0ciArPSBmbGFnLm5hbWUKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVzdWx0X3N0ciArPSAiLSIKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdF9zdHIKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBTZXJ2ZXI6Ci0gICAg
bmFtZTogc3RyCi0gICAgaG9zdDogc3RyCi0gICAgcG9ydDogaW50ID0gNDQzMwotICAgIGh0dHAz
OiBib29sID0gVHJ1ZQotICAgIHJldHJ5X3BvcnQ6IE9wdGlvbmFsW2ludF0gPSA0NDM0Ci0gICAg
cGF0aDogc3RyID0gIi8iCi0gICAgcHVzaF9wYXRoOiBPcHRpb25hbFtzdHJdID0gTm9uZQotICAg
IHJlc3VsdDogUmVzdWx0ID0gZmllbGQoZGVmYXVsdF9mYWN0b3J5PWxhbWJkYTogUmVzdWx0KDAp
KQotICAgIHNlc3Npb25fcmVzdW1wdGlvbl9wb3J0OiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAg
IHN0cnVjdHVyZWRfbG9nZ2luZzogYm9vbCA9IEZhbHNlCi0gICAgdGhyb3VnaHB1dF9maWxlX3N1
ZmZpeDogc3RyID0gIiIKLSAgICB2ZXJpZnlfbW9kZTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLQot
Ci1TRVJWRVJTID0gWwotICAgIFNlcnZlcigiYWthbWFpcXVpYyIsICJpZXRmLmFrYXF1aWMuY29t
IiwgcG9ydD00NDMsIHZlcmlmeV9tb2RlPXNzbC5DRVJUX05PTkUpLAotICAgIFNlcnZlcigKLSAg
ICAgICAgImFpb3F1aWMiLCAicXVpYy5haW9ydGMub3JnIiwgcG9ydD00NDMsIHB1c2hfcGF0aD0i
LyIsIHN0cnVjdHVyZWRfbG9nZ2luZz1UcnVlCi0gICAgKSwKLSAgICBTZXJ2ZXIoImF0cyIsICJx
dWljLm9ncmUuY29tIiksCi0gICAgU2VydmVyKCJmNSIsICJmNXF1aWMuY29tIiwgcmV0cnlfcG9y
dD00NDMzKSwKLSAgICBTZXJ2ZXIoImhhc2tlbGwiLCAibWV3Lm9yZyIsIHJldHJ5X3BvcnQ9NDQz
MyksCi0gICAgU2VydmVyKCJncXVpYyIsICJxdWljLnJvY2tzIiwgcmV0cnlfcG9ydD1Ob25lKSwK
LSAgICBTZXJ2ZXIoImxzcXVpYyIsICJodHRwMy10ZXN0LmxpdGVzcGVlZHRlY2guY29tIiwgcHVz
aF9wYXRoPSIvMjAwP3B1c2g9LzEwMCIpLAotICAgIFNlcnZlcigKLSAgICAgICAgIm1zcXVpYyIs
Ci0gICAgICAgICJxdWljLndlc3R1cy5jbG91ZGFwcC5henVyZS5jb20iLAotICAgICAgICBwb3J0
PTQ0MzMsCi0gICAgICAgIHNlc3Npb25fcmVzdW1wdGlvbl9wb3J0PTQ0MzMsCi0gICAgICAgIHN0
cnVjdHVyZWRfbG9nZ2luZz1UcnVlLAotICAgICAgICB0aHJvdWdocHV0X2ZpbGVfc3VmZml4PSIu
dHh0IiwKLSAgICAgICAgdmVyaWZ5X21vZGU9c3NsLkNFUlRfTk9ORSwKLSAgICApLAotICAgIFNl
cnZlcigKLSAgICAgICAgIm12ZnN0IiwgImZiLm12ZnN0Lm5ldCIsIHBvcnQ9NDQzLCBwdXNoX3Bh
dGg9Ii9wdXNoIiwgc3RydWN0dXJlZF9sb2dnaW5nPVRydWUKLSAgICApLAotICAgIFNlcnZlcigi
bmd0Y3AyIiwgIm5naHR0cDIub3JnIiwgcHVzaF9wYXRoPSIvP3B1c2g9LzEwMCIpLAotICAgIFNl
cnZlcigibmd4X3F1aWMiLCAiY2xvdWRmbGFyZS1xdWljLmNvbSIsIHBvcnQ9NDQzLCByZXRyeV9w
b3J0PTQ0MyksCi0gICAgU2VydmVyKCJwYW5kb3JhIiwgInBhbmRvcmEuY20uaW4udHVtLmRlIiwg
dmVyaWZ5X21vZGU9c3NsLkNFUlRfTk9ORSksCi0gICAgU2VydmVyKCJwaWNvcXVpYyIsICJ0ZXN0
LnByaXZhdGVvY3RvcHVzLmNvbSIsIHN0cnVjdHVyZWRfbG9nZ2luZz1UcnVlKSwKLSAgICBTZXJ2
ZXIoInF1YW50IiwgInF1YW50LmVnZ2VydC5vcmciLCBodHRwMz1GYWxzZSksCi0gICAgU2VydmVy
KCJxdWljLWdvIiwgInF1aWMuc2VlbWFubi5pbyIsIHBvcnQ9NDQzLCByZXRyeV9wb3J0PTQ0Myks
Ci0gICAgU2VydmVyKCJxdWljaGUiLCAicXVpYy50ZWNoIiwgcG9ydD04NDQzLCByZXRyeV9wb3J0
PTg0NDQpLAotICAgIFNlcnZlcigicXVpY2x5IiwgInF1aWMuZXhhbXAxZS5uZXQiKSwKLSAgICBT
ZXJ2ZXIoInF1aW5uIiwgInJhbGl0aC5jb20iKSwKLV0KLQotCi1hc3luYyBkZWYgdGVzdF92ZXJz
aW9uX25lZ290aWF0aW9uKHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBRdWljQ29uZmln
dXJhdGlvbik6Ci0gICAgIyBmb3JjZSB2ZXJzaW9uIG5lZ290aWF0aW9uCi0gICAgY29uZmlndXJh
dGlvbi5zdXBwb3J0ZWRfdmVyc2lvbnMuaW5zZXJ0KDAsIDB4MUEyQTNBNEEpCi0KLSAgICBhc3lu
YyB3aXRoIGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0LCBzZXJ2ZXIucG9ydCwgY29uZmln
dXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgKSBhcyBwcm90b2NvbDoKLSAgICAgICAgYXdhaXQg
cHJvdG9jb2wucGluZygpCi0KLSAgICAgICAgIyBjaGVjayBsb2cKLSAgICAgICAgZm9yIHN0YW1w
LCBjYXRlZ29yeSwgZXZlbnQsIGRhdGEgaW4gY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19k
aWN0KClbCi0gICAgICAgICAgICAidHJhY2VzIgotICAgICAgICBdWzBdWyJldmVudHMiXToKLSAg
ICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICBjYXRlZ29yeSA9PSAidHJhbnNwb3J0Igot
ICAgICAgICAgICAgICAgIGFuZCBldmVudCA9PSAicGFja2V0X3JlY2VpdmVkIgotICAgICAgICAg
ICAgICAgIGFuZCBkYXRhWyJwYWNrZXRfdHlwZSJdID09ICJ2ZXJzaW9uX25lZ290aWF0aW9uIgot
ICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC5W
Ci0KLQotYXN5bmMgZGVmIHRlc3RfaGFuZHNoYWtlX2FuZF9jbG9zZShzZXJ2ZXI6IFNlcnZlciwg
Y29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRpb24pOgotICAgIGFzeW5jIHdpdGggY29ubmVj
dCgKLSAgICAgICAgc2VydmVyLmhvc3QsIHNlcnZlci5wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZp
Z3VyYXRpb24KLSAgICApIGFzIHByb3RvY29sOgotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5n
KCkKLSAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuSAotICAgIHNlcnZlci5yZXN1bHQg
fD0gUmVzdWx0LkMKLQotCi1hc3luYyBkZWYgdGVzdF9zdGF0ZWxlc3NfcmV0cnkoc2VydmVyOiBT
ZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uKToKLSAgICBhc3luYyB3aXRo
IGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0LCBzZXJ2ZXIucmV0cnlfcG9ydCwgY29uZmln
dXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgKSBhcyBwcm90b2NvbDoKLSAgICAgICAgYXdhaXQg
cHJvdG9jb2wucGluZygpCi0KLSAgICAgICAgIyBjaGVjayBsb2cKLSAgICAgICAgZm9yIHN0YW1w
LCBjYXRlZ29yeSwgZXZlbnQsIGRhdGEgaW4gY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19k
aWN0KClbCi0gICAgICAgICAgICAidHJhY2VzIgotICAgICAgICBdWzBdWyJldmVudHMiXToKLSAg
ICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICBjYXRlZ29yeSA9PSAidHJhbnNwb3J0Igot
ICAgICAgICAgICAgICAgIGFuZCBldmVudCA9PSAicGFja2V0X3JlY2VpdmVkIgotICAgICAgICAg
ICAgICAgIGFuZCBkYXRhWyJwYWNrZXRfdHlwZSJdID09ICJyZXRyeSIKLSAgICAgICAgICAgICk6
Ci0gICAgICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuUwotCi0KLWFzeW5jIGRl
ZiB0ZXN0X3F1YW50dW1fcmVhZGluZXNzKHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBR
dWljQ29uZmlndXJhdGlvbik6Ci0gICAgY29uZmlndXJhdGlvbi5xdWFudHVtX3JlYWRpbmVzc190
ZXN0ID0gVHJ1ZQotICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgc2VydmVyLmhvc3Qs
IHNlcnZlci5wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAgICApIGFzIHByb3Rv
Y29sOgotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLSAgICAgICAgc2VydmVyLnJlc3Vs
dCB8PSBSZXN1bHQuUQotCi0KLWFzeW5jIGRlZiB0ZXN0X2h0dHBfMChzZXJ2ZXI6IFNlcnZlciwg
Y29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRpb24pOgotICAgIGlmIHNlcnZlci5wYXRoIGlz
IE5vbmU6Ci0gICAgICAgIHJldHVybgotCi0gICAgY29uZmlndXJhdGlvbi5hbHBuX3Byb3RvY29s
cyA9IEgwX0FMUE4KLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0
LAotICAgICAgICBzZXJ2ZXIucG9ydCwKLSAgICAgICAgY29uZmlndXJhdGlvbj1jb25maWd1cmF0
aW9uLAotICAgICAgICBjcmVhdGVfcHJvdG9jb2w9SHR0cENsaWVudCwKLSAgICApIGFzIHByb3Rv
Y29sOgotICAgICAgICBwcm90b2NvbCA9IGNhc3QoSHR0cENsaWVudCwgcHJvdG9jb2wpCi0KLSAg
ICAgICAgIyBwZXJmb3JtIEhUVFAgcmVxdWVzdAotICAgICAgICBldmVudHMgPSBhd2FpdCBwcm90
b2NvbC5nZXQoCi0gICAgICAgICAgICAiaHR0cHM6Ly97fTp7fXt9Ii5mb3JtYXQoc2VydmVyLmhv
c3QsIHNlcnZlci5wb3J0LCBzZXJ2ZXIucGF0aCkKLSAgICAgICAgKQotICAgICAgICBpZiBldmVu
dHMgYW5kIGlzaW5zdGFuY2UoZXZlbnRzWzBdLCBIZWFkZXJzUmVjZWl2ZWQpOgotICAgICAgICAg
ICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuRAotCi0KLWFzeW5jIGRlZiB0ZXN0X2h0dHBfMyhz
ZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRpb24pOgotICAgIGlm
IHNlcnZlci5wYXRoIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybgotCi0gICAgY29uZmlndXJhdGlv
bi5hbHBuX3Byb3RvY29scyA9IEgzX0FMUE4KLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAg
ICAgIHNlcnZlci5ob3N0LAotICAgICAgICBzZXJ2ZXIucG9ydCwKLSAgICAgICAgY29uZmlndXJh
dGlvbj1jb25maWd1cmF0aW9uLAotICAgICAgICBjcmVhdGVfcHJvdG9jb2w9SHR0cENsaWVudCwK
LSAgICApIGFzIHByb3RvY29sOgotICAgICAgICBwcm90b2NvbCA9IGNhc3QoSHR0cENsaWVudCwg
cHJvdG9jb2wpCi0KLSAgICAgICAgIyBwZXJmb3JtIEhUVFAgcmVxdWVzdAotICAgICAgICBldmVu
dHMgPSBhd2FpdCBwcm90b2NvbC5nZXQoCi0gICAgICAgICAgICAiaHR0cHM6Ly97fTp7fXt9Ii5m
b3JtYXQoc2VydmVyLmhvc3QsIHNlcnZlci5wb3J0LCBzZXJ2ZXIucGF0aCkKLSAgICAgICAgKQot
ICAgICAgICBpZiBldmVudHMgYW5kIGlzaW5zdGFuY2UoZXZlbnRzWzBdLCBIZWFkZXJzUmVjZWl2
ZWQpOgotICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuRAotICAgICAgICAgICAg
c2VydmVyLnJlc3VsdCB8PSBSZXN1bHQudGhyZWUKLQotICAgICAgICAjIHBlcmZvcm0gbW9yZSBI
VFRQIHJlcXVlc3RzIHRvIHVzZSBRUEFDSyBkeW5hbWljIHRhYmxlcwotICAgICAgICBmb3IgaSBp
biByYW5nZSgyKToKLSAgICAgICAgICAgIGV2ZW50cyA9IGF3YWl0IHByb3RvY29sLmdldCgKLSAg
ICAgICAgICAgICAgICAiaHR0cHM6Ly97fTp7fXt9Ii5mb3JtYXQoc2VydmVyLmhvc3QsIHNlcnZl
ci5wb3J0LCBzZXJ2ZXIucGF0aCkKLSAgICAgICAgICAgICkKLSAgICAgICAgaWYgZXZlbnRzIGFu
ZCBpc2luc3RhbmNlKGV2ZW50c1swXSwgSGVhZGVyc1JlY2VpdmVkKToKLSAgICAgICAgICAgIGh0
dHAgPSBjYXN0KEgzQ29ubmVjdGlvbiwgcHJvdG9jb2wuX2h0dHApCi0gICAgICAgICAgICBwcm90
b2NvbC5fcXVpYy5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgIlFQQUNLIGRlY29kZXIg
Ynl0ZXMgUlggJWQgVFggJWQiLAotICAgICAgICAgICAgICAgIGh0dHAuX2RlY29kZXJfYnl0ZXNf
cmVjZWl2ZWQsCi0gICAgICAgICAgICAgICAgaHR0cC5fZGVjb2Rlcl9ieXRlc19zZW50LAotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgcHJvdG9jb2wuX3F1aWMuX2xvZ2dlci5pbmZvKAotICAg
ICAgICAgICAgICAgICJRUEFDSyBlbmNvZGVyIGJ5dGVzIFJYICVkIFRYICVkIiwKLSAgICAgICAg
ICAgICAgICBodHRwLl9lbmNvZGVyX2J5dGVzX3JlY2VpdmVkLAotICAgICAgICAgICAgICAgIGh0
dHAuX2VuY29kZXJfYnl0ZXNfc2VudCwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGlmICgK
LSAgICAgICAgICAgICAgICBodHRwLl9kZWNvZGVyX2J5dGVzX3JlY2VpdmVkCi0gICAgICAgICAg
ICAgICAgYW5kIGh0dHAuX2RlY29kZXJfYnl0ZXNfc2VudAotICAgICAgICAgICAgICAgIGFuZCBo
dHRwLl9lbmNvZGVyX2J5dGVzX3JlY2VpdmVkCi0gICAgICAgICAgICAgICAgYW5kIGh0dHAuX2Vu
Y29kZXJfYnl0ZXNfc2VudAotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBzZXJ2ZXIu
cmVzdWx0IHw9IFJlc3VsdC5kCi0KLSAgICAgICAgIyBjaGVjayBwdXNoIHN1cHBvcnQKLSAgICAg
ICAgaWYgc2VydmVyLnB1c2hfcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHByb3RvY29s
LnB1c2hlcy5jbGVhcigpCi0gICAgICAgICAgICBhd2FpdCBwcm90b2NvbC5nZXQoCi0gICAgICAg
ICAgICAgICAgImh0dHBzOi8ve306e317fSIuZm9ybWF0KHNlcnZlci5ob3N0LCBzZXJ2ZXIucG9y
dCwgc2VydmVyLnB1c2hfcGF0aCkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGF3YWl0IGFz
eW5jaW8uc2xlZXAoMC41KQotICAgICAgICAgICAgZm9yIHB1c2hfaWQsIGV2ZW50cyBpbiBwcm90
b2NvbC5wdXNoZXMuaXRlbXMoKToKLSAgICAgICAgICAgICAgICBpZiAoCi0gICAgICAgICAgICAg
ICAgICAgIGxlbihldmVudHMpID49IDMKLSAgICAgICAgICAgICAgICAgICAgYW5kIGlzaW5zdGFu
Y2UoZXZlbnRzWzBdLCBQdXNoUHJvbWlzZVJlY2VpdmVkKQotICAgICAgICAgICAgICAgICAgICBh
bmQgaXNpbnN0YW5jZShldmVudHNbMV0sIEhlYWRlcnNSZWNlaXZlZCkKLSAgICAgICAgICAgICAg
ICAgICAgYW5kIGlzaW5zdGFuY2UoZXZlbnRzWzJdLCBEYXRhUmVjZWl2ZWQpCi0gICAgICAgICAg
ICAgICAgKToKLSAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2wuX3F1aWMuX2xvZ2dlci5pbmZv
KAotICAgICAgICAgICAgICAgICAgICAgICAgIlB1c2ggcHJvbWlzZSAlZCBmb3IgJXMgcmVjZWl2
ZWQgKHN0YXR1cyAlcykiLAotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaF9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGRpY3QoZXZlbnRzWzBdLmhlYWRlcnMpW2IiOnBhdGgiXS5kZWNv
ZGUoImFzY2lpIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQoZGljdChldmVudHNbMV0u
aGVhZGVycylbYiI6c3RhdHVzIl0pLAotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAg
ICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQucAotCi0KLWFzeW5jIGRlZiB0ZXN0
X3Nlc3Npb25fcmVzdW1wdGlvbihzZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVpY0Nv
bmZpZ3VyYXRpb24pOgotICAgIHBvcnQgPSBzZXJ2ZXIuc2Vzc2lvbl9yZXN1bXB0aW9uX3BvcnQg
b3Igc2VydmVyLnBvcnQKLSAgICBzYXZlZF90aWNrZXQgPSBOb25lCi0KLSAgICBkZWYgc2Vzc2lv
bl90aWNrZXRfaGFuZGxlcih0aWNrZXQpOgotICAgICAgICBub25sb2NhbCBzYXZlZF90aWNrZXQK
LSAgICAgICAgc2F2ZWRfdGlja2V0ID0gdGlja2V0Ci0KLSAgICAjIGNvbm5lY3QgYSBmaXJzdCB0
aW1lLCByZWNlaXZlIGEgdGlja2V0Ci0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBz
ZXJ2ZXIuaG9zdCwKLSAgICAgICAgcG9ydCwKLSAgICAgICAgY29uZmlndXJhdGlvbj1jb25maWd1
cmF0aW9uLAotICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXNlc3Npb25fdGlja2V0X2hh
bmRsZXIsCi0gICAgKSBhcyBwcm90b2NvbDoKLSAgICAgICAgYXdhaXQgcHJvdG9jb2wucGluZygp
Ci0KLSAgICAgICAgIyBzb21lIHNlcnZlcnMgZG9uJ3Qgc2VuZCB0aGUgdGlja2V0IGltbWVkaWF0
ZWx5Ci0gICAgICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMSkKLQotICAgICMgY29ubmVjdCBhIHNl
Y29uZCB0aW1lLCB3aXRoIHRoZSB0aWNrZXQKLSAgICBpZiBzYXZlZF90aWNrZXQgaXMgbm90IE5v
bmU6Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24uc2Vzc2lvbl90aWNrZXQgPSBzYXZlZF90aWNrZXQK
LSAgICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KHNlcnZlci5ob3N0LCBwb3J0LCBjb25maWd1cmF0
aW9uPWNvbmZpZ3VyYXRpb24pIGFzIHByb3RvY29sOgotICAgICAgICAgICAgYXdhaXQgcHJvdG9j
b2wucGluZygpCi0KLSAgICAgICAgICAgICMgY2hlY2sgc2Vzc2lvbiB3YXMgcmVzdW1lZAotICAg
ICAgICAgICAgaWYgcHJvdG9jb2wuX3F1aWMudGxzLnNlc3Npb25fcmVzdW1lZDoKLSAgICAgICAg
ICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC5SCi0KLSAgICAgICAgICAgICMgY2hlY2sg
ZWFybHkgZGF0YSB3YXMgYWNjZXB0ZWQKLSAgICAgICAgICAgIGlmIHByb3RvY29sLl9xdWljLnRs
cy5lYXJseV9kYXRhX2FjY2VwdGVkOgotICAgICAgICAgICAgICAgIHNlcnZlci5yZXN1bHQgfD0g
UmVzdWx0LloKLQotCi1hc3luYyBkZWYgdGVzdF9rZXlfdXBkYXRlKHNlcnZlcjogU2VydmVyLCBj
b25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlvbik6Ci0gICAgYXN5bmMgd2l0aCBjb25uZWN0
KAotICAgICAgICBzZXJ2ZXIuaG9zdCwgc2VydmVyLnBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmln
dXJhdGlvbgotICAgICkgYXMgcHJvdG9jb2w6Ci0gICAgICAgICMgY2F1c2Ugc29tZSB0cmFmZmlj
Ci0gICAgICAgIGF3YWl0IHByb3RvY29sLnBpbmcoKQotCi0gICAgICAgICMgcmVxdWVzdCBrZXkg
dXBkYXRlCi0gICAgICAgIHByb3RvY29sLnJlcXVlc3Rfa2V5X3VwZGF0ZSgpCi0KLSAgICAgICAg
IyBjYXVzZSBtb3JlIHRyYWZmaWMKLSAgICAgICAgYXdhaXQgcHJvdG9jb2wucGluZygpCi0KLSAg
ICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuVQotCi0KLWFzeW5jIGRlZiB0ZXN0X21pZ3Jh
dGlvbihzZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRpb24pOgot
ICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgc2VydmVyLmhvc3QsIHNlcnZlci5wb3J0
LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAgICApIGFzIHByb3RvY29sOgotICAgICAg
ICAjIGNhdXNlIHNvbWUgdHJhZmZpYwotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQot
ICAgICAgICAjIGNoYW5nZSBjb25uZWN0aW9uIElEIGFuZCByZXBsYWNlIHRyYW5zcG9ydAotICAg
ICAgICBwcm90b2NvbC5jaGFuZ2VfY29ubmVjdGlvbl9pZCgpCi0gICAgICAgIHByb3RvY29sLl90
cmFuc3BvcnQuY2xvc2UoKQotICAgICAgICBhd2FpdCBsb29wLmNyZWF0ZV9kYXRhZ3JhbV9lbmRw
b2ludChsYW1iZGE6IHByb3RvY29sLCBsb2NhbF9hZGRyPSgiOjoiLCAwKSkKLQotICAgICAgICAj
IGNhdXNlIG1vcmUgdHJhZmZpYwotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAg
ICAgICAjIGNoZWNrIGxvZwotICAgICAgICBkY2lkcyA9IHNldCgpCi0gICAgICAgIGZvciBzdGFt
cCwgY2F0ZWdvcnksIGV2ZW50LCBkYXRhIGluIGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIudG9f
ZGljdCgpWwotICAgICAgICAgICAgInRyYWNlcyIKLSAgICAgICAgXVswXVsiZXZlbnRzIl06Ci0g
ICAgICAgICAgICBpZiAoCi0gICAgICAgICAgICAgICAgY2F0ZWdvcnkgPT0gInRyYW5zcG9ydCIK
LSAgICAgICAgICAgICAgICBhbmQgZXZlbnQgPT0gInBhY2tldF9yZWNlaXZlZCIKLSAgICAgICAg
ICAgICAgICBhbmQgZGF0YVsicGFja2V0X3R5cGUiXSA9PSAiMVJUVCIKLSAgICAgICAgICAgICk6
Ci0gICAgICAgICAgICAgICAgZGNpZHMuYWRkKGRhdGFbImhlYWRlciJdWyJkY2lkIl0pCi0gICAg
ICAgIGlmIGxlbihkY2lkcykgPT0gMjoKLSAgICAgICAgICAgIHNlcnZlci5yZXN1bHQgfD0gUmVz
dWx0Lk0KLQotCi1hc3luYyBkZWYgdGVzdF9yZWJpbmRpbmcoc2VydmVyOiBTZXJ2ZXIsIGNvbmZp
Z3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uKToKLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0g
ICAgICAgIHNlcnZlci5ob3N0LCBzZXJ2ZXIucG9ydCwgY29uZmlndXJhdGlvbj1jb25maWd1cmF0
aW9uCi0gICAgKSBhcyBwcm90b2NvbDoKLSAgICAgICAgIyBjYXVzZSBzb21lIHRyYWZmaWMKLSAg
ICAgICAgYXdhaXQgcHJvdG9jb2wucGluZygpCi0KLSAgICAgICAgIyByZXBsYWNlIHRyYW5zcG9y
dAotICAgICAgICBwcm90b2NvbC5fdHJhbnNwb3J0LmNsb3NlKCkKLSAgICAgICAgYXdhaXQgbG9v
cC5jcmVhdGVfZGF0YWdyYW1fZW5kcG9pbnQobGFtYmRhOiBwcm90b2NvbCwgbG9jYWxfYWRkcj0o
Ijo6IiwgMCkpCi0KLSAgICAgICAgIyBjYXVzZSBtb3JlIHRyYWZmaWMKLSAgICAgICAgYXdhaXQg
cHJvdG9jb2wucGluZygpCi0KLSAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuQgotCi0K
LWFzeW5jIGRlZiB0ZXN0X3NwaW5fYml0KHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBR
dWljQ29uZmlndXJhdGlvbik6Ci0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBzZXJ2
ZXIuaG9zdCwgc2VydmVyLnBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbgotICAgICkg
YXMgcHJvdG9jb2w6Ci0gICAgICAgIGZvciBpIGluIHJhbmdlKDUpOgotICAgICAgICAgICAgYXdh
aXQgcHJvdG9jb2wucGluZygpCi0KLSAgICAgICAgIyBjaGVjayBsb2cKLSAgICAgICAgc3Bpbl9i
aXRzID0gc2V0KCkKLSAgICAgICAgZm9yIHN0YW1wLCBjYXRlZ29yeSwgZXZlbnQsIGRhdGEgaW4g
Y29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19kaWN0KClbCi0gICAgICAgICAgICAidHJhY2Vz
IgotICAgICAgICBdWzBdWyJldmVudHMiXToKLSAgICAgICAgICAgIGlmIGNhdGVnb3J5ID09ICJj
b25uZWN0aXZpdHkiIGFuZCBldmVudCA9PSAic3Bpbl9iaXRfdXBkYXRlZCI6Ci0gICAgICAgICAg
ICAgICAgc3Bpbl9iaXRzLmFkZChkYXRhWyJzdGF0ZSJdKQotICAgICAgICBpZiBsZW4oc3Bpbl9i
aXRzKSA9PSAyOgotICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuUAotCi0KLWFz
eW5jIGRlZiB0ZXN0X3Rocm91Z2hwdXQoc2VydmVyOiBTZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1
aWNDb25maWd1cmF0aW9uKToKLSAgICBmYWlsdXJlcyA9IDAKLQotICAgIGZvciBzaXplIGluIFs1
MDAwMDAwLCAxMDAwMDAwMF06Ci0gICAgICAgIHByaW50KCJUZXN0aW5nICVkIGJ5dGVzIGRvd25s
b2FkIiAlIHNpemUpCi0gICAgICAgIHBhdGggPSAiLyVkJXMiICUgKHNpemUsIHNlcnZlci50aHJv
dWdocHV0X2ZpbGVfc3VmZml4KQotCi0gICAgICAgICMgcGVyZm9ybSBIVFRQIHJlcXVlc3Qgb3Zl
ciBUQ1AKLSAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQotICAgICAgICByZXNwb25zZSA9IHJl
cXVlc3RzLmdldCgiaHR0cHM6Ly8iICsgc2VydmVyLmhvc3QgKyBwYXRoLCB2ZXJpZnk9RmFsc2Up
Ci0gICAgICAgIHRjcF9vY3RldHMgPSBsZW4ocmVzcG9uc2UuY29udGVudCkKLSAgICAgICAgdGNw
X2VsYXBzZWQgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0Ci0gICAgICAgIGFzc2VydCB0Y3Bfb2N0ZXRz
ID09IHNpemUsICJIVFRQL1RDUCByZXNwb25zZSBzaXplIG1pc21hdGNoIgotCi0gICAgICAgICMg
cGVyZm9ybSBIVFRQIHJlcXVlc3Qgb3ZlciBRVUlDCi0gICAgICAgIGlmIHNlcnZlci5odHRwMzoK
LSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uYWxwbl9wcm90b2NvbHMgPSBIM19BTFBOCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uLmFscG5fcHJvdG9jb2xzID0gSDBf
QUxQTgotICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCi0gICAgICAgIGFzeW5jIHdpdGggY29u
bmVjdCgKLSAgICAgICAgICAgIHNlcnZlci5ob3N0LAotICAgICAgICAgICAgc2VydmVyLnBvcnQs
Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICBj
cmVhdGVfcHJvdG9jb2w9SHR0cENsaWVudCwKLSAgICAgICAgKSBhcyBwcm90b2NvbDoKLSAgICAg
ICAgICAgIHByb3RvY29sID0gY2FzdChIdHRwQ2xpZW50LCBwcm90b2NvbCkKLQotICAgICAgICAg
ICAgaHR0cF9ldmVudHMgPSBhd2FpdCBwcm90b2NvbC5nZXQoCi0gICAgICAgICAgICAgICAgImh0
dHBzOi8ve306e317fSIuZm9ybWF0KHNlcnZlci5ob3N0LCBzZXJ2ZXIucG9ydCwgcGF0aCkKLSAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIHF1aWNfZWxhcHNlZCA9IHRpbWUudGltZSgpIC0gc3Rh
cnQKLSAgICAgICAgICAgIHF1aWNfb2N0ZXRzID0gMAotICAgICAgICAgICAgZm9yIGh0dHBfZXZl
bnQgaW4gaHR0cF9ldmVudHM6Ci0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShodHRwX2V2
ZW50LCBEYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAgICAgICBxdWljX29jdGV0cyArPSBs
ZW4oaHR0cF9ldmVudC5kYXRhKQotICAgICAgICBhc3NlcnQgcXVpY19vY3RldHMgPT0gc2l6ZSwg
IkhUVFAvUVVJQyByZXNwb25zZSBzaXplIG1pc21hdGNoIgotCi0gICAgICAgIHByaW50KCIgLSBI
VFRQL1RDUCAgY29tcGxldGVkIGluICUuM2YgcyIgJSB0Y3BfZWxhcHNlZCkKLSAgICAgICAgcHJp
bnQoIiAtIEhUVFAvUVVJQyBjb21wbGV0ZWQgaW4gJS4zZiBzIiAlIHF1aWNfZWxhcHNlZCkKLQot
ICAgICAgICBpZiBxdWljX2VsYXBzZWQgPiAxLjEgKiB0Y3BfZWxhcHNlZDoKLSAgICAgICAgICAg
IGZhaWx1cmVzICs9IDEKLSAgICAgICAgICAgIHByaW50KCIgPT4gRkFJTCIpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBwcmludCgiID0+IFBBU1MiKQotCi0gICAgaWYgZmFpbHVyZXMgPT0g
MDoKLSAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuVAotCi0KLWRlZiBwcmludF9yZXN1
bHQoc2VydmVyOiBTZXJ2ZXIpIC0+IE5vbmU6Ci0gICAgcmVzdWx0ID0gc3RyKHNlcnZlci5yZXN1
bHQpLnJlcGxhY2UoInRocmVlIiwgIjMiKQotICAgIHJlc3VsdCA9IHJlc3VsdFswOjhdICsgIiAi
ICsgcmVzdWx0Wzg6MTZdICsgIiAiICsgcmVzdWx0WzE2Ol0KLSAgICBwcmludCgiJXMlcyVzIiAl
IChzZXJ2ZXIubmFtZSwgIiAiICogKDIwIC0gbGVuKHNlcnZlci5uYW1lKSksIHJlc3VsdCkpCi0K
LQotYXN5bmMgZGVmIHJ1bihzZXJ2ZXJzLCB0ZXN0cywgcXVpY19sb2c9RmFsc2UsIHNlY3JldHNf
bG9nX2ZpbGU9Tm9uZSkgLT4gTm9uZToKLSAgICBmb3Igc2VydmVyIGluIHNlcnZlcnM6Ci0gICAg
ICAgIGlmIHNlcnZlci5zdHJ1Y3R1cmVkX2xvZ2dpbmc6Ci0gICAgICAgICAgICBzZXJ2ZXIucmVz
dWx0IHw9IFJlc3VsdC5MCi0gICAgICAgIGZvciB0ZXN0X25hbWUsIHRlc3RfZnVuYyBpbiB0ZXN0
czoKLSAgICAgICAgICAgIHByaW50KCJcbj09PSAlcyAlcyA9PT1cbiIgJSAoc2VydmVyLm5hbWUs
IHRlc3RfbmFtZSkpCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRp
b24oCi0gICAgICAgICAgICAgICAgYWxwbl9wcm90b2NvbHM9SDNfQUxQTiArIEgwX0FMUE4sCi0g
ICAgICAgICAgICAgICAgaXNfY2xpZW50PVRydWUsCi0gICAgICAgICAgICAgICAgcXVpY19sb2dn
ZXI9UXVpY0xvZ2dlcigpLAotICAgICAgICAgICAgICAgIHNlY3JldHNfbG9nX2ZpbGU9c2VjcmV0
c19sb2dfZmlsZSwKLSAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZT1zZXJ2ZXIudmVyaWZ5X21v
ZGUsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBpZiB0ZXN0X25hbWUgPT0gInRlc3RfdGhy
b3VnaHB1dCI6Ci0gICAgICAgICAgICAgICAgdGltZW91dCA9IDYwCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAxMAotICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgIGF3YWl0IGFzeW5jaW8ud2FpdF9mb3IoCi0gICAgICAgICAgICAgICAgICAgIHRl
c3RfZnVuYyhzZXJ2ZXIsIGNvbmZpZ3VyYXRpb24pLCB0aW1lb3V0PXRpbWVvdXQKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzoKLSAgICAgICAg
ICAgICAgICBwcmludChleGMpCi0KLSAgICAgICAgICAgIGlmIHF1aWNfbG9nOgotICAgICAgICAg
ICAgICAgIHdpdGggb3BlbigiJXMtJXMucWxvZyIgJSAoc2VydmVyLm5hbWUsIHRlc3RfbmFtZSks
ICJ3IikgYXMgbG9nZ2VyX2ZwOgotICAgICAgICAgICAgICAgICAgICBqc29uLmR1bXAoY29uZmln
dXJhdGlvbi5xdWljX2xvZ2dlci50b19kaWN0KCksIGxvZ2dlcl9mcCwgaW5kZW50PTQpCi0KLSAg
ICAgICAgcHJpbnQoIiIpCi0gICAgICAgIHByaW50X3Jlc3VsdChzZXJ2ZXIpCi0KLSAgICAjIHBy
aW50IHN1bW1hcnkKLSAgICBpZiBsZW4oc2VydmVycykgPiAxOgotICAgICAgICBwcmludCgiU1VN
TUFSWSIpCi0gICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyczoKLSAgICAgICAgICAgIHByaW50
X3Jlc3VsdChzZXJ2ZXIpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBwYXJz
ZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iUVVJQyBpbnRlcm9wIGNs
aWVudCIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1xIiwKLSAgICAgICAg
Ii0tcXVpYy1sb2ciLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxw
PSJsb2cgUVVJQyBldmVudHMgdG8gYSBmaWxlIGluIFFMT0cgZm9ybWF0IiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0tc2VydmVyIiwgdHlwZT1zdHIsIGhlbHA9
Im9ubHkgcnVuIGFnYWluc3QgdGhlIHNwZWNpZmllZCBzZXJ2ZXIuIgotICAgICkKLSAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCItLXRlc3QiLCB0eXBlPXN0ciwgaGVscD0ib25seSBydW4gdGhlIHNw
ZWNpZmVkIHRlc3QuIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLWwiLAot
ICAgICAgICAiLS1zZWNyZXRzLWxvZyIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxw
PSJsb2cgc2VjcmV0cyB0byBhIGZpbGUsIGZvciB1c2Ugd2l0aCBXaXJlc2hhcmsiLAotICAgICkK
LSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXYiLCAiLS12ZXJib3NlIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iaW5jcmVhc2UgbG9nZ2luZyB2ZXJib3NpdHkiCi0gICAg
KQotCi0gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWND
b25maWcoCi0gICAgICAgIGZvcm1hdD0iJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG5hbWUp
cyAlKG1lc3NhZ2UpcyIsCi0gICAgICAgIGxldmVsPWxvZ2dpbmcuREVCVUcgaWYgYXJncy52ZXJi
b3NlIGVsc2UgbG9nZ2luZy5JTkZPLAotICAgICkKLQotICAgICMgb3BlbiBTU0wgbG9nIGZpbGUK
LSAgICBpZiBhcmdzLnNlY3JldHNfbG9nOgotICAgICAgICBzZWNyZXRzX2xvZ19maWxlID0gb3Bl
bihhcmdzLnNlY3JldHNfbG9nLCAiYSIpCi0gICAgZWxzZToKLSAgICAgICAgc2VjcmV0c19sb2df
ZmlsZSA9IE5vbmUKLQotICAgICMgZGV0ZXJtaW5lIHdoYXQgdG8gcnVuCi0gICAgc2VydmVycyA9
IFNFUlZFUlMKLSAgICB0ZXN0cyA9IGxpc3QoZmlsdGVyKGxhbWJkYSB4OiB4WzBdLnN0YXJ0c3dp
dGgoInRlc3RfIiksIGdsb2JhbHMoKS5pdGVtcygpKSkKLSAgICBpZiBhcmdzLnNlcnZlcjoKLSAg
ICAgICAgc2VydmVycyA9IGxpc3QoZmlsdGVyKGxhbWJkYSB4OiB4Lm5hbWUgPT0gYXJncy5zZXJ2
ZXIsIHNlcnZlcnMpKQotICAgIGlmIGFyZ3MudGVzdDoKLSAgICAgICAgdGVzdHMgPSBsaXN0KGZp
bHRlcihsYW1iZGEgeDogeFswXSA9PSBhcmdzLnRlc3QsIHRlc3RzKSkKLQotICAgICMgZGlzYWJs
ZSByZXF1ZXN0cyBTU0wgd2FybmluZ3MKLSAgICB1cmxsaWIzLmRpc2FibGVfd2FybmluZ3ModXJs
bGliMy5leGNlcHRpb25zLkluc2VjdXJlUmVxdWVzdFdhcm5pbmcpCi0KLSAgICBsb29wID0gYXN5
bmNpby5nZXRfZXZlbnRfbG9vcCgpCi0gICAgbG9vcC5ydW5fdW50aWxfY29tcGxldGUoCi0gICAg
ICAgIHJ1bigKLSAgICAgICAgICAgIHNlcnZlcnM9c2VydmVycywKLSAgICAgICAgICAgIHRlc3Rz
PXRlc3RzLAotICAgICAgICAgICAgcXVpY19sb2c9YXJncy5xdWljX2xvZywKLSAgICAgICAgICAg
IHNlY3JldHNfbG9nX2ZpbGU9c2VjcmV0c19sb2dfZmlsZSwKLSAgICAgICAgKQotICAgICkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9zaWR1Y2tfY2xpZW50LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2V4YW1wbGVzL3NpZHVja19jbGllbnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFiNmE1Yjc2ZTBlNzAxODI4MjY3YzMzM2YzMzg0NzZkNWIwZTcyMmEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1w
bGVzL3NpZHVja19jbGllbnQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotaW1w
b3J0IGFyZ3BhcnNlCi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGpzb24KLWltcG9ydCBsb2dnaW5n
Ci1pbXBvcnQgc3NsCi1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIGNhc3QKLQotZnJvbSBh
aW9xdWljLmFzeW5jaW8uY2xpZW50IGltcG9ydCBjb25uZWN0Ci1mcm9tIGFpb3F1aWMuYXN5bmNp
by5wcm90b2NvbCBpbXBvcnQgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbAotZnJvbSBhaW9xdWljLnF1
aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZyb20gYWlvcXVpYy5x
dWljLmV2ZW50cyBpbXBvcnQgRGF0YWdyYW1GcmFtZVJlY2VpdmVkLCBRdWljRXZlbnQKLWZyb20g
YWlvcXVpYy5xdWljLmxvZ2dlciBpbXBvcnQgUXVpY0xvZ2dlcgotCi1sb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcigiY2xpZW50IikKLQotCi1jbGFzcyBTaWR1Y2tDbGllbnQoUXVpY0Nvbm5lY3Rp
b25Qcm90b2NvbCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0g
ICAgICAgIHN1cGVyKCkuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICBzZWxmLl9h
Y2tfd2FpdGVyOiBPcHRpb25hbFthc3luY2lvLkZ1dHVyZVtOb25lXV0gPSBOb25lCi0KLSAgICBh
c3luYyBkZWYgcXVhY2soc2VsZikgLT4gTm9uZToKLSAgICAgICAgYXNzZXJ0IHNlbGYuX2Fja193
YWl0ZXIgaXMgTm9uZSwgIk9ubHkgb25lIHF1YWNrIGF0IGEgdGltZS4iCi0gICAgICAgIHNlbGYu
X3F1aWMuc2VuZF9kYXRhZ3JhbV9mcmFtZShiInF1YWNrIikKLQotICAgICAgICB3YWl0ZXIgPSBz
ZWxmLl9sb29wLmNyZWF0ZV9mdXR1cmUoKQotICAgICAgICBzZWxmLl9hY2tfd2FpdGVyID0gd2Fp
dGVyCi0gICAgICAgIHNlbGYudHJhbnNtaXQoKQotCi0gICAgICAgIHJldHVybiBhd2FpdCBhc3lu
Y2lvLnNoaWVsZCh3YWl0ZXIpCi0KLSAgICBkZWYgcXVpY19ldmVudF9yZWNlaXZlZChzZWxmLCBl
dmVudDogUXVpY0V2ZW50KSAtPiBOb25lOgotICAgICAgICBpZiBzZWxmLl9hY2tfd2FpdGVyIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgRGF0YWdyYW1GcmFt
ZVJlY2VpdmVkKSBhbmQgZXZlbnQuZGF0YSA9PSBiInF1YWNrLWFjayI6Ci0gICAgICAgICAgICAg
ICAgd2FpdGVyID0gc2VsZi5fYWNrX3dhaXRlcgotICAgICAgICAgICAgICAgIHNlbGYuX2Fja193
YWl0ZXIgPSBOb25lCi0gICAgICAgICAgICAgICAgd2FpdGVyLnNldF9yZXN1bHQoTm9uZSkKLQot
Ci1hc3luYyBkZWYgcnVuKGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uLCBob3N0OiBz
dHIsIHBvcnQ6IGludCkgLT4gTm9uZToKLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAg
IGhvc3QsIHBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwgY3JlYXRlX3Byb3RvY29s
PVNpZHVja0NsaWVudAotICAgICkgYXMgY2xpZW50OgotICAgICAgICBjbGllbnQgPSBjYXN0KFNp
ZHVja0NsaWVudCwgY2xpZW50KQotICAgICAgICBsb2dnZXIuaW5mbygic2VuZGluZyBxdWFjayIp
Ci0gICAgICAgIGF3YWl0IGNsaWVudC5xdWFjaygpCi0gICAgICAgIGxvZ2dlci5pbmZvKCJyZWNl
aXZlZCBxdWFjay1hY2siKQotCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249IlNpRFVDSyBjbGllbnQi
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICJob3N0IiwgdHlwZT1zdHIsIGhl
bHA9IlRoZSByZW1vdGUgcGVlcidzIGhvc3QgbmFtZSBvciBJUCBhZGRyZXNzIgotICAgICkKLSAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJwb3J0IiwgdHlwZT1pbnQsIGhlbHA9IlRoZSByZW1vdGUg
cGVlcidzIHBvcnQgbnVtYmVyIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAi
LWsiLAotICAgICAgICAiLS1pbnNlY3VyZSIsCi0gICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
Ci0gICAgICAgIGhlbHA9ImRvIG5vdCB2YWxpZGF0ZSBzZXJ2ZXIgY2VydGlmaWNhdGUiLAotICAg
ICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXEiLCAiLS1xdWljLWxvZyIs
IHR5cGU9c3RyLCBoZWxwPSJsb2cgUVVJQyBldmVudHMgdG8gYSBmaWxlIGluIFFMT0cgZm9ybWF0
IgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLWwiLAotICAgICAg
ICAiLS1zZWNyZXRzLWxvZyIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJsb2cg
c2VjcmV0cyB0byBhIGZpbGUsIGZvciB1c2Ugd2l0aCBXaXJlc2hhcmsiLAotICAgICkKLSAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXYiLCAiLS12ZXJib3NlIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgaGVscD0iaW5jcmVhc2UgbG9nZ2luZyB2ZXJib3NpdHkiCi0gICAgKQotCi0g
ICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWco
Ci0gICAgICAgIGZvcm1hdD0iJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG5hbWUpcyAlKG1l
c3NhZ2UpcyIsCi0gICAgICAgIGxldmVsPWxvZ2dpbmcuREVCVUcgaWYgYXJncy52ZXJib3NlIGVs
c2UgbG9nZ2luZy5JTkZPLAotICAgICkKLQotICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmln
dXJhdGlvbigKLSAgICAgICAgYWxwbl9wcm90b2NvbHM9WyJzaWR1Y2siXSwgaXNfY2xpZW50PVRy
dWUsIG1heF9kYXRhZ3JhbV9mcmFtZV9zaXplPTY1NTM2Ci0gICAgKQotICAgIGlmIGFyZ3MuaW5z
ZWN1cmU6Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24udmVyaWZ5X21vZGUgPSBzc2wuQ0VSVF9OT05F
Ci0gICAgaWYgYXJncy5xdWljX2xvZzoKLSAgICAgICAgY29uZmlndXJhdGlvbi5xdWljX2xvZ2dl
ciA9IFF1aWNMb2dnZXIoKQotICAgIGlmIGFyZ3Muc2VjcmV0c19sb2c6Ci0gICAgICAgIGNvbmZp
Z3VyYXRpb24uc2VjcmV0c19sb2dfZmlsZSA9IG9wZW4oYXJncy5zZWNyZXRzX2xvZywgImEiKQot
Ci0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQotICAgIHRyeToKLSAgICAgICAg
bG9vcC5ydW5fdW50aWxfY29tcGxldGUoCi0gICAgICAgICAgICBydW4oY29uZmlndXJhdGlvbj1j
b25maWd1cmF0aW9uLCBob3N0PWFyZ3MuaG9zdCwgcG9ydD1hcmdzLnBvcnQpCi0gICAgICAgICkK
LSAgICBmaW5hbGx5OgotICAgICAgICBpZiBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgd2l0aCBvcGVuKGFyZ3MucXVpY19sb2csICJ3IikgYXMgbG9n
Z2VyX2ZwOgotICAgICAgICAgICAgICAgIGpzb24uZHVtcChjb25maWd1cmF0aW9uLnF1aWNfbG9n
Z2VyLnRvX2RpY3QoKSwgbG9nZ2VyX2ZwLCBpbmRlbnQ9NCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9leGFtcGxlcy90ZW1wbGF0ZXMvaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxl
cy90ZW1wbGF0ZXMvaW5kZXguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDA4
NTQ4N2U4NDA4MTAzNzY1MzRiYzQyOGQ1MTAyYjRlZThhNjJlOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxh
dGVzL2luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIv
PgotICAgICAgICA8dGl0bGU+YWlvcXVpYzwvdGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iL3N0eWxlLmNzcyIvPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAg
ICAgICAgPGgxPldlbGNvbWUgdG8gYWlvcXVpYzwvaDE+Ci0gICAgICAgIDxwPgotICAgICAgICAg
ICAgVGhpcyBpcyBhIHRlc3QgcGFnZSBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Fp
b3J0Yy9haW9xdWljLyI+YWlvcXVpYzwvYT4sCi0gICAgICAgICAgICBhIFFVSUMgYW5kIEhUVFAv
MyBpbXBsZW1lbnRhdGlvbiB3cml0dGVuIGluIFB5dGhvbi4KLSAgICAgICAgPC9wPgoteyUgaWYg
cmVxdWVzdC5zY29wZVsiaHR0cF92ZXJzaW9uIl0gPT0gIjMiICV9Ci0gICAgICAgIDxwPgotICAg
ICAgICAgICAgQ29uZ3JhdHVsYXRpb25zLCB5b3UgbG9hZGVkIHRoaXMgcGFnZSB1c2luZyBIVFRQ
LzMhCi0gICAgICAgIDwvcD4KLXslIGVuZGlmICV9Ci0gICAgICAgIDxoMj5BdmFpbGFibGUgZW5k
cG9pbnRzPC9oMj4KLSAgICAgICAgPHVsPgotICAgICAgICAgICAgPGxpPjxzdHJvbmc+R0VUIC88
L3N0cm9uZz4gcmV0dXJucyB0aGUgaG9tZXBhZ2U8L2xpPgotICAgICAgICAgICAgPGxpPjxzdHJv
bmc+R0VUIC9OTk5OTjwvc3Ryb25nPiByZXR1cm5zIE5OTk5OIGJ5dGVzIG9mIHBsYWluIHRleHQ8
L2xpPgotICAgICAgICAgICAgPGxpPjxzdHJvbmc+UE9TVCAvZWNobzwvc3Ryb25nPiByZXR1cm5z
IHRoZSByZXF1ZXN0IGRhdGE8L2xpPgotICAgICAgICAgICAgPGxpPgotICAgICAgICAgICAgICAg
IDxzdHJvbmc+Q09OTkVDVCAvd3M8L3N0cm9uZz4gcnVucyBhIFdlYlNvY2tldCBlY2hvIHNlcnZp
Y2UuCi0gICAgICAgICAgICAgICAgWW91IG11c3Qgc2V0IHRoZSA8ZW0+OnByb3RvY29sPC9lbT4g
cHNldWRvLWhlYWRlciB0byA8ZW0+IndlYnNvY2tldCI8L2VtPi4KLSAgICAgICAgICAgIDwvbGk+
Ci0gICAgICAgICAgICA8bGk+VGhlcmUgaXMgYWxzbyBhbiA8YSBocmVmPSIvaHR0cGJpbi8iPmh0
dHBiaW4gaW5zdGFuY2U8L2E+LjwvbGk+Ci0gICAgICAgIDwvdWw+Ci0gICAgPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3RlbXBsYXRlcy9sb2dzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL2xvZ3MuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzA5OWY2N2RjYTIyYzU3ZmJjOTFkOGQxOWEwZDZhODhmM2Mx
YjlmNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL2xvZ3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDI4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+Ci0gICAgICAgIDx0aXRsZT5haW9xdWljIC0gbG9nczwv
dGl0bGU+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0eWxlLmNzcyIv
PgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGgxPlFMT0cgZmlsZXM8L2gxPgot
ICAgICAgICA8dGFibGUgY2xhc3M9ImxvZ3MiPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8
dGg+bmFtZTwvdGg+Ci0gICAgICAgICAgICA8dGg+ZGF0ZSAoVVRDKTwvdGg+Ci0gICAgICAgICAg
ICA8dGg+c2l6ZTwvdGg+Ci0gICAgICAgIDwvdHI+Ci17JSBmb3IgbG9nIGluIGxvZ3MgJX0KLSAg
ICAgICAgPHRyPgotICAgICAgICAgICAgPHRkIGNsYXNzPSJuYW1lIj4KLSAgICAgICAgICAgICAg
ICA8YSBocmVmPSJ7eyBsb2cuZmlsZV91cmwgfX0iPnt7IGxvZy5uYW1lIH19PC9hPgotICAgICAg
ICAgICAgICAgIDxhIGhyZWY9Int7IGxvZy5xdmlzX3VybCB9fSI+W3F2aXNdPC9hPgotICAgICAg
ICAgICAgPC90ZD4KLSAgICAgICAgICAgIDx0ZCBjbGFzcz0iZGF0ZSI+e3sgbG9nLmRhdGUgfX08
L3RkPgotICAgICAgICAgICAgPHRkIGNsYXNzPSJzaXplIj57eyBsb2cuc2l6ZSB9fTwvdGQ+Ci0g
ICAgICAgIDwvdHI+Ci17JSBlbmRmb3IgJX0KLSAgICAgICAgPC90YWJsZT4KLSAgICA8L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3RlbXBsYXRlcy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZiYjlkMzY0ZDdjZGMwMmYyNjQz
ZTNkN2JkZDc0ODIxYmY0NDY4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL3RlbXBsYXRlcy9pbmRleC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3RlbXBs
YXRlcy9sb2dzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTBiYTZkMTI0Y2JiOThlODBmNzk0ZmVjYTVlNmQ5YjNhNTJm
Mzg1ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvUkVBRE1FLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9leGFtcGxlcy9kZW1vLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RvcV9jbGll
bnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvZG9xX3NlcnZlci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9leGFtcGxlcy9odHRwM19jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0cDNf
c2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0dHB4X2NsaWVudC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9leGFtcGxlcy9pbnRlcm9wLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3NpZHVj
a19jbGllbnQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9yZXF1aXJlbWVudHMvZG9jLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9yZXF1aXJlbWVudHMvZG9jLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmMzM2EzOTc4NzRjNjUzYzkxYTIwYTBiOTI1NjczZDVjNDljN2I4OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
cmVxdWlyZW1lbnRzL2RvYy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLWNyeXB0
b2dyYXBoeQotc3BoaW54X2F1dG9kb2NfdHlwZWhpbnRzCi1zcGhpbnhjb250cmliLWFzeW5jaW8K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ZWUyMmU3NGJkMjFhOTQ2N2NmMTY2ZDk0MDRjNjI2OWEwOWQ1YTBjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvcmVxdWlyZW1lbnRzL2RvYy50eHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9zY3JpcHRzL2ZldGNoLXZlbmRvciBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zY3Jp
cHRzL2ZldGNoLXZlbmRvcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA2ZDYyMzcx
NDc4ZDQyN2M5NWY1MjI1ZGI0MzAwZjdhMWE4NTgyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2NyaXB0cy9mZXRjaC12ZW5kb3IK
KysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLQot
aW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IGpzb24KLWltcG9ydCBvcwot
aW1wb3J0IHNodXRpbAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBz
eXMKLQotCi1kZWYgZ2V0X3BsYXRmb3JtKCk6Ci0gICAgaWYgc3lzLnBsYXRmb3JtID09ICJsaW51
eCI6Ci0gICAgICAgIHJldHVybiAibWFueWxpbnV4XyVzIiAlIG9zLnVuYW1lKCkubWFjaGluZQot
ICAgIGVsaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOgotICAgICAgICByZXR1cm4gIm1hY29z
eF8lcyIgJSBvcy51bmFtZSgpLm1hY2hpbmUKLSAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAid2lu
MzIiOgotICAgICAgICByZXR1cm4gIndpbiVzIiAlIChzdHJ1Y3QuY2FsY3NpemUoIlAiKSAqIDgp
Ci0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBwbGF0Zm9t
ICVzIiAlIHN5cy5wbGF0Zm9ybSkKLQotCi1wYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNl
cihkZXNjcmlwdGlvbj0iRmV0Y2ggYW5kIGV4dHJhY3QgdGFyYmFsbHMiKQotcGFyc2VyLmFkZF9h
cmd1bWVudCgiZGVzdGluYXRpb25fZGlyIikKLXBhcnNlci5hZGRfYXJndW1lbnQoIi0tY2FjaGUt
ZGlyIiwgZGVmYXVsdD0idGFyYmFsbHMiKQotcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jb25maWct
ZmlsZSIsIGRlZmF1bHQ9X19maWxlX18gKyAiLmpzb24iKQotYXJncyA9IHBhcnNlci5wYXJzZV9h
cmdzKCkKLWxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5JTkZPKQotCi0jIHdvcmsg
YXJvdW5kIGJ1Z2d5ICd0YXInIGV4ZWN1dGFibGUgb24gV2luZG93cwotaWYgc3lzLnBsYXRmb3Jt
ID09ICJ3aW4zMiI6Ci0gICAgb3MuZW52aXJvblsiUEFUSCJdID0gIkM6XFxQcm9ncmFtIEZpbGVz
XFxHaXRcXHVzclxcYmluOyIgKyBvcy5lbnZpcm9uWyJQQVRIIl0KLQotIyByZWFkIGNvbmZpZyBm
aWxlCi13aXRoIG9wZW4oYXJncy5jb25maWdfZmlsZSwgInIiKSBhcyBmcDoKLSAgICBjb25maWcg
PSBqc29uLmxvYWQoZnApCi0KLSMgY3JlYXRlIGZyZXNoIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQot
bG9nZ2luZy5pbmZvKCJDcmVhdGluZyBkaXJlY3RvcnkgJXMiICUgYXJncy5kZXN0aW5hdGlvbl9k
aXIpCi1pZiBvcy5wYXRoLmV4aXN0cyhhcmdzLmRlc3RpbmF0aW9uX2Rpcik6Ci0gICAgc2h1dGls
LnJtdHJlZShhcmdzLmRlc3RpbmF0aW9uX2RpcikKLW9zLm1rZGlyKGFyZ3MuZGVzdGluYXRpb25f
ZGlyKQotCi1mb3IgdXJsX3RlbXBsYXRlIGluIGNvbmZpZ1sidXJscyJdOgotICAgIHRhcmJhbGxf
dXJsID0gdXJsX3RlbXBsYXRlLnJlcGxhY2UoIntwbGF0Zm9ybX0iLCBnZXRfcGxhdGZvcm0oKSkK
LQotICAgICMgZG93bmxvYWQgdGFyYmFsbAotICAgIHRhcmJhbGxfbmFtZSA9IHRhcmJhbGxfdXJs
LnNwbGl0KCIvIilbLTFdCi0gICAgdGFyYmFsbF9maWxlID0gb3MucGF0aC5qb2luKGFyZ3MuY2Fj
aGVfZGlyLCB0YXJiYWxsX25hbWUpCi0gICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHRhcmJhbGxf
ZmlsZSk6Ci0gICAgICAgIGxvZ2dpbmcuaW5mbygiRG93bmxvYWRpbmcgJXMiICUgdGFyYmFsbF91
cmwpCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhhcmdzLmNhY2hlX2Rpcik6Ci0gICAg
ICAgICAgICBvcy5ta2RpcihhcmdzLmNhY2hlX2RpcikKLSAgICAgICAgc3VicHJvY2Vzcy5jaGVj
a19jYWxsKAotICAgICAgICAgICAgWyJjdXJsIiwgIi0tbG9jYXRpb24iLCAiLS1vdXRwdXQiLCB0
YXJiYWxsX2ZpbGUsICItLXNpbGVudCIsIHRhcmJhbGxfdXJsXQotICAgICAgICApCi0KLSAgICAj
IGV4dHJhY3QgdGFyYmFsbAotICAgIGxvZ2dpbmcuaW5mbygiRXh0cmFjdGluZyAlcyIgJSB0YXJi
YWxsX25hbWUpCi0gICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsidGFyIiwgIi1DIiwgYXJncy5k
ZXN0aW5hdGlvbl9kaXIsICIteGYiLCB0YXJiYWxsX2ZpbGVdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NjcmlwdHMvZmV0Y2gtdmVuZG9yLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2NyaXB0cy9m
ZXRjaC12ZW5kb3IuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI4MDIzNWJl
YjAzODQ4YTM0ODZhYTk3YjFjMzlmNDZmOWI5MjdjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2NyaXB0cy9mZXRjaC12ZW5kb3Iu
anNvbgorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotewotICAgICJ1cmxzIjogWyJodHRw
czovL2dpdGh1Yi5jb20vYWlvcnRjL2Fpb3F1aWMtb3BlbnNzbC9yZWxlYXNlcy9kb3dubG9hZC8x
LjEuMWYtMS9vcGVuc3NsLXtwbGF0Zm9ybX0udGFyLmJ6MiJdCi19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc2NyaXB0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zY3JpcHRzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmE5YTlkNDA0NjMw
ZWZiMWJhOGNhNDk1YTliMzNiZGQ2N2E1ZjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zY3JpcHRzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Njcmlw
dHMvZmV0Y2gtdmVuZG9yCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NjcmlwdHMvZmV0Y2gtdmVuZG9yLmpzb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5jZmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2V0dXAu
Y2ZnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWMwMjVhZDBmNzMzYjM4YmI5NGY4
YmI4ZWIwNDc4NWRhM2I0ZjQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5jZmcKKysrIC9kZXYvbnVsbApAQCAtMSwyMSAr
MCwwIEBACi1bY292ZXJhZ2U6cnVuXQotc291cmNlID0gYWlvcXVpYwotCi1bZmxha2U4XQotaWdu
b3JlPUUyMDMsVzUwMwotbWF4LWxpbmUtbGVuZ3RoPTE1MAotCi1baXNvcnRdCi1kZWZhdWx0X3Nl
Y3Rpb24gPSBUSElSRFBBUlRZCi1pbmNsdWRlX3RyYWlsaW5nX2NvbW1hID0gVHJ1ZQota25vd25f
Zmlyc3RfcGFydHkgPSBhaW9xdWljCi1saW5lX2xlbmd0aCA9IDg4Ci1tdWx0aV9saW5lX291dHB1
dCA9IDMKLQotW215cHldCi1kaXNhbGxvd191bnR5cGVkX2NhbGxzID0gVHJ1ZQotZGlzYWxsb3df
dW50eXBlZF9kZWNvcmF0b3JzID0gVHJ1ZQotaWdub3JlX21pc3NpbmdfaW1wb3J0cyA9IFRydWUK
LXN0cmljdF9vcHRpb25hbCA9IEZhbHNlCi13YXJuX3JlZHVuZGFudF9jYXN0cyA9IFRydWUKLXdh
cm5fdW51c2VkX2lnbm9yZXMgPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2V0dXAu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvc2V0dXAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE1YzVlYTNjNDQzZjBkMWJjZGJiZWYxYTI5MmVkMDQ3NDRlYjk2YjkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NldHVwLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotaW1wb3J0IG9zLnBhdGgKLWltcG9ydCBzeXMK
LQotaW1wb3J0IHNldHVwdG9vbHMKLQotcm9vdF9kaXIgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkKLQotYWJvdXQgPSB7fQotYWJvdXRfZmlsZSA9IG9zLnBhdGgu
am9pbihyb290X2RpciwgInNyYyIsICJhaW9xdWljIiwgImFib3V0LnB5IikKLXdpdGggb3Blbihh
Ym91dF9maWxlLCBlbmNvZGluZz0idXRmLTgiKSBhcyBmcDoKLSAgICBleGVjKGZwLnJlYWQoKSwg
YWJvdXQpCi0KLXJlYWRtZV9maWxlID0gb3MucGF0aC5qb2luKHJvb3RfZGlyLCAiUkVBRE1FLnJz
dCIpCi13aXRoIG9wZW4ocmVhZG1lX2ZpbGUsIGVuY29kaW5nPSJ1dGYtOCIpIGFzIGY6Ci0gICAg
bG9uZ19kZXNjcmlwdGlvbiA9IGYucmVhZCgpCi0KLWlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
OgotICAgIGV4dHJhX2NvbXBpbGVfYXJncyA9IFtdCi0gICAgbGlicmFyaWVzID0gWyJsaWJjcnlw
dG8iLCAiYWR2YXBpMzIiLCAiY3J5cHQzMiIsICJnZGkzMiIsICJ1c2VyMzIiLCAid3MyXzMyIl0K
LWVsc2U6Ci0gICAgZXh0cmFfY29tcGlsZV9hcmdzID0gWyItc3RkPWM5OSJdCi0gICAgbGlicmFy
aWVzID0gWyJjcnlwdG8iXQotCi1zZXR1cHRvb2xzLnNldHVwKAotICAgIG5hbWU9YWJvdXRbIl9f
dGl0bGVfXyJdLAotICAgIHZlcnNpb249YWJvdXRbIl9fdmVyc2lvbl9fIl0sCi0gICAgZGVzY3Jp
cHRpb249YWJvdXRbIl9fc3VtbWFyeV9fIl0sCi0gICAgbG9uZ19kZXNjcmlwdGlvbj1sb25nX2Rl
c2NyaXB0aW9uLAotICAgIHVybD1hYm91dFsiX191cmlfXyJdLAotICAgIGF1dGhvcj1hYm91dFsi
X19hdXRob3JfXyJdLAotICAgIGF1dGhvcl9lbWFpbD1hYm91dFsiX19lbWFpbF9fIl0sCi0gICAg
bGljZW5zZT1hYm91dFsiX19saWNlbnNlX18iXSwKLSAgICBpbmNsdWRlX3BhY2thZ2VfZGF0YT1U
cnVlLAotICAgIGNsYXNzaWZpZXJzPVsKLSAgICAgICAgIkRldmVsb3BtZW50IFN0YXR1cyA6OiA0
IC0gQmV0YSIsCi0gICAgICAgICJFbnZpcm9ubWVudCA6OiBXZWIgRW52aXJvbm1lbnQiLAotICAg
ICAgICAiSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycyIsCi0gICAgICAgICJMaWNlbnNl
IDo6IE9TSSBBcHByb3ZlZCA6OiBCU0QgTGljZW5zZSIsCi0gICAgICAgICJPcGVyYXRpbmcgU3lz
dGVtIDo6IE9TIEluZGVwZW5kZW50IiwKLSAgICAgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiIsCi0gICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMyIs
Ci0gICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy42IiwKLSAgICAg
ICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjciLAotICAgICAgICAiUHJv
Z3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuOCIsCi0gICAgICAgICJUb3BpYyA6OiBJ
bnRlcm5ldCA6OiBXV1cvSFRUUCIsCi0gICAgXSwKLSAgICBleHRfbW9kdWxlcz1bCi0gICAgICAg
IHNldHVwdG9vbHMuRXh0ZW5zaW9uKAotICAgICAgICAgICAgImFpb3F1aWMuX2J1ZmZlciIsCi0g
ICAgICAgICAgICBleHRyYV9jb21waWxlX2FyZ3M9ZXh0cmFfY29tcGlsZV9hcmdzLAotICAgICAg
ICAgICAgc291cmNlcz1bInNyYy9haW9xdWljL19idWZmZXIuYyJdLAotICAgICAgICApLAotICAg
ICAgICBzZXR1cHRvb2xzLkV4dGVuc2lvbigKLSAgICAgICAgICAgICJhaW9xdWljLl9jcnlwdG8i
LAotICAgICAgICAgICAgZXh0cmFfY29tcGlsZV9hcmdzPWV4dHJhX2NvbXBpbGVfYXJncywKLSAg
ICAgICAgICAgIGxpYnJhcmllcz1saWJyYXJpZXMsCi0gICAgICAgICAgICBzb3VyY2VzPVsic3Jj
L2Fpb3F1aWMvX2NyeXB0by5jIl0sCi0gICAgICAgICksCi0gICAgXSwKLSAgICBwYWNrYWdlX2Rp
cj17IiI6ICJzcmMifSwKLSAgICBwYWNrYWdlX2RhdGE9eyJhaW9xdWljIjogWyJweS50eXBlZCIs
ICJfYnVmZmVyLnB5aSIsICJfY3J5cHRvLnB5aSJdfSwKLSAgICBwYWNrYWdlcz1bImFpb3F1aWMi
LCAiYWlvcXVpYy5hc3luY2lvIiwgImFpb3F1aWMuaDAiLCAiYWlvcXVpYy5oMyIsICJhaW9xdWlj
LnF1aWMiXSwKLSAgICBpbnN0YWxsX3JlcXVpcmVzPVsKLSAgICAgICAgImNlcnRpZmkiLAotICAg
ICAgICAiY3J5cHRvZ3JhcGh5ID49IDIuNSIsCi0gICAgICAgICdkYXRhY2xhc3NlczsgcHl0aG9u
X3ZlcnNpb24gPCAiMy43IicsCi0gICAgICAgICJweWxzcXBhY2sgPj0gMC4zLjMsIDwgMC40LjAi
LAotICAgIF0sCi0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDA0YWNlYmVlZjgzZWE0MTg5YmZhZTRjYTlmMDgwZDIzZDg3N2E4
YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NyYy9haW9xdWljL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi0jIGZsYWtlODogbm9xYQotCi1mcm9tIC5hYm91dCBpbXBvcnQgX192ZXJzaW9uX18KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9fYnVmZmVyLmMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvX2J1ZmZlci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
ZWZjNGRiODE3NTkwYmU4ZDczNmIzMjY0NmQ0Y2ZmNDFjOWY2NDY5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9f
YnVmZmVyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NDAgKzAsMCBAQAotI2RlZmluZSBQWV9TU0la
RV9UX0NMRUFOCi0KLSNpbmNsdWRlIDxQeXRob24uaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQot
I2RlZmluZSBNT0RVTEVfTkFNRSAiYWlvcXVpYy5fYnVmZmVyIgotCi1zdGF0aWMgUHlPYmplY3Qg
KkJ1ZmZlclJlYWRFcnJvcjsKLXN0YXRpYyBQeU9iamVjdCAqQnVmZmVyV3JpdGVFcnJvcjsKLQot
dHlwZWRlZiBzdHJ1Y3QgewotICAgIFB5T2JqZWN0X0hFQUQKLSAgICB1aW50OF90ICpiYXNlOwot
ICAgIHVpbnQ4X3QgKmVuZDsKLSAgICB1aW50OF90ICpwb3M7Ci19IEJ1ZmZlck9iamVjdDsKLQot
I2RlZmluZSBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCBsZW4pIFwKLSAgICBpZiAobGVuIDwgMCB8
fCBzZWxmLT5wb3MgKyBsZW4gPiBzZWxmLT5lbmQpIHsgXAotICAgICAgICBQeUVycl9TZXRTdHJp
bmcoQnVmZmVyUmVhZEVycm9yLCAiUmVhZCBvdXQgb2YgYm91bmRzIik7IFwKLSAgICAgICAgcmV0
dXJuIE5VTEw7IFwKLSAgICB9Ci0KLSNkZWZpbmUgQ0hFQ0tfV1JJVEVfQk9VTkRTKHNlbGYsIGxl
bikgXAotICAgIGlmIChzZWxmLT5wb3MgKyBsZW4gPiBzZWxmLT5lbmQpIHsgXAotICAgICAgICBQ
eUVycl9TZXRTdHJpbmcoQnVmZmVyV3JpdGVFcnJvciwgIldyaXRlIG91dCBvZiBib3VuZHMiKTsg
XAotICAgICAgICByZXR1cm4gTlVMTDsgXAotICAgIH0KLQotc3RhdGljIGludAotQnVmZmVyX2lu
aXQoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykK
LXsKLSAgICBjb25zdCBjaGFyICprd2xpc3RbXSA9IHsiY2FwYWNpdHkiLCAiZGF0YSIsIE5VTEx9
OwotICAgIGludCBjYXBhY2l0eSA9IDA7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSA9
IE5VTEw7Ci0gICAgUHlfc3NpemVfdCBkYXRhX2xlbiA9IDA7Ci0KLSAgICBpZiAoIVB5QXJnX1Bh
cnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJ8aXkjIiwgKGNoYXIqKilrd2xpc3Qs
ICZjYXBhY2l0eSwgJmRhdGEsICZkYXRhX2xlbikpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAg
IGlmIChkYXRhICE9IE5VTEwpIHsKLSAgICAgICAgc2VsZi0+YmFzZSA9IG1hbGxvYyhkYXRhX2xl
bik7Ci0gICAgICAgIHNlbGYtPmVuZCA9IHNlbGYtPmJhc2UgKyBkYXRhX2xlbjsKLSAgICAgICAg
bWVtY3B5KHNlbGYtPmJhc2UsIGRhdGEsIGRhdGFfbGVuKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBzZWxmLT5iYXNlID0gbWFsbG9jKGNhcGFjaXR5KTsKLSAgICAgICAgc2VsZi0+ZW5kID0gc2Vs
Zi0+YmFzZSArIGNhcGFjaXR5OwotICAgIH0KLSAgICBzZWxmLT5wb3MgPSBzZWxmLT5iYXNlOwot
ICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotQnVmZmVyX2RlYWxsb2MoQnVmZmVyT2Jq
ZWN0ICpzZWxmKQotewotICAgIGZyZWUoc2VsZi0+YmFzZSk7Ci19Ci0KLXN0YXRpYyBQeU9iamVj
dCAqCi1CdWZmZXJfZGF0YV9zbGljZShCdWZmZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz
KQotewotICAgIGludCBzdGFydCwgc3RvcDsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJn
cywgImlpIiwgJnN0YXJ0LCAmc3RvcCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgaWYg
KHN0YXJ0IDwgMCB8fCBzZWxmLT5iYXNlICsgc3RhcnQgPiBzZWxmLT5lbmQgfHwKLSAgICAgICAg
c3RvcCA8IDAgfHwgc2VsZi0+YmFzZSArIHN0b3AgPiBzZWxmLT5lbmQgfHwKLSAgICAgICAgc3Rv
cCA8IHN0YXJ0KSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhCdWZmZXJSZWFkRXJyb3IsICJS
ZWFkIG91dCBvZiBib3VuZHMiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAg
cmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNvbnN0IGNoYXIqKShzZWxmLT5iYXNl
ICsgc3RhcnQpLCAoc3RvcCAtIHN0YXJ0KSk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZm
ZXJfZW9mKEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgaWYgKHNl
bGYtPnBvcyA9PSBzZWxmLT5lbmQpCi0gICAgICAgIFB5X1JFVFVSTl9UUlVFOwotICAgIFB5X1JF
VFVSTl9GQUxTRTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9wdWxsX2J5dGVzKEJ1
ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgaW50IGxlbjsKLSAgICBp
ZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImkiLCAmbGVuKSkKLSAgICAgICAgcmV0dXJuIE5V
TEw7Ci0KLSAgICBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCBsZW4pOwotCi0gICAgUHlPYmplY3Qg
Km8gPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKChjb25zdCBjaGFyKilzZWxmLT5wb3MsIGxl
bik7Ci0gICAgc2VsZi0+cG9zICs9IGxlbjsKLSAgICByZXR1cm4gbzsKLX0KLQotc3RhdGljIFB5
T2JqZWN0ICoKLUJ1ZmZlcl9wdWxsX3VpbnQ4KEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3Qg
KmFyZ3MpCi17Ci0gICAgQ0hFQ0tfUkVBRF9CT1VORFMoc2VsZiwgMSkKLQotICAgIHJldHVybiBQ
eUxvbmdfRnJvbVVuc2lnbmVkTG9uZygKLSAgICAgICAgKHVpbnQ4X3QpKCooc2VsZi0+cG9zKysp
KQotICAgICk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfcHVsbF91aW50MTYoQnVm
ZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBDSEVDS19SRUFEX0JPVU5E
UyhzZWxmLCAyKQotCi0gICAgdWludDE2X3QgdmFsdWUgPSAodWludDE2X3QpKCooc2VsZi0+cG9z
KSkgPDwgOCB8Ci0gICAgICAgICAgICAgICAgICAgICAodWludDE2X3QpKCooc2VsZi0+cG9zICsg
MSkpOwotICAgIHNlbGYtPnBvcyArPSAyOwotICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVk
TG9uZyh2YWx1ZSk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfcHVsbF91aW50MzIo
QnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBDSEVDS19SRUFEX0JP
VU5EUyhzZWxmLCA0KQotCi0gICAgdWludDMyX3QgdmFsdWUgPSAodWludDMyX3QpKCooc2VsZi0+
cG9zKSkgPDwgMjQgfAotICAgICAgICAgICAgICAgICAgICAgKHVpbnQzMl90KSgqKHNlbGYtPnBv
cyArIDEpKSA8PCAxNiB8Ci0gICAgICAgICAgICAgICAgICAgICAodWludDMyX3QpKCooc2VsZi0+
cG9zICsgMikpIDw8IDggfAotICAgICAgICAgICAgICAgICAgICAgKHVpbnQzMl90KSgqKHNlbGYt
PnBvcyArIDMpKTsKLSAgICBzZWxmLT5wb3MgKz0gNDsKLSAgICByZXR1cm4gUHlMb25nX0Zyb21V
bnNpZ25lZExvbmcodmFsdWUpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1bGxf
dWludDY0KEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgQ0hFQ0tf
UkVBRF9CT1VORFMoc2VsZiwgOCkKLQotICAgIHVpbnQ2NF90IHZhbHVlID0gKHVpbnQ2NF90KSgq
KHNlbGYtPnBvcykpIDw8IDU2IHwKLSAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihz
ZWxmLT5wb3MgKyAxKSkgPDwgNDggfAotICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgq
KHNlbGYtPnBvcyArIDIpKSA8PCA0MCB8Ci0gICAgICAgICAgICAgICAgICAgICAodWludDY0X3Qp
KCooc2VsZi0+cG9zICsgMykpIDw8IDMyIHwKLSAgICAgICAgICAgICAgICAgICAgICh1aW50NjRf
dCkoKihzZWxmLT5wb3MgKyA0KSkgPDwgMjQgfAotICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2
NF90KSgqKHNlbGYtPnBvcyArIDUpKSA8PCAxNiB8Ci0gICAgICAgICAgICAgICAgICAgICAodWlu
dDY0X3QpKCooc2VsZi0+cG9zICsgNikpIDw8IDggfAotICAgICAgICAgICAgICAgICAgICAgKHVp
bnQ2NF90KSgqKHNlbGYtPnBvcyArIDcpKTsKLSAgICBzZWxmLT5wb3MgKz0gODsKLSAgICByZXR1
cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nKHZhbHVlKTsKLX0KLQotc3RhdGljIFB5T2Jq
ZWN0ICoKLUJ1ZmZlcl9wdWxsX3VpbnRfdmFyKEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3Qg
KmFyZ3MpCi17Ci0gICAgdWludDY0X3QgdmFsdWU7Ci0gICAgQ0hFQ0tfUkVBRF9CT1VORFMoc2Vs
ZiwgMSkKLSAgICBzd2l0Y2ggKCooc2VsZi0+cG9zKSA+PiA2KSB7Ci0gICAgY2FzZSAwOgotICAg
ICAgICB2YWx1ZSA9ICooc2VsZi0+cG9zKyspICYgMHgzRjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSAxOgotICAgICAgICBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCAyKQotICAgICAgICB2YWx1
ZSA9ICh1aW50MTZfdCkoKihzZWxmLT5wb3MpICYgMHgzRikgPDwgOCB8Ci0gICAgICAgICAgICAg
ICAgKHVpbnQxNl90KSgqKHNlbGYtPnBvcyArIDEpKTsKLSAgICAgICAgc2VsZi0+cG9zICs9IDI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgQ0hFQ0tfUkVBRF9CT1VORFMo
c2VsZiwgNCkKLSAgICAgICAgdmFsdWUgPSAodWludDMyX3QpKCooc2VsZi0+cG9zKSAmIDB4M0Yp
IDw8IDI0IHwKLSAgICAgICAgICAgICAgICAodWludDMyX3QpKCooc2VsZi0+cG9zICsgMSkpIDw8
IDE2IHwKLSAgICAgICAgICAgICAgICAodWludDMyX3QpKCooc2VsZi0+cG9zICsgMikpIDw8IDgg
fAotICAgICAgICAgICAgICAgICh1aW50MzJfdCkoKihzZWxmLT5wb3MgKyAzKSk7Ci0gICAgICAg
IHNlbGYtPnBvcyArPSA0OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBD
SEVDS19SRUFEX0JPVU5EUyhzZWxmLCA4KQotICAgICAgICB2YWx1ZSA9ICh1aW50NjRfdCkoKihz
ZWxmLT5wb3MpICYgMHgzRikgPDwgNTYgfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihz
ZWxmLT5wb3MgKyAxKSkgPDwgNDggfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxm
LT5wb3MgKyAyKSkgPDwgNDAgfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5w
b3MgKyAzKSkgPDwgMzIgfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5wb3Mg
KyA0KSkgPDwgMjQgfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5wb3MgKyA1
KSkgPDwgMTYgfAotICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5wb3MgKyA2KSkg
PDwgOCB8Ci0gICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDcpKTsKLSAg
ICAgICAgc2VsZi0+cG9zICs9IDg7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4g
UHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nKHZhbHVlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0
ICoKLUJ1ZmZlcl9wdXNoX2J5dGVzKEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3Mp
Ci17Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YTsKLSAgICBQeV9zc2l6ZV90IGRhdGFf
bGVuOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSMiLCAmZGF0YSwgJmRhdGFf
bGVuKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBDSEVDS19XUklURV9CT1VORFMoc2Vs
ZiwgZGF0YV9sZW4pCi0KLSAgICBtZW1jcHkoc2VsZi0+cG9zLCBkYXRhLCBkYXRhX2xlbik7Ci0g
ICAgc2VsZi0+cG9zICs9IGRhdGFfbGVuOwotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0
aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1c2hfdWludDgoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9i
amVjdCAqYXJncykKLXsKLSAgICB1aW50OF90IHZhbHVlOwotICAgIGlmICghUHlBcmdfUGFyc2VU
dXBsZShhcmdzLCAiQiIsICZ2YWx1ZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQ0hF
Q0tfV1JJVEVfQk9VTkRTKHNlbGYsIDEpCi0KLSAgICAqKHNlbGYtPnBvcysrKSA9IHZhbHVlOwot
ICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1c2hf
dWludDE2KEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgdWludDE2
X3QgdmFsdWU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJIIiwgJnZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBDSEVDS19XUklURV9CT1VORFMoc2VsZiwgMikK
LQotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDgpOwotICAgICooc2VsZi0+cG9zKysp
ID0gdmFsdWU7Ci0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1C
dWZmZXJfcHVzaF91aW50MzIoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsK
LSAgICB1aW50MzJfdCB2YWx1ZTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIkki
LCAmdmFsdWUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIENIRUNLX1dSSVRFX0JPVU5E
UyhzZWxmLCA0KQotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDI0KTsKLSAgICAqKHNl
bGYtPnBvcysrKSA9ICh2YWx1ZSA+PiAxNik7Ci0gICAgKihzZWxmLT5wb3MrKykgPSAodmFsdWUg
Pj4gOCk7Ci0gICAgKihzZWxmLT5wb3MrKykgPSB2YWx1ZTsKLSAgICBQeV9SRVRVUk5fTk9ORTsK
LX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9wdXNoX3VpbnQ2NChCdWZmZXJPYmplY3Qg
KnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIHVpbnQ2NF90IHZhbHVlOwotICAgIGlmICgh
UHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSyIsICZ2YWx1ZSkpCi0gICAgICAgIHJldHVybiBOVUxM
OwotCi0gICAgQ0hFQ0tfV1JJVEVfQk9VTkRTKHNlbGYsIDgpCi0gICAgKihzZWxmLT5wb3MrKykg
PSAodmFsdWUgPj4gNTYpOwotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDQ4KTsKLSAg
ICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA0MCk7Ci0gICAgKihzZWxmLT5wb3MrKykgPSAo
dmFsdWUgPj4gMzIpOwotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDI0KTsKLSAgICAq
KHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiAxNik7Ci0gICAgKihzZWxmLT5wb3MrKykgPSAodmFs
dWUgPj4gOCk7Ci0gICAgKihzZWxmLT5wb3MrKykgPSB2YWx1ZTsKLSAgICBQeV9SRVRVUk5fTk9O
RTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9wdXNoX3VpbnRfdmFyKEJ1ZmZlck9i
amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgdWludDY0X3QgdmFsdWU7Ci0gICAg
aWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJLIiwgJnZhbHVlKSkKLSAgICAgICAgcmV0dXJu
IE5VTEw7Ci0KLSAgICBpZiAodmFsdWUgPD0gMHgzRikgewotICAgICAgICBDSEVDS19XUklURV9C
T1VORFMoc2VsZiwgMSkKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSB2YWx1ZTsKLSAgICAgICAg
UHlfUkVUVVJOX05PTkU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8PSAweDNGRkYpIHsKLSAgICAg
ICAgQ0hFQ0tfV1JJVEVfQk9VTkRTKHNlbGYsIDIpCi0gICAgICAgICooc2VsZi0+cG9zKyspID0g
KHZhbHVlID4+IDgpIHwgMHg0MDsKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSB2YWx1ZTsKLSAg
ICAgICAgUHlfUkVUVVJOX05PTkU7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZSA8PSAweDNGRkZGRkZG
KSB7Ci0gICAgICAgIENIRUNLX1dSSVRFX0JPVU5EUyhzZWxmLCA0KQotICAgICAgICAqKHNlbGYt
PnBvcysrKSA9ICh2YWx1ZSA+PiAyNCkgfCAweDgwOwotICAgICAgICAqKHNlbGYtPnBvcysrKSA9
ICh2YWx1ZSA+PiAxNik7Ci0gICAgICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDgpOwot
ICAgICAgICAqKHNlbGYtPnBvcysrKSA9IHZhbHVlOwotICAgICAgICBQeV9SRVRVUk5fTk9ORTsK
LSAgICB9IGVsc2UgaWYgKHZhbHVlIDw9IDB4M0ZGRkZGRkZGRkZGRkZGRikgewotICAgICAgICBD
SEVDS19XUklURV9CT1VORFMoc2VsZiwgOCkKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFs
dWUgPj4gNTYpIHwgMHhDMDsKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFsdWUgPj4gNDgp
OwotICAgICAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA0MCk7Ci0gICAgICAgICooc2Vs
Zi0+cG9zKyspID0gKHZhbHVlID4+IDMyKTsKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFs
dWUgPj4gMjQpOwotICAgICAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiAxNik7Ci0gICAg
ICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDgpOwotICAgICAgICAqKHNlbGYtPnBvcysr
KSA9IHZhbHVlOwotICAgICAgICBQeV9SRVRVUk5fTk9ORTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkludGVnZXIgaXMgdG9vIGJpZyBm
b3IgYSB2YXJpYWJsZS1sZW5ndGggaW50ZWdlciIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAg
ICB9Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfc2VlayhCdWZmZXJPYmplY3QgKnNl
bGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIGludCBwb3M7Ci0gICAgaWYgKCFQeUFyZ19QYXJz
ZVR1cGxlKGFyZ3MsICJpIiwgJnBvcykpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgaWYg
KHBvcyA8IDAgfHwgc2VsZi0+YmFzZSArIHBvcyA+IHNlbGYtPmVuZCkgewotICAgICAgICBQeUVy
cl9TZXRTdHJpbmcoQnVmZmVyUmVhZEVycm9yLCAiU2VlayBvdXQgb2YgYm91bmRzIik7Ci0gICAg
ICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHNlbGYtPnBvcyA9IHNlbGYtPmJhc2UgKyBw
b3M7Ci0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJf
dGVsbChCdWZmZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIHJldHVybiBQ
eUxvbmdfRnJvbVNzaXplX3Qoc2VsZi0+cG9zIC0gc2VsZi0+YmFzZSk7Ci19Ci0KLXN0YXRpYyBQ
eU1ldGhvZERlZiBCdWZmZXJfbWV0aG9kc1tdID0gewotICAgIHsiZGF0YV9zbGljZSIsIChQeUNG
dW5jdGlvbilCdWZmZXJfZGF0YV9zbGljZSwgTUVUSF9WQVJBUkdTLCAiIn0sCi0gICAgeyJlb2Yi
LCAoUHlDRnVuY3Rpb24pQnVmZmVyX2VvZiwgTUVUSF9WQVJBUkdTLCAiIn0sCi0gICAgeyJwdWxs
X2J5dGVzIiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdWxsX2J5dGVzLCBNRVRIX1ZBUkFSR1MsICJQ
dWxsIGJ5dGVzLiJ9LAotICAgIHsicHVsbF91aW50OCIsIChQeUNGdW5jdGlvbilCdWZmZXJfcHVs
bF91aW50OCwgTUVUSF9WQVJBUkdTLCAiUHVsbCBhbiA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiJ9
LAotICAgIHsicHVsbF91aW50MTYiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3B1bGxfdWludDE2LCBN
RVRIX1ZBUkFSR1MsICJQdWxsIGEgMTYtYml0IHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJw
dWxsX3VpbnQzMiIsIChQeUNGdW5jdGlvbilCdWZmZXJfcHVsbF91aW50MzIsIE1FVEhfVkFSQVJH
UywgIlB1bGwgYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlci4ifSwKLSAgICB7InB1bGxfdWludDY0
IiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdWxsX3VpbnQ2NCwgTUVUSF9WQVJBUkdTLCAiUHVsbCBh
IDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiJ9LAotICAgIHsicHVsbF91aW50X3ZhciIsIChQeUNG
dW5jdGlvbilCdWZmZXJfcHVsbF91aW50X3ZhciwgTUVUSF9WQVJBUkdTLCAiUHVsbCBhIFFVSUMg
dmFyaWFibGUtbGVuZ3RoIHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJwdXNoX2J5dGVzIiwg
KFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdXNoX2J5dGVzLCBNRVRIX1ZBUkFSR1MsICJQdXNoIGJ5dGVz
LiJ9LAotICAgIHsicHVzaF91aW50OCIsIChQeUNGdW5jdGlvbilCdWZmZXJfcHVzaF91aW50OCwg
TUVUSF9WQVJBUkdTLCAiUHVzaCBhbiA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLiJ9LAotICAgIHsi
cHVzaF91aW50MTYiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3B1c2hfdWludDE2LCBNRVRIX1ZBUkFS
R1MsICJQdXNoIGEgMTYtYml0IHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJwdXNoX3VpbnQz
MiIsIChQeUNGdW5jdGlvbilCdWZmZXJfcHVzaF91aW50MzIsIE1FVEhfVkFSQVJHUywgIlB1c2gg
YSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlci4ifSwKLSAgICB7InB1c2hfdWludDY0IiwgKFB5Q0Z1
bmN0aW9uKUJ1ZmZlcl9wdXNoX3VpbnQ2NCwgTUVUSF9WQVJBUkdTLCAiUHVzaCBhIDY0LWJpdCB1
bnNpZ25lZCBpbnRlZ2VyLiJ9LAotICAgIHsicHVzaF91aW50X3ZhciIsIChQeUNGdW5jdGlvbilC
dWZmZXJfcHVzaF91aW50X3ZhciwgTUVUSF9WQVJBUkdTLCAiUHVzaCBhIFFVSUMgdmFyaWFibGUt
bGVuZ3RoIHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJzZWVrIiwgKFB5Q0Z1bmN0aW9uKUJ1
ZmZlcl9zZWVrLCBNRVRIX1ZBUkFSR1MsICIifSwKLSAgICB7InRlbGwiLCAoUHlDRnVuY3Rpb24p
QnVmZmVyX3RlbGwsIE1FVEhfVkFSQVJHUywgIiJ9LAotICAgIHtOVUxMfQotfTsKLQotc3RhdGlj
IFB5T2JqZWN0KgotQnVmZmVyX2NhcGFjaXR5X2dldHRlcihCdWZmZXJPYmplY3QqIHNlbGYsIHZv
aWQgKmNsb3N1cmUpIHsKLSAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KHNlbGYtPmVuZCAt
IHNlbGYtPmJhc2UpOwotfQotCi1zdGF0aWMgUHlPYmplY3QqCi1CdWZmZXJfZGF0YV9nZXR0ZXIo
QnVmZmVyT2JqZWN0KiBzZWxmLCB2b2lkICpjbG9zdXJlKSB7Ci0gICAgcmV0dXJuIFB5Qnl0ZXNf
RnJvbVN0cmluZ0FuZFNpemUoKGNvbnN0IGNoYXIqKXNlbGYtPmJhc2UsIHNlbGYtPnBvcyAtIHNl
bGYtPmJhc2UpOwotfQotCi1zdGF0aWMgUHlHZXRTZXREZWYgQnVmZmVyX2dldHNldFtdID0gewot
ICAgIHsiY2FwYWNpdHkiLCAoZ2V0dGVyKSBCdWZmZXJfY2FwYWNpdHlfZ2V0dGVyLCBOVUxMLCAi
IiwgTlVMTCB9LAotICAgIHsiZGF0YSIsIChnZXR0ZXIpIEJ1ZmZlcl9kYXRhX2dldHRlciwgTlVM
TCwgIiIsIE5VTEwgfSwKLSAgICB7TlVMTH0KLX07Ci0KLXN0YXRpYyBQeVR5cGVPYmplY3QgQnVm
ZmVyVHlwZSA9IHsKLSAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICBNT0RV
TEVfTkFNRSAiLkJ1ZmZlciIsICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCi0gICAgc2l6ZW9m
KEJ1ZmZlck9iamVjdCksICAgICAgICAgICAgICAgLyogdHBfYmFzaWNzaXplICovCi0gICAgMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KLSAgICAo
ZGVzdHJ1Y3RvcilCdWZmZXJfZGVhbGxvYywgICAgICAgICAvKiB0cF9kZWFsbG9jICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KLSAgICAw
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLwotICAg
IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCi0g
ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLwotICAg
IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLwot
ICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNl
ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFw
cGluZyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hh
c2ggICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2Fs
bCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJv
ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0
cm8gKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19i
dWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgICAgICAgICAvKiB0cF9m
bGFncyAqLwotICAgICJCdWZmZXIgb2JqZWN0cyIsICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rv
YyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZl
cnNlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xl
YXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNo
Y29tcGFyZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRw
X3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogdHBfaXRlciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgQnVmZmVyX21ldGhvZHMsICAgICAgICAgICAgICAgICAg
ICAgLyogdHBfbWV0aG9kcyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIHRwX21lbWJlcnMgKi8KLSAgICBCdWZmZXJfZ2V0c2V0LCAgICAgICAgICAgICAgICAg
ICAgICAvKiB0cF9nZXRzZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiB0cF9iYXNlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogdHBfZGljdCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIHRwX2Rlc2NyX2dldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIHRwX2Rlc2NyX3NldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KLSAgICAoaW5pdHByb2MpQnVmZmVyX2luaXQsICAg
ICAgICAgICAgICAvKiB0cF9pbml0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogdHBfYWxsb2MgKi8KLX07Ci0KLQotc3RhdGljIHN0cnVjdCBQeU1vZHVsZURl
ZiBtb2R1bGVkZWYgPSB7Ci0gICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAotICAgIE1PRFVMRV9O
QU1FLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fbmFtZSAqLwotICAgICJBIGZhc3RlciBi
dWZmZXIuIiwgICAgICAgICAgICAgICAgIC8qIG1fZG9jICovCi0gICAgLTEsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogbV9zaXplICovCi0gICAgTlVMTCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogbV9tZXRob2RzICovCi0gICAgTlVMTCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogbV9yZWxvYWQgKi8KLSAgICBOVUxMLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBtX3RyYXZlcnNlICovCi0gICAgTlVMTCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogbV9jbGVhciAqLwotICAgIE5VTEwsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIG1fZnJlZSAqLwotfTsKLQotCi1QeU1PRElOSVRfRlVOQwotUHlJ
bml0X19idWZmZXIodm9pZCkKLXsKLSAgICBQeU9iamVjdCogbTsKLQotICAgIG0gPSBQeU1vZHVs
ZV9DcmVhdGUoJm1vZHVsZWRlZik7Ci0gICAgaWYgKG0gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJu
IE5VTEw7Ci0KLSAgICBCdWZmZXJSZWFkRXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oTU9EVUxF
X05BTUUgIi5CdWZmZXJSZWFkRXJyb3IiLCBQeUV4Y19WYWx1ZUVycm9yLCBOVUxMKTsKLSAgICBQ
eV9JTkNSRUYoQnVmZmVyUmVhZEVycm9yKTsKLSAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIkJ1
ZmZlclJlYWRFcnJvciIsIEJ1ZmZlclJlYWRFcnJvcik7Ci0KLSAgICBCdWZmZXJXcml0ZUVycm9y
ID0gUHlFcnJfTmV3RXhjZXB0aW9uKE1PRFVMRV9OQU1FICIuQnVmZmVyV3JpdGVFcnJvciIsIFB5
RXhjX1ZhbHVlRXJyb3IsIE5VTEwpOwotICAgIFB5X0lOQ1JFRihCdWZmZXJXcml0ZUVycm9yKTsK
LSAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIkJ1ZmZlcldyaXRlRXJyb3IiLCBCdWZmZXJXcml0
ZUVycm9yKTsKLQotICAgIEJ1ZmZlclR5cGUudHBfbmV3ID0gUHlUeXBlX0dlbmVyaWNOZXc7Ci0g
ICAgaWYgKFB5VHlwZV9SZWFkeSgmQnVmZmVyVHlwZSkgPCAwKQotICAgICAgICByZXR1cm4gTlVM
TDsKLSAgICBQeV9JTkNSRUYoJkJ1ZmZlclR5cGUpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdCht
LCAiQnVmZmVyIiwgKFB5T2JqZWN0ICopJkJ1ZmZlclR5cGUpOwotCi0gICAgcmV0dXJuIG07Ci19
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2J1ZmZlci5weWkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2J1ZmZlci5weWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE2ZTQzY2NhM2E1MThmZjc1ZTIxM2QzZGVkZjU4YjFiMGM3N2M2MGYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9h
aW9xdWljL19idWZmZXIucHlpCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotZnJvbSB0
eXBpbmcgaW1wb3J0IE9wdGlvbmFsCi0KLWNsYXNzIEJ1ZmZlclJlYWRFcnJvcihWYWx1ZUVycm9y
KTogLi4uCi1jbGFzcyBCdWZmZXJXcml0ZUVycm9yKFZhbHVlRXJyb3IpOiAuLi4KLQotY2xhc3Mg
QnVmZmVyOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYXBhY2l0eTogT3B0aW9uYWxbaW50XSA9
IDAsIGRhdGE6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUpOiAuLi4KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgY2FwYWNpdHkoc2VsZikgLT4gaW50OiAuLi4KLSAgICBAcHJvcGVydHkKLSAgICBkZWYg
ZGF0YShzZWxmKSAtPiBieXRlczogLi4uCi0gICAgZGVmIGRhdGFfc2xpY2Uoc2VsZiwgc3RhcnQ6
IGludCwgZW5kOiBpbnQpIC0+IGJ5dGVzOiAuLi4KLSAgICBkZWYgZW9mKHNlbGYpIC0+IGJvb2w6
IC4uLgotICAgIGRlZiBzZWVrKHNlbGYsIHBvczogaW50KSAtPiBOb25lOiAuLi4KLSAgICBkZWYg
dGVsbChzZWxmKSAtPiBpbnQ6IC4uLgotICAgIGRlZiBwdWxsX2J5dGVzKHNlbGYsIGxlbmd0aDog
aW50KSAtPiBieXRlczogLi4uCi0gICAgZGVmIHB1bGxfdWludDgoc2VsZikgLT4gaW50OiAuLi4K
LSAgICBkZWYgcHVsbF91aW50MTYoc2VsZikgLT4gaW50OiAuLi4KLSAgICBkZWYgcHVsbF91aW50
MzIoc2VsZikgLT4gaW50OiAuLi4KLSAgICBkZWYgcHVsbF91aW50NjQoc2VsZikgLT4gaW50OiAu
Li4KLSAgICBkZWYgcHVsbF91aW50X3ZhcihzZWxmKSAtPiBpbnQ6IC4uLgotICAgIGRlZiBwdXNo
X2J5dGVzKHNlbGYsIHZhbHVlOiBieXRlcykgLT4gTm9uZTogLi4uCi0gICAgZGVmIHB1c2hfdWlu
dDgoc2VsZiwgdmFsdWU6IGludCkgLT4gTm9uZTogLi4uCi0gICAgZGVmIHB1c2hfdWludDE2KHNl
bGYsIHZhbHVlOiBpbnQpIC0+IE5vbmU6IC4uLgotICAgIGRlZiBwdXNoX3VpbnQzMihzZWxmLCB2
OiBpbnQpIC0+IE5vbmU6IC4uLgotICAgIGRlZiBwdXNoX3VpbnQ2NChzZWxmLCB2OiBpbnQpIC0+
IE5vbmU6IC4uLgotICAgIGRlZiBwdXNoX3VpbnRfdmFyKHNlbGYsIHZhbHVlOiBpbnQpIC0+IE5v
bmU6IC4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19jcnlwdG8uYyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9fY3J5cHRvLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDVlMTU1NGQ0YjIxM2NkMDdmY2VkZjhhMzkzMDRjZDYyMDA0NGYxNjcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL19jcnlwdG8uYworKysgL2Rldi9udWxsCkBAIC0xLDQ1NSArMCwwIEBACi0jZGVm
aW5lIFBZX1NTSVpFX1RfQ0xFQU4KLQotI2luY2x1ZGUgPFB5dGhvbi5oPgotI2luY2x1ZGUgPG9w
ZW5zc2wvZXJyLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KLQotI2RlZmluZSBNT0RVTEVf
TkFNRSAiYWlvcXVpYy5fY3J5cHRvIgotCi0jZGVmaW5lIEFFQURfS0VZX0xFTkdUSF9NQVggMzIK
LSNkZWZpbmUgQUVBRF9OT05DRV9MRU5HVEggMTIKLSNkZWZpbmUgQUVBRF9UQUdfTEVOR1RIIDE2
Ci0KLSNkZWZpbmUgUEFDS0VUX0xFTkdUSF9NQVggMTUwMAotI2RlZmluZSBQQUNLRVRfTlVNQkVS
X0xFTkdUSF9NQVggNAotI2RlZmluZSBTQU1QTEVfTEVOR1RIIDE2Ci0KLSNkZWZpbmUgQ0hFQ0tf
UkVTVUxUKGV4cHIpIFwKLSAgICBpZiAoIShleHByKSkgeyBcCi0gICAgICAgIEVSUl9jbGVhcl9l
cnJvcigpOyBcCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhDcnlwdG9FcnJvciwgIk9wZW5TU0wg
Y2FsbCBmYWlsZWQiKTsgXAotICAgICAgICByZXR1cm4gTlVMTDsgXAotICAgIH0KLQotI2RlZmlu
ZSBDSEVDS19SRVNVTFRfQ1RPUihleHByKSBcCi0gICAgaWYgKCEoZXhwcikpIHsgXAotICAgICAg
ICBFUlJfY2xlYXJfZXJyb3IoKTsgXAotICAgICAgICBQeUVycl9TZXRTdHJpbmcoQ3J5cHRvRXJy
b3IsICJPcGVuU1NMIGNhbGwgZmFpbGVkIik7IFwKLSAgICAgICAgcmV0dXJuIC0xOyBcCi0gICAg
fQotCi1zdGF0aWMgUHlPYmplY3QgKkNyeXB0b0Vycm9yOwotCi0vKiBBRUFEICovCi0KLXR5cGVk
ZWYgc3RydWN0IHsKLSAgICBQeU9iamVjdF9IRUFECi0gICAgRVZQX0NJUEhFUl9DVFggKmRlY3J5
cHRfY3R4OwotICAgIEVWUF9DSVBIRVJfQ1RYICplbmNyeXB0X2N0eDsKLSAgICB1bnNpZ25lZCBj
aGFyIGJ1ZmZlcltQQUNLRVRfTEVOR1RIX01BWF07Ci0gICAgdW5zaWduZWQgY2hhciBrZXlbQUVB
RF9LRVlfTEVOR1RIX01BWF07Ci0gICAgdW5zaWduZWQgY2hhciBpdltBRUFEX05PTkNFX0xFTkdU
SF07Ci0gICAgdW5zaWduZWQgY2hhciBub25jZVtBRUFEX05PTkNFX0xFTkdUSF07Ci19IEFFQURP
YmplY3Q7Ci0KLXN0YXRpYyBFVlBfQ0lQSEVSX0NUWCAqCi1jcmVhdGVfY3R4KGNvbnN0IEVWUF9D
SVBIRVIgKmNpcGhlciwgaW50IGtleV9sZW5ndGgsIGludCBvcGVyYXRpb24pCi17Ci0gICAgRVZQ
X0NJUEhFUl9DVFggKmN0eDsKLSAgICBpbnQgcmVzOwotCi0gICAgY3R4ID0gRVZQX0NJUEhFUl9D
VFhfbmV3KCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKGN0eCAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9D
aXBoZXJJbml0X2V4KGN0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMLCBvcGVyYXRpb24pOwot
ICAgIENIRUNLX1JFU1VMVChyZXMgIT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ0lQSEVSX0NUWF9z
ZXRfa2V5X2xlbmd0aChjdHgsIGtleV9sZW5ndGgpOwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0g
MCk7Ci0KLSAgICByZXMgPSBFVlBfQ0lQSEVSX0NUWF9jdHJsKGN0eCwgRVZQX0NUUkxfQ0NNX1NF
VF9JVkxFTiwgQUVBRF9OT05DRV9MRU5HVEgsIE5VTEwpOwotICAgIENIRUNLX1JFU1VMVChyZXMg
IT0gMCk7Ci0KLSAgICByZXR1cm4gY3R4OwotfQotCi1zdGF0aWMgaW50Ci1BRUFEX2luaXQoQUVB
RE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCi17Ci0gICAg
Y29uc3QgY2hhciAqY2lwaGVyX25hbWU7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCAq
aXY7Ci0gICAgUHlfc3NpemVfdCBjaXBoZXJfbmFtZV9sZW4sIGtleV9sZW4sIGl2X2xlbjsKLQot
ICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSN5I3kjIiwgJmNpcGhlcl9uYW1lLCAm
Y2lwaGVyX25hbWVfbGVuLCAma2V5LCAma2V5X2xlbiwgJml2LCAmaXZfbGVuKSkKLSAgICAgICAg
cmV0dXJuIC0xOwotCi0gICAgY29uc3QgRVZQX0NJUEhFUiAqZXZwX2NpcGhlciA9IEVWUF9nZXRf
Y2lwaGVyYnluYW1lKGNpcGhlcl9uYW1lKTsKLSAgICBpZiAoZXZwX2NpcGhlciA9PSAwKSB7Ci0g
ICAgICAgIFB5RXJyX0Zvcm1hdChDcnlwdG9FcnJvciwgIkludmFsaWQgY2lwaGVyIG5hbWU6ICVz
IiwgY2lwaGVyX25hbWUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmIChrZXlf
bGVuID4gQUVBRF9LRVlfTEVOR1RIX01BWCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoQ3J5
cHRvRXJyb3IsICJJbnZhbGlkIGtleSBsZW5ndGgiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
IH0KLSAgICBpZiAoaXZfbGVuID4gQUVBRF9OT05DRV9MRU5HVEgpIHsKLSAgICAgICAgUHlFcnJf
U2V0U3RyaW5nKENyeXB0b0Vycm9yLCAiSW52YWxpZCBpdiBsZW5ndGgiKTsKLSAgICAgICAgcmV0
dXJuIC0xOwotICAgIH0KLQotICAgIG1lbWNweShzZWxmLT5rZXksIGtleSwga2V5X2xlbik7Ci0g
ICAgbWVtY3B5KHNlbGYtPml2LCBpdiwgaXZfbGVuKTsKLQotICAgIHNlbGYtPmRlY3J5cHRfY3R4
ID0gY3JlYXRlX2N0eChldnBfY2lwaGVyLCBrZXlfbGVuLCAwKTsKLSAgICBDSEVDS19SRVNVTFRf
Q1RPUihzZWxmLT5kZWNyeXB0X2N0eCAhPSAwKTsKLQotICAgIHNlbGYtPmVuY3J5cHRfY3R4ID0g
Y3JlYXRlX2N0eChldnBfY2lwaGVyLCBrZXlfbGVuLCAxKTsKLSAgICBDSEVDS19SRVNVTFRfQ1RP
UihzZWxmLT5lbmNyeXB0X2N0eCAhPSAwKTsKLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMg
dm9pZAotQUVBRF9kZWFsbG9jKEFFQURPYmplY3QgKnNlbGYpCi17Ci0gICAgRVZQX0NJUEhFUl9D
VFhfZnJlZShzZWxmLT5kZWNyeXB0X2N0eCk7Ci0gICAgRVZQX0NJUEhFUl9DVFhfZnJlZShzZWxm
LT5lbmNyeXB0X2N0eCk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCoKLUFFQURfZGVjcnlwdChBRUFE
T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFy
ICpkYXRhLCAqYXNzb2NpYXRlZDsKLSAgICBQeV9zc2l6ZV90IGRhdGFfbGVuLCBhc3NvY2lhdGVk
X2xlbjsKLSAgICBpbnQgb3V0bGVuLCBvdXRsZW4yLCByZXM7Ci0gICAgdWludDY0X3QgcG47Ci0K
LSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkjeSNLIiwgJmRhdGEsICZkYXRhX2xl
biwgJmFzc29jaWF0ZWQsICZhc3NvY2lhdGVkX2xlbiwgJnBuKSkKLSAgICAgICAgcmV0dXJuIE5V
TEw7Ci0KLSAgICBpZiAoZGF0YV9sZW4gPCBBRUFEX1RBR19MRU5HVEggfHwgZGF0YV9sZW4gPiBQ
QUNLRVRfTEVOR1RIX01BWCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoQ3J5cHRvRXJyb3Is
ICJJbnZhbGlkIHBheWxvYWQgbGVuZ3RoIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0K
LQotICAgIG1lbWNweShzZWxmLT5ub25jZSwgc2VsZi0+aXYsIEFFQURfTk9OQ0VfTEVOR1RIKTsK
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgewotICAgICAgICBzZWxmLT5ub25jZVtB
RUFEX05PTkNFX0xFTkdUSCAtIDEgLSBpXSBePSAodWludDhfdCkocG4gPj4gOCAqIGkpOwotICAg
IH0KLQotICAgIHJlcyA9IEVWUF9DSVBIRVJfQ1RYX2N0cmwoc2VsZi0+ZGVjcnlwdF9jdHgsIEVW
UF9DVFJMX0NDTV9TRVRfVEFHLCBBRUFEX1RBR19MRU5HVEgsICh2b2lkKikoZGF0YSArIChkYXRh
X2xlbiAtIEFFQURfVEFHX0xFTkdUSCkpKTsKLSAgICBDSEVDS19SRVNVTFQocmVzICE9IDApOwot
Ci0gICAgcmVzID0gRVZQX0NpcGhlckluaXRfZXgoc2VsZi0+ZGVjcnlwdF9jdHgsIE5VTEwsIE5V
TEwsIHNlbGYtPmtleSwgc2VsZi0+bm9uY2UsIDApOwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0g
MCk7Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVyVXBkYXRlKHNlbGYtPmRlY3J5cHRfY3R4LCBOVUxM
LCAmb3V0bGVuLCBhc3NvY2lhdGVkLCBhc3NvY2lhdGVkX2xlbik7Ci0gICAgQ0hFQ0tfUkVTVUxU
KHJlcyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DaXBoZXJVcGRhdGUoc2VsZi0+ZGVjcnlwdF9j
dHgsIHNlbGYtPmJ1ZmZlciwgJm91dGxlbiwgZGF0YSwgZGF0YV9sZW4gLSBBRUFEX1RBR19MRU5H
VEgpOwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVy
RmluYWxfZXgoc2VsZi0+ZGVjcnlwdF9jdHgsIE5VTEwsICZvdXRsZW4yKTsKLSAgICBpZiAocmVz
ID09IDApIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKENyeXB0b0Vycm9yLCAiUGF5bG9hZCBk
ZWNyeXB0aW9uIGZhaWxlZCIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY29uc3QgY2hhciopc2VsZi0+YnVmZmVy
LCBvdXRsZW4pOwotfQotCi1zdGF0aWMgUHlPYmplY3QqCi1BRUFEX2VuY3J5cHQoQUVBRE9iamVj
dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0
YSwgKmFzc29jaWF0ZWQ7Ci0gICAgUHlfc3NpemVfdCBkYXRhX2xlbiwgYXNzb2NpYXRlZF9sZW47
Ci0gICAgaW50IG91dGxlbiwgb3V0bGVuMiwgcmVzOwotICAgIHVpbnQ2NF90IHBuOwotCi0gICAg
aWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5I3kjSyIsICZkYXRhLCAmZGF0YV9sZW4sICZh
c3NvY2lhdGVkLCAmYXNzb2NpYXRlZF9sZW4sICZwbikpCi0gICAgICAgIHJldHVybiBOVUxMOwot
Ci0gICAgaWYgKGRhdGFfbGVuID4gUEFDS0VUX0xFTkdUSF9NQVgpIHsKLSAgICAgICAgUHlFcnJf
U2V0U3RyaW5nKENyeXB0b0Vycm9yLCAiSW52YWxpZCBwYXlsb2FkIGxlbmd0aCIpOwotICAgICAg
ICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBtZW1jcHkoc2VsZi0+bm9uY2UsIHNlbGYtPml2
LCBBRUFEX05PTkNFX0xFTkdUSCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyArK2kpIHsK
LSAgICAgICAgc2VsZi0+bm9uY2VbQUVBRF9OT05DRV9MRU5HVEggLSAxIC0gaV0gXj0gKHVpbnQ4
X3QpKHBuID4+IDggKiBpKTsKLSAgICB9Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVySW5pdF9leChz
ZWxmLT5lbmNyeXB0X2N0eCwgTlVMTCwgTlVMTCwgc2VsZi0+a2V5LCBzZWxmLT5ub25jZSwgMSk7
Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DaXBoZXJVcGRh
dGUoc2VsZi0+ZW5jcnlwdF9jdHgsIE5VTEwsICZvdXRsZW4sIGFzc29jaWF0ZWQsIGFzc29jaWF0
ZWRfbGVuKTsKLSAgICBDSEVDS19SRVNVTFQocmVzICE9IDApOwotCi0gICAgcmVzID0gRVZQX0Np
cGhlclVwZGF0ZShzZWxmLT5lbmNyeXB0X2N0eCwgc2VsZi0+YnVmZmVyLCAmb3V0bGVuLCBkYXRh
LCBkYXRhX2xlbik7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQotICAgIHJlcyA9IEVW
UF9DaXBoZXJGaW5hbF9leChzZWxmLT5lbmNyeXB0X2N0eCwgTlVMTCwgJm91dGxlbjIpOwotICAg
IENIRUNLX1JFU1VMVChyZXMgIT0gMCAmJiBvdXRsZW4yID09IDApOwotCi0gICAgcmVzID0gRVZQ
X0NJUEhFUl9DVFhfY3RybChzZWxmLT5lbmNyeXB0X2N0eCwgRVZQX0NUUkxfQ0NNX0dFVF9UQUcs
IEFFQURfVEFHX0xFTkdUSCwgc2VsZi0+YnVmZmVyICsgb3V0bGVuKTsKLSAgICBDSEVDS19SRVNV
TFQocmVzICE9IDApOwotCi0gICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNv
bnN0IGNoYXIqKXNlbGYtPmJ1ZmZlciwgb3V0bGVuICsgQUVBRF9UQUdfTEVOR1RIKTsKLX0KLQot
c3RhdGljIFB5TWV0aG9kRGVmIEFFQURfbWV0aG9kc1tdID0gewotICAgIHsiZGVjcnlwdCIsIChQ
eUNGdW5jdGlvbilBRUFEX2RlY3J5cHQsIE1FVEhfVkFSQVJHUywgIiJ9LAotICAgIHsiZW5jcnlw
dCIsIChQeUNGdW5jdGlvbilBRUFEX2VuY3J5cHQsIE1FVEhfVkFSQVJHUywgIiJ9LAotCi0gICAg
e05VTEx9Ci19OwotCi1zdGF0aWMgUHlUeXBlT2JqZWN0IEFFQURUeXBlID0gewotICAgIFB5VmFy
T2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgIE1PRFVMRV9OQU1FICIuQUVBRCIsICAgICAg
ICAgICAgICAgIC8qIHRwX25hbWUgKi8KLSAgICBzaXplb2YoQUVBRE9iamVjdCksICAgICAgICAg
ICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwotICAgIChkZXN0cnVjdG9yKUFFQURfZGVhbGxv
YywgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCi0gICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCi0gICAgMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAgKi8KLSAgICAwLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCi0gICAgMCwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCi0gICAgMCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KLSAgICAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLwotICAgIDAsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwotICAgIFB5X1RQRkxB
R1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCi0gICAgIkFFQUQgb2Jq
ZWN0cyIsICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCi0gICAgMCwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLwotICAgIDAsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAg
ICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KLSAg
ICBBRUFEX21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCi0g
ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwot
ICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwot
ICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KLSAg
ICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCi0g
ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICov
Ci0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNl
dCAqLwotICAgIChpbml0cHJvYylBRUFEX2luaXQsICAgICAgICAgICAgICAgIC8qIHRwX2luaXQg
Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAq
LwotfTsKLQotLyogSGVhZGVyUHJvdGVjdGlvbiAqLwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAg
UHlPYmplY3RfSEVBRAotICAgIEVWUF9DSVBIRVJfQ1RYICpjdHg7Ci0gICAgaW50IGlzX2NoYWNo
YTIwOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmZmVyW1BBQ0tFVF9MRU5HVEhfTUFYXTsKLSAgICB1
bnNpZ25lZCBjaGFyIG1hc2tbMzFdOwotICAgIHVuc2lnbmVkIGNoYXIgemVyb1s1XTsKLX0gSGVh
ZGVyUHJvdGVjdGlvbk9iamVjdDsKLQotc3RhdGljIGludAotSGVhZGVyUHJvdGVjdGlvbl9pbml0
KEhlYWRlclByb3RlY3Rpb25PYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAq
a3dhcmdzKQotewotICAgIGNvbnN0IGNoYXIgKmNpcGhlcl9uYW1lOwotICAgIGNvbnN0IHVuc2ln
bmVkIGNoYXIgKmtleTsKLSAgICBQeV9zc2l6ZV90IGNpcGhlcl9uYW1lX2xlbiwga2V5X2xlbjsK
LSAgICBpbnQgcmVzOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5I3kjIiwg
JmNpcGhlcl9uYW1lLCAmY2lwaGVyX25hbWVfbGVuLCAma2V5LCAma2V5X2xlbikpCi0gICAgICAg
IHJldHVybiAtMTsKLQotICAgIGNvbnN0IEVWUF9DSVBIRVIgKmV2cF9jaXBoZXIgPSBFVlBfZ2V0
X2NpcGhlcmJ5bmFtZShjaXBoZXJfbmFtZSk7Ci0gICAgaWYgKGV2cF9jaXBoZXIgPT0gMCkgewot
ICAgICAgICBQeUVycl9Gb3JtYXQoQ3J5cHRvRXJyb3IsICJJbnZhbGlkIGNpcGhlciBuYW1lOiAl
cyIsIGNpcGhlcl9uYW1lKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIG1lbXNl
dChzZWxmLT5tYXNrLCAwLCBzaXplb2Yoc2VsZi0+bWFzaykpOwotICAgIG1lbXNldChzZWxmLT56
ZXJvLCAwLCBzaXplb2Yoc2VsZi0+emVybykpOwotICAgIHNlbGYtPmlzX2NoYWNoYTIwID0gY2lw
aGVyX25hbWVfbGVuID09IDggJiYgbWVtY21wKGNpcGhlcl9uYW1lLCAiY2hhY2hhMjAiLCA4KSA9
PSAwOwotCi0gICAgc2VsZi0+Y3R4ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7Ci0gICAgQ0hFQ0tf
UkVTVUxUX0NUT1Ioc2VsZi0+Y3R4ICE9IDApOwotCi0gICAgcmVzID0gRVZQX0NpcGhlckluaXRf
ZXgoc2VsZi0+Y3R4LCBldnBfY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMLCAxKTsKLSAgICBDSEVD
S19SRVNVTFRfQ1RPUihyZXMgIT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ0lQSEVSX0NUWF9zZXRf
a2V5X2xlbmd0aChzZWxmLT5jdHgsIGtleV9sZW4pOwotICAgIENIRUNLX1JFU1VMVF9DVE9SKHJl
cyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DaXBoZXJJbml0X2V4KHNlbGYtPmN0eCwgTlVMTCwg
TlVMTCwga2V5LCBOVUxMLCAxKTsKLSAgICBDSEVDS19SRVNVTFRfQ1RPUihyZXMgIT0gMCk7Ci0K
LSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQKLUhlYWRlclByb3RlY3Rpb25fZGVhbGxv
YyhIZWFkZXJQcm90ZWN0aW9uT2JqZWN0ICpzZWxmKQotewotICAgIEVWUF9DSVBIRVJfQ1RYX2Zy
ZWUoc2VsZi0+Y3R4KTsKLX0KLQotc3RhdGljIGludCBIZWFkZXJQcm90ZWN0aW9uX21hc2soSGVh
ZGVyUHJvdGVjdGlvbk9iamVjdCAqc2VsZiwgY29uc3QgdW5zaWduZWQgY2hhciogc2FtcGxlKQot
ewotICAgIGludCBvdXRsZW47Ci0gICAgaWYgKHNlbGYtPmlzX2NoYWNoYTIwKSB7Ci0gICAgICAg
IHJldHVybiBFVlBfQ2lwaGVySW5pdF9leChzZWxmLT5jdHgsIE5VTEwsIE5VTEwsIE5VTEwsIHNh
bXBsZSwgMSkgJiYKLSAgICAgICAgICAgICAgIEVWUF9DaXBoZXJVcGRhdGUoc2VsZi0+Y3R4LCBz
ZWxmLT5tYXNrLCAmb3V0bGVuLCBzZWxmLT56ZXJvLCBzaXplb2Yoc2VsZi0+emVybykpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBFVlBfQ2lwaGVyVXBkYXRlKHNlbGYtPmN0eCwgc2Vs
Zi0+bWFzaywgJm91dGxlbiwgc2FtcGxlLCBTQU1QTEVfTEVOR1RIKTsKLSAgICB9Ci19Ci0KLXN0
YXRpYyBQeU9iamVjdCoKLUhlYWRlclByb3RlY3Rpb25fYXBwbHkoSGVhZGVyUHJvdGVjdGlvbk9i
amVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAq
aGVhZGVyLCAqcGF5bG9hZDsKLSAgICBQeV9zc2l6ZV90IGhlYWRlcl9sZW4sIHBheWxvYWRfbGVu
OwotICAgIGludCByZXM7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkjeSMi
LCAmaGVhZGVyLCAmaGVhZGVyX2xlbiwgJnBheWxvYWQsICZwYXlsb2FkX2xlbikpCi0gICAgICAg
IHJldHVybiBOVUxMOwotCi0gICAgaW50IHBuX2xlbmd0aCA9IChoZWFkZXJbMF0gJiAweDAzKSAr
IDE7Ci0gICAgaW50IHBuX29mZnNldCA9IGhlYWRlcl9sZW4gLSBwbl9sZW5ndGg7Ci0KLSAgICBy
ZXMgPSBIZWFkZXJQcm90ZWN0aW9uX21hc2soc2VsZiwgcGF5bG9hZCArIFBBQ0tFVF9OVU1CRVJf
TEVOR1RIX01BWCAtIHBuX2xlbmd0aCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQot
ICAgIG1lbWNweShzZWxmLT5idWZmZXIsIGhlYWRlciwgaGVhZGVyX2xlbik7Ci0gICAgbWVtY3B5
KHNlbGYtPmJ1ZmZlciArIGhlYWRlcl9sZW4sIHBheWxvYWQsIHBheWxvYWRfbGVuKTsKLQotICAg
IGlmIChzZWxmLT5idWZmZXJbMF0gJiAweDgwKSB7Ci0gICAgICAgIHNlbGYtPmJ1ZmZlclswXSBe
PSBzZWxmLT5tYXNrWzBdICYgMHgwRjsKLSAgICB9IGVsc2UgewotICAgICAgICBzZWxmLT5idWZm
ZXJbMF0gXj0gc2VsZi0+bWFza1swXSAmIDB4MUY7Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBwbl9sZW5ndGg7ICsraSkgewotICAgICAgICBzZWxmLT5idWZmZXJbcG5fb2Zmc2V0
ICsgaV0gXj0gc2VsZi0+bWFza1sxICsgaV07Ci0gICAgfQotCi0gICAgcmV0dXJuIFB5Qnl0ZXNf
RnJvbVN0cmluZ0FuZFNpemUoKGNvbnN0IGNoYXIqKXNlbGYtPmJ1ZmZlciwgaGVhZGVyX2xlbiAr
IHBheWxvYWRfbGVuKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0KgotSGVhZGVyUHJvdGVjdGlvbl9y
ZW1vdmUoSGVhZGVyUHJvdGVjdGlvbk9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0g
ICAgY29uc3QgdW5zaWduZWQgY2hhciAqcGFja2V0OwotICAgIFB5X3NzaXplX3QgcGFja2V0X2xl
bjsKLSAgICBpbnQgcG5fb2Zmc2V0LCByZXM7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUo
YXJncywgInkjSSIsICZwYWNrZXQsICZwYWNrZXRfbGVuLCAmcG5fb2Zmc2V0KSkKLSAgICAgICAg
cmV0dXJuIE5VTEw7Ci0KLSAgICByZXMgPSBIZWFkZXJQcm90ZWN0aW9uX21hc2soc2VsZiwgcGFj
a2V0ICsgcG5fb2Zmc2V0ICsgUEFDS0VUX05VTUJFUl9MRU5HVEhfTUFYKTsKLSAgICBDSEVDS19S
RVNVTFQocmVzICE9IDApOwotCi0gICAgbWVtY3B5KHNlbGYtPmJ1ZmZlciwgcGFja2V0LCBwbl9v
ZmZzZXQgKyBQQUNLRVRfTlVNQkVSX0xFTkdUSF9NQVgpOwotCi0gICAgaWYgKHNlbGYtPmJ1ZmZl
clswXSAmIDB4ODApIHsKLSAgICAgICAgc2VsZi0+YnVmZmVyWzBdIF49IHNlbGYtPm1hc2tbMF0g
JiAweDBGOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlbGYtPmJ1ZmZlclswXSBePSBzZWxmLT5t
YXNrWzBdICYgMHgxRjsKLSAgICB9Ci0KLSAgICBpbnQgcG5fbGVuZ3RoID0gKHNlbGYtPmJ1ZmZl
clswXSAmIDB4MDMpICsgMTsKLSAgICB1aW50MzJfdCBwbl90cnVuY2F0ZWQgPSAwOwotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgcG5fbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgc2VsZi0+YnVmZmVy
W3BuX29mZnNldCArIGldIF49IHNlbGYtPm1hc2tbMSArIGldOwotICAgICAgICBwbl90cnVuY2F0
ZWQgPSBzZWxmLT5idWZmZXJbcG5fb2Zmc2V0ICsgaV0gfCAocG5fdHJ1bmNhdGVkIDw8IDgpOwot
ICAgIH0KLQotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJ5I2kiLCBzZWxmLT5idWZmZXIsIHBu
X29mZnNldCArIHBuX2xlbmd0aCwgcG5fdHJ1bmNhdGVkKTsKLX0KLQotc3RhdGljIFB5TWV0aG9k
RGVmIEhlYWRlclByb3RlY3Rpb25fbWV0aG9kc1tdID0gewotICAgIHsiYXBwbHkiLCAoUHlDRnVu
Y3Rpb24pSGVhZGVyUHJvdGVjdGlvbl9hcHBseSwgTUVUSF9WQVJBUkdTLCAiIn0sCi0gICAgeyJy
ZW1vdmUiLCAoUHlDRnVuY3Rpb24pSGVhZGVyUHJvdGVjdGlvbl9yZW1vdmUsIE1FVEhfVkFSQVJH
UywgIiJ9LAotICAgIHtOVUxMfQotfTsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBIZWFkZXJQcm90
ZWN0aW9uVHlwZSA9IHsKLSAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICBN
T0RVTEVfTkFNRSAiLkhlYWRlclByb3RlY3Rpb24iLCAgICAvKiB0cF9uYW1lICovCi0gICAgc2l6
ZW9mKEhlYWRlclByb3RlY3Rpb25PYmplY3QpLCAgICAgLyogdHBfYmFzaWNzaXplICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KLSAg
ICAoZGVzdHJ1Y3RvcilIZWFkZXJQcm90ZWN0aW9uX2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICov
Ci0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIg
Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZl
ZCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIg
Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1i
ZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19z
ZXF1ZW5jZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRw
X2FzX21hcHBpbmcgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiB0cF9oYXNoICAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IHRwX2NhbGwgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0
cF9zdHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9n
ZXRhdHRybyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRw
X3NldGF0dHJvICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
dHBfYXNfYnVmZmVyICovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAgICAg
LyogdHBfZmxhZ3MgKi8KLSAgICAiSGVhZGVyUHJvdGVjdGlvbiBvYmplY3RzIiwgICAgICAgICAv
KiB0cF9kb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0
cF90cmF2ZXJzZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IHRwX2NsZWFyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
dHBfcmljaGNvbXBhcmUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIEhlYWRlclByb3RlY3Rpb25fbWV0aG9kcywg
ICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogdHBfYmFzZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIHRwX2RpY3QgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCi0gICAgKGluaXRwcm9jKUhlYWRlclBy
b3RlY3Rpb25faW5pdCwgICAgLyogdHBfaW5pdCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCi19OwotCi0KLXN0YXRpYyBzdHJ1Y3QgUHlN
b2R1bGVEZWYgbW9kdWxlZGVmID0gewotICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKLSAgICBN
T0RVTEVfTkFNRSwgICAgICAgICAgICAgICAgICAgICAgICAvKiBtX25hbWUgKi8KLSAgICAiQSBm
YXN0ZXIgYnVmZmVyLiIsICAgICAgICAgICAgICAgICAvKiBtX2RvYyAqLwotICAgIC0xLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fc2l6ZSAqLwotICAgIE5VTEwsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fbWV0aG9kcyAqLwotICAgIE5VTEwsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fcmVsb2FkICovCi0gICAgTlVMTCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogbV90cmF2ZXJzZSAqLwotICAgIE5VTEwsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fY2xlYXIgKi8KLSAgICBOVUxMLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBtX2ZyZWUgKi8KLX07Ci0KLVB5TU9ESU5JVF9GVU5D
Ci1QeUluaXRfX2NyeXB0byh2b2lkKQotewotICAgIFB5T2JqZWN0KiBtOwotCi0gICAgbSA9IFB5
TW9kdWxlX0NyZWF0ZSgmbW9kdWxlZGVmKTsKLSAgICBpZiAobSA9PSBOVUxMKQotICAgICAgICBy
ZXR1cm4gTlVMTDsKLQotICAgIENyeXB0b0Vycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKE1PRFVM
RV9OQU1FICIuQ3J5cHRvRXJyb3IiLCBQeUV4Y19WYWx1ZUVycm9yLCBOVUxMKTsKLSAgICBQeV9J
TkNSRUYoQ3J5cHRvRXJyb3IpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQ3J5cHRvRXJy
b3IiLCBDcnlwdG9FcnJvcik7Ci0KLSAgICBBRUFEVHlwZS50cF9uZXcgPSBQeVR5cGVfR2VuZXJp
Y05ldzsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZBRUFEVHlwZSkgPCAwKQotICAgICAgICByZXR1
cm4gTlVMTDsKLSAgICBQeV9JTkNSRUYoJkFFQURUeXBlKTsKLSAgICBQeU1vZHVsZV9BZGRPYmpl
Y3QobSwgIkFFQUQiLCAoUHlPYmplY3QgKikmQUVBRFR5cGUpOwotCi0gICAgSGVhZGVyUHJvdGVj
dGlvblR5cGUudHBfbmV3ID0gUHlUeXBlX0dlbmVyaWNOZXc7Ci0gICAgaWYgKFB5VHlwZV9SZWFk
eSgmSGVhZGVyUHJvdGVjdGlvblR5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAg
UHlfSU5DUkVGKCZIZWFkZXJQcm90ZWN0aW9uVHlwZSk7Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0
KG0sICJIZWFkZXJQcm90ZWN0aW9uIiwgKFB5T2JqZWN0ICopJkhlYWRlclByb3RlY3Rpb25UeXBl
KTsKLQotICAgIC8vIGVuc3VyZSByZXF1aXJlZCBjaXBoZXJzIGFyZSBpbml0aWFsaXNlZAotICAg
IEVWUF9hZGRfY2lwaGVyKEVWUF9hZXNfMTI4X2VjYigpKTsKLSAgICBFVlBfYWRkX2NpcGhlcihF
VlBfYWVzXzEyOF9nY20oKSk7Ci0gICAgRVZQX2FkZF9jaXBoZXIoRVZQX2Flc18yNTZfZWNiKCkp
OwotICAgIEVWUF9hZGRfY2lwaGVyKEVWUF9hZXNfMjU2X2djbSgpKTsKLQotICAgIHJldHVybiBt
OwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19jcnlwdG8ucHlpIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19jcnlwdG8ucHlpCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzMmM1MjMwZDk5MmU3ZjIxOWM5M2JlYzNjYjQ1NzIxNGMyNTE4Yzc3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9fY3J5cHRvLnB5aQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWZy
b20gdHlwaW5nIGltcG9ydCBUdXBsZQotCi1jbGFzcyBBRUFEOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjaXBoZXJfbmFtZTogYnl0ZXMsIGtleTogYnl0ZXMsIGl2OiBieXRlcyk6IC4uLgotICAg
IGRlZiBkZWNyeXB0KAotICAgICAgICBzZWxmLCBkYXRhOiBieXRlcywgYXNzb2NpYXRlZF9kYXRh
OiBieXRlcywgcGFja2V0X251bWJlcjogaW50Ci0gICAgKSAtPiBieXRlczogLi4uCi0gICAgZGVm
IGVuY3J5cHQoCi0gICAgICAgIHNlbGYsIGRhdGE6IGJ5dGVzLCBhc3NvY2lhdGVkX2RhdGE6IGJ5
dGVzLCBwYWNrZXRfbnVtYmVyOiBpbnQKLSAgICApIC0+IGJ5dGVzOiAuLi4KLQotY2xhc3MgQ3J5
cHRvRXJyb3IoVmFsdWVFcnJvcik6IC4uLgotCi1jbGFzcyBIZWFkZXJQcm90ZWN0aW9uOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjaXBoZXJfbmFtZTogYnl0ZXMsIGtleTogYnl0ZXMpOiAuLi4K
LSAgICBkZWYgYXBwbHkoc2VsZiwgcGxhaW5faGVhZGVyOiBieXRlcywgcHJvdGVjdGVkX3BheWxv
YWQ6IGJ5dGVzKSAtPiBieXRlczogLi4uCi0gICAgZGVmIHJlbW92ZShzZWxmLCBwYWNrZXQ6IGJ5
dGVzLCBlbmNyeXB0ZWRfb2Zmc2V0OiBpbnQpIC0+IFR1cGxlW2J5dGVzLCBpbnRdOiAuLi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hYm91dC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9hYm91dC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThl
ZWQ4ZDZiY2MzZWIzNTdhN2IwMGFjNTQ2OTQyZDUxY2MzZGY2NC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYWJv
dXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLV9fYXV0aG9yX18gPSAiSmVyZW15
IExhaW7DqSIKLV9fZW1haWxfXyA9ICJqZXJlbXkubGFpbmVAbTR4Lm9yZyIKLV9fbGljZW5zZV9f
ID0gIkJTRCIKLV9fc3VtbWFyeV9fID0gIkFuIGltcGxlbWVudGF0aW9uIG9mIFFVSUMgYW5kIEhU
VFAvMyIKLV9fdGl0bGVfXyA9ICJhaW9xdWljIgotX191cmlfXyA9ICJodHRwczovL2dpdGh1Yi5j
b20vYWlvcnRjL2Fpb3F1aWMiCi1fX3ZlcnNpb25fXyA9ICIwLjguOCIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2FzeW5jaW8vX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDNmZGE2OWQ4OTkzNGU4Zjg3YTIxYzViOThlOTdhMTE0OTEyYmU4Y2IuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9h
aW9xdWljL2FzeW5jaW8vX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LWZyb20gLmNsaWVudCBpbXBvcnQgY29ubmVjdCAgIyBub3FhCi1mcm9tIC5wcm90b2NvbCBpbXBv
cnQgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCAgIyBub3FhCi1mcm9tIC5zZXJ2ZXIgaW1wb3J0IHNl
cnZlICAjIG5vcWEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lv
L2NsaWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL2NsaWVudC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI5MzdlOWU4OTJiZmU3NmNkMmMyZmM3Y2Iz
YTZlNGZmNzM5MzNkYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9jbGllbnQucHkKKysrIC9kZXYv
bnVsbApAQCAtMSw5NCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGlwYWRkcmVzcwot
aW1wb3J0IHNvY2tldAotaW1wb3J0IHN5cwotZnJvbSB0eXBpbmcgaW1wb3J0IEFzeW5jR2VuZXJh
dG9yLCBDYWxsYWJsZSwgT3B0aW9uYWwsIGNhc3QKLQotZnJvbSAuLnF1aWMuY29uZmlndXJhdGlv
biBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZyb20gLi5xdWljLmNvbm5lY3Rpb24gaW1wb3J0
IFF1aWNDb25uZWN0aW9uCi1mcm9tIC4udGxzIGltcG9ydCBTZXNzaW9uVGlja2V0SGFuZGxlcgot
ZnJvbSAuY29tcGF0IGltcG9ydCBhc3luY2NvbnRleHRtYW5hZ2VyCi1mcm9tIC5wcm90b2NvbCBp
bXBvcnQgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCwgUXVpY1N0cmVhbUhhbmRsZXIKLQotX19hbGxf
XyA9IFsiY29ubmVjdCJdCi0KLQotQGFzeW5jY29udGV4dG1hbmFnZXIKLWFzeW5jIGRlZiBjb25u
ZWN0KAotICAgIGhvc3Q6IHN0ciwKLSAgICBwb3J0OiBpbnQsCi0gICAgKiwKLSAgICBjb25maWd1
cmF0aW9uOiBPcHRpb25hbFtRdWljQ29uZmlndXJhdGlvbl0gPSBOb25lLAotICAgIGNyZWF0ZV9w
cm90b2NvbDogT3B0aW9uYWxbQ2FsbGFibGVdID0gUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCwKLSAg
ICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyOiBPcHRpb25hbFtTZXNzaW9uVGlja2V0SGFuZGxlcl0g
PSBOb25lLAotICAgIHN0cmVhbV9oYW5kbGVyOiBPcHRpb25hbFtRdWljU3RyZWFtSGFuZGxlcl0g
PSBOb25lLAotICAgIHdhaXRfY29ubmVjdGVkOiBib29sID0gVHJ1ZSwKLSAgICBsb2NhbF9wb3J0
OiBpbnQgPSAwLAotKSAtPiBBc3luY0dlbmVyYXRvcltRdWljQ29ubmVjdGlvblByb3RvY29sLCBO
b25lXToKLSAgICAiIiIKLSAgICBDb25uZWN0IHRvIGEgUVVJQyBzZXJ2ZXIgYXQgdGhlIGdpdmVu
IGBob3N0YCBhbmQgYHBvcnRgLgotCi0gICAgOm1ldGg6YGNvbm5lY3QoKWAgcmV0dXJucyBhbiBh
d2FpdGFibGUuIEF3YWl0aW5nIGl0IHlpZWxkcyBhCi0gICAgOmNsYXNzOmB+YWlvcXVpYy5hc3lu
Y2lvLlF1aWNDb25uZWN0aW9uUHJvdG9jb2xgIHdoaWNoIGNhbiBiZSB1c2VkIHRvCi0gICAgY3Jl
YXRlIHN0cmVhbXMuCi0KLSAgICA6ZnVuYzpgY29ubmVjdGAgYWxzbyBhY2NlcHRzIHRoZSBmb2xs
b3dpbmcgb3B0aW9uYWwgYXJndW1lbnRzOgotCi0gICAgKiBgYGNvbmZpZ3VyYXRpb25gYCBpcyBh
IDpjbGFzczpgfmFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uLlF1aWNDb25maWd1cmF0aW9uYAot
ICAgICAgY29uZmlndXJhdGlvbiBvYmplY3QuCi0gICAgKiBgYGNyZWF0ZV9wcm90b2NvbGBgIGFs
bG93cyBjdXN0b21pemluZyB0aGUgOmNsYXNzOmB+YXN5bmNpby5Qcm90b2NvbGAgdGhhdAotICAg
ICAgbWFuYWdlcyB0aGUgY29ubmVjdGlvbi4gSXQgc2hvdWxkIGJlIGEgY2FsbGFibGUgb3IgY2xh
c3MgYWNjZXB0aW5nIHRoZSBzYW1lCi0gICAgICBhcmd1bWVudHMgYXMgOmNsYXNzOmB+YWlvcXVp
Yy5hc3luY2lvLlF1aWNDb25uZWN0aW9uUHJvdG9jb2xgIGFuZCByZXR1cm5pbmcKLSAgICAgIGFu
IGluc3RhbmNlIG9mIDpjbGFzczpgfmFpb3F1aWMuYXN5bmNpby5RdWljQ29ubmVjdGlvblByb3Rv
Y29sYCBvciBhIHN1YmNsYXNzLgotICAgICogYGBzZXNzaW9uX3RpY2tldF9oYW5kbGVyYGAgaXMg
YSBjYWxsYmFjayB3aGljaCBpcyBpbnZva2VkIGJ5IHRoZSBUTFMKLSAgICAgIGVuZ2luZSB3aGVu
IGEgbmV3IHNlc3Npb24gdGlja2V0IGlzIHJlY2VpdmVkLgotICAgICogYGBzdHJlYW1faGFuZGxl
cmBgIGlzIGEgY2FsbGJhY2sgd2hpY2ggaXMgaW52b2tlZCB3aGVuZXZlciBhIHN0cmVhbSBpcwot
ICAgICAgY3JlYXRlZC4gSXQgbXVzdCBhY2NlcHQgdHdvIGFyZ3VtZW50czogYSA6Y2xhc3M6YGFz
eW5jaW8uU3RyZWFtUmVhZGVyYAotICAgICAgYW5kIGEgOmNsYXNzOmBhc3luY2lvLlN0cmVhbVdy
aXRlcmAuCi0gICAgKiBgYGxvY2FsX3BvcnRgYCBpcyB0aGUgVURQIHBvcnQgbnVtYmVyIHRoYXQg
dGhpcyBjbGllbnQgd2FudHMgdG8gYmluZC4KLSAgICAiIiIKLSAgICBsb29wID0gYXN5bmNpby5n
ZXRfZXZlbnRfbG9vcCgpCi0gICAgbG9jYWxfaG9zdCA9ICI6OiIKLQotICAgICMgaWYgaG9zdCBp
cyBub3QgYW4gSVAgYWRkcmVzcywgcGFzcyBpdCB0byBlbmFibGUgU05JCi0gICAgdHJ5OgotICAg
ICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcyhob3N0KQotICAgICAgICBzZXJ2ZXJfbmFtZSA9IE5v
bmUKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgc2VydmVyX25hbWUgPSBob3N0Ci0K
LSAgICAjIGxvb2t1cCByZW1vdGUgYWRkcmVzcwotICAgIGluZm9zID0gYXdhaXQgbG9vcC5nZXRh
ZGRyaW5mbyhob3N0LCBwb3J0LCB0eXBlPXNvY2tldC5TT0NLX0RHUkFNKQotICAgIGFkZHIgPSBp
bmZvc1swXVs0XQotICAgIGlmIGxlbihhZGRyKSA9PSAyOgotICAgICAgICAjIGRldGVybWluZSBi
ZWhhdmlvdXIgZm9yIElQdjQKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0g
ICAgICAgICAgICAjIG9uIFdpbmRvd3MsIHdlIG11c3QgdXNlIGFuIElQdjQgc29ja2V0IHRvIHJl
YWNoIGFuIElQdjQgaG9zdAotICAgICAgICAgICAgbG9jYWxfaG9zdCA9ICIwLjAuMC4wIgotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgIyBvdGhlciBwbGF0Zm9ybXMgc3VwcG9ydCBkdWFsLXN0
YWNrIHNvY2tldHMKLSAgICAgICAgICAgIGFkZHIgPSAoIjo6ZmZmZjoiICsgYWRkclswXSwgYWRk
clsxXSwgMCwgMCkKLQotICAgICMgcHJlcGFyZSBRVUlDIGNvbm5lY3Rpb24KLSAgICBpZiBjb25m
aWd1cmF0aW9uIGlzIE5vbmU6Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJh
dGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICBpZiBzZXJ2ZXJfbmFtZSBpcyBub3QgTm9uZToKLSAg
ICAgICAgY29uZmlndXJhdGlvbi5zZXJ2ZXJfbmFtZSA9IHNlcnZlcl9uYW1lCi0gICAgY29ubmVj
dGlvbiA9IFF1aWNDb25uZWN0aW9uKAotICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRp
b24sIHNlc3Npb25fdGlja2V0X2hhbmRsZXI9c2Vzc2lvbl90aWNrZXRfaGFuZGxlcgotICAgICkK
LQotICAgICMgY29ubmVjdAotICAgIF8sIHByb3RvY29sID0gYXdhaXQgbG9vcC5jcmVhdGVfZGF0
YWdyYW1fZW5kcG9pbnQoCi0gICAgICAgIGxhbWJkYTogY3JlYXRlX3Byb3RvY29sKGNvbm5lY3Rp
b24sIHN0cmVhbV9oYW5kbGVyPXN0cmVhbV9oYW5kbGVyKSwKLSAgICAgICAgbG9jYWxfYWRkcj0o
bG9jYWxfaG9zdCwgbG9jYWxfcG9ydCksCi0gICAgKQotICAgIHByb3RvY29sID0gY2FzdChRdWlj
Q29ubmVjdGlvblByb3RvY29sLCBwcm90b2NvbCkKLSAgICBwcm90b2NvbC5jb25uZWN0KGFkZHIp
Ci0gICAgaWYgd2FpdF9jb25uZWN0ZWQ6Ci0gICAgICAgIGF3YWl0IHByb3RvY29sLndhaXRfY29u
bmVjdGVkKCkKLSAgICB0cnk6Ci0gICAgICAgIHlpZWxkIHByb3RvY29sCi0gICAgZmluYWxseToK
LSAgICAgICAgcHJvdG9jb2wuY2xvc2UoKQotICAgIGF3YWl0IHByb3RvY29sLndhaXRfY2xvc2Vk
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL2NvbXBhdC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL2NvbXBhdC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjAxZTYyZjZkOTQyOTYxOTMzZmI2ZmUwNzJhZTBmMjdlNjQz
YjRmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9jb21wYXQucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwzMyArMCwwIEBACi1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IENvbnRleHREZWNvcmF0b3IKLWZy
b20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcwotCi10cnk6Ci0gICAgZnJvbSBjb250ZXh0bGliIGlt
cG9ydCBhc3luY2NvbnRleHRtYW5hZ2VyCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgYXN5bmNj
b250ZXh0bWFuYWdlciA9IE5vbmUKLQotCi1jbGFzcyBfQXN5bmNHZW5lcmF0b3JDb250ZXh0TWFu
YWdlcihDb250ZXh0RGVjb3JhdG9yKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgYXJn
cywga3dkcyk6Ci0gICAgICAgIHNlbGYuZ2VuID0gZnVuYygqYXJncywgKiprd2RzKQotICAgICAg
ICBzZWxmLmZ1bmMsIHNlbGYuYXJncywgc2VsZi5rd2RzID0gZnVuYywgYXJncywga3dkcwotICAg
ICAgICBzZWxmLl9fZG9jX18gPSBmdW5jLl9fZG9jX18KLQotICAgIGFzeW5jIGRlZiBfX2FlbnRl
cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gYXdhaXQgc2VsZi5nZW4uX19hbmV4dF9fKCkKLQot
ICAgIGFzeW5jIGRlZiBfX2FleGl0X18oc2VsZiwgdHlwLCB2YWx1ZSwgdHJhY2ViYWNrKToKLSAg
ICAgICAgaWYgdHlwIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYXdhaXQgc2VsZi5nZW4uYXRo
cm93KHR5cCwgdmFsdWUsIHRyYWNlYmFjaykKLQotCi1kZWYgX2FzeW5jY29udGV4dG1hbmFnZXIo
ZnVuYyk6Ci0gICAgQHdyYXBzKGZ1bmMpCi0gICAgZGVmIGhlbHBlcigqYXJncywgKiprd2RzKToK
LSAgICAgICAgcmV0dXJuIF9Bc3luY0dlbmVyYXRvckNvbnRleHRNYW5hZ2VyKGZ1bmMsIGFyZ3Ms
IGt3ZHMpCi0KLSAgICByZXR1cm4gaGVscGVyCi0KLQotaWYgYXN5bmNjb250ZXh0bWFuYWdlciBp
cyBOb25lOgotICAgIGFzeW5jY29udGV4dG1hbmFnZXIgPSBfYXN5bmNjb250ZXh0bWFuYWdlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2FzeW5jaW8vcHJvdG9jb2wucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9wcm90b2NvbC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmUwMDQzMzViOGZmZmY5ZDcwMjVkMzY1ZWNhYTkzMWY3NzQ3
MjI5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9wcm90b2NvbC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDI0MCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwg
Q2FsbGFibGUsIERpY3QsIE9wdGlvbmFsLCBUZXh0LCBUdXBsZSwgVW5pb24sIGNhc3QKLQotZnJv
bSAuLnF1aWMgaW1wb3J0IGV2ZW50cwotZnJvbSAuLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgTmV0
d29ya0FkZHJlc3MsIFF1aWNDb25uZWN0aW9uCi0KLVF1aWNDb25uZWN0aW9uSWRIYW5kbGVyID0g
Q2FsbGFibGVbW2J5dGVzXSwgTm9uZV0KLVF1aWNTdHJlYW1IYW5kbGVyID0gQ2FsbGFibGVbW2Fz
eW5jaW8uU3RyZWFtUmVhZGVyLCBhc3luY2lvLlN0cmVhbVdyaXRlcl0sIE5vbmVdCi0KLQotY2xh
c3MgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbChhc3luY2lvLkRhdGFncmFtUHJvdG9jb2wpOgotICAg
IGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwgcXVpYzogUXVpY0Nvbm5lY3Rpb24sIHN0cmVh
bV9oYW5kbGVyOiBPcHRpb25hbFtRdWljU3RyZWFtSGFuZGxlcl0gPSBOb25lCi0gICAgKToKLSAg
ICAgICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQotCi0gICAgICAgIHNlbGYuX2Ns
b3NlZCA9IGFzeW5jaW8uRXZlbnQoKQotICAgICAgICBzZWxmLl9jb25uZWN0ZWQgPSBGYWxzZQot
ICAgICAgICBzZWxmLl9jb25uZWN0ZWRfd2FpdGVyOiBPcHRpb25hbFthc3luY2lvLkZ1dHVyZVtO
b25lXV0gPSBOb25lCi0gICAgICAgIHNlbGYuX2xvb3AgPSBsb29wCi0gICAgICAgIHNlbGYuX3Bp
bmdfd2FpdGVyczogRGljdFtpbnQsIGFzeW5jaW8uRnV0dXJlW05vbmVdXSA9IHt9Ci0gICAgICAg
IHNlbGYuX3F1aWMgPSBxdWljCi0gICAgICAgIHNlbGYuX3N0cmVhbV9yZWFkZXJzOiBEaWN0W2lu
dCwgYXN5bmNpby5TdHJlYW1SZWFkZXJdID0ge30KLSAgICAgICAgc2VsZi5fdGltZXI6IE9wdGlv
bmFsW2FzeW5jaW8uVGltZXJIYW5kbGVdID0gTm9uZQotICAgICAgICBzZWxmLl90aW1lcl9hdDog
T3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgICAgICBzZWxmLl90cmFuc21pdF90YXNrOiBPcHRp
b25hbFthc3luY2lvLkhhbmRsZV0gPSBOb25lCi0gICAgICAgIHNlbGYuX3RyYW5zcG9ydDogT3B0
aW9uYWxbYXN5bmNpby5EYXRhZ3JhbVRyYW5zcG9ydF0gPSBOb25lCi0KLSAgICAgICAgIyBjYWxs
YmFja3MKLSAgICAgICAgc2VsZi5fY29ubmVjdGlvbl9pZF9pc3N1ZWRfaGFuZGxlcjogUXVpY0Nv
bm5lY3Rpb25JZEhhbmRsZXIgPSBsYW1iZGEgYzogTm9uZQotICAgICAgICBzZWxmLl9jb25uZWN0
aW9uX2lkX3JldGlyZWRfaGFuZGxlcjogUXVpY0Nvbm5lY3Rpb25JZEhhbmRsZXIgPSBsYW1iZGEg
YzogTm9uZQotICAgICAgICBzZWxmLl9jb25uZWN0aW9uX3Rlcm1pbmF0ZWRfaGFuZGxlcjogQ2Fs
bGFibGVbW10sIE5vbmVdID0gbGFtYmRhOiBOb25lCi0gICAgICAgIGlmIHN0cmVhbV9oYW5kbGVy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtX2hhbmRsZXIgPSBzdHJlYW1f
aGFuZGxlcgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtX2hhbmRsZXIg
PSBsYW1iZGEgciwgdzogTm9uZQotCi0gICAgZGVmIGNoYW5nZV9jb25uZWN0aW9uX2lkKHNlbGYp
IC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBDaGFuZ2UgdGhlIGNvbm5lY3Rpb24gSUQg
dXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBwZWVyLgotCi0gICAgICAgIFRoZSBwcmV2aW91
cyBjb25uZWN0aW9uIElEIHdpbGwgYmUgcmV0aXJlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNl
bGYuX3F1aWMuY2hhbmdlX2Nvbm5lY3Rpb25faWQoKQotICAgICAgICBzZWxmLnRyYW5zbWl0KCkK
LQotICAgIGRlZiBjbG9zZShzZWxmKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2xv
c2UgdGhlIGNvbm5lY3Rpb24uCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9xdWljLmNsb3Nl
KCkKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICBkZWYgY29ubmVjdChzZWxmLCBhZGRy
OiBOZXR3b3JrQWRkcmVzcykgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEluaXRpYXRl
IHRoZSBUTFMgaGFuZHNoYWtlLgotCi0gICAgICAgIFRoaXMgbWV0aG9kIGNhbiBvbmx5IGJlIGNh
bGxlZCBmb3IgY2xpZW50cyBhbmQgYSBzaW5nbGUgdGltZS4KLSAgICAgICAgIiIiCi0gICAgICAg
IHNlbGYuX3F1aWMuY29ubmVjdChhZGRyLCBub3c9c2VsZi5fbG9vcC50aW1lKCkpCi0gICAgICAg
IHNlbGYudHJhbnNtaXQoKQotCi0gICAgYXN5bmMgZGVmIGNyZWF0ZV9zdHJlYW0oCi0gICAgICAg
IHNlbGYsIGlzX3VuaWRpcmVjdGlvbmFsOiBib29sID0gRmFsc2UKLSAgICApIC0+IFR1cGxlW2Fz
eW5jaW8uU3RyZWFtUmVhZGVyLCBhc3luY2lvLlN0cmVhbVdyaXRlcl06Ci0gICAgICAgICIiIgot
ICAgICAgICBDcmVhdGUgYSBRVUlDIHN0cmVhbSBhbmQgcmV0dXJuIGEgcGFpciBvZiAocmVhZGVy
LCB3cml0ZXIpIG9iamVjdHMuCi0KLSAgICAgICAgVGhlIHJldHVybmVkIHJlYWRlciBhbmQgd3Jp
dGVyIG9iamVjdHMgYXJlIGluc3RhbmNlcyBvZiA6Y2xhc3M6YGFzeW5jaW8uU3RyZWFtUmVhZGVy
YAotICAgICAgICBhbmQgOmNsYXNzOmBhc3luY2lvLlN0cmVhbVdyaXRlcmAgY2xhc3Nlcy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHN0cmVhbV9pZCA9IHNlbGYuX3F1aWMuZ2V0X25leHRfYXZhaWxh
YmxlX3N0cmVhbV9pZCgKLSAgICAgICAgICAgIGlzX3VuaWRpcmVjdGlvbmFsPWlzX3VuaWRpcmVj
dGlvbmFsCi0gICAgICAgICkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9zdHJlYW0oc3Ry
ZWFtX2lkKQotCi0gICAgZGVmIHJlcXVlc3Rfa2V5X3VwZGF0ZShzZWxmKSAtPiBOb25lOgotICAg
ICAgICAiIiIKLSAgICAgICAgUmVxdWVzdCBhbiB1cGRhdGUgb2YgdGhlIGVuY3J5cHRpb24ga2V5
cy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3F1aWMucmVxdWVzdF9rZXlfdXBkYXRlKCkK
LSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICBhc3luYyBkZWYgcGluZyhzZWxmKSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgUGluZyB0aGUgcGVlciBhbmQgd2FpdCBmb3IgdGhl
IHJlc3BvbnNlLgotICAgICAgICAiIiIKLSAgICAgICAgd2FpdGVyID0gc2VsZi5fbG9vcC5jcmVh
dGVfZnV0dXJlKCkKLSAgICAgICAgdWlkID0gaWQod2FpdGVyKQotICAgICAgICBzZWxmLl9waW5n
X3dhaXRlcnNbdWlkXSA9IHdhaXRlcgotICAgICAgICBzZWxmLl9xdWljLnNlbmRfcGluZyh1aWQp
Ci0gICAgICAgIHNlbGYudHJhbnNtaXQoKQotICAgICAgICBhd2FpdCBhc3luY2lvLnNoaWVsZCh3
YWl0ZXIpCi0KLSAgICBkZWYgdHJhbnNtaXQoc2VsZikgLT4gTm9uZToKLSAgICAgICAgIiIiCi0g
ICAgICAgIFNlbmQgcGVuZGluZyBkYXRhZ3JhbXMgdG8gdGhlIHBlZXIgYW5kIGFybSB0aGUgdGlt
ZXIgaWYgbmVlZGVkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fdHJhbnNtaXRfdGFzayA9
IE5vbmUKLQotICAgICAgICAjIHNlbmQgZGF0YWdyYW1zCi0gICAgICAgIGZvciBkYXRhLCBhZGRy
IGluIHNlbGYuX3F1aWMuZGF0YWdyYW1zX3RvX3NlbmQobm93PXNlbGYuX2xvb3AudGltZSgpKToK
LSAgICAgICAgICAgIHNlbGYuX3RyYW5zcG9ydC5zZW5kdG8oZGF0YSwgYWRkcikKLQotICAgICAg
ICAjIHJlLWFybSB0aW1lcgotICAgICAgICB0aW1lcl9hdCA9IHNlbGYuX3F1aWMuZ2V0X3RpbWVy
KCkKLSAgICAgICAgaWYgc2VsZi5fdGltZXIgaXMgbm90IE5vbmUgYW5kIHNlbGYuX3RpbWVyX2F0
ICE9IHRpbWVyX2F0OgotICAgICAgICAgICAgc2VsZi5fdGltZXIuY2FuY2VsKCkKLSAgICAgICAg
ICAgIHNlbGYuX3RpbWVyID0gTm9uZQotICAgICAgICBpZiBzZWxmLl90aW1lciBpcyBOb25lIGFu
ZCB0aW1lcl9hdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3RpbWVyID0gc2VsZi5f
bG9vcC5jYWxsX2F0KHRpbWVyX2F0LCBzZWxmLl9oYW5kbGVfdGltZXIpCi0gICAgICAgIHNlbGYu
X3RpbWVyX2F0ID0gdGltZXJfYXQKLQotICAgIGFzeW5jIGRlZiB3YWl0X2Nsb3NlZChzZWxmKSAt
PiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgV2FpdCBmb3IgdGhlIGNvbm5lY3Rpb24gdG8g
YmUgY2xvc2VkLgotICAgICAgICAiIiIKLSAgICAgICAgYXdhaXQgc2VsZi5fY2xvc2VkLndhaXQo
KQotCi0gICAgYXN5bmMgZGVmIHdhaXRfY29ubmVjdGVkKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBXYWl0IGZvciB0aGUgVExTIGhhbmRzaGFrZSB0byBjb21wbGV0ZS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGFzc2VydCBzZWxmLl9jb25uZWN0ZWRfd2FpdGVyIGlzIE5vbmUs
ICJhbHJlYWR5IGF3YWl0aW5nIGNvbm5lY3RlZCIKLSAgICAgICAgaWYgbm90IHNlbGYuX2Nvbm5l
Y3RlZDoKLSAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3RlZF93YWl0ZXIgPSBzZWxmLl9sb29wLmNy
ZWF0ZV9mdXR1cmUoKQotICAgICAgICAgICAgYXdhaXQgYXN5bmNpby5zaGllbGQoc2VsZi5fY29u
bmVjdGVkX3dhaXRlcikKLQotICAgICMgYXN5bmNpby5UcmFuc3BvcnQKLQotICAgIGRlZiBjb25u
ZWN0aW9uX21hZGUoc2VsZiwgdHJhbnNwb3J0OiBhc3luY2lvLkJhc2VUcmFuc3BvcnQpIC0+IE5v
bmU6Ci0gICAgICAgIHNlbGYuX3RyYW5zcG9ydCA9IGNhc3QoYXN5bmNpby5EYXRhZ3JhbVRyYW5z
cG9ydCwgdHJhbnNwb3J0KQotCi0gICAgZGVmIGRhdGFncmFtX3JlY2VpdmVkKHNlbGYsIGRhdGE6
IFVuaW9uW2J5dGVzLCBUZXh0XSwgYWRkcjogTmV0d29ya0FkZHJlc3MpIC0+IE5vbmU6Ci0gICAg
ICAgIHNlbGYuX3F1aWMucmVjZWl2ZV9kYXRhZ3JhbShjYXN0KGJ5dGVzLCBkYXRhKSwgYWRkciwg
bm93PXNlbGYuX2xvb3AudGltZSgpKQotICAgICAgICBzZWxmLl9wcm9jZXNzX2V2ZW50cygpCi0g
ICAgICAgIHNlbGYudHJhbnNtaXQoKQotCi0gICAgIyBvdmVycmlkYWJsZQotCi0gICAgZGVmIHF1
aWNfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IGV2ZW50cy5RdWljRXZlbnQpIC0+IE5vbmU6
Ci0gICAgICAgICIiIgotICAgICAgICBDYWxsZWQgd2hlbiBhIFFVSUMgZXZlbnQgaXMgcmVjZWl2
ZWQuCi0KLSAgICAgICAgUmVpbXBsZW1lbnQgdGhpcyBpbiB5b3VyIHN1YmNsYXNzIHRvIGhhbmRs
ZSB0aGUgZXZlbnRzLgotICAgICAgICAiIiIKLSAgICAgICAgIyBGSVhNRTogbW92ZSB0aGlzIHRv
IGEgc3ViY2xhc3MKLSAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgZXZlbnRzLkNvbm5lY3Rp
b25UZXJtaW5hdGVkKToKLSAgICAgICAgICAgIGZvciByZWFkZXIgaW4gc2VsZi5fc3RyZWFtX3Jl
YWRlcnMudmFsdWVzKCk6Ci0gICAgICAgICAgICAgICAgcmVhZGVyLmZlZWRfZW9mKCkKLSAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBldmVudHMuU3RyZWFtRGF0YVJlY2VpdmVkKToKLSAg
ICAgICAgICAgIHJlYWRlciA9IHNlbGYuX3N0cmVhbV9yZWFkZXJzLmdldChldmVudC5zdHJlYW1f
aWQsIE5vbmUpCi0gICAgICAgICAgICBpZiByZWFkZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAg
ICByZWFkZXIsIHdyaXRlciA9IHNlbGYuX2NyZWF0ZV9zdHJlYW0oZXZlbnQuc3RyZWFtX2lkKQot
ICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbV9oYW5kbGVyKHJlYWRlciwgd3JpdGVyKQotICAg
ICAgICAgICAgcmVhZGVyLmZlZWRfZGF0YShldmVudC5kYXRhKQotICAgICAgICAgICAgaWYgZXZl
bnQuZW5kX3N0cmVhbToKLSAgICAgICAgICAgICAgICByZWFkZXIuZmVlZF9lb2YoKQotCi0gICAg
IyBwcml2YXRlCi0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oCi0gICAgICAgIHNlbGYsIHN0cmVh
bV9pZDogaW50Ci0gICAgKSAtPiBUdXBsZVthc3luY2lvLlN0cmVhbVJlYWRlciwgYXN5bmNpby5T
dHJlYW1Xcml0ZXJdOgotICAgICAgICBhZGFwdGVyID0gUXVpY1N0cmVhbUFkYXB0ZXIoc2VsZiwg
c3RyZWFtX2lkKQotICAgICAgICByZWFkZXIgPSBhc3luY2lvLlN0cmVhbVJlYWRlcigpCi0gICAg
ICAgIHdyaXRlciA9IGFzeW5jaW8uU3RyZWFtV3JpdGVyKGFkYXB0ZXIsIE5vbmUsIHJlYWRlciwg
c2VsZi5fbG9vcCkKLSAgICAgICAgc2VsZi5fc3RyZWFtX3JlYWRlcnNbc3RyZWFtX2lkXSA9IHJl
YWRlcgotICAgICAgICByZXR1cm4gcmVhZGVyLCB3cml0ZXIKLQotICAgIGRlZiBfaGFuZGxlX3Rp
bWVyKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIG5vdyA9IG1heChzZWxmLl90aW1lcl9hdCwgc2Vs
Zi5fbG9vcC50aW1lKCkpCi0gICAgICAgIHNlbGYuX3RpbWVyID0gTm9uZQotICAgICAgICBzZWxm
Ll90aW1lcl9hdCA9IE5vbmUKLSAgICAgICAgc2VsZi5fcXVpYy5oYW5kbGVfdGltZXIobm93PW5v
dykKLSAgICAgICAgc2VsZi5fcHJvY2Vzc19ldmVudHMoKQotICAgICAgICBzZWxmLnRyYW5zbWl0
KCkKLQotICAgIGRlZiBfcHJvY2Vzc19ldmVudHMoc2VsZikgLT4gTm9uZToKLSAgICAgICAgZXZl
bnQgPSBzZWxmLl9xdWljLm5leHRfZXZlbnQoKQotICAgICAgICB3aGlsZSBldmVudCBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIGV2ZW50cy5Db25uZWN0aW9u
SWRJc3N1ZWQpOgotICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3Rpb25faWRfaXNzdWVkX2hh
bmRsZXIoZXZlbnQuY29ubmVjdGlvbl9pZCkKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShl
dmVudCwgZXZlbnRzLkNvbm5lY3Rpb25JZFJldGlyZWQpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2Nvbm5lY3Rpb25faWRfcmV0aXJlZF9oYW5kbGVyKGV2ZW50LmNvbm5lY3Rpb25faWQpCi0gICAg
ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGV2ZW50cy5Db25uZWN0aW9uVGVybWluYXRl
ZCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdGlvbl90ZXJtaW5hdGVkX2hhbmRsZXIo
KQotCi0gICAgICAgICAgICAgICAgIyBhYm9ydCBjb25uZWN0aW9uIHdhaXRlcgotICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX2Nvbm5lY3RlZF93YWl0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIHdhaXRlciA9IHNlbGYuX2Nvbm5lY3RlZF93YWl0ZXIKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fY29ubmVjdGVkX3dhaXRlciA9IE5vbmUKLSAgICAgICAgICAgICAgICAgICAg
d2FpdGVyLnNldF9leGNlcHRpb24oQ29ubmVjdGlvbkVycm9yKQotCi0gICAgICAgICAgICAgICAg
IyBhYm9ydCBwaW5nIHdhaXRlcnMKLSAgICAgICAgICAgICAgICBmb3Igd2FpdGVyIGluIHNlbGYu
X3Bpbmdfd2FpdGVycy52YWx1ZXMoKToKLSAgICAgICAgICAgICAgICAgICAgd2FpdGVyLnNldF9l
eGNlcHRpb24oQ29ubmVjdGlvbkVycm9yKQotICAgICAgICAgICAgICAgIHNlbGYuX3Bpbmdfd2Fp
dGVycy5jbGVhcigpCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZWQuc2V0KCkKLSAgICAg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgZXZlbnRzLkhhbmRzaGFrZUNvbXBsZXRlZCk6
Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fY29ubmVjdGVkX3dhaXRlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICAgICAgd2FpdGVyID0gc2VsZi5fY29ubmVjdGVkX3dhaXRlcgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9jb25uZWN0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2Nvbm5lY3RlZF93YWl0ZXIgPSBOb25lCi0gICAgICAgICAgICAgICAgICAgIHdh
aXRlci5zZXRfcmVzdWx0KE5vbmUpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQs
IGV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkKToKLSAgICAgICAgICAgICAgICB3YWl0ZXIgPSBzZWxm
Ll9waW5nX3dhaXRlcnMucG9wKGV2ZW50LnVpZCwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiB3
YWl0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHdhaXRlci5zZXRfcmVzdWx0
KE5vbmUpCi0gICAgICAgICAgICBzZWxmLnF1aWNfZXZlbnRfcmVjZWl2ZWQoZXZlbnQpCi0gICAg
ICAgICAgICBldmVudCA9IHNlbGYuX3F1aWMubmV4dF9ldmVudCgpCi0KLSAgICBkZWYgX3RyYW5z
bWl0X3Nvb24oc2VsZikgLT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5fdHJhbnNtaXRfdGFzayBp
cyBOb25lOgotICAgICAgICAgICAgc2VsZi5fdHJhbnNtaXRfdGFzayA9IHNlbGYuX2xvb3AuY2Fs
bF9zb29uKHNlbGYudHJhbnNtaXQpCi0KLQotY2xhc3MgUXVpY1N0cmVhbUFkYXB0ZXIoYXN5bmNp
by5UcmFuc3BvcnQpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm90b2NvbDogUXVpY0Nvbm5l
Y3Rpb25Qcm90b2NvbCwgc3RyZWFtX2lkOiBpbnQpOgotICAgICAgICBzZWxmLnByb3RvY29sID0g
cHJvdG9jb2wKLSAgICAgICAgc2VsZi5zdHJlYW1faWQgPSBzdHJlYW1faWQKLQotICAgIGRlZiBj
YW5fd3JpdGVfZW9mKHNlbGYpIC0+IGJvb2w6Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBk
ZWYgZ2V0X2V4dHJhX2luZm8oc2VsZiwgbmFtZTogc3RyLCBkZWZhdWx0OiBBbnkgPSBOb25lKSAt
PiBBbnk6Ci0gICAgICAgICIiIgotICAgICAgICBHZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVu
ZGVybHlpbmcgUVVJQyBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICBpZiBuYW1lID09ICJz
dHJlYW1faWQiOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuc3RyZWFtX2lkCi0KLSAgICBkZWYg
d3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuX3F1aWMuc2VuZF9zdHJl
YW1fZGF0YShzZWxmLnN0cmVhbV9pZCwgZGF0YSkKLSAgICAgICAgc2VsZi5wcm90b2NvbC5fdHJh
bnNtaXRfc29vbigpCi0KLSAgICBkZWYgd3JpdGVfZW9mKHNlbGYpOgotICAgICAgICBzZWxmLnBy
b3RvY29sLl9xdWljLnNlbmRfc3RyZWFtX2RhdGEoc2VsZi5zdHJlYW1faWQsIGIiIiwgZW5kX3N0
cmVhbT1UcnVlKQotICAgICAgICBzZWxmLnByb3RvY29sLl90cmFuc21pdF9zb29uKCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL3NlcnZlci5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL3NlcnZlci5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjQwZWU0NjBiNmVkNjZlMDk0NTM4NWYxZjU0ODU4Y2MwZWY5MTg4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
c3JjL2Fpb3F1aWMvYXN5bmNpby9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAs
MCBAQAotaW1wb3J0IGFzeW5jaW8KLWltcG9ydCBvcwotZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBh
cnRpYWwKLWZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZSwgRGljdCwgT3B0aW9uYWwsIFRleHQs
IFVuaW9uLCBjYXN0Ci0KLWZyb20gLi5idWZmZXIgaW1wb3J0IEJ1ZmZlcgotZnJvbSAuLnF1aWMu
Y29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZyb20gLi5xdWljLmNvbm5l
Y3Rpb24gaW1wb3J0IE5ldHdvcmtBZGRyZXNzLCBRdWljQ29ubmVjdGlvbgotZnJvbSAuLnF1aWMu
cGFja2V0IGltcG9ydCAoCi0gICAgUEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICBlbmNvZGVfcXVp
Y19yZXRyeSwKLSAgICBlbmNvZGVfcXVpY192ZXJzaW9uX25lZ290aWF0aW9uLAotICAgIHB1bGxf
cXVpY19oZWFkZXIsCi0pCi1mcm9tIC4ucXVpYy5yZXRyeSBpbXBvcnQgUXVpY1JldHJ5VG9rZW5I
YW5kbGVyCi1mcm9tIC4udGxzIGltcG9ydCBTZXNzaW9uVGlja2V0RmV0Y2hlciwgU2Vzc2lvblRp
Y2tldEhhbmRsZXIKLWZyb20gLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3RvY29s
LCBRdWljU3RyZWFtSGFuZGxlcgotCi1fX2FsbF9fID0gWyJzZXJ2ZSJdCi0KLQotY2xhc3MgUXVp
Y1NlcnZlcihhc3luY2lvLkRhdGFncmFtUHJvdG9jb2wpOgotICAgIGRlZiBfX2luaXRfXygKLSAg
ICAgICAgc2VsZiwKLSAgICAgICAgKiwKLSAgICAgICAgY29uZmlndXJhdGlvbjogUXVpY0NvbmZp
Z3VyYXRpb24sCi0gICAgICAgIGNyZWF0ZV9wcm90b2NvbDogQ2FsbGFibGUgPSBRdWljQ29ubmVj
dGlvblByb3RvY29sLAotICAgICAgICBzZXNzaW9uX3RpY2tldF9mZXRjaGVyOiBPcHRpb25hbFtT
ZXNzaW9uVGlja2V0RmV0Y2hlcl0gPSBOb25lLAotICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5k
bGVyOiBPcHRpb25hbFtTZXNzaW9uVGlja2V0SGFuZGxlcl0gPSBOb25lLAotICAgICAgICBzdGF0
ZWxlc3NfcmV0cnk6IGJvb2wgPSBGYWxzZSwKLSAgICAgICAgc3RyZWFtX2hhbmRsZXI6IE9wdGlv
bmFsW1F1aWNTdHJlYW1IYW5kbGVyXSA9IE5vbmUsCi0gICAgKSAtPiBOb25lOgotICAgICAgICBz
ZWxmLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbgotICAgICAgICBzZWxmLl9jcmVhdGVf
cHJvdG9jb2wgPSBjcmVhdGVfcHJvdG9jb2wKLSAgICAgICAgc2VsZi5fbG9vcCA9IGFzeW5jaW8u
Z2V0X2V2ZW50X2xvb3AoKQotICAgICAgICBzZWxmLl9wcm90b2NvbHM6IERpY3RbYnl0ZXMsIFF1
aWNDb25uZWN0aW9uUHJvdG9jb2xdID0ge30KLSAgICAgICAgc2VsZi5fc2Vzc2lvbl90aWNrZXRf
ZmV0Y2hlciA9IHNlc3Npb25fdGlja2V0X2ZldGNoZXIKLSAgICAgICAgc2VsZi5fc2Vzc2lvbl90
aWNrZXRfaGFuZGxlciA9IHNlc3Npb25fdGlja2V0X2hhbmRsZXIKLSAgICAgICAgc2VsZi5fdHJh
bnNwb3J0OiBPcHRpb25hbFthc3luY2lvLkRhdGFncmFtVHJhbnNwb3J0XSA9IE5vbmUKLQotICAg
ICAgICBzZWxmLl9zdHJlYW1faGFuZGxlciA9IHN0cmVhbV9oYW5kbGVyCi0KLSAgICAgICAgaWYg
c3RhdGVsZXNzX3JldHJ5OgotICAgICAgICAgICAgc2VsZi5fcmV0cnkgPSBRdWljUmV0cnlUb2tl
bkhhbmRsZXIoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fcmV0cnkgPSBOb25l
Ci0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgIGZvciBwcm90b2NvbCBpbiBzZXQoc2Vs
Zi5fcHJvdG9jb2xzLnZhbHVlcygpKToKLSAgICAgICAgICAgIHByb3RvY29sLmNsb3NlKCkKLSAg
ICAgICAgc2VsZi5fcHJvdG9jb2xzLmNsZWFyKCkKLSAgICAgICAgc2VsZi5fdHJhbnNwb3J0LmNs
b3NlKCkKLQotICAgIGRlZiBjb25uZWN0aW9uX21hZGUoc2VsZiwgdHJhbnNwb3J0OiBhc3luY2lv
LkJhc2VUcmFuc3BvcnQpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX3RyYW5zcG9ydCA9IGNhc3Qo
YXN5bmNpby5EYXRhZ3JhbVRyYW5zcG9ydCwgdHJhbnNwb3J0KQotCi0gICAgZGVmIGRhdGFncmFt
X3JlY2VpdmVkKHNlbGYsIGRhdGE6IFVuaW9uW2J5dGVzLCBUZXh0XSwgYWRkcjogTmV0d29ya0Fk
ZHJlc3MpIC0+IE5vbmU6Ci0gICAgICAgIGRhdGEgPSBjYXN0KGJ5dGVzLCBkYXRhKQotICAgICAg
ICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGhl
YWRlciA9IHB1bGxfcXVpY19oZWFkZXIoCi0gICAgICAgICAgICAgICAgYnVmLCBob3N0X2NpZF9s
ZW5ndGg9c2VsZi5fY29uZmlndXJhdGlvbi5jb25uZWN0aW9uX2lkX2xlbmd0aAotICAgICAgICAg
ICAgKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybgotCi0g
ICAgICAgICMgdmVyc2lvbiBuZWdvdGlhdGlvbgotICAgICAgICBpZiAoCi0gICAgICAgICAgICBo
ZWFkZXIudmVyc2lvbiBpcyBub3QgTm9uZQotICAgICAgICAgICAgYW5kIGhlYWRlci52ZXJzaW9u
IG5vdCBpbiBzZWxmLl9jb25maWd1cmF0aW9uLnN1cHBvcnRlZF92ZXJzaW9ucwotICAgICAgICAp
OgotICAgICAgICAgICAgc2VsZi5fdHJhbnNwb3J0LnNlbmR0bygKLSAgICAgICAgICAgICAgICBl
bmNvZGVfcXVpY192ZXJzaW9uX25lZ290aWF0aW9uKAotICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VfY2lkPWhlYWRlci5kZXN0aW5hdGlvbl9jaWQsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uX2NpZD1oZWFkZXIuc291cmNlX2NpZCwKLSAgICAgICAgICAgICAgICAgICAgc3VwcG9y
dGVkX3ZlcnNpb25zPXNlbGYuX2NvbmZpZ3VyYXRpb24uc3VwcG9ydGVkX3ZlcnNpb25zLAotICAg
ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgYWRkciwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHByb3RvY29sID0gc2VsZi5fcHJvdG9jb2xzLmdl
dChoZWFkZXIuZGVzdGluYXRpb25fY2lkLCBOb25lKQotICAgICAgICBvcmlnaW5hbF9jb25uZWN0
aW9uX2lkOiBPcHRpb25hbFtieXRlc10gPSBOb25lCi0gICAgICAgIGlmICgKLSAgICAgICAgICAg
IHByb3RvY29sIGlzIE5vbmUKLSAgICAgICAgICAgIGFuZCBsZW4oZGF0YSkgPj0gMTIwMAotICAg
ICAgICAgICAgYW5kIGhlYWRlci5wYWNrZXRfdHlwZSA9PSBQQUNLRVRfVFlQRV9JTklUSUFMCi0g
ICAgICAgICk6Ci0gICAgICAgICAgICAjIHN0YXRlbGVzcyByZXRyeQotICAgICAgICAgICAgaWYg
c2VsZi5fcmV0cnkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgbm90IGhlYWRlci50
b2tlbjoKLSAgICAgICAgICAgICAgICAgICAgIyBjcmVhdGUgYSByZXRyeSB0b2tlbgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl90cmFuc3BvcnQuc2VuZHRvKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZW5jb2RlX3F1aWNfcmV0cnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbj1oZWFkZXIudmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vf
Y2lkPW9zLnVyYW5kb20oOCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRp
b25fY2lkPWhlYWRlci5zb3VyY2VfY2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9y
aWdpbmFsX2Rlc3RpbmF0aW9uX2NpZD1oZWFkZXIuZGVzdGluYXRpb25fY2lkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHJ5X3Rva2VuPXNlbGYuX3JldHJ5LmNyZWF0ZV90b2tlbigK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkciwgaGVhZGVyLmRlc3RpbmF0aW9u
X2NpZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAg
ICAgICApLAotICAgICAgICAgICAgICAgICAgICAgICAgYWRkciwKLSAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICAjIHZhbGlkYXRlIHJldHJ5IHRva2VuCi0gICAgICAgICAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2Nvbm5lY3Rpb25f
aWQgPSBzZWxmLl9yZXRyeS52YWxpZGF0ZV90b2tlbigKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRyLCBoZWFkZXIudG9rZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4KLQotICAgICAgICAgICAgIyBjcmVhdGUgbmV3IGNvbm5lY3Rpb24KLSAgICAgICAg
ICAgIGNvbm5lY3Rpb24gPSBRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uPXNlbGYuX2NvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAgbG9nZ2VyX2Nvbm5l
Y3Rpb25faWQ9b3JpZ2luYWxfY29ubmVjdGlvbl9pZCBvciBoZWFkZXIuZGVzdGluYXRpb25fY2lk
LAotICAgICAgICAgICAgICAgIG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQ9b3JpZ2luYWxfY29ubmVj
dGlvbl9pZCwKLSAgICAgICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9mZXRjaGVyPXNlbGYuX3Nl
c3Npb25fdGlja2V0X2ZldGNoZXIsCi0gICAgICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXRfaGFu
ZGxlcj1zZWxmLl9zZXNzaW9uX3RpY2tldF9oYW5kbGVyLAotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgcHJvdG9jb2wgPSBzZWxmLl9jcmVhdGVfcHJvdG9jb2woCi0gICAgICAgICAgICAgICAg
Y29ubmVjdGlvbiwgc3RyZWFtX2hhbmRsZXI9c2VsZi5fc3RyZWFtX2hhbmRsZXIKLSAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIHByb3RvY29sLmNvbm5lY3Rpb25fbWFkZShzZWxmLl90cmFuc3Bv
cnQpCi0KLSAgICAgICAgICAgICMgcmVnaXN0ZXIgY2FsbGJhY2tzCi0gICAgICAgICAgICBwcm90
b2NvbC5fY29ubmVjdGlvbl9pZF9pc3N1ZWRfaGFuZGxlciA9IHBhcnRpYWwoCi0gICAgICAgICAg
ICAgICAgc2VsZi5fY29ubmVjdGlvbl9pZF9pc3N1ZWQsIHByb3RvY29sPXByb3RvY29sCi0gICAg
ICAgICAgICApCi0gICAgICAgICAgICBwcm90b2NvbC5fY29ubmVjdGlvbl9pZF9yZXRpcmVkX2hh
bmRsZXIgPSBwYXJ0aWFsKAotICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3Rpb25faWRfcmV0
aXJlZCwgcHJvdG9jb2w9cHJvdG9jb2wKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHByb3Rv
Y29sLl9jb25uZWN0aW9uX3Rlcm1pbmF0ZWRfaGFuZGxlciA9IHBhcnRpYWwoCi0gICAgICAgICAg
ICAgICAgc2VsZi5fY29ubmVjdGlvbl90ZXJtaW5hdGVkLCBwcm90b2NvbD1wcm90b2NvbAotICAg
ICAgICAgICAgKQotCi0gICAgICAgICAgICBzZWxmLl9wcm90b2NvbHNbaGVhZGVyLmRlc3RpbmF0
aW9uX2NpZF0gPSBwcm90b2NvbAotICAgICAgICAgICAgc2VsZi5fcHJvdG9jb2xzW2Nvbm5lY3Rp
b24uaG9zdF9jaWRdID0gcHJvdG9jb2wKLQotICAgICAgICBpZiBwcm90b2NvbCBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHByb3RvY29sLmRhdGFncmFtX3JlY2VpdmVkKGRhdGEsIGFkZHIpCi0K
LSAgICBkZWYgX2Nvbm5lY3Rpb25faWRfaXNzdWVkKHNlbGYsIGNpZDogYnl0ZXMsIHByb3RvY29s
OiBRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICAgICAgc2VsZi5fcHJvdG9jb2xzW2NpZF0g
PSBwcm90b2NvbAotCi0gICAgZGVmIF9jb25uZWN0aW9uX2lkX3JldGlyZWQoCi0gICAgICAgIHNl
bGYsIGNpZDogYnl0ZXMsIHByb3RvY29sOiBRdWljQ29ubmVjdGlvblByb3RvY29sCi0gICAgKSAt
PiBOb25lOgotICAgICAgICBhc3NlcnQgc2VsZi5fcHJvdG9jb2xzW2NpZF0gPT0gcHJvdG9jb2wK
LSAgICAgICAgZGVsIHNlbGYuX3Byb3RvY29sc1tjaWRdCi0KLSAgICBkZWYgX2Nvbm5lY3Rpb25f
dGVybWluYXRlZChzZWxmLCBwcm90b2NvbDogUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCk6Ci0gICAg
ICAgIGZvciBjaWQsIHByb3RvIGluIGxpc3Qoc2VsZi5fcHJvdG9jb2xzLml0ZW1zKCkpOgotICAg
ICAgICAgICAgaWYgcHJvdG8gPT0gcHJvdG9jb2w6Ci0gICAgICAgICAgICAgICAgZGVsIHNlbGYu
X3Byb3RvY29sc1tjaWRdCi0KLQotYXN5bmMgZGVmIHNlcnZlKAotICAgIGhvc3Q6IHN0ciwKLSAg
ICBwb3J0OiBpbnQsCi0gICAgKiwKLSAgICBjb25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlv
biwKLSAgICBjcmVhdGVfcHJvdG9jb2w6IENhbGxhYmxlID0gUXVpY0Nvbm5lY3Rpb25Qcm90b2Nv
bCwKLSAgICBzZXNzaW9uX3RpY2tldF9mZXRjaGVyOiBPcHRpb25hbFtTZXNzaW9uVGlja2V0RmV0
Y2hlcl0gPSBOb25lLAotICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI6IE9wdGlvbmFsW1Nlc3Np
b25UaWNrZXRIYW5kbGVyXSA9IE5vbmUsCi0gICAgc3RhdGVsZXNzX3JldHJ5OiBib29sID0gRmFs
c2UsCi0gICAgc3RyZWFtX2hhbmRsZXI6IFF1aWNTdHJlYW1IYW5kbGVyID0gTm9uZSwKLSkgLT4g
UXVpY1NlcnZlcjoKLSAgICAiIiIKLSAgICBTdGFydCBhIFFVSUMgc2VydmVyIGF0IHRoZSBnaXZl
biBgaG9zdGAgYW5kIGBwb3J0YC4KLQotICAgIDpmdW5jOmBzZXJ2ZWAgcmVxdWlyZXMgYSA6Y2xh
c3M6YH5haW9xdWljLnF1aWMuY29uZmlndXJhdGlvbi5RdWljQ29uZmlndXJhdGlvbmAKLSAgICBj
b250YWluaW5nIFRMUyBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgYXMgdGhlIGBgY29uZmln
dXJhdGlvbmBgIGFyZ3VtZW50LgotCi0gICAgOmZ1bmM6YHNlcnZlYCBhbHNvIGFjY2VwdHMgdGhl
IGZvbGxvd2luZyBvcHRpb25hbCBhcmd1bWVudHM6Ci0KLSAgICAqIGBgY3JlYXRlX3Byb3RvY29s
YGAgYWxsb3dzIGN1c3RvbWl6aW5nIHRoZSA6Y2xhc3M6YH5hc3luY2lvLlByb3RvY29sYCB0aGF0
Ci0gICAgICBtYW5hZ2VzIHRoZSBjb25uZWN0aW9uLiBJdCBzaG91bGQgYmUgYSBjYWxsYWJsZSBv
ciBjbGFzcyBhY2NlcHRpbmcgdGhlIHNhbWUKLSAgICAgIGFyZ3VtZW50cyBhcyA6Y2xhc3M6YH5h
aW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbGAgYW5kIHJldHVybmluZwotICAg
ICAgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmB+YWlvcXVpYy5hc3luY2lvLlF1aWNDb25uZWN0aW9u
UHJvdG9jb2xgIG9yIGEgc3ViY2xhc3MuCi0gICAgKiBgYHNlc3Npb25fdGlja2V0X2ZldGNoZXJg
YCBpcyBhIGNhbGxiYWNrIHdoaWNoIGlzIGludm9rZWQgYnkgdGhlIFRMUwotICAgICAgZW5naW5l
IHdoZW4gYSBzZXNzaW9uIHRpY2tldCBpcyBwcmVzZW50ZWQgYnkgdGhlIHBlZXIuIEl0IHNob3Vs
ZCByZXR1cm4KLSAgICAgIHRoZSBzZXNzaW9uIHRpY2tldCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQg
b3IgYE5vbmVgIGlmIGl0IGlzIG5vdCBmb3VuZC4KLSAgICAqIGBgc2Vzc2lvbl90aWNrZXRfaGFu
ZGxlcmBgIGlzIGEgY2FsbGJhY2sgd2hpY2ggaXMgaW52b2tlZCBieSB0aGUgVExTCi0gICAgICBl
bmdpbmUgd2hlbiBhIG5ldyBzZXNzaW9uIHRpY2tldCBpcyBpc3N1ZWQuIEl0IHNob3VsZCBzdG9y
ZSB0aGUgc2Vzc2lvbgotICAgICAgdGlja2V0IGZvciBmdXR1cmUgbG9va3VwLgotICAgICogYGBz
dGF0ZWxlc3NfcmV0cnlgYCBzcGVjaWZpZXMgd2hldGhlciBhIHN0YXRlbGVzcyByZXRyeSBzaG91
bGQgYmUKLSAgICAgIHBlcmZvcm1lZCBwcmlvciB0byBoYW5kbGluZyBuZXcgY29ubmVjdGlvbnMu
Ci0gICAgKiBgYHN0cmVhbV9oYW5kbGVyYGAgaXMgYSBjYWxsYmFjayB3aGljaCBpcyBpbnZva2Vk
IHdoZW5ldmVyIGEgc3RyZWFtIGlzCi0gICAgICBjcmVhdGVkLiBJdCBtdXN0IGFjY2VwdCB0d28g
YXJndW1lbnRzOiBhIDpjbGFzczpgYXN5bmNpby5TdHJlYW1SZWFkZXJgCi0gICAgICBhbmQgYSA6
Y2xhc3M6YGFzeW5jaW8uU3RyZWFtV3JpdGVyYC4KLSAgICAiIiIKLQotICAgIGxvb3AgPSBhc3lu
Y2lvLmdldF9ldmVudF9sb29wKCkKLQotICAgIF8sIHByb3RvY29sID0gYXdhaXQgbG9vcC5jcmVh
dGVfZGF0YWdyYW1fZW5kcG9pbnQoCi0gICAgICAgIGxhbWJkYTogUXVpY1NlcnZlcigKLSAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgIGNyZWF0ZV9w
cm90b2NvbD1jcmVhdGVfcHJvdG9jb2wsCi0gICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9mZXRj
aGVyPXNlc3Npb25fdGlja2V0X2ZldGNoZXIsCi0gICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9o
YW5kbGVyPXNlc3Npb25fdGlja2V0X2hhbmRsZXIsCi0gICAgICAgICAgICBzdGF0ZWxlc3NfcmV0
cnk9c3RhdGVsZXNzX3JldHJ5LAotICAgICAgICAgICAgc3RyZWFtX2hhbmRsZXI9c3RyZWFtX2hh
bmRsZXIsCi0gICAgICAgICksCi0gICAgICAgIGxvY2FsX2FkZHI9KGhvc3QsIHBvcnQpLAotICAg
ICkKLSAgICByZXR1cm4gY2FzdChRdWljU2VydmVyLCBwcm90b2NvbCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3NyYy9haW9xdWljL2FzeW5jaW8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhiODM0NWUwY2U4ZjVjNDNkNDY3MWNiYmNkYWQ4OGYxZWIxNTkyYTYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2FzeW5jaW8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL2NsaWVudC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL2NvbXBhdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9hc3luY2lvL3Byb3RvY29sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L2FzeW5jaW8vc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
YnVmZmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2J1ZmZlci5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTdhNDI5OGY5NTRjMjJlNTM4OWExMjlhMWVlNjc1ZThlZmVk
ODdlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYnVmZmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAs
MCBAQAotZnJvbSAuX2J1ZmZlciBpbXBvcnQgQnVmZmVyLCBCdWZmZXJSZWFkRXJyb3IsIEJ1ZmZl
cldyaXRlRXJyb3IgICMgbm9xYQotCi1VSU5UX1ZBUl9NQVggPSAweDNGRkZGRkZGRkZGRkZGRkYK
LQotCi1kZWYgZW5jb2RlX3VpbnRfdmFyKHZhbHVlOiBpbnQpIC0+IGJ5dGVzOgotICAgICIiIgot
ICAgIEVuY29kZSBhIHZhcmlhYmxlLWxlbmd0aCB1bnNpZ25lZCBpbnRlZ2VyLgotICAgICIiIgot
ICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT04KQotICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHZhbHVl
KQotICAgIHJldHVybiBidWYuZGF0YQotCi0KLWRlZiBzaXplX3VpbnRfdmFyKHZhbHVlOiBpbnQp
IC0+IGludDoKLSAgICAiIiIKLSAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyByZXF1aXJl
ZCB0byBlbmNvZGUgdGhlIGdpdmVuIHZhbHVlCi0gICAgYXMgYSBRVUlDIHZhcmlhYmxlLWxlbmd0
aCB1bnNpZ25lZCBpbnRlZ2VyLgotICAgICIiIgotICAgIGlmIHZhbHVlIDw9IDB4M0Y6Ci0gICAg
ICAgIHJldHVybiAxCi0gICAgZWxpZiB2YWx1ZSA8PSAweDNGRkY6Ci0gICAgICAgIHJldHVybiAy
Ci0gICAgZWxpZiB2YWx1ZSA8PSAweDNGRkZGRkZGOgotICAgICAgICByZXR1cm4gNAotICAgIGVs
aWYgdmFsdWUgPD0gMHgzRkZGRkZGRkZGRkZGRkZGOgotICAgICAgICByZXR1cm4gOAotICAgIGVs
c2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludGVnZXIgaXMgdG9vIGJpZyBmb3IgYSB2
YXJpYWJsZS1sZW5ndGggaW50ZWdlciIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvaDAvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvX19pbml0
X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1
NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gwL19faW5pdF9fLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gwL2Nvbm5l
Y3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvY29ubmVjdGlvbi5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM4ZGRjZWM2YjM5MzBhYWZmM2MxY2QxNWIxZWU0
ZTdkNmIxOGQ4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvY29ubmVjdGlvbi5weQorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLWZyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBMaXN0Ci0KLWZyb20g
YWlvcXVpYy5oMy5ldmVudHMgaW1wb3J0IERhdGFSZWNlaXZlZCwgSDNFdmVudCwgSGVhZGVycywg
SGVhZGVyc1JlY2VpdmVkCi1mcm9tIGFpb3F1aWMucXVpYy5jb25uZWN0aW9uIGltcG9ydCBRdWlj
Q29ubmVjdGlvbgotZnJvbSBhaW9xdWljLnF1aWMuZXZlbnRzIGltcG9ydCBRdWljRXZlbnQsIFN0
cmVhbURhdGFSZWNlaXZlZAotCi1IMF9BTFBOID0gWyJocS0yNyIsICJocS0yNiIsICJocS0yNSJd
Ci0KLQotY2xhc3MgSDBDb25uZWN0aW9uOgotICAgICIiIgotICAgIEFuIEhUVFAvMC45IGNvbm5l
Y3Rpb24gb2JqZWN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1aWM6IFF1
aWNDb25uZWN0aW9uKToKLSAgICAgICAgc2VsZi5faGVhZGVyc19yZWNlaXZlZDogRGljdFtpbnQs
IGJvb2xdID0ge30KLSAgICAgICAgc2VsZi5faXNfY2xpZW50ID0gcXVpYy5jb25maWd1cmF0aW9u
LmlzX2NsaWVudAotICAgICAgICBzZWxmLl9xdWljID0gcXVpYwotCi0gICAgZGVmIGhhbmRsZV9l
dmVudChzZWxmLCBldmVudDogUXVpY0V2ZW50KSAtPiBMaXN0W0gzRXZlbnRdOgotICAgICAgICBo
dHRwX2V2ZW50czogTGlzdFtIM0V2ZW50XSA9IFtdCi0KLSAgICAgICAgaWYgaXNpbnN0YW5jZShl
dmVudCwgU3RyZWFtRGF0YVJlY2VpdmVkKSBhbmQgKGV2ZW50LnN0cmVhbV9pZCAlIDQpID09IDA6
Ci0gICAgICAgICAgICBkYXRhID0gZXZlbnQuZGF0YQotICAgICAgICAgICAgaWYgbm90IHNlbGYu
X2hlYWRlcnNfcmVjZWl2ZWQuZ2V0KGV2ZW50LnN0cmVhbV9pZCwgRmFsc2UpOgotICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX2lzX2NsaWVudDoKLSAgICAgICAgICAgICAgICAgICAgaHR0cF9ldmVu
dHMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9W10sIHN0cmVhbV9lbmRlZD1GYWxzZSwg
c3RyZWFtX2lkPWV2ZW50LnN0cmVhbV9pZAotICAgICAgICAgICAgICAgICAgICAgICAgKQotICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgbWV0aG9kLCBwYXRoID0gZGF0YS5yc3RyaXAoKS5zcGxpdChiIiAiLCAxKQotICAgICAg
ICAgICAgICAgICAgICBodHRwX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAg
ICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1b
KGIiOm1ldGhvZCIsIG1ldGhvZCksIChiIjpwYXRoIiwgcGF0aCldLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9ZXZlbnQuc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIGRhdGEgPSBiIiIK
LSAgICAgICAgICAgICAgICBzZWxmLl9oZWFkZXJzX3JlY2VpdmVkW2V2ZW50LnN0cmVhbV9pZF0g
PSBUcnVlCi0KLSAgICAgICAgICAgIGh0dHBfZXZlbnRzLmFwcGVuZCgKLSAgICAgICAgICAgICAg
ICBEYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgc3RyZWFtX2Vu
ZGVkPWV2ZW50LmVuZF9zdHJlYW0sIHN0cmVhbV9pZD1ldmVudC5zdHJlYW1faWQKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAgICAgICAgcmV0dXJuIGh0dHBfZXZlbnRzCi0K
LSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIHN0cmVhbV9pZDogaW50LCBkYXRhOiBieXRlcywgZW5k
X3N0cmVhbTogYm9vbCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9k
YXRhKHN0cmVhbV9pZCwgZGF0YSwgZW5kX3N0cmVhbSkKLQotICAgIGRlZiBzZW5kX2hlYWRlcnMo
Ci0gICAgICAgIHNlbGYsIHN0cmVhbV9pZDogaW50LCBoZWFkZXJzOiBIZWFkZXJzLCBlbmRfc3Ry
ZWFtOiBib29sID0gRmFsc2UKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIGlmIHNlbGYuX2lzX2Ns
aWVudDoKLSAgICAgICAgICAgIGhlYWRlcnNfZGljdCA9IGRpY3QoaGVhZGVycykKLSAgICAgICAg
ICAgIGRhdGEgPSBoZWFkZXJzX2RpY3RbYiI6bWV0aG9kIl0gKyBiIiAiICsgaGVhZGVyc19kaWN0
W2IiOnBhdGgiXSArIGIiXHJcbiIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRhdGEgPSBi
IiIKLSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgZGF0YSwg
ZW5kX3N0cmVhbSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMC93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMC93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYzNjFlYTQwNTUxYjYyODZiM2UxZWU1ZjI5
YTc3NzRhZTYwNzBiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
aDAvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvY29ubmVjdGlvbi5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9oMy9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0
b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy9jb25uZWN0aW9uLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2gzL2Nvbm5lY3Rpb24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGRkZjhjNTQyODNjZDc3YzdmOWQzZWRkZThkNzkwYzAyYTA1MzA4ZDcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9x
dWljL2gzL2Nvbm5lY3Rpb24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NzYgKzAsMCBAQAotaW1w
b3J0IGxvZ2dpbmcKLWZyb20gZW51bSBpbXBvcnQgRW51bSwgSW50RW51bQotZnJvbSB0eXBpbmcg
aW1wb3J0IERpY3QsIExpc3QsIE9wdGlvbmFsLCBTZXQKLQotaW1wb3J0IHB5bHNxcGFjawotCi1m
cm9tIGFpb3F1aWMuYnVmZmVyIGltcG9ydCBCdWZmZXIsIEJ1ZmZlclJlYWRFcnJvciwgZW5jb2Rl
X3VpbnRfdmFyCi1mcm9tIGFpb3F1aWMuaDMuZXZlbnRzIGltcG9ydCAoCi0gICAgRGF0YVJlY2Vp
dmVkLAotICAgIEgzRXZlbnQsCi0gICAgSGVhZGVycywKLSAgICBIZWFkZXJzUmVjZWl2ZWQsCi0g
ICAgUHVzaFByb21pc2VSZWNlaXZlZCwKLSkKLWZyb20gYWlvcXVpYy5oMy5leGNlcHRpb25zIGlt
cG9ydCBOb0F2YWlsYWJsZVB1c2hJREVycm9yCi1mcm9tIGFpb3F1aWMucXVpYy5jb25uZWN0aW9u
IGltcG9ydCBRdWljQ29ubmVjdGlvbiwgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsCi1mcm9tIGFp
b3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFF1aWNFdmVudCwgU3RyZWFtRGF0YVJlY2VpdmVkCi1m
cm9tIGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXJUcmFjZQotCi1sb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcigiaHR0cDMiKQotCi1IM19BTFBOID0gWyJoMy0yNyIsICJoMy0y
NiIsICJoMy0yNSJdCi0KLQotY2xhc3MgRXJyb3JDb2RlKEludEVudW0pOgotICAgIEhUVFBfTk9f
RVJST1IgPSAweDEwMAotICAgIEhUVFBfR0VORVJBTF9QUk9UT0NPTF9FUlJPUiA9IDB4MTAxCi0g
ICAgSFRUUF9JTlRFUk5BTF9FUlJPUiA9IDB4MTAyCi0gICAgSFRUUF9TVFJFQU1fQ1JFQVRJT05f
RVJST1IgPSAweDEwMwotICAgIEhUVFBfQ0xPU0VEX0NSSVRJQ0FMX1NUUkVBTSA9IDB4MTA0Ci0g
ICAgSFRUUF9GUkFNRV9VTkVYUEVDVEVEID0gMHgxMDUKLSAgICBIVFRQX0ZSQU1FX0VSUk9SID0g
MHgxMDYKLSAgICBIVFRQX0VYQ0VTU0lWRV9MT0FEID0gMHgxMDcKLSAgICBIVFRQX0lEX0VSUk9S
ID0gMHgxMDgKLSAgICBIVFRQX1NFVFRJTkdTX0VSUk9SID0gMHgxMDkKLSAgICBIVFRQX01JU1NJ
TkdfU0VUVElOR1MgPSAweDEwQQotICAgIEhUVFBfUkVRVUVTVF9SRUpFQ1RFRCA9IDB4MTBCCi0g
ICAgSFRUUF9SRVFVRVNUX0NBTkNFTExFRCA9IDB4MTBDCi0gICAgSFRUUF9SRVFVRVNUX0lOQ09N
UExFVEUgPSAweDEwRAotICAgIEhUVFBfRUFSTFlfUkVTUE9OU0UgPSAweDEwRQotICAgIEhUVFBf
Q09OTkVDVF9FUlJPUiA9IDB4MTBGCi0gICAgSFRUUF9WRVJTSU9OX0ZBTExCQUNLID0gMHgxMTAK
LSAgICBIVFRQX1FQQUNLX0RFQ09NUFJFU1NJT05fRkFJTEVEID0gMHgyMDAKLSAgICBIVFRQX1FQ
QUNLX0VOQ09ERVJfU1RSRUFNX0VSUk9SID0gMHgyMDEKLSAgICBIVFRQX1FQQUNLX0RFQ09ERVJf
U1RSRUFNX0VSUk9SID0gMHgyMDIKLQotCi1jbGFzcyBGcmFtZVR5cGUoSW50RW51bSk6Ci0gICAg
REFUQSA9IDB4MAotICAgIEhFQURFUlMgPSAweDEKLSAgICBQUklPUklUWSA9IDB4MgotICAgIENB
TkNFTF9QVVNIID0gMHgzCi0gICAgU0VUVElOR1MgPSAweDQKLSAgICBQVVNIX1BST01JU0UgPSAw
eDUKLSAgICBHT0FXQVkgPSAweDcKLSAgICBNQVhfUFVTSF9JRCA9IDB4RAotICAgIERVUExJQ0FU
RV9QVVNIID0gMHhFCi0KLQotY2xhc3MgSGVhZGVyc1N0YXRlKEVudW0pOgotICAgIElOSVRJQUwg
PSAwCi0gICAgQUZURVJfSEVBREVSUyA9IDEKLSAgICBBRlRFUl9UUkFJTEVSUyA9IDIKLQotCi1j
bGFzcyBTZXR0aW5nKEludEVudW0pOgotICAgIFFQQUNLX01BWF9UQUJMRV9DQVBBQ0lUWSA9IDEK
LSAgICBTRVRUSU5HU19NQVhfSEVBREVSX0xJU1RfU0laRSA9IDYKLSAgICBRUEFDS19CTE9DS0VE
X1NUUkVBTVMgPSA3Ci0gICAgU0VUVElOR1NfTlVNX1BMQUNFSE9MREVSUyA9IDkKLQotCi1jbGFz
cyBTdHJlYW1UeXBlKEludEVudW0pOgotICAgIENPTlRST0wgPSAwCi0gICAgUFVTSCA9IDEKLSAg
ICBRUEFDS19FTkNPREVSID0gMgotICAgIFFQQUNLX0RFQ09ERVIgPSAzCi0KLQotY2xhc3MgUHJv
dG9jb2xFcnJvcihFeGNlcHRpb24pOgotICAgICIiIgotICAgIEJhc2UgY2xhc3MgZm9yIHByb3Rv
Y29sIGVycm9ycy4KLQotICAgIFRoZXNlIGVycm9ycyBhcmUgbm90IGV4cG9zZWQgdG8gdGhlIEFQ
SSB1c2VyLCB0aGV5IGFyZSBoYW5kbGVkCi0gICAgaW4gOm1ldGg6YEgzQ29ubmVjdGlvbi5oYW5k
bGVfZXZlbnRgLgotICAgICIiIgotCi0gICAgZXJyb3JfY29kZSA9IEVycm9yQ29kZS5IVFRQX0dF
TkVSQUxfUFJPVE9DT0xfRVJST1IKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWFzb25fcGhy
YXNlOiBzdHIgPSAiIik6Ci0gICAgICAgIHNlbGYucmVhc29uX3BocmFzZSA9IHJlYXNvbl9waHJh
c2UKLQotCi1jbGFzcyBRcGFja0RlY29tcHJlc3Npb25GYWlsZWQoUHJvdG9jb2xFcnJvcik6Ci0g
ICAgZXJyb3JfY29kZSA9IEVycm9yQ29kZS5IVFRQX1FQQUNLX0RFQ09NUFJFU1NJT05fRkFJTEVE
Ci0KLQotY2xhc3MgUXBhY2tEZWNvZGVyU3RyZWFtRXJyb3IoUHJvdG9jb2xFcnJvcik6Ci0gICAg
ZXJyb3JfY29kZSA9IEVycm9yQ29kZS5IVFRQX1FQQUNLX0RFQ09ERVJfU1RSRUFNX0VSUk9SCi0K
LQotY2xhc3MgUXBhY2tFbmNvZGVyU3RyZWFtRXJyb3IoUHJvdG9jb2xFcnJvcik6Ci0gICAgZXJy
b3JfY29kZSA9IEVycm9yQ29kZS5IVFRQX1FQQUNLX0VOQ09ERVJfU1RSRUFNX0VSUk9SCi0KLQot
Y2xhc3MgU3RyZWFtQ3JlYXRpb25FcnJvcihQcm90b2NvbEVycm9yKToKLSAgICBlcnJvcl9jb2Rl
ID0gRXJyb3JDb2RlLkhUVFBfU1RSRUFNX0NSRUFUSU9OX0VSUk9SCi0KLQotY2xhc3MgRnJhbWVV
bmV4cGVjdGVkKFByb3RvY29sRXJyb3IpOgotICAgIGVycm9yX2NvZGUgPSBFcnJvckNvZGUuSFRU
UF9GUkFNRV9VTkVYUEVDVEVECi0KLQotZGVmIGVuY29kZV9mcmFtZShmcmFtZV90eXBlOiBpbnQs
IGZyYW1lX2RhdGE6IGJ5dGVzKSAtPiBieXRlczoKLSAgICBmcmFtZV9sZW5ndGggPSBsZW4oZnJh
bWVfZGF0YSkKLSAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9ZnJhbWVfbGVuZ3RoICsgMTYpCi0g
ICAgYnVmLnB1c2hfdWludF92YXIoZnJhbWVfdHlwZSkKLSAgICBidWYucHVzaF91aW50X3Zhcihm
cmFtZV9sZW5ndGgpCi0gICAgYnVmLnB1c2hfYnl0ZXMoZnJhbWVfZGF0YSkKLSAgICByZXR1cm4g
YnVmLmRhdGEKLQotCi1kZWYgZW5jb2RlX3NldHRpbmdzKHNldHRpbmdzOiBEaWN0W2ludCwgaW50
XSkgLT4gYnl0ZXM6Ci0gICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTEwMjQpCi0gICAgZm9yIHNl
dHRpbmcsIHZhbHVlIGluIHNldHRpbmdzLml0ZW1zKCk6Ci0gICAgICAgIGJ1Zi5wdXNoX3VpbnRf
dmFyKHNldHRpbmcpCi0gICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHZhbHVlKQotICAgIHJldHVy
biBidWYuZGF0YQotCi0KLWRlZiBwYXJzZV9tYXhfcHVzaF9pZChkYXRhOiBieXRlcykgLT4gaW50
OgotICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgbWF4X3B1c2hfaWQgPSBidWYucHVs
bF91aW50X3ZhcigpCi0gICAgYXNzZXJ0IGJ1Zi5lb2YoKQotICAgIHJldHVybiBtYXhfcHVzaF9p
ZAotCi0KLWRlZiBwYXJzZV9zZXR0aW5ncyhkYXRhOiBieXRlcykgLT4gRGljdFtpbnQsIGludF06
Ci0gICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICBzZXR0aW5ncyA9IFtdCi0gICAgd2hp
bGUgbm90IGJ1Zi5lb2YoKToKLSAgICAgICAgc2V0dGluZyA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkK
LSAgICAgICAgdmFsdWUgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIHNldHRpbmdzLmFw
cGVuZCgoc2V0dGluZywgdmFsdWUpKQotICAgIHJldHVybiBkaWN0KHNldHRpbmdzKQotCi0KLWRl
ZiBxbG9nX2VuY29kZV9kYXRhX2ZyYW1lKGJ5dGVfbGVuZ3RoOiBpbnQsIHN0cmVhbV9pZDogaW50
KSAtPiBEaWN0OgotICAgIHJldHVybiB7Ci0gICAgICAgICJieXRlX2xlbmd0aCI6IHN0cihieXRl
X2xlbmd0aCksCi0gICAgICAgICJmcmFtZSI6IHsiZnJhbWVfdHlwZSI6ICJkYXRhIn0sCi0gICAg
ICAgICJzdHJlYW1faWQiOiBzdHIoc3RyZWFtX2lkKSwKLSAgICB9Ci0KLQotZGVmIHFsb2dfZW5j
b2RlX2hlYWRlcnMoaGVhZGVyczogSGVhZGVycykgLT4gTGlzdFtEaWN0XToKLSAgICByZXR1cm4g
WwotICAgICAgICB7Im5hbWUiOiBoWzBdLmRlY29kZSgidXRmOCIpLCAidmFsdWUiOiBoWzFdLmRl
Y29kZSgidXRmOCIpfSBmb3IgaCBpbiBoZWFkZXJzCi0gICAgXQotCi0KLWRlZiBxbG9nX2VuY29k
ZV9oZWFkZXJzX2ZyYW1lKAotICAgIGJ5dGVfbGVuZ3RoOiBpbnQsIGhlYWRlcnM6IEhlYWRlcnMs
IHN0cmVhbV9pZDogaW50Ci0pIC0+IERpY3Q6Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgImJ5dGVf
bGVuZ3RoIjogc3RyKGJ5dGVfbGVuZ3RoKSwKLSAgICAgICAgImZyYW1lIjogeyJmcmFtZV90eXBl
IjogImhlYWRlcnMiLCAiaGVhZGVycyI6IHFsb2dfZW5jb2RlX2hlYWRlcnMoaGVhZGVycyl9LAot
ICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVhbV9pZCksCi0gICAgfQotCi0KLWRlZiBxbG9n
X2VuY29kZV9wdXNoX3Byb21pc2VfZnJhbWUoCi0gICAgYnl0ZV9sZW5ndGg6IGludCwgaGVhZGVy
czogSGVhZGVycywgcHVzaF9pZDogaW50LCBzdHJlYW1faWQ6IGludAotKSAtPiBEaWN0OgotICAg
IHJldHVybiB7Ci0gICAgICAgICJieXRlX2xlbmd0aCI6IHN0cihieXRlX2xlbmd0aCksCi0gICAg
ICAgICJmcmFtZSI6IHsKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogInB1c2hfcHJvbWlzZSIs
Ci0gICAgICAgICAgICAiaGVhZGVycyI6IHFsb2dfZW5jb2RlX2hlYWRlcnMoaGVhZGVycyksCi0g
ICAgICAgICAgICAicHVzaF9pZCI6IHN0cihwdXNoX2lkKSwKLSAgICAgICAgfSwKLSAgICAgICAg
InN0cmVhbV9pZCI6IHN0cihzdHJlYW1faWQpLAotICAgIH0KLQotCi1jbGFzcyBIM1N0cmVhbToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtX2lkOiBpbnQpIC0+IE5vbmU6Ci0gICAgICAg
IHNlbGYuYmxvY2tlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuYmxvY2tlZF9mcmFtZV9zaXplOiBP
cHRpb25hbFtpbnRdID0gTm9uZQotICAgICAgICBzZWxmLmJ1ZmZlciA9IGIiIgotICAgICAgICBz
ZWxmLmVuZGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5mcmFtZV9zaXplOiBPcHRpb25hbFtpbnRd
ID0gTm9uZQotICAgICAgICBzZWxmLmZyYW1lX3R5cGU6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0g
ICAgICAgIHNlbGYuaGVhZGVyc19yZWN2X3N0YXRlOiBIZWFkZXJzU3RhdGUgPSBIZWFkZXJzU3Rh
dGUuSU5JVElBTAotICAgICAgICBzZWxmLmhlYWRlcnNfc2VuZF9zdGF0ZTogSGVhZGVyc1N0YXRl
ID0gSGVhZGVyc1N0YXRlLklOSVRJQUwKLSAgICAgICAgc2VsZi5wdXNoX2lkOiBPcHRpb25hbFtp
bnRdID0gTm9uZQotICAgICAgICBzZWxmLnN0cmVhbV9pZCA9IHN0cmVhbV9pZAotICAgICAgICBz
ZWxmLnN0cmVhbV90eXBlOiBPcHRpb25hbFtpbnRdID0gTm9uZQotCi0KLWNsYXNzIEgzQ29ubmVj
dGlvbjoKLSAgICAiIiIKLSAgICBBIGxvdy1sZXZlbCBIVFRQLzMgY29ubmVjdGlvbiBvYmplY3Qu
Ci0KLSAgICA6cGFyYW0gcXVpYzogQSA6Y2xhc3M6YH5haW9xdWljLmNvbm5lY3Rpb24uUXVpY0Nv
bm5lY3Rpb25gIGluc3RhbmNlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1
aWM6IFF1aWNDb25uZWN0aW9uKToKLSAgICAgICAgc2VsZi5fbWF4X3RhYmxlX2NhcGFjaXR5ID0g
NDA5NgotICAgICAgICBzZWxmLl9ibG9ja2VkX3N0cmVhbXMgPSAxNgotCi0gICAgICAgIHNlbGYu
X2lzX2NsaWVudCA9IHF1aWMuY29uZmlndXJhdGlvbi5pc19jbGllbnQKLSAgICAgICAgc2VsZi5f
aXNfZG9uZSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3F1aWMgPSBxdWljCi0gICAgICAgIHNlbGYu
X3F1aWNfbG9nZ2VyOiBPcHRpb25hbFtRdWljTG9nZ2VyVHJhY2VdID0gcXVpYy5fcXVpY19sb2dn
ZXIKLSAgICAgICAgc2VsZi5fZGVjb2RlciA9IHB5bHNxcGFjay5EZWNvZGVyKAotICAgICAgICAg
ICAgc2VsZi5fbWF4X3RhYmxlX2NhcGFjaXR5LCBzZWxmLl9ibG9ja2VkX3N0cmVhbXMKLSAgICAg
ICAgKQotICAgICAgICBzZWxmLl9kZWNvZGVyX2J5dGVzX3JlY2VpdmVkID0gMAotICAgICAgICBz
ZWxmLl9kZWNvZGVyX2J5dGVzX3NlbnQgPSAwCi0gICAgICAgIHNlbGYuX2VuY29kZXIgPSBweWxz
cXBhY2suRW5jb2RlcigpCi0gICAgICAgIHNlbGYuX2VuY29kZXJfYnl0ZXNfcmVjZWl2ZWQgPSAw
Ci0gICAgICAgIHNlbGYuX2VuY29kZXJfYnl0ZXNfc2VudCA9IDAKLSAgICAgICAgc2VsZi5fc3Ry
ZWFtOiBEaWN0W2ludCwgSDNTdHJlYW1dID0ge30KLQotICAgICAgICBzZWxmLl9tYXhfcHVzaF9p
ZDogT3B0aW9uYWxbaW50XSA9IDggaWYgc2VsZi5faXNfY2xpZW50IGVsc2UgTm9uZQotICAgICAg
ICBzZWxmLl9uZXh0X3B1c2hfaWQ6IGludCA9IDAKLQotICAgICAgICBzZWxmLl9sb2NhbF9jb250
cm9sX3N0cmVhbV9pZDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fbG9jYWxf
ZGVjb2Rlcl9zdHJlYW1faWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYuX2xv
Y2FsX2VuY29kZXJfc3RyZWFtX2lkOiBPcHRpb25hbFtpbnRdID0gTm9uZQotCi0gICAgICAgIHNl
bGYuX3BlZXJfY29udHJvbF9zdHJlYW1faWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAg
IHNlbGYuX3BlZXJfZGVjb2Rlcl9zdHJlYW1faWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAg
ICAgIHNlbGYuX3BlZXJfZW5jb2Rlcl9zdHJlYW1faWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0K
LSAgICAgICAgc2VsZi5faW5pdF9jb25uZWN0aW9uKCkKLQotICAgIGRlZiBoYW5kbGVfZXZlbnQo
c2VsZiwgZXZlbnQ6IFF1aWNFdmVudCkgLT4gTGlzdFtIM0V2ZW50XToKLSAgICAgICAgIiIiCi0g
ICAgICAgIEhhbmRsZSBhIFFVSUMgZXZlbnQgYW5kIHJldHVybiBhIGxpc3Qgb2YgSFRUUCBldmVu
dHMuCi0KLSAgICAgICAgOnBhcmFtIGV2ZW50OiBUaGUgUVVJQyBldmVudCB0byBoYW5kbGUuCi0g
ICAgICAgICIiIgotICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBTdHJlYW1EYXRhUmVjZWl2
ZWQpIGFuZCBub3Qgc2VsZi5faXNfZG9uZToKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9IGV2ZW50
LnN0cmVhbV9pZAotICAgICAgICAgICAgc3RyZWFtID0gc2VsZi5fZ2V0X29yX2NyZWF0ZV9zdHJl
YW0oc3RyZWFtX2lkKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlmIHN0cmVh
bV9pZCAlIDQgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JlY2VpdmVf
cmVxdWVzdF9vcl9wdXNoX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0sIGV2
ZW50LmRhdGEsIGV2ZW50LmVuZF9zdHJlYW0KLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgIGVsaWYgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsKHN0cmVhbV9pZCk6Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZWNlaXZlX3N0cmVhbV9kYXRhX3VuaSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSwgZXZlbnQuZGF0YSwgZXZlbnQuZW5kX3N0cmVh
bQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBleGNlcHQgUHJvdG9jb2xFcnJv
ciBhcyBleGM6Ci0gICAgICAgICAgICAgICAgc2VsZi5faXNfZG9uZSA9IFRydWUKLSAgICAgICAg
ICAgICAgICBzZWxmLl9xdWljLmNsb3NlKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2Rl
PWV4Yy5lcnJvcl9jb2RlLCByZWFzb25fcGhyYXNlPWV4Yy5yZWFzb25fcGhyYXNlCi0gICAgICAg
ICAgICAgICAgKQotICAgICAgICByZXR1cm4gW10KLQotICAgIGRlZiBzZW5kX3B1c2hfcHJvbWlz
ZShzZWxmLCBzdHJlYW1faWQ6IGludCwgaGVhZGVyczogSGVhZGVycykgLT4gaW50OgotICAgICAg
ICAiIiIKLSAgICAgICAgU2VuZCBhIHB1c2ggcHJvbWlzZSByZWxhdGVkIHRvIHRoZSBzcGVjaWZp
ZWQgc3RyZWFtLgotCi0gICAgICAgIFJldHVybnMgdGhlIHN0cmVhbSBJRCBvbiB3aGljaCBoZWFk
ZXJzIGFuZCBkYXRhIGNhbiBiZSBzZW50LgotCi0gICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IFRo
ZSBzdHJlYW0gSUQgb24gd2hpY2ggdG8gc2VuZCB0aGUgZGF0YS4KLSAgICAgICAgOnBhcmFtIGhl
YWRlcnM6IFRoZSBIVFRQIHJlcXVlc3QgaGVhZGVycyBmb3IgdGhpcyBwdXNoLgotICAgICAgICAi
IiIKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLl9pc19jbGllbnQsICJPbmx5IHNlcnZlcnMgbWF5
IHNlbmQgYSBwdXNoIHByb21pc2UuIgotICAgICAgICBpZiBzZWxmLl9tYXhfcHVzaF9pZCBpcyBO
b25lIG9yIHNlbGYuX25leHRfcHVzaF9pZCA+PSBzZWxmLl9tYXhfcHVzaF9pZDoKLSAgICAgICAg
ICAgIHJhaXNlIE5vQXZhaWxhYmxlUHVzaElERXJyb3IKLQotICAgICAgICAjIHNlbmQgcHVzaCBw
cm9taXNlCi0gICAgICAgIHB1c2hfaWQgPSBzZWxmLl9uZXh0X3B1c2hfaWQKLSAgICAgICAgc2Vs
Zi5fbmV4dF9wdXNoX2lkICs9IDEKLSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRh
KAotICAgICAgICAgICAgc3RyZWFtX2lkLAotICAgICAgICAgICAgZW5jb2RlX2ZyYW1lKAotICAg
ICAgICAgICAgICAgIEZyYW1lVHlwZS5QVVNIX1BST01JU0UsCi0gICAgICAgICAgICAgICAgZW5j
b2RlX3VpbnRfdmFyKHB1c2hfaWQpICsgc2VsZi5fZW5jb2RlX2hlYWRlcnMoc3RyZWFtX2lkLCBo
ZWFkZXJzKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAgICAjIMKgY3JlYXRl
IHB1c2ggc3RyZWFtCi0gICAgICAgIHB1c2hfc3RyZWFtX2lkID0gc2VsZi5fY3JlYXRlX3VuaV9z
dHJlYW0oU3RyZWFtVHlwZS5QVVNIKQotICAgICAgICBzZWxmLl9xdWljLnNlbmRfc3RyZWFtX2Rh
dGEocHVzaF9zdHJlYW1faWQsIGVuY29kZV91aW50X3ZhcihwdXNoX2lkKSkKLQotICAgICAgICBy
ZXR1cm4gcHVzaF9zdHJlYW1faWQKLQotICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwgc3RyZWFtX2lk
OiBpbnQsIGRhdGE6IGJ5dGVzLCBlbmRfc3RyZWFtOiBib29sKSAtPiBOb25lOgotICAgICAgICAi
IiIKLSAgICAgICAgU2VuZCBkYXRhIG9uIHRoZSBnaXZlbiBzdHJlYW0uCi0KLSAgICAgICAgVG8g
cmV0cmlldmUgZGF0YWdyYW0gd2hpY2ggbmVlZCB0byBiZSBzZW50IG92ZXIgdGhlIG5ldHdvcmsg
Y2FsbCB0aGUgUVVJQwotICAgICAgICBjb25uZWN0aW9uJ3MgOm1ldGg6YH5haW9xdWljLmNvbm5l
Y3Rpb24uUXVpY0Nvbm5lY3Rpb24uZGF0YWdyYW1zX3RvX3NlbmRgCi0gICAgICAgIG1ldGhvZC4K
LQotICAgICAgICA6cGFyYW0gc3RyZWFtX2lkOiBUaGUgc3RyZWFtIElEIG9uIHdoaWNoIHRvIHNl
bmQgdGhlIGRhdGEuCi0gICAgICAgIDpwYXJhbSBkYXRhOiBUaGUgZGF0YSB0byBzZW5kLgotICAg
ICAgICA6cGFyYW0gZW5kX3N0cmVhbTogV2hldGhlciB0byBlbmQgdGhlIHN0cmVhbS4KLSAgICAg
ICAgIiIiCi0gICAgICAgICMgY2hlY2sgREFUQSBmcmFtZSBpcyBhbGxvd2VkCi0gICAgICAgIHN0
cmVhbSA9IHNlbGYuX2dldF9vcl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9pZCkKLSAgICAgICAgaWYg
c3RyZWFtLmhlYWRlcnNfc2VuZF9zdGF0ZSAhPSBIZWFkZXJzU3RhdGUuQUZURVJfSEVBREVSUzoK
LSAgICAgICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3RlZCgiREFUQSBmcmFtZSBpcyBub3QgYWxs
b3dlZCBpbiB0aGlzIHN0YXRlIikKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBz
ZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9n
Z2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICBjYXRlZ29yeT0iaHR0cCIsCi0gICAgICAg
ICAgICAgICAgZXZlbnQ9ImZyYW1lX2NyZWF0ZWQiLAotICAgICAgICAgICAgICAgIGRhdGE9cWxv
Z19lbmNvZGVfZGF0YV9mcmFtZShieXRlX2xlbmd0aD1sZW4oZGF0YSksIHN0cmVhbV9pZD1zdHJl
YW1faWQpLAotICAgICAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1f
ZGF0YSgKLSAgICAgICAgICAgIHN0cmVhbV9pZCwgZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5EQVRB
LCBkYXRhKSwgZW5kX3N0cmVhbQotICAgICAgICApCi0KLSAgICBkZWYgc2VuZF9oZWFkZXJzKAot
ICAgICAgICBzZWxmLCBzdHJlYW1faWQ6IGludCwgaGVhZGVyczogSGVhZGVycywgZW5kX3N0cmVh
bTogYm9vbCA9IEZhbHNlCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgU2Vu
ZCBoZWFkZXJzIG9uIHRoZSBnaXZlbiBzdHJlYW0uCi0KLSAgICAgICAgVG8gcmV0cmlldmUgZGF0
YWdyYW0gd2hpY2ggbmVlZCB0byBiZSBzZW50IG92ZXIgdGhlIG5ldHdvcmsgY2FsbCB0aGUgUVVJ
QwotICAgICAgICBjb25uZWN0aW9uJ3MgOm1ldGg6YH5haW9xdWljLmNvbm5lY3Rpb24uUXVpY0Nv
bm5lY3Rpb24uZGF0YWdyYW1zX3RvX3NlbmRgCi0gICAgICAgIG1ldGhvZC4KLQotICAgICAgICA6
cGFyYW0gc3RyZWFtX2lkOiBUaGUgc3RyZWFtIElEIG9uIHdoaWNoIHRvIHNlbmQgdGhlIGhlYWRl
cnMuCi0gICAgICAgIDpwYXJhbSBoZWFkZXJzOiBUaGUgSFRUUCBoZWFkZXJzIHRvIHNlbmQuCi0g
ICAgICAgIDpwYXJhbSBlbmRfc3RyZWFtOiBXaGV0aGVyIHRvIGVuZCB0aGUgc3RyZWFtLgotICAg
ICAgICAiIiIKLSAgICAgICAgIyBjaGVjayBIRUFERVJTIGZyYW1lIGlzIGFsbG93ZWQKLSAgICAg
ICAgc3RyZWFtID0gc2VsZi5fZ2V0X29yX2NyZWF0ZV9zdHJlYW0oc3RyZWFtX2lkKQotICAgICAg
ICBpZiBzdHJlYW0uaGVhZGVyc19zZW5kX3N0YXRlID09IEhlYWRlcnNTdGF0ZS5BRlRFUl9UUkFJ
TEVSUzoKLSAgICAgICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3RlZCgiSEVBREVSUyBmcmFtZSBp
cyBub3QgYWxsb3dlZCBpbiB0aGlzIHN0YXRlIikKLQotICAgICAgICBmcmFtZV9kYXRhID0gc2Vs
Zi5fZW5jb2RlX2hlYWRlcnMoc3RyZWFtX2lkLCBoZWFkZXJzKQotCi0gICAgICAgICMgbG9nIGZy
YW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgIGNhdGVnb3J5
PSJodHRwIiwKLSAgICAgICAgICAgICAgICBldmVudD0iZnJhbWVfY3JlYXRlZCIsCi0gICAgICAg
ICAgICAgICAgZGF0YT1xbG9nX2VuY29kZV9oZWFkZXJzX2ZyYW1lKAotICAgICAgICAgICAgICAg
ICAgICBieXRlX2xlbmd0aD1sZW4oZnJhbWVfZGF0YSksIGhlYWRlcnM9aGVhZGVycywgc3RyZWFt
X2lkPXN0cmVhbV9pZAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICApCi0KLSAgICAg
ICAgIyB1cGRhdGUgc3RhdGUgYW5kIHNlbmQgaGVhZGVycwotICAgICAgICBpZiBzdHJlYW0uaGVh
ZGVyc19zZW5kX3N0YXRlID09IEhlYWRlcnNTdGF0ZS5JTklUSUFMOgotICAgICAgICAgICAgc3Ry
ZWFtLmhlYWRlcnNfc2VuZF9zdGF0ZSA9IEhlYWRlcnNTdGF0ZS5BRlRFUl9IRUFERVJTCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzdHJlYW0uaGVhZGVyc19zZW5kX3N0YXRlID0gSGVhZGVy
c1N0YXRlLkFGVEVSX1RSQUlMRVJTCi0gICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0
YSgKLSAgICAgICAgICAgIHN0cmVhbV9pZCwgZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5IRUFERVJT
LCBmcmFtZV9kYXRhKSwgZW5kX3N0cmVhbQotICAgICAgICApCi0KLSAgICBkZWYgX2NyZWF0ZV91
bmlfc3RyZWFtKHNlbGYsIHN0cmVhbV90eXBlOiBpbnQpIC0+IGludDoKLSAgICAgICAgIiIiCi0g
ICAgICAgIENyZWF0ZSBhbiB1bmlkaXJlY3Rpb25hbCBzdHJlYW0gb2YgdGhlIGdpdmVuIHR5cGUu
Ci0gICAgICAgICIiIgotICAgICAgICBzdHJlYW1faWQgPSBzZWxmLl9xdWljLmdldF9uZXh0X2F2
YWlsYWJsZV9zdHJlYW1faWQoaXNfdW5pZGlyZWN0aW9uYWw9VHJ1ZSkKLSAgICAgICAgc2VsZi5f
cXVpYy5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgZW5jb2RlX3VpbnRfdmFyKHN0cmVhbV90
eXBlKSkKLSAgICAgICAgcmV0dXJuIHN0cmVhbV9pZAotCi0gICAgZGVmIF9kZWNvZGVfaGVhZGVy
cyhzZWxmLCBzdHJlYW1faWQ6IGludCwgZnJhbWVfZGF0YTogT3B0aW9uYWxbYnl0ZXNdKSAtPiBI
ZWFkZXJzOgotICAgICAgICAiIiIKLSAgICAgICAgRGVjb2RlIGEgSEVBREVSUyBibG9jayBhbmQg
c2VuZCBkZWNvZGVyIHVwZGF0ZXMgb24gdGhlIGRlY29kZXIgc3RyZWFtLgotCi0gICAgICAgIFRo
aXMgaXMgY2FsbGVkIHdpdGggZnJhbWVfZGF0YT1Ob25lIHdoZW4gYSBzdHJlYW0gYmVjb21lcyB1
bmJsb2NrZWQuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBmcmFt
ZV9kYXRhIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgZGVjb2RlciwgaGVhZGVycyA9IHNlbGYu
X2RlY29kZXIucmVzdW1lX2hlYWRlcihzdHJlYW1faWQpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIGRlY29kZXIsIGhlYWRlcnMgPSBzZWxmLl9kZWNvZGVyLmZlZWRfaGVhZGVy
KHN0cmVhbV9pZCwgZnJhbWVfZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX2RlY29kZXJfYnl0ZXNf
c2VudCArPSBsZW4oZGVjb2RlcikKLSAgICAgICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1f
ZGF0YShzZWxmLl9sb2NhbF9kZWNvZGVyX3N0cmVhbV9pZCwgZGVjb2RlcikKLSAgICAgICAgZXhj
ZXB0IHB5bHNxcGFjay5EZWNvbXByZXNzaW9uRmFpbGVkIGFzIGV4YzoKLSAgICAgICAgICAgIHJh
aXNlIFFwYWNrRGVjb21wcmVzc2lvbkZhaWxlZCgpIGZyb20gZXhjCi0KLSAgICAgICAgcmV0dXJu
IGhlYWRlcnMKLQotICAgIGRlZiBfZW5jb2RlX2hlYWRlcnMoc2VsZiwgc3RyZWFtX2lkOiBpbnQs
IGhlYWRlcnM6IEhlYWRlcnMpIC0+IGJ5dGVzOgotICAgICAgICAiIiIKLSAgICAgICAgRW5jb2Rl
IGEgSEVBREVSUyBibG9jayBhbmQgc2VuZCBlbmNvZGVyIHVwZGF0ZXMgb24gdGhlIGVuY29kZXIg
c3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgZW5jb2RlciwgZnJhbWVfZGF0YSA9IHNlbGYu
X2VuY29kZXIuZW5jb2RlKHN0cmVhbV9pZCwgaGVhZGVycykKLSAgICAgICAgc2VsZi5fZW5jb2Rl
cl9ieXRlc19zZW50ICs9IGxlbihlbmNvZGVyKQotICAgICAgICBzZWxmLl9xdWljLnNlbmRfc3Ry
ZWFtX2RhdGEoc2VsZi5fbG9jYWxfZW5jb2Rlcl9zdHJlYW1faWQsIGVuY29kZXIpCi0gICAgICAg
IHJldHVybiBmcmFtZV9kYXRhCi0KLSAgICBkZWYgX2dldF9vcl9jcmVhdGVfc3RyZWFtKHNlbGYs
IHN0cmVhbV9pZDogaW50KSAtPiBIM1N0cmVhbToKLSAgICAgICAgaWYgc3RyZWFtX2lkIG5vdCBp
biBzZWxmLl9zdHJlYW06Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW1bc3RyZWFtX2lkXSA9IEgz
U3RyZWFtKHN0cmVhbV9pZCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3N0cmVhbVtzdHJlYW1faWRd
Ci0KLSAgICBkZWYgX2hhbmRsZV9jb250cm9sX2ZyYW1lKHNlbGYsIGZyYW1lX3R5cGU6IGludCwg
ZnJhbWVfZGF0YTogYnl0ZXMpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUg
YSBmcmFtZSByZWNlaXZlZCBvbiB0aGUgcGVlcidzIGNvbnRyb2wgc3RyZWFtLgotICAgICAgICAi
IiIKLSAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSBGcmFtZVR5cGUuU0VUVElOR1M6Ci0gICAgICAg
ICAgICBzZXR0aW5ncyA9IHBhcnNlX3NldHRpbmdzKGZyYW1lX2RhdGEpCi0gICAgICAgICAgICBl
bmNvZGVyID0gc2VsZi5fZW5jb2Rlci5hcHBseV9zZXR0aW5ncygKLSAgICAgICAgICAgICAgICBt
YXhfdGFibGVfY2FwYWNpdHk9c2V0dGluZ3MuZ2V0KFNldHRpbmcuUVBBQ0tfTUFYX1RBQkxFX0NB
UEFDSVRZLCAwKSwKLSAgICAgICAgICAgICAgICBibG9ja2VkX3N0cmVhbXM9c2V0dGluZ3MuZ2V0
KFNldHRpbmcuUVBBQ0tfQkxPQ0tFRF9TVFJFQU1TLCAwKSwKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0YShzZWxmLl9sb2NhbF9lbmNvZGVyX3N0
cmVhbV9pZCwgZW5jb2RlcikKLSAgICAgICAgZWxpZiBmcmFtZV90eXBlID09IEZyYW1lVHlwZS5N
QVhfUFVTSF9JRDoKLSAgICAgICAgICAgIGlmIHNlbGYuX2lzX2NsaWVudDoKLSAgICAgICAgICAg
ICAgICByYWlzZSBGcmFtZVVuZXhwZWN0ZWQoIlNlcnZlcnMgbXVzdCBub3Qgc2VuZCBNQVhfUFVT
SF9JRCIpCi0gICAgICAgICAgICBzZWxmLl9tYXhfcHVzaF9pZCA9IHBhcnNlX21heF9wdXNoX2lk
KGZyYW1lX2RhdGEpCi0gICAgICAgIGVsaWYgZnJhbWVfdHlwZSBpbiAoCi0gICAgICAgICAgICBG
cmFtZVR5cGUuREFUQSwKLSAgICAgICAgICAgIEZyYW1lVHlwZS5IRUFERVJTLAotICAgICAgICAg
ICAgRnJhbWVUeXBlLlBVU0hfUFJPTUlTRSwKLSAgICAgICAgICAgIEZyYW1lVHlwZS5EVVBMSUNB
VEVfUFVTSCwKLSAgICAgICAgKToKLSAgICAgICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3RlZCgi
SW52YWxpZCBmcmFtZSB0eXBlIG9uIGNvbnRyb2wgc3RyZWFtIikKLQotICAgIGRlZiBfaGFuZGxl
X3JlcXVlc3Rfb3JfcHVzaF9mcmFtZSgKLSAgICAgICAgc2VsZiwKLSAgICAgICAgZnJhbWVfdHlw
ZTogaW50LAotICAgICAgICBmcmFtZV9kYXRhOiBPcHRpb25hbFtieXRlc10sCi0gICAgICAgIHN0
cmVhbTogSDNTdHJlYW0sCi0gICAgICAgIHN0cmVhbV9lbmRlZDogYm9vbCwKLSAgICApIC0+IExp
c3RbSDNFdmVudF06Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBmcmFtZSByZWNlaXZl
ZCBvbiBhIHJlcXVlc3Qgb3IgcHVzaCBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICBodHRw
X2V2ZW50czogTGlzdFtIM0V2ZW50XSA9IFtdCi0KLSAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSBG
cmFtZVR5cGUuREFUQToKLSAgICAgICAgICAgICMgY2hlY2sgREFUQSBmcmFtZSBpcyBhbGxvd2Vk
Ci0gICAgICAgICAgICBpZiBzdHJlYW0uaGVhZGVyc19yZWN2X3N0YXRlICE9IEhlYWRlcnNTdGF0
ZS5BRlRFUl9IRUFERVJTOgotICAgICAgICAgICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3RlZCgi
REFUQSBmcmFtZSBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHN0YXRlIikKLQotICAgICAgICAgICAg
aWYgc3RyZWFtX2VuZGVkIG9yIGZyYW1lX2RhdGE6Ci0gICAgICAgICAgICAgICAgaHR0cF9ldmVu
dHMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhPWZyYW1lX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBw
dXNoX2lkPXN0cmVhbS5wdXNoX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2Vu
ZGVkPXN0cmVhbV9lbmRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJl
YW0uc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQot
ICAgICAgICBlbGlmIGZyYW1lX3R5cGUgPT0gRnJhbWVUeXBlLkhFQURFUlM6Ci0gICAgICAgICAg
ICAjIGNoZWNrIEhFQURFUlMgZnJhbWUgaXMgYWxsb3dlZAotICAgICAgICAgICAgaWYgc3RyZWFt
LmhlYWRlcnNfcmVjdl9zdGF0ZSA9PSBIZWFkZXJzU3RhdGUuQUZURVJfVFJBSUxFUlM6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgRnJhbWVVbmV4cGVjdGVkKCJIRUFERVJTIGZyYW1lIGlzIG5vdCBh
bGxvd2VkIGluIHRoaXMgc3RhdGUiKQotCi0gICAgICAgICAgICAjIHRyeSB0byBkZWNvZGUgSEVB
REVSUywgbWF5IHJhaXNlIHB5bHNxcGFjay5TdHJlYW1CbG9ja2VkCi0gICAgICAgICAgICBoZWFk
ZXJzID0gc2VsZi5fZGVjb2RlX2hlYWRlcnMoc3RyZWFtLnN0cmVhbV9pZCwgZnJhbWVfZGF0YSkK
LQotICAgICAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9n
Z2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19l
dmVudCgKLSAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9Imh0dHAiLAotICAgICAgICAgICAg
ICAgICAgICBldmVudD0iZnJhbWVfcGFyc2VkIiwKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1x
bG9nX2VuY29kZV9oZWFkZXJzX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZV9s
ZW5ndGg9c3RyZWFtLmJsb2NrZWRfZnJhbWVfc2l6ZQotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgZnJhbWVfZGF0YSBpcyBOb25lCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGxlbihm
cmFtZV9kYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVhZGVycywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW0uc3RyZWFtX2lkLAotICAgICAg
ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyB1cGRh
dGUgc3RhdGUgYW5kIGVtaXQgaGVhZGVycwotICAgICAgICAgICAgaWYgc3RyZWFtLmhlYWRlcnNf
cmVjdl9zdGF0ZSA9PSBIZWFkZXJzU3RhdGUuSU5JVElBTDoKLSAgICAgICAgICAgICAgICBzdHJl
YW0uaGVhZGVyc19yZWN2X3N0YXRlID0gSGVhZGVyc1N0YXRlLkFGVEVSX0hFQURFUlMKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3RyZWFtLmhlYWRlcnNfcmVjdl9zdGF0ZSA9
IEhlYWRlcnNTdGF0ZS5BRlRFUl9UUkFJTEVSUwotICAgICAgICAgICAgaHR0cF9ldmVudHMuYXBw
ZW5kKAotICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAg
ICAgaGVhZGVycz1oZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPXN0cmVhbS5w
dXNoX2lkLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtLnN0cmVhbV9pZCwK
LSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPXN0cmVhbV9lbmRlZCwKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgICAgIGVsaWYgc3RyZWFtLmZyYW1lX3R5cGUg
PT0gRnJhbWVUeXBlLlBVU0hfUFJPTUlTRSBhbmQgc3RyZWFtLnB1c2hfaWQgaXMgTm9uZToKLSAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLl9pc19jbGllbnQ6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
RnJhbWVVbmV4cGVjdGVkKCJDbGllbnRzIG11c3Qgbm90IHNlbmQgUFVTSF9QUk9NSVNFIikKLSAg
ICAgICAgICAgIGZyYW1lX2J1ZiA9IEJ1ZmZlcihkYXRhPWZyYW1lX2RhdGEpCi0gICAgICAgICAg
ICBwdXNoX2lkID0gZnJhbWVfYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICAgICAgaGVhZGVy
cyA9IHNlbGYuX2RlY29kZV9oZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbS5zdHJlYW1f
aWQsIGZyYW1lX2RhdGFbZnJhbWVfYnVmLnRlbGwoKSA6XQotICAgICAgICAgICAgKQotCi0gICAg
ICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAot
ICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT0iaHR0cCIsCi0gICAgICAgICAgICAgICAgICAg
IGV2ZW50PSJmcmFtZV9wYXJzZWQiLAotICAgICAgICAgICAgICAgICAgICBkYXRhPXFsb2dfZW5j
b2RlX3B1c2hfcHJvbWlzZV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVfbGVu
Z3RoPWxlbihmcmFtZV9kYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9aGVh
ZGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hfaWQ9cHVzaF9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW0uc3RyZWFtX2lkLAotICAgICAgICAgICAg
ICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBlbWl0IGV2ZW50
Ci0gICAgICAgICAgICBodHRwX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgUHVzaFBy
b21pc2VSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzLCBwdXNo
X2lkPXB1c2hfaWQsIHN0cmVhbV9pZD1zdHJlYW0uc3RyZWFtX2lkCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgKQotICAgICAgICBlbGlmIGZyYW1lX3R5cGUgaW4gKAotICAgICAgICAg
ICAgRnJhbWVUeXBlLlBSSU9SSVRZLAotICAgICAgICAgICAgRnJhbWVUeXBlLkNBTkNFTF9QVVNI
LAotICAgICAgICAgICAgRnJhbWVUeXBlLlNFVFRJTkdTLAotICAgICAgICAgICAgRnJhbWVUeXBl
LlBVU0hfUFJPTUlTRSwKLSAgICAgICAgICAgIEZyYW1lVHlwZS5HT0FXQVksCi0gICAgICAgICAg
ICBGcmFtZVR5cGUuTUFYX1BVU0hfSUQsCi0gICAgICAgICAgICBGcmFtZVR5cGUuRFVQTElDQVRF
X1BVU0gsCi0gICAgICAgICk6Ci0gICAgICAgICAgICByYWlzZSBGcmFtZVVuZXhwZWN0ZWQoCi0g
ICAgICAgICAgICAgICAgIkludmFsaWQgZnJhbWUgdHlwZSBvbiByZXF1ZXN0IHN0cmVhbSIKLSAg
ICAgICAgICAgICAgICBpZiBzdHJlYW0ucHVzaF9pZCBpcyBOb25lCi0gICAgICAgICAgICAgICAg
ZWxzZSAiSW52YWxpZCBmcmFtZSB0eXBlIG9uIHB1c2ggc3RyZWFtIgotICAgICAgICAgICAgKQot
Ci0gICAgICAgIHJldHVybiBodHRwX2V2ZW50cwotCi0gICAgZGVmIF9pbml0X2Nvbm5lY3Rpb24o
c2VsZikgLT4gTm9uZToKLSAgICAgICAgIyBzZW5kIG91ciBzZXR0aW5ncwotICAgICAgICBzZWxm
Ll9sb2NhbF9jb250cm9sX3N0cmVhbV9pZCA9IHNlbGYuX2NyZWF0ZV91bmlfc3RyZWFtKFN0cmVh
bVR5cGUuQ09OVFJPTCkKLSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKAotICAg
ICAgICAgICAgc2VsZi5fbG9jYWxfY29udHJvbF9zdHJlYW1faWQsCi0gICAgICAgICAgICBlbmNv
ZGVfZnJhbWUoCi0gICAgICAgICAgICAgICAgRnJhbWVUeXBlLlNFVFRJTkdTLAotICAgICAgICAg
ICAgICAgIGVuY29kZV9zZXR0aW5ncygKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICAgICAgICAgU2V0dGluZy5RUEFDS19NQVhfVEFCTEVfQ0FQQUNJVFk6IHNlbGYuX21h
eF90YWJsZV9jYXBhY2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcuUVBBQ0tf
QkxPQ0tFRF9TVFJFQU1TOiBzZWxmLl9ibG9ja2VkX3N0cmVhbXMsCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAg
ICAgICBpZiBzZWxmLl9pc19jbGllbnQgYW5kIHNlbGYuX21heF9wdXNoX2lkIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKAotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvY2FsX2NvbnRyb2xfc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGVuY29k
ZV9mcmFtZShGcmFtZVR5cGUuTUFYX1BVU0hfSUQsIGVuY29kZV91aW50X3ZhcihzZWxmLl9tYXhf
cHVzaF9pZCkpLAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgY3JlYXRlIGVuY29kZXIgYW5k
IGRlY29kZXIgc3RyZWFtcwotICAgICAgICBzZWxmLl9sb2NhbF9lbmNvZGVyX3N0cmVhbV9pZCA9
IHNlbGYuX2NyZWF0ZV91bmlfc3RyZWFtKAotICAgICAgICAgICAgU3RyZWFtVHlwZS5RUEFDS19F
TkNPREVSCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5fbG9jYWxfZGVjb2Rlcl9zdHJlYW1faWQg
PSBzZWxmLl9jcmVhdGVfdW5pX3N0cmVhbSgKLSAgICAgICAgICAgIFN0cmVhbVR5cGUuUVBBQ0tf
REVDT0RFUgotICAgICAgICApCi0KLSAgICBkZWYgX3JlY2VpdmVfcmVxdWVzdF9vcl9wdXNoX2Rh
dGEoCi0gICAgICAgIHNlbGYsIHN0cmVhbTogSDNTdHJlYW0sIGRhdGE6IGJ5dGVzLCBzdHJlYW1f
ZW5kZWQ6IGJvb2wKLSAgICApIC0+IExpc3RbSDNFdmVudF06Ci0gICAgICAgICIiIgotICAgICAg
ICBIYW5kbGUgZGF0YSByZWNlaXZlZCBvbiBhIHJlcXVlc3Qgb3IgcHVzaCBzdHJlYW0uCi0gICAg
ICAgICIiIgotICAgICAgICBodHRwX2V2ZW50czogTGlzdFtIM0V2ZW50XSA9IFtdCi0KLSAgICAg
ICAgc3RyZWFtLmJ1ZmZlciArPSBkYXRhCi0gICAgICAgIGlmIHN0cmVhbV9lbmRlZDoKLSAgICAg
ICAgICAgIHN0cmVhbS5lbmRlZCA9IFRydWUKLSAgICAgICAgaWYgc3RyZWFtLmJsb2NrZWQ6Ci0g
ICAgICAgICAgICByZXR1cm4gaHR0cF9ldmVudHMKLQotICAgICAgICAjIHNob3J0Y3V0IGZvciBE
QVRBIGZyYW1lIGZyYWdtZW50cwotICAgICAgICBpZiAoCi0gICAgICAgICAgICBzdHJlYW0uZnJh
bWVfdHlwZSA9PSBGcmFtZVR5cGUuREFUQQotICAgICAgICAgICAgYW5kIHN0cmVhbS5mcmFtZV9z
aXplIGlzIG5vdCBOb25lCi0gICAgICAgICAgICBhbmQgbGVuKHN0cmVhbS5idWZmZXIpIDwgc3Ry
ZWFtLmZyYW1lX3NpemUKLSAgICAgICAgKToKLSAgICAgICAgICAgIGh0dHBfZXZlbnRzLmFwcGVu
ZCgKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGRh
dGE9c3RyZWFtLmJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgcHVzaF9pZD1zdHJlYW0ucHVz
aF9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbS5zdHJlYW1faWQsCi0g
ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBzdHJlYW0uZnJhbWVfc2l6ZSAtPSBsZW4oc3Ry
ZWFtLmJ1ZmZlcikKLSAgICAgICAgICAgIHN0cmVhbS5idWZmZXIgPSBiIiIKLSAgICAgICAgICAg
IHJldHVybiBodHRwX2V2ZW50cwotCi0gICAgICAgICMgaGFuZGxlIGxvbmUgRklOCi0gICAgICAg
IGlmIHN0cmVhbV9lbmRlZCBhbmQgbm90IHN0cmVhbS5idWZmZXI6Ci0gICAgICAgICAgICBodHRw
X2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAg
ICAgICAgICAgICBkYXRhPWIiIiwKLSAgICAgICAgICAgICAgICAgICAgcHVzaF9pZD1zdHJlYW0u
cHVzaF9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbS5zdHJlYW1faWQs
Ci0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAotICAgICAgICAgICAgICAg
ICkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHJldHVybiBodHRwX2V2ZW50cwotCi0gICAg
ICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPXN0cmVhbS5idWZmZXIpCi0gICAgICAgIGNvbnN1bWVkID0g
MAotCi0gICAgICAgIHdoaWxlIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICAjIGZldGNoIG5l
eHQgZnJhbWUgaGVhZGVyCi0gICAgICAgICAgICBpZiBzdHJlYW0uZnJhbWVfc2l6ZSBpcyBOb25l
OgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmZyYW1l
X3R5cGUgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbS5m
cmFtZV9zaXplID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBC
dWZmZXJSZWFkRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAg
ICAgY29uc3VtZWQgPSBidWYudGVsbCgpCi0KLSAgICAgICAgICAgICAgICAjIGxvZyBmcmFtZQot
ICAgICAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgYW5kIHN0cmVhbS5mcmFtZV90eXBl
ID09IEZyYW1lVHlwZS5EQVRBCi0gICAgICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAgICAgICAg
Y2F0ZWdvcnk9Imh0dHAiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ9ImZyYW1lX3Bh
cnNlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXFsb2dfZW5jb2RlX2RhdGFfZnJh
bWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZV9sZW5ndGg9c3RyZWFtLmZyYW1l
X3NpemUsIHN0cmVhbV9pZD1zdHJlYW0uc3RyZWFtX2lkCi0gICAgICAgICAgICAgICAgICAgICAg
ICApLAotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgY2hlY2sgaG93IG11
Y2ggZGF0YSBpcyBhdmFpbGFibGUKLSAgICAgICAgICAgIGNodW5rX3NpemUgPSBtaW4oc3RyZWFt
LmZyYW1lX3NpemUsIGJ1Zi5jYXBhY2l0eSAtIGNvbnN1bWVkKQotICAgICAgICAgICAgaWYgc3Ry
ZWFtLmZyYW1lX3R5cGUgIT0gRnJhbWVUeXBlLkRBVEEgYW5kIGNodW5rX3NpemUgPCBzdHJlYW0u
ZnJhbWVfc2l6ZToKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAjIHJlYWQg
YXZhaWxhYmxlIGRhdGEKLSAgICAgICAgICAgIGZyYW1lX2RhdGEgPSBidWYucHVsbF9ieXRlcyhj
aHVua19zaXplKQotICAgICAgICAgICAgY29uc3VtZWQgPSBidWYudGVsbCgpCi0KLSAgICAgICAg
ICAgICMgZGV0ZWN0IGVuZCBvZiBmcmFtZQotICAgICAgICAgICAgc3RyZWFtLmZyYW1lX3NpemUg
LT0gY2h1bmtfc2l6ZQotICAgICAgICAgICAgaWYgbm90IHN0cmVhbS5mcmFtZV9zaXplOgotICAg
ICAgICAgICAgICAgIHN0cmVhbS5mcmFtZV9zaXplID0gTm9uZQotCi0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgaHR0cF9ldmVudHMuZXh0ZW5kKAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9oYW5kbGVfcmVxdWVzdF9vcl9wdXNoX2ZyYW1lKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZnJhbWVfdHlwZT1zdHJlYW0uZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lX2RhdGE9ZnJhbWVfZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh
bT1zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9c3RyZWFtLmVu
ZGVkIGFuZCBidWYuZW9mKCksCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICBleGNlcHQgcHlsc3FwYWNrLlN0cmVhbUJsb2NrZWQ6Ci0gICAgICAg
ICAgICAgICAgc3RyZWFtLmJsb2NrZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgc3RyZWFtLmJs
b2NrZWRfZnJhbWVfc2l6ZSA9IGxlbihmcmFtZV9kYXRhKQotICAgICAgICAgICAgICAgIGJyZWFr
Ci0KLSAgICAgICAgIyByZW1vdmUgcHJvY2Vzc2VkIGRhdGEgZnJvbSBidWZmZXIKLSAgICAgICAg
c3RyZWFtLmJ1ZmZlciA9IHN0cmVhbS5idWZmZXJbY29uc3VtZWQ6XQotCi0gICAgICAgIHJldHVy
biBodHRwX2V2ZW50cwotCi0gICAgZGVmIF9yZWNlaXZlX3N0cmVhbV9kYXRhX3VuaSgKLSAgICAg
ICAgc2VsZiwgc3RyZWFtOiBIM1N0cmVhbSwgZGF0YTogYnl0ZXMsIHN0cmVhbV9lbmRlZDogYm9v
bAotICAgICkgLT4gTGlzdFtIM0V2ZW50XToKLSAgICAgICAgaHR0cF9ldmVudHM6IExpc3RbSDNF
dmVudF0gPSBbXQotCi0gICAgICAgIHN0cmVhbS5idWZmZXIgKz0gZGF0YQotICAgICAgICBpZiBz
dHJlYW1fZW5kZWQ6Ci0gICAgICAgICAgICBzdHJlYW0uZW5kZWQgPSBUcnVlCi0KLSAgICAgICAg
YnVmID0gQnVmZmVyKGRhdGE9c3RyZWFtLmJ1ZmZlcikKLSAgICAgICAgY29uc3VtZWQgPSAwCi0g
ICAgICAgIHVuYmxvY2tlZF9zdHJlYW1zOiBTZXRbaW50XSA9IHNldCgpCi0KLSAgICAgICAgd2hp
bGUgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5cGUuUFVTSCBvciBub3QgYnVmLmVvZigp
OgotICAgICAgICAgICAgIyBmZXRjaCBzdHJlYW0gdHlwZSBmb3IgdW5pZGlyZWN0aW9uYWwgc3Ry
ZWFtcwotICAgICAgICAgICAgaWYgc3RyZWFtLnN0cmVhbV90eXBlIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzdHJlYW0uc3RyZWFtX3R5cGUgPSBi
dWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEJ1ZmZlclJlYWRFcnJv
cjoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBjb25zdW1lZCA9
IGJ1Zi50ZWxsKCkKLQotICAgICAgICAgICAgICAgICMgY2hlY2sgdW5pY2l0eQotICAgICAgICAg
ICAgICAgIGlmIHN0cmVhbS5zdHJlYW1fdHlwZSA9PSBTdHJlYW1UeXBlLkNPTlRST0w6Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BlZXJfY29udHJvbF9zdHJlYW1faWQgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBTdHJlYW1DcmVhdGlvbkVycm9yKCJP
bmx5IG9uZSBjb250cm9sIHN0cmVhbSBpcyBhbGxvd2VkIikKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcGVlcl9jb250cm9sX3N0cmVhbV9pZCA9IHN0cmVhbS5zdHJlYW1faWQKLSAgICAgICAg
ICAgICAgICBlbGlmIHN0cmVhbS5zdHJlYW1fdHlwZSA9PSBTdHJlYW1UeXBlLlFQQUNLX0RFQ09E
RVI6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BlZXJfZGVjb2Rlcl9zdHJlYW1faWQg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBTdHJlYW1DcmVhdGlv
bkVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbmx5IG9uZSBRUEFDSyBkZWNv
ZGVyIHN0cmVhbSBpcyBhbGxvd2VkIgotICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9wZWVyX2RlY29kZXJfc3RyZWFtX2lkID0gc3RyZWFtLnN0cmVh
bV9pZAotICAgICAgICAgICAgICAgIGVsaWYgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5
cGUuUVBBQ0tfRU5DT0RFUjoKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcGVlcl9lbmNv
ZGVyX3N0cmVhbV9pZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNl
IFN0cmVhbUNyZWF0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9ubHkg
b25lIFFQQUNLIGVuY29kZXIgc3RyZWFtIGlzIGFsbG93ZWQiCi0gICAgICAgICAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BlZXJfZW5jb2Rlcl9zdHJlYW1faWQg
PSBzdHJlYW0uc3RyZWFtX2lkCi0KLSAgICAgICAgICAgIGlmIHN0cmVhbS5zdHJlYW1fdHlwZSA9
PSBTdHJlYW1UeXBlLkNPTlRST0w6Ci0gICAgICAgICAgICAgICAgIyBmZXRjaCBuZXh0IGZyYW1l
Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlID0g
YnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICAgICAgICAgICAgICBmcmFtZV9sZW5ndGggPSBi
dWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX2RhdGEgPSBidWYu
cHVsbF9ieXRlcyhmcmFtZV9sZW5ndGgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEJ1ZmZlclJl
YWRFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBjb25z
dW1lZCA9IGJ1Zi50ZWxsKCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9jb250cm9s
X2ZyYW1lKGZyYW1lX3R5cGUsIGZyYW1lX2RhdGEpCi0gICAgICAgICAgICBlbGlmIHN0cmVhbS5z
dHJlYW1fdHlwZSA9PSBTdHJlYW1UeXBlLlBVU0g6Ci0gICAgICAgICAgICAgICAgIyBmZXRjaCBw
dXNoIGlkCi0gICAgICAgICAgICAgICAgaWYgc3RyZWFtLnB1c2hfaWQgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnB1c2hf
aWQgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBCdWZm
ZXJSZWFkRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
ICAgICAgICBjb25zdW1lZCA9IGJ1Zi50ZWxsKCkKLQotICAgICAgICAgICAgICAgICMgcmVtb3Zl
IHByb2Nlc3NlZCBkYXRhIGZyb20gYnVmZmVyCi0gICAgICAgICAgICAgICAgc3RyZWFtLmJ1ZmZl
ciA9IHN0cmVhbS5idWZmZXJbY29uc3VtZWQ6XQotCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX3JlY2VpdmVfcmVxdWVzdF9vcl9wdXNoX2RhdGEoc3RyZWFtLCBiIiIsIHN0cmVhbV9lbmRl
ZCkKLSAgICAgICAgICAgIGVsaWYgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5cGUuUVBB
Q0tfREVDT0RFUjoKLSAgICAgICAgICAgICAgICAjIGZlZWQgdW5mcmFtZWQgZGF0YSB0byBkZWNv
ZGVyCi0gICAgICAgICAgICAgICAgZGF0YSA9IGJ1Zi5wdWxsX2J5dGVzKGJ1Zi5jYXBhY2l0eSAt
IGJ1Zi50ZWxsKCkpCi0gICAgICAgICAgICAgICAgY29uc3VtZWQgPSBidWYudGVsbCgpCi0gICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9lbmNvZGVyLmZlZWRf
ZGVjb2RlcihkYXRhKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBweWxzcXBhY2suRGVjb2RlclN0
cmVhbUVycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgUXBhY2tEZWNvZGVy
U3RyZWFtRXJyb3IoKSBmcm9tIGV4YwotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29kZXJfYnl0
ZXNfcmVjZWl2ZWQgKz0gbGVuKGRhdGEpCi0gICAgICAgICAgICBlbGlmIHN0cmVhbS5zdHJlYW1f
dHlwZSA9PSBTdHJlYW1UeXBlLlFQQUNLX0VOQ09ERVI6Ci0gICAgICAgICAgICAgICAgIyBmZWVk
IHVuZnJhbWVkIGRhdGEgdG8gZW5jb2RlcgotICAgICAgICAgICAgICAgIGRhdGEgPSBidWYucHVs
bF9ieXRlcyhidWYuY2FwYWNpdHkgLSBidWYudGVsbCgpKQotICAgICAgICAgICAgICAgIGNvbnN1
bWVkID0gYnVmLnRlbGwoKQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg
ICAgdW5ibG9ja2VkX3N0cmVhbXMudXBkYXRlKHNlbGYuX2RlY29kZXIuZmVlZF9lbmNvZGVyKGRh
dGEpKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBweWxzcXBhY2suRW5jb2RlclN0cmVhbUVycm9y
IGFzIGV4YzoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgUXBhY2tFbmNvZGVyU3RyZWFtRXJy
b3IoKSBmcm9tIGV4YwotICAgICAgICAgICAgICAgIHNlbGYuX2VuY29kZXJfYnl0ZXNfcmVjZWl2
ZWQgKz0gbGVuKGRhdGEpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgdW5r
bm93biBzdHJlYW0gdHlwZSwgZGlzY2FyZCBkYXRhCi0gICAgICAgICAgICAgICAgYnVmLnNlZWso
YnVmLmNhcGFjaXR5KQotICAgICAgICAgICAgICAgIGNvbnN1bWVkID0gYnVmLnRlbGwoKQotCi0g
ICAgICAgICMgcmVtb3ZlIHByb2Nlc3NlZCBkYXRhIGZyb20gYnVmZmVyCi0gICAgICAgIHN0cmVh
bS5idWZmZXIgPSBzdHJlYW0uYnVmZmVyW2NvbnN1bWVkOl0KLQotICAgICAgICAjIHByb2Nlc3Mg
dW5ibG9ja2VkIHN0cmVhbXMKLSAgICAgICAgZm9yIHN0cmVhbV9pZCBpbiB1bmJsb2NrZWRfc3Ry
ZWFtczoKLSAgICAgICAgICAgIHN0cmVhbSA9IHNlbGYuX3N0cmVhbVtzdHJlYW1faWRdCi0KLSAg
ICAgICAgICAgICMgcmVzdW1lIGhlYWRlcnMKLSAgICAgICAgICAgIGh0dHBfZXZlbnRzLmV4dGVu
ZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfcmVxdWVzdF9vcl9wdXNoX2ZyYW1lKAot
ICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPUZyYW1lVHlwZS5IRUFERVJTLAotICAgICAg
ICAgICAgICAgICAgICBmcmFtZV9kYXRhPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVh
bT1zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1zdHJlYW0uZW5kZWQg
YW5kIG5vdCBzdHJlYW0uYnVmZmVyLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkK
LSAgICAgICAgICAgIHN0cmVhbS5ibG9ja2VkID0gRmFsc2UKLSAgICAgICAgICAgIHN0cmVhbS5i
bG9ja2VkX2ZyYW1lX3NpemUgPSBOb25lCi0KLSAgICAgICAgICAgICMgcmVzdW1lIHByb2Nlc3Np
bmcKLSAgICAgICAgICAgIGlmIHN0cmVhbS5idWZmZXI6Ci0gICAgICAgICAgICAgICAgaHR0cF9l
dmVudHMuZXh0ZW5kKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlX3JlcXVlc3Rf
b3JfcHVzaF9kYXRhKHN0cmVhbSwgYiIiLCBzdHJlYW0uZW5kZWQpCi0gICAgICAgICAgICAgICAg
KQotCi0gICAgICAgIHJldHVybiBodHRwX2V2ZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2gzL2V2ZW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy9l
dmVudHMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkMjFjNWFiYzQyNzBjMmU4
ZjFiZTU4YTAwOWFlNzUyODEyZDFhMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V2ZW50cy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLWZyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFj
bGFzcwotZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QsIE9wdGlvbmFsLCBUdXBsZQotCi1IZWFkZXJz
ID0gTGlzdFtUdXBsZVtieXRlcywgYnl0ZXNdXQotCi0KLWNsYXNzIEgzRXZlbnQ6Ci0gICAgIiIi
Ci0gICAgQmFzZSBjbGFzcyBmb3IgSFRUUC8zIGV2ZW50cy4KLSAgICAiIiIKLQotCi1AZGF0YWNs
YXNzCi1jbGFzcyBEYXRhUmVjZWl2ZWQoSDNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhlIERhdGFS
ZWNlaXZlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBkYXRhIGlzIHJlY2VpdmVkIG9uIGEgc3Ry
ZWFtIGZyb20KLSAgICB0aGUgcmVtb3RlIHBlZXIuCi0gICAgIiIiCi0KLSAgICBkYXRhOiBieXRl
cwotICAgICJUaGUgZGF0YSB3aGljaCB3YXMgcmVjZWl2ZWQuIgotCi0gICAgc3RyZWFtX2lkOiBp
bnQKLSAgICAiVGhlIElEIG9mIHRoZSBzdHJlYW0gdGhlIGRhdGEgd2FzIHJlY2VpdmVkIGZvci4i
Ci0KLSAgICBzdHJlYW1fZW5kZWQ6IGJvb2wKLSAgICAiV2hldGhlciB0aGUgU1RSRUFNIGZyYW1l
IGhhZCB0aGUgRklOIGJpdCBzZXQuIgotCi0gICAgcHVzaF9pZDogT3B0aW9uYWxbaW50XSA9IE5v
bmUKLSAgICAiVGhlIFB1c2ggSUQgb3IgYE5vbmVgIGlmIHRoaXMgaXMgbm90IGEgcHVzaC4iCi0K
LQotQGRhdGFjbGFzcwotY2xhc3MgSGVhZGVyc1JlY2VpdmVkKEgzRXZlbnQpOgotICAgICIiIgot
ICAgIFRoZSBIZWFkZXJzUmVjZWl2ZWQgZXZlbnQgaXMgZmlyZWQgd2hlbmV2ZXIgaGVhZGVycyBh
cmUgcmVjZWl2ZWQuCi0gICAgIiIiCi0KLSAgICBoZWFkZXJzOiBIZWFkZXJzCi0gICAgIlRoZSBo
ZWFkZXJzLiIKLQotICAgIHN0cmVhbV9pZDogaW50Ci0gICAgIlRoZSBJRCBvZiB0aGUgc3RyZWFt
IHRoZSBoZWFkZXJzIHdlcmUgcmVjZWl2ZWQgZm9yLiIKLQotICAgIHN0cmVhbV9lbmRlZDogYm9v
bAotICAgICJXaGV0aGVyIHRoZSBTVFJFQU0gZnJhbWUgaGFkIHRoZSBGSU4gYml0IHNldC4iCi0K
LSAgICBwdXNoX2lkOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgICJUaGUgUHVzaCBJRCBvciBg
Tm9uZWAgaWYgdGhpcyBpcyBub3QgYSBwdXNoLiIKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBQdXNo
UHJvbWlzZVJlY2VpdmVkKEgzRXZlbnQpOgotICAgICIiIgotICAgIFRoZSBQdXNoZWRTdHJlYW1S
ZWNlaXZlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBhIHB1c2hlZCBzdHJlYW0gaGFzIGJlZW4K
LSAgICByZWNlaXZlZCBmcm9tIHRoZSByZW1vdGUgcGVlci4KLSAgICAiIiIKLQotICAgIGhlYWRl
cnM6IEhlYWRlcnMKLSAgICAiVGhlIHJlcXVlc3QgaGVhZGVycy4iCi0KLSAgICBwdXNoX2lkOiBp
bnQKLSAgICAiVGhlIFB1c2ggSUQgb2YgdGhlIHB1c2ggcHJvbWlzZS4iCi0KLSAgICBzdHJlYW1f
aWQ6IGludAotICAgICJUaGUgU3RyZWFtIElEIG9mIHRoZSBzdHJlYW0gdGhhdCB0aGUgcHVzaCBp
cyByZWxhdGVkIHRvLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy9l
eGNlcHRpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V4Y2VwdGlvbnMucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MjAwYzFkNjFmYTViM2ExMTViNDM0NjRk
NTY3ZWEzYWEyODU3NmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V4Y2VwdGlvbnMucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1jbGFzcyBIM0Vycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIi
Ci0gICAgQmFzZSBjbGFzcyBmb3IgSFRUUC8zIGV4Y2VwdGlvbnMuCi0gICAgIiIiCi0KLQotY2xh
c3MgTm9BdmFpbGFibGVQdXNoSURFcnJvcihIM0Vycm9yKToKLSAgICAiIiIKLSAgICBUaGVyZSBh
cmUgbm8gYXZhaWxhYmxlIHB1c2ggSURzIGxlZnQuCi0gICAgIiIiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3Jj
L2Fpb3F1aWMvaDMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBiMzYzZTliNjA4MGIwZWYzZThiZDY4YWE1MzMwMjQ5ZGZmMTIyMzkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L2gzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2gzL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
aDMvZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V4Y2VwdGlvbnMucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9weS50eXBlZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9zcmMvYWlvcXVpYy9weS50eXBlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjU2NDJmNzlmMjFkODcyZjAxMDk3OWRjZjZmMGM0YTQxNWFjYzE5ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
cHkudHlwZWQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1NYXJrZXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL3F1aWMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9x
dWljL3F1aWMvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3Ig
bW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jb25maWd1cmF0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL3F1aWMvY29uZmlndXJhdGlvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjg2MWY4Mjk3OWU5OTc2ZDI5ZTdjNThhZjI3ZjNlYTYxZDBkYTA3Yi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvcXVpYy9jb25maWd1cmF0aW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAg
QEAKLWZyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcywgZmllbGQKLWZyb20gb3MgaW1w
b3J0IFBhdGhMaWtlCi1mcm9tIHR5cGluZyBpbXBvcnQgQW55LCBMaXN0LCBPcHRpb25hbCwgVGV4
dElPLCBVbmlvbgotCi1mcm9tIC4udGxzIGltcG9ydCBTZXNzaW9uVGlja2V0LCBsb2FkX3BlbV9w
cml2YXRlX2tleSwgbG9hZF9wZW1feDUwOV9jZXJ0aWZpY2F0ZXMKLWZyb20gLmxvZ2dlciBpbXBv
cnQgUXVpY0xvZ2dlcgotZnJvbSAucGFja2V0IGltcG9ydCBRdWljUHJvdG9jb2xWZXJzaW9uCi0K
LQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY0NvbmZpZ3VyYXRpb246Ci0gICAgIiIiCi0gICAgQSBR
VUlDIGNvbmZpZ3VyYXRpb24uCi0gICAgIiIiCi0KLSAgICBhbHBuX3Byb3RvY29sczogT3B0aW9u
YWxbTGlzdFtzdHJdXSA9IE5vbmUKLSAgICAiIiIKLSAgICBBIGxpc3Qgb2Ygc3VwcG9ydGVkIEFM
UE4gcHJvdG9jb2xzLgotICAgICIiIgotCi0gICAgY29ubmVjdGlvbl9pZF9sZW5ndGg6IGludCA9
IDgKLSAgICAiIiIKLSAgICBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIGxvY2FsIGNvbm5lY3Rpb24g
SURzLgotICAgICIiIgotCi0gICAgaWRsZV90aW1lb3V0OiBmbG9hdCA9IDYwLjAKLSAgICAiIiIK
LSAgICBUaGUgaWRsZSB0aW1lb3V0IGluIHNlY29uZHMuCi0KLSAgICBUaGUgY29ubmVjdGlvbiBp
cyB0ZXJtaW5hdGVkIGlmIG5vdGhpbmcgaXMgcmVjZWl2ZWQgZm9yIHRoZSBnaXZlbiBkdXJhdGlv
bi4KLSAgICAiIiIKLQotICAgIGlzX2NsaWVudDogYm9vbCA9IFRydWUKLSAgICAiIiIKLSAgICBX
aGV0aGVyIHRoaXMgaXMgdGhlIGNsaWVudCBzaWRlIG9mIHRoZSBRVUlDIGNvbm5lY3Rpb24uCi0g
ICAgIiIiCi0KLSAgICBtYXhfZGF0YTogaW50ID0gMTA0ODU3NgotICAgICIiIgotICAgIENvbm5l
Y3Rpb24td2lkZSBmbG93IGNvbnRyb2wgbGltaXQuCi0gICAgIiIiCi0KLSAgICBtYXhfc3RyZWFt
X2RhdGE6IGludCA9IDEwNDg1NzYKLSAgICAiIiIKLSAgICBQZXItc3RyZWFtIGZsb3cgY29udHJv
bCBsaW1pdC4KLSAgICAiIiIKLQotICAgIHF1aWNfbG9nZ2VyOiBPcHRpb25hbFtRdWljTG9nZ2Vy
XSA9IE5vbmUKLSAgICAiIiIKLSAgICBUaGUgOmNsYXNzOmB+YWlvcXVpYy5xdWljLmxvZ2dlci5R
dWljTG9nZ2VyYCBpbnN0YW5jZSB0byBsb2cgZXZlbnRzIHRvLgotICAgICIiIgotCi0gICAgc2Vj
cmV0c19sb2dfZmlsZTogVGV4dElPID0gTm9uZQotICAgICIiIgotICAgIEEgZmlsZS1saWtlIG9i
amVjdCBpbiB3aGljaCB0byBsb2cgdHJhZmZpYyBzZWNyZXRzLgotCi0gICAgVGhpcyBpcyB1c2Vm
dWwgdG8gYW5hbHl6ZSB0cmFmZmljIGNhcHR1cmVzIHdpdGggV2lyZXNoYXJrLgotICAgICIiIgot
Ci0gICAgc2VydmVyX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAgIiIiCi0gICAgVGhl
IHNlcnZlciBuYW1lIHRvIHNlbmQgZHVyaW5nIHRoZSBUTFMgaGFuZHNoYWtlIHRoZSBTZXJ2ZXIg
TmFtZSBJbmRpY2F0aW9uLgotCi0gICAgLi4gbm90ZTo6IFRoaXMgaXMgb25seSB1c2VkIGJ5IGNs
aWVudHMuCi0gICAgIiIiCi0KLSAgICBzZXNzaW9uX3RpY2tldDogT3B0aW9uYWxbU2Vzc2lvblRp
Y2tldF0gPSBOb25lCi0gICAgIiIiCi0gICAgVGhlIFRMUyBzZXNzaW9uIHRpY2tldCB3aGljaCBz
aG91bGQgYmUgdXNlZCBmb3Igc2Vzc2lvbiByZXN1bXB0aW9uLgotICAgICIiIgotCi0gICAgY2Fk
YXRhOiBPcHRpb25hbFtieXRlc10gPSBOb25lCi0gICAgY2FmaWxlOiBPcHRpb25hbFtzdHJdID0g
Tm9uZQotICAgIGNhcGF0aDogT3B0aW9uYWxbc3RyXSA9IE5vbmUKLSAgICBjZXJ0aWZpY2F0ZTog
QW55ID0gTm9uZQotICAgIGNlcnRpZmljYXRlX2NoYWluOiBMaXN0W0FueV0gPSBmaWVsZChkZWZh
dWx0X2ZhY3Rvcnk9bGlzdCkKLSAgICBtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZTogT3B0aW9uYWxb
aW50XSA9IE5vbmUKLSAgICBwcml2YXRlX2tleTogQW55ID0gTm9uZQotICAgIHF1YW50dW1fcmVh
ZGluZXNzX3Rlc3Q6IGJvb2wgPSBGYWxzZQotICAgIHN1cHBvcnRlZF92ZXJzaW9uczogTGlzdFtp
bnRdID0gZmllbGQoCi0gICAgICAgIGRlZmF1bHRfZmFjdG9yeT1sYW1iZGE6IFsKLSAgICAgICAg
ICAgIFF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjcsCi0gICAgICAgICAgICBRdWljUHJvdG9j
b2xWZXJzaW9uLkRSQUZUXzI2LAotICAgICAgICAgICAgUXVpY1Byb3RvY29sVmVyc2lvbi5EUkFG
VF8yNSwKLSAgICAgICAgXQotICAgICkKLSAgICB2ZXJpZnlfbW9kZTogT3B0aW9uYWxbaW50XSA9
IE5vbmUKLQotICAgIGRlZiBsb2FkX2NlcnRfY2hhaW4oCi0gICAgICAgIHNlbGYsCi0gICAgICAg
IGNlcnRmaWxlOiBQYXRoTGlrZSwKLSAgICAgICAga2V5ZmlsZTogT3B0aW9uYWxbUGF0aExpa2Vd
ID0gTm9uZSwKLSAgICAgICAgcGFzc3dvcmQ6IE9wdGlvbmFsW1VuaW9uW2J5dGVzLCBzdHJdXSA9
IE5vbmUsCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgTG9hZCBhIHByaXZh
dGUga2V5IGFuZCB0aGUgY29ycmVzcG9uZGluZyBjZXJ0aWZpY2F0ZS4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHdpdGggb3BlbihjZXJ0ZmlsZSwgInJiIikgYXMgZnA6Ci0gICAgICAgICAgICBjZXJ0
aWZpY2F0ZXMgPSBsb2FkX3BlbV94NTA5X2NlcnRpZmljYXRlcyhmcC5yZWFkKCkpCi0gICAgICAg
IHNlbGYuY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0ZXNbMF0KLSAgICAgICAgc2VsZi5jZXJ0aWZp
Y2F0ZV9jaGFpbiA9IGNlcnRpZmljYXRlc1sxOl0KLQotICAgICAgICBpZiBrZXlmaWxlIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgd2l0aCBvcGVuKGtleWZpbGUsICJyYiIpIGFzIGZwOgotICAg
ICAgICAgICAgICAgIHNlbGYucHJpdmF0ZV9rZXkgPSBsb2FkX3BlbV9wcml2YXRlX2tleSgKLSAg
ICAgICAgICAgICAgICAgICAgZnAucmVhZCgpLAotICAgICAgICAgICAgICAgICAgICBwYXNzd29y
ZD1wYXNzd29yZC5lbmNvZGUoInV0ZjgiKQotICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3Rh
bmNlKHBhc3N3b3JkLCBzdHIpCi0gICAgICAgICAgICAgICAgICAgIGVsc2UgcGFzc3dvcmQsCi0g
ICAgICAgICAgICAgICAgKQotCi0gICAgZGVmIGxvYWRfdmVyaWZ5X2xvY2F0aW9ucygKLSAgICAg
ICAgc2VsZiwKLSAgICAgICAgY2FmaWxlOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSAgICAgICAg
Y2FwYXRoOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSAgICAgICAgY2FkYXRhOiBPcHRpb25hbFti
eXRlc10gPSBOb25lLAotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIExvYWQg
YSBzZXQgb2YgImNlcnRpZmljYXRpb24gYXV0aG9yaXR5IiAoQ0EpIGNlcnRpZmljYXRlcyB1c2Vk
IHRvCi0gICAgICAgIHZhbGlkYXRlIG90aGVyIHBlZXJzJyBjZXJ0aWZpY2F0ZXMuCi0gICAgICAg
ICIiIgotICAgICAgICBzZWxmLmNhZmlsZSA9IGNhZmlsZQotICAgICAgICBzZWxmLmNhcGF0aCA9
IGNhcGF0aAotICAgICAgICBzZWxmLmNhZGF0YSA9IGNhZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NyYy9haW9xdWljL3F1aWMvY29ubmVjdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMv
YWlvcXVpYy9xdWljL2Nvbm5lY3Rpb24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBlMTM3MmNjMDhiYTAzZGNiNDczZDAyYWQzNDlkY2I5YjM0ZDA5OTEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L3F1aWMvY29ubmVjdGlvbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2NTMgKzAsMCBAQAotaW1w
b3J0IGJpbmFzY2lpCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1mcm9tIGNvbGxlY3Rpb25z
IGltcG9ydCBkZXF1ZQotZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCi1mcm9tIGVu
dW0gaW1wb3J0IEVudW0KLWZyb20gdHlwaW5nIGltcG9ydCBBbnksIERlcXVlLCBEaWN0LCBGcm96
ZW5TZXQsIExpc3QsIE9wdGlvbmFsLCBTZXF1ZW5jZSwgVHVwbGUKLQotZnJvbSAuLiBpbXBvcnQg
dGxzCi1mcm9tIC4uYnVmZmVyIGltcG9ydCBVSU5UX1ZBUl9NQVgsIEJ1ZmZlciwgQnVmZmVyUmVh
ZEVycm9yLCBzaXplX3VpbnRfdmFyCi1mcm9tIC4gaW1wb3J0IGV2ZW50cwotZnJvbSAuY29uZmln
dXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZyb20gLmNyeXB0byBpbXBvcnQgQ3J5
cHRvRXJyb3IsIENyeXB0b1BhaXIsIEtleVVuYXZhaWxhYmxlRXJyb3IKLWZyb20gLmxvZ2dlciBp
bXBvcnQgUXVpY0xvZ2dlclRyYWNlCi1mcm9tIC5wYWNrZXQgaW1wb3J0ICgKLSAgICBOT05fQUNL
X0VMSUNJVElOR19GUkFNRV9UWVBFUywKLSAgICBQQUNLRVRfVFlQRV9IQU5EU0hBS0UsCi0gICAg
UEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICBQQUNLRVRfVFlQRV9PTkVfUlRULAotICAgIFBBQ0tF
VF9UWVBFX1JFVFJZLAotICAgIFBBQ0tFVF9UWVBFX1pFUk9fUlRULAotICAgIFBST0JJTkdfRlJB
TUVfVFlQRVMsCi0gICAgUkVUUllfSU5URUdSSVRZX1RBR19TSVpFLAotICAgIFF1aWNFcnJvckNv
ZGUsCi0gICAgUXVpY0ZyYW1lVHlwZSwKLSAgICBRdWljUHJvdG9jb2xWZXJzaW9uLAotICAgIFF1
aWNTdHJlYW1GcmFtZSwKLSAgICBRdWljVHJhbnNwb3J0UGFyYW1ldGVycywKLSAgICBnZXRfcmV0
cnlfaW50ZWdyaXR5X3RhZywKLSAgICBnZXRfc3Bpbl9iaXQsCi0gICAgaXNfbG9uZ19oZWFkZXIs
Ci0gICAgcHVsbF9hY2tfZnJhbWUsCi0gICAgcHVsbF9xdWljX2hlYWRlciwKLSAgICBwdWxsX3F1
aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMsCi0gICAgcHVzaF9hY2tfZnJhbWUsCi0gICAgcHVzaF9x
dWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLAotKQotZnJvbSAucGFja2V0X2J1aWxkZXIgaW1wb3J0
ICgKLSAgICBQQUNLRVRfTUFYX1NJWkUsCi0gICAgUXVpY0RlbGl2ZXJ5U3RhdGUsCi0gICAgUXVp
Y1BhY2tldEJ1aWxkZXIsCi0gICAgUXVpY1BhY2tldEJ1aWxkZXJTdG9wLAotKQotZnJvbSAucmVj
b3ZlcnkgaW1wb3J0IEtfR1JBTlVMQVJJVFksIFF1aWNQYWNrZXRSZWNvdmVyeSwgUXVpY1BhY2tl
dFNwYWNlCi1mcm9tIC5zdHJlYW0gaW1wb3J0IFF1aWNTdHJlYW0KLQotbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoInF1aWMiKQotCi1DUllQVE9fQlVGRkVSX1NJWkUgPSAxNjM4NAotRVBPQ0hf
U0hPUlRDVVRTID0gewotICAgICJJIjogdGxzLkVwb2NoLklOSVRJQUwsCi0gICAgIkgiOiB0bHMu
RXBvY2guSEFORFNIQUtFLAotICAgICIwIjogdGxzLkVwb2NoLlpFUk9fUlRULAotICAgICIxIjog
dGxzLkVwb2NoLk9ORV9SVFQsCi19Ci1NQVhfRUFSTFlfREFUQSA9IDB4RkZGRkZGRkYKLVNFQ1JF
VFNfTEFCRUxTID0gWwotICAgIFsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgIlFVSUNfQ0xJRU5U
X0VBUkxZX1RSQUZGSUNfU0VDUkVUIiwKLSAgICAgICAgIlFVSUNfQ0xJRU5UX0hBTkRTSEFLRV9U
UkFGRklDX1NFQ1JFVCIsCi0gICAgICAgICJRVUlDX0NMSUVOVF9UUkFGRklDX1NFQ1JFVF8wIiwK
LSAgICBdLAotICAgIFsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgTm9uZSwKLSAgICAgICAgIlFV
SUNfU0VSVkVSX0hBTkRTSEFLRV9UUkFGRklDX1NFQ1JFVCIsCi0gICAgICAgICJRVUlDX1NFUlZF
Ul9UUkFGRklDX1NFQ1JFVF8wIiwKLSAgICBdLAotXQotU1RSRUFNX0ZMQUdTID0gMHgwNwotCi1O
ZXR3b3JrQWRkcmVzcyA9IEFueQotCi0jIGZyYW1lIHNpemVzCi1BQ0tfRlJBTUVfQ0FQQUNJVFkg
PSA2NCAgIyBGSVhNRTogdGhpcyBpcyBhcmJpdHJhcnkhCi1BUFBMSUNBVElPTl9DTE9TRV9GUkFN
RV9DQVBBQ0lUWSA9IDEgKyA4ICsgOCAgIyArIHJlYXNvbiBsZW5ndGgKLUhBTkRTSEFLRV9ET05F
X0ZSQU1FX0NBUEFDSVRZID0gMQotTUFYX0RBVEFfRlJBTUVfQ0FQQUNJVFkgPSAxICsgOAotTUFY
X1NUUkVBTV9EQVRBX0ZSQU1FX0NBUEFDSVRZID0gMSArIDggKyA4Ci1ORVdfQ09OTkVDVElPTl9J
RF9GUkFNRV9DQVBBQ0lUWSA9IDEgKyA4ICsgOCArIDEgKyAyMCArIDE2Ci1QQVRIX0NIQUxMRU5H
RV9GUkFNRV9DQVBBQ0lUWSA9IDEgKyA4Ci1QQVRIX1JFU1BPTlNFX0ZSQU1FX0NBUEFDSVRZID0g
MSArIDgKLVBJTkdfRlJBTUVfQ0FQQUNJVFkgPSAxCi1SRVRJUkVfQ09OTkVDVElPTl9JRF9DQVBB
Q0lUWSA9IDEgKyA4Ci1TVFJFQU1TX0JMT0NLRURfQ0FQQUNJVFkgPSAxICsgOAotVFJBTlNQT1JU
X0NMT1NFX0ZSQU1FX0NBUEFDSVRZID0gMSArIDggKyA4ICsgOCAgIyArIHJlYXNvbiBsZW5ndGgK
LQotCi1kZWYgRVBPQ0hTKHNob3J0Y3V0OiBzdHIpIC0+IEZyb3plblNldFt0bHMuRXBvY2hdOgot
ICAgIHJldHVybiBmcm96ZW5zZXQoRVBPQ0hfU0hPUlRDVVRTW2ldIGZvciBpIGluIHNob3J0Y3V0
KQotCi0KLWRlZiBkdW1wX2NpZChjaWQ6IGJ5dGVzKSAtPiBzdHI6Ci0gICAgcmV0dXJuIGJpbmFz
Y2lpLmhleGxpZnkoY2lkKS5kZWNvZGUoImFzY2lpIikKLQotCi1kZWYgZ2V0X2Vwb2NoKHBhY2tl
dF90eXBlOiBpbnQpIC0+IHRscy5FcG9jaDoKLSAgICBpZiBwYWNrZXRfdHlwZSA9PSBQQUNLRVRf
VFlQRV9JTklUSUFMOgotICAgICAgICByZXR1cm4gdGxzLkVwb2NoLklOSVRJQUwKLSAgICBlbGlm
IHBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX1pFUk9fUlRUOgotICAgICAgICByZXR1cm4gdGxz
LkVwb2NoLlpFUk9fUlRUCi0gICAgZWxpZiBwYWNrZXRfdHlwZSA9PSBQQUNLRVRfVFlQRV9IQU5E
U0hBS0U6Ci0gICAgICAgIHJldHVybiB0bHMuRXBvY2guSEFORFNIQUtFCi0gICAgZWxzZToKLSAg
ICAgICAgcmV0dXJuIHRscy5FcG9jaC5PTkVfUlRUCi0KLQotZGVmIHN0cmVhbV9pc19jbGllbnRf
aW5pdGlhdGVkKHN0cmVhbV9pZDogaW50KSAtPiBib29sOgotICAgICIiIgotICAgIFJldHVybnMg
VHJ1ZSBpZiB0aGUgc3RyZWFtIGlzIGNsaWVudCBpbml0aWF0ZWQuCi0gICAgIiIiCi0gICAgcmV0
dXJuIG5vdCAoc3RyZWFtX2lkICYgMSkKLQotCi1kZWYgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFs
KHN0cmVhbV9pZDogaW50KSAtPiBib29sOgotICAgICIiIgotICAgIFJldHVybnMgVHJ1ZSBpZiB0
aGUgc3RyZWFtIGlzIHVuaWRpcmVjdGlvbmFsLgotICAgICIiIgotICAgIHJldHVybiBib29sKHN0
cmVhbV9pZCAmIDIpCi0KLQotY2xhc3MgUXVpY0Nvbm5lY3Rpb25FcnJvcihFeGNlcHRpb24pOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlcnJvcl9jb2RlOiBpbnQsIGZyYW1lX3R5cGU6IGludCwg
cmVhc29uX3BocmFzZTogc3RyKToKLSAgICAgICAgc2VsZi5lcnJvcl9jb2RlID0gZXJyb3JfY29k
ZQotICAgICAgICBzZWxmLmZyYW1lX3R5cGUgPSBmcmFtZV90eXBlCi0gICAgICAgIHNlbGYucmVh
c29uX3BocmFzZSA9IHJlYXNvbl9waHJhc2UKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpIC0+IHN0
cjoKLSAgICAgICAgcyA9ICJFcnJvcjogJWQsIHJlYXNvbjogJXMiICUgKHNlbGYuZXJyb3JfY29k
ZSwgc2VsZi5yZWFzb25fcGhyYXNlKQotICAgICAgICBpZiBzZWxmLmZyYW1lX3R5cGUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzICs9ICIsIGZyYW1lX3R5cGU6ICVzIiAlIHNlbGYuZnJhbWVf
dHlwZQotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIFF1aWNDb25uZWN0aW9uQWRhcHRlcihs
b2dnaW5nLkxvZ2dlckFkYXB0ZXIpOgotICAgIGRlZiBwcm9jZXNzKHNlbGYsIG1zZzogc3RyLCBr
d2FyZ3M6IEFueSkgLT4gVHVwbGVbc3RyLCBBbnldOgotICAgICAgICByZXR1cm4gIlslc10gJXMi
ICUgKHNlbGYuZXh0cmFbImlkIl0sIG1zZyksIGt3YXJncwotCi0KLUBkYXRhY2xhc3MKLWNsYXNz
IFF1aWNDb25uZWN0aW9uSWQ6Ci0gICAgY2lkOiBieXRlcwotICAgIHNlcXVlbmNlX251bWJlcjog
aW50Ci0gICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuOiBieXRlcyA9IGIiIgotICAgIHdhc19zZW50
OiBib29sID0gRmFsc2UKLQotCi1jbGFzcyBRdWljQ29ubmVjdGlvblN0YXRlKEVudW0pOgotICAg
IEZJUlNURkxJR0hUID0gMAotICAgIENPTk5FQ1RFRCA9IDEKLSAgICBDTE9TSU5HID0gMgotICAg
IERSQUlOSU5HID0gMwotICAgIFRFUk1JTkFURUQgPSA0Ci0KLQotQGRhdGFjbGFzcwotY2xhc3Mg
UXVpY05ldHdvcmtQYXRoOgotICAgIGFkZHI6IE5ldHdvcmtBZGRyZXNzCi0gICAgYnl0ZXNfcmVj
ZWl2ZWQ6IGludCA9IDAKLSAgICBieXRlc19zZW50OiBpbnQgPSAwCi0gICAgaXNfdmFsaWRhdGVk
OiBib29sID0gRmFsc2UKLSAgICBsb2NhbF9jaGFsbGVuZ2U6IE9wdGlvbmFsW2J5dGVzXSA9IE5v
bmUKLSAgICByZW1vdGVfY2hhbGxlbmdlOiBPcHRpb25hbFtieXRlc10gPSBOb25lCi0KLSAgICBk
ZWYgY2FuX3NlbmQoc2VsZiwgc2l6ZTogaW50KSAtPiBib29sOgotICAgICAgICByZXR1cm4gc2Vs
Zi5pc192YWxpZGF0ZWQgb3IgKHNlbGYuYnl0ZXNfc2VudCArIHNpemUpIDw9IDMgKiBzZWxmLmJ5
dGVzX3JlY2VpdmVkCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY1JlY2VpdmVDb250ZXh0Ogot
ICAgIGVwb2NoOiB0bHMuRXBvY2gKLSAgICBob3N0X2NpZDogYnl0ZXMKLSAgICBuZXR3b3JrX3Bh
dGg6IFF1aWNOZXR3b3JrUGF0aAotICAgIHF1aWNfbG9nZ2VyX2ZyYW1lczogT3B0aW9uYWxbTGlz
dFtBbnldXQotICAgIHRpbWU6IGZsb2F0Ci0KLQotRU5EX1NUQVRFUyA9IGZyb3plbnNldCgKLSAg
ICBbCi0gICAgICAgIFF1aWNDb25uZWN0aW9uU3RhdGUuQ0xPU0lORywKLSAgICAgICAgUXVpY0Nv
bm5lY3Rpb25TdGF0ZS5EUkFJTklORywKLSAgICAgICAgUXVpY0Nvbm5lY3Rpb25TdGF0ZS5URVJN
SU5BVEVELAotICAgIF0KLSkKLQotCi1jbGFzcyBRdWljQ29ubmVjdGlvbjoKLSAgICAiIiIKLSAg
ICBBIFFVSUMgY29ubmVjdGlvbi4KLQotICAgIFRoZSBzdGF0ZSBtYWNoaW5lIGlzIGRyaXZlbiBi
eSB0aHJlZSBraW5kcyBvZiBzb3VyY2VzOgotCi0gICAgLSB0aGUgQVBJIHVzZXIgcmVxdWVzdGlu
ZyBkYXRhIHRvIGJlIHNlbmQgb3V0IChzZWUgOm1ldGg6YGNvbm5lY3RgLAotICAgICAgOm1ldGg6
YHNlbmRfcGluZ2AsIDptZXRoOmBzZW5kX2RhdGFncmFtX2RhdGFgIGFuZCA6bWV0aDpgc2VuZF9z
dHJlYW1fZGF0YWApCi0gICAgLSBkYXRhIGJlaW5nIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdvcmsg
KHNlZSA6bWV0aDpgcmVjZWl2ZV9kYXRhZ3JhbWApCi0gICAgLSBhIHRpbWVyIGZpcmluZyAoc2Vl
IDptZXRoOmBoYW5kbGVfdGltZXJgKQotCi0gICAgOnBhcmFtIGNvbmZpZ3VyYXRpb246IFRoZSBR
VUlDIGNvbmZpZ3VyYXRpb24gdG8gdXNlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKAot
ICAgICAgICBzZWxmLAotICAgICAgICAqLAotICAgICAgICBjb25maWd1cmF0aW9uOiBRdWljQ29u
ZmlndXJhdGlvbiwKLSAgICAgICAgbG9nZ2VyX2Nvbm5lY3Rpb25faWQ6IE9wdGlvbmFsW2J5dGVz
XSA9IE5vbmUsCi0gICAgICAgIG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQ6IE9wdGlvbmFsW2J5dGVz
XSA9IE5vbmUsCi0gICAgICAgIHNlc3Npb25fdGlja2V0X2ZldGNoZXI6IE9wdGlvbmFsW3Rscy5T
ZXNzaW9uVGlja2V0RmV0Y2hlcl0gPSBOb25lLAotICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5k
bGVyOiBPcHRpb25hbFt0bHMuU2Vzc2lvblRpY2tldEhhbmRsZXJdID0gTm9uZSwKLSAgICApIC0+
IE5vbmU6Ci0gICAgICAgIGlmIGNvbmZpZ3VyYXRpb24uaXNfY2xpZW50OgotICAgICAgICAgICAg
YXNzZXJ0ICgKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9jb25uZWN0aW9uX2lkIGlzIE5vbmUK
LSAgICAgICAgICAgICksICJDYW5ub3Qgc2V0IG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQgZm9yIGEg
Y2xpZW50IgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAg
ICAgICBjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlIGlzIG5vdCBOb25lCi0gICAgICAgICAgICAp
LCAiU1NMIGNlcnRpZmljYXRlIGlzIHJlcXVpcmVkIGZvciBhIHNlcnZlciIKLSAgICAgICAgICAg
IGFzc2VydCAoCi0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi5wcml2YXRlX2tleSBpcyBu
b3QgTm9uZQotICAgICAgICAgICAgKSwgIlNTTCBwcml2YXRlIGtleSBpcyByZXF1aXJlZCBmb3Ig
YSBzZXJ2ZXIiCi0KLSAgICAgICAgIyBjb25maWd1cmF0aW9uCi0gICAgICAgIHNlbGYuX2NvbmZp
Z3VyYXRpb24gPSBjb25maWd1cmF0aW9uCi0gICAgICAgIHNlbGYuX2lzX2NsaWVudCA9IGNvbmZp
Z3VyYXRpb24uaXNfY2xpZW50Ci0KLSAgICAgICAgc2VsZi5fYWNrX2RlbGF5ID0gS19HUkFOVUxB
UklUWQotICAgICAgICBzZWxmLl9jbG9zZV9hdDogT3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAg
ICAgICBzZWxmLl9jbG9zZV9ldmVudDogT3B0aW9uYWxbZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5h
dGVkXSA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29ubmVjdF9jYWxsZWQgPSBGYWxzZQotICAgICAg
ICBzZWxmLl9jcnlwdG9zOiBEaWN0W3Rscy5FcG9jaCwgQ3J5cHRvUGFpcl0gPSB7fQotICAgICAg
ICBzZWxmLl9jcnlwdG9fYnVmZmVyczogRGljdFt0bHMuRXBvY2gsIEJ1ZmZlcl0gPSB7fQotICAg
ICAgICBzZWxmLl9jcnlwdG9fc3RyZWFtczogRGljdFt0bHMuRXBvY2gsIFF1aWNTdHJlYW1dID0g
e30KLSAgICAgICAgc2VsZi5fZXZlbnRzOiBEZXF1ZVtldmVudHMuUXVpY0V2ZW50XSA9IGRlcXVl
KCkKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlX2NvbXBsZXRlID0gRmFsc2UKLSAgICAgICAgc2Vs
Zi5faGFuZHNoYWtlX2NvbmZpcm1lZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2hvc3RfY2lkcyA9
IFsKLSAgICAgICAgICAgIFF1aWNDb25uZWN0aW9uSWQoCi0gICAgICAgICAgICAgICAgY2lkPW9z
LnVyYW5kb20oY29uZmlndXJhdGlvbi5jb25uZWN0aW9uX2lkX2xlbmd0aCksCi0gICAgICAgICAg
ICAgICAgc2VxdWVuY2VfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0
X3Rva2VuPW9zLnVyYW5kb20oMTYpLAotICAgICAgICAgICAgICAgIHdhc19zZW50PVRydWUsCi0g
ICAgICAgICAgICApCi0gICAgICAgIF0KLSAgICAgICAgc2VsZi5ob3N0X2NpZCA9IHNlbGYuX2hv
c3RfY2lkc1swXS5jaWQKLSAgICAgICAgc2VsZi5faG9zdF9jaWRfc2VxID0gMQotICAgICAgICBz
ZWxmLl9sb2NhbF9hY2tfZGVsYXlfZXhwb25lbnQgPSAzCi0gICAgICAgIHNlbGYuX2xvY2FsX2Fj
dGl2ZV9jb25uZWN0aW9uX2lkX2xpbWl0ID0gOAotICAgICAgICBzZWxmLl9sb2NhbF9tYXhfZGF0
YSA9IGNvbmZpZ3VyYXRpb24ubWF4X2RhdGEKLSAgICAgICAgc2VsZi5fbG9jYWxfbWF4X2RhdGFf
c2VudCA9IGNvbmZpZ3VyYXRpb24ubWF4X2RhdGEKLSAgICAgICAgc2VsZi5fbG9jYWxfbWF4X2Rh
dGFfdXNlZCA9IDAKLSAgICAgICAgc2VsZi5fbG9jYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfbG9j
YWwgPSBjb25maWd1cmF0aW9uLm1heF9zdHJlYW1fZGF0YQotICAgICAgICBzZWxmLl9sb2NhbF9t
YXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUgPSBjb25maWd1cmF0aW9uLm1heF9zdHJlYW1fZGF0
YQotICAgICAgICBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtX2RhdGFfdW5pID0gY29uZmlndXJhdGlv
bi5tYXhfc3RyZWFtX2RhdGEKLSAgICAgICAgc2VsZi5fbG9jYWxfbWF4X3N0cmVhbXNfYmlkaSA9
IDEyOAotICAgICAgICBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtc191bmkgPSAxMjgKLSAgICAgICAg
c2VsZi5fbG9zc19hdDogT3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgICAgICBzZWxmLl9uZXR3
b3JrX3BhdGhzOiBMaXN0W1F1aWNOZXR3b3JrUGF0aF0gPSBbXQotICAgICAgICBzZWxmLl9vcmln
aW5hbF9jb25uZWN0aW9uX2lkID0gb3JpZ2luYWxfY29ubmVjdGlvbl9pZAotICAgICAgICBzZWxm
Ll9wYWNpbmdfYXQ6IE9wdGlvbmFsW2Zsb2F0XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGFja2V0
X251bWJlciA9IDAKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVyc19yZWNlaXZlZCA9IEZhbHNlCi0g
ICAgICAgIHNlbGYuX3BlZXJfY2lkID0gb3MudXJhbmRvbShjb25maWd1cmF0aW9uLmNvbm5lY3Rp
b25faWRfbGVuZ3RoKQotICAgICAgICBzZWxmLl9wZWVyX2NpZF9zZXE6IE9wdGlvbmFsW2ludF0g
PSBOb25lCi0gICAgICAgIHNlbGYuX3BlZXJfY2lkX2F2YWlsYWJsZTogTGlzdFtRdWljQ29ubmVj
dGlvbklkXSA9IFtdCi0gICAgICAgIHNlbGYuX3BlZXJfdG9rZW4gPSBiIiIKLSAgICAgICAgc2Vs
Zi5fcXVpY19sb2dnZXI6IE9wdGlvbmFsW1F1aWNMb2dnZXJUcmFjZV0gPSBOb25lCi0gICAgICAg
IHNlbGYuX3JlbW90ZV9hY2tfZGVsYXlfZXhwb25lbnQgPSAzCi0gICAgICAgIHNlbGYuX3JlbW90
ZV9hY3RpdmVfY29ubmVjdGlvbl9pZF9saW1pdCA9IDAKLSAgICAgICAgc2VsZi5fcmVtb3RlX2lk
bGVfdGltZW91dCA9IDAuMCAgIyBzZWNvbmRzCi0gICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfZGF0
YSA9IDAKLSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9kYXRhX3VzZWQgPSAwCi0gICAgICAgIHNl
bGYuX3JlbW90ZV9tYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZTogT3B0aW9uYWxbaW50XSA9IE5vbmUK
LSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsID0gMAotICAg
ICAgICBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlID0gMAotICAgICAg
ICBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbV9kYXRhX3VuaSA9IDAKLSAgICAgICAgc2VsZi5fcmVt
b3RlX21heF9zdHJlYW1zX2JpZGkgPSAwCi0gICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFt
c191bmkgPSAwCi0gICAgICAgIHNlbGYuX3NwYWNlczogRGljdFt0bHMuRXBvY2gsIFF1aWNQYWNr
ZXRTcGFjZV0gPSB7fQotICAgICAgICBzZWxmLl9zcGluX2JpdCA9IEZhbHNlCi0gICAgICAgIHNl
bGYuX3NwaW5faGlnaGVzdF9wbiA9IDAKLSAgICAgICAgc2VsZi5fc3RhdGUgPSBRdWljQ29ubmVj
dGlvblN0YXRlLkZJUlNURkxJR0hUCi0gICAgICAgIHNlbGYuX3N0YXRlbGVzc19yZXRyeV9jb3Vu
dCA9IDAKLSAgICAgICAgc2VsZi5fc3RyZWFtczogRGljdFtpbnQsIFF1aWNTdHJlYW1dID0ge30K
LSAgICAgICAgc2VsZi5fc3RyZWFtc19ibG9ja2VkX2JpZGk6IExpc3RbUXVpY1N0cmVhbV0gPSBb
XQotICAgICAgICBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfdW5pOiBMaXN0W1F1aWNTdHJlYW1dID0g
W10KLSAgICAgICAgc2VsZi5fdmVyc2lvbjogT3B0aW9uYWxbaW50XSA9IE5vbmUKLQotICAgICAg
ICAjIGxvZ2dpbmcKLSAgICAgICAgaWYgbG9nZ2VyX2Nvbm5lY3Rpb25faWQgaXMgTm9uZToKLSAg
ICAgICAgICAgIGxvZ2dlcl9jb25uZWN0aW9uX2lkID0gc2VsZi5fcGVlcl9jaWQKLSAgICAgICAg
c2VsZi5fbG9nZ2VyID0gUXVpY0Nvbm5lY3Rpb25BZGFwdGVyKAotICAgICAgICAgICAgbG9nZ2Vy
LCB7ImlkIjogZHVtcF9jaWQobG9nZ2VyX2Nvbm5lY3Rpb25faWQpfQotICAgICAgICApCi0gICAg
ICAgIGlmIGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXI6Ci0gICAgICAgICAgICBzZWxmLl9xdWlj
X2xvZ2dlciA9IGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIuc3RhcnRfdHJhY2UoCi0gICAgICAg
ICAgICAgICAgaXNfY2xpZW50PWNvbmZpZ3VyYXRpb24uaXNfY2xpZW50LCBvZGNpZD1sb2dnZXJf
Y29ubmVjdGlvbl9pZAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgbG9zcyByZWNvdmVyeQot
ICAgICAgICBzZWxmLl9sb3NzID0gUXVpY1BhY2tldFJlY292ZXJ5KAotICAgICAgICAgICAgaXNf
Y2xpZW50X3dpdGhvdXRfMXJ0dD1zZWxmLl9pc19jbGllbnQsCi0gICAgICAgICAgICBxdWljX2xv
Z2dlcj1zZWxmLl9xdWljX2xvZ2dlciwKLSAgICAgICAgICAgIHNlbmRfcHJvYmU9c2VsZi5fc2Vu
ZF9wcm9iZSwKLSAgICAgICAgKQotCi0gICAgICAgICMgdGhpbmdzIHRvIHNlbmQKLSAgICAgICAg
c2VsZi5fY2xvc2VfcGVuZGluZyA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2RhdGFncmFtc19wZW5k
aW5nOiBEZXF1ZVtieXRlc10gPSBkZXF1ZSgpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9kb25l
X3BlbmRpbmcgPSBGYWxzZQotICAgICAgICBzZWxmLl9waW5nX3BlbmRpbmc6IExpc3RbaW50XSA9
IFtdCi0gICAgICAgIHNlbGYuX3Byb2JlX3BlbmRpbmcgPSBGYWxzZQotICAgICAgICBzZWxmLl9y
ZXRpcmVfY29ubmVjdGlvbl9pZHM6IExpc3RbaW50XSA9IFtdCi0gICAgICAgIHNlbGYuX3N0cmVh
bXNfYmxvY2tlZF9wZW5kaW5nID0gRmFsc2UKLQotICAgICAgICAjIGNhbGxiYWNrcwotICAgICAg
ICBzZWxmLl9zZXNzaW9uX3RpY2tldF9mZXRjaGVyID0gc2Vzc2lvbl90aWNrZXRfZmV0Y2hlcgot
ICAgICAgICBzZWxmLl9zZXNzaW9uX3RpY2tldF9oYW5kbGVyID0gc2Vzc2lvbl90aWNrZXRfaGFu
ZGxlcgotCi0gICAgICAgICMgZnJhbWUgaGFuZGxlcnMKLSAgICAgICAgc2VsZi5fX2ZyYW1lX2hh
bmRsZXJzID0gewotICAgICAgICAgICAgMHgwMDogKHNlbGYuX2hhbmRsZV9wYWRkaW5nX2ZyYW1l
LCBFUE9DSFMoIklIMDEiKSksCi0gICAgICAgICAgICAweDAxOiAoc2VsZi5faGFuZGxlX3Bpbmdf
ZnJhbWUsIEVQT0NIUygiSUgwMSIpKSwKLSAgICAgICAgICAgIDB4MDI6IChzZWxmLl9oYW5kbGVf
YWNrX2ZyYW1lLCBFUE9DSFMoIklIMSIpKSwKLSAgICAgICAgICAgIDB4MDM6IChzZWxmLl9oYW5k
bGVfYWNrX2ZyYW1lLCBFUE9DSFMoIklIMSIpKSwKLSAgICAgICAgICAgIDB4MDQ6IChzZWxmLl9o
YW5kbGVfcmVzZXRfc3RyZWFtX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgw
NTogKHNlbGYuX2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWUsIEVQT0NIUygiMDEiKSksCi0gICAg
ICAgICAgICAweDA2OiAoc2VsZi5faGFuZGxlX2NyeXB0b19mcmFtZSwgRVBPQ0hTKCJJSDEiKSks
Ci0gICAgICAgICAgICAweDA3OiAoc2VsZi5faGFuZGxlX25ld190b2tlbl9mcmFtZSwgRVBPQ0hT
KCIxIikpLAotICAgICAgICAgICAgMHgwODogKHNlbGYuX2hhbmRsZV9zdHJlYW1fZnJhbWUsIEVQ
T0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDA5OiAoc2VsZi5faGFuZGxlX3N0cmVhbV9mcmFt
ZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MEE6IChzZWxmLl9oYW5kbGVfc3RyZWFt
X2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgwQjogKHNlbGYuX2hhbmRsZV9z
dHJlYW1fZnJhbWUsIEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDBDOiAoc2VsZi5faGFu
ZGxlX3N0cmVhbV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MEQ6IChzZWxm
Ll9oYW5kbGVfc3RyZWFtX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgwRTog
KHNlbGYuX2hhbmRsZV9zdHJlYW1fZnJhbWUsIEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAw
eDBGOiAoc2VsZi5faGFuZGxlX3N0cmVhbV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAg
ICAgIDB4MTA6IChzZWxmLl9oYW5kbGVfbWF4X2RhdGFfZnJhbWUsIEVQT0NIUygiMDEiKSksCi0g
ICAgICAgICAgICAweDExOiAoc2VsZi5faGFuZGxlX21heF9zdHJlYW1fZGF0YV9mcmFtZSwgRVBP
Q0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MTI6IChzZWxmLl9oYW5kbGVfbWF4X3N0cmVhbXNf
YmlkaV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MTM6IChzZWxmLl9oYW5k
bGVfbWF4X3N0cmVhbXNfdW5pX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgx
NDogKHNlbGYuX2hhbmRsZV9kYXRhX2Jsb2NrZWRfZnJhbWUsIEVQT0NIUygiMDEiKSksCi0gICAg
ICAgICAgICAweDE1OiAoc2VsZi5faGFuZGxlX3N0cmVhbV9kYXRhX2Jsb2NrZWRfZnJhbWUsIEVQ
T0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDE2OiAoc2VsZi5faGFuZGxlX3N0cmVhbXNfYmxv
Y2tlZF9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MTc6IChzZWxmLl9oYW5k
bGVfc3RyZWFtc19ibG9ja2VkX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgx
ODogKHNlbGYuX2hhbmRsZV9uZXdfY29ubmVjdGlvbl9pZF9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwK
LSAgICAgICAgICAgIDB4MTk6IChzZWxmLl9oYW5kbGVfcmV0aXJlX2Nvbm5lY3Rpb25faWRfZnJh
bWUsIEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDFBOiAoc2VsZi5faGFuZGxlX3BhdGhf
Y2hhbGxlbmdlX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgxQjogKHNlbGYu
X2hhbmRsZV9wYXRoX3Jlc3BvbnNlX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAg
MHgxQzogKHNlbGYuX2hhbmRsZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lLCBFUE9DSFMoIklIMSIp
KSwKLSAgICAgICAgICAgIDB4MUQ6IChzZWxmLl9oYW5kbGVfY29ubmVjdGlvbl9jbG9zZV9mcmFt
ZSwgRVBPQ0hTKCIxIikpLAotICAgICAgICAgICAgMHgxRTogKHNlbGYuX2hhbmRsZV9oYW5kc2hh
a2VfZG9uZV9mcmFtZSwgRVBPQ0hTKCIxIikpLAotICAgICAgICAgICAgMHgzMDogKHNlbGYuX2hh
bmRsZV9kYXRhZ3JhbV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MzE6IChz
ZWxmLl9oYW5kbGVfZGF0YWdyYW1fZnJhbWUsIEVQT0NIUygiMDEiKSksCi0gICAgICAgIH0KLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjb25maWd1cmF0aW9uKHNlbGYpIC0+IFF1aWNDb25maWd1
cmF0aW9uOgotICAgICAgICByZXR1cm4gc2VsZi5fY29uZmlndXJhdGlvbgotCi0gICAgZGVmIGNo
YW5nZV9jb25uZWN0aW9uX2lkKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBT
d2l0Y2ggdG8gdGhlIG5leHQgYXZhaWxhYmxlIGNvbm5lY3Rpb24gSUQgYW5kIHJldGlyZQotICAg
ICAgICB0aGUgcHJldmlvdXMgb25lLgotCi0gICAgICAgIEFmdGVyIGNhbGxpbmcgdGhpcyBtZXRo
b2QgY2FsbCA6bWV0aDpgZGF0YWdyYW1zX3RvX3NlbmRgIHRvIHJldHJpZXZlIGRhdGEKLSAgICAg
ICAgd2hpY2ggbmVlZHMgdG8gYmUgc2VudC4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYu
X3BlZXJfY2lkX2F2YWlsYWJsZToKLSAgICAgICAgICAgICMgcmV0aXJlIHByZXZpb3VzIENJRAot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICJSZXRpcmlu
ZyBDSUQgJXMgKCVkKSIsIGR1bXBfY2lkKHNlbGYuX3BlZXJfY2lkKSwgc2VsZi5fcGVlcl9jaWRf
c2VxCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9yZXRpcmVfY29ubmVjdGlvbl9p
ZHMuYXBwZW5kKHNlbGYuX3BlZXJfY2lkX3NlcSkKLQotICAgICAgICAgICAgIyBhc3NpZ24gbmV3
IENJRAotICAgICAgICAgICAgY29ubmVjdGlvbl9pZCA9IHNlbGYuX3BlZXJfY2lkX2F2YWlsYWJs
ZS5wb3AoMCkKLSAgICAgICAgICAgIHNlbGYuX3BlZXJfY2lkX3NlcSA9IGNvbm5lY3Rpb25faWQu
c2VxdWVuY2VfbnVtYmVyCi0gICAgICAgICAgICBzZWxmLl9wZWVyX2NpZCA9IGNvbm5lY3Rpb25f
aWQuY2lkCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAg
IlN3aXRjaGluZyB0byBDSUQgJXMgKCVkKSIsIGR1bXBfY2lkKHNlbGYuX3BlZXJfY2lkKSwgc2Vs
Zi5fcGVlcl9jaWRfc2VxCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgY2xvc2UoCi0gICAgICAg
IHNlbGYsCi0gICAgICAgIGVycm9yX2NvZGU6IGludCA9IFF1aWNFcnJvckNvZGUuTk9fRVJST1Is
Ci0gICAgICAgIGZyYW1lX3R5cGU6IE9wdGlvbmFsW2ludF0gPSBOb25lLAotICAgICAgICByZWFz
b25fcGhyYXNlOiBzdHIgPSAiIiwKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAg
ICBDbG9zZSB0aGUgY29ubmVjdGlvbi4KLQotICAgICAgICA6cGFyYW0gZXJyb3JfY29kZTogQW4g
ZXJyb3IgY29kZSBpbmRpY2F0aW5nIHdoeSB0aGUgY29ubmVjdGlvbiBpcwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmVpbmcgY2xvc2VkLgotICAgICAgICA6cGFyYW0gcmVhc29uX3BocmFz
ZTogQSBodW1hbi1yZWFkYWJsZSBleHBsYW5hdGlvbiBvZiB3aHkgdGhlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGlzIGJlaW5nIGNsb3NlZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGlmIHNlbGYuX3N0YXRlIG5vdCBpbiBFTkRfU1RBVEVTOgotICAgICAgICAgICAg
c2VsZi5fY2xvc2VfZXZlbnQgPSBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQoCi0gICAgICAg
ICAgICAgICAgZXJyb3JfY29kZT1lcnJvcl9jb2RlLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5
cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPXJlYXNvbl9waHJh
c2UsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9jbG9zZV9wZW5kaW5nID0gVHJ1
ZQotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZiwgYWRkcjogTmV0d29ya0FkZHJlc3MsIG5vdzogZmxv
YXQpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBJbml0aWF0ZSB0aGUgVExTIGhhbmRz
aGFrZS4KLQotICAgICAgICBUaGlzIG1ldGhvZCBjYW4gb25seSBiZSBjYWxsZWQgZm9yIGNsaWVu
dHMgYW5kIGEgc2luZ2xlIHRpbWUuCi0KLSAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhv
ZCBjYWxsIDptZXRoOmBkYXRhZ3JhbXNfdG9fc2VuZGAgdG8gcmV0cmlldmUgZGF0YQotICAgICAg
ICB3aGljaCBuZWVkcyB0byBiZSBzZW50LgotCi0gICAgICAgIDpwYXJhbSBhZGRyOiBUaGUgbmV0
d29yayBhZGRyZXNzIG9mIHRoZSByZW1vdGUgcGVlci4KLSAgICAgICAgOnBhcmFtIG5vdzogVGhl
IGN1cnJlbnQgdGltZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGFzc2VydCAoCi0gICAgICAgICAg
ICBzZWxmLl9pc19jbGllbnQgYW5kIG5vdCBzZWxmLl9jb25uZWN0X2NhbGxlZAotICAgICAgICAp
LCAiY29ubmVjdCgpIGNhbiBvbmx5IGJlIGNhbGxlZCBmb3IgY2xpZW50cyBhbmQgYSBzaW5nbGUg
dGltZSIKLSAgICAgICAgc2VsZi5fY29ubmVjdF9jYWxsZWQgPSBUcnVlCi0KLSAgICAgICAgc2Vs
Zi5fbmV0d29ya19wYXRocyA9IFtRdWljTmV0d29ya1BhdGgoYWRkciwgaXNfdmFsaWRhdGVkPVRy
dWUpXQotICAgICAgICBzZWxmLl92ZXJzaW9uID0gc2VsZi5fY29uZmlndXJhdGlvbi5zdXBwb3J0
ZWRfdmVyc2lvbnNbMF0KLSAgICAgICAgc2VsZi5fY29ubmVjdChub3c9bm93KQotCi0gICAgZGVm
IGRhdGFncmFtc190b19zZW5kKHNlbGYsIG5vdzogZmxvYXQpIC0+IExpc3RbVHVwbGVbYnl0ZXMs
IE5ldHdvcmtBZGRyZXNzXV06Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gYSBsaXN0IG9m
IGAoZGF0YSwgYWRkcilgIHR1cGxlcyBvZiBkYXRhZ3JhbXMgd2hpY2ggbmVlZCB0byBiZQotICAg
ICAgICBzZW50LCBhbmQgdGhlIG5ldHdvcmsgYWRkcmVzcyB0byB3aGljaCB0aGV5IG5lZWQgdG8g
YmUgc2VudC4KLQotICAgICAgICBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIGNhbGwgOm1ldGg6
YGdldF90aW1lcmAgdG8ga25vdyB3aGVuIHRoZSBuZXh0Ci0gICAgICAgIHRpbWVyIG5lZWRzIHRv
IGJlIHNldC4KLQotICAgICAgICA6cGFyYW0gbm93OiBUaGUgY3VycmVudCB0aW1lLgotICAgICAg
ICAiIiIKLSAgICAgICAgbmV0d29ya19wYXRoID0gc2VsZi5fbmV0d29ya19wYXRoc1swXQotCi0g
ICAgICAgIGlmIHNlbGYuX3N0YXRlIGluIEVORF9TVEFURVM6Ci0gICAgICAgICAgICByZXR1cm4g
W10KLQotICAgICAgICAjIGJ1aWxkIGRhdGFncmFtcwotICAgICAgICBidWlsZGVyID0gUXVpY1Bh
Y2tldEJ1aWxkZXIoCi0gICAgICAgICAgICBob3N0X2NpZD1zZWxmLmhvc3RfY2lkLAotICAgICAg
ICAgICAgaXNfY2xpZW50PXNlbGYuX2lzX2NsaWVudCwKLSAgICAgICAgICAgIHBhY2tldF9udW1i
ZXI9c2VsZi5fcGFja2V0X251bWJlciwKLSAgICAgICAgICAgIHBlZXJfY2lkPXNlbGYuX3BlZXJf
Y2lkLAotICAgICAgICAgICAgcGVlcl90b2tlbj1zZWxmLl9wZWVyX3Rva2VuLAotICAgICAgICAg
ICAgcXVpY19sb2dnZXI9c2VsZi5fcXVpY19sb2dnZXIsCi0gICAgICAgICAgICBzcGluX2JpdD1z
ZWxmLl9zcGluX2JpdCwKLSAgICAgICAgICAgIHZlcnNpb249c2VsZi5fdmVyc2lvbiwKLSAgICAg
ICAgKQotICAgICAgICBpZiBzZWxmLl9jbG9zZV9wZW5kaW5nOgotICAgICAgICAgICAgZm9yIGVw
b2NoLCBwYWNrZXRfdHlwZSBpbiAoCi0gICAgICAgICAgICAgICAgKHRscy5FcG9jaC5PTkVfUlRU
LCBQQUNLRVRfVFlQRV9PTkVfUlRUKSwKLSAgICAgICAgICAgICAgICAodGxzLkVwb2NoLkhBTkRT
SEFLRSwgUEFDS0VUX1RZUEVfSEFORFNIQUtFKSwKLSAgICAgICAgICAgICAgICAodGxzLkVwb2No
LklOSVRJQUwsIFBBQ0tFVF9UWVBFX0lOSVRJQUwpLAotICAgICAgICAgICAgKToKLSAgICAgICAg
ICAgICAgICBjcnlwdG8gPSBzZWxmLl9jcnlwdG9zW2Vwb2NoXQotICAgICAgICAgICAgICAgIGlm
IGNyeXB0by5zZW5kLmlzX3ZhbGlkKCk6Ci0gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuc3Rh
cnRfcGFja2V0KHBhY2tldF90eXBlLCBjcnlwdG8pCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3dyaXRlX2Nvbm5lY3Rpb25fY2xvc2VfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBi
dWlsZGVyPWJ1aWxkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPXNlbGYu
X2Nsb3NlX2V2ZW50LmVycm9yX2NvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPXNlbGYuX2Nsb3NlX2V2ZW50LmZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICByZWFzb25fcGhyYXNlPXNlbGYuX2Nsb3NlX2V2ZW50LnJlYXNvbl9waHJhc2UsCi0gICAgICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xvc2VfcGVuZGluZyA9
IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBzZWxmLl9jbG9z
ZV9iZWdpbihpc19pbml0aWF0b3I9VHJ1ZSwgbm93PW5vdykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICMgY29uZ2VzdGlvbiBjb250cm9sCi0gICAgICAgICAgICBidWlsZGVyLm1heF9mbGln
aHRfYnl0ZXMgPSAoCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9zcy5jb25nZXN0aW9uX3dpbmRv
dyAtIHNlbGYuX2xvc3MuYnl0ZXNfaW5fZmxpZ2h0Ci0gICAgICAgICAgICApCi0gICAgICAgICAg
ICBpZiBzZWxmLl9wcm9iZV9wZW5kaW5nIGFuZCBidWlsZGVyLm1heF9mbGlnaHRfYnl0ZXMgPCBQ
QUNLRVRfTUFYX1NJWkU6Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5tYXhfZmxpZ2h0X2J5dGVz
ID0gUEFDS0VUX01BWF9TSVpFCi0KLSAgICAgICAgICAgICMgbGltaXQgZGF0YSBvbiB1bi12YWxp
ZGF0ZWQgbmV0d29yayBwYXRocwotICAgICAgICAgICAgaWYgbm90IG5ldHdvcmtfcGF0aC5pc192
YWxpZGF0ZWQ6Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5tYXhfdG90YWxfYnl0ZXMgPSAoCi0g
ICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcGF0aC5ieXRlc19yZWNlaXZlZCAqIDMgLSBuZXR3
b3JrX3BhdGguYnl0ZXNfc2VudAotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9oYW5kc2hha2VfY29uZmlybWVkOgotICAg
ICAgICAgICAgICAgICAgICBmb3IgZXBvY2ggaW4gW3Rscy5FcG9jaC5JTklUSUFMLCB0bHMuRXBv
Y2guSEFORFNIQUtFXToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2hhbmRz
aGFrZShidWlsZGVyLCBlcG9jaCwgbm93KQotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2Fw
cGxpY2F0aW9uKGJ1aWxkZXIsIG5ldHdvcmtfcGF0aCwgbm93KQotICAgICAgICAgICAgZXhjZXB0
IFF1aWNQYWNrZXRCdWlsZGVyU3RvcDoKLSAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAg
ZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0KLSAgICAgICAgaWYgZGF0YWdy
YW1zOgotICAgICAgICAgICAgc2VsZi5fcGFja2V0X251bWJlciA9IGJ1aWxkZXIucGFja2V0X251
bWJlcgotCi0gICAgICAgICAgICAjIHJlZ2lzdGVyIHBhY2tldHMKLSAgICAgICAgICAgIHNlbnRf
aGFuZHNoYWtlID0gRmFsc2UKLSAgICAgICAgICAgIGZvciBwYWNrZXQgaW4gcGFja2V0czoKLSAg
ICAgICAgICAgICAgICBwYWNrZXQuc2VudF90aW1lID0gbm93Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9zcy5vbl9wYWNrZXRfc2VudCgKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0PXBhY2tl
dCwgc3BhY2U9c2VsZi5fc3BhY2VzW3BhY2tldC5lcG9jaF0KLSAgICAgICAgICAgICAgICApCi0g
ICAgICAgICAgICAgICAgaWYgcGFja2V0LmVwb2NoID09IHRscy5FcG9jaC5IQU5EU0hBS0U6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbnRfaGFuZHNoYWtlID0gVHJ1ZQotCi0gICAgICAgICAgICAg
ICAgIyBsb2cgcGFja2V0Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVu
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJ0cmFuc3BvcnQiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tldF9zZW50IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYWNrZXRfdHlwZSI6
IHNlbGYuX3F1aWNfbG9nZ2VyLnBhY2tldF90eXBlKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYWNrZXQucGFja2V0X3R5cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXIiOiB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJwYWNrZXRfbnVtYmVyIjogc3RyKHBhY2tldC5wYWNrZXRfbnVt
YmVyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhY2tldF9zaXplIjogcGFj
a2V0LnNlbnRfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY2lkIjog
ZHVtcF9jaWQoc2VsZi5ob3N0X2NpZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgaXNfbG9uZ19oZWFkZXIocGFja2V0LnBhY2tldF90eXBlKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGNpZCI6IGR1bXBfY2lkKHNlbGYuX3BlZXJfY2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmFtZXMiOiBwYWNrZXQucXVp
Y19sb2dnZXJfZnJhbWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGNoZWNrIGlmIHdlIGNhbiBkaXNjYXJkIGluaXRp
YWwga2V5cwotICAgICAgICAgICAgaWYgc2VudF9oYW5kc2hha2UgYW5kIHNlbGYuX2lzX2NsaWVu
dDoKLSAgICAgICAgICAgICAgICBzZWxmLl9kaXNjYXJkX2Vwb2NoKHRscy5FcG9jaC5JTklUSUFM
KQotCi0gICAgICAgICMgcmV0dXJuIGRhdGFncmFtcyB0byBzZW5kIGFuZCB0aGUgZGVzdGluYXRp
b24gbmV0d29yayBhZGRyZXNzCi0gICAgICAgIHJldCA9IFtdCi0gICAgICAgIGZvciBkYXRhZ3Jh
bSBpbiBkYXRhZ3JhbXM6Ci0gICAgICAgICAgICBieXRlX2xlbmd0aCA9IGxlbihkYXRhZ3JhbSkK
LSAgICAgICAgICAgIG5ldHdvcmtfcGF0aC5ieXRlc19zZW50ICs9IGJ5dGVfbGVuZ3RoCi0gICAg
ICAgICAgICByZXQuYXBwZW5kKChkYXRhZ3JhbSwgbmV0d29ya19wYXRoLmFkZHIpKQotCi0gICAg
ICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAgICAgICAgIGNhdGVn
b3J5PSJ0cmFuc3BvcnQiLAotICAgICAgICAgICAgICAgICAgICBldmVudD0iZGF0YWdyYW1zX3Nl
bnQiLAotICAgICAgICAgICAgICAgICAgICBkYXRhPXsiYnl0ZV9sZW5ndGgiOiBieXRlX2xlbmd0
aCwgImNvdW50IjogMX0sCi0gICAgICAgICAgICAgICAgKQotICAgICAgICByZXR1cm4gcmV0Ci0K
LSAgICBkZWYgZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChzZWxmLCBpc191bmlkaXJlY3Rp
b25hbD1GYWxzZSkgLT4gaW50OgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRoZSBzdHJl
YW0gSUQgZm9yIHRoZSBuZXh0IHN0cmVhbSBjcmVhdGVkIGJ5IHRoaXMgZW5kcG9pbnQuCi0gICAg
ICAgICIiIgotICAgICAgICBzdHJlYW1faWQgPSAoaW50KGlzX3VuaWRpcmVjdGlvbmFsKSA8PCAx
KSB8IGludChub3Qgc2VsZi5faXNfY2xpZW50KQotICAgICAgICB3aGlsZSBzdHJlYW1faWQgaW4g
c2VsZi5fc3RyZWFtczoKLSAgICAgICAgICAgIHN0cmVhbV9pZCArPSA0Ci0gICAgICAgIHJldHVy
biBzdHJlYW1faWQKLQotICAgIGRlZiBnZXRfdGltZXIoc2VsZikgLT4gT3B0aW9uYWxbZmxvYXRd
OgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSB0aW1l
ciBzaG91bGQgZmlyZSBvciBOb25lIGlmIG5vIHRpbWVyIGlzIG5lZWRlZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHRpbWVyX2F0ID0gc2VsZi5fY2xvc2VfYXQKLSAgICAgICAgaWYgc2VsZi5fc3Rh
dGUgbm90IGluIEVORF9TVEFURVM6Ci0gICAgICAgICAgICAjIGFjayB0aW1lcgotICAgICAgICAg
ICAgZm9yIHNwYWNlIGluIHNlbGYuX2xvc3Muc3BhY2VzOgotICAgICAgICAgICAgICAgIGlmIHNw
YWNlLmFja19hdCBpcyBub3QgTm9uZSBhbmQgc3BhY2UuYWNrX2F0IDwgdGltZXJfYXQ6Ci0gICAg
ICAgICAgICAgICAgICAgIHRpbWVyX2F0ID0gc3BhY2UuYWNrX2F0Ci0KLSAgICAgICAgICAgICMg
bG9zcyBkZXRlY3Rpb24gdGltZXIKLSAgICAgICAgICAgIHNlbGYuX2xvc3NfYXQgPSBzZWxmLl9s
b3NzLmdldF9sb3NzX2RldGVjdGlvbl90aW1lKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX2xvc3Nf
YXQgaXMgbm90IE5vbmUgYW5kIHNlbGYuX2xvc3NfYXQgPCB0aW1lcl9hdDoKLSAgICAgICAgICAg
ICAgICB0aW1lcl9hdCA9IHNlbGYuX2xvc3NfYXQKLQotICAgICAgICAgICAgIyBwYWNpbmcgdGlt
ZXIKLSAgICAgICAgICAgIGlmIHNlbGYuX3BhY2luZ19hdCBpcyBub3QgTm9uZSBhbmQgc2VsZi5f
cGFjaW5nX2F0IDwgdGltZXJfYXQ6Ci0gICAgICAgICAgICAgICAgdGltZXJfYXQgPSBzZWxmLl9w
YWNpbmdfYXQKLQotICAgICAgICByZXR1cm4gdGltZXJfYXQKLQotICAgIGRlZiBoYW5kbGVfdGlt
ZXIoc2VsZiwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRs
ZSB0aGUgdGltZXIuCi0KLSAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBjYWxsIDpt
ZXRoOmBkYXRhZ3JhbXNfdG9fc2VuZGAgdG8gcmV0cmlldmUgZGF0YQotICAgICAgICB3aGljaCBu
ZWVkcyB0byBiZSBzZW50LgotCi0gICAgICAgIDpwYXJhbSBub3c6IFRoZSBjdXJyZW50IHRpbWUu
Ci0gICAgICAgICIiIgotICAgICAgICAjIGVuZCBvZiBjbG9zaW5nIHBlcmlvZCBvciBpZGxlIHRp
bWVvdXQKLSAgICAgICAgaWYgbm93ID49IHNlbGYuX2Nsb3NlX2F0OgotICAgICAgICAgICAgaWYg
c2VsZi5fY2xvc2VfZXZlbnQgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9l
dmVudCA9IGV2ZW50cy5Db25uZWN0aW9uVGVybWluYXRlZCgKLSAgICAgICAgICAgICAgICAgICAg
ZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLklOVEVSTkFMX0VSUk9SLAotICAgICAgICAgICAgICAg
ICAgICBmcmFtZV90eXBlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9
IklkbGUgdGltZW91dCIsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5fY2xv
c2VfZW5kKCkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgbG9zcyBkZXRlY3Rpb24g
dGltZW91dAotICAgICAgICBpZiBzZWxmLl9sb3NzX2F0IGlzIG5vdCBOb25lIGFuZCBub3cgPj0g
c2VsZi5fbG9zc19hdDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygiTG9zcyBkZXRl
Y3Rpb24gdHJpZ2dlcmVkIikKLSAgICAgICAgICAgIHNlbGYuX2xvc3Mub25fbG9zc19kZXRlY3Rp
b25fdGltZW91dChub3c9bm93KQotCi0gICAgZGVmIG5leHRfZXZlbnQoc2VsZikgLT4gT3B0aW9u
YWxbZXZlbnRzLlF1aWNFdmVudF06Ci0gICAgICAgICIiIgotICAgICAgICBSZXRyaWV2ZSB0aGUg
bmV4dCBldmVudCBmcm9tIHRoZSBldmVudCBidWZmZXIuCi0KLSAgICAgICAgUmV0dXJucyBgTm9u
ZWAgaWYgdGhlcmUgYXJlIG5vIGJ1ZmZlcmVkIGV2ZW50cy4KLSAgICAgICAgIiIiCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9ldmVudHMucG9wbGVmdCgpCi0gICAgICAg
IGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBy
ZWNlaXZlX2RhdGFncmFtKHNlbGYsIGRhdGE6IGJ5dGVzLCBhZGRyOiBOZXR3b3JrQWRkcmVzcywg
bm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhbiBpbmNv
bWluZyBkYXRhZ3JhbS4KLQotICAgICAgICBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIGNhbGwg
Om1ldGg6YGRhdGFncmFtc190b19zZW5kYCB0byByZXRyaWV2ZSBkYXRhCi0gICAgICAgIHdoaWNo
IG5lZWRzIHRvIGJlIHNlbnQuCi0KLSAgICAgICAgOnBhcmFtIGRhdGE6IFRoZSBkYXRhZ3JhbSB3
aGljaCB3YXMgcmVjZWl2ZWQuCi0gICAgICAgIDpwYXJhbSBhZGRyOiBUaGUgbmV0d29yayBhZGRy
ZXNzIGZyb20gd2hpY2ggdGhlIGRhdGFncmFtIHdhcyByZWNlaXZlZC4KLSAgICAgICAgOnBhcmFt
IG5vdzogVGhlIGN1cnJlbnQgdGltZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMgc3RvcCBoYW5k
bGluZyBwYWNrZXRzIHdoZW4gY2xvc2luZwotICAgICAgICBpZiBzZWxmLl9zdGF0ZSBpbiBFTkRf
U1RBVEVTOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQo
Ci0gICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAgICAgICAgICAg
ZXZlbnQ9ImRhdGFncmFtc19yZWNlaXZlZCIsCi0gICAgICAgICAgICAgICAgZGF0YT17ImJ5dGVf
bGVuZ3RoIjogbGVuKGRhdGEpLCAiY291bnQiOiAxfSwKLSAgICAgICAgICAgICkKLQotICAgICAg
ICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICB3aGlsZSBub3QgYnVmLmVvZigpOgot
ICAgICAgICAgICAgc3RhcnRfb2ZmID0gYnVmLnRlbGwoKQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGhlYWRlciA9IHB1bGxfcXVpY19oZWFkZXIoCi0gICAgICAgICAgICAgICAg
ICAgIGJ1ZiwgaG9zdF9jaWRfbGVuZ3RoPXNlbGYuX2NvbmZpZ3VyYXRpb24uY29ubmVjdGlvbl9p
ZF9sZW5ndGgKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgIyBjaGVjayBkZXN0aW5h
dGlvbiBDSUQgbWF0Y2hlcwotICAgICAgICAgICAgZGVzdGluYXRpb25fY2lkX3NlcTogT3B0aW9u
YWxbaW50XSA9IE5vbmUKLSAgICAgICAgICAgIGZvciBjb25uZWN0aW9uX2lkIGluIHNlbGYuX2hv
c3RfY2lkczoKLSAgICAgICAgICAgICAgICBpZiBoZWFkZXIuZGVzdGluYXRpb25fY2lkID09IGNv
bm5lY3Rpb25faWQuY2lkOgotICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9jaWRfc2Vx
ID0gY29ubmVjdGlvbl9pZC5zZXF1ZW5jZV9udW1iZXIKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIGlmIHNlbGYuX2lzX2NsaWVudCBhbmQgZGVzdGluYXRpb25fY2lkX3Nl
cSBpcyBOb25lOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50PSJwYWNrZXRfZHJvcHBlZCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhPXsidHJpZ2dlciI6ICJ1bmtub3duX2Nvbm5lY3Rpb25faWQifSwKLSAgICAgICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAjIGNo
ZWNrIHByb3RvY29sIHZlcnNpb24KLSAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICBz
ZWxmLl9pc19jbGllbnQKLSAgICAgICAgICAgICAgICBhbmQgc2VsZi5fc3RhdGUgPT0gUXVpY0Nv
bm5lY3Rpb25TdGF0ZS5GSVJTVEZMSUdIVAotICAgICAgICAgICAgICAgIGFuZCBoZWFkZXIudmVy
c2lvbiA9PSBRdWljUHJvdG9jb2xWZXJzaW9uLk5FR09USUFUSU9OCi0gICAgICAgICAgICApOgot
ICAgICAgICAgICAgICAgICMgdmVyc2lvbiBuZWdvdGlhdGlvbgotICAgICAgICAgICAgICAgIHZl
cnNpb25zID0gW10KLSAgICAgICAgICAgICAgICB3aGlsZSBub3QgYnVmLmVvZigpOgotICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9ucy5hcHBlbmQoYnVmLnB1bGxfdWludDMyKCkpCi0gICAgICAg
ICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNhdGVnb3J5PSJ0cmFuc3BvcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ9
InBhY2tldF9yZWNlaXZlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0X3R5cGUiOiAidmVyc2lvbl9uZWdvdGlhdGlv
biIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlciI6IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInNjaWQiOiBkdW1wX2NpZChoZWFkZXIuc291cmNlX2NpZCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkY2lkIjogZHVtcF9jaWQoaGVhZGVy
LmRlc3RpbmF0aW9uX2NpZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVzIjogW10sCi0gICAgICAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgY29tbW9uID0g
c2V0KHNlbGYuX2NvbmZpZ3VyYXRpb24uc3VwcG9ydGVkX3ZlcnNpb25zKS5pbnRlcnNlY3Rpb24o
Ci0gICAgICAgICAgICAgICAgICAgIHZlcnNpb25zCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgIGlmIG5vdCBjb21tb246Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5lcnJvcigiQ291bGQgbm90IGZpbmQgYSBjb21tb24gcHJvdG9jb2wgdmVyc2lvbiIpCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2V2ZW50ID0gZXZlbnRzLkNvbm5lY3Rpb25UZXJt
aW5hdGVkKAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2Rl
LklOVEVSTkFMX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1Ob25l
LAotICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iQ291bGQgbm90IGZpbmQg
YSBjb21tb24gcHJvdG9jb2wgdmVyc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fY2xvc2VfZW5kKCkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IFF1aWNQcm90b2NvbFZlcnNpb24o
bWF4KGNvbW1vbikpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oIlJldHJ5aW5n
IHdpdGggJXMiLCBzZWxmLl92ZXJzaW9uKQotICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3Qo
bm93PW5vdykKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGVsaWYgKAotICAg
ICAgICAgICAgICAgIGhlYWRlci52ZXJzaW9uIGlzIG5vdCBOb25lCi0gICAgICAgICAgICAgICAg
YW5kIGhlYWRlci52ZXJzaW9uIG5vdCBpbiBzZWxmLl9jb25maWd1cmF0aW9uLnN1cHBvcnRlZF92
ZXJzaW9ucwotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICAjIHVuc3VwcG9ydGVkIHZl
cnNpb24KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAg
ICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICBldmVudD0icGFja2V0X2Ryb3BwZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YT17InRyaWdnZXIiOiAidW5zdXBwb3J0ZWRfdmVyc2lvbiJ9LAotICAgICAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX2lz
X2NsaWVudCBhbmQgaGVhZGVyLnBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX1JFVFJZOgotICAg
ICAgICAgICAgICAgICMgY2FsY3VsYXRlIHN0YXRlbGVzcyByZXRyeSBpbnRlZ3JpdHkgdGFnCi0g
ICAgICAgICAgICAgICAgaW50ZWdyaXR5X3RhZyA9IGdldF9yZXRyeV9pbnRlZ3JpdHlfdGFnKAot
ICAgICAgICAgICAgICAgICAgICBidWYuZGF0YV9zbGljZShzdGFydF9vZmYsIGJ1Zi50ZWxsKCkg
LSBSRVRSWV9JTlRFR1JJVFlfVEFHX1NJWkUpLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9w
ZWVyX2NpZCwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICBpZiAoCi0gICAg
ICAgICAgICAgICAgICAgIGhlYWRlci5kZXN0aW5hdGlvbl9jaWQgPT0gc2VsZi5ob3N0X2NpZAot
ICAgICAgICAgICAgICAgICAgICBhbmQgaGVhZGVyLmludGVncml0eV90YWcgPT0gaW50ZWdyaXR5
X3RhZwotICAgICAgICAgICAgICAgICAgICBhbmQgbm90IHNlbGYuX3N0YXRlbGVzc19yZXRyeV9j
b3VudAotICAgICAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3F1
aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVp
Y19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5
PSJ0cmFuc3BvcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50PSJwYWNrZXRf
cmVjZWl2ZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0X3R5cGUiOiAicmV0cnkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVyIjogewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInNjaWQiOiBkdW1wX2NpZChoZWFkZXIuc291cmNlX2NpZCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGNpZCI6IGR1bXBfY2lkKGhlYWRlci5k
ZXN0aW5hdGlvbl9jaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVzIjogW10sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9jb25uZWN0aW9uX2lkID0gc2VsZi5fcGVlcl9jaWQK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGVlcl9jaWQgPSBoZWFkZXIuc291cmNlX2NpZAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9wZWVyX3Rva2VuID0gaGVhZGVyLnRva2VuCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3N0YXRlbGVzc19yZXRyeV9jb3VudCArPSAxCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCJQZXJmb3JtaW5nIHN0YXRlbGVzcyByZXRy
eSIpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3Qobm93PW5vdykKLSAgICAgICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgbmV0d29ya19wYXRoID0gc2VsZi5fZmluZF9u
ZXR3b3JrX3BhdGgoYWRkcikKLQotICAgICAgICAgICAgIyBzZXJ2ZXIgaW5pdGlhbGl6YXRpb24K
LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pc19jbGllbnQgYW5kIHNlbGYuX3N0YXRlID09IFF1
aWNDb25uZWN0aW9uU3RhdGUuRklSU1RGTElHSFQ6Ci0gICAgICAgICAgICAgICAgYXNzZXJ0ICgK
LSAgICAgICAgICAgICAgICAgICAgaGVhZGVyLnBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX0lO
SVRJQUwKLSAgICAgICAgICAgICAgICApLCAiZmlyc3QgcGFja2V0IG11c3QgYmUgSU5JVElBTCIK
LSAgICAgICAgICAgICAgICBzZWxmLl9uZXR3b3JrX3BhdGhzID0gW25ldHdvcmtfcGF0aF0KLSAg
ICAgICAgICAgICAgICBzZWxmLl92ZXJzaW9uID0gUXVpY1Byb3RvY29sVmVyc2lvbihoZWFkZXIu
dmVyc2lvbikKLSAgICAgICAgICAgICAgICBzZWxmLl9pbml0aWFsaXplKGhlYWRlci5kZXN0aW5h
dGlvbl9jaWQpCi0KLSAgICAgICAgICAgICMgZGV0ZXJtaW5lIGNyeXB0byBhbmQgcGFja2V0IHNw
YWNlCi0gICAgICAgICAgICBlcG9jaCA9IGdldF9lcG9jaChoZWFkZXIucGFja2V0X3R5cGUpCi0g
ICAgICAgICAgICBjcnlwdG8gPSBzZWxmLl9jcnlwdG9zW2Vwb2NoXQotICAgICAgICAgICAgaWYg
ZXBvY2ggPT0gdGxzLkVwb2NoLlpFUk9fUlRUOgotICAgICAgICAgICAgICAgIHNwYWNlID0gc2Vs
Zi5fc3BhY2VzW3Rscy5FcG9jaC5PTkVfUlRUXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBzcGFjZSA9IHNlbGYuX3NwYWNlc1tlcG9jaF0KLQotICAgICAgICAgICAgIyBkZWNy
eXB0IHBhY2tldAotICAgICAgICAgICAgZW5jcnlwdGVkX29mZiA9IGJ1Zi50ZWxsKCkgLSBzdGFy
dF9vZmYKLSAgICAgICAgICAgIGVuZF9vZmYgPSBidWYudGVsbCgpICsgaGVhZGVyLnJlc3RfbGVu
Z3RoCi0gICAgICAgICAgICBidWYuc2VlayhlbmRfb2ZmKQotCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBwYWNrZXRfbnVtYmVy
ID0gY3J5cHRvLmRlY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgICAgICAgICBkYXRhW3N0YXJ0
X29mZjplbmRfb2ZmXSwgZW5jcnlwdGVkX29mZiwgc3BhY2UuZXhwZWN0ZWRfcGFja2V0X251bWJl
cgotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlVbmF2YWlsYWJsZUVy
cm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoZXhjKQotICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjYXRlZ29yeT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50PSJwYWNrZXRfZHJvcHBlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXsidHJp
Z2dlciI6ICJrZXlfdW5hdmFpbGFibGUifSwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBleGNlcHQgQ3J5cHRvRXJyb3IgYXMgZXhj
OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZyhleGMpCi0gICAgICAgICAgICAg
ICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGNh
dGVnb3J5PSJ0cmFuc3BvcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tl
dF9kcm9wcGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9eyJ0cmlnZ2VyIjogInBh
eWxvYWRfZGVjcnlwdF9lcnJvciJ9LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICAgICAgY29udGludWUKLQotICAgICAgICAgICAgIyBjaGVjayByZXNlcnZlZCBiaXRzCi0gICAg
ICAgICAgICBpZiBoZWFkZXIuaXNfbG9uZ19oZWFkZXI6Ci0gICAgICAgICAgICAgICAgcmVzZXJ2
ZWRfbWFzayA9IDB4MEMKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVzZXJ2
ZWRfbWFzayA9IDB4MTgKLSAgICAgICAgICAgIGlmIHBsYWluX2hlYWRlclswXSAmIHJlc2VydmVk
X21hc2s6Ci0gICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgKLSAgICAgICAgICAgICAgICAgICAg
ZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAgICAgICAg
ICAgICAgICAgZnJhbWVfdHlwZT1Ob25lLAotICAgICAgICAgICAgICAgICAgICByZWFzb25fcGhy
YXNlPSJSZXNlcnZlZCBiaXRzIG11c3QgYmUgemVybyIsCi0gICAgICAgICAgICAgICAgKQotICAg
ICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAjIHJhaXNlIGV4cGVjdGVkIHBhY2tl
dCBudW1iZXIKLSAgICAgICAgICAgIGlmIHBhY2tldF9udW1iZXIgPiBzcGFjZS5leHBlY3RlZF9w
YWNrZXRfbnVtYmVyOgotICAgICAgICAgICAgICAgIHNwYWNlLmV4cGVjdGVkX3BhY2tldF9udW1i
ZXIgPSBwYWNrZXRfbnVtYmVyICsgMQotCi0gICAgICAgICAgICAjIGxvZyBwYWNrZXQKLSAgICAg
ICAgICAgIHF1aWNfbG9nZ2VyX2ZyYW1lczogT3B0aW9uYWxbTGlzdFtEaWN0XV0gPSBOb25lCi0g
ICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBxdWljX2xvZ2dlcl9mcmFtZXMgPSBbXQotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNf
bG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9y
dCIsCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50PSJwYWNrZXRfcmVjZWl2ZWQiLAotICAgICAg
ICAgICAgICAgICAgICBkYXRhPXsKLSAgICAgICAgICAgICAgICAgICAgICAgICJwYWNrZXRfdHlw
ZSI6IHNlbGYuX3F1aWNfbG9nZ2VyLnBhY2tldF90eXBlKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlYWRlci5wYWNrZXRfdHlwZQotICAgICAgICAgICAgICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXIiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInBhY2tldF9udW1iZXIiOiBzdHIocGFja2V0X251bWJlciksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInBhY2tldF9zaXplIjogZW5kX29mZiAtIHN0YXJ0X29mZiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZGNpZCI6IGR1bXBfY2lkKGhlYWRlci5kZXN0aW5hdGlv
bl9jaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY2lkIjogZHVtcF9jaWQoaGVh
ZGVyLnNvdXJjZV9jaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJmcmFtZXMiOiBxdWljX2xvZ2dlcl9mcmFtZXMsCi0gICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGRpc2NhcmQgaW5p
dGlhbCBrZXlzIGFuZCBwYWNrZXQgc3BhY2UKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pc19j
bGllbnQgYW5kIGVwb2NoID09IHRscy5FcG9jaC5IQU5EU0hBS0U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fZGlzY2FyZF9lcG9jaCh0bHMuRXBvY2guSU5JVElBTCkKLQotICAgICAgICAgICAgIyB1
cGRhdGUgc3RhdGUKLSAgICAgICAgICAgIGlmIHNlbGYuX3BlZXJfY2lkX3NlcSBpcyBOb25lOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3BlZXJfY2lkID0gaGVhZGVyLnNvdXJjZV9jaWQKLSAgICAg
ICAgICAgICAgICBzZWxmLl9wZWVyX2NpZF9zZXEgPSAwCi0KLSAgICAgICAgICAgIGlmIHNlbGYu
X3N0YXRlID09IFF1aWNDb25uZWN0aW9uU3RhdGUuRklSU1RGTElHSFQ6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fc2V0X3N0YXRlKFF1aWNDb25uZWN0aW9uU3RhdGUuQ09OTkVDVEVEKQotCi0gICAg
ICAgICAgICAjIHVwZGF0ZSBzcGluIGJpdAotICAgICAgICAgICAgaWYgbm90IGhlYWRlci5pc19s
b25nX2hlYWRlciBhbmQgcGFja2V0X251bWJlciA+IHNlbGYuX3NwaW5faGlnaGVzdF9wbjoKLSAg
ICAgICAgICAgICAgICBzcGluX2JpdCA9IGdldF9zcGluX2JpdChwbGFpbl9oZWFkZXJbMF0pCi0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9zcGluX2JpdCA9IG5vdCBzcGluX2JpdAotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3NwaW5fYml0ID0gc3Bpbl9iaXQKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zcGluX2hpZ2hlc3RfcG4gPSBwYWNrZXRfbnVtYmVyCi0KLSAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgY2F0
ZWdvcnk9ImNvbm5lY3Rpdml0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBldmVudD0ic3Bp
bl9iaXRfdXBkYXRlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXsic3RhdGUiOiBz
ZWxmLl9zcGluX2JpdH0sCi0gICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBo
YW5kbGUgcGF5bG9hZAotICAgICAgICAgICAgY29udGV4dCA9IFF1aWNSZWNlaXZlQ29udGV4dCgK
LSAgICAgICAgICAgICAgICBlcG9jaD1lcG9jaCwKLSAgICAgICAgICAgICAgICBob3N0X2NpZD1o
ZWFkZXIuZGVzdGluYXRpb25fY2lkLAotICAgICAgICAgICAgICAgIG5ldHdvcmtfcGF0aD1uZXR3
b3JrX3BhdGgsCi0gICAgICAgICAgICAgICAgcXVpY19sb2dnZXJfZnJhbWVzPXF1aWNfbG9nZ2Vy
X2ZyYW1lcywKLSAgICAgICAgICAgICAgICB0aW1lPW5vdywKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nLCBpc19wcm9iaW5n
ID0gc2VsZi5fcGF5bG9hZF9yZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dCwg
cGxhaW5fcGF5bG9hZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGV4Y2VwdCBRdWlj
Q29ubmVjdGlvbkVycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIud2Fy
bmluZyhleGMpCi0gICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgKLSAgICAgICAgICAgICAgICAg
ICAgZXJyb3JfY29kZT1leGMuZXJyb3JfY29kZSwKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVf
dHlwZT1leGMuZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT1l
eGMucmVhc29uX3BocmFzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBpZiBzZWxm
Ll9zdGF0ZSBpbiBFTkRfU1RBVEVTIG9yIHNlbGYuX2Nsb3NlX3BlbmRpbmc6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgICMgdXBkYXRlIGlkbGUgdGltZW91dAotICAgICAg
ICAgICAgc2VsZi5fY2xvc2VfYXQgPSBub3cgKyBzZWxmLl9jb25maWd1cmF0aW9uLmlkbGVfdGlt
ZW91dAotCi0gICAgICAgICAgICAjIGhhbmRsZSBtaWdyYXRpb24KLSAgICAgICAgICAgIGlmICgK
LSAgICAgICAgICAgICAgICBub3Qgc2VsZi5faXNfY2xpZW50Ci0gICAgICAgICAgICAgICAgYW5k
IGNvbnRleHQuaG9zdF9jaWQgIT0gc2VsZi5ob3N0X2NpZAotICAgICAgICAgICAgICAgIGFuZCBl
cG9jaCA9PSB0bHMuRXBvY2guT05FX1JUVAotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICJQZWVyIHN3aXRjaGlu
ZyB0byBDSUQgJXMgKCVkKSIsCi0gICAgICAgICAgICAgICAgICAgIGR1bXBfY2lkKGNvbnRleHQu
aG9zdF9jaWQpLAotICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9jaWRfc2VxLAotICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBzZWxmLmhvc3RfY2lkID0gY29udGV4dC5o
b3N0X2NpZAotICAgICAgICAgICAgICAgIHNlbGYuY2hhbmdlX2Nvbm5lY3Rpb25faWQoKQotCi0g
ICAgICAgICAgICAjIHVwZGF0ZSBuZXR3b3JrIHBhdGgKLSAgICAgICAgICAgIGlmIG5vdCBuZXR3
b3JrX3BhdGguaXNfdmFsaWRhdGVkIGFuZCBlcG9jaCA9PSB0bHMuRXBvY2guSEFORFNIQUtFOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAg
Ik5ldHdvcmsgcGF0aCAlcyB2YWxpZGF0ZWQgYnkgaGFuZHNoYWtlIiwgbmV0d29ya19wYXRoLmFk
ZHIKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgbmV0d29ya19wYXRoLmlzX3Zh
bGlkYXRlZCA9IFRydWUKLSAgICAgICAgICAgIG5ldHdvcmtfcGF0aC5ieXRlc19yZWNlaXZlZCAr
PSBlbmRfb2ZmIC0gc3RhcnRfb2ZmCi0gICAgICAgICAgICBpZiBuZXR3b3JrX3BhdGggbm90IGlu
IHNlbGYuX25ldHdvcmtfcGF0aHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbmV0d29ya19wYXRo
cy5hcHBlbmQobmV0d29ya19wYXRoKQotICAgICAgICAgICAgaWR4ID0gc2VsZi5fbmV0d29ya19w
YXRocy5pbmRleChuZXR3b3JrX3BhdGgpCi0gICAgICAgICAgICBpZiBpZHggYW5kIG5vdCBpc19w
cm9iaW5nIGFuZCBwYWNrZXRfbnVtYmVyID4gc3BhY2UubGFyZ2VzdF9yZWNlaXZlZF9wYWNrZXQ6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCJOZXR3b3JrIHBhdGggJXMgcHJv
bW90ZWQiLCBuZXR3b3JrX3BhdGguYWRkcikKLSAgICAgICAgICAgICAgICBzZWxmLl9uZXR3b3Jr
X3BhdGhzLnBvcChpZHgpCi0gICAgICAgICAgICAgICAgc2VsZi5fbmV0d29ya19wYXRocy5pbnNl
cnQoMCwgbmV0d29ya19wYXRoKQotCi0gICAgICAgICAgICAjIHJlY29yZCBwYWNrZXQgYXMgcmVj
ZWl2ZWQKLSAgICAgICAgICAgIGlmIG5vdCBzcGFjZS5kaXNjYXJkZWQ6Ci0gICAgICAgICAgICAg
ICAgaWYgcGFja2V0X251bWJlciA+IHNwYWNlLmxhcmdlc3RfcmVjZWl2ZWRfcGFja2V0OgotICAg
ICAgICAgICAgICAgICAgICBzcGFjZS5sYXJnZXN0X3JlY2VpdmVkX3BhY2tldCA9IHBhY2tldF9u
dW1iZXIKLSAgICAgICAgICAgICAgICAgICAgc3BhY2UubGFyZ2VzdF9yZWNlaXZlZF90aW1lID0g
bm93Ci0gICAgICAgICAgICAgICAgc3BhY2UuYWNrX3F1ZXVlLmFkZChwYWNrZXRfbnVtYmVyKQot
ICAgICAgICAgICAgICAgIGlmIGlzX2Fja19lbGljaXRpbmcgYW5kIHNwYWNlLmFja19hdCBpcyBO
b25lOgotICAgICAgICAgICAgICAgICAgICBzcGFjZS5hY2tfYXQgPSBub3cgKyBzZWxmLl9hY2tf
ZGVsYXkKLQotICAgIGRlZiByZXF1ZXN0X2tleV91cGRhdGUoc2VsZikgLT4gTm9uZToKLSAgICAg
ICAgIiIiCi0gICAgICAgIFJlcXVlc3QgYW4gdXBkYXRlIG9mIHRoZSBlbmNyeXB0aW9uIGtleXMu
Ci0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgc2VsZi5faGFuZHNoYWtlX2NvbXBsZXRlLCAi
Y2Fubm90IGNoYW5nZSBrZXkgYmVmb3JlIGhhbmRzaGFrZSBjb21wbGV0ZXMiCi0gICAgICAgIHNl
bGYuX2NyeXB0b3NbdGxzLkVwb2NoLk9ORV9SVFRdLnVwZGF0ZV9rZXkoKQotCi0gICAgZGVmIHNl
bmRfcGluZyhzZWxmLCB1aWQ6IGludCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFNl
bmQgYSBQSU5HIGZyYW1lIHRvIHRoZSBwZWVyLgotCi0gICAgICAgIDpwYXJhbSB1aWQ6IEEgdW5p
cXVlIElEIGZvciB0aGlzIFBJTkcuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9waW5nX3Bl
bmRpbmcuYXBwZW5kKHVpZCkKLQotICAgIGRlZiBzZW5kX2RhdGFncmFtX2ZyYW1lKHNlbGYsIGRh
dGE6IGJ5dGVzKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgU2VuZCBhIERBVEFHUkFN
IGZyYW1lLgotCi0gICAgICAgIDpwYXJhbSBkYXRhOiBUaGUgZGF0YSB0byBiZSBzZW50LgotICAg
ICAgICAiIiIKLSAgICAgICAgc2VsZi5fZGF0YWdyYW1zX3BlbmRpbmcuYXBwZW5kKGRhdGEpCi0K
LSAgICBkZWYgc2VuZF9zdHJlYW1fZGF0YSgKLSAgICAgICAgc2VsZiwgc3RyZWFtX2lkOiBpbnQs
IGRhdGE6IGJ5dGVzLCBlbmRfc3RyZWFtOiBib29sID0gRmFsc2UKLSAgICApIC0+IE5vbmU6Ci0g
ICAgICAgICIiIgotICAgICAgICBTZW5kIGRhdGEgb24gdGhlIHNwZWNpZmljIHN0cmVhbS4KLQot
ICAgICAgICA6cGFyYW0gc3RyZWFtX2lkOiBUaGUgc3RyZWFtJ3MgSUQuCi0gICAgICAgIDpwYXJh
bSBkYXRhOiBUaGUgZGF0YSB0byBiZSBzZW50LgotICAgICAgICA6cGFyYW0gZW5kX3N0cmVhbTog
SWYgc2V0IHRvIGBUcnVlYCwgdGhlIEZJTiBiaXQgd2lsbCBiZSBzZXQuCi0gICAgICAgICIiIgot
ICAgICAgICBpZiBzdHJlYW1faXNfY2xpZW50X2luaXRpYXRlZChzdHJlYW1faWQpICE9IHNlbGYu
X2lzX2NsaWVudDoKLSAgICAgICAgICAgIGlmIHN0cmVhbV9pZCBub3QgaW4gc2VsZi5fc3RyZWFt
czoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3Qgc2VuZCBkYXRhIG9u
IHVua25vd24gcGVlci1pbml0aWF0ZWQgc3RyZWFtIikKLSAgICAgICAgICAgIGlmIHN0cmVhbV9p
c191bmlkaXJlY3Rpb25hbChzdHJlYW1faWQpOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJDYW5ub3Qgc2VuZCBkYXRhIG9uIHBlZXItaW5p
dGlhdGVkIHVuaWRpcmVjdGlvbmFsIHN0cmVhbSIKLSAgICAgICAgICAgICAgICApCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc3RyZWFtID0gc2VsZi5fc3RyZWFtc1tzdHJlYW1faWRdCi0g
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHNlbGYuX2NyZWF0ZV9zdHJlYW0o
c3RyZWFtX2lkPXN0cmVhbV9pZCkKLSAgICAgICAgICAgIHN0cmVhbSA9IHNlbGYuX3N0cmVhbXNb
c3RyZWFtX2lkXQotICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSwgZW5kX3N0cmVhbT1lbmRfc3Ry
ZWFtKQotCi0gICAgIyBQcml2YXRlCi0KLSAgICBkZWYgX2FscG5faGFuZGxlcihzZWxmLCBhbHBu
X3Byb3RvY29sOiBzdHIpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBDYWxsYmFjayB3
aGljaCBpcyBpbnZva2VkIGJ5IHRoZSBUTFMgZW5naW5lIHdoZW4gQUxQTiBuZWdvdGlhdGlvbiBj
b21wbGV0ZXMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKGV2ZW50
cy5Qcm90b2NvbE5lZ290aWF0ZWQoYWxwbl9wcm90b2NvbD1hbHBuX3Byb3RvY29sKSkKLQotICAg
IGRlZiBfYXNzZXJ0X3N0cmVhbV9jYW5fcmVjZWl2ZShzZWxmLCBmcmFtZV90eXBlOiBpbnQsIHN0
cmVhbV9pZDogaW50KSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2hlY2sgdGhlIHNw
ZWNpZmllZCBzdHJlYW0gY2FuIHJlY2VpdmUgZGF0YSBvciByYWlzZXMgYSBRdWljQ29ubmVjdGlv
bkVycm9yLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90IHNlbGYuX3N0cmVhbV9jYW5fcmVj
ZWl2ZShzdHJlYW1faWQpOgotICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigK
LSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuU1RSRUFNX1NUQVRFX0VS
Uk9SLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAg
ICAgICByZWFzb25fcGhyYXNlPSJTdHJlYW0gaXMgc2VuZC1vbmx5IiwKLSAgICAgICAgICAgICkK
LQotICAgIGRlZiBfYXNzZXJ0X3N0cmVhbV9jYW5fc2VuZChzZWxmLCBmcmFtZV90eXBlOiBpbnQs
IHN0cmVhbV9pZDogaW50KSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2hlY2sgdGhl
IHNwZWNpZmllZCBzdHJlYW0gY2FuIHNlbmQgZGF0YSBvciByYWlzZXMgYSBRdWljQ29ubmVjdGlv
bkVycm9yLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90IHNlbGYuX3N0cmVhbV9jYW5fc2Vu
ZChzdHJlYW1faWQpOgotICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAg
ICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuU1RSRUFNX1NUQVRFX0VSUk9S
LAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAg
ICByZWFzb25fcGhyYXNlPSJTdHJlYW0gaXMgcmVjZWl2ZS1vbmx5IiwKLSAgICAgICAgICAgICkK
LQotICAgIGRlZiBfY2xvc2VfYmVnaW4oc2VsZiwgaXNfaW5pdGlhdG9yOiBib29sLCBub3c6IGZs
b2F0KSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQmVnaW4gdGhlIGNsb3NlIHByb2Nl
ZHVyZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2Nsb3NlX2F0ID0gbm93ICsgMyAqIHNl
bGYuX2xvc3MuZ2V0X3Byb2JlX3RpbWVvdXQoKQotICAgICAgICBpZiBpc19pbml0aWF0b3I6Ci0g
ICAgICAgICAgICBzZWxmLl9zZXRfc3RhdGUoUXVpY0Nvbm5lY3Rpb25TdGF0ZS5DTE9TSU5HKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc2V0X3N0YXRlKFF1aWNDb25uZWN0aW9u
U3RhdGUuRFJBSU5JTkcpCi0KLSAgICBkZWYgX2Nsb3NlX2VuZChzZWxmKSAtPiBOb25lOgotICAg
ICAgICAiIiIKLSAgICAgICAgRW5kIHRoZSBjbG9zZSBwcm9jZWR1cmUuCi0gICAgICAgICIiIgot
ICAgICAgICBzZWxmLl9jbG9zZV9hdCA9IE5vbmUKLSAgICAgICAgZm9yIGVwb2NoIGluIHNlbGYu
X3NwYWNlcy5rZXlzKCk6Ci0gICAgICAgICAgICBzZWxmLl9kaXNjYXJkX2Vwb2NoKGVwb2NoKQot
ICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKHNlbGYuX2Nsb3NlX2V2ZW50KQotICAgICAgICBz
ZWxmLl9zZXRfc3RhdGUoUXVpY0Nvbm5lY3Rpb25TdGF0ZS5URVJNSU5BVEVEKQotCi0gICAgICAg
ICMgc2lnbmFsIGxvZyBlbmQKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLmVuZF90cmFj
ZShzZWxmLl9xdWljX2xvZ2dlcikKLSAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyID0gTm9u
ZQotCi0gICAgZGVmIF9jb25uZWN0KHNlbGYsIG5vdzogZmxvYXQpIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBTdGFydCB0aGUgY2xpZW50IGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGFzc2VydCBzZWxmLl9pc19jbGllbnQKLQotICAgICAgICBzZWxmLl9jbG9zZV9hdCA9
IG5vdyArIHNlbGYuX2NvbmZpZ3VyYXRpb24uaWRsZV90aW1lb3V0Ci0gICAgICAgIHNlbGYuX2lu
aXRpYWxpemUoc2VsZi5fcGVlcl9jaWQpCi0KLSAgICAgICAgc2VsZi50bHMuaGFuZGxlX21lc3Nh
Z2UoYiIiLCBzZWxmLl9jcnlwdG9fYnVmZmVycykKLSAgICAgICAgc2VsZi5fcHVzaF9jcnlwdG9f
ZGF0YSgpCi0KLSAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX2lkOiBpbnQpIC0+
IFF1aWNTdHJlYW06Ci0gICAgICAgICIiIgotICAgICAgICBDcmVhdGUgYSBRVUlDIHN0cmVhbSBp
biBvcmRlciB0byBzZW5kIGRhdGEgdG8gdGhlIHBlZXIuCi0gICAgICAgICIiIgotICAgICAgICAj
IGRldGVybWluZSBsaW1pdHMKLSAgICAgICAgaWYgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsKHN0
cmVhbV9pZCk6Ci0gICAgICAgICAgICBtYXhfc3RyZWFtX2RhdGFfbG9jYWwgPSAwCi0gICAgICAg
ICAgICBtYXhfc3RyZWFtX2RhdGFfcmVtb3RlID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1fZGF0
YV91bmkKLSAgICAgICAgICAgIG1heF9zdHJlYW1zID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1z
X3VuaQotICAgICAgICAgICAgc3RyZWFtc19ibG9ja2VkID0gc2VsZi5fc3RyZWFtc19ibG9ja2Vk
X3VuaQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX2xvY2FsID0g
c2VsZi5fbG9jYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfbG9jYWwKLSAgICAgICAgICAgIG1heF9z
dHJlYW1fZGF0YV9yZW1vdGUgPSBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVt
b3RlCi0gICAgICAgICAgICBtYXhfc3RyZWFtcyA9IHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFtc19i
aWRpCi0gICAgICAgICAgICBzdHJlYW1zX2Jsb2NrZWQgPSBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRf
YmlkaQotCi0gICAgICAgICMgY3JlYXRlIHN0cmVhbQotICAgICAgICBzdHJlYW0gPSBzZWxmLl9z
dHJlYW1zW3N0cmVhbV9pZF0gPSBRdWljU3RyZWFtKAotICAgICAgICAgICAgc3RyZWFtX2lkPXN0
cmVhbV9pZCwKLSAgICAgICAgICAgIG1heF9zdHJlYW1fZGF0YV9sb2NhbD1tYXhfc3RyZWFtX2Rh
dGFfbG9jYWwsCi0gICAgICAgICAgICBtYXhfc3RyZWFtX2RhdGFfcmVtb3RlPW1heF9zdHJlYW1f
ZGF0YV9yZW1vdGUsCi0gICAgICAgICkKLQotICAgICAgICAjIG1hcmsgc3RyZWFtIGFzIGJsb2Nr
ZWQgaWYgbmVlZGVkCi0gICAgICAgIGlmIHN0cmVhbV9pZCAvLyA0ID49IG1heF9zdHJlYW1zOgot
ICAgICAgICAgICAgc3RyZWFtLmlzX2Jsb2NrZWQgPSBUcnVlCi0gICAgICAgICAgICBzdHJlYW1z
X2Jsb2NrZWQuYXBwZW5kKHN0cmVhbSkKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbXNfYmxvY2tl
ZF9wZW5kaW5nID0gVHJ1ZQotCi0gICAgICAgIHJldHVybiBzdHJlYW0KLQotICAgIGRlZiBfZGlz
Y2FyZF9lcG9jaChzZWxmLCBlcG9jaDogdGxzLkVwb2NoKSAtPiBOb25lOgotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoIkRpc2NhcmRpbmcgZXBvY2ggJXMiLCBlcG9jaCkKLSAgICAgICAgc2Vs
Zi5fY3J5cHRvc1tlcG9jaF0udGVhcmRvd24oKQotICAgICAgICBzZWxmLl9sb3NzLmRpc2NhcmRf
c3BhY2Uoc2VsZi5fc3BhY2VzW2Vwb2NoXSkKLSAgICAgICAgc2VsZi5fc3BhY2VzW2Vwb2NoXS5k
aXNjYXJkZWQgPSBUcnVlCi0KLSAgICBkZWYgX2ZpbmRfbmV0d29ya19wYXRoKHNlbGYsIGFkZHI6
IE5ldHdvcmtBZGRyZXNzKSAtPiBRdWljTmV0d29ya1BhdGg6Ci0gICAgICAgICMgY2hlY2sgZXhp
c3RpbmcgbmV0d29yayBwYXRocwotICAgICAgICBmb3IgaWR4LCBuZXR3b3JrX3BhdGggaW4gZW51
bWVyYXRlKHNlbGYuX25ldHdvcmtfcGF0aHMpOgotICAgICAgICAgICAgaWYgbmV0d29ya19wYXRo
LmFkZHIgPT0gYWRkcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV0d29ya19wYXRoCi0KLSAg
ICAgICAgIyBuZXcgbmV0d29yayBwYXRoCi0gICAgICAgIG5ldHdvcmtfcGF0aCA9IFF1aWNOZXR3
b3JrUGF0aChhZGRyKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoIk5ldHdvcmsgcGF0aCAl
cyBkaXNjb3ZlcmVkIiwgbmV0d29ya19wYXRoLmFkZHIpCi0gICAgICAgIHJldHVybiBuZXR3b3Jr
X3BhdGgKLQotICAgIGRlZiBfZ2V0X29yX2NyZWF0ZV9zdHJlYW0oc2VsZiwgZnJhbWVfdHlwZTog
aW50LCBzdHJlYW1faWQ6IGludCkgLT4gUXVpY1N0cmVhbToKLSAgICAgICAgIiIiCi0gICAgICAg
IEdldCBvciBjcmVhdGUgYSBzdHJlYW0gaW4gcmVzcG9uc2UgdG8gYSByZWNlaXZlZCBmcmFtZS4K
LSAgICAgICAgIiIiCi0gICAgICAgIHN0cmVhbSA9IHNlbGYuX3N0cmVhbXMuZ2V0KHN0cmVhbV9p
ZCwgTm9uZSkKLSAgICAgICAgaWYgc3RyZWFtIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIGNoZWNr
IGluaXRpYXRvcgotICAgICAgICAgICAgaWYgc3RyZWFtX2lzX2NsaWVudF9pbml0aWF0ZWQoc3Ry
ZWFtX2lkKSA9PSBzZWxmLl9pc19jbGllbnQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUXVpY0Nv
bm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JD
b2RlLlNUUkVBTV9TVEFURV9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1m
cmFtZV90eXBlLAotICAgICAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJXcm9uZyBzdHJl
YW0gaW5pdGlhdG9yIiwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgZGV0ZXJt
aW5lIGxpbWl0cwotICAgICAgICAgICAgaWYgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsKHN0cmVh
bV9pZCk6Ci0gICAgICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX2xvY2FsID0gc2VsZi5fbG9j
YWxfbWF4X3N0cmVhbV9kYXRhX3VuaQotICAgICAgICAgICAgICAgIG1heF9zdHJlYW1fZGF0YV9y
ZW1vdGUgPSAwCi0gICAgICAgICAgICAgICAgbWF4X3N0cmVhbXMgPSBzZWxmLl9sb2NhbF9tYXhf
c3RyZWFtc191bmkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWF4X3N0cmVh
bV9kYXRhX2xvY2FsID0gc2VsZi5fbG9jYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlCi0g
ICAgICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9IHNlbGYuX3JlbW90ZV9tYXhf
c3RyZWFtX2RhdGFfYmlkaV9sb2NhbAotICAgICAgICAgICAgICAgIG1heF9zdHJlYW1zID0gc2Vs
Zi5fbG9jYWxfbWF4X3N0cmVhbXNfYmlkaQotCi0gICAgICAgICAgICAjIGNoZWNrIG1heCBzdHJl
YW1zCi0gICAgICAgICAgICBpZiBzdHJlYW1faWQgLy8gNCA+PSBtYXhfc3RyZWFtczoKLSAgICAg
ICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAg
ICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuU1RSRUFNX0xJTUlUX0VSUk9SLAotICAgICAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJl
YXNvbl9waHJhc2U9IlRvbyBtYW55IHN0cmVhbXMgb3BlbiIsCi0gICAgICAgICAgICAgICAgKQot
Ci0gICAgICAgICAgICAjIGNyZWF0ZSBzdHJlYW0KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygiU3RyZWFtICVkIGNyZWF0ZWQgYnkgcGVlciIgJSBzdHJlYW1faWQpCi0gICAgICAgICAg
ICBzdHJlYW0gPSBzZWxmLl9zdHJlYW1zW3N0cmVhbV9pZF0gPSBRdWljU3RyZWFtKAotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgbWF4X3N0cmVh
bV9kYXRhX2xvY2FsPW1heF9zdHJlYW1fZGF0YV9sb2NhbCwKLSAgICAgICAgICAgICAgICBtYXhf
c3RyZWFtX2RhdGFfcmVtb3RlPW1heF9zdHJlYW1fZGF0YV9yZW1vdGUsCi0gICAgICAgICAgICAp
Ci0gICAgICAgIHJldHVybiBzdHJlYW0KLQotICAgIGRlZiBfaGFuZGxlX3Nlc3Npb25fdGlja2V0
KHNlbGYsIHNlc3Npb25fdGlja2V0OiB0bHMuU2Vzc2lvblRpY2tldCkgLT4gTm9uZToKLSAgICAg
ICAgaWYgKAotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXQubWF4X2Vhcmx5X2RhdGFfc2l6ZSBp
cyBub3QgTm9uZQotICAgICAgICAgICAgYW5kIHNlc3Npb25fdGlja2V0Lm1heF9lYXJseV9kYXRh
X3NpemUgIT0gTUFYX0VBUkxZX0RBVEEKLSAgICAgICAgKToKLSAgICAgICAgICAgIHJhaXNlIFF1
aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JD
b2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlPVF1aWNG
cmFtZVR5cGUuQ1JZUFRPLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IkludmFsaWQg
bWF4X2Vhcmx5X2RhdGEgdmFsdWUgJXMiCi0gICAgICAgICAgICAgICAgJSBzZXNzaW9uX3RpY2tl
dC5tYXhfZWFybHlfZGF0YV9zaXplLAotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLl9zZXNz
aW9uX3RpY2tldF9oYW5kbGVyKHNlc3Npb25fdGlja2V0KQotCi0gICAgZGVmIF9pbml0aWFsaXpl
KHNlbGYsIHBlZXJfY2lkOiBieXRlcykgLT4gTm9uZToKLSAgICAgICAgIyBUTFMKLSAgICAgICAg
c2VsZi50bHMgPSB0bHMuQ29udGV4dCgKLSAgICAgICAgICAgIGFscG5fcHJvdG9jb2xzPXNlbGYu
X2NvbmZpZ3VyYXRpb24uYWxwbl9wcm90b2NvbHMsCi0gICAgICAgICAgICBjYWRhdGE9c2VsZi5f
Y29uZmlndXJhdGlvbi5jYWRhdGEsCi0gICAgICAgICAgICBjYWZpbGU9c2VsZi5fY29uZmlndXJh
dGlvbi5jYWZpbGUsCi0gICAgICAgICAgICBjYXBhdGg9c2VsZi5fY29uZmlndXJhdGlvbi5jYXBh
dGgsCi0gICAgICAgICAgICBpc19jbGllbnQ9c2VsZi5faXNfY2xpZW50LAotICAgICAgICAgICAg
bG9nZ2VyPXNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgIG1heF9lYXJseV9kYXRhPU5vbmUgaWYg
c2VsZi5faXNfY2xpZW50IGVsc2UgTUFYX0VBUkxZX0RBVEEsCi0gICAgICAgICAgICBzZXJ2ZXJf
bmFtZT1zZWxmLl9jb25maWd1cmF0aW9uLnNlcnZlcl9uYW1lLAotICAgICAgICAgICAgdmVyaWZ5
X21vZGU9c2VsZi5fY29uZmlndXJhdGlvbi52ZXJpZnlfbW9kZSwKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLnRscy5jZXJ0aWZpY2F0ZSA9IHNlbGYuX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGUK
LSAgICAgICAgc2VsZi50bHMuY2VydGlmaWNhdGVfY2hhaW4gPSBzZWxmLl9jb25maWd1cmF0aW9u
LmNlcnRpZmljYXRlX2NoYWluCi0gICAgICAgIHNlbGYudGxzLmNlcnRpZmljYXRlX3ByaXZhdGVf
a2V5ID0gc2VsZi5fY29uZmlndXJhdGlvbi5wcml2YXRlX2tleQotICAgICAgICBzZWxmLnRscy5o
YW5kc2hha2VfZXh0ZW5zaW9ucyA9IFsKLSAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICB0
bHMuRXh0ZW5zaW9uVHlwZS5RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAgICAgICAg
ICAgIHNlbGYuX3NlcmlhbGl6ZV90cmFuc3BvcnRfcGFyYW1ldGVycygpLAotICAgICAgICAgICAg
KQotICAgICAgICBdCi0KLSAgICAgICAgIyBUTFMgc2Vzc2lvbiByZXN1bXB0aW9uCi0gICAgICAg
IHNlc3Npb25fdGlja2V0ID0gc2VsZi5fY29uZmlndXJhdGlvbi5zZXNzaW9uX3RpY2tldAotICAg
ICAgICBpZiAoCi0gICAgICAgICAgICBzZWxmLl9pc19jbGllbnQKLSAgICAgICAgICAgIGFuZCBz
ZXNzaW9uX3RpY2tldCBpcyBub3QgTm9uZQotICAgICAgICAgICAgYW5kIHNlc3Npb25fdGlja2V0
LmlzX3ZhbGlkCi0gICAgICAgICAgICBhbmQgc2Vzc2lvbl90aWNrZXQuc2VydmVyX25hbWUgPT0g
c2VsZi5fY29uZmlndXJhdGlvbi5zZXJ2ZXJfbmFtZQotICAgICAgICApOgotICAgICAgICAgICAg
c2VsZi50bHMuc2Vzc2lvbl90aWNrZXQgPSBzZWxmLl9jb25maWd1cmF0aW9uLnNlc3Npb25fdGlj
a2V0Ci0KLSAgICAgICAgICAgICMgcGFyc2Ugc2F2ZWQgUVVJQyB0cmFuc3BvcnQgcGFyYW1ldGVy
cyAtIGZvciAwLVJUVAotICAgICAgICAgICAgaWYgc2Vzc2lvbl90aWNrZXQubWF4X2Vhcmx5X2Rh
dGFfc2l6ZSA9PSBNQVhfRUFSTFlfREFUQToKLSAgICAgICAgICAgICAgICBmb3IgZXh0X3R5cGUs
IGV4dF9kYXRhIGluIHNlc3Npb25fdGlja2V0Lm90aGVyX2V4dGVuc2lvbnM6Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIGV4dF90eXBlID09IHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJBTlNQT1JU
X1BBUkFNRVRFUlM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZV90cmFuc3Bv
cnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRfZGF0YSwgZnJv
bV9zZXNzaW9uX3RpY2tldD1UcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICMgVExTIGNhbGxiYWNrcwotICAgICAg
ICBzZWxmLnRscy5hbHBuX2NiID0gc2VsZi5fYWxwbl9oYW5kbGVyCi0gICAgICAgIGlmIHNlbGYu
X3Nlc3Npb25fdGlja2V0X2ZldGNoZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLnRs
cy5nZXRfc2Vzc2lvbl90aWNrZXRfY2IgPSBzZWxmLl9zZXNzaW9uX3RpY2tldF9mZXRjaGVyCi0g
ICAgICAgIGlmIHNlbGYuX3Nlc3Npb25fdGlja2V0X2hhbmRsZXIgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLnRscy5uZXdfc2Vzc2lvbl90aWNrZXRfY2IgPSBzZWxmLl9oYW5kbGVfc2Vz
c2lvbl90aWNrZXQKLSAgICAgICAgc2VsZi50bHMudXBkYXRlX3RyYWZmaWNfa2V5X2NiID0gc2Vs
Zi5fdXBkYXRlX3RyYWZmaWNfa2V5Ci0KLSAgICAgICAgIyBwYWNrZXQgc3BhY2VzCi0gICAgICAg
IHNlbGYuX2NyeXB0b3MgPSB7Ci0gICAgICAgICAgICB0bHMuRXBvY2guSU5JVElBTDogQ3J5cHRv
UGFpcigpLAotICAgICAgICAgICAgdGxzLkVwb2NoLlpFUk9fUlRUOiBDcnlwdG9QYWlyKCksCi0g
ICAgICAgICAgICB0bHMuRXBvY2guSEFORFNIQUtFOiBDcnlwdG9QYWlyKCksCi0gICAgICAgICAg
ICB0bHMuRXBvY2guT05FX1JUVDogQ3J5cHRvUGFpcigpLAotICAgICAgICB9Ci0gICAgICAgIHNl
bGYuX2NyeXB0b19idWZmZXJzID0gewotICAgICAgICAgICAgdGxzLkVwb2NoLklOSVRJQUw6IEJ1
ZmZlcihjYXBhY2l0eT1DUllQVE9fQlVGRkVSX1NJWkUpLAotICAgICAgICAgICAgdGxzLkVwb2No
LkhBTkRTSEFLRTogQnVmZmVyKGNhcGFjaXR5PUNSWVBUT19CVUZGRVJfU0laRSksCi0gICAgICAg
ICAgICB0bHMuRXBvY2guT05FX1JUVDogQnVmZmVyKGNhcGFjaXR5PUNSWVBUT19CVUZGRVJfU0la
RSksCi0gICAgICAgIH0KLSAgICAgICAgc2VsZi5fY3J5cHRvX3N0cmVhbXMgPSB7Ci0gICAgICAg
ICAgICB0bHMuRXBvY2guSU5JVElBTDogUXVpY1N0cmVhbSgpLAotICAgICAgICAgICAgdGxzLkVw
b2NoLkhBTkRTSEFLRTogUXVpY1N0cmVhbSgpLAotICAgICAgICAgICAgdGxzLkVwb2NoLk9ORV9S
VFQ6IFF1aWNTdHJlYW0oKSwKLSAgICAgICAgfQotICAgICAgICBzZWxmLl9zcGFjZXMgPSB7Ci0g
ICAgICAgICAgICB0bHMuRXBvY2guSU5JVElBTDogUXVpY1BhY2tldFNwYWNlKCksCi0gICAgICAg
ICAgICB0bHMuRXBvY2guSEFORFNIQUtFOiBRdWljUGFja2V0U3BhY2UoKSwKLSAgICAgICAgICAg
IHRscy5FcG9jaC5PTkVfUlRUOiBRdWljUGFja2V0U3BhY2UoKSwKLSAgICAgICAgfQotCi0gICAg
ICAgIHNlbGYuX2NyeXB0b3NbdGxzLkVwb2NoLklOSVRJQUxdLnNldHVwX2luaXRpYWwoCi0gICAg
ICAgICAgICBjaWQ9cGVlcl9jaWQsIGlzX2NsaWVudD1zZWxmLl9pc19jbGllbnQsIHZlcnNpb249
c2VsZi5fdmVyc2lvbgotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5fbG9zcy5zcGFjZXMgPSBs
aXN0KHNlbGYuX3NwYWNlcy52YWx1ZXMoKSkKLSAgICAgICAgc2VsZi5fcGFja2V0X251bWJlciA9
IDAKLQotICAgIGRlZiBfaGFuZGxlX2Fja19mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDog
UXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAt
PiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGFuIEFDSyBmcmFtZS4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGFja19yYW5nZXNldCwgYWNrX2RlbGF5X2VuY29kZWQgPSBwdWxsX2Fj
a19mcmFtZShidWYpCi0gICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gUXVpY0ZyYW1lVHlwZS5BQ0tf
RUNOOgotICAgICAgICAgICAgYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICAgICAgYnVmLnB1
bGxfdWludF92YXIoKQotICAgICAgICAgICAgYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBh
Y2tfZGVsYXkgPSAoYWNrX2RlbGF5X2VuY29kZWQgPDwgc2VsZi5fcmVtb3RlX2Fja19kZWxheV9l
eHBvbmVudCkgLyAxMDAwMDAwCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2Vs
Zi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9n
Z2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5j
b2RlX2Fja19mcmFtZShhY2tfcmFuZ2VzZXQsIGFja19kZWxheSkKLSAgICAgICAgICAgICkKLQot
ICAgICAgICBzZWxmLl9sb3NzLm9uX2Fja19yZWNlaXZlZCgKLSAgICAgICAgICAgIHNwYWNlPXNl
bGYuX3NwYWNlc1tjb250ZXh0LmVwb2NoXSwKLSAgICAgICAgICAgIGFja19yYW5nZXNldD1hY2tf
cmFuZ2VzZXQsCi0gICAgICAgICAgICBhY2tfZGVsYXk9YWNrX2RlbGF5LAotICAgICAgICAgICAg
bm93PWNvbnRleHQudGltZSwKLSAgICAgICAgKQotCi0gICAgZGVmIF9oYW5kbGVfY29ubmVjdGlv
bl9jbG9zZV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0
LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAi
IiIKLSAgICAgICAgSGFuZGxlIGEgQ09OTkVDVElPTl9DTE9TRSBmcmFtZS4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGVycm9yX2NvZGUgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIGlmIGZy
YW1lX3R5cGUgPT0gUXVpY0ZyYW1lVHlwZS5UUkFOU1BPUlRfQ0xPU0U6Ci0gICAgICAgICAgICBm
cmFtZV90eXBlID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgZnJhbWVfdHlwZSA9IE5vbmUKLSAgICAgICAgcmVhc29uX2xlbmd0aCA9IGJ1Zi5wdWxsX3Vp
bnRfdmFyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVhc29uX3BocmFzZSA9IGJ1Zi5w
dWxsX2J5dGVzKHJlYXNvbl9sZW5ndGgpLmRlY29kZSgidXRmOCIpCi0gICAgICAgIGV4Y2VwdCBV
bmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICByZWFzb25fcGhyYXNlID0gIiIKLQotICAg
ICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfY29ubmVjdGlvbl9jbG9zZV9mcmFt
ZSgKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZT1lcnJvcl9jb2RlLAotICAgICAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJl
YXNvbl9waHJhc2U9cmVhc29uX3BocmFzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAiQ29ubmVjdGlv
biBjbG9zZSBjb2RlIDB4JVgsIHJlYXNvbiAlcyIsIGVycm9yX2NvZGUsIHJlYXNvbl9waHJhc2UK
LSAgICAgICAgKQotICAgICAgICBzZWxmLl9jbG9zZV9ldmVudCA9IGV2ZW50cy5Db25uZWN0aW9u
VGVybWluYXRlZCgKLSAgICAgICAgICAgIGVycm9yX2NvZGU9ZXJyb3JfY29kZSwgZnJhbWVfdHlw
ZT1mcmFtZV90eXBlLCByZWFzb25fcGhyYXNlPXJlYXNvbl9waHJhc2UKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLl9jbG9zZV9iZWdpbihpc19pbml0aWF0b3I9RmFsc2UsIG5vdz1jb250ZXh0LnRp
bWUpCi0KLSAgICBkZWYgX2hhbmRsZV9jcnlwdG9fZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRl
eHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAg
ICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIENSWVBUTyBmcmFtZS4K
LSAgICAgICAgIiIiCi0gICAgICAgIG9mZnNldCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAg
ICAgbGVuZ3RoID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBpZiBvZmZzZXQgKyBsZW5n
dGggPiBVSU5UX1ZBUl9NQVg6Ci0gICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9y
KAotICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5GUkFNRV9FTkNPRElO
R19FUlJPUiwKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAg
ICAgICAgICAgcmVhc29uX3BocmFzZT0ib2Zmc2V0ICsgbGVuZ3RoIGNhbm5vdCBleGNlZWQgMl42
MiAtIDEiLAotICAgICAgICAgICAgKQotICAgICAgICBmcmFtZSA9IFF1aWNTdHJlYW1GcmFtZShv
ZmZzZXQ9b2Zmc2V0LCBkYXRhPWJ1Zi5wdWxsX2J5dGVzKGxlbmd0aCkpCi0KLSAgICAgICAgIyBs
b2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2NyeXB0b19mcmFtZShmcmFtZSkKLSAgICAgICAg
ICAgICkKLQotICAgICAgICBzdHJlYW0gPSBzZWxmLl9jcnlwdG9fc3RyZWFtc1tjb250ZXh0LmVw
b2NoXQotICAgICAgICBldmVudCA9IHN0cmVhbS5hZGRfZnJhbWUoZnJhbWUpCi0gICAgICAgIGlm
IGV2ZW50IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyBwYXNzIGRhdGEgdG8gVExTIGxheWVy
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi50bHMuaGFuZGxlX21lc3Nh
Z2UoZXZlbnQuZGF0YSwgc2VsZi5fY3J5cHRvX2J1ZmZlcnMpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fcHVzaF9jcnlwdG9fZGF0YSgpCi0gICAgICAgICAgICBleGNlcHQgdGxzLkFsZXJ0IGFzIGV4
YzoKLSAgICAgICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAg
ICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuQ1JZUFRPX0VSUk9SICsgaW50KGV4
Yy5kZXNjcmlwdGlvbiksCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT1zdHIoZXhjKSwKLSAgICAgICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgcGFyc2UgdHJhbnNwb3J0IHBhcmFtZXRlcnMKLSAg
ICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICBub3Qgc2VsZi5fcGFyYW1ldGVyc19yZWNl
aXZlZAotICAgICAgICAgICAgICAgIGFuZCBzZWxmLnRscy5yZWNlaXZlZF9leHRlbnNpb25zIGlz
IG5vdCBOb25lCi0gICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIGZvciBleHRfdHlwZSwg
ZXh0X2RhdGEgaW4gc2VsZi50bHMucmVjZWl2ZWRfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgICAg
ICAgICAgaWYgZXh0X3R5cGUgPT0gdGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFS
QU1FVEVSUzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhcnNlX3RyYW5zcG9ydF9w
YXJhbWV0ZXJzKGV4dF9kYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyYW1l
dGVyc19yZWNlaXZlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyYW1ldGVy
c19yZWNlaXZlZAotICAgICAgICAgICAgICAgICksICJObyBRVUlDIHRyYW5zcG9ydCBwYXJhbWV0
ZXJzIHJlY2VpdmVkIgotCi0gICAgICAgICAgICAjIHVwZGF0ZSBjdXJyZW50IGVwb2NoCi0gICAg
ICAgICAgICBpZiBub3Qgc2VsZi5faGFuZHNoYWtlX2NvbXBsZXRlIGFuZCBzZWxmLnRscy5zdGF0
ZSBpbiBbCi0gICAgICAgICAgICAgICAgdGxzLlN0YXRlLkNMSUVOVF9QT1NUX0hBTkRTSEFLRSwK
LSAgICAgICAgICAgICAgICB0bHMuU3RhdGUuU0VSVkVSX1BPU1RfSEFORFNIQUtFLAotICAgICAg
ICAgICAgXToKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2VfY29tcGxldGUgPSBUcnVl
Ci0KLSAgICAgICAgICAgICAgICAjIGZvciBzZXJ2ZXJzLCB0aGUgaGFuZHNoYWtlIGlzIG5vdyBj
b25maXJtZWQKLSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5faXNfY2xpZW50OgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9kaXNjYXJkX2Vwb2NoKHRscy5FcG9jaC5IQU5EU0hBS0UpCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9jb25maXJtZWQgPSBUcnVlCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9kb25lX3BlbmRpbmcgPSBUcnVlCi0KLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb3NzLmlzX2NsaWVudF93aXRob3V0XzFydHQgPSBGYWxzZQot
ICAgICAgICAgICAgICAgIHNlbGYuX3JlcGxlbmlzaF9jb25uZWN0aW9uX2lkcygpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgZXZlbnRz
LkhhbmRzaGFrZUNvbXBsZXRlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGFscG5fcHJvdG9j
b2w9c2VsZi50bHMuYWxwbl9uZWdvdGlhdGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgZWFy
bHlfZGF0YV9hY2NlcHRlZD1zZWxmLnRscy5lYXJseV9kYXRhX2FjY2VwdGVkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgc2Vzc2lvbl9yZXN1bWVkPXNlbGYudGxzLnNlc3Npb25fcmVzdW1lZCwK
LSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg
ICBzZWxmLl91bmJsb2NrX3N0cmVhbXMoaXNfdW5pZGlyZWN0aW9uYWw9RmFsc2UpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fdW5ibG9ja19zdHJlYW1zKGlzX3VuaWRpcmVjdGlvbmFsPVRydWUpCi0g
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgICAgICJB
TFBOIG5lZ290aWF0ZWQgcHJvdG9jb2wgJXMiLCBzZWxmLnRscy5hbHBuX25lZ290aWF0ZWQKLSAg
ICAgICAgICAgICAgICApCi0KLSAgICBkZWYgX2hhbmRsZV9kYXRhX2Jsb2NrZWRfZnJhbWUoCi0g
ICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50
LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRs
ZSBhIERBVEFfQkxPQ0tFRCBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGxpbWl0ID0gYnVm
LnB1bGxfdWludF92YXIoKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYu
X3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dl
cl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29k
ZV9kYXRhX2Jsb2NrZWRfZnJhbWUobGltaXQ9bGltaXQpCi0gICAgICAgICAgICApCi0KLSAgICBk
ZWYgX2hhbmRsZV9kYXRhZ3JhbV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1Jl
Y2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25l
OgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgREFUQUdSQU0gZnJhbWUuCi0gICAgICAg
ICIiIgotICAgICAgICBzdGFydCA9IGJ1Zi50ZWxsKCkKLSAgICAgICAgaWYgZnJhbWVfdHlwZSA9
PSBRdWljRnJhbWVUeXBlLkRBVEFHUkFNX1dJVEhfTEVOR1RIOgotICAgICAgICAgICAgbGVuZ3Ro
ID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGVuZ3Ro
ID0gYnVmLmNhcGFjaXR5IC0gc3RhcnQKLSAgICAgICAgZGF0YSA9IGJ1Zi5wdWxsX2J5dGVzKGxl
bmd0aCkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dl
ciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFw
cGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfZGF0YWdyYW1f
ZnJhbWUobGVuZ3RoPWxlbmd0aCkKLSAgICAgICAgICAgICkKLQotICAgICAgICAjIGNoZWNrIGZy
YW1lIGlzIGFsbG93ZWQKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgc2VsZi5fY29uZmlndXJh
dGlvbi5tYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZSBpcyBOb25lCi0gICAgICAgICAgICBvciBidWYu
dGVsbCgpIC0gc3RhcnQgPj0gc2VsZi5fY29uZmlndXJhdGlvbi5tYXhfZGF0YWdyYW1fZnJhbWVf
c2l6ZQotICAgICAgICApOgotICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigK
LSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFU
SU9OLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAg
ICAgICByZWFzb25fcGhyYXNlPSJVbmV4cGVjdGVkIERBVEFHUkFNIGZyYW1lIiwKLSAgICAgICAg
ICAgICkKLQotICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKGV2ZW50cy5EYXRhZ3JhbUZyYW1l
UmVjZWl2ZWQoZGF0YT1kYXRhKSkKLQotICAgIGRlZiBfaGFuZGxlX2hhbmRzaGFrZV9kb25lX2Zy
YW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5
cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAg
ICBIYW5kbGUgYSBIQU5EU0hBS0VfRE9ORSBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMg
bG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAg
ICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9oYW5kc2hha2VfZG9uZV9mcmFtZSgpCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2NsaWVudDoKLSAgICAgICAgICAg
IHJhaXNlIFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1R
dWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iQ2xpZW50cyBt
dXN0IG5vdCBzZW5kIEhBTkRTSEFLRV9ET05FIGZyYW1lcyIsCi0gICAgICAgICAgICApCi0KLSAg
ICAgICAgIyDCoGZvciBjbGllbnRzLCB0aGUgaGFuZHNoYWtlIGlzIG5vdyBjb25maXJtZWQKLSAg
ICAgICAgaWYgbm90IHNlbGYuX2hhbmRzaGFrZV9jb25maXJtZWQ6Ci0gICAgICAgICAgICBzZWxm
Ll9kaXNjYXJkX2Vwb2NoKHRscy5FcG9jaC5IQU5EU0hBS0UpCi0gICAgICAgICAgICBzZWxmLl9o
YW5kc2hha2VfY29uZmlybWVkID0gVHJ1ZQotCi0gICAgZGVmIF9oYW5kbGVfbWF4X2RhdGFfZnJh
bWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlw
ZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAg
IEhhbmRsZSBhIE1BWF9EQVRBIGZyYW1lLgotCi0gICAgICAgIFRoaXMgYWRqdXN0cyB0aGUgdG90
YWwgYW1vdW50IG9mIHdlIGNhbiBzZW5kIHRvIHRoZSBwZWVyLgotICAgICAgICAiIiIKLSAgICAg
ICAgbWF4X2RhdGEgPSBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUK
LSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBj
b250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5f
cXVpY19sb2dnZXIuZW5jb2RlX21heF9kYXRhX2ZyYW1lKG1heGltdW09bWF4X2RhdGEpCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgaWYgbWF4X2RhdGEgPiBzZWxmLl9yZW1vdGVfbWF4X2RhdGE6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoIlJlbW90ZSBtYXhfZGF0YSByYWlzZWQg
dG8gJWQiLCBtYXhfZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfZGF0YSA9IG1h
eF9kYXRhCi0KLSAgICBkZWYgX2hhbmRsZV9tYXhfc3RyZWFtX2RhdGFfZnJhbWUoCi0gICAgICAg
IHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6
IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIE1B
WF9TVFJFQU1fREFUQSBmcmFtZS4KLQotICAgICAgICBUaGlzIGFkanVzdHMgdGhlIGFtb3VudCBv
ZiBkYXRhIHdlIGNhbiBzZW5kIG9uIGEgc3BlY2lmaWMgc3RyZWFtLgotICAgICAgICAiIiIKLSAg
ICAgICAgc3RyZWFtX2lkID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBtYXhfc3RyZWFt
X2RhdGEgPSBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAg
ICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0
LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19s
b2dnZXIuZW5jb2RlX21heF9zdHJlYW1fZGF0YV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAg
bWF4aW11bT1tYXhfc3RyZWFtX2RhdGEsIHN0cmVhbV9pZD1zdHJlYW1faWQKLSAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBzdHJlYW0gZGlyZWN0aW9u
Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9zdHJlYW1fY2FuX3NlbmQoZnJhbWVfdHlwZSwgc3RyZWFt
X2lkKQotCi0gICAgICAgIHN0cmVhbSA9IHNlbGYuX2dldF9vcl9jcmVhdGVfc3RyZWFtKGZyYW1l
X3R5cGUsIHN0cmVhbV9pZCkKLSAgICAgICAgaWYgbWF4X3N0cmVhbV9kYXRhID4gc3RyZWFtLm1h
eF9zdHJlYW1fZGF0YV9yZW1vdGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAgICAgIlN0cmVhbSAlZCByZW1vdGUgbWF4X3N0cmVhbV9kYXRhIHJhaXNlZCB0
byAlZCIsCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIG1heF9z
dHJlYW1fZGF0YSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHN0cmVhbS5tYXhfc3RyZWFt
X2RhdGFfcmVtb3RlID0gbWF4X3N0cmVhbV9kYXRhCi0KLSAgICBkZWYgX2hhbmRsZV9tYXhfc3Ry
ZWFtc19iaWRpX2ZyYW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRl
eHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBIYW5kbGUgYSBNQVhfU1RSRUFNU19CSURJIGZyYW1lLgotCi0gICAgICAg
IFRoaXMgcmFpc2VzIG51bWJlciBvZiBiaWRpcmVjdGlvbmFsIHN0cmVhbXMgd2UgY2FuIGluaXRp
YXRlIHRvIHRoZSBwZWVyLgotICAgICAgICAiIiIKLSAgICAgICAgbWF4X3N0cmVhbXMgPSBidWYu
cHVsbF91aW50X3ZhcigpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5f
cXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2Vy
X2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2Rl
X21heF9zdHJlYW1zX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBpc191bmlkaXJlY3Rpb25h
bD1GYWxzZSwgbWF4aW11bT1tYXhfc3RyZWFtcwotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICkKLQotICAgICAgICBpZiBtYXhfc3RyZWFtcyA+IHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFt
c19iaWRpOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCJSZW1vdGUgbWF4X3N0cmVh
bXNfYmlkaSByYWlzZWQgdG8gJWQiLCBtYXhfc3RyZWFtcykKLSAgICAgICAgICAgIHNlbGYuX3Jl
bW90ZV9tYXhfc3RyZWFtc19iaWRpID0gbWF4X3N0cmVhbXMKLSAgICAgICAgICAgIHNlbGYuX3Vu
YmxvY2tfc3RyZWFtcyhpc191bmlkaXJlY3Rpb25hbD1GYWxzZSkKLQotICAgIGRlZiBfaGFuZGxl
X21heF9zdHJlYW1zX3VuaV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2Vp
dmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgot
ICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgTUFYX1NUUkVBTVNfVU5JIGZyYW1lLgotCi0g
ICAgICAgIFRoaXMgcmFpc2VzIG51bWJlciBvZiB1bmlkaXJlY3Rpb25hbCBzdHJlYW1zIHdlIGNh
biBpbml0aWF0ZSB0byB0aGUgcGVlci4KLSAgICAgICAgIiIiCi0gICAgICAgIG1heF9zdHJlYW1z
ID0gYnVmLnB1bGxfdWludF92YXIoKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlm
IHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWlj
X2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2Vy
LmVuY29kZV9tYXhfc3RyZWFtc19mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgaXNfdW5pZGly
ZWN0aW9uYWw9VHJ1ZSwgbWF4aW11bT1tYXhfc3RyZWFtcwotICAgICAgICAgICAgICAgICkKLSAg
ICAgICAgICAgICkKLQotICAgICAgICBpZiBtYXhfc3RyZWFtcyA+IHNlbGYuX3JlbW90ZV9tYXhf
c3RyZWFtc191bmk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoIlJlbW90ZSBtYXhf
c3RyZWFtc191bmkgcmFpc2VkIHRvICVkIiwgbWF4X3N0cmVhbXMpCi0gICAgICAgICAgICBzZWxm
Ll9yZW1vdGVfbWF4X3N0cmVhbXNfdW5pID0gbWF4X3N0cmVhbXMKLSAgICAgICAgICAgIHNlbGYu
X3VuYmxvY2tfc3RyZWFtcyhpc191bmlkaXJlY3Rpb25hbD1UcnVlKQotCi0gICAgZGVmIF9oYW5k
bGVfbmV3X2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNS
ZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9u
ZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIE5FV19DT05ORUNUSU9OX0lEIGZyYW1l
LgotICAgICAgICAiIiIKLSAgICAgICAgc2VxdWVuY2VfbnVtYmVyID0gYnVmLnB1bGxfdWludF92
YXIoKQotICAgICAgICByZXRpcmVfcHJpb3JfdG8gPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAg
ICAgIGxlbmd0aCA9IGJ1Zi5wdWxsX3VpbnQ4KCkKLSAgICAgICAgY29ubmVjdGlvbl9pZCA9IGJ1
Zi5wdWxsX2J5dGVzKGxlbmd0aCkKLSAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuID0gYnVm
LnB1bGxfYnl0ZXMoMTYpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5f
cXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2Vy
X2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2Rl
X25ld19jb25uZWN0aW9uX2lkX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u
X2lkPWNvbm5lY3Rpb25faWQsCi0gICAgICAgICAgICAgICAgICAgIHJldGlyZV9wcmlvcl90bz1y
ZXRpcmVfcHJpb3JfdG8sCi0gICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcj1zZXF1
ZW5jZV9udW1iZXIsCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlbGVzc19yZXNldF90b2tlbj1z
dGF0ZWxlc3NfcmVzZXRfdG9rZW4sCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQot
Ci0gICAgICAgIHNlbGYuX3BlZXJfY2lkX2F2YWlsYWJsZS5hcHBlbmQoCi0gICAgICAgICAgICBR
dWljQ29ubmVjdGlvbklkKAotICAgICAgICAgICAgICAgIGNpZD1jb25uZWN0aW9uX2lkLAotICAg
ICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcj1zZXF1ZW5jZV9udW1iZXIsCi0gICAgICAgICAg
ICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPXN0YXRlbGVzc19yZXNldF90b2tlbiwKLSAgICAg
ICAgICAgICkKLSAgICAgICAgKQotCi0gICAgZGVmIF9oYW5kbGVfbmV3X3Rva2VuX2ZyYW1lKAot
ICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGlu
dCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5k
bGUgYSBORVdfVE9LRU4gZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBsZW5ndGggPSBidWYu
cHVsbF91aW50X3ZhcigpCi0gICAgICAgIHRva2VuID0gYnVmLnB1bGxfYnl0ZXMobGVuZ3RoKQot
Ci0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAot
ICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9uZXdfdG9rZW5fZnJhbWUo
dG9rZW49dG9rZW4pCi0gICAgICAgICAgICApCi0KLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2Ns
aWVudDoKLSAgICAgICAgICAgIHJhaXNlIFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAg
ICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgcmVhc29u
X3BocmFzZT0iQ2xpZW50cyBtdXN0IG5vdCBzZW5kIE5FV19UT0tFTiBmcmFtZXMiLAotICAgICAg
ICAgICAgKQotCi0gICAgZGVmIF9oYW5kbGVfcGFkZGluZ19mcmFtZSgKLSAgICAgICAgc2VsZiwg
Y29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVy
Ci0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgUEFERElORyBm
cmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMgY29uc3VtZSBwYWRkaW5nCi0gICAgICAgIHBv
cyA9IGJ1Zi50ZWxsKCkKLSAgICAgICAgZm9yIGJ5dGUgaW4gYnVmLmRhdGFfc2xpY2UocG9zLCBi
dWYuY2FwYWNpdHkpOgotICAgICAgICAgICAgaWYgYnl0ZToKLSAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICAgICAgcG9zICs9IDEKLSAgICAgICAgYnVmLnNlZWsocG9zKQotCi0gICAgICAg
ICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKHNlbGYuX3F1aWNf
bG9nZ2VyLmVuY29kZV9wYWRkaW5nX2ZyYW1lKCkpCi0KLSAgICBkZWYgX2hhbmRsZV9wYXRoX2No
YWxsZW5nZV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0
LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAi
IiIKLSAgICAgICAgSGFuZGxlIGEgUEFUSF9DSEFMTEVOR0UgZnJhbWUuCi0gICAgICAgICIiIgot
ICAgICAgICBkYXRhID0gYnVmLnB1bGxfYnl0ZXMoOCkKLQotICAgICAgICAjIGxvZyBmcmFtZQot
ICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNv
bnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9x
dWljX2xvZ2dlci5lbmNvZGVfcGF0aF9jaGFsbGVuZ2VfZnJhbWUoZGF0YT1kYXRhKQotICAgICAg
ICAgICAgKQotCi0gICAgICAgIGNvbnRleHQubmV0d29ya19wYXRoLnJlbW90ZV9jaGFsbGVuZ2Ug
PSBkYXRhCi0KLSAgICBkZWYgX2hhbmRsZV9wYXRoX3Jlc3BvbnNlX2ZyYW1lKAotICAgICAgICBz
ZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBC
dWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBQQVRI
X1JFU1BPTlNFIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgZGF0YSA9IGJ1Zi5wdWxsX2J5
dGVzKDgpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5h
cHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3BhdGhfcmVz
cG9uc2VfZnJhbWUoZGF0YT1kYXRhKQotICAgICAgICAgICAgKQotCi0gICAgICAgIGlmIGRhdGEg
IT0gY29udGV4dC5uZXR3b3JrX3BhdGgubG9jYWxfY2hhbGxlbmdlOgotICAgICAgICAgICAgcmFp
c2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNF
cnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9
ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJSZXNwb25zZSBkb2Vz
IG5vdCBtYXRjaCBjaGFsbGVuZ2UiLAotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoCi0gICAgICAgICAgICAiTmV0d29yayBwYXRoICVzIHZhbGlkYXRlZCBieSBjaGFs
bGVuZ2UiLCBjb250ZXh0Lm5ldHdvcmtfcGF0aC5hZGRyCi0gICAgICAgICkKLSAgICAgICAgY29u
dGV4dC5uZXR3b3JrX3BhdGguaXNfdmFsaWRhdGVkID0gVHJ1ZQotCi0gICAgZGVmIF9oYW5kbGVf
cGluZ19mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBm
cmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIK
LSAgICAgICAgSGFuZGxlIGEgUElORyBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMgbG9n
IGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKHNlbGYuX3F1aWNfbG9nZ2Vy
LmVuY29kZV9waW5nX2ZyYW1lKCkpCi0KLSAgICBkZWYgX2hhbmRsZV9yZXNldF9zdHJlYW1fZnJh
bWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlw
ZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAg
IEhhbmRsZSBhIFJFU0VUX1NUUkVBTSBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0cmVh
bV9pZCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgZXJyb3JfY29kZSA9IGJ1Zi5wdWxs
X3VpbnRfdmFyKCkKLSAgICAgICAgZmluYWxfc2l6ZSA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLQot
ICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAg
ICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfcmVzZXRfc3RyZWFtX2ZyYW1l
KAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPWVycm9yX2NvZGUsIGZpbmFsX3NpemU9
ZmluYWxfc2l6ZSwgc3RyZWFtX2lkPXN0cmVhbV9pZAotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICkKLQotICAgICAgICAjIGNoZWNrIHN0cmVhbSBkaXJlY3Rpb24KLSAgICAgICAgc2Vs
Zi5fYXNzZXJ0X3N0cmVhbV9jYW5fcmVjZWl2ZShmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0KLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAiU3RyZWFtICVkIHJlc2V0IGJ5
IHBlZXIgKGVycm9yIGNvZGUgJWQsIGZpbmFsIHNpemUgJWQpIiwKLSAgICAgICAgICAgIHN0cmVh
bV9pZCwKLSAgICAgICAgICAgIGVycm9yX2NvZGUsCi0gICAgICAgICAgICBmaW5hbF9zaXplLAot
ICAgICAgICApCi0gICAgICAgICMgc3RyZWFtID0gc2VsZi5fZ2V0X29yX2NyZWF0ZV9zdHJlYW0o
ZnJhbWVfdHlwZSwgc3RyZWFtX2lkKQotICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKAotICAg
ICAgICAgICAgZXZlbnRzLlN0cmVhbVJlc2V0KGVycm9yX2NvZGU9ZXJyb3JfY29kZSwgc3RyZWFt
X2lkPXN0cmVhbV9pZCkKLSAgICAgICAgKQotCi0gICAgZGVmIF9oYW5kbGVfcmV0aXJlX2Nvbm5l
Y3Rpb25faWRfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4
dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAg
IiIiCi0gICAgICAgIEhhbmRsZSBhIFJFVElSRV9DT05ORUNUSU9OX0lEIGZyYW1lLgotICAgICAg
ICAiIiIKLSAgICAgICAgc2VxdWVuY2VfbnVtYmVyID0gYnVmLnB1bGxfdWludF92YXIoKQotCi0g
ICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAg
ICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9yZXRpcmVfY29ubmVjdGlvbl9p
ZF9mcmFtZShzZXF1ZW5jZV9udW1iZXIpCi0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBmaW5k
IHRoZSBjb25uZWN0aW9uIElEIGJ5IHNlcXVlbmNlIG51bWJlcgotICAgICAgICBmb3IgaW5kZXgs
IGNvbm5lY3Rpb25faWQgaW4gZW51bWVyYXRlKHNlbGYuX2hvc3RfY2lkcyk6Ci0gICAgICAgICAg
ICBpZiBjb25uZWN0aW9uX2lkLnNlcXVlbmNlX251bWJlciA9PSBzZXF1ZW5jZV9udW1iZXI6Ci0g
ICAgICAgICAgICAgICAgaWYgY29ubmVjdGlvbl9pZC5jaWQgPT0gY29udGV4dC5ob3N0X2NpZDoK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJ
T04sCi0gICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJDYW5ub3QgcmV0aXJlIGN1cnJlbnQg
Y29ubmVjdGlvbiBJRCIsCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICJQZWVyIHJldGlyaW5nIENJ
RCAlcyAoJWQpIiwKLSAgICAgICAgICAgICAgICAgICAgZHVtcF9jaWQoY29ubmVjdGlvbl9pZC5j
aWQpLAotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2lkLnNlcXVlbmNlX251bWJlciwK
LSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgZGVsIHNlbGYuX2hvc3RfY2lkc1tp
bmRleF0KLSAgICAgICAgICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKAotICAgICAgICAgICAg
ICAgICAgICBldmVudHMuQ29ubmVjdGlvbklkUmV0aXJlZChjb25uZWN0aW9uX2lkPWNvbm5lY3Rp
b25faWQuY2lkKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBicmVhawotCi0g
ICAgICAgICMgaXNzdWUgYSBuZXcgY29ubmVjdGlvbiBJRAotICAgICAgICBzZWxmLl9yZXBsZW5p
c2hfY29ubmVjdGlvbl9pZHMoKQotCi0gICAgZGVmIF9oYW5kbGVfc3RvcF9zZW5kaW5nX2ZyYW1l
KAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6
IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBI
YW5kbGUgYSBTVE9QX1NFTkRJTkcgZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBzdHJlYW1f
aWQgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIGVycm9yX2NvZGUgPSBidWYucHVsbF91
aW50X3ZhcigpICAjIGFwcGxpY2F0aW9uIGVycm9yIGNvZGUKLQotICAgICAgICAjIGxvZyBmcmFt
ZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxm
Ll9xdWljX2xvZ2dlci5lbmNvZGVfc3RvcF9zZW5kaW5nX2ZyYW1lKAotICAgICAgICAgICAgICAg
ICAgICBlcnJvcl9jb2RlPWVycm9yX2NvZGUsIHN0cmVhbV9pZD1zdHJlYW1faWQKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBzdHJlYW0gZGlyZWN0
aW9uCi0gICAgICAgIHNlbGYuX2Fzc2VydF9zdHJlYW1fY2FuX3NlbmQoZnJhbWVfdHlwZSwgc3Ry
ZWFtX2lkKQotCi0gICAgICAgIHNlbGYuX2dldF9vcl9jcmVhdGVfc3RyZWFtKGZyYW1lX3R5cGUs
IHN0cmVhbV9pZCkKLQotICAgIGRlZiBfaGFuZGxlX3N0cmVhbV9mcmFtZSgKLSAgICAgICAgc2Vs
ZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVm
ZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgU1RSRUFN
IGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgc3RyZWFtX2lkID0gYnVmLnB1bGxfdWludF92
YXIoKQotICAgICAgICBpZiBmcmFtZV90eXBlICYgNDoKLSAgICAgICAgICAgIG9mZnNldCA9IGJ1
Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9mZnNldCA9IDAK
LSAgICAgICAgaWYgZnJhbWVfdHlwZSAmIDI6Ci0gICAgICAgICAgICBsZW5ndGggPSBidWYucHVs
bF91aW50X3ZhcigpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsZW5ndGggPSBidWYuY2Fw
YWNpdHkgLSBidWYudGVsbCgpCi0gICAgICAgIGlmIG9mZnNldCArIGxlbmd0aCA+IFVJTlRfVkFS
X01BWDoKLSAgICAgICAgICAgIHJhaXNlIFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAg
ICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLkZSQU1FX0VOQ09ESU5HX0VSUk9SLAotICAg
ICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICByZWFz
b25fcGhyYXNlPSJvZmZzZXQgKyBsZW5ndGggY2Fubm90IGV4Y2VlZCAyXjYyIC0gMSIsCi0gICAg
ICAgICAgICApCi0gICAgICAgIGZyYW1lID0gUXVpY1N0cmVhbUZyYW1lKAotICAgICAgICAgICAg
b2Zmc2V0PW9mZnNldCwgZGF0YT1idWYucHVsbF9ieXRlcyhsZW5ndGgpLCBmaW49Ym9vbChmcmFt
ZV90eXBlICYgMSkKLSAgICAgICAgKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlm
IHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWlj
X2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2Vy
LmVuY29kZV9zdHJlYW1fZnJhbWUoZnJhbWUsIHN0cmVhbV9pZD1zdHJlYW1faWQpCi0gICAgICAg
ICAgICApCi0KLSAgICAgICAgIyBjaGVjayBzdHJlYW0gZGlyZWN0aW9uCi0gICAgICAgIHNlbGYu
X2Fzc2VydF9zdHJlYW1fY2FuX3JlY2VpdmUoZnJhbWVfdHlwZSwgc3RyZWFtX2lkKQotCi0gICAg
ICAgICMgY2hlY2sgZmxvdy1jb250cm9sIGxpbWl0cwotICAgICAgICBzdHJlYW0gPSBzZWxmLl9n
ZXRfb3JfY3JlYXRlX3N0cmVhbShmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0gICAgICAgIGlmIG9m
ZnNldCArIGxlbmd0aCA+IHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWw6Ci0gICAgICAgICAg
ICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9
UXVpY0Vycm9yQ29kZS5GTE9XX0NPTlRST0xfRVJST1IsCi0gICAgICAgICAgICAgICAgZnJhbWVf
dHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9Ik92ZXIgc3Ry
ZWFtIGRhdGEgbGltaXQiLAotICAgICAgICAgICAgKQotICAgICAgICBuZXdseV9yZWNlaXZlZCA9
IG1heCgwLCBvZmZzZXQgKyBsZW5ndGggLSBzdHJlYW0uX3JlY3ZfaGlnaGVzdCkKLSAgICAgICAg
aWYgc2VsZi5fbG9jYWxfbWF4X2RhdGFfdXNlZCArIG5ld2x5X3JlY2VpdmVkID4gc2VsZi5fbG9j
YWxfbWF4X2RhdGE6Ci0gICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAg
ICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5GTE9XX0NPTlRST0xfRVJST1Is
Ci0gICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAg
IHJlYXNvbl9waHJhc2U9Ik92ZXIgY29ubmVjdGlvbiBkYXRhIGxpbWl0IiwKLSAgICAgICAgICAg
ICkKLQotICAgICAgICBldmVudCA9IHN0cmVhbS5hZGRfZnJhbWUoZnJhbWUpCi0gICAgICAgIGlm
IGV2ZW50IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVuZChldmVu
dCkKLSAgICAgICAgc2VsZi5fbG9jYWxfbWF4X2RhdGFfdXNlZCArPSBuZXdseV9yZWNlaXZlZAot
Ci0gICAgZGVmIF9oYW5kbGVfc3RyZWFtX2RhdGFfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgc2Vs
ZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVm
ZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgU1RSRUFN
X0RBVEFfQkxPQ0tFRCBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0cmVhbV9pZCA9IGJ1
Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgbGltaXQgPSBidWYucHVsbF91aW50X3ZhcigpCi0K
LSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3N0cmVhbV9kYXRhX2Jsb2Nr
ZWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGxpbWl0PWxpbWl0LCBzdHJlYW1faWQ9c3Ry
ZWFtX2lkCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgICAgICMgY2hl
Y2sgc3RyZWFtIGRpcmVjdGlvbgotICAgICAgICBzZWxmLl9hc3NlcnRfc3RyZWFtX2Nhbl9yZWNl
aXZlKGZyYW1lX3R5cGUsIHN0cmVhbV9pZCkKLQotICAgICAgICBzZWxmLl9nZXRfb3JfY3JlYXRl
X3N0cmVhbShmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0KLSAgICBkZWYgX2hhbmRsZV9zdHJlYW1z
X2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4
dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAg
IiIiCi0gICAgICAgIEhhbmRsZSBhIFNUUkVBTVNfQkxPQ0tFRCBmcmFtZS4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGxpbWl0ID0gYnVmLnB1bGxfdWludF92YXIoKQotCi0gICAgICAgICMgbG9nIGZy
YW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNl
bGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9zdHJlYW1zX2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgICAgIGlzX3VuaWRpcmVjdGlvbmFsPWZyYW1lX3R5cGUgPT0gUXVpY0ZyYW1lVHlwZS5T
VFJFQU1TX0JMT0NLRURfVU5JLAotICAgICAgICAgICAgICAgICAgICBsaW1pdD1saW1pdCwKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgX29uX2Fja19kZWxpdmVy
eSgKLSAgICAgICAgc2VsZiwgZGVsaXZlcnk6IFF1aWNEZWxpdmVyeVN0YXRlLCBzcGFjZTogUXVp
Y1BhY2tldFNwYWNlLCBoaWdoZXN0X2Fja2VkOiBpbnQKLSAgICApIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBDYWxsYmFjayB3aGVuIGFuIEFDSyBmcmFtZSBpcyBhY2tub3dsZWRnZWQg
b3IgbG9zdC4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGRlbGl2ZXJ5ID09IFF1aWNEZWxpdmVy
eVN0YXRlLkFDS0VEOgotICAgICAgICAgICAgc3BhY2UuYWNrX3F1ZXVlLnN1YnRyYWN0KDAsIGhp
Z2hlc3RfYWNrZWQgKyAxKQotCi0gICAgZGVmIF9vbl9oYW5kc2hha2VfZG9uZV9kZWxpdmVyeShz
ZWxmLCBkZWxpdmVyeTogUXVpY0RlbGl2ZXJ5U3RhdGUpIC0+IE5vbmU6Ci0gICAgICAgICIiIgot
ICAgICAgICBDYWxsYmFjayB3aGVuIGEgSEFORFNIQUtFX0RPTkUgZnJhbWUgaXMgYWNrbm93bGVk
Z2VkIG9yIGxvc3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBkZWxpdmVyeSAhPSBRdWljRGVs
aXZlcnlTdGF0ZS5BQ0tFRDoKLSAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9kb25lX3BlbmRp
bmcgPSBUcnVlCi0KLSAgICBkZWYgX29uX21heF9kYXRhX2RlbGl2ZXJ5KHNlbGYsIGRlbGl2ZXJ5
OiBRdWljRGVsaXZlcnlTdGF0ZSkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENhbGxi
YWNrIHdoZW4gYSBNQVhfREFUQSBmcmFtZSBpcyBhY2tub3dsZWRnZWQgb3IgbG9zdC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGlmIGRlbGl2ZXJ5ICE9IFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VEOgot
ICAgICAgICAgICAgc2VsZi5fbG9jYWxfbWF4X2RhdGFfc2VudCA9IDAKLQotICAgIGRlZiBfb25f
bWF4X3N0cmVhbV9kYXRhX2RlbGl2ZXJ5KAotICAgICAgICBzZWxmLCBkZWxpdmVyeTogUXVpY0Rl
bGl2ZXJ5U3RhdGUsIHN0cmVhbTogUXVpY1N0cmVhbQotICAgICkgLT4gTm9uZToKLSAgICAgICAg
IiIiCi0gICAgICAgIENhbGxiYWNrIHdoZW4gYSBNQVhfU1RSRUFNX0RBVEEgZnJhbWUgaXMgYWNr
bm93bGVkZ2VkIG9yIGxvc3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBkZWxpdmVyeSAhPSBR
dWljRGVsaXZlcnlTdGF0ZS5BQ0tFRDoKLSAgICAgICAgICAgIHN0cmVhbS5tYXhfc3RyZWFtX2Rh
dGFfbG9jYWxfc2VudCA9IDAKLQotICAgIGRlZiBfb25fbmV3X2Nvbm5lY3Rpb25faWRfZGVsaXZl
cnkoCi0gICAgICAgIHNlbGYsIGRlbGl2ZXJ5OiBRdWljRGVsaXZlcnlTdGF0ZSwgY29ubmVjdGlv
bl9pZDogUXVpY0Nvbm5lY3Rpb25JZAotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAg
ICAgIENhbGxiYWNrIHdoZW4gYSBORVdfQ09OTkVDVElPTl9JRCBmcmFtZSBpcyBhY2tub3dsZWRn
ZWQgb3IgbG9zdC4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGRlbGl2ZXJ5ICE9IFF1aWNEZWxp
dmVyeVN0YXRlLkFDS0VEOgotICAgICAgICAgICAgY29ubmVjdGlvbl9pZC53YXNfc2VudCA9IEZh
bHNlCi0KLSAgICBkZWYgX29uX3BpbmdfZGVsaXZlcnkoCi0gICAgICAgIHNlbGYsIGRlbGl2ZXJ5
OiBRdWljRGVsaXZlcnlTdGF0ZSwgdWlkczogU2VxdWVuY2VbaW50XQotICAgICkgLT4gTm9uZToK
LSAgICAgICAgIiIiCi0gICAgICAgIENhbGxiYWNrIHdoZW4gYSBQSU5HIGZyYW1lIGlzIGFja25v
d2xlZGdlZCBvciBsb3N0LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgZGVsaXZlcnkgPT0gUXVp
Y0RlbGl2ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoIlJl
Y2VpdmVkIFBJTkclcyByZXNwb25zZSIsICIiIGlmIHVpZHMgZWxzZSAiIChwcm9iZSkiKQotICAg
ICAgICAgICAgZm9yIHVpZCBpbiB1aWRzOgotICAgICAgICAgICAgICAgIHNlbGYuX2V2ZW50cy5h
cHBlbmQoZXZlbnRzLlBpbmdBY2tub3dsZWRnZWQodWlkPXVpZCkpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBzZWxmLl9waW5nX3BlbmRpbmcuZXh0ZW5kKHVpZHMpCi0KLSAgICBkZWYgX29u
X3JldGlyZV9jb25uZWN0aW9uX2lkX2RlbGl2ZXJ5KAotICAgICAgICBzZWxmLCBkZWxpdmVyeTog
UXVpY0RlbGl2ZXJ5U3RhdGUsIHNlcXVlbmNlX251bWJlcjogaW50Ci0gICAgKSAtPiBOb25lOgot
ICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sgd2hlbiBhIFJFVElSRV9DT05ORUNUSU9OX0lE
IGZyYW1lIGlzIGFja25vd2xlZGdlZCBvciBsb3N0LgotICAgICAgICAiIiIKLSAgICAgICAgaWYg
ZGVsaXZlcnkgIT0gUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAgICAgICBzZWxmLl9y
ZXRpcmVfY29ubmVjdGlvbl9pZHMuYXBwZW5kKHNlcXVlbmNlX251bWJlcikKLQotICAgIGRlZiBf
cGF5bG9hZF9yZWNlaXZlZCgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250
ZXh0LCBwbGFpbjogYnl0ZXMKLSAgICApIC0+IFR1cGxlW2Jvb2wsIGJvb2xdOgotICAgICAgICAi
IiIKLSAgICAgICAgSGFuZGxlIGEgUVVJQyBwYWNrZXQgcGF5bG9hZC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPXBsYWluKQotCi0gICAgICAgIGlzX2Fja19lbGljaXRp
bmcgPSBGYWxzZQotICAgICAgICBpc19wcm9iaW5nID0gTm9uZQotICAgICAgICB3aGlsZSBub3Qg
YnVmLmVvZigpOgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkK
LQotICAgICAgICAgICAgIyBjaGVjayBmcmFtZSB0eXBlIGlzIGtub3duCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgZnJhbWVfaGFuZGxlciwgZnJhbWVfZXBvY2hzID0gc2VsZi5f
X2ZyYW1lX2hhbmRsZXJzW2ZyYW1lX3R5cGVdCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAg
ICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAg
ICAgICByZWFzb25fcGhyYXNlPSJVbmtub3duIGZyYW1lIHR5cGUiLAotICAgICAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgIyBjaGVjayBmcmFtZSBpcyBhbGxvd2VkIGZvciB0aGUgZXBvY2gK
LSAgICAgICAgICAgIGlmIGNvbnRleHQuZXBvY2ggbm90IGluIGZyYW1lX2Vwb2NoczoKLSAgICAg
ICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAg
ICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJl
YXNvbl9waHJhc2U9IlVuZXhwZWN0ZWQgZnJhbWUgdHlwZSIsCi0gICAgICAgICAgICAgICAgKQot
Ci0gICAgICAgICAgICAjIGhhbmRsZSB0aGUgZnJhbWUKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBmcmFtZV9oYW5kbGVyKGNvbnRleHQsIGZyYW1lX3R5cGUsIGJ1ZikKLSAgICAg
ICAgICAgIGV4Y2VwdCBCdWZmZXJSZWFkRXJyb3I6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUXVp
Y0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJy
b3JDb2RlLkZSQU1FX0VOQ09ESU5HX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IkZhaWxl
ZCB0byBwYXJzZSBmcmFtZSIsCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHVw
ZGF0ZSBBQ0sgb25seSAvIHByb2JpbmcgZmxhZ3MKLSAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUg
bm90IGluIE5PTl9BQ0tfRUxJQ0lUSU5HX0ZSQU1FX1RZUEVTOgotICAgICAgICAgICAgICAgIGlz
X2Fja19lbGljaXRpbmcgPSBUcnVlCi0KLSAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUgbm90IGlu
IFBST0JJTkdfRlJBTUVfVFlQRVM6Ci0gICAgICAgICAgICAgICAgaXNfcHJvYmluZyA9IEZhbHNl
Ci0gICAgICAgICAgICBlbGlmIGlzX3Byb2JpbmcgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBp
c19wcm9iaW5nID0gVHJ1ZQotCi0gICAgICAgIHJldHVybiBpc19hY2tfZWxpY2l0aW5nLCBib29s
KGlzX3Byb2JpbmcpCi0KLSAgICBkZWYgX3JlcGxlbmlzaF9jb25uZWN0aW9uX2lkcyhzZWxmKSAt
PiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgR2VuZXJhdGUgbmV3IGNvbm5lY3Rpb24gSURz
LgotICAgICAgICAiIiIKLSAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2hvc3RfY2lkcykgPCBtaW4o
OCwgc2VsZi5fcmVtb3RlX2FjdGl2ZV9jb25uZWN0aW9uX2lkX2xpbWl0KToKLSAgICAgICAgICAg
IHNlbGYuX2hvc3RfY2lkcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgUXVpY0Nvbm5lY3Rpb25J
ZCgKLSAgICAgICAgICAgICAgICAgICAgY2lkPW9zLnVyYW5kb20oc2VsZi5fY29uZmlndXJhdGlv
bi5jb25uZWN0aW9uX2lkX2xlbmd0aCksCi0gICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlX251
bWJlcj1zZWxmLl9ob3N0X2NpZF9zZXEsCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlbGVzc19y
ZXNldF90b2tlbj1vcy51cmFuZG9tKDE2KSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICApCi0gICAgICAgICAgICBzZWxmLl9ob3N0X2NpZF9zZXEgKz0gMQotCi0gICAgZGVmIF9wdXNo
X2NyeXB0b19kYXRhKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIGZvciBlcG9jaCwgYnVmIGluIHNl
bGYuX2NyeXB0b19idWZmZXJzLml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxmLl9jcnlwdG9fc3Ry
ZWFtc1tlcG9jaF0ud3JpdGUoYnVmLmRhdGEpCi0gICAgICAgICAgICBidWYuc2VlaygwKQotCi0g
ICAgZGVmIF9zZW5kX3Byb2JlKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX3Byb2JlX3Bl
bmRpbmcgPSBUcnVlCi0KLSAgICBkZWYgX3BhcnNlX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAg
ICAgICBzZWxmLCBkYXRhOiBieXRlcywgZnJvbV9zZXNzaW9uX3RpY2tldDogYm9vbCA9IEZhbHNl
Ci0gICAgKSAtPiBOb25lOgotICAgICAgICBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzID0gcHVs
bF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgQnVmZmVyKGRhdGE9ZGF0
YSksIHByb3RvY29sX3ZlcnNpb249c2VsZi5fdmVyc2lvbgotICAgICAgICApCi0KLSAgICAgICAg
IyBsb2cgZXZlbnQKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmUgYW5k
IG5vdCBmcm9tX3Nlc3Npb25fdGlja2V0OgotICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIu
bG9nX2V2ZW50KAotICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJ0cmFuc3BvcnQiLAotICAgICAg
ICAgICAgICAgIGV2ZW50PSJwYXJhbWV0ZXJzX3NldCIsCi0gICAgICAgICAgICAgICAgZGF0YT1z
ZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAg
ICAgICAgICAgIG93bmVyPSJyZW1vdGUiLCBwYXJhbWV0ZXJzPXF1aWNfdHJhbnNwb3J0X3BhcmFt
ZXRlcnMKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgdmFs
aWRhdGUgcmVtb3RlIHBhcmFtZXRlcnMKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgc2VsZi5f
aXNfY2xpZW50Ci0gICAgICAgICAgICBhbmQgbm90IGZyb21fc2Vzc2lvbl90aWNrZXQKLSAgICAg
ICAgICAgIGFuZCAoCi0gICAgICAgICAgICAgICAgcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5v
cmlnaW5hbF9jb25uZWN0aW9uX2lkCi0gICAgICAgICAgICAgICAgIT0gc2VsZi5fb3JpZ2luYWxf
Y29ubmVjdGlvbl9pZAotICAgICAgICAgICAgKQotICAgICAgICApOgotICAgICAgICAgICAgcmFp
c2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNF
cnJvckNvZGUuVFJBTlNQT1JUX1BBUkFNRVRFUl9FUlJPUiwKLSAgICAgICAgICAgICAgICBmcmFt
ZV90eXBlPVF1aWNGcmFtZVR5cGUuQ1JZUFRPLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJh
c2U9Im9yaWdpbmFsX2Nvbm5lY3Rpb25faWQgZG9lcyBub3QgbWF0Y2giLAotICAgICAgICAgICAg
KQotCi0gICAgICAgICMgc3RvcmUgcmVtb3RlIHBhcmFtZXRlcnMKLSAgICAgICAgaWYgcXVpY190
cmFuc3BvcnRfcGFyYW1ldGVycy5hY2tfZGVsYXlfZXhwb25lbnQgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9yZW1vdGVfYWNrX2RlbGF5X2V4cG9uZW50ID0gc2VsZi5fcmVtb3RlX2Fj
a19kZWxheV9leHBvbmVudAotICAgICAgICBpZiBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLmFj
dGl2ZV9jb25uZWN0aW9uX2lkX2xpbWl0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5f
cmVtb3RlX2FjdGl2ZV9jb25uZWN0aW9uX2lkX2xpbWl0ID0gKAotICAgICAgICAgICAgICAgIHF1
aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMuYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQKLSAgICAg
ICAgICAgICkKLSAgICAgICAgaWYgcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5pZGxlX3RpbWVv
dXQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9yZW1vdGVfaWRsZV90aW1lb3V0ID0g
cXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5pZGxlX3RpbWVvdXQgLyAxMDAwLjAKLSAgICAgICAg
aWYgcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5tYXhfYWNrX2RlbGF5IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fbG9zcy5tYXhfYWNrX2RlbGF5ID0gcXVpY190cmFuc3BvcnRfcGFy
YW1ldGVycy5tYXhfYWNrX2RlbGF5IC8gMTAwMC4wCi0gICAgICAgIHNlbGYuX3JlbW90ZV9tYXhf
ZGF0YWdyYW1fZnJhbWVfc2l6ZSA9ICgKLSAgICAgICAgICAgIHF1aWNfdHJhbnNwb3J0X3BhcmFt
ZXRlcnMubWF4X2RhdGFncmFtX2ZyYW1lX3NpemUKLSAgICAgICAgKQotICAgICAgICBmb3IgcGFy
YW0gaW4gWwotICAgICAgICAgICAgIm1heF9kYXRhIiwKLSAgICAgICAgICAgICJtYXhfc3RyZWFt
X2RhdGFfYmlkaV9sb2NhbCIsCi0gICAgICAgICAgICAibWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVt
b3RlIiwKLSAgICAgICAgICAgICJtYXhfc3RyZWFtX2RhdGFfdW5pIiwKLSAgICAgICAgICAgICJt
YXhfc3RyZWFtc19iaWRpIiwKLSAgICAgICAgICAgICJtYXhfc3RyZWFtc191bmkiLAotICAgICAg
ICBdOgotICAgICAgICAgICAgdmFsdWUgPSBnZXRhdHRyKHF1aWNfdHJhbnNwb3J0X3BhcmFtZXRl
cnMsICJpbml0aWFsXyIgKyBwYXJhbSkKLSAgICAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgIl9yZW1vdGVfIiArIHBhcmFtLCB2YWx1
ZSkKLQotICAgIGRlZiBfc2VyaWFsaXplX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKHNlbGYpIC0+IGJ5
dGVzOgotICAgICAgICBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzID0gUXVpY1RyYW5zcG9ydFBh
cmFtZXRlcnMoCi0gICAgICAgICAgICBhY2tfZGVsYXlfZXhwb25lbnQ9c2VsZi5fbG9jYWxfYWNr
X2RlbGF5X2V4cG9uZW50LAotICAgICAgICAgICAgYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQ9
c2VsZi5fbG9jYWxfYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQsCi0gICAgICAgICAgICBpZGxl
X3RpbWVvdXQ9aW50KHNlbGYuX2NvbmZpZ3VyYXRpb24uaWRsZV90aW1lb3V0ICogMTAwMCksCi0g
ICAgICAgICAgICBpbml0aWFsX21heF9kYXRhPXNlbGYuX2xvY2FsX21heF9kYXRhLAotICAgICAg
ICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9sb2NhbD1zZWxmLl9sb2NhbF9tYXhf
c3RyZWFtX2RhdGFfYmlkaV9sb2NhbCwKLSAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9k
YXRhX2JpZGlfcmVtb3RlPXNlbGYuX2xvY2FsX21heF9zdHJlYW1fZGF0YV9iaWRpX3JlbW90ZSwK
LSAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX3VuaT1zZWxmLl9sb2NhbF9tYXhf
c3RyZWFtX2RhdGFfdW5pLAotICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtc19iaWRpPXNl
bGYuX2xvY2FsX21heF9zdHJlYW1zX2JpZGksCi0gICAgICAgICAgICBpbml0aWFsX21heF9zdHJl
YW1zX3VuaT1zZWxmLl9sb2NhbF9tYXhfc3RyZWFtc191bmksCi0gICAgICAgICAgICBtYXhfYWNr
X2RlbGF5PTI1LAotICAgICAgICAgICAgbWF4X2RhdGFncmFtX2ZyYW1lX3NpemU9c2VsZi5fY29u
ZmlndXJhdGlvbi5tYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZSwKLSAgICAgICAgICAgIHF1YW50dW1f
cmVhZGluZXNzPWIiUSIgKiAxMjAwCi0gICAgICAgICAgICBpZiBzZWxmLl9jb25maWd1cmF0aW9u
LnF1YW50dW1fcmVhZGluZXNzX3Rlc3QKLSAgICAgICAgICAgIGVsc2UgTm9uZSwKLSAgICAgICAg
KQotICAgICAgICBpZiBub3Qgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgcXVpY190cmFu
c3BvcnRfcGFyYW1ldGVycy5vcmlnaW5hbF9jb25uZWN0aW9uX2lkID0gKAotICAgICAgICAgICAg
ICAgIHNlbGYuX29yaWdpbmFsX2Nvbm5lY3Rpb25faWQKLSAgICAgICAgICAgICkKLQotICAgICAg
ICAjIGxvZyBldmVudAotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAg
ICBjYXRlZ29yeT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAgICAgICBldmVudD0icGFyYW1ldGVy
c19zZXQiLAotICAgICAgICAgICAgICAgIGRhdGE9c2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3Ry
YW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgICAgICAgICBvd25lcj0ibG9jYWwiLCBw
YXJhbWV0ZXJzPXF1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMKLSAgICAgICAgICAgICAgICApLAot
ICAgICAgICAgICAgKQotCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0zICogUEFDS0VU
X01BWF9TSVpFKQotICAgICAgICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAg
ICAgICAgICBidWYsIHF1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMsIHByb3RvY29sX3ZlcnNpb249
c2VsZi5fdmVyc2lvbgotICAgICAgICApCi0gICAgICAgIHJldHVybiBidWYuZGF0YQotCi0gICAg
ZGVmIF9zZXRfc3RhdGUoc2VsZiwgc3RhdGU6IFF1aWNDb25uZWN0aW9uU3RhdGUpIC0+IE5vbmU6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygiJXMgLT4gJXMiLCBzZWxmLl9zdGF0ZSwgc3Rh
dGUpCi0gICAgICAgIHNlbGYuX3N0YXRlID0gc3RhdGUKLQotICAgIGRlZiBfc3RyZWFtX2Nhbl9y
ZWNlaXZlKHNlbGYsIHN0cmVhbV9pZDogaW50KSAtPiBib29sOgotICAgICAgICByZXR1cm4gc3Ry
ZWFtX2lzX2NsaWVudF9pbml0aWF0ZWQoCi0gICAgICAgICAgICBzdHJlYW1faWQKLSAgICAgICAg
KSAhPSBzZWxmLl9pc19jbGllbnQgb3Igbm90IHN0cmVhbV9pc191bmlkaXJlY3Rpb25hbChzdHJl
YW1faWQpCi0KLSAgICBkZWYgX3N0cmVhbV9jYW5fc2VuZChzZWxmLCBzdHJlYW1faWQ6IGludCkg
LT4gYm9vbDoKLSAgICAgICAgcmV0dXJuIHN0cmVhbV9pc19jbGllbnRfaW5pdGlhdGVkKAotICAg
ICAgICAgICAgc3RyZWFtX2lkCi0gICAgICAgICkgPT0gc2VsZi5faXNfY2xpZW50IG9yIG5vdCBz
dHJlYW1faXNfdW5pZGlyZWN0aW9uYWwoc3RyZWFtX2lkKQotCi0gICAgZGVmIF91bmJsb2NrX3N0
cmVhbXMoc2VsZiwgaXNfdW5pZGlyZWN0aW9uYWw6IGJvb2wpIC0+IE5vbmU6Ci0gICAgICAgIGlm
IGlzX3VuaWRpcmVjdGlvbmFsOgotICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9
IHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFtX2RhdGFfdW5pCi0gICAgICAgICAgICBtYXhfc3RyZWFt
cyA9IHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFtc191bmkKLSAgICAgICAgICAgIHN0cmVhbXNfYmxv
Y2tlZCA9IHNlbGYuX3N0cmVhbXNfYmxvY2tlZF91bmkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIG1heF9zdHJlYW1fZGF0YV9yZW1vdGUgPSBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbV9kYXRh
X2JpZGlfcmVtb3RlCi0gICAgICAgICAgICBtYXhfc3RyZWFtcyA9IHNlbGYuX3JlbW90ZV9tYXhf
c3RyZWFtc19iaWRpCi0gICAgICAgICAgICBzdHJlYW1zX2Jsb2NrZWQgPSBzZWxmLl9zdHJlYW1z
X2Jsb2NrZWRfYmlkaQotCi0gICAgICAgIHdoaWxlIHN0cmVhbXNfYmxvY2tlZCBhbmQgc3RyZWFt
c19ibG9ja2VkWzBdLnN0cmVhbV9pZCAvLyA0IDwgbWF4X3N0cmVhbXM6Ci0gICAgICAgICAgICBz
dHJlYW0gPSBzdHJlYW1zX2Jsb2NrZWQucG9wKDApCi0gICAgICAgICAgICBzdHJlYW0uaXNfYmxv
Y2tlZCA9IEZhbHNlCi0gICAgICAgICAgICBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9
IG1heF9zdHJlYW1fZGF0YV9yZW1vdGUKLQotICAgICAgICBpZiBub3Qgc2VsZi5fc3RyZWFtc19i
bG9ja2VkX2JpZGkgYW5kIG5vdCBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfdW5pOgotICAgICAgICAg
ICAgc2VsZi5fc3RyZWFtc19ibG9ja2VkX3BlbmRpbmcgPSBGYWxzZQotCi0gICAgZGVmIF91cGRh
dGVfdHJhZmZpY19rZXkoCi0gICAgICAgIHNlbGYsCi0gICAgICAgIGRpcmVjdGlvbjogdGxzLkRp
cmVjdGlvbiwKLSAgICAgICAgZXBvY2g6IHRscy5FcG9jaCwKLSAgICAgICAgY2lwaGVyX3N1aXRl
OiB0bHMuQ2lwaGVyU3VpdGUsCi0gICAgICAgIHNlY3JldDogYnl0ZXMsCi0gICAgKSAtPiBOb25l
OgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sgd2hpY2ggaXMgaW52b2tlZCBieSB0aGUg
VExTIGVuZ2luZSB3aGVuIG5ldyB0cmFmZmljIGtleXMgYXJlCi0gICAgICAgIGF2YWlsYWJsZS4K
LSAgICAgICAgIiIiCi0gICAgICAgIHNlY3JldHNfbG9nX2ZpbGUgPSBzZWxmLl9jb25maWd1cmF0
aW9uLnNlY3JldHNfbG9nX2ZpbGUKLSAgICAgICAgaWYgc2VjcmV0c19sb2dfZmlsZSBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIGxhYmVsX3JvdyA9IHNlbGYuX2lzX2NsaWVudCA9PSAoZGlyZWN0
aW9uID09IHRscy5EaXJlY3Rpb24uREVDUllQVCkKLSAgICAgICAgICAgIGxhYmVsID0gU0VDUkVU
U19MQUJFTFNbbGFiZWxfcm93XVtlcG9jaC52YWx1ZV0KLSAgICAgICAgICAgIHNlY3JldHNfbG9n
X2ZpbGUud3JpdGUoCi0gICAgICAgICAgICAgICAgIiVzICVzICVzXG4iICUgKGxhYmVsLCBzZWxm
LnRscy5jbGllbnRfcmFuZG9tLmhleCgpLCBzZWNyZXQuaGV4KCkpCi0gICAgICAgICAgICApCi0g
ICAgICAgICAgICBzZWNyZXRzX2xvZ19maWxlLmZsdXNoKCkKLQotICAgICAgICBjcnlwdG8gPSBz
ZWxmLl9jcnlwdG9zW2Vwb2NoXQotICAgICAgICBpZiBkaXJlY3Rpb24gPT0gdGxzLkRpcmVjdGlv
bi5FTkNSWVBUOgotICAgICAgICAgICAgY3J5cHRvLnNlbmQuc2V0dXAoCi0gICAgICAgICAgICAg
ICAgY2lwaGVyX3N1aXRlPWNpcGhlcl9zdWl0ZSwgc2VjcmV0PXNlY3JldCwgdmVyc2lvbj1zZWxm
Ll92ZXJzaW9uCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjcnlw
dG8ucmVjdi5zZXR1cCgKLSAgICAgICAgICAgICAgICBjaXBoZXJfc3VpdGU9Y2lwaGVyX3N1aXRl
LCBzZWNyZXQ9c2VjcmV0LCB2ZXJzaW9uPXNlbGYuX3ZlcnNpb24KLSAgICAgICAgICAgICkKLQot
ICAgIGRlZiBfd3JpdGVfYXBwbGljYXRpb24oCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQ
YWNrZXRCdWlsZGVyLCBuZXR3b3JrX3BhdGg6IFF1aWNOZXR3b3JrUGF0aCwgbm93OiBmbG9hdAot
ICAgICkgLT4gTm9uZToKLSAgICAgICAgY3J5cHRvX3N0cmVhbTogT3B0aW9uYWxbUXVpY1N0cmVh
bV0gPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX2NyeXB0b3NbdGxzLkVwb2NoLk9ORV9SVFRdLnNl
bmQuaXNfdmFsaWQoKToKLSAgICAgICAgICAgIGNyeXB0byA9IHNlbGYuX2NyeXB0b3NbdGxzLkVw
b2NoLk9ORV9SVFRdCi0gICAgICAgICAgICBjcnlwdG9fc3RyZWFtID0gc2VsZi5fY3J5cHRvX3N0
cmVhbXNbdGxzLkVwb2NoLk9ORV9SVFRdCi0gICAgICAgICAgICBwYWNrZXRfdHlwZSA9IFBBQ0tF
VF9UWVBFX09ORV9SVFQKLSAgICAgICAgZWxpZiBzZWxmLl9jcnlwdG9zW3Rscy5FcG9jaC5aRVJP
X1JUVF0uc2VuZC5pc192YWxpZCgpOgotICAgICAgICAgICAgY3J5cHRvID0gc2VsZi5fY3J5cHRv
c1t0bHMuRXBvY2guWkVST19SVFRdCi0gICAgICAgICAgICBwYWNrZXRfdHlwZSA9IFBBQ0tFVF9U
WVBFX1pFUk9fUlRUCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
c3BhY2UgPSBzZWxmLl9zcGFjZXNbdGxzLkVwb2NoLk9ORV9SVFRdCi0KLSAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgICMgYXBwbHkgcGFjaW5nLCBleGNlcHQgaWYgd2UgaGF2ZSBBQ0tz
IHRvIHNlbmQKLSAgICAgICAgICAgIGlmIHNwYWNlLmFja19hdCBpcyBOb25lIG9yIHNwYWNlLmFj
a19hdCA+PSBub3c6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFjaW5nX2F0ID0gc2VsZi5fbG9z
cy5fcGFjZXIubmV4dF9zZW5kX3RpbWUobm93PW5vdykKLSAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9wYWNpbmdfYXQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg
ICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChwYWNrZXRfdHlwZSwgY3J5cHRvKQotCi0gICAg
ICAgICAgICBpZiBzZWxmLl9oYW5kc2hha2VfY29tcGxldGU6Ci0gICAgICAgICAgICAgICAgIyBB
Q0sKLSAgICAgICAgICAgICAgICBpZiBzcGFjZS5hY2tfYXQgaXMgbm90IE5vbmUgYW5kIHNwYWNl
LmFja19hdCA8PSBub3c6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2Fja19mcmFt
ZShidWlsZGVyPWJ1aWxkZXIsIHNwYWNlPXNwYWNlLCBub3c9bm93KQotCi0gICAgICAgICAgICAg
ICAgIyBIQU5EU0hBS0VfRE9ORQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZV9k
b25lX3BlbmRpbmc6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2hhbmRzaGFrZV9k
b25lX2ZyYW1lKGJ1aWxkZXI9YnVpbGRlcikKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFu
ZHNoYWtlX2RvbmVfcGVuZGluZyA9IEZhbHNlCi0KLSAgICAgICAgICAgICAgICAjIFBBVEggQ0hB
TExFTkdFCi0gICAgICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgICAgICBub3QgbmV0
d29ya19wYXRoLmlzX3ZhbGlkYXRlZAotICAgICAgICAgICAgICAgICAgICBhbmQgbmV0d29ya19w
YXRoLmxvY2FsX2NoYWxsZW5nZSBpcyBOb25lCi0gICAgICAgICAgICAgICAgKToKLSAgICAgICAg
ICAgICAgICAgICAgY2hhbGxlbmdlID0gb3MudXJhbmRvbSg4KQotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl93cml0ZV9wYXRoX2NoYWxsZW5nZV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJ1aWxkZXI9YnVpbGRlciwgY2hhbGxlbmdlPWNoYWxsZW5nZQotICAgICAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcGF0aC5sb2NhbF9jaGFsbGVuZ2Ug
PSBjaGFsbGVuZ2UKLQotICAgICAgICAgICAgICAgICMgUEFUSCBSRVNQT05TRQotICAgICAgICAg
ICAgICAgIGlmIG5ldHdvcmtfcGF0aC5yZW1vdGVfY2hhbGxlbmdlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9wYXRoX3Jlc3BvbnNlX2ZyYW1lKAotICAgICAg
ICAgICAgICAgICAgICAgICAgYnVpbGRlcj1idWlsZGVyLCBjaGFsbGVuZ2U9bmV0d29ya19wYXRo
LnJlbW90ZV9jaGFsbGVuZ2UKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAg
ICAgICBuZXR3b3JrX3BhdGgucmVtb3RlX2NoYWxsZW5nZSA9IE5vbmUKLQotICAgICAgICAgICAg
ICAgICMgTkVXX0NPTk5FQ1RJT05fSUQKLSAgICAgICAgICAgICAgICBmb3IgY29ubmVjdGlvbl9p
ZCBpbiBzZWxmLl9ob3N0X2NpZHM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBjb25uZWN0
aW9uX2lkLndhc19zZW50OgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfbmV3
X2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRl
cj1idWlsZGVyLCBjb25uZWN0aW9uX2lkPWNvbm5lY3Rpb25faWQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICkKLQotICAgICAgICAgICAgICAgICMgUkVUSVJFX0NPTk5FQ1RJT05fSUQKLSAgICAg
ICAgICAgICAgICB3aGlsZSBzZWxmLl9yZXRpcmVfY29ubmVjdGlvbl9pZHM6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlcXVlbmNlX251bWJlciA9IHNlbGYuX3JldGlyZV9jb25uZWN0aW9uX2lkcy5w
b3AoMCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfcmV0aXJlX2Nvbm5lY3Rpb25f
aWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIsIHNlcXVl
bmNlX251bWJlcj1zZXF1ZW5jZV9udW1iZXIKLSAgICAgICAgICAgICAgICAgICAgKQotCi0gICAg
ICAgICAgICAgICAgIyBTVFJFQU1TX0JMT0NLRUQKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9z
dHJlYW1zX2Jsb2NrZWRfcGVuZGluZzoKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc3Ry
ZWFtc19ibG9ja2VkX2JpZGk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9z
dHJlYW1zX2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRl
cj1idWlsZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9UXVpY0Zy
YW1lVHlwZS5TVFJFQU1TX0JMT0NLRURfQklESSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsaW1pdD1zZWxmLl9yZW1vdGVfbWF4X3N0cmVhbXNfYmlkaSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc3RyZWFtc19ibG9ja2VkX3Vu
aToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3N0cmVhbXNfYmxvY2tlZF9m
cmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1RdWljRnJhbWVUeXBlLlNUUkVBTVNf
QkxPQ0tFRF9VTkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQ9c2VsZi5fcmVt
b3RlX21heF9zdHJlYW1zX3VuaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc3RyZWFtc19ibG9ja2VkX3BlbmRpbmcgPSBGYWxzZQotCi0gICAg
ICAgICAgICAgICAgIyBNQVhfREFUQQotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2Nvbm5l
Y3Rpb25fbGltaXRzKGJ1aWxkZXI9YnVpbGRlciwgc3BhY2U9c3BhY2UpCi0KLSAgICAgICAgICAg
ICMgc3RyZWFtLWxldmVsIGxpbWl0cwotICAgICAgICAgICAgZm9yIHN0cmVhbSBpbiBzZWxmLl9z
dHJlYW1zLnZhbHVlcygpOgotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3N0cmVhbV9saW1p
dHMoYnVpbGRlcj1idWlsZGVyLCBzcGFjZT1zcGFjZSwgc3RyZWFtPXN0cmVhbSkKLQotICAgICAg
ICAgICAgIyBQSU5HICh1c2VyLXJlcXVlc3QpCi0gICAgICAgICAgICBpZiBzZWxmLl9waW5nX3Bl
bmRpbmc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfcGluZ19mcmFtZShidWlsZGVyLCBz
ZWxmLl9waW5nX3BlbmRpbmcpCi0gICAgICAgICAgICAgICAgc2VsZi5fcGluZ19wZW5kaW5nLmNs
ZWFyKCkKLQotICAgICAgICAgICAgIyBQSU5HIChwcm9iZSkKLSAgICAgICAgICAgIGlmIHNlbGYu
X3Byb2JlX3BlbmRpbmc6Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfcGluZ19mcmFtZShi
dWlsZGVyLCBjb21tZW50PSJwcm9iZSIpCi0gICAgICAgICAgICAgICAgc2VsZi5fcHJvYmVfcGVu
ZGluZyA9IEZhbHNlCi0KLSAgICAgICAgICAgICMgQ1JZUFRPCi0gICAgICAgICAgICBpZiBjcnlw
dG9fc3RyZWFtIGlzIG5vdCBOb25lIGFuZCBub3QgY3J5cHRvX3N0cmVhbS5zZW5kX2J1ZmZlcl9p
c19lbXB0eToKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9jcnlwdG9fZnJhbWUoCi0gICAg
ICAgICAgICAgICAgICAgIGJ1aWxkZXI9YnVpbGRlciwgc3BhY2U9c3BhY2UsIHN0cmVhbT1jcnlw
dG9fc3RyZWFtCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIERBVEFHUkFNCi0g
ICAgICAgICAgICB3aGlsZSBzZWxmLl9kYXRhZ3JhbXNfcGVuZGluZzoKLSAgICAgICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGFncmFtX2ZyYW1lKAot
ICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcj1idWlsZGVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YT1zZWxmLl9kYXRhZ3JhbXNfcGVuZGluZ1swXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lX3R5cGU9UXVpY0ZyYW1lVHlwZS5EQVRBR1JBTV9XSVRIX0xFTkdUSCwK
LSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9kYXRhZ3Jh
bXNfcGVuZGluZy5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAgICBleGNlcHQgUXVpY1BhY2tldEJ1
aWxkZXJTdG9wOgotICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAjIFNU
UkVBTQotICAgICAgICAgICAgZm9yIHN0cmVhbSBpbiBzZWxmLl9zdHJlYW1zLnZhbHVlcygpOgot
ICAgICAgICAgICAgICAgIGlmIG5vdCBzdHJlYW0uaXNfYmxvY2tlZCBhbmQgbm90IHN0cmVhbS5z
ZW5kX2J1ZmZlcl9pc19lbXB0eToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVtb3RlX21h
eF9kYXRhX3VzZWQgKz0gc2VsZi5fd3JpdGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAg
ICAgICAgICAgYnVpbGRlcj1idWlsZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2U9
c3BhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW09c3RyZWFtLAotICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4X29mZnNldD1taW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RyZWFtLl9zZW5kX2hpZ2hlc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNl
bGYuX3JlbW90ZV9tYXhfZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gc2VsZi5f
cmVtb3RlX21heF9kYXRhX3VzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt
Lm1heF9zdHJlYW1fZGF0YV9yZW1vdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICApLAotICAg
ICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIGlmIGJ1aWxkZXIucGFja2V0X2lzX2Vt
cHR5OgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvc3MuX3BhY2VyLnVwZGF0ZV9hZnRlcl9zZW5kKG5vdz1ub3cpCi0KLSAg
ICBkZWYgX3dyaXRlX2hhbmRzaGFrZSgKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tl
dEJ1aWxkZXIsIGVwb2NoOiB0bHMuRXBvY2gsIG5vdzogZmxvYXQKLSAgICApIC0+IE5vbmU6Ci0g
ICAgICAgIGNyeXB0byA9IHNlbGYuX2NyeXB0b3NbZXBvY2hdCi0gICAgICAgIGlmIG5vdCBjcnlw
dG8uc2VuZC5pc192YWxpZCgpOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgY3J5cHRv
X3N0cmVhbSA9IHNlbGYuX2NyeXB0b19zdHJlYW1zW2Vwb2NoXQotICAgICAgICBzcGFjZSA9IHNl
bGYuX3NwYWNlc1tlcG9jaF0KLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYg
ZXBvY2ggPT0gdGxzLkVwb2NoLklOSVRJQUw6Ci0gICAgICAgICAgICAgICAgcGFja2V0X3R5cGUg
PSBQQUNLRVRfVFlQRV9JTklUSUFMCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHBhY2tldF90eXBlID0gUEFDS0VUX1RZUEVfSEFORFNIQUtFCi0gICAgICAgICAgICBidWlsZGVy
LnN0YXJ0X3BhY2tldChwYWNrZXRfdHlwZSwgY3J5cHRvKQotCi0gICAgICAgICAgICAjIEFDSwot
ICAgICAgICAgICAgaWYgc3BhY2UuYWNrX2F0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
IHNlbGYuX3dyaXRlX2Fja19mcmFtZShidWlsZGVyPWJ1aWxkZXIsIHNwYWNlPXNwYWNlLCBub3c9
bm93KQotCi0gICAgICAgICAgICAjIENSWVBUTwotICAgICAgICAgICAgaWYgbm90IGNyeXB0b19z
dHJlYW0uc2VuZF9idWZmZXJfaXNfZW1wdHk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fd3Jp
dGVfY3J5cHRvX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIsIHNw
YWNlPXNwYWNlLCBzdHJlYW09Y3J5cHRvX3N0cmVhbQotICAgICAgICAgICAgICAgICk6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3Byb2JlX3BlbmRpbmcgPSBGYWxzZQotCi0gICAgICAgICAg
ICAjIFBJTkcgKHByb2JlKQotICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIHNlbGYu
X3Byb2JlX3BlbmRpbmcKLSAgICAgICAgICAgICAgICBhbmQgZXBvY2ggPT0gdGxzLkVwb2NoLkhB
TkRTSEFLRQotICAgICAgICAgICAgICAgIGFuZCBub3Qgc2VsZi5faGFuZHNoYWtlX2NvbXBsZXRl
Ci0gICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3BpbmdfZnJhbWUo
YnVpbGRlciwgY29tbWVudD0icHJvYmUiKQotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2JlX3Bl
bmRpbmcgPSBGYWxzZQotCi0gICAgICAgICAgICBpZiBidWlsZGVyLnBhY2tldF9pc19lbXB0eToK
LSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgZGVmIF93cml0ZV9hY2tfZnJhbWUoCi0gICAg
ICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQYWNrZXRCdWlsZGVyLCBzcGFjZTogUXVpY1BhY2tldFNw
YWNlLCBub3c6IGZsb2F0Ci0gICAgKSAtPiBOb25lOgotICAgICAgICAjIGNhbGN1bGF0ZSBBQ0sg
ZGVsYXkKLSAgICAgICAgYWNrX2RlbGF5ID0gbm93IC0gc3BhY2UubGFyZ2VzdF9yZWNlaXZlZF90
aW1lCi0gICAgICAgIGFja19kZWxheV9lbmNvZGVkID0gaW50KGFja19kZWxheSAqIDEwMDAwMDAp
ID4+IHNlbGYuX2xvY2FsX2Fja19kZWxheV9leHBvbmVudAotCi0gICAgICAgIGJ1ZiA9IGJ1aWxk
ZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAgICBRdWljRnJhbWVUeXBlLkFDSywKLSAgICAgICAg
ICAgIGNhcGFjaXR5PUFDS19GUkFNRV9DQVBBQ0lUWSwKLSAgICAgICAgICAgIGhhbmRsZXI9c2Vs
Zi5fb25fYWNrX2RlbGl2ZXJ5LAotICAgICAgICAgICAgaGFuZGxlcl9hcmdzPShzcGFjZSwgc3Bh
Y2UubGFyZ2VzdF9yZWNlaXZlZF9wYWNrZXQpLAotICAgICAgICApCi0gICAgICAgIHJhbmdlcyA9
IHB1c2hfYWNrX2ZyYW1lKGJ1Ziwgc3BhY2UuYWNrX3F1ZXVlLCBhY2tfZGVsYXlfZW5jb2RlZCkK
LSAgICAgICAgc3BhY2UuYWNrX2F0ID0gTm9uZQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAg
ICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYnVpbGRl
ci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNf
bG9nZ2VyLmVuY29kZV9hY2tfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIHJhbmdlcz1zcGFj
ZS5hY2tfcXVldWUsIGRlbGF5PWFja19kZWxheQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICkKLQotICAgICAgICAjIGNoZWNrIGlmIHdlIG5lZWQgdG8gdHJpZ2dlciBhbiBBQ0stb2Yt
QUNLCi0gICAgICAgIGlmIHJhbmdlcyA+IDEgYW5kIGJ1aWxkZXIucGFja2V0X251bWJlciAlIDgg
PT0gMDoKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX3BpbmdfZnJhbWUoYnVpbGRlciwgY29tbWVu
dD0iQUNLLW9mLUFDSyB0cmlnZ2VyIikKLQotICAgIGRlZiBfd3JpdGVfY29ubmVjdGlvbl9jbG9z
ZV9mcmFtZSgKLSAgICAgICAgc2VsZiwKLSAgICAgICAgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxk
ZXIsCi0gICAgICAgIGVycm9yX2NvZGU6IGludCwKLSAgICAgICAgZnJhbWVfdHlwZTogT3B0aW9u
YWxbaW50XSwKLSAgICAgICAgcmVhc29uX3BocmFzZTogc3RyLAotICAgICkgLT4gTm9uZToKLSAg
ICAgICAgcmVhc29uX2J5dGVzID0gcmVhc29uX3BocmFzZS5lbmNvZGUoInV0ZjgiKQotICAgICAg
ICByZWFzb25fbGVuZ3RoID0gbGVuKHJlYXNvbl9ieXRlcykKLQotICAgICAgICBpZiBmcmFtZV90
eXBlIGlzIE5vbmU6Ci0gICAgICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAg
ICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuQVBQTElDQVRJT05fQ0xPU0UsCi0gICAgICAgICAg
ICAgICAgY2FwYWNpdHk9QVBQTElDQVRJT05fQ0xPU0VfRlJBTUVfQ0FQQUNJVFkgKyByZWFzb25f
bGVuZ3RoLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgYnVmLnB1c2hfdWludF92YXIoZXJy
b3JfY29kZSkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHJlYXNvbl9sZW5ndGgpCi0g
ICAgICAgICAgICBidWYucHVzaF9ieXRlcyhyZWFzb25fYnl0ZXMpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAgICAgICAgICAgICAgIFF1
aWNGcmFtZVR5cGUuVFJBTlNQT1JUX0NMT1NFLAotICAgICAgICAgICAgICAgIGNhcGFjaXR5PVRS
QU5TUE9SVF9DTE9TRV9GUkFNRV9DQVBBQ0lUWSArIHJlYXNvbl9sZW5ndGgsCi0gICAgICAgICAg
ICApCi0gICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihlcnJvcl9jb2RlKQotICAgICAgICAg
ICAgYnVmLnB1c2hfdWludF92YXIoZnJhbWVfdHlwZSkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3Vp
bnRfdmFyKHJlYXNvbl9sZW5ndGgpCi0gICAgICAgICAgICBidWYucHVzaF9ieXRlcyhyZWFzb25f
Ynl0ZXMpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5h
cHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2Nvbm5lY3Rp
b25fY2xvc2VfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9ZXJyb3JfY29k
ZSwKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAg
ICAgICAgICAgICByZWFzb25fcGhyYXNlPXJlYXNvbl9waHJhc2UsCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9jb25uZWN0aW9uX2xpbWl0cygKLSAg
ICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsIHNwYWNlOiBRdWljUGFja2V0
U3BhY2UKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBSYWlzZSBNQVhfREFU
QSBpZiBuZWVkZWQuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLl9sb2NhbF9tYXhfZGF0
YV91c2VkICogMiA+IHNlbGYuX2xvY2FsX21heF9kYXRhOgotICAgICAgICAgICAgc2VsZi5fbG9j
YWxfbWF4X2RhdGEgKj0gMgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCJMb2NhbCBt
YXhfZGF0YSByYWlzZWQgdG8gJWQiLCBzZWxmLl9sb2NhbF9tYXhfZGF0YSkKLSAgICAgICAgaWYg
c2VsZi5fbG9jYWxfbWF4X2RhdGFfc2VudCAhPSBzZWxmLl9sb2NhbF9tYXhfZGF0YToKLSAgICAg
ICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAgICAgICAgUXVpY0Zy
YW1lVHlwZS5NQVhfREFUQSwKLSAgICAgICAgICAgICAgICBjYXBhY2l0eT1NQVhfREFUQV9GUkFN
RV9DQVBBQ0lUWSwKLSAgICAgICAgICAgICAgICBoYW5kbGVyPXNlbGYuX29uX21heF9kYXRhX2Rl
bGl2ZXJ5LAotICAgICAgICAgICAgKQotICAgICAgICAgICAgYnVmLnB1c2hfdWludF92YXIoc2Vs
Zi5fbG9jYWxfbWF4X2RhdGEpCi0gICAgICAgICAgICBzZWxmLl9sb2NhbF9tYXhfZGF0YV9zZW50
ID0gc2VsZi5fbG9jYWxfbWF4X2RhdGEKLQotICAgICAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAg
ICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
IGJ1aWxkZXIucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX21heF9kYXRhX2ZyYW1lKHNlbGYuX2xvY2FsX21heF9k
YXRhKQotICAgICAgICAgICAgICAgICkKLQotICAgIGRlZiBfd3JpdGVfY3J5cHRvX2ZyYW1lKAot
ICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwgc3BhY2U6IFF1aWNQYWNr
ZXRTcGFjZSwgc3RyZWFtOiBRdWljU3RyZWFtCi0gICAgKSAtPiBib29sOgotICAgICAgICBmcmFt
ZV9vdmVyaGVhZCA9IDMgKyBzaXplX3VpbnRfdmFyKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0KQot
ICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0
X3NwYWNlIC0gZnJhbWVfb3ZlcmhlYWQpCi0gICAgICAgIGlmIGZyYW1lIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAgICAgICAgICBR
dWljRnJhbWVUeXBlLkNSWVBUTywKLSAgICAgICAgICAgICAgICBjYXBhY2l0eT1mcmFtZV9vdmVy
aGVhZCwKLSAgICAgICAgICAgICAgICBoYW5kbGVyPXN0cmVhbS5vbl9kYXRhX2RlbGl2ZXJ5LAot
ICAgICAgICAgICAgICAgIGhhbmRsZXJfYXJncz0oZnJhbWUub2Zmc2V0LCBmcmFtZS5vZmZzZXQg
KyBsZW4oZnJhbWUuZGF0YSkpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgYnVmLnB1c2hf
dWludF92YXIoZnJhbWUub2Zmc2V0KQotICAgICAgICAgICAgYnVmLnB1c2hfdWludDE2KGxlbihm
cmFtZS5kYXRhKSB8IDB4NDAwMCkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGZyYW1lLmRh
dGEpCi0KLSAgICAgICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgICAgICBpZiBzZWxmLl9xdWlj
X2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2Vy
X2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVu
Y29kZV9jcnlwdG9fZnJhbWUoZnJhbWUpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
cmV0dXJuIFRydWUKLQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBfd3JpdGVfZGF0
YWdyYW1fZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQYWNrZXRCdWlsZGVyLCBk
YXRhOiBieXRlcywgZnJhbWVfdHlwZTogUXVpY0ZyYW1lVHlwZQotICAgICkgLT4gYm9vbDoKLSAg
ICAgICAgIiIiCi0gICAgICAgIFdyaXRlIGEgREFUQUdSQU0gZnJhbWUuCi0KLSAgICAgICAgUmV0
dXJucyBUcnVlIGlmIHRoZSBmcmFtZSB3YXMgcHJvY2Vzc2VkLCBGYWxzZSBvdGhlcndpc2UuCi0g
ICAgICAgICIiIgotICAgICAgICBhc3NlcnQgZnJhbWVfdHlwZSA9PSBRdWljRnJhbWVUeXBlLkRB
VEFHUkFNX1dJVEhfTEVOR1RICi0gICAgICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAgICAgICBm
cmFtZV9zaXplID0gMSArIHNpemVfdWludF92YXIobGVuZ3RoKSArIGxlbmd0aAotCi0gICAgICAg
IGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoZnJhbWVfdHlwZSwgY2FwYWNpdHk9ZnJhbWVfc2l6
ZSkKLSAgICAgICAgYnVmLnB1c2hfdWludF92YXIobGVuZ3RoKQotICAgICAgICBidWYucHVzaF9i
eXRlcyhkYXRhKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNf
bG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFt
ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9kYXRh
Z3JhbV9mcmFtZShsZW5ndGg9bGVuZ3RoKQotICAgICAgICAgICAgKQotCi0gICAgICAgIHJldHVy
biBUcnVlCi0KLSAgICBkZWYgX3dyaXRlX2hhbmRzaGFrZV9kb25lX2ZyYW1lKHNlbGYsIGJ1aWxk
ZXI6IFF1aWNQYWNrZXRCdWlsZGVyKSAtPiBOb25lOgotICAgICAgICBidWlsZGVyLnN0YXJ0X2Zy
YW1lKAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5IQU5EU0hBS0VfRE9ORSwKLSAgICAgICAg
ICAgIGNhcGFjaXR5PUhBTkRTSEFLRV9ET05FX0ZSQU1FX0NBUEFDSVRZLAotICAgICAgICAgICAg
aGFuZGxlcj1zZWxmLl9vbl9oYW5kc2hha2VfZG9uZV9kZWxpdmVyeSwKLSAgICAgICAgKQotCi0g
ICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAg
ICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9oYW5kc2hha2VfZG9uZV9mcmFt
ZSgpCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgX3dyaXRlX25ld19jb25uZWN0aW9uX2lkX2Zy
YW1lKAotICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwgY29ubmVjdGlv
bl9pZDogUXVpY0Nvbm5lY3Rpb25JZAotICAgICkgLT4gTm9uZToKLSAgICAgICAgcmV0aXJlX3By
aW9yX3RvID0gMCAgIyBGSVhNRQotCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUo
Ci0gICAgICAgICAgICBRdWljRnJhbWVUeXBlLk5FV19DT05ORUNUSU9OX0lELAotICAgICAgICAg
ICAgY2FwYWNpdHk9TkVXX0NPTk5FQ1RJT05fSURfRlJBTUVfQ0FQQUNJVFksCi0gICAgICAgICAg
ICBoYW5kbGVyPXNlbGYuX29uX25ld19jb25uZWN0aW9uX2lkX2RlbGl2ZXJ5LAotICAgICAgICAg
ICAgaGFuZGxlcl9hcmdzPShjb25uZWN0aW9uX2lkLCksCi0gICAgICAgICkKLSAgICAgICAgYnVm
LnB1c2hfdWludF92YXIoY29ubmVjdGlvbl9pZC5zZXF1ZW5jZV9udW1iZXIpCi0gICAgICAgIGJ1
Zi5wdXNoX3VpbnRfdmFyKHJldGlyZV9wcmlvcl90bykKLSAgICAgICAgYnVmLnB1c2hfdWludDgo
bGVuKGNvbm5lY3Rpb25faWQuY2lkKSkKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoY29ubmVjdGlv
bl9pZC5jaWQpCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGNvbm5lY3Rpb25faWQuc3RhdGVsZXNz
X3Jlc2V0X3Rva2VuKQotCi0gICAgICAgIGNvbm5lY3Rpb25faWQud2FzX3NlbnQgPSBUcnVlCi0g
ICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZChjb25u
ZWN0aW9uX2lkPWNvbm5lY3Rpb25faWQuY2lkKSkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAg
ICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJ1aWxk
ZXIucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWlj
X2xvZ2dlci5lbmNvZGVfbmV3X2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgICAgICAgICAg
ICAgIGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZC5jaWQsCi0gICAgICAgICAgICAgICAgICAg
IHJldGlyZV9wcmlvcl90bz1yZXRpcmVfcHJpb3JfdG8sCi0gICAgICAgICAgICAgICAgICAgIHNl
cXVlbmNlX251bWJlcj1jb25uZWN0aW9uX2lkLnNlcXVlbmNlX251bWJlciwKLSAgICAgICAgICAg
ICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWNvbm5lY3Rpb25faWQuc3RhdGVsZXNzX3Jl
c2V0X3Rva2VuLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLQotICAgIGRlZiBf
d3JpdGVfcGF0aF9jaGFsbGVuZ2VfZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQ
YWNrZXRCdWlsZGVyLCBjaGFsbGVuZ2U6IGJ5dGVzCi0gICAgKSAtPiBOb25lOgotICAgICAgICBi
dWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5QQVRI
X0NIQUxMRU5HRSwgY2FwYWNpdHk9UEFUSF9DSEFMTEVOR0VfRlJBTUVfQ0FQQUNJVFkKLSAgICAg
ICAgKQotICAgICAgICBidWYucHVzaF9ieXRlcyhjaGFsbGVuZ2UpCi0KLSAgICAgICAgIyBsb2cg
ZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAg
c2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3BhdGhfY2hhbGxlbmdlX2ZyYW1lKGRhdGE9Y2hhbGxl
bmdlKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9wYXRoX3Jlc3BvbnNlX2ZyYW1l
KAotICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwgY2hhbGxlbmdlOiBi
eXRlcwotICAgICkgLT4gTm9uZToKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZSgK
LSAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuUEFUSF9SRVNQT05TRSwgY2FwYWNpdHk9UEFUSF9S
RVNQT05TRV9GUkFNRV9DQVBBQ0lUWQotICAgICAgICApCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVz
KGNoYWxsZW5nZSkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWlj
X2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJ1aWxkZXIucXVpY19sb2dnZXJfZnJh
bWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfcGF0
aF9yZXNwb25zZV9mcmFtZShkYXRhPWNoYWxsZW5nZSkKLSAgICAgICAgICAgICkKLQotICAgIGRl
ZiBfd3JpdGVfcGluZ19mcmFtZSgKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1
aWxkZXIsIHVpZHM6IExpc3RbaW50XSA9IFtdLCBjb21tZW50PSIiCi0gICAgKToKLSAgICAgICAg
YnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuUElORywKLSAg
ICAgICAgICAgIGNhcGFjaXR5PVBJTkdfRlJBTUVfQ0FQQUNJVFksCi0gICAgICAgICAgICBoYW5k
bGVyPXNlbGYuX29uX3BpbmdfZGVsaXZlcnksCi0gICAgICAgICAgICBoYW5kbGVyX2FyZ3M9KHR1
cGxlKHVpZHMpLCksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgIlNlbmRpbmcgUElORyVzIGluIHBhY2tldCAlZCIsCi0gICAgICAgICAgICAiICgl
cykiICUgY29tbWVudCBpZiBjb21tZW50IGVsc2UgIiIsCi0gICAgICAgICAgICBidWlsZGVyLnBh
Y2tldF9udW1iZXIsCi0gICAgICAgICkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBp
ZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJ1aWxkZXIucXVp
Y19sb2dnZXJfZnJhbWVzLmFwcGVuZChzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfcGluZ19mcmFt
ZSgpKQotCi0gICAgZGVmIF93cml0ZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZSgKLSAgICAg
ICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsIHNlcXVlbmNlX251bWJlcjogaW50
Ci0gICAgKSAtPiBOb25lOgotICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAg
ICAgICAgICAgUXVpY0ZyYW1lVHlwZS5SRVRJUkVfQ09OTkVDVElPTl9JRCwKLSAgICAgICAgICAg
IGNhcGFjaXR5PVJFVElSRV9DT05ORUNUSU9OX0lEX0NBUEFDSVRZLAotICAgICAgICAgICAgaGFu
ZGxlcj1zZWxmLl9vbl9yZXRpcmVfY29ubmVjdGlvbl9pZF9kZWxpdmVyeSwKLSAgICAgICAgICAg
IGhhbmRsZXJfYXJncz0oc2VxdWVuY2VfbnVtYmVyLCksCi0gICAgICAgICkKLSAgICAgICAgYnVm
LnB1c2hfdWludF92YXIoc2VxdWVuY2VfbnVtYmVyKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0g
ICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYnVp
bGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1
aWNfbG9nZ2VyLmVuY29kZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZShzZXF1ZW5jZV9udW1i
ZXIpCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgX3dyaXRlX3N0cmVhbV9mcmFtZSgKLSAgICAg
ICAgc2VsZiwKLSAgICAgICAgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsCi0gICAgICAgIHNw
YWNlOiBRdWljUGFja2V0U3BhY2UsCi0gICAgICAgIHN0cmVhbTogUXVpY1N0cmVhbSwKLSAgICAg
ICAgbWF4X29mZnNldDogaW50LAotICAgICkgLT4gaW50OgotICAgICAgICAjIHRoZSBmcmFtZSBk
YXRhIHNpemUgaXMgY29uc3RyYWluZWQgYnkgb3VyIHBlZXIncyBNQVhfREFUQSBhbmQKLSAgICAg
ICAgIyB0aGUgc3BhY2UgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IHBhY2tldAotICAgICAgICBm
cmFtZV9vdmVyaGVhZCA9ICgKLSAgICAgICAgICAgIDMKLSAgICAgICAgICAgICsgc2l6ZV91aW50
X3ZhcihzdHJlYW0uc3RyZWFtX2lkKQotICAgICAgICAgICAgKyAoc2l6ZV91aW50X3ZhcihzdHJl
YW0ubmV4dF9zZW5kX29mZnNldCkgaWYgc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQgZWxzZSAwKQot
ICAgICAgICApCi0gICAgICAgIHByZXZpb3VzX3NlbmRfaGlnaGVzdCA9IHN0cmVhbS5fc2VuZF9o
aWdoZXN0Ci0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSgKLSAgICAgICAgICAgIGJ1
aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSAtIGZyYW1lX292ZXJoZWFkLCBtYXhfb2Zmc2V0
Ci0gICAgICAgICkKLQotICAgICAgICBpZiBmcmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGZyYW1lX3R5cGUgPSBRdWljRnJhbWVUeXBlLlNUUkVBTV9CQVNFIHwgMiAgIyBsZW5ndGgKLSAg
ICAgICAgICAgIGlmIGZyYW1lLm9mZnNldDoKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlIHw9
IDQKLSAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBl
IHw9IDEKLSAgICAgICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICBjYXBhY2l0eT1mcmFtZV9vdmVyaGVh
ZCwKLSAgICAgICAgICAgICAgICBoYW5kbGVyPXN0cmVhbS5vbl9kYXRhX2RlbGl2ZXJ5LAotICAg
ICAgICAgICAgICAgIGhhbmRsZXJfYXJncz0oZnJhbWUub2Zmc2V0LCBmcmFtZS5vZmZzZXQgKyBs
ZW4oZnJhbWUuZGF0YSkpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgYnVmLnB1c2hfdWlu
dF92YXIoc3RyZWFtLnN0cmVhbV9pZCkKLSAgICAgICAgICAgIGlmIGZyYW1lLm9mZnNldDoKLSAg
ICAgICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihmcmFtZS5vZmZzZXQpCi0gICAgICAgICAg
ICBidWYucHVzaF91aW50MTYobGVuKGZyYW1lLmRhdGEpIHwgMHg0MDAwKQotICAgICAgICAgICAg
YnVmLnB1c2hfYnl0ZXMoZnJhbWUuZGF0YSkKLQotICAgICAgICAgICAgIyBsb2cgZnJhbWUKLSAg
ICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
ICAgIGJ1aWxkZXIucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3N0cmVhbV9mcmFtZSgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lLCBzdHJlYW1faWQ9c3RyZWFtLnN0cmVhbV9pZAotICAgICAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICByZXR1cm4gc3RyZWFt
Ll9zZW5kX2hpZ2hlc3QgLSBwcmV2aW91c19zZW5kX2hpZ2hlc3QKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHJldHVybiAwCi0KLSAgICBkZWYgX3dyaXRlX3N0cmVhbV9saW1pdHMoCi0gICAg
ICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQYWNrZXRCdWlsZGVyLCBzcGFjZTogUXVpY1BhY2tldFNw
YWNlLCBzdHJlYW06IFF1aWNTdHJlYW0KLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAg
ICAgICBSYWlzZSBNQVhfU1RSRUFNX0RBVEEgaWYgbmVlZGVkLgotCi0gICAgICAgIFRoZSBvbmx5
IGNhc2Ugd2hlcmUgYHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWxgIGlzIHplcm8gaXMgZm9y
Ci0gICAgICAgIGxvY2FsbHkgY3JlYXRlZCB1bmlkaXJlY3Rpb25hbCBzdHJlYW1zLiBXZSBza2lw
IHN1Y2ggc3RyZWFtcyB0byBhdm9pZAotICAgICAgICBzcHVyaW91cyBsb2dnaW5nLgotICAgICAg
ICAiIiIKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9s
b2NhbAotICAgICAgICAgICAgYW5kIHN0cmVhbS5fcmVjdl9oaWdoZXN0ICogMiA+IHN0cmVhbS5t
YXhfc3RyZWFtX2RhdGFfbG9jYWwKLSAgICAgICAgKToKLSAgICAgICAgICAgIHN0cmVhbS5tYXhf
c3RyZWFtX2RhdGFfbG9jYWwgKj0gMgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAot
ICAgICAgICAgICAgICAgICJTdHJlYW0gJWQgbG9jYWwgbWF4X3N0cmVhbV9kYXRhIHJhaXNlZCB0
byAlZCIsCi0gICAgICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAg
ICBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsLAotICAgICAgICAgICAgKQotICAgICAgICBp
ZiBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsX3NlbnQgIT0gc3RyZWFtLm1heF9zdHJlYW1f
ZGF0YV9sb2NhbDoKLSAgICAgICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAg
ICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5NQVhfU1RSRUFNX0RBVEEsCi0gICAgICAgICAgICAg
ICAgY2FwYWNpdHk9TUFYX1NUUkVBTV9EQVRBX0ZSQU1FX0NBUEFDSVRZLAotICAgICAgICAgICAg
ICAgIGhhbmRsZXI9c2VsZi5fb25fbWF4X3N0cmVhbV9kYXRhX2RlbGl2ZXJ5LAotICAgICAgICAg
ICAgICAgIGhhbmRsZXJfYXJncz0oc3RyZWFtLCksCi0gICAgICAgICAgICApCi0gICAgICAgICAg
ICBidWYucHVzaF91aW50X3ZhcihzdHJlYW0uc3RyZWFtX2lkKQotICAgICAgICAgICAgYnVmLnB1
c2hfdWludF92YXIoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbCkKLSAgICAgICAgICAgIHN0
cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWxfc2VudCA9IHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFf
bG9jYWwKLQotICAgICAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgICAgIGlmIHNlbGYuX3F1
aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGJ1aWxkZXIucXVpY19sb2dn
ZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIu
ZW5jb2RlX21heF9zdHJlYW1fZGF0YV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIG1h
eGltdW09c3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbCwgc3RyZWFtX2lkPXN0cmVhbS5zdHJl
YW1faWQKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAgIGRl
ZiBfd3JpdGVfc3RyZWFtc19ibG9ja2VkX2ZyYW1lKAotICAgICAgICBzZWxmLCBidWlsZGVyOiBR
dWljUGFja2V0QnVpbGRlciwgZnJhbWVfdHlwZTogUXVpY0ZyYW1lVHlwZSwgbGltaXQ6IGludAot
ICAgICkgLT4gTm9uZToKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShmcmFtZV90
eXBlLCBjYXBhY2l0eT1TVFJFQU1TX0JMT0NLRURfQ0FQQUNJVFkpCi0gICAgICAgIGJ1Zi5wdXNo
X3VpbnRfdmFyKGxpbWl0KQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYu
X3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dl
cl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29k
ZV9zdHJlYW1zX2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGlzX3VuaWRpcmVj
dGlvbmFsPWZyYW1lX3R5cGUgPT0gUXVpY0ZyYW1lVHlwZS5TVFJFQU1TX0JMT0NLRURfVU5JLAot
ICAgICAgICAgICAgICAgICAgICBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICApCi0gICAg
ICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jcnlw
dG8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jcnlwdG8ucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhY2IzMGVlZGE4ZjFjN2M2MDZiOTA0YmE3NzI3MTNkMzU4
NzM0YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvY3J5cHRvLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTk2ICswLDAgQEAKLWltcG9ydCBiaW5hc2NpaQotZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFs
LCBUdXBsZQotCi1mcm9tIC4uX2NyeXB0byBpbXBvcnQgQUVBRCwgQ3J5cHRvRXJyb3IsIEhlYWRl
clByb3RlY3Rpb24KLWZyb20gLi50bHMgaW1wb3J0IENpcGhlclN1aXRlLCBjaXBoZXJfc3VpdGVf
aGFzaCwgaGtkZl9leHBhbmRfbGFiZWwsIGhrZGZfZXh0cmFjdAotZnJvbSAucGFja2V0IGltcG9y
dCBkZWNvZGVfcGFja2V0X251bWJlciwgaXNfbG9uZ19oZWFkZXIKLQotQ0lQSEVSX1NVSVRFUyA9
IHsKLSAgICBDaXBoZXJTdWl0ZS5BRVNfMTI4X0dDTV9TSEEyNTY6IChiImFlcy0xMjgtZWNiIiwg
YiJhZXMtMTI4LWdjbSIpLAotICAgIENpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NDogKGIi
YWVzLTI1Ni1lY2IiLCBiImFlcy0yNTYtZ2NtIiksCi0gICAgQ2lwaGVyU3VpdGUuQ0hBQ0hBMjBf
UE9MWTEzMDVfU0hBMjU2OiAoYiJjaGFjaGEyMCIsIGIiY2hhY2hhMjAtcG9seTEzMDUiKSwKLX0K
LUlOSVRJQUxfQ0lQSEVSX1NVSVRFID0gQ2lwaGVyU3VpdGUuQUVTXzEyOF9HQ01fU0hBMjU2Ci1J
TklUSUFMX1NBTFQgPSBiaW5hc2NpaS51bmhleGxpZnkoImMzZWVmNzEyYzcyZWJiNWExMWE3ZDI0
MzJiYjQ2MzY1YmVmOWY1MDIiKQotU0FNUExFX1NJWkUgPSAxNgotCi0KLWNsYXNzIEtleVVuYXZh
aWxhYmxlRXJyb3IoQ3J5cHRvRXJyb3IpOgotICAgIHBhc3MKLQotCi1kZWYgZGVyaXZlX2tleV9p
dl9ocCgKLSAgICBjaXBoZXJfc3VpdGU6IENpcGhlclN1aXRlLCBzZWNyZXQ6IGJ5dGVzCi0pIC0+
IFR1cGxlW2J5dGVzLCBieXRlcywgYnl0ZXNdOgotICAgIGFsZ29yaXRobSA9IGNpcGhlcl9zdWl0
ZV9oYXNoKGNpcGhlcl9zdWl0ZSkKLSAgICBpZiBjaXBoZXJfc3VpdGUgaW4gWwotICAgICAgICBD
aXBoZXJTdWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQsCi0gICAgICAgIENpcGhlclN1aXRlLkNIQUNI
QTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICBdOgotICAgICAgICBrZXlfc2l6ZSA9IDMyCi0gICAg
ZWxzZToKLSAgICAgICAga2V5X3NpemUgPSAxNgotICAgIHJldHVybiAoCi0gICAgICAgIGhrZGZf
ZXhwYW5kX2xhYmVsKGFsZ29yaXRobSwgc2VjcmV0LCBiInF1aWMga2V5IiwgYiIiLCBrZXlfc2l6
ZSksCi0gICAgICAgIGhrZGZfZXhwYW5kX2xhYmVsKGFsZ29yaXRobSwgc2VjcmV0LCBiInF1aWMg
aXYiLCBiIiIsIDEyKSwKLSAgICAgICAgaGtkZl9leHBhbmRfbGFiZWwoYWxnb3JpdGhtLCBzZWNy
ZXQsIGIicXVpYyBocCIsIGIiIiwga2V5X3NpemUpLAotICAgICkKLQotCi1jbGFzcyBDcnlwdG9D
b250ZXh0OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBrZXlfcGhhc2U6IGludCA9IDApIC0+IE5v
bmU6Ci0gICAgICAgIHNlbGYuYWVhZDogT3B0aW9uYWxbQUVBRF0gPSBOb25lCi0gICAgICAgIHNl
bGYuY2lwaGVyX3N1aXRlOiBPcHRpb25hbFtDaXBoZXJTdWl0ZV0gPSBOb25lCi0gICAgICAgIHNl
bGYuaHA6IE9wdGlvbmFsW0hlYWRlclByb3RlY3Rpb25dID0gTm9uZQotICAgICAgICBzZWxmLmtl
eV9waGFzZSA9IGtleV9waGFzZQotICAgICAgICBzZWxmLnNlY3JldDogT3B0aW9uYWxbYnl0ZXNd
ID0gTm9uZQotICAgICAgICBzZWxmLnZlcnNpb246IE9wdGlvbmFsW2ludF0gPSBOb25lCi0KLSAg
ICBkZWYgZGVjcnlwdF9wYWNrZXQoCi0gICAgICAgIHNlbGYsIHBhY2tldDogYnl0ZXMsIGVuY3J5
cHRlZF9vZmZzZXQ6IGludCwgZXhwZWN0ZWRfcGFja2V0X251bWJlcjogaW50Ci0gICAgKSAtPiBU
dXBsZVtieXRlcywgYnl0ZXMsIGludCwgYm9vbF06Ci0gICAgICAgIGlmIHNlbGYuYWVhZCBpcyBO
b25lOgotICAgICAgICAgICAgcmFpc2UgS2V5VW5hdmFpbGFibGVFcnJvcigiRGVjcnlwdGlvbiBr
ZXkgaXMgbm90IGF2YWlsYWJsZSIpCi0KLSAgICAgICAgIyBoZWFkZXIgcHJvdGVjdGlvbgotICAg
ICAgICBwbGFpbl9oZWFkZXIsIHBhY2tldF9udW1iZXIgPSBzZWxmLmhwLnJlbW92ZShwYWNrZXQs
IGVuY3J5cHRlZF9vZmZzZXQpCi0gICAgICAgIGZpcnN0X2J5dGUgPSBwbGFpbl9oZWFkZXJbMF0K
LQotICAgICAgICAjIHBhY2tldCBudW1iZXIKLSAgICAgICAgcG5fbGVuZ3RoID0gKGZpcnN0X2J5
dGUgJiAweDAzKSArIDEKLSAgICAgICAgcGFja2V0X251bWJlciA9IGRlY29kZV9wYWNrZXRfbnVt
YmVyKAotICAgICAgICAgICAgcGFja2V0X251bWJlciwgcG5fbGVuZ3RoICogOCwgZXhwZWN0ZWRf
cGFja2V0X251bWJlcgotICAgICAgICApCi0KLSAgICAgICAgIyBkZXRlY3Qga2V5IHBoYXNlIGNo
YW5nZQotICAgICAgICBjcnlwdG8gPSBzZWxmCi0gICAgICAgIGlmIG5vdCBpc19sb25nX2hlYWRl
cihmaXJzdF9ieXRlKToKLSAgICAgICAgICAgIGtleV9waGFzZSA9IChmaXJzdF9ieXRlICYgNCkg
Pj4gMgotICAgICAgICAgICAgaWYga2V5X3BoYXNlICE9IHNlbGYua2V5X3BoYXNlOgotICAgICAg
ICAgICAgICAgIGNyeXB0byA9IG5leHRfa2V5X3BoYXNlKHNlbGYpCi0KLSAgICAgICAgIyBwYXls
b2FkIHByb3RlY3Rpb24KLSAgICAgICAgcGF5bG9hZCA9IGNyeXB0by5hZWFkLmRlY3J5cHQoCi0g
ICAgICAgICAgICBwYWNrZXRbbGVuKHBsYWluX2hlYWRlcikgOl0sIHBsYWluX2hlYWRlciwgcGFj
a2V0X251bWJlcgotICAgICAgICApCi0KLSAgICAgICAgcmV0dXJuIHBsYWluX2hlYWRlciwgcGF5
bG9hZCwgcGFja2V0X251bWJlciwgY3J5cHRvICE9IHNlbGYKLQotICAgIGRlZiBlbmNyeXB0X3Bh
Y2tldCgKLSAgICAgICAgc2VsZiwgcGxhaW5faGVhZGVyOiBieXRlcywgcGxhaW5fcGF5bG9hZDog
Ynl0ZXMsIHBhY2tldF9udW1iZXI6IGludAotICAgICkgLT4gYnl0ZXM6Ci0gICAgICAgIGFzc2Vy
dCBzZWxmLmlzX3ZhbGlkKCksICJFbmNyeXB0aW9uIGtleSBpcyBub3QgYXZhaWxhYmxlIgotCi0g
ICAgICAgICMgcGF5bG9hZCBwcm90ZWN0aW9uCi0gICAgICAgIHByb3RlY3RlZF9wYXlsb2FkID0g
c2VsZi5hZWFkLmVuY3J5cHQoCi0gICAgICAgICAgICBwbGFpbl9wYXlsb2FkLCBwbGFpbl9oZWFk
ZXIsIHBhY2tldF9udW1iZXIKLSAgICAgICAgKQotCi0gICAgICAgICMgaGVhZGVyIHByb3RlY3Rp
b24KLSAgICAgICAgcmV0dXJuIHNlbGYuaHAuYXBwbHkocGxhaW5faGVhZGVyLCBwcm90ZWN0ZWRf
cGF5bG9hZCkKLQotICAgIGRlZiBpc192YWxpZChzZWxmKSAtPiBib29sOgotICAgICAgICByZXR1
cm4gc2VsZi5hZWFkIGlzIG5vdCBOb25lCi0KLSAgICBkZWYgc2V0dXAoc2VsZiwgY2lwaGVyX3N1
aXRlOiBDaXBoZXJTdWl0ZSwgc2VjcmV0OiBieXRlcywgdmVyc2lvbjogaW50KSAtPiBOb25lOgot
ICAgICAgICBocF9jaXBoZXJfbmFtZSwgYWVhZF9jaXBoZXJfbmFtZSA9IENJUEhFUl9TVUlURVNb
Y2lwaGVyX3N1aXRlXQotCi0gICAgICAgIGtleSwgaXYsIGhwID0gZGVyaXZlX2tleV9pdl9ocChj
aXBoZXJfc3VpdGUsIHNlY3JldCkKLSAgICAgICAgc2VsZi5hZWFkID0gQUVBRChhZWFkX2NpcGhl
cl9uYW1lLCBrZXksIGl2KQotICAgICAgICBzZWxmLmNpcGhlcl9zdWl0ZSA9IGNpcGhlcl9zdWl0
ZQotICAgICAgICBzZWxmLmhwID0gSGVhZGVyUHJvdGVjdGlvbihocF9jaXBoZXJfbmFtZSwgaHAp
Ci0gICAgICAgIHNlbGYuc2VjcmV0ID0gc2VjcmV0Ci0gICAgICAgIHNlbGYudmVyc2lvbiA9IHZl
cnNpb24KLQotICAgIGRlZiB0ZWFyZG93bihzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxmLmFl
YWQgPSBOb25lCi0gICAgICAgIHNlbGYuY2lwaGVyX3N1aXRlID0gTm9uZQotICAgICAgICBzZWxm
LmhwID0gTm9uZQotICAgICAgICBzZWxmLnNlY3JldCA9IE5vbmUKLQotCi1kZWYgYXBwbHlfa2V5
X3BoYXNlKHNlbGY6IENyeXB0b0NvbnRleHQsIGNyeXB0bzogQ3J5cHRvQ29udGV4dCkgLT4gTm9u
ZToKLSAgICBzZWxmLmFlYWQgPSBjcnlwdG8uYWVhZAotICAgIHNlbGYua2V5X3BoYXNlID0gY3J5
cHRvLmtleV9waGFzZQotICAgIHNlbGYuc2VjcmV0ID0gY3J5cHRvLnNlY3JldAotCi0KLWRlZiBu
ZXh0X2tleV9waGFzZShzZWxmOiBDcnlwdG9Db250ZXh0KSAtPiBDcnlwdG9Db250ZXh0OgotICAg
IGFsZ29yaXRobSA9IGNpcGhlcl9zdWl0ZV9oYXNoKHNlbGYuY2lwaGVyX3N1aXRlKQotCi0gICAg
Y3J5cHRvID0gQ3J5cHRvQ29udGV4dChrZXlfcGhhc2U9aW50KG5vdCBzZWxmLmtleV9waGFzZSkp
Ci0gICAgY3J5cHRvLnNldHVwKAotICAgICAgICBjaXBoZXJfc3VpdGU9c2VsZi5jaXBoZXJfc3Vp
dGUsCi0gICAgICAgIHNlY3JldD1oa2RmX2V4cGFuZF9sYWJlbCgKLSAgICAgICAgICAgIGFsZ29y
aXRobSwgc2VsZi5zZWNyZXQsIGIicXVpYyBrdSIsIGIiIiwgYWxnb3JpdGhtLmRpZ2VzdF9zaXpl
Ci0gICAgICAgICksCi0gICAgICAgIHZlcnNpb249c2VsZi52ZXJzaW9uLAotICAgICkKLSAgICBy
ZXR1cm4gY3J5cHRvCi0KLQotY2xhc3MgQ3J5cHRvUGFpcjoKLSAgICBkZWYgX19pbml0X18oc2Vs
ZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi5hZWFkX3RhZ19zaXplID0gMTYKLSAgICAgICAgc2Vs
Zi5yZWN2ID0gQ3J5cHRvQ29udGV4dCgpCi0gICAgICAgIHNlbGYuc2VuZCA9IENyeXB0b0NvbnRl
eHQoKQotICAgICAgICBzZWxmLl91cGRhdGVfa2V5X3JlcXVlc3RlZCA9IEZhbHNlCi0KLSAgICBk
ZWYgZGVjcnlwdF9wYWNrZXQoCi0gICAgICAgIHNlbGYsIHBhY2tldDogYnl0ZXMsIGVuY3J5cHRl
ZF9vZmZzZXQ6IGludCwgZXhwZWN0ZWRfcGFja2V0X251bWJlcjogaW50Ci0gICAgKSAtPiBUdXBs
ZVtieXRlcywgYnl0ZXMsIGludF06Ci0gICAgICAgIHBsYWluX2hlYWRlciwgcGF5bG9hZCwgcGFj
a2V0X251bWJlciwgdXBkYXRlX2tleSA9IHNlbGYucmVjdi5kZWNyeXB0X3BhY2tldCgKLSAgICAg
ICAgICAgIHBhY2tldCwgZW5jcnlwdGVkX29mZnNldCwgZXhwZWN0ZWRfcGFja2V0X251bWJlcgot
ICAgICAgICApCi0gICAgICAgIGlmIHVwZGF0ZV9rZXk6Ci0gICAgICAgICAgICBzZWxmLl91cGRh
dGVfa2V5KCkKLSAgICAgICAgcmV0dXJuIHBsYWluX2hlYWRlciwgcGF5bG9hZCwgcGFja2V0X251
bWJlcgotCi0gICAgZGVmIGVuY3J5cHRfcGFja2V0KAotICAgICAgICBzZWxmLCBwbGFpbl9oZWFk
ZXI6IGJ5dGVzLCBwbGFpbl9wYXlsb2FkOiBieXRlcywgcGFja2V0X251bWJlcjogaW50Ci0gICAg
KSAtPiBieXRlczoKLSAgICAgICAgaWYgc2VsZi5fdXBkYXRlX2tleV9yZXF1ZXN0ZWQ6Ci0gICAg
ICAgICAgICBzZWxmLl91cGRhdGVfa2V5KCkKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VuZC5lbmNy
eXB0X3BhY2tldChwbGFpbl9oZWFkZXIsIHBsYWluX3BheWxvYWQsIHBhY2tldF9udW1iZXIpCi0K
LSAgICBkZWYgc2V0dXBfaW5pdGlhbChzZWxmLCBjaWQ6IGJ5dGVzLCBpc19jbGllbnQ6IGJvb2ws
IHZlcnNpb246IGludCkgLT4gTm9uZToKLSAgICAgICAgaWYgaXNfY2xpZW50OgotICAgICAgICAg
ICAgcmVjdl9sYWJlbCwgc2VuZF9sYWJlbCA9IGIic2VydmVyIGluIiwgYiJjbGllbnQgaW4iCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZWN2X2xhYmVsLCBzZW5kX2xhYmVsID0gYiJjbGll
bnQgaW4iLCBiInNlcnZlciBpbiIKLQotICAgICAgICBhbGdvcml0aG0gPSBjaXBoZXJfc3VpdGVf
aGFzaChJTklUSUFMX0NJUEhFUl9TVUlURSkKLSAgICAgICAgaW5pdGlhbF9zZWNyZXQgPSBoa2Rm
X2V4dHJhY3QoYWxnb3JpdGhtLCBJTklUSUFMX1NBTFQsIGNpZCkKLSAgICAgICAgc2VsZi5yZWN2
LnNldHVwKAotICAgICAgICAgICAgY2lwaGVyX3N1aXRlPUlOSVRJQUxfQ0lQSEVSX1NVSVRFLAot
ICAgICAgICAgICAgc2VjcmV0PWhrZGZfZXhwYW5kX2xhYmVsKAotICAgICAgICAgICAgICAgIGFs
Z29yaXRobSwgaW5pdGlhbF9zZWNyZXQsIHJlY3ZfbGFiZWwsIGIiIiwgYWxnb3JpdGhtLmRpZ2Vz
dF9zaXplCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgdmVyc2lvbj12ZXJzaW9uLAotICAg
ICAgICApCi0gICAgICAgIHNlbGYuc2VuZC5zZXR1cCgKLSAgICAgICAgICAgIGNpcGhlcl9zdWl0
ZT1JTklUSUFMX0NJUEhFUl9TVUlURSwKLSAgICAgICAgICAgIHNlY3JldD1oa2RmX2V4cGFuZF9s
YWJlbCgKLSAgICAgICAgICAgICAgICBhbGdvcml0aG0sIGluaXRpYWxfc2VjcmV0LCBzZW5kX2xh
YmVsLCBiIiIsIGFsZ29yaXRobS5kaWdlc3Rfc2l6ZQotICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgIHZlcnNpb249dmVyc2lvbiwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlYXJkb3duKHNlbGYp
IC0+IE5vbmU6Ci0gICAgICAgIHNlbGYucmVjdi50ZWFyZG93bigpCi0gICAgICAgIHNlbGYuc2Vu
ZC50ZWFyZG93bigpCi0KLSAgICBkZWYgdXBkYXRlX2tleShzZWxmKSAtPiBOb25lOgotICAgICAg
ICBzZWxmLl91cGRhdGVfa2V5X3JlcXVlc3RlZCA9IFRydWUKLQotICAgIEBwcm9wZXJ0eQotICAg
IGRlZiBrZXlfcGhhc2Uoc2VsZikgLT4gaW50OgotICAgICAgICBpZiBzZWxmLl91cGRhdGVfa2V5
X3JlcXVlc3RlZDoKLSAgICAgICAgICAgIHJldHVybiBpbnQobm90IHNlbGYucmVjdi5rZXlfcGhh
c2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZWN2LmtleV9waGFz
ZQotCi0gICAgZGVmIF91cGRhdGVfa2V5KHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIGFwcGx5X2tl
eV9waGFzZShzZWxmLnJlY3YsIG5leHRfa2V5X3BoYXNlKHNlbGYucmVjdikpCi0gICAgICAgIGFw
cGx5X2tleV9waGFzZShzZWxmLnNlbmQsIG5leHRfa2V5X3BoYXNlKHNlbGYuc2VuZCkpCi0gICAg
ICAgIHNlbGYuX3VwZGF0ZV9rZXlfcmVxdWVzdGVkID0gRmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2V2ZW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlv
cXVpYy9xdWljL2V2ZW50cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQzMDY5
MzkzNmMxODgxNmFlMTE4MzI2ZDJhMjI1MTI5NTI0NWUzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9l
dmVudHMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotZnJvbSBkYXRhY2xhc3Nl
cyBpbXBvcnQgZGF0YWNsYXNzCi1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKLQotCi1jbGFz
cyBRdWljRXZlbnQ6Ci0gICAgIiIiCi0gICAgQmFzZSBjbGFzcyBmb3IgUVVJQyBldmVudHMuCi0g
ICAgIiIiCi0KLSAgICBwYXNzCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgQ29ubmVjdGlvbklkSXNz
dWVkKFF1aWNFdmVudCk6Ci0gICAgY29ubmVjdGlvbl9pZDogYnl0ZXMKLQotCi1AZGF0YWNsYXNz
Ci1jbGFzcyBDb25uZWN0aW9uSWRSZXRpcmVkKFF1aWNFdmVudCk6Ci0gICAgY29ubmVjdGlvbl9p
ZDogYnl0ZXMKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZChRdWlj
RXZlbnQpOgotICAgICIiIgotICAgIFRoZSBDb25uZWN0aW9uVGVybWluYXRlZCBldmVudCBpcyBm
aXJlZCB3aGVuIHRoZSBRVUlDIGNvbm5lY3Rpb24gaXMgdGVybWluYXRlZC4KLSAgICAiIiIKLQot
ICAgIGVycm9yX2NvZGU6IGludAotICAgICJUaGUgZXJyb3IgY29kZSB3aGljaCB3YXMgc3BlY2lm
aWVkIHdoZW4gY2xvc2luZyB0aGUgY29ubmVjdGlvbi4iCi0KLSAgICBmcmFtZV90eXBlOiBPcHRp
b25hbFtpbnRdCi0gICAgIlRoZSBmcmFtZSB0eXBlIHdoaWNoIGNhdXNlZCB0aGUgY29ubmVjdGlv
biB0byBiZSBjbG9zZWQsIG9yIGBOb25lYC4iCi0KLSAgICByZWFzb25fcGhyYXNlOiBzdHIKLSAg
ICAiVGhlIGh1bWFuLXJlYWRhYmxlIHJlYXNvbiBmb3Igd2hpY2ggdGhlIGNvbm5lY3Rpb24gd2Fz
IGNsb3NlZC4iCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgRGF0YWdyYW1GcmFtZVJlY2VpdmVkKFF1
aWNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhlIERhdGFncmFtRnJhbWVSZWNlaXZlZCBldmVudCBp
cyBmaXJlZCB3aGVuIGEgREFUQUdSQU0gZnJhbWUgaXMgcmVjZWl2ZWQuCi0gICAgIiIiCi0KLSAg
ICBkYXRhOiBieXRlcwotICAgICJUaGUgZGF0YSB3aGljaCB3YXMgcmVjZWl2ZWQuIgotCi0KLUBk
YXRhY2xhc3MKLWNsYXNzIEhhbmRzaGFrZUNvbXBsZXRlZChRdWljRXZlbnQpOgotICAgICIiIgot
ICAgIFRoZSBIYW5kc2hha2VDb21wbGV0ZWQgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgVExTIGhh
bmRzaGFrZSBjb21wbGV0ZXMuCi0gICAgIiIiCi0KLSAgICBhbHBuX3Byb3RvY29sOiBPcHRpb25h
bFtzdHJdCi0gICAgIlRoZSBwcm90b2NvbCB3aGljaCB3YXMgbmVnb3RpYXRlZCB1c2luZyBBTFBO
LCBvciBgTm9uZWAuIgotCi0gICAgZWFybHlfZGF0YV9hY2NlcHRlZDogYm9vbAotICAgICJXaGV0
aGVyIGVhcmx5ICgwLVJUVCkgZGF0YSB3YXMgYWNjZXB0ZWQgYnkgdGhlIHJlbW90ZSBwZWVyLiIK
LQotICAgIHNlc3Npb25fcmVzdW1lZDogYm9vbAotICAgICJXaGV0aGVyIGEgVExTIHNlc3Npb24g
d2FzIHJlc3VtZWQuIgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIFBpbmdBY2tub3dsZWRnZWQoUXVp
Y0V2ZW50KToKLSAgICAiIiIKLSAgICBUaGUgUGluZ0Fja25vd2xlZGdlZCBldmVudCBpcyBmaXJl
ZCB3aGVuIGEgUElORyBmcmFtZSBpcyBhY2tub3dsZWRnZWQuCi0gICAgIiIiCi0KLSAgICB1aWQ6
IGludAotICAgICJUaGUgdW5pcXVlIElEIG9mIHRoZSBQSU5HLiIKLQotCi1AZGF0YWNsYXNzCi1j
bGFzcyBQcm90b2NvbE5lZ290aWF0ZWQoUXVpY0V2ZW50KToKLSAgICAiIiIKLSAgICBUaGUgUHJv
dG9jb2xOZWdvdGlhdGVkIGV2ZW50IGlzIGZpcmVkIHdoZW4gQUxQTiBuZWdvdGlhdGlvbiBjb21w
bGV0ZXMuCi0gICAgIiIiCi0KLSAgICBhbHBuX3Byb3RvY29sOiBPcHRpb25hbFtzdHJdCi0gICAg
IlRoZSBwcm90b2NvbCB3aGljaCB3YXMgbmVnb3RpYXRlZCB1c2luZyBBTFBOLCBvciBgTm9uZWAu
IgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIFN0cmVhbURhdGFSZWNlaXZlZChRdWljRXZlbnQpOgot
ICAgICIiIgotICAgIFRoZSBTdHJlYW1EYXRhUmVjZWl2ZWQgZXZlbnQgaXMgZmlyZWQgd2hlbmV2
ZXIgZGF0YSBpcyByZWNlaXZlZCBvbiBhCi0gICAgc3RyZWFtLgotICAgICIiIgotCi0gICAgZGF0
YTogYnl0ZXMKLSAgICAiVGhlIGRhdGEgd2hpY2ggd2FzIHJlY2VpdmVkLiIKLQotICAgIGVuZF9z
dHJlYW06IGJvb2wKLSAgICAiV2hldGhlciB0aGUgU1RSRUFNIGZyYW1lIGhhZCB0aGUgRklOIGJp
dCBzZXQuIgotCi0gICAgc3RyZWFtX2lkOiBpbnQKLSAgICAiVGhlIElEIG9mIHRoZSBzdHJlYW0g
dGhlIGRhdGEgd2FzIHJlY2VpdmVkIGZvci4iCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgU3RyZWFt
UmVzZXQoUXVpY0V2ZW50KToKLSAgICAiIiIKLSAgICBUaGUgU3RyZWFtUmVzZXQgZXZlbnQgaXMg
ZmlyZWQgd2hlbiB0aGUgcmVtb3RlIHBlZXIgcmVzZXRzIGEgc3RyZWFtLgotICAgICIiIgotCi0g
ICAgZXJyb3JfY29kZTogaW50Ci0gICAgIlRoZSBlcnJvciBjb2RlIHRoYXQgdHJpZ2dlcmVkIHRo
ZSByZXNldC4iCi0KLSAgICBzdHJlYW1faWQ6IGludAotICAgICJUaGUgSUQgb2YgdGhlIHN0cmVh
bSB0aGF0IHdhcyByZXNldC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
cXVpYy9sb2dnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9sb2dnZXIucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0OTc1YmQ1OTJlMWMwODc4MjVjZDk1YzYw
M2M2OTA2YTc0M2RiODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvbG9nZ2VyLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjY2ICswLDAgQEAKLWltcG9ydCBiaW5hc2NpaQotaW1wb3J0IHRpbWUKLWZyb20g
Y29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi1mcm9tIHR5cGluZyBpbXBvcnQgQW55LCBEZXF1ZSwg
RGljdCwgTGlzdCwgT3B0aW9uYWwsIFR1cGxlCi0KLWZyb20gLnBhY2tldCBpbXBvcnQgKAotICAg
IFBBQ0tFVF9UWVBFX0hBTkRTSEFLRSwKLSAgICBQQUNLRVRfVFlQRV9JTklUSUFMLAotICAgIFBB
Q0tFVF9UWVBFX01BU0ssCi0gICAgUEFDS0VUX1RZUEVfT05FX1JUVCwKLSAgICBQQUNLRVRfVFlQ
RV9SRVRSWSwKLSAgICBQQUNLRVRfVFlQRV9aRVJPX1JUVCwKLSAgICBRdWljU3RyZWFtRnJhbWUs
Ci0gICAgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMsCi0pCi1mcm9tIC5yYW5nZXNldCBpbXBvcnQg
UmFuZ2VTZXQKLQotUEFDS0VUX1RZUEVfTkFNRVMgPSB7Ci0gICAgUEFDS0VUX1RZUEVfSU5JVElB
TDogImluaXRpYWwiLAotICAgIFBBQ0tFVF9UWVBFX0hBTkRTSEFLRTogImhhbmRzaGFrZSIsCi0g
ICAgUEFDS0VUX1RZUEVfWkVST19SVFQ6ICIwUlRUIiwKLSAgICBQQUNLRVRfVFlQRV9PTkVfUlRU
OiAiMVJUVCIsCi0gICAgUEFDS0VUX1RZUEVfUkVUUlk6ICJyZXRyeSIsCi19Ci0KLQotZGVmIGhl
eGR1bXAoZGF0YTogYnl0ZXMpIC0+IHN0cjoKLSAgICByZXR1cm4gYmluYXNjaWkuaGV4bGlmeShk
YXRhKS5kZWNvZGUoImFzY2lpIikKLQotCi1jbGFzcyBRdWljTG9nZ2VyVHJhY2U6Ci0gICAgIiIi
Ci0gICAgQSBRVUlDIGV2ZW50IHRyYWNlLgotCi0gICAgRXZlbnRzIGFyZSBsb2dnZWQgaW4gdGhl
IGZvcm1hdCBkZWZpbmVkIGJ5IHFsb2cgZHJhZnQtMDEuCi0KLSAgICBTZWU6IGh0dHBzOi8vcXVp
Y2xvZy5naXRodWIuaW8vaW50ZXJuZXQtZHJhZnRzL2RyYWZ0LW1hcngtcWxvZy1ldmVudC1kZWZp
bml0aW9ucy1xdWljLWgzLmh0bWwKLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAq
LCBpc19jbGllbnQ6IGJvb2wsIG9kY2lkOiBieXRlcykgLT4gTm9uZToKLSAgICAgICAgc2VsZi5f
b2RjaWQgPSBvZGNpZAotICAgICAgICBzZWxmLl9ldmVudHM6IERlcXVlW1R1cGxlW2Zsb2F0LCBz
dHIsIHN0ciwgRGljdFtzdHIsIEFueV1dXSA9IGRlcXVlKCkKLSAgICAgICAgc2VsZi5fdmFudGFn
ZV9wb2ludCA9IHsKLSAgICAgICAgICAgICJuYW1lIjogImFpb3F1aWMiLAotICAgICAgICAgICAg
InR5cGUiOiAiY2xpZW50IiBpZiBpc19jbGllbnQgZWxzZSAic2VydmVyIiwKLSAgICAgICAgfQot
Ci0gICAgZGVmIGVuY29kZV9hY2tfZnJhbWUoc2VsZiwgcmFuZ2VzOiBSYW5nZVNldCwgZGVsYXk6
IGZsb2F0KSAtPiBEaWN0OgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgImFja19kZWxh
eSI6IHN0cihzZWxmLmVuY29kZV90aW1lKGRlbGF5KSksCi0gICAgICAgICAgICAiYWNrZWRfcmFu
Z2VzIjogW1tzdHIoeC5zdGFydCksIHN0cih4LnN0b3AgLSAxKV0gZm9yIHggaW4gcmFuZ2VzXSwK
LSAgICAgICAgICAgICJmcmFtZV90eXBlIjogImFjayIsCi0gICAgICAgIH0KLQotICAgIGRlZiBl
bmNvZGVfY29ubmVjdGlvbl9jbG9zZV9mcmFtZSgKLSAgICAgICAgc2VsZiwgZXJyb3JfY29kZTog
aW50LCBmcmFtZV90eXBlOiBPcHRpb25hbFtpbnRdLCByZWFzb25fcGhyYXNlOiBzdHIKLSAgICAp
IC0+IERpY3Q6Ci0gICAgICAgIGF0dHJzID0gewotICAgICAgICAgICAgImVycm9yX2NvZGUiOiBl
cnJvcl9jb2RlLAotICAgICAgICAgICAgImVycm9yX3NwYWNlIjogImFwcGxpY2F0aW9uIiBpZiBm
cmFtZV90eXBlIGlzIE5vbmUgZWxzZSAidHJhbnNwb3J0IiwKLSAgICAgICAgICAgICJmcmFtZV90
eXBlIjogImNvbm5lY3Rpb25fY2xvc2UiLAotICAgICAgICAgICAgInJhd19lcnJvcl9jb2RlIjog
ZXJyb3JfY29kZSwKLSAgICAgICAgICAgICJyZWFzb24iOiByZWFzb25fcGhyYXNlLAotICAgICAg
ICB9Ci0gICAgICAgIGlmIGZyYW1lX3R5cGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhdHRy
c1sidHJpZ2dlcl9mcmFtZV90eXBlIl0gPSBmcmFtZV90eXBlCi0KLSAgICAgICAgcmV0dXJuIGF0
dHJzCi0KLSAgICBkZWYgZW5jb2RlX2NyeXB0b19mcmFtZShzZWxmLCBmcmFtZTogUXVpY1N0cmVh
bUZyYW1lKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgImZyYW1lX3R5
cGUiOiAiY3J5cHRvIiwKLSAgICAgICAgICAgICJsZW5ndGgiOiBsZW4oZnJhbWUuZGF0YSksCi0g
ICAgICAgICAgICAib2Zmc2V0Ijogc3RyKGZyYW1lLm9mZnNldCksCi0gICAgICAgIH0KLQotICAg
IGRlZiBlbmNvZGVfZGF0YV9ibG9ja2VkX2ZyYW1lKHNlbGYsIGxpbWl0OiBpbnQpIC0+IERpY3Q6
Ci0gICAgICAgIHJldHVybiB7ImZyYW1lX3R5cGUiOiAiZGF0YV9ibG9ja2VkIiwgImxpbWl0Ijog
c3RyKGxpbWl0KX0KLQotICAgIGRlZiBlbmNvZGVfZGF0YWdyYW1fZnJhbWUoc2VsZiwgbGVuZ3Ro
OiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7ImZyYW1lX3R5cGUiOiAiZGF0YWdyYW0i
LCAibGVuZ3RoIjogbGVuZ3RofQotCi0gICAgZGVmIGVuY29kZV9oYW5kc2hha2VfZG9uZV9mcmFt
ZShzZWxmKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4geyJmcmFtZV90eXBlIjogImhhbmRzaGFr
ZV9kb25lIn0KLQotICAgIGRlZiBlbmNvZGVfbWF4X2RhdGFfZnJhbWUoc2VsZiwgbWF4aW11bTog
aW50KSAtPiBEaWN0OgotICAgICAgICByZXR1cm4geyJmcmFtZV90eXBlIjogIm1heF9kYXRhIiwg
Im1heGltdW0iOiBzdHIobWF4aW11bSl9Ci0KLSAgICBkZWYgZW5jb2RlX21heF9zdHJlYW1fZGF0
YV9mcmFtZShzZWxmLCBtYXhpbXVtOiBpbnQsIHN0cmVhbV9pZDogaW50KSAtPiBEaWN0OgotICAg
ICAgICByZXR1cm4gewotICAgICAgICAgICAgImZyYW1lX3R5cGUiOiAibWF4X3N0cmVhbV9kYXRh
IiwKLSAgICAgICAgICAgICJtYXhpbXVtIjogc3RyKG1heGltdW0pLAotICAgICAgICAgICAgInN0
cmVhbV9pZCI6IHN0cihzdHJlYW1faWQpLAotICAgICAgICB9Ci0KLSAgICBkZWYgZW5jb2RlX21h
eF9zdHJlYW1zX2ZyYW1lKHNlbGYsIGlzX3VuaWRpcmVjdGlvbmFsOiBib29sLCBtYXhpbXVtOiBp
bnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiZnJhbWVfdHlwZSI6
ICJtYXhfc3RyZWFtcyIsCi0gICAgICAgICAgICAibWF4aW11bSI6IHN0cihtYXhpbXVtKSwKLSAg
ICAgICAgICAgICJzdHJlYW1fdHlwZSI6ICJ1bmlkaXJlY3Rpb25hbCIgaWYgaXNfdW5pZGlyZWN0
aW9uYWwgZWxzZSAiYmlkaXJlY3Rpb25hbCIsCi0gICAgICAgIH0KLQotICAgIGRlZiBlbmNvZGVf
bmV3X2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgIHNlbGYsCi0gICAgICAgIGNvbm5lY3Rp
b25faWQ6IGJ5dGVzLAotICAgICAgICByZXRpcmVfcHJpb3JfdG86IGludCwKLSAgICAgICAgc2Vx
dWVuY2VfbnVtYmVyOiBpbnQsCi0gICAgICAgIHN0YXRlbGVzc19yZXNldF90b2tlbjogYnl0ZXMs
Ci0gICAgKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgImNvbm5lY3Rp
b25faWQiOiBoZXhkdW1wKGNvbm5lY3Rpb25faWQpLAotICAgICAgICAgICAgImZyYW1lX3R5cGUi
OiAibmV3X2Nvbm5lY3Rpb25faWQiLAotICAgICAgICAgICAgImxlbmd0aCI6IGxlbihjb25uZWN0
aW9uX2lkKSwKLSAgICAgICAgICAgICJyZXNldF90b2tlbiI6IGhleGR1bXAoc3RhdGVsZXNzX3Jl
c2V0X3Rva2VuKSwKLSAgICAgICAgICAgICJyZXRpcmVfcHJpb3JfdG8iOiBzdHIocmV0aXJlX3By
aW9yX3RvKSwKLSAgICAgICAgICAgICJzZXF1ZW5jZV9udW1iZXIiOiBzdHIoc2VxdWVuY2VfbnVt
YmVyKSwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV9uZXdfdG9rZW5fZnJhbWUoc2VsZiwg
dG9rZW46IGJ5dGVzKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgImZy
YW1lX3R5cGUiOiAibmV3X3Rva2VuIiwKLSAgICAgICAgICAgICJsZW5ndGgiOiBsZW4odG9rZW4p
LAotICAgICAgICAgICAgInRva2VuIjogaGV4ZHVtcCh0b2tlbiksCi0gICAgICAgIH0KLQotICAg
IGRlZiBlbmNvZGVfcGFkZGluZ19mcmFtZShzZWxmKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4g
eyJmcmFtZV90eXBlIjogInBhZGRpbmcifQotCi0gICAgZGVmIGVuY29kZV9wYXRoX2NoYWxsZW5n
ZV9mcmFtZShzZWxmLCBkYXRhOiBieXRlcykgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIHsiZGF0
YSI6IGhleGR1bXAoZGF0YSksICJmcmFtZV90eXBlIjogInBhdGhfY2hhbGxlbmdlIn0KLQotICAg
IGRlZiBlbmNvZGVfcGF0aF9yZXNwb25zZV9mcmFtZShzZWxmLCBkYXRhOiBieXRlcykgLT4gRGlj
dDoKLSAgICAgICAgcmV0dXJuIHsiZGF0YSI6IGhleGR1bXAoZGF0YSksICJmcmFtZV90eXBlIjog
InBhdGhfcmVzcG9uc2UifQotCi0gICAgZGVmIGVuY29kZV9waW5nX2ZyYW1lKHNlbGYpIC0+IERp
Y3Q6Ci0gICAgICAgIHJldHVybiB7ImZyYW1lX3R5cGUiOiAicGluZyJ9Ci0KLSAgICBkZWYgZW5j
b2RlX3Jlc2V0X3N0cmVhbV9mcmFtZSgKLSAgICAgICAgc2VsZiwgZXJyb3JfY29kZTogaW50LCBm
aW5hbF9zaXplOiBpbnQsIHN0cmVhbV9pZDogaW50Ci0gICAgKSAtPiBEaWN0OgotICAgICAgICBy
ZXR1cm4gewotICAgICAgICAgICAgImVycm9yX2NvZGUiOiBlcnJvcl9jb2RlLAotICAgICAgICAg
ICAgImZpbmFsX3NpemUiOiBzdHIoZmluYWxfc2l6ZSksCi0gICAgICAgICAgICAiZnJhbWVfdHlw
ZSI6ICJyZXNldF9zdHJlYW0iLAotICAgICAgICAgICAgInN0cmVhbV9pZCI6IHN0cihzdHJlYW1f
aWQpLAotICAgICAgICB9Ci0KLSAgICBkZWYgZW5jb2RlX3JldGlyZV9jb25uZWN0aW9uX2lkX2Zy
YW1lKHNlbGYsIHNlcXVlbmNlX251bWJlcjogaW50KSAtPiBEaWN0OgotICAgICAgICByZXR1cm4g
ewotICAgICAgICAgICAgImZyYW1lX3R5cGUiOiAicmV0aXJlX2Nvbm5lY3Rpb25faWQiLAotICAg
ICAgICAgICAgInNlcXVlbmNlX251bWJlciI6IHN0cihzZXF1ZW5jZV9udW1iZXIpLAotICAgICAg
ICB9Ci0KLSAgICBkZWYgZW5jb2RlX3N0cmVhbV9kYXRhX2Jsb2NrZWRfZnJhbWUoc2VsZiwgbGlt
aXQ6IGludCwgc3RyZWFtX2lkOiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAg
ICAgICAgICAiZnJhbWVfdHlwZSI6ICJzdHJlYW1fZGF0YV9ibG9ja2VkIiwKLSAgICAgICAgICAg
ICJsaW1pdCI6IHN0cihsaW1pdCksCi0gICAgICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVh
bV9pZCksCi0gICAgICAgIH0KLQotICAgIGRlZiBlbmNvZGVfc3RvcF9zZW5kaW5nX2ZyYW1lKHNl
bGYsIGVycm9yX2NvZGU6IGludCwgc3RyZWFtX2lkOiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJl
dHVybiB7Ci0gICAgICAgICAgICAiZnJhbWVfdHlwZSI6ICJzdG9wX3NlbmRpbmciLAotICAgICAg
ICAgICAgImVycm9yX2NvZGUiOiBlcnJvcl9jb2RlLAotICAgICAgICAgICAgInN0cmVhbV9pZCI6
IHN0cihzdHJlYW1faWQpLAotICAgICAgICB9Ci0KLSAgICBkZWYgZW5jb2RlX3N0cmVhbV9mcmFt
ZShzZWxmLCBmcmFtZTogUXVpY1N0cmVhbUZyYW1lLCBzdHJlYW1faWQ6IGludCkgLT4gRGljdDoK
LSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJmaW4iOiBmcmFtZS5maW4sCi0gICAgICAg
ICAgICAiZnJhbWVfdHlwZSI6ICJzdHJlYW0iLAotICAgICAgICAgICAgImxlbmd0aCI6IGxlbihm
cmFtZS5kYXRhKSwKLSAgICAgICAgICAgICJvZmZzZXQiOiBzdHIoZnJhbWUub2Zmc2V0KSwKLSAg
ICAgICAgICAgICJzdHJlYW1faWQiOiBzdHIoc3RyZWFtX2lkKSwKLSAgICAgICAgfQotCi0gICAg
ZGVmIGVuY29kZV9zdHJlYW1zX2Jsb2NrZWRfZnJhbWUoc2VsZiwgaXNfdW5pZGlyZWN0aW9uYWw6
IGJvb2wsIGxpbWl0OiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAg
ICAiZnJhbWVfdHlwZSI6ICJzdHJlYW1zX2Jsb2NrZWQiLAotICAgICAgICAgICAgImxpbWl0Ijog
c3RyKGxpbWl0KSwKLSAgICAgICAgICAgICJzdHJlYW1fdHlwZSI6ICJ1bmlkaXJlY3Rpb25hbCIg
aWYgaXNfdW5pZGlyZWN0aW9uYWwgZWxzZSAiYmlkaXJlY3Rpb25hbCIsCi0gICAgICAgIH0KLQot
ICAgIGRlZiBlbmNvZGVfdGltZShzZWxmLCBzZWNvbmRzOiBmbG9hdCkgLT4gaW50OgotICAgICAg
ICAiIiIKLSAgICAgICAgQ29udmVydCBhIHRpbWUgdG8gaW50ZWdlciBtaWNyb3NlY29uZHMuCi0g
ICAgICAgICIiIgotICAgICAgICByZXR1cm4gaW50KHNlY29uZHMgKiAxMDAwMDAwKQotCi0gICAg
ZGVmIGVuY29kZV90cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgc2VsZiwgb3duZXI6IHN0
ciwgcGFyYW1ldGVyczogUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMKLSAgICApIC0+IERpY3Rbc3Ry
LCBBbnldOgotICAgICAgICBkYXRhOiBEaWN0W3N0ciwgQW55XSA9IHsib3duZXIiOiBvd25lcn0K
LSAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHBhcmFtZXRlcnMuX19kaWN0
X18uaXRlbXMoKToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGFyYW1fdmFsdWUsIGJvb2wp
OgotICAgICAgICAgICAgICAgIGRhdGFbcGFyYW1fbmFtZV0gPSBwYXJhbV92YWx1ZQotICAgICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcmFtX3ZhbHVlLCBieXRlcyk6Ci0gICAgICAgICAgICAg
ICAgZGF0YVtwYXJhbV9uYW1lXSA9IGhleGR1bXAocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICBl
bGlmIGlzaW5zdGFuY2UocGFyYW1fdmFsdWUsIGludCk6Ci0gICAgICAgICAgICAgICAgZGF0YVtw
YXJhbV9uYW1lXSA9IHBhcmFtX3ZhbHVlCi0gICAgICAgIHJldHVybiBkYXRhCi0KLSAgICBkZWYg
bG9nX2V2ZW50KHNlbGYsICosIGNhdGVnb3J5OiBzdHIsIGV2ZW50OiBzdHIsIGRhdGE6IERpY3Qp
IC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoKHRpbWUudGltZSgpLCBjYXRl
Z29yeSwgZXZlbnQsIGRhdGEpKQotCi0gICAgZGVmIHBhY2tldF90eXBlKHNlbGYsIHBhY2tldF90
eXBlOiBpbnQpIC0+IHN0cjoKLSAgICAgICAgcmV0dXJuIFBBQ0tFVF9UWVBFX05BTUVTLmdldChw
YWNrZXRfdHlwZSAmIFBBQ0tFVF9UWVBFX01BU0ssICIxUlRUIikKLQotICAgIGRlZiB0b19kaWN0
KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRo
ZSB0cmFjZSBhcyBhIGRpY3Rpb25hcnkgd2hpY2ggY2FuIGJlIHdyaXR0ZW4gYXMgSlNPTi4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuX2V2ZW50czoKLSAgICAgICAgICAgIHJlZmVyZW5j
ZV90aW1lID0gc2VsZi5fZXZlbnRzWzBdWzBdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZWZlcmVuY2VfdGltZSA9IDAuMAotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgImNvbmZp
Z3VyYXRpb24iOiB7InRpbWVfdW5pdHMiOiAidXMifSwKLSAgICAgICAgICAgICJjb21tb25fZmll
bGRzIjogewotICAgICAgICAgICAgICAgICJPRENJRCI6IGhleGR1bXAoc2VsZi5fb2RjaWQpLAot
ICAgICAgICAgICAgICAgICJyZWZlcmVuY2VfdGltZSI6IHN0cihzZWxmLmVuY29kZV90aW1lKHJl
ZmVyZW5jZV90aW1lKSksCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgImV2ZW50X2ZpZWxk
cyI6IFsicmVsYXRpdmVfdGltZSIsICJjYXRlZ29yeSIsICJldmVudF90eXBlIiwgImRhdGEiXSwK
LSAgICAgICAgICAgICJldmVudHMiOiBsaXN0KAotICAgICAgICAgICAgICAgIG1hcCgKLSAgICAg
ICAgICAgICAgICAgICAgbGFtYmRhIGV2ZW50OiAoCi0gICAgICAgICAgICAgICAgICAgICAgICBz
dHIoc2VsZi5lbmNvZGVfdGltZShldmVudFswXSAtIHJlZmVyZW5jZV90aW1lKSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICBldmVudFsxXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
WzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRbM10sCi0gICAgICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2V2ZW50cywKLSAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgInZhbnRhZ2VfcG9pbnQiOiBzZWxmLl92
YW50YWdlX3BvaW50LAotICAgICAgICB9Ci0KLQotY2xhc3MgUXVpY0xvZ2dlcjoKLSAgICAiIiIK
LSAgICBBIFFVSUMgZXZlbnQgbG9nZ2VyLgotCi0gICAgU2VydmVzIGFzIGEgY29udGFpbmVyIGZv
ciB0cmFjZXMgaW4gdGhlIGZvcm1hdCBkZWZpbmVkIGJ5IHFsb2cgZHJhZnQtMDEuCi0KLSAgICBT
ZWU6IGh0dHBzOi8vcXVpY2xvZy5naXRodWIuaW8vaW50ZXJuZXQtZHJhZnRzL2RyYWZ0LW1hcngt
cWxvZy1tYWluLXNjaGVtYS5odG1sCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZikg
LT4gTm9uZToKLSAgICAgICAgc2VsZi5fdHJhY2VzOiBMaXN0W1F1aWNMb2dnZXJUcmFjZV0gPSBb
XQotCi0gICAgZGVmIHN0YXJ0X3RyYWNlKHNlbGYsIGlzX2NsaWVudDogYm9vbCwgb2RjaWQ6IGJ5
dGVzKSAtPiBRdWljTG9nZ2VyVHJhY2U6Ci0gICAgICAgIHRyYWNlID0gUXVpY0xvZ2dlclRyYWNl
KGlzX2NsaWVudD1pc19jbGllbnQsIG9kY2lkPW9kY2lkKQotICAgICAgICBzZWxmLl90cmFjZXMu
YXBwZW5kKHRyYWNlKQotICAgICAgICByZXR1cm4gdHJhY2UKLQotICAgIGRlZiBlbmRfdHJhY2Uo
c2VsZiwgdHJhY2U6IFF1aWNMb2dnZXJUcmFjZSkgLT4gTm9uZToKLSAgICAgICAgYXNzZXJ0IHRy
YWNlIGluIHNlbGYuX3RyYWNlcywgIlF1aWNMb2dnZXJUcmFjZSBkb2VzIG5vdCBiZWxvbmcgdG8g
UXVpY0xvZ2dlciIKLQotICAgIGRlZiB0b19kaWN0KHNlbGYpIC0+IERpY3Rbc3RyLCBBbnldOgot
ICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRoZSB0cmFjZXMgYXMgYSBkaWN0aW9uYXJ5IHdo
aWNoIGNhbiBiZSB3cml0dGVuIGFzIEpTT04uCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4g
ewotICAgICAgICAgICAgInFsb2dfdmVyc2lvbiI6ICJkcmFmdC0wMSIsCi0gICAgICAgICAgICAi
dHJhY2VzIjogW3RyYWNlLnRvX2RpY3QoKSBmb3IgdHJhY2UgaW4gc2VsZi5fdHJhY2VzXSwKLSAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0LnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiOTk0NDU5OTA4NWRlMGRkOGRjNmE5YmZlM2JjYTZhYmJhMzYw
YmNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3BhY2tldC5weQorKysgL2Rldi9udWxsCkBAIC0xLDUw
OCArMCwwIEBACi1pbXBvcnQgYmluYXNjaWkKLWltcG9ydCBpcGFkZHJlc3MKLWltcG9ydCBvcwot
ZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCi1mcm9tIGVudW0gaW1wb3J0IEludEVu
dW0KLWZyb20gdHlwaW5nIGltcG9ydCBMaXN0LCBPcHRpb25hbCwgVHVwbGUKLQotZnJvbSBjcnlw
dG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuY2lwaGVycy5hZWFkIGltcG9ydCBBRVNHQ00KLQot
ZnJvbSAuLmJ1ZmZlciBpbXBvcnQgQnVmZmVyCi1mcm9tIC4udGxzIGltcG9ydCBwdWxsX2Jsb2Nr
LCBwdXNoX2Jsb2NrCi1mcm9tIC5yYW5nZXNldCBpbXBvcnQgUmFuZ2VTZXQKLQotUEFDS0VUX0xP
TkdfSEVBREVSID0gMHg4MAotUEFDS0VUX0ZJWEVEX0JJVCA9IDB4NDAKLVBBQ0tFVF9TUElOX0JJ
VCA9IDB4MjAKLQotUEFDS0VUX1RZUEVfSU5JVElBTCA9IFBBQ0tFVF9MT05HX0hFQURFUiB8IFBB
Q0tFVF9GSVhFRF9CSVQgfCAweDAwCi1QQUNLRVRfVFlQRV9aRVJPX1JUVCA9IFBBQ0tFVF9MT05H
X0hFQURFUiB8IFBBQ0tFVF9GSVhFRF9CSVQgfCAweDEwCi1QQUNLRVRfVFlQRV9IQU5EU0hBS0Ug
PSBQQUNLRVRfTE9OR19IRUFERVIgfCBQQUNLRVRfRklYRURfQklUIHwgMHgyMAotUEFDS0VUX1RZ
UEVfUkVUUlkgPSBQQUNLRVRfTE9OR19IRUFERVIgfCBQQUNLRVRfRklYRURfQklUIHwgMHgzMAot
UEFDS0VUX1RZUEVfT05FX1JUVCA9IFBBQ0tFVF9GSVhFRF9CSVQKLVBBQ0tFVF9UWVBFX01BU0sg
PSAweEYwCi0KLUNPTk5FQ1RJT05fSURfTUFYX1NJWkUgPSAyMAotUEFDS0VUX05VTUJFUl9NQVhf
U0laRSA9IDQKLVJFVFJZX0FFQURfS0VZID0gYmluYXNjaWkudW5oZXhsaWZ5KCI0ZDMyZWNkYjJh
MjEzM2M4NDFlNDA0M2RmMjdkNDQzMCIpCi1SRVRSWV9BRUFEX05PTkNFID0gYmluYXNjaWkudW5o
ZXhsaWZ5KCI0ZDE2MTFkMDU1MTNhNTUyYzU4N2Q1NzUiKQotUkVUUllfSU5URUdSSVRZX1RBR19T
SVpFID0gMTYKLQotCi1jbGFzcyBRdWljRXJyb3JDb2RlKEludEVudW0pOgotICAgIE5PX0VSUk9S
ID0gMHgwCi0gICAgSU5URVJOQUxfRVJST1IgPSAweDEKLSAgICBTRVJWRVJfQlVTWSA9IDB4Mgot
ICAgIEZMT1dfQ09OVFJPTF9FUlJPUiA9IDB4MwotICAgIFNUUkVBTV9MSU1JVF9FUlJPUiA9IDB4
NAotICAgIFNUUkVBTV9TVEFURV9FUlJPUiA9IDB4NQotICAgIEZJTkFMX1NJWkVfRVJST1IgPSAw
eDYKLSAgICBGUkFNRV9FTkNPRElOR19FUlJPUiA9IDB4NwotICAgIFRSQU5TUE9SVF9QQVJBTUVU
RVJfRVJST1IgPSAweDgKLSAgICBDT05ORUNUSU9OX0lEX0xJTUlUX0VSUk9SID0gMHg5Ci0gICAg
UFJPVE9DT0xfVklPTEFUSU9OID0gMHhBCi0gICAgSU5WQUxJRF9UT0tFTiA9IDB4QgotICAgIENS
WVBUT19CVUZGRVJfRVhDRUVERUQgPSAweEQKLSAgICBDUllQVE9fRVJST1IgPSAweDEwMAotCi0K
LWNsYXNzIFF1aWNQcm90b2NvbFZlcnNpb24oSW50RW51bSk6Ci0gICAgTkVHT1RJQVRJT04gPSAw
Ci0gICAgRFJBRlRfMjUgPSAweEZGMDAwMDE5Ci0gICAgRFJBRlRfMjYgPSAweEZGMDAwMDFBCi0g
ICAgRFJBRlRfMjcgPSAweEZGMDAwMDFCCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY0hlYWRl
cjoKLSAgICBpc19sb25nX2hlYWRlcjogYm9vbAotICAgIHZlcnNpb246IE9wdGlvbmFsW2ludF0K
LSAgICBwYWNrZXRfdHlwZTogaW50Ci0gICAgZGVzdGluYXRpb25fY2lkOiBieXRlcwotICAgIHNv
dXJjZV9jaWQ6IGJ5dGVzCi0gICAgdG9rZW46IGJ5dGVzID0gYiIiCi0gICAgaW50ZWdyaXR5X3Rh
ZzogYnl0ZXMgPSBiIiIKLSAgICByZXN0X2xlbmd0aDogaW50ID0gMAotCi0KLWRlZiBkZWNvZGVf
cGFja2V0X251bWJlcih0cnVuY2F0ZWQ6IGludCwgbnVtX2JpdHM6IGludCwgZXhwZWN0ZWQ6IGlu
dCkgLT4gaW50OgotICAgICIiIgotICAgIFJlY292ZXIgYSBwYWNrZXQgbnVtYmVyIGZyb20gYSB0
cnVuY2F0ZWQgcGFja2V0IG51bWJlci4KLQotICAgIFNlZTogQXBwZW5kaXggQSAtIFNhbXBsZSBQ
YWNrZXQgTnVtYmVyIERlY29kaW5nIEFsZ29yaXRobQotICAgICIiIgotICAgIHdpbmRvdyA9IDEg
PDwgbnVtX2JpdHMKLSAgICBoYWxmX3dpbmRvdyA9IHdpbmRvdyAvLyAyCi0gICAgY2FuZGlkYXRl
ID0gKGV4cGVjdGVkICYgfih3aW5kb3cgLSAxKSkgfCB0cnVuY2F0ZWQKLSAgICBpZiBjYW5kaWRh
dGUgPD0gZXhwZWN0ZWQgLSBoYWxmX3dpbmRvdyBhbmQgY2FuZGlkYXRlIDwgKDEgPDwgNjIpIC0g
d2luZG93OgotICAgICAgICByZXR1cm4gY2FuZGlkYXRlICsgd2luZG93Ci0gICAgZWxpZiBjYW5k
aWRhdGUgPiBleHBlY3RlZCArIGhhbGZfd2luZG93IGFuZCBjYW5kaWRhdGUgPj0gd2luZG93Ogot
ICAgICAgICByZXR1cm4gY2FuZGlkYXRlIC0gd2luZG93Ci0gICAgZWxzZToKLSAgICAgICAgcmV0
dXJuIGNhbmRpZGF0ZQotCi0KLWRlZiBnZXRfcmV0cnlfaW50ZWdyaXR5X3RhZygKLSAgICBwYWNr
ZXRfd2l0aG91dF90YWc6IGJ5dGVzLCBvcmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQ6IGJ5dGVzCi0p
IC0+IGJ5dGVzOgotICAgICIiIgotICAgIENhbGN1bGF0ZSB0aGUgaW50ZWdyaXR5IHRhZyBmb3Ig
YSBSRVRSWSBwYWNrZXQuCi0gICAgIiIiCi0gICAgIyBidWlsZCBSZXRyeSBwc2V1ZG8gcGFja2V0
Ci0gICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTEgKyBsZW4ob3JpZ2luYWxfZGVzdGluYXRpb25f
Y2lkKSArIGxlbihwYWNrZXRfd2l0aG91dF90YWcpKQotICAgIGJ1Zi5wdXNoX3VpbnQ4KGxlbihv
cmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQpKQotICAgIGJ1Zi5wdXNoX2J5dGVzKG9yaWdpbmFsX2Rl
c3RpbmF0aW9uX2NpZCkKLSAgICBidWYucHVzaF9ieXRlcyhwYWNrZXRfd2l0aG91dF90YWcpCi0g
ICAgYXNzZXJ0IGJ1Zi5lb2YoKQotCi0gICAgIyBydW4gQUVTLTEyOC1HQ00KLSAgICBhZWFkID0g
QUVTR0NNKFJFVFJZX0FFQURfS0VZKQotICAgIGludGVncml0eV90YWcgPSBhZWFkLmVuY3J5cHQo
UkVUUllfQUVBRF9OT05DRSwgYiIiLCBidWYuZGF0YSkKLSAgICBhc3NlcnQgbGVuKGludGVncml0
eV90YWcpID09IFJFVFJZX0lOVEVHUklUWV9UQUdfU0laRQotICAgIHJldHVybiBpbnRlZ3JpdHlf
dGFnCi0KLQotZGVmIGdldF9zcGluX2JpdChmaXJzdF9ieXRlOiBpbnQpIC0+IGJvb2w6Ci0gICAg
cmV0dXJuIGJvb2woZmlyc3RfYnl0ZSAmIFBBQ0tFVF9TUElOX0JJVCkKLQotCi1kZWYgaXNfbG9u
Z19oZWFkZXIoZmlyc3RfYnl0ZTogaW50KSAtPiBib29sOgotICAgIHJldHVybiBib29sKGZpcnN0
X2J5dGUgJiBQQUNLRVRfTE9OR19IRUFERVIpCi0KLQotZGVmIHB1bGxfcXVpY19oZWFkZXIoYnVm
OiBCdWZmZXIsIGhvc3RfY2lkX2xlbmd0aDogT3B0aW9uYWxbaW50XSA9IE5vbmUpIC0+IFF1aWNI
ZWFkZXI6Ci0gICAgZmlyc3RfYnl0ZSA9IGJ1Zi5wdWxsX3VpbnQ4KCkKLQotICAgIGludGVncml0
eV90YWcgPSBiIiIKLSAgICB0b2tlbiA9IGIiIgotICAgIGlmIGlzX2xvbmdfaGVhZGVyKGZpcnN0
X2J5dGUpOgotICAgICAgICAjIGxvbmcgaGVhZGVyIHBhY2tldAotICAgICAgICB2ZXJzaW9uID0g
YnVmLnB1bGxfdWludDMyKCkKLQotICAgICAgICBkZXN0aW5hdGlvbl9jaWRfbGVuZ3RoID0gYnVm
LnB1bGxfdWludDgoKQotICAgICAgICBpZiBkZXN0aW5hdGlvbl9jaWRfbGVuZ3RoID4gQ09OTkVD
VElPTl9JRF9NQVhfU0laRToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAg
ICAgICAgICAgIkRlc3RpbmF0aW9uIENJRCBpcyB0b28gbG9uZyAoJWQgYnl0ZXMpIiAlIGRlc3Rp
bmF0aW9uX2NpZF9sZW5ndGgKLSAgICAgICAgICAgICkKLSAgICAgICAgZGVzdGluYXRpb25fY2lk
ID0gYnVmLnB1bGxfYnl0ZXMoZGVzdGluYXRpb25fY2lkX2xlbmd0aCkKLQotICAgICAgICBzb3Vy
Y2VfY2lkX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnQ4KCkKLSAgICAgICAgaWYgc291cmNlX2NpZF9s
ZW5ndGggPiBDT05ORUNUSU9OX0lEX01BWF9TSVpFOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiU291cmNlIENJRCBpcyB0b28gbG9uZyAoJWQgYnl0ZXMpIiAlIHNvdXJjZV9jaWRfbGVu
Z3RoKQotICAgICAgICBzb3VyY2VfY2lkID0gYnVmLnB1bGxfYnl0ZXMoc291cmNlX2NpZF9sZW5n
dGgpCi0KLSAgICAgICAgaWYgdmVyc2lvbiA9PSBRdWljUHJvdG9jb2xWZXJzaW9uLk5FR09USUFU
SU9OOgotICAgICAgICAgICAgIyB2ZXJzaW9uIG5lZ290aWF0aW9uCi0gICAgICAgICAgICBwYWNr
ZXRfdHlwZSA9IE5vbmUKLSAgICAgICAgICAgIHJlc3RfbGVuZ3RoID0gYnVmLmNhcGFjaXR5IC0g
YnVmLnRlbGwoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbm90IChmaXJzdF9ieXRl
ICYgUEFDS0VUX0ZJWEVEX0JJVCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
UGFja2V0IGZpeGVkIGJpdCBpcyB6ZXJvIikKLQotICAgICAgICAgICAgcGFja2V0X3R5cGUgPSBm
aXJzdF9ieXRlICYgUEFDS0VUX1RZUEVfTUFTSwotICAgICAgICAgICAgaWYgcGFja2V0X3R5cGUg
PT0gUEFDS0VUX1RZUEVfSU5JVElBTDoKLSAgICAgICAgICAgICAgICB0b2tlbl9sZW5ndGggPSBi
dWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICAgICAgdG9rZW4gPSBidWYucHVsbF9ieXRl
cyh0b2tlbl9sZW5ndGgpCi0gICAgICAgICAgICAgICAgcmVzdF9sZW5ndGggPSBidWYucHVsbF91
aW50X3ZhcigpCi0gICAgICAgICAgICBlbGlmIHBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX1JF
VFJZOgotICAgICAgICAgICAgICAgIHRva2VuX2xlbmd0aCA9IGJ1Zi5jYXBhY2l0eSAtIGJ1Zi50
ZWxsKCkgLSBSRVRSWV9JTlRFR1JJVFlfVEFHX1NJWkUKLSAgICAgICAgICAgICAgICB0b2tlbiA9
IGJ1Zi5wdWxsX2J5dGVzKHRva2VuX2xlbmd0aCkKLSAgICAgICAgICAgICAgICBpbnRlZ3JpdHlf
dGFnID0gYnVmLnB1bGxfYnl0ZXMoUkVUUllfSU5URUdSSVRZX1RBR19TSVpFKQotICAgICAgICAg
ICAgICAgIHJlc3RfbGVuZ3RoID0gMAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByZXN0X2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLQotICAgICAgICByZXR1cm4gUXVp
Y0hlYWRlcigKLSAgICAgICAgICAgIGlzX2xvbmdfaGVhZGVyPVRydWUsCi0gICAgICAgICAgICB2
ZXJzaW9uPXZlcnNpb24sCi0gICAgICAgICAgICBwYWNrZXRfdHlwZT1wYWNrZXRfdHlwZSwKLSAg
ICAgICAgICAgIGRlc3RpbmF0aW9uX2NpZD1kZXN0aW5hdGlvbl9jaWQsCi0gICAgICAgICAgICBz
b3VyY2VfY2lkPXNvdXJjZV9jaWQsCi0gICAgICAgICAgICB0b2tlbj10b2tlbiwKLSAgICAgICAg
ICAgIGludGVncml0eV90YWc9aW50ZWdyaXR5X3RhZywKLSAgICAgICAgICAgIHJlc3RfbGVuZ3Ro
PXJlc3RfbGVuZ3RoLAotICAgICAgICApCi0gICAgZWxzZToKLSAgICAgICAgIyBzaG9ydCBoZWFk
ZXIgcGFja2V0Ci0gICAgICAgIGlmIG5vdCAoZmlyc3RfYnl0ZSAmIFBBQ0tFVF9GSVhFRF9CSVQp
OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUGFja2V0IGZpeGVkIGJpdCBpcyB6ZXJv
IikKLQotICAgICAgICBwYWNrZXRfdHlwZSA9IGZpcnN0X2J5dGUgJiBQQUNLRVRfVFlQRV9NQVNL
Ci0gICAgICAgIGRlc3RpbmF0aW9uX2NpZCA9IGJ1Zi5wdWxsX2J5dGVzKGhvc3RfY2lkX2xlbmd0
aCkKLSAgICAgICAgcmV0dXJuIFF1aWNIZWFkZXIoCi0gICAgICAgICAgICBpc19sb25nX2hlYWRl
cj1GYWxzZSwKLSAgICAgICAgICAgIHZlcnNpb249Tm9uZSwKLSAgICAgICAgICAgIHBhY2tldF90
eXBlPXBhY2tldF90eXBlLAotICAgICAgICAgICAgZGVzdGluYXRpb25fY2lkPWRlc3RpbmF0aW9u
X2NpZCwKLSAgICAgICAgICAgIHNvdXJjZV9jaWQ9YiIiLAotICAgICAgICAgICAgdG9rZW49YiIi
LAotICAgICAgICAgICAgcmVzdF9sZW5ndGg9YnVmLmNhcGFjaXR5IC0gYnVmLnRlbGwoKSwKLSAg
ICAgICAgKQotCi0KLWRlZiBlbmNvZGVfcXVpY19yZXRyeSgKLSAgICB2ZXJzaW9uOiBpbnQsCi0g
ICAgc291cmNlX2NpZDogYnl0ZXMsCi0gICAgZGVzdGluYXRpb25fY2lkOiBieXRlcywKLSAgICBv
cmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQ6IGJ5dGVzLAotICAgIHJldHJ5X3Rva2VuOiBieXRlcywK
LSkgLT4gYnl0ZXM6Ci0gICAgYnVmID0gQnVmZmVyKAotICAgICAgICBjYXBhY2l0eT03Ci0gICAg
ICAgICsgbGVuKGRlc3RpbmF0aW9uX2NpZCkKLSAgICAgICAgKyBsZW4oc291cmNlX2NpZCkKLSAg
ICAgICAgKyBsZW4ocmV0cnlfdG9rZW4pCi0gICAgICAgICsgUkVUUllfSU5URUdSSVRZX1RBR19T
SVpFCi0gICAgKQotICAgIGJ1Zi5wdXNoX3VpbnQ4KFBBQ0tFVF9UWVBFX1JFVFJZKQotICAgIGJ1
Zi5wdXNoX3VpbnQzMih2ZXJzaW9uKQotICAgIGJ1Zi5wdXNoX3VpbnQ4KGxlbihkZXN0aW5hdGlv
bl9jaWQpKQotICAgIGJ1Zi5wdXNoX2J5dGVzKGRlc3RpbmF0aW9uX2NpZCkKLSAgICBidWYucHVz
aF91aW50OChsZW4oc291cmNlX2NpZCkpCi0gICAgYnVmLnB1c2hfYnl0ZXMoc291cmNlX2NpZCkK
LSAgICBidWYucHVzaF9ieXRlcyhyZXRyeV90b2tlbikKLSAgICBidWYucHVzaF9ieXRlcyhnZXRf
cmV0cnlfaW50ZWdyaXR5X3RhZyhidWYuZGF0YSwgb3JpZ2luYWxfZGVzdGluYXRpb25fY2lkKSkK
LSAgICBhc3NlcnQgYnVmLmVvZigpCi0gICAgcmV0dXJuIGJ1Zi5kYXRhCi0KLQotZGVmIGVuY29k
ZV9xdWljX3ZlcnNpb25fbmVnb3RpYXRpb24oCi0gICAgc291cmNlX2NpZDogYnl0ZXMsIGRlc3Rp
bmF0aW9uX2NpZDogYnl0ZXMsIHN1cHBvcnRlZF92ZXJzaW9uczogTGlzdFtpbnRdCi0pIC0+IGJ5
dGVzOgotICAgIGJ1ZiA9IEJ1ZmZlcigKLSAgICAgICAgY2FwYWNpdHk9NwotICAgICAgICArIGxl
bihkZXN0aW5hdGlvbl9jaWQpCi0gICAgICAgICsgbGVuKHNvdXJjZV9jaWQpCi0gICAgICAgICsg
NCAqIGxlbihzdXBwb3J0ZWRfdmVyc2lvbnMpCi0gICAgKQotICAgIGJ1Zi5wdXNoX3VpbnQ4KG9z
LnVyYW5kb20oMSlbMF0gfCBQQUNLRVRfTE9OR19IRUFERVIpCi0gICAgYnVmLnB1c2hfdWludDMy
KFF1aWNQcm90b2NvbFZlcnNpb24uTkVHT1RJQVRJT04pCi0gICAgYnVmLnB1c2hfdWludDgobGVu
KGRlc3RpbmF0aW9uX2NpZCkpCi0gICAgYnVmLnB1c2hfYnl0ZXMoZGVzdGluYXRpb25fY2lkKQot
ICAgIGJ1Zi5wdXNoX3VpbnQ4KGxlbihzb3VyY2VfY2lkKSkKLSAgICBidWYucHVzaF9ieXRlcyhz
b3VyY2VfY2lkKQotICAgIGZvciB2ZXJzaW9uIGluIHN1cHBvcnRlZF92ZXJzaW9uczoKLSAgICAg
ICAgYnVmLnB1c2hfdWludDMyKHZlcnNpb24pCi0gICAgcmV0dXJuIGJ1Zi5kYXRhCi0KLQotIyBU
TFMgRVhURU5TSU9OCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY1ByZWZlcnJlZEFkZHJlc3M6
Ci0gICAgaXB2NF9hZGRyZXNzOiBPcHRpb25hbFtUdXBsZVtzdHIsIGludF1dCi0gICAgaXB2Nl9h
ZGRyZXNzOiBPcHRpb25hbFtUdXBsZVtzdHIsIGludF1dCi0gICAgY29ubmVjdGlvbl9pZDogYnl0
ZXMKLSAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW46IGJ5dGVzCi0KLQotQGRhdGFjbGFzcwotY2xh
c3MgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnM6Ci0gICAgb3JpZ2luYWxfY29ubmVjdGlvbl9pZDog
T3B0aW9uYWxbYnl0ZXNdID0gTm9uZQotICAgIGlkbGVfdGltZW91dDogT3B0aW9uYWxbaW50XSA9
IE5vbmUKLSAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW46IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUK
LSAgICBtYXhfcGFja2V0X3NpemU6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgaW5pdGlhbF9t
YXhfZGF0YTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBpbml0aWFsX21heF9zdHJlYW1fZGF0
YV9iaWRpX2xvY2FsOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIGluaXRpYWxfbWF4X3N0cmVh
bV9kYXRhX2JpZGlfcmVtb3RlOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIGluaXRpYWxfbWF4
X3N0cmVhbV9kYXRhX3VuaTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBpbml0aWFsX21heF9z
dHJlYW1zX2JpZGk6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgaW5pdGlhbF9tYXhfc3RyZWFt
c191bmk6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgYWNrX2RlbGF5X2V4cG9uZW50OiBPcHRp
b25hbFtpbnRdID0gTm9uZQotICAgIG1heF9hY2tfZGVsYXk6IE9wdGlvbmFsW2ludF0gPSBOb25l
Ci0gICAgZGlzYWJsZV9hY3RpdmVfbWlncmF0aW9uOiBPcHRpb25hbFtib29sXSA9IEZhbHNlCi0g
ICAgcHJlZmVycmVkX2FkZHJlc3M6IE9wdGlvbmFsW1F1aWNQcmVmZXJyZWRBZGRyZXNzXSA9IE5v
bmUKLSAgICBhY3RpdmVfY29ubmVjdGlvbl9pZF9saW1pdDogT3B0aW9uYWxbaW50XSA9IE5vbmUK
LSAgICBtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBx
dWFudHVtX3JlYWRpbmVzczogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQotCi0KLVBBUkFNUyA9IHsK
LSAgICAwOiAoIm9yaWdpbmFsX2Nvbm5lY3Rpb25faWQiLCBieXRlcyksCi0gICAgMTogKCJpZGxl
X3RpbWVvdXQiLCBpbnQpLAotICAgIDI6ICgic3RhdGVsZXNzX3Jlc2V0X3Rva2VuIiwgYnl0ZXMp
LAotICAgIDM6ICgibWF4X3BhY2tldF9zaXplIiwgaW50KSwKLSAgICA0OiAoImluaXRpYWxfbWF4
X2RhdGEiLCBpbnQpLAotICAgIDU6ICgiaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9sb2Nh
bCIsIGludCksCi0gICAgNjogKCJpbml0aWFsX21heF9zdHJlYW1fZGF0YV9iaWRpX3JlbW90ZSIs
IGludCksCi0gICAgNzogKCJpbml0aWFsX21heF9zdHJlYW1fZGF0YV91bmkiLCBpbnQpLAotICAg
IDg6ICgiaW5pdGlhbF9tYXhfc3RyZWFtc19iaWRpIiwgaW50KSwKLSAgICA5OiAoImluaXRpYWxf
bWF4X3N0cmVhbXNfdW5pIiwgaW50KSwKLSAgICAxMDogKCJhY2tfZGVsYXlfZXhwb25lbnQiLCBp
bnQpLAotICAgIDExOiAoIm1heF9hY2tfZGVsYXkiLCBpbnQpLAotICAgIDEyOiAoImRpc2FibGVf
YWN0aXZlX21pZ3JhdGlvbiIsIGJvb2wpLAotICAgIDEzOiAoInByZWZlcnJlZF9hZGRyZXNzIiwg
UXVpY1ByZWZlcnJlZEFkZHJlc3MpLAotICAgIDE0OiAoImFjdGl2ZV9jb25uZWN0aW9uX2lkX2xp
bWl0IiwgaW50KSwKLSAgICAzMjogKCJtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZSIsIGludCksCi0g
ICAgMzEyNzogKCJxdWFudHVtX3JlYWRpbmVzcyIsIGJ5dGVzKSwKLX0KLQotCi1kZWYgcHVsbF9x
dWljX3ByZWZlcnJlZF9hZGRyZXNzKGJ1ZjogQnVmZmVyKSAtPiBRdWljUHJlZmVycmVkQWRkcmVz
czoKLSAgICBpcHY0X2FkZHJlc3MgPSBOb25lCi0gICAgaXB2NF9ob3N0ID0gYnVmLnB1bGxfYnl0
ZXMoNCkKLSAgICBpcHY0X3BvcnQgPSBidWYucHVsbF91aW50MTYoKQotICAgIGlmIGlwdjRfaG9z
dCAhPSBieXRlcyg0KToKLSAgICAgICAgaXB2NF9hZGRyZXNzID0gKHN0cihpcGFkZHJlc3MuSVB2
NEFkZHJlc3MoaXB2NF9ob3N0KSksIGlwdjRfcG9ydCkKLQotICAgIGlwdjZfYWRkcmVzcyA9IE5v
bmUKLSAgICBpcHY2X2hvc3QgPSBidWYucHVsbF9ieXRlcygxNikKLSAgICBpcHY2X3BvcnQgPSBi
dWYucHVsbF91aW50MTYoKQotICAgIGlmIGlwdjZfaG9zdCAhPSBieXRlcygxNik6Ci0gICAgICAg
IGlwdjZfYWRkcmVzcyA9IChzdHIoaXBhZGRyZXNzLklQdjZBZGRyZXNzKGlwdjZfaG9zdCkpLCBp
cHY2X3BvcnQpCi0KLSAgICBjb25uZWN0aW9uX2lkX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnQ4KCkK
LSAgICBjb25uZWN0aW9uX2lkID0gYnVmLnB1bGxfYnl0ZXMoY29ubmVjdGlvbl9pZF9sZW5ndGgp
Ci0gICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuID0gYnVmLnB1bGxfYnl0ZXMoMTYpCi0KLSAgICBy
ZXR1cm4gUXVpY1ByZWZlcnJlZEFkZHJlc3MoCi0gICAgICAgIGlwdjRfYWRkcmVzcz1pcHY0X2Fk
ZHJlc3MsCi0gICAgICAgIGlwdjZfYWRkcmVzcz1pcHY2X2FkZHJlc3MsCi0gICAgICAgIGNvbm5l
Y3Rpb25faWQ9Y29ubmVjdGlvbl9pZCwKLSAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPXN0
YXRlbGVzc19yZXNldF90b2tlbiwKLSAgICApCi0KLQotZGVmIHB1c2hfcXVpY19wcmVmZXJyZWRf
YWRkcmVzcygKLSAgICBidWY6IEJ1ZmZlciwgcHJlZmVycmVkX2FkZHJlc3M6IFF1aWNQcmVmZXJy
ZWRBZGRyZXNzCi0pIC0+IE5vbmU6Ci0gICAgaWYgcHJlZmVycmVkX2FkZHJlc3MuaXB2NF9hZGRy
ZXNzIGlzIG5vdCBOb25lOgotICAgICAgICBidWYucHVzaF9ieXRlcyhpcGFkZHJlc3MuSVB2NEFk
ZHJlc3MocHJlZmVycmVkX2FkZHJlc3MuaXB2NF9hZGRyZXNzWzBdKS5wYWNrZWQpCi0gICAgICAg
IGJ1Zi5wdXNoX3VpbnQxNihwcmVmZXJyZWRfYWRkcmVzcy5pcHY0X2FkZHJlc3NbMV0pCi0gICAg
ZWxzZToKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoNikpCi0KLSAgICBpZiBwcmVmZXJy
ZWRfYWRkcmVzcy5pcHY2X2FkZHJlc3MgaXMgbm90IE5vbmU6Ci0gICAgICAgIGJ1Zi5wdXNoX2J5
dGVzKGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhwcmVmZXJyZWRfYWRkcmVzcy5pcHY2X2FkZHJlc3Nb
MF0pLnBhY2tlZCkKLSAgICAgICAgYnVmLnB1c2hfdWludDE2KHByZWZlcnJlZF9hZGRyZXNzLmlw
djZfYWRkcmVzc1sxXSkKLSAgICBlbHNlOgotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcygx
OCkpCi0KLSAgICBidWYucHVzaF91aW50OChsZW4ocHJlZmVycmVkX2FkZHJlc3MuY29ubmVjdGlv
bl9pZCkpCi0gICAgYnVmLnB1c2hfYnl0ZXMocHJlZmVycmVkX2FkZHJlc3MuY29ubmVjdGlvbl9p
ZCkKLSAgICBidWYucHVzaF9ieXRlcyhwcmVmZXJyZWRfYWRkcmVzcy5zdGF0ZWxlc3NfcmVzZXRf
dG9rZW4pCi0KLQotZGVmIHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICBidWY6
IEJ1ZmZlciwgcHJvdG9jb2xfdmVyc2lvbjogaW50Ci0pIC0+IFF1aWNUcmFuc3BvcnRQYXJhbWV0
ZXJzOgotICAgIHBhcmFtcyA9IFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJzKCkKLQotICAgIGlmIHBy
b3RvY29sX3ZlcnNpb24gPCBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI3OgotICAgICAgICB3
aXRoIHB1bGxfYmxvY2soYnVmLCAyKSBhcyBsZW5ndGg6Ci0gICAgICAgICAgICBlbmQgPSBidWYu
dGVsbCgpICsgbGVuZ3RoCi0gICAgICAgICAgICB3aGlsZSBidWYudGVsbCgpIDwgZW5kOgotICAg
ICAgICAgICAgICAgIHBhcmFtX2lkID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICAgICAgICAgICAg
ICBwYXJhbV9sZW4gPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgICAgIHBhcmFtX3N0
YXJ0ID0gYnVmLnRlbGwoKQotICAgICAgICAgICAgICAgIGlmIHBhcmFtX2lkIGluIFBBUkFNUzoK
LSAgICAgICAgICAgICAgICAgICAgIyBwYXJzZSBrbm93biBwYXJhbWV0ZXIKLSAgICAgICAgICAg
ICAgICAgICAgcGFyYW1fbmFtZSwgcGFyYW1fdHlwZSA9IFBBUkFNU1twYXJhbV9pZF0KLSAgICAg
ICAgICAgICAgICAgICAgaWYgcGFyYW1fdHlwZSA9PSBpbnQ6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBzZXRhdHRyKHBhcmFtcywgcGFyYW1fbmFtZSwgYnVmLnB1bGxfdWludF92YXIoKSkKLSAg
ICAgICAgICAgICAgICAgICAgZWxpZiBwYXJhbV90eXBlID09IGJ5dGVzOgotICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUsIGJ1Zi5wdWxsX2J5dGVzKHBh
cmFtX2xlbikpCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgcGFyYW1fdHlwZSA9PSBRdWljUHJl
ZmVycmVkQWRkcmVzczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIocGFyYW1zLCBw
YXJhbV9uYW1lLCBwdWxsX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MoYnVmKSkKLSAgICAgICAgICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIocGFyYW1zLCBw
YXJhbV9uYW1lLCBUcnVlKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgICMgc2tpcCB1bmtub3duIHBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICBidWYucHVs
bF9ieXRlcyhwYXJhbV9sZW4pCi0gICAgICAgICAgICAgICAgYXNzZXJ0IGJ1Zi50ZWxsKCkgPT0g
cGFyYW1fc3RhcnQgKyBwYXJhbV9sZW4KLSAgICBlbHNlOgotICAgICAgICB3aGlsZSBub3QgYnVm
LmVvZigpOgotICAgICAgICAgICAgcGFyYW1faWQgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAg
ICAgICAgICBwYXJhbV9sZW4gPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAgICBwYXJh
bV9zdGFydCA9IGJ1Zi50ZWxsKCkKLSAgICAgICAgICAgIGlmIHBhcmFtX2lkIGluIFBBUkFNUzoK
LSAgICAgICAgICAgICAgICAjIHBhcnNlIGtub3duIHBhcmFtZXRlcgotICAgICAgICAgICAgICAg
IHBhcmFtX25hbWUsIHBhcmFtX3R5cGUgPSBQQVJBTVNbcGFyYW1faWRdCi0gICAgICAgICAgICAg
ICAgaWYgcGFyYW1fdHlwZSA9PSBpbnQ6Ci0gICAgICAgICAgICAgICAgICAgIHNldGF0dHIocGFy
YW1zLCBwYXJhbV9uYW1lLCBidWYucHVsbF91aW50X3ZhcigpKQotICAgICAgICAgICAgICAgIGVs
aWYgcGFyYW1fdHlwZSA9PSBieXRlczoKLSAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihwYXJh
bXMsIHBhcmFtX25hbWUsIGJ1Zi5wdWxsX2J5dGVzKHBhcmFtX2xlbikpCi0gICAgICAgICAgICAg
ICAgZWxpZiBwYXJhbV90eXBlID09IFF1aWNQcmVmZXJyZWRBZGRyZXNzOgotICAgICAgICAgICAg
ICAgICAgICBzZXRhdHRyKHBhcmFtcywgcGFyYW1fbmFtZSwgcHVsbF9xdWljX3ByZWZlcnJlZF9h
ZGRyZXNzKGJ1ZikpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
c2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUsIFRydWUpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICMgc2tpcCB1bmtub3duIHBhcmFtZXRlcgotICAgICAgICAgICAgICAgIGJ1
Zi5wdWxsX2J5dGVzKHBhcmFtX2xlbikKLSAgICAgICAgICAgIGFzc2VydCBidWYudGVsbCgpID09
IHBhcmFtX3N0YXJ0ICsgcGFyYW1fbGVuCi0KLSAgICByZXR1cm4gcGFyYW1zCi0KLQotZGVmIHB1
c2hfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICBidWY6IEJ1ZmZlciwgcGFyYW1zOiBR
dWljVHJhbnNwb3J0UGFyYW1ldGVycywgcHJvdG9jb2xfdmVyc2lvbjogaW50Ci0pIC0+IE5vbmU6
Ci0gICAgaWYgcHJvdG9jb2xfdmVyc2lvbiA8IFF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjc6
Ci0gICAgICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDIpOgotICAgICAgICAgICAgZm9yIHBhcmFt
X2lkLCAocGFyYW1fbmFtZSwgcGFyYW1fdHlwZSkgaW4gUEFSQU1TLml0ZW1zKCk6Ci0gICAgICAg
ICAgICAgICAgcGFyYW1fdmFsdWUgPSBnZXRhdHRyKHBhcmFtcywgcGFyYW1fbmFtZSkKLSAgICAg
ICAgICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBub3QgTm9uZSBhbmQgcGFyYW1fdmFsdWUgaXMg
bm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAgICBidWYucHVzaF91aW50MTYocGFyYW1faWQp
Ci0gICAgICAgICAgICAgICAgICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDIpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgcGFyYW1fdHlwZSA9PSBpbnQ6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnVmLnB1c2hfdWludF92YXIocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBlbGlmIHBhcmFtX3R5cGUgPT0gYnl0ZXM6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnVmLnB1c2hfYnl0ZXMocGFyYW1fdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBlbGlmIHBhcmFtX3R5cGUgPT0gUXVpY1ByZWZlcnJlZEFkZHJlc3M6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaF9xdWljX3ByZWZlcnJlZF9hZGRyZXNzKGJ1ZiwgcGFyYW1fdmFs
dWUpCi0gICAgZWxzZToKLSAgICAgICAgZm9yIHBhcmFtX2lkLCAocGFyYW1fbmFtZSwgcGFyYW1f
dHlwZSkgaW4gUEFSQU1TLml0ZW1zKCk6Ci0gICAgICAgICAgICBwYXJhbV92YWx1ZSA9IGdldGF0
dHIocGFyYW1zLCBwYXJhbV9uYW1lKQotICAgICAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgbm90
IE5vbmUgYW5kIHBhcmFtX3ZhbHVlIGlzIG5vdCBGYWxzZToKLSAgICAgICAgICAgICAgICBwYXJh
bV9idWYgPSBCdWZmZXIoY2FwYWNpdHk9NjU1MzYpCi0gICAgICAgICAgICAgICAgaWYgcGFyYW1f
dHlwZSA9PSBpbnQ6Ci0gICAgICAgICAgICAgICAgICAgIHBhcmFtX2J1Zi5wdXNoX3VpbnRfdmFy
KHBhcmFtX3ZhbHVlKQotICAgICAgICAgICAgICAgIGVsaWYgcGFyYW1fdHlwZSA9PSBieXRlczoK
LSAgICAgICAgICAgICAgICAgICAgcGFyYW1fYnVmLnB1c2hfYnl0ZXMocGFyYW1fdmFsdWUpCi0g
ICAgICAgICAgICAgICAgZWxpZiBwYXJhbV90eXBlID09IFF1aWNQcmVmZXJyZWRBZGRyZXNzOgot
ICAgICAgICAgICAgICAgICAgICBwdXNoX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MocGFyYW1fYnVm
LCBwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihwYXJhbV9p
ZCkKLSAgICAgICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihwYXJhbV9idWYudGVsbCgpKQot
ICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKHBhcmFtX2J1Zi5kYXRhKQotCi0KLSMgRlJB
TUVTCi0KLQotY2xhc3MgUXVpY0ZyYW1lVHlwZShJbnRFbnVtKToKLSAgICBQQURESU5HID0gMHgw
MAotICAgIFBJTkcgPSAweDAxCi0gICAgQUNLID0gMHgwMgotICAgIEFDS19FQ04gPSAweDAzCi0g
ICAgUkVTRVRfU1RSRUFNID0gMHgwNAotICAgIFNUT1BfU0VORElORyA9IDB4MDUKLSAgICBDUllQ
VE8gPSAweDA2Ci0gICAgTkVXX1RPS0VOID0gMHgwNwotICAgIFNUUkVBTV9CQVNFID0gMHgwOAot
ICAgIE1BWF9EQVRBID0gMHgxMAotICAgIE1BWF9TVFJFQU1fREFUQSA9IDB4MTEKLSAgICBNQVhf
U1RSRUFNU19CSURJID0gMHgxMgotICAgIE1BWF9TVFJFQU1TX1VOSSA9IDB4MTMKLSAgICBEQVRB
X0JMT0NLRUQgPSAweDE0Ci0gICAgU1RSRUFNX0RBVEFfQkxPQ0tFRCA9IDB4MTUKLSAgICBTVFJF
QU1TX0JMT0NLRURfQklESSA9IDB4MTYKLSAgICBTVFJFQU1TX0JMT0NLRURfVU5JID0gMHgxNwot
ICAgIE5FV19DT05ORUNUSU9OX0lEID0gMHgxOAotICAgIFJFVElSRV9DT05ORUNUSU9OX0lEID0g
MHgxOQotICAgIFBBVEhfQ0hBTExFTkdFID0gMHgxQQotICAgIFBBVEhfUkVTUE9OU0UgPSAweDFC
Ci0gICAgVFJBTlNQT1JUX0NMT1NFID0gMHgxQwotICAgIEFQUExJQ0FUSU9OX0NMT1NFID0gMHgx
RAotICAgIEhBTkRTSEFLRV9ET05FID0gMHgxRQotICAgIERBVEFHUkFNID0gMHgzMAotICAgIERB
VEFHUkFNX1dJVEhfTEVOR1RIID0gMHgzMQotCi0KLU5PTl9BQ0tfRUxJQ0lUSU5HX0ZSQU1FX1RZ
UEVTID0gZnJvemVuc2V0KAotICAgIFsKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5BQ0ssCi0gICAg
ICAgIFF1aWNGcmFtZVR5cGUuQUNLX0VDTiwKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5QQURESU5H
LAotICAgICAgICBRdWljRnJhbWVUeXBlLlRSQU5TUE9SVF9DTE9TRSwKLSAgICAgICAgUXVpY0Zy
YW1lVHlwZS5BUFBMSUNBVElPTl9DTE9TRSwKLSAgICBdCi0pCi1OT05fSU5fRkxJR0hUX0ZSQU1F
X1RZUEVTID0gZnJvemVuc2V0KAotICAgIFsKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5BQ0ssCi0g
ICAgICAgIFF1aWNGcmFtZVR5cGUuQUNLX0VDTiwKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5UUkFO
U1BPUlRfQ0xPU0UsCi0gICAgICAgIFF1aWNGcmFtZVR5cGUuQVBQTElDQVRJT05fQ0xPU0UsCi0g
ICAgXQotKQotCi1QUk9CSU5HX0ZSQU1FX1RZUEVTID0gZnJvemVuc2V0KAotICAgIFsKLSAgICAg
ICAgUXVpY0ZyYW1lVHlwZS5QQVRIX0NIQUxMRU5HRSwKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5Q
QVRIX1JFU1BPTlNFLAotICAgICAgICBRdWljRnJhbWVUeXBlLlBBRERJTkcsCi0gICAgICAgIFF1
aWNGcmFtZVR5cGUuTkVXX0NPTk5FQ1RJT05fSUQsCi0gICAgXQotKQotCi0KLUBkYXRhY2xhc3MK
LWNsYXNzIFF1aWNTdHJlYW1GcmFtZToKLSAgICBkYXRhOiBieXRlcyA9IGIiIgotICAgIGZpbjog
Ym9vbCA9IEZhbHNlCi0gICAgb2Zmc2V0OiBpbnQgPSAwCi0KLQotZGVmIHB1bGxfYWNrX2ZyYW1l
KGJ1ZjogQnVmZmVyKSAtPiBUdXBsZVtSYW5nZVNldCwgaW50XToKLSAgICByYW5nZXNldCA9IFJh
bmdlU2V0KCkKLSAgICBlbmQgPSBidWYucHVsbF91aW50X3ZhcigpICAjIGxhcmdlc3QgYWNrbm93
bGVkZ2VkCi0gICAgZGVsYXkgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgYWNrX3JhbmdlX2Nv
dW50ID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgIGFja19jb3VudCA9IGJ1Zi5wdWxsX3VpbnRf
dmFyKCkgICMgZmlyc3QgYWNrIHJhbmdlCi0gICAgcmFuZ2VzZXQuYWRkKGVuZCAtIGFja19jb3Vu
dCwgZW5kICsgMSkKLSAgICBlbmQgLT0gYWNrX2NvdW50Ci0gICAgZm9yIF8gaW4gcmFuZ2UoYWNr
X3JhbmdlX2NvdW50KToKLSAgICAgICAgZW5kIC09IGJ1Zi5wdWxsX3VpbnRfdmFyKCkgKyAyCi0g
ICAgICAgIGFja19jb3VudCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgcmFuZ2VzZXQu
YWRkKGVuZCAtIGFja19jb3VudCwgZW5kICsgMSkKLSAgICAgICAgZW5kIC09IGFja19jb3VudAot
ICAgIHJldHVybiByYW5nZXNldCwgZGVsYXkKLQotCi1kZWYgcHVzaF9hY2tfZnJhbWUoYnVmOiBC
dWZmZXIsIHJhbmdlc2V0OiBSYW5nZVNldCwgZGVsYXk6IGludCkgLT4gaW50OgotICAgIHJhbmdl
cyA9IGxlbihyYW5nZXNldCkKLSAgICBpbmRleCA9IHJhbmdlcyAtIDEKLSAgICByID0gcmFuZ2Vz
ZXRbaW5kZXhdCi0gICAgYnVmLnB1c2hfdWludF92YXIoci5zdG9wIC0gMSkKLSAgICBidWYucHVz
aF91aW50X3ZhcihkZWxheSkKLSAgICBidWYucHVzaF91aW50X3ZhcihpbmRleCkKLSAgICBidWYu
cHVzaF91aW50X3ZhcihyLnN0b3AgLSAxIC0gci5zdGFydCkKLSAgICBzdGFydCA9IHIuc3RhcnQK
LSAgICB3aGlsZSBpbmRleCA+IDA6Ci0gICAgICAgIGluZGV4IC09IDEKLSAgICAgICAgciA9IHJh
bmdlc2V0W2luZGV4XQotICAgICAgICBidWYucHVzaF91aW50X3ZhcihzdGFydCAtIHIuc3RvcCAt
IDEpCi0gICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHIuc3RvcCAtIHIuc3RhcnQgLSAxKQotICAg
ICAgICBzdGFydCA9IHIuc3RhcnQKLSAgICByZXR1cm4gcmFuZ2VzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9wYWNrZXRfYnVpbGRlci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9xdWljL3BhY2tldF9idWlsZGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwODgzN2MyYzMzMDQ5MjA2NDQ1ZmM5ZmI4MTQ3M2FjZmNiZjRiNjViLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9xdWljL3BhY2tldF9idWlsZGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzY2
ICswLDAgQEAKLWZyb20gZGF0YWNsYXNzZXMgaW1wb3J0IGRhdGFjbGFzcywgZmllbGQKLWZyb20g
ZW51bSBpbXBvcnQgRW51bQotZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIERpY3Qs
IExpc3QsIE9wdGlvbmFsLCBTZXF1ZW5jZSwgVHVwbGUKLQotZnJvbSAuLmJ1ZmZlciBpbXBvcnQg
QnVmZmVyLCBzaXplX3VpbnRfdmFyCi1mcm9tIC4udGxzIGltcG9ydCBFcG9jaAotZnJvbSAuY3J5
cHRvIGltcG9ydCBDcnlwdG9QYWlyCi1mcm9tIC5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXJUcmFj
ZQotZnJvbSAucGFja2V0IGltcG9ydCAoCi0gICAgTk9OX0FDS19FTElDSVRJTkdfRlJBTUVfVFlQ
RVMsCi0gICAgTk9OX0lOX0ZMSUdIVF9GUkFNRV9UWVBFUywKLSAgICBQQUNLRVRfTlVNQkVSX01B
WF9TSVpFLAotICAgIFBBQ0tFVF9UWVBFX0hBTkRTSEFLRSwKLSAgICBQQUNLRVRfVFlQRV9JTklU
SUFMLAotICAgIFBBQ0tFVF9UWVBFX01BU0ssCi0gICAgUXVpY0ZyYW1lVHlwZSwKLSAgICBpc19s
b25nX2hlYWRlciwKLSkKLQotUEFDS0VUX01BWF9TSVpFID0gMTI4MAotUEFDS0VUX0xFTkdUSF9T
RU5EX1NJWkUgPSAyCi1QQUNLRVRfTlVNQkVSX1NFTkRfU0laRSA9IDIKLQotCi1RdWljRGVsaXZl
cnlIYW5kbGVyID0gQ2FsbGFibGVbLi4uLCBOb25lXQotCi0KLWNsYXNzIFF1aWNEZWxpdmVyeVN0
YXRlKEVudW0pOgotICAgIEFDS0VEID0gMAotICAgIExPU1QgPSAxCi0gICAgRVhQSVJFRCA9IDIK
LQotCi1AZGF0YWNsYXNzCi1jbGFzcyBRdWljU2VudFBhY2tldDoKLSAgICBlcG9jaDogRXBvY2gK
LSAgICBpbl9mbGlnaHQ6IGJvb2wKLSAgICBpc19hY2tfZWxpY2l0aW5nOiBib29sCi0gICAgaXNf
Y3J5cHRvX3BhY2tldDogYm9vbAotICAgIHBhY2tldF9udW1iZXI6IGludAotICAgIHBhY2tldF90
eXBlOiBpbnQKLSAgICBzZW50X3RpbWU6IE9wdGlvbmFsW2Zsb2F0XSA9IE5vbmUKLSAgICBzZW50
X2J5dGVzOiBpbnQgPSAwCi0KLSAgICBkZWxpdmVyeV9oYW5kbGVyczogTGlzdFtUdXBsZVtRdWlj
RGVsaXZlcnlIYW5kbGVyLCBBbnldXSA9IGZpZWxkKAotICAgICAgICBkZWZhdWx0X2ZhY3Rvcnk9
bGlzdAotICAgICkKLSAgICBxdWljX2xvZ2dlcl9mcmFtZXM6IExpc3RbRGljdF0gPSBmaWVsZChk
ZWZhdWx0X2ZhY3Rvcnk9bGlzdCkKLQotCi1jbGFzcyBRdWljUGFja2V0QnVpbGRlclN0b3AoRXhj
ZXB0aW9uKToKLSAgICBwYXNzCi0KLQotY2xhc3MgUXVpY1BhY2tldEJ1aWxkZXI6Ci0gICAgIiIi
Ci0gICAgSGVscGVyIGZvciBidWlsZGluZyBRVUlDIHBhY2tldHMuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsCi0gICAgICAgICosCi0gICAgICAgIGhvc3RfY2lk
OiBieXRlcywKLSAgICAgICAgcGVlcl9jaWQ6IGJ5dGVzLAotICAgICAgICB2ZXJzaW9uOiBpbnQs
Ci0gICAgICAgIGlzX2NsaWVudDogYm9vbCwKLSAgICAgICAgcGFja2V0X251bWJlcjogaW50ID0g
MCwKLSAgICAgICAgcGVlcl90b2tlbjogYnl0ZXMgPSBiIiIsCi0gICAgICAgIHF1aWNfbG9nZ2Vy
OiBPcHRpb25hbFtRdWljTG9nZ2VyVHJhY2VdID0gTm9uZSwKLSAgICAgICAgc3Bpbl9iaXQ6IGJv
b2wgPSBGYWxzZSwKLSAgICApOgotICAgICAgICBzZWxmLm1heF9mbGlnaHRfYnl0ZXM6IE9wdGlv
bmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYubWF4X3RvdGFsX2J5dGVzOiBPcHRpb25hbFtp
bnRdID0gTm9uZQotICAgICAgICBzZWxmLnF1aWNfbG9nZ2VyX2ZyYW1lczogT3B0aW9uYWxbTGlz
dFtEaWN0XV0gPSBOb25lCi0KLSAgICAgICAgc2VsZi5faG9zdF9jaWQgPSBob3N0X2NpZAotICAg
ICAgICBzZWxmLl9pc19jbGllbnQgPSBpc19jbGllbnQKLSAgICAgICAgc2VsZi5fcGVlcl9jaWQg
PSBwZWVyX2NpZAotICAgICAgICBzZWxmLl9wZWVyX3Rva2VuID0gcGVlcl90b2tlbgotICAgICAg
ICBzZWxmLl9xdWljX2xvZ2dlciA9IHF1aWNfbG9nZ2VyCi0gICAgICAgIHNlbGYuX3NwaW5fYml0
ID0gc3Bpbl9iaXQKLSAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHZlcnNpb24KLQotICAgICAgICAj
IGFzc2VtYmxlZCBkYXRhZ3JhbXMgYW5kIHBhY2tldHMKLSAgICAgICAgc2VsZi5fZGF0YWdyYW1z
OiBMaXN0W2J5dGVzXSA9IFtdCi0gICAgICAgIHNlbGYuX2RhdGFncmFtX2ZsaWdodF9ieXRlcyA9
IDAKLSAgICAgICAgc2VsZi5fZGF0YWdyYW1faW5pdCA9IFRydWUKLSAgICAgICAgc2VsZi5fcGFj
a2V0czogTGlzdFtRdWljU2VudFBhY2tldF0gPSBbXQotICAgICAgICBzZWxmLl9mbGlnaHRfYnl0
ZXMgPSAwCi0gICAgICAgIHNlbGYuX3RvdGFsX2J5dGVzID0gMAotCi0gICAgICAgICMgY3VycmVu
dCBwYWNrZXQKLSAgICAgICAgc2VsZi5faGVhZGVyX3NpemUgPSAwCi0gICAgICAgIHNlbGYuX3Bh
Y2tldDogT3B0aW9uYWxbUXVpY1NlbnRQYWNrZXRdID0gTm9uZQotICAgICAgICBzZWxmLl9wYWNr
ZXRfY3J5cHRvOiBPcHRpb25hbFtDcnlwdG9QYWlyXSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGFj
a2V0X2xvbmdfaGVhZGVyID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcGFja2V0X251bWJlciA9IHBh
Y2tldF9udW1iZXIKLSAgICAgICAgc2VsZi5fcGFja2V0X3N0YXJ0ID0gMAotICAgICAgICBzZWxm
Ll9wYWNrZXRfdHlwZSA9IDAKLQotICAgICAgICBzZWxmLl9idWZmZXIgPSBCdWZmZXIoUEFDS0VU
X01BWF9TSVpFKQotICAgICAgICBzZWxmLl9idWZmZXJfY2FwYWNpdHkgPSBQQUNLRVRfTUFYX1NJ
WkUKLSAgICAgICAgc2VsZi5fZmxpZ2h0X2NhcGFjaXR5ID0gUEFDS0VUX01BWF9TSVpFCi0KLSAg
ICBAcHJvcGVydHkKLSAgICBkZWYgcGFja2V0X2lzX2VtcHR5KHNlbGYpIC0+IGJvb2w6Ci0gICAg
ICAgICIiIgotICAgICAgICBSZXR1cm5zIGBUcnVlYCBpZiB0aGUgY3VycmVudCBwYWNrZXQgaXMg
ZW1wdHkuCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgc2VsZi5fcGFja2V0IGlzIG5vdCBO
b25lCi0gICAgICAgIHBhY2tldF9zaXplID0gc2VsZi5fYnVmZmVyLnRlbGwoKSAtIHNlbGYuX3Bh
Y2tldF9zdGFydAotICAgICAgICByZXR1cm4gcGFja2V0X3NpemUgPD0gc2VsZi5faGVhZGVyX3Np
emUKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBwYWNrZXRfbnVtYmVyKHNlbGYpIC0+IGludDoK
LSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMgdGhlIHBhY2tldCBudW1iZXIgZm9yIHRoZSBu
ZXh0IHBhY2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9wYWNrZXRfbnVt
YmVyCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVtYWluaW5nX2J1ZmZlcl9zcGFjZShzZWxm
KSAtPiBpbnQ6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm5zIHRoZSByZW1haW5pbmcgbnVt
YmVyIG9mIGJ5dGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluCi0gICAgICAgIHRoZSBjdXJyZW50IHBh
Y2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiAoCi0gICAgICAgICAgICBzZWxmLl9i
dWZmZXJfY2FwYWNpdHkKLSAgICAgICAgICAgIC0gc2VsZi5fYnVmZmVyLnRlbGwoKQotICAgICAg
ICAgICAgLSBzZWxmLl9wYWNrZXRfY3J5cHRvLmFlYWRfdGFnX3NpemUKLSAgICAgICAgKQotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIHJlbWFpbmluZ19mbGlnaHRfc3BhY2Uoc2VsZikgLT4gaW50
OgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyB0aGUgcmVtYWluaW5nIG51bWJlciBvZiBi
eXRlcyB3aGljaCBjYW4gYmUgdXNlZCBpbgotICAgICAgICB0aGUgY3VycmVudCBwYWNrZXQuCi0g
ICAgICAgICIiIgotICAgICAgICByZXR1cm4gKAotICAgICAgICAgICAgc2VsZi5fZmxpZ2h0X2Nh
cGFjaXR5Ci0gICAgICAgICAgICAtIHNlbGYuX2J1ZmZlci50ZWxsKCkKLSAgICAgICAgICAgIC0g
c2VsZi5fcGFja2V0X2NyeXB0by5hZWFkX3RhZ19zaXplCi0gICAgICAgICkKLQotICAgIGRlZiBm
bHVzaChzZWxmKSAtPiBUdXBsZVtMaXN0W2J5dGVzXSwgTGlzdFtRdWljU2VudFBhY2tldF1dOgot
ICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJucyB0aGUgYXNzZW1ibGVkIGRhdGFncmFtcy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuX3BhY2tldCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuX2VuZF9wYWNrZXQoKQotICAgICAgICBzZWxmLl9mbHVzaF9jdXJyZW50X2RhdGFn
cmFtKCkKLQotICAgICAgICBkYXRhZ3JhbXMgPSBzZWxmLl9kYXRhZ3JhbXMKLSAgICAgICAgcGFj
a2V0cyA9IHNlbGYuX3BhY2tldHMKLSAgICAgICAgc2VsZi5fZGF0YWdyYW1zID0gW10KLSAgICAg
ICAgc2VsZi5fcGFja2V0cyA9IFtdCi0gICAgICAgIHJldHVybiBkYXRhZ3JhbXMsIHBhY2tldHMK
LQotICAgIGRlZiBzdGFydF9mcmFtZSgKLSAgICAgICAgc2VsZiwKLSAgICAgICAgZnJhbWVfdHlw
ZTogaW50LAotICAgICAgICBjYXBhY2l0eTogaW50ID0gMSwKLSAgICAgICAgaGFuZGxlcjogT3B0
aW9uYWxbUXVpY0RlbGl2ZXJ5SGFuZGxlcl0gPSBOb25lLAotICAgICAgICBoYW5kbGVyX2FyZ3M6
IFNlcXVlbmNlW0FueV0gPSBbXSwKLSAgICApIC0+IEJ1ZmZlcjoKLSAgICAgICAgIiIiCi0gICAg
ICAgIFN0YXJ0cyBhIG5ldyBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYucmVt
YWluaW5nX2J1ZmZlcl9zcGFjZSA8IGNhcGFjaXR5IG9yICgKLSAgICAgICAgICAgIGZyYW1lX3R5
cGUgbm90IGluIE5PTl9JTl9GTElHSFRfRlJBTUVfVFlQRVMKLSAgICAgICAgICAgIGFuZCBzZWxm
LnJlbWFpbmluZ19mbGlnaHRfc3BhY2UgPCBjYXBhY2l0eQotICAgICAgICApOgotICAgICAgICAg
ICAgcmFpc2UgUXVpY1BhY2tldEJ1aWxkZXJTdG9wCi0KLSAgICAgICAgc2VsZi5fYnVmZmVyLnB1
c2hfdWludF92YXIoZnJhbWVfdHlwZSkKLSAgICAgICAgaWYgZnJhbWVfdHlwZSBub3QgaW4gTk9O
X0FDS19FTElDSVRJTkdfRlJBTUVfVFlQRVM6Ci0gICAgICAgICAgICBzZWxmLl9wYWNrZXQuaXNf
YWNrX2VsaWNpdGluZyA9IFRydWUKLSAgICAgICAgaWYgZnJhbWVfdHlwZSBub3QgaW4gTk9OX0lO
X0ZMSUdIVF9GUkFNRV9UWVBFUzoKLSAgICAgICAgICAgIHNlbGYuX3BhY2tldC5pbl9mbGlnaHQg
PSBUcnVlCi0gICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gUXVpY0ZyYW1lVHlwZS5DUllQVE86Ci0g
ICAgICAgICAgICBzZWxmLl9wYWNrZXQuaXNfY3J5cHRvX3BhY2tldCA9IFRydWUKLSAgICAgICAg
aWYgaGFuZGxlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3BhY2tldC5kZWxpdmVy
eV9oYW5kbGVycy5hcHBlbmQoKGhhbmRsZXIsIGhhbmRsZXJfYXJncykpCi0gICAgICAgIHJldHVy
biBzZWxmLl9idWZmZXIKLQotICAgIGRlZiBzdGFydF9wYWNrZXQoc2VsZiwgcGFja2V0X3R5cGU6
IGludCwgY3J5cHRvOiBDcnlwdG9QYWlyKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAg
U3RhcnRzIGEgbmV3IHBhY2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIGJ1ZiA9IHNlbGYuX2J1
ZmZlcgotCi0gICAgICAgICMgZmluaXNoIHByZXZpb3VzIGRhdGFncmFtCi0gICAgICAgIGlmIHNl
bGYuX3BhY2tldCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2VuZF9wYWNrZXQoKQot
Ci0gICAgICAgICMgaWYgdGhlcmUgaXMgdG9vIGxpdHRsZSBzcGFjZSByZW1haW5pbmcsIHN0YXJ0
IGEgbmV3IGRhdGFncmFtCi0gICAgICAgICMgRklYTUU6IHRoZSBsaW1pdCBpcyBhcmJpdHJhcnkh
Ci0gICAgICAgIHBhY2tldF9zdGFydCA9IGJ1Zi50ZWxsKCkKLSAgICAgICAgaWYgc2VsZi5fYnVm
ZmVyX2NhcGFjaXR5IC0gcGFja2V0X3N0YXJ0IDwgMTI4OgotICAgICAgICAgICAgc2VsZi5fZmx1
c2hfY3VycmVudF9kYXRhZ3JhbSgpCi0gICAgICAgICAgICBwYWNrZXRfc3RhcnQgPSAwCi0KLSAg
ICAgICAgIyBpbml0aWFsaXplIGRhdGFncmFtIGlmIG5lZWRlZAotICAgICAgICBpZiBzZWxmLl9k
YXRhZ3JhbV9pbml0OgotICAgICAgICAgICAgaWYgc2VsZi5tYXhfdG90YWxfYnl0ZXMgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmVtYWluaW5nX3RvdGFsX2J5dGVzID0gc2VsZi5tYXhf
dG90YWxfYnl0ZXMgLSBzZWxmLl90b3RhbF9ieXRlcwotICAgICAgICAgICAgICAgIGlmIHJlbWFp
bmluZ190b3RhbF9ieXRlcyA8IHNlbGYuX2J1ZmZlcl9jYXBhY2l0eToKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fYnVmZmVyX2NhcGFjaXR5ID0gcmVtYWluaW5nX3RvdGFsX2J5dGVzCi0KLSAg
ICAgICAgICAgIHNlbGYuX2ZsaWdodF9jYXBhY2l0eSA9IHNlbGYuX2J1ZmZlcl9jYXBhY2l0eQot
ICAgICAgICAgICAgaWYgc2VsZi5tYXhfZmxpZ2h0X2J5dGVzIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIHJlbWFpbmluZ19mbGlnaHRfYnl0ZXMgPSBzZWxmLm1heF9mbGlnaHRfYnl0ZXMg
LSBzZWxmLl9mbGlnaHRfYnl0ZXMKLSAgICAgICAgICAgICAgICBpZiByZW1haW5pbmdfZmxpZ2h0
X2J5dGVzIDwgc2VsZi5fZmxpZ2h0X2NhcGFjaXR5OgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9mbGlnaHRfY2FwYWNpdHkgPSByZW1haW5pbmdfZmxpZ2h0X2J5dGVzCi0gICAgICAgICAgICBz
ZWxmLl9kYXRhZ3JhbV9mbGlnaHRfYnl0ZXMgPSAwCi0gICAgICAgICAgICBzZWxmLl9kYXRhZ3Jh
bV9pbml0ID0gRmFsc2UKLQotICAgICAgICAjIGNhbGN1bGF0ZSBoZWFkZXIgc2l6ZQotICAgICAg
ICBwYWNrZXRfbG9uZ19oZWFkZXIgPSBpc19sb25nX2hlYWRlcihwYWNrZXRfdHlwZSkKLSAgICAg
ICAgaWYgcGFja2V0X2xvbmdfaGVhZGVyOgotICAgICAgICAgICAgaGVhZGVyX3NpemUgPSAxMSAr
IGxlbihzZWxmLl9wZWVyX2NpZCkgKyBsZW4oc2VsZi5faG9zdF9jaWQpCi0gICAgICAgICAgICBp
ZiAocGFja2V0X3R5cGUgJiBQQUNLRVRfVFlQRV9NQVNLKSA9PSBQQUNLRVRfVFlQRV9JTklUSUFM
OgotICAgICAgICAgICAgICAgIHRva2VuX2xlbmd0aCA9IGxlbihzZWxmLl9wZWVyX3Rva2VuKQot
ICAgICAgICAgICAgICAgIGhlYWRlcl9zaXplICs9IHNpemVfdWludF92YXIodG9rZW5fbGVuZ3Ro
KSArIHRva2VuX2xlbmd0aAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaGVhZGVyX3NpemUg
PSAzICsgbGVuKHNlbGYuX3BlZXJfY2lkKQotCi0gICAgICAgICMgY2hlY2sgd2UgaGF2ZSBlbm91
Z2ggc3BhY2UKLSAgICAgICAgaWYgcGFja2V0X3N0YXJ0ICsgaGVhZGVyX3NpemUgPj0gc2VsZi5f
YnVmZmVyX2NhcGFjaXR5OgotICAgICAgICAgICAgcmFpc2UgUXVpY1BhY2tldEJ1aWxkZXJTdG9w
Ci0KLSAgICAgICAgIyBkZXRlcm1pbmUgYWNrIGVwb2NoCi0gICAgICAgIGlmIHBhY2tldF90eXBl
ID09IFBBQ0tFVF9UWVBFX0lOSVRJQUw6Ci0gICAgICAgICAgICBlcG9jaCA9IEVwb2NoLklOSVRJ
QUwKLSAgICAgICAgZWxpZiBwYWNrZXRfdHlwZSA9PSBQQUNLRVRfVFlQRV9IQU5EU0hBS0U6Ci0g
ICAgICAgICAgICBlcG9jaCA9IEVwb2NoLkhBTkRTSEFLRQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgZXBvY2ggPSBFcG9jaC5PTkVfUlRUCi0KLSAgICAgICAgc2VsZi5faGVhZGVyX3NpemUg
PSBoZWFkZXJfc2l6ZQotICAgICAgICBzZWxmLl9wYWNrZXQgPSBRdWljU2VudFBhY2tldCgKLSAg
ICAgICAgICAgIGVwb2NoPWVwb2NoLAotICAgICAgICAgICAgaW5fZmxpZ2h0PUZhbHNlLAotICAg
ICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1GYWxzZSwKLSAgICAgICAgICAgIGlzX2NyeXB0b19w
YWNrZXQ9RmFsc2UsCi0gICAgICAgICAgICBwYWNrZXRfbnVtYmVyPXNlbGYuX3BhY2tldF9udW1i
ZXIsCi0gICAgICAgICAgICBwYWNrZXRfdHlwZT1wYWNrZXRfdHlwZSwKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLl9wYWNrZXRfY3J5cHRvID0gY3J5cHRvCi0gICAgICAgIHNlbGYuX3BhY2tldF9s
b25nX2hlYWRlciA9IHBhY2tldF9sb25nX2hlYWRlcgotICAgICAgICBzZWxmLl9wYWNrZXRfc3Rh
cnQgPSBwYWNrZXRfc3RhcnQKLSAgICAgICAgc2VsZi5fcGFja2V0X3R5cGUgPSBwYWNrZXRfdHlw
ZQotICAgICAgICBzZWxmLnF1aWNfbG9nZ2VyX2ZyYW1lcyA9IHNlbGYuX3BhY2tldC5xdWljX2xv
Z2dlcl9mcmFtZXMKLQotICAgICAgICBidWYuc2VlayhzZWxmLl9wYWNrZXRfc3RhcnQgKyBzZWxm
Ll9oZWFkZXJfc2l6ZSkKLQotICAgIGRlZiBfZW5kX3BhY2tldChzZWxmKSAtPiBOb25lOgotICAg
ICAgICAiIiIKLSAgICAgICAgRW5kcyB0aGUgY3VycmVudCBwYWNrZXQuCi0gICAgICAgICIiIgot
ICAgICAgICBidWYgPSBzZWxmLl9idWZmZXIKLSAgICAgICAgcGFja2V0X3NpemUgPSBidWYudGVs
bCgpIC0gc2VsZi5fcGFja2V0X3N0YXJ0Ci0gICAgICAgIGlmIHBhY2tldF9zaXplID4gc2VsZi5f
aGVhZGVyX3NpemU6Ci0gICAgICAgICAgICAjIHBhZCBpbml0aWFsIGRhdGFncmFtCi0gICAgICAg
ICAgICBpZiAoCi0gICAgICAgICAgICAgICAgc2VsZi5faXNfY2xpZW50Ci0gICAgICAgICAgICAg
ICAgYW5kIHNlbGYuX3BhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX0lOSVRJQUwKLSAgICAgICAg
ICAgICAgICBhbmQgc2VsZi5fcGFja2V0LmlzX2NyeXB0b19wYWNrZXQKLSAgICAgICAgICAgICk6
Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlOgotICAgICAg
ICAgICAgICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhzZWxmLnJlbWFpbmluZ19mbGlnaHRf
c3BhY2UpKQotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfc2l6ZSA9IGJ1Zi50ZWxsKCkgLSBz
ZWxmLl9wYWNrZXRfc3RhcnQKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFja2V0LmluX2Zs
aWdodCA9IFRydWUKLQotICAgICAgICAgICAgICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3BhY2tldC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9wYWRkaW5n
X2ZyYW1lKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyB3cml0
ZSBoZWFkZXIKLSAgICAgICAgICAgIGlmIHNlbGYuX3BhY2tldF9sb25nX2hlYWRlcjoKLSAgICAg
ICAgICAgICAgICBsZW5ndGggPSAoCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9zaXplCi0g
ICAgICAgICAgICAgICAgICAgIC0gc2VsZi5faGVhZGVyX3NpemUKLSAgICAgICAgICAgICAgICAg
ICAgKyBQQUNLRVRfTlVNQkVSX1NFTkRfU0laRQotICAgICAgICAgICAgICAgICAgICArIHNlbGYu
X3BhY2tldF9jcnlwdG8uYWVhZF90YWdfc2l6ZQotICAgICAgICAgICAgICAgICkKLQotICAgICAg
ICAgICAgICAgIGJ1Zi5zZWVrKHNlbGYuX3BhY2tldF9zdGFydCkKLSAgICAgICAgICAgICAgICBi
dWYucHVzaF91aW50OChzZWxmLl9wYWNrZXRfdHlwZSB8IChQQUNLRVRfTlVNQkVSX1NFTkRfU0la
RSAtIDEpKQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQzMihzZWxmLl92ZXJzaW9uKQot
ICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KGxlbihzZWxmLl9wZWVyX2NpZCkpCi0gICAg
ICAgICAgICAgICAgYnVmLnB1c2hfYnl0ZXMoc2VsZi5fcGVlcl9jaWQpCi0gICAgICAgICAgICAg
ICAgYnVmLnB1c2hfdWludDgobGVuKHNlbGYuX2hvc3RfY2lkKSkKLSAgICAgICAgICAgICAgICBi
dWYucHVzaF9ieXRlcyhzZWxmLl9ob3N0X2NpZCkKLSAgICAgICAgICAgICAgICBpZiAoc2VsZi5f
cGFja2V0X3R5cGUgJiBQQUNLRVRfVFlQRV9NQVNLKSA9PSBQQUNLRVRfVFlQRV9JTklUSUFMOgot
ICAgICAgICAgICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihsZW4oc2VsZi5fcGVlcl90b2tl
bikpCi0gICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKHNlbGYuX3BlZXJfdG9rZW4p
Ci0gICAgICAgICAgICAgICAgYnVmLnB1c2hfdWludDE2KGxlbmd0aCB8IDB4NDAwMCkKLSAgICAg
ICAgICAgICAgICBidWYucHVzaF91aW50MTYoc2VsZi5fcGFja2V0X251bWJlciAmIDB4RkZGRikK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYnVmLnNlZWsoc2VsZi5fcGFja2V0
X3N0YXJ0KQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KAotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9wYWNrZXRfdHlwZQotICAgICAgICAgICAgICAgICAgICB8IChzZWxmLl9zcGlu
X2JpdCA8PCA1KQotICAgICAgICAgICAgICAgICAgICB8IChzZWxmLl9wYWNrZXRfY3J5cHRvLmtl
eV9waGFzZSA8PCAyKQotICAgICAgICAgICAgICAgICAgICB8IChQQUNLRVRfTlVNQkVSX1NFTkRf
U0laRSAtIDEpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5
dGVzKHNlbGYuX3BlZXJfY2lkKQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQxNihzZWxm
Ll9wYWNrZXRfbnVtYmVyICYgMHhGRkZGKQotCi0gICAgICAgICAgICAgICAgIyBjaGVjayB3aGV0
aGVyIHdlIG5lZWQgcGFkZGluZwotICAgICAgICAgICAgICAgIHBhZGRpbmdfc2l6ZSA9ICgKLSAg
ICAgICAgICAgICAgICAgICAgUEFDS0VUX05VTUJFUl9NQVhfU0laRQotICAgICAgICAgICAgICAg
ICAgICAtIFBBQ0tFVF9OVU1CRVJfU0VORF9TSVpFCi0gICAgICAgICAgICAgICAgICAgICsgc2Vs
Zi5faGVhZGVyX3NpemUKLSAgICAgICAgICAgICAgICAgICAgLSBwYWNrZXRfc2l6ZQotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBpZiBwYWRkaW5nX3NpemUgPiAwOgotICAgICAg
ICAgICAgICAgICAgICBidWYuc2VlayhzZWxmLl9wYWNrZXRfc3RhcnQgKyBwYWNrZXRfc2l6ZSkK
LSAgICAgICAgICAgICAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMocGFkZGluZ19zaXplKSkK
LSAgICAgICAgICAgICAgICAgICAgcGFja2V0X3NpemUgKz0gcGFkZGluZ19zaXplCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3BhY2tldC5pbl9mbGlnaHQgPSBUcnVlCi0KLSAgICAgICAgICAg
ICAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19s
b2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWNrZXQu
cXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfcGFkZGluZ19mcmFtZSgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgZW5jcnlwdCBpbiBwbGFjZQotICAgICAgICAgICAg
cGxhaW4gPSBidWYuZGF0YV9zbGljZShzZWxmLl9wYWNrZXRfc3RhcnQsIHNlbGYuX3BhY2tldF9z
dGFydCArIHBhY2tldF9zaXplKQotICAgICAgICAgICAgYnVmLnNlZWsoc2VsZi5fcGFja2V0X3N0
YXJ0KQotICAgICAgICAgICAgYnVmLnB1c2hfYnl0ZXMoCi0gICAgICAgICAgICAgICAgc2VsZi5f
cGFja2V0X2NyeXB0by5lbmNyeXB0X3BhY2tldCgKLSAgICAgICAgICAgICAgICAgICAgcGxhaW5b
MCA6IHNlbGYuX2hlYWRlcl9zaXplXSwKLSAgICAgICAgICAgICAgICAgICAgcGxhaW5bc2VsZi5f
aGVhZGVyX3NpemUgOiBwYWNrZXRfc2l6ZV0sCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Bh
Y2tldF9udW1iZXIsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotICAgICAgICAg
ICAgc2VsZi5fcGFja2V0LnNlbnRfYnl0ZXMgPSBidWYudGVsbCgpIC0gc2VsZi5fcGFja2V0X3N0
YXJ0Ci0gICAgICAgICAgICBzZWxmLl9wYWNrZXRzLmFwcGVuZChzZWxmLl9wYWNrZXQpCi0gICAg
ICAgICAgICBpZiBzZWxmLl9wYWNrZXQuaW5fZmxpZ2h0OgotICAgICAgICAgICAgICAgIHNlbGYu
X2RhdGFncmFtX2ZsaWdodF9ieXRlcyArPSBzZWxmLl9wYWNrZXQuc2VudF9ieXRlcwotCi0gICAg
ICAgICAgICAjIHNob3J0IGhlYWRlciBwYWNrZXRzIGNhbm5vdCBiZSBjb2FsbGVzY2VkLCB3ZSBu
ZWVkIGEgbmV3IGRhdGFncmFtCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fcGFja2V0X2xvbmdf
aGVhZGVyOgotICAgICAgICAgICAgICAgIHNlbGYuX2ZsdXNoX2N1cnJlbnRfZGF0YWdyYW0oKQot
Ci0gICAgICAgICAgICBzZWxmLl9wYWNrZXRfbnVtYmVyICs9IDEKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICMgImNhbmNlbCIgdGhlIHBhY2tldAotICAgICAgICAgICAgYnVmLnNlZWsoc2Vs
Zi5fcGFja2V0X3N0YXJ0KQotCi0gICAgICAgIHNlbGYuX3BhY2tldCA9IE5vbmUKLSAgICAgICAg
c2VsZi5xdWljX2xvZ2dlcl9mcmFtZXMgPSBOb25lCi0KLSAgICBkZWYgX2ZsdXNoX2N1cnJlbnRf
ZGF0YWdyYW0oc2VsZikgLT4gTm9uZToKLSAgICAgICAgZGF0YWdyYW1fYnl0ZXMgPSBzZWxmLl9i
dWZmZXIudGVsbCgpCi0gICAgICAgIGlmIGRhdGFncmFtX2J5dGVzOgotICAgICAgICAgICAgc2Vs
Zi5fZGF0YWdyYW1zLmFwcGVuZChzZWxmLl9idWZmZXIuZGF0YSkKLSAgICAgICAgICAgIHNlbGYu
X2ZsaWdodF9ieXRlcyArPSBzZWxmLl9kYXRhZ3JhbV9mbGlnaHRfYnl0ZXMKLSAgICAgICAgICAg
IHNlbGYuX3RvdGFsX2J5dGVzICs9IGRhdGFncmFtX2J5dGVzCi0gICAgICAgICAgICBzZWxmLl9k
YXRhZ3JhbV9pbml0ID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyLnNlZWsoMCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3Jhbmdlc2V0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcmFuZ2VzZXQucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDg2MDg2YzljNzRmNzc1NjAzMjA4NjkwMDc2YmVlOTYzODE0NjExYjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL3F1aWMvcmFuZ2VzZXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCww
IEBACi1mcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgU2VxdWVuY2UKLWZyb20gdHlwaW5nIGlt
cG9ydCBBbnksIEl0ZXJhYmxlLCBMaXN0LCBPcHRpb25hbAotCi0KLWNsYXNzIFJhbmdlU2V0KFNl
cXVlbmNlKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmFuZ2VzOiBJdGVyYWJsZVtyYW5nZV0g
PSBbXSk6Ci0gICAgICAgIHNlbGYuX19yYW5nZXM6IExpc3RbcmFuZ2VdID0gW10KLSAgICAgICAg
Zm9yIHIgaW4gcmFuZ2VzOgotICAgICAgICAgICAgYXNzZXJ0IHIuc3RlcCA9PSAxCi0gICAgICAg
ICAgICBzZWxmLmFkZChyLnN0YXJ0LCByLnN0b3ApCi0KLSAgICBkZWYgYWRkKHNlbGYsIHN0YXJ0
OiBpbnQsIHN0b3A6IE9wdGlvbmFsW2ludF0gPSBOb25lKSAtPiBOb25lOgotICAgICAgICBpZiBz
dG9wIGlzIE5vbmU6Ci0gICAgICAgICAgICBzdG9wID0gc3RhcnQgKyAxCi0gICAgICAgIGFzc2Vy
dCBzdG9wID4gc3RhcnQKLQotICAgICAgICBmb3IgaSwgciBpbiBlbnVtZXJhdGUoc2VsZi5fX3Jh
bmdlcyk6Ci0gICAgICAgICAgICAjIHRoZSBhZGRlZCByYW5nZSBpcyBlbnRpcmVseSBiZWZvcmUg
Y3VycmVudCBpdGVtLCBpbnNlcnQgaGVyZQotICAgICAgICAgICAgaWYgc3RvcCA8IHIuc3RhcnQ6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fX3Jhbmdlcy5pbnNlcnQoaSwgcmFuZ2Uoc3RhcnQsIHN0
b3ApKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAjIHRoZSBhZGRlZCBy
YW5nZSBpcyBlbnRpcmVseSBhZnRlciBjdXJyZW50IGl0ZW0sIGtlZXAgbG9va2luZwotICAgICAg
ICAgICAgaWYgc3RhcnQgPiByLnN0b3A6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAg
ICAgICAgICAgIyB0aGUgYWRkZWQgcmFuZ2UgdG91Y2hlcyB0aGUgY3VycmVudCBpdGVtLCBtZXJn
ZSBpdAotICAgICAgICAgICAgc3RhcnQgPSBtaW4oc3RhcnQsIHIuc3RhcnQpCi0gICAgICAgICAg
ICBzdG9wID0gbWF4KHN0b3AsIHIuc3RvcCkKLSAgICAgICAgICAgIHdoaWxlIGkgPCBsZW4oc2Vs
Zi5fX3JhbmdlcykgLSAxIGFuZCBzZWxmLl9fcmFuZ2VzW2kgKyAxXS5zdGFydCA8PSBzdG9wOgot
ICAgICAgICAgICAgICAgIHN0b3AgPSBtYXgoc2VsZi5fX3Jhbmdlc1tpICsgMV0uc3RvcCwgc3Rv
cCkKLSAgICAgICAgICAgICAgICBzZWxmLl9fcmFuZ2VzLnBvcChpICsgMSkKLSAgICAgICAgICAg
IHNlbGYuX19yYW5nZXNbaV0gPSByYW5nZShzdGFydCwgc3RvcCkKLSAgICAgICAgICAgIHJldHVy
bgotCi0gICAgICAgICMgdGhlIGFkZGVkIHJhbmdlIGlzIGVudGlyZWx5IGFmdGVyIGFsbCBleGlz
dGluZyBpdGVtcywgYXBwZW5kIGl0Ci0gICAgICAgIHNlbGYuX19yYW5nZXMuYXBwZW5kKHJhbmdl
KHN0YXJ0LCBzdG9wKSkKLQotICAgIGRlZiBib3VuZHMoc2VsZikgLT4gcmFuZ2U6Ci0gICAgICAg
IHJldHVybiByYW5nZShzZWxmLl9fcmFuZ2VzWzBdLnN0YXJ0LCBzZWxmLl9fcmFuZ2VzWy0xXS5z
dG9wKQotCi0gICAgZGVmIHNoaWZ0KHNlbGYpIC0+IHJhbmdlOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fX3Jhbmdlcy5wb3AoMCkKLQotICAgIGRlZiBzdWJ0cmFjdChzZWxmLCBzdGFydDogaW50LCBz
dG9wOiBpbnQpIC0+IE5vbmU6Ci0gICAgICAgIGFzc2VydCBzdG9wID4gc3RhcnQKLQotICAgICAg
ICBpID0gMAotICAgICAgICB3aGlsZSBpIDwgbGVuKHNlbGYuX19yYW5nZXMpOgotICAgICAgICAg
ICAgciA9IHNlbGYuX19yYW5nZXNbaV0KLQotICAgICAgICAgICAgIyB0aGUgcmVtb3ZlZCByYW5n
ZSBpcyBlbnRpcmVseSBiZWZvcmUgY3VycmVudCBpdGVtLCBzdG9wIGhlcmUKLSAgICAgICAgICAg
IGlmIHN0b3AgPD0gci5zdGFydDoKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAg
ICAgIyB0aGUgcmVtb3ZlZCByYW5nZSBpcyBlbnRpcmVseSBhZnRlciBjdXJyZW50IGl0ZW0sIGtl
ZXAgbG9va2luZwotICAgICAgICAgICAgaWYgc3RhcnQgPj0gci5zdG9wOgotICAgICAgICAgICAg
ICAgIGkgKz0gMQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICMgdGhl
IHJlbW92ZWQgcmFuZ2UgY29tcGxldGVseSBjb3ZlcnMgdGhlIGN1cnJlbnQgaXRlbSwgcmVtb3Zl
IGl0Ci0gICAgICAgICAgICBpZiBzdGFydCA8PSByLnN0YXJ0IGFuZCBzdG9wID49IHIuc3RvcDoK
LSAgICAgICAgICAgICAgICBzZWxmLl9fcmFuZ2VzLnBvcChpKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlCi0KLSAgICAgICAgICAgICMgdGhlIHJlbW92ZWQgcmFuZ2UgdG91Y2hlcyB0aGUgY3Vy
cmVudCBpdGVtCi0gICAgICAgICAgICBpZiBzdGFydCA+IHIuc3RhcnQ6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fX3Jhbmdlc1tpXSA9IHJhbmdlKHIuc3RhcnQsIHN0YXJ0KQotICAgICAgICAgICAg
ICAgIGlmIHN0b3AgPCByLnN0b3A6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19yYW5nZXMu
aW5zZXJ0KGkgKyAxLCByYW5nZShzdG9wLCByLnN0b3ApKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9fcmFuZ2VzW2ldID0gcmFuZ2Uoc3RvcCwgci5zdG9wKQotCi0g
ICAgICAgICAgICBpICs9IDEKLQotICAgIGRlZiBfX2Jvb2xfXyhzZWxmKSAtPiBib29sOgotICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLSAgICBkZWYgX19jb250YWluc19fKHNl
bGYsIHZhbDogQW55KSAtPiBib29sOgotICAgICAgICBmb3IgciBpbiBzZWxmLl9fcmFuZ2VzOgot
ICAgICAgICAgICAgaWYgdmFsIGluIHI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAg
ICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyOiBvYmplY3Qp
IC0+IGJvb2w6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBSYW5nZVNldCk6Ci0g
ICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKLQotICAgICAgICByZXR1cm4gc2VsZi5f
X3JhbmdlcyA9PSBvdGhlci5fX3JhbmdlcwotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtl
eTogQW55KSAtPiByYW5nZToKLSAgICAgICAgcmV0dXJuIHNlbGYuX19yYW5nZXNba2V5XQotCi0g
ICAgZGVmIF9fbGVuX18oc2VsZikgLT4gaW50OgotICAgICAgICByZXR1cm4gbGVuKHNlbGYuX19y
YW5nZXMpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZikgLT4gc3RyOgotICAgICAgICByZXR1cm4g
IlJhbmdlU2V0KHt9KSIuZm9ybWF0KHJlcHIoc2VsZi5fX3JhbmdlcykpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yZWNvdmVyeS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9xdWljL3JlY292ZXJ5LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5YWJlYjFlY2Y1NjYxZjcxYzkzZTc3YmY3ZmE2MmE3MTYyZjM4NzBkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVp
Yy9xdWljL3JlY292ZXJ5LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDk3ICswLDAgQEAKLWltcG9y
dCBtYXRoCi1mcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUsIERpY3QsIEl0ZXJhYmxlLCBMaXN0
LCBPcHRpb25hbAotCi1mcm9tIC5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXJUcmFjZQotZnJvbSAu
cGFja2V0X2J1aWxkZXIgaW1wb3J0IFF1aWNEZWxpdmVyeVN0YXRlLCBRdWljU2VudFBhY2tldAot
ZnJvbSAucmFuZ2VzZXQgaW1wb3J0IFJhbmdlU2V0Ci0KLSMgbG9zcyBkZXRlY3Rpb24KLUtfUEFD
S0VUX1RIUkVTSE9MRCA9IDMKLUtfSU5JVElBTF9SVFQgPSAwLjUgICMgc2Vjb25kcwotS19HUkFO
VUxBUklUWSA9IDAuMDAxICAjIHNlY29uZHMKLUtfVElNRV9USFJFU0hPTEQgPSA5IC8gOAotS19N
SUNST19TRUNPTkQgPSAwLjAwMDAwMQotS19TRUNPTkQgPSAxLjAKLQotIyBjb25nZXN0aW9uIGNv
bnRyb2wKLUtfTUFYX0RBVEFHUkFNX1NJWkUgPSAxMjgwCi1LX0lOSVRJQUxfV0lORE9XID0gMTAg
KiBLX01BWF9EQVRBR1JBTV9TSVpFCi1LX01JTklNVU1fV0lORE9XID0gMiAqIEtfTUFYX0RBVEFH
UkFNX1NJWkUKLUtfTE9TU19SRURVQ1RJT05fRkFDVE9SID0gMC41Ci0KLQotY2xhc3MgUXVpY1Bh
Y2tldFNwYWNlOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxm
LmFja19hdDogT3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgICAgICBzZWxmLmFja19xdWV1ZSA9
IFJhbmdlU2V0KCkKLSAgICAgICAgc2VsZi5kaXNjYXJkZWQgPSBGYWxzZQotICAgICAgICBzZWxm
LmV4cGVjdGVkX3BhY2tldF9udW1iZXIgPSAwCi0gICAgICAgIHNlbGYubGFyZ2VzdF9yZWNlaXZl
ZF9wYWNrZXQgPSAtMQotICAgICAgICBzZWxmLmxhcmdlc3RfcmVjZWl2ZWRfdGltZTogT3B0aW9u
YWxbZmxvYXRdID0gTm9uZQotCi0gICAgICAgICMgc2VudCBwYWNrZXRzIGFuZCBsb3NzCi0gICAg
ICAgIHNlbGYuYWNrX2VsaWNpdGluZ19pbl9mbGlnaHQgPSAwCi0gICAgICAgIHNlbGYubGFyZ2Vz
dF9hY2tlZF9wYWNrZXQgPSAwCi0gICAgICAgIHNlbGYubG9zc190aW1lOiBPcHRpb25hbFtmbG9h
dF0gPSBOb25lCi0gICAgICAgIHNlbGYuc2VudF9wYWNrZXRzOiBEaWN0W2ludCwgUXVpY1NlbnRQ
YWNrZXRdID0ge30KLQotCi1jbGFzcyBRdWljUGFja2V0UGFjZXI6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuYnVja2V0X21heDogZmxvYXQgPSAwLjAKLSAg
ICAgICAgc2VsZi5idWNrZXRfdGltZTogZmxvYXQgPSAwLjAKLSAgICAgICAgc2VsZi5ldmFsdWF0
aW9uX3RpbWU6IGZsb2F0ID0gMC4wCi0gICAgICAgIHNlbGYucGFja2V0X3RpbWU6IE9wdGlvbmFs
W2Zsb2F0XSA9IE5vbmUKLQotICAgIGRlZiBuZXh0X3NlbmRfdGltZShzZWxmLCBub3c6IGZsb2F0
KSAtPiBmbG9hdDoKLSAgICAgICAgaWYgc2VsZi5wYWNrZXRfdGltZSBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgIHNlbGYudXBkYXRlX2J1Y2tldChub3c9bm93KQotICAgICAgICAgICAgaWYgc2Vs
Zi5idWNrZXRfdGltZSA8PSAwOgotICAgICAgICAgICAgICAgIHJldHVybiBub3cgKyBzZWxmLnBh
Y2tldF90aW1lCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgdXBkYXRlX2FmdGVyX3Nl
bmQoc2VsZiwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5wYWNrZXRfdGlt
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYudXBkYXRlX2J1Y2tldChub3c9bm93KQot
ICAgICAgICAgICAgaWYgc2VsZi5idWNrZXRfdGltZSA8IHNlbGYucGFja2V0X3RpbWU6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5idWNrZXRfdGltZSA9IDAuMAotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBzZWxmLmJ1Y2tldF90aW1lIC09IHNlbGYucGFja2V0X3RpbWUKLQotICAg
IGRlZiB1cGRhdGVfYnVja2V0KHNlbGYsIG5vdzogZmxvYXQpIC0+IE5vbmU6Ci0gICAgICAgIGlm
IG5vdyA+IHNlbGYuZXZhbHVhdGlvbl90aW1lOgotICAgICAgICAgICAgc2VsZi5idWNrZXRfdGlt
ZSA9IG1pbigKLSAgICAgICAgICAgICAgICBzZWxmLmJ1Y2tldF90aW1lICsgKG5vdyAtIHNlbGYu
ZXZhbHVhdGlvbl90aW1lKSwgc2VsZi5idWNrZXRfbWF4Ci0gICAgICAgICAgICApCi0gICAgICAg
ICAgICBzZWxmLmV2YWx1YXRpb25fdGltZSA9IG5vdwotCi0gICAgZGVmIHVwZGF0ZV9yYXRlKHNl
bGYsIGNvbmdlc3Rpb25fd2luZG93OiBpbnQsIHNtb290aGVkX3J0dDogZmxvYXQpIC0+IE5vbmU6
Ci0gICAgICAgIHBhY2luZ19yYXRlID0gY29uZ2VzdGlvbl93aW5kb3cgLyBtYXgoc21vb3RoZWRf
cnR0LCBLX01JQ1JPX1NFQ09ORCkKLSAgICAgICAgc2VsZi5wYWNrZXRfdGltZSA9IG1heCgKLSAg
ICAgICAgICAgIEtfTUlDUk9fU0VDT05ELCBtaW4oS19NQVhfREFUQUdSQU1fU0laRSAvIHBhY2lu
Z19yYXRlLCBLX1NFQ09ORCkKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuYnVja2V0X21heCA9
ICgKLSAgICAgICAgICAgIG1heCgKLSAgICAgICAgICAgICAgICAyICogS19NQVhfREFUQUdSQU1f
U0laRSwKLSAgICAgICAgICAgICAgICBtaW4oY29uZ2VzdGlvbl93aW5kb3cgLy8gNCwgMTYgKiBL
X01BWF9EQVRBR1JBTV9TSVpFKSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIC8gcGFjaW5n
X3JhdGUKLSAgICAgICAgKQotICAgICAgICBpZiBzZWxmLmJ1Y2tldF90aW1lID4gc2VsZi5idWNr
ZXRfbWF4OgotICAgICAgICAgICAgc2VsZi5idWNrZXRfdGltZSA9IHNlbGYuYnVja2V0X21heAot
Ci0KLWNsYXNzIFF1aWNDb25nZXN0aW9uQ29udHJvbDoKLSAgICAiIiIKLSAgICBOZXcgUmVubyBj
b25nZXN0aW9uIGNvbnRyb2wuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZikgLT4g
Tm9uZToKLSAgICAgICAgc2VsZi5ieXRlc19pbl9mbGlnaHQgPSAwCi0gICAgICAgIHNlbGYuY29u
Z2VzdGlvbl93aW5kb3cgPSBLX0lOSVRJQUxfV0lORE9XCi0gICAgICAgIHNlbGYuX2Nvbmdlc3Rp
b25fcmVjb3Zlcnlfc3RhcnRfdGltZSA9IDAuMAotICAgICAgICBzZWxmLl9jb25nZXN0aW9uX3N0
YXNoID0gMAotICAgICAgICBzZWxmLl9ydHRfbW9uaXRvciA9IFF1aWNSdHRNb25pdG9yKCkKLSAg
ICAgICAgc2VsZi5zc3RocmVzaDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLQotICAgIGRlZiBvbl9w
YWNrZXRfYWNrZWQoc2VsZiwgcGFja2V0OiBRdWljU2VudFBhY2tldCkgLT4gTm9uZToKLSAgICAg
ICAgc2VsZi5ieXRlc19pbl9mbGlnaHQgLT0gcGFja2V0LnNlbnRfYnl0ZXMKLQotICAgICAgICAj
IGRvbid0IGluY3JlYXNlIHdpbmRvdyBpbiBjb25nZXN0aW9uIHJlY292ZXJ5Ci0gICAgICAgIGlm
IHBhY2tldC5zZW50X3RpbWUgPD0gc2VsZi5fY29uZ2VzdGlvbl9yZWNvdmVyeV9zdGFydF90aW1l
OgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgc2VsZi5zc3RocmVzaCBpcyBOb25l
IG9yIHNlbGYuY29uZ2VzdGlvbl93aW5kb3cgPCBzZWxmLnNzdGhyZXNoOgotICAgICAgICAgICAg
IyBzbG93IHN0YXJ0Ci0gICAgICAgICAgICBzZWxmLmNvbmdlc3Rpb25fd2luZG93ICs9IHBhY2tl
dC5zZW50X2J5dGVzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGNvbmdlc3Rpb24gYXZv
aWRhbmNlCi0gICAgICAgICAgICBzZWxmLl9jb25nZXN0aW9uX3N0YXNoICs9IHBhY2tldC5zZW50
X2J5dGVzCi0gICAgICAgICAgICBjb3VudCA9IHNlbGYuX2Nvbmdlc3Rpb25fc3Rhc2ggLy8gc2Vs
Zi5jb25nZXN0aW9uX3dpbmRvdwotICAgICAgICAgICAgaWYgY291bnQ6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fY29uZ2VzdGlvbl9zdGFzaCAtPSBjb3VudCAqIHNlbGYuY29uZ2VzdGlvbl93aW5k
b3cKLSAgICAgICAgICAgICAgICBzZWxmLmNvbmdlc3Rpb25fd2luZG93ICs9IGNvdW50ICogS19N
QVhfREFUQUdSQU1fU0laRQotCi0gICAgZGVmIG9uX3BhY2tldF9zZW50KHNlbGYsIHBhY2tldDog
UXVpY1NlbnRQYWNrZXQpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuYnl0ZXNfaW5fZmxpZ2h0ICs9
IHBhY2tldC5zZW50X2J5dGVzCi0KLSAgICBkZWYgb25fcGFja2V0c19leHBpcmVkKHNlbGYsIHBh
Y2tldHM6IEl0ZXJhYmxlW1F1aWNTZW50UGFja2V0XSkgLT4gTm9uZToKLSAgICAgICAgZm9yIHBh
Y2tldCBpbiBwYWNrZXRzOgotICAgICAgICAgICAgc2VsZi5ieXRlc19pbl9mbGlnaHQgLT0gcGFj
a2V0LnNlbnRfYnl0ZXMKLQotICAgIGRlZiBvbl9wYWNrZXRzX2xvc3Qoc2VsZiwgcGFja2V0czog
SXRlcmFibGVbUXVpY1NlbnRQYWNrZXRdLCBub3c6IGZsb2F0KSAtPiBOb25lOgotICAgICAgICBs
b3N0X2xhcmdlc3RfdGltZSA9IDAuMAotICAgICAgICBmb3IgcGFja2V0IGluIHBhY2tldHM6Ci0g
ICAgICAgICAgICBzZWxmLmJ5dGVzX2luX2ZsaWdodCAtPSBwYWNrZXQuc2VudF9ieXRlcwotICAg
ICAgICAgICAgbG9zdF9sYXJnZXN0X3RpbWUgPSBwYWNrZXQuc2VudF90aW1lCi0KLSAgICAgICAg
IyBzdGFydCBhIG5ldyBjb25nZXN0aW9uIGV2ZW50IGlmIHBhY2tldCB3YXMgc2VudCBhZnRlciB0
aGUKLSAgICAgICAgIyBzdGFydCBvZiB0aGUgcHJldmlvdXMgY29uZ2VzdGlvbiByZWNvdmVyeSBw
ZXJpb2QuCi0gICAgICAgIGlmIGxvc3RfbGFyZ2VzdF90aW1lID4gc2VsZi5fY29uZ2VzdGlvbl9y
ZWNvdmVyeV9zdGFydF90aW1lOgotICAgICAgICAgICAgc2VsZi5fY29uZ2VzdGlvbl9yZWNvdmVy
eV9zdGFydF90aW1lID0gbm93Ci0gICAgICAgICAgICBzZWxmLmNvbmdlc3Rpb25fd2luZG93ID0g
bWF4KAotICAgICAgICAgICAgICAgIGludChzZWxmLmNvbmdlc3Rpb25fd2luZG93ICogS19MT1NT
X1JFRFVDVElPTl9GQUNUT1IpLCBLX01JTklNVU1fV0lORE9XCi0gICAgICAgICAgICApCi0gICAg
ICAgICAgICBzZWxmLnNzdGhyZXNoID0gc2VsZi5jb25nZXN0aW9uX3dpbmRvdwotCi0gICAgICAg
ICMgVE9ETyA6IGNvbGxhcHNlIGNvbmdlc3Rpb24gd2luZG93IGlmIHBlcnNpc3RlbnQgY29uZ2Vz
dGlvbgotCi0gICAgZGVmIG9uX3J0dF9tZWFzdXJlbWVudChzZWxmLCBsYXRlc3RfcnR0OiBmbG9h
dCwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIyBjaGVjayB3aGV0aGVyIHdlIHNob3Vs
ZCBleGl0IHNsb3cgc3RhcnQKLSAgICAgICAgaWYgc2VsZi5zc3RocmVzaCBpcyBOb25lIGFuZCBz
ZWxmLl9ydHRfbW9uaXRvci5pc19ydHRfaW5jcmVhc2luZygKLSAgICAgICAgICAgIGxhdGVzdF9y
dHQsIG5vdwotICAgICAgICApOgotICAgICAgICAgICAgc2VsZi5zc3RocmVzaCA9IHNlbGYuY29u
Z2VzdGlvbl93aW5kb3cKLQotCi1jbGFzcyBRdWljUGFja2V0UmVjb3Zlcnk6Ci0gICAgIiIiCi0g
ICAgUGFja2V0IGxvc3MgYW5kIGNvbmdlc3Rpb24gY29udHJvbGxlci4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwKLSAgICAgICAgaXNfY2xpZW50X3dpdGhvdXRf
MXJ0dDogYm9vbCwKLSAgICAgICAgc2VuZF9wcm9iZTogQ2FsbGFibGVbW10sIE5vbmVdLAotICAg
ICAgICBxdWljX2xvZ2dlcjogT3B0aW9uYWxbUXVpY0xvZ2dlclRyYWNlXSA9IE5vbmUsCi0gICAg
KSAtPiBOb25lOgotICAgICAgICBzZWxmLmlzX2NsaWVudF93aXRob3V0XzFydHQgPSBpc19jbGll
bnRfd2l0aG91dF8xcnR0Ci0gICAgICAgIHNlbGYubWF4X2Fja19kZWxheSA9IDAuMDI1Ci0gICAg
ICAgIHNlbGYuc3BhY2VzOiBMaXN0W1F1aWNQYWNrZXRTcGFjZV0gPSBbXQotCi0gICAgICAgICMg
Y2FsbGJhY2tzCi0gICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyID0gcXVpY19sb2dnZXIKLSAgICAg
ICAgc2VsZi5fc2VuZF9wcm9iZSA9IHNlbmRfcHJvYmUKLQotICAgICAgICAjIGxvc3MgZGV0ZWN0
aW9uCi0gICAgICAgIHNlbGYuX3B0b19jb3VudCA9IDAKLSAgICAgICAgc2VsZi5fcnR0X2luaXRp
YWxpemVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcnR0X2xhdGVzdCA9IDAuMAotICAgICAgICBz
ZWxmLl9ydHRfbWluID0gbWF0aC5pbmYKLSAgICAgICAgc2VsZi5fcnR0X3Ntb290aGVkID0gMC4w
Ci0gICAgICAgIHNlbGYuX3J0dF92YXJpYW5jZSA9IDAuMAotICAgICAgICBzZWxmLl90aW1lX29m
X2xhc3Rfc2VudF9hY2tfZWxpY2l0aW5nX3BhY2tldCA9IDAuMAotCi0gICAgICAgICMgY29uZ2Vz
dGlvbiBjb250cm9sCi0gICAgICAgIHNlbGYuX2NjID0gUXVpY0Nvbmdlc3Rpb25Db250cm9sKCkK
LSAgICAgICAgc2VsZi5fcGFjZXIgPSBRdWljUGFja2V0UGFjZXIoKQotCi0gICAgQHByb3BlcnR5
Ci0gICAgZGVmIGJ5dGVzX2luX2ZsaWdodChzZWxmKSAtPiBpbnQ6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9jYy5ieXRlc19pbl9mbGlnaHQKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjb25nZXN0
aW9uX3dpbmRvdyhzZWxmKSAtPiBpbnQ6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jYy5jb25nZXN0
aW9uX3dpbmRvdwotCi0gICAgZGVmIGRpc2NhcmRfc3BhY2Uoc2VsZiwgc3BhY2U6IFF1aWNQYWNr
ZXRTcGFjZSkgLT4gTm9uZToKLSAgICAgICAgYXNzZXJ0IHNwYWNlIGluIHNlbGYuc3BhY2VzCi0K
LSAgICAgICAgc2VsZi5fY2Mub25fcGFja2V0c19leHBpcmVkKAotICAgICAgICAgICAgZmlsdGVy
KGxhbWJkYSB4OiB4LmluX2ZsaWdodCwgc3BhY2Uuc2VudF9wYWNrZXRzLnZhbHVlcygpKQotICAg
ICAgICApCi0gICAgICAgIHNwYWNlLnNlbnRfcGFja2V0cy5jbGVhcigpCi0KLSAgICAgICAgc3Bh
Y2UuYWNrX2F0ID0gTm9uZQotICAgICAgICBzcGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCA9
IDAKLSAgICAgICAgc3BhY2UubG9zc190aW1lID0gTm9uZQotCi0gICAgICAgIGlmIHNlbGYuX3F1
aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fbG9nX21ldHJpY3NfdXBk
YXRlZCgpCi0KLSAgICBkZWYgZ2V0X2VhcmxpZXN0X2xvc3Nfc3BhY2Uoc2VsZikgLT4gT3B0aW9u
YWxbUXVpY1BhY2tldFNwYWNlXToKLSAgICAgICAgbG9zc19zcGFjZSA9IE5vbmUKLSAgICAgICAg
Zm9yIHNwYWNlIGluIHNlbGYuc3BhY2VzOgotICAgICAgICAgICAgaWYgc3BhY2UubG9zc190aW1l
IGlzIG5vdCBOb25lIGFuZCAoCi0gICAgICAgICAgICAgICAgbG9zc19zcGFjZSBpcyBOb25lIG9y
IHNwYWNlLmxvc3NfdGltZSA8IGxvc3Nfc3BhY2UubG9zc190aW1lCi0gICAgICAgICAgICApOgot
ICAgICAgICAgICAgICAgIGxvc3Nfc3BhY2UgPSBzcGFjZQotICAgICAgICByZXR1cm4gbG9zc19z
cGFjZQotCi0gICAgZGVmIGdldF9sb3NzX2RldGVjdGlvbl90aW1lKHNlbGYpIC0+IGZsb2F0Ogot
ICAgICAgICAjIGxvc3MgdGltZXIKLSAgICAgICAgbG9zc19zcGFjZSA9IHNlbGYuZ2V0X2Vhcmxp
ZXN0X2xvc3Nfc3BhY2UoKQotICAgICAgICBpZiBsb3NzX3NwYWNlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgcmV0dXJuIGxvc3Nfc3BhY2UubG9zc190aW1lCi0KLSAgICAgICAgIyBwYWNrZXQg
dGltZXIKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgc2VsZi5pc19jbGllbnRfd2l0aG91dF8x
cnR0Ci0gICAgICAgICAgICBvciBzdW0oc3BhY2UuYWNrX2VsaWNpdGluZ19pbl9mbGlnaHQgZm9y
IHNwYWNlIGluIHNlbGYuc3BhY2VzKSA+IDAKLSAgICAgICAgKToKLSAgICAgICAgICAgIGlmIG5v
dCBzZWxmLl9ydHRfaW5pdGlhbGl6ZWQ6Ci0gICAgICAgICAgICAgICAgdGltZW91dCA9IDIgKiBL
X0lOSVRJQUxfUlRUICogKDIgKiogc2VsZi5fcHRvX2NvdW50KQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2VsZi5nZXRfcHJvYmVfdGltZW91dCgpICogKDIg
Kiogc2VsZi5fcHRvX2NvdW50KQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3RpbWVfb2ZfbGFz
dF9zZW50X2Fja19lbGljaXRpbmdfcGFja2V0ICsgdGltZW91dAotCi0gICAgICAgIHJldHVybiBO
b25lCi0KLSAgICBkZWYgZ2V0X3Byb2JlX3RpbWVvdXQoc2VsZikgLT4gZmxvYXQ6Ci0gICAgICAg
IHJldHVybiAoCi0gICAgICAgICAgICBzZWxmLl9ydHRfc21vb3RoZWQKLSAgICAgICAgICAgICsg
bWF4KDQgKiBzZWxmLl9ydHRfdmFyaWFuY2UsIEtfR1JBTlVMQVJJVFkpCi0gICAgICAgICAgICAr
IHNlbGYubWF4X2Fja19kZWxheQotICAgICAgICApCi0KLSAgICBkZWYgb25fYWNrX3JlY2VpdmVk
KAotICAgICAgICBzZWxmLAotICAgICAgICBzcGFjZTogUXVpY1BhY2tldFNwYWNlLAotICAgICAg
ICBhY2tfcmFuZ2VzZXQ6IFJhbmdlU2V0LAotICAgICAgICBhY2tfZGVsYXk6IGZsb2F0LAotICAg
ICAgICBub3c6IGZsb2F0LAotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFVw
ZGF0ZSBtZXRyaWNzIGFzIHRoZSByZXN1bHQgb2YgYW4gQUNLIGJlaW5nIHJlY2VpdmVkLgotICAg
ICAgICAiIiIKLSAgICAgICAgaXNfYWNrX2VsaWNpdGluZyA9IEZhbHNlCi0gICAgICAgIGxhcmdl
c3RfYWNrZWQgPSBhY2tfcmFuZ2VzZXQuYm91bmRzKCkuc3RvcCAtIDEKLSAgICAgICAgbGFyZ2Vz
dF9uZXdseV9hY2tlZCA9IE5vbmUKLSAgICAgICAgbGFyZ2VzdF9zZW50X3RpbWUgPSBOb25lCi0K
LSAgICAgICAgaWYgbGFyZ2VzdF9hY2tlZCA+IHNwYWNlLmxhcmdlc3RfYWNrZWRfcGFja2V0Ogot
ICAgICAgICAgICAgc3BhY2UubGFyZ2VzdF9hY2tlZF9wYWNrZXQgPSBsYXJnZXN0X2Fja2VkCi0K
LSAgICAgICAgZm9yIHBhY2tldF9udW1iZXIgaW4gc29ydGVkKHNwYWNlLnNlbnRfcGFja2V0cy5r
ZXlzKCkpOgotICAgICAgICAgICAgaWYgcGFja2V0X251bWJlciA+IGxhcmdlc3RfYWNrZWQ6Ci0g
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlmIHBhY2tldF9udW1iZXIgaW4gYWNr
X3Jhbmdlc2V0OgotICAgICAgICAgICAgICAgICMgcmVtb3ZlIHBhY2tldCBhbmQgdXBkYXRlIGNv
dW50ZXJzCi0gICAgICAgICAgICAgICAgcGFja2V0ID0gc3BhY2Uuc2VudF9wYWNrZXRzLnBvcChw
YWNrZXRfbnVtYmVyKQotICAgICAgICAgICAgICAgIGlmIHBhY2tldC5pc19hY2tfZWxpY2l0aW5n
OgotICAgICAgICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nID0gVHJ1ZQotICAgICAgICAg
ICAgICAgICAgICBzcGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCAtPSAxCi0gICAgICAgICAg
ICAgICAgaWYgcGFja2V0LmluX2ZsaWdodDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2Mu
b25fcGFja2V0X2Fja2VkKHBhY2tldCkKLSAgICAgICAgICAgICAgICBsYXJnZXN0X25ld2x5X2Fj
a2VkID0gcGFja2V0X251bWJlcgotICAgICAgICAgICAgICAgIGxhcmdlc3Rfc2VudF90aW1lID0g
cGFja2V0LnNlbnRfdGltZQotCi0gICAgICAgICAgICAgICAgIyB0cmlnZ2VyIGNhbGxiYWNrcwot
ICAgICAgICAgICAgICAgIGZvciBoYW5kbGVyLCBhcmdzIGluIHBhY2tldC5kZWxpdmVyeV9oYW5k
bGVyczoKLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlcihRdWljRGVsaXZlcnlTdGF0ZS5BQ0tF
RCwgKmFyZ3MpCi0KLSAgICAgICAgIyBub3RoaW5nIHRvIGRvIGlmIHRoZXJlIGFyZSBubyBuZXds
eSBhY2tlZCBwYWNrZXRzCi0gICAgICAgIGlmIGxhcmdlc3RfbmV3bHlfYWNrZWQgaXMgTm9uZToK
LSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIGxhcmdlc3RfYWNrZWQgPT0gbGFyZ2Vz
dF9uZXdseV9hY2tlZCBhbmQgaXNfYWNrX2VsaWNpdGluZzoKLSAgICAgICAgICAgIGxhdGVzdF9y
dHQgPSBub3cgLSBsYXJnZXN0X3NlbnRfdGltZQotICAgICAgICAgICAgbG9nX3J0dCA9IFRydWUK
LQotICAgICAgICAgICAgIyBsaW1pdCBBQ0sgZGVsYXkgdG8gbWF4X2Fja19kZWxheQotICAgICAg
ICAgICAgYWNrX2RlbGF5ID0gbWluKGFja19kZWxheSwgc2VsZi5tYXhfYWNrX2RlbGF5KQotCi0g
ICAgICAgICAgICAjIHVwZGF0ZSBSVFQgZXN0aW1hdGUsIHdoaWNoIGNhbm5vdCBiZSA8IDEgbXMK
LSAgICAgICAgICAgIHNlbGYuX3J0dF9sYXRlc3QgPSBtYXgobGF0ZXN0X3J0dCwgMC4wMDEpCi0g
ICAgICAgICAgICBpZiBzZWxmLl9ydHRfbGF0ZXN0IDwgc2VsZi5fcnR0X21pbjoKLSAgICAgICAg
ICAgICAgICBzZWxmLl9ydHRfbWluID0gc2VsZi5fcnR0X2xhdGVzdAotICAgICAgICAgICAgaWYg
c2VsZi5fcnR0X2xhdGVzdCA+IHNlbGYuX3J0dF9taW4gKyBhY2tfZGVsYXk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fcnR0X2xhdGVzdCAtPSBhY2tfZGVsYXkKLQotICAgICAgICAgICAgaWYgbm90
IHNlbGYuX3J0dF9pbml0aWFsaXplZDoKLSAgICAgICAgICAgICAgICBzZWxmLl9ydHRfaW5pdGlh
bGl6ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgc2VsZi5fcnR0X3ZhcmlhbmNlID0gbGF0ZXN0
X3J0dCAvIDIKLSAgICAgICAgICAgICAgICBzZWxmLl9ydHRfc21vb3RoZWQgPSBsYXRlc3RfcnR0
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3J0dF92YXJpYW5jZSA9
IDMgLyA0ICogc2VsZi5fcnR0X3ZhcmlhbmNlICsgMSAvIDQgKiBhYnMoCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX3J0dF9taW4gLSBzZWxmLl9ydHRfbGF0ZXN0Ci0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgIHNlbGYuX3J0dF9zbW9vdGhlZCA9ICgKLSAgICAgICAgICAgICAg
ICAgICAgNyAvIDggKiBzZWxmLl9ydHRfc21vb3RoZWQgKyAxIC8gOCAqIHNlbGYuX3J0dF9sYXRl
c3QKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgaW5mb3JtIGNvbmdlc3Rpb24g
Y29udHJvbGxlcgotICAgICAgICAgICAgc2VsZi5fY2Mub25fcnR0X21lYXN1cmVtZW50KGxhdGVz
dF9ydHQsIG5vdz1ub3cpCi0gICAgICAgICAgICBzZWxmLl9wYWNlci51cGRhdGVfcmF0ZSgKLSAg
ICAgICAgICAgICAgICBjb25nZXN0aW9uX3dpbmRvdz1zZWxmLl9jYy5jb25nZXN0aW9uX3dpbmRv
dywKLSAgICAgICAgICAgICAgICBzbW9vdGhlZF9ydHQ9c2VsZi5fcnR0X3Ntb290aGVkLAotICAg
ICAgICAgICAgKQotCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dfcnR0ID0gRmFsc2UK
LQotICAgICAgICBzZWxmLl9kZXRlY3RfbG9zcyhzcGFjZSwgbm93PW5vdykKLQotICAgICAgICBp
ZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ19t
ZXRyaWNzX3VwZGF0ZWQobG9nX3J0dD1sb2dfcnR0KQotCi0gICAgICAgIHNlbGYuX3B0b19jb3Vu
dCA9IDAKLQotICAgIGRlZiBvbl9sb3NzX2RldGVjdGlvbl90aW1lb3V0KHNlbGYsIG5vdzogZmxv
YXQpIC0+IE5vbmU6Ci0gICAgICAgIGxvc3Nfc3BhY2UgPSBzZWxmLmdldF9lYXJsaWVzdF9sb3Nz
X3NwYWNlKCkKLSAgICAgICAgaWYgbG9zc19zcGFjZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuX2RldGVjdF9sb3NzKGxvc3Nfc3BhY2UsIG5vdz1ub3cpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBzZWxmLl9wdG9fY291bnQgKz0gMQotCi0gICAgICAgICAgICAjIHJlc2NoZWR1
bGUgc29tZSBkYXRhCi0gICAgICAgICAgICBmb3Igc3BhY2UgaW4gc2VsZi5zcGFjZXM6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fb25fcGFja2V0c19sb3N0KAotICAgICAgICAgICAgICAgICAgICB0
dXBsZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsYW1iZGEgaTogaS5pc19jcnlwdG9fcGFja2V0LCBzcGFjZS5zZW50X3BhY2tl
dHMudmFsdWVzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAg
ICAgKSwKLSAgICAgICAgICAgICAgICAgICAgc3BhY2U9c3BhY2UsCi0gICAgICAgICAgICAgICAg
ICAgIG5vdz1ub3csCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICBzZWxmLl9zZW5k
X3Byb2JlKCkKLQotICAgIGRlZiBvbl9wYWNrZXRfc2VudChzZWxmLCBwYWNrZXQ6IFF1aWNTZW50
UGFja2V0LCBzcGFjZTogUXVpY1BhY2tldFNwYWNlKSAtPiBOb25lOgotICAgICAgICBzcGFjZS5z
ZW50X3BhY2tldHNbcGFja2V0LnBhY2tldF9udW1iZXJdID0gcGFja2V0Ci0KLSAgICAgICAgaWYg
cGFja2V0LmlzX2Fja19lbGljaXRpbmc6Ci0gICAgICAgICAgICBzcGFjZS5hY2tfZWxpY2l0aW5n
X2luX2ZsaWdodCArPSAxCi0gICAgICAgIGlmIHBhY2tldC5pbl9mbGlnaHQ6Ci0gICAgICAgICAg
ICBpZiBwYWNrZXQuaXNfYWNrX2VsaWNpdGluZzoKLSAgICAgICAgICAgICAgICBzZWxmLl90aW1l
X29mX2xhc3Rfc2VudF9hY2tfZWxpY2l0aW5nX3BhY2tldCA9IHBhY2tldC5zZW50X3RpbWUKLQot
ICAgICAgICAgICAgIyBhZGQgcGFja2V0IHRvIGJ5dGVzIGluIGZsaWdodAotICAgICAgICAgICAg
c2VsZi5fY2Mub25fcGFja2V0X3NlbnQocGFja2V0KQotCi0gICAgICAgICAgICBpZiBzZWxmLl9x
dWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dfbWV0cmlj
c191cGRhdGVkKCkKLQotICAgIGRlZiBfZGV0ZWN0X2xvc3Moc2VsZiwgc3BhY2U6IFF1aWNQYWNr
ZXRTcGFjZSwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENoZWNr
IHdoZXRoZXIgYW55IHBhY2tldHMgc2hvdWxkIGJlIGRlY2xhcmVkIGxvc3QuCi0gICAgICAgICIi
IgotICAgICAgICBsb3NzX2RlbGF5ID0gS19USU1FX1RIUkVTSE9MRCAqICgKLSAgICAgICAgICAg
IG1heChzZWxmLl9ydHRfbGF0ZXN0LCBzZWxmLl9ydHRfc21vb3RoZWQpCi0gICAgICAgICAgICBp
ZiBzZWxmLl9ydHRfaW5pdGlhbGl6ZWQKLSAgICAgICAgICAgIGVsc2UgS19JTklUSUFMX1JUVAot
ICAgICAgICApCi0gICAgICAgIHBhY2tldF90aHJlc2hvbGQgPSBzcGFjZS5sYXJnZXN0X2Fja2Vk
X3BhY2tldCAtIEtfUEFDS0VUX1RIUkVTSE9MRAotICAgICAgICB0aW1lX3RocmVzaG9sZCA9IG5v
dyAtIGxvc3NfZGVsYXkKLQotICAgICAgICBsb3N0X3BhY2tldHMgPSBbXQotICAgICAgICBzcGFj
ZS5sb3NzX3RpbWUgPSBOb25lCi0gICAgICAgIGZvciBwYWNrZXRfbnVtYmVyLCBwYWNrZXQgaW4g
c3BhY2Uuc2VudF9wYWNrZXRzLml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBwYWNrZXRfbnVtYmVy
ID4gc3BhY2UubGFyZ2VzdF9hY2tlZF9wYWNrZXQ6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQot
ICAgICAgICAgICAgaWYgcGFja2V0X251bWJlciA8PSBwYWNrZXRfdGhyZXNob2xkIG9yIHBhY2tl
dC5zZW50X3RpbWUgPD0gdGltZV90aHJlc2hvbGQ6Ci0gICAgICAgICAgICAgICAgbG9zdF9wYWNr
ZXRzLmFwcGVuZChwYWNrZXQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBh
Y2tldF9sb3NzX3RpbWUgPSBwYWNrZXQuc2VudF90aW1lICsgbG9zc19kZWxheQotICAgICAgICAg
ICAgICAgIGlmIHNwYWNlLmxvc3NfdGltZSBpcyBOb25lIG9yIHNwYWNlLmxvc3NfdGltZSA+IHBh
Y2tldF9sb3NzX3RpbWU6Ci0gICAgICAgICAgICAgICAgICAgIHNwYWNlLmxvc3NfdGltZSA9IHBh
Y2tldF9sb3NzX3RpbWUKLQotICAgICAgICBzZWxmLl9vbl9wYWNrZXRzX2xvc3QobG9zdF9wYWNr
ZXRzLCBzcGFjZT1zcGFjZSwgbm93PW5vdykKLQotICAgIGRlZiBfbG9nX21ldHJpY3NfdXBkYXRl
ZChzZWxmLCBsb2dfcnR0PUZhbHNlKSAtPiBOb25lOgotICAgICAgICBkYXRhID0gewotICAgICAg
ICAgICAgImJ5dGVzX2luX2ZsaWdodCI6IHNlbGYuX2NjLmJ5dGVzX2luX2ZsaWdodCwKLSAgICAg
ICAgICAgICJjd25kIjogc2VsZi5fY2MuY29uZ2VzdGlvbl93aW5kb3csCi0gICAgICAgIH0KLSAg
ICAgICAgaWYgc2VsZi5fY2Muc3N0aHJlc2ggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkYXRh
WyJzc3RocmVzaCJdID0gc2VsZi5fY2Muc3N0aHJlc2gKLQotICAgICAgICBpZiBsb2dfcnR0Ogot
ICAgICAgICAgICAgZGF0YS51cGRhdGUoCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAibGF0ZXN0X3J0dCI6IHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV90aW1lKHNlbGYu
X3J0dF9sYXRlc3QpLAotICAgICAgICAgICAgICAgICAgICAibWluX3J0dCI6IHNlbGYuX3F1aWNf
bG9nZ2VyLmVuY29kZV90aW1lKHNlbGYuX3J0dF9taW4pLAotICAgICAgICAgICAgICAgICAgICAi
c21vb3RoZWRfcnR0Ijogc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3RpbWUoc2VsZi5fcnR0X3Nt
b290aGVkKSwKLSAgICAgICAgICAgICAgICAgICAgInJ0dF92YXJpYW5jZSI6IHNlbGYuX3F1aWNf
bG9nZ2VyLmVuY29kZV90aW1lKHNlbGYuX3J0dF92YXJpYW5jZSksCi0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgK
LSAgICAgICAgICAgIGNhdGVnb3J5PSJyZWNvdmVyeSIsIGV2ZW50PSJtZXRyaWNzX3VwZGF0ZWQi
LCBkYXRhPWRhdGEKLSAgICAgICAgKQotCi0gICAgZGVmIF9vbl9wYWNrZXRzX2xvc3QoCi0gICAg
ICAgIHNlbGYsIHBhY2tldHM6IEl0ZXJhYmxlW1F1aWNTZW50UGFja2V0XSwgc3BhY2U6IFF1aWNQ
YWNrZXRTcGFjZSwgbm93OiBmbG9hdAotICAgICkgLT4gTm9uZToKLSAgICAgICAgbG9zdF9wYWNr
ZXRzX2NjID0gW10KLSAgICAgICAgZm9yIHBhY2tldCBpbiBwYWNrZXRzOgotICAgICAgICAgICAg
ZGVsIHNwYWNlLnNlbnRfcGFja2V0c1twYWNrZXQucGFja2V0X251bWJlcl0KLQotICAgICAgICAg
ICAgaWYgcGFja2V0LmluX2ZsaWdodDoKLSAgICAgICAgICAgICAgICBsb3N0X3BhY2tldHNfY2Mu
YXBwZW5kKHBhY2tldCkKLQotICAgICAgICAgICAgaWYgcGFja2V0LmlzX2Fja19lbGljaXRpbmc6
Ci0gICAgICAgICAgICAgICAgc3BhY2UuYWNrX2VsaWNpdGluZ19pbl9mbGlnaHQgLT0gMQotCi0g
ICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAgICAgICAgIGNh
dGVnb3J5PSJyZWNvdmVyeSIsCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50PSJwYWNrZXRfbG9z
dCIsCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICAgICAgICAg
InR5cGUiOiBzZWxmLl9xdWljX2xvZ2dlci5wYWNrZXRfdHlwZShwYWNrZXQucGFja2V0X3R5cGUp
LAotICAgICAgICAgICAgICAgICAgICAgICAgInBhY2tldF9udW1iZXIiOiBzdHIocGFja2V0LnBh
Y2tldF9udW1iZXIpLAotICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dfbWV0cmljc191cGRhdGVkKCkKLQotICAgICAgICAg
ICAgIyB0cmlnZ2VyIGNhbGxiYWNrcwotICAgICAgICAgICAgZm9yIGhhbmRsZXIsIGFyZ3MgaW4g
cGFja2V0LmRlbGl2ZXJ5X2hhbmRsZXJzOgotICAgICAgICAgICAgICAgIGhhbmRsZXIoUXVpY0Rl
bGl2ZXJ5U3RhdGUuTE9TVCwgKmFyZ3MpCi0KLSAgICAgICAgIyBpbmZvcm0gY29uZ2VzdGlvbiBj
b250cm9sbGVyCi0gICAgICAgIGlmIGxvc3RfcGFja2V0c19jYzoKLSAgICAgICAgICAgIHNlbGYu
X2NjLm9uX3BhY2tldHNfbG9zdChsb3N0X3BhY2tldHNfY2MsIG5vdz1ub3cpCi0gICAgICAgICAg
ICBzZWxmLl9wYWNlci51cGRhdGVfcmF0ZSgKLSAgICAgICAgICAgICAgICBjb25nZXN0aW9uX3dp
bmRvdz1zZWxmLl9jYy5jb25nZXN0aW9uX3dpbmRvdywKLSAgICAgICAgICAgICAgICBzbW9vdGhl
ZF9ydHQ9c2VsZi5fcnR0X3Ntb290aGVkLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgaWYg
c2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
X21ldHJpY3NfdXBkYXRlZCgpCi0KLQotY2xhc3MgUXVpY1J0dE1vbml0b3I6Ci0gICAgIiIiCi0g
ICAgUm91bmR0cmlwIHRpbWUgbW9uaXRvciBmb3IgSHlTdGFydC4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxmLl9pbmNyZWFzZXMgPSAwCi0g
ICAgICAgIHNlbGYuX2xhc3RfdGltZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVhZHkgPSBGYWxz
ZQotICAgICAgICBzZWxmLl9zaXplID0gNQotCi0gICAgICAgIHNlbGYuX2ZpbHRlcmVkX21pbjog
T3B0aW9uYWxbZmxvYXRdID0gTm9uZQotCi0gICAgICAgIHNlbGYuX3NhbXBsZV9pZHggPSAwCi0g
ICAgICAgIHNlbGYuX3NhbXBsZV9tYXg6IE9wdGlvbmFsW2Zsb2F0XSA9IE5vbmUKLSAgICAgICAg
c2VsZi5fc2FtcGxlX21pbjogT3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgICAgICBzZWxmLl9z
YW1wbGVfdGltZSA9IDAuMAotICAgICAgICBzZWxmLl9zYW1wbGVzID0gWzAuMCBmb3IgaSBpbiBy
YW5nZShzZWxmLl9zaXplKV0KLQotICAgIGRlZiBhZGRfcnR0KHNlbGYsIHJ0dDogZmxvYXQpIC0+
IE5vbmU6Ci0gICAgICAgIHNlbGYuX3NhbXBsZXNbc2VsZi5fc2FtcGxlX2lkeF0gPSBydHQKLSAg
ICAgICAgc2VsZi5fc2FtcGxlX2lkeCArPSAxCi0KLSAgICAgICAgaWYgc2VsZi5fc2FtcGxlX2lk
eCA+PSBzZWxmLl9zaXplOgotICAgICAgICAgICAgc2VsZi5fc2FtcGxlX2lkeCA9IDAKLSAgICAg
ICAgICAgIHNlbGYuX3JlYWR5ID0gVHJ1ZQotCi0gICAgICAgIGlmIHNlbGYuX3JlYWR5OgotICAg
ICAgICAgICAgc2VsZi5fc2FtcGxlX21heCA9IHNlbGYuX3NhbXBsZXNbMF0KLSAgICAgICAgICAg
IHNlbGYuX3NhbXBsZV9taW4gPSBzZWxmLl9zYW1wbGVzWzBdCi0gICAgICAgICAgICBmb3Igc2Ft
cGxlIGluIHNlbGYuX3NhbXBsZXNbMTpdOgotICAgICAgICAgICAgICAgIGlmIHNhbXBsZSA8IHNl
bGYuX3NhbXBsZV9taW46Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NhbXBsZV9taW4gPSBz
YW1wbGUKLSAgICAgICAgICAgICAgICBlbGlmIHNhbXBsZSA+IHNlbGYuX3NhbXBsZV9tYXg6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3NhbXBsZV9tYXggPSBzYW1wbGUKLQotICAgIGRlZiBp
c19ydHRfaW5jcmVhc2luZyhzZWxmLCBydHQ6IGZsb2F0LCBub3c6IGZsb2F0KSAtPiBib29sOgot
ICAgICAgICBpZiBub3cgPiBzZWxmLl9zYW1wbGVfdGltZSArIEtfR1JBTlVMQVJJVFk6Ci0gICAg
ICAgICAgICBzZWxmLmFkZF9ydHQocnR0KQotICAgICAgICAgICAgc2VsZi5fc2FtcGxlX3RpbWUg
PSBub3cKLQotICAgICAgICAgICAgaWYgc2VsZi5fcmVhZHk6Ci0gICAgICAgICAgICAgICAgaWYg
c2VsZi5fZmlsdGVyZWRfbWluIGlzIE5vbmUgb3Igc2VsZi5fZmlsdGVyZWRfbWluID4gc2VsZi5f
c2FtcGxlX21heDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsdGVyZWRfbWluID0gc2Vs
Zi5fc2FtcGxlX21heAotCi0gICAgICAgICAgICAgICAgZGVsdGEgPSBzZWxmLl9zYW1wbGVfbWlu
IC0gc2VsZi5fZmlsdGVyZWRfbWluCi0gICAgICAgICAgICAgICAgaWYgZGVsdGEgKiA0ID49IHNl
bGYuX2ZpbHRlcmVkX21pbjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5jcmVhc2VzICs9
IDEKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5faW5jcmVhc2VzID49IHNlbGYuX3NpemU6
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAgICAgICAgIGVs
aWYgZGVsdGEgPiAwOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbmNyZWFzZXMgPSAwCi0g
ICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L3F1aWMvcmV0cnkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yZXRyeS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ1YzNhNWM1NWM5YTM5NTg5Mzk4Yzk3Y2Vl
OTY1YzJiMzcwNjY1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yZXRyeS5weQorKysgL2Rldi9udWxs
CkBAIC0xLDM5ICswLDAgQEAKLWltcG9ydCBpcGFkZHJlc3MKLQotZnJvbSBjcnlwdG9ncmFwaHku
aGF6bWF0LmJhY2tlbmRzIGltcG9ydCBkZWZhdWx0X2JhY2tlbmQKLWZyb20gY3J5cHRvZ3JhcGh5
Lmhhem1hdC5wcmltaXRpdmVzIGltcG9ydCBoYXNoZXMKLWZyb20gY3J5cHRvZ3JhcGh5Lmhhem1h
dC5wcmltaXRpdmVzLmFzeW1tZXRyaWMgaW1wb3J0IHBhZGRpbmcsIHJzYQotCi1mcm9tIC5jb25u
ZWN0aW9uIGltcG9ydCBOZXR3b3JrQWRkcmVzcwotCi0KLWRlZiBlbmNvZGVfYWRkcmVzcyhhZGRy
OiBOZXR3b3JrQWRkcmVzcykgLT4gYnl0ZXM6Ci0gICAgcmV0dXJuIGlwYWRkcmVzcy5pcF9hZGRy
ZXNzKGFkZHJbMF0pLnBhY2tlZCArIGJ5dGVzKFthZGRyWzFdID4+IDgsIGFkZHJbMV0gJiAweEZG
XSkKLQotCi1jbGFzcyBRdWljUmV0cnlUb2tlbkhhbmRsZXI6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX2tleSA9IHJzYS5nZW5lcmF0ZV9wcml2YXRlX2tl
eSgKLSAgICAgICAgICAgIHB1YmxpY19leHBvbmVudD02NTUzNywga2V5X3NpemU9MTAyNCwgYmFj
a2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotICAgICAgICApCi0KLSAgICBkZWYgY3JlYXRlX3Rva2Vu
KHNlbGYsIGFkZHI6IE5ldHdvcmtBZGRyZXNzLCBkZXN0aW5hdGlvbl9jaWQ6IGJ5dGVzKSAtPiBi
eXRlczoKLSAgICAgICAgcmV0cnlfbWVzc2FnZSA9IGVuY29kZV9hZGRyZXNzKGFkZHIpICsgYiJ8
IiArIGRlc3RpbmF0aW9uX2NpZAotICAgICAgICByZXR1cm4gc2VsZi5fa2V5LnB1YmxpY19rZXko
KS5lbmNyeXB0KAotICAgICAgICAgICAgcmV0cnlfbWVzc2FnZSwKLSAgICAgICAgICAgIHBhZGRp
bmcuT0FFUCgKLSAgICAgICAgICAgICAgICBtZ2Y9cGFkZGluZy5NR0YxKGhhc2hlcy5TSEEyNTYo
KSksIGFsZ29yaXRobT1oYXNoZXMuU0hBMjU2KCksIGxhYmVsPU5vbmUKLSAgICAgICAgICAgICks
Ci0gICAgICAgICkKLQotICAgIGRlZiB2YWxpZGF0ZV90b2tlbihzZWxmLCBhZGRyOiBOZXR3b3Jr
QWRkcmVzcywgdG9rZW46IGJ5dGVzKSAtPiBieXRlczoKLSAgICAgICAgcmV0cnlfbWVzc2FnZSA9
IHNlbGYuX2tleS5kZWNyeXB0KAotICAgICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgICBwYWRk
aW5nLk9BRVAoCi0gICAgICAgICAgICAgICAgbWdmPXBhZGRpbmcuTUdGMShoYXNoZXMuU0hBMjU2
KCkpLCBhbGdvcml0aG09aGFzaGVzLlNIQTI1NigpLCBsYWJlbD1Ob25lCi0gICAgICAgICAgICAp
LAotICAgICAgICApCi0gICAgICAgIGVuY29kZWRfYWRkciwgb3JpZ2luYWxfY29ubmVjdGlvbl9p
ZCA9IHJldHJ5X21lc3NhZ2Uuc3BsaXQoYiJ8IiwgbWF4c3BsaXQ9MSkKLSAgICAgICAgaWYgZW5j
b2RlZF9hZGRyICE9IGVuY29kZV9hZGRyZXNzKGFkZHIpOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiUmVtb3RlIGFkZHJlc3MgZG9lcyBub3QgbWF0Y2guIikKLSAgICAgICAgcmV0dXJu
IG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlv
cXVpYy9xdWljL3N0cmVhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3N0cmVh
bS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYyMzY4NmY1ZDZiY2Q2ZjkwYjRl
NTNmMzcxNGYzYmY5YjZmNjE2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9zdHJlYW0ucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMTQgKzAsMCBAQAotZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCi0K
LWZyb20gLiBpbXBvcnQgZXZlbnRzCi1mcm9tIC5wYWNrZXQgaW1wb3J0IFF1aWNTdHJlYW1GcmFt
ZQotZnJvbSAucGFja2V0X2J1aWxkZXIgaW1wb3J0IFF1aWNEZWxpdmVyeVN0YXRlCi1mcm9tIC5y
YW5nZXNldCBpbXBvcnQgUmFuZ2VTZXQKLQotCi1jbGFzcyBRdWljU3RyZWFtOgotICAgIGRlZiBf
X2luaXRfXygKLSAgICAgICAgc2VsZiwKLSAgICAgICAgc3RyZWFtX2lkOiBPcHRpb25hbFtpbnRd
ID0gTm9uZSwKLSAgICAgICAgbWF4X3N0cmVhbV9kYXRhX2xvY2FsOiBpbnQgPSAwLAotICAgICAg
ICBtYXhfc3RyZWFtX2RhdGFfcmVtb3RlOiBpbnQgPSAwLAotICAgICkgLT4gTm9uZToKLSAgICAg
ICAgc2VsZi5pc19ibG9ja2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5tYXhfc3RyZWFtX2RhdGFf
bG9jYWwgPSBtYXhfc3RyZWFtX2RhdGFfbG9jYWwKLSAgICAgICAgc2VsZi5tYXhfc3RyZWFtX2Rh
dGFfbG9jYWxfc2VudCA9IG1heF9zdHJlYW1fZGF0YV9sb2NhbAotICAgICAgICBzZWxmLm1heF9z
dHJlYW1fZGF0YV9yZW1vdGUgPSBtYXhfc3RyZWFtX2RhdGFfcmVtb3RlCi0gICAgICAgIHNlbGYu
c2VuZF9idWZmZXJfaXNfZW1wdHkgPSBUcnVlCi0KLSAgICAgICAgc2VsZi5fcmVjdl9idWZmZXIg
PSBieXRlYXJyYXkoKQotICAgICAgICBzZWxmLl9yZWN2X2J1ZmZlcl9maW46IE9wdGlvbmFsW2lu
dF0gPSBOb25lCi0gICAgICAgIHNlbGYuX3JlY3ZfYnVmZmVyX3N0YXJ0ID0gMCAgIyB0aGUgb2Zm
c2V0IGZvciB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlcgotICAgICAgICBzZWxmLl9yZWN2X2hpZ2hl
c3QgPSAwICAjIHRoZSBoaWdoZXN0IG9mZnNldCBldmVyIHNlZW4KLSAgICAgICAgc2VsZi5fcmVj
dl9yYW5nZXMgPSBSYW5nZVNldCgpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9hY2tlZCA9IFJhbmdl
U2V0KCkKLSAgICAgICAgc2VsZi5fc2VuZF9idWZmZXIgPSBieXRlYXJyYXkoKQotICAgICAgICBz
ZWxmLl9zZW5kX2J1ZmZlcl9maW46IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYu
X3NlbmRfYnVmZmVyX3N0YXJ0ID0gMCAgIyB0aGUgb2Zmc2V0IGZvciB0aGUgc3RhcnQgb2YgdGhl
IGJ1ZmZlcgotICAgICAgICBzZWxmLl9zZW5kX2J1ZmZlcl9zdG9wID0gMCAgIyB0aGUgb2Zmc2V0
IGZvciB0aGUgc3RvcCBvZiB0aGUgYnVmZmVyCi0gICAgICAgIHNlbGYuX3NlbmRfaGlnaGVzdCA9
IDAKLSAgICAgICAgc2VsZi5fc2VuZF9wZW5kaW5nID0gUmFuZ2VTZXQoKQotICAgICAgICBzZWxm
Ll9zZW5kX3BlbmRpbmdfZW9mID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9fc3RyZWFtX2lkID0g
c3RyZWFtX2lkCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgc3RyZWFtX2lkKHNlbGYpIC0+IE9w
dGlvbmFsW2ludF06Ci0gICAgICAgIHJldHVybiBzZWxmLl9fc3RyZWFtX2lkCi0KLSAgICAjIHJl
YWRlcgotCi0gICAgZGVmIGFkZF9mcmFtZShzZWxmLCBmcmFtZTogUXVpY1N0cmVhbUZyYW1lKSAt
PiBPcHRpb25hbFtldmVudHMuU3RyZWFtRGF0YVJlY2VpdmVkXToKLSAgICAgICAgIiIiCi0gICAg
ICAgIEFkZCBhIGZyYW1lIG9mIHJlY2VpdmVkIGRhdGEuCi0gICAgICAgICIiIgotICAgICAgICBw
b3MgPSBmcmFtZS5vZmZzZXQgLSBzZWxmLl9yZWN2X2J1ZmZlcl9zdGFydAotICAgICAgICBjb3Vu
dCA9IGxlbihmcmFtZS5kYXRhKQotICAgICAgICBmcmFtZV9lbmQgPSBmcmFtZS5vZmZzZXQgKyBj
b3VudAotCi0gICAgICAgICMgd2Ugc2hvdWxkIHJlY2VpdmUgbm8gbW9yZSBkYXRhIGJleW9uZCBG
SU4hCi0gICAgICAgIGlmIHNlbGYuX3JlY3ZfYnVmZmVyX2ZpbiBpcyBub3QgTm9uZSBhbmQgZnJh
bWVfZW5kID4gc2VsZi5fcmVjdl9idWZmZXJfZmluOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCJEYXRhIHJlY2VpdmVkIGJleW9uZCBGSU4iKQotICAgICAgICBpZiBmcmFtZS5maW46Ci0g
ICAgICAgICAgICBzZWxmLl9yZWN2X2J1ZmZlcl9maW4gPSBmcmFtZV9lbmQKLSAgICAgICAgaWYg
ZnJhbWVfZW5kID4gc2VsZi5fcmVjdl9oaWdoZXN0OgotICAgICAgICAgICAgc2VsZi5fcmVjdl9o
aWdoZXN0ID0gZnJhbWVfZW5kCi0KLSAgICAgICAgIyBmYXN0IHBhdGg6IG5ldyBpbi1vcmRlciBj
aHVuawotICAgICAgICBpZiBwb3MgPT0gMCBhbmQgY291bnQgYW5kIG5vdCBzZWxmLl9yZWN2X2J1
ZmZlcjoKLSAgICAgICAgICAgIHNlbGYuX3JlY3ZfYnVmZmVyX3N0YXJ0ICs9IGNvdW50Ci0gICAg
ICAgICAgICByZXR1cm4gZXZlbnRzLlN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAg
ICBkYXRhPWZyYW1lLmRhdGEsIGVuZF9zdHJlYW09ZnJhbWUuZmluLCBzdHJlYW1faWQ9c2VsZi5f
X3N0cmVhbV9pZAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgZGlzY2FyZCBkdXBsaWNhdGUg
ZGF0YQotICAgICAgICBpZiBwb3MgPCAwOgotICAgICAgICAgICAgZnJhbWUuZGF0YSA9IGZyYW1l
LmRhdGFbLXBvczpdCi0gICAgICAgICAgICBmcmFtZS5vZmZzZXQgLT0gcG9zCi0gICAgICAgICAg
ICBwb3MgPSAwCi0KLSAgICAgICAgIyBtYXJrZWQgcmVjZWl2ZWQgcmFuZ2UKLSAgICAgICAgaWYg
ZnJhbWVfZW5kID4gZnJhbWUub2Zmc2V0OgotICAgICAgICAgICAgc2VsZi5fcmVjdl9yYW5nZXMu
YWRkKGZyYW1lLm9mZnNldCwgZnJhbWVfZW5kKQotCi0gICAgICAgICMgYWRkIG5ldyBkYXRhCi0g
ICAgICAgIGdhcCA9IHBvcyAtIGxlbihzZWxmLl9yZWN2X2J1ZmZlcikKLSAgICAgICAgaWYgZ2Fw
ID4gMDoKLSAgICAgICAgICAgIHNlbGYuX3JlY3ZfYnVmZmVyICs9IGJ5dGVhcnJheShnYXApCi0g
ICAgICAgIHNlbGYuX3JlY3ZfYnVmZmVyW3BvcyA6IHBvcyArIGNvdW50XSA9IGZyYW1lLmRhdGEK
LQotICAgICAgICAjIHJldHVybiBkYXRhIGZyb20gdGhlIGZyb250IG9mIHRoZSBidWZmZXIKLSAg
ICAgICAgZGF0YSA9IHNlbGYuX3B1bGxfZGF0YSgpCi0gICAgICAgIGVuZF9zdHJlYW0gPSBzZWxm
Ll9yZWN2X2J1ZmZlcl9zdGFydCA9PSBzZWxmLl9yZWN2X2J1ZmZlcl9maW4KLSAgICAgICAgaWYg
ZGF0YSBvciBlbmRfc3RyZWFtOgotICAgICAgICAgICAgcmV0dXJuIGV2ZW50cy5TdHJlYW1EYXRh
UmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBlbmRfc3RyZWFtPWVuZF9zdHJl
YW0sIHN0cmVhbV9pZD1zZWxmLl9fc3RyZWFtX2lkCi0gICAgICAgICAgICApCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIF9wdWxsX2RhdGEoc2VsZikg
LT4gYnl0ZXM6Ci0gICAgICAgICIiIgotICAgICAgICBSZW1vdmUgZGF0YSBmcm9tIHRoZSBmcm9u
dCBvZiB0aGUgYnVmZmVyLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
aGFzX2RhdGFfdG9fcmVhZCA9IHNlbGYuX3JlY3ZfcmFuZ2VzWzBdLnN0YXJ0ID09IHNlbGYuX3Jl
Y3ZfYnVmZmVyX3N0YXJ0Ci0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgotICAgICAgICAgICAg
aGFzX2RhdGFfdG9fcmVhZCA9IEZhbHNlCi0gICAgICAgIGlmIG5vdCBoYXNfZGF0YV90b19yZWFk
OgotICAgICAgICAgICAgcmV0dXJuIGIiIgotCi0gICAgICAgIHIgPSBzZWxmLl9yZWN2X3Jhbmdl
cy5zaGlmdCgpCi0gICAgICAgIHBvcyA9IHIuc3RvcCAtIHIuc3RhcnQKLSAgICAgICAgZGF0YSA9
IGJ5dGVzKHNlbGYuX3JlY3ZfYnVmZmVyWzpwb3NdKQotICAgICAgICBkZWwgc2VsZi5fcmVjdl9i
dWZmZXJbOnBvc10KLSAgICAgICAgc2VsZi5fcmVjdl9idWZmZXJfc3RhcnQgPSByLnN0b3AKLSAg
ICAgICAgcmV0dXJuIGRhdGEKLQotICAgICMgd3JpdGVyCi0KLSAgICBAcHJvcGVydHkKLSAgICBk
ZWYgbmV4dF9zZW5kX29mZnNldChzZWxmKSAtPiBpbnQ6Ci0gICAgICAgICIiIgotICAgICAgICBU
aGUgb2Zmc2V0IGZvciB0aGUgbmV4dCBmcmFtZSB0byBzZW5kLgotCi0gICAgICAgIFRoaXMgaXMg
dXNlZCB0byBkZXRlcm1pbmUgdGhlIHNwYWNlIG5lZWRlZCBmb3IgdGhlIGZyYW1lJ3MgYG9mZnNl
dGAgZmllbGQuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5fc2VuZF9wZW5kaW5nWzBdLnN0YXJ0Ci0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NlbmRfYnVmZmVyX3N0b3AKLQotICAgIGRlZiBnZXRf
ZnJhbWUoCi0gICAgICAgIHNlbGYsIG1heF9zaXplOiBpbnQsIG1heF9vZmZzZXQ6IE9wdGlvbmFs
W2ludF0gPSBOb25lCi0gICAgKSAtPiBPcHRpb25hbFtRdWljU3RyZWFtRnJhbWVdOgotICAgICAg
ICAiIiIKLSAgICAgICAgR2V0IGEgZnJhbWUgb2YgZGF0YSB0byBzZW5kLgotICAgICAgICAiIiIK
LSAgICAgICAgIyBnZXQgdGhlIGZpcnN0IHBlbmRpbmcgZGF0YSByYW5nZQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICByID0gc2VsZi5fc2VuZF9wZW5kaW5nWzBdCi0gICAgICAgIGV4Y2VwdCBJ
bmRleEVycm9yOgotICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9wZW5kaW5nX2VvZjoKLSAgICAg
ICAgICAgICAgICAjIEZJTiBvbmx5Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9wZW5kaW5n
X2VvZiA9IEZhbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIFF1aWNTdHJlYW1GcmFtZShmaW49
VHJ1ZSwgb2Zmc2V0PXNlbGYuX3NlbmRfYnVmZmVyX2ZpbikKLQotICAgICAgICAgICAgc2VsZi5z
ZW5kX2J1ZmZlcl9pc19lbXB0eSA9IFRydWUKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICAgICAgIyBhcHBseSBmbG93IGNvbnRyb2wKLSAgICAgICAgc3RhcnQgPSByLnN0YXJ0Ci0gICAg
ICAgIHN0b3AgPSBtaW4oci5zdG9wLCBzdGFydCArIG1heF9zaXplKQotICAgICAgICBpZiBtYXhf
b2Zmc2V0IGlzIG5vdCBOb25lIGFuZCBzdG9wID4gbWF4X29mZnNldDoKLSAgICAgICAgICAgIHN0
b3AgPSBtYXhfb2Zmc2V0Ci0gICAgICAgIGlmIHN0b3AgPD0gc3RhcnQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgICAgICMgY3JlYXRlIGZyYW1lCi0gICAgICAgIGZyYW1lID0gUXVp
Y1N0cmVhbUZyYW1lKAotICAgICAgICAgICAgZGF0YT1ieXRlcygKLSAgICAgICAgICAgICAgICBz
ZWxmLl9zZW5kX2J1ZmZlclsKLSAgICAgICAgICAgICAgICAgICAgc3RhcnQgLSBzZWxmLl9zZW5k
X2J1ZmZlcl9zdGFydCA6IHN0b3AgLSBzZWxmLl9zZW5kX2J1ZmZlcl9zdGFydAotICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBvZmZzZXQ9c3RhcnQsCi0gICAg
ICAgICkKLSAgICAgICAgc2VsZi5fc2VuZF9wZW5kaW5nLnN1YnRyYWN0KHN0YXJ0LCBzdG9wKQot
Ci0gICAgICAgICMgdHJhY2sgdGhlIGhpZ2hlc3Qgb2Zmc2V0IGV2ZXIgc2VudAotICAgICAgICBp
ZiBzdG9wID4gc2VsZi5fc2VuZF9oaWdoZXN0OgotICAgICAgICAgICAgc2VsZi5fc2VuZF9oaWdo
ZXN0ID0gc3RvcAotCi0gICAgICAgICMgaWYgdGhlIGJ1ZmZlciBpcyBlbXB0eSBhbmQgRU9GIHdh
cyB3cml0dGVuLCBzZXQgdGhlIEZJTiBiaXQKLSAgICAgICAgaWYgc2VsZi5fc2VuZF9idWZmZXJf
ZmluID09IHN0b3A6Ci0gICAgICAgICAgICBmcmFtZS5maW4gPSBUcnVlCi0gICAgICAgICAgICBz
ZWxmLl9zZW5kX3BlbmRpbmdfZW9mID0gRmFsc2UKLQotICAgICAgICByZXR1cm4gZnJhbWUKLQot
ICAgIGRlZiBvbl9kYXRhX2RlbGl2ZXJ5KAotICAgICAgICBzZWxmLCBkZWxpdmVyeTogUXVpY0Rl
bGl2ZXJ5U3RhdGUsIHN0YXJ0OiBpbnQsIHN0b3A6IGludAotICAgICkgLT4gTm9uZToKLSAgICAg
ICAgIiIiCi0gICAgICAgIENhbGxiYWNrIHdoZW4gc2VudCBkYXRhIGlzIEFDSydkLgotICAgICAg
ICAiIiIKLSAgICAgICAgc2VsZi5zZW5kX2J1ZmZlcl9pc19lbXB0eSA9IEZhbHNlCi0gICAgICAg
IGlmIGRlbGl2ZXJ5ID09IFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VEOgotICAgICAgICAgICAgaWYg
c3RvcCA+IHN0YXJ0OgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfYWNrZWQuYWRkKHN0YXJ0
LCBzdG9wKQotICAgICAgICAgICAgICAgIGZpcnN0X3JhbmdlID0gc2VsZi5fc2VuZF9hY2tlZFsw
XQotICAgICAgICAgICAgICAgIGlmIGZpcnN0X3JhbmdlLnN0YXJ0ID09IHNlbGYuX3NlbmRfYnVm
ZmVyX3N0YXJ0OgotICAgICAgICAgICAgICAgICAgICBzaXplID0gZmlyc3RfcmFuZ2Uuc3RvcCAt
IGZpcnN0X3JhbmdlLnN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfYWNrZWQu
c2hpZnQoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2J1ZmZlcl9zdGFydCArPSBz
aXplCi0gICAgICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9zZW5kX2J1ZmZlcls6c2l6ZV0KLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHN0b3AgPiBzdGFydDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zZW5kX3BlbmRpbmcuYWRkKHN0YXJ0LCBzdG9wKQotICAgICAgICAgICAgaWYgc3Rv
cCA9PSBzZWxmLl9zZW5kX2J1ZmZlcl9maW46Ci0gICAgICAgICAgICAgICAgc2VsZi5zZW5kX2J1
ZmZlcl9lbXB0eSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9wZW5kaW5nX2Vv
ZiA9IFRydWUKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhOiBieXRlcywgZW5kX3N0cmVhbTog
Ym9vbCA9IEZhbHNlKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgV3JpdGUgc29tZSBk
YXRhIGJ5dGVzIHRvIHRoZSBRVUlDIHN0cmVhbS4KLSAgICAgICAgIiIiCi0gICAgICAgIGFzc2Vy
dCBzZWxmLl9zZW5kX2J1ZmZlcl9maW4gaXMgTm9uZSwgImNhbm5vdCBjYWxsIHdyaXRlKCkgYWZ0
ZXIgRklOIgotICAgICAgICBzaXplID0gbGVuKGRhdGEpCi0KLSAgICAgICAgaWYgc2l6ZToKLSAg
ICAgICAgICAgIHNlbGYuc2VuZF9idWZmZXJfaXNfZW1wdHkgPSBGYWxzZQotICAgICAgICAgICAg
c2VsZi5fc2VuZF9wZW5kaW5nLmFkZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2J1ZmZl
cl9zdG9wLCBzZWxmLl9zZW5kX2J1ZmZlcl9zdG9wICsgc2l6ZQotICAgICAgICAgICAgKQotICAg
ICAgICAgICAgc2VsZi5fc2VuZF9idWZmZXIgKz0gZGF0YQotICAgICAgICAgICAgc2VsZi5fc2Vu
ZF9idWZmZXJfc3RvcCArPSBzaXplCi0gICAgICAgIGlmIGVuZF9zdHJlYW06Ci0gICAgICAgICAg
ICBzZWxmLnNlbmRfYnVmZmVyX2lzX2VtcHR5ID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3Nl
bmRfYnVmZmVyX2ZpbiA9IHNlbGYuX3NlbmRfYnVmZmVyX3N0b3AKLSAgICAgICAgICAgIHNlbGYu
X3NlbmRfcGVuZGluZ19lb2YgPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvcXVpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWlj
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGI4YzI2ZmE0
YzYwNmUxZGFhMDA0NGYwYmZlZGRkMmRmMjJiMjY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NyYy9haW9xdWljL3F1aWMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvcXVpYy9jb25maWd1cmF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1
aWMvY29ubmVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2NyeXB0by5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2V2ZW50cy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9xdWljL2xvZ2dlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9x
dWljL3BhY2tldC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3BhY2tldF9idWls
ZGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcmFuZ2VzZXQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yZWNvdmVyeS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMv
YWlvcXVpYy9xdWljL3JldHJ5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvc3Ry
ZWFtLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvdGxzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3NyYy9haW9xdWljL3Rscy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTRiMTBjYmJhNWQ5MGViMmNmZTllMmJhMzE2YTQzN2ZkNzc4NGY0Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1
aWMvdGxzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTkyNiArMCwwIEBACi1pbXBvcnQgZGF0ZXRp
bWUKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzc2wKLWltcG9ydCBzdHJ1Y3QK
LWZyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKLWZyb20gZGF0YWNsYXNzZXMg
aW1wb3J0IGRhdGFjbGFzcywgZmllbGQKLWZyb20gZW51bSBpbXBvcnQgRW51bSwgSW50RW51bQot
ZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKLWZyb20gdHlwaW5nIGltcG9ydCAoCi0gICAg
QW55LAotICAgIENhbGxhYmxlLAotICAgIERpY3QsCi0gICAgR2VuZXJhdG9yLAotICAgIExpc3Qs
Ci0gICAgT3B0aW9uYWwsCi0gICAgU2VxdWVuY2UsCi0gICAgVHVwbGUsCi0gICAgVHlwZVZhciwK
LSAgICBVbmlvbiwKLSkKLQotaW1wb3J0IGNlcnRpZmkKLWZyb20gY3J5cHRvZ3JhcGh5IGltcG9y
dCB4NTA5Ci1mcm9tIGNyeXB0b2dyYXBoeS5leGNlcHRpb25zIGltcG9ydCBJbnZhbGlkU2lnbmF0
dXJlCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMgaW1wb3J0IGRlZmF1bHRfYmFj
a2VuZAotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LmJpbmRpbmdzLm9wZW5zc2wuYmluZGluZyBp
bXBvcnQgQmluZGluZwotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMgaW1wb3J0
IGhhc2hlcywgaG1hYywgc2VyaWFsaXphdGlvbgotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnBy
aW1pdGl2ZXMuYXN5bW1ldHJpYyBpbXBvcnQgKAotICAgIGRzYSwKLSAgICBlYywKLSAgICBwYWRk
aW5nLAotICAgIHJzYSwKLSAgICB4NDQ4LAotICAgIHgyNTUxOSwKLSkKLWZyb20gY3J5cHRvZ3Jh
cGh5Lmhhem1hdC5wcmltaXRpdmVzLmtkZi5oa2RmIGltcG9ydCBIS0RGRXhwYW5kCi1mcm9tIGNy
eXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5zZXJpYWxpemF0aW9uIGltcG9ydCBFbmNvZGlu
ZywgUHVibGljRm9ybWF0Ci0KLWZyb20gLmJ1ZmZlciBpbXBvcnQgQnVmZmVyCi0KLWJpbmRpbmcg
PSBCaW5kaW5nKCkKLWJpbmRpbmcuaW5pdF9zdGF0aWNfbG9ja3MoKQotZmZpID0gYmluZGluZy5m
ZmkKLWxpYiA9IGJpbmRpbmcubGliCi0KLVRMU19WRVJTSU9OXzFfMiA9IDB4MDMwMwotVExTX1ZF
UlNJT05fMV8zID0gMHgwMzA0Ci1UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjggPSAweDdGMUMKLVRM
U19WRVJTSU9OXzFfM19EUkFGVF8yNyA9IDB4N0YxQgotVExTX1ZFUlNJT05fMV8zX0RSQUZUXzI2
ID0gMHg3RjFBCi0KLVQgPSBUeXBlVmFyKCJUIikKLQotIyBmYWNpbGl0YXRlIG1vY2tpbmcgZm9y
IHRoZSB0ZXN0IHN1aXRlCi11dGNub3cgPSBkYXRldGltZS5kYXRldGltZS51dGNub3cKLQotCi1j
bGFzcyBBbGVydERlc2NyaXB0aW9uKEludEVudW0pOgotICAgIGNsb3NlX25vdGlmeSA9IDAKLSAg
ICB1bmV4cGVjdGVkX21lc3NhZ2UgPSAxMAotICAgIGJhZF9yZWNvcmRfbWFjID0gMjAKLSAgICBy
ZWNvcmRfb3ZlcmZsb3cgPSAyMgotICAgIGhhbmRzaGFrZV9mYWlsdXJlID0gNDAKLSAgICBiYWRf
Y2VydGlmaWNhdGUgPSA0MgotICAgIHVuc3VwcG9ydGVkX2NlcnRpZmljYXRlID0gNDMKLSAgICBj
ZXJ0aWZpY2F0ZV9yZXZva2VkID0gNDQKLSAgICBjZXJ0aWZpY2F0ZV9leHBpcmVkID0gNDUKLSAg
ICBjZXJ0aWZpY2F0ZV91bmtub3duID0gNDYKLSAgICBpbGxlZ2FsX3BhcmFtZXRlciA9IDQ3Ci0g
ICAgdW5rbm93bl9jYSA9IDQ4Ci0gICAgYWNjZXNzX2RlbmllZCA9IDQ5Ci0gICAgZGVjb2RlX2Vy
cm9yID0gNTAKLSAgICBkZWNyeXB0X2Vycm9yID0gNTEKLSAgICBwcm90b2NvbF92ZXJzaW9uID0g
NzAKLSAgICBpbnN1ZmZpY2llbnRfc2VjdXJpdHkgPSA3MQotICAgIGludGVybmFsX2Vycm9yID0g
ODAKLSAgICBpbmFwcHJvcHJpYXRlX2ZhbGxiYWNrID0gODYKLSAgICB1c2VyX2NhbmNlbGVkID0g
OTAKLSAgICBtaXNzaW5nX2V4dGVuc2lvbiA9IDEwOQotICAgIHVuc3VwcG9ydGVkX2V4dGVuc2lv
biA9IDExMAotICAgIHVucmVjb2duaXplZF9uYW1lID0gMTEyCi0gICAgYmFkX2NlcnRpZmljYXRl
X3N0YXR1c19yZXNwb25zZSA9IDExMwotICAgIHVua25vd25fcHNrX2lkZW50aXR5ID0gMTE1Ci0g
ICAgY2VydGlmaWNhdGVfcmVxdWlyZWQgPSAxMTYKLSAgICBub19hcHBsaWNhdGlvbl9wcm90b2Nv
bCA9IDEyMAotCi0KLWNsYXNzIEFsZXJ0KEV4Y2VwdGlvbik6Ci0gICAgZGVzY3JpcHRpb246IEFs
ZXJ0RGVzY3JpcHRpb24KLQotCi1jbGFzcyBBbGVydEJhZENlcnRpZmljYXRlKEFsZXJ0KToKLSAg
ICBkZXNjcmlwdGlvbiA9IEFsZXJ0RGVzY3JpcHRpb24uYmFkX2NlcnRpZmljYXRlCi0KLQotY2xh
c3MgQWxlcnRDZXJ0aWZpY2F0ZUV4cGlyZWQoQWxlcnQpOgotICAgIGRlc2NyaXB0aW9uID0gQWxl
cnREZXNjcmlwdGlvbi5jZXJ0aWZpY2F0ZV9leHBpcmVkCi0KLQotY2xhc3MgQWxlcnREZWNyeXB0
RXJyb3IoQWxlcnQpOgotICAgIGRlc2NyaXB0aW9uID0gQWxlcnREZXNjcmlwdGlvbi5kZWNyeXB0
X2Vycm9yCi0KLQotY2xhc3MgQWxlcnRIYW5kc2hha2VGYWlsdXJlKEFsZXJ0KToKLSAgICBkZXNj
cmlwdGlvbiA9IEFsZXJ0RGVzY3JpcHRpb24uaGFuZHNoYWtlX2ZhaWx1cmUKLQotCi1jbGFzcyBB
bGVydElsbGVnYWxQYXJhbWV0ZXIoQWxlcnQpOgotICAgIGRlc2NyaXB0aW9uID0gQWxlcnREZXNj
cmlwdGlvbi5pbGxlZ2FsX3BhcmFtZXRlcgotCi0KLWNsYXNzIEFsZXJ0SW50ZXJuYWxFcnJvcihB
bGVydCk6Ci0gICAgZGVzY3JpcHRpb24gPSBBbGVydERlc2NyaXB0aW9uLmludGVybmFsX2Vycm9y
Ci0KLQotY2xhc3MgQWxlcnRQcm90b2NvbFZlcnNpb24oQWxlcnQpOgotICAgIGRlc2NyaXB0aW9u
ID0gQWxlcnREZXNjcmlwdGlvbi5wcm90b2NvbF92ZXJzaW9uCi0KLQotY2xhc3MgQWxlcnRVbmV4
cGVjdGVkTWVzc2FnZShBbGVydCk6Ci0gICAgZGVzY3JpcHRpb24gPSBBbGVydERlc2NyaXB0aW9u
LnVuZXhwZWN0ZWRfbWVzc2FnZQotCi0KLWNsYXNzIERpcmVjdGlvbihFbnVtKToKLSAgICBERUNS
WVBUID0gMAotICAgIEVOQ1JZUFQgPSAxCi0KLQotY2xhc3MgRXBvY2goRW51bSk6Ci0gICAgSU5J
VElBTCA9IDAKLSAgICBaRVJPX1JUVCA9IDEKLSAgICBIQU5EU0hBS0UgPSAyCi0gICAgT05FX1JU
VCA9IDMKLQotCi1jbGFzcyBTdGF0ZShFbnVtKToKLSAgICBDTElFTlRfSEFORFNIQUtFX1NUQVJU
ID0gMAotICAgIENMSUVOVF9FWFBFQ1RfU0VSVkVSX0hFTExPID0gMQotICAgIENMSUVOVF9FWFBF
Q1RfRU5DUllQVEVEX0VYVEVOU0lPTlMgPSAyCi0gICAgQ0xJRU5UX0VYUEVDVF9DRVJUSUZJQ0FU
RV9SRVFVRVNUX09SX0NFUlRJRklDQVRFID0gMwotICAgIENMSUVOVF9FWFBFQ1RfQ0VSVElGSUNB
VEVfQ0VSVElGSUNBVEUgPSA0Ci0gICAgQ0xJRU5UX0VYUEVDVF9DRVJUSUZJQ0FURV9WRVJJRlkg
PSA1Ci0gICAgQ0xJRU5UX0VYUEVDVF9GSU5JU0hFRCA9IDYKLSAgICBDTElFTlRfUE9TVF9IQU5E
U0hBS0UgPSA3Ci0KLSAgICBTRVJWRVJfRVhQRUNUX0NMSUVOVF9IRUxMTyA9IDgKLSAgICBTRVJW
RVJfRVhQRUNUX0ZJTklTSEVEID0gOQotICAgIFNFUlZFUl9QT1NUX0hBTkRTSEFLRSA9IDEwCi0K
LQotZGVmIGhrZGZfbGFiZWwobGFiZWw6IGJ5dGVzLCBoYXNoX3ZhbHVlOiBieXRlcywgbGVuZ3Ro
OiBpbnQpIC0+IGJ5dGVzOgotICAgIGZ1bGxfbGFiZWwgPSBiInRsczEzICIgKyBsYWJlbAotICAg
IHJldHVybiAoCi0gICAgICAgIHN0cnVjdC5wYWNrKCIhSEIiLCBsZW5ndGgsIGxlbihmdWxsX2xh
YmVsKSkKLSAgICAgICAgKyBmdWxsX2xhYmVsCi0gICAgICAgICsgc3RydWN0LnBhY2soIiFCIiwg
bGVuKGhhc2hfdmFsdWUpKQotICAgICAgICArIGhhc2hfdmFsdWUKLSAgICApCi0KLQotZGVmIGhr
ZGZfZXhwYW5kX2xhYmVsKAotICAgIGFsZ29yaXRobTogaGFzaGVzLkhhc2hBbGdvcml0aG0sCi0g
ICAgc2VjcmV0OiBieXRlcywKLSAgICBsYWJlbDogYnl0ZXMsCi0gICAgaGFzaF92YWx1ZTogYnl0
ZXMsCi0gICAgbGVuZ3RoOiBpbnQsCi0pIC0+IGJ5dGVzOgotICAgIHJldHVybiBIS0RGRXhwYW5k
KAotICAgICAgICBhbGdvcml0aG09YWxnb3JpdGhtLAotICAgICAgICBsZW5ndGg9bGVuZ3RoLAot
ICAgICAgICBpbmZvPWhrZGZfbGFiZWwobGFiZWwsIGhhc2hfdmFsdWUsIGxlbmd0aCksCi0gICAg
ICAgIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCksCi0gICAgKS5kZXJpdmUoc2VjcmV0KQotCi0K
LWRlZiBoa2RmX2V4dHJhY3QoCi0gICAgYWxnb3JpdGhtOiBoYXNoZXMuSGFzaEFsZ29yaXRobSwg
c2FsdDogYnl0ZXMsIGtleV9tYXRlcmlhbDogYnl0ZXMKLSkgLT4gYnl0ZXM6Ci0gICAgaCA9IGht
YWMuSE1BQyhzYWx0LCBhbGdvcml0aG0sIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCkpCi0gICAg
aC51cGRhdGUoa2V5X21hdGVyaWFsKQotICAgIHJldHVybiBoLmZpbmFsaXplKCkKLQotCi1kZWYg
bG9hZF9wZW1fcHJpdmF0ZV9rZXkoCi0gICAgZGF0YTogYnl0ZXMsIHBhc3N3b3JkOiBPcHRpb25h
bFtieXRlc10KLSkgLT4gVW5pb25bZHNhLkRTQVByaXZhdGVLZXksIGVjLkVsbGlwdGljQ3VydmVQ
cml2YXRlS2V5LCByc2EuUlNBUHJpdmF0ZUtleV06Ci0gICAgIiIiCi0gICAgTG9hZCBhIFBFTS1l
bmNvZGVkIHByaXZhdGUga2V5LgotICAgICIiIgotICAgIHJldHVybiBzZXJpYWxpemF0aW9uLmxv
YWRfcGVtX3ByaXZhdGVfa2V5KAotICAgICAgICBkYXRhLCBwYXNzd29yZD1wYXNzd29yZCwgYmFj
a2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotICAgICkKLQotCi1kZWYgbG9hZF9wZW1feDUwOV9jZXJ0
aWZpY2F0ZXMoZGF0YTogYnl0ZXMpIC0+IExpc3RbeDUwOS5DZXJ0aWZpY2F0ZV06Ci0gICAgIiIi
Ci0gICAgTG9hZCBhIGNoYWluIG9mIFBFTS1lbmNvZGVkIFg1MDkgY2VydGlmaWNhdGVzLgotICAg
ICIiIgotICAgIGJvdW5kYXJ5ID0gYiItLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iCi0gICAg
Y2VydGlmaWNhdGVzID0gW10KLSAgICBmb3IgY2h1bmsgaW4gZGF0YS5zcGxpdChib3VuZGFyeSk6
Ci0gICAgICAgIGlmIGNodW5rOgotICAgICAgICAgICAgY2VydGlmaWNhdGVzLmFwcGVuZCgKLSAg
ICAgICAgICAgICAgICB4NTA5LmxvYWRfcGVtX3g1MDlfY2VydGlmaWNhdGUoCi0gICAgICAgICAg
ICAgICAgICAgIGNodW5rICsgYm91bmRhcnksIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCkKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgcmV0dXJuIGNlcnRpZmljYXRlcwot
Ci0KLWRlZiBvcGVuc3NsX2Fzc2VydChvazogYm9vbCwgZnVuYzogc3RyKSAtPiBOb25lOgotICAg
IGlmIG5vdCBvazoKLSAgICAgICAgbGliLkVSUl9jbGVhcl9lcnJvcigpCi0gICAgICAgIHJhaXNl
IEFsZXJ0SW50ZXJuYWxFcnJvcigiT3BlblNTTCBjYWxsIHRvICVzIGZhaWxlZCIgJSBmdW5jKQot
Ci0KLWRlZiBvcGVuc3NsX2RlY29kZV9zdHJpbmcoY2hhcnApIC0+IHN0cjoKLSAgICByZXR1cm4g
ZmZpLnN0cmluZyhjaGFycCkuZGVjb2RlKCJ1dGYtOCIpIGlmIGNoYXJwIGVsc2UgIiIKLQotCi1k
ZWYgb3BlbnNzbF9lbmNvZGVfcGF0aChzOiBPcHRpb25hbFtzdHJdKSAtPiBBbnk6Ci0gICAgaWYg
cyBpcyBub3QgTm9uZToKLSAgICAgICAgcmV0dXJuIG9zLmZzZW5jb2RlKHMpCi0gICAgcmV0dXJu
IGZmaS5OVUxMCi0KLQotZGVmIGNlcnRfeDUwOV9wdHIoY2VydGlmaWNhdGU6IHg1MDkuQ2VydGlm
aWNhdGUpIC0+IEFueToKLSAgICAiIiIKLSAgICBBY2Nlc3NvciBmb3IgcHJpdmF0ZSBhdHRyaWJ1
dGUuCi0gICAgIiIiCi0gICAgcmV0dXJuIGdldGF0dHIoY2VydGlmaWNhdGUsICJfeDUwOSIpCi0K
LQotZGVmIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAgICBjZXJ0aWZpY2F0ZTogeDUwOS5DZXJ0aWZp
Y2F0ZSwKLSAgICBjaGFpbjogTGlzdFt4NTA5LkNlcnRpZmljYXRlXSA9IFtdLAotICAgIHNlcnZl
cl9uYW1lOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSAgICBjYWRhdGE6IE9wdGlvbmFsW2J5dGVz
XSA9IE5vbmUsCi0gICAgY2FmaWxlOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSAgICBjYXBhdGg6
IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotKSAtPiBOb25lOgotICAgICMgdmVyaWZ5IGRhdGVzCi0g
ICAgbm93ID0gdXRjbm93KCkKLSAgICBpZiBub3cgPCBjZXJ0aWZpY2F0ZS5ub3RfdmFsaWRfYmVm
b3JlOgotICAgICAgICByYWlzZSBBbGVydENlcnRpZmljYXRlRXhwaXJlZCgiQ2VydGlmaWNhdGUg
aXMgbm90IHZhbGlkIHlldCIpCi0gICAgaWYgbm93ID4gY2VydGlmaWNhdGUubm90X3ZhbGlkX2Fm
dGVyOgotICAgICAgICByYWlzZSBBbGVydENlcnRpZmljYXRlRXhwaXJlZCgiQ2VydGlmaWNhdGUg
aXMgbm8gbG9uZ2VyIHZhbGlkIikKLQotICAgICMgdmVyaWZ5IHN1YmplY3QKLSAgICBpZiBzZXJ2
ZXJfbmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgc3ViamVjdCA9IFtdCi0gICAgICAgIHN1Ympl
Y3RBbHROYW1lOiBMaXN0W1R1cGxlW3N0ciwgc3RyXV0gPSBbXQotICAgICAgICBmb3IgYXR0ciBp
biBjZXJ0aWZpY2F0ZS5zdWJqZWN0OgotICAgICAgICAgICAgaWYgYXR0ci5vaWQgPT0geDUwOS5O
YW1lT0lELkNPTU1PTl9OQU1FOgotICAgICAgICAgICAgICAgIHN1YmplY3QuYXBwZW5kKCgoImNv
bW1vbk5hbWUiLCBhdHRyLnZhbHVlKSwpKQotICAgICAgICBmb3IgZXh0IGluIGNlcnRpZmljYXRl
LmV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4dC52YWx1ZSwgeDUwOS5T
dWJqZWN0QWx0ZXJuYXRpdmVOYW1lKToKLSAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBleHQu
dmFsdWU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgeDUwOS5ETlNO
YW1lKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHN1YmplY3RBbHROYW1lLmFwcGVuZCgoIkRO
UyIsIG5hbWUudmFsdWUpKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNzbC5tYXRjaF9o
b3N0bmFtZSgKLSAgICAgICAgICAgICAgICB7InN1YmplY3QiOiB0dXBsZShzdWJqZWN0KSwgInN1
YmplY3RBbHROYW1lIjogdHVwbGUoc3ViamVjdEFsdE5hbWUpfSwKLSAgICAgICAgICAgICAgICBz
ZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgZXhjZXB0IHNzbC5DZXJ0aWZpY2F0
ZUVycm9yIGFzIGV4YzoKLSAgICAgICAgICAgIHJhaXNlIEFsZXJ0QmFkQ2VydGlmaWNhdGUoIlxu
Ii5qb2luKGV4Yy5hcmdzKSkgZnJvbSBleGMKLQotICAgICMgdmVyaWZ5IGNlcnRpZmljYXRlIGNo
YWluCi0gICAgc3RvcmUgPSBsaWIuWDUwOV9TVE9SRV9uZXcoKQotICAgIG9wZW5zc2xfYXNzZXJ0
KHN0b3JlICE9IGZmaS5OVUxMLCAiWDUwOV9zdG9yZV9uZXciKQotICAgIHN0b3JlID0gZmZpLmdj
KHN0b3JlLCBsaWIuWDUwOV9TVE9SRV9mcmVlKQotCi0gICAgIyBsb2FkIGRlZmF1bHQgQ0FzCi0g
ICAgb3BlbnNzbF9hc3NlcnQoCi0gICAgICAgIGxpYi5YNTA5X1NUT1JFX3NldF9kZWZhdWx0X3Bh
dGhzKHN0b3JlKSwgIlg1MDlfU1RPUkVfc2V0X2RlZmF1bHRfcGF0aHMiCi0gICAgKQotICAgIG9w
ZW5zc2xfYXNzZXJ0KAotICAgICAgICBsaWIuWDUwOV9TVE9SRV9sb2FkX2xvY2F0aW9ucygKLSAg
ICAgICAgICAgIHN0b3JlLCBvcGVuc3NsX2VuY29kZV9wYXRoKGNlcnRpZmkud2hlcmUoKSksIG9w
ZW5zc2xfZW5jb2RlX3BhdGgoTm9uZSksCi0gICAgICAgICksCi0gICAgICAgICJYNTA5X1NUT1JF
X2xvYWRfbG9jYXRpb25zIiwKLSAgICApCi0KLSAgICAjIGxvYWQgZXh0cmEgQ0FzCi0gICAgaWYg
Y2FkYXRhIGlzIG5vdCBOb25lOgotICAgICAgICBmb3IgY2VydCBpbiBsb2FkX3BlbV94NTA5X2Nl
cnRpZmljYXRlcyhjYWRhdGEpOgotICAgICAgICAgICAgb3BlbnNzbF9hc3NlcnQoCi0gICAgICAg
ICAgICAgICAgbGliLlg1MDlfU1RPUkVfYWRkX2NlcnQoc3RvcmUsIGNlcnRfeDUwOV9wdHIoY2Vy
dCkpLAotICAgICAgICAgICAgICAgICJYNTA5X1NUT1JFX2FkZF9jZXJ0IiwKLSAgICAgICAgICAg
ICkKLQotICAgIGlmIGNhZmlsZSBpcyBub3QgTm9uZSBvciBjYXBhdGggaXMgbm90IE5vbmU6Ci0g
ICAgICAgIG9wZW5zc2xfYXNzZXJ0KAotICAgICAgICAgICAgbGliLlg1MDlfU1RPUkVfbG9hZF9s
b2NhdGlvbnMoCi0gICAgICAgICAgICAgICAgc3RvcmUsIG9wZW5zc2xfZW5jb2RlX3BhdGgoY2Fm
aWxlKSwgb3BlbnNzbF9lbmNvZGVfcGF0aChjYXBhdGgpCi0gICAgICAgICAgICApLAotICAgICAg
ICAgICAgIlg1MDlfU1RPUkVfbG9hZF9sb2NhdGlvbnMiLAotICAgICAgICApCi0KLSAgICBjaGFp
bl9zdGFjayA9IGxpYi5za19YNTA5X25ld19udWxsKCkKLSAgICBvcGVuc3NsX2Fzc2VydChjaGFp
bl9zdGFjayAhPSBmZmkuTlVMTCwgInNrX1g1MDlfbmV3X251bGwiKQotICAgIGNoYWluX3N0YWNr
ID0gZmZpLmdjKGNoYWluX3N0YWNrLCBsaWIuc2tfWDUwOV9mcmVlKQotICAgIGZvciBjZXJ0IGlu
IGNoYWluOgotICAgICAgICBvcGVuc3NsX2Fzc2VydCgKLSAgICAgICAgICAgIGxpYi5za19YNTA5
X3B1c2goY2hhaW5fc3RhY2ssIGNlcnRfeDUwOV9wdHIoY2VydCkpLCAic2tfWDUwOV9wdXNoIgot
ICAgICAgICApCi0KLSAgICBzdG9yZV9jdHggPSBsaWIuWDUwOV9TVE9SRV9DVFhfbmV3KCkKLSAg
ICBvcGVuc3NsX2Fzc2VydChzdG9yZV9jdHggIT0gZmZpLk5VTEwsICJYNTA5X1NUT1JFX0NUWF9u
ZXciKQotICAgIHN0b3JlX2N0eCA9IGZmaS5nYyhzdG9yZV9jdHgsIGxpYi5YNTA5X1NUT1JFX0NU
WF9mcmVlKQotICAgIG9wZW5zc2xfYXNzZXJ0KAotICAgICAgICBsaWIuWDUwOV9TVE9SRV9DVFhf
aW5pdCgKLSAgICAgICAgICAgIHN0b3JlX2N0eCwgc3RvcmUsIGNlcnRfeDUwOV9wdHIoY2VydGlm
aWNhdGUpLCBjaGFpbl9zdGFjawotICAgICAgICApLAotICAgICAgICAiWDUwOV9TVE9SRV9DVFhf
aW5pdCIsCi0gICAgKQotCi0gICAgcmVzID0gbGliLlg1MDlfdmVyaWZ5X2NlcnQoc3RvcmVfY3R4
KQotICAgIGlmIG5vdCByZXM6Ci0gICAgICAgIGVyciA9IGxpYi5YNTA5X1NUT1JFX0NUWF9nZXRf
ZXJyb3Ioc3RvcmVfY3R4KQotICAgICAgICBlcnJfc3RyID0gb3BlbnNzbF9kZWNvZGVfc3RyaW5n
KGxpYi5YNTA5X3ZlcmlmeV9jZXJ0X2Vycm9yX3N0cmluZyhlcnIpKQotICAgICAgICByYWlzZSBB
bGVydEJhZENlcnRpZmljYXRlKGVycl9zdHIpCi0KLQotY2xhc3MgQ2lwaGVyU3VpdGUoSW50RW51
bSk6Ci0gICAgQUVTXzEyOF9HQ01fU0hBMjU2ID0gMHgxMzAxCi0gICAgQUVTXzI1Nl9HQ01fU0hB
Mzg0ID0gMHgxMzAyCi0gICAgQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2ID0gMHgxMzAzCi0gICAg
RU1QVFlfUkVORUdPVElBVElPTl9JTkZPX1NDU1YgPSAweDAwRkYKLQotCi1jbGFzcyBDb21wcmVz
c2lvbk1ldGhvZChJbnRFbnVtKToKLSAgICBOVUxMID0gMAotCi0KLWNsYXNzIEV4dGVuc2lvblR5
cGUoSW50RW51bSk6Ci0gICAgU0VSVkVSX05BTUUgPSAwCi0gICAgU1RBVFVTX1JFUVVFU1QgPSA1
Ci0gICAgU1VQUE9SVEVEX0dST1VQUyA9IDEwCi0gICAgU0lHTkFUVVJFX0FMR09SSVRITVMgPSAx
MwotICAgIEFMUE4gPSAxNgotICAgIENPTVBSRVNTX0NFUlRJRklDQVRFID0gMjcKLSAgICBQUkVf
U0hBUkVEX0tFWSA9IDQxCi0gICAgRUFSTFlfREFUQSA9IDQyCi0gICAgU1VQUE9SVEVEX1ZFUlNJ
T05TID0gNDMKLSAgICBDT09LSUUgPSA0NAotICAgIFBTS19LRVlfRVhDSEFOR0VfTU9ERVMgPSA0
NQotICAgIEtFWV9TSEFSRSA9IDUxCi0gICAgUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUyA9IDY1
NDQ1Ci0gICAgRU5DUllQVEVEX1NFUlZFUl9OQU1FID0gNjU0ODYKLQotCi1jbGFzcyBHcm91cChJ
bnRFbnVtKToKLSAgICBTRUNQMjU2UjEgPSAweDAwMTcKLSAgICBTRUNQMzg0UjEgPSAweDAwMTgK
LSAgICBTRUNQNTIxUjEgPSAweDAwMTkKLSAgICBYMjU1MTkgPSAweDAwMUQKLSAgICBYNDQ4ID0g
MHgwMDFFCi0gICAgR1JFQVNFID0gMHhBQUFBCi0KLQotY2xhc3MgSGFuZHNoYWtlVHlwZShJbnRF
bnVtKToKLSAgICBDTElFTlRfSEVMTE8gPSAxCi0gICAgU0VSVkVSX0hFTExPID0gMgotICAgIE5F
V19TRVNTSU9OX1RJQ0tFVCA9IDQKLSAgICBFTkRfT0ZfRUFSTFlfREFUQSA9IDUKLSAgICBFTkNS
WVBURURfRVhURU5TSU9OUyA9IDgKLSAgICBDRVJUSUZJQ0FURSA9IDExCi0gICAgQ0VSVElGSUNB
VEVfUkVRVUVTVCA9IDEzCi0gICAgQ0VSVElGSUNBVEVfVkVSSUZZID0gMTUKLSAgICBGSU5JU0hF
RCA9IDIwCi0gICAgS0VZX1VQREFURSA9IDI0Ci0gICAgQ09NUFJFU1NFRF9DRVJUSUZJQ0FURSA9
IDI1Ci0gICAgTUVTU0FHRV9IQVNIID0gMjU0Ci0KLQotY2xhc3MgUHNrS2V5RXhjaGFuZ2VNb2Rl
KEludEVudW0pOgotICAgIFBTS19LRSA9IDAKLSAgICBQU0tfREhFX0tFID0gMQotCi0KLWNsYXNz
IFNpZ25hdHVyZUFsZ29yaXRobShJbnRFbnVtKToKLSAgICBFQ0RTQV9TRUNQMjU2UjFfU0hBMjU2
ID0gMHgwNDAzCi0gICAgRUNEU0FfU0VDUDM4NFIxX1NIQTM4NCA9IDB4MDUwMwotICAgIEVDRFNB
X1NFQ1A1MjFSMV9TSEE1MTIgPSAweDA2MDMKLSAgICBFRDI1NTE5ID0gMHgwODA3Ci0gICAgRUQ0
NDggPSAweDA4MDgKLSAgICBSU0FfUEtDUzFfU0hBMjU2ID0gMHgwNDAxCi0gICAgUlNBX1BLQ1Mx
X1NIQTM4NCA9IDB4MDUwMQotICAgIFJTQV9QS0NTMV9TSEE1MTIgPSAweDA2MDEKLSAgICBSU0Ff
UFNTX1BTU19TSEEyNTYgPSAweDA4MDkKLSAgICBSU0FfUFNTX1BTU19TSEEzODQgPSAweDA4MEEK
LSAgICBSU0FfUFNTX1BTU19TSEE1MTIgPSAweDA4MEIKLSAgICBSU0FfUFNTX1JTQUVfU0hBMjU2
ID0gMHgwODA0Ci0gICAgUlNBX1BTU19SU0FFX1NIQTM4NCA9IDB4MDgwNQotICAgIFJTQV9QU1Nf
UlNBRV9TSEE1MTIgPSAweDA4MDYKLQotICAgICMgbGVnYWN5Ci0gICAgUlNBX1BLQ1MxX1NIQTEg
PSAweDAyMDEKLSAgICBTSEExX0RTQSA9IDB4MDIwMgotICAgIEVDRFNBX1NIQTEgPSAweDAyMDMK
LQotCi0jIEJMT0NLUwotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVmIHB1bGxfYmxvY2soYnVmOiBC
dWZmZXIsIGNhcGFjaXR5OiBpbnQpIC0+IEdlbmVyYXRvcjoKLSAgICBsZW5ndGggPSAwCi0gICAg
Zm9yIGIgaW4gYnVmLnB1bGxfYnl0ZXMoY2FwYWNpdHkpOgotICAgICAgICBsZW5ndGggPSAobGVu
Z3RoIDw8IDgpIHwgYgotICAgIGVuZCA9IGJ1Zi50ZWxsKCkgKyBsZW5ndGgKLSAgICB5aWVsZCBs
ZW5ndGgKLSAgICBhc3NlcnQgYnVmLnRlbGwoKSA9PSBlbmQKLQotCi1AY29udGV4dG1hbmFnZXIK
LWRlZiBwdXNoX2Jsb2NrKGJ1ZjogQnVmZmVyLCBjYXBhY2l0eTogaW50KSAtPiBHZW5lcmF0b3I6
Ci0gICAgIiIiCi0gICAgQ29udGV4dCBtYW5hZ2VyIHRvIHB1c2ggYSB2YXJpYWJsZS1sZW5ndGgg
YmxvY2ssIHdpdGggYGNhcGFjaXR5YCBieXRlcwotICAgIHRvIHdyaXRlIHRoZSBsZW5ndGguCi0g
ICAgIiIiCi0gICAgc3RhcnQgPSBidWYudGVsbCgpICsgY2FwYWNpdHkKLSAgICBidWYuc2Vlayhz
dGFydCkKLSAgICB5aWVsZAotICAgIGVuZCA9IGJ1Zi50ZWxsKCkKLSAgICBsZW5ndGggPSBlbmQg
LSBzdGFydAotICAgIHdoaWxlIGNhcGFjaXR5OgotICAgICAgICBidWYuc2VlayhzdGFydCAtIGNh
cGFjaXR5KQotICAgICAgICBidWYucHVzaF91aW50OCgobGVuZ3RoID4+ICg4ICogKGNhcGFjaXR5
IC0gMSkpKSAmIDB4RkYpCi0gICAgICAgIGNhcGFjaXR5IC09IDEKLSAgICBidWYuc2VlayhlbmQp
Ci0KLQotIyBMSVNUUwotCi0KLWRlZiBwdWxsX2xpc3QoYnVmOiBCdWZmZXIsIGNhcGFjaXR5OiBp
bnQsIGZ1bmM6IENhbGxhYmxlW1tdLCBUXSkgLT4gTGlzdFtUXToKLSAgICAiIiIKLSAgICBQdWxs
IGEgbGlzdCBvZiBpdGVtcy4KLSAgICAiIiIKLSAgICBpdGVtcyA9IFtdCi0gICAgd2l0aCBwdWxs
X2Jsb2NrKGJ1ZiwgY2FwYWNpdHkpIGFzIGxlbmd0aDoKLSAgICAgICAgZW5kID0gYnVmLnRlbGwo
KSArIGxlbmd0aAotICAgICAgICB3aGlsZSBidWYudGVsbCgpIDwgZW5kOgotICAgICAgICAgICAg
aXRlbXMuYXBwZW5kKGZ1bmMoKSkKLSAgICByZXR1cm4gaXRlbXMKLQotCi1kZWYgcHVzaF9saXN0
KAotICAgIGJ1ZjogQnVmZmVyLCBjYXBhY2l0eTogaW50LCBmdW5jOiBDYWxsYWJsZVtbVF0sIE5v
bmVdLCB2YWx1ZXM6IFNlcXVlbmNlW1RdCi0pIC0+IE5vbmU6Ci0gICAgIiIiCi0gICAgUHVzaCBh
IGxpc3Qgb2YgaXRlbXMuCi0gICAgIiIiCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgY2FwYWNp
dHkpOgotICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgotICAgICAgICAgICAgZnVuYyh2YWx1
ZSkKLQotCi1kZWYgcHVsbF9vcGFxdWUoYnVmOiBCdWZmZXIsIGNhcGFjaXR5OiBpbnQpIC0+IGJ5
dGVzOgotICAgICIiIgotICAgIFB1bGwgYW4gb3BhcXVlIHZhbHVlIHByZWZpeGVkIGJ5IGEgbGVu
Z3RoLgotICAgICIiIgotICAgIHdpdGggcHVsbF9ibG9jayhidWYsIGNhcGFjaXR5KSBhcyBsZW5n
dGg6Ci0gICAgICAgIHJldHVybiBidWYucHVsbF9ieXRlcyhsZW5ndGgpCi0KLQotZGVmIHB1c2hf
b3BhcXVlKGJ1ZjogQnVmZmVyLCBjYXBhY2l0eTogaW50LCB2YWx1ZTogYnl0ZXMpIC0+IE5vbmU6
Ci0gICAgIiIiCi0gICAgUHVzaCBhbiBvcGFxdWUgdmFsdWUgcHJlZml4IGJ5IGEgbGVuZ3RoLgot
ICAgICIiIgotICAgIHdpdGggcHVzaF9ibG9jayhidWYsIGNhcGFjaXR5KToKLSAgICAgICAgYnVm
LnB1c2hfYnl0ZXModmFsdWUpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYgcHVzaF9leHRlbnNp
b24oYnVmOiBCdWZmZXIsIGV4dGVuc2lvbl90eXBlOiBpbnQpIC0+IEdlbmVyYXRvcjoKLSAgICBi
dWYucHVzaF91aW50MTYoZXh0ZW5zaW9uX3R5cGUpCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1Ziwg
Mik6Ci0gICAgICAgIHlpZWxkCi0KLQotIyBLZXlTaGFyZUVudHJ5Ci0KLQotS2V5U2hhcmVFbnRy
eSA9IFR1cGxlW2ludCwgYnl0ZXNdCi0KLQotZGVmIHB1bGxfa2V5X3NoYXJlKGJ1ZjogQnVmZmVy
KSAtPiBLZXlTaGFyZUVudHJ5OgotICAgIGdyb3VwID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICBk
YXRhID0gcHVsbF9vcGFxdWUoYnVmLCAyKQotICAgIHJldHVybiAoZ3JvdXAsIGRhdGEpCi0KLQot
ZGVmIHB1c2hfa2V5X3NoYXJlKGJ1ZjogQnVmZmVyLCB2YWx1ZTogS2V5U2hhcmVFbnRyeSkgLT4g
Tm9uZToKLSAgICBidWYucHVzaF91aW50MTYodmFsdWVbMF0pCi0gICAgcHVzaF9vcGFxdWUoYnVm
LCAyLCB2YWx1ZVsxXSkKLQotCi0jIEFMUE4KLQotCi1kZWYgcHVsbF9hbHBuX3Byb3RvY29sKGJ1
ZjogQnVmZmVyKSAtPiBzdHI6Ci0gICAgcmV0dXJuIHB1bGxfb3BhcXVlKGJ1ZiwgMSkuZGVjb2Rl
KCJhc2NpaSIpCi0KLQotZGVmIHB1c2hfYWxwbl9wcm90b2NvbChidWY6IEJ1ZmZlciwgcHJvdG9j
b2w6IHN0cikgLT4gTm9uZToKLSAgICBwdXNoX29wYXF1ZShidWYsIDEsIHByb3RvY29sLmVuY29k
ZSgiYXNjaWkiKSkKLQotCi0jIFBSRSBTSEFSRUQgS0VZCi0KLVBza0lkZW50aXR5ID0gVHVwbGVb
Ynl0ZXMsIGludF0KLQotCi1kZWYgcHVsbF9wc2tfaWRlbnRpdHkoYnVmOiBCdWZmZXIpIC0+IFBz
a0lkZW50aXR5OgotICAgIGlkZW50aXR5ID0gcHVsbF9vcGFxdWUoYnVmLCAyKQotICAgIG9iZnVz
Y2F0ZWRfdGlja2V0X2FnZSA9IGJ1Zi5wdWxsX3VpbnQzMigpCi0gICAgcmV0dXJuIChpZGVudGl0
eSwgb2JmdXNjYXRlZF90aWNrZXRfYWdlKQotCi0KLWRlZiBwdXNoX3Bza19pZGVudGl0eShidWY6
IEJ1ZmZlciwgZW50cnk6IFBza0lkZW50aXR5KSAtPiBOb25lOgotICAgIHB1c2hfb3BhcXVlKGJ1
ZiwgMiwgZW50cnlbMF0pCi0gICAgYnVmLnB1c2hfdWludDMyKGVudHJ5WzFdKQotCi0KLWRlZiBw
dWxsX3Bza19iaW5kZXIoYnVmOiBCdWZmZXIpIC0+IGJ5dGVzOgotICAgIHJldHVybiBwdWxsX29w
YXF1ZShidWYsIDEpCi0KLQotZGVmIHB1c2hfcHNrX2JpbmRlcihidWY6IEJ1ZmZlciwgYmluZGVy
OiBieXRlcykgLT4gTm9uZToKLSAgICBwdXNoX29wYXF1ZShidWYsIDEsIGJpbmRlcikKLQotCi0j
IE1FU1NBR0VTCi0KLUV4dGVuc2lvbiA9IFR1cGxlW2ludCwgYnl0ZXNdCi0KLQotQGRhdGFjbGFz
cwotY2xhc3MgT2ZmZXJlZFBza3M6Ci0gICAgaWRlbnRpdGllczogTGlzdFtQc2tJZGVudGl0eV0K
LSAgICBiaW5kZXJzOiBMaXN0W2J5dGVzXQotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIENsaWVudEhl
bGxvOgotICAgIHJhbmRvbTogYnl0ZXMKLSAgICBsZWdhY3lfc2Vzc2lvbl9pZDogYnl0ZXMKLSAg
ICBjaXBoZXJfc3VpdGVzOiBMaXN0W2ludF0KLSAgICBsZWdhY3lfY29tcHJlc3Npb25fbWV0aG9k
czogTGlzdFtpbnRdCi0KLSAgICAjIGV4dGVuc2lvbnMKLSAgICBhbHBuX3Byb3RvY29sczogT3B0
aW9uYWxbTGlzdFtzdHJdXSA9IE5vbmUKLSAgICBlYXJseV9kYXRhOiBib29sID0gRmFsc2UKLSAg
ICBrZXlfc2hhcmU6IE9wdGlvbmFsW0xpc3RbS2V5U2hhcmVFbnRyeV1dID0gTm9uZQotICAgIHBy
ZV9zaGFyZWRfa2V5OiBPcHRpb25hbFtPZmZlcmVkUHNrc10gPSBOb25lCi0gICAgcHNrX2tleV9l
eGNoYW5nZV9tb2RlczogT3B0aW9uYWxbTGlzdFtpbnRdXSA9IE5vbmUKLSAgICBzZXJ2ZXJfbmFt
ZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUKLSAgICBzaWduYXR1cmVfYWxnb3JpdGhtczogT3B0aW9u
YWxbTGlzdFtpbnRdXSA9IE5vbmUKLSAgICBzdXBwb3J0ZWRfZ3JvdXBzOiBPcHRpb25hbFtMaXN0
W2ludF1dID0gTm9uZQotICAgIHN1cHBvcnRlZF92ZXJzaW9uczogT3B0aW9uYWxbTGlzdFtpbnRd
XSA9IE5vbmUKLQotICAgIG90aGVyX2V4dGVuc2lvbnM6IExpc3RbRXh0ZW5zaW9uXSA9IGZpZWxk
KGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0KLWRlZiBwdWxsX2NsaWVudF9oZWxsbyhidWY6IEJ1
ZmZlcikgLT4gQ2xpZW50SGVsbG86Ci0gICAgYXNzZXJ0IGJ1Zi5wdWxsX3VpbnQ4KCkgPT0gSGFu
ZHNoYWtlVHlwZS5DTElFTlRfSEVMTE8KLSAgICB3aXRoIHB1bGxfYmxvY2soYnVmLCAzKToKLSAg
ICAgICAgYXNzZXJ0IGJ1Zi5wdWxsX3VpbnQxNigpID09IFRMU19WRVJTSU9OXzFfMgotCi0gICAg
ICAgIGhlbGxvID0gQ2xpZW50SGVsbG8oCi0gICAgICAgICAgICByYW5kb209YnVmLnB1bGxfYnl0
ZXMoMzIpLAotICAgICAgICAgICAgbGVnYWN5X3Nlc3Npb25faWQ9cHVsbF9vcGFxdWUoYnVmLCAx
KSwKLSAgICAgICAgICAgIGNpcGhlcl9zdWl0ZXM9cHVsbF9saXN0KGJ1ZiwgMiwgYnVmLnB1bGxf
dWludDE2KSwKLSAgICAgICAgICAgIGxlZ2FjeV9jb21wcmVzc2lvbl9tZXRob2RzPXB1bGxfbGlz
dChidWYsIDEsIGJ1Zi5wdWxsX3VpbnQ4KSwKLSAgICAgICAgKQotCi0gICAgICAgICMgZXh0ZW5z
aW9ucwotICAgICAgICBhZnRlcl9wc2sgPSBGYWxzZQotCi0gICAgICAgIGRlZiBwdWxsX2V4dGVu
c2lvbigpIC0+IE5vbmU6Ci0gICAgICAgICAgICAjIHByZV9zaGFyZWRfa2V5IE1VU1QgYmUgbGFz
dAotICAgICAgICAgICAgbm9ubG9jYWwgYWZ0ZXJfcHNrCi0gICAgICAgICAgICBhc3NlcnQgbm90
IGFmdGVyX3BzawotCi0gICAgICAgICAgICBleHRlbnNpb25fdHlwZSA9IGJ1Zi5wdWxsX3VpbnQx
NigpCi0gICAgICAgICAgICBleHRlbnNpb25fbGVuZ3RoID0gYnVmLnB1bGxfdWludDE2KCkKLSAg
ICAgICAgICAgIGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuS0VZX1NIQVJFOgot
ICAgICAgICAgICAgICAgIGhlbGxvLmtleV9zaGFyZSA9IHB1bGxfbGlzdChidWYsIDIsIHBhcnRp
YWwocHVsbF9rZXlfc2hhcmUsIGJ1ZikpCi0gICAgICAgICAgICBlbGlmIGV4dGVuc2lvbl90eXBl
ID09IEV4dGVuc2lvblR5cGUuU1VQUE9SVEVEX1ZFUlNJT05TOgotICAgICAgICAgICAgICAgIGhl
bGxvLnN1cHBvcnRlZF92ZXJzaW9ucyA9IHB1bGxfbGlzdChidWYsIDEsIGJ1Zi5wdWxsX3VpbnQx
NikKLSAgICAgICAgICAgIGVsaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5TSUdO
QVRVUkVfQUxHT1JJVEhNUzoKLSAgICAgICAgICAgICAgICBoZWxsby5zaWduYXR1cmVfYWxnb3Jp
dGhtcyA9IHB1bGxfbGlzdChidWYsIDIsIGJ1Zi5wdWxsX3VpbnQxNikKLSAgICAgICAgICAgIGVs
aWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5TVVBQT1JURURfR1JPVVBTOgotICAg
ICAgICAgICAgICAgIGhlbGxvLnN1cHBvcnRlZF9ncm91cHMgPSBwdWxsX2xpc3QoYnVmLCAyLCBi
dWYucHVsbF91aW50MTYpCi0gICAgICAgICAgICBlbGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVu
c2lvblR5cGUuUFNLX0tFWV9FWENIQU5HRV9NT0RFUzoKLSAgICAgICAgICAgICAgICBoZWxsby5w
c2tfa2V5X2V4Y2hhbmdlX21vZGVzID0gcHVsbF9saXN0KGJ1ZiwgMSwgYnVmLnB1bGxfdWludDgp
Ci0gICAgICAgICAgICBlbGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuU0VSVkVS
X05BTUU6Ci0gICAgICAgICAgICAgICAgd2l0aCBwdWxsX2Jsb2NrKGJ1ZiwgMik6Ci0gICAgICAg
ICAgICAgICAgICAgIGFzc2VydCBidWYucHVsbF91aW50OCgpID09IDAKLSAgICAgICAgICAgICAg
ICAgICAgaGVsbG8uc2VydmVyX25hbWUgPSBwdWxsX29wYXF1ZShidWYsIDIpLmRlY29kZSgiYXNj
aWkiKQotICAgICAgICAgICAgZWxpZiBleHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLkFM
UE46Ci0gICAgICAgICAgICAgICAgaGVsbG8uYWxwbl9wcm90b2NvbHMgPSBwdWxsX2xpc3QoCi0g
ICAgICAgICAgICAgICAgICAgIGJ1ZiwgMiwgcGFydGlhbChwdWxsX2FscG5fcHJvdG9jb2wsIGJ1
ZikKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbGlmIGV4dGVuc2lvbl90eXBlID09
IEV4dGVuc2lvblR5cGUuRUFSTFlfREFUQToKLSAgICAgICAgICAgICAgICBoZWxsby5lYXJseV9k
YXRhID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBleHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25U
eXBlLlBSRV9TSEFSRURfS0VZOgotICAgICAgICAgICAgICAgIGhlbGxvLnByZV9zaGFyZWRfa2V5
ID0gT2ZmZXJlZFBza3MoCi0gICAgICAgICAgICAgICAgICAgIGlkZW50aXRpZXM9cHVsbF9saXN0
KGJ1ZiwgMiwgcGFydGlhbChwdWxsX3Bza19pZGVudGl0eSwgYnVmKSksCi0gICAgICAgICAgICAg
ICAgICAgIGJpbmRlcnM9cHVsbF9saXN0KGJ1ZiwgMiwgcGFydGlhbChwdWxsX3Bza19iaW5kZXIs
IGJ1ZikpLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBhZnRlcl9wc2sgPSBU
cnVlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGhlbGxvLm90aGVyX2V4dGVu
c2lvbnMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAoZXh0ZW5zaW9uX3R5cGUsIGJ1Zi5w
dWxsX2J5dGVzKGV4dGVuc2lvbl9sZW5ndGgpKQotICAgICAgICAgICAgICAgICkKLQotICAgICAg
ICBwdWxsX2xpc3QoYnVmLCAyLCBwdWxsX2V4dGVuc2lvbikKLQotICAgIHJldHVybiBoZWxsbwot
Ci0KLWRlZiBwdXNoX2NsaWVudF9oZWxsbyhidWY6IEJ1ZmZlciwgaGVsbG86IENsaWVudEhlbGxv
KSAtPiBOb25lOgotICAgIGJ1Zi5wdXNoX3VpbnQ4KEhhbmRzaGFrZVR5cGUuQ0xJRU5UX0hFTExP
KQotICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDMpOgotICAgICAgICBidWYucHVzaF91aW50MTYo
VExTX1ZFUlNJT05fMV8yKQotICAgICAgICBidWYucHVzaF9ieXRlcyhoZWxsby5yYW5kb20pCi0g
ICAgICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMSwgaGVsbG8ubGVnYWN5X3Nlc3Npb25faWQpCi0gICAg
ICAgIHB1c2hfbGlzdChidWYsIDIsIGJ1Zi5wdXNoX3VpbnQxNiwgaGVsbG8uY2lwaGVyX3N1aXRl
cykKLSAgICAgICAgcHVzaF9saXN0KGJ1ZiwgMSwgYnVmLnB1c2hfdWludDgsIGhlbGxvLmxlZ2Fj
eV9jb21wcmVzc2lvbl9tZXRob2RzKQotCi0gICAgICAgICMgZXh0ZW5zaW9ucwotICAgICAgICB3
aXRoIHB1c2hfYmxvY2soYnVmLCAyKToKLSAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24o
YnVmLCBFeHRlbnNpb25UeXBlLktFWV9TSEFSRSk6Ci0gICAgICAgICAgICAgICAgcHVzaF9saXN0
KGJ1ZiwgMiwgcGFydGlhbChwdXNoX2tleV9zaGFyZSwgYnVmKSwgaGVsbG8ua2V5X3NoYXJlKQot
Ci0gICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5TVVBQ
T1JURURfVkVSU0lPTlMpOgotICAgICAgICAgICAgICAgIHB1c2hfbGlzdChidWYsIDEsIGJ1Zi5w
dXNoX3VpbnQxNiwgaGVsbG8uc3VwcG9ydGVkX3ZlcnNpb25zKQotCi0gICAgICAgICAgICB3aXRo
IHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5TSUdOQVRVUkVfQUxHT1JJVEhNUyk6
Ci0gICAgICAgICAgICAgICAgcHVzaF9saXN0KGJ1ZiwgMiwgYnVmLnB1c2hfdWludDE2LCBoZWxs
by5zaWduYXR1cmVfYWxnb3JpdGhtcykKLQotICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lv
bihidWYsIEV4dGVuc2lvblR5cGUuU1VQUE9SVEVEX0dST1VQUyk6Ci0gICAgICAgICAgICAgICAg
cHVzaF9saXN0KGJ1ZiwgMiwgYnVmLnB1c2hfdWludDE2LCBoZWxsby5zdXBwb3J0ZWRfZ3JvdXBz
KQotCi0gICAgICAgICAgICBpZiBoZWxsby5wc2tfa2V5X2V4Y2hhbmdlX21vZGVzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBFeHRlbnNpb25U
eXBlLlBTS19LRVlfRVhDSEFOR0VfTU9ERVMpOgotICAgICAgICAgICAgICAgICAgICBwdXNoX2xp
c3QoYnVmLCAxLCBidWYucHVzaF91aW50OCwgaGVsbG8ucHNrX2tleV9leGNoYW5nZV9tb2RlcykK
LQotICAgICAgICAgICAgaWYgaGVsbG8uc2VydmVyX25hbWUgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuU0VSVkVSX05B
TUUpOgotICAgICAgICAgICAgICAgICAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCAyKToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoX29wYXF1ZShidWYsIDIsIGhlbGxvLnNlcnZlcl9uYW1lLmVuY29kZSgiYXNjaWki
KSkKLQotICAgICAgICAgICAgaWYgaGVsbG8uYWxwbl9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuQUxQ
Tik6Ci0gICAgICAgICAgICAgICAgICAgIHB1c2hfbGlzdCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJ1ZiwgMiwgcGFydGlhbChwdXNoX2FscG5fcHJvdG9jb2wsIGJ1ZiksIGhlbGxvLmFscG5f
cHJvdG9jb2xzCi0gICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgZm9yIGV4dGVu
c2lvbl90eXBlLCBleHRlbnNpb25fdmFsdWUgaW4gaGVsbG8ub3RoZXJfZXh0ZW5zaW9uczoKLSAg
ICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgZXh0ZW5zaW9uX3R5cGUpOgot
ICAgICAgICAgICAgICAgICAgICBidWYucHVzaF9ieXRlcyhleHRlbnNpb25fdmFsdWUpCi0KLSAg
ICAgICAgICAgIGlmIGhlbGxvLmVhcmx5X2RhdGE6Ci0gICAgICAgICAgICAgICAgd2l0aCBwdXNo
X2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuRUFSTFlfREFUQSk6Ci0gICAgICAgICAgICAg
ICAgICAgIHBhc3MKLQotICAgICAgICAgICAgIyBwcmVfc2hhcmVkX2tleSBNVVNUIGJlIGxhc3QK
LSAgICAgICAgICAgIGlmIGhlbGxvLnByZV9zaGFyZWRfa2V5IGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBFeHRlbnNpb25UeXBlLlBSRV9TSEFS
RURfS0VZKToKLSAgICAgICAgICAgICAgICAgICAgcHVzaF9saXN0KAotICAgICAgICAgICAgICAg
ICAgICAgICAgYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgMiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcnRpYWwocHVzaF9wc2tfaWRlbnRpdHksIGJ1ZiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBoZWxsby5wcmVfc2hhcmVkX2tleS5pZGVudGl0aWVzLAotICAgICAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIHB1c2hfbGlzdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgIDIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwYXJ0aWFsKHB1c2hfcHNrX2JpbmRlciwgYnVmKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbGxvLnByZV9zaGFyZWRfa2V5LmJpbmRlcnMsCi0gICAgICAgICAgICAgICAg
ICAgICkKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBTZXJ2ZXJIZWxsbzoKLSAgICByYW5kb206IGJ5
dGVzCi0gICAgbGVnYWN5X3Nlc3Npb25faWQ6IGJ5dGVzCi0gICAgY2lwaGVyX3N1aXRlOiBpbnQK
LSAgICBjb21wcmVzc2lvbl9tZXRob2Q6IGludAotCi0gICAgIyBleHRlbnNpb25zCi0gICAga2V5
X3NoYXJlOiBPcHRpb25hbFtLZXlTaGFyZUVudHJ5XSA9IE5vbmUKLSAgICBwcmVfc2hhcmVkX2tl
eTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBzdXBwb3J0ZWRfdmVyc2lvbjogT3B0aW9uYWxb
aW50XSA9IE5vbmUKLSAgICBvdGhlcl9leHRlbnNpb25zOiBMaXN0W1R1cGxlW2ludCwgYnl0ZXNd
XSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0KLWRlZiBwdWxsX3NlcnZlcl9oZWxs
byhidWY6IEJ1ZmZlcikgLT4gU2VydmVySGVsbG86Ci0gICAgYXNzZXJ0IGJ1Zi5wdWxsX3VpbnQ4
KCkgPT0gSGFuZHNoYWtlVHlwZS5TRVJWRVJfSEVMTE8KLSAgICB3aXRoIHB1bGxfYmxvY2soYnVm
LCAzKToKLSAgICAgICAgYXNzZXJ0IGJ1Zi5wdWxsX3VpbnQxNigpID09IFRMU19WRVJTSU9OXzFf
MgotCi0gICAgICAgIGhlbGxvID0gU2VydmVySGVsbG8oCi0gICAgICAgICAgICByYW5kb209YnVm
LnB1bGxfYnl0ZXMoMzIpLAotICAgICAgICAgICAgbGVnYWN5X3Nlc3Npb25faWQ9cHVsbF9vcGFx
dWUoYnVmLCAxKSwKLSAgICAgICAgICAgIGNpcGhlcl9zdWl0ZT1idWYucHVsbF91aW50MTYoKSwK
LSAgICAgICAgICAgIGNvbXByZXNzaW9uX21ldGhvZD1idWYucHVsbF91aW50OCgpLAotICAgICAg
ICApCi0KLSAgICAgICAgIyBleHRlbnNpb25zCi0gICAgICAgIGRlZiBwdWxsX2V4dGVuc2lvbigp
IC0+IE5vbmU6Ci0gICAgICAgICAgICBleHRlbnNpb25fdHlwZSA9IGJ1Zi5wdWxsX3VpbnQxNigp
Ci0gICAgICAgICAgICBleHRlbnNpb25fbGVuZ3RoID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICAg
ICAgICAgIGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuU1VQUE9SVEVEX1ZFUlNJ
T05TOgotICAgICAgICAgICAgICAgIGhlbGxvLnN1cHBvcnRlZF92ZXJzaW9uID0gYnVmLnB1bGxf
dWludDE2KCkKLSAgICAgICAgICAgIGVsaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlw
ZS5LRVlfU0hBUkU6Ci0gICAgICAgICAgICAgICAgaGVsbG8ua2V5X3NoYXJlID0gcHVsbF9rZXlf
c2hhcmUoYnVmKQotICAgICAgICAgICAgZWxpZiBleHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25U
eXBlLlBSRV9TSEFSRURfS0VZOgotICAgICAgICAgICAgICAgIGhlbGxvLnByZV9zaGFyZWRfa2V5
ID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
aGVsbG8ub3RoZXJfZXh0ZW5zaW9ucy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgIChleHRl
bnNpb25fdHlwZSwgYnVmLnB1bGxfYnl0ZXMoZXh0ZW5zaW9uX2xlbmd0aCkpCi0gICAgICAgICAg
ICAgICAgKQotCi0gICAgICAgIHB1bGxfbGlzdChidWYsIDIsIHB1bGxfZXh0ZW5zaW9uKQotCi0g
ICAgcmV0dXJuIGhlbGxvCi0KLQotZGVmIHB1c2hfc2VydmVyX2hlbGxvKGJ1ZjogQnVmZmVyLCBo
ZWxsbzogU2VydmVySGVsbG8pIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hfdWludDgoSGFuZHNoYWtl
VHlwZS5TRVJWRVJfSEVMTE8pCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgMyk6Ci0gICAgICAg
IGJ1Zi5wdXNoX3VpbnQxNihUTFNfVkVSU0lPTl8xXzIpCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVz
KGhlbGxvLnJhbmRvbSkKLQotICAgICAgICBwdXNoX29wYXF1ZShidWYsIDEsIGhlbGxvLmxlZ2Fj
eV9zZXNzaW9uX2lkKQotICAgICAgICBidWYucHVzaF91aW50MTYoaGVsbG8uY2lwaGVyX3N1aXRl
KQotICAgICAgICBidWYucHVzaF91aW50OChoZWxsby5jb21wcmVzc2lvbl9tZXRob2QpCi0KLSAg
ICAgICAgIyBleHRlbnNpb25zCi0gICAgICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDIpOgotICAg
ICAgICAgICAgaWYgaGVsbG8uc3VwcG9ydGVkX3ZlcnNpb24gaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuU1VQUE9SVEVE
X1ZFUlNJT05TKToKLSAgICAgICAgICAgICAgICAgICAgYnVmLnB1c2hfdWludDE2KGhlbGxvLnN1
cHBvcnRlZF92ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBoZWxsby5rZXlfc2hhcmUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lv
blR5cGUuS0VZX1NIQVJFKToKLSAgICAgICAgICAgICAgICAgICAgcHVzaF9rZXlfc2hhcmUoYnVm
LCBoZWxsby5rZXlfc2hhcmUpCi0KLSAgICAgICAgICAgIGlmIGhlbGxvLnByZV9zaGFyZWRfa2V5
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBF
eHRlbnNpb25UeXBlLlBSRV9TSEFSRURfS0VZKToKLSAgICAgICAgICAgICAgICAgICAgYnVmLnB1
c2hfdWludDE2KGhlbGxvLnByZV9zaGFyZWRfa2V5KQotCi0gICAgICAgICAgICBmb3IgZXh0ZW5z
aW9uX3R5cGUsIGV4dGVuc2lvbl92YWx1ZSBpbiBoZWxsby5vdGhlcl9leHRlbnNpb25zOgotICAg
ICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBleHRlbnNpb25fdHlwZSk6Ci0g
ICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGV4dGVuc2lvbl92YWx1ZSkKLQotCi1A
ZGF0YWNsYXNzCi1jbGFzcyBOZXdTZXNzaW9uVGlja2V0OgotICAgIHRpY2tldF9saWZldGltZTog
aW50ID0gMAotICAgIHRpY2tldF9hZ2VfYWRkOiBpbnQgPSAwCi0gICAgdGlja2V0X25vbmNlOiBi
eXRlcyA9IGIiIgotICAgIHRpY2tldDogYnl0ZXMgPSBiIiIKLQotICAgICMgZXh0ZW5zaW9ucwot
ICAgIG1heF9lYXJseV9kYXRhX3NpemU6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgb3RoZXJf
ZXh0ZW5zaW9uczogTGlzdFtUdXBsZVtpbnQsIGJ5dGVzXV0gPSBmaWVsZChkZWZhdWx0X2ZhY3Rv
cnk9bGlzdCkKLQotCi1kZWYgcHVsbF9uZXdfc2Vzc2lvbl90aWNrZXQoYnVmOiBCdWZmZXIpIC0+
IE5ld1Nlc3Npb25UaWNrZXQ6Ci0gICAgbmV3X3Nlc3Npb25fdGlja2V0ID0gTmV3U2Vzc2lvblRp
Y2tldCgpCi0KLSAgICBhc3NlcnQgYnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLk5F
V19TRVNTSU9OX1RJQ0tFVAotICAgIHdpdGggcHVsbF9ibG9jayhidWYsIDMpOgotICAgICAgICBu
ZXdfc2Vzc2lvbl90aWNrZXQudGlja2V0X2xpZmV0aW1lID0gYnVmLnB1bGxfdWludDMyKCkKLSAg
ICAgICAgbmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldF9hZ2VfYWRkID0gYnVmLnB1bGxfdWludDMy
KCkKLSAgICAgICAgbmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldF9ub25jZSA9IHB1bGxfb3BhcXVl
KGJ1ZiwgMSkKLSAgICAgICAgbmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldCA9IHB1bGxfb3BhcXVl
KGJ1ZiwgMikKLQotICAgICAgICBkZWYgcHVsbF9leHRlbnNpb24oKSAtPiBOb25lOgotICAgICAg
ICAgICAgZXh0ZW5zaW9uX3R5cGUgPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgZXh0
ZW5zaW9uX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnQxNigpCi0gICAgICAgICAgICBpZiBleHRlbnNp
b25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLkVBUkxZX0RBVEE6Ci0gICAgICAgICAgICAgICAgbmV3
X3Nlc3Npb25fdGlja2V0Lm1heF9lYXJseV9kYXRhX3NpemUgPSBidWYucHVsbF91aW50MzIoKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBuZXdfc2Vzc2lvbl90aWNrZXQub3Ro
ZXJfZXh0ZW5zaW9ucy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgIChleHRlbnNpb25fdHlw
ZSwgYnVmLnB1bGxfYnl0ZXMoZXh0ZW5zaW9uX2xlbmd0aCkpCi0gICAgICAgICAgICAgICAgKQot
Ci0gICAgICAgIHB1bGxfbGlzdChidWYsIDIsIHB1bGxfZXh0ZW5zaW9uKQotCi0gICAgcmV0dXJu
IG5ld19zZXNzaW9uX3RpY2tldAotCi0KLWRlZiBwdXNoX25ld19zZXNzaW9uX3RpY2tldChidWY6
IEJ1ZmZlciwgbmV3X3Nlc3Npb25fdGlja2V0OiBOZXdTZXNzaW9uVGlja2V0KSAtPiBOb25lOgot
ICAgIGJ1Zi5wdXNoX3VpbnQ4KEhhbmRzaGFrZVR5cGUuTkVXX1NFU1NJT05fVElDS0VUKQotICAg
IHdpdGggcHVzaF9ibG9jayhidWYsIDMpOgotICAgICAgICBidWYucHVzaF91aW50MzIobmV3X3Nl
c3Npb25fdGlja2V0LnRpY2tldF9saWZldGltZSkKLSAgICAgICAgYnVmLnB1c2hfdWludDMyKG5l
d19zZXNzaW9uX3RpY2tldC50aWNrZXRfYWdlX2FkZCkKLSAgICAgICAgcHVzaF9vcGFxdWUoYnVm
LCAxLCBuZXdfc2Vzc2lvbl90aWNrZXQudGlja2V0X25vbmNlKQotICAgICAgICBwdXNoX29wYXF1
ZShidWYsIDIsIG5ld19zZXNzaW9uX3RpY2tldC50aWNrZXQpCi0KLSAgICAgICAgd2l0aCBwdXNo
X2Jsb2NrKGJ1ZiwgMik6Ci0gICAgICAgICAgICBpZiBuZXdfc2Vzc2lvbl90aWNrZXQubWF4X2Vh
cmx5X2RhdGFfc2l6ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0
ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5FQVJMWV9EQVRBKToKLSAgICAgICAgICAgICAgICAg
ICAgYnVmLnB1c2hfdWludDMyKG5ld19zZXNzaW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXpl
KQotCi0gICAgICAgICAgICBmb3IgZXh0ZW5zaW9uX3R5cGUsIGV4dGVuc2lvbl92YWx1ZSBpbiBu
ZXdfc2Vzc2lvbl90aWNrZXQub3RoZXJfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgICAgICB3aXRo
IHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgZXh0ZW5zaW9uX3R5cGUpOgotICAgICAgICAgICAgICAgICAg
ICBidWYucHVzaF9ieXRlcyhleHRlbnNpb25fdmFsdWUpCi0KLQotQGRhdGFjbGFzcwotY2xhc3Mg
RW5jcnlwdGVkRXh0ZW5zaW9uczoKLSAgICBhbHBuX3Byb3RvY29sOiBPcHRpb25hbFtzdHJdID0g
Tm9uZQotICAgIGVhcmx5X2RhdGE6IGJvb2wgPSBGYWxzZQotCi0gICAgb3RoZXJfZXh0ZW5zaW9u
czogTGlzdFtUdXBsZVtpbnQsIGJ5dGVzXV0gPSBmaWVsZChkZWZhdWx0X2ZhY3Rvcnk9bGlzdCkK
LQotCi1kZWYgcHVsbF9lbmNyeXB0ZWRfZXh0ZW5zaW9ucyhidWY6IEJ1ZmZlcikgLT4gRW5jcnlw
dGVkRXh0ZW5zaW9uczoKLSAgICBleHRlbnNpb25zID0gRW5jcnlwdGVkRXh0ZW5zaW9ucygpCi0K
LSAgICBhc3NlcnQgYnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLkVOQ1JZUFRFRF9F
WFRFTlNJT05TCi0gICAgd2l0aCBwdWxsX2Jsb2NrKGJ1ZiwgMyk6Ci0KLSAgICAgICAgZGVmIHB1
bGxfZXh0ZW5zaW9uKCkgLT4gTm9uZToKLSAgICAgICAgICAgIGV4dGVuc2lvbl90eXBlID0gYnVm
LnB1bGxfdWludDE2KCkKLSAgICAgICAgICAgIGV4dGVuc2lvbl9sZW5ndGggPSBidWYucHVsbF91
aW50MTYoKQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5B
TFBOOgotICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuYWxwbl9wcm90b2NvbCA9IHB1bGxfbGlz
dCgKLSAgICAgICAgICAgICAgICAgICAgYnVmLCAyLCBwYXJ0aWFsKHB1bGxfYWxwbl9wcm90b2Nv
bCwgYnVmKQotICAgICAgICAgICAgICAgIClbMF0KLSAgICAgICAgICAgIGVsaWYgZXh0ZW5zaW9u
X3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5FQVJMWV9EQVRBOgotICAgICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZWFybHlfZGF0YSA9IFRydWUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgZXh0ZW5zaW9ucy5vdGhlcl9leHRlbnNpb25zLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAg
ICAgKGV4dGVuc2lvbl90eXBlLCBidWYucHVsbF9ieXRlcyhleHRlbnNpb25fbGVuZ3RoKSkKLSAg
ICAgICAgICAgICAgICApCi0KLSAgICAgICAgcHVsbF9saXN0KGJ1ZiwgMiwgcHVsbF9leHRlbnNp
b24pCi0KLSAgICByZXR1cm4gZXh0ZW5zaW9ucwotCi0KLWRlZiBwdXNoX2VuY3J5cHRlZF9leHRl
bnNpb25zKGJ1ZjogQnVmZmVyLCBleHRlbnNpb25zOiBFbmNyeXB0ZWRFeHRlbnNpb25zKSAtPiBO
b25lOgotICAgIGJ1Zi5wdXNoX3VpbnQ4KEhhbmRzaGFrZVR5cGUuRU5DUllQVEVEX0VYVEVOU0lP
TlMpCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgMyk6Ci0gICAgICAgIHdpdGggcHVzaF9ibG9j
ayhidWYsIDIpOgotICAgICAgICAgICAgaWYgZXh0ZW5zaW9ucy5hbHBuX3Byb3RvY29sIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBFeHRlbnNp
b25UeXBlLkFMUE4pOgotICAgICAgICAgICAgICAgICAgICBwdXNoX2xpc3QoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgcGFydGlhbChwdXNoX2FscG5fcHJvdG9jb2wsIGJ1ZiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICBbZXh0ZW5zaW9ucy5hbHBuX3Byb3RvY29sXSwKLSAgICAgICAgICAg
ICAgICAgICAgKQotCi0gICAgICAgICAgICBpZiBleHRlbnNpb25zLmVhcmx5X2RhdGE6Ci0gICAg
ICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuRUFSTFlf
REFUQSk6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgZm9yIGV4dGVu
c2lvbl90eXBlLCBleHRlbnNpb25fdmFsdWUgaW4gZXh0ZW5zaW9ucy5vdGhlcl9leHRlbnNpb25z
OgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBleHRlbnNpb25fdHlw
ZSk6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGV4dGVuc2lvbl92YWx1ZSkK
LQotCi1DZXJ0aWZpY2F0ZUVudHJ5ID0gVHVwbGVbYnl0ZXMsIGJ5dGVzXQotCi0KLUBkYXRhY2xh
c3MKLWNsYXNzIENlcnRpZmljYXRlOgotICAgIHJlcXVlc3RfY29udGV4dDogYnl0ZXMgPSBiIiIK
LSAgICBjZXJ0aWZpY2F0ZXM6IExpc3RbQ2VydGlmaWNhdGVFbnRyeV0gPSBmaWVsZChkZWZhdWx0
X2ZhY3Rvcnk9bGlzdCkKLQotCi1kZWYgcHVsbF9jZXJ0aWZpY2F0ZShidWY6IEJ1ZmZlcikgLT4g
Q2VydGlmaWNhdGU6Ci0gICAgY2VydGlmaWNhdGUgPSBDZXJ0aWZpY2F0ZSgpCi0KLSAgICBhc3Nl
cnQgYnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLkNFUlRJRklDQVRFCi0gICAgd2l0
aCBwdWxsX2Jsb2NrKGJ1ZiwgMyk6Ci0gICAgICAgIGNlcnRpZmljYXRlLnJlcXVlc3RfY29udGV4
dCA9IHB1bGxfb3BhcXVlKGJ1ZiwgMSkKLQotICAgICAgICBkZWYgcHVsbF9jZXJ0aWZpY2F0ZV9l
bnRyeShidWY6IEJ1ZmZlcikgLT4gQ2VydGlmaWNhdGVFbnRyeToKLSAgICAgICAgICAgIGRhdGEg
PSBwdWxsX29wYXF1ZShidWYsIDMpCi0gICAgICAgICAgICBleHRlbnNpb25zID0gcHVsbF9vcGFx
dWUoYnVmLCAyKQotICAgICAgICAgICAgcmV0dXJuIChkYXRhLCBleHRlbnNpb25zKQotCi0gICAg
ICAgIGNlcnRpZmljYXRlLmNlcnRpZmljYXRlcyA9IHB1bGxfbGlzdCgKLSAgICAgICAgICAgIGJ1
ZiwgMywgcGFydGlhbChwdWxsX2NlcnRpZmljYXRlX2VudHJ5LCBidWYpCi0gICAgICAgICkKLQot
ICAgIHJldHVybiBjZXJ0aWZpY2F0ZQotCi0KLWRlZiBwdXNoX2NlcnRpZmljYXRlKGJ1ZjogQnVm
ZmVyLCBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGUpIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hfdWlu
dDgoSGFuZHNoYWtlVHlwZS5DRVJUSUZJQ0FURSkKLSAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCAz
KToKLSAgICAgICAgcHVzaF9vcGFxdWUoYnVmLCAxLCBjZXJ0aWZpY2F0ZS5yZXF1ZXN0X2NvbnRl
eHQpCi0KLSAgICAgICAgZGVmIHB1c2hfY2VydGlmaWNhdGVfZW50cnkoYnVmOiBCdWZmZXIsIGVu
dHJ5OiBDZXJ0aWZpY2F0ZUVudHJ5KSAtPiBOb25lOgotICAgICAgICAgICAgcHVzaF9vcGFxdWUo
YnVmLCAzLCBlbnRyeVswXSkKLSAgICAgICAgICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMiwgZW50cnlb
MV0pCi0KLSAgICAgICAgcHVzaF9saXN0KAotICAgICAgICAgICAgYnVmLCAzLCBwYXJ0aWFsKHB1
c2hfY2VydGlmaWNhdGVfZW50cnksIGJ1ZiksIGNlcnRpZmljYXRlLmNlcnRpZmljYXRlcwotICAg
ICAgICApCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgQ2VydGlmaWNhdGVWZXJpZnk6Ci0gICAgYWxn
b3JpdGhtOiBpbnQKLSAgICBzaWduYXR1cmU6IGJ5dGVzCi0KLQotZGVmIHB1bGxfY2VydGlmaWNh
dGVfdmVyaWZ5KGJ1ZjogQnVmZmVyKSAtPiBDZXJ0aWZpY2F0ZVZlcmlmeToKLSAgICBhc3NlcnQg
YnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLkNFUlRJRklDQVRFX1ZFUklGWQotICAg
IHdpdGggcHVsbF9ibG9jayhidWYsIDMpOgotICAgICAgICBhbGdvcml0aG0gPSBidWYucHVsbF91
aW50MTYoKQotICAgICAgICBzaWduYXR1cmUgPSBwdWxsX29wYXF1ZShidWYsIDIpCi0KLSAgICBy
ZXR1cm4gQ2VydGlmaWNhdGVWZXJpZnkoYWxnb3JpdGhtPWFsZ29yaXRobSwgc2lnbmF0dXJlPXNp
Z25hdHVyZSkKLQotCi1kZWYgcHVzaF9jZXJ0aWZpY2F0ZV92ZXJpZnkoYnVmOiBCdWZmZXIsIHZl
cmlmeTogQ2VydGlmaWNhdGVWZXJpZnkpIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hfdWludDgoSGFu
ZHNoYWtlVHlwZS5DRVJUSUZJQ0FURV9WRVJJRlkpCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1Ziwg
Myk6Ci0gICAgICAgIGJ1Zi5wdXNoX3VpbnQxNih2ZXJpZnkuYWxnb3JpdGhtKQotICAgICAgICBw
dXNoX29wYXF1ZShidWYsIDIsIHZlcmlmeS5zaWduYXR1cmUpCi0KLQotQGRhdGFjbGFzcwotY2xh
c3MgRmluaXNoZWQ6Ci0gICAgdmVyaWZ5X2RhdGE6IGJ5dGVzID0gYiIiCi0KLQotZGVmIHB1bGxf
ZmluaXNoZWQoYnVmOiBCdWZmZXIpIC0+IEZpbmlzaGVkOgotICAgIGZpbmlzaGVkID0gRmluaXNo
ZWQoKQotCi0gICAgYXNzZXJ0IGJ1Zi5wdWxsX3VpbnQ4KCkgPT0gSGFuZHNoYWtlVHlwZS5GSU5J
U0hFRAotICAgIGZpbmlzaGVkLnZlcmlmeV9kYXRhID0gcHVsbF9vcGFxdWUoYnVmLCAzKQotCi0g
ICAgcmV0dXJuIGZpbmlzaGVkCi0KLQotZGVmIHB1c2hfZmluaXNoZWQoYnVmOiBCdWZmZXIsIGZp
bmlzaGVkOiBGaW5pc2hlZCkgLT4gTm9uZToKLSAgICBidWYucHVzaF91aW50OChIYW5kc2hha2VU
eXBlLkZJTklTSEVEKQotICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMywgZmluaXNoZWQudmVyaWZ5X2Rh
dGEpCi0KLQotIyBDT05URVhUCi0KLQotY2xhc3MgS2V5U2NoZWR1bGU6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGNpcGhlcl9zdWl0ZTogQ2lwaGVyU3VpdGUpOgotICAgICAgICBzZWxmLmFsZ29y
aXRobSA9IGNpcGhlcl9zdWl0ZV9oYXNoKGNpcGhlcl9zdWl0ZSkKLSAgICAgICAgc2VsZi5jaXBo
ZXJfc3VpdGUgPSBjaXBoZXJfc3VpdGUKLSAgICAgICAgc2VsZi5nZW5lcmF0aW9uID0gMAotICAg
ICAgICBzZWxmLmhhc2ggPSBoYXNoZXMuSGFzaChzZWxmLmFsZ29yaXRobSwgZGVmYXVsdF9iYWNr
ZW5kKCkpCi0gICAgICAgIHNlbGYuaGFzaF9lbXB0eV92YWx1ZSA9IHNlbGYuaGFzaC5jb3B5KCku
ZmluYWxpemUoKQotICAgICAgICBzZWxmLnNlY3JldCA9IGJ5dGVzKHNlbGYuYWxnb3JpdGhtLmRp
Z2VzdF9zaXplKQotCi0gICAgZGVmIGNlcnRpZmljYXRlX3ZlcmlmeV9kYXRhKHNlbGYsIGNvbnRl
eHRfc3RyaW5nOiBieXRlcykgLT4gYnl0ZXM6Ci0gICAgICAgIHJldHVybiBiIiAiICogNjQgKyBj
b250ZXh0X3N0cmluZyArIGIiXHgwMCIgKyBzZWxmLmhhc2guY29weSgpLmZpbmFsaXplKCkKLQot
ICAgIGRlZiBmaW5pc2hlZF92ZXJpZnlfZGF0YShzZWxmLCBzZWNyZXQ6IGJ5dGVzKSAtPiBieXRl
czoKLSAgICAgICAgaG1hY19rZXkgPSBoa2RmX2V4cGFuZF9sYWJlbCgKLSAgICAgICAgICAgIGFs
Z29yaXRobT1zZWxmLmFsZ29yaXRobSwKLSAgICAgICAgICAgIHNlY3JldD1zZWNyZXQsCi0gICAg
ICAgICAgICBsYWJlbD1iImZpbmlzaGVkIiwKLSAgICAgICAgICAgIGhhc2hfdmFsdWU9YiIiLAot
ICAgICAgICAgICAgbGVuZ3RoPXNlbGYuYWxnb3JpdGhtLmRpZ2VzdF9zaXplLAotICAgICAgICAp
Ci0KLSAgICAgICAgaCA9IGhtYWMuSE1BQyhobWFjX2tleSwgYWxnb3JpdGhtPXNlbGYuYWxnb3Jp
dGhtLCBiYWNrZW5kPWRlZmF1bHRfYmFja2VuZCgpKQotICAgICAgICBoLnVwZGF0ZShzZWxmLmhh
c2guY29weSgpLmZpbmFsaXplKCkpCi0gICAgICAgIHJldHVybiBoLmZpbmFsaXplKCkKLQotICAg
IGRlZiBkZXJpdmVfc2VjcmV0KHNlbGYsIGxhYmVsOiBieXRlcykgLT4gYnl0ZXM6Ci0gICAgICAg
IHJldHVybiBoa2RmX2V4cGFuZF9sYWJlbCgKLSAgICAgICAgICAgIGFsZ29yaXRobT1zZWxmLmFs
Z29yaXRobSwKLSAgICAgICAgICAgIHNlY3JldD1zZWxmLnNlY3JldCwKLSAgICAgICAgICAgIGxh
YmVsPWxhYmVsLAotICAgICAgICAgICAgaGFzaF92YWx1ZT1zZWxmLmhhc2guY29weSgpLmZpbmFs
aXplKCksCi0gICAgICAgICAgICBsZW5ndGg9c2VsZi5hbGdvcml0aG0uZGlnZXN0X3NpemUsCi0g
ICAgICAgICkKLQotICAgIGRlZiBleHRyYWN0KHNlbGYsIGtleV9tYXRlcmlhbDogT3B0aW9uYWxb
Ynl0ZXNdID0gTm9uZSkgLT4gTm9uZToKLSAgICAgICAgaWYga2V5X21hdGVyaWFsIGlzIE5vbmU6
Ci0gICAgICAgICAgICBrZXlfbWF0ZXJpYWwgPSBieXRlcyhzZWxmLmFsZ29yaXRobS5kaWdlc3Rf
c2l6ZSkKLQotICAgICAgICBpZiBzZWxmLmdlbmVyYXRpb246Ci0gICAgICAgICAgICBzZWxmLnNl
Y3JldCA9IGhrZGZfZXhwYW5kX2xhYmVsKAotICAgICAgICAgICAgICAgIGFsZ29yaXRobT1zZWxm
LmFsZ29yaXRobSwKLSAgICAgICAgICAgICAgICBzZWNyZXQ9c2VsZi5zZWNyZXQsCi0gICAgICAg
ICAgICAgICAgbGFiZWw9YiJkZXJpdmVkIiwKLSAgICAgICAgICAgICAgICBoYXNoX3ZhbHVlPXNl
bGYuaGFzaF9lbXB0eV92YWx1ZSwKLSAgICAgICAgICAgICAgICBsZW5ndGg9c2VsZi5hbGdvcml0
aG0uZGlnZXN0X3NpemUsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgc2VsZi5nZW5lcmF0aW9u
ICs9IDEKLSAgICAgICAgc2VsZi5zZWNyZXQgPSBoa2RmX2V4dHJhY3QoCi0gICAgICAgICAgICBh
bGdvcml0aG09c2VsZi5hbGdvcml0aG0sIHNhbHQ9c2VsZi5zZWNyZXQsIGtleV9tYXRlcmlhbD1r
ZXlfbWF0ZXJpYWwKLSAgICAgICAgKQotCi0gICAgZGVmIHVwZGF0ZV9oYXNoKHNlbGYsIGRhdGE6
IGJ5dGVzKSAtPiBOb25lOgotICAgICAgICBzZWxmLmhhc2gudXBkYXRlKGRhdGEpCi0KLQotY2xh
c3MgS2V5U2NoZWR1bGVQcm94eToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2lwaGVyX3N1aXRl
czogTGlzdFtDaXBoZXJTdWl0ZV0pOgotICAgICAgICBzZWxmLl9fc2NoZWR1bGVzID0gZGljdCht
YXAobGFtYmRhIGM6IChjLCBLZXlTY2hlZHVsZShjKSksIGNpcGhlcl9zdWl0ZXMpKQotCi0gICAg
ZGVmIGV4dHJhY3Qoc2VsZiwga2V5X21hdGVyaWFsOiBPcHRpb25hbFtieXRlc10gPSBOb25lKSAt
PiBOb25lOgotICAgICAgICBmb3IgayBpbiBzZWxmLl9fc2NoZWR1bGVzLnZhbHVlcygpOgotICAg
ICAgICAgICAgay5leHRyYWN0KGtleV9tYXRlcmlhbCkKLQotICAgIGRlZiBzZWxlY3Qoc2VsZiwg
Y2lwaGVyX3N1aXRlOiBDaXBoZXJTdWl0ZSkgLT4gS2V5U2NoZWR1bGU6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9fc2NoZWR1bGVzW2NpcGhlcl9zdWl0ZV0KLQotICAgIGRlZiB1cGRhdGVfaGFzaChz
ZWxmLCBkYXRhOiBieXRlcykgLT4gTm9uZToKLSAgICAgICAgZm9yIGsgaW4gc2VsZi5fX3NjaGVk
dWxlcy52YWx1ZXMoKToKLSAgICAgICAgICAgIGsudXBkYXRlX2hhc2goZGF0YSkKLQotCi1DSVBI
RVJfU1VJVEVTID0gewotICAgIENpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1NjogaGFzaGVz
LlNIQTI1NiwKLSAgICBDaXBoZXJTdWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQ6IGhhc2hlcy5TSEEz
ODQsCi0gICAgQ2lwaGVyU3VpdGUuQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2OiBoYXNoZXMuU0hB
MjU2LAotfQotCi1TSUdOQVRVUkVfQUxHT1JJVEhNUzogRGljdCA9IHsKLSAgICBTaWduYXR1cmVB
bGdvcml0aG0uRUNEU0FfU0VDUDI1NlIxX1NIQTI1NjogKE5vbmUsIGhhc2hlcy5TSEEyNTYpLAot
ICAgIFNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMzg0UjFfU0hBMzg0OiAoTm9uZSwgaGFz
aGVzLlNIQTM4NCksCi0gICAgU2lnbmF0dXJlQWxnb3JpdGhtLkVDRFNBX1NFQ1A1MjFSMV9TSEE1
MTI6IChOb25lLCBoYXNoZXMuU0hBNTEyKSwKLSAgICBTaWduYXR1cmVBbGdvcml0aG0uUlNBX1BL
Q1MxX1NIQTE6IChwYWRkaW5nLlBLQ1MxdjE1LCBoYXNoZXMuU0hBMSksCi0gICAgU2lnbmF0dXJl
QWxnb3JpdGhtLlJTQV9QS0NTMV9TSEEyNTY6IChwYWRkaW5nLlBLQ1MxdjE1LCBoYXNoZXMuU0hB
MjU2KSwKLSAgICBTaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTM4NDogKHBhZGRpbmcu
UEtDUzF2MTUsIGhhc2hlcy5TSEEzODQpLAotICAgIFNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUEtD
UzFfU0hBNTEyOiAocGFkZGluZy5QS0NTMXYxNSwgaGFzaGVzLlNIQTUxMiksCi0gICAgU2lnbmF0
dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEyNTY6IChwYWRkaW5nLlBTUywgaGFzaGVzLlNI
QTI1NiksCi0gICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEzODQ6IChwYWRk
aW5nLlBTUywgaGFzaGVzLlNIQTM4NCksCi0gICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1Nf
UlNBRV9TSEE1MTI6IChwYWRkaW5nLlBTUywgaGFzaGVzLlNIQTUxMiksCi19Ci0KLUdST1VQX1RP
X0NVUlZFOiBEaWN0ID0gewotICAgIEdyb3VwLlNFQ1AyNTZSMTogZWMuU0VDUDI1NlIxLAotICAg
IEdyb3VwLlNFQ1AzODRSMTogZWMuU0VDUDM4NFIxLAotICAgIEdyb3VwLlNFQ1A1MjFSMTogZWMu
U0VDUDUyMVIxLAotfQotQ1VSVkVfVE9fR1JPVVAgPSBkaWN0KCh2LCBrKSBmb3IgaywgdiBpbiBH
Uk9VUF9UT19DVVJWRS5pdGVtcygpKQotCi0KLWRlZiBjaXBoZXJfc3VpdGVfaGFzaChjaXBoZXJf
c3VpdGU6IENpcGhlclN1aXRlKSAtPiBoYXNoZXMuSGFzaEFsZ29yaXRobToKLSAgICByZXR1cm4g
Q0lQSEVSX1NVSVRFU1tjaXBoZXJfc3VpdGVdKCkKLQotCi1kZWYgZGVjb2RlX3B1YmxpY19rZXko
Ci0gICAga2V5X3NoYXJlOiBLZXlTaGFyZUVudHJ5LAotKSAtPiBVbmlvbltlYy5FbGxpcHRpY0N1
cnZlUHVibGljS2V5LCB4MjU1MTkuWDI1NTE5UHVibGljS2V5LCB4NDQ4Llg0NDhQdWJsaWNLZXks
IE5vbmVdOgotICAgIGlmIGtleV9zaGFyZVswXSA9PSBHcm91cC5YMjU1MTk6Ci0gICAgICAgIHJl
dHVybiB4MjU1MTkuWDI1NTE5UHVibGljS2V5LmZyb21fcHVibGljX2J5dGVzKGtleV9zaGFyZVsx
XSkKLSAgICBlbGlmIGtleV9zaGFyZVswXSA9PSBHcm91cC5YNDQ4OgotICAgICAgICByZXR1cm4g
eDQ0OC5YNDQ4UHVibGljS2V5LmZyb21fcHVibGljX2J5dGVzKGtleV9zaGFyZVsxXSkKLSAgICBl
bGlmIGtleV9zaGFyZVswXSBpbiBHUk9VUF9UT19DVVJWRToKLSAgICAgICAgcmV0dXJuIGVjLkVs
bGlwdGljQ3VydmVQdWJsaWNLZXkuZnJvbV9lbmNvZGVkX3BvaW50KAotICAgICAgICAgICAgR1JP
VVBfVE9fQ1VSVkVba2V5X3NoYXJlWzBdXSgpLCBrZXlfc2hhcmVbMV0KLSAgICAgICAgKQotICAg
IGVsc2U6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLQotZGVmIGVuY29kZV9wdWJsaWNfa2V5KAot
ICAgIHB1YmxpY19rZXk6IFVuaW9uWwotICAgICAgICBlYy5FbGxpcHRpY0N1cnZlUHVibGljS2V5
LCB4MjU1MTkuWDI1NTE5UHVibGljS2V5LCB4NDQ4Llg0NDhQdWJsaWNLZXkKLSAgICBdCi0pIC0+
IEtleVNoYXJlRW50cnk6Ci0gICAgaWYgaXNpbnN0YW5jZShwdWJsaWNfa2V5LCB4MjU1MTkuWDI1
NTE5UHVibGljS2V5KToKLSAgICAgICAgcmV0dXJuIChHcm91cC5YMjU1MTksIHB1YmxpY19rZXku
cHVibGljX2J5dGVzKEVuY29kaW5nLlJhdywgUHVibGljRm9ybWF0LlJhdykpCi0gICAgZWxpZiBp
c2luc3RhbmNlKHB1YmxpY19rZXksIHg0NDguWDQ0OFB1YmxpY0tleSk6Ci0gICAgICAgIHJldHVy
biAoR3JvdXAuWDQ0OCwgcHVibGljX2tleS5wdWJsaWNfYnl0ZXMoRW5jb2RpbmcuUmF3LCBQdWJs
aWNGb3JtYXQuUmF3KSkKLSAgICByZXR1cm4gKAotICAgICAgICBDVVJWRV9UT19HUk9VUFtwdWJs
aWNfa2V5LmN1cnZlLl9fY2xhc3NfX10sCi0gICAgICAgIHB1YmxpY19rZXkucHVibGljX2J5dGVz
KEVuY29kaW5nLlg5NjIsIFB1YmxpY0Zvcm1hdC5VbmNvbXByZXNzZWRQb2ludCksCi0gICAgKQot
Ci0KLWRlZiBuZWdvdGlhdGUoCi0gICAgc3VwcG9ydGVkOiBMaXN0W1RdLCBvZmZlcmVkOiBPcHRp
b25hbFtMaXN0W0FueV1dLCBleGM6IE9wdGlvbmFsW0FsZXJ0XSA9IE5vbmUKLSkgLT4gVDoKLSAg
ICBpZiBvZmZlcmVkIGlzIG5vdCBOb25lOgotICAgICAgICBmb3IgYyBpbiBzdXBwb3J0ZWQ6Ci0g
ICAgICAgICAgICBpZiBjIGluIG9mZmVyZWQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGMKLQot
ICAgIGlmIGV4YyBpcyBub3QgTm9uZToKLSAgICAgICAgcmFpc2UgZXhjCi0gICAgcmV0dXJuIE5v
bmUKLQotCi1kZWYgc2lnbmF0dXJlX2FsZ29yaXRobV9wYXJhbXMoCi0gICAgc2lnbmF0dXJlX2Fs
Z29yaXRobTogaW50LAotKSAtPiBVbmlvbltUdXBsZVtlYy5FQ0RTQV0sIFR1cGxlW3BhZGRpbmcu
QXN5bW1ldHJpY1BhZGRpbmcsIGhhc2hlcy5IYXNoQWxnb3JpdGhtXV06Ci0gICAgcGFkZGluZ19j
bHMsIGFsZ29yaXRobV9jbHMgPSBTSUdOQVRVUkVfQUxHT1JJVEhNU1tzaWduYXR1cmVfYWxnb3Jp
dGhtXQotICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobV9jbHMoKQotICAgIGlmIHBhZGRpbmdfY2xz
IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiAoZWMuRUNEU0EoYWxnb3JpdGhtKSwpCi0gICAgZWxp
ZiBwYWRkaW5nX2NscyA9PSBwYWRkaW5nLlBTUzoKLSAgICAgICAgcGFkZGluZ19vYmogPSBwYWRk
aW5nX2NscygKLSAgICAgICAgICAgIG1nZj1wYWRkaW5nLk1HRjEoYWxnb3JpdGhtKSwgc2FsdF9s
ZW5ndGg9YWxnb3JpdGhtLmRpZ2VzdF9zaXplCi0gICAgICAgICkKLSAgICBlbHNlOgotICAgICAg
ICBwYWRkaW5nX29iaiA9IHBhZGRpbmdfY2xzKCkKLSAgICByZXR1cm4gcGFkZGluZ19vYmosIGFs
Z29yaXRobQotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVmIHB1c2hfbWVzc2FnZSgKLSAgICBrZXlf
c2NoZWR1bGU6IFVuaW9uW0tleVNjaGVkdWxlLCBLZXlTY2hlZHVsZVByb3h5XSwgYnVmOiBCdWZm
ZXIKLSkgLT4gR2VuZXJhdG9yOgotICAgIGhhc2hfc3RhcnQgPSBidWYudGVsbCgpCi0gICAgeWll
bGQKLSAgICBrZXlfc2NoZWR1bGUudXBkYXRlX2hhc2goYnVmLmRhdGFfc2xpY2UoaGFzaF9zdGFy
dCwgYnVmLnRlbGwoKSkpCi0KLQotIyBjYWxsYmFjayB0eXBlcwotCi0KLUBkYXRhY2xhc3MKLWNs
YXNzIFNlc3Npb25UaWNrZXQ6Ci0gICAgIiIiCi0gICAgQSBUTFMgc2Vzc2lvbiB0aWNrZXQgZm9y
IHNlc3Npb24gcmVzdW1wdGlvbi4KLSAgICAiIiIKLQotICAgIGFnZV9hZGQ6IGludAotICAgIGNp
cGhlcl9zdWl0ZTogQ2lwaGVyU3VpdGUKLSAgICBub3RfdmFsaWRfYWZ0ZXI6IGRhdGV0aW1lLmRh
dGV0aW1lCi0gICAgbm90X3ZhbGlkX2JlZm9yZTogZGF0ZXRpbWUuZGF0ZXRpbWUKLSAgICByZXN1
bXB0aW9uX3NlY3JldDogYnl0ZXMKLSAgICBzZXJ2ZXJfbmFtZTogc3RyCi0gICAgdGlja2V0OiBi
eXRlcwotCi0gICAgbWF4X2Vhcmx5X2RhdGFfc2l6ZTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAg
ICBvdGhlcl9leHRlbnNpb25zOiBMaXN0W1R1cGxlW2ludCwgYnl0ZXNdXSA9IGZpZWxkKGRlZmF1
bHRfZmFjdG9yeT1saXN0KQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGlzX3ZhbGlkKHNlbGYp
IC0+IGJvb2w6Ci0gICAgICAgIG5vdyA9IHV0Y25vdygpCi0gICAgICAgIHJldHVybiBub3cgPj0g
c2VsZi5ub3RfdmFsaWRfYmVmb3JlIGFuZCBub3cgPD0gc2VsZi5ub3RfdmFsaWRfYWZ0ZXIKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBvYmZ1c2NhdGVkX2FnZShzZWxmKSAtPiBpbnQ6Ci0gICAg
ICAgIGFnZSA9IGludCgodXRjbm93KCkgLSBzZWxmLm5vdF92YWxpZF9iZWZvcmUpLnRvdGFsX3Nl
Y29uZHMoKSkKLSAgICAgICAgcmV0dXJuIChhZ2UgKyBzZWxmLmFnZV9hZGQpICUgKDEgPDwgMzIp
Ci0KLQotQWxwbkhhbmRsZXIgPSBDYWxsYWJsZVtbc3RyXSwgTm9uZV0KLVNlc3Npb25UaWNrZXRG
ZXRjaGVyID0gQ2FsbGFibGVbW2J5dGVzXSwgT3B0aW9uYWxbU2Vzc2lvblRpY2tldF1dCi1TZXNz
aW9uVGlja2V0SGFuZGxlciA9IENhbGxhYmxlW1tTZXNzaW9uVGlja2V0XSwgTm9uZV0KLQotCi1j
bGFzcyBDb250ZXh0OgotICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwKLSAgICAgICAg
aXNfY2xpZW50OiBib29sLAotICAgICAgICBhbHBuX3Byb3RvY29sczogT3B0aW9uYWxbTGlzdFtz
dHJdXSA9IE5vbmUsCi0gICAgICAgIGNhZGF0YTogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZSwKLSAg
ICAgICAgY2FmaWxlOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSAgICAgICAgY2FwYXRoOiBPcHRp
b25hbFtzdHJdID0gTm9uZSwKLSAgICAgICAgbG9nZ2VyOiBPcHRpb25hbFtVbmlvbltsb2dnaW5n
LkxvZ2dlciwgbG9nZ2luZy5Mb2dnZXJBZGFwdGVyXV0gPSBOb25lLAotICAgICAgICBtYXhfZWFy
bHlfZGF0YTogT3B0aW9uYWxbaW50XSA9IE5vbmUsCi0gICAgICAgIHNlcnZlcl9uYW1lOiBPcHRp
b25hbFtzdHJdID0gTm9uZSwKLSAgICAgICAgdmVyaWZ5X21vZGU6IE9wdGlvbmFsW2ludF0gPSBO
b25lLAotICAgICk6Ci0gICAgICAgICMgY29uZmlndXJhdGlvbgotICAgICAgICBzZWxmLl9hbHBu
X3Byb3RvY29scyA9IGFscG5fcHJvdG9jb2xzCi0gICAgICAgIHNlbGYuX2NhZGF0YSA9IGNhZGF0
YQotICAgICAgICBzZWxmLl9jYWZpbGUgPSBjYWZpbGUKLSAgICAgICAgc2VsZi5fY2FwYXRoID0g
Y2FwYXRoCi0gICAgICAgIHNlbGYuY2VydGlmaWNhdGU6IE9wdGlvbmFsW3g1MDkuQ2VydGlmaWNh
dGVdID0gTm9uZQotICAgICAgICBzZWxmLmNlcnRpZmljYXRlX2NoYWluOiBMaXN0W3g1MDkuQ2Vy
dGlmaWNhdGVdID0gW10KLSAgICAgICAgc2VsZi5jZXJ0aWZpY2F0ZV9wcml2YXRlX2tleTogT3B0
aW9uYWxbCi0gICAgICAgICAgICBVbmlvbltkc2EuRFNBUHJpdmF0ZUtleSwgZWMuRWxsaXB0aWND
dXJ2ZVByaXZhdGVLZXksIHJzYS5SU0FQcml2YXRlS2V5XQotICAgICAgICBdID0gTm9uZQotICAg
ICAgICBzZWxmLmhhbmRzaGFrZV9leHRlbnNpb25zOiBMaXN0W0V4dGVuc2lvbl0gPSBbXQotICAg
ICAgICBzZWxmLl9tYXhfZWFybHlfZGF0YSA9IG1heF9lYXJseV9kYXRhCi0gICAgICAgIHNlbGYu
c2Vzc2lvbl90aWNrZXQ6IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRdID0gTm9uZQotICAgICAgICBz
ZWxmLl9zZXJ2ZXJfbmFtZSA9IHNlcnZlcl9uYW1lCi0gICAgICAgIGlmIHZlcmlmeV9tb2RlIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X21vZGUgPSB2ZXJpZnlfbW9kZQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X21vZGUgPSBzc2wuQ0VSVF9S
RVFVSVJFRCBpZiBpc19jbGllbnQgZWxzZSBzc2wuQ0VSVF9OT05FCi0KLSAgICAgICAgIyBjYWxs
YmFja3MKLSAgICAgICAgc2VsZi5hbHBuX2NiOiBPcHRpb25hbFtBbHBuSGFuZGxlcl0gPSBOb25l
Ci0gICAgICAgIHNlbGYuZ2V0X3Nlc3Npb25fdGlja2V0X2NiOiBPcHRpb25hbFtTZXNzaW9uVGlj
a2V0RmV0Y2hlcl0gPSBOb25lCi0gICAgICAgIHNlbGYubmV3X3Nlc3Npb25fdGlja2V0X2NiOiBP
cHRpb25hbFtTZXNzaW9uVGlja2V0SGFuZGxlcl0gPSBOb25lCi0gICAgICAgIHNlbGYudXBkYXRl
X3RyYWZmaWNfa2V5X2NiOiBDYWxsYWJsZVsKLSAgICAgICAgICAgIFtEaXJlY3Rpb24sIEVwb2No
LCBDaXBoZXJTdWl0ZSwgYnl0ZXNdLCBOb25lCi0gICAgICAgIF0gPSBsYW1iZGEgZCwgZSwgYywg
czogTm9uZQotCi0gICAgICAgICMgc3VwcG9ydGVkIHBhcmFtZXRlcnMKLSAgICAgICAgc2VsZi5f
Y2lwaGVyX3N1aXRlcyA9IFsKLSAgICAgICAgICAgIENpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NI
QTM4NCwKLSAgICAgICAgICAgIENpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1NiwKLSAgICAg
ICAgICAgIENpcGhlclN1aXRlLkNIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAgICAgXQot
ICAgICAgICBzZWxmLl9sZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kczogTGlzdFtpbnRdID0gW0Nv
bXByZXNzaW9uTWV0aG9kLk5VTExdCi0gICAgICAgIHNlbGYuX3Bza19rZXlfZXhjaGFuZ2VfbW9k
ZXM6IExpc3RbaW50XSA9IFtQc2tLZXlFeGNoYW5nZU1vZGUuUFNLX0RIRV9LRV0KLSAgICAgICAg
c2VsZi5fc2lnbmF0dXJlX2FsZ29yaXRobXM6IExpc3RbaW50XSA9IFsKLSAgICAgICAgICAgIFNp
Z25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hBMjU2LAotICAgICAgICAgICAgU2lnbmF0
dXJlQWxnb3JpdGhtLkVDRFNBX1NFQ1AyNTZSMV9TSEEyNTYsCi0gICAgICAgICAgICBTaWduYXR1
cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTI1NiwKLSAgICAgICAgICAgIFNpZ25hdHVyZUFsZ29y
aXRobS5SU0FfUEtDUzFfU0hBMSwKLSAgICAgICAgXQotICAgICAgICBzZWxmLl9zdXBwb3J0ZWRf
Z3JvdXBzID0gW0dyb3VwLlNFQ1AyNTZSMV0KLSAgICAgICAgaWYgZGVmYXVsdF9iYWNrZW5kKCku
eDI1NTE5X3N1cHBvcnRlZCgpOgotICAgICAgICAgICAgc2VsZi5fc3VwcG9ydGVkX2dyb3Vwcy5h
cHBlbmQoR3JvdXAuWDI1NTE5KQotICAgICAgICBpZiBkZWZhdWx0X2JhY2tlbmQoKS54NDQ4X3N1
cHBvcnRlZCgpOgotICAgICAgICAgICAgc2VsZi5fc3VwcG9ydGVkX2dyb3Vwcy5hcHBlbmQoR3Jv
dXAuWDQ0OCkKLSAgICAgICAgc2VsZi5fc3VwcG9ydGVkX3ZlcnNpb25zID0gW1RMU19WRVJTSU9O
XzFfM10KLQotICAgICAgICAjIHN0YXRlCi0gICAgICAgIHNlbGYuYWxwbl9uZWdvdGlhdGVkOiBP
cHRpb25hbFtzdHJdID0gTm9uZQotICAgICAgICBzZWxmLmVhcmx5X2RhdGFfYWNjZXB0ZWQgPSBG
YWxzZQotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZTogT3B0aW9uYWxbS2V5U2NoZWR1bGVdID0g
Tm9uZQotICAgICAgICBzZWxmLnJlY2VpdmVkX2V4dGVuc2lvbnM6IE9wdGlvbmFsW0xpc3RbRXh0
ZW5zaW9uXV0gPSBOb25lCi0gICAgICAgIHNlbGYuX2tleV9zY2hlZHVsZV9wc2s6IE9wdGlvbmFs
W0tleVNjaGVkdWxlXSA9IE5vbmUKLSAgICAgICAgc2VsZi5fa2V5X3NjaGVkdWxlX3Byb3h5OiBP
cHRpb25hbFtLZXlTY2hlZHVsZVByb3h5XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fbmV3X3Nlc3Np
b25fdGlja2V0OiBPcHRpb25hbFtOZXdTZXNzaW9uVGlja2V0XSA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fcGVlcl9jZXJ0aWZpY2F0ZTogT3B0aW9uYWxbeDUwOS5DZXJ0aWZpY2F0ZV0gPSBOb25lCi0g
ICAgICAgIHNlbGYuX3BlZXJfY2VydGlmaWNhdGVfY2hhaW46IExpc3RbeDUwOS5DZXJ0aWZpY2F0
ZV0gPSBbXQotICAgICAgICBzZWxmLl9yZWNlaXZlX2J1ZmZlciA9IGIiIgotICAgICAgICBzZWxm
Ll9zZXNzaW9uX3Jlc3VtZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9lbmNfa2V5OiBPcHRpb25h
bFtieXRlc10gPSBOb25lCi0gICAgICAgIHNlbGYuX2RlY19rZXk6IE9wdGlvbmFsW2J5dGVzXSA9
IE5vbmUKLSAgICAgICAgc2VsZi5fX2xvZ2dlciA9IGxvZ2dlcgotCi0gICAgICAgIHNlbGYuX2Vj
X3ByaXZhdGVfa2V5OiBPcHRpb25hbFtlYy5FbGxpcHRpY0N1cnZlUHJpdmF0ZUtleV0gPSBOb25l
Ci0gICAgICAgIHNlbGYuX3gyNTUxOV9wcml2YXRlX2tleTogT3B0aW9uYWxbeDI1NTE5LlgyNTUx
OVByaXZhdGVLZXldID0gTm9uZQotICAgICAgICBzZWxmLl94NDQ4X3ByaXZhdGVfa2V5OiBPcHRp
b25hbFt4NDQ4Llg0NDhQcml2YXRlS2V5XSA9IE5vbmUKLQotICAgICAgICBpZiBpc19jbGllbnQ6
Ci0gICAgICAgICAgICBzZWxmLmNsaWVudF9yYW5kb20gPSBvcy51cmFuZG9tKDMyKQotICAgICAg
ICAgICAgc2VsZi5sZWdhY3lfc2Vzc2lvbl9pZCA9IGIiIgotICAgICAgICAgICAgc2VsZi5zdGF0
ZSA9IFN0YXRlLkNMSUVOVF9IQU5EU0hBS0VfU1RBUlQKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuY2xpZW50X3JhbmRvbSA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYubGVnYWN5X3Nl
c3Npb25faWQgPSBOb25lCi0gICAgICAgICAgICBzZWxmLnN0YXRlID0gU3RhdGUuU0VSVkVSX0VY
UEVDVF9DTElFTlRfSEVMTE8KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzZXNzaW9uX3Jlc3Vt
ZWQoc2VsZikgLT4gYm9vbDoKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMgVHJ1ZSBpZiBz
ZXNzaW9uIHJlc3VtcHRpb24gd2FzIHN1Y2Nlc3NmdWxseSB1c2VkLgotICAgICAgICAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3Nlc3Npb25fcmVzdW1lZAotCi0gICAgZGVmIGhhbmRsZV9tZXNz
YWdlKAotICAgICAgICBzZWxmLCBpbnB1dF9kYXRhOiBieXRlcywgb3V0cHV0X2J1ZjogRGljdFtF
cG9jaCwgQnVmZmVyXQotICAgICkgLT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5zdGF0ZSA9PSBT
dGF0ZS5DTElFTlRfSEFORFNIQUtFX1NUQVJUOgotICAgICAgICAgICAgc2VsZi5fY2xpZW50X3Nl
bmRfaGVsbG8ob3V0cHV0X2J1ZltFcG9jaC5JTklUSUFMXSkKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIHNlbGYuX3JlY2VpdmVfYnVmZmVyICs9IGlucHV0X2RhdGEKLSAgICAgICAgd2hp
bGUgbGVuKHNlbGYuX3JlY2VpdmVfYnVmZmVyKSA+PSA0OgotICAgICAgICAgICAgIyBkZXRlcm1p
bmUgbWVzc2FnZSBsZW5ndGgKLSAgICAgICAgICAgIG1lc3NhZ2VfdHlwZSA9IHNlbGYuX3JlY2Vp
dmVfYnVmZmVyWzBdCi0gICAgICAgICAgICBtZXNzYWdlX2xlbmd0aCA9IDAKLSAgICAgICAgICAg
IGZvciBiIGluIHNlbGYuX3JlY2VpdmVfYnVmZmVyWzE6NF06Ci0gICAgICAgICAgICAgICAgbWVz
c2FnZV9sZW5ndGggPSAobWVzc2FnZV9sZW5ndGggPDwgOCkgfCBiCi0gICAgICAgICAgICBtZXNz
YWdlX2xlbmd0aCArPSA0Ci0KLSAgICAgICAgICAgICMgY2hlY2sgbWVzc2FnZSBpcyBjb21wbGV0
ZQotICAgICAgICAgICAgaWYgbGVuKHNlbGYuX3JlY2VpdmVfYnVmZmVyKSA8IG1lc3NhZ2VfbGVu
Z3RoOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5f
cmVjZWl2ZV9idWZmZXJbOm1lc3NhZ2VfbGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5fcmVjZWl2
ZV9idWZmZXIgPSBzZWxmLl9yZWNlaXZlX2J1ZmZlclttZXNzYWdlX2xlbmd0aDpdCi0KLSAgICAg
ICAgICAgIGlucHV0X2J1ZiA9IEJ1ZmZlcihkYXRhPW1lc3NhZ2UpCi0KLSAgICAgICAgICAgICMg
Y2xpZW50IHN0YXRlcwotCi0gICAgICAgICAgICBpZiBzZWxmLnN0YXRlID09IFN0YXRlLkNMSUVO
VF9FWFBFQ1RfU0VSVkVSX0hFTExPOgotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2VfdHlwZSA9
PSBIYW5kc2hha2VUeXBlLlNFUlZFUl9IRUxMTzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
Y2xpZW50X2hhbmRsZV9oZWxsbyhpbnB1dF9idWYsIG91dHB1dF9idWZbRXBvY2guSU5JVElBTF0p
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWxlcnRV
bmV4cGVjdGVkTWVzc2FnZQotICAgICAgICAgICAgZWxpZiBzZWxmLnN0YXRlID09IFN0YXRlLkNM
SUVOVF9FWFBFQ1RfRU5DUllQVEVEX0VYVEVOU0lPTlM6Ci0gICAgICAgICAgICAgICAgaWYgbWVz
c2FnZV90eXBlID09IEhhbmRzaGFrZVR5cGUuRU5DUllQVEVEX0VYVEVOU0lPTlM6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9oYW5kbGVfZW5jcnlwdGVkX2V4dGVuc2lvbnMoaW5w
dXRfYnVmKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9PSBT
dGF0ZS5DTElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1JFUVVFU1RfT1JfQ0VSVElGSUNBVEU6Ci0g
ICAgICAgICAgICAgICAgaWYgbWVzc2FnZV90eXBlID09IEhhbmRzaGFrZVR5cGUuQ0VSVElGSUNB
VEU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9oYW5kbGVfY2VydGlmaWNhdGUo
aW5wdXRfYnVmKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMg
RklYTUU6IGhhbmRsZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlIEFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9
PSBTdGF0ZS5DTElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1ZFUklGWToKLSAgICAgICAgICAgICAg
ICBpZiBtZXNzYWdlX3R5cGUgPT0gSGFuZHNoYWtlVHlwZS5DRVJUSUZJQ0FURV9WRVJJRlk6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9oYW5kbGVfY2VydGlmaWNhdGVfdmVyaWZ5
KGlucHV0X2J1ZikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBBbGVydFVuZXhwZWN0ZWRNZXNzYWdlCi0gICAgICAgICAgICBlbGlmIHNlbGYuc3RhdGUg
PT0gU3RhdGUuQ0xJRU5UX0VYUEVDVF9GSU5JU0hFRDoKLSAgICAgICAgICAgICAgICBpZiBtZXNz
YWdlX3R5cGUgPT0gSGFuZHNoYWtlVHlwZS5GSU5JU0hFRDoKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fY2xpZW50X2hhbmRsZV9maW5pc2hlZChpbnB1dF9idWYsIG91dHB1dF9idWZbRXBvY2gu
SEFORFNIQUtFXSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBBbGVydFVuZXhwZWN0ZWRNZXNzYWdlCi0gICAgICAgICAgICBlbGlmIHNlbGYuc3RhdGUg
PT0gU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFOgotICAgICAgICAgICAgICAgIGlmIG1lc3Nh
Z2VfdHlwZSA9PSBIYW5kc2hha2VUeXBlLk5FV19TRVNTSU9OX1RJQ0tFVDoKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fY2xpZW50X2hhbmRsZV9uZXdfc2Vzc2lvbl90aWNrZXQoaW5wdXRfYnVm
KQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0
VW5leHBlY3RlZE1lc3NhZ2UKLQotICAgICAgICAgICAgIyBzZXJ2ZXIgc3RhdGVzCi0KLSAgICAg
ICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9PSBTdGF0ZS5TRVJWRVJfRVhQRUNUX0NMSUVOVF9IRUxM
TzoKLSAgICAgICAgICAgICAgICBpZiBtZXNzYWdlX3R5cGUgPT0gSGFuZHNoYWtlVHlwZS5DTElF
TlRfSEVMTE86Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9oYW5kbGVfaGVsbG8o
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9idWYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBvdXRwdXRfYnVmW0Vwb2NoLklOSVRJQUxdLAotICAgICAgICAgICAgICAgICAgICAgICAg
b3V0cHV0X2J1ZltFcG9jaC5IQU5EU0hBS0VdLAotICAgICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0X2J1ZltFcG9jaC5PTkVfUlRUXSwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0VW5leHBlY3RlZE1l
c3NhZ2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9PSBTdGF0ZS5TRVJWRVJfRVhQRUNU
X0ZJTklTSEVEOgotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2VfdHlwZSA9PSBIYW5kc2hha2VU
eXBlLkZJTklTSEVEOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZXJ2ZXJfaGFuZGxlX2Zp
bmlzaGVkKGlucHV0X2J1Ziwgb3V0cHV0X2J1ZltFcG9jaC5PTkVfUlRUXSkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBBbGVydFVuZXhwZWN0ZWRNZXNz
YWdlCi0gICAgICAgICAgICBlbGlmIHNlbGYuc3RhdGUgPT0gU3RhdGUuU0VSVkVSX1BPU1RfSEFO
RFNIQUtFOgotICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UKLQot
ICAgICAgICAgICAgYXNzZXJ0IGlucHV0X2J1Zi5lb2YoKQotCi0gICAgZGVmIF9idWlsZF9zZXNz
aW9uX3RpY2tldCgKLSAgICAgICAgc2VsZiwgbmV3X3Nlc3Npb25fdGlja2V0OiBOZXdTZXNzaW9u
VGlja2V0Ci0gICAgKSAtPiBTZXNzaW9uVGlja2V0OgotICAgICAgICByZXN1bXB0aW9uX21hc3Rl
cl9zZWNyZXQgPSBzZWxmLmtleV9zY2hlZHVsZS5kZXJpdmVfc2VjcmV0KGIicmVzIG1hc3RlciIp
Ci0gICAgICAgIHJlc3VtcHRpb25fc2VjcmV0ID0gaGtkZl9leHBhbmRfbGFiZWwoCi0gICAgICAg
ICAgICBhbGdvcml0aG09c2VsZi5rZXlfc2NoZWR1bGUuYWxnb3JpdGhtLAotICAgICAgICAgICAg
c2VjcmV0PXJlc3VtcHRpb25fbWFzdGVyX3NlY3JldCwKLSAgICAgICAgICAgIGxhYmVsPWIicmVz
dW1wdGlvbiIsCi0gICAgICAgICAgICBoYXNoX3ZhbHVlPW5ld19zZXNzaW9uX3RpY2tldC50aWNr
ZXRfbm9uY2UsCi0gICAgICAgICAgICBsZW5ndGg9c2VsZi5rZXlfc2NoZWR1bGUuYWxnb3JpdGht
LmRpZ2VzdF9zaXplLAotICAgICAgICApCi0KLSAgICAgICAgdGltZXN0YW1wID0gdXRjbm93KCkK
LSAgICAgICAgcmV0dXJuIFNlc3Npb25UaWNrZXQoCi0gICAgICAgICAgICBhZ2VfYWRkPW5ld19z
ZXNzaW9uX3RpY2tldC50aWNrZXRfYWdlX2FkZCwKLSAgICAgICAgICAgIGNpcGhlcl9zdWl0ZT1z
ZWxmLmtleV9zY2hlZHVsZS5jaXBoZXJfc3VpdGUsCi0gICAgICAgICAgICBtYXhfZWFybHlfZGF0
YV9zaXplPW5ld19zZXNzaW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXplLAotICAgICAgICAg
ICAgbm90X3ZhbGlkX2FmdGVyPXRpbWVzdGFtcAotICAgICAgICAgICAgKyBkYXRldGltZS50aW1l
ZGVsdGEoc2Vjb25kcz1uZXdfc2Vzc2lvbl90aWNrZXQudGlja2V0X2xpZmV0aW1lKSwKLSAgICAg
ICAgICAgIG5vdF92YWxpZF9iZWZvcmU9dGltZXN0YW1wLAotICAgICAgICAgICAgb3RoZXJfZXh0
ZW5zaW9ucz1zZWxmLmhhbmRzaGFrZV9leHRlbnNpb25zLAotICAgICAgICAgICAgcmVzdW1wdGlv
bl9zZWNyZXQ9cmVzdW1wdGlvbl9zZWNyZXQsCi0gICAgICAgICAgICBzZXJ2ZXJfbmFtZT1zZWxm
Ll9zZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgIHRpY2tldD1uZXdfc2Vzc2lvbl90aWNrZXQudGlj
a2V0LAotICAgICAgICApCi0KLSAgICBkZWYgX2NsaWVudF9zZW5kX2hlbGxvKHNlbGYsIG91dHB1
dF9idWY6IEJ1ZmZlcikgLT4gTm9uZToKLSAgICAgICAga2V5X3NoYXJlOiBMaXN0W0tleVNoYXJl
RW50cnldID0gW10KLSAgICAgICAgc3VwcG9ydGVkX2dyb3VwczogTGlzdFtpbnRdID0gW10KLQot
ICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fc3VwcG9ydGVkX2dyb3VwczoKLSAgICAgICAgICAg
IGlmIGdyb3VwID09IEdyb3VwLlNFQ1AyNTZSMToKLSAgICAgICAgICAgICAgICBzZWxmLl9lY19w
cml2YXRlX2tleSA9IGVjLmdlbmVyYXRlX3ByaXZhdGVfa2V5KAotICAgICAgICAgICAgICAgICAg
ICBHUk9VUF9UT19DVVJWRVtHcm91cC5TRUNQMjU2UjFdKCksIGRlZmF1bHRfYmFja2VuZCgpCi0g
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGtleV9zaGFyZS5hcHBlbmQoZW5jb2Rl
X3B1YmxpY19rZXkoc2VsZi5fZWNfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpKSkKLSAgICAgICAg
ICAgICAgICBzdXBwb3J0ZWRfZ3JvdXBzLmFwcGVuZChHcm91cC5TRUNQMjU2UjEpCi0gICAgICAg
ICAgICBlbGlmIGdyb3VwID09IEdyb3VwLlgyNTUxOToKLSAgICAgICAgICAgICAgICBzZWxmLl94
MjU1MTlfcHJpdmF0ZV9rZXkgPSB4MjU1MTkuWDI1NTE5UHJpdmF0ZUtleS5nZW5lcmF0ZSgpCi0g
ICAgICAgICAgICAgICAga2V5X3NoYXJlLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgZW5j
b2RlX3B1YmxpY19rZXkoc2VsZi5feDI1NTE5X3ByaXZhdGVfa2V5LnB1YmxpY19rZXkoKSkKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgc3VwcG9ydGVkX2dyb3Vwcy5hcHBlbmQo
R3JvdXAuWDI1NTE5KQotICAgICAgICAgICAgZWxpZiBncm91cCA9PSBHcm91cC5YNDQ4OgotICAg
ICAgICAgICAgICAgIHNlbGYuX3g0NDhfcHJpdmF0ZV9rZXkgPSB4NDQ4Llg0NDhQcml2YXRlS2V5
LmdlbmVyYXRlKCkKLSAgICAgICAgICAgICAgICBrZXlfc2hhcmUuYXBwZW5kKGVuY29kZV9wdWJs
aWNfa2V5KHNlbGYuX3g0NDhfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpKSkKLSAgICAgICAgICAg
ICAgICBzdXBwb3J0ZWRfZ3JvdXBzLmFwcGVuZChHcm91cC5YNDQ4KQotICAgICAgICAgICAgZWxp
ZiBncm91cCA9PSBHcm91cC5HUkVBU0U6Ci0gICAgICAgICAgICAgICAga2V5X3NoYXJlLmFwcGVu
ZCgoR3JvdXAuR1JFQVNFLCBiIlx4MDAiKSkKLSAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfZ3Jv
dXBzLmFwcGVuZChHcm91cC5HUkVBU0UpCi0KLSAgICAgICAgYXNzZXJ0IGxlbihrZXlfc2hhcmUp
LCAibm8ga2V5IHNoYXJlIGVudHJpZXMiCi0KLSAgICAgICAgaGVsbG8gPSBDbGllbnRIZWxsbygK
LSAgICAgICAgICAgIHJhbmRvbT1zZWxmLmNsaWVudF9yYW5kb20sCi0gICAgICAgICAgICBsZWdh
Y3lfc2Vzc2lvbl9pZD1zZWxmLmxlZ2FjeV9zZXNzaW9uX2lkLAotICAgICAgICAgICAgY2lwaGVy
X3N1aXRlcz1baW50KHgpIGZvciB4IGluIHNlbGYuX2NpcGhlcl9zdWl0ZXNdLAotICAgICAgICAg
ICAgbGVnYWN5X2NvbXByZXNzaW9uX21ldGhvZHM9c2VsZi5fbGVnYWN5X2NvbXByZXNzaW9uX21l
dGhvZHMsCi0gICAgICAgICAgICBhbHBuX3Byb3RvY29scz1zZWxmLl9hbHBuX3Byb3RvY29scywK
LSAgICAgICAgICAgIGtleV9zaGFyZT1rZXlfc2hhcmUsCi0gICAgICAgICAgICBwc2tfa2V5X2V4
Y2hhbmdlX21vZGVzPXNlbGYuX3Bza19rZXlfZXhjaGFuZ2VfbW9kZXMKLSAgICAgICAgICAgIGlm
IChzZWxmLnNlc3Npb25fdGlja2V0IG9yIHNlbGYubmV3X3Nlc3Npb25fdGlja2V0X2NiIGlzIG5v
dCBOb25lKQotICAgICAgICAgICAgZWxzZSBOb25lLAotICAgICAgICAgICAgc2VydmVyX25hbWU9
c2VsZi5fc2VydmVyX25hbWUsCi0gICAgICAgICAgICBzaWduYXR1cmVfYWxnb3JpdGhtcz1zZWxm
Ll9zaWduYXR1cmVfYWxnb3JpdGhtcywKLSAgICAgICAgICAgIHN1cHBvcnRlZF9ncm91cHM9c3Vw
cG9ydGVkX2dyb3VwcywKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9ucz1zZWxmLl9zdXBw
b3J0ZWRfdmVyc2lvbnMsCi0gICAgICAgICAgICBvdGhlcl9leHRlbnNpb25zPXNlbGYuaGFuZHNo
YWtlX2V4dGVuc2lvbnMsCi0gICAgICAgICkKLQotICAgICAgICAjIFBTSwotICAgICAgICBpZiBz
ZWxmLnNlc3Npb25fdGlja2V0IGFuZCBzZWxmLnNlc3Npb25fdGlja2V0LmlzX3ZhbGlkOgotICAg
ICAgICAgICAgc2VsZi5fa2V5X3NjaGVkdWxlX3BzayA9IEtleVNjaGVkdWxlKHNlbGYuc2Vzc2lv
bl90aWNrZXQuY2lwaGVyX3N1aXRlKQotICAgICAgICAgICAgc2VsZi5fa2V5X3NjaGVkdWxlX3Bz
ay5leHRyYWN0KHNlbGYuc2Vzc2lvbl90aWNrZXQucmVzdW1wdGlvbl9zZWNyZXQpCi0gICAgICAg
ICAgICBiaW5kZXJfa2V5ID0gc2VsZi5fa2V5X3NjaGVkdWxlX3Bzay5kZXJpdmVfc2VjcmV0KGIi
cmVzIGJpbmRlciIpCi0gICAgICAgICAgICBiaW5kZXJfbGVuZ3RoID0gc2VsZi5fa2V5X3NjaGVk
dWxlX3Bzay5hbGdvcml0aG0uZGlnZXN0X3NpemUKLQotICAgICAgICAgICAgIyB1cGRhdGUgaGVs
bG8KLSAgICAgICAgICAgIGlmIHNlbGYuc2Vzc2lvbl90aWNrZXQubWF4X2Vhcmx5X2RhdGFfc2l6
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBoZWxsby5lYXJseV9kYXRhID0gVHJ1ZQot
ICAgICAgICAgICAgaGVsbG8ucHJlX3NoYXJlZF9rZXkgPSBPZmZlcmVkUHNrcygKLSAgICAgICAg
ICAgICAgICBpZGVudGl0aWVzPVsKLSAgICAgICAgICAgICAgICAgICAgKHNlbGYuc2Vzc2lvbl90
aWNrZXQudGlja2V0LCBzZWxmLnNlc3Npb25fdGlja2V0Lm9iZnVzY2F0ZWRfYWdlKQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgYmluZGVycz1bYnl0ZXMoYmluZGVyX2xlbmd0
aCldLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlcmlhbGl6ZSBoZWxsbyB3aXRo
b3V0IGJpbmRlcgotICAgICAgICAgICAgdG1wX2J1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0xMDI0KQot
ICAgICAgICAgICAgcHVzaF9jbGllbnRfaGVsbG8odG1wX2J1ZiwgaGVsbG8pCi0KLSAgICAgICAg
ICAgICMgY2FsY3VsYXRlIGJpbmRlcgotICAgICAgICAgICAgaGFzaF9vZmZzZXQgPSB0bXBfYnVm
LnRlbGwoKSAtIGJpbmRlcl9sZW5ndGggLSAzCi0gICAgICAgICAgICBzZWxmLl9rZXlfc2NoZWR1
bGVfcHNrLnVwZGF0ZV9oYXNoKHRtcF9idWYuZGF0YV9zbGljZSgwLCBoYXNoX29mZnNldCkpCi0g
ICAgICAgICAgICBiaW5kZXIgPSBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmZpbmlzaGVkX3Zlcmlm
eV9kYXRhKGJpbmRlcl9rZXkpCi0gICAgICAgICAgICBoZWxsby5wcmVfc2hhcmVkX2tleS5iaW5k
ZXJzWzBdID0gYmluZGVyCi0gICAgICAgICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLnVwZGF0
ZV9oYXNoKAotICAgICAgICAgICAgICAgIHRtcF9idWYuZGF0YV9zbGljZShoYXNoX29mZnNldCwg
aGFzaF9vZmZzZXQgKyAzKSArIGJpbmRlcgotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAj
IGNhbGN1bGF0ZSBlYXJseSBkYXRhIGtleQotICAgICAgICAgICAgaWYgaGVsbG8uZWFybHlfZGF0
YToKLSAgICAgICAgICAgICAgICBlYXJseV9rZXkgPSBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmRl
cml2ZV9zZWNyZXQoYiJjIGUgdHJhZmZpYyIpCi0gICAgICAgICAgICAgICAgc2VsZi51cGRhdGVf
dHJhZmZpY19rZXlfY2IoCi0gICAgICAgICAgICAgICAgICAgIERpcmVjdGlvbi5FTkNSWVBULAot
ICAgICAgICAgICAgICAgICAgICBFcG9jaC5aRVJPX1JUVCwKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fa2V5X3NjaGVkdWxlX3Bzay5jaXBoZXJfc3VpdGUsCi0gICAgICAgICAgICAgICAgICAg
IGVhcmx5X2tleSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgc2VsZi5fa2V5X3NjaGVk
dWxlX3Byb3h5ID0gS2V5U2NoZWR1bGVQcm94eShzZWxmLl9jaXBoZXJfc3VpdGVzKQotICAgICAg
ICBzZWxmLl9rZXlfc2NoZWR1bGVfcHJveHkuZXh0cmFjdChOb25lKQotCi0gICAgICAgIHdpdGgg
cHVzaF9tZXNzYWdlKHNlbGYuX2tleV9zY2hlZHVsZV9wcm94eSwgb3V0cHV0X2J1Zik6Ci0gICAg
ICAgICAgICBwdXNoX2NsaWVudF9oZWxsbyhvdXRwdXRfYnVmLCBoZWxsbykKLQotICAgICAgICBz
ZWxmLl9zZXRfc3RhdGUoU3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0KLSAgICBk
ZWYgX2NsaWVudF9oYW5kbGVfaGVsbG8oc2VsZiwgaW5wdXRfYnVmOiBCdWZmZXIsIG91dHB1dF9i
dWY6IEJ1ZmZlcikgLT4gTm9uZToKLSAgICAgICAgcGVlcl9oZWxsbyA9IHB1bGxfc2VydmVyX2hl
bGxvKGlucHV0X2J1ZikKLQotICAgICAgICBjaXBoZXJfc3VpdGUgPSBuZWdvdGlhdGUoCi0gICAg
ICAgICAgICBzZWxmLl9jaXBoZXJfc3VpdGVzLAotICAgICAgICAgICAgW3BlZXJfaGVsbG8uY2lw
aGVyX3N1aXRlXSwKLSAgICAgICAgICAgIEFsZXJ0SGFuZHNoYWtlRmFpbHVyZSgiVW5zdXBwb3J0
ZWQgY2lwaGVyIHN1aXRlIiksCi0gICAgICAgICkKLSAgICAgICAgYXNzZXJ0IHBlZXJfaGVsbG8u
Y29tcHJlc3Npb25fbWV0aG9kIGluIHNlbGYuX2xlZ2FjeV9jb21wcmVzc2lvbl9tZXRob2RzCi0g
ICAgICAgIGFzc2VydCBwZWVyX2hlbGxvLnN1cHBvcnRlZF92ZXJzaW9uIGluIHNlbGYuX3N1cHBv
cnRlZF92ZXJzaW9ucwotCi0gICAgICAgICMgc2VsZWN0IGtleSBzY2hlZHVsZQotICAgICAgICBp
ZiBwZWVyX2hlbGxvLnByZV9zaGFyZWRfa2V5IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYg
KAotICAgICAgICAgICAgICAgIHNlbGYuX2tleV9zY2hlZHVsZV9wc2sgaXMgTm9uZQotICAgICAg
ICAgICAgICAgIG9yIHBlZXJfaGVsbG8ucHJlX3NoYXJlZF9rZXkgIT0gMAotICAgICAgICAgICAg
ICAgIG9yIGNpcGhlcl9zdWl0ZSAhPSBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmNpcGhlcl9zdWl0
ZQotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICByYWlzZSBBbGVydElsbGVnYWxQYXJh
bWV0ZXIKLSAgICAgICAgICAgIHNlbGYua2V5X3NjaGVkdWxlID0gc2VsZi5fa2V5X3NjaGVkdWxl
X3BzawotICAgICAgICAgICAgc2VsZi5fc2Vzc2lvbl9yZXN1bWVkID0gVHJ1ZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUgPSBzZWxmLl9rZXlfc2NoZWR1bGVf
cHJveHkuc2VsZWN0KGNpcGhlcl9zdWl0ZSkKLSAgICAgICAgc2VsZi5fa2V5X3NjaGVkdWxlX3Bz
ayA9IE5vbmUKLSAgICAgICAgc2VsZi5fa2V5X3NjaGVkdWxlX3Byb3h5ID0gTm9uZQotCi0gICAg
ICAgICMgcGVyZm9ybSBrZXkgZXhjaGFuZ2UKLSAgICAgICAgcGVlcl9wdWJsaWNfa2V5ID0gZGVj
b2RlX3B1YmxpY19rZXkocGVlcl9oZWxsby5rZXlfc2hhcmUpCi0gICAgICAgIHNoYXJlZF9rZXk6
IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgaXNpbnN0
YW5jZShwZWVyX3B1YmxpY19rZXksIHgyNTUxOS5YMjU1MTlQdWJsaWNLZXkpCi0gICAgICAgICAg
ICBhbmQgc2VsZi5feDI1NTE5X3ByaXZhdGVfa2V5IGlzIG5vdCBOb25lCi0gICAgICAgICk6Ci0g
ICAgICAgICAgICBzaGFyZWRfa2V5ID0gc2VsZi5feDI1NTE5X3ByaXZhdGVfa2V5LmV4Y2hhbmdl
KHBlZXJfcHVibGljX2tleSkKLSAgICAgICAgZWxpZiAoCi0gICAgICAgICAgICBpc2luc3RhbmNl
KHBlZXJfcHVibGljX2tleSwgeDQ0OC5YNDQ4UHVibGljS2V5KQotICAgICAgICAgICAgYW5kIHNl
bGYuX3g0NDhfcHJpdmF0ZV9rZXkgaXMgbm90IE5vbmUKLSAgICAgICAgKToKLSAgICAgICAgICAg
IHNoYXJlZF9rZXkgPSBzZWxmLl94NDQ4X3ByaXZhdGVfa2V5LmV4Y2hhbmdlKHBlZXJfcHVibGlj
X2tleSkKLSAgICAgICAgZWxpZiAoCi0gICAgICAgICAgICBpc2luc3RhbmNlKHBlZXJfcHVibGlj
X2tleSwgZWMuRWxsaXB0aWNDdXJ2ZVB1YmxpY0tleSkKLSAgICAgICAgICAgIGFuZCBzZWxmLl9l
Y19wcml2YXRlX2tleSBpcyBub3QgTm9uZQotICAgICAgICAgICAgYW5kIHNlbGYuX2VjX3ByaXZh
dGVfa2V5LnB1YmxpY19rZXkoKS5jdXJ2ZS5fX2NsYXNzX18KLSAgICAgICAgICAgID09IHBlZXJf
cHVibGljX2tleS5jdXJ2ZS5fX2NsYXNzX18KLSAgICAgICAgKToKLSAgICAgICAgICAgIHNoYXJl
ZF9rZXkgPSBzZWxmLl9lY19wcml2YXRlX2tleS5leGNoYW5nZShlYy5FQ0RIKCksIHBlZXJfcHVi
bGljX2tleSkKLSAgICAgICAgYXNzZXJ0IHNoYXJlZF9rZXkgaXMgbm90IE5vbmUKLQotICAgICAg
ICBzZWxmLmtleV9zY2hlZHVsZS51cGRhdGVfaGFzaChpbnB1dF9idWYuZGF0YSkKLSAgICAgICAg
c2VsZi5rZXlfc2NoZWR1bGUuZXh0cmFjdChzaGFyZWRfa2V5KQotCi0gICAgICAgIHNlbGYuX3Nl
dHVwX3RyYWZmaWNfcHJvdGVjdGlvbigKLSAgICAgICAgICAgIERpcmVjdGlvbi5ERUNSWVBULCBF
cG9jaC5IQU5EU0hBS0UsIGIicyBocyB0cmFmZmljIgotICAgICAgICApCi0KLSAgICAgICAgc2Vs
Zi5fc2V0X3N0YXRlKFN0YXRlLkNMSUVOVF9FWFBFQ1RfRU5DUllQVEVEX0VYVEVOU0lPTlMpCi0K
LSAgICBkZWYgX2NsaWVudF9oYW5kbGVfZW5jcnlwdGVkX2V4dGVuc2lvbnMoc2VsZiwgaW5wdXRf
YnVmOiBCdWZmZXIpIC0+IE5vbmU6Ci0gICAgICAgIGVuY3J5cHRlZF9leHRlbnNpb25zID0gcHVs
bF9lbmNyeXB0ZWRfZXh0ZW5zaW9ucyhpbnB1dF9idWYpCi0KLSAgICAgICAgc2VsZi5hbHBuX25l
Z290aWF0ZWQgPSBlbmNyeXB0ZWRfZXh0ZW5zaW9ucy5hbHBuX3Byb3RvY29sCi0gICAgICAgIHNl
bGYuZWFybHlfZGF0YV9hY2NlcHRlZCA9IGVuY3J5cHRlZF9leHRlbnNpb25zLmVhcmx5X2RhdGEK
LSAgICAgICAgc2VsZi5yZWNlaXZlZF9leHRlbnNpb25zID0gZW5jcnlwdGVkX2V4dGVuc2lvbnMu
b3RoZXJfZXh0ZW5zaW9ucwotICAgICAgICBpZiBzZWxmLmFscG5fY2I6Ci0gICAgICAgICAgICBz
ZWxmLmFscG5fY2Ioc2VsZi5hbHBuX25lZ290aWF0ZWQpCi0KLSAgICAgICAgc2VsZi5fc2V0dXBf
dHJhZmZpY19wcm90ZWN0aW9uKAotICAgICAgICAgICAgRGlyZWN0aW9uLkVOQ1JZUFQsIEVwb2No
LkhBTkRTSEFLRSwgYiJjIGhzIHRyYWZmaWMiCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5rZXlf
c2NoZWR1bGUudXBkYXRlX2hhc2goaW5wdXRfYnVmLmRhdGEpCi0KLSAgICAgICAgIyBpZiB0aGUg
c2VydmVyIGFjY2VwdGVkIG91ciBQU0sgd2UgYXJlIGRvbmUsIG90aGVyIHdlIHdhbnQgaXRzIGNl
cnRpZmljYXRlCi0gICAgICAgIGlmIHNlbGYuX3Nlc3Npb25fcmVzdW1lZDoKLSAgICAgICAgICAg
IHNlbGYuX3NldF9zdGF0ZShTdGF0ZS5DTElFTlRfRVhQRUNUX0ZJTklTSEVEKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5fc2V0X3N0YXRlKFN0YXRlLkNMSUVOVF9FWFBFQ1RfQ0VS
VElGSUNBVEVfUkVRVUVTVF9PUl9DRVJUSUZJQ0FURSkKLQotICAgIGRlZiBfY2xpZW50X2hhbmRs
ZV9jZXJ0aWZpY2F0ZShzZWxmLCBpbnB1dF9idWY6IEJ1ZmZlcikgLT4gTm9uZToKLSAgICAgICAg
Y2VydGlmaWNhdGUgPSBwdWxsX2NlcnRpZmljYXRlKGlucHV0X2J1ZikKLQotICAgICAgICBzZWxm
Ll9wZWVyX2NlcnRpZmljYXRlID0geDUwOS5sb2FkX2Rlcl94NTA5X2NlcnRpZmljYXRlKAotICAg
ICAgICAgICAgY2VydGlmaWNhdGUuY2VydGlmaWNhdGVzWzBdWzBdLCBiYWNrZW5kPWRlZmF1bHRf
YmFja2VuZCgpCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5fcGVlcl9jZXJ0aWZpY2F0ZV9jaGFp
biA9IFsKLSAgICAgICAgICAgIHg1MDkubG9hZF9kZXJfeDUwOV9jZXJ0aWZpY2F0ZSgKLSAgICAg
ICAgICAgICAgICBjZXJ0aWZpY2F0ZS5jZXJ0aWZpY2F0ZXNbaV1bMF0sIGJhY2tlbmQ9ZGVmYXVs
dF9iYWNrZW5kKCkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDEs
IGxlbihjZXJ0aWZpY2F0ZS5jZXJ0aWZpY2F0ZXMpKQotICAgICAgICBdCi0KLSAgICAgICAgc2Vs
Zi5rZXlfc2NoZWR1bGUudXBkYXRlX2hhc2goaW5wdXRfYnVmLmRhdGEpCi0KLSAgICAgICAgc2Vs
Zi5fc2V0X3N0YXRlKFN0YXRlLkNMSUVOVF9FWFBFQ1RfQ0VSVElGSUNBVEVfVkVSSUZZKQotCi0g
ICAgZGVmIF9jbGllbnRfaGFuZGxlX2NlcnRpZmljYXRlX3ZlcmlmeShzZWxmLCBpbnB1dF9idWY6
IEJ1ZmZlcikgLT4gTm9uZToKLSAgICAgICAgdmVyaWZ5ID0gcHVsbF9jZXJ0aWZpY2F0ZV92ZXJp
ZnkoaW5wdXRfYnVmKQotCi0gICAgICAgIGFzc2VydCB2ZXJpZnkuYWxnb3JpdGhtIGluIHNlbGYu
X3NpZ25hdHVyZV9hbGdvcml0aG1zCi0KLSAgICAgICAgIyBjaGVjayBzaWduYXR1cmUKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcGVlcl9jZXJ0aWZpY2F0ZS5wdWJsaWNfa2V5KCku
dmVyaWZ5KAotICAgICAgICAgICAgICAgIHZlcmlmeS5zaWduYXR1cmUsCi0gICAgICAgICAgICAg
ICAgc2VsZi5rZXlfc2NoZWR1bGUuY2VydGlmaWNhdGVfdmVyaWZ5X2RhdGEoCi0gICAgICAgICAg
ICAgICAgICAgIGIiVExTIDEuMywgc2VydmVyIENlcnRpZmljYXRlVmVyaWZ5IgotICAgICAgICAg
ICAgICAgICksCi0gICAgICAgICAgICAgICAgKnNpZ25hdHVyZV9hbGdvcml0aG1fcGFyYW1zKHZl
cmlmeS5hbGdvcml0aG0pLAotICAgICAgICAgICAgKQotICAgICAgICBleGNlcHQgSW52YWxpZFNp
Z25hdHVyZToKLSAgICAgICAgICAgIHJhaXNlIEFsZXJ0RGVjcnlwdEVycm9yCi0KLSAgICAgICAg
IyBjaGVjayBjZXJ0aWZpY2F0ZQotICAgICAgICBpZiBzZWxmLl92ZXJpZnlfbW9kZSAhPSBzc2wu
Q0VSVF9OT05FOgotICAgICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAg
ICAgIGNhZGF0YT1zZWxmLl9jYWRhdGEsCi0gICAgICAgICAgICAgICAgY2FmaWxlPXNlbGYuX2Nh
ZmlsZSwKLSAgICAgICAgICAgICAgICBjYXBhdGg9c2VsZi5fY2FwYXRoLAotICAgICAgICAgICAg
ICAgIGNlcnRpZmljYXRlPXNlbGYuX3BlZXJfY2VydGlmaWNhdGUsCi0gICAgICAgICAgICAgICAg
Y2hhaW49c2VsZi5fcGVlcl9jZXJ0aWZpY2F0ZV9jaGFpbiwKLSAgICAgICAgICAgICAgICBzZXJ2
ZXJfbmFtZT1zZWxmLl9zZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICBzZWxm
LmtleV9zY2hlZHVsZS51cGRhdGVfaGFzaChpbnB1dF9idWYuZGF0YSkKLQotICAgICAgICBzZWxm
Ll9zZXRfc3RhdGUoU3RhdGUuQ0xJRU5UX0VYUEVDVF9GSU5JU0hFRCkKLQotICAgIGRlZiBfY2xp
ZW50X2hhbmRsZV9maW5pc2hlZChzZWxmLCBpbnB1dF9idWY6IEJ1ZmZlciwgb3V0cHV0X2J1Zjog
QnVmZmVyKSAtPiBOb25lOgotICAgICAgICBmaW5pc2hlZCA9IHB1bGxfZmluaXNoZWQoaW5wdXRf
YnVmKQotCi0gICAgICAgICMgY2hlY2sgdmVyaWZ5IGRhdGEKLSAgICAgICAgZXhwZWN0ZWRfdmVy
aWZ5X2RhdGEgPSBzZWxmLmtleV9zY2hlZHVsZS5maW5pc2hlZF92ZXJpZnlfZGF0YShzZWxmLl9k
ZWNfa2V5KQotICAgICAgICBpZiBmaW5pc2hlZC52ZXJpZnlfZGF0YSAhPSBleHBlY3RlZF92ZXJp
ZnlfZGF0YToKLSAgICAgICAgICAgIHJhaXNlIEFsZXJ0RGVjcnlwdEVycm9yCi0gICAgICAgIHNl
bGYua2V5X3NjaGVkdWxlLnVwZGF0ZV9oYXNoKGlucHV0X2J1Zi5kYXRhKQotCi0gICAgICAgICMg
cHJlcGFyZSB0cmFmZmljIGtleXMKLSAgICAgICAgYXNzZXJ0IHNlbGYua2V5X3NjaGVkdWxlLmdl
bmVyYXRpb24gPT0gMgotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS5leHRyYWN0KE5vbmUpCi0g
ICAgICAgIHNlbGYuX3NldHVwX3RyYWZmaWNfcHJvdGVjdGlvbigKLSAgICAgICAgICAgIERpcmVj
dGlvbi5ERUNSWVBULCBFcG9jaC5PTkVfUlRULCBiInMgYXAgdHJhZmZpYyIKLSAgICAgICAgKQot
ICAgICAgICBuZXh0X2VuY19rZXkgPSBzZWxmLmtleV9zY2hlZHVsZS5kZXJpdmVfc2VjcmV0KGIi
YyBhcCB0cmFmZmljIikKLQotICAgICAgICAjIHNlbmQgZmluaXNoZWQKLSAgICAgICAgd2l0aCBw
dXNoX21lc3NhZ2Uoc2VsZi5rZXlfc2NoZWR1bGUsIG91dHB1dF9idWYpOgotICAgICAgICAgICAg
cHVzaF9maW5pc2hlZCgKLSAgICAgICAgICAgICAgICBvdXRwdXRfYnVmLAotICAgICAgICAgICAg
ICAgIEZpbmlzaGVkKAotICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfZGF0YT1zZWxmLmtleV9z
Y2hlZHVsZS5maW5pc2hlZF92ZXJpZnlfZGF0YShzZWxmLl9lbmNfa2V5KQotICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBjb21taXQgdHJhZmZpYyBrZXkKLSAg
ICAgICAgc2VsZi5fZW5jX2tleSA9IG5leHRfZW5jX2tleQotICAgICAgICBzZWxmLnVwZGF0ZV90
cmFmZmljX2tleV9jYigKLSAgICAgICAgICAgIERpcmVjdGlvbi5FTkNSWVBULAotICAgICAgICAg
ICAgRXBvY2guT05FX1JUVCwKLSAgICAgICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLmNpcGhlcl9z
dWl0ZSwKLSAgICAgICAgICAgIHNlbGYuX2VuY19rZXksCi0gICAgICAgICkKLQotICAgICAgICBz
ZWxmLl9zZXRfc3RhdGUoU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFKQotCi0gICAgZGVmIF9j
bGllbnRfaGFuZGxlX25ld19zZXNzaW9uX3RpY2tldChzZWxmLCBpbnB1dF9idWY6IEJ1ZmZlcikg
LT4gTm9uZToKLSAgICAgICAgbmV3X3Nlc3Npb25fdGlja2V0ID0gcHVsbF9uZXdfc2Vzc2lvbl90
aWNrZXQoaW5wdXRfYnVmKQotCi0gICAgICAgICMgbm90aWZ5IGFwcGxpY2F0aW9uCi0gICAgICAg
IGlmIHNlbGYubmV3X3Nlc3Npb25fdGlja2V0X2NiIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
dGlja2V0ID0gc2VsZi5fYnVpbGRfc2Vzc2lvbl90aWNrZXQobmV3X3Nlc3Npb25fdGlja2V0KQot
ICAgICAgICAgICAgc2VsZi5uZXdfc2Vzc2lvbl90aWNrZXRfY2IodGlja2V0KQotCi0gICAgZGVm
IF9zZXJ2ZXJfaGFuZGxlX2hlbGxvKAotICAgICAgICBzZWxmLAotICAgICAgICBpbnB1dF9idWY6
IEJ1ZmZlciwKLSAgICAgICAgaW5pdGlhbF9idWY6IEJ1ZmZlciwKLSAgICAgICAgaGFuZHNoYWtl
X2J1ZjogQnVmZmVyLAotICAgICAgICBvbmVydHRfYnVmOiBCdWZmZXIsCi0gICAgKSAtPiBOb25l
OgotICAgICAgICBwZWVyX2hlbGxvID0gcHVsbF9jbGllbnRfaGVsbG8oaW5wdXRfYnVmKQotCi0g
ICAgICAgICMgZGV0ZXJtaW5lIGFwcGxpY2FibGUgc2lnbmF0dXJlIGFsZ29yaXRobXMKLSAgICAg
ICAgc2lnbmF0dXJlX2FsZ29yaXRobXM6IExpc3RbU2lnbmF0dXJlQWxnb3JpdGhtXSA9IFtdCi0g
ICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jZXJ0aWZpY2F0ZV9wcml2YXRlX2tleSwgcnNhLlJT
QVByaXZhdGVLZXkpOgotICAgICAgICAgICAgc2lnbmF0dXJlX2FsZ29yaXRobXMgPSBbCi0gICAg
ICAgICAgICAgICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEyNTYsCi0gICAg
ICAgICAgICAgICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEEyNTYsCi0gICAgICAg
ICAgICAgICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEExLAotICAgICAgICAgICAg
XQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoCi0gICAgICAgICAgICBzZWxmLmNlcnRpZmljYXRl
X3ByaXZhdGVfa2V5LCBlYy5FbGxpcHRpY0N1cnZlUHJpdmF0ZUtleQotICAgICAgICApIGFuZCBp
c2luc3RhbmNlKHNlbGYuY2VydGlmaWNhdGVfcHJpdmF0ZV9rZXkuY3VydmUsIGVjLlNFQ1AyNTZS
MSk6Ci0gICAgICAgICAgICBzaWduYXR1cmVfYWxnb3JpdGhtcyA9IFtTaWduYXR1cmVBbGdvcml0
aG0uRUNEU0FfU0VDUDI1NlIxX1NIQTI1Nl0KLQotICAgICAgICAjIG5lZ290aWF0ZSBwYXJhbWV0
ZXJzCi0gICAgICAgIGNpcGhlcl9zdWl0ZSA9IG5lZ290aWF0ZSgKLSAgICAgICAgICAgIHNlbGYu
X2NpcGhlcl9zdWl0ZXMsCi0gICAgICAgICAgICBwZWVyX2hlbGxvLmNpcGhlcl9zdWl0ZXMsCi0g
ICAgICAgICAgICBBbGVydEhhbmRzaGFrZUZhaWx1cmUoIk5vIHN1cHBvcnRlZCBjaXBoZXIgc3Vp
dGUiKSwKLSAgICAgICAgKQotICAgICAgICBjb21wcmVzc2lvbl9tZXRob2QgPSBuZWdvdGlhdGUo
Ci0gICAgICAgICAgICBzZWxmLl9sZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kcywKLSAgICAgICAg
ICAgIHBlZXJfaGVsbG8ubGVnYWN5X2NvbXByZXNzaW9uX21ldGhvZHMsCi0gICAgICAgICAgICBB
bGVydEhhbmRzaGFrZUZhaWx1cmUoIk5vIHN1cHBvcnRlZCBjb21wcmVzc2lvbiBtZXRob2QiKSwK
LSAgICAgICAgKQotICAgICAgICBwc2tfa2V5X2V4Y2hhbmdlX21vZGUgPSBuZWdvdGlhdGUoCi0g
ICAgICAgICAgICBzZWxmLl9wc2tfa2V5X2V4Y2hhbmdlX21vZGVzLCBwZWVyX2hlbGxvLnBza19r
ZXlfZXhjaGFuZ2VfbW9kZXMKLSAgICAgICAgKQotICAgICAgICBzaWduYXR1cmVfYWxnb3JpdGht
ID0gbmVnb3RpYXRlKAotICAgICAgICAgICAgc2lnbmF0dXJlX2FsZ29yaXRobXMsCi0gICAgICAg
ICAgICBwZWVyX2hlbGxvLnNpZ25hdHVyZV9hbGdvcml0aG1zLAotICAgICAgICAgICAgQWxlcnRI
YW5kc2hha2VGYWlsdXJlKCJObyBzdXBwb3J0ZWQgc2lnbmF0dXJlIGFsZ29yaXRobSIpLAotICAg
ICAgICApCi0gICAgICAgIHN1cHBvcnRlZF92ZXJzaW9uID0gbmVnb3RpYXRlKAotICAgICAgICAg
ICAgc2VsZi5fc3VwcG9ydGVkX3ZlcnNpb25zLAotICAgICAgICAgICAgcGVlcl9oZWxsby5zdXBw
b3J0ZWRfdmVyc2lvbnMsCi0gICAgICAgICAgICBBbGVydFByb3RvY29sVmVyc2lvbigiTm8gc3Vw
cG9ydGVkIHByb3RvY29sIHZlcnNpb24iKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgbmVnb3Rp
YXRlIEFMUE4KLSAgICAgICAgaWYgc2VsZi5fYWxwbl9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLmFscG5fbmVnb3RpYXRlZCA9IG5lZ290aWF0ZSgKLSAgICAgICAgICAg
ICAgICBzZWxmLl9hbHBuX3Byb3RvY29scywKLSAgICAgICAgICAgICAgICBwZWVyX2hlbGxvLmFs
cG5fcHJvdG9jb2xzLAotICAgICAgICAgICAgICAgIEFsZXJ0SGFuZHNoYWtlRmFpbHVyZSgiTm8g
Y29tbW9uIEFMUE4gcHJvdG9jb2xzIiksCi0gICAgICAgICAgICApCi0gICAgICAgIGlmIHNlbGYu
YWxwbl9jYjoKLSAgICAgICAgICAgIHNlbGYuYWxwbl9jYihzZWxmLmFscG5fbmVnb3RpYXRlZCkK
LQotICAgICAgICBzZWxmLmNsaWVudF9yYW5kb20gPSBwZWVyX2hlbGxvLnJhbmRvbQotICAgICAg
ICBzZWxmLnNlcnZlcl9yYW5kb20gPSBvcy51cmFuZG9tKDMyKQotICAgICAgICBzZWxmLmxlZ2Fj
eV9zZXNzaW9uX2lkID0gcGVlcl9oZWxsby5sZWdhY3lfc2Vzc2lvbl9pZAotICAgICAgICBzZWxm
LnJlY2VpdmVkX2V4dGVuc2lvbnMgPSBwZWVyX2hlbGxvLm90aGVyX2V4dGVuc2lvbnMKLQotICAg
ICAgICAjIHNlbGVjdCBrZXkgc2NoZWR1bGUKLSAgICAgICAgcHJlX3NoYXJlZF9rZXkgPSBOb25l
Ci0gICAgICAgIGlmICgKLSAgICAgICAgICAgIHNlbGYuZ2V0X3Nlc3Npb25fdGlja2V0X2NiIGlz
IG5vdCBOb25lCi0gICAgICAgICAgICBhbmQgcHNrX2tleV9leGNoYW5nZV9tb2RlIGlzIG5vdCBO
b25lCi0gICAgICAgICAgICBhbmQgcGVlcl9oZWxsby5wcmVfc2hhcmVkX2tleSBpcyBub3QgTm9u
ZQotICAgICAgICAgICAgYW5kIGxlbihwZWVyX2hlbGxvLnByZV9zaGFyZWRfa2V5LmlkZW50aXRp
ZXMpID09IDEKLSAgICAgICAgICAgIGFuZCBsZW4ocGVlcl9oZWxsby5wcmVfc2hhcmVkX2tleS5i
aW5kZXJzKSA9PSAxCi0gICAgICAgICk6Ci0gICAgICAgICAgICAjIGFzayBhcHBsaWNhdGlvbiB0
byBmaW5kIHNlc3Npb24gdGlja2V0Ci0gICAgICAgICAgICBpZGVudGl0eSA9IHBlZXJfaGVsbG8u
cHJlX3NoYXJlZF9rZXkuaWRlbnRpdGllc1swXQotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXQg
PSBzZWxmLmdldF9zZXNzaW9uX3RpY2tldF9jYihpZGVudGl0eVswXSkKLQotICAgICAgICAgICAg
IyB2YWxpZGF0ZSBzZXNzaW9uIHRpY2tldAotICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAg
ICAgIHNlc3Npb25fdGlja2V0IGlzIG5vdCBOb25lCi0gICAgICAgICAgICAgICAgYW5kIHNlc3Np
b25fdGlja2V0LmlzX3ZhbGlkCi0gICAgICAgICAgICAgICAgYW5kIHNlc3Npb25fdGlja2V0LmNp
cGhlcl9zdWl0ZSA9PSBjaXBoZXJfc3VpdGUKLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5rZXlfc2NoZWR1bGUgPSBLZXlTY2hlZHVsZShjaXBoZXJfc3VpdGUpCi0gICAgICAg
ICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUuZXh0cmFjdChzZXNzaW9uX3RpY2tldC5yZXN1bXB0
aW9uX3NlY3JldCkKLQotICAgICAgICAgICAgICAgIGJpbmRlcl9rZXkgPSBzZWxmLmtleV9zY2hl
ZHVsZS5kZXJpdmVfc2VjcmV0KGIicmVzIGJpbmRlciIpCi0gICAgICAgICAgICAgICAgYmluZGVy
X2xlbmd0aCA9IHNlbGYua2V5X3NjaGVkdWxlLmFsZ29yaXRobS5kaWdlc3Rfc2l6ZQotCi0gICAg
ICAgICAgICAgICAgaGFzaF9vZmZzZXQgPSBpbnB1dF9idWYudGVsbCgpIC0gYmluZGVyX2xlbmd0
aCAtIDMKLSAgICAgICAgICAgICAgICBiaW5kZXIgPSBpbnB1dF9idWYuZGF0YV9zbGljZSgKLSAg
ICAgICAgICAgICAgICAgICAgaGFzaF9vZmZzZXQgKyAzLCBoYXNoX29mZnNldCArIDMgKyBiaW5k
ZXJfbGVuZ3RoCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgc2VsZi5rZXlf
c2NoZWR1bGUudXBkYXRlX2hhc2goaW5wdXRfYnVmLmRhdGFfc2xpY2UoMCwgaGFzaF9vZmZzZXQp
KQotICAgICAgICAgICAgICAgIGV4cGVjdGVkX2JpbmRlciA9IHNlbGYua2V5X3NjaGVkdWxlLmZp
bmlzaGVkX3ZlcmlmeV9kYXRhKGJpbmRlcl9rZXkpCi0KLSAgICAgICAgICAgICAgICBpZiBiaW5k
ZXIgIT0gZXhwZWN0ZWRfYmluZGVyOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBBbGVydEhh
bmRzaGFrZUZhaWx1cmUoIlBTSyB2YWxpZGF0aW9uIGZhaWxlZCIpCi0KLSAgICAgICAgICAgICAg
ICBzZWxmLmtleV9zY2hlZHVsZS51cGRhdGVfaGFzaCgKLSAgICAgICAgICAgICAgICAgICAgaW5w
dXRfYnVmLmRhdGFfc2xpY2UoaGFzaF9vZmZzZXQsIGhhc2hfb2Zmc2V0ICsgMyArIGJpbmRlcl9s
ZW5ndGgpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHNlbGYuX3Nlc3Npb25f
cmVzdW1lZCA9IFRydWUKLQotICAgICAgICAgICAgICAgICMgY2FsY3VsYXRlIGVhcmx5IGRhdGEg
a2V5Ci0gICAgICAgICAgICAgICAgaWYgcGVlcl9oZWxsby5lYXJseV9kYXRhOgotICAgICAgICAg
ICAgICAgICAgICBlYXJseV9rZXkgPSBzZWxmLmtleV9zY2hlZHVsZS5kZXJpdmVfc2VjcmV0KGIi
YyBlIHRyYWZmaWMiKQotICAgICAgICAgICAgICAgICAgICBzZWxmLmVhcmx5X2RhdGFfYWNjZXB0
ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlX3RyYWZmaWNfa2V5X2Ni
KAotICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0aW9uLkRFQ1JZUFQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBFcG9jaC5aRVJPX1JUVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYua2V5X3NjaGVkdWxlLmNpcGhlcl9zdWl0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVh
cmx5X2tleSwKLSAgICAgICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgcHJlX3No
YXJlZF9rZXkgPSAwCi0KLSAgICAgICAgIyBpZiBQU0sgaXMgbm90IHVzZWQsIGluaXRpYWxpemUg
a2V5IHNjaGVkdWxlCi0gICAgICAgIGlmIHByZV9zaGFyZWRfa2V5IGlzIE5vbmU6Ci0gICAgICAg
ICAgICBzZWxmLmtleV9zY2hlZHVsZSA9IEtleVNjaGVkdWxlKGNpcGhlcl9zdWl0ZSkKLSAgICAg
ICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLmV4dHJhY3QoTm9uZSkKLSAgICAgICAgICAgIHNlbGYu
a2V5X3NjaGVkdWxlLnVwZGF0ZV9oYXNoKGlucHV0X2J1Zi5kYXRhKQotCi0gICAgICAgICMgcGVy
Zm9ybSBrZXkgZXhjaGFuZ2UKLSAgICAgICAgcHVibGljX2tleTogVW5pb25bCi0gICAgICAgICAg
ICBlYy5FbGxpcHRpY0N1cnZlUHVibGljS2V5LCB4MjU1MTkuWDI1NTE5UHVibGljS2V5LCB4NDQ4
Llg0NDhQdWJsaWNLZXkKLSAgICAgICAgXQotICAgICAgICBzaGFyZWRfa2V5OiBPcHRpb25hbFti
eXRlc10gPSBOb25lCi0gICAgICAgIGZvciBrZXlfc2hhcmUgaW4gcGVlcl9oZWxsby5rZXlfc2hh
cmU6Ci0gICAgICAgICAgICBwZWVyX3B1YmxpY19rZXkgPSBkZWNvZGVfcHVibGljX2tleShrZXlf
c2hhcmUpCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBlZXJfcHVibGljX2tleSwgeDI1NTE5
LlgyNTUxOVB1YmxpY0tleSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5feDI1NTE5X3ByaXZhdGVf
a2V5ID0geDI1NTE5LlgyNTUxOVByaXZhdGVLZXkuZ2VuZXJhdGUoKQotICAgICAgICAgICAgICAg
IHB1YmxpY19rZXkgPSBzZWxmLl94MjU1MTlfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpCi0gICAg
ICAgICAgICAgICAgc2hhcmVkX2tleSA9IHNlbGYuX3gyNTUxOV9wcml2YXRlX2tleS5leGNoYW5n
ZShwZWVyX3B1YmxpY19rZXkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShwZWVyX3B1YmxpY19rZXksIHg0NDguWDQ0OFB1YmxpY0tleSk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5feDQ0OF9wcml2YXRlX2tleSA9IHg0NDguWDQ0OFByaXZhdGVLZXku
Z2VuZXJhdGUoKQotICAgICAgICAgICAgICAgIHB1YmxpY19rZXkgPSBzZWxmLl94NDQ4X3ByaXZh
dGVfa2V5LnB1YmxpY19rZXkoKQotICAgICAgICAgICAgICAgIHNoYXJlZF9rZXkgPSBzZWxmLl94
NDQ4X3ByaXZhdGVfa2V5LmV4Y2hhbmdlKHBlZXJfcHVibGljX2tleSkKLSAgICAgICAgICAgICAg
ICBicmVhawotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBlZXJfcHVibGljX2tleSwgZWMu
RWxsaXB0aWNDdXJ2ZVB1YmxpY0tleSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZWNfcHJpdmF0
ZV9rZXkgPSBlYy5nZW5lcmF0ZV9wcml2YXRlX2tleSgKLSAgICAgICAgICAgICAgICAgICAgR1JP
VVBfVE9fQ1VSVkVba2V5X3NoYXJlWzBdXSgpLCBkZWZhdWx0X2JhY2tlbmQoKQotICAgICAgICAg
ICAgICAgICkKLSAgICAgICAgICAgICAgICBwdWJsaWNfa2V5ID0gc2VsZi5fZWNfcHJpdmF0ZV9r
ZXkucHVibGljX2tleSgpCi0gICAgICAgICAgICAgICAgc2hhcmVkX2tleSA9IHNlbGYuX2VjX3By
aXZhdGVfa2V5LmV4Y2hhbmdlKGVjLkVDREgoKSwgcGVlcl9wdWJsaWNfa2V5KQotICAgICAgICAg
ICAgICAgIGJyZWFrCi0gICAgICAgIGFzc2VydCBzaGFyZWRfa2V5IGlzIG5vdCBOb25lCi0KLSAg
ICAgICAgIyBzZW5kIGhlbGxvCi0gICAgICAgIGhlbGxvID0gU2VydmVySGVsbG8oCi0gICAgICAg
ICAgICByYW5kb209c2VsZi5zZXJ2ZXJfcmFuZG9tLAotICAgICAgICAgICAgbGVnYWN5X3Nlc3Np
b25faWQ9c2VsZi5sZWdhY3lfc2Vzc2lvbl9pZCwKLSAgICAgICAgICAgIGNpcGhlcl9zdWl0ZT1j
aXBoZXJfc3VpdGUsCi0gICAgICAgICAgICBjb21wcmVzc2lvbl9tZXRob2Q9Y29tcHJlc3Npb25f
bWV0aG9kLAotICAgICAgICAgICAga2V5X3NoYXJlPWVuY29kZV9wdWJsaWNfa2V5KHB1YmxpY19r
ZXkpLAotICAgICAgICAgICAgcHJlX3NoYXJlZF9rZXk9cHJlX3NoYXJlZF9rZXksCi0gICAgICAg
ICAgICBzdXBwb3J0ZWRfdmVyc2lvbj1zdXBwb3J0ZWRfdmVyc2lvbiwKLSAgICAgICAgKQotICAg
ICAgICB3aXRoIHB1c2hfbWVzc2FnZShzZWxmLmtleV9zY2hlZHVsZSwgaW5pdGlhbF9idWYpOgot
ICAgICAgICAgICAgcHVzaF9zZXJ2ZXJfaGVsbG8oaW5pdGlhbF9idWYsIGhlbGxvKQotICAgICAg
ICBzZWxmLmtleV9zY2hlZHVsZS5leHRyYWN0KHNoYXJlZF9rZXkpCi0KLSAgICAgICAgc2VsZi5f
c2V0dXBfdHJhZmZpY19wcm90ZWN0aW9uKAotICAgICAgICAgICAgRGlyZWN0aW9uLkVOQ1JZUFQs
IEVwb2NoLkhBTkRTSEFLRSwgYiJzIGhzIHRyYWZmaWMiCi0gICAgICAgICkKLSAgICAgICAgc2Vs
Zi5fc2V0dXBfdHJhZmZpY19wcm90ZWN0aW9uKAotICAgICAgICAgICAgRGlyZWN0aW9uLkRFQ1JZ
UFQsIEVwb2NoLkhBTkRTSEFLRSwgYiJjIGhzIHRyYWZmaWMiCi0gICAgICAgICkKLQotICAgICAg
ICAjIHNlbmQgZW5jcnlwdGVkIGV4dGVuc2lvbnMKLSAgICAgICAgd2l0aCBwdXNoX21lc3NhZ2Uo
c2VsZi5rZXlfc2NoZWR1bGUsIGhhbmRzaGFrZV9idWYpOgotICAgICAgICAgICAgcHVzaF9lbmNy
eXB0ZWRfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICBoYW5kc2hha2VfYnVmLAotICAgICAg
ICAgICAgICAgIEVuY3J5cHRlZEV4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgICAgIGFscG5f
cHJvdG9jb2w9c2VsZi5hbHBuX25lZ290aWF0ZWQsCi0gICAgICAgICAgICAgICAgICAgIGVhcmx5
X2RhdGE9c2VsZi5lYXJseV9kYXRhX2FjY2VwdGVkLAotICAgICAgICAgICAgICAgICAgICBvdGhl
cl9leHRlbnNpb25zPXNlbGYuaGFuZHNoYWtlX2V4dGVuc2lvbnMsCi0gICAgICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICkKLQotICAgICAgICBpZiBwcmVfc2hhcmVkX2tleSBpcyBOb25lOgot
ICAgICAgICAgICAgIyBzZW5kIGNlcnRpZmljYXRlCi0gICAgICAgICAgICB3aXRoIHB1c2hfbWVz
c2FnZShzZWxmLmtleV9zY2hlZHVsZSwgaGFuZHNoYWtlX2J1Zik6Ci0gICAgICAgICAgICAgICAg
cHVzaF9jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlX2J1ZiwKLSAg
ICAgICAgICAgICAgICAgICAgQ2VydGlmaWNhdGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0X2NvbnRleHQ9YiIiLAotICAgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVz
PVsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeC5wdWJsaWNfYnl0ZXMoRW5jb2Rpbmcu
REVSKSwgYiIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIFtzZWxmLmNl
cnRpZmljYXRlXSArIHNlbGYuY2VydGlmaWNhdGVfY2hhaW4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgKQotCi0gICAg
ICAgICAgICAjIHNlbmQgY2VydGlmaWNhdGUgdmVyaWZ5Ci0gICAgICAgICAgICBzaWduYXR1cmUg
PSBzZWxmLmNlcnRpZmljYXRlX3ByaXZhdGVfa2V5LnNpZ24oCi0gICAgICAgICAgICAgICAgc2Vs
Zi5rZXlfc2NoZWR1bGUuY2VydGlmaWNhdGVfdmVyaWZ5X2RhdGEoCi0gICAgICAgICAgICAgICAg
ICAgIGIiVExTIDEuMywgc2VydmVyIENlcnRpZmljYXRlVmVyaWZ5IgotICAgICAgICAgICAgICAg
ICksCi0gICAgICAgICAgICAgICAgKnNpZ25hdHVyZV9hbGdvcml0aG1fcGFyYW1zKHNpZ25hdHVy
ZV9hbGdvcml0aG0pLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgd2l0aCBwdXNoX21lc3Nh
Z2Uoc2VsZi5rZXlfc2NoZWR1bGUsIGhhbmRzaGFrZV9idWYpOgotICAgICAgICAgICAgICAgIHB1
c2hfY2VydGlmaWNhdGVfdmVyaWZ5KAotICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2VfYnVm
LAotICAgICAgICAgICAgICAgICAgICBDZXJ0aWZpY2F0ZVZlcmlmeSgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFsZ29yaXRobT1zaWduYXR1cmVfYWxnb3JpdGhtLCBzaWduYXR1cmU9c2lnbmF0
dXJlCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAg
ICMgc2VuZCBmaW5pc2hlZAotICAgICAgICB3aXRoIHB1c2hfbWVzc2FnZShzZWxmLmtleV9zY2hl
ZHVsZSwgaGFuZHNoYWtlX2J1Zik6Ci0gICAgICAgICAgICBwdXNoX2ZpbmlzaGVkKAotICAgICAg
ICAgICAgICAgIGhhbmRzaGFrZV9idWYsCi0gICAgICAgICAgICAgICAgRmluaXNoZWQoCi0gICAg
ICAgICAgICAgICAgICAgIHZlcmlmeV9kYXRhPXNlbGYua2V5X3NjaGVkdWxlLmZpbmlzaGVkX3Zl
cmlmeV9kYXRhKHNlbGYuX2VuY19rZXkpCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAg
ICkKLQotICAgICAgICAjIHByZXBhcmUgdHJhZmZpYyBrZXlzCi0gICAgICAgIGFzc2VydCBzZWxm
LmtleV9zY2hlZHVsZS5nZW5lcmF0aW9uID09IDIKLSAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUu
ZXh0cmFjdChOb25lKQotICAgICAgICBzZWxmLl9zZXR1cF90cmFmZmljX3Byb3RlY3Rpb24oCi0g
ICAgICAgICAgICBEaXJlY3Rpb24uRU5DUllQVCwgRXBvY2guT05FX1JUVCwgYiJzIGFwIHRyYWZm
aWMiCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5fbmV4dF9kZWNfa2V5ID0gc2VsZi5rZXlfc2No
ZWR1bGUuZGVyaXZlX3NlY3JldChiImMgYXAgdHJhZmZpYyIpCi0KLSAgICAgICAgIyBhbnRpY2lw
YXRlIGNsaWVudCdzIEZJTklTSEVEIGFzIHdlIGRvbid0IHVzZSBjbGllbnQgYXV0aAotICAgICAg
ICBzZWxmLl9leHBlY3RlZF92ZXJpZnlfZGF0YSA9IHNlbGYua2V5X3NjaGVkdWxlLmZpbmlzaGVk
X3ZlcmlmeV9kYXRhKAotICAgICAgICAgICAgc2VsZi5fZGVjX2tleQotICAgICAgICApCi0gICAg
ICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT02NCkKLSAgICAgICAgcHVzaF9maW5pc2hlZChidWYs
IEZpbmlzaGVkKHZlcmlmeV9kYXRhPXNlbGYuX2V4cGVjdGVkX3ZlcmlmeV9kYXRhKSkKLSAgICAg
ICAgc2VsZi5rZXlfc2NoZWR1bGUudXBkYXRlX2hhc2goYnVmLmRhdGEpCi0KLSAgICAgICAgIyBj
cmVhdGUgYSBuZXcgc2Vzc2lvbiB0aWNrZXQKLSAgICAgICAgaWYgc2VsZi5uZXdfc2Vzc2lvbl90
aWNrZXRfY2IgaXMgbm90IE5vbmUgYW5kIHBza19rZXlfZXhjaGFuZ2VfbW9kZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuX25ld19zZXNzaW9uX3RpY2tldCA9IE5ld1Nlc3Npb25UaWNr
ZXQoCi0gICAgICAgICAgICAgICAgdGlja2V0X2xpZmV0aW1lPTg2NDAwLAotICAgICAgICAgICAg
ICAgIHRpY2tldF9hZ2VfYWRkPXN0cnVjdC51bnBhY2soIkkiLCBvcy51cmFuZG9tKDQpKVswXSwK
LSAgICAgICAgICAgICAgICB0aWNrZXRfbm9uY2U9YiIiLAotICAgICAgICAgICAgICAgIHRpY2tl
dD1vcy51cmFuZG9tKDY0KSwKLSAgICAgICAgICAgICAgICBtYXhfZWFybHlfZGF0YV9zaXplPXNl
bGYuX21heF9lYXJseV9kYXRhLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlbmQg
bWVzc3NhZ2UKLSAgICAgICAgICAgIHB1c2hfbmV3X3Nlc3Npb25fdGlja2V0KG9uZXJ0dF9idWYs
IHNlbGYuX25ld19zZXNzaW9uX3RpY2tldCkKLQotICAgICAgICAgICAgIyBub3RpZnkgYXBwbGlj
YXRpb24KLSAgICAgICAgICAgIHRpY2tldCA9IHNlbGYuX2J1aWxkX3Nlc3Npb25fdGlja2V0KHNl
bGYuX25ld19zZXNzaW9uX3RpY2tldCkKLSAgICAgICAgICAgIHNlbGYubmV3X3Nlc3Npb25fdGlj
a2V0X2NiKHRpY2tldCkKLQotICAgICAgICBzZWxmLl9zZXRfc3RhdGUoU3RhdGUuU0VSVkVSX0VY
UEVDVF9GSU5JU0hFRCkKLQotICAgIGRlZiBfc2VydmVyX2hhbmRsZV9maW5pc2hlZChzZWxmLCBp
bnB1dF9idWY6IEJ1ZmZlciwgb3V0cHV0X2J1ZjogQnVmZmVyKSAtPiBOb25lOgotICAgICAgICBm
aW5pc2hlZCA9IHB1bGxfZmluaXNoZWQoaW5wdXRfYnVmKQotCi0gICAgICAgICMgY2hlY2sgdmVy
aWZ5IGRhdGEKLSAgICAgICAgaWYgZmluaXNoZWQudmVyaWZ5X2RhdGEgIT0gc2VsZi5fZXhwZWN0
ZWRfdmVyaWZ5X2RhdGE6Ci0gICAgICAgICAgICByYWlzZSBBbGVydERlY3J5cHRFcnJvcgotCi0g
ICAgICAgICMgY29tbWl0IHRyYWZmaWMga2V5Ci0gICAgICAgIHNlbGYuX2RlY19rZXkgPSBzZWxm
Ll9uZXh0X2RlY19rZXkKLSAgICAgICAgc2VsZi5fbmV4dF9kZWNfa2V5ID0gTm9uZQotICAgICAg
ICBzZWxmLnVwZGF0ZV90cmFmZmljX2tleV9jYigKLSAgICAgICAgICAgIERpcmVjdGlvbi5ERUNS
WVBULAotICAgICAgICAgICAgRXBvY2guT05FX1JUVCwKLSAgICAgICAgICAgIHNlbGYua2V5X3Nj
aGVkdWxlLmNpcGhlcl9zdWl0ZSwKLSAgICAgICAgICAgIHNlbGYuX2RlY19rZXksCi0gICAgICAg
ICkKLQotICAgICAgICBzZWxmLl9zZXRfc3RhdGUoU3RhdGUuU0VSVkVSX1BPU1RfSEFORFNIQUtF
KQotCi0gICAgZGVmIF9zZXR1cF90cmFmZmljX3Byb3RlY3Rpb24oCi0gICAgICAgIHNlbGYsIGRp
cmVjdGlvbjogRGlyZWN0aW9uLCBlcG9jaDogRXBvY2gsIGxhYmVsOiBieXRlcwotICAgICkgLT4g
Tm9uZToKLSAgICAgICAga2V5ID0gc2VsZi5rZXlfc2NoZWR1bGUuZGVyaXZlX3NlY3JldChsYWJl
bCkKLQotICAgICAgICBpZiBkaXJlY3Rpb24gPT0gRGlyZWN0aW9uLkVOQ1JZUFQ6Ci0gICAgICAg
ICAgICBzZWxmLl9lbmNfa2V5ID0ga2V5Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
Ll9kZWNfa2V5ID0ga2V5Ci0KLSAgICAgICAgc2VsZi51cGRhdGVfdHJhZmZpY19rZXlfY2IoCi0g
ICAgICAgICAgICBkaXJlY3Rpb24sIGVwb2NoLCBzZWxmLmtleV9zY2hlZHVsZS5jaXBoZXJfc3Vp
dGUsIGtleQotICAgICAgICApCi0KLSAgICBkZWYgX3NldF9zdGF0ZShzZWxmLCBzdGF0ZTogU3Rh
dGUpIC0+IE5vbmU6Ci0gICAgICAgIGlmIHNlbGYuX19sb2dnZXI6Ci0gICAgICAgICAgICBzZWxm
Ll9fbG9nZ2VyLmRlYnVnKCJUTFMgJXMgLT4gJXMiLCBzZWxmLnN0YXRlLCBzdGF0ZSkKLSAgICAg
ICAgc2VsZi5zdGF0ZSA9IHN0YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1
aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNGIwY2VlNDY2MTM0MmZlZTRlYzAz
MWMwNjJmOTM1NzQ3MGM1ZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19idWZmZXIuYwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy9fYnVmZmVyLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVp
Yy9fY3J5cHRvLmMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2NyeXB0by5weWkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYWJvdXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
YnVmZmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3B5LnR5cGVkCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3NyYy9haW9xdWljL3Rscy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL19f
aW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSMgVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZv
ciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy90ZXN0cy9pbml0aWFsX2NsaWVudC5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvaW5p
dGlhbF9jbGllbnQuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZDdiNzA1NWNk
YWFjYTk1ZWZmYjkzZTUxOWVjZTVlM2VkNTNjZDVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDEyODAKemNtVitiMV5AY1l7e1IzUDIhKUZ8SGo5b3RaVTZ2OD8jNDhpQkBuIz5YLV5s
O0toPTl1PWkla0IkRSUtRVliZ3djCnpvNm5YcC1YY1M0bT57WiRPX3EmZVBubE9yLV5tTFhJaHk1
RT1FVzJTMGMyZWdPRVlOUXJIUiRHI01TJk5TO1olXwp6WHNpZDh4QlpRVnlmMDJpcDtASTZadGI+
WnpJbyNmMVY9T3I9RHM2MldoQUJHUWFeQlpfYm5KWkF4aXtqWXhhKkwKenV9dSlCP3ReekQxdXYw
UTxUOzZRenI4e24leilnLTA+QFd7PGRBJnAmV3VrR3F3dyVgNnthPSsraWIoays5UiplCnoqTzZ8
dUshfXYycF54fk14QHxUPzJnc3BkNnJeflpJKlo2bF9wVHdTT1VMb1RyIV9hP21IRi1nSWhgQHdA
Km4lfgp6WSZrWU8ycn1Ccyl8VXI8aTIjNk0mcSRsZGcqQjlLQF9HbUMrRGk3blp3TGxAJThsKGVK
c1lNNykyMCZ1NHo3P1IKenM8JDtSdHYjTD1YfU19JDhfKyk4VH5KRFg8KFFqOWBUc2hSNzR5O2ho
UEp1VFRwbFQrKj9gdzY+c1pqc2V0c1M3CnowYnA2N0stNGtkQ2NXNnBMVUBaQkNlYHtzMENSdCRm
b1NaYEh5VGkjO3FYVGErdFJAfENSJG1PYkFZWnl4aEJxdAp6RDNvWSg1aXBhVyVNI0JZN3F2WVc1
WkArI253eC1NNypmcHkjbyo3PG0rIWNsaj5IWFA9TlF+NiZpcmRiK0xLdjcKemVnZDBFQn10UCRe
Vk07N3h+dGY1ZiRfeCozTiR3WGFlQ0lxR1VUflF7R2JeeGN3UT9lMSRqPjlXVFFjM1U9KUJ3Cnp7
SnxJXiV8PVZCT3FwbHJmd2ZWRDc4SWBtNzxlXkYmI2ZeMm0/S3RadHdheDBNUGA3QWxhcE4rVTs/
I0FKJml6Tgp6clojU0U4QUFIIyVKdXApN3RvRmZgPi1oZGU7anFYZ0xKOHZgPkl5eklIfTElcXI7
Vmo/NlhFQlptKVU1PEZTQUwKej1hbjJZJDBSQ01XUj9AYTZMWkhJRXBxUX5ycXdYV3YoOX1udjFp
PD1iIXhTfksleGtZTGBzZlBNbG58OTh5PWNqCno/dmdWQmFfMFJvR3VhLUBOcU4kb29oV3k7elJG
cl5MVlFQR1RecG80O1YmNDsjTWhDYFlROGhudzFvNk5XZio4Xgp6JVF+LVpZeGcqT2lWQldJJjdI
dDUlNl9TKXRGOVVqN08jQTJTT0plR0VmY0I3NktBTEtMZCQxaVM3eFFTOyhANVoKemRAZWJQc05X
cUtHYEQ8Zi18anFGKCVRSU57NjElcjArSn5YJTNlV21DU3xoaExSfCRjWHJ7P0M8V1R7PD8xPE5e
CnpWdkkqUF9LeGBZdmlUfHhRYEl3enArR0FlOFl4VWVWdFokYz9uZU05UTspQEtOX2VTOF9mbDRL
ckVVU3hoX31saAp6dUg/YndGViU2OXshe0lyQkItbjF6alJBdlNxJGB6MCVKbWJFPyQ1dCE8Nm9S
KSNweiNJSy1WX0dDfCZeTn1nbkkKenRuSnMmJnZ5dm1XYmMmVUdDTldwX3hCQyh5ZzNTaDl9UFFq
ZFIoS3M+e2t9P2EmfCZfMV47KEplQE0+XnV2aDNWCnpmSzR7PXBjOWdNaD5sfTxremtlUFhDSGQ7
SFkpVH4kc1NgZSRUXy1aQEp3KTF4fmkyclIkbFJgKCVhaH5WRDgqNgp6dG9qKVJ4bm0mbWgjeWYq
Ri08eDFobklBNil9bWJJbGFCWG1pVHRPKGpIKTR6Y0h0M1lFU0lIO3wxUHg7dD1vOGkKeig4cjwl
VHdsNU5TOWkmWXw5QD1HKW9NcCVsaitkUW1IJCtmZ2tFfDtHQT51XzJ5dUA8bFo2ZF5udm1HbEhv
NzwjCnp2N20kfXBRYWRnRntHKUMqKnJTbzdoVktxdzU0X1gtSGs3I2JvX2R5SFhIdnpnQ3lqMkh6
TX1Hbys/KDIqOW4xKwp6RUhwejl5YHt7ZFE8P18kRWdfU3tpZUc0MUNjP1Nee0dCblkhRGY/dVZX
VCEzSXwqQDRVST93JnQ/SEBjQ3N4NmUKcSl5Xlo1M2BhQmJVJShLVm0yZCVueT9uMmFtemIofFVD
KjlSY1ZjTk95N0wjSTxBYjYzekh8b3cKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
aW5pdGlhbF9zZXJ2ZXIuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL2luaXRpYWxfc2VydmVyLmJp
bgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzViYmI5YzBhZmY4OTQ3NGZkNzAyMWY2
ZTFiNDRlMDViYTFhMWM0Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyMDIKemNt
VjsqMDUkKT97e1IzUDAwPGRlWGYjZUopT2kzdnhWcVlQcXQ8Rz1lc1dLUG58QXVTVks/Nnl3UjVl
MFU9dTwzCnpGciNFVTl1e248V0JQKE9FP2V5Tmw3JkZuTENXYWZVMHBgR0tvVk07T1dUS3NZfiMy
fTlmQ2ZyRGV0RlA5PEhJfAp6ZWM0RH5rY3pSZyRVdj1nWT1+elI5YmBPVVg/dF9oQXslQWc8Rlcm
SCghOCE2Jj9eX3Vxd2xJQXhmWjdWNj9LJnoKeilQSkpSNHZ8Rjw3aVcqdGdLcj0wdV5IU05VT09G
I3Z9S1FvZyQoJW5GRTF0WHJ+OCRJdW9FKjRRdnZHI0ZlRz5iCkVjZTc3bEpPQlV5CgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3B5Y2FjZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0
cy9weWNhY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczMTUwYzk2MGYz
NTgxNGRlZjJjMmJjNWZhZjdiZGZlYjhkYWIzMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3B5Y2FjZXJ0LnBlbQorKysg
L2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAg
ICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjoKLSAgICAgICAgICAg
IGNiOjJkOjgwOjk5OjVhOjY5OjUyOjViCi0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2
V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPVhZLCBPPVB5dGhvbiBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uIENBLCBDTj1vdXItY2Etc2VydmVyCi0gICAgICAgIFZhbGlkaXR5Ci0gICAg
ICAgICAgICBOb3QgQmVmb3JlOiBBdWcgMjkgMTQ6MjM6MTYgMjAxOCBHTVQKLSAgICAgICAgICAg
IE5vdCBBZnRlciA6IEF1ZyAyNiAxNDoyMzoxNiAyMDI4IEdNVAotICAgICAgICBTdWJqZWN0OiBD
PVhZLCBPPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIENBLCBDTj1vdXItY2Etc2VydmVyCi0g
ICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBB
bGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMzA3
MiBiaXQpCi0gICAgICAgICAgICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6
OTc6ZWQ6NTU6NDE6YmE6MzY6MTc6OTU6ZGI6NzE6MWM6ZDM6ZTE6NjE6Ci0gICAgICAgICAgICAg
ICAgICAgIGFjOjU4OjczOmUzOmM2Ojk2OmNmOjJiOjFmOmI4OjA4OmY1OjlkOjRiOjRiOgotICAg
ICAgICAgICAgICAgICAgICBjNzozMDpmNjpiODowYjpiMzo1Mjo3MjphMDpiYjpjOTo0ZDozYjo4
ZTpkZjoKLSAgICAgICAgICAgICAgICAgICAgMjI6OGU6MDE6NTc6ODE6Yzk6OTI6NzM6Y2M6MDA6
YzY6ZWM6NzA6YjA6M2E6Ci0gICAgICAgICAgICAgICAgICAgIDE3OjQwOmMxOmRmOmYyOjhjOjM2
OjRjOmM0OmE3OjgxOmU3OmI2OjI0OjY4OgotICAgICAgICAgICAgICAgICAgICBlMjphMDo3ZToz
NTowNzoyZjphMDo1YjpmOTo0NTo0NjpmNzoxZTpmMDo0NjoKLSAgICAgICAgICAgICAgICAgICAg
MTE6ZmU6Y2E6MWE6M2M6NTA6ZjE6MjY6YTk6NWY6OWM6MjI6OWM6Zjg6NDE6Ci0gICAgICAgICAg
ICAgICAgICAgIGUxOmRmOjRmOjEyOjk1OjE5OjJmOjVjOjkwOjAxOjE3OjZlOjdlOjNlOjdkOgot
ICAgICAgICAgICAgICAgICAgICBjZjplOTowOTphZjoyNTpmODpmODo0Mjo3NzoyZDo2ZDo1Zjoz
NjpmMjo3ODoKLSAgICAgICAgICAgICAgICAgICAgMWU6N2Q6NGE6ODc6Njg6NjM6NmM6MDY6NzE6
MWI6OGQ6ZmE6MjU6ZmU6ZDQ6Ci0gICAgICAgICAgICAgICAgICAgIGQzOmY1OmE1OjE3OmIxOmVm
OmVhOjE3OmNiOjU0OmM4OjI3Ojk5OjgwOmNiOgotICAgICAgICAgICAgICAgICAgICAzYzo0NTpm
MToyYzo1MjoxYzpkZDoxZjo1MTo0NToyMDo1MDoxZTo1ZTphYjoKLSAgICAgICAgICAgICAgICAg
ICAgNTc6NzM6MWI6NDE6Nzg6OTY6ZGU6ODQ6YTQ6N2E6ZGQ6OGY6MzA6ODU6MzY6Ci0gICAgICAg
ICAgICAgICAgICAgIDU4Ojc5Ojc2OmEwOmQyOjYxOmM4OjFiOmE5Ojk0Ojk5OjYzOmM2OmVlOmY4
OgotICAgICAgICAgICAgICAgICAgICAxNDpiZjpiNDo1Mjo1NjozMTo5NzpmYTplYjphYzo1Mzo5
ZTo5NTpjZTo0YzoKLSAgICAgICAgICAgICAgICAgICAgYzQ6NWE6NGE6Yjc6Y2E6MDM6Mjc6NWI6
MzU6NTc6Y2U6MDI6ZGM6ZWM6Y2E6Ci0gICAgICAgICAgICAgICAgICAgIDY5OmY4OjhhOjVhOjM5
OmNiOjE2OjIwOjE1OjAzOjI0OjYxOjZjOmY0OjdhOgotICAgICAgICAgICAgICAgICAgICBmYzpi
Njo0ODplNTo1OToxMDo1Yzo0OTpkMDoyMzo5ZjpmYjo3MTo1ZTozYToKLSAgICAgICAgICAgICAg
ICAgICAgZTk6Njg6OWY6MzQ6NzI6ODA6Mjc6YjY6M2Y6NGM6YjE6ZDk6ZGI6NjM6N2Y6Ci0gICAg
ICAgICAgICAgICAgICAgIDY3OjY4OjRhOjZlOjExOmY4OmU4OmMwOmY0OjVhOjE2OjM5OjUzOjBi
OjY4OgotICAgICAgICAgICAgICAgICAgICBkZTo3NzpmYTo0NTplNzpmODo5MTpjZDo3ODpjZDoy
ODo5NDo5Nzo3MTo1NDoKLSAgICAgICAgICAgICAgICAgICAgZmI6Y2Y6ZjA6Mzc6ZGU6Yzk6MjY6
YzU6ZGM6MWI6OWU6ODk6NmQ6MDk6YWM6Ci0gICAgICAgICAgICAgICAgICAgIGM4OjQ0OjcxOmNi
OjZkOmYxOjk3OjMxOmQ1OjRjOjIwOjMzOmJmOjc1OjRhOgotICAgICAgICAgICAgICAgICAgICBh
MDplMDpkYzo2OToxMTplZDoyYTpiNDo2NDoxMDoxMTozMDo4YjowZTpiMDoKLSAgICAgICAgICAg
ICAgICAgICAgYTc6MTA6ZDg6OGE6YzU6YWE6MWI6Yzg6MjY6OGE6MjU6ZTc6NjY6OWY6YTU6Ci0g
ICAgICAgICAgICAgICAgICAgIDZhOjFhOjJmOjdjOjVmOjgzOmM2Ojc4OjRmOjFmCi0gICAgICAg
ICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5z
aW9uczoKLSAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOiAKLSAgICAg
ICAgICAgICAgICBERDpCRjpDQTpEQTpFNjpEMTozNDpCQTozNzo3NToyMTpDQTo2Rjo5QTowODoy
ODpGMjozNTpCNjo0OAotICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmll
cjogCi0gICAgICAgICAgICAgICAga2V5aWQ6REQ6QkY6Q0E6REE6RTY6RDE6MzQ6QkE6Mzc6NzU6
MjE6Q0E6NkY6OUE6MDg6Mjg6RjI6MzU6QjY6NDgKLQotICAgICAgICAgICAgWDUwOXYzIEJhc2lj
IENvbnN0cmFpbnRzOiAKLSAgICAgICAgICAgICAgICBDQTpUUlVFCi0gICAgU2lnbmF0dXJlIEFs
Z29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgIDMzOjZhOjU0OmQzOjZi
OmMwOmQ3OjAxOjVmOjlkOmY0OjA1OmMxOjkzOjY2OjkwOjUwOmQwOgotICAgICAgICAgYjc6MTg6
ZTk6YjA6MWU6NGE6YTA6YjY6ZGE6NzY6OTM6YWY6ODQ6ZGI6YWQ6MTU6NTQ6MzE6Ci0gICAgICAg
ICAxNToxMzplNDpkZTo3ZTo0ZTowYzpkNTowOToxYzozNDozNTpiNjplNTo0YzpkNjo2Zjo2NToK
LSAgICAgICAgIDdkOjMyOjVmOmViOmZjOmE5OjZiOjA3OmY3OjQ5OjgyOmU1OjgxOjdlOjA3Ojgw
OjlhOjYzOgotICAgICAgICAgZjg6MmM6YzM6NDA6YmM6OGY6ZDQ6MmE6ZGE6M2U6ZDE6ZWU6MDg6
Yjc6NGQ6YTc6ODQ6Y2E6Ci0gICAgICAgICBmNDozZjphMTo5ODo0NTpiZTpiMTowNTo2OTplNzpk
ZjpkNzo5OTphYjoxYjplZTo4YjozMDoKLSAgICAgICAgIGNjOmY3OmZjOmU3OmQ0OjBiOjE3OmFl
Ojk3OmJmOmU0OjdiOmZkOjBmOmE3OmI0Ojg1Ojc5OgotICAgICAgICAgZTM6NTk6ZTI6MTY6ODc6
YmY6MWY6Mjk6NDU6MmM6MjM6OTM6NzY6YmU6YzA6ODc6MWQ6ZGU6Ci0gICAgICAgICBlYzoyYjo0
Mjo2YTplNTpiYjpjODpmNDowYTo0YTowODowYTo4Yzo1YzpkODo3ZDo0ZDpkMToKLSAgICAgICAg
IGI4OmJmOmQ1OmY3OjI5OmVkOjkyOmQxOjk0OjA0OmU4OjM1OjA2OjU3OjdmOjJjOjIzOjk3Ogot
ICAgICAgICAgODc6YTU6MzU6OGQ6MjY6ZDM6MWE6NDc6ZjI6MTY6ZDc6ZDk6YzY6ZDQ6MWY6MjM6
NDM6ZDM6Ci0gICAgICAgICAyNjo5OTozOTpjYToyMDpmNDo3MToyMzo2ZjowYzo0YTo3Njo3Njpm
Nzo3NjoxZjpiMzpmZToKLSAgICAgICAgIGJmOjQ3OmIwOmZjOjJhOjU2OjgxOmUxOmQyOmRkOmVl
OjA4OmQ4OmY0OmZmOjVhOmRjOjI1OgotICAgICAgICAgNjE6OGE6OTE6MDI6Yjk6ODY6MWM6ZjI6
NTA6NzM6NzY6MjU6MzU6ZmM6YjY6MjU6MjY6MTU6Ci0gICAgICAgICBjYjplYjpjNDoyYjo2MTow
YzoxYzplNzplZToyZjoxNzo5YjplYzpmMDpkNDphMTo4NDplNzoKLSAgICAgICAgIGQyOmFmOmRl
OmU0OjFiOjI0OjE0OmE3OjAxOjg3OmUzOmFiOjI5OjU4OjQ2OmEwOmQ5OmMwOgotICAgICAgICAg
MGE6ZTA6OGQ6ZDc6NTk6ZDM6MWI6Zjg6NTQ6MjA6M2U6Nzg6YTU6YTU6Yzg6NGY6OGI6MDM6Ci0g
ICAgICAgICBjNDo5Njo5ZjplYzpmYjo0NzpjZjo3NjoyZDo4ZDo2NTozNDoyNzpiZjpmYTphZTow
MTowNToKLSAgICAgICAgIDhhOmYzOjkyOjBhOmRkOjg5OjZjOjk3OmExOmM3OmU3OjYwOjUxOmU3
OmFjOmViOjRiOjdkOgotICAgICAgICAgMmM6Yjg6NjU6Yzk6ZmU6NWQ6NmE6NDg6NTU6OGU6ZTQ6
Yzc6Zjk6NmE6NDA6ZTE6Yjg6NjQ6Ci0gICAgICAgICA0NTplOTpiNTo1OToyOTphNTo1ZjpjZjo3
ZDo1ODo3ZDo2NDo3OTplNTphNDowOTphYzoxZToKLSAgICAgICAgIDc2OjY1OjNkOjk0OmM0OjY4
Ci0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUViVENDQXRXZ0F3SUJBZ0lKQU1zdGdK
bGFhVkpiTUEwR0NTcUdTSWIzRFFFQkN3VUFNRTB4Q3pBSkJnTlYKLUJBWVRBbGhaTVNZd0pBWURW
UVFLREIxUWVYUm9iMjRnVTI5bWRIZGhjbVVnUm05MWJtUmhkR2x2YmlCRFFURVcKLU1CUUdBMVVF
QXd3TmIzVnlMV05oTFhObGNuWmxjakFlRncweE9EQTRNamt4TkRJek1UWmFGdzB5T0RBNE1qWXgK
LU5ESXpNVFphTUUweEN6QUpCZ05WQkFZVEFsaFpNU1l3SkFZRFZRUUtEQjFRZVhSb2IyNGdVMjlt
ZEhkaGNtVWcKLVJtOTFibVJoZEdsdmJpQkRRVEVXTUJRR0ExVUVBd3dOYjNWeUxXTmhMWE5sY25a
bGNqQ0NBYUl3RFFZSktvWkkKLWh2Y05BUUVCQlFBRGdnR1BBRENDQVlvQ2dnR0JBSmZ0VlVHNk5o
ZVYyM0VjMCtGaHJGaHo0OGFXenlzZnVBajEKLW5VdEx4ekQydUF1elVuS2d1OGxOTzQ3ZklvNEJW
NEhKa25QTUFNYnNjTEE2RjBEQjMvS01Oa3pFcDRIbnRpUm8KLTRxQitOUWN2b0Z2NVJVYjNIdkJH
RWY3S0dqeFE4U2FwWDV3aW5QaEI0ZDlQRXBVWkwxeVFBUmR1Zmo1OXora0oKLXJ5WDQrRUozTFcx
Zk52SjRIbjFLaDJoamJBWnhHNDM2SmY3VTAvV2xGN0h2NmhmTFZNZ25tWURMUEVYeExGSWMKLTNS
OVJSU0JRSGw2clYzTWJRWGlXM29Ta2V0MlBNSVUyV0hsMm9OSmh5QnVwbEpsanh1NzRGTCswVWxZ
eGwvcnIKLXJGT2VsYzVNeEZwS3Q4b0RKMXMxVjg0QzNPekthZmlLV2puTEZpQVZBeVJoYlBSNi9M
Wkk1VmtRWEVuUUk1LzcKLWNWNDY2V2lmTkhLQUo3WS9UTEhaMjJOL1oyaEtiaEg0Nk1EMFdoWTVV
d3RvM25mNlJlZjRrYzE0elNpVWwzRlUKLSs4L3dOOTdKSnNYY0c1NkpiUW1zeUVSeHkyM3hsekhW
VENBenYzVktvT0RjYVJIdEtyUmtFQkV3aXc2d3B4RFkKLWlzV3FHOGdtaWlYblpwK2xhaG92ZkYr
RHhuaFBId0lEQVFBQm8xQXdUakFkQmdOVkhRNEVGZ1FVM2IvSzJ1YlIKLU5MbzNkU0hLYjVvSUtQ
STF0a2d3SHdZRFZSMGpCQmd3Rm9BVTNiL0sydWJSTkxvM2RTSEtiNW9JS1BJMXRrZ3cKLURBWURW
UjBUQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBWUVBTTJwVTAydkExd0ZmbmZRRnda
Tm0KLWtGRFF0eGpwc0I1S29MYmFkcE92aE51dEZWUXhGUlBrM241T0ROVUpIRFExdHVWTTFtOWxm
VEpmNi95cGF3ZjMKLVNZTGxnWDRIZ0pwaitDekRRTHlQMUNyYVB0SHVDTGROcDRUSzlEK2htRVcr
c1FWcDU5L1htYXNiN29zd3pQZjgKLTU5UUxGNjZYditSNy9RK250SVY1NDFuaUZvZS9IeWxGTENP
VGRyN0FoeDNlN0N0Q2F1Vzd5UFFLU2dnS2pGelkKLWZVM1J1TC9WOXludGt0R1VCT2cxQmxkL0xD
T1hoNlUxalNiVEdrZnlGdGZaeHRRZkkwUFRKcGs1eWlEMGNTTnYKLURFcDJkdmQySDdQK3YwZXcv
Q3BXZ2VIUzNlNEkyUFQvV3R3bFlZcVJBcm1HSFBKUWMzWWxOZnkySlNZVnkrdkUKLUsyRU1IT2Z1
THhlYjdQRFVvWVRuMHEvZTVCc2tGS2NCaCtPcktWaEdvTm5BQ3VDTjExblRHL2hVSUQ1NHBhWEkK
LVQ0c0R4SmFmN1B0SHozWXRqV1UwSjcvNnJnRUZpdk9TQ3QySmJKZWh4K2RnVWVlczYwdDlMTGhs
eWY1ZGFraFYKLWp1VEgrV3BBNGJoa1JlbTFXU21sWDg5OVdIMWtlZVdrQ2F3ZWRtVTlsTVJvCi0t
LS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
cmV0cnkuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3JldHJ5LmJpbgpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGYzYmQ0OTgxYTRhNjU5NmI1MGVjNjVlZGJkNTFiMGI0Y2EzYmVlNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxMjUKemNtVi1AMER9TVV7e1IzUDI8ZyNB
KndJWH5qdUh6QkFYO1JQJnd8KXI1e3FaTTtEQSUrTF4qbWopfGZkdzZINXJHCnpHSU14WV5oVlJG
LTJtLUBSMUElYztjfTJ8SzYoKXdQKFBPYHhSUT1fREVYKnJNUz1QMnc5N2tGIWg+Y1dnKW5wKQpm
bkhldFNYJXhqYFhfKUt9O2lKZTVkNDhrO3o+bXFwTFphQ1g5fWhaPwoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy90ZXN0cy9zaG9ydF9oZWFkZXIuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3No
b3J0X2hlYWRlci5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MzY4M2QyZDVi
NTU1ZDliMDIzMTk5OTAyZmNlZTU3ZDFiNTkzN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Nob3J0X2hlYWRlci5iaW4K
KysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1d9FqntZwOGtbmaPUwTNT9H7N5kycKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3Ns
X2NlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3NzbF9jZXJ0LnBlbQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMWY3MTI3YTRiMDI1YWEyMzMyMzE5M2YwNmNmMTc3M2E1NjBlMzgx
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvdGVzdHMvc3NsX2NlcnQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAot
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlGOFRDQ0JGbWdBd0lCQWdJSkFNc3RnSmxh
YVZKY01BMEdDU3FHU0liM0RRRUJDd1VBTUUweEN6QUpCZ05WCi1CQVlUQWxoWk1TWXdKQVlEVlFR
S0RCMVFlWFJvYjI0Z1UyOW1kSGRoY21VZ1JtOTFibVJoZEdsdmJpQkRRVEVXCi1NQlFHQTFVRUF3
d05iM1Z5TFdOaExYTmxjblpsY2pBZUZ3MHhPREE0TWpreE5ESXpNVFphRncweU9EQTNNRGN4Ci1O
REl6TVRaYU1GOHhDekFKQmdOVkJBWVRBbGhaTVJjd0ZRWURWUVFIREE1RFlYTjBiR1VnUVc1MGFI
SmhlREVqCi1NQ0VHQTFVRUNnd2FVSGwwYUc5dUlGTnZablIzWVhKbElFWnZkVzVrWVhScGIyNHhF
akFRQmdOVkJBTU1DV3h2Ci1ZMkZzYUc5emREQ0NBYUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0dQ
QURDQ0FZb0NnZ0dCQUo4b0x6ZEI3MzlrCi1ZeFppRnVrQkZHSXB5anFZa2owSTAxNXAvc0R6MU1U
N0RsamNaTEJMeTdPcW5rTHBCNXRuTTgyNTZEd2RpaFBBCi0zemxuZkV6VGZyOUREMHFGQlcySDVj
TUNvejdYMTdrb2VSaHpHRGQzZGtqVWVCalh2UjVxUm9zRzh3TTNsUXVnCi1VN0FpelkrM0F6YWox
eU4zbVo5SzVhMjBqcjU4S3FpbnorWHh4NnNiMkpmWVlmZjJuZUpiQmFoTm01aWQwQUQyCi1waS9U
dGhacU81RFVSSllvK01kZ1pPY3krN2pFak9Kc0xXWmQzWXpxNzhpTTA3cURqYnBJb1ZwRU5aQ1RI
VFdBCi1oWDhMSXF6ME9CbWg0d2VRcG00K3BsVTdFNHI0RDgydWF1b2NXdzhpeXV6bkNUdEFCV083
bjlmV3lTbWY5UVpDCi1XWXhIQUZwQlFzNnpVVnFBRDduaEZkVHFwUTliUmlhRW5qRTRIaUFjY1BX
K01Bb1N4Rm52L3JOekV6STZiNHpVCi1Oc3BGTWZnMWFOVmFtZGp4ZHBVWjFHRzFPa2YweVBKeWtx
RVg0UFpsM0xhMUJlMnE3WVoxd3lkUjUyM1hkK2YzCi1FTzQvZytpbUVUU0tuOGd5Q2Y2UnZpYjE3
NUw0cjJXVjFDWFFIN2dGd1pZQ29kNldIWXE1VFFJREFRQUJvNElCCi13RENDQWJ3d0ZBWURWUjBS
QkEwd0M0SUpiRzlqWVd4b2IzTjBNQTRHQTFVZER3RUIvd1FFQXdJRm9EQWRCZ05WCi1IU1VFRmpB
VUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEQVlEVlIwVEFRSC9CQUl3QURBZEJnTlZIUTRF
Ci1GZ1FVaitvZDR6TmNBQmF6aTI5cmI5Tk15N1hMZkZVd2ZRWURWUjBqQkhZd2RJQVUzYi9LMnVi
Uk5MbzNkU0hLCi1iNW9JS1BJMXRraWhVYVJQTUUweEN6QUpCZ05WQkFZVEFsaFpNU1l3SkFZRFZR
UUtEQjFRZVhSb2IyNGdVMjltCi1kSGRoY21VZ1JtOTFibVJoZEdsdmJpQkRRVEVXTUJRR0ExVUVB
d3dOYjNWeUxXTmhMWE5sY25abGNvSUpBTXN0Ci1nSmxhYVZKYk1JR0RCZ2dyQmdFRkJRY0JBUVIz
TUhVd1BBWUlLd1lCQlFVSE1BS0dNR2gwZEhBNkx5OTBaWE4wCi1ZMkV1Y0hsMGFHOXVkR1Z6ZEM1
dVpYUXZkR1Z6ZEdOaEwzQjVZMkZqWlhKMExtTmxjakExQmdnckJnRUZCUWN3Ci1BWVlwYUhSMGNE
b3ZMM1JsYzNSallTNXdlWFJvYjI1MFpYTjBMbTVsZEM5MFpYTjBZMkV2YjJOemNDOHdRd1lECi1W
UjBmQkR3d09qQTRvRGFnTklZeWFIUjBjRG92TDNSbGMzUmpZUzV3ZVhSb2IyNTBaWE4wTG01bGRD
OTBaWE4wCi1ZMkV2Y21WMmIyTmhkR2x2Ymk1amNtd3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnR0JB
Q2YxakZrUTlNYm5LQUMvCi11bzE3RXdQeEhLWmZzd1pWcENLNTI3TFZScjMzRE4xRGJyUjVaV2No
RENwVjdrQ09oWitmUjdzS0trMjJaSFNZCi1vSCt1M1BFdTIwSjNHT0IxaXlZMWFNTkI3V3ZJZDNK
dmFwcGRWV2tDL1ZwVXlGZkxzR1VERnVJUEFEbVpacUNiCi1pSk1YNGxvdGVUVmZsMWQ0eEsvMW1W
NkdxOU1SclJxaURmcFNFTG4rdjUzT005bUdzcHdXK05aMUNJcmJDdVcwCi1LeFovdFBrcW44UFNk
OWZOWlI3MGJCN3JXYm53cmwra0g4eEt4TGw2cWRsck1tZzc0V1d3aExlUXhLNys5RGRQCi1JYURl
bnpxeDVjd1dCR1kvQzBIY1FqMGdQdXkzbFNzMVYvcStmN1k2dXNwUFdQNTFQZ2lKTEl5d1hTNzVp
UkFyCi0rVUZHVHp3QXR5ZlRaU1FvRnlNbU1VTHFmazZUNUh0b1ZNcWZSdlB2SyttRkRMV0VzdFUx
TklCMUsvQ1JJN2dJCi1BWTY1Q2xUVSt6UlMvdGxGOElBN3RzRnZndEVmOGpzSTlrYW1saWRoUzFn
eWVnNGRXY1ZFclY0YWVUUEIxQVV2Ci1TdFBZUWtLTk0rTmp5dFdIbDV0TnVCb0ROTHNjMGdJL1dT
UGlJNENJWThMd29tT29pdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2NlcnRfd2l0aF9jaGFpbi5wZW0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdGVzdHMvc3NsX2NlcnRfd2l0aF9jaGFpbi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI2MGFkNDE2ODdlMmFmZDdhMGY5NGQxNTYxYWJkZWExZTVkZDQzNjEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3Rz
L3NzbF9jZXJ0X3dpdGhfY2hhaW4ucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAot
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlGOFRDQ0JGbWdBd0lCQWdJSkFNc3RnSmxh
YVZKY01BMEdDU3FHU0liM0RRRUJDd1VBTUUweEN6QUpCZ05WCi1CQVlUQWxoWk1TWXdKQVlEVlFR
S0RCMVFlWFJvYjI0Z1UyOW1kSGRoY21VZ1JtOTFibVJoZEdsdmJpQkRRVEVXCi1NQlFHQTFVRUF3
d05iM1Z5TFdOaExYTmxjblpsY2pBZUZ3MHhPREE0TWpreE5ESXpNVFphRncweU9EQTNNRGN4Ci1O
REl6TVRaYU1GOHhDekFKQmdOVkJBWVRBbGhaTVJjd0ZRWURWUVFIREE1RFlYTjBiR1VnUVc1MGFI
SmhlREVqCi1NQ0VHQTFVRUNnd2FVSGwwYUc5dUlGTnZablIzWVhKbElFWnZkVzVrWVhScGIyNHhF
akFRQmdOVkJBTU1DV3h2Ci1ZMkZzYUc5emREQ0NBYUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0dQ
QURDQ0FZb0NnZ0dCQUo4b0x6ZEI3MzlrCi1ZeFppRnVrQkZHSXB5anFZa2owSTAxNXAvc0R6MU1U
N0RsamNaTEJMeTdPcW5rTHBCNXRuTTgyNTZEd2RpaFBBCi0zemxuZkV6VGZyOUREMHFGQlcySDVj
TUNvejdYMTdrb2VSaHpHRGQzZGtqVWVCalh2UjVxUm9zRzh3TTNsUXVnCi1VN0FpelkrM0F6YWox
eU4zbVo5SzVhMjBqcjU4S3FpbnorWHh4NnNiMkpmWVlmZjJuZUpiQmFoTm01aWQwQUQyCi1waS9U
dGhacU81RFVSSllvK01kZ1pPY3krN2pFak9Kc0xXWmQzWXpxNzhpTTA3cURqYnBJb1ZwRU5aQ1RI
VFdBCi1oWDhMSXF6ME9CbWg0d2VRcG00K3BsVTdFNHI0RDgydWF1b2NXdzhpeXV6bkNUdEFCV083
bjlmV3lTbWY5UVpDCi1XWXhIQUZwQlFzNnpVVnFBRDduaEZkVHFwUTliUmlhRW5qRTRIaUFjY1BX
K01Bb1N4Rm52L3JOekV6STZiNHpVCi1Oc3BGTWZnMWFOVmFtZGp4ZHBVWjFHRzFPa2YweVBKeWtx
RVg0UFpsM0xhMUJlMnE3WVoxd3lkUjUyM1hkK2YzCi1FTzQvZytpbUVUU0tuOGd5Q2Y2UnZpYjE3
NUw0cjJXVjFDWFFIN2dGd1pZQ29kNldIWXE1VFFJREFRQUJvNElCCi13RENDQWJ3d0ZBWURWUjBS
QkEwd0M0SUpiRzlqWVd4b2IzTjBNQTRHQTFVZER3RUIvd1FFQXdJRm9EQWRCZ05WCi1IU1VFRmpB
VUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEQVlEVlIwVEFRSC9CQUl3QURBZEJnTlZIUTRF
Ci1GZ1FVaitvZDR6TmNBQmF6aTI5cmI5Tk15N1hMZkZVd2ZRWURWUjBqQkhZd2RJQVUzYi9LMnVi
Uk5MbzNkU0hLCi1iNW9JS1BJMXRraWhVYVJQTUUweEN6QUpCZ05WQkFZVEFsaFpNU1l3SkFZRFZR
UUtEQjFRZVhSb2IyNGdVMjltCi1kSGRoY21VZ1JtOTFibVJoZEdsdmJpQkRRVEVXTUJRR0ExVUVB
d3dOYjNWeUxXTmhMWE5sY25abGNvSUpBTXN0Ci1nSmxhYVZKYk1JR0RCZ2dyQmdFRkJRY0JBUVIz
TUhVd1BBWUlLd1lCQlFVSE1BS0dNR2gwZEhBNkx5OTBaWE4wCi1ZMkV1Y0hsMGFHOXVkR1Z6ZEM1
dVpYUXZkR1Z6ZEdOaEwzQjVZMkZqWlhKMExtTmxjakExQmdnckJnRUZCUWN3Ci1BWVlwYUhSMGNE
b3ZMM1JsYzNSallTNXdlWFJvYjI1MFpYTjBMbTVsZEM5MFpYTjBZMkV2YjJOemNDOHdRd1lECi1W
UjBmQkR3d09qQTRvRGFnTklZeWFIUjBjRG92TDNSbGMzUmpZUzV3ZVhSb2IyNTBaWE4wTG01bGRD
OTBaWE4wCi1ZMkV2Y21WMmIyTmhkR2x2Ymk1amNtd3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnR0JB
Q2YxakZrUTlNYm5LQUMvCi11bzE3RXdQeEhLWmZzd1pWcENLNTI3TFZScjMzRE4xRGJyUjVaV2No
RENwVjdrQ09oWitmUjdzS0trMjJaSFNZCi1vSCt1M1BFdTIwSjNHT0IxaXlZMWFNTkI3V3ZJZDNK
dmFwcGRWV2tDL1ZwVXlGZkxzR1VERnVJUEFEbVpacUNiCi1pSk1YNGxvdGVUVmZsMWQ0eEsvMW1W
NkdxOU1SclJxaURmcFNFTG4rdjUzT005bUdzcHdXK05aMUNJcmJDdVcwCi1LeFovdFBrcW44UFNk
OWZOWlI3MGJCN3JXYm53cmwra0g4eEt4TGw2cWRsck1tZzc0V1d3aExlUXhLNys5RGRQCi1JYURl
bnpxeDVjd1dCR1kvQzBIY1FqMGdQdXkzbFNzMVYvcStmN1k2dXNwUFdQNTFQZ2lKTEl5d1hTNzVp
UkFyCi0rVUZHVHp3QXR5ZlRaU1FvRnlNbU1VTHFmazZUNUh0b1ZNcWZSdlB2SyttRkRMV0VzdFUx
TklCMUsvQ1JJN2dJCi1BWTY1Q2xUVSt6UlMvdGxGOElBN3RzRnZndEVmOGpzSTlrYW1saWRoUzFn
eWVnNGRXY1ZFclY0YWVUUEIxQVV2Ci1TdFBZUWtLTk0rTmp5dFdIbDV0TnVCb0ROTHNjMGdJL1dT
UGlJNENJWThMd29tT29pdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lO
IENFUlRJRklDQVRFLS0tLS0KLU1JSUViVENDQXRXZ0F3SUJBZ0lKQU1zdGdKbGFhVkpiTUEwR0NT
cUdTSWIzRFFFQkN3VUFNRTB4Q3pBSkJnTlYKLUJBWVRBbGhaTVNZd0pBWURWUVFLREIxUWVYUm9i
MjRnVTI5bWRIZGhjbVVnUm05MWJtUmhkR2x2YmlCRFFURVcKLU1CUUdBMVVFQXd3TmIzVnlMV05o
TFhObGNuWmxjakFlRncweE9EQTRNamt4TkRJek1UWmFGdzB5T0RBNE1qWXgKLU5ESXpNVFphTUUw
eEN6QUpCZ05WQkFZVEFsaFpNU1l3SkFZRFZRUUtEQjFRZVhSb2IyNGdVMjltZEhkaGNtVWcKLVJt
OTFibVJoZEdsdmJpQkRRVEVXTUJRR0ExVUVBd3dOYjNWeUxXTmhMWE5sY25abGNqQ0NBYUl3RFFZ
SktvWkkKLWh2Y05BUUVCQlFBRGdnR1BBRENDQVlvQ2dnR0JBSmZ0VlVHNk5oZVYyM0VjMCtGaHJG
aHo0OGFXenlzZnVBajEKLW5VdEx4ekQydUF1elVuS2d1OGxOTzQ3ZklvNEJWNEhKa25QTUFNYnNj
TEE2RjBEQjMvS01Oa3pFcDRIbnRpUm8KLTRxQitOUWN2b0Z2NVJVYjNIdkJHRWY3S0dqeFE4U2Fw
WDV3aW5QaEI0ZDlQRXBVWkwxeVFBUmR1Zmo1OXora0oKLXJ5WDQrRUozTFcxZk52SjRIbjFLaDJo
amJBWnhHNDM2SmY3VTAvV2xGN0h2NmhmTFZNZ25tWURMUEVYeExGSWMKLTNSOVJSU0JRSGw2clYz
TWJRWGlXM29Ta2V0MlBNSVUyV0hsMm9OSmh5QnVwbEpsanh1NzRGTCswVWxZeGwvcnIKLXJGT2Vs
YzVNeEZwS3Q4b0RKMXMxVjg0QzNPekthZmlLV2puTEZpQVZBeVJoYlBSNi9MWkk1VmtRWEVuUUk1
LzcKLWNWNDY2V2lmTkhLQUo3WS9UTEhaMjJOL1oyaEtiaEg0Nk1EMFdoWTVVd3RvM25mNlJlZjRr
YzE0elNpVWwzRlUKLSs4L3dOOTdKSnNYY0c1NkpiUW1zeUVSeHkyM3hsekhWVENBenYzVktvT0Rj
YVJIdEtyUmtFQkV3aXc2d3B4RFkKLWlzV3FHOGdtaWlYblpwK2xhaG92ZkYrRHhuaFBId0lEQVFB
Qm8xQXdUakFkQmdOVkhRNEVGZ1FVM2IvSzJ1YlIKLU5MbzNkU0hLYjVvSUtQSTF0a2d3SHdZRFZS
MGpCQmd3Rm9BVTNiL0sydWJSTkxvM2RTSEtiNW9JS1BJMXRrZ3cKLURBWURWUjBUQkFVd0F3RUIv
ekFOQmdrcWhraUc5dzBCQVFzRkFBT0NBWUVBTTJwVTAydkExd0ZmbmZRRndaTm0KLWtGRFF0eGpw
c0I1S29MYmFkcE92aE51dEZWUXhGUlBrM241T0ROVUpIRFExdHVWTTFtOWxmVEpmNi95cGF3ZjMK
LVNZTGxnWDRIZ0pwaitDekRRTHlQMUNyYVB0SHVDTGROcDRUSzlEK2htRVcrc1FWcDU5L1htYXNi
N29zd3pQZjgKLTU5UUxGNjZYditSNy9RK250SVY1NDFuaUZvZS9IeWxGTENPVGRyN0FoeDNlN0N0
Q2F1Vzd5UFFLU2dnS2pGelkKLWZVM1J1TC9WOXludGt0R1VCT2cxQmxkL0xDT1hoNlUxalNiVEdr
ZnlGdGZaeHRRZkkwUFRKcGs1eWlEMGNTTnYKLURFcDJkdmQySDdQK3YwZXcvQ3BXZ2VIUzNlNEky
UFQvV3R3bFlZcVJBcm1HSFBKUWMzWWxOZnkySlNZVnkrdkUKLUsyRU1IT2Z1THhlYjdQRFVvWVRu
MHEvZTVCc2tGS2NCaCtPcktWaEdvTm5BQ3VDTjExblRHL2hVSUQ1NHBhWEkKLVQ0c0R4SmFmN1B0
SHozWXRqV1UwSjcvNnJnRUZpdk9TQ3QySmJKZWh4K2RnVWVlczYwdDlMTGhseWY1ZGFraFYKLWp1
VEgrV3BBNGJoa1JlbTFXU21sWDg5OVdIMWtlZVdrQ2F3ZWRtVTlsTVJvCi0tLS0tLUVORCBDRVJU
SUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2tleS5wZW0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2tleS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI4ZmRlYzEwMWM4ZDY3NGM1MjA3ZDEwMGY3NGI2YTcyNDI0Y2I1MjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3Rz
L3NzbF9rZXkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tLS1CRUdJTiBQ
UklWQVRFIEtFWS0tLS0tCi1NSUlHL1FJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0J1Y3dnZ2Jq
QWdFQUFvSUJnUUNmS0M4M1FlOS9aR01XCi1ZaGJwQVJSaUtjbzZtSkk5Q05OZWFmN0E4OVRFK3c1
WTNHU3dTOHV6cXA1QzZRZWJaelBOdWVnOEhZb1R3Tjg1Ci1aM3hNMDM2L1F3OUtoUVZ0aCtYREFx
TSsxOWU1S0hrWWN4ZzNkM1pJMUhnWTE3MGVha2FMQnZNRE41VUxvRk93Ci1JczJQdHdNMm85Y2pk
NW1mU3VXdHRJNitmQ3FvcDgvbDhjZXJHOWlYMkdIMzlwM2lXd1dvVFp1WW5kQUE5cVl2Ci0wN1lX
YWp1UTFFU1dLUGpIWUdUbk12dTR4SXppYkMxbVhkMk02dS9Jak5PNmc0MjZTS0ZhUkRXUWt4MDFn
SVYvCi1DeUtzOURnWm9lTUhrS1p1UHFaVk94T0srQS9Ocm1ycUhGc1BJc3JzNXdrN1FBVmp1NS9Y
MXNrcG4vVUdRbG1NCi1Sd0JhUVVMT3MxRmFnQSs1NFJYVTZxVVBXMFltaEo0eE9CNGdISEQxdmpB
S0VzUlo3LzZ6Y3hNeU9tK00xRGJLCi1SVEg0TldqVldwblk4WGFWR2RSaHRUcEg5TWp5Y3BLaEYr
RDJaZHkydFFYdHF1MkdkY01uVWVkdDEzZm45eER1Ci1QNFBvcGhFMGlwL0lNZ24ra2I0bTllK1Mr
SzlsbGRRbDBCKzRCY0dXQXFIZWxoMkt1VTBDQXdFQUFRS0NBWUVBCi1sS2lXSVlqbXlSamRMS1VH
UFRFUzl2V052Tm1Sam96VjBSUTBMY29TYk1NTERaa2VPMFV3eVdxT1ZIVVE4K2liCi1qSWNmRWpl
Tkp4STU3b1pvcGVIT081dkpocE5sRkgrZzdsdGlXMnFFUnFBMUs4OGxTWG05OUJ6dzZGTnFoQ1JF
Ci1LOHViNU45ZnlmSkErUDRvL3htMFdLOEVYazV5SVVWMTdwLzl6Skp4emdLZ3YyanNWVGkzUUcy
T1pHdm40T3VnCi1CeW9tTVpFR0hrQkR6ZHh6OGMvY1AxVGxrMVJGdXdTZ2V3czE3OGsyeHE3QVlT
TS9zMFltSGk3Yi9SU3ZwdFg2Ci0xdjhQOGtYTlVlNEF3VGFOeXJsdkYybHdJYWRaOGgxaEE3dENF
Mm40NGI3YTdLZmhBa3djYnIxVDU5aW9ZaDZQCi16eHN5UFQ2Nzh1RDUxZGJ0RC9EWEpDY29lZUZP
Yjh1emtSMktOY3JuUXpacENKblJxNEdwNXlieHdzeHh1enByCi1nejBnYk5saHVXdEU3RW9Tem1J
Szl0K1dUUzdJTTJDdlp5bWQ2L09BaDFGdXc2QVFoU3A2NFhScDNPZk1NQUFDCi1JZTJFUHRLajRp
c2xXR1Q4Vm9VanVSWUdtZFJoNGR1QUgxZGtpQVhPV0EzUjd5NWExL3kvaUU4S0U4QnR4b2NCCi1B
b0hCQU04YWlVUmdwdTFGczBPcXo2aXplYzdLU0xMM2w4aG1XK01LVU9may9ZYm5nNkZyVEZzTDVZ
dHpSK0FwCi13VzR3d1dubklLRWMxSkxpWjdnOGFnUkVUSzhocjVQd0ZYVW4vR1NXQzBTTXNhekxK
VG95U1FTNUxPVjB0THpLCi1rSjNqdE5VN3RubERHTmtDSFRIU29WTDJULzh0K0lrWkkvaDVaNndq
bFlQdlUySXUwblZJWHRpRythbHY0QTZNCi1Icmg5bDVvcjRtakI2ckduVlhlWW9oTGtDbTZzL1c5
N2FoVnhMTWNFZGJzQm8xcHJtMkpxR25Tb2lSL3RFRkMvCi1RSFFuYlFLQndRREV1N2tXMFlnOXNa
ODlRdFl0VlExWXBpeEZaT1JhVWVSSVJMbnBFczF3N0wxbUNiT1oyTGo5Ci1KSHhzSDA1Y1lBYzdI
SmZQd3d4djMrM2FHQUlDL2RmdTRWU3dFRnRhdEF6VXB6bGh6S1M1K0hRQ1dCNEpVTk5VCi1NUTMr
RndLMnhRWDRQaDh0K096ckZpWWNLMmcwQW41VXhXTWEySFdJQVdVT2huVE95ZEFWc29INnlQMzFj
Vm00Ci0waHhvQUJDd2ZsYU5MTkdqUlV5ZkJwTFRBY051L1l0Y0UrS1JFeTdZQUFnWFhyaFJTTzRY
cExzU1h3TG5MVDcvCi1ZT2tvQldEY1RXRUNnY0JQV25TVURaQ0lRM2VmaXRoTVpKQmNpcWQyWTJY
MTlEcHE4TzMxSEltRDRqdE9ZMFY3Ci1jVUIvd1NrZUhBR3dqZC9lQ3lBMmUweDhCMklFZHFtTWZ2
cis4NkpKeGVrQzNkSllYQ0Z2SDVXSWhzSDUzWUNhCi0zYlQxS2xXQ0xQOWliL2crNThWUUMwUi9D
YzlUNHNmTGVQTkg3RDVaa1pkMXdsYlYzMENQcitpOEt3S2F5Nk1ECi14aHZ0THgramswN0dFK0U5
d21qYkNNbzdUY2x5ckxvVkVPbHFaTUFxc2hnQXBUK3A5ZXlDUGV0d1h1REh3YTNuCi1XeGhIY2xj
WkNWN1I0clVDZ2NBa2RHU254Y3ZwSXJEUE9VTld3eHZtQVdUU3R3OVpiVE5QOE94Q05DbTljeURs
Ci1kNGJBUzFoOEQvYStVazdDNzBobnU3U2wydzdDN0V1Mnpod1JVZGhoZTMrbDRHSU5QSy9qOTlp
Nk5xR1BsR3BxCi14TWxNRUo0WVM3NjhCcWVLRnBnMGw4NVBSb0VnVHNwaERlb1JPU1VQc0VQZEJa
OUJ4SUJsWUtUa2JLRVNaREdSCi10d3pZSGxqeDFuMU5DRFlQZmxtcmIxS3BYbjRFT2NPYk5naHcy
S3FxTlVVV2ZPZUJQd0JBMUZ4ek00QnJBU3RwCi1EQklOcEdTNERjMG1qVmlWZWdFQ2djQTNoVHRt
ODJYZHhRWGo5TFFtYi9FM2xLeC83SDg3WElPZU5NbXZqWXVaCi1pUzl3S3JrRit1NDJ2eW9EeGNL
TUNueFA1MDU2d3BkU1Q0cDU2citTQndWVEhjYzNsR0JTR2NNVElmd1JYcmozCi10aE9BMm91cjJu
NG91TklzWXlUbGNzUVN6aWZ3bXBSbVZNUlB4bDlmWVZkRVdVZ0I4M0ZnSFQwRDlhdnZabkY5Ci10
OU9jY25HSlhTaEFJWklCQURoVmovSndHNEZiYVg0Mk5pakQ1UE5wVkxrMVkxN09WMEk1NzZUOVNm
YVFvQmpKCi1hSDFNL3pDNGFWYVMwRFlCL0d4cTd2OD0KLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0t
LS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5jaW8ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvdGVzdF9hc3luY2lvLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MWZjYmYzODAzZGM4NDI4YzA3NTk2OTRjZjQ2Y2NmNDllY2Q1Zjc0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90
ZXN0X2FzeW5jaW8ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNzQgKzAsMCBAQAotaW1wb3J0IGFz
eW5jaW8KLWltcG9ydCBiaW5hc2NpaQotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHNvY2tldAotZnJv
bSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UsIHNraXBJZgotZnJvbSB1bml0dGVzdC5tb2NrIGlt
cG9ydCBwYXRjaAotCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQg
c2VyaWFsaXphdGlvbgotCi1mcm9tIGFpb3F1aWMuYXN5bmNpby5jbGllbnQgaW1wb3J0IGNvbm5l
Y3QKLWZyb20gYWlvcXVpYy5hc3luY2lvLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVjdGlvblBy
b3RvY29sCi1mcm9tIGFpb3F1aWMuYXN5bmNpby5zZXJ2ZXIgaW1wb3J0IHNlcnZlCi1mcm9tIGFp
b3F1aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbgotZnJvbSBh
aW9xdWljLnF1aWMubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi0KLWZyb20gLnV0aWxzIGltcG9y
dCAoCi0gICAgU0VSVkVSX0NBQ0VSVEZJTEUsCi0gICAgU0VSVkVSX0NFUlRGSUxFLAotICAgIFNF
UlZFUl9LRVlGSUxFLAotICAgIFNLSVBfVEVTVFMsCi0gICAgZ2VuZXJhdGVfZWNfY2VydGlmaWNh
dGUsCi0gICAgcnVuLAotKQotCi1yZWFsX3NlbmR0byA9IHNvY2tldC5zb2NrZXQuc2VuZHRvCi0K
LQotZGVmIHNlbmR0b193aXRoX2xvc3Moc2VsZiwgZGF0YSwgYWRkcj1Ob25lKToKLSAgICAiIiIK
LSAgICBTaW11bGF0ZSAyNSUgcGFja2V0IGxvc3MuCi0gICAgIiIiCi0gICAgaWYgcmFuZG9tLnJh
bmRvbSgpID4gMC4yNToKLSAgICAgICAgcmVhbF9zZW5kdG8oc2VsZiwgZGF0YSwgYWRkcikKLQot
Ci1jbGFzcyBTZXNzaW9uVGlja2V0U3RvcmU6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAg
ICAgICBzZWxmLnRpY2tldHMgPSB7fQotCi0gICAgZGVmIGFkZChzZWxmLCB0aWNrZXQpOgotICAg
ICAgICBzZWxmLnRpY2tldHNbdGlja2V0LnRpY2tldF0gPSB0aWNrZXQKLQotICAgIGRlZiBwb3Ao
c2VsZiwgbGFiZWwpOgotICAgICAgICByZXR1cm4gc2VsZi50aWNrZXRzLnBvcChsYWJlbCwgTm9u
ZSkKLQotCi1kZWYgaGFuZGxlX3N0cmVhbShyZWFkZXIsIHdyaXRlcik6Ci0gICAgYXN5bmMgZGVm
IHNlcnZlKCk6Ci0gICAgICAgIGRhdGEgPSBhd2FpdCByZWFkZXIucmVhZCgpCi0gICAgICAgIHdy
aXRlci53cml0ZShieXRlcyhyZXZlcnNlZChkYXRhKSkpCi0gICAgICAgIHdyaXRlci53cml0ZV9l
b2YoKQotCi0gICAgYXN5bmNpby5lbnN1cmVfZnV0dXJlKHNlcnZlKCkpCi0KLQotY2xhc3MgSGln
aExldmVsVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxm
LnNlcnZlciA9IE5vbmUKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCA9ICJsb2NhbGhvc3QiCi0g
ICAgICAgIHNlbGYuc2VydmVyX3BvcnQgPSA0NDMzCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6
Ci0gICAgICAgIGlmIHNlbGYuc2VydmVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5z
ZXJ2ZXIuY2xvc2UoKQotCi0gICAgYXN5bmMgZGVmIHJ1bl9jbGllbnQoCi0gICAgICAgIHNlbGYs
Ci0gICAgICAgIGhvc3Q9Tm9uZSwKLSAgICAgICAgcG9ydD1Ob25lLAotICAgICAgICBjYWRhdGE9
Tm9uZSwKLSAgICAgICAgY2FmaWxlPVNFUlZFUl9DQUNFUlRGSUxFLAotICAgICAgICBjb25maWd1
cmF0aW9uPU5vbmUsCi0gICAgICAgIHJlcXVlc3Q9YiJwaW5nIiwKLSAgICAgICAgKiprd2FyZ3MK
LSAgICApOgotICAgICAgICBpZiBob3N0IGlzIE5vbmU6Ci0gICAgICAgICAgICBob3N0ID0gc2Vs
Zi5zZXJ2ZXJfaG9zdAotICAgICAgICBpZiBwb3J0IGlzIE5vbmU6Ci0gICAgICAgICAgICBwb3J0
ID0gc2VsZi5zZXJ2ZXJfcG9ydAotICAgICAgICBpZiBjb25maWd1cmF0aW9uIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRy
dWUpCi0gICAgICAgIGNvbmZpZ3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZGF0YT1j
YWRhdGEsIGNhZmlsZT1jYWZpbGUpCi0gICAgICAgIGFzeW5jIHdpdGggY29ubmVjdChob3N0LCBw
b3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sICoqa3dhcmdzKSBhcyBjbGllbnQ6Ci0g
ICAgICAgICAgICAjIHdhaXRpbmcgZm9yIGNvbm5lY3RlZCB3aGVuIGNvbm5lY3RlZCByZXR1cm5z
IGltbWVkaWF0ZWx5Ci0gICAgICAgICAgICBhd2FpdCBjbGllbnQud2FpdF9jb25uZWN0ZWQoKQot
Ci0gICAgICAgICAgICByZWFkZXIsIHdyaXRlciA9IGF3YWl0IGNsaWVudC5jcmVhdGVfc3RyZWFt
KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JpdGVyLmNhbl93cml0ZV9lb2YoKSwg
VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JpdGVyLmdldF9leHRyYV9pbmZv
KCJzdHJlYW1faWQiKSwgMCkKLQotICAgICAgICAgICAgd3JpdGVyLndyaXRlKHJlcXVlc3QpCi0g
ICAgICAgICAgICB3cml0ZXIud3JpdGVfZW9mKCkKLQotICAgICAgICAgICAgcmVzcG9uc2UgPSBh
d2FpdCByZWFkZXIucmVhZCgpCi0KLSAgICAgICAgIyB3YWl0aW5nIGZvciBjbG9zZWQgd2hlbiBj
bG9zZWQgcmV0dXJucyBpbW1lZGlhdGVseQotICAgICAgICBhd2FpdCBjbGllbnQud2FpdF9jbG9z
ZWQoKQotCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgYXN5bmMgZGVmIHJ1bl9zZXJ2
ZXIoc2VsZiwgY29uZmlndXJhdGlvbj1Ob25lLCBob3N0PSI6OiIsICoqa3dhcmdzKToKLSAgICAg
ICAgaWYgY29uZmlndXJhdGlvbiBpcyBOb25lOgotICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9
IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1GYWxzZSkKLSAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb24ubG9hZF9jZXJ0X2NoYWluKFNFUlZFUl9DRVJURklMRSwgU0VSVkVSX0tFWUZJTEUpCi0g
ICAgICAgIHNlbGYuc2VydmVyID0gYXdhaXQgc2VydmUoCi0gICAgICAgICAgICBob3N0PWhvc3Qs
Ci0gICAgICAgICAgICBwb3J0PXNlbGYuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBjb25maWd1
cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICBzdHJlYW1faGFuZGxlcj1oYW5kbGVf
c3RyZWFtLAotICAgICAgICAgICAgKiprd2FyZ3MKLSAgICAgICAgKQotICAgICAgICByZXR1cm4g
c2VsZi5zZXJ2ZXIKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlKHNlbGYpOgotICAg
ICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAgIHJlc3BvbnNlID0gcnVuKHNlbGYu
cnVuX2NsaWVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBiImduaXAi
KQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVfaXB2NChzZWxmKToKLSAgICAgICAg
cnVuKHNlbGYucnVuX3NlcnZlcihob3N0PSIwLjAuMC4wIikpCi0gICAgICAgIHJlc3BvbnNlID0g
cnVuKHNlbGYucnVuX2NsaWVudChob3N0PSIxMjcuMC4wLjEiKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXNwb25zZSwgYiJnbmlwIikKLQotICAgIEBza2lwSWYoImlwdjYiIGluIFNLSVBf
VEVTVFMsICJTa2lwcGluZyBJUHY2IHRlc3RzIikKLSAgICBkZWYgdGVzdF9jb25uZWN0X2FuZF9z
ZXJ2ZV9pcHY2KHNlbGYpOgotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKGhvc3Q9Ijo6Iikp
Ci0gICAgICAgIHJlc3BvbnNlID0gcnVuKHNlbGYucnVuX2NsaWVudChob3N0PSI6OjEiKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZSwgYiJnbmlwIikKLQotICAgIGRlZiB0ZXN0
X2Nvbm5lY3RfYW5kX3NlcnZlX2VjX2NlcnRpZmljYXRlKHNlbGYpOgotICAgICAgICBjZXJ0aWZp
Y2F0ZSwgcHJpdmF0ZV9rZXkgPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZShjb21tb25fbmFtZT0i
bG9jYWxob3N0IikKLQotICAgICAgICBydW4oCi0gICAgICAgICAgICBzZWxmLnJ1bl9zZXJ2ZXIo
Ci0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHByaXZhdGVfa2V5PXByaXZh
dGVfa2V5LCBpc19jbGllbnQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
KQotICAgICAgICApCi0KLSAgICAgICAgcmVzcG9uc2UgPSBydW4oCi0gICAgICAgICAgICBzZWxm
LnJ1bl9jbGllbnQoCi0gICAgICAgICAgICAgICAgY2FkYXRhPWNlcnRpZmljYXRlLnB1YmxpY19i
eXRlcyhzZXJpYWxpemF0aW9uLkVuY29kaW5nLlBFTSksCi0gICAgICAgICAgICAgICAgY2FmaWxl
PU5vbmUsCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlc3BvbnNlLCBiImduaXAiKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVf
bGFyZ2Uoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUcmFuc2ZlciBlbm91Z2ggZGF0YSB0
byByZXF1aXJlIHJhaXNpbmcgTUFYX0RBVEEgYW5kIE1BWF9TVFJFQU1fREFUQS4KLSAgICAgICAg
IiIiCi0gICAgICAgIGRhdGEgPSBiIloiICogMjA5NzE1MgotICAgICAgICBydW4oc2VsZi5ydW5f
c2VydmVyKCkpCi0gICAgICAgIHJlc3BvbnNlID0gcnVuKHNlbGYucnVuX2NsaWVudChyZXF1ZXN0
PWRhdGEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBkYXRhKQotCi0gICAg
ZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVfd2l0aG91dF9jbGllbnRfY29uZmlndXJhdGlvbihz
ZWxmKToKLSAgICAgICAgYXN5bmMgZGVmIHJ1bl9jbGllbnRfd2l0aG91dF9jb25maWcoKToKLSAg
ICAgICAgICAgIGFzeW5jIHdpdGggY29ubmVjdChzZWxmLnNlcnZlcl9ob3N0LCBzZWxmLnNlcnZl
cl9wb3J0KSBhcyBjbGllbnQ6Ci0gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnBpbmcoKQot
Ci0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoKSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhDb25uZWN0aW9uRXJyb3IpOgotICAgICAgICAgICAgcnVuKHJ1bl9jbGllbnRfd2l0
aG91dF9jb25maWcoKSkKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX3dyaXRlbGlu
ZXMoc2VsZik6Ci0gICAgICAgIGFzeW5jIGRlZiBydW5fY2xpZW50X3dyaXRlbGluZXMoKToKLSAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1
ZSkKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZmls
ZT1TRVJWRVJfQ0FDRVJURklMRSkKLSAgICAgICAgICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAg
ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9ob3N0LCBzZWxmLnNlcnZlcl9wb3J0LCBjb25maWd1
cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAgICAgICAgICAgICkgYXMgY2xpZW50OgotICAgICAgICAg
ICAgICAgIHJlYWRlciwgd3JpdGVyID0gYXdhaXQgY2xpZW50LmNyZWF0ZV9zdHJlYW0oKQotICAg
ICAgICAgICAgICAgIGFzc2VydCB3cml0ZXIuY2FuX3dyaXRlX2VvZigpIGlzIFRydWUKLQotICAg
ICAgICAgICAgICAgIHdyaXRlci53cml0ZWxpbmVzKFtiIjAxMjM0NTY3IiwgYiI4OTAxMjM0NSJd
KQotICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZV9lb2YoKQotCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGF3YWl0IHJlYWRlci5yZWFkKCkKLQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVy
KCkpCi0gICAgICAgIHJlc3BvbnNlID0gcnVuKHJ1bl9jbGllbnRfd3JpdGVsaW5lcygpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBiIjU0MzIxMDk4NzY1NDMyMTAiKQotCi0g
ICAgQHNraXBJZigibG9zcyIgaW4gU0tJUF9URVNUUywgIlNraXBwaW5nIGxvc3MgdGVzdHMiKQot
ICAgIEBwYXRjaCgic29ja2V0LnNvY2tldC5zZW5kdG8iLCBuZXdfY2FsbGFibGU9bGFtYmRhOiBz
ZW5kdG9fd2l0aF9sb3NzKQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX3dpdGhfcGFj
a2V0X2xvc3Moc2VsZiwgbW9ja19zZW5kdG8pOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyB0
ZXN0IGVuc3VyZXMgaGFuZHNoYWtlIHN1Y2Nlc3MgYW5kIHN0cmVhbSBkYXRhIGlzIHN1Y2Nlc3Nm
dWxseSBzZW50Ci0gICAgICAgIGFuZCByZWNlaXZlZCBpbiB0aGUgcHJlc2VuY2Ugb2YgcGFja2V0
IGxvc3MgKHJhbmRvbWl6ZWQgMjUlIGluIGVhY2ggZGlyZWN0aW9uKS4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGRhdGEgPSBiIloiICogNjU1MzYKLQotICAgICAgICBzZXJ2ZXJfY29uZmlndXJhdGlv
biA9IFF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICAgICAgaXNfY2xpZW50PUZhbHNlLCBxdWlj
X2xvZ2dlcj1RdWljTG9nZ2VyKCkKLSAgICAgICAgKQotICAgICAgICBzZXJ2ZXJfY29uZmlndXJh
dGlvbi5sb2FkX2NlcnRfY2hhaW4oU0VSVkVSX0NFUlRGSUxFLCBTRVJWRVJfS0VZRklMRSkKLSAg
ICAgICAgcnVuKHNlbGYucnVuX3NlcnZlcihjb25maWd1cmF0aW9uPXNlcnZlcl9jb25maWd1cmF0
aW9uKSkKLQotICAgICAgICByZXNwb25zZSA9IHJ1bigKLSAgICAgICAgICAgIHNlbGYucnVuX2Ns
aWVudCgKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKAot
ICAgICAgICAgICAgICAgICAgICBpc19jbGllbnQ9VHJ1ZSwgcXVpY19sb2dnZXI9UXVpY0xvZ2dl
cigpCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICByZXF1ZXN0PWRhdGEsCi0g
ICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25z
ZSwgZGF0YSkKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX3dpdGhfc2Vzc2lvbl90
aWNrZXQoc2VsZik6Ci0gICAgICAgICMgc3RhcnQgc2VydmVyCi0gICAgICAgIGNsaWVudF90aWNr
ZXQgPSBOb25lCi0gICAgICAgIHN0b3JlID0gU2Vzc2lvblRpY2tldFN0b3JlKCkKLQotICAgICAg
ICBkZWYgc2F2ZV90aWNrZXQodCk6Ci0gICAgICAgICAgICBub25sb2NhbCBjbGllbnRfdGlja2V0
Ci0gICAgICAgICAgICBjbGllbnRfdGlja2V0ID0gdAotCi0gICAgICAgIHJ1bigKLSAgICAgICAg
ICAgIHNlbGYucnVuX3NlcnZlcigKLSAgICAgICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9mZXRj
aGVyPXN0b3JlLnBvcCwgc2Vzc2lvbl90aWNrZXRfaGFuZGxlcj1zdG9yZS5hZGQKLSAgICAgICAg
ICAgICkKLSAgICAgICAgKQotCi0gICAgICAgICMgZmlyc3QgcmVxdWVzdAotICAgICAgICByZXNw
b25zZSA9IHJ1bihzZWxmLnJ1bl9jbGllbnQoc2Vzc2lvbl90aWNrZXRfaGFuZGxlcj1zYXZlX3Rp
Y2tldCksKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBiImduaXAiKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGNsaWVudF90aWNrZXQpCi0KLSAgICAgICAgIyBz
ZWNvbmQgcmVxdWVzdAotICAgICAgICBydW4oCi0gICAgICAgICAgICBzZWxmLnJ1bl9jbGllbnQo
Ci0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbigKLSAgICAg
ICAgICAgICAgICAgICAgaXNfY2xpZW50PVRydWUsIHNlc3Npb25fdGlja2V0PWNsaWVudF90aWNr
ZXQKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2UsIGIiZ25pcCIpCi0KLSAgICBkZWYgdGVzdF9jb25u
ZWN0X2FuZF9zZXJ2ZV93aXRoX3N0YXRlbGVzc19yZXRyeShzZWxmKToKLSAgICAgICAgcnVuKHNl
bGYucnVuX3NlcnZlcigpKQotICAgICAgICByZXNwb25zZSA9IHJ1bihzZWxmLnJ1bl9jbGllbnQo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZSwgYiJnbmlwIikKLQotICAgIGRl
ZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX3dpdGhfc3RhdGVsZXNzX3JldHJ5X2JhZF9vcmlnaW5h
bF9jb25uZWN0aW9uX2lkKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgSWYgdGhlIHNlcnZl
cidzIHRyYW5zcG9ydCBwYXJhbWV0ZXJzIGRvIG5vdCBoYXZlIHRoZSBjb3JyZWN0Ci0gICAgICAg
IG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQgdGhlIGNvbm5lY3Rpb24gZmFpbC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgZGVmIGNyZWF0ZV9wcm90b2NvbCgqYXJncywgKiprd2FyZ3MpOgotICAgICAg
ICAgICAgcHJvdG9jb2wgPSBRdWljQ29ubmVjdGlvblByb3RvY29sKCphcmdzLCAqKmt3YXJncykK
LSAgICAgICAgICAgIHByb3RvY29sLl9xdWljLl9vcmlnaW5hbF9jb25uZWN0aW9uX2lkID0gTm9u
ZQotICAgICAgICAgICAgcmV0dXJuIHByb3RvY29sCi0KLSAgICAgICAgcnVuKHNlbGYucnVuX3Nl
cnZlcihjcmVhdGVfcHJvdG9jb2w9Y3JlYXRlX3Byb3RvY29sLCBzdGF0ZWxlc3NfcmV0cnk9VHJ1
ZSkpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQ29ubmVjdGlvbkVycm9yKToKLSAg
ICAgICAgICAgIHJ1bihzZWxmLnJ1bl9jbGllbnQoKSkKLQotICAgIEBwYXRjaCgiYWlvcXVpYy5x
dWljLnJldHJ5LlF1aWNSZXRyeVRva2VuSGFuZGxlci52YWxpZGF0ZV90b2tlbiIpCi0gICAgZGVm
IHRlc3RfY29ubmVjdF9hbmRfc2VydmVfd2l0aF9zdGF0ZWxlc3NfcmV0cnlfYmFkKHNlbGYsIG1v
Y2tfdmFsaWRhdGUpOgotICAgICAgICBtb2NrX3ZhbGlkYXRlLnNpZGVfZWZmZWN0ID0gVmFsdWVF
cnJvcigiRGVjcnlwdGlvbiBmYWlsZWQuIikKLQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVy
KHN0YXRlbGVzc19yZXRyeT1UcnVlKSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhD
b25uZWN0aW9uRXJyb3IpOgotICAgICAgICAgICAgcnVuKAotICAgICAgICAgICAgICAgIHNlbGYu
cnVuX2NsaWVudCgKLSAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmln
dXJhdGlvbihpc19jbGllbnQ9VHJ1ZSwgaWRsZV90aW1lb3V0PTQuMCksCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVfd2l0
aF92ZXJzaW9uX25lZ290aWF0aW9uKHNlbGYpOgotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVy
KCkpCi0KLSAgICAgICAgIyBmb3JjZSB2ZXJzaW9uIG5lZ290aWF0aW9uCi0gICAgICAgIGNvbmZp
Z3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSwgcXVpY19sb2dnZXI9
UXVpY0xvZ2dlcigpKQotICAgICAgICBjb25maWd1cmF0aW9uLnN1cHBvcnRlZF92ZXJzaW9ucy5p
bnNlcnQoMCwgMHgxQTJBM0E0QSkKLQotICAgICAgICByZXNwb25zZSA9IHJ1bihzZWxmLnJ1bl9j
bGllbnQoY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXNwb25zZSwgYiJnbmlwIikKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfdGltZW91dChz
ZWxmKToKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhDb25uZWN0aW9uRXJyb3IpOgot
ICAgICAgICAgICAgcnVuKAotICAgICAgICAgICAgICAgIHNlbGYucnVuX2NsaWVudCgKLSAgICAg
ICAgICAgICAgICAgICAgcG9ydD00NDAwLAotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0
aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlLCBpZGxlX3RpbWVvdXQ9NSksCi0g
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF90
aW1lb3V0X25vX3dhaXRfY29ubmVjdGVkKHNlbGYpOgotICAgICAgICBhc3luYyBkZWYgcnVuX2Ns
aWVudF9ub193YWl0X2Nvbm5lY3RlZChjb25maWd1cmF0aW9uKToKLSAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZmlsZT1TRVJWRVJfQ0FDRVJURklMRSkK
LSAgICAgICAgICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9ob3N0LAotICAgICAgICAgICAgICAgIDQ0MDAsCi0gICAgICAgICAgICAgICAgY29uZmln
dXJhdGlvbj1jb25maWd1cmF0aW9uLAotICAgICAgICAgICAgICAgIHdhaXRfY29ubmVjdGVkPUZh
bHNlLAotICAgICAgICAgICAgKSBhcyBjbGllbnQ6Ci0gICAgICAgICAgICAgICAgYXdhaXQgY2xp
ZW50LnBpbmcoKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQ29ubmVjdGlvbkVy
cm9yKToKLSAgICAgICAgICAgIHJ1bigKLSAgICAgICAgICAgICAgICBydW5fY2xpZW50X25vX3dh
aXRfY29ubmVjdGVkKAotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25m
aWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlLCBpZGxlX3RpbWVvdXQ9NSksCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9sb2NhbF9wb3J0KHNl
bGYpOgotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAgIHJlc3BvbnNlID0g
cnVuKHNlbGYucnVuX2NsaWVudChsb2NhbF9wb3J0PTM0NTYpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlc3BvbnNlLCBiImduaXAiKQotCi0gICAgZGVmIHRlc3RfY2hhbmdlX2Nvbm5lY3Rp
b25faWQoc2VsZik6Ci0gICAgICAgIGFzeW5jIGRlZiBydW5fY2xpZW50X2NoYW5nZV9jb25uZWN0
aW9uX2lkKCk6Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24o
aXNfY2xpZW50PVRydWUpCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uLmxvYWRfdmVyaWZ5X2xv
Y2F0aW9ucyhjYWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUpCi0gICAgICAgICAgICBhc3luYyB3aXRo
IGNvbm5lY3QoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCwgc2VsZi5zZXJ2ZXJf
cG9ydCwgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgICAgICAgICApIGFzIGNsaWVu
dDoKLSAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQucGluZygpCi0gICAgICAgICAgICAgICAg
Y2xpZW50LmNoYW5nZV9jb25uZWN0aW9uX2lkKCkKLSAgICAgICAgICAgICAgICBhd2FpdCBjbGll
bnQucGluZygpCi0KLSAgICAgICAgcnVuKHNlbGYucnVuX3NlcnZlcigpKQotICAgICAgICBydW4o
cnVuX2NsaWVudF9jaGFuZ2VfY29ubmVjdGlvbl9pZCgpKQotCi0gICAgZGVmIHRlc3Rfa2V5X3Vw
ZGF0ZShzZWxmKToKLSAgICAgICAgYXN5bmMgZGVmIHJ1bl9jbGllbnRfa2V5X3VwZGF0ZSgpOgot
ICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1U
cnVlKQotICAgICAgICAgICAgY29uZmlndXJhdGlvbi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2Fm
aWxlPVNFUlZFUl9DQUNFUlRGSUxFKQotICAgICAgICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KAot
ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2hvc3QsIHNlbGYuc2VydmVyX3BvcnQsIGNvbmZp
Z3VyYXRpb249Y29uZmlndXJhdGlvbgotICAgICAgICAgICAgKSBhcyBjbGllbnQ6Ci0gICAgICAg
ICAgICAgICAgYXdhaXQgY2xpZW50LnBpbmcoKQotICAgICAgICAgICAgICAgIGNsaWVudC5yZXF1
ZXN0X2tleV91cGRhdGUoKQotICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5waW5nKCkKLQot
ICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAgIHJ1bihydW5fY2xpZW50X2tl
eV91cGRhdGUoKSkKLQotICAgIGRlZiB0ZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAgIGFzeW5jIGRl
ZiBydW5fY2xpZW50X3BpbmcoKToKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29u
ZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ubG9h
ZF92ZXJpZnlfbG9jYXRpb25zKGNhZmlsZT1TRVJWRVJfQ0FDRVJURklMRSkKLSAgICAgICAgICAg
IGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9ob3N0LCBz
ZWxmLnNlcnZlcl9wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAgICAgICAgICAg
ICkgYXMgY2xpZW50OgotICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5waW5nKCkKLSAgICAg
ICAgICAgICAgICBhd2FpdCBjbGllbnQucGluZygpCi0KLSAgICAgICAgcnVuKHNlbGYucnVuX3Nl
cnZlcigpKQotICAgICAgICBydW4ocnVuX2NsaWVudF9waW5nKCkpCi0KLSAgICBkZWYgdGVzdF9w
aW5nX3BhcmFsbGVsKHNlbGYpOgotICAgICAgICBhc3luYyBkZWYgcnVuX2NsaWVudF9waW5nKCk6
Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50
PVRydWUpCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uLmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhj
YWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUpCi0gICAgICAgICAgICBhc3luYyB3aXRoIGNvbm5lY3Qo
Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCwgc2VsZi5zZXJ2ZXJfcG9ydCwgY29u
ZmlndXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgICAgICAgICApIGFzIGNsaWVudDoKLSAgICAg
ICAgICAgICAgICBjb3JvcyA9IFtjbGllbnQucGluZygpIGZvciB4IGluIHJhbmdlKDE2KV0KLSAg
ICAgICAgICAgICAgICBhd2FpdCBhc3luY2lvLmdhdGhlcigqY29yb3MpCi0KLSAgICAgICAgcnVu
KHNlbGYucnVuX3NlcnZlcigpKQotICAgICAgICBydW4ocnVuX2NsaWVudF9waW5nKCkpCi0KLSAg
ICBkZWYgdGVzdF9zZXJ2ZXJfcmVjZWl2ZXNfZ2FyYmFnZShzZWxmKToKLSAgICAgICAgc2VydmVy
ID0gcnVuKHNlbGYucnVuX3NlcnZlcigpKQotICAgICAgICBzZXJ2ZXIuZGF0YWdyYW1fcmVjZWl2
ZWQoYmluYXNjaWkudW5oZXhsaWZ5KCJjMDAwMDAwMDAwODAiKSwgKCIxLjIuMy40IiwgMTIzNCkp
Ci0gICAgICAgIHNlcnZlci5jbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
dGVzdF9hc3luY2lvX2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5jaW9f
Y29tcGF0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDZkYmY1MTEyNGNkYjYz
MmFkYTMwYjY2YzNmMmU0NDZlZmJjMmNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5jaW9fY29tcGF0LnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotaW1wb3J0IGFzeW5jaW8KLWZyb20gdW5p
dHRlc3QgaW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlvcXVpYy5hc3luY2lvLmNvbXBhdCBpbXBv
cnQgX2FzeW5jY29udGV4dG1hbmFnZXIKLQotZnJvbSAudXRpbHMgaW1wb3J0IHJ1bgotCi0KLUBf
YXN5bmNjb250ZXh0bWFuYWdlcgotYXN5bmMgZGVmIHNvbWVfY29udGV4dCgpOgotICAgIGF3YWl0
IGFzeW5jaW8uc2xlZXAoMCkKLSAgICB5aWVsZAotICAgIGF3YWl0IGFzeW5jaW8uc2xlZXAoMCkK
LQotCi1jbGFzcyBBc3luY2lvQ29tcGF0VGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3Rfb2so
c2VsZik6Ci0gICAgICAgIGFzeW5jIGRlZiB0ZXN0KCk6Ci0gICAgICAgICAgICBhc3luYyB3aXRo
IHNvbWVfY29udGV4dCgpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBydW4odGVz
dCgpKQotCi0gICAgZGVmIHRlc3RfcmFpc2VfZXhjZXB0aW9uKHNlbGYpOgotICAgICAgICBhc3lu
YyBkZWYgdGVzdCgpOgotICAgICAgICAgICAgYXN5bmMgd2l0aCBzb21lX2NvbnRleHQoKToKLSAg
ICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInNvbWUgcmVhc29uIikKLQotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcik6Ci0gICAgICAgICAgICBydW4o
dGVzdCgpKQotCi0gICAgZGVmIHRlc3RfcmFpc2VfZXhjZXB0aW9uX3R5cGUoc2VsZik6Ci0gICAg
ICAgIGFzeW5jIGRlZiB0ZXN0KCk6Ci0gICAgICAgICAgICBhc3luYyB3aXRoIHNvbWVfY29udGV4
dCgpOgotICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcgotCi0gICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKToKLSAgICAgICAgICAgIHJ1bih0ZXN0KCkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9idWZmZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvdGVzdHMvdGVzdF9idWZmZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDUxZGJjNDRkMGRkMjZmMWVmNjg1NjgyNGQ1NWJiODgwOTkyODg3NTYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3Rf
YnVmZmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLWZyb20gdW5pdHRlc3Qg
aW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlvcXVpYy5idWZmZXIgaW1wb3J0IEJ1ZmZlciwgQnVm
ZmVyUmVhZEVycm9yLCBCdWZmZXJXcml0ZUVycm9yLCBzaXplX3VpbnRfdmFyCi0KLQotY2xhc3Mg
QnVmZmVyVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfZGF0YV9zbGljZShzZWxmKToKLSAg
ICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceDA4XHgwN1x4MDZceDA1XHgwNFx4MDNceDAyXHgw
MSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGFfc2xpY2UoMCwgOCksIGIiXHgw
OFx4MDdceDA2XHgwNVx4MDRceDAzXHgwMlx4MDEiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGJ1Zi5kYXRhX3NsaWNlKDEsIDMpLCBiIlx4MDdceDA2IikKLQotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYuZGF0YV9zbGlj
ZSgtMSwgMykKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3Ip
OgotICAgICAgICAgICAgYnVmLmRhdGFfc2xpY2UoMCwgOSkKLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAgYnVmLmRhdGFfc2xpY2Uo
MSwgMCkKLQotICAgIGRlZiB0ZXN0X3B1bGxfYnl0ZXMoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1
ZmZlcihkYXRhPWIiXHgwOFx4MDdceDA2XHgwNVx4MDRceDAzXHgwMlx4MDEiKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1Zi5wdWxsX2J5dGVzKDMpLCBiIlx4MDhceDA3XHgwNiIpCi0KLSAg
ICBkZWYgdGVzdF9wdWxsX2J5dGVzX25lZ2F0aXZlKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZm
ZXIoZGF0YT1iIlx4MDhceDA3XHgwNlx4MDVceDA0XHgwM1x4MDJceDAxIikKLSAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAgYnVmLnB1
bGxfYnl0ZXMoLTEpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2J5dGVzX3RydW5jYXRlZChzZWxmKToK
LSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTApCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoQnVmZmVyUmVhZEVycm9yKToKLSAgICAgICAgICAgIGJ1Zi5wdWxsX2J5dGVzKDIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMCkKLQotICAgIGRlZiB0ZXN0
X3B1bGxfYnl0ZXNfemVybyhzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceDA4
XHgwN1x4MDZceDA1XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVmLnB1bGxfYnl0ZXMoMCksIGIiIikKLQotICAgIGRlZiB0ZXN0X3B1bGxfdWludDgoc2VsZik6
Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWIiXHgwOFx4MDdceDA2XHgwNVx4MDRceDAzXHgw
Mlx4MDEiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5wdWxsX3VpbnQ4KCksIDB4MDgp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMSkKLQotICAgIGRlZiB0ZXN0
X3B1bGxfdWludDhfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNp
dHk9MCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgot
ICAgICAgICAgICAgYnVmLnB1bGxfdWludDgoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
Zi50ZWxsKCksIDApCi0KLSAgICBkZWYgdGVzdF9wdWxsX3VpbnQxNihzZWxmKToKLSAgICAgICAg
YnVmID0gQnVmZmVyKGRhdGE9YiJceDA4XHgwN1x4MDZceDA1XHgwNFx4MDNceDAyXHgwMSIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnB1bGxfdWludDE2KCksIDB4MDgwNykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAyKQotCi0gICAgZGVmIHRlc3RfcHVsbF91
aW50MTZfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MSkK
LSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAg
ICAgICAgYnVmLnB1bGxfdWludDE2KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVs
bCgpLCAwKQotCi0gICAgZGVmIHRlc3RfcHVsbF91aW50MzIoc2VsZik6Ci0gICAgICAgIGJ1ZiA9
IEJ1ZmZlcihkYXRhPWIiXHgwOFx4MDdceDA2XHgwNVx4MDRceDAzXHgwMlx4MDEiKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5wdWxsX3VpbnQzMigpLCAweDA4MDcwNjA1KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDQpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3Vp
bnQzMl90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0zKQot
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAg
ICAgICBidWYucHVsbF91aW50MzIoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxs
KCksIDApCi0KLSAgICBkZWYgdGVzdF9wdWxsX3VpbnQ2NChzZWxmKToKLSAgICAgICAgYnVmID0g
QnVmZmVyKGRhdGE9YiJceDA4XHgwN1x4MDZceDA1XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnB1bGxfdWludDY0KCksIDB4MDgwNzA2MDUwNDAzMDIwMSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCA4KQotCi0gICAgZGVmIHRlc3Rf
cHVsbF91aW50NjRfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNp
dHk9NykKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgot
ICAgICAgICAgICAgYnVmLnB1bGxfdWludDY0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
dWYudGVsbCgpLCAwKQotCi0gICAgZGVmIHRlc3RfcHVzaF9ieXRlcyhzZWxmKToKLSAgICAgICAg
YnVmID0gQnVmZmVyKGNhcGFjaXR5PTMpCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGIiXHgwOFx4
MDdceDA2IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiJceDA4XHgwN1x4
MDYiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDMpCi0KLSAgICBkZWYg
dGVzdF9wdXNoX2J5dGVzX3RydW5jYXRlZChzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGNh
cGFjaXR5PTMpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyV3JpdGVFcnJv
cik6Ci0gICAgICAgICAgICBidWYucHVzaF9ieXRlcyhiIlx4MDhceDA3XHgwNlx4MDUiKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDApCi0KLSAgICBkZWYgdGVzdF9wdXNo
X2J5dGVzX3plcm8oc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0zKQotICAg
ICAgICBidWYucHVzaF9ieXRlcyhiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRh
dGEsIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAwKQotCi0gICAg
ZGVmIHRlc3RfcHVzaF91aW50OChzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5
PTEpCi0gICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KDB4MDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYnVmLmRhdGEsIGIiXHgwOCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwo
KSwgMSkKLQotICAgIGRlZiB0ZXN0X3B1c2hfdWludDE2KHNlbGYpOgotICAgICAgICBidWYgPSBC
dWZmZXIoY2FwYWNpdHk9MikKLSAgICAgICAgYnVmLnB1c2hfdWludDE2KDB4MDgwNykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiJceDA4XHgwNyIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMikKLQotICAgIGRlZiB0ZXN0X3B1c2hfdWludDMyKHNl
bGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9NCkKLSAgICAgICAgYnVmLnB1c2hf
dWludDMyKDB4MDgwNzA2MDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGIi
XHgwOFx4MDdceDA2XHgwNSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwg
NCkKLQotICAgIGRlZiB0ZXN0X3B1c2hfdWludDY0KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZm
ZXIoY2FwYWNpdHk9OCkKLSAgICAgICAgYnVmLnB1c2hfdWludDY0KDB4MDgwNzA2MDUwNDAzMDIw
MSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiJceDA4XHgwN1x4MDZceDA1
XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwg
OCkKLQotICAgIGRlZiB0ZXN0X3NlZWsoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRh
PWIiMDEyMzQ1NjciKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1Zi5lb2YoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAwKQotCi0gICAgICAgIGJ1Zi5zZWVrKDQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVmLmVvZigpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGJ1Zi50ZWxsKCksIDQpCi0KLSAgICAgICAgYnVmLnNlZWsoOCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVs
bCgpLCA4KQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyUmVhZEVycm9y
KToKLSAgICAgICAgICAgIGJ1Zi5zZWVrKC0xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
Zi50ZWxsKCksIDgpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyUmVhZEVy
cm9yKToKLSAgICAgICAgICAgIGJ1Zi5zZWVrKDkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVmLnRlbGwoKSwgOCkKLQotCi1jbGFzcyBVaW50VmFyVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVm
IHJvdW5kdHJpcChzZWxmLCBkYXRhLCB2YWx1ZSk6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRh
PWRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnB1bGxfdWludF92YXIoKSwgdmFs
dWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgbGVuKGRhdGEpKQotCi0g
ICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT04KQotICAgICAgICBidWYucHVzaF91aW50X3Zh
cih2YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAg
IGRlZiB0ZXN0X3VpbnRfdmFyKHNlbGYpOgotICAgICAgICAjIDEgYnl0ZQotICAgICAgICBzZWxm
LnJvdW5kdHJpcChiIlx4MDAiLCAwKQotICAgICAgICBzZWxmLnJvdW5kdHJpcChiIlx4MDEiLCAx
KQotICAgICAgICBzZWxmLnJvdW5kdHJpcChiIlx4MjUiLCAzNykKLSAgICAgICAgc2VsZi5yb3Vu
ZHRyaXAoYiJceDNmIiwgNjMpCi0KLSAgICAgICAgIyAyIGJ5dGVzCi0gICAgICAgIHNlbGYucm91
bmR0cmlwKGIiXHg3Ylx4YmQiLCAxNTI5MykKLSAgICAgICAgc2VsZi5yb3VuZHRyaXAoYiJceDdm
XHhmZiIsIDE2MzgzKQotCi0gICAgICAgICMgNCBieXRlcwotICAgICAgICBzZWxmLnJvdW5kdHJp
cChiIlx4OWRceDdmXHgzZVx4N2QiLCA0OTQ4NzgzMzMpCi0gICAgICAgIHNlbGYucm91bmR0cmlw
KGIiXHhiZlx4ZmZceGZmXHhmZiIsIDEwNzM3NDE4MjMpCi0KLSAgICAgICAgIyA4IGJ5dGVzCi0g
ICAgICAgIHNlbGYucm91bmR0cmlwKGIiXHhjMlx4MTlceDdjXHg1ZVx4ZmZceDE0XHhlOFx4OGMi
LCAxNTEyODg4MDk5NDE5NTI2NTIpCi0gICAgICAgIHNlbGYucm91bmR0cmlwKGIiXHhmZlx4ZmZc
eGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYiLCA0NjExNjg2MDE4NDI3Mzg3OTAzKQotCi0gICAgZGVm
IHRlc3RfcHVsbF91aW50X3Zhcl90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cihjYXBhY2l0eT0wKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRF
cnJvcik6Ci0gICAgICAgICAgICBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICAgICAgYnVmID0g
QnVmZmVyKGRhdGE9YiJceGZmIikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZm
ZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAgYnVmLnB1bGxfdWludF92YXIoKQotCi0gICAgZGVm
IHRlc3RfcHVzaF91aW50X3Zhcl90b29fYmlnKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIo
Y2FwYWNpdHk9OCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBh
cyBjbToKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKDQ2MTE2ODYwMTg0MjczODc5MDQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHIoY20uZXhjZXB0aW9u
KSwgIkludGVnZXIgaXMgdG9vIGJpZyBmb3IgYSB2YXJpYWJsZS1sZW5ndGggaW50ZWdlciIKLSAg
ICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc2l6ZV91aW50X3ZhcihzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzaXplX3VpbnRfdmFyKDYzKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzaXplX3VpbnRfdmFyKDE2MzgzKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
aXplX3VpbnRfdmFyKDEwNzM3NDE4MjMpLCA0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNp
emVfdWludF92YXIoNDYxMTY4NjAxODQyNzM4NzkwMyksIDgpCi0KLSAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIHNpemVfdWludF92
YXIoNDYxMTY4NjAxODQyNzM4NzkwNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgIHN0cihjbS5leGNlcHRpb24pLCAiSW50ZWdlciBpcyB0b28gYmlnIGZvciBhIHZhcmlh
YmxlLWxlbmd0aCBpbnRlZ2VyIgotICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvdGVzdF9jb25uZWN0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfY29ubmVj
dGlvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI3ZTFjMDQ1NzQ5ZjZmOGZl
MWMzNTE4MDBhNDJkOWM4MmFkODY3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9jb25uZWN0aW9uLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTgwMCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGJpbmFz
Y2lpCi1pbXBvcnQgY29udGV4dGxpYgotaW1wb3J0IGlvCi1pbXBvcnQgdGltZQotZnJvbSB1bml0
dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBhaW9xdWljIGltcG9ydCB0bHMKLWZyb20gYWlv
cXVpYy5idWZmZXIgaW1wb3J0IFVJTlRfVkFSX01BWCwgQnVmZmVyLCBlbmNvZGVfdWludF92YXIK
LWZyb20gYWlvcXVpYy5xdWljIGltcG9ydCBldmVudHMKLWZyb20gYWlvcXVpYy5xdWljLmNvbmZp
Z3VyYXRpb24gaW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVpYy5jb25u
ZWN0aW9uIGltcG9ydCAoCi0gICAgUXVpY0Nvbm5lY3Rpb24sCi0gICAgUXVpY0Nvbm5lY3Rpb25F
cnJvciwKLSAgICBRdWljTmV0d29ya1BhdGgsCi0gICAgUXVpY1JlY2VpdmVDb250ZXh0LAotKQot
ZnJvbSBhaW9xdWljLnF1aWMuY3J5cHRvIGltcG9ydCBDcnlwdG9QYWlyCi1mcm9tIGFpb3F1aWMu
cXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXIKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldCBp
bXBvcnQgKAotICAgIFBBQ0tFVF9UWVBFX0lOSVRJQUwsCi0gICAgUXVpY0Vycm9yQ29kZSwKLSAg
ICBRdWljRnJhbWVUeXBlLAotICAgIGVuY29kZV9xdWljX3JldHJ5LAotICAgIGVuY29kZV9xdWlj
X3ZlcnNpb25fbmVnb3RpYXRpb24sCi0pCi1mcm9tIGFpb3F1aWMucXVpYy5wYWNrZXRfYnVpbGRl
ciBpbXBvcnQgUXVpY0RlbGl2ZXJ5U3RhdGUsIFF1aWNQYWNrZXRCdWlsZGVyCi1mcm9tIGFpb3F1
aWMucXVpYy5yZWNvdmVyeSBpbXBvcnQgUXVpY1BhY2tldFBhY2VyCi0KLWZyb20gLnV0aWxzIGlt
cG9ydCAoCi0gICAgU0VSVkVSX0NBQ0VSVEZJTEUsCi0gICAgU0VSVkVSX0NFUlRGSUxFLAotICAg
IFNFUlZFUl9DRVJURklMRV9XSVRIX0NIQUlOLAotICAgIFNFUlZFUl9LRVlGSUxFLAotKQotCi1D
TElFTlRfQUREUiA9ICgiMS4yLjMuNCIsIDEyMzQpCi0KLVNFUlZFUl9BRERSID0gKCIyLjMuNC41
IiwgNDQzMykKLQotCi1jbGFzcyBTZXNzaW9uVGlja2V0U3RvcmU6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICBzZWxmLnRpY2tldHMgPSB7fQotCi0gICAgZGVmIGFkZChzZWxmLCB0
aWNrZXQpOgotICAgICAgICBzZWxmLnRpY2tldHNbdGlja2V0LnRpY2tldF0gPSB0aWNrZXQKLQot
ICAgIGRlZiBwb3Aoc2VsZiwgbGFiZWwpOgotICAgICAgICByZXR1cm4gc2VsZi50aWNrZXRzLnBv
cChsYWJlbCwgTm9uZSkKLQotCi1kZWYgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQsIGVw
b2NoPXRscy5FcG9jaC5PTkVfUlRUKToKLSAgICByZXR1cm4gUXVpY1JlY2VpdmVDb250ZXh0KAot
ICAgICAgICBlcG9jaD1lcG9jaCwKLSAgICAgICAgaG9zdF9jaWQ9Y2xpZW50Lmhvc3RfY2lkLAot
ICAgICAgICBuZXR3b3JrX3BhdGg9Y2xpZW50Ll9uZXR3b3JrX3BhdGhzWzBdLAotICAgICAgICBx
dWljX2xvZ2dlcl9mcmFtZXM9W10sCi0gICAgICAgIHRpbWU9YXN5bmNpby5nZXRfZXZlbnRfbG9v
cCgpLnRpbWUoKSwKLSAgICApCi0KLQotZGVmIGNvbnN1bWVfZXZlbnRzKGNvbm5lY3Rpb24pOgot
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGV2ZW50ID0gY29ubmVjdGlvbi5uZXh0X2V2ZW50KCkK
LSAgICAgICAgaWYgZXZlbnQgaXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0KLQotZGVmIGNy
ZWF0ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmLCAqKmNsaWVudF9vcHRpb25zKToKLSAgICBjbGll
bnQgPSBRdWljQ29ubmVjdGlvbigKLSAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJh
dGlvbigKLSAgICAgICAgICAgIGlzX2NsaWVudD1UcnVlLCBxdWljX2xvZ2dlcj1RdWljTG9nZ2Vy
KCksICoqY2xpZW50X29wdGlvbnMKLSAgICAgICAgKQotICAgICkKLSAgICBjbGllbnQuX2Fja19k
ZWxheSA9IDAKLQotICAgICMga2ljay1vZmYgaGFuZHNoYWtlCi0gICAgY2xpZW50LmNvbm5lY3Qo
U0VSVkVSX0FERFIsIG5vdz10aW1lLnRpbWUoKSkKLSAgICBzZWxmLmFzc2VydEVxdWFsKGRyb3Ao
Y2xpZW50KSwgMSkKLQotICAgIHJldHVybiBjbGllbnQKLQotCi1AY29udGV4dGxpYi5jb250ZXh0
bWFuYWdlcgotZGVmIGNsaWVudF9hbmRfc2VydmVyKAotICAgIGNsaWVudF9rd2FyZ3M9e30sCi0g
ICAgY2xpZW50X29wdGlvbnM9e30sCi0gICAgY2xpZW50X3BhdGNoPWxhbWJkYSB4OiBOb25lLAot
ICAgIGhhbmRzaGFrZT1UcnVlLAotICAgIHNlcnZlcl9rd2FyZ3M9e30sCi0gICAgc2VydmVyX2Nl
cnRmaWxlPVNFUlZFUl9DRVJURklMRSwKLSAgICBzZXJ2ZXJfa2V5ZmlsZT1TRVJWRVJfS0VZRklM
RSwKLSAgICBzZXJ2ZXJfb3B0aW9ucz17fSwKLSAgICBzZXJ2ZXJfcGF0Y2g9bGFtYmRhIHg6IE5v
bmUsCi0pOgotICAgIGNsaWVudF9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oCi0g
ICAgICAgIGlzX2NsaWVudD1UcnVlLCBxdWljX2xvZ2dlcj1RdWljTG9nZ2VyKCksICoqY2xpZW50
X29wdGlvbnMKLSAgICApCi0gICAgY2xpZW50X2NvbmZpZ3VyYXRpb24ubG9hZF92ZXJpZnlfbG9j
YXRpb25zKGNhZmlsZT1TRVJWRVJfQ0FDRVJURklMRSkKLQotICAgIGNsaWVudCA9IFF1aWNDb25u
ZWN0aW9uKGNvbmZpZ3VyYXRpb249Y2xpZW50X2NvbmZpZ3VyYXRpb24sICoqY2xpZW50X2t3YXJn
cykKLSAgICBjbGllbnQuX2Fja19kZWxheSA9IDAKLSAgICBkaXNhYmxlX3BhY2tldF9wYWNpbmco
Y2xpZW50KQotICAgIGNsaWVudF9wYXRjaChjbGllbnQpCi0KLSAgICBzZXJ2ZXJfY29uZmlndXJh
dGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICBpc19jbGllbnQ9RmFsc2UsIHF1aWNf
bG9nZ2VyPVF1aWNMb2dnZXIoKSwgKipzZXJ2ZXJfb3B0aW9ucwotICAgICkKLSAgICBzZXJ2ZXJf
Y29uZmlndXJhdGlvbi5sb2FkX2NlcnRfY2hhaW4oc2VydmVyX2NlcnRmaWxlLCBzZXJ2ZXJfa2V5
ZmlsZSkKLQotICAgIHNlcnZlciA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249c2VydmVy
X2NvbmZpZ3VyYXRpb24sICoqc2VydmVyX2t3YXJncykKLSAgICBzZXJ2ZXIuX2Fja19kZWxheSA9
IDAKLSAgICBkaXNhYmxlX3BhY2tldF9wYWNpbmcoc2VydmVyKQotICAgIHNlcnZlcl9wYXRjaChz
ZXJ2ZXIpCi0KLSAgICAjIHBlcmZvcm0gaGFuZHNoYWtlCi0gICAgaWYgaGFuZHNoYWtlOgotICAg
ICAgICBjbGllbnQuY29ubmVjdChTRVJWRVJfQUREUiwgbm93PXRpbWUudGltZSgpKQotICAgICAg
ICBmb3IgaSBpbiByYW5nZSgzKToKLSAgICAgICAgICAgIHJvdW5kdHJpcChjbGllbnQsIHNlcnZl
cikKLQotICAgIHlpZWxkIGNsaWVudCwgc2VydmVyCi0KLSAgICAjIGNsb3NlCi0gICAgY2xpZW50
LmNsb3NlKCkKLSAgICBzZXJ2ZXIuY2xvc2UoKQotCi0KLWRlZiBkaXNhYmxlX3BhY2tldF9wYWNp
bmcoY29ubmVjdGlvbik6Ci0gICAgY2xhc3MgRHVtbXlQYWNrZXRQYWNlcihRdWljUGFja2V0UGFj
ZXIpOgotICAgICAgICBkZWYgbmV4dF9zZW5kX3RpbWUoc2VsZiwgbm93KToKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0KLSAgICBjb25uZWN0aW9uLl9sb3NzLl9wYWNlciA9IER1bW15UGFja2V0
UGFjZXIoKQotCi0KLWRlZiBzZXF1ZW5jZV9udW1iZXJzKGNvbm5lY3Rpb25faWRzKToKLSAgICBy
ZXR1cm4gbGlzdChtYXAobGFtYmRhIHg6IHguc2VxdWVuY2VfbnVtYmVyLCBjb25uZWN0aW9uX2lk
cykpCi0KLQotZGVmIGRyb3Aoc2VuZGVyKToKLSAgICAiIiIKLSAgICBEcm9wIGRhdGFncmFtcyBm
cm9tIGBzZW5kZXJgLgotICAgICIiIgotICAgIHJldHVybiBsZW4oc2VuZGVyLmRhdGFncmFtc190
b19zZW5kKG5vdz10aW1lLnRpbWUoKSkpCi0KLQotZGVmIHJvdW5kdHJpcChzZW5kZXIsIHJlY2Vp
dmVyKToKLSAgICAiIiIKLSAgICBTZW5kIGRhdGFncmFtcyBmcm9tIGBzZW5kZXJgIHRvIGByZWNl
aXZlcmAgYW5kIGJhY2suCi0gICAgIiIiCi0gICAgcmV0dXJuICh0cmFuc2ZlcihzZW5kZXIsIHJl
Y2VpdmVyKSwgdHJhbnNmZXIocmVjZWl2ZXIsIHNlbmRlcikpCi0KLQotZGVmIHRyYW5zZmVyKHNl
bmRlciwgcmVjZWl2ZXIpOgotICAgICIiIgotICAgIFNlbmQgZGF0YWdyYW1zIGZyb20gYHNlbmRl
cmAgdG8gYHJlY2VpdmVyYC4KLSAgICAiIiIKLSAgICBkYXRhZ3JhbXMgPSAwCi0gICAgZnJvbV9h
ZGRyID0gQ0xJRU5UX0FERFIgaWYgc2VuZGVyLl9pc19jbGllbnQgZWxzZSBTRVJWRVJfQUREUgot
ICAgIGZvciBkYXRhLCBhZGRyIGluIHNlbmRlci5kYXRhZ3JhbXNfdG9fc2VuZChub3c9dGltZS50
aW1lKCkpOgotICAgICAgICBkYXRhZ3JhbXMgKz0gMQotICAgICAgICByZWNlaXZlci5yZWNlaXZl
X2RhdGFncmFtKGRhdGEsIGZyb21fYWRkciwgbm93PXRpbWUudGltZSgpKQotICAgIHJldHVybiBk
YXRhZ3JhbXMKLQotCi1jbGFzcyBRdWljQ29ubmVjdGlvblRlc3QoVGVzdENhc2UpOgotICAgIGRl
ZiBjaGVja19oYW5kc2hha2Uoc2VsZiwgY2xpZW50LCBzZXJ2ZXIsIGFscG5fcHJvdG9jb2w9Tm9u
ZSk6Ci0gICAgICAgICIiIgotICAgICAgICBDaGVjayBoYW5kc2hha2UgY29tcGxldGVkLgotICAg
ICAgICAiIiIKLSAgICAgICAgZXZlbnQgPSBjbGllbnQubmV4dF9ldmVudCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuYWxwbl9wcm90b2NvbCwgYWxwbl9wcm90b2Nv
bCkKLSAgICAgICAgZXZlbnQgPSBjbGllbnQubmV4dF9ldmVudCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuYWxwbl9wcm90b2NvbCwgYWxwbl9wcm90b2NvbCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5lYXJseV9kYXRhX2FjY2VwdGVkLCBGYWxzZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5zZXNzaW9uX3Jlc3VtZWQsIEZhbHNlKQot
ICAgICAgICBmb3IgaSBpbiByYW5nZSg3KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY2xpZW50Lm5leHRfZXZlbnQoKSkKLQotICAgICAgICBl
dmVudCA9IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBl
KGV2ZW50KSwgZXZlbnRzLlByb3RvY29sTmVnb3RpYXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChldmVudC5hbHBuX3Byb3RvY29sLCBhbHBuX3Byb3RvY29sKQotICAgICAgICBldmVudCA9
IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50
KSwgZXZlbnRzLkhhbmRzaGFrZUNvbXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
dmVudC5hbHBuX3Byb3RvY29sLCBhbHBuX3Byb3RvY29sKQotICAgICAgICBmb3IgaSBpbiByYW5n
ZSg3KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShzZXJ2ZXIubmV4dF9ldmVu
dCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUoc2VydmVyLm5leHRfZXZlbnQoKSkKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Qoc2VsZik6Ci0g
ICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAg
ICAgICAgICAgIyBjaGVjayBoYW5kc2hha2UgY29tcGxldGVkCi0gICAgICAgICAgICBzZWxmLmNo
ZWNrX2hhbmRzaGFrZShjbGllbnQ9Y2xpZW50LCBzZXJ2ZXI9c2VydmVyKQotCi0gICAgICAgICAg
ICAjIGNoZWNrIGVhY2ggZW5kcG9pbnQgaGFzIGF2YWlsYWJsZSBjb25uZWN0aW9uIElEcyBmb3Ig
dGhlIHBlZXIKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
c2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2YWlsYWJsZSksIFsxLCAyLCAzLCA0
LCA1LCA2LCA3XQotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXJzKHNlcnZlci5fcGVlcl9jaWRfYXZhaWxh
YmxlKSwgWzEsIDIsIDMsIDQsIDUsIDYsIDddCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAg
ICMgY2xpZW50IGNsb3NlcyB0aGUgY29ubmVjdGlvbgotICAgICAgICAgICAgY2xpZW50LmNsb3Nl
KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmZXIoY2xpZW50LCBzZXJ2ZXIp
LCAxKQotCi0gICAgICAgICAgICAjIGNoZWNrIGNvbm5lY3Rpb24gY2xvc2VzIG9uIHRoZSBjbGll
bnQgc2lkZQotICAgICAgICAgICAgY2xpZW50LmhhbmRsZV90aW1lcihjbGllbnQuZ2V0X3RpbWVy
KCkpCi0gICAgICAgICAgICBldmVudCA9IGNsaWVudC5uZXh0X2V2ZW50KCkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5Db25uZWN0aW9uVGVybWluYXRl
ZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZXJyb3JfY29kZSwgUXVpY0Vy
cm9yQ29kZS5OT19FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZnJh
bWVfdHlwZSwgTm9uZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQucmVhc29u
X3BocmFzZSwgIiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShjbGllbnQubmV4dF9l
dmVudCgpKQotCi0gICAgICAgICAgICAjIGNoZWNrIGNvbm5lY3Rpb24gY2xvc2VzIG9uIHRoZSBz
ZXJ2ZXIgc2lkZQotICAgICAgICAgICAgc2VydmVyLmhhbmRsZV90aW1lcihzZXJ2ZXIuZ2V0X3Rp
bWVyKCkpCi0gICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5Db25uZWN0aW9uVGVybWlu
YXRlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZXJyb3JfY29kZSwgUXVp
Y0Vycm9yQ29kZS5OT19FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQu
ZnJhbWVfdHlwZSwgTm9uZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQucmVh
c29uX3BocmFzZSwgIiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZXJ2ZXIubmV4
dF9ldmVudCgpKQotCi0gICAgICAgICAgICAjIGNoZWNrIGNsaWVudCBsb2cKLSAgICAgICAgICAg
IGNsaWVudF9sb2cgPSBjbGllbnQuY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19kaWN0KCkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4oY2xpZW50X2xvZ1sidHJhY2VzIl1b
MF1bImV2ZW50cyJdKSwgMjApCi0KLSAgICAgICAgICAgICMgY2hlY2sgc2VydmVyIGxvZwotICAg
ICAgICAgICAgc2VydmVyX2xvZyA9IHNlcnZlci5jb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRv
X2RpY3QoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihzZXJ2ZXJfbG9nWyJ0
cmFjZXMiXVswXVsiZXZlbnRzIl0pLCAyMCkKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Rfd2l0aF9h
bHBuKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKAotICAgICAgICAgICAg
Y2xpZW50X29wdGlvbnM9eyJhbHBuX3Byb3RvY29scyI6IFsiaDMtMjUiLCAiaHEtMjUiXX0sCi0g
ICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucz17ImFscG5fcHJvdG9jb2xzIjogWyJocS0yNSJdfSwK
LSAgICAgICAgKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjaGVjayBoYW5k
c2hha2UgY29tcGxldGVkCi0gICAgICAgICAgICBzZWxmLmNoZWNrX2hhbmRzaGFrZShjbGllbnQ9
Y2xpZW50LCBzZXJ2ZXI9c2VydmVyLCBhbHBuX3Byb3RvY29sPSJocS0yNSIpCi0KLSAgICBkZWYg
dGVzdF9jb25uZWN0X3dpdGhfc2VjcmV0c19sb2coc2VsZik6Ci0gICAgICAgIGNsaWVudF9sb2df
ZmlsZSA9IGlvLlN0cmluZ0lPKCkKLSAgICAgICAgc2VydmVyX2xvZ19maWxlID0gaW8uU3RyaW5n
SU8oKQotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKAotICAgICAgICAgICAgY2xpZW50
X29wdGlvbnM9eyJzZWNyZXRzX2xvZ19maWxlIjogY2xpZW50X2xvZ19maWxlfSwKLSAgICAgICAg
ICAgIHNlcnZlcl9vcHRpb25zPXsic2VjcmV0c19sb2dfZmlsZSI6IHNlcnZlcl9sb2dfZmlsZX0s
Ci0gICAgICAgICkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2hlY2sgaGFu
ZHNoYWtlIGNvbXBsZXRlZAotICAgICAgICAgICAgc2VsZi5jaGVja19oYW5kc2hha2UoY2xpZW50
PWNsaWVudCwgc2VydmVyPXNlcnZlcikKLQotICAgICAgICAgICAgIyBjaGVjayBzZWNyZXRzIHdl
cmUgbG9nZ2VkCi0gICAgICAgICAgICBjbGllbnRfbG9nID0gY2xpZW50X2xvZ19maWxlLmdldHZh
bHVlKCkKLSAgICAgICAgICAgIHNlcnZlcl9sb2cgPSBzZXJ2ZXJfbG9nX2ZpbGUuZ2V0dmFsdWUo
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnRfbG9nLCBzZXJ2ZXJfbG9nKQot
ICAgICAgICAgICAgbGFiZWxzID0gW10KLSAgICAgICAgICAgIGZvciBsaW5lIGluIGNsaWVudF9s
b2cuc3BsaXRsaW5lcygpOgotICAgICAgICAgICAgICAgIGxhYmVscy5hcHBlbmQobGluZS5zcGxp
dCgpWzBdKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBs
YWJlbHMsCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICAiUVVJQ19TRVJW
RVJfSEFORFNIQUtFX1RSQUZGSUNfU0VDUkVUIiwKLSAgICAgICAgICAgICAgICAgICAgIlFVSUNf
Q0xJRU5UX0hBTkRTSEFLRV9UUkFGRklDX1NFQ1JFVCIsCi0gICAgICAgICAgICAgICAgICAgICJR
VUlDX1NFUlZFUl9UUkFGRklDX1NFQ1JFVF8wIiwKLSAgICAgICAgICAgICAgICAgICAgIlFVSUNf
Q0xJRU5UX1RSQUZGSUNfU0VDUkVUXzAiLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICApCi0KLSAgICBkZWYgdGVzdF9jb25uZWN0X3dpdGhfY2VydF9jaGFpbihzZWxmKToKLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcihzZXJ2ZXJfY2VydGZpbGU9U0VSVkVSX0NFUlRGSUxF
X1dJVEhfQ0hBSU4pIGFzICgKLSAgICAgICAgICAgIGNsaWVudCwKLSAgICAgICAgICAgIHNlcnZl
ciwKLSAgICAgICAgKToKLSAgICAgICAgICAgICMgY2hlY2sgaGFuZHNoYWtlIGNvbXBsZXRlZAot
ICAgICAgICAgICAgc2VsZi5jaGVja19oYW5kc2hha2UoY2xpZW50PWNsaWVudCwgc2VydmVyPXNl
cnZlcikKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Rfd2l0aF9sb3NzXzEoc2VsZik6Ci0gICAgICAg
ICIiIgotICAgICAgICBDaGVjayBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkIGV2ZW4gaW4gdGhl
IGNsaWVudCdzIElOSVRJQUwgaXMgbG9zdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIGRh
dGFncmFtX3NpemVzKGl0ZW1zKToKLSAgICAgICAgICAgIHJldHVybiBbbGVuKHhbMF0pIGZvciB4
IGluIGl0ZW1zXQotCi0gICAgICAgIGNsaWVudF9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3Vy
YXRpb24oaXNfY2xpZW50PVRydWUpCi0gICAgICAgIGNsaWVudF9jb25maWd1cmF0aW9uLmxvYWRf
dmVyaWZ5X2xvY2F0aW9ucyhjYWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUpCi0KLSAgICAgICAgY2xp
ZW50ID0gUXVpY0Nvbm5lY3Rpb24oY29uZmlndXJhdGlvbj1jbGllbnRfY29uZmlndXJhdGlvbikK
LSAgICAgICAgY2xpZW50Ll9hY2tfZGVsYXkgPSAwCi0KLSAgICAgICAgc2VydmVyX2NvbmZpZ3Vy
YXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgIHNlcnZl
cl9jb25maWd1cmF0aW9uLmxvYWRfY2VydF9jaGFpbihTRVJWRVJfQ0VSVEZJTEUsIFNFUlZFUl9L
RVlGSUxFKQotCi0gICAgICAgIHNlcnZlciA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249
c2VydmVyX2NvbmZpZ3VyYXRpb24pCi0gICAgICAgIHNlcnZlci5fYWNrX2RlbGF5ID0gMAotCi0g
ICAgICAgICMgY2xpZW50IHNlbmRzIElOSVRJQUwKLSAgICAgICAgbm93ID0gMC4wCi0gICAgICAg
IGNsaWVudC5jb25uZWN0KFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNs
aWVudC5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzEyODBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNsaWVudC5nZXRfdGltZXIoKSwgMS4wKQotCi0gICAgICAgICMgSU5JVElBTCBpcyBsb3N0Ci0g
ICAgICAgIG5vdyA9IDEuMAotICAgICAgICBjbGllbnQuaGFuZGxlX3RpbWVyKG5vdz1ub3cpCi0g
ICAgICAgIGl0ZW1zID0gY2xpZW50LmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMTI4MF0pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCAzLjApCi0KLSAgICAgICAgIyBz
ZXJ2ZXIgcmVjZWl2ZXMgSU5JVElBTCwgc2VuZHMgSU5JVElBTCArIEhBTkRTSEFLRQotICAgICAg
ICBub3cgPSAxLjEKLSAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMF1bMF0s
IENMSUVOVF9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IHNlcnZlci5kYXRhZ3JhbXNf
dG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVz
KGl0ZW1zKSwgWzEyODAsIDEwMzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5n
ZXRfdGltZXIoKSwgMi4xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIuX2xv
c3Muc3BhY2VzWzBdLnNlbnRfcGFja2V0cyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRzKSwgMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0eXBlKHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuUHJvdG9jb2xO
ZWdvdGlhdGVkKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZXJ2ZXIubmV4dF9ldmVudCgp
KQotCi0gICAgICAgICMgaGFuZHNoYWtlIGNvbnRpbnVlcyBub3JtYWxseQotICAgICAgICBub3cg
PSAxLjIKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMF1bMF0sIFNFUlZF
Ul9BRERSLCBub3c9bm93KQotICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1sx
XVswXSwgU0VSVkVSX0FERFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gY2xpZW50LmRhdGFn
cmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1f
c2l6ZXMoaXRlbXMpLCBbMzc2XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChjbGll
bnQuZ2V0X3RpbWVyKCksIDEuODI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoY2xp
ZW50Lm5leHRfZXZlbnQoKSksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLkhhbmRzaGFr
ZUNvbXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVudC5uZXh0X2V2
ZW50KCkpLCBldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKQotCi0gICAgICAgIG5vdyA9IDEuMwot
ICAgICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FERFIs
IG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz1u
b3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMjI5
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChzZXJ2ZXIuZ2V0X3RpbWVyKCksIDEu
ODI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzBd
LnNlbnRfcGFja2V0cyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5f
bG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRzKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0eXBlKHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuSGFuZHNoYWtlQ29tcGxldGVkKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVyLm5leHRfZXZlbnQoKSksIGV2ZW50
cy5Db25uZWN0aW9uSWRJc3N1ZWQpCi0KLSAgICAgICAgbm93ID0gMS40Ci0gICAgICAgIGNsaWVu
dC5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJWRVJfQUREUiwgbm93PW5vdykKLSAg
ICAgICAgaXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFszMl0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCA2MS40KSAgIyBpZGxlIHRp
bWVvdXQKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Rfd2l0aF9sb3NzXzIoc2VsZik6Ci0gICAgICAg
IGRlZiBkYXRhZ3JhbV9zaXplcyhpdGVtcyk6Ci0gICAgICAgICAgICByZXR1cm4gW2xlbih4WzBd
KSBmb3IgeCBpbiBpdGVtc10KLQotICAgICAgICBjbGllbnRfY29uZmlndXJhdGlvbiA9IFF1aWND
b25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICBjbGllbnRfY29uZmlndXJhdGlv
bi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlPVNFUlZFUl9DQUNFUlRGSUxFKQotCi0gICAg
ICAgIGNsaWVudCA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249Y2xpZW50X2NvbmZpZ3Vy
YXRpb24pCi0gICAgICAgIGNsaWVudC5fYWNrX2RlbGF5ID0gMAotCi0gICAgICAgIHNlcnZlcl9j
b25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAg
ICBzZXJ2ZXJfY29uZmlndXJhdGlvbi5sb2FkX2NlcnRfY2hhaW4oU0VSVkVSX0NFUlRGSUxFLCBT
RVJWRVJfS0VZRklMRSkKLQotICAgICAgICBzZXJ2ZXIgPSBRdWljQ29ubmVjdGlvbihjb25maWd1
cmF0aW9uPXNlcnZlcl9jb25maWd1cmF0aW9uKQotICAgICAgICBzZXJ2ZXIuX2Fja19kZWxheSA9
IDAKLQotICAgICAgICAjIGNsaWVudCBzZW5kcyBJTklUSUFMCi0gICAgICAgIG5vdyA9IDAuMAot
ICAgICAgICBjbGllbnQuY29ubmVjdChTRVJWRVJfQUREUiwgbm93PW5vdykKLSAgICAgICAgaXRl
bXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsxMjgwXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjbGllbnQuZ2V0X3RpbWVyKCksIDEuMCkKLQotICAgICAgICAjIHNlcnZlciByZWNl
aXZlcyBJTklUSUFMLCBzZW5kcyBJTklUSUFMICsgSEFORFNIQUtFIGJ1dCBzZWNvbmQgZGF0YWdy
YW0gaXMgbG9zdAotICAgICAgICBub3cgPSAwLjEKLSAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0
YWdyYW0oaXRlbXNbMF1bMF0sIENMSUVOVF9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9
IHNlcnZlci5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzEyODAsIDEwMzBdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlcnZlci5nZXRfdGltZXIoKSwgMS4xKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzBdLnNlbnRfcGFja2V0cyksIDEpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRz
KSwgMikKLQotICAgICAgICAjIGNsaWVudCBvbmx5IHJlY2VpdmVzIGZpcnN0IGRhdGFncmFtIGFu
ZCBzZW5kcyBBQ0tTCi0gICAgICAgIG5vdyA9IDAuMgotICAgICAgICBjbGllbnQucmVjZWl2ZV9k
YXRhZ3JhbShpdGVtc1swXVswXSwgU0VSVkVSX0FERFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1z
ID0gY2xpZW50LmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbOTddKQotICAgICAgICBzZWxmLmFzc2VydEFs
bW9zdEVxdWFsKGNsaWVudC5nZXRfdGltZXIoKSwgMC42MjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLlByb3RvY29sTmVnb3RpYXRl
ZCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY2xpZW50Lm5leHRfZXZlbnQoKSkKLQotICAg
ICAgICAjIGNsaWVudCBQVE8gLSBIQU5EU0hBS0UgUElORwotICAgICAgICBub3cgPSBjbGllbnQu
Z2V0X3RpbWVyKCkgICMgfjAuNjI1Ci0gICAgICAgIGNsaWVudC5oYW5kbGVfdGltZXIobm93PW5v
dykKLSAgICAgICAgaXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFs0NF0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCAxLjg3NSkKLQot
ICAgICAgICAjIHNlcnZlciByZWNlaXZlcyBQSU5HLCBkaXNjYXJkcyBJTklUSUFMIGFuZCBzZW5k
cyBBQ0sKLSAgICAgICAgbm93ID0gMC43MjUKLSAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0YWdy
YW0oaXRlbXNbMF1bMF0sIENMSUVOVF9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IHNl
cnZlci5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzQ4XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RF
cXVhbChzZXJ2ZXIuZ2V0X3RpbWVyKCksIDEuMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oc2VydmVyLl9sb3NzLnNwYWNlc1swXS5zZW50X3BhY2tldHMpLCAwKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzFdLnNlbnRfcGFja2V0cyksIDMp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShzZXJ2ZXIubmV4dF9ldmVudCgpKSwgZXZl
bnRzLlByb3RvY29sTmVnb3RpYXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VydmVy
Lm5leHRfZXZlbnQoKSkKLQotICAgICAgICAjIEFDS3MgYXJlIGxvc3QsIHNlcnZlciByZXRyYW5z
bWl0cyBIQU5EU0hBS0UKLSAgICAgICAgbm93ID0gc2VydmVyLmdldF90aW1lcigpCi0gICAgICAg
IHNlcnZlci5oYW5kbGVfdGltZXIobm93PW5vdykKLSAgICAgICAgaXRlbXMgPSBzZXJ2ZXIuZGF0
YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3Jh
bV9zaXplcyhpdGVtcyksIFsxMjgwLCA4NTRdKQotICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVx
dWFsKHNlcnZlci5nZXRfdGltZXIoKSwgMy4xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzBdLnNlbnRfcGFja2V0cyksIDApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRzKSwgMykK
LSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VydmVyLm5leHRfZXZlbnQoKSkKLQotICAgICAg
ICAjIGhhbmRzaGFrZSBjb250aW51ZXMgbm9ybWFsbHkKLSAgICAgICAgbm93ID0gMS4yCi0gICAg
ICAgIGNsaWVudC5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJWRVJfQUREUiwgbm93
PW5vdykKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMV1bMF0sIFNFUlZF
Ul9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRhZ3JhbXNfdG9fc2Vu
ZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1z
KSwgWzMyOV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1l
cigpLCAyLjQ1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoY2xpZW50Lm5leHRfZXZl
bnQoKSksIGV2ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCkK
LQotICAgICAgICBub3cgPSAxLjMKLSAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0YWdyYW0oaXRl
bXNbMF1bMF0sIENMSUVOVF9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IHNlcnZlci5k
YXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFn
cmFtX3NpemVzKGl0ZW1zKSwgWzIyOV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwo
c2VydmVyLmdldF90aW1lcigpLCAxLjkyNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBl
KHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuSGFuZHNoYWtlQ29tcGxldGVkKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVyLm5leHRfZXZlbnQoKSksIGV2ZW50cy5Db25u
ZWN0aW9uSWRJc3N1ZWQpCi0KLSAgICAgICAgbm93ID0gMS40Ci0gICAgICAgIGNsaWVudC5yZWNl
aXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJWRVJfQUREUiwgbm93PW5vdykKLSAgICAgICAg
aXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFszMl0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCA2MS40KSAgIyBpZGxlIHRpbWVvdXQK
LQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Rfd2l0aF9sb3NzXzMoc2VsZik6Ci0gICAgICAgIGRlZiBk
YXRhZ3JhbV9zaXplcyhpdGVtcyk6Ci0gICAgICAgICAgICByZXR1cm4gW2xlbih4WzBdKSBmb3Ig
eCBpbiBpdGVtc10KLQotICAgICAgICBjbGllbnRfY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1
cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICBjbGllbnRfY29uZmlndXJhdGlvbi5sb2Fk
X3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlPVNFUlZFUl9DQUNFUlRGSUxFKQotCi0gICAgICAgIGNs
aWVudCA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249Y2xpZW50X2NvbmZpZ3VyYXRpb24p
Ci0gICAgICAgIGNsaWVudC5fYWNrX2RlbGF5ID0gMAotCi0gICAgICAgIHNlcnZlcl9jb25maWd1
cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICBzZXJ2
ZXJfY29uZmlndXJhdGlvbi5sb2FkX2NlcnRfY2hhaW4oU0VSVkVSX0NFUlRGSUxFLCBTRVJWRVJf
S0VZRklMRSkKLQotICAgICAgICBzZXJ2ZXIgPSBRdWljQ29ubmVjdGlvbihjb25maWd1cmF0aW9u
PXNlcnZlcl9jb25maWd1cmF0aW9uKQotICAgICAgICBzZXJ2ZXIuX2Fja19kZWxheSA9IDAKLQot
ICAgICAgICAjIGNsaWVudCBzZW5kcyBJTklUSUFMCi0gICAgICAgIG5vdyA9IDAuMAotICAgICAg
ICBjbGllbnQuY29ubmVjdChTRVJWRVJfQUREUiwgbm93PW5vdykKLSAgICAgICAgaXRlbXMgPSBj
bGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsxMjgwXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjbGllbnQuZ2V0X3RpbWVyKCksIDEuMCkKLQotICAgICAgICAjIHNlcnZlciByZWNlaXZlcyBJ
TklUSUFMLCBzZW5kcyBJTklUSUFMICsgSEFORFNIQUtFCi0gICAgICAgIG5vdyA9IDAuMQotICAg
ICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FERFIsIG5v
dz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMTI4MCwg
MTAzMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLmdldF90aW1lcigpLCAxLjEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMF0uc2Vu
dF9wYWNrZXRzKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyLl9sb3Nz
LnNwYWNlc1sxXS5zZW50X3BhY2tldHMpLCAyKQotCi0gICAgICAgICMgY2xpZW50IHJlY2VpdmVz
IElOSVRJQUwgKyBIQU5EU0hBS0UKLSAgICAgICAgbm93ID0gMC4yCi0gICAgICAgIGNsaWVudC5y
ZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJWRVJfQUREUiwgbm93PW5vdykKLSAgICAg
ICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMV1bMF0sIFNFUlZFUl9BRERSLCBub3c9
bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzM3Nl0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCAwLjgyNSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVudC5uZXh0X2V2ZW50KCkpLCBldmVu
dHMuUHJvdG9jb2xOZWdvdGlhdGVkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoY2xp
ZW50Lm5leHRfZXZlbnQoKSksIGV2ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rp
b25JZElzc3VlZCkKLQotICAgICAgICAjIHNlcnZlciBjb21wbGV0ZXMgaGFuZHNoYWtlCi0gICAg
ICAgIG5vdyA9IDAuMwotICAgICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVsw
XSwgQ0xJRU5UX0FERFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFt
c190b19zZW5kKG5vdz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6
ZXMoaXRlbXMpLCBbMjI5XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChzZXJ2ZXIu
Z2V0X3RpbWVyKCksIDAuODI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIu
X2xvc3Muc3BhY2VzWzBdLnNlbnRfcGFja2V0cyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRzKSwgMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuUHJvdG9j
b2xOZWdvdGlhdGVkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVyLm5leHRf
ZXZlbnQoKSksIGV2ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodHlwZShzZXJ2ZXIubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3Vl
ZCkKLQotICAgICAgICAjIHNlcnZlciBQVE8gLSAxLVJUVCBQSU5HCi0gICAgICAgIG5vdyA9IDAu
ODI1Ci0gICAgICAgIHNlcnZlci5oYW5kbGVfdGltZXIobm93PW5vdykKLSAgICAgICAgaXRlbXMg
PSBzZXJ2ZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsyOV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxt
b3N0RXF1YWwoc2VydmVyLmdldF90aW1lcigpLCAxLjg3NSkKLQotICAgICAgICAjIGNsaWVudCBy
ZWNlaXZlcyBQSU5HLCBzZW5kcyBBQ0sKLSAgICAgICAgbm93ID0gMC45Ci0gICAgICAgIGNsaWVu
dC5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJWRVJfQUREUiwgbm93PW5vdykKLSAg
ICAgICAgaXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFszMl0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCAwLjgyNSkKLQotICAgICAg
ICAjIHNlcnZlciByZWNlaXZlcyBBQ0ssIHJldHJhbnNtaXRzIEhBTkRTSEFLRV9ET05FCi0gICAg
ICAgIG5vdyA9IDEuMAotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5faGFuZHNoYWtl
X2RvbmVfcGVuZGluZykKLSAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMF1b
MF0sIENMSUVOVF9BRERSLCBub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVy
Ll9oYW5kc2hha2VfZG9uZV9wZW5kaW5nKQotICAgICAgICBpdGVtcyA9IHNlcnZlci5kYXRhZ3Jh
bXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5faGFu
ZHNoYWtlX2RvbmVfcGVuZGluZykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9z
aXplcyhpdGVtcyksIFsyMjRdKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF93aXRoX3F1YW50dW1f
cmVhZGluZXNzKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKGNsaWVudF9v
cHRpb25zPXsicXVhbnR1bV9yZWFkaW5lc3NfdGVzdCI6IFRydWV9LCkgYXMgKAotICAgICAgICAg
ICAgY2xpZW50LAotICAgICAgICAgICAgc2VydmVyLAotICAgICAgICApOgotICAgICAgICAgICAg
c3RyZWFtX2lkID0gY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAg
ICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwg
MSkpCi0KLSAgICAgICAgICAgIHJlY2VpdmVkID0gTm9uZQotICAgICAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBldmVudHMuU3RyZWFtRGF0YVJlY2VpdmVkKToK
LSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQgPSBldmVudC5kYXRhCi0gICAgICAgICAgICAg
ICAgZWxpZiBldmVudCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY2VpdmVkLCBiImhlbGxvIikKLQotICAgIGRlZiB0
ZXN0X2Nvbm5lY3Rfd2l0aF8wcnR0KHNlbGYpOgotICAgICAgICBjbGllbnRfdGlja2V0ID0gTm9u
ZQotICAgICAgICB0aWNrZXRfc3RvcmUgPSBTZXNzaW9uVGlja2V0U3RvcmUoKQotCi0gICAgICAg
IGRlZiBzYXZlX3Nlc3Npb25fdGlja2V0KHRpY2tldCk6Ci0gICAgICAgICAgICBub25sb2NhbCBj
bGllbnRfdGlja2V0Ci0gICAgICAgICAgICBjbGllbnRfdGlja2V0ID0gdGlja2V0Ci0KLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigKLSAgICAgICAgICAgIGNsaWVudF9rd2FyZ3M9eyJz
ZXNzaW9uX3RpY2tldF9oYW5kbGVyIjogc2F2ZV9zZXNzaW9uX3RpY2tldH0sCi0gICAgICAgICAg
ICBzZXJ2ZXJfa3dhcmdzPXsic2Vzc2lvbl90aWNrZXRfaGFuZGxlciI6IHRpY2tldF9zdG9yZS5h
ZGR9LAotICAgICAgICApIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBwYXNzCi0K
LSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigKLSAgICAgICAgICAgIGNsaWVudF9vcHRp
b25zPXsic2Vzc2lvbl90aWNrZXQiOiBjbGllbnRfdGlja2V0fSwKLSAgICAgICAgICAgIHNlcnZl
cl9rd2FyZ3M9eyJzZXNzaW9uX3RpY2tldF9mZXRjaGVyIjogdGlja2V0X3N0b3JlLnBvcH0sCi0g
ICAgICAgICAgICBoYW5kc2hha2U9RmFsc2UsCi0gICAgICAgICkgYXMgKGNsaWVudCwgc2VydmVy
KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KFNFUlZFUl9BRERSLCBub3c9dGltZS50aW1l
KCkpCi0gICAgICAgICAgICBzdHJlYW1faWQgPSBjbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0
cmVhbV9pZCgpCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQs
IGIiaGVsbG8iKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChjbGll
bnQsIHNlcnZlciksICgyLCAxKSkKLQotICAgICAgICAgICAgZXZlbnQgPSBzZXJ2ZXIubmV4dF9l
dmVudCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVudHMu
UHJvdG9jb2xOZWdvdGlhdGVkKQotCi0gICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2
ZW50KCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5T
dHJlYW1EYXRhUmVjZWl2ZWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmRh
dGEsIGIiaGVsbG8iKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF93aXRoXzBydHRfYmFkX21heF9l
YXJseV9kYXRhKHNlbGYpOgotICAgICAgICBjbGllbnRfdGlja2V0ID0gTm9uZQotICAgICAgICB0
aWNrZXRfc3RvcmUgPSBTZXNzaW9uVGlja2V0U3RvcmUoKQotCi0gICAgICAgIGRlZiBwYXRjaChz
ZXJ2ZXIpOgotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBQYXRjaCBzZXJ2ZXIncyBUTFMg
aW5pdGlhbGl6YXRpb24gdG8gc2V0IGFuIGludmFsaWQKLSAgICAgICAgICAgIG1heF9lYXJseV9k
YXRhIHZhbHVlLgotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICByZWFsX2luaXRpYWxpemUg
PSBzZXJ2ZXIuX2luaXRpYWxpemUKLQotICAgICAgICAgICAgZGVmIHBhdGNoZWRfaW5pdGlhbGl6
ZShwZWVyX2NpZDogYnl0ZXMpOgotICAgICAgICAgICAgICAgIHJlYWxfaW5pdGlhbGl6ZShwZWVy
X2NpZCkKLSAgICAgICAgICAgICAgICBzZXJ2ZXIudGxzLl9tYXhfZWFybHlfZGF0YSA9IDEyMzQ1
Ci0KLSAgICAgICAgICAgIHNlcnZlci5faW5pdGlhbGl6ZSA9IHBhdGNoZWRfaW5pdGlhbGl6ZQot
Ci0gICAgICAgIGRlZiBzYXZlX3Nlc3Npb25fdGlja2V0KHRpY2tldCk6Ci0gICAgICAgICAgICBu
b25sb2NhbCBjbGllbnRfdGlja2V0Ci0gICAgICAgICAgICBjbGllbnRfdGlja2V0ID0gdGlja2V0
Ci0KLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigKLSAgICAgICAgICAgIGNsaWVudF9r
d2FyZ3M9eyJzZXNzaW9uX3RpY2tldF9oYW5kbGVyIjogc2F2ZV9zZXNzaW9uX3RpY2tldH0sCi0g
ICAgICAgICAgICBzZXJ2ZXJfa3dhcmdzPXsic2Vzc2lvbl90aWNrZXRfaGFuZGxlciI6IHRpY2tl
dF9zdG9yZS5hZGR9LAotICAgICAgICAgICAgc2VydmVyX3BhdGNoPXBhdGNoLAotICAgICAgICAp
IGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNoZWNrIGhhbmRzaGFrZSBmYWls
ZWQKLSAgICAgICAgICAgIGV2ZW50ID0gY2xpZW50Lm5leHRfZXZlbnQoKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRJc05vbmUoZXZlbnQpCi0KLSAgICBkZWYgdGVzdF9jaGFuZ2VfY29ubmVjdGlv
bl9pZChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQs
IHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAg
IHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9wZWVyX2NpZF9hdmFpbGFibGUpLCBbMSwgMiwgMywg
NCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyB0aGUgY2xpZW50IGNo
YW5nZXMgY29ubmVjdGlvbiBJRAotICAgICAgICAgICAgY2xpZW50LmNoYW5nZV9jb25uZWN0aW9u
X2lkKCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmZXIoY2xpZW50LCBzZXJ2
ZXIpLCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBz
ZXF1ZW5jZV9udW1iZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUs
IDYsIDddCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgdGhlIHNlcnZlciBwcm92aWRl
cyBhIG5ldyBjb25uZWN0aW9uIElECi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5z
ZmVyKHNlcnZlciwgY2xpZW50KSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2YWlsYWJs
ZSksIFsyLCAzLCA0LCA1LCA2LCA3LCA4XQotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
Y2hhbmdlX2Nvbm5lY3Rpb25faWRfcmV0cmFuc21pdF9uZXdfY29ubmVjdGlvbl9pZChzZWxmKToK
LSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251
bWJlcnMoY2xpZW50Ll9wZWVyX2NpZF9hdmFpbGFibGUpLCBbMSwgMiwgMywgNCwgNSwgNiwgN10K
LSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyB0aGUgY2xpZW50IGNoYW5nZXMgY29ubmVj
dGlvbiBJRAotICAgICAgICAgICAgY2xpZW50LmNoYW5nZV9jb25uZWN0aW9uX2lkKCkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmZXIoY2xpZW50LCBzZXJ2ZXIpLCAxKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1i
ZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYsIDddCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgdGhlIHNlcnZlciBwcm92aWRlcyBhIG5ldyBjb25u
ZWN0aW9uIElELCBORVdfQ09OTkVDVElPTl9JRCBpcyBsb3N0Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGRyb3Aoc2VydmVyKSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2YWls
YWJsZSksIFsyLCAzLCA0LCA1LCA2LCA3XQotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAj
IE5FV19DT05ORUNUSU9OX0lEIGlzIHJldHJhbnNtaXR0ZWQKLSAgICAgICAgICAgIHNlcnZlci5f
b25fbmV3X2Nvbm5lY3Rpb25faWRfZGVsaXZlcnkoCi0gICAgICAgICAgICAgICAgUXVpY0RlbGl2
ZXJ5U3RhdGUuTE9TVCwgc2VydmVyLl9ob3N0X2NpZHNbLTFdCi0gICAgICAgICAgICApCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZmVyKHNlcnZlciwgY2xpZW50KSwgMSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVt
YmVycyhjbGllbnQuX3BlZXJfY2lkX2F2YWlsYWJsZSksIFsyLCAzLCA0LCA1LCA2LCA3LCA4XQot
ICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfY2hhbmdlX2Nvbm5lY3Rpb25faWRfcmV0cmFu
c21pdF9yZXRpcmVfY29ubmVjdGlvbl9pZChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5k
X3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9wZWVyX2NpZF9h
dmFpbGFibGUpLCBbMSwgMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQotICAgICAg
ICAgICAgIyB0aGUgY2xpZW50IGNoYW5nZXMgY29ubmVjdGlvbiBJRCwgUkVUSVJFX0NPTk5FQ1RJ
T05fSUQgaXMgbG9zdAotICAgICAgICAgICAgY2xpZW50LmNoYW5nZV9jb25uZWN0aW9uX2lkKCkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAxKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXJzKGNs
aWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYsIDddCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgICMgUkVUSVJFX0NPTk5FQ1RJT05fSUQgaXMgcmV0cmFuc21pdHRl
ZAotICAgICAgICAgICAgY2xpZW50Ll9vbl9yZXRpcmVfY29ubmVjdGlvbl9pZF9kZWxpdmVyeShR
dWljRGVsaXZlcnlTdGF0ZS5MT1NULCAwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
cmFuc2ZlcihjbGllbnQsIHNlcnZlciksIDEpCi0KLSAgICAgICAgICAgICMgdGhlIHNlcnZlciBw
cm92aWRlcyBhIG5ldyBjb25uZWN0aW9uIElECi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRyYW5zZmVyKHNlcnZlciwgY2xpZW50KSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2
YWlsYWJsZSksIFsyLCAzLCA0LCA1LCA2LCA3LCA4XQotICAgICAgICAgICAgKQotCi0gICAgZGVm
IHRlc3RfZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChzZWxmKToKLSAgICAgICAgd2l0aCBj
bGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNs
aWVudAotICAgICAgICAgICAgc3RyZWFtX2lkID0gY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9z
dHJlYW1faWQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW1faWQsIDApCi0g
ICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiaGVsbG8iKQot
Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBjbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVh
bV9pZCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbV9pZCwgNCkKLSAgICAg
ICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJoZWxsbyIpCi0KLSAg
ICAgICAgICAgIHN0cmVhbV9pZCA9IGNsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lk
KGlzX3VuaWRpcmVjdGlvbmFsPVRydWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cmVhbV9pZCwgMikKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9p
ZCwgYiJoZWxsbyIpCi0KLSAgICAgICAgICAgIHN0cmVhbV9pZCA9IGNsaWVudC5nZXRfbmV4dF9h
dmFpbGFibGVfc3RyZWFtX2lkKGlzX3VuaWRpcmVjdGlvbmFsPVRydWUpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0cmVhbV9pZCwgNikKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0
cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJoZWxsbyIpCi0KLSAgICAgICAgICAgICMgc2VydmVyCi0g
ICAgICAgICAgICBzdHJlYW1faWQgPSBzZXJ2ZXIuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9p
ZCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbV9pZCwgMSkKLSAgICAgICAg
ICAgIHNlcnZlci5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJoZWxsbyIpCi0KLSAgICAg
ICAgICAgIHN0cmVhbV9pZCA9IHNlcnZlci5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtX2lkLCA1KQotICAgICAgICAgICAg
c2VydmVyLnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAgICAgICAg
ICAgc3RyZWFtX2lkID0gc2VydmVyLmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoaXNfdW5p
ZGlyZWN0aW9uYWw9VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtX2lk
LCAzKQotICAgICAgICAgICAgc2VydmVyLnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiImhl
bGxvIikKLQotICAgICAgICAgICAgc3RyZWFtX2lkID0gc2VydmVyLmdldF9uZXh0X2F2YWlsYWJs
ZV9zdHJlYW1faWQoaXNfdW5pZGlyZWN0aW9uYWw9VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyZWFtX2lkLCA3KQotICAgICAgICAgICAgc2VydmVyLnNlbmRfc3RyZWFtX2Rh
dGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAgIGRlZiB0ZXN0X2RhdGFncmFtX2ZyYW1lKHNl
bGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKAotICAgICAgICAgICAgY2xpZW50
X29wdGlvbnM9eyJtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZSI6IDY1NTM2fSwKLSAgICAgICAgICAg
IHNlcnZlcl9vcHRpb25zPXsibWF4X2RhdGFncmFtX2ZyYW1lX3NpemUiOiA2NTUzNn0sCi0gICAg
ICAgICkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2hlY2sgaGFuZHNoYWtl
IGNvbXBsZXRlZAotICAgICAgICAgICAgc2VsZi5jaGVja19oYW5kc2hha2UoY2xpZW50PWNsaWVu
dCwgc2VydmVyPXNlcnZlciwgYWxwbl9wcm90b2NvbD1Ob25lKQotCi0gICAgICAgICAgICAjIHNl
bmQgZGF0YWdyYW0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2RhdGFncmFtX2ZyYW1lKGIiaGVs
bG8iKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFuc2ZlcihjbGllbnQsIHNlcnZl
ciksIDEpCi0KLSAgICAgICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50KSwgZXZlbnRzLkRhdGFncmFtRnJhbWVS
ZWNlaXZlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZGF0YSwgYiJoZWxs
byIpCi0KLSAgICBkZWYgdGVzdF9kYXRhZ3JhbV9mcmFtZV8yKHNlbGYpOgotICAgICAgICAjIHBh
eWxvYWQgd2hpY2ggZXhhY3RseSBmaWxscyBhbiBlbnRpcmUgcGFja2V0Ci0gICAgICAgIHBheWxv
YWQgPSBiIloiICogMTI1MAotCi0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoCi0gICAg
ICAgICAgICBjbGllbnRfb3B0aW9ucz17Im1heF9kYXRhZ3JhbV9mcmFtZV9zaXplIjogNjU1MzZ9
LAotICAgICAgICAgICAgc2VydmVyX29wdGlvbnM9eyJtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZSI6
IDY1NTM2fSwKLSAgICAgICAgKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBj
aGVjayBoYW5kc2hha2UgY29tcGxldGVkCi0gICAgICAgICAgICBzZWxmLmNoZWNrX2hhbmRzaGFr
ZShjbGllbnQ9Y2xpZW50LCBzZXJ2ZXI9c2VydmVyLCBhbHBuX3Byb3RvY29sPU5vbmUpCi0KLSAg
ICAgICAgICAgICMgcXVldWUgMjAgZGF0YWdyYW1zCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5n
ZSgyMCk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LnNlbmRfZGF0YWdyYW1fZnJhbWUocGF5bG9h
ZCkKLQotICAgICAgICAgICAgIyBjbGllbnQgY2FuIG9ubHkgMTEgZGF0YWdyYW1zIGFyZSBzZW50
IGR1ZSB0byBjb25nZXN0aW9uIGNvbnRyb2wKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dHJhbnNmZXIoY2xpZW50LCBzZXJ2ZXIpLCAxMSkKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdl
KDExKToKLSAgICAgICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVudHMuRGF0YWdyYW1G
cmFtZVJlY2VpdmVkKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZGF0
YSwgcGF5bG9hZCkKLQotICAgICAgICAgICAgIyBzZXJ2ZXIgc2VuZHMgQUNLCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZmVyKHNlcnZlciwgY2xpZW50KSwgMSkKLQotICAgICAg
ICAgICAgIyBjbGllbnQgc2VuZHMgcmVtYWluaW5nIGRhdGFncmFtcwotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0cmFuc2ZlcihjbGllbnQsIHNlcnZlciksIDkpCi0gICAgICAgICAgICBm
b3IgaSBpbiByYW5nZSg5KToKLSAgICAgICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2
ZW50KCkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVu
dHMuRGF0YWdyYW1GcmFtZVJlY2VpdmVkKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXZlbnQuZGF0YSwgcGF5bG9hZCkKLQotICAgIGRlZiB0ZXN0X2RlY3J5cHRpb25fZXJyb3Io
c2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2
ZXIpOgotICAgICAgICAgICAgIyBtZXNzIHdpdGggZW5jcnlwdGlvbiBrZXkKLSAgICAgICAgICAg
IHNlcnZlci5fY3J5cHRvc1t0bHMuRXBvY2guT05FX1JUVF0uc2VuZC5zZXR1cCgKLSAgICAgICAg
ICAgICAgICBjaXBoZXJfc3VpdGU9dGxzLkNpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1NiwK
LSAgICAgICAgICAgICAgICBzZWNyZXQ9Ynl0ZXMoNDgpLAotICAgICAgICAgICAgICAgIHZlcnNp
b249c2VydmVyLl92ZXJzaW9uLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlcnZl
ciBzZW5kcyBjbG9zZQotICAgICAgICAgICAgc2VydmVyLmNsb3NlKGVycm9yX2NvZGU9UXVpY0Vy
cm9yQ29kZS5OT19FUlJPUikKLSAgICAgICAgICAgIGZvciBkYXRhLCBhZGRyIGluIHNlcnZlci5k
YXRhZ3JhbXNfdG9fc2VuZChub3c9dGltZS50aW1lKCkpOgotICAgICAgICAgICAgICAgIGNsaWVu
dC5yZWNlaXZlX2RhdGFncmFtKGRhdGEsIFNFUlZFUl9BRERSLCBub3c9dGltZS50aW1lKCkpCi0K
LSAgICBkZWYgdGVzdF90bHNfZXJyb3Ioc2VsZik6Ci0gICAgICAgIGRlZiBwYXRjaChjbGllbnQp
OgotICAgICAgICAgICAgcmVhbF9pbml0aWFsaXplID0gY2xpZW50Ll9pbml0aWFsaXplCi0KLSAg
ICAgICAgICAgIGRlZiBwYXRjaGVkX2luaXRpYWxpemUocGVlcl9jaWQ6IGJ5dGVzKToKLSAgICAg
ICAgICAgICAgICByZWFsX2luaXRpYWxpemUocGVlcl9jaWQpCi0gICAgICAgICAgICAgICAgY2xp
ZW50LnRscy5fc3VwcG9ydGVkX3ZlcnNpb25zID0gW3Rscy5UTFNfVkVSU0lPTl8xXzNfRFJBRlRf
MjhdCi0KLSAgICAgICAgICAgIGNsaWVudC5faW5pdGlhbGl6ZSA9IHBhdGNoZWRfaW5pdGlhbGl6
ZQotCi0gICAgICAgICMgaGFuZHNoYWtlIGZhaWxzCi0gICAgICAgIHdpdGggY2xpZW50X2FuZF9z
ZXJ2ZXIoY2xpZW50X3BhdGNoPXBhdGNoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAg
ICAgdGltZXJfYXQgPSBzZXJ2ZXIuZ2V0X3RpbWVyKCkKLSAgICAgICAgICAgIHNlcnZlci5oYW5k
bGVfdGltZXIodGltZXJfYXQpCi0KLSAgICAgICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZl
bnQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50KSwgZXZlbnRzLkNv
bm5lY3Rpb25UZXJtaW5hdGVkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5l
cnJvcl9jb2RlLCAzMjYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmZyYW1l
X3R5cGUsIFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChldmVudC5yZWFzb25fcGhyYXNlLCAiTm8gc3VwcG9ydGVkIHByb3RvY29sIHZlcnNpb24iKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9kYXRhZ3JhbV9nYXJiYWdlKHNlbGYpOgotICAgICAgICBj
bGllbnQgPSBjcmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICBkYXRhZ3Jh
bSA9IGJpbmFzY2lpLnVuaGV4bGlmeSgiYzAwMDAwMDAwMDgwIikKLSAgICAgICAgY2xpZW50LnJl
Y2VpdmVfZGF0YWdyYW0oZGF0YWdyYW0sIFNFUlZFUl9BRERSLCBub3c9dGltZS50aW1lKCkpCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX2RhdGFncmFtX3Jlc2VydmVkX2JpdHNfbm9uX3plcm8oc2Vs
Zik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmKQotCi0g
ICAgICAgIGJ1aWxkZXIgPSBRdWljUGFja2V0QnVpbGRlcigKLSAgICAgICAgICAgIGhvc3RfY2lk
PWNsaWVudC5fcGVlcl9jaWQsCi0gICAgICAgICAgICBpc19jbGllbnQ9RmFsc2UsCi0gICAgICAg
ICAgICBwZWVyX2NpZD1jbGllbnQuaG9zdF9jaWQsCi0gICAgICAgICAgICB2ZXJzaW9uPWNsaWVu
dC5fdmVyc2lvbiwKLSAgICAgICAgKQotICAgICAgICBjcnlwdG8gPSBDcnlwdG9QYWlyKCkKLSAg
ICAgICAgY3J5cHRvLnNldHVwX2luaXRpYWwoY2xpZW50Ll9wZWVyX2NpZCwgaXNfY2xpZW50PUZh
bHNlLCB2ZXJzaW9uPWNsaWVudC5fdmVyc2lvbikKLSAgICAgICAgY3J5cHRvLmVuY3J5cHRfcGFj
a2V0X3JlYWwgPSBjcnlwdG8uZW5jcnlwdF9wYWNrZXQKLQotICAgICAgICBkZWYgZW5jcnlwdF9w
YWNrZXQocGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBwYWNrZXRfbnVtYmVyKToKLSAgICAg
ICAgICAgICMgbWVzcyB3aXRoIHJlc2VydmVkIGJpdHMKLSAgICAgICAgICAgIHBsYWluX2hlYWRl
ciA9IGJ5dGVzKFtwbGFpbl9oZWFkZXJbMF0gfCAweDBDXSkgKyBwbGFpbl9oZWFkZXJbMTpdCi0g
ICAgICAgICAgICByZXR1cm4gY3J5cHRvLmVuY3J5cHRfcGFja2V0X3JlYWwoCi0gICAgICAgICAg
ICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBwYWNrZXRfbnVtYmVyCi0gICAgICAg
ICAgICApCi0KLSAgICAgICAgY3J5cHRvLmVuY3J5cHRfcGFja2V0ID0gZW5jcnlwdF9wYWNrZXQK
LQotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9JTklUSUFMLCBjcnlw
dG8pCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5QQURE
SU5HKQotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhidWlsZGVyLnJlbWFpbmluZ19mbGln
aHRfc3BhY2UpKQotCi0gICAgICAgIGZvciBkYXRhZ3JhbSBpbiBidWlsZGVyLmZsdXNoKClbMF06
Ci0gICAgICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbShkYXRhZ3JhbSwgU0VSVkVSX0FE
RFIsIG5vdz10aW1lLnRpbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcm9wKGNsaWVu
dCksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjbGllbnQuX2Ns
b3NlX2V2ZW50LAotICAgICAgICAgICAgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKAotICAg
ICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJT04s
Ci0gICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1Ob25lLAotICAgICAgICAgICAgICAgIHJlYXNv
bl9waHJhc2U9IlJlc2VydmVkIGJpdHMgbXVzdCBiZSB6ZXJvIiwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZGF0YWdyYW1fd3JvbmdfdmVyc2lvbihz
ZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYpCi0K
LSAgICAgICAgYnVpbGRlciA9IFF1aWNQYWNrZXRCdWlsZGVyKAotICAgICAgICAgICAgaG9zdF9j
aWQ9Y2xpZW50Ll9wZWVyX2NpZCwKLSAgICAgICAgICAgIGlzX2NsaWVudD1GYWxzZSwKLSAgICAg
ICAgICAgIHBlZXJfY2lkPWNsaWVudC5ob3N0X2NpZCwKLSAgICAgICAgICAgIHZlcnNpb249MHhG
RjAwMDAxMSwgICMgRFJBRlRfMTYKLSAgICAgICAgKQotICAgICAgICBjcnlwdG8gPSBDcnlwdG9Q
YWlyKCkKLSAgICAgICAgY3J5cHRvLnNldHVwX2luaXRpYWwoY2xpZW50Ll9wZWVyX2NpZCwgaXNf
Y2xpZW50PUZhbHNlLCB2ZXJzaW9uPWNsaWVudC5fdmVyc2lvbikKLSAgICAgICAgYnVpbGRlci5z
dGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAgICBidWYgPSBi
dWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuUEFERElORykKLSAgICAgICAgYnVmLnB1
c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlKSkKLQotICAgICAg
ICBmb3IgZGF0YWdyYW0gaW4gYnVpbGRlci5mbHVzaCgpWzBdOgotICAgICAgICAgICAgY2xpZW50
LnJlY2VpdmVfZGF0YWdyYW0oZGF0YWdyYW0sIFNFUlZFUl9BRERSLCBub3c9dGltZS50aW1lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAwKQotCi0gICAgZGVmIHRl
c3RfcmVjZWl2ZV9kYXRhZ3JhbV9yZXRyeShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRl
X3N0YW5kYWxvbmVfY2xpZW50KHNlbGYpCi0KLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdy
YW0oCi0gICAgICAgICAgICBlbmNvZGVfcXVpY19yZXRyeSgKLSAgICAgICAgICAgICAgICB2ZXJz
aW9uPWNsaWVudC5fdmVyc2lvbiwKLSAgICAgICAgICAgICAgICBzb3VyY2VfY2lkPWJpbmFzY2lp
LnVuaGV4bGlmeSgiODVhYmI1NDdiZjI4YmU5NyIpLAotICAgICAgICAgICAgICAgIGRlc3RpbmF0
aW9uX2NpZD1jbGllbnQuaG9zdF9jaWQsCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfZGVzdGlu
YXRpb25fY2lkPWNsaWVudC5fcGVlcl9jaWQsCi0gICAgICAgICAgICAgICAgcmV0cnlfdG9rZW49
Ynl0ZXMoMTYpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIFNFUlZFUl9BRERSLAotICAg
ICAgICAgICAgbm93PXRpbWUudGltZSgpLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZHJvcChjbGllbnQpLCAxKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9kYXRhZ3JhbV9y
ZXRyeV93cm9uZ19kZXN0aW5hdGlvbl9jaWQoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0
ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmKQotCi0gICAgICAgIGNsaWVudC5yZWNlaXZlX2RhdGFn
cmFtKAotICAgICAgICAgICAgZW5jb2RlX3F1aWNfcmV0cnkoCi0gICAgICAgICAgICAgICAgdmVy
c2lvbj1jbGllbnQuX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgc291cmNlX2NpZD1iaW5hc2Np
aS51bmhleGxpZnkoIjg1YWJiNTQ3YmYyOGJlOTciKSwKLSAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvbl9jaWQ9YmluYXNjaWkudW5oZXhsaWZ5KCJjOTgzNDNmZThmNWYwZmY0IiksCi0gICAgICAg
ICAgICAgICAgb3JpZ2luYWxfZGVzdGluYXRpb25fY2lkPWNsaWVudC5fcGVlcl9jaWQsCi0gICAg
ICAgICAgICAgICAgcmV0cnlfdG9rZW49Ynl0ZXMoMTYpLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgICAgIFNFUlZFUl9BRERSLAotICAgICAgICAgICAgbm93PXRpbWUudGltZSgpLAotICAgICAg
ICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAwKQotCi0gICAgZGVm
IHRlc3RfaGFuZGxlX2Fja19mcmFtZV9lY24oc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0
ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmKQotCi0gICAgICAgIGNsaWVudC5faGFuZGxlX2Fja19m
cmFtZSgKLSAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAg
ICAgICAgIFF1aWNGcmFtZVR5cGUuQUNLX0VDTiwKLSAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIi
XHgwMFx4MDJceDAwXHgwMFx4MDBceDAwXHgwMCIpLAotICAgICAgICApCi0KLSAgICBkZWYgdGVz
dF9oYW5kbGVfY29ubmVjdGlvbl9jbG9zZV9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGll
bnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBzZXJ2ZXIu
Y2xvc2UoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLlBST1RPQ09M
X1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlPVF1aWNGcmFtZVR5cGUuQUNL
LAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9ImlsbGVnYWwgQUNLIGZyYW1lIiwKLSAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKHNlcnZl
ciwgY2xpZW50KSwgKDEsIDApKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIGNsaWVudC5fY2xvc2VfZXZlbnQsCi0gICAgICAgICAgICAgICAgZXZlbnRz
LkNvbm5lY3Rpb25UZXJtaW5hdGVkKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1
aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAgICAgICAgICBmcmFt
ZV90eXBlPVF1aWNGcmFtZVR5cGUuQUNLLAotICAgICAgICAgICAgICAgICAgICByZWFzb25fcGhy
YXNlPSJpbGxlZ2FsIEFDSyBmcmFtZSIsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAg
ICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lX2FwcChzZWxm
KToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6
Ci0gICAgICAgICAgICBzZXJ2ZXIuY2xvc2UoZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLk5PX0VS
Uk9SLCByZWFzb25fcGhyYXNlPSJnb29kYnllIikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocm91bmR0cmlwKHNlcnZlciwgY2xpZW50KSwgKDEsIDApKQotCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNsaWVudC5fY2xvc2VfZXZlbnQsCi0gICAg
ICAgICAgICAgICAgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKAotICAgICAgICAgICAgICAg
ICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuTk9fRVJST1IsCi0gICAgICAgICAgICAgICAg
ICAgIGZyYW1lX3R5cGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0i
Z29vZGJ5ZSIsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X2hhbmRsZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lX2FwcF9ub3RfdXRmOChzZWxmKToKLSAg
ICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYpCi0KLSAgICAgICAg
Y2xpZW50Ll9oYW5kbGVfY29ubmVjdGlvbl9jbG9zZV9mcmFtZSgKLSAgICAgICAgICAgIGNsaWVu
dF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuQVBQ
TElDQVRJT05fQ0xPU0UsCi0gICAgICAgICAgICBCdWZmZXIoZGF0YT1iaW5hc2NpaS51bmhleGxp
ZnkoIjAwMDg2NzZmNmY2NDYyNzk4MjAwIikpLAotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNsaWVudC5fY2xvc2VfZXZlbnQsCi0gICAgICAgICAg
ICBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29k
ZT1RdWljRXJyb3JDb2RlLk5PX0VSUk9SLCBmcmFtZV90eXBlPU5vbmUsIHJlYXNvbl9waHJhc2U9
IiIsCi0gICAgICAgICAgICApLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfY3J5
cHRvX2ZyYW1lX292ZXJfbGFyZ2VzdF9vZmZzZXQoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50
X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQg
cmVjZWl2ZXMgb2Zmc2V0ICsgbGVuZ3RoID4gMl42MiAtIDEKLSAgICAgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAg
ICAgY2xpZW50Ll9oYW5kbGVfY3J5cHRvX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGll
bnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFt
ZVR5cGUuQ1JZUFRPLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWlu
dF92YXIoVUlOVF9WQVJfTUFYKSArIGVuY29kZV91aW50X3ZhcigxKSksCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBjbS5l
eGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5GUkFNRV9FTkNPRElOR19FUlJPUgot
ICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24u
ZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAib2Zm
c2V0ICsgbGVuZ3RoIGNhbm5vdCBleGNlZWQgMl42MiAtIDEiCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF9oYW5kbGVfZGF0YV9ibG9ja2VkX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRo
IGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMg
Y2xpZW50IHJlY2VpdmVzIERBVEFfQkxPQ0tFRDogMTIzNDUKLSAgICAgICAgICAgIGNsaWVudC5f
aGFuZGxlX2RhdGFfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2
ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5EQVRBX0JM
T0NLRUQsCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9ZW5jb2RlX3VpbnRfdmFyKDEyMzQ1
KSksCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfZGF0YWdyYW1fZnJhbWUo
c2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmLCBt
YXhfZGF0YWdyYW1fZnJhbWVfc2l6ZT02KQotCi0gICAgICAgIGNsaWVudC5faGFuZGxlX2RhdGFn
cmFtX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAot
ICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5EQVRBR1JBTSwKLSAgICAgICAgICAgIEJ1ZmZlcihk
YXRhPWIiaGVsbG8iKSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBjbGllbnQubmV4dF9ldmVudCgpLCBldmVudHMuRGF0YWdyYW1GcmFtZVJlY2Vp
dmVkKGRhdGE9YiJoZWxsbyIpCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9kYXRh
Z3JhbV9mcmFtZV9ub3RfYWxsb3dlZChzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0
YW5kYWxvbmVfY2xpZW50KHNlbGYsIG1heF9kYXRhZ3JhbV9mcmFtZV9zaXplPU5vbmUpCi0KLSAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToK
LSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX2RhdGFncmFtX2ZyYW1lKAotICAgICAgICAgICAg
ICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWlj
RnJhbWVUeXBlLkRBVEFHUkFNLAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiaGVsbG8i
KSwKLSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24u
ZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuREFU
QUdSQU0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJh
c2UsICJVbmV4cGVjdGVkIERBVEFHUkFNIGZyYW1lIikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9k
YXRhZ3JhbV9mcmFtZV90b29fbGFyZ2Uoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9z
dGFuZGFsb25lX2NsaWVudChzZWxmLCBtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZT01KQotCi0gICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0g
ICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9kYXRhZ3JhbV9mcmFtZSgKLSAgICAgICAgICAgICAg
ICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVpY0Zy
YW1lVHlwZS5EQVRBR1JBTSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iImhlbGxvIiks
Ci0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVy
cm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBlLkRBVEFH
UkFNKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNl
LCAiVW5leHBlY3RlZCBEQVRBR1JBTSBmcmFtZSIpCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfZGF0
YWdyYW1fZnJhbWVfd2l0aF9sZW5ndGgoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9z
dGFuZGFsb25lX2NsaWVudChzZWxmLCBtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZT03KQotCi0gICAg
ICAgIGNsaWVudC5faGFuZGxlX2RhdGFncmFtX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50X3Jl
Y2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5EQVRBR1JB
TV9XSVRIX0xFTkdUSCwKLSAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiXHgwNWhlbGxvanVuayIp
LAotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNs
aWVudC5uZXh0X2V2ZW50KCksIGV2ZW50cy5EYXRhZ3JhbUZyYW1lUmVjZWl2ZWQoZGF0YT1iImhl
bGxvIikKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX2RhdGFncmFtX2ZyYW1lX3dp
dGhfbGVuZ3RoX25vdF9hbGxvd2VkKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBjcmVhdGVfc3Rh
bmRhbG9uZV9jbGllbnQoc2VsZiwgbWF4X2RhdGFncmFtX2ZyYW1lX3NpemU9Tm9uZSkKLQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNtOgot
ICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfZGF0YWdyYW1fZnJhbWUoCi0gICAgICAgICAgICAg
ICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNG
cmFtZVR5cGUuREFUQUdSQU1fV0lUSF9MRU5HVEgsCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRh
dGE9YiJceDA1aGVsbG9qdW5rIiksCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklP
TEFUSU9OKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBl
LCBRdWljRnJhbWVUeXBlLkRBVEFHUkFNX1dJVEhfTEVOR1RIKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiVW5leHBlY3RlZCBEQVRBR1JBTSBm
cmFtZSIpCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfZGF0YWdyYW1fZnJhbWVfd2l0aF9sZW5ndGhf
dG9vX2xhcmdlKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBjcmVhdGVfc3RhbmRhbG9uZV9jbGll
bnQoc2VsZiwgbWF4X2RhdGFncmFtX2ZyYW1lX3NpemU9NikKLQotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgY2xp
ZW50Ll9oYW5kbGVfZGF0YWdyYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2Vp
dmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuREFUQUdS
QU1fV0lUSF9MRU5HVEgsCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDA1aGVsbG9q
dW5rIiksCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0
aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBl
LkRBVEFHUkFNX1dJVEhfTEVOR1RIKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2Vw
dGlvbi5yZWFzb25fcGhyYXNlLCAiVW5leHBlY3RlZCBEQVRBR1JBTSBmcmFtZSIpCi0KLSAgICBk
ZWYgdGVzdF9oYW5kbGVfaGFuZHNoYWtlX2RvbmVfbm90X2FsbG93ZWQoc2VsZik6Ci0gICAgICAg
IHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAg
ICAgIyBzZXJ2ZXIgcmVjZWl2ZXMgSEFORFNIQUtFX0RPTkUgZnJhbWUKLSAgICAgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAg
ICAgICAgICAgc2VydmVyLl9oYW5kbGVfaGFuZHNoYWtlX2RvbmVfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoc2VydmVyKSwKLSAgICAgICAgICAgICAg
ICAgICAgUXVpY0ZyYW1lVHlwZS5IQU5EU0hBS0VfRE9ORSwKLSAgICAgICAgICAgICAgICAgICAg
QnVmZmVyKGRhdGE9YiIiKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlBST1RPQ09M
X1ZJT0xBVElPTikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZy
YW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuSEFORFNIQUtFX0RPTkUpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNl
LAotICAgICAgICAgICAgICAgICJDbGllbnRzIG11c3Qgbm90IHNlbmQgSEFORFNIQUtFX0RPTkUg
ZnJhbWVzIiwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9tYXhfZGF0YV9m
cmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQs
IHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5fcmVtb3RlX21h
eF9kYXRhLCAxMDQ4NTc2KQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBNQVhfREFU
QSByYWlzaW5nIGxpbWl0Ci0gICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9tYXhfZGF0YV9mcmFt
ZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAg
ICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5NQVhfREFUQSwKLSAgICAgICAgICAgICAgICBCdWZm
ZXIoZGF0YT1lbmNvZGVfdWludF92YXIoMTA0ODU3NykpLAotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX3JlbW90ZV9tYXhfZGF0YSwgMTA0ODU3NykK
LQotICAgIGRlZiB0ZXN0X2hhbmRsZV9tYXhfc3RyZWFtX2RhdGFfZnJhbWUoc2VsZik6Ci0gICAg
ICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAg
ICAgICAgIyBjbGllbnQgY3JlYXRlcyBiaWRpcmVjdGlvbmFsIHN0cmVhbSAwCi0gICAgICAgICAg
ICBzdHJlYW0gPSBjbGllbnQuX2NyZWF0ZV9zdHJlYW0oc3RyZWFtX2lkPTApCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfcmVtb3RlLCAxMDQ4NTc2
KQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBNQVhfU1RSRUFNX0RBVEEgcmFpc2lu
ZyBsaW1pdAotICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfbWF4X3N0cmVhbV9kYXRhX2ZyYW1l
KAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAg
ICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1BWF9TVFJFQU1fREFUQSwKLSAgICAgICAgICAgICAg
ICBCdWZmZXIoZGF0YT1iIlx4MDAiICsgZW5jb2RlX3VpbnRfdmFyKDEwNDg1NzcpKSwKLSAgICAg
ICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1f
ZGF0YV9yZW1vdGUsIDEwNDg1NzcpCi0KLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIE1B
WF9TVFJFQU1fREFUQSBsb3dlcmluZyBsaW1pdAotICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVf
bWF4X3N0cmVhbV9kYXRhX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2Nv
bnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1BWF9TVFJFQU1f
REFUQSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDAiICsgZW5jb2RlX3VpbnRf
dmFyKDEwNDg1NzUpKSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9yZW1vdGUsIDEwNDg1NzcpCi0KLSAgICBkZWYgdGVz
dF9oYW5kbGVfbWF4X3N0cmVhbV9kYXRhX2ZyYW1lX3JlY2VpdmVfb25seShzZWxmKToKLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAg
ICAgICAjIHNlcnZlciBjcmVhdGVzIHVuaWRpcmVjdGlvbmFsIHN0cmVhbSAzCi0gICAgICAgICAg
ICBzZXJ2ZXIuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQ9MywgZGF0YT1iImhlbGxvIikKLQot
ICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgTUFYX1NUUkVBTV9EQVRBOiAzLCAxCi0gICAg
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNt
OgotICAgICAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1fZGF0YV9mcmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAg
ICAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1BWF9TVFJFQU1fREFUQSwKLSAgICAgICAg
ICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAzXHgwMSIpLAotICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1
aWNFcnJvckNvZGUuU1RSRUFNX1NUQVRFX0VSUk9SKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5NQVhfU1RSRUFNX0RB
VEEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhy
YXNlLCAiU3RyZWFtIGlzIHJlY2VpdmUtb25seSIpCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfbWF4
X3N0cmVhbXNfYmlkaV9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZl
cigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNs
aWVudC5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGksIDEyOCkKLQotICAgICAgICAgICAgIyBjbGll
bnQgcmVjZWl2ZXMgTUFYX1NUUkVBTVNfQklESSByYWlzaW5nIGxpbWl0Ci0gICAgICAgICAgICBj
bGllbnQuX2hhbmRsZV9tYXhfc3RyZWFtc19iaWRpX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNs
aWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVU
eXBlLk1BWF9TVFJFQU1TX0JJREksCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9ZW5jb2Rl
X3VpbnRfdmFyKDEyOSkpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjbGllbnQuX3JlbW90ZV9tYXhfc3RyZWFtc19iaWRpLCAxMjkpCi0KLSAgICAgICAgICAg
ICMgY2xpZW50IHJlY2VpdmVzIE1BWF9TVFJFQU1TX0JJREkgbG93ZXJpbmcgbGltaXQKLSAgICAg
ICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1zX2JpZGlfZnJhbWUoCi0gICAgICAgICAg
ICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1
aWNGcmFtZVR5cGUuTUFYX1NUUkVBTVNfQklESSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0
YT1lbmNvZGVfdWludF92YXIoMTI3KSksCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNsaWVudC5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGksIDEyOSkKLQotICAg
IGRlZiB0ZXN0X2hhbmRsZV9tYXhfc3RyZWFtc191bmlfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdp
dGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX3JlbW90ZV9tYXhfc3RyZWFtc191bmksIDEyOCkKLQot
ICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgTUFYX1NUUkVBTVNfVU5JIHJhaXNpbmcgbGlt
aXQKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1zX3VuaV9mcmFtZSgKLSAg
ICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAg
ICAgICAgUXVpY0ZyYW1lVHlwZS5NQVhfU1RSRUFNU19VTkksCi0gICAgICAgICAgICAgICAgQnVm
ZmVyKGRhdGE9ZW5jb2RlX3VpbnRfdmFyKDEyOSkpLAotICAgICAgICAgICAgKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX3JlbW90ZV9tYXhfc3RyZWFtc191bmksIDEyOSkK
LQotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgTUFYX1NUUkVBTVNfVU5JIHJhaXNpbmcg
bGltaXQKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1zX3VuaV9mcmFtZSgK
LSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAg
ICAgICAgICAgUXVpY0ZyYW1lVHlwZS5NQVhfU1RSRUFNU19VTkksCi0gICAgICAgICAgICAgICAg
QnVmZmVyKGRhdGE9ZW5jb2RlX3VpbnRfdmFyKDEyNykpLAotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX3JlbW90ZV9tYXhfc3RyZWFtc191bmksIDEy
OSkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9uZXdfdG9rZW5fZnJhbWUoc2VsZik6Ci0gICAgICAg
IHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAg
ICAgIyBjbGllbnQgcmVjZWl2ZXMgTkVXX1RPS0VOCi0gICAgICAgICAgICBjbGllbnQuX2hhbmRs
ZV9uZXdfdG9rZW5fZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4
dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuTkVXX1RPS0VOLAotICAg
ICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgiMDgwMTAyMDMwNDA1
MDYwNzA4IikpLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX25ld190b2tl
bl9mcmFtZV9mcm9tX2NsaWVudChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZl
cigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIHNlcnZlciByZWNlaXZlcyBO
RVdfVE9LRU4KLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rp
b25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgc2VydmVyLl9oYW5kbGVfbmV3X3Rva2Vu
X2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVu
dCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuTkVXX1RPS0VOLAotICAgICAg
ICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoIjA4MDEwMjAzMDQw
NTA2MDcwOCIpKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xB
VElPTikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5
cGUsIFF1aWNGcmFtZVR5cGUuTkVXX1RPS0VOKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICAgICBjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIkNsaWVudHMg
bXVzdCBub3Qgc2VuZCBORVdfVE9LRU4gZnJhbWVzIgotICAgICAgICAgICAgKQotCi0gICAgZGVm
IHRlc3RfaGFuZGxlX3BhdGhfY2hhbGxlbmdlX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRoIGNs
aWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xp
ZW50IGNoYW5nZXMgYWRkcmVzcyBhbmQgc2VuZHMgc29tZSBkYXRhCi0gICAgICAgICAgICBjbGll
bnQuc2VuZF9zdHJlYW1fZGF0YSgwLCBiIjAxMjM0NTY3IikKLSAgICAgICAgICAgIGZvciBkYXRh
LCBhZGRyIGluIGNsaWVudC5kYXRhZ3JhbXNfdG9fc2VuZChub3c9dGltZS50aW1lKCkpOgotICAg
ICAgICAgICAgICAgIHNlcnZlci5yZWNlaXZlX2RhdGFncmFtKGRhdGEsICgiMS4yLjMuNCIsIDIz
NDUpLCBub3c9dGltZS50aW1lKCkpCi0KLSAgICAgICAgICAgICMgY2hlY2sgcGF0aHMKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbmV0d29ya19wYXRocyksIDIpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5fbmV0d29ya19wYXRoc1swXS5hZGRy
LCAoIjEuMi4zLjQiLCAyMzQ1KSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VydmVy
Ll9uZXR3b3JrX3BhdGhzWzBdLmlzX3ZhbGlkYXRlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzFdLmFkZHIsICgiMS4yLjMuNCIsIDEyMzQpKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlci5fbmV0d29ya19wYXRoc1sxXS5pc192
YWxpZGF0ZWQpCi0KLSAgICAgICAgICAgICMgc2VydmVyIHNlbmRzIFBBVEhfQ0hBTExFTkdFIGFu
ZCByZWNlaXZlcyBQQVRIX1JFU1BPTlNFCi0gICAgICAgICAgICBmb3IgZGF0YSwgYWRkciBpbiBz
ZXJ2ZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PXRpbWUudGltZSgpKToKLSAgICAgICAgICAgICAg
ICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbShkYXRhLCBTRVJWRVJfQUREUiwgbm93PXRpbWUudGlt
ZSgpKQotICAgICAgICAgICAgZm9yIGRhdGEsIGFkZHIgaW4gY2xpZW50LmRhdGFncmFtc190b19z
ZW5kKG5vdz10aW1lLnRpbWUoKSk6Ci0gICAgICAgICAgICAgICAgc2VydmVyLnJlY2VpdmVfZGF0
YWdyYW0oZGF0YSwgKCIxLjIuMy40IiwgMjM0NSksIG5vdz10aW1lLnRpbWUoKSkKLQotICAgICAg
ICAgICAgIyBjaGVjayBwYXRocwotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIu
X25ldHdvcmtfcGF0aHNbMF0uYWRkciwgKCIxLjIuMy40IiwgMjM0NSkpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzBdLmlzX3ZhbGlkYXRlZCkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzFdLmFkZHIs
ICgiMS4yLjMuNCIsIDEyMzQpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlci5f
bmV0d29ya19wYXRoc1sxXS5pc192YWxpZGF0ZWQpCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcGF0
aF9yZXNwb25zZV9mcmFtZV9iYWQoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2
ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBzZXJ2ZXIgcmVjZWl2ZXMg
dW5zb2xsaWNpdGVkIFBBVEhfUkVTUE9OU0UKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgc2VydmVy
Ll9oYW5kbGVfcGF0aF9yZXNwb25zZV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50
X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgICAgICBRdWljRnJhbWVU
eXBlLlBBVEhfUkVTUE9OU0UsCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiXHgx
MVx4MjJceDMzXHg0NFx4NTVceDY2XHg3N1x4ODgiKSwKLSAgICAgICAgICAgICAgICApCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJy
b3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuUEFUSF9SRVNQT05TRSkKLQot
ICAgIGRlZiB0ZXN0X2hhbmRsZV9wYWRkaW5nX2ZyYW1lKHNlbGYpOgotICAgICAgICBjbGllbnQg
PSBjcmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICAjIG5vIG1vcmUgcGFk
ZGluZwotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIiIpCi0gICAgICAgIGNsaWVudC5faGFu
ZGxlX3BhZGRpbmdfZnJhbWUoCi0gICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNs
aWVudCksIFF1aWNGcmFtZVR5cGUuUEFERElORywgYnVmCi0gICAgICAgICkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAwKQotCi0gICAgICAgICMgcGFkZGluZyB1bnRpbCBl
bmQKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9Ynl0ZXMoMTApKQotICAgICAgICBjbGllbnQu
X2hhbmRsZV9wYWRkaW5nX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4
dChjbGllbnQpLCBRdWljRnJhbWVUeXBlLlBBRERJTkcsIGJ1ZgotICAgICAgICApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMTApCi0KLSAgICAgICAgIyBwYWRkaW5nIHRo
ZW4gc29tZXRoaW5nIGVsc2UKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9Ynl0ZXMoMTApICsg
YiJceDAxIikKLSAgICAgICAgY2xpZW50Ll9oYW5kbGVfcGFkZGluZ19mcmFtZSgKLSAgICAgICAg
ICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwgUXVpY0ZyYW1lVHlwZS5QQURESU5H
LCBidWYKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDEw
KQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3Jlc2V0X3N0cmVhbV9mcmFtZShzZWxmKToKLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAg
ICAgICAjIGNsaWVudCBjcmVhdGVzIGJpZGlyZWN0aW9uYWwgc3RyZWFtIDAKLSAgICAgICAgICAg
IGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZD0wLCBkYXRhPWIiaGVsbG8iKQotICAg
ICAgICAgICAgY29uc3VtZV9ldmVudHMoY2xpZW50KQotCi0gICAgICAgICAgICAjIGNsaWVudCBy
ZWNlaXZlcyBSRVNFVF9TVFJFQU0KLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3Jlc2V0X3N0
cmVhbV9mcmFtZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVu
dCksCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5SRVNFVF9TVFJFQU0sCi0gICAgICAg
ICAgICAgICAgQnVmZmVyKGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KCIwMDAxMDAiKSksCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgIGV2ZW50ID0gY2xpZW50Lm5leHRfZXZlbnQoKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50KSwgZXZlbnRzLlN0cmVhbVJlc2V0
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5lcnJvcl9jb2RlLCBRdWljRXJy
b3JDb2RlLklOVEVSTkFMX0VSUk9SKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVu
dC5zdHJlYW1faWQsIDApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcmVzZXRfc3RyZWFtX2ZyYW1l
X3NlbmRfb25seShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChj
bGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVhdGVzIHVuaWRpcmVjdGlv
bmFsIHN0cmVhbSAyCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1f
aWQ9MiwgZGF0YT1iImhlbGxvIikKLQotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgUkVT
RVRfU1RSRUFNCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0
aW9uRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3Jlc2V0X3N0
cmVhbV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChj
bGllbnQpLAotICAgICAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLlJFU0VUX1NUUkVBTSwK
LSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KCIwMjEx
MDAiKSksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
bS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1Ip
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBR
dWljRnJhbWVUeXBlLlJFU0VUX1NUUkVBTSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJTdHJlYW0gaXMgc2VuZC1vbmx5IikKLQotICAg
IGRlZiB0ZXN0X2hhbmRsZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZShzZWxmKToKLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMo
Y2xpZW50Ll9ob3N0X2NpZHMpLCBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgUkVUSVJFX0NPTk5FQ1RJT05fSUQK
LSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3JldGlyZV9jb25uZWN0aW9uX2lkX2ZyYW1lKAot
ICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAg
ICAgICAgICBRdWljRnJhbWVUeXBlLlJFVElSRV9DT05ORUNUSU9OX0lELAotICAgICAgICAgICAg
ICAgIEJ1ZmZlcihkYXRhPWIiXHgwMiIpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXJzKGNsaWVudC5f
aG9zdF9jaWRzKSwgWzAsIDEsIDMsIDQsIDUsIDYsIDcsIDhdCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF9oYW5kbGVfcmV0aXJlX2Nvbm5lY3Rpb25faWRfZnJhbWVfY3VycmVudF9jaWQo
c2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2
ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1
ZW5jZV9udW1iZXJzKGNsaWVudC5faG9zdF9jaWRzKSwgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDdd
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFJFVElSRV9D
T05ORUNUSU9OX0lEIGZvciB0aGUgY3VycmVudCBDSUQKLSAgICAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAg
Y2xpZW50Ll9oYW5kbGVfcmV0aXJlX2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgICAgICAg
ICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICAg
ICAgUXVpY0ZyYW1lVHlwZS5SRVRJUkVfQ09OTkVDVElPTl9JRCwKLSAgICAgICAgICAgICAgICAg
ICAgQnVmZmVyKGRhdGE9YiJceDAwIiksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5Q
Uk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgICAgIGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBlLlJFVElSRV9D
T05ORUNUSU9OX0lECi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiQ2Fubm90IHJl
dGlyZSBjdXJyZW50IGNvbm5lY3Rpb24gSUQiCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50
Ll9ob3N0X2NpZHMpLCBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQot
ICAgIGRlZiB0ZXN0X2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdp
dGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAg
IyBjbGllbnQgY3JlYXRlcyBiaWRpcmVjdGlvbmFsIHN0cmVhbSAwCi0gICAgICAgICAgICBjbGll
bnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQ9MCwgZGF0YT1iImhlbGxvIikKLQotICAgICAg
ICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RPUF9TRU5ESU5HCi0gICAgICAgICAgICBjbGllbnQu
X2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2Vp
dmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuU1RPUF9T
RU5ESU5HLAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiXHgwMFx4MTEiKSwKLSAgICAg
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWVfcmVjZWl2
ZV9vbmx5KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVu
dCwgc2VydmVyKToKLSAgICAgICAgICAgICMgc2VydmVyIGNyZWF0ZXMgdW5pZGlyZWN0aW9uYWwg
c3RyZWFtIDMKLSAgICAgICAgICAgIHNlcnZlci5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZD0z
LCBkYXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBTVE9QX1NF
TkRJTkcKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25F
cnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfc3RvcF9zZW5kaW5n
X2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVu
dCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuU1RPUF9TRU5ESU5HLAotICAg
ICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDNceDExIiksCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29k
ZSwgUXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1IpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBlLlNUT1BfU0VO
RElORykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9w
aHJhc2UsICJTdHJlYW0gaXMgcmVjZWl2ZS1vbmx5IikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9z
dHJlYW1fZnJhbWVfb3Zlcl9sYXJnZXN0X29mZnNldChzZWxmKToKLSAgICAgICAgd2l0aCBjbGll
bnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVu
dCByZWNlaXZlcyBvZmZzZXQgKyBsZW5ndGggPiAyXjYyIC0gMQotICAgICAgICAgICAgZnJhbWVf
dHlwZSA9IFF1aWNGcmFtZVR5cGUuU1RSRUFNX0JBU0UgfCA2Ci0gICAgICAgICAgICBzdHJlYW1f
aWQgPSAxCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9u
RXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3N0cmVhbV9mcmFt
ZSgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAot
ICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlLAotICAgICAgICAgICAgICAgICAgICBCdWZm
ZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihzdHJlYW1f
aWQpCi0gICAgICAgICAgICAgICAgICAgICAgICArIGVuY29kZV91aW50X3ZhcihVSU5UX1ZBUl9N
QVgpCi0gICAgICAgICAgICAgICAgICAgICAgICArIGVuY29kZV91aW50X3ZhcigxKQotICAgICAg
ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNF
cnJvckNvZGUuRlJBTUVfRU5DT0RJTkdfRVJST1IKLSAgICAgICAgICAgICkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIGZyYW1lX3R5cGUpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlv
bi5yZWFzb25fcGhyYXNlLCAib2Zmc2V0ICsgbGVuZ3RoIGNhbm5vdCBleGNlZWQgMl42MiAtIDEi
Ci0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfc3RyZWFtX2ZyYW1lX292ZXJf
bWF4X2RhdGEoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xp
ZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBhcnRpZmljaWFsbHkgcmFpc2UgcmVjZWl2ZWQg
ZGF0YSBjb3VudGVyCi0gICAgICAgICAgICBjbGllbnQuX2xvY2FsX21heF9kYXRhX3VzZWQgPSBj
bGllbnQuX2xvY2FsX21heF9kYXRhCi0KLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFNU
UkVBTSBmcmFtZQotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IFF1aWNGcmFtZVR5cGUuU1RSRUFN
X0JBU0UgfCA0Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSAxCi0gICAgICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAg
ICAgIGNsaWVudC5faGFuZGxlX3N0cmVhbV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY2xp
ZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgICAgICBmcmFtZV90
eXBlLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWludF92YXIoc3Ry
ZWFtX2lkKSArIGVuY29kZV91aW50X3ZhcigxKSksCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9y
Q29kZS5GTE9XX0NPTlRST0xfRVJST1IpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNt
LmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBmcmFtZV90eXBlKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIk92ZXIgY29ubmVjdGlvbiBkYXRh
IGxpbWl0IikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9zdHJlYW1fZnJhbWVfb3Zlcl9tYXhfc3Ry
ZWFtX2RhdGEoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xp
ZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFNIGZyYW1l
Ci0gICAgICAgICAgICBmcmFtZV90eXBlID0gUXVpY0ZyYW1lVHlwZS5TVFJFQU1fQkFTRSB8IDQK
LSAgICAgICAgICAgIHN0cmVhbV9pZCA9IDEKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xpZW50
Ll9oYW5kbGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2
ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGUsCi0gICAg
ICAgICAgICAgICAgICAgIEJ1ZmZlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZW5j
b2RlX3VpbnRfdmFyKHN0cmVhbV9pZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICsgZW5jb2Rl
X3VpbnRfdmFyKGNsaWVudC5fbG9jYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlICsgMSkK
LSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLkZM
T1dfQ09OVFJPTF9FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0
aW9uLmZyYW1lX3R5cGUsIGZyYW1lX3R5cGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiT3ZlciBzdHJlYW0gZGF0YSBsaW1pdCIpCi0K
LSAgICBkZWYgdGVzdF9oYW5kbGVfc3RyZWFtX2ZyYW1lX292ZXJfbWF4X3N0cmVhbXMoc2VsZik6
Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgot
ICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFNIGZyYW1lCi0gICAgICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNtOgotICAgICAg
ICAgICAgICAgIGNsaWVudC5faGFuZGxlX3N0cmVhbV9mcmFtZSgKLSAgICAgICAgICAgICAgICAg
ICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgICAgICBR
dWljRnJhbWVUeXBlLlNUUkVBTV9CQVNFLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihjbGllbnQuX2xvY2Fs
X21heF9zdHJlYW1fZGF0YV91bmkgKiA0ICsgMykKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlv
bi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlNUUkVBTV9MSU1JVF9FUlJPUikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5
cGUuU1RSRUFNX0JBU0UpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlv
bi5yZWFzb25fcGhyYXNlLCAiVG9vIG1hbnkgc3RyZWFtcyBvcGVuIikKLQotICAgIGRlZiB0ZXN0
X2hhbmRsZV9zdHJlYW1fZnJhbWVfc2VuZF9vbmx5KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVu
dF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50
IGNyZWF0ZXMgdW5pZGlyZWN0aW9uYWwgc3RyZWFtIDIKLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X3N0cmVhbV9kYXRhKHN0cmVhbV9pZD0yLCBkYXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAj
IGNsaWVudCByZWNlaXZlcyBTVFJFQU0gZnJhbWUKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xp
ZW50Ll9oYW5kbGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVj
ZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUu
U1RSRUFNX0JBU0UsCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiXHgwMiIpLAot
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0
aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuU1RSRUFNX1NUQVRFX0VSUk9SKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1l
VHlwZS5TVFJFQU1fQkFTRSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0
aW9uLnJlYXNvbl9waHJhc2UsICJTdHJlYW0gaXMgc2VuZC1vbmx5IikKLQotICAgIGRlZiB0ZXN0
X2hhbmRsZV9zdHJlYW1fZnJhbWVfd3JvbmdfaW5pdGlhdG9yKHNlbGYpOgotICAgICAgICB3aXRo
IGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMg
Y2xpZW50IHJlY2VpdmVzIFNUUkVBTSBmcmFtZQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGll
bnQuX2hhbmRsZV9zdHJlYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9yZWNl
aXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5T
VFJFQU1fQkFTRSwKLSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAwIiksCi0g
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRp
b24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1IpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVU
eXBlLlNUUkVBTV9CQVNFKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRp
b24ucmVhc29uX3BocmFzZSwgIldyb25nIHN0cmVhbSBpbml0aWF0b3IiKQotCi0gICAgZGVmIHRl
c3RfaGFuZGxlX3N0cmVhbV9kYXRhX2Jsb2NrZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGgg
Y2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBj
bGllbnQgY3JlYXRlcyBiaWRpcmVjdGlvbmFsIHN0cmVhbSAwCi0gICAgICAgICAgICBjbGllbnQu
c2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQ9MCwgZGF0YT1iImhlbGxvIikKLQotICAgICAgICAg
ICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFNX0RBVEFfQkxPQ0tFRAotICAgICAgICAgICAgY2xp
ZW50Ll9oYW5kbGVfc3RyZWFtX2RhdGFfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgICAgICAgICBj
bGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1l
VHlwZS5TVFJFQU1fREFUQV9CTE9DS0VELAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIi
XHgwMFx4MDEiKSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9zdHJlYW1f
ZGF0YV9ibG9ja2VkX2ZyYW1lX3NlbmRfb25seShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRf
YW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBj
cmVhdGVzIHVuaWRpcmVjdGlvbmFsIHN0cmVhbSAyCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9z
dHJlYW1fZGF0YShzdHJlYW1faWQ9MiwgZGF0YT1iImhlbGxvIikKLQotICAgICAgICAgICAgIyBj
bGllbnQgcmVjZWl2ZXMgU1RSRUFNX0RBVEFfQkxPQ0tFRAotICAgICAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAg
ICBjbGllbnQuX2hhbmRsZV9zdHJlYW1fZGF0YV9ibG9ja2VkX2ZyYW1lKAotICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAg
ICAgIFF1aWNGcmFtZVR5cGUuU1RSRUFNX0RBVEFfQkxPQ0tFRCwKLSAgICAgICAgICAgICAgICAg
ICAgQnVmZmVyKGRhdGE9YiJceDAyXHgwMSIpLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNv
ZGUuU1RSRUFNX1NUQVRFX0VSUk9SKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5l
eGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5TVFJFQU1fREFUQV9CTE9DS0VEKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwg
IlN0cmVhbSBpcyBzZW5kLW9ubHkiKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0cmVhbXNfYmxv
Y2tlZF91bmlfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBh
cyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFN
U19CTE9DS0VEX1VOSTogMAotICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfc3RyZWFtc19ibG9j
a2VkX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50
KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLlNUUkVBTVNfQkxPQ0tFRF9VTkksCi0g
ICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAwIiksCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF9wYXlsb2FkX3JlY2VpdmVkX3BhZGRpbmdfb25seShzZWxmKToKLSAgICAgICAg
d2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAg
ICAjIGNsaWVudCByZWNlaXZlcyBwYWRkaW5nIG9ubHkKLSAgICAgICAgICAgIGlzX2Fja19lbGlj
aXRpbmcsIGlzX3Byb2JpbmcgPSBjbGllbnQuX3BheWxvYWRfcmVjZWl2ZWQoCi0gICAgICAgICAg
ICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLCBiIlx4MDAiICogMTIwMAotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc19hY2tfZWxpY2l0aW5n
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX3Byb2JpbmcpCi0KLSAgICBkZWYgdGVz
dF9wYXlsb2FkX3JlY2VpdmVkX3Vua25vd25fZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGggY2xp
ZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGll
bnQgcmVjZWl2ZXMgdW5rbm93biBmcmFtZQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQu
X3BheWxvYWRfcmVjZWl2ZWQoY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLCBiIlx4MWYi
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwg
UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCAweDFGKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIlVua25vd24gZnJhbWUgdHlw
ZSIpCi0KLSAgICBkZWYgdGVzdF9wYXlsb2FkX3JlY2VpdmVkX3VuZXhwZWN0ZWRfZnJhbWUoc2Vs
Zik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIp
OgotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgQ1JZUFRPIGZyYW1lIGluIDAtUlRUCi0g
ICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFz
IGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5fcGF5bG9hZF9yZWNlaXZlZCgKLSAgICAgICAg
ICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQsIGVwb2NoPXRscy5FcG9j
aC5aRVJPX1JUVCksIGIiXHgwNiIKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlBST1RP
Q09MX1ZJT0xBVElPTikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9u
LmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIlVuZXhwZWN0ZWQgZnJhbWUgdHlw
ZSIpCi0KLSAgICBkZWYgdGVzdF9wYXlsb2FkX3JlY2VpdmVkX21hbGZvcm1lZF9mcmFtZShzZWxm
KToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6
Ci0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBtYWxmb3JtZWQgVFJBTlNQT1JUX0NMT1NF
IGZyYW1lCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9u
RXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5fcGF5bG9hZF9yZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLCBiIlx4
MWNceDAwXHgwMSIKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JD
b2RlLkZSQU1FX0VOQ09ESU5HX0VSUk9SCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCAweDFDKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIkZhaWxlZCB0byBw
YXJzZSBmcmFtZSIpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21heF9kYXRhX2Jsb2NrZWRfYnlfY2Mo
c2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2
ZXIpOgotICAgICAgICAgICAgIyBjaGVjayBjb25nZXN0aW9uIGNvbnRyb2wKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9sb3NzLmJ5dGVzX2luX2ZsaWdodCwgMCkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9sb3NzLmNvbmdlc3Rpb25fd2luZG93LCAx
NDMwMykKLQotICAgICAgICAgICAgIyBhcnRpZmljaWFsbHkgcmFpc2UgcmVjZWl2ZWQgZGF0YSBj
b3VudGVyCi0gICAgICAgICAgICBjbGllbnQuX2xvY2FsX21heF9kYXRhX3VzZWQgPSBjbGllbnQu
X2xvY2FsX21heF9kYXRhCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5fcmVt
b3RlX21heF9kYXRhLCAxMDQ4NTc2KQotCi0gICAgICAgICAgICAjIGFydGlmaWNpYWxseSByYWlz
ZSBieXRlcyBpbiBmbGlnaHQKLSAgICAgICAgICAgIGNsaWVudC5fbG9zcy5fY2MuYnl0ZXNfaW5f
ZmxpZ2h0ID0gMTQzMDMKLQotICAgICAgICAgICAgIyBNQVhfREFUQSBpcyBub3Qgc2VudCBkdWUg
dG8gY29uZ2VzdGlvbiBjb250cm9sCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyb3Ao
Y2xpZW50KSwgMCkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWF4X2RhdGFfcmV0cmFuc21pdChzZWxm
KToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6
Ci0gICAgICAgICAgICAjIGFydGlmaWNpYWxseSByYWlzZSByZWNlaXZlZCBkYXRhIGNvdW50ZXIK
LSAgICAgICAgICAgIGNsaWVudC5fbG9jYWxfbWF4X2RhdGFfdXNlZCA9IGNsaWVudC5fbG9jYWxf
bWF4X2RhdGEKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLl9yZW1vdGVfbWF4
X2RhdGEsIDEwNDg1NzYpCi0KLSAgICAgICAgICAgICMgTUFYX0RBVEEgaXMgc2VudCBhbmQgbG9z
dAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcm9wKGNsaWVudCksIDEpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5fbG9jYWxfbWF4X2RhdGFfc2VudCwgMjA5NzE1
MikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLl9yZW1vdGVfbWF4X2RhdGEs
IDEwNDg1NzYpCi0KLSAgICAgICAgICAgICMgTUFYX0RBVEEgaXMgcmV0cmFuc21pdHRlZCBhbmQg
YWNrZWQKLSAgICAgICAgICAgIGNsaWVudC5fb25fbWF4X2RhdGFfZGVsaXZlcnkoUXVpY0RlbGl2
ZXJ5U3RhdGUuTE9TVCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9sb2Nh
bF9tYXhfZGF0YV9zZW50LCAwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRy
aXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwgMSkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlcnZlci5fcmVtb3RlX21heF9kYXRhLCAyMDk3MTUyKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9t
YXhfc3RyZWFtX2RhdGFfcmV0cmFuc21pdChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5k
X3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVh
dGVzIGJpZGlyZWN0aW9uYWwgc3RyZWFtIDAKLSAgICAgICAgICAgIHN0cmVhbSA9IGNsaWVudC5f
Y3JlYXRlX3N0cmVhbShzdHJlYW1faWQ9MCkKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVh
bV9kYXRhKDAsIGIiaGVsbG8iKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0u
bWF4X3N0cmVhbV9kYXRhX2xvY2FsLCAxMDQ4NTc2KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsX3NlbnQsIDEwNDg1NzYpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAxKSkK
LQotICAgICAgICAgICAgIyBzZXJ2ZXIgc2VuZHMgZGF0YSwganVzdCBiZWZvcmUgcmFpc2luZyBN
QVhfU1RSRUFNX0RBVEEKLSAgICAgICAgICAgIHNlcnZlci5zZW5kX3N0cmVhbV9kYXRhKDAsIGIi
WiIgKiA1MjQyODgpICAjIDEwNDg1NzYgLy8gMgotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
MTApOgotICAgICAgICAgICAgICAgIHJvdW5kdHJpcChzZXJ2ZXIsIGNsaWVudCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbCwgMTA0ODU3
NikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9s
b2NhbF9zZW50LCAxMDQ4NTc2KQotCi0gICAgICAgICAgICAjIHNlcnZlciBzZW5kcyBvbmUgbW9y
ZSBieXRlCi0gICAgICAgICAgICBzZXJ2ZXIuc2VuZF9zdHJlYW1fZGF0YSgwLCBiIloiKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFuc2ZlcihzZXJ2ZXIsIGNsaWVudCksIDEpCi0K
LSAgICAgICAgICAgICMgTUFYX1NUUkVBTV9EQVRBIGlzIHNlbnQgYW5kIGxvc3QKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAxKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsLCAyMDk3MTUyKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsX3NlbnQs
IDIwOTcxNTIpCi0gICAgICAgICAgICBjbGllbnQuX29uX21heF9zdHJlYW1fZGF0YV9kZWxpdmVy
eShRdWljRGVsaXZlcnlTdGF0ZS5MT1NULCBzdHJlYW0pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWwsIDIwOTcxNTIpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWxfc2VudCwgMCkK
LQotICAgICAgICAgICAgIyBNQVhfREFUQSBpcyByZXRyYW5zbWl0dGVkIGFuZCBhY2tlZAotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwg
MSkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFf
bG9jYWwsIDIwOTcxNTIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhf
c3RyZWFtX2RhdGFfbG9jYWxfc2VudCwgMjA5NzE1MikKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGlu
ZyhzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNl
cnZlcik6Ci0gICAgICAgICAgICBjb25zdW1lX2V2ZW50cyhjbGllbnQpCi0KLSAgICAgICAgICAg
ICMgY2xpZW50IHNlbmRzIHBpbmcsIHNlcnZlciBBQ0tzIGl0Ci0gICAgICAgICAgICBjbGllbnQu
c2VuZF9waW5nKHVpZD0xMjM0NSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0
cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQotCi0gICAgICAgICAgICAjIGNoZWNrIGV2ZW50
Ci0gICAgICAgICAgICBldmVudCA9IGNsaWVudC5uZXh0X2V2ZW50KCkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC51aWQsIDEyMzQ1KQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9waW5nX3JldHJhbnNtaXQoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9z
ZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgY29uc3VtZV9ldmVudHMo
Y2xpZW50KQotCi0gICAgICAgICAgICAjIGNsaWVudCBzZW5kcyBhbm90aGVyIHBpbmcsIFBJTkcg
aXMgbG9zdAotICAgICAgICAgICAgY2xpZW50LnNlbmRfcGluZyh1aWQ9MTIzNDUpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGRyb3AoY2xpZW50KSwgMSkKLQotICAgICAgICAgICAgIyBQ
SU5HIGlzIHJldHJhbnNtaXR0ZWQgYW5kIGFja2VkCi0gICAgICAgICAgICBjbGllbnQuX29uX3Bp
bmdfZGVsaXZlcnkoUXVpY0RlbGl2ZXJ5U3RhdGUuTE9TVCwgKDEyMzQ1LCkpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAxKSkKLQot
ICAgICAgICAgICAgIyBjaGVjayBldmVudAotICAgICAgICAgICAgZXZlbnQgPSBjbGllbnQubmV4
dF9ldmVudCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVu
dHMuUGluZ0Fja25vd2xlZGdlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQu
dWlkLCAxMjM0NSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfc3RyZWFtX2RhdGFfb3Zlcl9tYXhfc3Ry
ZWFtc19iaWRpKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNs
aWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY3JlYXRlIHN0cmVhbXMKLSAgICAgICAgICAg
IGZvciBpIGluIHJhbmdlKDEyOCk6Ci0gICAgICAgICAgICAgICAgc3RyZWFtX2lkID0gaSAqIDQK
LSAgICAgICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiIikK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNsaWVudC5fc3RyZWFtc1tzdHJlYW1f
aWRdLmlzX2Jsb2NrZWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbGllbnQu
X3N0cmVhbXNfYmxvY2tlZF9iaWRpKSwgMCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGNsaWVudC5fc3RyZWFtc19ibG9ja2VkX3VuaSksIDApCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgwLCAwKSkKLQotICAgICAgICAg
ICAgIyBjcmVhdGUgb25lIHRvbyBtYW55IC0+IFNUUkVBTVNfQkxPQ0tFRAotICAgICAgICAgICAg
c3RyZWFtX2lkID0gMTI4ICogNAotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEo
c3RyZWFtX2lkLCBiIiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xpZW50Ll9zdHJl
YW1zW3N0cmVhbV9pZF0uaXNfYmxvY2tlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGNsaWVudC5fc3RyZWFtc19ibG9ja2VkX2JpZGkpLCAxKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oY2xpZW50Ll9zdHJlYW1zX2Jsb2NrZWRfdW5pKSwgMCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQot
Ci0gICAgICAgICAgICAjIHBlZXIgcmFpc2VzIG1heCBzdHJlYW1zCi0gICAgICAgICAgICBjbGll
bnQuX2hhbmRsZV9tYXhfc3RyZWFtc19iaWRpX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVu
dF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBl
Lk1BWF9TVFJFQU1TX0JJREksCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9ZW5jb2RlX3Vp
bnRfdmFyKDEyOSkpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShjbGllbnQuX3N0cmVhbXNbc3RyZWFtX2lkXS5pc19ibG9ja2VkKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9zdHJlYW1fZGF0YV9vdmVyX21heF9zdHJlYW1zX3VuaShzZWxmKToKLSAgICAgICAgd2l0
aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAj
IGNyZWF0ZSBzdHJlYW1zCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxMjgpOgotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZCA9IGkgKiA0ICsgMgotICAgICAgICAgICAgICAgIGNsaWVudC5z
ZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiIiKQotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoY2xpZW50Ll9zdHJlYW1zW3N0cmVhbV9pZF0uaXNfYmxvY2tlZCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudC5fc3RyZWFtc19ibG9ja2VkX2JpZGkpLCAw
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xpZW50Ll9zdHJlYW1zX2Jsb2Nr
ZWRfdW5pKSwgMCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVu
dCwgc2VydmVyKSwgKDAsIDApKQotCi0gICAgICAgICAgICAjIGNyZWF0ZSBvbmUgdG9vIG1hbnkg
LT4gU1RSRUFNU19CTE9DS0VECi0gICAgICAgICAgICBzdHJlYW1faWQgPSAxMjggKiA0ICsgMgot
ICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiIiIpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xpZW50Ll9zdHJlYW1zW3N0cmVhbV9pZF0uaXNfYmxv
Y2tlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudC5fc3RyZWFtc19i
bG9ja2VkX2JpZGkpLCAwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xpZW50
Ll9zdHJlYW1zX2Jsb2NrZWRfdW5pKSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cm91bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQotCi0gICAgICAgICAgICAjIHBlZXIg
cmFpc2VzIG1heCBzdHJlYW1zCi0gICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9tYXhfc3RyZWFt
c191bmlfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGll
bnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuTUFYX1NUUkVBTVNfVU5JLAotICAg
ICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWVuY29kZV91aW50X3ZhcigxMjkpKSwKLSAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2xpZW50Ll9zdHJlYW1zW3N0cmVh
bV9pZF0uaXNfYmxvY2tlZCkKLQotICAgIGRlZiB0ZXN0X3NlbmRfc3RyZWFtX2RhdGFfcGVlcl9p
bml0aWF0ZWQoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xp
ZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBzZXJ2ZXIgY3JlYXRlcyBiaWRpcmVjdGlvbmFs
IHN0cmVhbQotICAgICAgICAgICAgc2VydmVyLnNlbmRfc3RyZWFtX2RhdGEoMSwgYiJoZWxsbyIp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChzZXJ2ZXIsIGNsaWVudCks
ICgxLCAxKSkKLQotICAgICAgICAgICAgIyBzZXJ2ZXIgY3JlYXRlcyB1bmlkaXJlY3Rpb25hbCBz
dHJlYW0KLSAgICAgICAgICAgIHNlcnZlci5zZW5kX3N0cmVhbV9kYXRhKDMsIGIiaGVsbG8iKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoc2VydmVyLCBjbGllbnQpLCAo
MSwgMSkpCi0KLSAgICAgICAgICAgICMgY2xpZW50IGNyZWF0ZXMgYmlkaXJlY3Rpb25hbCBzdHJl
YW0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKDAsIGIiaGVsbG8iKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwg
MSkpCi0KLSAgICAgICAgICAgICMgY2xpZW50IHNlbmRzIGRhdGEgb24gc2VydmVyLWluaXRpYXRl
ZCBiaWRpcmVjdGlvbmFsIHN0cmVhbQotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2Rh
dGEoMSwgYiJoZWxsbyIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChj
bGllbnQsIHNlcnZlciksICgxLCAxKSkKLQotICAgICAgICAgICAgIyBjbGllbnQgY3JlYXRlIHVu
aWRpcmVjdGlvbmFsIHN0cmVhbQotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEo
MiwgYiJoZWxsbyIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChjbGll
bnQsIHNlcnZlciksICgxLCAxKSkKLQotICAgICAgICAgICAgIyBjbGllbnQgdHJpZXMgdG8gc2Vu
ZCBkYXRhIG9uIHNlcnZlci1pbml0aWFsIHVuaWRpcmVjdGlvbmFsIHN0cmVhbQotICAgICAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YSgzLCBiImhlbGxvIikKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc3RyKGNtLmV4Y2VwdGlvbiksCi0gICAg
ICAgICAgICAgICAgIkNhbm5vdCBzZW5kIGRhdGEgb24gcGVlci1pbml0aWF0ZWQgdW5pZGlyZWN0
aW9uYWwgc3RyZWFtIiwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBjbGllbnQgdHJp
ZXMgdG8gc2VuZCBkYXRhIG9uIHVua25vd24gc2VydmVyLWluaXRpYXRlZCBiaWRpcmVjdGlvbmFs
IHN0cmVhbQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBh
cyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YSg1LCBiImhlbGxv
IikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc3RyKGNt
LmV4Y2VwdGlvbiksICJDYW5ub3Qgc2VuZCBkYXRhIG9uIHVua25vd24gcGVlci1pbml0aWF0ZWQg
c3RyZWFtIgotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rfc3RyZWFtX2RpcmVjdGlvbihz
ZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZl
cik6Ci0gICAgICAgICAgICBmb3Igb2ZmIGluIFswLCA0LCA4XToKLSAgICAgICAgICAgICAgICAj
IENsaWVudC1Jbml0aWF0ZWQsIEJpZGlyZWN0aW9uYWwKLSAgICAgICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUoY2xpZW50Ll9zdHJlYW1fY2FuX3JlY2VpdmUob2ZmKSkKLSAgICAgICAgICAgICAg
ICBzZWxmLmFzc2VydFRydWUoY2xpZW50Ll9zdHJlYW1fY2FuX3NlbmQob2ZmKSkKLSAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLl9zdHJlYW1fY2FuX3JlY2VpdmUob2ZmKSkK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLl9zdHJlYW1fY2FuX3NlbmQo
b2ZmKSkKLQotICAgICAgICAgICAgICAgICMgU2VydmVyLUluaXRpYXRlZCwgQmlkaXJlY3Rpb25h
bAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbV9jYW5fcmVj
ZWl2ZShvZmYgKyAxKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xpZW50Ll9z
dHJlYW1fY2FuX3NlbmQob2ZmICsgMSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHNlcnZlci5fc3RyZWFtX2Nhbl9yZWNlaXZlKG9mZiArIDEpKQotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuX3N0cmVhbV9jYW5fc2VuZChvZmYgKyAxKSkKLQotICAgICAg
ICAgICAgICAgICMgQ2xpZW50LUluaXRpYXRlZCwgVW5pZGlyZWN0aW9uYWwKLSAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGNsaWVudC5fc3RyZWFtX2Nhbl9yZWNlaXZlKG9mZiArIDIp
KQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbV9jYW5fc2Vu
ZChvZmYgKyAyKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLl9zdHJl
YW1fY2FuX3JlY2VpdmUob2ZmICsgMikpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShzZXJ2ZXIuX3N0cmVhbV9jYW5fc2VuZChvZmYgKyAyKSkKLQotICAgICAgICAgICAgICAgICMg
U2VydmVyLUluaXRpYXRlZCwgVW5pZGlyZWN0aW9uYWwKLSAgICAgICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUoY2xpZW50Ll9zdHJlYW1fY2FuX3JlY2VpdmUob2ZmICsgMykpCi0gICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShjbGllbnQuX3N0cmVhbV9jYW5fc2VuZChvZmYgKyAzKSkK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5fc3RyZWFtX2Nhbl9yZWNl
aXZlKG9mZiArIDMpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuX3N0
cmVhbV9jYW5fc2VuZChvZmYgKyAzKSkKLQotICAgIGRlZiB0ZXN0X3ZlcnNpb25fbmVnb3RpYXRp
b25fZmFpbChzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50
KHNlbGYpCi0KLSAgICAgICAgIyBubyBjb21tb24gdmVyc2lvbiwgbm8gcmV0cnkKLSAgICAgICAg
Y2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oCi0gICAgICAgICAgICBlbmNvZGVfcXVpY192ZXJzaW9u
X25lZ290aWF0aW9uKAotICAgICAgICAgICAgICAgIHNvdXJjZV9jaWQ9Y2xpZW50Ll9wZWVyX2Np
ZCwKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9jaWQ9Y2xpZW50Lmhvc3RfY2lkLAotICAg
ICAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9ucz1bMHhGRjAwMDAxMV0sICAjIERSQUZUXzE2
Ci0gICAgICAgICAgICApLAotICAgICAgICAgICAgU0VSVkVSX0FERFIsCi0gICAgICAgICAgICBu
b3c9dGltZS50aW1lKCksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcm9w
KGNsaWVudCksIDApCi0KLSAgICAgICAgZXZlbnQgPSBjbGllbnQubmV4dF9ldmVudCgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5Db25uZWN0aW9uVGVybWlu
YXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5lcnJvcl9jb2RlLCBRdWljRXJy
b3JDb2RlLklOVEVSTkFMX0VSUk9SKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmZy
YW1lX3R5cGUsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBl
dmVudC5yZWFzb25fcGhyYXNlLCAiQ291bGQgbm90IGZpbmQgYSBjb21tb24gcHJvdG9jb2wgdmVy
c2lvbiIKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfdmVyc2lvbl9uZWdvdGlhdGlvbl9vayhz
ZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYpCi0K
LSAgICAgICAgIyBmb3VuZCBhIGNvbW1vbiB2ZXJzaW9uLCByZXRyeQotICAgICAgICBjbGllbnQu
cmVjZWl2ZV9kYXRhZ3JhbSgKLSAgICAgICAgICAgIGVuY29kZV9xdWljX3ZlcnNpb25fbmVnb3Rp
YXRpb24oCi0gICAgICAgICAgICAgICAgc291cmNlX2NpZD1jbGllbnQuX3BlZXJfY2lkLAotICAg
ICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2NpZD1jbGllbnQuaG9zdF9jaWQsCi0gICAgICAgICAg
ICAgICAgc3VwcG9ydGVkX3ZlcnNpb25zPVtjbGllbnQuX3ZlcnNpb25dLAotICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgIFNFUlZFUl9BRERSLAotICAgICAgICAgICAgbm93PXRpbWUudGltZSgp
LAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAxKQot
Ci0KLWNsYXNzIFF1aWNOZXR3b3JrUGF0aFRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X2Nh
bl9zZW5kKHNlbGYpOgotICAgICAgICBwYXRoID0gUXVpY05ldHdvcmtQYXRoKCgiMS4yLjMuNCIs
IDEyMzQpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBhdGguaXNfdmFsaWRhdGVkKQotCi0g
ICAgICAgICMgaW5pdGlhbGx5LCBjYW5ub3Qgc2VuZCBhbnkgZGF0YQotICAgICAgICBzZWxmLmFz
c2VydFRydWUocGF0aC5jYW5fc2VuZCgwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwYXRo
LmNhbl9zZW5kKDEpKQotCi0gICAgICAgICMgcmVjZWl2ZSBzb21lIGRhdGEKLSAgICAgICAgcGF0
aC5ieXRlc19yZWNlaXZlZCArPSAxCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXRoLmNhbl9z
ZW5kKDApKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocGF0aC5jYW5fc2VuZCgxKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHBhdGguY2FuX3NlbmQoMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShwYXRoLmNhbl9zZW5kKDMpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBhdGguY2Fu
X3NlbmQoNCkpCi0KLSAgICAgICAgIyBzZW5kIHNvbWUgZGF0YQotICAgICAgICBwYXRoLmJ5dGVz
X3NlbnQgKz0gMwotICAgICAgICBzZWxmLmFzc2VydFRydWUocGF0aC5jYW5fc2VuZCgwKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShwYXRoLmNhbl9zZW5kKDEpKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rlc3RfY3J5cHRvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3Rf
Y3J5cHRvLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjRlNGRjZjVlMThlNDcw
MjQ1MGQxYmViZjQ5ZGZmYzIxM2U2MmQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2NyeXB0by5weQorKysgL2Rl
di9udWxsCkBAIC0xLDMxOSArMCwwIEBACi1pbXBvcnQgYmluYXNjaWkKLWZyb20gdW5pdHRlc3Qg
aW1wb3J0IFRlc3RDYXNlLCBza2lwSWYKLQotZnJvbSBhaW9xdWljLmJ1ZmZlciBpbXBvcnQgQnVm
ZmVyCi1mcm9tIGFpb3F1aWMucXVpYy5jcnlwdG8gaW1wb3J0ICgKLSAgICBJTklUSUFMX0NJUEhF
Ul9TVUlURSwKLSAgICBDcnlwdG9FcnJvciwKLSAgICBDcnlwdG9QYWlyLAotICAgIGRlcml2ZV9r
ZXlfaXZfaHAsCi0pCi1mcm9tIGFpb3F1aWMucXVpYy5wYWNrZXQgaW1wb3J0IFBBQ0tFVF9GSVhF
RF9CSVQsIFF1aWNQcm90b2NvbFZlcnNpb24KLWZyb20gYWlvcXVpYy50bHMgaW1wb3J0IENpcGhl
clN1aXRlCi0KLWZyb20gLnV0aWxzIGltcG9ydCBTS0lQX1RFU1RTCi0KLVBST1RPQ09MX1ZFUlNJ
T04gPSBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1Ci0KLUNIQUNIQTIwX0NMSUVOVF9QQUNL
RVRfTlVNQkVSID0gMgotQ0hBQ0hBMjBfQ0xJRU5UX1BMQUlOX0hFQURFUiA9IGJpbmFzY2lpLnVu
aGV4bGlmeSgKLSAgICAiZTFmZjAwMDAxNjA4ODBiNTdjN2I3MGQ4NTI0YjA4NTBmYzJhMjhlMjQw
ZmQ3NjQwMTcwMDAyIgotKQotQ0hBQ0hBMjBfQ0xJRU5UX1BMQUlOX1BBWUxPQUQgPSBiaW5hc2Np
aS51bmhleGxpZnkoIjAyMDEwMDAwMDAiKQotQ0hBQ0hBMjBfQ0xJRU5UX0VOQ1JZUFRFRF9QQUNL
RVQgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgImU4ZmYwMDAwMTYwODgwYjU3YzdiNzBkODUy
NGIwODUwZmMyYTI4ZTI0MGZkNzY0MDE3ODMxM2IwNGJlOTg0NDkiCi0gICAgImViMTA1NjdlMjVj
ZTkzMDM4MWYyYTViN2RhMmRiOGRiIgotKQotCi1MT05HX0NMSUVOVF9QQUNLRVRfTlVNQkVSID0g
MgotTE9OR19DTElFTlRfUExBSU5fSEVBREVSID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICJj
M2ZmMDAwMDE3MDg4Mzk0YzhmMDNlNTE1NzA4MDAwMDQ0OWUwMDAwMDAwMiIKLSkKLUxPTkdfQ0xJ
RU5UX1BMQUlOX1BBWUxPQUQgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgIjA2MDA0MGM0MDEw
MDAwYzAwMzAzNjY2MDI2MWZmOTQ3Y2VhNDljY2U2Y2ZhZDY4N2Y0NTdjZjFiMTQ1MzFiYTEiCi0g
ICAgIjQxMzFhMGU4ZjMwOWExZDBiOWM0MDAwMDA2MTMwMTEzMDMxMzAyMDEwMDAwOTEwMDAwMDAw
YjAwMDkwMDAwMDYiCi0gICAgIjczNjU3Mjc2NjU3MmZmMDEwMDAxMDAwMDBhMDAxNDAwMTIwMDFk
MDAxNzAwMTgwMDE5MDEwMDAxMDEwMTAyMDEiCi0gICAgIjAzMDEwNDAwMjMwMDAwMDAzMzAwMjYw
MDI0MDAxZDAwMjA0Y2ZkZmNkMTc4Yjc4NGJmMzI4Y2FlNzkzYjEzNmYiCi0gICAgIjJhZWRjZTAw
NWZmMTgzZDdiYjE0OTUyMDcyMzY2NDcwMzcwMDJiMDAwMzAyMDMwNDAwMGQwMDIwMDAxZTA0MDMi
Ci0gICAgIjA1MDMwNjAzMDIwMzA4MDQwODA1MDgwNjA0MDEwNTAxMDYwMTAyMDEwNDAyMDUwMjA2
MDIwMjAyMDAyZDAwMDIiCi0gICAgIjAxMDEwMDFjMDAwMjQwMDEiCi0pICsgYnl0ZXMoOTYyKQot
TE9OR19DTElFTlRfRU5DUllQVEVEX1BBQ0tFVCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAi
YzBmZjAwMDAxNzA4ODM5NGM4ZjAzZTUxNTcwODAwMDA0NDllM2IzNDNhYTg1MzUwNjRhNDI2OGEw
ZDlkN2IxYyIKLSAgICAiOWQyNTBhZTM1NTE2MjI3NmU5YjFlMzAxMWVmNmJiYzBhYjQ4YWQ1YmNj
MjY4MWU5NTM4NTdjYTYyYmVjZDc1MiIKLSAgICAiNGRhYWM0NzNlNjhkNzQwNWZiYmE0ZTllZTYx
NmM4NzAzOGJkYmU5MDhjMDZkOTYwNWQ5YWM0OTAzMDM1OWVlYyIKLSAgICAiYjFkMDVhMTRlMTE3
ZGI4Y2VkZTJiYjA5ZDBkYmJmZWUyNzFjYjM3NGQ4ZjEwYWJlYzgyZDBmNTlhMWRlZTI5ZiIKLSAg
ICAiZTk1NjM4ZWQ4ZGQ0MWRhMDc0ODc0Njg3OTFiNzE5YzU1YzQ2OTY4ZWIzYjU0NjgwMDM3MTAy
YTI4ZTUzZGMxZCIKLSAgICAiMTI5MDNkYjBhZjU4MjE3OTRiNDFjNGE5MzM1N2ZhNTljZTY5Y2Zl
N2Y2YmRmYTYyOWVlZjc4NjE2NDQ3ZTFkNiIKLSAgICAiMTFjNGJhZjcxYmYzM2ZlYmNiMDMxMzdj
MmM3NWQyNTMxN2QzZTEzYjY4NDM3MGY2Njg0MTFjMGYwMDMwNGI1MCIKLSAgICAiMWM4ZmQ0MjJi
ZDliOWFkODFkNjQzYjIwZGE4OWNhMDUyNWQyNGQyYjE0MjA0MWNhZTBhZjIwNTA5MmU0MzAwOCIK
LSAgICAiMGNkODU1OWVhNGM1YzZlNGZhM2Y2NjA4MmI3ZDMwM2U1MmNlMDE2MmJhYTk1ODUzMmIw
YmJjMmJjNzg1NjgxZiIKLSAgICAiY2YzNzQ4NWRmZjY1OTVlMDFlNzM5YzhhYzllZmJhMzFiOTg1
ZDVmNjU2Y2MwOTI0MzJkNzgxZGI5NTIyMTcyNCIKLSAgICAiODc2NDFjNGQzYWI4ZWNlMDFlMzli
Yzg1YjE1NDM2NjE0Nzc1YTk4YmE4ZmExMmQ0NmY5YjM1ZTJhNTVlYjcyZCIKLSAgICAiN2Y4NTE4
MWEzNjY2NjMzODdkZGMyMDU1MTgwN2UwMDc2NzNiZDdlMjZiZjliMjliNWFiMTBhMWNhODdjYmI3
YSIKLSAgICAiZDk3ZTk5ZWI2Njk1OWMyYTliYzNjYmRlNDcwN2ZmNzcyMGIxMTBmYTk1MzU0Njc0
ZTM5NTgxMmU0N2EwYWU1MyIKLSAgICAiYjQ2NGRjYjJkMWYzNDVkZjM2MGRjMjI3MjcwYzc1MDY3
NmY2NzI0ZWI0NzlmMGQyZmJiNjEyNDQyOTk5MDQ1NyIKLSAgICAiYWM2YzkxNjdmNDBhYWI3Mzk5
OThmMzhiOWVjY2IyNGZkNDdjODQxMDEzMWJmNjVhNTJhZjg0MTI3NWQ1YjNkMSIKLSAgICAiODgw
YjE5N2RmMmI1ZGVhM2U2ZGU1NmViY2UzZmZiNmU5Mjc3YTgyMDgyZjhkOTY3N2E2NzY3MDg5YjY3
MWViZCIKLSAgICAiMjQ0YzIxNGYwYmRlOTVjMmJlYjAyY2QxMTcyZDU4YmRmMzlkY2U1NmZmNjhl
YjM1YWIzOWI0OWI0ZWFjN2M4MSIKLSAgICAiNWVhNjA0NTFkNmU2YWI4MjExOTExOGRmMDJhNTg2
ODQ0YTlmZmUxNjJiYTAwNmQwNjY5ZWY1NzY2OGNhYjM4YiIKLSAgICAiNjJmNzFhMjUyM2EwODQ4
NTJjZDFkMDc5YjM2NThkYzJmM2U4Nzk0OWI1NTBiYWIzZTE3N2NmYzQ5ZWQxOTBkZiIKLSAgICAi
ZjA2MzBlNDMwNzdjMzBkZThmNmFlMDgxNTM3ZjFlODNkYTUzN2RhOTgwYWZhNjY4ZTdiN2ZiMjUz
MDFjZjc0MSIKLSAgICAiNTI0YmUzYzQ5ODg0YjQyODIxZjE3NTUyZmJkMTkzMWE4MTMwMTdiNmI2
NTkwYTQxZWExOGI2YmE0OWNkNDhhNCIKLSAgICAiNDBiZDlhMzM0NmE3NjIzZmI0YmEzNGEzZWU1
NzFlM2M3MzFmMzVhN2EzY2YyNWI1NTFhNjgwZmE2ODc2MzUwNyIKLSAgICAiYjdmZGUzYWFmMDIz
YzUwYjlkMjJkYTY4NzZiYTMzN2ViNWU5ZGQ5ZWMzZGFmOTcwMjQyYjZjNWFhYjNhYTRiMiIKLSAg
ICAiOTZhZDhiOWY2ODMyZjY4NmVmNzBmYTkzOGIzMWI0ZTVkZGQ3MzY0NDQyZDNlYTcyZTczZDY2
OGZiMDkzNzc5NiIKLSAgICAiZjQ2MjkyM2E4MWE0N2UxY2VlNzQyNmZmNmQ5MjIxMjY5YjVhNjJl
YzAzZDZlYzk0ZDEyNjA2Y2I0ODU1NjBiYSIKLSAgICAiYjU3NDgxNjAwOWU5NjUwNDI0OTM4NWJi
NjFhODE5YmUwNGY2MmMyMDY2MjE0ZDgzNjBhMjAyMmJlYjMxNjI0MCIKLSAgICAiYjZjN2Q3OGJi
ZTU2YzEzMDgyZTBjYTI3MjY2MTIxMGFiZjAyMGJmM2I1NzgzZjE0MjY0MzZjZjlmZjQxODQwNSIK
LSAgICAiOTNhNWQwNjM4ZDMyZmM1MWM1YzY1ZmYyOTFhM2E3YTUyZmQ2Nzc1ZTYyM2E0NDM5Y2Mw
OGRkMjU1ODJmZWJjOSIKLSAgICAiNDRlZjkyZDhkYmQzMjljOTFkZTNlOWM5NTgyZTQxZjE3ZjNk
MTg2ZjEwNGFkM2Y5MDk5NTExNmM2ODJhMmExNCIKLSAgICAiYTNiNGIxZjU0N2MzMzVmMGJlNzEw
ZmM5ZmMwM2UwZTU4N2I4Y2RhMzFjZTY1Yjk2OTg3OGE0YWQ0MjgzZTZkNSIKLSAgICAiYjAzNzNm
NDNkYTg2ZTllMGZmZTFhZTBmZGRkMzUxNjI1NWJkNzQ1NjZmMzZhMzg3MDNkNWYzNDI0OWRlZDFm
NiIKLSAgICAiNmIzZDliNDViOWFmMmNjZmVmZTk4NGUxMzM3NmIxYjJjNjQwNGFhNDhjODAyNjEz
MjM0M2RhM2YzYTMzNjU5ZSIKLSAgICAiYzFiM2U5NTA4MDU0MGIyOGI3ZjNmY2QzNWZhNWQ4NDNi
NTc5YTg0YzA4OTEyMWE2MGQ4YzE3NTQ5MTVjMzQ0ZSIKLSAgICAiZWFmNDVhOWJmMjdkYzBjMWU3
ODQxNjE2OTEyMjA5MTMxM2ViMGU4NzU1NWFiZDcwNjYyNmU1NTdmYzM2YTA0ZiIKLSAgICAiY2Qx
OTFhNTg4MjkxMDRkNjA3NWM1NTk0ZjYyN2NhNTA2YmYxODFkYWVjOTQwZjRhNGYzYWYwMDc0ZWVl
ODlkYSIKLSAgICAiYWNkZTY3NTgzMTI2MjJkNGZhNjc1YjM5ZjcyOGUwNjJkMmJlZTY4MGQ4ZjQx
YTU5N2MyNjI2NDhiYjE4YmNmYyIKLSAgICAiMTNjOGIzZDk3YjFhNzdiMmFjM2FmNzQ1ZDYxYTM0
Y2M0NzA5ODY1YmFjODI0YTk0YmIxOTA1ODAxNWU0ZTQyZCIKLSAgICAiYzliZTZjNzgwMzU2NzMy
MTgyOWRkODU4NTMzOTYyNjkiCi0pCi0KLUxPTkdfU0VSVkVSX1BBQ0tFVF9OVU1CRVIgPSAxCi1M
T05HX1NFUlZFUl9QTEFJTl9IRUFERVIgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgImMxZmYw
MDAwMTcwMDA4ZjA2N2E1NTAyYTQyNjJiNTAwNDA3NDAwMDEiCi0pCi1MT05HX1NFUlZFUl9QTEFJ
Tl9QQVlMT0FEID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICIwZDAwMDAwMDAwMTg0MTBhMDIw
MDAwNTYwMzAzZWVmY2U3ZjdiMzdiYTFkMTYzMmU5NjY3NzgyNWRkZjczOTg4IgotICAgICJjZmM3
OTgyNWRmNTY2ZGM1NDMwYjlhMDQ1YTEyMDAxMzAxMDAwMDJlMDAzMzAwMjQwMDFkMDAyMDlkM2M5
NDBkIgotICAgICI4OTY5MGI4NGQwOGE2MDk5M2MxNDRlY2E2ODRkMTA4MTI4N2M4MzRkNTMxMWJj
ZjMyYmI5ZGExYTAwMmIwMDAyIgotICAgICIwMzA0IgotKQotTE9OR19TRVJWRVJfRU5DUllQVEVE
X1BBQ0tFVCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAiYzlmZjAwMDAxNzAwMDhmMDY3YTU1
MDJhNDI2MmI1MDA0MDc0MTY4YmYyMmI3MDAyNTk2Zjk5YWU2N2FiZjY1YSIKLSAgICAiNTg1MmY1
NGY1OGMzN2M4MDg2ODJlMmU0MDQ5MmQ4YTM4OTlmYjA0ZmMwYWZlOWFhYmM4NzY3YjE4YTBhYTQ5
MyIKLSAgICAiNTM3NDI2MzczYjQ4ZDUwMjIxNGRkODU2ZDYzYjc4Y2VlMzdiYzY2NGIzZmU4NmQ0
ODdhYzdhNzdjNTMwMzhhMyIKLSAgICAiY2QzMmYwYjUwMDRkOWY1NzU0YzRmN2YyZDFmMzVjZjNm
NzExNjM1MWM5MmI5Y2Y5YmI2ZDA5MWRkZmM4YjMyZCIKLSAgICAiNDMyMzQ4YTJjNDEzIgotKQot
Ci1TSE9SVF9TRVJWRVJfUEFDS0VUX05VTUJFUiA9IDMKLVNIT1JUX1NFUlZFUl9QTEFJTl9IRUFE
RVIgPSBiaW5hc2NpaS51bmhleGxpZnkoIjQxYjAxZmQyNGE1ODZhOWNmMzAwMDMiKQotU0hPUlRf
U0VSVkVSX1BMQUlOX1BBWUxPQUQgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgIjA2MDAzOTA0
MDAwMDM1MDAwMTUxODA1YTRiZWJmNTAwMDAyMGIwOThjOGRjNDE4M2U0YzE4MjU3MmUxMGFjM2Ui
Ci0gICAgIjJiODg4OTdlMDUyNGM4NDYxODQ3NTQ4YmQyZGZmYTJjMGFlNjAwMDgwMDJhMDAwNGZm
ZmZmZmZmIgotKQotU0hPUlRfU0VSVkVSX0VOQ1JZUFRFRF9QQUNLRVQgPSBiaW5hc2NpaS51bmhl
eGxpZnkoCi0gICAgIjVkYjAxZmQyNGE1ODZhOWNmMzNkZWMwOTRhYWVjNmQ2YjRiN2E1ZTE1ZjVh
M2YwNWQwNmNmMWFkMDM1NWMxOWQiCi0gICAgImNjZTA4MDdlZWNmN2JmMWM4NDRhNjZlMWVjZDFm
NzRiMmEyZDY5YmZkMjVkMjE3ODMzZWRkOTczMjQ2NTk3YmQiCi0gICAgIjUxMDdlYTE1Y2IxZTIx
MDA0NTM5NmFmYTYwMmZlMjM0MzJmNGFiMjRjZTI1MWIiCi0pCi0KLQotY2xhc3MgQ3J5cHRvVGVz
dChUZXN0Q2FzZSk6Ci0gICAgIiIiCi0gICAgVGVzdCB2ZWN0b3JzIGZyb206Ci0KLSAgICBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1xdWljLXRscy0xOCNhcHBlbmRpeC1B
Ci0gICAgIiIiCi0KLSAgICBkZWYgY3JlYXRlX2NyeXB0byhzZWxmLCBpc19jbGllbnQpOgotICAg
ICAgICBwYWlyID0gQ3J5cHRvUGFpcigpCi0gICAgICAgIHBhaXIuc2V0dXBfaW5pdGlhbCgKLSAg
ICAgICAgICAgIGNpZD1iaW5hc2NpaS51bmhleGxpZnkoIjgzOTRjOGYwM2U1MTU3MDgiKSwKLSAg
ICAgICAgICAgIGlzX2NsaWVudD1pc19jbGllbnQsCi0gICAgICAgICAgICB2ZXJzaW9uPVBST1RP
Q09MX1ZFUlNJT04sCi0gICAgICAgICkKLSAgICAgICAgcmV0dXJuIHBhaXIKLQotICAgIGRlZiB0
ZXN0X2Rlcml2ZV9rZXlfaXZfaHAoc2VsZik6Ci0gICAgICAgICMgY2xpZW50Ci0gICAgICAgIHNl
Y3JldCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICI4YTM1MTVhMTRhZTNjMzFi
OWMyZDZkNWJjNTg1MzhjYTVjZDJiYWExMTkwODcxNDNlNjA4ODc0MjhkY2I1MmY2IgotICAgICAg
ICApCi0gICAgICAgIGtleSwgaXYsIGhwID0gZGVyaXZlX2tleV9pdl9ocChJTklUSUFMX0NJUEhF
Ul9TVUlURSwgc2VjcmV0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGtleSwgYmluYXNjaWku
dW5oZXhsaWZ5KCI5OGIwZDdlNWU3YTQwMmM2N2MzM2YzNTBmYTY1ZWE1NCIpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGl2LCBiaW5hc2NpaS51bmhleGxpZnkoIjE5ZTk0Mzg3ODA1ZWIwYjQ2
YzAzYTc4OCIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhwLCBiaW5hc2NpaS51bmhleGxp
ZnkoIjBlZGQ5ODJhNmFjNTI3ZjJlZGRjYmI3MzQ4ZGVhNWQ3IikpCi0KLSAgICAgICAgIyBzZXJ2
ZXIKLSAgICAgICAgc2VjcmV0ID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgIjQ3
YjJlYWVhNmMyNjZlMzJjMDY5N2E5ZTJhODk4YmRmNWM0ZmIzZTVhYzM0ZjBlNTQ5YmYyYzU4NTgx
YTM4MTEiCi0gICAgICAgICkKLSAgICAgICAga2V5LCBpdiwgaHAgPSBkZXJpdmVfa2V5X2l2X2hw
KElOSVRJQUxfQ0lQSEVSX1NVSVRFLCBzZWNyZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
a2V5LCBiaW5hc2NpaS51bmhleGxpZnkoIjlhOGJlOTAyYTliZGQ5MWQxNjA2NGNhMTE4MDQ1ZmI0
IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXYsIGJpbmFzY2lpLnVuaGV4bGlmeSgiMGE4
MjA4NmQzMjIwNWJhMjIyNDFkOGRjIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaHAsIGJp
bmFzY2lpLnVuaGV4bGlmeSgiOTRiOTQ1MmQyYjNjN2M3ZjZkYTdmZGQ4NTkzNTM3ZmQiKSkKLQot
ICAgIEBza2lwSWYoImNoYWNoYTIwIiBpbiBTS0lQX1RFU1RTLCAiU2tpcHBpbmcgY2hhY2hhMjAg
dGVzdHMiKQotICAgIGRlZiB0ZXN0X2RlY3J5cHRfY2hhY2hhMjAoc2VsZik6Ci0gICAgICAgIHBh
aXIgPSBDcnlwdG9QYWlyKCkKLSAgICAgICAgcGFpci5yZWN2LnNldHVwKAotICAgICAgICAgICAg
Y2lwaGVyX3N1aXRlPUNpcGhlclN1aXRlLkNIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAg
ICAgICAgIHNlY3JldD1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgImI0Mjc3
MmRmMzNjOTcxOWEzMjgyMGQzMDJhYTY2NGQwODBkN2Y1ZWE3YTcxYTMzMGY4Nzg2NGNiMjg5YWU4
YzAiCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgdmVyc2lvbj1QUk9UT0NPTF9WRVJTSU9O
LAotICAgICAgICApCi0KLSAgICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBwYWNr
ZXRfbnVtYmVyID0gcGFpci5kZWNyeXB0X3BhY2tldCgKLSAgICAgICAgICAgIENIQUNIQTIwX0NM
SUVOVF9FTkNSWVBURURfUEFDS0VULCAyNSwgMAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocGxhaW5faGVhZGVyLCBDSEFDSEEyMF9DTElFTlRfUExBSU5fSEVBREVSKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBsYWluX3BheWxvYWQsIENIQUNIQTIwX0NMSUVOVF9QTEFJ
Tl9QQVlMT0FEKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhY2tldF9udW1iZXIsIENIQUNI
QTIwX0NMSUVOVF9QQUNLRVRfTlVNQkVSKQotCi0gICAgZGVmIHRlc3RfZGVjcnlwdF9sb25nX2Ns
aWVudChzZWxmKToKLSAgICAgICAgcGFpciA9IHNlbGYuY3JlYXRlX2NyeXB0byhpc19jbGllbnQ9
RmFsc2UpCi0KLSAgICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBwYWNrZXRfbnVt
YmVyID0gcGFpci5kZWNyeXB0X3BhY2tldCgKLSAgICAgICAgICAgIExPTkdfQ0xJRU5UX0VOQ1JZ
UFRFRF9QQUNLRVQsIDE4LCAwCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
bGFpbl9oZWFkZXIsIExPTkdfQ0xJRU5UX1BMQUlOX0hFQURFUikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwbGFpbl9wYXlsb2FkLCBMT05HX0NMSUVOVF9QTEFJTl9QQVlMT0FEKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBhY2tldF9udW1iZXIsIExPTkdfQ0xJRU5UX1BBQ0tFVF9OVU1C
RVIpCi0KLSAgICBkZWYgdGVzdF9kZWNyeXB0X2xvbmdfc2VydmVyKHNlbGYpOgotICAgICAgICBw
YWlyID0gc2VsZi5jcmVhdGVfY3J5cHRvKGlzX2NsaWVudD1UcnVlKQotCi0gICAgICAgIHBsYWlu
X2hlYWRlciwgcGxhaW5fcGF5bG9hZCwgcGFja2V0X251bWJlciA9IHBhaXIuZGVjcnlwdF9wYWNr
ZXQoCi0gICAgICAgICAgICBMT05HX1NFUlZFUl9FTkNSWVBURURfUEFDS0VULCAxOCwgMAotICAg
ICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGxhaW5faGVhZGVyLCBMT05HX1NFUlZF
Ul9QTEFJTl9IRUFERVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGxhaW5fcGF5bG9hZCwg
TE9OR19TRVJWRVJfUExBSU5fUEFZTE9BRCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWNr
ZXRfbnVtYmVyLCBMT05HX1NFUlZFUl9QQUNLRVRfTlVNQkVSKQotCi0gICAgZGVmIHRlc3RfZGVj
cnlwdF9ub19rZXkoc2VsZik6Ci0gICAgICAgIHBhaXIgPSBDcnlwdG9QYWlyKCkKLSAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlcyhDcnlwdG9FcnJvcik6Ci0gICAgICAgICAgICBwYWlyLmRl
Y3J5cHRfcGFja2V0KExPTkdfU0VSVkVSX0VOQ1JZUFRFRF9QQUNLRVQsIDE4LCAwKQotCi0gICAg
ZGVmIHRlc3RfZGVjcnlwdF9zaG9ydF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHBhaXIgPSBDcnlw
dG9QYWlyKCkKLSAgICAgICAgcGFpci5yZWN2LnNldHVwKAotICAgICAgICAgICAgY2lwaGVyX3N1
aXRlPUlOSVRJQUxfQ0lQSEVSX1NVSVRFLAotICAgICAgICAgICAgc2VjcmV0PWJpbmFzY2lpLnVu
aGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiMzEwMjgxOTc3Y2I4YzFjMWMxMjEyZDc4NGIyZDI5
ZTVhNjQ4OWUyM2RlODQ4ZDM3MGE1YTJmOTUzN2YzYTEwMCIKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICB2ZXJzaW9uPVBST1RPQ09MX1ZFUlNJT04sCi0gICAgICAgICkKLQotICAgICAgICBw
bGFpbl9oZWFkZXIsIHBsYWluX3BheWxvYWQsIHBhY2tldF9udW1iZXIgPSBwYWlyLmRlY3J5cHRf
cGFja2V0KAotICAgICAgICAgICAgU0hPUlRfU0VSVkVSX0VOQ1JZUFRFRF9QQUNLRVQsIDksIDAK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBsYWluX2hlYWRlciwgU0hPUlRf
U0VSVkVSX1BMQUlOX0hFQURFUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwbGFpbl9wYXls
b2FkLCBTSE9SVF9TRVJWRVJfUExBSU5fUEFZTE9BRCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYWNrZXRfbnVtYmVyLCBTSE9SVF9TRVJWRVJfUEFDS0VUX05VTUJFUikKLQotICAgIEBza2lw
SWYoImNoYWNoYTIwIiBpbiBTS0lQX1RFU1RTLCAiU2tpcHBpbmcgY2hhY2hhMjAgdGVzdHMiKQot
ICAgIGRlZiB0ZXN0X2VuY3J5cHRfY2hhY2hhMjAoc2VsZik6Ci0gICAgICAgIHBhaXIgPSBDcnlw
dG9QYWlyKCkKLSAgICAgICAgcGFpci5zZW5kLnNldHVwKAotICAgICAgICAgICAgY2lwaGVyX3N1
aXRlPUNpcGhlclN1aXRlLkNIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAgICAgICAgIHNl
Y3JldD1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgImI0Mjc3MmRmMzNjOTcx
OWEzMjgyMGQzMDJhYTY2NGQwODBkN2Y1ZWE3YTcxYTMzMGY4Nzg2NGNiMjg5YWU4YzAiCi0gICAg
ICAgICAgICApLAotICAgICAgICAgICAgdmVyc2lvbj1QUk9UT0NPTF9WRVJTSU9OLAotICAgICAg
ICApCi0KLSAgICAgICAgcGFja2V0ID0gcGFpci5lbmNyeXB0X3BhY2tldCgKLSAgICAgICAgICAg
IENIQUNIQTIwX0NMSUVOVF9QTEFJTl9IRUFERVIsCi0gICAgICAgICAgICBDSEFDSEEyMF9DTElF
TlRfUExBSU5fUEFZTE9BRCwKLSAgICAgICAgICAgIENIQUNIQTIwX0NMSUVOVF9QQUNLRVRfTlVN
QkVSLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2V0LCBDSEFDSEEy
MF9DTElFTlRfRU5DUllQVEVEX1BBQ0tFVCkKLQotICAgIGRlZiB0ZXN0X2VuY3J5cHRfbG9uZ19j
bGllbnQoc2VsZik6Ci0gICAgICAgIHBhaXIgPSBzZWxmLmNyZWF0ZV9jcnlwdG8oaXNfY2xpZW50
PVRydWUpCi0KLSAgICAgICAgcGFja2V0ID0gcGFpci5lbmNyeXB0X3BhY2tldCgKLSAgICAgICAg
ICAgIExPTkdfQ0xJRU5UX1BMQUlOX0hFQURFUiwKLSAgICAgICAgICAgIExPTkdfQ0xJRU5UX1BM
QUlOX1BBWUxPQUQsCi0gICAgICAgICAgICBMT05HX0NMSUVOVF9QQUNLRVRfTlVNQkVSLAotICAg
ICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2V0LCBMT05HX0NMSUVOVF9FTkNS
WVBURURfUEFDS0VUKQotCi0gICAgZGVmIHRlc3RfZW5jcnlwdF9sb25nX3NlcnZlcihzZWxmKToK
LSAgICAgICAgcGFpciA9IHNlbGYuY3JlYXRlX2NyeXB0byhpc19jbGllbnQ9RmFsc2UpCi0KLSAg
ICAgICAgcGFja2V0ID0gcGFpci5lbmNyeXB0X3BhY2tldCgKLSAgICAgICAgICAgIExPTkdfU0VS
VkVSX1BMQUlOX0hFQURFUiwKLSAgICAgICAgICAgIExPTkdfU0VSVkVSX1BMQUlOX1BBWUxPQUQs
Ci0gICAgICAgICAgICBMT05HX1NFUlZFUl9QQUNLRVRfTlVNQkVSLAotICAgICAgICApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2V0LCBMT05HX1NFUlZFUl9FTkNSWVBURURfUEFDS0VU
KQotCi0gICAgZGVmIHRlc3RfZW5jcnlwdF9zaG9ydF9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHBh
aXIgPSBDcnlwdG9QYWlyKCkKLSAgICAgICAgcGFpci5zZW5kLnNldHVwKAotICAgICAgICAgICAg
Y2lwaGVyX3N1aXRlPUlOSVRJQUxfQ0lQSEVSX1NVSVRFLAotICAgICAgICAgICAgc2VjcmV0PWJp
bmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiMzEwMjgxOTc3Y2I4YzFjMWMxMjEy
ZDc4NGIyZDI5ZTVhNjQ4OWUyM2RlODQ4ZDM3MGE1YTJmOTUzN2YzYTEwMCIKLSAgICAgICAgICAg
ICksCi0gICAgICAgICAgICB2ZXJzaW9uPVBST1RPQ09MX1ZFUlNJT04sCi0gICAgICAgICkKLQot
ICAgICAgICBwYWNrZXQgPSBwYWlyLmVuY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgU0hPUlRf
U0VSVkVSX1BMQUlOX0hFQURFUiwKLSAgICAgICAgICAgIFNIT1JUX1NFUlZFUl9QTEFJTl9QQVlM
T0FELAotICAgICAgICAgICAgU0hPUlRfU0VSVkVSX1BBQ0tFVF9OVU1CRVIsCi0gICAgICAgICkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWNrZXQsIFNIT1JUX1NFUlZFUl9FTkNSWVBURURf
UEFDS0VUKQotCi0gICAgZGVmIHRlc3Rfa2V5X3VwZGF0ZShzZWxmKToKLSAgICAgICAgcGFpcjEg
PSBzZWxmLmNyZWF0ZV9jcnlwdG8oaXNfY2xpZW50PVRydWUpCi0gICAgICAgIHBhaXIyID0gc2Vs
Zi5jcmVhdGVfY3J5cHRvKGlzX2NsaWVudD1GYWxzZSkKLQotICAgICAgICBkZWYgY3JlYXRlX3Bh
Y2tldChrZXlfcGhhc2UsIHBhY2tldF9udW1iZXIpOgotICAgICAgICAgICAgYnVmID0gQnVmZmVy
KGNhcGFjaXR5PTEwMCkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KFBBQ0tFVF9GSVhFRF9C
SVQgfCBrZXlfcGhhc2UgPDwgMiB8IDEpCi0gICAgICAgICAgICBidWYucHVzaF9ieXRlcyhiaW5h
c2NpaS51bmhleGxpZnkoIjgzOTRjOGYwM2U1MTU3MDgiKSkKLSAgICAgICAgICAgIGJ1Zi5wdXNo
X3VpbnQxNihwYWNrZXRfbnVtYmVyKQotICAgICAgICAgICAgcmV0dXJuIGJ1Zi5kYXRhLCBiIlx4
MDBceDAxXHgwMlx4MDMiCi0KLSAgICAgICAgZGVmIHNlbmQoc2VuZGVyLCByZWNlaXZlciwgcGFj
a2V0X251bWJlcj0wKToKLSAgICAgICAgICAgIHBsYWluX2hlYWRlciwgcGxhaW5fcGF5bG9hZCA9
IGNyZWF0ZV9wYWNrZXQoCi0gICAgICAgICAgICAgICAga2V5X3BoYXNlPXNlbmRlci5rZXlfcGhh
c2UsIHBhY2tldF9udW1iZXI9cGFja2V0X251bWJlcgotICAgICAgICAgICAgKQotICAgICAgICAg
ICAgZW5jcnlwdGVkID0gc2VuZGVyLmVuY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgICAgIHBs
YWluX2hlYWRlciwgcGxhaW5fcGF5bG9hZCwgcGFja2V0X251bWJlcgotICAgICAgICAgICAgKQot
ICAgICAgICAgICAgcmVjb3ZfaGVhZGVyLCByZWNvdl9wYXlsb2FkLCByZWNvdl9wYWNrZXRfbnVt
YmVyID0gcmVjZWl2ZXIuZGVjcnlwdF9wYWNrZXQoCi0gICAgICAgICAgICAgICAgZW5jcnlwdGVk
LCBsZW4ocGxhaW5faGVhZGVyKSAtIDIsIDAKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVjb3ZfaGVhZGVyLCBwbGFpbl9oZWFkZXIpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlY292X3BheWxvYWQsIHBsYWluX3BheWxvYWQpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlY292X3BhY2tldF9udW1iZXIsIHBhY2tldF9udW1iZXIpCi0K
LSAgICAgICAgIyByb3VuZHRyaXAKLSAgICAgICAgc2VuZChwYWlyMSwgcGFpcjIsIDApCi0gICAg
ICAgIHNlbmQocGFpcjIsIHBhaXIxLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhaXIx
LmtleV9waGFzZSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWlyMi5rZXlfcGhhc2Us
IDApCi0KLSAgICAgICAgIyBwYWlyIDEga2V5IHVwZGF0ZQotICAgICAgICBwYWlyMS51cGRhdGVf
a2V5KCkKLQotICAgICAgICAjIHJvdW5kdHJpcAotICAgICAgICBzZW5kKHBhaXIxLCBwYWlyMiwg
MSkKLSAgICAgICAgc2VuZChwYWlyMiwgcGFpcjEsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocGFpcjEua2V5X3BoYXNlLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhaXIyLmtl
eV9waGFzZSwgMSkKLQotICAgICAgICAjIHBhaXIgMiBrZXkgdXBkYXRlCi0gICAgICAgIHBhaXIy
LnVwZGF0ZV9rZXkoKQotCi0gICAgICAgICMgcm91bmR0cmlwCi0gICAgICAgIHNlbmQocGFpcjIs
IHBhaXIxLCAyKQotICAgICAgICBzZW5kKHBhaXIxLCBwYWlyMiwgMikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwYWlyMS5rZXlfcGhhc2UsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGFpcjIua2V5X3BoYXNlLCAwKQotCi0gICAgICAgICMgcGFpciAxIGtleSAtIHVwZGF0ZSwgYnV0
IG5vdCBuZXh0IHRvIHNlbmQKLSAgICAgICAgcGFpcjEudXBkYXRlX2tleSgpCi0KLSAgICAgICAg
IyByb3VuZHRyaXAKLSAgICAgICAgc2VuZChwYWlyMiwgcGFpcjEsIDMpCi0gICAgICAgIHNlbmQo
cGFpcjEsIHBhaXIyLCAzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhaXIxLmtleV9waGFz
ZSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWlyMi5rZXlfcGhhc2UsIDEpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9oMC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0
cy90ZXN0X2gwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWNjZjY1ZTExNzQ5
OGNmZGQ1YjA3YmVkZTFmMDc2M2QxY2EyMGZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2gwLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCi0K
LWZyb20gYWlvcXVpYy5oMC5jb25uZWN0aW9uIGltcG9ydCBIMF9BTFBOLCBIMENvbm5lY3Rpb24K
LWZyb20gYWlvcXVpYy5oMy5ldmVudHMgaW1wb3J0IERhdGFSZWNlaXZlZCwgSGVhZGVyc1JlY2Vp
dmVkCi0KLWZyb20gLnRlc3RfY29ubmVjdGlvbiBpbXBvcnQgY2xpZW50X2FuZF9zZXJ2ZXIsIHRy
YW5zZmVyCi0KLQotZGVmIGgwX2NsaWVudF9hbmRfc2VydmVyKCk6Ci0gICAgcmV0dXJuIGNsaWVu
dF9hbmRfc2VydmVyKAotICAgICAgICBjbGllbnRfb3B0aW9ucz17ImFscG5fcHJvdG9jb2xzIjog
SDBfQUxQTn0sCi0gICAgICAgIHNlcnZlcl9vcHRpb25zPXsiYWxwbl9wcm90b2NvbHMiOiBIMF9B
TFBOfSwKLSAgICApCi0KLQotZGVmIGgwX3RyYW5zZmVyKHF1aWNfc2VuZGVyLCBoMF9yZWNlaXZl
cik6Ci0gICAgcXVpY19yZWNlaXZlciA9IGgwX3JlY2VpdmVyLl9xdWljCi0gICAgdHJhbnNmZXIo
cXVpY19zZW5kZXIsIHF1aWNfcmVjZWl2ZXIpCi0KLSAgICAjIHByb2Nlc3MgUVVJQyBldmVudHMK
LSAgICBodHRwX2V2ZW50cyA9IFtdCi0gICAgZXZlbnQgPSBxdWljX3JlY2VpdmVyLm5leHRfZXZl
bnQoKQotICAgIHdoaWxlIGV2ZW50IGlzIG5vdCBOb25lOgotICAgICAgICBodHRwX2V2ZW50cy5l
eHRlbmQoaDBfcmVjZWl2ZXIuaGFuZGxlX2V2ZW50KGV2ZW50KSkKLSAgICAgICAgZXZlbnQgPSBx
dWljX3JlY2VpdmVyLm5leHRfZXZlbnQoKQotICAgIHJldHVybiBodHRwX2V2ZW50cwotCi0KLWNs
YXNzIEgwQ29ubmVjdGlvblRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X2Nvbm5lY3Qoc2Vs
Zik6Ci0gICAgICAgIHdpdGggaDBfY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAocXVpY19jbGllbnQs
IHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgwX2NsaWVudCA9IEgwQ29ubmVjdGlvbihxdWlj
X2NsaWVudCkKLSAgICAgICAgICAgIGgwX3NlcnZlciA9IEgwQ29ubmVjdGlvbihxdWljX3NlcnZl
cikKLQotICAgICAgICAgICAgIyBzZW5kIHJlcXVlc3QKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9
IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICAgICAg
aDBfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFt
X2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAoYiI6
bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0
cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0Iiks
Ci0gICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGgwX2NsaWVudC5zZW5kX2RhdGEoc3RyZWFt
X2lkPXN0cmVhbV9pZCwgZGF0YT1iIiIsIGVuZF9zdHJlYW09VHJ1ZSkKLQotICAgICAgICAgICAg
IyByZWNlaXZlIHJlcXVlc3QKLSAgICAgICAgICAgIGV2ZW50cyA9IGgwX3RyYW5zZmVyKHF1aWNf
Y2xpZW50LCBoMF9zZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihldmVu
dHMpLCAyKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShldmVudHNb
MF0sIEhlYWRlcnNSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIGV2ZW50c1swXS5oZWFkZXJzLCBbKGIiOm1ldGhvZCIsIGIiR0VUIiksIChi
IjpwYXRoIiwgYiIvIildCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV2ZW50c1swXS5zdHJlYW1faWQsIHN0cmVhbV9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXZlbnRzWzBdLnN0cmVhbV9lbmRlZCwgRmFsc2UpCi0KLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1sxXSwgRGF0YVJlY2VpdmVkKSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzFdLmRhdGEsIGIiIikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzFdLnN0cmVhbV9pZCwgc3RyZWFtX2lkKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMV0uc3RyZWFtX2VuZGVkLCBUcnVlKQotCi0g
ICAgICAgICAgICAjIHNlbmQgcmVzcG9uc2UKLSAgICAgICAgICAgIGgwX3NlcnZlci5zZW5kX2hl
YWRlcnMoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAg
ICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiks
Ci0gICAgICAgICAgICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFy
c2V0PXV0Zi04IiksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIGgwX3NlcnZlci5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVh
bV9pZCwKLSAgICAgICAgICAgICAgICBkYXRhPWIiPGh0bWw+PGJvZHk+aGVsbG88L2JvZHk+PC9o
dG1sPiIsCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQot
Ci0gICAgICAgICAgICAjIHJlY2VpdmUgcmVzcG9uc2UKLSAgICAgICAgICAgIGV2ZW50cyA9IGgw
X3RyYW5zZmVyKHF1aWNfc2VydmVyLCBoMF9jbGllbnQpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihldmVudHMpLCAyKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNp
bnN0YW5jZShldmVudHNbMF0sIEhlYWRlcnNSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV2ZW50c1swXS5oZWFkZXJzLCBbXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXZlbnRzWzBdLnN0cmVhbV9pZCwgc3RyZWFtX2lkKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChldmVudHNbMF0uc3RyZWFtX2VuZGVkLCBGYWxzZSkKLQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZXZlbnRzWzFdLCBEYXRhUmVjZWl2ZWQpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMV0uZGF0YSwgYiI8aHRtbD48Ym9keT5o
ZWxsbzwvYm9keT48L2h0bWw+IikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRz
WzFdLnN0cmVhbV9pZCwgc3RyZWFtX2lkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
dmVudHNbMV0uc3RyZWFtX2VuZGVkLCBUcnVlKQotCi0gICAgZGVmIHRlc3RfaGVhZGVyc19vbmx5
KHNlbGYpOgotICAgICAgICB3aXRoIGgwX2NsaWVudF9hbmRfc2VydmVyKCkgYXMgKHF1aWNfY2xp
ZW50LCBxdWljX3NlcnZlcik6Ci0gICAgICAgICAgICBoMF9jbGllbnQgPSBIMENvbm5lY3Rpb24o
cXVpY19jbGllbnQpCi0gICAgICAgICAgICBoMF9zZXJ2ZXIgPSBIMENvbm5lY3Rpb24ocXVpY19z
ZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgc2VuZCByZXF1ZXN0Ci0gICAgICAgICAgICBzdHJlYW1f
aWQgPSBxdWljX2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAg
ICAgIGgwX2NsaWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0
cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAg
KGIiOm1ldGhvZCIsIGIiSEVBRCIpLAotICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwg
YiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhv
c3QiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkK
LQotICAgICAgICAgICAgIyByZWNlaXZlIHJlcXVlc3QKLSAgICAgICAgICAgIGV2ZW50cyA9IGgw
X3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoMF9zZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihldmVudHMpLCAyKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNp
bnN0YW5jZShldmVudHNbMF0sIEhlYWRlcnNSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGV2ZW50c1swXS5oZWFkZXJzLCBbKGIiOm1ldGhv
ZCIsIGIiSEVBRCIpLCAoYiI6cGF0aCIsIGIiLyIpXQotICAgICAgICAgICAgKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMF0uc3RyZWFtX2lkLCBzdHJlYW1faWQpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1swXS5zdHJlYW1fZW5kZWQsIEZhbHNlKQot
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShldmVudHNbMV0sIERhdGFS
ZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1sxXS5kYXRhLCBi
IiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1sxXS5zdHJlYW1faWQsIHN0
cmVhbV9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzFdLnN0cmVhbV9l
bmRlZCwgVHJ1ZSkKLQotICAgICAgICAgICAgIyBzZW5kIHJlc3BvbnNlCi0gICAgICAgICAgICBo
MF9zZXJ2ZXIuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1f
aWQsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjpz
dGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBi
InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAj
IHJlY2VpdmUgcmVzcG9uc2UKLSAgICAgICAgICAgIGV2ZW50cyA9IGgwX3RyYW5zZmVyKHF1aWNf
c2VydmVyLCBoMF9jbGllbnQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihldmVu
dHMpLCAyKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShldmVudHNb
MF0sIEhlYWRlcnNSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50
c1swXS5oZWFkZXJzLCBbXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzBd
LnN0cmVhbV9pZCwgc3RyZWFtX2lkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVu
dHNbMF0uc3RyZWFtX2VuZGVkLCBGYWxzZSkKLQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGlzaW5zdGFuY2UoZXZlbnRzWzFdLCBEYXRhUmVjZWl2ZWQpKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChldmVudHNbMV0uZGF0YSwgYiIiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChldmVudHNbMV0uc3RyZWFtX2lkLCBzdHJlYW1faWQpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV2ZW50c1sxXS5zdHJlYW1fZW5kZWQsIFRydWUpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvdGVzdF9oMy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2gzLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTU1MDM5OWI0YTMwMDZmZGIwODZlMjMw
OTRmZTk4OThjNTQzMTc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2gzLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTI5MiArMCwwIEBACi1pbXBvcnQgYmluYXNjaWkKLWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RD
YXNlCi0KLWZyb20gYWlvcXVpYy5idWZmZXIgaW1wb3J0IGVuY29kZV91aW50X3ZhcgotZnJvbSBh
aW9xdWljLmgzLmNvbm5lY3Rpb24gaW1wb3J0ICgKLSAgICBIM19BTFBOLAotICAgIEVycm9yQ29k
ZSwKLSAgICBGcmFtZVR5cGUsCi0gICAgRnJhbWVVbmV4cGVjdGVkLAotICAgIEgzQ29ubmVjdGlv
biwKLSAgICBTdHJlYW1UeXBlLAotICAgIGVuY29kZV9mcmFtZSwKLSkKLWZyb20gYWlvcXVpYy5o
My5ldmVudHMgaW1wb3J0IERhdGFSZWNlaXZlZCwgSGVhZGVyc1JlY2VpdmVkLCBQdXNoUHJvbWlz
ZVJlY2VpdmVkCi1mcm9tIGFpb3F1aWMuaDMuZXhjZXB0aW9ucyBpbXBvcnQgTm9BdmFpbGFibGVQ
dXNoSURFcnJvcgotZnJvbSBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0Nv
bmZpZ3VyYXRpb24KLWZyb20gYWlvcXVpYy5xdWljLmV2ZW50cyBpbXBvcnQgU3RyZWFtRGF0YVJl
Y2VpdmVkCi1mcm9tIGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXIKLQotZnJv
bSAudGVzdF9jb25uZWN0aW9uIGltcG9ydCBjbGllbnRfYW5kX3NlcnZlciwgdHJhbnNmZXIKLQot
Ci1kZWYgaDNfY2xpZW50X2FuZF9zZXJ2ZXIoKToKLSAgICByZXR1cm4gY2xpZW50X2FuZF9zZXJ2
ZXIoCi0gICAgICAgIGNsaWVudF9vcHRpb25zPXsiYWxwbl9wcm90b2NvbHMiOiBIM19BTFBOfSwK
LSAgICAgICAgc2VydmVyX29wdGlvbnM9eyJhbHBuX3Byb3RvY29scyI6IEgzX0FMUE59LAotICAg
ICkKLQotCi1kZWYgaDNfdHJhbnNmZXIocXVpY19zZW5kZXIsIGgzX3JlY2VpdmVyKToKLSAgICBx
dWljX3JlY2VpdmVyID0gaDNfcmVjZWl2ZXIuX3F1aWMKLSAgICBpZiBoYXNhdHRyKHF1aWNfc2Vu
ZGVyLCAic3RyZWFtX3F1ZXVlIik6Ci0gICAgICAgIHF1aWNfcmVjZWl2ZXIuX2V2ZW50cy5leHRl
bmQocXVpY19zZW5kZXIuc3RyZWFtX3F1ZXVlKQotICAgICAgICBxdWljX3NlbmRlci5zdHJlYW1f
cXVldWUuY2xlYXIoKQotICAgIGVsc2U6Ci0gICAgICAgIHRyYW5zZmVyKHF1aWNfc2VuZGVyLCBx
dWljX3JlY2VpdmVyKQotCi0gICAgIyBwcm9jZXNzIFFVSUMgZXZlbnRzCi0gICAgaHR0cF9ldmVu
dHMgPSBbXQotICAgIGV2ZW50ID0gcXVpY19yZWNlaXZlci5uZXh0X2V2ZW50KCkKLSAgICB3aGls
ZSBldmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgaHR0cF9ldmVudHMuZXh0ZW5kKGgzX3JlY2Vp
dmVyLmhhbmRsZV9ldmVudChldmVudCkpCi0gICAgICAgIGV2ZW50ID0gcXVpY19yZWNlaXZlci5u
ZXh0X2V2ZW50KCkKLSAgICByZXR1cm4gaHR0cF9ldmVudHMKLQotCi1jbGFzcyBGYWtlUXVpY0Nv
bm5lY3Rpb246Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZ3VyYXRpb24pOgotICAgICAg
ICBzZWxmLmNsb3NlZCA9IE5vbmUKLSAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uID0gY29uZmln
dXJhdGlvbgotICAgICAgICBzZWxmLnN0cmVhbV9xdWV1ZSA9IFtdCi0gICAgICAgIHNlbGYuX2V2
ZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX25leHRfc3RyZWFtX2JpZGkgPSAwIGlmIGNvbmZpZ3Vy
YXRpb24uaXNfY2xpZW50IGVsc2UgMQotICAgICAgICBzZWxmLl9uZXh0X3N0cmVhbV91bmkgPSAy
IGlmIGNvbmZpZ3VyYXRpb24uaXNfY2xpZW50IGVsc2UgMwotICAgICAgICBzZWxmLl9xdWljX2xv
Z2dlciA9IFF1aWNMb2dnZXIoKS5zdGFydF90cmFjZSgKLSAgICAgICAgICAgIGlzX2NsaWVudD1j
b25maWd1cmF0aW9uLmlzX2NsaWVudCwgb2RjaWQ9YiIiCi0gICAgICAgICkKLQotICAgIGRlZiBj
bG9zZShzZWxmLCBlcnJvcl9jb2RlLCByZWFzb25fcGhyYXNlKToKLSAgICAgICAgc2VsZi5jbG9z
ZWQgPSAoZXJyb3JfY29kZSwgcmVhc29uX3BocmFzZSkKLQotICAgIGRlZiBnZXRfbmV4dF9hdmFp
bGFibGVfc3RyZWFtX2lkKHNlbGYsIGlzX3VuaWRpcmVjdGlvbmFsPUZhbHNlKToKLSAgICAgICAg
aWYgaXNfdW5pZGlyZWN0aW9uYWw6Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBzZWxmLl9uZXh0
X3N0cmVhbV91bmkKLSAgICAgICAgICAgIHNlbGYuX25leHRfc3RyZWFtX3VuaSArPSA0Ci0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBzZWxmLl9uZXh0X3N0cmVhbV9iaWRp
Ci0gICAgICAgICAgICBzZWxmLl9uZXh0X3N0cmVhbV9iaWRpICs9IDQKLSAgICAgICAgcmV0dXJu
IHN0cmVhbV9pZAotCi0gICAgZGVmIG5leHRfZXZlbnQoc2VsZik6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9ldmVudHMucG9wKDApCi0gICAgICAgIGV4Y2VwdCBJbmRl
eEVycm9yOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBzZW5kX3N0cmVhbV9k
YXRhKHNlbGYsIHN0cmVhbV9pZCwgZGF0YSwgZW5kX3N0cmVhbT1GYWxzZSk6Ci0gICAgICAgICMg
Y2hvcCB1cCBkYXRhIGludG8gaW5kaXZpZHVhbCBieXRlcwotICAgICAgICBmb3IgYyBpbiBkYXRh
OgotICAgICAgICAgICAgc2VsZi5zdHJlYW1fcXVldWUuYXBwZW5kKAotICAgICAgICAgICAgICAg
IFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1ieXRlcyhbY10p
LCBlbmRfc3RyZWFtPUZhbHNlLCBzdHJlYW1faWQ9c3RyZWFtX2lkCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgKQotICAgICAgICBpZiBlbmRfc3RyZWFtOgotICAgICAgICAgICAgc2Vs
Zi5zdHJlYW1fcXVldWUuYXBwZW5kKAotICAgICAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZl
ZChkYXRhPWIiIiwgZW5kX3N0cmVhbT1lbmRfc3RyZWFtLCBzdHJlYW1faWQ9c3RyZWFtX2lkKQot
ICAgICAgICAgICAgKQotCi0KLWNsYXNzIEgzQ29ubmVjdGlvblRlc3QoVGVzdENhc2UpOgotICAg
IG1heERpZmYgPSBOb25lCi0KLSAgICBkZWYgX21ha2VfcmVxdWVzdChzZWxmLCBoM19jbGllbnQs
IGgzX3NlcnZlcik6Ci0gICAgICAgIHF1aWNfY2xpZW50ID0gaDNfY2xpZW50Ll9xdWljCi0gICAg
ICAgIHF1aWNfc2VydmVyID0gaDNfc2VydmVyLl9xdWljCi0KLSAgICAgICAgIyBzZW5kIHJlcXVl
c3QKLSAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0
cmVhbV9pZCgpCi0gICAgICAgIGgzX2NsaWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICBz
dHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAg
ICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIi
aHR0cHMiKSwKLSAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwK
LSAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiLyIpLAotICAgICAgICAgICAgICAgIChiIngt
Zm9vIiwgYiJjbGllbnQiKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgaDNf
Y2xpZW50LnNlbmRfZGF0YShzdHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPWIiIiwgZW5kX3N0cmVh
bT1UcnVlKQotCi0gICAgICAgICMgcmVjZWl2ZSByZXF1ZXN0Ci0gICAgICAgIGV2ZW50cyA9IGgz
X3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19zZXJ2ZXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAg
SGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChi
IjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIi
OnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIngtZm9vIiwgYiJjbGll
bnQiKSwKLSAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPUZhbHNlLAot
ICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKGRhdGE9YiIi
LCBzdHJlYW1faWQ9c3RyZWFtX2lkLCBzdHJlYW1fZW5kZWQ9VHJ1ZSksCi0gICAgICAgICAgICBd
LAotICAgICAgICApCi0KLSAgICAgICAgIyBzZW5kIHJlc3BvbnNlCi0gICAgICAgIGgzX3NlcnZl
ci5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAg
ICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0g
ICAgICAgICAgICAgICAgKGIiY29udGVudC10eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm
LTgiKSwKLSAgICAgICAgICAgICAgICAoYiJ4LWZvbyIsIGIic2VydmVyIiksCi0gICAgICAgICAg
ICBdLAotICAgICAgICApCi0gICAgICAgIGgzX3NlcnZlci5zZW5kX2RhdGEoCi0gICAgICAgICAg
ICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgZGF0YT1iIjxodG1sPjxib2R5Pmhl
bGxvPC9ib2R5PjwvaHRtbD4iLAotICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAg
ICApCi0KLSAgICAgICAgIyByZWNlaXZlIHJlc3BvbnNlCi0gICAgICAgIGV2ZW50cyA9IGgzX3Ry
YW5zZmVyKHF1aWNfc2VydmVyLCBoM19jbGllbnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgSGVh
ZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgKGIiY29udGVudC10eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIChiIngtZm9vIiwgYiJzZXJ2ZXIiKSwKLSAgICAgICAgICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBkYXRhPWIi
PGh0bWw+PGJvZHk+aGVsbG88L2JvZHk+PC9odG1sPiIsCi0gICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVl
LAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICBk
ZWYgdGVzdF9oYW5kbGVfY29udHJvbF9mcmFtZV9oZWFkZXJzKHNlbGYpOgotICAgICAgICAiIiIK
LSAgICAgICAgV2Ugc2hvdWxkIG5vdCByZWNlaXZlIEhFQURFUlMgb24gdGhlIGNvbnRyb2wgc3Ry
ZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtlUXVpY0Nvbm5lY3Rp
b24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVu
dD1GYWxzZSkKLSAgICAgICAgKQotICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVp
Y19zZXJ2ZXIpCi0KLSAgICAgICAgaDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAg
IFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MiwKLSAgICAg
ICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLkNPTlRST0wpCi0gICAg
ICAgICAgICAgICAgKyBlbmNvZGVfZnJhbWUoRnJhbWVUeXBlLkhFQURFUlMsIGIiIiksCi0gICAg
ICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcXVpY19zZXJ2ZXIuY2xvc2Vk
LAotICAgICAgICAgICAgKEVycm9yQ29kZS5IVFRQX0ZSQU1FX1VORVhQRUNURUQsICJJbnZhbGlk
IGZyYW1lIHR5cGUgb24gY29udHJvbCBzdHJlYW0iKSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRl
c3RfaGFuZGxlX2NvbnRyb2xfZnJhbWVfbWF4X3B1c2hfaWRfZnJvbV9zZXJ2ZXIoc2VsZik6Ci0g
ICAgICAgICIiIgotICAgICAgICBBIGNsaWVudCBzaG91bGQgbm90IHJlY2VpdmUgTUFYX1BVU0hf
SUQgb24gdGhlIGNvbnRyb2wgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGll
bnQgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWND
b25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVu
dCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICBoM19jbGllbnQuaGFuZGxl
X2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAg
IHN0cmVhbV9pZD0zLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2RlX3VpbnRfdmFyKFN0cmVh
bVR5cGUuQ09OVFJPTCkKLSAgICAgICAgICAgICAgICArIGVuY29kZV9mcmFtZShGcmFtZVR5cGUu
TUFYX1BVU0hfSUQsIGIiIiksCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAg
ICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgcXVpY19jbGllbnQuY2xvc2VkLAotICAgICAgICAgICAgKEVycm9yQ29kZS5IVFRQX0ZS
QU1FX1VORVhQRUNURUQsICJTZXJ2ZXJzIG11c3Qgbm90IHNlbmQgTUFYX1BVU0hfSUQiKSwKLSAg
ICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX2NvbnRyb2xfc3RyZWFtX2R1cGxpY2F0ZShz
ZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIG11c3Qgb25seSByZWNlaXZlIGEgc2luZ2xl
IGNvbnRyb2wgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtl
UXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0
aW9uKGlzX2NsaWVudD1GYWxzZSkKLSAgICAgICAgKQotICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nv
bm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0KLSAgICAgICAgIyByZWNlaXZlIGEgZmlyc3QgY29udHJv
bCBzdHJlYW0KLSAgICAgICAgaDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0
cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MiwgZGF0YT1lbmNv
ZGVfdWludF92YXIoU3RyZWFtVHlwZS5DT05UUk9MKSwgZW5kX3N0cmVhbT1GYWxzZQotICAgICAg
ICAgICAgKQotICAgICAgICApCi0KLSAgICAgICAgIyByZWNlaXZlIGEgc2Vjb25kIGNvbnRyb2wg
c3RyZWFtCi0gICAgICAgIGgzX3NlcnZlci5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJl
YW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPTYsIGRhdGE9ZW5jb2Rl
X3VpbnRfdmFyKFN0cmVhbVR5cGUuQ09OVFJPTCksIGVuZF9zdHJlYW09RmFsc2UKLSAgICAgICAg
ICAgICkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
cXVpY19zZXJ2ZXIuY2xvc2VkLAotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIEVycm9y
Q29kZS5IVFRQX1NUUkVBTV9DUkVBVElPTl9FUlJPUiwKLSAgICAgICAgICAgICAgICAiT25seSBv
bmUgY29udHJvbCBzdHJlYW0gaXMgYWxsb3dlZCIsCi0gICAgICAgICAgICApLAotICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcHVzaF9mcmFtZV93cm9uZ19mcmFtZV90eXBlKHNlbGYp
OgotICAgICAgICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5vdCByZWNlaXZlZCBTRVRUSU5HUyBv
biBhIHB1c2ggc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGllbnQgPSBGYWtl
UXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0
aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVudCA9IEgzQ29u
bmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAot
ICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD0xNSwKLSAgICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLlBV
U0gpCi0gICAgICAgICAgICAgICAgKyBlbmNvZGVfdWludF92YXIoMCkgICMgcHVzaCBJRAotICAg
ICAgICAgICAgICAgICsgZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5TRVRUSU5HUywgYiIiKSwKLSAg
ICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5jbG9z
ZWQsCi0gICAgICAgICAgICAoRXJyb3JDb2RlLkhUVFBfRlJBTUVfVU5FWFBFQ1RFRCwgIkludmFs
aWQgZnJhbWUgdHlwZSBvbiBwdXNoIHN0cmVhbSIpLAotICAgICAgICApCi0KLSAgICBkZWYgdGVz
dF9oYW5kbGVfcXBhY2tfZGVjb2Rlcl9kdXBsaWNhdGUoc2VsZik6Ci0gICAgICAgICIiIgotICAg
ICAgICBXZSBtdXN0IG9ubHkgcmVjZWl2ZSBhIHNpbmdsZSBRUEFDSyBkZWNvZGVyIHN0cmVhbS4K
LSAgICAgICAgIiIiCi0gICAgICAgIHF1aWNfY2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAot
ICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1
ZSkKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGll
bnQpCi0KLSAgICAgICAgIyByZWNlaXZlIGEgZmlyc3QgZGVjb2RlciBzdHJlYW0KLSAgICAgICAg
aDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MTEsCi0gICAgICAgICAgICAgICAgZGF0YT1lbmNv
ZGVfdWludF92YXIoU3RyZWFtVHlwZS5RUEFDS19ERUNPREVSKSwKLSAgICAgICAgICAgICAgICBl
bmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICAgICAgIyBy
ZWNlaXZlIGEgc2Vjb25kIGRlY29kZXIgc3RyZWFtCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVf
ZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAg
c3RyZWFtX2lkPTE1LAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2RlX3VpbnRfdmFyKFN0cmVh
bVR5cGUuUVBBQ0tfREVDT0RFUiksCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgcXVpY19jbGllbnQuY2xvc2VkLAotICAgICAgICAgICAgKAotICAgICAgICAgICAg
ICAgIEVycm9yQ29kZS5IVFRQX1NUUkVBTV9DUkVBVElPTl9FUlJPUiwKLSAgICAgICAgICAgICAg
ICAiT25seSBvbmUgUVBBQ0sgZGVjb2RlciBzdHJlYW0gaXMgYWxsb3dlZCIsCi0gICAgICAgICAg
ICApLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcXBhY2tfZGVjb2Rlcl9zdHJl
YW1fZXJyb3Ioc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZWNlaXZpbmcgZ2FyYmFnZSBv
biB0aGUgUVBBQ0sgZGVjb2RlciBzdHJlYW0gdHJpZ2dlcnMgYW4gZXhjZXB0aW9uLgotICAgICAg
ICAiIiIKLSAgICAgICAgcXVpY19jbGllbnQgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAg
ICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAg
ICAgICApCi0gICAgICAgIGgzX2NsaWVudCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQot
ICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJl
Y2VpdmVkKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0xMSwKLSAgICAgICAgICAgICAgICBk
YXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLlFQQUNLX0RFQ09ERVIpICsgYiJceDAwIiwK
LSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAg
ICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5j
bG9zZWQsIChFcnJvckNvZGUuSFRUUF9RUEFDS19ERUNPREVSX1NUUkVBTV9FUlJPUiwgIiIpCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9xcGFja19lbmNvZGVyX2R1cGxpY2F0ZShz
ZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIG11c3Qgb25seSByZWNlaXZlIGEgc2luZ2xl
IFFQQUNLIGVuY29kZXIgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGllbnQg
PSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25m
aWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVudCA9
IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICAjIHJlY2VpdmUgYSBmaXJzdCBl
bmNvZGVyIHN0cmVhbQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAgICAg
ICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0xMSwKLSAg
ICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLlFQQUNLX0VOQ09E
RVIpLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0g
ICAgICAgICkKLQotICAgICAgICAjIHJlY2VpdmUgYSBzZWNvbmQgZW5jb2RlciBzdHJlYW0KLSAg
ICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNl
aXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MTUsCi0gICAgICAgICAgICAgICAgZGF0
YT1lbmNvZGVfdWludF92YXIoU3RyZWFtVHlwZS5RUEFDS19FTkNPREVSKSwKLSAgICAgICAgICAg
ICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5jbG9zZWQsCi0gICAg
ICAgICAgICAoCi0gICAgICAgICAgICAgICAgRXJyb3JDb2RlLkhUVFBfU1RSRUFNX0NSRUFUSU9O
X0VSUk9SLAotICAgICAgICAgICAgICAgICJPbmx5IG9uZSBRUEFDSyBlbmNvZGVyIHN0cmVhbSBp
cyBhbGxvd2VkIiwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hh
bmRsZV9xcGFja19lbmNvZGVyX3N0cmVhbV9lcnJvcihzZWxmKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIFJlY2VpdmluZyBnYXJiYWdlIG9uIHRoZSBRUEFDSyBlbmNvZGVyIHN0cmVhbSB0cmlnZ2Vy
cyBhbiBleGNlcHRpb24uCi0gICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VR
dWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRp
b24oaXNfY2xpZW50PVRydWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25u
ZWN0aW9uKHF1aWNfY2xpZW50KQotCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0g
ICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lk
PTcsCi0gICAgICAgICAgICAgICAgZGF0YT1lbmNvZGVfdWludF92YXIoU3RyZWFtVHlwZS5RUEFD
S19FTkNPREVSKSArIGIiXHgwMCIsCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgcXVpY19jbGllbnQuY2xvc2VkLCAoRXJyb3JDb2RlLkhUVFBfUVBBQ0tfRU5DT0RF
Ul9TVFJFQU1fRVJST1IsICIiKQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcmVx
dWVzdF9mcmFtZV9iYWRfaGVhZGVycyhzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIHNo
b3VsZCBub3QgcmVjZWl2ZSBIRUFERVJTIHdoaWNoIGNhbm5vdCBiZSBkZWNvZGVkLgotICAgICAg
ICAiIiIKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAg
ICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1GYWxzZSkKLSAg
ICAgICAgKQotICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0K
LSAgICAgICAgaDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwgZGF0YT1lbmNvZGVfZnJhbWUo
RnJhbWVUeXBlLkhFQURFUlMsIGIiIiksIGVuZF9zdHJlYW09RmFsc2UKLSAgICAgICAgICAgICkK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcXVpY19z
ZXJ2ZXIuY2xvc2VkLCAoRXJyb3JDb2RlLkhUVFBfUVBBQ0tfREVDT01QUkVTU0lPTl9GQUlMRUQs
ICIiKQotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcmVxdWVzdF9mcmFtZV9kYXRh
X2JlZm9yZV9oZWFkZXJzKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5v
dCByZWNlaXZlIERBVEEgYmVmb3JlIHJlY2VpdmluZyBoZWFkZXJzLgotICAgICAgICAiIiIKLSAg
ICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25m
aWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1GYWxzZSkKLSAgICAgICAgKQot
ICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0KLSAgICAgICAg
aDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwgZGF0YT1lbmNvZGVfZnJhbWUoRnJhbWVUeXBl
LkRBVEEsIGIiIiksIGVuZF9zdHJlYW09RmFsc2UKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcXVpY19zZXJ2ZXIuY2xvc2Vk
LAotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIEVycm9yQ29kZS5IVFRQX0ZSQU1FX1VO
RVhQRUNURUQsCi0gICAgICAgICAgICAgICAgIkRBVEEgZnJhbWUgaXMgbm90IGFsbG93ZWQgaW4g
dGhpcyBzdGF0ZSIsCi0gICAgICAgICAgICApLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9o
YW5kbGVfcmVxdWVzdF9mcmFtZV9oZWFkZXJzX2FmdGVyX3RyYWlsZXJzKHNlbGYpOgotICAgICAg
ICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5vdCByZWNlaXZlIEhFQURFUlMgYWZ0ZXIgcmVjZWl2
aW5nIHRyYWlsZXJzLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGllbnQgPSBGYWtlUXVp
Y0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9u
KGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIHF1aWNfc2VydmVyID0gRmFrZVF1
aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlv
bihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgICkKLQotICAgICAgICBoM19jbGllbnQgPSBIM0Nv
bm5lY3Rpb24ocXVpY19jbGllbnQpCi0gICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihx
dWljX3NlcnZlcikKLQotICAgICAgICBzdHJlYW1faWQgPSBxdWljX2NsaWVudC5nZXRfbmV4dF9h
dmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAg
ICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICBoZWFkZXJzPVsKLSAg
ICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAoYiI6
c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCBiImxv
Y2FsaG9zdCIpLAotICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAg
ICBdLAotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLCBoZWFkZXJzPVsoYiJ4LXNvbWUtdHJhaWxlciIsIGIi
Zm9vIildLCBlbmRfc3RyZWFtPVRydWUKLSAgICAgICAgKQotICAgICAgICBoM190cmFuc2Zlcihx
dWljX2NsaWVudCwgaDNfc2VydmVyKQotCi0gICAgICAgIGgzX3NlcnZlci5oYW5kbGVfZXZlbnQo
Ci0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFt
X2lkPTAsIGRhdGE9ZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5IRUFERVJTLCBiIiIpLCBlbmRfc3Ry
ZWFtPUZhbHNlCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIHF1aWNfc2VydmVyLmNsb3NlZCwKLSAgICAgICAgICAgICgKLSAg
ICAgICAgICAgICAgICBFcnJvckNvZGUuSFRUUF9GUkFNRV9VTkVYUEVDVEVELAotICAgICAgICAg
ICAgICAgICJIRUFERVJTIGZyYW1lIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc3RhdGUiLAotICAg
ICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3JlcXVlc3RfZnJh
bWVfcHVzaF9wcm9taXNlX2Zyb21fY2xpZW50KHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAg
QSBzZXJ2ZXIgc2hvdWxkIG5vdCByZWNlaXZlIFBVU0hfUFJPTUlTRSBvbiBhIHJlcXVlc3Qgc3Ry
ZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtlUXVpY0Nvbm5lY3Rp
b24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVu
dD1GYWxzZSkKLSAgICAgICAgKQotICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVp
Y19zZXJ2ZXIpCi0KLSAgICAgICAgaDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAg
IFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAg
ICAgICAgICAgICBkYXRhPWVuY29kZV9mcmFtZShGcmFtZVR5cGUuUFVTSF9QUk9NSVNFLCBiIiIp
LAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0gICAg
ICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHF1aWNfc2VydmVy
LmNsb3NlZCwKLSAgICAgICAgICAgIChFcnJvckNvZGUuSFRUUF9GUkFNRV9VTkVYUEVDVEVELCAi
Q2xpZW50cyBtdXN0IG5vdCBzZW5kIFBVU0hfUFJPTUlTRSIpLAotICAgICAgICApCi0KLSAgICBk
ZWYgdGVzdF9oYW5kbGVfcmVxdWVzdF9mcmFtZV93cm9uZ19mcmFtZV90eXBlKHNlbGYpOgotICAg
ICAgICBxdWljX3NlcnZlciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0g
ICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICBo
M19zZXJ2ZXIuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAot
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2Rl
X2ZyYW1lKEZyYW1lVHlwZS5TRVRUSU5HUywgYiIiKSwKLSAgICAgICAgICAgICAgICBlbmRfc3Ry
ZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBxdWljX3NlcnZlci5jbG9zZWQsCi0gICAgICAgICAgICAoRXJy
b3JDb2RlLkhUVFBfRlJBTUVfVU5FWFBFQ1RFRCwgIkludmFsaWQgZnJhbWUgdHlwZSBvbiByZXF1
ZXN0IHN0cmVhbSIpLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0KHNlbGYpOgot
ICAgICAgICB3aXRoIGgzX2NsaWVudF9hbmRfc2VydmVyKCkgYXMgKHF1aWNfY2xpZW50LCBxdWlj
X3NlcnZlcik6Ci0gICAgICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGll
bnQpCi0gICAgICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0K
LSAgICAgICAgICAgICMgbWFrZSBmaXJzdCByZXF1ZXN0Ci0gICAgICAgICAgICBzZWxmLl9tYWtl
X3JlcXVlc3QoaDNfY2xpZW50LCBoM19zZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgbWFrZSBzZWNv
bmQgcmVxdWVzdAotICAgICAgICAgICAgc2VsZi5fbWFrZV9yZXF1ZXN0KGgzX2NsaWVudCwgaDNf
c2VydmVyKQotCi0gICAgICAgICAgICAjIG1ha2UgdGhpcmQgcmVxdWVzdCAtPiBkeW5hbWljIHRh
YmxlCi0gICAgICAgICAgICBzZWxmLl9tYWtlX3JlcXVlc3QoaDNfY2xpZW50LCBoM19zZXJ2ZXIp
Ci0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2hlYWRlcnNfb25seShzZWxmKToKLSAgICAgICAgd2l0
aCBoM19jbGllbnRfYW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2ZXIpOgot
ICAgICAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotICAgICAg
ICAgICAgaDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgICAg
ICAjIHNlbmQgcmVxdWVzdAotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0
X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9o
ZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAg
ICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkhFQUQi
KSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAg
ICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAg
ICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAgICAgIChiIngtZm9vIiwg
YiJjbGllbnQiKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIGVuZF9zdHJl
YW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyByZWNlaXZlIHJlcXVlc3QK
LSAgICAgICAgICAgIGV2ZW50cyA9IGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19zZXJ2ZXIp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGV2ZW50cywK
LSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChiIjptZXRob2QiLCBiIkhFQUQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChi
IjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIieC1mb28i
LCBiImNsaWVudCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBz
dHJlYW1fZW5kZWQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgc2VuZCByZXNwb25zZQotICAgICAg
ICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9
c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAg
ICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiY29udGVudC10
eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKSwKLSAgICAgICAgICAgICAgICAgICAg
KGIieC1mb28iLCBiInNlcnZlciIpLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAg
ICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHJlY2Vp
dmUgcmVzcG9uc2UKLSAgICAgICAgICAgIGV2ZW50cyA9IGgzX3RyYW5zZmVyKHF1aWNfc2VydmVy
LCBoM19jbGllbnQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ICAgIGV2ZW50cywKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEhlYWRl
cnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIieC1mb28iLCBiInNlcnZlciIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9VHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICApCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X2ZyYWdtZW50ZWRfZnJhbWUoc2VsZik6Ci0gICAg
ICAgIHF1aWNfY2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29uZmln
dXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgKQotICAg
ICAgICBxdWljX3NlcnZlciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0K
LSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotICAgICAgICBo
M19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0KLSAgICAgICAgIyBzZW5kIHJl
cXVlc3QKLSAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRfYXZhaWxhYmxl
X3N0cmVhbV9pZCgpCi0gICAgICAgIGgzX2NsaWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAg
ICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAg
ICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIs
IGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3Qi
KSwKLSAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiLyIpLAotICAgICAgICAgICAgICAgIChi
IngtZm9vIiwgYiJjbGllbnQiKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAg
aDNfY2xpZW50LnNlbmRfZGF0YShzdHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPWIiaGVsbG8iLCBl
bmRfc3RyZWFtPVRydWUpCi0KLSAgICAgICAgIyByZWNlaXZlIHJlcXVlc3QKLSAgICAgICAgZXZl
bnRzID0gaDNfdHJhbnNmZXIocXVpY19jbGllbnQsIGgzX3NlcnZlcikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV2ZW50cywKLSAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9Wwot
ICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoYiI6cGF0aCIsIGIiLyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIieC1mb28i
LCBiImNsaWVudCIpLAotICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAg
ICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9
RmFsc2UsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQo
ZGF0YT1iImgiLCBzdHJlYW1faWQ9MCwgc3RyZWFtX2VuZGVkPUZhbHNlKSwKLSAgICAgICAgICAg
ICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iImUiLCBzdHJlYW1faWQ9MCwgc3RyZWFtX2VuZGVkPUZh
bHNlKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iImwiLCBzdHJlYW1faWQ9
MCwgc3RyZWFtX2VuZGVkPUZhbHNlKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0
YT1iImwiLCBzdHJlYW1faWQ9MCwgc3RyZWFtX2VuZGVkPUZhbHNlKSwKLSAgICAgICAgICAgICAg
ICBEYXRhUmVjZWl2ZWQoZGF0YT1iIm8iLCBzdHJlYW1faWQ9MCwgc3RyZWFtX2VuZGVkPUZhbHNl
KSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iIiIsIHN0cmVhbV9pZD0wLCBz
dHJlYW1fZW5kZWQ9VHJ1ZSksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAg
IyBzZW5kIHB1c2ggcHJvbWlzZQotICAgICAgICBwdXNoX3N0cmVhbV9pZCA9IGgzX3NlcnZlci5z
ZW5kX3B1c2hfcHJvbWlzZSgKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAg
ICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwK
LSAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAg
IChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgIChiIjpwYXRo
IiwgYiIvYXBwLnR4dCIpLAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHB1c2hfc3RyZWFtX2lkLCAxNSkKLQotICAgICAgICAjIHNlbmQgcmVzcG9u
c2UKLSAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9p
ZD1zdHJlYW1faWQsCi0gICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6
c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBiInRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIGVu
ZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICkKLSAgICAgICAgaDNfc2VydmVyLnNlbmRfZGF0YShz
dHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPWIiaHRtbCIsIGVuZF9zdHJlYW09VHJ1ZSkKLQotICAg
ICAgICAjIMKgZnVsZmlsbCBwdXNoIHByb21pc2UKLSAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVh
ZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1wdXNoX3N0cmVhbV9pZCwKLSAgICAgICAgICAg
IGhlYWRlcnM9WyhiIjpzdGF0dXMiLCBiIjIwMCIpLCAoYiJjb250ZW50LXR5cGUiLCBiInRleHQv
cGxhaW4iKV0sCi0gICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICApCi0gICAg
ICAgIGgzX3NlcnZlci5zZW5kX2RhdGEoc3RyZWFtX2lkPXB1c2hfc3RyZWFtX2lkLCBkYXRhPWIi
dGV4dCIsIGVuZF9zdHJlYW09VHJ1ZSkKLQotICAgICAgICAjIHJlY2VpdmUgcHVzaCBwcm9taXNl
IC8gcmVwb25zZQotICAgICAgICBldmVudHMgPSBoM190cmFuc2ZlcihxdWljX3NlcnZlciwgaDNf
Y2xpZW50KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgZXZlbnRzLAot
ICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIFB1c2hQcm9taXNlUmVjZWl2ZWQoCi0gICAg
ICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1l
dGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJo
dHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxo
b3N0IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiL2FwcC50eHQiKSwK
LSAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgcHVzaF9pZD0wLAot
ICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAg
ICksCi0gICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAg
ICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgKGIiY29udGVudC10eXBlIiwgYiJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiKSwKLSAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAg
ICAgICAgc3RyZWFtX2lkPTAsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxz
ZSwKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRh
PWIiaCIsIHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAg
IERhdGFSZWNlaXZlZChkYXRhPWIidCIsIHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2Up
LAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIibSIsIHN0cmVhbV9pZD0wLCBz
dHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIi
bCIsIHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERh
dGFSZWNlaXZlZChkYXRhPWIiIiwgc3RyZWFtX2lkPTAsIHN0cmVhbV9lbmRlZD1UcnVlKSwKLSAg
ICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGhlYWRl
cnM9WyhiIjpzdGF0dXMiLCBiIjIwMCIpLCAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvcGxhaW4i
KV0sCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0xNSwKLSAgICAgICAgICAgICAgICAg
ICAgc3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTAsCi0g
ICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iInQi
LCBzdHJlYW1faWQ9MTUsIHN0cmVhbV9lbmRlZD1GYWxzZSwgcHVzaF9pZD0wKSwKLSAgICAgICAg
ICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iImUiLCBzdHJlYW1faWQ9MTUsIHN0cmVhbV9lbmRl
ZD1GYWxzZSwgcHVzaF9pZD0wKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1i
IngiLCBzdHJlYW1faWQ9MTUsIHN0cmVhbV9lbmRlZD1GYWxzZSwgcHVzaF9pZD0wKSwKLSAgICAg
ICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iInQiLCBzdHJlYW1faWQ9MTUsIHN0cmVhbV9l
bmRlZD1GYWxzZSwgcHVzaF9pZD0wKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0
YT1iIiIsIHN0cmVhbV9pZD0xNSwgc3RyZWFtX2VuZGVkPVRydWUsIHB1c2hfaWQ9MCksCi0gICAg
ICAgICAgICBdLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X3dpdGhfc2VydmVy
X3B1c2goc2VsZik6Ci0gICAgICAgIHdpdGggaDNfY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAocXVp
Y19jbGllbnQsIHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgzX2NsaWVudCA9IEgzQ29ubmVj
dGlvbihxdWljX2NsaWVudCkKLSAgICAgICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihx
dWljX3NlcnZlcikKLQotICAgICAgICAgICAgIyBzZW5kIHJlcXVlc3QKLSAgICAgICAgICAgIHN0
cmVhbV9pZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAg
ICAgICAgICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1f
aWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAg
ICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVt
ZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9j
YWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgICMgcmVjZWl2ZSByZXF1ZXN0Ci0gICAgICAgICAgICBldmVudHMg
PSBoM190cmFuc2ZlcihxdWljX2NsaWVudCwgaDNfc2VydmVyKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwg
YiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRw
cyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCBiImxvY2Fs
aG9zdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVl
LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgIyBzZW5kIHB1c2ggcHJvbWlzZXMKLSAgICAgICAgICAgIHB1c2hf
c3RyZWFtX2lkX2NzcyA9IGgzX3NlcnZlci5zZW5kX3B1c2hfcHJvbWlzZSgKLSAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAg
ICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAg
ICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhv
cml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIv
YXBwLmNzcyIpLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICApCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHB1c2hfc3RyZWFtX2lkX2NzcywgMTUpCi0KLSAgICAgICAgICAg
IHB1c2hfc3RyZWFtX2lkX2pzID0gaDNfc2VydmVyLnNlbmRfcHVzaF9wcm9taXNlKAotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1b
Ci0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAg
ICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAoYiI6
YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnBhdGgi
LCBiIi9hcHAuanMiKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdXNoX3N0cmVhbV9pZF9qcywgMTkpCi0KLSAgICAgICAg
ICAgICMgc2VuZCByZXNwb25zZQotICAgICAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygK
LSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhl
YWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAg
ICAgICAgICAgICAgICAgKGIiY29udGVudC10eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm
LTgiKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFs
c2UsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBoM19zZXJ2ZXIuc2VuZF9kYXRhKAotICAg
ICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgZGF0YT1i
IjxodG1sPjxib2R5PmhlbGxvPC9ib2R5PjwvaHRtbD4iLAotICAgICAgICAgICAgICAgIGVuZF9z
dHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyDCoGZ1bGZpbGwgcHVz
aCBwcm9taXNlcwotICAgICAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAg
ICAgICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1faWRfY3NzLAotICAgICAgICAgICAgICAgIGhl
YWRlcnM9WyhiIjpzdGF0dXMiLCBiIjIwMCIpLCAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvY3Nz
IildLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0g
ICAgICAgICAgICBoM19zZXJ2ZXIuc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD1wdXNoX3N0cmVhbV9pZF9jc3MsCi0gICAgICAgICAgICAgICAgZGF0YT1iImJvZHkgeyBjb2xv
cjogcGluayB9IiwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgIGgzX3NlcnZlci5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAg
ICAgc3RyZWFtX2lkPXB1c2hfc3RyZWFtX2lkX2pzLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9
WwotICAgICAgICAgICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAg
ICAgICAgICAgKGIiY29udGVudC10eXBlIiwgYiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiksCi0g
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgaDNfc2VydmVyLnNlbmRfZGF0YSgKLSAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1faWRfanMsIGRhdGE9YiJhbGVydCgnaG93ZGVlJyk7
IiwgZW5kX3N0cmVhbT1UcnVlCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgcmVjZWl2
ZSBwdXNoIHByb21pc2VzLCByZXNwb25zZSBhbmQgcHVzaCByZXNwb25zZXMKLQotICAgICAgICAg
ICAgZXZlbnRzID0gaDNfdHJhbnNmZXIocXVpY19zZXJ2ZXIsIGgzX2NsaWVudCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXZlbnRzLAotICAgICAgICAg
ICAgICAgIFsKLSAgICAgICAgICAgICAgICAgICAgUHVzaFByb21pc2VSZWNlaXZlZCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpz
Y2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhv
cml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnBh
dGgiLCBiIi9hcHAuY3NzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaF9pZD0wLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAg
ICAgUHVzaFByb21pc2VSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9
WwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi9hcHAuanMiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAg
ICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAg
ICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiJjb250
ZW50LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZCgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGE9YiI8aHRtbD48Ym9keT5oZWxsbzwvYm9keT48L2h0bWw+IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwK
LSAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAg
ICAgICAgaGVhZGVycz1bKGIiOnN0YXR1cyIsIGIiMjAwIiksIChiImNvbnRlbnQtdHlwZSIsIGIi
dGV4dC9jc3MiKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1faWRfY3NzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhPWIiYm9keSB7IGNvbG9yOiBwaW5rIH0iLAotICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaF9pZD0wLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXB1c2hfc3Ry
ZWFtX2lkX2NzcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2
ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYiJjb250ZW50LXR5cGUiLCBiImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1faWRfanMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGE9YiJhbGVydCgnaG93ZGVlJyk7IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2hfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1wdXNo
X3N0cmVhbV9pZF9qcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVl
LAotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICApCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0X3dpdGhfc2VydmVyX3B1c2hfbWF4X3B1c2hfaWQo
c2VsZik6Ci0gICAgICAgIHdpdGggaDNfY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAocXVpY19jbGll
bnQsIHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgzX2NsaWVudCA9IEgzQ29ubmVjdGlvbihx
dWljX2NsaWVudCkKLSAgICAgICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihxdWljX3Nl
cnZlcikKLQotICAgICAgICAgICAgIyBzZW5kIHJlcXVlc3QKLSAgICAgICAgICAgIHN0cmVhbV9p
ZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICAg
ICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3Ry
ZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAo
YiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIi
aHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0
IiksCi0gICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAgICAgICAgICApCi0K
LSAgICAgICAgICAgICMgcmVjZWl2ZSByZXF1ZXN0Ci0gICAgICAgICAgICBldmVudHMgPSBoM190
cmFuc2ZlcihxdWljX2NsaWVudCwgaDNfc2VydmVyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICAgICAgWwotICAgICAg
ICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBo
ZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQi
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0
cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAotICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQot
ICAgICAgICAgICAgIyBzZW5kIHB1c2ggcHJvbWlzZXMKLSAgICAgICAgICAgIGZvciBpIGluIHJh
bmdlKDAsIDgpOgotICAgICAgICAgICAgICAgIGgzX3NlcnZlci5zZW5kX3B1c2hfcHJvbWlzZSgK
LSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAg
ICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJH
RVQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgIi97fS5jc3MiLmZvcm1hdChpKS5lbmNv
ZGUoImFzY2lpIikpLAotICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICkK
LQotICAgICAgICAgICAgIyBzZW5kIG9uZSB0b28gbWFueQotICAgICAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhOb0F2YWlsYWJsZVB1c2hJREVycm9yKToKLSAgICAgICAgICAgICAgICBo
M19zZXJ2ZXIuc2VuZF9wdXNoX3Byb21pc2UoCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAg
ICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOmF1
dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6cGF0
aCIsIGIiLzguY3NzIiksCi0gICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9kYXRhX2FmdGVyX3RyYWlsZXJzKHNlbGYpOgotICAgICAg
ICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5vdCBzZW5kIERBVEEgYWZ0ZXIgdHJhaWxlcnMuCi0g
ICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUp
Ci0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50
KQotCi0gICAgICAgIHN0cmVhbV9pZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9z
dHJlYW1faWQoKQotICAgICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAg
c3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAg
ICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBi
Imh0dHBzIiksCi0gICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0Iiks
Ci0gICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgIF0sCi0gICAg
ICAgICkKLSAgICAgICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVh
bV9pZD1zdHJlYW1faWQsIGhlYWRlcnM9WyhiIngtc29tZS10cmFpbGVyIiwgYiJmb28iKV0sIGVu
ZF9zdHJlYW09RmFsc2UKLSAgICAgICAgKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KEZyYW1lVW5leHBlY3RlZCk6Ci0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9kYXRhKHN0cmVh
bV9pZD1zdHJlYW1faWQsIGRhdGE9YiJoZWxsbyIsIGVuZF9zdHJlYW09RmFsc2UpCi0KLSAgICBk
ZWYgdGVzdF9zZW5kX2RhdGFfYmVmb3JlX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgICIiIgotICAg
ICAgICBXZSBzaG91bGQgbm90IHNlbmQgREFUQSBiZWZvcmUgaGVhZGVycy4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHF1aWNfY2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAotICAgICAgICAgICAg
Y29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAg
KQotICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0KLSAgICAg
ICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgp
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRnJhbWVVbmV4cGVjdGVkKToKLSAgICAg
ICAgICAgIGgzX2NsaWVudC5zZW5kX2RhdGEoc3RyZWFtX2lkPXN0cmVhbV9pZCwgZGF0YT1iImhl
bGxvIiwgZW5kX3N0cmVhbT1GYWxzZSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfaGVhZGVyc19hZnRl
cl90cmFpbGVycyhzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIHNob3VsZCBub3Qgc2Vu
ZCBIRUFERVJTIGFmdGVyIHRyYWlsZXJzLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGll
bnQgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWND
b25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVu
dCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICBzdHJlYW1faWQgPSBxdWlj
X2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgaDNfY2xpZW50
LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAg
ICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAg
ICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgIChi
IjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgIChiIjpwYXRoIiwg
YiIvIiksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVudC5zZW5k
X2hlYWRlcnMoCi0gICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLCBoZWFkZXJzPVsoYiJ4
LXNvbWUtdHJhaWxlciIsIGIiZm9vIildLCBlbmRfc3RyZWFtPUZhbHNlCi0gICAgICAgICkKLSAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhGcmFtZVVuZXhwZWN0ZWQpOgotICAgICAgICAg
ICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3Ry
ZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WyhiIngtb3RoZXItdHJhaWxlciIsIGIi
Zm9vIildLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9ibG9ja2VkX3N0cmVhbShzZWxmKToKLSAgICAgICAgcXVpY19jbGll
bnQgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWND
b25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVu
dCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICBoM19jbGllbnQuaGFuZGxl
X2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAg
IHN0cmVhbV9pZD0zLAotICAgICAgICAgICAgICAgIGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KAot
ICAgICAgICAgICAgICAgICAgICAiMDAwNDE3MDE1MDAwMDY4MDAyMDAwMDA3NDA2NDA5MTA0MGJj
YzAwMDAwMDBmYWNlYjAwYyIKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGVu
ZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xp
ZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChzdHJlYW1f
aWQ9NywgZGF0YT1iIlx4MDIiLCBlbmRfc3RyZWFtPUZhbHNlKQotICAgICAgICApCi0gICAgICAg
IGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQo
c3RyZWFtX2lkPTExLCBkYXRhPWIiXHgwMyIsIGVuZF9zdHJlYW09RmFsc2UpCi0gICAgICAgICkK
LSAgICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwgZGF0YT1iaW5hc2NpaS51bmhl
eGxpZnkoIjAxMDQwMjgwZDkxMCIpLCBlbmRfc3RyZWFtPUZhbHNlCi0gICAgICAgICAgICApCi0g
ICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0
cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAgICAg
ICAgICAgICBkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgIjAw
NDA4ZDc5NmY3NTIwNzI2NTYxNjM2ODY1NjQyMDZkNzY2NjczNzQyZTZlNjU3NDJjMjA3MjY1NjE2
MzY4MjAiCi0gICAgICAgICAgICAgICAgICAgICI3NDY4NjUyMDJmNjU2MzY4NmYyMDY1NmU2NDcw
NmY2OTZlNzQyMDY2NmY3MjIwNjE2ZTIwNjU2MzY4NmYyMDcyIgotICAgICAgICAgICAgICAgICAg
ICAiNjU3MzcwNmY2ZTczNjUyMDcxNzU2NTcyNzkyMDJmM2M2ZTc1NmQ2MjY1NzIzZTIwNjU2ZTY0
NzA2ZjY5NmU3NCIKLSAgICAgICAgICAgICAgICAgICAgIjczMjA2NjZmNzIyMDYxMjA3NjYxNzI2
OTYxNjI2YzY1MjA3MzY5N2E2NTIwNzI2NTczNzA2ZjZlNzM2NTIwNzciCi0gICAgICAgICAgICAg
ICAgICAgICI2OTc0NjgyMDcyNjE2ZTY0NmY2ZDIwNjI3OTc0NjU3MyIKLSAgICAgICAgICAgICAg
ICApLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaDNfY2xpZW50
LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD03LAotICAgICAgICAgICAgICAgICAgICBkYXRhPWJp
bmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgICAgICIzZmUxMDFjNjk2ZDA3
YWJlOTQxMDk0Y2I2ZDBhMDgwMTdkNDAzOTcxOTY2ZTMyY2E5OGI0NmYiCi0gICAgICAgICAgICAg
ICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAg
ICAgICAgICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAg
ICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAg
ICAgICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAoYiJkYXRlIiwgYiJNb24sIDIyIEp1bCAyMDE5IDA2OjMzOjMzIEdNVCIpLAotICAg
ICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBkYXRh
PSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGIieW91IHJlYWNoZWQgbXZmc3QubmV0LCByZWFj
aCB0aGUgL2VjaG8gZW5kcG9pbnQgZm9yIGFuICIKLSAgICAgICAgICAgICAgICAgICAgICAgIGIi
ZWNobyByZXNwb25zZSBxdWVyeSAvPG51bWJlcj4gZW5kcG9pbnRzIGZvciBhIHZhcmlhYmxlICIK
LSAgICAgICAgICAgICAgICAgICAgICAgIGIic2l6ZSByZXNwb25zZSB3aXRoIHJhbmRvbSBieXRl
cyIKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lk
PTAsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAotICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9ibG9ja2Vk
X3N0cmVhbV90cmFpbGVyKHNlbGYpOgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29u
bmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNf
Y2xpZW50PVRydWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9u
KHF1aWNfY2xpZW50KQotCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAg
ICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPTMsCi0g
ICAgICAgICAgICAgICAgZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAg
ICAgICIwMDA0MTcwMTUwMDAwNjgwMDIwMDAwMDc0MDY0MDkxMDQwYmNjMDAwMDAwMGZhY2ViMDBj
IgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50
KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKHN0cmVhbV9pZD03LCBkYXRhPWIiXHgw
MiIsIGVuZF9zdHJlYW09RmFsc2UpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50LmhhbmRs
ZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChzdHJlYW1faWQ9MTEsIGRh
dGE9YiJceDAzIiwgZW5kX3N0cmVhbT1GYWxzZSkKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAg
ICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2lkPTAsCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KAotICAg
ICAgICAgICAgICAgICAgICAgICAgIjAxMWIwMDAwZDk1Njk2ZDA3YWJlOTQxMDk0Y2I2ZDBhMDgw
MTdkNDAzOTcxOTY2ZTMyY2E5OGI0NmYiCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAg
ICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgKSwKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQo
Ci0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAg
KGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiJkYXRlIiwg
YiJNb24sIDIyIEp1bCAyMDE5IDA2OjMzOjMzIEdNVCIpLAotICAgICAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAgICAgICAgICAgICAgICAg
c3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaDNfY2xp
ZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0g
ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgICAgICBkYXRh
PWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgICAgICIwMDQwOGQ3OTZm
NzUyMDcyNjU2MTYzNjg2NTY0MjA2ZDc2NjY3Mzc0MmU2ZTY1NzQyYzIwNzI2NTYxNjM2ODIwIgot
ICAgICAgICAgICAgICAgICAgICAgICAgIjc0Njg2NTIwMmY2NTYzNjg2ZjIwNjU2ZTY0NzA2ZjY5
NmU3NDIwNjY2ZjcyMjA2MTZlMjA2NTYzNjg2ZjIwNzIiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAiNjU3MzcwNmY2ZTczNjUyMDcxNzU2NTcyNzkyMDJmM2M2ZTc1NmQ2MjY1NzIzZTIwNjU2ZTY0
NzA2ZjY5NmU3NCIKLSAgICAgICAgICAgICAgICAgICAgICAgICI3MzIwNjY2ZjcyMjA2MTIwNzY2
MTcyNjk2MTYyNmM2NTIwNzM2OTdhNjUyMDcyNjU3MzcwNmY2ZTczNjUyMDc3IgotICAgICAgICAg
ICAgICAgICAgICAgICAgIjY5NzQ2ODIwNzI2MTZlNjQ2ZjZkMjA2Mjc5NzQ2NTczIgotICAgICAg
ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAot
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBkYXRhPSgKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGIieW91IHJlYWNoZWQgbXZmc3QubmV0LCByZWFjaCB0aGUgL2Vj
aG8gZW5kcG9pbnQgZm9yIGFuICIKLSAgICAgICAgICAgICAgICAgICAgICAgIGIiZWNobyByZXNw
b25zZSBxdWVyeSAvPG51bWJlcj4gZW5kcG9pbnRzIGZvciBhIHZhcmlhYmxlICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGIic2l6ZSByZXNwb25zZSB3aXRoIHJhbmRvbSBieXRlcyIKLSAgICAg
ICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPTAsCi0gICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICApCi0g
ICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICAgICAgU3RyZWFt
RGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwgZGF0YT1iaW5h
c2NpaS51bmhleGxpZnkoIjAxMDMwMjgwMTAiKSwgZW5kX3N0cmVhbT1UcnVlCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIFtdLAotICAgICAgICApCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZl
bnQoCi0gICAgICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9NywKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1iaW5hc2NpaS51bmhl
eGxpZnkoIjZhZjJiMjBmNDk1NjRkODMzNTA1YjM4Mjk0ZTciKSwKLSAgICAgICAgICAgICAgICAg
ICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAot
ICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAgICAg
ICAgICAgICAgICAgaGVhZGVycz1bKGIieC1zb21lLXRyYWlsZXIiLCBiImZvbyIpXSwKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2lkPTAsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9l
bmRlZD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPU5vbmUsCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfdW5pX3N0
cmVhbV9ncmVhc2Uoc2VsZik6Ci0gICAgICAgIHdpdGggaDNfY2xpZW50X2FuZF9zZXJ2ZXIoKSBh
cyAocXVpY19jbGllbnQsIHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgzX3NlcnZlciA9IEgz
Q29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICAgICAgcXVpY19jbGllbnQuc2VuZF9z
dHJlYW1fZGF0YSgKLSAgICAgICAgICAgICAgICAxNCwgYiJceGZmXHhmZlx4ZmZceGZmXHhmZlx4
ZmZceGZmXHhmZUdSRUFTRSBpcyB0aGUgd29yZCIKLSAgICAgICAgICAgICkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoaDNfdHJhbnNmZXIocXVpY19jbGllbnQsIGgzX3NlcnZlciksIFtd
KQotCi0gICAgZGVmIHRlc3RfcmVxdWVzdF93aXRoX3RyYWlsZXJzKHNlbGYpOgotICAgICAgICB3
aXRoIGgzX2NsaWVudF9hbmRfc2VydmVyKCkgYXMgKHF1aWNfY2xpZW50LCBxdWljX3NlcnZlcik6
Ci0gICAgICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0gICAg
ICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24ocXVpY19zZXJ2ZXIpCi0KLSAgICAgICAg
ICAgICMgc2VuZCByZXF1ZXN0IHdpdGggdHJhaWxlcnMKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9
IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICAgICAg
aDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFt
X2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAoYiI6
bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0
cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0Iiks
Ci0gICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAg
ICAgICAgICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1f
aWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WyhiIngtc29tZS10cmFpbGVy
IiwgYiJmb28iKV0sCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAg
ICAgKQotCi0gICAgICAgICAgICAjIHJlY2VpdmUgcmVxdWVzdAotICAgICAgICAgICAgZXZlbnRz
ID0gaDNfdHJhbnNmZXIocXVpY19jbGllbnQsIGgzX3NlcnZlcikKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXZlbnRzLAotICAgICAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAg
ICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1ldGhvZCIs
IGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0
cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2Nh
bGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiLyIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIEhlYWRlcnNS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WyhiIngtc29tZS10cmFp
bGVyIiwgYiJmb28iKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFt
X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAg
ICAgICAgICAgIyBzZW5kIHJlc3BvbnNlCi0gICAgICAgICAgICBoM19zZXJ2ZXIuc2VuZF9oZWFk
ZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAg
ICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAot
ICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIpLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVh
bT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGgzX3NlcnZlci5zZW5kX2RhdGEo
Ci0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBk
YXRhPWIiPGh0bWw+PGJvZHk+aGVsbG88L2JvZHk+PC9odG1sPiIsCi0gICAgICAgICAgICAgICAg
ZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGgzX3NlcnZlci5z
ZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAg
ICAgICAgICAgICBoZWFkZXJzPVsoYiJ4LXNvbWUtdHJhaWxlciIsIGIiYmFyIildLAotICAgICAg
ICAgICAgICAgIGVuZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAg
IyByZWNlaXZlIHJlc3BvbnNlCi0gICAgICAgICAgICBldmVudHMgPSBoM190cmFuc2ZlcihxdWlj
X3NlcnZlciwgaDNfY2xpZW50KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAg
ICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJl
YW1fZW5kZWQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAg
ICAgIERhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9YiI8aHRtbD48
Ym9keT5oZWxsbzwvYm9keT48L2h0bWw+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIEhlYWRlcnNS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WyhiIngtc29tZS10cmFp
bGVyIiwgYiJiYXIiKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFt
X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAg
IGRlZiB0ZXN0X3VuaV9zdHJlYW1fdHlwZShzZWxmKToKLSAgICAgICAgd2l0aCBoM19jbGllbnRf
YW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2ZXIpOgotICAgICAgICAgICAg
aDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgICAgICAjIHVu
a25vd24gc3RyZWFtIHR5cGUgOQotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQu
Z2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChpc191bmlkaXJlY3Rpb25hbD1UcnVlKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW1faWQsIDIpCi0gICAgICAgICAgICBxdWlj
X2NsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJceDA5IikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoaDNfdHJhbnNmZXIocXVpY19jbGllbnQsIGgzX3NlcnZlciksIFtd
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGgzX3NlcnZlci5fc3RyZWFtLmtl
eXMoKSksIFsyXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJl
YW1bMl0uYnVmZmVyLCBiIiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzX3NlcnZl
ci5fc3RyZWFtWzJdLnN0cmVhbV90eXBlLCA5KQotCi0gICAgICAgICAgICAjIHVua25vd24gc3Ry
ZWFtIHR5cGUgNjQsIG9uZSBieXRlIGF0IGEgdGltZQotICAgICAgICAgICAgc3RyZWFtX2lkID0g
cXVpY19jbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChpc191bmlkaXJlY3Rpb25h
bD1UcnVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW1faWQsIDYpCi0KLSAg
ICAgICAgICAgIHF1aWNfY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiIlx4NDAi
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM190cmFuc2ZlcihxdWljX2NsaWVudCwg
aDNfc2VydmVyKSwgW10pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaDNfc2Vy
dmVyLl9zdHJlYW0ua2V5cygpKSwgWzIsIDZdKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChoM19zZXJ2ZXIuX3N0cmVhbVsyXS5idWZmZXIsIGIiIikKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJlYW1bMl0uc3RyZWFtX3R5cGUsIDkpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGgzX3NlcnZlci5fc3RyZWFtWzZdLmJ1ZmZlciwgYiJceDQwIikK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJlYW1bNl0uc3RyZWFt
X3R5cGUsIE5vbmUpCi0KLSAgICAgICAgICAgIHF1aWNfY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEo
c3RyZWFtX2lkLCBiIlx4NDAiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM190cmFu
c2ZlcihxdWljX2NsaWVudCwgaDNfc2VydmVyKSwgW10pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3QoaDNfc2VydmVyLl9zdHJlYW0ua2V5cygpKSwgWzIsIDZdKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoM19zZXJ2ZXIuX3N0cmVhbVsyXS5idWZmZXIsIGIiIikKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJlYW1bMl0uc3RyZWFtX3R5
cGUsIDkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzX3NlcnZlci5fc3RyZWFtWzZd
LmJ1ZmZlciwgYiIiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM19zZXJ2ZXIuX3N0
cmVhbVs2XS5zdHJlYW1fdHlwZSwgNjQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
dGVzdF9sb2dnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9sb2dnZXIucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiN2M1MjA5MzhlMmNmMjRhZWI3NmI5MTlkOTY3YWZi
YzZjNmVlZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfbG9nZ2VyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzcg
KzAsMCBAQAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBhaW9xdWljLnF1
aWMubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi0KLQotY2xhc3MgUXVpY0xvZ2dlclRlc3QoVGVz
dENhc2UpOgotICAgIGRlZiB0ZXN0X2VtcHR5KHNlbGYpOgotICAgICAgICBsb2dnZXIgPSBRdWlj
TG9nZ2VyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dnZXIudG9fZGljdCgpLCB7InFs
b2dfdmVyc2lvbiI6ICJkcmFmdC0wMSIsICJ0cmFjZXMiOiBbXX0pCi0KLSAgICBkZWYgdGVzdF9l
bXB0eV90cmFjZShzZWxmKToKLSAgICAgICAgbG9nZ2VyID0gUXVpY0xvZ2dlcigpCi0gICAgICAg
IHRyYWNlID0gbG9nZ2VyLnN0YXJ0X3RyYWNlKGlzX2NsaWVudD1UcnVlLCBvZGNpZD1ieXRlcyg4
KSkKLSAgICAgICAgbG9nZ2VyLmVuZF90cmFjZSh0cmFjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIGxvZ2dlci50b19kaWN0KCksCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgInFsb2dfdmVyc2lvbiI6ICJkcmFmdC0wMSIsCi0gICAgICAgICAgICAgICAg
InRyYWNlcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgImNvbW1vbl9maWVsZHMiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9EQ0lE
IjogIjAwMDAwMDAwMDAwMDAwMDAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZl
cmVuY2VfdGltZSI6ICIwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAiY29uZmlndXJhdGlvbiI6IHsidGltZV91bml0cyI6ICJ1cyJ9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgImV2ZW50X2ZpZWxkcyI6IFsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVsYXRpdmVfdGltZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNhdGVnb3J5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXZlbnRfdHlwZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiOiBbXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJ2YW50YWdlX3BvaW50IjogeyJuYW1lIjogImFpb3F1aWMiLCAidHlwZSI6
ICJjbGllbnQifSwKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICB9LAotICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
dGVzdF9wYWNrZXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9wYWNrZXQucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2OWI3YWE5YTYxOTc2N2E3ZjVjMDM1Zjc3MzBmZjM3
MWQ3ZDVmNzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcGFja2V0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTEz
ICswLDAgQEAKLWltcG9ydCBiaW5hc2NpaQotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UK
LQotZnJvbSBhaW9xdWljLmJ1ZmZlciBpbXBvcnQgQnVmZmVyLCBCdWZmZXJSZWFkRXJyb3IKLWZy
b20gYWlvcXVpYy5xdWljIGltcG9ydCBwYWNrZXQKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldCBp
bXBvcnQgKAotICAgIFBBQ0tFVF9UWVBFX0lOSVRJQUwsCi0gICAgUEFDS0VUX1RZUEVfUkVUUlks
Ci0gICAgUXVpY1ByZWZlcnJlZEFkZHJlc3MsCi0gICAgUXVpY1Byb3RvY29sVmVyc2lvbiwKLSAg
ICBRdWljVHJhbnNwb3J0UGFyYW1ldGVycywKLSAgICBkZWNvZGVfcGFja2V0X251bWJlciwKLSAg
ICBlbmNvZGVfcXVpY192ZXJzaW9uX25lZ290aWF0aW9uLAotICAgIGdldF9yZXRyeV9pbnRlZ3Jp
dHlfdGFnLAotICAgIHB1bGxfcXVpY19oZWFkZXIsCi0gICAgcHVsbF9xdWljX3ByZWZlcnJlZF9h
ZGRyZXNzLAotICAgIHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycywKLSAgICBwdXNoX3F1
aWNfcHJlZmVycmVkX2FkZHJlc3MsCi0gICAgcHVzaF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJz
LAotKQotCi1mcm9tIC51dGlscyBpbXBvcnQgbG9hZAotCi0KLWNsYXNzIFBhY2tldFRlc3QoVGVz
dENhc2UpOgotICAgIGRlZiB0ZXN0X2RlY29kZV9wYWNrZXRfbnVtYmVyKHNlbGYpOgotICAgICAg
ICAjIGV4cGVjdGVkID0gMAotICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCAyNTYpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfcGFja2V0X251bWJlcihpLCA4LCBleHBlY3Rl
ZD0wKSwgaSkKLQotICAgICAgICAjIGV4cGVjdGVkID0gMTI4Ci0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZGVjb2RlX3BhY2tldF9udW1iZXIoMCwgOCwgZXhwZWN0ZWQ9MTI4KSwgMjU2KQotICAg
ICAgICBmb3IgaSBpbiByYW5nZSgxLCAyNTYpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkZWNvZGVfcGFja2V0X251bWJlcihpLCA4LCBleHBlY3RlZD0xMjgpLCBpKQotCi0gICAgICAg
ICMgZXhwZWN0ZWQgPSAxMjkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfcGFja2V0
X251bWJlcigwLCA4LCBleHBlY3RlZD0xMjkpLCAyNTYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZGVjb2RlX3BhY2tldF9udW1iZXIoMSwgOCwgZXhwZWN0ZWQ9MTI5KSwgMjU3KQotICAgICAg
ICBmb3IgaSBpbiByYW5nZSgyLCAyNTYpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChk
ZWNvZGVfcGFja2V0X251bWJlcihpLCA4LCBleHBlY3RlZD0xMjkpLCBpKQotCi0gICAgICAgICMg
ZXhwZWN0ZWQgPSAyNTYKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgMTI4KToKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlX3BhY2tldF9udW1iZXIoaSwgOCwgZXhwZWN0ZWQ9
MjU2KSwgMjU2ICsgaSkKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTI5LCAyNTYpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfcGFja2V0X251bWJlcihpLCA4LCBleHBlY3Rl
ZD0yNTYpLCBpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9lbXB0eShzZWxmKToKLSAgICAgICAgYnVm
ID0gQnVmZmVyKGRhdGE9YiIiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZl
clJlYWRFcnJvcik6Ci0gICAgICAgICAgICBwdWxsX3F1aWNfaGVhZGVyKGJ1ZiwgaG9zdF9jaWRf
bGVuZ3RoPTgpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2luaXRpYWxfY2xpZW50KHNlbGYpOgotICAg
ICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJpbml0aWFsX2NsaWVudC5iaW4iKSkKLSAgICAg
ICAgaGVhZGVyID0gcHVsbF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04KQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaGVhZGVyLmlzX2xvbmdfaGVhZGVyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGhlYWRlci52ZXJzaW9uLCBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5wYWNrZXRfdHlwZSwgUEFDS0VUX1RZ
UEVfSU5JVElBTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIuZGVzdGluYXRpb25f
Y2lkLCBiaW5hc2NpaS51bmhleGxpZnkoIjg1OGIzOTM2OGI4ZTNjNmUiKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChoZWFkZXIuc291cmNlX2NpZCwgYiIiKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGhlYWRlci50b2tlbiwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRl
ci5pbnRlZ3JpdHlfdGFnLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnJl
c3RfbGVuZ3RoLCAxMjYyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDE4
KQotCi0gICAgZGVmIHRlc3RfcHVsbF9pbml0aWFsX3NlcnZlcihzZWxmKToKLSAgICAgICAgYnVm
ID0gQnVmZmVyKGRhdGE9bG9hZCgiaW5pdGlhbF9zZXJ2ZXIuYmluIikpCi0gICAgICAgIGhlYWRl
ciA9IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGhlYWRlci5pc19sb25nX2hlYWRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoZWFkZXIudmVyc2lvbiwgUXVpY1Byb3RvY29sVmVyc2lvbi5EUkFGVF8yNSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIucGFja2V0X3R5cGUsIFBBQ0tFVF9UWVBFX0lOSVRJ
QUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmRlc3RpbmF0aW9uX2NpZCwgYiIi
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5zb3VyY2VfY2lkLCBiaW5hc2NpaS51
bmhleGxpZnkoIjE5NWM2ODM0NGUyOGQ0NzkiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCho
ZWFkZXIudG9rZW4sIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIuaW50ZWdy
aXR5X3RhZywgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5yZXN0X2xlbmd0
aCwgMTg0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDE4KQotCi0gICAg
ZGVmIHRlc3RfcHVsbF9yZXRyeShzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9h
ZCgicmV0cnkuYmluIikpCi0gICAgICAgIGhlYWRlciA9IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBo
b3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhlYWRlci5pc19sb25n
X2hlYWRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIudmVyc2lvbiwgUXVpY1By
b3RvY29sVmVyc2lvbi5EUkFGVF8yNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIu
cGFja2V0X3R5cGUsIFBBQ0tFVF9UWVBFX1JFVFJZKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGhlYWRlci5kZXN0aW5hdGlvbl9jaWQsIGJpbmFzY2lpLnVuaGV4bGlmeSgiZTlkMTQ2ZDhkMTRj
YjI4ZSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVhZGVyLnNv
dXJjZV9jaWQsCi0gICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoIjBiMGEyMDVhNjQ4ZmNm
ODJkODVmMTI4YjY3YmJlMDgwNTNlNiIpLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBoZWFkZXIudG9rZW4sCi0gICAgICAgICAgICBiaW5hc2NpaS51
bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgIjQ0Mzk3YTM1ZDY5ODM5M2MxMzRiMDhhOTMyNzM3
ODU5ZjQ0NmQzYWFkZDAwZWQ4MTU0MGM4ZDhkZTE3MiIKLSAgICAgICAgICAgICAgICAiOTA2ZDNl
N2ExMTFiNTAzZjk3MjliODkyOGU3NTI4ZjlhODZhNDU4MWY5ZWJiNGNiM2I1M2MyODM2NjFlIgot
ICAgICAgICAgICAgICAgICI4NTMwNzQxYTk5MTkyZWU1NjkxNGM1NjI2OTk4ZWMwZiIKLSAgICAg
ICAgICAgICksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIGhlYWRlci5pbnRlZ3JpdHlfdGFnLCBiaW5hc2NpaS51bmhleGxpZnkoImUxYTNjODBjNzk3
ZWE0MDFjMDhmYzljMzQyYTJkOTBkIikKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGhlYWRlci5yZXN0X2xlbmd0aCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYu
dGVsbCgpLCAxMjUpCi0KLSAgICAgICAgIyBjaGVjayBpbnRlZ3JpdHkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGdldF9yZXRyeV9pbnRlZ3JpdHlfdGFnKAotICAgICAg
ICAgICAgICAgIGJ1Zi5kYXRhX3NsaWNlKDAsIDEwOSksIGJpbmFzY2lpLnVuaGV4bGlmeSgiZmJi
ZDIxOWI3MzYzYjY0YiIpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGhlYWRlci5pbnRl
Z3JpdHlfdGFnLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9wdWxsX3ZlcnNpb25fbmVnb3Rp
YXRpb24oc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInZlcnNpb25fbmVn
b3RpYXRpb24uYmluIikpCi0gICAgICAgIGhlYWRlciA9IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBo
b3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhlYWRlci5pc19sb25n
X2hlYWRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIudmVyc2lvbiwgUXVpY1By
b3RvY29sVmVyc2lvbi5ORUdPVElBVElPTikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFk
ZXIucGFja2V0X3R5cGUsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmRl
c3RpbmF0aW9uX2NpZCwgYmluYXNjaWkudW5oZXhsaWZ5KCI5YWFjNWE0OWJhODdhODQ5IikpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnNvdXJjZV9jaWQsIGJpbmFzY2lpLnVuaGV4
bGlmeSgiZjkyZjQzMzZmYTk1MWJhMSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRl
ci50b2tlbiwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5pbnRlZ3JpdHlf
dGFnLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnJlc3RfbGVuZ3RoLCA4
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDIzKQotCi0gICAgZGVmIHRl
c3RfcHVsbF9sb25nX2hlYWRlcl9kY2lkX3Rvb19sb25nKHNlbGYpOgotICAgICAgICBidWYgPSBC
dWZmZXIoCi0gICAgICAgICAgICBkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAg
ICAgICAiYzZmZjAwMDAxNjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDQiCi0gICAgICAgICAgICAgICAgIjAxYzUxNGY5OWVjNGJiZjFmN2EzMGY5YjBjOTRm
ZWY3MTdmMWMxZDA3ZmVjMjRjOTlhODY0ZGE3ZWRlIgotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgY206Ci0gICAg
ICAgICAgICBwdWxsX3F1aWNfaGVhZGVyKGJ1ZiwgaG9zdF9jaWRfbGVuZ3RoPTgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJEZXN0aW5hdGlvbiBDSUQgaXMg
dG9vIGxvbmcgKDIxIGJ5dGVzKSIpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2xvbmdfaGVhZGVyX3Nj
aWRfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigKLSAgICAgICAgICAgIGRh
dGE9YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICJjMmZmMDAwMDE2MDAxNTAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNCIKLSAgICAgICAgICAg
ICAgICAiMDFjZmNlZTk5ZWM0YmJmMWY3YTMwZjliMGM5NDE3YjhjMjYzY2RkOGNjOTcyYTQ0Mzlk
NjhhNDYzMjAiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIHB1bGxfcXVpY19oZWFk
ZXIoYnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIo
Y20uZXhjZXB0aW9uKSwgIlNvdXJjZSBDSUQgaXMgdG9vIGxvbmcgKDIxIGJ5dGVzKSIpCi0KLSAg
ICBkZWYgdGVzdF9wdWxsX2xvbmdfaGVhZGVyX25vX2ZpeGVkX2JpdChzZWxmKToKLSAgICAgICAg
YnVmID0gQnVmZmVyKGRhdGE9YiJceDgwXHhmZlx4MDBceDAwXHgxMVx4MDBceDAwIikKLSAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAg
IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzdHIoY20uZXhjZXB0aW9uKSwgIlBhY2tldCBmaXhlZCBiaXQgaXMgemVybyIp
Ci0KLSAgICBkZWYgdGVzdF9wdWxsX2xvbmdfaGVhZGVyX3Rvb19zaG9ydChzZWxmKToKLSAgICAg
ICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceGMwXHgwMCIpCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoQnVmZmVyUmVhZEVycm9yKToKLSAgICAgICAgICAgIHB1bGxfcXVpY19oZWFkZXIo
YnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLQotICAgIGRlZiB0ZXN0X3B1bGxfc2hvcnRfaGVhZGVy
KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJzaG9ydF9oZWFkZXIuYmlu
IikpCi0gICAgICAgIGhlYWRlciA9IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBob3N0X2NpZF9sZW5n
dGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoZWFkZXIuaXNfbG9uZ19oZWFkZXIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnZlcnNpb24sIE5vbmUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnBhY2tldF90eXBlLCAweDUwKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGhlYWRlci5kZXN0aW5hdGlvbl9jaWQsIGJpbmFzY2lpLnVuaGV4bGlmeSgiZjQ1
YWE3YjU5YzBlMWFkNiIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5zb3VyY2Vf
Y2lkLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnRva2VuLCBiIiIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmludGVncml0eV90YWcsIGIiIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIucmVzdF9sZW5ndGgsIDEyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDkpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3Nob3J0X2hl
YWRlcl9ub19maXhlZF9iaXQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWIiXHgw
MCIpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgY206Ci0g
ICAgICAgICAgICBwdWxsX3F1aWNfaGVhZGVyKGJ1ZiwgaG9zdF9jaWRfbGVuZ3RoPTgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJQYWNrZXQgZml4ZWQgYml0
IGlzIHplcm8iKQotCi0gICAgZGVmIHRlc3RfZW5jb2RlX3F1aWNfdmVyc2lvbl9uZWdvdGlhdGlv
bihzZWxmKToKLSAgICAgICAgZGF0YSA9IGVuY29kZV9xdWljX3ZlcnNpb25fbmVnb3RpYXRpb24o
Ci0gICAgICAgICAgICBkZXN0aW5hdGlvbl9jaWQ9YmluYXNjaWkudW5oZXhsaWZ5KCI5YWFjNWE0
OWJhODdhODQ5IiksCi0gICAgICAgICAgICBzb3VyY2VfY2lkPWJpbmFzY2lpLnVuaGV4bGlmeSgi
ZjkyZjQzMzZmYTk1MWJhMSIpLAotICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb25zPVsweDQ1
NDc0NzE2LCBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1XSwKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGRhdGFbMTpdLCBsb2FkKCJ2ZXJzaW9uX25lZ290aWF0aW9uLmJp
biIpWzE6XSkKLQotCi1jbGFzcyBQYXJhbXNUZXN0KFRlc3RDYXNlKToKLSAgICBtYXhEaWZmID0g
Tm9uZQotCi0gICAgZGVmIHRlc3RfcGFyYW1zKHNlbGYpOgotICAgICAgICBkYXRhID0gYmluYXNj
aWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgIjAxMDI2NzEwMDIxMGNjMmZkNmU3ZDk3YTUzYWI1
YmU4NWIyOGQ3NWM4MDA4MDMwMjQ3ZTQwNDA0ODAwNWZmZiIKLSAgICAgICAgICAgICJhMDUwNDgw
MDBmZmZmMDYwNDgwMDBmZmZmMDgwMTA2MGEwMTAzMGIwMTE5IgotICAgICAgICApCi0KLSAgICAg
ICAgIyBwYXJzZQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwYXJh
bXMgPSBwdWxsX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHBy
b3RvY29sX3ZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lvbi5EUkFGVF8yNwotICAgICAgICApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBwYXJhbXMsCi0gICAgICAgICAg
ICBRdWljVHJhbnNwb3J0UGFyYW1ldGVycygKLSAgICAgICAgICAgICAgICBpZGxlX3RpbWVvdXQ9
MTAwMDAsCi0gICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiXHhjYy9ceGQ2
XHhlN1x4ZDl6U1x4YWJbXHhlOFsoXHhkN1xcXHg4MFx4MDgiLAotICAgICAgICAgICAgICAgIG1h
eF9wYWNrZXRfc2l6ZT0yMDIwLAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X2RhdGE9Mzkz
MjEwLAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfbG9jYWw9
NjU1MzUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1v
dGU9NjU1MzUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfdW5pPU5v
bmUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtc19iaWRpPTYsCi0gICAgICAg
ICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtc191bmk9Tm9uZSwKLSAgICAgICAgICAgICAgICBh
Y2tfZGVsYXlfZXhwb25lbnQ9MywKLSAgICAgICAgICAgICAgICBtYXhfYWNrX2RlbGF5PTI1LAot
ICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAg
IGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAgIHB1c2hfcXVpY190cmFu
c3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcGFyYW1zLCBwcm90b2NvbF92ZXJz
aW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjcKLSAgICAgICAgKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihidWYuZGF0YSksIGxlbihkYXRhKSkKLQotICAgIGRlZiB0ZXN0X3Bh
cmFtc19sZWdhY3koc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0g
ICAgICAgICAgICAiMDA0NzAwMDIwMDEwY2MyZmQ2ZTdkOTdhNTNhYjViZTg1YjI4ZDc1YzgwMDgw
MDA4MDAwMTA2MDAwMTAwMDI2IgotICAgICAgICAgICAgIjcxMDAwMDYwMDA0ODAwMGZmZmYwMDA1
MDAwNDgwMDBmZmZmMDAwNDAwMDQ4MDA1ZmZmYTAwMGEwMDAxMDMwMCIKLSAgICAgICAgICAgICIw
YjAwMDExOTAwMDMwMDAyNDdlNCIKLSAgICAgICAgKQotCi0gICAgICAgICMgcGFyc2UKLSAgICAg
ICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcGFyYW1zID0gcHVsbF9xdWljX3Ry
YW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgYnVmLCBwcm90b2NvbF92ZXJzaW9uPVF1
aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjUKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgcGFyYW1zLAotICAgICAgICAgICAgUXVpY1RyYW5zcG9ydFBh
cmFtZXRlcnMoCi0gICAgICAgICAgICAgICAgaWRsZV90aW1lb3V0PTEwMDAwLAotICAgICAgICAg
ICAgICAgIHN0YXRlbGVzc19yZXNldF90b2tlbj1iIlx4Y2MvXHhkNlx4ZTdceGQ5elNceGFiW1x4
ZThbKFx4ZDdcXFx4ODBceDA4IiwKLSAgICAgICAgICAgICAgICBtYXhfcGFja2V0X3NpemU9MjAy
MCwKLSAgICAgICAgICAgICAgICBpbml0aWFsX21heF9kYXRhPTM5MzIxMCwKLSAgICAgICAgICAg
ICAgICBpbml0aWFsX21heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsPTY1NTM1LAotICAgICAgICAg
ICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlPTY1NTM1LAotICAgICAg
ICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX3VuaT1Ob25lLAotICAgICAgICAgICAg
ICAgIGluaXRpYWxfbWF4X3N0cmVhbXNfYmlkaT02LAotICAgICAgICAgICAgICAgIGluaXRpYWxf
bWF4X3N0cmVhbXNfdW5pPU5vbmUsCi0gICAgICAgICAgICAgICAgYWNrX2RlbGF5X2V4cG9uZW50
PTMsCi0gICAgICAgICAgICAgICAgbWF4X2Fja19kZWxheT0yNSwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2Fw
YWNpdHk9bGVuKGRhdGEpKQotICAgICAgICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMo
Ci0gICAgICAgICAgICBidWYsIHBhcmFtcywgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xW
ZXJzaW9uLkRSQUZUXzI1Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4o
YnVmLmRhdGEpLCBsZW4oZGF0YSkpCi0KLSAgICBkZWYgdGVzdF9wYXJhbXNfZGlzYWJsZV9hY3Rp
dmVfbWlncmF0aW9uKHNlbGYpOgotICAgICAgICBkYXRhID0gYmluYXNjaWkudW5oZXhsaWZ5KCIw
YzAwIikKLQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEp
Ci0gICAgICAgIHBhcmFtcyA9IHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAg
ICAgICAgIGJ1ZiwgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI3
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbXMsIFF1aWNUcmFuc3Bv
cnRQYXJhbWV0ZXJzKGRpc2FibGVfYWN0aXZlX21pZ3JhdGlvbj1UcnVlKSkKLQotICAgICAgICAj
IHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9bGVuKGRhdGEpKQotICAg
ICAgICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHBh
cmFtcywgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI3Ci0gICAg
ICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAgIGRl
ZiB0ZXN0X3BhcmFtc19kaXNhYmxlX2FjdGl2ZV9taWdyYXRpb25fbGVnYWN5KHNlbGYpOgotICAg
ICAgICBkYXRhID0gYmluYXNjaWkudW5oZXhsaWZ5KCIwMDA0MDAwYzAwMDAiKQotCi0gICAgICAg
ICMgcGFyc2UKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcGFyYW1z
ID0gcHVsbF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgYnVmLCBwcm90
b2NvbF92ZXJzaW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjUKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtcywgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMoZGlz
YWJsZV9hY3RpdmVfbWlncmF0aW9uPVRydWUpKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAg
ICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAgIHB1c2hfcXVpY190
cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcGFyYW1zLCBwcm90b2NvbF92
ZXJzaW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjUKLSAgICAgICAgKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX3By
ZWZlcnJlZF9hZGRyZXNzKHNlbGYpOgotICAgICAgICBkYXRhID0gYmluYXNjaWkudW5oZXhsaWZ5
KAotICAgICAgICAgICAgIjBkM2I4YmEyN2I4NjExNTMyNDAwODkwMjAwMDAwMDAwZjAzYzkxZmZm
ZTY5YTQ1NDExNTMxMjYyYzQ1MThkNiIKLSAgICAgICAgICAgICIzMDEzZjBjMjg3ZWQzNTczZWZh
OTA5NTYwMzc0NmIyZTAyZDQ1NDgwYmE2NjQzZTVjNmU3ZDQ4ZWNiNCIKLSAgICAgICAgKQotCi0g
ICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAg
cGFyYW1zID0gcHVsbF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgYnVm
LCBwcm90b2NvbF92ZXJzaW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjcKLSAgICAgICAg
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFyYW1zLAotICAgICAg
ICAgICAgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMoCi0gICAgICAgICAgICAgICAgcHJlZmVycmVk
X2FkZHJlc3M9UXVpY1ByZWZlcnJlZEFkZHJlc3MoCi0gICAgICAgICAgICAgICAgICAgIGlwdjRf
YWRkcmVzcz0oIjEzOS4xNjIuMTIzLjEzNCIsIDQ0MzUpLAotICAgICAgICAgICAgICAgICAgICBp
cHY2X2FkZHJlc3M9KCIyNDAwOjg5MDI6OmYwM2M6OTFmZjpmZTY5OmE0NTQiLCA0NDM1KSwKLSAg
ICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbl9pZD1iImJceGM0UVx4OGRjXHgwMT9ceDBjKH5c
eGQzVz5ceGZhXHg5MFx4OTVgNyIsCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlbGVzc19yZXNl
dF90b2tlbj1iIkZceGIyXHhlMC1FSFx4MGJceGE2ZD5cXG59SFx4ZWNceGI0IiwKLSAgICAgICAg
ICAgICAgICApLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2VyaWFs
aXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0xMDAwKQotICAgICAgICBwdXNoX3F1
aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHBhcmFtcywgcHJvdG9j
b2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI3Ci0gICAgICAgICkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAgIGRlZiB0ZXN0X3BhcmFt
c19wcmVmZXJyZWRfYWRkcmVzc19sZWdhY3koc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2Np
aS51bmhleGxpZnkoCi0gICAgICAgICAgICAiMDAzZjAwMGQwMDNiOGJhMjdiODYxMTUzMjQwMDg5
MDIwMDAwMDAwMGYwM2M5MWZmZmU2OWE0NTQxMTUzMTI2IgotICAgICAgICAgICAgIjJjNDUxOGQ2
MzAxM2YwYzI4N2VkMzU3M2VmYTkwOTU2MDM3NDZiMmUwMmQ0NTQ4MGJhNjY0M2U1YzZlN2Q0OCIK
LSAgICAgICAgICAgICJlY2I0IgotICAgICAgICApCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAg
ICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwYXJhbXMgPSBwdWxsX3F1aWNfdHJh
bnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHByb3RvY29sX3ZlcnNpb249UXVp
Y1Byb3RvY29sVmVyc2lvbi5EUkFGVF8yNQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICBwYXJhbXMsCi0gICAgICAgICAgICBRdWljVHJhbnNwb3J0UGFy
YW1ldGVycygKLSAgICAgICAgICAgICAgICBwcmVmZXJyZWRfYWRkcmVzcz1RdWljUHJlZmVycmVk
QWRkcmVzcygKLSAgICAgICAgICAgICAgICAgICAgaXB2NF9hZGRyZXNzPSgiMTM5LjE2Mi4xMjMu
MTM0IiwgNDQzNSksCi0gICAgICAgICAgICAgICAgICAgIGlwdjZfYWRkcmVzcz0oIjI0MDA6ODkw
Mjo6ZjAzYzo5MWZmOmZlNjk6YTQ1NCIsIDQ0MzUpLAotICAgICAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uX2lkPWIiYlx4YzRRXHg4ZGNceDAxP1x4MGMoflx4ZDNXPlx4ZmFceDkwXHg5NWA3IiwK
LSAgICAgICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiRlx4YjJceGUwLUVI
XHgwYlx4YTZkPlxcbn1IXHhlY1x4YjQiLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAg
ICApLAotICAgICAgICApCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVm
ZmVyKGNhcGFjaXR5PWxlbihkYXRhKSkKLSAgICAgICAgcHVzaF9xdWljX3RyYW5zcG9ydF9wYXJh
bWV0ZXJzKAotICAgICAgICAgICAgYnVmLCBwYXJhbXMsIHByb3RvY29sX3ZlcnNpb249UXVpY1By
b3RvY29sVmVyc2lvbi5EUkFGVF8yNQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYnVmLmRhdGEsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9wYXJhbXNfdW5rbm93bihzZWxmKToK
LSAgICAgICAgZGF0YSA9IGJpbmFzY2lpLnVuaGV4bGlmeSgiODAwMGZmMDAwMTAwIikKLQotICAg
ICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAgIHBh
cmFtcyA9IHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1Ziwg
cHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI3Ci0gICAgICAgICkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbXMsIFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJz
KCkpCi0KLSAgICBkZWYgdGVzdF9wYXJhbXNfdW5rbm93bl9sZWdhY3koc2VsZik6Ci0gICAgICAg
ICMgZmIubXZmc3QubmV0IHNlbmRzIGEgcHJvcHJpZXRhcnkgcGFyYW1ldGVyIDY1MjgwCi0gICAg
ICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAiMDA2NDAwMDUwMDA0
ODAwMTA0MDAwMDA2MDAwNDgwMDEwNDAwMDAwNzAwMDQ4MDAxMDQwMDAwMDQwMDA0ODAxIgotICAg
ICAgICAgICAgIjAwMDAwMDAwODAwMDhjMDAwMDAwMGZmZmZmZmZmMDAwOTAwMDhjMDAwMDAwMGZm
ZmZmZmZmMDAwMTAwMDQ4MCIKLSAgICAgICAgICAgICIwMGVhNjAwMDBhMDAwMTAzMDAwMzAwMDI1
MDAwMDAwMjAwMTA2MTYxNjE2MTYyNjI2MjYyNjM2MzYzNjM2NDYiCi0gICAgICAgICAgICAiNDY0
NjRmZjAwMDAwMTAwIgotICAgICAgICApCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBidWYg
PSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwYXJhbXMgPSBwdWxsX3F1aWNfdHJhbnNwb3J0
X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHByb3RvY29sX3ZlcnNpb249UXVpY1Byb3Rv
Y29sVmVyc2lvbi5EUkFGVF8yNQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBwYXJhbXMsCi0gICAgICAgICAgICBRdWljVHJhbnNwb3J0UGFyYW1ldGVy
cygKLSAgICAgICAgICAgICAgICBpZGxlX3RpbWVvdXQ9NjAwMDAsCi0gICAgICAgICAgICAgICAg
c3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiYWFhYWJiYmJjY2NjZGRkZCIsCi0gICAgICAgICAgICAg
ICAgbWF4X3BhY2tldF9zaXplPTQwOTYsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfZGF0
YT0xMDQ4NTc2LAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlf
bG9jYWw9NjY1NjAsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlk
aV9yZW1vdGU9NjY1NjAsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFf
dW5pPTY2NTYwLAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbXNfYmlkaT00Mjk0
OTY3Mjk1LAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbXNfdW5pPTQyOTQ5Njcy
OTUsCi0gICAgICAgICAgICAgICAgYWNrX2RlbGF5X2V4cG9uZW50PTMsCi0gICAgICAgICAgICAp
LAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9wcmVmZXJyZWRfYWRkcmVzc19pcHY0X29ubHko
c2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAi
OGJhMjdiODYxMTUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTI2MmM0NTE4
ZDYzMDEzIgotICAgICAgICAgICAgImYwYzI4N2VkMzU3M2VmYTkwOTU2MDM3NDZiMmUwMmQ0NTQ4
MGJhNjY0M2U1YzZlN2Q0OGVjYjQiCi0gICAgICAgICkKLQotICAgICAgICAjIHBhcnNlCi0gICAg
ICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAgIHByZWZlcnJlZF9hZGRyZXNzID0g
cHVsbF9xdWljX3ByZWZlcnJlZF9hZGRyZXNzKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIHByZWZlcnJlZF9hZGRyZXNzLAotICAgICAgICAgICAgUXVpY1ByZWZl
cnJlZEFkZHJlc3MoCi0gICAgICAgICAgICAgICAgaXB2NF9hZGRyZXNzPSgiMTM5LjE2Mi4xMjMu
MTM0IiwgNDQzNSksCi0gICAgICAgICAgICAgICAgaXB2Nl9hZGRyZXNzPU5vbmUsCi0gICAgICAg
ICAgICAgICAgY29ubmVjdGlvbl9pZD1iImJceGM0UVx4OGRjXHgwMT9ceDBjKH5ceGQzVz5ceGZh
XHg5MFx4OTVgNyIsCi0gICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiRlx4
YjJceGUwLUVIXHgwYlx4YTZkPlxcbn1IXHhlY1x4YjQiLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0
eT1sZW4oZGF0YSkpCi0gICAgICAgIHB1c2hfcXVpY19wcmVmZXJyZWRfYWRkcmVzcyhidWYsIHBy
ZWZlcnJlZF9hZGRyZXNzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRh
KQotCi0gICAgZGVmIHRlc3RfcHJlZmVycmVkX2FkZHJlc3NfaXB2Nl9vbmx5KHNlbGYpOgotICAg
ICAgICBkYXRhID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgIjAwMDAwMDAwMDAw
MDI0MDA4OTAyMDAwMDAwMDBmMDNjOTFmZmZlNjlhNDU0MTE1MzEyNjJjNDUxOGQ2MzAxMyIKLSAg
ICAgICAgICAgICJmMGMyODdlZDM1NzNlZmE5MDk1NjAzNzQ2YjJlMDJkNDU0ODBiYTY2NDNlNWM2
ZTdkNDhlY2I0IgotICAgICAgICApCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBidWYgPSBC
dWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwcmVmZXJyZWRfYWRkcmVzcyA9IHB1bGxfcXVpY19w
cmVmZXJyZWRfYWRkcmVzcyhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICBwcmVmZXJyZWRfYWRkcmVzcywKLSAgICAgICAgICAgIFF1aWNQcmVmZXJyZWRBZGRyZXNz
KAotICAgICAgICAgICAgICAgIGlwdjRfYWRkcmVzcz1Ob25lLAotICAgICAgICAgICAgICAgIGlw
djZfYWRkcmVzcz0oIjI0MDA6ODkwMjo6ZjAzYzo5MWZmOmZlNjk6YTQ1NCIsIDQ0MzUpLAotICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9YiJiXHhjNFFceDhkY1x4MDE/XHgwYyh+XHhkM1c+
XHhmYVx4OTBceDk1YDciLAotICAgICAgICAgICAgICAgIHN0YXRlbGVzc19yZXNldF90b2tlbj1i
IkZceGIyXHhlMC1FSFx4MGJceGE2ZD5cXG59SFx4ZWNceGI0IiwKLSAgICAgICAgICAgICksCi0g
ICAgICAgICkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2Fw
YWNpdHk9bGVuKGRhdGEpKQotICAgICAgICBwdXNoX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MoYnVm
LCBwcmVmZXJyZWRfYWRkcmVzcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwg
ZGF0YSkKLQotCi1jbGFzcyBGcmFtZVRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X2Fja19m
cmFtZShzZWxmKToKLSAgICAgICAgZGF0YSA9IGIiXHgwMFx4MDJceDAwXHgwMCIKLQotICAgICAg
ICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAgIHJhbmdl
c2V0LCBkZWxheSA9IHBhY2tldC5wdWxsX2Fja19mcmFtZShidWYpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAxKV0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZGVsYXksIDIpCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0g
QnVmZmVyKGNhcGFjaXR5PWxlbihkYXRhKSkKLSAgICAgICAgcGFja2V0LnB1c2hfYWNrX2ZyYW1l
KGJ1ZiwgcmFuZ2VzZXQsIGRlbGF5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRh
LCBkYXRhKQotCi0gICAgZGVmIHRlc3RfYWNrX2ZyYW1lX3dpdGhfb25lX3JhbmdlKHNlbGYpOgot
ICAgICAgICBkYXRhID0gYiJceDAyXHgwMlx4MDFceDAwXHgwMFx4MDAiCi0KLSAgICAgICAgIyBw
YXJzZQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICByYW5nZXNldCwg
ZGVsYXkgPSBwYWNrZXQucHVsbF9hY2tfZnJhbWUoYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMSksIHJhbmdlKDIsIDMpXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChkZWxheSwgMikKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAg
ICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9bGVuKGRhdGEpKQotICAgICAgICBwYWNrZXQucHVzaF9h
Y2tfZnJhbWUoYnVmLCByYW5nZXNldCwgZGVsYXkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVmLmRhdGEsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9hY2tfZnJhbWVfd2l0aF9vbmVfcmFuZ2Vf
MihzZWxmKToKLSAgICAgICAgZGF0YSA9IGIiXHgwNVx4MDJceDAxXHgwMFx4MDBceDAzIgotCi0g
ICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAg
cmFuZ2VzZXQsIGRlbGF5ID0gcGFja2V0LnB1bGxfYWNrX2ZyYW1lKGJ1ZikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDQpLCByYW5nZSg1LCA2KV0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsYXksIDIpCi0KLSAgICAgICAgIyBzZXJpYWxp
emUKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PWxlbihkYXRhKSkKLSAgICAgICAgcGFj
a2V0LnB1c2hfYWNrX2ZyYW1lKGJ1ZiwgcmFuZ2VzZXQsIGRlbGF5KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfYWNrX2ZyYW1lX3dpdGhf
b25lX3JhbmdlXzMoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiIlx4MDVceDAyXHgwMVx4MDBceDAx
XHgwMiIKLQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEp
Ci0gICAgICAgIHJhbmdlc2V0LCBkZWxheSA9IHBhY2tldC5wdWxsX2Fja19mcmFtZShidWYpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAzKSwgcmFu
Z2UoNSwgNildKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlbGF5LCAyKQotCi0gICAgICAg
ICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0g
ICAgICAgIHBhY2tldC5wdXNoX2Fja19mcmFtZShidWYsIHJhbmdlc2V0LCBkZWxheSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAgIGRlZiB0ZXN0X2Fja19m
cmFtZV93aXRoX3R3b19yYW5nZXMoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiIlx4MDRceDAyXHgw
Mlx4MDBceDAwXHgwMFx4MDBceDAwIgotCi0gICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVmID0g
QnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcmFuZ2VzZXQsIGRlbGF5ID0gcGFja2V0LnB1bGxf
YWNrX2ZyYW1lKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwg
W3JhbmdlKDAsIDEpLCByYW5nZSgyLCAzKSwgcmFuZ2UoNCwgNSldKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGRlbGF5LCAyKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9
IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAgIHBhY2tldC5wdXNoX2Fja19mcmFt
ZShidWYsIHJhbmdlc2V0LCBkZWxheSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0
YSwgZGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3BhY2tldF9idWls
ZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcGFja2V0X2J1aWxkZXIucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZTIzMTFkOTkxMjBmMWU3YjRhNDIwYmE1ZDFjNGVj
NmY3Y2FkODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcGFja2V0X2J1aWxkZXIucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw1NjkgKzAsMCBAQAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBh
aW9xdWljLnF1aWMuY3J5cHRvIGltcG9ydCBDcnlwdG9QYWlyCi1mcm9tIGFpb3F1aWMucXVpYy5w
YWNrZXQgaW1wb3J0ICgKLSAgICBQQUNLRVRfVFlQRV9IQU5EU0hBS0UsCi0gICAgUEFDS0VUX1RZ
UEVfSU5JVElBTCwKLSAgICBQQUNLRVRfVFlQRV9PTkVfUlRULAotICAgIFF1aWNGcmFtZVR5cGUs
Ci0gICAgUXVpY1Byb3RvY29sVmVyc2lvbiwKLSkKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldF9i
dWlsZGVyIGltcG9ydCAoCi0gICAgUXVpY1BhY2tldEJ1aWxkZXIsCi0gICAgUXVpY1BhY2tldEJ1
aWxkZXJTdG9wLAotICAgIFF1aWNTZW50UGFja2V0LAotKQotZnJvbSBhaW9xdWljLnRscyBpbXBv
cnQgRXBvY2gKLQotCi1kZWYgY3JlYXRlX2J1aWxkZXIoaXNfY2xpZW50PUZhbHNlKToKLSAgICBy
ZXR1cm4gUXVpY1BhY2tldEJ1aWxkZXIoCi0gICAgICAgIGhvc3RfY2lkPWJ5dGVzKDgpLAotICAg
ICAgICBpc19jbGllbnQ9aXNfY2xpZW50LAotICAgICAgICBwYWNrZXRfbnVtYmVyPTAsCi0gICAg
ICAgIHBlZXJfY2lkPWJ5dGVzKDgpLAotICAgICAgICBwZWVyX3Rva2VuPWIiIiwKLSAgICAgICAg
c3Bpbl9iaXQ9RmFsc2UsCi0gICAgICAgIHZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lvbi5EUkFG
VF8yNSwKLSAgICApCi0KLQotZGVmIGNyZWF0ZV9jcnlwdG8oKToKLSAgICBjcnlwdG8gPSBDcnlw
dG9QYWlyKCkKLSAgICBjcnlwdG8uc2V0dXBfaW5pdGlhbChieXRlcyg4KSwgaXNfY2xpZW50PVRy
dWUsIHZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lvbi5EUkFGVF8yNSkKLSAgICByZXR1cm4gY3J5
cHRvCi0KLQotY2xhc3MgUXVpY1BhY2tldEJ1aWxkZXJUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYg
dGVzdF9sb25nX2hlYWRlcl9lbXB0eShzZWxmKToKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9i
dWlsZGVyKCkKLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAgICAgYnVp
bGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTIzNikKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAg
ICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIu
Zmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAwKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBhY2tldHMsIFtdKQotCi0gICAgICAgICMgY2hlY2sgYnVp
bGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMCkK
LQotICAgIGRlZiB0ZXN0X2xvbmdfaGVhZGVyX3BhZGRpbmcoc2VsZik6Ci0gICAgICAgIGJ1aWxk
ZXIgPSBjcmVhdGVfYnVpbGRlcihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgY3J5cHRvID0gY3Jl
YXRlX2NyeXB0bygpCi0KLSAgICAgICAgIyBJTklUSUFMLCBmdWxseSBwYWRkZWQKLSAgICAgICAg
YnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTIzNikK
LSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLkNSWVBUTykK
LSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoMTAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAjIElOSVRJQUwsIGVtcHR5
Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX0lOSVRJQUwsIGNyeXB0
bykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0g
ICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1
aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAx
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNbMF0pLCAxMjgwKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAgICAgICAgICAg
IFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAgICAgICAg
ZXBvY2g9RXBvY2guSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0PVRydWUs
Ci0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBwYWNr
ZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBF
X0lOSVRJQUwsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBi
dWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAx
KQotCi0gICAgZGVmIHRlc3RfbG9uZ19oZWFkZXJfaW5pdGlhbF9jbGllbnRfMihzZWxmKToKLSAg
ICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKGlzX2NsaWVudD1UcnVlKQotICAgICAgICBj
cnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICAjIElOSVRJQUwsIGZ1bGwgbGVuZ3Ro
Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX0lOSVRJQUwsIGNyeXB0
bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRfc3Bh
Y2UsIDEyMzYpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlw
ZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKGJ1aWxkZXIucmVtYWluaW5n
X2ZsaWdodF9zcGFjZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5wYWNrZXRf
aXNfZW1wdHkpCi0KLSAgICAgICAgIyBJTklUSUFMCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFj
a2V0KFBBQ0tFVF9UWVBFX0lOSVRJQUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRfc3BhY2UsIDEyMzYpCi0gICAgICAgIGJ1ZiA9IGJ1
aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNo
X2J5dGVzKGJ5dGVzKDEwMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5wYWNr
ZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBJTklUSUFMLCBlbXB0eQotICAgICAgICBidWlsZGVy
LnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAjIGNoZWNrIGRh
dGFncmFtcwotICAgICAgICBkYXRhZ3JhbXMsIHBhY2tldHMgPSBidWlsZGVyLmZsdXNoKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zKSwgMikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zWzBdKSwgMTI4MCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oZGF0YWdyYW1zWzFdKSwgMTI4MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIHBhY2tldHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgUXVp
Y1NlbnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVwb2NoLklOSVRJQUwsCi0g
ICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBp
c19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2NyeXB0b19wYWNr
ZXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJlcj0wLAotICAgICAgICAg
ICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9JTklUSUFMLAotICAgICAgICAgICAg
ICAgICAgICBzZW50X2J5dGVzPTEyODAsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAg
ICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2guSU5J
VElBTCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5
cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTEsCi0g
ICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX0lOSVRJQUwsCi0gICAg
ICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAgICAgICApLAotICAg
ICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMikKLQotICAgIGRlZiB0
ZXN0X2xvbmdfaGVhZGVyX2luaXRpYWxfc2VydmVyKHNlbGYpOgotICAgICAgICBidWlsZGVyID0g
Y3JlYXRlX2J1aWxkZXIoKQotICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAg
ICAgICAjIElOSVRJQUwKLSAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVf
SU5JVElBTCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWlu
aW5nX2ZsaWdodF9zcGFjZSwgMTIzNikKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFt
ZShRdWljRnJhbWVUeXBlLkNSWVBUTykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoMTAw
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQot
ICAgICAgICAjIElOSVRJQUwsIGVtcHR5Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBB
Q0tFVF9UWVBFX0lOSVRJQUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxk
ZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAg
IGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihk
YXRhZ3JhbXNbMF0pLCAxNDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBwYWNrZXRzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0
KAotICAgICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5JTklUSUFMLAotICAgICAgICAgICAg
ICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNp
dGluZz1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0g
ICAgICAgICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgICAgICAgICAgICAg
cGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgc2Vu
dF9ieXRlcz0xNDUsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAg
KQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
aWxkZXIucGFja2V0X251bWJlciwgMSkKLQotICAgIGRlZiB0ZXN0X2xvbmdfaGVhZGVyX3RoZW5f
c2hvcnRfaGVhZGVyKHNlbGYpOgotICAgICAgICBidWlsZGVyID0gY3JlYXRlX2J1aWxkZXIoKQot
ICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICAjIElOSVRJQUwsIGZ1
bGwgbGVuZ3RoCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX0lOSVRJ
QUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnJlbWFpbmluZ19m
bGlnaHRfc3BhY2UsIDEyMzYpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVp
Y0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKGJ1aWxkZXIu
cmVtYWluaW5nX2ZsaWdodF9zcGFjZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRl
ci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBJTklUSUFMLCBlbXB0eQotICAgICAgICBi
dWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAjIE9O
RV9SVFQsIGZ1bGwgbGVuZ3RoCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9U
WVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnJl
bWFpbmluZ19mbGlnaHRfc3BhY2UsIDEyNTMpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRf
ZnJhbWUoUXVpY0ZyYW1lVHlwZS5TVFJFQU1fQkFTRSkKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMo
Ynl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAjIE9ORV9SVFQsIGVt
cHR5Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9SVFQsIGNy
eXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQot
Ci0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9
IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXMp
LCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNbMF0pLCAxMjgwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNbMV0pLCAxMjgwKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAgICAgICAgICAgIFsK
LSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAgICAgICAgZXBv
Y2g9RXBvY2guSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0g
ICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAg
ICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRf
bnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX0lO
SVRJQUwsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAg
ICAgICApLAotICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgICAg
ICAgICBlcG9jaD1FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgICAgICAgICBpbl9mbGlnaHQ9
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICBwYWNrZXRfbnVtYmVyPTEsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tF
VF9UWVBFX09ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAg
ICAgICAgICAgICAgICApLAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgICMg
Y2hlY2sgYnVpbGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251
bWJlciwgMikKLQotICAgIGRlZiB0ZXN0X2xvbmdfaGVhZGVyX3RoZW5fbG9uZ19oZWFkZXIoc2Vs
Zik6Ci0gICAgICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGNyeXB0byA9
IGNyZWF0ZV9jcnlwdG8oKQotCi0gICAgICAgICMgSU5JVElBTAotICAgICAgICBidWlsZGVyLnN0
YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCAxMjM2KQotICAgICAgICBi
dWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICBi
dWYucHVzaF9ieXRlcyhieXRlcygxOTkpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxk
ZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgSEFORFNIQUtFCi0gICAgICAgIGJ1aWxk
ZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX0hBTkRTSEFLRSwgY3J5cHRvKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgOTkzKQotICAg
ICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAg
ICAgICBidWYucHVzaF9ieXRlcyhieXRlcygyOTkpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgT05FX1JUVAotICAgICAgICBi
dWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCA2NjYpCi0g
ICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0g
ICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKDI5OSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMK
LSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGVuKGRhdGFncmFtc1swXSksIDkxNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIHBhY2tldHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgUXVpY1Nl
bnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVwb2NoLklOSVRJQUwsCi0gICAg
ICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19h
Y2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2NyeXB0b19wYWNrZXQ9
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJlcj0wLAotICAgICAgICAgICAg
ICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9JTklUSUFMLAotICAgICAgICAgICAgICAg
ICAgICBzZW50X2J5dGVzPTI0NCwKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAg
IFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5IQU5EU0hB
S0UsCi0gICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2NyeXB0
b19wYWNrZXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJlcj0xLAotICAg
ICAgICAgICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9IQU5EU0hBS0UsCi0gICAg
ICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MzQzLAotICAgICAgICAgICAgICAgICksCi0gICAg
ICAgICAgICAgICAgUXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVw
b2NoLk9ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAg
IGlzX2NyeXB0b19wYWNrZXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJl
cj0yLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9PTkVfUlRU
LAotICAgICAgICAgICAgICAgICAgICBzZW50X2J5dGVzPTMyNywKLSAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMykKLQotICAg
IGRlZiB0ZXN0X3Nob3J0X2hlYWRlcl9lbXB0eShzZWxmKToKLSAgICAgICAgYnVpbGRlciA9IGNy
ZWF0ZV9idWlsZGVyKCkKLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAg
ICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTI1
MykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0g
ICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1
aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtcywgW10pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2V0cywgW10pCi0KLSAgICAgICAgIyBjaGVjayBi
dWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAw
KQotCi0gICAgZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX3BhZGRpbmcoc2VsZik6Ci0gICAgICAgIGJ1
aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGNyeXB0byA9IGNyZWF0ZV9jcnlwdG8o
KQotCi0gICAgICAgICMgT05FX1JUVCwgZnVsbCBsZW5ndGgKLSAgICAgICAgYnVpbGRlci5zdGFy
dF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTI1MykKLSAgICAgICAgYnVm
ID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLkNSWVBUTykKLSAgICAgICAgYnVm
LnB1c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAj
IGNoZWNrIGRhdGFncmFtcwotICAgICAgICBkYXRhZ3JhbXMsIHBhY2tldHMgPSBidWlsZGVyLmZs
dXNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zKSwgMSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zWzBdKSwgMTI4MCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHBhY2tldHMsCi0gICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgUXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVw
b2NoLk9ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAg
IGlzX2NyeXB0b19wYWNrZXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJl
cj0wLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9PTkVfUlRU
LAotICAgICAgICAgICAgICAgICAgICBzZW50X2J5dGVzPTEyODAsCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMSkKLQotICAg
IGRlZiB0ZXN0X3Nob3J0X2hlYWRlcl9tYXhfZmxpZ2h0X2J5dGVzKHNlbGYpOgotICAgICAgICAi
IiIKLSAgICAgICAgbWF4X2ZsaWdodF9ieXRlcyBsaW1pdHMgc2VudCBkYXRhLgotICAgICAgICAi
IiIKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKCkKLSAgICAgICAgYnVpbGRlci5t
YXhfZmxpZ2h0X2J5dGVzID0gMTAwMAotCi0gICAgICAgIGNyeXB0byA9IGNyZWF0ZV9jcnlwdG8o
KQotCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9SVFQsIGNy
eXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRf
c3BhY2UsIDk3MykKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVU
eXBlLkNSWVBUTykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5p
bmdfZmxpZ2h0X3NwYWNlKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tl
dF9pc19lbXB0eSkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNQYWNrZXRC
dWlsZGVyU3RvcCk6Ci0gICAgICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQ
RV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAgICAgICBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNG
cmFtZVR5cGUuQ1JZUFRPKQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRh
dGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihkYXRhZ3JhbXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRh
Z3JhbXNbMF0pLCAxMDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
cGFja2V0cywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgK
LSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2guT05FX1JUVCwKLSAgICAgICAgICAgICAg
ICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRp
bmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAg
ICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBh
Y2tldF90eXBlPVBBQ0tFVF9UWVBFX09ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRf
Ynl0ZXM9MTAwMCwKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgXSwKLSAgICAgICAg
KQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1
aWxkZXIucGFja2V0X251bWJlciwgMSkKLQotICAgIGRlZiB0ZXN0X3Nob3J0X2hlYWRlcl9tYXhf
ZmxpZ2h0X2J5dGVzX3plcm8oc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBtYXhfZmxpZ2h0
X2J5dGVzID0gMCBvbmx5IGFsbG93cyBBQ0tzIGFuZCBDT05ORUNUSU9OX0NMT1NFLgotCi0gICAg
ICAgIENoZWNrIENSWVBUTyBpcyBub3QgYWxsb3dlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIGJ1
aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGJ1aWxkZXIubWF4X2ZsaWdodF9ieXRl
cyA9IDAKLQotICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNQYWNrZXRCdWlsZGVyU3RvcCk6Ci0gICAgICAgICAgICBi
dWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAg
ICAgICBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotCi0gICAgICAg
ICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIu
Zmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAwKQotCi0g
ICAgICAgICMgY2hlY2sgYnVpbGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIu
cGFja2V0X251bWJlciwgMCkKLQotICAgIGRlZiB0ZXN0X3Nob3J0X2hlYWRlcl9tYXhfZmxpZ2h0
X2J5dGVzX3plcm9fYWNrKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgbWF4X2ZsaWdodF9i
eXRlcyA9IDAgb25seSBhbGxvd3MgQUNLcyBhbmQgQ09OTkVDVElPTl9DTE9TRS4KLQotICAgICAg
ICBDaGVjayBBQ0sgaXMgYWxsb3dlZC4KLSAgICAgICAgIiIiCi0gICAgICAgIGJ1aWxkZXIgPSBj
cmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGJ1aWxkZXIubWF4X2ZsaWdodF9ieXRlcyA9IDAKLQot
ICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICBidWlsZGVyLnN0YXJ0
X3BhY2tldChQQUNLRVRfVFlQRV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAgIGJ1ZiA9IGJ1aWxk
ZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5BQ0spCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVz
KGJ5dGVzKDY0KSkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNQYWNrZXRC
dWlsZGVyU3RvcCk6Ci0gICAgICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQ
RV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAgICAgICBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNG
cmFtZVR5cGUuQ1JZUFRPKQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRh
dGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihkYXRhZ3JhbXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRh
Z3JhbXNbMF0pLCA5MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHBh
Y2tldHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgUXVpY1NlbnRQYWNrZXQoCi0g
ICAgICAgICAgICAgICAgICAgIGVwb2NoPUVwb2NoLk9ORV9SVFQsCi0gICAgICAgICAgICAgICAg
ICAgIGluX2ZsaWdodD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGlu
Zz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJlcj0wLAotICAgICAgICAgICAgICAgICAgICBw
YWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9PTkVfUlRULAotICAgICAgICAgICAgICAgICAgICBzZW50
X2J5dGVzPTkyLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICBdLAotICAgICAgICAp
Ci0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVp
bGRlci5wYWNrZXRfbnVtYmVyLCAxKQotCi0gICAgZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX21heF90
b3RhbF9ieXRlc18xKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgbWF4X3RvdGFsX2J5dGVz
IGRvZXNuJ3QgYWxsb3cgYW55IHBhY2tldHMuCi0gICAgICAgICIiIgotICAgICAgICBidWlsZGVy
ID0gY3JlYXRlX2J1aWxkZXIoKQotICAgICAgICBidWlsZGVyLm1heF90b3RhbF9ieXRlcyA9IDEx
Ci0KLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhRdWljUGFja2V0QnVpbGRlclN0b3ApOgotICAgICAgICAgICAgYnVpbGRl
ci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotCi0gICAgICAgICMg
Y2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1
c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtcywgW10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocGFja2V0cywgW10pCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAwKQotCi0gICAg
ZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX21heF90b3RhbF9ieXRlc18yKHNlbGYpOgotICAgICAgICAi
IiIKLSAgICAgICAgbWF4X3RvdGFsX2J5dGVzIGFsbG93cyBhIHNob3J0IHBhY2tldC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGJ1aWxk
ZXIubWF4X3RvdGFsX2J5dGVzID0gODAwCi0KLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0
bygpCi0KLSAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwg
Y3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdo
dF9zcGFjZSwgNzczKQotICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFt
ZVR5cGUuQ1JZUFRPKQotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhidWlsZGVyLnJlbWFp
bmluZ19mbGlnaHRfc3BhY2UpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxkZXIucGFj
a2V0X2lzX2VtcHR5KQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY1BhY2tl
dEJ1aWxkZXJTdG9wKToKLSAgICAgICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9U
WVBFX09ORV9SVFQsIGNyeXB0bykKLQotICAgICAgICAjIGNoZWNrIGRhdGFncmFtcwotICAgICAg
ICBkYXRhZ3JhbXMsIHBhY2tldHMgPSBidWlsZGVyLmZsdXNoKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oZGF0YWdyYW1zKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4o
ZGF0YWdyYW1zWzBdKSwgODAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgcGFja2V0cywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tl
dCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2guT05FX1JUVCwKLSAgICAgICAgICAg
ICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGlj
aXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAg
IHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX09ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNl
bnRfYnl0ZXM9ODAwLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxkZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
dWlsZGVyLnBhY2tldF9udW1iZXIsIDEpCi0KLSAgICBkZWYgdGVzdF9zaG9ydF9oZWFkZXJfbWF4
X3RvdGFsX2J5dGVzXzMoc2VsZik6Ci0gICAgICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigp
Ci0gICAgICAgIGJ1aWxkZXIubWF4X3RvdGFsX2J5dGVzID0gMjAwMAotCi0gICAgICAgIGNyeXB0
byA9IGNyZWF0ZV9jcnlwdG8oKQotCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tF
VF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVy
LnJlbWFpbmluZ19mbGlnaHRfc3BhY2UsIDEyNTMpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3Rh
cnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5
dGVzKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgYnVpbGRlci5zdGFydF9w
YWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgNjkzKQotICAgICAgICBidWYgPSBi
dWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICBidWYucHVz
aF9ieXRlcyhieXRlcyhidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRfc3BhY2UpKQotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoUXVpY1BhY2tldEJ1aWxkZXJTdG9wKToKLSAgICAgICAgICAgIGJ1
aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLQotICAgICAg
ICAjIGNoZWNrIGRhdGFncmFtcwotICAgICAgICBkYXRhZ3JhbXMsIHBhY2tldHMgPSBidWlsZGVy
LmZsdXNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zKSwgMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zWzBdKSwgMTI4MCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zWzFdKSwgNzIwKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2gu
T05FX1JUVCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAg
ICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNf
Y3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAs
Ci0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX09ORV9SVFQsCi0g
ICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAgICAgICApLAot
ICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBlcG9j
aD1FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9u
dW1iZXI9MSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfT05F
X1JUVCwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9ieXRlcz03MjAsCi0gICAgICAgICAgICAg
ICAgKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxk
ZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnBhY2tldF9udW1iZXIsIDIpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9yYW5nZXNldC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy90ZXN0X3Jhbmdlc2V0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1YjQwOGM4YWM2YzUyMzZkMTM2MzQ4YWQyNGFiZjlmYTZkODU5MzhlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0
X3Jhbmdlc2V0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjM3ICswLDAgQEAKLWZyb20gdW5pdHRl
c3QgaW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlvcXVpYy5xdWljLnJhbmdlc2V0IGltcG9ydCBS
YW5nZVNldAotCi0KLWNsYXNzIFJhbmdlU2V0VGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3Rf
YWRkX3NpbmdsZV9kdXBsaWNhdGUoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQo
KQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
c3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMSldKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMSldKQot
Ci0gICAgZGVmIHRlc3RfYWRkX3NpbmdsZV9vcmRlcmVkKHNlbGYpOgotICAgICAgICByYW5nZXNl
dCA9IFJhbmdlU2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoMCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDEpXSkKLQotICAgICAgICByYW5n
ZXNldC5hZGQoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jh
bmdlKDAsIDIpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoMikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDMpXSkKLQotICAgIGRlZiB0ZXN0X2Fk
ZF9zaW5nbGVfbWVyZ2Uoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotCi0g
ICAgICAgIHJhbmdlc2V0LmFkZCgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFu
Z2VzZXQpLCBbcmFuZ2UoMCwgMSldKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMSksIHJhbmdlKDIs
IDMpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDMpXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9zaW5n
bGVfcmV2ZXJzZShzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAgICAg
ICAgcmFuZ2VzZXQuYWRkKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNl
dCksIFtyYW5nZSgyLCAzKV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDEpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgxLCAzKV0pCi0KLSAgICAgICAg
cmFuZ2VzZXQuYWRkKDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCks
IFtyYW5nZSgwLCAzKV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfcmFuZ2Vfb3JkZXJlZChzZWxmKToK
LSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDAs
IDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAy
KV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDIsIDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCA0KV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRk
KDQsIDYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgw
LCA2KV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfcmFuZ2VfbWVyZ2Uoc2VsZik6Ci0gICAgICAgIHJh
bmdlc2V0ID0gUmFuZ2VTZXQoKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgwLCAyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMildKQotCi0gICAg
ICAgIHJhbmdlc2V0LmFkZCgzLCA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFu
Z2VzZXQpLCBbcmFuZ2UoMCwgMiksIHJhbmdlKDMsIDUpXSkKLQotICAgICAgICByYW5nZXNldC5h
ZGQoMiwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jhbmdl
KDAsIDUpXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9yYW5nZV9vdmVybGFwKHNlbGYpOgotICAgICAg
ICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoMCwgMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDIpXSkKLQot
ICAgICAgICByYW5nZXNldC5hZGQoMywgNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0
KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDIpLCByYW5nZSgzLCA1KV0pCi0KLSAgICAgICAgcmFuZ2Vz
ZXQuYWRkKDEsIDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFty
YW5nZSgwLCA1KV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfcmFuZ2Vfb3ZlcmxhcF8yKHNlbGYpOgot
ICAgICAgICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoMiwg
NCkKLSAgICAgICAgcmFuZ2VzZXQuYWRkKDYsIDgpCi0gICAgICAgIHJhbmdlc2V0LmFkZCgxMCwg
MTIpCi0gICAgICAgIHJhbmdlc2V0LmFkZCgxNiwgMTgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDIsIDQpLCByYW5nZSg2LCA4
KSwgcmFuZ2UoMTAsIDEyKSwgcmFuZ2UoMTYsIDE4KV0KLSAgICAgICAgKQotCi0gICAgICAgIHJh
bmdlc2V0LmFkZCgxLCAxNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0
KSwgW3JhbmdlKDEsIDE1KSwgcmFuZ2UoMTYsIDE4KV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfcmFu
Z2VfcmV2ZXJzZShzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAgICAg
ICAgcmFuZ2VzZXQuYWRkKDYsIDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5n
ZXNldCksIFtyYW5nZSg2LCA4KV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDMsIDUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgzLCA1KSwgcmFuZ2Uo
NiwgOCldKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgwLCAyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMiksIHJhbmdlKDMsIDUpLCByYW5nZSg2
LCA4KV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfcmFuZ2VfdW5vcmRlcmVkX2NvbnRpZ3VvdXMoc2Vs
Zik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotCi0gICAgICAgIHJhbmdlc2V0LmFk
ZCgwLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2Uo
MCwgMildKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCg0LCA2KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMiksIHJhbmdlKDQsIDYpXSkKLQotICAg
ICAgICByYW5nZXNldC5hZGQoMiwgNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJh
bmdlc2V0KSwgW3JhbmdlKDAsIDYpXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9yYW5nZV91bm9yZGVy
ZWRfc3BhcnNlKHNlbGYpOgotICAgICAgICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLQotICAgICAg
ICByYW5nZXNldC5hZGQoMCwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdl
c2V0KSwgW3JhbmdlKDAsIDIpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoNiwgOCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDIpLCByYW5nZSg2
LCA4KV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDMsIDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAyKSwgcmFuZ2UoMywgNSksIHJhbmdlKDYs
IDgpXSkKLQotICAgIGRlZiB0ZXN0X3N1YnRyYWN0KHNlbGYpOgotICAgICAgICByYW5nZXNldCA9
IFJhbmdlU2V0KCkKLSAgICAgICAgcmFuZ2VzZXQuYWRkKDAsIDEwKQotICAgICAgICByYW5nZXNl
dC5hZGQoMjAsIDMwKQotCi0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDAsIDMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgzLCAxMCksIHJhbmdlKDIw
LCAzMCldKQotCi0gICAgZGVmIHRlc3Rfc3VidHJhY3Rfbm9fY2hhbmdlKHNlbGYpOgotICAgICAg
ICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLSAgICAgICAgcmFuZ2VzZXQuYWRkKDUsIDEwKQotICAg
ICAgICByYW5nZXNldC5hZGQoMTUsIDIwKQotICAgICAgICByYW5nZXNldC5hZGQoMjUsIDMwKQot
Ci0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDAsIDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSg1LCAxMCksIHJhbmdlKDE1LCAyMCksIHJhbmdlKDI1
LCAzMCldKQotCi0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDEwLCAxNSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDUsIDEwKSwgcmFuZ2UoMTUsIDIw
KSwgcmFuZ2UoMjUsIDMwKV0pCi0KLSAgICBkZWYgdGVzdF9zdWJ0cmFjdF9vdmVybGFwKHNlbGYp
OgotICAgICAgICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLSAgICAgICAgcmFuZ2VzZXQuYWRkKDEs
IDQpCi0gICAgICAgIHJhbmdlc2V0LmFkZCg2LCA4KQotICAgICAgICByYW5nZXNldC5hZGQoMTAs
IDIwKQotICAgICAgICByYW5nZXNldC5hZGQoMzAsIDQwKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgbGlzdChyYW5nZXNldCksIFtyYW5nZSgxLCA0KSwgcmFuZ2UoNiwg
OCksIHJhbmdlKDEwLCAyMCksIHJhbmdlKDMwLCA0MCldCi0gICAgICAgICkKLQotICAgICAgICBy
YW5nZXNldC5zdWJ0cmFjdCgwLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgbGlzdChyYW5nZXNldCksIFtyYW5nZSgyLCA0KSwgcmFuZ2UoNiwgOCksIHJhbmdlKDEw
LCAyMCksIHJhbmdlKDMwLCA0MCldCi0gICAgICAgICkKLQotICAgICAgICByYW5nZXNldC5zdWJ0
cmFjdCgzLCAxMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jh
bmdlKDIsIDMpLCByYW5nZSgxMSwgMjApLCByYW5nZSgzMCwgNDApXSkKLQotICAgIGRlZiB0ZXN0
X3N1YnRyYWN0X3NwbGl0KHNlbGYpOgotICAgICAgICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLSAg
ICAgICAgcmFuZ2VzZXQuYWRkKDAsIDEwKQotICAgICAgICByYW5nZXNldC5zdWJ0cmFjdCgyLCA1
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMiks
IHJhbmdlKDUsIDEwKV0pCi0KLSAgICBkZWYgdGVzdF9ib29sKHNlbGYpOgotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IpOgotICAgICAgICAgICAgYm9v
bChSYW5nZVNldCgpKQotCi0gICAgZGVmIHRlc3RfY29udGFpbnMoc2VsZik6Ci0gICAgICAgIHJh
bmdlc2V0ID0gUmFuZ2VTZXQoKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKDAgaW4gcmFuZ2Vz
ZXQpCi0KLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldChbcmFuZ2UoMCwgMSldKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoMCBpbiByYW5nZXNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZSgxIGluIHJhbmdlc2V0KQotCi0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoW3JhbmdlKDAs
IDEpLCByYW5nZSgzLCA2KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgwIGluIHJhbmdlc2V0
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKDEgaW4gcmFuZ2VzZXQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoMiBpbiByYW5nZXNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDMgaW4g
cmFuZ2VzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSg0IGluIHJhbmdlc2V0KQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoNSBpbiByYW5nZXNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZSg2IGluIHJhbmdlc2V0KQotCi0gICAgZGVmIHRlc3RfZXEoc2VsZik6Ci0gICAgICAgIHIwID0g
UmFuZ2VTZXQoW3JhbmdlKDAsIDEpXSkKLSAgICAgICAgcjEgPSBSYW5nZVNldChbcmFuZ2UoMSwg
MiksIHJhbmdlKDMsIDQpXSkKLSAgICAgICAgcjIgPSBSYW5nZVNldChbcmFuZ2UoMywgNCksIHJh
bmdlKDEsIDIpXSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocjAgPT0gcjApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UocjAgPT0gcjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocjAg
PT0gMCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocjEgPT0gcjEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UocjEgPT0gcjApCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyMSA9PSByMikK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyMSA9PSAwKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyMiA9PSByMikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIyID09IHIxKQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKHIyID09IHIwKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHIy
ID09IDApCi0KLSAgICBkZWYgdGVzdF9sZW4oc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFu
Z2VTZXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyYW5nZXNldCksIDApCi0KLSAg
ICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldChbcmFuZ2UoMCwgMSldKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihyYW5nZXNldCksIDEpCi0KLSAgICBkZWYgdGVzdF9wb3Aoc2VsZik6Ci0g
ICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoW3JhbmdlKDEsIDIpLCByYW5nZSgzLCA0KV0pCi0g
ICAgICAgIHIgPSByYW5nZXNldC5zaGlmdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwociwg
cmFuZ2UoMSwgMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFty
YW5nZSgzLCA0KV0pCi0KLSAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgotICAgICAgICByYW5nZXNl
dCA9IFJhbmdlU2V0KFtyYW5nZSgxLCAyKSwgcmFuZ2UoMywgNCldKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlcHIocmFuZ2VzZXQpLCAiUmFuZ2VTZXQoW3JhbmdlKDEsIDIpLCByYW5nZSgz
LCA0KV0pIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3JlY292ZXJ5LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmVjb3ZlcnkucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGMzMTNmOGZjOGE0YzQwZmI2NDMxMTQ0YjhjMGZiYmRiN2E4MGJhNTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3Rlc3RzL3Rlc3RfcmVjb3ZlcnkucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjcgKzAsMCBAQAot
aW1wb3J0IG1hdGgKLWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlvcXVp
YyBpbXBvcnQgdGxzCi1mcm9tIGFpb3F1aWMucXVpYy5wYWNrZXQgaW1wb3J0IFBBQ0tFVF9UWVBF
X0lOSVRJQUwsIFBBQ0tFVF9UWVBFX09ORV9SVFQKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldF9i
dWlsZGVyIGltcG9ydCBRdWljU2VudFBhY2tldAotZnJvbSBhaW9xdWljLnF1aWMucmFuZ2VzZXQg
aW1wb3J0IFJhbmdlU2V0Ci1mcm9tIGFpb3F1aWMucXVpYy5yZWNvdmVyeSBpbXBvcnQgKAotICAg
IFF1aWNQYWNrZXRQYWNlciwKLSAgICBRdWljUGFja2V0UmVjb3ZlcnksCi0gICAgUXVpY1BhY2tl
dFNwYWNlLAotICAgIFF1aWNSdHRNb25pdG9yLAotKQotCi0KLWRlZiBzZW5kX3Byb2JlKCk6Ci0g
ICAgcGFzcwotCi0KLWNsYXNzIFF1aWNQYWNrZXRQYWNlclRlc3QoVGVzdENhc2UpOgotICAgIGRl
ZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5wYWNlciA9IFF1aWNQYWNrZXRQYWNlcigpCi0K
LSAgICBkZWYgdGVzdF9ub19tZWFzdXJlbWVudChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUoc2VsZi5wYWNlci5uZXh0X3NlbmRfdGltZShub3c9MC4wKSkKLSAgICAgICAgc2VsZi5w
YWNlci51cGRhdGVfYWZ0ZXJfc2VuZChub3c9MC4wKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKHNlbGYucGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTAuMCkpCi0gICAgICAgIHNlbGYucGFj
ZXIudXBkYXRlX2FmdGVyX3NlbmQobm93PTAuMCkKLQotICAgIGRlZiB0ZXN0X3dpdGhfbWVhc3Vy
ZW1lbnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYucGFjZXIubmV4dF9z
ZW5kX3RpbWUobm93PTAuMCkpCi0gICAgICAgIHNlbGYucGFjZXIudXBkYXRlX2FmdGVyX3NlbmQo
bm93PTAuMCkKLQotICAgICAgICBzZWxmLnBhY2VyLnVwZGF0ZV9yYXRlKGNvbmdlc3Rpb25fd2lu
ZG93PTEyODAwMDAsIHNtb290aGVkX3J0dD0wLjA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYucGFjZXIuYnVja2V0X21heCwgMC4wMDA4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYucGFjZXIuYnVja2V0X3RpbWUsIDAuMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLnBhY2VyLnBhY2tldF90aW1lLCAwLjAwMDA1KQotCi0gICAgICAgICMgMTYgcGFja2V0cwot
ICAgICAgICBmb3IgaSBpbiByYW5nZSgxNik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydElzTm9u
ZShzZWxmLnBhY2VyLm5leHRfc2VuZF90aW1lKG5vdz0xLjApKQotICAgICAgICAgICAgc2VsZi5w
YWNlci51cGRhdGVfYWZ0ZXJfc2VuZChub3c9MS4wKQotICAgICAgICBzZWxmLmFzc2VydEFsbW9z
dEVxdWFsKHNlbGYucGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTEuMCksIDEuMDAwMDUpCi0KLSAg
ICAgICAgIyAyIHBhY2tldHMKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMik6Ci0gICAgICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShzZWxmLnBhY2VyLm5leHRfc2VuZF90aW1lKG5vdz0xLjAwMDA1
KSkKLSAgICAgICAgICAgIHNlbGYucGFjZXIudXBkYXRlX2FmdGVyX3NlbmQobm93PTEuMDAwMDUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoc2VsZi5wYWNlci5uZXh0X3NlbmRfdGlt
ZShub3c9MS4wMDAwNSksIDEuMDAwMSkKLQotICAgICAgICAjIDEgcGFja2V0Ci0gICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKHNlbGYucGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTEuMDAwMSkpCi0g
ICAgICAgIHNlbGYucGFjZXIudXBkYXRlX2FmdGVyX3NlbmQobm93PTEuMDAwMSkKLSAgICAgICAg
c2VsZi5hc3NlcnRBbG1vc3RFcXVhbChzZWxmLnBhY2VyLm5leHRfc2VuZF90aW1lKG5vdz0xLjAw
MDEpLCAxLjAwMDE1KQotCi0gICAgICAgICMgMiBwYWNrZXRzCi0gICAgICAgIGZvciBpIGluIHJh
bmdlKDIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5wYWNlci5uZXh0X3Nl
bmRfdGltZShub3c9MS4wMDAxNSkpCi0gICAgICAgICAgICBzZWxmLnBhY2VyLnVwZGF0ZV9hZnRl
cl9zZW5kKG5vdz0xLjAwMDE1KQotICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHNlbGYu
cGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTEuMDAwMTUpLCAxLjAwMDIpCi0KLQotY2xhc3MgUXVp
Y1BhY2tldFJlY292ZXJ5VGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg
ICAgICBzZWxmLklOSVRJQUxfU1BBQ0UgPSBRdWljUGFja2V0U3BhY2UoKQotICAgICAgICBzZWxm
LkhBTkRTSEFLRV9TUEFDRSA9IFF1aWNQYWNrZXRTcGFjZSgpCi0gICAgICAgIHNlbGYuT05FX1JU
VF9TUEFDRSA9IFF1aWNQYWNrZXRTcGFjZSgpCi0KLSAgICAgICAgc2VsZi5yZWNvdmVyeSA9IFF1
aWNQYWNrZXRSZWNvdmVyeSgKLSAgICAgICAgICAgIGlzX2NsaWVudF93aXRob3V0XzFydHQ9RmFs
c2UsIHNlbmRfcHJvYmU9c2VuZF9wcm9iZQotICAgICAgICApCi0gICAgICAgIHNlbGYucmVjb3Zl
cnkuc3BhY2VzID0gWwotICAgICAgICAgICAgc2VsZi5JTklUSUFMX1NQQUNFLAotICAgICAgICAg
ICAgc2VsZi5IQU5EU0hBS0VfU1BBQ0UsCi0gICAgICAgICAgICBzZWxmLk9ORV9SVFRfU1BBQ0Us
Ci0gICAgICAgIF0KLQotICAgIGRlZiB0ZXN0X2Rpc2NhcmRfc3BhY2Uoc2VsZik6Ci0gICAgICAg
IHNlbGYucmVjb3ZlcnkuZGlzY2FyZF9zcGFjZShzZWxmLklOSVRJQUxfU1BBQ0UpCi0KLSAgICBk
ZWYgdGVzdF9vbl9hY2tfcmVjZWl2ZWRfYWNrX2VsaWNpdGluZyhzZWxmKToKLSAgICAgICAgcGFj
a2V0ID0gUXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICBlcG9jaD10bHMuRXBvY2guT05FX1JU
VCwKLSAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgaXNfYWNrX2VsaWNp
dGluZz1UcnVlLAotICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1GYWxzZSwKLSAgICAgICAg
ICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBF
X09ORV9SVFQsCi0gICAgICAgICAgICBzZW50X2J5dGVzPTEyODAsCi0gICAgICAgICAgICBzZW50
X3RpbWU9MC4wLAotICAgICAgICApCi0gICAgICAgIHNwYWNlID0gc2VsZi5PTkVfUlRUX1NQQUNF
Ci0KLSAgICAgICAgIyDCoHBhY2tldCBzZW50Ci0gICAgICAgIHNlbGYucmVjb3Zlcnkub25fcGFj
a2V0X3NlbnQocGFja2V0LCBzcGFjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJl
Y292ZXJ5LmJ5dGVzX2luX2ZsaWdodCwgMTI4MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
cGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4oc3BhY2Uuc2VudF9wYWNrZXRzKSwgMSkKLQotICAgICAgICAjIHBhY2tldCBhY2snZAot
ICAgICAgICBzZWxmLnJlY292ZXJ5Lm9uX2Fja19yZWNlaXZlZCgKLSAgICAgICAgICAgIHNwYWNl
LCBhY2tfcmFuZ2VzZXQ9UmFuZ2VTZXQoW3JhbmdlKDAsIDEpXSksIGFja19kZWxheT0wLjAsIG5v
dz0xMC4wCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJlY292ZXJ5
LmJ5dGVzX2luX2ZsaWdodCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcGFjZS5hY2tf
ZWxpY2l0aW5nX2luX2ZsaWdodCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc3Bh
Y2Uuc2VudF9wYWNrZXRzKSwgMCkKLQotICAgICAgICAjIGNoZWNrIFJUVAotICAgICAgICBzZWxm
LmFzc2VydFRydWUoc2VsZi5yZWNvdmVyeS5fcnR0X2luaXRpYWxpemVkKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYucmVjb3ZlcnkuX3J0dF9sYXRlc3QsIDEwLjApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVyeS5fcnR0X21pbiwgMTAuMCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLnJlY292ZXJ5Ll9ydHRfc21vb3RoZWQsIDEwLjApCi0KLSAgICBk
ZWYgdGVzdF9vbl9hY2tfcmVjZWl2ZWRfbm9uX2Fja19lbGljaXRpbmcoc2VsZik6Ci0gICAgICAg
IHBhY2tldCA9IFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgZXBvY2g9dGxzLkVwb2NoLk9O
RV9SVFQsCi0gICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgIGlzX2Fja19l
bGljaXRpbmc9RmFsc2UsCi0gICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PUZhbHNlLAotICAg
ICAgICAgICAgcGFja2V0X251bWJlcj0wLAotICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VU
X1RZUEVfT05FX1JUVCwKLSAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAg
IHNlbnRfdGltZT0xMjMuNDUsCi0gICAgICAgICkKLSAgICAgICAgc3BhY2UgPSBzZWxmLk9ORV9S
VFRfU1BBQ0UKLQotICAgICAgICAjIMKgcGFja2V0IHNlbnQKLSAgICAgICAgc2VsZi5yZWNvdmVy
eS5vbl9wYWNrZXRfc2VudChwYWNrZXQsIHNwYWNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYucmVjb3ZlcnkuYnl0ZXNfaW5fZmxpZ2h0LCAxMjgwKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNwYWNlLmFja19lbGljaXRpbmdfaW5fZmxpZ2h0LCAwKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihzcGFjZS5zZW50X3BhY2tldHMpLCAxKQotCi0gICAgICAgICMgcGFja2V0
IGFjaydkCi0gICAgICAgIHNlbGYucmVjb3Zlcnkub25fYWNrX3JlY2VpdmVkKAotICAgICAgICAg
ICAgc3BhY2UsIGFja19yYW5nZXNldD1SYW5nZVNldChbcmFuZ2UoMCwgMSldKSwgYWNrX2RlbGF5
PTAuMCwgbm93PTEwLjAKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
cmVjb3ZlcnkuYnl0ZXNfaW5fZmxpZ2h0LCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNw
YWNlLmFja19lbGljaXRpbmdfaW5fZmxpZ2h0LCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihzcGFjZS5zZW50X3BhY2tldHMpLCAwKQotCi0gICAgICAgICMgY2hlY2sgUlRUCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5yZWNvdmVyeS5fcnR0X2luaXRpYWxpemVkKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucmVjb3ZlcnkuX3J0dF9sYXRlc3QsIDAuMCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJlY292ZXJ5Ll9ydHRfbWluLCBtYXRoLmluZikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJlY292ZXJ5Ll9ydHRfc21vb3RoZWQsIDAu
MCkKLQotICAgIGRlZiB0ZXN0X29uX3BhY2tldF9sb3N0X2NyeXB0byhzZWxmKToKLSAgICAgICAg
cGFja2V0ID0gUXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICBlcG9jaD10bHMuRXBvY2guSU5J
VElBTCwKLSAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgaXNfYWNrX2Vs
aWNpdGluZz1UcnVlLAotICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAg
ICAgICAgcGFja2V0X251bWJlcj0wLAotICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZ
UEVfSU5JVElBTCwKLSAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAgIHNl
bnRfdGltZT0wLjAsCi0gICAgICAgICkKLSAgICAgICAgc3BhY2UgPSBzZWxmLklOSVRJQUxfU1BB
Q0UKLQotICAgICAgICBzZWxmLnJlY292ZXJ5Lm9uX3BhY2tldF9zZW50KHBhY2tldCwgc3BhY2Up
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVyeS5ieXRlc19pbl9mbGlnaHQs
IDEyODApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BhY2UuYWNrX2VsaWNpdGluZ19pbl9m
bGlnaHQsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNwYWNlLnNlbnRfcGFja2V0
cyksIDEpCi0KLSAgICAgICAgc2VsZi5yZWNvdmVyeS5fZGV0ZWN0X2xvc3Moc3BhY2UsIG5vdz0x
LjApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVyeS5ieXRlc19pbl9mbGln
aHQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BhY2UuYWNrX2VsaWNpdGluZ19pbl9m
bGlnaHQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNwYWNlLnNlbnRfcGFja2V0
cyksIDApCi0KLQotY2xhc3MgUXVpY1J0dE1vbml0b3JUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYg
dGVzdF9tb25pdG9yKHNlbGYpOgotICAgICAgICBtb25pdG9yID0gUXVpY1J0dE1vbml0b3IoKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9
MTAsIG5vdz0xMDAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9zYW1wbGVz
LCBbMTAsIDAuMCwgMC4wLCAwLjAsIDAuMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9u
aXRvci5fcmVhZHkpCi0KLSAgICAgICAgIyBub3QgdGFrZW4gaW50byBhY2NvdW50Ci0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9MTEsIG5vdz0x
MDAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9zYW1wbGVzLCBbMTAsIDAu
MCwgMC4wLCAwLjAsIDAuMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5fcmVh
ZHkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5n
KHJ0dD0xMSwgbm93PTEwMDEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX3Nh
bXBsZXMsIFsxMCwgMTEsIDAuMCwgMC4wLCAwLjBdKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KG1vbml0b3IuX3JlYWR5KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19y
dHRfaW5jcmVhc2luZyhydHQ9MTIsIG5vdz0xMDAyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChtb25pdG9yLl9zYW1wbGVzLCBbMTAsIDExLCAxMiwgMC4wLCAwLjBdKQotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKG1vbml0b3IuX3JlYWR5KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
bW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9MTMsIG5vdz0xMDAzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtb25pdG9yLl9zYW1wbGVzLCBbMTAsIDExLCAxMiwgMTMsIDAuMF0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5fcmVhZHkpCi0KLSAgICAgICAgIyB3ZSBu
b3cgaGF2ZSBlbm91Z2ggc2FtcGxlcwotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vbml0b3Iu
aXNfcnR0X2luY3JlYXNpbmcocnR0PTE0LCBub3c9MTAwNCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobW9uaXRvci5fc2FtcGxlcywgWzEwLCAxMSwgMTIsIDEzLCAxNF0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtb25pdG9yLl9yZWFkeSkKLQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KG1vbml0b3IuaXNfcnR0X2luY3JlYXNpbmcocnR0PTIwLCBub3c9MTAwNSkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobW9uaXRvci5faW5jcmVhc2VzLCAwKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9MzAsIG5vdz0xMDA2KSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9pbmNyZWFzZXMsIDApCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5nKHJ0dD00MCwgbm93PTEw
MDcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX2luY3JlYXNlcywgMCkKLQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vbml0b3IuaXNfcnR0X2luY3JlYXNpbmcocnR0PTUw
LCBub3c9MTAwOCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9uaXRvci5faW5jcmVhc2Vz
LCAwKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2lu
ZyhydHQ9NjAsIG5vdz0xMDA5KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9p
bmNyZWFzZXMsIDEpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9p
bmNyZWFzaW5nKHJ0dD03MCwgbm93PTEwMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1v
bml0b3IuX2luY3JlYXNlcywgMikKLQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vbml0b3Iu
aXNfcnR0X2luY3JlYXNpbmcocnR0PTgwLCBub3c9MTAxMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobW9uaXRvci5faW5jcmVhc2VzLCAzKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
bW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9OTAsIG5vdz0xMDEyKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtb25pdG9yLl9pbmNyZWFzZXMsIDQpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG1vbml0b3IuaXNfcnR0X2luY3JlYXNpbmcocnR0PTEwMCwgbm93PTEwMTMpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX2luY3JlYXNlcywgNSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3JldHJ5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rl
c3RfcmV0cnkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3NmYwMjNiZjkzZGE0
YzY5ZWI5YWFkM2UxOTY4YmZhZmYzN2EzNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmV0cnkucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1mcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQot
Ci1mcm9tIGFpb3F1aWMucXVpYy5yZXRyeSBpbXBvcnQgUXVpY1JldHJ5VG9rZW5IYW5kbGVyCi0K
LQotY2xhc3MgUXVpY1JldHJ5VG9rZW5IYW5kbGVyVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRl
c3RfcmV0cnlfdG9rZW4oc2VsZik6Ci0gICAgICAgIGFkZHIgPSAoIjEyNy4wLjAuMSIsIDEyMzQp
Ci0gICAgICAgIGNpZCA9IGIiXHgwOFx4MDdceDA2XDA1XHgwNFx4MDNceDAyXHgwMSIKLQotICAg
ICAgICBoYW5kbGVyID0gUXVpY1JldHJ5VG9rZW5IYW5kbGVyKCkKLQotICAgICAgICAjIGNyZWF0
ZSB0b2tlbgotICAgICAgICB0b2tlbiA9IGhhbmRsZXIuY3JlYXRlX3Rva2VuKGFkZHIsIGNpZCkK
LSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUodG9rZW4pCi0KLSAgICAgICAgIyB2YWxpZGF0
ZSB0b2tlbiAtIG9rCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFuZGxlci52YWxpZGF0ZV90
b2tlbihhZGRyLCB0b2tlbiksIGNpZCkKLQotICAgICAgICAjIHZhbGlkYXRlIHRva2VuIC0gZW1w
dHkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAg
ICAgICAgICAgIGhhbmRsZXIudmFsaWRhdGVfdG9rZW4oYWRkciwgYiIiKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyKGNtLmV4Y2VwdGlvbiksICJDaXBoZXJ0ZXh0
IGxlbmd0aCBtdXN0IGJlIGVxdWFsIHRvIGtleSBzaXplLiIKLSAgICAgICAgKQotCi0gICAgICAg
ICMgdmFsaWRhdGUgdG9rZW4gLSB3cm9uZyBhZGRyZXNzCi0gICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgY206Ci0gICAgICAgICAgICBoYW5kbGVyLnZhbGlkYXRl
X3Rva2VuKCgiMS4yLjMuNCIsIDEyMzQ1KSwgdG9rZW4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJSZW1vdGUgYWRkcmVzcyBkb2VzIG5vdCBtYXRjaC4iKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
NTM3YWUyZWQxMmI2ZjZjMDQyZDA5OTA0ZWNmYjRmMGMyZGY1N2VmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3N0
cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0NiArMCwwIEBACi1mcm9tIHVuaXR0ZXN0IGlt
cG9ydCBUZXN0Q2FzZQotCi1mcm9tIGFpb3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFN0cmVhbURh
dGFSZWNlaXZlZAotZnJvbSBhaW9xdWljLnF1aWMucGFja2V0IGltcG9ydCBRdWljU3RyZWFtRnJh
bWUKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldF9idWlsZGVyIGltcG9ydCBRdWljRGVsaXZlcnlT
dGF0ZQotZnJvbSBhaW9xdWljLnF1aWMuc3RyZWFtIGltcG9ydCBRdWljU3RyZWFtCi0KLQotY2xh
c3MgUXVpY1N0cmVhbVRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3JlY3ZfZW1wdHkoc2Vs
Zik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYnl0ZXMoc3RyZWFtLl9yZWN2X2J1ZmZlciksIGIiIikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBbXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uX3JlY3ZfYnVmZmVyX3N0YXJ0LCAwKQotCi0gICAgICAg
ICMgZW1wdHkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uYWRkX2ZyYW1lKFF1aWNT
dHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIiIpKSwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChieXRlcyhzdHJlYW0uX3JlY3ZfYnVmZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9yZWN2X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cmVhbS5fcmVjdl9idWZmZXJfc3RhcnQsIDApCi0KLSAgICBkZWYgdGVzdF9y
ZWN2X29yZGVyZWQoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lk
PTApCi0KLSAgICAgICAgIyBhZGQgZGF0YSBhdCBzdGFydAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0
PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChk
YXRhPWIiMDEyMzQ1NjciLCBlbmRfc3RyZWFtPUZhbHNlLCBzdHJlYW1faWQ9MCksCi0gICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcyhzdHJlYW0uX3JlY3ZfYnVmZmVyKSwg
YiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9yZWN2X3Jhbmdlcyks
IFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5fcmVjdl9idWZmZXJfc3RhcnQs
IDgpCi0KLSAgICAgICAgIyBhZGQgbW9yZSBkYXRhCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9OCwg
ZGF0YT1iIjg5MDEyMzQ1IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9
YiI4OTAxMjM0NSIsIGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgMTYp
Ci0KLSAgICAgICAgIyBhZGQgZGF0YSBhbmQgZmluCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MTYs
IGRhdGE9YiI2Nzg5MDEyMyIsIGZpbj1UcnVlKSksCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVj
ZWl2ZWQoZGF0YT1iIjY3ODkwMTIzIiwgZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0g
ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcyhzdHJlYW0uX3JlY3ZfYnVm
ZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9yZWN2X3Jh
bmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5fcmVjdl9idWZmZXJf
c3RhcnQsIDI0KQotCi0gICAgZGVmIHRlc3RfcmVjdl91bm9yZGVyZWQoc2VsZik6Ci0gICAgICAg
IHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0KLSAgICAgICAgIyBhZGQgZGF0YSBh
dCBvZmZzZXQgOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFt
LmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTgsIGRhdGE9YiI4OTAxMjM0NSIpKSwg
Tm9uZQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBi
eXRlcyhzdHJlYW0uX3JlY3ZfYnVmZmVyKSwgYiJceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAw
XHgwMDg5MDEyMzQ1IgotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChz
dHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW3JhbmdlKDgsIDE2KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgMCkKLQotICAgICAgICAjIGFkZCBkYXRh
IGF0IG9mZnNldCAwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJl
YW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3Iikp
LAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2Nzg5MDEyMzQ1
IiwgZW5kX3N0cmVhbT1GYWxzZSwgc3RyZWFtX2lkPTApLAotICAgICAgICApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYnl0ZXMoc3RyZWFtLl9yZWN2X2J1ZmZlciksIGIiIikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBbXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uX3JlY3ZfYnVmZmVyX3N0YXJ0LCAxNikKLQotICAgIGRl
ZiB0ZXN0X3JlY3Zfb2Zmc2V0X29ubHkoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJl
YW0oc3RyZWFtX2lkPTApCi0KLSAgICAgICAgIyBhZGQgZGF0YSBhdCBvZmZzZXQgMAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNl
dD0wLCBkYXRhPWIiIikpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKHN0
cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChz
dHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFt
Ll9yZWN2X2J1ZmZlcl9zdGFydCwgMCkKLQotICAgICAgICAjIGFkZCBkYXRhIGF0IG9mZnNldCA4
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJh
bWUob2Zmc2V0PTgsIGRhdGE9YiIiKSksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBieXRlcyhzdHJlYW0uX3JlY3ZfYnVmZmVyKSwgYiJceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDBceDAwXHgwMCIKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxpc3Qoc3RyZWFtLl9yZWN2X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cmVhbS5fcmVjdl9idWZmZXJfc3RhcnQsIDApCi0KLSAgICBkZWYgdGVzdF9yZWN2X2FscmVh
ZHlfZnVsbHlfY29uc3VtZWQoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3Ry
ZWFtX2lkPTApCi0KLSAgICAgICAgIyBhZGQgZGF0YSBhdCBvZmZzZXQgMAotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJh
bWUob2Zmc2V0PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFS
ZWNlaXZlZChkYXRhPWIiMDEyMzQ1NjciLCBlbmRfc3RyZWFtPUZhbHNlLCBzdHJlYW1faWQ9MCks
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcyhzdHJlYW0uX3JlY3Zf
YnVmZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9yZWN2
X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5fcmVjdl9idWZm
ZXJfc3RhcnQsIDgpCi0KLSAgICAgICAgIyBhZGQgZGF0YSBhZ2FpbiBhdCBvZmZzZXQgMAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWlj
U3RyZWFtRnJhbWUob2Zmc2V0PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwgTm9uZQotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnl0ZXMoc3RyZWFtLl9yZWN2X2J1ZmZlciksIGIi
IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBb
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uX3JlY3ZfYnVmZmVyX3N0YXJ0LCA4
KQotCi0gICAgZGVmIHRlc3RfcmVjdl9hbHJlYWR5X3BhcnRpYWxseV9jb25zdW1lZChzZWxmKToK
LSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJlYW1faWQ9MCkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJh
bWUob2Zmc2V0PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFS
ZWNlaXZlZChkYXRhPWIiMDEyMzQ1NjciLCBlbmRfc3RyZWFtPUZhbHNlLCBzdHJlYW1faWQ9MCks
Ci0gICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3Ry
ZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTAsIGRhdGE9YiIwMTIzNDU2Nzg5
MDEyMzQ1IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiI4OTAxMjM0
NSIsIGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgMTYpCi0KLSAgICBk
ZWYgdGVzdF9yZWN2X2ZpbihzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJl
YW1faWQ9MCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFt
LmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwK
LSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChkYXRhPWIiMDEyMzQ1NjciLCBlbmRfc3Ry
ZWFtPUZhbHNlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNl
dD04LCBkYXRhPWIiODkwMTIzNDUiLCBmaW49VHJ1ZSkpLAotICAgICAgICAgICAgU3RyZWFtRGF0
YVJlY2VpdmVkKGRhdGE9YiI4OTAxMjM0NSIsIGVuZF9zdHJlYW09VHJ1ZSwgc3RyZWFtX2lkPTAp
LAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZWN2X2Zpbl9vdXRfb2Zfb3JkZXIoc2VsZik6
Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0KLSAgICAgICAgIyBh
ZGQgZGF0YSBhdCBvZmZzZXQgOCB3aXRoIEZJTgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTgsIGRh
dGE9YiI4OTAxMjM0NSIsIGZpbj1UcnVlKSksCi0gICAgICAgICAgICBOb25lLAotICAgICAgICAp
Ci0KLSAgICAgICAgIyBhZGQgZGF0YSBhdCBvZmZzZXQgMAotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0
PTAsIGRhdGE9YiIwMTIzNDU2NyIpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChk
YXRhPWIiMDEyMzQ1Njc4OTAxMjM0NSIsIGVuZF9zdHJlYW09VHJ1ZSwgc3RyZWFtX2lkPTApLAot
ICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZWN2X2Zpbl90aGVuX2RhdGEoc2VsZik6Ci0gICAg
ICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0gICAgICAgIHN0cmVhbS5hZGRf
ZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD0wLCBkYXRhPWIiIiwgZmluPVRydWUpKQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgY206Ci0gICAgICAgICAg
ICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0
NTY3IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJEYXRh
IHJlY2VpdmVkIGJleW9uZCBGSU4iKQotCi0gICAgZGVmIHRlc3RfcmVjdl9maW5fdHdpY2Uoc2Vs
Zik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1G
cmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0
YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2NyIsIGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0w
KSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3Ry
ZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTgsIGRhdGE9YiI4OTAxMjM0NSIs
IGZpbj1UcnVlKSksCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIjg5MDEy
MzQ1IiwgZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3Ry
ZWFtRnJhbWUob2Zmc2V0PTgsIGRhdGE9YiI4OTAxMjM0NSIsIGZpbj1UcnVlKSksCi0gICAgICAg
ICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIiIsIGVuZF9zdHJlYW09VHJ1ZSwgc3RyZWFt
X2lkPTApLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9yZWN2X2Zpbl93aXRob3V0X2RhdGEo
c2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oc3RyZWFtX2lkPTApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJl
YW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIiIsIGZpbj1UcnVlKSksCi0gICAgICAgICAgICBTdHJl
YW1EYXRhUmVjZWl2ZWQoZGF0YT1iIiIsIGVuZF9zdHJlYW09VHJ1ZSwgc3RyZWFtX2lkPTApLAot
ICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9zZW5kX2RhdGEoc2VsZik6Ci0gICAgICAgIHN0cmVh
bSA9IFF1aWNTdHJlYW0oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3Nl
bmRfb2Zmc2V0LCAwKQotCi0gICAgICAgICMgbm90aGluZyB0byBzZW5kIHlldAotICAgICAgICBm
cmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJh
bWUpCi0KLSAgICAgICAgIyB3cml0ZSBkYXRhCi0gICAgICAgIHN0cmVhbS53cml0ZShiIjAxMjM0
NTY3ODkwMTIzNDUiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5k
X3BlbmRpbmcpLCBbcmFuZ2UoMCwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJl
YW0ubmV4dF9zZW5kX29mZnNldCwgMCkKLQotICAgICAgICAjIHNlbmQgYSBjaHVuawotICAgICAg
ICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
cmFtZS5kYXRhLCBiIjAxMjM0NTY3IikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmcmFtZS5m
aW4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCAwKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbcmFuZ2UoOCwgMTYp
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgOCkK
LQotICAgICAgICAjIHNlbmQgYW5vdGhlciBjaHVuawotICAgICAgICBmcmFtZSA9IHN0cmVhbS5n
ZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmcmFtZS5kYXRhLCBiIjg5MDEy
MzQ1IikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmcmFtZS5maW4pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCA4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
c3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYpCi0KLSAgICAgICAgIyBub3RoaW5nIG1vcmUgdG8g
c2VuZAotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0u
X3NlbmRfcGVuZGluZyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0
X3NlbmRfb2Zmc2V0LCAxNikKLQotICAgICAgICAjIGZpcnN0IGNodW5rIGdldHMgYWNrbm93bGVk
Z2VkCi0gICAgICAgIHN0cmVhbS5vbl9kYXRhX2RlbGl2ZXJ5KFF1aWNEZWxpdmVyeVN0YXRlLkFD
S0VELCAwLCA4KQotCi0gICAgICAgICMgc2Vjb25kIGNodW5rIGdldHMgYWNrbm93bGVkZ2VkCi0g
ICAgICAgIHN0cmVhbS5vbl9kYXRhX2RlbGl2ZXJ5KFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VELCA4
LCAxNikKLQotICAgIGRlZiB0ZXN0X3NlbmRfZGF0YV9hbmRfZmluKHNlbGYpOgotICAgICAgICBz
dHJlYW0gPSBRdWljU3RyZWFtKCkKLQotICAgICAgICAjIG5vdGhpbmcgdG8gc2VuZCB5ZXQKLSAg
ICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKGZyYW1lKQotCi0gICAgICAgICMgd3JpdGUgZGF0YSBhbmQgRU9GCi0gICAgICAgIHN0cmVh
bS53cml0ZShiIjAxMjM0NTY3ODkwMTIzNDUiLCBlbmRfc3RyZWFtPVRydWUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgwLCAxNild
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQot
Ci0gICAgICAgICMgc2VuZCBhIGNodW5rCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFt
ZSg4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiMDEyMzQ1NjciKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5vZmZzZXQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5l
eHRfc2VuZF9vZmZzZXQsIDgpCi0KLSAgICAgICAgIyBzZW5kIGFub3RoZXIgY2h1bmsKLSAgICAg
ICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZnJhbWUuZGF0YSwgYiI4OTAxMjM0NSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcmFtZS5m
aW4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCA4KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAxNikKLQotICAgICAgICAj
IG5vdGhpbmcgbW9yZSB0byBzZW5kCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4
KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Rh
dGFfbG9zdChzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbSgpCi0KLSAgICAgICAg
IyBub3RoaW5nIHRvIHNlbmQgeWV0Ci0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4
KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLQotICAgICAgICAjIHdyaXRlIGRh
dGEgYW5kIEVPRgotICAgICAgICBzdHJlYW0ud3JpdGUoYiIwMTIzNDU2Nzg5MDEyMzQ1IiwgZW5k
X3N0cmVhbT1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5k
X3BlbmRpbmcpLCBbcmFuZ2UoMCwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJl
YW0ubmV4dF9zZW5kX29mZnNldCwgMCkKLQotICAgICAgICAjIHNlbmQgYSBjaHVuawotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmdldF9mcmFtZSg4KSwgUXVp
Y1N0cmVhbUZyYW1lKGRhdGE9YiIwMTIzNDU2NyIsIGZpbj1GYWxzZSwgb2Zmc2V0PTApCi0gICAg
ICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5n
KSwgW3JhbmdlKDgsIDE2KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRf
c2VuZF9vZmZzZXQsIDgpCi0KLSAgICAgICAgIyBzZW5kIGFub3RoZXIgY2h1bmsKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5nZXRfZnJhbWUoOCksIFF1aWNT
dHJlYW1GcmFtZShkYXRhPWIiODkwMTIzNDUiLCBmaW49VHJ1ZSwgb2Zmc2V0PTgpCi0gICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwg
W10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2
KQotCi0gICAgICAgICMgbm90aGluZyBtb3JlIHRvIHNlbmQKLSAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUoc3RyZWFtLmdldF9mcmFtZSg4KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0
KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
ZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2KQotCi0gICAgICAgICMgYSBjaHVuayBnZXRzIGxvc3QK
LSAgICAgICAgc3RyZWFtLm9uX2RhdGFfZGVsaXZlcnkoUXVpY0RlbGl2ZXJ5U3RhdGUuTE9TVCwg
MCwgOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5n
KSwgW3JhbmdlKDAsIDgpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9z
ZW5kX29mZnNldCwgMCkKLQotICAgICAgICAjIHNlbmQgY2h1bmsgYWdhaW4KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5nZXRfZnJhbWUoOCksIFF1aWNTdHJl
YW1GcmFtZShkYXRhPWIiMDEyMzQ1NjciLCBmaW49RmFsc2UsIG9mZnNldD0wKQotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAxNikK
LQotICAgIGRlZiB0ZXN0X3NlbmRfZGF0YV9sb3N0X2ZpbihzZWxmKToKLSAgICAgICAgc3RyZWFt
ID0gUXVpY1N0cmVhbSgpCi0KLSAgICAgICAgIyBub3RoaW5nIHRvIHNlbmQgeWV0Ci0gICAgICAg
IGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShm
cmFtZSkKLQotICAgICAgICAjIHdyaXRlIGRhdGEgYW5kIEVPRgotICAgICAgICBzdHJlYW0ud3Jp
dGUoYiIwMTIzNDU2Nzg5MDEyMzQ1IiwgZW5kX3N0cmVhbT1UcnVlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbcmFuZ2UoMCwgMTYpXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMCkKLQotICAg
ICAgICAjIHNlbmQgYSBjaHVuawotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgc3RyZWFtLmdldF9mcmFtZSg4KSwgUXVpY1N0cmVhbUZyYW1lKGRhdGE9YiIwMTIzNDU2NyIs
IGZpbj1GYWxzZSwgb2Zmc2V0PTApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW3JhbmdlKDgsIDE2KV0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDgpCi0KLSAgICAgICAgIyBz
ZW5kIGFub3RoZXIgY2h1bmsKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IHN0cmVhbS5nZXRfZnJhbWUoOCksIFF1aWNTdHJlYW1GcmFtZShkYXRhPWIiODkwMTIzNDUiLCBm
aW49VHJ1ZSwgb2Zmc2V0PTgpCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
aXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2KQotCi0gICAgICAgICMgbm90aGluZyBtb3JlIHRv
IHNlbmQKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc3RyZWFtLmdldF9mcmFtZSg4KSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2KQotCi0g
ICAgICAgICMgYSBjaHVuayBnZXRzIGxvc3QKLSAgICAgICAgc3RyZWFtLm9uX2RhdGFfZGVsaXZl
cnkoUXVpY0RlbGl2ZXJ5U3RhdGUuTE9TVCwgOCwgMTYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSg4LCAxNildKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCA4KQotCi0gICAgICAgICMg
c2VuZCBjaHVuayBhZ2FpbgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
c3RyZWFtLmdldF9mcmFtZSg4KSwgUXVpY1N0cmVhbUZyYW1lKGRhdGE9YiI4OTAxMjM0NSIsIGZp
bj1UcnVlLCBvZmZzZXQ9OCkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
c3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Jsb2NrZWQo
c2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oKQotICAgICAgICBtYXhfb2Zmc2V0
ID0gMTIKLQotICAgICAgICAjIG5vdGhpbmcgdG8gc2VuZCB5ZXQKLSAgICAgICAgZnJhbWUgPSBz
dHJlYW0uZ2V0X2ZyYW1lKDgsIG1heF9vZmZzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KGZyYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRp
bmcpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNl
dCwgMCkKLQotICAgICAgICAjIHdyaXRlIGRhdGEsIHNlbmQgYSBjaHVuawotICAgICAgICBzdHJl
YW0ud3JpdGUoYiIwMTIzNDU2Nzg5MDEyMzQ1IikKLSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0
X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUuZGF0YSwgYiIwMTIzNDU2
NyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGZyYW1lLm9mZnNldCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0
KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW3JhbmdlKDgsIDE2KV0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDgpCi0KLSAgICAgICAgIyBzZW5kIGlz
IGxpbWl0ZWQgYnkgcGVlcgotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCwgbWF4
X29mZnNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmcmFtZS5kYXRhLCBiIjg5MDEiKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5vZmZzZXQsIDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJl
YW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgxMiwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTIpCi0KLSAgICAgICAgIyB1bmFibGUgdG8g
c2VuZCwgYmxvY2tlZAotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCwgbWF4X29m
ZnNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgxMiwgMTYpXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTIpCi0KLSAg
ICAgICAgIyB3cml0ZSBtb3JlIGRhdGEsIHN0aWxsIGJsb2NrZWQKLSAgICAgICAgc3RyZWFtLndy
aXRlKGIiYWJjZGVmZ2giKQotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCwgbWF4
X29mZnNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgxMiwgMjQpXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTIpCi0K
LSAgICAgICAgIyBwZWVyIHJhaXNlcyBsaW1pdCwgc2VuZCBzb21lIGRhdGEKLSAgICAgICAgbWF4
X29mZnNldCArPSA4Ci0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zm
c2V0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiMjM0NWFiY2QiKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5vZmZzZXQsIDEyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3Ry
ZWFtLl9zZW5kX3BlbmRpbmcpLCBbcmFuZ2UoMjAsIDI0KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDIwKQotCi0gICAgICAgICMgcGVlciByYWlz
ZXMgbGltaXQgYWdhaW4sIHNlbmQgcmVtYWluaW5nIGRhdGEKLSAgICAgICAgbWF4X29mZnNldCAr
PSA4Ci0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zmc2V0KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiZWZnaCIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLm9m
ZnNldCwgMjApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVu
ZGluZyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zm
c2V0LCAyNCkKLQotICAgICAgICAjIG5vdGhpbmcgbW9yZSB0byBzZW5kCi0gICAgICAgIGZyYW1l
ID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zmc2V0KQotICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShmcmFtZSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZmluX29ubHkoc2VsZik6Ci0gICAgICAg
IHN0cmVhbSA9IFF1aWNTdHJlYW0oKQotCi0gICAgICAgICMgbm90aGluZyB0byBzZW5kIHlldAot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5KQotICAg
ICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUoZnJhbWUpCi0KLSAgICAgICAgIyB3cml0ZSBFT0YKLSAgICAgICAgc3RyZWFtLndyaXRlKGIi
IiwgZW5kX3N0cmVhbT1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHN0cmVhbS5zZW5k
X2J1ZmZlcl9pc19lbXB0eSkKLSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUuZGF0YSwgYiIiKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUoZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLm9mZnNl
dCwgMCkKLQotICAgICAgICAjIG5vdGhpbmcgbW9yZSB0byBzZW5kCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2Uoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5KSAgIyBGSVhNRT8KLSAgICAgICAg
ZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZy
YW1lKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5
KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9maW5fb25seV9kZXNwaXRlX2Jsb2NrZWQoc2VsZik6Ci0g
ICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oKQotCi0gICAgICAgICMgbm90aGluZyB0byBzZW5k
IHlldAotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5
KQotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRJc05vbmUoZnJhbWUpCi0KLSAgICAgICAgIyB3cml0ZSBFT0YKLSAgICAgICAgc3RyZWFtLndy
aXRlKGIiIiwgZW5kX3N0cmVhbT1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHN0cmVh
bS5zZW5kX2J1ZmZlcl9pc19lbXB0eSkKLSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1l
KDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUuZGF0YSwgYiIiKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1l
Lm9mZnNldCwgMCkKLQotICAgICAgICAjIG5vdGhpbmcgbW9yZSB0byBzZW5kCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2Uoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5KSAgIyBGSVhNRT8KLSAg
ICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKGZyYW1lKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RyZWFtLnNlbmRfYnVmZmVyX2lz
X2VtcHR5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfdGxzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rlc3RfdGxzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZThhNDcwZjc0YjFjZTRmOTk0NTgzYWU4MzdlZDBhZDk0ODM3YjRjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0
X3Rscy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0MDAgKzAsMCBAQAotaW1wb3J0IGJpbmFzY2lp
Ci1pbXBvcnQgZGF0ZXRpbWUKLWltcG9ydCBzc2wKLWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RD
YXNlCi1mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCi0KLWZyb20gY3J5cHRvZ3JhcGh5
LmV4Y2VwdGlvbnMgaW1wb3J0IFVuc3VwcG9ydGVkQWxnb3JpdGhtCi1mcm9tIGNyeXB0b2dyYXBo
eS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgc2VyaWFsaXphdGlvbgotZnJvbSBjcnlwdG9ncmFw
aHkuaGF6bWF0LnByaW1pdGl2ZXMuYXN5bW1ldHJpYyBpbXBvcnQgZWMKLQotZnJvbSBhaW9xdWlj
IGltcG9ydCB0bHMKLWZyb20gYWlvcXVpYy5idWZmZXIgaW1wb3J0IEJ1ZmZlciwgQnVmZmVyUmVh
ZEVycm9yCi1mcm9tIGFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmln
dXJhdGlvbgotZnJvbSBhaW9xdWljLnRscyBpbXBvcnQgKAotICAgIENlcnRpZmljYXRlLAotICAg
IENlcnRpZmljYXRlVmVyaWZ5LAotICAgIENsaWVudEhlbGxvLAotICAgIENvbnRleHQsCi0gICAg
RW5jcnlwdGVkRXh0ZW5zaW9ucywKLSAgICBGaW5pc2hlZCwKLSAgICBOZXdTZXNzaW9uVGlja2V0
LAotICAgIFNlcnZlckhlbGxvLAotICAgIFN0YXRlLAotICAgIGxvYWRfcGVtX3g1MDlfY2VydGlm
aWNhdGVzLAotICAgIHB1bGxfYmxvY2ssCi0gICAgcHVsbF9jZXJ0aWZpY2F0ZSwKLSAgICBwdWxs
X2NlcnRpZmljYXRlX3ZlcmlmeSwKLSAgICBwdWxsX2NsaWVudF9oZWxsbywKLSAgICBwdWxsX2Vu
Y3J5cHRlZF9leHRlbnNpb25zLAotICAgIHB1bGxfZmluaXNoZWQsCi0gICAgcHVsbF9uZXdfc2Vz
c2lvbl90aWNrZXQsCi0gICAgcHVsbF9zZXJ2ZXJfaGVsbG8sCi0gICAgcHVzaF9jZXJ0aWZpY2F0
ZSwKLSAgICBwdXNoX2NlcnRpZmljYXRlX3ZlcmlmeSwKLSAgICBwdXNoX2NsaWVudF9oZWxsbywK
LSAgICBwdXNoX2VuY3J5cHRlZF9leHRlbnNpb25zLAotICAgIHB1c2hfZmluaXNoZWQsCi0gICAg
cHVzaF9uZXdfc2Vzc2lvbl90aWNrZXQsCi0gICAgcHVzaF9zZXJ2ZXJfaGVsbG8sCi0gICAgdmVy
aWZ5X2NlcnRpZmljYXRlLAotKQotCi1mcm9tIC51dGlscyBpbXBvcnQgKAotICAgIFNFUlZFUl9D
QUNFUlRGSUxFLAotICAgIFNFUlZFUl9DRVJURklMRSwKLSAgICBTRVJWRVJfS0VZRklMRSwKLSAg
ICBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSwKLSAgICBsb2FkLAotKQotCi1DRVJUSUZJQ0FURV9E
QVRBID0gbG9hZCgidGxzX2NlcnRpZmljYXRlLmJpbiIpWzExOi0yXQotQ0VSVElGSUNBVEVfVkVS
SUZZX1NJR05BVFVSRSA9IGxvYWQoInRsc19jZXJ0aWZpY2F0ZV92ZXJpZnkuYmluIilbLTM4NDpd
Ci0KLUNMSUVOVF9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTID0gYmluYXNjaWkudW5oZXhsaWZ5
KAotICAgIGIiZmYwMDAwMTEwMDMxMDAwNTAwMDQ4MDEwMDAwMDAwMDYwMDA0ODAxMDAwMDAwMDA3
MDAwNDgwMTAwMDAwMDAwIgotICAgIGIiNDAwMDQ4MTAwMDAwMDAwMDEwMDAyNDI1ODAwMDgwMDAy
NDA2NDAwMGEwMDAxMGEiCi0pCi0KLVNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTID0g
YmluYXNjaWkudW5oZXhsaWZ5KAotICAgIGIiZmYwMDAwMTEwNGZmMDAwMDExMDA0NTAwMDUwMDA0
ODAxMDAwMDAwMDA2MDAwNDgwMTAwMDAwMDAwNzAwMDQ4IgotICAgIGIiMDEwMDAwMDAwMDQwMDA0
ODEwMDAwMDAwMDAxMDAwMjQyNTgwMDAyMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwIgotICAgIGIi
MDAwMDAwMDAwMDAwMDAwODAwMDI0MDY0MDAwYTAwMDEwYSIKLSkKLQotU0VSVkVSX1FVSUNfVFJB
TlNQT1JUX1BBUkFNRVRFUlNfMiA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICBiIjAwNTcwMDA2
MDAwNDgwMDBmZmZmMDAwNTAwMDQ4MDAwZmZmZjAwMDIwMDEwYzVhYzQxMGZiZGQ0ZmU2ZTJjMSIK
LSAgICBiIjQyMjc5ZjIzMWU4ZTAwMDBhMDAwMTAzMDAwNDAwMDQ4MDA1ZmZmYTAwMGIwMDAxMTkw
MDAxMDAwMjY3MTBmZiIKLSAgICBiIjQyMDAwYzVjMDY3ZjI3ZTM5MzIxYzYzZTI4ZTdjOTAwMDMw
MDAyNDdlNDAwMDgwMDAxMDYiCi0pCi0KLVNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJT
XzMgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgYiIwMDU0MDAwMjAwMTAwZGNiNTBhNDQyNTEz
Mjk1YjQ2NzliYWYwNGNiNWVmZmZmOGEwMDA5YzhhZmU3MmE2Mzk3IgotICAgIGIiMjU1NDA3MDAw
NjAwMDQ4MDAwZmZmZjAwMDgwMDAxMDYwMDA0MDAwNDgwMDVmZmZhMDAwNTAwMDQ4MDAwZmZmZiIK
LSAgICBiIjAwMDMwMDAyNDdlNDAwMGEwMDAxMDMwMDAxMDAwMjY3MTAwMDBiMDAwMTE5IgotKQot
Ci0KLWNsYXNzIEJ1ZmZlclRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3B1bGxfYmxvY2tf
dHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MCkKLSAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAg
d2l0aCBwdWxsX2Jsb2NrKGJ1ZiwgMSk6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0KLWRlZiBj
cmVhdGVfYnVmZmVycygpOgotICAgIHJldHVybiB7Ci0gICAgICAgIHRscy5FcG9jaC5JTklUSUFM
OiBCdWZmZXIoY2FwYWNpdHk9NDA5NiksCi0gICAgICAgIHRscy5FcG9jaC5IQU5EU0hBS0U6IEJ1
ZmZlcihjYXBhY2l0eT00MDk2KSwKLSAgICAgICAgdGxzLkVwb2NoLk9ORV9SVFQ6IEJ1ZmZlcihj
YXBhY2l0eT00MDk2KSwKLSAgICB9Ci0KLQotZGVmIG1lcmdlX2J1ZmZlcnMoYnVmZmVycyk6Ci0g
ICAgcmV0dXJuIGIiIi5qb2luKHguZGF0YSBmb3IgeCBpbiBidWZmZXJzLnZhbHVlcygpKQotCi0K
LWRlZiByZXNldF9idWZmZXJzKGJ1ZmZlcnMpOgotICAgIGZvciBrIGluIGJ1ZmZlcnMua2V5cygp
OgotICAgICAgICBidWZmZXJzW2tdLnNlZWsoMCkKLQotCi1jbGFzcyBDb250ZXh0VGVzdChUZXN0
Q2FzZSk6Ci0gICAgZGVmIGNyZWF0ZV9jbGllbnQoCi0gICAgICAgIHNlbGYsIGFscG5fcHJvdG9j
b2xzPU5vbmUsIGNhZGF0YT1Ob25lLCBjYWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUsICoqa3dhcmdz
Ci0gICAgKToKLSAgICAgICAgY2xpZW50ID0gQ29udGV4dCgKLSAgICAgICAgICAgIGFscG5fcHJv
dG9jb2xzPWFscG5fcHJvdG9jb2xzLAotICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwKLSAgICAg
ICAgICAgIGNhZmlsZT1jYWZpbGUsCi0gICAgICAgICAgICBpc19jbGllbnQ9VHJ1ZSwKLSAgICAg
ICAgICAgICoqa3dhcmdzCi0gICAgICAgICkKLSAgICAgICAgY2xpZW50LmhhbmRzaGFrZV9leHRl
bnNpb25zID0gWwotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIHRscy5FeHRlbnNpb25U
eXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICAgICAgQ0xJRU5UX1FV
SUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICApCi0gICAgICAgIF0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuc3RhdGUsIFN0YXRlLkNMSUVOVF9IQU5EU0hBS0Vf
U1RBUlQpCi0gICAgICAgIHJldHVybiBjbGllbnQKLQotICAgIGRlZiBjcmVhdGVfc2VydmVyKHNl
bGYsIGFscG5fcHJvdG9jb2xzPU5vbmUpOgotICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0Nv
bmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICBjb25maWd1cmF0aW9uLmxvYWRf
Y2VydF9jaGFpbihTRVJWRVJfQ0VSVEZJTEUsIFNFUlZFUl9LRVlGSUxFKQotCi0gICAgICAgIHNl
cnZlciA9IENvbnRleHQoCi0gICAgICAgICAgICBhbHBuX3Byb3RvY29scz1hbHBuX3Byb3RvY29s
cywgaXNfY2xpZW50PUZhbHNlLCBtYXhfZWFybHlfZGF0YT0weEZGRkZGRkZGCi0gICAgICAgICkK
LSAgICAgICAgc2VydmVyLmNlcnRpZmljYXRlID0gY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZQot
ICAgICAgICBzZXJ2ZXIuY2VydGlmaWNhdGVfcHJpdmF0ZV9rZXkgPSBjb25maWd1cmF0aW9uLnBy
aXZhdGVfa2V5Ci0gICAgICAgIHNlcnZlci5oYW5kc2hha2VfZXh0ZW5zaW9ucyA9IFsKLSAgICAg
ICAgICAgICgKLSAgICAgICAgICAgICAgICB0bHMuRXh0ZW5zaW9uVHlwZS5RVUlDX1RSQU5TUE9S
VF9QQVJBTUVURVJTLAotICAgICAgICAgICAgICAgIFNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJB
TUVURVJTLAotICAgICAgICAgICAgKQotICAgICAgICBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VydmVyLnN0YXRlLCBTdGF0ZS5TRVJWRVJfRVhQRUNUX0NMSUVOVF9IRUxMTykKLSAgICAg
ICAgcmV0dXJuIHNlcnZlcgotCi0gICAgZGVmIHRlc3RfY2xpZW50X3VuZXhwZWN0ZWRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkKLQotICAgICAg
ICBjbGllbnQuc3RhdGUgPSBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZFUl9IRUxMTwotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToKLSAg
ICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBjcmVh
dGVfYnVmZmVycygpKQotCi0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNMSUVOVF9FWFBF
Q1RfRU5DUllQVEVEX0VYVEVOU0lPTlMKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0
bHMuQWxlcnRVbmV4cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBjbGllbnQuaGFuZGxlX21l
c3NhZ2UoYiJceDAwXHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgICAgICBj
bGllbnQuc3RhdGUgPSBTdGF0ZS5DTElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1JFUVVFU1RfT1Jf
Q0VSVElGSUNBVEUKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRVbmV4
cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2UoYiJceDAw
XHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgICAgICBjbGllbnQuc3RhdGUg
PSBTdGF0ZS5DTElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1ZFUklGWQotICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToKLSAgICAgICAgICAg
IGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBjcmVhdGVfYnVmZmVy
cygpKQotCi0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNMSUVOVF9FWFBFQ1RfRklOSVNI
RUQKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRVbmV4cGVjdGVkTWVz
c2FnZSk6Ci0gICAgICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2UoYiJceDAwXHgwMFx4MDBc
eDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgICAgICBjbGllbnQuc3RhdGUgPSBTdGF0ZS5D
TElFTlRfUE9TVF9IQU5EU0hBS0UKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMu
QWxlcnRVbmV4cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBjbGllbnQuaGFuZGxlX21lc3Nh
Z2UoYiJceDAwXHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgIGRlZiB0ZXN0
X2NsaWVudF9iYWRfY2VydGlmaWNhdGVfdmVyaWZ5X2RhdGEoc2VsZik6Ci0gICAgICAgIGNsaWVu
dCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3Nl
cnZlcigpCi0KLSAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbwotICAgICAgICBjbGllbnRfYnVm
ID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2UoYiIiLCBj
bGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUu
Q0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdl
X2J1ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRfYnVmKQot
Ci0gICAgICAgICMgaGFuZGxlIGNsaWVudCBoZWxsbwotICAgICAgICAjIHNlbmQgc2VydmVyIGhl
bGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRpZmljYXRlIHZlcmlm
eSwgZmluaXNoZWQKLSAgICAgICAgc2VydmVyX2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAg
ICAgc2VydmVyLmhhbmRsZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwgc2VydmVyX2J1ZikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZFUl9FWFBFQ1RfRklO
SVNIRUQpCi0gICAgICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikK
LSAgICAgICAgcmVzZXRfYnVmZmVycyhzZXJ2ZXJfYnVmKQotCi0gICAgICAgICMgbWVzcyB3aXRo
IGNlcnRpZmljYXRlIHZlcmlmeQotICAgICAgICBjbGllbnRfaW5wdXQgPSBjbGllbnRfaW5wdXRb
Oi01Nl0gKyBieXRlcyg0KSArIGNsaWVudF9pbnB1dFstNTI6XQotCi0gICAgICAgICMgaGFuZGxl
IHNlcnZlciBoZWxsbywgZW5jcnlwdGVkIGV4dGVuc2lvbnMsIGNlcnRpZmljYXRlLCBjZXJ0aWZp
Y2F0ZSB2ZXJpZnksIGZpbmlzaGVkCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxz
LkFsZXJ0RGVjcnlwdEVycm9yKToKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShj
bGllbnRfaW5wdXQsIGNsaWVudF9idWYpCi0KLSAgICBkZWYgdGVzdF9jbGllbnRfYmFkX2Zpbmlz
aGVkX3ZlcmlmeV9kYXRhKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGll
bnQoKQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotCi0gICAgICAgICMg
c2VuZCBjbGllbnQgaGVsbG8KLSAgICAgICAgY2xpZW50X2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkK
LSAgICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGIiIiwgY2xpZW50X2J1ZikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbGllbnQuc3RhdGUsIFN0YXRlLkNMSUVOVF9FWFBFQ1RfU0VSVkVS
X0hFTExPKQotICAgICAgICBzZXJ2ZXJfaW5wdXQgPSBtZXJnZV9idWZmZXJzKGNsaWVudF9idWYp
Ci0gICAgICAgIHJlc2V0X2J1ZmZlcnMoY2xpZW50X2J1ZikKLQotICAgICAgICAjIGhhbmRsZSBj
bGllbnQgaGVsbG8KLSAgICAgICAgIyBzZW5kIHNlcnZlciBoZWxsbywgZW5jcnlwdGVkIGV4dGVu
c2lvbnMsIGNlcnRpZmljYXRlLCBjZXJ0aWZpY2F0ZSB2ZXJpZnksIGZpbmlzaGVkCi0gICAgICAg
IHNlcnZlcl9idWYgPSBjcmVhdGVfYnVmZmVycygpCi0gICAgICAgIHNlcnZlci5oYW5kbGVfbWVz
c2FnZShzZXJ2ZXJfaW5wdXQsIHNlcnZlcl9idWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VydmVyLnN0YXRlLCBTdGF0ZS5TRVJWRVJfRVhQRUNUX0ZJTklTSEVEKQotICAgICAgICBjbGll
bnRfaW5wdXQgPSBtZXJnZV9idWZmZXJzKHNlcnZlcl9idWYpCi0gICAgICAgIHJlc2V0X2J1ZmZl
cnMoc2VydmVyX2J1ZikKLQotICAgICAgICAjIG1lc3Mgd2l0aCBmaW5pc2hlZCB2ZXJpZnkgZGF0
YQotICAgICAgICBjbGllbnRfaW5wdXQgPSBjbGllbnRfaW5wdXRbOi00XSArIGJ5dGVzKDQpCi0K
LSAgICAgICAgIyBoYW5kbGUgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2Vy
dGlmaWNhdGUsIGNlcnRpZmljYXRlIHZlcmlmeSwgZmluaXNoZWQKLSAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyh0bHMuQWxlcnREZWNyeXB0RXJyb3IpOgotICAgICAgICAgICAgY2xpZW50
LmhhbmRsZV9tZXNzYWdlKGNsaWVudF9pbnB1dCwgY2xpZW50X2J1ZikKLQotICAgIGRlZiB0ZXN0
X3NlcnZlcl91bmV4cGVjdGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYu
Y3JlYXRlX3NlcnZlcigpCi0KLSAgICAgICAgc2VydmVyLnN0YXRlID0gU3RhdGUuU0VSVkVSX0VY
UEVDVF9DTElFTlRfSEVMTE8KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxl
cnRVbmV4cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uo
YiJceDAwXHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgICAgICBzZXJ2ZXIu
c3RhdGUgPSBTdGF0ZS5TRVJWRVJfRVhQRUNUX0ZJTklTSEVECi0gICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXModGxzLkFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UpOgotICAgICAgICAgICAgc2Vy
dmVyLmhhbmRsZV9tZXNzYWdlKGIiXHgwMFx4MDBceDAwXHgwMCIsIGNyZWF0ZV9idWZmZXJzKCkp
Ci0KLSAgICAgICAgc2VydmVyLnN0YXRlID0gU3RhdGUuU0VSVkVSX1BPU1RfSEFORFNIQUtFCi0g
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0VW5leHBlY3RlZE1lc3NhZ2Up
OgotICAgICAgICAgICAgc2VydmVyLmhhbmRsZV9tZXNzYWdlKGIiXHgwMFx4MDBceDAwXHgwMCIs
IGNyZWF0ZV9idWZmZXJzKCkpCi0KLSAgICBkZWYgX3NlcnZlcl9mYWlsX2hlbGxvKHNlbGYsIGNs
aWVudCwgc2VydmVyKToKLSAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbwotICAgICAgICBjbGll
bnRfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2Uo
YiIiLCBjbGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5zdGF0ZSwg
U3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgIHNlcnZlcl9pbnB1dCA9
IG1lcmdlX2J1ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRf
YnVmKQotCi0gICAgICAgICMgaGFuZGxlIGNsaWVudCBoZWxsbwotICAgICAgICBzZXJ2ZXJfYnVm
ID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVy
X2lucHV0LCBzZXJ2ZXJfYnVmKQotCi0gICAgZGVmIHRlc3Rfc2VydmVyX3Vuc3VwcG9ydGVkX2Np
cGhlcl9zdWl0ZShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkK
LSAgICAgICAgY2xpZW50Ll9jaXBoZXJfc3VpdGVzID0gW3Rscy5DaXBoZXJTdWl0ZS5BRVNfMTI4
X0dDTV9TSEEyNTZdCi0KLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLSAg
ICAgICAgc2VydmVyLl9jaXBoZXJfc3VpdGVzID0gW3Rscy5DaXBoZXJTdWl0ZS5BRVNfMjU2X0dD
TV9TSEEzODRdCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRIYW5k
c2hha2VGYWlsdXJlKSBhcyBjbToKLSAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9mYWlsX2hlbGxv
KGNsaWVudCwgc2VydmVyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRp
b24pLCAiTm8gc3VwcG9ydGVkIGNpcGhlciBzdWl0ZSIpCi0KLSAgICBkZWYgdGVzdF9zZXJ2ZXJf
dW5zdXBwb3J0ZWRfc2lnbmF0dXJlX2FsZ29yaXRobShzZWxmKToKLSAgICAgICAgY2xpZW50ID0g
c2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAgICAgY2xpZW50Ll9zaWduYXR1cmVfYWxnb3JpdGht
cyA9IFt0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLkVENDQ4XQotCi0gICAgICAgIHNlcnZlciA9IHNl
bGYuY3JlYXRlX3NlcnZlcigpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMu
QWxlcnRIYW5kc2hha2VGYWlsdXJlKSBhcyBjbToKLSAgICAgICAgICAgIHNlbGYuX3NlcnZlcl9m
YWlsX2hlbGxvKGNsaWVudCwgc2VydmVyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihj
bS5leGNlcHRpb24pLCAiTm8gc3VwcG9ydGVkIHNpZ25hdHVyZSBhbGdvcml0aG0iKQotCi0gICAg
ZGVmIHRlc3Rfc2VydmVyX3Vuc3VwcG9ydGVkX3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIGNsaWVu
dCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIGNsaWVudC5fc3VwcG9ydGVkX3ZlcnNp
b25zID0gW3Rscy5UTFNfVkVSU0lPTl8xXzJdCi0KLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVh
dGVfc2VydmVyKCkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFBy
b3RvY29sVmVyc2lvbikgYXMgY206Ci0gICAgICAgICAgICBzZWxmLl9zZXJ2ZXJfZmFpbF9oZWxs
byhjbGllbnQsIHNlcnZlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoY20uZXhjZXB0
aW9uKSwgIk5vIHN1cHBvcnRlZCBwcm90b2NvbCB2ZXJzaW9uIikKLQotICAgIGRlZiB0ZXN0X3Nl
cnZlcl9iYWRfZmluaXNoZWRfdmVyaWZ5X2RhdGEoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNl
bGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigp
Ci0KLSAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbwotICAgICAgICBjbGllbnRfYnVmID0gY3Jl
YXRlX2J1ZmZlcnMoKQotICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2UoYiIiLCBjbGllbnRf
YnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUuQ0xJRU5U
X0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1ZmZl
cnMoY2xpZW50X2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRfYnVmKQotCi0gICAg
ICAgICMgaGFuZGxlIGNsaWVudCBoZWxsbwotICAgICAgICAjIHNlbmQgc2VydmVyIGhlbGxvLCBl
bmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRpZmljYXRlIHZlcmlmeSwgZmlu
aXNoZWQKLSAgICAgICAgc2VydmVyX2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAgc2Vy
dmVyLmhhbmRsZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwgc2VydmVyX2J1ZikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZFUl9FWFBFQ1RfRklOSVNIRUQp
Ci0gICAgICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikKLSAgICAg
ICAgcmVzZXRfYnVmZmVycyhzZXJ2ZXJfYnVmKQotCi0gICAgICAgICMgaGFuZGxlIHNlcnZlciBo
ZWxsbywgZW5jcnlwdGVkIGV4dGVuc2lvbnMsIGNlcnRpZmljYXRlLCBjZXJ0aWZpY2F0ZSB2ZXJp
ZnksIGZpbmlzaGVkCi0gICAgICAgICMgc2VuZCBmaW5pc2hlZAotICAgICAgICBjbGllbnQuaGFu
ZGxlX21lc3NhZ2UoY2xpZW50X2lucHV0LCBjbGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFKQotICAgICAg
ICBzZXJ2ZXJfaW5wdXQgPSBtZXJnZV9idWZmZXJzKGNsaWVudF9idWYpCi0gICAgICAgIHJlc2V0
X2J1ZmZlcnMoY2xpZW50X2J1ZikKLQotICAgICAgICAjIG1lc3Mgd2l0aCBmaW5pc2hlZCB2ZXJp
ZnkgZGF0YQotICAgICAgICBzZXJ2ZXJfaW5wdXQgPSBzZXJ2ZXJfaW5wdXRbOi00XSArIGJ5dGVz
KDQpCi0KLSAgICAgICAgIyBoYW5kbGUgZmluaXNoZWQKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyh0bHMuQWxlcnREZWNyeXB0RXJyb3IpOgotICAgICAgICAgICAgc2VydmVyLmhhbmRs
ZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwgc2VydmVyX2J1ZikKLQotICAgIGRlZiBfaGFuZHNoYWtl
KHNlbGYsIGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbwotICAg
ICAgICBjbGllbnRfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBjbGllbnQuaGFuZGxl
X21lc3NhZ2UoYiIiLCBjbGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVu
dC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgIHNlcnZl
cl9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRH
cmVhdGVyRXF1YWwobGVuKHNlcnZlcl9pbnB1dCksIDE4MSkKLSAgICAgICAgc2VsZi5hc3NlcnRM
ZXNzRXF1YWwobGVuKHNlcnZlcl9pbnB1dCksIDM1OCkKLSAgICAgICAgcmVzZXRfYnVmZmVycyhj
bGllbnRfYnVmKQotCi0gICAgICAgICMgaGFuZGxlIGNsaWVudCBoZWxsbwotICAgICAgICAjIHNl
bmQgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRp
ZmljYXRlIHZlcmlmeSwgZmluaXNoZWQsIChzZXNzaW9uIHRpY2tldCkKLSAgICAgICAgc2VydmVy
X2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAgc2VydmVyLmhhbmRsZV9tZXNzYWdlKHNl
cnZlcl9pbnB1dCwgc2VydmVyX2J1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIu
c3RhdGUsIFN0YXRlLlNFUlZFUl9FWFBFQ1RfRklOSVNIRUQpCi0gICAgICAgIGNsaWVudF9pbnB1
dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVy
RXF1YWwobGVuKGNsaWVudF9pbnB1dCksIDYwMCkKLSAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1
YWwobGVuKGNsaWVudF9pbnB1dCksIDIzMTYpCi0KLSAgICAgICAgcmVzZXRfYnVmZmVycyhzZXJ2
ZXJfYnVmKQotCi0gICAgICAgICMgaGFuZGxlIHNlcnZlciBoZWxsbywgZW5jcnlwdGVkIGV4dGVu
c2lvbnMsIGNlcnRpZmljYXRlLCBjZXJ0aWZpY2F0ZSB2ZXJpZnksIGZpbmlzaGVkLCAoc2Vzc2lv
biB0aWNrZXQpCi0gICAgICAgICMgc2VuZCBmaW5pc2hlZAotICAgICAgICBjbGllbnQuaGFuZGxl
X21lc3NhZ2UoY2xpZW50X2lucHV0LCBjbGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFKQotICAgICAgICBz
ZXJ2ZXJfaW5wdXQgPSBtZXJnZV9idWZmZXJzKGNsaWVudF9idWYpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKHNlcnZlcl9pbnB1dCksIDUyKQotICAgICAgICByZXNldF9idWZmZXJzKGNs
aWVudF9idWYpCi0KLSAgICAgICAgIyBoYW5kbGUgZmluaXNoZWQKLSAgICAgICAgc2VydmVyLmhh
bmRsZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwgc2VydmVyX2J1ZikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZFUl9QT1NUX0hBTkRTSEFLRSkKLSAgICAg
ICAgY2xpZW50X2lucHV0ID0gbWVyZ2VfYnVmZmVycyhzZXJ2ZXJfYnVmKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihjbGllbnRfaW5wdXQpLCAwKQotCi0gICAgICAgICMgY2hlY2sga2V5
cyBtYXRjaAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5fZGVjX2tleSwgc2VydmVy
Ll9lbmNfa2V5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5fZW5jX2tleSwgc2Vy
dmVyLl9kZWNfa2V5KQotCi0gICAgICAgICMgY2hlY2sgY2lwaGVyIHN1aXRlCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjbGllbnQua2V5X3NjaGVkdWxlLmNpcGhlcl9z
dWl0ZSwgdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NAotICAgICAgICApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzZXJ2ZXIua2V5X3NjaGVkdWxlLmNp
cGhlcl9zdWl0ZSwgdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NAotICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNlbGYu
Y3JlYXRlX2NsaWVudCgpCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigpCi0K
LSAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2VydmVyKQotCi0gICAgICAgICMgY2hl
Y2sgQUxQTiBtYXRjaGVzCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LmFscG5fbmVn
b3RpYXRlZCwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuYWxwbl9uZWdv
dGlhdGVkLCBOb25lKQotCi0gICAgZGVmIHRlc3RfaGFuZHNoYWtlX2VjZHNhX3NlY3AyNTZyMShz
ZWxmKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLSAgICAgICAgc2Vy
dmVyLmNlcnRpZmljYXRlLCBzZXJ2ZXIuY2VydGlmaWNhdGVfcHJpdmF0ZV9rZXkgPSBnZW5lcmF0
ZV9lY19jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgIGNvbW1vbl9uYW1lPSJleGFtcGxlLmNvbSIs
IGN1cnZlPWVjLlNFQ1AyNTZSMQotICAgICAgICApCi0KLSAgICAgICAgY2xpZW50ID0gc2VsZi5j
cmVhdGVfY2xpZW50KAotICAgICAgICAgICAgY2FkYXRhPXNlcnZlci5jZXJ0aWZpY2F0ZS5wdWJs
aWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pLAotICAgICAgICAgICAgY2FmaWxl
PU5vbmUsCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UoY2xpZW50LCBzZXJ2
ZXIpCi0KLSAgICAgICAgIyBjaGVjayBBTFBOIG1hdGNoZXMKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjbGllbnQuYWxwbl9uZWdvdGlhdGVkLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHNlcnZlci5hbHBuX25lZ290aWF0ZWQsIE5vbmUpCi0KLSAgICBkZWYgdGVzdF9oYW5kc2hh
a2Vfd2l0aF9hbHBuKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQo
YWxwbl9wcm90b2NvbHM9WyJocS0yMCJdKQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9z
ZXJ2ZXIoYWxwbl9wcm90b2NvbHM9WyJocS0yMCIsICJoMy0yMCJdKQotCi0gICAgICAgIHNlbGYu
X2hhbmRzaGFrZShjbGllbnQsIHNlcnZlcikKLQotICAgICAgICAjIGNoZWNrIEFMUE4gbWF0Y2hl
cwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5hbHBuX25lZ290aWF0ZWQsICJocS0y
MCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLmFscG5fbmVnb3RpYXRlZCwgImhx
LTIwIikKLQotICAgIGRlZiB0ZXN0X2hhbmRzaGFrZV93aXRoX2FscG5fZmFpbChzZWxmKToKLSAg
ICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KGFscG5fcHJvdG9jb2xzPVsiaHEtMjAi
XSkKLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKGFscG5fcHJvdG9jb2xzPVsi
aDMtMjAiXSkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydEhhbmRz
aGFrZUZhaWx1cmUpIGFzIGNtOgotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwg
c2VydmVyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAiTm8g
Y29tbW9uIEFMUE4gcHJvdG9jb2xzIikKLQotICAgIGRlZiB0ZXN0X2hhbmRzaGFrZV93aXRoX3Jz
YV9wa2NzMV9zaGEyNTZfc2lnbmF0dXJlKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNy
ZWF0ZV9jbGllbnQoKQotICAgICAgICBjbGllbnQuX3NpZ25hdHVyZV9hbGdvcml0aG1zID0gW3Rs
cy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTI1Nl0KLSAgICAgICAgc2VydmVyID0g
c2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UoY2xpZW50LCBz
ZXJ2ZXIpCi0KLSAgICBkZWYgdGVzdF9oYW5kc2hha2Vfd2l0aF9jZXJ0aWZpY2F0ZV9lcnJvcihz
ZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KGNhZmlsZT1Ob25lKQot
ICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0QmFkQ2VydGlmaWNhdGUpIGFzIGNtOgotICAgICAgICAg
ICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2VydmVyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cihjbS5leGNlcHRpb24pLCAidW5hYmxlIHRvIGdldCBsb2NhbCBpc3N1ZXIgY2VydGlm
aWNhdGUiKQotCi0gICAgZGVmIHRlc3RfaGFuZHNoYWtlX3dpdGhfY2VydGlmaWNhdGVfbm9fdmVy
aWZ5KHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQoY2FmaWxlPU5v
bmUsIHZlcmlmeV9tb2RlPXNzbC5DRVJUX05PTkUpCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3Jl
YXRlX3NlcnZlcigpCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2VydmVyKQot
Ci0gICAgZGVmIHRlc3RfaGFuZHNoYWtlX3dpdGhfZ3JlYXNlX2dyb3VwKHNlbGYpOgotICAgICAg
ICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQoKQotICAgICAgICBjbGllbnQuX3N1cHBvcnRl
ZF9ncm91cHMgPSBbdGxzLkdyb3VwLkdSRUFTRSwgdGxzLkdyb3VwLlNFQ1AyNTZSMV0KLSAgICAg
ICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICBzZWxmLl9oYW5kc2hh
a2UoY2xpZW50LCBzZXJ2ZXIpCi0KLSAgICBkZWYgdGVzdF9oYW5kc2hha2Vfd2l0aF94MjU1MTko
c2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIGNs
aWVudC5fc3VwcG9ydGVkX2dyb3VwcyA9IFt0bHMuR3JvdXAuWDI1NTE5XQotICAgICAgICBzZXJ2
ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNl
bGYuX2hhbmRzaGFrZShjbGllbnQsIHNlcnZlcikKLSAgICAgICAgZXhjZXB0IFVuc3VwcG9ydGVk
QWxnb3JpdGhtIGFzIGV4YzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3Qoc3RyKGV4YykpCi0K
LSAgICBkZWYgdGVzdF9oYW5kc2hha2Vfd2l0aF94NDQ4KHNlbGYpOgotICAgICAgICBjbGllbnQg
PSBzZWxmLmNyZWF0ZV9jbGllbnQoKQotICAgICAgICBjbGllbnQuX3N1cHBvcnRlZF9ncm91cHMg
PSBbdGxzLkdyb3VwLlg0NDhdCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2Vy
dmVyKQotICAgICAgICBleGNlcHQgVW5zdXBwb3J0ZWRBbGdvcml0aG0gYXMgZXhjOgotICAgICAg
ICAgICAgc2VsZi5za2lwVGVzdChzdHIoZXhjKSkKLQotICAgIGRlZiB0ZXN0X3Nlc3Npb25fdGlj
a2V0KHNlbGYpOgotICAgICAgICBjbGllbnRfdGlja2V0cyA9IFtdCi0gICAgICAgIHNlcnZlcl90
aWNrZXRzID0gW10KLQotICAgICAgICBkZWYgY2xpZW50X25ld190aWNrZXQodGlja2V0KToKLSAg
ICAgICAgICAgIGNsaWVudF90aWNrZXRzLmFwcGVuZCh0aWNrZXQpCi0KLSAgICAgICAgZGVmIHNl
cnZlcl9nZXRfdGlja2V0KGxhYmVsKToKLSAgICAgICAgICAgIGZvciB0IGluIHNlcnZlcl90aWNr
ZXRzOgotICAgICAgICAgICAgICAgIGlmIHQudGlja2V0ID09IGxhYmVsOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdAotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBkZWYg
c2VydmVyX25ld190aWNrZXQodGlja2V0KToKLSAgICAgICAgICAgIHNlcnZlcl90aWNrZXRzLmFw
cGVuZCh0aWNrZXQpCi0KLSAgICAgICAgZGVmIGZpcnN0X2hhbmRzaGFrZSgpOgotICAgICAgICAg
ICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAgICAgICAgIGNsaWVudC5uZXdf
c2Vzc2lvbl90aWNrZXRfY2IgPSBjbGllbnRfbmV3X3RpY2tldAotCi0gICAgICAgICAgICBzZXJ2
ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICAgICAgc2VydmVyLm5ld19zZXNzaW9u
X3RpY2tldF9jYiA9IHNlcnZlcl9uZXdfdGlja2V0Ci0KLSAgICAgICAgICAgIHNlbGYuX2hhbmRz
aGFrZShjbGllbnQsIHNlcnZlcikKLQotICAgICAgICAgICAgIyBjaGVjayBzZXNzaW9uIHJlc3Vt
cHRpb24gd2FzIG5vdCB1c2VkCi0gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNsaWVudC5z
ZXNzaW9uX3Jlc3VtZWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5zZXNz
aW9uX3Jlc3VtZWQpCi0KLSAgICAgICAgICAgICMgY2hlY2sgdGlja2V0cyBtYXRjaAotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xpZW50X3RpY2tldHMpLCAxKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyX3RpY2tldHMpLCAxKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbGllbnRfdGlja2V0c1swXS50aWNrZXQsIHNlcnZlcl90aWNrZXRz
WzBdLnRpY2tldCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg
ICAgY2xpZW50X3RpY2tldHNbMF0ucmVzdW1wdGlvbl9zZWNyZXQsIHNlcnZlcl90aWNrZXRzWzBd
LnJlc3VtcHRpb25fc2VjcmV0Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgZGVmIHNlY29uZF9o
YW5kc2hha2UoKToKLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0g
ICAgICAgICAgICBjbGllbnQuc2Vzc2lvbl90aWNrZXQgPSBjbGllbnRfdGlja2V0c1swXQotCi0g
ICAgICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICAgICAgc2Vy
dmVyLmdldF9zZXNzaW9uX3RpY2tldF9jYiA9IHNlcnZlcl9nZXRfdGlja2V0Ci0KLSAgICAgICAg
ICAgICMgc2VuZCBjbGllbnQgaGVsbG8gd2l0aCBwcmVfc2hhcmVkX2tleQotICAgICAgICAgICAg
Y2xpZW50X2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVf
bWVzc2FnZShiIiIsIGNsaWVudF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNs
aWVudC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgICAg
ICBzZXJ2ZXJfaW5wdXQgPSBtZXJnZV9idWZmZXJzKGNsaWVudF9idWYpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChsZW4oc2VydmVyX2lucHV0KSwgMzgzKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwobGVuKHNlcnZlcl9pbnB1dCksIDQ4MykKLSAgICAgICAg
ICAgIHJlc2V0X2J1ZmZlcnMoY2xpZW50X2J1ZikKLQotICAgICAgICAgICAgIyBoYW5kbGUgY2xp
ZW50IGhlbGxvCi0gICAgICAgICAgICAjIHNlbmQgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0
ZW5zaW9ucywgZmluaXNoZWQKLSAgICAgICAgICAgIHNlcnZlcl9idWYgPSBjcmVhdGVfYnVmZmVy
cygpCi0gICAgICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVyX2lucHV0LCBzZXJ2
ZXJfYnVmKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRl
LlNFUlZFUl9FWFBFQ1RfRklOSVNIRUQpCi0gICAgICAgICAgICBjbGllbnRfaW5wdXQgPSBtZXJn
ZV9idWZmZXJzKHNlcnZlcl9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihj
bGllbnRfaW5wdXQpLCAyNzUpCi0gICAgICAgICAgICByZXNldF9idWZmZXJzKHNlcnZlcl9idWYp
Ci0KLSAgICAgICAgICAgICMgaGFuZGxlIHNlcnZlciBoZWxsbywgZW5jcnlwdGVkIGV4dGVuc2lv
bnMsIGNlcnRpZmljYXRlLCBjZXJ0aWZpY2F0ZSB2ZXJpZnksIGZpbmlzaGVkCi0gICAgICAgICAg
ICAjIHNlbmQgZmluaXNoZWQKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShjbGll
bnRfaW5wdXQsIGNsaWVudF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVu
dC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFKQotICAgICAgICAgICAgc2VydmVy
X2lucHV0ID0gbWVyZ2VfYnVmZmVycyhjbGllbnRfYnVmKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsZW4oc2VydmVyX2lucHV0KSwgNTIpCi0gICAgICAgICAgICByZXNldF9idWZmZXJz
KGNsaWVudF9idWYpCi0KLSAgICAgICAgICAgICMgaGFuZGxlIGZpbmlzaGVkCi0gICAgICAgICAg
ICAjIHNlbmQgbmV3X3Nlc3Npb25fdGlja2V0Ci0gICAgICAgICAgICBzZXJ2ZXIuaGFuZGxlX21l
c3NhZ2Uoc2VydmVyX2lucHV0LCBzZXJ2ZXJfYnVmKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZFUl9QT1NUX0hBTkRTSEFLRSkKLSAgICAgICAg
ICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudF9pbnB1dCksIDApCi0gICAgICAgICAgICByZXNl
dF9idWZmZXJzKHNlcnZlcl9idWYpCi0KLSAgICAgICAgICAgICMgY2hlY2sga2V5cyBtYXRjaAot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX2RlY19rZXksIHNlcnZlci5fZW5j
X2tleSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9lbmNfa2V5LCBzZXJ2
ZXIuX2RlY19rZXkpCi0KLSAgICAgICAgICAgICMgY2hlY2sgc2Vzc2lvbiByZXN1bXB0aW9uIHdh
cyB1c2VkCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xpZW50LnNlc3Npb25fcmVzdW1l
ZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuc2Vzc2lvbl9yZXN1bWVkKQot
Ci0gICAgICAgIGRlZiBzZWNvbmRfaGFuZHNoYWtlX2JhZF9iaW5kZXIoKToKLSAgICAgICAgICAg
IGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgICAgICBjbGllbnQuc2Vzc2lv
bl90aWNrZXQgPSBjbGllbnRfdGlja2V0c1swXQotCi0gICAgICAgICAgICBzZXJ2ZXIgPSBzZWxm
LmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICAgICAgc2VydmVyLmdldF9zZXNzaW9uX3RpY2tldF9j
YiA9IHNlcnZlcl9nZXRfdGlja2V0Ci0KLSAgICAgICAgICAgICMgc2VuZCBjbGllbnQgaGVsbG8g
d2l0aCBwcmVfc2hhcmVkX2tleQotICAgICAgICAgICAgY2xpZW50X2J1ZiA9IGNyZWF0ZV9idWZm
ZXJzKCkKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVudF9idWYp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUuQ0xJRU5U
X0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgICAgICBzZXJ2ZXJfaW5wdXQgPSBtZXJnZV9i
dWZmZXJzKGNsaWVudF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChs
ZW4oc2VydmVyX2lucHV0KSwgMzgzKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwo
bGVuKHNlcnZlcl9pbnB1dCksIDQ4MykKLSAgICAgICAgICAgIHJlc2V0X2J1ZmZlcnMoY2xpZW50
X2J1ZikKLQotICAgICAgICAgICAgIyB0YW1wZXIgd2l0aCBiaW5kZXIKLSAgICAgICAgICAgIHNl
cnZlcl9pbnB1dCA9IHNlcnZlcl9pbnB1dFs6LTRdICsgYnl0ZXMoNCkKLQotICAgICAgICAgICAg
IyBoYW5kbGUgY2xpZW50IGhlbGxvCi0gICAgICAgICAgICAjIHNlbmQgc2VydmVyIGhlbGxvLCBl
bmNyeXB0ZWQgZXh0ZW5zaW9ucywgZmluaXNoZWQKLSAgICAgICAgICAgIHNlcnZlcl9idWYgPSBj
cmVhdGVfYnVmZmVycygpCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5B
bGVydEhhbmRzaGFrZUZhaWx1cmUpIGFzIGNtOgotICAgICAgICAgICAgICAgIHNlcnZlci5oYW5k
bGVfbWVzc2FnZShzZXJ2ZXJfaW5wdXQsIHNlcnZlcl9idWYpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAiUFNLIHZhbGlkYXRpb24gZmFpbGVkIikKLQot
ICAgICAgICBkZWYgc2Vjb25kX2hhbmRzaGFrZV9iYWRfcHJlX3NoYXJlZF9rZXkoKToKLSAgICAg
ICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgICAgICBjbGllbnQu
c2Vzc2lvbl90aWNrZXQgPSBjbGllbnRfdGlja2V0c1swXQotCi0gICAgICAgICAgICBzZXJ2ZXIg
PSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICAgICAgc2VydmVyLmdldF9zZXNzaW9uX3Rp
Y2tldF9jYiA9IHNlcnZlcl9nZXRfdGlja2V0Ci0KLSAgICAgICAgICAgICMgc2VuZCBjbGllbnQg
aGVsbG8gd2l0aCBwcmVfc2hhcmVkX2tleQotICAgICAgICAgICAgY2xpZW50X2J1ZiA9IGNyZWF0
ZV9idWZmZXJzKCkKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVu
dF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5zdGF0ZSwgU3RhdGUu
Q0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgICAgICBzZXJ2ZXJfaW5wdXQgPSBt
ZXJnZV9idWZmZXJzKGNsaWVudF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJF
cXVhbChsZW4oc2VydmVyX2lucHV0KSwgMzgzKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNz
RXF1YWwobGVuKHNlcnZlcl9pbnB1dCksIDQ4MykKLSAgICAgICAgICAgIHJlc2V0X2J1ZmZlcnMo
Y2xpZW50X2J1ZikKLQotICAgICAgICAgICAgIyBoYW5kbGUgY2xpZW50IGhlbGxvCi0gICAgICAg
ICAgICAjIHNlbmQgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgZmluaXNoZWQK
LSAgICAgICAgICAgIHNlcnZlcl9idWYgPSBjcmVhdGVfYnVmZmVycygpCi0gICAgICAgICAgICBz
ZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVyX2lucHV0LCBzZXJ2ZXJfYnVmKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZFUl9FWFBFQ1RfRklO
SVNIRUQpCi0KLSAgICAgICAgICAgICMgdGFtcGVyIHdpdGggcHJlX3NoYXJlX2tleSBpbmRleAot
ICAgICAgICAgICAgYnVmID0gc2VydmVyX2J1Zlt0bHMuRXBvY2guSU5JVElBTF0KLSAgICAgICAg
ICAgIGJ1Zi5zZWVrKGJ1Zi50ZWxsKCkgLSAxKQotICAgICAgICAgICAgYnVmLnB1c2hfdWludDgo
MSkKLSAgICAgICAgICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudF9pbnB1dCksIDI3NSkKLSAg
ICAgICAgICAgIHJlc2V0X2J1ZmZlcnMoc2VydmVyX2J1ZikKLQotICAgICAgICAgICAgIyBoYW5k
bGUgc2VydmVyIGhlbGxvIGFuZCBib21iCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKHRscy5BbGVydElsbGVnYWxQYXJhbWV0ZXIpOgotICAgICAgICAgICAgICAgIGNsaWVudC5o
YW5kbGVfbWVzc2FnZShjbGllbnRfaW5wdXQsIGNsaWVudF9idWYpCi0KLSAgICAgICAgZmlyc3Rf
aGFuZHNoYWtlKCkKLSAgICAgICAgc2Vjb25kX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlY29uZF9o
YW5kc2hha2VfYmFkX2JpbmRlcigpCi0gICAgICAgIHNlY29uZF9oYW5kc2hha2VfYmFkX3ByZV9z
aGFyZWRfa2V5KCkKLQotCi1jbGFzcyBUbHNUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9w
dWxsX2NsaWVudF9oZWxsbyhzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9hZCgi
dGxzX2NsaWVudF9oZWxsby5iaW4iKSkKLSAgICAgICAgaGVsbG8gPSBwdWxsX2NsaWVudF9oZWxs
byhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLnJhbmRvbSwKLSAgICAgICAgICAgIGJp
bmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiMThiMmIyM2JmM2U0NGI1ZDUyY2Nm
ZTdhZWNiYzVmZjE0ZWFkYzNkMzQ5ZmFiZjgwNGQ3MWYxNjVhZTc2ZTdkNSIKLSAgICAgICAgICAg
ICksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhl
bGxvLmxlZ2FjeV9zZXNzaW9uX2lkLAotICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAot
ICAgICAgICAgICAgICAgICI5YWVlODJhMmQxODZjMWNiMzJhMzI5ZDlkY2ZlMDA0YTFhNDM4YWQw
NDg1YTUzYzZiZmNmNTVjMTMyYTIzMjM1IgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8uY2lwaGVyX3N1aXRlcywK
LSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuQUVTXzI1Nl9H
Q01fU0hBMzg0LAotICAgICAgICAgICAgICAgIHRscy5DaXBoZXJTdWl0ZS5BRVNfMTI4X0dDTV9T
SEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkNIQUNIQTIwX1BPTFkxMzA1
X1NIQTI1NiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoZWxsby5sZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kcywgW3Rscy5Db21wcmVzc2lvbk1l
dGhvZC5OVUxMXSkKLQotICAgICAgICAjIGV4dGVuc2lvbnMKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoZWxsby5hbHBuX3Byb3RvY29scywgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIGhlbGxvLmtleV9zaGFyZSwKLSAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQMjU2UjEsCi0gICAg
ICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICIwNDdiZmVhMzQ0NDY3NTM1MDU0MjYzYjc1ZGVmNjBjZmZhODI0MDVhMjExYjY4ZDFlYjhk
MWQ5NDRlNjdhZWY4IgotICAgICAgICAgICAgICAgICAgICAgICAgIjkzYzc2NjVhNTQ3M2QwMzJj
ZmFmMjJhNzNkYTI4ZWI0YWFjYWUwMDE3ZWQxMjU1N2I1NzkxZjk4YTFlODRmMTUiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAiYjAiCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgaGVsbG8ucHNrX2tleV9leGNoYW5nZV9tb2RlcywgW3Rscy5Qc2tL
ZXlFeGNoYW5nZU1vZGUuUFNLX0RIRV9LRV0KLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGhlbGxvLnNlcnZlcl9uYW1lLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgaGVsbG8uc2lnbmF0dXJlX2FsZ29yaXRobXMsCi0gICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hB
MjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uRUNEU0FfU0VDUDI1
NlIxX1NIQTI1NiwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9Q
S0NTMV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0Ff
UEtDUzFfU0hBMSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChoZWxsby5zdXBwb3J0ZWRfZ3JvdXBzLCBbdGxzLkdyb3VwLlNFQ1AyNTZSMV0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5zdXBwb3J0ZWRfdmVy
c2lvbnMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9OXzFf
MywKLSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZUXzI4LAotICAgICAg
ICAgICAgICAgIHRscy5UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjcsCi0gICAgICAgICAgICAgICAg
dGxzLlRMU19WRVJTSU9OXzFfM19EUkFGVF8yNiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ub3RoZXJfZXh0
ZW5zaW9ucywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAg
ICAgICAgIHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAg
ICAgICAgICAgICAgICAgIENMSUVOVF9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3B1
bGxfY2xpZW50X2hlbGxvX3dpdGhfYWxwbihzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRh
dGE9bG9hZCgidGxzX2NsaWVudF9oZWxsb193aXRoX2FscG4uYmluIikpCi0gICAgICAgIGhlbGxv
ID0gcHVsbF9jbGllbnRfaGVsbG8oYnVmKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVmLmVv
ZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5yYW5k
b20sCi0gICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgImVk
NTc1YzZmYmQ1OTljNGRmYWFiZDAwM2RjYTZlODYwY2NkYjBlMTc4MmMxYWYwMmU1N2JmMjdjYjY0
NzliNzYiCi0gICAgICAgICAgICApLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaGVsbG8ubGVnYWN5X3Nlc3Npb25faWQsIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIGhlbGxvLmNpcGhlcl9zdWl0ZXMsCi0gICAgICAgICAgICBbCi0gICAg
ICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1NiwKLSAgICAgICAg
ICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0LAotICAgICAgICAgICAg
ICAgIHRscy5DaXBoZXJTdWl0ZS5DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsCi0gICAgICAgICAg
ICAgICAgdGxzLkNpcGhlclN1aXRlLkVNUFRZX1JFTkVHT1RJQVRJT05fSU5GT19TQ1NWLAotICAg
ICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLmxl
Z2FjeV9jb21wcmVzc2lvbl9tZXRob2RzLCBbdGxzLkNvbXByZXNzaW9uTWV0aG9kLk5VTExdKQot
Ci0gICAgICAgICMgZXh0ZW5zaW9ucwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLmFs
cG5fcHJvdG9jb2xzLCBbImgzLTE5Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8u
ZWFybHlfZGF0YSwgRmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBoZWxsby5rZXlfc2hhcmUsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgKAotICAg
ICAgICAgICAgICAgICAgICB0bHMuR3JvdXAuU0VDUDI1NlIxLAotICAgICAgICAgICAgICAgICAg
ICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAiMDQ4ODQyMzE1
YzQzN2JiMGNlMjkyOWM4MTZmZWU0ZTk0MmVjNWNiNmRiNmE2YjliZjYyMjY4MDE4OGViYjBkNCIK
LSAgICAgICAgICAgICAgICAgICAgICAgICJiNjUyZTY5MDMzZjcxNjg2YWEwMWNiYzc5MTU1ODY2
ZTI2NGM5ZjMzZjQ1YWExNmIwZGZhMTBhMjIyZTNhNjY5IgotICAgICAgICAgICAgICAgICAgICAg
ICAgIjIyIgotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIGhlbGxvLnBza19rZXlfZXhjaGFuZ2VfbW9kZXMsIFt0bHMuUHNrS2V5RXhjaGFuZ2VNb2Rl
LlBTS19ESEVfS0VdCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5z
ZXJ2ZXJfbmFtZSwgImNsb3VkZmxhcmUtcXVpYy5jb20iKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgaGVsbG8uc2lnbmF0dXJlX2FsZ29yaXRobXMsCi0gICAgICAgICAg
ICBbCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMjU2
UjFfU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uRUNEU0Ff
U0VDUDM4NFIxX1NIQTM4NCwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGht
LkVDRFNBX1NFQ1A1MjFSMV9TSEE1MTIsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFs
Z29yaXRobS5FRDI1NTE5LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0u
RUQ0NDgsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1BT
U19TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNT
X1BTU19TSEEzODQsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0Ff
UFNTX1BTU19TSEE1MTIsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5S
U0FfUFNTX1JTQUVfU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0
aG0uUlNBX1BTU19SU0FFX1NIQTM4NCwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxn
b3JpdGhtLlJTQV9QU1NfUlNBRV9TSEE1MTIsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVy
ZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1
cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTM4NCwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0
dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEE1MTIsCi0gICAgICAgICAgICBdLAotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5zdXBwb3J0ZWRf
Z3JvdXBzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQMjU2
UjEsCi0gICAgICAgICAgICAgICAgdGxzLkdyb3VwLlgyNTUxOSwKLSAgICAgICAgICAgICAgICB0
bHMuR3JvdXAuU0VDUDM4NFIxLAotICAgICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQNTIxUjEs
Ci0gICAgICAgICAgICBdLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVs
bG8uc3VwcG9ydGVkX3ZlcnNpb25zLCBbdGxzLlRMU19WRVJTSU9OXzFfM10pCi0KLSAgICAgICAg
IyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKDEwMDApCi0gICAgICAgIHB1c2hfY2xp
ZW50X2hlbGxvKGJ1ZiwgaGVsbG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zi5k
YXRhKSwgbGVuKGxvYWQoInRsc19jbGllbnRfaGVsbG9fd2l0aF9hbHBuLmJpbiIpKSkKLQotICAg
IGRlZiB0ZXN0X3B1bGxfY2xpZW50X2hlbGxvX3dpdGhfcHNrKHNlbGYpOgotICAgICAgICBidWYg
PSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfY2xpZW50X2hlbGxvX3dpdGhfcHNrLmJpbiIpKQotICAg
ICAgICBoZWxsbyA9IHB1bGxfY2xpZW50X2hlbGxvKGJ1ZikKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGhlbGxvLmVhcmx5X2RhdGEsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBoZWxsby5wcmVfc2hhcmVkX2tleSwKLSAgICAgICAgICAgIHRscy5PZmZl
cmVkUHNrcygKLSAgICAgICAgICAgICAgICBpZGVudGl0aWVzPVsKLSAgICAgICAgICAgICAgICAg
ICAgKAotICAgICAgICAgICAgICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJmYWIzZGM3ZDc5ZjM1ZWE1M2U5YWRmMjExNTBlNjAxNTkx
YTc1MGI4MGNkZTBjZDE2N2ZlZjZlMGNkYmMwMzJhIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjNDE2MWZjNWM1YjY2Njc5ZGU0OTUyNGJkNTYyNGM1MGQ3MWJhM2U2NTA3ODBhNGJmZTQw
MmQ2YTA2YTAwNTI1IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwYjVkYzUyMDg1MjMz
YjY5ZDBkZDEzOTI0Y2M1YzcxM2EzOTY3ODRlY2FmYzU5ZjVlYTczYzE1ODVkNzk2MjFiIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICI4YTk0ZTRmMjI5MWIxNzQyN2Q1MTg1YWJmNGE5OTRm
Y2E3NGVlN2E3Zjk5M2E5NTBjNzEwMDNmYzdjZjgiCi0gICAgICAgICAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgICAgICAgICAgMjA2NzE1NjM3OCwKLSAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgYmluZGVycz1bCi0gICAg
ICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICIxNzg4YWQ0M2ZkZmYzN2NmYzYyOGYyNGI2Y2U3YzhjNzYxODA3MDUzODBkYTE3ZGEzMjgx
MWI1YmFlNGU3OCIKLSAgICAgICAgICAgICAgICAgICAgICAgICJkN2FhYWY2NWE5YjcxMzg3MmYy
YmIyODgxOGNhMWE2YjAxIgotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
YnVmLmVvZigpKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigx
MDAwKQotICAgICAgICBwdXNoX2NsaWVudF9oZWxsbyhidWYsIGhlbGxvKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2FkKCJ0bHNfY2xpZW50X2hlbGxvX3dpdGhfcHNrLmJp
biIpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9jbGllbnRfaGVsbG9fd2l0aF9zbmkoc2VsZik6Ci0g
ICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRsc19jbGllbnRfaGVsbG9fd2l0aF9zbmku
YmluIikpCi0gICAgICAgIGhlbGxvID0gcHVsbF9jbGllbnRfaGVsbG8oYnVmKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoYnVmLmVvZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBoZWxsby5yYW5kb20sCi0gICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnko
Ci0gICAgICAgICAgICAgICAgIjk4N2Q4OTM0MTQwYjBhNDJjYzU1NDUwNzFmM2Y5ZjdmNjE5NjNk
N2I2NDA0ZWI2NzRjOGRiZTUxMzYwNDM0NmIiCi0gICAgICAgICAgICApLAotICAgICAgICApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5sZWdhY3lfc2Vzc2lv
bl9pZCwKLSAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAi
MjZiMTliZGQzMGRiZjc1MTAxNWEzYTE2ZTEzYmQ1OTAwMmRmZTQyMGI3OTlkMmE1Y2Q1ZTExYjhm
YTdiY2I2NiIKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmNpcGhlcl9zdWl0ZXMsCi0gICAgICAgICAgICBbCi0g
ICAgICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NCwKLSAgICAg
ICAgICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuQUVTXzEyOF9HQ01fU0hBMjU2LAotICAgICAgICAg
ICAgICAgIHRscy5DaXBoZXJTdWl0ZS5DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsCi0gICAgICAg
ICAgICBdLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8ubGVnYWN5
X2NvbXByZXNzaW9uX21ldGhvZHMsIFt0bHMuQ29tcHJlc3Npb25NZXRob2QuTlVMTF0pCi0KLSAg
ICAgICAgIyBleHRlbnNpb25zCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uYWxwbl9w
cm90b2NvbHMsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBo
ZWxsby5rZXlfc2hhcmUsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgKAotICAgICAg
ICAgICAgICAgICAgICB0bHMuR3JvdXAuU0VDUDI1NlIxLAotICAgICAgICAgICAgICAgICAgICBi
aW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAiMDRiNjJkNzBmOTA3
YzgxNGNkNjVkMGY3M2I4Yjk5MWYwNmI3MGM3NzE1M2Y1NDg0MTBhMTkxZDJiMTk3NjRhMiIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICJlY2MwNjA2NWE0ODBlZmE5ZTFmMTBjOGRhNmU3MzdkNWJm
YzA0YmUzZjc3M2UyMGEwYzk5N2Y1MWI1NjIxMjgwIgotICAgICAgICAgICAgICAgICAgICAgICAg
IjQwIgotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IGhlbGxvLnBza19rZXlfZXhjaGFuZ2VfbW9kZXMsIFt0bHMuUHNrS2V5RXhjaGFuZ2VNb2RlLlBT
S19ESEVfS0VdCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5zZXJ2
ZXJfbmFtZSwgImNsb3VkZmxhcmUtcXVpYy5jb20iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgaGVsbG8uc2lnbmF0dXJlX2FsZ29yaXRobXMsCi0gICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hB
MjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uRUNEU0FfU0VDUDI1
NlIxX1NIQTI1NiwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9Q
S0NTMV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0Ff
UEtDUzFfU0hBMSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChoZWxsby5zdXBwb3J0ZWRfZ3JvdXBzLCBbdGxzLkdyb3VwLlNFQ1AyNTZSMV0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5zdXBwb3J0ZWRfdmVy
c2lvbnMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9OXzFf
MywKLSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZUXzI4LAotICAgICAg
ICAgICAgICAgIHRscy5UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjcsCi0gICAgICAgICAgICAgICAg
dGxzLlRMU19WRVJTSU9OXzFfM19EUkFGVF8yNiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ub3RoZXJfZXh0
ZW5zaW9ucywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAg
ICAgICAgIHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAg
ICAgICAgICAgICAgICAgIENMSUVOVF9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICAjIHNlcmlh
bGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoMTAwMCkKLSAgICAgICAgcHVzaF9jbGllbnRfaGVs
bG8oYnVmLCBoZWxsbykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgbG9hZCgi
dGxzX2NsaWVudF9oZWxsb193aXRoX3NuaS5iaW4iKSkKLQotICAgIGRlZiB0ZXN0X3B1c2hfY2xp
ZW50X2hlbGxvKHNlbGYpOgotICAgICAgICBoZWxsbyA9IENsaWVudEhlbGxvKAotICAgICAgICAg
ICAgcmFuZG9tPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiMThiMmIyM2Jm
M2U0NGI1ZDUyY2NmZTdhZWNiYzVmZjE0ZWFkYzNkMzQ5ZmFiZjgwNGQ3MWYxNjVhZTc2ZTdkNSIK
LSAgICAgICAgICAgICksCi0gICAgICAgICAgICBsZWdhY3lfc2Vzc2lvbl9pZD1iaW5hc2NpaS51
bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgIjlhZWU4MmEyZDE4NmMxY2IzMmEzMjlkOWRjZmUw
MDRhMWE0MzhhZDA0ODVhNTNjNmJmY2Y1NWMxMzJhMjMyMzUiCi0gICAgICAgICAgICApLAotICAg
ICAgICAgICAgY2lwaGVyX3N1aXRlcz1bCi0gICAgICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRl
LkFFU18yNTZfR0NNX1NIQTM4NCwKLSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuQUVT
XzEyOF9HQ01fU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5DaXBoZXJTdWl0ZS5DSEFDSEEy
MF9QT0xZMTMwNV9TSEEyNTYsCi0gICAgICAgICAgICBdLAotICAgICAgICAgICAgbGVnYWN5X2Nv
bXByZXNzaW9uX21ldGhvZHM9W3Rscy5Db21wcmVzc2lvbk1ldGhvZC5OVUxMXSwKLSAgICAgICAg
ICAgIGtleV9zaGFyZT1bCi0gICAgICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgICAgICB0
bHMuR3JvdXAuU0VDUDI1NlIxLAotICAgICAgICAgICAgICAgICAgICBiaW5hc2NpaS51bmhleGxp
ZnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAiMDQ3YmZlYTM0NDQ2NzUzNTA1NDI2M2I3NWRl
ZjYwY2ZmYTgyNDA1YTIxMWI2OGQxZWI4ZDFkOTQ0ZTY3YWVmOCIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICI5M2M3NjY1YTU0NzNkMDMyY2ZhZjIyYTczZGEyOGViNGFhY2FlMDAxN2VkMTI1NTdi
NTc5MWY5OGExZTg0ZjE1IgotICAgICAgICAgICAgICAgICAgICAgICAgImIwIgotICAgICAgICAg
ICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICBwc2tfa2V5X2V4Y2hhbmdlX21vZGVzPVt0bHMuUHNrS2V5RXhjaGFuZ2VNb2RlLlBTS19E
SEVfS0VdLAotICAgICAgICAgICAgc2lnbmF0dXJlX2FsZ29yaXRobXM9WwotICAgICAgICAgICAg
ICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BTU19SU0FFX1NIQTI1NiwKLSAgICAgICAg
ICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLkVDRFNBX1NFQ1AyNTZSMV9TSEEyNTYsCi0g
ICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hBMjU2LAot
ICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTEsCi0g
ICAgICAgICAgICBdLAotICAgICAgICAgICAgc3VwcG9ydGVkX2dyb3Vwcz1bdGxzLkdyb3VwLlNF
Q1AyNTZSMV0sCi0gICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbnM9WwotICAgICAgICAgICAg
ICAgIHRscy5UTFNfVkVSU0lPTl8xXzMsCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9O
XzFfM19EUkFGVF8yOCwKLSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZU
XzI3LAotICAgICAgICAgICAgICAgIHRscy5UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjYsCi0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgb3RoZXJfZXh0ZW5zaW9ucz1bCi0gICAgICAgICAgICAg
ICAgKAotICAgICAgICAgICAgICAgICAgICB0bHMuRXh0ZW5zaW9uVHlwZS5RVUlDX1RSQU5TUE9S
VF9QQVJBTUVURVJTLAotICAgICAgICAgICAgICAgICAgICBDTElFTlRfUVVJQ19UUkFOU1BPUlRf
UEFSQU1FVEVSUywKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBdLAotICAgICAgICAp
Ci0KLSAgICAgICAgYnVmID0gQnVmZmVyKDEwMDApCi0gICAgICAgIHB1c2hfY2xpZW50X2hlbGxv
KGJ1ZiwgaGVsbG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGxvYWQoInRs
c19jbGllbnRfaGVsbG8uYmluIikpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3NlcnZlcl9oZWxsbyhz
ZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9hZCgidGxzX3NlcnZlcl9oZWxsby5i
aW4iKSkKLSAgICAgICAgaGVsbG8gPSBwdWxsX3NlcnZlcl9oZWxsbyhidWYpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIGhlbGxvLnJhbmRvbSwKLSAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgK
LSAgICAgICAgICAgICAgICAiYWRhODUyNzFkMTk2ODBjNjE1ZWE3MzM2NTE5ZTNmZGY2ZjFlMjZm
M2IxMDc1ZWUxZGU5NmZmYTg4ODRlODI4MCIKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmxlZ2FjeV9zZXNzaW9u
X2lkLAotICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICI5
YWVlODJhMmQxODZjMWNiMzJhMzI5ZDlkY2ZlMDA0YTFhNDM4YWQwNDg1YTUzYzZiZmNmNTVjMTMy
YTIzMjM1IgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGhlbGxvLmNpcGhlcl9zdWl0ZSwgdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4
NCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5jb21wcmVzc2lvbl9tZXRob2QsIHRs
cy5Db21wcmVzc2lvbk1ldGhvZC5OVUxMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgaGVsbG8ua2V5X3NoYXJlLAotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAg
IHRscy5Hcm91cC5TRUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5
KAotICAgICAgICAgICAgICAgICAgICAiMDQ4YjI3ZDAyODIyNDJkODRiN2ZjYzAyYTljNGYxM2Vj
YTAzMjllM2M3MDI5YWEzNGEzMzc5NGU2ZTdiYTE4OSIKLSAgICAgICAgICAgICAgICAgICAgIjVj
Y2ExYzUwM2JmMDM3OGFjNjkzN2MzNTQ5MTIxMTZmZjMyNTEwMjZiY2ExOTU4ZDdmMzg3MzE2Yzgz
YWU2Y2YiCi0gICAgICAgICAgICAgICAgICAgICJiMiIKLSAgICAgICAgICAgICAgICApLAotICAg
ICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnBy
ZV9zaGFyZWRfa2V5LCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnN1cHBv
cnRlZF92ZXJzaW9uLCB0bHMuVExTX1ZFUlNJT05fMV8zKQotCi0gICAgZGVmIHRlc3RfcHVsbF9z
ZXJ2ZXJfaGVsbG9fd2l0aF9wc2soc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxv
YWQoInRsc19zZXJ2ZXJfaGVsbG9fd2l0aF9wc2suYmluIikpCi0gICAgICAgIGhlbGxvID0gcHVs
bF9zZXJ2ZXJfaGVsbG8oYnVmKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVmLmVvZigpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5yYW5kb20sCi0g
ICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgImNjYmFhZjA0
ZmMxYmQ1MTQzYjJjYzZiOTc1MjBjZjM3ZDkxNDcwZGJmYzgxMjcxMzFhN2JmMGY5NDFlM2ExMzci
Ci0gICAgICAgICAgICApLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBoZWxsby5sZWdhY3lfc2Vzc2lvbl9pZCwKLSAgICAgICAgICAgIGJpbmFzY2lp
LnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiOTQ4M2U3ZTg5NWQwZjRjZWMxNzA4NmIwODQ5
NjAxYzA2MzI2NjJjZDc2NGU4MjhmMmY4OTJmNGM0Yjc3NzFiMCIKLSAgICAgICAgICAgICksCi0g
ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5jaXBoZXJfc3VpdGUsIHRs
cy5DaXBoZXJTdWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaGVsbG8uY29tcHJlc3Npb25fbWV0aG9kLCB0bHMuQ29tcHJlc3Npb25NZXRob2QuTlVMTCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmtleV9zaGFyZSwK
LSAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICB0bHMuR3JvdXAuU0VDUDI1NlIxLAotICAg
ICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgIjA0
ODVkN2NlY2JlYmZjNTQ4ZmM2NTdiZjUxYjhlOGRhODQyYTQwNTZiMTY0YTI3Zjc3MDJjYTMxOGMx
NmU0ODgiCi0gICAgICAgICAgICAgICAgICAgICIxOGI2NDA5NTkzYjE1YzY2NDlkNmY0NTkzODdh
NTMxMjhiMTY0MTc4YWRjODQwMTc5YWFkMDFkMzZjZTk1ZDYyIgotICAgICAgICAgICAgICAgICAg
ICAiNzYiCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5wcmVfc2hhcmVkX2tleSwgMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChoZWxsby5zdXBwb3J0ZWRfdmVyc2lvbiwgdGxzLlRMU19WRVJTSU9O
XzFfMykKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoMTAwMCkK
LSAgICAgICAgcHVzaF9zZXJ2ZXJfaGVsbG8oYnVmLCBoZWxsbykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChidWYuZGF0YSwgbG9hZCgidGxzX3NlcnZlcl9oZWxsb193aXRoX3Bzay5iaW4iKSkK
LQotICAgIGRlZiB0ZXN0X3B1bGxfc2VydmVyX2hlbGxvX3dpdGhfdW5rbm93bl9leHRlbnNpb24o
c2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRsc19zZXJ2ZXJfaGVsbG9f
d2l0aF91bmtub3duX2V4dGVuc2lvbi5iaW4iKSkKLSAgICAgICAgaGVsbG8gPSBwdWxsX3NlcnZl
cl9oZWxsbyhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLAotICAgICAgICAgICAgU2Vy
dmVySGVsbG8oCi0gICAgICAgICAgICAgICAgcmFuZG9tPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAg
ICAgICAgICAgICAgICAgICAgImFkYTg1MjcxZDE5NjgwYzYxNWVhNzMzNjUxOWUzZmRmNmYxZTI2
ZjNiMTA3NWVlMWRlOTZmZmE4ODg0ZTgyODAiCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICAgICBsZWdhY3lfc2Vzc2lvbl9pZD1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAg
ICAgICAgICAgICI5YWVlODJhMmQxODZjMWNiMzJhMzI5ZDlkY2ZlMDA0YTFhNDM4YWQwNDg1YTUz
YzZiZmNmNTVjMTMyYTIzMjM1IgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAg
Y2lwaGVyX3N1aXRlPXRscy5DaXBoZXJTdWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQsCi0gICAgICAg
ICAgICAgICAgY29tcHJlc3Npb25fbWV0aG9kPXRscy5Db21wcmVzc2lvbk1ldGhvZC5OVUxMLAot
ICAgICAgICAgICAgICAgIGtleV9zaGFyZT0oCi0gICAgICAgICAgICAgICAgICAgIHRscy5Hcm91
cC5TRUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICIwNDhiMjdkMDI4MjI0MmQ4NGI3ZmNjMDJhOWM0ZjEzZWNh
MDMyOWUzYzcwMjlhYTM0YTMzNzk0ZTZlN2JhMTg5IgotICAgICAgICAgICAgICAgICAgICAgICAg
IjVjY2ExYzUwM2JmMDM3OGFjNjkzN2MzNTQ5MTIxMTZmZjMyNTEwMjZiY2ExOTU4ZDdmMzg3MzE2
YzgzYWU2Y2YiCi0gICAgICAgICAgICAgICAgICAgICAgICAiYjIiCi0gICAgICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfdmVy
c2lvbj10bHMuVExTX1ZFUlNJT05fMV8zLAotICAgICAgICAgICAgICAgIG90aGVyX2V4dGVuc2lv
bnM9WygxMjM0NSwgYiJmb28iKV0sCi0gICAgICAgICAgICApLAotICAgICAgICApCi0KLSAgICAg
ICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKDEwMDApCi0gICAgICAgIHB1c2hf
c2VydmVyX2hlbGxvKGJ1ZiwgaGVsbG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRh
dGEsIGxvYWQoInRsc19zZXJ2ZXJfaGVsbG9fd2l0aF91bmtub3duX2V4dGVuc2lvbi5iaW4iKSkK
LQotICAgIGRlZiB0ZXN0X3B1c2hfc2VydmVyX2hlbGxvKHNlbGYpOgotICAgICAgICBoZWxsbyA9
IFNlcnZlckhlbGxvKAotICAgICAgICAgICAgcmFuZG9tPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAg
ICAgICAgICAgICAgICAiYWRhODUyNzFkMTk2ODBjNjE1ZWE3MzM2NTE5ZTNmZGY2ZjFlMjZmM2Ix
MDc1ZWUxZGU5NmZmYTg4ODRlODI4MCIKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBsZWdh
Y3lfc2Vzc2lvbl9pZD1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgIjlhZWU4
MmEyZDE4NmMxY2IzMmEzMjlkOWRjZmUwMDRhMWE0MzhhZDA0ODVhNTNjNmJmY2Y1NWMxMzJhMjMy
MzUiCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgY2lwaGVyX3N1aXRlPXRscy5DaXBoZXJT
dWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQsCi0gICAgICAgICAgICBjb21wcmVzc2lvbl9tZXRob2Q9
dGxzLkNvbXByZXNzaW9uTWV0aG9kLk5VTEwsCi0gICAgICAgICAgICBrZXlfc2hhcmU9KAotICAg
ICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgYmluYXNj
aWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAiMDQ4YjI3ZDAyODIyNDJkODRiN2Zj
YzAyYTljNGYxM2VjYTAzMjllM2M3MDI5YWEzNGEzMzc5NGU2ZTdiYTE4OSIKLSAgICAgICAgICAg
ICAgICAgICAgIjVjY2ExYzUwM2JmMDM3OGFjNjkzN2MzNTQ5MTIxMTZmZjMyNTEwMjZiY2ExOTU4
ZDdmMzg3MzE2YzgzYWU2Y2YiCi0gICAgICAgICAgICAgICAgICAgICJiMiIKLSAgICAgICAgICAg
ICAgICApLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9uPXRs
cy5UTFNfVkVSU0lPTl8xXzMsCi0gICAgICAgICkKLQotICAgICAgICBidWYgPSBCdWZmZXIoMTAw
MCkKLSAgICAgICAgcHVzaF9zZXJ2ZXJfaGVsbG8oYnVmLCBoZWxsbykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChidWYuZGF0YSwgbG9hZCgidGxzX3NlcnZlcl9oZWxsby5iaW4iKSkKLQotICAg
IGRlZiB0ZXN0X3B1bGxfbmV3X3Nlc3Npb25fdGlja2V0KHNlbGYpOgotICAgICAgICBidWYgPSBC
dWZmZXIoZGF0YT1sb2FkKCJ0bHNfbmV3X3Nlc3Npb25fdGlja2V0LmJpbiIpKQotICAgICAgICBu
ZXdfc2Vzc2lvbl90aWNrZXQgPSBwdWxsX25ld19zZXNzaW9uX3RpY2tldChidWYpCi0gICAgICAg
IHNlbGYuYXNzZXJ0SXNOb3ROb25lKG5ld19zZXNzaW9uX3RpY2tldCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgbmV3X3Nlc3Npb25fdGlja2V0LAotICAgICAgICAgICAgTmV3U2Vzc2lvblRpY2tldCgK
LSAgICAgICAgICAgICAgICB0aWNrZXRfbGlmZXRpbWU9ODY0MDAsCi0gICAgICAgICAgICAgICAg
dGlja2V0X2FnZV9hZGQ9MzMwMzQ1MjQyNSwKLSAgICAgICAgICAgICAgICB0aWNrZXRfbm9uY2U9
YiIiLAotICAgICAgICAgICAgICAgIHRpY2tldD1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAg
ICAgICAgICAgICAgICJkYmU2ZjFhNzdhNzhjMDQyNmJmYTYwN2NkMGQwMmIzNTAyNDdkOTA2MTg3
MDQ3MDk1OTZiZWRhN2U5NjJjYzgxIgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg
ICAgbWF4X2Vhcmx5X2RhdGFfc2l6ZT0weEZGRkZGRkZGLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigxMDApCi0g
ICAgICAgIHB1c2hfbmV3X3Nlc3Npb25fdGlja2V0KGJ1ZiwgbmV3X3Nlc3Npb25fdGlja2V0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2FkKCJ0bHNfbmV3X3Nlc3Npb25f
dGlja2V0LmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9uZXdfc2Vzc2lvbl90aWNrZXRfd2l0
aF91bmtub3duX2V4dGVuc2lvbihzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9h
ZCgidGxzX25ld19zZXNzaW9uX3RpY2tldF93aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJpbiIpKQot
ICAgICAgICBuZXdfc2Vzc2lvbl90aWNrZXQgPSBwdWxsX25ld19zZXNzaW9uX3RpY2tldChidWYp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKG5ld19zZXNzaW9uX3RpY2tldCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgbmV3X3Nlc3Npb25fdGlja2V0LAotICAgICAgICAgICAgTmV3U2Vzc2lv
blRpY2tldCgKLSAgICAgICAgICAgICAgICB0aWNrZXRfbGlmZXRpbWU9ODY0MDAsCi0gICAgICAg
ICAgICAgICAgdGlja2V0X2FnZV9hZGQ9MzMwMzQ1MjQyNSwKLSAgICAgICAgICAgICAgICB0aWNr
ZXRfbm9uY2U9YiIiLAotICAgICAgICAgICAgICAgIHRpY2tldD1iaW5hc2NpaS51bmhleGxpZnko
Ci0gICAgICAgICAgICAgICAgICAgICJkYmU2ZjFhNzdhNzhjMDQyNmJmYTYwN2NkMGQwMmIzNTAy
NDdkOTA2MTg3MDQ3MDk1OTZiZWRhN2U5NjJjYzgxIgotICAgICAgICAgICAgICAgICksCi0gICAg
ICAgICAgICAgICAgbWF4X2Vhcmx5X2RhdGFfc2l6ZT0weEZGRkZGRkZGLAotICAgICAgICAgICAg
ICAgIG90aGVyX2V4dGVuc2lvbnM9WygxMjM0NSwgYiJmb28iKV0sCi0gICAgICAgICAgICApLAot
ICAgICAgICApCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKDEw
MCkKLSAgICAgICAgcHVzaF9uZXdfc2Vzc2lvbl90aWNrZXQoYnVmLCBuZXdfc2Vzc2lvbl90aWNr
ZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBidWYuZGF0YSwgbG9h
ZCgidGxzX25ld19zZXNzaW9uX3RpY2tldF93aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJpbiIpCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2VuY3J5cHRlZF9leHRlbnNpb25zKHNlbGYpOgotICAg
ICAgICBkYXRhID0gbG9hZCgidGxzX2VuY3J5cHRlZF9leHRlbnNpb25zLmJpbiIpCi0gICAgICAg
IGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAgIGV4dGVuc2lvbnMgPSBwdWxsX2VuY3J5
cHRlZF9leHRlbnNpb25zKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoZXh0ZW5z
aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgZXh0ZW5zaW9ucywKLSAgICAgICAgICAgIEVuY3J5
cHRlZEV4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgb3RoZXJfZXh0ZW5zaW9ucz1bCi0gICAg
ICAgICAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHRscy5FeHRlbnNpb25U
eXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICAgICAgICAgICAgICBT
RVJWRVJfUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywKLSAgICAgICAgICAgICAgICAgICAgKQot
ICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAgICAj
IHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MTAwKQotICAgICAgICBw
dXNoX2VuY3J5cHRlZF9leHRlbnNpb25zKGJ1ZiwgZXh0ZW5zaW9ucykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAgIGRlZiB0ZXN0X2VuY3J5cHRlZF9leHRl
bnNpb25zX3dpdGhfYWxwbihzZWxmKToKLSAgICAgICAgZGF0YSA9IGxvYWQoInRsc19lbmNyeXB0
ZWRfZXh0ZW5zaW9uc193aXRoX2FscG4uYmluIikKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9
ZGF0YSkKLSAgICAgICAgZXh0ZW5zaW9ucyA9IHB1bGxfZW5jcnlwdGVkX2V4dGVuc2lvbnMoYnVm
KQotICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShleHRlbnNpb25zKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoYnVmLmVvZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICBleHRlbnNpb25zLAotICAgICAgICAgICAgRW5jcnlwdGVkRXh0ZW5zaW9ucygKLSAg
ICAgICAgICAgICAgICBhbHBuX3Byb3RvY29sPSJocS0yMCIsCi0gICAgICAgICAgICAgICAgb3Ro
ZXJfZXh0ZW5zaW9ucz1bCi0gICAgICAgICAgICAgICAgICAgICh0bHMuRXh0ZW5zaW9uVHlwZS5T
RVJWRVJfTkFNRSwgYiIiKSwKLSAgICAgICAgICAgICAgICAgICAgKAotICAgICAgICAgICAgICAg
ICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTXzIs
Ci0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICksCi0gICAgICAgICkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZm
ZXIoMTE1KQotICAgICAgICBwdXNoX2VuY3J5cHRlZF9leHRlbnNpb25zKGJ1ZiwgZXh0ZW5zaW9u
cykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgIGRlZiB0ZXN0X3B1
bGxfZW5jcnlwdGVkX2V4dGVuc2lvbnNfd2l0aF9hbHBuX2FuZF9lYXJseV9kYXRhKHNlbGYpOgot
ICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfZW5jcnlwdGVkX2V4dGVuc2lvbnNf
d2l0aF9hbHBuX2FuZF9lYXJseV9kYXRhLmJpbiIpKQotICAgICAgICBleHRlbnNpb25zID0gcHVs
bF9lbmNyeXB0ZWRfZXh0ZW5zaW9ucyhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25l
KGV4dGVuc2lvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4dGVuc2lvbnMsCi0gICAgICAgICAg
ICBFbmNyeXB0ZWRFeHRlbnNpb25zKAotICAgICAgICAgICAgICAgIGFscG5fcHJvdG9jb2w9Imhx
LTIwIiwKLSAgICAgICAgICAgICAgICBlYXJseV9kYXRhPVRydWUsCi0gICAgICAgICAgICAgICAg
b3RoZXJfZXh0ZW5zaW9ucz1bCi0gICAgICAgICAgICAgICAgICAgICh0bHMuRXh0ZW5zaW9uVHlw
ZS5TRVJWRVJfTkFNRSwgYiIiKSwKLSAgICAgICAgICAgICAgICAgICAgKAotICAgICAgICAgICAg
ICAgICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywK
LSAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJT
XzMsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICksCi0gICAgICAgICkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBC
dWZmZXIoMTE2KQotICAgICAgICBwdXNoX2VuY3J5cHRlZF9leHRlbnNpb25zKGJ1ZiwgZXh0ZW5z
aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgIGRlZiB0ZXN0
X3B1bGxfY2VydGlmaWNhdGUoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQo
InRsc19jZXJ0aWZpY2F0ZS5iaW4iKSkKLSAgICAgICAgY2VydGlmaWNhdGUgPSBwdWxsX2NlcnRp
ZmljYXRlKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNlcnRpZmljYXRlLnJlcXVlc3RfY29udGV4dCwgYiIiKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNlcnRpZmljYXRlLmNlcnRpZmljYXRlcywgWyhDRVJUSUZJ
Q0FURV9EQVRBLCBiIiIpXSkKLQotICAgIGRlZiB0ZXN0X3B1c2hfY2VydGlmaWNhdGUoc2VsZik6
Ci0gICAgICAgIGNlcnRpZmljYXRlID0gQ2VydGlmaWNhdGUoCi0gICAgICAgICAgICByZXF1ZXN0
X2NvbnRleHQ9YiIiLCBjZXJ0aWZpY2F0ZXM9WyhDRVJUSUZJQ0FURV9EQVRBLCBiIiIpXQotICAg
ICAgICApCi0KLSAgICAgICAgYnVmID0gQnVmZmVyKDE2MDApCi0gICAgICAgIHB1c2hfY2VydGlm
aWNhdGUoYnVmLCBjZXJ0aWZpY2F0ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0
YSwgbG9hZCgidGxzX2NlcnRpZmljYXRlLmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9jZXJ0
aWZpY2F0ZV92ZXJpZnkoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRs
c19jZXJ0aWZpY2F0ZV92ZXJpZnkuYmluIikpCi0gICAgICAgIHZlcmlmeSA9IHB1bGxfY2VydGlm
aWNhdGVfdmVyaWZ5KGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZlcmlmeS5hbGdvcml0aG0sIHRscy5TaWduYXR1cmVB
bGdvcml0aG0uUlNBX1BTU19SU0FFX1NIQTI1NikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2
ZXJpZnkuc2lnbmF0dXJlLCBDRVJUSUZJQ0FURV9WRVJJRllfU0lHTkFUVVJFKQotCi0gICAgZGVm
IHRlc3RfcHVzaF9jZXJ0aWZpY2F0ZV92ZXJpZnkoc2VsZik6Ci0gICAgICAgIHZlcmlmeSA9IENl
cnRpZmljYXRlVmVyaWZ5KAotICAgICAgICAgICAgYWxnb3JpdGhtPXRscy5TaWduYXR1cmVBbGdv
cml0aG0uUlNBX1BTU19SU0FFX1NIQTI1NiwKLSAgICAgICAgICAgIHNpZ25hdHVyZT1DRVJUSUZJ
Q0FURV9WRVJJRllfU0lHTkFUVVJFLAotICAgICAgICApCi0KLSAgICAgICAgYnVmID0gQnVmZmVy
KDQwMCkKLSAgICAgICAgcHVzaF9jZXJ0aWZpY2F0ZV92ZXJpZnkoYnVmLCB2ZXJpZnkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGxvYWQoInRsc19jZXJ0aWZpY2F0ZV92ZXJp
ZnkuYmluIikpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2ZpbmlzaGVkKHNlbGYpOgotICAgICAgICBi
dWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfZmluaXNoZWQuYmluIikpCi0gICAgICAgIGZpbmlz
aGVkID0gcHVsbF9maW5pc2hlZChidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9m
KCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGZpbmlzaGVkLnZl
cmlmeV9kYXRhLAotICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAg
ICAgICJmMTU3OTIzMjM0ZmY5YTQ5MjFhYWRiMmUwZWM3YjFhMzBmY2U3M2ZiOWVjMGM0Mjc2Zjlh
ZjI2OGY0MDhlYzY4IgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
cHVzaF9maW5pc2hlZChzZWxmKToKLSAgICAgICAgZmluaXNoZWQgPSBGaW5pc2hlZCgKLSAgICAg
ICAgICAgIHZlcmlmeV9kYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAi
ZjE1NzkyMzIzNGZmOWE0OTIxYWFkYjJlMGVjN2IxYTMwZmNlNzNmYjllYzBjNDI3NmY5YWYyNjhm
NDA4ZWM2OCIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotCi0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cigxMjgpCi0gICAgICAgIHB1c2hfZmluaXNoZWQoYnVmLCBmaW5pc2hlZCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChidWYuZGF0YSwgbG9hZCgidGxzX2ZpbmlzaGVkLmJpbiIpKQotCi0KLWNs
YXNzIFZlcmlmeUNlcnRpZmljYXRlVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfdmVyaWZ5
X2NlcnRpZmljYXRlX2NoYWluKHNlbGYpOgotICAgICAgICB3aXRoIG9wZW4oU0VSVkVSX0NFUlRG
SUxFLCAicmIiKSBhcyBmcDoKLSAgICAgICAgICAgIGNlcnRpZmljYXRlID0gbG9hZF9wZW1feDUw
OV9jZXJ0aWZpY2F0ZXMoZnAucmVhZCgpKVswXQotCi0gICAgICAgIHdpdGggcGF0Y2goImFpb3F1
aWMudGxzLnV0Y25vdyIpIGFzIG1vY2tfdXRjbm93OgotICAgICAgICAgICAgbW9ja191dGNub3cu
cmV0dXJuX3ZhbHVlID0gY2VydGlmaWNhdGUubm90X3ZhbGlkX2JlZm9yZQotCi0gICAgICAgICAg
ICAjIGZhaWwKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0QmFk
Q2VydGlmaWNhdGUpIGFzIGNtOgotICAgICAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZShj
ZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwgc2VydmVyX25hbWU9ImxvY2FsaG9zdCIpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHN0cihjbS5leGNlcHRpb24p
LCAidW5hYmxlIHRvIGdldCBsb2NhbCBpc3N1ZXIgY2VydGlmaWNhdGUiCi0gICAgICAgICAgICAp
Ci0KLSAgICAgICAgICAgICMgb2sKLSAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAg
ICAgICAgICAgICAgICBjYWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUsCi0gICAgICAgICAgICAgICAg
Y2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsCi0gICAgICAgICAgICAgICAgc2VydmVyX25hbWU9Imxv
Y2FsaG9zdCIsCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF92ZXJpZnlfY2VydGlmaWNh
dGVfY2hhaW5fc2VsZl9zaWduZWQoc2VsZik6Ci0gICAgICAgIGNlcnRpZmljYXRlLCBfID0gZ2Vu
ZXJhdGVfZWNfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICBjb21tb25fbmFtZT0ibG9jYWxob3N0
IiwgY3VydmU9ZWMuU0VDUDI1NlIxCi0gICAgICAgICkKLQotICAgICAgICB3aXRoIHBhdGNoKCJh
aW9xdWljLnRscy51dGNub3ciKSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAgIG1vY2tfdXRj
bm93LnJldHVybl92YWx1ZSA9IGNlcnRpZmljYXRlLm5vdF92YWxpZF9iZWZvcmUKLQotICAgICAg
ICAgICAgIyBmYWlsCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVy
dEJhZENlcnRpZmljYXRlKSBhcyBjbToKLSAgICAgICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNh
dGUoY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHNlcnZlcl9uYW1lPSJsb2NhbGhvc3QiKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoY20uZXhjZXB0aW9uKSwgInNlbGYgc2lnbmVk
IGNlcnRpZmljYXRlIikKLQotICAgICAgICAgICAgIyBvawotICAgICAgICAgICAgdmVyaWZ5X2Nl
cnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1jZXJ0aWZpY2F0ZS5wdWJsaWNfYnl0
ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pLAotICAgICAgICAgICAgICAgIGNlcnRpZmlj
YXRlPWNlcnRpZmljYXRlLAotICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lPSJsb2NhbGhvc3Qi
LAotICAgICAgICAgICAgKQotCi0gICAgQHBhdGNoKCJhaW9xdWljLnRscy5saWIuWDUwOV9TVE9S
RV9uZXciKQotICAgIGRlZiB0ZXN0X3ZlcmlmeV9jZXJ0aWZpY2F0ZV9jaGFpbl9pbnRlcm5hbF9l
cnJvcihzZWxmLCBtb2NrX3N0b3JlX25ldyk6Ci0gICAgICAgIG1vY2tfc3RvcmVfbmV3LnJldHVy
bl92YWx1ZSA9IHRscy5mZmkuTlVMTAotCi0gICAgICAgIGNlcnRpZmljYXRlLCBfID0gZ2VuZXJh
dGVfZWNfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICBjb21tb25fbmFtZT0ibG9jYWxob3N0Iiwg
Y3VydmU9ZWMuU0VDUDI1NlIxCi0gICAgICAgICkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKHRscy5BbGVydEludGVybmFsRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgdmVyaWZ5
X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1jZXJ0aWZpY2F0ZS5wdWJsaWNf
Ynl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pLAotICAgICAgICAgICAgICAgIGNlcnRp
ZmljYXRlPWNlcnRpZmljYXRlLAotICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lPSJsb2NhbGhv
c3QiLAotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNl
cHRpb24pLCAiT3BlblNTTCBjYWxsIHRvIFg1MDlfc3RvcmVfbmV3IGZhaWxlZCIpCi0KLSAgICBk
ZWYgdGVzdF92ZXJpZnlfZGF0ZXMoc2VsZik6Ci0gICAgICAgIGNlcnRpZmljYXRlLCBfID0gZ2Vu
ZXJhdGVfZWNfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICBjb21tb25fbmFtZT0iZXhhbXBsZS5j
b20iLCBjdXJ2ZT1lYy5TRUNQMjU2UjEKLSAgICAgICAgKQotICAgICAgICBjYWRhdGEgPSBjZXJ0
aWZpY2F0ZS5wdWJsaWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pCi0KLSAgICAg
ICAgIyDCoHRvbyBlYXJseQotICAgICAgICB3aXRoIHBhdGNoKCJhaW9xdWljLnRscy51dGNub3ci
KSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAgIG1vY2tfdXRjbm93LnJldHVybl92YWx1ZSA9
ICgKLSAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZS5ub3RfdmFsaWRfYmVmb3JlIC0gZGF0ZXRp
bWUudGltZWRlbHRhKHNlY29uZHM9MSkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0Q2VydGlmaWNhdGVFeHBpcmVkKSBhcyBjbToKLSAg
ICAgICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICAgICAgICAgIGNh
ZGF0YT1jYWRhdGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0iZXhhbXBs
ZS5jb20iCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHIoY20uZXhjZXB0aW9uKSwgIkNlcnRpZmljYXRlIGlzIG5vdCB2YWxpZCB5ZXQiKQotCi0gICAg
ICAgICMgdmFsaWQKLSAgICAgICAgd2l0aCBwYXRjaCgiYWlvcXVpYy50bHMudXRjbm93IikgYXMg
bW9ja191dGNub3c6Ci0gICAgICAgICAgICBtb2NrX3V0Y25vdy5yZXR1cm5fdmFsdWUgPSBjZXJ0
aWZpY2F0ZS5ub3RfdmFsaWRfYmVmb3JlCi0gICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUo
Ci0gICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUs
IHNlcnZlcl9uYW1lPSJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICkKLQotICAgICAgICB3aXRo
IHBhdGNoKCJhaW9xdWljLnRscy51dGNub3ciKSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAg
IG1vY2tfdXRjbm93LnJldHVybl92YWx1ZSA9IGNlcnRpZmljYXRlLm5vdF92YWxpZF9hZnRlcgot
ICAgICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1j
YWRhdGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0iZXhhbXBsZS5jb20i
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgIyB0b28gbGF0ZQotICAgICAgICB3aXRoIHBhdGNo
KCJhaW9xdWljLnRscy51dGNub3ciKSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAgIG1vY2tf
dXRjbm93LnJldHVybl92YWx1ZSA9IGNlcnRpZmljYXRlLm5vdF92YWxpZF9hZnRlciArIGRhdGV0
aW1lLnRpbWVkZWx0YSgKLSAgICAgICAgICAgICAgICBzZWNvbmRzPTEKLSAgICAgICAgICAgICkK
LSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0Q2VydGlmaWNhdGVF
eHBpcmVkKSBhcyBjbToKLSAgICAgICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAg
ICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRhdGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBz
ZXJ2ZXJfbmFtZT0iZXhhbXBsZS5jb20iCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzdHIoY20uZXhjZXB0aW9uKSwgIkNlcnRpZmljYXRlIGlzIG5vIGxv
bmdlciB2YWxpZCIpCi0KLSAgICBkZWYgdGVzdF92ZXJpZnlfc3ViamVjdChzZWxmKToKLSAgICAg
ICAgY2VydGlmaWNhdGUsIF8gPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAg
IGNvbW1vbl9uYW1lPSJleGFtcGxlLmNvbSIsIGN1cnZlPWVjLlNFQ1AyNTZSMQotICAgICAgICAp
Ci0gICAgICAgIGNhZGF0YSA9IGNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJpYWxpemF0aW9u
LkVuY29kaW5nLlBFTSkKLQotICAgICAgICB3aXRoIHBhdGNoKCJhaW9xdWljLnRscy51dGNub3ci
KSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAgIG1vY2tfdXRjbm93LnJldHVybl92YWx1ZSA9
IGNlcnRpZmljYXRlLm5vdF92YWxpZF9iZWZvcmUKLQotICAgICAgICAgICAgIyB2YWxpZAotICAg
ICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRh
dGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0iZXhhbXBsZS5jb20iCi0g
ICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgaW52YWxpZAotICAgICAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRCYWRDZXJ0aWZpY2F0ZSkgYXMgY206Ci0gICAgICAg
ICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgICAgICBjYWRhdGE9
Y2FkYXRhLAotICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwKLSAg
ICAgICAgICAgICAgICAgICAgc2VydmVyX25hbWU9InRlc3QuZXhhbXBsZS5jb20iLAotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg
ICAgc3RyKGNtLmV4Y2VwdGlvbiksCi0gICAgICAgICAgICAgICAgImhvc3RuYW1lICd0ZXN0LmV4
YW1wbGUuY29tJyBkb2Vzbid0IG1hdGNoICdleGFtcGxlLmNvbSciLAotICAgICAgICAgICAgKQot
Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydEJhZENlcnRpZmlj
YXRlKSBhcyBjbToKLSAgICAgICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAg
ICAgICAgICAgICAgIGNhZGF0YT1jYWRhdGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2
ZXJfbmFtZT0iYWNtZS5jb20iCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzdHIoY20uZXhjZXB0aW9uKSwgImhvc3RuYW1l
ICdhY21lLmNvbScgZG9lc24ndCBtYXRjaCAnZXhhbXBsZS5jb20nIgotICAgICAgICAgICAgKQot
Ci0gICAgZGVmIHRlc3RfdmVyaWZ5X3N1YmplY3Rfd2l0aF9zdWJqYWx0bmFtZShzZWxmKToKLSAg
ICAgICAgY2VydGlmaWNhdGUsIF8gPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSgKLSAgICAgICAg
ICAgIGFsdGVybmF0aXZlX25hbWVzPVsiKi5leGFtcGxlLmNvbSIsICJleGFtcGxlLmNvbSJdLAot
ICAgICAgICAgICAgY29tbW9uX25hbWU9ImV4YW1wbGUuY29tIiwKLSAgICAgICAgICAgIGN1cnZl
PWVjLlNFQ1AyNTZSMSwKLSAgICAgICAgKQotICAgICAgICBjYWRhdGEgPSBjZXJ0aWZpY2F0ZS5w
dWJsaWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pCi0KLSAgICAgICAgd2l0aCBw
YXRjaCgiYWlvcXVpYy50bHMudXRjbm93IikgYXMgbW9ja191dGNub3c6Ci0gICAgICAgICAgICBt
b2NrX3V0Y25vdy5yZXR1cm5fdmFsdWUgPSBjZXJ0aWZpY2F0ZS5ub3RfdmFsaWRfYmVmb3JlCi0K
LSAgICAgICAgICAgICMgdmFsaWQKLSAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAg
ICAgICAgICAgICAgICBjYWRhdGE9Y2FkYXRhLCBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwgc2Vy
dmVyX25hbWU9ImV4YW1wbGUuY29tIgotICAgICAgICAgICAgKQotICAgICAgICAgICAgdmVyaWZ5
X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRhdGEsIGNlcnRpZmljYXRl
PWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0idGVzdC5leGFtcGxlLmNvbSIKLSAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgIyBpbnZhbGlkCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKHRscy5BbGVydEJhZENlcnRpZmljYXRlKSBhcyBjbToKLSAgICAgICAgICAgICAgICB2
ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRhdGEsIGNl
cnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0iYWNtZS5jb20iCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBz
dHIoY20uZXhjZXB0aW9uKSwKLSAgICAgICAgICAgICAgICAiaG9zdG5hbWUgJ2FjbWUuY29tJyBk
b2Vzbid0IG1hdGNoIGVpdGhlciBvZiAnKi5leGFtcGxlLmNvbScsICdleGFtcGxlLmNvbSciLAot
ICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jZXJ0aWZp
Y2F0ZS5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NlcnRpZmljYXRlLmJpbgpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTliZGU2MjkwNTQ4NTk5YmE4NmY4NWMxNTA2MTNiZjc3
NmFjZDdjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxNTM4CnpjbWQ7UFZFeEN5
ITF7fVVee1lWPj5xbW5vbWRGTG5PcEh1U29EOFJSOClpbWoyRWBjZ3ZUPHMpZDk7MSFXbnw9TAp6
V2lhcUg8VGxgQlYtOTZ1NkswQnRHKm1OQzBkY3JeV0NKUW9HVj0yamc3ZWMjJGBneEg3Mk5WbV5I
TEheR0ojXncKemopcjBlQXxRM2xKaVBnKE1ZX3B9eTJZdFFXdk45NWFeayMoNzZ1a1ptV0MhcSMp
Zjg1Oz1EIXsySWRDbFBfOThkCnpzJihROXE5OXx+ZEg5P1lpJVc3KzYmJitRR0t2eF80MyFOT0E/
fWRFP0c4Z0IwfEFJNUlDSnVvNkxUezFpJVNmZQp6NyNBVVhrJiVed3hyd28jMFZ2K1opV3ExeEZr
ZUk4LTBeKlZPMHJteipoQHh7QitYTStHYlkoYFQjbjI5Y2l7N3QKekJmdDN+P3hidytLRH5MPkpn
MWxKdih0Xnc/dEViKithLU05ekdacmkmKmklUCZpcjFqdGh3el40PksqY3lNQkdBCnpNeHtpdGdu
NDxIJENWMCs+d0QkMCtgOEY1R24tSDRVSiQlTj4xX1hZWDB5ZkRtQ0krJl9qPFpeT1coZDR0cmc0
OQp6S21CLW93ZSplWUh4aj5wb0JKcjViJXBRajhGTWMlZHxSZX1kN0RfNF5ASi1mKD0+aEBQZV4l
Z15uMXNWbzx9KmwKelh8Wj5FVWNFb2piOXE7RD89RnZwUTcpenZDZC07T3dBT1BndEAmYWh4JHJV
amdrXmJsJVI7UyV5TUZNV1U2PUpyCnpDWW9SQSlTS3M9KSgpKTZ5WFJsT2MyYVp4UzJtfX05KFJU
KU4yaGF9MUVVKUZjUm0hb0BAZ3I2dzN9TVhKVk9nUAp6MSh8fWNgd1h+Kmp6cXJ5eDRCckAkU1N8
KmlyRmJ3IXlsI0BTRUZYJF8qZ2JvQD1EQFhFQjd4YUp7MyhgREV7REUKej5ZWiZ7Uz5MWEQrZzVz
NUpAOSQlXzQ0UTYxPlZePXpnUSt7KGwhNXQ1JENeJmBfI1VecFkmc1c+ZU1UJDd2eSlhCno5LVBM
c0BaTDFwdUFSUDIlIX58LWk8PWteMEFwa2lJMSRNVHZoVyZrSHpDQyNBMjMjQmA1NzdpdiM+QlR1
YFYhPgp6MUBUb2BLeHZMY25+amxgbTdTUnAmU0VtKTBaOXZrbHJ0R0hLb3MrX2hfUShEem1rMXk5
SyNeQ3hqUjJRfEZYfk4KenQqMnszNFFmRyhtMDhMUk4qWUEmP211PHcqK3I5Rz1CMHxLQEBIe3Fk
QHxrVXVgcUNuS2IxMkA2Rm0xdDgjRmU8Cno5TH50ZFFmXlJjVTwyYkRGdHIoRWwjfj0kPkZieEk3
TUNPXj5KQC08QWMmKXZtcyRjOSlpMDxfUEUxWk1EJHhUSAp6MkJ2VmBqQlQzND0qfnxyRjM+a3sx
X2dwVmk7YVBtZnlEeHwxdHg3cSNPTihiRWR5cFZQemopeVQkRj5IJVlYJDUKekZxYnRsc0RKSD02
IT4hTnhkeX1qVUFAKTklcFlaeiNjeVR7VTgxen1fTko/RGQleUdDYjxXI1RuVlBRMXFaUnRqCnpw
fDVyUmVEfmQ0VEU1Iy1OQGdzbVV3N3hELWZnRkhpM2c/S1lOaT43OXA3ZjNDQDsjLW5pVShHJEBE
aVc8VjUpQwp6NFhNbXhrTjZvWlhRbk5mLTcjN0dRSXV8X1k1ZXI/aVgtZDQmV3ZrWWVPWWo9KUZS
JHJLPnxEZj9WbyRqXy01T3QKeklidUpxbTIhMDU9NmJxQ1RkYVB8UHAkY2ZGT14/RW49MUR1TkE3
angmSlhNMm0mbCotSTxtOEI8O2ByUDRDe3hmCno4KE93Y0lJYH5GN2p1OGIxXjREI1pHM3UwajN2
I1Urd3FRKnQlQld+P05oWikhKy02by0pNlB6bHorcyhRYWdATAp6b3RfUGBkT3RlX3cwfUNmYFAo
cFRTSEdPOXE5THhWWDZXPikmVHNPUT5XcSs2Xlc4cWIqTThaYHYkYldAUmEyOU8KelF0Yn5EbTNN
RzNfVSteZngkQGcyPS0qQSg0LU1BYTQoMnlxbD5jUFNAeSVgN0gxJE85MiV7PUsqfnBfVll2WklV
CnpqU3BVNyklVXU1IV54QEZfO0s+N3RMQFdnYHxnbHBIclh3NmlPRGB2YEheeCVOQWpUJGk7YEQj
R2NXKUVVTHJ9NAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2VydGlmaWNh
dGVfdmVyaWZ5LmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2VydGlmaWNhdGVfdmVyaWZ5
LmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmYwODM5NTBiNTM4YzEyM2ViOWVk
YzhmY2JlZDkyZTE5MzI5NTczNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAzOTIK
emNtVjszMGVBaW4wMEQjdTFPYjQ4ck91PTljT2QwQXZ2MyU5QzI9bSU3PXIqIyE8YiZhPld7JUcl
fFdDT0BgclZhCnpsOzhHemVsQDVzJlZpWDc2eDs7flJXJjdeeiVBenUpZil6bEdDK0k2Tz9wY3Mh
fTxtKDNBWG0qYmhucVgoIS1HWgp6byE0fkJYUmAkWXpHUD1UZSZofD5UP2UjVDxJZFdobzVeMEBo
Zlh3RFU3OUJweUFSM0peP2FAQngzIUB+QkprTTUKekgxPUFEJjEhRGZ4MnJ4Yz1mJl9qZCpmJTRs
LVZsbUUyNkV4dkUqYWImcE5ONzE+bHlDP1hsO2xOTDx1V0Q2fGUzCnpgRj5FNHZ1MkE5NUA3YSpk
Kkp8V0BtJkI3c0xublFyen5zKHQ7TGlQPDI9PTEkfX0yZExNPTE4P28mM2IrPmI/dgp6MV5fRn4j
bXhKT2JtUnl2UDg8aGhsSVlQKyVZVHQqUGFKNzdUeFhkYXwwQmRsMzY+ajFDQzBhVE9iOzg4cVpD
NSgKemFiSTNZS21FalpxSHxTMVZGWmJJQVl+S0heeyVZZW5gVT9TJlgob1dtNUR8UU0jc2JIR0Z3
XyRveTh7UTNfX0JYCm07e2A+ejg+UFNHOGpXVGAwISV5bjgmSFd+dEhDJihaKCRFdHlVTVFBUTJ8
QDhYVEFGWAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxv
LmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxvLmJpbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTE0MGFlY2ZjNjlmYjg0ZDViZWQ2YjFhYWM5MTYyZWMxM2Ew
NDY4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAyNTgKemNtWlElVkVEKChFVXte
bV8yKHp2dXxhNDRSbFY2MHxJdSZsO21lLUNfQlokemVvUzNnX1dZe0N0YW5YfEYxOCYhCnpaTTBi
UD1BQ35HVVEqNm83ZCliWmtMXkRuZGVDVCprdHFZNEZxMUgmRmYkX3EhK0hpfDI2cU5tMjV8O1Ft
Zzt8dAp6VUVFNGRTKUchJSRHJVRFfEV0TCVOPk11RjtfRmA3RFNxa2Vlb1FgfDc4TyFfIVJZKlly
UkJEWmBuSWUoXj88U04KenFINmZvTzhGVEpVLSprfFY5O2paPFh+cDBtI0xTb210eD4kOzl9dDVV
fTBmcVZQcytpdlJOM0lmVlN1fEZmbFV6CnlVJj4ocXBNZ1A7IUh8S0tmdSV1IWZxe1Z5TzB6PzA3
Nno2XnBmQ2Q/MUN2dCgwfHhfPkxraUZnTWxKeCRJI0dINgoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxvX3dpdGhfYWxwbi5iaW4gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvdGxzX2NsaWVudF9oZWxsb193aXRoX2FscG4uYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5MTEzYTNlNzVlMTRkNmQ5MjkwZjVkYTQyOWEzMjUwMmQ3YzRjMjZjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDMwNgp6Y21aUSVWQU53fmVqNlQ+emMrR0BAMn1N
dG5Dfm9tayNPY1ZwTG87M14tTkV6S2g8bj1wSXllbHojK15pJXB9YXIKekBTbC1eO3FVKlk0NWtk
bTQ2RjwrNEotQHszflclRTlaSXRSWCN0PSgyTG1HYDExQUhNTGthXlVQPjcrXzA0T05JCnpBalpI
VG9TYyhpbnYjfjJTZF4rO1NlbHV2bXo8eD16fEZ3SSUpclJSenkqWEg0QmB5M0soJiQjJTBOOD1L
dDNDNQp6aE93QHBCfWd8PWopOCVmTDVATCZnXylJXmpoVGE7Z00pKlVnTnVXa2dOMXtZZ049b2Vt
NjQ1K0w3UmJAaUo2NSMKem13XmZCM31YZyYyM01kKU4wdHNKIXgtbzQ0ZCptOVBsKXx7XjN2JXwl
KG1ORSp8V2JYV2lXUVUtZig0Ryg2YjR+CmktXkpRaUZgaG0/Rnw7akQmMWImeG0jQnI9eXVTbiVE
THIxNnNSUkkrKE1NX2sKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NsaWVu
dF9oZWxsb193aXRoX3Bzay5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NsaWVudF9oZWxs
b193aXRoX3Bzay5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmNjk1YzNhN2Iz
N2MyNzAxOWFmYTUxYTYwNTI1Y2JiYzEwOTY2YjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxp
dGVyYWwgNDgxCnpjbVpRJVY3JHhCOUY/K1MqQiRFeGVBUWIjR21yQXV6Y3NxTkdFaXtCe29KK1I2
Q0RxbXUqKWVwWndsalc2T1lVUAp6YFp8UC1gPk85dTlxVkp+OWx4WGAmWSQ7I3p4R2VkOFV7OURD
U2dXbFc9MDBhSl9jaDNjTHJBbWFSeGAwRFJ4SDcKekEwKzlXS2R7VzlgUy1QfV9XM1YqWTkwJTBz
KExEXyhEYCRaKm8+REY0aC1IRTstPWpkQXZQKz9gJWIrcWN5eDNBCnopJShsLVVIT3xHKW1YTmNM
N1JiLWdQRW1YcmUzO1VpaC1BYmktQ2lLZ0B1YGdrJTx3PVc/XjZnK00+KEEjS18zTgp6eiN6alEj
bFJxNWwzSEElUzVUQiRtUk9SU3BJbmsoUCtGeylvUyp4RERUNjd7VTkxYyY0RlcqNVkqM21WTzB6
SnEKekd5O1ZnNz1lNi1RVWVBSzF9MjlUcGJkOyUzfGNeOE9AXkhlRWV2KFBIczdoT3syYUhgWnF8
SzhRTjlHeGlPVTBhCnpAWjk2TW5Fdm5FZ1JeXj53VF82JUEzZUcpdEA1NXtrb1ZPanBNZE1xaT1Q
RWxhQyFmOCg5TDM3el5jan1kc0x4Uwp6KipmI1dVRXhWU01+QDNIbz50Kl4+UUNnP1NIJVktVms/
dVJ5UVZ6KHEkd0AjUjIkZzNgcGUyR2YwcHxfVTtjQ1EKeiU3RWhuJXp0V3JSR2F6RVZsWHJpP154
Xm5fckxsMVY7WX5sYkRwMCNwNGQ8ais7Ql8kbVFrYTBeZzYkYT4jTnFNClN1R311JXVDS2tSTCpr
VEZIWHtJQ0FGQGdTCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRf
aGVsbG9fd2l0aF9zbmkuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG9f
d2l0aF9zbmkuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTY4YTg2MTY3ZmYx
NjE4MzFmM2U5NzllNzQ1MDJjMzAzZTE2YTVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRl
cmFsIDI4Ngp6Y21aUSVWM2NCSm8+QUxyQkVycShiU0JpNVVFWTN2ZWQwOVI+SiptTz17fip0MD9r
LVZ2Szc9ZSZjMTdLYCtGY2AKemwkRj4rPiNHeCg/bXRvM0tKKEpqdnZHbnVlcFIxTlZfKnx6NUBy
LTtXQEtQRSYweCZuJmZ2LSomZnYoaE99RjRECnpgdzVZPXNUYU9tY2g4aCgrczshaVk5Rz1mdXlF
cH5qbmgqV3kqWkdPeH1AUiMlNy02JGRZMyZuenE8Y2BfdjcheQp6a0dPYmQpKDM3KTVeOFdAJn1R
SnxVfW1ZOHNoNiZvViZHLXFWJkxGbFZQUiVyV01UeGVTczBqcncmKmYyRiNAZSsKemtZRXNGVT1V
OHUkdUNWdyVTa0xzKWgjVHxPeDg9eiY7N3JZIVRkaTFnQ0soOzExa2VkZzgpITE4PGJ7OyhrdSl0
ClhqWCtAck1nfUlRMm5HJVlDV2pRRGBIV2x1MXxDclQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdGVzdHMvdGxzX2VuY3J5cHRlZF9leHRlbnNpb25zLmJpbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0
cy90bHNfZW5jcnlwdGVkX2V4dGVuc2lvbnMuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzMzU0NmM3MGM0OWNlNmIzYjM3MzlmYTI5NDMzZTE3Mzk3NTUzZWE2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDkwCnpjbWQ7SlU8aExmYE07RFE7NkRSe0FQYjBLYUFqYStV
fStGd1V8P1dfKChGKjBnQEw2SkQ5cGdmen5tSWN6e0NKagpRZzk8bnBtPmcwVnhFTDZAMDR9VHUq
I0gwbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZW5jcnlwdGVkX2V4dGVu
c2lvbnNfd2l0aF9hbHBuLmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZW5jcnlwdGVkX2V4
dGVuc2lvbnNfd2l0aF9hbHBuLmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ4
NDM2YTdiMzM4MzA3N2Y0YTM5YWQzMThhNThiMjhlM2JkMzU3Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKbGl0ZXJhbCAxMTUKemNtZDtKVjkwMDRXZEgjSTFgWS1gKXtIYDNCWkwxLTg2cHxOOFEy
KEQ4V3tmblhKQ2NXT2JofT8qRXNVO3o0OStsCnpNP3xVZWxpYGE4M3x0SjElblUzKjErNCNuRj5v
XzVOLXs3cUZyXkZwY1ZnZylWWElldkpYIUlXb3lQTiU0OXBCbgpMP29XVT1GdFB5dlFWMVFSCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRfZXh0ZW5zaW9uc193
aXRoX2FscG5fYW5kX2Vhcmx5X2RhdGEuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNy
eXB0ZWRfZXh0ZW5zaW9uc193aXRoX2FscG5fYW5kX2Vhcmx5X2RhdGEuYmluCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3ZTkwNjlmNmJlM2QyZTQ1N2U2M2M5NDJmYzlmMDU0Y2RiYWM0
YTkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDExNgp6Y21kO0pVP15iN1YqbWpH
MWBZLWApe0hgM0JMZkM0MjhSRGo4TndKczc/PkNZY3V4bGBhU0FrPXgrUSh+ZFkwMzEKenxObk99
YUdxSElUcX05SFk2dj82OHZ7IU4hfmckNCY1U0BNa2krYF83WHZGKWtlUHdXe1JzbVgxMHlwN0JM
aD5xCkswMFREenFhKi1vXzhaNm0KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxz
X2ZpbmlzaGVkLmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZmluaXNoZWQuYmluCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjRiYjJmMmE5ZDI3NTM4Y2EyMTU0YWI3OTRmMzll
Zjc3NmZkNWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDM2CnVjbVYrPDBOZWkq
MDAxRUlTQ1RSYHxDJmk1c0BwQ08kRlpYaSZVNT5ventEcVNuKH1EJDI8JkphTkQtUj0KCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX25ld19zZXNzaW9uX3RpY2tldC5iaW4gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvdGVzdHMvdGxzX25ld19zZXNzaW9uX3RpY2tldC5iaW4KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDY0MzliNDczMWUwNGIzYjZkNmQzYTYxNWZjMzNkZTVkZjc0NmNm
NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNTcKemNtWlEhVUAmRTEzflZeXlkm
fENmZ1RuMStBRDM1RTlCfDcxbH44bHhnMD9BPmAlTn45MChae0g/Nj1FYkNZQDx5Ck07OSReVlZF
R1JPMER3anFKXiVtIQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfbmV3X3Nl
c3Npb25fdGlja2V0X3dpdGhfdW5rbm93bl9leHRlbnNpb24uYmluIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rl
c3RzL3Rsc19uZXdfc2Vzc2lvbl90aWNrZXRfd2l0aF91bmtub3duX2V4dGVuc2lvbi5iaW4KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNzkyODkwYWNlNzUxM2NmYjVhYTE4YTM3M2E5
NDlmNDFkYjhjY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgNjQKemNtWlEhVjZi
NmUzflZeXlkmfENmZ1RuMStBRDM1RTlCfDcxbH44bHhnMD9BPmAlTn45MChae0g/Nj1FYkNZQDx5
ClQ7QWhaY1ZFR1JPMjleeFdZNURtOEY7Zn0qCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rl
c3RzL3Rsc19zZXJ2ZXJfaGVsbG8uYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19zZXJ2ZXJf
aGVsbG8uYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGE2YzUxZmU1NjAyOTUx
M2I4MzhjNmQyNDMxOWNlNWM4ZmZkYmY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFs
IDE1NQp6Y21WO00wQSY5SDAwNVQqMUZmaTFhblk4NSN1ZSZ3SGNfNUctKXxsIV5SV2tCO29nQDJz
RUFJMmZGUFJnZn0rdWUKeiFPSnFFRGNSaXEwN0BEfGlxSj99UV52b35SbHpjJUdCcHpkMDAyKF9E
KnlybTFPUEp0TUYxQjdLP0k4QCY/cTg4CnoqaF8hUjA7JENES0ZSfHI8SHJKO3FlP1MqUEh1YWxp
Q29HWVAmQEU5aXBHPENIQXhaP1p9VE0oQ2NMNFFqZWpfRQpKN1JXbTAmJDFOKkt7QH5jCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19zZXJ2ZXJfaGVsbG9fd2l0aF9wc2suYmlu
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19zZXJ2ZXJfaGVsbG9fd2l0aF9wc2suYmluCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWNjZGY1OWFiOTVlODllNDA0Y2UyMzRkYjNmODFk
MThkZTFlMGViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDE2MQp6Y21WO1MwQUJ3
QjAwNWw+MUkpVXcxcEZKLTZndz0meHBnNFZIYHg/JCt4JnFpNkI+SylgOWI1TUh6MVVRPWpmSHQK
el52PU8+aE9tVHwwbDtHPlYkRjY9ZnshbldGSEIyIWFqKzh0MDAzMTBEKnlybTFPUEp0TUYxQjdL
P0hAQCZkY2xrCnpSRkI0Mnpmcmo4K0pxYFZSPFVIRmV8R31QRl5tQEVoIzBtJm02TmV0Vz1Zb2NT
dlkhQTV7bmk9YyYqNGw3bi1kQgpQKGBATm9Wcy0jMjAwSUMyNkkoO2sKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvdGVzdHMvdGxzX3NlcnZlcl9oZWxsb193aXRoX3Vua25vd25fZXh0ZW5zaW9u
LmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfc2VydmVyX2hlbGxvX3dpdGhfdW5rbm93bl9l
eHRlbnNpb24uYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmU1YjcwNzNmZGJl
M2NiN2JmZmI3MThiMTQ2ZGUyNTEwODNiZWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRl
cmFsIDE2Mgp6Y21WO1QwQTJxQTAwNW8/MUZmaTFhblk4NSN1ZSZ3SGNfNUctKXxsIV5SV2tCO29n
QDJzRUFJMmZGUFJnZn0rdWUKeiFPSnFFRGNSaXEwN0BEfGlxSj99UV52b35SbHpjJUdCcHpkMDAz
NDFEKnlybTFPUEp0TUYxQjdLP0k4QCY/cTg4CnoqaF8hUjA7JENES0ZSfHI8SHJKO3FlP1MqUEh1
YWxpQ29HWVAmQEU5aXBHPENIQXhaP1p9VE0oQ2NMNFFqZWpfRQpRN1JXbTAmJDJLJTAwVS1rWnxS
ZGxfeTdPXgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy91dGlscy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy90ZXN0cy91dGlscy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBi
YWIyYjY4YTI0OGZiYzUzNDBmMjNlMmE3OTc2NzA1MGE1ZjVhNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdXRpbHMucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGRh
dGV0aW1lCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLWZyb20gY3J5
cHRvZ3JhcGh5IGltcG9ydCB4NTA5Ci1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMg
aW1wb3J0IGRlZmF1bHRfYmFja2VuZAotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2
ZXMgaW1wb3J0IGhhc2hlcwotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuYXN5
bW1ldHJpYyBpbXBvcnQgZWMKLQotCi1kZWYgZ2VuZXJhdGVfZWNfY2VydGlmaWNhdGUoY29tbW9u
X25hbWUsIGN1cnZlPWVjLlNFQ1AyNTZSMSwgYWx0ZXJuYXRpdmVfbmFtZXM9W10pOgotICAgIGtl
eSA9IGVjLmdlbmVyYXRlX3ByaXZhdGVfa2V5KGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCksIGN1
cnZlPWN1cnZlKQotCi0gICAgc3ViamVjdCA9IGlzc3VlciA9IHg1MDkuTmFtZSgKLSAgICAgICAg
W3g1MDkuTmFtZUF0dHJpYnV0ZSh4NTA5Lk5hbWVPSUQuQ09NTU9OX05BTUUsIGNvbW1vbl9uYW1l
KV0KLSAgICApCi0KLSAgICBidWlsZGVyID0gKAotICAgICAgICB4NTA5LkNlcnRpZmljYXRlQnVp
bGRlcigpCi0gICAgICAgIC5zdWJqZWN0X25hbWUoc3ViamVjdCkKLSAgICAgICAgLmlzc3Vlcl9u
YW1lKGlzc3VlcikKLSAgICAgICAgLnB1YmxpY19rZXkoa2V5LnB1YmxpY19rZXkoKSkKLSAgICAg
ICAgLnNlcmlhbF9udW1iZXIoeDUwOS5yYW5kb21fc2VyaWFsX251bWJlcigpKQotICAgICAgICAu
bm90X3ZhbGlkX2JlZm9yZShkYXRldGltZS5kYXRldGltZS51dGNub3coKSkKLSAgICAgICAgLm5v
dF92YWxpZF9hZnRlcihkYXRldGltZS5kYXRldGltZS51dGNub3coKSArIGRhdGV0aW1lLnRpbWVk
ZWx0YShkYXlzPTEwKSkKLSAgICApCi0gICAgaWYgYWx0ZXJuYXRpdmVfbmFtZXM6Ci0gICAgICAg
IGJ1aWxkZXIgPSBidWlsZGVyLmFkZF9leHRlbnNpb24oCi0gICAgICAgICAgICB4NTA5LlN1Ympl
Y3RBbHRlcm5hdGl2ZU5hbWUoCi0gICAgICAgICAgICAgICAgW3g1MDkuRE5TTmFtZShuYW1lKSBm
b3IgbmFtZSBpbiBhbHRlcm5hdGl2ZV9uYW1lc10KLSAgICAgICAgICAgICksCi0gICAgICAgICAg
ICBjcml0aWNhbD1GYWxzZSwKLSAgICAgICAgKQotICAgIGNlcnQgPSBidWlsZGVyLnNpZ24oa2V5
LCBoYXNoZXMuU0hBMjU2KCksIGRlZmF1bHRfYmFja2VuZCgpKQotICAgIHJldHVybiBjZXJ0LCBr
ZXkKLQotCi1kZWYgbG9hZChuYW1lKToKLSAgICBwYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXyksIG5hbWUpCi0gICAgd2l0aCBvcGVuKHBhdGgsICJyYiIpIGFzIGZw
OgotICAgICAgICByZXR1cm4gZnAucmVhZCgpCi0KLQotZGVmIHJ1bihjb3JvKToKLSAgICByZXR1
cm4gYXN5bmNpby5nZXRfZXZlbnRfbG9vcCgpLnJ1bl91bnRpbF9jb21wbGV0ZShjb3JvKQotCi0K
LVNFUlZFUl9DQUNFUlRGSUxFID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XyksICJweWNhY2VydC5wZW0iKQotU0VSVkVSX0NFUlRGSUxFID0gb3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksICJzc2xfY2VydC5wZW0iKQotU0VSVkVSX0NFUlRGSUxFX1dJ
VEhfQ0hBSU4gPSBvcy5wYXRoLmpvaW4oCi0gICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwg
InNzbF9jZXJ0X3dpdGhfY2hhaW4ucGVtIgotKQotU0VSVkVSX0tFWUZJTEUgPSBvcy5wYXRoLmpv
aW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgInNzbF9rZXkucGVtIikKLVNLSVBfVEVTVFMg
PSBmcm96ZW5zZXQob3MuZW52aXJvbi5nZXQoIkFJT1FVSUNfU0tJUF9URVNUUyIsICIiKS5zcGxp
dCgiLCIpKQotCi1pZiBvcy5lbnZpcm9uLmdldCgiQUlPUVVJQ19ERUJVRyIpOgotICAgIGxvZ2dp
bmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5ERUJVRykKLQotaWYgKAotICAgIHN5cy5wbGF0
Zm9ybSA9PSAid2luMzIiCi0gICAgYW5kIHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPT0gMwotICAg
IGFuZCBzeXMudmVyc2lvbl9pbmZvLm1pbm9yID09IDgKLSk6Ci0gICAgIyBQeXRob24gMy44IHVz
ZXMgUHJvYWN0b3JFdmVudExvb3AgYnkgZGVmYXVsdCwKLSAgICAjIHdoaWNoIGJyZWFrcyBVRFAg
LyBJUHY2IHN1cHBvcnQsIHNlZToKLSAgICAjCi0gICAgIyBodHRwczovL2J1Z3MucHl0aG9uLm9y
Zy9pc3N1ZTM5MTQ4Ci0KLSAgICBhc3luY2lvLnNldF9ldmVudF9sb29wX3BvbGljeShhc3luY2lv
LldpbmRvd3NTZWxlY3RvckV2ZW50TG9vcFBvbGljeSgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3ZlcnNpb25fbmVnb3RpYXRpb24uYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Zl
cnNpb25fbmVnb3RpYXRpb24uYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODUw
OWM5MDk5Y2VhOGFlZTI4ZGVmZmI1NTA2MmQzOTNkMWMzYmE4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDMxCmxjbWFGRzAwYlBmKTxrKmtZRzJ7V0BsKVR+P0FLSzNnfDY9SVYqZVEh
Qm11SUozaitXRQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzkwZjEzZTFiMmMzNzUzZTI4NjkzZmFlMjM4MjUyYWY2N2E3ODg2My4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
aW5pdGlhbF9jbGllbnQuYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL2luaXRpYWxfc2VydmVyLmJp
bgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy90ZXN0cy9weWNhY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
cmV0cnkuYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Nob3J0X2hlYWRlci5iaW4KLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvdGVzdHMvc3NsX2NlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3NzbF9jZXJ0X3dp
dGhfY2hhaW4ucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3NzbF9rZXkucGVtCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rlc3RfYXN5bmNpby5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5j
aW9fY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfYnVmZmVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3Rlc3RzL3Rlc3RfY29ubmVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0
X2NyeXB0by5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2gwLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3Rlc3RzL3Rlc3RfaDMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9sb2dnZXIucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9wYWNrZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVz
dF9wYWNrZXRfYnVpbGRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3Jhbmdlc2V0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmVjb3ZlcnkucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVz
dHMvdGVzdF9yZXRyeS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3N0cmVhbS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy90ZXN0cy90ZXN0X3Rscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2Vy
dGlmaWNhdGUuYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jZXJ0aWZpY2F0ZV92ZXJpZnku
YmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG8uYmluCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG9fd2l0aF9hbHBuLmJpbgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90
ZXN0cy90bHNfY2xpZW50X2hlbGxvX3dpdGhfcHNrLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90
bHNfY2xpZW50X2hlbGxvX3dpdGhfc25pLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZW5j
cnlwdGVkX2V4dGVuc2lvbnMuYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRf
ZXh0ZW5zaW9uc193aXRoX2FscG4uYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0
ZWRfZXh0ZW5zaW9uc193aXRoX2FscG5fYW5kX2Vhcmx5X2RhdGEuYmluCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3Rlc3RzL3Rsc19maW5pc2hlZC5iaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX25ld19zZXNz
aW9uX3RpY2tldC5iaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX25ld19zZXNzaW9uX3RpY2tl
dF93aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfc2Vy
dmVyX2hlbGxvLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfc2VydmVyX2hlbGxvX3dpdGhf
cHNrLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfc2VydmVyX2hlbGxvX3dpdGhfdW5rbm93
bl9leHRlbnNpb24uYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3V0aWxzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3ZlcnNpb25fbmVnb3RpYXRpb24uYmluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNGVjOTVjOWExNjE2N2NjM2VjMGMzMTczNTMyYzU0MDBj
MTE2Y2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvTUFOSUZFU1QuaW4K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5jZmcKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy5naXRpZ25v
cmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0b21pY3dyaXRlcy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiMmQzMTI4NzUz
ZTlmNmYzNDg5NWU3MTgzNTk1ODI5ZDEwNjNhNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
b21pY3dyaXRlcy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsOSBAQAorLnRveAorKi5weWMKKyoucHlv
CitfX3B5Y2FjaGVfXworKi5lZ2ctaW5mbworZG9jcy9fYnVpbGQKK2J1aWxkCitkaXN0CisuY2Fj
aGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy50cmF2aXMueW1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9t
aWN3cml0ZXMvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk3NzkwMThhZDMxZTYyMTBhOGQ5MWVi
ZTE4YzljYWIwZWMwM2ZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy50
cmF2aXMueW1sCkBAIC0wLDAgKzEsMzUgQEAKK3N1ZG86IGZhbHNlCitvczogbGludXgKK2xhbmd1
YWdlOiBweXRob24KKworbWF0cml4OgorICAgIGluY2x1ZGU6CisgICAgICAgIC0gb3M6IG9zeAor
ICAgICAgICAgIGxhbmd1YWdlOiBnZW5lcmljCisgICAgICAgICAgZW52OiBUT1hFTlZfU1VGRklY
PXRlc3QKKworcHl0aG9uOgorICAgIC0gIjIuNiIKKyAgICAtICIyLjciCisgICAgLSAicHlweSIK
KyAgICAtICIzLjMiCisgICAgLSAiMy40IgorCitpbnN0YWxsOgorICAgIC0gIyBUaGUgT1MgWCBW
TSBkb2Vzbid0IGhhdmUgYW55IFB5dGhvbiBzdXBwb3J0IGF0IGFsbAorICAgICAgIyBTZWUgaHR0
cHM6Ly9naXRodWIuY29tL3RyYXZpcy1jaS90cmF2aXMtY2kvaXNzdWVzLzIzMTIKKyAgICAgIGlm
IFsgIiRUUkFWSVNfT1NfTkFNRSIgPSAib3N4IiBdOyB0aGVuCisgICAgICAgICAgYnJldyB1cGRh
dGU7CisgICAgICAgICAgYnJldyBpbnN0YWxsIHB5dGhvbjM7CisgICAgICAgICAgdmlydHVhbGVu
diAtcCBweXRob24zICRIT01FL29zeC1weTM7CisgICAgICAgICAgLiAkSE9NRS9vc3gtcHkzL2Jp
bi9hY3RpdmF0ZTsKKyAgICAgICAgICBleHBvcnQgVFJBVklTX1BZVEhPTl9WRVJTSU9OPSIkKHB5
dGhvbiAtLXZlcnNpb24gfCBjdXQgLWQgJyAnIC1mIDIgfCBjdXQgLWQgLiAtZiAtMikiOworICAg
ICAgZmkKKyAgICAtIHBpcCBpbnN0YWxsIHRveAorCitzY3JpcHQ6CisgICAgLSBleHBvcnQgVE9Y
X1BZPSIkKGVjaG8gcHkkVFJBVklTX1BZVEhPTl9WRVJTSU9OIHwgdHIgLWQgLiB8IHNlZCAtZSAn
cy9weXB5cHkvcHlweS8nKSIKKyAgICAtIHRveCAtZSAkVE9YX1BZLXRlc3QKKyAgICAtIGlmIFsg
IiRUUkFWSVNfUFlUSE9OX1ZFUlNJT04iID0gIjIuNyIgXSB8fCBbICIkVFJBVklTX1BZVEhPTl9W
RVJTSU9OIiA9ICIuMy41IiBdOyB0aGVuCisgICAgICAgICAgdG94IC1lICRUT1hfUFktc3R5bGVj
aGVjazsKKyAgICAgIGZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9hdG9taWN3cml0
ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9hdG9taWN3cml0ZXMvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMzc2MmFhNTZjNTMzNjNm
NzEzNGE2MWYwYTI1MTc3N2EzZDI1M2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvYXRvbWljd3JpdGVzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3
cml0ZXMvYXRvbWljd3JpdGVzL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dy
aXRlcy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9jcy93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJjY2JiMmQ0ZGJkOTgzNmE2
ZmJmZmI2N2RmMTgxMDMzOWZiYjBlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9kb2NzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9j
cy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL2RvY3MvY29uZi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWlj
d3JpdGVzL2RvY3MvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9jcy9tYWtlLmJhdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21p
Y3dyaXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRh
MGZjMDczMzVlNjc2NGJmOTFhNmE4MmUxYzE1YTVmY2NlNmE3My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWlj
d3JpdGVzL0NPTlRSSUJVVElORy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9MSUNFTlNFCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdG9taWN3cml0ZXMvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9NYWtlZmlsZQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXRvbWljd3JpdGVzL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9hcHB2ZXlv
ci55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9z
ZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvLmdpdGh1Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdpdGh1Yi93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdhNzE4ZDg2NDcxY2FjYjY5NWJh
NjNhN2I2MDc0Yzk4NmE3ZTdiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRodWIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRodWIvQ09ERV9PRl9D
T05EVUNULnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdpdGh1Yi9DT05UUklCVVRJTkcucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjODk1
ZWUxZGI3Mjc4OGYzYzMyMGM3ODc4ZGI5NmZiOGRlOGJhOGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzLy5naXRpZ25vcmUKQEAgLTAsMCArMSwxMSBAQAorKi5weWMKKyouZWdnLWluZm8K
Ky5jYWNoZQorLmNvdmVyYWdlKgorLmh5cG90aGVzaXMKKy5weXRlc3RfY2FjaGUKKy50b3gKK2J1
aWxkCitkaXN0Citkb2NzL19idWlsZC8KK2h0bWxjb3YKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
LnJlYWR0aGVkb2NzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLnJlYWR0aGVkb2NzLnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNGI2ZjQzMTA2NmY1NzlhN2Q2Nzg5YWZmZTYxMjIzOWVkODljMTZhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy8ucmVhZHRoZWRvY3MueW1sCkBAIC0wLDAgKzEsNiBAQAorLS0tCitw
eXRob246CisgIHZlcnNpb246IDMKKyAgcGlwX2luc3RhbGw6IHRydWUKKyAgZXh0cmFfcmVxdWly
ZW1lbnRzOgorICAgIC0gZG9jcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8udHJhdmlzLnltbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M5OGIyMWE2MzdkZmM4ZTc0ZjBi
ZTQzNWVmODAyYTNmYmI1MDFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLnRyYXZp
cy55bWwKQEAgLTAsMCArMSw2OSBAQAorZGlzdDogdHJ1c3R5Citncm91cDogdHJhdmlzX2xhdGVz
dAorc3VkbzogZmFsc2UKK2NhY2hlOgorICBkaXJlY3RvcmllczoKKyAgICAtICRIT01FLy5jYWNo
ZS9waXAKKworbGFuZ3VhZ2U6IHB5dGhvbgorCisKK21hdHJpeDoKKyAgZmFzdF9maW5pc2g6IHRy
dWUKKworICBpbmNsdWRlOgorICAgIC0gcHl0aG9uOiAiMi43IgorICAgICAgZW52OiBUT1hFTlY9
cHkyNworICAgIC0gcHl0aG9uOiAiMy40IgorICAgICAgZW52OiBUT1hFTlY9cHkzNAorICAgIC0g
cHl0aG9uOiAiMy41IgorICAgICAgZW52OiBUT1hFTlY9cHkzNQorICAgIC0gcHl0aG9uOiAiMy42
IgorICAgICAgZW52OiBUT1hFTlY9cHkzNgorICAgIC0gcHl0aG9uOiAicHlweSIKKyAgICAgIGVu
djogVE9YRU5WPXB5cHkKKyAgICAtIHB5dGhvbjogInB5cHkzIgorICAgICAgZW52OiBUT1hFTlY9
cHlweTMKKworICAgICMgUHJldmVudCBicmVha2FnZSBieSBhIG5ldyByZWxlYXNlcworICAgIC0g
cHl0aG9uOiAiMy42LWRldiIKKyAgICAgIGVudjogVE9YRU5WPXB5MzYKKyAgICAtIHB5dGhvbjog
IjMuNy1kZXYiCisgICAgICBlbnY6IFRPWEVOVj1weTM3CisKKyAgICAjIE1ldGEKKyAgICAtIHB5
dGhvbjogIjMuNiIKKyAgICAgIGVudjogVE9YRU5WPWZsYWtlOAorICAgIC0gcHl0aG9uOiAiMy42
IgorICAgICAgZW52OiBUT1hFTlY9bWFuaWZlc3QKKyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAg
IGVudjogVE9YRU5WPWRvY3MKKyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAgIGVudjogVE9YRU5W
PXJlYWRtZQorICAgIC0gcHl0aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9Y2hhbmdlbG9n
CisKKyAgYWxsb3dfZmFpbHVyZXM6CisgICAgLSBweXRob246ICIzLjYtZGV2IgorICAgIC0gcHl0
aG9uOiAiMy43LWRldiIKKworCitpbnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIHRveAorCisKK3Nj
cmlwdDoKKyAgLSB0b3gKKworCitiZWZvcmVfaW5zdGFsbDoKKyAgLSBwaXAgaW5zdGFsbCBjb2Rl
Y292CisKKworYWZ0ZXJfc3VjY2VzczoKKyAgLSB0b3ggLWUgY292ZXJhZ2UtcmVwb3J0CisgIC0g
Y29kZWNvdgorCisKK25vdGlmaWNhdGlvbnM6CisgIGVtYWlsOiBmYWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cu
ZC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMy
ZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwOWZlMTYwMWQyNjRhMTZmODljMzQ4Y2U2NTQxYzVlNTk0M2VhMTcy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvY2hhbmdlbG9nLmQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzE3OC5jaGFuZ2UucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTAuY2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9n
LmQvMzAwLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzMxMS5jaGFuZ2UucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMjEuY2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hh
bmdlbG9nLmQvMzIyLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzMyMy5jaGFu
Z2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMjYuY2hhbmdlLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvY2hhbmdlbG9nLmQvMzMxLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzMz
Mi5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMzQuY2hhbmdlLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvY2hhbmdlbG9nLmQvMzM2LmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxv
Zy5kLzMzOS5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zNDMuY2hhbmdlLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzQ5LmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2No
YW5nZWxvZy5kLzM1Ni5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zNjMuY2hh
bmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzY5LmNoYW5nZS5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzM3MC5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC85
NS5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC90b3duY3JpZXJfdGVtcGxhdGUu
cnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NGMwMDE0MjJiYWVkZTFkMjhhMzEyMzhjYmM0ZWQ0YjI2YzA4NWU5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMvYXR0cnNfbG9nby5wbmcKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjM0ZWM5YmU5NzI4NjExN2M5ZGNlZDY2YzFh
ODE5ZGYwNGY5ZmI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMz
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9NYWtlZmlsZQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy9hcGkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2JhY2t3YXJkLWNvbXBhdGliaWxpdHkucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9kb2NzL2NoYW5nZWxvZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY29uZi5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy9jb250cmlidXRpbmcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2Rv
Y3V0aWxzLmNvbmYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZXhhbXBsZXMucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9k
b2NzL2V4dGVuZGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZ2xvc3NhcnkucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9kb2NzL2hhc2hpbmcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2VzLWl0LXdvcmsu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9pbml0LnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9vdmVydmll
dy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9z
cmMvYXR0ci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDEyZDEyMjRmNWQ3NTM4YTE1NTgz
ZmNkMmUwZGZiYzFiYWFhN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRy
L19jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19mdW5jcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
c3JjL2F0dHIvX21ha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2NvbnZlcnRlcnMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3NyYy9hdHRyL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2Zp
bHRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL3ZhbGlkYXRvcnMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9f
LnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy9fX2luaXRfXy5weQpA
QCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBj
OGQ1M2FmMGZlYWI0YTYxMTg2YWE2MzI0OTdjNTZiNzJmYzdhNS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90
ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvc3RyYXRlZ2llcy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvdGVzdHMvdGVzdF9hbm5vdGF0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9j
b25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29udmVydGVycy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvdGVzdHMvdGVzdF9kYXJrX21hZ2ljLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2R1bmRl
cnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9mdW5jcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9pbml0X3N1YmNsYXNzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X21ha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rf
c2xvdHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfdmFsaWRhdG9ycy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvdGVzdHMvdXRpbHMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3Y2FiOTIzNjA1Y2YxZmIwNDMzMDE0MzllN2JkYjJmYmUwMTdkNzY3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0FV
VEhPUlMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9MSUNFTlNF
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUkVBRE1FLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3B5cHJvamVjdC50b21sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90b3guaW5pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvY2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NjNhYzAyYTExN2I2ODE0MTU2NDY4NmU1MDYyZDkzNzZhOWMz
YmExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
Y2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdnLWluZm8vUEtH
LUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
Y2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0
aWZpL2NlcnRpZmkuZWdnLWluZm8vbm90LXppcC1zYWZlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmku
ZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU3ZGRhYjNjZDQyYWI4MmM2M2UyYzdjNDdlZDk1
MDYxYTI5N2Q2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2NlcnRpZmkvY2VydGlmaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9jZXJ0aWZpL2NlcnRpZmkvX19tYWluX18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS9j
YWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkvY29yZS5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9jZXJ0aWZpL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL3NldHVwLnB5Cm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvY2VydGlmaS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDRhMWZiZjc2YmMyYmUzYjk3Y2E5NzY3YmEyOTg1YjUwYThjMGI3YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Nl
cnRpZmkvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9Q
S0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvY2VydGlmaS9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL3NldHVwLmNm
ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvY2VydGlmaS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9j
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDVkZTIzNDMxZDBlNDA3OWVjN2ZkYjk5ZmE5OWMy
YTFjNmJkYjczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZW51bS9lbnVtL2RvYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy9lbnVtLnJzdApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9lbnVtL2VudW0vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmFjMTI4MmYxYmI1ZGM1ZWFk
ODAwNmM4OTI5NDJiZjU2N2E1NDQzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL0xJQ0VOU0UKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vZW51bS9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51
bS9lbnVtL3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8vdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGZjNTMxMTAyYThlMjVhOWZjMDU4MGNmNDMx
MWMzMzhhNzI0YjYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0LmVnZy1pbmZvL1BL
Ry1JTkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9lbnVtL2VudW0zNC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51
bS9lbnVtMzQuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0
LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZW51bS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjE3OTFjYTY3ODZlZmM0NjFkYjE5ODNhZDQxYmJmYjMzZDdmMDQxNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0v
TUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vUkVBRE1FCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9lbnVtL3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy8uY292ZXJhZ2VyYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvLmNvdmVyYWdlcmMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDgzYmZjMjIwYjEyMDU1YmUzOTY1OGIzNzRhMzQ5YmQ4ZTg3MWMyMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvLmNvdmVyYWdlcmMKQEAgLTAsMCArMSw2IEBACitbcnVuXQor
c291cmNlPWZ1bmNzaWdzCitvbWl0PWZ1bmNzaWdzL29kaWN0KgorCitbcmVwb3J0XQoraW5jbHVk
ZT1mdW5jc2lncyoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvLmdpdGlnbm9yZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGQyYWY4NWQzYzYxN2FhM2YyNTUxMzQ5
YWYxMGQ2MWNmZjY1YzJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy8uZ2l0aWdu
b3JlCkBAIC0wLDAgKzEsMTkgQEAKKyp+CisqLmVnZworKi5lZ2ctaW5mbworKi5weWMKKyoucHlv
CisqLnN3cAorLkRTX1N0b3JlCisuY292ZXJhZ2UKKy50b3gvCitNQU5JRkVTVAorYnVpbGQvCitk
b2NzLy5idWlsZC8KK2Rpc3QvCitlbnYqLworaHRtbGNvdi8KK3RtcC8KK2NvdmVyYWdlLnhtbAor
anVuaXQueG1sCisuZWdncy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvLnRyYXZpcy55bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZTdhYmUwYjQ0YTg5YzE2
N2E3OWNhYzMzY2ZjOWM0Yzc5ZWQ4ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
Ly50cmF2aXMueW1sCkBAIC0wLDAgKzEsMTggQEAKK2xhbmd1YWdlOiBweXRob24KK3B5dGhvbjoK
KyAgLSAyLjYKKyAgLSAyLjcKKyAgLSAzLjMKKyAgLSAzLjQKKyAgLSAzLjUKKyAgLSBuaWdodGx5
CisgIC0gcHlweQorIyAgLSBweXB5MworaW5zdGFsbDoKKyAgLSBwaXAgaW5zdGFsbCAtVSBwaXAg
c2V0dXB0b29scyB3aGVlbAorICAtIHBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy9kZXZlbG9w
bWVudC50eHQgLgorc2NyaXB0OgorICAtIGNvdmVyYWdlIHJ1biBzZXR1cC5weSB0ZXN0CisgIC0g
Y292ZXJhZ2UgcmVwb3J0IC0tc2hvdy1taXNzaW5nCithZnRlcl9zdWNjZXNzOgorICAtIGNvdmVy
YWxscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFOR0VMT0cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L0NIQU5HRUxPRwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTEzNjZkMjY2OGQwM2Rl
ODEwMmQwNDk1M2M1NWU0OTQwMDU1Y2IwMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRworKysgL2Rldi9udWxsCkBA
IC0xLDI0ICswLDAgQEAKLUNoYW5nZWxvZwotLS0tLS0tLS0tCi0KLTAuNQotYGBgCi0KLSogRml4
IGJpbmRpbmcgd2l0aCBzZWxmIGFzIGEga3dhcmcuIChSb2JlcnQgQ29sbGlucyAjMTQpCi0KLTAu
NCAoMjAxMy0xMi0yMCkKLWBgYGBgYGBgYGBgYGBgYGAKLSogRml4IHVuYm91bmQgbWV0aG9kcyBn
ZXR0aW5nIHRoZWlyIGZpcnN0IHBhcmFtZXRlciBjdXJyaWVkCi0qIFB1Ymxpc2ggUHl0aG9uIHdo
ZWVsIHBhY2thZ2VzCi0KLTAuMyAoMjAxMy0wNS0yOSkKLWBgYGBgYGBgYGBgYGBgYGAKLSogRml4
IGFubm90YXRpb24gZm9ybWF0dGluZyBvZiBidWlsdGluIHR5cGVzIG9uIFB5dGhvbiAyLngKLQot
MC4yICgyMDEyLTAxLTA3KQotYGBgYGBgYGBgYGBgYGBgYAotKiBQeVB5IGNvbXBhdGFiaWxpdHkK
LQotMC4xICgyMDEyLTAxLTA2KQotYGBgYGBgYGBgYGBgYGBgYAotKiBJbml0aWFsIHJlbGVhc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjMzI1MTI5NGEwZjZlYTc5NWNhOTM1YWVkMDdmMGNiMWU2
ZmJkMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRlcy9w
YWdlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjA0Y2M4MDA4MWQxZjI5NmU1MWY0OGEyMTgyMDliMmIwODY1MmMzOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Rv
Y3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL2RvY3MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvY29uZi5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9pbmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDg0ZjI2ZmQwNDk0ZGMx
YjE4YTlkYjk2MzJlZjBlZTJmYzU3NWM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNz
aWdzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkMWJhZmQ4MzBlYzU1NDQ4MTI1ZjRhODZhMDdiYzNmODU0ZTJlNDBmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
cmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzOTIxYTE4NTIyZjZlMDc2NGY2MzhkMjQ1NzUzZGRm
ZDk5MWEyZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIw
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvX19pbml0X18ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfZm9ybWF0YW5ub3RhdGlvbi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
dGVzdHMvdGVzdF9mdW5jc2lncy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9pbnNwZWN0
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI1MTli
ZDA4OWEzNzAzYmMzOTk4NGNmYWJlN2YxN2Y4MjdkOGQwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFO
R0VMT0cKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL01BTklGRVNULmlu
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvUkVBRE1FLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3Mvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi8uY292ZXJhZ2VyYyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
LmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUzZTM4ZDNlMGUyNWNjMzIxN2Q2MzkwMGE3ZjI4OGNj
Y2JiNWNiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvLmNvdmVyYWdlcmMKQEAgLTAsMCAr
MSwxOCBAQAorW3J1bl0KK2JyYW5jaCA9IFRydWUKK3NvdXJjZSA9IGgyCisKK1tyZXBvcnRdCitm
YWlsX3VuZGVyID0gMTAwCitzaG93X21pc3NpbmcgPSBUcnVlCitleGNsdWRlX2xpbmVzID0KKyAg
ICBwcmFnbWE6IG5vIGNvdmVyCisgICAgLio6LiogIyBQeXRob24gXGQuKgorICAgIGFzc2VydCBG
YWxzZSwgIlNob3VsZCBub3QgYmUgcmVhY2hhYmxlIgorICAgIC4qOi4qICMgUGxhdGZvcm0tc3Bl
Y2lmaWM6CisKK1twYXRoc10KK3NvdXJjZSA9CisgICAgaDIvCisgICAgLnRveC8qL2xpYi9weXRo
b24qL3NpdGUtcGFja2FnZXMvaDIKKyAgICAudG94L3B5cHkqL3NpdGUtcGFja2FnZXMvaDIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvX3N0YXRpYy8ua2VlcCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvX3N0YXRpYy8ua2VlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5
YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0
aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0aWMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NjhlODU2YjZiNDc2NDVkNmUx
YmJjZTlmMDE1MTUwNGYzZWQ4MWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9fc3RhdGljL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJj
ZS9fc3RhdGljL2gyLmNvbm5lY3Rpb24uSDJDb25uZWN0aW9uU3RhdGVNYWNoaW5lLmRvdC5wbmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0aWMvaDIuc3RyZWFtLkgyU3RyZWFtU3RhdGVNYWNo
aW5lLmRvdC5wbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMWZiMmJkZTUyY2E5NWE1NjljZjc5ZWNlMmI3NjU4N2ZhMzJlMDU5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2FkdmFuY2VkLXVzYWdlLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZG9jcy9zb3VyY2UvYXBpLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvYXN5bmNpby1leGFtcGxl
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvYmFzaWMtdXNhZ2UucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2Nz
L3NvdXJjZS9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9jb250cmlidXRvcnMucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9kb2NzL3NvdXJjZS9jdXJpby1leGFtcGxlLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvZXZlbnRsZXQtZXhhbXBsZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2V4YW1wbGVzLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9p
bnN0YWxsYXRpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9sb3ctbGV2ZWwucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9kb2NzL3NvdXJjZS9uZWdvdGlhdGluZy1odHRwMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291
cmNlL3JlbGVhc2Utbm90ZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9yZWxlYXNlLXByb2Nl
c3MucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90ZXN0aW1vbmlhbHMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9k
b2NzL3NvdXJjZS90b3JuYWRvLWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lz
dGVkLWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVkLWhlYWQtZXhhbXBs
ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3R3aXN0ZWQtcG9zdC1leGFtcGxlLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvZG9jcy9zb3VyY2Uvd3NnaS1leGFtcGxlLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9k
b2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNGVhNTM3NzUyNGM2MmUyNGIzZTkxYWM4YWRiNTUyMmJl
ZmRlNTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZG9jcy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9tYWtlLmJhdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9leGFtcGxlcy9hc3luY2lvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ZThhZTRhMjg3ZTUwZjVlNGY4NzNiZGJjMTIzNzFiZDEyOGUxZjdhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvYXN5bmNpby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby9hc3luY2lvLXNlcnZlci5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvZXhhbXBsZXMvYXN5bmNpby9jZXJ0LmNydAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNp
by9jZXJ0LmtleQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby93c2dpLXNlcnZlci5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJpby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZXhhbXBsZXMvY3VyaW8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGIyOTA2YjA5MzE0Mjk2MjE1MDQwZTQ3YmY0NzUxOWJjMmY2ZGZkNWMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJp
by93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvY3VyaW8vY3VyaW8tc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxl
cy9jdXJpby9sb2NhbGhvc3QuY3J0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvY3VyaW8vbG9jYWxo
b3N0LmtleQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9ldmVudGxldC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZXZlbnRsZXQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZjgyMjQ0NTBiYjU4ODMyYzg0Y2EzOWE4MWU0ZGMxNzk3
OWU1ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9leGFtcGxlcy9ldmVudGxldC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZXZlbnRsZXQvZXZlbnRsZXQt
c2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9ldmVudGxldC9zZXJ2ZXIuY3J0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy9ldmVudGxldC9zZXJ2ZXIua2V5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2ZyYWdtZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRz
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2VlNmY5NGI0
MjBhNjFjZGJkZTExYjljNjBlMzJiZThlZGUzZDk5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9l
eGFtcGxlcy9mcmFnbWVudHMvY2xpZW50X2h0dHBzX3NldHVwX2ZyYWdtZW50LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy9mcmFnbWVudHMvY2xpZW50X3VwZ3JhZGVfZnJhZ21lbnQucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfaHR0cHNfc2V0dXBfZnJhZ21lbnQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9zZXJ2ZXJfdXBncmFkZV9mcmFnbWVudC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90b3JuYWRvL3Rvcm5hZG8tc2VydmVyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9leGFtcGxlcy90b3JuYWRvL3Rvcm5hZG8tc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFlZWRlOTgwMjllY2RiMDFkMTgyNzNiMjdjNjk5NDE4
MzAzZmU5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8vc2VydmVyLmNy
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby9zZXJ2ZXIua2V5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxl
cy90b3JuYWRvL3Rvcm5hZG8tc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L3R3aXN0ZWQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViMGZmMmVjMWVmNTU4ZjM3
Yjc2MjAzNTEyOGU5YTFjODgyYjU2NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90
d2lzdGVkL2hlYWRfcmVxdWVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC9wb3N0X3Jl
cXVlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvc2VydmVyLmNydAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
ZXhhbXBsZXMvdHdpc3RlZC9zZXJ2ZXIuY3NyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3Nl
cnZlci5rZXkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvdHdpc3RlZC1zZXJ2ZXIucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvaDIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWNhNGI3MGZiZjk2ZGZiMjA4
MGE5M2M4MWMxYTJiNmE3YjRmZWVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9o
Mi9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Vycm9y
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvaDIvZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9leGNlcHRpb25zLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9oMi9mcmFtZV9idWZmZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3NldHRpbmdzLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9oMi9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3V0aWxpdGllcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIv
d2luZG93cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi90ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
YmVjZTVhNjIyZmFiNGEzNjM4MWFmMzU4ZjY5ZjlmODgxN2E3NTU4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC9j
b25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC9jb3JvdXRpbmVfdGVzdHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rl
c3QvaGVscGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Jhc2ljX2xvZ2ljLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi90ZXN0L3Rlc3RfY2xvc2VkX3N0cmVhbXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9jb21wbGV4
X2xvZ2ljLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rl
c3RfZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfZXhjZXB0aW9ucy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
dGVzdC90ZXN0X2Zsb3dfY29udHJvbF93aW5kb3cucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9oMl91
cGdyYWRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaGVhZF9yZXF1ZXN0LnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90
ZXN0L3Rlc3RfaGVhZGVyX2luZGV4aW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaW5mb3JtYXRp
b25hbF9yZXNwb25zZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnRlcmFjdGluZ19zdGFja3Mu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2NvbnRlbnRfbGVuZ3Rocy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdGVzdC90ZXN0X2ludmFsaWRfZnJhbWVfc2VxdWVuY2VzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rl
c3RfaW52YWxpZF9oZWFkZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfcHJpb3JpdHkucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9yZWxhdGVkX2V2ZW50cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3Jm
Yzc4MzgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9zZXR0aW5ncy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90
ZXN0X3N0YXRlX21hY2hpbmVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc3RyZWFtX3Jlc2V0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfdXRpbGl0eV9mdW5jdGlvbnMucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvdXRpbHMvYmFja3BvcnQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3V0aWxzL2JhY2twb3J0LnNoCm9sZCBt
b2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdXRpbHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3V0aWxzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmMjM4M2E3YTk5MWY5MDVhMDQzZWEzMWFiYzdlZTUzMDkyNWMyMGI4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
dXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3V0aWxzL2JhY2twb3J0LnNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Zpc3Vh
bGl6ZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Zpc3VhbGl6ZXIvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZDNmZmYxYjMyOTJjNTJmYTM1ZmMzYTNj
ZTBlZWEwYWZhNmI1NWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi92aXN1YWxpemVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi92aXN1YWxpemVyL05PVElDRVMudmlzdWFs
aXplcgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdmlzdWFsaXplci92aXN1YWxpemUucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5ZGZkMmZjYWU0YTNkMzM3ZWE4MmQ4NWZhMTljMjBkZjA2NThmN2Yx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL0NPTlRSSUJVVE9SUy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0hJU1RPUlkucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9M
SUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvTWFrZWZpbGUKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvc2V0dXAucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL3Rlc3RfcmVxdWlyZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdG94LmluaQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2suZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGEwN2M3NGFjMmI3N2VjNDRkMmI5YTE0Yjk3MDlhZTRkZjMzNzdhMWEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5m
by93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svaHBhY2suZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVn
Zy1pbmZvL1NPVVJDRVMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5mby9kZXBlbmRlbmN5
X2xpbmtzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2suZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2svdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYzBiNGJl
ZDVkMTA4Zjg5MmQ1ZmRlNjBjYjY1NzNhOWFmYjAzYjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2sv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2NvbXBhdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2svZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHBhY2sucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNr
L2hwYWNrL2h1ZmZtYW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2h1ZmZtYW5fY29uc3RhbnRzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9ocGFjay9ocGFjay9odWZmbWFuX3RhYmxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9z
dHJ1Y3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3RhYmxlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hw
YWNrL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzZTQ5MTYyNTA0OWU0MmI4NzgyYjVjOTQx
NTIwMjI1Mjk3OGUwODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3Rlc3RfZW5jb2RlX2RlY29kZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHBhY2svdGVzdC90ZXN0X2hwYWNrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3Rlc3Rf
aHBhY2tfaW50ZWdyYXRpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdGVzdF9odWZmbWFuLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9ocGFjay90ZXN0L3Rlc3Rfc3RydWN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3Rlc3RfdGFi
bGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNr
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjY0NDk5NTA1
YWY3MGIwNDFjODFhMGYxYmUwODNjMDhhNWIxZmM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL0NPTlRSSUJVVE9SUy5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2hwYWNrL0hJU1RPUlkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9MSUNFTlNFCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
cGFjay9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL1JFQURN
RS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svc2V0dXAucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvLmFwcHZleW9yLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLmFwcHZl
eW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ODRlMmI3ZmE1ZTZlOTgzNjBkMjFhMjMyM2RiMTZhZTQxZWFi
NjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uYXBwdmV5b3IueW1sCkBAIC0w
LDAgKzEsMzEgQEAKKyMgVG8gYWN0aXZhdGUsIGNoYW5nZSB0aGUgQXBwdmV5b3Igc2V0dGluZ3Mg
dG8gdXNlIGAuYXBwdmV5b3IueW1sYC4KK2Vudmlyb25tZW50OgorICBnbG9iYWw6CisgICAgUEFU
SDogIkM6XFxQeXRob24yN1xcU2NyaXB0c1xcOyVQQVRIJSIKKyAgICBQWVRFU1RfQ09NTUFORDog
ImNvdmVyYWdlIHJ1biAtbSBweXRlc3QiCisgIG1hdHJpeDoKKyAgICAtIFRPWEVOVjogcHkyNy1i
YXNlCisgICAgLSBUT1hFTlY6IHB5Mjctb3B0aW9uYWwKKyAgICAtIFRPWEVOVjogcHkzMy1iYXNl
CisgICAgLSBUT1hFTlY6IHB5MzMtb3B0aW9uYWwKKyAgICAtIFRPWEVOVjogcHkzNC1iYXNlCisg
ICAgLSBUT1hFTlY6IHB5MzQtb3B0aW9uYWwKKyAgICAtIFRPWEVOVjogcHkzNS1iYXNlCisgICAg
LSBUT1hFTlY6IHB5MzUtb3B0aW9uYWwKKyAgICAtIFRPWEVOVjogcHkzNi1iYXNlCisgICAgLSBU
T1hFTlY6IHB5MzYtb3B0aW9uYWwKKworaW5zdGFsbDoKKyAgLSBnaXQgc3VibW9kdWxlIHVwZGF0
ZSAtLWluaXQgLS1yZWN1cnNpdmUKKyAgLSBweXRob24gLW0gcGlwIGluc3RhbGwgdG94IGNvZGVj
b3YKKworYnVpbGQ6IG9mZgorCit0ZXN0X3NjcmlwdDoKKyAgLSB0b3gKKworYWZ0ZXJfdGVzdDoK
KyAgLSBweXRob24gZGVidWctaW5mby5weQorCitvbl9zdWNjZXNzOgorICAtIGNvZGVjb3YKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLmNvdmVyYWdlcmMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5jb3Zl
cmFnZXJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZmYWNmMzUyMzlmYTViZDE4N2U2OThiMWZmM2RlMDZiNTQ1ZGVi
MDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5jb3ZlcmFnZXJjCkBAIC0wLDAg
KzEsOCBAQAorW3J1bl0KK2JyYW5jaCA9IFRydWUKK3NvdXJjZSA9IGh0bWw1bGliCisKK1twYXRo
c10KK3NvdXJjZSA9CisgICBodG1sNWxpYgorICAgLnRveC8qL2xpYi9weXRob24qL3NpdGUtcGFj
a2FnZXMvaHRtbDVsaWIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLmdpdGlnbm9yZSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lY2Q2MmRmMzFiOTExZTNlYTA4YzA5
ODlkMWY5OWE5MjkxOGEwZTMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uZ2l0
aWdub3JlCkBAIC0wLDAgKzEsODUgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IEdpdEh1YiwgSW5j
LgorIworIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCAgZnJlZSBvZiBjaGFyZ2UsICB0
byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisjIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz
b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisjIHRvIGRlYWwg
aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp
bWl0YXRpb24KKyMgdGhlIHJpZ2h0cyB0byAgdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs
aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorIyBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhl
IFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyMgU29mdHdhcmUg
aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
czoKKyMKKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyMgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisjCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi
QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisjIElNUExJ
RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZLAorIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G
UklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyMgQVVUSE9SUyBPUiBDT1BZUklHSFQg
SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorIyBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORworIyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU
V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisjIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKwor
IyBCeXRlLWNvbXBpbGVkIC8gb3B0aW1pemVkIC8gRExMIGZpbGVzCitfX3B5Y2FjaGVfXy8KKyou
cHlbY29kXQorKiRweS5jbGFzcworCisjIEMgZXh0ZW5zaW9ucworKi5zbworCisjIERpc3RyaWJ1
dGlvbiAvIHBhY2thZ2luZworLlB5dGhvbgorZW52LworYnVpbGQvCitkZXZlbG9wLWVnZ3MvCitk
aXN0LworZG93bmxvYWRzLworZWdncy8KKy5lZ2dzLworbGliLworbGliNjQvCitwYXJ0cy8KK3Nk
aXN0LwordmFyLworKi5lZ2ctaW5mby8KKy5pbnN0YWxsZWQuY2ZnCisqLmVnZworTUFOSUZFU1QK
KworIyBQeUluc3RhbGxlcgorIyAgVXN1YWxseSB0aGVzZSBmaWxlcyBhcmUgd3JpdHRlbiBieSBh
IHB5dGhvbiBzY3JpcHQgZnJvbSBhIHRlbXBsYXRlCisjICBiZWZvcmUgUHlJbnN0YWxsZXIgYnVp
bGRzIHRoZSBleGUsIHNvIGFzIHRvIGluamVjdCBkYXRlL290aGVyIGluZm9zIGludG8gaXQuCisq
Lm1hbmlmZXN0CisqLnNwZWMKKworIyBJbnN0YWxsZXIgbG9ncworcGlwLWxvZy50eHQKK3BpcC1k
ZWxldGUtdGhpcy1kaXJlY3RvcnkudHh0CisKKyMgVW5pdCB0ZXN0IC8gY292ZXJhZ2UgcmVwb3J0
cworaHRtbGNvdi8KKy50b3gvCisuY292ZXJhZ2UKKy5jb3ZlcmFnZS4qCisuY2FjaGUKK25vc2V0
ZXN0cy54bWwKK2NvdmVyYWdlLnhtbAorKixjb3ZlcgorCisjIFRyYW5zbGF0aW9ucworKi5tbwor
Ki5wb3QKKworIyBEamFuZ28gc3R1ZmY6CisqLmxvZworCisjIFNwaGlueCBkb2N1bWVudGF0aW9u
Citkb2MvX2J1aWxkLworCisjIFB5QnVpbGRlcgordGFyZ2V0LworCisjIEdlbmVyYXRlZCBieSBw
YXJzZS5weSAtcAorc3RhdHMucHJvZgorCisjIElERQorLmlkZWEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvLmdpdG1vZHVsZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5naXRtb2R1bGVzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRiY2E0NzAzMjhkNmJjNTZkNDQzNDk2MmE2OTcyOTkyZGNlNGNkYzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliLy5naXRtb2R1bGVzCkBAIC0wLDAgKzEsMyBAQAorW3N1Ym1v
ZHVsZSAidGVzdGRhdGEiXQorCXBhdGggPSBodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YQorCXVybCA9
IGh0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi10ZXN0cy5naXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvLnByb3NwZWN0b3IueWFtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLnByb3Nw
ZWN0b3IueWFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZThlZmUxYTYyOWUwYTA0MzFhZDEzMmMwZmE1NjMyMjkw
MjgzYTk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHJvc3BlY3Rvci55YW1s
CkBAIC0wLDAgKzEsMjEgQEAKK3N0cmljdG5lc3M6IHZlcnloaWdoCitkb2Mtd2FybmluZ3M6IGZh
bHNlCit0ZXN0LXdhcm5pbmdzOiBmYWxzZQorCittYXgtbGluZS1sZW5ndGg6IDEzOQorCityZXF1
aXJlbWVudHM6CisgIC0gcmVxdWlyZW1lbnRzLnR4dAorICAtIHJlcXVpcmVtZW50cy10ZXN0LnR4
dAorICAtIHJlcXVpcmVtZW50cy1vcHRpb25hbC50eHQKKworaWdub3JlLXBhdGhzOgorICAtIHBh
cnNlLnB5CisgIC0gdXRpbHMvCisKK3B5dGhvbi10YXJnZXRzOgorICAtIDIKKyAgLSAzCisKK21j
Y2FiZToKKyAgcnVuOiBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHlsaW50cmMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliLy5weWxpbnRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTc0ZDVkYjNmZjMxNTdlMjA2
ZDQ3YjUwNzE1ZDI2YTAzZWI4OWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8u
cHlsaW50cmMKQEAgLTAsMCArMSwxMCBAQAorW01BU1RFUl0KK2lnbm9yZT10ZXN0cworCitbTUVT
U0FHRVMgQ09OVFJPTF0KKyMgbWVzc2FnZXMgdXAgdG8gZml4bWUgc2hvdWxkIHByb2JhYmx5IGJl
IGZpeGVkIHNvbWVob3cKK2Rpc2FibGUgPSByZWRlZmluZWQtYnVpbHRpbixhdHRyaWJ1dGUtZGVm
aW5lZC1vdXRzaWRlLWluaXQsYW5vbWFsb3VzLWJhY2tzbGFzaC1pbi1zdHJpbmcsbm8tc2VsZi11
c2UscmVkZWZpbmVkLW91dGVyLW5hbWUsYmFkLWNvbnRpbnVhdGlvbix3cm9uZy1pbXBvcnQtb3Jk
ZXIsc3VwZXJmbHVvdXMtcGFyZW5zLG5vLW1lbWJlcixkdXBsaWNhdGUtY29kZSxzdXBlci1pbml0
LW5vdC1jYWxsZWQsYWJzdHJhY3QtbWV0aG9kLHByb3BlcnR5LW9uLW9sZC1jbGFzcyx3cm9uZy1p
bXBvcnQtcG9zaXRpb24sbm8tbmFtZS1pbi1tb2R1bGUsbm8taW5pdCxiYWQtbWNzLWNsYXNzbWV0
aG9kLWFyZ3VtZW50LGJhZC1jbGFzc21ldGhvZC1hcmd1bWVudCxmaXhtZSxpbnZhbGlkLW5hbWUs
aW1wb3J0LWVycm9yLHRvby1mZXctcHVibGljLW1ldGhvZHMsdG9vLW1hbnktYW5jZXN0b3JzLHRv
by1tYW55LWFyZ3VtZW50cyx0b28tbWFueS1ib29sZWFuLWV4cHJlc3Npb25zLHRvby1tYW55LWJy
YW5jaGVzLHRvby1tYW55LWluc3RhbmNlLWF0dHJpYnV0ZXMsdG9vLW1hbnktbG9jYWxzLHRvby1t
YW55LWxpbmVzLHRvby1tYW55LXB1YmxpYy1tZXRob2RzLHRvby1tYW55LXJldHVybi1zdGF0ZW1l
bnRzLHRvby1tYW55LXN0YXRlbWVudHMsbWlzc2luZy1kb2NzdHJpbmcsbGluZS10b28tbG9uZyxs
b2NhbGx5LWRpc2FibGVkLGxvY2FsbHktZW5hYmxlZCxiYWQtYnVpbHRpbixkZXByZWNhdGVkLWxh
bWJkYQorCitbRk9STUFUXQorbWF4LWxpbmUtbGVuZ3RoPTEzOQorc2luZ2xlLWxpbmUtaWYtc3Rt
dD1ubwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHl0ZXN0LmV4cGVjdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvLnB5dGVzdC5leHBlY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGZhMzI2ZjAzNTRmODk0MzFkYjgzYzc0
MjBjYTQxMjdlNjBjNTI2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLnB5dGVz
dC5leHBlY3QKQEAgLTAsMCArMSwxMzIyIEBACitweXRlc3QtZXhwZWN0IGZpbGUgdjEKKygyLCA3
LCAxMSwgJ2ZpbmFsJywgMCkKK2InaHRtbDVsaWIvdGVzdHMvdGVzdF9lbmNvZGluZy5weTo6dGVz
dF9lbmNvZGluZzo6WzExMF0nOiBGQUlMCitiJ2h0bWw1bGliL3Rlc3RzL3Rlc3RfZW5jb2Rpbmcu
cHk6OnRlc3RfZW5jb2Rpbmc6OlsxMTFdJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90b2tlbml6ZXIvdGVzdDIudGVzdDo6MDo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjI4OjpkYXRhU3RhdGUnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyMzE6OmRh
dGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3Qz
LnRlc3Q6OjIzMjo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
b2tlbml6ZXIvdGVzdDMudGVzdDo6MjM0OjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyMzU6OmRhdGFTdGF0ZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjIzNzo6ZGF0
YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMu
dGVzdDo6MjQwOjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rv
a2VuaXplci90ZXN0My50ZXN0OjoyNDE6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjI0Mzo6ZGF0YVN0YXRlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjQ0OjpkYXRh
U3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50
ZXN0OjoyNDY6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9r
ZW5pemVyL3Rlc3QzLnRlc3Q6OjI1ODo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6NjU2OjpkYXRhU3RhdGUnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0
OjoxNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0OjoxNzo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2Fkb3B0aW9uMDEuZGF0OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0
aW9uMDEuZGF0OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0
OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjowOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxODo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6MTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoxODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoxODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjoxODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MTg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6MTk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoxOTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MjI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjI6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIyOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjI6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjI6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjI6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIyOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjIzOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjoyMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIz
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIz
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIzOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMzo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNjo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6MjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoyNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoyNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjoyNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoyNzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MzA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzA6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMwOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzA6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzA6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMwOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjMxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjozMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMx
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMx
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMxOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMTo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNDo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6MzQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjozNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjozNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjozNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MzQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6MzU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjozNTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjM4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM4OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozODo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM4OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM4OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM4OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozODo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozOTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0OjozOTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzk6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOTo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzk6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjozOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MDo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6NDA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0Ojo0MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0Ojo0MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0Ojo0MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6NDA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQw
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6NDE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0Ojo0MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjQ3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ3OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0Nzo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ3OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ3OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ3OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0Nzo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0Ojo0ODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0Ojo0ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDg6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0ODo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0ODo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0ODo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDg6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0Ojow
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjowOjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2lzaW5kZXguZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6
OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lz
aW5kZXguZGF0OjoxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjE6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2lzaW5kZXguZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5k
YXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9pc2luZGV4LmRhdDo6MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6
OjI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9pc2luZGV4LmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5k
YXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5k
ZXguZGF0OjoyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5k
ZXguZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vaXNpbmRleC5kYXQ6OjM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjM6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21l
bnVpdGVtLWVsZW1lbnQuZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVu
dWl0ZW0tZWxlbWVudC5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRl
bS1lbGVtZW50LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRl
bS1lbGVtZW50LmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRh
dDo6Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21l
bnVpdGVtLWVsZW1lbnQuZGF0Ojo0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21l
bnVpdGVtLWVsZW1lbnQuZGF0Ojo0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1l
bnQuZGF0Ojo0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0t
ZWxlbWVudC5kYXQ6OjU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL25hbWVzcGFjZS1zZW5zaXRp
dml0eS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1lc3BhY2Utc2Vuc2l0aXZpdHkuZGF0
OjowOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1lc3BhY2Utc2Vuc2l0aXZpdHkuZGF0
OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRh
dDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1lc3BhY2Utc2Vuc2l0aXZp
dHkuZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6
OjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjA6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vcnVieS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRh
dDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5k
YXQ6OjEwOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3J1YnkuZGF0OjoxMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6
OjEwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0OjoxMDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoxMjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1Ynku
ZGF0OjoxMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6MTU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTU6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5
LmRhdDo6MTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTU6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTU6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0
OjoxNTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vcnVieS5kYXQ6OjE3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNzo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
cnVieS5kYXQ6OjE3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojox
Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTc6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3J1YnkuZGF0OjoxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjIwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyMDo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVi
eS5kYXQ6OjIwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyMDo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1Ynku
ZGF0OjoyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6Mzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mzo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9ydWJ5LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojoz
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjozOjpseG1sOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0OjozOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6NTo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
cnVieS5kYXQ6OjU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjU6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3J1YnkuZGF0Ojo3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3J1YnkuZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5k
YXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYWRvcHRpb24wMS5k
YXQ6OjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDo6MDo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDo6MDo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYWRvcHRpb24wMS5kYXQ6OjA6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDo6MDo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3NjcmlwdGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0OjowOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQv
YXJrLmRhdDo6MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0OjowOjpF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0OjowOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYXJrLmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vc2NyaXB0ZWQvYXJrLmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRl
ZC9hcmsuZGF0OjowOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5k
YXQ6OjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjA6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjowOjpFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0
ZWQvd2Via2l0MDEuZGF0OjoxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEu
ZGF0OjoxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MTo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjoxOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjoxOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjoxOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MTo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTAwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAwOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxMDA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxMDA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDA6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAxOjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxMDE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
MDE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAxOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDE6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjEwMTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDI6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxMDI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMjo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjEwMzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAzOjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjEwMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTAzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
MDM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDM6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDM6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
MDQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDQ6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwNDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNDo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwNTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEw
NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNTo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTA1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNjo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTA2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjEwNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA2Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDY6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDY6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTA3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTA3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxMDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEw
Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNzo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjExOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMzo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMzo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTM6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNDo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTQ6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxNDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNTo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxNTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxNTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNjo6
RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxNjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3OjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE4
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxOTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTk6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjE5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTk6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIw
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjIwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoyMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjIwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjIxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjIxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjIyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjIyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjM6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjIzOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjM6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIzOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjIzOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MjM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjQ6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MjQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjQ6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI0OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MjQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjU6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MjU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjY6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MjY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Mjc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6Mjc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjI3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNzo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpseG1sOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Mjg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpET006OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6Mjg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjI4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpseG1s
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mjk6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI5OjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjI5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyOTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI5
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoz
MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjozMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MzA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjozMDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozMTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MzE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjozMTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjozMjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjozMjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMzOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjozMzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjMzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMzOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMzo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjozMzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjMzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM0OjpET006OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjM0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM0OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNDo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjM0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM1OjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjM1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjM1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjM1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM2
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjM2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjM2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoz
Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjM2OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjM3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjM3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzc6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjM4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjozODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mzg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpseG1s
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDA6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NDA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjQwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDA6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NDE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NDE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NDE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NDI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NDM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDM6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NDM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NDo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NDQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NDo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDQ6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NDQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NTo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo0NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NTo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDU6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo0NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Njo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6Omx4bWw6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0Njo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0
Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo0Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6Omx4bWw6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo0ODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ4Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo0OTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NDk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQ5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUwOjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjUwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo1MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUw
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjUxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjUxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjUyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjUyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjUzOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUzOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjUzOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTQ6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjU0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTQ6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU0OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTU6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTU6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NTU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTY6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2OjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2OjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NTc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjU3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NTg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjU4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1ODo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NTk6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjU5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5Ojps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjYwOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MDo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo2MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2
MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo2MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo2MTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2Mjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo2Mjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYzOjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo2Mzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYz
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYzOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mzo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo2Mzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYz
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY0OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjY0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY0OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NDo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjY0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY1OjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjY1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY1
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjY1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY2OjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjY2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY2OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjY3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjY3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo2Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjY4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njg6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjY5OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OTo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo2OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Njk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OTo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Ojps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzA6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NzA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjcwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NzA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NzE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjcxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NzE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NzI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NzI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mzo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NzM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3
Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mzo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzM6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NzM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3
Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NzQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo3NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NDo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzQ6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo3NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NTo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo3NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3
NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo3NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Njo6
RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo3Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3Njo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo3Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo3Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Nzc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3OjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo3ODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Nzg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc4
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo3OTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzk6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Nzk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojc5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzk6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
ODA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6ODA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjgwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6ODA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6ODE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjgxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6ODE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODI6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6ODI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mzo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6ODM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mzo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODM6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6ODM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4NDo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4NDo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODQ6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4NTo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo4NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6Omx4bWw6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo4NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4
Njo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
ODY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6Omx4bWw6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Njo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo4Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo4Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6ODc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg3Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo4ODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojg4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo4OTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODk6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6ODk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojg5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
ODk6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjkwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo5MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjkwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjkxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjkxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjkyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkyOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjkyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTM6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjkzOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTM6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkzOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkzOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTQ6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTQ6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTU6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1OjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6OTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1OjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6OTU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
OTY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojk2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6OTc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6OTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojk3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Nzo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6OTg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojk4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4Ojps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6OTk6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk5
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojk5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojk5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojk6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojoy
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0OjoyOjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMTEuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6
OjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
c3RzMTEuZGF0Ojo0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjQ6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMTEuZGF0Ojo0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5k
YXQ6OjQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZXN0czExLmRhdDo6NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6
OjU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZXN0czExLmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5k
YXQ6OjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3Rz
MTEuZGF0Ojo1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3Rz
MTEuZGF0Ojo2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVzdHMxMS5kYXQ6OjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjY6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3Rlc3RzMTkuZGF0OjoxNDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6
MTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZXN0czE5LmRhdDo6MTQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0Ojps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZXN0czE5LmRhdDo6MTc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE3
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxOS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNzo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZXN0czE5LmRhdDo6Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6Nzo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMTkuZGF0Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTku
ZGF0Ojo3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0Ojo3OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6
Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMyLmRhdDo6Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Njo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIu
ZGF0Ojo3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czIuZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIu
ZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIu
ZGF0Ojo3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMjUu
ZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVzdHMyNS5kYXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMyNS5kYXQ6Ojc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyNS5kYXQ6Ojc6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTQ6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi93ZWJraXQwMi5kYXQ6OjE0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6
MTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTQ6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE0OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi93ZWJraXQwMi5kYXQ6OjE0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6
MTQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTU6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAy
LmRhdDo6MTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTU6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE1OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAy
LmRhdDo6MTU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTY6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dl
YmtpdDAyLmRhdDo6MTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6
MTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dl
YmtpdDAyLmRhdDo6MTY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliLy50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8udHJhdmlz
LnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NzI3ZTA5NDdlMmViZjFiOGVkYzFmNDM5NTJlYTMxZTIwOTk3NjYz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8udHJhdmlzLnltbApAQCAtMCwwICsx
LDMyIEBACitsYW5ndWFnZTogcHl0aG9uCitweXRob246CisgIC0gInB5cHkiCisgIC0gIjMuNiIK
KyAgLSAiMy41IgorICAtICIzLjQiCisgIC0gIjMuMyIKKyAgLSAiMi43IgorCitzdWRvOiBmYWxz
ZQorCitjYWNoZTogcGlwCisKK2VudjoKKyAgZ2xvYmFsOgorICAgIC0gUFlURVNUX0NPTU1BTkQ9
ImNvdmVyYWdlIHJ1biAtbSBweXRlc3QiCisgIG1hdHJpeDoKKyAgICAtIFRPWEVOVj1vcHRpb25h
bAorICAgIC0gVE9YRU5WPWJhc2UKKyAgICAtIFRPWEVOVj1zaXgxOS1vcHRpb25hbAorCitpbnN0
YWxsOgorICAtIHBpcCBpbnN0YWxsIHRveCBjb2RlY292CisKK3NjcmlwdDoKKyAgLSB0b3gKKwor
YWZ0ZXJfc2NyaXB0OgorICAtIHB5dGhvbiBkZWJ1Zy1pbmZvLnB5CisKK2FmdGVyX3N1Y2Nlc3M6
CisgIC0gY29kZWNvdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNiYmUzZWViM2I3MWRhMTI0ZjRi
ZDFmMWRmODE0YWFmMDUzYTljNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVu
Y2htYXJrcy9kYXRhL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL2h0
bWwuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3Jh
bmRvbS9iYWNrZ3JvdW5kLW9yaWdpbi0wMDctcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNo
bWFya3MvZGF0YS93cHQvcmFuZG9tL2JhY2tncm91bmQtb3JpZ2luLTAwNy1yZWYuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kM2ExZDA1MzI4MTg0MjhlM2RmYjY5MTAxZDdlOGI4ODFiNDIwNjA4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9iYWNr
Z3JvdW5kLW9yaWdpbi0wMDctcmVmLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Q1NTIEJhY2tncm91bmRzIGFuZCBC
b3JkZXJzIFJlZmVyZW5jZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVs
IiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c3R5bGU+CisgIGRpdiB7CisgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgaGVpZ2h0OiA1NXB4OworICAgIGxlZnQ6IDVweDsK
KyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgdG9wOiA1cHg7CisgICAgd2lkdGg6IDU1cHg7
CisgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgPHA+VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgYSBm
aWxsZWQgZ3JlZW4gc3F1YXJlIGFuZCA8c3Ryb25nPm5vIHJlZDwvc3Ryb25nPi48L3A+CisgIDxk
aXY+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3Mv
ZGF0YS93cHQvcmFuZG9tL2xpLXR5cGUtdW5zdXBwb3J0ZWQtcmVmLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2xpLXR5cGUtdW5zdXBwb3J0ZWQtcmVmLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGZiYzVhY2E5NzRiZmZlYWRlMmU5N2U4ZmE0ZDBmMTgzYTg0NzQ2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5k
b20vbGktdHlwZS11bnN1cHBvcnRlZC1yZWYuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+bGlAdHlwZTogdW5zdXBwb3J0
ZWQgdHlwZXM8L3RpdGxlPgorPGxpPmZpcnN0IGl0ZW08L2xpPgorPGxpPnNlY29uZCBpdGVtPC9s
aT4KKzxvbD4KKyAgPGxpPmZpcnN0IG9yZGVyZWQgaXRlbTwvbGk+CisgIDxsaT5zZWNvbmQgb3Jk
ZXJlZCBpdGVtPC9saT4KKzwvb2w+Cis8dWw+CisgIDxsaT5maXJzdCB1bm9yZGVyZWQgaXRlbTwv
bGk+CisgIDxsaT5zZWNvbmQgdW5vcmRlcmVkIGl0ZW08L2xpPgorPC91bD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5kb20vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWM2NjZhZTA0Mjg0MzhhMjRlN2E4Njll
Zjg0NDRkNzAzYTZhMGY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5kb20vdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tLzAwMS5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9i
ZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9iYWNrZ3JvdW5kX3Nob3J0aGFuZF9jc3NfcmVsYXRp
dmVfdXJsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2Jl
Zm9yZXVubG9hZC1vbi1oaXN0b3J5LWJhY2stMS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1h
cmtzL2RhdGEvd3B0L3JhbmRvbS9ldWNrci1lbmNvZGUtZm9ybS5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9mcmFtZS1hbmNlc3RvcnMtc2VsZi1hbGxvdy5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9ncm91cGluZy1k
bC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9oZWF2eS1z
dHlsaW5nLTAwNS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRv
bS9odGItbHRyLWx0ci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3Jh
bmRvbS9pZGJpbmRleF9nZXQ4Lmh0bQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dw
dC9yYW5kb20vaWRsaGFybmVzcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEv
d3B0L3JhbmRvbS9tb3otY3NzMjEtZmxvYXQtcGFnZS1icmVhay1pbnNpZGUtYXZvaWQtNi5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9zaGFwZS1vdXRzaWRl
LWNvbnRlbnQtYm94LTAwMi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0
L3JhbmRvbS93b3JrZXItY29uc3RydWN0b3IuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9iZW5jaG1hcmtzL2RhdGEvd3B0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwODVmNWU4M2E5ODRiZjM2ZjUwMTIxNzdhYjRmM2ZiYTcxMWU5OGZiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
YmVuY2htYXJrcy9kYXRhL3dwdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9MSUNF
TlNFLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L1JFQURNRS5tZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL2ZpbHRl
ci10dXJidWxlbmNlLWludmFsaWQtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3Mv
ZGF0YS93cHQvd2VpZ2h0ZWQvZmlsdGVyLXR1cmJ1bGVuY2UtaW52YWxpZC0wMDEuaHRtbAppbmRl
eCAxMjJjYzcwZjM5NzkzNTAyNjk0OTk4ZmZhNDNjNDMxNzcxZTI4ZWY3Li43NDAwYzhiMzc5Mzhm
MTQzZmE3MDFlOTEyNmMwYTc2OWQ0ZDRkZTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Jl
bmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvZmlsdGVyLXR1cmJ1bGVuY2UtaW52YWxpZC0wMDEu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvZmls
dGVyLXR1cmJ1bGVuY2UtaW52YWxpZC0wMDEuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogICAgICAg
ICAgICAgPGZlRnVuY0cgdHlwZT0iZGlzY3JldGUiIHRhYmxlVmFsdWVzPSIwIDAuNTAyIDAiLz4g
PCEtLSBtYXAgWzAuLjEvM10gLT4gMDsgWzEvMy4uLjIvM10gLT4gMC41MDI7IFsyLzMuLjFdIC0+
IDAgLS0+CiAgICAgICAgICAgICA8ZmVGdW5jQiB0eXBlPSJkaXNjcmV0ZSIgdGFibGVWYWx1ZXM9
IjAiLz4KICAgICAgICAgICAgIDxmZUZ1bmNBIHR5cGU9ImRpc2NyZXRlIiB0YWJsZVZhbHVlcz0i
MCAxIDAiLz4KLSAgICAgICAgPC9mZWNvbXBvbmVudHRyYW5zZmVyPgorICAgICAgICA8L2ZlQ29t
cG9uZW50VHJhbnNmZXI+CiAgICAgPC9maWx0ZXI+CiAKICAgICA8ZmlsdGVyIGlkPSJmbjIiIHg9
IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgpAQCAtMzUsNyArMzUsNyBAQAogICAgICAg
ICAgICAgPGZlRnVuY0cgdHlwZT0iZGlzY3JldGUiIHRhYmxlVmFsdWVzPSIwIDAuNTAyIDAiLz4g
PCEtLSBtYXAgWzAuLjEvM10gLT4gMDsgWzEvMy4uLjIvM10gLT4gMC41MDI7IFsyLzMuLjFdIC0+
IDAgLS0+CiAgICAgICAgICAgICA8ZmVGdW5jQiB0eXBlPSJkaXNjcmV0ZSIgdGFibGVWYWx1ZXM9
IjAiLz4KICAgICAgICAgICAgIDxmZUZ1bmNBIHR5cGU9ImRpc2NyZXRlIiB0YWJsZVZhbHVlcz0i
MCAxIDAiLz4KLSAgICAgICAgPC9mZWNvbXBvbmVudHRyYW5zZmVyPgorICAgICAgICA8L2ZlQ29t
cG9uZW50VHJhbnNmZXI+CiAgICAgPC9maWx0ZXI+CiAKICAgICA8IS0tIHR5cGU9dHVyYnVsZW5j
ZSAtLT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWln
aHRlZC9pbWFnZS1vcmllbnRhdGlvbi1mcm9tLWltYWdlLWNvbnRlbnQtaW1hZ2VzLXJlZi5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL2ltYWdlLW9yaWVu
dGF0aW9uLWZyb20taW1hZ2UtY29udGVudC1pbWFnZXMtcmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBk
Mjk5MDlmOTA2ODgwM2RmY2ZlOWJkNjgxOGYzNTRkNGZiNmNhOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9pbWFnZS1vcmllbnRh
dGlvbi1mcm9tLWltYWdlLWNvbnRlbnQtaW1hZ2VzLXJlZi5odG1sCkBAIC0wLDAgKzEsODYgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5DU1MgSW1hZ2VzIE1vZHVs
ZSBMZXZlbCAzOiBpbWFnZS1vcmllbnRhdGlvbjogZnJvbS1pbWFnZSBmb3IgY29udGVudCBpbWFn
ZXM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJTdGVwaGVuIENoZW5uZXkiIGhy
ZWY9Im1haWx0bzpzY2hlbm5leUBjaHJvbWl1bS5vcmciPgorPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWltYWdlcy0zLyNwcm9wZGVmLWltYWdlLW9y
aWVudGF0aW9uIj4KKzxzdHlsZT4KKyAgICBkaXYuaW1hZ2UgeworICAgICAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisgICAgfQorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwt
YWxpZ246IHRvcDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAg
ICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0
OworICAgIH0KKyAgICBib2R5IHsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgPgorICAgIDxwPlRoZSBpbWFnZXMgc2hvdWxkIHJvdGF0
ZSByZXNwZWN0aW5nIHRoZWlyIEVYSUYgb3JpZW50YXRpb24gYmVjYXVzZQorICAgICAgIGltYWdl
LW9yaWVudGF0aW9uOiBmcm9tLWltYWdlIGlzIHNwZWNpZmllZC4KKyAgICA8L3A+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0eWxlPSJj
b250ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTEtdWwtcHJlLXJvdGF0ZWQu
anBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRl
bnQ6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tMi11ci1wcmUtcm90YXRlZC5qcGcp
Ij48L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0
eWxlPSJjb250ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTMtbHItcHJlLXJv
dGF0ZWQuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1h
Z2UiIHN0eWxlPSJjb250ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTQtbG9s
LXByZS1yb3RhdGVkLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImltYWdlIiBzdHlsZT0iY29udGVudDogdXJsKC4uL3N1cHBvcnQvZXhp
Zi1vcmllbnRhdGlvbi01LWx1LXByZS1yb3RhdGVkLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+
Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0
eWxlPSJjb250ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTYtcnUtcHJlLXJv
dGF0ZWQuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJp
bWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tNy1y
bC1wcmUtcm90YXRlZC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBD
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0eWxlPSJjb250ZW50OiB1cmwo
Li4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTgtbGxvLXByZS1yb3RhdGVkLmpwZykiPjwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxicj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHN0eWxlPSJiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTUtbHUtcHJlLXJvdGF0
ZWQuanBnKSI+PC9pbWc+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8aW1nIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vc3VwcG9ydC9leGlm
LW9yaWVudGF0aW9uLTYtcnUtcHJlLXJvdGF0ZWQuanBnKSI+PC9pbWc+CisgICAgICAgIDxicj5S
b3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8aW1nIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vc3VwcG9ydC9l
eGlmLW9yaWVudGF0aW9uLTctcmwtcHJlLXJvdGF0ZWQuanBnKSI+PC9pbWc+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3R5bGU9ImJhY2tncm91
bmQtaW1hZ2U6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tOC1sbG8tcHJlLXJvdGF0
ZWQuanBnKSI+PC9pbWc+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9k
aXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImltYWdlIiBzdHlsZT0iY29udGVudDogdXJsKC4uL3N1cHBvcnQvZXhpZi1vcmllbnRh
dGlvbi05LXUtcHJlLXJvdGF0ZWQuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvcG9zaXRpb24tc3Rp
Y2t5LXRhYmxlLXRoLWJvdHRvbS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9k
YXRhL3dwdC93ZWlnaHRlZC9wb3NpdGlvbi1zdGlja3ktdGFibGUtdGgtYm90dG9tLXJlZi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJhYTVjMDhhNTVkMjlhMDg5ZDU3ZTQzMDNkODkzZGZkMTU5MjBhYmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0
ZWQvcG9zaXRpb24tc3RpY2t5LXRhYmxlLXRoLWJvdHRvbS1yZWYuaHRtbApAQCAtMCwwICsxLDYy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5SZWZlcmVuY2UgZm9yIHBvc2l0aW9uOnN0aWNr
eSBib3R0b20gY29uc3RyYWludCBzaG91bGQgYmVoYXZlIGNvcnJlY3RseSBmb3IgJmx0O3RoJmd0
OyBlbGVtZW50czwvdGl0bGU+CisKKzxzdHlsZT4KKy5ncm91cCB7CisgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICB3aWR0aDogMTUwcHg7CisgIGhlaWdo
dDogMjAwcHg7Cit9CisKKy5zY3JvbGxlciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lk
dGg6IDEwMHB4OworICBoZWlnaHQ6IDE1MHB4OworICBvdmVyZmxvdy14OiBoaWRkZW47CisgIG92
ZXJmbG93LXk6IGF1dG87Cit9CisKKy5jb250ZW50cyB7CisgIGhlaWdodDogNTUwcHg7Cit9CisK
Ky5pbmRpY2F0b3IgeworICBwb3NpdGlvbjogYWJzb2x1dGU7CisgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworICBsZWZ0OiAwOworICBoZWlnaHQ6IDUwcHg7CisgIHdpZHRoOiA1MHB4OworfQor
PC9zdHlsZT4KKworPHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVu
Y3Rpb24oKSB7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcjEnKS5zY3JvbGxU
b3AgPSAwOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsZXIyJykuc2Nyb2xsVG9w
ID0gNzU7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxlcjMnKS5zY3JvbGxUb3Ag
PSAyMDA7Cit9KTsKKzwvc2NyaXB0PgorCis8ZGl2IGNsYXNzPSJncm91cCI+CisgIDxkaXYgaWQ9
InNjcm9sbGVyMSIgY2xhc3M9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3Ii
IHN0eWxlPSJ0b3A6IDEwMHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGVudHMiPjwv
ZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJncm91cCI+CisgIDxkaXYgaWQ9
InNjcm9sbGVyMiIgY2xhc3M9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3Ii
IHN0eWxlPSJ0b3A6IDE1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGVudHMiPjwv
ZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJncm91cCI+CisgIDxkaXYgaWQ9
InNjcm9sbGVyMyIgY2xhc3M9InNjcm9sbGVyIj4KKyAgICA8ZGl2IGNsYXNzPSJpbmRpY2F0b3Ii
IHN0eWxlPSJ0b3A6IDI1MHB4OyI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGVudHMiPjwv
ZGl2PgorICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2PllvdSBzaG91bGQgc2VlIHRocmVlIGdyZWVu
IGJveGVzIGFib3ZlLiBObyByZWQgc2hvdWxkIGJlIHZpc2libGUuPC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvcmVzaXplLTAwNC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL3Jlc2l6ZS0w
MDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zYTFmNTYxNzQ5MzQzYmM4ODU3ZGM4YzQzM2E1MGQxYmY5Yzk0
ZjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0
L3dlaWdodGVkL3Jlc2l6ZS0wMDQuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5DU1MgQmFzaWMgVXNlciBJbnRlcmZh
Y2UgVGVzdDogcmVzaXplIGluaXRpYWwgdmFsdWUgLSBub25lPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyI+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlNoaXlvdSBUYW4iIGhyZWY9Im1haWx0bzpzaGl5b3V4LnRh
bkBpbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiB0aXRsZT0iOC4xLiAncmVzaXplJyBwcm9w
ZXJ0eSIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy11aS8jcmVzaXplIj4KKzxtZXRh
IG5hbWU9ImZsYWdzIiBjb250ZW50PSJpbnRlcmFjdCI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9IlRlc3QgY2hlY2tzIHRoYXQgdGhlIHJlc2l6ZSBwcm9wZXJ0eSBpbml0aWFsIHZhbHVl
IGlzIG5vbmUiPgorPHN0eWxlPgorICAjdGVzdCB7CisgICAgYm9yZGVyOiAycHggc29saWQgYmx1
ZTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIG92ZXJmbG93OiBhdXRvOworICAgIHdpZHRoOiAx
MDBweDsKKyAgfQorPC9zdHlsZT4KKzxib2R5PgorICA8cD5UZXN0IHBhc3NlcyBpZiA8c3Ryb25n
Pm5laXRoZXI8L3N0cm9uZz4gdGhlIGhlaWdodCA8c3Ryb25nPm5vcjwvc3Ryb25nPiB0aGUgd2lk
dGggb2YgdGhlIGJsdWUgYm9yZGVyIHNxdWFyZSBjYW4gYmUgYWRqdXN0ZWQoZm9yIGluc3RhbmNl
IGJ5IGRyYWdnaW5nIHRoZSBib3R0b20tcmlnaHQgY29ybmVyKS48L3A+CisgIDxkaXYgaWQ9InRl
c3QiPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtz
L2RhdGEvd3B0L3dlaWdodGVkL3Rlc3QtcGxhbi5zcmMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVu
Y2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC90ZXN0LXBsYW4uc3JjLmh0bWwKaW5kZXggNjQ0YzEw
YWExMjIwNWQzOGY0MGJjNzJkZWM2MDFmNTk3MWZhOWVjYy4uYzI5ZjI2ODgzN2RkODI4YTI0ZjA0
YTg5YWExNDkwOTJiODVlMTFjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtz
L2RhdGEvd3B0L3dlaWdodGVkL3Rlc3QtcGxhbi5zcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdGVzdC1wbGFuLnNyYy5odG1sCkBAIC0xNDkw
LDcgKzE0OTAsNyBAQAogCQkJCQkJCQlbUF0gLSBwYXJlbnQgZWxlbWVudCB3aXRoIGEgcHJvcGVy
dHkgdGhhdCBjcmVhdGVzIGEgc3RhY2tpbmcgY29udGV4dCAoZS5nLiA8Y29kZT5wb3NpdGlvbjpm
aXhlZDwvY29kZT4pOyB0aGUgZWxlbWVudCA8Y29kZT5iYWNrZ3JvdW5kLWNvbG9yPC9jb2RlPiBp
cyBvdGhlciB0aGFuIDxjb2RlPnRyYW5zcGFyZW50PC9jb2RlPjxicj4KIAkJCQkJCQkJW0lOLVBd
IC0gSW50ZXJtZWRpYXRlIGNoaWxkIGVsZW1lbnQgYmV0d2VlbiB0aGUgcGFyZW50IFtQXSBhbmQg
dGhlIGNoaWxkIFtCXTxicj4KIAkJCQkJCQkJVGhlIGludGVybWVkaWF0ZSBlbGVtZW50IGhhcyB0
ZXh0IGNvbnRlbnQsIGRlZmF1bHQgdmFsdWUgZm9yIDxjb2RlPmJhY2tncm91bmQtY29sb3I8L2Nv
ZGU+IGFuZCA8Y29kZT5pc29sYXRpb246aXNvbGF0ZTwvY29kZT4gc2V0PGJyPgotCQkJCQkJCQlb
Ql0gLSBlbGVtZW50IHdpdGggPGNvZGU+bWl4LWJsZW5kLW1vZGU8L2NvZGU+IG90aGVyIHRoYW4g
PGNvZGU+bm9ybWFsPC9kPgorCQkJCQkJCQlbQl0gLSBlbGVtZW50IHdpdGggPGNvZGU+bWl4LWJs
ZW5kLW1vZGU8L2NvZGU+IG90aGVyIHRoYW4gPGNvZGU+bm9ybWFsPC9kIDxicj4KIAkJCQkJCQk8
dGQ+CiAJCQkJCQkJCVRoZSBjb2xvciBvZiB0aGUgY2hpbGQgZWxlbWVudCBbQl0gbWl4ZXMgd2l0
aCB0aGUgY29sb3Igb2YgdGhlIGludGVybWVkaWF0ZSBlbGVtZW50IFtJTi1QXSwgd2hlcmUgdGhl
eSBvdmVybGFwLjxicj4KIAkJCQkJCQkJVGhlcmUgaXMgbm8gYmxlbmRpbmcgYmV0d2VlbiB0aGUg
Y29sb3Igb2YgdGhlIHBhcmVudCBlbGVtZW50IFtQXSBhbmQgdGhlIGNvbG9yIG9mIHRoZSBibGVu
ZGVkIGVsZW1lbnQgW0JdLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2Rh
dGEvd3B0L3dlaWdodGVkL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtz
L2RhdGEvd3B0L3dlaWdodGVkL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjNTQzYTMxN2E3ZjM5ZjRmYjNhNTU3YjIyZWQyZmY1ZjhhY2E3Mzc2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVu
Y2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDI4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dw
dC93ZWlnaHRlZC8yZC5jb21wb3NpdGUuaW1hZ2UuZGVzdGluYXRpb24tb3Zlci5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL2FsaWduLWNvbnRlbnQtd3Jh
cC0wMDIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9i
aWc1X2NoYXJzX2V4dHJhLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQv
d2VpZ2h0ZWQvZmV0Y2guaHR0cC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEv
d3B0L3dlaWdodGVkL2ZpbHRlci10dXJidWxlbmNlLWludmFsaWQtMDAxLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvZ3JpZC1hdXRvLWZpbGwtcm93cy0w
MDEuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9tYXNv
bnJ5LWl0ZW0tcGxhY2VtZW50LTAwNi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2Rh
dGEvd3B0L3dlaWdodGVkL21vei1jc3MyMS10YWJsZS1wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC0y
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvcHJlLWZs
b2F0LTAwMS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVk
L3Rlc3QtcGxhbi5zcmMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93
ZWlnaHRlZC90b0Jsb2IucG5nLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93
cHQvd2VpZ2h0ZWQvd2lsbC1jaGFuZ2UtYWJzcG9zLWNiLTAwMS5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2JlbmNobWFya3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Jl
bmNobWFya3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0
YmUyMmY2YzA1N2Q1N2E5NzEzNDk1MzU3NGY3M2E4NDlkZjRhYjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9iZW5jaG1hcmtzL2JlbmNoX2h0bWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNo
bWFya3MvYmVuY2hfd3B0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZDcwMWFiZjhmNWY1ZTgyMDE5YmJjNjlhNGJjNTQzOWZmZGRkNDFh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvZG9jL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9j
aGFuZ2VzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Rv
Yy9odG1sNWxpYi5maWx0ZXJzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnRyZWVhZGFwdGVycy5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2RvYy9odG1sNWxpYi50cmVlYnVpbGRlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvaHRt
bDVsaWIudHJlZXdhbGtlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvaW5kZXgucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9kb2MvbGljZW5zZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9tYWtlLmJhdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvZG9jL21vZHVsZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvbW92aW5n
cGFydHMucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2ZsYWtlOC1ydW4uc2ggYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2ZsYWtlOC1ydW4uc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9fdHJpZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3RyaWUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZkMGYxYjU1MDUwNzJmNmQwZjdhMmM4YmFjY2JiZWMyMjYyODNh
M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi9fdHJpZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3RyaWUvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL19iYXNlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi9fdHJpZS9weS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1s
NWxpYi9maWx0ZXJzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJz
L19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMy
MDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9y
IG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9maWx0ZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkOGVmNTIxMzIyNzE2M2JhOTI1NmUwMjkxYThiMDhmMmU0N2Q3ZjQxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvZmlsdGVycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9hbHBoYWJldGljYWxhdHRyaWJ1dGVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL2ZpbHRlcnMvaW5qZWN0X21ldGFfY2hhcnNldC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvZmlsdGVycy9saW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL29w
dGlvbmFsdGFncy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9zYW5pdGl6ZXIu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvd2hpdGVzcGFjZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zYW5pdGl6ZXItdGVzdGRhdGEvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nhbml0aXplci10ZXN0
ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU2NTNl
ZDY1NDY4NWZiZDFkZWIxZDQ0ZWY0ZTA5N2M0OGExYjFmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nh
bml0aXplci10ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2FuaXRpemVyLXRl
c3RkYXRhL3Rlc3RzMS5kYXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVz
dHMvc2VyaWFsaXplci10ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvdGVzdHMvc2VyaWFsaXplci10ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2QyMmRhMThjZDVjZjAxYmE2MTQwYjkzZDk3ZjY1NGU3YzI2
NmM5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3NlcmlhbGl6ZXItdGVzdGRhdGEvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2h0bWw1bGliL3Rlc3RzL3NlcmlhbGl6ZXItdGVzdGRhdGEvY29yZS50ZXN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL2luamVjdG1ldGEudGVzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2VyaWFsaXplci10ZXN0ZGF0YS9vcHRpb25h
bHRhZ3MudGVzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2VyaWFsaXplci10ZXN0
ZGF0YS9vcHRpb25zLnRlc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3NlcmlhbGl6
ZXItdGVzdGRhdGEvd2hpdGVzcGFjZS50ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0
cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgyY2FhNDUx
NjY4ZjMxNmYxNzIwN2NlOWM0ZTVhY2UwYjYzMzM4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvdGVzdHMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nhbml0
aXplci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc3VwcG9ydC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9hbHBoYWJldGljYWxhdHRyaWJ1dGVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X2VuY29kaW5nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X21ldGEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L3Rlc3RzL3Rlc3Rfb3B0aW9uYWx0YWdzX2ZpbHRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvdGVzdHMvdGVzdF9wYXJzZXIyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90
ZXN0X3Nhbml0aXplci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zZXJp
YWxpemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3N0cmVhbS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF90b2tlbml6ZXIyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3RyZWVhZGFwdGVycy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvdGVzdF90cmVld2Fsa2Vycy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvdGVzdHMvdGVzdF93aGl0ZXNwYWNlX2ZpbHRlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvdGVzdHMvdG9rZW5pemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90
b2tlbml6ZXJ0b3RyZWUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3RyZWVfY29u
c3RydWN0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy91cy1hc2NpaS5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy91dGYtOC1ib20uaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRhcHRlcnMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQwZmY3ODg1MTE0YTk3MWU0NDE2OWYzOTg0ZDE2Nzk3
MmNkYzIwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIv
dHJlZWFkYXB0ZXJzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRh
cHRlcnMvZ2Vuc2hpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRhcHRlcnMvc2F4
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDA0YzVhMjg0NjZiOThmNzYx
NzYxZDhjMmJiOTdlYmNlYTFiNWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL3RyZWVidWlsZGVycy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVl
YnVpbGRlcnMvZG9tLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvZXRy
ZWUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9ldHJlZV9seG1sLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWV3YWxrZXJzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVld2Fsa2Vycy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2ZDA1NWIwZGQ4MDU1NTUwODEyYjg5
Y2VkNDU3NTI4MzNkMGZhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWV3YWxrZXJzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90cmVld2Fsa2Vycy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIv
dHJlZXdhbGtlcnMvYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMv
ZG9tLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVld2Fsa2Vycy9ldHJlZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvZXRyZWVfbHhtbC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvZ2Vuc2hpLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRlMDU2MWNjMmM3
ZTFkN2I0ZGExZjdjMjEzZmFlZDRlNTIwNGE4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX2loYXRleG1sLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9faW5wdXRzdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2h0bWw1bGliL190b2tlbml6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL191dGlscy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvY29uc3RhbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9odG1sNXBhcnNlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvc2VyaWFsaXpl
ci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9wYXJzZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
cGFyc2UucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9yZXF1aXJlbWVudHMtaW5zdGFsbC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWly
ZW1lbnRzLWluc3RhbGwuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
dXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzMWUw
MDM5ZWY0MDAyNzNjNzFlMzJlMmJkN2JkNzZmNjdhNDIzNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvdXRpbHMvZW50aXRpZXMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNGI4MzQzOTdjMGUyNTdiNjhhNmMzMWM0NjgxN2E3ZmJkN2UwMmU4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL0FVVEhPUlMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9DSEFOR0VTLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvQ09OVFJJQlVUSU5HLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvTElDRU5TRQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL1JFQURNRS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2RlYnVnLWluZm8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2ZsYWtlOC1ydW4uc2gKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL3BhcnNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9weXRlc3QuaW5pCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9yZXF1aXJlbWVudHMtaW5zdGFsbC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWlyZW1l
bnRzLW9wdGlvbmFsLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWlyZW1lbnRzLXRlc3QudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9zZXR1cC5jZmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi90b3guaW5pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvY29tbW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZWUwODE4MTE0MDhlN2Q4N2MxMDMxOTQ0N2YwNTc4NDg5MjZlZmZiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tbW9u
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9jb21tb24vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2Nv
bW1vbi9idWZzb2NrZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9jb25uZWN0aW9uLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vZGVjb2Rlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
Y29tbW9uL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9oZWFkZXJzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9oMi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvX19pbml0X18ucHkK
b2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9oMi9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2NvbmZpZy5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gy
L2Nvbm5lY3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Nvbm5lY3Rpb24ucHkKb2xkIG1v
ZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
Mi9lcnJvcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Vycm9ycy5weQpvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2V2ZW50
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXZlbnRzLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2ZyYW1lX2J1ZmZl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZnJhbWVfYnVmZmVyLnB5Cm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvc2V0dGlu
Z3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3NldHRpbmdzLnB5Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvc3RyZWFtLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zdHJlYW0ucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi91dGlsaXRpZXMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h5cGVyL2h5cGVyL2gyL3V0aWxpdGllcy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9oMi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzkwZTI2OTRmZTM2NWIyMTBmNDdmYTMyN2ZhZDRmYzJjYzg5MWNjNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2gyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIv
Y29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9jb25uZWN0aW9uLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9oMi9lcnJvcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2V2ZW50cy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZnJh
bWVfYnVmZmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zZXR0aW5ncy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvaDIvc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi91dGlsaXRpZXMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyL2h5cGVyL2gyL3dpbmRvd3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvaDIvd2luZG93cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvd2luZG93cy5weQpvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2h0dHAxMS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2I3Y2U3NWZkMjBiYmU2M2Nm
OWUyMDI4MThiODU0MTU1MGQ3YjgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MTEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAxMS9jb25uZWN0aW9uLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9odHRwMTEvcGFyc2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MTEvcmVzcG9uc2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYWY4NjU1ZWM2MGQ3ZjE0ZGU4Y2UzYWNlYzQwMjBk
Yzk0ZTQ0NjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9odHRwMjAvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9fX2luaXRfXy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5
cGVyL2h0dHAyMC9lcnJvcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9leGNlcHRpb25z
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvcmVzcG9uc2UucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5
cGVyL2h0dHAyMC9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC91dGlsLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9odHRwMjAvd2luZG93LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVy
L2h5cGVyL3BhY2thZ2VzL2hwYWNrL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9w
YWNrYWdlcy9ocGFjay93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWU1MDA1NDU3NjM0ZmJhMzA0NGE2OGQ2OGFmODE1MDgwYzRkYTUzYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2th
Z2VzL2hwYWNrL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHBhY2svY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBl
ci9wYWNrYWdlcy9ocGFjay9leGNlcHRpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdl
cy9ocGFjay9ocGFjay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHBhY2svaHBhY2tf
Y29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9odWZmbWFuLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9odWZmbWFuX2NvbnN0YW50cy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2YwYmZmMzk2NjU2YWEyNmI3ZjY3NjQ2
MmRmMjFlNzBlNmRjMzg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHlwZXJmcmFtZS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlw
ZXIvcGFja2FnZXMvaHlwZXJmcmFtZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFj
a2FnZXMvaHlwZXJmcmFtZS9mbGFncy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHlw
ZXJmcmFtZS9mcmFtZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9y
ZmMzOTg2L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjgyYzQ4YWMw
ZTA3OWRlMjRiNWZmYzc3OGQyOWNjODNmYjc1NjE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBl
ci9wYWNrYWdlcy9yZmMzOTg2L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdl
cy9yZmMzOTg2L2FwaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni9jb21w
YXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvZXhjZXB0aW9ucy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni9taXNjLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9wYWNrYWdlcy9yZmMzOTg2L25vcm1hbGl6ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9w
YWNrYWdlcy9yZmMzOTg2L3BhcnNlcmVzdWx0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdl
cy9yZmMzOTg2L3VyaS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4Nzk0MWQyYWE0ZWQ3OTExMTgyYzI4NTIx
MzgxZjcwMzUwOGEwOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMv
X19pbml0X18ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyL2h5cGVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1OTllNjE5ZDNlZWZmNTQ4NTBiOTZmYTVhZTViNjRjNGQwZWUxMWI1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h5cGVyL2h5cGVyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9jZXJ0cy5wZW0K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyL2h5cGVyL2NsaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tcGF0LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9jb250cmliLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwbGliX2Nv
bXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvc3NsX2NvbXBhdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlw
ZXIvdGxzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS5lZ2ctaW5m
by93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDc2OWQ1MjRmOGZj
MzMwMTQzNGQxNDZkYjI2N2I1NWNlMjVhMmJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJh
bWUvaHlwZXJmcmFtZS5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBl
cmZyYW1lLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5
cGVyZnJhbWUuZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy
YW1lL2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFt
ZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmNWI1ZjI4
NGZlMmNjM2Q4NzBlNTg4YTkwMDMzNjdhNmEzMGQ1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXJmcmFtZS9oeXBlcmZyYW1lL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJh
bWUvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL2ZsYWdzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZnJhbWUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXJmcmFtZS90ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjZDY3YmY5ZjhjZGMwMGIz
YWEyNzU3NmE0YWUyMjlmY2VlOWIzN2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvdGVzdC90
ZXN0X2ZsYWdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2YzQ0MDlhNTAx
OTBmYjBlMzAwY2I1NGY2MmM0NTFkYjRlNWYyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvQ09OVFJJ
QlVUT1JTLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9ISVNUT1JZLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFt
ZS9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1l
L1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUv
c2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aW1wb3J0bGliX21ldGFkYXRhLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZDVjNDAxNjM1ZWRjNTM2ODFmZjQ1NGFmMmU1ZWI5
NTAyNGQ0MGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8uZ2l0
aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlODY0ZDYxMjU5Nzk4NDUyYzNhYzM5NWJjZmE3ZWUyNzMzNTQ5
YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8uZ2l0aWdub3Jl
CkBAIC0wLDAgKzEsMTMgQEAKK2J1aWxkCisvY292ZXJhZ2UueG1sCisvZGlmZmNvdi5odG1sCito
dG1sY292CitpbXBvcnRsaWJfbWV0YWRhdGEuZWdnLWluZm8KKy5teXB5X2NhY2hlCisvLmNvdmVy
YWdlCisvLkRTX1N0b3JlCithcnRpZmFjdHMKKy5lZ2dzCisuZG9jdHJlZXMKK2Rpc3QKK3BpcC13
aGVlbC1tZXRhZGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLnJlYWR0
aGVkb2NzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhLy5yZWFkdGhlZG9jcy55bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGFlNDQ2ODQyOGJlZGY3NDQxYzRiNDM5Mjg0MjUwNTVhNDQ1MzE5MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhLy5yZWFkdGhlZG9jcy55bWwKQEAg
LTAsMCArMSw1IEBACitweXRob246CisgIHZlcnNpb246IDMKKyAgZXh0cmFfcmVxdWlyZW1lbnRz
OgorICAgIC0gZG9jcworICBwaXBfaW5zdGFsbDogdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvZG9jcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L2RvY3MvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYy
ZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9fX2luaXRfXy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZv
ciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aW1wb3J0bGliX21ldGFkYXRhL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9t
ZXRhZGF0YS9kb2NzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1YjAwMTY2MDA1NWU1OWY3MzY3MTBjNmViYTdkODk1YWU5YjkyNGFhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvZG9jcy9jaGFuZ2Vsb2cucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9pbmRleC5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL3VzaW5nLnJzdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzFjMTk4ODI0YzllMDJmNjEwZDA5Nzg1
MmIyYmNiNDBkZDkzMzMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL2ltcG9ydGxpYl9tZXRhZGF0YS9fY29tcGF0LnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9leGFtcGxl
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjJkOTlmNjI4
NjJiZjFjMTBiY2IwOWI3MTRkY2RhYjAyZTFhNmQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhh
bXBsZS9leGFtcGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL2V4YW1w
bGUvX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBh
cmUvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBh
cmUvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2MwODMyNzRhMTMzZTFmNGEyYmZhYjA1NDIzZmQyZjMxYWU5ZTlkZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9w
cmVwYXJlL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvc2V0
dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4
MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRi
OGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRh
dGEvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMv
X19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5
dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMv
ZGF0YS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvX19p
bml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9fX2luaXRfXy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMg
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5
IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiNjFlMDUwYmNjODQ2NzBhMGU3NTMwYjdhZjE5NzM3MTFlZTU5ZDA2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9k
YXRhL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9leGFt
cGxlLTIxLjEyLXB5My1ub25lLWFueS53aGwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy9kYXRhL2V4YW1wbGUtMjEuMTItcHkzLjYuZWdnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzM3
YzQ5YWI1NmIzYzU5MTYwYWZmYWZhMDg5NGJkNWVjNGRkNTllLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3Rz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS90ZXN0cy9maXh0dXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rl
c3RzL3B5Mzljb21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X2Fw
aS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfaW50ZWdyYXRpb24ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X21haW4ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9y
dGxpYl9tZXRhZGF0YS90ZXN0cy90ZXN0X3ppcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMwNzkyNmJmNTQ4MTM2
YTVmZTc1OTI1ZTBlYTllNmY4NzI5ZTM5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21l
dGFkYXRhL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9NQU5JRkVTVC5pbgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS9jb2RlY292LnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvdmVyYWdlLmluaQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhL2NvdmVycGx1Zy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL3B5cHJvamVjdC50b21sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvc2V0dXAuY2ZnCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvc2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0
YS90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy8uZ2l0aWdub3JlIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bmljb25maWcvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWU2MjM0MzgwY2YyOThlNDFlODMxYjY3
NmZmN2QzZDNlM2M5Y2QxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvLmdpdGln
bm9yZQpAQCAtMCwwICsxLDggQEAKKyouZWdnLWluZm8KKyoucHljCisuY2FjaGUvCisuZWdncy8K
K2J1aWxkLworZGlzdC8KK19fcHljYWNoZV9fCisudG94LwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmlj
b25maWcvLmhnaWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvLmhnaWdub3JlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
ZTkxYWJhYjFlODlmZDJlMGJjMDE1MzZmNGM3NmU2MDk5OGRhNjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2luaWNvbmZpZy8uaGdpZ25vcmUKQEAgLTAsMCArMSwxNiBAQAorCisjIFRoZXNlIGxp
bmVzIGFyZSBzdWdnZXN0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzdm46aWdub3JlIHByb3BlcnR5Cisj
IEZlZWwgZnJlZSB0byBlbmFibGUgdGhlbSBieSB1bmNvbW1lbnRpbmcgdGhlbQorc3ludGF4Omds
b2IKKyoucHljCisqLnB5bworKi5zd3AKKyouaHRtbAorKi5jbGFzcworCisudG94CisKK2J1aWxk
CitkaXN0CisqLmVnZy1pbmZvCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnLy5sYW5kc2Nh
cGUueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbmljb25maWcvLmxhbmRzY2FwZS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIxMmRk
ZWE0MTIxOGFhMDJkNGQ5NzUyNDEwODA2ZGRlNTFhNDBkOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW5pY29uZmlnLy5sYW5kc2NhcGUueW1sCkBAIC0wLDAgKzEsNSBAQAorcGVwODoKKyAgZnVs
bDogdHJ1ZQorcHl0aG9uLXRhcmdldHM6CisgIC0gMgorICAtIDMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aW5pY29uZmlnLy50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvLnRyYXZpcy55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTNmZWUwNmM5ZmFlNDk5ZTM1M2U4NmQ0MmQ3ZGZiYTA3MzQyMmU0MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW5pY29uZmlnLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsMTggQEAKK2xh
bmd1YWdlOiBweXRob24KK3B5dGhvbjoKKy0gJzIuNycKKy0gJzMuNCcKKy0gJzMuNScKKy0gbmln
aHRseQorLSBweXB5CitpbnN0YWxsOiBwaXAgaW5zdGFsbCBzZXR1cHRvb2xzX3NjbSB0b3gKK3Nj
cmlwdDogdG94IC1lIHB5CitkZXBsb3k6CisgIHByb3ZpZGVyOiBweXBpCisgIHVzZXI6IHJvbm55
CisgIHBhc3N3b3JkOgorICAgIHNlY3VyZTogRHNSVlg5OUhBNiszSm9YT1ZQL25QWGVhYkp5MlA3
M3dzN0FnZXIvZTRyeDNwM2pTNzRiSWQwOVhzQlU0NmJBVDlBTm1SV1BSOHk1RFJpNVpscTBXUTJ1
WG9SNTV3bXNkdTJLVWVnazZiRElTNElvcDhERnhZOEtqb3U5czhSWmJEVFAyN0xmdVlYS01PMXJE
Vy94YTZFaGlvdFlSb2Rla2VaVXozUDNNWWpJaTZyQlYyUnozdndtSW5wa0tPdGk3QUZ3QXNDR21D
Q0sxM2lybVBKRXA1bndsM1JnZUt1MkFHYW9sdzlleXBKWGVOTFVjTkRWUTg4WlVVWFFDa3dncTdh
MUJrSzZOTWVRTE1yV0FFMWJEM2FtQ2JWWEhDUjlUYVZ4MVpIMWRuaGE1SmNmajNnRUZ1Y1RtSW5X
V2VzNXU5cnlwdnNDa1N4S3RTcWRpVUE3Qk1KcTdYeWtWN25HTnBsR0xtMnNxNCtLU1lsZjNnWlhn
NFhOWFFrTk9pNEVCdFJ2YXRoZkZ6aUQyU1pnZHRqaVFYMm5laDBkTWpmOWN6Yy91Q1lrS1lDRkxl
b3pkdzJvUVErQnN4aFFmc21VMklMR0NGSHlGaWttRGJCcVpPV2ZRRTVUTjNpdFFxVjNURks4c09I
UThpeTNNRFNocytsQms5QVV3YkNBNVliUmg4aEpLaGdYeUVzRHBpc0M0MTdQajIyK1RidXRUajd2
M1JtcGUvc3Q0aG9MNzQwZ3JXYzNQU1ZVQmF5cEcwUnNvYWZTRFpXblluVEMrMGFha2Q2UUViNVM5
d25Na1A5NGtpallqakY2eVVJbnVUMDV3ZGJRdjVYY1NYcUFkR3pCcUI1ak5OZGZ3Z1dWQ09sd0dm
am52ektsbGhGM1BtV1BXL25mbVFwR09RaDQ9CisgIG9uOgorICAgIHRhZ3M6IHRydWUKKyAgICBk
aXN0cmlidXRpb25zOiBzZGlzdCBiZGlzdF93aGVlbAorICAgIHJlcG86IFJvbm55UGZhbm5zY2ht
aWR0L2luaWNvbmZpZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvQ0hBTkdFTE9HIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9pbmljb25maWcvQ0hBTkdFTE9HCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Nzk5
MTlmY2QyZTQ2NTczNGFlY2MzZjRiYmRkYjhjYzgxMGJiZDliLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL0NIQU5HRUxPRworKysg
L2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTEuMS4xCi09PT09PT09PT0KLQotKiBmaXggdmVy
c2lvbiBkZXRlcm1pbmF0aW9uICh0aGFua3MgQGZsb3JpbW9uZG1hbmNhKQotCi0xLjEuMAotPT09
PT0KLQotLSB0eXBpbmcgc3R1YnMgKHRoYW5rcyBAYmx1ZXRlY2gpCi0tIGNpIGZpeGVzCi0KLTEu
MC4xCi09PT09PT0KLQotcHl0ZXN0IDUrIHN1cHBvcnQKLQotMS4wCi09PT09Ci0KLS0gcmUtc3lu
YyB3aXRoIHB5bGliIGNvZGViYXNlCi0KLTAuMgotPT09PT09PT09PT09PT09PT09Ci0KLS0gYWRk
ZWQgYWJpbGl0eSB0byBhc2sgIm5hbWUgaW4gaW5pY29uZmlnIiwgaS5lLiB0byBjaGVjawotICBp
ZiBhIHNlY3Rpb24gaXMgY29udGFpbmVkLgotCi0tIGZpeCBidWcgaW4gIm5hbWU9dmFsdWUiIHBh
cnNpbmcgd2hlcmUgdmFsdWUgd2FzICJ4PTMiCi0KLS0gYWxsb3cgZm9yICc6ICcgdG8gZGVsaW1p
dCBuYW1lPXZhbHVlIHBhaXJzLCBzbyB0aGF0IGUuZy4gLnB5cGlyYyBmaWxlcwotICBsaWtlIGh0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZGlzdHV0aWxzL3BhY2thZ2VpbmRleC5odG1sCi0gIGNhbiBi
ZSBzdWNjZXNzZnVsbHkgcGFyc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9zcmMvaW5p
Y29uZmlnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvc3JjL2luaWNvbmZpZy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU0YzgzNzdlODUxOGJk
YWExMzEzOWQ1Y2JmMTRhNTZjNjI5ZWJhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9zcmMvaW5pY29uZmlnL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25m
aWcvc3JjL2luaWNvbmZpZy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3NyYy9pbmljb25m
aWcvX19pbml0X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvc3JjL2luaWNvbmZpZy9weS50eXBlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aW5pY29uZmlnL3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQyNGQ1NmU1YzAxODk2ODBiYjc4ZTliNjk4ZDgyNDMyZmEyYTZiZTAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdGVz
dGluZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW5pY29uZmlnL3Rlc3RpbmcvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy90
ZXN0aW5nL3Rlc3RfaW5pY29uZmlnLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3Y2Q2MjdhODQ0Zjk1NzFmMzllOGUyMzI4NjIwYjQ3MmQxYjkwMmU0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5p
Y29uZmlnL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbmljb25maWcvQ0hBTkdFTE9HCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvTElDRU5TRQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW5pY29uZmlnL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvUkVBRE1FLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW5pY29uZmlnL2V4YW1wbGUuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvcHlwcm9qZWN0LnRv
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2luaWNvbmZpZy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9zZXR1cC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW5pY29uZmlnL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMv
LmdpdGF0dHJpYnV0ZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzLy5naXRhdHRyaWJ1dGVzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlhYWJhN2E5ZmU4ZWJlOTRhNjM1NGRiZDcyZjhlYzM5ODViNGI4MTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzLy5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEs
MiBAQAorbW9yZV9pdGVydG9vbHMvbW9yZS5weSBtZXJnZT11bmlvbgorbW9yZV9pdGVydG9vbHMv
dGVzdHMvdGVzdF9tb3JlLnB5IG1lcmdlPXVuaW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRl
cnRvb2xzLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzLy5naXRpZ25vcmUKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjI5ODkxZmI0MzYwMGQ2ZjUzZmQ1Y2Y5NDJjNWYxMmQyYzQ1NjAwMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDM0IEBA
CisqLnB5W2NvXQorCisjIFBhY2thZ2VzCisqLmVnZworKi5lZ2dzCisqLmVnZy1pbmZvCitkaXN0
CitidWlsZAorZWdncworcGFydHMKK2JpbgordmFyCitzZGlzdAorZGV2ZWxvcC1lZ2dzCisuaW5z
dGFsbGVkLmNmZworCisjIEluc3RhbGxlciBsb2dzCitwaXAtbG9nLnR4dAorCisjIFVuaXQgdGVz
dCAvIGNvdmVyYWdlIHJlcG9ydHMKKy5jb3ZlcmFnZQorLnRveAorLm5vc2VpZHMKKworIyBEb2Nz
IGJ5IFNwaGlueAorX2J1aWxkCisKKyMgRW52aXJvbm1lbnQKKy5lbnYKKworIyBJREUgZmlsZXMK
Ky5pZGVhCisudnNjb2RlCisuRFNfU3RvcmUNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzLy50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8udHJhdmlzLnltbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMDhmYjBjNjdlOGVlMzQ5ZTUzZjQyMzE0MGYzZWRjMGRjN2Y1MTNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8udHJhdmlzLnltbApAQCAtMCwwICsxLDI2IEBA
CitzdWRvOiBmYWxzZQorCitsYW5ndWFnZTogInB5dGhvbiIKKworcHl0aG9uOgorICAgIC0gIjIu
NyIKKyAgICAtICIzLjQiCisgICAgLSAiMy41IgorICAgIC0gIjMuNiIKKyAgICAtICIzLjctZGV2
IgorICAgIC0gInB5cHktNS40LjEiCisgICAgLSAicHlweTMiCisKK2luc3RhbGw6CisgICAgLSAi
cGlwIGluc3RhbGwgLiIKKyAgICAtICJwaXAgaW5zdGFsbCAtVSBjb3ZlcmFsbHMgZmxha2U4Igor
CitzY3JpcHQ6CisgICAgLSAiY292ZXJhZ2UgcnVuIC0taW5jbHVkZT0nbW9yZV9pdGVydG9vbHMv
Ki5weScgLS1vbWl0PSdtb3JlX2l0ZXJ0b29scy90ZXN0cy8qJyBzZXR1cC5weSB0ZXN0IgorICAg
IC0gImZsYWtlOCAuIgorCitub3RpZmljYXRpb25zOgorICBlbWFpbDogZmFsc2UKKworYWZ0ZXJf
c3VjY2VzczoKKyAgICAtICJjb3ZlcmFsbHMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyZGNlODg0YTgzZGY4YjEy
MDYwNjQzNWUyZTkwY2FhMjgwYjE4MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy9kb2NzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL2FwaS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L21vcmUtaXRlcnRvb2xzL2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy9p
bmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvbGljZW5zZS5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21v
cmUtaXRlcnRvb2xzL2RvY3MvbWFrZS5iYXQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvdGVz
dGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvdmVyc2lvbnMucnN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90ZXN0cy9fX2luaXRfXy5weQpp
bmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIy
ZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRl
cnRvb2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1p
dGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAot
IyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rv
cnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90ZXN0cy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzMDJhODE4YjU4MDUzYzM4ZTAyYjQ2Y2Fk
Mjc4ZmEwOGVmMzNkZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90ZXN0cy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1p
dGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRl
cnRvb2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL3Rlc3RfbW9yZS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVy
dG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvdGVzdF9yZWNpcGVzLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9t
b3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTdkNzliNjhhNWU0YjU0OTVhZGMwNDBhOGY0NGU5MjllNWFhMTVk
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21v
cmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0
b29scy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvbW9y
ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvcmVjaXBlcy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1p
dGVydG9vbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3
NjczMWFlZDNlMTY2MGZkZTg2NzI5NTkxNjdlZWE5YmMxMzhiOTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9y
ZS1pdGVydG9vbHMvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvTUFOSUZFU1QuaW4KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L21vcmUtaXRlcnRvb2xzL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL3NldHVw
LmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvc2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xz
L3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5jb3ZlcmFnZXJjIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEyMDVlNWExNDk1NDVjYjRhY2FkYWIw
ZTYzMzI3MjJhNjNlMWI0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5jb3Zl
cmFnZXJjCkBAIC0wLDAgKzEsOSBAQAorW3J1bl0KK2JyYW5jaCA9IFRydWUKK29taXQgPSBwYWNr
YWdpbmcvX2NvbXBhdC5weQorCitbcmVwb3J0XQorZXhjbHVkZV9saW5lcyA9CisgICAgcHJhZ21h
OiBubyBjb3ZlcgorICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBAYWJjLmFic3RyYWN0cHJv
cGVydHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5mbGFrZTggYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2lu
Zy8uZmxha2U4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YTM1YmU5MmFmMjU1MjM2MzdjMTQwMmU0MmE1OWQ5N2Iw
MmEzNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZmxha2U4CkBAIC0wLDAg
KzEsMyBAQAorW2ZsYWtlOF0KK21heC1saW5lLWxlbmd0aCA9IDg4CitpZ25vcmUgPSBFMjAzLFc1
MDMsVzUwNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3MvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc0MGY0Y2U4ZmE5YjZjMGNkODgy
MWQ4NzlkMTQxNTg0M2JjYTI4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
Ly5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3Jr
Zmxvd3MvbGludC55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0Lnlt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVlNTU0YTY0YzI0NGQ5NmMyMWRkMmQ4Y2UwNmYwMDYw
YjY1Y2FjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5naXRpZ25vcmUKQEAg
LTAsMCArMSwxOCBAQAorKi5lZ2ctaW5mby8KKyouZWdnCisqLnB5W2NvXQorCisuW250XW94Lwor
LmNhY2hlLworLmNvdmVyYWdlCisuaWRlYQorLnZlbnYqCisudnNjb2RlLworCisubXlweV9jYWNo
ZS8KKy5weXRlc3RfY2FjaGUvCitfX3B5Y2FjaGVfXy8KK19idWlsZC8KK2J1aWxkLworZGlzdC8K
K2h0bWxjb3YvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8ucHJlLWNvbW1pdC1jb25maWcu
eWFtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nLy5wcmUtY29tbWl0LWNvbmZpZy55YW1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVjNzc2NWVkZDEwODA4N2E0MDhlZmE2NGY2NWQxY2Y0NjRiOTBmODAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy8ucHJlLWNvbW1pdC1jb25maWcueWFtbApAQCAtMCwwICsxLDMy
IEBACityZXBvczoKKyAgLSByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vcHJlLWNvbW1pdC9wcmUt
Y29tbWl0LWhvb2tzCisgICAgcmV2OiB2Mi4zLjAKKyAgICBob29rczoKKyAgICAgIC0gaWQ6IGNo
ZWNrLXRvbWwKKyAgICAgIC0gaWQ6IGNoZWNrLXlhbWwKKyAgICAgIC0gaWQ6IGVuZC1vZi1maWxl
LWZpeGVyCisgICAgICAtIGlkOiB0cmFpbGluZy13aGl0ZXNwYWNlCisKKyAgLSByZXBvOiBodHRw
czovL2dpdGh1Yi5jb20vcHJlLWNvbW1pdC9taXJyb3JzLW15cHkKKyAgICByZXY6IHYwLjc5MAor
ICAgIGhvb2tzOgorICAgICAgLSBpZDogbXlweQorICAgICAgICBleGNsdWRlOiAnXihkb2NzfHRh
c2tzfHRlc3RzKXxzZXR1cFwucHknCisgICAgICAgIGFyZ3M6IFtdCisgICAgICAtIGlkOiBteXB5
CisgICAgICAgIG5hbWU6IG15cHkgZm9yIFB5dGhvbiAyCisgICAgICAgIGV4Y2x1ZGU6ICdeKGRv
Y3N8dGFza3N8dGVzdHMpfHNldHVwXC5weXxub3hmaWxlXC5weScKKyAgICAgICAgYXJnczogWyIt
LXB5MiJdCisKKyAgLSByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vcHNmL2JsYWNrCisgICAgcmV2
OiAxOS4zYjAKKyAgICBob29rczoKKyAgICAgIC0gaWQ6IGJsYWNrCisKKyAgLSByZXBvOiBodHRw
czovL2dpdGxhYi5jb20vUHlDUUEvZmxha2U4CisgICAgcmV2OiAiMy43LjgiCisgICAgaG9va3M6
CisgICAgICAtIGlkOiBmbGFrZTgKKyAgICAgICAgYWRkaXRpb25hbF9kZXBlbmRlbmNpZXM6IFsi
cGVwOC1uYW1pbmciXQorICAgICAgICAjIElnbm9yZSBhbGwgZm9ybWF0LXJlbGF0ZWQgY2hlY2tz
IGFzIEJsYWNrIHRha2VzIGNhcmUgb2YgdGhvc2UuCisgICAgICAgIGFyZ3M6IFsiLS1pZ25vcmUi
LCAiRTIsVzUiLCAiLS1zZWxlY3QiLCAiRSxXLEYsTiJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy8ucmVhZHRoZWRvY3MueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLnJlYWR0aGVkb2NzLnltbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOGFjMjE2Njg3OTlhYzZkYzAwNGU1Zjc4YjM5NGY3ZTBhOTJlZmY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLnJlYWR0aGVkb2NzLnltbApAQCAtMCwwICsx
LDE1IEBACit2ZXJzaW9uOiAyCisKK2J1aWxkOgorICBpbWFnZTogbGF0ZXN0CisKK2Zvcm1hdHM6
IFtwZGZdCitzcGhpbng6CisgIGNvbmZpZ3VyYXRpb246IGRvY3MvY29uZi5weQorCitweXRob246
CisgIHZlcnNpb246IDMuOAorICBpbnN0YWxsOgorICAgIC0gcmVxdWlyZW1lbnRzOiBkb2NzL3Jl
cXVpcmVtZW50cy50eHQKKyAgICAtIG1ldGhvZDogcGlwCisgICAgICBwYXRoOiAuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy8udHJhdmlzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy50cmF2aXMu
eW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmMDk3M2FlMmMxMGQzMmQ5YjFmZGJmNzhlODI1Y2QxM2MzYjVkNzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8udHJhdmlzLnltbApAQCAtMCwwICsx
LDQyIEBACitsYW5ndWFnZTogcHl0aG9uCitjYWNoZTogcGlwCitweXRob246IDMuOAorCittYXRy
aXg6CisgIGluY2x1ZGU6CisgICAgLSBweXRob246IDIuNworICAgICAgZW52OiBOT1hTRVNTSU9O
PXRlc3RzLTIuNworICAgIC0gcHl0aG9uOiBweXB5CisgICAgICBlbnY6IE5PWFNFU1NJT049dGVz
dHMtcHlweQorICAgIC0gcHl0aG9uOiBweXB5MworICAgICAgZW52OiBOT1hTRVNTSU9OPXRlc3Rz
LXB5cHkzCisgICAgLSBweXRob246IDMuNAorICAgICAgZW52OiBOT1hTRVNTSU9OPXRlc3RzLTMu
NAorICAgIC0gcHl0aG9uOiAzLjUKKyAgICAgIGVudjogTk9YU0VTU0lPTj10ZXN0cy0zLjUKKyAg
ICAtIHB5dGhvbjogMy42CisgICAgICBlbnY6IE5PWFNFU1NJT049dGVzdHMtMy42CisgICAgLSBw
eXRob246IDMuNworICAgICAgZW52OiBOT1hTRVNTSU9OPXRlc3RzLTMuNworICAgIC0gcHl0aG9u
OiAzLjgKKyAgICAgIGVudjogTk9YU0VTU0lPTj10ZXN0cy0zLjgKKyAgICAtIGVudjogTk9YU0VT
U0lPTj1saW50CisgICAgLSBlbnY6IE5PWFNFU1NJT049ZG9jcworCitpbnN0YWxsOgorICAtIHB5
ZW52IGdsb2JhbCAzLjcuMQorICAtIHB5dGhvbjMuNyAtbSBwaXAgaW5zdGFsbCBub3gKKworc2Ny
aXB0OgorICAtIHB5dGhvbjMuNyAtbSBub3gKKworbm90aWZpY2F0aW9uczoKKyAgaXJjOgorICAg
IGNoYW5uZWxzOgorICAgICAgIyBUaGlzIGlzIHNldCB0byBhIHNlY3VyZSB2YXJpYWJsZSB0byBw
cmV2ZW50IGZvcmtzIGZyb20gbm90aWZ5aW5nIHRoZQorICAgICAgIyBJUkMgY2hhbm5lbCB3aGVu
ZXZlciB0aGV5IGZhaWwgYSBidWlsZC4gVGhpcyBjYW4gYmUgcmVtb3ZlZCB3aGVuIHRyYXZpcwor
ICAgICAgIyBpbXBsZW1lbnRzIGh0dHBzOi8vZ2l0aHViLmNvbS90cmF2aXMtY2kvdHJhdmlzLWNp
L2lzc3Vlcy8xMDk0LgorICAgICAgIyBUaGUgYWN0dWFsIHZhbHVlIGhlcmUgaXM6IGlyYy5mcmVl
bm9kZS5vcmcjcHlwYS1kZXYKKyAgICAgIC0gc2VjdXJlOiAiQnI2YVlCWWtqTDE3ZkJaNitBY3pD
a2FCTVdRQVk2VG84SUg0enFoSHJPUlhBV3E0emV1QzRWeUNaNE1YbUR6azBXYkEzaDNFYTd1OWtv
ZFVmMXNWSzFoMHE3SFg2NnA4cW1GeVRuY1FvTEZnbzJMRi94MWFVMUZHV0tERFNYNUs2cUtPelVL
ckhVaFF5VnErdUF1UlZVbTdiSmhKTDAvdmlQd0VvaCtiT05vPSIKKyAgICB1c2Vfbm90aWNlOiB0
cnVlCisgICAgc2tpcF9qb2luOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2Nz
L19zdGF0aWMvLmVtcHR5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9fc3RhdGljLy5lbXB0eQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2E3YzcyOGZmNTU2YWI5M2UwNzQ3YzlhMmU0MTMxYjU0Y2EwYTU4
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9n
ZXR0aW5nLXN0YXJ0ZWQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9kZXZlbG9wbWVudC9pbmRl
eC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3JlbGVhc2UtcHJvY2Vzcy5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L3Jldmlld2luZy1wYXRjaGVzLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQvc3VibWl0dGluZy1wYXRjaGVzLnJz
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdiNjg1Mjk5ODQzNjZkZjEyNWIyYzY2ZDhmZGMyYmY5NTdiM2JiNzIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL2RvY3MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2NoYW5nZWxv
Zy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2Nz
L2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvbWFya2Vycy5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy9kb2NzL3JlcXVpcmVtZW50cy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3JlcXVpcmVt
ZW50cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3NlY3VyaXR5LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL2RvY3Mvc3BlY2lmaWVycy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3RhZ3MucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvZG9jcy91dGlscy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3ZlcnNp
b24ucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg5YjFjZjNiZmE3YzcyMjY4ZjkzNjBmNjk0NjMxN2E0ODJkYWU0
YmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjcg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL19jb21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNr
YWdpbmcvX3N0cnVjdHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvX3R5cGluZy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9tYXJrZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcv
cGFja2FnaW5nL3B5LnR5cGVkCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2FnaW5nL3JlcXVpcmVtZW50
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9zcGVjaWZpZXJzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvcGFja2FnaW5nL3RhZ3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdXRpbHMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdmVyc2lvbi5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvdGFza3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjYxOWMwZjJiNDA3
Nzc2MzdjODlhNDZjMDVmOGRiZDdhMTllNWM2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rh
c2tzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvY2hlY2sucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90YXNrcy9wYXRocy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3JlcXVpcmVtZW50
cy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2J1aWxkLWhlbGxvLXdvcmxk
LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvYnVpbGQtaGVsbG8td29ybGQuc2gKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
aGVsbG8td29ybGQtYXJtdjdsLWFybWVsIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29y
bGQtYXJtdjdsLWFybWVsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1oZiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1oZgpvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13
b3JsZC1pbnZhbGlkLWNsYXNzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52
YWxpZC1jbGFzcwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLWRhdGEgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLWRhdGEKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQt
aW52YWxpZC1tYWdpYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQt
bWFnaWMKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQteDg2XzY0LWkzODYgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90
ZXN0cy9oZWxsby13b3JsZC14ODZfNjQtaTM4NgpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC14ODZfNjQt
eDMyIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQteDg2XzY0LXgzMgpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2I3ZjY4N2YyZGFhY2JhODg4YTM1MzY0NDY3
N2RiY2ZkNDI1ZDZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMzYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy9idWlsZC1oZWxsby13b3JsZC5zaAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWFybXY3bC1hcm1lbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3Rz
L2hlbGxvLXdvcmxkLWFybXY3bC1hcm1oZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdv
cmxkLWludmFsaWQtY2xhc3MKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZh
bGlkLWRhdGEKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLW1hZ2lj
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtczM5MHgtczM5MHgKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC10b28tc2hvcnQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy9oZWxsby13b3JsZC14ODZfNjQtYW1kNjQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13
b3JsZC14ODZfNjQtaTM4NgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82
NC14MzIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC5jCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvdGVzdHMvdGVzdF9tYXJrZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF9yZXF1
aXJlbWVudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3NwZWNpZmllcnMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3N0cnVjdHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90
ZXN0cy90ZXN0X3RhZ3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3V0aWxzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdGVzdHMvdGVzdF92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTcyZWZlMDljNjc0YWI3Nzc1ZTA0YzdhYTNk
MWY5NzEyYmJjNDk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvQ0hBTkdFTE9HLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL0NPTlRSSUJVVElORy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvTElDRU5TRS5BUEFDSEUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkJTRAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9teXB5LmluaQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL25veGZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9weXByb2plY3QudG9tbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi8uZ2l0aWdu
b3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiNDU2MWVhYTFkNGYzZWQwMWFmMTE0YTMxNWEwMDUzNzc2ZmZlZDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyLy5naXRpZ25vcmUKQEAgLTAsMCArMSw1
NCBAQAorIyBCeXRlLWNvbXBpbGVkIC8gb3B0aW1pemVkIC8gRExMIGZpbGVzCitfX3B5Y2FjaGVf
Xy8KKyoucHlbY29kXQorCisjIEMgZXh0ZW5zaW9ucworKi5zbworCisjIERpc3RyaWJ1dGlvbiAv
IHBhY2thZ2luZworLlB5dGhvbgorZW52LworYnVpbGQvCitkZXZlbG9wLWVnZ3MvCitkaXN0Lwor
ZG93bmxvYWRzLworZWdncy8KK2xpYi8KK2xpYjY0LworcGFydHMvCitzZGlzdC8KK3Zhci8KKyou
ZWdnLWluZm8vCisuaW5zdGFsbGVkLmNmZworKi5lZ2cKKworIyBQeUluc3RhbGxlcgorIyAgVXN1
YWxseSB0aGVzZSBmaWxlcyBhcmUgd3JpdHRlbiBieSBhIHB5dGhvbiBzY3JpcHQgZnJvbSBhIHRl
bXBsYXRlCisjICBiZWZvcmUgUHlJbnN0YWxsZXIgYnVpbGRzIHRoZSBleGUsIHNvIGFzIHRvIGlu
amVjdCBkYXRlL290aGVyIGluZm9zIGludG8gaXQuCisqLm1hbmlmZXN0CisqLnNwZWMKKworIyBJ
bnN0YWxsZXIgbG9ncworcGlwLWxvZy50eHQKK3BpcC1kZWxldGUtdGhpcy1kaXJlY3RvcnkudHh0
CisKKyMgVW5pdCB0ZXN0IC8gY292ZXJhZ2UgcmVwb3J0cworaHRtbGNvdi8KKy50b3gvCisuY292
ZXJhZ2UKKy5jYWNoZQorbm9zZXRlc3RzLnhtbAorY292ZXJhZ2UueG1sCisKKyMgVHJhbnNsYXRp
b25zCisqLm1vCisqLnBvdAorCisjIERqYW5nbyBzdHVmZjoKKyoubG9nCisKKyMgU3BoaW54IGRv
Y3VtZW50YXRpb24KK2RvY3MvX2J1aWxkLworCisjIFB5QnVpbGRlcgordGFyZ2V0LwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYXRobGliMi8udHJhdmlzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvLnRyYXZpcy55
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzE2Njc0MTIyMDExYjMzN2E3NmE0NTBjMDJlNTJjY2U0MjY3ZTY3YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvLnRyYXZpcy55bWwKQEAgLTAsMCArMSw0
NyBAQAorbGFuZ3VhZ2U6IHB5dGhvbgorc3VkbzogZmFsc2UKK21hdHJpeDoKKyAgaW5jbHVkZToK
KyAgICAtIHB5dGhvbjogIjMuNyIKKyAgICAgIGRpc3Q6IHhlbmlhbAorICAgICAgZW52OiBMQ19B
TEw9ImVuX1VTLnV0Zi04IgorICAgIC0gcHl0aG9uOiAiMy43IgorICAgICAgZGlzdDogeGVuaWFs
CisgICAgICBlbnY6IExDX0FMTD0iZW5fVVMuYXNjaWkiCisgICAgLSBweXRob246ICIzLjYiCisg
ICAgICBkaXN0OiB4ZW5pYWwKKyAgICAtIHB5dGhvbjogIjMuNSIKKyAgICAgIGRpc3Q6IHhlbmlh
bAorICAgIC0gcHl0aG9uOiAiMy40IgorICAgICAgZGlzdDogeGVuaWFsCisgICAgLSBweXRob246
ICIyLjciCisgICAgICBkaXN0OiB4ZW5pYWwKKyAgICAtIHB5dGhvbjogIjIuNiIKKyAgICAgIGRp
c3Q6IHRydXN0eQorICAgIC0gcHl0aG9uOiAicHlweSIKKyAgICAgIGRpc3Q6IHhlbmlhbAorICAg
IC0gcHl0aG9uOiAicHlweTMiCisgICAgICBkaXN0OiB4ZW5pYWwKKyAgYWxsb3dfZmFpbHVyZXM6
CisgICMgcHlweSBvY2Nhc2lvbmFsbHkgaGFzIHNvbWUgYnVncworICAtIHB5dGhvbjogInB5cHki
CisgIC0gcHl0aG9uOiAicHlweTMiCiticmFuY2hlczoKKyAgb25seToKKyAgICAtIGRldmVsb3AK
K2luc3RhbGw6CisgIC0gInB5dGhvbiAtYyBcImltcG9ydCBzeXM7IHByaW50KHN5cy5nZXRmaWxl
c3lzdGVtZW5jb2RpbmcoKSlcIiIKKyAgLSAicGlwIGluc3RhbGwgLS11cGdyYWRlIHNldHVwdG9v
bHMiCisgIC0gInBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QiCisgIC0gInBpcCBpbnN0YWxs
IHB5dGVzdC1jb3YiCisgIC0gInBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQiCisgIC0g
ImlmIFtbICRUUkFWSVNfUFlUSE9OX1ZFUlNJT04gPT0gJzIuNicgXV07IHRoZW4gcGlwIGluc3Rh
bGwgdW5pdHRlc3QyOyBmaSIKKyAgLSAiaWYgW1sgJFRSQVZJU19QWVRIT05fVkVSU0lPTiA9PSAn
My43JyBdXTsgdGhlbiBwaXAgaW5zdGFsbCBjaGVjay1tYW5pZmVzdCBmbGFrZTg7IGZpIgorICAt
ICJwaXAgaW5zdGFsbCAuIgorc2NyaXB0OgorICAtICJpZiBbWyAkVFJBVklTX1BZVEhPTl9WRVJT
SU9OID09ICczLjcnIF1dOyB0aGVuIGNoZWNrLW1hbmlmZXN0OyBmaSIKKyAgLSAiaWYgW1sgJFRS
QVZJU19QWVRIT05fVkVSU0lPTiA9PSAnMy43JyBdXTsgdGhlbiBmbGFrZTg7IGZpIgorICAtIGNk
IHRlc3RzCisgIC0gInB5dGVzdCAtLWNvdi1yZXBvcnQ9eG1sIC0tY292PXBhdGhsaWIyIC4iCith
ZnRlcl9zdWNjZXNzOgorICAtIGJhc2ggPChjdXJsIC1zIGh0dHBzOi8vY29kZWNvdi5pby9iYXNo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGF0aGxpYjIvYXBwdmV5b3IvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNlN2Y4NjhlOGQ4OGQ2ZjFkMWYwYjUyZjI2NTE5NDZkNjNkYmZjOGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9h
cHB2ZXlvci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGF0aGxpYjIvYXBwdmV5b3IvaW5zdGFsbC5wczEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGF0aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3BhdGhs
aWIyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzBjMjc1
M2IxN2RjYzcwNzQzNmQwZTEzYWU4ZWYxNDM2MDY0MmY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhs
aWIyL3BhdGhsaWIyL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3Rlc3Rz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBlMDJjYjBjOWM1ZDQ4OTQ1ZmIzZjJjMmI5ZmQ3
NDk3M2Y0YWJkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi90ZXN0cy90ZXN0X3BhdGhsaWIyLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGli
Mi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQ5ZTYyZjBi
NmIyNDFjYTI3YTBlZTBiOThmNDY0Njg0ZGU1ZjQ4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9DSEFOR0VM
T0cucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi9MSUNFTlNFLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvTUFOSUZF
U1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BhdGhsaWIyL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL1ZFUlNJT04K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvY29kZWNvdi55bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhdGhsaWIyL3JlcXVpcmVtZW50cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3NldHVwLmNm
ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGF0aGxpYjIvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3BkZi53
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3BkZi53b3JrZXIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BkZl9q
cy9wZGYud29ya2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi08IS0tIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRo
ZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BkZl9qcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDQxYzdhMjhiNDQ0NmFjM2E5MDg5
MDgwOGRkYjljNzFlZGU3YzFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGRmX2pzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMvTElDRU5TRQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3Bk
Zi5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGRmX2pzL3BkZi53b3JrZXIuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
Ly5jb3ZlcmFnZXJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIxZGUx
Y2QyNDdjYTdjZWJjM2VmZjY1OWQ3MmIxMGRiY2VmOGI0NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5Ly5jb3ZlcmFnZXJjCkBAIC0wLDAgKzEsMTQgQEAKK1tydW5dCitpbmNsdWRlID0K
KyAgcGx1Z2d5LyoKKyAgdGVzdGluZy8qCisgICovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9w
bHVnZ3kvKgorICAqL3B5cHkqL3NpdGUtcGFja2FnZXMvcGx1Z2d5LyoKKyAgKlxMaWJcc2l0ZS1w
YWNrYWdlc1xwbHVnZ3lcKgorYnJhbmNoID0gMQorCitbcGF0aHNdCitzb3VyY2UgPSBwbHVnZ3kv
CisgICovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9wbHVnZ3kvCisgICovcHlweSovc2l0ZS1w
YWNrYWdlcy9wbHVnZ3kvCisgICpcTGliXHNpdGUtcGFja2FnZXNccGx1Z2d5XApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5Ly5naXRpZ25vcmUKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDU4MDUzNmM3YWRlNzQ4NThiMDU2NGIzNmZhY2VlOGRjZDQ5Nzk0MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5Ly5naXRpZ25vcmUKQEAgLTAsMCArMSw2NCBAQAorIyBCeXRl
LWNvbXBpbGVkIC8gb3B0aW1pemVkIC8gRExMIGZpbGVzCitfX3B5Y2FjaGVfXy8KKyoucHlbY29k
XQorCisjIEMgZXh0ZW5zaW9ucworKi5zbworCisjIERpc3RyaWJ1dGlvbiAvIHBhY2thZ2luZwor
LlB5dGhvbgorZW52LworYnVpbGQvCitkZXZlbG9wLWVnZ3MvCitkaXN0LworZG93bmxvYWRzLwor
ZWdncy8KKy5lZ2dzLworbGliLworbGliNjQvCitwYXJ0cy8KK3NkaXN0LwordmFyLworKi5lZ2ct
aW5mby8KKy5pbnN0YWxsZWQuY2ZnCisqLmVnZworCisjIFB5SW5zdGFsbGVyCisjICBVc3VhbGx5
IHRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIGJ5IGEgcHl0aG9uIHNjcmlwdCBmcm9tIGEgdGVtcGxh
dGUKKyMgIGJlZm9yZSBQeUluc3RhbGxlciBidWlsZHMgdGhlIGV4ZSwgc28gYXMgdG8gaW5qZWN0
IGRhdGUvb3RoZXIgaW5mb3MgaW50byBpdC4KKyoubWFuaWZlc3QKKyouc3BlYworCisjIEluc3Rh
bGxlciBsb2dzCitwaXAtbG9nLnR4dAorcGlwLWRlbGV0ZS10aGlzLWRpcmVjdG9yeS50eHQKKwor
IyBVbml0IHRlc3QgLyBjb3ZlcmFnZSByZXBvcnRzCitodG1sY292LworLnRveC8KKy5jb3ZlcmFn
ZQorLmNvdmVyYWdlLioKKy5jYWNoZQorbm9zZXRlc3RzLnhtbAorY292ZXJhZ2UueG1sCisqLGNv
dmVyCisKKyMgVHJhbnNsYXRpb25zCisqLm1vCisqLnBvdAorCisjIERqYW5nbyBzdHVmZjoKKyou
bG9nCisKKyMgU3BoaW54IGRvY3VtZW50YXRpb24KK2RvY3MvX2J1aWxkLworCisjIFB5QnVpbGRl
cgordGFyZ2V0LworKi5zd3AKKworIyBnZW5lcmF0ZWQgYnkgc2V0dXB0b29sc19zY20KK3NyYy9w
bHVnZ3kvX3ZlcnNpb24ucHkKKworIyBnZW5lcmF0ZWQgYnkgcGlwCitwaXAtd2hlZWwtbWV0YWRh
dGEvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8ucHJlLWNvbW1pdC1jb25maWcueWFtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5Ly5wcmUtY29tbWl0LWNvbmZpZy55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMDhkOTgzNzc3
NTk4Zjg1N2NjOWU0YTRkMTViYjQ5MjI4Y2IzM2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS8ucHJlLWNvbW1pdC1jb25maWcueWFtbApAQCAtMCwwICsxLDMyIEBACityZXBvczoKKy0g
ICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vYW1idi9ibGFjaworICAgIHJldjogMTkuM2IwCisg
ICAgaG9va3M6CisgICAgLSAgIGlkOiBibGFjaworICAgICAgICBhcmdzOiBbLS1zYWZlLCAtLXF1
aWV0XQorICAgICAgICBsYW5ndWFnZV92ZXJzaW9uOiBweXRob24zLjYKKy0gICByZXBvOiBodHRw
czovL2dpdGh1Yi5jb20vYXNvdHRpbGUvYmxhY2tlbi1kb2NzCisgICAgcmV2OiB2MC41LjAKKyAg
ICBob29rczoKKyAgICAtICAgaWQ6IGJsYWNrZW4tZG9jcworICAgICAgICBhZGRpdGlvbmFsX2Rl
cGVuZGVuY2llczogW2JsYWNrPT0xOS4zYjBdCisgICAgICAgIGxhbmd1YWdlX3ZlcnNpb246IHB5
dGhvbjMuNgorLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0L3ByZS1jb21t
aXQtaG9va3MKKyAgICByZXY6IHYyLjEuMAorICAgIGhvb2tzOgorICAgIC0gICBpZDogdHJhaWxp
bmctd2hpdGVzcGFjZQorICAgIC0gICBpZDogZW5kLW9mLWZpbGUtZml4ZXIKKyAgICAtICAgaWQ6
IGZsYWtlOAorLSAgIHJlcG86IGxvY2FsCisgICAgaG9va3M6CisgICAgLSAgIGlkOiByc3QKKyAg
ICAgICAgbmFtZTogcnN0CisgICAgICAgIGVudHJ5OiByc3QtbGludCAtLWVuY29kaW5nIHV0Zi04
CisgICAgICAgIGZpbGVzOiBeKENIQU5HRUxPRy5yc3R8SE9XVE9SRUxFQVNFLnJzdHxSRUFETUUu
cnN0fGNoYW5nZWxvZy8uKikkCisgICAgICAgIGxhbmd1YWdlOiBweXRob24KKyAgICAgICAgYWRk
aXRpb25hbF9kZXBlbmRlbmNpZXM6IFtweWdtZW50cywgcmVzdHJ1Y3R1cmVkdGV4dF9saW50XQor
ICAgICAgICBsYW5ndWFnZV92ZXJzaW9uOiBweXRob24zLjYKKy0gICByZXBvOiBodHRwczovL2dp
dGh1Yi5jb20vcHJlLWNvbW1pdC9weWdyZXAtaG9va3MKKyAgICByZXY6IHYxLjMuMAorICAgIGhv
b2tzOgorICAgIC0gICBpZDogcnN0LWJhY2t0aWNrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
LnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmE1OTY2
ZTVkNWE5NjE4NDU5MGQxMjYzNGNjYTUwNTIzZWM4ZmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvLnRyYXZpcy55bWwKQEAgLTAsMCArMSw4MSBAQAorZGlzdDogeGVuaWFsCitsYW5n
dWFnZTogcHl0aG9uCisKK3N0YWdlczoKKy0gbmFtZTogdGVzdAorICBpZjogdGFnIElTIE5PVCBw
cmVzZW50CistIG5hbWU6IGRlcGxveQorICBpZjogcmVwbyA9IHB5dGVzdC1kZXYvcGx1Z2d5IEFO
RCB0YWcgSVMgcHJlc2VudAorCitqb2JzOgorICBpbmNsdWRlOgorICAgIC0gcHl0aG9uOiAnMy42
JworICAgICAgZW52OiBUT1hFTlY9bGludGluZworICAgICAgY2FjaGU6CisgICAgICAgIGRpcmVj
dG9yaWVzOgorICAgICAgICAgIC0gJEhPTUUvLmNhY2hlL3ByZS1jb21taXQKKyAgICAtIHB5dGhv
bjogJzMuNicKKyAgICAgIGVudjogVE9YRU5WPWRvY3MKKyAgICAtIHB5dGhvbjogJzIuNycKKyAg
ICAgIGVudjogVE9YRU5WPXB5MjctY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNCcKKyAgICAg
IGVudjogVE9YRU5WPXB5MzQtY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNScKKyAgICAgIGVu
djogVE9YRU5WPXB5MzUtY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAgIGVudjog
VE9YRU5WPXB5MzYtY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJ3B5cHkyLjctNi4wJworICAgICAg
ZW52OiBUT1hFTlY9cHlweS1jb3ZlcmFnZQorICAgIC0gcHl0aG9uOiAncHlweTMuNS02LjAnCisg
ICAgICBlbnY6IFRPWEVOVj1weXB5My1jb3ZlcmFnZQorICAgIC0gcHl0aG9uOiAnMy43JworICAg
ICAgZW52OiBUT1hFTlY9cHkzNy1jb3ZlcmFnZQorICAgIC0gcHl0aG9uOiAnMy44LWRldicKKyAg
ICAgIGVudjogVE9YRU5WPXB5MzgtY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAg
IGVudjogVE9YRU5WPXB5MzYtcHl0ZXN0bWFzdGVyLWNvdmVyYWdlCisgICAgLSBweXRob246ICcz
LjYnCisgICAgICBlbnY6IFRPWEVOVj1weTM2LXB5dGVzdGZlYXR1cmVzLWNvdmVyYWdlCisgICAg
LSBweXRob246ICczLjYnCisgICAgICBlbnY6IFRPWEVOVj1iZW5jaG1hcmsKKyAgICAtIHB5dGhv
bjogJzMuNycKKyAgICAgIGVudjogVE9YRU5WPXB5MzctcHl0ZXN0bWFzdGVyLWNvdmVyYWdlCisg
ICAgLSBweXRob246ICczLjcnCisgICAgICBlbnY6IFRPWEVOVj1weTM3LXB5dGVzdGZlYXR1cmVz
LWNvdmVyYWdlCisKKyAgICAtIHN0YWdlOiBkZXBsb3kKKyAgICAgIHB5dGhvbjogJzMuNicKKyAg
ICAgIGVudjoKKyAgICAgIGluc3RhbGw6IHBpcCBpbnN0YWxsIC1VIHNldHVwdG9vbHMgc2V0dXB0
b29sc19zY20KKyAgICAgIHNjcmlwdDogc2tpcAorICAgICAgZGVwbG95OgorICAgICAgICBwcm92
aWRlcjogcHlwaQorICAgICAgICB1c2VyOiBuaWNvZGRlbXVzCisgICAgICAgIGRpc3RyaWJ1dGlv
bnM6IHNkaXN0IGJkaXN0X3doZWVsCisgICAgICAgIHNraXBfdXBsb2FkX2RvY3M6IHRydWUKKyAg
ICAgICAgcGFzc3dvcmQ6CisgICAgICAgICAgc2VjdXJlOiBQRHZRQ0tmWHJGMVYvdGR3RU9mZURF
akRzNnZKOWdLV280eXJNVW1CeDFKTDVwbEhaYXFmSExmdGxHTW9IZWthUVRIY2Z5WVlieGlnbkZ3
NUlHc245Ny9uRktLV0RQTkJmWkErM1JKSm1lSmZ6Mk5RdW5Za1Nub3F0QnRmRXRXSHpGUGRrQ20w
dy9DTjlDOElwUmpodkxuRlRVUXppbDZpTXk2d1pHMjc2Z1U9CisgICAgICAgIG9uOgorICAgICAg
ICAgIHRhZ3M6IHRydWUKKyAgICAgICAgICByZXBvOiBweXRlc3QtZGV2L3BsdWdneQorCitpbnN0
YWxsOgorICAtIHBpcCBpbnN0YWxsIC1VIHBpcAorICAtIHBpcCBpbnN0YWxsIC1VIC0tZm9yY2Ut
cmVpbnN0YWxsIHNldHVwdG9vbHMgdG94CisKK3NjcmlwdDoKKyAgLSB0b3gKKworYWZ0ZXJfc2Ny
aXB0OgorICAtIHwKKyAgICBpZiBbWyAiJHtUT1hFTlYlLWNvdmVyYWdlfSIgIT0gIiRUT1hFTlYi
IF1dOyB0aGVuCisgICAgICBiYXNoIDwoY3VybCAtcyBodHRwczovL2NvZGVjb3YuaW8vYmFzaCkg
LVogLVggZ2NvdiAtWCBjb3ZlcmFnZXB5IC1YIHNlYXJjaCAtWCB4Y29kZSAtWCBnY292b3V0IC1Y
IGZpeCAtZiBjb3ZlcmFnZS54bWwgLW4gJFRPWEVOVgorICAgIGZpCisKK25vdGlmaWNhdGlvbnM6
CisgIGlyYzoKKyAgICBjaGFubmVsczoKKyAgICAgIC0gImNoYXQuZnJlZW5vZGUubmV0I3B5dGVz
dCIKKyAgICBvbl9zdWNjZXNzOiBjaGFuZ2UKKyAgICBvbl9mYWlsdXJlOiBjaGFuZ2UKKyAgICBz
a2lwX2pvaW46IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWZjNmQ1MmJlMDQxNTU0ZjZjNzdkYmMyOGY2MGQ1ZjY0NjQ5
MDVhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9jaGFuZ2Vsb2cvUkVBRE1FLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9k
b2NzL19zdGF0aWMvaW1nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3RhdGlj
L2ltZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDY1YzY3
OTViYTFhZmUyOGU1MTZlZmFmMTFkNzA4Y2I4YTEwOTlkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1nL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9fc3RhdGljL2ltZy9wbHVnLnBuZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNDNlMzNlNWJhZDE1MzU1YmQwZWUxNDZhNDU4ZTYzNTdl
NDAzOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlLXNwYW0vZWdnc2FtcGxlX3NwYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL2VnZ3NhbXBsZS1zcGFtL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYmFjNGFkZWFjZWU0N2Q5NzVmMjVhZmRi
NDMxNWYwZmM5ZjBjZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvb2tzcGVjcy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlL2VnZ3NhbXBsZS9ob3N0LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2xpYi5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTBjMjU1NDAwZDNkM2QwN2Q1YmYyMTgyOWU5
NjhhNTliYmVlMDgxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3Mv
ZXhhbXBsZXMvZWdnc2FtcGxlL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM3YTE4MGI2YmRhMmJk
MGQxYmFiNWJjYjAwOGI5MGI3NmY4MTBiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9leGFtcGxlcy90b3ktZXhhbXBsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2ZWI5YTAzZmEzNDA3MWEwZWFmZDUxOGE0ODllNDlmYTM4
NDllNDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBpX3JlZmVyZW5jZS5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9kb2NzL2NoYW5nZWxvZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2NvbmYucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL2luZGV4LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L19f
aW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYjUxNzVkOTU2NjE0YjAyZjNlZTVhYThiYzkzMzE4M2ViNzUxMjMz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3BsdWdneS9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDY4NCArMCwwIEBACi1p
bXBvcnQgaW5zcGVjdAotaW1wb3J0IHdhcm5pbmdzCi1mcm9tIC5jYWxsZXJzIGltcG9ydCBfbXVs
dGljYWxsLCBIb29rQ2FsbEVycm9yLCBfUmVzdWx0LCBfbGVnYWN5bXVsdGljYWxsCi0KLV9fdmVy
c2lvbl9fID0gJzAuNS4zLmRldicKLQotX19hbGxfXyA9IFsiUGx1Z2luTWFuYWdlciIsICJQbHVn
aW5WYWxpZGF0aW9uRXJyb3IiLCAiSG9va0NhbGxFcnJvciIsCi0gICAgICAgICAgICJIb29rc3Bl
Y01hcmtlciIsICJIb29raW1wbE1hcmtlciJdCi0KLQotY2xhc3MgUGx1Z2luVmFsaWRhdGlvbkVy
cm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiIHBsdWdpbiBmYWlsZWQgdmFsaWRhdGlvbi4gIiIiCi0K
LQotY2xhc3MgSG9va3NwZWNNYXJrZXIob2JqZWN0KToKLSAgICAiIiIgRGVjb3JhdG9yIGhlbHBl
ciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBzcGVjaWZpY2F0aW9ucy4KLQot
ICAgIFlvdSBjYW4gaW5zdGFudGlhdGUgaXQgd2l0aCBhIHByb2plY3RfbmFtZSB0byBnZXQgYSBk
ZWNvcmF0b3IuCi0gICAgQ2FsbGluZyBQbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MgbGF0ZXIg
d2lsbCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucwotICAgIGlmIHRoZSBQbHVnaW5NYW5h
Z2VyIHVzZXMgdGhlIHNhbWUgcHJvamVjdF9uYW1lLgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHByb2plY3RfbmFtZSk6Ci0gICAgICAgIHNlbGYucHJvamVjdF9uYW1lID0gcHJv
amVjdF9uYW1lCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb249Tm9uZSwgZmlyc3Ry
ZXN1bHQ9RmFsc2UsIGhpc3RvcmljPUZhbHNlKToKLSAgICAgICAgIiIiIGlmIHBhc3NlZCBhIGZ1
bmN0aW9uLCBkaXJlY3RseSBzZXRzIGF0dHJpYnV0ZXMgb24gdGhlIGZ1bmN0aW9uCi0gICAgICAg
IHdoaWNoIHdpbGwgbWFrZSBpdCBkaXNjb3ZlcmFibGUgdG8gYWRkX2hvb2tzcGVjcygpLiAgSWYg
cGFzc2VkIG5vCi0gICAgICAgIGZ1bmN0aW9uLCByZXR1cm5zIGEgZGVjb3JhdG9yIHdoaWNoIGNh
biBiZSBhcHBsaWVkIHRvIGEgZnVuY3Rpb24KLSAgICAgICAgbGF0ZXIgdXNpbmcgdGhlIGF0dHJp
YnV0ZXMgc3VwcGxpZWQuCi0KLSAgICAgICAgSWYgZmlyc3RyZXN1bHQgaXMgVHJ1ZSB0aGUgMTpO
IGhvb2sgY2FsbCAoTiBiZWluZyB0aGUgbnVtYmVyIG9mIHJlZ2lzdGVyZWQKLSAgICAgICAgaG9v
ayBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbnMpIHdpbGwgc3RvcCBhdCBJPD1OIHdoZW4gdGhlIEkn
dGggZnVuY3Rpb24KLSAgICAgICAgcmV0dXJucyBhIG5vbi1Ob25lIHJlc3VsdC4KLQotICAgICAg
ICBJZiBoaXN0b3JpYyBpcyBUcnVlIGNhbGxzIHRvIGEgaG9vayB3aWxsIGJlIG1lbW9yaXplZCBh
bmQgcmVwbGF5ZWQKLSAgICAgICAgb24gbGF0ZXIgcmVnaXN0ZXJlZCBwbHVnaW5zLgotCi0gICAg
ICAgICIiIgotICAgICAgICBkZWYgc2V0YXR0cl9ob29rc3BlY19vcHRzKGZ1bmMpOgotICAgICAg
ICAgICAgaWYgaGlzdG9yaWMgYW5kIGZpcnN0cmVzdWx0OgotICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImNhbm5vdCBoYXZlIGEgaGlzdG9yaWMgZmlyc3RyZXN1bHQgaG9vayIpCi0g
ICAgICAgICAgICBzZXRhdHRyKGZ1bmMsIHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwKLSAg
ICAgICAgICAgICAgICAgICAgZGljdChmaXJzdHJlc3VsdD1maXJzdHJlc3VsdCwgaGlzdG9yaWM9
aGlzdG9yaWMpKQotICAgICAgICAgICAgcmV0dXJuIGZ1bmMKLQotICAgICAgICBpZiBmdW5jdGlv
biBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tzcGVjX29wdHMo
ZnVuY3Rpb24pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9ob29r
c3BlY19vcHRzCi0KLQotY2xhc3MgSG9va2ltcGxNYXJrZXIob2JqZWN0KToKLSAgICAiIiIgRGVj
b3JhdG9yIGhlbHBlciBjbGFzcyBmb3IgbWFya2luZyBmdW5jdGlvbnMgYXMgaG9vayBpbXBsZW1l
bnRhdGlvbnMuCi0KLSAgICBZb3UgY2FuIGluc3RhbnRpYXRlIHdpdGggYSBwcm9qZWN0X25hbWUg
dG8gZ2V0IGEgZGVjb3JhdG9yLgotICAgIENhbGxpbmcgUGx1Z2luTWFuYWdlci5yZWdpc3RlciBs
YXRlciB3aWxsIGRpc2NvdmVyIGFsbCBtYXJrZWQgZnVuY3Rpb25zCi0gICAgaWYgdGhlIFBsdWdp
bk1hbmFnZXIgdXNlcyB0aGUgc2FtZSBwcm9qZWN0X25hbWUuCi0gICAgIiIiCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHByb2plY3RfbmFtZSk6Ci0gICAgICAgIHNlbGYucHJvamVjdF9uYW1lID0g
cHJvamVjdF9uYW1lCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuY3Rpb249Tm9uZSwgaG9v
a3dyYXBwZXI9RmFsc2UsIG9wdGlvbmFsaG9vaz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgdHJ5
Zmlyc3Q9RmFsc2UsIHRyeWxhc3Q9RmFsc2UpOgotCi0gICAgICAgICIiIiBpZiBwYXNzZWQgYSBm
dW5jdGlvbiwgZGlyZWN0bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5jdGlvbgotICAgICAg
ICB3aGljaCB3aWxsIG1ha2UgaXQgZGlzY292ZXJhYmxlIHRvIHJlZ2lzdGVyKCkuICBJZiBwYXNz
ZWQgbm8gZnVuY3Rpb24sCi0gICAgICAgIHJldHVybnMgYSBkZWNvcmF0b3Igd2hpY2ggY2FuIGJl
IGFwcGxpZWQgdG8gYSBmdW5jdGlvbiBsYXRlciB1c2luZwotICAgICAgICB0aGUgYXR0cmlidXRl
cyBzdXBwbGllZC4KLQotICAgICAgICBJZiBvcHRpb25hbGhvb2sgaXMgVHJ1ZSBhIG1pc3Npbmcg
bWF0Y2hpbmcgaG9vayBzcGVjaWZpY2F0aW9uIHdpbGwgbm90IHJlc3VsdAotICAgICAgICBpbiBh
biBlcnJvciAoYnkgZGVmYXVsdCBpdCBpcyBhbiBlcnJvciBpZiBubyBtYXRjaGluZyBzcGVjIGlz
IGZvdW5kKS4KLQotICAgICAgICBJZiB0cnlmaXJzdCBpcyBUcnVlIHRoaXMgaG9vayBpbXBsZW1l
bnRhdGlvbiB3aWxsIHJ1biBhcyBlYXJseSBhcyBwb3NzaWJsZQotICAgICAgICBpbiB0aGUgY2hh
aW4gb2YgTiBob29rIGltcGxlbWVudGF0aW9ucyBmb3IgYSBzcGVjZmljYXRpb24uCi0KLSAgICAg
ICAgSWYgdHJ5bGFzdCBpcyBUcnVlIHRoaXMgaG9vayBpbXBsZW1lbnRhdGlvbiB3aWxsIHJ1biBh
cyBsYXRlIGFzIHBvc3NpYmxlCi0gICAgICAgIGluIHRoZSBjaGFpbiBvZiBOIGhvb2sgaW1wbGVt
ZW50YXRpb25zLgotCi0gICAgICAgIElmIGhvb2t3cmFwcGVyIGlzIFRydWUgdGhlIGhvb2sgaW1w
bGVtZW50YXRpb25zIG5lZWRzIHRvIGV4ZWN1dGUgZXhhY3RseQotICAgICAgICBvbmUgInlpZWxk
Ii4gIFRoZSBjb2RlIGJlZm9yZSB0aGUgeWllbGQgaXMgcnVuIGVhcmx5IGJlZm9yZSBhbnkgbm9u
LWhvb2t3cmFwcGVyCi0gICAgICAgIGZ1bmN0aW9uIGlzIHJ1bi4gIFRoZSBjb2RlIGFmdGVyIHRo
ZSB5aWVsZCBpcyBydW4gYWZ0ZXIgYWxsIG5vbi1ob29rd3JhcHBlcgotICAgICAgICBmdW5jdGlv
biBoYXZlIHJ1bi4gIFRoZSB5aWVsZCByZWNlaXZlcyBhIGBgX1Jlc3VsdGBgIG9iamVjdCByZXBy
ZXNlbnRpbmcKLSAgICAgICAgdGhlIGV4Y2VwdGlvbiBvciByZXN1bHQgb3V0Y29tZSBvZiB0aGUg
aW5uZXIgY2FsbHMgKGluY2x1ZGluZyBvdGhlciBob29rd3JhcHBlcgotICAgICAgICBjYWxscyku
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBzZXRhdHRyX2hvb2tpbXBsX29wdHMoZnVuYyk6
Ci0gICAgICAgICAgICBzZXRhdHRyKGZ1bmMsIHNlbGYucHJvamVjdF9uYW1lICsgIl9pbXBsIiwK
LSAgICAgICAgICAgICAgICAgICAgZGljdChob29rd3JhcHBlcj1ob29rd3JhcHBlciwgb3B0aW9u
YWxob29rPW9wdGlvbmFsaG9vaywKLSAgICAgICAgICAgICAgICAgICAgICAgICB0cnlmaXJzdD10
cnlmaXJzdCwgdHJ5bGFzdD10cnlsYXN0KSkKLSAgICAgICAgICAgIHJldHVybiBmdW5jCi0KLSAg
ICAgICAgaWYgZnVuY3Rpb24gaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hv
b2tpbXBsX29wdHMKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hv
b2tpbXBsX29wdHMoZnVuY3Rpb24pCi0KLQotZGVmIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKG9w
dHMpOgotICAgIG9wdHMuc2V0ZGVmYXVsdCgidHJ5Zmlyc3QiLCBGYWxzZSkKLSAgICBvcHRzLnNl
dGRlZmF1bHQoInRyeWxhc3QiLCBGYWxzZSkKLSAgICBvcHRzLnNldGRlZmF1bHQoImhvb2t3cmFw
cGVyIiwgRmFsc2UpCi0gICAgb3B0cy5zZXRkZWZhdWx0KCJvcHRpb25hbGhvb2siLCBGYWxzZSkK
LQotCi1jbGFzcyBfVGFnVHJhY2VyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICBzZWxmLl90YWcycHJvYyA9IHt9Ci0gICAgICAgIHNlbGYud3JpdGVyID0gTm9uZQot
ICAgICAgICBzZWxmLmluZGVudCA9IDAKLQotICAgIGRlZiBnZXQoc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHJldHVybiBfVGFnVHJhY2VyU3ViKHNlbGYsIChuYW1lLCkpCi0KLSAgICBkZWYgZm9ybWF0
X21lc3NhZ2Uoc2VsZiwgdGFncywgYXJncyk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoYXJnc1st
MV0sIGRpY3QpOgotICAgICAgICAgICAgZXh0cmEgPSBhcmdzWy0xXQotICAgICAgICAgICAgYXJn
cyA9IGFyZ3NbOi0xXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXh0cmEgPSB7fQotCi0g
ICAgICAgIGNvbnRlbnQgPSAiICIuam9pbihtYXAoc3RyLCBhcmdzKSkKLSAgICAgICAgaW5kZW50
ID0gIiAgIiAqIHNlbGYuaW5kZW50Ci0KLSAgICAgICAgbGluZXMgPSBbCi0gICAgICAgICAgICAi
JXMlcyBbJXNdXG4iICUgKGluZGVudCwgY29udGVudCwgIjoiLmpvaW4odGFncykpCi0gICAgICAg
IF0KLQotICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZXh0cmEuaXRlbXMoKToKLSAgICAgICAg
ICAgIGxpbmVzLmFwcGVuZCgiJXMgICAgJXM6ICVzXG4iICUgKGluZGVudCwgbmFtZSwgdmFsdWUp
KQotICAgICAgICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBwcm9jZXNzbWVzc2FnZShzZWxmLCB0
YWdzLCBhcmdzKToKLSAgICAgICAgaWYgc2VsZi53cml0ZXIgaXMgbm90IE5vbmUgYW5kIGFyZ3M6
Ci0gICAgICAgICAgICBsaW5lcyA9IHNlbGYuZm9ybWF0X21lc3NhZ2UodGFncywgYXJncykKLSAg
ICAgICAgICAgIHNlbGYud3JpdGVyKCcnLmpvaW4obGluZXMpKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLl90YWcycHJvY1t0YWdzXSh0YWdzLCBhcmdzKQotICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2V0d3JpdGVyKHNlbGYsIHdy
aXRlcik6Ci0gICAgICAgIHNlbGYud3JpdGVyID0gd3JpdGVyCi0KLSAgICBkZWYgc2V0cHJvY2Vz
c29yKHNlbGYsIHRhZ3MsIHByb2Nlc3Nvcik6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UodGFncywg
c3RyKToKLSAgICAgICAgICAgIHRhZ3MgPSB0dXBsZSh0YWdzLnNwbGl0KCI6IikpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh0YWdzLCB0dXBsZSkKLSAgICAg
ICAgc2VsZi5fdGFnMnByb2NbdGFnc10gPSBwcm9jZXNzb3IKLQotCi1jbGFzcyBfVGFnVHJhY2Vy
U3ViKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QsIHRhZ3MpOgotICAgICAg
ICBzZWxmLnJvb3QgPSByb290Ci0gICAgICAgIHNlbGYudGFncyA9IHRhZ3MKLQotICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCAqYXJncyk6Ci0gICAgICAgIHNlbGYucm9vdC5wcm9jZXNzbWVzc2FnZShz
ZWxmLnRhZ3MsIGFyZ3MpCi0KLSAgICBkZWYgc2V0bXlwcm9jZXNzb3Ioc2VsZiwgcHJvY2Vzc29y
KToKLSAgICAgICAgc2VsZi5yb290LnNldHByb2Nlc3NvcihzZWxmLnRhZ3MsIHByb2Nlc3NvcikK
LQotICAgIGRlZiBnZXQoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3Nf
XyhzZWxmLnJvb3QsIHNlbGYudGFncyArIChuYW1lLCkpCi0KLQotY2xhc3MgX1RyYWNlZEhvb2tF
eGVjdXRpb24ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGx1Z2lubWFuYWdlciwg
YmVmb3JlLCBhZnRlcik6Ci0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHBsdWdpbm1hbmFn
ZXIKLSAgICAgICAgc2VsZi5iZWZvcmUgPSBiZWZvcmUKLSAgICAgICAgc2VsZi5hZnRlciA9IGFm
dGVyCi0gICAgICAgIHNlbGYub2xkY2FsbCA9IHBsdWdpbm1hbmFnZXIuX2lubmVyX2hvb2tleGVj
Ci0gICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzZWxmLm9sZGNhbGwsIF9UcmFjZWRIb29r
RXhlY3V0aW9uKQotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIuX2lubmVyX2hvb2tleGVjID0g
c2VsZgotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncyk6
Ci0gICAgICAgIHNlbGYuYmVmb3JlKGhvb2submFtZSwgaG9va19pbXBscywga3dhcmdzKQotICAg
ICAgICBvdXRjb21lID0gX1Jlc3VsdC5mcm9tX2NhbGwobGFtYmRhOiBzZWxmLm9sZGNhbGwoaG9v
aywgaG9va19pbXBscywga3dhcmdzKSkKLSAgICAgICAgc2VsZi5hZnRlcihvdXRjb21lLCBob29r
Lm5hbWUsIGhvb2tfaW1wbHMsIGt3YXJncykKLSAgICAgICAgcmV0dXJuIG91dGNvbWUuZ2V0X3Jl
c3VsdCgpCi0KLSAgICBkZWYgdW5kbyhzZWxmKToKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2Vy
Ll9pbm5lcl9ob29rZXhlYyA9IHNlbGYub2xkY2FsbAotCi0KLWNsYXNzIFBsdWdpbk1hbmFnZXIo
b2JqZWN0KToKLSAgICAiIiIgQ29yZSBQbHVnaW5tYW5hZ2VyIGNsYXNzIHdoaWNoIG1hbmFnZXMg
cmVnaXN0cmF0aW9uCi0gICAgb2YgcGx1Z2luIG9iamVjdHMgYW5kIDE6TiBob29rIGNhbGxpbmcu
Ci0KLSAgICBZb3UgY2FuIHJlZ2lzdGVyIG5ldyBob29rcyBieSBjYWxsaW5nIGBgYWRkX2hvb2tz
cGVjKG1vZHVsZV9vcl9jbGFzcylgYC4KLSAgICBZb3UgY2FuIHJlZ2lzdGVyIHBsdWdpbiBvYmpl
Y3RzICh3aGljaCBjb250YWluIGhvb2tzKSBieSBjYWxsaW5nCi0gICAgYGByZWdpc3RlcihwbHVn
aW4pYGAuICBUaGUgUGx1Z2lubWFuYWdlciBpcyBpbml0aWFsaXplZCB3aXRoIGEKLSAgICBwcmVm
aXggdGhhdCBpcyBzZWFyY2hlZCBmb3IgaW4gdGhlIG5hbWVzIG9mIHRoZSBkaWN0IG9mIHJlZ2lz
dGVyZWQKLSAgICBwbHVnaW4gb2JqZWN0cy4gIEFuIG9wdGlvbmFsIGV4Y2x1ZGVmdW5jIGFsbG93
cyB0byBibGFja2xpc3QgbmFtZXMgd2hpY2gKLSAgICBhcmUgbm90IGNvbnNpZGVyZWQgYXMgaG9v
a3MgZGVzcGl0ZSBhIG1hdGNoaW5nIHByZWZpeC4KLQotICAgIEZvciBkZWJ1Z2dpbmcgcHVycG9z
ZXMgeW91IGNhbiBjYWxsIGBgZW5hYmxlX3RyYWNpbmcoKWBgCi0gICAgd2hpY2ggd2lsbCBzdWJz
ZXF1ZW50bHkgc2VuZCBkZWJ1ZyBpbmZvcm1hdGlvbiB0byB0aGUgdHJhY2UgaGVscGVyLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2plY3RfbmFtZSwgaW1wbHByZWZpeD1O
b25lKToKLSAgICAgICAgIiIiIGlmIGltcGxwcmVmaXggaXMgZ2l2ZW4gaW1wbGVtZW50YXRpb24g
ZnVuY3Rpb25zCi0gICAgICAgIHdpbGwgYmUgcmVjb2duaXplZCBpZiB0aGVpciBuYW1lIG1hdGNo
ZXMgdGhlIGltcGxwcmVmaXguICIiIgotICAgICAgICBzZWxmLnByb2plY3RfbmFtZSA9IHByb2pl
Y3RfbmFtZQotICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbiA9IHt9Ci0gICAgICAgIHNlbGYuX3Bs
dWdpbjJob29rY2FsbGVycyA9IHt9Ci0gICAgICAgIHNlbGYuX3BsdWdpbl9kaXN0aW5mbyA9IFtd
Ci0gICAgICAgIHNlbGYudHJhY2UgPSBfVGFnVHJhY2VyKCkuZ2V0KCJwbHVnaW5tYW5hZ2UiKQot
ICAgICAgICBzZWxmLmhvb2sgPSBfSG9va1JlbGF5KHNlbGYudHJhY2Uucm9vdC5nZXQoImhvb2si
KSkKLSAgICAgICAgc2VsZi5faW1wbHByZWZpeCA9IGltcGxwcmVmaXgKLSAgICAgICAgc2VsZi5f
aW5uZXJfaG9va2V4ZWMgPSBsYW1iZGEgaG9vaywgbWV0aG9kcywga3dhcmdzOiBcCi0gICAgICAg
ICAgICBob29rLm11bHRpY2FsbCgKLSAgICAgICAgICAgICAgICBtZXRob2RzLCBrd2FyZ3MsCi0g
ICAgICAgICAgICAgICAgZmlyc3RyZXN1bHQ9aG9vay5zcGVjX29wdHMuZ2V0KCdmaXJzdHJlc3Vs
dCcpLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIF9ob29rZXhlYyhzZWxmLCBob29rLCBtZXRo
b2RzLCBrd2FyZ3MpOgotICAgICAgICAjIGNhbGxlZCBmcm9tIGFsbCBob29rY2FsbGVyIGluc3Rh
bmNlcy4KLSAgICAgICAgIyBlbmFibGVfdHJhY2luZyB3aWxsIHNldCBpdHMgb3duIHdyYXBwaW5n
IGZ1bmN0aW9uIGF0IHNlbGYuX2lubmVyX2hvb2tleGVjCi0gICAgICAgIHJldHVybiBzZWxmLl9p
bm5lcl9ob29rZXhlYyhob29rLCBtZXRob2RzLCBrd2FyZ3MpCi0KLSAgICBkZWYgcmVnaXN0ZXIo
c2VsZiwgcGx1Z2luLCBuYW1lPU5vbmUpOgotICAgICAgICAiIiIgUmVnaXN0ZXIgYSBwbHVnaW4g
YW5kIHJldHVybiBpdHMgY2Fub25pY2FsIG5hbWUgb3IgTm9uZSBpZiB0aGUgbmFtZQotICAgICAg
ICBpcyBibG9ja2VkIGZyb20gcmVnaXN0ZXJpbmcuICBSYWlzZSBhIFZhbHVlRXJyb3IgaWYgdGhl
IHBsdWdpbiBpcyBhbHJlYWR5Ci0gICAgICAgIHJlZ2lzdGVyZWQuICIiIgotICAgICAgICBwbHVn
aW5fbmFtZSA9IG5hbWUgb3Igc2VsZi5nZXRfY2Fub25pY2FsX25hbWUocGx1Z2luKQotCi0gICAg
ICAgIGlmIHBsdWdpbl9uYW1lIGluIHNlbGYuX25hbWUycGx1Z2luIG9yIHBsdWdpbiBpbiBzZWxm
Ll9wbHVnaW4yaG9va2NhbGxlcnM6Ci0gICAgICAgICAgICBpZiBzZWxmLl9uYW1lMnBsdWdpbi5n
ZXQocGx1Z2luX25hbWUsIC0xKSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJldHVybiAgIyBi
bG9ja2VkIHBsdWdpbiwgcmV0dXJuIE5vbmUgdG8gaW5kaWNhdGUgbm8gcmVnaXN0cmF0aW9uCi0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQbHVnaW4gYWxyZWFkeSByZWdpc3RlcmVkOiAl
cz0lc1xuJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsdWdpbl9uYW1lLCBw
bHVnaW4sIHNlbGYuX25hbWUycGx1Z2luKSkKLQotICAgICAgICAjIFhYWCBpZiBhbiBlcnJvciBo
YXBwZW5zIHdlIHNob3VsZCBtYWtlIHN1cmUgbm8gc3RhdGUgaGFzIGJlZW4KLSAgICAgICAgIyBj
aGFuZ2VkIGF0IHBvaW50IG9mIHJldHVybgotICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltwbHVn
aW5fbmFtZV0gPSBwbHVnaW4KLQotICAgICAgICAjIHJlZ2lzdGVyIG1hdGNoaW5nIGhvb2sgaW1w
bGVtZW50YXRpb25zIG9mIHRoZSBwbHVnaW4KLSAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxs
ZXJzW3BsdWdpbl0gPSBob29rY2FsbGVycyA9IFtdCi0gICAgICAgIGZvciBuYW1lIGluIGRpcihw
bHVnaW4pOgotICAgICAgICAgICAgaG9va2ltcGxfb3B0cyA9IHNlbGYucGFyc2VfaG9va2ltcGxf
b3B0cyhwbHVnaW4sIG5hbWUpCi0gICAgICAgICAgICBpZiBob29raW1wbF9vcHRzIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIG5vcm1hbGl6ZV9ob29raW1wbF9vcHRzKGhvb2tpbXBsX29w
dHMpCi0gICAgICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4sIG5hbWUpCi0gICAg
ICAgICAgICAgICAgaG9va2ltcGwgPSBIb29rSW1wbChwbHVnaW4sIHBsdWdpbl9uYW1lLCBtZXRo
b2QsIGhvb2tpbXBsX29wdHMpCi0gICAgICAgICAgICAgICAgaG9vayA9IGdldGF0dHIoc2VsZi5o
b29rLCBuYW1lLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIGhvb2sgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgaG9vayA9IF9Ib29rQ2FsbGVyKG5hbWUsIHNlbGYuX2hvb2tleGVjKQot
ICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgaG9vaykKLSAgICAg
ICAgICAgICAgICBlbGlmIGhvb2suaGFzX3NwZWMoKToKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fdmVyaWZ5X2hvb2soaG9vaywgaG9va2ltcGwpCi0gICAgICAgICAgICAgICAgICAgIGhvb2su
X21heWJlX2FwcGx5X2hpc3RvcnkoaG9va2ltcGwpCi0gICAgICAgICAgICAgICAgaG9vay5fYWRk
X2hvb2tpbXBsKGhvb2tpbXBsKQotICAgICAgICAgICAgICAgIGhvb2tjYWxsZXJzLmFwcGVuZCho
b29rKQotICAgICAgICByZXR1cm4gcGx1Z2luX25hbWUKLQotICAgIGRlZiBwYXJzZV9ob29raW1w
bF9vcHRzKHNlbGYsIHBsdWdpbiwgbmFtZSk6Ci0gICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1
Z2luLCBuYW1lKQotICAgICAgICBpZiBub3QgaW5zcGVjdC5pc3JvdXRpbmUobWV0aG9kKToKLSAg
ICAgICAgICAgIHJldHVybgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXMgPSBnZXRhdHRy
KG1ldGhvZCwgc2VsZi5wcm9qZWN0X25hbWUgKyAiX2ltcGwiLCBOb25lKQotICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgcmVzID0ge30KLSAgICAgICAgaWYgcmVzIGlzIG5v
dCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShyZXMsIGRpY3QpOgotICAgICAgICAgICAgIyBmYWxz
ZSBwb3NpdGl2ZQotICAgICAgICAgICAgcmVzID0gTm9uZQotICAgICAgICBlbGlmIHJlcyBpcyBO
b25lIGFuZCBzZWxmLl9pbXBscHJlZml4IGFuZCBuYW1lLnN0YXJ0c3dpdGgoc2VsZi5faW1wbHBy
ZWZpeCk6Ci0gICAgICAgICAgICByZXMgPSB7fQotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBk
ZWYgdW5yZWdpc3RlcihzZWxmLCBwbHVnaW49Tm9uZSwgbmFtZT1Ob25lKToKLSAgICAgICAgIiIi
IHVucmVnaXN0ZXIgYSBwbHVnaW4gb2JqZWN0IGFuZCBhbGwgaXRzIGNvbnRhaW5lZCBob29rIGlt
cGxlbWVudGF0aW9ucwotICAgICAgICBmcm9tIGludGVybmFsIGRhdGEgc3RydWN0dXJlcy4gIiIi
Ci0gICAgICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgIGFzc2VydCBwbHVnaW4gaXMg
bm90IE5vbmUsICJvbmUgb2YgbmFtZSBvciBwbHVnaW4gbmVlZHMgdG8gYmUgc3BlY2lmaWVkIgot
ICAgICAgICAgICAgbmFtZSA9IHNlbGYuZ2V0X25hbWUocGx1Z2luKQotCi0gICAgICAgIGlmIHBs
dWdpbiBpcyBOb25lOgotICAgICAgICAgICAgcGx1Z2luID0gc2VsZi5nZXRfcGx1Z2luKG5hbWUp
Ci0KLSAgICAgICAgIyBpZiBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXSA9PSBOb25lIHJlZ2lzdHJh
dGlvbiB3YXMgYmxvY2tlZDogaWdub3JlCi0gICAgICAgIGlmIHNlbGYuX25hbWUycGx1Z2luLmdl
dChuYW1lKToKLSAgICAgICAgICAgIGRlbCBzZWxmLl9uYW1lMnBsdWdpbltuYW1lXQotCi0gICAg
ICAgIGZvciBob29rY2FsbGVyIGluIHNlbGYuX3BsdWdpbjJob29rY2FsbGVycy5wb3AocGx1Z2lu
LCBbXSk6Ci0gICAgICAgICAgICBob29rY2FsbGVyLl9yZW1vdmVfcGx1Z2luKHBsdWdpbikKLQot
ICAgICAgICByZXR1cm4gcGx1Z2luCi0KLSAgICBkZWYgc2V0X2Jsb2NrZWQoc2VsZiwgbmFtZSk6
Ci0gICAgICAgICIiIiBibG9jayByZWdpc3RyYXRpb25zIG9mIHRoZSBnaXZlbiBuYW1lLCB1bnJl
Z2lzdGVyIGlmIGFscmVhZHkgcmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIHNlbGYudW5yZWdpc3Rl
cihuYW1lPW5hbWUpCi0gICAgICAgIHNlbGYuX25hbWUycGx1Z2luW25hbWVdID0gTm9uZQotCi0g
ICAgZGVmIGlzX2Jsb2NrZWQoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiByZXR1cm4gVHJ1ZSBp
ZiB0aGUgbmFtZSBibG9ncyByZWdpc3RlcmluZyBwbHVnaW5zIG9mIHRoYXQgbmFtZS4gIiIiCi0g
ICAgICAgIHJldHVybiBuYW1lIGluIHNlbGYuX25hbWUycGx1Z2luIGFuZCBzZWxmLl9uYW1lMnBs
dWdpbltuYW1lXSBpcyBOb25lCi0KLSAgICBkZWYgYWRkX2hvb2tzcGVjcyhzZWxmLCBtb2R1bGVf
b3JfY2xhc3MpOgotICAgICAgICAiIiIgYWRkIG5ldyBob29rIHNwZWNpZmljYXRpb25zIGRlZmlu
ZWQgaW4gdGhlIGdpdmVuIG1vZHVsZV9vcl9jbGFzcy4KLSAgICAgICAgRnVuY3Rpb25zIGFyZSBy
ZWNvZ25pemVkIGlmIHRoZXkgaGF2ZSBiZWVuIGRlY29yYXRlZCBhY2NvcmRpbmdseS4gIiIiCi0g
ICAgICAgIG5hbWVzID0gW10KLSAgICAgICAgZm9yIG5hbWUgaW4gZGlyKG1vZHVsZV9vcl9jbGFz
cyk6Ci0gICAgICAgICAgICBzcGVjX29wdHMgPSBzZWxmLnBhcnNlX2hvb2tzcGVjX29wdHMobW9k
dWxlX29yX2NsYXNzLCBuYW1lKQotICAgICAgICAgICAgaWYgc3BlY19vcHRzIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgIGhjID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIE5vbmUpCi0g
ICAgICAgICAgICAgICAgaWYgaGMgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgaGMgPSBf
SG9va0NhbGxlcihuYW1lLCBzZWxmLl9ob29rZXhlYywgbW9kdWxlX29yX2NsYXNzLCBzcGVjX29w
dHMpCi0gICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VsZi5ob29rLCBuYW1lLCBoYykKLSAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIHBsdWdpbnMgcmVnaXN0
ZXJlZCB0aGlzIGhvb2sgd2l0aG91dCBrbm93aW5nIHRoZSBzcGVjCi0gICAgICAgICAgICAgICAg
ICAgIGhjLnNldF9zcGVjaWZpY2F0aW9uKG1vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKQotICAg
ICAgICAgICAgICAgICAgICBmb3IgaG9va2Z1bmN0aW9uIGluIChoYy5fd3JhcHBlcnMgKyBoYy5f
bm9ud3JhcHBlcnMpOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2hvb2so
aGMsIGhvb2tmdW5jdGlvbikKLSAgICAgICAgICAgICAgICBuYW1lcy5hcHBlbmQobmFtZSkKLQot
ICAgICAgICBpZiBub3QgbmFtZXM6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkaWQg
bm90IGZpbmQgYW55ICVyIGhvb2tzIGluICVyIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChzZWxmLnByb2plY3RfbmFtZSwgbW9kdWxlX29yX2NsYXNzKSkKLQotICAgIGRlZiBwYXJz
ZV9ob29rc3BlY19vcHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6Ci0gICAgICAgIG1l
dGhvZCA9IGdldGF0dHIobW9kdWxlX29yX2NsYXNzLCBuYW1lKQotICAgICAgICByZXR1cm4gZ2V0
YXR0cihtZXRob2QsIHNlbGYucHJvamVjdF9uYW1lICsgIl9zcGVjIiwgTm9uZSkKLQotICAgIGRl
ZiBnZXRfcGx1Z2lucyhzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiB0aGUgc2V0IG9mIHJlZ2lz
dGVyZWQgcGx1Z2lucy4gIiIiCi0gICAgICAgIHJldHVybiBzZXQoc2VsZi5fcGx1Z2luMmhvb2tj
YWxsZXJzKQotCi0gICAgZGVmIGlzX3JlZ2lzdGVyZWQoc2VsZiwgcGx1Z2luKToKLSAgICAgICAg
IiIiIFJldHVybiBUcnVlIGlmIHRoZSBwbHVnaW4gaXMgYWxyZWFkeSByZWdpc3RlcmVkLiAiIiIK
LSAgICAgICAgcmV0dXJuIHBsdWdpbiBpbiBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMKLQotICAg
IGRlZiBnZXRfY2Fub25pY2FsX25hbWUoc2VsZiwgcGx1Z2luKToKLSAgICAgICAgIiIiIFJldHVy
biBjYW5vbmljYWwgbmFtZSBmb3IgYSBwbHVnaW4gb2JqZWN0LiBOb3RlIHRoYXQgYSBwbHVnaW4K
LSAgICAgICAgbWF5IGJlIHJlZ2lzdGVyZWQgdW5kZXIgYSBkaWZmZXJlbnQgbmFtZSB3aGljaCB3
YXMgc3BlY2lmaWVkCi0gICAgICAgIGJ5IHRoZSBjYWxsZXIgb2YgcmVnaXN0ZXIocGx1Z2luLCBu
YW1lKS4gVG8gb2J0YWluIHRoZSBuYW1lCi0gICAgICAgIG9mIGFuIHJlZ2lzdGVyZWQgcGx1Z2lu
IHVzZSBgYGdldF9uYW1lKHBsdWdpbilgYCBpbnN0ZWFkLiIiIgotICAgICAgICByZXR1cm4gZ2V0
YXR0cihwbHVnaW4sICJfX25hbWVfXyIsIE5vbmUpIG9yIHN0cihpZChwbHVnaW4pKQotCi0gICAg
ZGVmIGdldF9wbHVnaW4oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBSZXR1cm4gYSBwbHVnaW4g
b3IgTm9uZSBmb3IgdGhlIGdpdmVuIG5hbWUuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbmFt
ZTJwbHVnaW4uZ2V0KG5hbWUpCi0KLSAgICBkZWYgaGFzX3BsdWdpbihzZWxmLCBuYW1lKToKLSAg
ICAgICAgIiIiIFJldHVybiBUcnVlIGlmIGEgcGx1Z2luIHdpdGggdGhlIGdpdmVuIG5hbWUgaXMg
cmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmdldF9wbHVnaW4obmFtZSkgaXMg
bm90IE5vbmUKLQotICAgIGRlZiBnZXRfbmFtZShzZWxmLCBwbHVnaW4pOgotICAgICAgICAiIiIg
UmV0dXJuIG5hbWUgZm9yIHJlZ2lzdGVyZWQgcGx1Z2luIG9yIE5vbmUgaWYgbm90IHJlZ2lzdGVy
ZWQuICIiIgotICAgICAgICBmb3IgbmFtZSwgdmFsIGluIHNlbGYuX25hbWUycGx1Z2luLml0ZW1z
KCk6Ci0gICAgICAgICAgICBpZiBwbHVnaW4gPT0gdmFsOgotICAgICAgICAgICAgICAgIHJldHVy
biBuYW1lCi0KLSAgICBkZWYgX3ZlcmlmeV9ob29rKHNlbGYsIGhvb2ssIGhvb2tpbXBsKToKLSAg
ICAgICAgaWYgaG9vay5pc19oaXN0b3JpYygpIGFuZCBob29raW1wbC5ob29rd3JhcHBlcjoKLSAg
ICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKLSAgICAgICAgICAgICAgICAi
UGx1Z2luICVyXG5ob29rICVyXG5oaXN0b3JpYyBpbmNvbXBhdGlibGUgdG8gaG9va3dyYXBwZXIi
ICUKLSAgICAgICAgICAgICAgICAoaG9va2ltcGwucGx1Z2luX25hbWUsIGhvb2submFtZSkpCi0K
LSAgICAgICAgIyBwb3NpdGlvbmFsIGFyZyBjaGVja2luZwotICAgICAgICBub3RpbnNwZWMgPSBz
ZXQoaG9va2ltcGwuYXJnbmFtZXMpIC0gc2V0KGhvb2suYXJnbmFtZXMpCi0gICAgICAgIGlmIG5v
dGluc3BlYzoKLSAgICAgICAgICAgIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKLSAgICAg
ICAgICAgICAgICAiUGx1Z2luICVyIGZvciBob29rICVyXG5ob29raW1wbCBkZWZpbml0aW9uOiAl
c1xuIgotICAgICAgICAgICAgICAgICJBcmd1bWVudChzKSAlcyBhcmUgZGVjbGFyZWQgaW4gdGhl
IGhvb2tpbXBsIGJ1dCAiCi0gICAgICAgICAgICAgICAgImNhbiBub3QgYmUgZm91bmQgaW4gdGhl
IGhvb2tzcGVjIiAlCi0gICAgICAgICAgICAgICAgKGhvb2tpbXBsLnBsdWdpbl9uYW1lLCBob29r
Lm5hbWUsCi0gICAgICAgICAgICAgICAgIF9mb3JtYXRkZWYoaG9va2ltcGwuZnVuY3Rpb24pLCBu
b3RpbnNwZWMpCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgY2hlY2tfcGVuZGluZyhzZWxmKToK
LSAgICAgICAgIiIiIFZlcmlmeSB0aGF0IGFsbCBob29rcyB3aGljaCBoYXZlIG5vdCBiZWVuIHZl
cmlmaWVkIGFnYWluc3QKLSAgICAgICAgYSBob29rIHNwZWNpZmljYXRpb24gYXJlIG9wdGlvbmFs
LCBvdGhlcndpc2UgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yIiIiCi0gICAgICAgIGZvciBu
YW1lIGluIHNlbGYuaG9vay5fX2RpY3RfXzoKLSAgICAgICAgICAgIGlmIG5hbWVbMF0gIT0gIl8i
OgotICAgICAgICAgICAgICAgIGhvb2sgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkKLSAgICAg
ICAgICAgICAgICBpZiBub3QgaG9vay5oYXNfc3BlYygpOgotICAgICAgICAgICAgICAgICAgICBm
b3IgaG9va2ltcGwgaW4gKGhvb2suX3dyYXBwZXJzICsgaG9vay5fbm9ud3JhcHBlcnMpOgotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhvb2tpbXBsLm9wdGlvbmFsaG9vazoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmtub3duIGhvb2sgJXIgaW4gcGx1Z2luICVy
IiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLCBob29raW1wbC5wbHVn
aW4pKQotCi0gICAgZGVmIGxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cyhzZWxmLCBlbnRyeXBv
aW50X25hbWUpOgotICAgICAgICAiIiIgTG9hZCBtb2R1bGVzIGZyb20gcXVlcnlpbmcgdGhlIHNw
ZWNpZmllZCBzZXR1cHRvb2xzIGVudHJ5cG9pbnQgbmFtZS4KLSAgICAgICAgUmV0dXJuIHRoZSBu
dW1iZXIgb2YgbG9hZGVkIHBsdWdpbnMuICIiIgotICAgICAgICBmcm9tIHBrZ19yZXNvdXJjZXMg
aW1wb3J0IChpdGVyX2VudHJ5X3BvaW50cywgRGlzdHJpYnV0aW9uTm90Rm91bmQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25Db25mbGljdCkKLSAgICAgICAgZm9y
IGVwIGluIGl0ZXJfZW50cnlfcG9pbnRzKGVudHJ5cG9pbnRfbmFtZSk6Ci0gICAgICAgICAgICAj
IGlzIHRoZSBwbHVnaW4gcmVnaXN0ZXJlZCBvciBibG9ja2VkPwotICAgICAgICAgICAgaWYgc2Vs
Zi5nZXRfcGx1Z2luKGVwLm5hbWUpIG9yIHNlbGYuaXNfYmxvY2tlZChlcC5uYW1lKToKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBs
dWdpbiA9IGVwLmxvYWQoKQotICAgICAgICAgICAgZXhjZXB0IERpc3RyaWJ1dGlvbk5vdEZvdW5k
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBleGNlcHQgVmVyc2lvbkNv
bmZsaWN0IGFzIGU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlvbkVycm9y
KAotICAgICAgICAgICAgICAgICAgICAiUGx1Z2luICVyIGNvdWxkIG5vdCBiZSBsb2FkZWQ6ICVz
ISIgJSAoZXAubmFtZSwgZSkpCi0gICAgICAgICAgICBzZWxmLnJlZ2lzdGVyKHBsdWdpbiwgbmFt
ZT1lcC5uYW1lKQotICAgICAgICAgICAgc2VsZi5fcGx1Z2luX2Rpc3RpbmZvLmFwcGVuZCgocGx1
Z2luLCBlcC5kaXN0KSkKLSAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9wbHVnaW5fZGlzdGluZm8p
Ci0KLSAgICBkZWYgbGlzdF9wbHVnaW5fZGlzdGluZm8oc2VsZik6Ci0gICAgICAgICIiIiByZXR1
cm4gbGlzdCBvZiBkaXN0aW5mby9wbHVnaW4gdHVwbGVzIGZvciBhbGwgc2V0dXB0b29scyByZWdp
c3RlcmVkCi0gICAgICAgIHBsdWdpbnMuICIiIgotICAgICAgICByZXR1cm4gbGlzdChzZWxmLl9w
bHVnaW5fZGlzdGluZm8pCi0KLSAgICBkZWYgbGlzdF9uYW1lX3BsdWdpbihzZWxmKToKLSAgICAg
ICAgIiIiIHJldHVybiBsaXN0IG9mIG5hbWUvcGx1Z2luIHBhaXJzLiAiIiIKLSAgICAgICAgcmV0
dXJuIGxpc3Qoc2VsZi5fbmFtZTJwbHVnaW4uaXRlbXMoKSkKLQotICAgIGRlZiBnZXRfaG9va2Nh
bGxlcnMoc2VsZiwgcGx1Z2luKToKLSAgICAgICAgIiIiIGdldCBhbGwgaG9vayBjYWxsZXJzIGZv
ciB0aGUgc3BlY2lmaWVkIHBsdWdpbi4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9wbHVnaW4y
aG9va2NhbGxlcnMuZ2V0KHBsdWdpbikKLQotICAgIGRlZiBhZGRfaG9va2NhbGxfbW9uaXRvcmlu
ZyhzZWxmLCBiZWZvcmUsIGFmdGVyKToKLSAgICAgICAgIiIiIGFkZCBiZWZvcmUvYWZ0ZXIgdHJh
Y2luZyBmdW5jdGlvbnMgZm9yIGFsbCBob29rcwotICAgICAgICBhbmQgcmV0dXJuIGFuIHVuZG8g
ZnVuY3Rpb24gd2hpY2gsIHdoZW4gY2FsbGVkLAotICAgICAgICB3aWxsIHJlbW92ZSB0aGUgYWRk
ZWQgdHJhY2Vycy4KLQotICAgICAgICBgYGJlZm9yZShob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3
YXJncylgYCB3aWxsIGJlIGNhbGxlZCBhaGVhZAotICAgICAgICBvZiBhbGwgaG9vayBjYWxscyBh
bmQgcmVjZWl2ZSBhIGhvb2tjYWxsZXIgaW5zdGFuY2UsIGEgbGlzdAotICAgICAgICBvZiBIb29r
SW1wbCBpbnN0YW5jZXMgYW5kIHRoZSBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgdGhlIGhvb2sgY2Fs
bC4KLQotICAgICAgICBgYGFmdGVyKG91dGNvbWUsIGhvb2tfbmFtZSwgaG9va19pbXBscywga3dh
cmdzKWBgIHJlY2VpdmVzIHRoZQotICAgICAgICBzYW1lIGFyZ3VtZW50cyBhcyBgYGJlZm9yZWBg
IGJ1dCBhbHNvIGEgOnB5OmNsYXNzOmBfUmVzdWx0YGAgb2JqZWN0Ci0gICAgICAgIHdoaWNoIHJl
cHJlc2VudHMgdGhlIHJlc3VsdCBvZiB0aGUgb3ZlcmFsbCBob29rIGNhbGwuCi0gICAgICAgICIi
IgotICAgICAgICByZXR1cm4gX1RyYWNlZEhvb2tFeGVjdXRpb24oc2VsZiwgYmVmb3JlLCBhZnRl
cikudW5kbwotCi0gICAgZGVmIGVuYWJsZV90cmFjaW5nKHNlbGYpOgotICAgICAgICAiIiIgZW5h
YmxlIHRyYWNpbmcgb2YgaG9vayBjYWxscyBhbmQgcmV0dXJuIGFuIHVuZG8gZnVuY3Rpb24uICIi
IgotICAgICAgICBob29rdHJhY2UgPSBzZWxmLmhvb2suX3RyYWNlCi0KLSAgICAgICAgZGVmIGJl
Zm9yZShob29rX25hbWUsIG1ldGhvZHMsIGt3YXJncyk6Ci0gICAgICAgICAgICBob29rdHJhY2Uu
cm9vdC5pbmRlbnQgKz0gMQotICAgICAgICAgICAgaG9va3RyYWNlKGhvb2tfbmFtZSwga3dhcmdz
KQotCi0gICAgICAgIGRlZiBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIG1ldGhvZHMsIGt3YXJn
cyk6Ci0gICAgICAgICAgICBpZiBvdXRjb21lLmV4Y2luZm8gaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICBob29rdHJhY2UoImZpbmlzaCIsIGhvb2tfbmFtZSwgIi0tPiIsIG91dGNvbWUuZ2V0X3Jl
c3VsdCgpKQotICAgICAgICAgICAgaG9va3RyYWNlLnJvb3QuaW5kZW50IC09IDEKLQotICAgICAg
ICByZXR1cm4gc2VsZi5hZGRfaG9va2NhbGxfbW9uaXRvcmluZyhiZWZvcmUsIGFmdGVyKQotCi0g
ICAgZGVmIHN1YnNldF9ob29rX2NhbGxlcihzZWxmLCBuYW1lLCByZW1vdmVfcGx1Z2lucyk6Ci0g
ICAgICAgICIiIiBSZXR1cm4gYSBuZXcgX0hvb2tDYWxsZXIgaW5zdGFuY2UgZm9yIHRoZSBuYW1l
ZCBtZXRob2QKLSAgICAgICAgd2hpY2ggbWFuYWdlcyBjYWxscyB0byBhbGwgcmVnaXN0ZXJlZCBw
bHVnaW5zIGV4Y2VwdCB0aGUKLSAgICAgICAgb25lcyBmcm9tIHJlbW92ZV9wbHVnaW5zLiAiIiIK
LSAgICAgICAgb3JpZyA9IGdldGF0dHIoc2VsZi5ob29rLCBuYW1lKQotICAgICAgICBwbHVnaW5z
X3RvX3JlbW92ZSA9IFtwbHVnIGZvciBwbHVnIGluIHJlbW92ZV9wbHVnaW5zIGlmIGhhc2F0dHIo
cGx1ZywgbmFtZSldCi0gICAgICAgIGlmIHBsdWdpbnNfdG9fcmVtb3ZlOgotICAgICAgICAgICAg
aGMgPSBfSG9va0NhbGxlcihvcmlnLm5hbWUsIG9yaWcuX2hvb2tleGVjLCBvcmlnLl9zcGVjbW9k
dWxlX29yX2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnLnNwZWNfb3B0
cykKLSAgICAgICAgICAgIGZvciBob29raW1wbCBpbiAob3JpZy5fd3JhcHBlcnMgKyBvcmlnLl9u
b253cmFwcGVycyk6Ci0gICAgICAgICAgICAgICAgcGx1Z2luID0gaG9va2ltcGwucGx1Z2luCi0g
ICAgICAgICAgICAgICAgaWYgcGx1Z2luIG5vdCBpbiBwbHVnaW5zX3RvX3JlbW92ZToKLSAgICAg
ICAgICAgICAgICAgICAgaGMuX2FkZF9ob29raW1wbChob29raW1wbCkKLSAgICAgICAgICAgICAg
ICAgICAgIyB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhpcyBob29rIGNhbGxlciBzbyBpdAotICAg
ICAgICAgICAgICAgICAgICAjIGdldHMgcHJvcGVybHkgcmVtb3ZlZCBvbiBwbHVnaW4gdW5yZWdp
c3RyYXRpb24KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLnNl
dGRlZmF1bHQocGx1Z2luLCBbXSkuYXBwZW5kKGhjKQotICAgICAgICAgICAgcmV0dXJuIGhjCi0g
ICAgICAgIHJldHVybiBvcmlnCi0KLQotZGVmIHZhcm5hbWVzKGZ1bmMpOgotICAgICIiIlJldHVy
biB0dXBsZSBvZiBwb3NpdGlvbmFsIGFuZCBrZXl3cm9yZCBhcmd1bWVudCBuYW1lcyBmb3IgYSBm
dW5jdGlvbiwKLSAgICBtZXRob2QsIGNsYXNzIG9yIGNhbGxhYmxlLgotCi0gICAgSW4gY2FzZSBv
ZiBhIGNsYXNzLCBpdHMgYGBfX2luaXRfX2BgIG1ldGhvZCBpcyBjb25zaWRlcmVkLgotICAgIEZv
ciBtZXRob2RzIHRoZSBgYHNlbGZgYCBwYXJhbWV0ZXIgaXMgbm90IGluY2x1ZGVkLgotICAgICIi
IgotICAgIGNhY2hlID0gZ2V0YXR0cihmdW5jLCAiX19kaWN0X18iLCB7fSkKLSAgICB0cnk6Ci0g
ICAgICAgIHJldHVybiBjYWNoZVsiX3Zhcm5hbWVzIl0KLSAgICBleGNlcHQgS2V5RXJyb3I6Ci0g
ICAgICAgIHBhc3MKLQotICAgIGlmIGluc3BlY3QuaXNjbGFzcyhmdW5jKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgZnVuYyA9IGZ1bmMuX19pbml0X18KLSAgICAgICAgZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuICgpLCAoKQotICAgIGVsaWYgbm90IGluc3Bl
Y3QuaXNyb3V0aW5lKGZ1bmMpOiAgIyBjYWxsYWJsZSBvYmplY3Q/Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGZ1bmMgPSBnZXRhdHRyKGZ1bmMsICdfX2NhbGxfXycsIGZ1bmMpCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICByZXR1cm4gKCkKLQotICAgIHRyeTogICMg
ZnVuYyBNVVNUIGJlIGEgZnVuY3Rpb24gb3IgbWV0aG9kIGhlcmUgb3Igd2Ugd29uJ3QgcGFyc2Ug
YW55IGFyZ3MKLSAgICAgICAgc3BlYyA9IF9nZXRhcmdzcGVjKGZ1bmMpCi0gICAgZXhjZXB0IFR5
cGVFcnJvcjoKLSAgICAgICAgcmV0dXJuICgpLCAoKQotCi0gICAgYXJncywgZGVmYXVsdHMgPSB0
dXBsZShzcGVjLmFyZ3MpLCBzcGVjLmRlZmF1bHRzCi0gICAgaWYgZGVmYXVsdHM6Ci0gICAgICAg
IGluZGV4ID0gLWxlbihkZWZhdWx0cykKLSAgICAgICAgYXJncywgZGVmYXVsdHMgPSBhcmdzWzpp
bmRleF0sIHR1cGxlKGFyZ3NbaW5kZXg6XSkKLSAgICBlbHNlOgotICAgICAgICBkZWZhdWx0cyA9
ICgpCi0KLSAgICAjIHN0cmlwIGFueSBpbXBsaWNpdCBpbnN0YW5jZSBhcmcKLSAgICBpZiBhcmdz
OgotICAgICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKGZ1bmMpIG9yICgKLSAgICAgICAgICAgICcu
JyBpbiBnZXRhdHRyKGZ1bmMsICdfX3F1YWxuYW1lX18nLCAoKSkgYW5kIGFyZ3NbMF0gPT0gJ3Nl
bGYnCi0gICAgICAgICk6Ci0gICAgICAgICAgICBhcmdzID0gYXJnc1sxOl0KLQotICAgIGFzc2Vy
dCAic2VsZiIgbm90IGluIGFyZ3MgICMgYmVzdCBuYW1pbmcgcHJhY3Rpc2VzIGNoZWNrPwotICAg
IHRyeToKLSAgICAgICAgY2FjaGVbIl92YXJuYW1lcyJdID0gYXJncywgZGVmYXVsdHMKLSAgICBl
eGNlcHQgVHlwZUVycm9yOgotICAgICAgICBwYXNzCi0gICAgcmV0dXJuIGFyZ3MsIGRlZmF1bHRz
Ci0KLQotY2xhc3MgX0hvb2tSZWxheShvYmplY3QpOgotICAgICIiIiBob29rIGhvbGRlciBvYmpl
Y3QgZm9yIHBlcmZvcm1pbmcgMTpOIGhvb2sgY2FsbHMgd2hlcmUgTiBpcyB0aGUgbnVtYmVyCi0g
ICAgb2YgcmVnaXN0ZXJlZCBwbHVnaW5zLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgdHJhY2UpOgotICAgICAgICBzZWxmLl90cmFjZSA9IHRyYWNlCi0KLQotY2xhc3MgX0hv
b2tDYWxsZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgaG9va19leGVj
dXRlLCBzcGVjbW9kdWxlX29yX2NsYXNzPU5vbmUsCi0gICAgICAgICAgICAgICAgIHNwZWNfb3B0
cz1Ob25lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBzZWxmLl93cmFwcGVy
cyA9IFtdCi0gICAgICAgIHNlbGYuX25vbndyYXBwZXJzID0gW10KLSAgICAgICAgc2VsZi5faG9v
a2V4ZWMgPSBob29rX2V4ZWN1dGUKLSAgICAgICAgc2VsZi5fc3BlY21vZHVsZV9vcl9jbGFzcyA9
IE5vbmUKLSAgICAgICAgc2VsZi5hcmduYW1lcyA9IE5vbmUKLSAgICAgICAgc2VsZi5rd2FyZ25h
bWVzID0gTm9uZQotICAgICAgICBzZWxmLm11bHRpY2FsbCA9IF9tdWx0aWNhbGwKLSAgICAgICAg
c2VsZi5zcGVjX29wdHMgPSBzcGVjX29wdHMgb3Ige30KLSAgICAgICAgaWYgc3BlY21vZHVsZV9v
cl9jbGFzcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuc2V0X3NwZWNpZmljYXRpb24o
c3BlY21vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKQotCi0gICAgZGVmIGhhc19zcGVjKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fc3BlY21vZHVsZV9vcl9jbGFzcyBpcyBub3QgTm9uZQot
Ci0gICAgZGVmIHNldF9zcGVjaWZpY2F0aW9uKHNlbGYsIHNwZWNtb2R1bGVfb3JfY2xhc3MsIHNw
ZWNfb3B0cyk6Ci0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5oYXNfc3BlYygpCi0gICAgICAgIHNl
bGYuX3NwZWNtb2R1bGVfb3JfY2xhc3MgPSBzcGVjbW9kdWxlX29yX2NsYXNzCi0gICAgICAgIHNw
ZWNmdW5jID0gZ2V0YXR0cihzcGVjbW9kdWxlX29yX2NsYXNzLCBzZWxmLm5hbWUpCi0gICAgICAg
ICMgZ2V0IHNwZWMgYXJnIHNpZ25hdHVyZQotICAgICAgICBhcmduYW1lcywgc2VsZi5rd2FyZ25h
bWVzID0gdmFybmFtZXMoc3BlY2Z1bmMpCi0gICAgICAgIHNlbGYuYXJnbmFtZXMgPSBbIl9fbXVs
dGljYWxsX18iXSArIGxpc3QoYXJnbmFtZXMpCi0gICAgICAgIHNlbGYuc3BlY19vcHRzLnVwZGF0
ZShzcGVjX29wdHMpCi0gICAgICAgIGlmIHNwZWNfb3B0cy5nZXQoImhpc3RvcmljIik6Ci0gICAg
ICAgICAgICBzZWxmLl9jYWxsX2hpc3RvcnkgPSBbXQotCi0gICAgZGVmIGlzX2hpc3RvcmljKHNl
bGYpOgotICAgICAgICByZXR1cm4gaGFzYXR0cihzZWxmLCAiX2NhbGxfaGlzdG9yeSIpCi0KLSAg
ICBkZWYgX3JlbW92ZV9wbHVnaW4oc2VsZiwgcGx1Z2luKToKLSAgICAgICAgZGVmIHJlbW92ZSh3
cmFwcGVycyk6Ci0gICAgICAgICAgICBmb3IgaSwgbWV0aG9kIGluIGVudW1lcmF0ZSh3cmFwcGVy
cyk6Ci0gICAgICAgICAgICAgICAgaWYgbWV0aG9kLnBsdWdpbiA9PSBwbHVnaW46Ci0gICAgICAg
ICAgICAgICAgICAgIGRlbCB3cmFwcGVyc1tpXQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQotICAgICAgICBpZiByZW1vdmUoc2VsZi5fd3JhcHBlcnMpIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBpZiByZW1vdmUoc2VsZi5fbm9ud3JhcHBlcnMpIGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigicGx1Z2luICVyIG5vdCBmb3VuZCIgJSAocGx1Z2luLCkpCi0K
LSAgICBkZWYgX2FkZF9ob29raW1wbChzZWxmLCBob29raW1wbCk6Ci0gICAgICAgICIiIkEgYW4g
aW1wbGVtZW50YXRpb24gdG8gdGhlIGNhbGxiYWNrIGNoYWluLgotICAgICAgICAiIiIKLSAgICAg
ICAgaWYgaG9va2ltcGwuaG9va3dyYXBwZXI6Ci0gICAgICAgICAgICBtZXRob2RzID0gc2VsZi5f
d3JhcHBlcnMKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1ldGhvZHMgPSBzZWxmLl9ub253
cmFwcGVycwotCi0gICAgICAgIGlmIGhvb2tpbXBsLnRyeWxhc3Q6Ci0gICAgICAgICAgICBtZXRo
b2RzLmluc2VydCgwLCBob29raW1wbCkKLSAgICAgICAgZWxpZiBob29raW1wbC50cnlmaXJzdDoK
LSAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKGhvb2tpbXBsKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgIyBmaW5kIGxhc3Qgbm9uLXRyeWZpcnN0IG1ldGhvZAotICAgICAgICAgICAgaSA9
IGxlbihtZXRob2RzKSAtIDEKLSAgICAgICAgICAgIHdoaWxlIGkgPj0gMCBhbmQgbWV0aG9kc1tp
XS50cnlmaXJzdDoKLSAgICAgICAgICAgICAgICBpIC09IDEKLSAgICAgICAgICAgIG1ldGhvZHMu
aW5zZXJ0KGkgKyAxLCBob29raW1wbCkKLQotICAgICAgICBpZiAnX19tdWx0aWNhbGxfXycgaW4g
aG9va2ltcGwuYXJnbmFtZXM6Ci0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAg
ICAgICAgICJTdXBwb3J0IGZvciBfX211bHRpY2FsbF9fIGlzIG5vdyBkZXByZWNhdGVkIGFuZCB3
aWxsIGJlIgotICAgICAgICAgICAgICAgICJyZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2Uu
IiwKLSAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcKLSAgICAgICAgICAgICkKLSAg
ICAgICAgICAgIHNlbGYubXVsdGljYWxsID0gX2xlZ2FjeW11bHRpY2FsbAotCi0gICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxfSG9va0NhbGxlciAlcj4iICUgKHNlbGYu
bmFtZSwpCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAg
ICAgaWYgYXJnczoKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiaG9vayBjYWxsaW5nIHN1
cHBvcnRzIG9ubHkga2V5d29yZCBhcmd1bWVudHMiKQotICAgICAgICBhc3NlcnQgbm90IHNlbGYu
aXNfaGlzdG9yaWMoKQotICAgICAgICBpZiBzZWxmLmFyZ25hbWVzOgotICAgICAgICAgICAgbm90
aW5jYWxsID0gc2V0KHNlbGYuYXJnbmFtZXMpIC0gc2V0KFsnX19tdWx0aWNhbGxfXyddKSAtIHNl
dCgKLSAgICAgICAgICAgICAgICBrd2FyZ3Mua2V5cygpKQotICAgICAgICAgICAgaWYgbm90aW5j
YWxsOgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgICAg
ICJBcmd1bWVudChzKSB7fSB3aGljaCBhcmUgZGVjbGFyZWQgaW4gdGhlIGhvb2tzcGVjICIKLSAg
ICAgICAgICAgICAgICAgICAgImNhbiBub3QgYmUgZm91bmQgaW4gdGhpcyBob29rIGNhbGwiCi0g
ICAgICAgICAgICAgICAgICAgIC5mb3JtYXQodHVwbGUobm90aW5jYWxsKSksCi0gICAgICAgICAg
ICAgICAgICAgIHN0YWNrbGV2ZWw9MiwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgIHJldHVy
biBzZWxmLl9ob29rZXhlYyhzZWxmLCBzZWxmLl9ub253cmFwcGVycyArIHNlbGYuX3dyYXBwZXJz
LCBrd2FyZ3MpCi0KLSAgICBkZWYgY2FsbF9oaXN0b3JpYyhzZWxmLCBwcm9jPU5vbmUsIGt3YXJn
cz1Ob25lKToKLSAgICAgICAgIiIiIGNhbGwgdGhlIGhvb2sgd2l0aCBnaXZlbiBgYGt3YXJnc2Bg
IGZvciBhbGwgcmVnaXN0ZXJlZCBwbHVnaW5zIGFuZAotICAgICAgICBmb3IgYWxsIHBsdWdpbnMg
d2hpY2ggd2lsbCBiZSByZWdpc3RlcmVkIGFmdGVyd2FyZHMuCi0KLSAgICAgICAgSWYgYGBwcm9j
YGAgaXMgbm90IE5vbmUgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIGZvciBlYWNoIG5vbi1Ob25lIHJl
c3VsdAotICAgICAgICBvYnRhaW5lZCBmcm9tIGEgaG9vayBpbXBsZW1lbnRhdGlvbi4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHNlbGYuX2NhbGxfaGlzdG9yeS5hcHBlbmQoKGt3YXJncyBvciB7fSwg
cHJvYykpCi0gICAgICAgICMgaGlzdG9yaXppbmcgaG9va3MgZG9uJ3QgcmV0dXJuIHJlc3VsdHMK
LSAgICAgICAgcmVzID0gc2VsZi5faG9va2V4ZWMoc2VsZiwgc2VsZi5fbm9ud3JhcHBlcnMgKyBz
ZWxmLl93cmFwcGVycywga3dhcmdzKQotICAgICAgICBmb3IgeCBpbiByZXMgb3IgW106Ci0gICAg
ICAgICAgICBwcm9jKHgpCi0KLSAgICBkZWYgY2FsbF9leHRyYShzZWxmLCBtZXRob2RzLCBrd2Fy
Z3MpOgotICAgICAgICAiIiIgQ2FsbCB0aGUgaG9vayB3aXRoIHNvbWUgYWRkaXRpb25hbCB0ZW1w
b3JhcmlseSBwYXJ0aWNpcGF0aW5nCi0gICAgICAgIG1ldGhvZHMgdXNpbmcgdGhlIHNwZWNpZmll
ZCBrd2FyZ3MgYXMgY2FsbCBwYXJhbWV0ZXJzLiAiIiIKLSAgICAgICAgb2xkID0gbGlzdChzZWxm
Ll9ub253cmFwcGVycyksIGxpc3Qoc2VsZi5fd3JhcHBlcnMpCi0gICAgICAgIGZvciBtZXRob2Qg
aW4gbWV0aG9kczoKLSAgICAgICAgICAgIG9wdHMgPSBkaWN0KGhvb2t3cmFwcGVyPUZhbHNlLCB0
cnlsYXN0PUZhbHNlLCB0cnlmaXJzdD1GYWxzZSkKLSAgICAgICAgICAgIGhvb2tpbXBsID0gSG9v
a0ltcGwoTm9uZSwgIjx0ZW1wPiIsIG1ldGhvZCwgb3B0cykKLSAgICAgICAgICAgIHNlbGYuX2Fk
ZF9ob29raW1wbChob29raW1wbCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYoKiprd2FyZ3MpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9ub253cmFw
cGVycywgc2VsZi5fd3JhcHBlcnMgPSBvbGQKLQotICAgIGRlZiBfbWF5YmVfYXBwbHlfaGlzdG9y
eShzZWxmLCBtZXRob2QpOgotICAgICAgICAiIiJBcHBseSBjYWxsIGhpc3RvcnkgdG8gYSBuZXcg
aG9va2ltcGwgaWYgaXQgaXMgbWFya2VkIGFzIGhpc3RvcmljLgotICAgICAgICAiIiIKLSAgICAg
ICAgaWYgc2VsZi5pc19oaXN0b3JpYygpOgotICAgICAgICAgICAgZm9yIGt3YXJncywgcHJvYyBp
biBzZWxmLl9jYWxsX2hpc3Rvcnk6Ci0gICAgICAgICAgICAgICAgcmVzID0gc2VsZi5faG9va2V4
ZWMoc2VsZiwgW21ldGhvZF0sIGt3YXJncykKLSAgICAgICAgICAgICAgICBpZiByZXMgYW5kIHBy
b2MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHByb2MocmVzWzBdKQotCi0KLWNs
YXNzIEhvb2tJbXBsKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBsdWdpbiwgcGx1
Z2luX25hbWUsIGZ1bmN0aW9uLCBob29rX2ltcGxfb3B0cyk6Ci0gICAgICAgIHNlbGYuZnVuY3Rp
b24gPSBmdW5jdGlvbgotICAgICAgICBzZWxmLmFyZ25hbWVzLCBzZWxmLmt3YXJnbmFtZXMgPSB2
YXJuYW1lcyhzZWxmLmZ1bmN0aW9uKQotICAgICAgICBzZWxmLnBsdWdpbiA9IHBsdWdpbgotICAg
ICAgICBzZWxmLm9wdHMgPSBob29rX2ltcGxfb3B0cwotICAgICAgICBzZWxmLnBsdWdpbl9uYW1l
ID0gcGx1Z2luX25hbWUKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoaG9va19pbXBsX29w
dHMpCi0KLQotaWYgaGFzYXR0cihpbnNwZWN0LCAnZ2V0ZnVsbGFyZ3NwZWMnKToKLSAgICBkZWYg
X2dldGFyZ3NwZWMoZnVuYyk6Ci0gICAgICAgIHJldHVybiBpbnNwZWN0LmdldGZ1bGxhcmdzcGVj
KGZ1bmMpCi1lbHNlOgotICAgIGRlZiBfZ2V0YXJnc3BlYyhmdW5jKToKLSAgICAgICAgcmV0dXJu
IGluc3BlY3QuZ2V0YXJnc3BlYyhmdW5jKQotCi0KLWlmIGhhc2F0dHIoaW5zcGVjdCwgJ3NpZ25h
dHVyZScpOgotICAgIGRlZiBfZm9ybWF0ZGVmKGZ1bmMpOgotICAgICAgICByZXR1cm4gIiVzJXMi
ICUgKAotICAgICAgICAgICAgZnVuYy5fX25hbWVfXywKLSAgICAgICAgICAgIHN0cihpbnNwZWN0
LnNpZ25hdHVyZShmdW5jKSkKLSAgICAgICAgKQotZWxzZToKLSAgICBkZWYgX2Zvcm1hdGRlZihm
dW5jKToKLSAgICAgICAgcmV0dXJuICIlcyVzIiAlICgKLSAgICAgICAgICAgIGZ1bmMuX19uYW1l
X18sCi0gICAgICAgICAgICBpbnNwZWN0LmZvcm1hdGFyZ3NwZWMoKmluc3BlY3QuZ2V0YXJnc3Bl
YyhmdW5jKSkKLSAgICAgICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxl
cnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvY2FsbGVycy5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2ZmNjdiZWNmZmJjYjRjM2UwY2RjMmZlMWJkYjhiNjgzNGRiZDc2OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9w
bHVnZ3kvY2FsbGVycy5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwMSArMCwwIEBACi0nJycKLUNh
bGwgbG9vcCBtYWNoaW5lcnkKLScnJwotaW1wb3J0IHN5cwotaW1wb3J0IHdhcm5pbmdzCi0KLV9w
eTMgPSBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApCi0KLQotaWYgbm90IF9weTM6Ci0gICAgZXhl
YygiIiIKLWRlZiBfcmVyYWlzZShjbHMsIHZhbCwgdGIpOgotICAgIHJhaXNlIGNscywgdmFsLCB0
YgotIiIiKQotCi0KLWRlZiBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVyLCBtc2cpOgot
ICAgIGNvID0gd3JhcF9jb250cm9sbGVyLmdpX2NvZGUKLSAgICByYWlzZSBSdW50aW1lRXJyb3Io
IndyYXBfY29udHJvbGxlciBhdCAlciAlczolZCAlcyIgJQotICAgICAgICAgICAgICAgICAgICAg
ICAoY28uY29fbmFtZSwgY28uY29fZmlsZW5hbWUsIGNvLmNvX2ZpcnN0bGluZW5vLCBtc2cpKQot
Ci0KLWNsYXNzIEhvb2tDYWxsRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiIgSG9vayB3YXMgY2Fs
bGVkIHdyb25nbHkuICIiIgotCi0KLWNsYXNzIF9SZXN1bHQob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVzdWx0LCBleGNpbmZvKToKLSAgICAgICAgc2VsZi5fcmVzdWx0ID0gcmVz
dWx0Ci0gICAgICAgIHNlbGYuX2V4Y2luZm8gPSBleGNpbmZvCi0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgZXhjaW5mbyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2V4Y2luZm8KLQotICAg
IEBwcm9wZXJ0eQotICAgIGRlZiByZXN1bHQoc2VsZik6Ci0gICAgICAgICIiIkdldCB0aGUgcmVz
dWx0KHMpIGZvciB0aGlzIGhvb2sgY2FsbCAoREVQUkVDQVRFRCBpbiBmYXZvciBvZiBgYGdldF9y
ZXN1bHQoKWBgKS4iIiIKLSAgICAgICAgbXNnID0gJ1VzZSBnZXRfcmVzdWx0KCkgd2hpY2ggZm9y
Y2VzIGNvcnJlY3QgZXhjZXB0aW9uIGhhbmRsaW5nJwotICAgICAgICB3YXJuaW5ncy53YXJuKERl
cHJlY2F0aW9uV2FybmluZyhtc2cpLCBzdGFja2xldmVsPTIpCi0gICAgICAgIHJldHVybiBzZWxm
Ll9yZXN1bHQKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2NhbGwoY2xzLCBmdW5j
KToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIHJlc3VsdCA9IGV4
Y2luZm8gPSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlc3VsdCA9IGZ1bmMoKQot
ICAgICAgICBleGNlcHQgQmFzZUV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGV4Y2luZm8gPSBzeXMu
ZXhjX2luZm8oKQotCi0gICAgICAgIHJldHVybiBjbHMocmVzdWx0LCBleGNpbmZvKQotCi0gICAg
ZGVmIGZvcmNlX3Jlc3VsdChzZWxmLCByZXN1bHQpOgotICAgICAgICAiIiJGb3JjZSB0aGUgcmVz
dWx0KHMpIHRvIGBgcmVzdWx0YGAuCi0KLSAgICAgICAgSWYgdGhlIGhvb2sgd2FzIG1hcmtlZCBh
cyBhIGBgZmlyc3RyZXN1bHRgYCBhIHNpbmdsZSB2YWx1ZSBzaG91bGQKLSAgICAgICAgYmUgc2V0
IG90aGVyd2lzZSBzZXQgYSAobW9kaWZpZWQpIGxpc3Qgb2YgcmVzdWx0cy4gQW55IGV4Y2VwdGlv
bnMKLSAgICAgICAgZm91bmQgZHVyaW5nIGludm9jYXRpb24gd2lsbCBiZSBkZWxldGVkLgotICAg
ICAgICAiIiIKLSAgICAgICAgc2VsZi5fcmVzdWx0ID0gcmVzdWx0Ci0gICAgICAgIHNlbGYuX2V4
Y2luZm8gPSBOb25lCi0KLSAgICBkZWYgZ2V0X3Jlc3VsdChzZWxmKToKLSAgICAgICAgIiIiR2V0
IHRoZSByZXN1bHQocykgZm9yIHRoaXMgaG9vayBjYWxsLgotCi0gICAgICAgIElmIHRoZSBob29r
IHdhcyBtYXJrZWQgYXMgYSBgYGZpcnN0cmVzdWx0YGAgb25seSBhIHNpbmdsZSB2YWx1ZQotICAg
ICAgICB3aWxsIGJlIHJldHVybmVkIG90aGVyd2lzZSBhIGxpc3Qgb2YgcmVzdWx0cy4KLSAgICAg
ICAgIiIiCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBpZiBzZWxm
Ll9leGNpbmZvIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0Ci0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBleCA9IHNlbGYuX2V4Y2luZm8KLSAgICAgICAgICAgIGlm
IF9weTM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgZXhbMV0ud2l0aF90cmFjZWJhY2soZXhbMl0p
Ci0gICAgICAgICAgICBfcmVyYWlzZSgqZXgpICAjIG5vcWEKLQotCi1kZWYgX3dyYXBwZWRfY2Fs
bCh3cmFwX2NvbnRyb2xsZXIsIGZ1bmMpOgotICAgICIiIiBXcmFwIGNhbGxpbmcgdG8gYSBmdW5j
dGlvbiB3aXRoIGEgZ2VuZXJhdG9yIHdoaWNoIG5lZWRzIHRvIHlpZWxkCi0gICAgZXhhY3RseSBv
bmNlLiAgVGhlIHlpZWxkIHBvaW50IHdpbGwgdHJpZ2dlciBjYWxsaW5nIHRoZSB3cmFwcGVkIGZ1
bmN0aW9uCi0gICAgYW5kIHJldHVybiBpdHMgYGBfUmVzdWx0YGAgdG8gdGhlIHlpZWxkIHBvaW50
LiAgVGhlIGdlbmVyYXRvciB0aGVuIG5lZWRzCi0gICAgdG8gZmluaXNoIChyYWlzZSBTdG9wSXRl
cmF0aW9uKSBpbiBvcmRlciBmb3IgdGhlIHdyYXBwZWQgY2FsbCB0byBjb21wbGV0ZS4KLSAgICAi
IiIKLSAgICB0cnk6Ci0gICAgICAgIG5leHQod3JhcF9jb250cm9sbGVyKSAgICMgZmlyc3QgeWll
bGQKLSAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgX3JhaXNlX3dyYXBmYWlsKHdy
YXBfY29udHJvbGxlciwgImRpZCBub3QgeWllbGQiKQotICAgIGNhbGxfb3V0Y29tZSA9IF9SZXN1
bHQuZnJvbV9jYWxsKGZ1bmMpCi0gICAgdHJ5OgotICAgICAgICB3cmFwX2NvbnRyb2xsZXIuc2Vu
ZChjYWxsX291dGNvbWUpCi0gICAgICAgIF9yYWlzZV93cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIs
ICJoYXMgc2Vjb25kIHlpZWxkIikKLSAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAg
cGFzcwotICAgIHJldHVybiBjYWxsX291dGNvbWUuZ2V0X3Jlc3VsdCgpCi0KLQotY2xhc3MgX0xl
Z2FjeU11bHRpQ2FsbChvYmplY3QpOgotICAgICIiIiBleGVjdXRlIGEgY2FsbCBpbnRvIG11bHRp
cGxlIHB5dGhvbiBmdW5jdGlvbnMvbWV0aG9kcy4gIiIiCi0KLSAgICAjIFhYWCBub3RlIHRoYXQg
dGhlIF9fbXVsdGljYWxsX18gYXJndW1lbnQgaXMgc3VwcG9ydGVkIG9ubHkKLSAgICAjIGZvciBw
eXRlc3QgY29tcGF0aWJpbGl0eSByZWFzb25zLiAgSXQgd2FzIG5ldmVyIG9mZmljaWFsbHkKLSAg
ICAjIHN1cHBvcnRlZCB0aGVyZSBhbmQgaXMgZXhwbGljaXRlbHkgZGVwcmVjYXRlZCBzaW5jZSAy
LjgKLSAgICAjIHNvIHdlIGNhbiByZW1vdmUgaXQgc29vbiwgYWxsb3dpbmcgdG8gYXZvaWQgdGhl
IGJlbG93IHJlY3Vyc2lvbgotICAgICMgaW4gZXhlY3V0ZSgpIGFuZCBzaW1wbGlmeS9zcGVlZCB1
cCB0aGUgZXhlY3V0ZSBsb29wLgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvb2tfaW1wbHMs
IGt3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgotICAgICAgICBzZWxmLmhvb2tfaW1wbHMgPSBo
b29rX2ltcGxzCi0gICAgICAgIHNlbGYuY2FsbGVyX2t3YXJncyA9IGt3YXJncyAgIyBjb21lIGZy
b20gX0hvb2tDYWxsZXIuX19jYWxsX18oKQotICAgICAgICBzZWxmLmNhbGxlcl9rd2FyZ3NbIl9f
bXVsdGljYWxsX18iXSA9IHNlbGYKLSAgICAgICAgc2VsZi5maXJzdHJlc3VsdCA9IGZpcnN0cmVz
dWx0Ci0KLSAgICBkZWYgZXhlY3V0ZShzZWxmKToKLSAgICAgICAgY2FsbGVyX2t3YXJncyA9IHNl
bGYuY2FsbGVyX2t3YXJncwotICAgICAgICBzZWxmLnJlc3VsdHMgPSByZXN1bHRzID0gW10KLSAg
ICAgICAgZmlyc3RyZXN1bHQgPSBzZWxmLmZpcnN0cmVzdWx0Ci0KLSAgICAgICAgd2hpbGUgc2Vs
Zi5ob29rX2ltcGxzOgotICAgICAgICAgICAgaG9va19pbXBsID0gc2VsZi5ob29rX2ltcGxzLnBv
cCgpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgYXJncyA9IFtjYWxsZXJfa3dh
cmdzW2FyZ25hbWVdIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1lc10KLSAgICAgICAg
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBmb3IgYXJnbmFtZSBpbiBob29r
X2ltcGwuYXJnbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGNh
bGxlcl9rd2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBIb29rQ2FsbEVycm9y
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob29rIGNhbGwgbXVzdCBwcm92aWRlIGFy
Z3VtZW50ICVyIiAlIChhcmduYW1lLCkpCi0gICAgICAgICAgICBpZiBob29rX2ltcGwuaG9va3dy
YXBwZXI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF93cmFwcGVkX2NhbGwoaG9va19pbXBsLmZ1
bmN0aW9uKCphcmdzKSwgc2VsZi5leGVjdXRlKQotICAgICAgICAgICAgcmVzID0gaG9va19pbXBs
LmZ1bmN0aW9uKCphcmdzKQotICAgICAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIGlmIGZpcnN0cmVzdWx0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVz
Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVzKQotCi0gICAgICAgIGlmIG5vdCBm
aXJzdHJlc3VsdDoKLSAgICAgICAgICAgIHJldHVybiByZXN1bHRzCi0KLSAgICBkZWYgX19yZXBy
X18oc2VsZik6Ci0gICAgICAgIHN0YXR1cyA9ICIlZCBtZXRocyIgJSAobGVuKHNlbGYuaG9va19p
bXBscyksKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJyZXN1bHRzIik6Ci0gICAgICAgICAg
ICBzdGF0dXMgPSAoIiVkIHJlc3VsdHMsICIgJSBsZW4oc2VsZi5yZXN1bHRzKSkgKyBzdGF0dXMK
LSAgICAgICAgcmV0dXJuICI8X011bHRpQ2FsbCAlcywga3dhcmdzPSVyPiIgJSAoc3RhdHVzLCBz
ZWxmLmNhbGxlcl9rd2FyZ3MpCi0KLQotZGVmIF9sZWdhY3ltdWx0aWNhbGwoaG9va19pbXBscywg
Y2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgotICAgIHJldHVybiBfTGVnYWN5TXVs
dGlDYWxsKAotICAgICAgICBob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBmaXJzdHJlc3VsdD1m
aXJzdHJlc3VsdCkuZXhlY3V0ZSgpCi0KLQotZGVmIF9tdWx0aWNhbGwoaG9va19pbXBscywgY2Fs
bGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgotICAgICIiIkV4ZWN1dGUgYSBjYWxsIGlu
dG8gbXVsdGlwbGUgcHl0aG9uIGZ1bmN0aW9ucy9tZXRob2RzIGFuZCByZXR1cm4gdGhlCi0gICAg
cmVzdWx0KHMpLgotCi0gICAgYGBjYWxsZXJfa3dhcmdzYGAgY29tZXMgZnJvbSBfSG9va0NhbGxl
ci5fX2NhbGxfXygpLgotICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAg
IHJlc3VsdHMgPSBbXQotICAgIGV4Y2luZm8gPSBOb25lCi0gICAgdHJ5OiAgIyBydW4gaW1wbCBh
bmQgd3JhcHBlciBzZXR1cCBmdW5jdGlvbnMgaW4gYSBsb29wCi0gICAgICAgIHRlYXJkb3ducyA9
IFtdCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciBob29rX2ltcGwgaW4gcmV2ZXJzZWQo
aG9va19pbXBscyk6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBh
cmdzID0gW2NhbGxlcl9rd2FyZ3NbYXJnbmFtZV0gZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFy
Z25hbWVzXQotICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAg
ICAgICAgZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzOgotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJnczoKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByYWlzZSBIb29rQ2FsbEVycm9yKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIgJSAoYXJnbmFt
ZSwpKQotCi0gICAgICAgICAgICAgICAgaWYgaG9va19pbXBsLmhvb2t3cmFwcGVyOgotICAgICAg
ICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBnZW4gPSBob29rX2lt
cGwuZnVuY3Rpb24oKmFyZ3MpCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXh0KGdlbikgICAj
IGZpcnN0IHlpZWxkCi0gICAgICAgICAgICAgICAgICAgICAgICB0ZWFyZG93bnMuYXBwZW5kKGdl
bikKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBfcmFpc2Vfd3JhcGZhaWwoZ2VuLCAiZGlkIG5vdCB5aWVsZCIpCi0gICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmVzID0gaG9va19pbXBsLmZ1
bmN0aW9uKCphcmdzKQotICAgICAgICAgICAgICAgICAgICBpZiByZXMgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXMpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiBmaXJzdHJlc3VsdDogICMgaGFsdCBmdXJ0aGVyIGltcGwgY2FsbHMKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBleGNlcHQgQmFzZUV4Y2Vw
dGlvbjoKLSAgICAgICAgICAgIGV4Y2luZm8gPSBzeXMuZXhjX2luZm8oKQotICAgIGZpbmFsbHk6
Ci0gICAgICAgIGlmIGZpcnN0cmVzdWx0OiAgIyBmaXJzdCByZXN1bHQgaG9va3MgcmV0dXJuIGEg
c2luZ2xlIHZhbHVlCi0gICAgICAgICAgICBvdXRjb21lID0gX1Jlc3VsdChyZXN1bHRzWzBdIGlm
IHJlc3VsdHMgZWxzZSBOb25lLCBleGNpbmZvKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
b3V0Y29tZSA9IF9SZXN1bHQocmVzdWx0cywgZXhjaW5mbykKLQotICAgICAgICAjIHJ1biBhbGwg
d3JhcHBlciBwb3N0LXlpZWxkIGJsb2NrcwotICAgICAgICBmb3IgZ2VuIGluIHJldmVyc2VkKHRl
YXJkb3ducyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZ2VuLnNlbmQob3V0
Y29tZSkKLSAgICAgICAgICAgICAgICBfcmFpc2Vfd3JhcGZhaWwoZ2VuLCAiaGFzIHNlY29uZCB5
aWVsZCIpCi0gICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgICAgICAg
ICBwYXNzCi0KLSAgICAgICAgcmV0dXJuIG91dGNvbWUuZ2V0X3Jlc3VsdCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMGQ1YTA5Mzdk
ODJlNmUyMzdhNTZmMWYzYmNmMjE0ZGNlYzJlMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zY3JpcHRz
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZmI5YzdkYTA2
YWFlZDBhMDg3MzlhYjQzMTY5MzY2NmM1ZmM5ZTI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zY3Jp
cHRzL3JlbGVhc2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjM1NTkwZWE5Y2JjN2I5MGFjNmFmYWVmYzViNjBjMzg3
MjhhZTkyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3NyYy9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS9fdHJhY2luZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVn
Z3kvY2FsbGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvaG9va3MucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9zcmMvcGx1Z2d5L21hbmFnZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTZhMWJmYzI0ZjIyM2UwYzU4MTBkZTI2Mjll
NGRhMzI5NTgxYzRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyNiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNobWFyay5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rl
c3RfZGVwcmVjYXRpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RldGFpbHMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaGVscGVycy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvdGVzdF9ob29rY2FsbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2ludm9jYXRp
b25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90
ZXN0X3RyYWNlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDMxMDUzYWU2NDllYTM4MGVhYThjM2IyODU3NTE5MDkyYzM4ZTU4MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0NI
QU5HRUxPRy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9IT1dUT1JFTEVBU0UucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
TElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvUkVBRE1FLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L2FwcHZleW9yLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3B5cHJvamVjdC50b21s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5naXRhdHRyaWJ1dGVzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS8uZ2l0YXR0cmlidXRlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjQ2ODc5YzRkYWFjODJhYmU1NTQwOTBlNjBl
MTFmYzIyNTJmMzNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0YXR0cmlidXRlcwpA
QCAtMCwwICsxIEBACisqLmR1bXAgICBlb2w9bGYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLmdpdGln
bm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmIwZDQ1N2Q0OThjNTkyOGUx
ZDA4MTdiZjI0YTQ1ZDdmMDQ4MjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0aWdu
b3JlCkBAIC0wLDAgKzEsMTIgQEAKKworLmNhY2hlLworLnRveC8KK19fcHljYWNoZV9fLworCisq
LnB5YworKi5weW8KKworKi5lZ2ctaW5mbworLmVnZ3MvCisKK2Rpc3QvKgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS8uaGdpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5oZ2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDk3NmRh
NWQxNTMzNWM3OWQ0YjdiYTY0Zjk0MTk5Zjk1MmMxNjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS8uaGdpZ25vcmUKQEAgLTAsMCArMSwyOSBAQAorCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IGBoZ2ltcG9ydHN2bmAKK3N5bnRheDpnbG9iCisuc3ZuCisuaGdzdm4KKworIyBUaGVz
ZSBsaW5lcyBhcmUgc3VnZ2VzdGVkIGFjY29yZGluZyB0byB0aGUgc3ZuOmlnbm9yZSBwcm9wZXJ0
eQorIyBGZWVsIGZyZWUgdG8gZW5hYmxlIHRoZW0gYnkgdW5jb21tZW50aW5nIHRoZW0KK3N5bnRh
eDpnbG9iCisqLnB5YworKi5weW8KKyouc3dwCisqLmh0bWwKKyouY2xhc3MKKyoub3JpZworKn4K
KworZG9jL19idWlsZAorYnVpbGQvCitkaXN0LworKi5lZ2ctaW5mbworaXNzdWUvCitlbnYvCisz
cmRwYXJ0eS8KKy50b3gKK2xpYi8KK2Jpbi8KK2luY2x1ZGUvCitzcmMvCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5Ly5oZ3RhZ3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5oZ3RhZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ0ODA5NWJmNjQ3
N2MyNjE3MTAzYzVmYTRiYTEyNWEzN2FmOWVmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
LmhndGFncwpAQCAtMCwwICsxLDY4IEBACis1MmM2ZDllNzg3NzdhNWEzNGU4MTMxMjM5OTdkZmM2
MTRhMWE0NzY3IDEuMC4wYjMKKzFjN2FhYThjNjFmM2IwOTQ1OTIxYTlhY2M3YmViMTg0MjAxYWVk
NGIgMS4wLjBiNAorMWM3YWFhOGM2MWYzYjA5NDU5MjFhOWFjYzdiZWIxODQyMDFhZWQ0YiAxLjAu
MGI0CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEuMC4wYjQKKzAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMS4wLjBiNAorOGNkNmViOTFl
YmEzMTNiMDEyZDZlNTY4ZjM3ZDg0NGRjMDc1MWYyZSAxLjAuMGI0Cis4Y2Q2ZWI5MWViYTMxM2Iw
MTJkNmU1NjhmMzdkODQ0ZGMwNzUxZjJlIDEuMC4wYjQKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAgMS4wLjBiNAorMmNjMDUwN2YxMTdmZmU3MjFkZmY3ZWUwMjY2NDhj
ZmNlMDBlYzkyZiAxLjAuMGI2Cis4NmYxZTFiNmU0OWJmNTg4MmE4MDlmMTFlZGQxZGJiMDgxNjJj
ZGFkIDEuMC4wYjgKKzg2ZjFlMWI2ZTQ5YmY1ODgyYTgwOWYxMWVkZDFkYmIwODE2MmNkYWQgMS4w
LjBiOAorYzYzZjM1YzI2NmNiYjI2ZGFkNmI4N2I1ZTExNWQ2NTY4NWFkZjQ0OCAxLjAuMGI4Citj
NjNmMzVjMjY2Y2JiMjZkYWQ2Yjg3YjVlMTE1ZDY1Njg1YWRmNDQ4IDEuMC4wYjgKKzBlYWEwZmRm
MmJhMDE2M2NmNTM0ZGMyZWZmNGJhMmU1ZmM2NmMyNjEgMS4wLjBiOAorZTJhNjA2NTNjYjQ5MGFl
ZWQ4MWJiYmQ4M2MwNzBiOTk0MDFjMjExYyAxLjAuMGI5Cis1ZWEwY2RmNzg1NGMzZDQyNzhkMzZl
ZGE5NGEyYjY4NDgzYTBlMjExIDEuMC4wCis1ZWEwY2RmNzg1NGMzZDQyNzhkMzZlZGE5NGEyYjY4
NDgzYTBlMjExIDEuMC4wCis3YWNkZTM2MGQ5NGI2YTI2OTBjZTNkMDNmZjM5MzAxZGE4NGMwYTJi
IDEuMC4wCis2YmQyMjE5ODFhYzk5MTAzMDAyYzFjYjk0ZmVkZTQwMGQyM2E5NmExIDEuMC4xCis0
ODE2ZThiODA2MDJhM2ZkM2EwYTEyMDMzM2FkODVmYmU3ZDhiYWI0IDEuMC4yCis2MGM0NGJkYmYw
OTMyODVkYzY5ZDU0NjJkNGRiYjRhY2FkMzI1Y2E2IDEuMS4wCiszMTkxODdmY2RhNjY3MTRjNWVi
MTM1MzQ5MmJhYmVlYzNkM2M4MjZmIDEuMS4xCis0ZmM1MjEyZjc2MjZhNTZiOWViNjQzN2I1YzY3
M2Y1NmRkN2ViOTQyIDEuMi4wCitjMTQzYThjODg0MGExYzY4NTcwODkwYzhhYzYxNjViYmY5MmZk
M2M2IDEuMi4xCitlYWZkM2MyNTZlODczMmRmYjBhNGQ0OWQwNTFiNWI0MzM5ODU4OTI2IDEuMy4w
CitkNWVhY2YzOTBhZjc0NTUzMjI3MTIyYjg1ZTIwMzQ1ZDQ3YjJmOWU2IDEuMy4xCitkNWVhY2Yz
OTBhZjc0NTUzMjI3MTIyYjg1ZTIwMzQ1ZDQ3YjJmOWU2IDEuMy4xCis4YjhlN2MyNWExM2NmODYz
ZjAxYjJkZDk1NTk3ODI4NWFlOWRhZjZhIDEuMy4xCiszYmZmNDRiMTg4YTdlYzFhZjMyOGQ5Nzdi
OWQzOWI2NzU3YmIzOGRmIDEuMy4yCitjNTlkM2ZhODY4MWE1YjU5NjZiODM3NWIxNmZjY2Q2NGEz
YThkYmViIDEuMy4zCis3OWVmNjM3NzcwNTE4NGM1NTYzM2Q0NTY4MzJlZWEzMThmZWRjZjYxIDEu
My40Cis3OWVmNjM3NzcwNTE4NGM1NTYzM2Q0NTY4MzJlZWEzMThmZWRjZjYxIDEuMy40Cis5MGZm
ZmQzNTM3M2U5ZjEyNWFmMjMzZjc4YjE5NDE2ZjA5MzhkODQxIDEuMy40Cis1MzQ2YWI0MWIwNTlj
OTVhNDhjYmUxZThhN2JhZTk2Y2U2ZTBkYTI3IDEuNC4wCisxZjMxMjVjYmE3OTc2NTM4OTUyYmUy
NjhmMTA3YzFkMGMzNmM1Y2U4IDEuNC4xCiswNGFiMjJkYjRmZjczN2NmMzFlOTFkNzVhMGY1ZDcw
NzdmMzI0MTY3IDEuNC4yCis5OTUwYmY5ZDY4NGE5ODRkNTExNzk1MDEzNDIxYzg5YzVjZjg4YmVm
IDEuNC4zCitkOTk1MWUzYmRiYzc2NWU3MzgzNWFlMTMwMTJmNmEwNzRkMTNkOGJmIDEuNC40Citi
ODI3ZGQxNTZhMzY3NTNlMzJjN2YzZjE1Y2U4MmQ2ZmU5ZTM1NmM4IDEuNC42CitmMTU3MjZmOWU1
YTY3Y2M2MjIxYzQ5OWFmZmE0ODQwZTlkNTkxNzYzIDEuNC43CithYmZhYmQwN2ExZDMyOGYxM2M3
MzBlOGE1MGQ4MGQyZTQ3MGFmZDNiIDEuNC45Cis3ZjM3ZWUwYWZmOWJlNGI4MzlkNjc1OWNmZWUz
MzZmNjBlODM5M2E0IDEuNC4xMAorZmU0NTkzMjYzZWZhMTBlYTdiYTAxNGRiNmUzMzc5ZTBiODIz
NjhhMiAxLjQuMTEKK2YwN2FmMjVhMjY3ODZlNDgyNWI1MTcwZTE3YWQ2OTMyNDVjYjM0MjYgMS40
LjEyCitkMzczMGQ4NGJhN2VkYTkyZmQzNDY5YTNmNjNmZDZkOGNiMjJjOTc1IDEuNC4xMworMTJj
MWFlOGU3YzUzNDU3MjFlOWVjOWY4ZTI3YjFlMzZjMDdmNzRkYyAxLjQuMTQKKzEyYzFhZThlN2M1
MzQ1NzIxZTllYzlmOGUyN2IxZTM2YzA3Zjc0ZGMgMS40LjE0CiswMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEuNC4xNAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMCAxLjQuMTQKKzE0OTdlMmVmZDBmOGM3M2EwZTNkNTI5ZGViZjBjNDg5ZTRj
ZDZjYWIgMS40LjE0CitlMDY1MDE0YzFjZThhZDExMGEzODFlOWJhYWFhNWQ2NDdiYTdhYzZiIDEu
NC4xNQorZTllNWIzOGY1M2RjMzViMzVhYTFmOWVlOWE5YmU5YmJkMmQyYzNiMSAxLjQuMTYKK2M2
MDM1MDM5NDVmNTJiNzg1MjJkOTZhNDIzNjA1Y2JjOTUzMjM2ZDMgMS40LjE3CitjNTkyMDExMDVh
Mjk4MDFjYzg1OGViOTE2MGI3YTE5NzkxYjkxYTM1IDEuNC4xOAorMjg0Y2MxNzJlMjk0ZDQ4ZWRj
ODQwMDEyZTE0NTFjMzJjMzk2M2Q5MiAxLjQuMTkKK2EzZTA2MjZhYTBjNWFlY2YyNzEzNjdkYzc3
ZTQ3NmFiMjE2ZWEzYzggMS40LjIwCis1ZTQ4MDE2YzRhM2FmOGU3MzU4YTEyNjdkMzNkMDIxZTcx
NzY1YmVkIDEuNC4yMQorMDFhZTJjZmNjNjFjNGZjYjNhYTUwMzEzNDlhZGI1YjQ2N2MzMTAxOCAx
LjQuMjMKKzVmZmQ5ODJmNGRmZjYwYjU4OGYzMDljZDliZGM2MTAzNjU0NzI4MmEgMS40LjI0Citk
YzlmZmJjYWYxZjdkNzJlOTZiZTNmNjhjMTFkZWViYjdlNzE5M2M1IDEuNC4yNQorNmRlMWE0NGJm
NzVkZTdhZjRmY2FlOTQ3YzIzNWU5MDcyYmJkYmI5YSAxLjQuMjYKKzdkNjUwYmEyNjU3ODkwYTIy
NTNjOGM0YTgzZjE3MGZlYmViZDkwZmEgMS40LjI3Cis3ZDY1MGJhMjY1Nzg5MGEyMjUzYzhjNGE4
M2YxNzBmZWJlYmQ5MGZhIDEuNC4yNworMTgxMDAwM2RlYzYzZGQxYjUwNmEyMzg0OTg2MWZmZmE1
YmMzYmExMyAxLjQuMjcKK2JhMDg3MDZmMDhkZGVhMWI3N2E0MjZmMDBkZmUyYmRjMjQ0MzQ1ZTgg
MS40LjI4Cis0ZTgwNTRhZGE2M2YzMzI3YmNmNzU5YWU3Y2QzNmM3Yzg2NTJiYzliIDEuNC4yOQor
MzY2YWIzNDY2MTBjNmRlOGFhYTc2MTdlMjQwMTE3OTRiNDAyMzZjNiAxLjQuMzAKKzY1NzM4MGU0
MzlmOWI3ZTA0OTE4Y2IxNjJjYjJlNDYzODgyNDRiNDIgMS40LjMxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5Ly50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTdjNTlk
MTRiNzA3MzliZGMwNDIyNTNiNTNjMTMwZDk3NzI5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS8udHJhdmlzLnltbApAQCAtMCwwICsxLDI3IEBACitzdWRvOiBmYWxzZQorbGFuZ3VhZ2U6
IHB5dGhvbgorcHl0aG9uOgorLSAnMi43JworLSAnMy40JworLSAnMy41JworLSAnMy42JworLSAn
cHlweS01LjQnCitlbnY6CistIERFUFM9InB5dGVzdH49Mi45LjAiCistIERFUFM9InB5dGVzdH49
My4wLjAiCisjLSBERVBTPSJweXRlc3R+PTMuMS4wIgorCittYXRyaXg6CisKKyAgaW5jbHVkZToK
KyAgLSBweXRob246ICcyLjcnCisgICAgIyB1c2luZyBhIGRpZmZlcmVudCBvcHRpb24gZHVlIHRv
IHB5dGVzdC1hZGRvcHRzIHB5dGVzdGVyIGlzc3VlcworICAgIGVudjogUFlURVNUX1hBRERPUFRT
PSItbiAzIC0tcnVuc2xvd3Rlc3RzIiBERVBTPSJweXRlc3R+PTMuMC4wIHB5dGVzdC14ZGlzdCIK
KyAgYWxsb3dfZmFpbHVyZXM6CisgIC0gcHl0aG9uOiAncHlweS01LjQnCitpbnN0YWxsOgorLSBw
aXAgaW5zdGFsbCAtVSBzZXR1cHRvb2xzIHNldHVwdG9vbHNfc2NtCistIHBpcCBpbnN0YWxsICRE
RVBTCistIHBpcCBpbnN0YWxsIC1VIC4gLS1mb3JjZS1yZWluc3RhbGwKK3NjcmlwdDoKKy0gcHku
dGVzdCAtLWxzb2YgJFBZVEVTVF9YQURET1BUUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9DSEFOR0VM
T0cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L0NIQU5HRUxPRwppbmRleCA3ZTdiMDFiMGI5ZTNjMmIwMmQzNDBlYzMyMGUy
ZmQxYzg2OGNkN2NhLi5jMTE1ZTA3MzM2MTcyMWVjM2QwYTAwNzVmZDA4NjgxZWY2MzI2NzgxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L0NIQU5HRUxPRworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0NIQU5HRUxPRwpAQCAt
MSwzICsxLDQyIEBACisyMDIyLTAyLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gKE9PUFMhKS4KKyAgICAg
ICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogLmdpdGF0dHJpYnV0ZXM6IEFkZGVkLgorICAgICAgICAq
IC5naXRpZ25vcmU6IEFkZGVkLgorICAgICAgICAqIC5oZ2lnbm9yZTogQWRkZWQuCisgICAgICAg
ICogLmhndGFnczogQWRkZWQuCisgICAgICAgICogLnRyYXZpcy55bWw6IEFkZGVkLgorICAgICAg
ICAqIGJlbmNoL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIGRvYy9fdGVtcGxh
dGVzL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS93M2Mt
aW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBkb2MvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBkb2MvaW1nL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgor
ICAgICAgICAqIGRvYy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBweS9fY29k
ZS93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBweS9faW8vdzNjLWltcG9ydC5s
b2c6IFJlbW92ZWQuCisgICAgICAgICogcHkvX2xvZy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4K
KyAgICAgICAgKiBweS9fcGF0aC93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
eS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBweS9fdmVuZG9y
ZWRfcGFja2FnZXMvX19pbml0X18ucHk6CisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2FwaXBrZy0xLjQuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAq
IHB5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3czYy1pbXBv
cnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy93M2MtaW1w
b3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBweS93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4K
KyAgICAgICAgKiB0YXNrcy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0
aW5nL2NvZGUvdzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogdGVzdGluZy9pb18v
dzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogdGVzdGluZy9sb2cvX19pbml0X18u
cHk6CisgICAgICAgICogdGVzdGluZy9sb2cvdzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAg
ICAgICogdGVzdGluZy9wYXRoL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHRl
c3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5n
L3Jvb3QvdzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogdGVzdGluZy93M2MtaW1w
b3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiB3M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKwog
MS41LjIKID09PT09CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2JlbmNoL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmOGZhZGYwMmY0N2M2ZTJjMWUzMTQ2MWVkNWY4YzgzYTc4ZGZlZTJjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L2JlbmNoL2xvY2FscGF0aC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvX3RlbXBsYXRlcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1OTVmYjVlMjQ5Mzc2NjU0NDVkM2JmOWUyMDEy
M2EwMWYwN2E1MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190ZW1wbGF0ZXMvbGF5b3V0Lmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUzMjIwOWM2YTI5ZTY0NWUwMzJlMGQ0YjFmMjdlODI2NjZjZjk4ZjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3Vu
Y2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTAuOS4wLnR4dAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMC45LjIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0x
LjAuMC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4xLnR4dAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZS0xLjEuMC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMS4xLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjAudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjIuMS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMy4wLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjEudHh0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuMy4zLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjQu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjQuMC50eHQKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4xLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2VzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvZG9jL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGY3MWRjZjJjMjBjM2M5NmJkNGU5ZjhhYjgyNzQ2Yjc0NWQ1MDc0MGMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhh
bXBsZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VuaHRtbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUv
Z2VuaHRtbGNzcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VueG1sLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9pbWcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlODlhNjZlODBkNmVlM2E1
NWRiYjVkZGM0MGE4ZWQzOTBjMDFkZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW1nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW1nL3B5bGliLnBuZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNhZjA1NWJmODRhZTcx
NDgyYTBiYmQwNDQyMThlYjQ5NzUyOWQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDMxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL01ha2VmaWxlCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvY2hhbmdlbG9nLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2NvZGUudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
Y29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Rvd25sb2FkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9mYXEudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvaW5kZXgudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW5zdGFsbC50eHQKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9pby50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9saW5rcy5pbmMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9sb2cu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvbWlzYy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9wYXRoLnR4dAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL3N0eWxlLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3htbC50eHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmExYWQyY2VhNmJlODhmNWVkYTIx
Y2FkZjAxMGI1NDU0M2I3ODExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ubmV3LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fYXNz
ZXJ0aW9ub2xkLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fcHkydHJhY2ViYWNrLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fY29kZS9hc3NlcnRpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL2NvZGUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19jb2RlL3NvdXJjZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMGU0NDM5NzM2MDk4YTVlNzVlOTU5MzkxZDBmM2Y1MjhkN2UzNTg0Mi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L19pby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2lvL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vY2FwdHVyZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2lvL3NhZmVyZXByLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vdGVybWluYWx3
cml0ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX2xvZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjcyYjI0MmVkZDdmMzMyMzZmNzI4Yzc2ZDMwZWJhYmZhZjNjZDM4YS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L19sb2cvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvbG9nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fbG9nL3dhcm5pbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4NGVjMmY5MjNmYWRhOWZhMGIyZmI1OGRlMzE5M2NlYjNhZDI5ZTk1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
X3BhdGgvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L19wYXRoL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9jYWNo
ZXV0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2NvbW1vbi5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgv
bG9jYWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3N2bnVybC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgv
c3Zud2MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19wcm9jZXNzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5YTU0NTY3MGYyZTk4ZmQwOThmMDIzYWU5NjFlMjdlMDQ2ZjhjNDFiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3By
b2Nlc3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vz
cy9jbWRleGVjLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9mb3JrZWRmdW5jLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fcHJvY2Vzcy9raWxscHJvYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9y
ZWRfcGFja2FnZXMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9f
X2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAy
Li5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9k
dWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzc2ZWZjNzgxYzllOTA2
YTEwZjJmZWNmNTFlNDJmMzFkZmY5MDgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQu
ZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWlu
Zm8vREVTQ1JJUFRJT04ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtn
LTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMv
YXBpcGtnLTEuNC5kaXN0LWluZm8vTUVUQURBVEEKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9SRUNPUkQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9XSEVFTAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVk
X3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL21ldGFkYXRhLmpzb24KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAu
ZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMv
aW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTZkZmVhZGRlMGM2MjJjZjVhZmM0M2Q1MzFkY2QxNzU4NDQzM2JkMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
dmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9ERVNDUklQVElPTi5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1p
bmZvL0lOU1RBTExFUgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0x
LjAuMC5kaXN0LWluZm8vTUVUQURBVEEKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9p
bmljb25maWctMS4wLjAuZGlzdC1pbmZvL1JFQ09SRAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3Bh
Y2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vV0hFRUwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5k
b3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL21ldGFkYXRhLmpzb24KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3Rv
cF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyNzcyYTc5ZDAzMTQzMzQwNDBkMDdl
ZDI0NWE2YWMyMWVhODhiZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3Jl
ZF9wYWNrYWdlcy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2Fw
aXBrZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0MmEzMGNkMDBkZmMxN2I2NGY3
Yjc1ZmI0MjE1OGZiOGFmOGU0NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L19fbWV0YWluZm8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19idWlsdGluLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fZXJy
b3IucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19zdGQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L194bWxnZW4ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3MvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rhc2tzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4ZThkMjQyZjU4NDcyZTlmZDBhMDhmMjY1NzFiYjM0Nzk2MGRjYTVlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3MvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rhc2tzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy92ZW5kb3JpbmcucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2NvZGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyYzM4
NDkxOWFiMWJkOWY3NzU1NzAxMzA5NjJkNzNhODg5ODExNDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvY29kZS90ZXN0X2Fzc2VydGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3Rf
Y29kZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcv
aW9fL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdjMzZjMWY4NWRhMmJiNDk0OGIwMzYzZmRl
NzQ0ZGRkZDFlOTcxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy9fX2luaXRfXy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF9jYXB0dXJlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lv
Xy90ZXN0X3NhZmVyZXByLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0X3Rlcm1pbmFsd3Jp
dGVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL2xvZy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQz
ZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1
MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL19faW5pdF9fLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUg
aXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVs
ZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL2xvZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMGNhNTI4MzM4YzFlOTlhNWU3ZWIz
ZDI1YmUxMmFhNDlmNWYzZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3RfbG9nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xv
Zy90ZXN0X3dhcm5pbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2NmQ3YjE3ODAyZTI5MzEyNmZhMjQ0OWMzZWFiNjg1OGRm
OWM0YjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC9jb21tb24ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvcGF0aC9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3JlcG90ZXN0
LmR1bXAKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC9zdm50ZXN0YmFzZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9wYXRoL3Rlc3RfY2FjaGV1dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9s
b2NhbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rlc3Rfc3ZuYXV0aC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9wYXRoL3Rlc3Rfc3ZudXJsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9z
dm53Yy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNjMxZjg5ZTRhY2ZlZTM2YWUyM2EwZGI2YzM2MzgxYzUzYjYyNjIy
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9jbWRleGVjLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3By
b2Nlc3MvdGVzdF9mb3JrZWRmdW5jLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9r
aWxscHJvYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmMzMmU1NTQ1MGJiYTIzM2UxNmUwYmRmMjgzNTdiYjhmZTE4YzQzOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL3Jvb3QvdGVzdF9idWlsdGluLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9lcnJv
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfcHlfaW1wb3J0cy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9yb290L3Rlc3Rfc3RkLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF94bWxn
ZW4ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWFlYjk0NGY3NDJjNDA2YzUwYzljYWEzZTdkMzIwODI0Y2I5ZjAxMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTU3
ZDI5YWI3ZjIzZTg4M2NmNzViYTlhZTIyMzllZGU4MTZhODg1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0FVVEhPUlMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L0NIQU5HRUxPRwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvTUFOSUZFU1QuaW4KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2FwcHZleW9yLnltbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvY29uZnRl
c3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rv
eC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdn
LWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3luY2lv
LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
ZDA0NGE4ZTZkOGIxMDMwOTVjZmE4OTFkN2JkMzVmY2U0NjI1YzBlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0
X2FzeW5jaW8uZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3luY2lvLmVnZy1p
bmZvL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby5lZ2ctaW5m
by9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdnLWlu
Zm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3lu
Y2lvLmVnZy1pbmZvL2VudHJ5X3BvaW50cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVz
dF9hc3luY2lvLmVnZy1pbmZvL3JlcXVpcmVzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0
ZXN0X2FzeW5jaW8uZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFz
eW5jaW8vcHl0ZXN0X2FzeW5jaW8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVhMGYxOWY2YTFkZGYwNmQ5OGI5YjQyY2YzNzA3ODJkZTczNzQ0ZTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5
bmNpby9weXRlc3RfYXN5bmNpby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8vX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3luY2lvL3BsdWdpbi5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0LWFzeW5jaW8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNkYTAyYjEwZjI0YWY1YzdlZTQwM2Q3OGJkNWE5M2FhNzZjMzc4MjMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0LWFzeW5jaW8vTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vUEtHLUlORk8KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC1hc3luY2lvL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3NldHVw
LmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5jb3ZlcmFnZXJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlh
YjM3NjQzMzc3MTg1ZTllNmVjZDFiMDgwZGRkMmJmYzBjMjZlZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5jb3ZlcmFnZXJjCkBAIC0wLDAgKzEsMzAgQEAKK1tydW5dCitpbmNsdWRl
ID0KKyAgc3JjLyoKKyAgdGVzdGluZy8qCisgICovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9f
cHl0ZXN0LyoKKyAgKi9saWIvcHl0aG9uKi9zaXRlLXBhY2thZ2VzL3B5dGVzdC5weQorICAqL3B5
cHkqL3NpdGUtcGFja2FnZXMvX3B5dGVzdC8qCisgICovcHlweSovc2l0ZS1wYWNrYWdlcy9weXRl
c3QucHkKKyAgKlxMaWJcc2l0ZS1wYWNrYWdlc1xfcHl0ZXN0XCoKKyAgKlxMaWJcc2l0ZS1wYWNr
YWdlc1xweXRlc3QucHkKK3BhcmFsbGVsID0gMQorYnJhbmNoID0gMQorCitbcGF0aHNdCitzb3Vy
Y2UgPSBzcmMvCisgICovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy8KKyAgKi9weXB5Ki9zaXRl
LXBhY2thZ2VzLworICAqXExpYlxzaXRlLXBhY2thZ2VzXAorCitbcmVwb3J0XQorc2tpcF9jb3Zl
cmVkID0gVHJ1ZQorc2hvd19taXNzaW5nID0gVHJ1ZQorZXhjbHVkZV9saW5lcyA9CisgICAgXCNc
cypwcmFnbWE6IG5vIGNvdmVyCisgICAgXlxzKnJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3JcYgor
ICAgIF5ccypyZXR1cm4gTm90SW1wbGVtZW50ZWRcYgorICAgIF5ccyphc3NlcnQgRmFsc2UoLHwk
KQorCisgICAgXlxzKmlmIFRZUEVfQ0hFQ0tJTkc6CisgICAgXlxzKkBvdmVybG9hZCggfCQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0YXR0cmlidXRlcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRh
dHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMWM2NmRjMWU5MTU0MGVlOTkxMzQzYmU5YWJhNTE4YTk5
MWI1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0YXR0cmlidXRlcwpAQCAt
MCwwICsxIEBACisqLmJhdCAgdGV4dCBlb2w9Y3JsZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
LmdpdGJsYW1laWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGJsYW1laWdub3JlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBjYjI5OGIwMjRkM2E1YTYxMWNlNTgxNDYwZTc4OGE2YTYzZjY0NzAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8uZ2l0YmxhbWVpZ25vcmUKQEAgLTAsMCArMSwyOCBAQAorIyBMaXN0
IG9mIHJldmlzaW9ucyB0aGF0IGNhbiBiZSBpZ25vcmVkIHdpdGggZ2l0LWJsYW1lKDEpLgorIwor
IyBTZWUgYGJsYW1lLmlnbm9yZVJldnNGaWxlYCBpbiBnaXQtY29uZmlnKDEpIHRvIGVuYWJsZSBp
dCBieSBkZWZhdWx0LCBvcgorIyB1c2UgaXQgd2l0aCBgLS1pZ25vcmUtcmV2cy1maWxlYCBtYW51
YWxseSB3aXRoIGdpdC1ibGFtZS4KKyMKKyMgVG8gImluc3RhbGwiIGl0OgorIworIyAgIGdpdCBj
b25maWcgLS1sb2NhbCBibGFtZS5pZ25vcmVSZXZzRmlsZSAuZ2l0YmxhbWVpZ25vcmUKKworIyBy
dW4gYmxhY2sKKzcwM2U0YjExYmE3NjE3MWVjY2QzZjEzZTcyM2M0N2I4MTBkZWQ3ZWYKKyMgc3dp
dGNoZWQgdG8gc3JjIGxheW91dAorZWFhODgyZjNkNTM0MDk1NmJlYjE3NmFhMTc1M2UwN2UzZjNm
MjE5MAorIyBwcmUtY29tbWl0IHJ1biBweXVwZ3JhZGUgLS1hbGwtZmlsZXMKK2E5MWZlMWZlZGRi
ZGVkNTM1YTQzMjJhYjg1NDQyOWUzYTM5NjFmYjQKKyMgbW92ZSBub2RlIGJhc2UgY2xhc3NlcyBm
cm9tIG1haW4gdG8gbm9kZXMKK2FmYzYwN2NmZDgxNDU4ZDRlNGYzYjFmM2NmOGNjOTMxYjkzMzkw
N2UKKyMgWz9dIHNwbGl0IG1vc3QgZml4dHVyZSByZWxhdGVkIGNvZGUgaW50byBvd24gcGx1Z2lu
Cis4YzQ5NTYxNDcwNzA4NzYxZjczMjE1MDRmNWU4MzQzODExYmU4N2FjCisjIHJ1biBweXVwZ3Jh
ZGUKKzlhYWNiNDYzNWU4MWVkZDZlY2YyODFkNGY2YzBjZmM4ZTk0YWIzMDEKKyMgcnVuIGJsYWNr
ZW4tZG9jcworNWY5NWRjZTk1NjAyOTIxYTcwYmZiYzdkOGRlMmY3NzEyYzVlNDUwNQorIyByYW4g
cHl1cGdyYWRlLWRvY3MgYWdhaW4KKzc1ZDBiODk5YmJiNTZkNjg0OWU5ZDY5ZDgzYTk0MjZlZDNm
NDNmOGIKKworIyBtb3ZlIGFyZ3VtZW50IHBhcnNlciB0byBvd24gZmlsZQorYzlkZjc3Y2JkNmEz
NjVkY2I3M2MzOTYxOGU0ODQyNzExODE3ZTg3MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdp
dGh1Yi9GVU5ESU5HLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvRlVORElORy55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWYyZDFjZjA5YzgzMjhjNzRhNjNiYWRmNTNjMDcxNzkwNzA2NDkxOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvRlVORElORy55bWwKQEAgLTAsMCArMSw1IEBA
CisjIGluZm86CisjICogaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vZW4vYXJ0aWNsZXMvZGlzcGxh
eWluZy1hLXNwb25zb3ItYnV0dG9uLWluLXlvdXItcmVwb3NpdG9yeQorIyAqIGh0dHBzOi8vdGlk
ZWxpZnQuY29tL3N1YnNjcmlwdGlvbi9ob3ctdG8tY29ubmVjdC10aWRlbGlmdC13aXRoLWdpdGh1
YgordGlkZWxpZnQ6IHB5cGkvcHl0ZXN0CitvcGVuX2NvbGxlY3RpdmU6IHB5dGVzdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
Ly5naXRodWIvSVNTVUVfVEVNUExBVEUubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGZiY2JiMTZmYzM1MWRlN2I3Y2U3MmMyOGMwZTdiMzM2ZWFkYzRjOWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NV
RV9URU1QTEFURS5tZAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotVGhhbmtzIGZvciBz
dWJtaXR0aW5nIGFuIGlzc3VlIQotCi1IZXJlJ3MgYSBxdWljayBjaGVja2xpc3QgaW4gd2hhdCB0
byBpbmNsdWRlOgotCi0tIFsgXSBJbmNsdWRlIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhl
IGJ1ZyBvciBzdWdnZXN0aW9uCi0tIFsgXSBgcGlwIGxpc3RgIG9mIHRoZSB2aXJ0dWFsIGVudmly
b25tZW50IHlvdSBhcmUgdXNpbmcKLS0gWyBdIHB5dGVzdCBhbmQgb3BlcmF0aW5nIHN5c3RlbSB2
ZXJzaW9ucwotLSBbIF0gTWluaW1hbCBleGFtcGxlIGlmIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTRhMWY2YTVmODg0ZWY3YjU3NmY1OTE4M2Y1NjcyMjJjZDFmYzlj
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1Q
TEFURS8xX2J1Z19yZXBvcnQubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRF
LzJfZmVhdHVyZV9yZXF1ZXN0Lm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFU
RS9jb25maWcueW1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVT
VF9URU1QTEFURS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRF
Lm1kCmluZGV4IDIzYTlmOGM1NjgzMjU1MDdiMGU3YTVhNTI5M2I5M2QwZjE5MjdiMzUuLjk0MDhm
Y2VhZmUzNmI1NWE3MjhkYjQ2MWFhNDkxOWZhMzcwMTI0ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5n
aXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCkBAIC0xLDE0ICsxLDI2IEBACis8IS0tCiBU
aGFua3MgZm9yIHN1Ym1pdHRpbmcgYSBQUiwgeW91ciBjb250cmlidXRpb24gaXMgcmVhbGx5IGFw
cHJlY2lhdGVkIQogCi1IZXJlJ3MgYSBxdWljayBjaGVja2xpc3QgdGhhdCBzaG91bGQgYmUgcHJl
c2VudCBpbiBQUnMgKHlvdSBjYW4gZGVsZXRlIHRoaXMgdGV4dCBmcm9tIHRoZSBmaW5hbCBkZXNj
cmlwdGlvbiwgdGhpcyBpcwotanVzdCBhIGd1aWRlbGluZSk6CitIZXJlIGlzIGEgcXVpY2sgY2hl
Y2tsaXN0IHRoYXQgc2hvdWxkIGJlIHByZXNlbnQgaW4gUFJzLgogCi0tIFsgXSBDcmVhdGUgYSBu
ZXcgY2hhbmdlbG9nIGZpbGUgaW4gdGhlIGBjaGFuZ2Vsb2dgIGZvbGRlciwgd2l0aCBhIG5hbWUg
bGlrZSBgPElTU1VFIE5VTUJFUj4uPFRZUEU+LnJzdGAuIFNlZSBbY2hhbmdlbG9nL1JFQURNRS5y
c3RdKC9jaGFuZ2Vsb2cvUkVBRE1FLnJzdCkgZm9yIGRldGFpbHMuCi0tIFsgXSBUYXJnZXQgdGhl
IGBtYXN0ZXJgIGJyYW5jaCBmb3IgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgYW5k
IHRyaXZpYWwgY2hhbmdlcy4KLS0gWyBdIFRhcmdldCB0aGUgYGZlYXR1cmVzYCBicmFuY2ggZm9y
IG5ldyBmZWF0dXJlcyBhbmQgcmVtb3ZhbHMvZGVwcmVjYXRpb25zLgogLSBbIF0gSW5jbHVkZSBk
b2N1bWVudGF0aW9uIHdoZW4gYWRkaW5nIG5ldyBmZWF0dXJlcy4KIC0gWyBdIEluY2x1ZGUgbmV3
IHRlc3RzIG9yIHVwZGF0ZSBleGlzdGluZyB0ZXN0cyB3aGVuIGFwcGxpY2FibGUuCistIFtYXSBB
bGxvdyBtYWludGFpbmVycyB0byBwdXNoIGFuZCBzcXVhc2ggd2hlbiBtZXJnaW5nIG15IGNvbW1p
dHMuIFBsZWFzZSB1bmNoZWNrIHRoaXMgaWYgeW91IHByZWZlciB0byBzcXVhc2ggdGhlIGNvbW1p
dHMgeW91cnNlbGYuCiAKLVVubGVzcyB5b3VyIGNoYW5nZSBpcyB0cml2aWFsIG9yIGEgc21hbGwg
ZG9jdW1lbnRhdGlvbiBmaXggKGUuZy4sICBhIHR5cG8gb3IgcmV3b3JkIG9mIGEgc21hbGwgc2Vj
dGlvbikgcGxlYXNlOgorSWYgdGhpcyBjaGFuZ2UgZml4ZXMgYW4gaXNzdWUsIHBsZWFzZToKIAot
LSBbIF0gQWRkIHlvdXJzZWxmIHRvIGBBVVRIT1JTYCBpbiBhbHBoYWJldGljYWwgb3JkZXI7Cist
IFsgXSBBZGQgdGV4dCBsaWtlIGBgY2xvc2VzICNYWVpXYGAgdG8gdGhlIFBSIGRlc2NyaXB0aW9u
IGFuZC9vciBjb21taXRzICh3aGVyZSBgYFhZWldgYCBpcyB0aGUgaXNzdWUgbnVtYmVyKS4gU2Vl
IHRoZSBbZ2l0aHViIGRvY3NdKGh0dHBzOi8vaGVscC5naXRodWIuY29tL2VuL2dpdGh1Yi9tYW5h
Z2luZy15b3VyLXdvcmstb24tZ2l0aHViL2xpbmtpbmctYS1wdWxsLXJlcXVlc3QtdG8tYW4taXNz
dWUjbGlua2luZy1hLXB1bGwtcmVxdWVzdC10by1hbi1pc3N1ZS11c2luZy1hLWtleXdvcmQpIGZv
ciBtb3JlIGluZm9ybWF0aW9uLgorCitVbmxlc3MgeW91ciBjaGFuZ2UgaXMgdHJpdmlhbCBvciBh
IHNtYWxsIGRvY3VtZW50YXRpb24gZml4IChlLmcuLCBhIHR5cG8gb3IgcmV3b3JkIG9mIGEgc21h
bGwgc2VjdGlvbikgcGxlYXNlOgorCistIFsgXSBDcmVhdGUgYSBuZXcgY2hhbmdlbG9nIGZpbGUg
aW4gdGhlIGBjaGFuZ2Vsb2dgIGZvbGRlciwgd2l0aCBhIG5hbWUgbGlrZSBgPElTU1VFIE5VTUJF
Uj4uPFRZUEU+LnJzdGAuIFNlZSBbY2hhbmdlbG9nL1JFQURNRS5yc3RdKGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9jaGFuZ2Vsb2cvUkVBRE1FLnJzdCkg
Zm9yIGRldGFpbHMuCisKKyAgV3JpdGUgc2VudGVuY2VzIGluIHRoZSAqKnBhc3Qgb3IgcHJlc2Vu
dCB0ZW5zZSoqLCBleGFtcGxlczoKKworICAqICpJbXByb3ZlZCB2ZXJib3NlIGRpZmYgb3V0cHV0
IHdpdGggc2VxdWVuY2VzLioKKyAgKiAqVGVybWluYWwgc3VtbWFyeSBzdGF0aXN0aWNzIG5vdyB1
c2UgbXVsdGlwbGUgY29sb3JzLioKKworICBBbHNvIG1ha2Ugc3VyZSB0byBlbmQgdGhlIHNlbnRl
bmNlIHdpdGggYSBgLmAuCisKKy0gWyBdIEFkZCB5b3Vyc2VsZiB0byBgQVVUSE9SU2AgaW4gYWxw
aGFiZXRpY2FsIG9yZGVyLgorLS0+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2Nv
bmZpZy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2NvbmZpZy55bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZh
OGE5N2U3ODVkMmEwODc5NzEzNmQ2NDE2YzMxMzI4ZDI0Y2ZmZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvY29uZmlnLnltbApAQCAtMCwwICsxLDIgQEAKK3J0ZDoKKyAg
cHJvamVjdDogcHl0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2xhYmVscy50
b21sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9sYWJlbHMudG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZWYxZTkx
M2FmODRjYzdhOWZmZjQ0ZjhlNDJkZDQwN2VkZmRlODIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvLmdpdGh1Yi9sYWJlbHMudG9tbApAQCAtMCwwICsxLDE0OSBAQAorWyJvczogY3ln
d2luIl0KK2NvbG9yID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9uID0gImN5Z3dpbiBwbGF0Zm9ybS1z
cGVjaWZpYyBwcm9ibGVtIgorbmFtZSA9ICJvczogY3lnd2luIgorCitbIm9zOiBsaW51eCJdCitj
b2xvciA9ICIxZDc2ZGIiCitkZXNjcmlwdGlvbiA9ICJsaW51eCBwbGF0Zm9ybS1zcGVjaWZpYyBw
cm9ibGVtIgorbmFtZSA9ICJvczogbGludXgiCisKK1sib3M6IG1hYyJdCitjb2xvciA9ICJiZmRh
ZGMiCitkZXNjcmlwdGlvbiA9ICJtYWMgcGxhdGZvcm0tc3BlY2lmaWMgcHJvYmxlbSIKK25hbWUg
PSAib3M6IG1hYyIKKworWyJvczogd2luZG93cyJdCitjb2xvciA9ICJmYmNhMDQiCitkZXNjcmlw
dGlvbiA9ICJ3aW5kb3dzIHBsYXRmb3JtLXNwZWNpZmljIHByb2JsZW0iCituYW1lID0gIm9zOiB3
aW5kb3dzIgorCitbInBsdWdpbjogYXJnY29tcGxldGUiXQorY29sb3IgPSAiZDRjNWY5IgorZGVz
Y3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgYXJnY29tcGxldGUgYnVpbHRpbiBwbHVnaW4iCitu
YW1lID0gInBsdWdpbjogYXJnY29tcGxldGUiCisKK1sicGx1Z2luOiBjYWNoZSJdCitjb2xvciA9
ICJjN2RlZjgiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBjYWNoZSBidWlsdGluIHBs
dWdpbiIKK25hbWUgPSAicGx1Z2luOiBjYWNoZSIKKworWyJwbHVnaW46IGNhcHR1cmUiXQorY29s
b3IgPSAiMWQ3NmRiIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgY2FwdHVyZSBidWls
dGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBjYXB0dXJlIgorCitbInBsdWdpbjogZGVidWdn
aW5nIl0KK2NvbG9yID0gImRkNTJhOCIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGRl
YnVnZ2luZyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBkZWJ1Z2dpbmciCisKK1si
cGx1Z2luOiBkb2N0ZXN0cyJdCitjb2xvciA9ICJmYWQ4YzciCitkZXNjcmlwdGlvbiA9ICJyZWxh
dGVkIHRvIHRoZSBkb2N0ZXN0cyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBkb2N0
ZXN0cyIKKworWyJwbHVnaW46IGp1bml0eG1sIl0KK2NvbG9yID0gImM1ZGVmNSIKK2Rlc2NyaXB0
aW9uID0gInJlbGF0ZWQgdG8gdGhlIGp1bml0eG1sIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJw
bHVnaW46IGp1bml0eG1sIgorCitbInBsdWdpbjogbG9nZ2luZyJdCitjb2xvciA9ICJmZjU0MzIi
CitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBsb2dnaW5nIGJ1aWx0aW4gcGx1Z2luIgor
bmFtZSA9ICJwbHVnaW46IGxvZ2dpbmciCisKK1sicGx1Z2luOiBtb25rZXlwYXRjaCJdCitjb2xv
ciA9ICIwZThhMTYiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBtb25rZXlwYXRjaCBi
dWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBtb25rZXlwYXRjaCIKKworWyJwbHVnaW46
IG5vc2UiXQorY29sb3IgPSAiYmZkYWRjIgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUg
bm9zZSBpbnRlZ3JhdGlvbiBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBub3NlIgor
CitbInBsdWdpbjogcGFzdGViaW4iXQorY29sb3IgPSAiYmZkNGYyIgorZGVzY3JpcHRpb24gPSAi
cmVsYXRlZCB0byB0aGUgcGFzdGViaW4gYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjog
cGFzdGViaW4iCisKK1sicGx1Z2luOiBweXRlc3RlciJdCitjb2xvciA9ICJjNWRlZjUiCitkZXNj
cmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBweXRlc3RlciBidWlsdGluIHBsdWdpbiIKK25hbWUg
PSAicGx1Z2luOiBweXRlc3RlciIKKworWyJwbHVnaW46IHRtcGRpciJdCitjb2xvciA9ICJiZmQ0
ZjIiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSB0bXBkaXIgYnVpbHRpbiBwbHVnaW4i
CituYW1lID0gInBsdWdpbjogdG1wZGlyIgorCitbInBsdWdpbjogdW5pdHRlc3QiXQorY29sb3Ig
PSAiMDA2Yjc1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgdW5pdHRlc3QgaW50ZWdy
YXRpb24gYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogdW5pdHRlc3QiCisKK1sicGx1
Z2luOiB3YXJuaW5ncyJdCitjb2xvciA9ICJmZWYyYzAiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVk
IHRvIHRoZSB3YXJuaW5ncyBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiB3YXJuaW5n
cyIKKworWyJwbHVnaW46IHhkaXN0Il0KK2NvbG9yID0gIjUzMTllNyIKK2Rlc2NyaXB0aW9uID0g
InJlbGF0ZWQgdG8gdGhlIHhkaXN0IGV4dGVybmFsIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiB4
ZGlzdCIKKworWyJzdGF0dXM6IGNyaXRpY2FsIl0KK2NvbG9yID0gImUxMWQyMSIKK2Rlc2NyaXB0
aW9uID0gImdyYXZlIHByb2JsZW0gb3IgdXNhYmlsaXR5IGlzc3VlIHRoYXQgYWZmZWN0cyBsb3Rz
IG9mIHVzZXJzIgorbmFtZSA9ICJzdGF0dXM6IGNyaXRpY2FsIgorCitbInN0YXR1czogZWFzeSJd
Citjb2xvciA9ICJiZmU1YmYiCitkZXNjcmlwdGlvbiA9ICJlYXN5IGlzc3VlIHRoYXQgaXMgZnJp
ZW5kbHkgdG8gbmV3IGNvbnRyaWJ1dG9yIgorbmFtZSA9ICJzdGF0dXM6IGVhc3kiCisKK1sic3Rh
dHVzOiBoZWxwIHdhbnRlZCJdCitjb2xvciA9ICIxNTk4MTgiCitkZXNjcmlwdGlvbiA9ICJkZXZl
bG9wZXJzIHdvdWxkIGxpa2UgaGVscCBmcm9tIGV4cGVydHMgb24gdGhpcyB0b3BpYyIKK25hbWUg
PSAic3RhdHVzOiBoZWxwIHdhbnRlZCIKKworWyJzdGF0dXM6IG5lZWRzIGluZm9ybWF0aW9uIl0K
K2NvbG9yID0gIjUzMTllNyIKK2Rlc2NyaXB0aW9uID0gInJlcG9ydGVyIG5lZWRzIHRvIHByb3Zp
ZGUgbW9yZSBpbmZvcm1hdGlvbjsgY2FuIGJlIGNsb3NlZCBhZnRlciAyIG9yIG1vcmUgd2Vla3Mg
b2YgaW5hY3Rpdml0eSIKK25hbWUgPSAic3RhdHVzOiBuZWVkcyBpbmZvcm1hdGlvbiIKKworWyJ0
b3BpYzogY29sbGVjdGlvbiJdCitjb2xvciA9ICIwMDZiNzUiCitkZXNjcmlwdGlvbiA9ICJyZWxh
dGVkIHRvIHRoZSBjb2xsZWN0aW9uIHBoYXNlIgorbmFtZSA9ICJ0b3BpYzogY29sbGVjdGlvbiIK
KworWyJ0b3BpYzogY29uZmlnIl0KK2NvbG9yID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9uID0gInJl
bGF0ZWQgdG8gY29uZmlnIGhhbmRsaW5nLCBhcmd1bWVudCBwYXJzaW5nIGFuZCBjb25maWcgZmls
ZSIKK25hbWUgPSAidG9waWM6IGNvbmZpZyIKKworWyJ0b3BpYzogZml4dHVyZXMiXQorY29sb3Ig
PSAiNTMxOWU3IgorZGVzY3JpcHRpb24gPSAiYW55dGhpbmcgaW52b2x2aW5nIGZpeHR1cmVzIGRp
cmVjdGx5IG9yIGluZGlyZWN0bHkiCituYW1lID0gInRvcGljOiBmaXh0dXJlcyIKKworWyJ0b3Bp
YzogbWFya3MiXQorY29sb3IgPSAiYjYwMjA1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byBt
YXJrcywgZWl0aGVyIHRoZSBnZW5lcmFsIG1hcmtzIG9yIGJ1aWx0aW4iCituYW1lID0gInRvcGlj
OiBtYXJrcyIKKworWyJ0b3BpYzogcGFyYW1ldHJpemUiXQorY29sb3IgPSAiZmJjYTA0IgorZGVz
Y3JpcHRpb24gPSAicmVsYXRlZCB0byBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUiCituYW1lID0g
InRvcGljOiBwYXJhbWV0cml6ZSIKKworWyJ0b3BpYzogcmVwb3J0aW5nIl0KK2NvbG9yID0gImZl
ZjJjMCIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGVybWluYWwgb3V0cHV0IGFuZCB1c2Vy
LWZhY2luZyBtZXNzYWdlcyBhbmQgZXJyb3JzIgorbmFtZSA9ICJ0b3BpYzogcmVwb3J0aW5nIgor
CitbInRvcGljOiByZXdyaXRlIl0KK2NvbG9yID0gIjBlOGExNiIKK2Rlc2NyaXB0aW9uID0gInJl
bGF0ZWQgdG8gdGhlIGFzc2VydGlvbiByZXdyaXRlIG1lY2hhbmlzbSIKK25hbWUgPSAidG9waWM6
IHJld3JpdGUiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmI3Y2YyMjI1NjRiNDJmZjQ4MTcyZGI3MGIzMzgzMDg2MTM5OGE4Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8u
Z2l0aHViL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5tZAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIv
d29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NGI3NTI4MGQ5Y2U4OGU5YTU3MmQzNGQ5NjljYjM5MmY5ZDNiNWJiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zs
b3dzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93b3JrZmxvd3MvbWFpbi55bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8u
Z2l0aHViL3dvcmtmbG93cy9yZWxlYXNlLW9uLWNvbW1lbnQueW1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YWVhOWVhYzAzZjkyZTVmOTU5MmRlMWUwNDA1ZjEwYjRhZTc4Mzk3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDU0IEBACisjIEF1dG9tYXRpY2Fs
bHkgZ2VuZXJhdGVkIGJ5IGBoZ2ltcG9ydHN2bmAKKy5zdm4KKy5oZ3N2bgorCisjIElnbm9yZSBs
b2NhbCB2aXJ0dWFsZW52cworbGliLworYmluLworaW5jbHVkZS8KKy5QeXRob24vCisKKyMgVGhl
c2UgbGluZXMgYXJlIHN1Z2dlc3RlZCBhY2NvcmRpbmcgdG8gdGhlIHN2bjppZ25vcmUgcHJvcGVy
dHkKKyMgRmVlbCBmcmVlIHRvIGVuYWJsZSB0aGVtIGJ5IHVuY29tbWVudGluZyB0aGVtCisqLnB5
YworKi5weW8KKyouc3dwCisqLmNsYXNzCisqLm9yaWcKKyp+CisuaHlwb3RoZXNpcy8KKworIyBh
dXRvZ2VuZXJhdGVkCitzcmMvX3B5dGVzdC9fdmVyc2lvbi5weQorIyBzZXR1cHRvb2xzCisuZWdn
cy8KKworZG9jLyovX2J1aWxkCitkb2MvKi8uZG9jdHJlZXMKK2RvYy8qL19jaGFuZ2Vsb2dfdG93
bmNyaWVyX2RyYWZ0LnJzdAorYnVpbGQvCitkaXN0LworKi5lZ2ctaW5mbworaHRtbGNvdi8KK2lz
c3VlLworZW52LworLmVudi8KKy52ZW52LworM3JkcGFydHkvCisudG94CisuY2FjaGUKKy5weXRl
c3RfY2FjaGUKKy5teXB5X2NhY2hlCisuY292ZXJhZ2UKKy5jb3ZlcmFnZS4qCitjb3ZlcmFnZS54
bWwKKy5yb3BlcHJvamVjdAorLmlkZWEKKy5oeXBvdGhlc2lzCisucHlkZXZwcm9qZWN0CisucHJv
amVjdAorLnNldHRpbmdzCisudnNjb2RlCisKKyMgZ2VuZXJhdGVkIGJ5IHBpcAorcGlwLXdoZWVs
LW1ldGFkYXRhLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnByZS1jb21taXQtY29uZmlnLnlh
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8ucHJlLWNvbW1pdC1jb25maWcueWFtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDY4
YTJkMzI0ZDhkYTc3NDNkODc4MjczMTQ1ZjYzNTVkYzZmNWRmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvLnByZS1jb21taXQtY29uZmlnLnlhbWwKQEAgLTAsMCArMSw4MiBAQAorcmVw
b3M6CistICAgcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL3BzZi9ibGFjaworICAgIHJldjogMTku
MTBiMAorICAgIGhvb2tzOgorICAgIC0gICBpZDogYmxhY2sKKyAgICAgICAgYXJnczogWy0tc2Fm
ZSwgLS1xdWlldF0KKy0gICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vYXNvdHRpbGUvYmxhY2tl
bi1kb2NzCisgICAgcmV2OiB2MS43LjAKKyAgICBob29rczoKKyAgICAtICAgaWQ6IGJsYWNrZW4t
ZG9jcworICAgICAgICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczogW2JsYWNrPT0xOS4xMGIwXQor
LSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0L3ByZS1jb21taXQtaG9va3MK
KyAgICByZXY6IHYzLjEuMAorICAgIGhvb2tzOgorICAgIC0gICBpZDogdHJhaWxpbmctd2hpdGVz
cGFjZQorICAgIC0gICBpZDogZW5kLW9mLWZpbGUtZml4ZXIKKyAgICAtICAgaWQ6IGZpeC1lbmNv
ZGluZy1wcmFnbWEKKyAgICAgICAgYXJnczogWy0tcmVtb3ZlXQorICAgIC0gICBpZDogY2hlY2st
eWFtbAorICAgIC0gICBpZDogZGVidWctc3RhdGVtZW50cworICAgICAgICBleGNsdWRlOiBfcHl0
ZXN0LyhkZWJ1Z2dpbmd8aG9va3NwZWMpLnB5CisgICAgICAgIGxhbmd1YWdlX3ZlcnNpb246IHB5
dGhvbjMKKy0gICByZXBvOiBodHRwczovL2dpdGxhYi5jb20vcHljcWEvZmxha2U4CisgICAgcmV2
OiAzLjguMgorICAgIGhvb2tzOgorICAgIC0gICBpZDogZmxha2U4CisgICAgICAgIGxhbmd1YWdl
X3ZlcnNpb246IHB5dGhvbjMKKyAgICAgICAgYWRkaXRpb25hbF9kZXBlbmRlbmNpZXM6CisgICAg
ICAgICAgLSBmbGFrZTgtdHlwaW5nLWltcG9ydHM9PTEuOS4wCisgICAgICAgICAgLSBmbGFrZTgt
ZG9jc3RyaW5ncz09MS41LjAKKy0gICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vYXNvdHRpbGUv
cmVvcmRlcl9weXRob25faW1wb3J0cworICAgIHJldjogdjIuMy4wCisgICAgaG9va3M6CisgICAg
LSAgIGlkOiByZW9yZGVyLXB5dGhvbi1pbXBvcnRzCisgICAgICAgIGFyZ3M6IFsnLS1hcHBsaWNh
dGlvbi1kaXJlY3Rvcmllcz0uOnNyYycsIC0tcHkzLXBsdXNdCistICAgcmVwbzogaHR0cHM6Ly9n
aXRodWIuY29tL2Fzb3R0aWxlL3B5dXBncmFkZQorICAgIHJldjogdjIuNC40CisgICAgaG9va3M6
CisgICAgLSAgIGlkOiBweXVwZ3JhZGUKKyAgICAgICAgYXJnczogWy0tcHkzLXBsdXNdCistICAg
cmVwbzogaHR0cHM6Ly9naXRodWIuY29tL2Fzb3R0aWxlL3NldHVwLWNmZy1mbXQKKyAgICByZXY6
IHYxLjkuMAorICAgIGhvb2tzOgorICAgIC0gICBpZDogc2V0dXAtY2ZnLWZtdAorICAgICAgICAj
IFRPRE86IHdoZW4gdXBncmFkaW5nIHNldHVwLWNmZy1mbXQgdGhpcyBjYW4gYmUgcmVtb3ZlZAor
ICAgICAgICBhcmdzOiBbLS1tYXgtcHktdmVyc2lvbj0zLjldCistICAgcmVwbzogaHR0cHM6Ly9n
aXRodWIuY29tL3ByZS1jb21taXQvbWlycm9ycy1teXB5CisgICAgcmV2OiB2MC43ODAgICMgTk9U
RToga2VlcCB0aGlzIGluIHN5bmMgd2l0aCBzZXR1cC5jZmcuCisgICAgaG9va3M6CisgICAgLSAg
IGlkOiBteXB5CisgICAgICAgIGZpbGVzOiBeKHNyYy98dGVzdGluZy8pCisgICAgICAgIGFyZ3M6
IFtdCistICAgcmVwbzogbG9jYWwKKyAgICBob29rczoKKyAgICAtICAgaWQ6IHJzdAorICAgICAg
ICBuYW1lOiByc3QKKyAgICAgICAgZW50cnk6IHJzdC1saW50IC0tZW5jb2RpbmcgdXRmLTgKKyAg
ICAgICAgZmlsZXM6IF4oUkVMRUFTSU5HLnJzdHxSRUFETUUucnN0fFRJREVMSUZULnJzdCkkCisg
ICAgICAgIGxhbmd1YWdlOiBweXRob24KKyAgICAgICAgYWRkaXRpb25hbF9kZXBlbmRlbmNpZXM6
IFtweWdtZW50cywgcmVzdHJ1Y3R1cmVkdGV4dF9saW50XQorICAgIC0gICBpZDogY2hhbmdlbG9n
cy1yc3QKKyAgICAgICAgbmFtZTogY2hhbmdlbG9nIGZpbGVuYW1lcworICAgICAgICBsYW5ndWFn
ZTogZmFpbAorICAgICAgICBlbnRyeTogJ2NoYW5nZWxvZyBmaWxlcyBtdXN0IGJlIG5hbWVkICMj
IyMuKGJyZWFraW5nfGJ1Z2ZpeHxkZXByZWNhdGlvbnxkb2N8ZmVhdHVyZXxpbXByb3ZlbWVudHx0
cml2aWFsfHZlbmRvcikucnN0JworICAgICAgICBleGNsdWRlOiBjaGFuZ2Vsb2cvKFxkK1wuKGJy
ZWFraW5nfGJ1Z2ZpeHxkZXByZWNhdGlvbnxkb2N8ZmVhdHVyZXxpbXByb3ZlbWVudHx0cml2aWFs
fHZlbmRvcikucnN0fFJFQURNRS5yc3R8X3RlbXBsYXRlLnJzdCkKKyAgICAgICAgZmlsZXM6IF5j
aGFuZ2Vsb2cvCisgICAgLSAgIGlkOiBweS1kZXByZWNhdGVkCisgICAgICAgIG5hbWU6IHB5IGxp
YnJhcnkgaXMgZGVwcmVjYXRlZAorICAgICAgICBsYW5ndWFnZTogcHlncmVwCisgICAgICAgIGVu
dHJ5OiA+CisgICAgICAgICAgICAoP3gpXGJweVwuKAorICAgICAgICAgICAgICAgIF9jb2RlXC58
CisgICAgICAgICAgICAgICAgYnVpbHRpblwufAorICAgICAgICAgICAgICAgIGNvZGVcLnwKKyAg
ICAgICAgICAgICAgICBpb1wufAorICAgICAgICAgICAgICAgIHBhdGhcLmxvY2FsXC5zeXNmaW5k
fAorICAgICAgICAgICAgICAgIHByb2Nlc3NcLnwKKyAgICAgICAgICAgICAgICBzdGRcLnwKKyAg
ICAgICAgICAgICAgICBlcnJvclwufAorICAgICAgICAgICAgICAgIHhtbFwuCisgICAgICAgICAg
ICApCisgICAgICAgIHR5cGVzOiBbcHl0aG9uXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnJl
YWR0aGVkb2NzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5yZWFkdGhlZG9jcy55bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDE3NmMyNjQwMDE1ZWU5MzJmMjFlYzAxZjhkODk2YjFkNzQxMGUzMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly5yZWFkdGhlZG9jcy55bWwKQEAgLTAsMCArMSwxMiBAQAordmVyc2lv
bjogMgorCitweXRob246CisgICB2ZXJzaW9uOiAzLjcKKyAgIGluc3RhbGw6CisgICAgICAtIHJl
cXVpcmVtZW50czogZG9jL2VuL3JlcXVpcmVtZW50cy50eHQKKyAgICAgIC0gbWV0aG9kOiBwaXAK
KyAgICAgICAgcGF0aDogLgorCitmb3JtYXRzOgorICAtIGVwdWIKKyAgLSBwZGYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnRyYXZpcy55bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWM4NWRmZTFmNTkxNWYwOWQ5YWUyNTI5MThmMjRiYTU1MDVjODEzZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly50cmF2aXMueW1sCkBAIC0wLDAgKzEsNjAgQEAKK2xh
bmd1YWdlOiBweXRob24KK2Rpc3Q6IHRydXN0eQorcHl0aG9uOiAnMy41LjEnCitjYWNoZTogZmFs
c2UKKworZW52OgorICBnbG9iYWw6CisgICAgLSBQWVRFU1RfQURET1BUUz0tdnYKKworIyBzZXR1
cHRvb2xzLXNjbSBuZWVkcyBhbGwgdGFncyBpbiBvcmRlciB0byBvYnRhaW4gYSBwcm9wZXIgdmVy
c2lvbgorZ2l0OgorICBkZXB0aDogZmFsc2UKKworaW5zdGFsbDoKKyAgLSBweXRob24gLW0gcGlw
IGluc3RhbGwgLS11cGdyYWRlIC0tcHJlIHRveAorCitqb2JzOgorICBpbmNsdWRlOgorICAgICMg
Q292ZXJhZ2UgZm9yIFB5dGhvbiAzLjUuezAsMX0gc3BlY2lmaWMgY29kZSwgbW9zdGx5IHR5cGlu
ZyByZWxhdGVkLgorICAgIC0gZW52OiBUT1hFTlY9cHkzNSBQWVRFU1RfQ09WRVJBR0U9MSBQWVRF
U1RfQURET1BUUz0iLWsgdGVzdF9yYWlzZXNfY3ljbGljX3JlZmVyZW5jZSIKKyAgICAgIGJlZm9y
ZV9pbnN0YWxsOgorICAgICAgICAjIFdvcmsgYXJvdW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXJh
Y28vemlwcC9pc3N1ZXMvNDAuCisgICAgICAgIC0gcHl0aG9uIC1tIHBpcCBpbnN0YWxsIC1VICdz
ZXR1cHRvb2xzPj0zNC40LjAnIHZpcnR1YWxlbnY9PTE2LjcuOQorCitiZWZvcmVfc2NyaXB0Ogor
ICAtIHwKKyAgICAjIERvIG5vdCAocmUtKXVwbG9hZCBjb3ZlcmFnZSB3aXRoIGNyb24gcnVucy4K
KyAgICBpZiBbWyAiJFRSQVZJU19FVkVOVF9UWVBFIiA9IGNyb24gXV07IHRoZW4KKyAgICAgIFBZ
VEVTVF9DT1ZFUkFHRT0wCisgICAgZmkKKyAgLSB8CisgICAgaWYgW1sgIiRQWVRFU1RfQ09WRVJB
R0UiID0gMSBdXTsgdGhlbgorICAgICAgZXhwb3J0IENPVkVSQUdFX0ZJTEU9IiRQV0QvLmNvdmVy
YWdlIgorICAgICAgZXhwb3J0IENPVkVSQUdFX1BST0NFU1NfU1RBUlQ9IiRQV0QvLmNvdmVyYWdl
cmMiCisgICAgICBleHBvcnQgX1BZVEVTVF9UT1hfQ09WRVJBR0VfUlVOPSJjb3ZlcmFnZSBydW4g
LW0iCisgICAgICBleHBvcnQgX1BZVEVTVF9UT1hfRVhUUkFfREVQPWNvdmVyYWdlLWVuYWJsZS1z
dWJwcm9jZXNzCisgICAgZmkKKworc2NyaXB0OiB0b3gKKworYWZ0ZXJfc3VjY2VzczoKKyAgLSB8
CisgICAgaWYgW1sgIiRQWVRFU1RfQ09WRVJBR0UiID0gMSBdXTsgdGhlbgorICAgICAgZW52IENP
REVDT1ZfTkFNRT0iJFRPWEVOVi0kVFJBVklTX09TX05BTUUiIHNjcmlwdHMvcmVwb3J0LWNvdmVy
YWdlLnNoIC1GIFRyYXZpcworICAgIGZpCisKK25vdGlmaWNhdGlvbnM6CisgIGlyYzoKKyAgICBj
aGFubmVsczoKKyAgICAgIC0gImNoYXQuZnJlZW5vZGUubmV0I3B5dGVzdCIKKyAgICBvbl9zdWNj
ZXNzOiBjaGFuZ2UKKyAgICBvbl9mYWlsdXJlOiBjaGFuZ2UKKyAgICBza2lwX2pvaW46IHRydWUK
KyAgZW1haWw6CisgICAgLSBweXRlc3QtY29tbWl0QHB5dGhvbi5vcmcKKworYnJhbmNoZXM6Cisg
IG9ubHk6CisgICAgLSBtYXN0ZXIKKyAgICAtIC9eXGQrXC5cZCtcLngkLwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX19p
bml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNDFmMDUwNGU0NzA2NDI4
ZjhiYzI0MWQ1ZDJkMTBlZGJhMDEzOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDggKzAsMCBAQAotX19hbGxfXyA9IFsnX192ZXJzaW9uX18nXQotCi10cnk6Ci0g
ICAgZnJvbSAuX3ZlcnNpb24gaW1wb3J0IHZlcnNpb24gYXMgX192ZXJzaW9uX18KLWV4Y2VwdCBJ
bXBvcnRFcnJvcjoKLSAgICAjIGJyb2tlbiBpbnN0YWxsYXRpb24sIHdlIGRvbid0IGV2ZW4gdHJ5
Ci0gICAgIyB1bmtub3duIG9ubHkgd29ya3MgYmVjYXVzZSB3ZSBkbyBwb29yIG1hbnMgdmVyc2lv
biBjb21wYXJlCi0gICAgX192ZXJzaW9uX18gPSAndW5rbm93bicKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJn
Y29tcGxldGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2MjVhNzVmOWYxYjcw
NTBkMzhmMzY1YzQxMzVkZDQ4YWE3MWIxZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29tcGxldGUucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotCi0iIiJhbGxvdyBiYXNoLWNvbXBsZXRpb24g
Zm9yIGFyZ3BhcnNlIHdpdGggYXJnY29tcGxldGUgaWYgaW5zdGFsbGVkCi1uZWVkcyBhcmdjb21w
bGV0ZT49MC41LjYgZm9yIHB5dGhvbiAzLjIvMy4zIChvbGRlciB2ZXJzaW9ucyBmYWlsCi10byBm
aW5kIHRoZSBtYWdpYyBzdHJpbmcsIHNvIF9BUkdDT01QTEVURSBlbnYuIHZhciBpcyBuZXZlciBz
ZXQsIGFuZAotdGhpcyBkb2VzIG5vdCBuZWVkIHNwZWNpYWwgY29kZS4KLQotRnVuY3Rpb24gdHJ5
X2FyZ2NvbXBsZXRlKHBhcnNlcikgc2hvdWxkIGJlIGNhbGxlZCBkaXJlY3RseSBiZWZvcmUKLXRo
ZSBjYWxsIHRvIEFyZ3VtZW50UGFyc2VyLnBhcnNlX2FyZ3MoKS4KLQotVGhlIGZpbGVzY29tcGxl
dGVyIGlzIHdoYXQgeW91IG5vcm1hbGx5IHdvdWxkIHVzZSBvbiB0aGUgcG9zaXRpb25hbAotYXJn
dW1lbnRzIHNwZWNpZmljYXRpb24sIGluIG9yZGVyIHRvIGdldCAiZGlybmFtZS8iIGFmdGVyICJk
aXJuPFRBQj4iCi1pbnN0ZWFkIG9mIHRoZSBkZWZhdWx0ICJkaXJuYW1lICI6Ci0KLSAgIG9wdHBh
cnNlci5hZGRfYXJndW1lbnQoQ29uZmlnLl9maWxlX29yX2RpciwgbmFyZ3M9JyonCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKS5jb21wbGV0ZXI9ZmlsZXNjb21wbGV0ZXIKLQotT3Ro
ZXIsIGFwcGxpY2F0aW9uIHNwZWNpZmljLCBjb21wbGV0ZXJzIHNob3VsZCBnbyBpbiB0aGUgZmls
ZQotZG9pbmcgdGhlIGFkZF9hcmd1bWVudCBjYWxscyBhcyB0aGV5IG5lZWQgdG8gYmUgc3BlY2lm
aWVkIGFzIC5jb21wbGV0ZXIKLWF0dHJpYnV0ZXMgYXMgd2VsbC4gKElmIGFyZ2NvbXBsZXRlIGlz
IG5vdCBpbnN0YWxsZWQsIHRoZSBmdW5jdGlvbiB0aGUKLWF0dHJpYnV0ZSBwb2ludHMgdG8gd2ls
bCBub3QgYmUgdXNlZCkuCi0KLVNQRUVEVVAKLT09PT09PT0KLVRoZSBnZW5lcmljIGFyZ2NvbXBs
ZXRlIHNjcmlwdCBmb3IgYmFzaC1jb21wbGV0aW9uCi0oL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC9w
eXRob24tYXJnY29tcGxldGUuc2ggKQotdXNlcyBhIHB5dGhvbiBwcm9ncmFtIHRvIGRldGVybWlu
ZSBzdGFydHVwIHNjcmlwdCBnZW5lcmF0ZWQgYnkgcGlwLgotWW91IGNhbiBzcGVlZCB1cCBjb21w
bGV0aW9uIHNvbWV3aGF0IGJ5IGNoYW5naW5nIHRoaXMgc2NyaXB0IHRvIGluY2x1ZGUKLSAgIyBQ
WVRIT05fQVJHQ09NUExFVEVfT0sKLXNvIHRoZSB0aGUgcHl0aG9uLWFyZ2NvbXBsZXRlLWNoZWNr
LWVhc3ktaW5zdGFsbC1zY3JpcHQgZG9lcyBub3QKLW5lZWQgdG8gYmUgY2FsbGVkIHRvIGZpbmQg
dGhlIGVudHJ5IHBvaW50IG9mIHRoZSBjb2RlIGFuZCBzZWUgaWYgdGhhdCBpcwotbWFya2VkICB3
aXRoIFBZVEhPTl9BUkdDT01QTEVURV9PSwotCi1JTlNUQUxML0RFQlVHR0lORwotPT09PT09PT09
PT09PT09PT0KLVRvIGluY2x1ZGUgdGhpcyBzdXBwb3J0IGluIGFub3RoZXIgYXBwbGljYXRpb24g
dGhhdCBoYXMgc2V0dXAucHkgZ2VuZXJhdGVkCi1zY3JpcHRzOgotLSBhZGQgdGhlIGxpbmU6Ci0g
ICAgIyBQWVRIT05fQVJHQ09NUExFVEVfT0sKLSAgbmVhciB0aGUgdG9wIG9mIHRoZSBtYWluIHB5
dGhvbiBlbnRyeSBwb2ludAotLSBpbmNsdWRlIGluIHRoZSBmaWxlIGNhbGxpbmcgcGFyc2VfYXJn
cygpOgotICAgIGZyb20gX2FyZ2NvbXBsZXRlIGltcG9ydCB0cnlfYXJnY29tcGxldGUsIGZpbGVz
Y29tcGxldGVyCi0gICAsIGNhbGwgdHJ5X2FyZ2NvbXBsZXRlIGp1c3QgYmVmb3JlIHBhcnNlX2Fy
Z3MoKSwgYW5kIG9wdGlvbmFsbHkgYWRkCi0gICBmaWxlc2NvbXBsZXRlciB0byB0aGUgcG9zaXRp
b25hbCBhcmd1bWVudHMnIGFkZF9hcmd1bWVudCgpCi1JZiB0aGluZ3MgZG8gbm90IHdvcmsgcmln
aHQgYXdheToKLS0gc3dpdGNoIG9uIGFyZ2NvbXBsZXRlIGRlYnVnZ2luZyB3aXRoIChhbHNvIGhl
bHBmdWwgd2hlbiBkb2luZyBjdXN0b20KLSAgY29tcGxldGVycyk6Ci0gICAgZXhwb3J0IF9BUkNf
REVCVUc9MQotLSBydW46Ci0gICAgcHl0aG9uLWFyZ2NvbXBsZXRlLWNoZWNrLWVhc3ktaW5zdGFs
bC1zY3JpcHQgJCh3aGljaCBhcHBuYW1lKQotICAgIGVjaG8gJD8KLSAgd2lsbCBlY2hvIDAgaWYg
dGhlIG1hZ2ljIGxpbmUgaGFzIGJlZW4gZm91bmQsIDEgaWYgbm90Ci0tIHNvbWV0aW1lcyBpdCBo
ZWxwcyB0byBmaW5kIGVhcmx5IG9uIGVycm9ycyB1c2luZzoKLSAgICBfQVJHQ09NUExFVEU9MSBf
QVJDX0RFQlVHPTEgYXBwbmFtZQotICB3aGljaCBzaG91bGQgdGhyb3cgYSBLZXlFcnJvcjogJ0NP
TVBMSU5FJyAod2hpY2ggaXMgcHJvcGVybHkgc2V0IGJ5IHRoZQotICBnbG9iYWwgYXJnY29tcGxl
dGUgc2NyaXB0KS4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1mcm9tIGds
b2IgaW1wb3J0IGdsb2IKLQotCi1jbGFzcyBGYXN0RmlsZXNDb21wbGV0ZXI6Ci0gICAgJ0Zhc3Qg
ZmlsZSBjb21wbGV0ZXIgY2xhc3MnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlyZWN0b3Jp
ZXM9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuZGlyZWN0b3JpZXMgPSBkaXJlY3RvcmllcwotCi0gICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIHByZWZpeCwgKiprd2FyZ3MpOgotICAgICAgICAiIiJvbmx5IGNh
bGxlZCBvbiBub24gb3B0aW9uIGNvbXBsZXRpb25zIiIiCi0gICAgICAgIGlmIG9zLnBhdGguc2Vw
IGluIHByZWZpeFsxOl06Ci0gICAgICAgICAgICBwcmVmaXhfZGlyID0gbGVuKG9zLnBhdGguZGly
bmFtZShwcmVmaXgpICsgb3MucGF0aC5zZXApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBw
cmVmaXhfZGlyID0gMAotICAgICAgICBjb21wbGV0aW9uID0gW10KLSAgICAgICAgZ2xvYmJlZCA9
IFtdCi0gICAgICAgIGlmICcqJyBub3QgaW4gcHJlZml4IGFuZCAnPycgbm90IGluIHByZWZpeDoK
LSAgICAgICAgICAgICMgd2UgYXJlIG9uIHVuaXgsIG90aGVyd2lzZSBubyBiYXNoCi0gICAgICAg
ICAgICBpZiBub3QgcHJlZml4IG9yIHByZWZpeFstMV0gPT0gb3MucGF0aC5zZXA6Ci0gICAgICAg
ICAgICAgICAgZ2xvYmJlZC5leHRlbmQoZ2xvYihwcmVmaXggKyAnLionKSkKLSAgICAgICAgICAg
IHByZWZpeCArPSAnKicKLSAgICAgICAgZ2xvYmJlZC5leHRlbmQoZ2xvYihwcmVmaXgpKQotICAg
ICAgICBmb3IgeCBpbiBzb3J0ZWQoZ2xvYmJlZCk6Ci0gICAgICAgICAgICBpZiBvcy5wYXRoLmlz
ZGlyKHgpOgotICAgICAgICAgICAgICAgIHggKz0gJy8nCi0gICAgICAgICAgICAjIGFwcGVuZCBz
dHJpcHBpbmcgdGhlIHByZWZpeCAobGlrZSBiYXNoLCBub3QgbGlrZSBjb21wZ2VuKQotICAgICAg
ICAgICAgY29tcGxldGlvbi5hcHBlbmQoeFtwcmVmaXhfZGlyOl0pCi0gICAgICAgIHJldHVybiBj
b21wbGV0aW9uCi0KLQotaWYgb3MuZW52aXJvbi5nZXQoJ19BUkdDT01QTEVURScpOgotICAgIHRy
eToKLSAgICAgICAgaW1wb3J0IGFyZ2NvbXBsZXRlLmNvbXBsZXRlcnMKLSAgICBleGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgICAgIHN5cy5leGl0KC0xKQotICAgIGZpbGVzY29tcGxldGVyID0gRmFz
dEZpbGVzQ29tcGxldGVyKCkKLQotICAgIGRlZiB0cnlfYXJnY29tcGxldGUocGFyc2VyKToKLSAg
ICAgICAgYXJnY29tcGxldGUuYXV0b2NvbXBsZXRlKHBhcnNlciwgYWx3YXlzX2NvbXBsZXRlX29w
dGlvbnM9RmFsc2UpCi1lbHNlOgotICAgIGRlZiB0cnlfYXJnY29tcGxldGUocGFyc2VyKToKLSAg
ICAgICAgcGFzcwotICAgIGZpbGVzY29tcGxldGVyID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9fY29kZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2Nv
ZGUvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxNWMxM2I0MmMy
NWJkMzE0OTg4ZGJhYTdmZjlmNGUzZDFkMmU1YzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fX2luaXRfXy5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLSIiIiBweXRob24gaW5zcGVjdGlvbi9j
b2RlIGdlbmVyYXRpb24gQVBJICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotZnJvbSAuY29kZSBpbXBvcnQgQ29kZSAg
IyBub3FhCi1mcm9tIC5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvICAjIG5vcWEKLWZyb20gLmNv
ZGUgaW1wb3J0IEZyYW1lICAjIG5vcWEKLWZyb20gLmNvZGUgaW1wb3J0IFRyYWNlYmFjayAgIyBu
b3FhCi1mcm9tIC5jb2RlIGltcG9ydCBnZXRyYXdjb2RlICAjIG5vcWEKLWZyb20gLnNvdXJjZSBp
bXBvcnQgU291cmNlICAjIG5vcWEKLWZyb20gLnNvdXJjZSBpbXBvcnQgY29tcGlsZV8gYXMgY29t
cGlsZSAgIyBub3FhCi1mcm9tIC5zb3VyY2UgaW1wb3J0IGdldGZzbGluZW5vICAjIG5vcWEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNWFhY2YwYTQyOGQ4ODA2OTFmZTAzMGE4MzViYzI1OGQwNzg1MDZmMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L19jb2RlL19weTJ0cmFjZWJhY2sucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NSAr
MCwwIEBACi0jIGNvcGllZCBmcm9tIHB5dGhvbi0yLjcuMydzIHRyYWNlYmFjay5weQotIyBDSEFO
R0VTOgotIyAtIHNvbWVfc3RyIGlzIHJlcGxhY2VkLCB0cnlpbmcgdG8gY3JlYXRlIHVuaWNvZGUg
c3RyaW5ncwotIwotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHR5cGVzCi0KLQotZGVmIGZvcm1hdF9leGNlcHRp
b25fb25seShldHlwZSwgdmFsdWUpOgotICAgICIiIkZvcm1hdCB0aGUgZXhjZXB0aW9uIHBhcnQg
b2YgYSB0cmFjZWJhY2suCi0KLSAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgZXhjZXB0aW9uIHR5
cGUgYW5kIHZhbHVlIHN1Y2ggYXMgZ2l2ZW4gYnkKLSAgICBzeXMubGFzdF90eXBlIGFuZCBzeXMu
bGFzdF92YWx1ZS4gVGhlIHJldHVybiB2YWx1ZSBpcyBhIGxpc3Qgb2YKLSAgICBzdHJpbmdzLCBl
YWNoIGVuZGluZyBpbiBhIG5ld2xpbmUuCi0KLSAgICBOb3JtYWxseSwgdGhlIGxpc3QgY29udGFp
bnMgYSBzaW5nbGUgc3RyaW5nOyBob3dldmVyLCBmb3IKLSAgICBTeW50YXhFcnJvciBleGNlcHRp
b25zLCBpdCBjb250YWlucyBzZXZlcmFsIGxpbmVzIHRoYXQgKHdoZW4KLSAgICBwcmludGVkKSBk
aXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHdoZXJlIHRoZSBzeW50YXgKLSAgICBl
cnJvciBvY2N1cnJlZC4KLQotICAgIFRoZSBtZXNzYWdlIGluZGljYXRpbmcgd2hpY2ggZXhjZXB0
aW9uIG9jY3VycmVkIGlzIGFsd2F5cyB0aGUgbGFzdAotICAgIHN0cmluZyBpbiB0aGUgbGlzdC4K
LQotICAgICIiIgotCi0gICAgIyBBbiBpbnN0YW5jZSBzaG91bGQgbm90IGhhdmUgYSBtZWFuaW5n
ZnVsIHZhbHVlIHBhcmFtZXRlciwgYnV0Ci0gICAgIyBzb21ldGltZXMgZG9lcywgcGFydGljdWxh
cmx5IGZvciBzdHJpbmcgZXhjZXB0aW9ucywgc3VjaCBhcwotICAgICMgPj4+IHJhaXNlIHN0cmlu
ZzEsIHN0cmluZzIgICMgZGVwcmVjYXRlZAotICAgICMKLSAgICAjIENsZWFyIHRoZXNlIG91dCBm
aXJzdCBiZWNhdXNlIGlzc3VidHlwZShzdHJpbmcxLCBTeW50YXhFcnJvcikKLSAgICAjIHdvdWxk
IHRocm93IGFub3RoZXIgZXhjZXB0aW9uIGFuZCBtYXNrIHRoZSBvcmlnaW5hbCBwcm9ibGVtLgot
ICAgIGlmIChpc2luc3RhbmNlKGV0eXBlLCBCYXNlRXhjZXB0aW9uKSBvcgotICAgICAgICBpc2lu
c3RhbmNlKGV0eXBlLCB0eXBlcy5JbnN0YW5jZVR5cGUpIG9yCi0gICAgICAgICAgICBldHlwZSBp
cyBOb25lIG9yIHR5cGUoZXR5cGUpIGlzIHN0cik6Ci0gICAgICAgIHJldHVybiBbX2Zvcm1hdF9m
aW5hbF9leGNfbGluZShldHlwZSwgdmFsdWUpXQotCi0gICAgc3R5cGUgPSBldHlwZS5fX25hbWVf
XwotCi0gICAgaWYgbm90IGlzc3ViY2xhc3MoZXR5cGUsIFN5bnRheEVycm9yKToKLSAgICAgICAg
cmV0dXJuIFtfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKHN0eXBlLCB2YWx1ZSldCi0KLSAgICAjIEl0
IHdhcyBhIHN5bnRheCBlcnJvcjsgc2hvdyBleGFjdGx5IHdoZXJlIHRoZSBwcm9ibGVtIHdhcyBm
b3VuZC4KLSAgICBsaW5lcyA9IFtdCi0gICAgdHJ5OgotICAgICAgICBtc2csIChmaWxlbmFtZSwg
bGluZW5vLCBvZmZzZXQsIGJhZGxpbmUpID0gdmFsdWUuYXJncwotICAgIGV4Y2VwdCBFeGNlcHRp
b246Ci0gICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1l
IG9yICI8c3RyaW5nPiIKLSAgICAgICAgbGluZXMuYXBwZW5kKCcgIEZpbGUgIiVzIiwgbGluZSAl
ZFxuJyAlIChmaWxlbmFtZSwgbGluZW5vKSkKLSAgICAgICAgaWYgYmFkbGluZSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoYmFkbGluZSwgYnl0ZXMpOiAgIyBweXRob24g
MiBvbmx5Ci0gICAgICAgICAgICAgICAgYmFkbGluZSA9IGJhZGxpbmUuZGVjb2RlKCd1dGYtOCcs
ICdyZXBsYWNlJykKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCh1JyAgICAlc1xuJyAlIGJhZGxp
bmUuc3RyaXAoKSkKLSAgICAgICAgICAgIGlmIG9mZnNldCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICBjYXJldHNwYWNlID0gYmFkbGluZS5yc3RyaXAoJ1xuJylbOm9mZnNldF0ubHN0cmlw
KCkKLSAgICAgICAgICAgICAgICAjIG5vbi1zcGFjZSB3aGl0ZXNwYWNlIChsaWtlcyB0YWJzKSBt
dXN0IGJlIGtlcHQgZm9yIGFsaWdubWVudAotICAgICAgICAgICAgICAgIGNhcmV0c3BhY2UgPSAo
KGMuaXNzcGFjZSgpIGFuZCBjIG9yICcgJykgZm9yIGMgaW4gY2FyZXRzcGFjZSkKLSAgICAgICAg
ICAgICAgICAjIG9ubHkgdGhyZWUgc3BhY2VzIHRvIGFjY291bnQgZm9yIG9mZnNldDEgPT0gcG9z
IDAKLSAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICVzXlxuJyAlICcnLmpvaW4oY2Fy
ZXRzcGFjZSkpCi0gICAgICAgIHZhbHVlID0gbXNnCi0KLSAgICBsaW5lcy5hcHBlbmQoX2Zvcm1h
dF9maW5hbF9leGNfbGluZShzdHlwZSwgdmFsdWUpKQotICAgIHJldHVybiBsaW5lcwotCi0KLWRl
ZiBfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKGV0eXBlLCB2YWx1ZSk6Ci0gICAgIiIiUmV0dXJuIGEg
bGlzdCBvZiBhIHNpbmdsZSBsaW5lIC0tIG5vcm1hbCBjYXNlIGZvciBmb3JtYXRfZXhjZXB0aW9u
X29ubHkiIiIKLSAgICB2YWx1ZXN0ciA9IF9zb21lX3N0cih2YWx1ZSkKLSAgICBpZiB2YWx1ZSBp
cyBOb25lIG9yIG5vdCB2YWx1ZXN0cjoKLSAgICAgICAgbGluZSA9ICIlc1xuIiAlIGV0eXBlCi0g
ICAgZWxzZToKLSAgICAgICAgbGluZSA9ICIlczogJXNcbiIgJSAoZXR5cGUsIHZhbHVlc3RyKQot
ICAgIHJldHVybiBsaW5lCi0KLQotZGVmIF9zb21lX3N0cih2YWx1ZSk6Ci0gICAgdHJ5OgotICAg
ICAgICByZXR1cm4gdW5pY29kZSh2YWx1ZSkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgotICAgICAgICAgICAgcGFzcwotICAgIHJldHVybiAnPHVucHJpbnRhYmxlICVzIG9i
amVjdD4nICUgdHlwZSh2YWx1ZSkuX19uYW1lX18KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvX2NvZGUvY29kZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZiMjMyYmQ0MzBlOWI0ZjhhZDc2OWUzMDU3
ZGRlZmVjMjgxYTY3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw5MDYgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHN5cwotZnJvbSBpbnNwZWN0IGltcG9ydCBD
T19WQVJBUkdTLCBDT19WQVJLRVlXT1JEUwotaW1wb3J0IHJlCi1mcm9tIHdlYWtyZWYgaW1wb3J0
IHJlZgotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX1BZMiwgX1BZMywgUFkzNSwgc2FmZV9z
dHIKLQotaW1wb3J0IHB5Ci1idWlsdGluX3JlcHIgPSByZXByCi0KLWlmIF9QWTM6Ci0gICAgZnJv
bSB0cmFjZWJhY2sgaW1wb3J0IGZvcm1hdF9leGNlcHRpb25fb25seQotZWxzZToKLSAgICBmcm9t
IC5fcHkydHJhY2ViYWNrIGltcG9ydCBmb3JtYXRfZXhjZXB0aW9uX29ubHkKLQotCi1jbGFzcyBD
b2RlKG9iamVjdCk6Ci0gICAgIiIiIHdyYXBwZXIgYXJvdW5kIFB5dGhvbiBjb2RlIG9iamVjdHMg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3Y29kZSk6Ci0gICAgICAgIGlmIG5vdCBo
YXNhdHRyKHJhd2NvZGUsICJjb19maWxlbmFtZSIpOgotICAgICAgICAgICAgcmF3Y29kZSA9IGdl
dHJhd2NvZGUocmF3Y29kZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5maWxlbmFt
ZSA9IHJhd2NvZGUuY29fZmlsZW5hbWUKLSAgICAgICAgICAgIHNlbGYuZmlyc3RsaW5lbm8gPSBy
YXdjb2RlLmNvX2ZpcnN0bGluZW5vIC0gMQotICAgICAgICAgICAgc2VsZi5uYW1lID0gcmF3Y29k
ZS5jb19uYW1lCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJh
aXNlIFR5cGVFcnJvcigibm90IGEgY29kZSBvYmplY3Q6ICVyIiAlIChyYXdjb2RlLCkpCi0gICAg
ICAgIHNlbGYucmF3ID0gcmF3Y29kZQotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLnJhdyA9PSBvdGhlci5yYXcKLQotICAgIF9faGFzaF9fID0gTm9u
ZQotCi0gICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiBub3Qgc2Vs
ZiA9PSBvdGhlcgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHBhdGgoc2VsZik6Ci0gICAgICAg
ICIiIiByZXR1cm4gYSBwYXRoIG9iamVjdCBwb2ludGluZyB0byBzb3VyY2UgY29kZSAobm90ZSB0
aGF0IGl0Ci0gICAgICAgIG1pZ2h0IG5vdCBwb2ludCB0byBhbiBhY3R1YWxseSBleGlzdGluZyBm
aWxlKS4gIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHNl
bGYucmF3LmNvX2ZpbGVuYW1lKQotICAgICAgICAgICAgIyBtYXliZSBkb24ndCB0cnkgdGhpcyBj
aGVja2luZwotICAgICAgICAgICAgaWYgbm90IHAuY2hlY2soKToKLSAgICAgICAgICAgICAgICBy
YWlzZSBPU0Vycm9yKCJweS5wYXRoIGNoZWNrIGZhaWxlZC4iKQotICAgICAgICBleGNlcHQgT1NF
cnJvcjoKLSAgICAgICAgICAgICMgWFhYIG1heWJlIHRyeSBoYXJkZXIgbGlrZSB0aGUgd2VpcmQg
bG9naWMKLSAgICAgICAgICAgICMgaW4gdGhlIHN0YW5kYXJkIGxpYiBbbGluZWNhY2hlLnVwZGF0
ZWNhY2hlXSBkb2VzPwotICAgICAgICAgICAgcCA9IHNlbGYucmF3LmNvX2ZpbGVuYW1lCi0KLSAg
ICAgICAgcmV0dXJuIHAKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmdWxsc291cmNlKHNlbGYp
OgotICAgICAgICAiIiIgcmV0dXJuIGEgX3B5dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0
aGUgZnVsbCBzb3VyY2UgZmlsZSBvZiB0aGUgY29kZQotICAgICAgICAiIiIKLSAgICAgICAgZnJv
bSBfcHl0ZXN0Ll9jb2RlIGltcG9ydCBzb3VyY2UKLSAgICAgICAgZnVsbCwgXyA9IHNvdXJjZS5m
aW5kc291cmNlKHNlbGYucmF3KQotICAgICAgICByZXR1cm4gZnVsbAotCi0gICAgZGVmIHNvdXJj
ZShzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBhIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVj
dCBmb3IgdGhlIGNvZGUgb2JqZWN0J3Mgc291cmNlIG9ubHkKLSAgICAgICAgIiIiCi0gICAgICAg
ICMgcmV0dXJuIHNvdXJjZSBvbmx5IGZvciB0aGF0IHBhcnQgb2YgY29kZQotICAgICAgICBpbXBv
cnQgX3B5dGVzdC5fY29kZQotICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5Tb3VyY2Uoc2Vs
Zi5yYXcpCi0KLSAgICBkZWYgZ2V0YXJncyhzZWxmLCB2YXI9RmFsc2UpOgotICAgICAgICAiIiIg
cmV0dXJuIGEgdHVwbGUgd2l0aCB0aGUgYXJndW1lbnQgbmFtZXMgZm9yIHRoZSBjb2RlIG9iamVj
dAotCi0gICAgICAgICAgICBpZiAndmFyJyBpcyBzZXQgVHJ1ZSBhbHNvIHJldHVybiB0aGUgbmFt
ZXMgb2YgdGhlIHZhcmlhYmxlIGFuZAotICAgICAgICAgICAga2V5d29yZCBhcmd1bWVudHMgd2hl
biBwcmVzZW50Ci0gICAgICAgICIiIgotICAgICAgICAjIGhhbmRmdWxsIHNob3J0Y3V0IGZvciBn
ZXR0aW5nIGFyZ3MKLSAgICAgICAgcmF3ID0gc2VsZi5yYXcKLSAgICAgICAgYXJnY291bnQgPSBy
YXcuY29fYXJnY291bnQKLSAgICAgICAgaWYgdmFyOgotICAgICAgICAgICAgYXJnY291bnQgKz0g
cmF3LmNvX2ZsYWdzICYgQ09fVkFSQVJHUwotICAgICAgICAgICAgYXJnY291bnQgKz0gcmF3LmNv
X2ZsYWdzICYgQ09fVkFSS0VZV09SRFMKLSAgICAgICAgcmV0dXJuIHJhdy5jb192YXJuYW1lc1s6
YXJnY291bnRdCi0KLQotY2xhc3MgRnJhbWUob2JqZWN0KToKLSAgICAiIiJXcmFwcGVyIGFyb3Vu
ZCBhIFB5dGhvbiBmcmFtZSBob2xkaW5nIGZfbG9jYWxzIGFuZCBmX2dsb2JhbHMKLSAgICBpbiB3
aGljaCBleHByZXNzaW9ucyBjYW4gYmUgZXZhbHVhdGVkLiIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2VsZi5saW5lbm8gPSBmcmFtZS5mX2xpbmVubyAtIDEK
LSAgICAgICAgc2VsZi5mX2dsb2JhbHMgPSBmcmFtZS5mX2dsb2JhbHMKLSAgICAgICAgc2VsZi5m
X2xvY2FscyA9IGZyYW1lLmZfbG9jYWxzCi0gICAgICAgIHNlbGYucmF3ID0gZnJhbWUKLSAgICAg
ICAgc2VsZi5jb2RlID0gQ29kZShmcmFtZS5mX2NvZGUpCi0KLSAgICBAcHJvcGVydHkKLSAgICBk
ZWYgc3RhdGVtZW50KHNlbGYpOgotICAgICAgICAiIiIgc3RhdGVtZW50IHRoaXMgZnJhbWUgaXMg
YXQgIiIiCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIGlmIHNlbGYuY29k
ZS5mdWxsc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIpCi0gICAgICAgIHJldHVybiBzZWxmLmNvZGUuZnVsbHNvdXJjZS5nZXRzdGF0ZW1l
bnQoc2VsZi5saW5lbm8pCi0KLSAgICBkZWYgZXZhbChzZWxmLCBjb2RlLCAqKnZhcnMpOgotICAg
ICAgICAiIiIgZXZhbHVhdGUgJ2NvZGUnIGluIHRoZSBmcmFtZQotCi0gICAgICAgICAgICAndmFy
cycgYXJlIG9wdGlvbmFsIGFkZGl0aW9uYWwgbG9jYWwgdmFyaWFibGVzCi0KLSAgICAgICAgICAg
IHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGlvbgotICAgICAgICAiIiIKLSAgICAg
ICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9jYWxzLmNvcHkoKQotICAgICAgICBmX2xvY2Fscy51cGRh
dGUodmFycykKLSAgICAgICAgcmV0dXJuIGV2YWwoY29kZSwgc2VsZi5mX2dsb2JhbHMsIGZfbG9j
YWxzKQotCi0gICAgZGVmIGV4ZWNfKHNlbGYsIGNvZGUsICoqdmFycyk6Ci0gICAgICAgICIiIiBl
eGVjICdjb2RlJyBpbiB0aGUgZnJhbWUKLQotICAgICAgICAgICAgJ3ZhcnMnIGFyZSBvcHRpb25h
OyBhZGRpdGlvbmFsIGxvY2FsIHZhcmlhYmxlcwotICAgICAgICAiIiIKLSAgICAgICAgZl9sb2Nh
bHMgPSBzZWxmLmZfbG9jYWxzLmNvcHkoKQotICAgICAgICBmX2xvY2Fscy51cGRhdGUodmFycykK
LSAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMp
Ci0KLSAgICBkZWYgcmVwcihzZWxmLCBvYmplY3QpOgotICAgICAgICAiIiIgcmV0dXJuIGEgJ3Nh
ZmUnIChub24tcmVjdXJzaXZlLCBvbmUtbGluZSkgc3RyaW5nIHJlcHIgZm9yICdvYmplY3QnCi0g
ICAgICAgICIiIgotICAgICAgICByZXR1cm4gcHkuaW8uc2FmZXJlcHIob2JqZWN0KQotCi0gICAg
ZGVmIGlzX3RydWUoc2VsZiwgb2JqZWN0KToKLSAgICAgICAgcmV0dXJuIG9iamVjdAotCi0gICAg
ZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBhIGxpc3Qg
b2YgdHVwbGVzIChuYW1lLCB2YWx1ZSkgZm9yIGFsbCBhcmd1bWVudHMKLQotICAgICAgICAgICAg
aWYgJ3ZhcicgaXMgc2V0IFRydWUgYWxzbyBpbmNsdWRlIHRoZSB2YXJpYWJsZSBhbmQga2V5d29y
ZAotICAgICAgICAgICAgYXJndW1lbnRzIHdoZW4gcHJlc2VudAotICAgICAgICAiIiIKLSAgICAg
ICAgcmV0dmFsID0gW10KLSAgICAgICAgZm9yIGFyZyBpbiBzZWxmLmNvZGUuZ2V0YXJncyh2YXIp
OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHZhbC5hcHBlbmQoKGFyZywg
c2VsZi5mX2xvY2Fsc1thcmddKSkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAg
ICAgICAgICAgICBwYXNzICAgICAjIHRoaXMgY2FuIG9jY3VyIHdoZW4gdXNpbmcgUHN5Y28KLSAg
ICAgICAgcmV0dXJuIHJldHZhbAotCi0KLWNsYXNzIFRyYWNlYmFja0VudHJ5KG9iamVjdCk6Ci0g
ICAgIiIiIGEgc2luZ2xlIGVudHJ5IGluIGEgdHJhY2ViYWNrICIiIgotCi0gICAgX3JlcHJfc3R5
bGUgPSBOb25lCi0gICAgZXhwcmluZm8gPSBOb25lCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cmF3ZW50cnksIGV4Y2luZm89Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2V4Y2luZm8gPSBleGNpbmZv
Ci0gICAgICAgIHNlbGYuX3Jhd2VudHJ5ID0gcmF3ZW50cnkKLSAgICAgICAgc2VsZi5saW5lbm8g
PSByYXdlbnRyeS50Yl9saW5lbm8gLSAxCi0KLSAgICBkZWYgc2V0X3JlcHJfc3R5bGUoc2VsZiwg
bW9kZSk6Ci0gICAgICAgIGFzc2VydCBtb2RlIGluICgic2hvcnQiLCAibG9uZyIpCi0gICAgICAg
IHNlbGYuX3JlcHJfc3R5bGUgPSBtb2RlCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnJhbWUo
c2VsZik6Ci0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIHJldHVybiBfcHl0
ZXN0Ll9jb2RlLkZyYW1lKHNlbGYuX3Jhd2VudHJ5LnRiX2ZyYW1lKQotCi0gICAgQHByb3BlcnR5
Ci0gICAgZGVmIHJlbGxpbmUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmxpbmVubyAtIHNl
bGYuZnJhbWUuY29kZS5maXJzdGxpbmVubwotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAg
ICAgICByZXR1cm4gIjxUcmFjZWJhY2tFbnRyeSAlczolZD4iICUgKHNlbGYuZnJhbWUuY29kZS5w
YXRoLCBzZWxmLmxpbmVubyArIDEpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgc3RhdGVtZW50
KHNlbGYpOgotICAgICAgICAiIiIgX3B5dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0aGUg
Y3VycmVudCBzdGF0ZW1lbnQgIiIiCi0gICAgICAgIHNvdXJjZSA9IHNlbGYuZnJhbWUuY29kZS5m
dWxsc291cmNlCi0gICAgICAgIHJldHVybiBzb3VyY2UuZ2V0c3RhdGVtZW50KHNlbGYubGluZW5v
KQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHBhdGgoc2VsZik6Ci0gICAgICAgICIiIiBwYXRo
IHRvIHRoZSBzb3VyY2UgY29kZSAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuY29kZS5w
YXRoCi0KLSAgICBkZWYgZ2V0bG9jYWxzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5mcmFt
ZS5mX2xvY2FscwotICAgIGxvY2FscyA9IHByb3BlcnR5KGdldGxvY2FscywgTm9uZSwgTm9uZSwg
ImxvY2FscyBvZiB1bmRlcmxheWluZyBmcmFtZSIpCi0KLSAgICBkZWYgZ2V0Zmlyc3RsaW5lc291
cmNlKHNlbGYpOgotICAgICAgICAjIG9uIEp5dGhvbiB0aGlzIGZpcnN0bGluZW5vIGNhbiBiZSAt
MSBhcHBhcmVudGx5Ci0gICAgICAgIHJldHVybiBtYXgoc2VsZi5mcmFtZS5jb2RlLmZpcnN0bGlu
ZW5vLCAwKQotCi0gICAgZGVmIGdldHNvdXJjZShzZWxmLCBhc3RjYWNoZT1Ob25lKToKLSAgICAg
ICAgIiIiIHJldHVybiBmYWlsaW5nIHNvdXJjZSBjb2RlLiAiIiIKLSAgICAgICAgIyB3ZSB1c2Ug
dGhlIHBhc3NlZCBpbiBhc3RjYWNoZSB0byBub3QgcmVwYXJzZSBhc3R0cmVlcwotICAgICAgICAj
IHdpdGhpbiBleGNlcHRpb24gaW5mbyBwcmludGluZwotICAgICAgICBmcm9tIF9weXRlc3QuX2Nv
ZGUuc291cmNlIGltcG9ydCBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QKLSAgICAgICAgc291cmNlID0g
c2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3VyY2UKLSAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBrZXkgPSBhc3Rub2RlID0gTm9uZQotICAg
ICAgICBpZiBhc3RjYWNoZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGtleSA9IHNlbGYuZnJh
bWUuY29kZS5wYXRoCi0gICAgICAgICAgICBpZiBrZXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgYXN0bm9kZSA9IGFzdGNhY2hlLmdldChrZXksIE5vbmUpCi0gICAgICAgIHN0YXJ0ID0g
c2VsZi5nZXRmaXJzdGxpbmVzb3VyY2UoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhc3Ru
b2RlLCBfLCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3Qoc2VsZi5saW5lbm8sIHNvdXJjZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Ru
b2RlPWFzdG5vZGUpCi0gICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIGVu
ZCA9IHNlbGYubGluZW5vICsgMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYga2V5IGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGFzdGNhY2hlW2tleV0gPSBhc3Rub2RlCi0gICAg
ICAgIHJldHVybiBzb3VyY2Vbc3RhcnQ6ZW5kXQotCi0gICAgc291cmNlID0gcHJvcGVydHkoZ2V0
c291cmNlKQotCi0gICAgZGVmIGlzaGlkZGVuKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIFRy
dWUgaWYgdGhlIGN1cnJlbnQgZnJhbWUgaGFzIGEgdmFyIF9fdHJhY2ViYWNraGlkZV9fCi0gICAg
ICAgICAgICByZXNvbHZpbmcgdG8gVHJ1ZQotCi0gICAgICAgICAgICBJZiBfX3RyYWNlYmFja2hp
ZGVfXyBpcyBhIGNhbGxhYmxlLCBpdCBnZXRzIGNhbGxlZCB3aXRoIHRoZQotICAgICAgICAgICAg
RXhjZXB0aW9uSW5mbyBpbnN0YW5jZSBhbmQgY2FuIGRlY2lkZSB3aGV0aGVyIHRvIGhpZGUgdGhl
IHRyYWNlYmFjay4KLQotICAgICAgICAgICAgbW9zdGx5IGZvciBpbnRlcm5hbCB1c2UKLSAgICAg
ICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRiaCA9IHNlbGYuZnJhbWUuZl9sb2Nh
bHNbJ19fdHJhY2ViYWNraGlkZV9fJ10KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRiaCA9IHNlbGYuZnJhbWUuZl9nbG9iYWxzWydf
X3RyYWNlYmFja2hpZGVfXyddCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgY2FsbGFibGUodGJoKToKLSAgICAg
ICAgICAgIHJldHVybiB0YmgoTm9uZSBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmUgZWxzZSBzZWxm
Ll9leGNpbmZvKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdGJoCi0KLSAg
ICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZm4gPSBzdHIo
c2VsZi5wYXRoKQotICAgICAgICBleGNlcHQgcHkuZXJyb3IuRXJyb3I6Ci0gICAgICAgICAgICBm
biA9ICc/Pz8nCi0gICAgICAgIG5hbWUgPSBzZWxmLmZyYW1lLmNvZGUubmFtZQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBsaW5lID0gc3RyKHNlbGYuc3RhdGVtZW50KS5sc3RyaXAoKQotICAg
ICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICByYWlzZQotICAgICAg
ICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIGxpbmUgPSAiPz8/IgotICAgICAgICByZXR1
cm4gIiAgRmlsZSAlcjolZCBpbiAlc1xuICAlc1xuIiAlIChmbiwgc2VsZi5saW5lbm8gKyAxLCBu
YW1lLCBsaW5lKQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZy
YW1lLmNvZGUucmF3LmNvX25hbWUKLSAgICBuYW1lID0gcHJvcGVydHkobmFtZSwgTm9uZSwgTm9u
ZSwgImNvX25hbWUgb2YgdW5kZXJsYXlpbmcgY29kZSIpCi0KLQotY2xhc3MgVHJhY2ViYWNrKGxp
c3QpOgotICAgICIiIiBUcmFjZWJhY2sgb2JqZWN0cyBlbmNhcHN1bGF0ZSBhbmQgb2ZmZXIgaGln
aGVyIGxldmVsCi0gICAgICAgIGFjY2VzcyB0byBUcmFjZWJhY2sgZW50cmllcy4KLSAgICAiIiIK
LSAgICBFbnRyeSA9IFRyYWNlYmFja0VudHJ5Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGIs
IGV4Y2luZm89Tm9uZSk6Ci0gICAgICAgICIiIiBpbml0aWFsaXplIGZyb20gZ2l2ZW4gcHl0aG9u
IHRyYWNlYmFjayBvYmplY3QgYW5kIEV4Y2VwdGlvbkluZm8gIiIiCi0gICAgICAgIHNlbGYuX2V4
Y2luZm8gPSBleGNpbmZvCi0gICAgICAgIGlmIGhhc2F0dHIodGIsICd0Yl9uZXh0Jyk6Ci0gICAg
ICAgICAgICBkZWYgZihjdXIpOgotICAgICAgICAgICAgICAgIHdoaWxlIGN1ciBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5FbnRyeShjdXIsIGV4Y2luZm89ZXhj
aW5mbykKLSAgICAgICAgICAgICAgICAgICAgY3VyID0gY3VyLnRiX25leHQKLSAgICAgICAgICAg
IGxpc3QuX19pbml0X18oc2VsZiwgZih0YikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBs
aXN0Ll9faW5pdF9fKHNlbGYsIHRiKQotCi0gICAgZGVmIGN1dChzZWxmLCBwYXRoPU5vbmUsIGxp
bmVubz1Ob25lLCBmaXJzdGxpbmVubz1Ob25lLCBleGNsdWRlcGF0aD1Ob25lKToKLSAgICAgICAg
IiIiIHJldHVybiBhIFRyYWNlYmFjayBpbnN0YW5jZSB3cmFwcGluZyBwYXJ0IG9mIHRoaXMgVHJh
Y2ViYWNrCi0KLSAgICAgICAgICAgIGJ5IHByb3ZkaW5nIGFueSBjb21iaW5hdGlvbiBvZiBwYXRo
LCBsaW5lbm8gYW5kIGZpcnN0bGluZW5vLCB0aGUKLSAgICAgICAgICAgIGZpcnN0IGZyYW1lIHRv
IHN0YXJ0IHRoZSB0by1iZS1yZXR1cm5lZCB0cmFjZWJhY2sgaXMgZGV0ZXJtaW5lZAotCi0gICAg
ICAgICAgICB0aGlzIGFsbG93cyBjdXR0aW5nIHRoZSBmaXJzdCBwYXJ0IG9mIGEgVHJhY2ViYWNr
IGluc3RhbmNlIGUuZy4KLSAgICAgICAgICAgIGZvciBmb3JtYXR0aW5nIHJlYXNvbnMgKHJlbW92
aW5nIHNvbWUgdW5pbnRlcmVzdGluZyBiaXRzIHRoYXQgZGVhbAotICAgICAgICAgICAgd2l0aCBo
YW5kbGluZyBvZiB0aGUgZXhjZXB0aW9uL3RyYWNlYmFjaykKLSAgICAgICAgIiIiCi0gICAgICAg
IGZvciB4IGluIHNlbGY6Ci0gICAgICAgICAgICBjb2RlID0geC5mcmFtZS5jb2RlCi0gICAgICAg
ICAgICBjb2RlcGF0aCA9IGNvZGUucGF0aAotICAgICAgICAgICAgaWYgKChwYXRoIGlzIE5vbmUg
b3IgY29kZXBhdGggPT0gcGF0aCkgYW5kCi0gICAgICAgICAgICAgICAgKGV4Y2x1ZGVwYXRoIGlz
IE5vbmUgb3Igbm90IGhhc2F0dHIoY29kZXBhdGgsICdyZWx0bycpIG9yCi0gICAgICAgICAgICAg
ICAgIG5vdCBjb2RlcGF0aC5yZWx0byhleGNsdWRlcGF0aCkpIGFuZAotICAgICAgICAgICAgICAg
IChsaW5lbm8gaXMgTm9uZSBvciB4LmxpbmVubyA9PSBsaW5lbm8pIGFuZAotICAgICAgICAgICAg
ICAgICAgICAoZmlyc3RsaW5lbm8gaXMgTm9uZSBvciB4LmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8g
PT0gZmlyc3RsaW5lbm8pKToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJhY2ViYWNrKHguX3Jh
d2VudHJ5LCBzZWxmLl9leGNpbmZvKQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9f
Z2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHZhbCA9IHN1cGVyKFRyYWNlYmFjaywgc2Vs
ZikuX19nZXRpdGVtX18oa2V5KQotICAgICAgICBpZiBpc2luc3RhbmNlKGtleSwgdHlwZShzbGlj
ZSgwKSkpOgotICAgICAgICAgICAgdmFsID0gc2VsZi5fX2NsYXNzX18odmFsKQotICAgICAgICBy
ZXR1cm4gdmFsCi0KLSAgICBkZWYgZmlsdGVyKHNlbGYsIGZuPWxhbWJkYSB4OiBub3QgeC5pc2hp
ZGRlbigpKToKLSAgICAgICAgIiIiIHJldHVybiBhIFRyYWNlYmFjayBpbnN0YW5jZSB3aXRoIGNl
cnRhaW4gaXRlbXMgcmVtb3ZlZAotCi0gICAgICAgICAgICBmbiBpcyBhIGZ1bmN0aW9uIHRoYXQg
Z2V0cyBhIHNpbmdsZSBhcmd1bWVudCwgYSBUcmFjZWJhY2tFbnRyeQotICAgICAgICAgICAgaW5z
dGFuY2UsIGFuZCBzaG91bGQgcmV0dXJuIFRydWUgd2hlbiB0aGUgaXRlbSBzaG91bGQgYmUgYWRk
ZWQKLSAgICAgICAgICAgIHRvIHRoZSBUcmFjZWJhY2ssIEZhbHNlIHdoZW4gbm90Ci0KLSAgICAg
ICAgICAgIGJ5IGRlZmF1bHQgdGhpcyByZW1vdmVzIGFsbCB0aGUgVHJhY2ViYWNrRW50cmllcyB3
aGljaCBhcmUgaGlkZGVuCi0gICAgICAgICAgICAoc2VlIGlzaGlkZGVuKCkgYWJvdmUpCi0gICAg
ICAgICIiIgotICAgICAgICByZXR1cm4gVHJhY2ViYWNrKGZpbHRlcihmbiwgc2VsZiksIHNlbGYu
X2V4Y2luZm8pCi0KLSAgICBkZWYgZ2V0Y3Jhc2hlbnRyeShzZWxmKToKLSAgICAgICAgIiIiIHJl
dHVybiBsYXN0IG5vbi1oaWRkZW4gdHJhY2ViYWNrIGVudHJ5IHRoYXQgbGVhZAotICAgICAgICB0
byB0aGUgZXhjZXB0aW9uIG9mIGEgdHJhY2ViYWNrLgotICAgICAgICAiIiIKLSAgICAgICAgZm9y
IGkgaW4gcmFuZ2UoLTEsIC1sZW4oc2VsZikgLSAxLCAtMSk6Ci0gICAgICAgICAgICBlbnRyeSA9
IHNlbGZbaV0KLSAgICAgICAgICAgIGlmIG5vdCBlbnRyeS5pc2hpZGRlbigpOgotICAgICAgICAg
ICAgICAgIHJldHVybiBlbnRyeQotICAgICAgICByZXR1cm4gc2VsZlstMV0KLQotICAgIGRlZiBy
ZWN1cnNpb25pbmRleChzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiB0aGUgaW5kZXggb2YgdGhl
IGZyYW1lL1RyYWNlYmFja0VudHJ5IHdoZXJlIHJlY3Vyc2lvbgotICAgICAgICAgICAgb3JpZ2lu
YXRlcyBpZiBhcHByb3ByaWF0ZSwgTm9uZSBpZiBubyByZWN1cnNpb24gb2NjdXJyZWQKLSAgICAg
ICAgIiIiCi0gICAgICAgIGNhY2hlID0ge30KLSAgICAgICAgZm9yIGksIGVudHJ5IGluIGVudW1l
cmF0ZShzZWxmKToKLSAgICAgICAgICAgICMgaWQgZm9yIHRoZSBjb2RlLnJhdyBpcyBuZWVkZWQg
dG8gd29yayBhcm91bmQKLSAgICAgICAgICAgICMgdGhlIHN0cmFuZ2UgbWV0YXByb2dyYW1taW5n
IGluIHRoZSBkZWNvcmF0b3IgbGliIGZyb20gcHlwaQotICAgICAgICAgICAgIyB3aGljaCBnZW5l
cmF0ZXMgY29kZSBvYmplY3RzIHRoYXQgaGF2ZSBoYXNoL3ZhbHVlIGVxdWFsaXR5Ci0gICAgICAg
ICAgICAjIFhYWCBuZWVkcyBhIHRlc3QKLSAgICAgICAgICAgIGtleSA9IGVudHJ5LmZyYW1lLmNv
ZGUucGF0aCwgaWQoZW50cnkuZnJhbWUuY29kZS5yYXcpLCBlbnRyeS5saW5lbm8KLSAgICAgICAg
ICAgICMgcHJpbnQgImNoZWNraW5nIGZvciByZWN1cnNpb24gYXQiLCBrZXkKLSAgICAgICAgICAg
IHZhbHVlcyA9IGNhY2hlLnNldGRlZmF1bHQoa2V5LCBbXSkKLSAgICAgICAgICAgIGlmIHZhbHVl
czoKLSAgICAgICAgICAgICAgICBmID0gZW50cnkuZnJhbWUKLSAgICAgICAgICAgICAgICBsb2Mg
PSBmLmZfbG9jYWxzCi0gICAgICAgICAgICAgICAgZm9yIG90aGVybG9jIGluIHZhbHVlczoKLSAg
ICAgICAgICAgICAgICAgICAgaWYgZi5pc190cnVlKGYuZXZhbChjb19lcXVhbCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18x
PWxvYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JlY3Vyc2lv
bmNhY2hlX2xvY2Fsc18yPW90aGVybG9jKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gaQotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChlbnRyeS5mcmFtZS5mX2xvY2FscykKLSAg
ICAgICAgcmV0dXJuIE5vbmUKLQotCi1jb19lcXVhbCA9IGNvbXBpbGUoJ19fcmVjdXJzaW9uY2Fj
aGVfbG9jYWxzXzEgPT0gX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMicsCi0gICAgICAgICAgICAg
ICAgICAgJz8nLCAnZXZhbCcpCi0KLQotY2xhc3MgRXhjZXB0aW9uSW5mbyhvYmplY3QpOgotICAg
ICIiIiB3cmFwcyBzeXMuZXhjX2luZm8oKSBvYmplY3RzIGFuZCBvZmZlcnMKLSAgICAgICAgaGVs
cCBmb3IgbmF2aWdhdGluZyB0aGUgdHJhY2ViYWNrLgotICAgICIiIgotICAgIF9zdHJpcHRleHQg
PSAnJwotICAgIF9hc3NlcnRfc3RhcnRfcmVwciA9ICJBc3NlcnRpb25FcnJvcih1XCdhc3NlcnQg
IiBpZiBfUFkyIGVsc2UgIkFzc2VydGlvbkVycm9yKFwnYXNzZXJ0ICIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0dXA9Tm9uZSwgZXhwcmluZm89Tm9uZSk6Ci0gICAgICAgIGltcG9ydCBfcHl0
ZXN0Ll9jb2RlCi0gICAgICAgIGlmIHR1cCBpcyBOb25lOgotICAgICAgICAgICAgdHVwID0gc3lz
LmV4Y19pbmZvKCkKLSAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmUgYW5kIGlzaW5zdGFu
Y2UodHVwWzFdLCBBc3NlcnRpb25FcnJvcik6Ci0gICAgICAgICAgICAgICAgZXhwcmluZm8gPSBn
ZXRhdHRyKHR1cFsxXSwgJ21zZycsIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgZXhwcmluZm8g
aXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgZXhwcmluZm8gPSBweS5pby5zYWZlcmVwcih0
dXBbMV0pCi0gICAgICAgICAgICAgICAgaWYgZXhwcmluZm8gYW5kIGV4cHJpbmZvLnN0YXJ0c3dp
dGgoc2VsZi5fYXNzZXJ0X3N0YXJ0X3JlcHIpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9z
dHJpcHRleHQgPSAnQXNzZXJ0aW9uRXJyb3I6ICcKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IHR1
cAotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGNsYXNzCi0gICAgICAgIHNlbGYudHlwZSA9IHR1
cFswXQotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGluc3RhbmNlCi0gICAgICAgIHNlbGYudmFs
dWUgPSB0dXBbMV0KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiByYXcgdHJhY2ViYWNrCi0gICAg
ICAgIHNlbGYudGIgPSB0dXBbMl0KLSAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiB0eXBlIG5hbWUK
LSAgICAgICAgc2VsZi50eXBlbmFtZSA9IHNlbGYudHlwZS5fX25hbWVfXwotICAgICAgICAjOiB0
aGUgZXhjZXB0aW9uIHRyYWNlYmFjayAoX3B5dGVzdC5fY29kZS5UcmFjZWJhY2sgaW5zdGFuY2Up
Ci0gICAgICAgIHNlbGYudHJhY2ViYWNrID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soc2VsZi50
YiwgZXhjaW5mbz1yZWYoc2VsZikpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAg
IHJldHVybiAiPEV4Y2VwdGlvbkluZm8gJXMgdGJsZW49JWQ+IiAlIChzZWxmLnR5cGVuYW1lLCBs
ZW4oc2VsZi50cmFjZWJhY2spKQotCi0gICAgZGVmIGV4Y29ubHkoc2VsZiwgdHJ5c2hvcnQ9RmFs
c2UpOgotICAgICAgICAiIiIgcmV0dXJuIHRoZSBleGNlcHRpb24gYXMgYSBzdHJpbmcKLQotICAg
ICAgICAgICAgd2hlbiAndHJ5c2hvcnQnIHJlc29sdmVzIHRvIFRydWUsIGFuZCB0aGUgZXhjZXB0
aW9uIGlzIGEKLSAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuX0Fzc2VydGlvbkVycm9yLCBvbmx5
IHRoZSBhY3R1YWwgZXhjZXB0aW9uIHBhcnQgb2YKLSAgICAgICAgICAgIHRoZSBleGNlcHRpb24g
cmVwcmVzZW50YXRpb24gaXMgcmV0dXJuZWQgKHNvICdBc3NlcnRpb25FcnJvcjogJyBpcwotICAg
ICAgICAgICAgcmVtb3ZlZCBmcm9tIHRoZSBiZWdpbm5pbmcpCi0gICAgICAgICIiIgotICAgICAg
ICBsaW5lcyA9IGZvcm1hdF9leGNlcHRpb25fb25seShzZWxmLnR5cGUsIHNlbGYudmFsdWUpCi0g
ICAgICAgIHRleHQgPSAnJy5qb2luKGxpbmVzKQotICAgICAgICB0ZXh0ID0gdGV4dC5yc3RyaXAo
KQotICAgICAgICBpZiB0cnlzaG9ydDoKLSAgICAgICAgICAgIGlmIHRleHQuc3RhcnRzd2l0aChz
ZWxmLl9zdHJpcHRleHQpOgotICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0W2xlbihzZWxmLl9z
dHJpcHRleHQpOl0KLSAgICAgICAgcmV0dXJuIHRleHQKLQotICAgIGRlZiBlcnJpc2luc3RhbmNl
KHNlbGYsIGV4Yyk6Ci0gICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiB0aGUgZXhjZXB0aW9uIGlz
IGFuIGluc3RhbmNlIG9mIGV4YyAiIiIKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uoc2VsZi52
YWx1ZSwgZXhjKQotCi0gICAgZGVmIF9nZXRyZXByY3Jhc2goc2VsZik6Ci0gICAgICAgIGV4Y29u
bHkgPSBzZWxmLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkKLSAgICAgICAgZW50cnkgPSBzZWxmLnRy
YWNlYmFjay5nZXRjcmFzaGVudHJ5KCkKLSAgICAgICAgcGF0aCwgbGluZW5vID0gZW50cnkuZnJh
bWUuY29kZS5yYXcuY29fZmlsZW5hbWUsIGVudHJ5LmxpbmVubwotICAgICAgICByZXR1cm4gUmVw
ckZpbGVMb2NhdGlvbihwYXRoLCBsaW5lbm8gKyAxLCBleGNvbmx5KQotCi0gICAgZGVmIGdldHJl
cHIoc2VsZiwgc2hvd2xvY2Fscz1GYWxzZSwgc3R5bGU9ImxvbmciLAotICAgICAgICAgICAgICAg
IGFic3BhdGg9RmFsc2UsIHRiZmlsdGVyPVRydWUsIGZ1bmNhcmdzPUZhbHNlKToKLSAgICAgICAg
IiIiIHJldHVybiBzdHIoKWFibGUgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBleGNlcHRpb24gaW5m
by4KLSAgICAgICAgICAgIHNob3dsb2NhbHM6IHNob3cgbG9jYWxzIHBlciB0cmFjZWJhY2sgZW50
cnkKLSAgICAgICAgICAgIHN0eWxlOiBsb25nfHNob3J0fG5vfG5hdGl2ZSB0cmFjZWJhY2sgc3R5
bGUKLSAgICAgICAgICAgIHRiZmlsdGVyOiBoaWRlIGVudHJpZXMgKHdoZXJlIF9fdHJhY2ViYWNr
aGlkZV9fIGlzIHRydWUpCi0KLSAgICAgICAgICAgIGluIGNhc2Ugb2Ygc3R5bGU9PW5hdGl2ZSwg
dGJmaWx0ZXIgYW5kIHNob3dsb2NhbHMgaXMgaWdub3JlZC4KLSAgICAgICAgIiIiCi0gICAgICAg
IGlmIHN0eWxlID09ICduYXRpdmUnOgotICAgICAgICAgICAgcmV0dXJuIFJlcHJFeGNlcHRpb25J
bmZvKFJlcHJUcmFjZWJhY2tOYXRpdmUoCi0gICAgICAgICAgICAgICAgcHkuc3RkLnRyYWNlYmFj
ay5mb3JtYXRfZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICBzZWxmLnR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYudmFsdWUsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYudHJh
Y2ViYWNrWzBdLl9yYXdlbnRyeSwKLSAgICAgICAgICAgICAgICApKSwgc2VsZi5fZ2V0cmVwcmNy
YXNoKCkpCi0KLSAgICAgICAgZm10ID0gRm9ybWF0dGVkRXhjaW5mbyhzaG93bG9jYWxzPXNob3ds
b2NhbHMsIHN0eWxlPXN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3Bh
dGg9YWJzcGF0aCwgdGJmaWx0ZXI9dGJmaWx0ZXIsIGZ1bmNhcmdzPWZ1bmNhcmdzKQotICAgICAg
ICByZXR1cm4gZm10LnJlcHJfZXhjaW5mbyhzZWxmKQotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6
Ci0gICAgICAgIGVudHJ5ID0gc2VsZi50cmFjZWJhY2tbLTFdCi0gICAgICAgIGxvYyA9IFJlcHJG
aWxlTG9jYXRpb24oZW50cnkucGF0aCwgZW50cnkubGluZW5vICsgMSwgc2VsZi5leGNvbmx5KCkp
Ci0gICAgICAgIHJldHVybiBzdHIobG9jKQotCi0gICAgZGVmIF9fdW5pY29kZV9fKHNlbGYpOgot
ICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQotICAgICAgICBsb2MgPSBSZXByRmls
ZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgpKQot
ICAgICAgICByZXR1cm4gdW5pY29kZShsb2MpCi0KLSAgICBkZWYgbWF0Y2goc2VsZiwgcmVnZXhw
KToKLSAgICAgICAgIiIiCi0gICAgICAgIE1hdGNoIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gJ3Jl
Z2V4cCcgb24gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZgotICAgICAgICB0aGUgZXhjZXB0
aW9uLiBJZiBpdCBtYXRjaGVzIHRoZW4gVHJ1ZSBpcyByZXR1cm5lZCAoc28gdGhhdCBpdCBpcwot
ICAgICAgICBwb3NzaWJsZSB0byB3cml0ZSAnYXNzZXJ0IGV4Y2luZm8ubWF0Y2goKScpLiBJZiBp
dCBkb2Vzbid0IG1hdGNoIGFuCi0gICAgICAgIEFzc2VydGlvbkVycm9yIGlzIHJhaXNlZC4KLSAg
ICAgICAgIiIiCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBpZiBu
b3QgcmUuc2VhcmNoKHJlZ2V4cCwgc3RyKHNlbGYudmFsdWUpKToKLSAgICAgICAgICAgIGFzc2Vy
dCAwLCAiUGF0dGVybiAnezAhc30nIG5vdCBmb3VuZCBpbiAnezEhc30nIi5mb3JtYXQoCi0gICAg
ICAgICAgICAgICAgcmVnZXhwLCBzZWxmLnZhbHVlKQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0K
LWNsYXNzIEZvcm1hdHRlZEV4Y2luZm8ob2JqZWN0KToKLSAgICAiIiIgcHJlc2VudGluZyBpbmZv
cm1hdGlvbiBhYm91dCBmYWlsaW5nIEZ1bmN0aW9ucyBhbmQgR2VuZXJhdG9ycy4gIiIiCi0gICAg
IyBmb3IgdHJhY2ViYWNrIGVudHJpZXMKLSAgICBmbG93X21hcmtlciA9ICI+IgotICAgIGZhaWxf
bWFya2VyID0gIkUiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2hvd2xvY2Fscz1GYWxzZSwg
c3R5bGU9ImxvbmciLCBhYnNwYXRoPVRydWUsIHRiZmlsdGVyPVRydWUsIGZ1bmNhcmdzPUZhbHNl
KToKLSAgICAgICAgc2VsZi5zaG93bG9jYWxzID0gc2hvd2xvY2FscwotICAgICAgICBzZWxmLnN0
eWxlID0gc3R5bGUKLSAgICAgICAgc2VsZi50YmZpbHRlciA9IHRiZmlsdGVyCi0gICAgICAgIHNl
bGYuZnVuY2FyZ3MgPSBmdW5jYXJncwotICAgICAgICBzZWxmLmFic3BhdGggPSBhYnNwYXRoCi0g
ICAgICAgIHNlbGYuYXN0Y2FjaGUgPSB7fQotCi0gICAgZGVmIF9nZXRpbmRlbnQoc2VsZiwgc291
cmNlKToKLSAgICAgICAgIyBmaWd1cmUgb3V0IGluZGVudCBmb3IgZ2l2ZW4gc291cmNlCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHMgPSBzdHIoc291cmNlLmdldHN0YXRlbWVudChsZW4oc291
cmNlKSAtIDEpKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAg
ICByYWlzZQotICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBzID0gc3RyKHNvdXJjZVstMV0pCi0gICAgICAgICAgICBleGNlcHQgS2V5Ym9h
cmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGV4Y2VwdDog
ICMgbm9xYQotICAgICAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgIHJldHVybiA0ICsgKGxl
bihzKSAtIGxlbihzLmxzdHJpcCgpKSkKLQotICAgIGRlZiBfZ2V0ZW50cnlzb3VyY2Uoc2VsZiwg
ZW50cnkpOgotICAgICAgICBzb3VyY2UgPSBlbnRyeS5nZXRzb3VyY2Uoc2VsZi5hc3RjYWNoZSkK
LSAgICAgICAgaWYgc291cmNlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc291cmNlID0gc291
cmNlLmRlaW5kZW50KCkKLSAgICAgICAgcmV0dXJuIHNvdXJjZQotCi0gICAgZGVmIF9zYWZlcmVw
cihzZWxmLCBvYmopOgotICAgICAgICByZXR1cm4gcHkuaW8uc2FmZXJlcHIob2JqKQotCi0gICAg
ZGVmIHJlcHJfYXJncyhzZWxmLCBlbnRyeSk6Ci0gICAgICAgIGlmIHNlbGYuZnVuY2FyZ3M6Ci0g
ICAgICAgICAgICBhcmdzID0gW10KLSAgICAgICAgICAgIGZvciBhcmduYW1lLCBhcmd2YWx1ZSBp
biBlbnRyeS5mcmFtZS5nZXRhcmdzKHZhcj1UcnVlKToKLSAgICAgICAgICAgICAgICBhcmdzLmFw
cGVuZCgoYXJnbmFtZSwgc2VsZi5fc2FmZXJlcHIoYXJndmFsdWUpKSkKLSAgICAgICAgICAgIHJl
dHVybiBSZXByRnVuY0FyZ3MoYXJncykKLQotICAgIGRlZiBnZXRfc291cmNlKHNlbGYsIHNvdXJj
ZSwgbGluZV9pbmRleD0tMSwgZXhjaW5mbz1Ob25lLCBzaG9ydD1GYWxzZSk6Ci0gICAgICAgICIi
IiByZXR1cm4gZm9ybWF0dGVkIGFuZCBtYXJrZWQgdXAgc291cmNlIGxpbmVzLiAiIiIKLSAgICAg
ICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBpZiBz
b3VyY2UgaXMgTm9uZSBvciBsaW5lX2luZGV4ID49IGxlbihzb3VyY2UubGluZXMpOgotICAgICAg
ICAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoIj8/PyIpCi0gICAgICAgICAgICBs
aW5lX2luZGV4ID0gMAotICAgICAgICBpZiBsaW5lX2luZGV4IDwgMDoKLSAgICAgICAgICAgIGxp
bmVfaW5kZXggKz0gbGVuKHNvdXJjZSkKLSAgICAgICAgc3BhY2VfcHJlZml4ID0gIiAgICAiCi0g
ICAgICAgIGlmIHNob3J0OgotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCAr
IHNvdXJjZS5saW5lc1tsaW5lX2luZGV4XS5zdHJpcCgpKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxpbmVzWzpsaW5lX2luZGV4XToKLSAgICAgICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgbGluZSkKLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZChzZWxmLmZsb3dfbWFya2VyICsgIiAgICIgKyBzb3VyY2UubGluZXNbbGluZV9pbmRl
eF0pCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzb3VyY2UubGluZXNbbGluZV9pbmRleCArIDE6
XToKLSAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgbGluZSkKLSAg
ICAgICAgaWYgZXhjaW5mbyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGluZGVudCA9IDQgaWYg
c2hvcnQgZWxzZSBzZWxmLl9nZXRpbmRlbnQoc291cmNlKQotICAgICAgICAgICAgbGluZXMuZXh0
ZW5kKHNlbGYuZ2V0X2V4Y29ubHkoZXhjaW5mbywgaW5kZW50PWluZGVudCwgbWFya2FsbD1UcnVl
KSkKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgZ2V0X2V4Y29ubHkoc2VsZiwgZXhj
aW5mbywgaW5kZW50PTQsIG1hcmthbGw9RmFsc2UpOgotICAgICAgICBsaW5lcyA9IFtdCi0gICAg
ICAgIGluZGVudCA9ICIgIiAqIGluZGVudAotICAgICAgICAjIGdldCB0aGUgcmVhbCBleGNlcHRp
b24gaW5mb3JtYXRpb24gb3V0Ci0gICAgICAgIGV4bGluZXMgPSBleGNpbmZvLmV4Y29ubHkodHJ5
c2hvcnQ9VHJ1ZSkuc3BsaXQoJ1xuJykKLSAgICAgICAgZmFpbGluZGVudCA9IHNlbGYuZmFpbF9t
YXJrZXIgKyBpbmRlbnRbMTpdCi0gICAgICAgIGZvciBsaW5lIGluIGV4bGluZXM6Ci0gICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoZmFpbGluZGVudCArIGxpbmUpCi0gICAgICAgICAgICBpZiBub3Qg
bWFya2FsbDoKLSAgICAgICAgICAgICAgICBmYWlsaW5kZW50ID0gaW5kZW50Ci0gICAgICAgIHJl
dHVybiBsaW5lcwotCi0gICAgZGVmIHJlcHJfbG9jYWxzKHNlbGYsIGxvY2Fscyk6Ci0gICAgICAg
IGlmIHNlbGYuc2hvd2xvY2FsczoKLSAgICAgICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgICAg
IGtleXMgPSBbbG9jIGZvciBsb2MgaW4gbG9jYWxzIGlmIGxvY1swXSAhPSAiQCJdCi0gICAgICAg
ICAgICBrZXlzLnNvcnQoKQotICAgICAgICAgICAgZm9yIG5hbWUgaW4ga2V5czoKLSAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGxvY2Fsc1tuYW1lXQotICAgICAgICAgICAgICAgIGlmIG5hbWUgPT0g
J19fYnVpbHRpbnNfXyc6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiX19idWls
dGluc19fID0gPGJ1aWx0aW5zPiIpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgIyBUaGlzIGZvcm1hdHRpbmcgY291bGQgYWxsIGJlIGhhbmRsZWQgYnkgdGhlCi0g
ICAgICAgICAgICAgICAgICAgICMgX3JlcHIoKSBmdW5jdGlvbiwgd2hpY2ggaXMgb25seSByZXBy
bGliLlJlcHIgaW4KLSAgICAgICAgICAgICAgICAgICAgIyBkaXNndWlzZSwgc28gaXMgdmVyeSBj
b25maWd1cmFibGUuCi0gICAgICAgICAgICAgICAgICAgIHN0cl9yZXByID0gc2VsZi5fc2FmZXJl
cHIodmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICMgaWYgbGVuKHN0cl9yZXByKSA8IDcwIG9y
IG5vdCBpc2luc3RhbmNlKHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChsaXN0LCB0dXBsZSwgZGljdCkpOgotICAgICAgICAgICAgICAgICAg
ICBsaW5lcy5hcHBlbmQoIiUtMTBzID0gJXMiICUgKG5hbWUsIHN0cl9yZXByKSkKLSAgICAgICAg
ICAgICAgICAgICAgIyBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjICAgIHNlbGYuX2xpbmUo
IiUtMTBzID1cXCIgJSAobmFtZSwpKQotICAgICAgICAgICAgICAgICAgICAjICAgICMgWFhYCi0g
ICAgICAgICAgICAgICAgICAgICMgICAgcHkuc3RkLnBwcmludC5wcHJpbnQodmFsdWUsIHN0cmVh
bT1zZWxmLmV4Y2luZm93cml0ZXIpCi0gICAgICAgICAgICByZXR1cm4gUmVwckxvY2FscyhsaW5l
cykKLQotICAgIGRlZiByZXByX3RyYWNlYmFja19lbnRyeShzZWxmLCBlbnRyeSwgZXhjaW5mbz1O
b25lKToKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgc291cmNlID0gc2Vs
Zi5fZ2V0ZW50cnlzb3VyY2UoZW50cnkpCi0gICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgotICAg
ICAgICAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoIj8/PyIpCi0gICAgICAgICAg
ICBsaW5lX2luZGV4ID0gMAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBlbnRyeS5nZXRm
aXJzdGxpbmVzb3VyY2UoKSBjYW4gYmUgLTEsIHNob3VsZCBiZSAwIG9uIGp5dGhvbgotICAgICAg
ICAgICAgbGluZV9pbmRleCA9IGVudHJ5LmxpbmVubyAtIG1heChlbnRyeS5nZXRmaXJzdGxpbmVz
b3VyY2UoKSwgMCkKLQotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIHN0eWxlID0gZW50cnku
X3JlcHJfc3R5bGUKLSAgICAgICAgaWYgc3R5bGUgaXMgTm9uZToKLSAgICAgICAgICAgIHN0eWxl
ID0gc2VsZi5zdHlsZQotICAgICAgICBpZiBzdHlsZSBpbiAoInNob3J0IiwgImxvbmciKToKLSAg
ICAgICAgICAgIHNob3J0ID0gc3R5bGUgPT0gInNob3J0IgotICAgICAgICAgICAgcmVwcmFyZ3Mg
PSBzZWxmLnJlcHJfYXJncyhlbnRyeSkgaWYgbm90IHNob3J0IGVsc2UgTm9uZQotICAgICAgICAg
ICAgcyA9IHNlbGYuZ2V0X3NvdXJjZShzb3VyY2UsIGxpbmVfaW5kZXgsIGV4Y2luZm8sIHNob3J0
PXNob3J0KQotICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHMpCi0gICAgICAgICAgICBpZiBzaG9y
dDoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gImluICVzIiAlIChlbnRyeS5uYW1lKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gZXhjaW5mbyBhbmQgZXhj
aW5mby50eXBlbmFtZSBvciAiIgotICAgICAgICAgICAgcGF0aCA9IHNlbGYuX21ha2VwYXRoKGVu
dHJ5LnBhdGgpCi0gICAgICAgICAgICBmaWxlbG9jcmVwciA9IFJlcHJGaWxlTG9jYXRpb24ocGF0
aCwgZW50cnkubGluZW5vICsgMSwgbWVzc2FnZSkKLSAgICAgICAgICAgIGxvY2Fsc3JlcHIgPSBO
b25lCi0gICAgICAgICAgICBpZiBub3Qgc2hvcnQ6Ci0gICAgICAgICAgICAgICAgbG9jYWxzcmVw
ciA9IHNlbGYucmVwcl9sb2NhbHMoZW50cnkubG9jYWxzKQotICAgICAgICAgICAgcmV0dXJuIFJl
cHJFbnRyeShsaW5lcywgcmVwcmFyZ3MsIGxvY2Fsc3JlcHIsIGZpbGVsb2NyZXByLCBzdHlsZSkK
LSAgICAgICAgaWYgZXhjaW5mbzoKLSAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdldF9l
eGNvbmx5KGV4Y2luZm8sIGluZGVudD00KSkKLSAgICAgICAgcmV0dXJuIFJlcHJFbnRyeShsaW5l
cywgTm9uZSwgTm9uZSwgTm9uZSwgc3R5bGUpCi0KLSAgICBkZWYgX21ha2VwYXRoKHNlbGYsIHBh
dGgpOgotICAgICAgICBpZiBub3Qgc2VsZi5hYnNwYXRoOgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIG5wID0gcHkucGF0aC5sb2NhbCgpLmJlc3RyZWxwYXRoKHBhdGgpCi0gICAg
ICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gcGF0aAotICAg
ICAgICAgICAgaWYgbGVuKG5wKSA8IGxlbihzdHIocGF0aCkpOgotICAgICAgICAgICAgICAgIHBh
dGggPSBucAotICAgICAgICByZXR1cm4gcGF0aAotCi0gICAgZGVmIHJlcHJfdHJhY2ViYWNrKHNl
bGYsIGV4Y2luZm8pOgotICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjawotICAg
ICAgICBpZiBzZWxmLnRiZmlsdGVyOgotICAgICAgICAgICAgdHJhY2ViYWNrID0gdHJhY2ViYWNr
LmZpbHRlcigpCi0KLSAgICAgICAgaWYgaXNfcmVjdXJzaW9uX2Vycm9yKGV4Y2luZm8pOgotICAg
ICAgICAgICAgdHJhY2ViYWNrLCBleHRyYWxpbmUgPSBzZWxmLl90cnVuY2F0ZV9yZWN1cnNpdmVf
dHJhY2ViYWNrKHRyYWNlYmFjaykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4dHJhbGlu
ZSA9IE5vbmUKLQotICAgICAgICBsYXN0ID0gdHJhY2ViYWNrWy0xXQotICAgICAgICBlbnRyaWVz
ID0gW10KLSAgICAgICAgZm9yIGluZGV4LCBlbnRyeSBpbiBlbnVtZXJhdGUodHJhY2ViYWNrKToK
LSAgICAgICAgICAgIGVpbmZvID0gKGxhc3QgPT0gZW50cnkpIGFuZCBleGNpbmZvIG9yIE5vbmUK
LSAgICAgICAgICAgIHJlcHJlbnRyeSA9IHNlbGYucmVwcl90cmFjZWJhY2tfZW50cnkoZW50cnks
IGVpbmZvKQotICAgICAgICAgICAgZW50cmllcy5hcHBlbmQocmVwcmVudHJ5KQotICAgICAgICBy
ZXR1cm4gUmVwclRyYWNlYmFjayhlbnRyaWVzLCBleHRyYWxpbmUsIHN0eWxlPXNlbGYuc3R5bGUp
Ci0KLSAgICBkZWYgX3RydW5jYXRlX3JlY3Vyc2l2ZV90cmFjZWJhY2soc2VsZiwgdHJhY2ViYWNr
KToKLSAgICAgICAgIiIiCi0gICAgICAgIFRydW5jYXRlIHRoZSBnaXZlbiByZWN1cnNpdmUgdHJh
Y2ViYWNrIHRyeWluZyB0byBmaW5kIHRoZSBzdGFydGluZyBwb2ludAotICAgICAgICBvZiB0aGUg
cmVjdXJzaW9uLgotCi0gICAgICAgIFRoZSBkZXRlY3Rpb24gaXMgZG9uZSBieSBnb2luZyB0aHJv
dWdoIGVhY2ggdHJhY2ViYWNrIGVudHJ5IGFuZCBmaW5kaW5nIHRoZQotICAgICAgICBwb2ludCBp
biB3aGljaCB0aGUgbG9jYWxzIG9mIHRoZSBmcmFtZSBhcmUgZXF1YWwgdG8gdGhlIGxvY2FscyBv
ZiBhIHByZXZpb3VzIGZyYW1lIChzZWUgYGByZWN1cnNpb25pbmRleCgpYGAuCi0KLSAgICAgICAg
SGFuZGxlIHRoZSBzaXR1YXRpb24gd2hlcmUgdGhlIHJlY3Vyc2lvbiBwcm9jZXNzIG1pZ2h0IHJh
aXNlIGFuIGV4Y2VwdGlvbiAoZm9yIGV4YW1wbGUKLSAgICAgICAgY29tcGFyaW5nIG51bXB5IGFy
cmF5cyB1c2luZyBlcXVhbGl0eSByYWlzZXMgYSBUeXBlRXJyb3IpLCBpbiB3aGljaCBjYXNlIHdl
IGRvIG91ciBiZXN0IHRvCi0gICAgICAgIHdhcm4gdGhlIHVzZXIgb2YgdGhlIGVycm9yIGFuZCBz
aG93IGEgbGltaXRlZCB0cmFjZWJhY2suCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZWN1cnNpb25pbmRleCA9IHRyYWNlYmFjay5yZWN1cnNpb25pbmRleCgpCi0gICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIG1heF9mcmFtZXMgPSAxMAot
ICAgICAgICAgICAgZXh0cmFsaW5lID0gKAotICAgICAgICAgICAgICAgICchISEgUmVjdXJzaW9u
IGVycm9yIGRldGVjdGVkLCBidXQgYW4gZXJyb3Igb2NjdXJyZWQgbG9jYXRpbmcgdGhlIG9yaWdp
biBvZiByZWN1cnNpb24uXG4nCi0gICAgICAgICAgICAgICAgJyAgVGhlIGZvbGxvd2luZyBleGNl
cHRpb24gaGFwcGVuZWQgd2hlbiBjb21wYXJpbmcgbG9jYWxzIGluIHRoZSBzdGFjayBmcmFtZTpc
bicKLSAgICAgICAgICAgICAgICAnICAgIHtleGNfdHlwZX06IHtleGNfbXNnfVxuJwotICAgICAg
ICAgICAgICAgICcgIERpc3BsYXlpbmcgZmlyc3QgYW5kIGxhc3Qge21heF9mcmFtZXN9IHN0YWNr
IGZyYW1lcyBvdXQgb2Yge3RvdGFsfS4nCi0gICAgICAgICAgICApLmZvcm1hdChleGNfdHlwZT10
eXBlKGUpLl9fbmFtZV9fLCBleGNfbXNnPXNhZmVfc3RyKGUpLCBtYXhfZnJhbWVzPW1heF9mcmFt
ZXMsIHRvdGFsPWxlbih0cmFjZWJhY2spKQotICAgICAgICAgICAgdHJhY2ViYWNrID0gdHJhY2Vi
YWNrWzptYXhfZnJhbWVzXSArIHRyYWNlYmFja1stbWF4X2ZyYW1lczpdCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBpZiByZWN1cnNpb25pbmRleCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBleHRyYWxpbmUgPSAiISEhIFJlY3Vyc2lvbiBkZXRlY3RlZCAoc2FtZSBsb2NhbHMgJiBw
b3NpdGlvbikiCi0gICAgICAgICAgICAgICAgdHJhY2ViYWNrID0gdHJhY2ViYWNrWzpyZWN1cnNp
b25pbmRleCArIDFdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGV4dHJhbGlu
ZSA9IE5vbmUKLQotICAgICAgICByZXR1cm4gdHJhY2ViYWNrLCBleHRyYWxpbmUKLQotICAgIGRl
ZiByZXByX2V4Y2luZm8oc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIGlmIF9QWTI6Ci0gICAgICAg
ICAgICByZXBydHJhY2ViYWNrID0gc2VsZi5yZXByX3RyYWNlYmFjayhleGNpbmZvKQotICAgICAg
ICAgICAgcmVwcmNyYXNoID0gZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKLQotICAgICAgICAgICAg
cmV0dXJuIFJlcHJFeGNlcHRpb25JbmZvKHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHJlcHJfY2hhaW4gPSBbXQotICAgICAgICAgICAgZSA9IGV4
Y2luZm8udmFsdWUKLSAgICAgICAgICAgIGRlc2NyID0gTm9uZQotICAgICAgICAgICAgd2hpbGUg
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBleGNpbmZvOgotICAgICAgICAgICAg
ICAgICAgICByZXBydHJhY2ViYWNrID0gc2VsZi5yZXByX3RyYWNlYmFjayhleGNpbmZvKQotICAg
ICAgICAgICAgICAgICAgICByZXByY3Jhc2ggPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQotICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgZmFsbGJhY2sgdG8gbmF0
aXZlIHJlcHIgaWYgdGhlIGV4Y2VwdGlvbiBkb2Vzbid0IGhhdmUgYSB0cmFjZWJhY2s6Ci0gICAg
ICAgICAgICAgICAgICAgICMgRXhjZXB0aW9uSW5mbyBvYmplY3RzIHJlcXVpcmUgYSBmdWxsIHRy
YWNlYmFjayB0byB3b3JrCi0gICAgICAgICAgICAgICAgICAgIHJlcHJ0cmFjZWJhY2sgPSBSZXBy
VHJhY2ViYWNrTmF0aXZlKHB5LnN0ZC50cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbih0eXBlKGUp
LCBlLCBOb25lKSkKLSAgICAgICAgICAgICAgICAgICAgcmVwcmNyYXNoID0gTm9uZQotCi0gICAg
ICAgICAgICAgICAgcmVwcl9jaGFpbiArPSBbKHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCwgZGVz
Y3IpXQotICAgICAgICAgICAgICAgIGlmIGUuX19jYXVzZV9fIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgICAgICBlID0gZS5fX2NhdXNlX18KLSAgICAgICAgICAgICAgICAgICAgZXhjaW5m
byA9IEV4Y2VwdGlvbkluZm8oKHR5cGUoZSksIGUsIGUuX190cmFjZWJhY2tfXykpIGlmIGUuX190
cmFjZWJhY2tfXyBlbHNlIE5vbmUKLSAgICAgICAgICAgICAgICAgICAgZGVzY3IgPSAnVGhlIGFi
b3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2Vw
dGlvbjonCi0gICAgICAgICAgICAgICAgZWxpZiAoZS5fX2NvbnRleHRfXyBpcyBub3QgTm9uZSBh
bmQgbm90IGUuX19zdXBwcmVzc19jb250ZXh0X18pOgotICAgICAgICAgICAgICAgICAgICBlID0g
ZS5fX2NvbnRleHRfXwotICAgICAgICAgICAgICAgICAgICBleGNpbmZvID0gRXhjZXB0aW9uSW5m
bygodHlwZShlKSwgZSwgZS5fX3RyYWNlYmFja19fKSkgaWYgZS5fX3RyYWNlYmFja19fIGVsc2Ug
Tm9uZQotICAgICAgICAgICAgICAgICAgICBkZXNjciA9ICdEdXJpbmcgaGFuZGxpbmcgb2YgdGhl
IGFib3ZlIGV4Y2VwdGlvbiwgYW5vdGhlciBleGNlcHRpb24gb2NjdXJyZWQ6JwotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGUgPSBOb25lCi0gICAgICAgICAgICBy
ZXByX2NoYWluLnJldmVyc2UoKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkNoYWluUmVw
cihyZXByX2NoYWluKQotCi0KLWNsYXNzIFRlcm1pbmFsUmVwcihvYmplY3QpOgotICAgIGRlZiBf
X3N0cl9fKHNlbGYpOgotICAgICAgICBzID0gc2VsZi5fX3VuaWNvZGVfXygpCi0gICAgICAgIGlm
IF9QWTI6Ci0gICAgICAgICAgICBzID0gcy5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgcmV0dXJu
IHMKLQotICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKLSAgICAgICAgIyBGWUkgdGhpcyBpcyBj
YWxsZWQgZnJvbSBweXRlc3QteGRpc3QncyBzZXJpYWxpemF0aW9uIG9mIGV4Y2VwdGlvbgotICAg
ICAgICAjIGluZm9ybWF0aW9uLgotICAgICAgICBpbyA9IHB5LmlvLlRleHRJTygpCi0gICAgICAg
IHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoZmlsZT1pbykKLSAgICAgICAgc2VsZi50b3Rlcm1p
bmFsKHR3KQotICAgICAgICByZXR1cm4gaW8uZ2V0dmFsdWUoKS5zdHJpcCgpCi0KLSAgICBkZWYg
X19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPCVzIGluc3RhbmNlIGF0ICUweD4iICUg
KHNlbGYuX19jbGFzc19fLCBpZChzZWxmKSkKLQotCi1jbGFzcyBFeGNlcHRpb25SZXByKFRlcm1p
bmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnNlY3Rpb25z
ID0gW10KLQotICAgIGRlZiBhZGRzZWN0aW9uKHNlbGYsIG5hbWUsIGNvbnRlbnQsIHNlcD0iLSIp
OgotICAgICAgICBzZWxmLnNlY3Rpb25zLmFwcGVuZCgobmFtZSwgY29udGVudCwgc2VwKSkKLQot
ICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgZm9yIG5hbWUsIGNvbnRlbnQs
IHNlcCBpbiBzZWxmLnNlY3Rpb25zOgotICAgICAgICAgICAgdHcuc2VwKHNlcCwgbmFtZSkKLSAg
ICAgICAgICAgIHR3LmxpbmUoY29udGVudCkKLQotCi1jbGFzcyBFeGNlcHRpb25DaGFpblJlcHIo
RXhjZXB0aW9uUmVwcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYWluKToKLSAgICAgICAg
c3VwZXIoRXhjZXB0aW9uQ2hhaW5SZXByLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYu
Y2hhaW4gPSBjaGFpbgotICAgICAgICAjIHJlcHJjcmFzaCBhbmQgcmVwcnRyYWNlYmFjayBvZiB0
aGUgb3V0ZXJtb3N0ICh0aGUgbmV3ZXN0KSBleGNlcHRpb24KLSAgICAgICAgIyBpbiB0aGUgY2hh
aW4KLSAgICAgICAgc2VsZi5yZXBydHJhY2ViYWNrID0gY2hhaW5bLTFdWzBdCi0gICAgICAgIHNl
bGYucmVwcmNyYXNoID0gY2hhaW5bLTFdWzFdCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0
dyk6Ci0gICAgICAgIGZvciBlbGVtZW50IGluIHNlbGYuY2hhaW46Ci0gICAgICAgICAgICBlbGVt
ZW50WzBdLnRvdGVybWluYWwodHcpCi0gICAgICAgICAgICBpZiBlbGVtZW50WzJdIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIHR3LmxpbmUoIiIpCi0gICAgICAgICAgICAgICAgdHcubGlu
ZShlbGVtZW50WzJdLCB5ZWxsb3c9VHJ1ZSkKLSAgICAgICAgc3VwZXIoRXhjZXB0aW9uQ2hhaW5S
ZXByLCBzZWxmKS50b3Rlcm1pbmFsKHR3KQotCi0KLWNsYXNzIFJlcHJFeGNlcHRpb25JbmZvKEV4
Y2VwdGlvblJlcHIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBydHJhY2ViYWNrLCByZXBy
Y3Jhc2gpOgotICAgICAgICBzdXBlcihSZXByRXhjZXB0aW9uSW5mbywgc2VsZikuX19pbml0X18o
KQotICAgICAgICBzZWxmLnJlcHJ0cmFjZWJhY2sgPSByZXBydHJhY2ViYWNrCi0gICAgICAgIHNl
bGYucmVwcmNyYXNoID0gcmVwcmNyYXNoCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6
Ci0gICAgICAgIHNlbGYucmVwcnRyYWNlYmFjay50b3Rlcm1pbmFsKHR3KQotICAgICAgICBzdXBl
cihSZXByRXhjZXB0aW9uSW5mbywgc2VsZikudG90ZXJtaW5hbCh0dykKLQotCi1jbGFzcyBSZXBy
VHJhY2ViYWNrKFRlcm1pbmFsUmVwcik6Ci0gICAgZW50cnlzZXAgPSAiXyAiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVwcmVudHJpZXMsIGV4dHJhbGluZSwgc3R5bGUpOgotICAgICAgICBz
ZWxmLnJlcHJlbnRyaWVzID0gcmVwcmVudHJpZXMKLSAgICAgICAgc2VsZi5leHRyYWxpbmUgPSBl
eHRyYWxpbmUKLSAgICAgICAgc2VsZi5zdHlsZSA9IHN0eWxlCi0KLSAgICBkZWYgdG90ZXJtaW5h
bChzZWxmLCB0dyk6Ci0gICAgICAgICMgdGhlIGVudHJpZXMgbWlnaHQgaGF2ZSBkaWZmZXJlbnQg
c3R5bGVzCi0gICAgICAgIGZvciBpLCBlbnRyeSBpbiBlbnVtZXJhdGUoc2VsZi5yZXByZW50cmll
cyk6Ci0gICAgICAgICAgICBpZiBlbnRyeS5zdHlsZSA9PSAibG9uZyI6Ci0gICAgICAgICAgICAg
ICAgdHcubGluZSgiIikKLSAgICAgICAgICAgIGVudHJ5LnRvdGVybWluYWwodHcpCi0gICAgICAg
ICAgICBpZiBpIDwgbGVuKHNlbGYucmVwcmVudHJpZXMpIC0gMToKLSAgICAgICAgICAgICAgICBu
ZXh0X2VudHJ5ID0gc2VsZi5yZXByZW50cmllc1tpICsgMV0KLSAgICAgICAgICAgICAgICBpZiBl
bnRyeS5zdHlsZSA9PSAibG9uZyIgb3IgXAotICAgICAgICAgICAgICAgICAgIGVudHJ5LnN0eWxl
ID09ICJzaG9ydCIgYW5kIG5leHRfZW50cnkuc3R5bGUgPT0gImxvbmciOgotICAgICAgICAgICAg
ICAgICAgICB0dy5zZXAoc2VsZi5lbnRyeXNlcCkKLQotICAgICAgICBpZiBzZWxmLmV4dHJhbGlu
ZToKLSAgICAgICAgICAgIHR3LmxpbmUoc2VsZi5leHRyYWxpbmUpCi0KLQotY2xhc3MgUmVwclRy
YWNlYmFja05hdGl2ZShSZXByVHJhY2ViYWNrKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGJs
aW5lcyk6Ci0gICAgICAgIHNlbGYuc3R5bGUgPSAibmF0aXZlIgotICAgICAgICBzZWxmLnJlcHJl
bnRyaWVzID0gW1JlcHJFbnRyeU5hdGl2ZSh0YmxpbmVzKV0KLSAgICAgICAgc2VsZi5leHRyYWxp
bmUgPSBOb25lCi0KLQotY2xhc3MgUmVwckVudHJ5TmF0aXZlKFRlcm1pbmFsUmVwcik6Ci0gICAg
c3R5bGUgPSAibmF0aXZlIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgotICAg
ICAgICBzZWxmLmxpbmVzID0gdGJsaW5lcwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcp
OgotICAgICAgICB0dy53cml0ZSgiIi5qb2luKHNlbGYubGluZXMpKQotCi0KLWNsYXNzIFJlcHJF
bnRyeShUZXJtaW5hbFJlcHIpOgotICAgIGxvY2Fsc3NlcCA9ICJfICIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsaW5lcywgcmVwcmZ1bmNhcmdzLCByZXBybG9jYWxzLCBmaWxlbG9jcmVwciwg
c3R5bGUpOgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKLSAgICAgICAgc2VsZi5yZXByZnVu
Y2FyZ3MgPSByZXByZnVuY2FyZ3MKLSAgICAgICAgc2VsZi5yZXBybG9jYWxzID0gcmVwcmxvY2Fs
cwotICAgICAgICBzZWxmLnJlcHJmaWxlbG9jID0gZmlsZWxvY3JlcHIKLSAgICAgICAgc2VsZi5z
dHlsZSA9IHN0eWxlCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgIGlm
IHNlbGYuc3R5bGUgPT0gInNob3J0IjoKLSAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2MudG90
ZXJtaW5hbCh0dykKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6Ci0gICAgICAg
ICAgICAgICAgcmVkID0gbGluZS5zdGFydHN3aXRoKCJFICAgIikKLSAgICAgICAgICAgICAgICB0
dy5saW5lKGxpbmUsIGJvbGQ9VHJ1ZSwgcmVkPXJlZCkKLSAgICAgICAgICAgICMgdHcubGluZSgi
IikKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBzZWxmLnJlcHJmdW5jYXJnczoKLSAg
ICAgICAgICAgIHNlbGYucmVwcmZ1bmNhcmdzLnRvdGVybWluYWwodHcpCi0gICAgICAgIGZvciBs
aW5lIGluIHNlbGYubGluZXM6Ci0gICAgICAgICAgICByZWQgPSBsaW5lLnN0YXJ0c3dpdGgoIkUg
ICAiKQotICAgICAgICAgICAgdHcubGluZShsaW5lLCBib2xkPVRydWUsIHJlZD1yZWQpCi0gICAg
ICAgIGlmIHNlbGYucmVwcmxvY2FsczoKLSAgICAgICAgICAgICMgdHcuc2VwKHNlbGYubG9jYWxz
c2VwLCAiTG9jYWxzIikKLSAgICAgICAgICAgIHR3LmxpbmUoIiIpCi0gICAgICAgICAgICBzZWxm
LnJlcHJsb2NhbHMudG90ZXJtaW5hbCh0dykKLSAgICAgICAgaWYgc2VsZi5yZXByZmlsZWxvYzoK
LSAgICAgICAgICAgIGlmIHNlbGYubGluZXM6Ci0gICAgICAgICAgICAgICAgdHcubGluZSgiIikK
LSAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2MudG90ZXJtaW5hbCh0dykKLQotICAgIGRlZiBf
X3N0cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIiVzXG4lc1xuJXMiICUgKCJcbiIuam9pbihz
ZWxmLmxpbmVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcHJsb2Nh
bHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXByZmlsZWxvYykKLQot
Ci1jbGFzcyBSZXByRmlsZUxvY2F0aW9uKFRlcm1pbmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBhdGgsIGxpbmVubywgbWVzc2FnZSk6Ci0gICAgICAgIHNlbGYucGF0aCA9IHN0cihw
YXRoKQotICAgICAgICBzZWxmLmxpbmVubyA9IGxpbmVubwotICAgICAgICBzZWxmLm1lc3NhZ2Ug
PSBtZXNzYWdlCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgICMgZmls
ZW5hbWUgYW5kIGxpbmVubyBvdXRwdXQgZm9yIGVhY2ggZW50cnksCi0gICAgICAgICMgdXNpbmcg
YW4gb3V0cHV0IGZvcm1hdCB0aGF0IG1vc3QgZWRpdG9ycyB1bnRlcnN0YW5kCi0gICAgICAgIG1z
ZyA9IHNlbGYubWVzc2FnZQotICAgICAgICBpID0gbXNnLmZpbmQoIlxuIikKLSAgICAgICAgaWYg
aSAhPSAtMToKLSAgICAgICAgICAgIG1zZyA9IG1zZ1s6aV0KLSAgICAgICAgdHcud3JpdGUoc2Vs
Zi5wYXRoLCBib2xkPVRydWUsIHJlZD1UcnVlKQotICAgICAgICB0dy5saW5lKCI6JXM6ICVzIiAl
IChzZWxmLmxpbmVubywgbXNnKSkKLQotCi1jbGFzcyBSZXByTG9jYWxzKFRlcm1pbmFsUmVwcik6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmVzKToKLSAgICAgICAgc2VsZi5saW5lcyA9IGxp
bmVzCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgIGZvciBsaW5lIGlu
IHNlbGYubGluZXM6Ci0gICAgICAgICAgICB0dy5saW5lKGxpbmUpCi0KLQotY2xhc3MgUmVwckZ1
bmNBcmdzKFRlcm1pbmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ3MpOgotICAg
ICAgICBzZWxmLmFyZ3MgPSBhcmdzCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0g
ICAgICAgIGlmIHNlbGYuYXJnczoKLSAgICAgICAgICAgIGxpbmVzb2ZhciA9ICIiCi0gICAgICAg
ICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5hcmdzOgotICAgICAgICAgICAgICAgIG5zID0g
IiVzID0gJXMiICUgKHNhZmVfc3RyKG5hbWUpLCBzYWZlX3N0cih2YWx1ZSkpCi0gICAgICAgICAg
ICAgICAgaWYgbGVuKG5zKSArIGxlbihsaW5lc29mYXIpICsgMiA+IHR3LmZ1bGx3aWR0aDoKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbGluZXNvZmFyOgotICAgICAgICAgICAgICAgICAgICAgICAg
dHcubGluZShsaW5lc29mYXIpCi0gICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciA9IG5zCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaWYgbGluZXNvZmFyOgot
ICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyICs9ICIsICIgKyBucwotICAgICAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyID0gbnMK
LSAgICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKLSAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmVz
b2ZhcikKLSAgICAgICAgICAgIHR3LmxpbmUoIiIpCi0KLQotZGVmIGdldHJhd2NvZGUob2JqLCB0
cnljYWxsPVRydWUpOgotICAgICIiIiByZXR1cm4gY29kZSBvYmplY3QgZm9yIGdpdmVuIGZ1bmN0
aW9uLiAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBvYmouX19jb2RlX18KLSAgICBleGNl
cHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnaW1fZnVuYycs
IG9iaikKLSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICdmdW5jX2NvZGUnLCBvYmopCi0gICAg
ICAgIG9iaiA9IGdldGF0dHIob2JqLCAnZl9jb2RlJywgb2JqKQotICAgICAgICBvYmogPSBnZXRh
dHRyKG9iaiwgJ19fY29kZV9fJywgb2JqKQotICAgICAgICBpZiB0cnljYWxsIGFuZCBub3QgaGFz
YXR0cihvYmosICdjb19maXJzdGxpbmVubycpOgotICAgICAgICAgICAgaWYgaGFzYXR0cihvYmos
ICdfX2NhbGxfXycpIGFuZCBub3QgcHkuc3RkLmluc3BlY3QuaXNjbGFzcyhvYmopOgotICAgICAg
ICAgICAgICAgIHggPSBnZXRyYXdjb2RlKG9iai5fX2NhbGxfXywgdHJ5Y2FsbD1GYWxzZSkKLSAg
ICAgICAgICAgICAgICBpZiBoYXNhdHRyKHgsICdjb19maXJzdGxpbmVubycpOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4geAotICAgICAgICByZXR1cm4gb2JqCi0KLQotaWYgUFkzNTogICMg
UmVjdXJzaW9uRXJyb3IgaW50cm9kdWNlZCBpbiAzLjUKLSAgICBkZWYgaXNfcmVjdXJzaW9uX2Vy
cm9yKGV4Y2luZm8pOgotICAgICAgICByZXR1cm4gZXhjaW5mby5lcnJpc2luc3RhbmNlKFJlY3Vy
c2lvbkVycm9yKSAgIyBub3FhCi1lbHNlOgotICAgIGRlZiBpc19yZWN1cnNpb25fZXJyb3IoZXhj
aW5mbyk6Ci0gICAgICAgIGlmIG5vdCBleGNpbmZvLmVycmlzaW5zdGFuY2UoUnVudGltZUVycm9y
KToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBy
ZXR1cm4gIm1heGltdW0gcmVjdXJzaW9uIGRlcHRoIGV4Y2VlZGVkIiBpbiBzdHIoZXhjaW5mby52
YWx1ZSkKLSAgICAgICAgZXhjZXB0IFVuaWNvZGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjYzOGM1OThiNzQ5ZGIyODg2MWQyMDAwNmU3ZGZhOGY5MGU1NTRiYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L19jb2RlL3NvdXJjZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDQxNSArMCwwIEBACi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIGdlbmVyYXRvcnMs
IHByaW50X2Z1bmN0aW9uCi0KLWZyb20gYmlzZWN0IGltcG9ydCBiaXNlY3RfcmlnaHQKLWltcG9y
dCBzeXMKLWltcG9ydCBzaXgKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgdG9rZW5pemUKLWltcG9y
dCBweQotY3B5X2NvbXBpbGUgPSBjb21waWxlCi0KLXRyeToKLSAgICBpbXBvcnQgX2FzdAotICAg
IGZyb20gX2FzdCBpbXBvcnQgUHlDRl9PTkxZX0FTVCBhcyBfQVNUX0ZMQUcKLWV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICBfQVNUX0ZMQUcgPSAwCi0gICAgX2FzdCA9IE5vbmUKLQotCi1jbGFzcyBT
b3VyY2Uob2JqZWN0KToKLSAgICAiIiIgYSBpbW11dGFibGUgb2JqZWN0IGhvbGRpbmcgYSBzb3Vy
Y2UgY29kZSBmcmFnbWVudCwKLSAgICAgICAgcG9zc2libHkgZGVpbmRlbnRpbmcgaXQuCi0gICAg
IiIiCi0gICAgX2NvbXBpbGVjb3VudGVyID0gMAotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICpw
YXJ0cywgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMgPSBbXQotICAgICAg
ICBkZSA9IGt3YXJncy5nZXQoJ2RlaW5kZW50JywgVHJ1ZSkKLSAgICAgICAgcnN0cmlwID0ga3dh
cmdzLmdldCgncnN0cmlwJywgVHJ1ZSkKLSAgICAgICAgZm9yIHBhcnQgaW4gcGFydHM6Ci0gICAg
ICAgICAgICBpZiBub3QgcGFydDoKLSAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBbXQotICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJ0LCBTb3VyY2UpOgotICAgICAgICAgICAgICAgIHBh
cnRsaW5lcyA9IHBhcnQubGluZXMKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXJ0LCAo
dHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBbeC5yc3RyaXAoIlxu
IikgZm9yIHggaW4gcGFydF0KLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXJ0LCBzaXgu
c3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBwYXJ0LnNwbGl0KCdc
bicpCi0gICAgICAgICAgICAgICAgaWYgcnN0cmlwOgotICAgICAgICAgICAgICAgICAgICB3aGls
ZSBwYXJ0bGluZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBwYXJ0bGluZXNbLTFdLnN0
cmlwKCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBhcnRsaW5lcy5wb3AoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBwYXJ0bGluZXMgPSBnZXRzb3VyY2UocGFydCwgZGVpbmRlbnQ9ZGUpLmxpbmVzCi0gICAg
ICAgICAgICBpZiBkZToKLSAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBkZWluZGVudChwYXJ0
bGluZXMpCi0gICAgICAgICAgICBsaW5lcy5leHRlbmQocGFydGxpbmVzKQotCi0gICAgZGVmIF9f
ZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
LmxpbmVzID09IG90aGVyLmxpbmVzCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHN0cik6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHN0cihzZWxmKSA9PSBvdGhlcgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBf
X2hhc2hfXyA9IE5vbmUKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKGtleSwgaW50KToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmxpbmVz
W2tleV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGtleS5zdGVwIG5vdCBpbiAoTm9u
ZSwgMSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigiY2Fubm90IHNsaWNlIGEg
U291cmNlIHdpdGggYSBzdGVwIikKLSAgICAgICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCi0g
ICAgICAgICAgICBuZXdzb3VyY2UubGluZXMgPSBzZWxmLmxpbmVzW2tleS5zdGFydDprZXkuc3Rv
cF0KLSAgICAgICAgICAgIHJldHVybiBuZXdzb3VyY2UKLQotICAgIGRlZiBfX2xlbl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gbGVuKHNlbGYubGluZXMpCi0KLSAgICBkZWYgc3RyaXAoc2VsZik6
Ci0gICAgICAgICIiIiByZXR1cm4gbmV3IHNvdXJjZSBvYmplY3Qgd2l0aCB0cmFpbGluZwotICAg
ICAgICAgICAgYW5kIGxlYWRpbmcgYmxhbmsgbGluZXMgcmVtb3ZlZC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHN0YXJ0LCBlbmQgPSAwLCBsZW4oc2VsZikKLSAgICAgICAgd2hpbGUgc3RhcnQgPCBl
bmQgYW5kIG5vdCBzZWxmLmxpbmVzW3N0YXJ0XS5zdHJpcCgpOgotICAgICAgICAgICAgc3RhcnQg
Kz0gMQotICAgICAgICB3aGlsZSBlbmQgPiBzdGFydCBhbmQgbm90IHNlbGYubGluZXNbZW5kIC0g
MV0uc3RyaXAoKToKLSAgICAgICAgICAgIGVuZCAtPSAxCi0gICAgICAgIHNvdXJjZSA9IFNvdXJj
ZSgpCi0gICAgICAgIHNvdXJjZS5saW5lc1s6XSA9IHNlbGYubGluZXNbc3RhcnQ6ZW5kXQotICAg
ICAgICByZXR1cm4gc291cmNlCi0KLSAgICBkZWYgcHV0YXJvdW5kKHNlbGYsIGJlZm9yZT0nJywg
YWZ0ZXI9JycsIGluZGVudD0nICcgKiA0KToKLSAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2Yg
dGhlIHNvdXJjZSBvYmplY3Qgd2l0aAotICAgICAgICAgICAgJ2JlZm9yZScgYW5kICdhZnRlcicg
d3JhcHBlZCBhcm91bmQgaXQuCi0gICAgICAgICIiIgotICAgICAgICBiZWZvcmUgPSBTb3VyY2Uo
YmVmb3JlKQotICAgICAgICBhZnRlciA9IFNvdXJjZShhZnRlcikKLSAgICAgICAgbmV3c291cmNl
ID0gU291cmNlKCkKLSAgICAgICAgbGluZXMgPSBbKGluZGVudCArIGxpbmUpIGZvciBsaW5lIGlu
IHNlbGYubGluZXNdCi0gICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IGJlZm9yZS5saW5lcyArIGxp
bmVzICsgYWZ0ZXIubGluZXMKLSAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQotCi0gICAgZGVmIGlu
ZGVudChzZWxmLCBpbmRlbnQ9JyAnICogNCk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBjb3B5IG9m
IHRoZSBzb3VyY2Ugb2JqZWN0IHdpdGgKLSAgICAgICAgICAgIGFsbCBsaW5lcyBpbmRlbnRlZCBi
eSB0aGUgZ2l2ZW4gaW5kZW50LXN0cmluZy4KLSAgICAgICAgIiIiCi0gICAgICAgIG5ld3NvdXJj
ZSA9IFNvdXJjZSgpCi0gICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IFsoaW5kZW50ICsgbGluZSkg
Zm9yIGxpbmUgaW4gc2VsZi5saW5lc10KLSAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQotCi0gICAg
ZGVmIGdldHN0YXRlbWVudChzZWxmLCBsaW5lbm8sIGFzc2VydGlvbj1GYWxzZSk6Ci0gICAgICAg
ICIiIiByZXR1cm4gU291cmNlIHN0YXRlbWVudCB3aGljaCBjb250YWlucyB0aGUKLSAgICAgICAg
ICAgIGdpdmVuIGxpbmVudW1iZXIgKGNvdW50ZWQgZnJvbSAwKS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIHN0YXJ0LCBlbmQgPSBzZWxmLmdldHN0YXRlbWVudHJhbmdlKGxpbmVubywgYXNzZXJ0aW9u
KQotICAgICAgICByZXR1cm4gc2VsZltzdGFydDplbmRdCi0KLSAgICBkZWYgZ2V0c3RhdGVtZW50
cmFuZ2Uoc2VsZiwgbGluZW5vLCBhc3NlcnRpb249RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJu
IChzdGFydCwgZW5kKSB0dXBsZSB3aGljaCBzcGFucyB0aGUgbWluaW1hbAotICAgICAgICAgICAg
c3RhdGVtZW50IHJlZ2lvbiB3aGljaCBjb250YWluaW5nIHRoZSBnaXZlbiBsaW5lbm8uCi0gICAg
ICAgICIiIgotICAgICAgICBpZiBub3QgKDAgPD0gbGluZW5vIDwgbGVuKHNlbGYpKToKLSAgICAg
ICAgICAgIHJhaXNlIEluZGV4RXJyb3IoImxpbmVubyBvdXQgb2YgcmFuZ2UiKQotICAgICAgICBh
c3QsIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzZWxmKQotICAg
ICAgICByZXR1cm4gc3RhcnQsIGVuZAotCi0gICAgZGVmIGRlaW5kZW50KHNlbGYsIG9mZnNldD1O
b25lKToKLSAgICAgICAgIiIiIHJldHVybiBhIG5ldyBzb3VyY2Ugb2JqZWN0IGRlaW5kZW50ZWQg
Ynkgb2Zmc2V0LgotICAgICAgICAgICAgSWYgb2Zmc2V0IGlzIE5vbmUgdGhlbiBndWVzcyBhbiBp
bmRlbnRhdGlvbiBvZmZzZXQgZnJvbQotICAgICAgICAgICAgdGhlIGZpcnN0IG5vbi1ibGFuayBs
aW5lLiAgU3Vic2VxdWVudCBsaW5lcyB3aGljaCBoYXZlIGEKLSAgICAgICAgICAgIGxvd2VyIGlu
ZGVudGF0aW9uIG9mZnNldCB3aWxsIGJlIGNvcGllZCB2ZXJiYXRpbSBhcwotICAgICAgICAgICAg
dGhleSBhcmUgYXNzdW1lZCB0byBiZSBwYXJ0IG9mIG11bHRpbGluZXMuCi0gICAgICAgICIiIgot
ICAgICAgICAjIFhYWCBtYXliZSB1c2UgdGhlIHRva2VuaXplciB0byBwcm9wZXJseSBoYW5kbGUg
bXVsdGlsaW5lCi0gICAgICAgICMgICAgIHN0cmluZ3MgZXRjLnBwPwotICAgICAgICBuZXdzb3Vy
Y2UgPSBTb3VyY2UoKQotICAgICAgICBuZXdzb3VyY2UubGluZXNbOl0gPSBkZWluZGVudChzZWxm
LmxpbmVzLCBvZmZzZXQpCi0gICAgICAgIHJldHVybiBuZXdzb3VyY2UKLQotICAgIGRlZiBpc3Bh
cnNlYWJsZShzZWxmLCBkZWluZGVudD1UcnVlKToKLSAgICAgICAgIiIiIHJldHVybiBUcnVlIGlm
IHNvdXJjZSBpcyBwYXJzZWFibGUsIGhldXJpc3RpY2FsbHkKLSAgICAgICAgICAgIGRlaW5kZW50
aW5nIGl0IGJ5IGRlZmF1bHQuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBpbXBvcnQgcGFyc2VyCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAg
IGRlZiBzeW50YXhfY2hlY2tlcih4KToKLSAgICAgICAgICAgICAgICByZXR1cm4gY29tcGlsZSh4
LCAnYXNkJywgJ2V4ZWMnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3ludGF4X2NoZWNr
ZXIgPSBwYXJzZXIuc3VpdGUKLQotICAgICAgICBpZiBkZWluZGVudDoKLSAgICAgICAgICAgIHNv
dXJjZSA9IHN0cihzZWxmLmRlaW5kZW50KCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
b3VyY2UgPSBzdHIoc2VsZikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBjb21waWxlKHNv
dXJjZSsnXG4nLCAieCIsICJleGVjIikKLSAgICAgICAgICAgIHN5bnRheF9jaGVja2VyKHNvdXJj
ZSArICdcbicpCi0gICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAg
IHJhaXNlCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX19z
dHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJcbiIuam9pbihzZWxmLmxpbmVzKQotCi0gICAg
ZGVmIGNvbXBpbGUoc2VsZiwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0nZXhlYycsCi0gICAgICAgICAg
ICAgICAgZmxhZz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsCi0gICAgICAgICAgICAgICAgZG9u
dF9pbmhlcml0PTAsIF9nZW5mcmFtZT1Ob25lKToKLSAgICAgICAgIiIiIHJldHVybiBjb21waWxl
ZCBjb2RlIG9iamVjdC4gaWYgZmlsZW5hbWUgaXMgTm9uZQotICAgICAgICAgICAgaW52ZW50IGFu
IGFydGlmaWNpYWwgZmlsZW5hbWUgd2hpY2ggZGlzcGxheXMKLSAgICAgICAgICAgIHRoZSBzb3Vy
Y2UvbGluZSBwb3NpdGlvbiBvZiB0aGUgY2FsbGVyIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAg
ICAgaWYgbm90IGZpbGVuYW1lIG9yIHB5LnBhdGgubG9jYWwoZmlsZW5hbWUpLmNoZWNrKGZpbGU9
MCk6Ci0gICAgICAgICAgICBpZiBfZ2VuZnJhbWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBf
Z2VuZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpICAjIHRoZSBjYWxsZXIKLSAgICAgICAgICAgIGZu
LCBsaW5lbm8gPSBfZ2VuZnJhbWUuZl9jb2RlLmNvX2ZpbGVuYW1lLCBfZ2VuZnJhbWUuZl9saW5l
bm8KLSAgICAgICAgICAgIGJhc2UgPSAiPCVkLWNvZGVnZW4gIiAlIHNlbGYuX2NvbXBpbGVjb3Vu
dGVyCi0gICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fY29tcGlsZWNvdW50ZXIgKz0gMQotICAg
ICAgICAgICAgaWYgbm90IGZpbGVuYW1lOgotICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gYmFz
ZSArICclczolZD4nICUgKGZuLCBsaW5lbm8pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIGZpbGVuYW1lID0gYmFzZSArICclciAlczolZD4nICUgKGZpbGVuYW1lLCBmbiwgbGlu
ZW5vKQotICAgICAgICBzb3VyY2UgPSAiXG4iLmpvaW4oc2VsZi5saW5lcykgKyAnXG4nCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGNvID0gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwg
bW9kZSwgZmxhZykKLSAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgotICAgICAgICAgICAgZXgg
PSBzeXMuZXhjX2luZm8oKVsxXQotICAgICAgICAgICAgIyByZS1yZXByZXNlbnQgc3ludGF4IGVy
cm9ycyBmcm9tIHBhcnNpbmcgcHl0aG9uIHN0cmluZ3MKLSAgICAgICAgICAgIG1zZ2xpbmVzID0g
c2VsZi5saW5lc1s6ZXgubGluZW5vXQotICAgICAgICAgICAgaWYgZXgub2Zmc2V0OgotICAgICAg
ICAgICAgICAgIG1zZ2xpbmVzLmFwcGVuZCgiICIgKiBleC5vZmZzZXQgKyAnXicpCi0gICAgICAg
ICAgICBtc2dsaW5lcy5hcHBlbmQoIihjb2RlIHdhcyBjb21waWxlZCBwcm9iYWJseSBmcm9tIGhl
cmU6ICVzKSIgJSBmaWxlbmFtZSkKLSAgICAgICAgICAgIG5ld2V4ID0gU3ludGF4RXJyb3IoJ1xu
Jy5qb2luKG1zZ2xpbmVzKSkKLSAgICAgICAgICAgIG5ld2V4Lm9mZnNldCA9IGV4Lm9mZnNldAot
ICAgICAgICAgICAgbmV3ZXgubGluZW5vID0gZXgubGluZW5vCi0gICAgICAgICAgICBuZXdleC50
ZXh0ID0gZXgudGV4dAotICAgICAgICAgICAgcmFpc2UgbmV3ZXgKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIGZsYWcgJiBfQVNUX0ZMQUc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNv
Ci0gICAgICAgICAgICBsaW5lcyA9IFsoeCArICJcbiIpIGZvciB4IGluIHNlbGYubGluZXNdCi0g
ICAgICAgICAgICBweS5zdGQubGluZWNhY2hlLmNhY2hlW2ZpbGVuYW1lXSA9ICgxLCBOb25lLCBs
aW5lcywgZmlsZW5hbWUpCi0gICAgICAgICAgICByZXR1cm4gY28KLQotIwotIyBwdWJsaWMgQVBJ
IHNob3J0Y3V0IGZ1bmN0aW9ucwotIwotCi0KLWRlZiBjb21waWxlXyhzb3VyY2UsIGZpbGVuYW1l
PU5vbmUsIG1vZGU9J2V4ZWMnLCBmbGFncz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsIGRvbnRf
aW5oZXJpdD0wKToKLSAgICAiIiIgY29tcGlsZSB0aGUgZ2l2ZW4gc291cmNlIHRvIGEgcmF3IGNv
ZGUgb2JqZWN0LAotICAgICAgICBhbmQgbWFpbnRhaW4gYW4gaW50ZXJuYWwgY2FjaGUgd2hpY2gg
YWxsb3dzIGxhdGVyCi0gICAgICAgIHJldHJpZXZhbCBvZiB0aGUgc291cmNlIGNvZGUgZm9yIHRo
ZSBjb2RlIG9iamVjdAotICAgICAgICBhbmQgYW55IHJlY3Vyc2l2ZWx5IGNyZWF0ZWQgY29kZSBv
YmplY3RzLgotICAgICIiIgotICAgIGlmIF9hc3QgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2Uo
c291cmNlLCBfYXN0LkFTVCk6Ci0gICAgICAgICMgWFhYIHNob3VsZCBTb3VyY2Ugc3VwcG9ydCBo
YXZpbmcgQVNUPwotICAgICAgICByZXR1cm4gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwg
bW9kZSwgZmxhZ3MsIGRvbnRfaW5oZXJpdCkKLSAgICBfZ2VuZnJhbWUgPSBzeXMuX2dldGZyYW1l
KDEpICAjIHRoZSBjYWxsZXIKLSAgICBzID0gU291cmNlKHNvdXJjZSkKLSAgICBjbyA9IHMuY29t
cGlsZShmaWxlbmFtZSwgbW9kZSwgZmxhZ3MsIF9nZW5mcmFtZT1fZ2VuZnJhbWUpCi0gICAgcmV0
dXJuIGNvCi0KLQotZGVmIGdldGZzbGluZW5vKG9iaik6Ci0gICAgIiIiIFJldHVybiBzb3VyY2Ug
bG9jYXRpb24gKHBhdGgsIGxpbmVubykgZm9yIHRoZSBnaXZlbiBvYmplY3QuCi0gICAgSWYgdGhl
IHNvdXJjZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCByZXR1cm4gKCIiLCAtMSkKLSAgICAiIiIKLSAg
ICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgIHRyeToKLSAgICAgICAgY29kZSA9IF9weXRlc3Qu
X2NvZGUuQ29kZShvYmopCi0gICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgZm4gPSAocHkuc3RkLmluc3BlY3QuZ2V0c291cmNlZmlsZShvYmopIG9yCi0gICAg
ICAgICAgICAgICAgICBweS5zdGQuaW5zcGVjdC5nZXRmaWxlKG9iaikpCi0gICAgICAgIGV4Y2Vw
dCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gIiIsIC0xCi0KLSAgICAgICAgZnNwYXRo
ID0gZm4gYW5kIHB5LnBhdGgubG9jYWwoZm4pIG9yIE5vbmUKLSAgICAgICAgbGluZW5vID0gLTEK
LSAgICAgICAgaWYgZnNwYXRoOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIF8s
IGxpbmVubyA9IGZpbmRzb3VyY2Uob2JqKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0g
ICAgICAgICAgICAgICAgcGFzcwotICAgIGVsc2U6Ci0gICAgICAgIGZzcGF0aCA9IGNvZGUucGF0
aAotICAgICAgICBsaW5lbm8gPSBjb2RlLmZpcnN0bGluZW5vCi0gICAgYXNzZXJ0IGlzaW5zdGFu
Y2UobGluZW5vLCBpbnQpCi0gICAgcmV0dXJuIGZzcGF0aCwgbGluZW5vCi0KLSMKLSMgaGVscGVy
IGZ1bmN0aW9ucwotIwotCi0KLWRlZiBmaW5kc291cmNlKG9iaik6Ci0gICAgdHJ5OgotICAgICAg
ICBzb3VyY2VsaW5lcywgbGluZW5vID0gcHkuc3RkLmluc3BlY3QuZmluZHNvdXJjZShvYmopCi0g
ICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgotICAgICAgICByYWlzZQotICAgIGV4Y2VwdDog
ICMgbm9xYQotICAgICAgICByZXR1cm4gTm9uZSwgLTEKLSAgICBzb3VyY2UgPSBTb3VyY2UoKQot
ICAgIHNvdXJjZS5saW5lcyA9IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lIGluIHNvdXJjZWxpbmVz
XQotICAgIHJldHVybiBzb3VyY2UsIGxpbmVubwotCi0KLWRlZiBnZXRzb3VyY2Uob2JqLCAqKmt3
YXJncyk6Ci0gICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICBvYmogPSBfcHl0ZXN0Ll9jb2Rl
LmdldHJhd2NvZGUob2JqKQotICAgIHRyeToKLSAgICAgICAgc3Ryc3JjID0gaW5zcGVjdC5nZXRz
b3VyY2Uob2JqKQotICAgIGV4Y2VwdCBJbmRlbnRhdGlvbkVycm9yOgotICAgICAgICBzdHJzcmMg
PSAiXCJCdWdneSBweXRob24gdmVyc2lvbiBjb25zaWRlciB1cGdyYWRpbmcsIGNhbm5vdCBnZXQg
c291cmNlXCIiCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3Ryc3JjLCBzdHIpCi0gICAgcmV0dXJu
IFNvdXJjZShzdHJzcmMsICoqa3dhcmdzKQotCi0KLWRlZiBkZWluZGVudChsaW5lcywgb2Zmc2V0
PU5vbmUpOgotICAgIGlmIG9mZnNldCBpcyBOb25lOgotICAgICAgICBmb3IgbGluZSBpbiBsaW5l
czoKLSAgICAgICAgICAgIGxpbmUgPSBsaW5lLmV4cGFuZHRhYnMoKQotICAgICAgICAgICAgcyA9
IGxpbmUubHN0cmlwKCkKLSAgICAgICAgICAgIGlmIHM6Ci0gICAgICAgICAgICAgICAgb2Zmc2V0
ID0gbGVuKGxpbmUpIC0gbGVuKHMpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG9mZnNldCA9IDAKLSAgICBpZiBvZmZzZXQgPT0gMDoKLSAgICAgICAg
cmV0dXJuIGxpc3QobGluZXMpCi0gICAgbmV3bGluZXMgPSBbXQotCi0gICAgZGVmIHJlYWRsaW5l
X2dlbmVyYXRvcihsaW5lcyk6Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAg
ICAgeWllbGQgbGluZSArICdcbicKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHlp
ZWxkICcnCi0KLSAgICBpdCA9IHJlYWRsaW5lX2dlbmVyYXRvcihsaW5lcykKLQotICAgIHRyeToK
LSAgICAgICAgZm9yIF8sIF8sIChzbGluZSwgXyksIChlbGluZSwgXyksIF8gaW4gdG9rZW5pemUu
Z2VuZXJhdGVfdG9rZW5zKGxhbWJkYTogbmV4dChpdCkpOgotICAgICAgICAgICAgaWYgc2xpbmUg
PiBsZW4obGluZXMpOgotICAgICAgICAgICAgICAgIGJyZWFrICAjIEVuZCBvZiBpbnB1dCByZWFj
aGVkCi0gICAgICAgICAgICBpZiBzbGluZSA+IGxlbihuZXdsaW5lcyk6Ci0gICAgICAgICAgICAg
ICAgbGluZSA9IGxpbmVzW3NsaW5lIC0gMV0uZXhwYW5kdGFicygpCi0gICAgICAgICAgICAgICAg
aWYgbGluZS5sc3RyaXAoKSBhbmQgbGluZVs6b2Zmc2V0XS5pc3NwYWNlKCk6Ci0gICAgICAgICAg
ICAgICAgICAgIGxpbmUgPSBsaW5lW29mZnNldDpdICAjIERlaW5kZW50Ci0gICAgICAgICAgICAg
ICAgbmV3bGluZXMuYXBwZW5kKGxpbmUpCi0KLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNs
aW5lLCBlbGluZSk6Ci0gICAgICAgICAgICAgICAgIyBEb24ndCBkZWluZGVudCBjb250aW51aW5n
IGxpbmVzIG9mCi0gICAgICAgICAgICAgICAgIyBtdWx0aWxpbmUgdG9rZW5zIChpLmUuIG11bHRp
bGluZSBzdHJpbmdzKQotICAgICAgICAgICAgICAgIG5ld2xpbmVzLmFwcGVuZChsaW5lc1tpXSkK
LSAgICBleGNlcHQgKEluZGVudGF0aW9uRXJyb3IsIHRva2VuaXplLlRva2VuRXJyb3IpOgotICAg
ICAgICBwYXNzCi0gICAgIyBBZGQgYW55IGxpbmVzIHdlIGRpZG4ndCBzZWUuIEUuZy4gaWYgYW4g
ZXhjZXB0aW9uIHdhcyByYWlzZWQuCi0gICAgbmV3bGluZXMuZXh0ZW5kKGxpbmVzW2xlbihuZXds
aW5lcyk6XSkKLSAgICByZXR1cm4gbmV3bGluZXMKLQotCi1kZWYgZ2V0X3N0YXRlbWVudF9zdGFy
dGVuZDIobGluZW5vLCBub2RlKToKLSAgICBpbXBvcnQgYXN0Ci0gICAgIyBmbGF0dGVuIGFsbCBz
dGF0ZW1lbnRzIGFuZCBleGNlcHQgaGFuZGxlcnMgaW50byBvbmUgbGluZW5vLWxpc3QKLSAgICAj
IEFTVCdzIGxpbmUgbnVtYmVycyBzdGFydCBpbmRleGluZyBhdCAxCi0gICAgdmFsdWVzID0gW10K
LSAgICBmb3IgeCBpbiBhc3Qud2Fsayhub2RlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBf
YXN0LnN0bXQpIG9yIGlzaW5zdGFuY2UoeCwgX2FzdC5FeGNlcHRIYW5kbGVyKToKLSAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoeC5saW5lbm8gLSAxKQotICAgICAgICAgICAgZm9yIG5hbWUgaW4g
ImZpbmFsYm9keSIsICJvcmVsc2UiOgotICAgICAgICAgICAgICAgIHZhbCA9IGdldGF0dHIoeCwg
bmFtZSwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiB2YWw6Ci0gICAgICAgICAgICAgICAgICAg
ICMgdHJlYXQgdGhlIGZpbmFsbHkvb3JlbHNlIHBhcnQgYXMgaXRzIG93biBzdGF0ZW1lbnQKLSAg
ICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2YWxbMF0ubGluZW5vIC0gMSAtIDEpCi0g
ICAgdmFsdWVzLnNvcnQoKQotICAgIGluc2VydF9pbmRleCA9IGJpc2VjdF9yaWdodCh2YWx1ZXMs
IGxpbmVubykKLSAgICBzdGFydCA9IHZhbHVlc1tpbnNlcnRfaW5kZXggLSAxXQotICAgIGlmIGlu
c2VydF9pbmRleCA+PSBsZW4odmFsdWVzKToKLSAgICAgICAgZW5kID0gTm9uZQotICAgIGVsc2U6
Ci0gICAgICAgIGVuZCA9IHZhbHVlc1tpbnNlcnRfaW5kZXhdCi0gICAgcmV0dXJuIHN0YXJ0LCBl
bmQKLQotCi1kZWYgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVubywgc291cmNlLCBhc3NlcnRp
b249RmFsc2UsIGFzdG5vZGU9Tm9uZSk6Ci0gICAgaWYgYXN0bm9kZSBpcyBOb25lOgotICAgICAg
ICBjb250ZW50ID0gc3RyKHNvdXJjZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYXN0bm9k
ZSA9IGNvbXBpbGUoY29udGVudCwgInNvdXJjZSIsICJleGVjIiwgMTAyNCkgICMgMTAyNCBmb3Ig
QVNUCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgc3RhcnQsIGVuZCA9
IGdldHN0YXRlbWVudHJhbmdlX29sZChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uKQotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUsIHN0YXJ0LCBlbmQKLSAgICBzdGFydCwgZW5kID0gZ2V0X3N0YXRl
bWVudF9zdGFydGVuZDIobGluZW5vLCBhc3Rub2RlKQotICAgICMgd2UgbmVlZCB0byBjb3JyZWN0
IHRoZSBlbmQ6Ci0gICAgIyAtIGFzdC1wYXJzaW5nIHN0cmlwcyBjb21tZW50cwotICAgICMgLSB0
aGVyZSBtaWdodCBiZSBlbXB0eSBsaW5lcwotICAgICMgLSB3ZSBtaWdodCBoYXZlIGxlc3NlciBp
bmRlbnRlZCBjb2RlIGJsb2NrcyBhdCB0aGUgZW5kCi0gICAgaWYgZW5kIGlzIE5vbmU6Ci0gICAg
ICAgIGVuZCA9IGxlbihzb3VyY2UubGluZXMpCi0KLSAgICBpZiBlbmQgPiBzdGFydCArIDE6Ci0g
ICAgICAgICMgbWFrZSBzdXJlIHdlIGRvbid0IHNwYW4gZGlmZmVyZW50bHkgaW5kZW50ZWQgY29k
ZSBibG9ja3MKLSAgICAgICAgIyBieSB1c2luZyB0aGUgQmxvY2tGaW5kZXIgaGVscGVyIHVzZWQg
d2hpY2ggaW5zcGVjdC5nZXRzb3VyY2UoKSB1c2VzIGl0c2VsZgotICAgICAgICBibG9ja19maW5k
ZXIgPSBpbnNwZWN0LkJsb2NrRmluZGVyKCkKLSAgICAgICAgIyBpZiB3ZSBzdGFydCB3aXRoIGFu
IGluZGVudGVkIGxpbmUsIHB1dCBibG9ja2ZpbmRlciB0byAic3RhcnRlZCIgbW9kZQotICAgICAg
ICBibG9ja19maW5kZXIuc3RhcnRlZCA9IHNvdXJjZS5saW5lc1tzdGFydF1bMF0uaXNzcGFjZSgp
Ci0gICAgICAgIGl0ID0gKCh4ICsgIlxuIikgZm9yIHggaW4gc291cmNlLmxpbmVzW3N0YXJ0OmVu
ZF0pCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciB0b2sgaW4gdG9rZW5pemUuZ2VuZXJh
dGVfdG9rZW5zKGxhbWJkYTogbmV4dChpdCkpOgotICAgICAgICAgICAgICAgIGJsb2NrX2ZpbmRl
ci50b2tlbmVhdGVyKCp0b2spCi0gICAgICAgIGV4Y2VwdCAoaW5zcGVjdC5FbmRPZkJsb2NrLCBJ
bmRlbnRhdGlvbkVycm9yKToKLSAgICAgICAgICAgIGVuZCA9IGJsb2NrX2ZpbmRlci5sYXN0ICsg
c3RhcnQKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHBhc3MKLQotICAg
ICMgdGhlIGVuZCBtaWdodCBzdGlsbCBwb2ludCB0byBhIGNvbW1lbnQgb3IgZW1wdHkgbGluZSwg
Y29ycmVjdCBpdAotICAgIHdoaWxlIGVuZDoKLSAgICAgICAgbGluZSA9IHNvdXJjZS5saW5lc1tl
bmQgLSAxXS5sc3RyaXAoKQotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKSBvciBub3Qg
bGluZToKLSAgICAgICAgICAgIGVuZCAtPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBi
cmVhawotICAgIHJldHVybiBhc3Rub2RlLCBzdGFydCwgZW5kCi0KLQotZGVmIGdldHN0YXRlbWVu
dHJhbmdlX29sZChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZhbHNlKToKLSAgICAiIiIgcmV0
dXJuIChzdGFydCwgZW5kKSB0dXBsZSB3aGljaCBzcGFucyB0aGUgbWluaW1hbAotICAgICAgICBz
dGF0ZW1lbnQgcmVnaW9uIHdoaWNoIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGxpbmVuby4KLSAgICAg
ICAgcmFpc2UgYW4gSW5kZXhFcnJvciBpZiBubyBzdWNoIHN0YXRlbWVudHJhbmdlIGNhbiBiZSBm
b3VuZC4KLSAgICAiIiIKLSAgICAjIFhYWCB0aGlzIGxvZ2ljIGlzIG9ubHkgdXNlZCBvbiBweXRo
b24yLjQgYW5kIGJlbG93Ci0gICAgIyAxLiBmaW5kIHRoZSBzdGFydCBvZiB0aGUgc3RhdGVtZW50
Ci0gICAgZnJvbSBjb2Rlb3AgaW1wb3J0IGNvbXBpbGVfY29tbWFuZAotICAgIGZvciBzdGFydCBp
biByYW5nZShsaW5lbm8sIC0xLCAtMSk6Ci0gICAgICAgIGlmIGFzc2VydGlvbjoKLSAgICAgICAg
ICAgIGxpbmUgPSBzb3VyY2UubGluZXNbc3RhcnRdCi0gICAgICAgICAgICAjIHRoZSBmb2xsb3dp
bmcgbGluZXMgYXJlIG5vdCBmdWxseSB0ZXN0ZWQsIGNoYW5nZSB3aXRoIGNhcmUKLSAgICAgICAg
ICAgIGlmICdzdXBlcicgaW4gbGluZSBhbmQgJ3NlbGYnIGluIGxpbmUgYW5kICdfX2luaXRfXycg
aW4gbGluZToKLSAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJsaWtlbHkgYSBzdWJj
bGFzcyIpCi0gICAgICAgICAgICBpZiAiYXNzZXJ0IiBub3QgaW4gbGluZSBhbmQgInJhaXNlIiBu
b3QgaW4gbGluZToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICB0cnlsaW5lcyA9
IHNvdXJjZS5saW5lc1tzdGFydDpsaW5lbm8gKyAxXQotICAgICAgICAjIHF1aWNrIGhhY2sgdG8g
cHJlcGFyZSBwYXJzaW5nIGFuIGluZGVudGVkIGxpbmUgd2l0aAotICAgICAgICAjIGNvbXBpbGVf
Y29tbWFuZCgpICh3aGljaCBlcnJvcnMgb24gInJldHVybiIgb3V0c2lkZSBkZWZzKQotICAgICAg
ICB0cnlsaW5lcy5pbnNlcnQoMCwgJ2RlZiB4eHgoKTonKQotICAgICAgICB0cnlzb3VyY2UgPSAn
XG4gJy5qb2luKHRyeWxpbmVzKQotICAgICAgICAjICAgICAgICAgICAgICBeIHNwYWNlIGhlcmUK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kKHRyeXNvdXJjZSkKLSAg
ICAgICAgZXhjZXB0IChTeW50YXhFcnJvciwgT3ZlcmZsb3dFcnJvciwgVmFsdWVFcnJvcik6Ci0g
ICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICMgMi4gZmluZCB0aGUgZW5kIG9mIHRoZSBz
dGF0ZW1lbnQKLSAgICAgICAgZm9yIGVuZCBpbiByYW5nZShsaW5lbm8gKyAxLCBsZW4oc291cmNl
KSArIDEpOgotICAgICAgICAgICAgdHJ5c291cmNlID0gc291cmNlW3N0YXJ0OmVuZF0KLSAgICAg
ICAgICAgIGlmIHRyeXNvdXJjZS5pc3BhcnNlYWJsZSgpOgotICAgICAgICAgICAgICAgIHJldHVy
biBzdGFydCwgZW5kCi0gICAgcmFpc2UgU3ludGF4RXJyb3IoIm5vIHZhbGlkIHNvdXJjZSByYW5n
ZSBhcm91bmQgbGluZSAlZCAiICUgKGxpbmVubywpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMjMzNGYzZjhl
ZGE5NjZhMmQxOGRlZGE3MmU5ZDkwMmY4N2Q3MWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvX2NvZGUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19w
eTJ0cmFjZWJhY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2Vy
dGlvbi9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ4ZTk4Yzg1
YWEyYmJkZThkZjVjMDczYmE5YjY0NWZjYzMyNTdiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9fX2lu
aXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0NiArMCwwIEBACi0iIiIKLXN1cHBvcnQgZm9y
IHByZXNlbnRpbmcgZGV0YWlsZWQgaW5mb3JtYXRpb24gaW4gZmFpbGluZyBhc3NlcnRpb25zLgot
IiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi1pbXBvcnQgc3lzCi1pbXBvcnQgc2l4Ci0KLWZyb20gX3B5dGVzdC5hc3Nl
cnRpb24gaW1wb3J0IHV0aWwKLWZyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHJld3JpdGUK
LWZyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHRydW5jYXRlCi0KLQotZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVidWdjb25m
aWciKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1hc3NlcnQnLAotICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iYXNzZXJ0bW9kZSIs
Ci0gICAgICAgICAgICAgICAgICAgIGNob2ljZXM9KCJyZXdyaXRlIiwgInBsYWluIiwpLAotICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PSJyZXdyaXRlIiwKLSAgICAgICAgICAgICAgICAgICAg
bWV0YXZhcj0iTU9ERSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9IiIiQ29udHJvbCBhc3Nl
cnRpb24gZGVidWdnaW5nIHRvb2xzLiAgJ3BsYWluJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBlcmZvcm1zIG5vIGFzc2VydGlvbiBkZWJ1Z2dpbmcuICAncmV3cml0ZScKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodGhlIGRlZmF1bHQpIHJld3JpdGVzIGFzc2VydCBzdGF0ZW1l
bnRzIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCBtb2R1bGVzIG9uIGltcG9y
dCB0byBwcm92aWRlIGFzc2VydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Np
b24gaW5mb3JtYXRpb24uIiIiKQotCi0KLWRlZiByZWdpc3Rlcl9hc3NlcnRfcmV3cml0ZSgqbmFt
ZXMpOgotICAgICIiIlJlZ2lzdGVyIG9uZSBvciBtb3JlIG1vZHVsZSBuYW1lcyB0byBiZSByZXdy
aXR0ZW4gb24gaW1wb3J0LgotCi0gICAgVGhpcyBmdW5jdGlvbiB3aWxsIG1ha2Ugc3VyZSB0aGF0
IHRoaXMgbW9kdWxlIG9yIGFsbCBtb2R1bGVzIGluc2lkZQotICAgIHRoZSBwYWNrYWdlIHdpbGwg
Z2V0IHRoZWlyIGFzc2VydCBzdGF0ZW1lbnRzIHJld3JpdHRlbi4KLSAgICBUaHVzIHlvdSBzaG91
bGQgbWFrZSBzdXJlIHRvIGNhbGwgdGhpcyBiZWZvcmUgdGhlIG1vZHVsZSBpcwotICAgIGFjdHVh
bGx5IGltcG9ydGVkLCB1c3VhbGx5IGluIHlvdXIgX19pbml0X18ucHkgaWYgeW91IGFyZSBhIHBs
dWdpbgotICAgIHVzaW5nIGEgcGFja2FnZS4KLQotICAgIDpyYWlzZSBUeXBlRXJyb3I6IGlmIHRo
ZSBnaXZlbiBtb2R1bGUgbmFtZXMgYXJlIG5vdCBzdHJpbmdzLgotICAgICIiIgotICAgIGZvciBu
YW1lIGluIG5hbWVzOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgotICAg
ICAgICAgICAgbXNnID0gJ2V4cGVjdGVkIG1vZHVsZSBuYW1lcyBhcyAqYXJncywgZ290IHswfSBp
bnN0ZWFkJwotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZy5mb3JtYXQocmVwcihuYW1l
cykpKQotICAgIGZvciBob29rIGluIHN5cy5tZXRhX3BhdGg6Ci0gICAgICAgIGlmIGlzaW5zdGFu
Y2UoaG9vaywgcmV3cml0ZS5Bc3NlcnRpb25SZXdyaXRpbmdIb29rKToKLSAgICAgICAgICAgIGlt
cG9ydGhvb2sgPSBob29rCi0gICAgICAgICAgICBicmVhawotICAgIGVsc2U6Ci0gICAgICAgIGlt
cG9ydGhvb2sgPSBEdW1teVJld3JpdGVIb29rKCkKLSAgICBpbXBvcnRob29rLm1hcmtfcmV3cml0
ZSgqbmFtZXMpCi0KLQotY2xhc3MgRHVtbXlSZXdyaXRlSG9vayhvYmplY3QpOgotICAgICIiIkEg
bm8tb3AgaW1wb3J0IGhvb2sgZm9yIHdoZW4gcmV3cml0aW5nIGlzIGRpc2FibGVkLiIiIgotCi0g
ICAgZGVmIG1hcmtfcmV3cml0ZShzZWxmLCAqbmFtZXMpOgotICAgICAgICBwYXNzCi0KLQotY2xh
c3MgQXNzZXJ0aW9uU3RhdGU6Ci0gICAgIiIiU3RhdGUgZm9yIHRoZSBhc3NlcnRpb24gcGx1Z2lu
LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgbW9kZSk6Ci0gICAgICAgIHNl
bGYubW9kZSA9IG1vZGUKLSAgICAgICAgc2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5yb290Lmdl
dCgiYXNzZXJ0aW9uIikKLSAgICAgICAgc2VsZi5ob29rID0gTm9uZQotCi0KLWRlZiBpbnN0YWxs
X2ltcG9ydGhvb2soY29uZmlnKToKLSAgICAiIiJUcnkgdG8gaW5zdGFsbCB0aGUgcmV3cml0ZSBo
b29rLCByYWlzZSBTeXN0ZW1FcnJvciBpZiBpdCBmYWlscy4iIiIKLSAgICAjIEp5dGhvbiBoYXMg
YW4gQVNUIGJ1ZyB0aGF0IG1ha2UgdGhlIGFzc2VydGlvbiByZXdyaXRpbmcgaG9vayBtYWxmdW5j
dGlvbi4KLSAgICBpZiAoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSk6Ci0gICAgICAg
IHJhaXNlIFN5c3RlbUVycm9yKCdyZXdyaXRlIG5vdCBzdXBwb3J0ZWQnKQotCi0gICAgY29uZmln
Ll9hc3NlcnRzdGF0ZSA9IEFzc2VydGlvblN0YXRlKGNvbmZpZywgJ3Jld3JpdGUnKQotICAgIGNv
bmZpZy5fYXNzZXJ0c3RhdGUuaG9vayA9IGhvb2sgPSByZXdyaXRlLkFzc2VydGlvblJld3JpdGlu
Z0hvb2soY29uZmlnKQotICAgIHN5cy5tZXRhX3BhdGguaW5zZXJ0KDAsIGhvb2spCi0gICAgY29u
ZmlnLl9hc3NlcnRzdGF0ZS50cmFjZSgnaW5zdGFsbGVkIHJld3JpdGUgaW1wb3J0IGhvb2snKQot
Ci0gICAgZGVmIHVuZG8oKToKLSAgICAgICAgaG9vayA9IGNvbmZpZy5fYXNzZXJ0c3RhdGUuaG9v
awotICAgICAgICBpZiBob29rIGlzIG5vdCBOb25lIGFuZCBob29rIGluIHN5cy5tZXRhX3BhdGg6
Ci0gICAgICAgICAgICBzeXMubWV0YV9wYXRoLnJlbW92ZShob29rKQotCi0gICAgY29uZmlnLmFk
ZF9jbGVhbnVwKHVuZG8pCi0gICAgcmV0dXJuIGhvb2sKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3Rp
b24oc2Vzc2lvbik6Ci0gICAgIyB0aGlzIGhvb2sgaXMgb25seSBjYWxsZWQgd2hlbiB0ZXN0IG1v
ZHVsZXMgYXJlIGNvbGxlY3RlZAotICAgICMgc28gZm9yIGV4YW1wbGUgbm90IGluIHRoZSBtYXN0
ZXIgcHJvY2VzcyBvZiBweXRlc3QteGRpc3QKLSAgICAjICh3aGljaCBkb2VzIG5vdCBjb2xsZWN0
IHRlc3QgbW9kdWxlcykKLSAgICBhc3NlcnRzdGF0ZSA9IGdldGF0dHIoc2Vzc2lvbi5jb25maWcs
ICdfYXNzZXJ0c3RhdGUnLCBOb25lKQotICAgIGlmIGFzc2VydHN0YXRlOgotICAgICAgICBpZiBh
c3NlcnRzdGF0ZS5ob29rIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYXNzZXJ0c3RhdGUuaG9v
ay5zZXRfc2Vzc2lvbihzZXNzaW9uKQotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVt
KToKLSAgICAiIiJTZXR1cCB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSBob29rCi0KLSAg
ICBUaGUgbmV3aW50ZXJwcmV0IGFuZCByZXdyaXRlIG1vZHVsZXMgd2lsbCB1c2UgdXRpbC5fcmVw
cmNvbXBhcmUgaWYKLSAgICBpdCBleGlzdHMgdG8gdXNlIGN1c3RvbSByZXBvcnRpbmcgdmlhIHRo
ZQotICAgIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vay4gIFRoaXMgc2V0cyB1cCB0aGlz
IGN1c3RvbQotICAgIGNvbXBhcmlzb24gZm9yIHRoZSB0ZXN0LgotICAgICIiIgotICAgIGRlZiBj
YWxsYmlucmVwcihvcCwgbGVmdCwgcmlnaHQpOgotICAgICAgICAiIiJDYWxsIHRoZSBweXRlc3Rf
YXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sgYW5kIHByZXBhcmUgdGhlIHJlc3VsdAotCi0gICAgICAg
IFRoaXMgdXNlcyB0aGUgZmlyc3QgcmVzdWx0IGZyb20gdGhlIGhvb2sgYW5kIHRoZW4gZW5zdXJl
cyB0aGUKLSAgICAgICAgZm9sbG93aW5nOgotICAgICAgICAqIE92ZXJseSB2ZXJib3NlIGV4cGxh
bmF0aW9ucyBhcmUgdHJ1bmNhdGVkIHVubGVzcyBjb25maWd1cmVkIG90aGVyd2lzZQotICAgICAg
ICAgIChlZy4gaWYgcnVubmluZyBpbiB2ZXJib3NlIG1vZGUpLgotICAgICAgICAqIEVtYmVkZGVk
IG5ld2xpbmVzIGFyZSBlc2NhcGVkIHRvIGhlbHAgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKQot
ICAgICAgICAgIGxhdGVyLgotICAgICAgICAqIElmIHRoZSByZXdyaXRlIG1vZGUgaXMgdXNlZCBl
bWJlZGRlZCAlLWNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkCi0gICAgICAgICAgdG8gcHJvdGVjdCBs
YXRlciAlIGZvcm1hdHRpbmcuCi0KLSAgICAgICAgVGhlIHJlc3VsdCBjYW4gYmUgZm9ybWF0dGVk
IGJ5IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgZm9yCi0gICAgICAgIHByZXR0eSBwcmludGlu
Zy4KLSAgICAgICAgIiIiCi0gICAgICAgIGhvb2tfcmVzdWx0ID0gaXRlbS5paG9vay5weXRlc3Rf
YXNzZXJ0cmVwcl9jb21wYXJlKAotICAgICAgICAgICAgY29uZmlnPWl0ZW0uY29uZmlnLCBvcD1v
cCwgbGVmdD1sZWZ0LCByaWdodD1yaWdodCkKLSAgICAgICAgZm9yIG5ld19leHBsIGluIGhvb2tf
cmVzdWx0OgotICAgICAgICAgICAgaWYgbmV3X2V4cGw6Ci0gICAgICAgICAgICAgICAgbmV3X2V4
cGwgPSB0cnVuY2F0ZS50cnVuY2F0ZV9pZl9yZXF1aXJlZChuZXdfZXhwbCwgaXRlbSkKLSAgICAg
ICAgICAgICAgICBuZXdfZXhwbCA9IFtsaW5lLnJlcGxhY2UoIlxuIiwgIlxcbiIpIGZvciBsaW5l
IGluIG5ld19leHBsXQotICAgICAgICAgICAgICAgIHJlcyA9IHNpeC50ZXh0X3R5cGUoIlxufiIp
LmpvaW4obmV3X2V4cGwpCi0gICAgICAgICAgICAgICAgaWYgaXRlbS5jb25maWcuZ2V0dmFsdWUo
ImFzc2VydG1vZGUiKSA9PSAicmV3cml0ZSI6Ci0gICAgICAgICAgICAgICAgICAgIHJlcyA9IHJl
cy5yZXBsYWNlKCIlIiwgIiUlIikKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzCi0gICAgdXRp
bC5fcmVwcmNvbXBhcmUgPSBjYWxsYmlucmVwcgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF90ZWFy
ZG93bihpdGVtKToKLSAgICB1dGlsLl9yZXByY29tcGFyZSA9IE5vbmUKLQotCi1kZWYgcHl0ZXN0
X3Nlc3Npb25maW5pc2goc2Vzc2lvbik6Ci0gICAgYXNzZXJ0c3RhdGUgPSBnZXRhdHRyKHNlc3Np
b24uY29uZmlnLCAnX2Fzc2VydHN0YXRlJywgTm9uZSkKLSAgICBpZiBhc3NlcnRzdGF0ZToKLSAg
ICAgICAgaWYgYXNzZXJ0c3RhdGUuaG9vayBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGFzc2Vy
dHN0YXRlLmhvb2suc2V0X3Nlc3Npb24oTm9uZSkKLQotCi0jIEV4cG9zZSB0aGlzIHBsdWdpbidz
IGltcGxlbWVudGF0aW9uIGZvciB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSBob29rCi1w
eXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlID0gdXRpbC5hc3NlcnRyZXByX2NvbXBhcmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmNjQzNThmNDkwYmM5MWFmOWE1ZWM1MjY1MmI2ZThiMmJlMGFjYzYxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5NDggKzAsMCBAQAot
IiIiUmV3cml0ZSBhc3NlcnRpb24gQVNUIHRvIHByb2R1Y2UgbmljZSBlcnJvciBtZXNzYWdlcyIi
IgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmlu
dF9mdW5jdGlvbgotaW1wb3J0IGFzdAotaW1wb3J0IF9hc3QKLWltcG9ydCBlcnJubwotaW1wb3J0
IGl0ZXJ0b29scwotaW1wb3J0IGltcAotaW1wb3J0IG1hcnNoYWwKLWltcG9ydCBvcwotaW1wb3J0
IHJlCi1pbXBvcnQgc2l4Ci1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdHlwZXMK
LQotaW1wb3J0IHB5Ci1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCi0KLQotIyBw
eXRlc3QgY2FjaGVzIHJld3JpdHRlbiBweWNzIGluIF9fcHljYWNoZV9fLgotaWYgaGFzYXR0cihp
bXAsICJnZXRfdGFnIik6Ci0gICAgUFlURVNUX1RBRyA9IGltcC5nZXRfdGFnKCkgKyAiLVBZVEVT
VCIKLWVsc2U6Ci0gICAgaWYgaGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpOgotICAg
ICAgICBpbXBsID0gInB5cHkiCi0gICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gImphdmEiOgotICAg
ICAgICBpbXBsID0gImp5dGhvbiIKLSAgICBlbHNlOgotICAgICAgICBpbXBsID0gImNweXRob24i
Ci0gICAgdmVyID0gc3lzLnZlcnNpb25faW5mbwotICAgIFBZVEVTVF9UQUcgPSAiJXMtJXMlcy1Q
WVRFU1QiICUgKGltcGwsIHZlclswXSwgdmVyWzFdKQotICAgIGRlbCB2ZXIsIGltcGwKLQotUFlD
X0VYVCA9ICIucHkiICsgKF9fZGVidWdfXyBhbmQgImMiIG9yICJvIikKLVBZQ19UQUlMID0gIi4i
ICsgUFlURVNUX1RBRyArIFBZQ19FWFQKLQotQVNDSUlfSVNfREVGQVVMVF9FTkNPRElORyA9IHN5
cy52ZXJzaW9uX2luZm9bMF0gPCAzCi0KLWlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDUpOgot
ICAgIGFzdF9DYWxsID0gYXN0LkNhbGwKLWVsc2U6Ci0gICAgZGVmIGFzdF9DYWxsKGEsIGIsIGMp
OgotICAgICAgICByZXR1cm4gYXN0LkNhbGwoYSwgYiwgYywgTm9uZSwgTm9uZSkKLQotCi1jbGFz
cyBBc3NlcnRpb25SZXdyaXRpbmdIb29rKG9iamVjdCk6Ci0gICAgIiIiUEVQMzAyIEltcG9ydCBo
b29rIHdoaWNoIHJld3JpdGVzIGFzc2VydHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29uZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi5mbnBh
dHMgPSBjb25maWcuZ2V0aW5pKCJweXRob25fZmlsZXMiKQotICAgICAgICBzZWxmLnNlc3Npb24g
PSBOb25lCi0gICAgICAgIHNlbGYubW9kdWxlcyA9IHt9Ci0gICAgICAgIHNlbGYuX3Jld3JpdHRl
bl9uYW1lcyA9IHNldCgpCi0gICAgICAgIHNlbGYuX3JlZ2lzdGVyX3dpdGhfcGtnX3Jlc291cmNl
cygpCi0gICAgICAgIHNlbGYuX211c3RfcmV3cml0ZSA9IHNldCgpCi0KLSAgICBkZWYgc2V0X3Nl
c3Npb24oc2VsZiwgc2Vzc2lvbik6Ci0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KLQot
ICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgotICAgICAgICBzdGF0
ZSA9IHNlbGYuY29uZmlnLl9hc3NlcnRzdGF0ZQotICAgICAgICBzdGF0ZS50cmFjZSgiZmluZF9t
b2R1bGUgY2FsbGVkIGZvcjogJXMiICUgbmFtZSkKLSAgICAgICAgbmFtZXMgPSBuYW1lLnJzcGxp
dCgiLiIsIDEpCi0gICAgICAgIGxhc3RuYW1lID0gbmFtZXNbLTFdCi0gICAgICAgIHB0aCA9IE5v
bmUKLSAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICMgU3RhcnRpbmcg
d2l0aCBQeXRob24gMy4zLCBwYXRoIGlzIGEgX05hbWVzcGFjZVBhdGgoKSwgd2hpY2gKLSAgICAg
ICAgICAgICMgY2F1c2VzIHByb2JsZW1zIGlmIG5vdCBjb252ZXJ0ZWQgdG8gbGlzdC4KLSAgICAg
ICAgICAgIHBhdGggPSBsaXN0KHBhdGgpCi0gICAgICAgICAgICBpZiBsZW4ocGF0aCkgPT0gMToK
LSAgICAgICAgICAgICAgICBwdGggPSBwYXRoWzBdCi0gICAgICAgIGlmIHB0aCBpcyBOb25lOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IGltcC5maW5k
X21vZHVsZShsYXN0bmFtZSwgcGF0aCkKLSAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgaWYgZmQgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICAgICAgZmQuY2xvc2UoKQotICAgICAgICAgICAgdHAgPSBkZXNjWzJd
Ci0gICAgICAgICAgICBpZiB0cCA9PSBpbXAuUFlfQ09NUElMRUQ6Ci0gICAgICAgICAgICAgICAg
aWYgaGFzYXR0cihpbXAsICJzb3VyY2VfZnJvbV9jYWNoZSIpOgotICAgICAgICAgICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBmbiA9IGltcC5zb3VyY2VfZnJvbV9jYWNo
ZShmbikKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAjIFB5dGhvbiAzIGRvZXNuJ3QgbGlrZSBvcnBoYW5lZCBidXQgc3RpbGwt
aW1wb3J0YWJsZQotICAgICAgICAgICAgICAgICAgICAgICAgIyAucHljIGZpbGVzLgotICAgICAg
ICAgICAgICAgICAgICAgICAgZm4gPSBmbls6LTFdCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgZm4gPSBmbls6LTFdCi0gICAgICAgICAgICBlbGlmIHRwICE9IGlt
cC5QWV9TT1VSQ0U6Ci0gICAgICAgICAgICAgICAgIyBEb24ndCBrbm93IHdoYXQgdGhpcyBpcy4K
LSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
Zm4gPSBvcy5wYXRoLmpvaW4ocHRoLCBuYW1lLnJwYXJ0aXRpb24oIi4iKVsyXSArICIucHkiKQot
Ci0gICAgICAgIGZuX3B5cGF0aCA9IHB5LnBhdGgubG9jYWwoZm4pCi0gICAgICAgIGlmIG5vdCBz
ZWxmLl9zaG91bGRfcmV3cml0ZShuYW1lLCBmbl9weXBhdGgsIHN0YXRlKToKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0KLSAgICAgICAgc2VsZi5fcmV3cml0dGVuX25hbWVzLmFkZChuYW1lKQot
Ci0gICAgICAgICMgVGhlIHJlcXVlc3RlZCBtb2R1bGUgbG9va3MgbGlrZSBhIHRlc3QgZmlsZSwg
c28gcmV3cml0ZSBpdC4gVGhpcyBpcwotICAgICAgICAjIHRoZSBtb3N0IG1hZ2ljYWwgcGFydCBv
ZiB0aGUgcHJvY2VzczogbG9hZCB0aGUgc291cmNlLCByZXdyaXRlIHRoZQotICAgICAgICAjIGFz
c2VydHMsIGFuZCBsb2FkIHRoZSByZXdyaXR0ZW4gc291cmNlLiBXZSBhbHNvIGNhY2hlIHRoZSBy
ZXdyaXR0ZW4KLSAgICAgICAgIyBtb2R1bGUgY29kZSBpbiBhIHNwZWNpYWwgcHljLiBXZSBtdXN0
IGJlIGF3YXJlIG9mIHRoZSBwb3NzaWJpbGl0eSBvZgotICAgICAgICAjIGNvbmN1cnJlbnQgcHl0
ZXN0IHByb2Nlc3NlcyByZXdyaXRpbmcgYW5kIGxvYWRpbmcgcHljcy4gVG8gYXZvaWQKLSAgICAg
ICAgIyB0cmlja3kgcmFjZSBjb25kaXRpb25zLCB3ZSBtYWludGFpbiB0aGUgZm9sbG93aW5nIGlu
dmFyaWFudDogVGhlCi0gICAgICAgICMgY2FjaGVkIHB5YyBpcyBhbHdheXMgYSBjb21wbGV0ZSwg
dmFsaWQgcHljLiBPcGVyYXRpb25zIG9uIGl0IG11c3QgYmUKLSAgICAgICAgIyBhdG9taWMuIFBP
U0lYJ3MgYXRvbWljIHJlbmFtZSBjb21lcyBpbiBoYW5keS4KLSAgICAgICAgd3JpdGUgPSBub3Qg
c3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUKLSAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5qb2lu
KGZuX3B5cGF0aC5kaXJuYW1lLCAiX19weWNhY2hlX18iKQotICAgICAgICBpZiB3cml0ZToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBvcy5ta2RpcihjYWNoZV9kaXIpCi0gICAg
ICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZv
KClbMV0uZXJybm8KLSAgICAgICAgICAgICAgICBpZiBlID09IGVycm5vLkVFWElTVDoKLSAgICAg
ICAgICAgICAgICAgICAgIyBFaXRoZXIgdGhlIF9fcHljYWNoZV9fIGRpcmVjdG9yeSBhbHJlYWR5
IGV4aXN0cyAodGhlCi0gICAgICAgICAgICAgICAgICAgICMgY29tbW9uIGNhc2UpIG9yIGl0J3Mg
YmxvY2tlZCBieSBhIG5vbi1kaXIgbm9kZS4gSW4gdGhlCi0gICAgICAgICAgICAgICAgICAgICMg
bGF0dGVyIGNhc2UsIHdlJ2xsIGlnbm9yZSBpdCBpbiBfd3JpdGVfcHljLgotICAgICAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZWxpZiBlIGluIFtlcnJuby5FTk9FTlQsIGVy
cm5vLkVOT1RESVJdOgotICAgICAgICAgICAgICAgICAgICAjIE9uZSBvZiB0aGUgcGF0aCBjb21w
b25lbnRzIHdhcyBub3QgYSBkaXJlY3RvcnksIGxpa2VseQotICAgICAgICAgICAgICAgICAgICAj
IGJlY2F1c2Ugd2UncmUgaW4gYSB6aXAgZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgd3JpdGUg
PSBGYWxzZQotICAgICAgICAgICAgICAgIGVsaWYgZSBpbiBbZXJybm8uRUFDQ0VTLCBlcnJuby5F
Uk9GUywgZXJybm8uRVBFUk1dOgotICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgicmVh
ZCBvbmx5IGRpcmVjdG9yeTogJXIiICUgZm5fcHlwYXRoLmRpcm5hbWUpCi0gICAgICAgICAgICAg
ICAgICAgIHdyaXRlID0gRmFsc2UKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZQotICAgICAgICBjYWNoZV9uYW1lID0gZm5fcHlwYXRoLmJhc2VuYW1lWzot
M10gKyBQWUNfVEFJTAotICAgICAgICBweWMgPSBvcy5wYXRoLmpvaW4oY2FjaGVfZGlyLCBjYWNo
ZV9uYW1lKQotICAgICAgICAjIE5vdGljZSB0aGF0IGV2ZW4gaWYgd2UncmUgaW4gYSByZWFkLW9u
bHkgZGlyZWN0b3J5LCBJJ20gZ29pbmcKLSAgICAgICAgIyB0byBjaGVjayBmb3IgYSBjYWNoZWQg
cHljLiBUaGlzIG1heSBub3QgYmUgb3B0aW1hbC4uLgotICAgICAgICBjbyA9IF9yZWFkX3B5Yyhm
bl9weXBhdGgsIHB5Yywgc3RhdGUudHJhY2UpCi0gICAgICAgIGlmIGNvIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBzdGF0ZS50cmFjZSgicmV3cml0aW5nICVyIiAlIChmbiwpKQotICAgICAgICAgICAg
c291cmNlX3N0YXQsIGNvID0gX3Jld3JpdGVfdGVzdChzZWxmLmNvbmZpZywgZm5fcHlwYXRoKQot
ICAgICAgICAgICAgaWYgY28gaXMgTm9uZToKLSAgICAgICAgICAgICAgICAjIFByb2JhYmx5IGEg
U3ludGF4RXJyb3IgaW4gdGhlIHRlc3QuCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICAgICAgICAgIGlmIHdyaXRlOgotICAgICAgICAgICAgICAgIF9tYWtlX3Jld3JpdHRlbl9weWMo
c3RhdGUsIHNvdXJjZV9zdGF0LCBweWMsIGNvKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c3RhdGUudHJhY2UoImZvdW5kIGNhY2hlZCByZXdyaXR0ZW4gcHljIGZvciAlciIgJSAoZm4sKSkK
LSAgICAgICAgc2VsZi5tb2R1bGVzW25hbWVdID0gY28sIHB5YwotICAgICAgICByZXR1cm4gc2Vs
ZgotCi0gICAgZGVmIF9zaG91bGRfcmV3cml0ZShzZWxmLCBuYW1lLCBmbl9weXBhdGgsIHN0YXRl
KToKLSAgICAgICAgIyBhbHdheXMgcmV3cml0ZSBjb25mdGVzdCBmaWxlcwotICAgICAgICBmbiA9
IHN0cihmbl9weXBhdGgpCi0gICAgICAgIGlmIGZuX3B5cGF0aC5iYXNlbmFtZSA9PSAnY29uZnRl
c3QucHknOgotICAgICAgICAgICAgc3RhdGUudHJhY2UoInJld3JpdGluZyBjb25mdGVzdCBmaWxl
OiAlciIgJSAoZm4sKSkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgaWYgc2Vs
Zi5zZXNzaW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5zZXNzaW9uLmlzaW5p
dHBhdGgoZm4pOgotICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIHRlc3QgZmls
ZSAod2FzIHNwZWNpZmllZCBvbiBjbWRsaW5lKTogJXIiICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZm4sKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgICMg
bW9kdWxlcyBub3QgcGFzc2VkIGV4cGxpY2l0bHkgb24gdGhlIGNvbW1hbmQgbGluZSBhcmUgb25s
eQotICAgICAgICAjIHJld3JpdHRlbiBpZiB0aGV5IG1hdGNoIHRoZSBuYW1pbmcgY29udmVudGlv
biBmb3IgdGVzdCBmaWxlcwotICAgICAgICBmb3IgcGF0IGluIHNlbGYuZm5wYXRzOgotICAgICAg
ICAgICAgaWYgZm5fcHlwYXRoLmZubWF0Y2gocGF0KToKLSAgICAgICAgICAgICAgICBzdGF0ZS50
cmFjZSgibWF0Y2hlZCB0ZXN0IGZpbGUgJXIiICUgKGZuLCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKLQotICAgICAgICBmb3IgbWFya2VkIGluIHNlbGYuX211c3RfcmV3cml0ZToKLSAg
ICAgICAgICAgIGlmIG5hbWUgPT0gbWFya2VkIG9yIG5hbWUuc3RhcnRzd2l0aChtYXJrZWQgKyAn
LicpOgotICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIG1hcmtlZCBmaWxlICVy
IChmcm9tICVyKSIgJSAobmFtZSwgbWFya2VkKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQotCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIG1hcmtfcmV3cml0ZShzZWxmLCAq
bmFtZXMpOgotICAgICAgICAiIiJNYXJrIGltcG9ydCBuYW1lcyBhcyBuZWVkaW5nIHRvIGJlIHJl
d3JpdHRlbi4KLQotICAgICAgICBUaGUgbmFtZWQgbW9kdWxlIG9yIHBhY2thZ2UgYXMgd2VsbCBh
cyBhbnkgbmVzdGVkIG1vZHVsZXMgd2lsbAotICAgICAgICBiZSByZXdyaXR0ZW4gb24gaW1wb3J0
LgotICAgICAgICAiIiIKLSAgICAgICAgYWxyZWFkeV9pbXBvcnRlZCA9IHNldChuYW1lcykuaW50
ZXJzZWN0aW9uKHNldChzeXMubW9kdWxlcykpCi0gICAgICAgIGlmIGFscmVhZHlfaW1wb3J0ZWQ6
Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiBhbHJlYWR5X2ltcG9ydGVkOgotICAgICAgICAgICAg
ICAgIGlmIG5hbWUgbm90IGluIHNlbGYuX3Jld3JpdHRlbl9uYW1lczoKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fd2Fybl9hbHJlYWR5X2ltcG9ydGVkKG5hbWUpCi0gICAgICAgIHNlbGYuX211
c3RfcmV3cml0ZS51cGRhdGUobmFtZXMpCi0KLSAgICBkZWYgX3dhcm5fYWxyZWFkeV9pbXBvcnRl
ZChzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5jb25maWcud2FybigKLSAgICAgICAgICAgICdQ
MScsCi0gICAgICAgICAgICAnTW9kdWxlIGFscmVhZHkgaW1wb3J0ZWQgc28gY2Fubm90IGJlIHJl
d3JpdHRlbjogJXMnICUgbmFtZSkKLQotICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBuYW1lKToK
LSAgICAgICAgIyBJZiB0aGVyZSBpcyBhbiBleGlzdGluZyBtb2R1bGUgb2JqZWN0IG5hbWVkICdm
dWxsbmFtZScgaW4KLSAgICAgICAgIyBzeXMubW9kdWxlcywgdGhlIGxvYWRlciBtdXN0IHVzZSB0
aGF0IGV4aXN0aW5nIG1vZHVsZS4gKE90aGVyd2lzZSwKLSAgICAgICAgIyB0aGUgcmVsb2FkKCkg
YnVpbHRpbiB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseS4pCi0gICAgICAgIGlmIG5hbWUgaW4gc3lz
Lm1vZHVsZXM6Ci0gICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KLQotICAgICAg
ICBjbywgcHljID0gc2VsZi5tb2R1bGVzLnBvcChuYW1lKQotICAgICAgICAjIEkgd2lzaCBJIGNv
dWxkIGp1c3QgY2FsbCBpbXAubG9hZF9jb21waWxlZCBoZXJlLCBidXQgX19maWxlX18gaGFzIHRv
Ci0gICAgICAgICMgYmUgc2V0IHByb3Blcmx5LiBJbiBQeXRob24gMy4yKywgdGhpcyBhbGwgd291
bGQgYmUgaGFuZGxlZCBjb3JyZWN0bHkKLSAgICAgICAgIyBieSBsb2FkX2NvbXBpbGVkLgotICAg
ICAgICBtb2QgPSBzeXMubW9kdWxlc1tuYW1lXSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIG1vZC5fX2ZpbGVfXyA9IGNvLmNvX2ZpbGVuYW1lCi0gICAg
ICAgICAgICAjIE5vcm1hbGx5LCB0aGlzIGF0dHJpYnV0ZSBpcyAzLjIrLgotICAgICAgICAgICAg
bW9kLl9fY2FjaGVkX18gPSBweWMKLSAgICAgICAgICAgIG1vZC5fX2xvYWRlcl9fID0gc2VsZgot
ICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjbywgbW9kLl9fZGljdF9fKQotICAgICAgICBl
eGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6Ci0gICAg
ICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCi0gICAgICAgICAgICByYWlzZQotICAg
ICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KLQotICAgIGRlZiBpc19wYWNrYWdlKHNlbGYs
IG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmZCwgZm4sIGRlc2MgPSBpbXAuZmlu
ZF9tb2R1bGUobmFtZSkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIGZkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZmQu
Y2xvc2UoKQotICAgICAgICB0cCA9IGRlc2NbMl0KLSAgICAgICAgcmV0dXJuIHRwID09IGltcC5Q
S0dfRElSRUNUT1JZCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3JlZ2lzdGVyX3dpdGhf
cGtnX3Jlc291cmNlcyhjbHMpOgotICAgICAgICAiIiIKLSAgICAgICAgRW5zdXJlIHBhY2thZ2Ug
cmVzb3VyY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSB0aGlzIGxvYWRlci4gTWF5IGJlIGNhbGxlZAot
ICAgICAgICBtdWx0aXBsZSB0aW1lcywgYXMgdGhlIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50Lgot
ICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJj
ZXMKLSAgICAgICAgICAgICMgYWNjZXNzIGFuIGF0dHJpYnV0ZSBpbiBjYXNlIGEgZGVmZXJyZWQg
aW1wb3J0ZXIgaXMgcHJlc2VudAotICAgICAgICAgICAgcGtnX3Jlc291cmNlcy5fX25hbWVfXwot
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAg
ICAjIFNpbmNlIHB5dGVzdCB0ZXN0cyBhcmUgYWx3YXlzIGxvY2F0ZWQgaW4gdGhlIGZpbGUgc3lz
dGVtLCB0aGUKLSAgICAgICAgIyAgRGVmYXVsdFByb3ZpZGVyIGlzIGFwcHJvcHJpYXRlLgotICAg
ICAgICBwa2dfcmVzb3VyY2VzLnJlZ2lzdGVyX2xvYWRlcl90eXBlKGNscywgcGtnX3Jlc291cmNl
cy5EZWZhdWx0UHJvdmlkZXIpCi0KLSAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgcGF0aG5hbWUpOgot
ICAgICAgICAiIiJPcHRpb25hbCBQRVAzMDIgZ2V0X2RhdGEgQVBJLgotICAgICAgICAiIiIKLSAg
ICAgICAgd2l0aCBvcGVuKHBhdGhuYW1lLCAncmInKSBhcyBmOgotICAgICAgICAgICAgcmV0dXJu
IGYucmVhZCgpCi0KLQotZGVmIF93cml0ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHlj
KToKLSAgICAjIFRlY2huaWNhbGx5LCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUgdGhlIHNhbWUgcHlj
IGZvcm1hdCBhcwotICAgICMgKEMpUHl0aG9uLCBzaW5jZSB0aGVzZSAicHljcyIgc2hvdWxkIG5l
dmVyIGJlIHNlZW4gYnkgYnVpbHRpbgotICAgICMgaW1wb3J0LiBIb3dldmVyLCB0aGVyZSdzIGxp
dHRsZSByZWFzb24gZGV2aWF0ZSwgYW5kIEkgaG9wZQotICAgICMgc29tZXRpbWUgdG8gYmUgYWJs
ZSB0byB1c2UgaW1wLmxvYWRfY29tcGlsZWQgdG8gbG9hZCB0aGVtLiAoU2VlCi0gICAgIyB0aGUg
Y29tbWVudCBpbiBsb2FkX21vZHVsZSBhYm92ZS4pCi0gICAgdHJ5OgotICAgICAgICBmcCA9IG9w
ZW4ocHljLCAid2IiKQotICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICBlcnIgPSBzeXMuZXhj
X2luZm8oKVsxXS5lcnJubwotICAgICAgICBzdGF0ZS50cmFjZSgiZXJyb3Igd3JpdGluZyBweWMg
ZmlsZSBhdCAlczogZXJybm89JXMiICUgKHB5YywgZXJyKSkKLSAgICAgICAgIyB3ZSBpZ25vcmUg
YW55IGZhaWx1cmUgdG8gd3JpdGUgdGhlIGNhY2hlIGZpbGUKLSAgICAgICAgIyB0aGVyZSBhcmUg
bWFueSByZWFzb25zLCBwZXJtaXNzaW9uLWRlbmllZCwgX19weWNhY2hlX18gYmVpbmcgYQotICAg
ICAgICAjIGZpbGUgZXRjLgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICB0cnk6Ci0gICAgICAg
IGZwLndyaXRlKGltcC5nZXRfbWFnaWMoKSkKLSAgICAgICAgbXRpbWUgPSBpbnQoc291cmNlX3N0
YXQubXRpbWUpCi0gICAgICAgIHNpemUgPSBzb3VyY2Vfc3RhdC5zaXplICYgMHhGRkZGRkZGRgot
ICAgICAgICBmcC53cml0ZShzdHJ1Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNpemUpKQotICAgICAg
ICBtYXJzaGFsLmR1bXAoY28sIGZwKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGZwLmNsb3NlKCkK
LSAgICByZXR1cm4gVHJ1ZQotCi0KLVJOID0gIlxyXG4iLmVuY29kZSgidXRmLTgiKQotTiA9ICJc
biIuZW5jb2RlKCJ1dGYtOCIpCi0KLWNvb2tpZV9yZSA9IHJlLmNvbXBpbGUociJeWyBcdFxmXSoj
Lipjb2RpbmdbOj1dWyBcdF0qWy1cdy5dKyIpCi1CT01fVVRGOCA9ICdceGVmXHhiYlx4YmYnCi0K
LQotZGVmIF9yZXdyaXRlX3Rlc3QoY29uZmlnLCBmbik6Ci0gICAgIiIiVHJ5IHRvIHJlYWQgYW5k
IHJld3JpdGUgKmZuKiBhbmQgcmV0dXJuIHRoZSBjb2RlIG9iamVjdC4iIiIKLSAgICBzdGF0ZSA9
IGNvbmZpZy5fYXNzZXJ0c3RhdGUKLSAgICB0cnk6Ci0gICAgICAgIHN0YXQgPSBmbi5zdGF0KCkK
LSAgICAgICAgc291cmNlID0gZm4ucmVhZCgicmIiKQotICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVy
cm9yOgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotICAgIGlmIEFTQ0lJX0lTX0RFRkFVTFRf
RU5DT0RJTkc6Ci0gICAgICAgICMgQVNDSUkgaXMgdGhlIGRlZmF1bHQgZW5jb2RpbmcgaW4gUHl0
aG9uIDIuIFdpdGhvdXQgYSBjb2RpbmcKLSAgICAgICAgIyBkZWNsYXJhdGlvbiwgUHl0aG9uIDIg
d2lsbCBjb21wbGFpbiBhYm91dCBhbnkgYnl0ZXMgaW4gdGhlIGZpbGUKLSAgICAgICAgIyBvdXRz
aWRlIHRoZSBBU0NJSSByYW5nZS4gU2FkbHksIHRoaXMgYmVoYXZpb3IgZG9lcyBub3QgZXh0ZW5k
IHRvCi0gICAgICAgICMgY29tcGlsZSgpIG9yIGFzdC5wYXJzZSgpLCB3aGljaCBwcmVmZXIgdG8g
aW50ZXJwcmV0IHRoZSBieXRlcyBhcwotICAgICAgICAjIGxhdGluLTEuIChBdCBsZWFzdCB0aGV5
IHByb3Blcmx5IGhhbmRsZSBleHBsaWNpdCBjb2RpbmcgY29va2llcy4pIFRvCi0gICAgICAgICMg
cHJlc2VydmUgdGhpcyBlcnJvciBiZWhhdmlvciwgd2UgY291bGQgZm9yY2UgYXN0LnBhcnNlKCkg
dG8gdXNlIEFTQ0lJCi0gICAgICAgICMgYXMgdGhlIGVuY29kaW5nIGJ5IGluc2VydGluZyBhIGNv
ZGluZyBjb29raWUuIFVuZm9ydHVuYXRlbHksIHRoYXQKLSAgICAgICAgIyBtZXNzZXMgdXAgbGlu
ZSBudW1iZXJzLiBUaHVzLCB3ZSBoYXZlIHRvIGNoZWNrIG91cnNlbHZlcyBpZiBhbnl0aGluZwot
ICAgICAgICAjIGlzIG91dHNpZGUgdGhlIEFTQ0lJIHJhbmdlIGluIHRoZSBjYXNlIG5vIGVuY29k
aW5nIGlzIGV4cGxpY2l0bHkKLSAgICAgICAgIyBkZWNsYXJlZC4gRm9yIG1vcmUgY29udGV4dCwg
c2VlIGlzc3VlICMyNjkuIFlheSBmb3IgUHl0aG9uIDMgd2hpY2gKLSAgICAgICAgIyBnZXRzIHRo
aXMgcmlnaHQuCi0gICAgICAgIGVuZDEgPSBzb3VyY2UuZmluZCgiXG4iKQotICAgICAgICBlbmQy
ID0gc291cmNlLmZpbmQoIlxuIiwgZW5kMSArIDEpCi0gICAgICAgIGlmIChub3Qgc291cmNlLnN0
YXJ0c3dpdGgoQk9NX1VURjgpIGFuZAotICAgICAgICAgICAgY29va2llX3JlLm1hdGNoKHNvdXJj
ZVswOmVuZDFdKSBpcyBOb25lIGFuZAotICAgICAgICAgICAgICAgIGNvb2tpZV9yZS5tYXRjaChz
b3VyY2VbZW5kMSArIDE6ZW5kMl0pIGlzIE5vbmUpOgotICAgICAgICAgICAgaWYgaGFzYXR0cihz
dGF0ZSwgIl9pbmRlY29kZSIpOgotICAgICAgICAgICAgICAgICMgZW5jb2RpbmdzIGltcG9ydGVk
IHVzIGFnYWluLCBzbyBkb24ndCByZXdyaXRlLgotICAgICAgICAgICAgICAgIHJldHVybiBOb25l
LCBOb25lCi0gICAgICAgICAgICBzdGF0ZS5faW5kZWNvZGUgPSBUcnVlCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZGVj
b2RlKCJhc2NpaSIpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoK
LSAgICAgICAgICAgICAgICAgICAgIyBMZXQgaXQgZmFpbCBpbiByZWFsIGltcG9ydC4KLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICAgICAgZGVsIHN0YXRlLl9pbmRlY29kZQotICAgIHRyeToKLSAgICAgICAgdHJl
ZSA9IGFzdC5wYXJzZShzb3VyY2UpCi0gICAgZXhjZXB0IFN5bnRheEVycm9yOgotICAgICAgICAj
IExldCB0aGlzIHBvcCB1cCBhZ2FpbiBpbiB0aGUgcmVhbCBpbXBvcnQuCi0gICAgICAgIHN0YXRl
LnRyYWNlKCJmYWlsZWQgdG8gcGFyc2U6ICVyIiAlIChmbiwpKQotICAgICAgICByZXR1cm4gTm9u
ZSwgTm9uZQotICAgIHJld3JpdGVfYXNzZXJ0cyh0cmVlLCBmbiwgY29uZmlnKQotICAgIHRyeToK
LSAgICAgICAgY28gPSBjb21waWxlKHRyZWUsIGZuLnN0cnBhdGgsICJleGVjIiwgZG9udF9pbmhl
cml0PVRydWUpCi0gICAgZXhjZXB0IFN5bnRheEVycm9yOgotICAgICAgICAjIEl0J3MgcG9zc2li
bGUgdGhhdCB0aGlzIGVycm9yIGlzIGZyb20gc29tZSBidWcgaW4gdGhlCi0gICAgICAgICMgYXNz
ZXJ0aW9uIHJld3JpdGluZywgYnV0IEkgZG9uJ3Qga25vdyBvZiBhIGZhc3Qgd2F5IHRvIHRlbGwu
Ci0gICAgICAgIHN0YXRlLnRyYWNlKCJmYWlsZWQgdG8gY29tcGlsZTogJXIiICUgKGZuLCkpCi0g
ICAgICAgIHJldHVybiBOb25lLCBOb25lCi0gICAgcmV0dXJuIHN0YXQsIGNvCi0KLQotZGVmIF9t
YWtlX3Jld3JpdHRlbl9weWMoc3RhdGUsIHNvdXJjZV9zdGF0LCBweWMsIGNvKToKLSAgICAiIiJU
cnkgdG8gZHVtcCByZXdyaXR0ZW4gY29kZSB0byAqcHljKi4iIiIKLSAgICBpZiBzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgid2luIik6Ci0gICAgICAgICMgV2luZG93cyBncmFudHMgZXhjbHVzaXZl
IGFjY2VzcyB0byBvcGVuIGZpbGVzIGFuZCBkb2Vzbid0IGhhdmUgYXRvbWljCi0gICAgICAgICMg
cmVuYW1lLCBzbyBqdXN0IHdyaXRlIGludG8gdGhlIGZpbmFsIGZpbGUuCi0gICAgICAgIF93cml0
ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHljKQotICAgIGVsc2U6Ci0gICAgICAgICMg
V2hlbiBub3Qgb24gd2luZG93cywgYXNzdW1lIHJlbmFtZSBpcyBhdG9taWMuIER1bXAgdGhlIGNv
ZGUgb2JqZWN0Ci0gICAgICAgICMgaW50byBhIGZpbGUgc3BlY2lmaWMgdG8gdGhpcyBwcm9jZXNz
IGFuZCBhdG9taWNhbGx5IHJlcGxhY2UgaXQuCi0gICAgICAgIHByb2NfcHljID0gcHljICsgIi4i
ICsgc3RyKG9zLmdldHBpZCgpKQotICAgICAgICBpZiBfd3JpdGVfcHljKHN0YXRlLCBjbywgc291
cmNlX3N0YXQsIHByb2NfcHljKToKLSAgICAgICAgICAgIG9zLnJlbmFtZShwcm9jX3B5YywgcHlj
KQotCi0KLWRlZiBfcmVhZF9weWMoc291cmNlLCBweWMsIHRyYWNlPWxhbWJkYSB4OiBOb25lKToK
LSAgICAiIiJQb3NzaWJseSByZWFkIGEgcHl0ZXN0IHB5YyBjb250YWluaW5nIHJld3JpdHRlbiBj
b2RlLgotCi0gICAgUmV0dXJuIHJld3JpdHRlbiBjb2RlIGlmIHN1Y2Nlc3NmdWwgb3IgTm9uZSBp
ZiBub3QuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICBmcCA9IG9wZW4ocHljLCAicmIiKQot
ICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICByZXR1cm4gTm9uZQotICAgIHdpdGggZnA6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIG10aW1lID0gaW50KHNvdXJjZS5tdGltZSgpKQotICAg
ICAgICAgICAgc2l6ZSA9IHNvdXJjZS5zaXplKCkKLSAgICAgICAgICAgIGRhdGEgPSBmcC5yZWFk
KDEyKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgotICAgICAgICAgICAg
dHJhY2UoJ19yZWFkX3B5Yyglcyk6IEVudmlyb25tZW50RXJyb3IgJXMnICUgKHNvdXJjZSwgZSkp
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAjIENoZWNrIGZvciBpbnZhbGlkIG9y
IG91dCBvZiBkYXRlIHB5YyBmaWxlLgotICAgICAgICBpZiAobGVuKGRhdGEpICE9IDEyIG9yIGRh
dGFbOjRdICE9IGltcC5nZXRfbWFnaWMoKSBvcgotICAgICAgICAgICAgICAgIHN0cnVjdC51bnBh
Y2soIjxsbCIsIGRhdGFbNDpdKSAhPSAobXRpbWUsIHNpemUpKToKLSAgICAgICAgICAgIHRyYWNl
KCdfcmVhZF9weWMoJXMpOiBpbnZhbGlkIG9yIG91dCBvZiBkYXRlIHB5YycgJSBzb3VyY2UpCi0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjbyA9IG1h
cnNoYWwubG9hZChmcCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAg
ICAgdHJhY2UoJ19yZWFkX3B5Yyglcyk6IG1hcnNoYWwubG9hZCBlcnJvciAlcycgJSAoc291cmNl
LCBlKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNl
KGNvLCB0eXBlcy5Db2RlVHlwZSk6Ci0gICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTog
bm90IGEgY29kZSBvYmplY3QnICUgc291cmNlKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICAgICAgcmV0dXJuIGNvCi0KLQotZGVmIHJld3JpdGVfYXNzZXJ0cyhtb2QsIG1vZHVsZV9wYXRo
PU5vbmUsIGNvbmZpZz1Ob25lKToKLSAgICAiIiJSZXdyaXRlIHRoZSBhc3NlcnQgc3RhdGVtZW50
cyBpbiBtb2QuIiIiCi0gICAgQXNzZXJ0aW9uUmV3cml0ZXIobW9kdWxlX3BhdGgsIGNvbmZpZyku
cnVuKG1vZCkKLQotCi1kZWYgX3NhZmVyZXByKG9iaik6Ci0gICAgIiIiR2V0IGEgc2FmZSByZXBy
IG9mIGFuIG9iamVjdCBmb3IgYXNzZXJ0aW9uIGVycm9yIG1lc3NhZ2VzLgotCi0gICAgVGhlIGFz
c2VydGlvbiBmb3JtYXR0aW5nICh1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpKSByZXF1aXJlcwot
ICAgIG5ld2xpbmVzIHRvIGJlIGVzY2FwZWQgc2luY2UgdGhleSBhcmUgYSBzcGVjaWFsIGNoYXJh
Y3RlciBmb3IgaXQuCi0gICAgTm9ybWFsbHkgYXNzZXJ0aW9uLnV0aWwuZm9ybWF0X2V4cGxhbmF0
aW9uKCkgZG9lcyB0aGlzIGJ1dCBmb3IgYQotICAgIGN1c3RvbSByZXByIGl0IGlzIHBvc3NpYmxl
IHRvIGNvbnRhaW4gb25lIG9mIHRoZSBzcGVjaWFsIGVzY2FwZQotICAgIHNlcXVlbmNlcywgZXNw
ZWNpYWxseSAnXG57JyBhbmQgJ1xufScgYXJlIGxpa2VseSB0byBiZSBwcmVzZW50IGluCi0gICAg
SlNPTiByZXBycy4KLQotICAgICIiIgotICAgIHJlcHIgPSBweS5pby5zYWZlcmVwcihvYmopCi0g
ICAgaWYgaXNpbnN0YW5jZShyZXByLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgdCA9IHNpeC50
ZXh0X3R5cGUKLSAgICBlbHNlOgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCi0gICAgcmV0
dXJuIHJlcHIucmVwbGFjZSh0KCJcbiIpLCB0KCJcXG4iKSkKLQotCi1mcm9tIF9weXRlc3QuYXNz
ZXJ0aW9uLnV0aWwgaW1wb3J0IGZvcm1hdF9leHBsYW5hdGlvbiBhcyBfZm9ybWF0X2V4cGxhbmF0
aW9uICAjIG5vcWEKLQotCi1kZWYgX2Zvcm1hdF9hc3NlcnRtc2cob2JqKToKLSAgICAiIiJGb3Jt
YXQgdGhlIGN1c3RvbSBhc3NlcnRpb24gbWVzc2FnZSBnaXZlbi4KLQotICAgIEZvciBzdHJpbmdz
IHRoaXMgc2ltcGx5IHJlcGxhY2VzIG5ld2xpbmVzIHdpdGggJ1xuficgc28gdGhhdAotICAgIHV0
aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgd2lsbCBwcmVzZXJ2ZSB0aGVtIGluc3RlYWQgb2YgZXNj
YXBpbmcKLSAgICBuZXdsaW5lcy4gIEZvciBvdGhlciBvYmplY3RzIHB5LmlvLnNhZmVyZXByKCkg
aXMgdXNlZCBmaXJzdC4KLQotICAgICIiIgotICAgICMgcmVwcmxpYiBhcHBlYXJzIHRvIGhhdmUg
YSBidWcgd2hpY2ggbWVhbnMgdGhhdCBpZiBhIHN0cmluZwotICAgICMgY29udGFpbnMgYSBuZXds
aW5lIGl0IGdldHMgZXNjYXBlZCwgaG93ZXZlciBpZiBhbiBvYmplY3QgaGFzIGEKLSAgICAjIC5f
X3JlcHJfXygpIHdoaWNoIGNvbnRhaW5zIG5ld2xpbmVzIGl0IGRvZXMgbm90IGdldCBlc2NhcGVk
LgotICAgICMgSG93ZXZlciBpbiBlaXRoZXIgY2FzZSB3ZSB3YW50IHRvIHByZXNlcnZlIHRoZSBu
ZXdsaW5lLgotICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKSBvciBpc2luc3Rh
bmNlKG9iaiwgc2l4LmJpbmFyeV90eXBlKToKLSAgICAgICAgcyA9IG9iagotICAgICAgICBpc19y
ZXByID0gRmFsc2UKLSAgICBlbHNlOgotICAgICAgICBzID0gcHkuaW8uc2FmZXJlcHIob2JqKQot
ICAgICAgICBpc19yZXByID0gVHJ1ZQotICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlw
ZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9IHNp
eC5iaW5hcnlfdHlwZQotICAgIHMgPSBzLnJlcGxhY2UodCgiXG4iKSwgdCgiXG5+IikpLnJlcGxh
Y2UodCgiJSIpLCB0KCIlJSIpKQotICAgIGlmIGlzX3JlcHI6Ci0gICAgICAgIHMgPSBzLnJlcGxh
Y2UodCgiXFxuIiksIHQoIlxufiIpKQotICAgIHJldHVybiBzCi0KLQotZGVmIF9zaG91bGRfcmVw
cl9nbG9iYWxfbmFtZShvYmopOgotICAgIHJldHVybiBub3QgaGFzYXR0cihvYmosICJfX25hbWVf
XyIpIGFuZCBub3QgY2FsbGFibGUob2JqKQotCi0KLWRlZiBfZm9ybWF0X2Jvb2xvcChleHBsYW5h
dGlvbnMsIGlzX29yKToKLSAgICBleHBsYW5hdGlvbiA9ICIoIiArIChpc19vciBhbmQgIiBvciAi
IG9yICIgYW5kICIpLmpvaW4oZXhwbGFuYXRpb25zKSArICIpIgotICAgIGlmIGlzaW5zdGFuY2Uo
ZXhwbGFuYXRpb24sIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQot
ICAgIGVsc2U6Ci0gICAgICAgIHQgPSBzaXguYmluYXJ5X3R5cGUKLSAgICByZXR1cm4gZXhwbGFu
YXRpb24ucmVwbGFjZSh0KCclJyksIHQoJyUlJykpCi0KLQotZGVmIF9jYWxsX3JlcHJjb21wYXJl
KG9wcywgcmVzdWx0cywgZXhwbHMsIGVhY2hfb2JqKToKLSAgICBmb3IgaSwgcmVzLCBleHBsIGlu
IHppcChyYW5nZShsZW4ob3BzKSksIHJlc3VsdHMsIGV4cGxzKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgZG9uZSA9IG5vdCByZXMKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIGRvbmUgPSBUcnVlCi0gICAgICAgIGlmIGRvbmU6Ci0gICAgICAgICAgICBicmVhawot
ICAgIGlmIHV0aWwuX3JlcHJjb21wYXJlIGlzIG5vdCBOb25lOgotICAgICAgICBjdXN0b20gPSB1
dGlsLl9yZXByY29tcGFyZShvcHNbaV0sIGVhY2hfb2JqW2ldLCBlYWNoX29ialtpICsgMV0pCi0g
ICAgICAgIGlmIGN1c3RvbSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBjdXN0b20K
LSAgICByZXR1cm4gZXhwbAotCi0KLXVuYXJ5X21hcCA9IHsKLSAgICBhc3QuTm90OiAibm90ICVz
IiwKLSAgICBhc3QuSW52ZXJ0OiAifiVzIiwKLSAgICBhc3QuVVN1YjogIi0lcyIsCi0gICAgYXN0
LlVBZGQ6ICIrJXMiCi19Ci0KLWJpbm9wX21hcCA9IHsKLSAgICBhc3QuQml0T3I6ICJ8IiwKLSAg
ICBhc3QuQml0WG9yOiAiXiIsCi0gICAgYXN0LkJpdEFuZDogIiYiLAotICAgIGFzdC5MU2hpZnQ6
ICI8PCIsCi0gICAgYXN0LlJTaGlmdDogIj4+IiwKLSAgICBhc3QuQWRkOiAiKyIsCi0gICAgYXN0
LlN1YjogIi0iLAotICAgIGFzdC5NdWx0OiAiKiIsCi0gICAgYXN0LkRpdjogIi8iLAotICAgIGFz
dC5GbG9vckRpdjogIi8vIiwKLSAgICBhc3QuTW9kOiAiJSUiLCAgIyBlc2NhcGVkIGZvciBzdHJp
bmcgZm9ybWF0dGluZwotICAgIGFzdC5FcTogIj09IiwKLSAgICBhc3QuTm90RXE6ICIhPSIsCi0g
ICAgYXN0Lkx0OiAiPCIsCi0gICAgYXN0Lkx0RTogIjw9IiwKLSAgICBhc3QuR3Q6ICI+IiwKLSAg
ICBhc3QuR3RFOiAiPj0iLAotICAgIGFzdC5Qb3c6ICIqKiIsCi0gICAgYXN0LklzOiAiaXMiLAot
ICAgIGFzdC5Jc05vdDogImlzIG5vdCIsCi0gICAgYXN0LkluOiAiaW4iLAotICAgIGFzdC5Ob3RJ
bjogIm5vdCBpbiIKLX0KLSMgUHl0aG9uIDMuNSsgY29tcGF0aWJpbGl0eQotdHJ5OgotICAgIGJp
bm9wX21hcFthc3QuTWF0TXVsdF0gPSAiQCIKLWV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICBw
YXNzCi0KLSMgUHl0aG9uIDMuNCsgY29tcGF0aWJpbGl0eQotaWYgaGFzYXR0cihhc3QsICJOYW1l
Q29uc3RhbnQiKToKLSAgICBfTmFtZUNvbnN0YW50ID0gYXN0Lk5hbWVDb25zdGFudAotZWxzZToK
LSAgICBkZWYgX05hbWVDb25zdGFudChjKToKLSAgICAgICAgcmV0dXJuIGFzdC5OYW1lKHN0cihj
KSwgYXN0LkxvYWQoKSkKLQotCi1kZWYgc2V0X2xvY2F0aW9uKG5vZGUsIGxpbmVubywgY29sX29m
ZnNldCk6Ci0gICAgIiIiU2V0IG5vZGUgbG9jYXRpb24gaW5mb3JtYXRpb24gcmVjdXJzaXZlbHku
IiIiCi0gICAgZGVmIF9maXgobm9kZSwgbGluZW5vLCBjb2xfb2Zmc2V0KToKLSAgICAgICAgaWYg
ImxpbmVubyIgaW4gbm9kZS5fYXR0cmlidXRlczoKLSAgICAgICAgICAgIG5vZGUubGluZW5vID0g
bGluZW5vCi0gICAgICAgIGlmICJjb2xfb2Zmc2V0IiBpbiBub2RlLl9hdHRyaWJ1dGVzOgotICAg
ICAgICAgICAgbm9kZS5jb2xfb2Zmc2V0ID0gY29sX29mZnNldAotICAgICAgICBmb3IgY2hpbGQg
aW4gYXN0Lml0ZXJfY2hpbGRfbm9kZXMobm9kZSk6Ci0gICAgICAgICAgICBfZml4KGNoaWxkLCBs
aW5lbm8sIGNvbF9vZmZzZXQpCi0gICAgX2ZpeChub2RlLCBsaW5lbm8sIGNvbF9vZmZzZXQpCi0g
ICAgcmV0dXJuIG5vZGUKLQotCi1jbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0
b3IpOgotICAgICIiIkFzc2VydGlvbiByZXdyaXRpbmcgaW1wbGVtZW50YXRpb24uCi0KLSAgICBU
aGUgbWFpbiBlbnRyeXBvaW50IGlzIHRvIGNhbGwgLnJ1bigpIHdpdGggYW4gYXN0Lk1vZHVsZSBp
bnN0YW5jZSwKLSAgICB0aGlzIHdpbGwgdGhlbiBmaW5kIGFsbCB0aGUgYXNzZXJ0IHN0YXRlbWVu
dHMgYW5kIHJld3JpdGUgdGhlbSB0bwotICAgIHByb3ZpZGUgaW50ZXJtZWRpYXRlIHZhbHVlcyBh
bmQgYSBkZXRhaWxlZCBhc3NlcnRpb24gZXJyb3IuICBTZWUKLSAgICBodHRwOi8vcHliaXRlcy5i
bG9nc3BvdC5iZS8yMDExLzA3L2JlaGluZC1zY2VuZXMtb2YtcHl0ZXN0cy1uZXctYXNzZXJ0aW9u
Lmh0bWwKLSAgICBmb3IgYW4gb3ZlcnZpZXcgb2YgaG93IHRoaXMgd29ya3MuCi0KLSAgICBUaGUg
ZW50cnkgcG9pbnQgaGVyZSBpcyAucnVuKCkgd2hpY2ggd2lsbCBpdGVyYXRlIG92ZXIgYWxsIHRo
ZQotICAgIHN0YXRlbWVudHMgaW4gYW4gYXN0Lk1vZHVsZSBhbmQgZm9yIGVhY2ggYXN0LkFzc2Vy
dCBzdGF0ZW1lbnQgaXQKLSAgICBmaW5kcyBjYWxsIC52aXNpdCgpIHdpdGggaXQuICBUaGVuIC52
aXNpdF9Bc3NlcnQoKSB0YWtlcyBvdmVyIGFuZAotICAgIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVh
dGluZyBuZXcgYXN0IHN0YXRlbWVudHMgdG8gcmVwbGFjZSB0aGUKLSAgICBvcmlnaW5hbCBhc3Nl
cnQgc3RhdGVtZW50OiBpdCByZXdyaXRlcyB0aGUgdGVzdCBvZiBhbiBhc3NlcnRpb24KLSAgICB0
byBwcm92aWRlIGludGVybWVkaWF0ZSB2YWx1ZXMgYW5kIHJlcGxhY2UgaXQgd2l0aCBhbiBpZiBz
dGF0ZW1lbnQKLSAgICB3aGljaCByYWlzZXMgYW4gYXNzZXJ0aW9uIGVycm9yIHdpdGggYSBkZXRh
aWxlZCBleHBsYW5hdGlvbiBpbgotICAgIGNhc2UgdGhlIGV4cHJlc3Npb24gaXMgZmFsc2UuCi0K
LSAgICBGb3IgdGhpcyAudmlzaXRfQXNzZXJ0KCkgdXNlcyB0aGUgdmlzaXRvciBwYXR0ZXJuIHRv
IHZpc2l0IGFsbCB0aGUKLSAgICBBU1Qgbm9kZXMgb2YgdGhlIGFzdC5Bc3NlcnQudGVzdCBmaWVs
ZCwgZWFjaCB2aXNpdCBjYWxsIHJldHVybmluZwotICAgIGFuIEFTVCBub2RlIGFuZCB0aGUgY29y
cmVzcG9uZGluZyBleHBsYW5hdGlvbiBzdHJpbmcuICBEdXJpbmcgdGhpcwotICAgIHN0YXRlIGlz
IGtlcHQgaW4gc2V2ZXJhbCBpbnN0YW5jZSBhdHRyaWJ1dGVzOgotCi0gICAgOnN0YXRlbWVudHM6
IEFsbCB0aGUgQVNUIHN0YXRlbWVudHMgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBhc3NlcnQKLSAg
ICAgICBzdGF0ZW1lbnQuCi0KLSAgICA6dmFyaWFibGVzOiBUaGlzIGlzIHBvcHVsYXRlZCBieSAu
dmFyaWFibGUoKSB3aXRoIGVhY2ggdmFyaWFibGUKLSAgICAgICB1c2VkIGJ5IHRoZSBzdGF0ZW1l
bnRzIHNvIHRoYXQgdGhleSBjYW4gYWxsIGJlIHNldCB0byBOb25lIGF0Ci0gICAgICAgdGhlIGVu
ZCBvZiB0aGUgc3RhdGVtZW50cy4KLQotICAgIDp2YXJpYWJsZV9jb3VudGVyOiBDb3VudGVyIHRv
IGNyZWF0ZSBuZXcgdW5pcXVlIHZhcmlhYmxlcyBuZWVkZWQKLSAgICAgICBieSBzdGF0ZW1lbnRz
LiAgVmFyaWFibGVzIGFyZSBjcmVhdGVkIHVzaW5nIC52YXJpYWJsZSgpIGFuZAotICAgICAgIGhh
dmUgdGhlIGZvcm0gb2YgIkBweV9hc3NlcnQwIi4KLQotICAgIDpvbl9mYWlsdXJlOiBUaGUgQVNU
IHN0YXRlbWVudHMgd2hpY2ggd2lsbCBiZSBleGVjdXRlZCBpZiB0aGUKLSAgICAgICBhc3NlcnRp
b24gdGVzdCBmYWlscy4gIFRoaXMgaXMgdGhlIGNvZGUgd2hpY2ggd2lsbCBjb25zdHJ1Y3QKLSAg
ICAgICB0aGUgZmFpbHVyZSBtZXNzYWdlIGFuZCByYWlzZXMgdGhlIEFzc2VydGlvbkVycm9yLgot
Ci0gICAgOmV4cGxhbmF0aW9uX3NwZWNpZmllcnM6IEEgZGljdCBmaWxsZWQgYnkgLmV4cGxhbmF0
aW9uX3BhcmFtKCkKLSAgICAgICB3aXRoICUtZm9ybWF0dGluZyBwbGFjZWhvbGRlcnMgYW5kIHRo
ZWlyIGNvcnJlc3BvbmRpbmcKLSAgICAgICBleHByZXNzaW9ucyB0byB1c2UgaW4gdGhlIGJ1aWxk
aW5nIG9mIGFuIGFzc2VydGlvbiBtZXNzYWdlLgotICAgICAgIFRoaXMgaXMgdXNlZCBieSAucG9w
X2Zvcm1hdF9jb250ZXh0KCkgdG8gYnVpbGQgYSBtZXNzYWdlLgotCi0gICAgOnN0YWNrOiBBIHN0
YWNrIG9mIHRoZSBleHBsYW5hdGlvbl9zcGVjaWZpZXJzIGRpY3RzIG1haW50YWluZWQgYnkKLSAg
ICAgICAucHVzaF9mb3JtYXRfY29udGV4dCgpIGFuZCAucG9wX2Zvcm1hdF9jb250ZXh0KCkgd2hp
Y2ggYWxsb3dzCi0gICAgICAgdG8gYnVpbGQgYW5vdGhlciAlLWZvcm1hdHRlZCBzdHJpbmcgd2hp
bGUgYWxyZWFkeSBidWlsZGluZyBvbmUuCi0KLSAgICBUaGlzIHN0YXRlIGlzIHJlc2V0IG9uIGV2
ZXJ5IG5ldyBhc3NlcnQgc3RhdGVtZW50IHZpc2l0ZWQgYW5kIHVzZWQKLSAgICBieSB0aGUgb3Ro
ZXIgdmlzaXRvcnMuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2R1bGVf
cGF0aCwgY29uZmlnKToKLSAgICAgICAgc3VwZXIoQXNzZXJ0aW9uUmV3cml0ZXIsIHNlbGYpLl9f
aW5pdF9fKCkKLSAgICAgICAgc2VsZi5tb2R1bGVfcGF0aCA9IG1vZHVsZV9wYXRoCi0gICAgICAg
IHNlbGYuY29uZmlnID0gY29uZmlnCi0KLSAgICBkZWYgcnVuKHNlbGYsIG1vZCk6Ci0gICAgICAg
ICIiIkZpbmQgYWxsIGFzc2VydCBzdGF0ZW1lbnRzIGluICptb2QqIGFuZCByZXdyaXRlIHRoZW0u
IiIiCi0gICAgICAgIGlmIG5vdCBtb2QuYm9keToKLSAgICAgICAgICAgICMgTm90aGluZyB0byBk
by4KLSAgICAgICAgICAgIHJldHVybgotICAgICAgICAjIEluc2VydCBzb21lIHNwZWNpYWwgaW1w
b3J0cyBhdCB0aGUgdG9wIG9mIHRoZSBtb2R1bGUgYnV0IGFmdGVyIGFueQotICAgICAgICAjIGRv
Y3N0cmluZ3MgYW5kIF9fZnV0dXJlX18gaW1wb3J0cy4KLSAgICAgICAgYWxpYXNlcyA9IFthc3Qu
YWxpYXMocHkuYnVpbHRpbi5idWlsdGlucy5fX25hbWVfXywgIkBweV9idWlsdGlucyIpLAotICAg
ICAgICAgICAgICAgICAgIGFzdC5hbGlhcygiX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSIsICJA
cHl0ZXN0X2FyIildCi0gICAgICAgIGRvYyA9IGdldGF0dHIobW9kLCAiZG9jc3RyaW5nIiwgTm9u
ZSkKLSAgICAgICAgZXhwZWN0X2RvY3N0cmluZyA9IGRvYyBpcyBOb25lCi0gICAgICAgIGlmIGRv
YyBpcyBub3QgTm9uZSBhbmQgc2VsZi5pc19yZXdyaXRlX2Rpc2FibGVkKGRvYyk6Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgcG9zID0gMAotICAgICAgICBsaW5lbm8gPSAxCi0gICAgICAg
IGZvciBpdGVtIGluIG1vZC5ib2R5OgotICAgICAgICAgICAgaWYgKGV4cGVjdF9kb2NzdHJpbmcg
YW5kIGlzaW5zdGFuY2UoaXRlbSwgYXN0LkV4cHIpIGFuZAotICAgICAgICAgICAgICAgICAgICBp
c2luc3RhbmNlKGl0ZW0udmFsdWUsIGFzdC5TdHIpKToKLSAgICAgICAgICAgICAgICBkb2MgPSBp
dGVtLnZhbHVlLnMKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmlzX3Jld3JpdGVfZGlzYWJsZWQo
ZG9jKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgICAgZXhwZWN0
X2RvY3N0cmluZyA9IEZhbHNlCi0gICAgICAgICAgICBlbGlmIChub3QgaXNpbnN0YW5jZShpdGVt
LCBhc3QuSW1wb3J0RnJvbSkgb3IgaXRlbS5sZXZlbCA+IDAgb3IKLSAgICAgICAgICAgICAgICAg
IGl0ZW0ubW9kdWxlICE9ICJfX2Z1dHVyZV9fIik6Ci0gICAgICAgICAgICAgICAgbGluZW5vID0g
aXRlbS5saW5lbm8KLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcG9zICs9IDEK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpbmVubyA9IGl0ZW0ubGluZW5vCi0gICAgICAg
IGltcG9ydHMgPSBbYXN0LkltcG9ydChbYWxpYXNdLCBsaW5lbm89bGluZW5vLCBjb2xfb2Zmc2V0
PTApCi0gICAgICAgICAgICAgICAgICAgZm9yIGFsaWFzIGluIGFsaWFzZXNdCi0gICAgICAgIG1v
ZC5ib2R5W3Bvczpwb3NdID0gaW1wb3J0cwotICAgICAgICAjIENvbGxlY3QgYXNzZXJ0cy4KLSAg
ICAgICAgbm9kZXMgPSBbbW9kXQotICAgICAgICB3aGlsZSBub2RlczoKLSAgICAgICAgICAgIG5v
ZGUgPSBub2Rlcy5wb3AoKQotICAgICAgICAgICAgZm9yIG5hbWUsIGZpZWxkIGluIGFzdC5pdGVy
X2ZpZWxkcyhub2RlKToKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZpZWxkLCBsaXN0
KToKLSAgICAgICAgICAgICAgICAgICAgbmV3ID0gW10KLSAgICAgICAgICAgICAgICAgICAgZm9y
IGksIGNoaWxkIGluIGVudW1lcmF0ZShmaWVsZCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGNoaWxkLCBhc3QuQXNzZXJ0KToKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjIFRyYW5zZm9ybSBhc3NlcnQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
LmV4dGVuZChzZWxmLnZpc2l0KGNoaWxkKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3LmFwcGVuZChjaGlsZCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNoaWxkLCBhc3QuQVNUKToKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXMuYXBwZW5kKGNoaWxkKQotICAgICAgICAg
ICAgICAgICAgICBzZXRhdHRyKG5vZGUsIG5hbWUsIG5ldykKLSAgICAgICAgICAgICAgICBlbGlm
IChpc2luc3RhbmNlKGZpZWxkLCBhc3QuQVNUKSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAj
IERvbid0IHJlY3Vyc2UgaW50byBleHByZXNzaW9ucyBhcyB0aGV5IGNhbid0IGNvbnRhaW4KLSAg
ICAgICAgICAgICAgICAgICAgICAjIGFzc2VydHMuCi0gICAgICAgICAgICAgICAgICAgICAgbm90
IGlzaW5zdGFuY2UoZmllbGQsIGFzdC5leHByKSk6Ci0gICAgICAgICAgICAgICAgICAgIG5vZGVz
LmFwcGVuZChmaWVsZCkKLQotICAgIGRlZiBpc19yZXdyaXRlX2Rpc2FibGVkKHNlbGYsIGRvY3N0
cmluZyk6Ci0gICAgICAgIHJldHVybiAiUFlURVNUX0RPTlRfUkVXUklURSIgaW4gZG9jc3RyaW5n
Ci0KLSAgICBkZWYgdmFyaWFibGUoc2VsZik6Ci0gICAgICAgICIiIkdldCBhIG5ldyB2YXJpYWJs
ZS4iIiIKLSAgICAgICAgIyBVc2UgYSBjaGFyYWN0ZXIgaW52YWxpZCBpbiBweXRob24gaWRlbnRp
ZmllcnMgdG8gYXZvaWQgY2xhc2hpbmcuCi0gICAgICAgIG5hbWUgPSAiQHB5X2Fzc2VydCIgKyBz
dHIobmV4dChzZWxmLnZhcmlhYmxlX2NvdW50ZXIpKQotICAgICAgICBzZWxmLnZhcmlhYmxlcy5h
cHBlbmQobmFtZSkKLSAgICAgICAgcmV0dXJuIG5hbWUKLQotICAgIGRlZiBhc3NpZ24oc2VsZiwg
ZXhwcik6Ci0gICAgICAgICIiIkdpdmUgKmV4cHIqIGEgbmFtZS4iIiIKLSAgICAgICAgbmFtZSA9
IHNlbGYudmFyaWFibGUoKQotICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5Bc3Np
Z24oW2FzdC5OYW1lKG5hbWUsIGFzdC5TdG9yZSgpKV0sIGV4cHIpKQotICAgICAgICByZXR1cm4g
YXN0Lk5hbWUobmFtZSwgYXN0LkxvYWQoKSkKLQotICAgIGRlZiBkaXNwbGF5KHNlbGYsIGV4cHIp
OgotICAgICAgICAiIiJDYWxsIHB5LmlvLnNhZmVyZXByIG9uIHRoZSBleHByZXNzaW9uLiIiIgot
ICAgICAgICByZXR1cm4gc2VsZi5oZWxwZXIoInNhZmVyZXByIiwgZXhwcikKLQotICAgIGRlZiBo
ZWxwZXIoc2VsZiwgbmFtZSwgKmFyZ3MpOgotICAgICAgICAiIiJDYWxsIGEgaGVscGVyIGluIHRo
aXMgbW9kdWxlLiIiIgotICAgICAgICBweV9uYW1lID0gYXN0Lk5hbWUoIkBweXRlc3RfYXIiLCBh
c3QuTG9hZCgpKQotICAgICAgICBhdHRyID0gYXN0LkF0dHJpYnV0ZShweV9uYW1lLCAiXyIgKyBu
YW1lLCBhc3QuTG9hZCgpKQotICAgICAgICByZXR1cm4gYXN0X0NhbGwoYXR0ciwgbGlzdChhcmdz
KSwgW10pCi0KLSAgICBkZWYgYnVpbHRpbihzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiUmV0dXJu
IHRoZSBidWlsdGluIGNhbGxlZCAqbmFtZSouIiIiCi0gICAgICAgIGJ1aWx0aW5fbmFtZSA9IGFz
dC5OYW1lKCJAcHlfYnVpbHRpbnMiLCBhc3QuTG9hZCgpKQotICAgICAgICByZXR1cm4gYXN0LkF0
dHJpYnV0ZShidWlsdGluX25hbWUsIG5hbWUsIGFzdC5Mb2FkKCkpCi0KLSAgICBkZWYgZXhwbGFu
YXRpb25fcGFyYW0oc2VsZiwgZXhwcik6Ci0gICAgICAgICIiIlJldHVybiBhIG5ldyBuYW1lZCAl
LWZvcm1hdHRpbmcgcGxhY2Vob2xkZXIgZm9yIGV4cHIuCi0KLSAgICAgICAgVGhpcyBjcmVhdGVz
IGEgJS1mb3JtYXR0aW5nIHBsYWNlaG9sZGVyIGZvciBleHByIGluIHRoZQotICAgICAgICBjdXJy
ZW50IGZvcm1hdHRpbmcgY29udGV4dCwgZS5nLiBgYCUocHkwKXNgYC4gIFRoZSBwbGFjZWhvbGRl
cgotICAgICAgICBhbmQgZXhwciBhcmUgcGxhY2VkIGluIHRoZSBjdXJyZW50IGZvcm1hdCBjb250
ZXh0IHNvIHRoYXQgaXQKLSAgICAgICAgY2FuIGJlIHVzZWQgb24gdGhlIG5leHQgY2FsbCB0byAu
cG9wX2Zvcm1hdF9jb250ZXh0KCkuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHNwZWNpZmllciA9
ICJweSIgKyBzdHIobmV4dChzZWxmLnZhcmlhYmxlX2NvdW50ZXIpKQotICAgICAgICBzZWxmLmV4
cGxhbmF0aW9uX3NwZWNpZmllcnNbc3BlY2lmaWVyXSA9IGV4cHIKLSAgICAgICAgcmV0dXJuICIl
KCIgKyBzcGVjaWZpZXIgKyAiKXMiCi0KLSAgICBkZWYgcHVzaF9mb3JtYXRfY29udGV4dChzZWxm
KToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IGZvcm1hdHRpbmcgY29udGV4dC4KLQotICAgICAg
ICBUaGUgZm9ybWF0IGNvbnRleHQgaXMgdXNlZCBmb3Igd2hlbiBhbiBleHBsYW5hdGlvbiB3YW50
cyB0bwotICAgICAgICBoYXZlIGEgdmFyaWFibGUgdmFsdWUgZm9ybWF0dGVkIGluIHRoZSBhc3Nl
cnRpb24gbWVzc2FnZS4gIEluCi0gICAgICAgIHRoaXMgY2FzZSB0aGUgdmFsdWUgcmVxdWlyZWQg
Y2FuIGJlIGFkZGVkIHVzaW5nCi0gICAgICAgIC5leHBsYW5hdGlvbl9wYXJhbSgpLiAgRmluYWxs
eSAucG9wX2Zvcm1hdF9jb250ZXh0KCkgaXMgdXNlZAotICAgICAgICB0byBmb3JtYXQgYSBzdHJp
bmcgb2YgJS1mb3JtYXR0ZWQgdmFsdWVzIGFzIGFkZGVkIGJ5Ci0gICAgICAgIC5leHBsYW5hdGlv
bl9wYXJhbSgpLgotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmV4cGxhbmF0aW9uX3NwZWNp
ZmllcnMgPSB7fQotICAgICAgICBzZWxmLnN0YWNrLmFwcGVuZChzZWxmLmV4cGxhbmF0aW9uX3Nw
ZWNpZmllcnMpCi0KLSAgICBkZWYgcG9wX2Zvcm1hdF9jb250ZXh0KHNlbGYsIGV4cGxfZXhwcik6
Ci0gICAgICAgICIiIkZvcm1hdCB0aGUgJS1mb3JtYXR0ZWQgc3RyaW5nIHdpdGggY3VycmVudCBm
b3JtYXQgY29udGV4dC4KLQotICAgICAgICBUaGUgZXhwbF9leHByIHNob3VsZCBiZSBhbiBhc3Qu
U3RyIGluc3RhbmNlIGNvbnN0cnVjdGVkIGZyb20KLSAgICAgICAgdGhlICUtcGxhY2Vob2xkZXJz
IGNyZWF0ZWQgYnkgLmV4cGxhbmF0aW9uX3BhcmFtKCkuICBUaGlzIHdpbGwKLSAgICAgICAgYWRk
IHRoZSByZXF1aXJlZCBjb2RlIHRvIGZvcm1hdCBzYWlkIHN0cmluZyB0byAub25fZmFpbHVyZSBh
bmQKLSAgICAgICAgcmV0dXJuIHRoZSBhc3QuTmFtZSBpbnN0YW5jZSBvZiB0aGUgZm9ybWF0dGVk
IHN0cmluZy4KLQotICAgICAgICAiIiIKLSAgICAgICAgY3VycmVudCA9IHNlbGYuc3RhY2sucG9w
KCkKLSAgICAgICAgaWYgc2VsZi5zdGFjazoKLSAgICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb25f
c3BlY2lmaWVycyA9IHNlbGYuc3RhY2tbLTFdCi0gICAgICAgIGtleXMgPSBbYXN0LlN0cihrZXkp
IGZvciBrZXkgaW4gY3VycmVudC5rZXlzKCldCi0gICAgICAgIGZvcm1hdF9kaWN0ID0gYXN0LkRp
Y3Qoa2V5cywgbGlzdChjdXJyZW50LnZhbHVlcygpKSkKLSAgICAgICAgZm9ybSA9IGFzdC5CaW5P
cChleHBsX2V4cHIsIGFzdC5Nb2QoKSwgZm9ybWF0X2RpY3QpCi0gICAgICAgIG5hbWUgPSAiQHB5
X2Zvcm1hdCIgKyBzdHIobmV4dChzZWxmLnZhcmlhYmxlX2NvdW50ZXIpKQotICAgICAgICBzZWxm
Lm9uX2ZhaWx1cmUuYXBwZW5kKGFzdC5Bc3NpZ24oW2FzdC5OYW1lKG5hbWUsIGFzdC5TdG9yZSgp
KV0sIGZvcm0pKQotICAgICAgICByZXR1cm4gYXN0Lk5hbWUobmFtZSwgYXN0LkxvYWQoKSkKLQot
ICAgIGRlZiBnZW5lcmljX3Zpc2l0KHNlbGYsIG5vZGUpOgotICAgICAgICAiIiJIYW5kbGUgZXhw
cmVzc2lvbnMgd2UgZG9uJ3QgaGF2ZSBjdXN0b20gY29kZSBmb3IuIiIiCi0gICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKG5vZGUsIGFzdC5leHByKQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihu
b2RlKQotICAgICAgICByZXR1cm4gcmVzLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYuZGlz
cGxheShyZXMpKQotCi0gICAgZGVmIHZpc2l0X0Fzc2VydChzZWxmLCBhc3NlcnRfKToKLSAgICAg
ICAgIiIiUmV0dXJuIHRoZSBBU1Qgc3RhdGVtZW50cyB0byByZXBsYWNlIHRoZSBhc3QuQXNzZXJ0
IGluc3RhbmNlLgotCi0gICAgICAgIFRoaXMgcmV3cml0ZXMgdGhlIHRlc3Qgb2YgYW4gYXNzZXJ0
aW9uIHRvIHByb3ZpZGUKLSAgICAgICAgaW50ZXJtZWRpYXRlIHZhbHVlcyBhbmQgcmVwbGFjZSBp
dCB3aXRoIGFuIGlmIHN0YXRlbWVudCB3aGljaAotICAgICAgICByYWlzZXMgYW4gYXNzZXJ0aW9u
IGVycm9yIHdpdGggYSBkZXRhaWxlZCBleHBsYW5hdGlvbiBpbiBjYXNlCi0gICAgICAgIHRoZSBl
eHByZXNzaW9uIGlzIGZhbHNlLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBpc2luc3RhbmNl
KGFzc2VydF8udGVzdCwgYXN0LlR1cGxlKSBhbmQgc2VsZi5jb25maWcgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBmc2xvY2F0aW9uID0gKHNlbGYubW9kdWxlX3BhdGgsIGFzc2VydF8ubGluZW5v
KQotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybignUjEnLCAnYXNzZXJ0aW9uIGlzIGFsd2F5
cyB0cnVlLCBwZXJoYXBzICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZSBw
YXJlbnRoZXNlcz8nLCBmc2xvY2F0aW9uPWZzbG9jYXRpb24pCi0gICAgICAgIHNlbGYuc3RhdGVt
ZW50cyA9IFtdCi0gICAgICAgIHNlbGYudmFyaWFibGVzID0gW10KLSAgICAgICAgc2VsZi52YXJp
YWJsZV9jb3VudGVyID0gaXRlcnRvb2xzLmNvdW50KCkKLSAgICAgICAgc2VsZi5zdGFjayA9IFtd
Ci0gICAgICAgIHNlbGYub25fZmFpbHVyZSA9IFtdCi0gICAgICAgIHNlbGYucHVzaF9mb3JtYXRf
Y29udGV4dCgpCi0gICAgICAgICMgUmV3cml0ZSBhc3NlcnQgaW50byBhIGJ1bmNoIG9mIHN0YXRl
bWVudHMuCi0gICAgICAgIHRvcF9jb25kaXRpb24sIGV4cGxhbmF0aW9uID0gc2VsZi52aXNpdChh
c3NlcnRfLnRlc3QpCi0gICAgICAgICMgQ3JlYXRlIGZhaWx1cmUgbWVzc2FnZS4KLSAgICAgICAg
Ym9keSA9IHNlbGYub25fZmFpbHVyZQotICAgICAgICBuZWdhdGlvbiA9IGFzdC5VbmFyeU9wKGFz
dC5Ob3QoKSwgdG9wX2NvbmRpdGlvbikKLSAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChh
c3QuSWYobmVnYXRpb24sIGJvZHksIFtdKSkKLSAgICAgICAgaWYgYXNzZXJ0Xy5tc2c6Ci0gICAg
ICAgICAgICBhc3NlcnRtc2cgPSBzZWxmLmhlbHBlcignZm9ybWF0X2Fzc2VydG1zZycsIGFzc2Vy
dF8ubXNnKQotICAgICAgICAgICAgZXhwbGFuYXRpb24gPSAiXG4+YXNzZXJ0ICIgKyBleHBsYW5h
dGlvbgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0bXNnID0gYXN0LlN0cigiIikK
LSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gImFzc2VydCAiICsgZXhwbGFuYXRpb24KLSAgICAg
ICAgdGVtcGxhdGUgPSBhc3QuQmluT3AoYXNzZXJ0bXNnLCBhc3QuQWRkKCksIGFzdC5TdHIoZXhw
bGFuYXRpb24pKQotICAgICAgICBtc2cgPSBzZWxmLnBvcF9mb3JtYXRfY29udGV4dCh0ZW1wbGF0
ZSkKLSAgICAgICAgZm10ID0gc2VsZi5oZWxwZXIoImZvcm1hdF9leHBsYW5hdGlvbiIsIG1zZykK
LSAgICAgICAgZXJyX25hbWUgPSBhc3QuTmFtZSgiQXNzZXJ0aW9uRXJyb3IiLCBhc3QuTG9hZCgp
KQotICAgICAgICBleGMgPSBhc3RfQ2FsbChlcnJfbmFtZSwgW2ZtdF0sIFtdKQotICAgICAgICBp
ZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6Ci0gICAgICAgICAgICByYWlzZV8gPSBhc3QuUmFp
c2UoZXhjLCBOb25lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2VfID0gYXN0LlJh
aXNlKGV4YywgTm9uZSwgTm9uZSkKLSAgICAgICAgYm9keS5hcHBlbmQocmFpc2VfKQotICAgICAg
ICAjIENsZWFyIHRlbXBvcmFyeSB2YXJpYWJsZXMgYnkgc2V0dGluZyB0aGVtIHRvIE5vbmUuCi0g
ICAgICAgIGlmIHNlbGYudmFyaWFibGVzOgotICAgICAgICAgICAgdmFyaWFibGVzID0gW2FzdC5O
YW1lKG5hbWUsIGFzdC5TdG9yZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1l
IGluIHNlbGYudmFyaWFibGVzXQotICAgICAgICAgICAgY2xlYXIgPSBhc3QuQXNzaWduKHZhcmlh
YmxlcywgX05hbWVDb25zdGFudChOb25lKSkKLSAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5h
cHBlbmQoY2xlYXIpCi0gICAgICAgICMgRml4IGxpbmUgbnVtYmVycy4KLSAgICAgICAgZm9yIHN0
bXQgaW4gc2VsZi5zdGF0ZW1lbnRzOgotICAgICAgICAgICAgc2V0X2xvY2F0aW9uKHN0bXQsIGFz
c2VydF8ubGluZW5vLCBhc3NlcnRfLmNvbF9vZmZzZXQpCi0gICAgICAgIHJldHVybiBzZWxmLnN0
YXRlbWVudHMKLQotICAgIGRlZiB2aXNpdF9OYW1lKHNlbGYsIG5hbWUpOgotICAgICAgICAjIERp
c3BsYXkgdGhlIHJlcHIgb2YgdGhlIG5hbWUgaWYgaXQncyBhIGxvY2FsIHZhcmlhYmxlIG9yCi0g
ICAgICAgICMgX3Nob3VsZF9yZXByX2dsb2JhbF9uYW1lKCkgdGhpbmtzIGl0J3MgYWNjZXB0YWJs
ZS4KLSAgICAgICAgbG9jcyA9IGFzdF9DYWxsKHNlbGYuYnVpbHRpbigibG9jYWxzIiksIFtdLCBb
XSkKLSAgICAgICAgaW5sb2NzID0gYXN0LkNvbXBhcmUoYXN0LlN0cihuYW1lLmlkKSwgW2FzdC5J
bigpXSwgW2xvY3NdKQotICAgICAgICBkb3JlcHIgPSBzZWxmLmhlbHBlcigic2hvdWxkX3JlcHJf
Z2xvYmFsX25hbWUiLCBuYW1lKQotICAgICAgICB0ZXN0ID0gYXN0LkJvb2xPcChhc3QuT3IoKSwg
W2lubG9jcywgZG9yZXByXSkKLSAgICAgICAgZXhwciA9IGFzdC5JZkV4cCh0ZXN0LCBzZWxmLmRp
c3BsYXkobmFtZSksIGFzdC5TdHIobmFtZS5pZCkpCi0gICAgICAgIHJldHVybiBuYW1lLCBzZWxm
LmV4cGxhbmF0aW9uX3BhcmFtKGV4cHIpCi0KLSAgICBkZWYgdmlzaXRfQm9vbE9wKHNlbGYsIGJv
b2xvcCk6Ci0gICAgICAgIHJlc192YXIgPSBzZWxmLnZhcmlhYmxlKCkKLSAgICAgICAgZXhwbF9s
aXN0ID0gc2VsZi5hc3NpZ24oYXN0Lkxpc3QoW10sIGFzdC5Mb2FkKCkpKQotICAgICAgICBhcHAg
PSBhc3QuQXR0cmlidXRlKGV4cGxfbGlzdCwgImFwcGVuZCIsIGFzdC5Mb2FkKCkpCi0gICAgICAg
IGlzX29yID0gaW50KGlzaW5zdGFuY2UoYm9vbG9wLm9wLCBhc3QuT3IpKQotICAgICAgICBib2R5
ID0gc2F2ZSA9IHNlbGYuc3RhdGVtZW50cwotICAgICAgICBmYWlsX3NhdmUgPSBzZWxmLm9uX2Zh
aWx1cmUKLSAgICAgICAgbGV2ZWxzID0gbGVuKGJvb2xvcC52YWx1ZXMpIC0gMQotICAgICAgICBz
ZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQotICAgICAgICAjIFByb2Nlc3MgZWFjaCBvcGVyYW5k
LCBzaG9ydC1jaXJjdXRpbmcgaWYgbmVlZGVkLgotICAgICAgICBmb3IgaSwgdiBpbiBlbnVtZXJh
dGUoYm9vbG9wLnZhbHVlcyk6Ci0gICAgICAgICAgICBpZiBpOgotICAgICAgICAgICAgICAgIGZh
aWxfaW5uZXIgPSBbXQotICAgICAgICAgICAgICAgICMgY29uZCBpcyBzZXQgaW4gYSBwcmlvciBs
b29wIGl0ZXJhdGlvbiBiZWxvdwotICAgICAgICAgICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBl
bmQoYXN0LklmKGNvbmQsIGZhaWxfaW5uZXIsIFtdKSkgICMgbm9xYQotICAgICAgICAgICAgICAg
IHNlbGYub25fZmFpbHVyZSA9IGZhaWxfaW5uZXIKLSAgICAgICAgICAgIHNlbGYucHVzaF9mb3Jt
YXRfY29udGV4dCgpCi0gICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KHYpCi0gICAg
ICAgICAgICBib2R5LmFwcGVuZChhc3QuQXNzaWduKFthc3QuTmFtZShyZXNfdmFyLCBhc3QuU3Rv
cmUoKSldLCByZXMpKQotICAgICAgICAgICAgZXhwbF9mb3JtYXQgPSBzZWxmLnBvcF9mb3JtYXRf
Y29udGV4dChhc3QuU3RyKGV4cGwpKQotICAgICAgICAgICAgY2FsbCA9IGFzdF9DYWxsKGFwcCwg
W2V4cGxfZm9ybWF0XSwgW10pCi0gICAgICAgICAgICBzZWxmLm9uX2ZhaWx1cmUuYXBwZW5kKGFz
dC5FeHByKGNhbGwpKQotICAgICAgICAgICAgaWYgaSA8IGxldmVsczoKLSAgICAgICAgICAgICAg
ICBjb25kID0gcmVzCi0gICAgICAgICAgICAgICAgaWYgaXNfb3I6Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbmQgPSBhc3QuVW5hcnlPcChhc3QuTm90KCksIGNvbmQpCi0gICAgICAgICAgICAgICAg
aW5uZXIgPSBbXQotICAgICAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0Lklm
KGNvbmQsIGlubmVyLCBbXSkpCi0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gYm9k
eSA9IGlubmVyCi0gICAgICAgIHNlbGYuc3RhdGVtZW50cyA9IHNhdmUKLSAgICAgICAgc2VsZi5v
bl9mYWlsdXJlID0gZmFpbF9zYXZlCi0gICAgICAgIGV4cGxfdGVtcGxhdGUgPSBzZWxmLmhlbHBl
cigiZm9ybWF0X2Jvb2xvcCIsIGV4cGxfbGlzdCwgYXN0Lk51bShpc19vcikpCi0gICAgICAgIGV4
cGwgPSBzZWxmLnBvcF9mb3JtYXRfY29udGV4dChleHBsX3RlbXBsYXRlKQotICAgICAgICByZXR1
cm4gYXN0Lk5hbWUocmVzX3ZhciwgYXN0LkxvYWQoKSksIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0o
ZXhwbCkKLQotICAgIGRlZiB2aXNpdF9VbmFyeU9wKHNlbGYsIHVuYXJ5KToKLSAgICAgICAgcGF0
dGVybiA9IHVuYXJ5X21hcFt1bmFyeS5vcC5fX2NsYXNzX19dCi0gICAgICAgIG9wZXJhbmRfcmVz
LCBvcGVyYW5kX2V4cGwgPSBzZWxmLnZpc2l0KHVuYXJ5Lm9wZXJhbmQpCi0gICAgICAgIHJlcyA9
IHNlbGYuYXNzaWduKGFzdC5VbmFyeU9wKHVuYXJ5Lm9wLCBvcGVyYW5kX3JlcykpCi0gICAgICAg
IHJldHVybiByZXMsIHBhdHRlcm4gJSAob3BlcmFuZF9leHBsLCkKLQotICAgIGRlZiB2aXNpdF9C
aW5PcChzZWxmLCBiaW5vcCk6Ci0gICAgICAgIHN5bWJvbCA9IGJpbm9wX21hcFtiaW5vcC5vcC5f
X2NsYXNzX19dCi0gICAgICAgIGxlZnRfZXhwciwgbGVmdF9leHBsID0gc2VsZi52aXNpdChiaW5v
cC5sZWZ0KQotICAgICAgICByaWdodF9leHByLCByaWdodF9leHBsID0gc2VsZi52aXNpdChiaW5v
cC5yaWdodCkKLSAgICAgICAgZXhwbGFuYXRpb24gPSAiKCVzICVzICVzKSIgJSAobGVmdF9leHBs
LCBzeW1ib2wsIHJpZ2h0X2V4cGwpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKGFzdC5CaW5P
cChsZWZ0X2V4cHIsIGJpbm9wLm9wLCByaWdodF9leHByKSkKLSAgICAgICAgcmV0dXJuIHJlcywg
ZXhwbGFuYXRpb24KLQotICAgIGRlZiB2aXNpdF9DYWxsXzM1KHNlbGYsIGNhbGwpOgotICAgICAg
ICAiIiIKLSAgICAgICAgdmlzaXQgYGFzdC5DYWxsYCBub2RlcyBvbiBQeXRob24zLjUgYW5kIGFm
dGVyCi0gICAgICAgICIiIgotICAgICAgICBuZXdfZnVuYywgZnVuY19leHBsID0gc2VsZi52aXNp
dChjYWxsLmZ1bmMpCi0gICAgICAgIGFyZ19leHBscyA9IFtdCi0gICAgICAgIG5ld19hcmdzID0g
W10KLSAgICAgICAgbmV3X2t3YXJncyA9IFtdCi0gICAgICAgIGZvciBhcmcgaW4gY2FsbC5hcmdz
OgotICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChhcmcpCi0gICAgICAgICAgICBh
cmdfZXhwbHMuYXBwZW5kKGV4cGwpCi0gICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQocmVzKQot
ICAgICAgICBmb3Iga2V5d29yZCBpbiBjYWxsLmtleXdvcmRzOgotICAgICAgICAgICAgcmVzLCBl
eHBsID0gc2VsZi52aXNpdChrZXl3b3JkLnZhbHVlKQotICAgICAgICAgICAgbmV3X2t3YXJncy5h
cHBlbmQoYXN0LmtleXdvcmQoa2V5d29yZC5hcmcsIHJlcykpCi0gICAgICAgICAgICBpZiBrZXl3
b3JkLmFyZzoKLSAgICAgICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGtleXdvcmQuYXJnICsg
Ij0iICsgZXhwbCkKLSAgICAgICAgICAgIGVsc2U6ICAjICoqYXJncyBoYXZlIGBhcmdgIGtleXdv
cmRzIHdpdGggYW4gLmFyZyBvZiBOb25lCi0gICAgICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVu
ZCgiKioiICsgZXhwbCkKLQotICAgICAgICBleHBsID0gIiVzKCVzKSIgJSAoZnVuY19leHBsLCAn
LCAnLmpvaW4oYXJnX2V4cGxzKSkKLSAgICAgICAgbmV3X2NhbGwgPSBhc3QuQ2FsbChuZXdfZnVu
YywgbmV3X2FyZ3MsIG5ld19rd2FyZ3MpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKG5ld19j
YWxsKQotICAgICAgICByZXNfZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNw
bGF5KHJlcykpCi0gICAgICAgIG91dGVyX2V4cGwgPSAiJXNcbnslcyA9ICVzXG59IiAlIChyZXNf
ZXhwbCwgcmVzX2V4cGwsIGV4cGwpCi0gICAgICAgIHJldHVybiByZXMsIG91dGVyX2V4cGwKLQot
ICAgIGRlZiB2aXNpdF9TdGFycmVkKHNlbGYsIHN0YXJyZWQpOgotICAgICAgICAjIEZyb20gUHl0
aG9uIDMuNSwgYSBTdGFycmVkIG5vZGUgY2FuIGFwcGVhciBpbiBhIGZ1bmN0aW9uIGNhbGwKLSAg
ICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChzdGFycmVkLnZhbHVlKQotICAgICAgICByZXR1
cm4gc3RhcnJlZCwgJyonICsgZXhwbAotCi0gICAgZGVmIHZpc2l0X0NhbGxfbGVnYWN5KHNlbGYs
IGNhbGwpOgotICAgICAgICAiIiIKLSAgICAgICAgdmlzaXQgYGFzdC5DYWxsIG5vZGVzIG9uIDMu
NCBhbmQgYmVsb3dgCi0gICAgICAgICIiIgotICAgICAgICBuZXdfZnVuYywgZnVuY19leHBsID0g
c2VsZi52aXNpdChjYWxsLmZ1bmMpCi0gICAgICAgIGFyZ19leHBscyA9IFtdCi0gICAgICAgIG5l
d19hcmdzID0gW10KLSAgICAgICAgbmV3X2t3YXJncyA9IFtdCi0gICAgICAgIG5ld19zdGFyID0g
bmV3X2t3YXJnID0gTm9uZQotICAgICAgICBmb3IgYXJnIGluIGNhbGwuYXJnczoKLSAgICAgICAg
ICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQoYXJnKQotICAgICAgICAgICAgbmV3X2FyZ3MuYXBw
ZW5kKHJlcykKLSAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoZXhwbCkKLSAgICAgICAgZm9y
IGtleXdvcmQgaW4gY2FsbC5rZXl3b3JkczoKLSAgICAgICAgICAgIHJlcywgZXhwbCA9IHNlbGYu
dmlzaXQoa2V5d29yZC52YWx1ZSkKLSAgICAgICAgICAgIG5ld19rd2FyZ3MuYXBwZW5kKGFzdC5r
ZXl3b3JkKGtleXdvcmQuYXJnLCByZXMpKQotICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChr
ZXl3b3JkLmFyZyArICI9IiArIGV4cGwpCi0gICAgICAgIGlmIGNhbGwuc3RhcmFyZ3M6Ci0gICAg
ICAgICAgICBuZXdfc3RhciwgZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5zdGFyYXJncykKLSAgICAg
ICAgICAgIGFyZ19leHBscy5hcHBlbmQoIioiICsgZXhwbCkKLSAgICAgICAgaWYgY2FsbC5rd2Fy
Z3M6Ci0gICAgICAgICAgICBuZXdfa3dhcmcsIGV4cGwgPSBzZWxmLnZpc2l0KGNhbGwua3dhcmdz
KQotICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZCgiKioiICsgZXhwbCkKLSAgICAgICAgZXhw
bCA9ICIlcyglcykiICUgKGZ1bmNfZXhwbCwgJywgJy5qb2luKGFyZ19leHBscykpCi0gICAgICAg
IG5ld19jYWxsID0gYXN0LkNhbGwobmV3X2Z1bmMsIG5ld19hcmdzLCBuZXdfa3dhcmdzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19zdGFyLCBuZXdfa3dhcmcpCi0gICAgICAgIHJl
cyA9IHNlbGYuYXNzaWduKG5ld19jYWxsKQotICAgICAgICByZXNfZXhwbCA9IHNlbGYuZXhwbGFu
YXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykpCi0gICAgICAgIG91dGVyX2V4cGwgPSAiJXNc
bnslcyA9ICVzXG59IiAlIChyZXNfZXhwbCwgcmVzX2V4cGwsIGV4cGwpCi0gICAgICAgIHJldHVy
biByZXMsIG91dGVyX2V4cGwKLQotICAgICMgYXN0LkNhbGwgc2lnbmF0dXJlIGNoYW5nZWQgb24g
My41LAotICAgICMgY29uZGl0aW9uYWxseSBjaGFuZ2UgIHdoaWNoIG1ldGhvZHMgaXMgbmFtZWQK
LSAgICAjIHZpc2l0X0NhbGwgZGVwZW5kaW5nIG9uIFB5dGhvbiB2ZXJzaW9uCi0gICAgaWYgc3lz
LnZlcnNpb25faW5mbyA+PSAoMywgNSk6Ci0gICAgICAgIHZpc2l0X0NhbGwgPSB2aXNpdF9DYWxs
XzM1Ci0gICAgZWxzZToKLSAgICAgICAgdmlzaXRfQ2FsbCA9IHZpc2l0X0NhbGxfbGVnYWN5Ci0K
LSAgICBkZWYgdmlzaXRfQXR0cmlidXRlKHNlbGYsIGF0dHIpOgotICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShhdHRyLmN0eCwgYXN0LkxvYWQpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2Vu
ZXJpY192aXNpdChhdHRyKQotICAgICAgICB2YWx1ZSwgdmFsdWVfZXhwbCA9IHNlbGYudmlzaXQo
YXR0ci52YWx1ZSkKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LkF0dHJpYnV0ZSh2YWx1
ZSwgYXR0ci5hdHRyLCBhc3QuTG9hZCgpKSkKLSAgICAgICAgcmVzX2V4cGwgPSBzZWxmLmV4cGxh
bmF0aW9uX3BhcmFtKHNlbGYuZGlzcGxheShyZXMpKQotICAgICAgICBwYXQgPSAiJXNcbnslcyA9
ICVzLiVzXG59IgotICAgICAgICBleHBsID0gcGF0ICUgKHJlc19leHBsLCByZXNfZXhwbCwgdmFs
dWVfZXhwbCwgYXR0ci5hdHRyKQotICAgICAgICByZXR1cm4gcmVzLCBleHBsCi0KLSAgICBkZWYg
dmlzaXRfQ29tcGFyZShzZWxmLCBjb21wKToKLSAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250
ZXh0KCkKLSAgICAgICAgbGVmdF9yZXMsIGxlZnRfZXhwbCA9IHNlbGYudmlzaXQoY29tcC5sZWZ0
KQotICAgICAgICBpZiBpc2luc3RhbmNlKGNvbXAubGVmdCwgKF9hc3QuQ29tcGFyZSwgX2FzdC5C
b29sT3ApKToKLSAgICAgICAgICAgIGxlZnRfZXhwbCA9ICIoezB9KSIuZm9ybWF0KGxlZnRfZXhw
bCkKLSAgICAgICAgcmVzX3ZhcmlhYmxlcyA9IFtzZWxmLnZhcmlhYmxlKCkgZm9yIGkgaW4gcmFu
Z2UobGVuKGNvbXAub3BzKSldCi0gICAgICAgIGxvYWRfbmFtZXMgPSBbYXN0Lk5hbWUodiwgYXN0
LkxvYWQoKSkgZm9yIHYgaW4gcmVzX3ZhcmlhYmxlc10KLSAgICAgICAgc3RvcmVfbmFtZXMgPSBb
YXN0Lk5hbWUodiwgYXN0LlN0b3JlKCkpIGZvciB2IGluIHJlc192YXJpYWJsZXNdCi0gICAgICAg
IGl0ID0gemlwKHJhbmdlKGxlbihjb21wLm9wcykpLCBjb21wLm9wcywgY29tcC5jb21wYXJhdG9y
cykKLSAgICAgICAgZXhwbHMgPSBbXQotICAgICAgICBzeW1zID0gW10KLSAgICAgICAgcmVzdWx0
cyA9IFtsZWZ0X3Jlc10KLSAgICAgICAgZm9yIGksIG9wLCBuZXh0X29wZXJhbmQgaW4gaXQ6Ci0g
ICAgICAgICAgICBuZXh0X3JlcywgbmV4dF9leHBsID0gc2VsZi52aXNpdChuZXh0X29wZXJhbmQp
Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5leHRfb3BlcmFuZCwgKF9hc3QuQ29tcGFyZSwg
X2FzdC5Cb29sT3ApKToKLSAgICAgICAgICAgICAgICBuZXh0X2V4cGwgPSAiKHswfSkiLmZvcm1h
dChuZXh0X2V4cGwpCi0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChuZXh0X3JlcykKLSAgICAg
ICAgICAgIHN5bSA9IGJpbm9wX21hcFtvcC5fX2NsYXNzX19dCi0gICAgICAgICAgICBzeW1zLmFw
cGVuZChhc3QuU3RyKHN5bSkpCi0gICAgICAgICAgICBleHBsID0gIiVzICVzICVzIiAlIChsZWZ0
X2V4cGwsIHN5bSwgbmV4dF9leHBsKQotICAgICAgICAgICAgZXhwbHMuYXBwZW5kKGFzdC5TdHIo
ZXhwbCkpCi0gICAgICAgICAgICByZXNfZXhwciA9IGFzdC5Db21wYXJlKGxlZnRfcmVzLCBbb3Bd
LCBbbmV4dF9yZXNdKQotICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuQXNz
aWduKFtzdG9yZV9uYW1lc1tpXV0sIHJlc19leHByKSkKLSAgICAgICAgICAgIGxlZnRfcmVzLCBs
ZWZ0X2V4cGwgPSBuZXh0X3JlcywgbmV4dF9leHBsCi0gICAgICAgICMgVXNlIHB5dGVzdC5hc3Nl
cnRpb24udXRpbC5fcmVwcmNvbXBhcmUgaWYgdGhhdCdzIGF2YWlsYWJsZS4KLSAgICAgICAgZXhw
bF9jYWxsID0gc2VsZi5oZWxwZXIoImNhbGxfcmVwcmNvbXBhcmUiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3QuVHVwbGUoc3ltcywgYXN0LkxvYWQoKSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFzdC5UdXBsZShsb2FkX25hbWVzLCBhc3QuTG9hZCgpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LlR1cGxlKGV4cGxzLCBhc3QuTG9h
ZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LlR1cGxlKHJlc3VsdHMs
IGFzdC5Mb2FkKCkpKQotICAgICAgICBpZiBsZW4oY29tcC5vcHMpID4gMToKLSAgICAgICAgICAg
IHJlcyA9IGFzdC5Cb29sT3AoYXN0LkFuZCgpLCBsb2FkX25hbWVzKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmVzID0gbG9hZF9uYW1lc1swXQotICAgICAgICByZXR1cm4gcmVzLCBzZWxm
LmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGV4cGxfY2FsbCkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyZWQxMmUyZTVhOTYwY2E2MGQ5OTg2OGUxOTg5N2EyN2RkYTZkODMwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAyICsw
LDAgQEAKLSIiIgotVXRpbGl0aWVzIGZvciB0cnVuY2F0aW5nIGFzc2VydGlvbiBvdXRwdXQuCi0K
LUN1cnJlbnQgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gdHJ1bmNhdGUgYXNzZXJ0aW9uIGV4cGxh
bmF0aW9ucyBhdAotfjggdGVybWluYWwgbGluZXMsIHVubGVzcyBydW5uaW5nIGluICItdnYiIG1v
ZGUgb3IgcnVubmluZyBvbiBDSS4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IG9zCi0KLWltcG9ydCBz
aXgKLQotCi1ERUZBVUxUX01BWF9MSU5FUyA9IDgKLURFRkFVTFRfTUFYX0NIQVJTID0gOCAqIDgw
Ci1VU0FHRV9NU0cgPSAidXNlICctdnYnIHRvIHNob3ciCi0KLQotZGVmIHRydW5jYXRlX2lmX3Jl
cXVpcmVkKGV4cGxhbmF0aW9uLCBpdGVtLCBtYXhfbGVuZ3RoPU5vbmUpOgotICAgICIiIgotICAg
IFRydW5jYXRlIHRoaXMgYXNzZXJ0aW9uIGV4cGxhbmF0aW9uIGlmIHRoZSBnaXZlbiB0ZXN0IGl0
ZW0gaXMgZWxpZ2libGUuCi0gICAgIiIiCi0gICAgaWYgX3Nob3VsZF90cnVuY2F0ZV9pdGVtKGl0
ZW0pOgotICAgICAgICByZXR1cm4gX3RydW5jYXRlX2V4cGxhbmF0aW9uKGV4cGxhbmF0aW9uKQot
ICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBfc2hvdWxkX3RydW5jYXRlX2l0ZW0oaXRl
bSk6Ci0gICAgIiIiCi0gICAgV2hldGhlciBvciBub3QgdGhpcyB0ZXN0IGl0ZW0gaXMgZWxpZ2li
bGUgZm9yIHRydW5jYXRpb24uCi0gICAgIiIiCi0gICAgdmVyYm9zZSA9IGl0ZW0uY29uZmlnLm9w
dGlvbi52ZXJib3NlCi0gICAgcmV0dXJuIHZlcmJvc2UgPCAyIGFuZCBub3QgX3J1bm5pbmdfb25f
Y2koKQotCi0KLWRlZiBfcnVubmluZ19vbl9jaSgpOgotICAgICIiIkNoZWNrIGlmIHdlJ3JlIGN1
cnJlbnRseSBydW5uaW5nIG9uIGEgQ0kgc3lzdGVtLiIiIgotICAgIGVudl92YXJzID0gWydDSScs
ICdCVUlMRF9OVU1CRVInXQotICAgIHJldHVybiBhbnkodmFyIGluIG9zLmVudmlyb24gZm9yIHZh
ciBpbiBlbnZfdmFycykKLQotCi1kZWYgX3RydW5jYXRlX2V4cGxhbmF0aW9uKGlucHV0X2xpbmVz
LCBtYXhfbGluZXM9Tm9uZSwgbWF4X2NoYXJzPU5vbmUpOgotICAgICIiIgotICAgIFRydW5jYXRl
IGdpdmVuIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IG1ha2VzIHVwIHRoZSBhc3NlcnRpb24gZXhwbGFu
YXRpb24uCi0KLSAgICBUcnVuY2F0ZXMgdG8gZWl0aGVyIDggbGluZXMsIG9yIDY0MCBjaGFyYWN0
ZXJzIC0gd2hpY2hldmVyIHRoZSBpbnB1dCByZWFjaGVzCi0gICAgZmlyc3QuIFRoZSByZW1haW5p
bmcgbGluZXMgd2lsbCBiZSByZXBsYWNlZCBieSBhIHVzYWdlIG1lc3NhZ2UuCi0gICAgIiIiCi0K
LSAgICBpZiBtYXhfbGluZXMgaXMgTm9uZToKLSAgICAgICAgbWF4X2xpbmVzID0gREVGQVVMVF9N
QVhfTElORVMKLSAgICBpZiBtYXhfY2hhcnMgaXMgTm9uZToKLSAgICAgICAgbWF4X2NoYXJzID0g
REVGQVVMVF9NQVhfQ0hBUlMKLQotICAgICMgQ2hlY2sgaWYgdHJ1bmNhdGlvbiByZXF1aXJlZAot
ICAgIGlucHV0X2NoYXJfY291bnQgPSBsZW4oIiIuam9pbihpbnB1dF9saW5lcykpCi0gICAgaWYg
bGVuKGlucHV0X2xpbmVzKSA8PSBtYXhfbGluZXMgYW5kIGlucHV0X2NoYXJfY291bnQgPD0gbWF4
X2NoYXJzOgotICAgICAgICByZXR1cm4gaW5wdXRfbGluZXMKLQotICAgICMgVHJ1bmNhdGUgZmly
c3QgdG8gbWF4X2xpbmVzLCBhbmQgdGhlbiB0cnVuY2F0ZSB0byBtYXhfY2hhcnMgaWYgbWF4X2No
YXJzCi0gICAgIyBpcyBleGNlZWRlZC4KLSAgICB0cnVuY2F0ZWRfZXhwbGFuYXRpb24gPSBpbnB1
dF9saW5lc1s6bWF4X2xpbmVzXQotICAgIHRydW5jYXRlZF9leHBsYW5hdGlvbiA9IF90cnVuY2F0
ZV9ieV9jaGFyX2NvdW50KHRydW5jYXRlZF9leHBsYW5hdGlvbiwgbWF4X2NoYXJzKQotCi0gICAg
IyBBZGQgZWxsaXBzaXMgdG8gZmluYWwgbGluZQotICAgIHRydW5jYXRlZF9leHBsYW5hdGlvblst
MV0gPSB0cnVuY2F0ZWRfZXhwbGFuYXRpb25bLTFdICsgIi4uLiIKLQotICAgICMgQXBwZW5kIHVz
ZWZ1bCBtZXNzYWdlIHRvIGV4cGxhbmF0aW9uCi0gICAgdHJ1bmNhdGVkX2xpbmVfY291bnQgPSBs
ZW4oaW5wdXRfbGluZXMpIC0gbGVuKHRydW5jYXRlZF9leHBsYW5hdGlvbikKLSAgICB0cnVuY2F0
ZWRfbGluZV9jb3VudCArPSAxICAjIEFjY291bnQgZm9yIHRoZSBwYXJ0LXRydW5jYXRlZCBmaW5h
bCBsaW5lCi0gICAgbXNnID0gJy4uLkZ1bGwgb3V0cHV0IHRydW5jYXRlZCcKLSAgICBpZiB0cnVu
Y2F0ZWRfbGluZV9jb3VudCA9PSAxOgotICAgICAgICBtc2cgKz0gJyAoezB9IGxpbmUgaGlkZGVu
KScuZm9ybWF0KHRydW5jYXRlZF9saW5lX2NvdW50KQotICAgIGVsc2U6Ci0gICAgICAgIG1zZyAr
PSAnICh7MH0gbGluZXMgaGlkZGVuKScuZm9ybWF0KHRydW5jYXRlZF9saW5lX2NvdW50KQotICAg
IG1zZyArPSAiLCB7MH0iIC5mb3JtYXQoVVNBR0VfTVNHKQotICAgIHRydW5jYXRlZF9leHBsYW5h
dGlvbi5leHRlbmQoWwotICAgICAgICBzaXgudGV4dF90eXBlKCIiKSwKLSAgICAgICAgc2l4LnRl
eHRfdHlwZShtc2cpLAotICAgIF0pCi0gICAgcmV0dXJuIHRydW5jYXRlZF9leHBsYW5hdGlvbgot
Ci0KLWRlZiBfdHJ1bmNhdGVfYnlfY2hhcl9jb3VudChpbnB1dF9saW5lcywgbWF4X2NoYXJzKToK
LSAgICAjIENoZWNrIGlmIHRydW5jYXRpb24gcmVxdWlyZWQKLSAgICBpZiBsZW4oIiIuam9pbihp
bnB1dF9saW5lcykpIDw9IG1heF9jaGFyczoKLSAgICAgICAgcmV0dXJuIGlucHV0X2xpbmVzCi0K
LSAgICAjIEZpbmQgcG9pbnQgYXQgd2hpY2ggaW5wdXQgbGVuZ3RoIGV4Y2VlZHMgdG90YWwgYWxs
b3dlZCBsZW5ndGgKLSAgICBpdGVyYXRlZF9jaGFyX2NvdW50ID0gMAotICAgIGZvciBpdGVyYXRl
ZF9pbmRleCwgaW5wdXRfbGluZSBpbiBlbnVtZXJhdGUoaW5wdXRfbGluZXMpOgotICAgICAgICBp
ZiBpdGVyYXRlZF9jaGFyX2NvdW50ICsgbGVuKGlucHV0X2xpbmUpID4gbWF4X2NoYXJzOgotICAg
ICAgICAgICAgYnJlYWsKLSAgICAgICAgaXRlcmF0ZWRfY2hhcl9jb3VudCArPSBsZW4oaW5wdXRf
bGluZSkKLQotICAgICMgQ3JlYXRlIHRydW5jYXRlZCBleHBsYW5hdGlvbiB3aXRoIG1vZGlmaWVk
IGZpbmFsIGxpbmUKLSAgICB0cnVuY2F0ZWRfcmVzdWx0ID0gaW5wdXRfbGluZXNbOml0ZXJhdGVk
X2luZGV4XQotICAgIGZpbmFsX2xpbmUgPSBpbnB1dF9saW5lc1tpdGVyYXRlZF9pbmRleF0KLSAg
ICBpZiBmaW5hbF9saW5lOgotICAgICAgICBmaW5hbF9saW5lX3RydW5jYXRlX3BvaW50ID0gbWF4
X2NoYXJzIC0gaXRlcmF0ZWRfY2hhcl9jb3VudAotICAgICAgICBmaW5hbF9saW5lID0gZmluYWxf
bGluZVs6ZmluYWxfbGluZV90cnVuY2F0ZV9wb2ludF0KLSAgICB0cnVuY2F0ZWRfcmVzdWx0LmFw
cGVuZChmaW5hbF9saW5lKQotICAgIHJldHVybiB0cnVuY2F0ZWRfcmVzdWx0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9hc3NlcnRpb24vdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTEx
ZDk4ZWYxZmRmMTk2NDNkMmFjNmI4ODY0OGU4OGM2N2JkOWRiMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlv
bi91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzA4ICswLDAgQEAKLSIiIlV0aWxpdGllcyBm
b3IgYXNzZXJ0aW9uIGRlYnVnZ2luZyIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotaW1wb3J0IHBwcmludAotCi1pbXBv
cnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IHB5Ci1pbXBvcnQgc2l4Ci10cnk6Ci0gICAgZnJvbSBj
b2xsZWN0aW9ucyBpbXBvcnQgU2VxdWVuY2UKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBTZXF1
ZW5jZSA9IGxpc3QKLQotCi11ID0gc2l4LnRleHRfdHlwZQotCi0jIFRoZSBfcmVwcmNvbXBhcmUg
YXR0cmlidXRlIG9uIHRoZSB1dGlsIG1vZHVsZSBpcyB1c2VkIGJ5IHRoZSBuZXcgYXNzZXJ0aW9u
Ci0jIGludGVycHJldGF0aW9uIGNvZGUgYW5kIGFzc2VydGlvbiByZXdyaXRlciB0byBkZXRlY3Qg
dGhpcyBwbHVnaW4gd2FzCi0jIGxvYWRlZCBhbmQgaW4gdHVybiBjYWxsIHRoZSBob29rcyBkZWZp
bmVkIGhlcmUgYXMgcGFydCBvZiB0aGUKLSMgRGVidWdJbnRlcnByZXRlci4KLV9yZXByY29tcGFy
ZSA9IE5vbmUKLQotCi0jIHRoZSByZS1lbmNvZGluZyBpcyBuZWVkZWQgZm9yIHB5dGhvbjIgcmVw
cgotIyB3aXRoIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIChzZWUgaXNzdWUgODc3IGFuZCAxMzc5KQot
ZGVmIGVjdShzKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiB1KHMsICd1dGYtOCcsICdyZXBs
YWNlJykKLSAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICByZXR1cm4gcwotCi0KLWRlZiBm
b3JtYXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pOgotICAgICIiIlRoaXMgZm9ybWF0cyBhbiBl
eHBsYW5hdGlvbgotCi0gICAgTm9ybWFsbHkgYWxsIGVtYmVkZGVkIG5ld2xpbmVzIGFyZSBlc2Nh
cGVkLCBob3dldmVyIHRoZXJlIGFyZQotICAgIHRocmVlIGV4Y2VwdGlvbnM6IFxueywgXG59IGFu
ZCBcbn4uICBUaGUgZmlyc3QgdHdvIGFyZSBpbnRlbmRlZAotICAgIGNvdmVyIG5lc3RlZCBleHBs
YW5hdGlvbnMsIHNlZSBmdW5jdGlvbiBhbmQgYXR0cmlidXRlIGV4cGxhbmF0aW9ucwotICAgIGZv
ciBleGFtcGxlcyAoLnZpc2l0X0NhbGwoKSwgdmlzaXRfQXR0cmlidXRlKCkpLiAgVGhlIGxhc3Qg
b25lIGlzCi0gICAgZm9yIHdoZW4gb25lIGV4cGxhbmF0aW9uIG5lZWRzIHRvIHNwYW4gbXVsdGlw
bGUgbGluZXMsIGUuZy4gd2hlbgotICAgIGRpc3BsYXlpbmcgZGlmZnMuCi0gICAgIiIiCi0gICAg
ZXhwbGFuYXRpb24gPSBlY3UoZXhwbGFuYXRpb24pCi0gICAgbGluZXMgPSBfc3BsaXRfZXhwbGFu
YXRpb24oZXhwbGFuYXRpb24pCi0gICAgcmVzdWx0ID0gX2Zvcm1hdF9saW5lcyhsaW5lcykKLSAg
ICByZXR1cm4gdSgnXG4nKS5qb2luKHJlc3VsdCkKLQotCi1kZWYgX3NwbGl0X2V4cGxhbmF0aW9u
KGV4cGxhbmF0aW9uKToKLSAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGluZGl2aWR1YWwgbGluZXMg
aW4gdGhlIGV4cGxhbmF0aW9uCi0KLSAgICBUaGlzIHdpbGwgcmV0dXJuIGEgbGlzdCBvZiBsaW5l
cyBzcGxpdCBvbiAnXG57JywgJ1xufScgYW5kICdcbn4nLgotICAgIEFueSBvdGhlciBuZXdsaW5l
cyB3aWxsIGJlIGVzY2FwZWQgYW5kIGFwcGVhciBpbiB0aGUgbGluZSBhcyB0aGUKLSAgICBsaXRl
cmFsICdcbicgY2hhcmFjdGVycy4KLSAgICAiIiIKLSAgICByYXdfbGluZXMgPSAoZXhwbGFuYXRp
b24gb3IgdSgnJykpLnNwbGl0KCdcbicpCi0gICAgbGluZXMgPSBbcmF3X2xpbmVzWzBdXQotICAg
IGZvciB2YWx1ZXMgaW4gcmF3X2xpbmVzWzE6XToKLSAgICAgICAgaWYgdmFsdWVzIGFuZCB2YWx1
ZXNbMF0gaW4gWyd7JywgJ30nLCAnficsICc+J106Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQo
dmFsdWVzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbGluZXNbLTFdICs9ICdcXG4nICsg
dmFsdWVzCi0gICAgcmV0dXJuIGxpbmVzCi0KLQotZGVmIF9mb3JtYXRfbGluZXMobGluZXMpOgot
ICAgICIiIkZvcm1hdCB0aGUgaW5kaXZpZHVhbCBsaW5lcwotCi0gICAgVGhpcyB3aWxsIHJlcGxh
Y2UgdGhlICd7JywgJ30nIGFuZCAnficgY2hhcmFjdGVycyBvZiBvdXIgbWluaQotICAgIGZvcm1h
dHRpbmcgbGFuZ3VhZ2Ugd2l0aCB0aGUgcHJvcGVyICd3aGVyZSAuLi4nLCAnYW5kIC4uLicgYW5k
ICcgKwotICAgIC4uLicgdGV4dCwgdGFraW5nIGNhcmUgb2YgaW5kZW50YXRpb24gYWxvbmcgdGhl
IHdheS4KLQotICAgIFJldHVybiBhIGxpc3Qgb2YgZm9ybWF0dGVkIGxpbmVzLgotICAgICIiIgot
ICAgIHJlc3VsdCA9IGxpbmVzWzoxXQotICAgIHN0YWNrID0gWzBdCi0gICAgc3RhY2tjbnQgPSBb
MF0KLSAgICBmb3IgbGluZSBpbiBsaW5lc1sxOl06Ci0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0
aCgneycpOgotICAgICAgICAgICAgaWYgc3RhY2tjbnRbLTFdOgotICAgICAgICAgICAgICAgIHMg
PSB1KCdhbmQgICAnKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzID0gdSgn
d2hlcmUgJykKLSAgICAgICAgICAgIHN0YWNrLmFwcGVuZChsZW4ocmVzdWx0KSkKLSAgICAgICAg
ICAgIHN0YWNrY250Wy0xXSArPSAxCi0gICAgICAgICAgICBzdGFja2NudC5hcHBlbmQoMCkKLSAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSgnICsnKSArIHUoJyAgJykgKiAobGVuKHN0YWNrKSAt
IDEpICsgcyArIGxpbmVbMTpdKQotICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgnfScpOgot
ICAgICAgICAgICAgc3RhY2sucG9wKCkKLSAgICAgICAgICAgIHN0YWNrY250LnBvcCgpCi0gICAg
ICAgICAgICByZXN1bHRbc3RhY2tbLTFdXSArPSBsaW5lWzE6XQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgYXNzZXJ0IGxpbmVbMF0gaW4gWyd+JywgJz4nXQotICAgICAgICAgICAgc3RhY2tb
LTFdICs9IDEKLSAgICAgICAgICAgIGluZGVudCA9IGxlbihzdGFjaykgaWYgbGluZS5zdGFydHN3
aXRoKCd+JykgZWxzZSBsZW4oc3RhY2spIC0gMQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh1
KCcgICcpICogaW5kZW50ICsgbGluZVsxOl0pCi0gICAgYXNzZXJ0IGxlbihzdGFjaykgPT0gMQot
ICAgIHJldHVybiByZXN1bHQKLQotCi0jIFByb3ZpZGUgYmFzZXN0cmluZyBpbiBweXRob24zCi10
cnk6Ci0gICAgYmFzZXN0cmluZyA9IGJhc2VzdHJpbmcKLWV4Y2VwdCBOYW1lRXJyb3I6Ci0gICAg
YmFzZXN0cmluZyA9IHN0cgotCi0KLWRlZiBhc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCBvcCwg
bGVmdCwgcmlnaHQpOgotICAgICIiIlJldHVybiBzcGVjaWFsaXNlZCBleHBsYW5hdGlvbnMgZm9y
IHNvbWUgb3BlcmF0b3JzL29wZXJhbmRzIiIiCi0gICAgd2lkdGggPSA4MCAtIDE1IC0gbGVuKG9w
KSAtIDIgICMgMTUgY2hhcnMgaW5kZW50YXRpb24sIDEgc3BhY2UgYXJvdW5kIG9wCi0gICAgbGVm
dF9yZXByID0gcHkuaW8uc2FmZXJlcHIobGVmdCwgbWF4c2l6ZT1pbnQod2lkdGggLy8gMikpCi0g
ICAgcmlnaHRfcmVwciA9IHB5LmlvLnNhZmVyZXByKHJpZ2h0LCBtYXhzaXplPXdpZHRoIC0gbGVu
KGxlZnRfcmVwcikpCi0KLSAgICBzdW1tYXJ5ID0gdSgnJXMgJXMgJXMnKSAlIChlY3UobGVmdF9y
ZXByKSwgb3AsIGVjdShyaWdodF9yZXByKSkKLQotICAgIGRlZiBpc3NlcXVlbmNlKHgpOgotICAg
ICAgICByZXR1cm4gKGlzaW5zdGFuY2UoeCwgKGxpc3QsIHR1cGxlLCBTZXF1ZW5jZSkpIGFuZCBu
b3QgaXNpbnN0YW5jZSh4LCBiYXNlc3RyaW5nKSkKLQotICAgIGRlZiBpc3RleHQoeCk6Ci0gICAg
ICAgIHJldHVybiBpc2luc3RhbmNlKHgsIGJhc2VzdHJpbmcpCi0KLSAgICBkZWYgaXNkaWN0KHgp
OgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBkaWN0KQotCi0gICAgZGVmIGlzc2V0KHgp
OgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCAoc2V0LCBmcm96ZW5zZXQpKQotCi0gICAg
ZGVmIGlzaXRlcmFibGUob2JqKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaXRlcihvYmop
Ci0gICAgICAgICAgICByZXR1cm4gbm90IGlzdGV4dChvYmopCi0gICAgICAgIGV4Y2VwdCBUeXBl
RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIHZlcmJvc2UgPSBjb25maWcu
Z2V0b3B0aW9uKCd2ZXJib3NlJykKLSAgICBleHBsYW5hdGlvbiA9IE5vbmUKLSAgICB0cnk6Ci0g
ICAgICAgIGlmIG9wID09ICc9PSc6Ci0gICAgICAgICAgICBpZiBpc3RleHQobGVmdCkgYW5kIGlz
dGV4dChyaWdodCk6Ci0gICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfZGlmZl90ZXh0KGxl
ZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBp
ZiBpc3NlcXVlbmNlKGxlZnQpIGFuZCBpc3NlcXVlbmNlKHJpZ2h0KToKLSAgICAgICAgICAgICAg
ICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCByaWdodCwgdmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICBlbGlmIGlzc2V0KGxlZnQpIGFuZCBpc3NldChyaWdodCk6
Ci0gICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfc2V0KGxlZnQs
IHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgICAgIGVsaWYgaXNkaWN0KGxlZnQpIGFuZCBp
c2RpY3QocmlnaHQpOgotICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9jb21wYXJl
X2VxX2RpY3QobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgaWYgaXNpdGVy
YWJsZShsZWZ0KSBhbmQgaXNpdGVyYWJsZShyaWdodCk6Ci0gICAgICAgICAgICAgICAgICAgIGV4
cGwgPSBfY29tcGFyZV9lcV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9zZSkKLSAgICAgICAg
ICAgICAgICAgICAgaWYgZXhwbGFuYXRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBleHBsYW5hdGlvbi5leHRlbmQoZXhwbCkKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXhwbAotICAgICAgICBl
bGlmIG9wID09ICdub3QgaW4nOgotICAgICAgICAgICAgaWYgaXN0ZXh0KGxlZnQpIGFuZCBpc3Rl
eHQocmlnaHQpOgotICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX25vdGluX3RleHQobGVm
dCwgcmlnaHQsIHZlcmJvc2UpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgZXhwbGFu
YXRpb24gPSBbCi0gICAgICAgICAgICB1KCcocHl0ZXN0X2Fzc2VydGlvbiBwbHVnaW46IHJlcHJl
c2VudGF0aW9uIG9mIGRldGFpbHMgZmFpbGVkLiAgJwotICAgICAgICAgICAgICAnUHJvYmFibHkg
YW4gb2JqZWN0IGhhcyBhIGZhdWx0eSBfX3JlcHJfXy4pJyksCi0gICAgICAgICAgICB1KF9weXRl
c3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKV0KLQotICAgIGlmIG5vdCBleHBsYW5hdGlvbjoKLSAg
ICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJldHVybiBbc3VtbWFyeV0gKyBleHBsYW5hdGlvbgot
Ci0KLWRlZiBfZGlmZl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICAiIiJS
ZXR1cm4gdGhlIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlmZiBiZXR3ZWVuIHRleHQgb3IgYnl0ZXMK
LQotICAgIFVubGVzcyAtLXZlcmJvc2UgaXMgdXNlZCB0aGlzIHdpbGwgc2tpcCBsZWFkaW5nIGFu
ZCB0cmFpbGluZwotICAgIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGlkZW50aWNhbCB0byBrZWVwIHRo
ZSBkaWZmIG1pbmltYWwuCi0KLSAgICBJZiB0aGUgaW5wdXQgYXJlIGJ5dGVzIHRoZXkgd2lsbCBi
ZSBzYWZlbHkgY29udmVydGVkIHRvIHRleHQuCi0gICAgIiIiCi0gICAgZnJvbSBkaWZmbGliIGlt
cG9ydCBuZGlmZgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBpZiBpc2luc3RhbmNlKGxlZnQs
IHNpeC5iaW5hcnlfdHlwZSk6Ci0gICAgICAgIGxlZnQgPSB1KHJlcHIobGVmdClbMTotMV0pLnJl
cGxhY2UocidcbicsICdcbicpCi0gICAgaWYgaXNpbnN0YW5jZShyaWdodCwgc2l4LmJpbmFyeV90
eXBlKToKLSAgICAgICAgcmlnaHQgPSB1KHJlcHIocmlnaHQpWzE6LTFdKS5yZXBsYWNlKHInXG4n
LCAnXG4nKQotICAgIGlmIG5vdCB2ZXJib3NlOgotICAgICAgICBpID0gMCAgIyBqdXN0IGluIGNh
c2UgbGVmdCBvciByaWdodCBoYXMgemVybyBsZW5ndGgKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
bWluKGxlbihsZWZ0KSwgbGVuKHJpZ2h0KSkpOgotICAgICAgICAgICAgaWYgbGVmdFtpXSAhPSBy
aWdodFtpXToKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBpZiBpID4gNDI6Ci0gICAg
ICAgICAgICBpIC09IDEwICAgICAgICAgICAgICAgICAjIFByb3ZpZGUgc29tZSBjb250ZXh0Ci0g
ICAgICAgICAgICBleHBsYW5hdGlvbiA9IFt1KCdTa2lwcGluZyAlcyBpZGVudGljYWwgbGVhZGlu
ZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFyYWN0ZXJzIGluIGRpZmYsIHVz
ZSAtdiB0byBzaG93JykgJSBpXQotICAgICAgICAgICAgbGVmdCA9IGxlZnRbaTpdCi0gICAgICAg
ICAgICByaWdodCA9IHJpZ2h0W2k6XQotICAgICAgICBpZiBsZW4obGVmdCkgPT0gbGVuKHJpZ2h0
KToKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihsZWZ0KSk6Ci0gICAgICAgICAgICAg
ICAgaWYgbGVmdFstaV0gIT0gcmlnaHRbLWldOgotICAgICAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICAgICAgaWYgaSA+IDQyOgotICAgICAgICAgICAgICAgIGkgLT0gMTAgICAgICMgUHJv
dmlkZSBzb21lIGNvbnRleHQKLSAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnU2tp
cHBpbmcgJXMgaWRlbnRpY2FsIHRyYWlsaW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdycpICUgaV0KLSAgICAg
ICAgICAgICAgICBsZWZ0ID0gbGVmdFs6LWldCi0gICAgICAgICAgICAgICAgcmlnaHQgPSByaWdo
dFs6LWldCi0gICAga2VlcGVuZHMgPSBUcnVlCi0gICAgZXhwbGFuYXRpb24gKz0gW2xpbmUuc3Ry
aXAoJ1xuJykKLSAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gbmRpZmYobGVmdC5zcGxp
dGxpbmVzKGtlZXBlbmRzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmlnaHQuc3BsaXRsaW5lcyhrZWVwZW5kcykpXQotICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0K
LWRlZiBfY29tcGFyZV9lcV9pdGVyYWJsZShsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6Ci0g
ICAgaWYgbm90IHZlcmJvc2U6Ci0gICAgICAgIHJldHVybiBbdSgnVXNlIC12IHRvIGdldCB0aGUg
ZnVsbCBkaWZmJyldCi0gICAgIyBkeW5hbWljIGltcG9ydCB0byBzcGVlZHVwIHB5dGVzdAotICAg
IGltcG9ydCBkaWZmbGliCi0KLSAgICB0cnk6Ci0gICAgICAgIGxlZnRfZm9ybWF0dGluZyA9IHBw
cmludC5wZm9ybWF0KGxlZnQpLnNwbGl0bGluZXMoKQotICAgICAgICByaWdodF9mb3JtYXR0aW5n
ID0gcHByaW50LnBmb3JtYXQocmlnaHQpLnNwbGl0bGluZXMoKQotICAgICAgICBleHBsYW5hdGlv
biA9IFt1KCdGdWxsIGRpZmY6JyldCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgIyBo
YWNrOiBQcmV0dHlQcmludGVyLnBmb3JtYXQoKSBpbiBweXRob24gMiBmYWlscyB3aGVuIGZvcm1h
dHRpbmcgaXRlbXMgdGhhdCBjYW4ndCBiZSBzb3J0ZWQoKSwgaWUsIGNhbGxpbmcKLSAgICAgICAg
IyBzb3J0ZWQoKSBvbiBhIGxpc3Qgd291bGQgcmFpc2UuIFNlZSBpc3N1ZSAjNzE4LgotICAgICAg
ICAjIEFzIGEgd29ya2Fyb3VuZCwgdGhlIGZ1bGwgZGlmZiBpcyBnZW5lcmF0ZWQgYnkgdXNpbmcg
dGhlIHJlcHIoKSBzdHJpbmcgb2YgZWFjaCBpdGVtIG9mIGVhY2ggY29udGFpbmVyLgotICAgICAg
ICBsZWZ0X2Zvcm1hdHRpbmcgPSBzb3J0ZWQocmVwcih4KSBmb3IgeCBpbiBsZWZ0KQotICAgICAg
ICByaWdodF9mb3JtYXR0aW5nID0gc29ydGVkKHJlcHIoeCkgZm9yIHggaW4gcmlnaHQpCi0gICAg
ICAgIGV4cGxhbmF0aW9uID0gW3UoJ0Z1bGwgZGlmZiAoZmFsbGJhY2sgdG8gY2FsbGluZyByZXBy
IG9uIGVhY2ggaXRlbSk6JyldCi0gICAgZXhwbGFuYXRpb24uZXh0ZW5kKGxpbmUuc3RyaXAoKSBm
b3IgbGluZSBpbiBkaWZmbGliLm5kaWZmKGxlZnRfZm9ybWF0dGluZywgcmlnaHRfZm9ybWF0dGlu
ZykpCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9jb21wYXJlX2VxX3NlcXVlbmNl
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBleHBsYW5hdGlvbiA9IFtdCi0gICAg
Zm9yIGkgaW4gcmFuZ2UobWluKGxlbihsZWZ0KSwgbGVuKHJpZ2h0KSkpOgotICAgICAgICBpZiBs
ZWZ0W2ldICE9IHJpZ2h0W2ldOgotICAgICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ0F0IGlu
ZGV4ICVzIGRpZmY6ICVyICE9ICVyJykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChp
LCBsZWZ0W2ldLCByaWdodFtpXSldCi0gICAgICAgICAgICBicmVhawotICAgIGlmIGxlbihsZWZ0
KSA+IGxlbihyaWdodCk6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdMZWZ0IGNvbnRhaW5z
IG1vcmUgaXRlbXMsIGZpcnN0IGV4dHJhIGl0ZW06ICVzJykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICUgcHkuaW8uc2FmZXJlcHIobGVmdFtsZW4ocmlnaHQpXSwpXQotICAgIGVsaWYgbGVuKGxl
ZnQpIDwgbGVuKHJpZ2h0KToKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gWwotICAgICAgICAgICAg
dSgnUmlnaHQgY29udGFpbnMgbW9yZSBpdGVtcywgZmlyc3QgZXh0cmEgaXRlbTogJXMnKSAlCi0g
ICAgICAgICAgICBweS5pby5zYWZlcmVwcihyaWdodFtsZW4obGVmdCldLCldCi0gICAgcmV0dXJu
IGV4cGxhbmF0aW9uCi0KLQotZGVmIF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdodCwgdmVyYm9z
ZT1GYWxzZSk6Ci0gICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGRpZmZfbGVmdCA9IGxlZnQgLSBy
aWdodAotICAgIGRpZmZfcmlnaHQgPSByaWdodCAtIGxlZnQKLSAgICBpZiBkaWZmX2xlZnQ6Ci0g
ICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdFeHRyYSBpdGVtcyBpbiB0aGUgbGVmdCBzZXQ6
JykpCi0gICAgICAgIGZvciBpdGVtIGluIGRpZmZfbGVmdDoKLSAgICAgICAgICAgIGV4cGxhbmF0
aW9uLmFwcGVuZChweS5pby5zYWZlcmVwcihpdGVtKSkKLSAgICBpZiBkaWZmX3JpZ2h0OgotICAg
ICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgnRXh0cmEgaXRlbXMgaW4gdGhlIHJpZ2h0IHNldDon
KSkKLSAgICAgICAgZm9yIGl0ZW0gaW4gZGlmZl9yaWdodDoKLSAgICAgICAgICAgIGV4cGxhbmF0
aW9uLmFwcGVuZChweS5pby5zYWZlcmVwcihpdGVtKSkKLSAgICByZXR1cm4gZXhwbGFuYXRpb24K
LQotCi1kZWYgX2NvbXBhcmVfZXFfZGljdChsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxzZSk6Ci0g
ICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGNvbW1vbiA9IHNldChsZWZ0KS5pbnRlcnNlY3Rpb24o
c2V0KHJpZ2h0KSkKLSAgICBzYW1lID0gZGljdCgoaywgbGVmdFtrXSkgZm9yIGsgaW4gY29tbW9u
IGlmIGxlZnRba10gPT0gcmlnaHRba10pCi0gICAgaWYgc2FtZSBhbmQgdmVyYm9zZSA8IDI6Ci0g
ICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdPbWl0dGluZyAlcyBpZGVudGljYWwgaXRlbXMsIHVz
ZSAtdnYgdG8gc2hvdycpICUKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzYW1lKV0KLSAg
ICBlbGlmIHNhbWU6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdDb21tb24gaXRlbXM6Jyld
Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IHBwcmludC5wZm9ybWF0KHNhbWUpLnNwbGl0bGluZXMo
KQotICAgIGRpZmYgPSBzZXQoayBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtrXSAhPSByaWdodFtr
XSkKLSAgICBpZiBkaWZmOgotICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnRGlmZmVyaW5nIGl0
ZW1zOicpXQotICAgICAgICBmb3IgayBpbiBkaWZmOgotICAgICAgICAgICAgZXhwbGFuYXRpb24g
Kz0gW3B5LmlvLnNhZmVyZXByKHtrOiBsZWZ0W2tdfSkgKyAnICE9ICcgKwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB5LmlvLnNhZmVyZXByKHtrOiByaWdodFtrXX0pXQotICAgIGV4dHJh
X2xlZnQgPSBzZXQobGVmdCkgLSBzZXQocmlnaHQpCi0gICAgaWYgZXh0cmFfbGVmdDoKLSAgICAg
ICAgZXhwbGFuYXRpb24uYXBwZW5kKHUoJ0xlZnQgY29udGFpbnMgbW9yZSBpdGVtczonKSkKLSAg
ICAgICAgZXhwbGFuYXRpb24uZXh0ZW5kKHBwcmludC5wZm9ybWF0KAotICAgICAgICAgICAgZGlj
dCgoaywgbGVmdFtrXSkgZm9yIGsgaW4gZXh0cmFfbGVmdCkpLnNwbGl0bGluZXMoKSkKLSAgICBl
eHRyYV9yaWdodCA9IHNldChyaWdodCkgLSBzZXQobGVmdCkKLSAgICBpZiBleHRyYV9yaWdodDoK
LSAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHUoJ1JpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXM6
JykpCi0gICAgICAgIGV4cGxhbmF0aW9uLmV4dGVuZChwcHJpbnQucGZvcm1hdCgKLSAgICAgICAg
ICAgIGRpY3QoKGssIHJpZ2h0W2tdKSBmb3IgayBpbiBleHRyYV9yaWdodCkpLnNwbGl0bGluZXMo
KSkKLSAgICByZXR1cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX25vdGluX3RleHQodGVybSwgdGV4
dCwgdmVyYm9zZT1GYWxzZSk6Ci0gICAgaW5kZXggPSB0ZXh0LmZpbmQodGVybSkKLSAgICBoZWFk
ID0gdGV4dFs6aW5kZXhdCi0gICAgdGFpbCA9IHRleHRbaW5kZXggKyBsZW4odGVybSk6XQotICAg
IGNvcnJlY3RfdGV4dCA9IGhlYWQgKyB0YWlsCi0gICAgZGlmZiA9IF9kaWZmX3RleHQoY29ycmVj
dF90ZXh0LCB0ZXh0LCB2ZXJib3NlKQotICAgIG5ld2RpZmYgPSBbdSgnJXMgaXMgY29udGFpbmVk
IGhlcmU6JykgJSBweS5pby5zYWZlcmVwcih0ZXJtLCBtYXhzaXplPTQyKV0KLSAgICBmb3IgbGlu
ZSBpbiBkaWZmOgotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgodSgnU2tpcHBpbmcnKSk6Ci0g
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgodSgnLSAnKSk6
Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgodSgnKyAn
KSk6Ci0gICAgICAgICAgICBuZXdkaWZmLmFwcGVuZCh1KCcgICcpICsgbGluZVsyOl0pCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBuZXdkaWZmLmFwcGVuZChsaW5lKQotICAgIHJldHVybiBu
ZXdkaWZmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTMwN2QzYWJjNzIxNThmNDFkNjQ0MmNmZDU5
MWUxYjA1ZjljYWNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3Nl
cnRpb24vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlk
ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MzdjMTQ0NzJiMWNlOTE2OWNm
ZTc2MjkwMTU4ODRiMGU0ZTNlNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMjYwICswLDAgQEAKLSIiIgotbWVyZ2VkIGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBjYWNoZSBwcm92aWRlcgotCi10aGUgbmFtZSBjYWNoZSB3YXMgbm90IGNob3NlbiB0byBlbnN1
cmUgcGx1Z2d5IGF1dG9tYXRpY2FsbHkKLWlnbm9yZXMgdGhlIGV4dGVybmFsIHB5dGVzdC1jYWNo
ZQotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHkKLWltcG9ydCBweXRlc3QKLWltcG9ydCBqc29uCi1p
bXBvcnQgb3MKLWZyb20gb3MucGF0aCBpbXBvcnQgc2VwIGFzIF9zZXAsIGFsdHNlcCBhcyBfYWx0
c2VwCi0KLQotY2xhc3MgQ2FjaGUob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29u
ZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi5fY2FjaGVk
aXIgPSBDYWNoZS5jYWNoZV9kaXJfZnJvbV9jb25maWcoY29uZmlnKQotICAgICAgICBzZWxmLnRy
YWNlID0gY29uZmlnLnRyYWNlLnJvb3QuZ2V0KCJjYWNoZSIpCi0gICAgICAgIGlmIGNvbmZpZy5n
ZXR2YWx1ZSgiY2FjaGVjbGVhciIpOgotICAgICAgICAgICAgc2VsZi50cmFjZSgiY2xlYXJpbmcg
Y2FjaGVkaXIiKQotICAgICAgICAgICAgaWYgc2VsZi5fY2FjaGVkaXIuY2hlY2soKToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9jYWNoZWRpci5yZW1vdmUoKQotICAgICAgICAgICAgc2VsZi5fY2Fj
aGVkaXIubWtkaXIoKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBjYWNoZV9kaXJfZnJv
bV9jb25maWcoY29uZmlnKToKLSAgICAgICAgY2FjaGVfZGlyID0gY29uZmlnLmdldGluaSgiY2Fj
aGVfZGlyIikKLSAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5leHBhbmR1c2VyKGNhY2hlX2Rp
cikKLSAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5leHBhbmR2YXJzKGNhY2hlX2RpcikKLSAg
ICAgICAgaWYgb3MucGF0aC5pc2FicyhjYWNoZV9kaXIpOgotICAgICAgICAgICAgcmV0dXJuIHB5
LnBhdGgubG9jYWwoY2FjaGVfZGlyKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJu
IGNvbmZpZy5yb290ZGlyLmpvaW4oY2FjaGVfZGlyKQotCi0gICAgZGVmIG1ha2VkaXIoc2VsZiwg
bmFtZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBkaXJlY3RvcnkgcGF0aCBvYmplY3Qgd2l0aCB0
aGUgZ2l2ZW4gbmFtZS4gIElmIHRoZQotICAgICAgICBkaXJlY3RvcnkgZG9lcyBub3QgeWV0IGV4
aXN0LCBpdCB3aWxsIGJlIGNyZWF0ZWQuICBZb3UgY2FuIHVzZSBpdAotICAgICAgICB0byBtYW5h
Z2UgZmlsZXMgbGlrZXMgZS4gZy4gc3RvcmUvcmV0cmlldmUgZGF0YWJhc2UKLSAgICAgICAgZHVt
cHMgYWNyb3NzIHRlc3Qgc2Vzc2lvbnMuCi0KLSAgICAgICAgOnBhcmFtIG5hbWU6IG11c3QgYmUg
YSBzdHJpbmcgbm90IGNvbnRhaW5pbmcgYSBgYC9gYCBzZXBhcmF0b3IuCi0gICAgICAgICAgICAg
TWFrZSBzdXJlIHRoZSBuYW1lIGNvbnRhaW5zIHlvdXIgcGx1Z2luIG9yIGFwcGxpY2F0aW9uCi0g
ICAgICAgICAgICAgaWRlbnRpZmllcnMgdG8gcHJldmVudCBjbGFzaGVzIHdpdGggb3RoZXIgY2Fj
aGUgdXNlcnMuCi0gICAgICAgICIiIgotICAgICAgICBpZiBfc2VwIGluIG5hbWUgb3IgX2FsdHNl
cCBpcyBub3QgTm9uZSBhbmQgX2FsdHNlcCBpbiBuYW1lOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigibmFtZSBpcyBub3QgYWxsb3dlZCB0byBjb250YWluIHBhdGggc2VwYXJhdG9ycyIp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9jYWNoZWRpci5lbnN1cmVfZGlyKCJkIiwgbmFtZSkKLQot
ICAgIGRlZiBfZ2V0dmFsdWVwYXRoKHNlbGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9j
YWNoZWRpci5qb2luKCd2JywgKmtleS5zcGxpdCgnLycpKQotCi0gICAgZGVmIGdldChzZWxmLCBr
ZXksIGRlZmF1bHQpOgotICAgICAgICAiIiIgcmV0dXJuIGNhY2hlZCB2YWx1ZSBmb3IgdGhlIGdp
dmVuIGtleS4gIElmIG5vIHZhbHVlCi0gICAgICAgIHdhcyB5ZXQgY2FjaGVkIG9yIHRoZSB2YWx1
ZSBjYW5ub3QgYmUgcmVhZCwgdGhlIHNwZWNpZmllZAotICAgICAgICBkZWZhdWx0IGlzIHJldHVy
bmVkLgotCi0gICAgICAgIDpwYXJhbSBrZXk6IG11c3QgYmUgYSBgYC9gYCBzZXBhcmF0ZWQgdmFs
dWUuIFVzdWFsbHkgdGhlIGZpcnN0Ci0gICAgICAgICAgICAgbmFtZSBpcyB0aGUgbmFtZSBvZiB5
b3VyIHBsdWdpbiBvciB5b3VyIGFwcGxpY2F0aW9uLgotICAgICAgICA6cGFyYW0gZGVmYXVsdDog
bXVzdCBiZSBwcm92aWRlZCBpbiBjYXNlIG9mIGEgY2FjaGUtbWlzcyBvcgotICAgICAgICAgICAg
IGludmFsaWQgY2FjaGUgdmFsdWVzLgotCi0gICAgICAgICIiIgotICAgICAgICBwYXRoID0gc2Vs
Zi5fZ2V0dmFsdWVwYXRoKGtleSkKLSAgICAgICAgaWYgcGF0aC5jaGVjaygpOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIHdpdGggcGF0aC5vcGVuKCJyIikgYXMgZjoKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChmKQotICAgICAgICAgICAgZXhjZXB0IFZh
bHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgc2VsZi50cmFjZSgiY2FjaGUtaW52YWxpZCBhdCAl
cyIgJSAocGF0aCwpKQotICAgICAgICByZXR1cm4gZGVmYXVsdAotCi0gICAgZGVmIHNldChzZWxm
LCBrZXksIHZhbHVlKToKLSAgICAgICAgIiIiIHNhdmUgdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXku
Ci0KLSAgICAgICAgOnBhcmFtIGtleTogbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZS4g
VXN1YWxseSB0aGUgZmlyc3QKLSAgICAgICAgICAgICBuYW1lIGlzIHRoZSBuYW1lIG9mIHlvdXIg
cGx1Z2luIG9yIHlvdXIgYXBwbGljYXRpb24uCi0gICAgICAgIDpwYXJhbSB2YWx1ZTogbXVzdCBi
ZSBvZiBhbnkgY29tYmluYXRpb24gb2YgYmFzaWMKLSAgICAgICAgICAgICAgIHB5dGhvbiB0eXBl
cywgaW5jbHVkaW5nIG5lc3RlZCB0eXBlcwotICAgICAgICAgICAgICAgbGlrZSBlLiBnLiBsaXN0
cyBvZiBkaWN0aW9uYXJpZXMuCi0gICAgICAgICIiIgotICAgICAgICBwYXRoID0gc2VsZi5fZ2V0
dmFsdWVwYXRoKGtleSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcGF0aC5kaXJwYXRoKCku
ZW5zdXJlX2RpcigpCi0gICAgICAgIGV4Y2VwdCAocHkuZXJyb3IuRUVYSVNULCBweS5lcnJvci5F
QUNDRVMpOgotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybigKLSAgICAgICAgICAgICAgICBj
b2RlPSdJOScsIG1lc3NhZ2U9J2NvdWxkIG5vdCBjcmVhdGUgY2FjaGUgcGF0aCAlcycgJSAocGF0
aCwpCi0gICAgICAgICAgICApCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgZiA9IHBhdGgub3BlbigndycpCi0gICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9U
RElSOgotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybigKLSAgICAgICAgICAgICAgICBjb2Rl
PSdJOScsIG1lc3NhZ2U9J2NhY2hlIGNvdWxkIG5vdCB3cml0ZSBwYXRoICVzJyAlIChwYXRoLCkp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB3aXRoIGY6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi50cmFjZSgiY2FjaGUtd3JpdGUgJXM6ICVyIiAlIChrZXksIHZhbHVlLCkpCi0gICAgICAgICAg
ICAgICAganNvbi5kdW1wKHZhbHVlLCBmLCBpbmRlbnQ9Miwgc29ydF9rZXlzPVRydWUpCi0KLQot
Y2xhc3MgTEZQbHVnaW46Ci0gICAgIiIiIFBsdWdpbiB3aGljaCBpbXBsZW1lbnRzIHRoZSAtLWxm
IChydW4gbGFzdC1mYWlsaW5nKSBvcHRpb24gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29uZmlnKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgYWN0aXZlX2tl
eXMgPSAnbGYnLCAnZmFpbGVkZmlyc3QnCi0gICAgICAgIHNlbGYuYWN0aXZlID0gYW55KGNvbmZp
Zy5nZXR2YWx1ZShrZXkpIGZvciBrZXkgaW4gYWN0aXZlX2tleXMpCi0gICAgICAgIHNlbGYubGFz
dGZhaWxlZCA9IGNvbmZpZy5jYWNoZS5nZXQoImNhY2hlL2xhc3RmYWlsZWQiLCB7fSkKLSAgICAg
ICAgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPSBOb25lCi0KLSAgICBkZWYgcHl0ZXN0
X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmFjdGl2ZToK
LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudDoKLSAgICAg
ICAgICAgICAgICBtb2RlID0gInJ1biBhbGwgKG5vIHJlY29yZGVkIGZhaWx1cmVzKSIKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbm91biA9ICdmYWlsdXJlJyBpZiBzZWxmLl9w
cmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9PSAxIGVsc2UgJ2ZhaWx1cmVzJwotICAgICAgICAgICAg
ICAgIHN1ZmZpeCA9ICIgZmlyc3QiIGlmIHNlbGYuY29uZmlnLmdldHZhbHVlKCJmYWlsZWRmaXJz
dCIpIGVsc2UgIiIKLSAgICAgICAgICAgICAgICBtb2RlID0gInJlcnVuIHByZXZpb3VzIHtjb3Vu
dH0ge25vdW59e3N1ZmZpeH0iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgY291bnQ9c2Vs
Zi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQsIHN1ZmZpeD1zdWZmaXgsIG5vdW49bm91bgotICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHJldHVybiAicnVuLWxhc3QtZmFpbHVyZTogJXMi
ICUgbW9kZQotCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQp
OgotICAgICAgICBpZiAocmVwb3J0LndoZW4gPT0gJ2NhbGwnIGFuZCByZXBvcnQucGFzc2VkKSBv
ciByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZC5wb3AocmVwb3J0
Lm5vZGVpZCwgTm9uZSkKLSAgICAgICAgZWxpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAg
c2VsZi5sYXN0ZmFpbGVkW3JlcG9ydC5ub2RlaWRdID0gVHJ1ZQotCi0gICAgZGVmIHB5dGVzdF9j
b2xsZWN0cmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHBhc3NlZCA9IHJlcG9ydC5vdXRj
b21lIGluICgncGFzc2VkJywgJ3NraXBwZWQnKQotICAgICAgICBpZiBwYXNzZWQ6Ci0gICAgICAg
ICAgICBpZiByZXBvcnQubm9kZWlkIGluIHNlbGYubGFzdGZhaWxlZDoKLSAgICAgICAgICAgICAg
ICBzZWxmLmxhc3RmYWlsZWQucG9wKHJlcG9ydC5ub2RlaWQpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5sYXN0ZmFpbGVkLnVwZGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgKGl0ZW0ubm9kZWlkLCBU
cnVlKQotICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiByZXBvcnQucmVzdWx0KQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkW3JlcG9ydC5ub2RlaWRdID0g
VHJ1ZQotCi0gICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlbGYsIHNlc3Np
b24sIGNvbmZpZywgaXRlbXMpOgotICAgICAgICBpZiBzZWxmLmFjdGl2ZSBhbmQgc2VsZi5sYXN0
ZmFpbGVkOgotICAgICAgICAgICAgcHJldmlvdXNseV9mYWlsZWQgPSBbXQotICAgICAgICAgICAg
cHJldmlvdXNseV9wYXNzZWQgPSBbXQotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6Ci0g
ICAgICAgICAgICAgICAgaWYgaXRlbS5ub2RlaWQgaW4gc2VsZi5sYXN0ZmFpbGVkOgotICAgICAg
ICAgICAgICAgICAgICBwcmV2aW91c2x5X2ZhaWxlZC5hcHBlbmQoaXRlbSkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5X3Bhc3NlZC5hcHBlbmQo
aXRlbSkKLSAgICAgICAgICAgIHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID0gbGVuKHBy
ZXZpb3VzbHlfZmFpbGVkKQotICAgICAgICAgICAgaWYgbm90IHByZXZpb3VzbHlfZmFpbGVkOgot
ICAgICAgICAgICAgICAgICMgcnVubmluZyBhIHN1YnNldCBvZiBhbGwgdGVzdHMgd2l0aCByZWNv
cmRlZCBmYWlsdXJlcyBvdXRzaWRlCi0gICAgICAgICAgICAgICAgIyBvZiB0aGUgc2V0IG9mIHRl
c3RzIGN1cnJlbnRseSBleGVjdXRpbmcKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
ICAgIGlmIHNlbGYuY29uZmlnLmdldHZhbHVlKCJsZiIpOgotICAgICAgICAgICAgICAgIGl0ZW1z
WzpdID0gcHJldmlvdXNseV9mYWlsZWQKLSAgICAgICAgICAgICAgICBjb25maWcuaG9vay5weXRl
c3RfZGVzZWxlY3RlZChpdGVtcz1wcmV2aW91c2x5X3Bhc3NlZCkKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgaXRlbXNbOl0gPSBwcmV2aW91c2x5X2ZhaWxlZCArIHByZXZpb3Vz
bHlfcGFzc2VkCi0KLSAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2VsZiwgc2Vzc2lvbik6
Ci0gICAgICAgIGNvbmZpZyA9IHNlbGYuY29uZmlnCi0gICAgICAgIGlmIGNvbmZpZy5nZXR2YWx1
ZSgiY2FjaGVzaG93Iikgb3IgaGFzYXR0cihjb25maWcsICJzbGF2ZWlucHV0Iik6Ci0gICAgICAg
ICAgICByZXR1cm4KLQotICAgICAgICBzYXZlZF9sYXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdl
dCgiY2FjaGUvbGFzdGZhaWxlZCIsIHt9KQotICAgICAgICBpZiBzYXZlZF9sYXN0ZmFpbGVkICE9
IHNlbGYubGFzdGZhaWxlZDoKLSAgICAgICAgICAgIGNvbmZpZy5jYWNoZS5zZXQoImNhY2hlL2xh
c3RmYWlsZWQiLCBzZWxmLmxhc3RmYWlsZWQpCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCi0gICAgZ3JvdXAu
YWRkb3B0aW9uKAotICAgICAgICAnLS1sZicsICctLWxhc3QtZmFpbGVkJywgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVzdD0ibGYiLAotICAgICAgICBoZWxwPSJyZXJ1biBvbmx5IHRoZSB0ZXN0cyB0
aGF0IGZhaWxlZCAiCi0gICAgICAgICAgICAgImF0IHRoZSBsYXN0IHJ1biAob3IgYWxsIGlmIG5v
bmUgZmFpbGVkKSIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1mZicsICctLWZh
aWxlZC1maXJzdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9ImZhaWxlZGZpcnN0IiwKLSAg
ICAgICAgaGVscD0icnVuIGFsbCB0ZXN0cyBidXQgcnVuIHRoZSBsYXN0IGZhaWx1cmVzIGZpcnN0
LiAgIgotICAgICAgICAgICAgICJUaGlzIG1heSByZS1vcmRlciB0ZXN0cyBhbmQgdGh1cyBsZWFk
IHRvICIKLSAgICAgICAgICAgICAicmVwZWF0ZWQgZml4dHVyZSBzZXR1cC90ZWFyZG93biIpCi0g
ICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAgICAnLS1jYWNoZS1zaG93JywgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVzdD0iY2FjaGVzaG93IiwKLSAgICAgICAgaGVscD0ic2hvdyBjYWNoZSBjb250
ZW50cywgZG9uJ3QgcGVyZm9ybSBjb2xsZWN0aW9uIG9yIHRlc3RzIikKLSAgICBncm91cC5hZGRv
cHRpb24oCi0gICAgICAgICctLWNhY2hlLWNsZWFyJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVz
dD0iY2FjaGVjbGVhciIsCi0gICAgICAgIGhlbHA9InJlbW92ZSBhbGwgY2FjaGUgY29udGVudHMg
YXQgc3RhcnQgb2YgdGVzdCBydW4uIikKLSAgICBwYXJzZXIuYWRkaW5pKAotICAgICAgICAiY2Fj
aGVfZGlyIiwgZGVmYXVsdD0nLmNhY2hlJywKLSAgICAgICAgaGVscD0iY2FjaGUgZGlyZWN0b3J5
IHBhdGguIikKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIGlmIGNv
bmZpZy5vcHRpb24uY2FjaGVzaG93OgotICAgICAgICBmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQg
d3JhcF9zZXNzaW9uCi0gICAgICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBjYWNoZXNo
b3cpCi0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKToKLSAgICBjb25maWcuY2FjaGUgPSBDYWNoZShjb25maWcpCi0gICAgY29u
ZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTEZQbHVnaW4oY29uZmlnKSwgImxmcGx1Z2luIikK
LQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBjYWNoZShyZXF1ZXN0KToKLSAgICAiIiIKLSAgICBS
ZXR1cm4gYSBjYWNoZSBvYmplY3QgdGhhdCBjYW4gcGVyc2lzdCBzdGF0ZSBiZXR3ZWVuIHRlc3Rp
bmcgc2Vzc2lvbnMuCi0KLSAgICBjYWNoZS5nZXQoa2V5LCBkZWZhdWx0KQotICAgIGNhY2hlLnNl
dChrZXksIHZhbHVlKQotCi0gICAgS2V5cyBtdXN0IGJlIGEgYGAvYGAgc2VwYXJhdGVkIHZhbHVl
LCB3aGVyZSB0aGUgZmlyc3QgcGFydCBpcyB1c3VhbGx5IHRoZQotICAgIG5hbWUgb2YgeW91ciBw
bHVnaW4gb3IgYXBwbGljYXRpb24gdG8gYXZvaWQgY2xhc2hlcyB3aXRoIG90aGVyIGNhY2hlIHVz
ZXJzLgotCi0gICAgVmFsdWVzIGNhbiBiZSBhbnkgb2JqZWN0IGhhbmRsZWQgYnkgdGhlIGpzb24g
c3RkbGliIG1vZHVsZS4KLSAgICAiIiIKLSAgICByZXR1cm4gcmVxdWVzdC5jb25maWcuY2FjaGUK
LQotCi1kZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0
aW9uLnZlcmJvc2U6Ci0gICAgICAgIHJlbHBhdGggPSBweS5wYXRoLmxvY2FsKCkuYmVzdHJlbHBh
dGgoY29uZmlnLmNhY2hlLl9jYWNoZWRpcikKLSAgICAgICAgcmV0dXJuICJjYWNoZWRpcjogJXMi
ICUgcmVscGF0aAotCi0KLWRlZiBjYWNoZXNob3coY29uZmlnLCBzZXNzaW9uKToKLSAgICBmcm9t
IHBwcmludCBpbXBvcnQgcHByaW50Ci0gICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigpCi0g
ICAgdHcubGluZSgiY2FjaGVkaXI6ICIgKyBzdHIoY29uZmlnLmNhY2hlLl9jYWNoZWRpcikpCi0g
ICAgaWYgbm90IGNvbmZpZy5jYWNoZS5fY2FjaGVkaXIuY2hlY2soKToKLSAgICAgICAgdHcubGlu
ZSgiY2FjaGUgaXMgZW1wdHkiKQotICAgICAgICByZXR1cm4gMAotICAgIGR1bW15ID0gb2JqZWN0
KCkKLSAgICBiYXNlZGlyID0gY29uZmlnLmNhY2hlLl9jYWNoZWRpcgotICAgIHZkaXIgPSBiYXNl
ZGlyLmpvaW4oInYiKQotICAgIHR3LnNlcCgiLSIsICJjYWNoZSB2YWx1ZXMiKQotICAgIGZvciB2
YWxwYXRoIGluIHNvcnRlZCh2ZGlyLnZpc2l0KGxhbWJkYSB4OiB4LmlzZmlsZSgpKSk6Ci0gICAg
ICAgIGtleSA9IHZhbHBhdGgucmVsdG8odmRpcikucmVwbGFjZSh2YWxwYXRoLnNlcCwgIi8iKQot
ICAgICAgICB2YWwgPSBjb25maWcuY2FjaGUuZ2V0KGtleSwgZHVtbXkpCi0gICAgICAgIGlmIHZh
bCBpcyBkdW1teToKLSAgICAgICAgICAgIHR3LmxpbmUoIiVzIGNvbnRhaW5zIHVucmVhZGFibGUg
Y29udGVudCwgIgotICAgICAgICAgICAgICAgICAgICAid2lsbCBiZSBpZ25vcmVkIiAlIGtleSkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHR3LmxpbmUoIiVzIGNvbnRhaW5zOiIgJSBrZXkp
Ci0gICAgICAgICAgICBzdHJlYW0gPSBweS5pby5UZXh0SU8oKQotICAgICAgICAgICAgcHByaW50
KHZhbCwgc3RyZWFtPXN0cmVhbSkKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHN0cmVhbS5nZXR2
YWx1ZSgpLnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIgICIgKyBsaW5l
KQotCi0gICAgZGRpciA9IGJhc2VkaXIuam9pbigiZCIpCi0gICAgaWYgZGRpci5pc2RpcigpIGFu
ZCBkZGlyLmxpc3RkaXIoKToKLSAgICAgICAgdHcuc2VwKCItIiwgImNhY2hlIGRpcmVjdG9yaWVz
IikKLSAgICAgICAgZm9yIHAgaW4gc29ydGVkKGJhc2VkaXIuam9pbigiZCIpLnZpc2l0KCkpOgot
ICAgICAgICAgICAgIyBpZiBwLmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAgICMgICAgcHJpbnQo
IiVzLyIgJSBwLnJlbHRvKGJhc2VkaXIpKQotICAgICAgICAgICAgaWYgcC5pc2ZpbGUoKToKLSAg
ICAgICAgICAgICAgICBrZXkgPSBwLnJlbHRvKGJhc2VkaXIpCi0gICAgICAgICAgICAgICAgdHcu
bGluZSgiJXMgaXMgYSBmaWxlIG9mIGxlbmd0aCAlZCIgJSAoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBrZXksIHAuc2l6ZSgpKSkKLSAgICByZXR1cm4gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9jYXB0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYXB0dXJlLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMmViZTM4YzhjMDkwMjg2Yjc3YzczOWIzMmI2
MjAzMDI5NGM3NTI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FwdHVyZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDY4
MyArMCwwIEBACi0iIiIKLXBlci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nIG1lY2hhbmlz
bS4KLQotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGNvbnRleHRs
aWIKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IGlvCi1mcm9tIGlvIGltcG9ydCBVbnN1
cHBvcnRlZE9wZXJhdGlvbgotZnJvbSB0ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5RmlsZQotCi1p
bXBvcnQgc2l4Ci1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBDYXB0
dXJlSU8KLQotCi1wYXRjaHN5c2RpY3QgPSB7MDogJ3N0ZGluJywgMTogJ3N0ZG91dCcsIDI6ICdz
dGRlcnInfQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAg
ICctLWNhcHR1cmUnLCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgZGVmYXVsdD0iZmQiIGlmIGhh
c2F0dHIob3MsICJkdXAiKSBlbHNlICJzeXMiLAotICAgICAgICBtZXRhdmFyPSJtZXRob2QiLCBj
aG9pY2VzPVsnZmQnLCAnc3lzJywgJ25vJ10sCi0gICAgICAgIGhlbHA9InBlci10ZXN0IGNhcHR1
cmluZyBtZXRob2Q6IG9uZSBvZiBmZHxzeXN8bm8uIikKLSAgICBncm91cC5fYWRkb3B0aW9uKAot
ICAgICAgICAnLXMnLCBhY3Rpb249InN0b3JlX2NvbnN0IiwgY29uc3Q9Im5vIiwgZGVzdD0iY2Fw
dHVyZSIsCi0gICAgICAgIGhlbHA9InNob3J0Y3V0IGZvciAtLWNhcHR1cmU9bm8uIikKLQotCi1A
cHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X2xvYWRfaW5pdGlh
bF9jb25mdGVzdHMoZWFybHlfY29uZmlnLCBwYXJzZXIsIGFyZ3MpOgotICAgIG5zID0gZWFybHlf
Y29uZmlnLmtub3duX2FyZ3NfbmFtZXNwYWNlCi0gICAgaWYgbnMuY2FwdHVyZSA9PSAiZmQiOgot
ICAgICAgICBfcHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3lzLnN0ZG91dCkKLSAg
ICBfY29sb3JhbWFfd29ya2Fyb3VuZCgpCi0gICAgX3JlYWRsaW5lX3dvcmthcm91bmQoKQotICAg
IHBsdWdpbm1hbmFnZXIgPSBlYXJseV9jb25maWcucGx1Z2lubWFuYWdlcgotICAgIGNhcG1hbiA9
IENhcHR1cmVNYW5hZ2VyKG5zLmNhcHR1cmUpCi0gICAgcGx1Z2lubWFuYWdlci5yZWdpc3Rlcihj
YXBtYW4sICJjYXB0dXJlbWFuYWdlciIpCi0KLSAgICAjIG1ha2Ugc3VyZSB0aGF0IGNhcHR1cmVt
YW5hZ2VyIGlzIHByb3Blcmx5IHJlc2V0IGF0IGZpbmFsIHNodXRkb3duCi0gICAgZWFybHlfY29u
ZmlnLmFkZF9jbGVhbnVwKGNhcG1hbi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcpCi0KLSAgICAjIG1h
a2Ugc3VyZSBsb2dnaW5nIGRvZXMgbm90IHJhaXNlIGV4Y2VwdGlvbnMgYXQgdGhlIGVuZAotICAg
IGRlZiBzaWxlbmNlX2xvZ2dpbmdfYXRfc2h1dGRvd24oKToKLSAgICAgICAgaWYgImxvZ2dpbmci
IGluIHN5cy5tb2R1bGVzOgotICAgICAgICAgICAgc3lzLm1vZHVsZXNbImxvZ2dpbmciXS5yYWlz
ZUV4Y2VwdGlvbnMgPSBGYWxzZQotICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChzaWxlbmNl
X2xvZ2dpbmdfYXRfc2h1dGRvd24pCi0KLSAgICAjIGZpbmFsbHkgdHJpZ2dlciBjb25mdGVzdCBs
b2FkaW5nIGJ1dCB3aGlsZSBjYXB0dXJpbmcgKGlzc3VlOTMpCi0gICAgY2FwbWFuLnN0YXJ0X2ds
b2JhbF9jYXB0dXJpbmcoKQotICAgIG91dGNvbWUgPSB5aWVsZAotICAgIG91dCwgZXJyID0gY2Fw
bWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQotICAgIGlmIG91dGNvbWUuZXhjaW5mbyBpcyBu
b3QgTm9uZToKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCi0gICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoZXJyKQotCi0KLWNsYXNzIENhcHR1cmVNYW5hZ2VyOgotICAgICIiIgotICAgIENh
cHR1cmUgcGx1Z2luLCBtYW5hZ2VzIHRoYXQgdGhlIGFwcHJvcHJpYXRlIGNhcHR1cmUgbWV0aG9k
IGlzIGVuYWJsZWQvZGlzYWJsZWQgZHVyaW5nIGNvbGxlY3Rpb24gYW5kIGVhY2gKLSAgICB0ZXN0
IHBoYXNlIChzZXR1cCwgY2FsbCwgdGVhcmRvd24pLiBBZnRlciBlYWNoIG9mIHRob3NlIHBvaW50
cywgdGhlIGNhcHR1cmVkIG91dHB1dCBpcyBvYnRhaW5lZCBhbmQKLSAgICBhdHRhY2hlZCB0byB0
aGUgY29sbGVjdGlvbi9ydW50ZXN0IHJlcG9ydC4KLQotICAgIFRoZXJlIGFyZSB0d28gbGV2ZWxz
IG9mIGNhcHR1cmU6Ci0gICAgKiBnbG9iYWw6IHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBh
bmQgY2FuIGJlIHN1cHByZXNzZWQgYnkgdGhlIGBgLXNgYCBvcHRpb24uIFRoaXMgaXMgYWx3YXlz
IGVuYWJsZWQvZGlzYWJsZWQKLSAgICAgIGR1cmluZyBjb2xsZWN0aW9uIGFuZCBlYWNoIHRlc3Qg
cGhhc2UuCi0gICAgKiBmaXh0dXJlOiB3aGVuIGEgdGVzdCBmdW5jdGlvbiBvciBvbmUgb2YgaXRz
IGZpeHR1cmUgZGVwZW5kIG9uIHRoZSBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCBmaXh0dXJlcy4g
SW4gdGhpcwotICAgICAgY2FzZSBzcGVjaWFsIGhhbmRsaW5nIGlzIG5lZWRlZCB0byBlbnN1cmUg
dGhlIGZpeHR1cmVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBnbG9iYWwgY2FwdHVyZS4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2QpOgotICAgICAgICBzZWxmLl9t
ZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IE5vbmUKLQot
ICAgIGRlZiBfZ2V0Y2FwdHVyZShzZWxmLCBtZXRob2QpOgotICAgICAgICBpZiBtZXRob2QgPT0g
ImZkIjoKLSAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVl
LCBDYXB0dXJlPUZEQ2FwdHVyZSkKLSAgICAgICAgZWxpZiBtZXRob2QgPT0gInN5cyI6Ci0gICAg
ICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1UcnVlLCBlcnI9VHJ1ZSwgQ2FwdHVyZT1T
eXNDYXB0dXJlKQotICAgICAgICBlbGlmIG1ldGhvZCA9PSAibm8iOgotICAgICAgICAgICAgcmV0
dXJuIE11bHRpQ2FwdHVyZShvdXQ9RmFsc2UsIGVycj1GYWxzZSwgaW5fPUZhbHNlKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBjYXB0dXJpbmcg
bWV0aG9kOiAlciIgJSBtZXRob2QpCi0KLSAgICBkZWYgc3RhcnRfZ2xvYmFsX2NhcHR1cmluZyhz
ZWxmKToKLSAgICAgICAgYXNzZXJ0IHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcgaXMgTm9uZQotICAg
ICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gc2VsZi5fZ2V0Y2FwdHVyZShzZWxmLl9tZXRo
b2QpCi0gICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcuc3RhcnRfY2FwdHVyaW5nKCkKLQot
ICAgIGRlZiBzdG9wX2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2ds
b2JhbF9jYXB0dXJpbmcgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2Fw
dHVyaW5nLnBvcF9vdXRlcnJfdG9fb3JpZygpCi0gICAgICAgICAgICBzZWxmLl9nbG9iYWxfY2Fw
dHVyaW5nLnN0b3BfY2FwdHVyaW5nKCkKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJp
bmcgPSBOb25lCi0KLSAgICBkZWYgcmVzdW1lX2dsb2JhbF9jYXB0dXJlKHNlbGYpOgotICAgICAg
ICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nLnJlc3VtZV9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHN1
c3BlbmRfZ2xvYmFsX2NhcHR1cmUoc2VsZiwgaXRlbT1Ob25lLCBpbl89RmFsc2UpOgotICAgICAg
ICBpZiBpdGVtIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5kZWFjdGl2YXRlX2ZpeHR1
cmUoaXRlbSkKLSAgICAgICAgY2FwID0gZ2V0YXR0cihzZWxmLCAiX2dsb2JhbF9jYXB0dXJpbmci
LCBOb25lKQotICAgICAgICBpZiBjYXAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgb3V0ZXJyID0gY2FwLnJlYWRvdXRlcnIoKQotICAgICAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgICAgICBjYXAuc3VzcGVuZF9jYXB0dXJpbmcoaW5fPWluXykKLSAg
ICAgICAgICAgIHJldHVybiBvdXRlcnIKLQotICAgIGRlZiBhY3RpdmF0ZV9maXh0dXJlKHNlbGYs
IGl0ZW0pOgotICAgICAgICAiIiJJZiB0aGUgY3VycmVudCBpdGVtIGlzIHVzaW5nIGBgY2Fwc3lz
YGAgb3IgYGBjYXBmZGBgLCBhY3RpdmF0ZSB0aGVtIHNvIHRoZXkgdGFrZSBwcmVjZWRlbmNlIG92
ZXIKLSAgICAgICAgdGhlIGdsb2JhbCBjYXB0dXJlLgotICAgICAgICAiIiIKLSAgICAgICAgZml4
dHVyZSA9IGdldGF0dHIoaXRlbSwgIl9jYXB0dXJlX2ZpeHR1cmUiLCBOb25lKQotICAgICAgICBp
ZiBmaXh0dXJlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZml4dHVyZS5fc3RhcnQoKQotCi0g
ICAgZGVmIGRlYWN0aXZhdGVfZml4dHVyZShzZWxmLCBpdGVtKToKLSAgICAgICAgIiIiRGVhY3Rp
dmF0ZXMgdGhlIGBgY2Fwc3lzYGAgb3IgYGBjYXBmZGBgIGZpeHR1cmUgb2YgdGhpcyBpdGVtLCBp
ZiBhbnkuIiIiCi0gICAgICAgIGZpeHR1cmUgPSBnZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0
dXJlIiwgTm9uZSkKLSAgICAgICAgaWYgZml4dHVyZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGZpeHR1cmUuY2xvc2UoKQotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVl
KQotICAgIGRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChzZWxmLCBjb2xsZWN0b3IpOgot
ICAgICAgICBpZiBpc2luc3RhbmNlKGNvbGxlY3RvciwgcHl0ZXN0LkZpbGUpOgotICAgICAgICAg
ICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICAgICAgb3V0Y29tZSA9IHlp
ZWxkCi0gICAgICAgICAgICBvdXQsIGVyciA9IHNlbGYuc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgp
Ci0gICAgICAgICAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQotICAgICAgICAgICAgaWYg
b3V0OgotICAgICAgICAgICAgICAgIHJlcC5zZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCBzdGRv
dXQiLCBvdXQpKQotICAgICAgICAgICAgaWYgZXJyOgotICAgICAgICAgICAgICAgIHJlcC5zZWN0
aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCBzdGRlcnIiLCBlcnIpKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgeWllbGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkK
LSAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoc2VsZiwgaXRlbSk6Ci0gICAgICAgIHNlbGYu
cmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgIyBubyBuZWVkIHRvIGFjdGl2YXRlIGEg
Y2FwdHVyZSBmaXh0dXJlIGJlY2F1c2UgdGhleSBhY3RpdmF0ZSB0aGVtc2VsdmVzIGR1cmluZyBj
cmVhdGlvbjsgdGhpcwotICAgICAgICAjIG9ubHkgbWFrZXMgc2Vuc2Ugd2hlbiBhIGZpeHR1cmUg
dXNlcyBhIGNhcHR1cmUgZml4dHVyZSwgb3RoZXJ3aXNlIHRoZSBjYXB0dXJlIGZpeHR1cmUgd2ls
bAotICAgICAgICAjIGJlIGFjdGl2YXRlZCBkdXJpbmcgcHl0ZXN0X3J1bnRlc3RfY2FsbAotICAg
ICAgICB5aWVsZAotICAgICAgICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJzZXR1
cCIpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5
dGVzdF9ydW50ZXN0X2NhbGwoc2VsZiwgaXRlbSk6Ci0gICAgICAgIHNlbGYucmVzdW1lX2dsb2Jh
bF9jYXB0dXJlKCkKLSAgICAgICAgIyBpdCBpcyBpbXBvcnRhbnQgdG8gYWN0aXZhdGUgdGhpcyBm
aXh0dXJlIGR1cmluZyB0aGUgY2FsbCBwaGFzZSBzbyBpdCBvdmVyd3JpdGVzIHRoZSAiZ2xvYmFs
IgotICAgICAgICAjIGNhcHR1cmUKLSAgICAgICAgc2VsZi5hY3RpdmF0ZV9maXh0dXJlKGl0ZW0p
Ci0gICAgICAgIHlpZWxkCi0gICAgICAgIHNlbGYuc3VzcGVuZF9jYXB0dXJlX2l0ZW0oaXRlbSwg
ImNhbGwiKQotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRl
ZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihzZWxmLCBpdGVtKToKLSAgICAgICAgc2VsZi5yZXN1
bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICBzZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkK
LSAgICAgICAgeWllbGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAi
dGVhcmRvd24iKQotCi0gICAgQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotICAgIGRl
ZiBweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBzZWxm
LnN0b3BfZ2xvYmFsX2NhcHR1cmluZygpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0
PVRydWUpCi0gICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y2luZm8pOgotICAg
ICAgICBzZWxmLnN0b3BfZ2xvYmFsX2NhcHR1cmluZygpCi0KLSAgICBkZWYgc3VzcGVuZF9jYXB0
dXJlX2l0ZW0oc2VsZiwgaXRlbSwgd2hlbiwgaW5fPUZhbHNlKToKLSAgICAgICAgb3V0LCBlcnIg
PSBzZWxmLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaXRlbSwgaW5fPWluXykKLSAgICAgICAgaXRl
bS5hZGRfcmVwb3J0X3NlY3Rpb24od2hlbiwgInN0ZG91dCIsIG91dCkKLSAgICAgICAgaXRlbS5h
ZGRfcmVwb3J0X3NlY3Rpb24od2hlbiwgInN0ZGVyciIsIGVycikKLQotCi1jYXB0dXJlX2ZpeHR1
cmVzID0geydjYXBmZCcsICdjYXBmZGJpbmFyeScsICdjYXBzeXMnLCAnY2Fwc3lzYmluYXJ5J30K
LQotCi1kZWYgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgbmFtZSk6
Ci0gICAgZml4dHVyZXMgPSBzZXQocmVxdWVzdC5maXh0dXJlbmFtZXMpICYgY2FwdHVyZV9maXh0
dXJlcyAtIHNldCgobmFtZSwpKQotICAgIGlmIGZpeHR1cmVzOgotICAgICAgICBmaXh0dXJlcyA9
IHNvcnRlZChmaXh0dXJlcykKLSAgICAgICAgZml4dHVyZXMgPSBmaXh0dXJlc1swXSBpZiBsZW4o
Zml4dHVyZXMpID09IDEgZWxzZSBmaXh0dXJlcwotICAgICAgICByYWlzZSByZXF1ZXN0LnJhaXNl
ZXJyb3IoCi0gICAgICAgICAgICAiY2Fubm90IHVzZSB7MH0gYW5kIHsxfSBhdCB0aGUgc2FtZSB0
aW1lIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgZml4dHVyZXMsIG5hbWUsCi0gICAgICAgICAg
ICApLAotICAgICAgICApCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgY2Fwc3lzKHJlcXVlc3Qp
OgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5zdGRvdXQvc3lzLnN0
ZGVyciBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2Fwc3lz
LnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwg
ZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCi0gICAg
b2JqZWN0cy4KLSAgICAiIiIKLSAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShy
ZXF1ZXN0LCAnY2Fwc3lzJykKLSAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9p
dGVtKHJlcXVlc3QsIFN5c0NhcHR1cmUpIGFzIGZpeHR1cmU6Ci0gICAgICAgIHlpZWxkIGZpeHR1
cmUKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBjYXBzeXNiaW5hcnkocmVxdWVzdCk6Ci0gICAg
IiIiRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gc3lzLnN0ZG91dC9zeXMuc3RkZXJyIGFu
ZCBtYWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91
dGVycigpYGAgbWV0aG9kIGNhbGxzCi0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAg
dHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGBieXRlc2BgCi0gICAgb2JqZWN0
cy4KLSAgICAiIiIKLSAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0
LCAnY2Fwc3lzYmluYXJ5JykKLSAgICAjIEN1cnJlbnRseSwgdGhlIGltcGxlbWVudGF0aW9uIHVz
ZXMgdGhlIHB5dGhvbjMgc3BlY2lmaWMgYC5idWZmZXJgCi0gICAgIyBwcm9wZXJ0eSBvZiBDYXB0
dXJlSU8uCi0gICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6Ci0gICAgICAgIHJhaXNlIHJl
cXVlc3QucmFpc2VlcnJvcignY2Fwc3lzYmluYXJ5IGlzIG9ubHkgc3VwcG9ydGVkIG9uIHB5dGhv
biAzJykKLSAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVtKHJlcXVlc3Qs
IFN5c0NhcHR1cmVCaW5hcnkpIGFzIGZpeHR1cmU6Ci0gICAgICAgIHlpZWxkIGZpeHR1cmUKLQot
Ci1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBjYXBmZChyZXF1ZXN0KToKLSAgICAiIiJFbmFibGUgY2Fw
dHVyaW5nIG9mIHdyaXRlcyB0byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKLSAg
ICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZkLnJlYWRvdXRlcnIoKWBgIG1l
dGhvZCBjYWxscwotICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBv
dXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCi0gICAgb2JqZWN0cy4KLSAgICAiIiIK
LSAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCAnY2FwZmQnKQot
ICAgIGlmIG5vdCBoYXNhdHRyKG9zLCAnZHVwJyk6Ci0gICAgICAgIHB5dGVzdC5za2lwKCJjYXBm
ZCBmaXh0dXJlIG5lZWRzIG9zLmR1cCBmdW5jdGlvbiB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGlu
IHRoaXMgc3lzdGVtIikKLSAgICB3aXRoIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9pdGVt
KHJlcXVlc3QsIEZEQ2FwdHVyZSkgYXMgZml4dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQot
Ci0KLUBweXRlc3QuZml4dHVyZQotZGVmIGNhcGZkYmluYXJ5KHJlcXVlc3QpOgotICAgICIiIkVu
YWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGUgdG8gZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBt
YWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZGJpbmFyeS5yZWFk
b3V0ZXJyYGAgbWV0aG9kIGNhbGxzCi0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAg
dHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUKLSAgICBgYGJ5dGVzYGAgb2JqZWN0
cy4KLSAgICAiIiIKLSAgICBfZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0
LCAnY2FwZmRiaW5hcnknKQotICAgIGlmIG5vdCBoYXNhdHRyKG9zLCAnZHVwJyk6Ci0gICAgICAg
IHB5dGVzdC5za2lwKCJjYXBmZGJpbmFyeSBmaXh0dXJlIG5lZWRzIG9zLmR1cCBmdW5jdGlvbiB3
aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIHRoaXMgc3lzdGVtIikKLSAgICB3aXRoIF9pbnN0YWxs
X2NhcHR1cmVfZml4dHVyZV9vbl9pdGVtKHJlcXVlc3QsIEZEQ2FwdHVyZUJpbmFyeSkgYXMgZml4
dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQotCi0KLUBjb250ZXh0bGliLmNvbnRleHRtYW5h
Z2VyCi1kZWYgX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgY2FwdHVy
ZV9jbGFzcyk6Ci0gICAgIiIiCi0gICAgQ29udGV4dCBtYW5hZ2VyIHdoaWNoIGNyZWF0ZXMgYSBg
YENhcHR1cmVGaXh0dXJlYGAgaW5zdGFuY2UgYW5kICJpbnN0YWxscyIgaXQgb24KLSAgICB0aGUg
aXRlbS9ub2RlIG9mIHRoZSBnaXZlbiByZXF1ZXN0LiBVc2VkIGJ5IGBgY2Fwc3lzYGAgYW5kIGBg
Y2FwZmRgYC4KLQotICAgIFRoZSBDYXB0dXJlRml4dHVyZSBpcyBhZGRlZCBhcyBhdHRyaWJ1dGUg
b2YgdGhlIGl0ZW0gYmVjYXVzZSBpdCBuZWVkcyB0byBhY2Nlc3NlZAotICAgIGJ5IGBgQ2FwdHVy
ZU1hbmFnZXJgYCBkdXJpbmcgaXRzIGBgcHl0ZXN0X3J1bnRlc3RfKmBgIGhvb2tzLgotICAgICIi
IgotICAgIHJlcXVlc3Qubm9kZS5fY2FwdHVyZV9maXh0dXJlID0gZml4dHVyZSA9IENhcHR1cmVG
aXh0dXJlKGNhcHR1cmVfY2xhc3MsIHJlcXVlc3QpCi0gICAgY2FwbWFuYWdlciA9IHJlcXVlc3Qu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdjYXB0dXJlbWFuYWdlcicpCi0gICAgIyBu
ZWVkIHRvIGFjdGl2ZSB0aGlzIGZpeHR1cmUgcmlnaHQgYXdheSBpbiBjYXNlIGl0IGlzIGJlaW5n
IHVzZWQgYnkgYW5vdGhlciBmaXh0dXJlIChzZXR1cCBwaGFzZSkKLSAgICAjIGlmIHRoaXMgZml4
dHVyZSBpcyBiZWluZyB1c2VkIG9ubHkgYnkgYSB0ZXN0IGZ1bmN0aW9uIChjYWxsIHBoYXNlKSwg
dGhlbiB3ZSB3b3VsZG4ndCBuZWVkIHRoaXMKLSAgICAjIGFjdGl2YXRpb24sIGJ1dCBpdCBkb2Vz
bid0IGh1cnQKLSAgICBjYXBtYW5hZ2VyLmFjdGl2YXRlX2ZpeHR1cmUocmVxdWVzdC5ub2RlKQot
ICAgIHlpZWxkIGZpeHR1cmUKLSAgICBmaXh0dXJlLmNsb3NlKCkKLSAgICBkZWwgcmVxdWVzdC5u
b2RlLl9jYXB0dXJlX2ZpeHR1cmUKLQotCi1jbGFzcyBDYXB0dXJlRml4dHVyZToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgY2FwdHVyZWNsYXNzLCByZXF1ZXN0KToKLSAgICAgICAgc2VsZi5jYXB0
dXJlY2xhc3MgPSBjYXB0dXJlY2xhc3MKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVzdAot
Ci0gICAgZGVmIF9zdGFydChzZWxmKToKLSAgICAgICAgc2VsZi5fY2FwdHVyZSA9IE11bHRpQ2Fw
dHVyZShvdXQ9VHJ1ZSwgZXJyPVRydWUsIGluXz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDYXB0dXJlPXNlbGYuY2FwdHVyZWNsYXNzKQotICAgICAgICBzZWxm
Ll9jYXB0dXJlLnN0YXJ0X2NhcHR1cmluZygpCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAg
ICAgIGNhcCA9IHNlbGYuX19kaWN0X18ucG9wKCJfY2FwdHVyZSIsIE5vbmUpCi0gICAgICAgIGlm
IGNhcCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX291dGVyciA9IGNhcC5wb3Bfb3V0
ZXJyX3RvX29yaWcoKQotICAgICAgICAgICAgY2FwLnN0b3BfY2FwdHVyaW5nKCkKLQotICAgIGRl
ZiByZWFkb3V0ZXJyKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fY2FwdHVyZS5yZWFkb3V0ZXJyKCkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX291dGVycgotCi0gICAgQGNvbnRleHRsaWIuY29udGV4
dG1hbmFnZXIKLSAgICBkZWYgZGlzYWJsZWQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmUu
c3VzcGVuZF9jYXB0dXJpbmcoKQotICAgICAgICBjYXBtYW5hZ2VyID0gc2VsZi5yZXF1ZXN0LmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVyZW1hbmFnZXInKQotICAgICAgICBj
YXBtYW5hZ2VyLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaXRlbT1Ob25lLCBpbl89RmFsc2UpCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHlpZWxkCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBjYXBtYW5hZ2VyLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICAgICBzZWxm
Ll9jYXB0dXJlLnJlc3VtZV9jYXB0dXJpbmcoKQotCi0KLWRlZiBzYWZlX3RleHRfZHVwZmlsZShm
LCBtb2RlLCBkZWZhdWx0X2VuY29kaW5nPSJVVEY4Iik6Ci0gICAgIiIiIHJldHVybiBhIG9wZW4g
dGV4dCBmaWxlIG9iamVjdCB0aGF0J3MgYSBkdXBsaWNhdGUgb2YgZiBvbiB0aGUKLSAgICAgICAg
RkQtbGV2ZWwgaWYgcG9zc2libGUuCi0gICAgIiIiCi0gICAgZW5jb2RpbmcgPSBnZXRhdHRyKGYs
ICJlbmNvZGluZyIsIE5vbmUpCi0gICAgdHJ5OgotICAgICAgICBmZCA9IGYuZmlsZW5vKCkKLSAg
ICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBpZiAiYiIgbm90IGluIGdldGF0dHIoZiwgIm1v
ZGUiLCAiIikgYW5kIGhhc2F0dHIoZiwgImVuY29kaW5nIik6Ci0gICAgICAgICAgICAjIHdlIHNl
ZW0gdG8gaGF2ZSBhIHRleHQgc3RyZWFtLCBsZXQncyBqdXN0IHVzZSBpdAotICAgICAgICAgICAg
cmV0dXJuIGYKLSAgICBlbHNlOgotICAgICAgICBuZXdmZCA9IG9zLmR1cChmZCkKLSAgICAgICAg
aWYgImIiIG5vdCBpbiBtb2RlOgotICAgICAgICAgICAgbW9kZSArPSAiYiIKLSAgICAgICAgZiA9
IG9zLmZkb3BlbihuZXdmZCwgbW9kZSwgMCkgICMgbm8gYnVmZmVyaW5nCi0gICAgcmV0dXJuIEVu
Y29kZWRGaWxlKGYsIGVuY29kaW5nIG9yIGRlZmF1bHRfZW5jb2RpbmcpCi0KLQotY2xhc3MgRW5j
b2RlZEZpbGUob2JqZWN0KToKLSAgICBlcnJvcnMgPSAic3RyaWN0IiAgIyBwb3NzaWJseSBuZWVk
ZWQgYnkgcHkzIGNvZGUgKGlzc3VlNTU1KQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGJ1ZmZl
ciwgZW5jb2RpbmcpOgotICAgICAgICBzZWxmLmJ1ZmZlciA9IGJ1ZmZlcgotICAgICAgICBzZWxm
LmVuY29kaW5nID0gZW5jb2RpbmcKLQotICAgIGRlZiB3cml0ZShzZWxmLCBvYmopOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKG9iaiwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgICAgICBvYmogPSBv
YmouZW5jb2RlKHNlbGYuZW5jb2RpbmcsICJyZXBsYWNlIikKLSAgICAgICAgc2VsZi5idWZmZXIu
d3JpdGUob2JqKQotCi0gICAgZGVmIHdyaXRlbGluZXMoc2VsZiwgbGluZWxpc3QpOgotICAgICAg
ICBkYXRhID0gJycuam9pbihsaW5lbGlzdCkKLSAgICAgICAgc2VsZi53cml0ZShkYXRhKQotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgICIiIkVuc3VyZSB0aGF0
IGZpbGUubmFtZSBpcyBhIHN0cmluZy4iIiIKLSAgICAgICAgcmV0dXJuIHJlcHIoc2VsZi5idWZm
ZXIpCi0KLSAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBn
ZXRhdHRyKG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsICJidWZmZXIiKSwgbmFtZSkKLQot
Ci1DYXB0dXJlUmVzdWx0ID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiQ2FwdHVyZVJlc3VsdCIs
IFsib3V0IiwgImVyciJdKQotCi0KLWNsYXNzIE11bHRpQ2FwdHVyZShvYmplY3QpOgotICAgIG91
dCA9IGVyciA9IGluXyA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXQ9VHJ1ZSwg
ZXJyPVRydWUsIGluXz1UcnVlLCBDYXB0dXJlPU5vbmUpOgotICAgICAgICBpZiBpbl86Ci0gICAg
ICAgICAgICBzZWxmLmluXyA9IENhcHR1cmUoMCkKLSAgICAgICAgaWYgb3V0OgotICAgICAgICAg
ICAgc2VsZi5vdXQgPSBDYXB0dXJlKDEpCi0gICAgICAgIGlmIGVycjoKLSAgICAgICAgICAgIHNl
bGYuZXJyID0gQ2FwdHVyZSgyKQotCi0gICAgZGVmIHN0YXJ0X2NhcHR1cmluZyhzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5pbl86Ci0gICAgICAgICAgICBzZWxmLmluXy5zdGFydCgpCi0gICAgICAg
IGlmIHNlbGYub3V0OgotICAgICAgICAgICAgc2VsZi5vdXQuc3RhcnQoKQotICAgICAgICBpZiBz
ZWxmLmVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLnN0YXJ0KCkKLQotICAgIGRlZiBwb3Bfb3V0
ZXJyX3RvX29yaWcoc2VsZik6Ci0gICAgICAgICIiIiBwb3AgY3VycmVudCBzbmFwc2hvdCBvdXQv
ZXJyIGNhcHR1cmUgYW5kIGZsdXNoIHRvIG9yaWcgc3RyZWFtcy4gIiIiCi0gICAgICAgIG91dCwg
ZXJyID0gc2VsZi5yZWFkb3V0ZXJyKCkKLSAgICAgICAgaWYgb3V0OgotICAgICAgICAgICAgc2Vs
Zi5vdXQud3JpdGVvcmcob3V0KQotICAgICAgICBpZiBlcnI6Ci0gICAgICAgICAgICBzZWxmLmVy
ci53cml0ZW9yZyhlcnIpCi0gICAgICAgIHJldHVybiBvdXQsIGVycgotCi0gICAgZGVmIHN1c3Bl
bmRfY2FwdHVyaW5nKHNlbGYsIGluXz1GYWxzZSk6Ci0gICAgICAgIGlmIHNlbGYub3V0OgotICAg
ICAgICAgICAgc2VsZi5vdXQuc3VzcGVuZCgpCi0gICAgICAgIGlmIHNlbGYuZXJyOgotICAgICAg
ICAgICAgc2VsZi5lcnIuc3VzcGVuZCgpCi0gICAgICAgIGlmIGluXyBhbmQgc2VsZi5pbl86Ci0g
ICAgICAgICAgICBzZWxmLmluXy5zdXNwZW5kKCkKLSAgICAgICAgICAgIHNlbGYuX2luX3N1c3Bl
bmRlZCA9IFRydWUKLQotICAgIGRlZiByZXN1bWVfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICBp
ZiBzZWxmLm91dDoKLSAgICAgICAgICAgIHNlbGYub3V0LnJlc3VtZSgpCi0gICAgICAgIGlmIHNl
bGYuZXJyOgotICAgICAgICAgICAgc2VsZi5lcnIucmVzdW1lKCkKLSAgICAgICAgaWYgaGFzYXR0
cihzZWxmLCAiX2luX3N1c3BlbmRlZCIpOgotICAgICAgICAgICAgc2VsZi5pbl8ucmVzdW1lKCkK
LSAgICAgICAgICAgIGRlbCBzZWxmLl9pbl9zdXNwZW5kZWQKLQotICAgIGRlZiBzdG9wX2NhcHR1
cmluZyhzZWxmKToKLSAgICAgICAgIiIiIHN0b3AgY2FwdHVyaW5nIGFuZCByZXNldCBjYXB0dXJp
bmcgc3RyZWFtcyAiIiIKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX3Jlc2V0Jyk6Ci0gICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3YXMgYWxyZWFkeSBzdG9wcGVkIikKLSAgICAgICAg
c2VsZi5fcmVzZXQgPSBUcnVlCi0gICAgICAgIGlmIHNlbGYub3V0OgotICAgICAgICAgICAgc2Vs
Zi5vdXQuZG9uZSgpCi0gICAgICAgIGlmIHNlbGYuZXJyOgotICAgICAgICAgICAgc2VsZi5lcnIu
ZG9uZSgpCi0gICAgICAgIGlmIHNlbGYuaW5fOgotICAgICAgICAgICAgc2VsZi5pbl8uZG9uZSgp
Ci0KLSAgICBkZWYgcmVhZG91dGVycihzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBzbmFwc2hv
dCB1bmljb2RlIHZhbHVlIG9mIHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5ncy4gIiIiCi0gICAgICAg
IHJldHVybiBDYXB0dXJlUmVzdWx0KHNlbGYub3V0LnNuYXAoKSBpZiBzZWxmLm91dCBpcyBub3Qg
Tm9uZSBlbHNlICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmVyci5zbmFw
KCkgaWYgc2VsZi5lcnIgaXMgbm90IE5vbmUgZWxzZSAiIikKLQotCi1jbGFzcyBOb0NhcHR1cmU6
Ci0gICAgX19pbml0X18gPSBzdGFydCA9IGRvbmUgPSBzdXNwZW5kID0gcmVzdW1lID0gbGFtYmRh
ICphcmdzOiBOb25lCi0KLQotY2xhc3MgRkRDYXB0dXJlQmluYXJ5OgotICAgICIiIkNhcHR1cmUg
SU8gdG8vZnJvbSBhIGdpdmVuIG9zLWxldmVsIGZpbGVkZXNjcmlwdG9yLgotCi0gICAgc25hcCgp
IHByb2R1Y2VzIGBieXRlc2AKLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJn
ZXRmZCwgdG1wZmlsZT1Ob25lKToKLSAgICAgICAgc2VsZi50YXJnZXRmZCA9IHRhcmdldGZkCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYudGFyZ2V0ZmRfc2F2ZSA9IG9zLmR1cChzZWxm
LnRhcmdldGZkKQotICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgICAgIHNlbGYuc3Rh
cnQgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgICAgIHNlbGYuZG9uZSA9IGxhbWJkYTogTm9uZQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgdGFyZ2V0ZmQgPT0gMDoKLSAgICAgICAgICAg
ICAgICBhc3NlcnQgbm90IHRtcGZpbGUsICJjYW5ub3Qgc2V0IHRtcGZpbGUgd2l0aCBzdGRpbiIK
LSAgICAgICAgICAgICAgICB0bXBmaWxlID0gb3Blbihvcy5kZXZudWxsLCAiciIpCi0gICAgICAg
ICAgICAgICAgc2VsZi5zeXNjYXB0dXJlID0gU3lzQ2FwdHVyZSh0YXJnZXRmZCkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgdG1wZmlsZSBpcyBOb25lOgotICAgICAgICAg
ICAgICAgICAgICBmID0gVGVtcG9yYXJ5RmlsZSgpCi0gICAgICAgICAgICAgICAgICAgIHdpdGgg
ZjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcGZpbGUgPSBzYWZlX3RleHRfZHVwZmlsZShm
LCBtb2RlPSJ3YisiKQotICAgICAgICAgICAgICAgIGlmIHRhcmdldGZkIGluIHBhdGNoc3lzZGlj
dDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zeXNjYXB0dXJlID0gU3lzQ2FwdHVyZSh0YXJn
ZXRmZCwgdG1wZmlsZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBzZWxmLnN5c2NhcHR1cmUgPSBOb0NhcHR1cmUoKQotICAgICAgICAgICAgc2VsZi50bXBmaWxl
ID0gdG1wZmlsZQotICAgICAgICAgICAgc2VsZi50bXBmaWxlX2ZkID0gdG1wZmlsZS5maWxlbm8o
KQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxGRENhcHR1cmUg
JXMgb2xkZmQ9JXM+IiAlIChzZWxmLnRhcmdldGZkLCBzZWxmLnRhcmdldGZkX3NhdmUpCi0KLSAg
ICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgICIiIiBTdGFydCBjYXB0dXJpbmcgb24gdGFyZ2V0
ZmQgdXNpbmcgbWVtb3JpemVkIHRtcGZpbGUuICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBvcy5mc3RhdChzZWxmLnRhcmdldGZkX3NhdmUpCi0gICAgICAgIGV4Y2VwdCAoQXR0cmlidXRl
RXJyb3IsIE9TRXJyb3IpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic2F2ZWQgZmls
ZWRlc2NyaXB0b3Igbm90IHZhbGlkIGFueW1vcmUiKQotICAgICAgICBvcy5kdXAyKHNlbGYudG1w
ZmlsZV9mZCwgc2VsZi50YXJnZXRmZCkKLSAgICAgICAgc2VsZi5zeXNjYXB0dXJlLnN0YXJ0KCkK
LQotICAgIGRlZiBzbmFwKHNlbGYpOgotICAgICAgICBzZWxmLnRtcGZpbGUuc2VlaygwKQotICAg
ICAgICByZXMgPSBzZWxmLnRtcGZpbGUucmVhZCgpCi0gICAgICAgIHNlbGYudG1wZmlsZS5zZWVr
KDApCi0gICAgICAgIHNlbGYudG1wZmlsZS50cnVuY2F0ZSgpCi0gICAgICAgIHJldHVybiByZXMK
LQotICAgIGRlZiBkb25lKHNlbGYpOgotICAgICAgICAiIiIgc3RvcCBjYXB0dXJpbmcsIHJlc3Rv
cmUgc3RyZWFtcywgcmV0dXJuIG9yaWdpbmFsIGNhcHR1cmUgZmlsZSwKLSAgICAgICAgc2Vla2Vk
IHRvIHBvc2l0aW9uIHplcm8uICIiIgotICAgICAgICB0YXJnZXRmZF9zYXZlID0gc2VsZi5fX2Rp
Y3RfXy5wb3AoInRhcmdldGZkX3NhdmUiKQotICAgICAgICBvcy5kdXAyKHRhcmdldGZkX3NhdmUs
IHNlbGYudGFyZ2V0ZmQpCi0gICAgICAgIG9zLmNsb3NlKHRhcmdldGZkX3NhdmUpCi0gICAgICAg
IHNlbGYuc3lzY2FwdHVyZS5kb25lKCkKLSAgICAgICAgc2VsZi50bXBmaWxlLmNsb3NlKCkKLQot
ICAgIGRlZiBzdXNwZW5kKHNlbGYpOgotICAgICAgICBzZWxmLnN5c2NhcHR1cmUuc3VzcGVuZCgp
Ci0gICAgICAgIG9zLmR1cDIoc2VsZi50YXJnZXRmZF9zYXZlLCBzZWxmLnRhcmdldGZkKQotCi0g
ICAgZGVmIHJlc3VtZShzZWxmKToKLSAgICAgICAgc2VsZi5zeXNjYXB0dXJlLnJlc3VtZSgpCi0g
ICAgICAgIG9zLmR1cDIoc2VsZi50bXBmaWxlX2ZkLCBzZWxmLnRhcmdldGZkKQotCi0gICAgZGVm
IHdyaXRlb3JnKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiIgd3JpdGUgdG8gb3JpZ2luYWwgZmls
ZSBkZXNjcmlwdG9yLiAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBzaXgudGV4dF90
eXBlKToKLSAgICAgICAgICAgIGRhdGEgPSBkYXRhLmVuY29kZSgidXRmOCIpICAjIFhYWCB1c2Ug
ZW5jb2Rpbmcgb2Ygb3JpZ2luYWwgc3RyZWFtCi0gICAgICAgIG9zLndyaXRlKHNlbGYudGFyZ2V0
ZmRfc2F2ZSwgZGF0YSkKLQotCi1jbGFzcyBGRENhcHR1cmUoRkRDYXB0dXJlQmluYXJ5KToKLSAg
ICAiIiJDYXB0dXJlIElPIHRvL2Zyb20gYSBnaXZlbiBvcy1sZXZlbCBmaWxlZGVzY3JpcHRvci4K
LQotICAgIHNuYXAoKSBwcm9kdWNlcyB0ZXh0Ci0gICAgIiIiCi0gICAgZGVmIHNuYXAoc2VsZik6
Ci0gICAgICAgIHJlcyA9IEZEQ2FwdHVyZUJpbmFyeS5zbmFwKHNlbGYpCi0gICAgICAgIGVuYyA9
IGdldGF0dHIoc2VsZi50bXBmaWxlLCAiZW5jb2RpbmciLCBOb25lKQotICAgICAgICBpZiBlbmMg
YW5kIGlzaW5zdGFuY2UocmVzLCBieXRlcyk6Ci0gICAgICAgICAgICByZXMgPSBzaXgudGV4dF90
eXBlKHJlcywgZW5jLCAicmVwbGFjZSIpCi0gICAgICAgIHJldHVybiByZXMKLQotCi1jbGFzcyBT
eXNDYXB0dXJlOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmZCwgdG1wZmlsZT1Ob25lKToKLSAg
ICAgICAgbmFtZSA9IHBhdGNoc3lzZGljdFtmZF0KLSAgICAgICAgc2VsZi5fb2xkID0gZ2V0YXR0
cihzeXMsIG5hbWUpCi0gICAgICAgIHNlbGYubmFtZSA9IG5hbWUKLSAgICAgICAgaWYgdG1wZmls
ZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgbmFtZSA9PSAic3RkaW4iOgotICAgICAgICAgICAg
ICAgIHRtcGZpbGUgPSBEb250UmVhZEZyb21JbnB1dCgpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHRtcGZpbGUgPSBDYXB0dXJlSU8oKQotICAgICAgICBzZWxmLnRtcGZpbGUg
PSB0bXBmaWxlCi0KLSAgICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIHNldGF0dHIoc3lzLCBz
ZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKLQotICAgIGRlZiBzbmFwKHNlbGYpOgotICAgICAgICBy
ZXMgPSBzZWxmLnRtcGZpbGUuZ2V0dmFsdWUoKQotICAgICAgICBzZWxmLnRtcGZpbGUuc2Vlaygw
KQotICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQotICAgICAgICByZXR1cm4gcmVzCi0K
LSAgICBkZWYgZG9uZShzZWxmKToKLSAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYubmFtZSwgc2Vs
Zi5fb2xkKQotICAgICAgICBkZWwgc2VsZi5fb2xkCi0gICAgICAgIHNlbGYudG1wZmlsZS5jbG9z
ZSgpCi0KLSAgICBkZWYgc3VzcGVuZChzZWxmKToKLSAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYu
bmFtZSwgc2VsZi5fb2xkKQotCi0gICAgZGVmIHJlc3VtZShzZWxmKToKLSAgICAgICAgc2V0YXR0
cihzeXMsIHNlbGYubmFtZSwgc2VsZi50bXBmaWxlKQotCi0gICAgZGVmIHdyaXRlb3JnKHNlbGYs
IGRhdGEpOgotICAgICAgICBzZWxmLl9vbGQud3JpdGUoZGF0YSkKLSAgICAgICAgc2VsZi5fb2xk
LmZsdXNoKCkKLQotCi1jbGFzcyBTeXNDYXB0dXJlQmluYXJ5KFN5c0NhcHR1cmUpOgotICAgIGRl
ZiBzbmFwKHNlbGYpOgotICAgICAgICByZXMgPSBzZWxmLnRtcGZpbGUuYnVmZmVyLmdldHZhbHVl
KCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnRy
dW5jYXRlKCkKLSAgICAgICAgcmV0dXJuIHJlcwotCi0KLWNsYXNzIERvbnRSZWFkRnJvbUlucHV0
OgotICAgICIiIlRlbXBvcmFyeSBzdHViIGNsYXNzLiAgSWRlYWxseSB3aGVuIHN0ZGluIGlzIGFj
Y2Vzc2VkLCB0aGUKLSAgICBjYXB0dXJpbmcgc2hvdWxkIGJlIHR1cm5lZCBvZmYsIHdpdGggcG9z
c2libHkgYWxsIGRhdGEgY2FwdHVyZWQKLSAgICBzbyBmYXIgc2VudCB0byB0aGUgc2NyZWVuLiAg
VGhpcyBzaG91bGQgYmUgY29uZmlndXJhYmxlLCB0aG91Z2gsCi0gICAgYmVjYXVzZSBpbiBhdXRv
bWF0ZWQgdGVzdCBydW5zIGl0IGlzIGJldHRlciB0byBjcmFzaCB0aGFuCi0gICAgaGFuZyBpbmRl
ZmluaXRlbHkuCi0gICAgIiIiCi0KLSAgICBlbmNvZGluZyA9IE5vbmUKLQotICAgIGRlZiByZWFk
KHNlbGYsICphcmdzKToKLSAgICAgICAgcmFpc2UgSU9FcnJvcigicmVhZGluZyBmcm9tIHN0ZGlu
IHdoaWxlIG91dHB1dCBpcyBjYXB0dXJlZCIpCi0gICAgcmVhZGxpbmUgPSByZWFkCi0gICAgcmVh
ZGxpbmVzID0gcmVhZAotICAgIF9faXRlcl9fID0gcmVhZAotCi0gICAgZGVmIGZpbGVubyhzZWxm
KToKLSAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRPcGVyYXRpb24oInJlZGlyZWN0ZWQgc3RkaW4g
aXMgcHNldWRvZmlsZSwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFz
IG5vIGZpbGVubygpIikKLQotICAgIGRlZiBpc2F0dHkoc2VsZik6Ci0gICAgICAgIHJldHVybiBG
YWxzZQotCi0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgYnVmZmVyKHNlbGYpOgotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49
ICgzLCAwKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigncmVkaXJlY3RlZCBzdGRpbiBoYXMgbm8gYXR0cmli
dXRlIGJ1ZmZlcicpCi0KLQotZGVmIF9jb2xvcmFtYV93b3JrYXJvdW5kKCk6Ci0gICAgIiIiCi0g
ICAgRW5zdXJlIGNvbG9yYW1hIGlzIGltcG9ydGVkIHNvIHRoYXQgaXQgYXR0YWNoZXMgdG8gdGhl
IGNvcnJlY3Qgc3RkaW8KLSAgICBoYW5kbGVzIG9uIFdpbmRvd3MuCi0KLSAgICBjb2xvcmFtYSB1
c2VzIHRoZSB0ZXJtaW5hbCBvbiBpbXBvcnQgdGltZS4gU28gaWYgc29tZXRoaW5nIGRvZXMgdGhl
Ci0gICAgZmlyc3QgaW1wb3J0IG9mIGNvbG9yYW1hIHdoaWxlIEkvTyBjYXB0dXJlIGlzIGFjdGl2
ZSwgY29sb3JhbWEgd2lsbAotICAgIGZhaWwgaW4gdmFyaW91cyB3YXlzLgotICAgICIiIgotCi0g
ICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpOgotICAgICAgICByZXR1
cm4KLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBjb2xvcmFtYSAgIyBub3FhCi0gICAgZXhjZXB0
IEltcG9ydEVycm9yOgotICAgICAgICBwYXNzCi0KLQotZGVmIF9yZWFkbGluZV93b3JrYXJvdW5k
KCk6Ci0gICAgIiIiCi0gICAgRW5zdXJlIHJlYWRsaW5lIGlzIGltcG9ydGVkIHNvIHRoYXQgaXQg
YXR0YWNoZXMgdG8gdGhlIGNvcnJlY3Qgc3RkaW8KLSAgICBoYW5kbGVzIG9uIFdpbmRvd3MuCi0K
LSAgICBQZGIgdXNlcyByZWFkbGluZSBzdXBwb3J0IHdoZXJlIGF2YWlsYWJsZS0td2hlbiBub3Qg
cnVubmluZyBmcm9tIHRoZSBQeXRob24KLSAgICBwcm9tcHQsIHRoZSByZWFkbGluZSBtb2R1bGUg
aXMgbm90IGltcG9ydGVkIHVudGlsIHJ1bm5pbmcgdGhlIHBkYiBSRVBMLiAgSWYKLSAgICBydW5u
aW5nIHB5dGVzdCB3aXRoIHRoZSAtLXBkYiBvcHRpb24gdGhpcyBtZWFucyB0aGUgcmVhZGxpbmUg
bW9kdWxlIGlzIG5vdAotICAgIGltcG9ydGVkIHVudGlsIGFmdGVyIEkvTyBjYXB0dXJlIGhhcyBi
ZWVuIHN0YXJ0ZWQuCi0KLSAgICBUaGlzIGlzIGEgcHJvYmxlbSBmb3IgcHlyZWFkbGluZSwgd2hp
Y2ggaXMgb2Z0ZW4gdXNlZCB0byBpbXBsZW1lbnQgcmVhZGxpbmUKLSAgICBzdXBwb3J0IG9uIFdp
bmRvd3MsIGFzIGl0IGRvZXMgbm90IGF0dGFjaCB0byB0aGUgY29ycmVjdCBoYW5kbGVzIGZvciBz
dGRvdXQKLSAgICBhbmQvb3Igc3RkaW4gaWYgdGhleSBoYXZlIGJlZW4gcmVkaXJlY3RlZCBieSB0
aGUgRkRDYXB0dXJlIG1lY2hhbmlzbS4gIFRoaXMKLSAgICB3b3JrYXJvdW5kIGVuc3VyZXMgdGhh
dCByZWFkbGluZSBpcyBpbXBvcnRlZCBiZWZvcmUgSS9PIGNhcHR1cmUgaXMgc2V0dXAgc28KLSAg
ICB0aGF0IGl0IGNhbiBhdHRhY2ggdG8gdGhlIGFjdHVhbCBzdGRpbi9vdXQgZm9yIHRoZSBjb25z
b2xlLgotCi0gICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxs
LzEyODEKLSAgICAiIiIKLQotICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2lu
MzInKToKLSAgICAgICAgcmV0dXJuCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVhZGxpbmUg
ICMgbm9xYQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcwotCi0KLWRlZiBf
cHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQoc3RyZWFtKToKLSAgICAiIiIKLSAgICBQ
eXRob24gMy42IGltcGxlbWVudGVkIHVuaWNvZGUgY29uc29sZSBoYW5kbGluZyBmb3IgV2luZG93
cy4gVGhpcyB3b3JrcwotICAgIGJ5IHJlYWRpbmcvd3JpdGluZyB0byB0aGUgcmF3IGNvbnNvbGUg
aGFuZGxlIHVzaW5nCi0gICAgYGB7UmVhZCxXcml0ZX1Db25zb2xlV2BgLgotCi0gICAgVGhlIHBy
b2JsZW0gaXMgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gYGBkdXAyYGAgb3ZlciB0aGUgc3RkaW8gZmls
ZQotICAgIGRlc2NyaXB0b3JzIHdoZW4gZG9pbmcgYGBGRENhcHR1cmVgYCBhbmQgdGhpcyB3aWxs
IGBgQ2xvc2VIYW5kbGVgYCB0aGUKLSAgICBoYW5kbGVzIHVzZWQgYnkgUHl0aG9uIHRvIHdyaXRl
IHRvIHRoZSBjb25zb2xlLiBUaG91Z2ggdGhlcmUgaXMgc3RpbGwgc29tZQotICAgIHdlaXJkbmVz
cyBhbmQgdGhlIGNvbnNvbGUgaGFuZGxlIHNlZW1zIHRvIG9ubHkgYmUgY2xvc2VkIHJhbmRvbWx5
IGFuZCBub3QKLSAgICBvbiB0aGUgZmlyc3QgY2FsbCB0byBgYENsb3NlSGFuZGxlYGAsIG9yIG1h
eWJlIGl0IGdldHMgcmVvcGVuZWQgd2l0aCB0aGUKLSAgICBzYW1lIGhhbmRsZSB2YWx1ZSB3aGVu
IHdlIHN1c3BlbmQgY2FwdHVyaW5nLgotCi0gICAgVGhlIHdvcmthcm91bmQgaW4gdGhpcyBjYXNl
IHdpbGwgcmVvcGVuIHN0ZGlvIHdpdGggYSBkaWZmZXJlbnQgZmQgd2hpY2gKLSAgICBhbHNvIG1l
YW5zIGEgZGlmZmVyZW50IGhhbmRsZSBieSByZXBsaWNhdGluZyB0aGUgbG9naWMgaW4KLSAgICAi
UHlfbGlmZWN5Y2xlLmM6aW5pdHN0ZGlvL2NyZWF0ZV9zdGRpbyIuCi0KLSAgICA6cGFyYW0gc3Ry
ZWFtOiBpbiBwcmFjdGljZSBgYHN5cy5zdGRvdXRgYCBvciBgYHN5cy5zdGRlcnJgYCwgYnV0IGdp
dmVuCi0gICAgICAgIGhlcmUgYXMgcGFyYW1ldGVyIGZvciB1bml0dGVzdGluZyBwdXJwb3Nlcy4K
LQotICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weS9pc3N1ZXMvMTAzCi0g
ICAgIiIiCi0gICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpIG9yIHN5
cy52ZXJzaW9uX2luZm9bOjJdIDwgKDMsIDYpOgotICAgICAgICByZXR1cm4KLQotICAgICMgYmFp
bCBvdXQgaWYgYGBzdHJlYW1gYCBkb2Vzbid0IHNlZW0gbGlrZSBhIHByb3BlciBgYGlvYGAgc3Ry
ZWFtICgjMjY2NikKLSAgICBpZiBub3QgaGFzYXR0cihzdHJlYW0sICdidWZmZXInKToKLSAgICAg
ICAgcmV0dXJuCi0KLSAgICBidWZmZXJlZCA9IGhhc2F0dHIoc3RyZWFtLmJ1ZmZlciwgJ3Jhdycp
Ci0gICAgcmF3X3N0ZG91dCA9IHN0cmVhbS5idWZmZXIucmF3IGlmIGJ1ZmZlcmVkIGVsc2Ugc3Ry
ZWFtLmJ1ZmZlcgotCi0gICAgaWYgbm90IGlzaW5zdGFuY2UocmF3X3N0ZG91dCwgaW8uX1dpbmRv
d3NDb25zb2xlSU8pOgotICAgICAgICByZXR1cm4KLQotICAgIGRlZiBfcmVvcGVuX3N0ZGlvKGYs
IG1vZGUpOgotICAgICAgICBpZiBub3QgYnVmZmVyZWQgYW5kIG1vZGVbMF0gPT0gJ3cnOgotICAg
ICAgICAgICAgYnVmZmVyaW5nID0gMAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYnVmZmVy
aW5nID0gLTEKLQotICAgICAgICByZXR1cm4gaW8uVGV4dElPV3JhcHBlcigKLSAgICAgICAgICAg
IG9wZW4ob3MuZHVwKGYuZmlsZW5vKCkpLCBtb2RlLCBidWZmZXJpbmcpLAotICAgICAgICAgICAg
Zi5lbmNvZGluZywKLSAgICAgICAgICAgIGYuZXJyb3JzLAotICAgICAgICAgICAgZi5uZXdsaW5l
cywKLSAgICAgICAgICAgIGYubGluZV9idWZmZXJpbmcpCi0KLSAgICBzeXMuX19zdGRpbl9fID0g
c3lzLnN0ZGluID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3RkaW4sICdyYicpCi0gICAgc3lzLl9fc3Rk
b3V0X18gPSBzeXMuc3Rkb3V0ID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3Rkb3V0LCAnd2InKQotICAg
IHN5cy5fX3N0ZGVycl9fID0gc3lzLnN0ZGVyciA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGVyciwg
J3diJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9jb21wYXQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1
NjBmYmVjMzk3NTU1NzQ3ZmMxNGEzYWFlMjM4Njg2Njg3OGMxODAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb21wYXQu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMjIgKzAsMCBAQAotIiIiCi1weXRob24gdmVyc2lvbiBj
b21wYXRpYmlsaXR5IGNvZGUKLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQg
ZnVuY3Rvb2xzCi1pbXBvcnQgaW5zcGVjdAotaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi0KLWltcG9y
dCBweQotCi1pbXBvcnQgX3B5dGVzdAotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBURVNU
X09VVENPTUUKLQotdHJ5OgotICAgIGltcG9ydCBlbnVtCi1leGNlcHQgSW1wb3J0RXJyb3I6ICAj
IHByYWdtYTogbm8gY292ZXIKLSAgICAjIE9ubHkgYXZhaWxhYmxlIGluIFB5dGhvbiAzLjQrIG9y
IGFzIGEgYmFja3BvcnQKLSAgICBlbnVtID0gTm9uZQotCi0KLV9QWTMgPSBzeXMudmVyc2lvbl9p
bmZvID4gKDMsIDApCi1fUFkyID0gbm90IF9QWTMKLQotCi1pZiBfUFkzOgotICAgIGZyb20gaW5z
cGVjdCBpbXBvcnQgc2lnbmF0dXJlLCBQYXJhbWV0ZXIgYXMgUGFyYW1ldGVyCi1lbHNlOgotICAg
IGZyb20gZnVuY3NpZ3MgaW1wb3J0IHNpZ25hdHVyZSwgUGFyYW1ldGVyIGFzIFBhcmFtZXRlcgot
Ci0KLU5vbmVUeXBlID0gdHlwZShOb25lKQotTk9UU0VUID0gb2JqZWN0KCkKLQotUFkzNSA9IHN5
cy52ZXJzaW9uX2luZm9bOjJdID49ICgzLCA1KQotUFkzNiA9IHN5cy52ZXJzaW9uX2luZm9bOjJd
ID49ICgzLCA2KQotTU9EVUxFX05PVF9GT1VORF9FUlJPUiA9ICdNb2R1bGVOb3RGb3VuZEVycm9y
JyBpZiBQWTM2IGVsc2UgJ0ltcG9ydEVycm9yJwotCi0KLWRlZiBfZm9ybWF0X2FyZ3MoZnVuYyk6
Ci0gICAgcmV0dXJuIHN0cihzaWduYXR1cmUoZnVuYykpCi0KLQotaXNmdW5jdGlvbiA9IGluc3Bl
Y3QuaXNmdW5jdGlvbgotaXNjbGFzcyA9IGluc3BlY3QuaXNjbGFzcwotIyB1c2VkIHRvIHdvcmsg
YXJvdW5kIGEgcHl0aG9uMiBleGNlcHRpb24gaW5mbyBsZWFrCi1leGNfY2xlYXIgPSBnZXRhdHRy
KHN5cywgJ2V4Y19jbGVhcicsIGxhbWJkYTogTm9uZSkKLSMgVGhlIHR5cGUgb2YgcmUuY29tcGls
ZSBvYmplY3RzIGlzIG5vdCBleHBvc2VkIGluIFB5dGhvbi4KLVJFR0VYX1RZUEUgPSB0eXBlKHJl
LmNvbXBpbGUoJycpKQotCi0KLWRlZiBpc19nZW5lcmF0b3IoZnVuYyk6Ci0gICAgZ2VuZnVuYyA9
IGluc3BlY3QuaXNnZW5lcmF0b3JmdW5jdGlvbihmdW5jKQotICAgIHJldHVybiBnZW5mdW5jIGFu
ZCBub3QgaXNjb3JvdXRpbmVmdW5jdGlvbihmdW5jKQotCi0KLWRlZiBpc2Nvcm91dGluZWZ1bmN0
aW9uKGZ1bmMpOgotICAgICIiIlJldHVybiBUcnVlIGlmIGZ1bmMgaXMgYSBkZWNvcmF0ZWQgY29y
b3V0aW5lIGZ1bmN0aW9uLgotCi0gICAgTm90ZTogY29waWVkIGFuZCBtb2RpZmllZCBmcm9tIFB5
dGhvbiAzLjUncyBidWlsdGluIGNvdXJvdXRpbmVzLnB5IHRvIGF2b2lkIGltcG9ydCBhc3luY2lv
IGRpcmVjdGx5LAotICAgIHdoaWNoIGluIHR1cm5zIGFsc28gaW5pdGlhbGl6ZXMgdGhlICJsb2dn
aW5nIiBtb2R1bGUgYXMgc2lkZS1lZmZlY3QgKHNlZSBpc3N1ZSAjOCkuCi0gICAgIiIiCi0gICAg
cmV0dXJuIChnZXRhdHRyKGZ1bmMsICdfaXNfY29yb3V0aW5lJywgRmFsc2UpIG9yCi0gICAgICAg
ICAgICAoaGFzYXR0cihpbnNwZWN0LCAnaXNjb3JvdXRpbmVmdW5jdGlvbicpIGFuZCBpbnNwZWN0
LmlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYykpKQotCi0KLWRlZiBnZXRsb2NhdGlvbihmdW5jdGlv
biwgY3VyZGlyKToKLSAgICBmbiA9IHB5LnBhdGgubG9jYWwoaW5zcGVjdC5nZXRmaWxlKGZ1bmN0
aW9uKSkKLSAgICBsaW5lbm8gPSBweS5idWlsdGluLl9nZXRjb2RlKGZ1bmN0aW9uKS5jb19maXJz
dGxpbmVubwotICAgIGlmIGZuLnJlbHRvKGN1cmRpcik6Ci0gICAgICAgIGZuID0gZm4ucmVsdG8o
Y3VyZGlyKQotICAgIHJldHVybiAiJXM6JWQiICUgKGZuLCBsaW5lbm8gKyAxKQotCi0KLWRlZiBu
dW1fbW9ja19wYXRjaF9hcmdzKGZ1bmN0aW9uKToKLSAgICAiIiIgcmV0dXJuIG51bWJlciBvZiBh
cmd1bWVudHMgdXNlZCB1cCBieSBtb2NrIGFyZ3VtZW50cyAoaWYgYW55KSAiIiIKLSAgICBwYXRj
aGluZ3MgPSBnZXRhdHRyKGZ1bmN0aW9uLCAicGF0Y2hpbmdzIiwgTm9uZSkKLSAgICBpZiBub3Qg
cGF0Y2hpbmdzOgotICAgICAgICByZXR1cm4gMAotICAgIG1vY2sgPSBzeXMubW9kdWxlcy5nZXQo
Im1vY2siLCBzeXMubW9kdWxlcy5nZXQoInVuaXR0ZXN0Lm1vY2siLCBOb25lKSkKLSAgICBpZiBt
b2NrIGlzIG5vdCBOb25lOgotICAgICAgICByZXR1cm4gbGVuKFtwIGZvciBwIGluIHBhdGNoaW5n
cwotICAgICAgICAgICAgICAgICAgICBpZiBub3QgcC5hdHRyaWJ1dGVfbmFtZSBhbmQgcC5uZXcg
aXMgbW9jay5ERUZBVUxUXSkKLSAgICByZXR1cm4gbGVuKHBhdGNoaW5ncykKLQotCi1kZWYgZ2V0
ZnVuY2FyZ25hbWVzKGZ1bmN0aW9uLCBpc19tZXRob2Q9RmFsc2UsIGNscz1Ob25lKToKLSAgICAi
IiJSZXR1cm5zIHRoZSBuYW1lcyBvZiBhIGZ1bmN0aW9uJ3MgbWFuZGF0b3J5IGFyZ3VtZW50cy4K
LQotICAgIFRoaXMgc2hvdWxkIHJldHVybiB0aGUgbmFtZXMgb2YgYWxsIGZ1bmN0aW9uIGFyZ3Vt
ZW50cyB0aGF0OgotICAgICAgICAqIEFyZW4ndCBib3VuZCB0byBhbiBpbnN0YW5jZSBvciB0eXBl
IGFzIGluIGluc3RhbmNlIG9yIGNsYXNzIG1ldGhvZHMuCi0gICAgICAgICogRG9uJ3QgaGF2ZSBk
ZWZhdWx0IHZhbHVlcy4KLSAgICAgICAgKiBBcmVuJ3QgYm91bmQgd2l0aCBmdW5jdG9vbHMucGFy
dGlhbC4KLSAgICAgICAgKiBBcmVuJ3QgcmVwbGFjZWQgd2l0aCBtb2Nrcy4KLQotICAgIFRoZSBp
c19tZXRob2QgYW5kIGNscyBhcmd1bWVudHMgaW5kaWNhdGUgdGhhdCB0aGUgZnVuY3Rpb24gc2hv
dWxkCi0gICAgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1ldGhvZCBldmVuIHRob3VnaCBpdCdzIG5v
dCB1bmxlc3MsIG9ubHkgaW4KLSAgICB0aGUgY2FzZSBvZiBjbHMsIHRoZSBmdW5jdGlvbiBpcyBh
IHN0YXRpYyBtZXRob2QuCi0KLSAgICBAUm9ubnlQZmFubnNjaG1pZHQ6IFRoaXMgZnVuY3Rpb24g
c2hvdWxkIGJlIHJlZmFjdG9yZWQgd2hlbiB3ZQotICAgIHJldmlzaXQgZml4dHVyZXMuIFRoZSBm
aXh0dXJlIG1lY2hhbmlzbSBzaG91bGQgYXNrIHRoZSBub2RlIGZvcgotICAgIHRoZSBmaXh0dXJl
IG5hbWVzLCBhbmQgbm90IHRyeSB0byBvYnRhaW4gZGlyZWN0bHkgZnJvbSB0aGUKLSAgICBmdW5j
dGlvbiBvYmplY3Qgd2VsbCBhZnRlciBjb2xsZWN0aW9uIGhhcyBvY2N1cnJlZC4KLQotICAgICIi
IgotICAgICMgVGhlIHBhcmFtZXRlcnMgYXR0cmlidXRlIG9mIGEgU2lnbmF0dXJlIG9iamVjdCBj
b250YWlucyBhbgotICAgICMgb3JkZXJlZCBtYXBwaW5nIG9mIHBhcmFtZXRlciBuYW1lcyB0byBQ
YXJhbWV0ZXIgaW5zdGFuY2VzLiAgVGhpcwotICAgICMgY3JlYXRlcyBhIHR1cGxlIG9mIHRoZSBu
YW1lcyBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGRvbid0IGhhdmUKLSAgICAjIGRlZmF1bHRzLgot
ICAgIGFyZ19uYW1lcyA9IHR1cGxlKHAubmFtZSBmb3IgcCBpbiBzaWduYXR1cmUoZnVuY3Rpb24p
LnBhcmFtZXRlcnMudmFsdWVzKCkKLSAgICAgICAgICAgICAgICAgICAgICBpZiAocC5raW5kIGlz
IFBhcmFtZXRlci5QT1NJVElPTkFMX09SX0tFWVdPUkQgb3IKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcC5raW5kIGlzIFBhcmFtZXRlci5LRVlXT1JEX09OTFkpIGFuZAotICAgICAgICAgICAg
ICAgICAgICAgIHAuZGVmYXVsdCBpcyBQYXJhbWV0ZXIuZW1wdHkpCi0gICAgIyBJZiB0aGlzIGZ1
bmN0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgYm91bmQgbWV0aG9kIGV2ZW4gdGhvdWdoCi0g
ICAgIyBpdCdzIHBhc3NlZCBhcyBhbiB1bmJvdW5kIG1ldGhvZCBvciBmdW5jdGlvbiwgcmVtb3Zl
IHRoZSBmaXJzdAotICAgICMgcGFyYW1ldGVyIG5hbWUuCi0gICAgaWYgKGlzX21ldGhvZCBvcgot
ICAgICAgICAoY2xzIGFuZCBub3QgaXNpbnN0YW5jZShjbHMuX19kaWN0X18uZ2V0KGZ1bmN0aW9u
Ll9fbmFtZV9fLCBOb25lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
bWV0aG9kKSkpOgotICAgICAgICBhcmdfbmFtZXMgPSBhcmdfbmFtZXNbMTpdCi0gICAgIyBSZW1v
dmUgYW55IG5hbWVzIHRoYXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG1vY2tzLgotICAgIGlmIGhh
c2F0dHIoZnVuY3Rpb24sICJfX3dyYXBwZWRfXyIpOgotICAgICAgICBhcmdfbmFtZXMgPSBhcmdf
bmFtZXNbbnVtX21vY2tfcGF0Y2hfYXJncyhmdW5jdGlvbik6XQotICAgIHJldHVybiBhcmdfbmFt
ZXMKLQotCi1pZiBfUFkzOgotICAgIFNUUklOR19UWVBFUyA9IGJ5dGVzLCBzdHIKLSAgICBVTklD
T0RFX1RZUEVTID0gc3RyLAotCi0gICAgaWYgUFkzNToKLSAgICAgICAgZGVmIF9ieXRlc190b19h
c2NpaSh2YWwpOgotICAgICAgICAgICAgcmV0dXJuIHZhbC5kZWNvZGUoJ2FzY2lpJywgJ2JhY2tz
bGFzaHJlcGxhY2UnKQotICAgIGVsc2U6Ci0gICAgICAgIGRlZiBfYnl0ZXNfdG9fYXNjaWkodmFs
KToKLSAgICAgICAgICAgIGlmIHZhbDoKLSAgICAgICAgICAgICAgICAjIHNvdXJjZTogaHR0cDov
L2dvby5nbC9iR3Nud0MKLSAgICAgICAgICAgICAgICBlbmNvZGVkX2J5dGVzLCBfID0gY29kZWNz
LmVzY2FwZV9lbmNvZGUodmFsKQotICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVkX2J5dGVz
LmRlY29kZSgnYXNjaWknKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIGVt
cHR5IGJ5dGVzIGNyYXNoZXMgY29kZWNzLmVzY2FwZV9lbmNvZGUgKCMxMDg3KQotICAgICAgICAg
ICAgICAgIHJldHVybiAnJwotCi0gICAgZGVmIGFzY2lpX2VzY2FwZWQodmFsKToKLSAgICAgICAg
IiIiSWYgdmFsIGlzIHB1cmUgYXNjaWksIHJldHVybnMgaXQgYXMgYSBzdHIoKS4gIE90aGVyd2lz
ZSwgZXNjYXBlcwotICAgICAgICBieXRlcyBvYmplY3RzIGludG8gYSBzZXF1ZW5jZSBvZiBlc2Nh
cGVkIGJ5dGVzOgotCi0gICAgICAgIGInXHhjM1x4YjRceGM1XHhkNicgLT4gdSdcXHhjM1xceGI0
XFx4YzVcXHhkNicKLQotICAgICAgICBhbmQgZXNjYXBlcyB1bmljb2RlIG9iamVjdHMgaW50byBh
IHNlcXVlbmNlIG9mIGVzY2FwZWQgdW5pY29kZQotICAgICAgICBpZHMsIGUuZy46Ci0KLSAgICAg
ICAgJzRcXG5WXFxVMDAwNDNlZmFcXHgwZU1YV0JcXHgxZVxcdTMwMjhcXHUxNWZkXFx4Y2RcXFUw
MDA3ZDk0NCcKLQotICAgICAgICBub3RlOgotICAgICAgICAgICB0aGUgb2J2aW91cyAidi5kZWNv
ZGUoJ3VuaWNvZGUtZXNjYXBlJykiIHdpbGwgcmV0dXJuCi0gICAgICAgICAgIHZhbGlkIHV0Zi04
IHVuaWNvZGUgaWYgaXQgZmluZHMgdGhlbSBpbiBieXRlcywgYnV0IHdlCi0gICAgICAgICAgIHdh
bnQgdG8gcmV0dXJuIGVzY2FwZWQgYnl0ZXMgZm9yIGFueSBieXRlLCBldmVuIGlmIHRoZXkgbWF0
Y2gKLSAgICAgICAgICAgYSB1dGYtOCBzdHJpbmcuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGlm
IGlzaW5zdGFuY2UodmFsLCBieXRlcyk6Ci0gICAgICAgICAgICByZXR1cm4gX2J5dGVzX3RvX2Fz
Y2lpKHZhbCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCd1
bmljb2RlX2VzY2FwZScpLmRlY29kZSgnYXNjaWknKQotZWxzZToKLSAgICBTVFJJTkdfVFlQRVMg
PSBieXRlcywgc3RyLCB1bmljb2RlCi0gICAgVU5JQ09ERV9UWVBFUyA9IHVuaWNvZGUsCi0KLSAg
ICBkZWYgYXNjaWlfZXNjYXBlZCh2YWwpOgotICAgICAgICAiIiJJbiBweTIgYnl0ZXMgYW5kIHN0
ciBhcmUgdGhlIHNhbWUgdHlwZSwgc28gcmV0dXJuIGlmIGl0J3MgYSBieXRlcwotICAgICAgICBv
YmplY3QsIHJldHVybiBpdCB1bmNoYW5nZWQgaWYgaXQgaXMgYSBmdWxsIGFzY2lpIHN0cmluZywK
LSAgICAgICAgb3RoZXJ3aXNlIGVzY2FwZSBpdCBpbnRvIGl0cyBiaW5hcnkgZm9ybS4KLQotICAg
ICAgICBJZiBpdCdzIGEgdW5pY29kZSBzdHJpbmcsIGNoYW5nZSB0aGUgdW5pY29kZSBjaGFyYWN0
ZXJzIGludG8KLSAgICAgICAgdW5pY29kZSBlc2NhcGVzLgotCi0gICAgICAgICIiIgotICAgICAg
ICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCdhc2NpaScpCi0gICAgICAgICAgICBleGNlcHQgVW5p
Y29kZURlY29kZUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCdzdHJp
bmctZXNjYXBlJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB2YWwuZW5jb2Rl
KCd1bmljb2RlLWVzY2FwZScpCi0KLQotZGVmIGdldF9yZWFsX2Z1bmMob2JqKToKLSAgICAiIiIg
Z2V0cyB0aGUgcmVhbCBmdW5jdGlvbiBvYmplY3Qgb2YgdGhlIChwb3NzaWJseSkgd3JhcHBlZCBv
YmplY3QgYnkKLSAgICBmdW5jdG9vbHMud3JhcHMgb3IgZnVuY3Rvb2xzLnBhcnRpYWwuCi0gICAg
IiIiCi0gICAgc3RhcnRfb2JqID0gb2JqCi0gICAgZm9yIGkgaW4gcmFuZ2UoMTAwKToKLSAgICAg
ICAgbmV3X29iaiA9IGdldGF0dHIob2JqLCAnX193cmFwcGVkX18nLCBOb25lKQotICAgICAgICBp
ZiBuZXdfb2JqIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawotICAgICAgICBvYmogPSBuZXdf
b2JqCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICgi
Y291bGQgbm90IGZpbmQgcmVhbCBmdW5jdGlvbiBvZiB7c3RhcnR9IgotICAgICAgICAgICAgICJc
bnN0b3BwZWQgYXQge2N1cnJlbnR9IikuZm9ybWF0KAotICAgICAgICAgICAgICAgIHN0YXJ0PXB5
LmlvLnNhZmVyZXByKHN0YXJ0X29iaiksCi0gICAgICAgICAgICAgICAgY3VycmVudD1weS5pby5z
YWZlcmVwcihvYmopKSkKLSAgICBpZiBpc2luc3RhbmNlKG9iaiwgZnVuY3Rvb2xzLnBhcnRpYWwp
OgotICAgICAgICBvYmogPSBvYmouZnVuYwotICAgIHJldHVybiBvYmoKLQotCi1kZWYgZ2V0ZnNs
aW5lbm8ob2JqKToKLSAgICAjIHh4eCBsZXQgZGVjb3JhdG9ycyBldGMgc3BlY2lmeSBhIHNhbmUg
b3JkZXJpbmcKLSAgICBvYmogPSBnZXRfcmVhbF9mdW5jKG9iaikKLSAgICBpZiBoYXNhdHRyKG9i
aiwgJ3BsYWNlX2FzJyk6Ci0gICAgICAgIG9iaiA9IG9iai5wbGFjZV9hcwotICAgIGZzbGluZW5v
ID0gX3B5dGVzdC5fY29kZS5nZXRmc2xpbmVubyhvYmopCi0gICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
ZnNsaW5lbm9bMV0sIGludCksIG9iagotICAgIHJldHVybiBmc2xpbmVubwotCi0KLWRlZiBnZXRp
bWZ1bmMoZnVuYyk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZnVuYy5fX2Z1bmNfXwotICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgcmV0dXJuIGZ1bmMKLQotCi1kZWYgc2Fm
ZV9nZXRhdHRyKG9iamVjdCwgbmFtZSwgZGVmYXVsdCk6Ci0gICAgIiIiIExpa2UgZ2V0YXR0ciBi
dXQgcmV0dXJuIGRlZmF1bHQgdXBvbiBhbnkgRXhjZXB0aW9uIG9yIGFueSBPdXRjb21lRXhjZXB0
aW9uLgotCi0gICAgQXR0cmlidXRlIGFjY2VzcyBjYW4gcG90ZW50aWFsbHkgZmFpbCBmb3IgJ2V2
aWwnIFB5dGhvbiBvYmplY3RzLgotICAgIFNlZSBpc3N1ZSAjMjE0LgotICAgIEl0IGNhdGNoZXMg
T3V0Y29tZUV4Y2VwdGlvbiBiZWNhdXNlIG9mICMyNDkwIChpc3N1ZSAjNTgwKSwgbmV3IG91dGNv
bWVzIGFyZSBkZXJpdmVkIGZyb20gQmFzZUV4Y2VwdGlvbgotICAgIGluc3RlYWQgb2YgRXhjZXB0
aW9uIChmb3IgbW9yZSBkZXRhaWxzIGNoZWNrICMyNzA3KQotICAgICIiIgotICAgIHRyeToKLSAg
ICAgICAgcmV0dXJuIGdldGF0dHIob2JqZWN0LCBuYW1lLCBkZWZhdWx0KQotICAgIGV4Y2VwdCBU
RVNUX09VVENPTUU6Ci0gICAgICAgIHJldHVybiBkZWZhdWx0Ci0KLQotZGVmIF9pc191bml0dGVz
dF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlKCk6Ci0gICAgIiIiUmV0dXJuIGlmIHRoZSB0
ZXN0IHN1aXRlIHNob3VsZCBmYWlsIGlmIGEgQGV4cGVjdGVkRmFpbHVyZSB1bml0dGVzdCB0ZXN0
IFBBU1NFUy4KLQotICAgIEZyb20gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3Vu
aXR0ZXN0Lmh0bWw/aGlnaGxpZ2h0PXVuaXR0ZXN0I3VuaXR0ZXN0LlRlc3RSZXN1bHQud2FzU3Vj
Y2Vzc2Z1bDoKLSAgICAgICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuNDogUmV0dXJucyBGYWxzZSBp
ZiB0aGVyZSB3ZXJlIGFueQotICAgICAgICB1bmV4cGVjdGVkU3VjY2Vzc2VzIGZyb20gdGVzdHMg
bWFya2VkIHdpdGggdGhlIGV4cGVjdGVkRmFpbHVyZSgpIGRlY29yYXRvci4KLSAgICAiIiIKLSAg
ICByZXR1cm4gc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNCkKLQotCi1pZiBfUFkzOgotICAgIGRl
ZiBzYWZlX3N0cih2KToKLSAgICAgICAgIiIicmV0dXJucyB2IGFzIHN0cmluZyIiIgotICAgICAg
ICByZXR1cm4gc3RyKHYpCi1lbHNlOgotICAgIGRlZiBzYWZlX3N0cih2KToKLSAgICAgICAgIiIi
cmV0dXJucyB2IGFzIHN0cmluZywgY29udmVydGluZyB0byBhc2NpaSBpZiBuZWNlc3NhcnkiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHN0cih2KQotICAgICAgICBleGNlcHQg
VW5pY29kZUVycm9yOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodiwgdW5pY29kZSk6
Ci0gICAgICAgICAgICAgICAgdiA9IHVuaWNvZGUodikKLSAgICAgICAgICAgIGVycm9ycyA9ICdy
ZXBsYWNlJwotICAgICAgICAgICAgcmV0dXJuIHYuZW5jb2RlKCd1dGYtOCcsIGVycm9ycykKLQot
Ci1DT0xMRUNUX0ZBS0VNT0RVTEVfQVRUUklCVVRFUyA9ICgKLSAgICAnQ29sbGVjdG9yJywKLSAg
ICAnTW9kdWxlJywKLSAgICAnR2VuZXJhdG9yJywKLSAgICAnRnVuY3Rpb24nLAotICAgICdJbnN0
YW5jZScsCi0gICAgJ1Nlc3Npb24nLAotICAgICdJdGVtJywKLSAgICAnQ2xhc3MnLAotICAgICdG
aWxlJywKLSAgICAnX2ZpbGxmdW5jYXJncycsCi0pCi0KLQotZGVmIF9zZXR1cF9jb2xsZWN0X2Zh
a2Vtb2R1bGUoKToKLSAgICBmcm9tIHR5cGVzIGltcG9ydCBNb2R1bGVUeXBlCi0gICAgaW1wb3J0
IHB5dGVzdAotICAgIHB5dGVzdC5jb2xsZWN0ID0gTW9kdWxlVHlwZSgncHl0ZXN0LmNvbGxlY3Qn
KQotICAgIHB5dGVzdC5jb2xsZWN0Ll9fYWxsX18gPSBbXSAgIyB1c2VkIGZvciBzZXRucwotICAg
IGZvciBhdHRyIGluIENPTExFQ1RfRkFLRU1PRFVMRV9BVFRSSUJVVEVTOgotICAgICAgICBzZXRh
dHRyKHB5dGVzdC5jb2xsZWN0LCBhdHRyLCBnZXRhdHRyKHB5dGVzdCwgYXR0cikpCi0KLQotaWYg
X1BZMjoKLSAgICAjIFdpdGhvdXQgdGhpcyB0aGUgdGVzdF9kdXBmaWxlX29uX3RleHRpbyB3aWxs
IGZhaWwsIG90aGVyd2lzZSBDYXB0dXJlSU8gY291bGQgZGlyZWN0bHkgaW5oZXJpdCBmcm9tIFN0
cmluZ0lPLgotICAgIGZyb20gcHkuaW8gaW1wb3J0IFRleHRJTwotCi0gICAgY2xhc3MgQ2FwdHVy
ZUlPKFRleHRJTyk6Ci0KLSAgICAgICAgQHByb3BlcnR5Ci0gICAgICAgIGRlZiBlbmNvZGluZyhz
ZWxmKToKLSAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICdfZW5jb2RpbmcnLCAnVVRG
LTgnKQotCi1lbHNlOgotICAgIGltcG9ydCBpbwotCi0gICAgY2xhc3MgQ2FwdHVyZUlPKGlvLlRl
eHRJT1dyYXBwZXIpOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgICAgICBz
dXBlcihDYXB0dXJlSU8sIHNlbGYpLl9faW5pdF9fKAotICAgICAgICAgICAgICAgIGlvLkJ5dGVz
SU8oKSwKLSAgICAgICAgICAgICAgICBlbmNvZGluZz0nVVRGLTgnLCBuZXdsaW5lPScnLCB3cml0
ZV90aHJvdWdoPVRydWUsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgZGVmIGdldHZhbHVlKHNl
bGYpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnVmZmVyLmdldHZhbHVlKCkuZGVjb2RlKCdV
VEYtOCcpCi0KLQotY2xhc3MgRnVuY2FyZ25hbWVzQ29tcGF0QXR0cihvYmplY3QpOgotICAgICIi
IiBoZWxwZXIgY2xhc3Mgc28gdGhhdCBNZXRhZnVuYywgRnVuY3Rpb24gYW5kIEZpeHR1cmVSZXF1
ZXN0Ci0gICAgZG9uJ3QgbmVlZCB0byBlYWNoIGRlZmluZSB0aGUgImZ1bmNhcmduYW1lcyIgY29t
cGF0aWJpbGl0eSBhdHRyaWJ1dGUuCi0gICAgIiIiCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGZ1
bmNhcmduYW1lcyhzZWxmKToKLSAgICAgICAgIiIiIGFsaWFzIGF0dHJpYnV0ZSBmb3IgYGBmaXh0
dXJlbmFtZXNgYCBmb3IgcHJlLTIuMyBjb21wYXRpYmlsaXR5IiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLmZpeHR1cmVuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDk5YzgwNzlkNDE1OTg2YzE4YjFmM2ZmNjRkMjA3NTQyZTVlNDMxYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2NvbmZpZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0MDAgKzAsMCBAQAotIiIiIGNvbW1h
bmQgbGluZSBvcHRpb25zLCBpbmktZmlsZSBhbmQgY29uZnRlc3QucHkgcHJvY2Vzc2luZy4gIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBzaGxleAotaW1wb3J0IHRyYWNlYmFj
awotaW1wb3J0IHR5cGVzCi1pbXBvcnQgd2FybmluZ3MKLQotaW1wb3J0IHNpeAotaW1wb3J0IHB5
Ci0jIERPTid0IGltcG9ydCBweXRlc3QgaGVyZSBiZWNhdXNlIGl0IGNhdXNlcyBpbXBvcnQgY3lj
bGUgdHJvdWJsZXMKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IF9weXRlc3QuX2NvZGUK
LWltcG9ydCBfcHl0ZXN0Lmhvb2tzcGVjICAjIHRoZSBleHRlbnNpb24gcG9pbnQgZGVmaW5pdGlv
bnMKLWltcG9ydCBfcHl0ZXN0LmFzc2VydGlvbgotZnJvbSBwbHVnZ3kgaW1wb3J0IFBsdWdpbk1h
bmFnZXIsIEhvb2tpbXBsTWFya2VyLCBIb29rc3BlY01hcmtlcgotZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgc2FmZV9zdHIKLQotaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigicHl0ZXN0IikK
LWhvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoInB5dGVzdCIpCi0KLSMgcHl0ZXN0IHN0YXJ0dXAK
LSMKLQotCi1jbGFzcyBDb25mdGVzdEltcG9ydEZhaWx1cmUoRXhjZXB0aW9uKToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcGF0aCwgZXhjaW5mbyk6Ci0gICAgICAgIEV4Y2VwdGlvbi5fX2luaXRf
XyhzZWxmLCBwYXRoLCBleGNpbmZvKQotICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAg
IHNlbGYuZXhjaW5mbyA9IGV4Y2luZm8KLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAg
ICBldHlwZSwgZXZhbHVlLCBldGIgPSBzZWxmLmV4Y2luZm8KLSAgICAgICAgZm9ybWF0dGVkID0g
dHJhY2ViYWNrLmZvcm1hdF90YihldGIpCi0gICAgICAgICMgVGhlIGxldmVsIG9mIHRoZSB0cmFj
ZWJhY2tzIHdlIHdhbnQgdG8gcHJpbnQgaXMgaGFuZCBjcmFmdGVkIDooCi0gICAgICAgIHJldHVy
biByZXByKGV2YWx1ZSkgKyAnXG4nICsgJycuam9pbihmb3JtYXR0ZWRbMjpdKQotCi0KLWRlZiBt
YWluKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToKLSAgICAiIiIgcmV0dXJuIGV4aXQgY29kZSwg
YWZ0ZXIgcGVyZm9ybWluZyBhbiBpbi1wcm9jZXNzIHRlc3QgcnVuLgotCi0gICAgOmFyZyBhcmdz
OiBsaXN0IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCi0KLSAgICA6YXJnIHBsdWdpbnM6IGxp
c3Qgb2YgcGx1Z2luIG9iamVjdHMgdG8gYmUgYXV0by1yZWdpc3RlcmVkIGR1cmluZwotICAgICAg
ICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24uCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBjb25maWcgPSBfcHJlcGFyZWNvbmZpZyhhcmdzLCBwbHVnaW5zKQot
ICAgICAgICBleGNlcHQgQ29uZnRlc3RJbXBvcnRGYWlsdXJlIGFzIGU6Ci0gICAgICAgICAgICB0
dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN5cy5zdGRlcnIpCi0gICAgICAgICAgICBmb3IgbGlu
ZSBpbiB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigqZS5leGNpbmZvKToKLSAgICAgICAgICAg
ICAgICB0dy5saW5lKGxpbmUucnN0cmlwKCksIHJlZD1UcnVlKQotICAgICAgICAgICAgdHcubGlu
ZSgiRVJST1I6IGNvdWxkIG5vdCBsb2FkICVzXG4iICUgKGUucGF0aCksIHJlZD1UcnVlKQotICAg
ICAgICAgICAgcmV0dXJuIDQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY29uZmlnLmhvb2sucHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWc9
Y29uZmlnKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjb25maWcuX2Vu
c3VyZV91bmNvbmZpZ3VyZSgpCi0gICAgZXhjZXB0IFVzYWdlRXJyb3IgYXMgZToKLSAgICAgICAg
Zm9yIG1zZyBpbiBlLmFyZ3M6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJFUlJPUjog
JXNcbiIgJSAobXNnLCkpCi0gICAgICAgIHJldHVybiA0Ci0KLQotY2xhc3MgY21kbGluZTogICMg
Y29tcGF0aWJpbGl0eSBuYW1lc3BhY2UKLSAgICBtYWluID0gc3RhdGljbWV0aG9kKG1haW4pCi0K
LQotY2xhc3MgVXNhZ2VFcnJvcihFeGNlcHRpb24pOgotICAgICIiIiBlcnJvciBpbiBweXRlc3Qg
dXNhZ2Ugb3IgaW52b2NhdGlvbiIiIgotCi0KLWNsYXNzIFByaW50SGVscChFeGNlcHRpb24pOgot
ICAgICIiIlJhaXNlZCB3aGVuIHB5dGVzdCBzaG91bGQgcHJpbnQgaXQncyBoZWxwIHRvIHNraXAg
dGhlIHJlc3Qgb2YgdGhlCi0gICAgYXJndW1lbnQgcGFyc2luZyBhbmQgdmFsaWRhdGlvbi4iIiIK
LSAgICBwYXNzCi0KLQotZGVmIGZpbGVuYW1lX2FyZyhwYXRoLCBvcHRuYW1lKToKLSAgICAiIiIg
QXJncGFyc2UgdHlwZSB2YWxpZGF0b3IgZm9yIGZpbGVuYW1lIGFyZ3VtZW50cy4KLQotICAgIDpw
YXRoOiBwYXRoIG9mIGZpbGVuYW1lCi0gICAgOm9wdG5hbWU6IG5hbWUgb2YgdGhlIG9wdGlvbgot
ICAgICIiIgotICAgIGlmIG9zLnBhdGguaXNkaXIocGF0aCk6Ci0gICAgICAgIHJhaXNlIFVzYWdl
RXJyb3IoInswfSBtdXN0IGJlIGEgZmlsZW5hbWUsIGdpdmVuOiB7MX0iLmZvcm1hdChvcHRuYW1l
LCBwYXRoKSkKLSAgICByZXR1cm4gcGF0aAotCi0KLWRlZiBkaXJlY3RvcnlfYXJnKHBhdGgsIG9w
dG5hbWUpOgotICAgICIiIkFyZ3BhcnNlIHR5cGUgdmFsaWRhdG9yIGZvciBkaXJlY3RvcnkgYXJn
dW1lbnRzLgotCi0gICAgOnBhdGg6IHBhdGggb2YgZGlyZWN0b3J5Ci0gICAgOm9wdG5hbWU6IG5h
bWUgb2YgdGhlIG9wdGlvbgotICAgICIiIgotICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHBhdGgp
OgotICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJ7MH0gbXVzdCBiZSBhIGRpcmVjdG9yeSwgZ2l2
ZW46IHsxfSIuZm9ybWF0KG9wdG5hbWUsIHBhdGgpKQotICAgIHJldHVybiBwYXRoCi0KLQotZGVm
YXVsdF9wbHVnaW5zID0gKAotICAgICJtYXJrIG1haW4gdGVybWluYWwgcnVubmVyIHB5dGhvbiBm
aXh0dXJlcyBkZWJ1Z2dpbmcgdW5pdHRlc3QgY2FwdHVyZSBza2lwcGluZyAiCi0gICAgInRtcGRp
ciBtb25rZXlwYXRjaCByZWN3YXJuIHBhc3RlYmluIGhlbHBjb25maWcgbm9zZSBhc3NlcnRpb24g
IgotICAgICJqdW5pdHhtbCByZXN1bHRsb2cgZG9jdGVzdCBjYWNoZXByb3ZpZGVyIGZyZWV6ZV9z
dXBwb3J0ICIKLSAgICAic2V0dXBvbmx5IHNldHVwcGxhbiB3YXJuaW5ncyBsb2dnaW5nIikuc3Bs
aXQoKQotCi0KLWJ1aWx0aW5fcGx1Z2lucyA9IHNldChkZWZhdWx0X3BsdWdpbnMpCi1idWlsdGlu
X3BsdWdpbnMuYWRkKCJweXRlc3RlciIpCi0KLQotZGVmIGdldF9jb25maWcoKToKLSAgICAjIHN1
YnNlcXVlbnQgY2FsbHMgdG8gbWFpbiB3aWxsIGNyZWF0ZSBhIGZyZXNoIGluc3RhbmNlCi0gICAg
cGx1Z2lubWFuYWdlciA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQotICAgIGNvbmZpZyA9IENvbmZp
ZyhwbHVnaW5tYW5hZ2VyKQotICAgIGZvciBzcGVjIGluIGRlZmF1bHRfcGx1Z2luczoKLSAgICAg
ICAgcGx1Z2lubWFuYWdlci5pbXBvcnRfcGx1Z2luKHNwZWMpCi0gICAgcmV0dXJuIGNvbmZpZwot
Ci0KLWRlZiBnZXRfcGx1Z2luX21hbmFnZXIoKToKLSAgICAiIiIKLSAgICBPYnRhaW4gYSBuZXcg
aW5zdGFuY2Ugb2YgdGhlCi0gICAgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5QeXRlc3RQbHVn
aW5NYW5hZ2VyYCwgd2l0aCBkZWZhdWx0IHBsdWdpbnMKLSAgICBhbHJlYWR5IGxvYWRlZC4KLQot
ICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYnkgaW50ZWdyYXRpb24gd2l0aCBvdGhlciB0
b29scywgbGlrZSBob29raW5nCi0gICAgaW50byBweXRlc3QgdG8gcnVuIHRlc3RzIGludG8gYW4g
SURFLgotICAgICIiIgotICAgIHJldHVybiBnZXRfY29uZmlnKCkucGx1Z2lubWFuYWdlcgotCi0K
LWRlZiBfcHJlcGFyZWNvbmZpZyhhcmdzPU5vbmUsIHBsdWdpbnM9Tm9uZSk6Ci0gICAgd2Fybmlu
ZyA9IE5vbmUKLSAgICBpZiBhcmdzIGlzIE5vbmU6Ci0gICAgICAgIGFyZ3MgPSBzeXMuYXJndlsx
Ol0KLSAgICBlbGlmIGlzaW5zdGFuY2UoYXJncywgcHkucGF0aC5sb2NhbCk6Ci0gICAgICAgIGFy
Z3MgPSBbc3RyKGFyZ3MpXQotICAgIGVsaWYgbm90IGlzaW5zdGFuY2UoYXJncywgKHR1cGxlLCBs
aXN0KSk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3MsIHN0cik6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJub3QgYSBzdHJpbmcgb3IgYXJndW1lbnQgbGlzdDogJXIiICUg
KGFyZ3MsKSkKLSAgICAgICAgYXJncyA9IHNobGV4LnNwbGl0KGFyZ3MsIHBvc2l4PXN5cy5wbGF0
Zm9ybSAhPSAid2luMzIiKQotICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQK
LSAgICAgICAgd2FybmluZyA9IGRlcHJlY2F0ZWQuTUFJTl9TVFJfQVJHUwotICAgIGNvbmZpZyA9
IGdldF9jb25maWcoKQotICAgIHBsdWdpbm1hbmFnZXIgPSBjb25maWcucGx1Z2lubWFuYWdlcgot
ICAgIHRyeToKLSAgICAgICAgaWYgcGx1Z2luczoKLSAgICAgICAgICAgIGZvciBwbHVnaW4gaW4g
cGx1Z2luczoKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBsdWdpbiwgc2l4LnN0cmlu
Z190eXBlcyk6Ci0gICAgICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIuY29uc2lkZXJfcGx1
Z2luYXJnKHBsdWdpbikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBwbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHBsdWdpbikKLSAgICAgICAgaWYgd2FybmluZzoKLSAg
ICAgICAgICAgIGNvbmZpZy53YXJuKCdDMScsIHdhcm5pbmcpCi0gICAgICAgIHJldHVybiBwbHVn
aW5tYW5hZ2VyLmhvb2sucHl0ZXN0X2NtZGxpbmVfcGFyc2UoCi0gICAgICAgICAgICBwbHVnaW5t
YW5hZ2VyPXBsdWdpbm1hbmFnZXIsIGFyZ3M9YXJncykKLSAgICBleGNlcHQgQmFzZUV4Y2VwdGlv
bjoKLSAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQotICAgICAgICByYWlzZQot
Ci0KLWNsYXNzIFB5dGVzdFBsdWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6Ci0gICAgIiIiCi0g
ICAgT3ZlcndyaXRlcyA6cHk6Y2xhc3M6YHBsdWdneS5QbHVnaW5NYW5hZ2VyIDxwbHVnZ3kuUGx1
Z2luTWFuYWdlcj5gIHRvIGFkZCBweXRlc3Qtc3BlY2lmaWMKLSAgICBmdW5jdGlvbmFsaXR5Ogot
Ci0gICAgKiBsb2FkaW5nIHBsdWdpbnMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBgYFBZVEVTVF9Q
TFVHSU5gYCBlbnYgdmFyaWFibGUgYW5kCi0gICAgICBgYHB5dGVzdF9wbHVnaW5zYGAgZ2xvYmFs
IHZhcmlhYmxlcyBmb3VuZCBpbiBwbHVnaW5zIGJlaW5nIGxvYWRlZDsKLSAgICAqIGBgY29uZnRl
c3QucHlgYCBsb2FkaW5nIGR1cmluZyBzdGFydC11cDsKLSAgICAiIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwgc2VsZikuX19p
bml0X18oInB5dGVzdCIsIGltcGxwcmVmaXg9InB5dGVzdF8iKQotICAgICAgICBzZWxmLl9jb25m
dGVzdF9wbHVnaW5zID0gc2V0KCkKLQotICAgICAgICAjIHN0YXRlIHJlbGF0ZWQgdG8gbG9jYWwg
Y29uZnRlc3QgcGx1Z2lucwotICAgICAgICBzZWxmLl9wYXRoMmNvbmZtb2RzID0ge30KLSAgICAg
ICAgc2VsZi5fY29uZnRlc3RwYXRoMm1vZCA9IHt9Ci0gICAgICAgIHNlbGYuX2NvbmZjdXRkaXIg
PSBOb25lCi0gICAgICAgIHNlbGYuX25vY29uZnRlc3QgPSBGYWxzZQotICAgICAgICBzZWxmLl9k
dXBsaWNhdGVwYXRocyA9IHNldCgpCi0KLSAgICAgICAgc2VsZi5hZGRfaG9va3NwZWNzKF9weXRl
c3QuaG9va3NwZWMpCi0gICAgICAgIHNlbGYucmVnaXN0ZXIoc2VsZikKLSAgICAgICAgaWYgb3Mu
ZW52aXJvbi5nZXQoJ1BZVEVTVF9ERUJVRycpOgotICAgICAgICAgICAgZXJyID0gc3lzLnN0ZGVy
cgotICAgICAgICAgICAgZW5jb2RpbmcgPSBnZXRhdHRyKGVyciwgJ2VuY29kaW5nJywgJ3V0Zjgn
KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGVyciA9IHB5LmlvLmR1cGZpbGUo
ZXJyLCBlbmNvZGluZz1lbmNvZGluZykKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0g
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgc2VsZi50cmFjZS5yb290LnNldHdyaXRl
cihlcnIud3JpdGUpCi0gICAgICAgICAgICBzZWxmLmVuYWJsZV90cmFjaW5nKCkKLQotICAgICAg
ICAjIENvbmZpZy5fY29uc2lkZXJfaW1wb3J0aG9vayB3aWxsIHNldCBhIHJlYWwgb2JqZWN0IGlm
IHJlcXVpcmVkLgotICAgICAgICBzZWxmLnJld3JpdGVfaG9vayA9IF9weXRlc3QuYXNzZXJ0aW9u
LkR1bW15UmV3cml0ZUhvb2soKQotCi0gICAgZGVmIGFkZGhvb2tzKHNlbGYsIG1vZHVsZV9vcl9j
bGFzcyk6Ci0gICAgICAgICIiIgotICAgICAgICAuLiBkZXByZWNhdGVkOjogMi44Ci0KLSAgICAg
ICAgVXNlIDpweTptZXRoOmBwbHVnZ3kuUGx1Z2luTWFuYWdlci5hZGRfaG9va3NwZWNzIDxQbHVn
aW5NYW5hZ2VyLmFkZF9ob29rc3BlY3M+YAotICAgICAgICBpbnN0ZWFkLgotICAgICAgICAiIiIK
LSAgICAgICAgd2FybmluZyA9IGRpY3QoY29kZT0iSTIiLAotICAgICAgICAgICAgICAgICAgICAg
ICBmc2xvY2F0aW9uPV9weXRlc3QuX2NvZGUuZ2V0ZnNsaW5lbm8oc3lzLl9nZXRmcmFtZSgxKSks
Ci0gICAgICAgICAgICAgICAgICAgICAgIG5vZGVpZD1Ob25lLAotICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPSJ1c2UgcGx1Z2lubWFuYWdlci5hZGRfaG9va3NwZWNzIGluc3RlYWQgb2Yg
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXByZWNhdGVkIGFkZGhvb2tzKCkg
bWV0aG9kLiIpCi0gICAgICAgIHNlbGYuX3dhcm4od2FybmluZykKLSAgICAgICAgcmV0dXJuIHNl
bGYuYWRkX2hvb2tzcGVjcyhtb2R1bGVfb3JfY2xhc3MpCi0KLSAgICBkZWYgcGFyc2VfaG9va2lt
cGxfb3B0cyhzZWxmLCBwbHVnaW4sIG5hbWUpOgotICAgICAgICAjIHB5dGVzdCBob29rcyBhcmUg
YWx3YXlzIHByZWZpeGVkIHdpdGggcHl0ZXN0XwotICAgICAgICAjIHNvIHdlIGF2b2lkIGFjY2Vz
c2luZyBwb3NzaWJseSBub24tcmVhZGFibGUgYXR0cmlidXRlcwotICAgICAgICAjIChzZWUgaXNz
dWUgIzEwNzMpCi0gICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKLSAg
ICAgICAgICAgIHJldHVybgotICAgICAgICAjIGlnbm9yZSBzb21lIGhpc3RvcmljIHNwZWNpYWwg
bmFtZXMgd2hpY2ggY2FuIG5vdCBiZSBob29rcyBhbnl3YXkKLSAgICAgICAgaWYgbmFtZSA9PSAi
cHl0ZXN0X3BsdWdpbnMiIG9yIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0X2Z1bmNhcmdfXyIpOgot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4sIG5h
bWUpCi0gICAgICAgIG9wdHMgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5wYXJz
ZV9ob29raW1wbF9vcHRzKHBsdWdpbiwgbmFtZSkKLSAgICAgICAgaWYgb3B0cyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGZvciBuYW1lIGluICgidHJ5Zmlyc3QiLCAidHJ5bGFzdCIsICJvcHRp
b25hbGhvb2siLCAiaG9va3dyYXBwZXIiKToKLSAgICAgICAgICAgICAgICBvcHRzLnNldGRlZmF1
bHQobmFtZSwgaGFzYXR0cihtZXRob2QsIG5hbWUpKQotICAgICAgICByZXR1cm4gb3B0cwotCi0g
ICAgZGVmIHBhcnNlX2hvb2tzcGVjX29wdHMoc2VsZiwgbW9kdWxlX29yX2NsYXNzLCBuYW1lKToK
LSAgICAgICAgb3B0cyA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnBhcnNlX2hv
b2tzcGVjX29wdHMoCi0gICAgICAgICAgICBtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCi0gICAgICAg
IGlmIG9wdHMgaXMgTm9uZToKLSAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIobW9kdWxlX29y
X2NsYXNzLCBuYW1lKQotICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6
Ci0gICAgICAgICAgICAgICAgb3B0cyA9IHsiZmlyc3RyZXN1bHQiOiBoYXNhdHRyKG1ldGhvZCwg
ImZpcnN0cmVzdWx0IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAiaGlzdG9yaWMiOiBoYXNh
dHRyKG1ldGhvZCwgImhpc3RvcmljIil9Ci0gICAgICAgIHJldHVybiBvcHRzCi0KLSAgICBkZWYg
cmVnaXN0ZXIoc2VsZiwgcGx1Z2luLCBuYW1lPU5vbmUpOgotICAgICAgICBpZiBuYW1lID09ICdw
eXRlc3RfY2F0Y2hsb2cnOgotICAgICAgICAgICAgc2VsZi5fd2FybigncHl0ZXN0LWNhdGNobG9n
IHBsdWdpbiBoYXMgYmVlbiBtZXJnZWQgaW50byB0aGUgY29yZSwgJwotICAgICAgICAgICAgICAg
ICAgICAgICAncGxlYXNlIHJlbW92ZSBpdCBmcm9tIHlvdXIgcmVxdWlyZW1lbnRzLicpCi0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgcmV0ID0gc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwg
c2VsZikucmVnaXN0ZXIocGx1Z2luLCBuYW1lKQotICAgICAgICBpZiByZXQ6Ci0gICAgICAgICAg
ICBzZWxmLmhvb2sucHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkLmNhbGxfaGlzdG9yaWMoCi0gICAg
ICAgICAgICAgICAga3dhcmdzPWRpY3QocGx1Z2luPXBsdWdpbiwgbWFuYWdlcj1zZWxmKSkKLQot
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwbHVnaW4sIHR5cGVzLk1vZHVsZVR5cGUpOgotICAg
ICAgICAgICAgICAgIHNlbGYuY29uc2lkZXJfbW9kdWxlKHBsdWdpbikKLSAgICAgICAgcmV0dXJu
IHJldAotCi0gICAgZGVmIGdldHBsdWdpbihzZWxmLCBuYW1lKToKLSAgICAgICAgIyBzdXBwb3J0
IGRlcHJlY2F0ZWQgbmFtaW5nIGJlY2F1c2UgcGx1Z2lucyAoeGRpc3QgZS5nLikgdXNlIGl0Ci0g
ICAgICAgIHJldHVybiBzZWxmLmdldF9wbHVnaW4obmFtZSkKLQotICAgIGRlZiBoYXNwbHVnaW4o
c2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBwbHVnaW4gd2l0aCB0
aGUgZ2l2ZW4gbmFtZSBpcyByZWdpc3RlcmVkLiIiIgotICAgICAgICByZXR1cm4gYm9vbChzZWxm
LmdldF9wbHVnaW4obmFtZSkpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShzZWxmLCBjb25m
aWcpOgotICAgICAgICAjIFhYWCBub3cgdGhhdCB0aGUgcGx1Z2lubWFuYWdlciBleHBvc2VzIGhv
b2tpbXBsKHRyeWZpcnN0Li4uKQotICAgICAgICAjIHdlIHNob3VsZCByZW1vdmUgdHJ5Zmlyc3Qv
dHJ5bGFzdCBhcyBtYXJrZXJzCi0gICAgICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJr
ZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyeWZpcnN0OiBtYXJrIGEg
aG9vayBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiBzdWNoIHRoYXQgdGhlICIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBsdWdpbiBtYWNoaW5lcnkgd2lsbCB0cnkgdG8gY2FsbCBp
dCBmaXJzdC9hcyBlYXJseSBhcyBwb3NzaWJsZS4iKQotICAgICAgICBjb25maWcuYWRkaW5pdmFs
dWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cnls
YXN0OiBtYXJrIGEgaG9vayBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiBzdWNoIHRoYXQgdGhlICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsdWdpbiBtYWNoaW5lcnkgd2lsbCB0
cnkgdG8gY2FsbCBpdCBsYXN0L2FzIGxhdGUgYXMgcG9zc2libGUuIikKLQotICAgIGRlZiBfd2Fy
bihzZWxmLCBtZXNzYWdlKToKLSAgICAgICAga3dhcmdzID0gbWVzc2FnZSBpZiBpc2luc3RhbmNl
KG1lc3NhZ2UsIGRpY3QpIGVsc2UgewotICAgICAgICAgICAgJ2NvZGUnOiAnSTEnLAotICAgICAg
ICAgICAgJ21lc3NhZ2UnOiBtZXNzYWdlLAotICAgICAgICAgICAgJ2ZzbG9jYXRpb24nOiBOb25l
LAotICAgICAgICAgICAgJ25vZGVpZCc6IE5vbmUsCi0gICAgICAgIH0KLSAgICAgICAgc2VsZi5o
b29rLnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWt3YXJncykKLQotICAg
ICMKLSAgICAjIGludGVybmFsIEFQSSBmb3IgbG9jYWwgY29uZnRlc3QgcGx1Z2luIGhhbmRsaW5n
Ci0gICAgIwotICAgIGRlZiBfc2V0X2luaXRpYWxfY29uZnRlc3RzKHNlbGYsIG5hbWVzcGFjZSk6
Ci0gICAgICAgICIiIiBsb2FkIGluaXRpYWwgY29uZnRlc3QgZmlsZXMgZ2l2ZW4gYSBwcmVwYXJz
ZWQgIm5hbWVzcGFjZSIuCi0gICAgICAgICAgICBBcyBjb25mdGVzdCBmaWxlcyBtYXkgYWRkIHRo
ZWlyIG93biBjb21tYW5kIGxpbmUgb3B0aW9ucwotICAgICAgICAgICAgd2hpY2ggaGF2ZSBhcmd1
bWVudHMgKCctLW15LW9wdCBzb21lcGF0aCcpIHdlIG1pZ2h0IGdldCBzb21lCi0gICAgICAgICAg
ICBmYWxzZSBwb3NpdGl2ZXMuICBBbGwgYnVpbHRpbiBhbmQgM3JkIHBhcnR5IHBsdWdpbnMgd2ls
bCBoYXZlCi0gICAgICAgICAgICBiZWVuIGxvYWRlZCwgaG93ZXZlciwgc28gY29tbW9uIG9wdGlv
bnMgd2lsbCBub3QgY29uZnVzZSBvdXIgbG9naWMKLSAgICAgICAgICAgIGhlcmUuCi0gICAgICAg
ICIiIgotICAgICAgICBjdXJyZW50ID0gcHkucGF0aC5sb2NhbCgpCi0gICAgICAgIHNlbGYuX2Nv
bmZjdXRkaXIgPSBjdXJyZW50LmpvaW4obmFtZXNwYWNlLmNvbmZjdXRkaXIsIGFicz1UcnVlKSBc
Ci0gICAgICAgICAgICBpZiBuYW1lc3BhY2UuY29uZmN1dGRpciBlbHNlIE5vbmUKLSAgICAgICAg
c2VsZi5fbm9jb25mdGVzdCA9IG5hbWVzcGFjZS5ub2NvbmZ0ZXN0Ci0gICAgICAgIHRlc3RwYXRo
cyA9IG5hbWVzcGFjZS5maWxlX29yX2RpcgotICAgICAgICBmb3VuZGFuY2hvciA9IEZhbHNlCi0g
ICAgICAgIGZvciBwYXRoIGluIHRlc3RwYXRoczoKLSAgICAgICAgICAgIHBhdGggPSBzdHIocGF0
aCkKLSAgICAgICAgICAgICMgcmVtb3ZlIG5vZGUtaWQgc3ludGF4Ci0gICAgICAgICAgICBpID0g
cGF0aC5maW5kKCI6OiIpCi0gICAgICAgICAgICBpZiBpICE9IC0xOgotICAgICAgICAgICAgICAg
IHBhdGggPSBwYXRoWzppXQotICAgICAgICAgICAgYW5jaG9yID0gY3VycmVudC5qb2luKHBhdGgs
IGFicz0xKQotICAgICAgICAgICAgaWYgZXhpc3RzKGFuY2hvcik6ICAjIHdlIGZvdW5kIHNvbWUg
ZmlsZSBvYmplY3QKLSAgICAgICAgICAgICAgICBzZWxmLl90cnlfbG9hZF9jb25mdGVzdChhbmNo
b3IpCi0gICAgICAgICAgICAgICAgZm91bmRhbmNob3IgPSBUcnVlCi0gICAgICAgIGlmIG5vdCBm
b3VuZGFuY2hvcjoKLSAgICAgICAgICAgIHNlbGYuX3RyeV9sb2FkX2NvbmZ0ZXN0KGN1cnJlbnQp
Ci0KLSAgICBkZWYgX3RyeV9sb2FkX2NvbmZ0ZXN0KHNlbGYsIGFuY2hvcik6Ci0gICAgICAgIHNl
bGYuX2dldGNvbmZ0ZXN0bW9kdWxlcyhhbmNob3IpCi0gICAgICAgICMgbGV0J3MgYWxzbyBjb25z
aWRlciB0ZXN0KiBzdWJkaXJzCi0gICAgICAgIGlmIGFuY2hvci5jaGVjayhkaXI9MSk6Ci0gICAg
ICAgICAgICBmb3IgeCBpbiBhbmNob3IubGlzdGRpcigidGVzdCoiKToKLSAgICAgICAgICAgICAg
ICBpZiB4LmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2V0Y29uZnRl
c3Rtb2R1bGVzKHgpCi0KLSAgICBkZWYgX2dldGNvbmZ0ZXN0bW9kdWxlcyhzZWxmLCBwYXRoKToK
LSAgICAgICAgaWYgc2VsZi5fbm9jb25mdGVzdDoKLSAgICAgICAgICAgIHJldHVybiBbXQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcGF0aDJjb25mbW9kc1twYXRoXQot
ICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBpZiBwYXRoLmlzZmlsZSgpOgot
ICAgICAgICAgICAgICAgIGNsaXN0ID0gc2VsZi5fZ2V0Y29uZnRlc3Rtb2R1bGVzKHBhdGguZGly
cGF0aCgpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFhYWCB0aGVzZSBk
YXlzIHdlIG1heSByYXRoZXIgd2FudCB0byB1c2UgY29uZmlnLnJvb3RkaXIKLSAgICAgICAgICAg
ICAgICAjIGFuZCBhbGxvdyB1c2VycyB0byBvcHQgaW50byBsb29raW5nIGludG8gdGhlIHJvb3Rk
aXIgcGFyZW50Ci0gICAgICAgICAgICAgICAgIyBkaXJlY3RvcmllcyBpbnN0ZWFkIG9mIHJlcXVp
cmluZyB0byBzcGVjaWZ5IGNvbmZjdXRkaXIKLSAgICAgICAgICAgICAgICBjbGlzdCA9IFtdCi0g
ICAgICAgICAgICAgICAgZm9yIHBhcmVudCBpbiBwYXRoLnBhcnRzKCk6Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX2NvbmZjdXRkaXIgYW5kIHNlbGYuX2NvbmZjdXRkaXIucmVsdG8ocGFy
ZW50KToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAg
ICAgIGNvbmZ0ZXN0cGF0aCA9IHBhcmVudC5qb2luKCJjb25mdGVzdC5weSIpCi0gICAgICAgICAg
ICAgICAgICAgIGlmIGNvbmZ0ZXN0cGF0aC5pc2ZpbGUoKToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZCA9IHNlbGYuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0cGF0aCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNsaXN0LmFwcGVuZChtb2QpCi0KLSAgICAgICAgICAgIHNlbGYuX3BhdGgy
Y29uZm1vZHNbcGF0aF0gPSBjbGlzdAotICAgICAgICAgICAgcmV0dXJuIGNsaXN0Ci0KLSAgICBk
ZWYgX3JnZXRfd2l0aF9jb25mbW9kKHNlbGYsIG5hbWUsIHBhdGgpOgotICAgICAgICBtb2R1bGVz
ID0gc2VsZi5fZ2V0Y29uZnRlc3Rtb2R1bGVzKHBhdGgpCi0gICAgICAgIGZvciBtb2QgaW4gcmV2
ZXJzZWQobW9kdWxlcyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IG1vZCwgZ2V0YXR0cihtb2QsIG5hbWUpCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy
b3I6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgcmFpc2UgS2V5RXJyb3IobmFt
ZSkKLQotICAgIGRlZiBfaW1wb3J0Y29uZnRlc3Qoc2VsZiwgY29uZnRlc3RwYXRoKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbmZ0ZXN0cGF0aDJtb2RbY29uZnRl
c3RwYXRoXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBwa2dwYXRoID0g
Y29uZnRlc3RwYXRoLnB5cGtncGF0aCgpCi0gICAgICAgICAgICBpZiBwa2dwYXRoIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgX2Vuc3VyZV9yZW1vdmVkX3N5c21vZHVsZShjb25mdGVzdHBhdGgu
cHVyZWJhc2VuYW1lKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG1vZCA9IGNv
bmZ0ZXN0cGF0aC5weWltcG9ydCgpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAg
ICAgICAgICAgICAgIHJhaXNlIENvbmZ0ZXN0SW1wb3J0RmFpbHVyZShjb25mdGVzdHBhdGgsIHN5
cy5leGNfaW5mbygpKQotCi0gICAgICAgICAgICBzZWxmLl9jb25mdGVzdF9wbHVnaW5zLmFkZCht
b2QpCi0gICAgICAgICAgICBzZWxmLl9jb25mdGVzdHBhdGgybW9kW2NvbmZ0ZXN0cGF0aF0gPSBt
b2QKLSAgICAgICAgICAgIGRpcnBhdGggPSBjb25mdGVzdHBhdGguZGlycGF0aCgpCi0gICAgICAg
ICAgICBpZiBkaXJwYXRoIGluIHNlbGYuX3BhdGgyY29uZm1vZHM6Ci0gICAgICAgICAgICAgICAg
Zm9yIHBhdGgsIG1vZHMgaW4gc2VsZi5fcGF0aDJjb25mbW9kcy5pdGVtcygpOgotICAgICAgICAg
ICAgICAgICAgICBpZiBwYXRoIGFuZCBwYXRoLnJlbHRvKGRpcnBhdGgpIG9yIHBhdGggPT0gZGly
cGF0aDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBtb2Qgbm90IGluIG1vZHMKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1vZHMuYXBwZW5kKG1vZCkKLSAgICAgICAgICAgIHNlbGYu
dHJhY2UoImxvYWRlZCBjb25mdGVzdG1vZHVsZSAlciIgJSAobW9kKSkKLSAgICAgICAgICAgIHNl
bGYuY29uc2lkZXJfY29uZnRlc3QobW9kKQotICAgICAgICAgICAgcmV0dXJuIG1vZAotCi0gICAg
IwotICAgICMgQVBJIGZvciBib290c3RyYXBwaW5nIHBsdWdpbiBsb2FkaW5nCi0gICAgIwotICAg
ICMKLQotICAgIGRlZiBjb25zaWRlcl9wcmVwYXJzZShzZWxmLCBhcmdzKToKLSAgICAgICAgZm9y
IG9wdDEsIG9wdDIgaW4gemlwKGFyZ3MsIGFyZ3NbMTpdKToKLSAgICAgICAgICAgIGlmIG9wdDEg
PT0gIi1wIjoKLSAgICAgICAgICAgICAgICBzZWxmLmNvbnNpZGVyX3BsdWdpbmFyZyhvcHQyKQot
Ci0gICAgZGVmIGNvbnNpZGVyX3BsdWdpbmFyZyhzZWxmLCBhcmcpOgotICAgICAgICBpZiBhcmcu
c3RhcnRzd2l0aCgibm86Iik6Ci0gICAgICAgICAgICBuYW1lID0gYXJnWzM6XQotICAgICAgICAg
ICAgc2VsZi5zZXRfYmxvY2tlZChuYW1lKQotICAgICAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRz
d2l0aCgicHl0ZXN0XyIpOgotICAgICAgICAgICAgICAgIHNlbGYuc2V0X2Jsb2NrZWQoInB5dGVz
dF8iICsgbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuaW1wb3J0X3BsdWdp
bihhcmcpCi0KLSAgICBkZWYgY29uc2lkZXJfY29uZnRlc3Qoc2VsZiwgY29uZnRlc3Rtb2R1bGUp
OgotICAgICAgICBzZWxmLnJlZ2lzdGVyKGNvbmZ0ZXN0bW9kdWxlLCBuYW1lPWNvbmZ0ZXN0bW9k
dWxlLl9fZmlsZV9fKQotCi0gICAgZGVmIGNvbnNpZGVyX2VudihzZWxmKToKLSAgICAgICAgc2Vs
Zi5faW1wb3J0X3BsdWdpbl9zcGVjcyhvcy5lbnZpcm9uLmdldCgiUFlURVNUX1BMVUdJTlMiKSkK
LQotICAgIGRlZiBjb25zaWRlcl9tb2R1bGUoc2VsZiwgbW9kKToKLSAgICAgICAgc2VsZi5faW1w
b3J0X3BsdWdpbl9zcGVjcyhnZXRhdHRyKG1vZCwgJ3B5dGVzdF9wbHVnaW5zJywgW10pKQotCi0g
ICAgZGVmIF9pbXBvcnRfcGx1Z2luX3NwZWNzKHNlbGYsIHNwZWMpOgotICAgICAgICBwbHVnaW5z
ID0gX2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdChzcGVjKQotICAgICAgICBmb3IgaW1wb3J0X3Nw
ZWMgaW4gcGx1Z2luczoKLSAgICAgICAgICAgIHNlbGYuaW1wb3J0X3BsdWdpbihpbXBvcnRfc3Bl
YykKLQotICAgIGRlZiBpbXBvcnRfcGx1Z2luKHNlbGYsIG1vZG5hbWUpOgotICAgICAgICAjIG1v
c3Qgb2Z0ZW4gbW9kbmFtZSByZWZlcnMgdG8gYnVpbHRpbiBtb2R1bGVzLCBlLmcuICJweXRlc3Rl
ciIsCi0gICAgICAgICMgInRlcm1pbmFsIiBvciAiY2FwdHVyZSIuICBUaG9zZSBwbHVnaW5zIGFy
ZSByZWdpc3RlcmVkIHVuZGVyIHRoZWlyCi0gICAgICAgICMgYmFzZW5hbWUgZm9yIGhpc3Rvcmlj
IHB1cnBvc2VzIGJ1dCBtdXN0IGJlIGltcG9ydGVkIHdpdGggdGhlCi0gICAgICAgICMgX3B5dGVz
dCBwcmVmaXguCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZG5hbWUsIChzaXgudGV4dF90
eXBlLCBzdHIpKSwgIm1vZHVsZSBuYW1lIGFzIHRleHQgcmVxdWlyZWQsIGdvdCAlciIgJSBtb2Ru
YW1lCi0gICAgICAgIG1vZG5hbWUgPSBzdHIobW9kbmFtZSkKLSAgICAgICAgaWYgc2VsZi5pc19i
bG9ja2VkKG1vZG5hbWUpIG9yIHNlbGYuZ2V0X3BsdWdpbihtb2RuYW1lKSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBtb2RuYW1lIGluIGJ1aWx0aW5fcGx1Z2lu
czoKLSAgICAgICAgICAgIGltcG9ydHNwZWMgPSAiX3B5dGVzdC4iICsgbW9kbmFtZQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgaW1wb3J0c3BlYyA9IG1vZG5hbWUKLSAgICAgICAgc2VsZi5y
ZXdyaXRlX2hvb2subWFya19yZXdyaXRlKGltcG9ydHNwZWMpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIF9faW1wb3J0X18oaW1wb3J0c3BlYykKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y
IGFzIGU6Ci0gICAgICAgICAgICBuZXdfZXhjX3R5cGUgPSBJbXBvcnRFcnJvcgotICAgICAgICAg
ICAgbmV3X2V4Y19tZXNzYWdlID0gJ0Vycm9yIGltcG9ydGluZyBwbHVnaW4gIiVzIjogJXMnICUg
KG1vZG5hbWUsIHNhZmVfc3RyKGUuYXJnc1swXSkpCi0gICAgICAgICAgICBuZXdfZXhjID0gbmV3
X2V4Y190eXBlKG5ld19leGNfbWVzc2FnZSkKLQotICAgICAgICAgICAgc2l4LnJlcmFpc2UobmV3
X2V4Y190eXBlLCBuZXdfZXhjLCBzeXMuZXhjX2luZm8oKVsyXSkKLQotICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBp
ZiBub3QgaGFzYXR0cihweXRlc3QsICdza2lwJykgb3Igbm90IGlzaW5zdGFuY2UoZSwgcHl0ZXN0
LnNraXAuRXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgc2Vs
Zi5fd2Fybigic2tpcHBlZCBwbHVnaW4gJXI6ICVzIiAlICgobW9kbmFtZSwgZS5tc2cpKSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzW2ltcG9ydHNwZWNdCi0g
ICAgICAgICAgICBzZWxmLnJlZ2lzdGVyKG1vZCwgbW9kbmFtZSkKLQotCi1kZWYgX2dldF9wbHVn
aW5fc3BlY3NfYXNfbGlzdChzcGVjcyk6Ci0gICAgIiIiCi0gICAgUGFyc2VzIGEgbGlzdCBvZiAi
cGx1Z2luIHNwZWNzIiBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgcGx1Z2luIG5hbWVzLgotCi0gICAg
UGx1Z2luIHNwZWNzIGNhbiBiZSBnaXZlbiBhcyBhIGxpc3Qgb2Ygc3RyaW5ncyBzZXBhcmF0ZWQg
YnkgIiwiIG9yIGFscmVhZHkgYXMgYSBsaXN0L3R1cGxlIGluCi0gICAgd2hpY2ggY2FzZSBpdCBp
cyByZXR1cm5lZCBhcyBhIGxpc3QuIFNwZWNzIGNhbiBhbHNvIGJlIGBOb25lYCBpbiB3aGljaCBj
YXNlIGFuCi0gICAgZW1wdHkgbGlzdCBpcyByZXR1cm5lZC4KLSAgICAiIiIKLSAgICBpZiBzcGVj
cyBpcyBub3QgTm9uZToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShzcGVjcywgc3RyKToKLSAgICAg
ICAgICAgIHNwZWNzID0gc3BlY3Muc3BsaXQoJywnKSBpZiBzcGVjcyBlbHNlIFtdCi0gICAgICAg
IGlmIG5vdCBpc2luc3RhbmNlKHNwZWNzLCAobGlzdCwgdHVwbGUpKToKLSAgICAgICAgICAgIHJh
aXNlIFVzYWdlRXJyb3IoIlBsdWdpbiBzcGVjcyBtdXN0IGJlIGEgJywnLXNlcGFyYXRlZCBzdHJp
bmcgb3IgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaXN0L3R1cGxlIG9mIHN0
cmluZ3MgZm9yIHBsdWdpbiBuYW1lcy4gR2l2ZW46ICVyIiAlIHNwZWNzKQotICAgICAgICByZXR1
cm4gbGlzdChzcGVjcykKLSAgICByZXR1cm4gW10KLQotCi1jbGFzcyBQYXJzZXI6Ci0gICAgIiIi
IFBhcnNlciBmb3IgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhbmQgaW5pLWZpbGUgdmFsdWVzLgot
Ci0gICAgOml2YXIgZXh0cmFfaW5mbzogZGljdCBvZiBnZW5lcmljIHBhcmFtIC0+IHZhbHVlIHRv
IGRpc3BsYXkgaW4gY2FzZQotICAgICAgICB0aGVyZSdzIGFuIGVycm9yIHByb2Nlc3NpbmcgdGhl
IGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdXNhZ2U9Tm9uZSwgcHJvY2Vzc29wdD1Ob25lKToKLSAgICAgICAgc2VsZi5fYW5vbnltb3Vz
ID0gT3B0aW9uR3JvdXAoImN1c3RvbSBvcHRpb25zIiwgcGFyc2VyPXNlbGYpCi0gICAgICAgIHNl
bGYuX2dyb3VwcyA9IFtdCi0gICAgICAgIHNlbGYuX3Byb2Nlc3NvcHQgPSBwcm9jZXNzb3B0Ci0g
ICAgICAgIHNlbGYuX3VzYWdlID0gdXNhZ2UKLSAgICAgICAgc2VsZi5faW5pZGljdCA9IHt9Ci0g
ICAgICAgIHNlbGYuX2luaW5hbWVzID0gW10KLSAgICAgICAgc2VsZi5leHRyYV9pbmZvID0ge30K
LQotICAgIGRlZiBwcm9jZXNzb3B0aW9uKHNlbGYsIG9wdGlvbik6Ci0gICAgICAgIGlmIHNlbGYu
X3Byb2Nlc3NvcHQ6Ci0gICAgICAgICAgICBpZiBvcHRpb24uZGVzdDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9wcm9jZXNzb3B0KG9wdGlvbikKLQotICAgIGRlZiBnZXRncm91cChzZWxmLCBuYW1l
LCBkZXNjcmlwdGlvbj0iIiwgYWZ0ZXI9Tm9uZSk6Ci0gICAgICAgICIiIiBnZXQgKG9yIGNyZWF0
ZSkgYSBuYW1lZCBvcHRpb24gR3JvdXAuCi0KLSAgICAgICAgOm5hbWU6IG5hbWUgb2YgdGhlIG9w
dGlvbiBncm91cC4KLSAgICAgICAgOmRlc2NyaXB0aW9uOiBsb25nIGRlc2NyaXB0aW9uIGZvciAt
LWhlbHAgb3V0cHV0LgotICAgICAgICA6YWZ0ZXI6IG5hbWUgb2Ygb3RoZXIgZ3JvdXAsIHVzZWQg
Zm9yIG9yZGVyaW5nIC0taGVscCBvdXRwdXQuCi0KLSAgICAgICAgVGhlIHJldHVybmVkIGdyb3Vw
IG9iamVjdCBoYXMgYW4gYGBhZGRvcHRpb25gYCBtZXRob2Qgd2l0aCB0aGUgc2FtZQotICAgICAg
ICBzaWduYXR1cmUgYXMgOnB5OmZ1bmM6YHBhcnNlci5hZGRvcHRpb24KLSAgICAgICAgPF9weXRl
c3QuY29uZmlnLlBhcnNlci5hZGRvcHRpb24+YCBidXQgd2lsbCBiZSBzaG93biBpbiB0aGUKLSAg
ICAgICAgcmVzcGVjdGl2ZSBncm91cCBpbiB0aGUgb3V0cHV0IG9mIGBgcHl0ZXN0LiAtLWhlbHBg
YC4KLSAgICAgICAgIiIiCi0gICAgICAgIGZvciBncm91cCBpbiBzZWxmLl9ncm91cHM6Ci0gICAg
ICAgICAgICBpZiBncm91cC5uYW1lID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGdy
b3VwCi0gICAgICAgIGdyb3VwID0gT3B0aW9uR3JvdXAobmFtZSwgZGVzY3JpcHRpb24sIHBhcnNl
cj1zZWxmKQotICAgICAgICBpID0gMAotICAgICAgICBmb3IgaSwgZ3JwIGluIGVudW1lcmF0ZShz
ZWxmLl9ncm91cHMpOgotICAgICAgICAgICAgaWYgZ3JwLm5hbWUgPT0gYWZ0ZXI6Ci0gICAgICAg
ICAgICAgICAgYnJlYWsKLSAgICAgICAgc2VsZi5fZ3JvdXBzLmluc2VydChpICsgMSwgZ3JvdXAp
Ci0gICAgICAgIHJldHVybiBncm91cAotCi0gICAgZGVmIGFkZG9wdGlvbihzZWxmLCAqb3B0cywg
KiphdHRycyk6Ci0gICAgICAgICIiIiByZWdpc3RlciBhIGNvbW1hbmQgbGluZSBvcHRpb24uCi0K
LSAgICAgICAgOm9wdHM6IG9wdGlvbiBuYW1lcywgY2FuIGJlIHNob3J0IG9yIGxvbmcgb3B0aW9u
cy4KLSAgICAgICAgOmF0dHJzOiBzYW1lIGF0dHJpYnV0ZXMgd2hpY2ggdGhlIGBgYWRkX29wdGlv
bigpYGAgZnVuY3Rpb24gb2YgdGhlCi0gICAgICAgICAgIGBhcmdwYXJzZSBsaWJyYXJ5Ci0gICAg
ICAgICAgIDxodHRwOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS9hcmdwYXJzZS5odG1sPmBf
Ci0gICAgICAgICAgIGFjY2VwdHMuCi0KLSAgICAgICAgQWZ0ZXIgY29tbWFuZCBsaW5lIHBhcnNp
bmcgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBweXRlc3QgY29uZmlnCi0gICAgICAgIG9i
amVjdCB2aWEgYGBjb25maWcub3B0aW9uLk5BTUVgYCB3aGVyZSBgYE5BTUVgYCBpcyB1c3VhbGx5
IHNldAotICAgICAgICBieSBwYXNzaW5nIGEgYGBkZXN0YGAgYXR0cmlidXRlLCBmb3IgZXhhbXBs
ZQotICAgICAgICBgYGFkZG9wdGlvbigiLS1sb25nIiwgZGVzdD0iTkFNRSIsIC4uLilgYC4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2Fub255bW91cy5hZGRvcHRpb24oKm9wdHMsICoqYXR0
cnMpCi0KLSAgICBkZWYgcGFyc2Uoc2VsZiwgYXJncywgbmFtZXNwYWNlPU5vbmUpOgotICAgICAg
ICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCB0cnlfYXJnY29tcGxldGUKLSAgICAg
ICAgc2VsZi5vcHRwYXJzZXIgPSBzZWxmLl9nZXRwYXJzZXIoKQotICAgICAgICB0cnlfYXJnY29t
cGxldGUoc2VsZi5vcHRwYXJzZXIpCi0gICAgICAgIHJldHVybiBzZWxmLm9wdHBhcnNlci5wYXJz
ZV9hcmdzKFtzdHIoeCkgZm9yIHggaW4gYXJnc10sIG5hbWVzcGFjZT1uYW1lc3BhY2UpCi0KLSAg
ICBkZWYgX2dldHBhcnNlcihzZWxmKToKLSAgICAgICAgZnJvbSBfcHl0ZXN0Ll9hcmdjb21wbGV0
ZSBpbXBvcnQgZmlsZXNjb21wbGV0ZXIKLSAgICAgICAgb3B0cGFyc2VyID0gTXlPcHRpb25QYXJz
ZXIoc2VsZiwgc2VsZi5leHRyYV9pbmZvKQotICAgICAgICBncm91cHMgPSBzZWxmLl9ncm91cHMg
KyBbc2VsZi5fYW5vbnltb3VzXQotICAgICAgICBmb3IgZ3JvdXAgaW4gZ3JvdXBzOgotICAgICAg
ICAgICAgaWYgZ3JvdXAub3B0aW9uczoKLSAgICAgICAgICAgICAgICBkZXNjID0gZ3JvdXAuZGVz
Y3JpcHRpb24gb3IgZ3JvdXAubmFtZQotICAgICAgICAgICAgICAgIGFyZ2dyb3VwID0gb3B0cGFy
c2VyLmFkZF9hcmd1bWVudF9ncm91cChkZXNjKQotICAgICAgICAgICAgICAgIGZvciBvcHRpb24g
aW4gZ3JvdXAub3B0aW9uczoKLSAgICAgICAgICAgICAgICAgICAgbiA9IG9wdGlvbi5uYW1lcygp
Ci0gICAgICAgICAgICAgICAgICAgIGEgPSBvcHRpb24uYXR0cnMoKQotICAgICAgICAgICAgICAg
ICAgICBhcmdncm91cC5hZGRfYXJndW1lbnQoKm4sICoqYSkKLSAgICAgICAgIyBiYXNoIGxpa2Ug
YXV0b2NvbXBsZXRpb24gZm9yIGRpcnMgKGFwcGVuZGluZyAnLycpCi0gICAgICAgIG9wdHBhcnNl
ci5hZGRfYXJndW1lbnQoRklMRV9PUl9ESVIsIG5hcmdzPScqJykuY29tcGxldGVyID0gZmlsZXNj
b21wbGV0ZXIKLSAgICAgICAgcmV0dXJuIG9wdHBhcnNlcgotCi0gICAgZGVmIHBhcnNlX3NldG9w
dGlvbihzZWxmLCBhcmdzLCBvcHRpb24sIG5hbWVzcGFjZT1Ob25lKToKLSAgICAgICAgcGFyc2Vk
b3B0aW9uID0gc2VsZi5wYXJzZShhcmdzLCBuYW1lc3BhY2U9bmFtZXNwYWNlKQotICAgICAgICBm
b3IgbmFtZSwgdmFsdWUgaW4gcGFyc2Vkb3B0aW9uLl9fZGljdF9fLml0ZW1zKCk6Ci0gICAgICAg
ICAgICBzZXRhdHRyKG9wdGlvbiwgbmFtZSwgdmFsdWUpCi0gICAgICAgIHJldHVybiBnZXRhdHRy
KHBhcnNlZG9wdGlvbiwgRklMRV9PUl9ESVIpCi0KLSAgICBkZWYgcGFyc2Vfa25vd25fYXJncyhz
ZWxmLCBhcmdzLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgICIiInBhcnNlcyBhbmQgcmV0dXJu
cyBhIG5hbWVzcGFjZSBvYmplY3Qgd2l0aCBrbm93biBhcmd1bWVudHMgYXQgdGhpcwotICAgICAg
ICBwb2ludC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnBhcnNlX2tub3duX2Fu
ZF91bmtub3duX2FyZ3MoYXJncywgbmFtZXNwYWNlPW5hbWVzcGFjZSlbMF0KLQotICAgIGRlZiBw
YXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKHNlbGYsIGFyZ3MsIG5hbWVzcGFjZT1Ob25lKToK
LSAgICAgICAgIiIicGFyc2VzIGFuZCByZXR1cm5zIGEgbmFtZXNwYWNlIG9iamVjdCB3aXRoIGtu
b3duIGFyZ3VtZW50cywgYW5kCi0gICAgICAgIHRoZSByZW1haW5pbmcgYXJndW1lbnRzIHVua25v
d24gYXQgdGhpcyBwb2ludC4KLSAgICAgICAgIiIiCi0gICAgICAgIG9wdHBhcnNlciA9IHNlbGYu
X2dldHBhcnNlcigpCi0gICAgICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4IGluIGFyZ3NdCi0gICAg
ICAgIHJldHVybiBvcHRwYXJzZXIucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9bmFt
ZXNwYWNlKQotCi0gICAgZGVmIGFkZGluaShzZWxmLCBuYW1lLCBoZWxwLCB0eXBlPU5vbmUsIGRl
ZmF1bHQ9Tm9uZSk6Ci0gICAgICAgICIiIiByZWdpc3RlciBhbiBpbmktZmlsZSBvcHRpb24uCi0K
LSAgICAgICAgOm5hbWU6IG5hbWUgb2YgdGhlIGluaS12YXJpYWJsZQotICAgICAgICA6dHlwZTog
dHlwZSBvZiB0aGUgdmFyaWFibGUsIGNhbiBiZSBgYHBhdGhsaXN0YGAsIGBgYXJnc2BgLCBgYGxp
bmVsaXN0YGAKLSAgICAgICAgICAgICAgIG9yIGBgYm9vbGBgLgotICAgICAgICA6ZGVmYXVsdDog
ZGVmYXVsdCB2YWx1ZSBpZiBubyBpbmktZmlsZSBvcHRpb24gZXhpc3RzIGJ1dCBpcyBxdWVyaWVk
LgotCi0gICAgICAgIFRoZSB2YWx1ZSBvZiBpbmktdmFyaWFibGVzIGNhbiBiZSByZXRyaWV2ZWQg
dmlhIGEgY2FsbCB0bwotICAgICAgICA6cHk6ZnVuYzpgY29uZmlnLmdldGluaShuYW1lKSA8X3B5
dGVzdC5jb25maWcuQ29uZmlnLmdldGluaT5gLgotICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0
IHR5cGUgaW4gKE5vbmUsICJwYXRobGlzdCIsICJhcmdzIiwgImxpbmVsaXN0IiwgImJvb2wiKQot
ICAgICAgICBzZWxmLl9pbmlkaWN0W25hbWVdID0gKGhlbHAsIHR5cGUsIGRlZmF1bHQpCi0gICAg
ICAgIHNlbGYuX2luaW5hbWVzLmFwcGVuZChuYW1lKQotCi0KLWNsYXNzIEFyZ3VtZW50RXJyb3Io
RXhjZXB0aW9uKToKLSAgICAiIiIKLSAgICBSYWlzZWQgaWYgYW4gQXJndW1lbnQgaW5zdGFuY2Ug
aXMgY3JlYXRlZCB3aXRoIGludmFsaWQgb3IKLSAgICBpbmNvbnNpc3RlbnQgYXJndW1lbnRzLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZywgb3B0aW9uKToKLSAgICAgICAg
c2VsZi5tc2cgPSBtc2cKLSAgICAgICAgc2VsZi5vcHRpb25faWQgPSBzdHIob3B0aW9uKQotCi0g
ICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYub3B0aW9uX2lkOgotICAgICAg
ICAgICAgcmV0dXJuICJvcHRpb24gJXM6ICVzIiAlIChzZWxmLm9wdGlvbl9pZCwgc2VsZi5tc2cp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5tc2cKLQotCi1jbGFzcyBB
cmd1bWVudDoKLSAgICAiIiJjbGFzcyB0aGF0IG1pbWljcyB0aGUgbmVjZXNzYXJ5IGJlaGF2aW91
ciBvZiBvcHRwYXJzZS5PcHRpb24KLQotICAgIGl0cyBjdXJyZW50bHkgYSBsZWFzdCBlZmZvcnQg
aW1wbGVtZW50YXRpb24KLSAgICBhbmQgaWdub3JpbmcgY2hvaWNlcyBhbmQgaW50ZWdlciBwcmVm
aXhlcwotICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9vcHRwYXJzZS5odG1s
I29wdHBhcnNlLXN0YW5kYXJkLW9wdGlvbi10eXBlcwotICAgICIiIgotICAgIF90eXBfbWFwID0g
ewotICAgICAgICAnaW50JzogaW50LAotICAgICAgICAnc3RyaW5nJzogc3RyLAotICAgICAgICAn
ZmxvYXQnOiBmbG9hdCwKLSAgICAgICAgJ2NvbXBsZXgnOiBjb21wbGV4LAotICAgIH0KLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCAqbmFtZXMsICoqYXR0cnMpOgotICAgICAgICAiIiJzdG9yZSBw
YXJtcyBpbiBwcml2YXRlIHZhcnMgZm9yIHVzZSBpbiBhZGRfYXJndW1lbnQiIiIKLSAgICAgICAg
c2VsZi5fYXR0cnMgPSBhdHRycwotICAgICAgICBzZWxmLl9zaG9ydF9vcHRzID0gW10KLSAgICAg
ICAgc2VsZi5fbG9uZ19vcHRzID0gW10KLSAgICAgICAgc2VsZi5kZXN0ID0gYXR0cnMuZ2V0KCdk
ZXN0JykKLSAgICAgICAgaWYgJyVkZWZhdWx0JyBpbiAoYXR0cnMuZ2V0KCdoZWxwJykgb3IgJycp
OgotICAgICAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAncHl0ZXN0IG5v
dyB1c2VzIGFyZ3BhcnNlLiAiJWRlZmF1bHQiIHNob3VsZCBiZScKLSAgICAgICAgICAgICAgICAn
IGNoYW5nZWQgdG8gIiUoZGVmYXVsdClzIiAnLAotICAgICAgICAgICAgICAgIERlcHJlY2F0aW9u
V2FybmluZywKLSAgICAgICAgICAgICAgICBzdGFja2xldmVsPTMpCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHR5cCA9IGF0dHJzWyd0eXBlJ10KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgot
ICAgICAgICAgICAgcGFzcwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyB0aGlzIG1pZ2h0
IHJhaXNlIGEga2V5ZXJyb3IgYXMgd2VsbCwgZG9uJ3Qgd2FudCB0byBjYXRjaCB0aGF0Ci0gICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKHR5cCwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAg
ICAgICAgaWYgdHlwID09ICdjaG9pY2UnOgotICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKAotICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUgYXJndW1lbnQgdG8gYWRkb3B0aW9u
KCkgaXMgYSBzdHJpbmcgJXIuJwotICAgICAgICAgICAgICAgICAgICAgICAgJyBGb3IgcGFyc2Vh
cmcgdGhpcyBpcyBvcHRpb25hbCBhbmQgd2hlbiBzdXBwbGllZCcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICcgc2hvdWxkIGJlIGEgdHlwZS4nCi0gICAgICAgICAgICAgICAgICAgICAgICAnIChv
cHRpb25zOiAlcyknICUgKHR5cCwgbmFtZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgRGVw
cmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0zKQot
ICAgICAgICAgICAgICAgICAgICAjIGFyZ3BhcnNlIGV4cGVjdHMgYSB0eXBlIGhlcmUgdGFrZSBp
dCBmcm9tCi0gICAgICAgICAgICAgICAgICAgICMgdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGVsZW1l
bnQKLSAgICAgICAgICAgICAgICAgICAgYXR0cnNbJ3R5cGUnXSA9IHR5cGUoYXR0cnNbJ2Nob2lj
ZXMnXVswXSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKAotICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUgYXJndW1lbnQgdG8gYWRk
b3B0aW9uKCkgaXMgYSBzdHJpbmcgJXIuJwotICAgICAgICAgICAgICAgICAgICAgICAgJyBGb3Ig
cGFyc2VhcmcgdGhpcyBzaG91bGQgYmUgYSB0eXBlLicKLSAgICAgICAgICAgICAgICAgICAgICAg
ICcgKG9wdGlvbnM6ICVzKScgJSAodHlwLCBuYW1lcyksCi0gICAgICAgICAgICAgICAgICAgICAg
ICBEZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdGFja2xldmVs
PTMpCi0gICAgICAgICAgICAgICAgICAgIGF0dHJzWyd0eXBlJ10gPSBBcmd1bWVudC5fdHlwX21h
cFt0eXBdCi0gICAgICAgICAgICAgICAgIyB1c2VkIGluIHRlc3RfcGFyc2VvcHQgLT4gdGVzdF9w
YXJzZV9kZWZhdWx0Z2V0dGVyCi0gICAgICAgICAgICAgICAgc2VsZi50eXBlID0gYXR0cnNbJ3R5
cGUnXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnR5cGUgPSB0eXAK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBhdHRyaWJ1dGUgZXhpc3RlbmNlIGlzIHRlc3Rl
ZCBpbiBDb25maWcuX3Byb2Nlc3NvcHQKLSAgICAgICAgICAgIHNlbGYuZGVmYXVsdCA9IGF0dHJz
WydkZWZhdWx0J10KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcGFzcwot
ICAgICAgICBzZWxmLl9zZXRfb3B0X3N0cmluZ3MobmFtZXMpCi0gICAgICAgIGlmIG5vdCBzZWxm
LmRlc3Q6Ci0gICAgICAgICAgICBpZiBzZWxmLl9sb25nX29wdHM6Ci0gICAgICAgICAgICAgICAg
c2VsZi5kZXN0ID0gc2VsZi5fbG9uZ19vcHRzWzBdWzI6XS5yZXBsYWNlKCctJywgJ18nKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuZGVzdCA9IHNlbGYuX3Nob3J0X29wdHNbMF1bMTpdCi0gICAgICAgICAgICAgICAgZXhj
ZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3Io
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCBhIGxvbmcgb3Igc2hvcnQgb3B0aW9uJywg
c2VsZikKLQotICAgIGRlZiBuYW1lcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Nob3J0
X29wdHMgKyBzZWxmLl9sb25nX29wdHMKLQotICAgIGRlZiBhdHRycyhzZWxmKToKLSAgICAgICAg
IyB1cGRhdGUgYW55IGF0dHJpYnV0ZXMgc2V0IGJ5IHByb2Nlc3NvcHQKLSAgICAgICAgYXR0cnMg
PSAnZGVmYXVsdCBkZXN0IGhlbHAnLnNwbGl0KCkKLSAgICAgICAgaWYgc2VsZi5kZXN0OgotICAg
ICAgICAgICAgYXR0cnMuYXBwZW5kKHNlbGYuZGVzdCkKLSAgICAgICAgZm9yIGF0dHIgaW4gYXR0
cnM6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fYXR0cnNbYXR0cl0g
PSBnZXRhdHRyKHNlbGYsIGF0dHIpCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICBpZiBzZWxmLl9hdHRycy5nZXQoJ2hlbHAn
KToKLSAgICAgICAgICAgIGEgPSBzZWxmLl9hdHRyc1snaGVscCddCi0gICAgICAgICAgICBhID0g
YS5yZXBsYWNlKCclZGVmYXVsdCcsICclKGRlZmF1bHQpcycpCi0gICAgICAgICAgICAjIGEgPSBh
LnJlcGxhY2UoJyVwcm9nJywgJyUocHJvZylzJykKLSAgICAgICAgICAgIHNlbGYuX2F0dHJzWydo
ZWxwJ10gPSBhCi0gICAgICAgIHJldHVybiBzZWxmLl9hdHRycwotCi0gICAgZGVmIF9zZXRfb3B0
X3N0cmluZ3Moc2VsZiwgb3B0cyk6Ci0gICAgICAgICIiImRpcmVjdGx5IGZyb20gb3B0cGFyc2UK
LQotICAgICAgICBtaWdodCBub3QgYmUgbmVjZXNzYXJ5IGFzIHRoaXMgaXMgcGFzc2VkIHRvIGFy
Z3BhcnNlIGxhdGVyIG9uIiIiCi0gICAgICAgIGZvciBvcHQgaW4gb3B0czoKLSAgICAgICAgICAg
IGlmIGxlbihvcHQpIDwgMjoKLSAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVycm9yKAot
ICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBvcHRpb24gc3RyaW5nICVyOiAiCi0gICAgICAg
ICAgICAgICAgICAgICJtdXN0IGJlIGF0IGxlYXN0IHR3byBjaGFyYWN0ZXJzIGxvbmciICUgb3B0
LCBzZWxmKQotICAgICAgICAgICAgZWxpZiBsZW4ob3B0KSA9PSAyOgotICAgICAgICAgICAgICAg
IGlmIG5vdCAob3B0WzBdID09ICItIiBhbmQgb3B0WzFdICE9ICItIik6Ci0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiaW52
YWxpZCBzaG9ydCBvcHRpb24gc3RyaW5nICVyOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAi
bXVzdCBiZSBvZiB0aGUgZm9ybSAteCwgKHggYW55IG5vbi1kYXNoIGNoYXIpIiAlIG9wdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5fc2hvcnRf
b3B0cy5hcHBlbmQob3B0KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBu
b3QgKG9wdFswOjJdID09ICItLSIgYW5kIG9wdFsyXSAhPSAiLSIpOgotICAgICAgICAgICAgICAg
ICAgICByYWlzZSBBcmd1bWVudEVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgImludmFs
aWQgbG9uZyBvcHRpb24gc3RyaW5nICVyOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAibXVz
dCBzdGFydCB3aXRoIC0tLCBmb2xsb3dlZCBieSBub24tZGFzaCIgJSBvcHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvbmdfb3B0cy5hcHBl
bmQob3B0KQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBhcmdzID0gW10KLSAg
ICAgICAgaWYgc2VsZi5fc2hvcnRfb3B0czoKLSAgICAgICAgICAgIGFyZ3MgKz0gWydfc2hvcnRf
b3B0czogJyArIHJlcHIoc2VsZi5fc2hvcnRfb3B0cyldCi0gICAgICAgIGlmIHNlbGYuX2xvbmdf
b3B0czoKLSAgICAgICAgICAgIGFyZ3MgKz0gWydfbG9uZ19vcHRzOiAnICsgcmVwcihzZWxmLl9s
b25nX29wdHMpXQotICAgICAgICBhcmdzICs9IFsnZGVzdDogJyArIHJlcHIoc2VsZi5kZXN0KV0K
LSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAndHlwZScpOgotICAgICAgICAgICAgYXJncyArPSBb
J3R5cGU6ICcgKyByZXByKHNlbGYudHlwZSldCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2Rl
ZmF1bHQnKToKLSAgICAgICAgICAgIGFyZ3MgKz0gWydkZWZhdWx0OiAnICsgcmVwcihzZWxmLmRl
ZmF1bHQpXQotICAgICAgICByZXR1cm4gJ0FyZ3VtZW50KHswfSknLmZvcm1hdCgnLCAnLmpvaW4o
YXJncykpCi0KLQotY2xhc3MgT3B0aW9uR3JvdXA6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIGRlc2NyaXB0aW9uPSIiLCBwYXJzZXI9Tm9uZSk6Ci0gICAgICAgIHNlbGYubmFtZSA9IG5h
bWUKLSAgICAgICAgc2VsZi5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uCi0gICAgICAgIHNlbGYu
b3B0aW9ucyA9IFtdCi0gICAgICAgIHNlbGYucGFyc2VyID0gcGFyc2VyCi0KLSAgICBkZWYgYWRk
b3B0aW9uKHNlbGYsICpvcHRuYW1lcywgKiphdHRycyk6Ci0gICAgICAgICIiIiBhZGQgYW4gb3B0
aW9uIHRvIHRoaXMgZ3JvdXAuCi0KLSAgICAgICAgaWYgYSBzaG9ydGVuZWQgdmVyc2lvbiBvZiBh
IGxvbmcgb3B0aW9uIGlzIHNwZWNpZmllZCBpdCB3aWxsCi0gICAgICAgIGJlIHN1cHByZXNzZWQg
aW4gdGhlIGhlbHAuIGFkZG9wdGlvbignLS10d293b3JkcycsICctLXR3by13b3JkcycpCi0gICAg
ICAgIHJlc3VsdHMgaW4gaGVscCBzaG93aW5nICctLXR3by13b3Jkcycgb25seSwgYnV0IC0tdHdv
d29yZHMgZ2V0cwotICAgICAgICBhY2NlcHRlZCAqKmFuZCoqIHRoZSBhdXRvbWF0aWMgZGVzdGlu
YXRpb24gaXMgaW4gYXJncy50d293b3JkcwotICAgICAgICAiIiIKLSAgICAgICAgY29uZmxpY3Qg
PSBzZXQob3B0bmFtZXMpLmludGVyc2VjdGlvbigKLSAgICAgICAgICAgIG5hbWUgZm9yIG9wdCBp
biBzZWxmLm9wdGlvbnMgZm9yIG5hbWUgaW4gb3B0Lm5hbWVzKCkpCi0gICAgICAgIGlmIGNvbmZs
aWN0OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3B0aW9uIG5hbWVzICVzIGFscmVh
ZHkgYWRkZWQiICUgY29uZmxpY3QpCi0gICAgICAgIG9wdGlvbiA9IEFyZ3VtZW50KCpvcHRuYW1l
cywgKiphdHRycykKLSAgICAgICAgc2VsZi5fYWRkb3B0aW9uX2luc3RhbmNlKG9wdGlvbiwgc2hv
cnR1cHBlcj1GYWxzZSkKLQotICAgIGRlZiBfYWRkb3B0aW9uKHNlbGYsICpvcHRuYW1lcywgKiph
dHRycyk6Ci0gICAgICAgIG9wdGlvbiA9IEFyZ3VtZW50KCpvcHRuYW1lcywgKiphdHRycykKLSAg
ICAgICAgc2VsZi5fYWRkb3B0aW9uX2luc3RhbmNlKG9wdGlvbiwgc2hvcnR1cHBlcj1UcnVlKQot
Ci0gICAgZGVmIF9hZGRvcHRpb25faW5zdGFuY2Uoc2VsZiwgb3B0aW9uLCBzaG9ydHVwcGVyPUZh
bHNlKToKLSAgICAgICAgaWYgbm90IHNob3J0dXBwZXI6Ci0gICAgICAgICAgICBmb3Igb3B0IGlu
IG9wdGlvbi5fc2hvcnRfb3B0czoKLSAgICAgICAgICAgICAgICBpZiBvcHRbMF0gPT0gJy0nIGFu
ZCBvcHRbMV0uaXNsb3dlcigpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJsb3dlcmNhc2Ugc2hvcnRvcHRpb25zIHJlc2VydmVkIikKLSAgICAgICAgaWYgc2VsZi5wYXJz
ZXI6Ci0gICAgICAgICAgICBzZWxmLnBhcnNlci5wcm9jZXNzb3B0aW9uKG9wdGlvbikKLSAgICAg
ICAgc2VsZi5vcHRpb25zLmFwcGVuZChvcHRpb24pCi0KLQotY2xhc3MgTXlPcHRpb25QYXJzZXIo
YXJncGFyc2UuQXJndW1lbnRQYXJzZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJzZXIs
IGV4dHJhX2luZm89Tm9uZSk6Ci0gICAgICAgIGlmIG5vdCBleHRyYV9pbmZvOgotICAgICAgICAg
ICAgZXh0cmFfaW5mbyA9IHt9Ci0gICAgICAgIHNlbGYuX3BhcnNlciA9IHBhcnNlcgotICAgICAg
ICBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlci5fX2luaXRfXyhzZWxmLCB1c2FnZT1wYXJzZXIuX3Vz
YWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfaGVscD1G
YWxzZSwgZm9ybWF0dGVyX2NsYXNzPURyb3BTaG9ydGVyTG9uZ0hlbHBGb3JtYXR0ZXIpCi0gICAg
ICAgICMgZXh0cmFfaW5mbyBpcyBhIGRpY3Qgb2YgKHBhcmFtIC0+IHZhbHVlKSB0byBkaXNwbGF5
IGlmIHRoZXJlJ3MKLSAgICAgICAgIyBhbiB1c2FnZSBlcnJvciB0byBwcm92aWRlIG1vcmUgY29u
dGV4dHVhbCBpbmZvcm1hdGlvbiB0byB0aGUgdXNlcgotICAgICAgICBzZWxmLmV4dHJhX2luZm8g
PSBleHRyYV9pbmZvCi0KLSAgICBkZWYgcGFyc2VfYXJncyhzZWxmLCBhcmdzPU5vbmUsIG5hbWVz
cGFjZT1Ob25lKToKLSAgICAgICAgIiIiYWxsb3cgc3BsaXR0aW5nIG9mIHBvc2l0aW9uYWwgYXJn
dW1lbnRzIiIiCi0gICAgICAgIGFyZ3MsIGFyZ3YgPSBzZWxmLnBhcnNlX2tub3duX2FyZ3MoYXJn
cywgbmFtZXNwYWNlKQotICAgICAgICBpZiBhcmd2OgotICAgICAgICAgICAgZm9yIGFyZyBpbiBh
cmd2OgotICAgICAgICAgICAgICAgIGlmIGFyZyBhbmQgYXJnWzBdID09ICctJzoKLSAgICAgICAg
ICAgICAgICAgICAgbGluZXMgPSBbJ3VucmVjb2duaXplZCBhcmd1bWVudHM6ICVzJyAlICgnICcu
am9pbihhcmd2KSldCi0gICAgICAgICAgICAgICAgICAgIGZvciBrLCB2IGluIHNvcnRlZChzZWxm
LmV4dHJhX2luZm8uaXRlbXMoKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoJyAgJXM6ICVzJyAlIChrLCB2KSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5lcnJvcign
XG4nLmpvaW4obGluZXMpKQotICAgICAgICAgICAgZ2V0YXR0cihhcmdzLCBGSUxFX09SX0RJUiku
ZXh0ZW5kKGFyZ3YpCi0gICAgICAgIHJldHVybiBhcmdzCi0KLQotY2xhc3MgRHJvcFNob3J0ZXJM
b25nSGVscEZvcm1hdHRlcihhcmdwYXJzZS5IZWxwRm9ybWF0dGVyKToKLSAgICAiIiJzaG9ydGVu
IGhlbHAgZm9yIGxvbmcgb3B0aW9ucyB0aGF0IGRpZmZlciBvbmx5IGluIGV4dHJhIGh5cGhlbnMK
LQotICAgIC0gY29sbGFwc2UgKipsb25nKiogb3B0aW9ucyB0aGF0IGFyZSB0aGUgc2FtZSBleGNl
cHQgZm9yIGV4dHJhIGh5cGhlbnMKLSAgICAtIHNwZWNpYWwgYWN0aW9uIGF0dHJpYnV0ZSBtYXBf
bG9uZ19vcHRpb24gYWxsb3dzIHN1cnByZXNzaW5nIGFkZGl0aW9uYWwKLSAgICAgIGxvbmcgb3B0
aW9ucwotICAgIC0gc2hvcnRjdXQgaWYgdGhlcmUgYXJlIG9ubHkgdHdvIG9wdGlvbnMgYW5kIG9u
ZSBvZiB0aGVtIGlzIGEgc2hvcnQgb25lCi0gICAgLSBjYWNoZSByZXN1bHQgb24gYWN0aW9uIG9i
amVjdCBhcyB0aGlzIGlzIGNhbGxlZCBhdCBsZWFzdCAyIHRpbWVzCi0gICAgIiIiCi0KLSAgICBk
ZWYgX2Zvcm1hdF9hY3Rpb25faW52b2NhdGlvbihzZWxmLCBhY3Rpb24pOgotICAgICAgICBvcmdz
dHIgPSBhcmdwYXJzZS5IZWxwRm9ybWF0dGVyLl9mb3JtYXRfYWN0aW9uX2ludm9jYXRpb24oc2Vs
ZiwgYWN0aW9uKQotICAgICAgICBpZiBvcmdzdHIgYW5kIG9yZ3N0clswXSAhPSAnLSc6ICAjIG9u
bHkgb3B0aW9uYWwgYXJndW1lbnRzCi0gICAgICAgICAgICByZXR1cm4gb3Jnc3RyCi0gICAgICAg
IHJlcyA9IGdldGF0dHIoYWN0aW9uLCAnX2Zvcm1hdHRlZF9hY3Rpb25faW52b2NhdGlvbicsIE5v
bmUpCi0gICAgICAgIGlmIHJlczoKLSAgICAgICAgICAgIHJldHVybiByZXMKLSAgICAgICAgb3B0
aW9ucyA9IG9yZ3N0ci5zcGxpdCgnLCAnKQotICAgICAgICBpZiBsZW4ob3B0aW9ucykgPT0gMiBh
bmQgKGxlbihvcHRpb25zWzBdKSA9PSAyIG9yIGxlbihvcHRpb25zWzFdKSA9PSAyKToKLSAgICAg
ICAgICAgICMgYSBzaG9ydGN1dCBmb3IgJy1oLCAtLWhlbHAnIG9yICctLWFiYycsICctYScKLSAg
ICAgICAgICAgIGFjdGlvbi5fZm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uID0gb3Jnc3RyCi0g
ICAgICAgICAgICByZXR1cm4gb3Jnc3RyCi0gICAgICAgIHJldHVybl9saXN0ID0gW10KLSAgICAg
ICAgb3B0aW9uX21hcCA9IGdldGF0dHIoYWN0aW9uLCAnbWFwX2xvbmdfb3B0aW9uJywge30pCi0g
ICAgICAgIGlmIG9wdGlvbl9tYXAgaXMgTm9uZToKLSAgICAgICAgICAgIG9wdGlvbl9tYXAgPSB7
fQotICAgICAgICBzaG9ydF9sb25nID0ge30KLSAgICAgICAgZm9yIG9wdGlvbiBpbiBvcHRpb25z
OgotICAgICAgICAgICAgaWYgbGVuKG9wdGlvbikgPT0gMiBvciBvcHRpb25bMl0gPT0gJyAnOgot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBub3Qgb3B0aW9uLnN0YXJ0
c3dpdGgoJy0tJyk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcignbG9uZyBv
cHRpb25hbCBhcmd1bWVudCB3aXRob3V0ICItLSI6IFslc10nCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAlIChvcHRpb24pLCBzZWxmKQotICAgICAgICAgICAgeHhvcHRpb24g
PSBvcHRpb25bMjpdCi0gICAgICAgICAgICBpZiB4eG9wdGlvbi5zcGxpdCgpWzBdIG5vdCBpbiBv
cHRpb25fbWFwOgotICAgICAgICAgICAgICAgIHNob3J0ZW5lZCA9IHh4b3B0aW9uLnJlcGxhY2Uo
Jy0nLCAnJykKLSAgICAgICAgICAgICAgICBpZiBzaG9ydGVuZWQgbm90IGluIHNob3J0X2xvbmcg
b3IgXAotICAgICAgICAgICAgICAgICAgIGxlbihzaG9ydF9sb25nW3Nob3J0ZW5lZF0pIDwgbGVu
KHh4b3B0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgc2hvcnRfbG9uZ1tzaG9ydGVuZWRdID0g
eHhvcHRpb24KLSAgICAgICAgIyBub3cgc2hvcnRfbG9uZyBoYXMgYmVlbiBmaWxsZWQgb3V0IHRv
IHRoZSBsb25nZXN0IHdpdGggZGFzaGVzCi0gICAgICAgICMgKiphbmQqKiB3ZSBrZWVwIHRoZSBy
aWdodCBvcHRpb24gb3JkZXJpbmcgZnJvbSBhZGRfYXJndW1lbnQKLSAgICAgICAgZm9yIG9wdGlv
biBpbiBvcHRpb25zOgotICAgICAgICAgICAgaWYgbGVuKG9wdGlvbikgPT0gMiBvciBvcHRpb25b
Ml0gPT0gJyAnOgotICAgICAgICAgICAgICAgIHJldHVybl9saXN0LmFwcGVuZChvcHRpb24pCi0g
ICAgICAgICAgICBpZiBvcHRpb25bMjpdID09IHNob3J0X2xvbmcuZ2V0KG9wdGlvbi5yZXBsYWNl
KCctJywgJycpKToKLSAgICAgICAgICAgICAgICByZXR1cm5fbGlzdC5hcHBlbmQob3B0aW9uLnJl
cGxhY2UoJyAnLCAnPScsIDEpKQotICAgICAgICBhY3Rpb24uX2Zvcm1hdHRlZF9hY3Rpb25faW52
b2NhdGlvbiA9ICcsICcuam9pbihyZXR1cm5fbGlzdCkKLSAgICAgICAgcmV0dXJuIGFjdGlvbi5f
Zm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uCi0KLQotZGVmIF9lbnN1cmVfcmVtb3ZlZF9zeXNt
b2R1bGUobW9kbmFtZSk6Ci0gICAgdHJ5OgotICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbW9kbmFt
ZV0KLSAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBDbWRPcHRp
b25zKG9iamVjdCk6Ci0gICAgIiIiIGhvbGRzIGNtZGxpbmUgb3B0aW9ucyBhcyBhdHRyaWJ1dGVz
LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlcz0oKSk6Ci0gICAgICAgIHNlbGYu
X19kaWN0X18udXBkYXRlKHZhbHVlcykKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuICI8Q21kT3B0aW9ucyAlcj4iICUgKHNlbGYuX19kaWN0X18sKQotCi0gICAgZGVm
IGNvcHkoc2VsZik6Ci0gICAgICAgIHJldHVybiBDbWRPcHRpb25zKHNlbGYuX19kaWN0X18pCi0K
LQotY2xhc3MgTm90c2V0OgotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
ICI8Tk9UU0VUPiIKLQotCi1ub3RzZXQgPSBOb3RzZXQoKQotRklMRV9PUl9ESVIgPSAnZmlsZV9v
cl9kaXInCi0KLQotZGVmIF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcyhwYWNrYWdlX2ZpbGVzKToK
LSAgICBmb3IgZm4gaW4gcGFja2FnZV9maWxlczoKLSAgICAgICAgaXNfc2ltcGxlX21vZHVsZSA9
ICcvJyBub3QgaW4gZm4gYW5kIGZuLmVuZHN3aXRoKCcucHknKQotICAgICAgICBpc19wYWNrYWdl
ID0gZm4uY291bnQoJy8nKSA9PSAxIGFuZCBmbi5lbmRzd2l0aCgnX19pbml0X18ucHknKQotICAg
ICAgICBpZiBpc19zaW1wbGVfbW9kdWxlOgotICAgICAgICAgICAgbW9kdWxlX25hbWUsIF8gPSBv
cy5wYXRoLnNwbGl0ZXh0KGZuKQotICAgICAgICAgICAgeWllbGQgbW9kdWxlX25hbWUKLSAgICAg
ICAgZWxpZiBpc19wYWNrYWdlOgotICAgICAgICAgICAgcGFja2FnZV9uYW1lID0gb3MucGF0aC5k
aXJuYW1lKGZuKQotICAgICAgICAgICAgeWllbGQgcGFja2FnZV9uYW1lCi0KLQotY2xhc3MgQ29u
ZmlnKG9iamVjdCk6Ci0gICAgIiIiIGFjY2VzcyB0byBjb25maWd1cmF0aW9uIHZhbHVlcywgcGx1
Z2lubWFuYWdlciBhbmQgcGx1Z2luIGhvb2tzLiAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcGx1Z2lubWFuYWdlcik6Ci0gICAgICAgICM6IGFjY2VzcyB0byBjb21tYW5kIGxpbmUgb3B0
aW9uIGFzIGF0dHJpYnV0ZXMuCi0gICAgICAgICM6IChkZXByZWNhdGVkKSwgdXNlIDpweTpmdW5j
OmBnZXRvcHRpb24oKSA8X3B5dGVzdC5jb25maWcuQ29uZmlnLmdldG9wdGlvbj5gIGluc3RlYWQK
LSAgICAgICAgc2VsZi5vcHRpb24gPSBDbWRPcHRpb25zKCkKLSAgICAgICAgX2EgPSBGSUxFX09S
X0RJUgotICAgICAgICBzZWxmLl9wYXJzZXIgPSBQYXJzZXIoCi0gICAgICAgICAgICB1c2FnZT0i
JSUocHJvZylzIFtvcHRpb25zXSBbJXNdIFslc10gWy4uLl0iICUgKF9hLCBfYSksCi0gICAgICAg
ICAgICBwcm9jZXNzb3B0PXNlbGYuX3Byb2Nlc3NvcHQsCi0gICAgICAgICkKLSAgICAgICAgIzog
YSBwbHVnaW5tYW5hZ2VyIGluc3RhbmNlCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlciA9IHBs
dWdpbm1hbmFnZXIKLSAgICAgICAgc2VsZi50cmFjZSA9IHNlbGYucGx1Z2lubWFuYWdlci50cmFj
ZS5yb290LmdldCgiY29uZmlnIikKLSAgICAgICAgc2VsZi5ob29rID0gc2VsZi5wbHVnaW5tYW5h
Z2VyLmhvb2sKLSAgICAgICAgc2VsZi5faW5pY2FjaGUgPSB7fQotICAgICAgICBzZWxmLl9vdmVy
cmlkZV9pbmkgPSAoKQotICAgICAgICBzZWxmLl9vcHQyZGVzdCA9IHt9Ci0gICAgICAgIHNlbGYu
X2NsZWFudXAgPSBbXQotICAgICAgICBzZWxmLl93YXJuID0gc2VsZi5wbHVnaW5tYW5hZ2VyLl93
YXJuCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5yZWdpc3RlcihzZWxmLCAicHl0ZXN0Y29u
ZmlnIikKLSAgICAgICAgc2VsZi5fY29uZmlndXJlZCA9IEZhbHNlCi0KLSAgICAgICAgZGVmIGRv
X3NldG5zKGRpYyk6Ci0gICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICBzZXRu
cyhweXRlc3QsIGRpYykKLQotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X25hbWVzcGFjZS5jYWxs
X2hpc3RvcmljKGRvX3NldG5zLCB7fSkKLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9hZGRvcHRp
b24uY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdChwYXJzZXI9c2VsZi5fcGFyc2VyKSkKLQotICAg
IGRlZiBhZGRfY2xlYW51cChzZWxmLCBmdW5jKToKLSAgICAgICAgIiIiIEFkZCBhIGZ1bmN0aW9u
IHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb25maWcgb2JqZWN0IGdldHMgb3V0IG9mCi0gICAgICAg
IHVzZSAodXN1YWxseSBjb25pbmNpZGluZyB3aXRoIHB5dGVzdF91bmNvbmZpZ3VyZSkuIiIiCi0g
ICAgICAgIHNlbGYuX2NsZWFudXAuYXBwZW5kKGZ1bmMpCi0KLSAgICBkZWYgX2RvX2NvbmZpZ3Vy
ZShzZWxmKToKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLl9jb25maWd1cmVkCi0gICAgICAgIHNl
bGYuX2NvbmZpZ3VyZWQgPSBUcnVlCi0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfY29uZmlndXJl
LmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QoY29uZmlnPXNlbGYpKQotCi0gICAgZGVmIF9lbnN1
cmVfdW5jb25maWd1cmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2NvbmZpZ3VyZWQ6Ci0gICAg
ICAgICAgICBzZWxmLl9jb25maWd1cmVkID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuaG9vay5w
eXRlc3RfdW5jb25maWd1cmUoY29uZmlnPXNlbGYpCi0gICAgICAgICAgICBzZWxmLmhvb2sucHl0
ZXN0X2NvbmZpZ3VyZS5fY2FsbF9oaXN0b3J5ID0gW10KLSAgICAgICAgd2hpbGUgc2VsZi5fY2xl
YW51cDoKLSAgICAgICAgICAgIGZpbiA9IHNlbGYuX2NsZWFudXAucG9wKCkKLSAgICAgICAgICAg
IGZpbigpCi0KLSAgICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNzYWdlLCBmc2xvY2F0aW9uPU5v
bmUsIG5vZGVpZD1Ob25lKToKLSAgICAgICAgIiIiIGdlbmVyYXRlIGEgd2FybmluZyBmb3IgdGhp
cyB0ZXN0IHNlc3Npb24uICIiIgotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2xvZ3dhcm5pbmcu
Y2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdCgKLSAgICAgICAgICAgIGNvZGU9Y29kZSwgbWVzc2Fn
ZT1tZXNzYWdlLAotICAgICAgICAgICAgZnNsb2NhdGlvbj1mc2xvY2F0aW9uLCBub2RlaWQ9bm9k
ZWlkKSkKLQotICAgIGRlZiBnZXRfdGVybWluYWxfd3JpdGVyKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oInRlcm1pbmFscmVwb3J0ZXIiKS5fdHcK
LQotICAgIGRlZiBweXRlc3RfY21kbGluZV9wYXJzZShzZWxmLCBwbHVnaW5tYW5hZ2VyLCBhcmdz
KToKLSAgICAgICAgIyBSRUYxIGFzc2VydCBzZWxmID09IHBsdWdpbm1hbmFnZXIuY29uZmlnLCAo
c2VsZiwgcGx1Z2lubWFuYWdlci5jb25maWcpCi0gICAgICAgIHNlbGYucGFyc2UoYXJncykKLSAg
ICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBub3RpZnlfZXhjZXB0aW9uKHNlbGYsIGV4Y2lu
Zm8sIG9wdGlvbj1Ob25lKToKLSAgICAgICAgaWYgb3B0aW9uIGFuZCBvcHRpb24uZnVsbHRyYWNl
OgotICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHN0eWxlID0gIm5hdGl2ZSIKLSAgICAgICAgZXhjcmVwciA9IGV4Y2luZm8uZ2V0cmVwcihmdW5j
YXJncz1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dsb2NhbHM9
Z2V0YXR0cihvcHRpb24sICdzaG93bG9jYWxzJywgRmFsc2UpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0eWxlPXN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkKLSAgICAgICAgcmVzID0gc2VsZi5ob29rLnB5dGVzdF9pbnRlcm5hbGVycm9yKGV4
Y3JlcHI9ZXhjcmVwciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4Y2luZm89ZXhjaW5mbykKLSAgICAgICAgaWYgbm90IGFueShyZXMpOgotICAgICAgICAg
ICAgZm9yIGxpbmUgaW4gc3RyKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoIklOVEVSTkFMRVJST1I+ICVzXG4iICUgbGluZSkKLSAgICAgICAg
ICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKLQotICAgIGRlZiBjd2RfcmVsYXRpdmVfbm9kZWlk
KHNlbGYsIG5vZGVpZCk6Ci0gICAgICAgICMgbm9kZWlkJ3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBy
b290cGF0aCwgY29tcHV0ZSByZWxhdGl2ZSB0byBjd2QKLSAgICAgICAgaWYgc2VsZi5pbnZvY2F0
aW9uX2RpciAhPSBzZWxmLnJvb3RkaXI6Ci0gICAgICAgICAgICBmdWxscGF0aCA9IHNlbGYucm9v
dGRpci5qb2luKG5vZGVpZCkKLSAgICAgICAgICAgIG5vZGVpZCA9IHNlbGYuaW52b2NhdGlvbl9k
aXIuYmVzdHJlbHBhdGgoZnVsbHBhdGgpCi0gICAgICAgIHJldHVybiBub2RlaWQKLQotICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBmcm9tZGljdGFyZ3MoY2xzLCBvcHRpb25fZGljdCwgYXJncyk6
Ci0gICAgICAgICIiIiBjb25zdHJ1Y3RvciB1c2VhYmxlIGZvciBzdWJwcm9jZXNzZXMuICIiIgot
ICAgICAgICBjb25maWcgPSBnZXRfY29uZmlnKCkKLSAgICAgICAgY29uZmlnLm9wdGlvbi5fX2Rp
Y3RfXy51cGRhdGUob3B0aW9uX2RpY3QpCi0gICAgICAgIGNvbmZpZy5wYXJzZShhcmdzLCBhZGRv
cHRzPUZhbHNlKQotICAgICAgICBmb3IgeCBpbiBjb25maWcub3B0aW9uLnBsdWdpbnM6Ci0gICAg
ICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5jb25zaWRlcl9wbHVnaW5hcmcoeCkKLSAgICAg
ICAgcmV0dXJuIGNvbmZpZwotCi0gICAgZGVmIF9wcm9jZXNzb3B0KHNlbGYsIG9wdCk6Ci0gICAg
ICAgIGZvciBuYW1lIGluIG9wdC5fc2hvcnRfb3B0cyArIG9wdC5fbG9uZ19vcHRzOgotICAgICAg
ICAgICAgc2VsZi5fb3B0MmRlc3RbbmFtZV0gPSBvcHQuZGVzdAotCi0gICAgICAgIGlmIGhhc2F0
dHIob3B0LCAnZGVmYXVsdCcpIGFuZCBvcHQuZGVzdDoKLSAgICAgICAgICAgIGlmIG5vdCBoYXNh
dHRyKHNlbGYub3B0aW9uLCBvcHQuZGVzdCk6Ci0gICAgICAgICAgICAgICAgc2V0YXR0cihzZWxm
Lm9wdGlvbiwgb3B0LmRlc3QsIG9wdC5kZWZhdWx0KQotCi0gICAgQGhvb2tpbXBsKHRyeWxhc3Q9
VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZiwgZWFybHlf
Y29uZmlnKToKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLl9zZXRfaW5pdGlhbF9jb25mdGVz
dHMoZWFybHlfY29uZmlnLmtub3duX2FyZ3NfbmFtZXNwYWNlKQotCi0gICAgZGVmIF9pbml0aW5p
KHNlbGYsIGFyZ3MpOgotICAgICAgICBucywgdW5rbm93bl9hcmdzID0gc2VsZi5fcGFyc2VyLnBh
cnNlX2tub3duX2FuZF91bmtub3duX2FyZ3MoYXJncywgbmFtZXNwYWNlPXNlbGYub3B0aW9uLmNv
cHkoKSkKLSAgICAgICAgciA9IGRldGVybWluZV9zZXR1cChucy5pbmlmaWxlbmFtZSwgbnMuZmls
ZV9vcl9kaXIgKyB1bmtub3duX2FyZ3MsIHdhcm5mdW5jPXNlbGYud2FybikKLSAgICAgICAgc2Vs
Zi5yb290ZGlyLCBzZWxmLmluaWZpbGUsIHNlbGYuaW5pY2ZnID0gcgotICAgICAgICBzZWxmLl9w
YXJzZXIuZXh0cmFfaW5mb1sncm9vdGRpciddID0gc2VsZi5yb290ZGlyCi0gICAgICAgIHNlbGYu
X3BhcnNlci5leHRyYV9pbmZvWydpbmlmaWxlJ10gPSBzZWxmLmluaWZpbGUKLSAgICAgICAgc2Vs
Zi5pbnZvY2F0aW9uX2RpciA9IHB5LnBhdGgubG9jYWwoKQotICAgICAgICBzZWxmLl9wYXJzZXIu
YWRkaW5pKCdhZGRvcHRzJywgJ2V4dHJhIGNvbW1hbmQgbGluZSBvcHRpb25zJywgJ2FyZ3MnKQot
ICAgICAgICBzZWxmLl9wYXJzZXIuYWRkaW5pKCdtaW52ZXJzaW9uJywgJ21pbmltYWxseSByZXF1
aXJlZCBweXRlc3QgdmVyc2lvbicpCi0gICAgICAgIHNlbGYuX292ZXJyaWRlX2luaSA9IG5zLm92
ZXJyaWRlX2luaSBvciAoKQotCi0gICAgZGVmIF9jb25zaWRlcl9pbXBvcnRob29rKHNlbGYsIGFy
Z3MpOgotICAgICAgICAiIiJJbnN0YWxsIHRoZSBQRVAgMzAyIGltcG9ydCBob29rIGlmIHVzaW5n
IGFzc2VydGlvbiByZXdyaXRpbmcuCi0KLSAgICAgICAgTmVlZHMgdG8gcGFyc2UgdGhlIC0tYXNz
ZXJ0PTxtb2RlPiBvcHRpb24gZnJvbSB0aGUgY29tbWFuZGxpbmUKLSAgICAgICAgYW5kIGZpbmQg
YWxsIHRoZSBpbnN0YWxsZWQgcGx1Z2lucyB0byBtYXJrIHRoZW0gZm9yIHJld3JpdGluZwotICAg
ICAgICBieSB0aGUgaW1wb3J0aG9vay4KLSAgICAgICAgIiIiCi0gICAgICAgIG5zLCB1bmtub3du
X2FyZ3MgPSBzZWxmLl9wYXJzZXIucGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhhcmdzKQot
ICAgICAgICBtb2RlID0gbnMuYXNzZXJ0bW9kZQotICAgICAgICBpZiBtb2RlID09ICdyZXdyaXRl
JzoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBob29rID0gX3B5dGVzdC5hc3Nl
cnRpb24uaW5zdGFsbF9pbXBvcnRob29rKHNlbGYpCi0gICAgICAgICAgICBleGNlcHQgU3lzdGVt
RXJyb3I6Ci0gICAgICAgICAgICAgICAgbW9kZSA9ICdwbGFpbicKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbWFya19wbHVnaW5zX2Zvcl9yZXdyaXRlKGhvb2spCi0g
ICAgICAgIHNlbGYuX3dhcm5fYWJvdXRfbWlzc2luZ19hc3NlcnRpb24obW9kZSkKLQotICAgIGRl
ZiBfbWFya19wbHVnaW5zX2Zvcl9yZXdyaXRlKHNlbGYsIGhvb2spOgotICAgICAgICAiIiIKLSAg
ICAgICAgR2l2ZW4gYW4gaW1wb3J0aG9vaywgbWFyayBmb3IgcmV3cml0ZSBhbnkgdG9wLWxldmVs
Ci0gICAgICAgIG1vZHVsZXMgb3IgcGFja2FnZXMgaW4gdGhlIGRpc3RyaWJ1dGlvbiBwYWNrYWdl
IGZvcgotICAgICAgICBhbGwgcHl0ZXN0IHBsdWdpbnMuCi0gICAgICAgICIiIgotICAgICAgICBp
bXBvcnQgcGtnX3Jlc291cmNlcwotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIucmV3cml0ZV9o
b29rID0gaG9vawotCi0gICAgICAgICMgJ1JFQ09SRCcgYXZhaWxhYmxlIGZvciBwbHVnaW5zIGlu
c3RhbGxlZCBub3JtYWxseSAocGlwIGluc3RhbGwpCi0gICAgICAgICMgJ1NPVVJDRVMudHh0JyBh
dmFpbGFibGUgZm9yIHBsdWdpbnMgaW5zdGFsbGVkIGluIGRldiBtb2RlIChwaXAgaW5zdGFsbCAt
ZSkKLSAgICAgICAgIyBmb3IgaW5zdGFsbGVkIHBsdWdpbnMgJ1NPVVJDRVMudHh0JyByZXR1cm5z
IGFuIGVtcHR5IGxpc3QsIGFuZCB2aWNlLXZlcnNhCi0gICAgICAgICMgc28gaXQgc2hvdWxkbid0
IGJlIGFuIGlzc3VlCi0gICAgICAgIG1ldGFkYXRhX2ZpbGVzID0gJ1JFQ09SRCcsICdTT1VSQ0VT
LnR4dCcKLQotICAgICAgICBwYWNrYWdlX2ZpbGVzID0gKAotICAgICAgICAgICAgZW50cnkuc3Bs
aXQoJywnKVswXQotICAgICAgICAgICAgZm9yIGVudHJ5cG9pbnQgaW4gcGtnX3Jlc291cmNlcy5p
dGVyX2VudHJ5X3BvaW50cygncHl0ZXN0MTEnKQotICAgICAgICAgICAgZm9yIG1ldGFkYXRhIGlu
IG1ldGFkYXRhX2ZpbGVzCi0gICAgICAgICAgICBmb3IgZW50cnkgaW4gZW50cnlwb2ludC5kaXN0
Ll9nZXRfbWV0YWRhdGEobWV0YWRhdGEpCi0gICAgICAgICkKLQotICAgICAgICBmb3IgbmFtZSBp
biBfaXRlcl9yZXdyaXRhYmxlX21vZHVsZXMocGFja2FnZV9maWxlcyk6Ci0gICAgICAgICAgICBo
b29rLm1hcmtfcmV3cml0ZShuYW1lKQotCi0gICAgZGVmIF93YXJuX2Fib3V0X21pc3NpbmdfYXNz
ZXJ0aW9uKHNlbGYsIG1vZGUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhc3NlcnQgRmFs
c2UKLSAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgotICAgICAgICAgICAgcGFzcwotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbW9kZSA9PSAncGxhaW4nOgotICAgICAgICAgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoIldBUk5JTkc6IEFTU0VSVElPTlMgQVJFIE5PVCBFWEVDVVRF
RCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIEZBSUxJTkcgVEVTVFMg
V0lMTCBQQVNTLiAgQXJlIHlvdSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg
dXNpbmcgcHl0aG9uIC1PPyIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoIldBUk5JTkc6IGFzc2VydGlvbnMgbm90IGluIHRlc3QgbW9kdWxlcyBv
ciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgcGx1Z2lucyB3aWxsIGJlIGln
bm9yZWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGJlY2F1c2UgYXNzZXJ0
IHN0YXRlbWVudHMgYXJlIG5vdCBleGVjdXRlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYnkgdGhlIHVuZGVybHlpbmcgUHl0aG9uIGludGVycHJldGVyICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIoYXJlIHlvdSB1c2luZyBweXRob24gLU8/KVxuIikK
LQotICAgIGRlZiBfcHJlcGFyc2Uoc2VsZiwgYXJncywgYWRkb3B0cz1UcnVlKToKLSAgICAgICAg
aWYgYWRkb3B0czoKLSAgICAgICAgICAgIGFyZ3NbOl0gPSBzaGxleC5zcGxpdChvcy5lbnZpcm9u
LmdldCgnUFlURVNUX0FERE9QVFMnLCAnJykpICsgYXJncwotICAgICAgICBzZWxmLl9pbml0aW5p
KGFyZ3MpCi0gICAgICAgIGlmIGFkZG9wdHM6Ci0gICAgICAgICAgICBhcmdzWzpdID0gc2VsZi5n
ZXRpbmkoImFkZG9wdHMiKSArIGFyZ3MKLSAgICAgICAgc2VsZi5fY2hlY2t2ZXJzaW9uKCkKLSAg
ICAgICAgc2VsZi5fY29uc2lkZXJfaW1wb3J0aG9vayhhcmdzKQotICAgICAgICBzZWxmLnBsdWdp
bm1hbmFnZXIuY29uc2lkZXJfcHJlcGFyc2UoYXJncykKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5h
Z2VyLmxvYWRfc2V0dXB0b29sc19lbnRyeXBvaW50cygncHl0ZXN0MTEnKQotICAgICAgICBzZWxm
LnBsdWdpbm1hbmFnZXIuY29uc2lkZXJfZW52KCkKLSAgICAgICAgc2VsZi5rbm93bl9hcmdzX25h
bWVzcGFjZSA9IG5zID0gc2VsZi5fcGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoYXJncywgbmFtZXNw
YWNlPXNlbGYub3B0aW9uLmNvcHkoKSkKLSAgICAgICAgaWYgc2VsZi5rbm93bl9hcmdzX25hbWVz
cGFjZS5jb25mY3V0ZGlyIGlzIE5vbmUgYW5kIHNlbGYuaW5pZmlsZToKLSAgICAgICAgICAgIGNv
bmZjdXRkaXIgPSBweS5wYXRoLmxvY2FsKHNlbGYuaW5pZmlsZSkuZGlybmFtZQotICAgICAgICAg
ICAgc2VsZi5rbm93bl9hcmdzX25hbWVzcGFjZS5jb25mY3V0ZGlyID0gY29uZmN1dGRpcgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25m
dGVzdHMoZWFybHlfY29uZmlnPXNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLCBwYXJzZXI9c2VsZi5fcGFyc2VyKQotICAg
ICAgICBleGNlcHQgQ29uZnRlc3RJbXBvcnRGYWlsdXJlOgotICAgICAgICAgICAgZSA9IHN5cy5l
eGNfaW5mbygpWzFdCi0gICAgICAgICAgICBpZiBucy5oZWxwIG9yIG5zLnZlcnNpb246Ci0gICAg
ICAgICAgICAgICAgIyB3ZSBkb24ndCB3YW50IHRvIHByZXZlbnQgLS1oZWxwLy0tdmVyc2lvbiB0
byB3b3JrCi0gICAgICAgICAgICAgICAgIyBzbyBqdXN0IGxldCBpcyBwYXNzIGFuZCBwcmludCBh
IHdhcm5pbmcgYXQgdGhlIGVuZAotICAgICAgICAgICAgICAgIHNlbGYuX3dhcm4oImNvdWxkIG5v
dCBsb2FkIGluaXRpYWwgY29uZnRlc3RzICglcylcbiIgJSBlLnBhdGgpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHJhaXNlCi0KLSAgICBkZWYgX2NoZWNrdmVyc2lvbihzZWxm
KToKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBtaW52ZXIgPSBzZWxmLmluaWNmZy5n
ZXQoJ21pbnZlcnNpb24nLCBOb25lKQotICAgICAgICBpZiBtaW52ZXI6Ci0gICAgICAgICAgICB2
ZXIgPSBtaW52ZXIuc3BsaXQoIi4iKQotICAgICAgICAgICAgbXl2ZXIgPSBweXRlc3QuX192ZXJz
aW9uX18uc3BsaXQoIi4iKQotICAgICAgICAgICAgaWYgbXl2ZXIgPCB2ZXI6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgcHl0ZXN0LlVzYWdlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICIlczol
ZDogcmVxdWlyZXMgcHl0ZXN0LSVzLCBhY3R1YWwgcHl0ZXN0LSVzJyIgJSAoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmluaWNmZy5jb25maWcucGF0aCwgc2VsZi5pbmljZmcubGluZW9m
KCdtaW52ZXJzaW9uJyksCi0gICAgICAgICAgICAgICAgICAgICAgICBtaW52ZXIsIHB5dGVzdC5f
X3ZlcnNpb25fXykpCi0KLSAgICBkZWYgcGFyc2Uoc2VsZiwgYXJncywgYWRkb3B0cz1UcnVlKToK
LSAgICAgICAgIyBwYXJzZSBnaXZlbiBjbWRsaW5lIGFyZ3VtZW50cyBpbnRvIHRoaXMgY29uZmln
IG9iamVjdC4KLSAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNlbGYsICdhcmdzJyksICgKLSAg
ICAgICAgICAgICJjYW4gb25seSBwYXJzZSBjbWRsaW5lIGFyZ3MgYXQgbW9zdCBvbmNlIHBlciBD
b25maWcgb2JqZWN0IikKLSAgICAgICAgc2VsZi5fb3JpZ2FyZ3MgPSBhcmdzCi0gICAgICAgIHNl
bGYuaG9vay5weXRlc3RfYWRkaG9va3MuY2FsbF9oaXN0b3JpYygKLSAgICAgICAgICAgIGt3YXJn
cz1kaWN0KHBsdWdpbm1hbmFnZXI9c2VsZi5wbHVnaW5tYW5hZ2VyKSkKLSAgICAgICAgc2VsZi5f
cHJlcGFyc2UoYXJncywgYWRkb3B0cz1hZGRvcHRzKQotICAgICAgICAjIFhYWCBkZXByZWNhdGVk
IGhvb2s6Ci0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfY21kbGluZV9wcmVwYXJzZShjb25maWc9
c2VsZiwgYXJncz1hcmdzKQotICAgICAgICBzZWxmLl9wYXJzZXIuYWZ0ZXJfcHJlcGFyc2UgPSBU
cnVlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFyZ3MgPSBzZWxmLl9wYXJzZXIucGFyc2Vf
c2V0b3B0aW9uKGFyZ3MsIHNlbGYub3B0aW9uLCBuYW1lc3BhY2U9c2VsZi5vcHRpb24pCi0gICAg
ICAgICAgICBpZiBub3QgYXJnczoKLSAgICAgICAgICAgICAgICBjd2QgPSBvcy5nZXRjd2QoKQot
ICAgICAgICAgICAgICAgIGlmIGN3ZCA9PSBzZWxmLnJvb3RkaXI6Ci0gICAgICAgICAgICAgICAg
ICAgIGFyZ3MgPSBzZWxmLmdldGluaSgndGVzdHBhdGhzJykKLSAgICAgICAgICAgICAgICBpZiBu
b3QgYXJnczoKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9IFtjd2RdCi0gICAgICAgICAgICBz
ZWxmLmFyZ3MgPSBhcmdzCi0gICAgICAgIGV4Y2VwdCBQcmludEhlbHA6Ci0gICAgICAgICAgICBw
YXNzCi0KLSAgICBkZWYgYWRkaW5pdmFsdWVfbGluZShzZWxmLCBuYW1lLCBsaW5lKToKLSAgICAg
ICAgIiIiIGFkZCBhIGxpbmUgdG8gYW4gaW5pLWZpbGUgb3B0aW9uLiBUaGUgb3B0aW9uIG11c3Qg
aGF2ZSBiZWVuCi0gICAgICAgIGRlY2xhcmVkIGJ1dCBtaWdodCBub3QgeWV0IGJlIHNldCBpbiB3
aGljaCBjYXNlIHRoZSBsaW5lIGJlY29tZXMgdGhlCi0gICAgICAgIHRoZSBmaXJzdCBsaW5lIGlu
IGl0cyB2YWx1ZS4gIiIiCi0gICAgICAgIHggPSBzZWxmLmdldGluaShuYW1lKQotICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZSh4LCBsaXN0KQotICAgICAgICB4LmFwcGVuZChsaW5lKSAgIyBtb2Rp
ZmllcyB0aGUgY2FjaGVkIGxpc3QgaW5saW5lCi0KLSAgICBkZWYgZ2V0aW5pKHNlbGYsIG5hbWUp
OgotICAgICAgICAiIiIgcmV0dXJuIGNvbmZpZ3VyYXRpb24gdmFsdWUgZnJvbSBhbiA6cmVmOmBp
bmkgZmlsZSA8aW5pZmlsZXM+YC4gSWYgdGhlCi0gICAgICAgIHNwZWNpZmllZCBuYW1lIGhhc24n
dCBiZWVuIHJlZ2lzdGVyZWQgdGhyb3VnaCBhIHByaW9yCi0gICAgICAgIDpweTpmdW5jOmBwYXJz
ZXIuYWRkaW5pIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkaW5pPmAKLSAgICAgICAgY2FsbCAo
dXN1YWxseSBmcm9tIGEgcGx1Z2luKSwgYSBWYWx1ZUVycm9yIGlzIHJhaXNlZC4gIiIiCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9pbmljYWNoZVtuYW1lXQotICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBzZWxmLl9pbmljYWNoZVtuYW1lXSA9IHZh
bCA9IHNlbGYuX2dldGluaShuYW1lKQotICAgICAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVm
IF9nZXRpbmkoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGRlc2NyaXB0
aW9uLCB0eXBlLCBkZWZhdWx0ID0gc2VsZi5fcGFyc2VyLl9pbmlkaWN0W25hbWVdCi0gICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24g
Y29uZmlndXJhdGlvbiB2YWx1ZTogJXIiICUgKG5hbWUsKSkKLSAgICAgICAgdmFsdWUgPSBzZWxm
Ll9nZXRfb3ZlcnJpZGVfaW5pX3ZhbHVlKG5hbWUpCi0gICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmluaWNmZ1tu
YW1lXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIGlmIGRl
ZmF1bHQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0g
ICAgICAgICAgICAgICAgaWYgdHlwZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gJycKLSAgICAgICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgaWYgdHlwZSA9PSAicGF0
aGxpc3QiOgotICAgICAgICAgICAgZHAgPSBweS5wYXRoLmxvY2FsKHNlbGYuaW5pY2ZnLmNvbmZp
Zy5wYXRoKS5kaXJwYXRoKCkKLSAgICAgICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgICAgICBm
b3IgcmVscGF0aCBpbiBzaGxleC5zcGxpdCh2YWx1ZSk6Ci0gICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZChkcC5qb2luKHJlbHBhdGgsIGFicz1UcnVlKSkKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZXMKLSAgICAgICAgZWxpZiB0eXBlID09ICJhcmdzIjoKLSAgICAgICAgICAgIHJldHVybiBz
aGxleC5zcGxpdCh2YWx1ZSkKLSAgICAgICAgZWxpZiB0eXBlID09ICJsaW5lbGlzdCI6Ci0gICAg
ICAgICAgICByZXR1cm4gW3QgZm9yIHQgaW4gbWFwKGxhbWJkYSB4OiB4LnN0cmlwKCksIHZhbHVl
LnNwbGl0KCJcbiIpKSBpZiB0XQotICAgICAgICBlbGlmIHR5cGUgPT0gImJvb2wiOgotICAgICAg
ICAgICAgcmV0dXJuIGJvb2woX3N0cnRvYm9vbCh2YWx1ZS5zdHJpcCgpKSkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGFzc2VydCB0eXBlIGlzIE5vbmUKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZQotCi0gICAgZGVmIF9nZXRjb25mdGVzdF9wYXRobGlzdChzZWxmLCBuYW1lLCBwYXRoKToK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbW9kLCByZWxyb290cyA9IHNlbGYucGx1Z2lubWFu
YWdlci5fcmdldF93aXRoX2NvbmZtb2QobmFtZSwgcGF0aCkKLSAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgbW9kcGF0aCA9IHB5LnBhdGgu
bG9jYWwobW9kLl9fZmlsZV9fKS5kaXJwYXRoKCkKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAg
ICAgZm9yIHJlbHJvb3QgaW4gcmVscm9vdHM6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShyZWxyb290LCBweS5wYXRoLmxvY2FsKToKLSAgICAgICAgICAgICAgICByZWxyb290ID0gcmVs
cm9vdC5yZXBsYWNlKCIvIiwgcHkucGF0aC5sb2NhbC5zZXApCi0gICAgICAgICAgICAgICAgcmVs
cm9vdCA9IG1vZHBhdGguam9pbihyZWxyb290LCBhYnM9VHJ1ZSkKLSAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQocmVscm9vdCkKLSAgICAgICAgcmV0dXJuIHZhbHVlcwotCi0gICAgZGVmIF9nZXRf
b3ZlcnJpZGVfaW5pX3ZhbHVlKHNlbGYsIG5hbWUpOgotICAgICAgICB2YWx1ZSA9IE5vbmUKLSAg
ICAgICAgIyBvdmVycmlkZV9pbmkgaXMgYSBsaXN0IG9mIGxpc3QsIHRvIHN1cHBvcnQgYm90aCAt
byBmb28xPWJhcjEgZm9vMj1iYXIyIGFuZAotICAgICAgICAjIGFuZCAtbyBmb28xPWJhcjEgLW8g
Zm9vMj1iYXIyIG9wdGlvbnMKLSAgICAgICAgIyBhbHdheXMgdXNlIHRoZSBsYXN0IGl0ZW0gaWYg
bXVsdGlwbGUgdmFsdWUgc2V0IGZvciBzYW1lIGluaS1uYW1lLAotICAgICAgICAjIGUuZy4gLW8g
Zm9vPWJhcjEgLW8gZm9vPWJhcjIgd2lsbCBzZXQgZm9vIHRvIGJhcjIKLSAgICAgICAgZm9yIGlu
aV9jb25maWdfbGlzdCBpbiBzZWxmLl9vdmVycmlkZV9pbmk6Ci0gICAgICAgICAgICBmb3IgaW5p
X2NvbmZpZyBpbiBpbmlfY29uZmlnX2xpc3Q6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgICAgICAoa2V5LCB1c2VyX2luaV92YWx1ZSkgPSBpbmlfY29uZmlnLnNwbGl0KCI9
IiwgMSkKLSAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiLW8vLS1vdmVycmlkZS1pbmkgZXhwZWN0cyBvcHRpb249
dmFsdWUgc3R5bGUuIikKLSAgICAgICAgICAgICAgICBpZiBrZXkgPT0gbmFtZToKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWUgPSB1c2VyX2luaV92YWx1ZQotICAgICAgICByZXR1cm4gdmFsdWUK
LQotICAgIGRlZiBnZXRvcHRpb24oc2VsZiwgbmFtZSwgZGVmYXVsdD1ub3RzZXQsIHNraXA9RmFs
c2UpOgotICAgICAgICAiIiIgcmV0dXJuIGNvbW1hbmQgbGluZSBvcHRpb24gdmFsdWUuCi0KLSAg
ICAgICAgOmFyZyBuYW1lOiBuYW1lIG9mIHRoZSBvcHRpb24uICBZb3UgbWF5IGFsc28gc3BlY2lm
eQotICAgICAgICAgICAgdGhlIGxpdGVyYWwgYGAtLU9QVGBgIG9wdGlvbiBpbnN0ZWFkIG9mIHRo
ZSAiZGVzdCIgb3B0aW9uIG5hbWUuCi0gICAgICAgIDphcmcgZGVmYXVsdDogZGVmYXVsdCB2YWx1
ZSBpZiBubyBvcHRpb24gb2YgdGhhdCBuYW1lIGV4aXN0cy4KLSAgICAgICAgOmFyZyBza2lwOiBp
ZiBUcnVlIHJhaXNlIHB5dGVzdC5za2lwIGlmIG9wdGlvbiBkb2VzIG5vdCBleGlzdHMKLSAgICAg
ICAgICAgIG9yIGhhcyBhIE5vbmUgdmFsdWUuCi0gICAgICAgICIiIgotICAgICAgICBuYW1lID0g
c2VsZi5fb3B0MmRlc3QuZ2V0KG5hbWUsIG5hbWUpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHZhbCA9IGdldGF0dHIoc2VsZi5vcHRpb24sIG5hbWUpCi0gICAgICAgICAgICBpZiB2YWwgaXMg
Tm9uZSBhbmQgc2tpcDoKLSAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1l
KQotICAgICAgICAgICAgcmV0dXJuIHZhbAotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
Ci0gICAgICAgICAgICBpZiBkZWZhdWx0IGlzIG5vdCBub3RzZXQ6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGRlZmF1bHQKLSAgICAgICAgICAgIGlmIHNraXA6Ci0gICAgICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAotICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJubyAlciBvcHRpb24gZm91
bmQiICUgKG5hbWUsKSkKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vIG9wdGlvbiBu
YW1lZCAlciIgJSAobmFtZSwpKQotCi0gICAgZGVmIGdldHZhbHVlKHNlbGYsIG5hbWUsIHBhdGg9
Tm9uZSk6Ci0gICAgICAgICIiIiAoZGVwcmVjYXRlZCwgdXNlIGdldG9wdGlvbigpKSAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYuZ2V0b3B0aW9uKG5hbWUpCi0KLSAgICBkZWYgZ2V0dmFsdWVvcnNr
aXAoc2VsZiwgbmFtZSwgcGF0aD1Ob25lKToKLSAgICAgICAgIiIiIChkZXByZWNhdGVkLCB1c2Ug
Z2V0b3B0aW9uKHNraXA9VHJ1ZSkpICIiIgotICAgICAgICByZXR1cm4gc2VsZi5nZXRvcHRpb24o
bmFtZSwgc2tpcD1UcnVlKQotCi0KLWRlZiBleGlzdHMocGF0aCwgaWdub3JlPUVudmlyb25tZW50
RXJyb3IpOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIHBhdGguY2hlY2soKQotICAgIGV4Y2Vw
dCBpZ25vcmU6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBnZXRjZmcoYXJncywgd2Fy
bmZ1bmM9Tm9uZSk6Ci0gICAgIiIiCi0gICAgU2VhcmNoIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyBm
b3IgYSB2YWxpZCBpbmktZmlsZSBmb3IgcHl0ZXN0LAotICAgIGFuZCByZXR1cm4gYSB0dXBsZSBv
ZiAocm9vdGRpciwgaW5pZmlsZSwgY2ZnLWRpY3QpLgotCi0gICAgbm90ZTogd2FybmZ1bmMgaXMg
YW4gb3B0aW9uYWwgZnVuY3Rpb24gdXNlZCB0byB3YXJuCi0gICAgICAgIGFib3V0IGluaS1maWxl
cyB0aGF0IHVzZSBkZXByZWNhdGVkIGZlYXR1cmVzLgotICAgICAgICBUaGlzIHBhcmFtZXRlciBz
aG91bGQgYmUgcmVtb3ZlZCB3aGVuIHB5dGVzdAotICAgICAgICBhZG9wdHMgc3RhbmRhcmQgZGVw
cmVjYXRpb24gd2FybmluZ3MgKCMxODA0KS4KLSAgICAiIiIKLSAgICBmcm9tIF9weXRlc3QuZGVw
cmVjYXRlZCBpbXBvcnQgU0VUVVBfQ0ZHX1BZVEVTVAotICAgIGluaWJhc2VuYW1lcyA9IFsicHl0
ZXN0LmluaSIsICJ0b3guaW5pIiwgInNldHVwLmNmZyJdCi0gICAgYXJncyA9IFt4IGZvciB4IGlu
IGFyZ3MgaWYgbm90IHN0cih4KS5zdGFydHN3aXRoKCItIildCi0gICAgaWYgbm90IGFyZ3M6Ci0g
ICAgICAgIGFyZ3MgPSBbcHkucGF0aC5sb2NhbCgpXQotICAgIGZvciBhcmcgaW4gYXJnczoKLSAg
ICAgICAgYXJnID0gcHkucGF0aC5sb2NhbChhcmcpCi0gICAgICAgIGZvciBiYXNlIGluIGFyZy5w
YXJ0cyhyZXZlcnNlPVRydWUpOgotICAgICAgICAgICAgZm9yIGluaWJhc2VuYW1lIGluIGluaWJh
c2VuYW1lczoKLSAgICAgICAgICAgICAgICBwID0gYmFzZS5qb2luKGluaWJhc2VuYW1lKQotICAg
ICAgICAgICAgICAgIGlmIGV4aXN0cyhwKToKLSAgICAgICAgICAgICAgICAgICAgaW5pY29uZmln
ID0gcHkuaW5pY29uZmlnLkluaUNvbmZpZyhwKQotICAgICAgICAgICAgICAgICAgICBpZiAncHl0
ZXN0JyBpbiBpbmljb25maWcuc2VjdGlvbnM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBp
bmliYXNlbmFtZSA9PSAnc2V0dXAuY2ZnJyBhbmQgd2FybmZ1bmM6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2FybmZ1bmMoJ0MxJywgU0VUVVBfQ0ZHX1BZVEVTVCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBiYXNlLCBwLCBpbmljb25maWdbJ3B5dGVzdCddCi0gICAgICAg
ICAgICAgICAgICAgIGlmIGluaWJhc2VuYW1lID09ICdzZXR1cC5jZmcnIGFuZCAndG9vbDpweXRl
c3QnIGluIGluaWNvbmZpZy5zZWN0aW9uczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBiYXNlLCBwLCBpbmljb25maWdbJ3Rvb2w6cHl0ZXN0J10KLSAgICAgICAgICAgICAgICAgICAg
ZWxpZiBpbmliYXNlbmFtZSA9PSAicHl0ZXN0LmluaSI6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAjIGFsbG93ZWQgdG8gYmUgZW1wdHkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
YXNlLCBwLCB7fQotICAgIHJldHVybiBOb25lLCBOb25lLCBOb25lCi0KLQotZGVmIGdldF9jb21t
b25fYW5jZXN0b3IocGF0aHMpOgotICAgIGNvbW1vbl9hbmNlc3RvciA9IE5vbmUKLSAgICBmb3Ig
cGF0aCBpbiBwYXRoczoKLSAgICAgICAgaWYgbm90IHBhdGguZXhpc3RzKCk6Ci0gICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICBpZiBjb21tb25fYW5jZXN0b3IgaXMgTm9uZToKLSAgICAgICAg
ICAgIGNvbW1vbl9hbmNlc3RvciA9IHBhdGgKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlm
IHBhdGgucmVsdG8oY29tbW9uX2FuY2VzdG9yKSBvciBwYXRoID09IGNvbW1vbl9hbmNlc3RvcjoK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBjb21tb25fYW5jZXN0
b3IucmVsdG8ocGF0aCk6Ci0gICAgICAgICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gcGF0aAot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzaGFyZWQgPSBwYXRoLmNvbW1vbihj
b21tb25fYW5jZXN0b3IpCi0gICAgICAgICAgICAgICAgaWYgc2hhcmVkIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBzaGFyZWQKLSAgICBpZiBjb21t
b25fYW5jZXN0b3IgaXMgTm9uZToKLSAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gcHkucGF0aC5s
b2NhbCgpCi0gICAgZWxpZiBjb21tb25fYW5jZXN0b3IuaXNmaWxlKCk6Ci0gICAgICAgIGNvbW1v
bl9hbmNlc3RvciA9IGNvbW1vbl9hbmNlc3Rvci5kaXJwYXRoKCkKLSAgICByZXR1cm4gY29tbW9u
X2FuY2VzdG9yCi0KLQotZGVmIGdldF9kaXJzX2Zyb21fYXJncyhhcmdzKToKLSAgICBkZWYgaXNf
b3B0aW9uKHgpOgotICAgICAgICByZXR1cm4gc3RyKHgpLnN0YXJ0c3dpdGgoJy0nKQotCi0gICAg
ZGVmIGdldF9maWxlX3BhcnRfZnJvbV9ub2RlX2lkKHgpOgotICAgICAgICByZXR1cm4gc3RyKHgp
LnNwbGl0KCc6OicpWzBdCi0KLSAgICBkZWYgZ2V0X2Rpcl9mcm9tX3BhdGgocGF0aCk6Ci0gICAg
ICAgIGlmIHBhdGguaXNkaXIoKToKLSAgICAgICAgICAgIHJldHVybiBwYXRoCi0gICAgICAgIHJl
dHVybiBweS5wYXRoLmxvY2FsKHBhdGguZGlybmFtZSkKLQotICAgICMgVGhlc2UgbG9vayBsaWtl
IHBhdGhzIGJ1dCBtYXkgbm90IGV4aXN0Ci0gICAgcG9zc2libGVfcGF0aHMgPSAoCi0gICAgICAg
IHB5LnBhdGgubG9jYWwoZ2V0X2ZpbGVfcGFydF9mcm9tX25vZGVfaWQoYXJnKSkKLSAgICAgICAg
Zm9yIGFyZyBpbiBhcmdzCi0gICAgICAgIGlmIG5vdCBpc19vcHRpb24oYXJnKQotICAgICkKLQot
ICAgIHJldHVybiBbCi0gICAgICAgIGdldF9kaXJfZnJvbV9wYXRoKHBhdGgpCi0gICAgICAgIGZv
ciBwYXRoIGluIHBvc3NpYmxlX3BhdGhzCi0gICAgICAgIGlmIHBhdGguZXhpc3RzKCkKLSAgICBd
Ci0KLQotZGVmIGRldGVybWluZV9zZXR1cChpbmlmaWxlLCBhcmdzLCB3YXJuZnVuYz1Ob25lKToK
LSAgICBkaXJzID0gZ2V0X2RpcnNfZnJvbV9hcmdzKGFyZ3MpCi0gICAgaWYgaW5pZmlsZToKLSAg
ICAgICAgaW5pY29uZmlnID0gcHkuaW5pY29uZmlnLkluaUNvbmZpZyhpbmlmaWxlKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBpbmljZmcgPSBpbmljb25maWdbInB5dGVzdCJdCi0gICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGluaWNmZyA9IE5vbmUKLSAgICAgICAgcm9v
dGRpciA9IGdldF9jb21tb25fYW5jZXN0b3IoZGlycykKLSAgICBlbHNlOgotICAgICAgICBhbmNl
c3RvciA9IGdldF9jb21tb25fYW5jZXN0b3IoZGlycykKLSAgICAgICAgcm9vdGRpciwgaW5pZmls
ZSwgaW5pY2ZnID0gZ2V0Y2ZnKFthbmNlc3Rvcl0sIHdhcm5mdW5jPXdhcm5mdW5jKQotICAgICAg
ICBpZiByb290ZGlyIGlzIE5vbmU6Ci0gICAgICAgICAgICBmb3Igcm9vdGRpciBpbiBhbmNlc3Rv
ci5wYXJ0cyhyZXZlcnNlPVRydWUpOgotICAgICAgICAgICAgICAgIGlmIHJvb3RkaXIuam9pbigi
c2V0dXAucHkiKS5leGlzdHMoKToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZ2V0
Y2ZnKGRpcnMsIHdhcm5mdW5jPXdhcm5mdW5jKQotICAgICAgICAgICAgICAgIGlmIHJvb3RkaXIg
aXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IGdldF9jb21tb25fYW5jZXN0
b3IoW3B5LnBhdGgubG9jYWwoKSwgYW5jZXN0b3JdKQotICAgICAgICAgICAgICAgICAgICBpc19m
c19yb290ID0gb3MucGF0aC5zcGxpdGRyaXZlKHN0cihyb290ZGlyKSlbMV0gPT0gJy8nCi0gICAg
ICAgICAgICAgICAgICAgIGlmIGlzX2ZzX3Jvb3Q6Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
b290ZGlyID0gYW5jZXN0b3IKLSAgICByZXR1cm4gcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnIG9y
IHt9Ci0KLQotZGVmIHNldG5zKG9iaiwgZGljKToKLSAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgZm9y
IG5hbWUsIHZhbHVlIGluIGRpYy5pdGVtcygpOgotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVl
LCBkaWN0KToKLSAgICAgICAgICAgIG1vZCA9IGdldGF0dHIob2JqLCBuYW1lLCBOb25lKQotICAg
ICAgICAgICAgaWYgbW9kIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9ICJweXRl
c3QuJXMiICUgbmFtZQotICAgICAgICAgICAgICAgIG1vZCA9IHR5cGVzLk1vZHVsZVR5cGUobW9k
bmFtZSkKLSAgICAgICAgICAgICAgICBzeXMubW9kdWxlc1ttb2RuYW1lXSA9IG1vZAotICAgICAg
ICAgICAgICAgIG1vZC5fX2FsbF9fID0gW10KLSAgICAgICAgICAgICAgICBzZXRhdHRyKG9iaiwg
bmFtZSwgbW9kKQotICAgICAgICAgICAgb2JqLl9fYWxsX18uYXBwZW5kKG5hbWUpCi0gICAgICAg
ICAgICBzZXRucyhtb2QsIHZhbHVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2V0YXR0
cihvYmosIG5hbWUsIHZhbHVlKQotICAgICAgICAgICAgb2JqLl9fYWxsX18uYXBwZW5kKG5hbWUp
Ci0gICAgICAgICAgICAjIGlmIG9iaiAhPSBweXRlc3Q6Ci0gICAgICAgICAgICAjICAgIHB5dGVz
dC5fX2FsbF9fLmFwcGVuZChuYW1lKQotICAgICAgICAgICAgc2V0YXR0cihweXRlc3QsIG5hbWUs
IHZhbHVlKQotCi0KLWRlZiBjcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZywgKmFyZ3MsICoq
a3dhcmdzKToKLSAgICAiIiJDcmVhdGUgYSBUZXJtaW5hbFdyaXRlciBpbnN0YW5jZSBjb25maWd1
cmVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucwotICAgIGluIHRoZSBjb25maWcgb2JqZWN0LiBF
dmVyeSBjb2RlIHdoaWNoIHJlcXVpcmVzIGEgVGVybWluYWxXcml0ZXIgb2JqZWN0Ci0gICAgYW5k
IGhhcyBhY2Nlc3MgdG8gYSBjb25maWcgb2JqZWN0IHNob3VsZCB1c2UgdGhpcyBmdW5jdGlvbi4K
LSAgICAiIiIKLSAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCphcmdzLCAqKmt3YXJncykK
LSAgICBpZiBjb25maWcub3B0aW9uLmNvbG9yID09ICd5ZXMnOgotICAgICAgICB0dy5oYXNtYXJr
dXAgPSBUcnVlCi0gICAgaWYgY29uZmlnLm9wdGlvbi5jb2xvciA9PSAnbm8nOgotICAgICAgICB0
dy5oYXNtYXJrdXAgPSBGYWxzZQotICAgIHJldHVybiB0dwotCi0KLWRlZiBfc3RydG9ib29sKHZh
bCk6Ci0gICAgIiIiQ29udmVydCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0cnV0aCB0byB0
cnVlICgxKSBvciBmYWxzZSAoMCkuCi0KLSAgICBUcnVlIHZhbHVlcyBhcmUgJ3knLCAneWVzJywg
J3QnLCAndHJ1ZScsICdvbicsIGFuZCAnMSc7IGZhbHNlIHZhbHVlcwotICAgIGFyZSAnbicsICdu
bycsICdmJywgJ2ZhbHNlJywgJ29mZicsIGFuZCAnMCcuICBSYWlzZXMgVmFsdWVFcnJvciBpZgot
ICAgICd2YWwnIGlzIGFueXRoaW5nIGVsc2UuCi0KLSAgICAuLiBub3RlOjogY29waWVkIGZyb20g
ZGlzdHV0aWxzLnV0aWwKLSAgICAiIiIKLSAgICB2YWwgPSB2YWwubG93ZXIoKQotICAgIGlmIHZh
bCBpbiAoJ3knLCAneWVzJywgJ3QnLCAndHJ1ZScsICdvbicsICcxJyk6Ci0gICAgICAgIHJldHVy
biAxCi0gICAgZWxpZiB2YWwgaW4gKCduJywgJ25vJywgJ2YnLCAnZmFsc2UnLCAnb2ZmJywgJzAn
KToKLSAgICAgICAgcmV0dXJuIDAKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJpbnZhbGlkIHRydXRoIHZhbHVlICVyIiAlICh2YWwsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvZGVidWdnaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dpbmcu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZGNhNzgwOTU2ZWMzOTc2MmQwNGNh
YTE3ZjlkMGZiM2JkZWZmYzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dpbmcucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjMgKzAsMCBAQAotIiIiIGludGVyYWN0aXZlIGRlYnVnZ2luZyB3aXRoIFBEQiwgdGhl
IFB5dGhvbiBEZWJ1Z2dlci4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcGRiCi1pbXBvcnQgc3lzCi0K
LQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRn
cm91cCgiZ2VuZXJhbCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy0tcGRiJywg
ZGVzdD0idXNlcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgaGVscD0ic3RhcnQg
dGhlIGludGVyYWN0aXZlIFB5dGhvbiBkZWJ1Z2dlciBvbiBlcnJvcnMuIikKLSAgICBncm91cC5f
YWRkb3B0aW9uKAotICAgICAgICAnLS1wZGJjbHMnLCBkZXN0PSJ1c2VwZGJfY2xzIiwgbWV0YXZh
cj0ibW9kdWxlbmFtZTpjbGFzc25hbWUiLAotICAgICAgICBoZWxwPSJzdGFydCBhIGN1c3RvbSBp
bnRlcmFjdGl2ZSBQeXRob24gZGVidWdnZXIgb24gZXJyb3JzLiAiCi0gICAgICAgICAgICAgIkZv
ciBleGFtcGxlOiAtLXBkYmNscz1JUHl0aG9uLnRlcm1pbmFsLmRlYnVnZ2VyOlRlcm1pbmFsUGRi
IikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGlmIGNvbmZpZy5nZXR2
YWx1ZSgidXNlcGRiX2NscyIpOgotICAgICAgICBtb2RuYW1lLCBjbGFzc25hbWUgPSBjb25maWcu
Z2V0dmFsdWUoInVzZXBkYl9jbHMiKS5zcGxpdCgiOiIpCi0gICAgICAgIF9faW1wb3J0X18obW9k
bmFtZSkKLSAgICAgICAgcGRiX2NscyA9IGdldGF0dHIoc3lzLm1vZHVsZXNbbW9kbmFtZV0sIGNs
YXNzbmFtZSkKLSAgICBlbHNlOgotICAgICAgICBwZGJfY2xzID0gcGRiLlBkYgotCi0gICAgaWYg
Y29uZmlnLmdldHZhbHVlKCJ1c2VwZGIiKToKLSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIu
cmVnaXN0ZXIoUGRiSW52b2tlKCksICdwZGJpbnZva2UnKQotCi0gICAgb2xkID0gKHBkYi5zZXRf
dHJhY2UsIHB5dGVzdFBEQi5fcGx1Z2lubWFuYWdlcikKLQotICAgIGRlZiBmaW4oKToKLSAgICAg
ICAgcGRiLnNldF90cmFjZSwgcHl0ZXN0UERCLl9wbHVnaW5tYW5hZ2VyID0gb2xkCi0gICAgICAg
IHB5dGVzdFBEQi5fY29uZmlnID0gTm9uZQotICAgICAgICBweXRlc3RQREIuX3BkYl9jbHMgPSBw
ZGIuUGRiCi0KLSAgICBwZGIuc2V0X3RyYWNlID0gcHl0ZXN0UERCLnNldF90cmFjZQotICAgIHB5
dGVzdFBEQi5fcGx1Z2lubWFuYWdlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgcHl0ZXN0
UERCLl9jb25maWcgPSBjb25maWcKLSAgICBweXRlc3RQREIuX3BkYl9jbHMgPSBwZGJfY2xzCi0g
ICAgY29uZmlnLl9jbGVhbnVwLmFwcGVuZChmaW4pCi0KLQotY2xhc3MgcHl0ZXN0UERCOgotICAg
ICIiIiBQc2V1ZG8gUERCIHRoYXQgZGVmZXJzIHRvIHRoZSByZWFsIHBkYi4gIiIiCi0gICAgX3Bs
dWdpbm1hbmFnZXIgPSBOb25lCi0gICAgX2NvbmZpZyA9IE5vbmUKLSAgICBfcGRiX2NscyA9IHBk
Yi5QZGIKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRfdHJhY2UoY2xzKToKLSAgICAg
ICAgIiIiIGludm9rZSBQREIgc2V0X3RyYWNlIGRlYnVnZ2luZywgZHJvcHBpbmcgYW55IElPIGNh
cHR1cmluZy4gIiIiCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgICAgICBmcmFt
ZSA9IHN5cy5fZ2V0ZnJhbWUoKS5mX2JhY2sKLSAgICAgICAgaWYgY2xzLl9wbHVnaW5tYW5hZ2Vy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY2FwbWFuID0gY2xzLl9wbHVnaW5tYW5hZ2VyLmdl
dHBsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQotICAgICAgICAgICAgaWYgY2FwbWFuOgotICAgICAg
ICAgICAgICAgIGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVlKQotICAgICAg
ICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNscy5fY29u
ZmlnKQotICAgICAgICAgICAgdHcubGluZSgpCi0gICAgICAgICAgICB0dy5zZXAoIj4iLCAiUERC
IHNldF90cmFjZSAoSU8tY2FwdHVyaW5nIHR1cm5lZCBvZmYpIikKLSAgICAgICAgICAgIGNscy5f
cGx1Z2lubWFuYWdlci5ob29rLnB5dGVzdF9lbnRlcl9wZGIoY29uZmlnPWNscy5fY29uZmlnKQot
ICAgICAgICBjbHMuX3BkYl9jbHMoKS5zZXRfdHJhY2UoZnJhbWUpCi0KLQotY2xhc3MgUGRiSW52
b2tlOgotICAgIGRlZiBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KHNlbGYsIG5vZGUsIGNhbGws
IHJlcG9ydCk6Ci0gICAgICAgIGNhcG1hbiA9IG5vZGUuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0
cGx1Z2luKCJjYXB0dXJlbWFuYWdlciIpCi0gICAgICAgIGlmIGNhcG1hbjoKLSAgICAgICAgICAg
IG91dCwgZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCi0gICAg
ICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3Jp
dGUoZXJyKQotICAgICAgICBfZW50ZXJfcGRiKG5vZGUsIGNhbGwuZXhjaW5mbywgcmVwb3J0KQot
Ci0gICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIsIGV4Y2luZm8pOgot
ICAgICAgICBmb3IgbGluZSBpbiBzdHIoZXhjcmVwcikuc3BsaXQoIlxuIik6Ci0gICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCJJTlRFUk5BTEVSUk9SPiAlc1xuIiAlIGxpbmUpCi0gICAgICAg
ICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKLSAgICAgICAgdGIgPSBfcG9zdG1vcnRlbV90cmFjZWJh
Y2soZXhjaW5mbykKLSAgICAgICAgcG9zdF9tb3J0ZW0odGIpCi0KLQotZGVmIF9lbnRlcl9wZGIo
bm9kZSwgZXhjaW5mbywgcmVwKToKLSAgICAjIFhYWCB3ZSByZS11c2UgdGhlIFRlcm1pbmFsUmVw
b3J0ZXIncyB0ZXJtaW5hbHdyaXRlcgotICAgICMgYmVjYXVzZSB0aGlzIHNlZW1zIHRvIGF2b2lk
IHNvbWUgZW5jb2RpbmcgcmVsYXRlZCB0cm91YmxlcwotICAgICMgZm9yIG5vdCBjb21wbGV0ZWx5
IGNsZWFyIHJlYXNvbnMuCi0gICAgdHcgPSBub2RlLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBs
dWdpbigidGVybWluYWxyZXBvcnRlciIpLl90dwotICAgIHR3LmxpbmUoKQotICAgIHR3LnNlcCgi
PiIsICJ0cmFjZWJhY2siKQotICAgIHJlcC50b3Rlcm1pbmFsKHR3KQotICAgIHR3LnNlcCgiPiIs
ICJlbnRlcmluZyBQREIiKQotICAgIHRiID0gX3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2luZm8p
Ci0gICAgcG9zdF9tb3J0ZW0odGIpCi0gICAgcmVwLl9wZGJzaG93biA9IFRydWUKLSAgICByZXR1
cm4gcmVwCi0KLQotZGVmIF9wb3N0bW9ydGVtX3RyYWNlYmFjayhleGNpbmZvKToKLSAgICAjIEEg
ZG9jdGVzdC5VbmV4cGVjdGVkRXhjZXB0aW9uIGlzIG5vdCB1c2VmdWwgZm9yIHBvc3RfbW9ydGVt
LgotICAgICMgVXNlIHRoZSB1bmRlcmx5aW5nIGV4Y2VwdGlvbiBpbnN0ZWFkOgotICAgIGZyb20g
ZG9jdGVzdCBpbXBvcnQgVW5leHBlY3RlZEV4Y2VwdGlvbgotICAgIGlmIGlzaW5zdGFuY2UoZXhj
aW5mby52YWx1ZSwgVW5leHBlY3RlZEV4Y2VwdGlvbik6Ci0gICAgICAgIHJldHVybiBleGNpbmZv
LnZhbHVlLmV4Y19pbmZvWzJdCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGV4Y2luZm8uX2V4
Y2luZm9bMl0KLQotCi1kZWYgX2ZpbmRfbGFzdF9ub25faGlkZGVuX2ZyYW1lKHN0YWNrKToKLSAg
ICBpID0gbWF4KDAsIGxlbihzdGFjaykgLSAxKQotICAgIHdoaWxlIGkgYW5kIHN0YWNrW2ldWzBd
LmZfbG9jYWxzLmdldCgiX190cmFjZWJhY2toaWRlX18iLCBGYWxzZSk6Ci0gICAgICAgIGkgLT0g
MQotICAgIHJldHVybiBpCi0KLQotZGVmIHBvc3RfbW9ydGVtKHQpOgotICAgIGNsYXNzIFBkYihw
eXRlc3RQREIuX3BkYl9jbHMpOgotICAgICAgICBkZWYgZ2V0X3N0YWNrKHNlbGYsIGYsIHQpOgot
ICAgICAgICAgICAgc3RhY2ssIGkgPSBwZGIuUGRiLmdldF9zdGFjayhzZWxmLCBmLCB0KQotICAg
ICAgICAgICAgaWYgZiBpcyBOb25lOgotICAgICAgICAgICAgICAgIGkgPSBfZmluZF9sYXN0X25v
bl9oaWRkZW5fZnJhbWUoc3RhY2spCi0gICAgICAgICAgICByZXR1cm4gc3RhY2ssIGkKLSAgICBw
ID0gUGRiKCkKLSAgICBwLnJlc2V0KCkKLSAgICBwLmludGVyYWN0aW9uKE5vbmUsIHQpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2RlcHJlY2F0ZWQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljMGZi
ZWNhN2JjOWU5NzQxNzBhOWVjZWFjMzI3Njc3ZjU2MWYxMjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVk
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotIiIiCi1UaGlzIG1vZHVsZSBjb250
YWlucyBkZXByZWNhdGlvbiBtZXNzYWdlcyBhbmQgYml0cyBvZiBjb2RlIHVzZWQgZWxzZXdoZXJl
IGluIHRoZSBjb2RlYmFzZQotdGhhdCBpcyBwbGFubmVkIHRvIGJlIHJlbW92ZWQgaW4gdGhlIG5l
eHQgcHl0ZXN0IHJlbGVhc2UuCi0KLUtlZXBpbmcgaXQgaW4gYSBjZW50cmFsIGxvY2F0aW9uIG1h
a2VzIGl0IGVhc3kgdG8gdHJhY2sgd2hhdCBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQKLWJlIHJl
bW92ZWQgd2hlbiB0aGUgdGltZSBjb21lcy4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi0KLWNsYXNzIFJlbW92
ZWRJblB5dGVzdDRXYXJuaW5nKERlcHJlY2F0aW9uV2FybmluZyk6Ci0gICAgIiIid2FybmluZyBj
bGFzcyBmb3IgZmVhdHVyZXMgcmVtb3ZlZCBpbiBweXRlc3QgNC4wIiIiCi0KLQotTUFJTl9TVFJf
QVJHUyA9ICdwYXNzaW5nIGEgc3RyaW5nIHRvIHB5dGVzdC5tYWluKCkgaXMgZGVwcmVjYXRlZCwg
JyBcCi0gICAgJ3Bhc3MgYSBsaXN0IG9mIGFyZ3VtZW50cyBpbnN0ZWFkLicKLQotWUlFTERfVEVT
VFMgPSAneWllbGQgdGVzdHMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBzY2hlZHVsZWQgdG8gYmUgcmVt
b3ZlZCBpbiBweXRlc3QgNC4wJwotCi1GVU5DQVJHX1BSRUZJWCA9ICgKLSAgICAne25hbWV9OiBk
ZWNsYXJpbmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBpcyBkZXBy
ZWNhdGVkICcKLSAgICAnYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAu
ICAnCi0gICAgJ1BsZWFzZSByZW1vdmUgdGhlIHByZWZpeCBhbmQgdXNlIHRoZSBAcHl0ZXN0LmZp
eHR1cmUgZGVjb3JhdG9yIGluc3RlYWQuJykKLQotU0VUVVBfQ0ZHX1BZVEVTVCA9ICdbcHl0ZXN0
XSBzZWN0aW9uIGluIHNldHVwLmNmZyBmaWxlcyBpcyBkZXByZWNhdGVkLCB1c2UgW3Rvb2w6cHl0
ZXN0XSBpbnN0ZWFkLicKLQotR0VURlVOQ0FSR1ZBTFVFID0gInVzZSBvZiBnZXRmdW5jYXJndmFs
dWUgaXMgZGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1cmV2YWx1ZSIKLQotUkVTVUxUX0xPRyA9ICgK
LSAgICAnLS1yZXN1bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCBmb3IgcmVtb3Zh
bCBpbiBweXRlc3QgNC4wLlxuJwotICAgICdTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4v
bGF0ZXN0L3VzYWdlLmh0bWwjY3JlYXRpbmctcmVzdWx0bG9nLWZvcm1hdC1maWxlcyBmb3IgbW9y
ZSBpbmZvcm1hdGlvbi4nCi0pCi0KLU1BUktfSU5GT19BVFRSSUJVVEUgPSBSZW1vdmVkSW5QeXRl
c3Q0V2FybmluZygKLSAgICAiTWFya0luZm8gb2JqZWN0cyBhcmUgZGVwcmVjYXRlZCBhcyB0aGV5
IGNvbnRhaW4gdGhlIG1lcmdlZCBtYXJrcyIKLSkKLQotTUFSS19QQVJBTUVURVJTRVRfVU5QQUNL
SU5HID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCi0gICAgIkFwcGx5aW5nIG1hcmtzIGRpcmVj
dGx5IHRvIHBhcmFtZXRlcnMgaXMgZGVwcmVjYXRlZCwiCi0gICAgIiBwbGVhc2UgdXNlIHB5dGVz
dC5wYXJhbSguLi4sIG1hcmtzPS4uLikgaW5zdGVhZC5cbiIKLSAgICAiRm9yIG1vcmUgZGV0YWls
cywgc2VlOiBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcGFyYW1ldHJpemUuaHRt
bCIKLSkKLQotQ09MTEVDVE9SX01BS0VJVEVNID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCi0g
ICAgInB5Y29sbGVjdG9yIG1ha2VpdGVtIHdhcyByZW1vdmVkICIKLSAgICAiYXMgaXQgaXMgYW4g
YWNjaWRlbnRpYWxseSBsZWFrZWQgaW50ZXJuYWwgYXBpIgotKQotCi1NRVRBRlVOQ19BRERfQ0FM
TCA9ICgKLSAgICAiTWV0YWZ1bmMuYWRkY2FsbCBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVsZWQg
dG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wLlxuIgotICAgICJQbGVhc2UgdXNlIE1ldGFmdW5j
LnBhcmFtZXRyaXplIGluc3RlYWQuIgotKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9kb2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kb2N0ZXN0LnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiYmE5MGU1NTFjNTA1YWVkOTkzYTc5OTE5ZGQwMzk5OTg2MTBh
NmQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvZG9jdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM2OSArMCwwIEBA
Ci0iIiIgZGlzY292ZXIgYW5kIHJ1biBkb2N0ZXN0cyBpbiBtb2R1bGVzIGFuZCB0ZXN0IGZpbGVz
LiIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotCi1pbXBvcnQgdHJhY2ViYWNrCi0KLWltcG9ydCBweXRlc3QKLWZyb20g
X3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvLCBSZXByRmlsZUxvY2F0aW9u
LCBUZXJtaW5hbFJlcHIKLWZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgRml4dHVyZVJlcXVl
c3QKLQotCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9ORSA9ICdub25lJwotRE9DVEVTVF9SRVBP
UlRfQ0hPSUNFX0NESUZGID0gJ2NkaWZmJwotRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05ESUZGID0g
J25kaWZmJwotRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX1VESUZGID0gJ3VkaWZmJwotRE9DVEVTVF9S
RVBPUlRfQ0hPSUNFX09OTFlfRklSU1RfRkFJTFVSRSA9ICdvbmx5X2ZpcnN0X2ZhaWx1cmUnCi0K
LURPQ1RFU1RfUkVQT1JUX0NIT0lDRVMgPSAoCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05P
TkUsCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX0NESUZGLAotICAgIERPQ1RFU1RfUkVQT1JU
X0NIT0lDRV9ORElGRiwKLSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfVURJRkYsCi0gICAgRE9D
VEVTVF9SRVBPUlRfQ0hPSUNFX09OTFlfRklSU1RfRkFJTFVSRSwKLSkKLQotCi1kZWYgcHl0ZXN0
X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIHBhcnNlci5hZGRpbmkoJ2RvY3Rlc3Rfb3B0aW9uZmxh
Z3MnLCAnb3B0aW9uIGZsYWdzIGZvciBkb2N0ZXN0cycsCi0gICAgICAgICAgICAgICAgICB0eXBl
PSJhcmdzIiwgZGVmYXVsdD1bIkVMTElQU0lTIl0pCi0gICAgcGFyc2VyLmFkZGluaSgiZG9jdGVz
dF9lbmNvZGluZyIsICdlbmNvZGluZyB1c2VkIGZvciBkb2N0ZXN0IGZpbGVzJywgZGVmYXVsdD0i
dXRmLTgiKQotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJjb2xsZWN0IikKLSAgICBncm91
cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1tb2R1bGVzIiwKLSAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVs
cD0icnVuIGRvY3Rlc3RzIGluIGFsbCAucHkgbW9kdWxlcyIsCi0gICAgICAgICAgICAgICAgICAg
IGRlc3Q9ImRvY3Rlc3Rtb2R1bGVzIikKLSAgICBncm91cC5hZGRvcHRpb24oIi0tZG9jdGVzdC1y
ZXBvcnQiLAotICAgICAgICAgICAgICAgICAgICB0eXBlPXN0ci5sb3dlciwgZGVmYXVsdD0idWRp
ZmYiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJjaG9vc2UgYW5vdGhlciBvdXRwdXQgZm9y
bWF0IGZvciBkaWZmcyBvbiBkb2N0ZXN0IGZhaWx1cmUiLAotICAgICAgICAgICAgICAgICAgICBj
aG9pY2VzPURPQ1RFU1RfUkVQT1JUX0NIT0lDRVMsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9
ImRvY3Rlc3RyZXBvcnQiKQotICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LWdsb2IiLAot
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249ImFwcGVuZCIsIGRlZmF1bHQ9W10sIG1ldGF2YXI9
InBhdCIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9ImRvY3Rlc3RzIGZpbGUgbWF0Y2hpbmcg
cGF0dGVybiwgZGVmYXVsdDogdGVzdCoudHh0IiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0i
ZG9jdGVzdGdsb2IiKQotICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LWlnbm9yZS1pbXBv
cnQtZXJyb3JzIiwKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iaWdub3JlIGRvY3Rlc3QgSW1w
b3J0RXJyb3JzIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iZG9jdGVzdF9pZ25vcmVfaW1w
b3J0X2Vycm9ycyIpCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToK
LSAgICBjb25maWcgPSBwYXJlbnQuY29uZmlnCi0gICAgaWYgcGF0aC5leHQgPT0gIi5weSI6Ci0g
ICAgICAgIGlmIGNvbmZpZy5vcHRpb24uZG9jdGVzdG1vZHVsZXMgYW5kIG5vdCBfaXNfc2V0dXBf
cHkoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgotICAgICAgICAgICAgcmV0dXJuIERvY3Rlc3RNb2R1
bGUocGF0aCwgcGFyZW50KQotICAgIGVsaWYgX2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBwYXJl
bnQpOgotICAgICAgICByZXR1cm4gRG9jdGVzdFRleHRmaWxlKHBhdGgsIHBhcmVudCkKLQotCi1k
ZWYgX2lzX3NldHVwX3B5KGNvbmZpZywgcGF0aCwgcGFyZW50KToKLSAgICBpZiBwYXRoLmJhc2Vu
YW1lICE9ICJzZXR1cC5weSI6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIGNvbnRlbnRzID0g
cGF0aC5yZWFkKCkKLSAgICByZXR1cm4gJ3NldHVwdG9vbHMnIGluIGNvbnRlbnRzIG9yICdkaXN0
dXRpbHMnIGluIGNvbnRlbnRzCi0KLQotZGVmIF9pc19kb2N0ZXN0KGNvbmZpZywgcGF0aCwgcGFy
ZW50KToKLSAgICBpZiBwYXRoLmV4dCBpbiAoJy50eHQnLCAnLnJzdCcpIGFuZCBwYXJlbnQuc2Vz
c2lvbi5pc2luaXRwYXRoKHBhdGgpOgotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGdsb2JzID0g
Y29uZmlnLmdldG9wdGlvbigiZG9jdGVzdGdsb2IiKSBvciBbJ3Rlc3QqLnR4dCddCi0gICAgZm9y
IGdsb2IgaW4gZ2xvYnM6Ci0gICAgICAgIGlmIHBhdGguY2hlY2soZm5tYXRjaD1nbG9iKToKLSAg
ICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgUmVwckZh
aWxEb2N0ZXN0KFRlcm1pbmFsUmVwcik6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcmxv
Y2F0aW9uLCBsaW5lcyk6Ci0gICAgICAgIHNlbGYucmVwcmxvY2F0aW9uID0gcmVwcmxvY2F0aW9u
Ci0gICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwg
dHcpOgotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgotICAgICAgICAgICAgdHcubGlu
ZShsaW5lKQotICAgICAgICBzZWxmLnJlcHJsb2NhdGlvbi50b3Rlcm1pbmFsKHR3KQotCi0KLWNs
YXNzIERvY3Rlc3RJdGVtKHB5dGVzdC5JdGVtKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFt
ZSwgcGFyZW50LCBydW5uZXI9Tm9uZSwgZHRlc3Q9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKERvY3Rl
c3RJdGVtLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBwYXJlbnQpCi0gICAgICAgIHNlbGYucnVubmVy
ID0gcnVubmVyCi0gICAgICAgIHNlbGYuZHRlc3QgPSBkdGVzdAotICAgICAgICBzZWxmLm9iaiA9
IE5vbmUKLSAgICAgICAgc2VsZi5maXh0dXJlX3JlcXVlc3QgPSBOb25lCi0KLSAgICBkZWYgc2V0
dXAoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuZHRlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLmZpeHR1cmVfcmVxdWVzdCA9IF9zZXR1cF9maXh0dXJlcyhzZWxmKQotICAgICAgICAg
ICAgZ2xvYnMgPSBkaWN0KGdldGZpeHR1cmU9c2VsZi5maXh0dXJlX3JlcXVlc3QuZ2V0Zml4dHVy
ZXZhbHVlKQotICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuZml4dHVyZV9yZXF1
ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZG9jdGVzdF9uYW1lc3BhY2UnKS5pdGVtcygpOgotICAgICAg
ICAgICAgICAgIGdsb2JzW25hbWVdID0gdmFsdWUKLSAgICAgICAgICAgIHNlbGYuZHRlc3QuZ2xv
YnMudXBkYXRlKGdsb2JzKQotCi0gICAgZGVmIHJ1bnRlc3Qoc2VsZik6Ci0gICAgICAgIF9jaGVj
a19hbGxfc2tpcHBlZChzZWxmLmR0ZXN0KQotICAgICAgICBzZWxmLnJ1bm5lci5ydW4oc2VsZi5k
dGVzdCkKLQotICAgIGRlZiByZXByX2ZhaWx1cmUoc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIGlt
cG9ydCBkb2N0ZXN0Ci0gICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZSgoZG9jdGVzdC5E
b2NUZXN0RmFpbHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0ZXN0
LlVuZXhwZWN0ZWRFeGNlcHRpb24pKToKLSAgICAgICAgICAgIGRvY3Rlc3RmYWlsdXJlID0gZXhj
aW5mby52YWx1ZQotICAgICAgICAgICAgZXhhbXBsZSA9IGRvY3Rlc3RmYWlsdXJlLmV4YW1wbGUK
LSAgICAgICAgICAgIHRlc3QgPSBkb2N0ZXN0ZmFpbHVyZS50ZXN0Ci0gICAgICAgICAgICBmaWxl
bmFtZSA9IHRlc3QuZmlsZW5hbWUKLSAgICAgICAgICAgIGlmIHRlc3QubGluZW5vIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgbGluZW5vID0gTm9uZQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBsaW5lbm8gPSB0ZXN0LmxpbmVubyArIGV4YW1wbGUubGluZW5vICsgMQotICAg
ICAgICAgICAgbWVzc2FnZSA9IGV4Y2luZm8udHlwZS5fX25hbWVfXwotICAgICAgICAgICAgcmVw
cmxvY2F0aW9uID0gUmVwckZpbGVMb2NhdGlvbihmaWxlbmFtZSwgbGluZW5vLCBtZXNzYWdlKQot
ICAgICAgICAgICAgY2hlY2tlciA9IF9nZXRfY2hlY2tlcigpCi0gICAgICAgICAgICByZXBvcnRf
Y2hvaWNlID0gX2dldF9yZXBvcnRfY2hvaWNlKHNlbGYuY29uZmlnLmdldG9wdGlvbigiZG9jdGVz
dHJlcG9ydCIpKQotICAgICAgICAgICAgaWYgbGluZW5vIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIGxpbmVzID0gZG9jdGVzdGZhaWx1cmUudGVzdC5kb2NzdHJpbmcuc3BsaXRsaW5lcyhG
YWxzZSkKLSAgICAgICAgICAgICAgICAjIGFkZCBsaW5lIG51bWJlcnMgdG8gdGhlIGxlZnQgb2Yg
dGhlIGVycm9yIG1lc3NhZ2UKLSAgICAgICAgICAgICAgICBsaW5lcyA9IFsiJTAzZCAlcyIgJSAo
aSArIHRlc3QubGluZW5vICsgMSwgeCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGks
IHgpIGluIGVudW1lcmF0ZShsaW5lcyldCi0gICAgICAgICAgICAgICAgIyB0cmltIGRvY3N0cmlu
ZyBlcnJvciBsaW5lcyB0byAxMAotICAgICAgICAgICAgICAgIGxpbmVzID0gbGluZXNbbWF4KGV4
YW1wbGUubGluZW5vIC0gOSwgMCk6ZXhhbXBsZS5saW5lbm8gKyAxXQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBsaW5lcyA9IFsnRVhBTVBMRSBMT0NBVElPTiBVTktOT1dOLCBu
b3Qgc2hvd2luZyBhbGwgdGVzdHMgb2YgdGhhdCBleGFtcGxlJ10KLSAgICAgICAgICAgICAgICBp
bmRlbnQgPSAnPj4+JwotICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGV4YW1wbGUuc291cmNl
LnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCc/Pz8gJXMg
JXMnICUgKGluZGVudCwgbGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGluZGVudCA9ICcuLi4n
Ci0gICAgICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoZG9jdGVzdC5Eb2NUZXN0RmFp
bHVyZSk6Ci0gICAgICAgICAgICAgICAgbGluZXMgKz0gY2hlY2tlci5vdXRwdXRfZGlmZmVyZW5j
ZShleGFtcGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG9jdGVzdGZhaWx1cmUuZ290LCByZXBvcnRfY2hvaWNlKS5zcGxpdCgiXG4iKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpbm5lcl9leGNpbmZvID0gRXhjZXB0aW9u
SW5mbyhleGNpbmZvLnZhbHVlLmV4Y19pbmZvKQotICAgICAgICAgICAgICAgIGxpbmVzICs9IFsi
VU5FWFBFQ1RFRCBFWENFUFRJT046ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cHIoaW5uZXJfZXhjaW5mby52YWx1ZSldCi0gICAgICAgICAgICAgICAgbGluZXMgKz0gdHJhY2Vi
YWNrLmZvcm1hdF9leGNlcHRpb24oKmV4Y2luZm8udmFsdWUuZXhjX2luZm8pCi0gICAgICAgICAg
ICByZXR1cm4gUmVwckZhaWxEb2N0ZXN0KHJlcHJsb2NhdGlvbiwgbGluZXMpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByZXR1cm4gc3VwZXIoRG9jdGVzdEl0ZW0sIHNlbGYpLnJlcHJfZmFp
bHVyZShleGNpbmZvKQotCi0gICAgZGVmIHJlcG9ydGluZm8oc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLmZzcGF0aCwgc2VsZi5kdGVzdC5saW5lbm8sICJbZG9jdGVzdF0gJXMiICUgc2VsZi5u
YW1lCi0KLQotZGVmIF9nZXRfZmxhZ19sb29rdXAoKToKLSAgICBpbXBvcnQgZG9jdGVzdAotICAg
IHJldHVybiBkaWN0KERPTlRfQUNDRVBUX1RSVUVfRk9SXzE9ZG9jdGVzdC5ET05UX0FDQ0VQVF9U
UlVFX0ZPUl8xLAotICAgICAgICAgICAgICAgIERPTlRfQUNDRVBUX0JMQU5LTElORT1kb2N0ZXN0
LkRPTlRfQUNDRVBUX0JMQU5LTElORSwKLSAgICAgICAgICAgICAgICBOT1JNQUxJWkVfV0hJVEVT
UEFDRT1kb2N0ZXN0Lk5PUk1BTElaRV9XSElURVNQQUNFLAotICAgICAgICAgICAgICAgIEVMTElQ
U0lTPWRvY3Rlc3QuRUxMSVBTSVMsCi0gICAgICAgICAgICAgICAgSUdOT1JFX0VYQ0VQVElPTl9E
RVRBSUw9ZG9jdGVzdC5JR05PUkVfRVhDRVBUSU9OX0RFVEFJTCwKLSAgICAgICAgICAgICAgICBD
T01QQVJJU09OX0ZMQUdTPWRvY3Rlc3QuQ09NUEFSSVNPTl9GTEFHUywKLSAgICAgICAgICAgICAg
ICBBTExPV19VTklDT0RFPV9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCksCi0gICAgICAgICAgICAg
ICAgQUxMT1dfQllURVM9X2dldF9hbGxvd19ieXRlc19mbGFnKCksCi0gICAgICAgICAgICAgICAg
KQotCi0KLWRlZiBnZXRfb3B0aW9uZmxhZ3MocGFyZW50KToKLSAgICBvcHRpb25mbGFnc19zdHIg
PSBwYXJlbnQuY29uZmlnLmdldGluaSgiZG9jdGVzdF9vcHRpb25mbGFncyIpCi0gICAgZmxhZ19s
b29rdXBfdGFibGUgPSBfZ2V0X2ZsYWdfbG9va3VwKCkKLSAgICBmbGFnX2FjYyA9IDAKLSAgICBm
b3IgZmxhZyBpbiBvcHRpb25mbGFnc19zdHI6Ci0gICAgICAgIGZsYWdfYWNjIHw9IGZsYWdfbG9v
a3VwX3RhYmxlW2ZsYWddCi0gICAgcmV0dXJuIGZsYWdfYWNjCi0KLQotY2xhc3MgRG9jdGVzdFRl
eHRmaWxlKHB5dGVzdC5Nb2R1bGUpOgotICAgIG9iaiA9IE5vbmUKLQotICAgIGRlZiBjb2xsZWN0
KHNlbGYpOgotICAgICAgICBpbXBvcnQgZG9jdGVzdAotCi0gICAgICAgICMgaW5zcGlyZWQgYnkg
ZG9jdGVzdC50ZXN0ZmlsZTsgaWRlYWxseSB3ZSB3b3VsZCB1c2UgaXQgZGlyZWN0bHksCi0gICAg
ICAgICMgYnV0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBwYXNzaW5nIGEgY3VzdG9tIGNoZWNrZXIKLSAg
ICAgICAgZW5jb2RpbmcgPSBzZWxmLmNvbmZpZy5nZXRpbmkoImRvY3Rlc3RfZW5jb2RpbmciKQot
ICAgICAgICB0ZXh0ID0gc2VsZi5mc3BhdGgucmVhZF90ZXh0KGVuY29kaW5nKQotICAgICAgICBm
aWxlbmFtZSA9IHN0cihzZWxmLmZzcGF0aCkKLSAgICAgICAgbmFtZSA9IHNlbGYuZnNwYXRoLmJh
c2VuYW1lCi0gICAgICAgIGdsb2JzID0geydfX25hbWVfXyc6ICdfX21haW5fXyd9Ci0KLSAgICAg
ICAgb3B0aW9uZmxhZ3MgPSBnZXRfb3B0aW9uZmxhZ3Moc2VsZikKLSAgICAgICAgcnVubmVyID0g
ZG9jdGVzdC5EZWJ1Z1J1bm5lcih2ZXJib3NlPTAsIG9wdGlvbmZsYWdzPW9wdGlvbmZsYWdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZXI9X2dldF9jaGVja2Vy
KCkpCi0gICAgICAgIF9maXhfc3Bvb2ZfcHl0aG9uMihydW5uZXIsIGVuY29kaW5nKQotCi0gICAg
ICAgIHBhcnNlciA9IGRvY3Rlc3QuRG9jVGVzdFBhcnNlcigpCi0gICAgICAgIHRlc3QgPSBwYXJz
ZXIuZ2V0X2RvY3Rlc3QodGV4dCwgZ2xvYnMsIG5hbWUsIGZpbGVuYW1lLCAwKQotICAgICAgICBp
ZiB0ZXN0LmV4YW1wbGVzOgotICAgICAgICAgICAgeWllbGQgRG9jdGVzdEl0ZW0odGVzdC5uYW1l
LCBzZWxmLCBydW5uZXIsIHRlc3QpCi0KLQotZGVmIF9jaGVja19hbGxfc2tpcHBlZCh0ZXN0KToK
LSAgICAiIiJyYWlzZXMgcHl0ZXN0LnNraXAoKSBpZiBhbGwgZXhhbXBsZXMgaW4gdGhlIGdpdmVu
IERvY1Rlc3QgaGF2ZSB0aGUgU0tJUAotICAgIG9wdGlvbiBzZXQuCi0gICAgIiIiCi0gICAgaW1w
b3J0IGRvY3Rlc3QKLSAgICBhbGxfc2tpcHBlZCA9IGFsbCh4Lm9wdGlvbnMuZ2V0KGRvY3Rlc3Qu
U0tJUCwgRmFsc2UpIGZvciB4IGluIHRlc3QuZXhhbXBsZXMpCi0gICAgaWYgYWxsX3NraXBwZWQ6
Ci0gICAgICAgIHB5dGVzdC5za2lwKCdhbGwgdGVzdHMgc2tpcHBlZCBieSArU0tJUCBvcHRpb24n
KQotCi0KLWNsYXNzIERvY3Rlc3RNb2R1bGUocHl0ZXN0Lk1vZHVsZSk6Ci0gICAgZGVmIGNvbGxl
Y3Qoc2VsZik6Ci0gICAgICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgICAgIGlmIHNlbGYuZnNwYXRo
LmJhc2VuYW1lID09ICJjb25mdGVzdC5weSI6Ci0gICAgICAgICAgICBtb2R1bGUgPSBzZWxmLmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLl9pbXBvcnRjb25mdGVzdChzZWxmLmZzcGF0aCkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBtb2R1bGUgPSBzZWxmLmZz
cGF0aC5weWltcG9ydCgpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAg
ICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0dmFsdWUoJ2RvY3Rlc3RfaWdub3JlX2ltcG9ydF9l
cnJvcnMnKToKLSAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoJ3VuYWJsZSB0byBpbXBv
cnQgbW9kdWxlICVyJyAlIHNlbGYuZnNwYXRoKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICMgdXNlcyBpbnRlcm5hbCBkb2N0ZXN0IG1v
ZHVsZSBwYXJzaW5nIG1lY2hhbmlzbQotICAgICAgICBmaW5kZXIgPSBkb2N0ZXN0LkRvY1Rlc3RG
aW5kZXIoKQotICAgICAgICBvcHRpb25mbGFncyA9IGdldF9vcHRpb25mbGFncyhzZWxmKQotICAg
ICAgICBydW5uZXIgPSBkb2N0ZXN0LkRlYnVnUnVubmVyKHZlcmJvc2U9MCwgb3B0aW9uZmxhZ3M9
b3B0aW9uZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tl
cj1fZ2V0X2NoZWNrZXIoKSkKLQotICAgICAgICBmb3IgdGVzdCBpbiBmaW5kZXIuZmluZChtb2R1
bGUsIG1vZHVsZS5fX25hbWVfXyk6Ci0gICAgICAgICAgICBpZiB0ZXN0LmV4YW1wbGVzOiAgIyBz
a2lwIGVtcHR5IGRvY3Rlc3RzCi0gICAgICAgICAgICAgICAgeWllbGQgRG9jdGVzdEl0ZW0odGVz
dC5uYW1lLCBzZWxmLCBydW5uZXIsIHRlc3QpCi0KLQotZGVmIF9zZXR1cF9maXh0dXJlcyhkb2N0
ZXN0X2l0ZW0pOgotICAgICIiIgotICAgIFVzZWQgYnkgRG9jdGVzdFRleHRmaWxlIGFuZCBEb2N0
ZXN0SXRlbSB0byBzZXR1cCBmaXh0dXJlIGluZm9ybWF0aW9uLgotICAgICIiIgotICAgIGRlZiBm
dW5jKCk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRvY3Rlc3RfaXRlbS5mdW5jYXJncyA9IHt9Ci0g
ICAgZm0gPSBkb2N0ZXN0X2l0ZW0uc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLSAgICBkb2N0ZXN0
X2l0ZW0uX2ZpeHR1cmVpbmZvID0gZm0uZ2V0Zml4dHVyZWluZm8obm9kZT1kb2N0ZXN0X2l0ZW0s
IGZ1bmM9ZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xzPU5vbmUsIGZ1bmNhcmdzPUZhbHNlKQotICAgIGZpeHR1cmVfcmVxdWVzdCA9IEZp
eHR1cmVSZXF1ZXN0KGRvY3Rlc3RfaXRlbSkKLSAgICBmaXh0dXJlX3JlcXVlc3QuX2ZpbGxmaXh0
dXJlcygpCi0gICAgcmV0dXJuIGZpeHR1cmVfcmVxdWVzdAotCi0KLWRlZiBfZ2V0X2NoZWNrZXIo
KToKLSAgICAiIiIKLSAgICBSZXR1cm5zIGEgZG9jdGVzdC5PdXRwdXRDaGVja2VyIHN1YmNsYXNz
IHRoYXQgdGFrZXMgaW4gYWNjb3VudCB0aGUKLSAgICBBTExPV19VTklDT0RFIG9wdGlvbiB0byBp
Z25vcmUgdScnIHByZWZpeGVzIGluIHN0cmluZ3MgYW5kIEFMTE9XX0JZVEVTCi0gICAgdG8gc3Ry
aXAgYicnIHByZWZpeGVzLgotICAgIFVzZWZ1bCB3aGVuIHRoZSBzYW1lIGRvY3Rlc3Qgc2hvdWxk
IHJ1biBpbiBQeXRob24gMiBhbmQgUHl0aG9uIDMuCi0KLSAgICBBbiBpbm5lciBjbGFzcyBpcyB1
c2VkIHRvIGF2b2lkIGltcG9ydGluZyAiZG9jdGVzdCIgYXQgdGhlIG1vZHVsZQotICAgIGxldmVs
LgotICAgICIiIgotICAgIGlmIGhhc2F0dHIoX2dldF9jaGVja2VyLCAnTGl0ZXJhbHNPdXRwdXRD
aGVja2VyJyk6Ci0gICAgICAgIHJldHVybiBfZ2V0X2NoZWNrZXIuTGl0ZXJhbHNPdXRwdXRDaGVj
a2VyKCkKLQotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgaW1wb3J0IHJlCi0KLSAgICBjbGFzcyBM
aXRlcmFsc091dHB1dENoZWNrZXIoZG9jdGVzdC5PdXRwdXRDaGVja2VyKToKLSAgICAgICAgIiIi
Ci0gICAgICAgIENvcGllZCBmcm9tIGRvY3Rlc3Rfbm9zZV9wbHVnaW4ucHkgZnJvbSB0aGUgbmx0
ayBwcm9qZWN0OgotICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL25sdGsvbmx0awotCi0g
ICAgICAgIEZ1cnRoZXIgZXh0ZW5kZWQgdG8gYWxzbyBzdXBwb3J0IGJ5dGUgbGl0ZXJhbHMuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIF91bmljb2RlX2xpdGVyYWxfcmUgPSByZS5jb21waWxlKHIi
KFxXfF4pW3VVXShbclJdP1tcJ1wiXSkiLCByZS5VTklDT0RFKQotICAgICAgICBfYnl0ZXNfbGl0
ZXJhbF9yZSA9IHJlLmNvbXBpbGUociIoXFd8XilbYkJdKFtyUl0/W1wnXCJdKSIsIHJlLlVOSUNP
REUpCi0KLSAgICAgICAgZGVmIGNoZWNrX291dHB1dChzZWxmLCB3YW50LCBnb3QsIG9wdGlvbmZs
YWdzKToKLSAgICAgICAgICAgIHJlcyA9IGRvY3Rlc3QuT3V0cHV0Q2hlY2tlci5jaGVja19vdXRw
dXQoc2VsZiwgd2FudCwgZ290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25mbGFncykKLSAgICAgICAgICAgIGlmIHJlczoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgICAgICBhbGxvd191bmljb2RlID0gb3B0
aW9uZmxhZ3MgJiBfZ2V0X2FsbG93X3VuaWNvZGVfZmxhZygpCi0gICAgICAgICAgICBhbGxvd19i
eXRlcyA9IG9wdGlvbmZsYWdzICYgX2dldF9hbGxvd19ieXRlc19mbGFnKCkKLSAgICAgICAgICAg
IGlmIG5vdCBhbGxvd191bmljb2RlIGFuZCBub3QgYWxsb3dfYnl0ZXM6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgICAgIGVsc2U6ICAjIHByYWdtYTogbm8gY292ZXIK
LSAgICAgICAgICAgICAgICBkZWYgcmVtb3ZlX3ByZWZpeGVzKHJlZ2V4LCB0eHQpOgotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmUuc3ViKHJlZ2V4LCByJ1wxXDInLCB0eHQpCi0KLSAgICAg
ICAgICAgICAgICBpZiBhbGxvd191bmljb2RlOgotICAgICAgICAgICAgICAgICAgICB3YW50ID0g
cmVtb3ZlX3ByZWZpeGVzKHNlbGYuX3VuaWNvZGVfbGl0ZXJhbF9yZSwgd2FudCkKLSAgICAgICAg
ICAgICAgICAgICAgZ290ID0gcmVtb3ZlX3ByZWZpeGVzKHNlbGYuX3VuaWNvZGVfbGl0ZXJhbF9y
ZSwgZ290KQotICAgICAgICAgICAgICAgIGlmIGFsbG93X2J5dGVzOgotICAgICAgICAgICAgICAg
ICAgICB3YW50ID0gcmVtb3ZlX3ByZWZpeGVzKHNlbGYuX2J5dGVzX2xpdGVyYWxfcmUsIHdhbnQp
Ci0gICAgICAgICAgICAgICAgICAgIGdvdCA9IHJlbW92ZV9wcmVmaXhlcyhzZWxmLl9ieXRlc19s
aXRlcmFsX3JlLCBnb3QpCi0gICAgICAgICAgICAgICAgcmVzID0gZG9jdGVzdC5PdXRwdXRDaGVj
a2VyLmNoZWNrX291dHB1dChzZWxmLCB3YW50LCBnb3QsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25mbGFncykKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBfZ2V0X2NoZWNrZXIuTGl0ZXJhbHNPdXRwdXRDaGVj
a2VyID0gTGl0ZXJhbHNPdXRwdXRDaGVja2VyCi0gICAgcmV0dXJuIF9nZXRfY2hlY2tlci5MaXRl
cmFsc091dHB1dENoZWNrZXIoKQotCi0KLWRlZiBfZ2V0X2FsbG93X3VuaWNvZGVfZmxhZygpOgot
ICAgICIiIgotICAgIFJlZ2lzdGVycyBhbmQgcmV0dXJucyB0aGUgQUxMT1dfVU5JQ09ERSBmbGFn
LgotICAgICIiIgotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgcmV0dXJuIGRvY3Rlc3QucmVnaXN0
ZXJfb3B0aW9uZmxhZygnQUxMT1dfVU5JQ09ERScpCi0KLQotZGVmIF9nZXRfYWxsb3dfYnl0ZXNf
ZmxhZygpOgotICAgICIiIgotICAgIFJlZ2lzdGVycyBhbmQgcmV0dXJucyB0aGUgQUxMT1dfQllU
RVMgZmxhZy4KLSAgICAiIiIKLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIHJldHVybiBkb2N0ZXN0
LnJlZ2lzdGVyX29wdGlvbmZsYWcoJ0FMTE9XX0JZVEVTJykKLQotCi1kZWYgX2dldF9yZXBvcnRf
Y2hvaWNlKGtleSk6Ci0gICAgIiIiCi0gICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhY3R1
YWwgYGRvY3Rlc3RgIG1vZHVsZSBmbGFnIHZhbHVlLCB3ZSB3YW50IHRvIGRvIGl0IGFzIGxhdGUg
YXMgcG9zc2libGUgdG8gYXZvaWQKLSAgICBpbXBvcnRpbmcgYGRvY3Rlc3RgIGFuZCBhbGwgaXRz
IGRlcGVuZGVuY2llcyB3aGVuIHBhcnNpbmcgb3B0aW9ucywgYXMgaXQgYWRkcyBvdmVyaGVhZCBh
bmQgYnJlYWtzIHRlc3RzLgotICAgICIiIgotICAgIGltcG9ydCBkb2N0ZXN0Ci0KLSAgICByZXR1
cm4gewotICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfVURJRkY6IGRvY3Rlc3QuUkVQT1JU
X1VESUZGLAotICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfQ0RJRkY6IGRvY3Rlc3QuUkVQ
T1JUX0NESUZGLAotICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkY6IGRvY3Rlc3Qu
UkVQT1JUX05ESUZGLAotICAgICAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfT05MWV9GSVJTVF9G
QUlMVVJFOiBkb2N0ZXN0LlJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUsCi0gICAgICAgIERPQ1RF
U1RfUkVQT1JUX0NIT0lDRV9OT05FOiAwLAotICAgIH1ba2V5XQotCi0KLWRlZiBfZml4X3Nwb29m
X3B5dGhvbjIocnVubmVyLCBlbmNvZGluZyk6Ci0gICAgIiIiCi0gICAgSW5zdGFsbHMgYSAiU3Bv
b2ZPdXQiIGludG8gdGhlIGdpdmVuIERlYnVnUnVubmVyIHNvIGl0IHByb3Blcmx5IGRlYWxzIHdp
dGggdW5pY29kZSBvdXRwdXQuIFRoaXMKLSAgICBzaG91bGQgcGF0Y2ggb25seSBkb2N0ZXN0cyBm
b3IgdGV4dCBmaWxlcyBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSBhIHdheSB0byBkZWNsYXJlIHRo
ZWlyCi0gICAgZW5jb2RpbmcuIERvY3Rlc3RzIGluIGRvY3N0cmluZ3MgZnJvbSBQeXRob24gbW9k
dWxlcyBkb24ndCBoYXZlIHRoZSBzYW1lIHByb2JsZW0gZ2l2ZW4gdGhhdAotICAgIFB5dGhvbiBh
bHJlYWR5IGRlY29kZWQgdGhlIHN0cmluZ3MuCi0KLSAgICBUaGlzIGZpeGVzIHRoZSBwcm9ibGVt
IHJlbGF0ZWQgaW4gaXNzdWUgIzI0MzQuCi0gICAgIiIiCi0gICAgZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgX1BZMgotICAgIGlmIG5vdCBfUFkyOgotICAgICAgICByZXR1cm4KLQotICAgIGZy
b20gZG9jdGVzdCBpbXBvcnQgX1Nwb29mT3V0Ci0KLSAgICBjbGFzcyBVbmljb2RlU3Bvb2YoX1Nw
b29mT3V0KToKLQotICAgICAgICBkZWYgZ2V0dmFsdWUoc2VsZik6Ci0gICAgICAgICAgICByZXN1
bHQgPSBfU3Bvb2ZPdXQuZ2V0dmFsdWUoc2VsZikKLSAgICAgICAgICAgIGlmIGVuY29kaW5nOgot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5kZWNvZGUoZW5jb2RpbmcpCi0gICAgICAg
ICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICBydW5uZXIuX2Zha2VvdXQgPSBVbmljb2RlU3Bvb2Yo
KQotCi0KLUBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCi1kZWYgZG9jdGVzdF9uYW1l
c3BhY2UoKToKLSAgICAiIiIKLSAgICBJbmplY3QgbmFtZXMgaW50byB0aGUgZG9jdGVzdCBuYW1l
c3BhY2UuCi0gICAgIiIiCi0gICAgcmV0dXJuIGRpY3QoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9maXh0dXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZml4dHVyZXMucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwOWZmYWRkYmE3M2ZmODRiMjM5ZDRmNGFh
MjllOTZkMDU2YzVkOGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0dXJlcy5weQorKysgL2Rldi9udWxsCkBAIC0x
LDExNDcgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgaW5zcGVj
dAotaW1wb3J0IHN5cwotaW1wb3J0IHdhcm5pbmdzCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBP
cmRlcmVkRGljdAotCi1pbXBvcnQgYXR0cgotaW1wb3J0IHB5Ci1mcm9tIHB5Ll9jb2RlLmNvZGUg
aW1wb3J0IEZvcm1hdHRlZEV4Y2luZm8KLQotaW1wb3J0IF9weXRlc3QKLWZyb20gX3B5dGVzdCBp
bXBvcnQgbm9kZXMKLWZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIK
LWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0ICgKLSAgICBOT1RTRVQsIGV4Y19jbGVhciwgX2Zv
cm1hdF9hcmdzLAotICAgIGdldGZzbGluZW5vLCBnZXRfcmVhbF9mdW5jLAotICAgIGlzX2dlbmVy
YXRvciwgaXNjbGFzcywgZ2V0aW1mdW5jLAotICAgIGdldGxvY2F0aW9uLCBnZXRmdW5jYXJnbmFt
ZXMsCi0gICAgc2FmZV9nZXRhdHRyLAotICAgIEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIsCi0pCi1m
cm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwsIFRFU1RfT1VUQ09NRQotCi0KLWRlZiBw
eXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgotICAgIGltcG9ydCBfcHl0ZXN0LnB5dGhvbgot
Ci0gICAgc2NvcGVuYW1lMmNsYXNzLnVwZGF0ZSh7Ci0gICAgICAgICdjbGFzcyc6IF9weXRlc3Qu
cHl0aG9uLkNsYXNzLAotICAgICAgICAnbW9kdWxlJzogX3B5dGVzdC5weXRob24uTW9kdWxlLAot
ICAgICAgICAnZnVuY3Rpb24nOiBfcHl0ZXN0Lm1haW4uSXRlbSwKLSAgICAgICAgJ3Nlc3Npb24n
OiBfcHl0ZXN0Lm1haW4uU2Vzc2lvbiwKLSAgICB9KQotICAgIHNlc3Npb24uX2ZpeHR1cmVtYW5h
Z2VyID0gRml4dHVyZU1hbmFnZXIoc2Vzc2lvbikKLQotCi1zY29wZW5hbWUyY2xhc3MgPSB7fQot
Ci0KLXNjb3BlMnByb3BzID0gZGljdChzZXNzaW9uPSgpKQotc2NvcGUycHJvcHNbIm1vZHVsZSJd
ID0gKCJmc3BhdGgiLCAibW9kdWxlIikKLXNjb3BlMnByb3BzWyJjbGFzcyJdID0gc2NvcGUycHJv
cHNbIm1vZHVsZSJdICsgKCJjbHMiLCkKLXNjb3BlMnByb3BzWyJpbnN0YW5jZSJdID0gc2NvcGUy
cHJvcHNbImNsYXNzIl0gKyAoImluc3RhbmNlIiwgKQotc2NvcGUycHJvcHNbImZ1bmN0aW9uIl0g
PSBzY29wZTJwcm9wc1siaW5zdGFuY2UiXSArICgiZnVuY3Rpb24iLCAia2V5d29yZHMiKQotCi0K
LWRlZiBzY29wZXByb3BlcnR5KG5hbWU9Tm9uZSwgZG9jPU5vbmUpOgotICAgIGRlZiBkZWNvcmF0
ZXNjb3BlKGZ1bmMpOgotICAgICAgICBzY29wZW5hbWUgPSBuYW1lIG9yIGZ1bmMuX19uYW1lX18K
LQotICAgICAgICBkZWYgcHJvdmlkZShzZWxmKToKLSAgICAgICAgICAgIGlmIGZ1bmMuX19uYW1l
X18gaW4gc2NvcGUycHJvcHNbc2VsZi5zY29wZV06Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZ1
bmMoc2VsZikKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCIlcyBub3QgYXZhaWxh
YmxlIGluICVzLXNjb3BlZCBjb250ZXh0IiAlICgKLSAgICAgICAgICAgICAgICBzY29wZW5hbWUs
IHNlbGYuc2NvcGUpKQotCi0gICAgICAgIHJldHVybiBwcm9wZXJ0eShwcm92aWRlLCBOb25lLCBO
b25lLCBmdW5jLl9fZG9jX18pCi0gICAgcmV0dXJuIGRlY29yYXRlc2NvcGUKLQotCi1kZWYgZ2V0
X3Njb3BlX25vZGUobm9kZSwgc2NvcGUpOgotICAgIGNscyA9IHNjb3BlbmFtZTJjbGFzcy5nZXQo
c2NvcGUpCi0gICAgaWYgY2xzIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVu
a25vd24gc2NvcGUiKQotICAgIHJldHVybiBub2RlLmdldHBhcmVudChjbHMpCi0KLQotZGVmIGFk
ZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2RlZihjb2xsZWN0b3IsIG1ldGFmdW5jLCBmaXh0dXJl
bWFuYWdlcik6Ci0gICAgIyB0aGlzIGZ1bmN0aW9uIHdpbGwgdHJhbnNmb3JtIGFsbCBjb2xsZWN0
ZWQgY2FsbHMgdG8gYSBmdW5jdGlvbnMKLSAgICAjIGlmIHRoZXkgdXNlIGRpcmVjdCBmdW5jYXJn
cyAoaS5lLiBkaXJlY3QgcGFyYW1ldHJpemF0aW9uKQotICAgICMgYmVjYXVzZSB3ZSB3YW50IGxh
dGVyIHRlc3QgZXhlY3V0aW9uIHRvIGJlIGFibGUgdG8gcmVseSBvbgotICAgICMgYW4gZXhpc3Rp
bmcgRml4dHVyZURlZiBzdHJ1Y3R1cmUgZm9yIGFsbCBhcmd1bWVudHMuCi0gICAgIyBYWFggd2Ug
Y2FuIHByb2JhYmx5IGF2b2lkIHRoaXMgYWxnb3JpdGhtICBpZiB3ZSBtb2RpZnkgQ2FsbFNwZWMy
Ci0gICAgIyB0byBkaXJlY3RseSBjYXJlIGZvciBjcmVhdGluZyB0aGUgZml4dHVyZWRlZnMgd2l0
aGluIGl0cyBtZXRob2RzLgotICAgIGlmIG5vdCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3M6
Ci0gICAgICAgIHJldHVybiAgIyB0aGlzIGZ1bmN0aW9uIGNhbGwgZG9lcyBub3QgaGF2ZSBkaXJl
Y3QgcGFyYW1ldHJpemF0aW9uCi0gICAgIyBjb2xsZWN0IGZ1bmNhcmdzIG9mIGFsbCBjYWxsc3Bl
Y3MgaW50byBhIGxpc3Qgb2YgdmFsdWVzCi0gICAgYXJnMnBhcmFtcyA9IHt9Ci0gICAgYXJnMnNj
b3BlID0ge30KLSAgICBmb3IgY2FsbHNwZWMgaW4gbWV0YWZ1bmMuX2NhbGxzOgotICAgICAgICBm
b3IgYXJnbmFtZSwgYXJndmFsdWUgaW4gY2FsbHNwZWMuZnVuY2FyZ3MuaXRlbXMoKToKLSAgICAg
ICAgICAgIGFzc2VydCBhcmduYW1lIG5vdCBpbiBjYWxsc3BlYy5wYXJhbXMKLSAgICAgICAgICAg
IGNhbGxzcGVjLnBhcmFtc1thcmduYW1lXSA9IGFyZ3ZhbHVlCi0gICAgICAgICAgICBhcmcycGFy
YW1zX2xpc3QgPSBhcmcycGFyYW1zLnNldGRlZmF1bHQoYXJnbmFtZSwgW10pCi0gICAgICAgICAg
ICBjYWxsc3BlYy5pbmRpY2VzW2FyZ25hbWVdID0gbGVuKGFyZzJwYXJhbXNfbGlzdCkKLSAgICAg
ICAgICAgIGFyZzJwYXJhbXNfbGlzdC5hcHBlbmQoYXJndmFsdWUpCi0gICAgICAgICAgICBpZiBh
cmduYW1lIG5vdCBpbiBhcmcyc2NvcGU6Ci0gICAgICAgICAgICAgICAgc2NvcGVudW0gPSBjYWxs
c3BlYy5fYXJnMnNjb3BlbnVtLmdldChhcmduYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVudW1fZnVuY3Rpb24pCi0gICAgICAg
ICAgICAgICAgYXJnMnNjb3BlW2FyZ25hbWVdID0gc2NvcGVzW3Njb3BlbnVtXQotICAgICAgICBj
YWxsc3BlYy5mdW5jYXJncy5jbGVhcigpCi0KLSAgICAjIHJlZ2lzdGVyIGFydGlmaWNpYWwgRml4
dHVyZURlZidzIHNvIHRoYXQgbGF0ZXIgYXQgdGVzdCBleGVjdXRpb24KLSAgICAjIHRpbWUgd2Ug
Y2FuIHJlbHkgb24gYSBwcm9wZXIgRml4dHVyZURlZiB0byBleGlzdCBmb3IgZml4dHVyZSBzZXR1
cC4KLSAgICBhcmcyZml4dHVyZWRlZnMgPSBtZXRhZnVuYy5fYXJnMmZpeHR1cmVkZWZzCi0gICAg
Zm9yIGFyZ25hbWUsIHZhbHVlbGlzdCBpbiBhcmcycGFyYW1zLml0ZW1zKCk6Ci0gICAgICAgICMg
aWYgd2UgaGF2ZSBhIHNjb3BlIHRoYXQgaXMgaGlnaGVyIHRoYW4gZnVuY3Rpb24gd2UgbmVlZAot
ICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3ZSBvbmx5IGV2ZXIgY3JlYXRlIGFuIGFjY29yZGluZyBm
aXh0dXJlZGVmIG9uCi0gICAgICAgICMgYSBwZXItc2NvcGUgYmFzaXMuIFdlIHRodXMgc3RvcmUg
YW5kIGNhY2hlIHRoZSBmaXh0dXJlZGVmIG9uIHRoZQotICAgICAgICAjIG5vZGUgcmVsYXRlZCB0
byB0aGUgc2NvcGUuCi0gICAgICAgIHNjb3BlID0gYXJnMnNjb3BlW2FyZ25hbWVdCi0gICAgICAg
IG5vZGUgPSBOb25lCi0gICAgICAgIGlmIHNjb3BlICE9ICJmdW5jdGlvbiI6Ci0gICAgICAgICAg
ICBub2RlID0gZ2V0X3Njb3BlX25vZGUoY29sbGVjdG9yLCBzY29wZSkKLSAgICAgICAgICAgIGlm
IG5vZGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBhc3NlcnQgc2NvcGUgPT0gImNsYXNzIiBh
bmQgaXNpbnN0YW5jZShjb2xsZWN0b3IsIF9weXRlc3QucHl0aG9uLk1vZHVsZSkKLSAgICAgICAg
ICAgICAgICAjIHVzZSBtb2R1bGUtbGV2ZWwgY29sbGVjdG9yIGZvciBjbGFzcy1zY29wZSAoZm9y
IG5vdykKLSAgICAgICAgICAgICAgICBub2RlID0gY29sbGVjdG9yCi0gICAgICAgIGlmIG5vZGUg
YW5kIGFyZ25hbWUgaW4gbm9kZS5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmOgotICAgICAgICAgICAg
YXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gW25vZGUuX25hbWUycHNldWRvZml4dHVyZWRlZlth
cmduYW1lXV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBGaXh0dXJl
RGVmKGZpeHR1cmVtYW5hZ2VyLCAnJywgYXJnbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldF9kaXJlY3RfcGFyYW1fZml4dHVyZV9mdW5jLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJnMnNjb3BlW2FyZ25hbWVdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVsaXN0LCBGYWxzZSwgRmFsc2UpCi0gICAgICAg
ICAgICBhcmcyZml4dHVyZWRlZnNbYXJnbmFtZV0gPSBbZml4dHVyZWRlZl0KLSAgICAgICAgICAg
IGlmIG5vZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgbm9kZS5fbmFtZTJwc2V1ZG9m
aXh0dXJlZGVmW2FyZ25hbWVdID0gZml4dHVyZWRlZgotCi0KLWRlZiBnZXRmaXh0dXJlbWFya2Vy
KG9iaik6Ci0gICAgIiIiIHJldHVybiBmaXh0dXJlbWFya2VyIG9yIE5vbmUgaWYgaXQgZG9lc24n
dCBleGlzdCBvciByYWlzZWQKLSAgICBleGNlcHRpb25zLiIiIgotICAgIHRyeToKLSAgICAgICAg
cmV0dXJuIGdldGF0dHIob2JqLCAiX3B5dGVzdGZpeHR1cmVmdW5jdGlvbiIsIE5vbmUpCi0gICAg
ZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAgIyBzb21lIG9iamVjdHMgcmFpc2UgZXJyb3Jz
IGxpa2UgcmVxdWVzdCAoZnJvbSBmbGFzayBpbXBvcnQgcmVxdWVzdCkKLSAgICAgICAgIyB3ZSBk
b24ndCBleHBlY3QgdGhlbSB0byBiZSBmaXh0dXJlIGZ1bmN0aW9ucwotICAgICAgICByZXR1cm4g
Tm9uZQotCi0KLWRlZiBnZXRfcGFyYW1ldHJpemVkX2ZpeHR1cmVfa2V5cyhpdGVtLCBzY29wZW51
bSk6Ci0gICAgIiIiIHJldHVybiBsaXN0IG9mIGtleXMgZm9yIGFsbCBwYXJhbWV0cml6ZWQgYXJn
dW1lbnRzIHdoaWNoIG1hdGNoCi0gICAgdGhlIHNwZWNpZmllZCBzY29wZS4gIiIiCi0gICAgYXNz
ZXJ0IHNjb3BlbnVtIDwgc2NvcGVudW1fZnVuY3Rpb24gICMgZnVuY3Rpb24KLSAgICB0cnk6Ci0g
ICAgICAgIGNzID0gaXRlbS5jYWxsc3BlYwotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAg
ICAgICAgcGFzcwotICAgIGVsc2U6Ci0gICAgICAgICMgY3MuaW5kaWNlcy5pdGVtcygpIGlzIHJh
bmRvbSBvcmRlciBvZiBhcmduYW1lcy4gIE5lZWQgdG8KLSAgICAgICAgIyBzb3J0IHRoaXMgc28g
dGhhdCBkaWZmZXJlbnQgY2FsbHMgdG8KLSAgICAgICAgIyBnZXRfcGFyYW1ldHJpemVkX2ZpeHR1
cmVfa2V5cyB3aWxsIGJlIGRldGVybWluaXN0aWMuCi0gICAgICAgIGZvciBhcmduYW1lLCBwYXJh
bV9pbmRleCBpbiBzb3J0ZWQoY3MuaW5kaWNlcy5pdGVtcygpKToKLSAgICAgICAgICAgIGlmIGNz
Ll9hcmcyc2NvcGVudW1bYXJnbmFtZV0gIT0gc2NvcGVudW06Ci0gICAgICAgICAgICAgICAgY29u
dGludWUKLSAgICAgICAgICAgIGlmIHNjb3BlbnVtID09IDA6ICAgICMgc2Vzc2lvbgotICAgICAg
ICAgICAgICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9pbmRleCkKLSAgICAgICAgICAgIGVsaWYg
c2NvcGVudW0gPT0gMTogICMgbW9kdWxlCi0gICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUs
IHBhcmFtX2luZGV4LCBpdGVtLmZzcGF0aCkKLSAgICAgICAgICAgIGVsaWYgc2NvcGVudW0gPT0g
MjogICMgY2xhc3MKLSAgICAgICAgICAgICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgs
IGl0ZW0uZnNwYXRoLCBpdGVtLmNscykKLSAgICAgICAgICAgIHlpZWxkIGtleQotCi0KLSMgYWxn
b3JpdGhtIGZvciBzb3J0aW5nIG9uIGEgcGVyLXBhcmFtZXRyaXplZCByZXNvdXJjZSBzZXR1cCBi
YXNpcwotIyBpdCBpcyBjYWxsZWQgZm9yIHNjb3BlbnVtPT0wIChzZXNzaW9uKSBmaXJzdCBhbmQg
cGVyZm9ybXMgc29ydGluZwotIyBkb3duIHRvIHRoZSBsb3dlciBzY29wZXMgc3VjaCBhcyB0byBt
aW5pbWl6ZSBudW1iZXIgb2YgImhpZ2ggc2NvcGUiCi0jIHNldHVwcyBhbmQgdGVhcmRvd25zCi0K
LWRlZiByZW9yZGVyX2l0ZW1zKGl0ZW1zKToKLSAgICBhcmdrZXlzX2NhY2hlID0ge30KLSAgICBm
b3Igc2NvcGVudW0gaW4gcmFuZ2UoMCwgc2NvcGVudW1fZnVuY3Rpb24pOgotICAgICAgICBhcmdr
ZXlzX2NhY2hlW3Njb3BlbnVtXSA9IGQgPSB7fQotICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoK
LSAgICAgICAgICAgIGtleXMgPSBPcmRlcmVkRGljdC5mcm9ta2V5cyhnZXRfcGFyYW1ldHJpemVk
X2ZpeHR1cmVfa2V5cyhpdGVtLCBzY29wZW51bSkpCi0gICAgICAgICAgICBpZiBrZXlzOgotICAg
ICAgICAgICAgICAgIGRbaXRlbV0gPSBrZXlzCi0gICAgcmV0dXJuIHJlb3JkZXJfaXRlbXNfYXRz
Y29wZShpdGVtcywgc2V0KCksIGFyZ2tleXNfY2FjaGUsIDApCi0KLQotZGVmIHJlb3JkZXJfaXRl
bXNfYXRzY29wZShpdGVtcywgaWdub3JlLCBhcmdrZXlzX2NhY2hlLCBzY29wZW51bSk6Ci0gICAg
aWYgc2NvcGVudW0gPj0gc2NvcGVudW1fZnVuY3Rpb24gb3IgbGVuKGl0ZW1zKSA8IDM6Ci0gICAg
ICAgIHJldHVybiBpdGVtcwotICAgIGl0ZW1zX2RvbmUgPSBbXQotICAgIHdoaWxlIDE6Ci0gICAg
ICAgIGl0ZW1zX2JlZm9yZSwgaXRlbXNfc2FtZSwgaXRlbXNfb3RoZXIsIG5ld2lnbm9yZSA9IFwK
LSAgICAgICAgICAgIHNsaWNlX2l0ZW1zKGl0ZW1zLCBpZ25vcmUsIGFyZ2tleXNfY2FjaGVbc2Nv
cGVudW1dKQotICAgICAgICBpdGVtc19iZWZvcmUgPSByZW9yZGVyX2l0ZW1zX2F0c2NvcGUoCi0g
ICAgICAgICAgICBpdGVtc19iZWZvcmUsIGlnbm9yZSwgYXJna2V5c19jYWNoZSwgc2NvcGVudW0g
KyAxKQotICAgICAgICBpZiBpdGVtc19zYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIG5vdGhp
bmcgdG8gcmVvcmRlciBpbiB0aGlzIHNjb3BlCi0gICAgICAgICAgICBhc3NlcnQgaXRlbXNfb3Ro
ZXIgaXMgTm9uZQotICAgICAgICAgICAgcmV0dXJuIGl0ZW1zX2RvbmUgKyBpdGVtc19iZWZvcmUK
LSAgICAgICAgaXRlbXNfZG9uZS5leHRlbmQoaXRlbXNfYmVmb3JlKQotICAgICAgICBpdGVtcyA9
IGl0ZW1zX3NhbWUgKyBpdGVtc19vdGhlcgotICAgICAgICBpZ25vcmUgPSBuZXdpZ25vcmUKLQot
Ci1kZWYgc2xpY2VfaXRlbXMoaXRlbXMsIGlnbm9yZSwgc2NvcGVkX2FyZ2tleXNfY2FjaGUpOgot
ICAgICMgd2UgcGljayB0aGUgZmlyc3QgaXRlbSB3aGljaCB1c2VzIGEgZml4dHVyZSBpbnN0YW5j
ZSBpbiB0aGUKLSAgICAjIHJlcXVlc3RlZCBzY29wZSBhbmQgd2hpY2ggd2UgaGF2ZW4ndCBzZWVu
IHlldC4gIFdlIHNsaWNlIHRoZSBpbnB1dAotICAgICMgaXRlbXMgbGlzdCBpbnRvIGEgbGlzdCBv
ZiBpdGVtc19ub21hdGNoLCBpdGVtc19zYW1lIGFuZAotICAgICMgaXRlbXNfb3RoZXIKLSAgICBp
ZiBzY29wZWRfYXJna2V5c19jYWNoZTogICMgZG8gd2UgbmVlZCB0byBkbyB3b3JrIGF0IGFsbD8K
LSAgICAgICAgaXQgPSBpdGVyKGl0ZW1zKQotICAgICAgICAjIGZpcnN0IGZpbmQgYSBzbGljaW5n
IGtleQotICAgICAgICBmb3IgaSwgaXRlbSBpbiBlbnVtZXJhdGUoaXQpOgotICAgICAgICAgICAg
YXJna2V5cyA9IHNjb3BlZF9hcmdrZXlzX2NhY2hlLmdldChpdGVtKQotICAgICAgICAgICAgaWYg
YXJna2V5cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBuZXdhcmdrZXlzID0gT3JkZXJl
ZERpY3QuZnJvbWtleXMoayBmb3IgayBpbiBhcmdrZXlzIGlmIGsgbm90IGluIGlnbm9yZSkKLSAg
ICAgICAgICAgICAgICBpZiBuZXdhcmdrZXlzOiAgIyBmb3VuZCBhIHNsaWNpbmcga2V5Ci0gICAg
ICAgICAgICAgICAgICAgIHNsaWNpbmdfYXJna2V5LCBfID0gbmV3YXJna2V5cy5wb3BpdGVtKCkK
LSAgICAgICAgICAgICAgICAgICAgaXRlbXNfYmVmb3JlID0gaXRlbXNbOmldCi0gICAgICAgICAg
ICAgICAgICAgIGl0ZW1zX3NhbWUgPSBbaXRlbV0KLSAgICAgICAgICAgICAgICAgICAgaXRlbXNf
b3RoZXIgPSBbXQotICAgICAgICAgICAgICAgICAgICAjIG5vdyBzbGljZSB0aGUgcmVtYWluZGVy
IG9mIHRoZSBsaXN0Ci0gICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGl0OgotICAgICAg
ICAgICAgICAgICAgICAgICAgYXJna2V5cyA9IHNjb3BlZF9hcmdrZXlzX2NhY2hlLmdldChpdGVt
KQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXJna2V5cyBhbmQgc2xpY2luZ19hcmdrZXkg
aW4gYXJna2V5cyBhbmQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGljaW5n
X2FyZ2tleSBub3QgaW4gaWdub3JlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1z
X3NhbWUuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zX290aGVyLmFwcGVuZChpdGVtKQotICAgICAgICAg
ICAgICAgICAgICBuZXdpZ25vcmUgPSBpZ25vcmUuY29weSgpCi0gICAgICAgICAgICAgICAgICAg
IG5ld2lnbm9yZS5hZGQoc2xpY2luZ19hcmdrZXkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biAoaXRlbXNfYmVmb3JlLCBpdGVtc19zYW1lLCBpdGVtc19vdGhlciwgbmV3aWdub3JlKQotICAg
IHJldHVybiBpdGVtcywgTm9uZSwgTm9uZSwgTm9uZQotCi0KLWRlZiBmaWxsZml4dHVyZXMoZnVu
Y3Rpb24pOgotICAgICIiIiBmaWxsIG1pc3NpbmcgZnVuY2FyZ3MgZm9yIGEgdGVzdCBmdW5jdGlv
bi4gIiIiCi0gICAgdHJ5OgotICAgICAgICByZXF1ZXN0ID0gZnVuY3Rpb24uX3JlcXVlc3QKLSAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICMgWFhYIHRoaXMgc3BlY2lhbCBjb2Rl
IHBhdGggaXMgb25seSBleHBlY3RlZCB0byBleGVjdXRlCi0gICAgICAgICMgd2l0aCB0aGUgb2Vq
c2tpdCBwbHVnaW4uICBJdCB1c2VzIGNsYXNzZXMgd2l0aCBmdW5jYXJncwotICAgICAgICAjIGFu
ZCB3ZSB0aHVzIGhhdmUgdG8gd29yayBhIGJpdCB0byBhbGxvdyB0aGlzLgotICAgICAgICBmbSA9
IGZ1bmN0aW9uLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIGZpID0gZm0uZ2V0Zml4
dHVyZWluZm8oZnVuY3Rpb24ucGFyZW50LCBmdW5jdGlvbi5vYmosIE5vbmUpCi0gICAgICAgIGZ1
bmN0aW9uLl9maXh0dXJlaW5mbyA9IGZpCi0gICAgICAgIHJlcXVlc3QgPSBmdW5jdGlvbi5fcmVx
dWVzdCA9IEZpeHR1cmVSZXF1ZXN0KGZ1bmN0aW9uKQotICAgICAgICByZXF1ZXN0Ll9maWxsZml4
dHVyZXMoKQotICAgICAgICAjIHBydW5lIG91dCBmdW5jYXJncyBmb3IganN0ZXN0cwotICAgICAg
ICBuZXdmdW5jYXJncyA9IHt9Ci0gICAgICAgIGZvciBuYW1lIGluIGZpLmFyZ25hbWVzOgotICAg
ICAgICAgICAgbmV3ZnVuY2FyZ3NbbmFtZV0gPSBmdW5jdGlvbi5mdW5jYXJnc1tuYW1lXQotICAg
ICAgICBmdW5jdGlvbi5mdW5jYXJncyA9IG5ld2Z1bmNhcmdzCi0gICAgZWxzZToKLSAgICAgICAg
cmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKLQotCi1kZWYgZ2V0X2RpcmVjdF9wYXJhbV9maXh0dXJl
X2Z1bmMocmVxdWVzdCk6Ci0gICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KLQotCi1jbGFzcyBGdW5j
Rml4dHVyZUluZm86Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ25hbWVzLCBuYW1lc19jbG9z
dXJlLCBuYW1lMmZpeHR1cmVkZWZzKToKLSAgICAgICAgc2VsZi5hcmduYW1lcyA9IGFyZ25hbWVz
Ci0gICAgICAgIHNlbGYubmFtZXNfY2xvc3VyZSA9IG5hbWVzX2Nsb3N1cmUKLSAgICAgICAgc2Vs
Zi5uYW1lMmZpeHR1cmVkZWZzID0gbmFtZTJmaXh0dXJlZGVmcwotCi0KLWNsYXNzIEZpeHR1cmVS
ZXF1ZXN0KEZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgotICAgICIiIiBBIHJlcXVlc3QgZm9yIGEg
Zml4dHVyZSBmcm9tIGEgdGVzdCBvciBmaXh0dXJlIGZ1bmN0aW9uLgotCi0gICAgQSByZXF1ZXN0
IG9iamVjdCBnaXZlcyBhY2Nlc3MgdG8gdGhlIHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0Ci0gICAg
YW5kIGhhcyBhbiBvcHRpb25hbCBgYHBhcmFtYGAgYXR0cmlidXRlIGluIGNhc2UKLSAgICB0aGUg
Zml4dHVyZSBpcyBwYXJhbWV0cml6ZWQgaW5kaXJlY3RseS4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBweWZ1bmNpdGVtKToKLSAgICAgICAgc2VsZi5fcHlmdW5jaXRlbSA9IHB5
ZnVuY2l0ZW0KLSAgICAgICAgIzogZml4dHVyZSBmb3Igd2hpY2ggdGhpcyByZXF1ZXN0IGlzIGJl
aW5nIHBlcmZvcm1lZAotICAgICAgICBzZWxmLmZpeHR1cmVuYW1lID0gTm9uZQotICAgICAgICAj
OiBTY29wZSBzdHJpbmcsIG9uZSBvZiAiZnVuY3Rpb24iLCAiY2xhc3MiLCAibW9kdWxlIiwgInNl
c3Npb24iCi0gICAgICAgIHNlbGYuc2NvcGUgPSAiZnVuY3Rpb24iCi0gICAgICAgIHNlbGYuX2Zp
eHR1cmVfdmFsdWVzID0ge30gICMgYXJnbmFtZSAtPiBmaXh0dXJlIHZhbHVlCi0gICAgICAgIHNl
bGYuX2ZpeHR1cmVfZGVmcyA9IHt9ICAjIGFyZ25hbWUgLT4gRml4dHVyZURlZgotICAgICAgICBm
aXh0dXJlaW5mbyA9IHB5ZnVuY2l0ZW0uX2ZpeHR1cmVpbmZvCi0gICAgICAgIHNlbGYuX2FyZzJm
aXh0dXJlZGVmcyA9IGZpeHR1cmVpbmZvLm5hbWUyZml4dHVyZWRlZnMuY29weSgpCi0gICAgICAg
IHNlbGYuX2FyZzJpbmRleCA9IHt9Ci0gICAgICAgIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyID0gcHlm
dW5jaXRlbS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm
IGZpeHR1cmVuYW1lcyhzZWxmKToKLSAgICAgICAgIyBiYWNrd2FyZCBpbmNvbXBhdGlibGUgbm90
ZTogbm93IGEgcmVhZG9ubHkgcHJvcGVydHkKLSAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fcHlm
dW5jaXRlbS5fZml4dHVyZWluZm8ubmFtZXNfY2xvc3VyZSkKLQotICAgIEBwcm9wZXJ0eQotICAg
IGRlZiBub2RlKHNlbGYpOgotICAgICAgICAiIiIgdW5kZXJseWluZyBjb2xsZWN0aW9uIG5vZGUg
KGRlcGVuZHMgb24gY3VycmVudCByZXF1ZXN0IHNjb3BlKSIiIgotICAgICAgICByZXR1cm4gc2Vs
Zi5fZ2V0c2NvcGVpdGVtKHNlbGYuc2NvcGUpCi0KLSAgICBkZWYgX2dldG5leHRmaXh0dXJlZGVm
KHNlbGYsIGFyZ25hbWUpOgotICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuX2FyZzJmaXh0dXJl
ZGVmcy5nZXQoYXJnbmFtZSwgTm9uZSkKLSAgICAgICAgaWYgZml4dHVyZWRlZnMgaXMgTm9uZToK
LSAgICAgICAgICAgICMgd2UgYXJyaXZlIGhlcmUgYmVjYXVzZSBvZiBhICBhIGR5bmFtaWMgY2Fs
bCB0bwotICAgICAgICAgICAgIyBnZXRmaXh0dXJldmFsdWUoYXJnbmFtZSkgdXNhZ2Ugd2hpY2gg
d2FzIG5hdHVyYWxseQotICAgICAgICAgICAgIyBub3Qga25vd24gYXQgcGFyc2luZy9jb2xsZWN0
aW9uIHRpbWUKLSAgICAgICAgICAgIHBhcmVudGlkID0gc2VsZi5fcHlmdW5jaXRlbS5wYXJlbnQu
bm9kZWlkCi0gICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLmdl
dGZpeHR1cmVkZWZzKGFyZ25hbWUsIHBhcmVudGlkKQotICAgICAgICAgICAgc2VsZi5fYXJnMmZp
eHR1cmVkZWZzW2FyZ25hbWVdID0gZml4dHVyZWRlZnMKLSAgICAgICAgIyBmaXh0dXJlZGVmcyBs
aXN0IGlzIGltbXV0YWJsZSBzbyB3ZSBtYWludGFpbiBhIGRlY3JlYXNpbmcgaW5kZXgKLSAgICAg
ICAgaW5kZXggPSBzZWxmLl9hcmcyaW5kZXguZ2V0KGFyZ25hbWUsIDApIC0gMQotICAgICAgICBp
ZiBmaXh0dXJlZGVmcyBpcyBOb25lIG9yICgtaW5kZXggPiBsZW4oZml4dHVyZWRlZnMpKToKLSAg
ICAgICAgICAgIHJhaXNlIEZpeHR1cmVMb29rdXBFcnJvcihhcmduYW1lLCBzZWxmKQotICAgICAg
ICBzZWxmLl9hcmcyaW5kZXhbYXJnbmFtZV0gPSBpbmRleAotICAgICAgICByZXR1cm4gZml4dHVy
ZWRlZnNbaW5kZXhdCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgY29uZmlnKHNlbGYpOgotICAg
ICAgICAiIiIgdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJl
cXVlc3QuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5jb25maWcKLQotICAg
IEBzY29wZXByb3BlcnR5KCkKLSAgICBkZWYgZnVuY3Rpb24oc2VsZik6Ci0gICAgICAgICIiIiB0
ZXN0IGZ1bmN0aW9uIG9iamVjdCBpZiB0aGUgcmVxdWVzdCBoYXMgYSBwZXItZnVuY3Rpb24gc2Nv
cGUuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5vYmoKLQotICAgIEBzY29w
ZXByb3BlcnR5KCJjbGFzcyIpCi0gICAgZGVmIGNscyhzZWxmKToKLSAgICAgICAgIiIiIGNsYXNz
IChjYW4gYmUgTm9uZSkgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIi
Ci0gICAgICAgIGNsc2NvbCA9IHNlbGYuX3B5ZnVuY2l0ZW0uZ2V0cGFyZW50KF9weXRlc3QucHl0
aG9uLkNsYXNzKQotICAgICAgICBpZiBjbHNjb2w6Ci0gICAgICAgICAgICByZXR1cm4gY2xzY29s
Lm9iagotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGluc3RhbmNlKHNlbGYpOgotICAgICAgICAi
IiIgaW5zdGFuY2UgKGNhbiBiZSBOb25lKSBvbiB3aGljaCB0ZXN0IGZ1bmN0aW9uIHdhcyBjb2xs
ZWN0ZWQuICIiIgotICAgICAgICAjIHVuaXR0ZXN0IHN1cHBvcnQgaGFjaywgc2VlIF9weXRlc3Qu
dW5pdHRlc3QuVGVzdENhc2VGdW5jdGlvbgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fcHlmdW5jaXRlbS5fdGVzdGNhc2UKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgotICAgICAgICAgICAgZnVuY3Rpb24gPSBnZXRhdHRyKHNlbGYsICJmdW5jdGlvbiIsIE5v
bmUpCi0gICAgICAgICAgICBpZiBmdW5jdGlvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gcHkuYnVpbHRpbi5fZ2V0aW1zZWxmKGZ1bmN0aW9uKQotCi0gICAgQHNjb3BlcHJv
cGVydHkoKQotICAgIGRlZiBtb2R1bGUoc2VsZik6Ci0gICAgICAgICIiIiBweXRob24gbW9kdWxl
IG9iamVjdCB3aGVyZSB0aGUgdGVzdCBmdW5jdGlvbiB3YXMgY29sbGVjdGVkLiAiIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uZ2V0cGFyZW50KF9weXRlc3QucHl0aG9uLk1vZHVs
ZSkub2JqCi0KLSAgICBAc2NvcGVwcm9wZXJ0eSgpCi0gICAgZGVmIGZzcGF0aChzZWxmKToKLSAg
ICAgICAgIiIiIHRoZSBmaWxlIHN5c3RlbSBwYXRoIG9mIHRoZSB0ZXN0IG1vZHVsZSB3aGljaCBj
b2xsZWN0ZWQgdGhpcyB0ZXN0LiAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0u
ZnNwYXRoCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYga2V5d29yZHMoc2VsZik6Ci0gICAgICAg
ICIiIiBrZXl3b3Jkcy9tYXJrZXJzIGRpY3Rpb25hcnkgZm9yIHRoZSB1bmRlcmx5aW5nIG5vZGUu
ICIiIgotICAgICAgICByZXR1cm4gc2VsZi5ub2RlLmtleXdvcmRzCi0KLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgc2Vzc2lvbihzZWxmKToKLSAgICAgICAgIiIiIHB5dGVzdCBzZXNzaW9uIG9iamVj
dC4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24KLQotICAgIGRl
ZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyKToKLSAgICAgICAgIiIiIGFkZCBmaW5hbGl6
ZXIvdGVhcmRvd24gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGFmdGVyIHRoZQotICAgICAgICBsYXN0
IHRlc3Qgd2l0aGluIHRoZSByZXF1ZXN0aW5nIHRlc3QgY29udGV4dCBmaW5pc2hlZAotICAgICAg
ICBleGVjdXRpb24uICIiIgotICAgICAgICAjIFhYWCB1c3VhbGx5IHRoaXMgbWV0aG9kIGlzIHNo
YWRvd2VkIGJ5IGZpeHR1cmVkZWYgc3BlY2lmaWMgb25lcwotICAgICAgICBzZWxmLl9hZGRmaW5h
bGl6ZXIoZmluYWxpemVyLCBzY29wZT1zZWxmLnNjb3BlKQotCi0gICAgZGVmIF9hZGRmaW5hbGl6
ZXIoc2VsZiwgZmluYWxpemVyLCBzY29wZSk6Ci0gICAgICAgIGNvbGl0ZW0gPSBzZWxmLl9nZXRz
Y29wZWl0ZW0oc2NvcGUpCi0gICAgICAgIHNlbGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5fc2V0dXBz
dGF0ZS5hZGRmaW5hbGl6ZXIoCi0gICAgICAgICAgICBmaW5hbGl6ZXI9ZmluYWxpemVyLCBjb2xp
dGVtPWNvbGl0ZW0pCi0KLSAgICBkZWYgYXBwbHltYXJrZXIoc2VsZiwgbWFya2VyKToKLSAgICAg
ICAgIiIiIEFwcGx5IGEgbWFya2VyIHRvIGEgc2luZ2xlIHRlc3QgZnVuY3Rpb24gaW52b2NhdGlv
bi4KLSAgICAgICAgVGhpcyBtZXRob2QgaXMgdXNlZnVsIGlmIHlvdSBkb24ndCB3YW50IHRvIGhh
dmUgYSBrZXl3b3JkL21hcmtlcgotICAgICAgICBvbiBhbGwgZnVuY3Rpb24gaW52b2NhdGlvbnMu
Ci0KLSAgICAgICAgOmFyZyBtYXJrZXI6IGEgOnB5OmNsYXNzOmBfcHl0ZXN0Lm1hcmsuTWFya0Rl
Y29yYXRvcmAgb2JqZWN0Ci0gICAgICAgICAgICBjcmVhdGVkIGJ5IGEgY2FsbCB0byBgYHB5dGVz
dC5tYXJrLk5BTUUoLi4uKWBgLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5ub2RlLmtleXdvcmRzW21hcmtlci5tYXJrbmFtZV0gPSBtYXJrZXIKLSAgICAgICAg
ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtYXJr
ZXIpCi0KLSAgICBkZWYgcmFpc2VlcnJvcihzZWxmLCBtc2cpOgotICAgICAgICAiIiIgcmFpc2Ug
YSBGaXh0dXJlTG9va3VwRXJyb3Igd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS4gIiIiCi0gICAgICAg
IHJhaXNlIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLkZpeHR1cmVMb29rdXBFcnJvcihOb25lLCBzZWxm
LCBtc2cpCi0KLSAgICBkZWYgX2ZpbGxmaXh0dXJlcyhzZWxmKToKLSAgICAgICAgaXRlbSA9IHNl
bGYuX3B5ZnVuY2l0ZW0KLSAgICAgICAgZml4dHVyZW5hbWVzID0gZ2V0YXR0cihpdGVtLCAiZml4
dHVyZW5hbWVzIiwgc2VsZi5maXh0dXJlbmFtZXMpCi0gICAgICAgIGZvciBhcmduYW1lIGluIGZp
eHR1cmVuYW1lczoKLSAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGl0ZW0uZnVuY2FyZ3M6
Ci0gICAgICAgICAgICAgICAgaXRlbS5mdW5jYXJnc1thcmduYW1lXSA9IHNlbGYuZ2V0Zml4dHVy
ZXZhbHVlKGFyZ25hbWUpCi0KLSAgICBkZWYgY2FjaGVkX3NldHVwKHNlbGYsIHNldHVwLCB0ZWFy
ZG93bj1Ob25lLCBzY29wZT0ibW9kdWxlIiwgZXh0cmFrZXk9Tm9uZSk6Ci0gICAgICAgICIiIiAo
ZGVwcmVjYXRlZCkgUmV0dXJuIGEgdGVzdGluZyByZXNvdXJjZSBtYW5hZ2VkIGJ5IGBgc2V0dXBg
YCAmCi0gICAgICAgIGBgdGVhcmRvd25gYCBjYWxscy4gIGBgc2NvcGVgYCBhbmQgYGBleHRyYWtl
eWBgIGRldGVybWluZSB3aGVuIHRoZQotICAgICAgICBgYHRlYXJkb3duYGAgZnVuY3Rpb24gd2ls
bCBiZSBjYWxsZWQgc28gdGhhdCBzdWJzZXF1ZW50IGNhbGxzIHRvCi0gICAgICAgIGBgc2V0dXBg
YCB3b3VsZCByZWNyZWF0ZSB0aGUgcmVzb3VyY2UuICBXaXRoIHB5dGVzdC0yLjMgeW91IG9mdGVu
Ci0gICAgICAgIGRvIG5vdCBuZWVkIGBgY2FjaGVkX3NldHVwKClgYCBhcyB5b3UgY2FuIGRpcmVj
dGx5IGRlY2xhcmUgYSBzY29wZQotICAgICAgICBvbiBhIGZpeHR1cmUgZnVuY3Rpb24gYW5kIHJl
Z2lzdGVyIGEgZmluYWxpemVyIHRocm91Z2gKLSAgICAgICAgYGByZXF1ZXN0LmFkZGZpbmFsaXpl
cigpYGAuCi0KLSAgICAgICAgOmFyZyB0ZWFyZG93bjogZnVuY3Rpb24gcmVjZWl2aW5nIGEgcHJl
dmlvdXNseSBzZXR1cCByZXNvdXJjZS4KLSAgICAgICAgOmFyZyBzZXR1cDogYSBuby1hcmd1bWVu
dCBmdW5jdGlvbiBjcmVhdGluZyBhIHJlc291cmNlLgotICAgICAgICA6YXJnIHNjb3BlOiBhIHN0
cmluZyB2YWx1ZSBvdXQgb2YgYGBmdW5jdGlvbmBgLCBgYGNsYXNzYGAsIGBgbW9kdWxlYGAKLSAg
ICAgICAgICAgIG9yIGBgc2Vzc2lvbmBgIGluZGljYXRpbmcgdGhlIGNhY2hpbmcgbGlmZWN5Y2xl
IG9mIHRoZSByZXNvdXJjZS4KLSAgICAgICAgOmFyZyBleHRyYWtleTogYWRkZWQgdG8gaW50ZXJu
YWwgY2FjaGluZyBrZXkgb2YgKGZ1bmNhcmduYW1lLCBzY29wZSkuCi0gICAgICAgICIiIgotICAg
ICAgICBpZiBub3QgaGFzYXR0cihzZWxmLmNvbmZpZywgJ19zZXR1cGNhY2hlJyk6Ci0gICAgICAg
ICAgICBzZWxmLmNvbmZpZy5fc2V0dXBjYWNoZSA9IHt9ICAjIFhYWCB3ZWFrcmVmPwotICAgICAg
ICBjYWNoZWtleSA9IChzZWxmLmZpeHR1cmVuYW1lLCBzZWxmLl9nZXRzY29wZWl0ZW0oc2NvcGUp
LCBleHRyYWtleSkKLSAgICAgICAgY2FjaGUgPSBzZWxmLmNvbmZpZy5fc2V0dXBjYWNoZQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICB2YWwgPSBjYWNoZVtjYWNoZWtleV0KLSAgICAgICAgZXhj
ZXB0IEtleUVycm9yOgotICAgICAgICAgICAgc2VsZi5fY2hlY2tfc2NvcGUoc2VsZi5maXh0dXJl
bmFtZSwgc2VsZi5zY29wZSwgc2NvcGUpCi0gICAgICAgICAgICB2YWwgPSBzZXR1cCgpCi0gICAg
ICAgICAgICBjYWNoZVtjYWNoZWtleV0gPSB2YWwKLSAgICAgICAgICAgIGlmIHRlYXJkb3duIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGRlZiBmaW5hbGl6ZXIoKToKLSAgICAgICAgICAg
ICAgICAgICAgZGVsIGNhY2hlW2NhY2hla2V5XQotICAgICAgICAgICAgICAgICAgICB0ZWFyZG93
bih2YWwpCi0gICAgICAgICAgICAgICAgc2VsZi5fYWRkZmluYWxpemVyKGZpbmFsaXplciwgc2Nv
cGU9c2NvcGUpCi0gICAgICAgIHJldHVybiB2YWwKLQotICAgIGRlZiBnZXRmaXh0dXJldmFsdWUo
c2VsZiwgYXJnbmFtZSk6Ci0gICAgICAgICIiIiBEeW5hbWljYWxseSBydW4gYSBuYW1lZCBmaXh0
dXJlIGZ1bmN0aW9uLgotCi0gICAgICAgIERlY2xhcmluZyBmaXh0dXJlcyB2aWEgZnVuY3Rpb24g
YXJndW1lbnQgaXMgcmVjb21tZW5kZWQgd2hlcmUgcG9zc2libGUuCi0gICAgICAgIEJ1dCBpZiB5
b3UgY2FuIG9ubHkgZGVjaWRlIHdoZXRoZXIgdG8gdXNlIGFub3RoZXIgZml4dHVyZSBhdCB0ZXN0
Ci0gICAgICAgIHNldHVwIHRpbWUsIHlvdSBtYXkgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcmV0cmll
dmUgaXQgaW5zaWRlIGEgZml4dHVyZQotICAgICAgICBvciB0ZXN0IGZ1bmN0aW9uIGJvZHkuCi0g
ICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFy
Z25hbWUpLmNhY2hlZF9yZXN1bHRbMF0KLQotICAgIGRlZiBnZXRmdW5jYXJndmFsdWUoc2VsZiwg
YXJnbmFtZSk6Ci0gICAgICAgICIiIiBEZXByZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlLiAi
IiIKLSAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCi0gICAgICAgIHdhcm5p
bmdzLndhcm4oCi0gICAgICAgICAgICBkZXByZWNhdGVkLkdFVEZVTkNBUkdWQUxVRSwKLSAgICAg
ICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgIHN0YWNrbGV2ZWw9MikKLSAg
ICAgICAgcmV0dXJuIHNlbGYuZ2V0Zml4dHVyZXZhbHVlKGFyZ25hbWUpCi0KLSAgICBkZWYgX2dl
dF9hY3RpdmVfZml4dHVyZWRlZihzZWxmLCBhcmduYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZpeHR1cmVfZGVmc1thcmduYW1lXQotICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWRlZiA9
IHNlbGYuX2dldG5leHRmaXh0dXJlZGVmKGFyZ25hbWUpCi0gICAgICAgICAgICBleGNlcHQgRml4
dHVyZUxvb2t1cEVycm9yOgotICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUgPT0gInJlcXVlc3Qi
OgotICAgICAgICAgICAgICAgICAgICBjbGFzcyBQc2V1ZG9GaXh0dXJlRGVmOgotICAgICAgICAg
ICAgICAgICAgICAgICAgY2FjaGVkX3Jlc3VsdCA9IChzZWxmLCBbMF0sIE5vbmUpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzY29wZSA9ICJmdW5jdGlvbiIKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFBzZXVkb0ZpeHR1cmVEZWYKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAj
IHJlbW92ZSBpbmRlbnQgdG8gcHJldmVudCB0aGUgcHl0aG9uMyBleGNlcHRpb24KLSAgICAgICAg
IyBmcm9tIGxlYWtpbmcgaW50byB0aGUgY2FsbAotICAgICAgICByZXN1bHQgPSBzZWxmLl9nZXRm
aXh0dXJldmFsdWUoZml4dHVyZWRlZikKLSAgICAgICAgc2VsZi5fZml4dHVyZV92YWx1ZXNbYXJn
bmFtZV0gPSByZXN1bHQKLSAgICAgICAgc2VsZi5fZml4dHVyZV9kZWZzW2FyZ25hbWVdID0gZml4
dHVyZWRlZgotICAgICAgICByZXR1cm4gZml4dHVyZWRlZgotCi0gICAgZGVmIF9nZXRfZml4dHVy
ZXN0YWNrKHNlbGYpOgotICAgICAgICBjdXJyZW50ID0gc2VsZgotICAgICAgICB2YWx1ZXMgPSBb
XQotICAgICAgICB3aGlsZSAxOgotICAgICAgICAgICAgZml4dHVyZWRlZiA9IGdldGF0dHIoY3Vy
cmVudCwgIl9maXh0dXJlZGVmIiwgTm9uZSkKLSAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICB2YWx1ZXMucmV2ZXJzZSgpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHZhbHVlcwotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChmaXh0dXJlZGVmKQotICAg
ICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuX3BhcmVudF9yZXF1ZXN0Ci0KLSAgICBkZWYgX2dl
dGZpeHR1cmV2YWx1ZShzZWxmLCBmaXh0dXJlZGVmKToKLSAgICAgICAgIyBwcmVwYXJlIGEgc3Vi
cmVxdWVzdCBvYmplY3QgYmVmb3JlIGNhbGxpbmcgZml4dHVyZSBmdW5jdGlvbgotICAgICAgICAj
IChsYXR0ZXIgbWFuYWdlZCBieSBmaXh0dXJlZGVmKQotICAgICAgICBhcmduYW1lID0gZml4dHVy
ZWRlZi5hcmduYW1lCi0gICAgICAgIGZ1bmNpdGVtID0gc2VsZi5fcHlmdW5jaXRlbQotICAgICAg
ICBzY29wZSA9IGZpeHR1cmVkZWYuc2NvcGUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcGFy
YW0gPSBmdW5jaXRlbS5jYWxsc3BlYy5nZXRwYXJhbShhcmduYW1lKQotICAgICAgICBleGNlcHQg
KEF0dHJpYnV0ZUVycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIHBhcmFtID0gTk9UU0VU
Ci0gICAgICAgICAgICBwYXJhbV9pbmRleCA9IDAKLSAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYu
cGFyYW1zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGZyYW1lID0gaW5zcGVjdC5zdGFj
aygpWzNdCi0gICAgICAgICAgICAgICAgZnJhbWVpbmZvID0gaW5zcGVjdC5nZXRmcmFtZWluZm8o
ZnJhbWVbMF0pCi0gICAgICAgICAgICAgICAgc291cmNlX3BhdGggPSBmcmFtZWluZm8uZmlsZW5h
bWUKLSAgICAgICAgICAgICAgICBzb3VyY2VfbGluZW5vID0gZnJhbWVpbmZvLmxpbmVubwotICAg
ICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gcHkucGF0aC5sb2NhbChzb3VyY2VfcGF0aCkKLSAg
ICAgICAgICAgICAgICBpZiBzb3VyY2VfcGF0aC5yZWx0byhmdW5jaXRlbS5jb25maWcucm9vdGRp
cik6Ci0gICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gc291cmNlX3BhdGgucmVsdG8o
ZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpCi0gICAgICAgICAgICAgICAgbXNnID0gKAotICAgICAg
ICAgICAgICAgICAgICAiVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0ZXIgZGVm
aW5lZCBmb3IgdGhlICIKLSAgICAgICAgICAgICAgICAgICAgImN1cnJlbnQgdGVzdC5cblxuUmVx
dWVzdGVkIGZpeHR1cmUgJ3swfScgZGVmaW5lZCBpbjpcbnsxfSIKLSAgICAgICAgICAgICAgICAg
ICAgIlxuXG5SZXF1ZXN0ZWQgaGVyZTpcbnsyfTp7M30iLmZvcm1hdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZpeHR1cmVkZWYuYXJnbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdl
dGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBzb3VyY2VfbGluZW5vLAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgIGZhaWwobXNnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
IyBpbmRpY2VzIG1pZ2h0IG5vdCBiZSBzZXQgaWYgb2xkLXN0eWxlIG1ldGFmdW5jLmFkZGNhbGwo
KSB3YXMgdXNlZAotICAgICAgICAgICAgcGFyYW1faW5kZXggPSBmdW5jaXRlbS5jYWxsc3BlYy5p
bmRpY2VzLmdldChhcmduYW1lLCAwKQotICAgICAgICAgICAgIyBpZiBhIHBhcmFtZXRyaXplIGlu
dm9jYXRpb24gc2V0IGEgc2NvcGUgaXQgd2lsbCBvdmVycmlkZQotICAgICAgICAgICAgIyB0aGUg
c3RhdGljIHNjb3BlIGRlZmluZWQgd2l0aCB0aGUgZml4dHVyZSBmdW5jdGlvbgotICAgICAgICAg
ICAgcGFyYW1zY29wZW51bSA9IGZ1bmNpdGVtLmNhbGxzcGVjLl9hcmcyc2NvcGVudW0uZ2V0KGFy
Z25hbWUpCi0gICAgICAgICAgICBpZiBwYXJhbXNjb3BlbnVtIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIHNjb3BlID0gc2NvcGVzW3BhcmFtc2NvcGVudW1dCi0KLSAgICAgICAgc3VicmVx
dWVzdCA9IFN1YlJlcXVlc3Qoc2VsZiwgc2NvcGUsIHBhcmFtLCBwYXJhbV9pbmRleCwgZml4dHVy
ZWRlZikKLQotICAgICAgICAjIGNoZWNrIGlmIGEgaGlnaGVyLWxldmVsIHNjb3BlZCBmaXh0dXJl
IGFjY2Vzc2VzIGEgbG93ZXIgbGV2ZWwgb25lCi0gICAgICAgIHN1YnJlcXVlc3QuX2NoZWNrX3Nj
b3BlKGFyZ25hbWUsIHNlbGYuc2NvcGUsIHNjb3BlKQotCi0gICAgICAgICMgY2xlYXIgc3lzLmV4
Y19pbmZvIGJlZm9yZSBpbnZva2luZyB0aGUgZml4dHVyZSAocHl0aG9uIGJ1Zz8pCi0gICAgICAg
ICMgaWYgaXRzIG5vdCBleHBsaWNpdGx5IGNsZWFyZWQgaXQgd2lsbCBsZWFrIGludG8gdGhlIGNh
bGwKLSAgICAgICAgZXhjX2NsZWFyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBjYWxs
IHRoZSBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICB2YWwgPSBmaXh0dXJlZGVmLmV4ZWN1
dGUocmVxdWVzdD1zdWJyZXF1ZXN0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgIyBp
ZiBmaXh0dXJlIGZ1bmN0aW9uIGZhaWxlZCBpdCBtaWdodCBoYXZlIHJlZ2lzdGVyZWQgZmluYWxp
emVycwotICAgICAgICAgICAgc2VsZi5zZXNzaW9uLl9zZXR1cHN0YXRlLmFkZGZpbmFsaXplcihm
dW5jdG9vbHMucGFydGlhbChmaXh0dXJlZGVmLmZpbmlzaCwgcmVxdWVzdD1zdWJyZXF1ZXN0KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicmVx
dWVzdC5ub2RlKQotICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBkZWYgX2NoZWNrX3Njb3BlKHNl
bGYsIGFyZ25hbWUsIGludm9raW5nX3Njb3BlLCByZXF1ZXN0ZWRfc2NvcGUpOgotICAgICAgICBp
ZiBhcmduYW1lID09ICJyZXF1ZXN0IjoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBz
Y29wZW1pc21hdGNoKGludm9raW5nX3Njb3BlLCByZXF1ZXN0ZWRfc2NvcGUpOgotICAgICAgICAg
ICAgIyB0cnkgdG8gcmVwb3J0IHNvbWV0aGluZyBoZWxwZnVsCi0gICAgICAgICAgICBsaW5lcyA9
IHNlbGYuX2ZhY3Rvcnl0cmFjZWJhY2soKQotICAgICAgICAgICAgZmFpbCgiU2NvcGVNaXNtYXRj
aDogWW91IHRyaWVkIHRvIGFjY2VzcyB0aGUgJXIgc2NvcGVkICIKLSAgICAgICAgICAgICAgICAg
ImZpeHR1cmUgJXIgd2l0aCBhICVyIHNjb3BlZCByZXF1ZXN0IG9iamVjdCwgIgotICAgICAgICAg
ICAgICAgICAiaW52b2x2ZWQgZmFjdG9yaWVzXG4lcyIgJSAoCi0gICAgICAgICAgICAgICAgICAg
ICAocmVxdWVzdGVkX3Njb3BlLCBhcmduYW1lLCBpbnZva2luZ19zY29wZSwgIlxuIi5qb2luKGxp
bmVzKSkpLAotICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNlKQotCi0gICAgZGVmIF9mYWN0
b3J5dHJhY2ViYWNrKHNlbGYpOgotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGZvciBmaXh0
dXJlZGVmIGluIHNlbGYuX2dldF9maXh0dXJlc3RhY2soKToKLSAgICAgICAgICAgIGZhY3Rvcnkg
PSBmaXh0dXJlZGVmLmZ1bmMKLSAgICAgICAgICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhm
YWN0b3J5KQotICAgICAgICAgICAgcCA9IHNlbGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbi5mc3BhdGgu
YmVzdHJlbHBhdGgoZnMpCi0gICAgICAgICAgICBhcmdzID0gX2Zvcm1hdF9hcmdzKGZhY3Rvcnkp
Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiVzOiVkOiAgZGVmICVzJXMiICUgKAotICAgICAg
ICAgICAgICAgIHAsIGxpbmVubywgZmFjdG9yeS5fX25hbWVfXywgYXJncykpCi0gICAgICAgIHJl
dHVybiBsaW5lcwotCi0gICAgZGVmIF9nZXRzY29wZWl0ZW0oc2VsZiwgc2NvcGUpOgotICAgICAg
ICBpZiBzY29wZSA9PSAiZnVuY3Rpb24iOgotICAgICAgICAgICAgIyB0aGlzIG1pZ2h0IGFsc28g
YmUgYSBub24tZnVuY3Rpb24gSXRlbSBkZXNwaXRlIGl0cyBhdHRyaWJ1dGUgbmFtZQotICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0KLSAgICAgICAgbm9kZSA9IGdldF9zY29wZV9u
b2RlKHNlbGYuX3B5ZnVuY2l0ZW0sIHNjb3BlKQotICAgICAgICBpZiBub2RlIGlzIE5vbmUgYW5k
IHNjb3BlID09ICJjbGFzcyI6Ci0gICAgICAgICAgICAjIGZhbGxiYWNrIHRvIGZ1bmN0aW9uIGl0
ZW0gaXRzZWxmCi0gICAgICAgICAgICBub2RlID0gc2VsZi5fcHlmdW5jaXRlbQotICAgICAgICBh
c3NlcnQgbm9kZSwgJ0NvdWxkIG5vdCBvYnRhaW4gYSBub2RlIGZvciBzY29wZSAie30iIGZvciBm
dW5jdGlvbiB7IXJ9Jy5mb3JtYXQoc2NvcGUsIHNlbGYuX3B5ZnVuY2l0ZW0pCi0gICAgICAgIHJl
dHVybiBub2RlCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPEZp
eHR1cmVSZXF1ZXN0IGZvciAlcj4iICUgKHNlbGYubm9kZSkKLQotCi1jbGFzcyBTdWJSZXF1ZXN0
KEZpeHR1cmVSZXF1ZXN0KToKLSAgICAiIiIgYSBzdWIgcmVxdWVzdCBmb3IgaGFuZGxpbmcgZ2V0
dGluZyBhIGZpeHR1cmUgZnJvbSBhCi0gICAgdGVzdCBmdW5jdGlvbi9maXh0dXJlLiAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzY29wZSwgcGFyYW0sIHBhcmFtX2luZGV4
LCBmaXh0dXJlZGVmKToKLSAgICAgICAgc2VsZi5fcGFyZW50X3JlcXVlc3QgPSByZXF1ZXN0Ci0g
ICAgICAgIHNlbGYuZml4dHVyZW5hbWUgPSBmaXh0dXJlZGVmLmFyZ25hbWUKLSAgICAgICAgaWYg
cGFyYW0gaXMgbm90IE5PVFNFVDoKLSAgICAgICAgICAgIHNlbGYucGFyYW0gPSBwYXJhbQotICAg
ICAgICBzZWxmLnBhcmFtX2luZGV4ID0gcGFyYW1faW5kZXgKLSAgICAgICAgc2VsZi5zY29wZSA9
IHNjb3BlCi0gICAgICAgIHNlbGYuX2ZpeHR1cmVkZWYgPSBmaXh0dXJlZGVmCi0gICAgICAgIHNl
bGYuX3B5ZnVuY2l0ZW0gPSByZXF1ZXN0Ll9weWZ1bmNpdGVtCi0gICAgICAgIHNlbGYuX2ZpeHR1
cmVfdmFsdWVzID0gcmVxdWVzdC5fZml4dHVyZV92YWx1ZXMKLSAgICAgICAgc2VsZi5fZml4dHVy
ZV9kZWZzID0gcmVxdWVzdC5fZml4dHVyZV9kZWZzCi0gICAgICAgIHNlbGYuX2FyZzJmaXh0dXJl
ZGVmcyA9IHJlcXVlc3QuX2FyZzJmaXh0dXJlZGVmcwotICAgICAgICBzZWxmLl9hcmcyaW5kZXgg
PSByZXF1ZXN0Ll9hcmcyaW5kZXgKLSAgICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSByZXF1
ZXN0Ll9maXh0dXJlbWFuYWdlcgotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gIjxTdWJSZXF1ZXN0ICVyIGZvciAlcj4iICUgKHNlbGYuZml4dHVyZW5hbWUsIHNlbGYu
X3B5ZnVuY2l0ZW0pCi0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6Ci0g
ICAgICAgIHNlbGYuX2ZpeHR1cmVkZWYuYWRkZmluYWxpemVyKGZpbmFsaXplcikKLQotCi1jbGFz
cyBTY29wZU1pc21hdGNoRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiIgQSBmaXh0dXJlIGZ1bmN0
aW9uIHRyaWVzIHRvIHVzZSBhIGRpZmZlcmVudCBmaXh0dXJlIGZ1bmN0aW9uIHdoaWNoCi0gICAg
d2hpY2ggaGFzIGEgbG93ZXIgc2NvcGUgKGUuZy4gYSBTZXNzaW9uIG9uZSBjYWxscyBhIGZ1bmN0
aW9uIG9uZSkKLSAgICAiIiIKLQotCi1zY29wZXMgPSAic2Vzc2lvbiBtb2R1bGUgY2xhc3MgZnVu
Y3Rpb24iLnNwbGl0KCkKLXNjb3BlbnVtX2Z1bmN0aW9uID0gc2NvcGVzLmluZGV4KCJmdW5jdGlv
biIpCi0KLQotZGVmIHNjb3BlbWlzbWF0Y2goY3VycmVudHNjb3BlLCBuZXdzY29wZSk6Ci0gICAg
cmV0dXJuIHNjb3Blcy5pbmRleChuZXdzY29wZSkgPiBzY29wZXMuaW5kZXgoY3VycmVudHNjb3Bl
KQotCi0KLWRlZiBzY29wZTJpbmRleChzY29wZSwgZGVzY3IsIHdoZXJlPU5vbmUpOgotICAgICIi
Ikxvb2sgdXAgdGhlIGluZGV4IG9mIGBgc2NvcGVgYCBhbmQgcmFpc2UgYSBkZXNjcmlwdGl2ZSB2
YWx1ZSBlcnJvcgotICAgIGlmIG5vdCBkZWZpbmVkLgotICAgICIiIgotICAgIHRyeToKLSAgICAg
ICAgcmV0dXJuIHNjb3Blcy5pbmRleChzY29wZSkKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICJ7MH0gezF9aGFzIGFuIHVuc3Vw
cG9ydGVkIHNjb3BlIHZhbHVlICd7Mn0nIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgZGVzY3Is
ICdmcm9tIHswfSAnLmZvcm1hdCh3aGVyZSkgaWYgd2hlcmUgZWxzZSAnJywKLSAgICAgICAgICAg
ICAgICBzY29wZSkKLSAgICAgICAgKQotCi0KLWNsYXNzIEZpeHR1cmVMb29rdXBFcnJvcihMb29r
dXBFcnJvcik6Ci0gICAgIiIiIGNvdWxkIG5vdCByZXR1cm4gYSByZXF1ZXN0ZWQgRml4dHVyZSAo
bWlzc2luZyBvciBpbnZhbGlkKS4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXJnbmFt
ZSwgcmVxdWVzdCwgbXNnPU5vbmUpOgotICAgICAgICBzZWxmLmFyZ25hbWUgPSBhcmduYW1lCi0g
ICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5maXh0dXJlc3RhY2sg
PSByZXF1ZXN0Ll9nZXRfZml4dHVyZXN0YWNrKCkKLSAgICAgICAgc2VsZi5tc2cgPSBtc2cKLQot
ICAgIGRlZiBmb3JtYXRyZXByKHNlbGYpOgotICAgICAgICB0YmxpbmVzID0gW10KLSAgICAgICAg
YWRkbGluZSA9IHRibGluZXMuYXBwZW5kCi0gICAgICAgIHN0YWNrID0gW3NlbGYucmVxdWVzdC5f
cHlmdW5jaXRlbS5vYmpdCi0gICAgICAgIHN0YWNrLmV4dGVuZChtYXAobGFtYmRhIHg6IHguZnVu
Yywgc2VsZi5maXh0dXJlc3RhY2spKQotICAgICAgICBtc2cgPSBzZWxmLm1zZwotICAgICAgICBp
ZiBtc2cgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAjIHRoZSBsYXN0IGZpeHR1cmUgcmFpc2Ug
YW4gZXJyb3IsIGxldCdzIHByZXNlbnQKLSAgICAgICAgICAgICMgaXQgYXQgdGhlIHJlcXVlc3Rp
bmcgc2lkZQotICAgICAgICAgICAgc3RhY2sgPSBzdGFja1s6LTFdCi0gICAgICAgIGZvciBmdW5j
dGlvbiBpbiBzdGFjazoKLSAgICAgICAgICAgIGZzcGF0aCwgbGluZW5vID0gZ2V0ZnNsaW5lbm8o
ZnVuY3Rpb24pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbGluZXMsIF8gPSBp
bnNwZWN0LmdldHNvdXJjZWxpbmVzKGdldF9yZWFsX2Z1bmMoZnVuY3Rpb24pKQotICAgICAgICAg
ICAgZXhjZXB0IChJT0Vycm9yLCBJbmRleEVycm9yLCBUeXBlRXJyb3IpOgotICAgICAgICAgICAg
ICAgIGVycm9yX21zZyA9ICJmaWxlICVzLCBsaW5lICVzOiBzb3VyY2UgY29kZSBub3QgYXZhaWxh
YmxlIgotICAgICAgICAgICAgICAgIGFkZGxpbmUoZXJyb3JfbXNnICUgKGZzcGF0aCwgbGluZW5v
ICsgMSkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGFkZGxpbmUoImZpbGUg
JXMsIGxpbmUgJXMiICUgKGZzcGF0aCwgbGluZW5vICsgMSkpCi0gICAgICAgICAgICAgICAgZm9y
IGksIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVzKToKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9
IGxpbmUucnN0cmlwKCkKLSAgICAgICAgICAgICAgICAgICAgYWRkbGluZSgiICAiICsgbGluZSkK
LSAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5sc3RyaXAoKS5zdGFydHN3aXRoKCdkZWYnKToK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgbXNnIGlzIE5vbmU6
Ci0gICAgICAgICAgICBmbSA9IHNlbGYucmVxdWVzdC5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAg
ICAgIGF2YWlsYWJsZSA9IFtdCi0gICAgICAgICAgICBwYXJlbnRpZCA9IHNlbGYucmVxdWVzdC5f
cHlmdW5jaXRlbS5wYXJlbnQubm9kZWlkCi0gICAgICAgICAgICBmb3IgbmFtZSwgZml4dHVyZWRl
ZnMgaW4gZm0uX2FyZzJmaXh0dXJlZGVmcy5pdGVtcygpOgotICAgICAgICAgICAgICAgIGZhY2xp
c3QgPSBsaXN0KGZtLl9tYXRjaGZhY3RvcmllcyhmaXh0dXJlZGVmcywgcGFyZW50aWQpKQotICAg
ICAgICAgICAgICAgIGlmIGZhY2xpc3QgYW5kIG5hbWUgbm90IGluIGF2YWlsYWJsZToKLSAgICAg
ICAgICAgICAgICAgICAgYXZhaWxhYmxlLmFwcGVuZChuYW1lKQotICAgICAgICAgICAgbXNnID0g
ImZpeHR1cmUgJXIgbm90IGZvdW5kIiAlIChzZWxmLmFyZ25hbWUsKQotICAgICAgICAgICAgbXNn
ICs9ICJcbiBhdmFpbGFibGUgZml4dHVyZXM6ICVzIiAlICgiLCAiLmpvaW4oc29ydGVkKGF2YWls
YWJsZSkpLCkKLSAgICAgICAgICAgIG1zZyArPSAiXG4gdXNlICdweXRlc3QgLS1maXh0dXJlcyBb
dGVzdHBhdGhdJyBmb3IgaGVscCBvbiB0aGVtLiIKLQotICAgICAgICByZXR1cm4gRml4dHVyZUxv
b2t1cEVycm9yUmVwcihmc3BhdGgsIGxpbmVubywgdGJsaW5lcywgbXNnLCBzZWxmLmFyZ25hbWUp
Ci0KLQotY2xhc3MgRml4dHVyZUxvb2t1cEVycm9yUmVwcihUZXJtaW5hbFJlcHIpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgZmlyc3RsaW5lbm8sIHRibGluZXMsIGVycm9yc3Ry
aW5nLCBhcmduYW1lKToKLSAgICAgICAgc2VsZi50YmxpbmVzID0gdGJsaW5lcwotICAgICAgICBz
ZWxmLmVycm9yc3RyaW5nID0gZXJyb3JzdHJpbmcKLSAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZp
bGVuYW1lCi0gICAgICAgIHNlbGYuZmlyc3RsaW5lbm8gPSBmaXJzdGxpbmVubwotICAgICAgICBz
ZWxmLmFyZ25hbWUgPSBhcmduYW1lCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0g
ICAgICAgICMgdHcubGluZSgiRml4dHVyZUxvb2t1cEVycm9yOiAlcyIgJShzZWxmLmFyZ25hbWUp
LCByZWQ9VHJ1ZSkKLSAgICAgICAgZm9yIHRibGluZSBpbiBzZWxmLnRibGluZXM6Ci0gICAgICAg
ICAgICB0dy5saW5lKHRibGluZS5yc3RyaXAoKSkKLSAgICAgICAgbGluZXMgPSBzZWxmLmVycm9y
c3RyaW5nLnNwbGl0KCJcbiIpCi0gICAgICAgIGlmIGxpbmVzOgotICAgICAgICAgICAgdHcubGlu
ZSgnezB9ICAgICAgIHsxfScuZm9ybWF0KEZvcm1hdHRlZEV4Y2luZm8uZmFpbF9tYXJrZXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNbMF0uc3RyaXAo
KSksIHJlZD1UcnVlKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gbGluZXNbMTpdOgotICAgICAg
ICAgICAgICAgIHR3LmxpbmUoJ3swfSAgICAgICB7MX0nLmZvcm1hdChGb3JtYXR0ZWRFeGNpbmZv
LmZsb3dfbWFya2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lLnN0cmlwKCkpLCByZWQ9VHJ1ZSkKLSAgICAgICAgdHcubGluZSgpCi0gICAgICAg
IHR3LmxpbmUoIiVzOiVkIiAlIChzZWxmLmZpbGVuYW1lLCBzZWxmLmZpcnN0bGluZW5vICsgMSkp
Ci0KLQotZGVmIGZhaWxfZml4dHVyZWZ1bmMoZml4dHVyZWZ1bmMsIG1zZyk6Ci0gICAgZnMsIGxp
bmVubyA9IGdldGZzbGluZW5vKGZpeHR1cmVmdW5jKQotICAgIGxvY2F0aW9uID0gIiVzOiVzIiAl
IChmcywgbGluZW5vICsgMSkKLSAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShmaXh0
dXJlZnVuYykKLSAgICBmYWlsKG1zZyArICI6XG5cbiIgKyBzdHIoc291cmNlLmluZGVudCgpKSAr
ICJcbiIgKyBsb2NhdGlvbiwKLSAgICAgICAgIHB5dHJhY2U9RmFsc2UpCi0KLQotZGVmIGNhbGxf
Zml4dHVyZV9mdW5jKGZpeHR1cmVmdW5jLCByZXF1ZXN0LCBrd2FyZ3MpOgotICAgIHlpZWxkY3R4
ID0gaXNfZ2VuZXJhdG9yKGZpeHR1cmVmdW5jKQotICAgIGlmIHlpZWxkY3R4OgotICAgICAgICBp
dCA9IGZpeHR1cmVmdW5jKCoqa3dhcmdzKQotICAgICAgICByZXMgPSBuZXh0KGl0KQotCi0gICAg
ICAgIGRlZiB0ZWFyZG93bigpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG5l
eHQoaXQpCi0gICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgICAgICAg
ICBwYXNzCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZhaWxfZml4dHVyZWZ1
bmMoZml4dHVyZWZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieWllbGRf
Zml4dHVyZSBmdW5jdGlvbiBoYXMgbW9yZSB0aGFuIG9uZSAneWllbGQnIikKLQotICAgICAgICBy
ZXF1ZXN0LmFkZGZpbmFsaXplcih0ZWFyZG93bikKLSAgICBlbHNlOgotICAgICAgICByZXMgPSBm
aXh0dXJlZnVuYygqKmt3YXJncykKLSAgICByZXR1cm4gcmVzCi0KLQotY2xhc3MgRml4dHVyZURl
ZjoKLSAgICAiIiIgQSBjb250YWluZXIgZm9yIGEgZmFjdG9yeSBkZWZpbml0aW9uLiAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXh0dXJlbWFuYWdlciwgYmFzZWlkLCBhcmduYW1lLCBm
dW5jLCBzY29wZSwgcGFyYW1zLAotICAgICAgICAgICAgICAgICB1bml0dGVzdD1GYWxzZSwgaWRz
PU5vbmUpOgotICAgICAgICBzZWxmLl9maXh0dXJlbWFuYWdlciA9IGZpeHR1cmVtYW5hZ2VyCi0g
ICAgICAgIHNlbGYuYmFzZWlkID0gYmFzZWlkIG9yICcnCi0gICAgICAgIHNlbGYuaGFzX2xvY2F0
aW9uID0gYmFzZWlkIGlzIG5vdCBOb25lCi0gICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKLSAgICAg
ICAgc2VsZi5hcmduYW1lID0gYXJnbmFtZQotICAgICAgICBzZWxmLnNjb3BlID0gc2NvcGUKLSAg
ICAgICAgc2VsZi5zY29wZW51bSA9IHNjb3BlMmluZGV4KAotICAgICAgICAgICAgc2NvcGUgb3Ig
ImZ1bmN0aW9uIiwKLSAgICAgICAgICAgIGRlc2NyPSdmaXh0dXJlIHswfScuZm9ybWF0KGZ1bmMu
X19uYW1lX18pLAotICAgICAgICAgICAgd2hlcmU9YmFzZWlkCi0gICAgICAgICkKLSAgICAgICAg
c2VsZi5wYXJhbXMgPSBwYXJhbXMKLSAgICAgICAgc2VsZi5hcmduYW1lcyA9IGdldGZ1bmNhcmdu
YW1lcyhmdW5jLCBpc19tZXRob2Q9dW5pdHRlc3QpCi0gICAgICAgIHNlbGYudW5pdHRlc3QgPSB1
bml0dGVzdAotICAgICAgICBzZWxmLmlkcyA9IGlkcwotICAgICAgICBzZWxmLl9maW5hbGl6ZXJz
ID0gW10KLQotICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyKToKLSAgICAgICAg
c2VsZi5fZmluYWxpemVycy5hcHBlbmQoZmluYWxpemVyKQotCi0gICAgZGVmIGZpbmlzaChzZWxm
LCByZXF1ZXN0KToKLSAgICAgICAgZXhjZXB0aW9ucyA9IFtdCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHdoaWxlIHNlbGYuX2ZpbmFsaXplcnM6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgICAgICBmdW5jID0gc2VsZi5fZmluYWxpemVycy5wb3AoKQotICAgICAgICAg
ICAgICAgICAgICBmdW5jKCkKLSAgICAgICAgICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5hcHBlbmQoc3lzLmV4Y19pbmZvKCkpCi0gICAgICAg
ICAgICBpZiBleGNlcHRpb25zOgotICAgICAgICAgICAgICAgIGUgPSBleGNlcHRpb25zWzBdCi0g
ICAgICAgICAgICAgICAgZGVsIGV4Y2VwdGlvbnMgICMgZW5zdXJlIHdlIGRvbid0IGtlZXAgYWxs
IGZyYW1lcyBhbGl2ZSBiZWNhdXNlIG9mIHRoZSB0cmFjZWJhY2sKLSAgICAgICAgICAgICAgICBw
eS5idWlsdGluLl9yZXJhaXNlKCplKQotCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBo
b29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuc2Vzc2lvbi5nZXRob29rcHJveHkocmVxdWVzdC5u
b2RlLmZzcGF0aCkKLSAgICAgICAgICAgIGhvb2sucHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6
ZXIoZml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVlc3QpCi0gICAgICAgICAgICAjIGV2ZW4g
aWYgZmluYWxpemF0aW9uIGZhaWxzLCB3ZSBpbnZhbGlkYXRlCi0gICAgICAgICAgICAjIHRoZSBj
YWNoZWQgZml4dHVyZSB2YWx1ZSBhbmQgcmVtb3ZlCi0gICAgICAgICAgICAjIGFsbCBmaW5hbGl6
ZXJzIGJlY2F1c2UgdGhleSBtYXkgYmUgYm91bmQgbWV0aG9kcyB3aGljaCB3aWxsCi0gICAgICAg
ICAgICAjIGtlZXAgaW5zdGFuY2VzIGFsaXZlCi0gICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYs
ICJjYWNoZWRfcmVzdWx0Iik6Ci0gICAgICAgICAgICAgICAgZGVsIHNlbGYuY2FjaGVkX3Jlc3Vs
dAotICAgICAgICAgICAgc2VsZi5fZmluYWxpemVycyA9IFtdCi0KLSAgICBkZWYgZXhlY3V0ZShz
ZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIyBnZXQgcmVxdWlyZWQgYXJndW1lbnRzIGFuZCByZWdp
c3RlciBvdXIgb3duIGZpbmlzaCgpCi0gICAgICAgICMgd2l0aCB0aGVpciBmaW5hbGl6YXRpb24K
LSAgICAgICAgZm9yIGFyZ25hbWUgaW4gc2VsZi5hcmduYW1lczoKLSAgICAgICAgICAgIGZpeHR1
cmVkZWYgPSByZXF1ZXN0Ll9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoYXJnbmFtZSkKLSAgICAgICAg
ICAgIGlmIGFyZ25hbWUgIT0gInJlcXVlc3QiOgotICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYu
YWRkZmluYWxpemVyKGZ1bmN0b29scy5wYXJ0aWFsKHNlbGYuZmluaXNoLCByZXF1ZXN0PXJlcXVl
c3QpKQotCi0gICAgICAgIG15X2NhY2hlX2tleSA9IHJlcXVlc3QucGFyYW1faW5kZXgKLSAgICAg
ICAgY2FjaGVkX3Jlc3VsdCA9IGdldGF0dHIoc2VsZiwgImNhY2hlZF9yZXN1bHQiLCBOb25lKQot
ICAgICAgICBpZiBjYWNoZWRfcmVzdWx0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVzdWx0
LCBjYWNoZV9rZXksIGVyciA9IGNhY2hlZF9yZXN1bHQKLSAgICAgICAgICAgIGlmIG15X2NhY2hl
X2tleSA9PSBjYWNoZV9rZXk6Ci0gICAgICAgICAgICAgICAgaWYgZXJyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCplcnIpCi0gICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotICAgICAgICAg
ICAgIyB3ZSBoYXZlIGEgcHJldmlvdXMgYnV0IGRpZmZlcmVudGx5IHBhcmFtZXRyaXplZCBmaXh0
dXJlIGluc3RhbmNlCi0gICAgICAgICAgICAjIHNvIHdlIG5lZWQgdG8gdGVhciBpdCBkb3duIGJl
Zm9yZSBjcmVhdGluZyBhIG5ldyBvbmUKLSAgICAgICAgICAgIHNlbGYuZmluaXNoKHJlcXVlc3Qp
Ci0gICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgImNhY2hlZF9yZXN1bHQiKQot
Ci0gICAgICAgIGhvb2sgPSBzZWxmLl9maXh0dXJlbWFuYWdlci5zZXNzaW9uLmdldGhvb2twcm94
eShyZXF1ZXN0Lm5vZGUuZnNwYXRoKQotICAgICAgICByZXR1cm4gaG9vay5weXRlc3RfZml4dHVy
ZV9zZXR1cChmaXh0dXJlZGVmPXNlbGYsIHJlcXVlc3Q9cmVxdWVzdCkKLQotICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICgiPEZpeHR1cmVEZWYgbmFtZT0lciBzY29wZT0l
ciBiYXNlaWQ9JXIgPiIgJQotICAgICAgICAgICAgICAgIChzZWxmLmFyZ25hbWUsIHNlbGYuc2Nv
cGUsIHNlbGYuYmFzZWlkKSkKLQotCi1kZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRl
ZiwgcmVxdWVzdCk6Ci0gICAgIiIiIEV4ZWN1dGlvbiBvZiBmaXh0dXJlIHNldHVwLiAiIiIKLSAg
ICBrd2FyZ3MgPSB7fQotICAgIGZvciBhcmduYW1lIGluIGZpeHR1cmVkZWYuYXJnbmFtZXM6Ci0g
ICAgICAgIGZpeGRlZiA9IHJlcXVlc3QuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQot
ICAgICAgICByZXN1bHQsIGFyZ19jYWNoZV9rZXksIGV4YyA9IGZpeGRlZi5jYWNoZWRfcmVzdWx0
Ci0gICAgICAgIHJlcXVlc3QuX2NoZWNrX3Njb3BlKGFyZ25hbWUsIHJlcXVlc3Quc2NvcGUsIGZp
eGRlZi5zY29wZSkKLSAgICAgICAga3dhcmdzW2FyZ25hbWVdID0gcmVzdWx0Ci0KLSAgICBmaXh0
dXJlZnVuYyA9IGZpeHR1cmVkZWYuZnVuYwotICAgIGlmIGZpeHR1cmVkZWYudW5pdHRlc3Q6Ci0g
ICAgICAgIGlmIHJlcXVlc3QuaW5zdGFuY2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAjIGJp
bmQgdGhlIHVuYm91bmQgbWV0aG9kIHRvIHRoZSBUZXN0Q2FzZSBpbnN0YW5jZQotICAgICAgICAg
ICAgZml4dHVyZWZ1bmMgPSBmaXh0dXJlZGVmLmZ1bmMuX19nZXRfXyhyZXF1ZXN0Lmluc3RhbmNl
KQotICAgIGVsc2U6Ci0gICAgICAgICMgdGhlIGZpeHR1cmUgZnVuY3Rpb24gbmVlZHMgdG8gYmUg
Ym91bmQgdG8gdGhlIGFjdHVhbAotICAgICAgICAjIHJlcXVlc3QuaW5zdGFuY2Ugc28gdGhhdCBj
b2RlIHdvcmtpbmcgd2l0aCAiZml4dHVyZWRlZiIgYmVoYXZlcwotICAgICAgICAjIGFzIGV4cGVj
dGVkLgotICAgICAgICBpZiByZXF1ZXN0Lmluc3RhbmNlIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgZml4dHVyZWZ1bmMgPSBnZXRpbWZ1bmMoZml4dHVyZWRlZi5mdW5jKQotICAgICAgICAgICAg
aWYgZml4dHVyZWZ1bmMgIT0gZml4dHVyZWRlZi5mdW5jOgotICAgICAgICAgICAgICAgIGZpeHR1
cmVmdW5jID0gZml4dHVyZWZ1bmMuX19nZXRfXyhyZXF1ZXN0Lmluc3RhbmNlKQotICAgIG15X2Nh
Y2hlX2tleSA9IHJlcXVlc3QucGFyYW1faW5kZXgKLSAgICB0cnk6Ci0gICAgICAgIHJlc3VsdCA9
IGNhbGxfZml4dHVyZV9mdW5jKGZpeHR1cmVmdW5jLCByZXF1ZXN0LCBrd2FyZ3MpCi0gICAgZXhj
ZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcmVzdWx0ID0gKE5v
bmUsIG15X2NhY2hlX2tleSwgc3lzLmV4Y19pbmZvKCkpCi0gICAgICAgIHJhaXNlCi0gICAgZml4
dHVyZWRlZi5jYWNoZWRfcmVzdWx0ID0gKHJlc3VsdCwgbXlfY2FjaGVfa2V5LCBOb25lKQotICAg
IHJldHVybiByZXN1bHQKLQotCi1kZWYgX2Vuc3VyZV9pbW11dGFibGVfaWRzKGlkcyk6Ci0gICAg
aWYgaWRzIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybgotICAgIGlmIGNhbGxhYmxlKGlkcyk6Ci0g
ICAgICAgIHJldHVybiBpZHMKLSAgICByZXR1cm4gdHVwbGUoaWRzKQotCi0KLUBhdHRyLnMoZnJv
emVuPVRydWUpCi1jbGFzcyBGaXh0dXJlRnVuY3Rpb25NYXJrZXIob2JqZWN0KToKLSAgICBzY29w
ZSA9IGF0dHIuaWIoKQotICAgIHBhcmFtcyA9IGF0dHIuaWIoY29udmVydD1hdHRyLmNvbnZlcnRl
cnMub3B0aW9uYWwodHVwbGUpKQotICAgIGF1dG91c2UgPSBhdHRyLmliKGRlZmF1bHQ9RmFsc2Up
Ci0gICAgaWRzID0gYXR0ci5pYihkZWZhdWx0PU5vbmUsIGNvbnZlcnQ9X2Vuc3VyZV9pbW11dGFi
bGVfaWRzKQotICAgIG5hbWUgPSBhdHRyLmliKGRlZmF1bHQ9Tm9uZSkKLQotICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCBmdW5jdGlvbik6Ci0gICAgICAgIGlmIGlzY2xhc3MoZnVuY3Rpb24pOgotICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAiY2xhc3MgZml4dHVy
ZXMgbm90IHN1cHBvcnRlZCAobWF5IGJlIGluIHRoZSBmdXR1cmUpIikKLSAgICAgICAgZnVuY3Rp
b24uX3B5dGVzdGZpeHR1cmVmdW5jdGlvbiA9IHNlbGYKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
Ci0KLQotZGVmIGZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9
RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU5vbmUpOgotICAgICIiIiAocmV0dXJuIGEpIGRlY29yYXRv
ciB0byBtYXJrIGEgZml4dHVyZSBmYWN0b3J5IGZ1bmN0aW9uLgotCi0gICAgVGhpcyBkZWNvcmF0
b3IgY2FuIGJlIHVzZWQgKHdpdGggb3Igd2l0aG91dCBwYXJhbWV0ZXJzKSB0byBkZWZpbmUgYQot
ICAgIGZpeHR1cmUgZnVuY3Rpb24uICBUaGUgbmFtZSBvZiB0aGUgZml4dHVyZSBmdW5jdGlvbiBj
YW4gbGF0ZXIgYmUKLSAgICByZWZlcmVuY2VkIHRvIGNhdXNlIGl0cyBpbnZvY2F0aW9uIGFoZWFk
IG9mIHJ1bm5pbmcgdGVzdHM6IHRlc3QKLSAgICBtb2R1bGVzIG9yIGNsYXNzZXMgY2FuIHVzZSB0
aGUgcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoZml4dHVyZW5hbWUpCi0gICAgbWFya2VyLiAgVGVz
dCBmdW5jdGlvbnMgY2FuIGRpcmVjdGx5IHVzZSBmaXh0dXJlIG5hbWVzIGFzIGlucHV0Ci0gICAg
YXJndW1lbnRzIGluIHdoaWNoIGNhc2UgdGhlIGZpeHR1cmUgaW5zdGFuY2UgcmV0dXJuZWQgZnJv
bSB0aGUgZml4dHVyZQotICAgIGZ1bmN0aW9uIHdpbGwgYmUgaW5qZWN0ZWQuCi0KLSAgICA6YXJn
IHNjb3BlOiB0aGUgc2NvcGUgZm9yIHdoaWNoIHRoaXMgZml4dHVyZSBpcyBzaGFyZWQsIG9uZSBv
ZgotICAgICAgICAgICAgICAgICJmdW5jdGlvbiIgKGRlZmF1bHQpLCAiY2xhc3MiLCAibW9kdWxl
IiBvciAic2Vzc2lvbiIuCi0KLSAgICA6YXJnIHBhcmFtczogYW4gb3B0aW9uYWwgbGlzdCBvZiBw
YXJhbWV0ZXJzIHdoaWNoIHdpbGwgY2F1c2UgbXVsdGlwbGUKLSAgICAgICAgICAgICAgICBpbnZv
Y2F0aW9ucyBvZiB0aGUgZml4dHVyZSBmdW5jdGlvbiBhbmQgYWxsIG9mIHRoZSB0ZXN0cwotICAg
ICAgICAgICAgICAgIHVzaW5nIGl0LgotCi0gICAgOmFyZyBhdXRvdXNlOiBpZiBUcnVlLCB0aGUg
Zml4dHVyZSBmdW5jIGlzIGFjdGl2YXRlZCBmb3IgYWxsIHRlc3RzIHRoYXQKLSAgICAgICAgICAg
ICAgICBjYW4gc2VlIGl0LiAgSWYgRmFsc2UgKHRoZSBkZWZhdWx0KSB0aGVuIGFuIGV4cGxpY2l0
Ci0gICAgICAgICAgICAgICAgcmVmZXJlbmNlIGlzIG5lZWRlZCB0byBhY3RpdmF0ZSB0aGUgZml4
dHVyZS4KLQotICAgIDphcmcgaWRzOiBsaXN0IG9mIHN0cmluZyBpZHMgZWFjaCBjb3JyZXNwb25k
aW5nIHRvIHRoZSBwYXJhbXMKLSAgICAgICAgICAgICAgICBzbyB0aGF0IHRoZXkgYXJlIHBhcnQg
b2YgdGhlIHRlc3QgaWQuIElmIG5vIGlkcyBhcmUgcHJvdmlkZWQKLSAgICAgICAgICAgICAgICB0
aGV5IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgcGFyYW1zLgotCi0g
ICAgOmFyZyBuYW1lOiB0aGUgbmFtZSBvZiB0aGUgZml4dHVyZS4gVGhpcyBkZWZhdWx0cyB0byB0
aGUgbmFtZSBvZiB0aGUKLSAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgZnVuY3Rpb24uIElmIGEg
Zml4dHVyZSBpcyB1c2VkIGluIHRoZSBzYW1lIG1vZHVsZSBpbgotICAgICAgICAgICAgICAgIHdo
aWNoIGl0IGlzIGRlZmluZWQsIHRoZSBmdW5jdGlvbiBuYW1lIG9mIHRoZSBmaXh0dXJlIHdpbGwg
YmUKLSAgICAgICAgICAgICAgICBzaGFkb3dlZCBieSB0aGUgZnVuY3Rpb24gYXJnIHRoYXQgcmVx
dWVzdHMgdGhlIGZpeHR1cmU7IG9uZSB3YXkKLSAgICAgICAgICAgICAgICB0byByZXNvbHZlIHRo
aXMgaXMgdG8gbmFtZSB0aGUgZGVjb3JhdGVkIGZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgYGBm
aXh0dXJlXzxmaXh0dXJlbmFtZT5gYCBhbmQgdGhlbiB1c2UKLSAgICAgICAgICAgICAgICBgYEBw
eXRlc3QuZml4dHVyZShuYW1lPSc8Zml4dHVyZW5hbWU+JylgYC4KLQotICAgIEZpeHR1cmVzIGNh
biBvcHRpb25hbGx5IHByb3ZpZGUgdGhlaXIgdmFsdWVzIHRvIHRlc3QgZnVuY3Rpb25zIHVzaW5n
IGEgYGB5aWVsZGBgIHN0YXRlbWVudCwKLSAgICBpbnN0ZWFkIG9mIGBgcmV0dXJuYGAuIEluIHRo
aXMgY2FzZSwgdGhlIGNvZGUgYmxvY2sgYWZ0ZXIgdGhlIGBgeWllbGRgYCBzdGF0ZW1lbnQgaXMg
ZXhlY3V0ZWQKLSAgICBhcyB0ZWFyZG93biBjb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIHRlc3Qgb3V0
Y29tZS4gQSBmaXh0dXJlIGZ1bmN0aW9uIG11c3QgeWllbGQgZXhhY3RseSBvbmNlLgotICAgICIi
IgotICAgIGlmIGNhbGxhYmxlKHNjb3BlKSBhbmQgcGFyYW1zIGlzIE5vbmUgYW5kIGF1dG91c2Ug
aXMgRmFsc2U6Ci0gICAgICAgICMgZGlyZWN0IGRlY29yYXRpb24KLSAgICAgICAgcmV0dXJuIEZp
eHR1cmVGdW5jdGlvbk1hcmtlcigKLSAgICAgICAgICAgICJmdW5jdGlvbiIsIHBhcmFtcywgYXV0
b3VzZSwgbmFtZT1uYW1lKShzY29wZSkKLSAgICBpZiBwYXJhbXMgaXMgbm90IE5vbmUgYW5kIG5v
dCBpc2luc3RhbmNlKHBhcmFtcywgKGxpc3QsIHR1cGxlKSk6Ci0gICAgICAgIHBhcmFtcyA9IGxp
c3QocGFyYW1zKQotICAgIHJldHVybiBGaXh0dXJlRnVuY3Rpb25NYXJrZXIoc2NvcGUsIHBhcmFt
cywgYXV0b3VzZSwgaWRzPWlkcywgbmFtZT1uYW1lKQotCi0KLWRlZiB5aWVsZF9maXh0dXJlKHNj
b3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1Ob25lLCBhdXRvdXNlPUZhbHNlLCBpZHM9Tm9uZSwgbmFt
ZT1Ob25lKToKLSAgICAiIiIgKHJldHVybiBhKSBkZWNvcmF0b3IgdG8gbWFyayBhIHlpZWxkLWZp
eHR1cmUgZmFjdG9yeSBmdW5jdGlvbi4KLQotICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjAKLSAgICAg
ICAgVXNlIDpweTpmdW5jOmBweXRlc3QuZml4dHVyZWAgZGlyZWN0bHkgaW5zdGVhZC4KLSAgICAi
IiIKLSAgICBpZiBjYWxsYWJsZShzY29wZSkgYW5kIHBhcmFtcyBpcyBOb25lIGFuZCBub3QgYXV0
b3VzZToKLSAgICAgICAgIyBkaXJlY3QgZGVjb3JhdGlvbgotICAgICAgICByZXR1cm4gRml4dHVy
ZUZ1bmN0aW9uTWFya2VyKAotICAgICAgICAgICAgImZ1bmN0aW9uIiwgcGFyYW1zLCBhdXRvdXNl
LCBpZHM9aWRzLCBuYW1lPW5hbWUpKHNjb3BlKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBG
aXh0dXJlRnVuY3Rpb25NYXJrZXIoc2NvcGUsIHBhcmFtcywgYXV0b3VzZSwgaWRzPWlkcywgbmFt
ZT1uYW1lKQotCi0KLWRlZmF1bHRmdW5jYXJncHJlZml4bWFya2VyID0gZml4dHVyZSgpCi0KLQot
QGZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQotZGVmIHB5dGVzdGNvbmZpZyhyZXF1ZXN0KToKLSAg
ICAiIiIgdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0IHdpdGggYWNjZXNzIHRvIGNvbW1hbmQgbGlu
ZSBvcHRzLiIiIgotICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZwotCi0KLWNsYXNzIEZpeHR1cmVN
YW5hZ2VyOgotICAgICIiIgotICAgIHB5dGVzdCBmaXh0dXJlcyBkZWZpbml0aW9ucyBhbmQgaW5m
b3JtYXRpb24gaXMgc3RvcmVkIGFuZCBtYW5hZ2VkCi0gICAgZnJvbSB0aGlzIGNsYXNzLgotCi0g
ICAgRHVyaW5nIGNvbGxlY3Rpb24gZm0ucGFyc2VmYWN0b3JpZXMoKSBpcyBjYWxsZWQgbXVsdGlw
bGUgdGltZXMgdG8gcGFyc2UKLSAgICBmaXh0dXJlIGZ1bmN0aW9uIGRlZmluaXRpb25zIGludG8g
Rml4dHVyZURlZiBvYmplY3RzIGFuZCBpbnRlcm5hbAotICAgIGRhdGEgc3RydWN0dXJlcy4KLQot
ICAgIER1cmluZyBjb2xsZWN0aW9uIG9mIHRlc3QgZnVuY3Rpb25zLCBtZXRhZnVuYy1tZWNoYW5p
Y3MgaW5zdGFudGlhdGUKLSAgICBhIEZ1bmNGaXh0dXJlSW5mbyBvYmplY3Qgd2hpY2ggaXMgY2Fj
aGVkIHBlciBub2RlL2Z1bmMtbmFtZS4KLSAgICBUaGlzIEZ1bmNGaXh0dXJlSW5mbyBvYmplY3Qg
aXMgbGF0ZXIgcmV0cmlldmVkIGJ5IEZ1bmN0aW9uIG5vZGVzCi0gICAgd2hpY2ggdGhlbXNlbHZl
cyBvZmZlciBhIGZpeHR1cmVuYW1lcyBhdHRyaWJ1dGUuCi0KLSAgICBUaGUgRnVuY0ZpeHR1cmVJ
bmZvIG9iamVjdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBmaXh0dXJlcyBhbmQgRml4dHVyZURl
ZnMKLSAgICByZWxldmFudCBmb3IgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uLiAgQW4gaW5pdGlhbCBs
aXN0IG9mIGZpeHR1cmVzIGlzCi0gICAgYXNzZW1ibGVkIGxpa2UgdGhpczoKLQotICAgIC0gaW5p
LWRlZmluZWQgdXNlZml4dHVyZXMKLSAgICAtIGF1dG91c2UtbWFya2VkIGZpeHR1cmVzIGFsb25n
IHRoZSBjb2xsZWN0aW9uIGNoYWluIHVwIGZyb20gdGhlIGZ1bmN0aW9uCi0gICAgLSB1c2VmaXh0
dXJlcyBtYXJrZXJzIGF0IG1vZHVsZS9jbGFzcy9mdW5jdGlvbiBsZXZlbAotICAgIC0gdGVzdCBm
dW5jdGlvbiBmdW5jYXJncwotCi0gICAgU3Vic2VxdWVudGx5IHRoZSBmdW5jZml4dHVyZWluZm8u
Zml4dHVyZW5hbWVzIGF0dHJpYnV0ZSBpcyBjb21wdXRlZAotICAgIGFzIHRoZSBjbG9zdXJlIG9m
IHRoZSBmaXh0dXJlcyBuZWVkZWQgdG8gc2V0dXAgdGhlIGluaXRpYWwgZml4dHVyZXMsCi0gICAg
aS4gZS4gZml4dHVyZXMgbmVlZGVkIGJ5IGZpeHR1cmUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJl
IGFwcGVuZGVkCi0gICAgdG8gdGhlIGZpeHR1cmVuYW1lcyBsaXN0LgotCi0gICAgVXBvbiB0aGUg
dGVzdC1zZXR1cCBwaGFzZXMgYWxsIGZpeHR1cmVuYW1lcyBhcmUgaW5zdGFudGlhdGVkLCByZXRy
aWV2ZWQKLSAgICBieSBhIGxvb2t1cCBvZiB0aGVpciBGdW5jRml4dHVyZUluZm8uCi0gICAgIiIi
Ci0KLSAgICBfYXJncHJlZml4ID0gInB5dGVzdF9mdW5jYXJnX18iCi0gICAgRml4dHVyZUxvb2t1
cEVycm9yID0gRml4dHVyZUxvb2t1cEVycm9yCi0gICAgRml4dHVyZUxvb2t1cEVycm9yUmVwciA9
IEZpeHR1cmVMb29rdXBFcnJvclJlcHIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9u
KToKLSAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgotICAgICAgICBzZWxmLmNvbmZpZyA9
IHNlc3Npb24uY29uZmlnCi0gICAgICAgIHNlbGYuX2FyZzJmaXh0dXJlZGVmcyA9IHt9Ci0gICAg
ICAgIHNlbGYuX2hvbGRlcm9ianNlZW4gPSBzZXQoKQotICAgICAgICBzZWxmLl9hcmcyZmluaXNo
ID0ge30KLSAgICAgICAgc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNlbmFtZXMgPSBbKCIiLCBzZWxm
LmNvbmZpZy5nZXRpbmkoInVzZWZpeHR1cmVzIikpXQotICAgICAgICBzZXNzaW9uLmNvbmZpZy5w
bHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJmdW5jbWFuYWdlIikKLQotICAgIGRlZiBnZXRm
aXh0dXJlaW5mbyhzZWxmLCBub2RlLCBmdW5jLCBjbHMsIGZ1bmNhcmdzPVRydWUpOgotICAgICAg
ICBpZiBmdW5jYXJncyBhbmQgbm90IGhhc2F0dHIobm9kZSwgIm5vZnVuY2FyZ3MiKToKLSAgICAg
ICAgICAgIGFyZ25hbWVzID0gZ2V0ZnVuY2FyZ25hbWVzKGZ1bmMsIGNscz1jbHMpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBhcmduYW1lcyA9ICgpCi0gICAgICAgIHVzZWZpeHR1cmVzID0g
Z2V0YXR0cihmdW5jLCAidXNlZml4dHVyZXMiLCBOb25lKQotICAgICAgICBpbml0aWFsbmFtZXMg
PSBhcmduYW1lcwotICAgICAgICBpZiB1c2VmaXh0dXJlcyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIGluaXRpYWxuYW1lcyA9IHVzZWZpeHR1cmVzLmFyZ3MgKyBpbml0aWFsbmFtZXMKLSAgICAg
ICAgZm0gPSBub2RlLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIG5hbWVzX2Nsb3N1
cmUsIGFyZzJmaXh0dXJlZGVmcyA9IGZtLmdldGZpeHR1cmVjbG9zdXJlKGluaXRpYWxuYW1lcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZSkKLSAgICAgICAgcmV0dXJuIEZ1bmNGaXh0dXJlSW5mbyhhcmduYW1lcywgbmFt
ZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZzKQotCi0gICAgZGVmIHB5dGVzdF9wbHVnaW5fcmVn
aXN0ZXJlZChzZWxmLCBwbHVnaW4pOgotICAgICAgICBub2RlaWQgPSBOb25lCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHBsdWdpbi5fX2ZpbGVfXykKLSAgICAg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgIyBjb25zdHJ1Y3QgdGhlIGJhc2Ugbm9kZWlkIHdoaWNoIGlzIGxhdGVy
IHVzZWQgdG8gY2hlY2sKLSAgICAgICAgICAgICMgd2hhdCBmaXh0dXJlcyBhcmUgdmlzaWJsZSBm
b3IgcGFydGljdWxhciB0ZXN0cyAoYXMgZGVub3RlZAotICAgICAgICAgICAgIyBieSB0aGVpciB0
ZXN0IGlkKQotICAgICAgICAgICAgaWYgcC5iYXNlbmFtZS5zdGFydHN3aXRoKCJjb25mdGVzdC5w
eSIpOgotICAgICAgICAgICAgICAgIG5vZGVpZCA9IHAuZGlycGF0aCgpLnJlbHRvKHNlbGYuY29u
ZmlnLnJvb3RkaXIpCi0gICAgICAgICAgICAgICAgaWYgcC5zZXAgIT0gbm9kZXMuU0VQOgotICAg
ICAgICAgICAgICAgICAgICBub2RlaWQgPSBub2RlaWQucmVwbGFjZShwLnNlcCwgbm9kZXMuU0VQ
KQotICAgICAgICBzZWxmLnBhcnNlZmFjdG9yaWVzKHBsdWdpbiwgbm9kZWlkKQotCi0gICAgZGVm
IF9nZXRhdXRvdXNlbmFtZXMoc2VsZiwgbm9kZWlkKToKLSAgICAgICAgIiIiIHJldHVybiBhIHR1
cGxlIG9mIGZpeHR1cmUgbmFtZXMgdG8gYmUgdXNlZC4gIiIiCi0gICAgICAgIGF1dG91c2VuYW1l
cyA9IFtdCi0gICAgICAgIGZvciBiYXNlaWQsIGJhc2VuYW1lcyBpbiBzZWxmLl9ub2RlaWRfYW5k
X2F1dG91c2VuYW1lczoKLSAgICAgICAgICAgIGlmIG5vZGVpZC5zdGFydHN3aXRoKGJhc2VpZCk6
Ci0gICAgICAgICAgICAgICAgaWYgYmFzZWlkOgotICAgICAgICAgICAgICAgICAgICBpID0gbGVu
KGJhc2VpZCkKLSAgICAgICAgICAgICAgICAgICAgbmV4dGNoYXIgPSBub2RlaWRbaTppICsgMV0K
LSAgICAgICAgICAgICAgICAgICAgaWYgbmV4dGNoYXIgYW5kIG5leHRjaGFyIG5vdCBpbiAiOi8i
OgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBhdXRv
dXNlbmFtZXMuZXh0ZW5kKGJhc2VuYW1lcykKLSAgICAgICAgIyBtYWtlIHN1cmUgYXV0b3VzZW5h
bWVzIGFyZSBzb3J0ZWQgYnkgc2NvcGUsIHNjb3BlbnVtIDAgaXMgc2Vzc2lvbgotICAgICAgICBh
dXRvdXNlbmFtZXMuc29ydCgKLSAgICAgICAgICAgIGtleT1sYW1iZGEgeDogc2VsZi5fYXJnMmZp
eHR1cmVkZWZzW3hdWy0xXS5zY29wZW51bSkKLSAgICAgICAgcmV0dXJuIGF1dG91c2VuYW1lcwot
Ci0gICAgZGVmIGdldGZpeHR1cmVjbG9zdXJlKHNlbGYsIGZpeHR1cmVuYW1lcywgcGFyZW50bm9k
ZSk6Ci0gICAgICAgICMgY29sbGVjdCB0aGUgY2xvc3VyZSBvZiBhbGwgZml4dHVyZXMgLCBzdGFy
dGluZyB3aXRoIHRoZSBnaXZlbgotICAgICAgICAjIGZpeHR1cmVuYW1lcyBhcyB0aGUgaW5pdGlh
bCBzZXQuICBBcyB3ZSBoYXZlIHRvIHZpc2l0IGFsbAotICAgICAgICAjIGZhY3RvcnkgZGVmaW5p
dGlvbnMgYW55d2F5LCB3ZSBhbHNvIHJldHVybiBhIGFyZzJmaXh0dXJlZGVmcwotICAgICAgICAj
IG1hcHBpbmcgc28gdGhhdCB0aGUgY2FsbGVyIGNhbiByZXVzZSBpdCBhbmQgZG9lcyBub3QgaGF2
ZQotICAgICAgICAjIHRvIHJlLWRpc2NvdmVyIGZpeHR1cmVkZWZzIGFnYWluIGZvciBlYWNoIGZp
eHR1cmVuYW1lCi0gICAgICAgICMgKGRpc2NvdmVyaW5nIG1hdGNoaW5nIGZpeHR1cmVzIGZvciBh
IGdpdmVuIG5hbWUvbm9kZSBpcyBleHBlbnNpdmUpCi0KLSAgICAgICAgcGFyZW50aWQgPSBwYXJl
bnRub2RlLm5vZGVpZAotICAgICAgICBmaXh0dXJlbmFtZXNfY2xvc3VyZSA9IHNlbGYuX2dldGF1
dG91c2VuYW1lcyhwYXJlbnRpZCkKLQotICAgICAgICBkZWYgbWVyZ2Uob3RoZXJsaXN0KToKLSAg
ICAgICAgICAgIGZvciBhcmcgaW4gb3RoZXJsaXN0OgotICAgICAgICAgICAgICAgIGlmIGFyZyBu
b3QgaW4gZml4dHVyZW5hbWVzX2Nsb3N1cmU6Ci0gICAgICAgICAgICAgICAgICAgIGZpeHR1cmVu
YW1lc19jbG9zdXJlLmFwcGVuZChhcmcpCi0KLSAgICAgICAgbWVyZ2UoZml4dHVyZW5hbWVzKQot
ICAgICAgICBhcmcyZml4dHVyZWRlZnMgPSB7fQotICAgICAgICBsYXN0bGVuID0gLTEKLSAgICAg
ICAgd2hpbGUgbGFzdGxlbiAhPSBsZW4oZml4dHVyZW5hbWVzX2Nsb3N1cmUpOgotICAgICAgICAg
ICAgbGFzdGxlbiA9IGxlbihmaXh0dXJlbmFtZXNfY2xvc3VyZSkKLSAgICAgICAgICAgIGZvciBh
cmduYW1lIGluIGZpeHR1cmVuYW1lc19jbG9zdXJlOgotICAgICAgICAgICAgICAgIGlmIGFyZ25h
bWUgaW4gYXJnMmZpeHR1cmVkZWZzOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgICAgIGZpeHR1cmVkZWZzID0gc2VsZi5nZXRmaXh0dXJlZGVmcyhhcmduYW1lLCBw
YXJlbnRpZCkKLSAgICAgICAgICAgICAgICBpZiBmaXh0dXJlZGVmczoKLSAgICAgICAgICAgICAg
ICAgICAgYXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gZml4dHVyZWRlZnMKLSAgICAgICAgICAg
ICAgICAgICAgbWVyZ2UoZml4dHVyZWRlZnNbLTFdLmFyZ25hbWVzKQotICAgICAgICByZXR1cm4g
Zml4dHVyZW5hbWVzX2Nsb3N1cmUsIGFyZzJmaXh0dXJlZGVmcwotCi0gICAgZGVmIHB5dGVzdF9n
ZW5lcmF0ZV90ZXN0cyhzZWxmLCBtZXRhZnVuYyk6Ci0gICAgICAgIGZvciBhcmduYW1lIGluIG1l
dGFmdW5jLmZpeHR1cmVuYW1lczoKLSAgICAgICAgICAgIGZhY2xpc3QgPSBtZXRhZnVuYy5fYXJn
MmZpeHR1cmVkZWZzLmdldChhcmduYW1lKQotICAgICAgICAgICAgaWYgZmFjbGlzdDoKLSAgICAg
ICAgICAgICAgICBmaXh0dXJlZGVmID0gZmFjbGlzdFstMV0KLSAgICAgICAgICAgICAgICBpZiBm
aXh0dXJlZGVmLnBhcmFtcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcGFyYW1l
dHJpemVfZnVuYyA9IGdldGF0dHIobWV0YWZ1bmMuZnVuY3Rpb24sICdwYXJhbWV0cml6ZScsIE5v
bmUpCi0gICAgICAgICAgICAgICAgICAgIGZ1bmNfcGFyYW1zID0gZ2V0YXR0cihwYXJhbWV0cml6
ZV9mdW5jLCAnYXJncycsIFtbTm9uZV1dKQotICAgICAgICAgICAgICAgICAgICBmdW5jX2t3YXJn
cyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVuYywgJ2t3YXJncycsIHt9KQotICAgICAgICAgICAg
ICAgICAgICAjIHNraXAgZGlyZWN0bHkgcGFyYW1ldHJpemVkIGFyZ3VtZW50cwotICAgICAgICAg
ICAgICAgICAgICBpZiAiYXJnbmFtZXMiIGluIGZ1bmNfa3dhcmdzOgotICAgICAgICAgICAgICAg
ICAgICAgICAgYXJnbmFtZXMgPSBwYXJhbWV0cml6ZV9mdW5jLmt3YXJnc1siYXJnbmFtZXMiXQot
ICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFt
ZXMgPSBmdW5jX3BhcmFtc1swXQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShhcmduYW1lcywgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmdu
YW1lcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFtZXMuc3BsaXQoIiwiKSBpZiB4LnN0cmlw
KCldCi0gICAgICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGZ1bmNfcGFyYW1zIGFu
ZCBhcmduYW1lIG5vdCBpbiBhcmduYW1lczoKLSAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFm
dW5jLnBhcmFtZXRyaXplKGFyZ25hbWUsIGZpeHR1cmVkZWYucGFyYW1zLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaXJlY3Q9VHJ1ZSwgc2NvcGU9Zml4
dHVyZWRlZi5zY29wZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlkcz1maXh0dXJlZGVmLmlkcykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgY29udGludWUgICMgd2lsbCByYWlzZSBGaXh0dXJlTG9va3VwRXJyb3IgYXQgc2V0dXAgdGlt
ZQotCi0gICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlbGYsIGl0ZW1zKToK
LSAgICAgICAgIyBzZXBhcmF0ZSBwYXJhbWV0cml6ZWQgc2V0dXBzCi0gICAgICAgIGl0ZW1zWzpd
ID0gcmVvcmRlcl9pdGVtcyhpdGVtcykKLQotICAgIGRlZiBwYXJzZWZhY3RvcmllcyhzZWxmLCBu
b2RlX29yX29iaiwgbm9kZWlkPU5PVFNFVCwgdW5pdHRlc3Q9RmFsc2UpOgotICAgICAgICBpZiBu
b2RlaWQgaXMgbm90IE5PVFNFVDoKLSAgICAgICAgICAgIGhvbGRlcm9iaiA9IG5vZGVfb3Jfb2Jq
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBob2xkZXJvYmogPSBub2RlX29yX29iai5vYmoK
LSAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVfb3Jfb2JqLm5vZGVpZAotICAgICAgICBpZiBob2xk
ZXJvYmogaW4gc2VsZi5faG9sZGVyb2Jqc2VlbjoKLSAgICAgICAgICAgIHJldHVybgotICAgICAg
ICBzZWxmLl9ob2xkZXJvYmpzZWVuLmFkZChob2xkZXJvYmopCi0gICAgICAgIGF1dG91c2VuYW1l
cyA9IFtdCi0gICAgICAgIGZvciBuYW1lIGluIGRpcihob2xkZXJvYmopOgotICAgICAgICAgICAg
IyBUaGUgYXR0cmlidXRlIGNhbiBiZSBhbiBhcmJpdHJhcnkgZGVzY3JpcHRvciwgc28gdGhlIGF0
dHJpYnV0ZQotICAgICAgICAgICAgIyBhY2Nlc3MgYmVsb3cgY2FuIHJhaXNlLiBzYWZlX2dldGF0
dCgpIGlnbm9yZXMgc3VjaCBleGNlcHRpb25zLgotICAgICAgICAgICAgb2JqID0gc2FmZV9nZXRh
dHRyKGhvbGRlcm9iaiwgbmFtZSwgTm9uZSkKLSAgICAgICAgICAgICMgZml4dHVyZSBmdW5jdGlv
bnMgaGF2ZSBhIHB5dGVzdF9mdW5jYXJnX18gcHJlZml4IChwcmUtMi4zIHN0eWxlKQotICAgICAg
ICAgICAgIyBvciBhcmUgIkBweXRlc3QuZml4dHVyZSIgbWFya2VkCi0gICAgICAgICAgICBtYXJr
ZXIgPSBnZXRmaXh0dXJlbWFya2VyKG9iaikKLSAgICAgICAgICAgIGlmIG1hcmtlciBpcyBOb25l
OgotICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoc2VsZi5fYXJncHJlZml4
KToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBpZiBub3Qg
Y2FsbGFibGUob2JqKToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
ICAgICBtYXJrZXIgPSBkZWZhdWx0ZnVuY2FyZ3ByZWZpeG1hcmtlcgotICAgICAgICAgICAgICAg
IGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotICAgICAgICAgICAgICAgIHNlbGYuY29u
ZmlnLndhcm4oJ0MxJywgZGVwcmVjYXRlZC5GVU5DQVJHX1BSRUZJWC5mb3JtYXQobmFtZT1uYW1l
KSwgbm9kZWlkPW5vZGVpZCkKLSAgICAgICAgICAgICAgICBuYW1lID0gbmFtZVtsZW4oc2VsZi5f
YXJncHJlZml4KTpdCi0gICAgICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKG1hcmtlciwgRml4
dHVyZUZ1bmN0aW9uTWFya2VyKToKLSAgICAgICAgICAgICAgICAjIG1hZ2ljIGdsb2JhbHMgIHdp
dGggX19nZXRhdHRyX18gbWlnaHQgaGF2ZSBnb3QgdXMgYSB3cm9uZwotICAgICAgICAgICAgICAg
ICMgZml4dHVyZSBhdHRyaWJ1dGUKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBtYXJrZXIubmFtZToKLSAgICAgICAgICAgICAg
ICAgICAgbmFtZSA9IG1hcmtlci5uYW1lCi0gICAgICAgICAgICAgICAgbXNnID0gJ2ZpeHR1cmVz
IGNhbm5vdCBoYXZlICJweXRlc3RfZnVuY2FyZ19fIiBwcmVmaXggJyBcCi0gICAgICAgICAgICAg
ICAgICAgICAgJ2FuZCBiZSBkZWNvcmF0ZWQgd2l0aCBAcHl0ZXN0LmZpeHR1cmU6XG4lcycgJSBu
YW1lCi0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBuYW1lLnN0YXJ0c3dpdGgoc2VsZi5fYXJn
cHJlZml4KSwgbXNnCi0KLSAgICAgICAgICAgIGZpeHR1cmVfZGVmID0gRml4dHVyZURlZihzZWxm
LCBub2RlaWQsIG5hbWUsIG9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXJrZXIuc2NvcGUsIG1hcmtlci5wYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5pdHRlc3Q9dW5pdHRlc3QsIGlkcz1tYXJrZXIuaWRzKQotCi0gICAgICAg
ICAgICBmYWNsaXN0ID0gc2VsZi5fYXJnMmZpeHR1cmVkZWZzLnNldGRlZmF1bHQobmFtZSwgW10p
Ci0gICAgICAgICAgICBpZiBmaXh0dXJlX2RlZi5oYXNfbG9jYXRpb246Ci0gICAgICAgICAgICAg
ICAgZmFjbGlzdC5hcHBlbmQoZml4dHVyZV9kZWYpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICMgZml4dHVyZWRlZnMgd2l0aCBubyBsb2NhdGlvbiBhcmUgYXQgdGhlIGZyb250
Ci0gICAgICAgICAgICAgICAgIyBzbyB0aGlzIGluc2VydHMgdGhlIGN1cnJlbnQgZml4dHVyZWRl
ZiBhZnRlciB0aGUKLSAgICAgICAgICAgICAgICAjIGV4aXN0aW5nIGZpeHR1cmVkZWZzIGZyb20g
ZXh0ZXJuYWwgcGx1Z2lucyBidXQKLSAgICAgICAgICAgICAgICAjIGJlZm9yZSB0aGUgZml4dHVy
ZWRlZnMgcHJvdmlkZWQgaW4gY29uZnRlc3RzLgotICAgICAgICAgICAgICAgIGkgPSBsZW4oW2Yg
Zm9yIGYgaW4gZmFjbGlzdCBpZiBub3QgZi5oYXNfbG9jYXRpb25dKQotICAgICAgICAgICAgICAg
IGZhY2xpc3QuaW5zZXJ0KGksIGZpeHR1cmVfZGVmKQotICAgICAgICAgICAgaWYgbWFya2VyLmF1
dG91c2U6Ci0gICAgICAgICAgICAgICAgYXV0b3VzZW5hbWVzLmFwcGVuZChuYW1lKQotCi0gICAg
ICAgIGlmIGF1dG91c2VuYW1lczoKLSAgICAgICAgICAgIHNlbGYuX25vZGVpZF9hbmRfYXV0b3Vz
ZW5hbWVzLmFwcGVuZCgobm9kZWlkIG9yICcnLCBhdXRvdXNlbmFtZXMpKQotCi0gICAgZGVmIGdl
dGZpeHR1cmVkZWZzKHNlbGYsIGFyZ25hbWUsIG5vZGVpZCk6Ci0gICAgICAgICIiIgotICAgICAg
ICBHZXRzIGEgbGlzdCBvZiBmaXh0dXJlcyB3aGljaCBhcmUgYXBwbGljYWJsZSB0byB0aGUgZ2l2
ZW4gbm9kZSBpZC4KLQotICAgICAgICA6cGFyYW0gc3RyIGFyZ25hbWU6IG5hbWUgb2YgdGhlIGZp
eHR1cmUgdG8gc2VhcmNoIGZvcgotICAgICAgICA6cGFyYW0gc3RyIG5vZGVpZDogZnVsbCBub2Rl
IGlkIG9mIHRoZSByZXF1ZXN0aW5nIHRlc3QuCi0gICAgICAgIDpyZXR1cm46IGxpc3RbRml4dHVy
ZURlZl0KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZpeHR1cmVkZWZz
ID0gc2VsZi5fYXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJv
cjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gdHVwbGUoc2VsZi5fbWF0Y2hmYWN0b3JpZXMoZml4dHVyZWRlZnMsIG5vZGVpZCkpCi0K
LSAgICBkZWYgX21hdGNoZmFjdG9yaWVzKHNlbGYsIGZpeHR1cmVkZWZzLCBub2RlaWQpOgotICAg
ICAgICBmb3IgZml4dHVyZWRlZiBpbiBmaXh0dXJlZGVmczoKLSAgICAgICAgICAgIGlmIG5vZGVz
LmlzY2hpbGRub2RlKGZpeHR1cmVkZWYuYmFzZWlkLCBub2RlaWQpOgotICAgICAgICAgICAgICAg
IHlpZWxkIGZpeHR1cmVkZWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXpl
X3N1cHBvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzE0N2E4ODI1MGEzNTUzYzg1YzQ0YjE4MjgyM2U1
NDJiOWY3NGJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0MyArMCwwIEBACi0iIiIKLVByb3ZpZGVzIGEgZnVuY3Rpb24gdG8gcmVwb3J0IGFsbCBpbnRl
cm5hbCBtb2R1bGVzIGZvciB1c2luZyBmcmVlemluZyB0b29scwotcHl0ZXN0Ci0iIiIKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KLQotCi1kZWYgZnJlZXplX2luY2x1ZGVzKCk6Ci0gICAgIiIiCi0gICAgUmV0dXJucyBhIGxp
c3Qgb2YgbW9kdWxlIG5hbWVzIHVzZWQgYnkgcHkudGVzdCB0aGF0IHNob3VsZCBiZQotICAgIGlu
Y2x1ZGVkIGJ5IGN4X2ZyZWV6ZS4KLSAgICAiIiIKLSAgICBpbXBvcnQgcHkKLSAgICBpbXBvcnQg
X3B5dGVzdAotICAgIHJlc3VsdCA9IGxpc3QoX2l0ZXJfYWxsX21vZHVsZXMocHkpKQotICAgIHJl
c3VsdCArPSBsaXN0KF9pdGVyX2FsbF9tb2R1bGVzKF9weXRlc3QpKQotICAgIHJldHVybiByZXN1
bHQKLQotCi1kZWYgX2l0ZXJfYWxsX21vZHVsZXMocGFja2FnZSwgcHJlZml4PScnKToKLSAgICAi
IiIKLSAgICBJdGVyYXRlcyBvdmVyIHRoZSBuYW1lcyBvZiBhbGwgbW9kdWxlcyB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgZ2l2ZW4KLSAgICBwYWNrYWdlLCByZWN1cnNpdmVseS4KLSAgICBFeGFt
cGxlOgotICAgICAgICBfaXRlcl9hbGxfbW9kdWxlcyhfcHl0ZXN0KSAtPgotICAgICAgICAgICAg
WydfcHl0ZXN0LmFzc2VydGlvbi5uZXdpbnRlcnByZXQnLAotICAgICAgICAgICAgICdfcHl0ZXN0
LmNhcHR1cmUnLAotICAgICAgICAgICAgICdfcHl0ZXN0LmNvcmUnLAotICAgICAgICAgICAgIC4u
LgotICAgICAgICAgICAgXQotICAgICIiIgotICAgIGltcG9ydCBvcwotICAgIGltcG9ydCBwa2d1
dGlsCi0gICAgaWYgdHlwZShwYWNrYWdlKSBpcyBub3Qgc3RyOgotICAgICAgICBwYXRoLCBwcmVm
aXggPSBwYWNrYWdlLl9fcGF0aF9fWzBdLCBwYWNrYWdlLl9fbmFtZV9fICsgJy4nCi0gICAgZWxz
ZToKLSAgICAgICAgcGF0aCA9IHBhY2thZ2UKLSAgICBmb3IgXywgbmFtZSwgaXNfcGFja2FnZSBp
biBwa2d1dGlsLml0ZXJfbW9kdWxlcyhbcGF0aF0pOgotICAgICAgICBpZiBpc19wYWNrYWdlOgot
ICAgICAgICAgICAgZm9yIG0gaW4gX2l0ZXJfYWxsX21vZHVsZXMob3MucGF0aC5qb2luKHBhdGgs
IG5hbWUpLCBwcmVmaXg9bmFtZSArICcuJyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcHJlZml4
ICsgbQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgeWllbGQgcHJlZml4ICsgbmFtZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9oZWxwY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9oZWxwY29uZmlnLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzQ0
NjM3Zjg2NjBmMjcyYzQ4OGEyYWIwYzY4ZWU0ZTg1NzE4YmJiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZp
Zy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4NCArMCwwIEBACi0iIiIgdmVyc2lvbiBpbmZvLCBo
ZWxwIG1lc3NhZ2VzLCB0cmFjaW5nIGNvbmZpZ3VyYXRpb24uICAiIiIKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1w
b3J0IHB5Ci1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBQcmludEhl
bHAKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotZnJvbSBhcmdwYXJzZSBpbXBvcnQgQWN0aW9uCi0K
LQotY2xhc3MgSGVscEFjdGlvbihBY3Rpb24pOgotICAgICIiIlRoaXMgaXMgYW4gYXJncGFyc2Ug
QWN0aW9uIHRoYXQgd2lsbCByYWlzZSBhbiBleGNlcHRpb24gaW4KLSAgICBvcmRlciB0byBza2lw
IHRoZSByZXN0IG9mIHRoZSBhcmd1bWVudCBwYXJzaW5nIHdoZW4gLS1oZWxwIGlzIHBhc3NlZC4K
LSAgICBUaGlzIHByZXZlbnRzIGFyZ3BhcnNlIGZyb20gcXVpdHRpbmcgZHVlIHRvIG1pc3Npbmcg
cmVxdWlyZWQgYXJndW1lbnRzCi0gICAgd2hlbiBhbnkgYXJlIGRlZmluZWQsIGZvciBleGFtcGxl
IGJ5IGBgcHl0ZXN0X2FkZG9wdGlvbmBgLgotICAgIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgd2F5
IHRoYXQgdGhlIGJ1aWx0aW4gYXJncGFyc2UgLS1oZWxwIG9wdGlvbiBpcwotICAgIGltcGxlbWVu
dGVkIGJ5IHJhaXNpbmcgU3lzdGVtRXhpdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLAotICAgICAgICAgICAgICAgICBvcHRpb25fc3RyaW5ncywKLSAgICAgICAgICAgICAgICAg
ZGVzdD1Ob25lLAotICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICBoZWxwPU5vbmUpOgotICAgICAgICBzdXBlcihIZWxwQWN0aW9uLCBzZWxmKS5fX2luaXRf
XygKLSAgICAgICAgICAgIG9wdGlvbl9zdHJpbmdzPW9wdGlvbl9zdHJpbmdzLAotICAgICAgICAg
ICAgZGVzdD1kZXN0LAotICAgICAgICAgICAgY29uc3Q9VHJ1ZSwKLSAgICAgICAgICAgIGRlZmF1
bHQ9ZGVmYXVsdCwKLSAgICAgICAgICAgIG5hcmdzPTAsCi0gICAgICAgICAgICBoZWxwPWhlbHAp
Ci0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgcGFyc2VyLCBuYW1lc3BhY2UsIHZhbHVlcywgb3B0
aW9uX3N0cmluZz1Ob25lKToKLSAgICAgICAgc2V0YXR0cihuYW1lc3BhY2UsIHNlbGYuZGVzdCwg
c2VsZi5jb25zdCkKLQotICAgICAgICAjIFdlIHNob3VsZCBvbmx5IHNraXAgdGhlIHJlc3Qgb2Yg
dGhlIHBhcnNpbmcgYWZ0ZXIgcHJlcGFyc2UgaXMgZG9uZQotICAgICAgICBpZiBnZXRhdHRyKHBh
cnNlci5fcGFyc2VyLCAnYWZ0ZXJfcHJlcGFyc2UnLCBGYWxzZSk6Ci0gICAgICAgICAgICByYWlz
ZSBQcmludEhlbHAKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3Vw
ID0gcGFyc2VyLmdldGdyb3VwKCdkZWJ1Z2NvbmZpZycpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCct
LXZlcnNpb24nLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxw
PSJkaXNwbGF5IHB5dGVzdCBsaWIgdmVyc2lvbiBhbmQgaW1wb3J0IGluZm9ybWF0aW9uLiIpCi0g
ICAgZ3JvdXAuX2FkZG9wdGlvbigiLWgiLCAiLS1oZWxwIiwgYWN0aW9uPUhlbHBBY3Rpb24sIGRl
c3Q9ImhlbHAiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBoZWxwIG1lc3NhZ2Ug
YW5kIGNvbmZpZ3VyYXRpb24gaW5mbyIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLXAnLCBhY3Rp
b249ImFwcGVuZCIsIGRlc3Q9InBsdWdpbnMiLCBkZWZhdWx0PVtdLAotICAgICAgICAgICAgICAg
ICAgICAgbWV0YXZhcj0ibmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJlYXJseS1s
b2FkIGdpdmVuIHBsdWdpbiAobXVsdGktYWxsb3dlZCkuICIKLSAgICAgICAgICAgICAgICAgICAg
ICJUbyBhdm9pZCBsb2FkaW5nIG9mIHBsdWdpbnMsIHVzZSB0aGUgYG5vOmAgcHJlZml4LCBlLmcu
ICIKLSAgICAgICAgICAgICAgICAgICAgICJgbm86ZG9jdGVzdGAuIikKLSAgICBncm91cC5hZGRv
cHRpb24oJy0tdHJhY2Vjb25maWcnLCAnLS10cmFjZS1jb25maWcnLAotICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJ0cmFjZSBjb25zaWRlcmF0aW9ucyBvZiBjb25mdGVzdC5weSBmaWxlcy4iKSwK
LSAgICBncm91cC5hZGRvcHRpb24oJy0tZGVidWcnLAotICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlX3RydWUiLCBkZXN0PSJkZWJ1ZyIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAg
ICAgICAgICAgIGhlbHA9InN0b3JlIGludGVybmFsIHRyYWNpbmcgZGVidWcgaW5mb3JtYXRpb24g
aW4gJ3B5dGVzdGRlYnVnLmxvZycuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKAotICAgICAgICAn
LW8nLCAnLS1vdmVycmlkZS1pbmknLCBuYXJncz0nKicsIGRlc3Q9Im92ZXJyaWRlX2luaSIsCi0g
ICAgICAgIGFjdGlvbj0iYXBwZW5kIiwKLSAgICAgICAgaGVscD0ib3ZlcnJpZGUgY29uZmlnIG9w
dGlvbiB3aXRoIG9wdGlvbj12YWx1ZSBzdHlsZSwgZS5nLiBgLW8geGZhaWxfc3RyaWN0PVRydWVg
LiIpCi0KLQotQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9j
bWRsaW5lX3BhcnNlKCk6Ci0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgY29uZmlnID0gb3V0Y29t
ZS5nZXRfcmVzdWx0KCkKLSAgICBpZiBjb25maWcub3B0aW9uLmRlYnVnOgotICAgICAgICBwYXRo
ID0gb3MucGF0aC5hYnNwYXRoKCJweXRlc3RkZWJ1Zy5sb2ciKQotICAgICAgICBkZWJ1Z2ZpbGUg
PSBvcGVuKHBhdGgsICd3JykKLSAgICAgICAgZGVidWdmaWxlLndyaXRlKCJ2ZXJzaW9ucyBweXRl
c3QtJXMsIHB5LSVzLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uLSVzXG5jd2Q9
JXNcbmFyZ3M9JXNcblxuIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRlc3Qu
X192ZXJzaW9uX18sIHB5Ll9fdmVyc2lvbl9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIuIi5qb2luKG1hcChzdHIsIHN5cy52ZXJzaW9uX2luZm8pKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcy5nZXRjd2QoKSwgY29uZmlnLl9vcmlnYXJncykpCi0gICAgICAgIGNvbmZp
Zy50cmFjZS5yb290LnNldHdyaXRlcihkZWJ1Z2ZpbGUud3JpdGUpCi0gICAgICAgIHVuZG9fdHJh
Y2luZyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmVuYWJsZV90cmFjaW5nKCkKLSAgICAgICAgc3lz
LnN0ZGVyci53cml0ZSgid3JpdGluZyBweXRlc3RkZWJ1ZyBpbmZvcm1hdGlvbiB0byAlc1xuIiAl
IHBhdGgpCi0KLSAgICAgICAgZGVmIHVuc2V0X3RyYWNpbmcoKToKLSAgICAgICAgICAgIGRlYnVn
ZmlsZS5jbG9zZSgpCi0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3cm90ZSBweXRlc3Rk
ZWJ1ZyBpbmZvcm1hdGlvbiB0byAlc1xuIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlYnVnZmlsZS5uYW1lKQotICAgICAgICAgICAgY29uZmlnLnRyYWNlLnJvb3Quc2V0d3JpdGVy
KE5vbmUpCi0gICAgICAgICAgICB1bmRvX3RyYWNpbmcoKQotCi0gICAgICAgIGNvbmZpZy5hZGRf
Y2xlYW51cCh1bnNldF90cmFjaW5nKQotCi0KLWRlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZp
Zyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi52ZXJzaW9uOgotICAgICAgICBwID0gcHkucGF0aC5s
b2NhbChweXRlc3QuX19maWxlX18pCi0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMgaXMg
cHl0ZXN0IHZlcnNpb24gJXMsIGltcG9ydGVkIGZyb20gJXNcbiIgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgIChweXRlc3QuX192ZXJzaW9uX18sIHApKQotICAgICAgICBwbHVnaW5pbmZvID0g
Z2V0cGx1Z2ludmVyc2lvbmluZm8oY29uZmlnKQotICAgICAgICBpZiBwbHVnaW5pbmZvOgotICAg
ICAgICAgICAgZm9yIGxpbmUgaW4gcGx1Z2luaW5mbzoKLSAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKGxpbmUgKyAiXG4iKQotICAgICAgICByZXR1cm4gMAotICAgIGVsaWYgY29uZmln
Lm9wdGlvbi5oZWxwOgotICAgICAgICBjb25maWcuX2RvX2NvbmZpZ3VyZSgpCi0gICAgICAgIHNo
b3doZWxwKGNvbmZpZykKLSAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQotICAg
ICAgICByZXR1cm4gMAotCi0KLWRlZiBzaG93aGVscChjb25maWcpOgotICAgIHJlcG9ydGVyID0g
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigndGVybWluYWxyZXBvcnRlcicpCi0gICAg
dHcgPSByZXBvcnRlci5fdHcKLSAgICB0dy53cml0ZShjb25maWcuX3BhcnNlci5vcHRwYXJzZXIu
Zm9ybWF0X2hlbHAoKSkKLSAgICB0dy5saW5lKCkKLSAgICB0dy5saW5lKCkKLSAgICB0dy5saW5l
KCJbcHl0ZXN0XSBpbmktb3B0aW9ucyBpbiB0aGUgZmlyc3QgIgotICAgICAgICAgICAgInB5dGVz
dC5pbml8dG94LmluaXxzZXR1cC5jZmcgZmlsZSBmb3VuZDoiKQotICAgIHR3LmxpbmUoKQotCi0g
ICAgZm9yIG5hbWUgaW4gY29uZmlnLl9wYXJzZXIuX2luaW5hbWVzOgotICAgICAgICBoZWxwLCB0
eXBlLCBkZWZhdWx0ID0gY29uZmlnLl9wYXJzZXIuX2luaWRpY3RbbmFtZV0KLSAgICAgICAgaWYg
dHlwZSBpcyBOb25lOgotICAgICAgICAgICAgdHlwZSA9ICJzdHJpbmciCi0gICAgICAgIHNwZWMg
PSAiJXMgKCVzKSIgJSAobmFtZSwgdHlwZSkKLSAgICAgICAgbGluZSA9ICIgICUtMjRzICVzIiAl
IChzcGVjLCBoZWxwKQotICAgICAgICB0dy5saW5lKGxpbmVbOnR3LmZ1bGx3aWR0aF0pCi0KLSAg
ICB0dy5saW5lKCkKLSAgICB0dy5saW5lKCJlbnZpcm9ubWVudCB2YXJpYWJsZXM6IikKLSAgICB2
YXJzID0gWwotICAgICAgICAoIlBZVEVTVF9BRERPUFRTIiwgImV4dHJhIGNvbW1hbmQgbGluZSBv
cHRpb25zIiksCi0gICAgICAgICgiUFlURVNUX1BMVUdJTlMiLCAiY29tbWEtc2VwYXJhdGVkIHBs
dWdpbnMgdG8gbG9hZCBkdXJpbmcgc3RhcnR1cCIpLAotICAgICAgICAoIlBZVEVTVF9ERUJVRyIs
ICJzZXQgdG8gZW5hYmxlIGRlYnVnIHRyYWNpbmcgb2YgcHl0ZXN0J3MgaW50ZXJuYWxzIikKLSAg
ICBdCi0gICAgZm9yIG5hbWUsIGhlbHAgaW4gdmFyczoKLSAgICAgICAgdHcubGluZSgiICAlLTI0
cyAlcyIgJSAobmFtZSwgaGVscCkpCi0gICAgdHcubGluZSgpCi0gICAgdHcubGluZSgpCi0KLSAg
ICB0dy5saW5lKCJ0byBzZWUgYXZhaWxhYmxlIG1hcmtlcnMgdHlwZTogcHl0ZXN0IC0tbWFya2Vy
cyIpCi0gICAgdHcubGluZSgidG8gc2VlIGF2YWlsYWJsZSBmaXh0dXJlcyB0eXBlOiBweXRlc3Qg
LS1maXh0dXJlcyIpCi0gICAgdHcubGluZSgiKHNob3duIGFjY29yZGluZyB0byBzcGVjaWZpZWQg
ZmlsZV9vcl9kaXIgb3IgY3VycmVudCBkaXIgIgotICAgICAgICAgICAgImlmIG5vdCBzcGVjaWZp
ZWQpIikKLQotICAgIGZvciB3YXJuaW5ncmVwb3J0IGluIHJlcG9ydGVyLnN0YXRzLmdldCgnd2Fy
bmluZ3MnLCBbXSk6Ci0gICAgICAgIHR3LmxpbmUoIndhcm5pbmcgOiAiICsgd2FybmluZ3JlcG9y
dC5tZXNzYWdlLCByZWQ9VHJ1ZSkKLSAgICByZXR1cm4KLQotCi1jb25mdGVzdF9vcHRpb25zID0g
WwotICAgICgncHl0ZXN0X3BsdWdpbnMnLCAnbGlzdCBvZiBwbHVnaW4gbmFtZXMgdG8gbG9hZCcp
LAotXQotCi0KLWRlZiBnZXRwbHVnaW52ZXJzaW9uaW5mbyhjb25maWcpOgotICAgIGxpbmVzID0g
W10KLSAgICBwbHVnaW5pbmZvID0gY29uZmlnLnBsdWdpbm1hbmFnZXIubGlzdF9wbHVnaW5fZGlz
dGluZm8oKQotICAgIGlmIHBsdWdpbmluZm86Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgic2V0dXB0
b29scyByZWdpc3RlcmVkIHBsdWdpbnM6IikKLSAgICAgICAgZm9yIHBsdWdpbiwgZGlzdCBpbiBw
bHVnaW5pbmZvOgotICAgICAgICAgICAgbG9jID0gZ2V0YXR0cihwbHVnaW4sICdfX2ZpbGVfXycs
IHJlcHIocGx1Z2luKSkKLSAgICAgICAgICAgIGNvbnRlbnQgPSAiJXMtJXMgYXQgJXMiICUgKGRp
c3QucHJvamVjdF9uYW1lLCBkaXN0LnZlcnNpb24sIGxvYykKLSAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiICAiICsgY29udGVudCkKLSAgICByZXR1cm4gbGluZXMKLQotCi1kZWYgcHl0ZXN0X3Jl
cG9ydF9oZWFkZXIoY29uZmlnKToKLSAgICBsaW5lcyA9IFtdCi0gICAgaWYgY29uZmlnLm9wdGlv
bi5kZWJ1ZyBvciBjb25maWcub3B0aW9uLnRyYWNlY29uZmlnOgotICAgICAgICBsaW5lcy5hcHBl
bmQoInVzaW5nOiBweXRlc3QtJXMgcHlsaWItJXMiICUKLSAgICAgICAgICAgICAgICAgICAgIChw
eXRlc3QuX192ZXJzaW9uX18sIHB5Ll9fdmVyc2lvbl9fKSkKLQotICAgICAgICB2ZXJpbmZvID0g
Z2V0cGx1Z2ludmVyc2lvbmluZm8oY29uZmlnKQotICAgICAgICBpZiB2ZXJpbmZvOgotICAgICAg
ICAgICAgbGluZXMuZXh0ZW5kKHZlcmluZm8pCi0KLSAgICBpZiBjb25maWcub3B0aW9uLnRyYWNl
Y29uZmlnOgotICAgICAgICBsaW5lcy5hcHBlbmQoImFjdGl2ZSBwbHVnaW5zOiIpCi0gICAgICAg
IGl0ZW1zID0gY29uZmlnLnBsdWdpbm1hbmFnZXIubGlzdF9uYW1lX3BsdWdpbigpCi0gICAgICAg
IGZvciBuYW1lLCBwbHVnaW4gaW4gaXRlbXM6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKHBsdWdp
biwgJ19fZmlsZV9fJyk6Ci0gICAgICAgICAgICAgICAgciA9IHBsdWdpbi5fX2ZpbGVfXwotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByID0gcmVwcihwbHVnaW4pCi0gICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICAlLTIwczogJXMiICUgKG5hbWUsIHIpKQotICAgIHJldHVy
biBsaW5lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ob29rc3BlYy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ0MGJmOTlkMzc1YWE2Yzc1ZWU3NDNmZTY5ZWNmNzk3MDIyMzIyY2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9o
b29rc3BlYy5weQorKysgL2Rldi9udWxsCkBAIC0xLDQyMyArMCwwIEBACi0iIiIgaG9vayBzcGVj
aWZpY2F0aW9ucyBmb3IgcHl0ZXN0IHBsdWdpbnMsIGludm9rZWQgZnJvbSBtYWluLnB5IGFuZCBi
dWlsdGluIHBsdWdpbnMuICAiIiIKLQotZnJvbSBwbHVnZ3kgaW1wb3J0IEhvb2tzcGVjTWFya2Vy
Ci0KLWhvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoInB5dGVzdCIpCi0KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBJbml0aWFsaXphdGlvbiBob29rcyBjYWxsZWQgZm9yIGV2ZXJ5IHBsdWdpbgotIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0
X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpOgotICAgICIiImNhbGxlZCBhdCBwbHVnaW4gcmVnaXN0
cmF0aW9uIHRpbWUgdG8gYWxsb3cgYWRkaW5nIG5ldyBob29rcyB2aWEgYSBjYWxsIHRvCi0gICAg
cGx1Z2lubWFuYWdlci5hZGRfaG9va3NwZWNzKG1vZHVsZV9vcl9jbGFzcywgcHJlZml4KS4iIiIK
LQotCi1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfbmFtZXNwYWNlKCk6Ci0g
ICAgIiIiCi0gICAgREVQUkVDQVRFRDogdGhpcyBob29rIGNhdXNlcyBkaXJlY3QgbW9ua2V5cGF0
Y2hpbmcgb24gcHl0ZXN0LCBpdHMgdXNlIGlzIHN0cm9uZ2x5IGRpc2NvdXJhZ2VkCi0gICAgcmV0
dXJuIGRpY3Qgb2YgbmFtZS0+b2JqZWN0IHRvIGJlIG1hZGUgZ2xvYmFsbHkgYXZhaWxhYmxlIGlu
Ci0gICAgdGhlIHB5dGVzdCBuYW1lc3BhY2UuICBUaGlzIGhvb2sgaXMgY2FsbGVkIGF0IHBsdWdp
biByZWdpc3RyYXRpb24KLSAgICB0aW1lLgotICAgICIiIgotCi0KLUBob29rc3BlYyhoaXN0b3Jp
Yz1UcnVlKQotZGVmIHB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZChwbHVnaW4sIG1hbmFnZXIpOgot
ICAgICIiIiBhIG5ldyBweXRlc3QgcGx1Z2luIGdvdCByZWdpc3RlcmVkLiAiIiIKLQotCi1AaG9v
a3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAg
IiIicmVnaXN0ZXIgYXJncGFyc2Utc3R5bGUgb3B0aW9ucyBhbmQgaW5pLXN0eWxlIGNvbmZpZyB2
YWx1ZXMsCi0gICAgY2FsbGVkIG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRlc3QgcnVuLgot
Ci0gICAgLi4gbm90ZTo6Ci0KLSAgICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVt
ZW50ZWQgb25seSBpbiBwbHVnaW5zIG9yIGBgY29uZnRlc3QucHlgYAotICAgICAgICBmaWxlcyBz
aXR1YXRlZCBhdCB0aGUgdGVzdHMgcm9vdCBkaXJlY3RvcnkgZHVlIHRvIGhvdyBweXRlc3QKLSAg
ICAgICAgOnJlZjpgZGlzY292ZXJzIHBsdWdpbnMgZHVyaW5nIHN0YXJ0dXAgPHBsdWdpbm9yZGVy
PmAuCi0KLSAgICA6YXJnIHBhcnNlcjogVG8gYWRkIGNvbW1hbmQgbGluZSBvcHRpb25zLCBjYWxs
Ci0gICAgICAgIDpweTpmdW5jOmBwYXJzZXIuYWRkb3B0aW9uKC4uLikgPF9weXRlc3QuY29uZmln
LlBhcnNlci5hZGRvcHRpb24+YC4KLSAgICAgICAgVG8gYWRkIGluaS1maWxlIHZhbHVlcyBjYWxs
IDpweTpmdW5jOmBwYXJzZXIuYWRkaW5pKC4uLikKLSAgICAgICAgPF9weXRlc3QuY29uZmlnLlBh
cnNlci5hZGRpbmk+YC4KLQotICAgIE9wdGlvbnMgY2FuIGxhdGVyIGJlIGFjY2Vzc2VkIHRocm91
Z2ggdGhlCi0gICAgOnB5OmNsYXNzOmBjb25maWcgPF9weXRlc3QuY29uZmlnLkNvbmZpZz5gIG9i
amVjdCwgcmVzcGVjdGl2ZWx5OgotCi0gICAgLSA6cHk6ZnVuYzpgY29uZmlnLmdldG9wdGlvbihu
YW1lKSA8X3B5dGVzdC5jb25maWcuQ29uZmlnLmdldG9wdGlvbj5gIHRvCi0gICAgICByZXRyaWV2
ZSB0aGUgdmFsdWUgb2YgYSBjb21tYW5kIGxpbmUgb3B0aW9uLgotCi0gICAgLSA6cHk6ZnVuYzpg
Y29uZmlnLmdldGluaShuYW1lKSA8X3B5dGVzdC5jb25maWcuQ29uZmlnLmdldGluaT5gIHRvIHJl
dHJpZXZlCi0gICAgICBhIHZhbHVlIHJlYWQgZnJvbSBhbiBpbmktc3R5bGUgZmlsZS4KLQotICAg
IFRoZSBjb25maWcgb2JqZWN0IGlzIHBhc3NlZCBhcm91bmQgb24gbWFueSBpbnRlcm5hbCBvYmpl
Y3RzIHZpYSB0aGUgYGAuY29uZmlnYGAKLSAgICBhdHRyaWJ1dGUgb3IgY2FuIGJlIHJldHJpZXZl
ZCBhcyB0aGUgYGBweXRlc3Rjb25maWdgYCBmaXh0dXJlIG9yIGFjY2Vzc2VkCi0gICAgdmlhIChk
ZXByZWNhdGVkKSBgYHB5dGVzdC5jb25maWdgYC4KLSAgICAiIiIKLQotCi1AaG9va3NwZWMoaGlz
dG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgIiIiCi0gICAg
QWxsb3dzIHBsdWdpbnMgYW5kIGNvbmZ0ZXN0IGZpbGVzIHRvIHBlcmZvcm0gaW5pdGlhbCBjb25m
aWd1cmF0aW9uLgotCi0gICAgVGhpcyBob29rIGlzIGNhbGxlZCBmb3IgZXZlcnkgcGx1Z2luIGFu
ZCBpbml0aWFsIGNvbmZ0ZXN0IGZpbGUKLSAgICBhZnRlciBjb21tYW5kIGxpbmUgb3B0aW9ucyBo
YXZlIGJlZW4gcGFyc2VkLgotCi0gICAgQWZ0ZXIgdGhhdCwgdGhlIGhvb2sgaXMgY2FsbGVkIGZv
ciBvdGhlciBjb25mdGVzdCBmaWxlcyBhcyB0aGV5IGFyZQotICAgIGltcG9ydGVkLgotCi0gICAg
OmFyZyBjb25maWc6IHB5dGVzdCBjb25maWcgb2JqZWN0Ci0gICAgOnR5cGUgY29uZmlnOiBfcHl0
ZXN0LmNvbmZpZy5Db25maWcKLSAgICAiIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEJvb3Rz
dHJhcHBpbmcgaG9va3MgY2FsbGVkIGZvciBwbHVnaW5zIHJlZ2lzdGVyZWQgZWFybHkgZW5vdWdo
OgotIyBpbnRlcm5hbCBhbmQgM3JkIHBhcnR5IHBsdWdpbnMgYXMgd2VsbCBhcyBkaXJlY3RseQot
IyBkaXNjb3ZlcmFibGUgY29uZnRlc3QucHkgbG9jYWwgcGx1Z2lucy4KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9jbWRsaW5l
X3BhcnNlKHBsdWdpbm1hbmFnZXIsIGFyZ3MpOgotICAgICIiInJldHVybiBpbml0aWFsaXplZCBj
b25maWcgb2JqZWN0LCBwYXJzaW5nIHRoZSBzcGVjaWZpZWQgYXJncy4KLQotICAgIFN0b3BzIGF0
IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1k
ZWYgcHl0ZXN0X2NtZGxpbmVfcHJlcGFyc2UoY29uZmlnLCBhcmdzKToKLSAgICAiIiIoZGVwcmVj
YXRlZCkgbW9kaWZ5IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYmVmb3JlIG9wdGlvbiBwYXJzaW5n
LiAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGlu
ZV9tYWluKGNvbmZpZyk6Ci0gICAgIiIiIGNhbGxlZCBmb3IgcGVyZm9ybWluZyB0aGUgbWFpbiBj
b21tYW5kIGxpbmUgYWN0aW9uLiBUaGUgZGVmYXVsdAotICAgIGltcGxlbWVudGF0aW9uIHdpbGwg
aW52b2tlIHRoZSBjb25maWd1cmUgaG9va3MgYW5kIHJ1bnRlc3RfbWFpbmxvb3AuCi0KLSAgICBT
dG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIi
Ci0KLQotZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2NvbmZpZywgcGFy
c2VyLCBhcmdzKToKLSAgICAiIiIgaW1wbGVtZW50cyB0aGUgbG9hZGluZyBvZiBpbml0aWFsIGNv
bmZ0ZXN0IGZpbGVzIGFoZWFkCi0gICAgb2YgY29tbWFuZCBsaW5lIG9wdGlvbiBwYXJzaW5nLiAi
IiIKLQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgY29sbGVjdGlvbiBob29rcwotIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9jb2xs
ZWN0aW9uKHNlc3Npb24pOgotICAgICIiIiBwZXJmb3JtIHRoZSBjb2xsZWN0aW9uIHByb3RvY29s
IGZvciB0aGUgZ2l2ZW4gc2Vzc2lvbi4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJl
c3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3Rp
b25fbW9kaWZ5aXRlbXMoc2Vzc2lvbiwgY29uZmlnLCBpdGVtcyk6Ci0gICAgIiIiIGNhbGxlZCBh
ZnRlciBjb2xsZWN0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZCwgbWF5IGZpbHRlciBvciByZS1vcmRl
cgotICAgIHRoZSBpdGVtcyBpbi1wbGFjZS4iIiIKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3Rpb25f
ZmluaXNoKHNlc3Npb24pOgotICAgICIiIiBjYWxsZWQgYWZ0ZXIgY29sbGVjdGlvbiBoYXMgYmVl
biBwZXJmb3JtZWQgYW5kIG1vZGlmaWVkLiAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9
VHJ1ZSkKLWRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToKLSAgICAiIiIg
cmV0dXJuIFRydWUgdG8gcHJldmVudCBjb25zaWRlcmluZyB0aGlzIHBhdGggZm9yIGNvbGxlY3Rp
b24uCi0gICAgVGhpcyBob29rIGlzIGNvbnN1bHRlZCBmb3IgYWxsIGZpbGVzIGFuZCBkaXJlY3Rv
cmllcyBwcmlvciB0byBjYWxsaW5nCi0gICAgbW9yZSBzcGVjaWZpYyBob29rcy4KLQotICAgIFN0
b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YAotICAg
ICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9jb2xsZWN0
X2RpcmVjdG9yeShwYXRoLCBwYXJlbnQpOgotICAgICIiIiBjYWxsZWQgYmVmb3JlIHRyYXZlcnNp
bmcgYSBkaXJlY3RvcnkgZm9yIGNvbGxlY3Rpb24gZmlsZXMuCi0KLSAgICBTdG9wcyBhdCBmaXJz
dCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5
dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKLSAgICAiIiIgcmV0dXJuIGNvbGxlY3Rp
b24gTm9kZSBvciBOb25lIGZvciB0aGUgZ2l2ZW4gcGF0aC4gQW55IG5ldyBub2RlCi0gICAgbmVl
ZHMgdG8gaGF2ZSB0aGUgc3BlY2lmaWVkIGBgcGFyZW50YGAgYXMgYSBwYXJlbnQuIiIiCi0KLSMg
bG9nZ2luZyBob29rcyBmb3IgY29sbGVjdGlvbgotCi0KLWRlZiBweXRlc3RfY29sbGVjdHN0YXJ0
KGNvbGxlY3Rvcik6Ci0gICAgIiIiIGNvbGxlY3RvciBzdGFydHMgY29sbGVjdGluZy4gIiIiCi0K
LQotZGVmIHB5dGVzdF9pdGVtY29sbGVjdGVkKGl0ZW0pOgotICAgICIiIiB3ZSBqdXN0IGNvbGxl
Y3RlZCBhIHRlc3QgaXRlbS4gIiIiCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9y
dCk6Ci0gICAgIiIiIGNvbGxlY3RvciBmaW5pc2hlZCBjb2xsZWN0aW5nLiAiIiIKLQotCi1kZWYg
cHl0ZXN0X2Rlc2VsZWN0ZWQoaXRlbXMpOgotICAgICIiIiBjYWxsZWQgZm9yIHRlc3QgaXRlbXMg
ZGVzZWxlY3RlZCBieSBrZXl3b3JkLiAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKLWRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3IpOgotICAgICIiIiBw
ZXJmb3JtIGBgY29sbGVjdG9yLmNvbGxlY3QoKWBgIGFuZCByZXR1cm4gYSBDb2xsZWN0UmVwb3J0
LgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3Ry
ZXN1bHRgICIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUHl0aG9uIHRlc3QgZnVuY3Rpb24g
cmVsYXRlZCBob29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVz
dWx0PVRydWUpCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6
Ci0gICAgIiIiIHJldHVybiBhIE1vZHVsZSBjb2xsZWN0b3Igb3IgTm9uZSBmb3IgdGhlIGdpdmVu
IHBhdGguCi0gICAgVGhpcyBob29rIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIG1hdGNoaW5nIHRl
c3QgbW9kdWxlIHBhdGguCi0gICAgVGhlIHB5dGVzdF9jb2xsZWN0X2ZpbGUgaG9vayBuZWVkcyB0
byBiZSB1c2VkIGlmIHlvdSB3YW50IHRvCi0gICAgY3JlYXRlIHRlc3QgbW9kdWxlcyBmb3IgZmls
ZXMgdGhhdCBkbyBub3QgbWF0Y2ggYXMgYSB0ZXN0IG1vZHVsZS4KLQotICAgIFN0b3BzIGF0IGZp
cnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1AaG9v
a3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNv
bGxlY3RvciwgbmFtZSwgb2JqKToKLSAgICAiIiIgcmV0dXJuIGN1c3RvbSBpdGVtL2NvbGxlY3Rv
ciBmb3IgYSBweXRob24gb2JqZWN0IGluIGEgbW9kdWxlLCBvciBOb25lLgotCi0gICAgU3RvcHMg
YXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0K
LUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1
bmNpdGVtKToKLSAgICAiIiIgY2FsbCB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24uCi0KLSAgICBT
dG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIi
Ci0KLQotZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0gICAgIiIiIGdlbmVy
YXRlIChtdWx0aXBsZSkgcGFyYW1ldHJpemVkIGNhbGxzIHRvIGEgdGVzdCBmdW5jdGlvbi4iIiIK
LQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfbWFrZV9wYXJhbWV0
cml6ZV9pZChjb25maWcsIHZhbCwgYXJnbmFtZSk6Ci0gICAgIiIiUmV0dXJuIGEgdXNlci1mcmll
bmRseSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGBgdmFsYGAgdGhhdCB3aWxs
IGJlIHVzZWQKLSAgICBieSBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUgY2FsbHMuIFJldHVybiBO
b25lIGlmIHRoZSBob29rIGRvZXNuJ3Qga25vdyBhYm91dCBgYHZhbGBgLgotICAgIFRoZSBwYXJh
bWV0ZXIgbmFtZSBpcyBhdmFpbGFibGUgYXMgYGBhcmduYW1lYGAsIGlmIHJlcXVpcmVkLgotCi0g
ICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRg
ICIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgZ2VuZXJpYyBydW50ZXN0IHJlbGF0ZWQgaG9v
a3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQot
ZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uKToKLSAgICAiIiIgY2FsbGVkIGZvciBwZXJm
b3JtaW5nIHRoZSBtYWluIHJ1bnRlc3QgbG9vcAotICAgIChhZnRlciBjb2xsZWN0aW9uIGZpbmlz
aGVkKS4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZp
cnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2l0ZW1zdGFydChpdGVtLCBub2RlKToKLSAg
ICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBweXRlc3RfcnVudGVzdF9sb2dzdGFydCkuICIiIgotCi0K
LUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29s
KGl0ZW0sIG5leHRpdGVtKToKLSAgICAiIiIgaW1wbGVtZW50cyB0aGUgcnVudGVzdF9zZXR1cC9j
YWxsL3RlYXJkb3duIHByb3RvY29sIGZvcgotICAgIHRoZSBnaXZlbiB0ZXN0IGl0ZW0sIGluY2x1
ZGluZyBjYXB0dXJpbmcgZXhjZXB0aW9ucyBhbmQgY2FsbGluZwotICAgIHJlcG9ydGluZyBob29r
cy4KLQotICAgIDphcmcgaXRlbTogdGVzdCBpdGVtIGZvciB3aGljaCB0aGUgcnVudGVzdCBwcm90
b2NvbCBpcyBwZXJmb3JtZWQuCi0KLSAgICA6YXJnIG5leHRpdGVtOiB0aGUgc2NoZWR1bGVkLXRv
LWJlLW5leHQgdGVzdCBpdGVtIChvciBOb25lIGlmIHRoaXMKLSAgICAgICAgICAgICAgICAgICBp
cyB0aGUgZW5kIG15IGZyaWVuZCkuICBUaGlzIGFyZ3VtZW50IGlzIHBhc3NlZCBvbiB0bwotICAg
ICAgICAgICAgICAgICAgIDpweTpmdW5jOmBweXRlc3RfcnVudGVzdF90ZWFyZG93bmAuCi0KLSAg
ICA6cmV0dXJuIGJvb2xlYW46IFRydWUgaWYgbm8gZnVydGhlciBob29rIGltcGxlbWVudGF0aW9u
cyBzaG91bGQgYmUgaW52b2tlZC4KLQotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVz
dWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9s
b2dzdGFydChub2RlaWQsIGxvY2F0aW9uKToKLSAgICAiIiIgc2lnbmFsIHRoZSBzdGFydCBvZiBy
dW5uaW5nIGEgc2luZ2xlIHRlc3QgaXRlbS4gIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3Nl
dHVwKGl0ZW0pOgotICAgICIiIiBjYWxsZWQgYmVmb3JlIGBgcHl0ZXN0X3J1bnRlc3RfY2FsbChp
dGVtKWBgLiAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChpdGVtKToKLSAgICAiIiIg
Y2FsbGVkIHRvIGV4ZWN1dGUgdGhlIHRlc3QgYGBpdGVtYGAuICIiIgotCi0KLWRlZiBweXRlc3Rf
cnVudGVzdF90ZWFyZG93bihpdGVtLCBuZXh0aXRlbSk6Ci0gICAgIiIiIGNhbGxlZCBhZnRlciBg
YHB5dGVzdF9ydW50ZXN0X2NhbGxgYC4KLQotICAgIDphcmcgbmV4dGl0ZW06IHRoZSBzY2hlZHVs
ZWQtdG8tYmUtbmV4dCB0ZXN0IGl0ZW0gKE5vbmUgaWYgbm8gZnVydGhlcgotICAgICAgICAgICAg
ICAgICAgIHRlc3QgaXRlbSBpcyBzY2hlZHVsZWQpLiAgVGhpcyBhcmd1bWVudCBjYW4gYmUgdXNl
ZCB0bwotICAgICAgICAgICAgICAgICAgIHBlcmZvcm0gZXhhY3QgdGVhcmRvd25zLCBpLmUuIGNh
bGxpbmcganVzdCBlbm91Z2ggZmluYWxpemVycwotICAgICAgICAgICAgICAgICAgIHNvIHRoYXQg
bmV4dGl0ZW0gb25seSBuZWVkcyB0byBjYWxsIHNldHVwLWZ1bmN0aW9ucy4KLSAgICAiIiIKLQot
Ci1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVw
b3J0KGl0ZW0sIGNhbGwpOgotICAgICIiIiByZXR1cm4gYSA6cHk6Y2xhc3M6YF9weXRlc3QucnVu
bmVyLlRlc3RSZXBvcnRgIG9iamVjdAotICAgIGZvciB0aGUgZ2l2ZW4gOnB5OmNsYXNzOmBweXRl
c3QuSXRlbSA8X3B5dGVzdC5tYWluLkl0ZW0+YCBhbmQKLSAgICA6cHk6Y2xhc3M6YF9weXRlc3Qu
cnVubmVyLkNhbGxJbmZvYC4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwg
c2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0KHJlcG9ydCk6Ci0gICAgIiIiIHByb2Nlc3MgYSB0ZXN0IHNldHVwL2NhbGwvdGVhcmRvd24g
cmVwb3J0IHJlbGF0aW5nIHRvCi0gICAgdGhlIHJlc3BlY3RpdmUgcGhhc2Ugb2YgZXhlY3V0aW5n
IGEgdGVzdC4gIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBGaXh0dXJlIHJlbGF0ZWQgaG9v
a3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQot
ZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgotICAgICIiIiBw
ZXJmb3JtcyBmaXh0dXJlIHNldHVwIGV4ZWN1dGlvbi4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5v
bi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0
X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgIiIiIGNh
bGxlZCBhZnRlciBmaXh0dXJlIHRlYXJkb3duLCBidXQgYmVmb3JlIHRoZSBjYWNoZSBpcyBjbGVh
cmVkIHNvCi0gICAgdGhlIGZpeHR1cmUgcmVzdWx0IGNhY2hlIGBgZml4dHVyZWRlZi5jYWNoZWRf
cmVzdWx0YGAgY2FuCi0gICAgc3RpbGwgYmUgYWNjZXNzZWQuIiIiCi0KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyB0ZXN0IHNlc3Npb24gcmVsYXRlZCBob29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LQotZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbik6Ci0gICAgIiIiIGJlZm9yZSBzZXNz
aW9uLm1haW4oKSBpcyBjYWxsZWQuICIiIgotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChz
ZXNzaW9uLCBleGl0c3RhdHVzKToKLSAgICAiIiIgd2hvbGUgdGVzdCBydW4gZmluaXNoZXMuICIi
IgotCi0KLWRlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKLSAgICAiIiIgY2FsbGVkIGJl
Zm9yZSB0ZXN0IHByb2Nlc3MgaXMgZXhpdGVkLiAgIiIiCi0KLQotIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0jIGhvb2tzIGZvciBjdXN0b21pemluZyB0aGUgYXNzZXJ0IG1ldGhvZHMKLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi1kZWYgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0
LCByaWdodCk6Ci0gICAgIiIicmV0dXJuIGV4cGxhbmF0aW9uIGZvciBjb21wYXJpc29ucyBpbiBm
YWlsaW5nIGFzc2VydCBleHByZXNzaW9ucy4KLQotICAgIFJldHVybiBOb25lIGZvciBubyBjdXN0
b20gZXhwbGFuYXRpb24sIG90aGVyd2lzZSByZXR1cm4gYSBsaXN0Ci0gICAgb2Ygc3RyaW5ncy4g
IFRoZSBzdHJpbmdzIHdpbGwgYmUgam9pbmVkIGJ5IG5ld2xpbmVzIGJ1dCBhbnkgbmV3bGluZXMK
LSAgICAqaW4qIGEgc3RyaW5nIHdpbGwgYmUgZXNjYXBlZC4gIE5vdGUgdGhhdCBhbGwgYnV0IHRo
ZSBmaXJzdCBsaW5lIHdpbGwKLSAgICBiZSBpbmRlbnRlZCBzbGlnaHRseSwgdGhlIGludGVudGlv
biBpcyBmb3IgdGhlIGZpcnN0IGxpbmUgdG8gYmUgYSBzdW1tYXJ5LgotICAgICIiIgotCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgaG9va3MgZm9yIGluZmx1ZW5jaW5nIHJlcG9ydGluZyAoaW52b2tl
ZCBmcm9tIF9weXRlc3RfdGVybWluYWwpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1kZWYgcHl0
ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnLCBzdGFydGRpcik6Ci0gICAgIiIiIHJldHVybiBhIHN0
cmluZyBvciBsaXN0IG9mIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVkIGFzIGhlYWRlciBpbmZvIGZv
ciB0ZXJtaW5hbCByZXBvcnRpbmcuCi0KLSAgICA6cGFyYW0gY29uZmlnOiB0aGUgcHl0ZXN0IGNv
bmZpZyBvYmplY3QuCi0gICAgOnBhcmFtIHN0YXJ0ZGlyOiBweS5wYXRoIG9iamVjdCB3aXRoIHRo
ZSBzdGFydGluZyBkaXIKLQotICAgIC4uIG5vdGU6OgotCi0gICAgICAgIFRoaXMgZnVuY3Rpb24g
c2hvdWxkIGJlIGltcGxlbWVudGVkIG9ubHkgaW4gcGx1Z2lucyBvciBgYGNvbmZ0ZXN0LnB5YGAK
LSAgICAgICAgZmlsZXMgc2l0dWF0ZWQgYXQgdGhlIHRlc3RzIHJvb3QgZGlyZWN0b3J5IGR1ZSB0
byBob3cgcHl0ZXN0Ci0gICAgICAgIDpyZWY6YGRpc2NvdmVycyBwbHVnaW5zIGR1cmluZyBzdGFy
dHVwIDxwbHVnaW5vcmRlcj5gLgotICAgICIiIgotCi0KLWRlZiBweXRlc3RfcmVwb3J0X2NvbGxl
Y3Rpb25maW5pc2goY29uZmlnLCBzdGFydGRpciwgaXRlbXMpOgotICAgICIiIgotICAgIC4uIHZl
cnNpb25hZGRlZDo6IDMuMgotCi0gICAgcmV0dXJuIGEgc3RyaW5nIG9yIGxpc3Qgb2Ygc3RyaW5n
cyB0byBiZSBkaXNwbGF5ZWQgYWZ0ZXIgY29sbGVjdGlvbiBoYXMgZmluaXNoZWQgc3VjY2Vzc2Z1
bGx5LgotCi0gICAgVGhpcyBzdHJpbmdzIHdpbGwgYmUgZGlzcGxheWVkIGFmdGVyIHRoZSBzdGFu
ZGFyZCAiY29sbGVjdGVkIFggaXRlbXMiIG1lc3NhZ2UuCi0KLSAgICA6cGFyYW0gY29uZmlnOiB0
aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QuCi0gICAgOnBhcmFtIHN0YXJ0ZGlyOiBweS5wYXRoIG9i
amVjdCB3aXRoIHRoZSBzdGFydGluZyBkaXIKLSAgICA6cGFyYW0gaXRlbXM6IGxpc3Qgb2YgcHl0
ZXN0IGl0ZW1zIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGV4ZWN1dGVkOyB0aGlzIGxpc3Qgc2hvdWxk
IG5vdCBiZSBtb2RpZmllZC4KLSAgICAiIiIKLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1
ZSkKLWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKLSAgICAiIiIgcmV0dXJu
IHJlc3VsdC1jYXRlZ29yeSwgc2hvcnRsZXR0ZXIgYW5kIHZlcmJvc2Ugd29yZCBmb3IgcmVwb3J0
aW5nLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmly
c3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJl
cG9ydGVyLCBleGl0c3RhdHVzKToKLSAgICAiIiIgYWRkIGFkZGl0aW9uYWwgc2VjdGlvbiBpbiB0
ZXJtaW5hbCBzdW1tYXJ5IHJlcG9ydGluZy4gICIiIgotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1U
cnVlKQotZGVmIHB5dGVzdF9sb2d3YXJuaW5nKG1lc3NhZ2UsIGNvZGUsIG5vZGVpZCwgZnNsb2Nh
dGlvbik6Ci0gICAgIiIiIHByb2Nlc3MgYSB3YXJuaW5nIHNwZWNpZmllZCBieSBhIG1lc3NhZ2Us
IGEgY29kZSBzdHJpbmcsCi0gICAgYSBub2RlaWQgYW5kIGZzbG9jYXRpb24gKGJvdGggb2Ygd2hp
Y2ggbWF5IGJlIE5vbmUKLSAgICBpZiB0aGUgd2FybmluZyBpcyBub3QgdGllZCB0byBhIHBhcnRp
bGFyIG5vZGUvbG9jYXRpb24pLiIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgZG9jdGVzdCBo
b29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUp
Ci1kZWYgcHl0ZXN0X2RvY3Rlc3RfcHJlcGFyZV9jb250ZW50KGNvbnRlbnQpOgotICAgICIiIiBy
ZXR1cm4gcHJvY2Vzc2VkIGNvbnRlbnQgZm9yIGEgZ2l2ZW4gZG9jdGVzdAotCi0gICAgU3RvcHMg
YXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0j
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSMgZXJyb3IgaGFuZGxpbmcgYW5kIGludGVybmFsIGRlYnVnZ2lu
ZyBob29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9y
KGV4Y3JlcHIsIGV4Y2luZm8pOgotICAgICIiIiBjYWxsZWQgZm9yIGludGVybmFsIGVycm9ycy4g
IiIiCi0KLQotZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQoZXhjaW5mbyk6Ci0gICAgIiIi
IGNhbGxlZCBmb3Iga2V5Ym9hcmQgaW50ZXJydXB0LiAiIiIKLQotCi1kZWYgcHl0ZXN0X2V4Y2Vw
dGlvbl9pbnRlcmFjdChub2RlLCBjYWxsLCByZXBvcnQpOgotICAgICIiImNhbGxlZCB3aGVuIGFu
IGV4Y2VwdGlvbiB3YXMgcmFpc2VkIHdoaWNoIGNhbiBwb3RlbnRpYWxseSBiZQotICAgIGludGVy
YWN0aXZlbHkgaGFuZGxlZC4KLQotICAgIFRoaXMgaG9vayBpcyBvbmx5IGNhbGxlZCBpZiBhbiBl
eGNlcHRpb24gd2FzIHJhaXNlZAotICAgIHRoYXQgaXMgbm90IGFuIGludGVybmFsIGV4Y2VwdGlv
biBsaWtlIGBgc2tpcC5FeGNlcHRpb25gYC4KLSAgICAiIiIKLQotCi1kZWYgcHl0ZXN0X2VudGVy
X3BkYihjb25maWcpOgotICAgICIiIiBjYWxsZWQgdXBvbiBwZGIuc2V0X3RyYWNlKCksIGNhbiBi
ZSB1c2VkIGJ5IHBsdWdpbnMgdG8gdGFrZSBzcGVjaWFsCi0gICAgYWN0aW9uIGp1c3QgYmVmb3Jl
IHRoZSBweXRob24gZGVidWdnZXIgZW50ZXJzIGluIGludGVyYWN0aXZlIG1vZGUuCi0KLSAgICA6
YXJnIGNvbmZpZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QKLSAgICA6dHlwZSBjb25maWc6IF9weXRl
c3QuY29uZmlnLkNvbmZpZwotICAgICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9qdW5pdHhtbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmYjQwZGMzNTQ4NzRmMDM2NGRlMGM4M2FjOWZmNjYxYmNh
Nzc5ZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9qdW5pdHhtbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1MyArMCww
IEBACi0iIiIKLSAgICByZXBvcnQgdGVzdCByZXN1bHRzIGluIEpVbml0LVhNTCBmb3JtYXQsCi0g
ICAgZm9yIHVzZSB3aXRoIEplbmtpbnMgYW5kIGJ1aWxkIGludGVncmF0aW9uIHNlcnZlcnMuCi0K
LQotQmFzZWQgb24gaW5pdGlhbCBjb2RlIGZyb20gUm9zcyBMYXdsZXkuCi0KLU91dHB1dCBjb25m
b3JtcyB0byBodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL21h
c3Rlci8KLXNyYy9tYWluL3Jlc291cmNlcy9vcmcvamVua2luc2NpL3BsdWdpbnMveHVuaXQvdHlw
ZXMvbW9kZWwveHNkL2p1bml0LTEwLnhzZAotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBmdW5jdG9v
bHMKLWltcG9ydCBweQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzeXMKLWltcG9ydCB0
aW1lCi1pbXBvcnQgcHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCi1mcm9tIF9weXRl
c3QuY29uZmlnIGltcG9ydCBmaWxlbmFtZV9hcmcKLQotIyBQeXRob24gMi5YIGFuZCAzLlggY29t
cGF0aWJpbGl0eQotaWYgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6Ci0gICAgZnJvbSBjb2RlY3Mg
aW1wb3J0IG9wZW4KLWVsc2U6Ci0gICAgdW5pY2hyID0gY2hyCi0gICAgdW5pY29kZSA9IHN0cgot
ICAgIGxvbmcgPSBpbnQKLQotCi1jbGFzcyBKdW5pdChweS54bWwuTmFtZXNwYWNlKToKLSAgICBw
YXNzCi0KLQotIyBXZSBuZWVkIHRvIGdldCB0aGUgc3Vic2V0IG9mIHRoZSBpbnZhbGlkIHVuaWNv
ZGUgcmFuZ2VzIGFjY29yZGluZyB0bwotIyBYTUwgMS4wIHdoaWNoIGFyZSB2YWxpZCBpbiB0aGlz
IHB5dGhvbiBidWlsZC4gIEhlbmNlIHdlIGNhbGN1bGF0ZQotIyB0aGlzIGR5bmFtaWNhbGx5IGlu
c3RlYWQgb2YgaGFyZGNvZGluZyBpdC4gIFRoZSBzcGVjIHJhbmdlIG9mIHZhbGlkCi0jIGNoYXJz
IGlzOiBDaGFyIDo6PSAjeDkgfCAjeEEgfCAjeEQgfCBbI3gyMC0jeEQ3RkZdIHwgWyN4RTAwMC0j
eEZGRkRdCi0jICAgICAgICAgICAgICAgICAgICB8IFsjeDEwMDAwLSN4MTBGRkZGXQotX2xlZ2Fs
X2NoYXJzID0gKDB4MDksIDB4MEEsIDB4MGQpCi1fbGVnYWxfcmFuZ2VzID0gKAotICAgICgweDIw
LCAweDdFKSwgKDB4ODAsIDB4RDdGRiksICgweEUwMDAsIDB4RkZGRCksICgweDEwMDAwLCAweDEw
RkZGRiksCi0pCi1fbGVnYWxfeG1sX3JlID0gWwotICAgIHVuaWNvZGUoIiVzLSVzIikgJSAodW5p
Y2hyKGxvdyksIHVuaWNocihoaWdoKSkKLSAgICBmb3IgKGxvdywgaGlnaCkgaW4gX2xlZ2FsX3Jh
bmdlcyBpZiBsb3cgPCBzeXMubWF4dW5pY29kZQotXQotX2xlZ2FsX3htbF9yZSA9IFt1bmljaHIo
eCkgZm9yIHggaW4gX2xlZ2FsX2NoYXJzXSArIF9sZWdhbF94bWxfcmUKLWlsbGVnYWxfeG1sX3Jl
ID0gcmUuY29tcGlsZSh1bmljb2RlKCdbXiVzXScpICUgdW5pY29kZSgnJykuam9pbihfbGVnYWxf
eG1sX3JlKSkKLWRlbCBfbGVnYWxfY2hhcnMKLWRlbCBfbGVnYWxfcmFuZ2VzCi1kZWwgX2xlZ2Fs
X3htbF9yZQotCi1fcHlfZXh0X3JlID0gcmUuY29tcGlsZShyIlwucHkkIikKLQotCi1kZWYgYmlu
X3htbF9lc2NhcGUoYXJnKToKLSAgICBkZWYgcmVwbChtYXRjaG9iaik6Ci0gICAgICAgIGkgPSBv
cmQobWF0Y2hvYmouZ3JvdXAoKSkKLSAgICAgICAgaWYgaSA8PSAweEZGOgotICAgICAgICAgICAg
cmV0dXJuIHVuaWNvZGUoJyN4JTAyWCcpICUgaQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmV0dXJuIHVuaWNvZGUoJyN4JTA0WCcpICUgaQotCi0gICAgcmV0dXJuIHB5LnhtbC5yYXcoaWxs
ZWdhbF94bWxfcmUuc3ViKHJlcGwsIHB5LnhtbC5lc2NhcGUoYXJnKSkpCi0KLQotY2xhc3MgX05v
ZGVSZXBvcnRlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIHhtbCk6
Ci0KLSAgICAgICAgc2VsZi5pZCA9IG5vZGVpZAotICAgICAgICBzZWxmLnhtbCA9IHhtbAotICAg
ICAgICBzZWxmLmFkZF9zdGF0cyA9IHNlbGYueG1sLmFkZF9zdGF0cwotICAgICAgICBzZWxmLmR1
cmF0aW9uID0gMAotICAgICAgICBzZWxmLnByb3BlcnRpZXMgPSBbXQotICAgICAgICBzZWxmLm5v
ZGVzID0gW10KLSAgICAgICAgc2VsZi50ZXN0Y2FzZSA9IE5vbmUKLSAgICAgICAgc2VsZi5hdHRy
cyA9IHt9Ci0KLSAgICBkZWYgYXBwZW5kKHNlbGYsIG5vZGUpOgotICAgICAgICBzZWxmLnhtbC5h
ZGRfc3RhdHModHlwZShub2RlKS5fX25hbWVfXykKLSAgICAgICAgc2VsZi5ub2Rlcy5hcHBlbmQo
bm9kZSkKLQotICAgIGRlZiBhZGRfcHJvcGVydHkoc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAg
ICBzZWxmLnByb3BlcnRpZXMuYXBwZW5kKChzdHIobmFtZSksIGJpbl94bWxfZXNjYXBlKHZhbHVl
KSkpCi0KLSAgICBkZWYgbWFrZV9wcm9wZXJ0aWVzX25vZGUoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybiBhIEp1bml0IG5vZGUgY29udGFpbmluZyBjdXN0b20gcHJvcGVydGllcywgaWYgYW55Lgot
ICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5wcm9wZXJ0aWVzOgotICAgICAgICAgICAgcmV0
dXJuIEp1bml0LnByb3BlcnRpZXMoWwotICAgICAgICAgICAgICAgIEp1bml0LnByb3BlcnR5KG5h
bWU9bmFtZSwgdmFsdWU9dmFsdWUpCi0gICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGlu
IHNlbGYucHJvcGVydGllcwotICAgICAgICAgICAgXSkKLSAgICAgICAgcmV0dXJuICcnCi0KLSAg
ICBkZWYgcmVjb3JkX3Rlc3RyZXBvcnQoc2VsZiwgdGVzdHJlcG9ydCk6Ci0gICAgICAgIGFzc2Vy
dCBub3Qgc2VsZi50ZXN0Y2FzZQotICAgICAgICBuYW1lcyA9IG1hbmdsZV90ZXN0X2FkZHJlc3Mo
dGVzdHJlcG9ydC5ub2RlaWQpCi0gICAgICAgIGNsYXNzbmFtZXMgPSBuYW1lc1s6LTFdCi0gICAg
ICAgIGlmIHNlbGYueG1sLnByZWZpeDoKLSAgICAgICAgICAgIGNsYXNzbmFtZXMuaW5zZXJ0KDAs
IHNlbGYueG1sLnByZWZpeCkKLSAgICAgICAgYXR0cnMgPSB7Ci0gICAgICAgICAgICAiY2xhc3Nu
YW1lIjogIi4iLmpvaW4oY2xhc3NuYW1lcyksCi0gICAgICAgICAgICAibmFtZSI6IGJpbl94bWxf
ZXNjYXBlKG5hbWVzWy0xXSksCi0gICAgICAgICAgICAiZmlsZSI6IHRlc3RyZXBvcnQubG9jYXRp
b25bMF0sCi0gICAgICAgIH0KLSAgICAgICAgaWYgdGVzdHJlcG9ydC5sb2NhdGlvblsxXSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIGF0dHJzWyJsaW5lIl0gPSB0ZXN0cmVwb3J0LmxvY2F0aW9u
WzFdCi0gICAgICAgIGlmIGhhc2F0dHIodGVzdHJlcG9ydCwgInVybCIpOgotICAgICAgICAgICAg
YXR0cnNbInVybCJdID0gdGVzdHJlcG9ydC51cmwKLSAgICAgICAgc2VsZi5hdHRycyA9IGF0dHJz
Ci0KLSAgICBkZWYgdG9feG1sKHNlbGYpOgotICAgICAgICB0ZXN0Y2FzZSA9IEp1bml0LnRlc3Rj
YXNlKHRpbWU9c2VsZi5kdXJhdGlvbiwgKipzZWxmLmF0dHJzKQotICAgICAgICB0ZXN0Y2FzZS5h
cHBlbmQoc2VsZi5tYWtlX3Byb3BlcnRpZXNfbm9kZSgpKQotICAgICAgICBmb3Igbm9kZSBpbiBz
ZWxmLm5vZGVzOgotICAgICAgICAgICAgdGVzdGNhc2UuYXBwZW5kKG5vZGUpCi0gICAgICAgIHJl
dHVybiB0ZXN0Y2FzZQotCi0gICAgZGVmIF9hZGRfc2ltcGxlKHNlbGYsIGtpbmQsIG1lc3NhZ2Us
IGRhdGE9Tm9uZSk6Ci0gICAgICAgIGRhdGEgPSBiaW5feG1sX2VzY2FwZShkYXRhKQotICAgICAg
ICBub2RlID0ga2luZChkYXRhLCBtZXNzYWdlPW1lc3NhZ2UpCi0gICAgICAgIHNlbGYuYXBwZW5k
KG5vZGUpCi0KLSAgICBkZWYgd3JpdGVfY2FwdHVyZWRfb3V0cHV0KHNlbGYsIHJlcG9ydCk6Ci0g
ICAgICAgIGZvciBjYXBuYW1lIGluICgnb3V0JywgJ2VycicpOgotICAgICAgICAgICAgY29udGVu
dCA9IGdldGF0dHIocmVwb3J0LCAnY2Fwc3RkJyArIGNhcG5hbWUpCi0gICAgICAgICAgICBpZiBj
b250ZW50OgotICAgICAgICAgICAgICAgIHRhZyA9IGdldGF0dHIoSnVuaXQsICdzeXN0ZW0tJyAr
IGNhcG5hbWUpCi0gICAgICAgICAgICAgICAgc2VsZi5hcHBlbmQodGFnKGJpbl94bWxfZXNjYXBl
KGNvbnRlbnQpKSkKLQotICAgIGRlZiBhcHBlbmRfcGFzcyhzZWxmLCByZXBvcnQpOgotICAgICAg
ICBzZWxmLmFkZF9zdGF0cygncGFzc2VkJykKLQotICAgIGRlZiBhcHBlbmRfZmFpbHVyZShzZWxm
LCByZXBvcnQpOgotICAgICAgICAjIG1zZyA9IHN0cihyZXBvcnQubG9uZ3JlcHIucmVwcnRyYWNl
YmFjay5leHRyYWxpbmUpCi0gICAgICAgIGlmIGhhc2F0dHIocmVwb3J0LCAid2FzeGZhaWwiKToK
LSAgICAgICAgICAgIHNlbGYuX2FkZF9zaW1wbGUoCi0gICAgICAgICAgICAgICAgSnVuaXQuc2tp
cHBlZCwKLSAgICAgICAgICAgICAgICAieGZhaWwtbWFya2VkIHRlc3QgcGFzc2VzIHVuZXhwZWN0
ZWRseSIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydC5sb25n
cmVwciwgInJlcHJjcmFzaCIpOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9u
Z3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXBv
cnQubG9uZ3JlcHIsICh1bmljb2RlLCBzdHIpKToKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0g
cmVwb3J0LmxvbmdyZXByCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgPSBzdHIocmVwb3J0LmxvbmdyZXByKQotICAgICAgICAgICAgbWVzc2FnZSA9IGJpbl94bWxf
ZXNjYXBlKG1lc3NhZ2UpCi0gICAgICAgICAgICBmYWlsID0gSnVuaXQuZmFpbHVyZShtZXNzYWdl
PW1lc3NhZ2UpCi0gICAgICAgICAgICBmYWlsLmFwcGVuZChiaW5feG1sX2VzY2FwZShyZXBvcnQu
bG9uZ3JlcHIpKQotICAgICAgICAgICAgc2VsZi5hcHBlbmQoZmFpbCkKLQotICAgIGRlZiBhcHBl
bmRfY29sbGVjdF9lcnJvcihzZWxmLCByZXBvcnQpOgotICAgICAgICAjIG1zZyA9IHN0cihyZXBv
cnQubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5leHRyYWxpbmUpCi0gICAgICAgIHNlbGYuYXBwZW5k
KEp1bml0LmVycm9yKGJpbl94bWxfZXNjYXBlKHJlcG9ydC5sb25ncmVwciksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9ImNvbGxlY3Rpb24gZmFpbHVyZSIpKQotCi0g
ICAgZGVmIGFwcGVuZF9jb2xsZWN0X3NraXBwZWQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgc2Vs
Zi5fYWRkX3NpbXBsZSgKLSAgICAgICAgICAgIEp1bml0LnNraXBwZWQsICJjb2xsZWN0aW9uIHNr
aXBwZWQiLCByZXBvcnQubG9uZ3JlcHIpCi0KLSAgICBkZWYgYXBwZW5kX2Vycm9yKHNlbGYsIHJl
cG9ydCk6Ci0gICAgICAgIGlmIGdldGF0dHIocmVwb3J0LCAnd2hlbicsIE5vbmUpID09ICd0ZWFy
ZG93bic6Ci0gICAgICAgICAgICBtc2cgPSAidGVzdCB0ZWFyZG93biBmYWlsdXJlIgotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgbXNnID0gInRlc3Qgc2V0dXAgZmFpbHVyZSIKLSAgICAgICAg
c2VsZi5fYWRkX3NpbXBsZSgKLSAgICAgICAgICAgIEp1bml0LmVycm9yLCBtc2csIHJlcG9ydC5s
b25ncmVwcikKLQotICAgIGRlZiBhcHBlbmRfc2tpcHBlZChzZWxmLCByZXBvcnQpOgotICAgICAg
ICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6Ci0gICAgICAgICAgICBzZWxmLl9hZGRf
c2ltcGxlKAotICAgICAgICAgICAgICAgIEp1bml0LnNraXBwZWQsICJleHBlY3RlZCB0ZXN0IGZh
aWx1cmUiLCByZXBvcnQud2FzeGZhaWwKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGZpbGVuYW1lLCBsaW5lbm8sIHNraXByZWFzb24gPSByZXBvcnQubG9uZ3JlcHIK
LSAgICAgICAgICAgIGlmIHNraXByZWFzb24uc3RhcnRzd2l0aCgiU2tpcHBlZDogIik6Ci0gICAg
ICAgICAgICAgICAgc2tpcHJlYXNvbiA9IGJpbl94bWxfZXNjYXBlKHNraXByZWFzb25bOTpdKQot
ICAgICAgICAgICAgc2VsZi5hcHBlbmQoCi0gICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCgi
JXM6JXM6ICVzIiAlIChmaWxlbmFtZSwgbGluZW5vLCBza2lwcmVhc29uKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9InB5dGVzdC5za2lwIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9c2tpcHJlYXNvbikpCi0gICAgICAgIHNlbGYud3JpdGVfY2Fw
dHVyZWRfb3V0cHV0KHJlcG9ydCkKLQotICAgIGRlZiBmaW5hbGl6ZShzZWxmKToKLSAgICAgICAg
ZGF0YSA9IHNlbGYudG9feG1sKCkudW5pY29kZShpbmRlbnQ9MCkKLSAgICAgICAgc2VsZi5fX2Rp
Y3RfXy5jbGVhcigpCi0gICAgICAgIHNlbGYudG9feG1sID0gbGFtYmRhOiBweS54bWwucmF3KGRh
dGEpCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgcmVjb3JkX3htbF9wcm9wZXJ0eShyZXF1ZXN0
KToKLSAgICAiIiJBZGQgZXh0cmEgeG1sIHByb3BlcnRpZXMgdG8gdGhlIHRhZyBmb3IgdGhlIGNh
bGxpbmcgdGVzdC4KLSAgICBUaGUgZml4dHVyZSBpcyBjYWxsYWJsZSB3aXRoIGBgKG5hbWUsIHZh
bHVlKWBgLCB3aXRoIHZhbHVlIGJlaW5nIGF1dG9tYXRpY2FsbHkKLSAgICB4bWwtZW5jb2RlZC4K
LSAgICAiIiIKLSAgICByZXF1ZXN0Lm5vZGUud2FybigKLSAgICAgICAgY29kZT0nQzMnLAotICAg
ICAgICBtZXNzYWdlPSdyZWNvcmRfeG1sX3Byb3BlcnR5IGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0
dXJlJywKLSAgICApCi0gICAgeG1sID0gZ2V0YXR0cihyZXF1ZXN0LmNvbmZpZywgIl94bWwiLCBO
b25lKQotICAgIGlmIHhtbCBpcyBub3QgTm9uZToKLSAgICAgICAgbm9kZV9yZXBvcnRlciA9IHht
bC5ub2RlX3JlcG9ydGVyKHJlcXVlc3Qubm9kZS5ub2RlaWQpCi0gICAgICAgIHJldHVybiBub2Rl
X3JlcG9ydGVyLmFkZF9wcm9wZXJ0eQotICAgIGVsc2U6Ci0gICAgICAgIGRlZiBhZGRfcHJvcGVy
dHlfbm9vcChuYW1lLCB2YWx1ZSk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgcmV0dXJu
IGFkZF9wcm9wZXJ0eV9ub29wCi0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAg
ICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWluYWwgcmVwb3J0aW5nIikKLSAgICBncm91
cC5hZGRvcHRpb24oCi0gICAgICAgICctLWp1bml0eG1sJywgJy0tanVuaXQteG1sJywKLSAgICAg
ICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgIGRlc3Q9InhtbHBhdGgiLAotICAgICAgICBtZXRh
dmFyPSJwYXRoIiwKLSAgICAgICAgdHlwZT1mdW5jdG9vbHMucGFydGlhbChmaWxlbmFtZV9hcmcs
IG9wdG5hbWU9Ii0tanVuaXR4bWwiKSwKLSAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICBo
ZWxwPSJjcmVhdGUganVuaXQteG1sIHN0eWxlIHJlcG9ydCBmaWxlIGF0IGdpdmVuIHBhdGguIikK
LSAgICBncm91cC5hZGRvcHRpb24oCi0gICAgICAgICctLWp1bml0cHJlZml4JywgJy0tanVuaXQt
cHJlZml4JywKLSAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgIG1ldGF2YXI9InN0ciIs
Ci0gICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0icHJlcGVuZCBwcmVmaXggdG8g
Y2xhc3NuYW1lcyBpbiBqdW5pdC14bWwgb3V0cHV0IikKLSAgICBwYXJzZXIuYWRkaW5pKCJqdW5p
dF9zdWl0ZV9uYW1lIiwgIlRlc3Qgc3VpdGUgbmFtZSBmb3IgSlVuaXQgcmVwb3J0IiwgZGVmYXVs
dD0icHl0ZXN0IikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIHhtbHBh
dGggPSBjb25maWcub3B0aW9uLnhtbHBhdGgKLSAgICAjIHByZXZlbnQgb3BlbmluZyB4bWxsb2cg
b24gc2xhdmUgbm9kZXMgKHhkaXN0KQotICAgIGlmIHhtbHBhdGggYW5kIG5vdCBoYXNhdHRyKGNv
bmZpZywgJ3NsYXZlaW5wdXQnKToKLSAgICAgICAgY29uZmlnLl94bWwgPSBMb2dYTUwoeG1scGF0
aCwgY29uZmlnLm9wdGlvbi5qdW5pdHByZWZpeCwgY29uZmlnLmdldGluaSgianVuaXRfc3VpdGVf
bmFtZSIpKQotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihjb25maWcuX3ht
bCkKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgeG1sID0gZ2V0YXR0
cihjb25maWcsICdfeG1sJywgTm9uZSkKLSAgICBpZiB4bWw6Ci0gICAgICAgIGRlbCBjb25maWcu
X3htbAotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci51bnJlZ2lzdGVyKHhtbCkKLQotCi1k
ZWYgbWFuZ2xlX3Rlc3RfYWRkcmVzcyhhZGRyZXNzKToKLSAgICBwYXRoLCBwb3NzaWJsZV9vcGVu
X2JyYWNrZXQsIHBhcmFtcyA9IGFkZHJlc3MucGFydGl0aW9uKCdbJykKLSAgICBuYW1lcyA9IHBh
dGguc3BsaXQoIjo6IikKLSAgICB0cnk6Ci0gICAgICAgIG5hbWVzLnJlbW92ZSgnKCknKQotICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBwYXNzCi0gICAgIyBjb252ZXJ0IGZpbGUgcGF0
aCB0byBkb3R0ZWQgcGF0aAotICAgIG5hbWVzWzBdID0gbmFtZXNbMF0ucmVwbGFjZShub2Rlcy5T
RVAsICcuJykKLSAgICBuYW1lc1swXSA9IF9weV9leHRfcmUuc3ViKCIiLCBuYW1lc1swXSkKLSAg
ICAjIHB1dCBhbnkgcGFyYW1zIGJhY2sKLSAgICBuYW1lc1stMV0gKz0gcG9zc2libGVfb3Blbl9i
cmFja2V0ICsgcGFyYW1zCi0gICAgcmV0dXJuIG5hbWVzCi0KLQotY2xhc3MgTG9nWE1MKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2ZpbGUsIHByZWZpeCwgc3VpdGVfbmFtZT0i
cHl0ZXN0Iik6Ci0gICAgICAgIGxvZ2ZpbGUgPSBvcy5wYXRoLmV4cGFuZHVzZXIob3MucGF0aC5l
eHBhbmR2YXJzKGxvZ2ZpbGUpKQotICAgICAgICBzZWxmLmxvZ2ZpbGUgPSBvcy5wYXRoLm5vcm1w
YXRoKG9zLnBhdGguYWJzcGF0aChsb2dmaWxlKSkKLSAgICAgICAgc2VsZi5wcmVmaXggPSBwcmVm
aXgKLSAgICAgICAgc2VsZi5zdWl0ZV9uYW1lID0gc3VpdGVfbmFtZQotICAgICAgICBzZWxmLnN0
YXRzID0gZGljdC5mcm9ta2V5cyhbCi0gICAgICAgICAgICAnZXJyb3InLAotICAgICAgICAgICAg
J3Bhc3NlZCcsCi0gICAgICAgICAgICAnZmFpbHVyZScsCi0gICAgICAgICAgICAnc2tpcHBlZCcs
Ci0gICAgICAgIF0sIDApCi0gICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnMgPSB7fSAgIyBub2Rl
aWQgLT4gX05vZGVSZXBvcnRlcgotICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzX29yZGVyZWQg
PSBbXQotICAgICAgICBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVzID0gW10KLSAgICAgICAgIyBMaXN0
IG9mIHJlcG9ydHMgdGhhdCBmYWlsZWQgb24gY2FsbCBidXQgdGVhcmRvd24gaXMgcGVuZGluZy4K
LSAgICAgICAgc2VsZi5vcGVuX3JlcG9ydHMgPSBbXQotICAgICAgICBzZWxmLmNudF9kb3VibGVf
ZmFpbF90ZXN0cyA9IDAKLQotICAgIGRlZiBmaW5hbGl6ZShzZWxmLCByZXBvcnQpOgotICAgICAg
ICBub2RlaWQgPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGVpZCcsIHJlcG9ydCkKLSAgICAgICAgIyBs
b2NhbCBoYWNrIHRvIGhhbmRsZSB4ZGlzdCByZXBvcnQgb3JkZXIKLSAgICAgICAgc2xhdmVub2Rl
ID0gZ2V0YXR0cihyZXBvcnQsICdub2RlJywgTm9uZSkKLSAgICAgICAgcmVwb3J0ZXIgPSBzZWxm
Lm5vZGVfcmVwb3J0ZXJzLnBvcCgobm9kZWlkLCBzbGF2ZW5vZGUpKQotICAgICAgICBpZiByZXBv
cnRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlcG9ydGVyLmZpbmFsaXplKCkKLQotICAg
IGRlZiBub2RlX3JlcG9ydGVyKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIG5vZGVpZCA9IGdldGF0
dHIocmVwb3J0LCAnbm9kZWlkJywgcmVwb3J0KQotICAgICAgICAjIGxvY2FsIGhhY2sgdG8gaGFu
ZGxlIHhkaXN0IHJlcG9ydCBvcmRlcgotICAgICAgICBzbGF2ZW5vZGUgPSBnZXRhdHRyKHJlcG9y
dCwgJ25vZGUnLCBOb25lKQotCi0gICAgICAgIGtleSA9IG5vZGVpZCwgc2xhdmVub2RlCi0KLSAg
ICAgICAgaWYga2V5IGluIHNlbGYubm9kZV9yZXBvcnRlcnM6Ci0gICAgICAgICAgICAjIFRPRE86
IGJyZWFza3MgZm9yIC0tZGlzdD1lYWNoCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5ub2RlX3Jl
cG9ydGVyc1trZXldCi0KLSAgICAgICAgcmVwb3J0ZXIgPSBfTm9kZVJlcG9ydGVyKG5vZGVpZCwg
c2VsZikKLQotICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzW2tleV0gPSByZXBvcnRlcgotICAg
ICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzX29yZGVyZWQuYXBwZW5kKHJlcG9ydGVyKQotCi0gICAg
ICAgIHJldHVybiByZXBvcnRlcgotCi0gICAgZGVmIGFkZF9zdGF0cyhzZWxmLCBrZXkpOgotICAg
ICAgICBpZiBrZXkgaW4gc2VsZi5zdGF0czoKLSAgICAgICAgICAgIHNlbGYuc3RhdHNba2V5XSAr
PSAxCi0KLSAgICBkZWYgX29wZW50ZXN0Y2FzZShzZWxmLCByZXBvcnQpOgotICAgICAgICByZXBv
cnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcihyZXBvcnQpCi0gICAgICAgIHJlcG9ydGVyLnJlY29y
ZF90ZXN0cmVwb3J0KHJlcG9ydCkKLSAgICAgICAgcmV0dXJuIHJlcG9ydGVyCi0KLSAgICBkZWYg
cHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgICIiImhhbmRs
ZSBhIHNldHVwL2NhbGwvdGVhcmRvd24gcmVwb3J0LCBnZW5lcmF0aW5nIHRoZSBhcHByb3ByaWF0
ZQotICAgICAgICB4bWwgdGFncyBhcyBuZWNlc3NhcnkuCi0KLSAgICAgICAgbm90ZTogZHVlIHRv
IHBsdWdpbnMgbGlrZSB4ZGlzdCwgdGhpcyBob29rIG1heSBiZSBjYWxsZWQgaW4gaW50ZXJsYWNl
ZAotICAgICAgICBvcmRlciB3aXRoIHJlcG9ydHMgZnJvbSBvdGhlciBub2Rlcy4gZm9yIGV4YW1w
bGU6Ci0KLSAgICAgICAgdXN1YWwgY2FsbCBvcmRlcjoKLSAgICAgICAgICAgIC0+IHNldHVwIG5v
ZGUxCi0gICAgICAgICAgICAtPiBjYWxsIG5vZGUxCi0gICAgICAgICAgICAtPiB0ZWFyZG93biBu
b2RlMQotICAgICAgICAgICAgLT4gc2V0dXAgbm9kZTIKLSAgICAgICAgICAgIC0+IGNhbGwgbm9k
ZTIKLSAgICAgICAgICAgIC0+IHRlYXJkb3duIG5vZGUyCi0KLSAgICAgICAgcG9zc2libGUgY2Fs
bCBvcmRlciBpbiB4ZGlzdDoKLSAgICAgICAgICAgIC0+IHNldHVwIG5vZGUxCi0gICAgICAgICAg
ICAtPiBjYWxsIG5vZGUxCi0gICAgICAgICAgICAtPiBzZXR1cCBub2RlMgotICAgICAgICAgICAg
LT4gY2FsbCBub2RlMgotICAgICAgICAgICAgLT4gdGVhcmRvd24gbm9kZTIKLSAgICAgICAgICAg
IC0+IHRlYXJkb3duIG5vZGUxCi0gICAgICAgICIiIgotICAgICAgICBjbG9zZV9yZXBvcnQgPSBO
b25lCi0gICAgICAgIGlmIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICBpZiByZXBvcnQud2hl
biA9PSAiY2FsbCI6ICAjIGlnbm9yZSBzZXR1cC90ZWFyZG93bgotICAgICAgICAgICAgICAgIHJl
cG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAgICAgICAgICAgICAgICByZXBv
cnRlci5hcHBlbmRfcGFzcyhyZXBvcnQpCi0gICAgICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKLSAg
ICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAgICAgICAgICAgICAg
IyBUaGUgZm9sbG93aW5nIHZhcnMgYXJlIG5lZWRlZCB3aGVuIHhkaXN0IHBsdWdpbiBpcyB1c2Vk
Ci0gICAgICAgICAgICAgICAgcmVwb3J0X3dpZCA9IGdldGF0dHIocmVwb3J0LCAid29ya2VyX2lk
IiwgTm9uZSkKLSAgICAgICAgICAgICAgICByZXBvcnRfaWkgPSBnZXRhdHRyKHJlcG9ydCwgIml0
ZW1faW5kZXgiLCBOb25lKQotICAgICAgICAgICAgICAgIGNsb3NlX3JlcG9ydCA9IG5leHQoCi0g
ICAgICAgICAgICAgICAgICAgIChyZXAgZm9yIHJlcCBpbiBzZWxmLm9wZW5fcmVwb3J0cwotICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlcC5ub2RlaWQgPT0gcmVwb3J0Lm5vZGVpZCBhbmQKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwgIml0ZW1faW5kZXgiLCBOb25lKSA9
PSByZXBvcnRfaWkgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJ3
b3JrZXJfaWQiLCBOb25lKSA9PSByZXBvcnRfd2lkCi0gICAgICAgICAgICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgICAgICAgKSwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiBjbG9z
ZV9yZXBvcnQ6Ci0gICAgICAgICAgICAgICAgICAgICMgV2UgbmVlZCB0byBvcGVuIG5ldyB0ZXN0
Y2FzZSBpbiBjYXNlIHdlIGhhdmUgZmFpbHVyZSBpbgotICAgICAgICAgICAgICAgICAgICAjIGNh
bGwgYW5kIGVycm9yIGluIHRlYXJkb3duIGluIG9yZGVyIHRvIGZvbGxvdyBqdW5pdAotICAgICAg
ICAgICAgICAgICAgICAjIHNjaGVtYQotICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbmFsaXpl
KGNsb3NlX3JlcG9ydCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5jbnRfZG91YmxlX2ZhaWxf
dGVzdHMgKz0gMQotICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVw
b3J0KQotICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0gImNhbGwiOgotICAgICAgICAgICAg
ICAgIHJlcG9ydGVyLmFwcGVuZF9mYWlsdXJlKHJlcG9ydCkKLSAgICAgICAgICAgICAgICBzZWxm
Lm9wZW5fcmVwb3J0cy5hcHBlbmQocmVwb3J0KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZXBvcnRlci5hcHBlbmRfZXJyb3IocmVwb3J0KQotICAgICAgICBlbGlmIHJlcG9y
dC5za2lwcGVkOgotICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVw
b3J0KQotICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX3NraXBwZWQocmVwb3J0KQotICAgICAg
ICBzZWxmLnVwZGF0ZV90ZXN0Y2FzZV9kdXJhdGlvbihyZXBvcnQpCi0gICAgICAgIGlmIHJlcG9y
dC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50
ZXN0Y2FzZShyZXBvcnQpCi0gICAgICAgICAgICByZXBvcnRlci53cml0ZV9jYXB0dXJlZF9vdXRw
dXQocmVwb3J0KQotICAgICAgICAgICAgc2VsZi5maW5hbGl6ZShyZXBvcnQpCi0gICAgICAgICAg
ICByZXBvcnRfd2lkID0gZ2V0YXR0cihyZXBvcnQsICJ3b3JrZXJfaWQiLCBOb25lKQotICAgICAg
ICAgICAgcmVwb3J0X2lpID0gZ2V0YXR0cihyZXBvcnQsICJpdGVtX2luZGV4IiwgTm9uZSkKLSAg
ICAgICAgICAgIGNsb3NlX3JlcG9ydCA9IG5leHQoCi0gICAgICAgICAgICAgICAgKHJlcCBmb3Ig
cmVwIGluIHNlbGYub3Blbl9yZXBvcnRzCi0gICAgICAgICAgICAgICAgIGlmIChyZXAubm9kZWlk
ID09IHJlcG9ydC5ub2RlaWQgYW5kCi0gICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwg
Iml0ZW1faW5kZXgiLCBOb25lKSA9PSByZXBvcnRfaWkgYW5kCi0gICAgICAgICAgICAgICAgICAg
ICBnZXRhdHRyKHJlcCwgIndvcmtlcl9pZCIsIE5vbmUpID09IHJlcG9ydF93aWQKLSAgICAgICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgKSwgTm9uZSkKLSAgICAgICAgICAgIGlm
IGNsb3NlX3JlcG9ydDoKLSAgICAgICAgICAgICAgICBzZWxmLm9wZW5fcmVwb3J0cy5yZW1vdmUo
Y2xvc2VfcmVwb3J0KQotCi0gICAgZGVmIHVwZGF0ZV90ZXN0Y2FzZV9kdXJhdGlvbihzZWxmLCBy
ZXBvcnQpOgotICAgICAgICAiIiJhY2N1bXVsYXRlcyB0b3RhbCBkdXJhdGlvbiBmb3Igbm9kZWlk
IGZyb20gZ2l2ZW4gcmVwb3J0IGFuZCB1cGRhdGVzCi0gICAgICAgIHRoZSBKdW5pdC50ZXN0Y2Fz
ZSB3aXRoIHRoZSBuZXcgdG90YWwgaWYgYWxyZWFkeSBjcmVhdGVkLgotICAgICAgICAiIiIKLSAg
ICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXIocmVwb3J0KQotICAgICAgICByZXBv
cnRlci5kdXJhdGlvbiArPSBnZXRhdHRyKHJlcG9ydCwgJ2R1cmF0aW9uJywgMC4wKQotCi0gICAg
ZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIG5vdCBy
ZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2Uo
cmVwb3J0KQotICAgICAgICAgICAgaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgICAgICAgICBy
ZXBvcnRlci5hcHBlbmRfY29sbGVjdF9lcnJvcihyZXBvcnQpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9jb2xsZWN0X3NraXBwZWQocmVwb3J0KQot
Ci0gICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgotICAgICAgICBy
ZXBvcnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcignaW50ZXJuYWwnKQotICAgICAgICByZXBvcnRl
ci5hdHRycy51cGRhdGUoY2xhc3NuYW1lPSJweXRlc3QiLCBuYW1lPSdpbnRlcm5hbCcpCi0gICAg
ICAgIHJlcG9ydGVyLl9hZGRfc2ltcGxlKEp1bml0LmVycm9yLCAnaW50ZXJuYWwgZXJyb3InLCBl
eGNyZXByKQotCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2VsZik6Ci0gICAgICAgIHNl
bGYuc3VpdGVfc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCi0KLSAgICBkZWYgcHl0ZXN0X3Nlc3Np
b25maW5pc2goc2VsZik6Ci0gICAgICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0
aC5hYnNwYXRoKHNlbGYubG9nZmlsZSkpCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRp
cm5hbWUpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKLSAgICAgICAgbG9nZmls
ZSA9IG9wZW4oc2VsZi5sb2dmaWxlLCAndycsIGVuY29kaW5nPSd1dGYtOCcpCi0gICAgICAgIHN1
aXRlX3N0b3BfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIHN1aXRlX3RpbWVfZGVsdGEgPSBz
dWl0ZV9zdG9wX3RpbWUgLSBzZWxmLnN1aXRlX3N0YXJ0X3RpbWUKLQotICAgICAgICBudW10ZXN0
cyA9IChzZWxmLnN0YXRzWydwYXNzZWQnXSArIHNlbGYuc3RhdHNbJ2ZhaWx1cmUnXSArCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuc3RhdHNbJ3NraXBwZWQnXSArIHNlbGYuc3RhdHNbJ2Vycm9y
J10gLQotICAgICAgICAgICAgICAgICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cykKLSAg
ICAgICAgbG9nZmlsZS53cml0ZSgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4nKQotCi0gICAgICAgIGxvZ2ZpbGUud3JpdGUoSnVuaXQudGVzdHN1aXRlKAotICAgICAgICAg
ICAgc2VsZi5fZ2V0X2dsb2JhbF9wcm9wZXJ0aWVzX25vZGUoKSwKLSAgICAgICAgICAgIFt4LnRv
X3htbCgpIGZvciB4IGluIHNlbGYubm9kZV9yZXBvcnRlcnNfb3JkZXJlZF0sCi0gICAgICAgICAg
ICBuYW1lPXNlbGYuc3VpdGVfbmFtZSwKLSAgICAgICAgICAgIGVycm9ycz1zZWxmLnN0YXRzWydl
cnJvciddLAotICAgICAgICAgICAgZmFpbHVyZXM9c2VsZi5zdGF0c1snZmFpbHVyZSddLAotICAg
ICAgICAgICAgc2tpcHM9c2VsZi5zdGF0c1snc2tpcHBlZCddLAotICAgICAgICAgICAgdGVzdHM9
bnVtdGVzdHMsCi0gICAgICAgICAgICB0aW1lPSIlLjNmIiAlIHN1aXRlX3RpbWVfZGVsdGEsICku
dW5pY29kZShpbmRlbnQ9MCkpCi0gICAgICAgIGxvZ2ZpbGUuY2xvc2UoKQotCi0gICAgZGVmIHB5
dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHNlbGYsIHRlcm1pbmFscmVwb3J0ZXIpOgotICAgICAgICB0
ZXJtaW5hbHJlcG9ydGVyLndyaXRlX3NlcCgiLSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJnZW5lcmF0ZWQgeG1sIGZpbGU6ICVzIiAlIChzZWxmLmxvZ2ZpbGUpKQotCi0g
ICAgZGVmIGFkZF9nbG9iYWxfcHJvcGVydHkoc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBz
ZWxmLmdsb2JhbF9wcm9wZXJ0aWVzLmFwcGVuZCgoc3RyKG5hbWUpLCBiaW5feG1sX2VzY2FwZSh2
YWx1ZSkpKQotCi0gICAgZGVmIF9nZXRfZ2xvYmFsX3Byb3BlcnRpZXNfbm9kZShzZWxmKToKLSAg
ICAgICAgIiIiUmV0dXJuIGEgSnVuaXQgbm9kZSBjb250YWluaW5nIGN1c3RvbSBwcm9wZXJ0aWVz
LCBpZiBhbnkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVz
OgotICAgICAgICAgICAgcmV0dXJuIEp1bml0LnByb3BlcnRpZXMoCi0gICAgICAgICAgICAgICAg
WwotICAgICAgICAgICAgICAgICAgICBKdW5pdC5wcm9wZXJ0eShuYW1lPW5hbWUsIHZhbHVlPXZh
bHVlKQotICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5nbG9iYWxf
cHJvcGVydGllcwotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICkKLSAgICAgICAgcmV0
dXJuICcnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVkNGRiMjVhZDQ0MzFlZmIxNzRmY2E1ZjhhZDQ4MWJkMzk5ZTRjY2QuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dn
aW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzM3ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0
IGxvZ2dpbmcKLWZyb20gY29udGV4dGxpYiBpbXBvcnQgY2xvc2luZywgY29udGV4dG1hbmFnZXIK
LWltcG9ydCBzeXMKLWltcG9ydCBzaXgKLQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IHB5Ci0KLQot
REVGQVVMVF9MT0dfRk9STUFUID0gJyUoZmlsZW5hbWUpLTI1cyAlKGxpbmVubyk0ZCAlKGxldmVs
bmFtZSktOHMgJShtZXNzYWdlKXMnCi1ERUZBVUxUX0xPR19EQVRFX0ZPUk1BVCA9ICclSDolTTol
UycKLQotCi1kZWYgZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAqbmFtZXMpOgotICAgIGZvciBuYW1l
IGluIG5hbWVzOgotICAgICAgICByZXQgPSBjb25maWcuZ2V0b3B0aW9uKG5hbWUpICAjICdkZWZh
dWx0JyBhcmcgd29uJ3Qgd29yayBhcyBleHBlY3RlZAotICAgICAgICBpZiByZXQgaXMgTm9uZToK
LSAgICAgICAgICAgIHJldCA9IGNvbmZpZy5nZXRpbmkobmFtZSkKLSAgICAgICAgaWYgcmV0Ogot
ICAgICAgICAgICAgcmV0dXJuIHJldAotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6
Ci0gICAgIiIiQWRkIG9wdGlvbnMgdG8gY29udHJvbCBsb2cgY2FwdHVyaW5nLiIiIgotICAgIGdy
b3VwID0gcGFyc2VyLmdldGdyb3VwKCdsb2dnaW5nJykKLQotICAgIGRlZiBhZGRfb3B0aW9uX2lu
aShvcHRpb24sIGRlc3QsIGRlZmF1bHQ9Tm9uZSwgdHlwZT1Ob25lLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHBhcnNlci5hZGRpbmkoZGVzdCwgZGVmYXVsdD1kZWZhdWx0LCB0eXBlPXR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgaGVscD0nZGVmYXVsdCB2YWx1ZSBmb3IgJyArIG9wdGlvbikKLSAg
ICAgICAgZ3JvdXAuYWRkb3B0aW9uKG9wdGlvbiwgZGVzdD1kZXN0LCAqKmt3YXJncykKLQotICAg
IGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1uby1wcmludC1sb2dzJywKLSAgICAgICAgZGVz
dD0nbG9nX3ByaW50JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PUZhbHNlLCBkZWZhdWx0
PVRydWUsCi0gICAgICAgIHR5cGU9J2Jvb2wnLAotICAgICAgICBoZWxwPSdkaXNhYmxlIHByaW50
aW5nIGNhdWdodCBsb2dzIG9uIGZhaWxlZCB0ZXN0cy4nKQotICAgIGFkZF9vcHRpb25faW5pKAot
ICAgICAgICAnLS1sb2ctbGV2ZWwnLAotICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0
PU5vbmUsCi0gICAgICAgIGhlbHA9J2xvZ2dpbmcgbGV2ZWwgdXNlZCBieSB0aGUgbG9nZ2luZyBt
b2R1bGUnKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZm9ybWF0JywKLSAg
ICAgICAgZGVzdD0nbG9nX2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfRk9STUFULAotICAg
ICAgICBoZWxwPSdsb2cgZm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1kYXRlLWZvcm1hdCcsCi0gICAgICAg
IGRlc3Q9J2xvZ19kYXRlX2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfREFURV9GT1JNQVQs
Ci0gICAgICAgIGhlbHA9J2xvZyBkYXRlIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1v
ZHVsZS4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctY2xpLWxldmVsJywK
LSAgICAgICAgZGVzdD0nbG9nX2NsaV9sZXZlbCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVs
cD0nY2xpIGxvZ2dpbmcgbGV2ZWwuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0t
bG9nLWNsaS1mb3JtYXQnLAotICAgICAgICBkZXN0PSdsb2dfY2xpX2Zvcm1hdCcsIGRlZmF1bHQ9
Tm9uZSwKLSAgICAgICAgaGVscD0nbG9nIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1v
ZHVsZS4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctY2xpLWRhdGUtZm9y
bWF0JywKLSAgICAgICAgZGVzdD0nbG9nX2NsaV9kYXRlX2Zvcm1hdCcsIGRlZmF1bHQ9Tm9uZSwK
LSAgICAgICAgaGVscD0nbG9nIGRhdGUgZm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9k
dWxlLicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1maWxlJywKLSAgICAg
ICAgZGVzdD0nbG9nX2ZpbGUnLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9J3BhdGggdG8g
YSBmaWxlIHdoZW4gbG9nZ2luZyB3aWxsIGJlIHdyaXR0ZW4gdG8uJykKLSAgICBhZGRfb3B0aW9u
X2luaSgKLSAgICAgICAgJy0tbG9nLWZpbGUtbGV2ZWwnLAotICAgICAgICBkZXN0PSdsb2dfZmls
ZV9sZXZlbCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0nbG9nIGZpbGUgbG9nZ2luZyBs
ZXZlbC4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZmlsZS1mb3JtYXQn
LAotICAgICAgICBkZXN0PSdsb2dfZmlsZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0ZP
Uk1BVCwKLSAgICAgICAgaGVscD0nbG9nIGZvcm1hdCBhcyB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1v
ZHVsZS4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZmlsZS1kYXRlLWZv
cm1hdCcsCi0gICAgICAgIGRlc3Q9J2xvZ19maWxlX2RhdGVfZm9ybWF0JywgZGVmYXVsdD1ERUZB
VUxUX0xPR19EQVRFX0ZPUk1BVCwKLSAgICAgICAgaGVscD0nbG9nIGRhdGUgZm9ybWF0IGFzIHVz
ZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYgbG9n
Z2luZ191c2luZ19oYW5kbGVyKGhhbmRsZXIsIGxvZ2dlcj1Ob25lKToKLSAgICAiIiJDb250ZXh0
IG1hbmFnZXIgdGhhdCBzYWZlbHkgcmVnaXN0ZXJzIGEgZ2l2ZW4gaGFuZGxlci4iIiIKLSAgICBs
b2dnZXIgPSBsb2dnZXIgb3IgbG9nZ2luZy5nZXRMb2dnZXIobG9nZ2VyKQotCi0gICAgaWYgaGFu
ZGxlciBpbiBsb2dnZXIuaGFuZGxlcnM6ICAjIHJlZW50cmFuY3kKLSAgICAgICAgIyBBZGRpbmcg
dGhlIHNhbWUgaGFuZGxlciB0d2ljZSB3b3VsZCBjb25mdXNlIGxvZ2dpbmcgc3lzdGVtLgotICAg
ICAgICAjIEp1c3QgZG9uJ3QgZG8gdGhhdC4KLSAgICAgICAgeWllbGQKLSAgICBlbHNlOgotICAg
ICAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICB5aWVsZAotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgbG9nZ2VyLnJlbW92ZUhhbmRs
ZXIoaGFuZGxlcikKLQotCi1AY29udGV4dG1hbmFnZXIKLWRlZiBjYXRjaGluZ19sb2dzKGhhbmRs
ZXIsIGZvcm1hdHRlcj1Ob25lLAotICAgICAgICAgICAgICAgICAgbGV2ZWw9bG9nZ2luZy5OT1RT
RVQsIGxvZ2dlcj1Ob25lKToKLSAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCBwcmVwYXJlcyB0
aGUgd2hvbGUgbG9nZ2luZyBtYWNoaW5lcnkgcHJvcGVybHkuIiIiCi0gICAgbG9nZ2VyID0gbG9n
Z2VyIG9yIGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKLQotICAgIGlmIGZvcm1hdHRlciBpcyBu
b3QgTm9uZToKLSAgICAgICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQotICAgIGhh
bmRsZXIuc2V0TGV2ZWwobGV2ZWwpCi0KLSAgICB3aXRoIGxvZ2dpbmdfdXNpbmdfaGFuZGxlciho
YW5kbGVyLCBsb2dnZXIpOgotICAgICAgICBvcmlnX2xldmVsID0gbG9nZ2VyLmxldmVsCi0gICAg
ICAgIGxvZ2dlci5zZXRMZXZlbChtaW4ob3JpZ19sZXZlbCwgbGV2ZWwpKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICB5aWVsZCBoYW5kbGVyCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBsb2dnZXIuc2V0TGV2ZWwob3JpZ19sZXZlbCkKLQotCi1jbGFzcyBMb2dDYXB0dXJlSGFuZGxl
cihsb2dnaW5nLlN0cmVhbUhhbmRsZXIpOgotICAgICIiIkEgbG9nZ2luZyBoYW5kbGVyIHRoYXQg
c3RvcmVzIGxvZyByZWNvcmRzIGFuZCB0aGUgbG9nIHRleHQuIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZik6Ci0gICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgbG9nIGhhbmRsZXIuIiIiCi0gICAg
ICAgIGxvZ2dpbmcuU3RyZWFtSGFuZGxlci5fX2luaXRfXyhzZWxmLCBweS5pby5UZXh0SU8oKSkK
LSAgICAgICAgc2VsZi5yZWNvcmRzID0gW10KLQotICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6
Ci0gICAgICAgICIiIktlZXAgdGhlIGxvZyByZWNvcmRzIGluIGEgbGlzdCBpbiBhZGRpdGlvbiB0
byB0aGUgbG9nIHRleHQuIiIiCi0gICAgICAgIHNlbGYucmVjb3Jkcy5hcHBlbmQocmVjb3JkKQot
ICAgICAgICBsb2dnaW5nLlN0cmVhbUhhbmRsZXIuZW1pdChzZWxmLCByZWNvcmQpCi0KLQotY2xh
c3MgTG9nQ2FwdHVyZUZpeHR1cmUob2JqZWN0KToKLSAgICAiIiJQcm92aWRlcyBhY2Nlc3MgYW5k
IGNvbnRyb2wgb2YgbG9nIGNhcHR1cmluZy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBp
dGVtKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBmdW5jYXJnLiIiIgotICAgICAgICBzZWxm
Ll9pdGVtID0gaXRlbQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGhhbmRsZXIoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9pdGVtLmNhdGNoX2xvZ19oYW5kbGVyCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgdGV4dChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgbG9nIHRleHQu
IiIiCi0gICAgICAgIHJldHVybiBzZWxmLmhhbmRsZXIuc3RyZWFtLmdldHZhbHVlKCkKLQotICAg
IEBwcm9wZXJ0eQotICAgIGRlZiByZWNvcmRzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5zIHRo
ZSBsaXN0IG9mIGxvZyByZWNvcmRzLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVyLnJl
Y29yZHMKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiByZWNvcmRfdHVwbGVzKHNlbGYpOgotICAg
ICAgICAiIiJSZXR1cm5zIGEgbGlzdCBvZiBhIHN0cmlwZWQgZG93biB2ZXJzaW9uIG9mIGxvZyBy
ZWNvcmRzIGludGVuZGVkCi0gICAgICAgIGZvciB1c2UgaW4gYXNzZXJ0aW9uIGNvbXBhcmlzb24u
Ci0KLSAgICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgdHVwbGUgaXM6Ci0KLSAgICAgICAgICAgIChs
b2dnZXJfbmFtZSwgbG9nX2xldmVsLCBtZXNzYWdlKQotICAgICAgICAiIiIKLSAgICAgICAgcmV0
dXJuIFsoci5uYW1lLCByLmxldmVsbm8sIHIuZ2V0TWVzc2FnZSgpKSBmb3IgciBpbiBzZWxmLnJl
Y29yZHNdCi0KLSAgICBkZWYgY2xlYXIoc2VsZik6Ci0gICAgICAgICIiIlJlc2V0IHRoZSBsaXN0
IG9mIGxvZyByZWNvcmRzLiIiIgotICAgICAgICBzZWxmLmhhbmRsZXIucmVjb3JkcyA9IFtdCi0K
LSAgICBkZWYgc2V0X2xldmVsKHNlbGYsIGxldmVsLCBsb2dnZXI9Tm9uZSk6Ci0gICAgICAgICIi
IlNldHMgdGhlIGxldmVsIGZvciBjYXB0dXJpbmcgb2YgbG9ncy4KLQotICAgICAgICBCeSBkZWZh
dWx0LCB0aGUgbGV2ZWwgaXMgc2V0IG9uIHRoZSBoYW5kbGVyIHVzZWQgdG8gY2FwdHVyZQotICAg
ICAgICBsb2dzLiBTcGVjaWZ5IGEgbG9nZ2VyIG5hbWUgdG8gaW5zdGVhZCBzZXQgdGhlIGxldmVs
IG9mIGFueQotICAgICAgICBsb2dnZXIuCi0gICAgICAgICIiIgotICAgICAgICBpZiBsb2dnZXIg
aXMgTm9uZToKLSAgICAgICAgICAgIGxvZ2dlciA9IHNlbGYuaGFuZGxlcgotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIobG9nZ2VyKQotICAgICAg
ICBsb2dnZXIuc2V0TGV2ZWwobGV2ZWwpCi0KLSAgICBAY29udGV4dG1hbmFnZXIKLSAgICBkZWYg
YXRfbGV2ZWwoc2VsZiwgbGV2ZWwsIGxvZ2dlcj1Ob25lKToKLSAgICAgICAgIiIiQ29udGV4dCBt
YW5hZ2VyIHRoYXQgc2V0cyB0aGUgbGV2ZWwgZm9yIGNhcHR1cmluZyBvZiBsb2dzLgotCi0gICAg
ICAgIEJ5IGRlZmF1bHQsIHRoZSBsZXZlbCBpcyBzZXQgb24gdGhlIGhhbmRsZXIgdXNlZCB0byBj
YXB0dXJlCi0gICAgICAgIGxvZ3MuIFNwZWNpZnkgYSBsb2dnZXIgbmFtZSB0byBpbnN0ZWFkIHNl
dCB0aGUgbGV2ZWwgb2YgYW55Ci0gICAgICAgIGxvZ2dlci4KLSAgICAgICAgIiIiCi0gICAgICAg
IGlmIGxvZ2dlciBpcyBOb25lOgotICAgICAgICAgICAgbG9nZ2VyID0gc2VsZi5oYW5kbGVyCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihsb2dn
ZXIpCi0KLSAgICAgICAgb3JpZ19sZXZlbCA9IGxvZ2dlci5sZXZlbAotICAgICAgICBsb2dnZXIu
c2V0TGV2ZWwobGV2ZWwpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHlpZWxkCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBsb2dnZXIuc2V0TGV2ZWwob3JpZ19sZXZlbCkKLQotCi1A
cHl0ZXN0LmZpeHR1cmUKLWRlZiBjYXBsb2cocmVxdWVzdCk6Ci0gICAgIiIiQWNjZXNzIGFuZCBj
b250cm9sIGxvZyBjYXB0dXJpbmcuCi0KLSAgICBDYXB0dXJlZCBsb2dzIGFyZSBhdmFpbGFibGUg
dGhyb3VnaCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6OgotCi0gICAgKiBjYXBsb2cudGV4dCgpICAg
ICAgICAgIC0+IHN0cmluZyBjb250YWluaW5nIGZvcm1hdHRlZCBsb2cgb3V0cHV0Ci0gICAgKiBj
YXBsb2cucmVjb3JkcygpICAgICAgIC0+IGxpc3Qgb2YgbG9nZ2luZy5Mb2dSZWNvcmQgaW5zdGFu
Y2VzCi0gICAgKiBjYXBsb2cucmVjb3JkX3R1cGxlcygpIC0+IGxpc3Qgb2YgKGxvZ2dlcl9uYW1l
LCBsZXZlbCwgbWVzc2FnZSkgdHVwbGVzCi0gICAgIiIiCi0gICAgcmV0dXJuIExvZ0NhcHR1cmVG
aXh0dXJlKHJlcXVlc3Qubm9kZSkKLQotCi1kZWYgZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoY29uZmln
LCAqc2V0dGluZ19uYW1lcyk6Ci0gICAgIiIiUmV0dXJuIHRoZSBhY3R1YWwgbG9nZ2luZyBsZXZl
bC4iIiIKLQotICAgIGZvciBzZXR0aW5nX25hbWUgaW4gc2V0dGluZ19uYW1lczoKLSAgICAgICAg
bG9nX2xldmVsID0gY29uZmlnLmdldG9wdGlvbihzZXR0aW5nX25hbWUpCi0gICAgICAgIGlmIGxv
Z19sZXZlbCBpcyBOb25lOgotICAgICAgICAgICAgbG9nX2xldmVsID0gY29uZmlnLmdldGluaShz
ZXR0aW5nX25hbWUpCi0gICAgICAgIGlmIGxvZ19sZXZlbDoKLSAgICAgICAgICAgIGJyZWFrCi0g
ICAgZWxzZToKLSAgICAgICAgcmV0dXJuCi0KLSAgICBpZiBpc2luc3RhbmNlKGxvZ19sZXZlbCwg
c2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgIGxvZ19sZXZlbCA9IGxvZ19sZXZlbC51cHBlcigp
Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gaW50KGdldGF0dHIobG9nZ2luZywgbG9nX2xldmVs
LCBsb2dfbGV2ZWwpKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAjIFB5dGhvbiBs
b2dnaW5nIGRvZXMgbm90IHJlY29nbmlzZSB0aGlzIGFzIGEgbG9nZ2luZyBsZXZlbAotICAgICAg
ICByYWlzZSBweXRlc3QuVXNhZ2VFcnJvcigKLSAgICAgICAgICAgICInezB9JyBpcyBub3QgcmVj
b2duaXplZCBhcyBhIGxvZ2dpbmcgbGV2ZWwgbmFtZSBmb3IgIgotICAgICAgICAgICAgIid7MX0n
LiBQbGVhc2UgY29uc2lkZXIgcGFzc2luZyB0aGUgIgotICAgICAgICAgICAgImxvZ2dpbmcgbGV2
ZWwgbnVtIGluc3RlYWQuIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgbG9nX2xldmVsLAotICAg
ICAgICAgICAgICAgIHNldHRpbmdfbmFtZSkpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29u
ZmlnKToKLSAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihMb2dnaW5nUGx1Z2luKGNv
bmZpZyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvZ2dpbmctcGx1Z2lu
JykKLQotCi1jbGFzcyBMb2dnaW5nUGx1Z2luKG9iamVjdCk6Ci0gICAgIiIiQXR0YWNoZXMgdG8g
dGhlIGxvZ2dpbmcgbW9kdWxlIGFuZCBjYXB0dXJlcyBsb2cgbWVzc2FnZXMgZm9yIGVhY2ggdGVz
dC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAgICAgICAi
IiJDcmVhdGVzIGEgbmV3IHBsdWdpbiB0byBjYXB0dXJlIGxvZyBtZXNzYWdlcy4KLQotICAgICAg
ICBUaGUgZm9ybWF0dGVyIGNhbiBiZSBzYWZlbHkgc2hhcmVkIGFjcm9zcyBhbGwgaGFuZGxlcnMg
c28KLSAgICAgICAgY3JlYXRlIGEgc2luZ2xlIG9uZSBmb3IgdGhlIGVudGlyZSB0ZXN0IHNlc3Np
b24gaGVyZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYubG9nX2NsaV9sZXZlbCA9IGdldF9h
Y3R1YWxfbG9nX2xldmVsKAotICAgICAgICAgICAgY29uZmlnLCAnbG9nX2NsaV9sZXZlbCcsICds
b2dfbGV2ZWwnKSBvciBsb2dnaW5nLldBUk5JTkcKLQotICAgICAgICBzZWxmLnByaW50X2xvZ3Mg
PSBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfcHJpbnQnKQotICAgICAgICBzZWxmLmZvcm1h
dHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAgICAgICAgZ2V0X29wdGlvbl9pbmkoY29u
ZmlnLCAnbG9nX2Zvcm1hdCcpLAotICAgICAgICAgICAgZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAn
bG9nX2RhdGVfZm9ybWF0JykpCi0KLSAgICAgICAgbG9nX2NsaV9oYW5kbGVyID0gbG9nZ2luZy5T
dHJlYW1IYW5kbGVyKHN5cy5zdGRlcnIpCi0gICAgICAgIGxvZ19jbGlfZm9ybWF0ID0gZ2V0X29w
dGlvbl9pbmkoCi0gICAgICAgICAgICBjb25maWcsICdsb2dfY2xpX2Zvcm1hdCcsICdsb2dfZm9y
bWF0JykKLSAgICAgICAgbG9nX2NsaV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAg
ICAgICAgICAgY29uZmlnLCAnbG9nX2NsaV9kYXRlX2Zvcm1hdCcsICdsb2dfZGF0ZV9mb3JtYXQn
KQotICAgICAgICBsb2dfY2xpX2Zvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAg
ICAgICAgbG9nX2NsaV9mb3JtYXQsCi0gICAgICAgICAgICBkYXRlZm10PWxvZ19jbGlfZGF0ZV9m
b3JtYXQpCi0gICAgICAgIHNlbGYubG9nX2NsaV9oYW5kbGVyID0gbG9nX2NsaV9oYW5kbGVyICAj
IG5lZWRlZCBmb3IgYSBzaW5nbGUgdW5pdHRlc3QKLSAgICAgICAgc2VsZi5saXZlX2xvZ3MgPSBj
YXRjaGluZ19sb2dzKGxvZ19jbGlfaGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvcm1hdHRlcj1sb2dfY2xpX2Zvcm1hdHRlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsPXNlbGYubG9nX2NsaV9sZXZlbCkKLQotICAg
ICAgICBsb2dfZmlsZSA9IGdldF9vcHRpb25faW5pKGNvbmZpZywgJ2xvZ19maWxlJykKLSAgICAg
ICAgaWYgbG9nX2ZpbGU6Ci0gICAgICAgICAgICBzZWxmLmxvZ19maWxlX2xldmVsID0gZ2V0X2Fj
dHVhbF9sb2dfbGV2ZWwoCi0gICAgICAgICAgICAgICAgY29uZmlnLCAnbG9nX2ZpbGVfbGV2ZWwn
KSBvciBsb2dnaW5nLldBUk5JTkcKLQotICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0ID0gZ2V0
X29wdGlvbl9pbmkoCi0gICAgICAgICAgICAgICAgY29uZmlnLCAnbG9nX2ZpbGVfZm9ybWF0Jywg
J2xvZ19mb3JtYXQnKQotICAgICAgICAgICAgbG9nX2ZpbGVfZGF0ZV9mb3JtYXQgPSBnZXRfb3B0
aW9uX2luaSgKLSAgICAgICAgICAgICAgICBjb25maWcsICdsb2dfZmlsZV9kYXRlX2Zvcm1hdCcs
ICdsb2dfZGF0ZV9mb3JtYXQnKQotICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVyID0g
bG9nZ2luZy5GaWxlSGFuZGxlcigKLSAgICAgICAgICAgICAgICBsb2dfZmlsZSwKLSAgICAgICAg
ICAgICAgICAjIEVhY2ggcHl0ZXN0IHJ1bnRlc3RzIHNlc3Npb24gd2lsbCB3cml0ZSB0byBhIGNs
ZWFuIGxvZ2ZpbGUKLSAgICAgICAgICAgICAgICBtb2RlPSd3JykKLSAgICAgICAgICAgIGxvZ19m
aWxlX2Zvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAgICAgICAgICAgIGxvZ19m
aWxlX2Zvcm1hdCwKLSAgICAgICAgICAgICAgICBkYXRlZm10PWxvZ19maWxlX2RhdGVfZm9ybWF0
KQotICAgICAgICAgICAgc2VsZi5sb2dfZmlsZV9oYW5kbGVyLnNldEZvcm1hdHRlcihsb2dfZmls
ZV9mb3JtYXR0ZXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmxvZ19maWxlX2hh
bmRsZXIgPSBOb25lCi0KLSAgICBAY29udGV4dG1hbmFnZXIKLSAgICBkZWYgX3J1bnRlc3RfZm9y
KHNlbGYsIGl0ZW0sIHdoZW4pOgotICAgICAgICAiIiJJbXBsZW1lbnRzIHRoZSBpbnRlcm5hbHMg
b2YgcHl0ZXN0X3J1bnRlc3RfeHh4KCkgaG9vay4iIiIKLSAgICAgICAgd2l0aCBjYXRjaGluZ19s
b2dzKExvZ0NhcHR1cmVIYW5kbGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jt
YXR0ZXI9c2VsZi5mb3JtYXR0ZXIpIGFzIGxvZ19oYW5kbGVyOgotICAgICAgICAgICAgaXRlbS5j
YXRjaF9sb2dfaGFuZGxlciA9IGxvZ19oYW5kbGVyCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgeWllbGQgICMgcnVuIHRlc3QKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICAgICAgZGVsIGl0ZW0uY2F0Y2hfbG9nX2hhbmRsZXIKLQotICAgICAgICAgICAgaWYgc2Vs
Zi5wcmludF9sb2dzOgotICAgICAgICAgICAgICAgICMgQWRkIGEgY2FwdHVyZWQgbG9nIHNlY3Rp
b24gdG8gdGhlIHJlcG9ydC4KLSAgICAgICAgICAgICAgICBsb2cgPSBsb2dfaGFuZGxlci5zdHJl
YW0uZ2V0dmFsdWUoKS5zdHJpcCgpCi0gICAgICAgICAgICAgICAgaXRlbS5hZGRfcmVwb3J0X3Nl
Y3Rpb24od2hlbiwgJ2xvZycsIGxvZykKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBw
ZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoc2VsZiwgaXRlbSk6Ci0gICAg
ICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoaXRlbSwgJ3NldHVwJyk6Ci0gICAgICAgICAgICB5
aWVsZAotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9jYWxsKHNlbGYsIGl0ZW0pOgotICAgICAgICB3aXRoIHNlbGYuX3J1bnRl
c3RfZm9yKGl0ZW0sICdjYWxsJyk6Ci0gICAgICAgICAgICB5aWVsZAotCi0gICAgQHB5dGVzdC5o
b29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93
bihzZWxmLCBpdGVtKToKLSAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2ZvcihpdGVtLCAndGVh
cmRvd24nKToKLSAgICAgICAgICAgIHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3
cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0bG9vcChzZWxmLCBzZXNzaW9uKToK
LSAgICAgICAgIiIiUnVucyBhbGwgY29sbGVjdGVkIHRlc3QgaXRlbXMuIiIiCi0gICAgICAgIHdp
dGggc2VsZi5saXZlX2xvZ3M6Ci0gICAgICAgICAgICBpZiBzZWxmLmxvZ19maWxlX2hhbmRsZXIg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgd2l0aCBjbG9zaW5nKHNlbGYubG9nX2ZpbGVf
aGFuZGxlcik6Ci0gICAgICAgICAgICAgICAgICAgIHdpdGggY2F0Y2hpbmdfbG9ncyhzZWxmLmxv
Z19maWxlX2hhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXZlbD1zZWxmLmxvZ19maWxlX2xldmVsKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxk
ICAjIHJ1biBhbGwgdGhlIHRlc3RzCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHlpZWxkICAjIHJ1biBhbGwgdGhlIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L21haW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21haW4ucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI1NTU0MDk4ZGFjMjk5ZjZkOWM3MWQyYmYxOTM5ZjhhZWE0MzMxMTEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9tYWluLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODIxICswLDAgQEAKLSIiIiBj
b3JlIGltcGxlbWVudGF0aW9uIG9mIHRlc3RpbmcgcHJvY2VzczogaW5pdCwgc2Vzc2lvbiwgcnVu
dGVzdCBsb29wLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0IG9zCi1p
bXBvcnQgc2l4Ci1pbXBvcnQgc3lzCi0KLWltcG9ydCBfcHl0ZXN0Ci1mcm9tIF9weXRlc3QgaW1w
b3J0IG5vZGVzCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IHB5Ci10cnk6Ci0gICAgZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcgYXMgTWFwcGluZ01peGluCi1leGNl
cHQgSW1wb3J0RXJyb3I6Ci0gICAgZnJvbSBVc2VyRGljdCBpbXBvcnQgRGljdE1peGluIGFzIE1h
cHBpbmdNaXhpbgotCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBkaXJlY3RvcnlfYXJnLCBV
c2FnZUVycm9yLCBob29raW1wbAotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBleGl0Ci1m
cm9tIF9weXRlc3QucnVubmVyIGltcG9ydCBjb2xsZWN0X29uZV9ub2RlCi0KLXRyYWNlYmFja2N1
dGRpciA9IHB5LnBhdGgubG9jYWwoX3B5dGVzdC5fX2ZpbGVfXykuZGlycGF0aCgpCi0KLSMgZXhp
dGNvZGVzIGZvciB0aGUgY29tbWFuZCBsaW5lCi1FWElUX09LID0gMAotRVhJVF9URVNUU0ZBSUxF
RCA9IDEKLUVYSVRfSU5URVJSVVBURUQgPSAyCi1FWElUX0lOVEVSTkFMRVJST1IgPSAzCi1FWElU
X1VTQUdFRVJST1IgPSA0Ci1FWElUX05PVEVTVFNDT0xMRUNURUQgPSA1Ci0KLQotZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBwYXJzZXIuYWRkaW5pKCJub3JlY3Vyc2VkaXJzIiwg
ImRpcmVjdG9yeSBwYXR0ZXJucyB0byBhdm9pZCBmb3IgcmVjdXJzaW9uIiwKLSAgICAgICAgICAg
ICAgICAgIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsnLionLCAnYnVpbGQnLCAnZGlzdCcsICdDVlMn
LCAnX2RhcmNzJywgJ3thcmNofScsICcqLmVnZycsICd2ZW52J10pCi0gICAgcGFyc2VyLmFkZGlu
aSgidGVzdHBhdGhzIiwgImRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3IgdGVzdHMgd2hlbiBubyBm
aWxlcyBvciBkaXJlY3RvcmllcyBhcmUgZ2l2ZW4gaW4gdGhlICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY29tbWFuZCBsaW5lLiIsCi0gICAgICAgICAgICAgICAgICB0eXBlPSJh
cmdzIiwgZGVmYXVsdD1bXSkKLSAgICAjIHBhcnNlci5hZGRpbmkoImRpcnBhdHRlcm5zIiwKLSAg
ICAjICAgICJwYXR0ZXJucyBzcGVjaWZ5aW5nIHBvc3NpYmxlIGxvY2F0aW9ucyBvZiB0ZXN0IGZp
bGVzIiwKLSAgICAjICAgIHR5cGU9ImxpbmVsaXN0IiwgZGVmYXVsdD1bIioqL3Rlc3RfKi50eHQi
LAotICAgICMgICAgICAgICAgICAiKiovdGVzdF8qLnB5IiwgIioqLypfdGVzdC5weSJdCi0gICAg
IyApCi0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiLCAicnVubmluZyBhbmQg
c2VsZWN0aW9uIG9wdGlvbnMiKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy14JywgJy0tZXhpdGZp
cnN0JywgYWN0aW9uPSJzdG9yZV9jb25zdCIsCi0gICAgICAgICAgICAgICAgICAgICBkZXN0PSJt
YXhmYWlsIiwgY29uc3Q9MSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImV4aXQgaW5zdGFu
dGx5IG9uIGZpcnN0IGVycm9yIG9yIGZhaWxlZCB0ZXN0LiIpLAotICAgIGdyb3VwLl9hZGRvcHRp
b24oJy0tbWF4ZmFpbCcsIG1ldGF2YXI9Im51bSIsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlIiwgdHlwZT1pbnQsIGRlc3Q9Im1heGZhaWwiLCBkZWZhdWx0PTAsCi0gICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJleGl0IGFmdGVyIGZpcnN0IG51bSBmYWlsdXJlcyBvciBlcnJv
cnMuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctLXN0cmljdCcsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJtYXJrcyBub3QgcmVnaXN0ZXJlZCBpbiBj
b25maWd1cmF0aW9uIGZpbGUgcmFpc2UgZXJyb3JzLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigi
LWMiLCBtZXRhdmFyPSJmaWxlIiwgdHlwZT1zdHIsIGRlc3Q9ImluaWZpbGVuYW1lIiwKLSAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9ImxvYWQgY29uZmlndXJhdGlvbiBmcm9tIGBmaWxlYCBpbnN0
ZWFkIG9mIHRyeWluZyB0byBsb2NhdGUgb25lIG9mIHRoZSBpbXBsaWNpdCAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJjb25maWd1cmF0aW9uIGZpbGVzLiIpCi0gICAgZ3JvdXAuX2FkZG9w
dGlvbigiLS1jb250aW51ZS1vbi1jb2xsZWN0aW9uLWVycm9ycyIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCi0gICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLCBkZXN0PSJjb250aW51ZV9v
bl9jb2xsZWN0aW9uX2Vycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJGb3JjZSB0
ZXN0IGV4ZWN1dGlvbiBldmVuIGlmIGNvbGxlY3Rpb24gZXJyb3JzIG9jY3VyLiIpCi0KLSAgICBn
cm91cCA9IHBhcnNlci5nZXRncm91cCgiY29sbGVjdCIsICJjb2xsZWN0aW9uIikKLSAgICBncm91
cC5hZGRvcHRpb24oJy0tY29sbGVjdG9ubHknLCAnLS1jb2xsZWN0LW9ubHknLCBhY3Rpb249InN0
b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IGNvbGxlY3QgdGVzdHMs
IGRvbid0IGV4ZWN1dGUgdGhlbS4iKSwKLSAgICBncm91cC5hZGRvcHRpb24oJy0tcHlhcmdzJywg
YWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0idHJ5IHRvIGlu
dGVycHJldCBhbGwgYXJndW1lbnRzIGFzIHB5dGhvbiBwYWNrYWdlcy4iKQotICAgIGdyb3VwLmFk
ZG9wdGlvbigiLS1pZ25vcmUiLCBhY3Rpb249ImFwcGVuZCIsIG1ldGF2YXI9InBhdGgiLAotICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJpZ25vcmUgcGF0aCBkdXJpbmcgY29sbGVjdGlvbiAobXVs
dGktYWxsb3dlZCkuIikKLSAgICAjIHdoZW4gY2hhbmdpbmcgdGhpcyB0byAtLWNvbmYtY3V0LWRp
ciwgY29uZmlnLnB5IENvbmZ0ZXN0LnNldGluaXRpYWwKLSAgICAjIG5lZWRzIHVwZ3JhZGluZyBh
cyB3ZWxsCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbmZjdXRkaXInLCBkZXN0PSJjb25mY3V0
ZGlyIiwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJkaXIiLCB0
eXBlPWZ1bmN0b29scy5wYXJ0aWFsKGRpcmVjdG9yeV9hcmcsIG9wdG5hbWU9Ii0tY29uZmN1dGRp
ciIpLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IGxvYWQgY29uZnRlc3QucHkncyBy
ZWxhdGl2ZSB0byBzcGVjaWZpZWQgZGlyLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLW5vY29u
ZnRlc3QnLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJu
b2NvbmZ0ZXN0IiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9u
J3QgbG9hZCBhbnkgY29uZnRlc3QucHkgZmlsZXMuIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0t
a2VlcGR1cGxpY2F0ZXMnLCAnLS1rZWVwLWR1cGxpY2F0ZXMnLCBhY3Rpb249InN0b3JlX3RydWUi
LAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJrZWVwZHVwbGljYXRlcyIsIGRlZmF1bHQ9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9IktlZXAgZHVwbGljYXRlIHRlc3RzLiIpCi0g
ICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbGxlY3QtaW4tdmlydHVhbGVudicsIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9J2NvbGxlY3RfaW5fdmlydHVhbGVu
dicsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGlnbm9y
ZSB0ZXN0cyBpbiBhIGxvY2FsIHZpcnR1YWxlbnYgZGlyZWN0b3J5IikKLQotICAgIGdyb3VwID0g
cGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRlc3Qgc2Vzc2lvbiBkZWJ1Z2dpbmcgYW5kIGNvbmZpZ3VyYXRpb24iKQotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1iYXNldGVtcCcsIGRlc3Q9ImJhc2V0ZW1wIiwgZGVmYXVsdD1Ob25lLCBt
ZXRhdmFyPSJkaXIiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJiYXNlIHRlbXBvcmFyeSBk
aXJlY3RvcnkgZm9yIHRoaXMgdGVzdCBydW4uIikKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShj
b25maWcpOgotICAgIF9faW1wb3J0X18oJ3B5dGVzdCcpLmNvbmZpZyA9IGNvbmZpZyAgIyBjb21w
YXRpYmlsdGl5Ci0KLQotZGVmIHdyYXBfc2Vzc2lvbihjb25maWcsIGRvaXQpOgotICAgICIiIlNr
ZWxldG9uIGNvbW1hbmQgbGluZSBwcm9ncmFtIiIiCi0gICAgc2Vzc2lvbiA9IFNlc3Npb24oY29u
ZmlnKQotICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfT0sKLSAgICBpbml0c3RhdGUgPSAw
Ci0gICAgdHJ5OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb25maWcuX2RvX2NvbmZpZ3Vy
ZSgpCi0gICAgICAgICAgICBpbml0c3RhdGUgPSAxCi0gICAgICAgICAgICBjb25maWcuaG9vay5w
eXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb249c2Vzc2lvbikKLSAgICAgICAgICAgIGluaXRzdGF0
ZSA9IDIKLSAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IGRvaXQoY29uZmlnLCBzZXNz
aW9uKSBvciAwCi0gICAgICAgIGV4Y2VwdCBVc2FnZUVycm9yOgotICAgICAgICAgICAgcmFpc2UK
LSAgICAgICAgZXhjZXB0IEZhaWxlZDoKLSAgICAgICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9
IEVYSVRfVEVTVFNGQUlMRUQKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAg
ICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCi0gICAgICAg
ICAgICBpZiBpbml0c3RhdGUgPCAyIGFuZCBpc2luc3RhbmNlKGV4Y2luZm8udmFsdWUsIGV4aXQu
RXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCd7MH06IHsxfVxu
Jy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIGV4Y2luZm8udHlwZW5hbWUsIGV4Y2luZm8u
dmFsdWUubXNnKSkKLSAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9rZXlib2FyZF9pbnRl
cnJ1cHQoZXhjaW5mbz1leGNpbmZvKQotICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0g
RVhJVF9JTlRFUlJVUFRFRAotICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIGV4
Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgICAgICAgICAgY29uZmln
Lm5vdGlmeV9leGNlcHRpb24oZXhjaW5mbywgY29uZmlnLm9wdGlvbikKLSAgICAgICAgICAgIHNl
c3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5URVJOQUxFUlJPUgotICAgICAgICAgICAgaWYgZXhj
aW5mby5lcnJpc2luc3RhbmNlKFN5c3RlbUV4aXQpOgotICAgICAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIm1haW5sb29wOiBjYXVnaHQgU3B1cmlvdXMgU3lzdGVtRXhpdCFcbiIpCi0KLSAg
ICBmaW5hbGx5OgotICAgICAgICBleGNpbmZvID0gTm9uZSAgIyBFeHBsaWNpdGx5IGJyZWFrIHJl
ZmVyZW5jZSBjeWNsZS4KLSAgICAgICAgc2Vzc2lvbi5zdGFydGRpci5jaGRpcigpCi0gICAgICAg
IGlmIGluaXRzdGF0ZSA+PSAyOgotICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Np
b25maW5pc2goCi0gICAgICAgICAgICAgICAgc2Vzc2lvbj1zZXNzaW9uLAotICAgICAgICAgICAg
ICAgIGV4aXRzdGF0dXM9c2Vzc2lvbi5leGl0c3RhdHVzKQotICAgICAgICBjb25maWcuX2Vuc3Vy
ZV91bmNvbmZpZ3VyZSgpCi0gICAgcmV0dXJuIHNlc3Npb24uZXhpdHN0YXR1cwotCi0KLWRlZiBw
eXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgcmV0dXJuIHdyYXBfc2Vzc2lvbihjb25m
aWcsIF9tYWluKQotCi0KLWRlZiBfbWFpbihjb25maWcsIHNlc3Npb24pOgotICAgICIiIiBkZWZh
dWx0IGNvbW1hbmQgbGluZSBwcm90b2NvbCBmb3IgaW5pdGlhbGl6YXRpb24sIHNlc3Npb24sCi0g
ICAgcnVubmluZyB0ZXN0cyBhbmQgcmVwb3J0aW5nLiAiIiIKLSAgICBjb25maWcuaG9vay5weXRl
c3RfY29sbGVjdGlvbihzZXNzaW9uPXNlc3Npb24pCi0gICAgY29uZmlnLmhvb2sucHl0ZXN0X3J1
bnRlc3Rsb29wKHNlc3Npb249c2Vzc2lvbikKLQotICAgIGlmIHNlc3Npb24udGVzdHNmYWlsZWQ6
Ci0gICAgICAgIHJldHVybiBFWElUX1RFU1RTRkFJTEVECi0gICAgZWxpZiBzZXNzaW9uLnRlc3Rz
Y29sbGVjdGVkID09IDA6Ci0gICAgICAgIHJldHVybiBFWElUX05PVEVTVFNDT0xMRUNURUQKLQot
Ci1kZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6Ci0gICAgcmV0dXJuIHNlc3Npb24ucGVy
Zm9ybV9jb2xsZWN0KCkKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rsb29wKHNlc3Npb24pOgotICAg
IGlmIChzZXNzaW9uLnRlc3RzZmFpbGVkIGFuZAotICAgICAgICAgICAgbm90IHNlc3Npb24uY29u
ZmlnLm9wdGlvbi5jb250aW51ZV9vbl9jb2xsZWN0aW9uX2Vycm9ycyk6Ci0gICAgICAgIHJhaXNl
IHNlc3Npb24uSW50ZXJydXB0ZWQoCi0gICAgICAgICAgICAiJWQgZXJyb3JzIGR1cmluZyBjb2xs
ZWN0aW9uIiAlIHNlc3Npb24udGVzdHNmYWlsZWQpCi0KLSAgICBpZiBzZXNzaW9uLmNvbmZpZy5v
cHRpb24uY29sbGVjdG9ubHk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBmb3IgaSwgaXRl
bSBpbiBlbnVtZXJhdGUoc2Vzc2lvbi5pdGVtcyk6Ci0gICAgICAgIG5leHRpdGVtID0gc2Vzc2lv
bi5pdGVtc1tpICsgMV0gaWYgaSArIDEgPCBsZW4oc2Vzc2lvbi5pdGVtcykgZWxzZSBOb25lCi0g
ICAgICAgIGl0ZW0uY29uZmlnLmhvb2sucHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbT1pdGVt
LCBuZXh0aXRlbT1uZXh0aXRlbSkKLSAgICAgICAgaWYgc2Vzc2lvbi5zaG91bGRmYWlsOgotICAg
ICAgICAgICAgcmFpc2Ugc2Vzc2lvbi5GYWlsZWQoc2Vzc2lvbi5zaG91bGRmYWlsKQotICAgICAg
ICBpZiBzZXNzaW9uLnNob3VsZHN0b3A6Ci0gICAgICAgICAgICByYWlzZSBzZXNzaW9uLkludGVy
cnVwdGVkKHNlc3Npb24uc2hvdWxkc3RvcCkKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBfaW5f
dmVudihwYXRoKToKLSAgICAiIiJBdHRlbXB0cyB0byBkZXRlY3QgaWYgYGBwYXRoYGAgaXMgdGhl
IHJvb3Qgb2YgYSBWaXJ0dWFsIEVudmlyb25tZW50IGJ5Ci0gICAgY2hlY2tpbmcgZm9yIHRoZSBl
eGlzdGVuY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGFjdGl2YXRlIHNjcmlwdCIiIgotICAgIGJpbmRp
ciA9IHBhdGguam9pbignU2NyaXB0cycgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicp
IGVsc2UgJ2JpbicpCi0gICAgaWYgbm90IGJpbmRpci5leGlzdHMoKToKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgYWN0aXZhdGVzID0gKCdhY3RpdmF0ZScsICdhY3RpdmF0ZS5jc2gnLCAnYWN0
aXZhdGUuZmlzaCcsCi0gICAgICAgICAgICAgICAgICdBY3RpdmF0ZScsICdBY3RpdmF0ZS5iYXQn
LCAnQWN0aXZhdGUucHMxJykKLSAgICByZXR1cm4gYW55KFtmbmFtZS5iYXNlbmFtZSBpbiBhY3Rp
dmF0ZXMgZm9yIGZuYW1lIGluIGJpbmRpci5saXN0ZGlyKCldKQotCi0KLWRlZiBweXRlc3RfaWdu
b3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToKLSAgICBpZ25vcmVfcGF0aHMgPSBjb25maWcuX2dl
dGNvbmZ0ZXN0X3BhdGhsaXN0KCJjb2xsZWN0X2lnbm9yZSIsIHBhdGg9cGF0aC5kaXJwYXRoKCkp
Ci0gICAgaWdub3JlX3BhdGhzID0gaWdub3JlX3BhdGhzIG9yIFtdCi0gICAgZXhjbHVkZW9wdCA9
IGNvbmZpZy5nZXRvcHRpb24oImlnbm9yZSIpCi0gICAgaWYgZXhjbHVkZW9wdDoKLSAgICAgICAg
aWdub3JlX3BhdGhzLmV4dGVuZChbcHkucGF0aC5sb2NhbCh4KSBmb3IgeCBpbiBleGNsdWRlb3B0
XSkKLQotICAgIGlmIHB5LnBhdGgubG9jYWwocGF0aCkgaW4gaWdub3JlX3BhdGhzOgotICAgICAg
ICByZXR1cm4gVHJ1ZQotCi0gICAgYWxsb3dfaW5fdmVudiA9IGNvbmZpZy5nZXRvcHRpb24oImNv
bGxlY3RfaW5fdmlydHVhbGVudiIpCi0gICAgaWYgX2luX3ZlbnYocGF0aCkgYW5kIG5vdCBhbGxv
d19pbl92ZW52OgotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgIyBTa2lwIGR1cGxpY2F0ZSBw
YXRocy4KLSAgICBrZWVwZHVwbGljYXRlcyA9IGNvbmZpZy5nZXRvcHRpb24oImtlZXBkdXBsaWNh
dGVzIikKLSAgICBkdXBsaWNhdGVfcGF0aHMgPSBjb25maWcucGx1Z2lubWFuYWdlci5fZHVwbGlj
YXRlcGF0aHMKLSAgICBpZiBub3Qga2VlcGR1cGxpY2F0ZXM6Ci0gICAgICAgIGlmIHBhdGggaW4g
ZHVwbGljYXRlX3BhdGhzOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGR1cGxpY2F0ZV9wYXRocy5hZGQocGF0aCkKLQotICAgIHJldHVybiBGYWxz
ZQotCi0KLWNsYXNzIEZTSG9va1Byb3h5OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmc3BhdGgs
IHBtLCByZW1vdmVfbW9kcyk6Ci0gICAgICAgIHNlbGYuZnNwYXRoID0gZnNwYXRoCi0gICAgICAg
IHNlbGYucG0gPSBwbQotICAgICAgICBzZWxmLnJlbW92ZV9tb2RzID0gcmVtb3ZlX21vZHMKLQot
ICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgeCA9IHNlbGYucG0uc3Vi
c2V0X2hvb2tfY2FsbGVyKG5hbWUsIHJlbW92ZV9wbHVnaW5zPXNlbGYucmVtb3ZlX21vZHMpCi0g
ICAgICAgIHNlbGYuX19kaWN0X19bbmFtZV0gPSB4Ci0gICAgICAgIHJldHVybiB4Ci0KLQotY2xh
c3MgX0NvbXBhdFByb3BlcnR5KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUp
OgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0KLSAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmos
IG93bmVyKToKLSAgICAgICAgaWYgb2JqIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gc2Vs
ZgotCi0gICAgICAgICMgVE9ETzogcmVlbmFibGUgaW4gdGhlIGZlYXR1cmVzIGJyYW5jaAotICAg
ICAgICAjIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICMgICAgICJ1c2FnZSBvZiB7b3duZXIhcn0u
e25hbWV9IGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgcHl0ZXN0LntuYW1lfSBpbnN0ZWFkIi5m
b3JtYXQoCi0gICAgICAgICMgICAgICAgICBuYW1lPXNlbGYubmFtZSwgb3duZXI9dHlwZShvd25l
cikuX19uYW1lX18pLAotICAgICAgICAjICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCBz
dGFja2xldmVsPTIpCi0gICAgICAgIHJldHVybiBnZXRhdHRyKF9faW1wb3J0X18oJ3B5dGVzdCcp
LCBzZWxmLm5hbWUpCi0KLQotY2xhc3MgTm9kZUtleXdvcmRzKE1hcHBpbmdNaXhpbik6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgotICAgICAgICBzZWxmLm5vZGUgPSBub2RlCi0gICAg
ICAgIHNlbGYucGFyZW50ID0gbm9kZS5wYXJlbnQKLSAgICAgICAgc2VsZi5fbWFya2VycyA9IHtu
b2RlLm5hbWU6IFRydWV9Ci0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21hcmtlcnNba2V5XQotICAgICAgICBl
eGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBpZiBzZWxmLnBhcmVudCBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQua2V5d29y
ZHNba2V5XQotCi0gICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgotICAgICAg
ICBzZWxmLl9tYXJrZXJzW2tleV0gPSB2YWx1ZQotCi0gICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYs
IGtleSk6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBkZWxldGUga2V5IGluIGtl
eXdvcmRzIGRpY3QiKQotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICBzZWVuID0g
c2V0KHNlbGYuX21hcmtlcnMpCi0gICAgICAgIGlmIHNlbGYucGFyZW50IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2Vlbi51cGRhdGUoc2VsZi5wYXJlbnQua2V5d29yZHMpCi0gICAgICAgIHJl
dHVybiBpdGVyKHNlZW4pCi0KLSAgICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
IGxlbihzZWxmLl9faXRlcl9fKCkpCi0KLSAgICBkZWYga2V5cyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIGxpc3Qoc2VsZikKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
ICI8Tm9kZUtleXdvcmRzIGZvciBub2RlICVzPiIgJSAoc2VsZi5ub2RlLCApCi0KLQotY2xhc3Mg
Tm9kZShvYmplY3QpOgotICAgICIiIiBiYXNlIGNsYXNzIGZvciBDb2xsZWN0b3IgYW5kIEl0ZW0g
dGhlIHRlc3QgY29sbGVjdGlvbiB0cmVlLgotICAgIENvbGxlY3RvciBzdWJjbGFzc2VzIGhhdmUg
Y2hpbGRyZW4sIEl0ZW1zIGFyZSB0ZXJtaW5hbCBub2Rlcy4iIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBuYW1lLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5vbmUsIHNlc3Npb249Tm9uZSk6Ci0g
ICAgICAgICM6IGEgdW5pcXVlIG5hbWUgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgcGFyZW50IG5v
ZGUKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotCi0gICAgICAgICM6IHRoZSBwYXJlbnQgY29s
bGVjdG9yIG5vZGUuCi0gICAgICAgIHNlbGYucGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgIzog
dGhlIHB5dGVzdCBjb25maWcgb2JqZWN0Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnIG9y
IHBhcmVudC5jb25maWcKLQotICAgICAgICAjOiB0aGUgc2Vzc2lvbiB0aGlzIG5vZGUgaXMgcGFy
dCBvZgotICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uIG9yIHBhcmVudC5zZXNzaW9uCi0K
LSAgICAgICAgIzogZmlsZXN5c3RlbSBwYXRoIHdoZXJlIHRoaXMgbm9kZSB3YXMgY29sbGVjdGVk
IGZyb20gKGNhbiBiZSBOb25lKQotICAgICAgICBzZWxmLmZzcGF0aCA9IGdldGF0dHIocGFyZW50
LCAnZnNwYXRoJywgTm9uZSkKLQotICAgICAgICAjOiBrZXl3b3Jkcy9tYXJrZXJzIGNvbGxlY3Rl
ZCBmcm9tIGFsbCBzY29wZXMKLSAgICAgICAgc2VsZi5rZXl3b3JkcyA9IE5vZGVLZXl3b3Jkcyhz
ZWxmKQotCi0gICAgICAgICM6IGFsbG93IGFkZGluZyBvZiBleHRyYSBrZXl3b3JkcyB0byB1c2Ug
Zm9yIG1hdGNoaW5nCi0gICAgICAgIHNlbGYuZXh0cmFfa2V5d29yZF9tYXRjaGVzID0gc2V0KCkK
LQotICAgICAgICAjIHVzZWQgZm9yIHN0b3JpbmcgYXJ0aWZpY2lhbCBmaXh0dXJlZGVmcyBmb3Ig
ZGlyZWN0IHBhcmFtZXRyaXphdGlvbgotICAgICAgICBzZWxmLl9uYW1lMnBzZXVkb2ZpeHR1cmVk
ZWYgPSB7fQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGlob29rKHNlbGYpOgotICAgICAgICAi
IiIgZnNwYXRoIHNlbnNpdGl2ZSBob29rIHByb3h5IHVzZWQgdG8gY2FsbCBweXRlc3QgaG9va3Mi
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5nZXRob29rcHJveHkoc2VsZi5mc3BhdGgp
Ci0KLSAgICBNb2R1bGUgPSBfQ29tcGF0UHJvcGVydHkoIk1vZHVsZSIpCi0gICAgQ2xhc3MgPSBf
Q29tcGF0UHJvcGVydHkoIkNsYXNzIikKLSAgICBJbnN0YW5jZSA9IF9Db21wYXRQcm9wZXJ0eSgi
SW5zdGFuY2UiKQotICAgIEZ1bmN0aW9uID0gX0NvbXBhdFByb3BlcnR5KCJGdW5jdGlvbiIpCi0g
ICAgRmlsZSA9IF9Db21wYXRQcm9wZXJ0eSgiRmlsZSIpCi0gICAgSXRlbSA9IF9Db21wYXRQcm9w
ZXJ0eSgiSXRlbSIpCi0KLSAgICBkZWYgX2dldGN1c3RvbWNsYXNzKHNlbGYsIG5hbWUpOgotICAg
ICAgICBtYXliZV9jb21wYXRwcm9wID0gZ2V0YXR0cih0eXBlKHNlbGYpLCBuYW1lKQotICAgICAg
ICBpZiBpc2luc3RhbmNlKG1heWJlX2NvbXBhdHByb3AsIF9Db21wYXRQcm9wZXJ0eSk6Ci0gICAg
ICAgICAgICByZXR1cm4gZ2V0YXR0cihfX2ltcG9ydF9fKCdweXRlc3QnKSwgbmFtZSkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIGNscyA9IGdldGF0dHIoc2VsZiwgbmFtZSkKLSAgICAgICAg
ICAgICMgVE9ETzogcmVlbmFibGUgaW4gdGhlIGZlYXR1cmVzIGJyYW5jaAotICAgICAgICAgICAg
IyB3YXJuaW5ncy53YXJuKCJ1c2Ugb2Ygbm9kZS4lcyBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAg
ICAgICAjICAgICJ1c2UgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbSguLi4pIHRvIGNyZWF0ZSBj
dXN0b20gIgotICAgICAgICAgICAgIyAgICAiY29sbGVjdGlvbiBub2RlcyIgJSBuYW1lLCBjYXRl
Z29yeT1EZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIHJldHVybiBjbHMKLQotICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8JXMgJXI+IiAlIChzZWxmLl9fY2xhc3Nf
Xy5fX25hbWVfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdu
YW1lJywgTm9uZSkpCi0KLSAgICBkZWYgd2FybihzZWxmLCBjb2RlLCBtZXNzYWdlKToKLSAgICAg
ICAgIiIiIGdlbmVyYXRlIGEgd2FybmluZyB3aXRoIHRoZSBnaXZlbiBjb2RlIGFuZCBtZXNzYWdl
IGZvciB0aGlzCi0gICAgICAgIGl0ZW0uICIiIgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShj
b2RlLCBzdHIpCi0gICAgICAgIGZzbG9jYXRpb24gPSBnZXRhdHRyKHNlbGYsICJsb2NhdGlvbiIs
IE5vbmUpCi0gICAgICAgIGlmIGZzbG9jYXRpb24gaXMgTm9uZToKLSAgICAgICAgICAgIGZzbG9j
YXRpb24gPSBnZXRhdHRyKHNlbGYsICJmc3BhdGgiLCBOb25lKQotICAgICAgICBzZWxmLmlob29r
LnB5dGVzdF9sb2d3YXJuaW5nLmNhbGxfaGlzdG9yaWMoa3dhcmdzPWRpY3QoCi0gICAgICAgICAg
ICBjb2RlPWNvZGUsIG1lc3NhZ2U9bWVzc2FnZSwKLSAgICAgICAgICAgIG5vZGVpZD1zZWxmLm5v
ZGVpZCwgZnNsb2NhdGlvbj1mc2xvY2F0aW9uKSkKLQotICAgICMgbWV0aG9kcyBmb3Igb3JkZXJp
bmcgbm9kZXMKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbm9kZWlkKHNlbGYpOgotICAgICAgICAi
IiIgYSA6Oi1zZXBhcmF0ZWQgc3RyaW5nIGRlbm90aW5nIGl0cyBjb2xsZWN0aW9uIHRyZWUgYWRk
cmVzcy4gIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9ub2RlaWQK
LSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgc2VsZi5fbm9kZWlk
ID0geCA9IHNlbGYuX21ha2VpZCgpCi0gICAgICAgICAgICByZXR1cm4geAotCi0gICAgZGVmIF9t
YWtlaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5ub2RlaWQgKyAiOjoiICsg
c2VsZi5uYW1lCi0KLSAgICBkZWYgX19oYXNoX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBoYXNo
KHNlbGYubm9kZWlkKQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAg
ICBkZWYgdGVhcmRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBsaXN0Y2hhaW4o
c2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gbGlzdCBvZiBhbGwgcGFyZW50IGNvbGxlY3RvcnMg
dXAgdG8gc2VsZiwKLSAgICAgICAgICAgIHN0YXJ0aW5nIGZyb20gcm9vdCBvZiBjb2xsZWN0aW9u
IHRyZWUuICIiIgotICAgICAgICBjaGFpbiA9IFtdCi0gICAgICAgIGl0ZW0gPSBzZWxmCi0gICAg
ICAgIHdoaWxlIGl0ZW0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjaGFpbi5hcHBlbmQoaXRl
bSkKLSAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnBhcmVudAotICAgICAgICBjaGFpbi5yZXZlcnNl
KCkKLSAgICAgICAgcmV0dXJuIGNoYWluCi0KLSAgICBkZWYgYWRkX21hcmtlcihzZWxmLCBtYXJr
ZXIpOgotICAgICAgICAiIiIgZHluYW1pY2FsbHkgYWRkIGEgbWFya2VyIG9iamVjdCB0byB0aGUg
bm9kZS4KLQotICAgICAgICBgYG1hcmtlcmBgIGNhbiBiZSBhIHN0cmluZyBvciBweXRlc3QubWFy
ay4qIGluc3RhbmNlLgotICAgICAgICAiIiIKLSAgICAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1w
b3J0IE1hcmtEZWNvcmF0b3IsIE1BUktfR0VOCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobWFya2Vy
LCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgIG1hcmtlciA9IGdldGF0dHIoTUFSS19H
RU4sIG1hcmtlcikKLSAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShtYXJrZXIsIE1hcmtEZWNv
cmF0b3IpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaXMgbm90IGEgc3RyaW5nIG9y
IHB5dGVzdC5tYXJrLiogTWFya2VyIikKLSAgICAgICAgc2VsZi5rZXl3b3Jkc1ttYXJrZXIubmFt
ZV0gPSBtYXJrZXIKLQotICAgIGRlZiBnZXRfbWFya2VyKHNlbGYsIG5hbWUpOgotICAgICAgICAi
IiIgZ2V0IGEgbWFya2VyIG9iamVjdCBmcm9tIHRoaXMgbm9kZSBvciBOb25lIGlmCi0gICAgICAg
IHRoZSBub2RlIGRvZXNuJ3QgaGF2ZSBhIG1hcmtlciB3aXRoIHRoYXQgbmFtZS4gIiIiCi0gICAg
ICAgIHZhbCA9IHNlbGYua2V5d29yZHMuZ2V0KG5hbWUsIE5vbmUpCi0gICAgICAgIGlmIHZhbCBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5m
bywgTWFya0RlY29yYXRvcgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIChNYXJrRGVj
b3JhdG9yLCBNYXJrSW5mbykpOgotICAgICAgICAgICAgICAgIHJldHVybiB2YWwKLQotICAgIGRl
ZiBsaXN0ZXh0cmFrZXl3b3JkcyhzZWxmKToKLSAgICAgICAgIiIiIFJldHVybiBhIHNldCBvZiBh
bGwgZXh0cmEga2V5d29yZHMgaW4gc2VsZiBhbmQgYW55IHBhcmVudHMuIiIiCi0gICAgICAgIGV4
dHJhX2tleXdvcmRzID0gc2V0KCkKLSAgICAgICAgaXRlbSA9IHNlbGYKLSAgICAgICAgZm9yIGl0
ZW0gaW4gc2VsZi5saXN0Y2hhaW4oKToKLSAgICAgICAgICAgIGV4dHJhX2tleXdvcmRzLnVwZGF0
ZShpdGVtLmV4dHJhX2tleXdvcmRfbWF0Y2hlcykKLSAgICAgICAgcmV0dXJuIGV4dHJhX2tleXdv
cmRzCi0KLSAgICBkZWYgbGlzdG5hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4gW3gubmFtZSBm
b3IgeCBpbiBzZWxmLmxpc3RjaGFpbigpXQotCi0gICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBm
aW4pOgotICAgICAgICAiIiIgcmVnaXN0ZXIgYSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0
aGlzIG5vZGUgaXMgZmluYWxpemVkLgotCi0gICAgICAgIFRoaXMgbWV0aG9kIGNhbiBvbmx5IGJl
IGNhbGxlZCB3aGVuIHRoaXMgbm9kZSBpcyBhY3RpdmUKLSAgICAgICAgaW4gYSBzZXR1cCBjaGFp
biwgZm9yIGV4YW1wbGUgZHVyaW5nIHNlbGYuc2V0dXAoKS4KLSAgICAgICAgIiIiCi0gICAgICAg
IHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoZmluLCBzZWxmKQotCi0gICAg
ZGVmIGdldHBhcmVudChzZWxmLCBjbHMpOgotICAgICAgICAiIiIgZ2V0IHRoZSBuZXh0IHBhcmVu
dCBub2RlIChpbmNsdWRpbmcgb3Vyc2VsZikKLSAgICAgICAgd2hpY2ggaXMgYW4gaW5zdGFuY2Ug
b2YgdGhlIGdpdmVuIGNsYXNzIiIiCi0gICAgICAgIGN1cnJlbnQgPSBzZWxmCi0gICAgICAgIHdo
aWxlIGN1cnJlbnQgYW5kIG5vdCBpc2luc3RhbmNlKGN1cnJlbnQsIGNscyk6Ci0gICAgICAgICAg
ICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnQKLSAgICAgICAgcmV0dXJuIGN1cnJlbnQKLQotICAg
IGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHBhc3MKLQotICAg
IGRlZiBfcmVwcl9mYWlsdXJlX3B5KHNlbGYsIGV4Y2luZm8sIHN0eWxlPU5vbmUpOgotICAgICAg
ICBmbSA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgaWYgZXhjaW5mby5l
cnJpc2luc3RhbmNlKGZtLkZpeHR1cmVMb29rdXBFcnJvcik6Ci0gICAgICAgICAgICByZXR1cm4g
ZXhjaW5mby52YWx1ZS5mb3JtYXRyZXByKCkKLSAgICAgICAgdGJmaWx0ZXIgPSBUcnVlCi0gICAg
ICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6Ci0gICAgICAgICAgICBzdHlsZSA9
ICJsb25nIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdGIgPSBfcHl0ZXN0Ll9jb2RlLlRy
YWNlYmFjayhbZXhjaW5mby50cmFjZWJhY2tbLTFdXSkKLSAgICAgICAgICAgIHNlbGYuX3BydW5l
dHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgICAgICBpZiBsZW4oZXhjaW5mby50cmFjZWJhY2sp
ID09IDA6Ci0gICAgICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSB0YgotICAgICAgICAg
ICAgdGJmaWx0ZXIgPSBGYWxzZSAgIyBwcnVuZXRyYWNlYmFjayBhbHJlYWR5IGRvZXMgaXQKLSAg
ICAgICAgICAgIGlmIHN0eWxlID09ICJhdXRvIjoKLSAgICAgICAgICAgICAgICBzdHlsZSA9ICJs
b25nIgotICAgICAgICAjIFhYWCBzaG91bGQgZXhjaW5mby5nZXRyZXByIHJlY29yZCBhbGwgZGF0
YSBhbmQgdG90ZXJtaW5hbCgpIHByb2Nlc3MgaXQ/Ci0gICAgICAgIGlmIHN0eWxlIGlzIE5vbmU6
Ci0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9PSAic2hvcnQiOgot
ICAgICAgICAgICAgICAgIHN0eWxlID0gInNob3J0IgotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzdHlsZSA9ICJsb25nIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9z
LmdldGN3ZCgpCi0gICAgICAgICAgICBhYnNwYXRoID0gRmFsc2UKLSAgICAgICAgZXhjZXB0IE9T
RXJyb3I6Ci0gICAgICAgICAgICBhYnNwYXRoID0gVHJ1ZQotCi0gICAgICAgIHJldHVybiBleGNp
bmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSwgYWJzcGF0aD1hYnNwYXRoLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNob3dsb2NhbHM9c2VsZi5jb25maWcub3B0aW9uLnNob3dsb2Nh
bHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9c3R5bGUsIHRiZmlsdGVy
PXRiZmlsdGVyKQotCi0gICAgcmVwcl9mYWlsdXJlID0gX3JlcHJfZmFpbHVyZV9weQotCi0KLWNs
YXNzIENvbGxlY3RvcihOb2RlKToKLSAgICAiIiIgQ29sbGVjdG9yIGluc3RhbmNlcyBjcmVhdGUg
Y2hpbGRyZW4gdGhyb3VnaCBjb2xsZWN0KCkKLSAgICAgICAgYW5kIHRodXMgaXRlcmF0aXZlbHkg
YnVpbGQgYSB0cmVlLgotICAgICIiIgotCi0gICAgY2xhc3MgQ29sbGVjdEVycm9yKEV4Y2VwdGlv
bik6Ci0gICAgICAgICIiIiBhbiBlcnJvciBkdXJpbmcgY29sbGVjdGlvbiwgY29udGFpbnMgYSBj
dXN0b20gbWVzc2FnZS4gIiIiCi0KLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgIiIi
IHJldHVybnMgYSBsaXN0IG9mIGNoaWxkcmVuIChpdGVtcyBhbmQgY29sbGVjdG9ycykKLSAgICAg
ICAgICAgIGZvciB0aGlzIGNvbGxlY3Rpb24gbm9kZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImFic3RyYWN0IikKLQotICAgIGRlZiByZXByX2ZhaWx1
cmUoc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgICIiIiByZXByZXNlbnQgYSBjb2xsZWN0aW9uIGZh
aWx1cmUuICIiIgotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2Uoc2VsZi5Db2xsZWN0
RXJyb3IpOgotICAgICAgICAgICAgZXhjID0gZXhjaW5mby52YWx1ZQotICAgICAgICAgICAgcmV0
dXJuIHN0cihleGMuYXJnc1swXSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfZmFpbHVyZV9w
eShleGNpbmZvLCBzdHlsZT0ic2hvcnQiKQotCi0gICAgZGVmIF9wcnVuZXRyYWNlYmFjayhzZWxm
LCBleGNpbmZvKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZnNwYXRoJyk6Ci0gICAgICAg
ICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjawotICAgICAgICAgICAgbnRyYWNlYmFj
ayA9IHRyYWNlYmFjay5jdXQocGF0aD1zZWxmLmZzcGF0aCkKLSAgICAgICAgICAgIGlmIG50cmFj
ZWJhY2sgPT0gdHJhY2ViYWNrOgotICAgICAgICAgICAgICAgIG50cmFjZWJhY2sgPSBudHJhY2Vi
YWNrLmN1dChleGNsdWRlcGF0aD10cmFjZWJhY2tjdXRkaXIpCi0gICAgICAgICAgICBleGNpbmZv
LnRyYWNlYmFjayA9IG50cmFjZWJhY2suZmlsdGVyKCkKLQotCi1jbGFzcyBGU0NvbGxlY3RvcihD
b2xsZWN0b3IpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmc3BhdGgsIHBhcmVudD1Ob25lLCBj
b25maWc9Tm9uZSwgc2Vzc2lvbj1Ob25lKToKLSAgICAgICAgZnNwYXRoID0gcHkucGF0aC5sb2Nh
bChmc3BhdGgpICAjIHh4eCBvbmx5IGZvciB0ZXN0X3Jlc3VsdGxvZy5weT8KLSAgICAgICAgbmFt
ZSA9IGZzcGF0aC5iYXNlbmFtZQotICAgICAgICBpZiBwYXJlbnQgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICByZWwgPSBmc3BhdGgucmVsdG8ocGFyZW50LmZzcGF0aCkKLSAgICAgICAgICAgIGlm
IHJlbDoKLSAgICAgICAgICAgICAgICBuYW1lID0gcmVsCi0gICAgICAgICAgICBuYW1lID0gbmFt
ZS5yZXBsYWNlKG9zLnNlcCwgbm9kZXMuU0VQKQotICAgICAgICBzdXBlcihGU0NvbGxlY3Rvciwg
c2VsZikuX19pbml0X18obmFtZSwgcGFyZW50LCBjb25maWcsIHNlc3Npb24pCi0gICAgICAgIHNl
bGYuZnNwYXRoID0gZnNwYXRoCi0KLSAgICBkZWYgX2NoZWNrX2luaXRpYWxwYXRoc19mb3JfcmVs
cGF0aChzZWxmKToKLSAgICAgICAgZm9yIGluaXRpYWxwYXRoIGluIHNlbGYuc2Vzc2lvbi5faW5p
dGlhbHBhdGhzOgotICAgICAgICAgICAgaWYgc2VsZi5mc3BhdGguY29tbW9uKGluaXRpYWxwYXRo
KSA9PSBpbml0aWFscGF0aDoKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgucmVs
dG8oaW5pdGlhbHBhdGguZGlybmFtZSkKLQotICAgIGRlZiBfbWFrZWlkKHNlbGYpOgotICAgICAg
ICByZWxwYXRoID0gc2VsZi5mc3BhdGgucmVsdG8oc2VsZi5jb25maWcucm9vdGRpcikKLQotICAg
ICAgICBpZiBub3QgcmVscGF0aDoKLSAgICAgICAgICAgIHJlbHBhdGggPSBzZWxmLl9jaGVja19p
bml0aWFscGF0aHNfZm9yX3JlbHBhdGgoKQotICAgICAgICBpZiBvcy5zZXAgIT0gbm9kZXMuU0VQ
OgotICAgICAgICAgICAgcmVscGF0aCA9IHJlbHBhdGgucmVwbGFjZShvcy5zZXAsIG5vZGVzLlNF
UCkKLSAgICAgICAgcmV0dXJuIHJlbHBhdGgKLQotCi1jbGFzcyBGaWxlKEZTQ29sbGVjdG9yKToK
LSAgICAiIiIgYmFzZSBjbGFzcyBmb3IgY29sbGVjdGluZyB0ZXN0cyBmcm9tIGEgZmlsZS4gIiIi
Ci0KLQotY2xhc3MgSXRlbShOb2RlKToKLSAgICAiIiIgYSBiYXNpYyB0ZXN0IGludm9jYXRpb24g
aXRlbS4gTm90ZSB0aGF0IGZvciBhIHNpbmdsZSBmdW5jdGlvbgotICAgIHRoZXJlIG1pZ2h0IGJl
IG11bHRpcGxlIHRlc3QgaW52b2NhdGlvbiBpdGVtcy4KLSAgICAiIiIKLSAgICBuZXh0aXRlbSA9
IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQ9Tm9uZSwgY29uZmln
PU5vbmUsIHNlc3Npb249Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEl0ZW0sIHNlbGYpLl9faW5pdF9f
KG5hbWUsIHBhcmVudCwgY29uZmlnLCBzZXNzaW9uKQotICAgICAgICBzZWxmLl9yZXBvcnRfc2Vj
dGlvbnMgPSBbXQotCi0gICAgZGVmIGFkZF9yZXBvcnRfc2VjdGlvbihzZWxmLCB3aGVuLCBrZXks
IGNvbnRlbnQpOgotICAgICAgICAiIiIKLSAgICAgICAgQWRkcyBhIG5ldyByZXBvcnQgc2VjdGlv
biwgc2ltaWxhciB0byB3aGF0J3MgZG9uZSBpbnRlcm5hbGx5IHRvIGFkZCBzdGRvdXQgYW5kCi0g
ICAgICAgIHN0ZGVyciBjYXB0dXJlZCBvdXRwdXQ6OgotCi0gICAgICAgICAgICBpdGVtLmFkZF9y
ZXBvcnRfc2VjdGlvbigiY2FsbCIsICJzdGRvdXQiLCAicmVwb3J0IHNlY3Rpb24gY29udGVudHMi
KQotCi0gICAgICAgIDpwYXJhbSBzdHIgd2hlbjoKLSAgICAgICAgICAgIE9uZSBvZiB0aGUgcG9z
c2libGUgY2FwdHVyZSBzdGF0ZXMsIGBgInNldHVwImBgLCBgYCJjYWxsImBgLCBgYCJ0ZWFyZG93
biJgYC4KLSAgICAgICAgOnBhcmFtIHN0ciBrZXk6Ci0gICAgICAgICAgICBOYW1lIG9mIHRoZSBz
ZWN0aW9uLCBjYW4gYmUgY3VzdG9taXplZCBhdCB3aWxsLiBQeXRlc3QgdXNlcyBgYCJzdGRvdXQi
YGAgYW5kCi0gICAgICAgICAgICBgYCJzdGRlcnIiYGAgaW50ZXJuYWxseS4KLQotICAgICAgICA6
cGFyYW0gc3RyIGNvbnRlbnQ6Ci0gICAgICAgICAgICBUaGUgZnVsbCBjb250ZW50cyBhcyBhIHN0
cmluZy4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGNvbnRlbnQ6Ci0gICAgICAgICAgICBzZWxm
Ll9yZXBvcnRfc2VjdGlvbnMuYXBwZW5kKCh3aGVuLCBrZXksIGNvbnRlbnQpKQotCi0gICAgZGVm
IHJlcG9ydGluZm8oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZzcGF0aCwgTm9uZSwgIiIK
LQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsb2NhdGlvbihzZWxmKToKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xvY2F0aW9uCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKLSAgICAgICAgICAgIGxvY2F0aW9uID0gc2VsZi5yZXBvcnRpbmZvKCkKLSAgICAg
ICAgICAgICMgYmVzdHJlbHBhdGggaXMgYSBxdWl0ZSBzbG93IGZ1bmN0aW9uCi0gICAgICAgICAg
ICBjYWNoZSA9IHNlbGYuY29uZmlnLl9fZGljdF9fLnNldGRlZmF1bHQoIl9iZXN0cmVscGF0aGNh
Y2hlIiwge30pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZnNwYXRoID0gY2Fj
aGVbbG9jYXRpb25bMF1dCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAg
ICAgICAgZnNwYXRoID0gc2VsZi5zZXNzaW9uLmZzcGF0aC5iZXN0cmVscGF0aChsb2NhdGlvblsw
XSkKLSAgICAgICAgICAgICAgICBjYWNoZVtsb2NhdGlvblswXV0gPSBmc3BhdGgKLSAgICAgICAg
ICAgIGxvY2F0aW9uID0gKGZzcGF0aCwgbG9jYXRpb25bMV0sIHN0cihsb2NhdGlvblsyXSkpCi0g
ICAgICAgICAgICBzZWxmLl9sb2NhdGlvbiA9IGxvY2F0aW9uCi0gICAgICAgICAgICByZXR1cm4g
bG9jYXRpb24KLQotCi1jbGFzcyBOb01hdGNoKEV4Y2VwdGlvbik6Ci0gICAgIiIiIHJhaXNlZCBp
ZiBtYXRjaGluZyBjYW5ub3QgbG9jYXRlIGEgbWF0Y2hpbmcgbmFtZXMuICIiIgotCi0KLWNsYXNz
IEludGVycnVwdGVkKEtleWJvYXJkSW50ZXJydXB0KToKLSAgICAiIiIgc2lnbmFscyBhbiBpbnRl
cnJ1cHRlZCB0ZXN0IHJ1bi4gIiIiCi0gICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycgICMgZm9y
IHB5MwotCi0KLWNsYXNzIEZhaWxlZChFeGNlcHRpb24pOgotICAgICIiIiBzaWduYWxzIGFuIHN0
b3AgYXMgZmFpbGVkIHRlc3QgcnVuLiAiIiIKLQotCi1jbGFzcyBTZXNzaW9uKEZTQ29sbGVjdG9y
KToKLSAgICBJbnRlcnJ1cHRlZCA9IEludGVycnVwdGVkCi0gICAgRmFpbGVkID0gRmFpbGVkCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKLSAgICAgICAgRlNDb2xsZWN0b3IuX19p
bml0X18oc2VsZiwgY29uZmlnLnJvb3RkaXIsIHBhcmVudD1Ob25lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25maWc9Y29uZmlnLCBzZXNzaW9uPXNlbGYpCi0gICAgICAgIHNlbGYu
dGVzdHNmYWlsZWQgPSAwCi0gICAgICAgIHNlbGYudGVzdHNjb2xsZWN0ZWQgPSAwCi0gICAgICAg
IHNlbGYuc2hvdWxkc3RvcCA9IEZhbHNlCi0gICAgICAgIHNlbGYuc2hvdWxkZmFpbCA9IEZhbHNl
Ci0gICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImNvbGxlY3Rpb24i
KQotICAgICAgICBzZWxmLl9ub3JlY3Vyc2VwYXR0ZXJucyA9IGNvbmZpZy5nZXRpbmkoIm5vcmVj
dXJzZWRpcnMiKQotICAgICAgICBzZWxmLnN0YXJ0ZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAg
ICAgIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoc2VsZiwgbmFtZT0ic2Vzc2lv
biIpCi0KLSAgICBkZWYgX21ha2VpZChzZWxmKToKLSAgICAgICAgcmV0dXJuICIiCi0KLSAgICBA
aG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RzdGFydChzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5zaG91bGRmYWlsOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5G
YWlsZWQoc2VsZi5zaG91bGRmYWlsKQotICAgICAgICBpZiBzZWxmLnNob3VsZHN0b3A6Ci0gICAg
ICAgICAgICByYWlzZSBzZWxmLkludGVycnVwdGVkKHNlbGYuc2hvdWxkc3RvcCkKLQotICAgIEBo
b29raW1wbCh0cnlmaXJzdD1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQo
c2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgcmVwb3J0LmZhaWxlZCBhbmQgbm90IGhhc2F0dHIo
cmVwb3J0LCAnd2FzeGZhaWwnKToKLSAgICAgICAgICAgIHNlbGYudGVzdHNmYWlsZWQgKz0gMQot
ICAgICAgICAgICAgbWF4ZmFpbCA9IHNlbGYuY29uZmlnLmdldHZhbHVlKCJtYXhmYWlsIikKLSAg
ICAgICAgICAgIGlmIG1heGZhaWwgYW5kIHNlbGYudGVzdHNmYWlsZWQgPj0gbWF4ZmFpbDoKLSAg
ICAgICAgICAgICAgICBzZWxmLnNob3VsZGZhaWwgPSAic3RvcHBpbmcgYWZ0ZXIgJWQgZmFpbHVy
ZXMiICUgKAotICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzZmFpbGVkKQotICAgIHB5dGVz
dF9jb2xsZWN0cmVwb3J0ID0gcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0Ci0KLSAgICBkZWYgaXNp
bml0cGF0aChzZWxmLCBwYXRoKToKLSAgICAgICAgcmV0dXJuIHBhdGggaW4gc2VsZi5faW5pdGlh
bHBhdGhzCi0KLSAgICBkZWYgZ2V0aG9va3Byb3h5KHNlbGYsIGZzcGF0aCk6Ci0gICAgICAgICMg
Y2hlY2sgaWYgd2UgaGF2ZSB0aGUgY29tbW9uIGNhc2Ugb2YgcnVubmluZwotICAgICAgICAjIGhv
b2tzIHdpdGggYWxsIGNvbmZ0ZXN0LnB5IGZpbGVzYWxsIGNvbmZ0ZXN0LnB5Ci0gICAgICAgIHBt
ID0gc2VsZi5jb25maWcucGx1Z2lubWFuYWdlcgotICAgICAgICBteV9jb25mdGVzdG1vZHVsZXMg
PSBwbS5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGZzcGF0aCkKLSAgICAgICAgcmVtb3ZlX21vZHMgPSBw
bS5fY29uZnRlc3RfcGx1Z2lucy5kaWZmZXJlbmNlKG15X2NvbmZ0ZXN0bW9kdWxlcykKLSAgICAg
ICAgaWYgcmVtb3ZlX21vZHM6Ci0gICAgICAgICAgICAjIG9uZSBvciBtb3JlIGNvbmZ0ZXN0cyBh
cmUgbm90IGluIHVzZSBhdCB0aGlzIGZzcGF0aAotICAgICAgICAgICAgcHJveHkgPSBGU0hvb2tQ
cm94eShmc3BhdGgsIHBtLCByZW1vdmVfbW9kcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICMgYWxsIHBsdWdpcyBhcmUgYWN0aXZlIGZvciB0aGlzIGZzcGF0aAotICAgICAgICAgICAgcHJv
eHkgPSBzZWxmLmNvbmZpZy5ob29rCi0gICAgICAgIHJldHVybiBwcm94eQotCi0gICAgZGVmIHBl
cmZvcm1fY29sbGVjdChzZWxmLCBhcmdzPU5vbmUsIGdlbml0ZW1zPVRydWUpOgotICAgICAgICBo
b29rID0gc2VsZi5jb25maWcuaG9vawotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpdGVtcyA9
IHNlbGYuX3BlcmZvcm1fY29sbGVjdChhcmdzLCBnZW5pdGVtcykKLSAgICAgICAgICAgIHNlbGYu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuY2hlY2tfcGVuZGluZygpCi0gICAgICAgICAgICBob29rLnB5
dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlc3Npb249c2VsZiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXNlbGYuY29uZmlnLCBpdGVt
cz1pdGVtcykKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGhvb2sucHl0ZXN0X2NvbGxl
Y3Rpb25fZmluaXNoKHNlc3Npb249c2VsZikKLSAgICAgICAgc2VsZi50ZXN0c2NvbGxlY3RlZCA9
IGxlbihpdGVtcykKLSAgICAgICAgcmV0dXJuIGl0ZW1zCi0KLSAgICBkZWYgX3BlcmZvcm1fY29s
bGVjdChzZWxmLCBhcmdzLCBnZW5pdGVtcyk6Ci0gICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKLSAg
ICAgICAgICAgIGFyZ3MgPSBzZWxmLmNvbmZpZy5hcmdzCi0gICAgICAgIHNlbGYudHJhY2UoInBl
cmZvcm1fY29sbGVjdCIsIHNlbGYsIGFyZ3MpCi0gICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRl
bnQgKz0gMQotICAgICAgICBzZWxmLl9ub3Rmb3VuZCA9IFtdCi0gICAgICAgIHNlbGYuX2luaXRp
YWxwYXRocyA9IHNldCgpCi0gICAgICAgIHNlbGYuX2luaXRpYWxwYXJ0cyA9IFtdCi0gICAgICAg
IHNlbGYuaXRlbXMgPSBpdGVtcyA9IFtdCi0gICAgICAgIGZvciBhcmcgaW4gYXJnczoKLSAgICAg
ICAgICAgIHBhcnRzID0gc2VsZi5fcGFyc2VhcmcoYXJnKQotICAgICAgICAgICAgc2VsZi5faW5p
dGlhbHBhcnRzLmFwcGVuZChwYXJ0cykKLSAgICAgICAgICAgIHNlbGYuX2luaXRpYWxwYXRocy5h
ZGQocGFydHNbMF0pCi0gICAgICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUoc2VsZikKLSAgICAg
ICAgc2VsZi5paG9vay5weXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQotICAgICAgICBz
ZWxmLnRyYWNlLnJvb3QuaW5kZW50IC09IDEKLSAgICAgICAgaWYgc2VsZi5fbm90Zm91bmQ6Ci0g
ICAgICAgICAgICBlcnJvcnMgPSBbXQotICAgICAgICAgICAgZm9yIGFyZywgZXhjIGluIHNlbGYu
X25vdGZvdW5kOgotICAgICAgICAgICAgICAgIGxpbmUgPSAiKG5vIG5hbWUgJXIgaW4gYW55IG9m
ICVyKSIgJSAoYXJnLCBleGMuYXJnc1swXSkKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KCJub3QgZm91bmQ6ICVzXG4lcyIgJSAoYXJnLCBsaW5lKSkKLSAgICAgICAgICAgICAgICAjIFhY
WDogdGVzdCB0aGlzCi0gICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCplcnJvcnMpCi0gICAg
ICAgIGlmIG5vdCBnZW5pdGVtczoKLSAgICAgICAgICAgIHJldHVybiByZXAucmVzdWx0Ci0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgIGZv
ciBub2RlIGluIHJlcC5yZXN1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuaXRlbXMuZXh0
ZW5kKHNlbGYuZ2VuaXRlbXMobm9kZSkpCi0gICAgICAgICAgICByZXR1cm4gaXRlbXMKLQotICAg
IGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBmb3IgcGFydHMgaW4gc2VsZi5faW5pdGlhbHBh
cnRzOgotICAgICAgICAgICAgYXJnID0gIjo6Ii5qb2luKG1hcChzdHIsIHBhcnRzKSkKLSAgICAg
ICAgICAgIHNlbGYudHJhY2UoInByb2Nlc3NpbmcgYXJndW1lbnQiLCBhcmcpCi0gICAgICAgICAg
ICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0KGFyZyk6Ci0gICAgICAgICAgICAgICAgICAg
IHlpZWxkIHgKLSAgICAgICAgICAgIGV4Y2VwdCBOb01hdGNoOgotICAgICAgICAgICAgICAgICMg
d2UgYXJlIGluc2lkZSBhIG1ha2VfcmVwb3J0IGhvb2sgc28KLSAgICAgICAgICAgICAgICAjIHdl
IGNhbm5vdCBkaXJlY3RseSBwYXNzIHRocm91Z2ggdGhlIGV4Y2VwdGlvbgotICAgICAgICAgICAg
ICAgIHNlbGYuX25vdGZvdW5kLmFwcGVuZCgoYXJnLCBzeXMuZXhjX2luZm8oKVsxXSkpCi0KLSAg
ICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQgLT0gMQotCi0gICAgZGVmIF9jb2xsZWN0
KHNlbGYsIGFyZyk6Ci0gICAgICAgIG5hbWVzID0gc2VsZi5fcGFyc2VhcmcoYXJnKQotICAgICAg
ICBwYXRoID0gbmFtZXMucG9wKDApCi0gICAgICAgIGlmIHBhdGguY2hlY2soZGlyPTEpOgotICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBuYW1lcywgImludmFsaWQgYXJnICVyIiAlIChhcmcsKQotICAg
ICAgICAgICAgZm9yIHBhdGggaW4gcGF0aC52aXNpdChmaWw9bGFtYmRhIHg6IHguY2hlY2soZmls
ZT0xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjPXNlbGYuX3JlY3Vy
c2UsIGJmPVRydWUsIHNvcnQ9VHJ1ZSk6Ci0gICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5f
Y29sbGVjdGZpbGUocGF0aCk6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIHgKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBwYXRoLmNoZWNrKGZpbGU9MSkKLSAgICAgICAgICAg
IGZvciB4IGluIHNlbGYubWF0Y2hub2RlcyhzZWxmLl9jb2xsZWN0ZmlsZShwYXRoKSwgbmFtZXMp
OgotICAgICAgICAgICAgICAgIHlpZWxkIHgKLQotICAgIGRlZiBfY29sbGVjdGZpbGUoc2VsZiwg
cGF0aCk6Ci0gICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aCkKLSAgICAgICAg
aWYgbm90IHNlbGYuaXNpbml0cGF0aChwYXRoKToKLSAgICAgICAgICAgIGlmIGlob29rLnB5dGVz
dF9pZ25vcmVfY29sbGVjdChwYXRoPXBhdGgsIGNvbmZpZz1zZWxmLmNvbmZpZyk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuICgpCi0gICAgICAgIHJldHVybiBpaG9vay5weXRlc3RfY29sbGVjdF9m
aWxlKHBhdGg9cGF0aCwgcGFyZW50PXNlbGYpCi0KLSAgICBkZWYgX3JlY3Vyc2Uoc2VsZiwgcGF0
aCk6Ci0gICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aC5kaXJwYXRoKCkpCi0g
ICAgICAgIGlmIGlob29rLnB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoPXBhdGgsIGNvbmZpZz1z
ZWxmLmNvbmZpZyk6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZm9yIHBhdCBpbiBzZWxm
Ll9ub3JlY3Vyc2VwYXR0ZXJuczoKLSAgICAgICAgICAgIGlmIHBhdGguY2hlY2soZm5tYXRjaD1w
YXQpOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpaG9vayA9IHNlbGYu
Z2V0aG9va3Byb3h5KHBhdGgpCi0gICAgICAgIGlob29rLnB5dGVzdF9jb2xsZWN0X2RpcmVjdG9y
eShwYXRoPXBhdGgsIHBhcmVudD1zZWxmKQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVm
IF90cnljb252ZXJ0cHlhcmcoc2VsZiwgeCk6Ci0gICAgICAgICIiIkNvbnZlcnQgYSBkb3R0ZWQg
bW9kdWxlIG5hbWUgdG8gcGF0aC4KLQotICAgICAgICAiIiIKLSAgICAgICAgaW1wb3J0IHBrZ3V0
aWwKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbG9hZGVyID0gcGtndXRpbC5maW5kX2xvYWRl
cih4KQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4geAot
ICAgICAgICBpZiBsb2FkZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiB4Ci0gICAgICAg
ICMgVGhpcyBtZXRob2QgaXMgc29tZXRpbWVzIGludm9rZWQgd2hlbiBBc3NlcnRpb25SZXdyaXRp
bmdIb29rLCB3aGljaAotICAgICAgICAjIGRvZXMgbm90IGRlZmluZSBhIGdldF9maWxlbmFtZSBt
ZXRob2QsIGlzIGFscmVhZHkgaW4gcGxhY2U6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBh
dGggPSBsb2FkZXIuZ2V0X2ZpbGVuYW1lKHgpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv
cjoKLSAgICAgICAgICAgICMgUmV0cmlldmUgcGF0aCBmcm9tIEFzc2VydGlvblJld3JpdGluZ0hv
b2s6Ci0gICAgICAgICAgICBwYXRoID0gbG9hZGVyLm1vZHVsZXNbeF1bMF0uY29fZmlsZW5hbWUK
LSAgICAgICAgaWYgbG9hZGVyLmlzX3BhY2thZ2UoeCk6Ci0gICAgICAgICAgICBwYXRoID0gb3Mu
cGF0aC5kaXJuYW1lKHBhdGgpCi0gICAgICAgIHJldHVybiBwYXRoCi0KLSAgICBkZWYgX3BhcnNl
YXJnKHNlbGYsIGFyZyk6Ci0gICAgICAgICIiIiByZXR1cm4gKGZzcGF0aCwgbmFtZXMpIHR1cGxl
IGFmdGVyIGNoZWNraW5nIHRoZSBmaWxlIGV4aXN0cy4gIiIiCi0gICAgICAgIHBhcnRzID0gc3Ry
KGFyZykuc3BsaXQoIjo6IikKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnB5YXJnczoK
LSAgICAgICAgICAgIHBhcnRzWzBdID0gc2VsZi5fdHJ5Y29udmVydHB5YXJnKHBhcnRzWzBdKQot
ICAgICAgICByZWxwYXRoID0gcGFydHNbMF0ucmVwbGFjZSgiLyIsIG9zLnNlcCkKLSAgICAgICAg
cGF0aCA9IHNlbGYuY29uZmlnLmludm9jYXRpb25fZGlyLmpvaW4ocmVscGF0aCwgYWJzPVRydWUp
Ci0gICAgICAgIGlmIG5vdCBwYXRoLmNoZWNrKCk6Ci0gICAgICAgICAgICBpZiBzZWxmLmNvbmZp
Zy5vcHRpb24ucHlhcmdzOgotICAgICAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoCi0gICAg
ICAgICAgICAgICAgICAgICJmaWxlIG9yIHBhY2thZ2Ugbm90IGZvdW5kOiAiICsgYXJnICsKLSAg
ICAgICAgICAgICAgICAgICAgIiAobWlzc2luZyBfX2luaXRfXy5weT8pIikKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiZmlsZSBub3QgZm91bmQ6
ICIgKyBhcmcpCi0gICAgICAgIHBhcnRzWzBdID0gcGF0aAotICAgICAgICByZXR1cm4gcGFydHMK
LQotICAgIGRlZiBtYXRjaG5vZGVzKHNlbGYsIG1hdGNoaW5nLCBuYW1lcyk6Ci0gICAgICAgIHNl
bGYudHJhY2UoIm1hdGNobm9kZXMiLCBtYXRjaGluZywgbmFtZXMpCi0gICAgICAgIHNlbGYudHJh
Y2Uucm9vdC5pbmRlbnQgKz0gMQotICAgICAgICBub2RlcyA9IHNlbGYuX21hdGNobm9kZXMobWF0
Y2hpbmcsIG5hbWVzKQotICAgICAgICBudW0gPSBsZW4obm9kZXMpCi0gICAgICAgIHNlbGYudHJh
Y2UoIm1hdGNobm9kZXMgZmluaXNoZWQgLT4gIiwgbnVtLCAibm9kZXMiKQotICAgICAgICBzZWxm
LnRyYWNlLnJvb3QuaW5kZW50IC09IDEKLSAgICAgICAgaWYgbnVtID09IDA6Ci0gICAgICAgICAg
ICByYWlzZSBOb01hdGNoKG1hdGNoaW5nLCBuYW1lc1s6MV0pCi0gICAgICAgIHJldHVybiBub2Rl
cwotCi0gICAgZGVmIF9tYXRjaG5vZGVzKHNlbGYsIG1hdGNoaW5nLCBuYW1lcyk6Ci0gICAgICAg
IGlmIG5vdCBtYXRjaGluZyBvciBub3QgbmFtZXM6Ci0gICAgICAgICAgICByZXR1cm4gbWF0Y2hp
bmcKLSAgICAgICAgbmFtZSA9IG5hbWVzWzBdCi0gICAgICAgIGFzc2VydCBuYW1lCi0gICAgICAg
IG5leHRuYW1lcyA9IG5hbWVzWzE6XQotICAgICAgICByZXN1bHRub2RlcyA9IFtdCi0gICAgICAg
IGZvciBub2RlIGluIG1hdGNoaW5nOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBJ
dGVtKToKLSAgICAgICAgICAgICAgICBpZiBub3QgbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAg
IHJlc3VsdG5vZGVzLmFwcGVuZChub2RlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCBDb2xsZWN0b3IpCi0gICAgICAgICAgICBy
ZXAgPSBjb2xsZWN0X29uZV9ub2RlKG5vZGUpCi0gICAgICAgICAgICBpZiByZXAucGFzc2VkOgot
ICAgICAgICAgICAgICAgIGhhc19tYXRjaGVkID0gRmFsc2UKLSAgICAgICAgICAgICAgICBmb3Ig
eCBpbiByZXAucmVzdWx0OgotICAgICAgICAgICAgICAgICAgICAjIFRPRE86IHJlbW92ZSBwYXJh
bWV0cml6ZWQgd29ya2Fyb3VuZCBvbmNlIGNvbGxlY3Rpb24gc3RydWN0dXJlIGNvbnRhaW5zIHBh
cmFtZXRyaXphdGlvbgotICAgICAgICAgICAgICAgICAgICBpZiB4Lm5hbWUgPT0gbmFtZSBvciB4
Lm5hbWUuc3BsaXQoIlsiKVswXSA9PSBuYW1lOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0bm9kZXMuZXh0ZW5kKHNlbGYubWF0Y2hub2RlcyhbeF0sIG5leHRuYW1lcykpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBoYXNfbWF0Y2hlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAjIFhY
WCBhY2NlcHQgSURzIHRoYXQgZG9uJ3QgaGF2ZSAiKCkiIGZvciBjbGFzcyBpbnN0YW5jZXMKLSAg
ICAgICAgICAgICAgICBpZiBub3QgaGFzX21hdGNoZWQgYW5kIGxlbihyZXAucmVzdWx0KSA9PSAx
IGFuZCB4Lm5hbWUgPT0gIigpIjoKLSAgICAgICAgICAgICAgICAgICAgbmV4dG5hbWVzLmluc2Vy
dCgwLCBuYW1lKQotICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5leHRlbmQoc2VsZi5t
YXRjaG5vZGVzKFt4XSwgbmV4dG5hbWVzKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgIyByZXBvcnQgY29sbGVjdGlvbiBmYWlsdXJlcyBoZXJlIHRvIGF2b2lkIGZhaWxpbmcg
dG8gcnVuIHNvbWUgdGVzdAotICAgICAgICAgICAgICAgICMgc3BlY2lmaWVkIGluIHRoZSBjb21t
YW5kIGxpbmUgYmVjYXVzZSB0aGUgbW9kdWxlIGNvdWxkIG5vdCBiZQotICAgICAgICAgICAgICAg
ICMgaW1wb3J0ZWQgKCMxMzQpCi0gICAgICAgICAgICAgICAgbm9kZS5paG9vay5weXRlc3RfY29s
bGVjdHJlcG9ydChyZXBvcnQ9cmVwKQotICAgICAgICByZXR1cm4gcmVzdWx0bm9kZXMKLQotICAg
IGRlZiBnZW5pdGVtcyhzZWxmLCBub2RlKToKLSAgICAgICAgc2VsZi50cmFjZSgiZ2VuaXRlbXMi
LCBub2RlKQotICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIEl0ZW0pOgotICAgICAgICAgICAg
bm9kZS5paG9vay5weXRlc3RfaXRlbWNvbGxlY3RlZChpdGVtPW5vZGUpCi0gICAgICAgICAgICB5
aWVsZCBub2RlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShu
b2RlLCBDb2xsZWN0b3IpCi0gICAgICAgICAgICByZXAgPSBjb2xsZWN0X29uZV9ub2RlKG5vZGUp
Ci0gICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgIGZvciBzdWJub2Rl
IGluIHJlcC5yZXN1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHNlbGYuZ2VuaXRl
bXMoc3Vibm9kZSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB4Ci0gICAgICAgICAg
ICBub2RlLmlob29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydD1yZXApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21hcmsucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21hcmsu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMWYwMWIxYTJlMzRkYjM1Y2IyNjFh
M2ZiNDkwZjFjNDY1N2Q0ZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NDk2ICswLDAgQEAKLSIiIiBnZW5lcmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBhbmQgc2VsZWN0
aW5nIHB5dGhvbiBmdW5jdGlvbnMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgaW5zcGVjdAotaW1w
b3J0IHdhcm5pbmdzCi1pbXBvcnQgYXR0cgotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0
dXBsZQotZnJvbSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgotZnJvbSBzaXgubW92ZXMgaW1w
b3J0IG1hcAotZnJvbSAuZGVwcmVjYXRlZCBpbXBvcnQgTUFSS19QQVJBTUVURVJTRVRfVU5QQUNL
SU5HCi1mcm9tIC5jb21wYXQgaW1wb3J0IE5PVFNFVCwgZ2V0ZnNsaW5lbm8KLQotCi1kZWYgYWxp
YXMobmFtZSwgd2FybmluZz1Ob25lKToKLSAgICBnZXR0ZXIgPSBhdHRyZ2V0dGVyKG5hbWUpCi0K
LSAgICBkZWYgd2FybmVkKHNlbGYpOgotICAgICAgICB3YXJuaW5ncy53YXJuKHdhcm5pbmcsIHN0
YWNrbGV2ZWw9MikKLSAgICAgICAgcmV0dXJuIGdldHRlcihzZWxmKQotCi0gICAgcmV0dXJuIHBy
b3BlcnR5KGdldHRlciBpZiB3YXJuaW5nIGlzIE5vbmUgZWxzZSB3YXJuZWQsIGRvYz0nYWxpYXMg
Zm9yICcgKyBuYW1lKQotCi0KLWNsYXNzIFBhcmFtZXRlclNldChuYW1lZHR1cGxlKCdQYXJhbWV0
ZXJTZXQnLCAndmFsdWVzLCBtYXJrcywgaWQnKSk6Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVm
IHBhcmFtKGNscywgKnZhbHVlcywgKiprdyk6Ci0gICAgICAgIG1hcmtzID0ga3cucG9wKCdtYXJr
cycsICgpKQotICAgICAgICBpZiBpc2luc3RhbmNlKG1hcmtzLCBNYXJrRGVjb3JhdG9yKToKLSAg
ICAgICAgICAgIG1hcmtzID0gbWFya3MsCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShtYXJrcywgKHR1cGxlLCBsaXN0LCBzZXQpKQotCi0gICAgICAgIGRlZiBw
YXJhbV9leHRyYWN0X2lkKGlkPU5vbmUpOgotICAgICAgICAgICAgcmV0dXJuIGlkCi0KLSAgICAg
ICAgaWQgPSBwYXJhbV9leHRyYWN0X2lkKCoqa3cpCi0gICAgICAgIHJldHVybiBjbHModmFsdWVz
LCBtYXJrcywgaWQpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZXh0cmFjdF9mcm9tKGNs
cywgcGFyYW1ldGVyc2V0LCBsZWdhY3lfZm9yY2VfdHVwbGU9RmFsc2UpOgotICAgICAgICAiIiIK
LSAgICAgICAgOnBhcmFtIHBhcmFtZXRlcnNldDoKLSAgICAgICAgICAgIGEgbGVnYWN5IHN0eWxl
IHBhcmFtZXRlcnNldCB0aGF0IG1heSBvciBtYXkgbm90IGJlIGEgdHVwbGUsCi0gICAgICAgICAg
ICBhbmQgbWF5IG9yIG1heSBub3QgYmUgd3JhcHBlZCBpbnRvIGEgbWVzcyBvZiBtYXJrIG9iamVj
dHMKLQotICAgICAgICA6cGFyYW0gbGVnYWN5X2ZvcmNlX3R1cGxlOgotICAgICAgICAgICAgZW5m
b3JjZSB0dXBsZSB3cmFwcGluZyBzbyBzaW5nbGUgYXJndW1lbnQgdHVwbGUgdmFsdWVzCi0gICAg
ICAgICAgICBkb24ndCBnZXQgZGVjb21wb3NlZCBhbmQgYnJlYWsgdGVzdHMKLQotICAgICAgICAi
IiIKLQotICAgICAgICBpZiBpc2luc3RhbmNlKHBhcmFtZXRlcnNldCwgY2xzKToKLSAgICAgICAg
ICAgIHJldHVybiBwYXJhbWV0ZXJzZXQKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocGFyYW1l
dGVyc2V0LCBNYXJrRGVjb3JhdG9yKSBhbmQgbGVnYWN5X2ZvcmNlX3R1cGxlOgotICAgICAgICAg
ICAgcmV0dXJuIGNscy5wYXJhbShwYXJhbWV0ZXJzZXQpCi0KLSAgICAgICAgbmV3bWFya3MgPSBb
XQotICAgICAgICBhcmd2YWwgPSBwYXJhbWV0ZXJzZXQKLSAgICAgICAgd2hpbGUgaXNpbnN0YW5j
ZShhcmd2YWwsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgbmV3bWFya3MuYXBwZW5kKE1h
cmtEZWNvcmF0b3IoTWFyaygKLSAgICAgICAgICAgICAgICBhcmd2YWwubWFya25hbWUsIGFyZ3Zh
bC5hcmdzWzotMV0sIGFyZ3ZhbC5rd2FyZ3MpKSkKLSAgICAgICAgICAgIGFyZ3ZhbCA9IGFyZ3Zh
bC5hcmdzWy0xXQotICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2UoYXJndmFsLCBQYXJhbWV0
ZXJTZXQpCi0gICAgICAgIGlmIGxlZ2FjeV9mb3JjZV90dXBsZToKLSAgICAgICAgICAgIGFyZ3Zh
bCA9IGFyZ3ZhbCwKLQotICAgICAgICBpZiBuZXdtYXJrczoKLSAgICAgICAgICAgIHdhcm5pbmdz
Lndhcm4oTUFSS19QQVJBTUVURVJTRVRfVU5QQUNLSU5HKQotCi0gICAgICAgIHJldHVybiBjbHMo
YXJndmFsLCBtYXJrcz1uZXdtYXJrcywgaWQ9Tm9uZSkKLQotICAgIEBjbGFzc21ldGhvZAotICAg
IGRlZiBfZm9yX3BhcmFtZXRlcml6ZShjbHMsIGFyZ25hbWVzLCBhcmd2YWx1ZXMsIGZ1bmN0aW9u
KToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJnbmFtZXMsICh0dXBsZSwgbGlzdCkpOgot
ICAgICAgICAgICAgYXJnbmFtZXMgPSBbeC5zdHJpcCgpIGZvciB4IGluIGFyZ25hbWVzLnNwbGl0
KCIsIikgaWYgeC5zdHJpcCgpXQotICAgICAgICAgICAgZm9yY2VfdHVwbGUgPSBsZW4oYXJnbmFt
ZXMpID09IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZvcmNlX3R1cGxlID0gRmFsc2UK
LSAgICAgICAgcGFyYW1ldGVycyA9IFsKLSAgICAgICAgICAgIFBhcmFtZXRlclNldC5leHRyYWN0
X2Zyb20oeCwgbGVnYWN5X2ZvcmNlX3R1cGxlPWZvcmNlX3R1cGxlKQotICAgICAgICAgICAgZm9y
IHggaW4gYXJndmFsdWVzXQotICAgICAgICBkZWwgYXJndmFsdWVzCi0KLSAgICAgICAgaWYgbm90
IHBhcmFtZXRlcnM6Ci0gICAgICAgICAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZnVuY3Rp
b24pCi0gICAgICAgICAgICByZWFzb24gPSAiZ290IGVtcHR5IHBhcmFtZXRlciBzZXQgJXIsIGZ1
bmN0aW9uICVzIGF0ICVzOiVkIiAlICgKLSAgICAgICAgICAgICAgICBhcmduYW1lcywgZnVuY3Rp
b24uX19uYW1lX18sIGZzLCBsaW5lbm8pCi0gICAgICAgICAgICBtYXJrID0gTUFSS19HRU4uc2tp
cChyZWFzb249cmVhc29uKQotICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVy
U2V0KAotICAgICAgICAgICAgICAgIHZhbHVlcz0oTk9UU0VULCkgKiBsZW4oYXJnbmFtZXMpLAot
ICAgICAgICAgICAgICAgIG1hcmtzPVttYXJrXSwKLSAgICAgICAgICAgICAgICBpZD1Ob25lLAot
ICAgICAgICAgICAgKSkKLSAgICAgICAgcmV0dXJuIGFyZ25hbWVzLCBwYXJhbWV0ZXJzCi0KLQot
Y2xhc3MgTWFya2VyRXJyb3IoRXhjZXB0aW9uKToKLQotICAgICIiIkVycm9yIGluIHVzZSBvZiBh
IHB5dGVzdCBtYXJrZXIvYXR0cmlidXRlLiIiIgotCi0KLWRlZiBwYXJhbSgqdmFsdWVzLCAqKmt3
KToKLSAgICByZXR1cm4gUGFyYW1ldGVyU2V0LnBhcmFtKCp2YWx1ZXMsICoqa3cpCi0KLQotZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgi
Z2VuZXJhbCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy1rJywKLSAgICAgICAg
YWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImtleXdvcmQiLCBkZWZhdWx0PScnLCBtZXRhdmFyPSJFWFBS
RVNTSU9OIiwKLSAgICAgICAgaGVscD0ib25seSBydW4gdGVzdHMgd2hpY2ggbWF0Y2ggdGhlIGdp
dmVuIHN1YnN0cmluZyBleHByZXNzaW9uLiAiCi0gICAgICAgICAgICAgIkFuIGV4cHJlc3Npb24g
aXMgYSBweXRob24gZXZhbHVhdGFibGUgZXhwcmVzc2lvbiAiCi0gICAgICAgICAgICAgIndoZXJl
IGFsbCBuYW1lcyBhcmUgc3Vic3RyaW5nLW1hdGNoZWQgYWdhaW5zdCB0ZXN0IG5hbWVzICIKLSAg
ICAgICAgICAgICAiYW5kIHRoZWlyIHBhcmVudCBjbGFzc2VzLiBFeGFtcGxlOiAtayAndGVzdF9t
ZXRob2Qgb3IgdGVzdF8iCi0gICAgICAgICAgICAgIm90aGVyJyBtYXRjaGVzIGFsbCB0ZXN0IGZ1
bmN0aW9ucyBhbmQgY2xhc3NlcyB3aG9zZSBuYW1lICIKLSAgICAgICAgICAgICAiY29udGFpbnMg
J3Rlc3RfbWV0aG9kJyBvciAndGVzdF9vdGhlcicsIHdoaWxlIC1rICdub3QgdGVzdF9tZXRob2Qn
ICIKLSAgICAgICAgICAgICAibWF0Y2hlcyB0aG9zZSB0aGF0IGRvbid0IGNvbnRhaW4gJ3Rlc3Rf
bWV0aG9kJyBpbiB0aGVpciBuYW1lcy4gIgotICAgICAgICAgICAgICJBZGRpdGlvbmFsbHkga2V5
d29yZHMgYXJlIG1hdGNoZWQgdG8gY2xhc3NlcyBhbmQgZnVuY3Rpb25zICIKLSAgICAgICAgICAg
ICAiY29udGFpbmluZyBleHRyYSBuYW1lcyBpbiB0aGVpciAnZXh0cmFfa2V5d29yZF9tYXRjaGVz
JyBzZXQsICIKLSAgICAgICAgICAgICAiYXMgd2VsbCBhcyBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBu
YW1lcyBhc3NpZ25lZCBkaXJlY3RseSB0byB0aGVtLiIKLSAgICApCi0KLSAgICBncm91cC5fYWRk
b3B0aW9uKAotICAgICAgICAiLW0iLAotICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0ibWFy
a2V4cHIiLCBkZWZhdWx0PSIiLCBtZXRhdmFyPSJNQVJLRVhQUiIsCi0gICAgICAgIGhlbHA9Im9u
bHkgcnVuIHRlc3RzIG1hdGNoaW5nIGdpdmVuIG1hcmsgZXhwcmVzc2lvbi4gICIKLSAgICAgICAg
ICAgICAiZXhhbXBsZTogLW0gJ21hcmsxIGFuZCBub3QgbWFyazInLiIKLSAgICApCi0KLSAgICBn
cm91cC5hZGRvcHRpb24oCi0gICAgICAgICItLW1hcmtlcnMiLCBhY3Rpb249InN0b3JlX3RydWUi
LAotICAgICAgICBoZWxwPSJzaG93IG1hcmtlcnMgKGJ1aWx0aW4sIHBsdWdpbiBhbmQgcGVyLXBy
b2plY3Qgb25lcykuIgotICAgICkKLQotICAgIHBhcnNlci5hZGRpbmkoIm1hcmtlcnMiLCAibWFy
a2VycyBmb3IgdGVzdCBmdW5jdGlvbnMiLCAnbGluZWxpc3QnKQotCi0KLWRlZiBweXRlc3RfY21k
bGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgaWYgY29u
ZmlnLm9wdGlvbi5tYXJrZXJzOgotICAgICAgICBjb25maWcuX2RvX2NvbmZpZ3VyZSgpCi0gICAg
ICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcpCi0g
ICAgICAgIGZvciBsaW5lIGluIGNvbmZpZy5nZXRpbmkoIm1hcmtlcnMiKToKLSAgICAgICAgICAg
IHBhcnRzID0gbGluZS5zcGxpdCgiOiIsIDEpCi0gICAgICAgICAgICBuYW1lID0gcGFydHNbMF0K
LSAgICAgICAgICAgIHJlc3QgPSBwYXJ0c1sxXSBpZiBsZW4ocGFydHMpID09IDIgZWxzZSAnJwot
ICAgICAgICAgICAgdHcud3JpdGUoIkBweXRlc3QubWFyay4lczoiICUgbmFtZSwgYm9sZD1UcnVl
KQotICAgICAgICAgICAgdHcubGluZShyZXN0KQotICAgICAgICAgICAgdHcubGluZSgpCi0gICAg
ICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKLSAgICAgICAgcmV0dXJuIDAKLQotCi1w
eXRlc3RfY21kbGluZV9tYWluLnRyeWZpcnN0ID0gVHJ1ZQotCi0KLWRlZiBweXRlc3RfY29sbGVj
dGlvbl9tb2RpZnlpdGVtcyhpdGVtcywgY29uZmlnKToKLSAgICBrZXl3b3JkZXhwciA9IGNvbmZp
Zy5vcHRpb24ua2V5d29yZC5sc3RyaXAoKQotICAgIG1hdGNoZXhwciA9IGNvbmZpZy5vcHRpb24u
bWFya2V4cHIKLSAgICBpZiBub3Qga2V5d29yZGV4cHIgYW5kIG5vdCBtYXRjaGV4cHI6Ci0gICAg
ICAgIHJldHVybgotICAgICMgcHl0ZXN0IHVzZWQgdG8gYWxsb3cgIi0iIGZvciBuZWdhdGluZwot
ICAgICMgYnV0IHRvZGF5IHdlIGp1c3QgYWxsb3cgIi0iIGF0IHRoZSBiZWdpbm5pbmcsIHVzZSAi
bm90IiBpbnN0ZWFkCi0gICAgIyB3ZSBwcm9iYWJseSByZW1vdmUgIi0iIGFsdG9nZXRoZXIgc29v
bgotICAgIGlmIGtleXdvcmRleHByLnN0YXJ0c3dpdGgoIi0iKToKLSAgICAgICAga2V5d29yZGV4
cHIgPSAibm90ICIgKyBrZXl3b3JkZXhwclsxOl0KLSAgICBzZWxlY3R1bnRpbCA9IEZhbHNlCi0g
ICAgaWYga2V5d29yZGV4cHJbLTE6XSA9PSAiOiI6Ci0gICAgICAgIHNlbGVjdHVudGlsID0gVHJ1
ZQotICAgICAgICBrZXl3b3JkZXhwciA9IGtleXdvcmRleHByWzotMV0KLQotICAgIHJlbWFpbmlu
ZyA9IFtdCi0gICAgZGVzZWxlY3RlZCA9IFtdCi0gICAgZm9yIGNvbGl0ZW0gaW4gaXRlbXM6Ci0g
ICAgICAgIGlmIGtleXdvcmRleHByIGFuZCBub3QgbWF0Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdv
cmRleHByKToKLSAgICAgICAgICAgIGRlc2VsZWN0ZWQuYXBwZW5kKGNvbGl0ZW0pCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBpZiBzZWxlY3R1bnRpbDoKLSAgICAgICAgICAgICAgICBrZXl3
b3JkZXhwciA9IE5vbmUKLSAgICAgICAgICAgIGlmIG1hdGNoZXhwcjoKLSAgICAgICAgICAgICAg
ICBpZiBub3QgbWF0Y2htYXJrKGNvbGl0ZW0sIG1hdGNoZXhwcik6Ci0gICAgICAgICAgICAgICAg
ICAgIGRlc2VsZWN0ZWQuYXBwZW5kKGNvbGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgICAgICByZW1haW5pbmcuYXBwZW5kKGNvbGl0ZW0pCi0KLSAgICBpZiBkZXNl
bGVjdGVkOgotICAgICAgICBjb25maWcuaG9vay5weXRlc3RfZGVzZWxlY3RlZChpdGVtcz1kZXNl
bGVjdGVkKQotICAgICAgICBpdGVtc1s6XSA9IHJlbWFpbmluZwotCi0KLUBhdHRyLnMKLWNsYXNz
IE1hcmtNYXBwaW5nKG9iamVjdCk6Ci0gICAgIiIiUHJvdmlkZXMgYSBsb2NhbCBtYXBwaW5nIGZv
ciBtYXJrZXJzIHdoZXJlIGl0ZW0gYWNjZXNzCi0gICAgcmVzb2x2ZXMgdG8gVHJ1ZSBpZiB0aGUg
bWFya2VyIGlzIHByZXNlbnQuICIiIgotCi0gICAgb3duX21hcmtfbmFtZXMgPSBhdHRyLmliKCkK
LQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2tleXdvcmRzKGNscywga2V5d29yZHMp
OgotICAgICAgICBtYXJrX25hbWVzID0gc2V0KCkKLSAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4g
a2V5d29yZHMuaXRlbXMoKToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIE1hcmtJ
bmZvKSBvciBpc2luc3RhbmNlKHZhbHVlLCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAgICAg
ICBtYXJrX25hbWVzLmFkZChrZXkpCi0gICAgICAgIHJldHVybiBjbHMobWFya19uYW1lcykKLQot
ICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIG5hbWUgaW4g
c2VsZi5vd25fbWFya19uYW1lcwotCi0KLWNsYXNzIEtleXdvcmRNYXBwaW5nKG9iamVjdCk6Ci0g
ICAgIiIiUHJvdmlkZXMgYSBsb2NhbCBtYXBwaW5nIGZvciBrZXl3b3Jkcy4KLSAgICBHaXZlbiBh
IGxpc3Qgb2YgbmFtZXMsIG1hcCBhbnkgc3Vic3RyaW5nIG9mIG9uZSBvZiB0aGVzZSBuYW1lcyB0
byBUcnVlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWVzKToKLSAgICAg
ICAgc2VsZi5fbmFtZXMgPSBuYW1lcwotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIHN1Ym5h
bWUpOgotICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLl9uYW1lczoKLSAgICAgICAgICAgIGlmIHN1
Ym5hbWUgaW4gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1
cm4gRmFsc2UKLQotCi1kZWYgbWF0Y2htYXJrKGNvbGl0ZW0sIG1hcmtleHByKToKLSAgICAiIiJU
cmllcyB0byBtYXRjaCBvbiBhbnkgbWFya2VyIG5hbWVzLCBhdHRhY2hlZCB0byB0aGUgZ2l2ZW4g
Y29saXRlbS4iIiIKLSAgICByZXR1cm4gZXZhbChtYXJrZXhwciwge30sIE1hcmtNYXBwaW5nLmZy
b21fa2V5d29yZHMoY29saXRlbS5rZXl3b3JkcykpCi0KLQotZGVmIG1hdGNoa2V5d29yZChjb2xp
dGVtLCBrZXl3b3JkZXhwcik6Ci0gICAgIiIiVHJpZXMgdG8gbWF0Y2ggZ2l2ZW4ga2V5d29yZCBl
eHByZXNzaW9uIHRvIGdpdmVuIGNvbGxlY3RvciBpdGVtLgotCi0gICAgV2lsbCBtYXRjaCBvbiB0
aGUgbmFtZSBvZiBjb2xpdGVtLCBpbmNsdWRpbmcgdGhlIG5hbWVzIG9mIGl0cyBwYXJlbnRzLgot
ICAgIE9ubHkgbWF0Y2hlcyBuYW1lcyBvZiBpdGVtcyB3aGljaCBhcmUgZWl0aGVyIGEgOmNsYXNz
OmBDbGFzc2Agb3IgYQotICAgIDpjbGFzczpgRnVuY3Rpb25gLgotICAgIEFkZGl0aW9uYWxseSwg
bWF0Y2hlcyBvbiBuYW1lcyBpbiB0aGUgJ2V4dHJhX2tleXdvcmRfbWF0Y2hlcycgc2V0IG9mCi0g
ICAgYW55IGl0ZW0sIGFzIHdlbGwgYXMgbmFtZXMgZGlyZWN0bHkgYXNzaWduZWQgdG8gdGVzdCBm
dW5jdGlvbnMuCi0gICAgIiIiCi0gICAgbWFwcGVkX25hbWVzID0gc2V0KCkKLQotICAgICMgQWRk
IHRoZSBuYW1lcyBvZiB0aGUgY3VycmVudCBpdGVtIGFuZCBhbnkgcGFyZW50IGl0ZW1zCi0gICAg
aW1wb3J0IHB5dGVzdAotICAgIGZvciBpdGVtIGluIGNvbGl0ZW0ubGlzdGNoYWluKCk6Ci0gICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIHB5dGVzdC5JbnN0YW5jZSk6Ci0gICAgICAgICAg
ICBtYXBwZWRfbmFtZXMuYWRkKGl0ZW0ubmFtZSkKLQotICAgICMgQWRkIHRoZSBuYW1lcyBhZGRl
ZCBhcyBleHRyYSBrZXl3b3JkcyB0byBjdXJyZW50IG9yIHBhcmVudCBpdGVtcwotICAgIGZvciBu
YW1lIGluIGNvbGl0ZW0ubGlzdGV4dHJha2V5d29yZHMoKToKLSAgICAgICAgbWFwcGVkX25hbWVz
LmFkZChuYW1lKQotCi0gICAgIyBBZGQgdGhlIG5hbWVzIGF0dGFjaGVkIHRvIHRoZSBjdXJyZW50
IGZ1bmN0aW9uIHRocm91Z2ggZGlyZWN0IGFzc2lnbm1lbnQKLSAgICBpZiBoYXNhdHRyKGNvbGl0
ZW0sICdmdW5jdGlvbicpOgotICAgICAgICBmb3IgbmFtZSBpbiBjb2xpdGVtLmZ1bmN0aW9uLl9f
ZGljdF9fOgotICAgICAgICAgICAgbWFwcGVkX25hbWVzLmFkZChuYW1lKQotCi0gICAgbWFwcGlu
ZyA9IEtleXdvcmRNYXBwaW5nKG1hcHBlZF9uYW1lcykKLSAgICBpZiAiICIgbm90IGluIGtleXdv
cmRleHByOgotICAgICAgICAjIHNwZWNpYWwgY2FzZSB0byBhbGxvdyBmb3Igc2ltcGxlICItayBw
YXNzIiBhbmQgIi1rIDEuMyIKLSAgICAgICAgcmV0dXJuIG1hcHBpbmdba2V5d29yZGV4cHJdCi0g
ICAgZWxpZiBrZXl3b3JkZXhwci5zdGFydHN3aXRoKCJub3QgIikgYW5kICIgIiBub3QgaW4ga2V5
d29yZGV4cHJbNDpdOgotICAgICAgICByZXR1cm4gbm90IG1hcHBpbmdba2V5d29yZGV4cHJbNDpd
XQotICAgIHJldHVybiBldmFsKGtleXdvcmRleHByLCB7fSwgbWFwcGluZykKLQotCi1kZWYgcHl0
ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGNvbmZpZy5fb2xkX21hcmtfY29uZmlnID0gTUFS
S19HRU4uX2NvbmZpZwotICAgIGlmIGNvbmZpZy5vcHRpb24uc3RyaWN0OgotICAgICAgICBNQVJL
X0dFTi5fY29uZmlnID0gY29uZmlnCi0KLQotZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcp
OgotICAgIE1BUktfR0VOLl9jb25maWcgPSBnZXRhdHRyKGNvbmZpZywgJ19vbGRfbWFya19jb25m
aWcnLCBOb25lKQotCi0KLWNsYXNzIE1hcmtHZW5lcmF0b3I6Ci0gICAgIiIiIEZhY3RvcnkgZm9y
IDpjbGFzczpgTWFya0RlY29yYXRvcmAgb2JqZWN0cyAtIGV4cG9zZWQgYXMKLSAgICBhIGBgcHl0
ZXN0Lm1hcmtgYCBzaW5nbGV0b24gaW5zdGFuY2UuICBFeGFtcGxlOjoKLQotICAgICAgICAgaW1w
b3J0IHB5dGVzdAotICAgICAgICAgQHB5dGVzdC5tYXJrLnNsb3d0ZXN0Ci0gICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbigpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgd2lsbCBzZXQgYSAnc2xv
d3Rlc3QnIDpjbGFzczpgTWFya0luZm9gIG9iamVjdAotICAgIG9uIHRoZSBgYHRlc3RfZnVuY3Rp
b25gYCBvYmplY3QuICIiIgotICAgIF9jb25maWcgPSBOb25lCi0KLSAgICBkZWYgX19nZXRhdHRy
X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIGlmIG5hbWVbMF0gPT0gIl8iOgotICAgICAgICAgICAg
cmFpc2UgQXR0cmlidXRlRXJyb3IoIk1hcmtlciBuYW1lIG11c3QgTk9UIHN0YXJ0IHdpdGggdW5k
ZXJzY29yZSIpCi0gICAgICAgIGlmIHNlbGYuX2NvbmZpZyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuX2NoZWNrKG5hbWUpCi0gICAgICAgIHJldHVybiBNYXJrRGVjb3JhdG9yKE1hcmso
bmFtZSwgKCksIHt9KSkKLQotICAgIGRlZiBfY2hlY2soc2VsZiwgbmFtZSk6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5fbWFya2VyczoKLSAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcGFz
cwotICAgICAgICBzZWxmLl9tYXJrZXJzID0gdmFsdWVzID0gc2V0KCkKLSAgICAgICAgZm9yIGxp
bmUgaW4gc2VsZi5fY29uZmlnLmdldGluaSgibWFya2VycyIpOgotICAgICAgICAgICAgbWFya2Vy
ID0gbGluZS5zcGxpdCgiOiIsIDEpWzBdCi0gICAgICAgICAgICBtYXJrZXIgPSBtYXJrZXIucnN0
cmlwKCkKLSAgICAgICAgICAgIHggPSBtYXJrZXIuc3BsaXQoIigiLCAxKVswXQotICAgICAgICAg
ICAgdmFsdWVzLmFkZCh4KQotICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLl9tYXJrZXJzOgot
ICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIiVyIG5vdCBhIHJlZ2lzdGVyZWQgbWFy
a2VyIiAlIChuYW1lLCkpCi0KLQotZGVmIGlzdGVzdGZ1bmMoZnVuYyk6Ci0gICAgcmV0dXJuIGhh
c2F0dHIoZnVuYywgIl9fY2FsbF9fIikgYW5kIFwKLSAgICAgICAgZ2V0YXR0cihmdW5jLCAiX19u
YW1lX18iLCAiPGxhbWJkYT4iKSAhPSAiPGxhbWJkYT4iCi0KLQotQGF0dHIucyhmcm96ZW49VHJ1
ZSkKLWNsYXNzIE1hcmsob2JqZWN0KToKLSAgICBuYW1lID0gYXR0ci5pYigpCi0gICAgYXJncyA9
IGF0dHIuaWIoKQotICAgIGt3YXJncyA9IGF0dHIuaWIoKQotCi0gICAgZGVmIGNvbWJpbmVkX3dp
dGgoc2VsZiwgb3RoZXIpOgotICAgICAgICBhc3NlcnQgc2VsZi5uYW1lID09IG90aGVyLm5hbWUK
LSAgICAgICAgcmV0dXJuIE1hcmsoCi0gICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYuYXJncyAr
IG90aGVyLmFyZ3MsCi0gICAgICAgICAgICBkaWN0KHNlbGYua3dhcmdzLCAqKm90aGVyLmt3YXJn
cykpCi0KLQotQGF0dHIucwotY2xhc3MgTWFya0RlY29yYXRvcihvYmplY3QpOgotICAgICIiIiBB
IGRlY29yYXRvciBmb3IgdGVzdCBmdW5jdGlvbnMgYW5kIHRlc3QgY2xhc3Nlcy4gIFdoZW4gYXBw
bGllZAotICAgIGl0IHdpbGwgY3JlYXRlIDpjbGFzczpgTWFya0luZm9gIG9iamVjdHMgd2hpY2gg
bWF5IGJlCi0gICAgOnJlZjpgcmV0cmlldmVkIGJ5IGhvb2tzIGFzIGl0ZW0ga2V5d29yZHMgPGV4
Y29udHJvbHNraXA+YC4KLSAgICBNYXJrRGVjb3JhdG9yIGluc3RhbmNlcyBhcmUgb2Z0ZW4gY3Jl
YXRlZCBsaWtlIHRoaXM6OgotCi0gICAgICAgIG1hcmsxID0gcHl0ZXN0Lm1hcmsuTkFNRSAgICAg
ICAgICAgICAgIyBzaW1wbGUgTWFya0RlY29yYXRvcgotICAgICAgICBtYXJrMiA9IHB5dGVzdC5t
YXJrLk5BTUUobmFtZTE9dmFsdWUpICMgcGFyYW1ldHJpemVkIE1hcmtEZWNvcmF0b3IKLQotICAg
IGFuZCBjYW4gdGhlbiBiZSBhcHBsaWVkIGFzIGRlY29yYXRvcnMgdG8gdGVzdCBmdW5jdGlvbnM6
OgotCi0gICAgICAgIEBtYXJrMgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgotICAgICAg
ICAgICAgcGFzcwotCi0gICAgV2hlbiBhIE1hcmtEZWNvcmF0b3IgaW5zdGFuY2UgaXMgY2FsbGVk
IGl0IGRvZXMgdGhlIGZvbGxvd2luZzoKLSAgICAgIDEuIElmIGNhbGxlZCB3aXRoIGEgc2luZ2xl
IGNsYXNzIGFzIGl0cyBvbmx5IHBvc2l0aW9uYWwgYXJndW1lbnQgYW5kIG5vCi0gICAgICAgICBh
ZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzLCBpdCBhdHRhY2hlcyBpdHNlbGYgdG8gdGhlIGNs
YXNzIHNvIGl0Ci0gICAgICAgICBnZXRzIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byBhbGwgdGVz
dCBjYXNlcyBmb3VuZCBpbiB0aGF0IGNsYXNzLgotICAgICAgMi4gSWYgY2FsbGVkIHdpdGggYSBz
aW5nbGUgZnVuY3Rpb24gYXMgaXRzIG9ubHkgcG9zaXRpb25hbCBhcmd1bWVudCBhbmQKLSAgICAg
ICAgIG5vIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudHMsIGl0IGF0dGFjaGVzIGEgTWFya0lu
Zm8gb2JqZWN0IHRvIHRoZQotICAgICAgICAgZnVuY3Rpb24sIGNvbnRhaW5pbmcgYWxsIHRoZSBh
cmd1bWVudHMgYWxyZWFkeSBzdG9yZWQgaW50ZXJuYWxseSBpbgotICAgICAgICAgdGhlIE1hcmtE
ZWNvcmF0b3IuCi0gICAgICAzLiBXaGVuIGNhbGxlZCBpbiBhbnkgb3RoZXIgY2FzZSwgaXQgcGVy
Zm9ybXMgYSAnZmFrZSBjb25zdHJ1Y3Rpb24nIGNhbGwsCi0gICAgICAgICBpLmUuIGl0IHJldHVy
bnMgYSBuZXcgTWFya0RlY29yYXRvciBpbnN0YW5jZSB3aXRoIHRoZSBvcmlnaW5hbAotICAgICAg
ICAgTWFya0RlY29yYXRvcidzIGNvbnRlbnQgdXBkYXRlZCB3aXRoIHRoZSBhcmd1bWVudHMgcGFz
c2VkIHRvIHRoaXMKLSAgICAgICAgIGNhbGwuCi0KLSAgICBOb3RlOiBUaGUgcnVsZXMgYWJvdmUg
cHJldmVudCBNYXJrRGVjb3JhdG9yIG9iamVjdHMgZnJvbSBzdG9yaW5nIG9ubHkgYQotICAgIHNp
bmdsZSBmdW5jdGlvbiBvciBjbGFzcyByZWZlcmVuY2UgYXMgdGhlaXIgcG9zaXRpb25hbCBhcmd1
bWVudCB3aXRoIG5vCi0gICAgYWRkaXRpb25hbCBrZXl3b3JkIG9yIHBvc2l0aW9uYWwgYXJndW1l
bnRzLgotCi0gICAgIiIiCi0KLSAgICBtYXJrID0gYXR0ci5pYih2YWxpZGF0b3I9YXR0ci52YWxp
ZGF0b3JzLmluc3RhbmNlX29mKE1hcmspKQotCi0gICAgbmFtZSA9IGFsaWFzKCdtYXJrLm5hbWUn
KQotICAgIGFyZ3MgPSBhbGlhcygnbWFyay5hcmdzJykKLSAgICBrd2FyZ3MgPSBhbGlhcygnbWFy
ay5rd2FyZ3MnKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG1hcmtuYW1lKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5uYW1lICAjIGZvciBiYWNrd2FyZC1jb21wYXQgKDIuNC4xIGhhZCB0
aGlzIGF0dHIpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJu
IHNlbGYubWFyayA9PSBvdGhlci5tYXJrIGlmIGlzaW5zdGFuY2Uob3RoZXIsIE1hcmtEZWNvcmF0
b3IpIGVsc2UgRmFsc2UKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
ICI8TWFya0RlY29yYXRvciAlcj4iICUgKHNlbGYubWFyaywpCi0KLSAgICBkZWYgd2l0aF9hcmdz
KHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIiByZXR1cm4gYSBNYXJrRGVjb3Jh
dG9yIHdpdGggZXh0cmEgYXJndW1lbnRzIGFkZGVkCi0KLSAgICAgICAgdW5saWtlIGNhbGwgdGhp
cyBjYW4gYmUgdXNlZCBldmVuIGlmIHRoZSBzb2xlIGFyZ3VtZW50IGlzIGEgY2FsbGFibGUvY2xh
c3MKLQotICAgICAgICA6cmV0dXJuOiBNYXJrRGVjb3JhdG9yCi0gICAgICAgICIiIgotCi0gICAg
ICAgIG1hcmsgPSBNYXJrKHNlbGYubmFtZSwgYXJncywga3dhcmdzKQotICAgICAgICByZXR1cm4g
c2VsZi5fX2NsYXNzX18oc2VsZi5tYXJrLmNvbWJpbmVkX3dpdGgobWFyaykpCi0KLSAgICBkZWYg
X19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiIGlmIHBhc3NlZCBh
IHNpbmdsZSBjYWxsYWJsZSBhcmd1bWVudDogZGVjb3JhdGUgaXQgd2l0aCBtYXJrIGluZm8uCi0g
ICAgICAgICAgICBvdGhlcndpc2UgYWRkICphcmdzLyoqa3dhcmdzIGluLXBsYWNlIHRvIG1hcmsg
aW5mb3JtYXRpb24uICIiIgotICAgICAgICBpZiBhcmdzIGFuZCBub3Qga3dhcmdzOgotICAgICAg
ICAgICAgZnVuYyA9IGFyZ3NbMF0KLSAgICAgICAgICAgIGlzX2NsYXNzID0gaW5zcGVjdC5pc2Ns
YXNzKGZ1bmMpCi0gICAgICAgICAgICBpZiBsZW4oYXJncykgPT0gMSBhbmQgKGlzdGVzdGZ1bmMo
ZnVuYykgb3IgaXNfY2xhc3MpOgotICAgICAgICAgICAgICAgIGlmIGlzX2NsYXNzOgotICAgICAg
ICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykKLSAgICAgICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVuYywg
c2VsZi5tYXJrKQotICAgICAgICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFy
aykKLSAgICAgICAgICAgICAgICByZXR1cm4gZnVuYwotICAgICAgICByZXR1cm4gc2VsZi53aXRo
X2FyZ3MoKmFyZ3MsICoqa3dhcmdzKQotCi0KLWRlZiBnZXRfdW5wYWNrZWRfbWFya3Mob2JqKToK
LSAgICAiIiIKLSAgICBvYnRhaW4gdGhlIHVucGFja2VkIG1hcmtzIHRoYXQgYXJlIHN0b3JlZCBv
biBhIG9iamVjdAotICAgICIiIgotICAgIG1hcmtfbGlzdCA9IGdldGF0dHIob2JqLCAncHl0ZXN0
bWFyaycsIFtdKQotCi0gICAgaWYgbm90IGlzaW5zdGFuY2UobWFya19saXN0LCBsaXN0KToKLSAg
ICAgICAgbWFya19saXN0ID0gW21hcmtfbGlzdF0KLSAgICByZXR1cm4gWwotICAgICAgICBnZXRh
dHRyKG1hcmssICdtYXJrJywgbWFyaykgICMgdW5wYWNrIE1hcmtEZWNvcmF0b3IKLSAgICAgICAg
Zm9yIG1hcmsgaW4gbWFya19saXN0Ci0gICAgXQotCi0KLWRlZiBzdG9yZV9tYXJrKG9iaiwgbWFy
ayk6Ci0gICAgIiIic3RvcmUgYSBNYXJrIG9uIGEgb2JqZWN0Ci0gICAgdGhpcyBpcyB1c2VkIHRv
IGltcGxlbWVudCB0aGUgTWFyayBkZWNsYXJhdGlvbnMvZGVjb3JhdG9ycyBjb3JyZWN0bHkKLSAg
ICAiIiIKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJrLCBNYXJrKSwgbWFyawotICAgICMgYWx3
YXlzIHJlYXNzaWduIG5hbWUgdG8gYXZvaWQgdXBkYXRpbmcgcHl0ZXN0bWFyawotICAgICMgaW4g
YSByZWZlcmVuY2UgdGhhdCB3YXMgb25seSBib3Jyb3dlZAotICAgIG9iai5weXRlc3RtYXJrID0g
Z2V0X3VucGFja2VkX21hcmtzKG9iaikgKyBbbWFya10KLQotCi1kZWYgc3RvcmVfbGVnYWN5X21h
cmtpbmZvKGZ1bmMsIG1hcmspOgotICAgICIiImNyZWF0ZSB0aGUgbGVnYWN5IE1hcmtJbmZvIG9i
amVjdHMgYW5kIHB1dCB0aGVtIG9udG8gdGhlIGZ1bmN0aW9uCi0gICAgIiIiCi0gICAgaWYgbm90
IGlzaW5zdGFuY2UobWFyaywgTWFyayk6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZ290IHtt
YXJrIXJ9IGluc3RlYWQgb2YgYSBNYXJrIi5mb3JtYXQobWFyaz1tYXJrKSkKLSAgICBob2xkZXIg
PSBnZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSwgTm9uZSkKLSAgICBpZiBob2xkZXIgaXMgTm9uZToK
LSAgICAgICAgaG9sZGVyID0gTWFya0luZm8obWFyaykKLSAgICAgICAgc2V0YXR0cihmdW5jLCBt
YXJrLm5hbWUsIGhvbGRlcikKLSAgICBlbHNlOgotICAgICAgICBob2xkZXIuYWRkX21hcmsobWFy
aykKLQotCi1jbGFzcyBNYXJrSW5mbyhvYmplY3QpOgotICAgICIiIiBNYXJraW5nIG9iamVjdCBj
cmVhdGVkIGJ5IDpjbGFzczpgTWFya0RlY29yYXRvcmAgaW5zdGFuY2VzLiAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBtYXJrKToKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobWFyaywg
TWFyayksIHJlcHIobWFyaykKLSAgICAgICAgc2VsZi5jb21iaW5lZCA9IG1hcmsKLSAgICAgICAg
c2VsZi5fbWFya3MgPSBbbWFya10KLQotICAgIG5hbWUgPSBhbGlhcygnY29tYmluZWQubmFtZScp
Ci0gICAgYXJncyA9IGFsaWFzKCdjb21iaW5lZC5hcmdzJykKLSAgICBrd2FyZ3MgPSBhbGlhcygn
Y29tYmluZWQua3dhcmdzJykKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0
dXJuICI8TWFya0luZm8gezAhcn0+Ii5mb3JtYXQoc2VsZi5jb21iaW5lZCkKLQotICAgIGRlZiBh
ZGRfbWFyayhzZWxmLCBtYXJrKToKLSAgICAgICAgIiIiIGFkZCBhIE1hcmtJbmZvIHdpdGggdGhl
IGdpdmVuIGFyZ3MgYW5kIGt3YXJncy4gIiIiCi0gICAgICAgIHNlbGYuX21hcmtzLmFwcGVuZCht
YXJrKQotICAgICAgICBzZWxmLmNvbWJpbmVkID0gc2VsZi5jb21iaW5lZC5jb21iaW5lZF93aXRo
KG1hcmspCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgICIiIiB5aWVsZCBNYXJr
SW5mbyBvYmplY3RzIGVhY2ggcmVsYXRpbmcgdG8gYSBtYXJraW5nLWNhbGwuICIiIgotICAgICAg
ICByZXR1cm4gbWFwKE1hcmtJbmZvLCBzZWxmLl9tYXJrcykKLQotCi1NQVJLX0dFTiA9IE1hcmtH
ZW5lcmF0b3IoKQotCi0KLWRlZiBfbWFya2VkKGZ1bmMsIG1hcmspOgotICAgICIiIiBSZXR1cm5z
IFRydWUgaWYgOmZ1bmM6IGlzIGFscmVhZHkgbWFya2VkIHdpdGggOm1hcms6LCBGYWxzZSBvdGhl
cndpc2UuCi0gICAgVGhpcyBjYW4gaGFwcGVuIGlmIG1hcmtlciBpcyBhcHBsaWVkIHRvIGNsYXNz
IGFuZCB0aGUgdGVzdCBmaWxlIGlzCi0gICAgaW52b2tlZCBtb3JlIHRoYW4gb25jZS4KLSAgICAi
IiIKLSAgICB0cnk6Ci0gICAgICAgIGZ1bmNfbWFyayA9IGdldGF0dHIoZnVuYywgbWFyay5uYW1l
KQotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
cmV0dXJuIG1hcmsuYXJncyA9PSBmdW5jX21hcmsuYXJncyBhbmQgbWFyay5rd2FyZ3MgPT0gZnVu
Y19tYXJrLmt3YXJncwotCi0KLWRlZiB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmosIGNscywgbW9k
KToKLSAgICAiIiIKLSAgICB0aGlzIGZ1bmN0aW9uIHRyYW5zZmVycyBjbGFzcyBsZXZlbCBtYXJr
ZXJzIGFuZCBtb2R1bGUgbGV2ZWwgbWFya2VycwotICAgIGludG8gZnVuY3Rpb24gbGV2ZWwgbWFy
a2luZm8gb2JqZWN0cwotCi0gICAgdGhpcyBpcyB0aGUgbWFpbiByZWFzb24gd2h5IG1hcmtzIGFy
ZSBzbyBicm9rZW4KLSAgICB0aGUgcmVzb2x1dGlvbiB3aWxsIGludm9sdmUgcGhhc2luZyBvdXQg
ZnVuY3Rpb24gbGV2ZWwgTWFya0luZm8gb2JqZWN0cwotCi0gICAgIiIiCi0gICAgZm9yIG9iaiBp
biAoY2xzLCBtb2QpOgotICAgICAgICBmb3IgbWFyayBpbiBnZXRfdW5wYWNrZWRfbWFya3Mob2Jq
KToKLSAgICAgICAgICAgIGlmIG5vdCBfbWFya2VkKGZ1bmNvYmosIG1hcmspOgotICAgICAgICAg
ICAgICAgIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5jb2JqLCBtYXJrKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
bW9ua2V5cGF0Y2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwYWU1NjBmMDcw
MmIxMzYwYTMwOWQ5MTQ3MzAyOTAzYjExNzRlNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDI1OCArMCwwIEBACi0iIiIgbW9ua2V5cGF0Y2hpbmcgYW5kIG1v
Y2tpbmcgZnVuY3Rpb25hbGl0eS4gICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgb3MKLWltcG9ydCBz
eXMKLWltcG9ydCByZQotaW1wb3J0IHNpeAotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBm
aXh0dXJlCi0KLVJFX0lNUE9SVF9FUlJPUl9OQU1FID0gcmUuY29tcGlsZSgiXk5vIG1vZHVsZSBu
YW1lZCAoLiopJCIpCi0KLQotQGZpeHR1cmUKLWRlZiBtb25rZXlwYXRjaCgpOgotICAgICIiIlRo
ZSByZXR1cm5lZCBgYG1vbmtleXBhdGNoYGAgZml4dHVyZSBwcm92aWRlcyB0aGVzZQotICAgIGhl
bHBlciBtZXRob2RzIHRvIG1vZGlmeSBvYmplY3RzLCBkaWN0aW9uYXJpZXMgb3Igb3MuZW52aXJv
bjo6Ci0KLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvYmosIG5hbWUsIHZhbHVlLCByYWlz
aW5nPVRydWUpCi0gICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIob2JqLCBuYW1lLCByYWlzaW5n
PVRydWUpCi0gICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0obWFwcGluZywgbmFtZSwgdmFsdWUp
Ci0gICAgICAgIG1vbmtleXBhdGNoLmRlbGl0ZW0ob2JqLCBuYW1lLCByYWlzaW5nPVRydWUpCi0g
ICAgICAgIG1vbmtleXBhdGNoLnNldGVudihuYW1lLCB2YWx1ZSwgcHJlcGVuZD1GYWxzZSkKLSAg
ICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KG5hbWUsIHZhbHVlLCByYWlzaW5nPVRydWUpCi0gICAg
ICAgIG1vbmtleXBhdGNoLnN5c3BhdGhfcHJlcGVuZChwYXRoKQotICAgICAgICBtb25rZXlwYXRj
aC5jaGRpcihwYXRoKQotCi0gICAgQWxsIG1vZGlmaWNhdGlvbnMgd2lsbCBiZSB1bmRvbmUgYWZ0
ZXIgdGhlIHJlcXVlc3RpbmcKLSAgICB0ZXN0IGZ1bmN0aW9uIG9yIGZpeHR1cmUgaGFzIGZpbmlz
aGVkLiBUaGUgYGByYWlzaW5nYGAKLSAgICBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyBpZiBhIEtleUVy
cm9yIG9yIEF0dHJpYnV0ZUVycm9yCi0gICAgd2lsbCBiZSByYWlzZWQgaWYgdGhlIHNldC9kZWxl
dGlvbiBvcGVyYXRpb24gaGFzIG5vIHRhcmdldC4KLSAgICAiIiIKLSAgICBtcGF0Y2ggPSBNb25r
ZXlQYXRjaCgpCi0gICAgeWllbGQgbXBhdGNoCi0gICAgbXBhdGNoLnVuZG8oKQotCi0KLWRlZiBy
ZXNvbHZlKG5hbWUpOgotICAgICMgc2ltcGxpZmllZCBmcm9tIHpvcGUuZG90dGVkbmFtZQotICAg
IHBhcnRzID0gbmFtZS5zcGxpdCgnLicpCi0KLSAgICB1c2VkID0gcGFydHMucG9wKDApCi0gICAg
Zm91bmQgPSBfX2ltcG9ydF9fKHVzZWQpCi0gICAgZm9yIHBhcnQgaW4gcGFydHM6Ci0gICAgICAg
IHVzZWQgKz0gJy4nICsgcGFydAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3VuZCA9IGdl
dGF0dHIoZm91bmQsIHBhcnQpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAg
ICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICMgd2UgdXNlIGV4cGxpY2l0IHVuLW5lc3Rpbmcgb2YgdGhlIGhhbmRsaW5nIGJsb2NrIGluIG9y
ZGVyCi0gICAgICAgICMgdG8gYXZvaWQgbmVzdGVkIGV4Y2VwdGlvbnMgb24gcHl0aG9uIDMKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgX19pbXBvcnRfXyh1c2VkKQotICAgICAgICBleGNlcHQg
SW1wb3J0RXJyb3IgYXMgZXg6Ci0gICAgICAgICAgICAjIHN0ciBpcyB1c2VkIGZvciBweTIgdnMg
cHkzCi0gICAgICAgICAgICBleHBlY3RlZCA9IHN0cihleCkuc3BsaXQoKVstMV0KLSAgICAgICAg
ICAgIGlmIGV4cGVjdGVkID09IHVzZWQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgICdpbXBvcnQgZXJyb3IgaW4gJXM6ICVzJyAlICh1c2VkLCBleCkKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgIGZvdW5kID0gYW5ub3RhdGVkX2dldGF0dHIoZm91bmQsIHBhcnQs
IHVzZWQpCi0gICAgcmV0dXJuIGZvdW5kCi0KLQotZGVmIGFubm90YXRlZF9nZXRhdHRyKG9iaiwg
bmFtZSwgYW5uKToKLSAgICB0cnk6Ci0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCBuYW1lKQot
ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3Io
Ci0gICAgICAgICAgICAnJXIgb2JqZWN0IGF0ICVzIGhhcyBubyBhdHRyaWJ1dGUgJXInICUgKAot
ICAgICAgICAgICAgICAgIHR5cGUob2JqKS5fX25hbWVfXywgYW5uLCBuYW1lCi0gICAgICAgICAg
ICApCi0gICAgICAgICkKLSAgICByZXR1cm4gb2JqCi0KLQotZGVmIGRlcml2ZV9pbXBvcnRwYXRo
KGltcG9ydF9wYXRoLCByYWlzaW5nKToKLSAgICBpZiBub3QgaXNpbnN0YW5jZShpbXBvcnRfcGF0
aCwgc2l4LnN0cmluZ190eXBlcykgb3IgIi4iIG5vdCBpbiBpbXBvcnRfcGF0aDoKLSAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCJtdXN0IGJlIGFic29sdXRlIGltcG9ydCBwYXRoIHN0cmluZywgbm90
ICVyIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoaW1wb3J0X3BhdGgsKSkKLSAgICBtb2R1
bGUsIGF0dHIgPSBpbXBvcnRfcGF0aC5yc3BsaXQoJy4nLCAxKQotICAgIHRhcmdldCA9IHJlc29s
dmUobW9kdWxlKQotICAgIGlmIHJhaXNpbmc6Ci0gICAgICAgIGFubm90YXRlZF9nZXRhdHRyKHRh
cmdldCwgYXR0ciwgYW5uPW1vZHVsZSkKLSAgICByZXR1cm4gYXR0ciwgdGFyZ2V0Ci0KLQotY2xh
c3MgTm90c2V0OgotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8bm90
c2V0PiIKLQotCi1ub3RzZXQgPSBOb3RzZXQoKQotCi0KLWNsYXNzIE1vbmtleVBhdGNoOgotICAg
ICIiIiBPYmplY3QgcmV0dXJuZWQgYnkgdGhlIGBgbW9ua2V5cGF0Y2hgYCBmaXh0dXJlIGtlZXBp
bmcgYSByZWNvcmQgb2Ygc2V0YXR0ci9pdGVtL2Vudi9zeXNwYXRoIGNoYW5nZXMuCi0gICAgIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3NldGF0dHIgPSBbXQot
ICAgICAgICBzZWxmLl9zZXRpdGVtID0gW10KLSAgICAgICAgc2VsZi5fY3dkID0gTm9uZQotICAg
ICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IE5vbmUKLQotICAgIGRlZiBzZXRhdHRyKHNlbGYsIHRh
cmdldCwgbmFtZSwgdmFsdWU9bm90c2V0LCByYWlzaW5nPVRydWUpOgotICAgICAgICAiIiIgU2V0
IGF0dHJpYnV0ZSB2YWx1ZSBvbiB0YXJnZXQsIG1lbW9yaXppbmcgdGhlIG9sZCB2YWx1ZS4KLSAg
ICAgICAgQnkgZGVmYXVsdCByYWlzZSBBdHRyaWJ1dGVFcnJvciBpZiB0aGUgYXR0cmlidXRlIGRp
ZCBub3QgZXhpc3QuCi0KLSAgICAgICAgRm9yIGNvbnZlbmllbmNlIHlvdSBjYW4gc3BlY2lmeSBh
IHN0cmluZyBhcyBgYHRhcmdldGBgIHdoaWNoCi0gICAgICAgIHdpbGwgYmUgaW50ZXJwcmV0ZWQg
YXMgYSBkb3R0ZWQgaW1wb3J0IHBhdGgsIHdpdGggdGhlIGxhc3QgcGFydAotICAgICAgICBiZWlu
ZyB0aGUgYXR0cmlidXRlIG5hbWUuICBFeGFtcGxlOgotICAgICAgICBgYG1vbmtleXBhdGNoLnNl
dGF0dHIoIm9zLmdldGN3ZCIsIGxhbWJkYSB4OiAiLyIpYGAKLSAgICAgICAgd291bGQgc2V0IHRo
ZSBgYGdldGN3ZGBgIGZ1bmN0aW9uIG9mIHRoZSBgYG9zYGAgbW9kdWxlLgotCi0gICAgICAgIFRo
ZSBgYHJhaXNpbmdgYCB2YWx1ZSBkZXRlcm1pbmVzIGlmIHRoZSBzZXRhdHRyIHNob3VsZCBmYWls
Ci0gICAgICAgIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGFscmVhZHkgcHJlc2VudCAoZGVmYXVs
dHMgdG8gVHJ1ZQotICAgICAgICB3aGljaCBtZWFucyBpdCB3aWxsIHJhaXNlKS4KLSAgICAgICAg
IiIiCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBpbXBvcnQgaW5z
cGVjdAotCi0gICAgICAgIGlmIHZhbHVlIGlzIG5vdHNldDoKLSAgICAgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKHRhcmdldCwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKCJ1c2Ugc2V0YXR0cih0YXJnZXQsIG5hbWUsIHZhbHVlKSBvciAiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXRhdHRyKHRhcmdldCwgdmFsdWUpIHdpdGgg
dGFyZ2V0IGJlaW5nIGEgZG90dGVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImltcG9ydCBzdHJpbmciKQotICAgICAgICAgICAgdmFsdWUgPSBuYW1lCi0gICAgICAgICAgICBu
YW1lLCB0YXJnZXQgPSBkZXJpdmVfaW1wb3J0cGF0aCh0YXJnZXQsIHJhaXNpbmcpCi0KLSAgICAg
ICAgb2xkdmFsID0gZ2V0YXR0cih0YXJnZXQsIG5hbWUsIG5vdHNldCkKLSAgICAgICAgaWYgcmFp
c2luZyBhbmQgb2xkdmFsIGlzIG5vdHNldDoKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVy
cm9yKCIlciBoYXMgbm8gYXR0cmlidXRlICVyIiAlICh0YXJnZXQsIG5hbWUpKQotCi0gICAgICAg
ICMgYXZvaWQgY2xhc3MgZGVzY3JpcHRvcnMgbGlrZSBzdGF0aWNtZXRob2QvY2xhc3NtZXRob2QK
LSAgICAgICAgaWYgaW5zcGVjdC5pc2NsYXNzKHRhcmdldCk6Ci0gICAgICAgICAgICBvbGR2YWwg
PSB0YXJnZXQuX19kaWN0X18uZ2V0KG5hbWUsIG5vdHNldCkKLSAgICAgICAgc2VsZi5fc2V0YXR0
ci5hcHBlbmQoKHRhcmdldCwgbmFtZSwgb2xkdmFsKSkKLSAgICAgICAgc2V0YXR0cih0YXJnZXQs
IG5hbWUsIHZhbHVlKQotCi0gICAgZGVmIGRlbGF0dHIoc2VsZiwgdGFyZ2V0LCBuYW1lPW5vdHNl
dCwgcmFpc2luZz1UcnVlKToKLSAgICAgICAgIiIiIERlbGV0ZSBhdHRyaWJ1dGUgYGBuYW1lYGAg
ZnJvbSBgYHRhcmdldGBgLCBieSBkZWZhdWx0IHJhaXNlCi0gICAgICAgIEF0dHJpYnV0ZUVycm9y
IGl0IHRoZSBhdHRyaWJ1dGUgZGlkIG5vdCBwcmV2aW91c2x5IGV4aXN0LgotCi0gICAgICAgIElm
IG5vIGBgbmFtZWBgIGlzIHNwZWNpZmllZCBhbmQgYGB0YXJnZXRgYCBpcyBhIHN0cmluZwotICAg
ICAgICBpdCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgZG90dGVkIGltcG9ydCBwYXRoIHdpdGgg
dGhlCi0gICAgICAgIGxhc3QgcGFydCBiZWluZyB0aGUgYXR0cmlidXRlIG5hbWUuCi0KLSAgICAg
ICAgSWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZhbHNlLCBubyBleGNlcHRpb24gd2lsbCBiZSBy
YWlzZWQgaWYgdGhlCi0gICAgICAgIGF0dHJpYnV0ZSBpcyBtaXNzaW5nLgotICAgICAgICAiIiIK
LSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGlmIG5hbWUgaXMgbm90
c2V0OgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodGFyZ2V0LCBzaXguc3RyaW5nX3R5
cGVzKToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInVzZSBkZWxhdHRyKHRhcmdl
dCwgbmFtZSkgb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsYXR0cih0
YXJnZXQpIHdpdGggdGFyZ2V0IGJlaW5nIGEgZG90dGVkICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImltcG9ydCBzdHJpbmciKQotICAgICAgICAgICAgbmFtZSwgdGFyZ2V0ID0g
ZGVyaXZlX2ltcG9ydHBhdGgodGFyZ2V0LCByYWlzaW5nKQotCi0gICAgICAgIGlmIG5vdCBoYXNh
dHRyKHRhcmdldCwgbmFtZSk6Ci0gICAgICAgICAgICBpZiByYWlzaW5nOgotICAgICAgICAgICAg
ICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgodGFyZ2V0LCBuYW1lLCBnZXRhdHRyKHRhcmdldCwgbmFt
ZSwgbm90c2V0KSkpCi0gICAgICAgICAgICBkZWxhdHRyKHRhcmdldCwgbmFtZSkKLQotICAgIGRl
ZiBzZXRpdGVtKHNlbGYsIGRpYywgbmFtZSwgdmFsdWUpOgotICAgICAgICAiIiIgU2V0IGRpY3Rp
b25hcnkgZW50cnkgYGBuYW1lYGAgdG8gdmFsdWUuICIiIgotICAgICAgICBzZWxmLl9zZXRpdGVt
LmFwcGVuZCgoZGljLCBuYW1lLCBkaWMuZ2V0KG5hbWUsIG5vdHNldCkpKQotICAgICAgICBkaWNb
bmFtZV0gPSB2YWx1ZQotCi0gICAgZGVmIGRlbGl0ZW0oc2VsZiwgZGljLCBuYW1lLCByYWlzaW5n
PVRydWUpOgotICAgICAgICAiIiIgRGVsZXRlIGBgbmFtZWBgIGZyb20gZGljdC4gUmFpc2UgS2V5
RXJyb3IgaWYgaXQgZG9lc24ndCBleGlzdC4KLQotICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBz
ZXQgdG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKLSAgICAgICAg
a2V5IGlzIG1pc3NpbmcuCi0gICAgICAgICIiIgotICAgICAgICBpZiBuYW1lIG5vdCBpbiBkaWM6
Ci0gICAgICAgICAgICBpZiByYWlzaW5nOgotICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9y
KG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zZXRpdGVtLmFwcGVuZCgo
ZGljLCBuYW1lLCBkaWMuZ2V0KG5hbWUsIG5vdHNldCkpKQotICAgICAgICAgICAgZGVsIGRpY1tu
YW1lXQotCi0gICAgZGVmIHNldGVudihzZWxmLCBuYW1lLCB2YWx1ZSwgcHJlcGVuZD1Ob25lKToK
LSAgICAgICAgIiIiIFNldCBlbnZpcm9ubWVudCB2YXJpYWJsZSBgYG5hbWVgYCB0byBgYHZhbHVl
YGAuICBJZiBgYHByZXBlbmRgYAotICAgICAgICBpcyBhIGNoYXJhY3RlciwgcmVhZCB0aGUgY3Vy
cmVudCBlbnZpcm9ubWVudCB2YXJpYWJsZSB2YWx1ZQotICAgICAgICBhbmQgcHJlcGVuZCB0aGUg
YGB2YWx1ZWBgIGFkam9pbmVkIHdpdGggdGhlIGBgcHJlcGVuZGBgIGNoYXJhY3Rlci4iIiIKLSAg
ICAgICAgdmFsdWUgPSBzdHIodmFsdWUpCi0gICAgICAgIGlmIHByZXBlbmQgYW5kIG5hbWUgaW4g
b3MuZW52aXJvbjoKLSAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKyBwcmVwZW5kICsgb3MuZW52
aXJvbltuYW1lXQotICAgICAgICBzZWxmLnNldGl0ZW0ob3MuZW52aXJvbiwgbmFtZSwgdmFsdWUp
Ci0KLSAgICBkZWYgZGVsZW52KHNlbGYsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIi
IiBEZWxldGUgYGBuYW1lYGAgZnJvbSB0aGUgZW52aXJvbm1lbnQuIFJhaXNlIEtleUVycm9yIGl0
IGRvZXMgbm90Ci0gICAgICAgIGV4aXN0LgotCi0gICAgICAgIElmIGBgcmFpc2luZ2BgIGlzIHNl
dCB0byBGYWxzZSwgbm8gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlmIHRoZQotICAgICAgICBl
bnZpcm9ubWVudCB2YXJpYWJsZSBpcyBtaXNzaW5nLgotICAgICAgICAiIiIKLSAgICAgICAgc2Vs
Zi5kZWxpdGVtKG9zLmVudmlyb24sIG5hbWUsIHJhaXNpbmc9cmFpc2luZykKLQotICAgIGRlZiBz
eXNwYXRoX3ByZXBlbmQoc2VsZiwgcGF0aCk6Ci0gICAgICAgICIiIiBQcmVwZW5kIGBgcGF0aGBg
IHRvIGBgc3lzLnBhdGhgYCBsaXN0IG9mIGltcG9ydCBsb2NhdGlvbnMuICIiIgotICAgICAgICBp
ZiBzZWxmLl9zYXZlc3lzcGF0aCBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fc2F2ZXN5c3Bh
dGggPSBzeXMucGF0aFs6XQotICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgc3RyKHBhdGgpKQot
Ci0gICAgZGVmIGNoZGlyKHNlbGYsIHBhdGgpOgotICAgICAgICAiIiIgQ2hhbmdlIHRoZSBjdXJy
ZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHRoZSBzcGVjaWZpZWQgcGF0aC4KLSAgICAgICAgUGF0
aCBjYW4gYmUgYSBzdHJpbmcgb3IgYSBweS5wYXRoLmxvY2FsIG9iamVjdC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGlmIHNlbGYuX2N3ZCBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fY3dkID0g
b3MuZ2V0Y3dkKCkKLSAgICAgICAgaWYgaGFzYXR0cihwYXRoLCAiY2hkaXIiKToKLSAgICAgICAg
ICAgIHBhdGguY2hkaXIoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3MuY2hkaXIocGF0
aCkKLQotICAgIGRlZiB1bmRvKHNlbGYpOgotICAgICAgICAiIiIgVW5kbyBwcmV2aW91cyBjaGFu
Z2VzLiAgVGhpcyBjYWxsIGNvbnN1bWVzIHRoZQotICAgICAgICB1bmRvIHN0YWNrLiBDYWxsaW5n
IGl0IGEgc2Vjb25kIHRpbWUgaGFzIG5vIGVmZmVjdCB1bmxlc3MKLSAgICAgICAgeW91IGRvIG1v
cmUgbW9ua2V5cGF0Y2hpbmcgYWZ0ZXIgdGhlIHVuZG8gY2FsbC4KLQotICAgICAgICBUaGVyZSBp
cyBnZW5lcmFsbHkgbm8gbmVlZCB0byBjYWxsIGB1bmRvKClgLCBzaW5jZSBpdCBpcwotICAgICAg
ICBjYWxsZWQgYXV0b21hdGljYWxseSBkdXJpbmcgdGVhci1kb3duLgotCi0gICAgICAgIE5vdGUg
dGhhdCB0aGUgc2FtZSBgbW9ua2V5cGF0Y2hgIGZpeHR1cmUgaXMgdXNlZCBhY3Jvc3MgYQotICAg
ICAgICBzaW5nbGUgdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLiBJZiBgbW9ua2V5cGF0Y2hgIGlz
IHVzZWQgYm90aCBieQotICAgICAgICB0aGUgdGVzdCBmdW5jdGlvbiBpdHNlbGYgYW5kIG9uZSBv
ZiB0aGUgdGVzdCBmaXh0dXJlcywKLSAgICAgICAgY2FsbGluZyBgdW5kbygpYCB3aWxsIHVuZG8g
YWxsIG9mIHRoZSBjaGFuZ2VzIG1hZGUgaW4KLSAgICAgICAgYm90aCBmdW5jdGlvbnMuCi0gICAg
ICAgICIiIgotICAgICAgICBmb3Igb2JqLCBuYW1lLCB2YWx1ZSBpbiByZXZlcnNlZChzZWxmLl9z
ZXRhdHRyKToKLSAgICAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBub3RzZXQ6Ci0gICAgICAgICAg
ICAgICAgc2V0YXR0cihvYmosIG5hbWUsIHZhbHVlKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBkZWxhdHRyKG9iaiwgbmFtZSkKLSAgICAgICAgc2VsZi5fc2V0YXR0cls6XSA9
IFtdCi0gICAgICAgIGZvciBkaWN0aW9uYXJ5LCBuYW1lLCB2YWx1ZSBpbiByZXZlcnNlZChzZWxm
Ll9zZXRpdGVtKToKLSAgICAgICAgICAgIGlmIHZhbHVlIGlzIG5vdHNldDoKLSAgICAgICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGRlbCBkaWN0aW9uYXJ5W25hbWVdCi0gICAg
ICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgICAgICBwYXNzICAj
IHdhcyBhbHJlYWR5IGRlbGV0ZWQsIHNvIHdlIGhhdmUgdGhlIGRlc2lyZWQgc3RhdGUKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGljdGlvbmFyeVtuYW1lXSA9IHZhbHVlCi0g
ICAgICAgIHNlbGYuX3NldGl0ZW1bOl0gPSBbXQotICAgICAgICBpZiBzZWxmLl9zYXZlc3lzcGF0
aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHN5cy5wYXRoWzpdID0gc2VsZi5fc2F2ZXN5c3Bh
dGgKLSAgICAgICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gTm9uZQotCi0gICAgICAgIGlmIHNl
bGYuX2N3ZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIG9zLmNoZGlyKHNlbGYuX2N3ZCkKLSAg
ICAgICAgICAgIHNlbGYuX2N3ZCA9IE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3Qvbm9kZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVzLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZDNhZjJjZTY3Yzg5NThmOTUzMzUyOTQ0NGViMmJmMmIxYjc3OTk4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvbm9kZXMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1TRVAg
PSAiLyIKLQotCi1kZWYgX3NwbGl0bm9kZShub2RlaWQpOgotICAgICIiIlNwbGl0IGEgbm9kZWlk
IGludG8gY29uc3RpdHVlbnQgJ3BhcnRzJy4KLQotICAgIE5vZGUgSURzIGFyZSBzdHJpbmdzLCBh
bmQgY2FuIGJlIHRoaW5ncyBsaWtlOgotICAgICAgICAnJwotICAgICAgICAndGVzdGluZy9jb2Rl
JwotICAgICAgICAndGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weScKLSAgICAgICAgJ3Rlc3Rp
bmcvY29kZS90ZXN0X2V4Y2luZm8ucHk6OlRlc3RGb3JtYXR0ZWRFeGNpbmZvOjooKScKLQotICAg
IFJldHVybiB2YWx1ZXMgYXJlIGxpc3RzIGUuZy4KLSAgICAgICAgW10KLSAgICAgICAgWyd0ZXN0
aW5nJywgJ2NvZGUnXQotICAgICAgICBbJ3Rlc3RpbmcnLCAnY29kZScsICd0ZXN0X2V4Y2luZm8u
cHknXQotICAgICAgICBbJ3Rlc3RpbmcnLCAnY29kZScsICd0ZXN0X2V4Y2luZm8ucHknLCAnVGVz
dEZvcm1hdHRlZEV4Y2luZm8nLCAnKCknXQotICAgICIiIgotICAgIGlmIG5vZGVpZCA9PSAnJzoK
LSAgICAgICAgIyBJZiB0aGVyZSBpcyBubyByb290IG5vZGUgYXQgYWxsLCByZXR1cm4gYW4gZW1w
dHkgbGlzdCBzbyB0aGUgY2FsbGVyJ3MgbG9naWMgY2FuIHJlbWFpbiBzYW5lCi0gICAgICAgIHJl
dHVybiBbXQotICAgIHBhcnRzID0gbm9kZWlkLnNwbGl0KFNFUCkKLSAgICAjIFJlcGxhY2Ugc2lu
Z2xlIGxhc3QgZWxlbWVudCAndGVzdF9mb28ucHk6OkJhcjo6KCknIHdpdGggbXVsdGlwbGUgZWxl
bWVudHMgJ3Rlc3RfZm9vLnB5JywgJ0JhcicsICcoKScKLSAgICBwYXJ0c1stMTpdID0gcGFydHNb
LTFdLnNwbGl0KCI6OiIpCi0gICAgcmV0dXJuIHBhcnRzCi0KLQotZGVmIGlzY2hpbGRub2RlKGJh
c2VpZCwgbm9kZWlkKToKLSAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB0aGUgbm9kZWlkIGlzIGEgY2hp
bGQgbm9kZSBvZiB0aGUgYmFzZWlkLgotCi0gICAgRS5nLiAnZm9vL2Jhcjo6QmF6OjooKScgaXMg
YSBjaGlsZCBvZiAnZm9vJywgJ2Zvby9iYXInIGFuZCAnZm9vL2Jhcjo6QmF6JywgYnV0IG5vdCBv
ZiAnZm9vL2Jsb3JwJwotICAgICIiIgotICAgIGJhc2VfcGFydHMgPSBfc3BsaXRub2RlKGJhc2Vp
ZCkKLSAgICBub2RlX3BhcnRzID0gX3NwbGl0bm9kZShub2RlaWQpCi0gICAgaWYgbGVuKG5vZGVf
cGFydHMpIDwgbGVuKGJhc2VfcGFydHMpOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1
cm4gbm9kZV9wYXJ0c1s6bGVuKGJhc2VfcGFydHMpXSA9PSBiYXNlX3BhcnRzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2Uu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4MTU0MmVhZGYzNzdkMWQzYWRkZmFh
ZmVhNWQ2NGE4ODMyOThhMDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub3NlLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NzIgKzAsMCBAQAotIiIiIHJ1biB0ZXN0IHN1aXRlcyB3cml0dGVuIGZvciBub3NlLiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KLQotaW1wb3J0IHN5cwotCi1mcm9tIF9weXRlc3QgaW1wb3J0IHVuaXR0ZXN0LCBydW5u
ZXIsIHB5dGhvbgotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKLQotCi1kZWYg
Z2V0X3NraXBfZXhjZXB0aW9ucygpOgotICAgIHNraXBfY2xhc3NlcyA9IHNldCgpCi0gICAgZm9y
IG1vZHVsZV9uYW1lIGluICgndW5pdHRlc3QnLCAndW5pdHRlc3QyJywgJ25vc2UnKToKLSAgICAg
ICAgbW9kID0gc3lzLm1vZHVsZXMuZ2V0KG1vZHVsZV9uYW1lKQotICAgICAgICBpZiBoYXNhdHRy
KG1vZCwgJ1NraXBUZXN0Jyk6Ci0gICAgICAgICAgICBza2lwX2NsYXNzZXMuYWRkKG1vZC5Ta2lw
VGVzdCkKLSAgICByZXR1cm4gdHVwbGUoc2tpcF9jbGFzc2VzKQotCi0KLWRlZiBweXRlc3RfcnVu
dGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgIGlmIGNhbGwuZXhjaW5mbyBhbmQgY2Fs
bC5leGNpbmZvLmVycmlzaW5zdGFuY2UoZ2V0X3NraXBfZXhjZXB0aW9ucygpKToKLSAgICAgICAg
IyBsZXQncyBzdWJzdGl0dXRlIHRoZSBleGNpbmZvIHdpdGggYSBweXRlc3Quc2tpcCBvbmUKLSAg
ICAgICAgY2FsbDIgPSBjYWxsLl9fY2xhc3NfXygKLSAgICAgICAgICAgIGxhbWJkYTogcnVubmVy
LnNraXAoc3RyKGNhbGwuZXhjaW5mby52YWx1ZSkpLCBjYWxsLndoZW4pCi0gICAgICAgIGNhbGwu
ZXhjaW5mbyA9IGNhbGwyLmV4Y2luZm8KLQotCi1AaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotZGVm
IHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgIGlmIGlzX3BvdGVudGlhbF9ub3NldGVz
dChpdGVtKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLnBhcmVudCwgcHl0aG9uLkdlbmVy
YXRvcik6Ci0gICAgICAgICAgICBnZW4gPSBpdGVtLnBhcmVudAotICAgICAgICAgICAgaWYgbm90
IGhhc2F0dHIoZ2VuLCAnX25vc2VnZW5zZXR1cCcpOgotICAgICAgICAgICAgICAgIGNhbGxfb3B0
aW9uYWwoZ2VuLm9iaiwgJ3NldHVwJykKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGdl
bi5wYXJlbnQsIHB5dGhvbi5JbnN0YW5jZSk6Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxfb3B0
aW9uYWwoZ2VuLnBhcmVudC5vYmosICdzZXR1cCcpCi0gICAgICAgICAgICAgICAgZ2VuLl9ub3Nl
Z2Vuc2V0dXAgPSBUcnVlCi0gICAgICAgIGlmIG5vdCBjYWxsX29wdGlvbmFsKGl0ZW0ub2JqLCAn
c2V0dXAnKToKLSAgICAgICAgICAgICMgY2FsbCBtb2R1bGUgbGV2ZWwgc2V0dXAgaWYgdGhlcmUg
aXMgbm8gb2JqZWN0IGxldmVsIG9uZQotICAgICAgICAgICAgY2FsbF9vcHRpb25hbChpdGVtLnBh
cmVudC5vYmosICdzZXR1cCcpCi0gICAgICAgICMgWFhYIHRoaXMgaW1wbGllcyB3ZSBvbmx5IGNh
bGwgdGVhcmRvd24gd2hlbiBzZXR1cCB3b3JrZWQKLSAgICAgICAgaXRlbS5zZXNzaW9uLl9zZXR1
cHN0YXRlLmFkZGZpbmFsaXplcigobGFtYmRhOiB0ZWFyZG93bl9ub3NlKGl0ZW0pKSwgaXRlbSkK
LQotCi1kZWYgdGVhcmRvd25fbm9zZShpdGVtKToKLSAgICBpZiBpc19wb3RlbnRpYWxfbm9zZXRl
c3QoaXRlbSk6Ci0gICAgICAgIGlmIG5vdCBjYWxsX29wdGlvbmFsKGl0ZW0ub2JqLCAndGVhcmRv
d24nKToKLSAgICAgICAgICAgIGNhbGxfb3B0aW9uYWwoaXRlbS5wYXJlbnQub2JqLCAndGVhcmRv
d24nKQotICAgICAgICAjIGlmIGhhc2F0dHIoaXRlbS5wYXJlbnQsICdfbm9zZWdlbnNldHVwJyk6
Ci0gICAgICAgICMgICAgI2NhbGxfb3B0aW9uYWwoaXRlbS5fbm9zZWdlbnNldHVwLCAndGVhcmRv
d24nKQotICAgICAgICAjICAgIGRlbCBpdGVtLnBhcmVudC5fbm9zZWdlbnNldHVwCi0KLQotZGVm
IHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgaWYgaXNpbnN0YW5j
ZShjb2xsZWN0b3IsIHB5dGhvbi5HZW5lcmF0b3IpOgotICAgICAgICBjYWxsX29wdGlvbmFsKGNv
bGxlY3Rvci5vYmosICdzZXR1cCcpCi0KLQotZGVmIGlzX3BvdGVudGlhbF9ub3NldGVzdChpdGVt
KToKLSAgICAjIGV4dHJhIGNoZWNrIG5lZWRlZCBzaW5jZSB3ZSBkbyBub3QgZG8gbm9zZSBzdHls
ZSBzZXR1cC90ZWFyZG93bgotICAgICMgb24gZGlyZWN0IHVuaXR0ZXN0IHN0eWxlIGNsYXNzZXMK
LSAgICByZXR1cm4gaXNpbnN0YW5jZShpdGVtLCBweXRob24uRnVuY3Rpb24pIGFuZCBcCi0gICAg
ICAgIG5vdCBpc2luc3RhbmNlKGl0ZW0sIHVuaXR0ZXN0LlRlc3RDYXNlRnVuY3Rpb24pCi0KLQot
ZGVmIGNhbGxfb3B0aW9uYWwob2JqLCBuYW1lKToKLSAgICBtZXRob2QgPSBnZXRhdHRyKG9iaiwg
bmFtZSwgTm9uZSkKLSAgICBpc2ZpeHR1cmUgPSBoYXNhdHRyKG1ldGhvZCwgIl9weXRlc3RmaXh0
dXJlZnVuY3Rpb24iKQotICAgIGlmIG1ldGhvZCBpcyBub3QgTm9uZSBhbmQgbm90IGlzZml4dHVy
ZSBhbmQgY2FsbGFibGUobWV0aG9kKToKLSAgICAgICAgIyBJZiB0aGVyZSdzIGFueSBwcm9ibGVt
cyBhbGxvdyB0aGUgZXhjZXB0aW9uIHRvIHJhaXNlIHJhdGhlciB0aGFuCi0gICAgICAgICMgc2ls
ZW50bHkgaWdub3JpbmcgdGhlbQotICAgICAgICBtZXRob2QoKQotICAgICAgICByZXR1cm4gVHJ1
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21lcy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdm
MGMxOGZhNmMxYjQ4NzgzYTNhOWQzYTY0NWQzZTI0NGQ2NzNjMTQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21l
cy5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0NyArMCwwIEBACi0iIiIKLWV4Y2VwdGlvbiBjbGFz
c2VzIGFuZCBjb25zdGFudHMgaGFuZGxpbmcgdGVzdCBvdXRjb21lcwotYXMgd2VsbCBhcyBmdW5j
dGlvbnMgY3JlYXRpbmcgdGhlbQotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRl
X2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHkKLWltcG9ydCBzeXMK
LQotCi1jbGFzcyBPdXRjb21lRXhjZXB0aW9uKEJhc2VFeGNlcHRpb24pOgotICAgICIiIiBPdXRj
b21lRXhjZXB0aW9uIGFuZCBpdHMgc3ViY2xhc3MgaW5zdGFuY2VzIGluZGljYXRlIGFuZAotICAg
ICAgICBjb250YWluIGluZm8gYWJvdXQgdGVzdCBhbmQgY29sbGVjdGlvbiBvdXRjb21lcy4KLSAg
ICAiIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPU5vbmUsIHB5dHJhY2U9VHJ1ZSk6Ci0g
ICAgICAgIEJhc2VFeGNlcHRpb24uX19pbml0X18oc2VsZiwgbXNnKQotICAgICAgICBzZWxmLm1z
ZyA9IG1zZwotICAgICAgICBzZWxmLnB5dHJhY2UgPSBweXRyYWNlCi0KLSAgICBkZWYgX19yZXBy
X18oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYubXNnOgotICAgICAgICAgICAgdmFsID0gc2VsZi5t
c2cKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRlcyk6Ci0gICAgICAgICAgICAg
ICAgdmFsID0gcHkuX2J1aWx0aW4uX3RvdGV4dCh2YWwsIGVycm9ycz0ncmVwbGFjZScpCi0gICAg
ICAgICAgICByZXR1cm4gdmFsCi0gICAgICAgIHJldHVybiAiPCVzIGluc3RhbmNlPiIgJSAoc2Vs
Zi5fX2NsYXNzX18uX19uYW1lX18sKQotICAgIF9fc3RyX18gPSBfX3JlcHJfXwotCi0KLVRFU1Rf
T1VUQ09NRSA9IChPdXRjb21lRXhjZXB0aW9uLCBFeGNlcHRpb24pCi0KLQotY2xhc3MgU2tpcHBl
ZChPdXRjb21lRXhjZXB0aW9uKToKLSAgICAjIFhYWCBoYWNraXNoOiBvbiAzayB3ZSBmYWtlIHRv
IGxpdmUgaW4gdGhlIGJ1aWx0aW5zCi0gICAgIyBpbiBvcmRlciB0byBoYXZlIFNraXBwZWQgZXhj
ZXB0aW9uIHByaW50aW5nIHNob3J0ZXIvbmljZXIKLSAgICBfX21vZHVsZV9fID0gJ2J1aWx0aW5z
JwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz1Ob25lLCBweXRyYWNlPVRydWUsIGFsbG93
X21vZHVsZV9sZXZlbD1GYWxzZSk6Ci0gICAgICAgIE91dGNvbWVFeGNlcHRpb24uX19pbml0X18o
c2VsZiwgbXNnPW1zZywgcHl0cmFjZT1weXRyYWNlKQotICAgICAgICBzZWxmLmFsbG93X21vZHVs
ZV9sZXZlbCA9IGFsbG93X21vZHVsZV9sZXZlbAotCi0KLWNsYXNzIEZhaWxlZChPdXRjb21lRXhj
ZXB0aW9uKToKLSAgICAiIiIgcmFpc2VkIGZyb20gYW4gZXhwbGljaXQgY2FsbCB0byBweXRlc3Qu
ZmFpbCgpICIiIgotICAgIF9fbW9kdWxlX18gPSAnYnVpbHRpbnMnCi0KLQotY2xhc3MgRXhpdChL
ZXlib2FyZEludGVycnVwdCk6Ci0gICAgIiIiIHJhaXNlZCBmb3IgaW1tZWRpYXRlIHByb2dyYW0g
ZXhpdHMgKG5vIHRyYWNlYmFja3Mvc3VtbWFyaWVzKSIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBtc2c9InVua25vd24gcmVhc29uIik6Ci0gICAgICAgIHNlbGYubXNnID0gbXNnCi0gICAgICAg
IEtleWJvYXJkSW50ZXJydXB0Ll9faW5pdF9fKHNlbGYsIG1zZykKLQotIyBleHBvc2VkIGhlbHBl
ciBtZXRob2RzCi0KLQotZGVmIGV4aXQobXNnKToKLSAgICAiIiIgZXhpdCB0ZXN0aW5nIHByb2Nl
c3MgYXMgaWYgS2V5Ym9hcmRJbnRlcnJ1cHQgd2FzIHRyaWdnZXJlZC4gIiIiCi0gICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCi0gICAgcmFpc2UgRXhpdChtc2cpCi0KLQotZXhpdC5FeGNlcHRp
b24gPSBFeGl0Ci0KLQotZGVmIHNraXAobXNnPSIiLCAqKmt3YXJncyk6Ci0gICAgIiIiIHNraXAg
YW4gZXhlY3V0aW5nIHRlc3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZS4gIE5vdGU6IGl0J3MgdXN1
YWxseQotICAgIGJldHRlciB0byB1c2UgdGhlIHB5dGVzdC5tYXJrLnNraXBpZiBtYXJrZXIgdG8g
ZGVjbGFyZSBhIHRlc3QgdG8gYmUKLSAgICBza2lwcGVkIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9u
cyBsaWtlIG1pc21hdGNoaW5nIHBsYXRmb3JtcyBvcgotICAgIGRlcGVuZGVuY2llcy4gIFNlZSB0
aGUgcHl0ZXN0X3NraXBwaW5nIHBsdWdpbiBmb3IgZGV0YWlscy4KLQotICAgIDprd2FyZyBib29s
IGFsbG93X21vZHVsZV9sZXZlbDogYWxsb3dzIHRoaXMgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGF0
Ci0gICAgICAgIG1vZHVsZSBsZXZlbCwgc2tpcHBpbmcgdGhlIHJlc3Qgb2YgdGhlIG1vZHVsZS4g
RGVmYXVsdCB0byBGYWxzZS4KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
LSAgICBhbGxvd19tb2R1bGVfbGV2ZWwgPSBrd2FyZ3MucG9wKCdhbGxvd19tb2R1bGVfbGV2ZWwn
LCBGYWxzZSkKLSAgICBpZiBrd2FyZ3M6Ci0gICAgICAgIGtleXMgPSBbayBmb3IgayBpbiBrd2Fy
Z3Mua2V5cygpXQotICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ3VuZXhwZWN0ZWQga2V5d29yZCBh
cmd1bWVudHM6IHswfScuZm9ybWF0KGtleXMpKQotICAgIHJhaXNlIFNraXBwZWQobXNnPW1zZywg
YWxsb3dfbW9kdWxlX2xldmVsPWFsbG93X21vZHVsZV9sZXZlbCkKLQotCi1za2lwLkV4Y2VwdGlv
biA9IFNraXBwZWQKLQotCi1kZWYgZmFpbChtc2c9IiIsIHB5dHJhY2U9VHJ1ZSk6Ci0gICAgIiIi
IGV4cGxpY2l0bHkgZmFpbCBhbiBjdXJyZW50bHktZXhlY3V0aW5nIHRlc3Qgd2l0aCB0aGUgZ2l2
ZW4gTWVzc2FnZS4KLQotICAgIDphcmcgcHl0cmFjZTogaWYgZmFsc2UgdGhlIG1zZyByZXByZXNl
bnRzIHRoZSBmdWxsIGZhaWx1cmUgaW5mb3JtYXRpb24KLSAgICAgICAgICAgICAgICAgIGFuZCBu
byBweXRob24gdHJhY2ViYWNrIHdpbGwgYmUgcmVwb3J0ZWQuCi0gICAgIiIiCi0gICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCi0gICAgcmFpc2UgRmFpbGVkKG1zZz1tc2csIHB5dHJhY2U9cHl0
cmFjZSkKLQotCi1mYWlsLkV4Y2VwdGlvbiA9IEZhaWxlZAotCi0KLWNsYXNzIFhGYWlsZWQoZmFp
bC5FeGNlcHRpb24pOgotICAgICIiIiByYWlzZWQgZnJvbSBhbiBleHBsaWNpdCBjYWxsIHRvIHB5
dGVzdC54ZmFpbCgpICIiIgotCi0KLWRlZiB4ZmFpbChyZWFzb249IiIpOgotICAgICIiIiB4ZmFp
bCBhbiBleGVjdXRpbmcgdGVzdCBvciBzZXR1cCBmdW5jdGlvbnMgd2l0aCB0aGUgZ2l2ZW4gcmVh
c29uLiIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIHJhaXNlIFhGYWlsZWQo
cmVhc29uKQotCi0KLXhmYWlsLkV4Y2VwdGlvbiA9IFhGYWlsZWQKLQotCi1kZWYgaW1wb3J0b3Jz
a2lwKG1vZG5hbWUsIG1pbnZlcnNpb249Tm9uZSk6Ci0gICAgIiIiIHJldHVybiBpbXBvcnRlZCBt
b2R1bGUgaWYgaXQgaGFzIGF0IGxlYXN0ICJtaW52ZXJzaW9uIiBhcyBpdHMKLSAgICBfX3ZlcnNp
b25fXyBhdHRyaWJ1dGUuICBJZiBubyBtaW52ZXJzaW9uIGlzIHNwZWNpZmllZCB0aGUgYSBza2lw
Ci0gICAgaXMgb25seSB0cmlnZ2VyZWQgaWYgdGhlIG1vZHVsZSBjYW4gbm90IGJlIGltcG9ydGVk
LgotICAgICIiIgotICAgIGltcG9ydCB3YXJuaW5ncwotICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQotICAgIGNvbXBpbGUobW9kbmFtZSwgJycsICdldmFsJykgICMgdG8gY2F0Y2ggc3ludGF4
ZXJyb3JzCi0gICAgc2hvdWxkX3NraXAgPSBGYWxzZQotCi0gICAgd2l0aCB3YXJuaW5ncy5jYXRj
aF93YXJuaW5ncygpOgotICAgICAgICAjIG1ha2Ugc3VyZSB0byBpZ25vcmUgSW1wb3J0V2Fybmlu
Z3MgdGhhdCBtaWdodCBoYXBwZW4gYmVjYXVzZQotICAgICAgICAjIG9mIGV4aXN0aW5nIGRpcmVj
dG9yaWVzIHdpdGggdGhlIHNhbWUgbmFtZSB3ZSdyZSB0cnlpbmcgdG8KLSAgICAgICAgIyBpbXBv
cnQgYnV0IHdpdGhvdXQgYSBfX2luaXRfXy5weSBmaWxlCi0gICAgICAgIHdhcm5pbmdzLnNpbXBs
ZWZpbHRlcignaWdub3JlJykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX19pbXBvcnRfXyht
b2RuYW1lKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAjIERvIG5v
dCByYWlzZSBjaGFpbmVkIGV4Y2VwdGlvbiBoZXJlKCMxNDg1KQotICAgICAgICAgICAgc2hvdWxk
X3NraXAgPSBUcnVlCi0gICAgaWYgc2hvdWxkX3NraXA6Ci0gICAgICAgIHJhaXNlIFNraXBwZWQo
ImNvdWxkIG5vdCBpbXBvcnQgJXIiICUgKG1vZG5hbWUsKSwgYWxsb3dfbW9kdWxlX2xldmVsPVRy
dWUpCi0gICAgbW9kID0gc3lzLm1vZHVsZXNbbW9kbmFtZV0KLSAgICBpZiBtaW52ZXJzaW9uIGlz
IE5vbmU6Ci0gICAgICAgIHJldHVybiBtb2QKLSAgICB2ZXJhdHRyID0gZ2V0YXR0cihtb2QsICdf
X3ZlcnNpb25fXycsIE5vbmUpCi0gICAgaWYgbWludmVyc2lvbiBpcyBub3QgTm9uZToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCBwYXJzZV92ZXJz
aW9uIGFzIHB2Ci0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJhaXNl
IFNraXBwZWQoIndlIGhhdmUgYSByZXF1aXJlZCB2ZXJzaW9uIGZvciAlciBidXQgY2FuIG5vdCBp
bXBvcnQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAicGtnX3Jlc291cmNlcyB0byBwYXJz
ZSB2ZXJzaW9uIHN0cmluZ3MuIiAlIChtb2RuYW1lLCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQotICAgICAgICBpZiB2ZXJhdHRyIGlzIE5vbmUg
b3IgcHYodmVyYXR0cikgPCBwdihtaW52ZXJzaW9uKToKLSAgICAgICAgICAgIHJhaXNlIFNraXBw
ZWQoIm1vZHVsZSAlciBoYXMgX192ZXJzaW9uX18gJXIsIHJlcXVpcmVkIGlzOiAlciIgJSAoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZG5hbWUsIHZlcmF0dHIsIG1pbnZlcnNpb24pLCBh
bGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKLSAgICByZXR1cm4gbW9kCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmluLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJp
bi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU4OGIwMjFiMTI0MjJmNTUwN2M5
YmRmYTUxMWY2MWYzZDAyODFmOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmluLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTAwICswLDAgQEAKLSIiIiBzdWJtaXQgZmFpbHVyZSBvciB0ZXN0IHNlc3Npb24gaW5m
b3JtYXRpb24gdG8gYSBwYXN0ZWJpbiBzZXJ2aWNlLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHB5
dGVzdAotaW1wb3J0IHNpeAotaW1wb3J0IHN5cwotaW1wb3J0IHRlbXBmaWxlCi0KLQotZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVy
bWluYWwgcmVwb3J0aW5nIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctLXBhc3RlYmluJywgbWV0
YXZhcj0ibW9kZSIsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlJywgZGVzdD0i
cGFzdGViaW4iLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsn
ZmFpbGVkJywgJ2FsbCddLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2VuZCBmYWlsZWR8
YWxsIGluZm8gdG8gYnBhc3RlLm5ldCBwYXN0ZWJpbiBzZXJ2aWNlLiIpCi0KLQotQHB5dGVzdC5o
b29raW1wbCh0cnlsYXN0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAg
IGlmIGNvbmZpZy5vcHRpb24ucGFzdGViaW4gPT0gImFsbCI6Ci0gICAgICAgIHRyID0gY29uZmln
LnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKLSAgICAgICAgIyBp
ZiBubyB0ZXJtaW5hbCByZXBvcnRlciBwbHVnaW4gaXMgcHJlc2VudCwgbm90aGluZyB3ZSBjYW4g
ZG8gaGVyZTsKLSAgICAgICAgIyB0aGlzIGNhbiBoYXBwZW4gd2hlbiB0aGlzIGZ1bmN0aW9uIGV4
ZWN1dGVzIGluIGEgc2xhdmUgbm9kZQotICAgICAgICAjIHdoZW4gdXNpbmcgcHl0ZXN0LXhkaXN0
LCBmb3IgZXhhbXBsZQotICAgICAgICBpZiB0ciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICMg
cGFzdGViaW4gZmlsZSB3aWxsIGJlIHV0Zi04IGVuY29kZWQgYmluYXJ5IGZpbGUKLSAgICAgICAg
ICAgIGNvbmZpZy5fcGFzdGViaW5maWxlID0gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgndytiJykK
LSAgICAgICAgICAgIG9sZHdyaXRlID0gdHIuX3R3LndyaXRlCi0KLSAgICAgICAgICAgIGRlZiB0
ZWVfd3JpdGUocywgKiprd2FyZ3MpOgotICAgICAgICAgICAgICAgIG9sZHdyaXRlKHMsICoqa3dh
cmdzKQotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlwZSk6Ci0g
ICAgICAgICAgICAgICAgICAgIHMgPSBzLmVuY29kZSgndXRmLTgnKQotICAgICAgICAgICAgICAg
IGNvbmZpZy5fcGFzdGViaW5maWxlLndyaXRlKHMpCi0KLSAgICAgICAgICAgIHRyLl90dy53cml0
ZSA9IHRlZV93cml0ZQotCi0KLWRlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKLSAgICBp
ZiBoYXNhdHRyKGNvbmZpZywgJ19wYXN0ZWJpbmZpbGUnKToKLSAgICAgICAgIyBnZXQgdGVybWlu
YWwgY29udGVudHMgYW5kIGRlbGV0ZSBmaWxlCi0gICAgICAgIGNvbmZpZy5fcGFzdGViaW5maWxl
LnNlZWsoMCkKLSAgICAgICAgc2Vzc2lvbmxvZyA9IGNvbmZpZy5fcGFzdGViaW5maWxlLnJlYWQo
KQotICAgICAgICBjb25maWcuX3Bhc3RlYmluZmlsZS5jbG9zZSgpCi0gICAgICAgIGRlbCBjb25m
aWcuX3Bhc3RlYmluZmlsZQotICAgICAgICAjIHVuZG8gb3VyIHBhdGNoaW5nIGluIHRoZSB0ZXJt
aW5hbCByZXBvcnRlcgotICAgICAgICB0ciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdp
bigndGVybWluYWxyZXBvcnRlcicpCi0gICAgICAgIGRlbCB0ci5fdHcuX19kaWN0X19bJ3dyaXRl
J10KLSAgICAgICAgIyB3cml0ZSBzdW1tYXJ5Ci0gICAgICAgIHRyLndyaXRlX3NlcCgiPSIsICJT
ZW5kaW5nIGluZm9ybWF0aW9uIHRvIFBhc3RlIFNlcnZpY2UiKQotICAgICAgICBwYXN0ZWJpbnVy
bCA9IGNyZWF0ZV9uZXdfcGFzdGUoc2Vzc2lvbmxvZykKLSAgICAgICAgdHIud3JpdGVfbGluZSgi
cGFzdGViaW4gc2Vzc2lvbi1sb2c6ICVzXG4iICUgcGFzdGViaW51cmwpCi0KLQotZGVmIGNyZWF0
ZV9uZXdfcGFzdGUoY29udGVudHMpOgotICAgICIiIgotICAgIENyZWF0ZXMgYSBuZXcgcGFzdGUg
dXNpbmcgYnBhc3RlLm5ldCBzZXJ2aWNlLgotCi0gICAgOmNvbnRlbnRzOiBwYXN0ZSBjb250ZW50
cyBhcyB1dGYtOCBlbmNvZGVkIGJ5dGVzCi0gICAgOnJldHVybnM6IHVybCB0byB0aGUgcGFzdGVk
IGNvbnRlbnRzCi0gICAgIiIiCi0gICAgaW1wb3J0IHJlCi0gICAgaWYgc3lzLnZlcnNpb25faW5m
byA8ICgzLCAwKToKLSAgICAgICAgZnJvbSB1cmxsaWIgaW1wb3J0IHVybG9wZW4sIHVybGVuY29k
ZQotICAgIGVsc2U6Ci0gICAgICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4K
LSAgICAgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGVuY29kZQotCi0gICAgcGFyYW1z
ID0gewotICAgICAgICAnY29kZSc6IGNvbnRlbnRzLAotICAgICAgICAnbGV4ZXInOiAncHl0aG9u
MycgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAzIGVsc2UgJ3B5dGhvbicsCi0gICAgICAgICdl
eHBpcnknOiAnMXdlZWsnLAotICAgIH0KLSAgICB1cmwgPSAnaHR0cHM6Ly9icGFzdGUubmV0Jwot
ICAgIHJlc3BvbnNlID0gdXJsb3Blbih1cmwsIGRhdGE9dXJsZW5jb2RlKHBhcmFtcykuZW5jb2Rl
KCdhc2NpaScpKS5yZWFkKCkKLSAgICBtID0gcmUuc2VhcmNoKHInaHJlZj0iL3Jhdy8oXHcrKSIn
LCByZXNwb25zZS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgaWYgbToKLSAgICAgICAgcmV0dXJuICcl
cy9zaG93LyVzJyAlICh1cmwsIG0uZ3JvdXAoMSkpCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJu
ICdiYWQgcmVzcG9uc2U6ICcgKyByZXNwb25zZQotCi0KLWRlZiBweXRlc3RfdGVybWluYWxfc3Vt
bWFyeSh0ZXJtaW5hbHJlcG9ydGVyKToKLSAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBp
ZiB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5vcHRpb24ucGFzdGViaW4gIT0gImZhaWxlZCI6Ci0g
ICAgICAgIHJldHVybgotICAgIHRyID0gdGVybWluYWxyZXBvcnRlcgotICAgIGlmICdmYWlsZWQn
IGluIHRyLnN0YXRzOgotICAgICAgICB0ZXJtaW5hbHJlcG9ydGVyLndyaXRlX3NlcCgiPSIsICJT
ZW5kaW5nIGluZm9ybWF0aW9uIHRvIFBhc3RlIFNlcnZpY2UiKQotICAgICAgICBmb3IgcmVwIGlu
IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCdmYWlsZWQnKToKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBtc2cgPSByZXAubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5yZXByZW50
cmllc1stMV0ucmVwcmZpbGVsb2MKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
LSAgICAgICAgICAgICAgICBtc2cgPSB0ci5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAg
ICAgICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcih0ZXJtaW5h
bHJlcG9ydGVyLmNvbmZpZywgc3RyaW5naW89VHJ1ZSkKLSAgICAgICAgICAgIHJlcC50b3Rlcm1p
bmFsKHR3KQotICAgICAgICAgICAgcyA9IHR3LnN0cmluZ2lvLmdldHZhbHVlKCkKLSAgICAgICAg
ICAgIGFzc2VydCBsZW4ocykKLSAgICAgICAgICAgIHBhc3RlYmludXJsID0gY3JlYXRlX25ld19w
YXN0ZShzKQotICAgICAgICAgICAgdHIud3JpdGVfbGluZSgiJXMgLS0+ICVzIiAlIChtc2csIHBh
c3RlYmludXJsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0ZXN0ZXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMmRkNTk5NGYxYmJmYjRkZDZiNDI5ZDg2ZWY3NDhjYmQ1NzhkNTdhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvcHl0ZXN0ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTg3ICswLDAgQEAKLSIiIiAoZGlz
YWJsZWQgYnkgZGVmYXVsdCkgc3VwcG9ydCBmb3IgdGVzdGluZyBweXRlc3QgYW5kIHB5dGVzdCBw
bHVnaW5zLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGNvZGVjcwotaW1wb3J0IGdjCi1pbXBvcnQg
b3MKLWltcG9ydCBwbGF0Zm9ybQotaW1wb3J0IHJlCi1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0
IHNpeAotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLWltcG9ydCB0cmFjZWJhY2sKLWZyb20gZm5t
YXRjaCBpbXBvcnQgZm5tYXRjaAotCi1mcm9tIHdlYWtyZWYgaW1wb3J0IFdlYWtLZXlEaWN0aW9u
YXJ5Ci0KLWZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBNdWx0aUNhcHR1cmUsIFN5c0NhcHR1
cmUKLWZyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgU291cmNlCi1pbXBvcnQgcHkKLWltcG9ydCBw
eXRlc3QKLWZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uLCBFWElUX09LCi1mcm9tIF9w
eXRlc3QuYXNzZXJ0aW9uLnJld3JpdGUgaW1wb3J0IEFzc2VydGlvblJld3JpdGluZ0hvb2sKLQot
Ci1QWVRFU1RfRlVMTFBBVEggPSBvcy5wYXRoLmFic3BhdGgocHl0ZXN0Ll9fZmlsZV9fLnJzdHJp
cCgib2MiKSkucmVwbGFjZSgiJHB5LmNsYXNzIiwgIi5weSIpCi0KLQotZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKLSAgICAjIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJweXRlc3RlciIs
ICJweXRlc3RlciAoc2VsZi10ZXN0cykgb3B0aW9ucyIpCi0gICAgcGFyc2VyLmFkZG9wdGlvbign
LS1sc29mJywKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9
Imxzb2YiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0oInJ1biBG
RCBjaGVja3MgaWYgbHNvZiBpcyBhdmFpbGFibGUiKSkKLQotICAgIHBhcnNlci5hZGRvcHRpb24o
Jy0tcnVucHl0ZXN0JywgZGVmYXVsdD0iaW5wcm9jZXNzIiwgZGVzdD0icnVucHl0ZXN0IiwKLSAg
ICAgICAgICAgICAgICAgICAgIGNob2ljZXM9KCJpbnByb2Nlc3MiLCAic3VicHJvY2VzcyIsICks
Ci0gICAgICAgICAgICAgICAgICAgICBoZWxwPSgicnVuIHB5dGVzdCBzdWIgcnVucyBpbiB0ZXN0
cyB1c2luZyBhbiAnaW5wcm9jZXNzJyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAib3Ig
J3N1YnByb2Nlc3MnIChweXRob24gLW0gbWFpbikgbWV0aG9kIikpCi0KLQotZGVmIHB5dGVzdF9j
b25maWd1cmUoY29uZmlnKToKLSAgICBpZiBjb25maWcuZ2V0dmFsdWUoImxzb2YiKToKLSAgICAg
ICAgY2hlY2tlciA9IExzb2ZGZExlYWtDaGVja2VyKCkKLSAgICAgICAgaWYgY2hlY2tlci5tYXRj
aGluZ19wbGF0Zm9ybSgpOgotICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoY2hlY2tlcikKLQotCi1jbGFzcyBMc29mRmRMZWFrQ2hlY2tlcihvYmplY3QpOgotICAgIGRl
ZiBnZXRfb3Blbl9maWxlcyhzZWxmKToKLSAgICAgICAgb3V0ID0gc2VsZi5fZXhlY19sc29mKCkK
LSAgICAgICAgb3Blbl9maWxlcyA9IHNlbGYuX3BhcnNlX2xzb2Zfb3V0cHV0KG91dCkKLSAgICAg
ICAgcmV0dXJuIG9wZW5fZmlsZXMKLQotICAgIGRlZiBfZXhlY19sc29mKHNlbGYpOgotICAgICAg
ICBwaWQgPSBvcy5nZXRwaWQoKQotICAgICAgICByZXR1cm4gcHkucHJvY2Vzcy5jbWRleGVjKCJs
c29mIC1GZm4wIC1wICVkIiAlIHBpZCkKLQotICAgIGRlZiBfcGFyc2VfbHNvZl9vdXRwdXQoc2Vs
Ziwgb3V0KToKLSAgICAgICAgZGVmIGlzb3BlbihsaW5lKToKLSAgICAgICAgICAgIHJldHVybiBs
aW5lLnN0YXJ0c3dpdGgoJ2YnKSBhbmQgKCJkZWxldGVkIiBub3QgaW4gbGluZSBhbmQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW0nIG5vdCBpbiBsaW5l
IGFuZCAidHh0IiBub3QgaW4gbGluZSBhbmQgJ2N3ZCcgbm90IGluIGxpbmUpCi0KLSAgICAgICAg
b3Blbl9maWxlcyA9IFtdCi0KLSAgICAgICAgZm9yIGxpbmUgaW4gb3V0LnNwbGl0KCJcbiIpOgot
ICAgICAgICAgICAgaWYgaXNvcGVuKGxpbmUpOgotICAgICAgICAgICAgICAgIGZpZWxkcyA9IGxp
bmUuc3BsaXQoJ1wwJykKLSAgICAgICAgICAgICAgICBmZCA9IGZpZWxkc1swXVsxOl0KLSAgICAg
ICAgICAgICAgICBmaWxlbmFtZSA9IGZpZWxkc1sxXVsxOl0KLSAgICAgICAgICAgICAgICBpZiBm
aWxlbmFtZS5zdGFydHN3aXRoKCcvJyk6Ci0gICAgICAgICAgICAgICAgICAgIG9wZW5fZmlsZXMu
YXBwZW5kKChmZCwgZmlsZW5hbWUpKQotCi0gICAgICAgIHJldHVybiBvcGVuX2ZpbGVzCi0KLSAg
ICBkZWYgbWF0Y2hpbmdfcGxhdGZvcm0oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtdiIpCi0gICAgICAgIGV4Y2VwdCAocHkucHJvY2Vz
cy5jbWRleGVjLkVycm9yLCBVbmljb2RlRGVjb2RlRXJyb3IpOgotICAgICAgICAgICAgIyBjbWRl
eGVjIG1heSByYWlzZSBVbmljb2RlRGVjb2RlRXJyb3Igb24gV2luZG93cyBzeXN0ZW1zCi0gICAg
ICAgICAgICAjIHdpdGggbG9jYWxlIG90aGVyIHRoYW4gZW5nbGlzaDoKLSAgICAgICAgICAgICMg
aHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzY2Ci0gICAgICAgICAg
ICByZXR1cm4gRmFsc2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0K
LSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCi0g
ICAgZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKHNlbGYsIGl0ZW0pOgotICAgICAgICBsaW5l
czEgPSBzZWxmLmdldF9vcGVuX2ZpbGVzKCkKLSAgICAgICAgeWllbGQKLSAgICAgICAgaWYgaGFz
YXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpOgotICAgICAgICAgICAgZ2MuY29sbGVjdCgp
Ci0gICAgICAgIGxpbmVzMiA9IHNlbGYuZ2V0X29wZW5fZmlsZXMoKQotCi0gICAgICAgIG5ld19m
ZHMgPSBzZXQoW3RbMF0gZm9yIHQgaW4gbGluZXMyXSkgLSBzZXQoW3RbMF0gZm9yIHQgaW4gbGlu
ZXMxXSkKLSAgICAgICAgbGVha2VkX2ZpbGVzID0gW3QgZm9yIHQgaW4gbGluZXMyIGlmIHRbMF0g
aW4gbmV3X2Zkc10KLSAgICAgICAgaWYgbGVha2VkX2ZpbGVzOgotICAgICAgICAgICAgZXJyb3Ig
PSBbXQotICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKioqKiAlcyBGRCBsZWFrYWdlIGRldGVj
dGVkIiAlIGxlbihsZWFrZWRfZmlsZXMpKQotICAgICAgICAgICAgZXJyb3IuZXh0ZW5kKFtzdHIo
ZikgZm9yIGYgaW4gbGVha2VkX2ZpbGVzXSkKLSAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioq
IEJlZm9yZToiKQotICAgICAgICAgICAgZXJyb3IuZXh0ZW5kKFtzdHIoZikgZm9yIGYgaW4gbGlu
ZXMxXSkKLSAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioqIEFmdGVyOiIpCi0gICAgICAgICAg
ICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsaW5lczJdKQotICAgICAgICAgICAgZXJy
b3IuYXBwZW5kKGVycm9yWzBdKQotICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogZnVuY3Rp
b24gJXM6JXM6ICVzICIgJSBpdGVtLmxvY2F0aW9uKQotICAgICAgICAgICAgZXJyb3IuYXBwZW5k
KCJTZWUgaXNzdWUgIzIzNjYiKQotICAgICAgICAgICAgaXRlbS53YXJuKCcnLCAiXG4iLmpvaW4o
ZXJyb3IpKQotCi0KLSMgWFhYIGNvcGllZCBmcm9tIGV4ZWNuZXQncyBjb25mdGVzdC5weSAtIG5l
ZWRzIHRvIGJlIG1lcmdlZAotd2lucHltYXAgPSB7Ci0gICAgJ3B5dGhvbjIuNyc6IHInQzpcUHl0
aG9uMjdccHl0aG9uLmV4ZScsCi0gICAgJ3B5dGhvbjMuNCc6IHInQzpcUHl0aG9uMzRccHl0aG9u
LmV4ZScsCi0gICAgJ3B5dGhvbjMuNSc6IHInQzpcUHl0aG9uMzVccHl0aG9uLmV4ZScsCi0gICAg
J3B5dGhvbjMuNic6IHInQzpcUHl0aG9uMzZccHl0aG9uLmV4ZScsCi19Ci0KLQotZGVmIGdldGV4
ZWN1dGFibGUobmFtZSwgY2FjaGU9e30pOgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGNhY2hl
W25hbWVdCi0gICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICBleGVjdXRhYmxlID0gcHkucGF0
aC5sb2NhbC5zeXNmaW5kKG5hbWUpCi0gICAgICAgIGlmIGV4ZWN1dGFibGU6Ci0gICAgICAgICAg
ICBpbXBvcnQgc3VicHJvY2VzcwotICAgICAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVu
KFtzdHIoZXhlY3V0YWJsZSksICItLXZlcnNpb24iXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZSwgc3RkZXJyPXN1YnByb2Nlc3Mu
UElQRSkKLSAgICAgICAgICAgIG91dCwgZXJyID0gcG9wZW4uY29tbXVuaWNhdGUoKQotICAgICAg
ICAgICAgaWYgbmFtZSA9PSAianl0aG9uIjoKLSAgICAgICAgICAgICAgICBpZiBub3QgZXJyIG9y
ICIyLjUiIG5vdCBpbiBlcnI6Ci0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25l
Ci0gICAgICAgICAgICAgICAgaWYgIjIuNS4yIiBpbiBlcnI6Ci0gICAgICAgICAgICAgICAgICAg
IGV4ZWN1dGFibGUgPSBOb25lICAjIGh0dHA6Ly9idWdzLmp5dGhvbi5vcmcvaXNzdWUxNzkwCi0g
ICAgICAgICAgICBlbGlmIHBvcGVuLnJldHVybmNvZGUgIT0gMDoKLSAgICAgICAgICAgICAgICAj
IEhhbmRsZSBweWVudidzIDEyNy4KLSAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gTm9uZQot
ICAgICAgICBjYWNoZVtuYW1lXSA9IGV4ZWN1dGFibGUKLSAgICAgICAgcmV0dXJuIGV4ZWN1dGFi
bGUKLQotCi1AcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsncHl0aG9uMi43JywgJ3B5dGhvbjMuNCcs
ICdweXB5JywgJ3B5cHkzJ10pCi1kZWYgYW55cHl0aG9uKHJlcXVlc3QpOgotICAgIG5hbWUgPSBy
ZXF1ZXN0LnBhcmFtCi0gICAgZXhlY3V0YWJsZSA9IGdldGV4ZWN1dGFibGUobmFtZSkKLSAgICBp
ZiBleGVjdXRhYmxlIGlzIE5vbmU6Ci0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
OgotICAgICAgICAgICAgZXhlY3V0YWJsZSA9IHdpbnB5bWFwLmdldChuYW1lLCBOb25lKQotICAg
ICAgICAgICAgaWYgZXhlY3V0YWJsZToKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gcHku
cGF0aC5sb2NhbChleGVjdXRhYmxlKQotICAgICAgICAgICAgICAgIGlmIGV4ZWN1dGFibGUuY2hl
Y2soKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGUKLSAgICAgICAgcHl0
ZXN0LnNraXAoIm5vIHN1aXRhYmxlICVzIGZvdW5kIiAlIChuYW1lLCkpCi0gICAgcmV0dXJuIGV4
ZWN1dGFibGUKLQotIyB1c2VkIGF0IGxlYXN0IGJ5IHB5dGVzdC14ZGlzdCBwbHVnaW4KLQotCi1A
cHl0ZXN0LmZpeHR1cmUKLWRlZiBfcHl0ZXN0KHJlcXVlc3QpOgotICAgICIiIiBSZXR1cm4gYSBo
ZWxwZXIgd2hpY2ggb2ZmZXJzIGEgZ2V0aG9va3JlY29yZGVyKGhvb2spCi0gICAgbWV0aG9kIHdo
aWNoIHJldHVybnMgYSBIb29rUmVjb3JkZXIgaW5zdGFuY2Ugd2hpY2ggaGVscHMKLSAgICB0byBt
YWtlIGFzc2VydGlvbnMgYWJvdXQgY2FsbGVkIGhvb2tzLgotICAgICIiIgotICAgIHJldHVybiBQ
eXRlc3RBcmcocmVxdWVzdCkKLQotCi1jbGFzcyBQeXRlc3RBcmc6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICBk
ZWYgZ2V0aG9va3JlY29yZGVyKHNlbGYsIGhvb2spOgotICAgICAgICBob29rcmVjb3JkZXIgPSBI
b29rUmVjb3JkZXIoaG9vay5fcG0pCi0gICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIo
aG9va3JlY29yZGVyLmZpbmlzaF9yZWNvcmRpbmcpCi0gICAgICAgIHJldHVybiBob29rcmVjb3Jk
ZXIKLQotCi1kZWYgZ2V0X3B1YmxpY19uYW1lcyh2YWx1ZXMpOgotICAgICIiIk9ubHkgcmV0dXJu
IG5hbWVzIGZyb20gaXRlcmF0b3IgdmFsdWVzIHdpdGhvdXQgYSBsZWFkaW5nIHVuZGVyc2NvcmUu
IiIiCi0gICAgcmV0dXJuIFt4IGZvciB4IGluIHZhbHVlcyBpZiB4WzBdICE9ICJfIl0KLQotCi1j
bGFzcyBQYXJzZWRDYWxsOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBrd2FyZ3MpOgot
ICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShrd2FyZ3MpCi0gICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIGQgPSBzZWxmLl9fZGlj
dF9fLmNvcHkoKQotICAgICAgICBkZWwgZFsnX25hbWUnXQotICAgICAgICByZXR1cm4gIjxQYXJz
ZWRDYWxsICVyKCoqJXIpPiIgJSAoc2VsZi5fbmFtZSwgZCkKLQotCi1jbGFzcyBIb29rUmVjb3Jk
ZXI6Ci0gICAgIiIiUmVjb3JkIGFsbCBob29rcyBjYWxsZWQgaW4gYSBwbHVnaW4gbWFuYWdlci4K
LQotICAgIFRoaXMgd3JhcHMgYWxsIHRoZSBob29rIGNhbGxzIGluIHRoZSBwbHVnaW4gbWFuYWdl
ciwgcmVjb3JkaW5nCi0gICAgZWFjaCBjYWxsIGJlZm9yZSBwcm9wYWdhdGluZyB0aGUgbm9ybWFs
IGNhbGxzLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGx1Z2lubWFuYWdl
cik6Ci0gICAgICAgIHNlbGYuX3BsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5hZ2VyCi0gICAgICAg
IHNlbGYuY2FsbHMgPSBbXQotCi0gICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBob29rX2lt
cGxzLCBrd2FyZ3MpOgotICAgICAgICAgICAgc2VsZi5jYWxscy5hcHBlbmQoUGFyc2VkQ2FsbCho
b29rX25hbWUsIGt3YXJncykpCi0KLSAgICAgICAgZGVmIGFmdGVyKG91dGNvbWUsIGhvb2tfbmFt
ZSwgaG9va19pbXBscywga3dhcmdzKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBzZWxm
Ll91bmRvX3dyYXBwaW5nID0gcGx1Z2lubWFuYWdlci5hZGRfaG9va2NhbGxfbW9uaXRvcmluZyhi
ZWZvcmUsIGFmdGVyKQotCi0gICAgZGVmIGZpbmlzaF9yZWNvcmRpbmcoc2VsZik6Ci0gICAgICAg
IHNlbGYuX3VuZG9fd3JhcHBpbmcoKQotCi0gICAgZGVmIGdldGNhbGxzKHNlbGYsIG5hbWVzKToK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShuYW1lcywgc3RyKToKLSAgICAgICAgICAgIG5hbWVzID0g
bmFtZXMuc3BsaXQoKQotICAgICAgICByZXR1cm4gW2NhbGwgZm9yIGNhbGwgaW4gc2VsZi5jYWxs
cyBpZiBjYWxsLl9uYW1lIGluIG5hbWVzXQotCi0gICAgZGVmIGFzc2VydF9jb250YWlucyhzZWxm
LCBlbnRyaWVzKToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGkg
PSAwCi0gICAgICAgIGVudHJpZXMgPSBsaXN0KGVudHJpZXMpCi0gICAgICAgIGJhY2tsb2NhbHMg
PSBzeXMuX2dldGZyYW1lKDEpLmZfbG9jYWxzCi0gICAgICAgIHdoaWxlIGVudHJpZXM6Ci0gICAg
ICAgICAgICBuYW1lLCBjaGVjayA9IGVudHJpZXMucG9wKDApCi0gICAgICAgICAgICBmb3IgaW5k
LCBjYWxsIGluIGVudW1lcmF0ZShzZWxmLmNhbGxzW2k6XSk6Ci0gICAgICAgICAgICAgICAgaWYg
Y2FsbC5fbmFtZSA9PSBuYW1lOgotICAgICAgICAgICAgICAgICAgICBwcmludCgiTkFNRU1BVENI
IiwgbmFtZSwgY2FsbCkKLSAgICAgICAgICAgICAgICAgICAgaWYgZXZhbChjaGVjaywgYmFja2xv
Y2FscywgY2FsbC5fX2RpY3RfXyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiQ0hF
Q0tFUk1BVENIIiwgcmVwcihjaGVjayksICItPiIsIGNhbGwpCi0gICAgICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiTk9DSEVDS0VSTUFUQ0giLCBy
ZXByKGNoZWNrKSwgIi0iLCBjYWxsKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgICAgICAgICAgaSArPSBpbmQgKyAxCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgcHJpbnQoIk5PTkFNRU1BVENIIiwgbmFtZSwgIndpdGgiLCBj
YWxsKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBweXRlc3QuZmFpbCgiY291
bGQgbm90IGZpbmQgJXIgY2hlY2sgJXIiICUgKG5hbWUsIGNoZWNrKSkKLQotICAgIGRlZiBwb3Bj
YWxsKHNlbGYsIG5hbWUpOgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAg
ICAgZm9yIGksIGNhbGwgaW4gZW51bWVyYXRlKHNlbGYuY2FsbHMpOgotICAgICAgICAgICAgaWYg
Y2FsbC5fbmFtZSA9PSBuYW1lOgotICAgICAgICAgICAgICAgIGRlbCBzZWxmLmNhbGxzW2ldCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGwKLSAgICAgICAgbGluZXMgPSBbImNvdWxkIG5vdCBm
aW5kIGNhbGwgJXIsIGluOiIgJSAobmFtZSwpXQotICAgICAgICBsaW5lcy5leHRlbmQoWyIgICVz
IiAlIHN0cih4KSBmb3IgeCBpbiBzZWxmLmNhbGxzXSkKLSAgICAgICAgcHl0ZXN0LmZhaWwoIlxu
Ii5qb2luKGxpbmVzKSkKLQotICAgIGRlZiBnZXRjYWxsKHNlbGYsIG5hbWUpOgotICAgICAgICB2
YWx1ZXMgPSBzZWxmLmdldGNhbGxzKG5hbWUpCi0gICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9
PSAxLCAobmFtZSwgdmFsdWVzKQotICAgICAgICByZXR1cm4gdmFsdWVzWzBdCi0KLSAgICAjIGZ1
bmN0aW9uYWxpdHkgZm9yIHRlc3QgcmVwb3J0cwotCi0gICAgZGVmIGdldHJlcG9ydHMoc2VsZiwK
LSAgICAgICAgICAgICAgICAgICBuYW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IHB5dGVz
dF9jb2xsZWN0cmVwb3J0Iik6Ci0gICAgICAgIHJldHVybiBbeC5yZXBvcnQgZm9yIHggaW4gc2Vs
Zi5nZXRjYWxscyhuYW1lcyldCi0KLSAgICBkZWYgbWF0Y2hyZXBvcnQoc2VsZiwgaW5hbWVwYXJ0
PSIiLAotICAgICAgICAgICAgICAgICAgICBuYW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0
IHB5dGVzdF9jb2xsZWN0cmVwb3J0Iiwgd2hlbj1Ob25lKToKLSAgICAgICAgIiIiIHJldHVybiBh
IHRlc3RyZXBvcnQgd2hvc2UgZG90dGVkIGltcG9ydCBwYXRoIG1hdGNoZXMgIiIiCi0gICAgICAg
IHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKG5hbWVzPW5h
bWVzKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBpZiBub3Qgd2hlbiBhbmQg
cmVwLndoZW4gIT0gImNhbGwiIGFuZCByZXAucGFzc2VkOgotICAgICAgICAgICAgICAgICAgICAj
IHNldHVwL3RlYXJkb3duIHBhc3NpbmcgcmVwb3J0cyAtIGxldCdzIGlnbm9yZSB0aG9zZQotICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGlmIHdoZW4gYW5kIGdldGF0
dHIocmVwLCAnd2hlbicsIE5vbmUpICE9IHdoZW46Ci0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIGlmIG5vdCBpbmFtZXBhcnQgb3IgaW5hbWVwYXJ0IGluIHJlcC5ub2RlaWQu
c3BsaXQoIjo6Iik6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChyZXApCi0gICAgICAg
IGlmIG5vdCB2YWx1ZXM6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb3VsZCBub3Qg
ZmluZCB0ZXN0IHJlcG9ydCBtYXRjaGluZyAlcjogIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibm8gdGVzdCByZXBvcnRzIGF0IGFsbCEiICUgKGluYW1lcGFydCwpKQotICAgICAgICBp
ZiBsZW4odmFsdWVzKSA+IDE6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAg
ICAgICAgICAgICJmb3VuZCAyIG9yIG1vcmUgdGVzdHJlcG9ydHMgbWF0Y2hpbmcgJXI6ICVzIiAl
IChpbmFtZXBhcnQsIHZhbHVlcykpCi0gICAgICAgIHJldHVybiB2YWx1ZXNbMF0KLQotICAgIGRl
ZiBnZXRmYWlsdXJlcyhzZWxmLAotICAgICAgICAgICAgICAgICAgICBuYW1lcz0ncHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0IHB5dGVzdF9jb2xsZWN0cmVwb3J0Jyk6Ci0gICAgICAgIHJldHVybiBb
cmVwIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKG5hbWVzKSBpZiByZXAuZmFpbGVkXQotCi0g
ICAgZGVmIGdldGZhaWxlZGNvbGxlY3Rpb25zKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5n
ZXRmYWlsdXJlcygncHl0ZXN0X2NvbGxlY3RyZXBvcnQnKQotCi0gICAgZGVmIGxpc3RvdXRjb21l
cyhzZWxmKToKLSAgICAgICAgcGFzc2VkID0gW10KLSAgICAgICAgc2tpcHBlZCA9IFtdCi0gICAg
ICAgIGZhaWxlZCA9IFtdCi0gICAgICAgIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKAotICAg
ICAgICAgICAgICAgICJweXRlc3RfY29sbGVjdHJlcG9ydCBweXRlc3RfcnVudGVzdF9sb2dyZXBv
cnQiKToKLSAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgaWYgZ2V0
YXR0cihyZXAsICJ3aGVuIiwgTm9uZSkgPT0gImNhbGwiOgotICAgICAgICAgICAgICAgICAgICBw
YXNzZWQuYXBwZW5kKHJlcCkKLSAgICAgICAgICAgIGVsaWYgcmVwLnNraXBwZWQ6Ci0gICAgICAg
ICAgICAgICAgc2tpcHBlZC5hcHBlbmQocmVwKQotICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVk
OgotICAgICAgICAgICAgICAgIGZhaWxlZC5hcHBlbmQocmVwKQotICAgICAgICByZXR1cm4gcGFz
c2VkLCBza2lwcGVkLCBmYWlsZWQKLQotICAgIGRlZiBjb3VudG91dGNvbWVzKHNlbGYpOgotICAg
ICAgICByZXR1cm4gW2xlbih4KSBmb3IgeCBpbiBzZWxmLmxpc3RvdXRjb21lcygpXQotCi0gICAg
ZGVmIGFzc2VydG91dGNvbWUoc2VsZiwgcGFzc2VkPTAsIHNraXBwZWQ9MCwgZmFpbGVkPTApOgot
ICAgICAgICByZWFscGFzc2VkLCByZWFsc2tpcHBlZCwgcmVhbGZhaWxlZCA9IHNlbGYubGlzdG91
dGNvbWVzKCkKLSAgICAgICAgYXNzZXJ0IHBhc3NlZCA9PSBsZW4ocmVhbHBhc3NlZCkKLSAgICAg
ICAgYXNzZXJ0IHNraXBwZWQgPT0gbGVuKHJlYWxza2lwcGVkKQotICAgICAgICBhc3NlcnQgZmFp
bGVkID09IGxlbihyZWFsZmFpbGVkKQotCi0gICAgZGVmIGNsZWFyKHNlbGYpOgotICAgICAgICBz
ZWxmLmNhbGxzWzpdID0gW10KLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBsaW5lY29tcChyZXF1
ZXN0KToKLSAgICByZXR1cm4gTGluZUNvbXAoKQotCi0KLUBweXRlc3QuZml4dHVyZShuYW1lPSdM
aW5lTWF0Y2hlcicpCi1kZWYgTGluZU1hdGNoZXJfZml4dHVyZShyZXF1ZXN0KToKLSAgICByZXR1
cm4gTGluZU1hdGNoZXIKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiB0ZXN0ZGlyKHJlcXVlc3Qs
IHRtcGRpcl9mYWN0b3J5KToKLSAgICByZXR1cm4gVGVzdGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFj
dG9yeSkKLQotCi1yZXhfb3V0Y29tZSA9IHJlLmNvbXBpbGUociIoXGQrKSAoW1x3LV0rKSIpCi0K
LQotY2xhc3MgUnVuUmVzdWx0OgotICAgICIiIlRoZSByZXN1bHQgb2YgcnVubmluZyBhIGNvbW1h
bmQuCi0KLSAgICBBdHRyaWJ1dGVzOgotCi0gICAgOnJldDogVGhlIHJldHVybiB2YWx1ZS4KLSAg
ICA6b3V0bGluZXM6IExpc3Qgb2YgbGluZXMgY2FwdHVyZWQgZnJvbSBzdGRvdXQuCi0gICAgOmVy
cmxpbmVzOiBMaXN0IG9mIGxpbmVzIGNhcHR1cmVzIGZyb20gc3RkZXJyLgotICAgIDpzdGRvdXQ6
IDpweTpjbGFzczpgTGluZU1hdGNoZXJgIG9mIHN0ZG91dCwgdXNlIGBgc3Rkb3V0LnN0cigpYGAg
dG8KLSAgICAgICByZWNvbnN0cnVjdCBzdGRvdXQgb3IgdGhlIGNvbW1vbmx5IHVzZWQKLSAgICAg
ICBgYHN0ZG91dC5mbm1hdGNoX2xpbmVzKClgYCBtZXRob2QuCi0gICAgOnN0ZGVycnI6IDpweTpj
bGFzczpgTGluZU1hdGNoZXJgIG9mIHN0ZGVyci4KLSAgICA6ZHVyYXRpb246IER1cmF0aW9uIGlu
IHNlY29uZHMuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXQsIG91dGxp
bmVzLCBlcnJsaW5lcywgZHVyYXRpb24pOgotICAgICAgICBzZWxmLnJldCA9IHJldAotICAgICAg
ICBzZWxmLm91dGxpbmVzID0gb3V0bGluZXMKLSAgICAgICAgc2VsZi5lcnJsaW5lcyA9IGVycmxp
bmVzCi0gICAgICAgIHNlbGYuc3Rkb3V0ID0gTGluZU1hdGNoZXIob3V0bGluZXMpCi0gICAgICAg
IHNlbGYuc3RkZXJyID0gTGluZU1hdGNoZXIoZXJybGluZXMpCi0gICAgICAgIHNlbGYuZHVyYXRp
b24gPSBkdXJhdGlvbgotCi0gICAgZGVmIHBhcnNlb3V0Y29tZXMoc2VsZik6Ci0gICAgICAgICIi
IiBSZXR1cm4gYSBkaWN0aW9uYXJ5IG9mIG91dGNvbWVzdHJpbmctPm51bSBmcm9tIHBhcnNpbmcK
LSAgICAgICAgdGhlIHRlcm1pbmFsIG91dHB1dCB0aGF0IHRoZSB0ZXN0IHByb2Nlc3MgcHJvZHVj
ZWQuIiIiCi0gICAgICAgIGZvciBsaW5lIGluIHJldmVyc2VkKHNlbGYub3V0bGluZXMpOgotICAg
ICAgICAgICAgaWYgJ3NlY29uZHMnIGluIGxpbmU6Ci0gICAgICAgICAgICAgICAgb3V0Y29tZXMg
PSByZXhfb3V0Y29tZS5maW5kYWxsKGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgb3V0Y29tZXM6
Ci0gICAgICAgICAgICAgICAgICAgIGQgPSB7fQotICAgICAgICAgICAgICAgICAgICBmb3IgbnVt
LCBjYXQgaW4gb3V0Y29tZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkW2NhdF0gPSBpbnQo
bnVtKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZAotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJQeXRlc3QgdGVybWluYWwgcmVwb3J0IG5vdCBmb3VuZCIpCi0KLSAgICBkZWYgYXNzZXJ0
X291dGNvbWVzKHNlbGYsIHBhc3NlZD0wLCBza2lwcGVkPTAsIGZhaWxlZD0wLCBlcnJvcj0wKToK
LSAgICAgICAgIiIiIGFzc2VydCB0aGF0IHRoZSBzcGVjaWZpZWQgb3V0Y29tZXMgYXBwZWFyIHdp
dGggdGhlIHJlc3BlY3RpdmUKLSAgICAgICAgbnVtYmVycyAoMCBtZWFucyBpdCBkaWRuJ3Qgb2Nj
dXIpIGluIHRoZSB0ZXh0IG91dHB1dCBmcm9tIGEgdGVzdCBydW4uIiIiCi0gICAgICAgIGQgPSBz
ZWxmLnBhcnNlb3V0Y29tZXMoKQotICAgICAgICBvYnRhaW5lZCA9IHsKLSAgICAgICAgICAgICdw
YXNzZWQnOiBkLmdldCgncGFzc2VkJywgMCksCi0gICAgICAgICAgICAnc2tpcHBlZCc6IGQuZ2V0
KCdza2lwcGVkJywgMCksCi0gICAgICAgICAgICAnZmFpbGVkJzogZC5nZXQoJ2ZhaWxlZCcsIDAp
LAotICAgICAgICAgICAgJ2Vycm9yJzogZC5nZXQoJ2Vycm9yJywgMCksCi0gICAgICAgIH0KLSAg
ICAgICAgYXNzZXJ0IG9idGFpbmVkID09IGRpY3QocGFzc2VkPXBhc3NlZCwgc2tpcHBlZD1za2lw
cGVkLCBmYWlsZWQ9ZmFpbGVkLCBlcnJvcj1lcnJvcikKLQotCi1jbGFzcyBUZXN0ZGlyOgotICAg
ICIiIlRlbXBvcmFyeSB0ZXN0IGRpcmVjdG9yeSB3aXRoIHRvb2xzIHRvIHRlc3QvcnVuIHB5dGVz
dCBpdHNlbGYuCi0KLSAgICBUaGlzIGlzIGJhc2VkIG9uIHRoZSBgYHRtcGRpcmBgIGZpeHR1cmUg
YnV0IHByb3ZpZGVzIGEgbnVtYmVyIG9mCi0gICAgbWV0aG9kcyB3aGljaCBhaWQgd2l0aCB0ZXN0
aW5nIHB5dGVzdCBpdHNlbGYuICBVbmxlc3MKLSAgICA6cHk6bWV0aDpgY2hkaXJgIGlzIHVzZWQg
YWxsIG1ldGhvZHMgd2lsbCB1c2UgOnB5OmF0dHI6YHRtcGRpcmAgYXMKLSAgICBjdXJyZW50IHdv
cmtpbmcgZGlyZWN0b3J5LgotCi0gICAgQXR0cmlidXRlczoKLQotICAgIDp0bXBkaXI6IFRoZSA6
cHk6Y2xhc3M6YHB5LnBhdGgubG9jYWxgIGluc3RhbmNlIG9mIHRoZSB0ZW1wb3JhcnkKLSAgICAg
ICBkaXJlY3RvcnkuCi0KLSAgICA6cGx1Z2luczogQSBsaXN0IG9mIHBsdWdpbnMgdG8gdXNlIHdp
dGggOnB5Om1ldGg6YHBhcnNlY29uZmlnYCBhbmQKLSAgICAgICA6cHk6bWV0aDpgcnVucHl0ZXN0
YC4gIEluaXRpYWxseSB0aGlzIGlzIGFuIGVtcHR5IGxpc3QgYnV0Ci0gICAgICAgcGx1Z2lucyBj
YW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QuICBUaGUgdHlwZSBvZiBpdGVtcyB0byBhZGQgdG8KLSAg
ICAgICB0aGUgbGlzdCBkZXBlbmQgb24gdGhlIG1ldGhvZCB3aGljaCB1c2VzIHRoZW0gc28gcmVm
ZXIgdG8gdGhlbQotICAgICAgIGZvciBkZXRhaWxzLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgotICAgICAgICBzZWxmLnJlcXVl
c3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX21vZF9jb2xsZWN0aW9ucyA9IFdlYWtLZXlEaWN0
aW9uYXJ5KCkKLSAgICAgICAgbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KLSAgICAg
ICAgc2VsZi50bXBkaXIgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1
ZSkKLSAgICAgICAgc2VsZi5wbHVnaW5zID0gW10KLSAgICAgICAgc2VsZi5fc2F2ZXN5c3BhdGgg
PSAobGlzdChzeXMucGF0aCksIGxpc3Qoc3lzLm1ldGFfcGF0aCkpCi0gICAgICAgIHNlbGYuX3Nh
dmVtb2R1bGVrZXlzID0gc2V0KHN5cy5tb2R1bGVzKQotICAgICAgICBzZWxmLmNoZGlyKCkgICMg
YWx3YXlzIGNoZGlyCi0gICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi5maW5h
bGl6ZSkKLSAgICAgICAgbWV0aG9kID0gc2VsZi5yZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0t
cnVucHl0ZXN0IikKLSAgICAgICAgaWYgbWV0aG9kID09ICJpbnByb2Nlc3MiOgotICAgICAgICAg
ICAgc2VsZi5fcnVucHl0ZXN0X21ldGhvZCA9IHNlbGYucnVucHl0ZXN0X2lucHJvY2VzcwotICAg
ICAgICBlbGlmIG1ldGhvZCA9PSAic3VicHJvY2VzcyI6Ci0gICAgICAgICAgICBzZWxmLl9ydW5w
eXRlc3RfbWV0aG9kID0gc2VsZi5ydW5weXRlc3Rfc3VicHJvY2VzcwotCi0gICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxUZXN0ZGlyICVyPiIgJSAoc2VsZi50bXBkaXIs
KQotCi0gICAgZGVmIGZpbmFsaXplKHNlbGYpOgotICAgICAgICAiIiJDbGVhbiB1cCBnbG9iYWwg
c3RhdGUgYXJ0aWZhY3RzLgotCi0gICAgICAgIFNvbWUgbWV0aG9kcyBtb2RpZnkgdGhlIGdsb2Jh
bCBpbnRlcnByZXRlciBzdGF0ZSBhbmQgdGhpcwotICAgICAgICB0cmllcyB0byBjbGVhbiB0aGlz
IHVwLiAgSXQgZG9lcyBub3QgcmVtb3ZlIHRoZSB0ZW1wb3JhcnkKLSAgICAgICAgZGlyZWN0b3J5
IGhvd2V2ZXIgc28gaXQgY2FuIGJlIGxvb2tlZCBhdCBhZnRlciB0aGUgdGVzdCBydW4KLSAgICAg
ICAgaGFzIGZpbmlzaGVkLgotCi0gICAgICAgICIiIgotICAgICAgICBzeXMucGF0aFs6XSwgc3lz
Lm1ldGFfcGF0aFs6XSA9IHNlbGYuX3NhdmVzeXNwYXRoCi0gICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19vbGRkaXInKToKLSAgICAgICAgICAgIHNlbGYuX29sZGRpci5jaGRpcigpCi0gICAgICAg
IHNlbGYuZGVsZXRlX2xvYWRlZF9tb2R1bGVzKCkKLQotICAgIGRlZiBkZWxldGVfbG9hZGVkX21v
ZHVsZXMoc2VsZik6Ci0gICAgICAgICIiIkRlbGV0ZSBtb2R1bGVzIHRoYXQgaGF2ZSBiZWVuIGxv
YWRlZCBkdXJpbmcgYSB0ZXN0LgotCi0gICAgICAgIFRoaXMgYWxsb3dzIHRoZSBpbnRlcnByZXRl
ciB0byBjYXRjaCBtb2R1bGUgY2hhbmdlcyBpbiBjYXNlCi0gICAgICAgIHRoZSBtb2R1bGUgaXMg
cmUtaW1wb3J0ZWQuCi0gICAgICAgICIiIgotICAgICAgICBmb3IgbmFtZSBpbiBzZXQoc3lzLm1v
ZHVsZXMpLmRpZmZlcmVuY2Uoc2VsZi5fc2F2ZW1vZHVsZWtleXMpOgotICAgICAgICAgICAgIyBz
b21lIHpvcGUgbW9kdWxlcyB1c2VkIGJ5IHR3aXN0ZWQtcmVsYXRlZCB0ZXN0cyBrZWVwcyBpbnRl
cm5hbAotICAgICAgICAgICAgIyBzdGF0ZSBhbmQgY2FuJ3QgYmUgZGVsZXRlZDsgd2UgaGFkIHNv
bWUgdHJvdWJsZSBpbiB0aGUgcGFzdAotICAgICAgICAgICAgIyB3aXRoIHpvcGUuaW50ZXJmYWNl
IGZvciBleGFtcGxlCi0gICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJ6b3BlIik6
Ci0gICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCi0KLSAgICBkZWYgbWFrZV9o
b29rX3JlY29yZGVyKHNlbGYsIHBsdWdpbm1hbmFnZXIpOgotICAgICAgICAiIiJDcmVhdGUgYSBu
ZXcgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGZvciBhIFBsdWdpbk1hbmFnZXIuIiIiCi0gICAg
ICAgIGFzc2VydCBub3QgaGFzYXR0cihwbHVnaW5tYW5hZ2VyLCAicmVwcmVjIikKLSAgICAgICAg
cGx1Z2lubWFuYWdlci5yZXByZWMgPSByZXByZWMgPSBIb29rUmVjb3JkZXIocGx1Z2lubWFuYWdl
cikKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihyZXByZWMuZmluaXNoX3JlY29y
ZGluZykKLSAgICAgICAgcmV0dXJuIHJlcHJlYwotCi0gICAgZGVmIGNoZGlyKHNlbGYpOgotICAg
ICAgICAiIiJDZCBpbnRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgotCi0gICAgICAgIFRoaXMg
aXMgZG9uZSBhdXRvbWF0aWNhbGx5IHVwb24gaW5zdGFudGlhdGlvbi4KLQotICAgICAgICAiIiIK
LSAgICAgICAgb2xkID0gc2VsZi50bXBkaXIuY2hkaXIoKQotICAgICAgICBpZiBub3QgaGFzYXR0
cihzZWxmLCAnX29sZGRpcicpOgotICAgICAgICAgICAgc2VsZi5fb2xkZGlyID0gb2xkCi0KLSAg
ICBkZWYgX21ha2VmaWxlKHNlbGYsIGV4dCwgYXJncywga3dhcmdzLCBlbmNvZGluZz0ndXRmLTgn
KToKLSAgICAgICAgaXRlbXMgPSBsaXN0KGt3YXJncy5pdGVtcygpKQotCi0gICAgICAgIGRlZiB0
b190ZXh0KHMpOgotICAgICAgICAgICAgcmV0dXJuIHMuZGVjb2RlKGVuY29kaW5nKSBpZiBpc2lu
c3RhbmNlKHMsIGJ5dGVzKSBlbHNlIHNpeC50ZXh0X3R5cGUocykKLQotICAgICAgICBpZiBhcmdz
OgotICAgICAgICAgICAgc291cmNlID0gdSJcbiIuam9pbih0b190ZXh0KHgpIGZvciB4IGluIGFy
Z3MpCi0gICAgICAgICAgICBiYXNlbmFtZSA9IHNlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25hbWVf
XwotICAgICAgICAgICAgaXRlbXMuaW5zZXJ0KDAsIChiYXNlbmFtZSwgc291cmNlKSkKLQotICAg
ICAgICByZXQgPSBOb25lCi0gICAgICAgIGZvciBiYXNlbmFtZSwgdmFsdWUgaW4gaXRlbXM6Ci0g
ICAgICAgICAgICBwID0gc2VsZi50bXBkaXIuam9pbihiYXNlbmFtZSkubmV3KGV4dD1leHQpCi0g
ICAgICAgICAgICBwLmRpcnBhdGgoKS5lbnN1cmVfZGlyKCkKLSAgICAgICAgICAgIHNvdXJjZSA9
IFNvdXJjZSh2YWx1ZSkKLSAgICAgICAgICAgIHNvdXJjZSA9IHUiXG4iLmpvaW4odG9fdGV4dChs
aW5lKSBmb3IgbGluZSBpbiBzb3VyY2UubGluZXMpCi0gICAgICAgICAgICBwLndyaXRlKHNvdXJj
ZS5zdHJpcCgpLmVuY29kZShlbmNvZGluZyksICJ3YiIpCi0gICAgICAgICAgICBpZiByZXQgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICByZXQgPSBwCi0gICAgICAgIHJldHVybiByZXQKLQotICAg
IGRlZiBtYWtlZmlsZShzZWxmLCBleHQsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIkNy
ZWF0ZSBhIG5ldyBmaWxlIGluIHRoZSB0ZXN0ZGlyLgotCi0gICAgICAgIGV4dDogVGhlIGV4dGVu
c2lvbiB0aGUgZmlsZSBzaG91bGQgdXNlLCBpbmNsdWRpbmcgdGhlIGRvdC4KLSAgICAgICAgICAg
RS5nLiAiLnB5Ii4KLQotICAgICAgICBhcmdzOiBBbGwgYXJncyB3aWxsIGJlIHRyZWF0ZWQgYXMg
c3RyaW5ncyBhbmQgam9pbmVkIHVzaW5nCi0gICAgICAgICAgIG5ld2xpbmVzLiAgVGhlIHJlc3Vs
dCB3aWxsIGJlIHdyaXR0ZW4gYXMgY29udGVudHMgdG8gdGhlCi0gICAgICAgICAgIGZpbGUuICBU
aGUgbmFtZSBvZiB0aGUgZmlsZSB3aWxsIGJlIGJhc2VkIG9uIHRoZSB0ZXN0Ci0gICAgICAgICAg
IGZ1bmN0aW9uIHJlcXVlc3RpbmcgdGhpcyBmaXh0dXJlLgotICAgICAgICAgICBFLmcuICJ0ZXN0
ZGlyLm1ha2VmaWxlKCcudHh0JywgJ2xpbmUxJywgJ2xpbmUyJykiCi0KLSAgICAgICAga3dhcmdz
OiBFYWNoIGtleXdvcmQgaXMgdGhlIG5hbWUgb2YgYSBmaWxlLCB3aGlsZSB0aGUgdmFsdWUgb2YK
LSAgICAgICAgICAgaXQgd2lsbCBiZSB3cml0dGVuIGFzIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgot
ICAgICAgICAgICBFLmcuICJ0ZXN0ZGlyLm1ha2VmaWxlKCcuaW5pJywgcHl0ZXN0PSdbcHl0ZXN0
XVxuYWRkb3B0cz0tcnNcbicpIgotCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5f
bWFrZWZpbGUoZXh0LCBhcmdzLCBrd2FyZ3MpCi0KLSAgICBkZWYgbWFrZWNvbmZ0ZXN0KHNlbGYs
IHNvdXJjZSk6Ci0gICAgICAgICIiIldyaXRlIGEgY29udGVzdC5weSBmaWxlIHdpdGggJ3NvdXJj
ZScgYXMgY29udGVudHMuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLm1ha2VweWZpbGUoY29uZnRl
c3Q9c291cmNlKQotCi0gICAgZGVmIG1ha2Vpbmkoc2VsZiwgc291cmNlKToKLSAgICAgICAgIiIi
V3JpdGUgYSB0b3guaW5pIGZpbGUgd2l0aCAnc291cmNlJyBhcyBjb250ZW50cy4iIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYubWFrZWZpbGUoJy5pbmknLCB0b3g9c291cmNlKQotCi0gICAgZGVmIGdl
dGluaWNmZyhzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHB5dGVzdCBzZWN0
aW9uIGZyb20gdGhlIHRveC5pbmkgY29uZmlnIGZpbGUuIiIiCi0gICAgICAgIHAgPSBzZWxmLm1h
a2Vpbmkoc291cmNlKQotICAgICAgICByZXR1cm4gcHkuaW5pY29uZmlnLkluaUNvbmZpZyhwKVsn
cHl0ZXN0J10KLQotICAgIGRlZiBtYWtlcHlmaWxlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0g
ICAgICAgICIiIlNob3J0Y3V0IGZvciAubWFrZWZpbGUoKSB3aXRoIGEgLnB5IGV4dGVuc2lvbi4i
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VmaWxlKCcucHknLCBhcmdzLCBrd2FyZ3MpCi0K
LSAgICBkZWYgbWFrZXR4dGZpbGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIi
U2hvcnRjdXQgZm9yIC5tYWtlZmlsZSgpIHdpdGggYSAudHh0IGV4dGVuc2lvbi4iIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX21ha2VmaWxlKCcudHh0JywgYXJncywga3dhcmdzKQotCi0gICAgZGVm
IHN5c3BhdGhpbnNlcnQoc2VsZiwgcGF0aD1Ob25lKToKLSAgICAgICAgIiIiUHJlcGVuZCBhIGRp
cmVjdG9yeSB0byBzeXMucGF0aCwgZGVmYXVsdHMgdG8gOnB5OmF0dHI6YHRtcGRpcmAuCi0KLSAg
ICAgICAgVGhpcyBpcyB1bmRvbmUgYXV0b21hdGljYWxseSBhZnRlciB0aGUgdGVzdC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHBhdGggPSBzZWxm
LnRtcGRpcgotICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgc3RyKHBhdGgpKQotICAgICAgICAj
IGEgY2FsbCB0byBzeXNwYXRoaW5zZXJ0KCkgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBjYWxsZXIK
LSAgICAgICAgIyB3YW50cyB0byBpbXBvcnQgc29tZSBkeW5hbWljYWxseSBjcmVhdGVkIGZpbGVz
LgotICAgICAgICAjIHdpdGggcHl0aG9uMyB3ZSB0aHVzIGludmFsaWRhdGUgaW1wb3J0IGNhY2hl
cy4KLSAgICAgICAgc2VsZi5fcG9zc2libHlfaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzKCkKLQot
ICAgIGRlZiBfcG9zc2libHlfaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzKHNlbGYpOgotICAgICAg
ICAjIGludmFsaWRhdGUgY2FjaGVzIGlmIHdlIGNhbiAocHkzMyBhbmQgYWJvdmUpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGltcG9ydCBpbXBvcnRsaWIKLSAgICAgICAgZXhjZXB0IEltcG9y
dEVycm9yOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYg
aGFzYXR0cihpbXBvcnRsaWIsICJpbnZhbGlkYXRlX2NhY2hlcyIpOgotICAgICAgICAgICAgICAg
IGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCi0KLSAgICBkZWYgbWtkaXIoc2VsZiwgbmFt
ZSk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyAoc3ViKWRpcmVjdG9yeS4iIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYudG1wZGlyLm1rZGlyKG5hbWUpCi0KLSAgICBkZWYgbWtweWRpcihzZWxmLCBu
YW1lKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHB5dGhvbiBwYWNrYWdlLgotCi0gICAgICAg
IFRoaXMgY3JlYXRlcyBhIChzdWIpZGlyZWN0b3J5IHdpdGggYW4gZW1wdHkgYGBfX2luaXRfXy5w
eWBgCi0gICAgICAgIGZpbGUgc28gdGhhdCBpcyByZWNvZ25pc2VkIGFzIGEgcHl0aG9uIHBhY2th
Z2UuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHAgPSBzZWxmLm1rZGlyKG5hbWUpCi0gICAgICAg
IHAuZW5zdXJlKCJfX2luaXRfXy5weSIpCi0gICAgICAgIHJldHVybiBwCi0KLSAgICBTZXNzaW9u
ID0gU2Vzc2lvbgotCi0gICAgZGVmIGdldG5vZGUoc2VsZiwgY29uZmlnLCBhcmcpOgotICAgICAg
ICAiIiJSZXR1cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBvZiBhIGZpbGUuCi0KLSAgICAgICAgOnBh
cmFtIGNvbmZpZzogOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGluc3RhbmNlLCBz
ZWUKLSAgICAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlnYCBhbmQgOnB5Om1ldGg6YHBhcnNl
Y29uZmlndXJlYCB0bwotICAgICAgICAgICBjcmVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uCi0KLSAg
ICAgICAgOnBhcmFtIGFyZzogQSA6cHk6Y2xhc3M6YHB5LnBhdGgubG9jYWxgIGluc3RhbmNlIG9m
IHRoZSBmaWxlLgotCi0gICAgICAgICIiIgotICAgICAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25m
aWcpCi0gICAgICAgIGFzc2VydCAnOjonIG5vdCBpbiBzdHIoYXJnKQotICAgICAgICBwID0gcHku
cGF0aC5sb2NhbChhcmcpCi0gICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uc3RhcnQo
c2Vzc2lvbj1zZXNzaW9uKQotICAgICAgICByZXMgPSBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdChb
c3RyKHApXSwgZ2VuaXRlbXM9RmFsc2UpWzBdCi0gICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9z
ZXNzaW9uZmluaXNoKHNlc3Npb249c2Vzc2lvbiwgZXhpdHN0YXR1cz1FWElUX09LKQotICAgICAg
ICByZXR1cm4gcmVzCi0KLSAgICBkZWYgZ2V0cGF0aG5vZGUoc2VsZiwgcGF0aCk6Ci0gICAgICAg
ICIiIlJldHVybiB0aGUgY29sbGVjdGlvbiBub2RlIG9mIGEgZmlsZS4KLQotICAgICAgICBUaGlz
IGlzIGxpa2UgOnB5Om1ldGg6YGdldG5vZGVgIGJ1dCB1c2VzCi0gICAgICAgIDpweTptZXRoOmBw
YXJzZWNvbmZpZ3VyZWAgdG8gY3JlYXRlIHRoZSAoY29uZmlndXJlZCkgcHl0ZXN0Ci0gICAgICAg
IENvbmZpZyBpbnN0YW5jZS4KLQotICAgICAgICA6cGFyYW0gcGF0aDogQSA6cHk6Y2xhc3M6YHB5
LnBhdGgubG9jYWxgIGluc3RhbmNlIG9mIHRoZSBmaWxlLgotCi0gICAgICAgICIiIgotICAgICAg
ICBjb25maWcgPSBzZWxmLnBhcnNlY29uZmlndXJlKHBhdGgpCi0gICAgICAgIHNlc3Npb24gPSBT
ZXNzaW9uKGNvbmZpZykKLSAgICAgICAgeCA9IHNlc3Npb24uZnNwYXRoLmJlc3RyZWxwYXRoKHBh
dGgpCi0gICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbj1zZXNz
aW9uKQotICAgICAgICByZXMgPSBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdChbeF0sIGdlbml0ZW1z
PUZhbHNlKVswXQotICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNz
aW9uPXNlc3Npb24sIGV4aXRzdGF0dXM9RVhJVF9PSykKLSAgICAgICAgcmV0dXJuIHJlcwotCi0g
ICAgZGVmIGdlbml0ZW1zKHNlbGYsIGNvbGl0ZW1zKToKLSAgICAgICAgIiIiR2VuZXJhdGUgYWxs
IHRlc3QgaXRlbXMgZnJvbSBhIGNvbGxlY3Rpb24gbm9kZS4KLQotICAgICAgICBUaGlzIHJlY3Vy
c2VzIGludG8gdGhlIGNvbGxlY3Rpb24gbm9kZSBhbmQgcmV0dXJucyBhIGxpc3Qgb2YKLSAgICAg
ICAgYWxsIHRoZSB0ZXN0IGl0ZW1zIGNvbnRhaW5lZCB3aXRoaW4uCi0KLSAgICAgICAgIiIiCi0g
ICAgICAgIHNlc3Npb24gPSBjb2xpdGVtc1swXS5zZXNzaW9uCi0gICAgICAgIHJlc3VsdCA9IFtd
Ci0gICAgICAgIGZvciBjb2xpdGVtIGluIGNvbGl0ZW1zOgotICAgICAgICAgICAgcmVzdWx0LmV4
dGVuZChzZXNzaW9uLmdlbml0ZW1zKGNvbGl0ZW0pKQotICAgICAgICByZXR1cm4gcmVzdWx0Ci0K
LSAgICBkZWYgcnVuaXRlbShzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJSdW4gdGhlICJ0ZXN0
X2Z1bmMiIEl0ZW0uCi0KLSAgICAgICAgVGhlIGNhbGxpbmcgdGVzdCBpbnN0YW5jZSAodGhlIGNs
YXNzIHdoaWNoIGNvbnRhaW5zIHRoZSB0ZXN0Ci0gICAgICAgIG1ldGhvZCkgbXVzdCBwcm92aWRl
IGEgYGAuZ2V0cnVubmVyKClgYCBtZXRob2Qgd2hpY2ggc2hvdWxkCi0gICAgICAgIHJldHVybiBh
IHJ1bm5lciB3aGljaCBjYW4gcnVuIHRoZSB0ZXN0IHByb3RvY29sIGZvciBhIHNpbmdsZQotICAg
ICAgICBpdGVtLCBsaWtlIGUuZy4gOnB5OmZ1bmM6YF9weXRlc3QucnVubmVyLnJ1bnRlc3Rwcm90
b2NvbGAuCi0KLSAgICAgICAgIiIiCi0gICAgICAgICMgdXNlZCBmcm9tIHJ1bm5lciBmdW5jdGlv
bmFsIHRlc3RzCi0gICAgICAgIGl0ZW0gPSBzZWxmLmdldGl0ZW0oc291cmNlKQotICAgICAgICAj
IHRoZSB0ZXN0IGNsYXNzIHdoZXJlIHdlIGFyZSBjYWxsZWQgZnJvbSB3YW50cyB0byBwcm92aWRl
IHRoZSBydW5uZXIKLSAgICAgICAgdGVzdGNsYXNzaW5zdGFuY2UgPSBzZWxmLnJlcXVlc3QuaW5z
dGFuY2UKLSAgICAgICAgcnVubmVyID0gdGVzdGNsYXNzaW5zdGFuY2UuZ2V0cnVubmVyKCkKLSAg
ICAgICAgcmV0dXJuIHJ1bm5lcihpdGVtKQotCi0gICAgZGVmIGlubGluZV9ydW5zb3VyY2Uoc2Vs
Ziwgc291cmNlLCAqY21kbGluZWFyZ3MpOgotICAgICAgICAiIiJSdW4gYSB0ZXN0IG1vZHVsZSBp
biBwcm9jZXNzIHVzaW5nIGBgcHl0ZXN0Lm1haW4oKWBgLgotCi0gICAgICAgIFRoaXMgcnVuIHdy
aXRlcyAic291cmNlIiBpbnRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJ1bnMKLSAgICAgICAgYGBw
eXRlc3QubWFpbigpYGAgb24gaXQsIHJldHVybmluZyBhIDpweTpjbGFzczpgSG9va1JlY29yZGVy
YAotICAgICAgICBpbnN0YW5jZSBmb3IgdGhlIHJlc3VsdC4KLQotICAgICAgICA6cGFyYW0gc291
cmNlOiBUaGUgc291cmNlIGNvZGUgb2YgdGhlIHRlc3QgbW9kdWxlLgotCi0gICAgICAgIDpwYXJh
bSBjbWRsaW5lYXJnczogQW55IGV4dHJhIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gdXNlLgot
Ci0gICAgICAgIDpyZXR1cm46IDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZSBvZiB0
aGUgcmVzdWx0LgotCi0gICAgICAgICIiIgotICAgICAgICBwID0gc2VsZi5tYWtlcHlmaWxlKHNv
dXJjZSkKLSAgICAgICAgdmFsdWVzID0gbGlzdChjbWRsaW5lYXJncykgKyBbcF0KLSAgICAgICAg
cmV0dXJuIHNlbGYuaW5saW5lX3J1bigqdmFsdWVzKQotCi0gICAgZGVmIGlubGluZV9nZW5pdGVt
cyhzZWxmLCAqYXJncyk6Ci0gICAgICAgICIiIlJ1biBgYHB5dGVzdC5tYWluKFsnLS1jb2xsZWN0
b25seSddKWBgIGluLXByb2Nlc3MuCi0KLSAgICAgICAgUmV0dXJucyBhIHR1cGxlIG9mIHRoZSBj
b2xsZWN0ZWQgaXRlbXMgYW5kIGEKLSAgICAgICAgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGlu
c3RhbmNlLgotCi0gICAgICAgIFRoaXMgcnVucyB0aGUgOnB5OmZ1bmM6YHB5dGVzdC5tYWluYCBm
dW5jdGlvbiB0byBydW4gYWxsIG9mCi0gICAgICAgIHB5dGVzdCBpbnNpZGUgdGhlIHRlc3QgcHJv
Y2VzcyBpdHNlbGYgbGlrZQotICAgICAgICA6cHk6bWV0aDpgaW5saW5lX3J1bmAuICBIb3dldmVy
IHRoZSByZXR1cm4gdmFsdWUgaXMgYSB0dXBsZSBvZgotICAgICAgICB0aGUgY29sbGVjdGlvbiBp
dGVtcyBhbmQgYSA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2UuCi0KLSAgICAgICAg
IiIiCi0gICAgICAgIHJlYyA9IHNlbGYuaW5saW5lX3J1bigiLS1jb2xsZWN0LW9ubHkiLCAqYXJn
cykKLSAgICAgICAgaXRlbXMgPSBbeC5pdGVtIGZvciB4IGluIHJlYy5nZXRjYWxscygicHl0ZXN0
X2l0ZW1jb2xsZWN0ZWQiKV0KLSAgICAgICAgcmV0dXJuIGl0ZW1zLCByZWMKLQotICAgIGRlZiBp
bmxpbmVfcnVuKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIlJ1biBgYHB5dGVz
dC5tYWluKClgYCBpbi1wcm9jZXNzLCByZXR1cm5pbmcgYSBIb29rUmVjb3JkZXIuCi0KLSAgICAg
ICAgVGhpcyBydW5zIHRoZSA6cHk6ZnVuYzpgcHl0ZXN0Lm1haW5gIGZ1bmN0aW9uIHRvIHJ1biBh
bGwgb2YKLSAgICAgICAgcHl0ZXN0IGluc2lkZSB0aGUgdGVzdCBwcm9jZXNzIGl0c2VsZi4gIFRo
aXMgbWVhbnMgaXQgY2FuCi0gICAgICAgIHJldHVybiBhIDpweTpjbGFzczpgSG9va1JlY29yZGVy
YCBpbnN0YW5jZSB3aGljaCBnaXZlcyBtb3JlCi0gICAgICAgIGRldGFpbGVkIHJlc3VsdHMgZnJv
bSB0aGVuIHJ1biB0aGVuIGNhbiBiZSBkb25lIGJ5IG1hdGNoaW5nCi0gICAgICAgIHN0ZG91dC9z
dGRlcnIgZnJvbSA6cHk6bWV0aDpgcnVucHl0ZXN0YC4KLQotICAgICAgICA6cGFyYW0gYXJnczog
QW55IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gcGFzcyB0bwotICAgICAgICAgICA6cHk6ZnVu
YzpgcHl0ZXN0Lm1haW5gLgotCi0gICAgICAgIDpwYXJhbSBwbHVnaW46IChrZXl3b3JkLW9ubHkp
IEV4dHJhIHBsdWdpbiBpbnN0YW5jZXMgdGhlCi0gICAgICAgICAgIGBgcHl0ZXN0Lm1haW4oKWBg
IGluc3RhbmNlIHNob3VsZCB1c2UuCi0KLSAgICAgICAgOnJldHVybjogQSA6cHk6Y2xhc3M6YEhv
b2tSZWNvcmRlcmAgaW5zdGFuY2UuCi0gICAgICAgICIiIgotICAgICAgICAjIFdoZW4gcnVubmlu
ZyBweS50ZXN0IGlubGluZSBhbnkgcGx1Z2lucyBhY3RpdmUgaW4gdGhlIG1haW4KLSAgICAgICAg
IyB0ZXN0IHByb2Nlc3MgYXJlIGFscmVhZHkgaW1wb3J0ZWQuICBTbyB0aGlzIGRpc2FibGVzIHRo
ZQotICAgICAgICAjIHdhcm5pbmcgd2hpY2ggd2lsbCB0cmlnZ2VyIHRvIHNheSB0aGV5IGNhbiBu
byBsb25nZXIgYmUKLSAgICAgICAgIyByZXdyaXR0ZW4sIHdoaWNoIGlzIGZpbmUgYXMgdGhleSBh
cmUgYWxyZWFkeSByZXdyaXR0ZW4uCi0gICAgICAgIG9yaWdfd2FybiA9IEFzc2VydGlvblJld3Jp
dGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRlZAotCi0gICAgICAgIGRlZiByZXZlcnQoKToK
LSAgICAgICAgICAgIEFzc2VydGlvblJld3JpdGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRl
ZCA9IG9yaWdfd2FybgotCi0gICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIocmV2ZXJ0
KQotICAgICAgICBBc3NlcnRpb25SZXdyaXRpbmdIb29rLl93YXJuX2FscmVhZHlfaW1wb3J0ZWQg
PSBsYW1iZGEgKmE6IE5vbmUKLQotICAgICAgICByZWMgPSBbXQotCi0gICAgICAgIGNsYXNzIENv
bGxlY3Q6Ci0gICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZSh4LCBjb25maWcpOgotICAg
ICAgICAgICAgICAgIHJlYy5hcHBlbmQoc2VsZi5tYWtlX2hvb2tfcmVjb3JkZXIoY29uZmlnLnBs
dWdpbm1hbmFnZXIpKQotCi0gICAgICAgIHBsdWdpbnMgPSBrd2FyZ3MuZ2V0KCJwbHVnaW5zIikg
b3IgW10KLSAgICAgICAgcGx1Z2lucy5hcHBlbmQoQ29sbGVjdCgpKQotICAgICAgICByZXQgPSBw
eXRlc3QubWFpbihsaXN0KGFyZ3MpLCBwbHVnaW5zPXBsdWdpbnMpCi0gICAgICAgIHNlbGYuZGVs
ZXRlX2xvYWRlZF9tb2R1bGVzKCkKLSAgICAgICAgaWYgbGVuKHJlYykgPT0gMToKLSAgICAgICAg
ICAgIHJlcHJlYyA9IHJlYy5wb3AoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2xhc3Mg
cmVwcmVjOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgcmVwcmVjLnJldCA9IHJldAot
Ci0gICAgICAgICMgdHlwaWNhbGx5IHdlIHJlcmFpc2Uga2V5Ym9hcmQgaW50ZXJydXB0cyBmcm9t
IHRoZSBjaGlsZCBydW4KLSAgICAgICAgIyBiZWNhdXNlIGl0J3Mgb3VyIHVzZXIgcmVxdWVzdGlu
ZyBpbnRlcnJ1cHRpb24gb2YgdGhlIHRlc3RpbmcKLSAgICAgICAgaWYgcmV0ID09IDIgYW5kIG5v
dCBrd2FyZ3MuZ2V0KCJub19yZXJhaXNlX2N0cmxjIik6Ci0gICAgICAgICAgICBjYWxscyA9IHJl
cHJlYy5nZXRjYWxscygicHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdCIpCi0gICAgICAgICAgICBp
ZiBjYWxscyBhbmQgY2FsbHNbLTFdLmV4Y2luZm8udHlwZSA9PSBLZXlib2FyZEludGVycnVwdDoK
LSAgICAgICAgICAgICAgICByYWlzZSBLZXlib2FyZEludGVycnVwdCgpCi0gICAgICAgIHJldHVy
biByZXByZWMKLQotICAgIGRlZiBydW5weXRlc3RfaW5wcm9jZXNzKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6Ci0gICAgICAgICIiIiBSZXR1cm4gcmVzdWx0IG9mIHJ1bm5pbmcgcHl0ZXN0IGluLXBy
b2Nlc3MsIHByb3ZpZGluZyBhIHNpbWlsYXIKLSAgICAgICAgaW50ZXJmYWNlIHRvIHdoYXQgc2Vs
Zi5ydW5weXRlc3QoKSBwcm92aWRlcy4gIiIiCi0gICAgICAgIGlmIGt3YXJncy5nZXQoInN5c3Bh
dGhpbnNlcnQiKToKLSAgICAgICAgICAgIHNlbGYuc3lzcGF0aGluc2VydCgpCi0gICAgICAgIG5v
dyA9IHRpbWUudGltZSgpCi0gICAgICAgIGNhcHR1cmUgPSBNdWx0aUNhcHR1cmUoQ2FwdHVyZT1T
eXNDYXB0dXJlKQotICAgICAgICBjYXB0dXJlLnN0YXJ0X2NhcHR1cmluZygpCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXByZWMgPSBzZWxmLmlubGlu
ZV9ydW4oKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQgYXMg
ZToKLQotICAgICAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKLSAgICAgICAgICAgICAgICAgICAg
cmV0ID0gZS5hcmdzWzBdCi0KLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAg
ICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCi0KLSAgICAgICAgICAgICAgICBjbGFzcyBy
ZXByZWM6Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9IDMKLSAgICAgICAgZmluYWxseToKLSAg
ICAgICAgICAgIG91dCwgZXJyID0gY2FwdHVyZS5yZWFkb3V0ZXJyKCkKLSAgICAgICAgICAgIGNh
cHR1cmUuc3RvcF9jYXB0dXJpbmcoKQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQp
Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKLQotICAgICAgICByZXMgPSBSdW5S
ZXN1bHQocmVwcmVjLnJldCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dC5zcGxpdCgiXG4i
KSwgZXJyLnNwbGl0KCJcbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgdGltZS50aW1lKCkg
LSBub3cpCi0gICAgICAgIHJlcy5yZXByZWMgPSByZXByZWMKLSAgICAgICAgcmV0dXJuIHJlcwot
Ci0gICAgZGVmIHJ1bnB5dGVzdChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiIg
UnVuIHB5dGVzdCBpbmxpbmUgb3IgaW4gYSBzdWJwcm9jZXNzLCBkZXBlbmRpbmcgb24gdGhlIGNv
bW1hbmQgbGluZQotICAgICAgICBvcHRpb24gIi0tcnVucHl0ZXN0IiBhbmQgcmV0dXJuIGEgOnB5
OmNsYXNzOmBSdW5SZXN1bHRgLgotCi0gICAgICAgICIiIgotICAgICAgICBhcmdzID0gc2VsZi5f
ZW5zdXJlX2Jhc2V0ZW1wKGFyZ3MpCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5weXRlc3RfbWV0
aG9kKCphcmdzLCAqKmt3YXJncykKLQotICAgIGRlZiBfZW5zdXJlX2Jhc2V0ZW1wKHNlbGYsIGFy
Z3MpOgotICAgICAgICBhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBhcmdzXQotICAgICAgICBmb3Ig
eCBpbiBhcmdzOgotICAgICAgICAgICAgaWYgc3RyKHgpLnN0YXJ0c3dpdGgoJy0tYmFzZXRlbXAn
KToKLSAgICAgICAgICAgICAgICAjIHByaW50KCJiYXNlZHRlbXAgZXhpc3RzOiAlcyIgJShhcmdz
LCkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFy
Z3MuYXBwZW5kKCItLWJhc2V0ZW1wPSVzIiAlIHNlbGYudG1wZGlyLmRpcnBhdGgoJ2Jhc2V0ZW1w
JykpCi0gICAgICAgICAgICAjIHByaW50KCJhZGRlZCBiYXNldGVtcDogJXMiICUoYXJncywpKQot
ICAgICAgICByZXR1cm4gYXJncwotCi0gICAgZGVmIHBhcnNlY29uZmlnKHNlbGYsICphcmdzKToK
LSAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHB5dGVzdCBDb25maWcgaW5zdGFuY2UgZnJvbSBnaXZl
biBjb21tYW5kbGluZSBhcmdzLgotCi0gICAgICAgIFRoaXMgaW52b2tlcyB0aGUgcHl0ZXN0IGJv
b3RzdHJhcHBpbmcgY29kZSBpbiBfcHl0ZXN0LmNvbmZpZwotICAgICAgICB0byBjcmVhdGUgYSBu
ZXcgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvcmUuUGx1Z2luTWFuYWdlcmAgYW5kCi0gICAgICAgIGNh
bGwgdGhlIHB5dGVzdF9jbWRsaW5lX3BhcnNlIGhvb2sgdG8gY3JlYXRlIG5ldwotICAgICAgICA6
cHk6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UuCi0KLSAgICAgICAgSWYg
OnB5OmF0dHI6YHBsdWdpbnNgIGhhcyBiZWVuIHBvcHVsYXRlZCB0aGV5IHNob3VsZCBiZSBwbHVn
aW4KLSAgICAgICAgbW9kdWxlcyB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgUGx1
Z2luTWFuYWdlci4KLQotICAgICAgICAiIiIKLSAgICAgICAgYXJncyA9IHNlbGYuX2Vuc3VyZV9i
YXNldGVtcChhcmdzKQotCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgICAgICBj
b25maWcgPSBfcHl0ZXN0LmNvbmZpZy5fcHJlcGFyZWNvbmZpZyhhcmdzLCBzZWxmLnBsdWdpbnMp
Ci0gICAgICAgICMgd2UgZG9uJ3Qga25vdyB3aGF0IHRoZSB0ZXN0IHdpbGwgZG8gd2l0aCB0aGlz
IGhhbGYtc2V0dXAgY29uZmlnCi0gICAgICAgICMgb2JqZWN0IGFuZCB0aHVzIHdlIG1ha2Ugc3Vy
ZSBpdCBnZXRzIHVuY29uZmlndXJlZCBwcm9wZXJseSBpbiBhbnkKLSAgICAgICAgIyBjYXNlIChv
dGhlcndpc2UgY2FwdHVyaW5nIGNvdWxkIHN0aWxsIGJlIGFjdGl2ZSwgZm9yIGV4YW1wbGUpCi0g
ICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIoY29uZmlnLl9lbnN1cmVfdW5jb25maWd1
cmUpCi0gICAgICAgIHJldHVybiBjb25maWcKLQotICAgIGRlZiBwYXJzZWNvbmZpZ3VyZShzZWxm
LCAqYXJncyk6Ci0gICAgICAgICIiIlJldHVybiBhIG5ldyBweXRlc3QgY29uZmlndXJlZCBDb25m
aWcgaW5zdGFuY2UuCi0KLSAgICAgICAgVGhpcyByZXR1cm5zIGEgbmV3IDpweTpjbGFzczpgX3B5
dGVzdC5jb25maWcuQ29uZmlnYCBpbnN0YW5jZQotICAgICAgICBsaWtlIDpweTptZXRoOmBwYXJz
ZWNvbmZpZ2AsIGJ1dCBhbHNvIGNhbGxzIHRoZQotICAgICAgICBweXRlc3RfY29uZmlndXJlIGhv
b2suCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGNvbmZpZyA9IHNlbGYucGFyc2Vjb25maWcoKmFy
Z3MpCi0gICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgc2VsZi5yZXF1ZXN0
LmFkZGZpbmFsaXplcihjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSkKLSAgICAgICAgcmV0dXJu
IGNvbmZpZwotCi0gICAgZGVmIGdldGl0ZW0oc2VsZiwgc291cmNlLCBmdW5jbmFtZT0idGVzdF9m
dW5jIik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgdGVzdCBpdGVtIGZvciBhIHRlc3QgZnVuY3Rp
b24uCi0KLSAgICAgICAgVGhpcyB3cml0ZXMgdGhlIHNvdXJjZSB0byBhIHB5dGhvbiBmaWxlIGFu
ZCBydW5zIHB5dGVzdCdzCi0gICAgICAgIGNvbGxlY3Rpb24gb24gdGhlIHJlc3VsdGluZyBtb2R1
bGUsIHJldHVybmluZyB0aGUgdGVzdCBpdGVtCi0gICAgICAgIGZvciB0aGUgcmVxdWVzdGVkIGZ1
bmN0aW9uIG5hbWUuCi0KLSAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhlIG1vZHVsZSBzb3VyY2Uu
Ci0KLSAgICAgICAgOnBhcmFtIGZ1bmNuYW1lOiBUaGUgbmFtZSBvZiB0aGUgdGVzdCBmdW5jdGlv
biBmb3Igd2hpY2ggdGhlCi0gICAgICAgICAgIEl0ZW0gbXVzdCBiZSByZXR1cm5lZC4KLQotICAg
ICAgICAiIiIKLSAgICAgICAgaXRlbXMgPSBzZWxmLmdldGl0ZW1zKHNvdXJjZSkKLSAgICAgICAg
Zm9yIGl0ZW0gaW4gaXRlbXM6Ci0gICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gZnVuY25hbWU6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0KLSAgICAgICAgYXNzZXJ0IDAsICIlciBpdGVt
IG5vdCBmb3VuZCBpbiBtb2R1bGU6XG4lc1xuaXRlbXM6ICVzIiAlICgKLSAgICAgICAgICAgICAg
ICAgIGZ1bmNuYW1lLCBzb3VyY2UsIGl0ZW1zKQotCi0gICAgZGVmIGdldGl0ZW1zKHNlbGYsIHNv
dXJjZSk6Ci0gICAgICAgICIiIlJldHVybiBhbGwgdGVzdCBpdGVtcyBjb2xsZWN0ZWQgZnJvbSB0
aGUgbW9kdWxlLgotCi0gICAgICAgIFRoaXMgd3JpdGVzIHRoZSBzb3VyY2UgdG8gYSBweXRob24g
ZmlsZSBhbmQgcnVucyBweXRlc3QncwotICAgICAgICBjb2xsZWN0aW9uIG9uIHRoZSByZXN1bHRp
bmcgbW9kdWxlLCByZXR1cm5pbmcgYWxsIHRlc3QgaXRlbXMKLSAgICAgICAgY29udGFpbmVkIHdp
dGhpbi4KLQotICAgICAgICAiIiIKLSAgICAgICAgbW9kY29sID0gc2VsZi5nZXRtb2R1bGVjb2wo
c291cmNlKQotICAgICAgICByZXR1cm4gc2VsZi5nZW5pdGVtcyhbbW9kY29sXSkKLQotICAgIGRl
ZiBnZXRtb2R1bGVjb2woc2VsZiwgc291cmNlLCBjb25maWdhcmdzPSgpLCB3aXRoaW5pdD1GYWxz
ZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgbW9kdWxlIGNvbGxlY3Rpb24gbm9kZSBmb3IgYGBz
b3VyY2VgYC4KLQotICAgICAgICBUaGlzIHdyaXRlcyBgYHNvdXJjZWBgIHRvIGEgZmlsZSB1c2lu
ZyA6cHk6bWV0aDpgbWFrZXB5ZmlsZWAKLSAgICAgICAgYW5kIHRoZW4gcnVucyB0aGUgcHl0ZXN0
IGNvbGxlY3Rpb24gb24gaXQsIHJldHVybmluZyB0aGUKLSAgICAgICAgY29sbGVjdGlvbiBub2Rl
IGZvciB0aGUgdGVzdCBtb2R1bGUuCi0KLSAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhlIHNvdXJj
ZSBjb2RlIG9mIHRoZSBtb2R1bGUgdG8gY29sbGVjdC4KLQotICAgICAgICA6cGFyYW0gY29uZmln
YXJnczogQW55IGV4dHJhIGFyZ3VtZW50cyB0byBwYXNzIHRvCi0gICAgICAgICAgIDpweTptZXRo
OmBwYXJzZWNvbmZpZ3VyZWAuCi0KLSAgICAgICAgOnBhcmFtIHdpdGhpbml0OiBXaGV0aGVyIHRv
IGFsc28gd3JpdGUgYSBgYF9faW5pdF9fLnB5YGAgZmlsZQotICAgICAgICAgICB0byB0aGUgdGVt
cG9yYXJ5IGRpcmVjdG9yeSB0byBlbnN1cmUgaXQgaXMgYSBwYWNrYWdlLgotCi0gICAgICAgICIi
IgotICAgICAgICBrdyA9IHtzZWxmLnJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX186IFNvdXJjZShz
b3VyY2UpLnN0cmlwKCl9Ci0gICAgICAgIHBhdGggPSBzZWxmLm1ha2VweWZpbGUoKiprdykKLSAg
ICAgICAgaWYgd2l0aGluaXQ6Ci0gICAgICAgICAgICBzZWxmLm1ha2VweWZpbGUoX19pbml0X189
IiMiKQotICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZyA9IHNlbGYucGFyc2Vjb25maWd1cmUo
cGF0aCwgKmNvbmZpZ2FyZ3MpCi0gICAgICAgIG5vZGUgPSBzZWxmLmdldG5vZGUoY29uZmlnLCBw
YXRoKQotCi0gICAgICAgIHJldHVybiBub2RlCi0KLSAgICBkZWYgY29sbGVjdF9ieV9uYW1lKHNl
bGYsIG1vZGNvbCwgbmFtZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgY29sbGVjdGlvbiBub2Rl
IGZvciBuYW1lIGZyb20gdGhlIG1vZHVsZSBjb2xsZWN0aW9uLgotCi0gICAgICAgIFRoaXMgd2ls
bCBzZWFyY2ggYSBtb2R1bGUgY29sbGVjdGlvbiBub2RlIGZvciBhIGNvbGxlY3Rpb24KLSAgICAg
ICAgbm9kZSBtYXRjaGluZyB0aGUgZ2l2ZW4gbmFtZS4KLQotICAgICAgICA6cGFyYW0gbW9kY29s
OiBBIG1vZHVsZSBjb2xsZWN0aW9uIG5vZGUsIHNlZQotICAgICAgICAgICA6cHk6bWV0aDpgZ2V0
bW9kdWxlY29sYC4KLQotICAgICAgICA6cGFyYW0gbmFtZTogVGhlIG5hbWUgb2YgdGhlIG5vZGUg
dG8gcmV0dXJuLgotCi0gICAgICAgICIiIgotICAgICAgICBpZiBtb2Rjb2wgbm90IGluIHNlbGYu
X21vZF9jb2xsZWN0aW9uczoKLSAgICAgICAgICAgIHNlbGYuX21vZF9jb2xsZWN0aW9uc1ttb2Rj
b2xdID0gbGlzdChtb2Rjb2wuY29sbGVjdCgpKQotICAgICAgICBmb3IgY29saXRlbSBpbiBzZWxm
Ll9tb2RfY29sbGVjdGlvbnNbbW9kY29sXToKLSAgICAgICAgICAgIGlmIGNvbGl0ZW0ubmFtZSA9
PSBuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBjb2xpdGVtCi0KLSAgICBkZWYgcG9wZW4o
c2VsZiwgY21kYXJncywgc3Rkb3V0LCBzdGRlcnIsICoqa3cpOgotICAgICAgICAiIiJJbnZva2Ug
c3VicHJvY2Vzcy5Qb3Blbi4KLQotICAgICAgICBUaGlzIGNhbGxzIHN1YnByb2Nlc3MuUG9wZW4g
bWFraW5nIHN1cmUgdGhlIGN1cnJlbnQgd29ya2luZwotICAgICAgICBkaXJlY3RvcnkgaXMgdGhl
IFBZVEhPTlBBVEguCi0KLSAgICAgICAgWW91IHByb2JhYmx5IHdhbnQgdG8gdXNlIDpweTptZXRo
OmBydW5gIGluc3RlYWQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGVudiA9IG9zLmVudmlyb24u
Y29weSgpCi0gICAgICAgIGVudlsnUFlUSE9OUEFUSCddID0gb3MucGF0aHNlcC5qb2luKGZpbHRl
cihOb25lLCBbCi0gICAgICAgICAgICBzdHIob3MuZ2V0Y3dkKCkpLCBlbnYuZ2V0KCdQWVRIT05Q
QVRIJywgJycpXSkpCi0gICAgICAgIGt3WydlbnYnXSA9IGVudgotCi0gICAgICAgIHBvcGVuID0g
c3VicHJvY2Vzcy5Qb3BlbihjbWRhcmdzLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsIHN0ZG91dD1z
dGRvdXQsIHN0ZGVycj1zdGRlcnIsICoqa3cpCi0gICAgICAgIHBvcGVuLnN0ZGluLmNsb3NlKCkK
LQotICAgICAgICByZXR1cm4gcG9wZW4KLQotICAgIGRlZiBydW4oc2VsZiwgKmNtZGFyZ3MpOgot
ICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHdpdGggYXJndW1lbnRzLgotCi0gICAgICAgIFJ1biBh
IHByb2Nlc3MgdXNpbmcgc3VicHJvY2Vzcy5Qb3BlbiBzYXZpbmcgdGhlIHN0ZG91dCBhbmQKLSAg
ICAgICAgc3RkZXJyLgotCi0gICAgICAgIFJldHVybnMgYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAu
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW4oKmNtZGFyZ3MpCi0KLSAg
ICBkZWYgX3J1bihzZWxmLCAqY21kYXJncyk6Ci0gICAgICAgIGNtZGFyZ3MgPSBbc3RyKHgpIGZv
ciB4IGluIGNtZGFyZ3NdCi0gICAgICAgIHAxID0gc2VsZi50bXBkaXIuam9pbigic3Rkb3V0IikK
LSAgICAgICAgcDIgPSBzZWxmLnRtcGRpci5qb2luKCJzdGRlcnIiKQotICAgICAgICBwcmludCgi
cnVubmluZzoiLCAnICcuam9pbihjbWRhcmdzKSkKLSAgICAgICAgcHJpbnQoIiAgICAgaW46Iiwg
c3RyKHB5LnBhdGgubG9jYWwoKSkpCi0gICAgICAgIGYxID0gY29kZWNzLm9wZW4oc3RyKHAxKSwg
InciLCBlbmNvZGluZz0idXRmOCIpCi0gICAgICAgIGYyID0gY29kZWNzLm9wZW4oc3RyKHAyKSwg
InciLCBlbmNvZGluZz0idXRmOCIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG5vdyA9IHRp
bWUudGltZSgpCi0gICAgICAgICAgICBwb3BlbiA9IHNlbGYucG9wZW4oY21kYXJncywgc3Rkb3V0
PWYxLCBzdGRlcnI9ZjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRz
PShzeXMucGxhdGZvcm0gIT0gIndpbjMyIikpCi0gICAgICAgICAgICByZXQgPSBwb3Blbi53YWl0
KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGYxLmNsb3NlKCkKLSAgICAgICAgICAg
IGYyLmNsb3NlKCkKLSAgICAgICAgZjEgPSBjb2RlY3Mub3BlbihzdHIocDEpLCAiciIsIGVuY29k
aW5nPSJ1dGY4IikKLSAgICAgICAgZjIgPSBjb2RlY3Mub3BlbihzdHIocDIpLCAiciIsIGVuY29k
aW5nPSJ1dGY4IikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3V0ID0gZjEucmVhZCgpLnNw
bGl0bGluZXMoKQotICAgICAgICAgICAgZXJyID0gZjIucmVhZCgpLnNwbGl0bGluZXMoKQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZjEuY2xvc2UoKQotICAgICAgICAgICAgZjIuY2xv
c2UoKQotICAgICAgICBzZWxmLl9kdW1wX2xpbmVzKG91dCwgc3lzLnN0ZG91dCkKLSAgICAgICAg
c2VsZi5fZHVtcF9saW5lcyhlcnIsIHN5cy5zdGRlcnIpCi0gICAgICAgIHJldHVybiBSdW5SZXN1
bHQocmV0LCBvdXQsIGVyciwgdGltZS50aW1lKCkgLSBub3cpCi0KLSAgICBkZWYgX2R1bXBfbGlu
ZXMoc2VsZiwgbGluZXMsIGZwKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZm9yIGxpbmUg
aW4gbGluZXM6Ci0gICAgICAgICAgICAgICAgcHJpbnQobGluZSwgZmlsZT1mcCkKLSAgICAgICAg
ZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAgICAgICAgICAgIHByaW50KCJjb3VsZG4ndCBw
cmludCB0byAlcyBiZWNhdXNlIG9mIGVuY29kaW5nIiAlIChmcCwpKQotCi0gICAgZGVmIF9nZXRw
eXRlc3RhcmdzKHNlbGYpOgotICAgICAgICAjIHdlIGNhbm5vdCB1c2UgIihzeXMuZXhlY3V0YWJs
ZSxzY3JpcHQpIgotICAgICAgICAjIGJlY2F1c2Ugb24gd2luZG93cyB0aGUgc2NyaXB0IGlzIGUu
Zy4gYSBweXRlc3QuZXhlCi0gICAgICAgIHJldHVybiAoc3lzLmV4ZWN1dGFibGUsIFBZVEVTVF9G
VUxMUEFUSCkgIyBub3FhCi0KLSAgICBkZWYgcnVucHl0aG9uKHNlbGYsIHNjcmlwdCk6Ci0gICAg
ICAgICIiIlJ1biBhIHB5dGhvbiBzY3JpcHQgdXNpbmcgc3lzLmV4ZWN1dGFibGUgYXMgaW50ZXJw
cmV0ZXIuCi0KLSAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnJ1bihzeXMuZXhlY3V0YWJsZSwgc2NyaXB0KQot
Ci0gICAgZGVmIHJ1bnB5dGhvbl9jKHNlbGYsIGNvbW1hbmQpOgotICAgICAgICAiIiJSdW4gcHl0
aG9uIC1jICJjb21tYW5kIiwgcmV0dXJuIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLiIiIgotICAg
ICAgICByZXR1cm4gc2VsZi5ydW4oc3lzLmV4ZWN1dGFibGUsICItYyIsIGNvbW1hbmQpCi0KLSAg
ICBkZWYgcnVucHl0ZXN0X3N1YnByb2Nlc3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAg
ICAgIiIiUnVuIHB5dGVzdCBhcyBhIHN1YnByb2Nlc3Mgd2l0aCBnaXZlbiBhcmd1bWVudHMuCi0K
LSAgICAgICAgQW55IHBsdWdpbnMgYWRkZWQgdG8gdGhlIDpweTphdHRyOmBwbHVnaW5zYCBsaXN0
IHdpbGwgYWRkZWQKLSAgICAgICAgdXNpbmcgdGhlIGBgLXBgYCBjb21tYW5kIGxpbmUgb3B0aW9u
LiAgQWRkdGlvbmFsbHkKLSAgICAgICAgYGAtLWJhc2V0ZW1wYGAgaXMgdXNlZCBwdXQgYW55IHRl
bXBvcmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKLSAgICAgICAgaW4gYSBudW1iZXJlZCBkaXJl
Y3RvcnkgcHJlZml4ZWQgd2l0aCAicnVucHl0ZXN0LSIgc28gdGhleSBkbwotICAgICAgICBub3Qg
Y29uZmxpY3Qgd2l0aCB0aGUgbm9ybWFsIG51bWJlcmQgcHl0ZXN0IGxvY2F0aW9uIGZvcgotICAg
ICAgICB0ZW1wb3JhcnkgZmlsZXMgYW5kIGRpcmVjdG9yaWVzLgotCi0gICAgICAgIFJldHVybnMg
YSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHAgPSBweS5w
YXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0icnVucHl0ZXN0LSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXA9Tm9uZSwgcm9vdGRpcj1z
ZWxmLnRtcGRpcikKLSAgICAgICAgYXJncyA9ICgnLS1iYXNldGVtcD0lcycgJSBwLCApICsgYXJn
cwotICAgICAgICAjIGZvciB4IGluIGFyZ3M6Ci0gICAgICAgICMgICAgaWYgJy0tY29uZmN1dGRp
cicgaW4gc3RyKHgpOgotICAgICAgICAjICAgICAgICBicmVhawotICAgICAgICAjIGVsc2U6Ci0g
ICAgICAgICMgICAgcGFzcwotICAgICAgICAjICAgIGFyZ3MgPSAoJy0tY29uZmN1dGRpcj0uJywp
ICsgYXJncwotICAgICAgICBwbHVnaW5zID0gW3ggZm9yIHggaW4gc2VsZi5wbHVnaW5zIGlmIGlz
aW5zdGFuY2UoeCwgc3RyKV0KLSAgICAgICAgaWYgcGx1Z2luczoKLSAgICAgICAgICAgIGFyZ3Mg
PSAoJy1wJywgcGx1Z2luc1swXSkgKyBhcmdzCi0gICAgICAgIGFyZ3MgPSBzZWxmLl9nZXRweXRl
c3RhcmdzKCkgKyBhcmdzCi0gICAgICAgIHJldHVybiBzZWxmLnJ1bigqYXJncykKLQotICAgIGRl
ZiBzcGF3bl9weXRlc3Qoc2VsZiwgc3RyaW5nLCBleHBlY3RfdGltZW91dD0xMC4wKToKLSAgICAg
ICAgIiIiUnVuIHB5dGVzdCB1c2luZyBwZXhwZWN0LgotCi0gICAgICAgIFRoaXMgbWFrZXMgc3Vy
ZSB0byB1c2UgdGhlIHJpZ2h0IHB5dGVzdCBhbmQgc2V0cyB1cCB0aGUKLSAgICAgICAgdGVtcG9y
YXJ5IGRpcmVjdG9yeSBsb2NhdGlvbnMuCi0KLSAgICAgICAgVGhlIHBleHBlY3QgY2hpbGQgaXMg
cmV0dXJuZWQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGJhc2V0ZW1wID0gc2VsZi50bXBkaXIu
bWtkaXIoInRlbXAtcGV4cGVjdCIpCi0gICAgICAgIGludm9rZSA9ICIgIi5qb2luKG1hcChzdHIs
IHNlbGYuX2dldHB5dGVzdGFyZ3MoKSkpCi0gICAgICAgIGNtZCA9ICIlcyAtLWJhc2V0ZW1wPSVz
ICVzIiAlIChpbnZva2UsIGJhc2V0ZW1wLCBzdHJpbmcpCi0gICAgICAgIHJldHVybiBzZWxmLnNw
YXduKGNtZCwgZXhwZWN0X3RpbWVvdXQ9ZXhwZWN0X3RpbWVvdXQpCi0KLSAgICBkZWYgc3Bhd24o
c2VsZiwgY21kLCBleHBlY3RfdGltZW91dD0xMC4wKToKLSAgICAgICAgIiIiUnVuIGEgY29tbWFu
ZCB1c2luZyBwZXhwZWN0LgotCi0gICAgICAgIFRoZSBwZXhwZWN0IGNoaWxkIGlzIHJldHVybmVk
LgotICAgICAgICAiIiIKLSAgICAgICAgcGV4cGVjdCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBl
eHBlY3QiLCAiMy4wIikKLSAgICAgICAgaWYgaGFzYXR0cihzeXMsICdweXB5X3ZlcnNpb25faW5m
bycpIGFuZCAnNjQnIGluIHBsYXRmb3JtLm1hY2hpbmUoKToKLSAgICAgICAgICAgIHB5dGVzdC5z
a2lwKCJweXB5LTY0IGJpdCBub3Qgc3VwcG9ydGVkIikKLSAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoImZyZWVic2QiKToKLSAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgicGV4cGVj
dCBkb2VzIG5vdCB3b3JrIHJlbGlhYmx5IG9uIGZyZWVic2QiKQotICAgICAgICBsb2dmaWxlID0g
c2VsZi50bXBkaXIuam9pbigic3Bhd24ub3V0Iikub3Blbigid2IiKQotICAgICAgICBjaGlsZCA9
IHBleHBlY3Quc3Bhd24oY21kLCBsb2dmaWxlPWxvZ2ZpbGUpCi0gICAgICAgIHNlbGYucmVxdWVz
dC5hZGRmaW5hbGl6ZXIobG9nZmlsZS5jbG9zZSkKLSAgICAgICAgY2hpbGQudGltZW91dCA9IGV4
cGVjdF90aW1lb3V0Ci0gICAgICAgIHJldHVybiBjaGlsZAotCi0KLWRlZiBnZXRkZWNvZGVkKG91
dCk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gb3V0LmRlY29kZSgidXRmLTgiKQotICAgIGV4
Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgIHJldHVybiAiSU5URVJOQUwgbm90LXV0
ZjgtZGVjb2RlYWJsZSwgdHJ1bmNhdGVkIHN0cmluZzpcbiVzIiAlICgKLSAgICAgICAgICAgIHB5
LmlvLnNhZmVyZXByKG91dCksKQotCi0KLWNsYXNzIExpbmVDb21wOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKLSAgICAgICAgc2VsZi5zdHJpbmdpbyA9IHB5LmlvLlRleHRJTygpCi0KLSAgICBk
ZWYgYXNzZXJ0X2NvbnRhaW5zX2xpbmVzKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgICIiIiBhc3Nl
cnQgdGhhdCBsaW5lczIgYXJlIGNvbnRhaW5lZCAobGluZWFybHkpIGluIGxpbmVzMS4KLSAgICAg
ICAgICAgIHJldHVybiBhIGxpc3Qgb2YgZXh0cmFsaW5lcyBmb3VuZC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICB2YWwgPSBzZWxmLnN0cmlu
Z2lvLmdldHZhbHVlKCkKLSAgICAgICAgc2VsZi5zdHJpbmdpby50cnVuY2F0ZSgwKQotICAgICAg
ICBzZWxmLnN0cmluZ2lvLnNlZWsoMCkKLSAgICAgICAgbGluZXMxID0gdmFsLnNwbGl0KCJcbiIp
Ci0gICAgICAgIHJldHVybiBMaW5lTWF0Y2hlcihsaW5lczEpLmZubWF0Y2hfbGluZXMobGluZXMy
KQotCi0KLWNsYXNzIExpbmVNYXRjaGVyOgotICAgICIiIkZsZXhpYmxlIG1hdGNoaW5nIG9mIHRl
eHQuCi0KLSAgICBUaGlzIGlzIGEgY29udmVuaWVuY2UgY2xhc3MgdG8gdGVzdCBsYXJnZSB0ZXh0
cyBsaWtlIHRoZSBvdXRwdXQgb2YKLSAgICBjb21tYW5kcy4KLQotICAgIFRoZSBjb25zdHJ1Y3Rv
ciB0YWtlcyBhIGxpc3Qgb2YgbGluZXMgd2l0aG91dCB0aGVpciB0cmFpbGluZwotICAgIG5ld2xp
bmVzLCBpLmUuIGBgdGV4dC5zcGxpdGxpbmVzKClgYC4KLQotICAgICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxpbmVzKToKLSAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCi0gICAgICAg
IHNlbGYuX2xvZ19vdXRwdXQgPSBbXQotCi0gICAgZGVmIHN0cihzZWxmKToKLSAgICAgICAgIiIi
UmV0dXJuIHRoZSBlbnRpcmUgb3JpZ2luYWwgdGV4dC4iIiIKLSAgICAgICAgcmV0dXJuICJcbiIu
am9pbihzZWxmLmxpbmVzKQotCi0gICAgZGVmIF9nZXRsaW5lcyhzZWxmLCBsaW5lczIpOgotICAg
ICAgICBpZiBpc2luc3RhbmNlKGxpbmVzMiwgc3RyKToKLSAgICAgICAgICAgIGxpbmVzMiA9IFNv
dXJjZShsaW5lczIpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobGluZXMyLCBTb3VyY2UpOgotICAg
ICAgICAgICAgbGluZXMyID0gbGluZXMyLnN0cmlwKCkubGluZXMKLSAgICAgICAgcmV0dXJuIGxp
bmVzMgotCi0gICAgZGVmIGZubWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMik6Ci0gICAg
ICAgICIiIkNoZWNrIGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQgdXNpbmcgYGBmbm1hdGNoLmZu
bWF0Y2hgYCwgaW4gYW55IG9yZGVyLgotCi0gICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qg
b2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUKLSAgICAgICAgb3V0cHV0LCBpbiBh
bnkgb3JkZXIuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tYXRjaF9saW5lc19yYW5kb20o
bGluZXMyLCBmbm1hdGNoKQotCi0gICAgZGVmIHJlX21hdGNoX2xpbmVzX3JhbmRvbShzZWxmLCBs
aW5lczIpOgotICAgICAgICAiIiJDaGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0IHVzaW5n
IGBgcmUubWF0Y2hgYCwgaW4gYW55IG9yZGVyLgotCi0gICAgICAgIFRoZSBhcmd1bWVudCBpcyBh
IGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUKLSAgICAgICAgb3V0cHV0
LCBpbiBhbnkgb3JkZXIuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX21hdGNoX2xpbmVz
X3JhbmRvbShsaW5lczIsIGxhbWJkYSBuYW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwgbmFtZSkpCi0K
LSAgICBkZWYgX21hdGNoX2xpbmVzX3JhbmRvbShzZWxmLCBsaW5lczIsIG1hdGNoX2Z1bmMpOgot
ICAgICAgICAiIiJDaGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0LgotCi0gICAgICAgIFRo
ZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUK
LSAgICAgICAgb3V0cHV0LCBpbiBhbnkgb3JkZXIuICBFYWNoIGxpbmUgY2FuIGNvbnRhaW4gZ2xv
YiB3aGlsZGNhcmRzLgotCi0gICAgICAgICIiIgotICAgICAgICBsaW5lczIgPSBzZWxmLl9nZXRs
aW5lcyhsaW5lczIpCi0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzMjoKLSAgICAgICAgICAgIGZv
ciB4IGluIHNlbGYubGluZXM6Ci0gICAgICAgICAgICAgICAgaWYgbGluZSA9PSB4IG9yIG1hdGNo
X2Z1bmMoeCwgbGluZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygibWF0Y2hlZDog
IiwgcmVwcihsaW5lKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJsaW5lICVyIG5vdCBmb3VuZCBpbiBvdXRw
dXQiICUgbGluZSkKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHNlbGYuX2xvZ190
ZXh0KQotCi0gICAgZGVmIGdldF9saW5lc19hZnRlcihzZWxmLCBmbmxpbmUpOgotICAgICAgICAi
IiJSZXR1cm4gYWxsIGxpbmVzIGZvbGxvd2luZyB0aGUgZ2l2ZW4gbGluZSBpbiB0aGUgdGV4dC4K
LQotICAgICAgICBUaGUgZ2l2ZW4gbGluZSBjYW4gY29udGFpbiBnbG9iIHdpbGRjYXJkcy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShzZWxmLmxpbmVzKToK
LSAgICAgICAgICAgIGlmIGZubGluZSA9PSBsaW5lIG9yIGZubWF0Y2gobGluZSwgZm5saW5lKToK
LSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lc1tpICsgMTpdCi0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImxpbmUgJXIgbm90IGZvdW5kIGluIG91dHB1dCIgJSBmbmxpbmUpCi0KLSAg
ICBkZWYgX2xvZyhzZWxmLCAqYXJncyk6Ci0gICAgICAgIHNlbGYuX2xvZ19vdXRwdXQuYXBwZW5k
KCcgJy5qb2luKChzdHIoeCkgZm9yIHggaW4gYXJncykpKQotCi0gICAgQHByb3BlcnR5Ci0gICAg
ZGVmIF9sb2dfdGV4dChzZWxmKToKLSAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLl9sb2df
b3V0cHV0KQotCi0gICAgZGVmIGZubWF0Y2hfbGluZXMoc2VsZiwgbGluZXMyKToKLSAgICAgICAg
IiIiU2VhcmNoIGNhcHR1cmVkIHRleHQgZm9yIG1hdGNoaW5nIGxpbmVzIHVzaW5nIGBgZm5tYXRj
aC5mbm1hdGNoYGAuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3
aGljaCBoYXZlIHRvIG1hdGNoIGFuZCBjYW4KLSAgICAgICAgdXNlIGdsb2Igd2lsZGNhcmRzLiAg
SWYgdGhleSBkbyBub3QgbWF0Y2ggYSBweXRlc3QuZmFpbCgpIGlzCi0gICAgICAgIGNhbGxlZC4g
IFRoZSBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUgYWxzbyBwcmludGVkIG9uCi0gICAgICAg
IHN0ZG91dC4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXMobGluZXMy
LCBmbm1hdGNoLCAnZm5tYXRjaCcpCi0KLSAgICBkZWYgcmVfbWF0Y2hfbGluZXMoc2VsZiwgbGlu
ZXMyKToKLSAgICAgICAgIiIiU2VhcmNoIGNhcHR1cmVkIHRleHQgZm9yIG1hdGNoaW5nIGxpbmVz
IHVzaW5nIGBgcmUubWF0Y2hgYC4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9m
IGxpbmVzIHdoaWNoIGhhdmUgdG8gbWF0Y2ggdXNpbmcgYGByZS5tYXRjaGBgLgotICAgICAgICBJ
ZiB0aGV5IGRvIG5vdCBtYXRjaCBhIHB5dGVzdC5mYWlsKCkgaXMgY2FsbGVkLgotCi0gICAgICAg
IFRoZSBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUgYWxzbyBwcmludGVkIG9uCi0gICAgICAg
IHN0ZG91dC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX21hdGNoX2xpbmVzKGxpbmVzMiwg
bGFtYmRhIG5hbWUsIHBhdDogcmUubWF0Y2gocGF0LCBuYW1lKSwgJ3JlLm1hdGNoJykKLQotICAg
IGRlZiBfbWF0Y2hfbGluZXMoc2VsZiwgbGluZXMyLCBtYXRjaF9mdW5jLCBtYXRjaF9uaWNrbmFt
ZSk6Ci0gICAgICAgICIiIlVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gb2YgYGBmbm1hdGNoX2xp
bmVzYGAgYW5kIGBgcmVfbWF0Y2hfbGluZXNgYC4KLQotICAgICAgICA6cGFyYW0gbGlzdFtzdHJd
IGxpbmVzMjogbGlzdCBvZiBzdHJpbmcgcGF0dGVybnMgdG8gbWF0Y2guIFRoZSBhY3R1YWwgZm9y
bWF0IGRlcGVuZHMgb24KLSAgICAgICAgICAgIGBgbWF0Y2hfZnVuY2BgLgotICAgICAgICA6cGFy
YW0gbWF0Y2hfZnVuYzogYSBjYWxsYWJsZSBgYG1hdGNoX2Z1bmMobGluZSwgcGF0dGVybilgYCB3
aGVyZSBsaW5lIGlzIHRoZSBjYXB0dXJlZAotICAgICAgICAgICAgbGluZSBmcm9tIHN0ZG91dC9z
dGRlcnIgYW5kIHBhdHRlcm4gaXMgdGhlIG1hdGNoaW5nIHBhdHRlcm4uCi0KLSAgICAgICAgOnBh
cmFtIHN0ciBtYXRjaF9uaWNrbmFtZTogdGhlIG5pY2tuYW1lIGZvciB0aGUgbWF0Y2ggZnVuY3Rp
b24gdGhhdCB3aWxsIGJlIGxvZ2dlZAotICAgICAgICAgICAgdG8gc3Rkb3V0IHdoZW4gYSBtYXRj
aCBvY2N1cnMuCi0gICAgICAgICIiIgotICAgICAgICBsaW5lczIgPSBzZWxmLl9nZXRsaW5lcyhs
aW5lczIpCi0gICAgICAgIGxpbmVzMSA9IHNlbGYubGluZXNbOl0KLSAgICAgICAgbmV4dGxpbmUg
PSBOb25lCi0gICAgICAgIGV4dHJhbGluZXMgPSBbXQotICAgICAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXMyOgotICAgICAgICAgICAgbm9tYXRj
aHByaW50ZWQgPSBGYWxzZQotICAgICAgICAgICAgd2hpbGUgbGluZXMxOgotICAgICAgICAgICAg
ICAgIG5leHRsaW5lID0gbGluZXMxLnBvcCgwKQotICAgICAgICAgICAgICAgIGlmIGxpbmUgPT0g
bmV4dGxpbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiZXhhY3QgbWF0Y2g6Iiwg
cmVwcihsaW5lKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBl
bGlmIG1hdGNoX2Z1bmMobmV4dGxpbmUsIGxpbmUpOgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9sb2coIiVzOiIgJSBtYXRjaF9uaWNrbmFtZSwgcmVwcihsaW5lKSkKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nKCIgICB3aXRoOiIsIHJlcHIobmV4dGxpbmUpKQotICAgICAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBub21hdGNocHJpbnRlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xv
Zygibm9tYXRjaDoiLCByZXByKGxpbmUpKQotICAgICAgICAgICAgICAgICAgICAgICAgbm9tYXRj
aHByaW50ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiICAgIGFuZDoi
LCByZXByKG5leHRsaW5lKSkKLSAgICAgICAgICAgICAgICBleHRyYWxpbmVzLmFwcGVuZChuZXh0
bGluZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJyZW1h
aW5zIHVubWF0Y2hlZDogJXIiICUgKGxpbmUsKSkKLSAgICAgICAgICAgICAgICBweXRlc3QuZmFp
bChzZWxmLl9sb2dfdGV4dCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9u
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDY1MDE3MWE5ZTljOTA5MDlkYTNjZTI3YmE1OTYzOGE1ZmM5YjE2NDUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9weXRob24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTc1ICswLDAgQEAKLSIiIiBQeXRo
b24gdGVzdCBkaXNjb3ZlcnksIHNldHVwIGFuZCBydW4gb2YgdGVzdCBmdW5jdGlvbnMuICIiIgot
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9m
dW5jdGlvbgotCi1pbXBvcnQgZm5tYXRjaAotaW1wb3J0IGluc3BlY3QKLWltcG9ydCBzeXMKLWlt
cG9ydCBvcwotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgd2FybmluZ3MKLWZyb20gdGV4dHdy
YXAgaW1wb3J0IGRlZGVudAotZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50Ci0KLQotaW1wb3J0
IHB5Ci1pbXBvcnQgc2l4Ci1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya2VyRXJyb3IKLWZy
b20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCi0KLWltcG9ydCBfcHl0ZXN0Ci1pbXBv
cnQgcGx1Z2d5Ci1mcm9tIF9weXRlc3QgaW1wb3J0IGZpeHR1cmVzCi1mcm9tIF9weXRlc3QgaW1w
b3J0IG1haW4KLWZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotZnJvbSBfcHl0ZXN0LmNv
bXBhdCBpbXBvcnQgKAotICAgIGlzY2xhc3MsIGlzZnVuY3Rpb24sIGlzX2dlbmVyYXRvciwgYXNj
aWlfZXNjYXBlZCwKLSAgICBSRUdFWF9UWVBFLCBTVFJJTkdfVFlQRVMsIE5vbmVUeXBlLCBOT1RT
RVQsCi0gICAgZ2V0X3JlYWxfZnVuYywgZ2V0ZnNsaW5lbm8sIHNhZmVfZ2V0YXR0ciwKLSAgICBz
YWZlX3N0ciwgZ2V0bG9jYXRpb24sIGVudW0sCi0pCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1w
b3J0IGZhaWwKLWZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCB0cmFuc2Zlcl9tYXJrZXJzCi0KLWN1
dGRpcjEgPSBweS5wYXRoLmxvY2FsKHBsdWdneS5fX2ZpbGVfXy5yc3RyaXAoIm9jIikpCi1jdXRk
aXIyID0gcHkucGF0aC5sb2NhbChfcHl0ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLWN1dGRpcjMg
PSBweS5wYXRoLmxvY2FsKHB5Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLQotCi1kZWYgZmlsdGVyX3Ry
YWNlYmFjayhlbnRyeSk6Ci0gICAgIiIiUmV0dXJuIFRydWUgaWYgYSBUcmFjZWJhY2tFbnRyeSBp
bnN0YW5jZSBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRyYWNlYmFja3M6Ci0gICAgKiBkeW5hbWlj
YWxseSBnZW5lcmF0ZWQgY29kZSAobm8gY29kZSB0byBzaG93IHVwIGZvciBpdCk7Ci0gICAgKiBp
bnRlcm5hbCB0cmFjZWJhY2sgZnJvbSBweXRlc3Qgb3IgaXRzIGludGVybmFsIGxpYnJhcmllcywg
cHkgYW5kIHBsdWdneS4KLSAgICAiIiIKLSAgICAjIGVudHJ5LnBhdGggbWlnaHQgc29tZXRpbWVz
IHJldHVybiBhIHN0ciBvYmplY3Qgd2hlbiB0aGUgZW50cnkKLSAgICAjIHBvaW50cyB0byBkeW5h
bWljYWxseSBnZW5lcmF0ZWQgY29kZQotICAgICMgc2VlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9w
eXRlc3QtZGV2L3B5L2lzc3Vlcy83MQotICAgIHJhd19maWxlbmFtZSA9IGVudHJ5LmZyYW1lLmNv
ZGUucmF3LmNvX2ZpbGVuYW1lCi0gICAgaXNfZ2VuZXJhdGVkID0gJzwnIGluIHJhd19maWxlbmFt
ZSBhbmQgJz4nIGluIHJhd19maWxlbmFtZQotICAgIGlmIGlzX2dlbmVyYXRlZDoKLSAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgIyBlbnRyeS5wYXRoIG1pZ2h0IHBvaW50IHRvIGFuIGluZXhpc3Rp
bmcgZmlsZSwgaW4gd2hpY2ggY2FzZSBpdCB3aWxsCi0gICAgIyBhbHNzbyByZXR1cm4gYSBzdHIg
b2JqZWN0LiBzZWUgIzExMzMKLSAgICBwID0gcHkucGF0aC5sb2NhbChlbnRyeS5wYXRoKQotICAg
IHJldHVybiBwICE9IGN1dGRpcjEgYW5kIG5vdCBwLnJlbHRvKGN1dGRpcjIpIGFuZCBub3QgcC5y
ZWx0byhjdXRkaXIzKQotCi0KLWRlZiBweW9ial9wcm9wZXJ0eShuYW1lKToKLSAgICBkZWYgZ2V0
KHNlbGYpOgotICAgICAgICBub2RlID0gc2VsZi5nZXRwYXJlbnQoZ2V0YXR0cihfX2ltcG9ydF9f
KCdweXRlc3QnKSwgbmFtZSkpCi0gICAgICAgIGlmIG5vZGUgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4gbm9kZS5vYmoKLSAgICBkb2MgPSAicHl0aG9uICVzIG9iamVjdCB0aGlzIG5v
ZGUgd2FzIGNvbGxlY3RlZCBmcm9tIChjYW4gYmUgTm9uZSkuIiAlICgKLSAgICAgICAgICBuYW1l
Lmxvd2VyKCksKQotICAgIHJldHVybiBwcm9wZXJ0eShnZXQsIE5vbmUsIE5vbmUsIGRvYykKLQot
Ci1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdy
b3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tZml4dHVyZXMnLCAnLS1mdW5j
YXJncycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InNo
b3dmaXh0dXJlcyIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InNo
b3cgYXZhaWxhYmxlIGZpeHR1cmVzLCBzb3J0ZWQgYnkgcGx1Z2luIGFwcGVhcmFuY2UiKQotICAg
IGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0tZml4dHVyZXMtcGVyLXRlc3QnLAotICAgICAg
ICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBkZXN0PSJzaG93X2ZpeHR1cmVzX3Blcl90
ZXN0IiwKLSAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgaGVscD0ic2hvdyBmaXh0dXJl
cyBwZXIgdGVzdCIsCi0gICAgKQotICAgIHBhcnNlci5hZGRpbmkoInVzZWZpeHR1cmVzIiwgdHlw
ZT0iYXJncyIsIGRlZmF1bHQ9W10sCi0gICAgICAgICAgICAgICAgICBoZWxwPSJsaXN0IG9mIGRl
ZmF1bHQgZml4dHVyZXMgdG8gYmUgdXNlZCB3aXRoIHRoaXMgcHJvamVjdCIpCi0gICAgcGFyc2Vy
LmFkZGluaSgicHl0aG9uX2ZpbGVzIiwgdHlwZT0iYXJncyIsCi0gICAgICAgICAgICAgICAgICBk
ZWZhdWx0PVsndGVzdF8qLnB5JywgJypfdGVzdC5weSddLAotICAgICAgICAgICAgICAgICAgaGVs
cD0iZ2xvYi1zdHlsZSBmaWxlIHBhdHRlcm5zIGZvciBQeXRob24gdGVzdCBtb2R1bGUgZGlzY292
ZXJ5IikKLSAgICBwYXJzZXIuYWRkaW5pKCJweXRob25fY2xhc3NlcyIsIHR5cGU9ImFyZ3MiLCBk
ZWZhdWx0PVsiVGVzdCIsIF0sCi0gICAgICAgICAgICAgICAgICBoZWxwPSJwcmVmaXhlcyBvciBn
bG9iIG5hbWVzIGZvciBQeXRob24gdGVzdCBjbGFzcyBkaXNjb3ZlcnkiKQotICAgIHBhcnNlci5h
ZGRpbmkoInB5dGhvbl9mdW5jdGlvbnMiLCB0eXBlPSJhcmdzIiwgZGVmYXVsdD1bInRlc3QiLCBd
LAotICAgICAgICAgICAgICAgICAgaGVscD0icHJlZml4ZXMgb3IgZ2xvYiBuYW1lcyBmb3IgUHl0
aG9uIHRlc3QgZnVuY3Rpb24gYW5kICIKLSAgICAgICAgICAgICAgICAgICJtZXRob2QgZGlzY292
ZXJ5IikKLQotICAgIGdyb3VwLmFkZG9wdGlvbigiLS1pbXBvcnQtbW9kZSIsIGRlZmF1bHQ9InBy
ZXBlbmQiLAotICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsicHJlcGVuZCIsICJhcHBlbmQi
XSwgZGVzdD0iaW1wb3J0bW9kZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InByZXBlbmQv
YXBwZW5kIHRvIHN5cy5wYXRoIHdoZW4gaW1wb3J0aW5nIHRlc3QgbW9kdWxlcywgIgotICAgICAg
ICAgICAgICAgICAgICAiZGVmYXVsdCBpcyB0byBwcmVwZW5kLiIpCi0KLQotZGVmIHB5dGVzdF9j
bWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLnNob3dmaXh0dXJlczoK
LSAgICAgICAgc2hvd2ZpeHR1cmVzKGNvbmZpZykKLSAgICAgICAgcmV0dXJuIDAKLSAgICBpZiBj
b25maWcub3B0aW9uLnNob3dfZml4dHVyZXNfcGVyX3Rlc3Q6Ci0gICAgICAgIHNob3dfZml4dHVy
ZXNfcGVyX3Rlc3QoY29uZmlnKQotICAgICAgICByZXR1cm4gMAotCi0KLWRlZiBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgotICAgICMgdGhvc2UgYWx0ZXJuYXRpdmUgc3BlbGxpbmdz
IGFyZSBjb21tb24gLSByYWlzZSBhIHNwZWNpZmljIGVycm9yIHRvIGFsZXJ0Ci0gICAgIyB0aGUg
dXNlcgotICAgIGFsdF9zcGVsbGluZ3MgPSBbJ3BhcmFtZXRlcml6ZScsICdwYXJhbWV0cmlzZScs
ICdwYXJhbWV0ZXJpc2UnXQotICAgIGZvciBhdHRyIGluIGFsdF9zcGVsbGluZ3M6Ci0gICAgICAg
IGlmIGhhc2F0dHIobWV0YWZ1bmMuZnVuY3Rpb24sIGF0dHIpOgotICAgICAgICAgICAgbXNnID0g
InswfSBoYXMgJ3sxfScsIHNwZWxsaW5nIHNob3VsZCBiZSAncGFyYW1ldHJpemUnIgotICAgICAg
ICAgICAgcmFpc2UgTWFya2VyRXJyb3IobXNnLmZvcm1hdChtZXRhZnVuYy5mdW5jdGlvbi5fX25h
bWVfXywgYXR0cikpCi0gICAgdHJ5OgotICAgICAgICBtYXJrZXJzID0gbWV0YWZ1bmMuZnVuY3Rp
b24ucGFyYW1ldHJpemUKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIHJldHVy
bgotICAgIGZvciBtYXJrZXIgaW4gbWFya2VyczoKLSAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJp
emUoKm1hcmtlci5hcmdzLCAqKm1hcmtlci5rd2FyZ3MpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1
cmUoY29uZmlnKToKLSAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRyaXplKGFyZ25hbWVzLCBhcmd2YWx1ZXMp
OiBjYWxsIGEgdGVzdCBmdW5jdGlvbiBtdWx0aXBsZSAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRpbWVzIHBhc3NpbmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0dXJuLiBhcmd2
YWx1ZXMgZ2VuZXJhbGx5ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmVlZHMgdG8g
YmUgYSBsaXN0IG9mIHZhbHVlcyBpZiBhcmduYW1lcyBzcGVjaWZpZXMgb25seSBvbmUgbmFtZSAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yIGEgbGlzdCBvZiB0dXBsZXMgb2YgdmFs
dWVzIGlmIGFyZ25hbWVzIHNwZWNpZmllcyBtdWx0aXBsZSBuYW1lcy4gIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJFeGFtcGxlOiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkgd291
bGQgbGVhZCB0byB0d28gY2FsbHMgb2YgdGhlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGVjb3JhdGVkIHRlc3QgZnVuY3Rpb24sIG9uZSB3aXRoIGFyZzE9MSBhbmQgYW5vdGhlciB3
aXRoIGFyZzE9Mi4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlZSBodHRwOi8vcHl0
ZXN0Lm9yZy9sYXRlc3QvcGFyYW1ldHJpemUuaHRtbCBmb3IgbW9yZSBpbmZvIGFuZCAiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4YW1wbGVzLiIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCi0gICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ1c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEsIGZpeHR1cmVu
YW1lMiwgLi4uKTogbWFyayB0ZXN0cyBhcyBuZWVkaW5nICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYWxsIG9mIHRoZSBzcGVjaWZpZWQgZml4dHVyZXMuIHNlZSBodHRwOi8vcHl0ZXN0
Lm9yZy9sYXRlc3QvZml4dHVyZS5odG1sI3VzZWZpeHR1cmVzICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCi0KLQotQGhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfcHlm
dW5jX2NhbGwocHlmdW5jaXRlbSk6Ci0gICAgdGVzdGZ1bmN0aW9uID0gcHlmdW5jaXRlbS5vYmoK
LSAgICBpZiBweWZ1bmNpdGVtLl9pc3lpZWxkZWRmdW5jdGlvbigpOgotICAgICAgICB0ZXN0ZnVu
Y3Rpb24oKnB5ZnVuY2l0ZW0uX2FyZ3MpCi0gICAgZWxzZToKLSAgICAgICAgZnVuY2FyZ3MgPSBw
eWZ1bmNpdGVtLmZ1bmNhcmdzCi0gICAgICAgIHRlc3RhcmdzID0ge30KLSAgICAgICAgZm9yIGFy
ZyBpbiBweWZ1bmNpdGVtLl9maXh0dXJlaW5mby5hcmduYW1lczoKLSAgICAgICAgICAgIHRlc3Rh
cmdzW2FyZ10gPSBmdW5jYXJnc1thcmddCi0gICAgICAgIHRlc3RmdW5jdGlvbigqKnRlc3Rhcmdz
KQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFy
ZW50KToKLSAgICBleHQgPSBwYXRoLmV4dAotICAgIGlmIGV4dCA9PSAiLnB5IjoKLSAgICAgICAg
aWYgbm90IHBhcmVudC5zZXNzaW9uLmlzaW5pdHBhdGgocGF0aCk6Ci0gICAgICAgICAgICBmb3Ig
cGF0IGluIHBhcmVudC5jb25maWcuZ2V0aW5pKCdweXRob25fZmlsZXMnKToKLSAgICAgICAgICAg
ICAgICBpZiBwYXRoLmZubWF0Y2gocGF0KToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlob29rID0g
cGFyZW50LnNlc3Npb24uZ2V0aG9va3Byb3h5KHBhdGgpCi0gICAgICAgIHJldHVybiBpaG9vay5w
eXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aD1wYXRoLCBwYXJlbnQ9cGFyZW50KQotCi0K
LWRlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aCwgcGFyZW50KToKLSAgICByZXR1
cm4gTW9kdWxlKHBhdGgsIHBhcmVudCkKLQotCi1AaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkK
LWRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToKLSAg
ICBvdXRjb21lID0geWllbGQKLSAgICByZXMgPSBvdXRjb21lLmdldF9yZXN1bHQoKQotICAgIGlm
IHJlcyBpcyBub3QgTm9uZToKLSAgICAgICAgcmV0dXJuCi0gICAgIyBub3RoaW5nIHdhcyBjb2xs
ZWN0ZWQgZWxzZXdoZXJlLCBsZXQncyBkbyBpdCBoZXJlCi0gICAgaWYgaXNjbGFzcyhvYmopOgot
ICAgICAgICBpZiBjb2xsZWN0b3IuaXN0ZXN0Y2xhc3Mob2JqLCBuYW1lKToKLSAgICAgICAgICAg
IENsYXNzID0gY29sbGVjdG9yLl9nZXRjdXN0b21jbGFzcygiQ2xhc3MiKQotICAgICAgICAgICAg
b3V0Y29tZS5mb3JjZV9yZXN1bHQoQ2xhc3MobmFtZSwgcGFyZW50PWNvbGxlY3RvcikpCi0gICAg
ZWxpZiBjb2xsZWN0b3IuaXN0ZXN0ZnVuY3Rpb24ob2JqLCBuYW1lKToKLSAgICAgICAgIyBtb2Nr
IHNlZW1zIHRvIHN0b3JlIHVuYm91bmQgbWV0aG9kcyAoaXNzdWU0NzMpLCBub3JtYWxpemUgaXQK
LSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICJfX2Z1bmNfXyIsIG9iaikKLSAgICAgICAgIyBX
ZSBuZWVkIHRvIHRyeSBhbmQgdW53cmFwIHRoZSBmdW5jdGlvbiBpZiBpdCdzIGEgZnVuY3Rvb2xz
LnBhcnRpYWwKLSAgICAgICAgIyBvciBhIGZ1bnRvb2xzLndyYXBwZWQuCi0gICAgICAgICMgV2Ug
bXVzbid0IGlmIGl0J3MgYmVlbiB3cmFwcGVkIHdpdGggbW9jay5wYXRjaCAocHl0aG9uIDIgb25s
eSkKLSAgICAgICAgaWYgbm90IChpc2Z1bmN0aW9uKG9iaikgb3IgaXNmdW5jdGlvbihnZXRfcmVh
bF9mdW5jKG9iaikpKToKLSAgICAgICAgICAgIGNvbGxlY3Rvci53YXJuKGNvZGU9IkMyIiwgbWVz
c2FnZT0iY2Fubm90IGNvbGxlY3QgJXIgYmVjYXVzZSBpdCBpcyBub3QgYSBmdW5jdGlvbi4iCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAlIG5hbWUsICkKLSAgICAgICAgZWxpZiBnZXRhdHRy
KG9iaiwgIl9fdGVzdF9fIiwgVHJ1ZSk6Ci0gICAgICAgICAgICBpZiBpc19nZW5lcmF0b3Iob2Jq
KToKLSAgICAgICAgICAgICAgICByZXMgPSBHZW5lcmF0b3IobmFtZSwgcGFyZW50PWNvbGxlY3Rv
cikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVzID0gbGlzdChjb2xsZWN0
b3IuX2dlbmZ1bmN0aW9ucyhuYW1lLCBvYmopKQotICAgICAgICAgICAgb3V0Y29tZS5mb3JjZV9y
ZXN1bHQocmVzKQotCi0KLWRlZiBweXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChjb25maWcsIHZh
bCwgYXJnbmFtZT1Ob25lKToKLSAgICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIFB5b2JqQ29udGV4
dChvYmplY3QpOgotICAgIG1vZHVsZSA9IHB5b2JqX3Byb3BlcnR5KCJNb2R1bGUiKQotICAgIGNs
cyA9IHB5b2JqX3Byb3BlcnR5KCJDbGFzcyIpCi0gICAgaW5zdGFuY2UgPSBweW9ial9wcm9wZXJ0
eSgiSW5zdGFuY2UiKQotCi0KLWNsYXNzIFB5b2JqTWl4aW4oUHlvYmpDb250ZXh0KToKLSAgICBk
ZWYgb2JqKCk6Ci0gICAgICAgIGRlZiBmZ2V0KHNlbGYpOgotICAgICAgICAgICAgb2JqID0gZ2V0
YXR0cihzZWxmLCAnX29iaicsIE5vbmUpCi0gICAgICAgICAgICBpZiBvYmogaXMgTm9uZToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9vYmogPSBvYmogPSBzZWxmLl9nZXRvYmooKQotICAgICAgICAg
ICAgcmV0dXJuIG9iagotCi0gICAgICAgIGRlZiBmc2V0KHNlbGYsIHZhbHVlKToKLSAgICAgICAg
ICAgIHNlbGYuX29iaiA9IHZhbHVlCi0KLSAgICAgICAgcmV0dXJuIHByb3BlcnR5KGZnZXQsIGZz
ZXQsIE5vbmUsICJ1bmRlcmx5aW5nIHB5dGhvbiBvYmplY3QiKQotCi0gICAgb2JqID0gb2JqKCkK
LQotICAgIGRlZiBfZ2V0b2JqKHNlbGYpOgotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLnBh
cmVudC5vYmosIHNlbGYubmFtZSkKLQotICAgIGRlZiBnZXRtb2RwYXRoKHNlbGYsIHN0b3BhdG1v
ZHVsZT1UcnVlLCBpbmNsdWRlbW9kdWxlPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBweXRo
b24gcGF0aCByZWxhdGl2ZSB0byB0aGUgY29udGFpbmluZyBtb2R1bGUuICIiIgotICAgICAgICBj
aGFpbiA9IHNlbGYubGlzdGNoYWluKCkKLSAgICAgICAgY2hhaW4ucmV2ZXJzZSgpCi0gICAgICAg
IHBhcnRzID0gW10KLSAgICAgICAgZm9yIG5vZGUgaW4gY2hhaW46Ci0gICAgICAgICAgICBpZiBp
c2luc3RhbmNlKG5vZGUsIEluc3RhbmNlKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgbmFtZSA9IG5vZGUubmFtZQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2Rl
LCBNb2R1bGUpOgotICAgICAgICAgICAgICAgIG5hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG5hbWUp
WzBdCi0gICAgICAgICAgICAgICAgaWYgc3RvcGF0bW9kdWxlOgotICAgICAgICAgICAgICAgICAg
ICBpZiBpbmNsdWRlbW9kdWxlOgotICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5k
KG5hbWUpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBwYXJ0cy5hcHBl
bmQobmFtZSkKLSAgICAgICAgcGFydHMucmV2ZXJzZSgpCi0gICAgICAgIHMgPSAiLiIuam9pbihw
YXJ0cykKLSAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgiLlsiLCAiWyIpCi0KLSAgICBkZWYgX2dl
dGZzbGluZW5vKHNlbGYpOgotICAgICAgICByZXR1cm4gZ2V0ZnNsaW5lbm8oc2VsZi5vYmopCi0K
LSAgICBkZWYgcmVwb3J0aW5mbyhzZWxmKToKLSAgICAgICAgIyBYWFggY2FjaGluZz8KLSAgICAg
ICAgb2JqID0gc2VsZi5vYmoKLSAgICAgICAgY29tcGF0X2NvX2ZpcnN0bGluZW5vID0gZ2V0YXR0
cihvYmosICdjb21wYXRfY29fZmlyc3RsaW5lbm8nLCBOb25lKQotICAgICAgICBpZiBpc2luc3Rh
bmNlKGNvbXBhdF9jb19maXJzdGxpbmVubywgaW50KToKLSAgICAgICAgICAgICMgbm9zZSBjb21w
YXRpYmlsaXR5Ci0gICAgICAgICAgICBmc3BhdGggPSBzeXMubW9kdWxlc1tvYmouX19tb2R1bGVf
X10uX19maWxlX18KLSAgICAgICAgICAgIGlmIGZzcGF0aC5lbmRzd2l0aCgiLnB5YyIpOgotICAg
ICAgICAgICAgICAgIGZzcGF0aCA9IGZzcGF0aFs6LTFdCi0gICAgICAgICAgICBsaW5lbm8gPSBj
b21wYXRfY29fZmlyc3RsaW5lbm8KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZzcGF0aCwg
bGluZW5vID0gZ2V0ZnNsaW5lbm8ob2JqKQotICAgICAgICBtb2RwYXRoID0gc2VsZi5nZXRtb2Rw
YXRoKCkKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGluZW5vLCBpbnQpCi0gICAgICAgIHJl
dHVybiBmc3BhdGgsIGxpbmVubywgbW9kcGF0aAotCi0KLWNsYXNzIFB5Q29sbGVjdG9yKFB5b2Jq
TWl4aW4sIG1haW4uQ29sbGVjdG9yKToKLQotICAgIGRlZiBmdW5jbmFtZWZpbHRlcihzZWxmLCBu
YW1lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX21hdGNoZXNfcHJlZml4X29yX2dsb2Jfb3B0aW9u
KCdweXRob25fZnVuY3Rpb25zJywgbmFtZSkKLQotICAgIGRlZiBpc25vc2V0ZXN0KHNlbGYsIG9i
aik6Ci0gICAgICAgICIiIiBMb29rIGZvciB0aGUgX190ZXN0X18gYXR0cmlidXRlLCB3aGljaCBp
cyBhcHBsaWVkIGJ5IHRoZQotICAgICAgICBAbm9zZS50b29scy5pc3Rlc3QgZGVjb3JhdG9yCi0g
ICAgICAgICIiIgotICAgICAgICAjIFdlIGV4cGxpY2l0bHkgY2hlY2sgZm9yICJpcyBUcnVlIiBo
ZXJlIHRvIG5vdCBtaXN0YWtlbmx5IHRyZWF0Ci0gICAgICAgICMgY2xhc3NlcyB3aXRoIGEgY3Vz
dG9tIF9fZ2V0YXR0cl9fIHJldHVybmluZyBzb21ldGhpbmcgdHJ1dGh5IChsaWtlIGEKLSAgICAg
ICAgIyBmdW5jdGlvbikgYXMgdGVzdCBjbGFzc2VzLgotICAgICAgICByZXR1cm4gc2FmZV9nZXRh
dHRyKG9iaiwgJ19fdGVzdF9fJywgRmFsc2UpIGlzIFRydWUKLQotICAgIGRlZiBjbGFzc25hbWVm
aWx0ZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9tYXRjaGVzX3ByZWZpeF9v
cl9nbG9iX29wdGlvbigncHl0aG9uX2NsYXNzZXMnLCBuYW1lKQotCi0gICAgZGVmIGlzdGVzdGZ1
bmN0aW9uKHNlbGYsIG9iaiwgbmFtZSk6Ci0gICAgICAgIGlmIHNlbGYuZnVuY25hbWVmaWx0ZXIo
bmFtZSkgb3Igc2VsZi5pc25vc2V0ZXN0KG9iaik6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNl
KG9iaiwgc3RhdGljbWV0aG9kKToKLSAgICAgICAgICAgICAgICAjIHN0YXRpYyBtZXRob2RzIG5l
ZWQgdG8gYmUgdW53cmFwcGVkCi0gICAgICAgICAgICAgICAgb2JqID0gc2FmZV9nZXRhdHRyKG9i
aiwgJ19fZnVuY19fJywgRmFsc2UpCi0gICAgICAgICAgICAgICAgaWYgb2JqIGlzIEZhbHNlOgot
ICAgICAgICAgICAgICAgICAgICAjIFB5dGhvbiAyLjYgd3JhcHMgaW4gYSBkaWZmZXJlbnQgd2F5
IHRoYXQgd2Ugd29uJ3QgdHJ5IHRvIGhhbmRsZQotICAgICAgICAgICAgICAgICAgICBtc2cgPSAi
Y2Fubm90IGNvbGxlY3Qgc3RhdGljIG1ldGhvZCAlciBiZWNhdXNlICIgXAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaXQgaXMgbm90IGEgZnVuY3Rpb24gKGFsd2F5cyB0aGUgY2FzZSBpbiBQ
eXRob24gMi42KSIKLSAgICAgICAgICAgICAgICAgICAgc2VsZi53YXJuKAotICAgICAgICAgICAg
ICAgICAgICAgICAgY29kZT0iQzIiLCBtZXNzYWdlPW1zZyAlIG5hbWUpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAgICAg
ICBzYWZlX2dldGF0dHIob2JqLCAiX19jYWxsX18iLCBGYWxzZSkgYW5kIGZpeHR1cmVzLmdldGZp
eHR1cmVtYXJrZXIob2JqKSBpcyBOb25lCi0gICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBpc3Rlc3RjbGFzcyhzZWxmLCBvYmos
IG5hbWUpOgotICAgICAgICByZXR1cm4gc2VsZi5jbGFzc25hbWVmaWx0ZXIobmFtZSkgb3Igc2Vs
Zi5pc25vc2V0ZXN0KG9iaikKLQotICAgIGRlZiBfbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRp
b24oc2VsZiwgb3B0aW9uX25hbWUsIG5hbWUpOgotICAgICAgICAiIiIKLSAgICAgICAgY2hlY2tz
IGlmIHRoZSBnaXZlbiBuYW1lIG1hdGNoZXMgdGhlIHByZWZpeCBvciBnbG9iLXBhdHRlcm4gZGVm
aW5lZAotICAgICAgICBpbiBpbmkgY29uZmlndXJhdGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAg
IGZvciBvcHRpb24gaW4gc2VsZi5jb25maWcuZ2V0aW5pKG9wdGlvbl9uYW1lKToKLSAgICAgICAg
ICAgIGlmIG5hbWUuc3RhcnRzd2l0aChvcHRpb24pOgotICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCi0gICAgICAgICAgICAjIGNoZWNrIHRoYXQgbmFtZSBsb29rcyBsaWtlIGEgZ2xvYi1zdHJp
bmcgYmVmb3JlIGNhbGxpbmcgZm5tYXRjaAotICAgICAgICAgICAgIyBiZWNhdXNlIHRoaXMgaXMg
Y2FsbGVkIGZvciBldmVyeSBuYW1lIGluIGVhY2ggY29sbGVjdGVkIG1vZHVsZSwKLSAgICAgICAg
ICAgICMgYW5kIGZubWF0Y2ggaXMgc29tZXdoYXQgZXhwZW5zaXZlIHRvIGNhbGwKLSAgICAgICAg
ICAgIGVsaWYgKCcqJyBpbiBvcHRpb24gb3IgJz8nIGluIG9wdGlvbiBvciAnWycgaW4gb3B0aW9u
KSBhbmQgXAotICAgICAgICAgICAgICAgICAgICBmbm1hdGNoLmZubWF0Y2gobmFtZSwgb3B0aW9u
KToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQot
ICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBpZiBub3QgZ2V0YXR0cihzZWxmLm9iaiwg
Il9fdGVzdF9fIiwgVHJ1ZSk6Ci0gICAgICAgICAgICByZXR1cm4gW10KLQotICAgICAgICAjIE5C
LiB3ZSBhdm9pZCByYW5kb20gZ2V0YXR0cnMgYW5kIHBlZWsgaW4gdGhlIF9fZGljdF9fIGluc3Rl
YWQKLSAgICAgICAgIyAoWFhYIG9yaWdpbmFsbHkgaW50cm9kdWNlZCBmcm9tIGEgUHlQeSBuZWVk
LCBzdGlsbCB0cnVlPykKLSAgICAgICAgZGljdHMgPSBbZ2V0YXR0cihzZWxmLm9iaiwgJ19fZGlj
dF9fJywge30pXQotICAgICAgICBmb3IgYmFzZWNscyBpbiBpbnNwZWN0LmdldG1ybyhzZWxmLm9i
ai5fX2NsYXNzX18pOgotICAgICAgICAgICAgZGljdHMuYXBwZW5kKGJhc2VjbHMuX19kaWN0X18p
Ci0gICAgICAgIHNlZW4gPSB7fQotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBmb3IgZGlj
IGluIGRpY3RzOgotICAgICAgICAgICAgZm9yIG5hbWUsIG9iaiBpbiBsaXN0KGRpYy5pdGVtcygp
KToKLSAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHNlZW46Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgc2VlbltuYW1lXSA9IFRydWUKLSAgICAgICAgICAg
ICAgICByZXMgPSBzZWxmLl9tYWtlaXRlbShuYW1lLCBvYmopCi0gICAgICAgICAgICAgICAgaWYg
cmVzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UocmVzLCBsaXN0KToKLSAgICAgICAgICAgICAgICAgICAgcmVz
ID0gW3Jlc10KLSAgICAgICAgICAgICAgICB2YWx1ZXMuZXh0ZW5kKHJlcykKLSAgICAgICAgdmFs
dWVzLnNvcnQoa2V5PWxhbWJkYSBpdGVtOiBpdGVtLnJlcG9ydGluZm8oKVs6Ml0pCi0gICAgICAg
IHJldHVybiB2YWx1ZXMKLQotICAgIGRlZiBtYWtlaXRlbShzZWxmLCBuYW1lLCBvYmopOgotICAg
ICAgICB3YXJuaW5ncy53YXJuKGRlcHJlY2F0ZWQuQ09MTEVDVE9SX01BS0VJVEVNLCBzdGFja2xl
dmVsPTIpCi0gICAgICAgIHNlbGYuX21ha2VpdGVtKG5hbWUsIG9iaikKLQotICAgIGRlZiBfbWFr
ZWl0ZW0oc2VsZiwgbmFtZSwgb2JqKToKLSAgICAgICAgIyBhc3NlcnQgc2VsZi5paG9vay5mc3Bh
dGggPT0gc2VsZi5mc3BhdGgsIHNlbGYKLSAgICAgICAgcmV0dXJuIHNlbGYuaWhvb2sucHl0ZXN0
X3B5Y29sbGVjdF9tYWtlaXRlbSgKLSAgICAgICAgICAgIGNvbGxlY3Rvcj1zZWxmLCBuYW1lPW5h
bWUsIG9iaj1vYmopCi0KLSAgICBkZWYgX2dlbmZ1bmN0aW9ucyhzZWxmLCBuYW1lLCBmdW5jb2Jq
KToKLSAgICAgICAgbW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxlKS5vYmoKLSAgICAgICAg
Y2xzY29sID0gc2VsZi5nZXRwYXJlbnQoQ2xhc3MpCi0gICAgICAgIGNscyA9IGNsc2NvbCBhbmQg
Y2xzY29sLm9iaiBvciBOb25lCi0gICAgICAgIHRyYW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xz
LCBtb2R1bGUpCi0gICAgICAgIGZtID0gc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAg
ICAgICBmaXh0dXJlaW5mbyA9IGZtLmdldGZpeHR1cmVpbmZvKHNlbGYsIGZ1bmNvYmosIGNscykK
LSAgICAgICAgbWV0YWZ1bmMgPSBNZXRhZnVuYyhmdW5jb2JqLCBmaXh0dXJlaW5mbywgc2VsZi5j
b25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzPWNscywgbW9kdWxlPW1vZHVs
ZSkKLSAgICAgICAgbWV0aG9kcyA9IFtdCi0gICAgICAgIGlmIGhhc2F0dHIobW9kdWxlLCAicHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzIik6Ci0gICAgICAgICAgICBtZXRob2RzLmFwcGVuZChtb2R1bGUu
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKQotICAgICAgICBpZiBoYXNhdHRyKGNscywgInB5dGVzdF9n
ZW5lcmF0ZV90ZXN0cyIpOgotICAgICAgICAgICAgbWV0aG9kcy5hcHBlbmQoY2xzKCkucHl0ZXN0
X2dlbmVyYXRlX3Rlc3RzKQotICAgICAgICBpZiBtZXRob2RzOgotICAgICAgICAgICAgc2VsZi5p
aG9vay5weXRlc3RfZ2VuZXJhdGVfdGVzdHMuY2FsbF9leHRyYShtZXRob2RzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0KG1ldGFm
dW5jPW1ldGFmdW5jKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuaWhvb2sucHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jPW1ldGFmdW5jKQotCi0gICAgICAgIEZ1bmN0aW9u
ID0gc2VsZi5fZ2V0Y3VzdG9tY2xhc3MoIkZ1bmN0aW9uIikKLSAgICAgICAgaWYgbm90IG1ldGFm
dW5jLl9jYWxsczoKLSAgICAgICAgICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWUsIHBhcmVudD1zZWxm
LCBmaXh0dXJlaW5mbz1maXh0dXJlaW5mbykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMg
YWRkIGZ1bmNhcmdzKCkgYXMgZml4dHVyZWRlZnMgdG8gZml4dHVyZWluZm8uYXJnMmZpeHR1cmVk
ZWZzCi0gICAgICAgICAgICBmaXh0dXJlcy5hZGRfZnVuY2FyZ19wc2V1ZG9fZml4dHVyZV9kZWYo
c2VsZiwgbWV0YWZ1bmMsIGZtKQotCi0gICAgICAgICAgICBmb3IgY2FsbHNwZWMgaW4gbWV0YWZ1
bmMuX2NhbGxzOgotICAgICAgICAgICAgICAgIHN1Ym5hbWUgPSAiJXNbJXNdIiAlIChuYW1lLCBj
YWxsc3BlYy5pZCkKLSAgICAgICAgICAgICAgICB5aWVsZCBGdW5jdGlvbihuYW1lPXN1Ym5hbWUs
IHBhcmVudD1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzcGVjPWNh
bGxzcGVjLCBjYWxsb2JqPWZ1bmNvYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zml4dHVyZWluZm89Zml4dHVyZWluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a2V5d29yZHM9e2NhbGxzcGVjLmlkOiBUcnVlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvcmlnaW5hbG5hbWU9bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
Ci0KLQotY2xhc3MgTW9kdWxlKG1haW4uRmlsZSwgUHlDb2xsZWN0b3IpOgotICAgICIiIiBDb2xs
ZWN0b3IgZm9yIHRlc3QgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLiAiIiIKLQotICAgIGRlZiBfZ2V0
b2JqKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5faW1wb3J0dGVzdG1vZHVsZSgpCi0KLSAg
ICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdl
ci5wYXJzZWZhY3RvcmllcyhzZWxmKQotICAgICAgICByZXR1cm4gc3VwZXIoTW9kdWxlLCBzZWxm
KS5jb2xsZWN0KCkKLQotICAgIGRlZiBfaW1wb3J0dGVzdG1vZHVsZShzZWxmKToKLSAgICAgICAg
IyB3ZSBhc3N1bWUgd2UgYXJlIG9ubHkgY2FsbGVkIG9uY2UgcGVyIG1vZHVsZQotICAgICAgICBp
bXBvcnRtb2RlID0gc2VsZi5jb25maWcuZ2V0b3B0aW9uKCItLWltcG9ydC1tb2RlIikKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgbW9kID0gc2VsZi5mc3BhdGgucHlpbXBvcnQoZW5zdXJlc3lz
cGF0aD1pbXBvcnRtb2RlKQotICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICAg
ICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAgICAgICAgICAgICAgICBfcHl0ZXN0Ll9jb2Rl
LkV4Y2VwdGlvbkluZm8oKS5nZXRyZXByKHN0eWxlPSJzaG9ydCIpKQotICAgICAgICBleGNlcHQg
c2VsZi5mc3BhdGguSW1wb3J0TWlzbWF0Y2hFcnJvcjoKLSAgICAgICAgICAgIGUgPSBzeXMuZXhj
X2luZm8oKVsxXQotICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAg
ICAgICAgICAgImltcG9ydCBmaWxlIG1pc21hdGNoOlxuIgotICAgICAgICAgICAgICAgICJpbXBv
cnRlZCBtb2R1bGUgJXIgaGFzIHRoaXMgX19maWxlX18gYXR0cmlidXRlOlxuIgotICAgICAgICAg
ICAgICAgICIgICVzXG4iCi0gICAgICAgICAgICAgICAgIndoaWNoIGlzIG5vdCB0aGUgc2FtZSBh
cyB0aGUgdGVzdCBmaWxlIHdlIHdhbnQgdG8gY29sbGVjdDpcbiIKLSAgICAgICAgICAgICAgICAi
ICAlc1xuIgotICAgICAgICAgICAgICAgICJISU5UOiByZW1vdmUgX19weWNhY2hlX18gLyAucHlj
IGZpbGVzIGFuZC9vciB1c2UgYSAiCi0gICAgICAgICAgICAgICAgInVuaXF1ZSBiYXNlbmFtZSBm
b3IgeW91ciB0ZXN0IGZpbGUgbW9kdWxlcyIKLSAgICAgICAgICAgICAgICAlIGUuYXJncwotICAg
ICAgICAgICAgKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICBmcm9t
IF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9uSW5mbwotICAgICAgICAgICAgZXhj
X2luZm8gPSBFeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLmdldG9w
dGlvbigndmVyYm9zZScpIDwgMjoKLSAgICAgICAgICAgICAgICBleGNfaW5mby50cmFjZWJhY2sg
PSBleGNfaW5mby50cmFjZWJhY2suZmlsdGVyKGZpbHRlcl90cmFjZWJhY2spCi0gICAgICAgICAg
ICBleGNfcmVwciA9IGV4Y19pbmZvLmdldHJlcHIoc3R5bGU9J3Nob3J0JykgaWYgZXhjX2luZm8u
dHJhY2ViYWNrIGVsc2UgZXhjX2luZm8uZXhjb25seSgpCi0gICAgICAgICAgICBmb3JtYXR0ZWRf
dGIgPSBzYWZlX3N0cihleGNfcmVwcikKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuQ29sbGVjdEVy
cm9yKAotICAgICAgICAgICAgICAgICJJbXBvcnRFcnJvciB3aGlsZSBpbXBvcnRpbmcgdGVzdCBt
b2R1bGUgJ3tmc3BhdGh9Jy5cbiIKLSAgICAgICAgICAgICAgICAiSGludDogbWFrZSBzdXJlIHlv
dXIgdGVzdCBtb2R1bGVzL3BhY2thZ2VzIGhhdmUgdmFsaWQgUHl0aG9uIG5hbWVzLlxuIgotICAg
ICAgICAgICAgICAgICJUcmFjZWJhY2s6XG4iCi0gICAgICAgICAgICAgICAgInt0cmFjZWJhY2t9
Ii5mb3JtYXQoZnNwYXRoPXNlbGYuZnNwYXRoLCB0cmFjZWJhY2s9Zm9ybWF0dGVkX3RiKQotICAg
ICAgICAgICAgKQotICAgICAgICBleGNlcHQgX3B5dGVzdC5ydW5uZXIuU2tpcHBlZCBhcyBlOgot
ICAgICAgICAgICAgaWYgZS5hbGxvd19tb2R1bGVfbGV2ZWw6Ci0gICAgICAgICAgICAgICAgcmFp
c2UKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuQ29sbGVjdEVycm9yKAotICAgICAgICAgICAgICAg
ICJVc2luZyBweXRlc3Quc2tpcCBvdXRzaWRlIG9mIGEgdGVzdCBpcyBub3QgYWxsb3dlZC4gIgot
ICAgICAgICAgICAgICAgICJUbyBkZWNvcmF0ZSBhIHRlc3QgZnVuY3Rpb24sIHVzZSB0aGUgQHB5
dGVzdC5tYXJrLnNraXAgIgotICAgICAgICAgICAgICAgICJvciBAcHl0ZXN0Lm1hcmsuc2tpcGlm
IGRlY29yYXRvcnMgaW5zdGVhZCwgYW5kIHRvIHNraXAgYSAiCi0gICAgICAgICAgICAgICAgIm1v
ZHVsZSB1c2UgYHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay57c2tpcCxza2lwaWZ9LiIKLSAgICAg
ICAgICAgICkKLSAgICAgICAgc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5jb25zaWRlcl9tb2R1
bGUobW9kKQotICAgICAgICByZXR1cm4gbW9kCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAg
ICAgIHNldHVwX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICJz
ZXRVcE1vZHVsZSIpCi0gICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBOb25lOgotICAgICAgICAg
ICAgc2V0dXBfbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNl
dHVwX21vZHVsZSIpCi0gICAgICAgIGlmIHNldHVwX21vZHVsZSBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIHNldHVwX21vZHVsZSgpCi0KLSAgICAgICAgdGVhcmRvd25fbW9kdWxlID0gX2dldF94
dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgJ3RlYXJEb3duTW9kdWxlJykKLSAgICAgICAg
aWYgdGVhcmRvd25fbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICB0ZWFyZG93bl9tb2R1bGUg
PSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAndGVhcmRvd25fbW9kdWxlJykK
LSAgICAgICAgaWYgdGVhcmRvd25fbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2Vs
Zi5hZGRmaW5hbGl6ZXIodGVhcmRvd25fbW9kdWxlKQotCi0KLWRlZiBfZ2V0X3h1bml0X3NldHVw
X3RlYXJkb3duKGhvbGRlciwgYXR0cl9uYW1lLCBwYXJhbV9vYmo9Tm9uZSk6Ci0gICAgIiIiCi0g
ICAgUmV0dXJuIGEgY2FsbGFibGUgdG8gcGVyZm9ybSB4dW5pdC1zdHlsZSBzZXR1cCBvciB0ZWFy
ZG93biBpZgotICAgIHRoZSBmdW5jdGlvbiBleGlzdHMgaW4gdGhlIGBgaG9sZGVyYGAgb2JqZWN0
LgotICAgIFRoZSBgYHBhcmFtX29iamBgIHBhcmFtZXRlciBpcyB0aGUgcGFyYW1ldGVyIHdoaWNo
IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbgotICAgIHdoZW4gdGhlIGNhbGxhYmxlIGlz
IGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cywgZGVmYXVsdHMgdG8gdGhlIGBgaG9sZGVyYGAgb2Jq
ZWN0LgotICAgIFJldHVybiBgYE5vbmVgYCBpZiBhIHN1aXRhYmxlIGNhbGxhYmxlIGlzIG5vdCBm
b3VuZC4KLSAgICAiIiIKLSAgICBwYXJhbV9vYmogPSBwYXJhbV9vYmogaWYgcGFyYW1fb2JqIGlz
IG5vdCBOb25lIGVsc2UgaG9sZGVyCi0gICAgcmVzdWx0ID0gX2dldF94dW5pdF9mdW5jKGhvbGRl
ciwgYXR0cl9uYW1lKQotICAgIGlmIHJlc3VsdCBpcyBub3QgTm9uZToKLSAgICAgICAgYXJnX2Nv
dW50ID0gcmVzdWx0Ll9fY29kZV9fLmNvX2FyZ2NvdW50Ci0gICAgICAgIGlmIGluc3BlY3QuaXNt
ZXRob2QocmVzdWx0KToKLSAgICAgICAgICAgIGFyZ19jb3VudCAtPSAxCi0gICAgICAgIGlmIGFy
Z19jb3VudDoKLSAgICAgICAgICAgIHJldHVybiBsYW1iZGE6IHJlc3VsdChwYXJhbV9vYmopCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIF9nZXRfeHVu
aXRfZnVuYyhvYmosIG5hbWUpOgotICAgICIiIlJldHVybiB0aGUgYXR0cmlidXRlIGZyb20gdGhl
IGdpdmVuIG9iamVjdCB0byBiZSB1c2VkIGFzIGEgc2V0dXAvdGVhcmRvd24KLSAgICB4dW5pdC1z
dHlsZSBmdW5jdGlvbiwgYnV0IG9ubHkgaWYgbm90IG1hcmtlZCBhcyBhIGZpeHR1cmUgdG8KLSAg
ICBhdm9pZCBjYWxsaW5nIGl0IHR3aWNlLgotICAgICIiIgotICAgIG1ldGggPSBnZXRhdHRyKG9i
aiwgbmFtZSwgTm9uZSkKLSAgICBpZiBmaXh0dXJlcy5nZXRmaXh0dXJlbWFya2VyKG1ldGgpIGlz
IE5vbmU6Ci0gICAgICAgIHJldHVybiBtZXRoCi0KLQotY2xhc3MgQ2xhc3MoUHlDb2xsZWN0b3Ip
OgotICAgICIiIiBDb2xsZWN0b3IgZm9yIHRlc3QgbWV0aG9kcy4gIiIiCi0KLSAgICBkZWYgY29s
bGVjdChzZWxmKToKLSAgICAgICAgaWYgbm90IHNhZmVfZ2V0YXR0cihzZWxmLm9iaiwgIl9fdGVz
dF9fIiwgVHJ1ZSk6Ci0gICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgaWYgaGFzaW5pdChz
ZWxmLm9iaik6Ci0gICAgICAgICAgICBzZWxmLndhcm4oIkMxIiwgImNhbm5vdCBjb2xsZWN0IHRl
c3QgY2xhc3MgJXIgYmVjYXVzZSBpdCBoYXMgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgIl9f
aW5pdF9fIGNvbnN0cnVjdG9yIiAlIHNlbGYub2JqLl9fbmFtZV9fKQotICAgICAgICAgICAgcmV0
dXJuIFtdCi0gICAgICAgIGVsaWYgaGFzbmV3KHNlbGYub2JqKToKLSAgICAgICAgICAgIHNlbGYu
d2FybigiQzEiLCAiY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAlciBiZWNhdXNlIGl0IGhhcyBh
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19uZXdfXyBjb25zdHJ1Y3RvciIgJSBz
ZWxmLm9iai5fX25hbWVfXykKLSAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICByZXR1cm4g
W3NlbGYuX2dldGN1c3RvbWNsYXNzKCJJbnN0YW5jZSIpKG5hbWU9IigpIiwgcGFyZW50PXNlbGYp
XQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBzZXR1cF9jbGFzcyA9IF9nZXRfeHVu
aXRfZnVuYyhzZWxmLm9iaiwgJ3NldHVwX2NsYXNzJykKLSAgICAgICAgaWYgc2V0dXBfY2xhc3Mg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9jbGFzcyA9IGdldGF0dHIoc2V0dXBfY2xh
c3MsICdpbV9mdW5jJywgc2V0dXBfY2xhc3MpCi0gICAgICAgICAgICBzZXR1cF9jbGFzcyA9IGdl
dGF0dHIoc2V0dXBfY2xhc3MsICdfX2Z1bmNfXycsIHNldHVwX2NsYXNzKQotICAgICAgICAgICAg
c2V0dXBfY2xhc3Moc2VsZi5vYmopCi0KLSAgICAgICAgZmluX2NsYXNzID0gZ2V0YXR0cihzZWxm
Lm9iaiwgJ3RlYXJkb3duX2NsYXNzJywgTm9uZSkKLSAgICAgICAgaWYgZmluX2NsYXNzIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgZmluX2NsYXNzID0gZ2V0YXR0cihmaW5fY2xhc3MsICdpbV9m
dW5jJywgZmluX2NsYXNzKQotICAgICAgICAgICAgZmluX2NsYXNzID0gZ2V0YXR0cihmaW5fY2xh
c3MsICdfX2Z1bmNfXycsIGZpbl9jbGFzcykKLSAgICAgICAgICAgIHNlbGYuYWRkZmluYWxpemVy
KGxhbWJkYTogZmluX2NsYXNzKHNlbGYub2JqKSkKLQotCi1jbGFzcyBJbnN0YW5jZShQeUNvbGxl
Y3Rvcik6Ci0gICAgZGVmIF9nZXRvYmooc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnBhcmVu
dC5vYmooKQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuc2Vzc2lvbi5f
Zml4dHVyZW1hbmFnZXIucGFyc2VmYWN0b3JpZXMoc2VsZikKLSAgICAgICAgcmV0dXJuIHN1cGVy
KEluc3RhbmNlLCBzZWxmKS5jb2xsZWN0KCkKLQotICAgIGRlZiBuZXdpbnN0YW5jZShzZWxmKToK
LSAgICAgICAgc2VsZi5vYmogPSBzZWxmLl9nZXRvYmooKQotICAgICAgICByZXR1cm4gc2VsZi5v
YmoKLQotCi1jbGFzcyBGdW5jdGlvbk1peGluKFB5b2JqTWl4aW4pOgotICAgICIiIiBtaXhpbiBm
b3IgdGhlIGNvZGUgY29tbW9uIHRvIEZ1bmN0aW9uIGFuZCBHZW5lcmF0b3IuCi0gICAgIiIiCi0K
LSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgICIiIiBwZXJmb3JtIHNldHVwIGZvciB0aGlz
IHRlc3QgZnVuY3Rpb24uICIiIgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfcHJlc2VydmVk
cGFyZW50Jyk6Ci0gICAgICAgICAgICBvYmogPSBzZWxmLl9wcmVzZXJ2ZWRwYXJlbnQKLSAgICAg
ICAgZWxpZiBpc2luc3RhbmNlKHNlbGYucGFyZW50LCBJbnN0YW5jZSk6Ci0gICAgICAgICAgICBv
YmogPSBzZWxmLnBhcmVudC5uZXdpbnN0YW5jZSgpCi0gICAgICAgICAgICBzZWxmLm9iaiA9IHNl
bGYuX2dldG9iaigpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvYmogPSBzZWxmLnBhcmVu
dC5vYmoKLSAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhvZChzZWxmLm9iaik6Ci0gICAgICAgICAg
ICBzZXR1cF9uYW1lID0gJ3NldHVwX21ldGhvZCcKLSAgICAgICAgICAgIHRlYXJkb3duX25hbWUg
PSAndGVhcmRvd25fbWV0aG9kJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2V0dXBfbmFt
ZSA9ICdzZXR1cF9mdW5jdGlvbicKLSAgICAgICAgICAgIHRlYXJkb3duX25hbWUgPSAndGVhcmRv
d25fZnVuY3Rpb24nCi0gICAgICAgIHNldHVwX2Z1bmNfb3JfbWV0aG9kID0gX2dldF94dW5pdF9z
ZXR1cF90ZWFyZG93bihvYmosIHNldHVwX25hbWUsIHBhcmFtX29iaj1zZWxmLm9iaikKLSAgICAg
ICAgaWYgc2V0dXBfZnVuY19vcl9tZXRob2QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1
cF9mdW5jX29yX21ldGhvZCgpCi0gICAgICAgIHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kID0gX2dl
dF94dW5pdF9zZXR1cF90ZWFyZG93bihvYmosIHRlYXJkb3duX25hbWUsIHBhcmFtX29iaj1zZWxm
Lm9iaikKLSAgICAgICAgaWYgdGVhcmRvd25fZnVuY19vcl9tZXRob2QgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93bl9mdW5jX29yX21ldGhvZCkKLQot
ICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgJ19vYmonKSBhbmQgbm90IHNlbGYuY29uZmlnLm9wdGlvbi5mdWxsdHJhY2U6Ci0g
ICAgICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKGdldF9yZWFsX2Z1bmMoc2VsZi5v
YmopKQotICAgICAgICAgICAgcGF0aCwgZmlyc3RsaW5lbm8gPSBjb2RlLnBhdGgsIGNvZGUuZmly
c3RsaW5lbm8KLSAgICAgICAgICAgIHRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrCi0gICAg
ICAgICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrLmN1dChwYXRoPXBhdGgsIGZpcnN0bGluZW5v
PWZpcnN0bGluZW5vKQotICAgICAgICAgICAgaWYgbnRyYWNlYmFjayA9PSB0cmFjZWJhY2s6Ci0g
ICAgICAgICAgICAgICAgbnRyYWNlYmFjayA9IG50cmFjZWJhY2suY3V0KHBhdGg9cGF0aCkKLSAg
ICAgICAgICAgICAgICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKLSAgICAgICAgICAgICAg
ICAgICAgIyBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQoZXhjbHVkZXBhdGg9Y3V0ZGlyMikK
LSAgICAgICAgICAgICAgICAgICAgbnRyYWNlYmFjayA9IG50cmFjZWJhY2suZmlsdGVyKGZpbHRl
cl90cmFjZWJhY2spCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBudHJhY2ViYWNrOgotICAg
ICAgICAgICAgICAgICAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNlYmFjawotCi0gICAgICAgICAg
ICBleGNpbmZvLnRyYWNlYmFjayA9IG50cmFjZWJhY2suZmlsdGVyKCkKLSAgICAgICAgICAgICMg
aXNzdWUzNjQ6IG1hcmsgYWxsIGJ1dCBmaXJzdCBhbmQgbGFzdCBmcmFtZXMgdG8KLSAgICAgICAg
ICAgICMgb25seSBzaG93IGEgc2luZ2xlLWxpbmUgbWVzc2FnZSBmb3IgZWFjaCBmcmFtZQotICAg
ICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgPT0gImF1dG8iOgotICAgICAg
ICAgICAgICAgIGlmIGxlbihleGNpbmZvLnRyYWNlYmFjaykgPiAyOgotICAgICAgICAgICAgICAg
ICAgICBmb3IgZW50cnkgaW4gZXhjaW5mby50cmFjZWJhY2tbMTotMV06Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBlbnRyeS5zZXRfcmVwcl9zdHlsZSgnc2hvcnQnKQotCi0gICAgZGVmIF9yZXBy
X2ZhaWx1cmVfcHkoc2VsZiwgZXhjaW5mbywgc3R5bGU9ImxvbmciKToKLSAgICAgICAgaWYgZXhj
aW5mby5lcnJpc2luc3RhbmNlKGZhaWwuRXhjZXB0aW9uKToKLSAgICAgICAgICAgIGlmIG5vdCBl
eGNpbmZvLnZhbHVlLnB5dHJhY2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHB5Ll9idWlsdGlu
Ll90b3RleHQoZXhjaW5mby52YWx1ZSkKLSAgICAgICAgcmV0dXJuIHN1cGVyKEZ1bmN0aW9uTWl4
aW4sIHNlbGYpLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9c3R5bGUpCi0KLSAg
ICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8sIG91dGVycj1Ob25lKToKLSAgICAgICAg
YXNzZXJ0IG91dGVyciBpcyBOb25lLCAiWFhYIG91dGVyciB1c2FnZSBpcyBkZXByZWNhdGVkIgot
ICAgICAgICBzdHlsZSA9IHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlCi0gICAgICAgIGlmIHN0
eWxlID09ICJhdXRvIjoKLSAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0gICAgICAgIHJldHVy
biBzZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9c3R5bGUpCi0KLQotY2xhc3Mg
R2VuZXJhdG9yKEZ1bmN0aW9uTWl4aW4sIFB5Q29sbGVjdG9yKToKLSAgICBkZWYgY29sbGVjdChz
ZWxmKToKLSAgICAgICAgIyB0ZXN0IGdlbmVyYXRvcnMgYXJlIHNlZW4gYXMgY29sbGVjdG9ycyBi
dXQgdGhleSBhbHNvCi0gICAgICAgICMgaW52b2tlIHNldHVwL3RlYXJkb3duIG9uIHBvcHVsYXIg
cmVxdWVzdAotICAgICAgICAjIChpbmR1Y2VkIGJ5IHRoZSBjb21tb24gInRlc3RfKiIgbmFtaW5n
IHNoYXJlZCB3aXRoIG5vcm1hbCB0ZXN0cykKLSAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBk
ZXByZWNhdGVkCi0gICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5wcmVwYXJlKHNlbGYp
Ci0gICAgICAgICMgc2VlIEZ1bmN0aW9uTWl4aW4uc2V0dXAgYW5kIHRlc3Rfc2V0dXBzdGF0ZV9p
c19wcmVzZXJ2ZWRfMTM0Ci0gICAgICAgIHNlbGYuX3ByZXNlcnZlZHBhcmVudCA9IHNlbGYucGFy
ZW50Lm9iagotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBzZWVuID0ge30KLSAgICAgICAg
Zm9yIGksIHggaW4gZW51bWVyYXRlKHNlbGYub2JqKCkpOgotICAgICAgICAgICAgbmFtZSwgY2Fs
bCwgYXJncyA9IHNlbGYuZ2V0Y2FsbGFyZ3MoeCkKLSAgICAgICAgICAgIGlmIG5vdCBjYWxsYWJs
ZShjYWxsKToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVyIHlpZWxkZWQgbm9u
IGNhbGxhYmxlIHRlc3QgJXIiICUgKHNlbGYub2JqLCBjYWxsLCkpCi0gICAgICAgICAgICBpZiBu
YW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgbmFtZSA9ICJbJWRdIiAlIGkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbmFtZSA9ICJbJyVzJ10iICUgbmFtZQotICAgICAg
ICAgICAgaWYgbmFtZSBpbiBzZWVuOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IiVyIGdlbmVyYXRlZCB0ZXN0cyB3aXRoIG5vbi11bmlxdWUgbmFtZSAlciIgJSAoc2VsZiwgbmFt
ZSkpCi0gICAgICAgICAgICBzZWVuW25hbWVdID0gVHJ1ZQotICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChzZWxmLkZ1bmN0aW9uKG5hbWUsIHNlbGYsIGFyZ3M9YXJncywgY2FsbG9iaj1jYWxsKSkK
LSAgICAgICAgc2VsZi53YXJuKCdDMScsIGRlcHJlY2F0ZWQuWUlFTERfVEVTVFMpCi0gICAgICAg
IHJldHVybiB2YWx1ZXMKLQotICAgIGRlZiBnZXRjYWxsYXJncyhzZWxmLCBvYmopOgotICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShvYmosICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAgICAgb2Jq
ID0gKG9iaiwpCi0gICAgICAgICMgZXhwbGljaXQgbmFtaW5nCi0gICAgICAgIGlmIGlzaW5zdGFu
Y2Uob2JqWzBdLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgIG5hbWUgPSBvYmpbMF0K
LSAgICAgICAgICAgIG9iaiA9IG9ialsxOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5h
bWUgPSBOb25lCi0gICAgICAgIGNhbGwsIGFyZ3MgPSBvYmpbMF0sIG9ialsxOl0KLSAgICAgICAg
cmV0dXJuIG5hbWUsIGNhbGwsIGFyZ3MKLQotCi1kZWYgaGFzaW5pdChvYmopOgotICAgIGluaXQg
PSBnZXRhdHRyKG9iaiwgJ19faW5pdF9fJywgTm9uZSkKLSAgICBpZiBpbml0OgotICAgICAgICBy
ZXR1cm4gaW5pdCAhPSBvYmplY3QuX19pbml0X18KLQotCi1kZWYgaGFzbmV3KG9iaik6Ci0gICAg
bmV3ID0gZ2V0YXR0cihvYmosICdfX25ld19fJywgTm9uZSkKLSAgICBpZiBuZXc6Ci0gICAgICAg
IHJldHVybiBuZXcgIT0gb2JqZWN0Ll9fbmV3X18KLQotCi1jbGFzcyBDYWxsU3BlYzIob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0YWZ1bmMpOgotICAgICAgICBzZWxmLm1ldGFm
dW5jID0gbWV0YWZ1bmMKLSAgICAgICAgc2VsZi5mdW5jYXJncyA9IHt9Ci0gICAgICAgIHNlbGYu
X2lkbGlzdCA9IFtdCi0gICAgICAgIHNlbGYucGFyYW1zID0ge30KLSAgICAgICAgc2VsZi5fZ2xv
YmFsaWQgPSBOT1RTRVQKLSAgICAgICAgc2VsZi5fZ2xvYmFsaWRfYXJncyA9IHNldCgpCi0gICAg
ICAgIHNlbGYuX2dsb2JhbHBhcmFtID0gTk9UU0VUCi0gICAgICAgIHNlbGYuX2FyZzJzY29wZW51
bSA9IHt9ICAjIHVzZWQgZm9yIHNvcnRpbmcgcGFyYW1ldHJpemVkIHJlc291cmNlcwotICAgICAg
ICBzZWxmLm1hcmtzID0gW10KLSAgICAgICAgc2VsZi5pbmRpY2VzID0ge30KLQotICAgIGRlZiBj
b3B5KHNlbGYsIG1ldGFmdW5jKToKLSAgICAgICAgY3MgPSBDYWxsU3BlYzIoc2VsZi5tZXRhZnVu
YykKLSAgICAgICAgY3MuZnVuY2FyZ3MudXBkYXRlKHNlbGYuZnVuY2FyZ3MpCi0gICAgICAgIGNz
LnBhcmFtcy51cGRhdGUoc2VsZi5wYXJhbXMpCi0gICAgICAgIGNzLm1hcmtzLmV4dGVuZChzZWxm
Lm1hcmtzKQotICAgICAgICBjcy5pbmRpY2VzLnVwZGF0ZShzZWxmLmluZGljZXMpCi0gICAgICAg
IGNzLl9hcmcyc2NvcGVudW0udXBkYXRlKHNlbGYuX2FyZzJzY29wZW51bSkKLSAgICAgICAgY3Mu
X2lkbGlzdCA9IGxpc3Qoc2VsZi5faWRsaXN0KQotICAgICAgICBjcy5fZ2xvYmFsaWQgPSBzZWxm
Ll9nbG9iYWxpZAotICAgICAgICBjcy5fZ2xvYmFsaWRfYXJncyA9IHNlbGYuX2dsb2JhbGlkX2Fy
Z3MKLSAgICAgICAgY3MuX2dsb2JhbHBhcmFtID0gc2VsZi5fZ2xvYmFscGFyYW0KLSAgICAgICAg
cmV0dXJuIGNzCi0KLSAgICBkZWYgX2NoZWNrYXJnbm90Y29udGFpbmVkKHNlbGYsIGFyZyk6Ci0g
ICAgICAgIGlmIGFyZyBpbiBzZWxmLnBhcmFtcyBvciBhcmcgaW4gc2VsZi5mdW5jYXJnczoKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImR1cGxpY2F0ZSAlciIgJSAoYXJnLCkpCi0KLSAg
ICBkZWYgZ2V0cGFyYW0oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmLnBhcmFtc1tuYW1lXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAg
ICAgICBpZiBzZWxmLl9nbG9iYWxwYXJhbSBpcyBOT1RTRVQ6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcihuYW1lKQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2dsb2JhbHBhcmFt
Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiAiLSIu
am9pbihtYXAoc3RyLCBmaWx0ZXIoTm9uZSwgc2VsZi5faWRsaXN0KSkpCi0KLSAgICBkZWYgc2V0
bXVsdGkyKHNlbGYsIHZhbHR5cGVzLCBhcmduYW1lcywgdmFsc2V0LCBpZCwgbWFya3MsIHNjb3Bl
bnVtLAotICAgICAgICAgICAgICAgICAgcGFyYW1faW5kZXgpOgotICAgICAgICBmb3IgYXJnLCB2
YWwgaW4gemlwKGFyZ25hbWVzLCB2YWxzZXQpOgotICAgICAgICAgICAgc2VsZi5fY2hlY2thcmdu
b3Rjb250YWluZWQoYXJnKQotICAgICAgICAgICAgdmFsdHlwZV9mb3JfYXJnID0gdmFsdHlwZXNb
YXJnXQotICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCB2YWx0eXBlX2Zvcl9hcmcpW2FyZ10gPSB2
YWwKLSAgICAgICAgICAgIHNlbGYuaW5kaWNlc1thcmddID0gcGFyYW1faW5kZXgKLSAgICAgICAg
ICAgIHNlbGYuX2FyZzJzY29wZW51bVthcmddID0gc2NvcGVudW0KLSAgICAgICAgc2VsZi5faWRs
aXN0LmFwcGVuZChpZCkKLSAgICAgICAgc2VsZi5tYXJrcy5leHRlbmQobWFya3MpCi0KLSAgICBk
ZWYgc2V0YWxsKHNlbGYsIGZ1bmNhcmdzLCBpZCwgcGFyYW0pOgotICAgICAgICBmb3IgeCBpbiBm
dW5jYXJnczoKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrYXJnbm90Y29udGFpbmVkKHgpCi0gICAg
ICAgIHNlbGYuZnVuY2FyZ3MudXBkYXRlKGZ1bmNhcmdzKQotICAgICAgICBpZiBpZCBpcyBub3Qg
Tk9UU0VUOgotICAgICAgICAgICAgc2VsZi5faWRsaXN0LmFwcGVuZChpZCkKLSAgICAgICAgaWYg
cGFyYW0gaXMgbm90IE5PVFNFVDoKLSAgICAgICAgICAgIGFzc2VydCBzZWxmLl9nbG9iYWxwYXJh
bSBpcyBOT1RTRVQKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbHBhcmFtID0gcGFyYW0KLSAgICAg
ICAgZm9yIGFyZyBpbiBmdW5jYXJnczoKLSAgICAgICAgICAgIHNlbGYuX2FyZzJzY29wZW51bVth
cmddID0gZml4dHVyZXMuc2NvcGVudW1fZnVuY3Rpb24KLQotCi1jbGFzcyBNZXRhZnVuYyhmaXh0
dXJlcy5GdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKLSAgICAiIiIKLSAgICBNZXRhZnVuYyBvYmpl
Y3RzIGFyZSBwYXNzZWQgdG8gdGhlIGBgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzYGAgaG9vay4KLSAg
ICBUaGV5IGhlbHAgdG8gaW5zcGVjdCBhIHRlc3QgZnVuY3Rpb24gYW5kIHRvIGdlbmVyYXRlIHRl
c3RzIGFjY29yZGluZyB0bwotICAgIHRlc3QgY29uZmlndXJhdGlvbiBvciB2YWx1ZXMgc3BlY2lm
aWVkIGluIHRoZSBjbGFzcyBvciBtb2R1bGUgd2hlcmUgYQotICAgIHRlc3QgZnVuY3Rpb24gaXMg
ZGVmaW5lZC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jdGlvbiwgZml4
dHVyZWluZm8sIGNvbmZpZywgY2xzPU5vbmUsIG1vZHVsZT1Ob25lKToKLSAgICAgICAgIzogYWNj
ZXNzIHRvIHRoZSA6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2Agb2JqZWN0IGZvciB0aGUg
dGVzdCBzZXNzaW9uCi0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0KLSAgICAgICAgIzog
dGhlIG1vZHVsZSBvYmplY3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbi4K
LSAgICAgICAgc2VsZi5tb2R1bGUgPSBtb2R1bGUKLQotICAgICAgICAjOiB1bmRlcmx5aW5nIHB5
dGhvbiB0ZXN0IGZ1bmN0aW9uCi0gICAgICAgIHNlbGYuZnVuY3Rpb24gPSBmdW5jdGlvbgotCi0g
ICAgICAgICM6IHNldCBvZiBmaXh0dXJlIG5hbWVzIHJlcXVpcmVkIGJ5IHRoZSB0ZXN0IGZ1bmN0
aW9uCi0gICAgICAgIHNlbGYuZml4dHVyZW5hbWVzID0gZml4dHVyZWluZm8ubmFtZXNfY2xvc3Vy
ZQotCi0gICAgICAgICM6IGNsYXNzIG9iamVjdCB3aGVyZSB0aGUgdGVzdCBmdW5jdGlvbiBpcyBk
ZWZpbmVkIGluIG9yIGBgTm9uZWBgLgotICAgICAgICBzZWxmLmNscyA9IGNscwotCi0gICAgICAg
IHNlbGYuX2NhbGxzID0gW10KLSAgICAgICAgc2VsZi5faWRzID0gc2V0KCkKLSAgICAgICAgc2Vs
Zi5fYXJnMmZpeHR1cmVkZWZzID0gZml4dHVyZWluZm8ubmFtZTJmaXh0dXJlZGVmcwotCi0gICAg
ZGVmIHBhcmFtZXRyaXplKHNlbGYsIGFyZ25hbWVzLCBhcmd2YWx1ZXMsIGluZGlyZWN0PUZhbHNl
LCBpZHM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgc2NvcGU9Tm9uZSk6Ci0gICAgICAgICIi
IiBBZGQgbmV3IGludm9jYXRpb25zIHRvIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24gdXNp
bmcgdGhlIGxpc3QKLSAgICAgICAgb2YgYXJndmFsdWVzIGZvciB0aGUgZ2l2ZW4gYXJnbmFtZXMu
ICBQYXJhbWV0cml6YXRpb24gaXMgcGVyZm9ybWVkCi0gICAgICAgIGR1cmluZyB0aGUgY29sbGVj
dGlvbiBwaGFzZS4gIElmIHlvdSBuZWVkIHRvIHNldHVwIGV4cGVuc2l2ZSByZXNvdXJjZXMKLSAg
ICAgICAgc2VlIGFib3V0IHNldHRpbmcgaW5kaXJlY3QgdG8gZG8gaXQgcmF0aGVyIGF0IHRlc3Qg
c2V0dXAgdGltZS4KLQotICAgICAgICA6YXJnIGFyZ25hbWVzOiBhIGNvbW1hLXNlcGFyYXRlZCBz
dHJpbmcgZGVub3Rpbmcgb25lIG9yIG1vcmUgYXJndW1lbnQKLSAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZXMsIG9yIGEgbGlzdC90dXBsZSBvZiBhcmd1bWVudCBzdHJpbmdzLgotCi0gICAgICAg
IDphcmcgYXJndmFsdWVzOiBUaGUgbGlzdCBvZiBhcmd2YWx1ZXMgZGV0ZXJtaW5lcyBob3cgb2Z0
ZW4gYQotICAgICAgICAgICAgdGVzdCBpcyBpbnZva2VkIHdpdGggZGlmZmVyZW50IGFyZ3VtZW50
IHZhbHVlcy4gIElmIG9ubHkgb25lCi0gICAgICAgICAgICBhcmduYW1lIHdhcyBzcGVjaWZpZWQg
YXJndmFsdWVzIGlzIGEgbGlzdCBvZiB2YWx1ZXMuICBJZiBOCi0gICAgICAgICAgICBhcmduYW1l
cyB3ZXJlIHNwZWNpZmllZCwgYXJndmFsdWVzIG11c3QgYmUgYSBsaXN0IG9mIE4tdHVwbGVzLAot
ICAgICAgICAgICAgd2hlcmUgZWFjaCB0dXBsZS1lbGVtZW50IHNwZWNpZmllcyBhIHZhbHVlIGZv
ciBpdHMgcmVzcGVjdGl2ZQotICAgICAgICAgICAgYXJnbmFtZS4KLQotICAgICAgICA6YXJnIGlu
ZGlyZWN0OiBUaGUgbGlzdCBvZiBhcmduYW1lcyBvciBib29sZWFuLiBBIGxpc3Qgb2YgYXJndW1l
bnRzJwotICAgICAgICAgICAgbmFtZXMgKHN1YnNldCBvZiBhcmduYW1lcykuIElmIFRydWUgdGhl
IGxpc3QgY29udGFpbnMgYWxsIG5hbWVzIGZyb20KLSAgICAgICAgICAgIHRoZSBhcmduYW1lcy4g
RWFjaCBhcmd2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIGFuIGFyZ25hbWUgaW4gdGhpcyBsaXN0IHdp
bGwKLSAgICAgICAgICAgIGJlIHBhc3NlZCBhcyByZXF1ZXN0LnBhcmFtIHRvIGl0cyByZXNwZWN0
aXZlIGFyZ25hbWUgZml4dHVyZQotICAgICAgICAgICAgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4g
cGVyZm9ybSBtb3JlIGV4cGVuc2l2ZSBzZXR1cHMgZHVyaW5nIHRoZQotICAgICAgICAgICAgc2V0
dXAgcGhhc2Ugb2YgYSB0ZXN0IHJhdGhlciB0aGFuIGF0IGNvbGxlY3Rpb24gdGltZS4KLQotICAg
ICAgICA6YXJnIGlkczogbGlzdCBvZiBzdHJpbmcgaWRzLCBvciBhIGNhbGxhYmxlLgotICAgICAg
ICAgICAgSWYgc3RyaW5ncywgZWFjaCBpcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBhcmd2YWx1ZXMg
c28gdGhhdCB0aGV5IGFyZQotICAgICAgICAgICAgcGFydCBvZiB0aGUgdGVzdCBpZC4gSWYgTm9u
ZSBpcyBnaXZlbiBhcyBpZCBvZiBzcGVjaWZpYyB0ZXN0LCB0aGUKLSAgICAgICAgICAgIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGlkIGZvciB0aGF0IGFyZ3VtZW50IHdpbGwgYmUgdXNlZC4KLSAg
ICAgICAgICAgIElmIGNhbGxhYmxlLCBpdCBzaG91bGQgdGFrZSBvbmUgYXJndW1lbnQgKGEgc2lu
Z2xlIGFyZ3ZhbHVlKSBhbmQgcmV0dXJuCi0gICAgICAgICAgICBhIHN0cmluZyBvciByZXR1cm4g
Tm9uZS4gSWYgTm9uZSwgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlkIGZvciB0aGF0Ci0g
ICAgICAgICAgICBhcmd1bWVudCB3aWxsIGJlIHVzZWQuCi0gICAgICAgICAgICBJZiBubyBpZHMg
YXJlIHByb3ZpZGVkIHRoZXkgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tCi0g
ICAgICAgICAgICB0aGUgYXJndmFsdWVzLgotCi0gICAgICAgIDphcmcgc2NvcGU6IGlmIHNwZWNp
ZmllZCBpdCBkZW5vdGVzIHRoZSBzY29wZSBvZiB0aGUgcGFyYW1ldGVycy4KLSAgICAgICAgICAg
IFRoZSBzY29wZSBpcyB1c2VkIGZvciBncm91cGluZyB0ZXN0cyBieSBwYXJhbWV0ZXIgaW5zdGFu
Y2VzLgotICAgICAgICAgICAgSXQgd2lsbCBhbHNvIG92ZXJyaWRlIGFueSBmaXh0dXJlLWZ1bmN0
aW9uIGRlZmluZWQgc2NvcGUsIGFsbG93aW5nCi0gICAgICAgICAgICB0byBzZXQgYSBkeW5hbWlj
IHNjb3BlIHVzaW5nIHRlc3QgY29udGV4dCBvciBjb25maWd1cmF0aW9uLgotICAgICAgICAiIiIK
LSAgICAgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBzY29wZTJpbmRleAotICAgICAg
ICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgUGFyYW1ldGVyU2V0Ci0gICAgICAgIGZyb20gcHku
aW8gaW1wb3J0IHNhZmVyZXByCi0gICAgICAgIGFyZ25hbWVzLCBwYXJhbWV0ZXJzID0gUGFyYW1l
dGVyU2V0Ll9mb3JfcGFyYW1ldGVyaXplKAotICAgICAgICAgICAgYXJnbmFtZXMsIGFyZ3ZhbHVl
cywgc2VsZi5mdW5jdGlvbikKLSAgICAgICAgZGVsIGFyZ3ZhbHVlcwotCi0gICAgICAgIGlmIHNj
b3BlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzY29wZSA9IF9maW5kX3BhcmFtZXRyaXplZF9zY29w
ZShhcmduYW1lcywgc2VsZi5fYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCkKLQotICAgICAgICBz
Y29wZW51bSA9IHNjb3BlMmluZGV4KHNjb3BlLCBkZXNjcj0nY2FsbCB0byB7MH0nLmZvcm1hdChz
ZWxmLnBhcmFtZXRyaXplKSkKLSAgICAgICAgdmFsdHlwZXMgPSB7fQotICAgICAgICBmb3IgYXJn
IGluIGFyZ25hbWVzOgotICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBzZWxmLmZpeHR1cmVuYW1l
czoKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGluZGlyZWN0LCAodHVwbGUsIGxpc3Qp
KToKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdmaXh0dXJlJyBpZiBhcmcgaW4gaW5kaXJl
Y3QgZWxzZSAnYXJndW1lbnQnCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgbmFtZSA9ICdmaXh0dXJlJyBpZiBpbmRpcmVjdCBlbHNlICdhcmd1bWVudCcKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAiJXIgdXNl
cyBubyAlcyAlciIgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmN0aW9uLCBu
YW1lLCBhcmcpKQotCi0gICAgICAgIGlmIGluZGlyZWN0IGlzIFRydWU6Ci0gICAgICAgICAgICB2
YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJwYXJhbXMiKQotICAgICAgICBlbGlm
IGluZGlyZWN0IGlzIEZhbHNlOgotICAgICAgICAgICAgdmFsdHlwZXMgPSBkaWN0LmZyb21rZXlz
KGFyZ25hbWVzLCAiZnVuY2FyZ3MiKQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaW5kaXJlY3Qs
ICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAgICAgdmFsdHlwZXMgPSBkaWN0LmZyb21rZXlzKGFy
Z25hbWVzLCAiZnVuY2FyZ3MiKQotICAgICAgICAgICAgZm9yIGFyZyBpbiBpbmRpcmVjdDoKLSAg
ICAgICAgICAgICAgICBpZiBhcmcgbm90IGluIGFyZ25hbWVzOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJpbmRpcmVjdCBnaXZlbiB0byAlcjogZml4dHVyZSAlciBkb2Vz
bid0IGV4aXN0IiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmZ1bmN0aW9uLCBhcmcpKQotICAgICAgICAgICAgICAgIHZhbHR5cGVzW2FyZ10gPSAicGFyYW1z
IgotICAgICAgICBpZGZuID0gTm9uZQotICAgICAgICBpZiBjYWxsYWJsZShpZHMpOgotICAgICAg
ICAgICAgaWRmbiA9IGlkcwotICAgICAgICAgICAgaWRzID0gTm9uZQotICAgICAgICBpZiBpZHM6
Ci0gICAgICAgICAgICBpZiBsZW4oaWRzKSAhPSBsZW4ocGFyYW1ldGVycyk6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignJWQgdGVzdHMgc3BlY2lmaWVkIHdpdGggJWQgaWRzJyAl
ICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihwYXJhbWV0ZXJzKSwgbGVu
KGlkcykpKQotICAgICAgICAgICAgZm9yIGlkX3ZhbHVlIGluIGlkczoKLSAgICAgICAgICAgICAg
ICBpZiBpZF92YWx1ZSBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFuY2UoaWRfdmFsdWUsIHNp
eC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgICAgICBtc2cgPSAnaWRzIG11c3QgYmUg
bGlzdCBvZiBzdHJpbmdzLCBmb3VuZDogJXMgKHR5cGU6ICVzKScKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcihtc2cgJSAoc2FmZXJlcHIoaWRfdmFsdWUpLCB0eXBlKGlkX3Zh
bHVlKS5fX25hbWVfXykpCi0gICAgICAgIGlkcyA9IGlkbWFrZXIoYXJnbmFtZXMsIHBhcmFtZXRl
cnMsIGlkZm4sIGlkcywgc2VsZi5jb25maWcpCi0gICAgICAgIG5ld2NhbGxzID0gW10KLSAgICAg
ICAgZm9yIGNhbGxzcGVjIGluIHNlbGYuX2NhbGxzIG9yIFtDYWxsU3BlYzIoc2VsZildOgotICAg
ICAgICAgICAgZWxlbWVudHMgPSB6aXAoaWRzLCBwYXJhbWV0ZXJzLCBjb3VudCgpKQotICAgICAg
ICAgICAgZm9yIGFfaWQsIHBhcmFtLCBwYXJhbV9pbmRleCBpbiBlbGVtZW50czoKLSAgICAgICAg
ICAgICAgICBpZiBsZW4ocGFyYW0udmFsdWVzKSAhPSBsZW4oYXJnbmFtZXMpOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0lu
ICJwYXJhbWV0cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKHswfSkgbXVzdCBiZSAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnZXF1YWwgdG8gdGhlIG51bWJlciBvZiBuYW1lcyAoezF9KScu
Zm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLnZhbHVlcywgYXJnbmFt
ZXMpKQotICAgICAgICAgICAgICAgIG5ld2NhbGxzcGVjID0gY2FsbHNwZWMuY29weShzZWxmKQot
ICAgICAgICAgICAgICAgIG5ld2NhbGxzcGVjLnNldG11bHRpMih2YWx0eXBlcywgYXJnbmFtZXMs
IHBhcmFtLnZhbHVlcywgYV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFyYW0ubWFya3MsIHNjb3BlbnVtLCBwYXJhbV9pbmRleCkKLSAgICAgICAgICAgICAgICBu
ZXdjYWxscy5hcHBlbmQobmV3Y2FsbHNwZWMpCi0gICAgICAgIHNlbGYuX2NhbGxzID0gbmV3Y2Fs
bHMKLQotICAgIGRlZiBhZGRjYWxsKHNlbGYsIGZ1bmNhcmdzPU5vbmUsIGlkPU5PVFNFVCwgcGFy
YW09Tk9UU0VUKToKLSAgICAgICAgIiIiIEFkZCBhIG5ldyBjYWxsIHRvIHRoZSB1bmRlcmx5aW5n
IHRlc3QgZnVuY3Rpb24gZHVyaW5nIHRoZSBjb2xsZWN0aW9uIHBoYXNlIG9mIGEgdGVzdCBydW4u
Ci0KLSAgICAgICAgLi4gZGVwcmVjYXRlZDo6IDMuMwotCi0gICAgICAgICAgICBVc2UgOm1ldGg6
YHBhcmFtZXRyaXplYCBpbnN0ZWFkLgotCi0gICAgICAgIE5vdGUgdGhhdCByZXF1ZXN0LmFkZGNh
bGwoKSBpcyBjYWxsZWQgZHVyaW5nIHRoZSB0ZXN0IGNvbGxlY3Rpb24gcGhhc2UgcHJpb3IgYW5k
Ci0gICAgICAgIGluZGVwZW5kZW50bHkgdG8gYWN0dWFsIHRlc3QgZXhlY3V0aW9uLiAgWW91IHNo
b3VsZCBvbmx5IHVzZSBhZGRjYWxsKCkKLSAgICAgICAgaWYgeW91IG5lZWQgdG8gc3BlY2lmeSBt
dWx0aXBsZSBhcmd1bWVudHMgb2YgYSB0ZXN0IGZ1bmN0aW9uLgotCi0gICAgICAgIDphcmcgZnVu
Y2FyZ3M6IGFyZ3VtZW50IGtleXdvcmQgZGljdGlvbmFyeSB1c2VkIHdoZW4gaW52b2tpbmcKLSAg
ICAgICAgICAgIHRoZSB0ZXN0IGZ1bmN0aW9uLgotCi0gICAgICAgIDphcmcgaWQ6IHVzZWQgZm9y
IHJlcG9ydGluZyBhbmQgaWRlbnRpZmljYXRpb24gcHVycG9zZXMuICBJZiB5b3UKLSAgICAgICAg
ICAgIGRvbid0IHN1cHBseSBhbiBgaWRgIGFuIGF1dG9tYXRpYyB1bmlxdWUgaWQgd2lsbCBiZSBn
ZW5lcmF0ZWQuCi0KLSAgICAgICAgOmFyZyBwYXJhbTogYSBwYXJhbWV0ZXIgd2hpY2ggd2lsbCBi
ZSBleHBvc2VkIHRvIGEgbGF0ZXIgZml4dHVyZSBmdW5jdGlvbgotICAgICAgICAgICAgaW52b2Nh
dGlvbiB0aHJvdWdoIHRoZSBgYHJlcXVlc3QucGFyYW1gYCBhdHRyaWJ1dGUuCi0gICAgICAgICIi
IgotICAgICAgICBpZiBzZWxmLmNvbmZpZzoKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLndhcm4o
J0MxJywgbWVzc2FnZT1kZXByZWNhdGVkLk1FVEFGVU5DX0FERF9DQUxMLCBmc2xvY2F0aW9uPU5v
bmUpCi0gICAgICAgIGFzc2VydCBmdW5jYXJncyBpcyBOb25lIG9yIGlzaW5zdGFuY2UoZnVuY2Fy
Z3MsIGRpY3QpCi0gICAgICAgIGlmIGZ1bmNhcmdzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
Zm9yIG5hbWUgaW4gZnVuY2FyZ3M6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2Vs
Zi5maXh0dXJlbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIGZhaWwoImZ1bmNhcmcgJXIgbm90
IHVzZWQgaW4gdGhpcyBmdW5jdGlvbi4iICUgbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGZ1bmNhcmdzID0ge30KLSAgICAgICAgaWYgaWQgaXMgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImlkPU5vbmUgbm90IGFsbG93ZWQiKQotICAgICAgICBpZiBpZCBpcyBO
T1RTRVQ6Ci0gICAgICAgICAgICBpZCA9IGxlbihzZWxmLl9jYWxscykKLSAgICAgICAgaWQgPSBz
dHIoaWQpCi0gICAgICAgIGlmIGlkIGluIHNlbGYuX2lkczoKLSAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImR1cGxpY2F0ZSBpZCAlciIgJSBpZCkKLSAgICAgICAgc2VsZi5faWRzLmFkZChp
ZCkKLQotICAgICAgICBjcyA9IENhbGxTcGVjMihzZWxmKQotICAgICAgICBjcy5zZXRhbGwoZnVu
Y2FyZ3MsIGlkLCBwYXJhbSkKLSAgICAgICAgc2VsZi5fY2FsbHMuYXBwZW5kKGNzKQotCi0KLWRl
ZiBfZmluZF9wYXJhbWV0cml6ZWRfc2NvcGUoYXJnbmFtZXMsIGFyZzJmaXh0dXJlZGVmcywgaW5k
aXJlY3QpOgotICAgICIiIkZpbmQgdGhlIG1vc3QgYXBwcm9wcmlhdGUgc2NvcGUgZm9yIGEgcGFy
YW1ldHJpemVkIGNhbGwgYmFzZWQgb24gaXRzIGFyZ3VtZW50cy4KLQotICAgIFdoZW4gdGhlcmUn
cyBhdCBsZWFzdCBvbmUgZGlyZWN0IGFyZ3VtZW50LCBhbHdheXMgdXNlICJmdW5jdGlvbiIgc2Nv
cGUuCi0KLSAgICBXaGVuIGEgdGVzdCBmdW5jdGlvbiBpcyBwYXJhbWV0cml6ZWQgYW5kIGFsbCBp
dHMgYXJndW1lbnRzIGFyZSBpbmRpcmVjdAotICAgIChlLmcuIGZpeHR1cmVzKSwgcmV0dXJuIHRo
ZSBtb3N0IG5hcnJvdyBzY29wZSBiYXNlZCBvbiB0aGUgZml4dHVyZXMgdXNlZC4KLQotICAgIFJl
bGF0ZWQgdG8gaXNzdWUgIzE4MzIsIGJhc2VkIG9uIGNvZGUgcG9zdGVkIGJ5IEBLaW5nZHJlYWQu
Ci0gICAgIiIiCi0gICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBzY29wZXMKLSAgICBp
bmRpcmVjdF9hc19saXN0ID0gaXNpbnN0YW5jZShpbmRpcmVjdCwgKGxpc3QsIHR1cGxlKSkKLSAg
ICBhbGxfYXJndW1lbnRzX2FyZV9maXh0dXJlcyA9IGluZGlyZWN0IGlzIFRydWUgb3IgXAotICAg
ICAgICBpbmRpcmVjdF9hc19saXN0IGFuZCBsZW4oaW5kaXJlY3QpID09IGFyZ25hbWVzCi0gICAg
aWYgYWxsX2FyZ3VtZW50c19hcmVfZml4dHVyZXM6Ci0gICAgICAgIGZpeHR1cmVkZWZzID0gYXJn
MmZpeHR1cmVkZWZzIG9yIHt9Ci0gICAgICAgIHVzZWRfc2NvcGVzID0gW2ZpeHR1cmVkZWZbMF0u
c2NvcGUgZm9yIG5hbWUsIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnMuaXRlbXMoKV0KLSAgICAg
ICAgaWYgdXNlZF9zY29wZXM6Ci0gICAgICAgICAgICAjIFRha2VzIHRoZSBtb3N0IG5hcnJvdyBz
Y29wZSBmcm9tIHVzZWQgZml4dHVyZXMKLSAgICAgICAgICAgIGZvciBzY29wZSBpbiByZXZlcnNl
ZChzY29wZXMpOgotICAgICAgICAgICAgICAgIGlmIHNjb3BlIGluIHVzZWRfc2NvcGVzOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gc2NvcGUKLQotICAgIHJldHVybiAnZnVuY3Rpb24nCi0K
LQotZGVmIF9pZHZhbCh2YWwsIGFyZ25hbWUsIGlkeCwgaWRmbiwgY29uZmlnPU5vbmUpOgotICAg
IGlmIGlkZm46Ci0gICAgICAgIHMgPSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHMg
PSBpZGZuKHZhbCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICMgU2Vl
IGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjE2OQot
ICAgICAgICAgICAgaW1wb3J0IHdhcm5pbmdzCi0gICAgICAgICAgICBtc2cgPSAiUmFpc2VkIHdo
aWxlIHRyeWluZyB0byBkZXRlcm1pbmUgaWQgb2YgcGFyYW1ldGVyICVzIGF0IHBvc2l0aW9uICVk
LiIgJSAoYXJnbmFtZSwgaWR4KQotICAgICAgICAgICAgbXNnICs9ICdcblVwZGF0ZSB5b3VyIGNv
ZGUgYXMgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yIGluIHB5dGVzdC00LjAuJwotICAgICAgICAg
ICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgaWYgczoK
LSAgICAgICAgICAgIHJldHVybiBhc2NpaV9lc2NhcGVkKHMpCi0KLSAgICBpZiBjb25maWc6Ci0g
ICAgICAgIGhvb2tfaWQgPSBjb25maWcuaG9vay5weXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZCgK
LSAgICAgICAgICAgIGNvbmZpZz1jb25maWcsIHZhbD12YWwsIGFyZ25hbWU9YXJnbmFtZSkKLSAg
ICAgICAgaWYgaG9va19pZDoKLSAgICAgICAgICAgIHJldHVybiBob29rX2lkCi0KLSAgICBpZiBp
c2luc3RhbmNlKHZhbCwgU1RSSU5HX1RZUEVTKToKLSAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2Fw
ZWQodmFsKQotICAgIGVsaWYgaXNpbnN0YW5jZSh2YWwsIChmbG9hdCwgaW50LCBib29sLCBOb25l
VHlwZSkpOgotICAgICAgICByZXR1cm4gc3RyKHZhbCkKLSAgICBlbGlmIGlzaW5zdGFuY2UodmFs
LCBSRUdFWF9UWVBFKToKLSAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQodmFsLnBhdHRlcm4p
Ci0gICAgZWxpZiBlbnVtIGlzIG5vdCBOb25lIGFuZCBpc2luc3RhbmNlKHZhbCwgZW51bS5FbnVt
KToKLSAgICAgICAgcmV0dXJuIHN0cih2YWwpCi0gICAgZWxpZiBpc2NsYXNzKHZhbCkgYW5kIGhh
c2F0dHIodmFsLCAnX19uYW1lX18nKToKLSAgICAgICAgcmV0dXJuIHZhbC5fX25hbWVfXwotICAg
IHJldHVybiBzdHIoYXJnbmFtZSkgKyBzdHIoaWR4KQotCi0KLWRlZiBfaWR2YWxzZXQoaWR4LCBw
YXJhbWV0ZXJzZXQsIGFyZ25hbWVzLCBpZGZuLCBpZHMsIGNvbmZpZz1Ob25lKToKLSAgICBpZiBw
YXJhbWV0ZXJzZXQuaWQgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzZXQu
aWQKLSAgICBpZiBpZHMgaXMgTm9uZSBvciAoaWR4ID49IGxlbihpZHMpIG9yIGlkc1tpZHhdIGlz
IE5vbmUpOgotICAgICAgICB0aGlzX2lkID0gW19pZHZhbCh2YWwsIGFyZ25hbWUsIGlkeCwgaWRm
biwgY29uZmlnKQotICAgICAgICAgICAgICAgICAgIGZvciB2YWwsIGFyZ25hbWUgaW4gemlwKHBh
cmFtZXRlcnNldC52YWx1ZXMsIGFyZ25hbWVzKV0KLSAgICAgICAgcmV0dXJuICItIi5qb2luKHRo
aXNfaWQpCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQoaWRzW2lkeF0p
Ci0KLQotZGVmIGlkbWFrZXIoYXJnbmFtZXMsIHBhcmFtZXRlcnNldHMsIGlkZm49Tm9uZSwgaWRz
PU5vbmUsIGNvbmZpZz1Ob25lKToKLSAgICBpZHMgPSBbX2lkdmFsc2V0KHZhbGluZGV4LCBwYXJh
bWV0ZXJzZXQsIGFyZ25hbWVzLCBpZGZuLCBpZHMsIGNvbmZpZykKLSAgICAgICAgICAgZm9yIHZh
bGluZGV4LCBwYXJhbWV0ZXJzZXQgaW4gZW51bWVyYXRlKHBhcmFtZXRlcnNldHMpXQotICAgIGlm
IGxlbihzZXQoaWRzKSkgIT0gbGVuKGlkcyk6Ci0gICAgICAgICMgVGhlIGlkcyBhcmUgbm90IHVu
aXF1ZQotICAgICAgICBkdXBsaWNhdGVzID0gW3Rlc3RpZCBmb3IgdGVzdGlkIGluIGlkcyBpZiBp
ZHMuY291bnQodGVzdGlkKSA+IDFdCi0gICAgICAgIGNvdW50ZXJzID0gY29sbGVjdGlvbnMuZGVm
YXVsdGRpY3QobGFtYmRhOiAwKQotICAgICAgICBmb3IgaW5kZXgsIHRlc3RpZCBpbiBlbnVtZXJh
dGUoaWRzKToKLSAgICAgICAgICAgIGlmIHRlc3RpZCBpbiBkdXBsaWNhdGVzOgotICAgICAgICAg
ICAgICAgIGlkc1tpbmRleF0gPSB0ZXN0aWQgKyBzdHIoY291bnRlcnNbdGVzdGlkXSkKLSAgICAg
ICAgICAgICAgICBjb3VudGVyc1t0ZXN0aWRdICs9IDEKLSAgICByZXR1cm4gaWRzCi0KLQotZGVm
IHNob3dfZml4dHVyZXNfcGVyX3Rlc3QoY29uZmlnKToKLSAgICBmcm9tIF9weXRlc3QubWFpbiBp
bXBvcnQgd3JhcF9zZXNzaW9uCi0gICAgcmV0dXJuIHdyYXBfc2Vzc2lvbihjb25maWcsIF9zaG93
X2ZpeHR1cmVzX3Blcl90ZXN0KQotCi0KLWRlZiBfc2hvd19maXh0dXJlc19wZXJfdGVzdChjb25m
aWcsIHNlc3Npb24pOgotICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgIHNlc3Npb24ucGVy
Zm9ybV9jb2xsZWN0KCkKLSAgICBjdXJkaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICB0dyA9IF9w
eXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnKQotICAgIHZlcmJvc2Ug
PSBjb25maWcuZ2V0dmFsdWUoInZlcmJvc2UiKQotCi0gICAgZGVmIGdldF9iZXN0X3JlbHBhdGgo
ZnVuYyk6Ci0gICAgICAgIGxvYyA9IGdldGxvY2F0aW9uKGZ1bmMsIGN1cmRpcikKLSAgICAgICAg
cmV0dXJuIGN1cmRpci5iZXN0cmVscGF0aChsb2MpCi0KLSAgICBkZWYgd3JpdGVfZml4dHVyZShm
aXh0dXJlX2RlZik6Ci0gICAgICAgIGFyZ25hbWUgPSBmaXh0dXJlX2RlZi5hcmduYW1lCi0gICAg
ICAgIGlmIHZlcmJvc2UgPD0gMCBhbmQgYXJnbmFtZS5zdGFydHN3aXRoKCJfIik6Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgaWYgdmVyYm9zZSA+IDA6Ci0gICAgICAgICAgICBiZXN0cmVs
ID0gZ2V0X2Jlc3RfcmVscGF0aChmaXh0dXJlX2RlZi5mdW5jKQotICAgICAgICAgICAgZnVuY2Fy
Z3NwZWMgPSAiezB9IC0tIHsxfSIuZm9ybWF0KGFyZ25hbWUsIGJlc3RyZWwpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBmdW5jYXJnc3BlYyA9IGFyZ25hbWUKLSAgICAgICAgdHcubGluZShm
dW5jYXJnc3BlYywgZ3JlZW49VHJ1ZSkKLSAgICAgICAgZml4dHVyZV9kb2MgPSBmaXh0dXJlX2Rl
Zi5mdW5jLl9fZG9jX18KLSAgICAgICAgaWYgZml4dHVyZV9kb2M6Ci0gICAgICAgICAgICB3cml0
ZV9kb2NzdHJpbmcodHcsIGZpeHR1cmVfZG9jKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
dHcubGluZSgnICAgIG5vIGRvY3N0cmluZyBhdmFpbGFibGUnLCByZWQ9VHJ1ZSkKLQotICAgIGRl
ZiB3cml0ZV9pdGVtKGl0ZW0pOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbmZvID0gaXRl
bS5fZml4dHVyZWluZm8KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAg
ICAgIyBkb2N0ZXN0cyBpdGVtcyBoYXZlIG5vIF9maXh0dXJlaW5mbyBhdHRyaWJ1dGUKLSAgICAg
ICAgICAgIHJldHVybgotICAgICAgICBpZiBub3QgaW5mby5uYW1lMmZpeHR1cmVkZWZzOgotICAg
ICAgICAgICAgIyB0aGlzIHRlc3QgaXRlbSBkb2VzIG5vdCB1c2UgYW55IGZpeHR1cmVzCi0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgdHcubGluZSgpCi0gICAgICAgIHR3LnNlcCgnLScsICdm
aXh0dXJlcyB1c2VkIGJ5IHswfScuZm9ybWF0KGl0ZW0ubmFtZSkpCi0gICAgICAgIHR3LnNlcCgn
LScsICcoezB9KScuZm9ybWF0KGdldF9iZXN0X3JlbHBhdGgoaXRlbS5mdW5jdGlvbikpKQotICAg
ICAgICAjIGRpY3Qga2V5IG5vdCB1c2VkIGluIGxvb3AgYnV0IG5lZWRlZCBmb3Igc29ydGluZwot
ICAgICAgICBmb3IgXywgZml4dHVyZWRlZnMgaW4gc29ydGVkKGluZm8ubmFtZTJmaXh0dXJlZGVm
cy5pdGVtcygpKToKLSAgICAgICAgICAgIGFzc2VydCBmaXh0dXJlZGVmcyBpcyBub3QgTm9uZQot
ICAgICAgICAgICAgaWYgbm90IGZpeHR1cmVkZWZzOgotICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICAjIGxhc3QgaXRlbSBpcyBleHBlY3RlZCB0byBiZSB0aGUgb25lIHVzZWQg
YnkgdGhlIHRlc3QgaXRlbQotICAgICAgICAgICAgd3JpdGVfZml4dHVyZShmaXh0dXJlZGVmc1st
MV0pCi0KLSAgICBmb3Igc2Vzc2lvbl9pdGVtIGluIHNlc3Npb24uaXRlbXM6Ci0gICAgICAgIHdy
aXRlX2l0ZW0oc2Vzc2lvbl9pdGVtKQotCi0KLWRlZiBzaG93Zml4dHVyZXMoY29uZmlnKToKLSAg
ICBmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgd3JhcF9zZXNzaW9uCi0gICAgcmV0dXJuIHdyYXBf
c2Vzc2lvbihjb25maWcsIF9zaG93Zml4dHVyZXNfbWFpbikKLQotCi1kZWYgX3Nob3dmaXh0dXJl
c19tYWluKGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAg
c2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoKQotICAgIGN1cmRpciA9IHB5LnBhdGgubG9jYWwoKQot
ICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcpCi0g
ICAgdmVyYm9zZSA9IGNvbmZpZy5nZXR2YWx1ZSgidmVyYm9zZSIpCi0KLSAgICBmbSA9IHNlc3Np
b24uX2ZpeHR1cmVtYW5hZ2VyCi0KLSAgICBhdmFpbGFibGUgPSBbXQotICAgIHNlZW4gPSBzZXQo
KQotCi0gICAgZm9yIGFyZ25hbWUsIGZpeHR1cmVkZWZzIGluIGZtLl9hcmcyZml4dHVyZWRlZnMu
aXRlbXMoKToKLSAgICAgICAgYXNzZXJ0IGZpeHR1cmVkZWZzIGlzIG5vdCBOb25lCi0gICAgICAg
IGlmIG5vdCBmaXh0dXJlZGVmczoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGZvciBm
aXh0dXJlZGVmIGluIGZpeHR1cmVkZWZzOgotICAgICAgICAgICAgbG9jID0gZ2V0bG9jYXRpb24o
Zml4dHVyZWRlZi5mdW5jLCBjdXJkaXIpCi0gICAgICAgICAgICBpZiAoZml4dHVyZWRlZi5hcmdu
YW1lLCBsb2MpIGluIHNlZW46Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAg
IHNlZW4uYWRkKChmaXh0dXJlZGVmLmFyZ25hbWUsIGxvYykpCi0gICAgICAgICAgICBhdmFpbGFi
bGUuYXBwZW5kKChsZW4oZml4dHVyZWRlZi5iYXNlaWQpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZml4dHVyZWRlZi5mdW5jLl9fbW9kdWxlX18sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjdXJkaXIuYmVzdHJlbHBhdGgobG9jKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpeHR1cmVkZWYuYXJnbmFtZSwgZml4dHVyZWRlZikpCi0KLSAgICBhdmFpbGFi
bGUuc29ydCgpCi0gICAgY3VycmVudG1vZHVsZSA9IE5vbmUKLSAgICBmb3IgYmFzZWlkLCBtb2R1
bGUsIGJlc3RyZWwsIGFyZ25hbWUsIGZpeHR1cmVkZWYgaW4gYXZhaWxhYmxlOgotICAgICAgICBp
ZiBjdXJyZW50bW9kdWxlICE9IG1vZHVsZToKLSAgICAgICAgICAgIGlmIG5vdCBtb2R1bGUuc3Rh
cnRzd2l0aCgiX3B5dGVzdC4iKToKLSAgICAgICAgICAgICAgICB0dy5saW5lKCkKLSAgICAgICAg
ICAgICAgICB0dy5zZXAoIi0iLCAiZml4dHVyZXMgZGVmaW5lZCBmcm9tICVzIiAlIChtb2R1bGUs
KSkKLSAgICAgICAgICAgICAgICBjdXJyZW50bW9kdWxlID0gbW9kdWxlCi0gICAgICAgIGlmIHZl
cmJvc2UgPD0gMCBhbmQgYXJnbmFtZVswXSA9PSAiXyI6Ci0gICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICBpZiB2ZXJib3NlID4gMDoKLSAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0gIiVzIC0t
ICVzIiAlIChhcmduYW1lLCBiZXN0cmVsLCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZ1
bmNhcmdzcGVjID0gYXJnbmFtZQotICAgICAgICB0dy5saW5lKGZ1bmNhcmdzcGVjLCBncmVlbj1U
cnVlKQotICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0dXJlZGVmLmZ1bmMsIGN1cmRpcikK
LSAgICAgICAgZG9jID0gZml4dHVyZWRlZi5mdW5jLl9fZG9jX18gb3IgIiIKLSAgICAgICAgaWYg
ZG9jOgotICAgICAgICAgICAgd3JpdGVfZG9jc3RyaW5nKHR3LCBkb2MpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICB0dy5saW5lKCIgICAgJXM6IG5vIGRvY3N0cmluZyBhdmFpbGFibGUiICUg
KGxvYywpLAotICAgICAgICAgICAgICAgICAgICByZWQ9VHJ1ZSkKLQotCi1kZWYgd3JpdGVfZG9j
c3RyaW5nKHR3LCBkb2MpOgotICAgIElOREVOVCA9ICIgICAgIgotICAgIGRvYyA9IGRvYy5yc3Ry
aXAoKQotICAgIGlmICJcbiIgaW4gZG9jOgotICAgICAgICBmaXJzdGxpbmUsIHJlc3QgPSBkb2Mu
c3BsaXQoIlxuIiwgMSkKLSAgICBlbHNlOgotICAgICAgICBmaXJzdGxpbmUsIHJlc3QgPSBkb2Ms
ICIiCi0KLSAgICBpZiBmaXJzdGxpbmUuc3RyaXAoKToKLSAgICAgICAgdHcubGluZShJTkRFTlQg
KyBmaXJzdGxpbmUuc3RyaXAoKSkKLQotICAgIGlmIHJlc3Q6Ci0gICAgICAgIGZvciBsaW5lIGlu
IGRlZGVudChyZXN0KS5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgIHR3LndyaXRlKElOREVOVCAr
IGxpbmUgKyAiXG4iKQotCi0KLWNsYXNzIEZ1bmN0aW9uKEZ1bmN0aW9uTWl4aW4sIG1haW4uSXRl
bSwgZml4dHVyZXMuRnVuY2FyZ25hbWVzQ29tcGF0QXR0cik6Ci0gICAgIiIiIGEgRnVuY3Rpb24g
SXRlbSBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBhbmQgZXhlY3V0aW5nIGEKLSAgICBQ
eXRob24gdGVzdCBmdW5jdGlvbi4KLSAgICAiIiIKLSAgICBfZ2VuaWQgPSBOb25lCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGFyZW50LCBhcmdzPU5vbmUsIGNvbmZpZz1Ob25lLAot
ICAgICAgICAgICAgICAgICBjYWxsc3BlYz1Ob25lLCBjYWxsb2JqPU5PVFNFVCwga2V5d29yZHM9
Tm9uZSwgc2Vzc2lvbj1Ob25lLAotICAgICAgICAgICAgICAgICBmaXh0dXJlaW5mbz1Ob25lLCBv
cmlnaW5hbG5hbWU9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEZ1bmN0aW9uLCBzZWxmKS5fX2luaXRf
XyhuYW1lLCBwYXJlbnQsIGNvbmZpZz1jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZXNzaW9uPXNlc3Npb24pCi0gICAgICAgIHNlbGYuX2FyZ3MgPSBhcmdz
Ci0gICAgICAgIGlmIGNhbGxvYmogaXMgbm90IE5PVFNFVDoKLSAgICAgICAgICAgIHNlbGYub2Jq
ID0gY2FsbG9iagotCi0gICAgICAgIHNlbGYua2V5d29yZHMudXBkYXRlKHNlbGYub2JqLl9fZGlj
dF9fKQotICAgICAgICBpZiBjYWxsc3BlYzoKLSAgICAgICAgICAgIHNlbGYuY2FsbHNwZWMgPSBj
YWxsc3BlYwotICAgICAgICAgICAgIyB0aGlzIGlzIHRvdGFsIGhvc3RpbGUgYW5kIGEgbWVzcwot
ICAgICAgICAgICAgIyBrZXl3b3JkcyBhcmUgYnJva2VuIGJ5IGRlc2lnbiBieSBub3cKLSAgICAg
ICAgICAgICMgdGhpcyB3aWxsIGJlIHJlZGVlbWVkIGxhdGVyCi0gICAgICAgICAgICBmb3IgbWFy
ayBpbiBjYWxsc3BlYy5tYXJrczoKLSAgICAgICAgICAgICAgICAjIGZlZWwgZnJlZSB0byBjcnks
IHRoaXMgd2FzIGJyb2tlbiBmb3IgeWVhcnMgYmVmb3JlCi0gICAgICAgICAgICAgICAgIyBhbmQg
a2V5d29yZHMgY2FudCBmaXggaXQgcGVyIGRlc2lnbgotICAgICAgICAgICAgICAgIHNlbGYua2V5
d29yZHNbbWFyay5uYW1lXSA9IG1hcmsKLSAgICAgICAgaWYga2V5d29yZHM6Ci0gICAgICAgICAg
ICBzZWxmLmtleXdvcmRzLnVwZGF0ZShrZXl3b3JkcykKLQotICAgICAgICBpZiBmaXh0dXJlaW5m
byBpcyBOb25lOgotICAgICAgICAgICAgZml4dHVyZWluZm8gPSBzZWxmLnNlc3Npb24uX2ZpeHR1
cmVtYW5hZ2VyLmdldGZpeHR1cmVpbmZvKAotICAgICAgICAgICAgICAgIHNlbGYucGFyZW50LCBz
ZWxmLm9iaiwgc2VsZi5jbHMsCi0gICAgICAgICAgICAgICAgZnVuY2FyZ3M9bm90IHNlbGYuX2lz
eWllbGRlZGZ1bmN0aW9uKCkpCi0gICAgICAgIHNlbGYuX2ZpeHR1cmVpbmZvID0gZml4dHVyZWlu
Zm8KLSAgICAgICAgc2VsZi5maXh0dXJlbmFtZXMgPSBmaXh0dXJlaW5mby5uYW1lc19jbG9zdXJl
Ci0gICAgICAgIHNlbGYuX2luaXRyZXF1ZXN0KCkKLQotICAgICAgICAjOiBvcmlnaW5hbCBmdW5j
dGlvbiBuYW1lLCB3aXRob3V0IGFueSBkZWNvcmF0aW9ucyAoZm9yIGV4YW1wbGUKLSAgICAgICAg
IzogcGFyYW1ldHJpemF0aW9uIGFkZHMgYSBgYCJbLi4uXSJgYCBzdWZmaXggdG8gZnVuY3Rpb24g
bmFtZXMpLgotICAgICAgICAjOgotICAgICAgICAjOiAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAg
ICAgICAgc2VsZi5vcmlnaW5hbG5hbWUgPSBvcmlnaW5hbG5hbWUKLQotICAgIGRlZiBfaW5pdHJl
cXVlc3Qoc2VsZik6Ci0gICAgICAgIHNlbGYuZnVuY2FyZ3MgPSB7fQotICAgICAgICBpZiBzZWxm
Ll9pc3lpZWxkZWRmdW5jdGlvbigpOgotICAgICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNl
bGYsICJjYWxsc3BlYyIpLCAoCi0gICAgICAgICAgICAgICAgInlpZWxkZWQgZnVuY3Rpb25zIChk
ZXByZWNhdGVkKSBjYW5ub3QgaGF2ZSBmdW5jYXJncyIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYsICJjYWxsc3BlYyIpOgotICAgICAgICAgICAgICAgIGNhbGxz
cGVjID0gc2VsZi5jYWxsc3BlYwotICAgICAgICAgICAgICAgIGFzc2VydCBub3QgY2FsbHNwZWMu
ZnVuY2FyZ3MKLSAgICAgICAgICAgICAgICBzZWxmLl9nZW5pZCA9IGNhbGxzcGVjLmlkCi0gICAg
ICAgICAgICAgICAgaWYgaGFzYXR0cihjYWxsc3BlYywgInBhcmFtIik6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYucGFyYW0gPSBjYWxsc3BlYy5wYXJhbQotICAgICAgICBzZWxmLl9yZXF1ZXN0
ID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3Qoc2VsZikKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBmdW5jdGlvbihzZWxmKToKLSAgICAgICAgInVuZGVybHlpbmcgcHl0aG9uICdmdW5jdGlvbicg
b2JqZWN0IgotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLm9iaiwgJ2ltX2Z1bmMnLCBzZWxm
Lm9iaikKLQotICAgIGRlZiBfZ2V0b2JqKHNlbGYpOgotICAgICAgICBuYW1lID0gc2VsZi5uYW1l
Ci0gICAgICAgIGkgPSBuYW1lLmZpbmQoIlsiKSAgIyBwYXJhbWV0cml6YXRpb24KLSAgICAgICAg
aWYgaSAhPSAtMToKLSAgICAgICAgICAgIG5hbWUgPSBuYW1lWzppXQotICAgICAgICByZXR1cm4g
Z2V0YXR0cihzZWxmLnBhcmVudC5vYmosIG5hbWUpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYg
X3B5ZnVuY2l0ZW0oc2VsZik6Ci0gICAgICAgICIoY29tcGF0b25seSkgZm9yIGNvZGUgZXhwZWN0
aW5nIHB5dGVzdC0yLjIgc3R5bGUgcmVxdWVzdCBvYmplY3RzIgotICAgICAgICByZXR1cm4gc2Vs
ZgotCi0gICAgZGVmIF9pc3lpZWxkZWRmdW5jdGlvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIGdl
dGF0dHIoc2VsZiwgIl9hcmdzIiwgTm9uZSkgaXMgbm90IE5vbmUKLQotICAgIGRlZiBydW50ZXN0
KHNlbGYpOgotICAgICAgICAiIiIgZXhlY3V0ZSB0aGUgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9u
LiAiIiIKLSAgICAgICAgc2VsZi5paG9vay5weXRlc3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbT1z
ZWxmKQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBzdXBlcihGdW5jdGlvbiwgc2Vs
Zikuc2V0dXAoKQotICAgICAgICBmaXh0dXJlcy5maWxsZml4dHVyZXMoc2VsZikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvcHl0aG9uX2FwaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE5NjAyOTVi
MzgxYmQwZTk5MjNmN2ZiM2QwMWFlMTExMjE0MmY5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw2MTkgKzAsMCBAQAotaW1wb3J0IG1hdGgKLWltcG9ydCBzeXMK
LQotaW1wb3J0IHB5Ci1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgemlwCi0KLWZyb20gX3B5dGVzdC5j
b21wYXQgaW1wb3J0IGlzY2xhc3MKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAot
aW1wb3J0IF9weXRlc3QuX2NvZGUKLQotCi1kZWYgX2NtcF9yYWlzZXNfdHlwZV9lcnJvcihzZWxm
LCBvdGhlcik6Ci0gICAgIiIiX19jbXBfXyBpbXBsZW1lbnRhdGlvbiB3aGljaCByYWlzZXMgVHlw
ZUVycm9yLiBVc2VkCi0gICAgYnkgQXBwcm94IGJhc2UgY2xhc3NlcyB0byBpbXBsZW1lbnQgb25s
eSA9PSBhbmQgIT0gYW5kIHJhaXNlIGEKLSAgICBUeXBlRXJyb3IgZm9yIG90aGVyIGNvbXBhcmlz
b25zLgotCi0gICAgTmVlZGVkIGluIFB5dGhvbiAyIG9ubHksIFB5dGhvbiAzIGFsbCBpdCB0YWtl
cyBpcyBub3QgaW1wbGVtZW50aW5nIHRoZQotICAgIG90aGVyIG9wZXJhdG9ycyBhdCBhbGwuCi0g
ICAgIiIiCi0gICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgcmFpc2UgVHlwZUVycm9y
KCdDb21wYXJpc29uIG9wZXJhdG9ycyBvdGhlciB0aGFuID09IGFuZCAhPSBub3Qgc3VwcG9ydGVk
IGJ5IGFwcHJveCBvYmplY3RzJykKLQotCi0jIGJ1aWx0aW4gcHl0ZXN0LmFwcHJveCBoZWxwZXIK
LQotCi1jbGFzcyBBcHByb3hCYXNlKG9iamVjdCk6Ci0gICAgIiIiCi0gICAgUHJvdmlkZSBzaGFy
ZWQgdXRpbGl0aWVzIGZvciBtYWtpbmcgYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgYmV0d2VlbiBu
dW1iZXJzCi0gICAgb3Igc2VxdWVuY2VzIG9mIG51bWJlcnMuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZXhwZWN0ZWQsIHJlbD1Ob25lLCBhYnM9Tm9uZSwgbmFuX29rPUZhbHNl
KToKLSAgICAgICAgc2VsZi5leHBlY3RlZCA9IGV4cGVjdGVkCi0gICAgICAgIHNlbGYuYWJzID0g
YWJzCi0gICAgICAgIHNlbGYucmVsID0gcmVsCi0gICAgICAgIHNlbGYubmFuX29rID0gbmFuX29r
Ci0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgcmV0dXJuIGFs
bCgKLSAgICAgICAgICAgIGEgPT0gc2VsZi5fYXBwcm94X3NjYWxhcih4KQotICAgICAgICAgICAg
Zm9yIGEsIHggaW4gc2VsZi5feWllbGRfY29tcGFyaXNvbnMoYWN0dWFsKSkKLQotICAgIF9faGFz
aF9fID0gTm9uZQotCi0gICAgZGVmIF9fbmVfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICByZXR1
cm4gbm90IChhY3R1YWwgPT0gc2VsZikKLQotICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0g
MjoKLSAgICAgICAgX19jbXBfXyA9IF9jbXBfcmFpc2VzX3R5cGVfZXJyb3IKLQotICAgIGRlZiBf
YXBwcm94X3NjYWxhcihzZWxmLCB4KToKLSAgICAgICAgcmV0dXJuIEFwcHJveFNjYWxhcih4LCBy
ZWw9c2VsZi5yZWwsIGFicz1zZWxmLmFicywgbmFuX29rPXNlbGYubmFuX29rKQotCi0gICAgZGVm
IF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgotICAgICAgICAiIiIKLSAgICAgICAg
WWllbGQgYWxsIHRoZSBwYWlycyBvZiBudW1iZXJzIHRvIGJlIGNvbXBhcmVkLiAgVGhpcyBpcyB1
c2VkIHRvCi0gICAgICAgIGltcGxlbWVudCB0aGUgYF9fZXFfX2AgbWV0aG9kLgotICAgICAgICAi
IiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0KLWNsYXNzIEFwcHJveE51
bXB5KEFwcHJveEJhc2UpOgotICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFy
aXNvbnMgZm9yIG51bXB5IGFycmF5cy4KLSAgICAiIiIKLQotICAgICMgVGVsbCBudW1weSB0byB1
c2Ugb3VyIGBfX2VxX19gIG9wZXJhdG9yIGluc3RlYWQgb2YgaXRzLgotICAgIF9fYXJyYXlfcHJp
b3JpdHlfXyA9IDEwMAotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICAjIEl0IG1p
Z2h0IGJlIG5pY2UgdG8gcmV3cml0ZSB0aGlzIGZ1bmN0aW9uIHRvIGFjY291bnQgZm9yIHRoZQot
ICAgICAgICAjIHNoYXBlIG9mIHRoZSBhcnJheS4uLgotICAgICAgICByZXR1cm4gImFwcHJveCh7
MCFyfSkiLmZvcm1hdChsaXN0KAotICAgICAgICAgICAgc2VsZi5fYXBwcm94X3NjYWxhcih4KSBm
b3IgeCBpbiBzZWxmLmV4cGVjdGVkKSkKLQotICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0g
MjoKLSAgICAgICAgX19jbXBfXyA9IF9jbXBfcmFpc2VzX3R5cGVfZXJyb3IKLQotICAgIGRlZiBf
X2VxX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgYWN0dWFsID0gbnAuYXNhcnJheShhY3R1YWwpCi0gICAgICAg
IGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJjYW5ub3QgY29t
cGFyZSAnezB9JyB0byBudW1weS5uZGFycmF5Ii5mb3JtYXQoYWN0dWFsKSkKLQotICAgICAgICBp
ZiBhY3R1YWwuc2hhcGUgIT0gc2VsZi5leHBlY3RlZC5zaGFwZToKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCi0gICAgICAgIHJldHVybiBBcHByb3hCYXNlLl9fZXFfXyhzZWxmLCBhY3R1YWwp
Ci0KLSAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIGlt
cG9ydCBudW1weSBhcyBucAotCi0gICAgICAgICMgV2UgY2FuIGJlIHN1cmUgdGhhdCBgYWN0dWFs
YCBpcyBhIG51bXB5IGFycmF5LCBiZWNhdXNlIGl0J3MKLSAgICAgICAgIyBjYXN0ZWQgaW4gYF9f
ZXFfX2AgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byBgQXBwcm94QmFzZS5fX2VxX19gLAotICAgICAg
ICAjIHdoaWNoIGlzIHRoZSBvbmx5IG1ldGhvZCB0aGF0IGNhbGxzIHRoaXMgb25lLgotICAgICAg
ICBmb3IgaSBpbiBucC5uZGluZGV4KHNlbGYuZXhwZWN0ZWQuc2hhcGUpOgotICAgICAgICAgICAg
eWllbGQgYWN0dWFsW2ldLCBzZWxmLmV4cGVjdGVkW2ldCi0KLQotY2xhc3MgQXBwcm94TWFwcGlu
ZyhBcHByb3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlz
b25zIGZvciBtYXBwaW5ncyB3aGVyZSB0aGUgdmFsdWVzIGFyZSBudW1iZXJzCi0gICAgKHRoZSBr
ZXlzIGNhbiBiZSBhbnl0aGluZykuCi0gICAgIiIiCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgIHJldHVybiAiYXBwcm94KHswIXJ9KSIuZm9ybWF0KGRpY3QoCi0gICAgICAgICAg
ICAoaywgc2VsZi5fYXBwcm94X3NjYWxhcih2KSkKLSAgICAgICAgICAgIGZvciBrLCB2IGluIHNl
bGYuZXhwZWN0ZWQuaXRlbXMoKSkpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Ci0g
ICAgICAgIGlmIHNldChhY3R1YWwua2V5cygpKSAhPSBzZXQoc2VsZi5leHBlY3RlZC5rZXlzKCkp
OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIEFwcHJveEJhc2Uu
X19lcV9fKHNlbGYsIGFjdHVhbCkKLQotICAgIGRlZiBfeWllbGRfY29tcGFyaXNvbnMoc2VsZiwg
YWN0dWFsKToKLSAgICAgICAgZm9yIGsgaW4gc2VsZi5leHBlY3RlZC5rZXlzKCk6Ci0gICAgICAg
ICAgICB5aWVsZCBhY3R1YWxba10sIHNlbGYuZXhwZWN0ZWRba10KLQotCi1jbGFzcyBBcHByb3hT
ZXF1ZW5jZShBcHByb3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNv
bXBhcmlzb25zIGZvciBzZXF1ZW5jZXMgb2YgbnVtYmVycy4KLSAgICAiIiIKLQotICAgICMgVGVs
bCBudW1weSB0byB1c2Ugb3VyIGBfX2VxX19gIG9wZXJhdG9yIGluc3RlYWQgb2YgaXRzLgotICAg
IF9fYXJyYXlfcHJpb3JpdHlfXyA9IDEwMAotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAg
ICAgICBzZXFfdHlwZSA9IHR5cGUoc2VsZi5leHBlY3RlZCkKLSAgICAgICAgaWYgc2VxX3R5cGUg
bm90IGluICh0dXBsZSwgbGlzdCwgc2V0KToKLSAgICAgICAgICAgIHNlcV90eXBlID0gbGlzdAot
ICAgICAgICByZXR1cm4gImFwcHJveCh7MCFyfSkiLmZvcm1hdChzZXFfdHlwZSgKLSAgICAgICAg
ICAgIHNlbGYuX2FwcHJveF9zY2FsYXIoeCkgZm9yIHggaW4gc2VsZi5leHBlY3RlZCkpCi0KLSAg
ICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIGlmIGxlbihhY3R1YWwpICE9IGxl
bihzZWxmLmV4cGVjdGVkKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1
cm4gQXBwcm94QmFzZS5fX2VxX18oc2VsZiwgYWN0dWFsKQotCi0gICAgZGVmIF95aWVsZF9jb21w
YXJpc29ucyhzZWxmLCBhY3R1YWwpOgotICAgICAgICByZXR1cm4gemlwKGFjdHVhbCwgc2VsZi5l
eHBlY3RlZCkKLQotCi1jbGFzcyBBcHByb3hTY2FsYXIoQXBwcm94QmFzZSk6Ci0gICAgIiIiCi0g
ICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Igc2luZ2xlIG51bWJlcnMgb25s
eS4KLSAgICAiIiIKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIFJldHVybiBhIHN0cmluZyBjb21tdW5pY2F0aW5nIGJvdGggdGhlIGV4cGVjdGVkIHZhbHVl
IGFuZCB0aGUgdG9sZXJhbmNlCi0gICAgICAgIGZvciB0aGUgY29tcGFyaXNvbiBiZWluZyBtYWRl
LCBlLmcuICcxLjAgKy0gMWUtNicuICBVc2UgdGhlIHVuaWNvZGUKLSAgICAgICAgcGx1cy9taW51
cyBzeW1ib2wgaWYgdGhpcyBpcyBweXRob24zIChpdCdzIHRvbyBoYXJkIHRvIGdldCByaWdodCBm
b3IKLSAgICAgICAgcHl0aG9uMikuCi0gICAgICAgICIiIgotICAgICAgICBpZiBpc2luc3RhbmNl
KHNlbGYuZXhwZWN0ZWQsIGNvbXBsZXgpOgotICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmV4
cGVjdGVkKQotCi0gICAgICAgICMgSW5maW5pdGllcyBhcmVuJ3QgY29tcGFyZWQgdXNpbmcgdG9s
ZXJhbmNlcywgc28gZG9uJ3Qgc2hvdyBhCi0gICAgICAgICMgdG9sZXJhbmNlLgotICAgICAgICBp
ZiBtYXRoLmlzaW5mKHNlbGYuZXhwZWN0ZWQpOgotICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxm
LmV4cGVjdGVkKQotCi0gICAgICAgICMgSWYgYSBzZW5zaWJsZSB0b2xlcmFuY2UgY2FuJ3QgYmUg
Y2FsY3VsYXRlZCwgc2VsZi50b2xlcmFuY2Ugd2lsbAotICAgICAgICAjIHJhaXNlIGEgVmFsdWVF
cnJvci4gIEluIHRoaXMgY2FzZSwgZGlzcGxheSAnPz8/Jy4KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgdmV0dGVkX3RvbGVyYW5jZSA9ICd7Oi4xZX0nLmZvcm1hdChzZWxmLnRvbGVyYW5jZSkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICB2ZXR0ZWRfdG9sZXJhbmNl
ID0gJz8/PycKLQotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAgICAg
ICAgICByZXR1cm4gJ3swfSArLSB7MX0nLmZvcm1hdChzZWxmLmV4cGVjdGVkLCB2ZXR0ZWRfdG9s
ZXJhbmNlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHUnezB9IFx1MDBiMSB7
MX0nLmZvcm1hdChzZWxmLmV4cGVjdGVkLCB2ZXR0ZWRfdG9sZXJhbmNlKQotCi0gICAgZGVmIF9f
ZXFfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIHRydWUgaWYg
dGhlIGdpdmVuIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBleHBlY3RlZCB2YWx1ZSB3aXRoaW4KLSAg
ICAgICAgdGhlIHByZS1zcGVjaWZpZWQgdG9sZXJhbmNlLgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIFNob3J0LWNpcmN1aXQgZXhhY3QgZXF1YWxpdHkuCi0gICAgICAgIGlmIGFjdHVhbCA9PSBz
ZWxmLmV4cGVjdGVkOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICAjIEFsbG93
IHRoZSB1c2VyIHRvIGNvbnRyb2wgd2hldGhlciBOYU5zIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRv
IGVhY2gKLSAgICAgICAgIyBvdGhlciBvciBub3QuICBUaGUgYWJzKCkgY2FsbHMgYXJlIGZvciBj
b21wYXRpYmlsaXR5IHdpdGggY29tcGxleAotICAgICAgICAjIG51bWJlcnMuCi0gICAgICAgIGlm
IG1hdGguaXNuYW4oYWJzKHNlbGYuZXhwZWN0ZWQpKToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Lm5hbl9vayBhbmQgbWF0aC5pc25hbihhYnMoYWN0dWFsKSkKLQotICAgICAgICAjIEluZmluaXR5
IHNob3VsZG4ndCBiZSBhcHByb3hpbWF0ZWx5IGVxdWFsIHRvIGFueXRoaW5nIGJ1dCBpdHNlbGYs
IGJ1dAotICAgICAgICAjIGlmIHRoZXJlJ3MgYSByZWxhdGl2ZSB0b2xlcmFuY2UsIGl0IHdpbGwg
YmUgaW5maW5pdGUgYW5kIGluZmluaXR5Ci0gICAgICAgICMgd2lsbCBzZWVtIGFwcHJveGltYXRl
bHkgZXF1YWwgdG8gZXZlcnl0aGluZy4gIFRoZSBlcXVhbC10by1pdHNlbGYKLSAgICAgICAgIyBj
YXNlIHdvdWxkIGhhdmUgYmVlbiBzaG9ydCBjaXJjdWl0ZWQgYWJvdmUsIHNvIGhlcmUgd2UgY2Fu
IGp1c3QKLSAgICAgICAgIyByZXR1cm4gZmFsc2UgaWYgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGlu
ZmluaXRlLiAgVGhlIGFicygpIGNhbGwgaXMKLSAgICAgICAgIyBmb3IgY29tcGF0aWJpbGl0eSB3
aXRoIGNvbXBsZXggbnVtYmVycy4KLSAgICAgICAgaWYgbWF0aC5pc2luZihhYnMoc2VsZi5leHBl
Y3RlZCkpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgIyBSZXR1cm4gdHJ1
ZSBpZiB0aGUgdHdvIG51bWJlcnMgYXJlIHdpdGhpbiB0aGUgdG9sZXJhbmNlLgotICAgICAgICBy
ZXR1cm4gYWJzKHNlbGYuZXhwZWN0ZWQgLSBhY3R1YWwpIDw9IHNlbGYudG9sZXJhbmNlCi0KLSAg
ICBfX2hhc2hfXyA9IE5vbmUKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiB0b2xlcmFuY2Uoc2Vs
Zik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gdGhlIHRvbGVyYW5jZSBmb3IgdGhlIGNv
bXBhcmlzb24uICBUaGlzIGNvdWxkIGJlIGVpdGhlciBhbgotICAgICAgICBhYnNvbHV0ZSB0b2xl
cmFuY2Ugb3IgYSByZWxhdGl2ZSB0b2xlcmFuY2UsIGRlcGVuZGluZyBvbiB3aGF0IHRoZSB1c2Vy
Ci0gICAgICAgIHNwZWNpZmllZCBvciB3aGljaCB3b3VsZCBiZSBsYXJnZXIuCi0gICAgICAgICIi
IgotICAgICAgICBkZWYgc2V0X2RlZmF1bHQoeCwgZGVmYXVsdCk6Ci0gICAgICAgICAgICByZXR1
cm4geCBpZiB4IGlzIG5vdCBOb25lIGVsc2UgZGVmYXVsdAotCi0gICAgICAgICMgRmlndXJlIG91
dCB3aGF0IHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2Ugc2hvdWxkIGJlLiAgYGBzZWxmLmFic2BgIGlz
Ci0gICAgICAgICMgZWl0aGVyIE5vbmUgb3IgYSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIu
Ci0gICAgICAgIGFic29sdXRlX3RvbGVyYW5jZSA9IHNldF9kZWZhdWx0KHNlbGYuYWJzLCAxZS0x
MikKLQotICAgICAgICBpZiBhYnNvbHV0ZV90b2xlcmFuY2UgPCAwOgotICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiYWJzb2x1dGUgdG9sZXJhbmNlIGNhbid0IGJlIG5lZ2F0aXZlOiB7fSIu
Zm9ybWF0KGFic29sdXRlX3RvbGVyYW5jZSkpCi0gICAgICAgIGlmIG1hdGguaXNuYW4oYWJzb2x1
dGVfdG9sZXJhbmNlKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFic29sdXRlIHRv
bGVyYW5jZSBjYW4ndCBiZSBOYU4uIikKLQotICAgICAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmll
ZCBhbiBhYnNvbHV0ZSB0b2xlcmFuY2UgYnV0IG5vdCBhIHJlbGF0aXZlIG9uZSwKLSAgICAgICAg
IyBqdXN0IHJldHVybiB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlLgotICAgICAgICBpZiBzZWxmLnJl
bCBpcyBOb25lOgotICAgICAgICAgICAgaWYgc2VsZi5hYnMgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIGFic29sdXRlX3RvbGVyYW5jZQotCi0gICAgICAgICMgRmlndXJlIG91
dCB3aGF0IHRoZSByZWxhdGl2ZSB0b2xlcmFuY2Ugc2hvdWxkIGJlLiAgYGBzZWxmLnJlbGBgIGlz
Ci0gICAgICAgICMgZWl0aGVyIE5vbmUgb3IgYSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIu
ICBUaGlzIGlzIGRvbmUgYWZ0ZXIKLSAgICAgICAgIyB3ZSd2ZSBtYWRlIHN1cmUgdGhlIHVzZXIg
ZGlkbid0IGFzayBmb3IgYW4gYWJzb2x1dGUgdG9sZXJhbmNlIG9ubHksCi0gICAgICAgICMgYmVj
YXVzZSB3ZSBkb24ndCB3YW50IHRvIHJhaXNlIGVycm9ycyBhYm91dCB0aGUgcmVsYXRpdmUgdG9s
ZXJhbmNlIGlmCi0gICAgICAgICMgd2UgYXJlbid0IGV2ZW4gZ29pbmcgdG8gdXNlIGl0LgotICAg
ICAgICByZWxhdGl2ZV90b2xlcmFuY2UgPSBzZXRfZGVmYXVsdChzZWxmLnJlbCwgMWUtNikgKiBh
YnMoc2VsZi5leHBlY3RlZCkKLQotICAgICAgICBpZiByZWxhdGl2ZV90b2xlcmFuY2UgPCAwOgot
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicmVsYXRpdmUgdG9sZXJhbmNlIGNhbid0IGJl
IG5lZ2F0aXZlOiB7fSIuZm9ybWF0KGFic29sdXRlX3RvbGVyYW5jZSkpCi0gICAgICAgIGlmIG1h
dGguaXNuYW4ocmVsYXRpdmVfdG9sZXJhbmNlKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoInJlbGF0aXZlIHRvbGVyYW5jZSBjYW4ndCBiZSBOYU4uIikKLQotICAgICAgICAjIFJldHVy
biB0aGUgbGFyZ2VyIG9mIHRoZSByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcy4KLSAg
ICAgICAgcmV0dXJuIG1heChyZWxhdGl2ZV90b2xlcmFuY2UsIGFic29sdXRlX3RvbGVyYW5jZSkK
LQotCi1kZWYgYXBwcm94KGV4cGVjdGVkLCByZWw9Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1GYWxz
ZSk6Ci0gICAgIiIiCi0gICAgQXNzZXJ0IHRoYXQgdHdvIG51bWJlcnMgKG9yIHR3byBzZXRzIG9m
IG51bWJlcnMpIGFyZSBlcXVhbCB0byBlYWNoIG90aGVyCi0gICAgd2l0aGluIHNvbWUgdG9sZXJh
bmNlLgotCi0gICAgRHVlIHRvIHRoZSBgaW50cmljYWNpZXMgb2YgZmxvYXRpbmctcG9pbnQgYXJp
dGhtZXRpY2BfXywgbnVtYmVycyB0aGF0IHdlCi0gICAgd291bGQgaW50dWl0aXZlbHkgZXhwZWN0
IHRvIGJlIGVxdWFsIGFyZSBub3QgYWx3YXlzIHNvOjoKLQotICAgICAgICA+Pj4gMC4xICsgMC4y
ID09IDAuMwotICAgICAgICBGYWxzZQotCi0gICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcv
My90dXRvcmlhbC9mbG9hdGluZ3BvaW50Lmh0bWwKLQotICAgIFRoaXMgcHJvYmxlbSBpcyBjb21t
b25seSBlbmNvdW50ZXJlZCB3aGVuIHdyaXRpbmcgdGVzdHMsIGUuZy4gd2hlbiBtYWtpbmcKLSAg
ICBzdXJlIHRoYXQgZmxvYXRpbmctcG9pbnQgdmFsdWVzIGFyZSB3aGF0IHlvdSBleHBlY3QgdGhl
bSB0byBiZS4gIE9uZSB3YXkgdG8KLSAgICBkZWFsIHdpdGggdGhpcyBwcm9ibGVtIGlzIHRvIGFz
c2VydCB0aGF0IHR3byBmbG9hdGluZy1wb2ludCBudW1iZXJzIGFyZQotICAgIGVxdWFsIHRvIHdp
dGhpbiBzb21lIGFwcHJvcHJpYXRlIHRvbGVyYW5jZTo6Ci0KLSAgICAgICAgPj4+IGFicygoMC4x
ICsgMC4yKSAtIDAuMykgPCAxZS02Ci0gICAgICAgIFRydWUKLQotICAgIEhvd2V2ZXIsIGNvbXBh
cmlzb25zIGxpa2UgdGhpcyBhcmUgdGVkaW91cyB0byB3cml0ZSBhbmQgZGlmZmljdWx0IHRvCi0g
ICAgdW5kZXJzdGFuZC4gIEZ1cnRoZXJtb3JlLCBhYnNvbHV0ZSBjb21wYXJpc29ucyBsaWtlIHRo
ZSBvbmUgYWJvdmUgYXJlCi0gICAgdXN1YWxseSBkaXNjb3VyYWdlZCBiZWNhdXNlIHRoZXJlJ3Mg
bm8gdG9sZXJhbmNlIHRoYXQgd29ya3Mgd2VsbCBmb3IgYWxsCi0gICAgc2l0dWF0aW9ucy4gIGBg
MWUtNmBgIGlzIGdvb2QgZm9yIG51bWJlcnMgYXJvdW5kIGBgMWBgLCBidXQgdG9vIHNtYWxsIGZv
cgotICAgIHZlcnkgYmlnIG51bWJlcnMgYW5kIHRvbyBiaWcgZm9yIHZlcnkgc21hbGwgb25lcy4g
IEl0J3MgYmV0dGVyIHRvIGV4cHJlc3MKLSAgICB0aGUgdG9sZXJhbmNlIGFzIGEgZnJhY3Rpb24g
b2YgdGhlIGV4cGVjdGVkIHZhbHVlLCBidXQgcmVsYXRpdmUgY29tcGFyaXNvbnMKLSAgICBsaWtl
IHRoYXQgYXJlIGV2ZW4gbW9yZSBkaWZmaWN1bHQgdG8gd3JpdGUgY29ycmVjdGx5IGFuZCBjb25j
aXNlbHkuCi0KLSAgICBUaGUgYGBhcHByb3hgYCBjbGFzcyBwZXJmb3JtcyBmbG9hdGluZy1wb2lu
dCBjb21wYXJpc29ucyB1c2luZyBhIHN5bnRheAotICAgIHRoYXQncyBhcyBpbnR1aXRpdmUgYXMg
cG9zc2libGU6OgotCi0gICAgICAgID4+PiBmcm9tIHB5dGVzdCBpbXBvcnQgYXBwcm94Ci0gICAg
ICAgID4+PiAwLjEgKyAwLjIgPT0gYXBwcm94KDAuMykKLSAgICAgICAgVHJ1ZQotCi0gICAgVGhl
IHNhbWUgc3ludGF4IGFsc28gd29ya3MgZm9yIHNlcXVlbmNlcyBvZiBudW1iZXJzOjoKLQotICAg
ICAgICA+Pj4gKDAuMSArIDAuMiwgMC4yICsgMC40KSA9PSBhcHByb3goKDAuMywgMC42KSkKLSAg
ICAgICAgVHJ1ZQotCi0gICAgRGljdGlvbmFyeSAqdmFsdWVzKjo6Ci0KLSAgICAgICAgPj4+IHsn
YSc6IDAuMSArIDAuMiwgJ2InOiAwLjIgKyAwLjR9ID09IGFwcHJveCh7J2EnOiAwLjMsICdiJzog
MC42fSkKLSAgICAgICAgVHJ1ZQotCi0gICAgQW5kIGBgbnVtcHlgYCBhcnJheXM6OgotCi0gICAg
ICAgID4+PiBpbXBvcnQgbnVtcHkgYXMgbnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkb2N0ZXN0OiArU0tJUAotICAgICAgICA+Pj4g
bnAuYXJyYXkoWzAuMSwgMC4yXSkgKyBucC5hcnJheShbMC4yLCAwLjRdKSA9PSBhcHByb3gobnAu
YXJyYXkoWzAuMywgMC42XSkpICMgZG9jdGVzdDogK1NLSVAKLSAgICAgICAgVHJ1ZQotCi0gICAg
QnkgZGVmYXVsdCwgYGBhcHByb3hgYCBjb25zaWRlcnMgbnVtYmVycyB3aXRoaW4gYSByZWxhdGl2
ZSB0b2xlcmFuY2Ugb2YKLSAgICBgYDFlLTZgYCAoaS5lLiBvbmUgcGFydCBpbiBhIG1pbGxpb24p
IG9mIGl0cyBleHBlY3RlZCB2YWx1ZSB0byBiZSBlcXVhbC4KLSAgICBUaGlzIHRyZWF0bWVudCB3
b3VsZCBsZWFkIHRvIHN1cnByaXNpbmcgcmVzdWx0cyBpZiB0aGUgZXhwZWN0ZWQgdmFsdWUgd2Fz
Ci0gICAgYGAwLjBgYCwgYmVjYXVzZSBub3RoaW5nIGJ1dCBgYDAuMGBgIGl0c2VsZiBpcyByZWxh
dGl2ZWx5IGNsb3NlIHRvIGBgMC4wYGAuCi0gICAgVG8gaGFuZGxlIHRoaXMgY2FzZSBsZXNzIHN1
cnByaXNpbmdseSwgYGBhcHByb3hgYCBhbHNvIGNvbnNpZGVycyBudW1iZXJzCi0gICAgd2l0aGlu
IGFuIGFic29sdXRlIHRvbGVyYW5jZSBvZiBgYDFlLTEyYGAgb2YgaXRzIGV4cGVjdGVkIHZhbHVl
IHRvIGJlCi0gICAgZXF1YWwuICBJbmZpbml0eSBhbmQgTmFOIGFyZSBzcGVjaWFsIGNhc2VzLiAg
SW5maW5pdHkgaXMgb25seSBjb25zaWRlcmVkCi0gICAgZXF1YWwgdG8gaXRzZWxmLCByZWdhcmRs
ZXNzIG9mIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UuICBOYU4gaXMgbm90Ci0gICAgY29uc2lkZXJl
ZCBlcXVhbCB0byBhbnl0aGluZyBieSBkZWZhdWx0LCBidXQgeW91IGNhbiBtYWtlIGl0IGJlIGVx
dWFsIHRvCi0gICAgaXRzZWxmIGJ5IHNldHRpbmcgdGhlIGBgbmFuX29rYGAgYXJndW1lbnQgdG8g
VHJ1ZS4gIChUaGlzIGlzIG1lYW50IHRvCi0gICAgZmFjaWxpdGF0ZSBjb21wYXJpbmcgYXJyYXlz
IHRoYXQgdXNlIE5hTiB0byBtZWFuICJubyBkYXRhIi4pCi0KLSAgICBCb3RoIHRoZSByZWxhdGl2
ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcyBjYW4gYmUgY2hhbmdlZCBieSBwYXNzaW5nCi0gICAg
YXJndW1lbnRzIHRvIHRoZSBgYGFwcHJveGBgIGNvbnN0cnVjdG9yOjoKLQotICAgICAgICA+Pj4g
MS4wMDAxID09IGFwcHJveCgxKQotICAgICAgICBGYWxzZQotICAgICAgICA+Pj4gMS4wMDAxID09
IGFwcHJveCgxLCByZWw9MWUtMykKLSAgICAgICAgVHJ1ZQotICAgICAgICA+Pj4gMS4wMDAxID09
IGFwcHJveCgxLCBhYnM9MWUtMykKLSAgICAgICAgVHJ1ZQotCi0gICAgSWYgeW91IHNwZWNpZnkg
YGBhYnNgYCBidXQgbm90IGBgcmVsYGAsIHRoZSBjb21wYXJpc29uIHdpbGwgbm90IGNvbnNpZGVy
Ci0gICAgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBhdCBhbGwuICBJbiBvdGhlciB3b3JkcywgdHdv
IG51bWJlcnMgdGhhdCBhcmUgd2l0aGluCi0gICAgdGhlIGRlZmF1bHQgcmVsYXRpdmUgdG9sZXJh
bmNlIG9mIGBgMWUtNmBgIHdpbGwgc3RpbGwgYmUgY29uc2lkZXJlZCB1bmVxdWFsCi0gICAgaWYg
dGhleSBleGNlZWQgdGhlIHNwZWNpZmllZCBhYnNvbHV0ZSB0b2xlcmFuY2UuICBJZiB5b3Ugc3Bl
Y2lmeSBib3RoCi0gICAgYGBhYnNgYCBhbmQgYGByZWxgYCwgdGhlIG51bWJlcnMgd2lsbCBiZSBj
b25zaWRlcmVkIGVxdWFsIGlmIGVpdGhlcgotICAgIHRvbGVyYW5jZSBpcyBtZXQ6OgotCi0gICAg
ICAgID4+PiAxICsgMWUtOCA9PSBhcHByb3goMSkKLSAgICAgICAgVHJ1ZQotICAgICAgICA+Pj4g
MSArIDFlLTggPT0gYXBwcm94KDEsIGFicz0xZS0xMikKLSAgICAgICAgRmFsc2UKLSAgICAgICAg
Pj4+IDEgKyAxZS04ID09IGFwcHJveCgxLCByZWw9MWUtNiwgYWJzPTFlLTEyKQotICAgICAgICBU
cnVlCi0KLSAgICBJZiB5b3UncmUgdGhpbmtpbmcgYWJvdXQgdXNpbmcgYGBhcHByb3hgYCwgdGhl
biB5b3UgbWlnaHQgd2FudCB0byBrbm93IGhvdwotICAgIGl0IGNvbXBhcmVzIHRvIG90aGVyIGdv
b2Qgd2F5cyBvZiBjb21wYXJpbmcgZmxvYXRpbmctcG9pbnQgbnVtYmVycy4gIEFsbCBvZgotICAg
IHRoZXNlIGFsZ29yaXRobXMgYXJlIGJhc2VkIG9uIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSB0b2xl
cmFuY2VzIGFuZCBzaG91bGQKLSAgICBhZ3JlZSBmb3IgdGhlIG1vc3QgcGFydCwgYnV0IHRoZXkg
ZG8gaGF2ZSBtZWFuaW5nZnVsIGRpZmZlcmVuY2VzOgotCi0gICAgLSBgYG1hdGguaXNjbG9zZShh
LCBiLCByZWxfdG9sPTFlLTksIGFic190b2w9MC4wKWBgOiAgVHJ1ZSBpZiB0aGUgcmVsYXRpdmUK
LSAgICAgIHRvbGVyYW5jZSBpcyBtZXQgdy5yLnQuIGVpdGhlciBgYGFgYCBvciBgYGJgYCBvciBp
ZiB0aGUgYWJzb2x1dGUKLSAgICAgIHRvbGVyYW5jZSBpcyBtZXQuICBCZWNhdXNlIHRoZSByZWxh
dGl2ZSB0b2xlcmFuY2UgaXMgY2FsY3VsYXRlZCB3LnIudC4KLSAgICAgIGJvdGggYGBhYGAgYW5k
IGBgYmBgLCB0aGlzIHRlc3QgaXMgc3ltbWV0cmljIChpLmUuICBuZWl0aGVyIGBgYWBgIG5vcgot
ICAgICAgYGBiYGAgaXMgYSAicmVmZXJlbmNlIHZhbHVlIikuICBZb3UgaGF2ZSB0byBzcGVjaWZ5
IGFuIGFic29sdXRlIHRvbGVyYW5jZQotICAgICAgaWYgeW91IHdhbnQgdG8gY29tcGFyZSB0byBg
YDAuMGBgIGJlY2F1c2UgdGhlcmUgaXMgbm8gdG9sZXJhbmNlIGJ5Ci0gICAgICBkZWZhdWx0LiAg
T25seSBhdmFpbGFibGUgaW4gcHl0aG9uPj0zLjUuICBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXwot
Ci0gICAgICBfXyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvbWF0aC5odG1sI21h
dGguaXNjbG9zZQotCi0gICAgLSBgYG51bXB5LmlzY2xvc2UoYSwgYiwgcnRvbD0xZS01LCBhdG9s
PTFlLTgpYGA6IFRydWUgaWYgdGhlIGRpZmZlcmVuY2UKLSAgICAgIGJldHdlZW4gYGBhYGAgYW5k
IGBgYmBgIGlzIGxlc3MgdGhhdCB0aGUgc3VtIG9mIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UKLSAg
ICAgIHcuci50LiBgYGJgYCBhbmQgdGhlIGFic29sdXRlIHRvbGVyYW5jZS4gIEJlY2F1c2UgdGhl
IHJlbGF0aXZlIHRvbGVyYW5jZQotICAgICAgaXMgb25seSBjYWxjdWxhdGVkIHcuci50LiBgYGJg
YCwgdGhpcyB0ZXN0IGlzIGFzeW1tZXRyaWMgYW5kIHlvdSBjYW4KLSAgICAgIHRoaW5rIG9mIGBg
YmBgIGFzIHRoZSByZWZlcmVuY2UgdmFsdWUuICBTdXBwb3J0IGZvciBjb21wYXJpbmcgc2VxdWVu
Y2VzCi0gICAgICBpcyBwcm92aWRlZCBieSBgYG51bXB5LmFsbGNsb3NlYGAuICBgTW9yZSBpbmZv
cm1hdGlvbi4uLmBfXwotCi0gICAgICBfXyBodHRwOi8vZG9jcy5zY2lweS5vcmcvZG9jL251bXB5
LTEuMTAuMC9yZWZlcmVuY2UvZ2VuZXJhdGVkL251bXB5LmlzY2xvc2UuaHRtbAotCi0gICAgLSBg
YHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEFsbW9zdEVxdWFsKGEsIGIpYGA6IFRydWUgaWYgYGBh
YGAgYW5kIGBgYmBgCi0gICAgICBhcmUgd2l0aGluIGFuIGFic29sdXRlIHRvbGVyYW5jZSBvZiBg
YDFlLTdgYC4gIE5vIHJlbGF0aXZlIHRvbGVyYW5jZSBpcwotICAgICAgY29uc2lkZXJlZCBhbmQg
dGhlIGFic29sdXRlIHRvbGVyYW5jZSBjYW5ub3QgYmUgY2hhbmdlZCwgc28gdGhpcyBmdW5jdGlv
bgotICAgICAgaXMgbm90IGFwcHJvcHJpYXRlIGZvciB2ZXJ5IGxhcmdlIG9yIHZlcnkgc21hbGwg
bnVtYmVycy4gIEFsc28sIGl0J3Mgb25seQotICAgICAgYXZhaWxhYmxlIGluIHN1YmNsYXNzZXMg
b2YgYGB1bml0dGVzdC5UZXN0Q2FzZWBgIGFuZCBpdCdzIHVnbHkgYmVjYXVzZSBpdAotICAgICAg
ZG9lc24ndCBmb2xsb3cgUEVQOC4gIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9fCi0KLSAgICAgIF9f
IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sI3VuaXR0ZXN0
LlRlc3RDYXNlLmFzc2VydEFsbW9zdEVxdWFsCi0KLSAgICAtIGBgYSA9PSBweXRlc3QuYXBwcm94
KGIsIHJlbD0xZS02LCBhYnM9MWUtMTIpYGA6IFRydWUgaWYgdGhlIHJlbGF0aXZlCi0gICAgICB0
b2xlcmFuY2UgaXMgbWV0IHcuci50LiBgYGJgYCBvciBpZiB0aGUgYWJzb2x1dGUgdG9sZXJhbmNl
IGlzIG1ldC4KLSAgICAgIEJlY2F1c2UgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBpcyBvbmx5IGNh
bGN1bGF0ZWQgdy5yLnQuIGBgYmBgLCB0aGlzIHRlc3QKLSAgICAgIGlzIGFzeW1tZXRyaWMgYW5k
IHlvdSBjYW4gdGhpbmsgb2YgYGBiYGAgYXMgdGhlIHJlZmVyZW5jZSB2YWx1ZS4gIEluIHRoZQot
ICAgICAgc3BlY2lhbCBjYXNlIHRoYXQgeW91IGV4cGxpY2l0bHkgc3BlY2lmeSBhbiBhYnNvbHV0
ZSB0b2xlcmFuY2UgYnV0IG5vdCBhCi0gICAgICByZWxhdGl2ZSB0b2xlcmFuY2UsIG9ubHkgdGhl
IGFic29sdXRlIHRvbGVyYW5jZSBpcyBjb25zaWRlcmVkLgotCi0gICAgLi4gd2FybmluZzo6Ci0K
LSAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgotCi0gICAgICAgSW4gb3JkZXIgdG8gYXZv
aWQgaW5jb25zaXN0ZW50IGJlaGF2aW9yLCBgYFR5cGVFcnJvcmBgIGlzCi0gICAgICAgcmFpc2Vk
IGZvciBgYD5gYCwgYGA+PWBgLCBgYDxgYCBhbmQgYGA8PWBgIGNvbXBhcmlzb25zLgotICAgICAg
IFRoZSBleGFtcGxlIGJlbG93IGlsbHVzdHJhdGVzIHRoZSBwcm9ibGVtOjoKLQotICAgICAgICAg
ICBhc3NlcnQgYXBwcm94KDAuMSkgPiAwLjEgKyAxZS0xMCAgIyBjYWxscyBhcHByb3goMC4xKS5f
X2d0X18oMC4xICsgMWUtMTApCi0gICAgICAgICAgIGFzc2VydCAwLjEgKyAxZS0xMCA+IGFwcHJv
eCgwLjEpICAjIGNhbGxzIGFwcHJveCgwLjEpLl9fbHRfXygwLjEgKyAxZS0xMCkKLQotICAgICAg
IEluIHRoZSBzZWNvbmQgZXhhbXBsZSBvbmUgZXhwZWN0cyBgYGFwcHJveCgwLjEpLl9fbGVfXygw
LjEgKyAxZS0xMClgYAotICAgICAgIHRvIGJlIGNhbGxlZC4gQnV0IGluc3RlYWQsIGBgYXBwcm94
KDAuMSkuX19sdF9fKDAuMSArIDFlLTEwKWBgIGlzIHVzZWQgdG8KLSAgICAgICBjb21wYXJpc29u
LiBUaGlzIGlzIGJlY2F1c2UgdGhlIGNhbGwgaGllcmFyY2h5IG9mIHJpY2ggY29tcGFyaXNvbnMK
LSAgICAgICBmb2xsb3dzIGEgZml4ZWQgYmVoYXZpb3IuIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9f
Ci0KLSAgICAgICBfXyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9k
ZWwuaHRtbCNvYmplY3QuX19nZV9fCi0gICAgIiIiCi0KLSAgICBmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBNYXBwaW5nLCBTZXF1ZW5jZQotICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IFNU
UklOR19UWVBFUyBhcyBTdHJpbmcKLQotICAgICMgRGVsZWdhdGUgdGhlIGNvbXBhcmlzb24gdG8g
YSBjbGFzcyB0aGF0IGtub3dzIGhvdyB0byBkZWFsIHdpdGggdGhlIHR5cGUKLSAgICAjIG9mIHRo
ZSBleHBlY3RlZCB2YWx1ZSAoZS5nLiBpbnQsIGZsb2F0LCBsaXN0LCBkaWN0LCBudW1weS5hcnJh
eSwgZXRjKS4KLSAgICAjCi0gICAgIyBUaGlzIGFyY2hpdGVjdHVyZSBpcyByZWFsbHkgZHJpdmVu
IGJ5IHRoZSBuZWVkIHRvIHN1cHBvcnQgbnVtcHkgYXJyYXlzLgotICAgICMgVGhlIG9ubHkgd2F5
IHRvIG92ZXJyaWRlIGA9PWAgZm9yIGFycmF5cyB3aXRob3V0IHJlcXVpcmluZyB0aGF0IGFwcHJv
eCBiZQotICAgICMgdGhlIGxlZnQgb3BlcmFuZCBpcyB0byBpbmhlcml0IHRoZSBhcHByb3ggb2Jq
ZWN0IGZyb20gYG51bXB5Lm5kYXJyYXlgLgotICAgICMgQnV0IHRoYXQgY2FuJ3QgYmUgYSBnZW5l
cmFsIHNvbHV0aW9uLCBiZWNhdXNlIGl0IHJlcXVpcmVzICgxKSBudW1weSB0byBiZQotICAgICMg
aW5zdGFsbGVkIGFuZCAoMikgdGhlIGV4cGVjdGVkIHZhbHVlIHRvIGJlIGEgbnVtcHkgYXJyYXku
ICBTbyB0aGUgZ2VuZXJhbAotICAgICMgc29sdXRpb24gaXMgdG8gZGVsZWdhdGUgZWFjaCB0eXBl
IG9mIGV4cGVjdGVkIHZhbHVlIHRvIGEgZGlmZmVyZW50IGNsYXNzLgotICAgICMKLSAgICAjIFRo
aXMgaGFzIHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCBtYWRlIGl0IGVhc3kgdG8gc3VwcG9ydCBtYXBw
aW5nIHR5cGVzCi0gICAgIyAoaS5lLiBkaWN0KS4gIFRoZSBvbGQgY29kZSBhY2NlcHRlZCBtYXBw
aW5nIHR5cGVzLCBidXQgd291bGQgb25seSBjb21wYXJlCi0gICAgIyB0aGVpciBrZXlzLCB3aGlj
aCBpcyBwcm9iYWJseSBub3Qgd2hhdCBtb3N0IHBlb3BsZSB3b3VsZCBleHBlY3QuCi0KLSAgICBp
ZiBfaXNfbnVtcHlfYXJyYXkoZXhwZWN0ZWQpOgotICAgICAgICBjbHMgPSBBcHByb3hOdW1weQot
ICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgTWFwcGluZyk6Ci0gICAgICAgIGNscyA9IEFw
cHJveE1hcHBpbmcKLSAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFNlcXVlbmNlKSBhbmQg
bm90IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIFN0cmluZyk6Ci0gICAgICAgIGNscyA9IEFwcHJveFNl
cXVlbmNlCi0gICAgZWxzZToKLSAgICAgICAgY2xzID0gQXBwcm94U2NhbGFyCi0KLSAgICByZXR1
cm4gY2xzKGV4cGVjdGVkLCByZWwsIGFicywgbmFuX29rKQotCi0KLWRlZiBfaXNfbnVtcHlfYXJy
YXkob2JqKToKLSAgICAiIiIKLSAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlz
IGEgbnVtcHkgYXJyYXkuICBNYWtlIGEgc3BlY2lhbCBlZmZvcnQgdG8KLSAgICBhdm9pZCBpbXBv
cnRpbmcgbnVtcHkgdW5sZXNzIGl0J3MgcmVhbGx5IG5lY2Vzc2FyeS4KLSAgICAiIiIKLSAgICBp
bXBvcnQgaW5zcGVjdAotCi0gICAgZm9yIGNscyBpbiBpbnNwZWN0LmdldG1ybyh0eXBlKG9iaikp
OgotICAgICAgICBpZiBjbHMuX19tb2R1bGVfXyA9PSAnbnVtcHknOgotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGltcG9ydCBudW1weSBhcyBucAotICAgICAgICAgICAgICAgIHJl
dHVybiBpc2luc3RhbmNlKG9iaiwgbnAubmRhcnJheSkKLSAgICAgICAgICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICByZXR1cm4gRmFsc2UKLQotCi0j
IGJ1aWx0aW4gcHl0ZXN0LnJhaXNlcyBoZWxwZXIKLQotZGVmIHJhaXNlcyhleHBlY3RlZF9leGNl
cHRpb24sICphcmdzLCAqKmt3YXJncyk6Ci0gICAgIiIiCi0gICAgQXNzZXJ0IHRoYXQgYSBjb2Rl
IGJsb2NrL2Z1bmN0aW9uIGNhbGwgcmFpc2VzIGBgZXhwZWN0ZWRfZXhjZXB0aW9uYGAKLSAgICBh
bmQgcmFpc2UgYSBmYWlsdXJlIGV4Y2VwdGlvbiBvdGhlcndpc2UuCi0KLSAgICBUaGlzIGhlbHBl
ciBwcm9kdWNlcyBhIGBgRXhjZXB0aW9uSW5mbygpYGAgb2JqZWN0IChzZWUgYmVsb3cpLgotCi0g
ICAgWW91IG1heSB1c2UgdGhpcyBmdW5jdGlvbiBhcyBhIGNvbnRleHQgbWFuYWdlcjo6Ci0KLSAg
ICAgICAgPj4+IHdpdGggcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKLSAgICAgICAgLi4uICAg
IDEvMAotCi0gICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjEwCi0KLSAgICBJbiB0aGUgY29udGV4
dCBtYW5hZ2VyIGZvcm0geW91IG1heSB1c2UgdGhlIGtleXdvcmQgYXJndW1lbnQKLSAgICBgYG1l
c3NhZ2VgYCB0byBzcGVjaWZ5IGEgY3VzdG9tIGZhaWx1cmUgbWVzc2FnZTo6Ci0KLSAgICAgICAg
Pj4+IHdpdGggcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBtZXNzYWdlPSJFeHBlY3RpbmcgWmVy
b0RpdmlzaW9uRXJyb3IiKToKLSAgICAgICAgLi4uICAgIHBhc3MKLSAgICAgICAgVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgICAgICAgIC4uLgotICAgICAgICBGYWlsZWQ6
IEV4cGVjdGluZyBaZXJvRGl2aXNpb25FcnJvcgotCi0gICAgLi4gbm90ZTo6Ci0KLSAgICAgICBX
aGVuIHVzaW5nIGBgcHl0ZXN0LnJhaXNlc2BgIGFzIGEgY29udGV4dCBtYW5hZ2VyLCBpdCdzIHdv
cnRod2hpbGUgdG8KLSAgICAgICBub3RlIHRoYXQgbm9ybWFsIGNvbnRleHQgbWFuYWdlciBydWxl
cyBhcHBseSBhbmQgdGhhdCB0aGUgZXhjZXB0aW9uCi0gICAgICAgcmFpc2VkICptdXN0KiBiZSB0
aGUgZmluYWwgbGluZSBpbiB0aGUgc2NvcGUgb2YgdGhlIGNvbnRleHQgbWFuYWdlci4KLSAgICAg
ICBMaW5lcyBvZiBjb2RlIGFmdGVyIHRoYXQsIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIGNvbnRl
eHQgbWFuYWdlciB3aWxsCi0gICAgICAgbm90IGJlIGV4ZWN1dGVkLiBGb3IgZXhhbXBsZTo6Ci0K
LSAgICAgICAgICAgPj4+IHZhbHVlID0gMTUKLSAgICAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZh
bHVlRXJyb3IpIGFzIGV4Y19pbmZvOgotICAgICAgICAgICAuLi4gICAgIGlmIHZhbHVlID4gMTA6
Ci0gICAgICAgICAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUg
PD0gMTAiKQotICAgICAgICAgICAuLi4gICAgIGFzc2VydCBleGNfaW5mby50eXBlID09IFZhbHVl
RXJyb3IgICMgdGhpcyB3aWxsIG5vdCBleGVjdXRlCi0KLSAgICAgICBJbnN0ZWFkLCB0aGUgZm9s
bG93aW5nIGFwcHJvYWNoIG11c3QgYmUgdGFrZW4gKG5vdGUgdGhlIGRpZmZlcmVuY2UgaW4KLSAg
ICAgICBzY29wZSk6OgotCi0gICAgICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yKSBh
cyBleGNfaW5mbzoKLSAgICAgICAgICAgLi4uICAgICBpZiB2YWx1ZSA+IDEwOgotICAgICAgICAg
ICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikKLSAg
ICAgICAgICAgLi4uCi0gICAgICAgICAgID4+PiBhc3NlcnQgZXhjX2luZm8udHlwZSA9PSBWYWx1
ZUVycm9yCi0KLQotICAgIFNpbmNlIHZlcnNpb24gYGAzLjFgYCB5b3UgY2FuIHVzZSB0aGUga2V5
d29yZCBhcmd1bWVudCBgYG1hdGNoYGAgdG8gYXNzZXJ0IHRoYXQgdGhlCi0gICAgZXhjZXB0aW9u
IG1hdGNoZXMgYSB0ZXh0IG9yIHJlZ2V4OjoKLQotICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFs
dWVFcnJvciwgbWF0Y2g9J211c3QgYmUgMCBvciBOb25lJyk6Ci0gICAgICAgIC4uLiAgICAgcmFp
c2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSAwIG9yIE5vbmUiKQotCi0gICAgICAgID4+PiB3
aXRoIHJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgotICAgICAgICAu
Li4gICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgNDIiKQotCi0gICAgKipMZWdh
Y3kgZm9ybXMqKgotCi0gICAgVGhlIGZvcm1zIGJlbG93IGFyZSBmdWxseSBzdXBwb3J0ZWQgYnV0
IGFyZSBkaXNjb3VyYWdlZCBmb3IgbmV3IGNvZGUgYmVjYXVzZSB0aGUKLSAgICBjb250ZXh0IG1h
bmFnZXIgZm9ybSBpcyByZWdhcmRlZCBhcyBtb3JlIHJlYWRhYmxlIGFuZCBsZXNzIGVycm9yLXBy
b25lLgotCi0gICAgSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBhIGNhbGxhYmxlIGJ5IHBhc3Np
bmcgYSB0by1iZS1jYWxsZWQgbGFtYmRhOjoKLQotICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZp
c2lvbkVycm9yLCBsYW1iZGE6IDEvMCkKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4uPgotCi0g
ICAgb3IgeW91IGNhbiBzcGVjaWZ5IGFuIGFyYml0cmFyeSBjYWxsYWJsZSB3aXRoIGFyZ3VtZW50
czo6Ci0KLSAgICAgICAgPj4+IGRlZiBmKHgpOiByZXR1cm4gMS94Ci0gICAgICAgIC4uLgotICAg
ICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBmLCAwKQotICAgICAgICA8RXhjZXB0
aW9uSW5mbyAuLi4+Ci0gICAgICAgID4+PiByYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGYsIHg9
MCkKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4uPgotCi0gICAgSXQgaXMgYWxzbyBwb3NzaWJs
ZSB0byBwYXNzIGEgc3RyaW5nIHRvIGJlIGV2YWx1YXRlZCBhdCBydW50aW1lOjoKLQotICAgICAg
ICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCAiZigwKSIpCi0gICAgICAgIDxFeGNlcHRp
b25JbmZvIC4uLj4KLQotICAgIFRoZSBzdHJpbmcgd2lsbCBiZSBldmFsdWF0ZWQgdXNpbmcgdGhl
IHNhbWUgYGBsb2NhbHMoKWBgIGFuZCBgYGdsb2JhbHMoKWBgCi0gICAgYXQgdGhlIG1vbWVudCBv
ZiB0aGUgYGByYWlzZXNgYCBjYWxsLgotCi0gICAgLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvCi0gICAgICAgIDptZW1iZXJzOgotCi0gICAgLi4gbm90ZTo6Ci0gICAg
ICAgIFNpbWlsYXIgdG8gY2F1Z2h0IGV4Y2VwdGlvbiBvYmplY3RzIGluIFB5dGhvbiwgZXhwbGlj
aXRseSBjbGVhcmluZwotICAgICAgICBsb2NhbCByZWZlcmVuY2VzIHRvIHJldHVybmVkIGBgRXhj
ZXB0aW9uSW5mb2BgIG9iamVjdHMgY2FuCi0gICAgICAgIGhlbHAgdGhlIFB5dGhvbiBpbnRlcnBy
ZXRlciBzcGVlZCB1cCBpdHMgZ2FyYmFnZSBjb2xsZWN0aW9uLgotCi0gICAgICAgIENsZWFyaW5n
IHRob3NlIHJlZmVyZW5jZXMgYnJlYWtzIGEgcmVmZXJlbmNlIGN5Y2xlCi0gICAgICAgIChgYEV4
Y2VwdGlvbkluZm9gYCAtLT4gY2F1Z2h0IGV4Y2VwdGlvbiAtLT4gZnJhbWUgc3RhY2sgcmFpc2lu
ZwotICAgICAgICB0aGUgZXhjZXB0aW9uIC0tPiBjdXJyZW50IGZyYW1lIHN0YWNrIC0tPiBsb2Nh
bCB2YXJpYWJsZXMgLS0+Ci0gICAgICAgIGBgRXhjZXB0aW9uSW5mb2BgKSB3aGljaCBtYWtlcyBQ
eXRob24ga2VlcCBhbGwgb2JqZWN0cyByZWZlcmVuY2VkCi0gICAgICAgIGZyb20gdGhhdCBjeWNs
ZSAoaW5jbHVkaW5nIGFsbCBsb2NhbCB2YXJpYWJsZXMgaW4gdGhlIGN1cnJlbnQKLSAgICAgICAg
ZnJhbWUpIGFsaXZlIHVudGlsIHRoZSBuZXh0IGN5Y2xpYyBnYXJiYWdlIGNvbGxlY3Rpb24gcnVu
LiBTZWUgdGhlCi0gICAgICAgIG9mZmljaWFsIFB5dGhvbiBgYHRyeWBgIHN0YXRlbWVudCBkb2N1
bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbGVkCi0gICAgICAgIGluZm9ybWF0aW9uLgotCi0gICAg
IiIiCi0gICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgbXNnID0gKCJleGNlcHRpb25z
IG11c3QgYmUgb2xkLXN0eWxlIGNsYXNzZXMgb3IiCi0gICAgICAgICAgICIgZGVyaXZlZCBmcm9t
IEJhc2VFeGNlcHRpb24sIG5vdCAlcyIpCi0gICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZF9leGNl
cHRpb24sIHR1cGxlKToKLSAgICAgICAgZm9yIGV4YyBpbiBleHBlY3RlZF9leGNlcHRpb246Ci0g
ICAgICAgICAgICBpZiBub3QgaXNjbGFzcyhleGMpOgotICAgICAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcihtc2cgJSB0eXBlKGV4YykpCi0gICAgZWxpZiBub3QgaXNjbGFzcyhleHBlY3RlZF9l
eGNlcHRpb24pOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnICUgdHlwZShleHBlY3RlZF9l
eGNlcHRpb24pKQotCi0gICAgbWVzc2FnZSA9ICJESUQgTk9UIFJBSVNFIHswfSIuZm9ybWF0KGV4
cGVjdGVkX2V4Y2VwdGlvbikKLSAgICBtYXRjaF9leHByID0gTm9uZQotCi0gICAgaWYgbm90IGFy
Z3M6Ci0gICAgICAgIGlmICJtZXNzYWdlIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdl
ID0ga3dhcmdzLnBvcCgibWVzc2FnZSIpCi0gICAgICAgIGlmICJtYXRjaCIgaW4ga3dhcmdzOgot
ICAgICAgICAgICAgbWF0Y2hfZXhwciA9IGt3YXJncy5wb3AoIm1hdGNoIikKLSAgICAgICAgICAg
IG1lc3NhZ2UgKz0gIiBtYXRjaGluZyAnezB9JyIuZm9ybWF0KG1hdGNoX2V4cHIpCi0gICAgICAg
IHJldHVybiBSYWlzZXNDb250ZXh0KGV4cGVjdGVkX2V4Y2VwdGlvbiwgbWVzc2FnZSwgbWF0Y2hf
ZXhwcikKLSAgICBlbGlmIGlzaW5zdGFuY2UoYXJnc1swXSwgc3RyKToKLSAgICAgICAgY29kZSwg
PSBhcmdzCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGNvZGUsIHN0cikKLSAgICAgICAgZnJh
bWUgPSBzeXMuX2dldGZyYW1lKDEpCi0gICAgICAgIGxvYyA9IGZyYW1lLmZfbG9jYWxzLmNvcHko
KQotICAgICAgICBsb2MudXBkYXRlKGt3YXJncykKLSAgICAgICAgIyBwcmludCAicmFpc2VzIGZy
YW1lIHNjb3BlOiAlciIgJSBmcmFtZS5mX2xvY2FscwotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBjb2RlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoY29kZSkuY29tcGlsZSgpCi0gICAgICAgICAg
ICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIGZyYW1lLmZfZ2xvYmFscywgbG9jKQotICAgICAgICAg
ICAgIyBYWFggZGlkbidUIG1lYW4gZl9nbG9iYWxzID09IGZfbG9jYWxzIHNvbWV0aGluZyBzcGVj
aWFsPwotICAgICAgICAgICAgIyAgICAgdGhpcyBpcyBkZXN0cm95ZWQgaGVyZSAuLi4KLSAgICAg
ICAgZXhjZXB0IGV4cGVjdGVkX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBfcHl0ZXN0
Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgIGVsc2U6Ci0gICAgICAgIGZ1bmMgPSBhcmdzWzBd
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZ1bmMoKmFyZ3NbMTpdLCAqKmt3YXJncykKLSAg
ICAgICAgZXhjZXB0IGV4cGVjdGVkX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBfcHl0
ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgIGZhaWwobWVzc2FnZSkKLQotCi1yYWlzZXMu
RXhjZXB0aW9uID0gZmFpbC5FeGNlcHRpb24KLQotCi1jbGFzcyBSYWlzZXNDb250ZXh0KG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkX2V4Y2VwdGlvbiwgbWVzc2FnZSwg
bWF0Y2hfZXhwcik6Ci0gICAgICAgIHNlbGYuZXhwZWN0ZWRfZXhjZXB0aW9uID0gZXhwZWN0ZWRf
ZXhjZXB0aW9uCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLSAgICAgICAgc2VsZi5t
YXRjaF9leHByID0gbWF0Y2hfZXhwcgotICAgICAgICBzZWxmLmV4Y2luZm8gPSBOb25lCi0KLSAg
ICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzZWxmLmV4Y2luZm8gPSBvYmplY3QuX19u
ZXdfXyhfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8pCi0gICAgICAgIHJldHVybiBzZWxmLmV4
Y2luZm8KLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqdHApOgotICAgICAgICBfX3RyYWNlYmFj
a2hpZGVfXyA9IFRydWUKLSAgICAgICAgaWYgdHBbMF0gaXMgTm9uZToKLSAgICAgICAgICAgIGZh
aWwoc2VsZi5tZXNzYWdlKQotICAgICAgICBzZWxmLmV4Y2luZm8uX19pbml0X18odHApCi0gICAg
ICAgIHN1cHByZXNzX2V4Y2VwdGlvbiA9IGlzc3ViY2xhc3Moc2VsZi5leGNpbmZvLnR5cGUsIHNl
bGYuZXhwZWN0ZWRfZXhjZXB0aW9uKQotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09
IDIgYW5kIHN1cHByZXNzX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIHN5cy5leGNfY2xlYXIoKQot
ICAgICAgICBpZiBzZWxmLm1hdGNoX2V4cHI6Ci0gICAgICAgICAgICBzZWxmLmV4Y2luZm8ubWF0
Y2goc2VsZi5tYXRjaF9leHByKQotICAgICAgICByZXR1cm4gc3VwcHJlc3NfZXhjZXB0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3JlY3dhcm4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmY2ViMTBh
N2YzNDA0M2Y0MGRjNDM5NjA4OTFjYWRjMmZlNDFhMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMjM2ICswLDAgQEAKLSIiIiByZWNvcmRpbmcgd2FybmluZ3MgZHVy
aW5nIHRlc3QgZnVuY3Rpb24gZXhlY3V0aW9uLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGluc3Bl
Y3QKLQotaW1wb3J0IF9weXRlc3QuX2NvZGUKLWltcG9ydCBweQotaW1wb3J0IHN5cwotaW1wb3J0
IHdhcm5pbmdzCi0KLWltcG9ydCByZQotCi1mcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHlp
ZWxkX2ZpeHR1cmUKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAotCi0KLUB5aWVs
ZF9maXh0dXJlCi1kZWYgcmVjd2FybigpOgotICAgICIiIlJldHVybiBhIFdhcm5pbmdzUmVjb3Jk
ZXIgaW5zdGFuY2UgdGhhdCBwcm92aWRlcyB0aGVzZSBtZXRob2RzOgotCi0gICAgKiBgYHBvcChj
YXRlZ29yeT1Ob25lKWBgOiByZXR1cm4gbGFzdCB3YXJuaW5nIG1hdGNoaW5nIHRoZSBjYXRlZ29y
eS4KLSAgICAqIGBgY2xlYXIoKWBgOiBjbGVhciBsaXN0IG9mIHdhcm5pbmdzCi0KLSAgICBTZWUg
aHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJyYXJ5L3dhcm5pbmdzLmh0bWwgZm9yIGluZm9ybWF0
aW9uCi0gICAgb24gd2FybmluZyBjYXRlZ29yaWVzLgotICAgICIiIgotICAgIHdyZWMgPSBXYXJu
aW5nc1JlY29yZGVyKCkKLSAgICB3aXRoIHdyZWM6Ci0gICAgICAgIHdhcm5pbmdzLnNpbXBsZWZp
bHRlcignZGVmYXVsdCcpCi0gICAgICAgIHlpZWxkIHdyZWMKLQotCi1kZWYgZGVwcmVjYXRlZF9j
YWxsKGZ1bmM9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAiIiJjb250ZXh0IG1hbmFnZXIg
dGhhdCBjYW4gYmUgdXNlZCB0byBlbnN1cmUgYSBibG9jayBvZiBjb2RlIHRyaWdnZXJzIGEKLSAg
ICBgYERlcHJlY2F0aW9uV2FybmluZ2BgIG9yIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2Bg
OjoKLQotICAgICAgICA+Pj4gaW1wb3J0IHdhcm5pbmdzCi0gICAgICAgID4+PiBkZWYgYXBpX2Nh
bGxfdjIoKToKLSAgICAgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCd1c2UgdjMgb2YgdGhpcyBh
cGknLCBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIC4uLiAgICAgcmV0dXJuIDIwMAotCi0g
ICAgICAgID4+PiB3aXRoIGRlcHJlY2F0ZWRfY2FsbCgpOgotICAgICAgICAuLi4gICAgYXNzZXJ0
IGFwaV9jYWxsX3YyKCkgPT0gMjAwCi0KLSAgICBgYGRlcHJlY2F0ZWRfY2FsbGBgIGNhbiBhbHNv
IGJlIHVzZWQgYnkgcGFzc2luZyBhIGZ1bmN0aW9uIGFuZCBgYCphcmdzYGAgYW5kIGBgKmt3YXJn
c2BgLAotICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBlbnN1cmUgY2FsbGluZyBgYGZ1bmMoKmFy
Z3MsICoqa3dhcmdzKWBgIHByb2R1Y2VzIG9uZSBvZiB0aGUgd2FybmluZ3MKLSAgICB0eXBlcyBh
Ym92ZS4KLSAgICAiIiIKLSAgICBpZiBub3QgZnVuYzoKLSAgICAgICAgcmV0dXJuIF9EZXByZWNh
dGVkQ2FsbENvbnRleHQoKQotICAgIGVsc2U6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQotICAgICAgICB3aXRoIF9EZXByZWNhdGVkQ2FsbENvbnRleHQoKToKLSAgICAgICAgICAg
IHJldHVybiBmdW5jKCphcmdzLCAqKmt3YXJncykKLQotCi1jbGFzcyBfRGVwcmVjYXRlZENhbGxD
b250ZXh0KG9iamVjdCk6Ci0gICAgIiIiSW1wbGVtZW50cyB0aGUgbG9naWMgdG8gY2FwdHVyZSBk
ZXByZWNhdGlvbiB3YXJuaW5ncyBhcyBhIGNvbnRleHQgbWFuYWdlci4iIiIKLQotICAgIGRlZiBf
X2VudGVyX18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMgPSBbXQot
ICAgICAgICBzZWxmLl9vbGRfd2FybiA9IHdhcm5pbmdzLndhcm4KLSAgICAgICAgc2VsZi5fb2xk
X3dhcm5fZXhwbGljaXQgPSB3YXJuaW5ncy53YXJuX2V4cGxpY2l0Ci0gICAgICAgIHdhcm5pbmdz
Lndhcm5fZXhwbGljaXQgPSBzZWxmLl93YXJuX2V4cGxpY2l0Ci0gICAgICAgIHdhcm5pbmdzLndh
cm4gPSBzZWxmLl93YXJuCi0KLSAgICBkZWYgX3dhcm5fZXhwbGljaXQoc2VsZiwgbWVzc2FnZSwg
Y2F0ZWdvcnksICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVn
b3JpZXMuYXBwZW5kKGNhdGVnb3J5KQotCi0gICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UsIGNh
dGVnb3J5PU5vbmUsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobWVz
c2FnZSwgV2FybmluZyk6Ci0gICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFw
cGVuZChtZXNzYWdlLl9fY2xhc3NfXykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
X2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKGNhdGVnb3J5KQotCi0gICAgZGVmIF9fZXhpdF9f
KHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgotICAgICAgICB3YXJuaW5ncy53YXJu
X2V4cGxpY2l0ID0gc2VsZi5fb2xkX3dhcm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2Fy
biA9IHNlbGYuX29sZF93YXJuCi0KLSAgICAgICAgaWYgZXhjX3R5cGUgaXMgTm9uZToKLSAgICAg
ICAgICAgIGRlcHJlY2F0aW9uX2NhdGVnb3JpZXMgPSAoRGVwcmVjYXRpb25XYXJuaW5nLCBQZW5k
aW5nRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICAgICAgaWYgbm90IGFueShpc3N1YmNsYXNz
KGMsIGRlcHJlY2F0aW9uX2NhdGVnb3JpZXMpIGZvciBjIGluIHNlbGYuX2NhcHR1cmVkX2NhdGVn
b3JpZXMpOgotICAgICAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAg
ICAgICAgICAgIG1zZyA9ICJEaWQgbm90IHByb2R1Y2UgRGVwcmVjYXRpb25XYXJuaW5nIG9yIFBl
bmRpbmdEZXByZWNhdGlvbldhcm5pbmciCi0gICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9u
RXJyb3IobXNnKQotCi0KLWRlZiB3YXJucyhleHBlY3RlZF93YXJuaW5nLCAqYXJncywgKiprd2Fy
Z3MpOgotICAgICIiIkFzc2VydCB0aGF0IGNvZGUgcmFpc2VzIGEgcGFydGljdWxhciBjbGFzcyBv
ZiB3YXJuaW5nLgotCi0gICAgU3BlY2lmaWNhbGx5LCB0aGUgaW5wdXQgQGV4cGVjdGVkX3dhcm5p
bmcgY2FuIGJlIGEgd2FybmluZyBjbGFzcyBvcgotICAgIHR1cGxlIG9mIHdhcm5pbmcgY2xhc3Nl
cywgYW5kIHRoZSBjb2RlIG11c3QgcmV0dXJuIHRoYXQgd2FybmluZwotICAgIChpZiBhIHNpbmds
ZSBjbGFzcykgb3Igb25lIG9mIHRob3NlIHdhcm5pbmdzIChpZiBhIHR1cGxlKS4KLQotICAgIFRo
aXMgaGVscGVyIHByb2R1Y2VzIGEgbGlzdCBvZiBgYHdhcm5pbmdzLldhcm5pbmdNZXNzYWdlYGAg
b2JqZWN0cywKLSAgICBvbmUgZm9yIGVhY2ggd2FybmluZyByYWlzZWQuCi0KLSAgICBUaGlzIGZ1
bmN0aW9uIGNhbiBiZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLCBvciBhbnkgb2YgdGhlIG90
aGVyIHdheXMKLSAgICBgYHB5dGVzdC5yYWlzZXNgYCBjYW4gYmUgdXNlZDo6Ci0KLSAgICAgICAg
Pj4+IHdpdGggd2FybnMoUnVudGltZVdhcm5pbmcpOgotICAgICAgICAuLi4gICAgd2FybmluZ3Mu
d2FybigibXkgd2FybmluZyIsIFJ1bnRpbWVXYXJuaW5nKQotCi0gICAgSW4gdGhlIGNvbnRleHQg
bWFuYWdlciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50IGBgbWF0Y2hgYCB0
byBhc3NlcnQKLSAgICB0aGF0IHRoZSBleGNlcHRpb24gbWF0Y2hlcyBhIHRleHQgb3IgcmVnZXg6
OgotCi0gICAgICAgID4+PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD0nbXVzdCBiZSAw
IG9yIE5vbmUnKToKLSAgICAgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2YWx1ZSBtdXN0IGJl
IDAgb3IgTm9uZSIsIFVzZXJXYXJuaW5nKQotCi0gICAgICAgID4+PiB3aXRoIHdhcm5zKFVzZXJX
YXJuaW5nLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgotICAgICAgICAuLi4gICAgIHdhcm5pbmdz
Lndhcm4oInZhbHVlIG11c3QgYmUgNDIiLCBVc2VyV2FybmluZykKLQotICAgICAgICA+Pj4gd2l0
aCB3YXJucyhVc2VyV2FybmluZywgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKLSAgICAgICAgLi4u
ICAgICB3YXJuaW5ncy53YXJuKCJ0aGlzIGlzIG5vdCBoZXJlIiwgVXNlcldhcm5pbmcpCi0gICAg
ICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLSAgICAgICAgICAuLi4KLSAg
ICAgICAgRmFpbGVkOiBESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgLi4uVXNlcldh
cm5pbmcuLi4gd2FzIGVtaXR0ZWQuLi4KLQotICAgICIiIgotICAgIG1hdGNoX2V4cHIgPSBOb25l
Ci0gICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgIGlmICJtYXRjaCIgaW4ga3dhcmdzOgotICAgICAg
ICAgICAgbWF0Y2hfZXhwciA9IGt3YXJncy5wb3AoIm1hdGNoIikKLSAgICAgICAgcmV0dXJuIFdh
cm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNoX2V4cHIpCi0g
ICAgZWxpZiBpc2luc3RhbmNlKGFyZ3NbMF0sIHN0cik6Ci0gICAgICAgIGNvZGUsID0gYXJncwot
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCi0gICAgICAgIGZyYW1lID0gc3lz
Ll9nZXRmcmFtZSgxKQotICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKLSAgICAg
ICAgbG9jLnVwZGF0ZShrd2FyZ3MpCi0KLSAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhw
ZWN0ZWRfd2FybmluZywgbWF0Y2hfZXhwcj1tYXRjaF9leHByKToKLSAgICAgICAgICAgIGNvZGUg
PSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShjb2RlKS5jb21waWxlKCkKLSAgICAgICAgICAgIHB5LmJ1
aWx0aW4uZXhlY18oY29kZSwgZnJhbWUuZl9nbG9iYWxzLCBsb2MpCi0gICAgZWxzZToKLSAgICAg
ICAgZnVuYyA9IGFyZ3NbMF0KLSAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRf
d2FybmluZywgbWF0Y2hfZXhwcj1tYXRjaF9leHByKToKLSAgICAgICAgICAgIHJldHVybiBmdW5j
KCphcmdzWzE6XSwgKiprd2FyZ3MpCi0KLQotY2xhc3MgV2FybmluZ3NSZWNvcmRlcih3YXJuaW5n
cy5jYXRjaF93YXJuaW5ncyk6Ci0gICAgIiIiQSBjb250ZXh0IG1hbmFnZXIgdG8gcmVjb3JkIHJh
aXNlZCB3YXJuaW5ncy4KLQotICAgIEFkYXB0ZWQgZnJvbSBgd2FybmluZ3MuY2F0Y2hfd2Fybmlu
Z3NgLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzdXBlcihX
YXJuaW5nc1JlY29yZGVyLCBzZWxmKS5fX2luaXRfXyhyZWNvcmQ9VHJ1ZSkKLSAgICAgICAgc2Vs
Zi5fZW50ZXJlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2xpc3QgPSBbXQotCi0gICAgQHByb3Bl
cnR5Ci0gICAgZGVmIGxpc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoZSBsaXN0IG9mIHJlY29yZGVk
IHdhcm5pbmdzLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbGlzdAotCi0gICAgZGVmIF9fZ2V0
aXRlbV9fKHNlbGYsIGkpOgotICAgICAgICAiIiJHZXQgYSByZWNvcmRlZCB3YXJuaW5nIGJ5IGlu
ZGV4LiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbGlzdFtpXQotCi0gICAgZGVmIF9faXRlcl9f
KHNlbGYpOgotICAgICAgICAiIiJJdGVyYXRlIHRocm91Z2ggdGhlIHJlY29yZGVkIHdhcm5pbmdz
LiIiIgotICAgICAgICByZXR1cm4gaXRlcihzZWxmLl9saXN0KQotCi0gICAgZGVmIF9fbGVuX18o
c2VsZik6Ci0gICAgICAgICIiIlRoZSBudW1iZXIgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0g
ICAgICAgIHJldHVybiBsZW4oc2VsZi5fbGlzdCkKLQotICAgIGRlZiBwb3Aoc2VsZiwgY2xzPVdh
cm5pbmcpOgotICAgICAgICAiIiJQb3AgdGhlIGZpcnN0IHJlY29yZGVkIHdhcm5pbmcsIHJhaXNl
IGV4Y2VwdGlvbiBpZiBub3QgZXhpc3RzLiIiIgotICAgICAgICBmb3IgaSwgdyBpbiBlbnVtZXJh
dGUoc2VsZi5fbGlzdCk6Ci0gICAgICAgICAgICBpZiBpc3N1YmNsYXNzKHcuY2F0ZWdvcnksIGNs
cyk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xpc3QucG9wKGkpCi0gICAgICAgIF9f
dHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiJXIg
bm90IGZvdW5kIGluIHdhcm5pbmcgbGlzdCIgJSBjbHMpCi0KLSAgICBkZWYgY2xlYXIoc2VsZik6
Ci0gICAgICAgICIiIkNsZWFyIHRoZSBsaXN0IG9mIHJlY29yZGVkIHdhcm5pbmdzLiIiIgotICAg
ICAgICBzZWxmLl9saXN0WzpdID0gW10KLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAg
ICAgIGlmIHNlbGYuX2VudGVyZWQ6Ci0gICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRy
dWUKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGVudGVyICVyIHR3aWNl
IiAlIHNlbGYpCi0gICAgICAgIHNlbGYuX2xpc3QgPSBzdXBlcihXYXJuaW5nc1JlY29yZGVyLCBz
ZWxmKS5fX2VudGVyX18oKQotICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2Fsd2F5cycp
Ci0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19pbmZv
KToKLSAgICAgICAgaWYgbm90IHNlbGYuX2VudGVyZWQ6Ci0gICAgICAgICAgICBfX3RyYWNlYmFj
a2hpZGVfXyA9IFRydWUKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGV4
aXQgJXIgd2l0aG91dCBlbnRlcmluZyBmaXJzdCIgJSBzZWxmKQotICAgICAgICBzdXBlcihXYXJu
aW5nc1JlY29yZGVyLCBzZWxmKS5fX2V4aXRfXygqZXhjX2luZm8pCi0KLQotY2xhc3MgV2Fybmlu
Z3NDaGVja2VyKFdhcm5pbmdzUmVjb3JkZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBl
Y3RlZF93YXJuaW5nPU5vbmUsIG1hdGNoX2V4cHI9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKFdhcm5p
bmdzQ2hlY2tlciwgc2VsZikuX19pbml0X18oKQotCi0gICAgICAgIG1zZyA9ICgiZXhjZXB0aW9u
cyBtdXN0IGJlIG9sZC1zdHlsZSBjbGFzc2VzIG9yICIKLSAgICAgICAgICAgICAgICJkZXJpdmVk
IGZyb20gV2FybmluZywgbm90ICVzIikKLSAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZF93
YXJuaW5nLCB0dXBsZSk6Ci0gICAgICAgICAgICBmb3IgZXhjIGluIGV4cGVjdGVkX3dhcm5pbmc6
Ci0gICAgICAgICAgICAgICAgaWYgbm90IGluc3BlY3QuaXNjbGFzcyhleGMpOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnICUgdHlwZShleGMpKQotICAgICAgICBlbGlm
IGluc3BlY3QuaXNjbGFzcyhleHBlY3RlZF93YXJuaW5nKToKLSAgICAgICAgICAgIGV4cGVjdGVk
X3dhcm5pbmcgPSAoZXhwZWN0ZWRfd2FybmluZywpCi0gICAgICAgIGVsaWYgZXhwZWN0ZWRfd2Fy
bmluZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBl
KGV4cGVjdGVkX3dhcm5pbmcpKQotCi0gICAgICAgIHNlbGYuZXhwZWN0ZWRfd2FybmluZyA9IGV4
cGVjdGVkX3dhcm5pbmcKLSAgICAgICAgc2VsZi5tYXRjaF9leHByID0gbWF0Y2hfZXhwcgotCi0g
ICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfaW5mbyk6Ci0gICAgICAgIHN1cGVyKFdhcm5pbmdz
Q2hlY2tlciwgc2VsZikuX19leGl0X18oKmV4Y19pbmZvKQotCi0gICAgICAgICMgb25seSBjaGVj
ayBpZiB3ZSdyZSBub3QgY3VycmVudGx5IGhhbmRsaW5nIGFuIGV4Y2VwdGlvbgotICAgICAgICBp
ZiBhbGwoYSBpcyBOb25lIGZvciBhIGluIGV4Y19pbmZvKToKLSAgICAgICAgICAgIGlmIHNlbGYu
ZXhwZWN0ZWRfd2FybmluZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBpZiBub3QgYW55
KGlzc3ViY2xhc3Moci5jYXRlZ29yeSwgc2VsZi5leHBlY3RlZF93YXJuaW5nKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gc2VsZik6Ci0gICAgICAgICAgICAgICAgICAgIF9f
dHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJESUQgTk9U
IFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgezB9IHdhcyBlbWl0dGVkLiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIlRoZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MgaXM6IHsxfS4iLmZv
cm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF93YXJuaW5n
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZvciBlYWNoIGlu
IHNlbGZdKSkKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYubWF0Y2hfZXhwciBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gc2VsZjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIGlzc3ViY2xhc3Moci5jYXRlZ29yeSwgc2VsZi5leHBlY3RlZF93YXJuaW5nKToK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZS5jb21waWxlKHNlbGYubWF0Y2hfZXhw
cikuc2VhcmNoKHN0cihyLm1lc3NhZ2UpKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZhaWwoIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSB7MH0gbWF0Y2hpbmci
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCd7MX0nKSB3YXMgZW1pdHRlZC4gVGhl
IGxpc3Qgb2YgZW1pdHRlZCB3YXJuaW5ncyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiBpczogezJ9LiIuZm9ybWF0KHNlbGYuZXhwZWN0ZWRfd2FybmluZywgc2VsZi5tYXRjaF9leHBy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VhY2gu
bWVzc2FnZSBmb3IgZWFjaCBpbiBzZWxmXSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3Jlc3VsdGxvZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjljMmQxZjY1MzYwZjM4ZDBkNjQxMjNkNjQ2NTdj
MDcyNmEyNjY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEz
ICswLDAgQEAKLSIiIiBsb2cgbWFjaGluZS1wYXJzZWFibGUgdGVzdCBzZXNzaW9uIHJlc3VsdCBp
bmZvcm1hdGlvbiBpbiBhIHBsYWluCi10ZXh0IGZpbGUuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0
IHB5Ci1pbXBvcnQgb3MKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdy
b3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciLCAicmVzdWx0bG9nIHBs
dWdpbiBvcHRpb25zIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tcmVzdWx0bG9nJywgJy0tcmVz
dWx0LWxvZycsIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJw
YXRoIiwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJERVBSRUNBVEVE
IHBhdGggZm9yIG1hY2hpbmUtcmVhZGFibGUgcmVzdWx0IGxvZy4iKQotCi0KLWRlZiBweXRlc3Rf
Y29uZmlndXJlKGNvbmZpZyk6Ci0gICAgcmVzdWx0bG9nID0gY29uZmlnLm9wdGlvbi5yZXN1bHRs
b2cKLSAgICAjIHByZXZlbnQgb3BlbmluZyByZXN1bHRsb2cgb24gc2xhdmUgbm9kZXMgKHhkaXN0
KQotICAgIGlmIHJlc3VsdGxvZyBhbmQgbm90IGhhc2F0dHIoY29uZmlnLCAnc2xhdmVpbnB1dCcp
OgotICAgICAgICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChyZXN1
bHRsb2cpKQotICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihkaXJuYW1lKToKLSAgICAgICAg
ICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCi0gICAgICAgIGxvZ2ZpbGUgPSBvcGVuKHJlc3VsdGxv
ZywgJ3cnLCAxKSAgIyBsaW5lIGJ1ZmZlcmVkCi0gICAgICAgIGNvbmZpZy5fcmVzdWx0bG9nID0g
UmVzdWx0TG9nKGNvbmZpZywgbG9nZmlsZSkKLSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIu
cmVnaXN0ZXIoY29uZmlnLl9yZXN1bHRsb2cpCi0KLSAgICAgICAgZnJvbSBfcHl0ZXN0LmRlcHJl
Y2F0ZWQgaW1wb3J0IFJFU1VMVF9MT0cKLSAgICAgICAgY29uZmlnLndhcm4oJ0MxJywgUkVTVUxU
X0xPRykKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgcmVzdWx0bG9n
ID0gZ2V0YXR0cihjb25maWcsICdfcmVzdWx0bG9nJywgTm9uZSkKLSAgICBpZiByZXN1bHRsb2c6
Ci0gICAgICAgIHJlc3VsdGxvZy5sb2dmaWxlLmNsb3NlKCkKLSAgICAgICAgZGVsIGNvbmZpZy5f
cmVzdWx0bG9nCi0gICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnVucmVnaXN0ZXIocmVzdWx0
bG9nKQotCi0KLWRlZiBnZW5lcmljX3BhdGgoaXRlbSk6Ci0gICAgY2hhaW4gPSBpdGVtLmxpc3Rj
aGFpbigpCi0gICAgZ3BhdGggPSBbY2hhaW5bMF0ubmFtZV0KLSAgICBmc3BhdGggPSBjaGFpblsw
XS5mc3BhdGgKLSAgICBmc3BhcnQgPSBGYWxzZQotICAgIGZvciBub2RlIGluIGNoYWluWzE6XToK
LSAgICAgICAgbmV3ZnNwYXRoID0gbm9kZS5mc3BhdGgKLSAgICAgICAgaWYgbmV3ZnNwYXRoID09
IGZzcGF0aDoKLSAgICAgICAgICAgIGlmIGZzcGFydDoKLSAgICAgICAgICAgICAgICBncGF0aC5h
cHBlbmQoJzonKQotICAgICAgICAgICAgICAgIGZzcGFydCA9IEZhbHNlCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGdwYXRoLmFwcGVuZCgnLicpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBncGF0aC5hcHBlbmQoJy8nKQotICAgICAgICAgICAgZnNwYXJ0ID0gVHJ1ZQot
ICAgICAgICBuYW1lID0gbm9kZS5uYW1lCi0gICAgICAgIGlmIG5hbWVbMF0gaW4gJyhbJzoKLSAg
ICAgICAgICAgIGdwYXRoLnBvcCgpCi0gICAgICAgIGdwYXRoLmFwcGVuZChuYW1lKQotICAgICAg
ICBmc3BhdGggPSBuZXdmc3BhdGgKLSAgICByZXR1cm4gJycuam9pbihncGF0aCkKLQotCi1jbGFz
cyBSZXN1bHRMb2cob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBsb2dm
aWxlKToKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLSAgICAgICAgc2VsZi5sb2dmaWxl
ID0gbG9nZmlsZSAgIyBwcmVmZXJhYmx5IGxpbmUgYnVmZmVyZWQKLQotICAgIGRlZiB3cml0ZV9s
b2dfZW50cnkoc2VsZiwgdGVzdHBhdGgsIGxldHRlcmNvZGUsIGxvbmdyZXByKToKLSAgICAgICAg
cHJpbnQoIiVzICVzIiAlIChsZXR0ZXJjb2RlLCB0ZXN0cGF0aCksIGZpbGU9c2VsZi5sb2dmaWxl
KQotICAgICAgICBmb3IgbGluZSBpbiBsb25ncmVwci5zcGxpdGxpbmVzKCk6Ci0gICAgICAgICAg
ICBwcmludCgiICVzIiAlIGxpbmUsIGZpbGU9c2VsZi5sb2dmaWxlKQotCi0gICAgZGVmIGxvZ19v
dXRjb21lKHNlbGYsIHJlcG9ydCwgbGV0dGVyY29kZSwgbG9uZ3JlcHIpOgotICAgICAgICB0ZXN0
cGF0aCA9IGdldGF0dHIocmVwb3J0LCAnbm9kZWlkJywgTm9uZSkKLSAgICAgICAgaWYgdGVzdHBh
dGggaXMgTm9uZToKLSAgICAgICAgICAgIHRlc3RwYXRoID0gcmVwb3J0LmZzcGF0aAotICAgICAg
ICBzZWxmLndyaXRlX2xvZ19lbnRyeSh0ZXN0cGF0aCwgbGV0dGVyY29kZSwgbG9uZ3JlcHIpCi0K
LSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAg
IGlmIHJlcG9ydC53aGVuICE9ICJjYWxsIiBhbmQgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAg
IHJldHVybgotICAgICAgICByZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfdGVz
dHN0YXR1cyhyZXBvcnQ9cmVwb3J0KQotICAgICAgICBjb2RlID0gcmVzWzFdCi0gICAgICAgIGlm
IGNvZGUgPT0gJ3gnOgotICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0LmxvbmdyZXBy
KQotICAgICAgICBlbGlmIGNvZGUgPT0gJ1gnOgotICAgICAgICAgICAgbG9uZ3JlcHIgPSAnJwot
ICAgICAgICBlbGlmIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICBsb25ncmVwciA9ICIiCi0g
ICAgICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgICAgIGxvbmdyZXByID0gc3RyKHJl
cG9ydC5sb25ncmVwcikKLSAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAg
IGxvbmdyZXByID0gc3RyKHJlcG9ydC5sb25ncmVwclsyXSkKLSAgICAgICAgc2VsZi5sb2dfb3V0
Y29tZShyZXBvcnQsIGNvZGUsIGxvbmdyZXByKQotCi0gICAgZGVmIHB5dGVzdF9jb2xsZWN0cmVw
b3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIG5vdCByZXBvcnQucGFzc2VkOgotICAgICAg
ICAgICAgaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgICAgICAgICBjb2RlID0gIkYiCi0gICAg
ICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0LmxvbmdyZXByKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBhc3NlcnQgcmVwb3J0LnNraXBwZWQKLSAgICAgICAgICAg
ICAgICBjb2RlID0gIlMiCi0gICAgICAgICAgICAgICAgbG9uZ3JlcHIgPSAiJXM6JWQ6ICVzIiAl
IHJlcG9ydC5sb25ncmVwcgotICAgICAgICAgICAgc2VsZi5sb2dfb3V0Y29tZShyZXBvcnQsIGNv
ZGUsIGxvbmdyZXByKQotCi0gICAgZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3Jl
cHIpOgotICAgICAgICByZXByY3Jhc2ggPSBnZXRhdHRyKGV4Y3JlcHIsICdyZXByY3Jhc2gnLCBO
b25lKQotICAgICAgICBwYXRoID0gZ2V0YXR0cihyZXByY3Jhc2gsICJwYXRoIiwgTm9uZSkKLSAg
ICAgICAgaWYgcGF0aCBpcyBOb25lOgotICAgICAgICAgICAgcGF0aCA9ICJjd2Q6JXMiICUgcHku
cGF0aC5sb2NhbCgpCi0gICAgICAgIHNlbGYud3JpdGVfbG9nX2VudHJ5KHBhdGgsICchJywgc3Ry
KGV4Y3JlcHIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTA3ZWQyYTI0OGIzMjIzOWUwNTczNjIzNDA3MThiNDUyMTdkN2NmMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1
bm5lci5weQorKysgL2Rldi9udWxsCkBAIC0xLDUwNiArMCwwIEBACi0iIiIgYmFzaWMgY29sbGVj
dCBhbmQgcnVudGVzdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbnMgIiIiCi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWlt
cG9ydCBiZGIKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotZnJvbSB0aW1lIGltcG9ydCB0aW1lCi0K
LWltcG9ydCBweQotZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwciwg
RXhjZXB0aW9uSW5mbwotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBza2lwLCBTa2lwcGVk
LCBURVNUX09VVENPTUUKLQotIwotIyBweXRlc3QgcGx1Z2luIGhvb2tzCi0KLQotZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgidGVybWlu
YWwgcmVwb3J0aW5nIiwgInJlcG9ydGluZyIsIGFmdGVyPSJnZW5lcmFsIikKLSAgICBncm91cC5h
ZGRvcHRpb24oJy0tZHVyYXRpb25zJywKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9y
ZSIsIHR5cGU9aW50LCBkZWZhdWx0PU5vbmUsIG1ldGF2YXI9Ik4iLAotICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJzaG93IE4gc2xvd2VzdCBzZXR1cC90ZXN0IGR1cmF0aW9ucyAoTj0wIGZvciBh
bGwpLiIpLAotCi0KLWRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVy
KToKLSAgICBkdXJhdGlvbnMgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5vcHRpb24uZHVyYXRp
b25zCi0gICAgaWYgZHVyYXRpb25zIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybgotICAgIHRyID0g
dGVybWluYWxyZXBvcnRlcgotICAgIGRsaXN0ID0gW10KLSAgICBmb3IgcmVwbGlzdCBpbiB0ci5z
dGF0cy52YWx1ZXMoKToKLSAgICAgICAgZm9yIHJlcCBpbiByZXBsaXN0OgotICAgICAgICAgICAg
aWYgaGFzYXR0cihyZXAsICdkdXJhdGlvbicpOgotICAgICAgICAgICAgICAgIGRsaXN0LmFwcGVu
ZChyZXApCi0gICAgaWYgbm90IGRsaXN0OgotICAgICAgICByZXR1cm4KLSAgICBkbGlzdC5zb3J0
KGtleT1sYW1iZGEgeDogeC5kdXJhdGlvbikKLSAgICBkbGlzdC5yZXZlcnNlKCkKLSAgICBpZiBu
b3QgZHVyYXRpb25zOgotICAgICAgICB0ci53cml0ZV9zZXAoIj0iLCAic2xvd2VzdCB0ZXN0IGR1
cmF0aW9ucyIpCi0gICAgZWxzZToKLSAgICAgICAgdHIud3JpdGVfc2VwKCI9IiwgInNsb3dlc3Qg
JXMgdGVzdCBkdXJhdGlvbnMiICUgZHVyYXRpb25zKQotICAgICAgICBkbGlzdCA9IGRsaXN0Wzpk
dXJhdGlvbnNdCi0KLSAgICBmb3IgcmVwIGluIGRsaXN0OgotICAgICAgICBub2RlaWQgPSByZXAu
bm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCi0gICAgICAgIHRyLndyaXRlX2xpbmUoIiUw
Mi4yZnMgJS04cyAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgIChyZXAuZHVyYXRpb24sIHJl
cC53aGVuLCBub2RlaWQpKQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlc3Npb24pOgot
ICAgIHNlc3Npb24uX3NldHVwc3RhdGUgPSBTZXR1cFN0YXRlKCkKLQotCi1kZWYgcHl0ZXN0X3Nl
c3Npb25maW5pc2goc2Vzc2lvbik6Ci0gICAgc2Vzc2lvbi5fc2V0dXBzdGF0ZS50ZWFyZG93bl9h
bGwoKQotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtLCBuZXh0aXRlbSk6Ci0g
ICAgaXRlbS5paG9vay5weXRlc3RfcnVudGVzdF9sb2dzdGFydCgKLSAgICAgICAgbm9kZWlkPWl0
ZW0ubm9kZWlkLCBsb2NhdGlvbj1pdGVtLmxvY2F0aW9uLAotICAgICkKLSAgICBydW50ZXN0cHJv
dG9jb2woaXRlbSwgbmV4dGl0ZW09bmV4dGl0ZW0pCi0gICAgcmV0dXJuIFRydWUKLQotCi1kZWYg
cnVudGVzdHByb3RvY29sKGl0ZW0sIGxvZz1UcnVlLCBuZXh0aXRlbT1Ob25lKToKLSAgICBoYXNy
ZXF1ZXN0ID0gaGFzYXR0cihpdGVtLCAiX3JlcXVlc3QiKQotICAgIGlmIGhhc3JlcXVlc3QgYW5k
IG5vdCBpdGVtLl9yZXF1ZXN0OgotICAgICAgICBpdGVtLl9pbml0cmVxdWVzdCgpCi0gICAgcmVw
ID0gY2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJzZXR1cCIsIGxvZykKLSAgICByZXBvcnRzID0gW3Jl
cF0KLSAgICBpZiByZXAucGFzc2VkOgotICAgICAgICBpZiBpdGVtLmNvbmZpZy5vcHRpb24uc2V0
dXBzaG93OgotICAgICAgICAgICAgc2hvd190ZXN0X2l0ZW0oaXRlbSkKLSAgICAgICAgaWYgbm90
IGl0ZW0uY29uZmlnLm9wdGlvbi5zZXR1cG9ubHk6Ci0gICAgICAgICAgICByZXBvcnRzLmFwcGVu
ZChjYWxsX2FuZF9yZXBvcnQoaXRlbSwgImNhbGwiLCBsb2cpKQotICAgIHJlcG9ydHMuYXBwZW5k
KGNhbGxfYW5kX3JlcG9ydChpdGVtLCAidGVhcmRvd24iLCBsb2csCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5leHRpdGVtPW5leHRpdGVtKSkKLSAgICAjIGFmdGVyIGFsbCB0
ZWFyZG93biBob29rcyBoYXZlIGJlZW4gY2FsbGVkCi0gICAgIyB3YW50IGZ1bmNhcmdzIGFuZCBy
ZXF1ZXN0IGluZm8gdG8gZ28gYXdheQotICAgIGlmIGhhc3JlcXVlc3Q6Ci0gICAgICAgIGl0ZW0u
X3JlcXVlc3QgPSBGYWxzZQotICAgICAgICBpdGVtLmZ1bmNhcmdzID0gTm9uZQotICAgIHJldHVy
biByZXBvcnRzCi0KLQotZGVmIHNob3dfdGVzdF9pdGVtKGl0ZW0pOgotICAgICIiIlNob3cgdGVz
dCBmdW5jdGlvbiwgcGFyYW1ldGVycyBhbmQgdGhlIGZpeHR1cmVzIG9mIHRoZSB0ZXN0IGl0ZW0u
IiIiCi0gICAgdHcgPSBpdGVtLmNvbmZpZy5nZXRfdGVybWluYWxfd3JpdGVyKCkKLSAgICB0dy5s
aW5lKCkKLSAgICB0dy53cml0ZSgnICcgKiA4KQotICAgIHR3LndyaXRlKGl0ZW0uX25vZGVpZCkK
LSAgICB1c2VkX2ZpeHR1cmVzID0gc29ydGVkKGl0ZW0uX2ZpeHR1cmVpbmZvLm5hbWUyZml4dHVy
ZWRlZnMua2V5cygpKQotICAgIGlmIHVzZWRfZml4dHVyZXM6Ci0gICAgICAgIHR3LndyaXRlKCcg
KGZpeHR1cmVzIHVzZWQ6IHswfSknLmZvcm1hdCgnLCAnLmpvaW4odXNlZF9maXh0dXJlcykpKQot
Ci0KLWRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKLSAgICBfdXBkYXRlX2N1cnJlbnRf
dGVzdF92YXIoaXRlbSwgJ3NldHVwJykKLSAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUucHJl
cGFyZShpdGVtKQotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgotICAgIF91cGRh
dGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCAnY2FsbCcpCi0gICAgdHJ5OgotICAgICAgICBpdGVt
LnJ1bnRlc3QoKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICMgU3RvcmUgdHJhY2Ug
aW5mbyB0byBhbGxvdyBwb3N0bW9ydGVtIGRlYnVnZ2luZwotICAgICAgICB0eXBlLCB2YWx1ZSwg
dGIgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICB0YiA9IHRiLnRiX25leHQgICMgU2tpcCAqdGhp
cyogZnJhbWUKLSAgICAgICAgc3lzLmxhc3RfdHlwZSA9IHR5cGUKLSAgICAgICAgc3lzLmxhc3Rf
dmFsdWUgPSB2YWx1ZQotICAgICAgICBzeXMubGFzdF90cmFjZWJhY2sgPSB0YgotICAgICAgICBk
ZWwgdGIgICMgR2V0IHJpZCBvZiBpdCBpbiB0aGlzIG5hbWVzcGFjZQotICAgICAgICByYWlzZQot
Ci0KLWRlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bihpdGVtLCBuZXh0aXRlbSk6Ci0gICAgX3Vw
ZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sICd0ZWFyZG93bicpCi0gICAgaXRlbS5zZXNzaW9u
Ll9zZXR1cHN0YXRlLnRlYXJkb3duX2V4YWN0KGl0ZW0sIG5leHRpdGVtKQotICAgIF91cGRhdGVf
Y3VycmVudF90ZXN0X3ZhcihpdGVtLCBOb25lKQotCi0KLWRlZiBfdXBkYXRlX2N1cnJlbnRfdGVz
dF92YXIoaXRlbSwgd2hlbik6Ci0gICAgIiIiCi0gICAgVXBkYXRlIFBZVEVTVF9DVVJSRU5UX1RF
U1QgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBpdGVtIGFuZCBzdGFnZS4KLQotICAgIElmIGBgd2hl
bmBgIGlzIE5vbmUsIGRlbGV0ZSBQWVRFU1RfQ1VSUkVOVF9URVNUIGZyb20gdGhlIGVudmlyb25t
ZW50LgotICAgICIiIgotICAgIHZhcl9uYW1lID0gJ1BZVEVTVF9DVVJSRU5UX1RFU1QnCi0gICAg
aWYgd2hlbjoKLSAgICAgICAgdmFsdWUgPSAnezB9ICh7MX0pJy5mb3JtYXQoaXRlbS5ub2RlaWQs
IHdoZW4pCi0gICAgICAgICMgZG9uJ3QgYWxsb3cgbnVsbCBieXRlcyBvbiBlbnZpcm9ubWVudCB2
YXJpYWJsZXMgKHNlZSAjMjY0NCwgIzI5NTcpCi0gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFj
ZSgnXHgwMCcsICcobnVsbCknKQotICAgICAgICBvcy5lbnZpcm9uW3Zhcl9uYW1lXSA9IHZhbHVl
Ci0gICAgZWxzZToKLSAgICAgICAgb3MuZW52aXJvbi5wb3AodmFyX25hbWUpCi0KLQotZGVmIHB5
dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgotICAgIGlmIHJlcG9ydC53aGVuIGluICgi
c2V0dXAiLCAidGVhcmRvd24iKToKLSAgICAgICAgaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAg
ICAgICMgICAgICBjYXRlZ29yeSwgc2hvcnRsZXR0ZXIsIHZlcmJvc2Utd29yZAotICAgICAgICAg
ICAgcmV0dXJuICJlcnJvciIsICJFIiwgIkVSUk9SIgotICAgICAgICBlbGlmIHJlcG9ydC5za2lw
cGVkOgotICAgICAgICAgICAgcmV0dXJuICJza2lwcGVkIiwgInMiLCAiU0tJUFBFRCIKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiAiIiwgIiIsICIiCi0KLQotIwotIyBJbXBsZW1l
bnRhdGlvbgotCi1kZWYgY2FsbF9hbmRfcmVwb3J0KGl0ZW0sIHdoZW4sIGxvZz1UcnVlLCAqKmt3
ZHMpOgotICAgIGNhbGwgPSBjYWxsX3J1bnRlc3RfaG9vayhpdGVtLCB3aGVuLCAqKmt3ZHMpCi0g
ICAgaG9vayA9IGl0ZW0uaWhvb2sKLSAgICByZXBvcnQgPSBob29rLnB5dGVzdF9ydW50ZXN0X21h
a2VyZXBvcnQoaXRlbT1pdGVtLCBjYWxsPWNhbGwpCi0gICAgaWYgbG9nOgotICAgICAgICBob29r
LnB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQ9cmVwb3J0KQotICAgIGlmIGNoZWNrX2lu
dGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxsLCByZXBvcnQpOgotICAgICAgICBob29rLnB5dGVzdF9l
eGNlcHRpb25faW50ZXJhY3Qobm9kZT1pdGVtLCBjYWxsPWNhbGwsIHJlcG9ydD1yZXBvcnQpCi0g
ICAgcmV0dXJuIHJlcG9ydAotCi0KLWRlZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRpb24oY2Fs
bCwgcmVwb3J0KToKLSAgICByZXR1cm4gY2FsbC5leGNpbmZvIGFuZCBub3QgKAotICAgICAgICBo
YXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIikgb3IKLSAgICAgICAgY2FsbC5leGNpbmZvLmVycmlz
aW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pIG9yCi0gICAgICAgIGNhbGwuZXhjaW5mby5lcnJpc2lu
c3RhbmNlKGJkYi5CZGJRdWl0KSkKLQotCi1kZWYgY2FsbF9ydW50ZXN0X2hvb2soaXRlbSwgd2hl
biwgKiprd2RzKToKLSAgICBob29rbmFtZSA9ICJweXRlc3RfcnVudGVzdF8iICsgd2hlbgotICAg
IGlob29rID0gZ2V0YXR0cihpdGVtLmlob29rLCBob29rbmFtZSkKLSAgICByZXR1cm4gQ2FsbElu
Zm8obGFtYmRhOiBpaG9vayhpdGVtPWl0ZW0sICoqa3dkcyksIHdoZW49d2hlbikKLQotCi1jbGFz
cyBDYWxsSW5mbzoKLSAgICAiIiIgUmVzdWx0L0V4Y2VwdGlvbiBpbmZvIGEgZnVuY3Rpb24gaW52
b2NhdGlvbi4gIiIiCi0gICAgIzogTm9uZSBvciBFeGNlcHRpb25JbmZvIG9iamVjdC4KLSAgICBl
eGNpbmZvID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsIHdoZW4pOgotICAg
ICAgICAjOiBjb250ZXh0IG9mIGludm9jYXRpb246IG9uZSBvZiAic2V0dXAiLCAiY2FsbCIsCi0g
ICAgICAgICM6ICJ0ZWFyZG93biIsICJtZW1vY29sbGVjdCIKLSAgICAgICAgc2VsZi53aGVuID0g
d2hlbgotICAgICAgICBzZWxmLnN0YXJ0ID0gdGltZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHNlbGYucmVzdWx0ID0gZnVuYygpCi0gICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVw
dDoKLSAgICAgICAgICAgIHNlbGYuc3RvcCA9IHRpbWUoKQotICAgICAgICAgICAgcmFpc2UKLSAg
ICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICBzZWxmLmV4Y2luZm8gPSBFeGNlcHRp
b25JbmZvKCkKLSAgICAgICAgc2VsZi5zdG9wID0gdGltZSgpCi0KLSAgICBkZWYgX19yZXByX18o
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuZXhjaW5mbzoKLSAgICAgICAgICAgIHN0YXR1cyA9ICJl
eGNlcHRpb246ICVzIiAlIHN0cihzZWxmLmV4Y2luZm8udmFsdWUpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBzdGF0dXMgPSAicmVzdWx0OiAlciIgJSAoc2VsZi5yZXN1bHQsKQotICAgICAg
ICByZXR1cm4gIjxDYWxsSW5mbyB3aGVuPSVyICVzPiIgJSAoc2VsZi53aGVuLCBzdGF0dXMpCi0K
LQotZGVmIGdldHNsYXZlaW5mb2xpbmUobm9kZSk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4g
bm9kZS5fc2xhdmVpbmZvY2FjaGUKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAg
IGQgPSBub2RlLnNsYXZlaW5mbwotICAgICAgICB2ZXIgPSAiJXMuJXMuJXMiICUgZFsndmVyc2lv
bl9pbmZvJ11bOjNdCi0gICAgICAgIG5vZGUuX3NsYXZlaW5mb2NhY2hlID0gcyA9ICJbJXNdICVz
IC0tIFB5dGhvbiAlcyAlcyIgJSAoCi0gICAgICAgICAgICBkWydpZCddLCBkWydzeXNwbGF0Zm9y
bSddLCB2ZXIsIGRbJ2V4ZWN1dGFibGUnXSkKLSAgICAgICAgcmV0dXJuIHMKLQotCi1jbGFzcyBC
YXNlUmVwb3J0KG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6Ci0gICAg
ICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGt3KQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwg
b3V0KToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnbm9kZScpOgotICAgICAgICAgICAgb3V0
LmxpbmUoZ2V0c2xhdmVpbmZvbGluZShzZWxmLm5vZGUpKQotCi0gICAgICAgIGxvbmdyZXByID0g
c2VsZi5sb25ncmVwcgotICAgICAgICBpZiBsb25ncmVwciBpcyBOb25lOgotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgaWYgaGFzYXR0cihsb25ncmVwciwgJ3RvdGVybWluYWwnKToKLSAg
ICAgICAgICAgIGxvbmdyZXByLnRvdGVybWluYWwob3V0KQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG91dC5saW5lKGxvbmdyZXByKQotICAgICAgICAg
ICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKLSAgICAgICAgICAgICAgICBvdXQubGluZSgi
PHVucHJpbnRhYmxlIGxvbmdyZXByPiIpCi0KLSAgICBkZWYgZ2V0X3NlY3Rpb25zKHNlbGYsIHBy
ZWZpeCk6Ci0gICAgICAgIGZvciBuYW1lLCBjb250ZW50IGluIHNlbGYuc2VjdGlvbnM6Ci0gICAg
ICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgICAgICB5aWVs
ZCBwcmVmaXgsIGNvbnRlbnQKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBsb25ncmVwcnRleHQo
c2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZWFkLW9ubHkgcHJvcGVydHkgdGhhdCByZXR1
cm5zIHRoZSBmdWxsIHN0cmluZyByZXByZXNlbnRhdGlvbgotICAgICAgICBvZiBgYGxvbmdyZXBy
YGAuCi0KLSAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4wCi0gICAgICAgICIiIgotICAgICAg
ICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCi0gICAgICAgIHR3Lmhh
c21hcmt1cCA9IEZhbHNlCi0gICAgICAgIHNlbGYudG90ZXJtaW5hbCh0dykKLSAgICAgICAgZXhj
ID0gdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQotICAgICAgICByZXR1cm4gZXhjLnN0cmlwKCkKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjYXBzdGRvdXQoc2VsZik6Ci0gICAgICAgICIiIlJldHVy
biBjYXB0dXJlZCB0ZXh0IGZyb20gc3Rkb3V0LCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxlZAotCi0g
ICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJu
ICcnLmpvaW4oY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRfc2VjdGlv
bnMoJ0NhcHR1cmVkIHN0ZG91dCcpKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGNhcHN0ZGVy
cihzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVkIHRleHQgZnJvbSBzdGRlcnIsIGlm
IGNhcHR1cmluZyBpcyBlbmFibGVkCi0KLSAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4wCi0g
ICAgICAgICIiIgotICAgICAgICByZXR1cm4gJycuam9pbihjb250ZW50IGZvciAocHJlZml4LCBj
b250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygnQ2FwdHVyZWQgc3RkZXJyJykpCi0KLSAgICBw
YXNzZWQgPSBwcm9wZXJ0eShsYW1iZGEgeDogeC5vdXRjb21lID09ICJwYXNzZWQiKQotICAgIGZh
aWxlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gImZhaWxlZCIpCi0gICAgc2tp
cHBlZCA9IHByb3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gInNraXBwZWQiKQotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIGZzcGF0aChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubm9k
ZWlkLnNwbGl0KCI6OiIpWzBdCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRl
bSwgY2FsbCk6Ci0gICAgd2hlbiA9IGNhbGwud2hlbgotICAgIGR1cmF0aW9uID0gY2FsbC5zdG9w
IC0gY2FsbC5zdGFydAotICAgIGtleXdvcmRzID0gZGljdChbKHgsIDEpIGZvciB4IGluIGl0ZW0u
a2V5d29yZHNdKQotICAgIGV4Y2luZm8gPSBjYWxsLmV4Y2luZm8KLSAgICBzZWN0aW9ucyA9IFtd
Ci0gICAgaWYgbm90IGNhbGwuZXhjaW5mbzoKLSAgICAgICAgb3V0Y29tZSA9ICJwYXNzZWQiCi0g
ICAgICAgIGxvbmdyZXByID0gTm9uZQotICAgIGVsc2U6Ci0gICAgICAgIGlmIG5vdCBpc2luc3Rh
bmNlKGV4Y2luZm8sIEV4Y2VwdGlvbkluZm8pOgotICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWls
ZWQiCi0gICAgICAgICAgICBsb25ncmVwciA9IGV4Y2luZm8KLSAgICAgICAgZWxpZiBleGNpbmZv
LmVycmlzaW5zdGFuY2Uoc2tpcC5FeGNlcHRpb24pOgotICAgICAgICAgICAgb3V0Y29tZSA9ICJz
a2lwcGVkIgotICAgICAgICAgICAgciA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCi0gICAgICAg
ICAgICBsb25ncmVwciA9IChzdHIoci5wYXRoKSwgci5saW5lbm8sIHIubWVzc2FnZSkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgaWYg
Y2FsbC53aGVuID09ICJjYWxsIjoKLSAgICAgICAgICAgICAgICBsb25ncmVwciA9IGl0ZW0ucmVw
cl9mYWlsdXJlKGV4Y2luZm8pCi0gICAgICAgICAgICBlbHNlOiAgIyBleGNlcHRpb24gaW4gc2V0
dXAgb3IgdGVhcmRvd24KLSAgICAgICAgICAgICAgICBsb25ncmVwciA9IGl0ZW0uX3JlcHJfZmFp
bHVyZV9weShleGNpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0eWxlPWl0ZW0uY29uZmlnLm9wdGlvbi50YnN0eWxlKQotICAgIGZvciByd2hl
biwga2V5LCBjb250ZW50IGluIGl0ZW0uX3JlcG9ydF9zZWN0aW9uczoKLSAgICAgICAgc2VjdGlv
bnMuYXBwZW5kKCgiQ2FwdHVyZWQgJXMgJXMiICUgKGtleSwgcndoZW4pLCBjb250ZW50KSkKLSAg
ICByZXR1cm4gVGVzdFJlcG9ydChpdGVtLm5vZGVpZCwgaXRlbS5sb2NhdGlvbiwKLSAgICAgICAg
ICAgICAgICAgICAgICBrZXl3b3Jkcywgb3V0Y29tZSwgbG9uZ3JlcHIsIHdoZW4sCi0gICAgICAg
ICAgICAgICAgICAgICAgc2VjdGlvbnMsIGR1cmF0aW9uKQotCi0KLWNsYXNzIFRlc3RSZXBvcnQo
QmFzZVJlcG9ydCk6Ci0gICAgIiIiIEJhc2ljIHRlc3QgcmVwb3J0IG9iamVjdCAoYWxzbyB1c2Vk
IGZvciBzZXR1cCBhbmQgdGVhcmRvd24gY2FsbHMgaWYKLSAgICB0aGV5IGZhaWwpLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgbG9jYXRpb24sIGtleXdvcmRzLCBv
dXRjb21lLAotICAgICAgICAgICAgICAgICBsb25ncmVwciwgd2hlbiwgc2VjdGlvbnM9KCksIGR1
cmF0aW9uPTAsICoqZXh0cmEpOgotICAgICAgICAjOiBub3JtYWxpemVkIGNvbGxlY3Rpb24gbm9k
ZSBpZAotICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAotCi0gICAgICAgICM6IGEgKGZpbGVz
eXN0ZW1wYXRoLCBsaW5lbm8sIGRvbWFpbmluZm8pIHR1cGxlIGluZGljYXRpbmcgdGhlCi0gICAg
ICAgICM6IGFjdHVhbCBsb2NhdGlvbiBvZiBhIHRlc3QgaXRlbSAtIGl0IG1pZ2h0IGJlIGRpZmZl
cmVudCBmcm9tIHRoZQotICAgICAgICAjOiBjb2xsZWN0ZWQgb25lIGUuZy4gaWYgYSBtZXRob2Qg
aXMgaW5oZXJpdGVkIGZyb20gYSBkaWZmZXJlbnQgbW9kdWxlLgotICAgICAgICBzZWxmLmxvY2F0
aW9uID0gbG9jYXRpb24KLQotICAgICAgICAjOiBhIG5hbWUgLT4gdmFsdWUgZGljdGlvbmFyeSBj
b250YWluaW5nIGFsbCBrZXl3b3JkcyBhbmQKLSAgICAgICAgIzogbWFya2VycyBhc3NvY2lhdGVk
IHdpdGggYSB0ZXN0IGludm9jYXRpb24uCi0gICAgICAgIHNlbGYua2V5d29yZHMgPSBrZXl3b3Jk
cwotCi0gICAgICAgICM6IHRlc3Qgb3V0Y29tZSwgYWx3YXlzIG9uZSBvZiAicGFzc2VkIiwgImZh
aWxlZCIsICJza2lwcGVkIi4KLSAgICAgICAgc2VsZi5vdXRjb21lID0gb3V0Y29tZQotCi0gICAg
ICAgICM6IE5vbmUgb3IgYSBmYWlsdXJlIHJlcHJlc2VudGF0aW9uLgotICAgICAgICBzZWxmLmxv
bmdyZXByID0gbG9uZ3JlcHIKLQotICAgICAgICAjOiBvbmUgb2YgJ3NldHVwJywgJ2NhbGwnLCAn
dGVhcmRvd24nIHRvIGluZGljYXRlIHJ1bnRlc3QgcGhhc2UuCi0gICAgICAgIHNlbGYud2hlbiA9
IHdoZW4KLQotICAgICAgICAjOiBsaXN0IG9mIHBhaXJzIGBgKHN0ciwgc3RyKWBgIG9mIGV4dHJh
IGluZm9ybWF0aW9uIHdoaWNoIG5lZWRzIHRvCi0gICAgICAgICM6IG1hcnNoYWxsYWJsZS4gVXNl
ZCBieSBweXRlc3QgdG8gYWRkIGNhcHR1cmVkIHRleHQKLSAgICAgICAgIzogZnJvbSBgYHN0ZG91
dGBgIGFuZCBgYHN0ZGVycmBgLCBidXQgbWF5IGJlIHVzZWQgYnkgb3RoZXIgcGx1Z2lucwotICAg
ICAgICAjOiB0byBhZGQgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIHRvIHJlcG9ydHMuCi0gICAgICAg
IHNlbGYuc2VjdGlvbnMgPSBsaXN0KHNlY3Rpb25zKQotCi0gICAgICAgICM6IHRpbWUgaXQgdG9v
ayB0byBydW4ganVzdCB0aGUgdGVzdAotICAgICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRpb24K
LQotICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRyYSkKLQotICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8VGVzdFJlcG9ydCAlciB3aGVuPSVyIG91dGNvbWU9
JXI+IiAlICgKLSAgICAgICAgICAgIHNlbGYubm9kZWlkLCBzZWxmLndoZW4sIHNlbGYub3V0Y29t
ZSkKLQotCi1jbGFzcyBUZWFyZG93bkVycm9yUmVwb3J0KEJhc2VSZXBvcnQpOgotICAgIG91dGNv
bWUgPSAiZmFpbGVkIgotICAgIHdoZW4gPSAidGVhcmRvd24iCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9uZ3JlcHIsICoqZXh0cmEpOgotICAgICAgICBzZWxmLmxvbmdyZXByID0gbG9uZ3Jl
cHIKLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCi0gICAgICAgIHNlbGYuX19kaWN0X18udXBk
YXRlKGV4dHJhKQotCi0KLWRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydChjb2xsZWN0b3Ip
OgotICAgIGNhbGwgPSBDYWxsSW5mbygKLSAgICAgICAgbGFtYmRhOiBsaXN0KGNvbGxlY3Rvci5j
b2xsZWN0KCkpLAotICAgICAgICAnY29sbGVjdCcpCi0gICAgbG9uZ3JlcHIgPSBOb25lCi0gICAg
aWYgbm90IGNhbGwuZXhjaW5mbzoKLSAgICAgICAgb3V0Y29tZSA9ICJwYXNzZWQiCi0gICAgZWxz
ZToKLSAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBub3NlCi0gICAgICAgIHNraXBfZXhjZXB0
aW9ucyA9IChTa2lwcGVkLCkgKyBub3NlLmdldF9za2lwX2V4Y2VwdGlvbnMoKQotICAgICAgICBp
ZiBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShza2lwX2V4Y2VwdGlvbnMpOgotICAgICAgICAg
ICAgb3V0Y29tZSA9ICJza2lwcGVkIgotICAgICAgICAgICAgciA9IGNvbGxlY3Rvci5fcmVwcl9m
YWlsdXJlX3B5KGNhbGwuZXhjaW5mbywgImxpbmUiKS5yZXByY3Jhc2gKLSAgICAgICAgICAgIGxv
bmdyZXByID0gKHN0cihyLnBhdGgpLCByLmxpbmVubywgci5tZXNzYWdlKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICBlcnJvcmluZm8g
PSBjb2xsZWN0b3IucmVwcl9mYWlsdXJlKGNhbGwuZXhjaW5mbykKLSAgICAgICAgICAgIGlmIG5v
dCBoYXNhdHRyKGVycm9yaW5mbywgInRvdGVybWluYWwiKToKLSAgICAgICAgICAgICAgICBlcnJv
cmluZm8gPSBDb2xsZWN0RXJyb3JSZXByKGVycm9yaW5mbykKLSAgICAgICAgICAgIGxvbmdyZXBy
ID0gZXJyb3JpbmZvCi0gICAgcmVwID0gQ29sbGVjdFJlcG9ydChjb2xsZWN0b3Iubm9kZWlkLCBv
dXRjb21lLCBsb25ncmVwciwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIoY2FsbCwg
J3Jlc3VsdCcsIE5vbmUpKQotICAgIHJlcC5jYWxsID0gY2FsbCAgIyBzZWUgY29sbGVjdF9vbmVf
bm9kZQotICAgIHJldHVybiByZXAKLQotCi1jbGFzcyBDb2xsZWN0UmVwb3J0KEJhc2VSZXBvcnQp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIG91dGNvbWUsIGxvbmdyZXByLCByZXN1
bHQsCi0gICAgICAgICAgICAgICAgIHNlY3Rpb25zPSgpLCAqKmV4dHJhKToKLSAgICAgICAgc2Vs
Zi5ub2RlaWQgPSBub2RlaWQKLSAgICAgICAgc2VsZi5vdXRjb21lID0gb3V0Y29tZQotICAgICAg
ICBzZWxmLmxvbmdyZXByID0gbG9uZ3JlcHIKLSAgICAgICAgc2VsZi5yZXN1bHQgPSByZXN1bHQg
b3IgW10KLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2VjdGlvbnMpCi0gICAgICAgIHNl
bGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGxvY2F0
aW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gKHNlbGYuZnNwYXRoLCBOb25lLCBzZWxmLmZzcGF0
aCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8Q29sbGVjdFJl
cG9ydCAlciBsZW5yZXN1bHQ9JXMgb3V0Y29tZT0lcj4iICUgKAotICAgICAgICAgICAgc2VsZi5u
b2RlaWQsIGxlbihzZWxmLnJlc3VsdCksIHNlbGYub3V0Y29tZSkKLQotCi1jbGFzcyBDb2xsZWN0
RXJyb3JSZXByKFRlcm1pbmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZyk6Ci0g
ICAgICAgIHNlbGYubG9uZ3JlcHIgPSBtc2cKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91
dCk6Ci0gICAgICAgIG91dC5saW5lKHNlbGYubG9uZ3JlcHIsIHJlZD1UcnVlKQotCi0KLWNsYXNz
IFNldHVwU3RhdGUob2JqZWN0KToKLSAgICAiIiIgc2hhcmVkIHN0YXRlIGZvciBzZXR0aW5nIHVw
L3RlYXJpbmcgZG93biB0ZXN0IGl0ZW1zIG9yIGNvbGxlY3RvcnMuICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnN0YWNrID0gW10KLSAgICAgICAgc2VsZi5fZmlu
YWxpemVycyA9IHt9Ci0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplciwgY29s
aXRlbSk6Ci0gICAgICAgICIiIiBhdHRhY2ggYSBmaW5hbGl6ZXIgdG8gdGhlIGdpdmVuIGNvbGl0
ZW0uCi0gICAgICAgIGlmIGNvbGl0ZW0gaXMgTm9uZSwgdGhpcyB3aWxsIGFkZCBhIGZpbmFsaXpl
ciB0aGF0Ci0gICAgICAgIGlzIGNhbGxlZCBhdCB0aGUgZW5kIG9mIHRlYXJkb3duX2FsbCgpLgot
ICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0IGNvbGl0ZW0gYW5kIG5vdCBpc2luc3RhbmNlKGNv
bGl0ZW0sIHR1cGxlKQotICAgICAgICBhc3NlcnQgY2FsbGFibGUoZmluYWxpemVyKQotICAgICAg
ICAjIGFzc2VydCBjb2xpdGVtIGluIHNlbGYuc3RhY2sgICMgc29tZSB1bml0IHRlc3RzIGRvbid0
IHNldHVwIHN0YWNrIDovCi0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMuc2V0ZGVmYXVsdChjb2xp
dGVtLCBbXSkuYXBwZW5kKGZpbmFsaXplcikKLQotICAgIGRlZiBfcG9wX2FuZF90ZWFyZG93bihz
ZWxmKToKLSAgICAgICAgY29saXRlbSA9IHNlbGYuc3RhY2sucG9wKCkKLSAgICAgICAgc2VsZi5f
dGVhcmRvd25fd2l0aF9maW5hbGl6YXRpb24oY29saXRlbSkKLQotICAgIGRlZiBfY2FsbGZpbmFs
aXplcnMoc2VsZiwgY29saXRlbSk6Ci0gICAgICAgIGZpbmFsaXplcnMgPSBzZWxmLl9maW5hbGl6
ZXJzLnBvcChjb2xpdGVtLCBOb25lKQotICAgICAgICBleGMgPSBOb25lCi0gICAgICAgIHdoaWxl
IGZpbmFsaXplcnM6Ci0gICAgICAgICAgICBmaW4gPSBmaW5hbGl6ZXJzLnBvcCgpCi0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZmluKCkKLSAgICAgICAgICAgIGV4Y2VwdCBURVNU
X09VVENPTUU6Ci0gICAgICAgICAgICAgICAgIyBYWFggT25seSBmaXJzdCBleGNlcHRpb24gd2ls
bCBiZSBzZWVuIGJ5IHVzZXIsCi0gICAgICAgICAgICAgICAgIyAgICAgaWRlYWxseSBhbGwgc2hv
dWxkIGJlIHJlcG9ydGVkLgotICAgICAgICAgICAgICAgIGlmIGV4YyBpcyBOb25lOgotICAgICAg
ICAgICAgICAgICAgICBleGMgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICBpZiBleGM6Ci0gICAg
ICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpleGMpCi0KLSAgICBkZWYgX3RlYXJkb3duX3dp
dGhfZmluYWxpemF0aW9uKHNlbGYsIGNvbGl0ZW0pOgotICAgICAgICBzZWxmLl9jYWxsZmluYWxp
emVycyhjb2xpdGVtKQotICAgICAgICBpZiBoYXNhdHRyKGNvbGl0ZW0sICJ0ZWFyZG93biIpOgot
ICAgICAgICAgICAgY29saXRlbS50ZWFyZG93bigpCi0gICAgICAgIGZvciBjb2xpdGVtIGluIHNl
bGYuX2ZpbmFsaXplcnM6Ci0gICAgICAgICAgICBhc3NlcnQgY29saXRlbSBpcyBOb25lIG9yIGNv
bGl0ZW0gaW4gc2VsZi5zdGFjayBcCi0gICAgICAgICAgICAgICAgb3IgaXNpbnN0YW5jZShjb2xp
dGVtLCB0dXBsZSkKLQotICAgIGRlZiB0ZWFyZG93bl9hbGwoc2VsZik6Ci0gICAgICAgIHdoaWxl
IHNlbGYuc3RhY2s6Ci0gICAgICAgICAgICBzZWxmLl9wb3BfYW5kX3RlYXJkb3duKCkKLSAgICAg
ICAgZm9yIGtleSBpbiBsaXN0KHNlbGYuX2ZpbmFsaXplcnMpOgotICAgICAgICAgICAgc2VsZi5f
dGVhcmRvd25fd2l0aF9maW5hbGl6YXRpb24oa2V5KQotICAgICAgICBhc3NlcnQgbm90IHNlbGYu
X2ZpbmFsaXplcnMKLQotICAgIGRlZiB0ZWFyZG93bl9leGFjdChzZWxmLCBpdGVtLCBuZXh0aXRl
bSk6Ci0gICAgICAgIG5lZWRlZF9jb2xsZWN0b3JzID0gbmV4dGl0ZW0gYW5kIG5leHRpdGVtLmxp
c3RjaGFpbigpIG9yIFtdCi0gICAgICAgIHNlbGYuX3RlYXJkb3duX3Rvd2FyZHMobmVlZGVkX2Nv
bGxlY3RvcnMpCi0KLSAgICBkZWYgX3RlYXJkb3duX3Rvd2FyZHMoc2VsZiwgbmVlZGVkX2NvbGxl
Y3RvcnMpOgotICAgICAgICB3aGlsZSBzZWxmLnN0YWNrOgotICAgICAgICAgICAgaWYgc2VsZi5z
dGFjayA9PSBuZWVkZWRfY29sbGVjdG9yc1s6bGVuKHNlbGYuc3RhY2spXToKLSAgICAgICAgICAg
ICAgICBicmVhawotICAgICAgICAgICAgc2VsZi5fcG9wX2FuZF90ZWFyZG93bigpCi0KLSAgICBk
ZWYgcHJlcGFyZShzZWxmLCBjb2xpdGVtKToKLSAgICAgICAgIiIiIHNldHVwIG9iamVjdHMgYWxv
bmcgdGhlIGNvbGxlY3RvciBjaGFpbiB0byB0aGUgdGVzdC1tZXRob2QKLSAgICAgICAgICAgIGFu
ZCB0ZWFyZG93biBwcmV2aW91c2x5IHNldHVwIG9iamVjdHMuIiIiCi0gICAgICAgIG5lZWRlZF9j
b2xsZWN0b3JzID0gY29saXRlbS5saXN0Y2hhaW4oKQotICAgICAgICBzZWxmLl90ZWFyZG93bl90
b3dhcmRzKG5lZWRlZF9jb2xsZWN0b3JzKQotCi0gICAgICAgICMgY2hlY2sgaWYgdGhlIGxhc3Qg
Y29sbGVjdGlvbiBub2RlIGhhcyByYWlzZWQgYW4gZXJyb3IKLSAgICAgICAgZm9yIGNvbCBpbiBz
ZWxmLnN0YWNrOgotICAgICAgICAgICAgaWYgaGFzYXR0cihjb2wsICdfcHJlcGFyZV9leGMnKToK
LSAgICAgICAgICAgICAgICBweS5idWlsdGluLl9yZXJhaXNlKCpjb2wuX3ByZXBhcmVfZXhjKQot
ICAgICAgICBmb3IgY29sIGluIG5lZWRlZF9jb2xsZWN0b3JzW2xlbihzZWxmLnN0YWNrKTpdOgot
ICAgICAgICAgICAgc2VsZi5zdGFjay5hcHBlbmQoY29sKQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGNvbC5zZXR1cCgpCi0gICAgICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01F
OgotICAgICAgICAgICAgICAgIGNvbC5fcHJlcGFyZV9leGMgPSBzeXMuZXhjX2luZm8oKQotICAg
ICAgICAgICAgICAgIHJhaXNlCi0KLQotZGVmIGNvbGxlY3Rfb25lX25vZGUoY29sbGVjdG9yKToK
LSAgICBpaG9vayA9IGNvbGxlY3Rvci5paG9vawotICAgIGlob29rLnB5dGVzdF9jb2xsZWN0c3Rh
cnQoY29sbGVjdG9yPWNvbGxlY3RvcikKLSAgICByZXAgPSBpaG9vay5weXRlc3RfbWFrZV9jb2xs
ZWN0X3JlcG9ydChjb2xsZWN0b3I9Y29sbGVjdG9yKQotICAgIGNhbGwgPSByZXAuX19kaWN0X18u
cG9wKCJjYWxsIiwgTm9uZSkKLSAgICBpZiBjYWxsIGFuZCBjaGVja19pbnRlcmFjdGl2ZV9leGNl
cHRpb24oY2FsbCwgcmVwKToKLSAgICAgICAgaWhvb2sucHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFj
dChub2RlPWNvbGxlY3RvciwgY2FsbD1jYWxsLCByZXBvcnQ9cmVwKQotICAgIHJldHVybiByZXAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9zZXR1cG9ubHkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEx
Yzc0NTdkN2U1MDZjMDdiN2MxNzVlYjhjOTQ3MGViNjFiNWZkN2EuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cG9u
bHkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBw
eXRlc3QKLWltcG9ydCBzeXMKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAg
IGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCi0gICAgZ3JvdXAuYWRkb3B0
aW9uKCctLXNldHVwb25seScsICctLXNldHVwLW9ubHknLCBhY3Rpb249InN0b3JlX3RydWUiLAot
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJvbmx5IHNldHVwIGZpeHR1cmVzLCBkbyBub3QgZXhl
Y3V0ZSB0ZXN0cy4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1zZXR1cHNob3cnLCAnLS1zZXR1
cC1zaG93JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0i
c2hvdyBzZXR1cCBvZiBmaXh0dXJlcyB3aGlsZSBleGVjdXRpbmcgdGVzdHMuIikKLQotCi1AcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAo
Zml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgeWllbGQKLSAgICBjb25maWcgPSByZXF1ZXN0LmNv
bmZpZwotICAgIGlmIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93OgotICAgICAgICBpZiBoYXNhdHRy
KHJlcXVlc3QsICdwYXJhbScpOgotICAgICAgICAgICAgIyBTYXZlIHRoZSBmaXh0dXJlIHBhcmFt
ZXRlciBzbyAuX3Nob3dfZml4dHVyZV9hY3Rpb24oKSBjYW4KLSAgICAgICAgICAgICMgZGlzcGxh
eSBpdCBub3cgYW5kIGR1cmluZyB0aGUgdGVhcmRvd24gKGluIC5maW5pc2goKSkuCi0gICAgICAg
ICAgICBpZiBmaXh0dXJlZGVmLmlkczoKLSAgICAgICAgICAgICAgICBpZiBjYWxsYWJsZShmaXh0
dXJlZGVmLmlkcyk6Ci0gICAgICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFt
ID0gZml4dHVyZWRlZi5pZHMocmVxdWVzdC5wYXJhbSkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbSA9IGZpeHR1cmVkZWYu
aWRzWwotICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5wYXJhbV9pbmRleF0KLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0gPSBy
ZXF1ZXN0LnBhcmFtCi0gICAgICAgIF9zaG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVkZWYsICdT
RVRVUCcpCi0KLQotZGVmIHB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYp
OgotICAgIGlmIGhhc2F0dHIoZml4dHVyZWRlZiwgImNhY2hlZF9yZXN1bHQiKToKLSAgICAgICAg
Y29uZmlnID0gZml4dHVyZWRlZi5fZml4dHVyZW1hbmFnZXIuY29uZmlnCi0gICAgICAgIGlmIGNv
bmZpZy5vcHRpb24uc2V0dXBzaG93OgotICAgICAgICAgICAgX3Nob3dfZml4dHVyZV9hY3Rpb24o
Zml4dHVyZWRlZiwgJ1RFQVJET1dOJykKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoZml4dHVyZWRl
ZiwgImNhY2hlZF9wYXJhbSIpOgotICAgICAgICAgICAgICAgIGRlbCBmaXh0dXJlZGVmLmNhY2hl
ZF9wYXJhbQotCi0KLWRlZiBfc2hvd19maXh0dXJlX2FjdGlvbihmaXh0dXJlZGVmLCBtc2cpOgot
ICAgIGNvbmZpZyA9IGZpeHR1cmVkZWYuX2ZpeHR1cmVtYW5hZ2VyLmNvbmZpZwotICAgIGNhcG1h
biA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVyZW1hbmFnZXInKQotICAg
IGlmIGNhcG1hbjoKLSAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2Fw
dHVyZSgpCi0KLSAgICB0dyA9IGNvbmZpZy5nZXRfdGVybWluYWxfd3JpdGVyKCkKLSAgICB0dy5s
aW5lKCkKLSAgICB0dy53cml0ZSgnICcgKiAyICogZml4dHVyZWRlZi5zY29wZW51bSkKLSAgICB0
dy53cml0ZSgne3N0ZXB9IHtzY29wZX0ge2ZpeHR1cmV9Jy5mb3JtYXQoCi0gICAgICAgIHN0ZXA9
bXNnLmxqdXN0KDgpLCAgIyBhbGlnbiB0aGUgb3V0cHV0IHRvIFRFQVJET1dOCi0gICAgICAgIHNj
b3BlPWZpeHR1cmVkZWYuc2NvcGVbMF0udXBwZXIoKSwKLSAgICAgICAgZml4dHVyZT1maXh0dXJl
ZGVmLmFyZ25hbWUpKQotCi0gICAgaWYgbXNnID09ICdTRVRVUCc6Ci0gICAgICAgIGRlcHMgPSBz
b3J0ZWQoYXJnIGZvciBhcmcgaW4gZml4dHVyZWRlZi5hcmduYW1lcyBpZiBhcmcgIT0gJ3JlcXVl
c3QnKQotICAgICAgICBpZiBkZXBzOgotICAgICAgICAgICAgdHcud3JpdGUoJyAoZml4dHVyZXMg
dXNlZDogezB9KScuZm9ybWF0KCcsICcuam9pbihkZXBzKSkpCi0KLSAgICBpZiBoYXNhdHRyKGZp
eHR1cmVkZWYsICdjYWNoZWRfcGFyYW0nKToKLSAgICAgICAgdHcud3JpdGUoJ1t7MH1dJy5mb3Jt
YXQoZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0pKQotCi0gICAgaWYgY2FwbWFuOgotICAgICAgICBj
YXBtYW4ucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZShv
dXQpCi0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoZXJyKQotCi0KLUBweXRlc3QuaG9va2ltcGwo
dHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaWYg
Y29uZmlnLm9wdGlvbi5zZXR1cG9ubHk6Ci0gICAgICAgIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93
ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwcGxhbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTExYmQ0MDY5OGI3NzJiMDZhMzcyOTdjZmMzNGUwYTc4YmQxMTY0OS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3NldHVwcGxhbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQot
aW1wb3J0IHB5dGVzdAotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3Jv
dXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29uZmlnIikKLSAgICBncm91cC5hZGRvcHRpb24o
Jy0tc2V0dXBwbGFuJywgJy0tc2V0dXAtcGxhbicsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAg
ICAgICAgICAgICAgICAgIGhlbHA9InNob3cgd2hhdCBmaXh0dXJlcyBhbmQgdGVzdHMgd291bGQg
YmUgZXhlY3V0ZWQgYnV0ICIKLSAgICAgICAgICAgICAgICAgICAgImRvbid0IGV4ZWN1dGUgYW55
dGhpbmcuIikKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0
X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgIyBXaWxsIHJldHVybiBh
IGR1bW15IGZpeHR1cmUgaWYgdGhlIHNldHVwb25seSBvcHRpb24gaXMgcHJvdmlkZWQuCi0gICAg
aWYgcmVxdWVzdC5jb25maWcub3B0aW9uLnNldHVwcGxhbjoKLSAgICAgICAgZml4dHVyZWRlZi5j
YWNoZWRfcmVzdWx0ID0gKE5vbmUsIE5vbmUsIE5vbmUpCi0gICAgICAgIHJldHVybiBmaXh0dXJl
ZGVmLmNhY2hlZF9yZXN1bHQKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1k
ZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24uc2V0
dXBwbGFuOgotICAgICAgICBjb25maWcub3B0aW9uLnNldHVwb25seSA9IFRydWUKLSAgICAgICAg
Y29uZmlnLm9wdGlvbi5zZXR1cHNob3cgPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3NraXBwaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9za2lwcGluZy5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFlNWI0MzgwMGI1NGY4YzhhMjkwNTQwYjEzZGEz
YTAyODIwZDdmNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzk3
ICswLDAgQEAKLSIiIiBzdXBwb3J0IGZvciBza2lwL3hmYWlsIGZ1bmN0aW9ucyBhbmQgbWFya2Vy
cy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBvcwotaW1wb3J0IHNpeAotaW1wb3J0IHN5cwotaW1w
b3J0IHRyYWNlYmFjawotCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAotZnJv
bSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yCi1mcm9tIF9weXRl
c3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwsIHNraXAsIHhmYWlsLCBURVNUX09VVENPTUUKLQotCi1k
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJnZW5lcmFsIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tcnVueGZhaWwnLAotICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJydW54ZmFpbCIsIGRlZmF1bHQ9
RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InJ1biB0ZXN0cyBldmVuIGlmIHRoZXkg
YXJlIG1hcmtlZCB4ZmFpbCIpCi0KLSAgICBwYXJzZXIuYWRkaW5pKCJ4ZmFpbF9zdHJpY3QiLCAi
ZGVmYXVsdCBmb3IgdGhlIHN0cmljdCBwYXJhbWV0ZXIgb2YgeGZhaWwgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJtYXJrZXJzIHdoZW4gbm90IGdpdmVuIGV4cGxpY2l0bHkg
KGRlZmF1bHQ6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFsc2UpIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImJvb2wiKQotCi0KLWRlZiBweXRlc3Rf
Y29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKLSAgICAg
ICAgIyB5YXkgYSBoYWNrCi0gICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgb2xkID0gcHl0
ZXN0LnhmYWlsCi0gICAgICAgIGNvbmZpZy5fY2xlYW51cC5hcHBlbmQobGFtYmRhOiBzZXRhdHRy
KHB5dGVzdCwgInhmYWlsIiwgb2xkKSkKLQotICAgICAgICBkZWYgbm9wKCphcmdzLCAqKmt3YXJn
cyk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgbm9wLkV4Y2VwdGlvbiA9IHhmYWlsLkV4
Y2VwdGlvbgotICAgICAgICBzZXRhdHRyKHB5dGVzdCwgInhmYWlsIiwgbm9wKQotCi0gICAgY29u
ZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJza2lwKHJlYXNvbj1Ob25lKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiB3aXRo
IGFuIG9wdGlvbmFsIHJlYXNvbi4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeGFt
cGxlOiBza2lwKHJlYXNvbj1cIm5vIHdheSBvZiBjdXJyZW50bHkgdGVzdGluZyB0aGlzXCIpIHNr
aXBzIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QuIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICkKLSAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2Vy
cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNraXBpZihjb25kaXRpb24pOiBza2lw
IHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIGlmIGV2YWwoY29uZGl0aW9uKSAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlc3VsdHMgaW4gYSBUcnVlIHZhbHVlLiAgRXZhbHVhdGlvbiBo
YXBwZW5zIHdpdGhpbiB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUg
Z2xvYmFsIGNvbnRleHQuIEV4YW1wbGU6IHNraXBpZignc3lzLnBsYXRmb3JtID09IFwid2luMzJc
IicpICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2tpcHMgdGhlIHRlc3QgaWYgd2Ug
YXJlIG9uIHRoZSB3aW4zMiBwbGF0Zm9ybS4gc2VlICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJz
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAieGZhaWwoY29uZGl0aW9uLCByZWFzb249
Tm9uZSwgcnVuPVRydWUsIHJhaXNlcz1Ob25lLCBzdHJpY3Q9RmFsc2UpOiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1hcmsgdGhlIHRlc3QgZnVuY3Rpb24gYXMgYW4gZXhwZWN0ZWQg
ZmFpbHVyZSBpZiBldmFsKGNvbmRpdGlvbikgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJoYXMgYSBUcnVlIHZhbHVlLiBPcHRpb25hbGx5IHNwZWNpZnkgYSByZWFzb24gZm9yIGJldHRl
ciByZXBvcnRpbmcgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgcnVuPUZhbHNl
IGlmIHlvdSBkb24ndCBldmVuIHdhbnQgdG8gZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbi4gIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJZiBvbmx5IHNwZWNpZmljIGV4Y2VwdGlvbihz
KSBhcmUgZXhwZWN0ZWQsIHlvdSBjYW4gbGlzdCB0aGVtIGluICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmFpc2VzLCBhbmQgaWYgdGhlIHRlc3QgZmFpbHMgaW4gb3RoZXIgd2F5cywg
aXQgd2lsbCBiZSByZXBvcnRlZCBhcyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImEg
dHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0KLWNsYXNzIE1hcmtFdmFsdWF0b3Io
b2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaXRlbSwgbmFtZSk6Ci0gICAgICAgIHNl
bGYuaXRlbSA9IGl0ZW0KLSAgICAgICAgc2VsZi5fbWFya3MgPSBOb25lCi0gICAgICAgIHNlbGYu
X21hcmsgPSBOb25lCi0gICAgICAgIHNlbGYuX21hcmtfbmFtZSA9IG5hbWUKLQotICAgIGRlZiBf
X2Jvb2xfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fbWFya3MgPSBzZWxmLl9nZXRfbWFya3MoKQot
ICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9tYXJrcykKLSAgICBfX25vbnplcm9fXyA9IF9fYm9v
bF9fCi0KLSAgICBkZWYgd2FzdmFsaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBub3QgaGFzYXR0
cihzZWxmLCAnZXhjJykKLQotICAgIGRlZiBfZ2V0X21hcmtzKHNlbGYpOgotCi0gICAgICAgIGtl
eXdvcmQgPSBzZWxmLml0ZW0ua2V5d29yZHMuZ2V0KHNlbGYuX21hcmtfbmFtZSkKLSAgICAgICAg
aWYgaXNpbnN0YW5jZShrZXl3b3JkLCBNYXJrRGVjb3JhdG9yKToKLSAgICAgICAgICAgIHJldHVy
biBba2V5d29yZC5tYXJrXQotICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoa2V5d29yZCwgTWFya0lu
Zm8pOgotICAgICAgICAgICAgcmV0dXJuIFt4LmNvbWJpbmVkIGZvciB4IGluIGtleXdvcmRdCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gW10KLQotICAgIGRlZiBpbnZhbGlkcmFp
c2Uoc2VsZiwgZXhjKToKLSAgICAgICAgcmFpc2VzID0gc2VsZi5nZXQoJ3JhaXNlcycpCi0gICAg
ICAgIGlmIG5vdCByYWlzZXM6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcmV0dXJuIG5v
dCBpc2luc3RhbmNlKGV4YywgcmFpc2VzKQotCi0gICAgZGVmIGlzdHJ1ZShzZWxmKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lzdHJ1ZSgpCi0gICAgICAgIGV4Y2Vw
dCBURVNUX09VVENPTUU6Ci0gICAgICAgICAgICBzZWxmLmV4YyA9IHN5cy5leGNfaW5mbygpCi0g
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZXhjWzFdLCBTeW50YXhFcnJvcik6Ci0gICAg
ICAgICAgICAgICAgbXNnID0gWyIgIiAqIChzZWxmLmV4Y1sxXS5vZmZzZXQgKyA0KSArICJeIiwg
XQotICAgICAgICAgICAgICAgIG1zZy5hcHBlbmQoIlN5bnRheEVycm9yOiBpbnZhbGlkIHN5bnRh
eCIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1zZyA9IHRyYWNlYmFjay5m
b3JtYXRfZXhjZXB0aW9uX29ubHkoKnNlbGYuZXhjWzoyXSkKLSAgICAgICAgICAgIGZhaWwoIkVy
cm9yIGV2YWx1YXRpbmcgJXIgZXhwcmVzc2lvblxuIgotICAgICAgICAgICAgICAgICAiICAgICVz
XG4iCi0gICAgICAgICAgICAgICAgICIlcyIKLSAgICAgICAgICAgICAgICAgJSAoc2VsZi5fbWFy
a19uYW1lLCBzZWxmLmV4cHIsICJcbiIuam9pbihtc2cpKSwKLSAgICAgICAgICAgICAgICAgcHl0
cmFjZT1GYWxzZSkKLQotICAgIGRlZiBfZ2V0Z2xvYmFscyhzZWxmKToKLSAgICAgICAgZCA9IHsn
b3MnOiBvcywgJ3N5cyc6IHN5cywgJ2NvbmZpZyc6IHNlbGYuaXRlbS5jb25maWd9Ci0gICAgICAg
IGlmIGhhc2F0dHIoc2VsZi5pdGVtLCAnb2JqJyk6Ci0gICAgICAgICAgICBkLnVwZGF0ZShzZWxm
Lml0ZW0ub2JqLl9fZ2xvYmFsc19fKQotICAgICAgICByZXR1cm4gZAotCi0gICAgZGVmIF9pc3Ry
dWUoc2VsZik6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3Jlc3VsdCcpOgotICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVzdWx0Ci0gICAgICAgIHNlbGYuX21hcmtzID0gc2VsZi5fZ2V0X21h
cmtzKCkKLQotICAgICAgICBpZiBzZWxmLl9tYXJrczoKLSAgICAgICAgICAgIHNlbGYucmVzdWx0
ID0gRmFsc2UKLSAgICAgICAgICAgIGZvciBtYXJrIGluIHNlbGYuX21hcmtzOgotICAgICAgICAg
ICAgICAgIHNlbGYuX21hcmsgPSBtYXJrCi0gICAgICAgICAgICAgICAgaWYgJ2NvbmRpdGlvbicg
aW4gbWFyay5rd2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAobWFyay5rd2FyZ3Nb
J2NvbmRpdGlvbiddLCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBhcmdzID0gbWFyay5hcmdzCi0KLSAgICAgICAgICAgICAgICBmb3IgZXhwciBpbiBhcmdzOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cHIgPSBleHByCi0gICAgICAgICAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXhwciwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBkID0gc2VsZi5fZ2V0Z2xvYmFscygpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBjYWNoZWRfZXZhbChzZWxmLml0ZW0uY29uZmlnLCBleHByLCBkKQotICAgICAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgInJlYXNvbiIgbm90
IGluIG1hcmsua3dhcmdzOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIGJldHRl
ciBiZSBjaGVja2VkIGF0IGNvbGxlY3Rpb24gdGltZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1zZyA9ICJ5b3UgbmVlZCB0byBzcGVjaWZ5IHJlYXNvbj1TVFJJTkcgIiBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gdXNpbmcgYm9vbGVhbnMgYXMgY29uZGl0
aW9ucy4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChtc2cpCi0gICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBib29sKGV4cHIpCi0gICAgICAgICAgICAgICAgICAgIGlm
IHJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFzb24gPSBtYXJrLmt3YXJncy5nZXQoJ3JlYXNv
bicsIE5vbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cHIgPSBleHByCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKLQotICAgICAgICAgICAgICAg
IGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5yZWFzb24gPSBtYXJrLmt3YXJncy5nZXQoJ3JlYXNvbics
IE5vbmUpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAotICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgIGRlZiBnZXQoc2VsZiwgYXR0ciwgZGVmYXVsdD1Ob25lKToKLSAg
ICAgICAgaWYgc2VsZi5fbWFyayBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQK
LSAgICAgICAgcmV0dXJuIHNlbGYuX21hcmsua3dhcmdzLmdldChhdHRyLCBkZWZhdWx0KQotCi0g
ICAgZGVmIGdldGV4cGxhbmF0aW9uKHNlbGYpOgotICAgICAgICBleHBsID0gZ2V0YXR0cihzZWxm
LCAncmVhc29uJywgTm9uZSkgb3Igc2VsZi5nZXQoJ3JlYXNvbicsIE5vbmUpCi0gICAgICAgIGlm
IG5vdCBleHBsOgotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2V4cHInKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gIiIKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICJjb25kaXRpb246ICIgKyBzdHIoc2VsZi5leHByKQotICAgICAgICByZXR1cm4g
ZXhwbAotCi0KLUBob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X3Nl
dHVwKGl0ZW0pOgotICAgICMgQ2hlY2sgaWYgc2tpcCBvciBza2lwaWYgYXJlIHNwZWNpZmllZCBh
cyBweXRlc3QgbWFya3MKLSAgICBpdGVtLl9za2lwcGVkX2J5X21hcmsgPSBGYWxzZQotICAgIHNr
aXBpZl9pbmZvID0gaXRlbS5rZXl3b3Jkcy5nZXQoJ3NraXBpZicpCi0gICAgaWYgaXNpbnN0YW5j
ZShza2lwaWZfaW5mbywgKE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yKSk6Ci0gICAgICAgIGV2YWxf
c2tpcGlmID0gTWFya0V2YWx1YXRvcihpdGVtLCAnc2tpcGlmJykKLSAgICAgICAgaWYgZXZhbF9z
a2lwaWYuaXN0cnVlKCk6Ci0gICAgICAgICAgICBpdGVtLl9za2lwcGVkX2J5X21hcmsgPSBUcnVl
Ci0gICAgICAgICAgICBza2lwKGV2YWxfc2tpcGlmLmdldGV4cGxhbmF0aW9uKCkpCi0KLSAgICBz
a2lwX2luZm8gPSBpdGVtLmtleXdvcmRzLmdldCgnc2tpcCcpCi0gICAgaWYgaXNpbnN0YW5jZShz
a2lwX2luZm8sIChNYXJrSW5mbywgTWFya0RlY29yYXRvcikpOgotICAgICAgICBpdGVtLl9za2lw
cGVkX2J5X21hcmsgPSBUcnVlCi0gICAgICAgIGlmICdyZWFzb24nIGluIHNraXBfaW5mby5rd2Fy
Z3M6Ci0gICAgICAgICAgICBza2lwKHNraXBfaW5mby5rd2FyZ3NbJ3JlYXNvbiddKQotICAgICAg
ICBlbGlmIHNraXBfaW5mby5hcmdzOgotICAgICAgICAgICAgc2tpcChza2lwX2luZm8uYXJnc1sw
XSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNraXAoInVuY29uZGl0aW9uYWwgc2tpcCIp
Ci0KLSAgICBpdGVtLl9ldmFseGZhaWwgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICd4ZmFpbCcpCi0g
ICAgY2hlY2tfeGZhaWxfbm9fcnVuKGl0ZW0pCi0KLQotQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRy
dWUpCi1kZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgotICAgIGNoZWNrX3hmYWls
X25vX3J1bihweWZ1bmNpdGVtKQotICAgIG91dGNvbWUgPSB5aWVsZAotICAgIHBhc3NlZCA9IG91
dGNvbWUuZXhjaW5mbyBpcyBOb25lCi0gICAgaWYgcGFzc2VkOgotICAgICAgICBjaGVja19zdHJp
Y3RfeGZhaWwocHlmdW5jaXRlbSkKLQotCi1kZWYgY2hlY2tfeGZhaWxfbm9fcnVuKGl0ZW0pOgot
ICAgICIiImNoZWNrIHhmYWlsKHJ1bj1GYWxzZSkiIiIKLSAgICBpZiBub3QgaXRlbS5jb25maWcu
b3B0aW9uLnJ1bnhmYWlsOgotICAgICAgICBldmFseGZhaWwgPSBpdGVtLl9ldmFseGZhaWwKLSAg
ICAgICAgaWYgZXZhbHhmYWlsLmlzdHJ1ZSgpOgotICAgICAgICAgICAgaWYgbm90IGV2YWx4ZmFp
bC5nZXQoJ3J1bicsIFRydWUpOgotICAgICAgICAgICAgICAgIHhmYWlsKCJbTk9UUlVOXSAiICsg
ZXZhbHhmYWlsLmdldGV4cGxhbmF0aW9uKCkpCi0KLQotZGVmIGNoZWNrX3N0cmljdF94ZmFpbChw
eWZ1bmNpdGVtKToKLSAgICAiIiJjaGVjayB4ZmFpbChzdHJpY3Q9VHJ1ZSkgZm9yIHRoZSBnaXZl
biBQQVNTSU5HIHRlc3QiIiIKLSAgICBldmFseGZhaWwgPSBweWZ1bmNpdGVtLl9ldmFseGZhaWwK
LSAgICBpZiBldmFseGZhaWwuaXN0cnVlKCk6Ci0gICAgICAgIHN0cmljdF9kZWZhdWx0ID0gcHlm
dW5jaXRlbS5jb25maWcuZ2V0aW5pKCd4ZmFpbF9zdHJpY3QnKQotICAgICAgICBpc19zdHJpY3Rf
eGZhaWwgPSBldmFseGZhaWwuZ2V0KCdzdHJpY3QnLCBzdHJpY3RfZGVmYXVsdCkKLSAgICAgICAg
aWYgaXNfc3RyaWN0X3hmYWlsOgotICAgICAgICAgICAgZGVsIHB5ZnVuY2l0ZW0uX2V2YWx4ZmFp
bAotICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24oKQot
ICAgICAgICAgICAgZmFpbCgnW1hQQVNTKHN0cmljdCldICcgKyBleHBsYW5hdGlvbiwgcHl0cmFj
ZT1GYWxzZSkKLQotCi1AaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfcnVu
dGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgIG91dGNvbWUgPSB5aWVsZAotICAgIHJl
cCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgZXZhbHhmYWlsID0gZ2V0YXR0cihpdGVtLCAn
X2V2YWx4ZmFpbCcsIE5vbmUpCi0gICAgIyB1bml0dHRlc3Qgc3BlY2lhbCBjYXNlLCBzZWUgc2V0
dGluZyBvZiBfdW5leHBlY3RlZHN1Y2Nlc3MKLSAgICBpZiBoYXNhdHRyKGl0ZW0sICdfdW5leHBl
Y3RlZHN1Y2Nlc3MnKSBhbmQgcmVwLndoZW4gPT0gImNhbGwiOgotICAgICAgICBmcm9tIF9weXRl
c3QuY29tcGF0IGltcG9ydCBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFpbHVy
ZQotICAgICAgICBpZiBpdGVtLl91bmV4cGVjdGVkc3VjY2VzczoKLSAgICAgICAgICAgIHJlcC5s
b25ncmVwciA9ICJVbmV4cGVjdGVkIHN1Y2Nlc3M6IHswfSIuZm9ybWF0KGl0ZW0uX3VuZXhwZWN0
ZWRzdWNjZXNzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVwLmxvbmdyZXByID0gIlVu
ZXhwZWN0ZWQgc3VjY2VzcyIKLSAgICAgICAgaWYgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0ZWRfc3Vj
Y2Vzc19hX2ZhaWx1cmUoKToKLSAgICAgICAgICAgIHJlcC5vdXRjb21lID0gImZhaWxlZCIKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcC5vdXRjb21lID0gInBhc3NlZCIKLSAgICAgICAg
ICAgIHJlcC53YXN4ZmFpbCA9IHJlcC5sb25ncmVwcgotICAgIGVsaWYgaXRlbS5jb25maWcub3B0
aW9uLnJ1bnhmYWlsOgotICAgICAgICBwYXNzICAgIyBkb24ndCBpbnRlcmVmZXJlCi0gICAgZWxp
ZiBjYWxsLmV4Y2luZm8gYW5kIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKHhmYWlsLkV4Y2Vw
dGlvbik6Ci0gICAgICAgIHJlcC53YXN4ZmFpbCA9ICJyZWFzb246ICIgKyBjYWxsLmV4Y2luZm8u
dmFsdWUubXNnCi0gICAgICAgIHJlcC5vdXRjb21lID0gInNraXBwZWQiCi0gICAgZWxpZiBldmFs
eGZhaWwgYW5kIG5vdCByZXAuc2tpcHBlZCBhbmQgZXZhbHhmYWlsLndhc3ZhbGlkKCkgYW5kIFwK
LSAgICAgICAgICAgIGV2YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAgaWYgY2FsbC5leGNpbmZv
OgotICAgICAgICAgICAgaWYgZXZhbHhmYWlsLmludmFsaWRyYWlzZShjYWxsLmV4Y2luZm8udmFs
dWUpOgotICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0gImZhaWxlZCIKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAic2tpcHBlZCIKLSAgICAgICAg
ICAgICAgICByZXAud2FzeGZhaWwgPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24oKQotICAgICAg
ICBlbGlmIGNhbGwud2hlbiA9PSAiY2FsbCI6Ci0gICAgICAgICAgICBzdHJpY3RfZGVmYXVsdCA9
IGl0ZW0uY29uZmlnLmdldGluaSgneGZhaWxfc3RyaWN0JykKLSAgICAgICAgICAgIGlzX3N0cmlj
dF94ZmFpbCA9IGV2YWx4ZmFpbC5nZXQoJ3N0cmljdCcsIHN0cmljdF9kZWZhdWx0KQotICAgICAg
ICAgICAgZXhwbGFuYXRpb24gPSBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24oKQotICAgICAgICAg
ICAgaWYgaXNfc3RyaWN0X3hmYWlsOgotICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0gImZh
aWxlZCIKLSAgICAgICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiW1hQQVNTKHN0cmljdCldIHsw
fSIuZm9ybWF0KGV4cGxhbmF0aW9uKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByZXAub3V0Y29tZSA9ICJwYXNzZWQiCi0gICAgICAgICAgICAgICAgcmVwLndhc3hmYWlsID0g
ZXhwbGFuYXRpb24KLSAgICBlbGlmIGl0ZW0uX3NraXBwZWRfYnlfbWFyayBhbmQgcmVwLnNraXBw
ZWQgYW5kIHR5cGUocmVwLmxvbmdyZXByKSBpcyB0dXBsZToKLSAgICAgICAgIyBza2lwcGVkIGJ5
IG1hcmsuc2tpcGlmOyBjaGFuZ2UgdGhlIGxvY2F0aW9uIG9mIHRoZSBmYWlsdXJlCi0gICAgICAg
ICMgdG8gcG9pbnQgdG8gdGhlIGl0ZW0gZGVmaW5pdGlvbiwgb3RoZXJ3aXNlIGl0IHdpbGwgZGlz
cGxheQotICAgICAgICAjIHRoZSBsb2NhdGlvbiBvZiB3aGVyZSB0aGUgc2tpcCBleGNlcHRpb24g
d2FzIHJhaXNlZCB3aXRoaW4gcHl0ZXN0Ci0gICAgICAgIGZpbGVuYW1lLCBsaW5lLCByZWFzb24g
PSByZXAubG9uZ3JlcHIKLSAgICAgICAgZmlsZW5hbWUsIGxpbmUgPSBpdGVtLmxvY2F0aW9uWzoy
XQotICAgICAgICByZXAubG9uZ3JlcHIgPSBmaWxlbmFtZSwgbGluZSwgcmVhc29uCi0KLSMgY2Fs
bGVkIGJ5IHRlcm1pbmFscmVwb3J0ZXIgcHJvZ3Jlc3MgcmVwb3J0aW5nCi0KLQotZGVmIHB5dGVz
dF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgotICAgIGlmIGhhc2F0dHIocmVwb3J0LCAid2Fz
eGZhaWwiKToKLSAgICAgICAgaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
InhmYWlsZWQiLCAieCIsICJ4ZmFpbCIKLSAgICAgICAgZWxpZiByZXBvcnQucGFzc2VkOgotICAg
ICAgICAgICAgcmV0dXJuICJ4cGFzc2VkIiwgIlgiLCAoIlhQQVNTIiwgeyd5ZWxsb3cnOiBUcnVl
fSkKLQotIyBjYWxsZWQgYnkgdGhlIHRlcm1pbmFscmVwb3J0ZXIgaW5zdGFuY2UvcGx1Z2luCi0K
LQotZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgotICAgIHRy
ID0gdGVybWluYWxyZXBvcnRlcgotICAgIGlmIG5vdCB0ci5yZXBvcnRjaGFyczoKLSAgICAgICAg
IyBmb3IgbmFtZSBpbiAieGZhaWxlZCBza2lwcGVkIGZhaWxlZCB4cGFzc2VkIjoKLSAgICAgICAg
IyAgICBpZiBub3QgdHIuc3RhdHMuZ2V0KG5hbWUsIDApOgotICAgICAgICAjICAgICAgICB0ci53
cml0ZV9saW5lKCJISU5UOiB1c2UgJy1yJyBvcHRpb24gdG8gc2VlIGV4dHJhICIKLSAgICAgICAg
IyAgICAgICAgICAgICAgInN1bW1hcnkgaW5mbyBhYm91dCB0ZXN0cyIpCi0gICAgICAgICMgICAg
ICAgIGJyZWFrCi0gICAgICAgIHJldHVybgotCi0gICAgbGluZXMgPSBbXQotICAgIGZvciBjaGFy
IGluIHRyLnJlcG9ydGNoYXJzOgotICAgICAgICBpZiBjaGFyID09ICJ4IjoKLSAgICAgICAgICAg
IHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcykKLSAgICAgICAgZWxpZiBjaGFy
ID09ICJYIjoKLSAgICAgICAgICAgIHNob3dfeHBhc3NlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5l
cykKLSAgICAgICAgZWxpZiBjaGFyIGluICJmRiI6Ci0gICAgICAgICAgICBzaG93X3NpbXBsZSh0
ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ2ZhaWxlZCcsICJGQUlMICVzIikKLSAgICAgICAgZWxp
ZiBjaGFyIGluICJzUyI6Ci0gICAgICAgICAgICBzaG93X3NraXBwZWQodGVybWluYWxyZXBvcnRl
ciwgbGluZXMpCi0gICAgICAgIGVsaWYgY2hhciA9PSAiRSI6Ci0gICAgICAgICAgICBzaG93X3Np
bXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ2Vycm9yJywgIkVSUk9SICVzIikKLSAgICAg
ICAgZWxpZiBjaGFyID09ICdwJzoKLSAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1pbmFscmVw
b3J0ZXIsIGxpbmVzLCAncGFzc2VkJywgIlBBU1NFRCAlcyIpCi0KLSAgICBpZiBsaW5lczoKLSAg
ICAgICAgdHIuX3R3LnNlcCgiPSIsICJzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyIpCi0gICAgICAg
IGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgdHIuX3R3LmxpbmUobGluZSkKLQotCi1k
ZWYgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsIHN0YXQsIGZvcm1hdCk6Ci0g
ICAgZmFpbGVkID0gdGVybWluYWxyZXBvcnRlci5zdGF0cy5nZXQoc3RhdCkKLSAgICBpZiBmYWls
ZWQ6Ci0gICAgICAgIGZvciByZXAgaW4gZmFpbGVkOgotICAgICAgICAgICAgcG9zID0gdGVybWlu
YWxyZXBvcnRlci5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9kZWlkKQotICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKGZvcm1hdCAlIChwb3MsKSkKLQotCi1kZWYgc2hvd194ZmFpbGVk
KHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKToKLSAgICB4ZmFpbGVkID0gdGVybWluYWxyZXBvcnRl
ci5zdGF0cy5nZXQoInhmYWlsZWQiKQotICAgIGlmIHhmYWlsZWQ6Ci0gICAgICAgIGZvciByZXAg
aW4geGZhaWxlZDoKLSAgICAgICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3
ZF9yZWxhdGl2ZV9ub2RlaWQocmVwLm5vZGVpZCkKLSAgICAgICAgICAgIHJlYXNvbiA9IHJlcC53
YXN4ZmFpbAotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJYRkFJTCAlcyIgJSAocG9zLCkpCi0g
ICAgICAgICAgICBpZiByZWFzb246Ci0gICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICIg
KyBzdHIocmVhc29uKSkKLQotCi1kZWYgc2hvd194cGFzc2VkKHRlcm1pbmFscmVwb3J0ZXIsIGxp
bmVzKToKLSAgICB4cGFzc2VkID0gdGVybWluYWxyZXBvcnRlci5zdGF0cy5nZXQoInhwYXNzZWQi
KQotICAgIGlmIHhwYXNzZWQ6Ci0gICAgICAgIGZvciByZXAgaW4geHBhc3NlZDoKLSAgICAgICAg
ICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9ub2RlaWQocmVw
Lm5vZGVpZCkKLSAgICAgICAgICAgIHJlYXNvbiA9IHJlcC53YXN4ZmFpbAotICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCJYUEFTUyAlcyAlcyIgJSAocG9zLCByZWFzb24pKQotCi0KLWRlZiBjYWNo
ZWRfZXZhbChjb25maWcsIGV4cHIsIGQpOgotICAgIGlmIG5vdCBoYXNhdHRyKGNvbmZpZywgJ19l
dmFsY2FjaGUnKToKLSAgICAgICAgY29uZmlnLl9ldmFsY2FjaGUgPSB7fQotICAgIHRyeToKLSAg
ICAgICAgcmV0dXJuIGNvbmZpZy5fZXZhbGNhY2hlW2V4cHJdCi0gICAgZXhjZXB0IEtleUVycm9y
OgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgICAgICBleHByY29kZSA9IF9weXRl
c3QuX2NvZGUuY29tcGlsZShleHByLCBtb2RlPSJldmFsIikKLSAgICAgICAgY29uZmlnLl9ldmFs
Y2FjaGVbZXhwcl0gPSB4ID0gZXZhbChleHByY29kZSwgZCkKLSAgICAgICAgcmV0dXJuIHgKLQot
Ci1kZWYgZm9sZGVkX3NraXBzKHNraXBwZWQpOgotICAgIGQgPSB7fQotICAgIGZvciBldmVudCBp
biBza2lwcGVkOgotICAgICAgICBrZXkgPSBldmVudC5sb25ncmVwcgotICAgICAgICBhc3NlcnQg
bGVuKGtleSkgPT0gMywgKGV2ZW50LCBrZXkpCi0gICAgICAgIGtleXdvcmRzID0gZ2V0YXR0cihl
dmVudCwgJ2tleXdvcmRzJywge30pCi0gICAgICAgICMgZm9sZGluZyByZXBvcnRzIHdpdGggZ2xv
YmFsIHB5dGVzdG1hcmsgdmFyaWFibGUKLSAgICAgICAgIyB0aGlzIGlzIHdvcmthcm91bmQsIGJl
Y2F1c2UgZm9yIG5vdyB3ZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHNjb3BlIG9mIGEgc2tpcCBtYXJr
ZXIKLSAgICAgICAgIyBUT0RPOiByZXZpc2l0IGFmdGVyIG1hcmtzIHNjb3BlIHdvdWxkIGJlIGZp
eGVkCi0gICAgICAgIHdoZW4gPSBnZXRhdHRyKGV2ZW50LCAnd2hlbicsIE5vbmUpCi0gICAgICAg
IGlmIHdoZW4gPT0gJ3NldHVwJyBhbmQgJ3NraXAnIGluIGtleXdvcmRzIGFuZCAncHl0ZXN0bWFy
aycgbm90IGluIGtleXdvcmRzOgotICAgICAgICAgICAga2V5ID0gKGtleVswXSwgTm9uZSwga2V5
WzJdLCApCi0gICAgICAgIGQuc2V0ZGVmYXVsdChrZXksIFtdKS5hcHBlbmQoZXZlbnQpCi0gICAg
dmFsdWVzID0gW10KLSAgICBmb3Iga2V5LCBldmVudHMgaW4gZC5pdGVtcygpOgotICAgICAgICB2
YWx1ZXMuYXBwZW5kKChsZW4oZXZlbnRzKSwpICsga2V5KQotICAgIHJldHVybiB2YWx1ZXMKLQot
Ci1kZWYgc2hvd19za2lwcGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKToKLSAgICB0ciA9IHRl
cm1pbmFscmVwb3J0ZXIKLSAgICBza2lwcGVkID0gdHIuc3RhdHMuZ2V0KCdza2lwcGVkJywgW10p
Ci0gICAgaWYgc2tpcHBlZDoKLSAgICAgICAgIyBpZiBub3QgdHIuaGFzb3B0KCdza2lwcGVkJyk6
Ci0gICAgICAgICMgICAgdHIud3JpdGVfbGluZSgKLSAgICAgICAgIyAgICAgICAgIiVkIHNraXBw
ZWQgdGVzdHMsIHNwZWNpZnkgLXJzIGZvciBtb3JlIGluZm8iICUKLSAgICAgICAgIyAgICAgICAg
bGVuKHNraXBwZWQpKQotICAgICAgICAjICAgIHJldHVybgotICAgICAgICBmc2tpcHMgPSBmb2xk
ZWRfc2tpcHMoc2tpcHBlZCkKLSAgICAgICAgaWYgZnNraXBzOgotICAgICAgICAgICAgIyB0ci53
cml0ZV9zZXAoIl8iLCAic2tpcHBlZCB0ZXN0IHN1bW1hcnkiKQotICAgICAgICAgICAgZm9yIG51
bSwgZnNwYXRoLCBsaW5lbm8sIHJlYXNvbiBpbiBmc2tpcHM6Ci0gICAgICAgICAgICAgICAgaWYg
cmVhc29uLnN0YXJ0c3dpdGgoIlNraXBwZWQ6ICIpOgotICAgICAgICAgICAgICAgICAgICByZWFz
b24gPSByZWFzb25bOTpdCi0gICAgICAgICAgICAgICAgaWYgbGluZW5vIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAiU0tJUCBbJWRdICVzOiVkOiAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKG51bSwg
ZnNwYXRoLCBsaW5lbm8gKyAxLCByZWFzb24pKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICJT
S0lQIFslZF0gJXM6ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAobnVtLCBmc3BhdGgs
IHJlYXNvbikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Rlcm1pbmFsLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC90ZXJtaW5hbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWFiYTVlODQ1ZTUxOTBhZjQ2YmRmNDRhMDM1MmY5Y2Q0MDc2OWI2MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3Rlcm1pbmFsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzAzICswLDAgQEAKLSIiIiB0ZXJtaW5h
bCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgotCi1UaGlzIGlzIGEgZ29v
ZCBzb3VyY2UgZm9yIGxvb2tpbmcgYXQgdGhlIHZhcmlvdXMgcmVwb3J0aW5nIGhvb2tzLgotIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi0KLWltcG9ydCBpdGVydG9vbHMKLWltcG9ydCBwbGF0Zm9ybQotaW1wb3J0IHN5
cwotaW1wb3J0IHRpbWUKLQotaW1wb3J0IHBsdWdneQotaW1wb3J0IHB5Ci1pbXBvcnQgc2l4Ci0K
LWltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKLWZyb20gX3B5dGVzdC5t
YWluIGltcG9ydCBFWElUX09LLCBFWElUX1RFU1RTRkFJTEVELCBFWElUX0lOVEVSUlVQVEVELCBc
Ci0gICAgRVhJVF9VU0FHRUVSUk9SLCBFWElUX05PVEVTVFNDT0xMRUNURUQKLQotCi1kZWYgcHl0
ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJt
aW5hbCByZXBvcnRpbmciLCAicmVwb3J0aW5nIiwgYWZ0ZXI9ImdlbmVyYWwiKQotICAgIGdyb3Vw
Ll9hZGRvcHRpb24oJy12JywgJy0tdmVyYm9zZScsIGFjdGlvbj0iY291bnQiLAotICAgICAgICAg
ICAgICAgICAgICAgZGVzdD0idmVyYm9zZSIsIGRlZmF1bHQ9MCwgaGVscD0iaW5jcmVhc2UgdmVy
Ym9zaXR5LiIpLAotICAgIGdyb3VwLl9hZGRvcHRpb24oJy1xJywgJy0tcXVpZXQnLCBhY3Rpb249
ImNvdW50IiwKLSAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InF1aWV0IiwgZGVmYXVsdD0wLCBo
ZWxwPSJkZWNyZWFzZSB2ZXJib3NpdHkuIiksCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLXInLAot
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9InJlcG9ydGNoYXJzIiwg
ZGVmYXVsdD0nJywgbWV0YXZhcj0iY2hhcnMiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0i
c2hvdyBleHRyYSB0ZXN0IHN1bW1hcnkgaW5mbyBhcyBzcGVjaWZpZWQgYnkgY2hhcnMgKGYpYWls
ZWQsICIKLSAgICAgICAgICAgICAgICAgICAgICIoRSllcnJvciwgKHMpc2tpcHBlZCwgKHgpZmFp
bGVkLCAoWClwYXNzZWQsICIKLSAgICAgICAgICAgICAgICAgICAgICIocClwYXNzZWQsIChQKXBh
c3NlZCB3aXRoIG91dHB1dCwgKGEpYWxsIGV4Y2VwdCBwUC4gIgotICAgICAgICAgICAgICAgICAg
ICAgIldhcm5pbmdzIGFyZSBkaXNwbGF5ZWQgYXQgYWxsIHRpbWVzIGV4Y2VwdCB3aGVuICIKLSAg
ICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtd2FybmluZ3MgaXMgc2V0IikKLSAgICBncm91
cC5fYWRkb3B0aW9uKCctLWRpc2FibGUtd2FybmluZ3MnLCAnLS1kaXNhYmxlLXB5dGVzdC13YXJu
aW5ncycsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBkZXN0PSdkaXNhYmxl
X3dhcm5pbmdzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J2Rpc2FibGUgd2FybmluZ3Mgc3VtbWFyeScpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLWwn
LCAnLS1zaG93bG9jYWxzJywKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9InNob3dsb2NhbHMiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgaGVscD0ic2hvdyBsb2NhbHMgaW4gdHJhY2ViYWNrcyAoZGlzYWJsZWQgYnkgZGVmYXVsdCku
IikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctLXRiJywgbWV0YXZhcj0ic3R5bGUiLAotICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9InRic3R5bGUiLCBkZWZhdWx0PSdh
dXRvJywKLSAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydhdXRvJywgJ2xvbmcnLCAnc2hv
cnQnLCAnbm8nLCAnbGluZScsICduYXRpdmUnXSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9
InRyYWNlYmFjayBwcmludCBtb2RlIChhdXRvL2xvbmcvc2hvcnQvbGluZS9uYXRpdmUvbm8pLiIp
Ci0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1mdWxsdHJhY2UnLCAnLS1mdWxsLXRyYWNlJywKLSAg
ICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJkb24ndCBjdXQgYW55IHRyYWNlYmFja3MgKGRlZmF1
bHQgaXMgdG8gY3V0KS4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy0tY29sb3InLCBtZXRhdmFy
PSJjb2xvciIsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0iY29s
b3IiLCBkZWZhdWx0PSdhdXRvJywKLSAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9Wyd5ZXMn
LCAnbm8nLCAnYXV0byddLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iY29sb3IgdGVybWlu
YWwgb3V0cHV0ICh5ZXMvbm8vYXV0bykuIikKLQotICAgIHBhcnNlci5hZGRpbmkoImNvbnNvbGVf
b3V0cHV0X3N0eWxlIiwKLSAgICAgICAgICAgICAgICAgIGhlbHA9ImNvbnNvbGUgb3V0cHV0OiBj
bGFzc2ljIG9yIHdpdGggYWRkaXRpb25hbCBwcm9ncmVzcyBpbmZvcm1hdGlvbiAoY2xhc3NpY3xw
cm9ncmVzcykuIiwKLSAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9J3Byb2dyZXNzJykKLQotCi1k
ZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGNvbmZpZy5vcHRpb24udmVyYm9zZSAt
PSBjb25maWcub3B0aW9uLnF1aWV0Ci0gICAgcmVwb3J0ZXIgPSBUZXJtaW5hbFJlcG9ydGVyKGNv
bmZpZywgc3lzLnN0ZG91dCkKLSAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihyZXBv
cnRlciwgJ3Rlcm1pbmFscmVwb3J0ZXInKQotICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWcgb3Ig
Y29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKLSAgICAgICAgZGVmIG15d3JpdGVyKHRhZ3MsIGFy
Z3MpOgotICAgICAgICAgICAgbXNnID0gIiAiLmpvaW4obWFwKHN0ciwgYXJncykpCi0gICAgICAg
ICAgICByZXBvcnRlci53cml0ZV9saW5lKCJbdHJhY2Vjb25maWddICIgKyBtc2cpCi0gICAgICAg
IGNvbmZpZy50cmFjZS5yb290LnNldHByb2Nlc3NvcigicHl0ZXN0OmNvbmZpZyIsIG15d3JpdGVy
KQotCi0KLWRlZiBnZXRyZXBvcnRvcHQoY29uZmlnKToKLSAgICByZXBvcnRvcHRzID0gIiIKLSAg
ICByZXBvcnRjaGFycyA9IGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMKLSAgICBpZiBub3QgY29u
ZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdzIGFuZCAndycgbm90IGluIHJlcG9ydGNoYXJzOgot
ICAgICAgICByZXBvcnRjaGFycyArPSAndycKLSAgICBlbGlmIGNvbmZpZy5vcHRpb24uZGlzYWJs
ZV93YXJuaW5ncyBhbmQgJ3cnIGluIHJlcG9ydGNoYXJzOgotICAgICAgICByZXBvcnRjaGFycyA9
IHJlcG9ydGNoYXJzLnJlcGxhY2UoJ3cnLCAnJykKLSAgICBpZiByZXBvcnRjaGFyczoKLSAgICAg
ICAgZm9yIGNoYXIgaW4gcmVwb3J0Y2hhcnM6Ci0gICAgICAgICAgICBpZiBjaGFyIG5vdCBpbiBy
ZXBvcnRvcHRzIGFuZCBjaGFyICE9ICdhJzoKLSAgICAgICAgICAgICAgICByZXBvcnRvcHRzICs9
IGNoYXIKLSAgICAgICAgICAgIGVsaWYgY2hhciA9PSAnYSc6Ci0gICAgICAgICAgICAgICAgcmVw
b3J0b3B0cyA9ICdmRXN4WHcnCi0gICAgcmV0dXJuIHJlcG9ydG9wdHMKLQotCi1kZWYgcHl0ZXN0
X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydCk6Ci0gICAgaWYgcmVwb3J0LnBhc3NlZDoKLSAgICAg
ICAgbGV0dGVyID0gIi4iCi0gICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgbGV0dGVy
ID0gInMiCi0gICAgZWxpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICBsZXR0ZXIgPSAiRiIKLSAg
ICAgICAgaWYgcmVwb3J0LndoZW4gIT0gImNhbGwiOgotICAgICAgICAgICAgbGV0dGVyID0gImYi
Ci0gICAgcmV0dXJuIHJlcG9ydC5vdXRjb21lLCBsZXR0ZXIsIHJlcG9ydC5vdXRjb21lLnVwcGVy
KCkKLQotCi1jbGFzcyBXYXJuaW5nUmVwb3J0OgotICAgICIiIgotICAgIFNpbXBsZSBzdHJ1Y3R1
cmUgdG8gaG9sZCB3YXJuaW5ncyBpbmZvcm1hdGlvbiBjYXB0dXJlZCBieSBgYHB5dGVzdF9sb2d3
YXJuaW5nYGAuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29kZSwgbWVzc2Fn
ZSwgbm9kZWlkPU5vbmUsIGZzbG9jYXRpb249Tm9uZSk6Ci0gICAgICAgICIiIgotICAgICAgICA6
cGFyYW0gY29kZTogdW51c2VkCi0gICAgICAgIDpwYXJhbSBzdHIgbWVzc2FnZTogdXNlciBmcmll
bmRseSBtZXNzYWdlIGFib3V0IHRoZSB3YXJuaW5nCi0gICAgICAgIDpwYXJhbSBzdHJ8Tm9uZSBu
b2RlaWQ6IG5vZGUgaWQgdGhhdCBnZW5lcmF0ZWQgdGhlIHdhcm5pbmcgKHNlZSBgYGdldF9sb2Nh
dGlvbmBgKS4KLSAgICAgICAgOnBhcmFtIHR1cGxlfHB5LnBhdGgubG9jYWwgZnNsb2NhdGlvbjoK
LSAgICAgICAgICAgIGZpbGUgc3lzdGVtIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2Ugb2YgdGhlIHdh
cm5pbmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYu
Y29kZSA9IGNvZGUKLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotICAgICAgICBzZWxm
Lm5vZGVpZCA9IG5vZGVpZAotICAgICAgICBzZWxmLmZzbG9jYXRpb24gPSBmc2xvY2F0aW9uCi0K
LSAgICBkZWYgZ2V0X2xvY2F0aW9uKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgICIiIgotICAgICAg
ICBSZXR1cm5zIHRoZSBtb3JlIHVzZXItZnJpZW5kbHkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxv
Y2F0aW9uCi0gICAgICAgIG9mIGEgd2FybmluZywgb3IgTm9uZS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGlmIHNlbGYubm9kZWlkOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubm9kZWlkCi0gICAg
ICAgIGlmIHNlbGYuZnNsb2NhdGlvbjoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5m
c2xvY2F0aW9uLCB0dXBsZSkgYW5kIGxlbihzZWxmLmZzbG9jYXRpb24pID49IDI6Ci0gICAgICAg
ICAgICAgICAgZmlsZW5hbWUsIGxpbmVudW0gPSBzZWxmLmZzbG9jYXRpb25bOjJdCi0gICAgICAg
ICAgICAgICAgcmVscGF0aCA9IHB5LnBhdGgubG9jYWwoZmlsZW5hbWUpLnJlbHRvKGNvbmZpZy5p
bnZvY2F0aW9uX2RpcikKLSAgICAgICAgICAgICAgICByZXR1cm4gJyVzOiVzJyAlIChyZWxwYXRo
LCBsaW5lbnVtKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gc3Ry
KHNlbGYuZnNsb2NhdGlvbikKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi1jbGFzcyBUZXJtaW5h
bFJlcG9ydGVyOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIGZpbGU9Tm9uZSk6Ci0g
ICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZwotICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlCi0g
ICAgICAgIHNlbGYuc2hvd2hlYWRlciA9IHNlbGYudmVyYm9zaXR5ID49IDAKLSAgICAgICAgc2Vs
Zi5zaG93ZnNwYXRoID0gc2VsZi52ZXJib3NpdHkgPj0gMAotICAgICAgICBzZWxmLnNob3dsb25n
dGVzdGluZm8gPSBzZWxmLnZlcmJvc2l0eSA+IDAKLSAgICAgICAgc2VsZi5fbnVtY29sbGVjdGVk
ID0gMAotICAgICAgICBzZWxmLl9zZXNzaW9uID0gTm9uZQotCi0gICAgICAgIHNlbGYuc3RhdHMg
PSB7fQotICAgICAgICBzZWxmLnN0YXJ0ZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAgICAgIGlm
IGZpbGUgaXMgTm9uZToKLSAgICAgICAgICAgIGZpbGUgPSBzeXMuc3Rkb3V0Ci0gICAgICAgIHNl
bGYuX3R3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcsIGZp
bGUpCi0gICAgICAgICMgc2VsZi53cml0ZXIgd2lsbCBiZSBkZXByZWNhdGVkIGluIHB5dGVzdC0z
LjQKLSAgICAgICAgc2VsZi53cml0ZXIgPSBzZWxmLl90dwotICAgICAgICBzZWxmLl9zY3JlZW5f
d2lkdGggPSBzZWxmLl90dy5mdWxsd2lkdGgKLSAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0g
Tm9uZQotICAgICAgICBzZWxmLnJlcG9ydGNoYXJzID0gZ2V0cmVwb3J0b3B0KGNvbmZpZykKLSAg
ICAgICAgc2VsZi5oYXNtYXJrdXAgPSBzZWxmLl90dy5oYXNtYXJrdXAKLSAgICAgICAgc2VsZi5p
c2F0dHkgPSBmaWxlLmlzYXR0eSgpCi0gICAgICAgIHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9y
dGVkID0gMAotICAgICAgICBzZWxmLl9zaG93X3Byb2dyZXNzX2luZm8gPSBzZWxmLmNvbmZpZy5n
ZXRpbmkoJ2NvbnNvbGVfb3V0cHV0X3N0eWxlJykgPT0gJ3Byb2dyZXNzJwotCi0gICAgZGVmIGhh
c29wdChzZWxmLCBjaGFyKToKLSAgICAgICAgY2hhciA9IHsneGZhaWxlZCc6ICd4JywgJ3NraXBw
ZWQnOiAncyd9LmdldChjaGFyLCBjaGFyKQotICAgICAgICByZXR1cm4gY2hhciBpbiBzZWxmLnJl
cG9ydGNoYXJzCi0KLSAgICBkZWYgd3JpdGVfZnNwYXRoX3Jlc3VsdChzZWxmLCBub2RlaWQsIHJl
cyk6Ci0gICAgICAgIGZzcGF0aCA9IHNlbGYuY29uZmlnLnJvb3RkaXIuam9pbihub2RlaWQuc3Bs
aXQoIjo6IilbMF0pCi0gICAgICAgIGlmIGZzcGF0aCAhPSBzZWxmLmN1cnJlbnRmc3BhdGg6Ci0g
ICAgICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgpCi0g
ICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBmc3BhdGgKLSAgICAgICAgICAgIGZzcGF0
aCA9IHNlbGYuc3RhcnRkaXIuYmVzdHJlbHBhdGgoZnNwYXRoKQotICAgICAgICAgICAgc2VsZi5f
dHcubGluZSgpCi0gICAgICAgICAgICBzZWxmLl90dy53cml0ZShmc3BhdGggKyAiICIpCi0gICAg
ICAgIHNlbGYuX3R3LndyaXRlKHJlcykKLQotICAgIGRlZiB3cml0ZV9lbnN1cmVfcHJlZml4KHNl
bGYsIHByZWZpeCwgZXh0cmE9IiIsICoqa3dhcmdzKToKLSAgICAgICAgaWYgc2VsZi5jdXJyZW50
ZnNwYXRoICE9IHByZWZpeDoKLSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoKQotICAgICAgICAg
ICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gcHJlZml4Ci0gICAgICAgICAgICBzZWxmLl90dy53cml0
ZShwcmVmaXgpCi0gICAgICAgIGlmIGV4dHJhOgotICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUo
ZXh0cmEsICoqa3dhcmdzKQotICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gLTIKLSAg
ICAgICAgICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2luZm9ybWF0aW9uX2ZpbGxpbmdfc3BhY2Uo
KQotCi0gICAgZGVmIGVuc3VyZV9uZXdsaW5lKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmN1cnJl
bnRmc3BhdGg6Ci0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCkKLSAgICAgICAgICAgIHNlbGYu
Y3VycmVudGZzcGF0aCA9IE5vbmUKLQotICAgIGRlZiB3cml0ZShzZWxmLCBjb250ZW50LCAqKm1h
cmt1cCk6Ci0gICAgICAgIHNlbGYuX3R3LndyaXRlKGNvbnRlbnQsICoqbWFya3VwKQotCi0gICAg
ZGVmIHdyaXRlX2xpbmUoc2VsZiwgbGluZSwgKiptYXJrdXApOgotICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShsaW5lLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgICAgIGxpbmUgPSBzaXgudGV4
dF90eXBlKGxpbmUsIGVycm9ycz0icmVwbGFjZSIpCi0gICAgICAgIHNlbGYuZW5zdXJlX25ld2xp
bmUoKQotICAgICAgICBzZWxmLl90dy5saW5lKGxpbmUsICoqbWFya3VwKQotCi0gICAgZGVmIHJl
d3JpdGUoc2VsZiwgbGluZSwgKiptYXJrdXApOgotICAgICAgICAiIiIKLSAgICAgICAgUmV3aW5k
cyB0aGUgdGVybWluYWwgY3Vyc29yIHRvIHRoZSBiZWdpbm5pbmcgYW5kIHdyaXRlcyB0aGUgZ2l2
ZW4gbGluZS4KLQotICAgICAgICA6a3dhcmcgZXJhc2U6IGlmIFRydWUsIHdpbGwgYWxzbyBhZGQg
c3BhY2VzIHVudGlsIHRoZSBmdWxsIHRlcm1pbmFsIHdpZHRoIHRvIGVuc3VyZQotICAgICAgICAg
ICAgcHJldmlvdXMgbGluZXMgYXJlIHByb3Blcmx5IGVyYXNlZC4KLQotICAgICAgICBUaGUgcmVz
dCBvZiB0aGUga2V5d29yZCBhcmd1bWVudHMgYXJlIG1hcmt1cCBpbnN0cnVjdGlvbnMuCi0gICAg
ICAgICIiIgotICAgICAgICBlcmFzZSA9IG1hcmt1cC5wb3AoJ2VyYXNlJywgRmFsc2UpCi0gICAg
ICAgIGlmIGVyYXNlOgotICAgICAgICAgICAgZmlsbF9jb3VudCA9IHNlbGYuX3R3LmZ1bGx3aWR0
aCAtIGxlbihsaW5lKSAtIDEKLSAgICAgICAgICAgIGZpbGwgPSAnICcgKiBmaWxsX2NvdW50Ci0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWxsID0gJycKLSAgICAgICAgbGluZSA9IHN0cihs
aW5lKQotICAgICAgICBzZWxmLl90dy53cml0ZSgiXHIiICsgbGluZSArIGZpbGwsICoqbWFya3Vw
KQotCi0gICAgZGVmIHdyaXRlX3NlcChzZWxmLCBzZXAsIHRpdGxlPU5vbmUsICoqbWFya3VwKToK
LSAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCi0gICAgICAgIHNlbGYuX3R3LnNlcChzZXAs
IHRpdGxlLCAqKm1hcmt1cCkKLQotICAgIGRlZiBzZWN0aW9uKHNlbGYsIHRpdGxlLCBzZXA9Ij0i
LCAqKmt3KToKLSAgICAgICAgc2VsZi5fdHcuc2VwKHNlcCwgdGl0bGUsICoqa3cpCi0KLSAgICBk
ZWYgbGluZShzZWxmLCBtc2csICoqa3cpOgotICAgICAgICBzZWxmLl90dy5saW5lKG1zZywgKipr
dykKLQotICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByKToKLSAgICAg
ICAgZm9yIGxpbmUgaW4gc2l4LnRleHRfdHlwZShleGNyZXByKS5zcGxpdCgiXG4iKToKLSAgICAg
ICAgICAgIHNlbGYud3JpdGVfbGluZSgiSU5URVJOQUxFUlJPUj4gIiArIGxpbmUpCi0gICAgICAg
IHJldHVybiAxCi0KLSAgICBkZWYgcHl0ZXN0X2xvZ3dhcm5pbmcoc2VsZiwgY29kZSwgZnNsb2Nh
dGlvbiwgbWVzc2FnZSwgbm9kZWlkKToKLSAgICAgICAgd2FybmluZ3MgPSBzZWxmLnN0YXRzLnNl
dGRlZmF1bHQoIndhcm5pbmdzIiwgW10pCi0gICAgICAgIHdhcm5pbmcgPSBXYXJuaW5nUmVwb3J0
KGNvZGU9Y29kZSwgZnNsb2NhdGlvbj1mc2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UsIG5vZGVpZD1ub2RlaWQpCi0gICAgICAgIHdhcm5p
bmdzLmFwcGVuZCh3YXJuaW5nKQotCi0gICAgZGVmIHB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZChz
ZWxmLCBwbHVnaW4pOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6
Ci0gICAgICAgICAgICBtc2cgPSAiUExVR0lOIHJlZ2lzdGVyZWQ6ICVzIiAlIChwbHVnaW4sKQot
ICAgICAgICAgICAgIyBYWFggdGhpcyBldmVudCBtYXkgaGFwcGVuIGR1cmluZyBzZXR1cC90ZWFy
ZG93biB0aW1lCi0gICAgICAgICAgICAjICAgICB3aGljaCB1bmZvcnR1bmF0ZWx5IGNhcHR1cmVz
IG91ciBvdXRwdXQgaGVyZQotICAgICAgICAgICAgIyAgICAgd2hpY2ggZ2FyYmxlcyBvdXIgb3V0
cHV0IGlmIHdlIHVzZSBzZWxmLndyaXRlX2xpbmUKLSAgICAgICAgICAgIHNlbGYud3JpdGVfbGlu
ZShtc2cpCi0KLSAgICBkZWYgcHl0ZXN0X2Rlc2VsZWN0ZWQoc2VsZiwgaXRlbXMpOgotICAgICAg
ICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoJ2Rlc2VsZWN0ZWQnLCBbXSkuZXh0ZW5kKGl0ZW1zKQot
Ci0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KHNlbGYsIG5vZGVpZCwgbG9jYXRpb24p
OgotICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZSBwYXRoIGlzIHByaW50ZWQgYmVmb3JlIHRoZQot
ICAgICAgICAjIDFzdCB0ZXN0IG9mIGEgbW9kdWxlIHN0YXJ0cyBydW5uaW5nCi0gICAgICAgIGlm
IHNlbGYuc2hvd2xvbmd0ZXN0aW5mbzoKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9sb2NhdGlv
bmxpbmUobm9kZWlkLCAqbG9jYXRpb24pCi0gICAgICAgICAgICBzZWxmLndyaXRlX2Vuc3VyZV9w
cmVmaXgobGluZSwgIiIpCi0gICAgICAgIGVsaWYgc2VsZi5zaG93ZnNwYXRoOgotICAgICAgICAg
ICAgZnNpZCA9IG5vZGVpZC5zcGxpdCgiOjoiKVswXQotICAgICAgICAgICAgc2VsZi53cml0ZV9m
c3BhdGhfcmVzdWx0KGZzaWQsICIiKQotCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9y
dChzZWxmLCByZXBvcnQpOgotICAgICAgICByZXAgPSByZXBvcnQKLSAgICAgICAgcmVzID0gc2Vs
Zi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0PXJlcCkKLSAgICAg
ICAgY2F0LCBsZXR0ZXIsIHdvcmQgPSByZXMKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh3b3JkLCB0
dXBsZSk6Ci0gICAgICAgICAgICB3b3JkLCBtYXJrdXAgPSB3b3JkCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBtYXJrdXAgPSBOb25lCi0gICAgICAgIHNlbGYuc3RhdHMuc2V0ZGVmYXVsdChj
YXQsIFtdKS5hcHBlbmQocmVwKQotICAgICAgICBzZWxmLl90ZXN0c19yYW4gPSBUcnVlCi0gICAg
ICAgIGlmIG5vdCBsZXR0ZXIgYW5kIG5vdCB3b3JkOgotICAgICAgICAgICAgIyBwcm9iYWJseSBw
YXNzZWQgc2V0dXAvdGVhcmRvd24KLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBydW5uaW5n
X3hkaXN0ID0gaGFzYXR0cihyZXAsICdub2RlJykKLSAgICAgICAgc2VsZi5fcHJvZ3Jlc3NfaXRl
bXNfcmVwb3J0ZWQgKz0gMQotICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA8PSAwOgotICAgICAg
ICAgICAgaWYgbm90IHJ1bm5pbmdfeGRpc3QgYW5kIHNlbGYuc2hvd2ZzcGF0aDoKLSAgICAgICAg
ICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQocmVwLm5vZGVpZCwgbGV0dGVyKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZShsZXR0ZXIpCi0g
ICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pZl9wYXN0X2VkZ2UoKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgaWYgbWFya3VwIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYg
cmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0geydncmVlbic6IFRydWV9
Ci0gICAgICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVkOgotICAgICAgICAgICAgICAgICAgICBt
YXJrdXAgPSB7J3JlZCc6IFRydWV9Ci0gICAgICAgICAgICAgICAgZWxpZiByZXAuc2tpcHBlZDoK
LSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0geyd5ZWxsb3cnOiBUcnVlfQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHt9Ci0gICAgICAgICAg
ICBsaW5lID0gc2VsZi5fbG9jYXRpb25saW5lKHJlcC5ub2RlaWQsICpyZXAubG9jYXRpb24pCi0g
ICAgICAgICAgICBpZiBub3QgcnVubmluZ194ZGlzdDoKLSAgICAgICAgICAgICAgICBzZWxmLndy
aXRlX2Vuc3VyZV9wcmVmaXgobGluZSwgd29yZCwgKiptYXJrdXApCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHNlbGYuZW5zdXJlX25ld2xpbmUoKQotICAgICAgICAgICAgICAg
IHNlbGYuX3R3LndyaXRlKCJbJXNdIiAlIHJlcC5ub2RlLmdhdGV3YXkuaWQpCi0gICAgICAgICAg
ICAgICAgaWYgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl90dy53cml0ZShzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZSgpICsg
IiAiLCBjeWFuPVRydWUpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fdHcud3JpdGUoJyAnKQotICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKHdv
cmQsICoqbWFya3VwKQotICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKCIgIiArIGxpbmUp
Ci0gICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gLTIKLQotICAgIGRlZiBfd3Jp
dGVfcHJvZ3Jlc3NfaWZfcGFzdF9lZGdlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fc2hv
d19wcm9ncmVzc19pbmZvOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGxhc3RfaXRlbSA9
IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkID09IHNlbGYuX3Nlc3Npb24udGVzdHNjb2xs
ZWN0ZWQKLSAgICAgICAgaWYgbGFzdF9pdGVtOgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfcHJv
Z3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgpCi0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBwYXN0X2VkZ2UgPSBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50X2xpbmUgKyBzZWxm
Ll9QUk9HUkVTU19MRU5HVEggKyAxID49IHNlbGYuX3NjcmVlbl93aWR0aAotICAgICAgICBpZiBw
YXN0X2VkZ2U6Ci0gICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRp
b25fbWVzc2FnZSgpCi0gICAgICAgICAgICBzZWxmLl90dy53cml0ZShtc2cgKyAnXG4nLCBjeWFu
PVRydWUpCi0KLSAgICBfUFJPR1JFU1NfTEVOR1RIID0gbGVuKCcgWzEwMCVdJykKLQotICAgIGRl
ZiBfZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNvbGxl
Y3RlZCA9IHNlbGYuX3Nlc3Npb24udGVzdHNjb2xsZWN0ZWQKLSAgICAgICAgaWYgY29sbGVjdGVk
OgotICAgICAgICAgICAgcHJvZ3Jlc3MgPSBzZWxmLl9wcm9ncmVzc19pdGVtc19yZXBvcnRlZCAq
IDEwMCAvLyBjb2xsZWN0ZWQKLSAgICAgICAgICAgIHJldHVybiAnIFt7OjNkfSVdJy5mb3JtYXQo
cHJvZ3Jlc3MpCi0gICAgICAgIHJldHVybiAnIFsxMDAlXScKLQotICAgIGRlZiBfd3JpdGVfcHJv
Z3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZShzZWxmKToKLSAgICAgICAgaWYgbm90IHNl
bGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBtc2cg
PSBzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZSgpCi0gICAgICAgIGZpbGwg
PSAnICcgKiAoc2VsZi5fdHcuZnVsbHdpZHRoIC0gc2VsZi5fdHcuY2hhcnNfb25fY3VycmVudF9s
aW5lIC0gbGVuKG1zZykgLSAxKQotICAgICAgICBzZWxmLndyaXRlKGZpbGwgKyBtc2csIGN5YW49
VHJ1ZSkKLQotICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbihzZWxmKToKLSAgICAgICAgaWYgbm90
IHNlbGYuaXNhdHR5IGFuZCBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZSA+PSAxOgotICAgICAg
ICAgICAgc2VsZi53cml0ZSgiY29sbGVjdGluZyAuLi4gIiwgYm9sZD1UcnVlKQotCi0gICAgZGVm
IHB5dGVzdF9jb2xsZWN0cmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIHJlcG9ydC5m
YWlsZWQ6Ci0gICAgICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoImVycm9yIiwgW10pLmFw
cGVuZChyZXBvcnQpCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICBz
ZWxmLnN0YXRzLnNldGRlZmF1bHQoInNraXBwZWQiLCBbXSkuYXBwZW5kKHJlcG9ydCkKLSAgICAg
ICAgaXRlbXMgPSBbeCBmb3IgeCBpbiByZXBvcnQucmVzdWx0IGlmIGlzaW5zdGFuY2UoeCwgcHl0
ZXN0Lkl0ZW0pXQotICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQgKz0gbGVuKGl0ZW1zKQotICAg
ICAgICBpZiBzZWxmLmlzYXR0eToKLSAgICAgICAgICAgICMgc2VsZi53cml0ZV9mc3BhdGhfcmVz
dWx0KHJlcG9ydC5ub2RlaWQsICdFJykKLSAgICAgICAgICAgIHNlbGYucmVwb3J0X2NvbGxlY3Qo
KQotCi0gICAgZGVmIHJlcG9ydF9jb2xsZWN0KHNlbGYsIGZpbmFsPUZhbHNlKToKLSAgICAgICAg
aWYgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPCAwOgotICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICAgICAgZXJyb3JzID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCdlcnJvcicsIFtdKSkKLSAgICAg
ICAgc2tpcHBlZCA9IGxlbihzZWxmLnN0YXRzLmdldCgnc2tpcHBlZCcsIFtdKSkKLSAgICAgICAg
aWYgZmluYWw6Ci0gICAgICAgICAgICBsaW5lID0gImNvbGxlY3RlZCAiCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBsaW5lID0gImNvbGxlY3RpbmcgIgotICAgICAgICBsaW5lICs9IHN0cihz
ZWxmLl9udW1jb2xsZWN0ZWQpICsgIiBpdGVtIiArICgnJyBpZiBzZWxmLl9udW1jb2xsZWN0ZWQg
PT0gMSBlbHNlICdzJykKLSAgICAgICAgaWYgZXJyb3JzOgotICAgICAgICAgICAgbGluZSArPSAi
IC8gJWQgZXJyb3JzIiAlIGVycm9ycwotICAgICAgICBpZiBza2lwcGVkOgotICAgICAgICAgICAg
bGluZSArPSAiIC8gJWQgc2tpcHBlZCIgJSBza2lwcGVkCi0gICAgICAgIGlmIHNlbGYuaXNhdHR5
OgotICAgICAgICAgICAgc2VsZi5yZXdyaXRlKGxpbmUsIGJvbGQ9VHJ1ZSwgZXJhc2U9VHJ1ZSkK
LSAgICAgICAgICAgIGlmIGZpbmFsOgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoJ1xuJykK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShsaW5lKQotCi0gICAg
ZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNlbGYpOgotICAgICAgICBzZWxmLnJl
cG9ydF9jb2xsZWN0KFRydWUpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkK
LSAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAgc2Vs
Zi5fc2Vzc2lvbiA9IHNlc3Npb24KLSAgICAgICAgc2VsZi5fc2Vzc2lvbnN0YXJ0dGltZSA9IHRp
bWUudGltZSgpCi0gICAgICAgIGlmIG5vdCBzZWxmLnNob3doZWFkZXI6Ci0gICAgICAgICAgICBy
ZXR1cm4KLSAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAidGVzdCBzZXNzaW9uIHN0YXJ0cyIs
IGJvbGQ9VHJ1ZSkKLSAgICAgICAgdmVyaW5mbyA9IHBsYXRmb3JtLnB5dGhvbl92ZXJzaW9uKCkK
LSAgICAgICAgbXNnID0gInBsYXRmb3JtICVzIC0tIFB5dGhvbiAlcyIgJSAoc3lzLnBsYXRmb3Jt
LCB2ZXJpbmZvKQotICAgICAgICBpZiBoYXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJyk6
Ci0gICAgICAgICAgICB2ZXJpbmZvID0gIi4iLmpvaW4obWFwKHN0ciwgc3lzLnB5cHlfdmVyc2lv
bl9pbmZvWzozXSkpCi0gICAgICAgICAgICBtc2cgKz0gIltweXB5LSVzLSVzXSIgJSAodmVyaW5m
bywgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzNdKQotICAgICAgICBtc2cgKz0gIiwgcHl0ZXN0LSVz
LCBweS0lcywgcGx1Z2d5LSVzIiAlICgKLSAgICAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25f
XywgcHkuX192ZXJzaW9uX18sIHBsdWdneS5fX3ZlcnNpb25fXykKLSAgICAgICAgaWYgc2VsZi52
ZXJib3NpdHkgPiAwIG9yIHNlbGYuY29uZmlnLm9wdGlvbi5kZWJ1ZyBvciBcCi0gICAgICAgICAg
IGdldGF0dHIoc2VsZi5jb25maWcub3B0aW9uLCAncGFzdGViaW4nLCBOb25lKToKLSAgICAgICAg
ICAgIG1zZyArPSAiIC0tICIgKyBzdHIoc3lzLmV4ZWN1dGFibGUpCi0gICAgICAgIHNlbGYud3Jp
dGVfbGluZShtc2cpCi0gICAgICAgIGxpbmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVw
b3J0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgc3RhcnRkaXI9c2Vs
Zi5zdGFydGRpcikKLSAgICAgICAgc2VsZi5fd3JpdGVfcmVwb3J0X2xpbmVzX2Zyb21faG9va3Mo
bGluZXMpCi0KLSAgICBkZWYgX3dyaXRlX3JlcG9ydF9saW5lc19mcm9tX2hvb2tzKHNlbGYsIGxp
bmVzKToKLSAgICAgICAgbGluZXMucmV2ZXJzZSgpCi0gICAgICAgIGZvciBsaW5lIGluIGZsYXR0
ZW4obGluZXMpOgotICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCi0KLSAgICBkZWYg
cHl0ZXN0X3JlcG9ydF9oZWFkZXIoc2VsZiwgY29uZmlnKToKLSAgICAgICAgaW5pZmlsZSA9ICIi
Ci0gICAgICAgIGlmIGNvbmZpZy5pbmlmaWxlOgotICAgICAgICAgICAgaW5pZmlsZSA9ICIgIiAr
IGNvbmZpZy5yb290ZGlyLmJlc3RyZWxwYXRoKGNvbmZpZy5pbmlmaWxlKQotICAgICAgICBsaW5l
cyA9IFsicm9vdGRpcjogJXMsIGluaWZpbGU6JXMiICUgKGNvbmZpZy5yb290ZGlyLCBpbmlmaWxl
KV0KLQotICAgICAgICBwbHVnaW5pbmZvID0gY29uZmlnLnBsdWdpbm1hbmFnZXIubGlzdF9wbHVn
aW5fZGlzdGluZm8oKQotICAgICAgICBpZiBwbHVnaW5pbmZvOgotCi0gICAgICAgICAgICBsaW5l
cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgInBsdWdpbnM6ICVzIiAlICIsICIuam9pbihfcGx1
Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZvKSkpCi0gICAgICAgIHJldHVybiBsaW5lcwotCi0g
ICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAg
aWYgc2VsZi5jb25maWcub3B0aW9uLmNvbGxlY3Rvbmx5OgotICAgICAgICAgICAgc2VsZi5fcHJp
bnRjb2xsZWN0ZWRpdGVtcyhzZXNzaW9uLml0ZW1zKQotICAgICAgICAgICAgaWYgc2VsZi5zdGF0
cy5nZXQoJ2ZhaWxlZCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LnNlcCgiISIsICJjb2xs
ZWN0aW9uIGZhaWx1cmVzIikKLSAgICAgICAgICAgICAgICBmb3IgcmVwIGluIHNlbGYuc3RhdHMu
Z2V0KCdmYWlsZWQnKToKLSAgICAgICAgICAgICAgICAgICAgcmVwLnRvdGVybWluYWwoc2VsZi5f
dHcpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgICAgIHJldHVybiAwCi0gICAg
ICAgIGxpbmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5p
c2goCi0gICAgICAgICAgICBjb25maWc9c2VsZi5jb25maWcsIHN0YXJ0ZGlyPXNlbGYuc3RhcnRk
aXIsIGl0ZW1zPXNlc3Npb24uaXRlbXMpCi0gICAgICAgIHNlbGYuX3dyaXRlX3JlcG9ydF9saW5l
c19mcm9tX2hvb2tzKGxpbmVzKQotCi0gICAgZGVmIF9wcmludGNvbGxlY3RlZGl0ZW1zKHNlbGYs
IGl0ZW1zKToKLSAgICAgICAgIyB0byBwcmludCBvdXQgaXRlbXMgYW5kIHRoZWlyIHBhcmVudCBj
b2xsZWN0b3JzCi0gICAgICAgICMgd2UgdGFrZSBjYXJlIHRvIGxlYXZlIG91dCBJbnN0YW5jZXMg
YWthICgpCi0gICAgICAgICMgYmVjYXVzZSBsYXRlciB2ZXJzaW9ucyBhcmUgZ29pbmcgdG8gZ2V0
IHJpZCBvZiB0aGVtIGFueXdheQotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9z
ZSA8IDA6Ci0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udmVyYm9zZSA8IC0xOgot
ICAgICAgICAgICAgICAgIGNvdW50cyA9IHt9Ci0gICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4g
aXRlbXM6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpdGVtLm5vZGVpZC5zcGxpdCgnOjon
LCAxKVswXQotICAgICAgICAgICAgICAgICAgICBjb3VudHNbbmFtZV0gPSBjb3VudHMuZ2V0KG5h
bWUsIDApICsgMQotICAgICAgICAgICAgICAgIGZvciBuYW1lLCBjb3VudCBpbiBzb3J0ZWQoY291
bnRzLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKCIlczogJWQi
ICUgKG5hbWUsIGNvdW50KSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZm9y
IGl0ZW0gaW4gaXRlbXM6Ci0gICAgICAgICAgICAgICAgICAgIG5vZGVpZCA9IGl0ZW0ubm9kZWlk
Ci0gICAgICAgICAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVpZC5yZXBsYWNlKCI6OigpOjoiLCAi
OjoiKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKG5vZGVpZCkKLSAgICAgICAg
ICAgIHJldHVybgotICAgICAgICBzdGFjayA9IFtdCi0gICAgICAgIGluZGVudCA9ICIiCi0gICAg
ICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAgbmVlZGVkX2NvbGxlY3RvcnMgPSBp
dGVtLmxpc3RjaGFpbigpWzE6XSAgIyBzdHJpcCByb290IG5vZGUKLSAgICAgICAgICAgIHdoaWxl
IHN0YWNrOgotICAgICAgICAgICAgICAgIGlmIHN0YWNrID09IG5lZWRlZF9jb2xsZWN0b3JzWzps
ZW4oc3RhY2spXToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBz
dGFjay5wb3AoKQotICAgICAgICAgICAgZm9yIGNvbCBpbiBuZWVkZWRfY29sbGVjdG9yc1tsZW4o
c3RhY2spOl06Ci0gICAgICAgICAgICAgICAgc3RhY2suYXBwZW5kKGNvbCkKLSAgICAgICAgICAg
ICAgICAjIGlmIGNvbC5uYW1lID09ICIoKSI6Ci0gICAgICAgICAgICAgICAgIyAgICBjb250aW51
ZQotICAgICAgICAgICAgICAgIGluZGVudCA9IChsZW4oc3RhY2spIC0gMSkgKiAiICAiCi0gICAg
ICAgICAgICAgICAgc2VsZi5fdHcubGluZSgiJXMlcyIgJSAoaW5kZW50LCBjb2wpKQotCi0gICAg
QHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3Rfc2Vzc2lv
bmZpbmlzaChzZWxmLCBleGl0c3RhdHVzKToKLSAgICAgICAgb3V0Y29tZSA9IHlpZWxkCi0gICAg
ICAgIG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgICAgIHNlbGYuX3R3LmxpbmUoIiIpCi0gICAg
ICAgIHN1bW1hcnlfZXhpdF9jb2RlcyA9ICgKLSAgICAgICAgICAgIEVYSVRfT0ssIEVYSVRfVEVT
VFNGQUlMRUQsIEVYSVRfSU5URVJSVVBURUQsIEVYSVRfVVNBR0VFUlJPUiwKLSAgICAgICAgICAg
IEVYSVRfTk9URVNUU0NPTExFQ1RFRCkKLSAgICAgICAgaWYgZXhpdHN0YXR1cyBpbiBzdW1tYXJ5
X2V4aXRfY29kZXM6Ci0gICAgICAgICAgICBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF90ZXJtaW5h
bF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXI9c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdHN0YXR1cz1leGl0c3RhdHVzKQotICAg
ICAgICAgICAgc2VsZi5zdW1tYXJ5X2Vycm9ycygpCi0gICAgICAgICAgICBzZWxmLnN1bW1hcnlf
ZmFpbHVyZXMoKQotICAgICAgICAgICAgc2VsZi5zdW1tYXJ5X3dhcm5pbmdzKCkKLSAgICAgICAg
ICAgIHNlbGYuc3VtbWFyeV9wYXNzZXMoKQotICAgICAgICBpZiBleGl0c3RhdHVzID09IEVYSVRf
SU5URVJSVVBURUQ6Ci0gICAgICAgICAgICBzZWxmLl9yZXBvcnRfa2V5Ym9hcmRpbnRlcnJ1cHQo
KQotICAgICAgICAgICAgZGVsIHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8KLSAgICAgICAg
c2VsZi5zdW1tYXJ5X2Rlc2VsZWN0ZWQoKQotICAgICAgICBzZWxmLnN1bW1hcnlfc3RhdHMoKQot
Ci0gICAgZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQoc2VsZiwgZXhjaW5mbyk6Ci0gICAg
ICAgIHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8gPSBleGNpbmZvLmdldHJlcHIoZnVuY2Fy
Z3M9VHJ1ZSkKLQotICAgIGRlZiBweXRlc3RfdW5jb25maWd1cmUoc2VsZik6Ci0gICAgICAgIGlm
IGhhc2F0dHIoc2VsZiwgJ19rZXlib2FyZGludGVycnVwdF9tZW1vJyk6Ci0gICAgICAgICAgICBz
ZWxmLl9yZXBvcnRfa2V5Ym9hcmRpbnRlcnJ1cHQoKQotCi0gICAgZGVmIF9yZXBvcnRfa2V5Ym9h
cmRpbnRlcnJ1cHQoc2VsZik6Ci0gICAgICAgIGV4Y3JlcHIgPSBzZWxmLl9rZXlib2FyZGludGVy
cnVwdF9tZW1vCi0gICAgICAgIG1zZyA9IGV4Y3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKLSAgICAg
ICAgc2VsZi53cml0ZV9zZXAoIiEiLCBtc2cpCi0gICAgICAgIGlmICJLZXlib2FyZEludGVycnVw
dCIgaW4gbXNnOgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLmZ1bGx0cmFjZToK
LSAgICAgICAgICAgICAgICBleGNyZXByLnRvdGVybWluYWwoc2VsZi5fdHcpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoInRvIHNob3cgYSBmdWxsIHRy
YWNlYmFjayBvbiBLZXlib2FyZEludGVycnVwdCB1c2UgLS1mdWxsdHJhY2UiLCB5ZWxsb3c9VHJ1
ZSkKLSAgICAgICAgICAgICAgICBleGNyZXByLnJlcHJjcmFzaC50b3Rlcm1pbmFsKHNlbGYuX3R3
KQotCi0gICAgZGVmIF9sb2NhdGlvbmxpbmUoc2VsZiwgbm9kZWlkLCBmc3BhdGgsIGxpbmVubywg
ZG9tYWluKToKLSAgICAgICAgZGVmIG1rcmVsKG5vZGVpZCk6Ci0gICAgICAgICAgICBsaW5lID0g
c2VsZi5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChub2RlaWQpCi0gICAgICAgICAgICBpZiBk
b21haW4gYW5kIGxpbmUuZW5kc3dpdGgoZG9tYWluKToKLSAgICAgICAgICAgICAgICBsaW5lID0g
bGluZVs6LWxlbihkb21haW4pXQotICAgICAgICAgICAgICAgIHZhbHVlcyA9IGRvbWFpbi5zcGxp
dCgiWyIpCi0gICAgICAgICAgICAgICAgdmFsdWVzWzBdID0gdmFsdWVzWzBdLnJlcGxhY2UoJy4n
LCAnOjonKSAgIyBkb24ndCByZXBsYWNlICcuJyBpbiBwYXJhbXMKLSAgICAgICAgICAgICAgICBs
aW5lICs9ICJbIi5qb2luKHZhbHVlcykKLSAgICAgICAgICAgIHJldHVybiBsaW5lCi0gICAgICAg
ICMgY29sbGVjdF9mc3BhdGggY29tZXMgZnJvbSB0ZXN0aWQgd2hpY2ggaGFzIGEgIi8iLW5vcm1h
bGl6ZWQgcGF0aAotCi0gICAgICAgIGlmIGZzcGF0aDoKLSAgICAgICAgICAgIHJlcyA9IG1rcmVs
KG5vZGVpZCkucmVwbGFjZSgiOjooKSIsICIiKSAgIyBwYXJlbnMtbm9ybWFsaXphdGlvbgotICAg
ICAgICAgICAgaWYgbm9kZWlkLnNwbGl0KCI6OiIpWzBdICE9IGZzcGF0aC5yZXBsYWNlKCJcXCIs
IG5vZGVzLlNFUCk6Ci0gICAgICAgICAgICAgICAgcmVzICs9ICIgPC0gIiArIHNlbGYuc3RhcnRk
aXIuYmVzdHJlbHBhdGgoZnNwYXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzID0g
Iltsb2NhdGlvbl0iCi0gICAgICAgIHJldHVybiByZXMgKyAiICIKLQotICAgIGRlZiBfZ2V0ZmFp
bHVyZWhlYWRsaW5lKHNlbGYsIHJlcCk6Ci0gICAgICAgIGlmIGhhc2F0dHIocmVwLCAnbG9jYXRp
b24nKToKLSAgICAgICAgICAgIGZzcGF0aCwgbGluZW5vLCBkb21haW4gPSByZXAubG9jYXRpb24K
LSAgICAgICAgICAgIHJldHVybiBkb21haW4KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJl
dHVybiAidGVzdCBzZXNzaW9uIiAgIyBYWFg/Ci0KLSAgICBkZWYgX2dldGNyYXNobGluZShzZWxm
LCByZXApOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHJlcC5sb25ncmVw
ci5yZXByY3Jhc2gpCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHJlcC5sb25ncmVwcilbOjUwXQotICAg
ICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiAi
IgotCi0gICAgIwotICAgICMgc3VtbWFyaWVzIGZvciBzZXNzaW9uZmluaXNoCi0gICAgIwotICAg
IGRlZiBnZXRyZXBvcnRzKHNlbGYsIG5hbWUpOgotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAg
ICBmb3IgeCBpbiBzZWxmLnN0YXRzLmdldChuYW1lLCBbXSk6Ci0gICAgICAgICAgICBpZiBub3Qg
aGFzYXR0cih4LCAnX3BkYnNob3duJyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh4
KQotICAgICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgc3VtbWFyeV93YXJuaW5ncyhzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5oYXNvcHQoInciKToKLSAgICAgICAgICAgIGFsbF93YXJuaW5n
cyA9IHNlbGYuc3RhdHMuZ2V0KCJ3YXJuaW5ncyIpCi0gICAgICAgICAgICBpZiBub3QgYWxsX3dh
cm5pbmdzOgotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBncm91cGVkID0g
aXRlcnRvb2xzLmdyb3VwYnkoYWxsX3dhcm5pbmdzLCBrZXk9bGFtYmRhIHdyOiB3ci5nZXRfbG9j
YXRpb24oc2VsZi5jb25maWcpKQotCi0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJ3
YXJuaW5ncyBzdW1tYXJ5IiwgeWVsbG93PVRydWUsIGJvbGQ9RmFsc2UpCi0gICAgICAgICAgICBm
b3IgbG9jYXRpb24sIHdhcm5pbmdfcmVjb3JkcyBpbiBncm91cGVkOgotICAgICAgICAgICAgICAg
IHNlbGYuX3R3LmxpbmUoc3RyKGxvY2F0aW9uKSBvciAnPHVuZGV0ZXJtaW5lZCBsb2NhdGlvbj4n
KQotICAgICAgICAgICAgICAgIGZvciB3IGluIHdhcm5pbmdfcmVjb3JkczoKLSAgICAgICAgICAg
ICAgICAgICAgbGluZXMgPSB3Lm1lc3NhZ2Uuc3BsaXRsaW5lcygpCi0gICAgICAgICAgICAgICAg
ICAgIGluZGVudGVkID0gJ1xuJy5qb2luKCcgICcgKyB4IGZvciB4IGluIGxpbmVzKQotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKGluZGVudGVkKQotICAgICAgICAgICAgICAgIHNl
bGYuX3R3LmxpbmUoKQotICAgICAgICAgICAgc2VsZi5fdHcubGluZSgnLS0gRG9jczogaHR0cDov
L2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5odG1sJykKLQotICAgIGRlZiBzdW1t
YXJ5X3Bhc3NlcyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUg
IT0gIm5vIjoKLSAgICAgICAgICAgIGlmIHNlbGYuaGFzb3B0KCJQIik6Ci0gICAgICAgICAgICAg
ICAgcmVwb3J0cyA9IHNlbGYuZ2V0cmVwb3J0cygncGFzc2VkJykKLSAgICAgICAgICAgICAgICBp
ZiBub3QgcmVwb3J0czoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAg
ICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiUEFTU0VTIikKLSAgICAgICAgICAgICAgICBmb3IgcmVw
IGluIHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldGZhaWx1cmVo
ZWFkbGluZShyZXApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNn
KQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShyZXApCi0KLSAgICBk
ZWYgcHJpbnRfdGVhcmRvd25fc2VjdGlvbnMoc2VsZiwgcmVwKToKLSAgICAgICAgZm9yIHNlY25h
bWUsIGNvbnRlbnQgaW4gcmVwLnNlY3Rpb25zOgotICAgICAgICAgICAgaWYgJ3RlYXJkb3duJyBp
biBzZWNuYW1lOgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LnNlcCgnLScsIHNlY25hbWUpCi0g
ICAgICAgICAgICAgICAgaWYgY29udGVudFstMTpdID09ICJcbiI6Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbnRlbnQgPSBjb250ZW50WzotMV0KLSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5l
KGNvbnRlbnQpCi0KLSAgICBkZWYgc3VtbWFyeV9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgaWYg
c2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgIT0gIm5vIjoKLSAgICAgICAgICAgIHJlcG9ydHMg
PSBzZWxmLmdldHJlcG9ydHMoJ2ZhaWxlZCcpCi0gICAgICAgICAgICBpZiBub3QgcmVwb3J0czoK
LSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9Iiwg
IkZBSUxVUkVTIikKLSAgICAgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKLSAgICAgICAgICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9PSAibGluZSI6Ci0gICAgICAgICAg
ICAgICAgICAgIGxpbmUgPSBzZWxmLl9nZXRjcmFzaGxpbmUocmVwKQotICAgICAgICAgICAgICAg
ICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAg
ICAgICAgICAgICAgICBtYXJrdXAgPSB7J3JlZCc6IFRydWUsICdib2xkJzogVHJ1ZX0KLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2csICoqbWFya3VwKQotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShyZXApCi0gICAgICAgICAgICAgICAg
ICAgIGZvciByZXBvcnQgaW4gc2VsZi5nZXRyZXBvcnRzKCcnKToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIHJlcG9ydC5ub2RlaWQgPT0gcmVwLm5vZGVpZCBhbmQgcmVwb3J0LndoZW4gPT0g
J3RlYXJkb3duJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByaW50X3RlYXJk
b3duX3NlY3Rpb25zKHJlcG9ydCkKLQotICAgIGRlZiBzdW1tYXJ5X2Vycm9ycyhzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgIT0gIm5vIjoKLSAgICAgICAgICAg
IHJlcG9ydHMgPSBzZWxmLmdldHJlcG9ydHMoJ2Vycm9yJykKLSAgICAgICAgICAgIGlmIG5vdCBy
ZXBvcnRzOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgc2VsZi53cml0ZV9z
ZXAoIj0iLCAiRVJST1JTIikKLSAgICAgICAgICAgIGZvciByZXAgaW4gc2VsZi5zdGF0c1snZXJy
b3InXToKLSAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVw
KQotICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJlcCwgJ3doZW4nKToKLSAgICAgICAg
ICAgICAgICAgICAgIyBjb2xsZWN0Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJFUlJPUiBj
b2xsZWN0aW5nICIgKyBtc2cKLSAgICAgICAgICAgICAgICBlbGlmIHJlcC53aGVuID09ICJzZXR1
cCI6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJFUlJPUiBhdCBzZXR1cCBvZiAiICsgbXNn
Ci0gICAgICAgICAgICAgICAgZWxpZiByZXAud2hlbiA9PSAidGVhcmRvd24iOgotICAgICAgICAg
ICAgICAgICAgICBtc2cgPSAiRVJST1IgYXQgdGVhcmRvd24gb2YgIiArIG1zZwotICAgICAgICAg
ICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNnKQotICAgICAgICAgICAgICAgIHNlbGYuX291
dHJlcF9zdW1tYXJ5KHJlcCkKLQotICAgIGRlZiBfb3V0cmVwX3N1bW1hcnkoc2VsZiwgcmVwKToK
LSAgICAgICAgcmVwLnRvdGVybWluYWwoc2VsZi5fdHcpCi0gICAgICAgIGZvciBzZWNuYW1lLCBj
b250ZW50IGluIHJlcC5zZWN0aW9uczoKLSAgICAgICAgICAgIHNlbGYuX3R3LnNlcCgiLSIsIHNl
Y25hbWUpCi0gICAgICAgICAgICBpZiBjb250ZW50Wy0xOl0gPT0gIlxuIjoKLSAgICAgICAgICAg
ICAgICBjb250ZW50ID0gY29udGVudFs6LTFdCi0gICAgICAgICAgICBzZWxmLl90dy5saW5lKGNv
bnRlbnQpCi0KLSAgICBkZWYgc3VtbWFyeV9zdGF0cyhzZWxmKToKLSAgICAgICAgc2Vzc2lvbl9k
dXJhdGlvbiA9IHRpbWUudGltZSgpIC0gc2VsZi5fc2Vzc2lvbnN0YXJ0dGltZQotICAgICAgICAo
bGluZSwgY29sb3IpID0gYnVpbGRfc3VtbWFyeV9zdGF0c19saW5lKHNlbGYuc3RhdHMpCi0gICAg
ICAgIG1zZyA9ICIlcyBpbiAlLjJmIHNlY29uZHMiICUgKGxpbmUsIHNlc3Npb25fZHVyYXRpb24p
Ci0gICAgICAgIG1hcmt1cCA9IHtjb2xvcjogVHJ1ZSwgJ2JvbGQnOiBUcnVlfQotCi0gICAgICAg
IGlmIHNlbGYudmVyYm9zaXR5ID49IDA6Ci0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIs
IG1zZywgKiptYXJrdXApCi0gICAgICAgIGlmIHNlbGYudmVyYm9zaXR5ID09IC0xOgotICAgICAg
ICAgICAgc2VsZi53cml0ZV9saW5lKG1zZywgKiptYXJrdXApCi0KLSAgICBkZWYgc3VtbWFyeV9k
ZXNlbGVjdGVkKHNlbGYpOgotICAgICAgICBpZiAnZGVzZWxlY3RlZCcgaW4gc2VsZi5zdGF0czoK
LSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIiVkIHRlc3RzIGRlc2VsZWN0ZWQiICUg
KAotICAgICAgICAgICAgICAgIGxlbihzZWxmLnN0YXRzWydkZXNlbGVjdGVkJ10pKSwgYm9sZD1U
cnVlKQotCi0KLWRlZiByZXByX3B5dGhvbnZlcnNpb24odj1Ob25lKToKLSAgICBpZiB2IGlzIE5v
bmU6Ci0gICAgICAgIHYgPSBzeXMudmVyc2lvbl9pbmZvCi0gICAgdHJ5OgotICAgICAgICByZXR1
cm4gIiVzLiVzLiVzLSVzLSVzIiAlIHYKLSAgICBleGNlcHQgKFR5cGVFcnJvciwgVmFsdWVFcnJv
cik6Ci0gICAgICAgIHJldHVybiBzdHIodikKLQotCi1kZWYgZmxhdHRlbih2YWx1ZXMpOgotICAg
IGZvciB4IGluIHZhbHVlczoKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCAobGlzdCwgdHVwbGUp
KToKLSAgICAgICAgICAgIGZvciB5IGluIGZsYXR0ZW4oeCk6Ci0gICAgICAgICAgICAgICAgeWll
bGQgeQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgeWllbGQgeAotCi0KLWRlZiBidWlsZF9z
dW1tYXJ5X3N0YXRzX2xpbmUoc3RhdHMpOgotICAgIGtleXMgPSAoImZhaWxlZCBwYXNzZWQgc2tp
cHBlZCBkZXNlbGVjdGVkICIKLSAgICAgICAgICAgICJ4ZmFpbGVkIHhwYXNzZWQgd2FybmluZ3Mg
ZXJyb3IiKS5zcGxpdCgpCi0gICAgdW5rbm93bl9rZXlfc2VlbiA9IEZhbHNlCi0gICAgZm9yIGtl
eSBpbiBzdGF0cy5rZXlzKCk6Ci0gICAgICAgIGlmIGtleSBub3QgaW4ga2V5czoKLSAgICAgICAg
ICAgIGlmIGtleTogICMgc2V0dXAvdGVhcmRvd24gcmVwb3J0cyBoYXZlIGFuIGVtcHR5IGtleSwg
aWdub3JlIHRoZW0KLSAgICAgICAgICAgICAgICBrZXlzLmFwcGVuZChrZXkpCi0gICAgICAgICAg
ICAgICAgdW5rbm93bl9rZXlfc2VlbiA9IFRydWUKLSAgICBwYXJ0cyA9IFtdCi0gICAgZm9yIGtl
eSBpbiBrZXlzOgotICAgICAgICB2YWwgPSBzdGF0cy5nZXQoa2V5LCBOb25lKQotICAgICAgICBp
ZiB2YWw6Ci0gICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIiVkICVzIiAlIChsZW4odmFsKSwga2V5
KSkKLQotICAgIGlmIHBhcnRzOgotICAgICAgICBsaW5lID0gIiwgIi5qb2luKHBhcnRzKQotICAg
IGVsc2U6Ci0gICAgICAgIGxpbmUgPSAibm8gdGVzdHMgcmFuIgotCi0gICAgaWYgJ2ZhaWxlZCcg
aW4gc3RhdHMgb3IgJ2Vycm9yJyBpbiBzdGF0czoKLSAgICAgICAgY29sb3IgPSAncmVkJwotICAg
IGVsaWYgJ3dhcm5pbmdzJyBpbiBzdGF0cyBvciB1bmtub3duX2tleV9zZWVuOgotICAgICAgICBj
b2xvciA9ICd5ZWxsb3cnCi0gICAgZWxpZiAncGFzc2VkJyBpbiBzdGF0czoKLSAgICAgICAgY29s
b3IgPSAnZ3JlZW4nCi0gICAgZWxzZToKLSAgICAgICAgY29sb3IgPSAneWVsbG93JwotCi0gICAg
cmV0dXJuIChsaW5lLCBjb2xvcikKLQotCi1kZWYgX3BsdWdpbl9uYW1ldmVyc2lvbnMocGx1Z2lu
aW5mbyk6Ci0gICAgdmFsdWVzID0gW10KLSAgICBmb3IgcGx1Z2luLCBkaXN0IGluIHBsdWdpbmlu
Zm86Ci0gICAgICAgICMgZ2V0cyB1cyBuYW1lIGFuZCB2ZXJzaW9uIQotICAgICAgICBuYW1lID0g
J3tkaXN0LnByb2plY3RfbmFtZX0te2Rpc3QudmVyc2lvbn0nLmZvcm1hdChkaXN0PWRpc3QpCi0g
ICAgICAgICMgcXVlc3Rpb25hYmxlIGNvbnZlbmllbmNlLCBidXQgaXQga2VlcHMgdGhpbmdzIHNo
b3J0Ci0gICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0LSIpOgotICAgICAgICAgICAg
bmFtZSA9IG5hbWVbNzpdCi0gICAgICAgICMgd2UgZGVjaWRlZCB0byBwcmludCBweXRob24gcGFj
a2FnZSBuYW1lcwotICAgICAgICAjIHRoZXkgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSBwbHVnaW4K
LSAgICAgICAgaWYgbmFtZSBub3QgaW4gdmFsdWVzOgotICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZChuYW1lKQotICAgIHJldHVybiB2YWx1ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvdG1wZGlyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRhMWIwMzIyMzdhZmJmNDY4Y2MwZTM0OWQyYjI2MmI5MjgzZTk3
ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC90bXBkaXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAot
IiIiIHN1cHBvcnQgZm9yIHByb3ZpZGluZyB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgdG8gdGVzdCBm
dW5jdGlvbnMuICAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHJlCi0KLWltcG9ydCBweXRlc3QKLWlt
cG9ydCBweQotZnJvbSBfcHl0ZXN0Lm1vbmtleXBhdGNoIGltcG9ydCBNb25rZXlQYXRjaAotCi0K
LWNsYXNzIFRlbXBkaXJGYWN0b3J5OgotICAgICIiIkZhY3RvcnkgZm9yIHRlbXBvcmFyeSBkaXJl
Y3RvcmllcyB1bmRlciB0aGUgY29tbW9uIGJhc2UgdGVtcCBkaXJlY3RvcnkuCi0KLSAgICBUaGUg
YmFzZSBkaXJlY3RvcnkgY2FuIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGBgLS1iYXNldGVtcGBg
IG9wdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAg
ICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotICAgICAgICBzZWxmLnRyYWNlID0gY29uZmlnLnRy
YWNlLmdldCgidG1wZGlyIikKLQotICAgIGRlZiBlbnN1cmV0ZW1wKHNlbGYsIHN0cmluZywgZGly
PTEpOgotICAgICAgICAiIiIgKGRlcHJlY2F0ZWQpIHJldHVybiB0ZW1wb3JhcnkgZGlyZWN0b3J5
IHBhdGggd2l0aAotICAgICAgICAgICAgdGhlIGdpdmVuIHN0cmluZyBhcyB0aGUgdHJhaWxpbmcg
cGFydC4gIEl0IGlzIHVzdWFsbHkKLSAgICAgICAgICAgIGJldHRlciB0byB1c2UgdGhlICd0bXBk
aXInIGZ1bmN0aW9uIGFyZ3VtZW50IHdoaWNoCi0gICAgICAgICAgICBwcm92aWRlcyBhbiBlbXB0
eSB1bmlxdWUtcGVyLXRlc3QtaW52b2NhdGlvbiBkaXJlY3RvcnkKLSAgICAgICAgICAgIGFuZCBp
cyBndWFyYW50ZWVkIHRvIGJlIGVtcHR5LgotICAgICAgICAiIiIKLSAgICAgICAgIyBweS5sb2cu
X2FwaXdhcm4oIj4xLjEiLCAidXNlIHRtcGRpciBmdW5jdGlvbiBhcmd1bWVudCIpCi0gICAgICAg
IHJldHVybiBzZWxmLmdldGJhc2V0ZW1wKCkuZW5zdXJlKHN0cmluZywgZGlyPWRpcikKLQotICAg
IGRlZiBta3RlbXAoc2VsZiwgYmFzZW5hbWUsIG51bWJlcmVkPVRydWUpOgotICAgICAgICAiIiJD
cmVhdGUgYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIGJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSBhbmQg
cmV0dXJuIGl0LgotICAgICAgICBJZiBgYG51bWJlcmVkYGAsIGVuc3VyZSB0aGUgZGlyZWN0b3J5
IGlzIHVuaXF1ZSBieSBhZGRpbmcgYSBudW1iZXIKLSAgICAgICAgcHJlZml4IGdyZWF0ZXIgdGhh
biBhbnkgZXhpc3Rpbmcgb25lLgotICAgICAgICAiIiIKLSAgICAgICAgYmFzZXRlbXAgPSBzZWxm
LmdldGJhc2V0ZW1wKCkKLSAgICAgICAgaWYgbm90IG51bWJlcmVkOgotICAgICAgICAgICAgcCA9
IGJhc2V0ZW1wLm1rZGlyKGJhc2VuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcCA9
IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJlZF9kaXIocHJlZml4PWJhc2VuYW1lLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcD0wLCByb290ZGly
PWJhc2V0ZW1wLCBsb2NrX3RpbWVvdXQ9Tm9uZSkKLSAgICAgICAgc2VsZi50cmFjZSgibWt0ZW1w
IiwgcCkKLSAgICAgICAgcmV0dXJuIHAKLQotICAgIGRlZiBnZXRiYXNldGVtcChzZWxmKToKLSAg
ICAgICAgIiIiIHJldHVybiBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnkuICIiIgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZXRlbXAKLSAgICAgICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgYmFzZXRlbXAgPSBzZWxmLmNvbmZpZy5vcHRpb24u
YmFzZXRlbXAKLSAgICAgICAgICAgIGlmIGJhc2V0ZW1wOgotICAgICAgICAgICAgICAgIGJhc2V0
ZW1wID0gcHkucGF0aC5sb2NhbChiYXNldGVtcCkKLSAgICAgICAgICAgICAgICBpZiBiYXNldGVt
cC5jaGVjaygpOgotICAgICAgICAgICAgICAgICAgICBiYXNldGVtcC5yZW1vdmUoKQotICAgICAg
ICAgICAgICAgIGJhc2V0ZW1wLm1rZGlyKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgdGVtcHJvb3QgPSBweS5wYXRoLmxvY2FsLmdldF90ZW1wcm9vdCgpCi0gICAgICAgICAg
ICAgICAgdXNlciA9IGdldF91c2VyKCkKLSAgICAgICAgICAgICAgICBpZiB1c2VyOgotICAgICAg
ICAgICAgICAgICAgICAjIHVzZSBhIHN1Yi1kaXJlY3RvcnkgaW4gdGhlIHRlbXByb290IHRvIHNw
ZWVkLXVwCi0gICAgICAgICAgICAgICAgICAgICMgbWFrZV9udW1iZXJlZF9kaXIoKSBjYWxsCi0g
ICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSB0ZW1wcm9vdC5qb2luKCdweXRlc3Qtb2YtJXMn
ICUgdXNlcikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByb290
ZGlyID0gdGVtcHJvb3QKLSAgICAgICAgICAgICAgICByb290ZGlyLmVuc3VyZShkaXI9MSkKLSAg
ICAgICAgICAgICAgICBiYXNldGVtcCA9IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJlZF9kaXIo
cHJlZml4PSdweXRlc3QtJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcm9vdGRpcj1yb290ZGlyKQotICAgICAgICAgICAgc2VsZi5f
YmFzZXRlbXAgPSB0ID0gYmFzZXRlbXAucmVhbHBhdGgoKQotICAgICAgICAgICAgc2VsZi50cmFj
ZSgibmV3IGJhc2V0ZW1wIiwgdCkKLSAgICAgICAgICAgIHJldHVybiB0Ci0KLSAgICBkZWYgZmlu
aXNoKHNlbGYpOgotICAgICAgICBzZWxmLnRyYWNlKCJmaW5pc2giKQotCi0KLWRlZiBnZXRfdXNl
cigpOgotICAgICIiIlJldHVybiB0aGUgY3VycmVudCB1c2VyIG5hbWUsIG9yIE5vbmUgaWYgZ2V0
dXNlcigpIGRvZXMgbm90IHdvcmsKLSAgICBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCAoc2Vl
ICMxMDEwKS4KLSAgICAiIiIKLSAgICBpbXBvcnQgZ2V0cGFzcwotICAgIHRyeToKLSAgICAgICAg
cmV0dXJuIGdldHBhc3MuZ2V0dXNlcigpCi0gICAgZXhjZXB0IChJbXBvcnRFcnJvciwgS2V5RXJy
b3IpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0KLSMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQot
VGVtcGRpckhhbmRsZXIgPSBUZW1wZGlyRmFjdG9yeQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJl
KGNvbmZpZyk6Ci0gICAgIiIiQ3JlYXRlIGEgVGVtcGRpckZhY3RvcnkgYW5kIGF0dGFjaCBpdCB0
byB0aGUgY29uZmlnIG9iamVjdC4KLQotICAgIFRoaXMgaXMgdG8gY29tcGx5IHdpdGggZXhpc3Rp
bmcgcGx1Z2lucyB3aGljaCBleHBlY3QgdGhlIGhhbmRsZXIgdG8gYmUKLSAgICBhdmFpbGFibGUg
YXQgcHl0ZXN0X2NvbmZpZ3VyZSB0aW1lLCBidXQgaWRlYWxseSBzaG91bGQgYmUgbW92ZWQgZW50
aXJlbHkKLSAgICB0byB0aGUgdG1wZGlyX2ZhY3Rvcnkgc2Vzc2lvbiBmaXh0dXJlLgotICAgICIi
IgotICAgIG1wID0gTW9ua2V5UGF0Y2goKQotICAgIHQgPSBUZW1wZGlyRmFjdG9yeShjb25maWcp
Ci0gICAgY29uZmlnLl9jbGVhbnVwLmV4dGVuZChbbXAudW5kbywgdC5maW5pc2hdKQotICAgIG1w
LnNldGF0dHIoY29uZmlnLCAnX3RtcGRpcmhhbmRsZXInLCB0LCByYWlzaW5nPUZhbHNlKQotICAg
IG1wLnNldGF0dHIocHl0ZXN0LCAnZW5zdXJldGVtcCcsIHQuZW5zdXJldGVtcCwgcmFpc2luZz1G
YWxzZSkKLQotCi1AcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQotZGVmIHRtcGRpcl9m
YWN0b3J5KHJlcXVlc3QpOgotICAgICIiIlJldHVybiBhIFRlbXBkaXJGYWN0b3J5IGluc3RhbmNl
IGZvciB0aGUgdGVzdCBzZXNzaW9uLgotICAgICIiIgotICAgIHJldHVybiByZXF1ZXN0LmNvbmZp
Zy5fdG1wZGlyaGFuZGxlcgotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIHRtcGRpcihyZXF1ZXN0
LCB0bXBkaXJfZmFjdG9yeSk6Ci0gICAgIiIiUmV0dXJuIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBw
YXRoIG9iamVjdAotICAgIHdoaWNoIGlzIHVuaXF1ZSB0byBlYWNoIHRlc3QgZnVuY3Rpb24gaW52
b2NhdGlvbiwKLSAgICBjcmVhdGVkIGFzIGEgc3ViIGRpcmVjdG9yeSBvZiB0aGUgYmFzZSB0ZW1w
b3JhcnkKLSAgICBkaXJlY3RvcnkuICBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEgYHB5LnBhdGgu
bG9jYWxgXwotICAgIHBhdGggb2JqZWN0LgotICAgICIiIgotICAgIG5hbWUgPSByZXF1ZXN0Lm5v
ZGUubmFtZQotICAgIG5hbWUgPSByZS5zdWIociJbXFddIiwgIl8iLCBuYW1lKQotICAgIE1BWFZB
TCA9IDMwCi0gICAgaWYgbGVuKG5hbWUpID4gTUFYVkFMOgotICAgICAgICBuYW1lID0gbmFtZVs6
TUFYVkFMXQotICAgIHggPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1
ZSkKLSAgICByZXR1cm4geApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC91bml0dGVz
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNkZGIzOTQ5NWUzOTcwMzQ0YjRhNmQ4ZjkyYTg2ODA4N2I1ZmVmMjkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIzNyArMCwwIEBACi0iIiIg
ZGlzY292ZXJ5IGFuZCBydW5uaW5nIG9mIHN0ZC1saWJyYXJ5ICJ1bml0dGVzdCIgc3R5bGUgdGVz
dHMuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgc3lzCi1pbXBvcnQgdHJhY2ViYWNrCi0KLSMgZm9y
IHRyYW5zZmVycmluZyBtYXJrZXJzCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotZnJvbSBfcHl0ZXN0
LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFp
bCwgc2tpcCwgeGZhaWwKLWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IHRyYW5zZmVyX21hcmtl
cnMsIENsYXNzLCBNb2R1bGUsIEZ1bmN0aW9uCi0KLQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFr
ZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgotICAgICMgaGFzIHVuaXR0ZXN0IGJlZW4gaW1w
b3J0ZWQgYW5kIGlzIG9iaiBhIHN1YmNsYXNzIG9mIGl0cyBUZXN0Q2FzZT8KLSAgICB0cnk6Ci0g
ICAgICAgIGlmIG5vdCBpc3N1YmNsYXNzKG9iaiwgc3lzLm1vZHVsZXNbInVuaXR0ZXN0Il0uVGVz
dENhc2UpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgcmV0dXJuCi0gICAgIyB5ZXMsIHNvIGxldCdzIGNvbGxlY3QgaXQKLSAgICByZXR1cm4gVW5p
dFRlc3RDYXNlKG5hbWUsIHBhcmVudD1jb2xsZWN0b3IpCi0KLQotY2xhc3MgVW5pdFRlc3RDYXNl
KENsYXNzKToKLSAgICAjIG1hcmtlciBmb3IgZml4dHVyZW1hbmdlci5nZXRmaXh0dXJlaW5mbygp
Ci0gICAgIyB0byBkZWNsYXJlIHRoYXQgb3VyIGNoaWxkcmVuIGRvIG5vdCBzdXBwb3J0IGZ1bmNh
cmdzCi0gICAgbm9mdW5jYXJncyA9IFRydWUKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAg
ICAgY2xzID0gc2VsZi5vYmoKLSAgICAgICAgaWYgZ2V0YXR0cihjbHMsICdfX3VuaXR0ZXN0X3Nr
aXBfXycsIEZhbHNlKToKLSAgICAgICAgICAgIHJldHVybiAgIyBza2lwcGVkCi0gICAgICAgIHNl
dHVwID0gZ2V0YXR0cihjbHMsICdzZXRVcENsYXNzJywgTm9uZSkKLSAgICAgICAgaWYgc2V0dXAg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXR1cCgpCi0gICAgICAgIHRlYXJkb3duID0gZ2V0
YXR0cihjbHMsICd0ZWFyRG93bkNsYXNzJywgTm9uZSkKLSAgICAgICAgaWYgdGVhcmRvd24gaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93bikKLSAgICAg
ICAgc3VwZXIoVW5pdFRlc3RDYXNlLCBzZWxmKS5zZXR1cCgpCi0KLSAgICBkZWYgY29sbGVjdChz
ZWxmKToKLSAgICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdExvYWRlcgotICAgICAgICBj
bHMgPSBzZWxmLm9iagotICAgICAgICBpZiBub3QgZ2V0YXR0cihjbHMsICJfX3Rlc3RfXyIsIFRy
dWUpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1h
bmFnZXIucGFyc2VmYWN0b3JpZXMoc2VsZiwgdW5pdHRlc3Q9VHJ1ZSkKLSAgICAgICAgbG9hZGVy
ID0gVGVzdExvYWRlcigpCi0gICAgICAgIG1vZHVsZSA9IHNlbGYuZ2V0cGFyZW50KE1vZHVsZSku
b2JqCi0gICAgICAgIGZvdW5kc29tZXRoaW5nID0gRmFsc2UKLSAgICAgICAgZm9yIG5hbWUgaW4g
bG9hZGVyLmdldFRlc3RDYXNlTmFtZXMoc2VsZi5vYmopOgotICAgICAgICAgICAgeCA9IGdldGF0
dHIoc2VsZi5vYmosIG5hbWUpCi0gICAgICAgICAgICBpZiBub3QgZ2V0YXR0cih4LCAnX190ZXN0
X18nLCBUcnVlKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZnVuY29i
aiA9IGdldGF0dHIoeCwgJ2ltX2Z1bmMnLCB4KQotICAgICAgICAgICAgdHJhbnNmZXJfbWFya2Vy
cyhmdW5jb2JqLCBjbHMsIG1vZHVsZSkKLSAgICAgICAgICAgIHlpZWxkIFRlc3RDYXNlRnVuY3Rp
b24obmFtZSwgcGFyZW50PXNlbGYpCi0gICAgICAgICAgICBmb3VuZHNvbWV0aGluZyA9IFRydWUK
LQotICAgICAgICBpZiBub3QgZm91bmRzb21ldGhpbmc6Ci0gICAgICAgICAgICBydW50ZXN0ID0g
Z2V0YXR0cihzZWxmLm9iaiwgJ3J1blRlc3QnLCBOb25lKQotICAgICAgICAgICAgaWYgcnVudGVz
dCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB1dCA9IHN5cy5tb2R1bGVzLmdldCgidHdp
c3RlZC50cmlhbC51bml0dGVzdCIsIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgdXQgaXMgTm9u
ZSBvciBydW50ZXN0ICE9IHV0LlRlc3RDYXNlLnJ1blRlc3Q6Ci0gICAgICAgICAgICAgICAgICAg
IHlpZWxkIFRlc3RDYXNlRnVuY3Rpb24oJ3J1blRlc3QnLCBwYXJlbnQ9c2VsZikKLQotCi1jbGFz
cyBUZXN0Q2FzZUZ1bmN0aW9uKEZ1bmN0aW9uKToKLSAgICBfZXhjaW5mbyA9IE5vbmUKLQotICAg
IGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2VsZi5fdGVzdGNhc2UgPSBzZWxmLnBhcmVudC5v
Ymooc2VsZi5uYW1lKQotICAgICAgICBzZWxmLl9maXhfdW5pdHRlc3Rfc2tpcF9kZWNvcmF0b3Io
KQotICAgICAgICBzZWxmLl9vYmogPSBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCBzZWxmLm5hbWUp
Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fdGVzdGNhc2UsICdzZXR1cF9tZXRob2QnKToKLSAg
ICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlLnNldHVwX21ldGhvZChzZWxmLl9vYmopCi0gICAgICAg
IGlmIGhhc2F0dHIoc2VsZiwgIl9yZXF1ZXN0Iik6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
Ll9maWxsZml4dHVyZXMoKQotCi0gICAgZGVmIF9maXhfdW5pdHRlc3Rfc2tpcF9kZWNvcmF0b3Io
c2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGUgQHVuaXR0ZXN0LnNraXAgZGVjb3JhdG9y
IGNhbGxzIGZ1bmN0b29scy53cmFwcyhzZWxmLl90ZXN0Y2FzZSkKLSAgICAgICAgVGhlIGNhbGwg
dG8gZnVuY3Rvb2xzLndyYXBzKCkgZmFpbHMgdW5sZXNzIHNlbGYuX3Rlc3RjYXNlCi0gICAgICAg
IGhhcyBhIF9fbmFtZV9fIGF0dHJpYnV0ZS4gVGhpcyBpcyB1c3VhbGx5IGF1dG9tYXRpY2FsbHkg
c3VwcGxpZWQKLSAgICAgICAgaWYgdGhlIHRlc3QgaXMgYSBmdW5jdGlvbiBvciBtZXRob2QsIGJ1
dCB3ZSBuZWVkIHRvIGFkZCBtYW51YWxseQotICAgICAgICBoZXJlLgotCi0gICAgICAgIFNlZSBp
c3N1ZSAjMTE2OQotICAgICAgICAiIiIKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9
PSAyOgotICAgICAgICAgICAgc2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgIl9fbmFtZV9fIiwgc2Vs
Zi5uYW1lKQotCi0gICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNl
bGYuX3Rlc3RjYXNlLCAndGVhcmRvd25fbWV0aG9kJyk6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0
Y2FzZS50ZWFyZG93bl9tZXRob2Qoc2VsZi5fb2JqKQotICAgICAgICAjIEFsbG93IGdhcmJhZ2Ug
Y29sbGVjdGlvbiBvbiBUZXN0Q2FzZSBpbnN0YW5jZSBhdHRyaWJ1dGVzLgotICAgICAgICBzZWxm
Ll90ZXN0Y2FzZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fb2JqID0gTm9uZQotCi0gICAgZGVmIHN0
YXJ0VGVzdChzZWxmLCB0ZXN0Y2FzZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBfYWRkZXhj
aW5mbyhzZWxmLCByYXdleGNpbmZvKToKLSAgICAgICAgIyB1bndyYXAgcG90ZW50aWFsIGV4Y2Vw
dGlvbiBpbmZvIChzZWUgdHdpc3RlZCB0cmlhbCBzdXBwb3J0IGJlbG93KQotICAgICAgICByYXdl
eGNpbmZvID0gZ2V0YXR0cihyYXdleGNpbmZvLCAnX3Jhd2V4Y2luZm8nLCByYXdleGNpbmZvKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvKHJhd2V4Y2luZm8pCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMg
PSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigqcmF3ZXhjaW5mbykKLSAgICAgICAgICAgICAg
ICAgICAgdmFsdWVzLmluc2VydCgwLCAiTk9URTogSW5jb21wYXRpYmxlIEV4Y2VwdGlvbiBSZXBy
ZXNlbnRhdGlvbiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNwbGF5
aW5nIG5hdGl2ZWx5OlxuXG4iKQotICAgICAgICAgICAgICAgICAgICBmYWlsKCIiLmpvaW4odmFs
dWVzKSwgcHl0cmFjZT1GYWxzZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgKGZhaWwuRXhjZXB0
aW9uLCBLZXlib2FyZEludGVycnVwdCk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAg
ICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkVS
Uk9SOiBVbmtub3duIEluY29tcGF0aWJsZSBFeGNlcHRpb24gIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZXByZXNlbnRhdGlvbjpcbiVyIiAlIChyYXdleGNpbmZvLCksIHB5dHJhY2U9RmFs
c2UpCi0gICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UKLSAgICAgICAgICAgIGV4Y2VwdCBmYWlsLkV4Y2VwdGlvbjoKLSAgICAgICAgICAg
ICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAgICAgc2Vs
Zi5fX2RpY3RfXy5zZXRkZWZhdWx0KCdfZXhjaW5mbycsIFtdKS5hcHBlbmQoZXhjaW5mbykKLQot
ICAgIGRlZiBhZGRFcnJvcihzZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbyk6Ci0gICAgICAgIHNl
bGYuX2FkZGV4Y2luZm8ocmF3ZXhjaW5mbykKLQotICAgIGRlZiBhZGRGYWlsdXJlKHNlbGYsIHRl
c3RjYXNlLCByYXdleGNpbmZvKToKLSAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhyYXdleGNpbmZv
KQotCi0gICAgZGVmIGFkZFNraXAoc2VsZiwgdGVzdGNhc2UsIHJlYXNvbik6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHNraXAocmVhc29uKQotICAgICAgICBleGNlcHQgc2tpcC5FeGNlcHRp
b246Ci0gICAgICAgICAgICBzZWxmLl9za2lwcGVkX2J5X21hcmsgPSBUcnVlCi0gICAgICAgICAg
ICBzZWxmLl9hZGRleGNpbmZvKHN5cy5leGNfaW5mbygpKQotCi0gICAgZGVmIGFkZEV4cGVjdGVk
RmFpbHVyZShzZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbywgcmVhc29uPSIiKToKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgeGZhaWwoc3RyKHJlYXNvbikpCi0gICAgICAgIGV4Y2VwdCB4ZmFp
bC5FeGNlcHRpb246Ci0gICAgICAgICAgICBzZWxmLl9hZGRleGNpbmZvKHN5cy5leGNfaW5mbygp
KQotCi0gICAgZGVmIGFkZFVuZXhwZWN0ZWRTdWNjZXNzKHNlbGYsIHRlc3RjYXNlLCByZWFzb249
IiIpOgotICAgICAgICBzZWxmLl91bmV4cGVjdGVkc3VjY2VzcyA9IHJlYXNvbgotCi0gICAgZGVm
IGFkZFN1Y2Nlc3Moc2VsZiwgdGVzdGNhc2UpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc3Rv
cFRlc3Qoc2VsZiwgdGVzdGNhc2UpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgX2hhbmRsZV9z
a2lwKHNlbGYpOgotICAgICAgICAjIGltcGxlbWVudHMgdGhlIHNraXBwaW5nIG1hY2hpbmVyeSAo
c2VlICMyMTM3KQotICAgICAgICAjIGFuYWxvZyB0byBweXRob25zIExpYi91bml0dGVzdC9jYXNl
LnB5OnJ1bgotICAgICAgICB0ZXN0TWV0aG9kID0gZ2V0YXR0cihzZWxmLl90ZXN0Y2FzZSwgc2Vs
Zi5fdGVzdGNhc2UuX3Rlc3RNZXRob2ROYW1lKQotICAgICAgICBpZiAoZ2V0YXR0cihzZWxmLl90
ZXN0Y2FzZS5fX2NsYXNzX18sICJfX3VuaXR0ZXN0X3NraXBfXyIsIEZhbHNlKSBvcgotICAgICAg
ICAgICAgICAgIGdldGF0dHIodGVzdE1ldGhvZCwgIl9fdW5pdHRlc3Rfc2tpcF9fIiwgRmFsc2Up
KToKLSAgICAgICAgICAgICMgSWYgdGhlIGNsYXNzIG9yIG1ldGhvZCB3YXMgc2tpcHBlZC4KLSAg
ICAgICAgICAgIHNraXBfd2h5ID0gKGdldGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAn
X191bml0dGVzdF9za2lwX3doeV9fJywgJycpIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICBn
ZXRhdHRyKHRlc3RNZXRob2QsICdfX3VuaXR0ZXN0X3NraXBfd2h5X18nLCAnJykpCi0gICAgICAg
ICAgICB0cnk6ICAjIFBZMywgdW5pdHRlc3QyIG9uIFBZMgotICAgICAgICAgICAgICAgIHNlbGYu
X3Rlc3RjYXNlLl9hZGRTa2lwKHNlbGYsIHNlbGYuX3Rlc3RjYXNlLCBza2lwX3doeSkKLSAgICAg
ICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6ICAjIFBZMgotICAgICAgICAgICAgICAgIGlmIHN5cy52
ZXJzaW9uX2luZm9bMF0gIT0gMjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAg
ICAgICAgICBzZWxmLl90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBza2lwX3doeSkKLSAgICAgICAg
ICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIHJ1bnRlc3Qo
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigi
cGRiaW52b2tlIikgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlKHJlc3VsdD1z
ZWxmKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBkaXNhYmxlcyB0ZWFyRG93biBhbmQg
Y2xlYW51cHMgZm9yIHBvc3QgbW9ydGVtIGRlYnVnZ2luZyAoc2VlICMxODkwKQotICAgICAgICAg
ICAgaWYgc2VsZi5faGFuZGxlX3NraXAoKToKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgICAgIHNlbGYuX3Rlc3RjYXNlLmRlYnVnKCkKLQotICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2so
c2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIEZ1bmN0aW9uLl9wcnVuZXRyYWNlYmFjayhzZWxmLCBl
eGNpbmZvKQotICAgICAgICB0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoCi0g
ICAgICAgICAgICBsYW1iZGEgeDogbm90IHguZnJhbWUuZl9nbG9iYWxzLmdldCgnX191bml0dGVz
dCcpKQotICAgICAgICBpZiB0cmFjZWJhY2s6Ci0gICAgICAgICAgICBleGNpbmZvLnRyYWNlYmFj
ayA9IHRyYWNlYmFjawotCi0KLUBob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVzdF9y
dW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6Ci0gICAgaWYgaXNpbnN0YW5jZShpdGVtLCBU
ZXN0Q2FzZUZ1bmN0aW9uKToKLSAgICAgICAgaWYgaXRlbS5fZXhjaW5mbzoKLSAgICAgICAgICAg
IGNhbGwuZXhjaW5mbyA9IGl0ZW0uX2V4Y2luZm8ucG9wKDApCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgZGVsIGNhbGwucmVzdWx0Ci0gICAgICAgICAgICBleGNlcHQgQXR0cmli
dXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0jIHR3aXN0ZWQgdHJpYWwgc3VwcG9y
dAotCi0KLUBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X3By
b3RvY29sKGl0ZW0pOgotICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgVGVzdENhc2VGdW5jdGlvbikg
YW5kIFwKLSAgICAgICAndHdpc3RlZC50cmlhbC51bml0dGVzdCcgaW4gc3lzLm1vZHVsZXM6Ci0g
ICAgICAgIHV0ID0gc3lzLm1vZHVsZXNbJ3R3aXN0ZWQucHl0aG9uLmZhaWx1cmUnXQotICAgICAg
ICBGYWlsdXJlX19pbml0X18gPSB1dC5GYWlsdXJlLl9faW5pdF9fCi0gICAgICAgIGNoZWNrX3Rl
c3RjYXNlX2ltcGxlbWVudHNfdHJpYWxfcmVwb3J0ZXIoKQotCi0gICAgICAgIGRlZiBleGNzdG9y
ZShzZWxmLCBleGNfdmFsdWU9Tm9uZSwgZXhjX3R5cGU9Tm9uZSwgZXhjX3RiPU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgICBjYXB0dXJlVmFycz1Ob25lKToKLSAgICAgICAgICAgIGlmIGV4Y192
YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX3Jhd2V4Y2luZm8gPSBzeXMuZXhj
X2luZm8oKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBleGNfdHlwZSBp
cyBOb25lOgotICAgICAgICAgICAgICAgICAgICBleGNfdHlwZSA9IHR5cGUoZXhjX3ZhbHVlKQot
ICAgICAgICAgICAgICAgIHNlbGYuX3Jhd2V4Y2luZm8gPSAoZXhjX3R5cGUsIGV4Y192YWx1ZSwg
ZXhjX3RiKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIEZhaWx1cmVfX2luaXRf
XyhzZWxmLCBleGNfdmFsdWUsIGV4Y190eXBlLCBleGNfdGIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhcHR1cmVWYXJzPWNhcHR1cmVWYXJzKQotICAgICAgICAgICAgZXhjZXB0
IFR5cGVFcnJvcjoKLSAgICAgICAgICAgICAgICBGYWlsdXJlX19pbml0X18oc2VsZiwgZXhjX3Zh
bHVlLCBleGNfdHlwZSwgZXhjX3RiKQotCi0gICAgICAgIHV0LkZhaWx1cmUuX19pbml0X18gPSBl
eGNzdG9yZQotICAgICAgICB5aWVsZAotICAgICAgICB1dC5GYWlsdXJlLl9faW5pdF9fID0gRmFp
bHVyZV9faW5pdF9fCi0gICAgZWxzZToKLSAgICAgICAgeWllbGQKLQotCi1kZWYgY2hlY2tfdGVz
dGNhc2VfaW1wbGVtZW50c190cmlhbF9yZXBvcnRlcihkb25lPVtdKToKLSAgICBpZiBkb25lOgot
ICAgICAgICByZXR1cm4KLSAgICBmcm9tIHpvcGUuaW50ZXJmYWNlIGltcG9ydCBjbGFzc0ltcGxl
bWVudHMKLSAgICBmcm9tIHR3aXN0ZWQudHJpYWwuaXRyaWFsIGltcG9ydCBJUmVwb3J0ZXIKLSAg
ICBjbGFzc0ltcGxlbWVudHMoVGVzdENhc2VGdW5jdGlvbiwgSVJlcG9ydGVyKQotICAgIGRvbmUu
YXBwZW5kKDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODgwZWZjMGM5MTBmZDA3NjJlZjYwMTNmNDhlZmQzMzQ2M2Y0Mzk4ZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvX2FyZ2NvbXBsZXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYXB0dXJlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9j
b21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvZGVidWdnaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVkLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9kb2N0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0
dXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVj
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9qdW5pdHhtbC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvbG9nZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvbWFyay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub3NlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21lcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
cGFzdGViaW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9weXRob24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9hcGkucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Jl
c3VsdGxvZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9zZXR1cG9ubHkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwcGxhbi5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Rl
cm1pbmFsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3VuaXR0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3Qvd2FybmluZ3MucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMmIxOTE0
ZmI2OTE2NGIzODBmMWY1Mjk0ZjU3NDllZDNlNDkyOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weQor
KysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHdhcm5pbmdz
Ci1mcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCi0KLWltcG9ydCBweXRlc3QK
LQotZnJvbSBfcHl0ZXN0IGltcG9ydCBjb21wYXQKLQotCi1kZWYgX3NldG9wdGlvbih3bW9kLCBh
cmcpOgotICAgICIiIgotICAgIENvcHkgb2YgdGhlIHdhcm5pbmcuX3NldG9wdGlvbiBmdW5jdGlv
biBidXQgZG9lcyBub3QgZXNjYXBlIGFyZ3VtZW50cy4KLSAgICAiIiIKLSAgICBwYXJ0cyA9IGFy
Zy5zcGxpdCgnOicpCi0gICAgaWYgbGVuKHBhcnRzKSA+IDU6Ci0gICAgICAgIHJhaXNlIHdtb2Qu
X09wdGlvbkVycm9yKCJ0b28gbWFueSBmaWVsZHMgKG1heCA1KTogJXIiICUgKGFyZywpKQotICAg
IHdoaWxlIGxlbihwYXJ0cykgPCA1OgotICAgICAgICBwYXJ0cy5hcHBlbmQoJycpCi0gICAgYWN0
aW9uLCBtZXNzYWdlLCBjYXRlZ29yeSwgbW9kdWxlLCBsaW5lbm8gPSBbcy5zdHJpcCgpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHMgaW4gcGFy
dHNdCi0gICAgYWN0aW9uID0gd21vZC5fZ2V0YWN0aW9uKGFjdGlvbikKLSAgICBjYXRlZ29yeSA9
IHdtb2QuX2dldGNhdGVnb3J5KGNhdGVnb3J5KQotICAgIGlmIGxpbmVubzoKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgbGluZW5vID0gaW50KGxpbmVubykKLSAgICAgICAgICAgIGlmIGxpbmVu
byA8IDA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgotICAgICAgICBleGNlcHQg
KFZhbHVlRXJyb3IsIE92ZXJmbG93RXJyb3IpOgotICAgICAgICAgICAgcmFpc2Ugd21vZC5fT3B0
aW9uRXJyb3IoImludmFsaWQgbGluZW5vICVyIiAlIChsaW5lbm8sKSkKLSAgICBlbHNlOgotICAg
ICAgICBsaW5lbm8gPSAwCi0gICAgd21vZC5maWx0ZXJ3YXJuaW5ncyhhY3Rpb24sIG1lc3NhZ2Us
IGNhdGVnb3J5LCBtb2R1bGUsIGxpbmVubykKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJz
ZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJweXRlc3Qtd2FybmluZ3MiKQotICAg
IGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy1XJywgJy0tcHl0aG9ud2FybmluZ3MnLCBhY3Rp
b249J2FwcGVuZCcsCi0gICAgICAgIGhlbHA9InNldCB3aGljaCB3YXJuaW5ncyB0byByZXBvcnQs
IHNlZSAtVyBvcHRpb24gb2YgcHl0aG9uIGl0c2VsZi4iKQotICAgIHBhcnNlci5hZGRpbmkoImZp
bHRlcndhcm5pbmdzIiwgdHlwZT0ibGluZWxpc3QiLAotICAgICAgICAgICAgICAgICAgaGVscD0i
RWFjaCBsaW5lIHNwZWNpZmllcyBhIHBhdHRlcm4gZm9yICIKLSAgICAgICAgICAgICAgICAgICJ3
YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncy4gIgotICAgICAgICAgICAgICAgICAgIlByb2Nlc3NlZCBh
ZnRlciAtVyBhbmQgLS1weXRob253YXJuaW5ncy4iKQotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVm
IGNhdGNoX3dhcm5pbmdzX2Zvcl9pdGVtKGl0ZW0pOgotICAgICIiIgotICAgIGNhdGNoZXMgdGhl
IHdhcm5pbmdzIGdlbmVyYXRlZCBkdXJpbmcgc2V0dXAvY2FsbC90ZWFyZG93biBleGVjdXRpb24K
LSAgICBvZiB0aGUgZ2l2ZW4gaXRlbSBhbmQgYWZ0ZXIgaXQgaXMgZG9uZSBwb3N0cyB0aGVtIGFz
IHdhcm5pbmdzIHRvIHRoaXMKLSAgICBpdGVtLgotICAgICIiIgotICAgIGFyZ3MgPSBpdGVtLmNv
bmZpZy5nZXRvcHRpb24oJ3B5dGhvbndhcm5pbmdzJykgb3IgW10KLSAgICBpbmlmaWx0ZXJzID0g
aXRlbS5jb25maWcuZ2V0aW5pKCJmaWx0ZXJ3YXJuaW5ncyIpCi0gICAgd2l0aCB3YXJuaW5ncy5j
YXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgbG9nOgotICAgICAgICBmb3IgYXJnIGluIGFy
Z3M6Ci0gICAgICAgICAgICB3YXJuaW5ncy5fc2V0b3B0aW9uKGFyZykKLQotICAgICAgICBmb3Ig
YXJnIGluIGluaWZpbHRlcnM6Ci0gICAgICAgICAgICBfc2V0b3B0aW9uKHdhcm5pbmdzLCBhcmcp
Ci0KLSAgICAgICAgbWFyayA9IGl0ZW0uZ2V0X21hcmtlcignZmlsdGVyd2FybmluZ3MnKQotICAg
ICAgICBpZiBtYXJrOgotICAgICAgICAgICAgZm9yIGFyZyBpbiBtYXJrLmFyZ3M6Ci0gICAgICAg
ICAgICAgICAgd2FybmluZ3MuX3NldG9wdGlvbihhcmcpCi0KLSAgICAgICAgeWllbGQKLQotICAg
ICAgICBmb3Igd2FybmluZyBpbiBsb2c6Ci0gICAgICAgICAgICB3YXJuX21zZyA9IHdhcm5pbmcu
bWVzc2FnZQotICAgICAgICAgICAgdW5pY29kZV93YXJuaW5nID0gRmFsc2UKLQotICAgICAgICAg
ICAgaWYgY29tcGF0Ll9QWTIgYW5kIGFueShpc2luc3RhbmNlKG0sIGNvbXBhdC5VTklDT0RFX1RZ
UEVTKSBmb3IgbSBpbiB3YXJuX21zZy5hcmdzKToKLSAgICAgICAgICAgICAgICBuZXdfYXJncyA9
IFtdCi0gICAgICAgICAgICAgICAgZm9yIG0gaW4gd2Fybl9tc2cuYXJnczoKLSAgICAgICAgICAg
ICAgICAgICAgbmV3X2FyZ3MuYXBwZW5kKGNvbXBhdC5hc2NpaV9lc2NhcGVkKG0pIGlmIGlzaW5z
dGFuY2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMpIGVsc2UgbSkKLSAgICAgICAgICAgICAgICB1
bmljb2RlX3dhcm5pbmcgPSBsaXN0KHdhcm5fbXNnLmFyZ3MpICE9IG5ld19hcmdzCi0gICAgICAg
ICAgICAgICAgd2Fybl9tc2cuYXJncyA9IG5ld19hcmdzCi0KLSAgICAgICAgICAgIG1zZyA9IHdh
cm5pbmdzLmZvcm1hdHdhcm5pbmcoCi0gICAgICAgICAgICAgICAgd2Fybl9tc2csIHdhcm5pbmcu
Y2F0ZWdvcnksCi0gICAgICAgICAgICAgICAgd2FybmluZy5maWxlbmFtZSwgd2FybmluZy5saW5l
bm8sIHdhcm5pbmcubGluZSkKLSAgICAgICAgICAgIGl0ZW0ud2FybigidW51c2VkIiwgbXNnKQot
Ci0gICAgICAgICAgICBpZiB1bmljb2RlX3dhcm5pbmc6Ci0gICAgICAgICAgICAgICAgd2Fybmlu
Z3Mud2FybigKLSAgICAgICAgICAgICAgICAgICAgIldhcm5pbmcgaXMgdXNpbmcgdW5pY29kZSBu
b24gY29udmVydGlibGUgdG8gYXNjaWksICIKLSAgICAgICAgICAgICAgICAgICAgImNvbnZlcnRp
bmcgdG8gYSBzYWZlIHJlcHJlc2VudGF0aW9uOlxuICAlcyIgJSBtc2csCi0gICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVXYXJuaW5nKQotCi0KLUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKLWRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtKToKLSAgICB3aXRoIGNhdGNo
X3dhcm5pbmdzX2Zvcl9pdGVtKGl0ZW0pOgotICAgICAgICB5aWVsZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvYmVuY2gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc3MjdhNzc3NDNhYjIyM2Nl
ZGYxZGFhY2E5YjU1OWNiNjhiZDhhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2hfYXJnY29tcGxldGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC9lbXB0eS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL21hbnlwYXJhbS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2JlbmNoL3NraXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM5OTE2YWE1ZWUwOTc1ZTQ5ZDZlOWE2YThkYzA2OWNk
NmQ5YTgxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
OCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvUkVBRE1FLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGVtcGxhdGVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
ZTg0YjIzZjI1MDdlMDY3N2FlNmY3YjZkMGUwODIwMjg5NTE1ZjRiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxh
dGVzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvZ2xvYmFsdG9jLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9sYXlvdXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGVtcGxhdGVzL2xpbmtzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9yZWxh
dGlvbnMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3NpZGViYXJpbnRyby5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvc2xpbV9zZWFyY2hib3guaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvTElDRU5TRSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9fdGhlbWVzL0xJQ0VOU0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhkYWFiN2VlNmVmZTNiNmYzYzJhMjU5NGI3MTFlN2E5MDI2ZWI1ZTIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVt
ZXMvTElDRU5TRQorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLUNvcHlyaWdodCAoYykg
MjAxMCBieSBBcm1pbiBSb25hY2hlci4KLQotU29tZSByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMgb2YgdGhlIHRoZW1l
LCB3aXRoIG9yCi13aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotYXJlIG1ldDoKLQotKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0KLSogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZwotICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQKLSAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0qIFRoZSBu
YW1lcyBvZiB0aGUgY29udHJpYnV0b3JzIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yCi0g
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYwotICBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVdlIGtpbmRseSBhc2sgeW91IHRv
IG9ubHkgdXNlIHRoZXNlIHRoZW1lcyBpbiBhbiB1bm1vZGlmaWVkIG1hbm5lciBqdXN0Ci1mb3Ig
Rmxhc2sgYW5kIEZsYXNrLXJlbGF0ZWQgcHJvZHVjdHMsIG5vdCBmb3IgdW5yZWxhdGVkIHByb2pl
Y3RzLiAgSWYgeW91Ci1saWtlIHRoZSB2aXN1YWwgc3R5bGUgYW5kIHdhbnQgdG8gdXNlIGl0IGZv
ciB5b3VyIG93biBwcm9qZWN0cywgcGxlYXNlCi1jb25zaWRlciBtYWtpbmcgc29tZSBsYXJnZXIg
Y2hhbmdlcyB0byB0aGUgdGhlbWVzIChzdWNoIGFzIGNoYW5naW5nCi1mb250IGZhY2VzLCBzaXpl
cywgY29sb3JzIG9yIG1hcmdpbnMpLgotCi1USElTIFRIRU1FIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgVEhFTUUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190
aGVtZXMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzI5MmJkZmY4ZWQ1
NDI5ZWVkZDdmNDA5ODM5OTc5ZDQwOGJlYjZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL1JFQURNRQorKysg
L2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLUZsYXNrIFNwaGlueCBTdHlsZXMKLT09PT09PT09
PT09PT09PT09PT0KLQotVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIHNwaGlueCBzdHlsZXMgZm9y
IEZsYXNrIGFuZCBGbGFzayByZWxhdGVkCi1wcm9qZWN0cy4gIFRvIHVzZSB0aGlzIHN0eWxlIGlu
IHlvdXIgU3BoaW54IGRvY3VtZW50YXRpb24sIGZvbGxvdwotdGhpcyBndWlkZToKLQotMS4gcHV0
IHRoaXMgZm9sZGVyIGFzIF90aGVtZXMgaW50byB5b3VyIGRvY3MgZm9sZGVyLiAgQWx0ZXJuYXRp
dmVseQotICAgeW91IGNhbiBhbHNvIHVzZSBnaXQgc3VibW9kdWxlcyB0byBjaGVjayBvdXQgdGhl
IGNvbnRlbnRzIHRoZXJlLgotMi4gYWRkIHRoaXMgdG8geW91ciBjb25mLnB5OgotCi0gICBzeXMu
cGF0aC5hcHBlbmQob3MucGF0aC5hYnNwYXRoKCdfdGhlbWVzJykpCi0gICBodG1sX3RoZW1lX3Bh
dGggPSBbJ190aGVtZXMnXQotICAgaHRtbF90aGVtZSA9ICdmbGFzaycKLQotVGhlIGZvbGxvd2lu
ZyB0aGVtZXMgZXhpc3Q6Ci0KLS0gJ2ZsYXNrJyAtIHRoZSBzdGFuZGFyZCBmbGFzayBkb2N1bWVu
dGF0aW9uIHRoZW1lIGZvciBsYXJnZQotICBwcm9qZWN0cwotLSAnZmxhc2tfc21hbGwnIC0gc21h
bGwgb25lLXBhZ2UgdGhlbWUuICBJbnRlbmRlZCB0byBiZSB1c2VkIGJ5Ci0gIHZlcnkgc21hbGwg
YWRkb24gbGlicmFyaWVzIGZvciBmbGFzay4KLQotVGhlIGZvbGxvd2luZyBvcHRpb25zIGV4aXN0
IGZvciB0aGUgZmxhc2tfc21hbGwgdGhlbWU6Ci0KLSAgIFtvcHRpb25zXQotICAgaW5kZXhfbG9n
byA9ICcnICAgICAgICAgICAgICBmaWxlbmFtZSBvZiBhIHBpY3R1cmUgaW4gX3N0YXRpYwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBiZSB1c2VkIGFzIHJlcGxhY2VtZW50IGZv
ciB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaDEgaW4gdGhlIGluZGV4LnJz
dCBmaWxlLgotICAgaW5kZXhfbG9nb19oZWlnaHQgPSAxMjBweCAgICBoZWlnaHQgb2YgdGhlIGlu
ZGV4IGxvZ28KLSAgIGdpdGh1Yl9mb3JrID0gJycgICAgICAgICAgICAgcmVwb3NpdG9yeSBuYW1l
IG9uIGdpdGh1YiBmb3IgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3Jr
IG1lIiBiYWRnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2sv
bGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9sYXlvdXQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTljNDNmYmJlZmMxZjkzNWRkNGU5OTNl
NTdlZjBkZWE2MDRiOTQ1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9sYXlvdXQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXslLSBleHRlbmRzICJiYXNpYy9sYXlvdXQuaHRt
bCIgJX0KLXslLSBibG9jayBleHRyYWhlYWQgJX0KLSAge3sgc3VwZXIoKSB9fQotICB7JSBpZiB0
aGVtZV90b3VjaF9pY29uICV9Ci0gIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0i
e3sgcGF0aHRvKCdfc3RhdGljLycgfiB0aGVtZV90b3VjaF9pY29uLCAxKSB9fSIgLz4KLSAgeyUg
ZW5kaWYgJX0KLSAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0wLjksIG1heGltdW0tc2NhbGU9MC45Ij4KLXslIGVuZGJsb2Nr
ICV9Ci17JS0gYmxvY2sgcmVsYmFyMiAlfXslIGVuZGJsb2NrICV9Ci17JSBibG9jayBoZWFkZXIg
JX0KLSAge3sgc3VwZXIoKSB9fQotICB7JSBpZiBwYWdlbmFtZSA9PSAnaW5kZXgnICV9Ci0gIDxk
aXYgY2xhc3M9aW5kZXh3cmFwcGVyPgotICB7JSBlbmRpZiAlfQoteyUgZW5kYmxvY2sgJX0KLXsl
LSBibG9jayBmb290ZXIgJX0KLSAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KLSAgICAmY29weTsgQ29w
eXJpZ2h0IHt7IGNvcHlyaWdodCB9fS4KLSAgICBDcmVhdGVkIHVzaW5nIDxhIGhyZWY9Imh0dHA6
Ly9zcGhpbngucG9jb28ub3JnLyI+U3BoaW54PC9hPi4KLSAgPC9kaXY+Ci0gIHslIGlmIHBhZ2Vu
YW1lID09ICdpbmRleCcgJX0KLSAgPC9kaXY+Ci0gIHslIGVuZGlmICV9Ci17JS0gZW5kYmxvY2sg
JX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3JlbGF0aW9u
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiYmNkZTg1YmI0OGQzZjhiZGZkMDY2MTA0
ZDhmMmVhZTU4NGU3MmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08aDM+UmVsYXRlZCBUb3BpY3M8L2gzPgotPHVs
PgotICA8bGk+PGEgaHJlZj0ie3sgcGF0aHRvKG1hc3Rlcl9kb2MpIH19Ij5Eb2N1bWVudGF0aW9u
IG92ZXJ2aWV3PC9hPjx1bD4KLSAgeyUtIGZvciBwYXJlbnQgaW4gcGFyZW50cyAlfQotICA8bGk+
PGEgaHJlZj0ie3sgcGFyZW50Lmxpbmt8ZSB9fSI+e3sgcGFyZW50LnRpdGxlIH19PC9hPjx1bD4K
LSAgeyUtIGVuZGZvciAlfQotICAgIHslLSBpZiBwcmV2ICV9Ci0gICAgICA8bGk+UHJldmlvdXM6
IDxhIGhyZWY9Int7IHByZXYubGlua3xlIH19IiB0aXRsZT0ie3sgXygncHJldmlvdXMgY2hhcHRl
cicpCi0gICAgICAgIH19Ij57eyBwcmV2LnRpdGxlIH19PC9hPjwvbGk+Ci0gICAgeyUtIGVuZGlm
ICV9Ci0gICAgeyUtIGlmIG5leHQgJX0KLSAgICAgIDxsaT5OZXh0OiA8YSBocmVmPSJ7eyBuZXh0
Lmxpbmt8ZSB9fSIgdGl0bGU9Int7IF8oJ25leHQgY2hhcHRlcicpCi0gICAgICAgIH19Ij57eyBu
ZXh0LnRpdGxlIH19PC9hPjwvbGk+Ci0gICAgeyUtIGVuZGlmICV9Ci0gIHslLSBmb3IgcGFyZW50
IGluIHBhcmVudHMgJX0KLSAgPC91bD48L2xpPgotICB7JS0gZW5kZm9yICV9Ci0gIDwvdWw+PC9s
aT4KLTwvdWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9z
dGF0aWMvZmxhc2t5LmNzc190IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3Rh
dGljL2ZsYXNreS5jc3NfdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI1OTNkYTI5
OWE4MzUzZTMxYzJlYWZiNWIwNDQ1MDU2MjVlMDUxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9z
dGF0aWMvZmxhc2t5LmNzc190CisrKyAvZGV2L251bGwKQEAgLTEsNTU3ICswLDAgQEAKLS8qCi0g
KiBmbGFza3kuY3NzX3QKLSAqIH5+fn5+fn5+fn5+fgotICoKLSAqIDpjb3B5cmlnaHQ6IENvcHly
aWdodCAyMDEwIGJ5IEFybWluIFJvbmFjaGVyLgotICogOmxpY2Vuc2U6IEZsYXNrIERlc2lnbiBM
aWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLSAqLwotCi17JSBzZXQgcGFnZV93aWR0
aCA9ICcxMDIwcHgnICV9Ci17JSBzZXQgc2lkZWJhcl93aWR0aCA9ICcyMjBweCcgJX0KLS8qIG9y
YW5nZSBvZiBsb2dvIGlzICNkNjdjMjkgYnV0IHdlIHVzZSBibGFjayBmb3IgbGlua3MgZm9yIG5v
dyAqLwoteyUgc2V0IGxpbmtfY29sb3IgPSAnIzAwMCcgJX0KLXslIHNldCBsaW5rX2hvdmVyX2Nv
bG9yID0gJyMwMDAnICV9Ci17JSBzZXQgYmFzZV9mb250ID0gJ3NhbnMtc2VyaWYnICV9Ci17JSBz
ZXQgaGVhZGVyX2ZvbnQgPSAnc2VyaWYnICV9Ci0KLUBpbXBvcnQgdXJsKCJiYXNpYy5jc3MiKTsK
LQotLyogLS0gcGFnZSBsYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotYm9keSB7Ci0gICAgZm9udC1mYW1pbHk6IHt7
IGJhc2VfZm9udCB9fTsKLSAgICBmb250LXNpemU6IDE3cHg7Ci0gICAgYmFja2dyb3VuZC1jb2xv
cjogd2hpdGU7Ci0gICAgY29sb3I6ICMwMDA7Ci0gICAgbWFyZ2luOiAwOwotICAgIHBhZGRpbmc6
IDA7Ci19Ci0KLWRpdi5kb2N1bWVudCB7Ci0gICAgd2lkdGg6IHt7IHBhZ2Vfd2lkdGggfX07Ci0g
ICAgbWFyZ2luOiAzMHB4IGF1dG8gMCBhdXRvOwotfQotCi1kaXYuZG9jdW1lbnR3cmFwcGVyIHsK
LSAgICBmbG9hdDogbGVmdDsKLSAgICB3aWR0aDogMTAwJTsKLX0KLQotZGl2LmJvZHl3cmFwcGVy
IHsKLSAgICBtYXJnaW46IDAgMCAwIHt7IHNpZGViYXJfd2lkdGggfX07Ci19Ci0KLWRpdi5zcGhp
bnhzaWRlYmFyIHsKLSAgICB3aWR0aDoge3sgc2lkZWJhcl93aWR0aCB9fTsKLX0KLQotaHIgewot
ICAgIGJvcmRlcjogMDsKLSAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0IxQjRCNjsKLX0KLQot
ZGl2LmJvZHkgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7Ci0gICAgY29sb3I6ICMz
RTQzNDk7Ci0gICAgcGFkZGluZzogMCAzMHB4IDAgMzBweDsKLX0KLQotaW1nLmZsb2F0aW5nZmxh
c2sgewotICAgIHBhZGRpbmc6IDAgMCAxMHB4IDEwcHg7Ci0gICAgZmxvYXQ6IHJpZ2h0OwotfQot
Ci1kaXYuZm9vdGVyIHsKLSAgICB3aWR0aDoge3sgcGFnZV93aWR0aCB9fTsKLSAgICBtYXJnaW46
IDIwcHggYXV0byAzMHB4IGF1dG87Ci0gICAgZm9udC1zaXplOiAxNHB4OwotICAgIGNvbG9yOiAj
ODg4OwotICAgIHRleHQtYWxpZ246IHJpZ2h0OwotfQotCi1kaXYuZm9vdGVyIGEgewotICAgIGNv
bG9yOiAjODg4OwotfQotCi1kaXYucmVsYXRlZCB7Ci0gICAgZGlzcGxheTogbm9uZTsKLX0KLQot
ZGl2LnNwaGlueHNpZGViYXIgYSB7Ci0gICAgY29sb3I6ICM0NDQ7Ci0gICAgdGV4dC1kZWNvcmF0
aW9uOiBub25lOwotICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzk5OTsKLX0KLQotZGl2
LnNwaGlueHNpZGViYXIgYTpob3ZlciB7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM5
OTk7Ci19Ci0KLWRpdi5zcGhpbnhzaWRlYmFyIHsKLSAgICBmb250LXNpemU6IDE0cHg7Ci0gICAg
bGluZS1oZWlnaHQ6IDEuNTsKLX0KLQotZGl2LnNwaGlueHNpZGViYXJ3cmFwcGVyIHsKLSAgICBw
YWRkaW5nOiAxOHB4IDEwcHg7Ci19Ci0KLWRpdi5zcGhpbnhzaWRlYmFyd3JhcHBlciBwLmxvZ28g
ewotICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7Ci0gICAgbWFyZ2luOiAwOwotICAgIHRleHQtYWxp
Z246IGNlbnRlcjsKLX0KLQotZGl2LnNwaGlueHNpZGViYXIgaDMsCi1kaXYuc3BoaW54c2lkZWJh
ciBoNCB7Ci0gICAgZm9udC1mYW1pbHk6IHt7IGhlYWRlcl9mb250IH19OwotICAgIGNvbG9yOiAj
NDQ0OwotICAgIGZvbnQtc2l6ZTogMjRweDsKLSAgICBmb250LXdlaWdodDogbm9ybWFsOwotICAg
IG1hcmdpbjogMCAwIDVweCAwOwotICAgIHBhZGRpbmc6IDA7Ci19Ci0KLWRpdi5zcGhpbnhzaWRl
YmFyIGg0IHsKLSAgICBmb250LXNpemU6IDIwcHg7Ci19Ci0KLWRpdi5zcGhpbnhzaWRlYmFyIGgz
IGEgewotICAgIGNvbG9yOiAjNDQ0OwotfQotCi1kaXYuc3BoaW54c2lkZWJhciBwLmxvZ28gYSwK
LWRpdi5zcGhpbnhzaWRlYmFyIGgzIGEsCi1kaXYuc3BoaW54c2lkZWJhciBwLmxvZ28gYTpob3Zl
ciwKLWRpdi5zcGhpbnhzaWRlYmFyIGgzIGE6aG92ZXIgewotICAgIGJvcmRlcjogbm9uZTsKLX0K
LQotZGl2LnNwaGlueHNpZGViYXIgcCB7Ci0gICAgY29sb3I6ICM1NTU7Ci0gICAgbWFyZ2luOiAx
MHB4IDA7Ci19Ci0KLWRpdi5zcGhpbnhzaWRlYmFyIHVsIHsKLSAgICBtYXJnaW46IDEwcHggMDsK
LSAgICBwYWRkaW5nOiAwOwotICAgIGNvbG9yOiAjMDAwOwotfQotCi1kaXYuc3BoaW54c2lkZWJh
ciBpbnB1dCB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKLSAgICBmb250LWZhbWlseTog
e3sgYmFzZV9mb250IH19OwotICAgIGZvbnQtc2l6ZTogMWVtOwotfQotCi0vKiAtLSBib2R5IHN0
eWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwotCi1hIHsKLSAgICBjb2xvcjoge3sgbGlua19jb2xvciB9fTsKLSAgICB0ZXh0
LWRlY29yYXRpb246IHVuZGVybGluZTsKLX0KLQotYTpob3ZlciB7Ci0gICAgY29sb3I6IHt7IGxp
bmtfaG92ZXJfY29sb3IgfX07Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Ci19Ci0K
LWEucmVmZXJlbmNlLmludGVybmFsIGVtIHsKLSAgICBmb250LXN0eWxlOiBub3JtYWw7Ci19Ci0K
LWRpdi5ib2R5IGgxLAotZGl2LmJvZHkgaDIsCi1kaXYuYm9keSBoMywKLWRpdi5ib2R5IGg0LAot
ZGl2LmJvZHkgaDUsCi1kaXYuYm9keSBoNiB7Ci0gICAgZm9udC1mYW1pbHk6IHt7IGhlYWRlcl9m
b250IH19OwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0gICAgbWFyZ2luOiAzMHB4IDBweCAx
MHB4IDBweDsKLSAgICBwYWRkaW5nOiAwOwotfQotCi17JSBpZiB0aGVtZV9pbmRleF9sb2dvICV9
Ci1kaXYuaW5kZXh3cmFwcGVyIGgxIHsKLSAgICB0ZXh0LWluZGVudDogLTk5OTk5OXB4OwotICAg
IGJhY2tncm91bmQ6IHVybCh7eyB0aGVtZV9pbmRleF9sb2dvIH19KSBuby1yZXBlYXQgY2VudGVy
IGNlbnRlcjsKLSAgICBoZWlnaHQ6IHt7IHRoZW1lX2luZGV4X2xvZ29faGVpZ2h0IH19OwotfQot
eyUgZWxzZSAlfQotZGl2LmluZGV4d3JhcHBlciBkaXYuYm9keSBoMSB7Ci0gICAgZm9udC1zaXpl
OiAyMDAlOwotfQoteyUgZW5kaWYgJX0KLWRpdi5ib2R5IGgxIHsgbWFyZ2luLXRvcDogMDsgcGFk
ZGluZy10b3A6IDA7IGZvbnQtc2l6ZTogMjQwJTsgfQotZGl2LmJvZHkgaDIgeyBmb250LXNpemU6
IDE4MCU7IH0KLWRpdi5ib2R5IGgzIHsgZm9udC1zaXplOiAxNTAlOyB9Ci1kaXYuYm9keSBoNCB7
IGZvbnQtc2l6ZTogMTMwJTsgfQotZGl2LmJvZHkgaDUgeyBmb250LXNpemU6IDEwMCU7IH0KLWRp
di5ib2R5IGg2IHsgZm9udC1zaXplOiAxMDAlOyB9Ci0KLWEuaGVhZGVybGluayB7Ci0gICAgY29s
b3I6ICNkZGQ7Ci0gICAgcGFkZGluZzogMCA0cHg7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25l
OwotfQotCi1hLmhlYWRlcmxpbms6aG92ZXIgewotICAgIGNvbG9yOiAjNDQ0OwotICAgIGJhY2tn
cm91bmQ6ICNlYWVhZWE7Ci19Ci0KLWRpdi5ib2R5IHAsIGRpdi5ib2R5IGRkLCBkaXYuYm9keSBs
aSB7Ci0gICAgbGluZS1oZWlnaHQ6IDEuNGVtOwotfQotCi1kaXYuYWRtb25pdGlvbiB7Ci0gICAg
YmFja2dyb3VuZDogI2ZhZmFmYTsKLSAgICBtYXJnaW46IDIwcHggLTMwcHg7Ci0gICAgcGFkZGlu
ZzogMTBweCAzMHB4OwotICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjOwotICAgIGJvcmRl
ci1ib3R0b206IDFweCBzb2xpZCAjY2NjOwotfQotCi1kaXYuYWRtb25pdGlvbiB0dC54cmVmLCBk
aXYuYWRtb25pdGlvbiBhIHR0IHsKLSAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZhZmFm
YTsKLX0KLQotZGQgZGl2LmFkbW9uaXRpb24gewotICAgIG1hcmdpbi1sZWZ0OiAtNjBweDsKLSAg
ICBwYWRkaW5nLWxlZnQ6IDYwcHg7Ci19Ci0KLWRpdi5hZG1vbml0aW9uIHAuYWRtb25pdGlvbi10
aXRsZSB7Ci0gICAgZm9udC1mYW1pbHk6IHt7IGhlYWRlcl9mb250IH19OwotICAgIGZvbnQtd2Vp
Z2h0OiBub3JtYWw7Ci0gICAgZm9udC1zaXplOiAyNHB4OwotICAgIG1hcmdpbjogMCAwIDEwcHgg
MDsKLSAgICBwYWRkaW5nOiAwOwotICAgIGxpbmUtaGVpZ2h0OiAxOwotfQotCi1kaXYuYWRtb25p
dGlvbiBwLmxhc3QgewotICAgIG1hcmdpbi1ib3R0b206IDA7Ci19Ci0KLWRpdi5oaWdobGlnaHQg
ewotICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwotfQotCi1kdDp0YXJnZXQsIC5oaWdobGln
aHQgewotICAgIGJhY2tncm91bmQ6ICNGQUYzRTg7Ci19Ci0KLWRpdi5ub3RlIHsKLSAgICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZWVlOwotICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7Ci19Ci0KLWRp
di5zZWVhbHNvIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOwotICAgIGJvcmRlcjogMXB4
IHNvbGlkICNmZjY7Ci19Ci0KLWRpdi50b3BpYyB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2Vl
ZTsKLX0KLQotcC5hZG1vbml0aW9uLXRpdGxlIHsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci19Ci0K
LXAuYWRtb25pdGlvbi10aXRsZTphZnRlciB7Ci0gICAgY29udGVudDogIjoiOwotfQotCi1wcmUs
IHR0LCBjb2RlIHsKLSAgICBmb250LWZhbWlseTogJ0NvbnNvbGFzJywgJ01lbmxvJywgJ0RlamEg
VnUgU2FucyBNb25vJywgJ0JpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubycsIG1vbm9zcGFjZTsKLSAg
ICBmb250LXNpemU6IDAuOWVtOwotICAgIGJhY2tncm91bmQ6ICNlZWU7Ci19Ci0KLWltZy5zY3Jl
ZW5zaG90IHsKLX0KLQotdHQuZGVzY25hbWUsIHR0LmRlc2NjbGFzc25hbWUgewotICAgIGZvbnQt
c2l6ZTogMC45NWVtOwotfQotCi10dC5kZXNjbmFtZSB7Ci0gICAgcGFkZGluZy1yaWdodDogMC4w
OGVtOwotfQotCi1pbWcuc2NyZWVuc2hvdCB7Ci0gICAgLW1vei1ib3gtc2hhZG93OiAycHggMnB4
IDRweCAjZWVlOwotICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJweCA0cHggI2VlZTsKLSAg
ICBib3gtc2hhZG93OiAycHggMnB4IDRweCAjZWVlOwotfQotCi10YWJsZS5kb2N1dGlscyB7Ci0g
ICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKLSAgICAtbW96LWJveC1zaGFkb3c6IDJweCAycHgg
NHB4ICNlZWU7Ci0gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4IDRweCAjZWVlOwotICAg
IGJveC1zaGFkb3c6IDJweCAycHggNHB4ICNlZWU7Ci19Ci0KLXRhYmxlLmRvY3V0aWxzIHRkLCB0
YWJsZS5kb2N1dGlscyB0aCB7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKLSAgICBwYWRk
aW5nOiAwLjI1ZW0gMC43ZW07Ci19Ci0KLXRhYmxlLmZpZWxkLWxpc3QsIHRhYmxlLmZvb3Rub3Rl
IHsKLSAgICBib3JkZXI6IG5vbmU7Ci0gICAgLW1vei1ib3gtc2hhZG93OiBub25lOwotICAgIC13
ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKLSAgICBib3gtc2hhZG93OiBub25lOwotfQotCi10YWJs
ZS5mb290bm90ZSB7Ci0gICAgbWFyZ2luOiAxNXB4IDA7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAg
Ym9yZGVyOiAxcHggc29saWQgI2VlZTsKLSAgICBiYWNrZ3JvdW5kOiAjZmRmZGZkOwotICAgIGZv
bnQtc2l6ZTogMC45ZW07Ci19Ci0KLXRhYmxlLmZvb3Rub3RlICsgdGFibGUuZm9vdG5vdGUgewot
ICAgIG1hcmdpbi10b3A6IC0xNXB4OwotICAgIGJvcmRlci10b3A6IG5vbmU7Ci19Ci0KLXRhYmxl
LmZpZWxkLWxpc3QgdGggewotICAgIHBhZGRpbmc6IDAgMC44ZW0gMCAwOwotfQotCi10YWJsZS5m
aWVsZC1saXN0IHRkIHsKLSAgICBwYWRkaW5nOiAwOwotfQotCi10YWJsZS5mb290bm90ZSB0ZC5s
YWJlbCB7Ci0gICAgd2lkdGg6IDBweDsKLSAgICBwYWRkaW5nOiAwLjNlbSAwIDAuM2VtIDAuNWVt
OwotfQotCi10YWJsZS5mb290bm90ZSB0ZCB7Ci0gICAgcGFkZGluZzogMC4zZW0gMC41ZW07Ci19
Ci0KLWRsIHsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotZGwgZGQgewot
ICAgIG1hcmdpbi1sZWZ0OiAzMHB4OwotfQotCi1ibG9ja3F1b3RlIHsKLSAgICBtYXJnaW46IDAg
MCAwIDMwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotdWwsIG9sIHsKLSAgICBtYXJnaW46IDEw
cHggMCAxMHB4IDMwcHg7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotcHJlIHsKLSAgICBiYWNrZ3Jv
dW5kOiAjZWVlOwotICAgIHBhZGRpbmc6IDdweCAzMHB4OwotICAgIG1hcmdpbjogMTVweCAtMzBw
eDsKLSAgICBsaW5lLWhlaWdodDogMS4zZW07Ci19Ci0KLWRsIHByZSwgYmxvY2txdW90ZSBwcmUs
IGxpIHByZSB7Ci0gICAgbWFyZ2luLWxlZnQ6IC02MHB4OwotICAgIHBhZGRpbmctbGVmdDogNjBw
eDsKLX0KLQotZGwgZGwgcHJlIHsKLSAgICBtYXJnaW4tbGVmdDogLTkwcHg7Ci0gICAgcGFkZGlu
Zy1sZWZ0OiA5MHB4OwotfQotCi10dCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjZjBmMzsK
LSAgICBjb2xvcjogIzIyMjsKLSAgICAvKiBwYWRkaW5nOiAxcHggMnB4OyAqLwotfQotCi10dC54
cmVmLCBhIHR0IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJGQkZCOwotICAgIGJvcmRlci1i
b3R0b206IDFweCBzb2xpZCB3aGl0ZTsKLX0KLQotYS5yZWZlcmVuY2UgewotICAgIHRleHQtZGVj
b3JhdGlvbjogbm9uZTsKLSAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHt7IGxpbmtfY29s
b3IgfX07Ci19Ci0KLWEucmVmZXJlbmNlOmhvdmVyIHsKLSAgICBib3JkZXItYm90dG9tOiAxcHgg
c29saWQge3sgbGlua19ob3Zlcl9jb2xvciB9fTsKLX0KLQotYS5mb290bm90ZS1yZWZlcmVuY2Ug
ewotICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKLSAgICBmb250LXNpemU6IDAuN2VtOwotICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCB7eyBs
aW5rX2NvbG9yIH19OwotfQotCi1hLmZvb3Rub3RlLXJlZmVyZW5jZTpob3ZlciB7Ci0gICAgYm9y
ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHt7IGxpbmtfaG92ZXJfY29sb3IgfX07Ci19Ci0KLWE6aG92
ZXIgdHQgewotICAgIGJhY2tncm91bmQ6ICNFRUU7Ci19Ci0KLQotQG1lZGlhIHNjcmVlbiBhbmQg
KG1heC13aWR0aDogODcwcHgpIHsKLQotICAgIGRpdi5zcGhpbnhzaWRlYmFyIHsKLSAgICAgICAg
ZGlzcGxheTogbm9uZTsKLSAgICB9Ci0KLSAgICBkaXYuZG9jdW1lbnQgewotICAgICAgIHdpZHRo
OiAxMDAlOwotCi0gICAgfQotCi0gICAgZGl2LmRvY3VtZW50d3JhcHBlciB7Ci0gICAgICAgIG1h
cmdpbi1sZWZ0OiAwOwotICAgICAgICBtYXJnaW4tdG9wOiAwOwotICAgICAgICBtYXJnaW4tcmln
aHQ6IDA7Ci0gICAgICAgIG1hcmdpbi1ib3R0b206IDA7Ci0gICAgfQotCi0gICAgZGl2LmJvZHl3
cmFwcGVyIHsKLSAgICAgICAgbWFyZ2luLXRvcDogMDsKLSAgICAgICAgbWFyZ2luLXJpZ2h0OiAw
OwotICAgICAgICBtYXJnaW4tYm90dG9tOiAwOwotICAgICAgICBtYXJnaW4tbGVmdDogMDsKLSAg
ICB9Ci0KLSAgICB1bCB7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAwOwotICAgIH0KLQotICAgIC5k
b2N1bWVudCB7Ci0gICAgICAgIHdpZHRoOiBhdXRvOwotICAgIH0KLQotICAgIC5mb290ZXIgewot
ICAgICAgICB3aWR0aDogYXV0bzsKLSAgICB9Ci0KLSAgICAuYm9keXdyYXBwZXIgewotICAgICAg
ICBtYXJnaW46IDA7Ci0gICAgfQotCi0gICAgLmZvb3RlciB7Ci0gICAgICAgIHdpZHRoOiBhdXRv
OwotICAgIH0KLQotICAgIC5naXRodWIgewotICAgICAgICBkaXNwbGF5OiBub25lOwotICAgIH0K
LQotCi0KLX0KLQotCi0KLUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg3NXB4KSB7Ci0K
LSAgICBib2R5IHsKLSAgICAgICAgbWFyZ2luOiAwOwotICAgICAgICBwYWRkaW5nOiAyMHB4IDMw
cHg7Ci0gICAgfQotCi0gICAgZGl2LmRvY3VtZW50d3JhcHBlciB7Ci0gICAgICAgIGZsb2F0OiBu
b25lOwotICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKLSAgICB9Ci0KLSAgICBkaXYuc3BoaW54
c2lkZWJhciB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICBmbG9hdDogbm9uZTsK
LSAgICAgICAgd2lkdGg6IDEwMi41JTsKLSAgICAgICAgbWFyZ2luOiA1MHB4IC0zMHB4IC0yMHB4
IC0zMHB4OwotICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7Ci0gICAgICAgIGJhY2tncm91bmQ6
ICMzMzM7Ci0gICAgICAgIGNvbG9yOiB3aGl0ZTsKLSAgICB9Ci0KLSAgICBkaXYuc3BoaW54c2lk
ZWJhciBoMywgZGl2LnNwaGlueHNpZGViYXIgaDQsIGRpdi5zcGhpbnhzaWRlYmFyIHAsCi0gICAg
ZGl2LnNwaGlueHNpZGViYXIgaDMgYSwgZGl2LnNwaGlueHNpZGViYXIgdWwgewotICAgICAgICBj
b2xvcjogd2hpdGU7Ci0gICAgfQotCi0gICAgZGl2LnNwaGlueHNpZGViYXIgYSB7Ci0gICAgICAg
IGNvbG9yOiAjYWFhOwotICAgIH0KLQotICAgIGRpdi5zcGhpbnhzaWRlYmFyIHAubG9nbyB7Ci0g
ICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgfQotCi0gICAgZGl2LmRvY3VtZW50IHsKLSAgICAg
ICAgd2lkdGg6IDEwMCU7Ci0gICAgICAgIG1hcmdpbjogMDsKLSAgICB9Ci0KLSAgICBkaXYucmVs
YXRlZCB7Ci0gICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICBtYXJnaW46IDA7Ci0gICAg
ICAgIHBhZGRpbmc6IDEwcHggMCAyMHB4IDA7Ci0gICAgfQotCi0gICAgZGl2LnJlbGF0ZWQgdWws
Ci0gICAgZGl2LnJlbGF0ZWQgdWwgbGkgewotICAgICAgICBtYXJnaW46IDA7Ci0gICAgICAgIHBh
ZGRpbmc6IDA7Ci0gICAgfQotCi0gICAgZGl2LmZvb3RlciB7Ci0gICAgICAgIGRpc3BsYXk6IG5v
bmU7Ci0gICAgfQotCi0gICAgZGl2LmJvZHl3cmFwcGVyIHsKLSAgICAgICAgbWFyZ2luOiAwOwot
ICAgIH0KLQotICAgIGRpdi5ib2R5IHsKLSAgICAgICAgbWluLWhlaWdodDogMDsKLSAgICAgICAg
cGFkZGluZzogMDsKLSAgICB9Ci0KLSAgICAucnRkX2RvY19mb290ZXIgewotICAgICAgICBkaXNw
bGF5OiBub25lOwotICAgIH0KLQotICAgIC5kb2N1bWVudCB7Ci0gICAgICAgIHdpZHRoOiBhdXRv
OwotICAgIH0KLQotICAgIC5mb290ZXIgewotICAgICAgICB3aWR0aDogYXV0bzsKLSAgICB9Ci0K
LSAgICAuZm9vdGVyIHsKLSAgICAgICAgd2lkdGg6IGF1dG87Ci0gICAgfQotCi0gICAgLmdpdGh1
YiB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgfQotfQotCi0vKiBtaXNjLiAqLwotCi0u
cmV2c3lzLWlubGluZSB7Ci0gICAgZGlzcGxheTogbm9uZSFpbXBvcnRhbnQ7Ci19CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0aWMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0aWMvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4NDc0Zjk3MGVhZTU4OTcxNWI4NGNm
NzI1MGJmYTQzMDE5YWEyOTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3RhdGljL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3RhdGljL2ZsYXNreS5jc3NfdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhlbWUuY29uZiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3RoZW1lLmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM3MmIwMDI4MzkzMDRkY2QyODcxMTE3ODdhOWRlY2EyYjY5YjU2YmMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvZmxhc2svdGhlbWUuY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
W3RoZW1lXQotaW5oZXJpdCA9IGJhc2ljCi1zdHlsZXNoZWV0ID0gZmxhc2t5LmNzcwotcHlnbWVu
dHNfc3R5bGUgPSBmbGFza190aGVtZV9zdXBwb3J0LkZsYXNreVN0eWxlCi0KLVtvcHRpb25zXQot
aW5kZXhfbG9nbyA9ICcnCi1pbmRleF9sb2dvX2hlaWdodCA9IDEyMHB4Ci10b3VjaF9pY29uID0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzNjI2YWJhMzZmNmE5NWYxMDc5NjkxNzFhNTM1
OTkyYWNhOTJlODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Ro
ZW1lcy9mbGFzay9sYXlvdXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNr
L3JlbGF0aW9ucy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhlbWUu
Y29uZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVf
c3VwcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBv
cnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkY2Y1M2I3NTQyYjcwOTNlMmJk
ODk2MTVlNTMyMDIzNjA1NDE3ZWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9y
dC5weQorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLSMgZmxhc2t5IGV4dGVuc2lvbnMu
ICBmbGFza3kgcHlnbWVudHMgc3R5bGUgYmFzZWQgb24gdGFuZ28gc3R5bGUKLWZyb20gcHlnbWVu
dHMuc3R5bGUgaW1wb3J0IFN0eWxlCi1mcm9tIHB5Z21lbnRzLnRva2VuIGltcG9ydCAoCi0gICAg
S2V5d29yZCwKLSAgICBOYW1lLAotICAgIENvbW1lbnQsCi0gICAgU3RyaW5nLAotICAgIEVycm9y
LAotICAgIE51bWJlciwKLSAgICBPcGVyYXRvciwKLSAgICBHZW5lcmljLAotICAgIFdoaXRlc3Bh
Y2UsCi0gICAgUHVuY3R1YXRpb24sCi0gICAgT3RoZXIsCi0gICAgTGl0ZXJhbCwKLSkKLQotCi1j
bGFzcyBGbGFza3lTdHlsZShTdHlsZSk6Ci0gICAgYmFja2dyb3VuZF9jb2xvciA9ICIjZjhmOGY4
IgotICAgIGRlZmF1bHRfc3R5bGUgPSAiIgotCi0gICAgc3R5bGVzID0gewotICAgICAgICAjIE5v
IGNvcnJlc3BvbmRpbmcgY2xhc3MgZm9yIHRoZSBmb2xsb3dpbmc6Ci0gICAgICAgICMgVGV4dDog
ICAgICAgICAgICAgICAgICAgICAiIiwgIyBjbGFzczogICcnCi0gICAgICAgIFdoaXRlc3BhY2U6
ICJ1bmRlcmxpbmUgI2Y4ZjhmOCIsICAjIGNsYXNzOiAndycKLSAgICAgICAgRXJyb3I6ICIjYTQw
MDAwIGJvcmRlcjojZWYyOTI5IiwgICMgY2xhc3M6ICdlcnInCi0gICAgICAgIE90aGVyOiAiIzAw
MDAwMCIsICAjIGNsYXNzICd4JwotICAgICAgICBDb21tZW50OiAiaXRhbGljICM4ZjU5MDIiLCAg
IyBjbGFzczogJ2MnCi0gICAgICAgIENvbW1lbnQuUHJlcHJvYzogIm5vaXRhbGljIiwgICMgY2xh
c3M6ICdjcCcKLSAgICAgICAgS2V5d29yZDogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNzOiAnaycK
LSAgICAgICAgS2V5d29yZC5Db25zdGFudDogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNzOiAna2Mn
Ci0gICAgICAgIEtleXdvcmQuRGVjbGFyYXRpb246ICJib2xkICMwMDQ0NjEiLCAgIyBjbGFzczog
J2tkJwotICAgICAgICBLZXl3b3JkLk5hbWVzcGFjZTogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNz
OiAna24nCi0gICAgICAgIEtleXdvcmQuUHNldWRvOiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6
ICdrcCcKLSAgICAgICAgS2V5d29yZC5SZXNlcnZlZDogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNz
OiAna3InCi0gICAgICAgIEtleXdvcmQuVHlwZTogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNzOiAn
a3QnCi0gICAgICAgIE9wZXJhdG9yOiAiIzU4MjgwMCIsICAjIGNsYXNzOiAnbycKLSAgICAgICAg
T3BlcmF0b3IuV29yZDogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNzOiAnb3cnIC0gbGlrZSBrZXl3
b3JkcwotICAgICAgICBQdW5jdHVhdGlvbjogImJvbGQgIzAwMDAwMCIsICAjIGNsYXNzOiAncCcK
LSAgICAgICAgIyBiZWNhdXNlIHNwZWNpYWwgbmFtZXMgc3VjaCBhcyBOYW1lLkNsYXNzLCBOYW1l
LkZ1bmN0aW9uLCBldGMuCi0gICAgICAgICMgYXJlIG5vdCByZWNvZ25pemVkIGFzIHN1Y2ggbGF0
ZXIgaW4gdGhlIHBhcnNpbmcsIHdlIGNob29zZSB0aGVtCi0gICAgICAgICMgdG8gbG9vayB0aGUg
c2FtZSBhcyBvcmRpbmFyeSB2YXJpYWJsZXMuCi0gICAgICAgIE5hbWU6ICIjMDAwMDAwIiwgICMg
Y2xhc3M6ICduJwotICAgICAgICBOYW1lLkF0dHJpYnV0ZTogIiNjNGEwMDAiLCAgIyBjbGFzczog
J25hJyAtIHRvIGJlIHJldmlzZWQKLSAgICAgICAgTmFtZS5CdWlsdGluOiAiIzAwNDQ2MSIsICAj
IGNsYXNzOiAnbmInCi0gICAgICAgIE5hbWUuQnVpbHRpbi5Qc2V1ZG86ICIjMzQ2NWE0IiwgICMg
Y2xhc3M6ICdicCcKLSAgICAgICAgTmFtZS5DbGFzczogIiMwMDAwMDAiLCAgIyBjbGFzczogJ25j
JyAtIHRvIGJlIHJldmlzZWQKLSAgICAgICAgTmFtZS5Db25zdGFudDogIiMwMDAwMDAiLCAgIyBj
bGFzczogJ25vJyAtIHRvIGJlIHJldmlzZWQKLSAgICAgICAgTmFtZS5EZWNvcmF0b3I6ICIjODg4
IiwgICMgY2xhc3M6ICduZCcgLSB0byBiZSByZXZpc2VkCi0gICAgICAgIE5hbWUuRW50aXR5OiAi
I2NlNWMwMCIsICAjIGNsYXNzOiAnbmknCi0gICAgICAgIE5hbWUuRXhjZXB0aW9uOiAiYm9sZCAj
Y2MwMDAwIiwgICMgY2xhc3M6ICduZScKLSAgICAgICAgTmFtZS5GdW5jdGlvbjogIiMwMDAwMDAi
LCAgIyBjbGFzczogJ25mJwotICAgICAgICBOYW1lLlByb3BlcnR5OiAiIzAwMDAwMCIsICAjIGNs
YXNzOiAncHknCi0gICAgICAgIE5hbWUuTGFiZWw6ICIjZjU3OTAwIiwgICMgY2xhc3M6ICdubCcK
LSAgICAgICAgTmFtZS5OYW1lc3BhY2U6ICIjMDAwMDAwIiwgICMgY2xhc3M6ICdubicgLSB0byBi
ZSByZXZpc2VkCi0gICAgICAgIE5hbWUuT3RoZXI6ICIjMDAwMDAwIiwgICMgY2xhc3M6ICdueCcK
LSAgICAgICAgTmFtZS5UYWc6ICJib2xkICMwMDQ0NjEiLCAgIyBjbGFzczogJ250JyAtIGxpa2Ug
YSBrZXl3b3JkCi0gICAgICAgIE5hbWUuVmFyaWFibGU6ICIjMDAwMDAwIiwgICMgY2xhc3M6ICdu
dicgLSB0byBiZSByZXZpc2VkCi0gICAgICAgIE5hbWUuVmFyaWFibGUuQ2xhc3M6ICIjMDAwMDAw
IiwgICMgY2xhc3M6ICd2YycgLSB0byBiZSByZXZpc2VkCi0gICAgICAgIE5hbWUuVmFyaWFibGUu
R2xvYmFsOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAndmcnIC0gdG8gYmUgcmV2aXNlZAotICAgICAg
ICBOYW1lLlZhcmlhYmxlLkluc3RhbmNlOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAndmknIC0gdG8g
YmUgcmV2aXNlZAotICAgICAgICBOdW1iZXI6ICIjOTkwMDAwIiwgICMgY2xhc3M6ICdtJwotICAg
ICAgICBMaXRlcmFsOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnbCcKLSAgICAgICAgTGl0ZXJhbC5E
YXRlOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnbGQnCi0gICAgICAgIFN0cmluZzogIiM0ZTlhMDYi
LCAgIyBjbGFzczogJ3MnCi0gICAgICAgIFN0cmluZy5CYWNrdGljazogIiM0ZTlhMDYiLCAgIyBj
bGFzczogJ3NiJwotICAgICAgICBTdHJpbmcuQ2hhcjogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3Nj
JwotICAgICAgICBTdHJpbmcuRG9jOiAiaXRhbGljICM4ZjU5MDIiLCAgIyBjbGFzczogJ3NkJyAt
IGxpa2UgYSBjb21tZW50Ci0gICAgICAgIFN0cmluZy5Eb3VibGU6ICIjNGU5YTA2IiwgICMgY2xh
c3M6ICdzMicKLSAgICAgICAgU3RyaW5nLkVzY2FwZTogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3Nl
JwotICAgICAgICBTdHJpbmcuSGVyZWRvYzogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3NoJwotICAg
ICAgICBTdHJpbmcuSW50ZXJwb2w6ICIjNGU5YTA2IiwgICMgY2xhc3M6ICdzaScKLSAgICAgICAg
U3RyaW5nLk90aGVyOiAiIzRlOWEwNiIsICAjIGNsYXNzOiAnc3gnCi0gICAgICAgIFN0cmluZy5S
ZWdleDogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3NyJwotICAgICAgICBTdHJpbmcuU2luZ2xlOiAi
IzRlOWEwNiIsICAjIGNsYXNzOiAnczEnCi0gICAgICAgIFN0cmluZy5TeW1ib2w6ICIjNGU5YTA2
IiwgICMgY2xhc3M6ICdzcycKLSAgICAgICAgR2VuZXJpYzogIiMwMDAwMDAiLCAgIyBjbGFzczog
J2cnCi0gICAgICAgIEdlbmVyaWMuRGVsZXRlZDogIiNhNDAwMDAiLCAgIyBjbGFzczogJ2dkJwot
ICAgICAgICBHZW5lcmljLkVtcGg6ICJpdGFsaWMgIzAwMDAwMCIsICAjIGNsYXNzOiAnZ2UnCi0g
ICAgICAgIEdlbmVyaWMuRXJyb3I6ICIjZWYyOTI5IiwgICMgY2xhc3M6ICdncicKLSAgICAgICAg
R2VuZXJpYy5IZWFkaW5nOiAiYm9sZCAjMDAwMDgwIiwgICMgY2xhc3M6ICdnaCcKLSAgICAgICAg
R2VuZXJpYy5JbnNlcnRlZDogIiMwMEEwMDAiLCAgIyBjbGFzczogJ2dpJwotICAgICAgICBHZW5l
cmljLk91dHB1dDogIiM4ODgiLCAgIyBjbGFzczogJ2dvJwotICAgICAgICBHZW5lcmljLlByb21w
dDogIiM3NDUzMzQiLCAgIyBjbGFzczogJ2dwJwotICAgICAgICBHZW5lcmljLlN0cm9uZzogImJv
bGQgIzAwMDAwMCIsICAjIGNsYXNzOiAnZ3MnCi0gICAgICAgIEdlbmVyaWMuU3ViaGVhZGluZzog
ImJvbGQgIzgwMDA4MCIsICAjIGNsYXNzOiAnZ3UnCi0gICAgICAgIEdlbmVyaWMuVHJhY2ViYWNr
OiAiYm9sZCAjYTQwMDAwIiwgICMgY2xhc3M6ICdndCcKLSAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9fdGhlbWVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
NjU2NTQ4ZDBkYTc5NTI0ZThhYWI3ZjNiOTczNTE4NmY4YjkwYjIwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGhlbWVzL1JFQURNRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1
cHBvcnQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc2ZmVjNzA0ZWExOWI4MmU0OGNhZGNhODUxNzJl
NzI3ODQ4YmZkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxNTMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4wLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4xLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4yLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4zLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTIuMS4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuMS4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4y
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4zLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4wLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuMi4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuMi40LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
My4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4xLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4yLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4zLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuMy40LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuMy41LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTIuNC4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4xLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4yLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4wLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTIuNS4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuNi4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4x
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4yLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4zLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuNy4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuNy4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
OC4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC4zLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC40LnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC41LnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuOC42LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuOC43LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTIuOS4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4xLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4yLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4wLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuMC4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTMuMC4zLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC40
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC41LnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC42LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC43LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuMS4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMS4xLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
MS4yLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4zLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMTAuMC5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEwLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy4yLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy4yLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjMu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjQucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjUucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4zLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy4zLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4zLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40
LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40LjEucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40LjIucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy41LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy41LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy42LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My42LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjIucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjMucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy43LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy43LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy43LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy43LjMu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy43LjQucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy44LjAucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy44LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy44LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy45LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy45
LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy45LjIucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy45LjMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtNC4wLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNC4wLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
NC4xLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4xLjEucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4yLjAucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC4yLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtNC4zLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtNC4zLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtNC40LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC40LjEu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC40LjIucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC41LjAucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtNC42LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNC42LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42
LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjQucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjUucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNC42LjYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtNC42LjcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNC42LjgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
NC42LjkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4wLjAucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4wLjEucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4xLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtNS4xLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtNS4xLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtNS4xLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4yLjAu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4yLjEucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4yLjIucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4yLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtNS4yLjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNS4zLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4z
LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4zLjIucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4zLjMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS4zLjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtNS4zLjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtNS40LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
NS40LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS40LjIucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNS40LjMucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNi4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtNi4wLjByYzEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtNi4wLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtNi4wLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNi4x
LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtNi4xLjEucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3NwcmludDIwMTYucnN0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29u
ZmlnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9u
L2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDQyYjJiNmJjODY3YTUzNWE5YjUyYWNkODJhMzE1Y2I1MmEzOWFlYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy9j
b25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxf
dGVzdG1vZHVsZV9jb25maWcvdGVzdF9oZWxsb193b3JsZC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4YzIyYWI5Mzc4ZmJkNGI1NDBlOTgzN2VjYzA0N2M2NmY4MDA3MDdk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fz
c2VydGlvbi9mYWlsdXJlX2RlbW8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3Nl
cnRpb24vdGVzdF9mYWlsdXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2Vy
dGlvbi90ZXN0X3NldHVwX2Zsb3dfZXhhbXBsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDY2YzYyYzA2YWI4ODAzZTFjNGI3NDgzYzc4NzQwZTYzMTA2MWRmYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIy
ICswLDAgQEAKLQotaW1wb3J0IHB5dGVzdAotCi0KLUBweXRlc3QuZml4dHVyZSgic2Vzc2lvbiIp
Ci1kZWYgc2V0dXAocmVxdWVzdCk6Ci0gICAgc2V0dXAgPSBDb3N0bHlTZXR1cCgpCi0gICAgeWll
bGQgc2V0dXAKLSAgICBzZXR1cC5maW5hbGl6ZSgpCi0KLQotY2xhc3MgQ29zdGx5U2V0dXAob2Jq
ZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgaW1wb3J0IHRpbWUKLQot
ICAgICAgICBwcmludCgicGVyZm9ybWluZyBjb3N0bHkgc2V0dXAiKQotICAgICAgICB0aW1lLnNs
ZWVwKDUpCi0gICAgICAgIHNlbGYudGltZWNvc3RseSA9IDEKLQotICAgIGRlZiBmaW5hbGl6ZShz
ZWxmKToKLSAgICAgICAgZGVsIHNlbGYudGltZWNvc3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5MmQ2MDA1NDg5ZWJlZTYyY2RlMDIwNjZmMTljNTUyMWU2
MjA0NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDk3NjU3ODY3ZTAyMWRiZThjNjQyNjdlNWViNDc3ODQyZDY3M2Mz
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2sucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotZGVmIHRlc3RfcXVpY2soc2V0dXApOgotICAgIHBh
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1
cC9zdWIxL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzdm
NjZhMThiYTcyMDkwNDgyODQ5ZWZmNDhjZDcyYzM0Yzc3ODNlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nv
c3RseXNldHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIx
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
MS90ZXN0X3F1aWNrLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29zdGx5c2V0dXAvc3ViMi9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9jb3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViMi90ZXN0X3R3by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNl
dHVwL3N1YjIvdGVzdF90d28ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZDZl
ZTRkODk4ZmY2ZWZhNzZlNmExZDQ5MGM0Y2QxYjBlOGMwNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAot
ZGVmIHRlc3Rfc29tZXRoaW5nKHNldHVwKToKLSAgICBhc3NlcnQgc2V0dXAudGltZWNvc3RseSA9
PSAxCi0KLWRlZiB0ZXN0X3NvbWV0aGluZ19tb3JlKHNldHVwKToKLSAgICBhc3NlcnQgc2V0dXAu
dGltZWNvc3RseSA9PSAxCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9jb3N0bHlzZXR1cC9zdWIyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiYTY0MjBlYzgzZDg3NzhiYjUwYmJlYTBhNzBmNTJlZmI5OWY3MjZiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29zdGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS9fX2luaXRfXy5weQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLSMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL3Rlc3RfcXVpY2sucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS90ZXN0X3F1aWNrLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzOGRkYTI2NjBkMjQ2ZjFlMWRhNjdjNDU2NTI0NWVkMTBhODk3NmI3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL3Rlc3RfcXVpY2sucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLWRlZiB0ZXN0X3F1aWNrKHNldHVwKToKLSAgICBwYXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJf
YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVw
L3N1Yl9hL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTA1
ODE1Y2RkMDc0OGY0YzljYzdmMzVhMDI5NmNhODlmNzU2Y2JmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nv
c3RseXNldHVwL3N1Yl9hL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
X2EvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWJfYS90ZXN0X3F1aWNrLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9jb3N0bHlzZXR1cC9zdWJfYi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL2Nvc3RseXNldHVwL3N1Yl9iL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3OTJkNjAwNTQ4OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWJfYi90ZXN0X3R3by5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjE2NTNhYWFiODhhNTE3YTY2NzJiNjI1MzhkNzY0OTQzY2Q0YzY4My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9jb3N0bHlzZXR1cC9zdWJfYi90ZXN0X3R3by5weQorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotZGVmIHRlc3Rfc29tZXRoaW5nKHNldHVwKToKLSAgICBhc3NlcnQgc2V0dXAudGlt
ZWNvc3RseSA9PSAxCi0KLQotZGVmIHRlc3Rfc29tZXRoaW5nX21vcmUoc2V0dXApOgotICAgIGFz
c2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkYTM5NzA2NTZmYjA3OTUyY2Q3OGQzNmEyYTM5YmY0Y2Yz
NzFhZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYi9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL3Rlc3RfdHdvLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzM0NWY3YzhkNTAwYTVlMzczNzc0YTQzNjc4MDE2
Y2E5OTMwMWUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvZml4dHVyZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJlNmIyMWJiZDAyYzc5NDcwYzIwMTIzZTRhNGJkNzM1M2RlODZjYzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvZml4dHVyZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9maXh0dXJlcy90
ZXN0X2ZpeHR1cmVzX29yZGVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9ub25weXRob24vX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9u
b25weXRob24vX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdl
NmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9fX2luaXRfXy5weQpA
QCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3ZjBlOTliMDkyMGMwZjQ2OGNh
OWE1ZGMzM2M0ODM2M2JmYjA5N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvbm9ucHl0aG9uL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbm9ucHl0aG9uL3Rlc3Rfc2ltcGxlLnlhbWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL3B5MnB5My9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL3B5MnB5My9jb25mdGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWQ5YTA3ZTNlMzJhY2I0YmZiNDA2ZDMwMWRmNGFlNTM3YzRlZDcyYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9weTJweTMvY29uZnRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1pbXBv
cnQgc3lzCi1pbXBvcnQgcHl0ZXN0Ci0KLXB5MyA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMwot
Ci0KLWNsYXNzIER1bW15Q29sbGVjdG9yKHB5dGVzdC5jb2xsZWN0LkZpbGUpOgotCi0gICAgZGVm
IGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQotCi0KLWRlZiBweXRlc3RfcHljb2xs
ZWN0X21ha2Vtb2R1bGUocGF0aCwgcGFyZW50KToKLSAgICBibiA9IHBhdGguYmFzZW5hbWUKLSAg
ICBpZiAicHkzIiBpbiBibiBhbmQgbm90IHB5MyBvciAoInB5MiIgaW4gYm4gYW5kIHB5Myk6Ci0g
ICAgICAgIHJldHVybiBEdW1teUNvbGxlY3RvcihwYXRoLCBwYXJlbnQ9cGFyZW50KQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NjRhY2YxNzhhMDAwZDY2ZmViOTlkMWZiOTZjMmIyMzc0NjNlYjI4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5Mi5weQorKysgL2Rldi9udWxsCkBAIC0x
LDYgKzAsMCBAQAotCi1kZWYgdGVzdF9leGNlcHRpb25fc3ludGF4KCk6Ci0gICAgdHJ5OgotICAg
ICAgICAwLzAKLSAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IsIGU6Ci0gICAgICAgIHBhc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5My5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5My5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmFmMGZmYmQ4MjIwNmUzMjQyNjNkODliM2M3YTY5Y2U1
YTBiNTdhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTMucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLWRlZiB0ZXN0X2V4Y2VwdGlvbl9zeW50YXgoKToKLSAgICB0cnk6
Ci0gICAgICAgIDAgLyAwCi0gICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yIGFzIGU6Ci0gICAg
ICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4YThjOTRmNGU1YWY2YjU5
N2Q4ZWVjODU1MTMwM2ZiZjUxYzZiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9weTJweTMvdGVzdF9weTIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eTJweTMvdGVzdF9weTMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlYmRhYWQxZDI1MDZkNWY3MjA2ZmFl
M2Y1MDNjNzRiMjA4NmY4YTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhh
bXBsZS9hdHRpYy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb25mdGVzdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL21hcmtlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbXVsdGlw
eXRob24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24ucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcGFyYW1ldHJpemUucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL3B5dGhvbmNvbGxlY3Rpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcmVw
b3J0aW5nZGVtby5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvc3BlY2lhbC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS94ZmFpbF9kZW1vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
aW1nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhlZTMxYjc4YTAwMjRiNDIxYjFjM2E0
MjJkMDY3ZWZhMWI0YTA2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9jcmFt
ZXIyLnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZmF2aWNvbi5wbmcKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vaW1nL2ZyZWlidXJnMi5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2dheW5v
cjMucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9rZWxlc2hldi5wbmcKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vaW1nL3B1bGxyZXF1ZXN0LnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHls
aWIucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weXRlc3QxLnBuZwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9pbWcvdGhldW5pLnBuZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3By
b3Bvc2Fscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNzM1ZWZmZTk5NGQ4
ZTE3ODljNzdiMjFmNDE3OTJiMTgzYzlhMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fscy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0dXJlcy5yc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGljLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L2F0dGljLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY5NDQ2NjFj
YjVjZTcxNTBhZDlkZmZlN2U1MzlkZGYxOGQ4YTA4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9hdHRpYy5yc3QK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTcgKzAsMCBAQAotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLUFUVElDIGRvY3VtZW50YXRpb24KLT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVhYWCBSRVZJRVcgYW5kIHJl
bW92ZSB0aGUgYmVsb3cgIFhYWAotCi1DdXN0b21pemluZyB0aGUgdGVzdGluZyBwcm9jZXNzCi09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXdyaXRpbmcgY29uZnRlc3QucHkgZmls
ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVlvdSBtYXkgcHV0IGNv
bmZ0ZXN0LnB5IGZpbGVzIGNvbnRhaW5pbmcgcHJvamVjdC1zcGVjaWZpYwotY29uZmlndXJhdGlv
biBpbiB5b3VyIHByb2plY3QncyByb290IGRpcmVjdG9yeSwgaXQncyB1c3VhbGx5Ci1iZXN0IHRv
IHB1dCBpdCBqdXN0IGludG8gdGhlIHNhbWUgZGlyZWN0b3J5IGxldmVsIGFzIHlvdXIKLXRvcG1v
c3QgYGBfX2luaXRfXy5weWBgLiAgSW4gZmFjdCwgYGBweXRlc3RgYCBwZXJmb3JtcwotYW4gInVw
d2FyZHMiIHNlYXJjaCBzdGFydGluZyBmcm9tIHRoZSBkaXJlY3RvcnkgdGhhdCB5b3Ugc3BlY2lm
eQotdG8gYmUgdGVzdGVkIGFuZCB3aWxsIGxvb2t1cCBjb25maWd1cmF0aW9uIHZhbHVlcyByaWdo
dC10by1sZWZ0LgotWW91IG1heSBoYXZlIG9wdGlvbnMgdGhhdCByZXNpZGUgZS5nLiBpbiB5b3Vy
IGhvbWUgZGlyZWN0b3J5Ci1idXQgbm90ZSB0aGF0IHByb2plY3Qgc3BlY2lmaWMgc2V0dGluZ3Mg
d2lsbCBiZSBjb25zaWRlcmVkCi1maXJzdC4gIFRoZXJlIGlzIGEgZmxhZyB0aGF0IGhlbHBzIHlv
dSBkZWJ1Z2dpbmcgeW91cgotY29uZnRlc3QucHkgY29uZmlndXJhdGlvbnM6OgotCi0gICAgcHl0
ZXN0IC0tdHJhY2UtY29uZmlnCi0KLQotY3VzdG9taXppbmcgdGhlIGNvbGxlY3RpbmcgYW5kIHJ1
bm5pbmcgcHJvY2VzcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLQotVG8gaW50cm9kdWNlIGRpZmZlcmVudCB0ZXN0IGl0ZW1zIHlvdSBjYW4gY3JlYXRl
Ci1vbmUgb3IgbW9yZSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgaW4geW91ciBwcm9qZWN0LgotV2hl
biB0aGUgY29sbGVjdGlvbiBwcm9jZXNzIHRyYXZlcnNlcyBkaXJlY3RvcmllcwotYW5kIG1vZHVs
ZXMgdGhlIGRlZmF1bHQgY29sbGVjdG9ycyB3aWxsIHByb2R1Y2UKLWN1c3RvbSBDb2xsZWN0b3Jz
IGFuZCBJdGVtcyBpZiB0aGV5IGFyZSBmb3VuZAotaW4gYSBsb2NhbCBgYGNvbmZ0ZXN0LnB5YGAg
ZmlsZS4KLQotCi1DdXN0b21pemluZyB0aGUgY29sbGVjdGlvbiBwcm9jZXNzIGluIGEgbW9kdWxl
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUlmIHlv
dSBoYXZlIGEgbW9kdWxlIHdoZXJlIHlvdSB3YW50IHRvIHRha2UgcmVzcG9uc2liaWxpdHkgZm9y
Ci1jb2xsZWN0aW5nIHlvdXIgb3duIHRlc3QgSXRlbXMgYW5kIHBvc3NpYmx5IGV2ZW4gZm9yIGV4
ZWN1dGluZwotYSB0ZXN0IHRoZW4geW91IGNhbiBwcm92aWRlIGBnZW5lcmF0aXZlIHRlc3RzYF8g
dGhhdCB5aWVsZAotY2FsbGFibGVzIGFuZCBwb3NzaWJseSBhcmd1bWVudHMgYXMgYSB0dXBsZS4g
ICBUaGlzIGlzIGVzcGVjaWFsbHkKLXVzZWZ1bCBmb3IgY2FsbGluZyBhcHBsaWNhdGlvbiB0ZXN0
IG1hY2hpbmVyeSB3aXRoIGRpZmZlcmVudAotcGFyYW1ldGVyIHNldHMgYnV0IGNvdW50aW5nIGVh
Y2ggb2YgdGhlIGNhbGxzIGFzIGEgc2VwYXJhdGUKLXRlc3RzLgotCi0uLiBfYGdlbmVyYXRpdmUg
dGVzdHNgOiBmZWF0dXJlcy5odG1sI2dlbmVyYXRpdmUtdGVzdHMKLQotVGhlIG90aGVyIGV4dGVu
c2lvbiBwb3NzaWJpbGl0eSBpcyBhYm91dAotc3BlY2lmeWluZyBhIGN1c3RvbSB0ZXN0IGBgSXRl
bWBgIGNsYXNzIHdoaWNoCi1pcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCBhbmQgZXhlY3V0
aW5nIGFuIHVuZGVybHlpbmcKLXRlc3QuICBPciB5b3UgY2FuIGV4dGVuZCB0aGUgY29sbGVjdGlv
biBwcm9jZXNzIGZvciBhIHdob2xlCi1kaXJlY3RvcnkgdHJlZSBieSBwdXR0aW5nIEl0ZW1zIGlu
IGEgYGBjb25mdGVzdC5weWBgIGNvbmZpZ3VyYXRpb24gZmlsZS4KLVRoZSBjb2xsZWN0aW9uIHBy
b2Nlc3MgZHluYW1pY2FsbHkgY29uc3VsdHMgdGhlICpjaGFpbiBvZiBjb25mdGVzdC5weSoKLW1v
ZHVsZXMgdG8gZGV0ZXJtaW5lIGNvbGxlY3RvcnMgYW5kIGl0ZW1zIGF0IGBgRGlyZWN0b3J5YGAs
IGBgTW9kdWxlYGAsCi1gYENsYXNzYGAsIGBgRnVuY3Rpb25gYCBvciBgYEdlbmVyYXRvcmBgIGxl
dmVsIHJlc3BlY3RpdmVseS4KLQotQ3VzdG9taXppbmcgZXhlY3V0aW9uIG9mIEl0ZW1zIGFuZCBG
dW5jdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLQotLSBgYHB5dGVzdC5GdW5jdGlvbmBgIHRlc3QgaXRlbXMgY29udHJvbCBleGVjdXRp
b24KLSAgb2YgYSB0ZXN0IGZ1bmN0aW9uIHRocm91Z2ggaXRzIGBgZnVuY3Rpb24ucnVudGVzdCgp
YGAgbWV0aG9kLgotICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyBz
ZXR1cCBhbmQgdGVhcmRvd24KLSAgKCJUZXN0IEZpeHR1cmVzIikgZm9yIGEgdGVzdCBGdW5jdGlv
bi4KLQotLSBgYEZ1bmN0aW9uLmV4ZWN1dGUodGFyZ2V0LCAqYXJncylgYCBtZXRob2RzIGFyZSBp
bnZva2VkIGJ5Ci0gIHRoZSBkZWZhdWx0IGBgRnVuY3Rpb24ucnVuKClgYCB0byBhY3R1YWxseSBl
eGVjdXRlIGEgcHl0aG9uCi0gIGZ1bmN0aW9uIHdpdGggdGhlIGdpdmVuICh1c3VhbGx5IGVtcHR5
IHNldCBvZikgYXJndW1lbnRzLgotCi0uLiBfYHB5LWRldiBtYWlsaW5nIGxpc3RgOiBodHRwOi8v
Y29kZXNwZWFrLm5ldC9tYWlsbWFuL2xpc3RpbmZvL3B5LWRldgotCi0KLS4uIF9gdGVzdCBnZW5l
cmF0b3JzYDogZnVuY2FyZ3MuaHRtbCN0ZXN0LWdlbmVyYXRvcnMKLQotLi4gX2BnZW5lcmF0aXZl
IHRlc3RzYDoKLQotZ2VuZXJhdGl2ZSB0ZXN0czogeWllbGRpbmcgcGFyYW1ldHJpemVkIHRlc3Rz
Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0K
LURlcHJlY2F0ZWQgc2luY2UgMS4wIGluIGZhdm91ciBvZiBgdGVzdCBnZW5lcmF0b3JzYF8uCi0K
LSpHZW5lcmF0aXZlIHRlc3RzKiBhcmUgdGVzdCBtZXRob2RzIHRoYXQgYXJlICpnZW5lcmF0b3Ig
ZnVuY3Rpb25zKiB3aGljaAotYGB5aWVsZGBgIGNhbGxhYmxlcyBhbmQgdGhlaXIgYXJndW1lbnRz
LiAgVGhpcyBpcyB1c2VmdWwgZm9yIHJ1bm5pbmcgYQotdGVzdCBmdW5jdGlvbiBtdWx0aXBsZSB0
aW1lcyBhZ2FpbnN0IGRpZmZlcmVudCBwYXJhbWV0ZXJzLiAgRXhhbXBsZTo6Ci0KLSAgICBkZWYg
dGVzdF9nZW5lcmF0aXZlKCk6Ci0gICAgICAgIGZvciB4IGluICg0MiwxNyw0OSk6Ci0gICAgICAg
ICAgICB5aWVsZCBjaGVjaywgeAotCi0gICAgZGVmIGNoZWNrKGFyZyk6Ci0gICAgICAgIGFzc2Vy
dCBhcmcgJSA3ID09IDAgICAjIHNlY29uZCBnZW5lcmF0ZWQgdGVzdHMgZmFpbHMhCi0KLU5vdGUg
dGhhdCBgYHRlc3RfZ2VuZXJhdGl2ZSgpYGAgd2lsbCBjYXVzZSB0aHJlZSB0ZXN0cwotdG8gZ2V0
IHJ1biwgbm90YWJseSBgYGNoZWNrKDQyKWBgLCBgYGNoZWNrKDE3KWBgIGFuZCBgYGNoZWNrKDQ5
KWBgCi1vZiB3aGljaCB0aGUgbWlkZGxlIG9uZSB3aWxsIG9idmlvdXNseSBmYWlsLgotCi1UbyBt
YWtlIGl0IGVhc2llciB0byBkaXN0aW5ndWlzaCB0aGUgZ2VuZXJhdGVkIHRlc3RzIGl0IGlzIHBv
c3NpYmxlIHRvIHNwZWNpZnkgYW4gZXhwbGljaXQgbmFtZSBmb3IgdGhlbSwgbGlrZSBmb3IgZXhh
bXBsZTo6Ci0KLSAgICBkZWYgdGVzdF9nZW5lcmF0aXZlKCk6Ci0gICAgICAgIGZvciB4IGluICg0
MiwxNyw0OSk6Ci0gICAgICAgICAgICB5aWVsZCAiY2FzZSAlZCIgJSB4LCBjaGVjaywgeAotCi0K
LWRpc2FibGluZyBhIHRlc3QgY2xhc3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotSWYgeW91
IHdhbnQgdG8gZGlzYWJsZSBhIGNvbXBsZXRlIHRlc3QgY2xhc3MgeW91Ci1jYW4gc2V0IHRoZSBj
bGFzcy1sZXZlbCBhdHRyaWJ1dGUgYGBkaXNhYmxlZGBgLgotRm9yIGV4YW1wbGUsIGluIG9yZGVy
IHRvIGF2b2lkIHJ1bm5pbmcgc29tZSB0ZXN0cyBvbiBXaW4zMjo6Ci0KLSAgICBjbGFzcyBUZXN0
UG9zaXhPbmx5KG9iamVjdCk6Ci0gICAgICAgIGRpc2FibGVkID0gc3lzLnBsYXRmb3JtID09ICd3
aW4zMicKLQotICAgICAgICBkZWYgdGVzdF94eHgoc2VsZik6Ci0gICAgICAgICAgICAuLi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvY29uZmlnLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNiYTVhNDZmOTgyZWFhMmE3NzhjZjg2NWIwNTAzZDMwYzhhYWI4ZGMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
Y29uZmlnLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLSAgICA8
aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBV
Ukw9Y3VzdG9taXplLmh0bWwiIC8+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci12YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRv
Y3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cu
Iik7Ci1kb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0
ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNF
JTNDL3NjcmlwdCUzRSIpKTsKLTwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgotdHJ5IHsKLXZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcy
NzQtMyIpOwotcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7fTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvZGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZGlzdC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzI4NTUwYTg1Y2IxMDUyMWFjMjE2YjI1
OTFmMjY4OWU0NjRlOTE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2Rpc3QuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRwLWVx
dWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1wbHVnaW4veGRpc3QuaHRtbCIgLz4KLSAg
ICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LXZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wp
ID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNj
YXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20v
Z2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFj
a2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJh
Y2tQYWdldmlldygpOwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
Ci0gICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9leHRlbmQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYmE1YTQ2Zjk4MmVhYTJhNzc4Y2Y4NjViMDUwM2QzMGM4YWFiOGRjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L2V4dGVuZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPGh0
bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRl
bnQ9IiAxIDsgVVJMPWN1c3RvbWl6ZS5odG1sIiAvPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIGdhSnNIb3N0ID0gKCgiaHR0
cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJo
dHRwOi8vd3d3LiIpOwotZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIg
KyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZh
c2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLXRyeSB7Ci12YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2Vy
KCJVQS03NTk3Mjc0LTMiKTsKLXBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7Ci19IGNhdGNo
KGVycikge308L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLSAgICAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L2luZGV4LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWEzYjVhNTRkYTA4YzY3
MmMzYWY5NzJlNDdiZjdkNDZlODg2MWI1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9pbmRleC5yc3QKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLXB5dGVzdCBkb2N1bWVudGF0aW9uIGluZGV4Ci09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLQotCi1mZWF0dXJlc186IG92ZXJ2aWV3IGFuZCBkaXNjdXNz
aW9uIG9mIGZlYXR1cmVzLgotCi1xdWlja3N0YXJ0XzogZ2V0dGluZyBzdGFydGVkIHdpdGggd3Jp
dGluZyBhIHNpbXBsZSB0ZXN0LgotCi1gdGFsa3MsIHR1dG9yaWFscywgZXhhbXBsZXNgXzogdHV0
b3JpYWwgZXhhbXBsZXMsIHNsaWRlcwotCi1mdW5jYXJnc186IHBvd2VyZnVsIHBhcmFtZXRyaXpl
ZCB0ZXN0IGZ1bmN0aW9uIHNldHVwCi0KLWBwbHVnaW5zYF86IGxpc3Qgb2YgYXZhaWxhYmxlIHBs
dWdpbnMgd2l0aCB1c2FnZSBleGFtcGxlcyBhbmQgZmVhdHVyZSBkZXRhaWxzLgotCi1jdXN0b21p
emVfOiBjb25maWd1cmF0aW9uLCBjdXN0b21pemF0aW9uLCBleHRlbnNpb25zCi0KLWNoYW5nZWxv
Z186IGhpc3Rvcnkgb2YgY2hhbmdlcyBjb3ZlcmluZyBsYXN0IHJlbGVhc2VzCi0KLSoqQ29udGlu
dW91cyBJbnRlZ3JhdGlvbiBvZiBweXRlc3QncyBvd24gdGVzdHMgYW5kIHBsdWdpbnMgd2l0aCBI
dWRzb24qKjoKLQotICAgIGBodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0YF8K
LQotLi4gX2BodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0YDogaHR0cDovL2h1
ZHNvbi50ZXN0cnVuLm9yZy92aWV3L3B5dGVzdC8KLQotCi0uLiBfY2hhbmdlbG9nOiAuLi9jaGFu
Z2Vsb2cuaHRtbAotLi4gX2BwbHVnaW5zYDogcGx1Z2luL2luZGV4Lmh0bWwKLS4uIF9gdGFsa3Ms
IHR1dG9yaWFscywgZXhhbXBsZXNgOiB0YWxrcy5odG1sCi0uLiBfcXVpY2tzdGFydDogcXVpY2tz
dGFydC5odG1sCi0uLiBfZmVhdHVyZXM6IGZlYXR1cmVzLmh0bWwKLS4uIF9mdW5jYXJnczogZnVu
Y2FyZ3MuaHRtbAotLi4gX2N1c3RvbWl6ZTogY3VzdG9taXplLmh0bWwKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9taXNzaW9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L21pc3Npb24ucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWMyNTJk
YzBkODZhNGM0MTc1M2Q2NTYxOTgzMjFhYThkOWUzMjRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24u
cnN0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotCi1NaXNzaW9uCi09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotYGBweXRlc3RgYCBzdHJpdmVzIHRvIG1ha2Ug
dGVzdGluZyBhIGZ1biBhbmQgbm8tYm9pbGVycGxhdGUgZWZmb3J0LgotCi1UaGUgdG9vbCBpcyBk
aXN0cmlidXRlZCBhcyBhIGBweXRlc3RgIHBhY2thZ2UuICBJdHMgcHJvamVjdCBpbmRlcGVuZGVu
dAotYGBweXRlc3RgYCBjb21tYW5kIGxpbmUgdG9vbCBoZWxwcyB5b3UgdG86Ci0KLSogcmFwaWRs
eSBjb2xsZWN0IGFuZCBydW4gdGVzdHMKLSogcnVuIHVuaXQtIG9yIGRvY3Rlc3RzLCBmdW5jdGlv
bmFsIG9yIGludGVncmF0aW9uIHRlc3RzCi0qIGRpc3RyaWJ1dGUgdGVzdHMgdG8gbXVsdGlwbGUg
ZW52aXJvbm1lbnRzCi0qIHVzZSBsb2NhbCBvciBnbG9iYWwgcGx1Z2lucyBmb3IgY3VzdG9tIHRl
c3QgdHlwZXMgYW5kIHNldHVwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vY292LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDFjN2VmOTQ3OTM0ZWE1NmFhZjUwMjI4ZDMx
Mjk3NTc0YjVhNTdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0CisrKyAvZGV2L251bGwK
QEAgLTEsMjMwICswLDAgQEAKLQotcHJvZHVjZSBjb2RlIGNvdmVyYWdlIHJlcG9ydHMgdXNpbmcg
dGhlICdjb3ZlcmFnZScgcGFja2FnZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIGRpc3RyaWJ1dGVk
IHRlc3RpbmcuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQotVGhpcyBwbHVnaW4gcHJvZHVjZXMgY292
ZXJhZ2UgcmVwb3J0cy4gIEl0IHN1cHBvcnRzIGNlbnRyYWxpc2VkIHRlc3RpbmcgYW5kIGRpc3Ry
aWJ1dGVkIHRlc3RpbmcgaW4KLWJvdGggbG9hZCBhbmQgZWFjaCBtb2Rlcy4gIEl0IGFsc28gc3Vw
cG9ydHMgY292ZXJhZ2Ugb2Ygc3VicHJvY2Vzc2VzLgotCi1BbGwgZmVhdHVyZXMgb2ZmZXJlZCBi
eSB0aGUgY292ZXJhZ2UgcGFja2FnZSBzaG91bGQgYmUgYXZhaWxhYmxlLCBlaXRoZXIgdGhyb3Vn
aCBweXRlc3QtY292IG9yCi10aHJvdWdoIGNvdmVyYWdlJ3MgY29uZmlnIGZpbGUuCi0KLQotSW5z
dGFsbGF0aW9uCi0tLS0tLS0tLS0tLS0KLQotVGhlIGBweXRlc3QtY292YF8gcGFja2FnZSBtYXkg
YmUgaW5zdGFsbGVkIHdpdGggcGlwIG9yIGVhc3lfaW5zdGFsbDo6Ci0KLSAgICBwaXAgaW5zdGFs
bCBweXRlc3QtY292Ci0gICAgZWFzeV9pbnN0YWxsIHB5dGVzdC1jb3YKLQotLi4gX2BweXRlc3Qt
Y292YDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1jb3YvCi0KLQotVW5pbnN0
YWxsYXRpb24KLS0tLS0tLS0tLS0tLS0tCi0KLVVuaW5zdGFsbGluZyBwYWNrYWdlcyBpcyBzdXBw
b3J0ZWQgYnkgcGlwOjoKLQotICAgIHBpcCB1bmluc3RhbGwgcHl0ZXN0LWNvdgotCi1Ib3dldmVy
IGVhc3lfaW5zdGFsbCBkb2VzIG5vdCBwcm92aWRlIGFuIHVuaW5zdGFsbCBmYWNpbGl0eS4KLQot
Li4gSU1QT1JUQU5UOjoKLQotICAgIEVuc3VyZSB0aGF0IHlvdSBtYW51YWxseSBkZWxldGUgdGhl
IGluaXRfY292bWFpbi5wdGggZmlsZSBpbiB5b3VyCi0gICAgc2l0ZS1wYWNrYWdlcyBkaXJlY3Rv
cnkuCi0KLSAgICBUaGlzIGZpbGUgc3RhcnRzIGNvdmVyYWdlIGNvbGxlY3Rpb24gb2Ygc3VicHJv
Y2Vzc2VzIGlmIGFwcHJvcHJpYXRlIGR1cmluZwotICAgIHNpdGUgaW5pdGlhbGl6YXRpb24gYXQg
cHl0aG9uIHN0YXJ0dXAuCi0KLQotVXNhZ2UKLS0tLS0tCi0KLUNlbnRyYWxpc2VkIFRlc3RpbmcK
LX5+fn5+fn5+fn5+fn5+fn5+fn4KLQotQ2VudHJhbGlzZWQgdGVzdGluZyB3aWxsIHJlcG9ydCBv
biB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgdGhlIG1haW4gcHJvY2VzcyBhbmQgYWxsIG9mIGl0
J3MKLXN1YnByb2Nlc3Nlcy4KLQotUnVubmluZyBjZW50cmFsaXNlZCB0ZXN0aW5nOjoKLQotICAg
IHB5dGVzdCAtLWNvdiBteXByb2ogdGVzdHMvCi0KLVNob3dzIGEgdGVybWluYWwgcmVwb3J0OjoK
LQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51eDIsIHB5
dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIE5hbWUgICAgICAg
ICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIgICAgICAw
ICAgMTAwJQotICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5NCUKLSAg
ICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCi0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIFRPVEFMICAgICAgICAgICAgICAg
ICAgMzUzICAgICAyMCAgICA5NCUKLQotCi1EaXN0cmlidXRlZCBUZXN0aW5nOiBMb2FkCi1+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0KLURpc3RyaWJ1dGVkIHRlc3Rpbmcgd2l0aCBkaXN0IG1v
ZGUgc2V0IHRvIGxvYWQgd2lsbCByZXBvcnQgb24gdGhlIGNvbWJpbmVkIGNvdmVyYWdlIG9mIGFs
bCBzbGF2ZXMuCi1UaGUgc2xhdmVzIG1heSBiZSBzcHJlYWQgb3V0IG92ZXIgYW55IG51bWJlciBv
ZiBob3N0cyBhbmQgZWFjaCBzbGF2ZSBtYXkgYmUgbG9jYXRlZCBhbnl3aGVyZSBvbiB0aGUKLWZp
bGUgc3lzdGVtLiAgRWFjaCBzbGF2ZSB3aWxsIGhhdmUgaXQncyBzdWJwcm9jZXNzZXMgbWVhc3Vy
ZWQuCi0KLVJ1bm5pbmcgZGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8g
bG9hZDo6Ci0KLSAgICBweXRlc3QgLS1jb3YgbXlwcm9qIC1uIDIgdGVzdHMvCi0KLVNob3dzIGEg
dGVybWluYWwgcmVwb3J0OjoKLQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBw
bGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgIE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKLSAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgbXlwcm9qL19faW5pdF9f
ICAgICAgICAgIDIgICAgICAwICAgMTAwJQotICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3
ICAgICAxMyAgICA5NCUKLSAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAg
OTIlCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIFRP
VEFMICAgICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKLQotCi1BZ2FpbiBidXQgc3By
ZWFkIG92ZXIgZGlmZmVyZW50IGhvc3RzIGFuZCBkaWZmZXJlbnQgZGlyZWN0b3JpZXM6OgotCi0g
ICAgcHl0ZXN0IC0tY292IG15cHJvaiAtLWRpc3QgbG9hZAotICAgICAgICAgICAgLS10eCBzc2g9
bWVtZWRvdWdoQGhvc3QxLy9jaGRpcj10ZXN0ZW52MQotICAgICAgICAgICAgLS10eCBzc2g9bWVt
ZWRvdWdoQGhvc3QyLy9jaGRpcj0vdG1wL3Rlc3RlbnYyLy9weXRob249L3RtcC9lbnYxL2Jpbi9w
eXRob24KLSAgICAgICAgICAgIC0tcnN5bmNkaXIgbXlwcm9qIC0tcnN5bmNkaXIgdGVzdHMgLS1y
c3luYyBleGFtcGxlcwotICAgICAgICAgICAgdGVzdHMvCi0KLVNob3dzIGEgdGVybWluYWwgcmVw
b3J0OjoKLQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51
eDIsIHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIE5hbWUg
ICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKLSAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIg
ICAgICAwICAgMTAwJQotICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5
NCUKLSAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCi0gICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIFRPVEFMICAgICAgICAg
ICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKLQotCi1EaXN0cmlidXRlZCBUZXN0aW5nOiBFYWNo
Ci1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0KLURpc3RyaWJ1dGVkIHRlc3Rpbmcgd2l0aCBk
aXN0IG1vZGUgc2V0IHRvIGVhY2ggd2lsbCByZXBvcnQgb24gdGhlIGNvbWJpbmVkIGNvdmVyYWdl
IG9mIGFsbCBzbGF2ZXMuCi1TaW5jZSBlYWNoIHNsYXZlIGlzIHJ1bm5pbmcgYWxsIHRlc3RzIHRo
aXMgYWxsb3dzIGdlbmVyYXRpbmcgYSBjb21iaW5lZCBjb3ZlcmFnZSByZXBvcnQgZm9yIG11bHRp
cGxlCi1lbnZpcm9ubWVudHMuCi0KLVJ1bm5pbmcgZGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRp
c3QgbW9kZSBzZXQgdG8gZWFjaDo6Ci0KLSAgICBweXRlc3QgLS1jb3YgbXlwcm9qIC0tZGlzdCBl
YWNoCi0gICAgICAgICAgICAtLXR4IHBvcGVuLy9jaGRpcj0vdG1wL3Rlc3RlbnYzLy9weXRob249
L3Vzci9sb2NhbC9weXRob24yNy9iaW4vcHl0aG9uCi0gICAgICAgICAgICAtLXR4IHNzaD1tZW1l
ZG91Z2hAaG9zdDIvL2NoZGlyPS90bXAvdGVzdGVudjQvL3B5dGhvbj0vdG1wL2VudjIvYmluL3B5
dGhvbgotICAgICAgICAgICAgLS1yc3luY2RpciBteXByb2ogLS1yc3luY2RpciB0ZXN0cyAtLXJz
eW5jIGV4YW1wbGVzCi0gICAgICAgICAgICB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBv
cnQ6OgotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3Zl
cmFnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYuNS1maW5hbC0w
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAy
LjcuMC1maW5hbC0wCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3Zl
cgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXBy
b2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAg
ICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0
ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLVJl
cG9ydGluZwotLS0tLS0tLS0tCi0KLUl0IGlzIHBvc3NpYmxlIHRvIGdlbmVyYXRlIGFueSBjb21i
aW5hdGlvbiBvZiB0aGUgcmVwb3J0cyBmb3IgYSBzaW5nbGUgdGVzdCBydW4uCi0KLVRoZSBhdmFp
bGFibGUgcmVwb3J0cyBhcmUgdGVybWluYWwgKHdpdGggb3Igd2l0aG91dCBtaXNzaW5nIGxpbmUg
bnVtYmVycyBzaG93biksIEhUTUwsIFhNTCBhbmQKLWFubm90YXRlZCBzb3VyY2UgY29kZS4KLQot
VGhlIHRlcm1pbmFsIHJlcG9ydCB3aXRob3V0IGxpbmUgbnVtYmVycyAoZGVmYXVsdCk6OgotCi0g
ICAgcHl0ZXN0IC0tY292LXJlcG9ydCB0ZXJtIC0tY292IG15cHJvaiB0ZXN0cy8KLQotICAgIC0t
LS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51eDIsIHB5dGhvbiAyLjYu
NC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIE5hbWUgICAgICAgICAgICAgICAg
IFN0bXRzICAgTWlzcyAgQ292ZXIKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIgICAgICAwICAgMTAwJQot
ICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5NCUKLSAgICBteXByb2ov
ZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIFRPVEFMICAgICAgICAgICAgICAgICAgMzUzICAg
ICAyMCAgICA5NCUKLQotCi1UaGUgdGVybWluYWwgcmVwb3J0IHdpdGggbGluZSBudW1iZXJzOjoK
LQotICAgIHB5dGVzdCAtLWNvdi1yZXBvcnQgdGVybS1taXNzaW5nIC0tY292IG15cHJvaiB0ZXN0
cy8KLQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlOiBwbGF0Zm9ybSBsaW51eDIs
IHB5dGhvbiAyLjYuNC1maW5hbC0wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIE5hbWUgICAg
ICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIgICBNaXNzaW5nCi0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19p
bml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAg
ICAyNTcgICAgIDEzICAgIDk0JSAgIDI0LTI2LCA5OSwgMTQ5LCAyMzMtMjM2LCAyOTctMjk4LCAz
NjktMzcwCi0gICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJSAgIDE4
My0xODgsIDE5NwotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQot
Ci0KLVRoZSByZW1haW5pbmcgdGhyZWUgcmVwb3J0cyBvdXRwdXQgdG8gZmlsZXMgd2l0aG91dCBz
aG93aW5nIGFueXRoaW5nIG9uIHRoZSB0ZXJtaW5hbCAodXNlZnVsIGZvcgotd2hlbiB0aGUgb3V0
cHV0IGlzIGdvaW5nIHRvIGEgY29udGludW91cyBpbnRlZ3JhdGlvbiBzZXJ2ZXIpOjoKLQotICAg
IHB5dGVzdCAtLWNvdi1yZXBvcnQgaHRtbCAtLWNvdi1yZXBvcnQgeG1sIC0tY292LXJlcG9ydCBh
bm5vdGF0ZSAtLWNvdiBteXByb2ogdGVzdHMvCi0KLQotQ292ZXJhZ2UgRGF0YSBGaWxlCi0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotVGhlIGRhdGEgZmlsZSBpcyBlcmFzZWQgYXQgdGhlIGJlZ2lubmlu
ZyBvZiB0ZXN0aW5nIHRvIGVuc3VyZSBjbGVhbiBkYXRhIGZvciBlYWNoIHRlc3QgcnVuLgotCi1U
aGUgZGF0YSBmaWxlIGlzIGxlZnQgYXQgdGhlIGVuZCBvZiB0ZXN0aW5nIHNvIHRoYXQgaXQgaXMg
cG9zc2libGUgdG8gdXNlIG5vcm1hbCBjb3ZlcmFnZSB0b29scyB0bwotZXhhbWluZSBpdC4KLQot
Ci1MaW1pdGF0aW9ucwotLS0tLS0tLS0tLS0KLQotRm9yIGRpc3RyaWJ1dGVkIHRlc3RpbmcgdGhl
IHNsYXZlcyBtdXN0IGhhdmUgdGhlIHB5dGVzdC1jb3YgcGFja2FnZSBpbnN0YWxsZWQuICBUaGlz
IGlzIG5lZWRlZCBzaW5jZQotdGhlIHBsdWdpbiBtdXN0IGJlIHJlZ2lzdGVyZWQgdGhyb3VnaCBz
ZXR1cHRvb2xzIC8gZGlzdHJpYnV0ZSBmb3IgcHl0ZXN0IHRvIHN0YXJ0IHRoZSBwbHVnaW4gb24g
dGhlCi1zbGF2ZS4KLQotRm9yIHN1YnByb2Nlc3MgbWVhc3VyZW1lbnQgZW52aXJvbm1lbnQgdmFy
aWFibGVzIG11c3QgbWFrZSBpdCBmcm9tIHRoZSBtYWluIHByb2Nlc3MgdG8gdGhlCi1zdWJwcm9j
ZXNzLiAgVGhlIHB5dGhvbiB1c2VkIGJ5IHRoZSBzdWJwcm9jZXNzIG11c3QgaGF2ZSBweXRlc3Qt
Y292IGluc3RhbGxlZC4gIFRoZSBzdWJwcm9jZXNzIG11c3QKLWRvIG5vcm1hbCBzaXRlIGluaXRp
YWxpemF0aW9uIHNvIHRoYXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBjYW4gYmUgZGV0ZWN0
ZWQgYW5kIGNvdmVyYWdlCi1zdGFydGVkLgotCi0KLUFja25vd2xlZGdtZW50cwotLS0tLS0tLS0t
LS0tLS0tLQotCi1Ib2xnZXIgS3Jla2VsIGZvciBweXRlc3Qgd2l0aCBpdHMgZGlzdHJpYnV0ZWQg
dGVzdGluZyBzdXBwb3J0LgotCi1OZWQgQmF0Y2hlbGRlciBmb3IgY292ZXJhZ2UgYW5kIGl0cyBh
YmlsaXR5IHRvIGNvbWJpbmUgdGhlIGNvdmVyYWdlIHJlc3VsdHMgb2YgcGFyYWxsZWwgcnVucy4K
LQotV2hpbHN0IHRoaXMgcGx1Z2luIGhhcyBiZWVuIGJ1aWx0IGZyZXNoIGZyb20gdGhlIGdyb3Vu
ZCB1cCB0byBzdXBwb3J0IGRpc3RyaWJ1dGVkIHRlc3RpbmcgaXQgaGFzCi1iZWVuIGluZmx1ZW5j
ZWQgYnkgdGhlIHdvcmsgZG9uZSBvbiBweXRlc3QtY292ZXJhZ2UgKFJvc3MgTGF3bGV5LCBKYW1l
cyBNaWxscywgSG9sZ2VyIEtyZWtlbCkgYW5kCi1ub3NlLWNvdmVyIChKYXNvbiBQZWxsZXJpbikg
d2hpY2ggYXJlIG90aGVyIGNvdmVyYWdlIHBsdWdpbnMgZm9yIHB5dGVzdCBhbmQgbm9zZSByZXNw
ZWN0aXZlbHkuCi0KLU5vIGRvdWJ0IG90aGVycyBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZXNlIHRv
b2xzIGFzIHdlbGwuCi0KLWNvbW1hbmQgbGluZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0KLWBgLS1jb3Y9cGF0aGBgCi0gICAgbWVhc3VyZSBjb3ZlcmFnZSBmb3IgZmlsZXN5c3Rl
bSBwYXRoIChtdWx0aS1hbGxvd2VkKQotYGAtLWNvdi1yZXBvcnQ9dHlwZWBgCi0gICAgdHlwZSBv
ZiByZXBvcnQgdG8gZ2VuZXJhdGU6IHRlcm0sIHRlcm0tbWlzc2luZywgYW5ub3RhdGUsIGh0bWws
IHhtbCAobXVsdGktYWxsb3dlZCkKLWBgLS1jb3YtY29uZmlnPXBhdGhgYAotICAgIGNvbmZpZyBm
aWxlIGZvciBjb3ZlcmFnZSwgZGVmYXVsdDogLmNvdmVyYWdlcmMKLQotLi4gaW5jbHVkZTo6IGxp
bmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVy
YWdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5yc3QKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMTM5ZDAwOGJhMDIwYTdmN2I2OTZhMjNjODQy
YzNmNTMzZGRjNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdAorKysgL2Rldi9u
dWxsCkBAIC0xLDUxICswLDAgQEAKLQotV3JpdGUgYW5kIHJlcG9ydCBjb3ZlcmFnZSBkYXRhIHdp
dGggdGhlICdjb3ZlcmFnZScgcGFja2FnZS4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9j
YWw6Ci0KLU5vdGU6IE9yaWdpbmFsIGNvZGUgYnkgUm9zcyBMYXdsZXkuIAotCi1JbnN0YWxsCi0t
LS0tLS0tLS0tLS0tLQotCi1Vc2UgcGlwIHRvICh1bilpbnN0YWxsOjoKLQotICAgIHBpcCBpbnN0
YWxsIHB5dGVzdC1jb3ZlcmFnZSAKLSAgICBwaXAgdW5pbnN0YWxsIHB5dGVzdC1jb3ZlcmFnZSAK
LQotb3IgYWx0ZXJuYXRpdmVseSB1c2UgZWFzeV9pbnN0YWxsIHRvIGluc3RhbGw6OgotCi0gICAg
ZWFzeV9pbnN0YWxsIHB5dGVzdC1jb3ZlcmFnZSAKLQotCi1Vc2FnZSAKLS0tLS0tLS0tLS0tLS0K
LQotVG8gZ2V0IGZ1bGwgdGVzdCBjb3ZlcmFnZSByZXBvcnRzIGZvciBhIHBhcnRpY3VsYXIgcGFj
a2FnZSB0eXBlOjoKLQotICAgIHB5dGVzdCAtLWNvdmVyLXJlcG9ydD1yZXBvcnQKLQotY29tbWFu
ZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLWNvdmVyPUNPVkVS
UEFDS0FHRVNgYAotICAgIChtdWx0aSBhbGxvd2VkKSBvbmx5IGluY2x1ZGUgaW5mbyBmcm9tIHNw
ZWNpZmllZCBwYWNrYWdlLgotYGAtLWNvdmVyLXJlcG9ydD1SRVBPUlRfVFlQRWBgCi0gICAgaHRt
bDogRGlyZWN0b3J5IGZvciBodG1sIG91dHB1dC4KLSAgICAgICAgICAgICAgICAgICAgcmVwb3J0
OiBPdXRwdXQgYSB0ZXh0IHJlcG9ydC4KLSAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGU6IEFu
bm90YXRlIHlvdXIgc291cmNlIGNvZGUgZm9yIHdoaWNoIGxpbmVzIHdlcmUgZXhlY3V0ZWQgYW5k
IHdoaWNoIHdlcmUgbm90LgotICAgICAgICAgICAgICAgICAgICB4bWw6IE91dHB1dCBhbiB4bWwg
cmVwb3J0IGNvbXBhdGlibGUgd2l0aCB0aGUgY29iZXJ0dXJhIHBsdWdpbiBmb3IgaHVkc29uLgot
YGAtLWNvdmVyLWRpcmVjdG9yeT1ESVJFQ1RPUllgYAotICAgIERpcmVjdG9yeSBmb3IgdGhlIHJl
cG9ydHMgKGh0bWwgLyBhbm5vdGF0ZSByZXN1bHRzKSBkZWZhdWx0cyB0byAuL2NvdmVyYWdlCi1g
YC0tY292ZXIteG1sLWZpbGU9WE1MX0ZJTEVgYAotICAgIEZpbGUgZm9yIHRoZSB4bWwgcmVwb3J0
IGRlZmF1bHRzIHRvIC4vY292ZXJhZ2UueG1sCi1gYC0tY292ZXItc2hvdy1taXNzaW5nYGAKLSAg
ICBTaG93IG1pc3NpbmcgZmlsZXMKLWBgLS1jb3Zlci1pZ25vcmUtZXJyb3JzPUlHTk9SRV9FUlJP
UlNgYAotICAgIElnbm9yZSBlcnJvcnMgb2YgZmluZGluZyBzb3VyY2UgZmlsZXMgZm9yIGNvZGUu
Ci0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi9kamFuZ28ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2lu
L2RqYW5nby5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2MTQ5N2IzODVlZGU1
ODQ5ZmM0YmUyNmMzOWU2NThlYzcxYjEzOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5y
c3QKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLXB5dGVzdF9kamFuZ28gcGx1Z2luIChF
WFRFUk5BTCkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1w
eXRlc3RfZGphbmdvIGlzIGEgcGx1Z2luIGZvciBgYHB5dGVzdGBgIHRoYXQgcHJvdmlkZXMgYSBz
ZXQgb2YgdXNlZnVsIHRvb2xzIGZvciB0ZXN0aW5nIERqYW5nbyBhcHBsaWNhdGlvbnMsIGNoZWNr
b3V0IEJlbiBGaXJzaG1hbidzIGBweXRlc3RfZGphbmdvIGdpdGh1YiBwYWdlYF8uCi0KLS4uIF9g
cHl0ZXN0X2RqYW5nbyBnaXRodWIgcGFnZWA6IGh0dHA6Ly9naXRodWIuY29tL2JmaXJzaC9weXRl
c3RfZGphbmdvL3RyZWUvbWFzdGVyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9maWdsZWFmLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9m
aWdsZWFmLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMxNjAzYWRlOWZjM2Rm
MTdiODIyMTgyZDhmMzU3OWIyYjZjODc4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZmlnbGVhZi5y
c3QKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0KLXJlcG9ydCB0ZXN0IGNvdmVyYWdl
IHVzaW5nIHRoZSAnZmlnbGVhZicgcGFja2FnZS4KLT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQot
SW5zdGFsbAotLS0tLS0tLS0tLS0tLS0tCi0KLVRvIGluc3RhbGwgdGhlIHBsdWdpbiBpc3N1ZTo6
Ci0KLSAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWZpZ2xlYWYgICMgb3IKLSAgICBwaXAgaW5zdGFs
bCBweXRlc3QtZmlnbGVhZiAgIAotCi1hbmQgaWYgeW91IGFyZSB1c2luZyBwaXAgeW91IGNhbiBh
bHNvIHVuaW5zdGFsbDo6Ci0KLSAgICBwaXAgdW5pbnN0YWxsIHB5dGVzdC1maWdsZWFmCi0KLQot
VXNhZ2UKLS0tLS0tLS0tLS0tLS0tLQotCi1BZnRlciBpbnN0YWxsYXRpb24geW91IGNhbiBzaW1w
bHkgdHlwZTo6Ci0KLSAgICBweXRlc3QgLS1maWdsZWFmIFsuLi5dCi0KLXRvIGVuYWJsZSBmaWds
ZWFmIGNvdmVyYWdlIGluIHlvdXIgdGVzdCBydW4uICBBIGRlZmF1bHQgIi5maWdsZWFmIiBkYXRh
IGZpbGUKLWFuZCAiaHRtbCIgZGlyZWN0b3J5IHdpbGwgYmUgY3JlYXRlZC4gIFlvdSBjYW4gdXNl
IGNvbW1hbmQgbGluZSBvcHRpb25zCi10byBjb250cm9sIHdoZXJlIGRhdGEgYW5kIGh0bWwgZmls
ZXMgYXJlIGNyZWF0ZWQuCi0KLWNvbW1hbmQgbGluZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi0KLWBgLS1maWdsZWFmYGAKLSAgICB0cmFjZSBweXRob24gY292ZXJhZ2Ugd2l0aCBm
aWdsZWFmIGFuZCB3cml0ZSBIVE1MIGZvciBmaWxlcyBiZWxvdyB0aGUgY3VycmVudCB3b3JraW5n
IGRpcgotYGAtLWZpZy1kYXRhPWRpcmBgCi0gICAgc2V0IHRyYWNpbmcgZmlsZSwgZGVmYXVsdDog
Ii5maWdsZWFmIi4KLWBgLS1maWctaHRtbD1kaXJgYAotICAgIHNldCBodG1sIHJlcG9ydGluZyBk
aXIsIGRlZmF1bHQgImh0bWwiLgotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNvbmZpZy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDMyNmI3NWM0NTUyZTE0MmFhOWRmYTU1YmFmMTY2NzA0NmQ3MTEzNjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMzYg
KzAsMCBAQAotCi1wcm92aWRlIHZlcnNpb24gaW5mbywgY29uZnRlc3QvZW52aXJvbm1lbnQgY29u
ZmlnIG5hbWVzLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQotCi0KLWNvbW1hbmQg
bGluZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWBgLS12ZXJzaW9uYGAKLSAg
ICBkaXNwbGF5IHB5IGxpYiB2ZXJzaW9uIGFuZCBpbXBvcnQgaW5mb3JtYXRpb24uCi1gYC1wIG5h
bWVgYAotICAgIGVhcmx5LWxvYWQgZ2l2ZW4gcGx1Z2luIChtdWx0aS1hbGxvd2VkKS4KLWBgLS10
cmFjZS1jb25maWdgYAotICAgIHRyYWNlIGNvbnNpZGVyYXRpb25zIG9mIGNvbmZ0ZXN0LnB5IGZp
bGVzLgotYGAtLWRlYnVnYGAKLSAgICBnZW5lcmF0ZSBhbmQgc2hvdyBpbnRlcm5hbCBkZWJ1Z2dp
bmcgaW5mb3JtYXRpb24uCi1gYC0taGVscC1jb25maWdgYAotICAgIHNob3cgYXZhaWxhYmxlIGNv
bmZ0ZXN0LnB5IGFuZCBFTlYtdmFyaWFibGUgbmFtZXMuCi0KLVN0YXJ0IGltcHJvdmluZyB0aGlz
IHBsdWdpbiBpbiAzMCBzZWNvbmRzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotCi0KLTEuIERvd25sb2FkIGBweXRlc3RfaGVscGNvbmZpZy5weWBfIHBsdWdpbiBz
b3VyY2UgY29kZQotMi4gcHV0IGl0IHNvbWV3aGVyZSBhcyBgYHB5dGVzdF9oZWxwY29uZmlnLnB5
YGAgaW50byB5b3VyIGltcG9ydCBwYXRoCi0zLiBhIHN1YnNlcXVlbnQgYGBweXRlc3RgYCBydW4g
d2lsbCB1c2UgeW91ciBsb2NhbCB2ZXJzaW9uCi0KLUNoZWNrb3V0IGN1c3RvbWl6ZV8sIG90aGVy
IHBsdWdpbnNfIG9yIGBnZXQgaW4gY29udGFjdGBfLgotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5kZXgucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODUzYTRkY2U2ODFjOGY2YmJlYzFmNzE3NTllMTJiZTk1OTAxNmUyYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5kZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAs
MCBAQAotCi1hZHZhbmNlZCBweXRob24gdGVzdGluZwotPT09PT09PT09PT09PT09PT09PT09PT0K
LQotc2tpcHBpbmdfIGFkdmFuY2VkIHNraXBwaW5nIGZvciBweXRob24gdGVzdCBmdW5jdGlvbnMs
IGNsYXNzZXMgb3IgbW9kdWxlcy4KLQotbWFya18gZ2VuZXJpYyBtZWNoYW5pc20gZm9yIG1hcmtp
bmcgcHl0aG9uIGZ1bmN0aW9ucy4KLQotcGRiXyBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcgd2l0aCB0
aGUgUHl0aG9uIERlYnVnZ2VyLgotCi1maWdsZWFmXyAoZXh0ZXJuYWwpIHJlcG9ydCB0ZXN0IGNv
dmVyYWdlIHVzaW5nIHRoZSAnZmlnbGVhZicgcGFja2FnZS4KLQotbW9ua2V5cGF0Y2hfIHNhZmVs
eSBwYXRjaCBvYmplY3QgYXR0cmlidXRlcywgZGljdHMgYW5kIGVudmlyb25tZW50IHZhcmlhYmxl
cy4KLQotY292ZXJhZ2VfIChleHRlcm5hbCkgV3JpdGUgYW5kIHJlcG9ydCBjb3ZlcmFnZSBkYXRh
IHdpdGggdGhlICdjb3ZlcmFnZScgcGFja2FnZS4KLQotY292XyAoZXh0ZXJuYWwpIHByb2R1Y2Ug
Y29kZSBjb3ZlcmFnZSByZXBvcnRzIHVzaW5nIHRoZSAnY292ZXJhZ2UnIHBhY2thZ2UsIGluY2x1
ZGluZyBzdXBwb3J0IGZvciBkaXN0cmlidXRlZCB0ZXN0aW5nLgotCi1jYXB0dXJlXyBjb25maWd1
cmFibGUgcGVyLXRlc3Qgc3Rkb3V0L3N0ZGVyciBjYXB0dXJpbmcgbWVjaGFuaXNtcy4KLQotY2Fw
dHVyZWxvZ18gKGV4dGVybmFsKSBjYXB0dXJlIG91dHB1dCBvZiBsb2dnaW5nIG1vZHVsZS4KLQot
cmVjd2Fybl8gaGVscGVycyBmb3IgYXNzZXJ0aW5nIGRlcHJlY2F0aW9uIGFuZCBvdGhlciB3YXJu
aW5ncy4KLQotdG1wZGlyXyBwcm92aWRlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB0byB0ZXN0IGZ1
bmN0aW9ucy4KLQotCi1kaXN0cmlidXRlZCB0ZXN0aW5nLCBDSSBhbmQgZGVwbG95bWVudAotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQoteGRpc3RfIChleHRlcm5hbCkg
bG9vcCBvbiBmYWlsaW5nIHRlc3RzLCBkaXN0cmlidXRlIHRlc3QgcnVucyB0byBDUFVzIGFuZCBo
b3N0cy4KLQotcGFzdGViaW5fIHN1Ym1pdCBmYWlsdXJlIG9yIHRlc3Qgc2Vzc2lvbiBpbmZvcm1h
dGlvbiB0byBhIHBhc3RlYmluIHNlcnZpY2UuCi0KLWp1bml0eG1sXyBsb2dnaW5nIG9mIHRlc3Qg
cmVzdWx0cyBpbiBKVW5pdC1YTUwgZm9ybWF0LCBmb3IgdXNlIHdpdGggSHVkc29uCi0KLXJlc3Vs
dGxvZ18gbm9uLXhtbCBtYWNoaW5lLXJlYWRhYmxlIGxvZ2dpbmcgb2YgdGVzdCByZXN1bHRzLgot
Ci1nZW5zY3JpcHRfIGdlbmVyYXRlIHN0YW5kYWxvbmUgdGVzdCBzY3JpcHQgdG8gYmUgZGlzdHJp
YnV0ZWQgYWxvbmcgd2l0aCBhbiBhcHBsaWNhdGlvbi4KLQotCi10ZXN0aW5nIGRvbWFpbnMgYW5k
IGNvbnZlbnRpb25zIGNvZGVjaGVja2VycwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLQotb2Vqc2tpdF8gKGV4dGVybmFsKSBydW4gamF2YXNjcmlwdCB0ZXN0
cyBpbiByZWFsIGxpZmUgYnJvd3NlcnMKLQotZGphbmdvXyAoZXh0ZXJuYWwpIGZvciB0ZXN0aW5n
IGRqYW5nbyBhcHBsaWNhdGlvbnMKLQotdW5pdHRlc3RfIGF1dG9tYXRpY2FsbHkgZGlzY292ZXIg
YW5kIHJ1biB0cmFkaXRpb25hbCAidW5pdHRlc3QucHkiIHN0eWxlIHRlc3RzLgotCi1ub3NlXyBu
b3NlLWNvbXBhdGliaWxpdHkgcGx1Z2luOiBhbGxvdyB0byBydW4gbm9zZSB0ZXN0IHN1aXRlcyBu
YXRpdmVseS4KLQotZG9jdGVzdF8gY29sbGVjdCBhbmQgZXhlY3V0ZSBkb2N0ZXN0cyBmcm9tIG1v
ZHVsZXMgYW5kIHRlc3QgZmlsZXMuCi0KLXJlc3Rkb2NfIHBlcmZvcm0gUmVTVCBzeW50YXgsIGxv
Y2FsIGFuZCByZW1vdGUgcmVmZXJlbmNlIHRlc3RzIG9uIC5yc3QvLnR4dCBmaWxlcy4KLQotCi1p
bnRlcm5hbCwgZGVidWdnaW5nLCBoZWxwIGZ1bmN0aW9uYWxpdHkKLT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotCi1oZWxwY29uZmlnXyBwcm92aWRlIHZlcnNpb24gaW5m
bywgY29uZnRlc3QvZW52aXJvbm1lbnQgY29uZmlnIG5hbWVzLgotCi10ZXJtaW5hbF8gSW1wbGVt
ZW50cyB0ZXJtaW5hbCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgotCi1o
b29rbG9nXyBsb2cgaW52b2NhdGlvbnMgb2YgZXh0ZW5zaW9uIGhvb2tzIHRvIGEgZmlsZS4KLQot
Ci0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9wbHVnaW4vbGlua3MucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2xp
bmtzLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRlYzJiNDg0OGE2OWU1ZWI4
MDU2ODU4OWNjM2Y5OWUyZGRkMmUzNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0Cisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLi4gX2BoZWxwY29uZmlnYDogaGVscGNvbmZp
Zy5odG1sCi0uLiBfYHB5dGVzdF9yZWN3YXJuLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBr
NDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3JlY3dhcm4ucHkKLS4uIF9g
dW5pdHRlc3RgOiB1bml0dGVzdC5odG1sCi0uLiBfYHB5dGVzdF9tb25rZXlwYXRjaC5weWA6IGh0
dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5
dGVzdF9tb25rZXlwYXRjaC5weQotLi4gX2BwYXN0ZWJpbmA6IHBhc3RlYmluLmh0bWwKLS4uIF9g
c2tpcHBpbmdgOiBza2lwcGluZy5odG1sCi0uLiBfYHBsdWdpbnNgOiBpbmRleC5odG1sCi0uLiBf
YG1hcmtgOiBtYXJrLmh0bWwKLS4uIF9gdG1wZGlyYDogdG1wZGlyLmh0bWwKLS4uIF9gcHl0ZXN0
X2RvY3Rlc3QucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4z
LjQvcHkvX3BsdWdpbi9weXRlc3RfZG9jdGVzdC5weQotLi4gX2BjYXB0dXJlYDogY2FwdHVyZS5o
dG1sCi0uLiBfYHB5dGVzdF9ub3NlLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHkt
dHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X25vc2UucHkKLS4uIF9gcHl0ZXN0X3Jl
c3Rkb2MucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQv
cHkvX3BsdWdpbi9weXRlc3RfcmVzdGRvYy5weQotLi4gX2ByZXN0ZG9jYDogcmVzdGRvYy5odG1s
Ci0uLiBfYHhkaXN0YDogeGRpc3QuaHRtbAotLi4gX2BweXRlc3RfcGFzdGViaW4ucHlgOiBodHRw
Oi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRl
c3RfcGFzdGViaW4ucHkKLS4uIF9gcHl0ZXN0X3RtcGRpci5weWA6IGh0dHA6Ly9iaXRidWNrZXQu
b3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF90bXBkaXIucHkK
LS4uIF9gdGVybWluYWxgOiB0ZXJtaW5hbC5odG1sCi0uLiBfYHB5dGVzdF9ob29rbG9nLnB5YDog
aHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4v
cHl0ZXN0X2hvb2tsb2cucHkKLS4uIF9gY2FwdHVyZWxvZ2A6IGNhcHR1cmVsb2cuaHRtbAotLi4g
X2BqdW5pdHhtbGA6IGp1bml0eG1sLmh0bWwKLS4uIF9gcHl0ZXN0X3NraXBwaW5nLnB5YDogaHR0
cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0
ZXN0X3NraXBwaW5nLnB5Ci0uLiBfYGNoZWNrb3V0IHRoZSBweXRlc3QgZGV2ZWxvcG1lbnQgdmVy
c2lvbmA6IC4uLy4uL2luc3RhbGwuaHRtbCNjaGVja291dAotLi4gX2BweXRlc3RfaGVscGNvbmZp
Zy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9f
cGx1Z2luL3B5dGVzdF9oZWxwY29uZmlnLnB5Ci0uLiBfYG9lanNraXRgOiBvZWpza2l0Lmh0bWwK
LS4uIF9gZG9jdGVzdGA6IGRvY3Rlc3QuaHRtbAotLi4gX2BweXRlc3RfbWFyay5weWA6IGh0dHA6
Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVz
dF9tYXJrLnB5Ci0uLiBfYGdldCBpbiBjb250YWN0YDogLi4vLi4vY29udGFjdC5odG1sCi0uLiBf
YHB5dGVzdF9jYXB0dXJlLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsv
cmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2NhcHR1cmUucHkKLS4uIF9gZmlnbGVhZmA6IGZp
Z2xlYWYuaHRtbAotLi4gX2BjdXN0b21pemVgOiAuLi9jdXN0b21pemUuaHRtbAotLi4gX2Bob29r
bG9nYDogaG9va2xvZy5odG1sCi0uLiBfYHB5dGVzdF90ZXJtaW5hbC5weWA6IGh0dHA6Ly9iaXRi
dWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF90ZXJt
aW5hbC5weQotLi4gX2ByZWN3YXJuYDogcmVjd2Fybi5odG1sCi0uLiBfYHB5dGVzdF9wZGIucHlg
OiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdp
bi9weXRlc3RfcGRiLnB5Ci0uLiBfYG1vbmtleXBhdGNoYDogbW9ua2V5cGF0Y2guaHRtbAotLi4g
X2Bjb3ZlcmFnZWA6IGNvdmVyYWdlLmh0bWwKLS4uIF9gcmVzdWx0bG9nYDogcmVzdWx0bG9nLmh0
bWwKLS4uIF9gY292YDogY292Lmh0bWwKLS4uIF9gcHl0ZXN0X2p1bml0eG1sLnB5YDogaHR0cDov
L2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0
X2p1bml0eG1sLnB5Ci0uLiBfYGRqYW5nb2A6IGRqYW5nby5odG1sCi0uLiBfYHB5dGVzdF91bml0
dGVzdC5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9w
eS9fcGx1Z2luL3B5dGVzdF91bml0dGVzdC5weQotLi4gX2Bub3NlYDogbm9zZS5odG1sCi0uLiBf
YHB5dGVzdF9yZXN1bHRsb2cucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVu
ay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfcmVzdWx0bG9nLnB5Ci0uLiBfYHBkYmA6IHBk
Yi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDllZWFlNWZmNjk3ZjA1YTIyNjUxZjk2ZjBhOWJlMGNlMjEwNGU1
OTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNTYg
KzAsMCBAQAotCi1ub3NlLWNvbXBhdGliaWxpdHkgcGx1Z2luOiBhbGxvdyB0byBydW4gbm9zZSB0
ZXN0IHN1aXRlcyBuYXRpdmVseS4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxv
Y2FsOgotCi1UaGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBwbHVnaW4gZm9yIGFsbG93aW5nIHRvIHJ1
biB0ZXN0cyB3cml0dGVuCi1pbiAnbm9zZXRlc3RzJyBzdHlsZSB3aXRoIGBgcHl0ZXN0YGAuCi0K
LVVzYWdlCi0tLS0tLS0tLS0tLS0tCi0KLXR5cGU6OgotCi0gICAgcHl0ZXN0ICAjIGluc3RlYWQg
b2YgJ25vc2V0ZXN0cycKLQotYW5kIHlvdSBzaG91bGQgYmUgYWJsZSB0byBydW4gbm9zZSBzdHls
ZSB0ZXN0cyBhbmQgYXQgdGhlIHNhbWUKLXRpbWUgY2FuIG1ha2UgZnVsbCB1c2Ugb2YgcHl0ZXN0
J3MgY2FwYWJpbGl0aWVzLgotCi1TdXBwb3J0ZWQgbm9zZSBJZGlvbXMKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotKiBzZXR1cCBhbmQgdGVhcmRvd24gYXQgbW9kdWxlL2NsYXNzL21ldGhvZCBs
ZXZlbAotKiBTa2lwVGVzdCBleGNlcHRpb25zIGFuZCBtYXJrZXJzCi0qIHNldHVwL3RlYXJkb3du
IGRlY29yYXRvcnMKLSogeWllbGQtYmFzZWQgdGVzdHMgYW5kIHRoZWlyIHNldHVwCi0qIGdlbmVy
YWwgdXNhZ2Ugb2Ygbm9zZSB1dGlsaXRpZXMKLQotVW5zdXBwb3J0ZWQgaWRpb21zIC8gaXNzdWVz
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gbm9zZS1zdHlsZSBkb2N0
ZXN0cyBhcmUgbm90IGNvbGxlY3RlZCBhbmQgZXhlY3V0ZWQgY29ycmVjdGx5LAotICBhbHNvIGZp
eHR1cmVzIGRvbid0IHdvcmsuCi0KLS0gbm8gbm9zZS1jb25maWd1cmF0aW9uIGlzIHJlY29nbml6
ZWQKLQotSWYgeW91IGZpbmQgb3RoZXIgaXNzdWVzIG9yIGhhdmUgc3VnZ2VzdGlvbnMgcGxlYXNl
IHJ1bjo6Ci0KLSAgICBweXRlc3QgLS1wYXN0ZWJpbj1hbGwKLQotYW5kIHNlbmQgdGhlIHJlc3Vs
dGluZyBVUkwgdG8gYSBgYHB5dGVzdGBgIGNvbnRhY3QgY2hhbm5lbCwKLWF0IGJlc3QgdG8gdGhl
IG1haWxpbmcgbGlzdC4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMwIHNlY29u
ZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotMS4gRG93
bmxvYWQgYHB5dGVzdF9ub3NlLnB5YF8gcGx1Z2luIHNvdXJjZSBjb2RlCi0yLiBwdXQgaXQgc29t
ZXdoZXJlIGFzIGBgcHl0ZXN0X25vc2UucHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBhdGgKLTMuIGEg
c3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZlcnNpb24KLQot
Q2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2luc18gb3IgYGdldCBpbiBjb250YWN0YF8u
Ci0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi9vZWpza2l0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdp
bi9vZWpza2l0LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk5NWFhMTdjNzJk
NWNlMGI3OTE1NGE2MmM5N2YwYTIxMGQyM2FkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vqc2tp
dC5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1weXRlc3Rfb2Vqc2tpdCBwbHVn
aW4gKEVYVEVSTkFMKQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0KLVRoZSBgb2Vqc2tpdGBfIG9mZmVycyBhIGBgcHl0ZXN0YGAgcGx1Z2luIGZvciBydW5uaW5n
IEphdmFzY3JpcHQgdGVzdHMgaW4gbGl2ZSBicm93c2Vycy4gICBSdW5uaW5nIGluc2lkZSB0aGUg
YnJvd3NlcnMgY29tZXMgd2l0aCBzb21lIHNwZWVkIGNvc3QsIG9uIHRoZSBvdGhlciBoYW5kIGl0
IG1lYW5zIGZvciBleGFtcGxlIHRoZSBjb2RlIGlzIHRlc3RlZCBhZ2FpbnN0IHRoZSByZWFsLXdv
cmQgRE9NIGltcGxlbWVudGF0aW9ucy4KLVRoZSBhcHByb2FjaCBlbmFibGVzIHRvIHdyaXRlIGlu
dGVncmF0aW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUgSmF2YVNjcmlwdCBjb2RlIGlzIHRlc3RlZCBh
Z2FpbnN0IHNlcnZlci1zaWRlIFB5dGhvbiBjb2RlIG1vY2tlZCBhcyBuZWNlc3NhcnkuIEFueSBz
ZXJ2ZXItc2lkZSBmcmFtZXdvcmsgdGhhdCBjYW4gYWxyZWFkeSBiZSBleHBvc2VkIHRocm91Z2gg
V1NHSSAob3IgZm9yIHdoaWNoIGEgc3Vic2V0IG9mIFdTR0kgY2FuIGJlIHdyaXR0ZW4gdG8gYWNj
b21tb2RhdGUgdGhlIGpza2l0IG93biBuZWVkcykgY2FuIHBsYXkgYWxvbmcuCi0KLUZvciBtb3Jl
IGluZm8gYW5kIGRvd25sb2FkIHBsZWFzZSB2aXNpdCB0aGUgYG9lanNraXQgUHlQSWBfIHBhZ2Uu
Ci0KLS4uIF9gb2Vqc2tpdGA6Ci0uLiBfYG9lanNraXQgUHlQSWA6IGh0dHA6Ly9weXBpLnB5dGhv
bi5vcmcvcHlwaS9vZWpza2l0Ci0KLS4uIHNvdXJjZSBsaW5rICdodHRwOi8vYml0YnVja2V0Lm9y
Zy9wZWRyb25pcy9qcy1pbmZyYXN0cnVjdHVyZS9zcmMvdGlwL3B5dGVzdF9qc3Rlc3RzLnB5JywK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90ZXJtaW5hbC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlMDdkNGY3MjE4M2E5YTI3Njc2MzM2Y2Q5ODRlNmY3NWVmYTMw
YTcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90ZXJtaW5hbC5yc3QKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi0KLUltcGxlbWVudHMgdGVybWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxs
IHRlc3RpbmcgcHJvY2Vzcy4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQotVGhp
cyBpcyBhIGdvb2Qgc291cmNlIGZvciBsb29raW5nIGF0IHRoZSB2YXJpb3VzIHJlcG9ydGluZyBo
b29rcy4KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQot
YGAtdiwgLS12ZXJib3NlYGAKLSAgICBpbmNyZWFzZSB2ZXJib3NpdHkuCi1gYC1yIGNoYXJzYGAK
LSAgICBzaG93IGV4dHJhIHRlc3Qgc3VtbWFyeSBpbmZvIGFzIHNwZWNpZmllZCBieSBjaGFycyAo
ZilhaWxlZCwgKHMpc2tpcHBlZCwgKHgpZmFpbGVkLCAoWClwYXNzZWQuCi1gYC1sLCAtLXNob3ds
b2NhbHNgYAotICAgIHNob3cgbG9jYWxzIGluIHRyYWNlYmFja3MgKGRpc2FibGVkIGJ5IGRlZmF1
bHQpLgotYGAtLXRiPXN0eWxlYGAKLSAgICB0cmFjZWJhY2sgcHJpbnQgbW9kZSAobG9uZy9zaG9y
dC9saW5lL25vKS4KLWBgLS1mdWxsLXRyYWNlYGAKLSAgICBkb24ndCBjdXQgYW55IHRyYWNlYmFj
a3MgKGRlZmF1bHQgaXMgdG8gY3V0KS4KLWBgLS1maXh0dXJlc2BgCi0gICAgc2hvdyBhdmFpbGFi
bGUgZnVuY3Rpb24gYXJndW1lbnRzLCBzb3J0ZWQgYnkgcGx1Z2luCi0KLVN0YXJ0IGltcHJvdmlu
ZyB0aGlzIHBsdWdpbiBpbiAzMCBzZWNvbmRzCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotCi0KLTEuIERvd25sb2FkIGBweXRlc3RfdGVybWluYWwucHlgXyBwbHVn
aW4gc291cmNlIGNvZGUKLTIuIHB1dCBpdCBzb21ld2hlcmUgYXMgYGBweXRlc3RfdGVybWluYWwu
cHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBhdGgKLTMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1
biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZlcnNpb24KLQotQ2hlY2tvdXQgY3VzdG9taXplXywgb3Ro
ZXIgcGx1Z2luc18gb3IgYGdldCBpbiBjb250YWN0YF8uCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjkwNjcxN2Q0ZDNmNjJjYzk3YjE1MzE1MTUxYjA3
Zjg0ZGQxOGRkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vY292LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9maWdsZWFmLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9oZWxwY29uZmlnLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdp
bi9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL3Rlcm1pbmFsLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1MDZkMjQwYWVlMTNjN2RkMzE5YzkzMzEzY2YzZThlZjRlMjY1MjE5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNzIg
KzAsMCBAQAotCi1sb29wIG9uIGZhaWxpbmcgdGVzdHMsIGRpc3RyaWJ1dGUgdGVzdCBydW5zIHRv
IENQVXMgYW5kIGhvc3RzLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQot
VGhlIGBweXRlc3QteGRpc3RgXyBwbHVnaW4gZXh0ZW5kcyBgYHB5dGVzdGBgIHdpdGggc29tZSB1
bmlxdWUKLXRlc3QgZXhlY3V0aW9uIG1vZGVzOgotCi0qIExvb3BvbmZhaWw6IHJ1biB5b3VyIHRl
c3RzIHJlcGVhdGVkbHkgaW4gYSBzdWJwcm9jZXNzLiAgQWZ0ZXIgZWFjaCBydW4KLSAgYGBweXRl
c3RgYCB3YWl0cyB1bnRpbCBhIGZpbGUgaW4geW91ciBwcm9qZWN0IGNoYW5nZXMgYW5kIHRoZW4g
cmUtcnVucyB0aGUKLSAgcHJldmlvdXNseSBmYWlsaW5nIHRlc3RzLiAgVGhpcyBpcyByZXBlYXRl
ZCB1bnRpbCBhbGwgdGVzdHMgcGFzcyBhZnRlciB3aGljaAotICBhZ2FpbiBhIGZ1bGwgcnVuIGlz
IHBlcmZvcm1lZC4KLQotKiBMb2FkLWJhbGFuY2luZzogaWYgeW91IGhhdmUgbXVsdGlwbGUgQ1BV
cyBvciBob3N0cyB5b3UgY2FuIHVzZQotICB0aG9zZSBmb3IgYSBjb21iaW5lZCB0ZXN0IHJ1bi4g
IFRoaXMgYWxsb3dzIHRvIHNwZWVkIHVwCi0gIGRldmVsb3BtZW50IG9yIHRvIHVzZSBzcGVjaWFs
IHJlc291cmNlcyBvZiByZW1vdGUgbWFjaGluZXMuCi0KLSogTXVsdGktUGxhdGZvcm0gY292ZXJh
Z2U6IHlvdSBjYW4gc3BlY2lmeSBkaWZmZXJlbnQgUHl0aG9uIGludGVycHJldGVycwotICBvciBk
aWZmZXJlbnQgcGxhdGZvcm1zIGFuZCBydW4gdGVzdHMgaW4gcGFyYWxsZWwgb24gYWxsIG9mIHRo
ZW0uCi0KLUJlZm9yZSBydW5uaW5nIHRlc3RzIHJlbW90ZWx5LCBgYHB5dGVzdGBgIGVmZmljaWVu
dGx5IHN5bmNocm9uaXplcyB5b3VyCi1wcm9ncmFtIHNvdXJjZSBjb2RlIHRvIHRoZSByZW1vdGUg
cGxhY2UuICBBbGwgdGVzdCByZXN1bHRzCi1hcmUgcmVwb3J0ZWQgYmFjayBhbmQgZGlzcGxheWVk
IHRvIHlvdXIgbG9jYWwgdGVzdCBzZXNzaW9uLgotWW91IG1heSBzcGVjaWZ5IGRpZmZlcmVudCBQ
eXRob24gdmVyc2lvbnMgYW5kIGludGVycHJldGVycy4KLQotLi4gX2BweXRlc3QteGRpc3RgOiBo
dHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXhkaXN0Ci0KLVVzYWdlIGV4YW1wbGVz
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotU3BlZWQgdXAgdGVzdCBydW5zIGJ5IHNlbmRpbmcg
dGVzdHMgdG8gbXVsdGlwbGUgQ1BVcwotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysKLQotVG8gc2VuZCB0ZXN0cyB0byBtdWx0aXBsZSBD
UFVzLCB0eXBlOjoKLQotICAgIHB5dGVzdCAtbiBOVU0KLQotRXNwZWNpYWxseSBmb3IgbG9uZ2Vy
IHJ1bm5pbmcgdGVzdHMgb3IgdGVzdHMgcmVxdWlyaW5nCi1hIGxvdCBvZiBJTyB0aGlzIGNhbiBs
ZWFkIHRvIGNvbnNpZGVyYWJsZSBzcGVlZCB1cHMuCi0KLQotUnVubmluZyB0ZXN0cyBpbiBhIFB5
dGhvbiBzdWJwcm9jZXNzCi0rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKwotCi1UbyBpbnN0YW50aWF0ZSBhIHB5dGhvbjIuNCBzdWIgcHJv
Y2VzcyBhbmQgc2VuZCB0ZXN0cyB0byBpdCwgeW91IG1heSB0eXBlOjoKLQotICAgIHB5dGVzdCAt
ZCAtLXR4IHBvcGVuLy9weXRob249cHl0aG9uMi40Ci0KLVRoaXMgd2lsbCBzdGFydCBhIHN1YnBy
b2Nlc3Mgd2hpY2ggaXMgcnVuIHdpdGggdGhlICJweXRob24yLjQiCi1QeXRob24gaW50ZXJwcmV0
ZXIsIGZvdW5kIGluIHlvdXIgc3lzdGVtIGJpbmFyeSBsb29rdXAgcGF0aC4KLQotSWYgeW91IHBy
ZWZpeCB0aGUgLS10eCBvcHRpb24gdmFsdWUgbGlrZSB0aGlzOjoKLQotICAgIC0tdHggMypwb3Bl
bi8vcHl0aG9uPXB5dGhvbjIuNAotCi10aGVuIHRocmVlIHN1YnByb2Nlc3NlcyB3b3VsZCBiZSBj
cmVhdGVkIGFuZCB0ZXN0cwotd2lsbCBiZSBsb2FkLWJhbGFuY2VkIGFjcm9zcyB0aGVzZSB0aHJl
ZSBwcm9jZXNzZXMuCi0KLQotU2VuZGluZyB0ZXN0cyB0byByZW1vdGUgU1NIIGFjY291bnRzCi0r
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwotCi1TdXBwb3NlIHlvdSBoYXZlIGEgcGFja2FnZSBgYG15cGtnYGAgd2hpY2ggY29udGFpbnMg
c29tZQotdGVzdHMgdGhhdCB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBydW4gbG9jYWxseS4gQW5kIHlv
dQotaGF2ZSBhIHNzaC1yZWFjaGFibGUgbWFjaGluZSBgYG15aG9zdGBgLiAgVGhlbgoteW91IGNh
biBhZC1ob2MgZGlzdHJpYnV0ZSB5b3VyIHRlc3RzIGJ5IHR5cGluZzo6Ci0KLSAgICBweXRlc3Qg
LWQgLS10eCBzc2g9bXlob3N0cG9wZW4gLS1yc3luY2RpciBteXBrZyBteXBrZwotCi1UaGlzIHdp
bGwgc3luY2hyb25pemUgeW91ciBgYG15cGtnYGAgcGFja2FnZSBkaXJlY3RvcnkKLXRvIGEgcmVt
b3RlIHNzaCBhY2NvdW50IGFuZCB0aGVuIGxvY2FsbHkgY29sbGVjdCB0ZXN0cwotYW5kIHNlbmQg
dGhlbSB0byByZW1vdGUgcGxhY2VzIGZvciBleGVjdXRpb24uCi0KLVlvdSBjYW4gc3BlY2lmeSBt
dWx0aXBsZSBgYC0tcnN5bmNkaXJgYCBkaXJlY3RvcmllcwotdG8gYmUgc2VudCB0byB0aGUgcmVt
b3RlIHNpZGUuCi0KLSoqTk9URToqKiBGb3IgYGBweXRlc3RgYCB0byBjb2xsZWN0IGFuZCBzZW5k
IHRlc3RzIGNvcnJlY3RseQoteW91IG5vdCBvbmx5IG5lZWQgdG8gbWFrZSBzdXJlIGFsbCBjb2Rl
IGFuZCB0ZXN0cwotZGlyZWN0b3JpZXMgYXJlIHJzeW5jZWQsIGJ1dCB0aGF0IGFueSB0ZXN0IChz
dWIpIGRpcmVjdG9yeQotYWxzbyBoYXMgYW4gYGBfX2luaXRfXy5weWBgIGZpbGUgYmVjYXVzZSBp
bnRlcm5hbGx5Ci1gYHB5dGVzdGBgIHJlZmVyZW5jZXMgdGVzdHMgdXNpbmcgdGhlaXIgZnVsbHkg
cXVhbGlmaWVkIHB5dGhvbgotbW9kdWxlIHBhdGguICAqKllvdSB3aWxsIG90aGVyd2lzZSBnZXQg
c3RyYW5nZSBlcnJvcnMqKgotZHVyaW5nIHNldHVwIG9mIHRoZSByZW1vdGUgc2lkZS4KLQotU2Vu
ZGluZyB0ZXN0cyB0byByZW1vdGUgU29ja2V0IFNlcnZlcnMKLSsrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLURvd25sb2FkIHRoZSBz
aW5nbGUtbW9kdWxlIGBzb2NrZXRzZXJ2ZXIucHlgXyBQeXRob24gcHJvZ3JhbQotYW5kIHJ1biBp
dCBsaWtlIHRoaXM6OgotCi0gICAgcHl0aG9uIHNvY2tldHNlcnZlci5weQotCi1JdCB3aWxsIHRl
bGwgeW91IHRoYXQgaXQgc3RhcnRzIGxpc3RlbmluZyBvbiB0aGUgZGVmYXVsdAotcG9ydC4gIFlv
dSBjYW4gbm93IG9uIHlvdXIgaG9tZSBtYWNoaW5lIHNwZWNpZnkgdGhpcwotbmV3IHNvY2tldCBo
b3N0IHdpdGggc29tZXRoaW5nIGxpa2UgdGhpczo6Ci0KLSAgICBweXRlc3QgLWQgLS10eCBzb2Nr
ZXQ9MTkyLjE2OC4xLjEwMjo4ODg4IC0tcnN5bmNkaXIgbXlwa2cgbXlwa2cKLQotCi0uLiBfYGF0
b25jZWA6Ci0KLVJ1bm5pbmcgdGVzdHMgb24gbWFueSBwbGF0Zm9ybXMgYXQgb25jZQotKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLQot
VGhlIGJhc2ljIGNvbW1hbmQgdG8gcnVuIHRlc3RzIG9uIG11bHRpcGxlIHBsYXRmb3JtcyBpczo6
Ci0KLSAgICBweXRlc3QgLS1kaXN0PWVhY2ggLS10eD1zcGVjMSAtLXR4PXNwZWMyCi0KLUlmIHlv
dSBzcGVjaWZ5IGEgd2luZG93cyBob3N0LCBhbiBPU1ggaG9zdCBhbmQgYSBMaW51eAotZW52aXJv
bm1lbnQgdGhpcyBjb21tYW5kIHdpbGwgc2VuZCBlYWNoIHRlc3RzIHRvIGFsbAotcGxhdGZvcm1z
IC0gYW5kIHJlcG9ydCBiYWNrIGZhaWx1cmVzIGZyb20gYWxsIHBsYXRmb3JtcwotYXQgb25jZS4g
ICBUaGUgc3BlY2lmaWNhdGlvbnMgc3RyaW5ncyB1c2UgdGhlIGB4c3BlYyBzeW50YXhgXy4KLQot
Li4gX2B4c3BlYyBzeW50YXhgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9leGVjbmV0L3RydW5rL2Jh
c2ljcy5odG1sI3hzcGVjCi0KLS4uIF9gc29ja2V0c2VydmVyLnB5YDogaHR0cDovL2NvZGVzcGVh
ay5uZXQvc3ZuL3B5L2Rpc3QvcHkvZXhlY25ldC9zY3JpcHQvc29ja2V0c2VydmVyLnB5Ci0KLS4u
IF9gZXhlY25ldGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L2V4ZWNuZXQKLQotU3BlY2lmeWluZyB0
ZXN0IGV4ZWMgZW52aXJvbm1lbnRzIGluIGEgY29uZnRlc3QucHkKLSsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLUluc3RlYWQgb2Yg
c3BlY2lmeWluZyBjb21tYW5kIGxpbmUgb3B0aW9ucywgeW91IGNhbgotcHV0IG9wdGlvbnMgdmFs
dWVzIGluIGEgYGBjb25mdGVzdC5weWBgIGZpbGUgbGlrZSB0aGlzOjoKLQotICAgIG9wdGlvbl90
eCA9IFsnc3NoPW15aG9zdC8vcHl0aG9uPXB5dGhvbjIuNycsICdwb3Blbi8vcHl0aG9uPXB5dGhv
bjIuNyddCi0gICAgb3B0aW9uX2Rpc3QgPSBUcnVlCi0KLUFueSBjb21tYW5kbGluZSBgYC0tdHhg
YCBzcGVjaWZpY2F0aW9ucyAgd2lsbCBhZGQgdG8gdGhlIGxpc3Qgb2YKLWF2YWlsYWJsZSBleGVj
dXRpb24gZW52aXJvbm1lbnRzLgotCi1TcGVjaWZ5aW5nICJyc3luYyIgZGlycyBpbiBhIGNvbmZ0
ZXN0LnB5Ci0rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKwotCi1JbiB5b3VyIGBgbXlwa2cvY29uZnRlc3QucHlgYCB5b3UgbWF5IHNwZWNp
ZnkgZGlyZWN0b3JpZXMgdG8gc3luY2hyb25pc2UKLW9yIHRvIGV4Y2x1ZGU6OgotCi0gICAgcnN5
bmNkaXJzID0gWycuJywgJy4uL3BsdWdpbnMnXQotICAgIHJzeW5jaWdub3JlID0gWydfY2FjaGUn
XQotCi1UaGVzZSBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBk
aXJlY3RvcnkKLXdoZXJlIHRoZSBgYGNvbmZ0ZXN0LnB5YGAgaXMgZm91bmQuCi0KLWNvbW1hbmQg
bGluZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWBgLWYsIC0tbG9vcG9uZmFp
bGBgCi0gICAgcnVuIHRlc3RzIGluIHN1YnByb2Nlc3MsIHdhaXQgZm9yIG1vZGlmaWVkIGZpbGVz
IGFuZCByZS1ydW4gZmFpbGluZyB0ZXN0IHNldCB1bnRpbCBhbGwgcGFzcy4KLWBgLW4gbnVtcHJv
Y2Vzc2VzYGAKLSAgICBzaG9ydGN1dCBmb3IgJy0tZGlzdD1sb2FkIC0tdHg9TlVNKnBvcGVuJwot
YGAtLWJveGVkYGAKLSAgICBib3ggZWFjaCB0ZXN0IHJ1biBpbiBhIHNlcGFyYXRlIHByb2Nlc3Mg
KHVuaXgpCi1gYC0tZGlzdD1kaXN0bW9kZWBgCi0gICAgc2V0IG1vZGUgZm9yIGRpc3RyaWJ1dGlu
ZyB0ZXN0cyB0byBleGVjIGVudmlyb25tZW50cy4KLQotICAgIGVhY2g6IHNlbmQgZWFjaCB0ZXN0
IHRvIGVhY2ggYXZhaWxhYmxlIGVudmlyb25tZW50LgotCi0gICAgbG9hZDogc2VuZCBlYWNoIHRl
c3QgdG8gb25lIGF2YWlsYWJsZSBlbnZpcm9ubWVudCBzbyBpdCBpcyBydW4gb25seSBvbmNlLgot
Ci0gICAgKGRlZmF1bHQpIG5vOiBydW4gdGVzdHMgaW5wcm9jZXNzLCBkb24ndCBkaXN0cmlidXRl
LgotYGAtLXR4PXhzcGVjYGAKLSAgICBhZGQgYSB0ZXN0IGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4g
c29tZSBleGFtcGxlczogLS10eCBwb3Blbi8vcHl0aG9uPXB5dGhvbjIuNyAtLXR4IHNvY2tldD0x
OTIuMTY4LjEuMTAyOjg4ODggLS10eCBzc2g9dXNlckBjb2Rlc3BlYWsubmV0Ly9jaGRpcj10ZXN0
Y2FjaGUKLWBgLWRgYAotICAgIGxvYWQtYmFsYW5jZSB0ZXN0cy4gIHNob3J0Y3V0IGZvciAnLS1k
aXN0PWxvYWQnCi1gYC0tcnN5bmNkaXI9ZGlyMWBgCi0gICAgYWRkIGRpcmVjdG9yeSBmb3IgcnN5
bmNpbmcgdG8gcmVtb3RlIHR4IG5vZGVzLgotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC90ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMDBm
NzE4YTY3NzI0Y2YwYWY5MDU0ODRjMThjYzZiNWViMjUwM2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0g
ICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPWluZGV4
Lmh0bWwiIC8+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci12YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3VtZW50LmxvY2F0
aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7Ci1kb2N1bWVu
dC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1h
bmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUz
RSIpKTsKLTwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdHJ5IHsK
LXZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQtMyIpOwotcGFn
ZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgotICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFiOTNmNWY3Y2ZhMGUyNzBiNmNkNTUyYjdh
MTY5YTczN2I5OTJmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGlj
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvZGlzdC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdGVzdC9taXNzaW9uLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
NmYxYTZkNDgyZmJkYTg1MDVhM2U3ZWQ2NThmZWI3MzQwODY2Y2I0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hZG9wdC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYWNrd2FyZHMt
Y29tcGF0aWJpbGl0eS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFzaC1jb21wbGV0aW9uLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
YWNoZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vY2hhbmdlbG9nLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb25mLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRhY3QucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
b250cmlidXRpbmcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZGVwcmVjYXRpb25zLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXZl
bG9wbWVudF9ndWlkZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhpc3Rpbmd0ZXN0c3VpdGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2ZpeHR1cmUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZsYWt5LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Z1bmNhcmdz
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nZXR0aW5nLXN0YXJ0ZWQucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2hpc3Rvcmlj
YWwtbm90ZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2luZGV4LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9sb2dnaW5nLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9tYXJrLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tb25rZXlwYXRj
aC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbmFtaW5nMjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL25vc2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BhcmFtZXRyaXplLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9qZWN0cy5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHkyNy1weTM0LWRlcHJlY2F0aW9uLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9weXRlc3QuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGhvbnBhdGgu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3JlY3dhcm4ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3JlZmVyZW5jZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9za2lwcGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vc3BvbnNv
ci5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGFsa3MucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3RpZGVsaWZ0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90bXBkaXIucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3VuaXR0ZXN0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91c2FnZS5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vd2FybmluZ3MucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3dyaXRp
bmdfcGx1Z2lucy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veHVuaXRfc2V0dXAucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3lpZWxkZml4dHVyZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2V4dHJhL3NldHVwLXB5LnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9z
ZXR1cC1weS50ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1ZGM4YjgzNjAxN2MyMDU2ZjA4OTQ5NjZkODBiZWNhYWFlZDMxZDk0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3NldHVw
LXB5LnRlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1weS50ZXN0L3NldHVwLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9leHRyYS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJh
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTE1ZDNmZWIx
NjAwY2RhMmEzNDlmOTM5ZmNjMzU4OGViZmZlNjdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEv
Z2V0X2lzc3Vlcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZXBvcnQtY292
ZXJhZ2Uuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlcG9ydC1jb3ZlcmFnZS5zaApvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTlkMDUwNzI3MTNiYWIwNzBiYWUyZWRjNWYxZTA4
ODNkMDdjM2I5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9hcHBlbmRfY29kZWNvdl90
b2tlbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcHVibGlzaC1naC1yZWxlYXNlLW5vdGVzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNlLW9uLWNvbW1lbnQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zY3JpcHRzL3JlbGVhc2UubWlub3IucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZWxlYXNl
LnBhdGNoLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFzZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvcmVwb3J0LWNvdmVyYWdlLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy90b3duY3Jp
ZXItZHJhZnQtdG8tZmlsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
X2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkwNDgzMmVmMmYyMTdl
NTE4YzE2YzQwYzViZmM4YzZiOGNiMDY5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
X2NvZGUvY29kZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MjcxZDA2ZWQwMTg4YzUyMTRlMjA3MDllMDUwYThjOWViNGQzNzZm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L19pby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIw
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9fX2luaXRfXy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19pby9zYWZlcmVwci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L19pby90ZXJtaW5hbHdyaXRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L19pby93Y3dpZHRoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9h
c3NlcnRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRp
b24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1ZGIzYmEy
ZWUxOWI1OTk0NmJjYmEwZDczY2VhODAzZDJiZmY5NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9u
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3Nl
cnRpb24vdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY2FjaGVw
cm92aWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvY29uZmlnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Y29uZmlnL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmJl
MTFkYTUyNzkyOWE5ZDNmOGM1NDE4MWJjN2VjMmU3MzcxNTUzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZp
Zy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2NvbmZpZy9hcmdwYXJzaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvY29uZmlnL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcv
ZmluZHBhdGhzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY0NmM5YjViOTQwOGRmZmJkNjBhNWY5
MjlhNzhkMTJmYjVkMjE4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvbWFyay9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvZXhwcmVz
c2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvc3RydWN0dXJlcy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvX3B5dGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzIzYjQ0OTY2MGY2MWNkN2Q1ZjM5MTg1Yzk5NDExN2Y1NmU2ZDVmOC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX3ZlcnNp
b24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvY2FwdHVyZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Nv
bXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RlYnVnZ2luZy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9k
b2N0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZmF1bHRoYW5kbGVyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvZml4dHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9mcmVlemVfc3VwcG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hlbHBjb25maWcu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9ob29rc3BlYy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L2p1bml0eG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbG9nZ2luZy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21haW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC9tb25rZXlwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L25vZGVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvbm9zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L291dGNvbWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcGFzdGViaW4ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9wYXRobGliLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
cHkudHlwZWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weXRlc3Rlci5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhv
bl9hcGkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZWN3YXJuLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvcmVwb3J0cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3J1bm5l
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NldHVwb25seS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L3NldHVwcGxhbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3NraXBw
aW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc3RlcHdpc2UucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9zdG9yZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3Rlcm1pbmFs
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdGltaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvdG1wZGlyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdW5pdHRlc3QucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5nX3R5cGVzLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3Qvd2FybmluZ3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRl
c3QuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LmVnZy1p
bmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2E3NTk5
MDlkMzJmMzAzMGM5ZjA4ZTYzMmZjMjEyMDIzNWFlMzI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdnLWluZm8v
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvcHl0ZXN0LmVnZy1pbmZvL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L3B5dGVzdC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdn
LWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LmVnZy1p
bmZvL2VudHJ5X3BvaW50cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LmVnZy1pbmZvL25v
dC16aXAtc2FmZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdnLWluZm8vcmVxdWlyZXMudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI3ZjVhMTk1NWIyOThiNDhmZTI0NGRl
YjBhM2U5NTAwZWZlOTEyNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzIg
KzAsMCBAQAotIyBQWVRIT05fQVJHQ09NUExFVEVfT0sKLSIiIgotcHl0ZXN0OiB1bml0IGFuZCBm
dW5jdGlvbmFsIHRlc3Rpbmcgd2l0aCBQeXRob24uCi0iIiIKLQotCi0jIGVsc2Ugd2UgYXJlIGlt
cG9ydGVkCi0KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IG1haW4sIFVzYWdlRXJyb3IsIGNt
ZGxpbmUsIGhvb2tzcGVjLCBob29raW1wbAotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBm
aXh0dXJlLCB5aWVsZF9maXh0dXJlCi1mcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCByZWdp
c3Rlcl9hc3NlcnRfcmV3cml0ZQotZnJvbSBfcHl0ZXN0LmZyZWV6ZV9zdXBwb3J0IGltcG9ydCBm
cmVlemVfaW5jbHVkZXMKLWZyb20gX3B5dGVzdCBpbXBvcnQgX192ZXJzaW9uX18KLWZyb20gX3B5
dGVzdC5kZWJ1Z2dpbmcgaW1wb3J0IHB5dGVzdFBEQiBhcyBfX3B5dGVzdFBEQgotZnJvbSBfcHl0
ZXN0LnJlY3dhcm4gaW1wb3J0IHdhcm5zLCBkZXByZWNhdGVkX2NhbGwKLWZyb20gX3B5dGVzdC5v
dXRjb21lcyBpbXBvcnQgZmFpbCwgc2tpcCwgaW1wb3J0b3Jza2lwLCBleGl0LCB4ZmFpbAotZnJv
bSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1BUktfR0VOIGFzIG1hcmssIHBhcmFtCi1mcm9tIF9weXRl
c3QubWFpbiBpbXBvcnQgU2Vzc2lvbgotZnJvbSBfcHl0ZXN0Lm5vZGVzIGltcG9ydCBJdGVtLCBD
b2xsZWN0b3IsIEZpbGUKLWZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgZmlsbGZpeHR1cmVz
IGFzIF9maWxsZnVuY2FyZ3MKLWZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IE1vZHVsZSwgQ2xh
c3MsIEluc3RhbmNlLCBGdW5jdGlvbiwgR2VuZXJhdG9yCi0KLWZyb20gX3B5dGVzdC5weXRob25f
YXBpIGltcG9ydCBhcHByb3gsIHJhaXNlcwotCi1zZXRfdHJhY2UgPSBfX3B5dGVzdFBEQi5zZXRf
dHJhY2UKLQotX19hbGxfXyA9IFsKLSAgICAibWFpbiIsCi0gICAgIlVzYWdlRXJyb3IiLAotICAg
ICJjbWRsaW5lIiwKLSAgICAiaG9va3NwZWMiLAotICAgICJob29raW1wbCIsCi0gICAgIl9fdmVy
c2lvbl9fIiwKLSAgICAicmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUiLAotICAgICJmcmVlemVfaW5j
bHVkZXMiLAotICAgICJzZXRfdHJhY2UiLAotICAgICJ3YXJucyIsCi0gICAgImRlcHJlY2F0ZWRf
Y2FsbCIsCi0gICAgImZpeHR1cmUiLAotICAgICJ5aWVsZF9maXh0dXJlIiwKLSAgICAiZmFpbCIs
Ci0gICAgInNraXAiLAotICAgICJ4ZmFpbCIsCi0gICAgImltcG9ydG9yc2tpcCIsCi0gICAgImV4
aXQiLAotICAgICJtYXJrIiwKLSAgICAicGFyYW0iLAotICAgICJhcHByb3giLAotICAgICJfZmls
bGZ1bmNhcmdzIiwKLSAgICAiSXRlbSIsCi0gICAgIkZpbGUiLAotICAgICJDb2xsZWN0b3IiLAot
ICAgICJTZXNzaW9uIiwKLSAgICAiTW9kdWxlIiwKLSAgICAiQ2xhc3MiLAotICAgICJJbnN0YW5j
ZSIsCi0gICAgIkZ1bmN0aW9uIiwKLSAgICAiR2VuZXJhdG9yIiwKLSAgICAicmFpc2VzIiwKLV0K
LQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAjIGlmIHJ1biBhcyBhIHNjcmlwdCBv
ciBieSAncHl0aG9uIC1tIHB5dGVzdCcKLSAgICAjIHdlIHRyaWdnZXIgdGhlIGJlbG93ICJlbHNl
IiBjb25kaXRpb24gYnkgdGhlIGZvbGxvd2luZyBpbXBvcnQKLSAgICBpbXBvcnQgcHl0ZXN0Ci0K
LSAgICByYWlzZSBTeXN0ZW1FeGl0KHB5dGVzdC5tYWluKCkpCi1lbHNlOgotCi0gICAgZnJvbSBf
cHl0ZXN0LmNvbXBhdCBpbXBvcnQgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZQotCi0gICAgX3Nl
dHVwX2NvbGxlY3RfZmFrZW1vZHVsZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0
ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGRkYzI3ODNjNjMyZjNkYTkyNWI3MTE0
YWNjN2M3OTQwYTMwNmM0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QvX19tYWluX18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvcHl0ZXN0L2NvbGxlY3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0L3B5LnR5cGVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhNzFk
M2JhOGFkODI5MDMzMTA3MGU2ZWViZGEyODc5MzE0MTU2YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L3B5dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90YXNrcy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWE1YjEyOTNlMzNlYTc1ODIyOGE0ZGRhYjllY2FlYzRjNmNlNzU1Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9fX2lu
aXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLSIiIgotSW52b2tlIHRhc2tz
IHRvIGhlbHAgd2l0aCBweXRlc3QgZGV2ZWxvcG1lbnQgYW5kIHJlbGVhc2UgcHJvY2Vzcy4KLSIi
IgotCi1pbXBvcnQgaW52b2tlCi0KLWZyb20gLiBpbXBvcnQgZ2VuZXJhdGUKLQotCi1ucyA9IGlu
dm9rZS5Db2xsZWN0aW9uKGdlbmVyYXRlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3Mv
Z2VuZXJhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9nZW5lcmF0ZS5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzk4YWY3MGM5NDI3YTc2YWMyMTg1MWJjNGNkNDg1YjE3MGUyMjNl
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90YXNrcy9nZW5lcmF0ZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0i
IiIKLUludm9rZSBkZXZlbG9wbWVudCB0YXNrcy4KLSIiIgotZnJvbSBwYXRobGliIGltcG9ydCBQ
YXRoCi1mcm9tIHN1YnByb2Nlc3MgaW1wb3J0IGNoZWNrX291dHB1dCwgY2hlY2tfY2FsbAotCi1p
bXBvcnQgaW52b2tlCi0KLQotQGludm9rZS50YXNrKGhlbHA9eyJ2ZXJzaW9uIjogInZlcnNpb24g
YmVpbmcgcmVsZWFzZWQifSkKLWRlZiBhbm5vdW5jZShjdHgsIHZlcnNpb24pOgotICAgICIiIkdl
bmVyYXRlcyBhIG5ldyByZWxlYXNlIGFubm91bmNlbWVudCBlbnRyeSBpbiB0aGUgZG9jcy4iIiIK
LSAgICAjIEdldCBvdXIgbGlzdCBvZiBhdXRob3JzCi0gICAgc3Rkb3V0ID0gY2hlY2tfb3V0cHV0
KFsiZ2l0IiwgImRlc2NyaWJlIiwgIi0tYWJicmV2PTAiLCAiLS10YWdzIl0pCi0gICAgc3Rkb3V0
ID0gc3Rkb3V0LmRlY29kZSgidXRmLTgiKQotICAgIGxhc3RfdmVyc2lvbiA9IHN0ZG91dC5zdHJp
cCgpCi0KLSAgICBzdGRvdXQgPSBjaGVja19vdXRwdXQoCi0gICAgICAgIFsiZ2l0IiwgImxvZyIs
ICJ7fS4uSEVBRCIuZm9ybWF0KGxhc3RfdmVyc2lvbiksICItLWZvcm1hdD0lYU4iXQotICAgICkK
LSAgICBzdGRvdXQgPSBzdGRvdXQuZGVjb2RlKCJ1dGYtOCIpCi0KLSAgICBjb250cmlidXRvcnMg
PSBzZXQoc3Rkb3V0LnNwbGl0bGluZXMoKSkKLQotICAgIHRlbXBsYXRlX25hbWUgPSAicmVsZWFz
ZS5taW5vci5yc3QiIGlmIHZlcnNpb24uZW5kc3dpdGgoCi0gICAgICAgICIuMCIKLSAgICApIGVs
c2UgInJlbGVhc2UucGF0Y2gucnN0IgotICAgIHRlbXBsYXRlX3RleHQgPSBQYXRoKF9fZmlsZV9f
KS5wYXJlbnQuam9pbnBhdGgodGVtcGxhdGVfbmFtZSkucmVhZF90ZXh0KAotICAgICAgICBlbmNv
ZGluZz0iVVRGLTgiCi0gICAgKQotCi0gICAgY29udHJpYnV0b3JzX3RleHQgPSAiXG4iLmpvaW4o
Ci0gICAgICAgICIqIHt9Ii5mb3JtYXQobmFtZSkgZm9yIG5hbWUgaW4gc29ydGVkKGNvbnRyaWJ1
dG9ycykKLSAgICApICsgIlxuIgotICAgIHRleHQgPSB0ZW1wbGF0ZV90ZXh0LmZvcm1hdCh2ZXJz
aW9uPXZlcnNpb24sIGNvbnRyaWJ1dG9ycz1jb250cmlidXRvcnNfdGV4dCkKLQotICAgIHRhcmdl
dCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lucGF0aCgKLSAgICAgICAgIi4uL2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLXt9LnJzdCIuZm9ybWF0KHZlcnNpb24pCi0gICAgKQotICAgIHRhcmdl
dC53cml0ZV90ZXh0KHRleHQsIGVuY29kaW5nPSJVVEYtOCIpCi0gICAgcHJpbnQoIltnZW5lcmF0
ZS5hbm5vdW5jZV0gR2VuZXJhdGVkIHt9Ii5mb3JtYXQodGFyZ2V0Lm5hbWUpKQotCi0gICAgIyBV
cGRhdGUgaW5kZXggd2l0aCB0aGUgbmV3IHJlbGVhc2UgZW50cnkKLSAgICBpbmRleF9wYXRoID0g
UGF0aChfX2ZpbGVfXykucGFyZW50LmpvaW5wYXRoKCIuLi9kb2MvZW4vYW5ub3VuY2UvaW5kZXgu
cnN0IikKLSAgICBsaW5lcyA9IGluZGV4X3BhdGgucmVhZF90ZXh0KGVuY29kaW5nPSJVVEYtOCIp
LnNwbGl0bGluZXMoKQotICAgIGluZGVudCA9ICIgICAiCi0gICAgZm9yIGluZGV4LCBsaW5lIGlu
IGVudW1lcmF0ZShsaW5lcyk6Ci0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgie31yZWxlYXNl
LSIuZm9ybWF0KGluZGVudCkpOgotICAgICAgICAgICAgbmV3X2xpbmUgPSBpbmRlbnQgKyB0YXJn
ZXQuc3RlbQotICAgICAgICAgICAgaWYgbGluZSAhPSBuZXdfbGluZToKLSAgICAgICAgICAgICAg
ICBsaW5lcy5pbnNlcnQoaW5kZXgsIG5ld19saW5lKQotICAgICAgICAgICAgICAgIGluZGV4X3Bh
dGgud3JpdGVfdGV4dCgiXG4iLmpvaW4obGluZXMpICsgIlxuIiwgZW5jb2Rpbmc9IlVURi04IikK
LSAgICAgICAgICAgICAgICBwcmludCgiW2dlbmVyYXRlLmFubm91bmNlXSBVcGRhdGVkIHt9Ii5m
b3JtYXQoaW5kZXhfcGF0aC5uYW1lKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoCi0gICAgICAgICAgICAgICAgICAgICJbZ2VuZXJhdGUuYW5ub3VuY2VdIFNraXAg
e30gKGFscmVhZHkgY29udGFpbnMgcmVsZWFzZSkiLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4X3BhdGgubmFtZQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgYnJlYWsKLQotICAgIGNoZWNrX2NhbGwoWyJnaXQiLCAiYWRk
Iiwgc3RyKHRhcmdldCldKQotCi0KLUBpbnZva2UudGFzaygpCi1kZWYgcmVnZW4oY3R4KToKLSAg
ICAiIiJDYWxsIHJlZ2VuZG9jIHRvb2wgdG8gdXBkYXRlIGV4YW1wbGVzIGFuZCBweXRlc3Qgb3V0
cHV0IGluIHRoZSBkb2NzLiIiIgotICAgIHByaW50KCJbZ2VuZXJhdGUucmVnZW5dIFVwZGF0aW5n
IGRvY3MiKQotICAgIGNoZWNrX2NhbGwoWyJ0b3giLCAiLWUiLCAicmVnZW4iXSkKLQotCi1AaW52
b2tlLnRhc2soKQotZGVmIG1ha2VfdGFnKGN0eCwgdmVyc2lvbik6Ci0gICAgIiIiQ3JlYXRlIGEg
bmV3LCBsb2NhbCB0YWcgZm9yIHRoZSByZWxlYXNlLCBvbmx5IGlmIHRoZSByZXBvc2l0b3J5IGlz
IGNsZWFuLiIiIgotICAgIGZyb20gZ2l0IGltcG9ydCBSZXBvCi0KLSAgICByZXBvID0gUmVwbygi
LiIpCi0gICAgaWYgcmVwby5pc19kaXJ0eSgpOgotICAgICAgICBwcmludCgiQ3VycmVudCByZXBv
c2l0b3J5IGlzIGRpcnR5LiBQbGVhc2UgY29tbWl0IGFueSBjaGFuZ2VzIGFuZCB0cnkgYWdhaW4u
IikKLSAgICAgICAgcmFpc2UgaW52b2tlLkV4aXQoY29kZT0yKQotCi0gICAgdGFnX25hbWVzID0g
W3gubmFtZSBmb3IgeCBpbiByZXBvLnRhZ3NdCi0gICAgaWYgdmVyc2lvbiBpbiB0YWdfbmFtZXM6
Ci0gICAgICAgIHByaW50KCJbZ2VuZXJhdGUubWFrZV90YWddIERlbGV0ZSBleGlzdGluZyB0YWcg
e30iLmZvcm1hdCh2ZXJzaW9uKSkKLSAgICAgICAgcmVwby5kZWxldGVfdGFnKHZlcnNpb24pCi0K
LSAgICBwcmludCgiW2dlbmVyYXRlLm1ha2VfdGFnXSBDcmVhdGUgdGFnIHt9Ii5mb3JtYXQodmVy
c2lvbikpCi0gICAgcmVwby5jcmVhdGVfdGFnKHZlcnNpb24pCi0KLQotQGludm9rZS50YXNrKGhl
bHA9eyJ2ZXJzaW9uIjogInZlcnNpb24gYmVpbmcgcmVsZWFzZWQifSkKLWRlZiBwcmVfcmVsZWFz
ZShjdHgsIHZlcnNpb24pOgotICAgICIiIkdlbmVyYXRlcyBuZXcgZG9jcywgcmVsZWFzZSBhbm5v
dW5jZW1lbnRzIGFuZCBjcmVhdGVzIGEgbG9jYWwgdGFnLiIiIgotICAgIGFubm91bmNlKGN0eCwg
dmVyc2lvbikKLSAgICByZWdlbihjdHgpCi0gICAgY2hhbmdlbG9nKGN0eCwgdmVyc2lvbiwgd3Jp
dGVfb3V0PVRydWUpCi0KLSAgICBtc2cgPSAiUHJlcGFyaW5nIHJlbGVhc2UgdmVyc2lvbiB7fSIu
Zm9ybWF0KHZlcnNpb24pCi0gICAgY2hlY2tfY2FsbChbImdpdCIsICJjb21taXQiLCAiLWEiLCAi
LW0iLCBtc2ddKQotCi0gICAgbWFrZV90YWcoY3R4LCB2ZXJzaW9uKQotCi0gICAgcHJpbnQoKQot
ICAgIHByaW50KCJbZ2VuZXJhdGUucHJlX3JlbGVhc2VdIFBsZWFzZSBwdXNoIHlvdXIgYnJhbmNo
IGFuZCBvcGVuIGEgUFIuIikKLQotCi1AaW52b2tlLnRhc2soCi0gICAgaGVscD17Ci0gICAgICAg
ICJ2ZXJzaW9uIjogInZlcnNpb24gYmVpbmcgcmVsZWFzZWQiLAotICAgICAgICAid3JpdGVfb3V0
IjogIndyaXRlIGNoYW5nZXMgdG8gdGhlIGFjdHVhbCBjaGFuZ2Vsb2ciLAotICAgIH0KLSkKLWRl
ZiBjaGFuZ2Vsb2coY3R4LCB2ZXJzaW9uLCB3cml0ZV9vdXQ9RmFsc2UpOgotICAgIGlmIHdyaXRl
X291dDoKLSAgICAgICAgYWRkb3B0cyA9IFtdCi0gICAgZWxzZToKLSAgICAgICAgYWRkb3B0cyA9
IFsiLS1kcmFmdCJdCi0gICAgY2hlY2tfY2FsbChbInRvd25jcmllciIsICItLXllcyIsICItLXZl
cnNpb24iLCB2ZXJzaW9uXSArIGFkZG9wdHMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNr
cy9yZWxlYXNlLm1pbm9yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGQ4MjgyY2ZhZDk5ZjdlN2IxOTBiNTA2
ZGRmNjhkNWUwNDZiOWI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0CisrKyAvZGV2L251bGwK
QEAgLTEsMjcgKzAsMCBAQAotcHl0ZXN0LXt2ZXJzaW9ufQotPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0KLVRoZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5j
ZSB0aGUge3ZlcnNpb259IHJlbGVhc2UhCi0KLXB5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVz
dGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMjAwMCB0ZXN0cwotYWdhaW5zdCBpdHNlbGYsIHBh
c3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCi0KLVRo
aXMgcmVsZWFzZSBjb250YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVu
dHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCi10byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdF
TE9HOgotCi0gICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRt
bAotCi1Gb3IgY29tcGxldGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgotCi0gICAgaHR0
cDovL2RvY3MucHl0ZXN0Lm9yZwotCi1BcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlw
aSB2aWE6Ci0KLSAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKLQotVGhhbmtzIHRvIGFsbCB3aG8g
Y29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgotCi17Y29udHJpYnV0b3Jz
fQotCi1IYXBweSB0ZXN0aW5nLAotVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBhdGNoLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rh
c2tzL3JlbGVhc2UucGF0Y2gucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTgy
ZGMzNTNjNGI2YzQ1ZTk3MWMwMWMyOTRjZTgzODc4ZTgwODk1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UucGF0
Y2gucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotcHl0ZXN0LXt2ZXJzaW9ufQot
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXB5dGVzdCB7dmVyc2lv
bn0gaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgotCi1UaGlzIGlzIGEgYnVnLWZpeCBy
ZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgotCi0gIHBp
cCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKLQotVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWls
YWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgot
Ci1UaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRo
ZW06Ci0KLXtjb250cmlidXRvcnN9Ci0KLUhhcHB5IHRlc3RpbmcsCi1UaGUgcHl0ZXN0IERldmVs
b3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlcXVpcmVtZW50cy50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYjU0ZTc2ZTg1YzhiNmI3NWY1ZGRmNmRhNWY4NzkxMGEzMzg4ZDY3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rhc2tzL3JlcXVpcmVtZW50cy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS1l
IC4KLWdpdHB5dGhvbgotaW52b2tlCi10b3duY3JpZXIKLXRveAotd2hlZWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhZTA4NTNkMzJkODAw
NjZkZjk0NmMwMjM0MWExYTY4YjE0NWZkNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL2dlbmVyYXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFz
a3MvcmVsZWFzZS5taW5vci5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBhdGNoLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlcXVpcmVtZW50cy50eHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
Y29kZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGRmZmZl
ZTA3MWQ4OGUxNTllYTliNTgyZTgwOTU1Njk3NzQxNWQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2Rl
L3Rlc3RfZXhjaW5mby5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0
YW5jZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2FjY2VwdGFuY2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQyN2I3NWUwNWZlY2E3ODYyOGU4YTI1YTZhNzAzMDcxYjE0OWYyYjEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvYWNjZXB0YW5jZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2FjY2VwdGFuY2UvZml4dHVyZV9tb2NrX2ludGVncmF0aW9uLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0
cy90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmVkZmRkMzM3NjYyZTY2MTU1ZjBjNTQ1NDUzZWFl
NTVkNzY3MTJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0
X3Rlc3RzL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9j
b2xsZWN0X2luaXRfdGVzdHMvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy90ZXN0X2Zv
by5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29s
bGVjdC9jb2xsZWN0X2luaXRfdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZmMTZmNDQwZDA4NzM1ZjM4OTU0
MWJhYjRjOGMzNTQzNGUyZmFmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2Nv
bGxlY3RfaW5pdF90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvY29sbGVjdF9pbml0X3Rlc3RzL3B5dGVzdC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNp
b24vdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL19faW5pdF9fLnB5Cmlu
ZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJk
MWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24v
dGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy9fX2luaXRfXy5weQpA
QCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0
L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3Jl
Y3Vyc2lvbi90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmZjMjI1ODU4NWIzNTc1NWE3NzkzNmJkMjk5ZWZlODRjYmM0MmFmZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRl
X3JlY3Vyc2lvbi90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24vdGVzdHMvdGVzdF9i
YXNpYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Y29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9y
ZWN1cnNpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcx
MWYyMzUyOWFkZmE5ZTdiMzM3ODc3OWExYWI5ZjA4MzViNmNkNTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNpb24v
X19pbml0X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVj
dC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi9jb25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2
ZW5fYXNfYXJnL3BrZy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvX19pbml0X18ucHkK
aW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJi
MmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJn
L3BrZy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL19faW5pdF9fLnB5CkBAIC0x
ICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRo
aXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFj
a2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcv
cGtnL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWJhMmFk
OTEyY2Y4NzQwOWJhYjNkNmM4M2U4NzE5ZDc2YjgzOTc5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtn
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVj
dC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3BrZy90ZXN0X2Zvby5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0
X3ByZWZpeC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5NTJjMTQ1MmZlOWNlM2U3MjVjNzk2OGQ0Mjc3ZTNjZTVm
ZjFjOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3By
ZWZpeC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5
dGVzdF9wcmVmaXgvX19pbml0X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC9jb25mdGVzdC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZpZy9jb2xsZWN0X3B5dGVzdF9wcmVmaXgv
dGVzdF9mb28ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91c2FnZWVycm9yL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWE5MWIwMTU5YzQ0ODBiMDQ2MGM3MDcyMjBm
ZDRkYzRmNDI3NzY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJy
b3IvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25mdGVzdF91c2FnZWVycm9y
L19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0
ZXN0X3VzYWdlZXJyb3IvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3YTc2ZmJmYTBhNTM0MTU5MTkyYTZkYmU3NGRm
NDdiMDQzZGRkMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBhcmVfZGF0
YWNsYXNzZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xh
c3Nlcy90ZXN0X2NvbXBhcmVfZGF0YWNsYXNzZXNfZmllbGRfY29tcGFyaXNvbl9vZmYucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2NvbXBh
cmVfZGF0YWNsYXNzZXNfdmVyYm9zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9yZWN1cnNpdmVfZGF0YWNsYXNzZXMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy90ZXN0X2Nv
bXBhcmVfdHdvX2RpZmZlcmVudF9kYXRhY2xhc3Nlcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3Vz
dG9tX2l0ZW0vZm9vL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkw
MWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVz
L2N1c3RvbV9pdGVtL2Zvby9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9mb28vX19pbml0X18ucHkKQEAgLTEg
KzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhp
cyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3Vz
dG9tX2l0ZW0vZm9vL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjRjNWU0NThjZDE4NzQyNjNlZTkyMzlkMjFlNWE4Yjg0
NzY0ZmQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2Zv
by93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVt
L2Zvby9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Zp
eHR1cmVzL2N1c3RvbV9pdGVtL2Zvby90ZXN0X2Zvby5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0
b21faXRlbS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcy
OGUyNjEzZGNhNmZlNmQ4ODFiNzk1ZGEyZmE5OTFiMGRiODQ5Ni4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL2NvbmZ0ZXN0LnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3Vi
ZGlyL3N1YjEvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFp
bGFibGVfaW5fc3ViZGlyL3N1YjEvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBl
MTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJl
NDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Zml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxh
YmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5j
YXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS9fX2luaXRfXy5weQpAQCAtMSArMCww
IEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRp
cmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2Zp
eHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1
YjEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9m
aXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFi
bGVfaW5fc3ViZGlyL3N1YjEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQyYzE4OGJiODhiNjNiMTFlODJjNThkMTkxMjI5NmZiN2I5ZjAwNzIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1
bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNh
cmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Nv
bmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIxL2NvbmZ0ZXN0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0
dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIx
L3Rlc3RfaW5fc3ViMS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29u
bHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0
X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5CmluZGV4
IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2
NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9m
dW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9fX2luaXRfXy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvX19p
bml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZh
aWxhYmxlX2luX3N1YmRpci9zdWIyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1
bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTVmZDAyMmY0Njk3Y2IxZDVjMGUxOTk0NjBlOWM4
OGUwZWM2YWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVy
ZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2Zp
bGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJk
aXIvc3ViMi9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWls
YWJsZV9pbl9zdWJkaXIvc3ViMi90ZXN0X2luX3N1YjIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9l
eHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL19faW5pdF9fLnB5CmluZGV4IGE2
ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0
YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVy
ZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9m
aXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0
dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNhYzgyMjI2ZTE2Njk0YjE5OTFi
YTg0Zjk1OGVkOGRmMGE3Nzg0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90
ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvY29uZnRlc3QucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvcGtnL3Rlc3Rfc3BhbS5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGVlZTQ4ZTcxMzgzODhk
Mjc3YzM0OTVlOGIwYWU2ZGFiNDg4NDNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9fX2luaXRfXy5weWkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rl
c3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvY29uZnRlc3QucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1
cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzViNjY1YzQwZDRiMzE3MGQ0ZGNiMTZmNDcw
ZTY1ZDhhZDhkNjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4
dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2Zp
eHR1cmVfY29uZnRlc3RfbW9kdWxlL19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVy
ZV9jb25mdGVzdF9tb2R1bGUvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29u
ZnRlc3RfbW9kdWxlL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxs
X2ZpeHR1cmVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTkyMjM2MThkNjViMjdiNTFhZWIxZGQyYjBjOGY0YzM5MWIwOGM2
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0
X2RldGVjdF9yZWN1cnNpdmVfZGVwZW5kZW5jeV9lcnJvci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4
dHVyZV9tb2R1bGVfY2xhc3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVuY2FyZ19iYXNpYy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9m
dW5jYXJnX2xvb2t1cF9jbGFzc2xldmVsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9va3VwX21vZHVs
ZWxldmVsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9va3VwZmFpbHMucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3NTliNDM3OTFjMTk0MzA2ZGJl
ZTQxMTIwM2Y5MzY2NmE5N2VhNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy90ZXN0X2ZpeHR1cmVf
bmFtZWRfcmVxdWVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Zp
eHR1cmVzL3Rlc3RfZ2V0Zml4dHVyZXZhbHVlX2R5bmFtaWMucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211bHRp
bm9kZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9pc3N1ZTg4X2luaXRpYWxfZmlsZV9tdWx0aW5vZGVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWFkOWJjZTQxZDM0ZGZkZjJlMWIyMGMwNTFhMTZkODkz
ZTgwZDMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211
bHRpbm9kZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRp
YWxfZmlsZV9tdWx0aW5vZGVzL19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMvY29uZnRlc3QucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1ZTg4X2luaXRpYWxfZmls
ZV9tdWx0aW5vZGVzL3Rlc3RfaGVsbG8ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJr
c19jb25zaWRlcmVkX2tleXdvcmRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwODQ5OTgzY2I1MWE1YTljYzE5Mzc3ZDRkNzYyNmNjZDViZmJmNzBkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tl
eXdvcmRzL19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9tYXJrcy9tYXJrc19jb25zaWRlcmVkX2tleXdvcmRz
L3Rlc3RfbWFya3NfYXNfa2V5d29yZHMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy8uZ2l0aWdub3Jl
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xs
ZWN0X3N0YXRzLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0NWMyZWEzNTFhNzA5ODIyYjc5ZDE2
YWEzNjE0NmJhYmE4MGM5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy8uZ2l0aWdub3JlCkBA
IC0wLDAgKzEgQEAKK2Zvb18qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3RhdHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rf
c3RhdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlYzU1
MTgzMGYyNTc5NDc3ODNiMDZiZWM1YmNiZWUyMWFkMTFlNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvcGVyZl9leGFtcGxlcy9jb2xsZWN0X3N0YXRzL2dlbmVyYXRlX2ZvbGRlcnMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2Nv
bGxlY3Rfc3RhdHMvdGVtcGxhdGVfdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzOTE2NDM5MDYwMTJiMDNhZjYwZWI1YzdkZjllZWUwNGFjYzNl
NDhjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3RtcGRpci93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3RtcGRpci90bXBkaXJfZml4dHVyZS5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVhNjVhNTcyMDcwNzU4OGFhOGFk
NjI2MDgyYmZjMzhlYmY1YTNhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVzdC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3RfcGFyYW1ldHJp
emVkX2ZpeHR1cmVfZXJyb3JfbWVzc2FnZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tpcF9jbGFzcy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3Rfc2V0dXBfc2tp
cF9tb2R1bGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy91bml0dGVz
dC90ZXN0X3VuaXR0ZXN0X2FzeW5jaW8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy91bml0dGVzdC90ZXN0X3VuaXR0ZXN0X2FzeW5jdGVzdC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3RfdW5pdHRlc3RfcGxhaW5fYXN5
bmMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3NDQ2YmMxZGJjNTkzZWFk
N2E3ODAyZDdkMDJkZmEwMmY4NDRhNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWVfNTE5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvanVuaXQtMTAueHNkCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvcHl0ZXN0LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJuaW5nc19ieV9tZXNzYWdlX3N1bW1h
cnkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93
YXJuaW5ncy90ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2Vfc3VtbWFyeS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM3Zjk3NDkxNzM2NGIzZTRjMTc1
N2JmNjdkMjRmZDJhNzQ0MTQ5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93YXJuaW5ncy90
ZXN0X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2Vfc3VtbWFyeS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3Rlc3RfZ3JvdXBfd2FybmluZ3NfYnlfbWVzc2FnZV9z
dW1tYXJ5L3Rlc3RfMS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dh
cm5pbmdzL3Rlc3RfZ3JvdXBfd2FybmluZ3NfYnlfbWVzc2FnZV9zdW1tYXJ5L3Rlc3RfMi5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3Mv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93YXJu
aW5ncy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk2ODBj
N2I2ZWIwOWEwM2IwMjlkMjk1NzZmZTc2MjZkNjU4Y2I5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy93YXJuaW5ncy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdz
L3Rlc3RfZ3JvdXBfd2FybmluZ3NfYnlfbWVzc2FnZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw
MTg4ZjVkOGJmYzM5MjE4OTU3MWQ4ZjVmOTk0YzRkZWMyNzcyNzEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZXMvdGVzdF9pc3N1ZTUxOS5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZnJlZXplLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUzMzE5MDg3MjQ4NTc0MmQwZjA3
NzA5MjFlNzdlOGU3YjhiNWVkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZnJlZXplLy5naXRpZ25vcmUKQEAgLTAsMCArMSwzIEBACitidWlsZC8KK2Rpc3QvCisqLnNw
ZWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzNzJkYjFmZjk4NTkxNTAwOTc5Nzk0Zjcy
YjBjOTdlNTFhMWMwYjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2ZyZWV6ZS90ZXN0cy90ZXN0X2RvY3Rlc3QudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVl
emUvdGVzdHMvdGVzdF90cml2aWFsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2ZyZWV6ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjA4NWI2NWI3ZmQ0Njcz
NmEzMGY3Mzk1NjY4YTBhZmJjNmZkYjE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9mcmVlemUvY3JlYXRlX2V4ZWN1dGFibGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS9ydW50ZXN0c19zY3JpcHQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90b3hf
cnVuLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2lvL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9pby93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2JjNTdjOTYyMTdhZTU2N2Q0MjM4ODA1N2IyNmQzN2Q2MTk0ZjM2My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2lvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9pby90ZXN0X3NhZmVyZXByLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9pby90ZXN0X3Rlcm1pbmFsd3JpdGVyLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9pby90ZXN0X3djd2lkdGgucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYyNzgwNjg3MWFk
NTFhYjE1YWJlMDZiM2M5MDE1NmJiMjQ5YjkxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9maXh0dXJlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9s
b2dnaW5nL3Rlc3RfZm9ybWF0dGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rl
c3RfcmVwb3J0aW5nLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3BsdWdpbnNf
aW50ZWdyYXRpb24vLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRl
Z3JhdGlvbi8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MzQ0NDdhMDNiZDQ3MjhhMzhjMTFkNjgx
MTU5M2I3OWYzYTU0MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Bs
dWdpbnNfaW50ZWdyYXRpb24vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKKyouaHRtbAorYXNz
ZXRzLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9u
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9u
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTkzNjljMWUy
NDllMTcxODkxZTIwNDZhMTI4OGNkNGEzZGMxYjczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3Jh
dGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9SRUFETUUucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL2JkZF93YWxsZXQuZmVhdHVy
ZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9iZGRfd2FsbGV0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL2RqYW5nb19zZXR0aW5n
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9weXRlc3QuaW5p
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL3B5dGVzdF9hbnlpb19p
bnRlZ3JhdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9w
eXRlc3RfYXN5bmNpb19pbnRlZ3JhdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2lu
c19pbnRlZ3JhdGlvbi9weXRlc3RfbW9ja19pbnRlZ3JhdGlvbi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9weXRlc3RfdHJpb19pbnRlZ3JhdGlvbi5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9weXRlc3RfdHdpc3RlZF9pbnRl
Z3JhdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi9zaW1w
bGVfaW50ZWdyYXRpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYzQ4YTc3MjJmZjMwZmNhNmNhOGIw
NWY1M2RmZjQ0MmIzOGE3ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi9hcHByb3gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vZml4dHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi9pbnRlZ3JhdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21l
dGFmdW5jLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vcmFpc2VzLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9weXRob24vc2hvd19maXh0dXJlc19wZXJfdGVzdC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzOTQ2Y2M4
NDgwZGM1Zjc4ZjNlM2RiNzI2ZmVjYWNmOTRlMTI5ZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvYWNjZXB0YW5jZV90ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb25mdGVzdC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZGVwcmVjYXRlZF90ZXN0LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X2FyZ2NvbXBsZXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fz
c2VydGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfY2FwdHVyZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb2xsZWN0
aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbXBhdC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29uZnRl
c3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZGVidWdnaW5nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZW50
cnlfcG9pbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Vycm9yX2RpZmZzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2ZhdWx0aGFuZGxlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9maW5kcGF0aHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfaGVscGNv
bmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9qdW5pdHhtbC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9saW5rX3Jlc29sdmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfbWFpbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X21hcmtfZXhwcmVzc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9tZXRhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21vbmtleXBhdGNoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vZGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X25vc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFzdGViaW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcGF0aGxpYi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3B5dGVzdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3JlY3dhcm4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVwb3J0cy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfcnVubmVyX3h1bml0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Nlc3Np
b24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2V0dXBvbmx5LnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3NldHVwcGxhbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9z
a2lwcGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9zdGVwd2lzZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9zdG9yZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90
ZXJtaW5hbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90bXBkaXIucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
d2FybmluZ190eXBlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJuaW5ncy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdHlwaW5nX2NoZWNrcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI4YmNlZTQ5ZmY4NjE0YTc5ZDE1OWQyZmMxZTMyNDYx
OWQyNGY5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L0FVVEhPUlMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSEFOR0VMT0cucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvQ0lUQVRJT04KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DT0RFX09GX0NPTkRVQ1QubWQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9DT05UUklCVVRJTkcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L09QRU5DT0xMRUNUSVZFLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1BLRy1JTkZPCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFTEVBU0lORy5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9USURFTElGVC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jb2RlY292LnltbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3B5cHJvamVjdC50b21sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0
dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGYyODY3MDU0MTk4NDcxMTgyY2M4NjE5NjYzYTY4NGQ5NThmNmNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDQgQEAKKyoucHljCiti
dWlsZC8KKyouZWdnLWluZm8vCitkaXN0LwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMv
LnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My8udHJhdmlzLnltbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MDY1YTY0NGRkNmI2MDc5NzEyOGIwOTk5OGY2N2I1MTM1YjExODllCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwxNyBAQAorbGFuZ3Vh
Z2U6IHB5dGhvbgorcHl0aG9uOgorICAtIDIuNworICAtIDMuNQorICAtIDMuNgorICAtIDMuNwor
ICAtIDMuOAorICAtIG5pZ2h0bHkKKworbWF0cml4OgorICBhbGxvd19mYWlsdXJlczoKKyAgICAt
IHB5dGhvbjogMy41LCBuaWdodGx5CitpbnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIHNpeCB5YXBm
CitzY3JpcHQ6CisgIC0gcHl0aG9uIHRlc3QvcnVuX2FsbC5weQorICAtIHlhcGYgLS1kaWZmIC0t
cmVjdXJzaXZlIC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY2dpLWJp
bi9oaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY2dpLWJpbi9oaS5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9l
eGFtcGxlL2NnaS1iaW4vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxl
L2NnaS1iaW4vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNm
ZDE5NjAwOTZjMzM0NDliYWE1MDM4MDJjYmJmZDQxMmNlZjQxZDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9j
Z2ktYmluL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9jZ2ktYmluL2hpLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL2VjaG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvZXhhbXBsZS9lY2hvX2NsaWVudC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL3NwZWNpYWxfaGVhZGVy
cy5jZ2kgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmNDNkMzhlMmFiNjJm
YTc2MWU1NDFjM2U0N2I1MTU2NGQ5MTMxYWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4
YW1wbGUvYWJvcnRfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9hcnJheWJ1ZmZl
cl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvYmVuY2hfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzL2V4YW1wbGUvYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9i
ZW5jaG1hcmtfaGVscGVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY2xvc2Vf
d3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9jb25zb2xlLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFt
cGxlL2VjaG9fY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9lY2hvX25vZXh0
X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvZWNob193c2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4
YW1wbGUvaHN0c193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL2ludGVybmFsX2Vy
cm9yX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My9leGFtcGxlL3V0aWwuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL3V0
aWxfbWFpbi5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvdXRpbF93b3JrZXIuanMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2U4ODY1YWEw
YWZhM2ZiNWJiZjVkYzM4YjUzZGIwMjI5M2JjZDZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9o
YW5kc2hha2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9iYXNl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21v
ZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDYxNDI1ZTExNGQxNGQ4NmY4MWJjZDE0MWY2MmY3N2Q2NjRiOWNjZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2Rf
cHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9leGNlcHRpb25zLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQz
L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5
d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29j
a2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2Nr
ZXQvbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQv
bXNndXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9yZXF1ZXN0X2hh
bmRsZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvc2VydmVyX3V0aWwu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29j
a2V0My9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdl
YnNvY2tldC93ZWJzb2NrZXRfc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3NldHVwLnB5Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L19faW5pdF9fLnB5CmluZGV4IGE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlh
ZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvX19p
bml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9fX2luaXRfXy5weQpAQCAtMSAr
MCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlz
IGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc5MDQ0MTkwZjU4YmU3NzQ1NjE1MjNiM2E3ZWI5Y2RkYWJhODIzODQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9jZXJ0L2NhY2VydC5wZW0KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5d2Vic29ja2V0My90ZXN0L2NlcnQvY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90
ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9jZXJ0L2tl
eS5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvcnVuX2FsbC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl3ZWJzb2NrZXQzL3Rlc3QvcnVuX2FsbC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZGlzcGF0Y2gu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKb2xkIG1vZGUgMTAw
NjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90
ZXN0X2VuZHRvZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2VuZHRvZW5kLnB5
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90
ZXN0X2V4dGVuc2lvbnMucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2hhbmRzaGFr
ZV9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMv
dGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X21lbW9yaXppbmdm
aWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL3Rlc3QvdGVzdF9tb2NrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X21vY2su
cHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdl
YnNvY2tldDMvdGVzdC90ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rl
c3RfbXNndXRpbC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3Rfc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvdGVzdC90ZXN0X3N0cmVhbS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfdXRpbC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL3Rlc3QvdGVzdF91dGlsLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
c3ViL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUz
NjVkYmUzMmFhYzkxMjI5MWEzNjNhOGM4M2ViZThlMGZlZDYwZTguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0X3RoZV9lbmQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFu
ZHNoYWtlX3NpZ193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdl
YnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTA4YzBmNjU3MmIxMmZjMWIxNDY2NjNmZmVhZDU4YzQ4MjVj
MjM3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hlbGxvLnBsIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvdGVzdC90ZXN0ZGF0YS9oZWxsby5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODJlZjVhMTAwNjVmZWI2
OTFhZjVmNzE2YjFlNDk5NmIzOTdkYTY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvdGVzdC90ZXN0ZGF0YS9oZWxsby5wbApAQCAtMCwwICsxLDMyIEBACisjIS91c3IvYmlu
L3BlcmwgLXdUCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMg
ZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcHJpbnQgIkhlbGxvXG4iOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNmNzZiOGUxOTIwZGMzYmVjYTZlZTUwZGQzMjJiZDYwYTU4Y2M0
ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEv
UkVBRE1FCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZThmOWVlYTE5MTRiOTFkNmY1NWU1NDY3ZGI5MDgxNTFkNjg3ZTk1NC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMv
dGVzdC9tb2NrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9ydW5fYWxsLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXdlYnNvY2tldDMvdGVzdC9zZXRfc3lzX3BhdGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0
L3Rlc3RfZGlzcGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZW5kdG9lbmQu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0
L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfaHR0
cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9tZW1vcml6aW5n
ZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9tb2NrLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdl
YnNvY2tldDMvdGVzdC90ZXN0X21zZ3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rl
c3Rfc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X3V0aWwucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiZmRiYzFm
NjE4OTk0NmRhZWJjOGVmMGM1ZGM1Mjc1OGZjYTk0NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My9DT05UUklCVVRJTkcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9MSUNFTlNFCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9SRUFETUUubWQKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMGQ2ZjA5OGU5ZGViNWNkYTAyZjJiYmMxYmFk
OGNjOWUyMWU3YzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9u
L2luZGV4LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vSU5T
VEFMTEVSIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vSU5TVEFMTEVSCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWI1ODllMzhhMzIwNDFlNDkzMzJlNWU4MWMyZDM2M2Rj
NDE4ZDY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0lOU1RBTExFUgorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLXBpcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8v
TElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0xJQ0VOU0UKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiMDVhNTQ1MjYxYzBmOWIzMWFiZTNlZGVjNzEwNTg3NTg3
YTY1OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vTElDRU5TRQorKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLUNvcHlyaWdodCAoYykgMjAxMC0yMDE5IEJlbmphbWluIFBldGVyc29uCi0KLVBl
cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u
IG9idGFpbmluZyBhIGNvcHkgb2YKLXRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluCi10aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvCi11c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1
YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgotdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy
bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLAot
c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLVRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu
IGFsbAotY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLQot
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z
IEtJTkQsIEVYUFJFU1MgT1IKLUlNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g
VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTCi1GT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFV
VEhPUlMgT1IKLUNPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B
R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgotSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU
LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLUNPTk5FQ1RJ
T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
U09GVFdBUkUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9NRVRB
REFUQSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL01FVEFEQVRBCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMGM4ZjUxZTFmMzY2MTM4ZDM4MTZhYmUwZGRiM2VmZWU0MTc1
YzNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
c2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL01FVEFEQVRBCisrKyAvZGV2L251bGwKQEAgLTEsNTIg
KzAsMCBAQAotTWV0YWRhdGEtVmVyc2lvbjogMi4xCi1OYW1lOiBzaXgKLVZlcnNpb246IDEuMTMu
MAotU3VtbWFyeTogUHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSB1dGlsaXRpZXMKLUhvbWUt
cGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2JlbmphbWlucC9zaXgKLUF1dGhvcjogQmVuamFtaW4g
UGV0ZXJzb24KLUF1dGhvci1lbWFpbDogYmVuamFtaW5AcHl0aG9uLm9yZwotTGljZW5zZTogTUlU
Ci1QbGF0Zm9ybTogVU5LTk9XTgotQ2xhc3NpZmllcjogRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUg
LSBQcm9kdWN0aW9uL1N0YWJsZQotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6IDIKLUNsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6
OiAzCi1DbGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCi1DbGFzc2lm
aWVyOiBMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQotQ2xhc3NpZmllcjog
VG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzCi1DbGFzc2lmaWVyOiBU
b3BpYyA6OiBVdGlsaXRpZXMKLVJlcXVpcmVzLVB5dGhvbjogPj0yLjYsICE9My4wLiosICE9My4x
LioKLQotLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9zaXguc3ZnCi0g
ICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3JnL3Byb2plY3Qvc2l4LwotICAgOmFsdDogc2l4IG9u
IFB5UEkKLQotLi4gaW1hZ2U6OiBodHRwczovL3RyYXZpcy1jaS5vcmcvYmVuamFtaW5wL3NpeC5z
dmc/YnJhbmNoPW1hc3RlcgotICAgOnRhcmdldDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2Jlbmph
bWlucC9zaXgKLSAgIDphbHQ6IHNpeCBvbiBUcmF2aXNDSQotCi0uLiBpbWFnZTo6IGh0dHBzOi8v
cmVhZHRoZWRvY3Mub3JnL3Byb2plY3RzL3NpeC9iYWRnZS8/dmVyc2lvbj1sYXRlc3QKLSAgIDp0
YXJnZXQ6IGh0dHBzOi8vc2l4LnJlYWR0aGVkb2NzLmlvLwotICAgOmFsdDogc2l4J3MgZG9jdW1l
bnRhdGlvbiBvbiBSZWFkIHRoZSBEb2NzCi0KLS4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxk
cy5pby9iYWRnZS9saWNlbnNlLU1JVC1ncmVlbi5zdmcKLSAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0
aHViLmNvbS9iZW5qYW1pbnAvc2l4L2Jsb2IvbWFzdGVyL0xJQ0VOU0UKLSAgIDphbHQ6IE1JVCBM
aWNlbnNlIGJhZGdlCi0KLVNpeCBpcyBhIFB5dGhvbiAyIGFuZCAzIGNvbXBhdGliaWxpdHkgbGli
cmFyeS4gIEl0IHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zCi1mb3Igc21vb3RoaW5nIG92ZXIg
dGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIFB5dGhvbiB2ZXJzaW9ucyB3aXRoIHRoZSBnb2Fs
IG9mCi13cml0aW5nIFB5dGhvbiBjb2RlIHRoYXQgaXMgY29tcGF0aWJsZSBvbiBib3RoIFB5dGhv
biB2ZXJzaW9ucy4gIFNlZSB0aGUKLWRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24g
b24gd2hhdCBpcyBwcm92aWRlZC4KLQotU2l4IHN1cHBvcnRzIGV2ZXJ5IFB5dGhvbiB2ZXJzaW9u
IHNpbmNlIDIuNi4gIEl0IGlzIGNvbnRhaW5lZCBpbiBvbmx5IG9uZSBQeXRob24KLWZpbGUsIHNv
IGl0IGNhbiBiZSBlYXNpbHkgY29waWVkIGludG8geW91ciBwcm9qZWN0LiAoVGhlIGNvcHlyaWdo
dCBhbmQgbGljZW5zZQotbm90aWNlIG11c3QgYmUgcmV0YWluZWQuKQotCi1PbmxpbmUgZG9jdW1l
bnRhdGlvbiBpcyBhdCBodHRwczovL3NpeC5yZWFkdGhlZG9jcy5pby8uCi0KLUJ1Z3MgY2FuIGJl
IHJlcG9ydGVkIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9iZW5qYW1pbnAvc2l4LiAgVGhlIGNvZGUg
Y2FuIGFsc28KLWJlIGZvdW5kIHRoZXJlLgotCi1Gb3IgcXVlc3Rpb25zIGFib3V0IHNpeCBvciBw
b3J0aW5nIGluIGdlbmVyYWwsIGVtYWlsIHRoZSBweXRob24tcG9ydGluZyBtYWlsaW5nCi1saXN0
OiBodHRwczovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGhvbi1wb3J0aW5n
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVDT1JEIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVDT1JECmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNTc2NjVjOTk2NDI1NWQxNzAyZjAxNmM4YmQxMWRhZWRlNTE2NmVmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0x
LjEzLjAuZGlzdC1pbmZvL1JFQ09SRAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotc2l4
LTEuMTMuMC5kaXN0LWluZm8vSU5TVEFMTEVSLHNoYTI1Nj16dXV1ZTRrbm95Si1Vd1BQWGc4ZmV6
UzdWQ3JYSlFyQVA3emVOdXd2RlFnLDQNCi1zaXgtMS4xMy4wLmRpc3QtaW5mby9MSUNFTlNFLHNo
YTI1Nj10MUtiakFjWEduaW93Mnd5ZzVCVktPU0JLVVhaZDlFbDY1SnVqTXZ5UmJZLDEwNjYNCi1z
aXgtMS4xMy4wLmRpc3QtaW5mby9NRVRBREFUQSxzaGEyNTY9aHhTNHJTUFJmTzhld2JjTFMzMGFu
b0ZpNkxGZ1VRM21rX3hrblo4UlY0dywxOTQwDQotc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVDT1JE
LCwNCi1zaXgtMS4xMy4wLmRpc3QtaW5mby9XSEVFTCxzaGEyNTY9OFQ4ZnhlZnJfci1BNzlxYk9K
OWRfQWFFZ2twQ0dtRVBIYy1ncENxNUJSZywxMTANCi1zaXgtMS4xMy4wLmRpc3QtaW5mby90b3Bf
bGV2ZWwudHh0LHNoYTI1Nj1faVZIX2lZRXRFWG5EOG5ZR1FZcFlGVXZrVVc5c0VPMUdZYmtlS1NB
YWlzLDQNCi1zaXgucHksc2hhMjU2PW85V0hPOHV0V0dheU5oTnFEbU5xUGRRc1FhaXI1UmFSV2pM
XzhJWWYxcXcsMzMwNTENCi1zaXgucHljLCwNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4x
My4wLmRpc3QtaW5mby9XSEVFTCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1dIRUVM
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDAxMjM1NTMzM2UwNjY0ZmFjMzEyMzhh
YTA0MjE2ZmY1MzYyMjE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1dIRUVMCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi1XaGVlbC1WZXJzaW9uOiAxLjAKLUdlbmVyYXRvcjogYmRpc3Rfd2hl
ZWwgKDAuMzIuMSkKLVJvb3QtSXMtUHVyZWxpYjogdHJ1ZQotVGFnOiBweTItbm9uZS1hbnkKLVRh
ZzogcHkzLW5vbmUtYW55Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1p
bmZvL3RvcF9sZXZlbC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby90b3BfbGV2
ZWwudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmUyZmNlNDk4OTU1YjYyODAx
NDYxOGIyOGM2YmNmMTUyNDY2YTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zaXgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3Np
eC0xLjEzLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5k
aXN0LWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1
ZTFkMjJjYjg2MzBjY2QyMGMyMDNkNjM4OWE1YWU2MjUwMGFmOWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWlu
Zm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9JTlNUQUxMRVIKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgt
MS4xMy4wLmRpc3QtaW5mby9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8v
TUVUQURBVEEKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9SRUNPUkQKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Np
eC9zaXgtMS4xMy4wLmRpc3QtaW5mby9XSEVFTAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1p
bmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1p
bmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTUuMC5kaXN0LWluZm8vdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4MzBiMjdmN2U1YTliZjg0
NDJkYjY0ZDhmMDU4NDMzZjcyMzU3MjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTUuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgt
MS4xNS4wLmRpc3QtaW5mby9JTlNUQUxMRVIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xNS4wLmRpc3QtaW5m
by9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTUuMC5kaXN0LWluZm8vTUVUQURBVEEKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3NpeC9zaXgtMS4xNS4wLmRpc3QtaW5mby9SRUNPUkQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xNS4wLmRp
c3QtaW5mby9XSEVFTAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1pbmZvL3RvcF9sZXZlbC50
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9QS0ctSU5GTyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4
L3NpeC5lZ2ctaW5mby9QS0ctSU5GTwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q1
ZmY0YmI4ZTRmYTBhMWNhZjZkM2RmNTI4YWJjMjBiM2RmNWFlZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vUEtHLUlO
Rk8KKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1NZXRhZGF0YS1WZXJzaW9uOiAxLjEK
LU5hbWU6IHNpeAotVmVyc2lvbjogMS4xMS4wCi1TdW1tYXJ5OiBQeXRob24gMiBhbmQgMyBjb21w
YXRpYmlsaXR5IHV0aWxpdGllcwotSG9tZS1wYWdlOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5
cGkvc2l4LwotQXV0aG9yOiBCZW5qYW1pbiBQZXRlcnNvbgotQXV0aG9yLWVtYWlsOiBiZW5qYW1p
bkBweXRob24ub3JnCi1MaWNlbnNlOiBNSVQKLURlc2NyaXB0aW9uOiAuLiBpbWFnZTo6IGh0dHA6
Ly9pbWcuc2hpZWxkcy5pby9weXBpL3Yvc2l4LnN2ZwotICAgICAgICAgICA6dGFyZ2V0OiBodHRw
czovL3B5cGkucHl0aG9uLm9yZy9weXBpL3NpeAotICAgICAgICAKLSAgICAgICAgLi4gaW1hZ2U6
OiBodHRwczovL3RyYXZpcy1jaS5vcmcvYmVuamFtaW5wL3NpeC5zdmc/YnJhbmNoPW1hc3Rlcgot
ICAgICAgICAgICAgOnRhcmdldDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL2JlbmphbWlucC9zaXgK
LSAgICAgICAgCi0gICAgICAgIC4uIGltYWdlOjogaHR0cDovL2ltZy5zaGllbGRzLmlvL2JhZGdl
L2xpY2Vuc2UtTUlULWdyZWVuLnN2ZwotICAgICAgICAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1
Yi5jb20vYmVuamFtaW5wL3NpeC9ibG9iL21hc3Rlci9MSUNFTlNFCi0gICAgICAgIAotICAgICAg
ICBTaXggaXMgYSBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IGxpYnJhcnkuICBJdCBwcm92
aWRlcyB1dGlsaXR5IGZ1bmN0aW9ucwotICAgICAgICBmb3Igc21vb3RoaW5nIG92ZXIgdGhlIGRp
ZmZlcmVuY2VzIGJldHdlZW4gdGhlIFB5dGhvbiB2ZXJzaW9ucyB3aXRoIHRoZSBnb2FsIG9mCi0g
ICAgICAgIHdyaXRpbmcgUHl0aG9uIGNvZGUgdGhhdCBpcyBjb21wYXRpYmxlIG9uIGJvdGggUHl0
aG9uIHZlcnNpb25zLiAgU2VlIHRoZQotICAgICAgICBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGlu
Zm9ybWF0aW9uIG9uIHdoYXQgaXMgcHJvdmlkZWQuCi0gICAgICAgIAotICAgICAgICBTaXggc3Vw
cG9ydHMgZXZlcnkgUHl0aG9uIHZlcnNpb24gc2luY2UgMi42LiAgSXQgaXMgY29udGFpbmVkIGlu
IG9ubHkgb25lIFB5dGhvbgotICAgICAgICBmaWxlLCBzbyBpdCBjYW4gYmUgZWFzaWx5IGNvcGll
ZCBpbnRvIHlvdXIgcHJvamVjdC4gKFRoZSBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKLSAgICAgICAg
bm90aWNlIG11c3QgYmUgcmV0YWluZWQuKQotICAgICAgICAKLSAgICAgICAgT25saW5lIGRvY3Vt
ZW50YXRpb24gaXMgYXQgaHR0cDovL3NpeC5ydGZkLm9yZy4KLSAgICAgICAgCi0gICAgICAgIEJ1
Z3MgY2FuIGJlIHJlcG9ydGVkIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9iZW5qYW1pbnAvc2l4LiAg
VGhlIGNvZGUgY2FuIGFsc28KLSAgICAgICAgYmUgZm91bmQgdGhlcmUuCi0gICAgICAgIAotICAg
ICAgICBGb3IgcXVlc3Rpb25zIGFib3V0IHNpeCBvciBwb3J0aW5nIGluIGdlbmVyYWwsIGVtYWls
IHRoZSBweXRob24tcG9ydGluZyBtYWlsaW5nCi0gICAgICAgIGxpc3Q6IGh0dHBzOi8vbWFpbC5w
eXRob24ub3JnL21haWxtYW4vbGlzdGluZm8vcHl0aG9uLXBvcnRpbmcKLSAgICAgICAgCi1QbGF0
Zm9ybTogVU5LTk9XTgotQ2xhc3NpZmllcjogUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDIKLUNsYXNzaWZpZXI6IFByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzCi1D
bGFzc2lmaWVyOiBJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzCi1DbGFzc2lmaWVyOiBM
aWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZQotQ2xhc3NpZmllcjogVG9waWMg
OjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzCi1DbGFzc2lmaWVyOiBUb3BpYyA6
OiBVdGlsaXRpZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VSQ0VTLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VSQ0VTLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWE3ZjNkZWM2ZGYzMzRkODQyM2Q5MDNiMDQzOWExMDZkN2QyMmExNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgu
ZWdnLWluZm8vU09VUkNFUy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1DSEFO
R0VTCi1MSUNFTlNFCi1NQU5JRkVTVC5pbgotUkVBRE1FLnJzdAotc2V0dXAuY2ZnCi1zZXR1cC5w
eQotc2l4LnB5Ci10ZXN0X3NpeC5weQotZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQotZG9jdW1lbnRh
dGlvbi9jb25mLnB5Ci1kb2N1bWVudGF0aW9uL2luZGV4LnJzdAotc2l4LmVnZy1pbmZvL1BLRy1J
TkZPCi1zaXguZWdnLWluZm8vU09VUkNFUy50eHQKLXNpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xp
bmtzLnR4dAotc2l4LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vZGVwZW5kZW5jeV9saW5r
cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdi
ZGVkMDhiZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0CisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdG9wX2xl
dmVsLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmZmUyZmNlNDk4OTU1YjYyODAxNDYxOGIyOGM2YmNmMTUyNDY2
YTRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
c2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotc2l4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDExMzE5NTMxZjFlMWY3NDg3MmM0ODEyMTI5MzlkMzJkZjcyMTQxZDguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4
LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVn
Zy1pbmZvL1NPVVJDRVMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlu
a3MudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvc2l4L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZjIyY2EyZDZjMzRjMzVhMzM4YWUxN2EyNzEyNDIx
YTM1NWVjZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3NpeC9DSEFOR0VTCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvTElDRU5TRQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L01B
TklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9zaXgvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NldHVwLmNmZwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvdGVzdF9zaXgucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdG9vbHRvb2wucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3Rv
b2x0b29sLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvdG9vbHRvb2wvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjUxNjhkY2MyZjUzZWI1ZWNkYTI4MDMw
NzU2N2ZhYTAxYjI0MDQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvdG9vbHRvb2wvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3Rvb2x0b29sLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYmVuY29kaW5ncy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMmU4MmQyZDVkNDgw
OTUzNzI5YjI5ZWIzNjQxMmM0Mjg2YzE1NDRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3MvUEtH
LUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mv
c2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZhNjdjYTNjYzA4YTFiM2I0OWQ4M2YzYTY2ZTcwMzVh
ZjdmOTc3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93
ZWJlbmNvZGluZ3MuZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNv
ZGluZ3MuZWdnLWluZm8vU09VUkNFUy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGlu
Z3MuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJl
bmNvZGluZ3MuZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNv
ZGluZ3Mvd2ViZW5jb2RpbmdzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2Vi
ZW5jb2RpbmdzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
MmFiZGU1YjkwYzhkOGRlYmM4MTQ4ZjUwOTAzNTBlNDAyNWQ1NDY3Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29k
aW5ncy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
ZW5jb2RpbmdzL3dlYmVuY29kaW5ncy9sYWJlbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJl
bmNvZGluZ3MvbWtsYWJlbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MvdGVz
dHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MveF91c2VyX2RlZmluZWQucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8uYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzLy5hcHB2ZXlvci55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk1NGVlNGJlNzhmYmFmMTU1YmE3YmY0NTAz
Yzc3YTQ5YWM4OTA3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8uYXBwdmV5
b3IueW1sCkBAIC0wLDAgKzEsMjcgQEAKK2JyYW5jaGVzOgorICBvbmx5OgorICAgIC0gbWFzdGVy
CisKK3NraXBfYnJhbmNoX3dpdGhfcHI6IHRydWUKKworZW52aXJvbm1lbnQ6CisjIHdlYnNvY2tl
dHMgb25seSB3b3JrcyBvbiBQeXRob24gPj0gMy42LgorICBDSUJXX1NLSVA6IGNwMjctKiBjcDMz
LSogY3AzNC0qIGNwMzUtKgorICBDSUJXX1RFU1RfQ09NTUFORDogcHl0aG9uIC1XIGRlZmF1bHQg
LW0gdW5pdHRlc3QKKyAgV0VCU09DS0VUU19URVNUU19USU1FT1VUX0ZBQ1RPUjogMTAwCisKK2lu
c3RhbGw6CisjIEVuc3VyZSBweXRob24gaXMgUHl0aG9uIDMuCisgIC0gc2V0IFBBVEg9QzpcUHl0
aG9uMzc7JVBBVEglCisgIC0gY21kOiBweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIGNp
YnVpbGR3aGVlbAorIyBDcmVhdGUgZmlsZSAnLmNpYnVpbGR3aGVlbCcgc28gdGhhdCBleHRlbnNp
b24gYnVpbGQgaXMgbm90IG9wdGlvbmFsIChjLmYuIHNldHVwLnB5KS4KKyAgLSBjbWQ6IHRvdWNo
IC5jaWJ1aWxkd2hlZWwKKworYnVpbGRfc2NyaXB0OgorICAtIGNtZDogcHl0aG9uIC1tIGNpYnVp
bGR3aGVlbCAtLW91dHB1dC1kaXIgd2hlZWxob3VzZQorIyBVcGxvYWQgdG8gUHlQSSBvbiB0YWdz
CisgIC0gcHM6ID4tCisgICAgICBpZiAoJGVudjpBUFBWRVlPUl9SRVBPX1RBRyAtZXEgInRydWUi
KSB7CisgICAgICAgIEludm9rZS1FeHByZXNzaW9uICJweXRob24gLW0gcGlwIGluc3RhbGwgdHdp
bmUiCisgICAgICAgIEludm9rZS1FeHByZXNzaW9uICJweXRob24gLW0gdHdpbmUgdXBsb2FkIC0t
c2tpcC1leGlzdGluZyB3aGVlbGhvdXNlLyoud2hsIgorICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzLy5jaXJjbGVjaS9jb25maWcueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy5jaXJj
bGVjaS9jb25maWcueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NzdjMTYxYWQ0OTBmODIwZmJhNzJjZWFlMTQ1
N2U4ZDNjZGU3NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmNpcmNsZWNp
L2NvbmZpZy55bWwKQEAgLTAsMCArMSw1NSBAQAordmVyc2lvbjogMgorCitqb2JzOgorICBtYWlu
OgorICAgIGRvY2tlcjoKKyAgICAgIC0gaW1hZ2U6IGNpcmNsZWNpL3B5dGhvbjozLjcKKyAgICBz
dGVwczoKKyAgICAgICMgUmVtb3ZlIElQdjYgZW50cnkgZm9yIGxvY2FsaG9zdCBpbiBDaXJjbGUg
Q0kgY29udGFpbmVycyBiZWNhdXNlIGl0IGRvZXNuJ3Qgd29yayBhbnl3YXkuCisgICAgICAtIHJ1
bjogc3VkbyBjcCAvZXRjL2hvc3RzIC90bXA7IHN1ZG8gc2VkIC1pICcvOjoxL2QnIC90bXAvaG9z
dHM7IHN1ZG8gY3AgL3RtcC9ob3N0cyAvZXRjCisgICAgICAtIGNoZWNrb3V0CisgICAgICAtIHJ1
bjogc3VkbyBwaXAgaW5zdGFsbCB0b3ggY29kZWNvdgorICAgICAgLSBydW46IHRveCAtZSBjb3Zl
cmFnZSxibGFjayxmbGFrZTgsaXNvcnQsbXlweQorICAgICAgLSBydW46IGNvZGVjb3YKKyAgcHkz
NjoKKyAgICBkb2NrZXI6CisgICAgICAtIGltYWdlOiBjaXJjbGVjaS9weXRob246My42CisgICAg
c3RlcHM6CisgICAgICAjIFJlbW92ZSBJUHY2IGVudHJ5IGZvciBsb2NhbGhvc3QgaW4gQ2lyY2xl
IENJIGNvbnRhaW5lcnMgYmVjYXVzZSBpdCBkb2Vzbid0IHdvcmsgYW55d2F5LgorICAgICAgLSBy
dW46IHN1ZG8gY3AgL2V0Yy9ob3N0cyAvdG1wOyBzdWRvIHNlZCAtaSAnLzo6MS9kJyAvdG1wL2hv
c3RzOyBzdWRvIGNwIC90bXAvaG9zdHMgL2V0YworICAgICAgLSBjaGVja291dAorICAgICAgLSBy
dW46IHN1ZG8gcGlwIGluc3RhbGwgdG94CisgICAgICAtIHJ1bjogdG94IC1lIHB5MzYKKyAgcHkz
NzoKKyAgICBkb2NrZXI6CisgICAgICAtIGltYWdlOiBjaXJjbGVjaS9weXRob246My43CisgICAg
c3RlcHM6CisgICAgICAjIFJlbW92ZSBJUHY2IGVudHJ5IGZvciBsb2NhbGhvc3QgaW4gQ2lyY2xl
IENJIGNvbnRhaW5lcnMgYmVjYXVzZSBpdCBkb2Vzbid0IHdvcmsgYW55d2F5LgorICAgICAgLSBy
dW46IHN1ZG8gY3AgL2V0Yy9ob3N0cyAvdG1wOyBzdWRvIHNlZCAtaSAnLzo6MS9kJyAvdG1wL2hv
c3RzOyBzdWRvIGNwIC90bXAvaG9zdHMgL2V0YworICAgICAgLSBjaGVja291dAorICAgICAgLSBy
dW46IHN1ZG8gcGlwIGluc3RhbGwgdG94CisgICAgICAtIHJ1bjogdG94IC1lIHB5MzcKKyAgcHkz
ODoKKyAgICBkb2NrZXI6CisgICAgICAtIGltYWdlOiBjaXJjbGVjaS9weXRob246My44LjByYzEK
KyAgICBzdGVwczoKKyAgICAgICMgUmVtb3ZlIElQdjYgZW50cnkgZm9yIGxvY2FsaG9zdCBpbiBD
aXJjbGUgQ0kgY29udGFpbmVycyBiZWNhdXNlIGl0IGRvZXNuJ3Qgd29yayBhbnl3YXkuCisgICAg
ICAtIHJ1bjogc3VkbyBjcCAvZXRjL2hvc3RzIC90bXA7IHN1ZG8gc2VkIC1pICcvOjoxL2QnIC90
bXAvaG9zdHM7IHN1ZG8gY3AgL3RtcC9ob3N0cyAvZXRjCisgICAgICAtIGNoZWNrb3V0CisgICAg
ICAtIHJ1bjogc3VkbyBwaXAgaW5zdGFsbCB0b3gKKyAgICAgIC0gcnVuOiB0b3ggLWUgcHkzOAor
Cit3b3JrZmxvd3M6CisgIHZlcnNpb246IDIKKyAgYnVpbGQ6CisgICAgam9iczoKKyAgICAgIC0g
bWFpbgorICAgICAgLSBweTM2OgorICAgICAgICAgIHJlcXVpcmVzOgorICAgICAgICAgICAgLSBt
YWluCisgICAgICAtIHB5Mzc6CisgICAgICAgICAgcmVxdWlyZXM6CisgICAgICAgICAgICAtIG1h
aW4KKyAgICAgIC0gcHkzODoKKyAgICAgICAgICByZXF1aXJlczoKKyAgICAgICAgICAgIC0gbWFp
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy5naXRodWIvRlVORElORy55bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3dlYnNvY2tldHMvLmdpdGh1Yi9GVU5ESU5HLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWUyMjNiM2Q4OTIw
ODM2ZjQ4ZTI3ODNmZTZiM2ExNjQ4YmZmMzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzLy5naXRodWIvRlVORElORy55bWwKQEAgLTAsMCArMSBAQAordGlkZWxpZnQ6ICJweXBp
L3dlYnNvY2tldHMiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmdpdGlnbm9yZSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMGQxNjUyMGMwMjY1MTNmNjM0
OGJjODM1YmU5MjM4ZTcwZTg4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
LmdpdGlnbm9yZQpAQCAtMCwwICsxLDEyIEBACisqLnB5YworKi5zbworLmNvdmVyYWdlCisubXlw
eV9jYWNoZQorLnRveAorYnVpbGQvCitjb21wbGlhbmNlL3JlcG9ydHMvCitkaXN0LworZG9jcy9f
YnVpbGQvCitodG1sY292LworTUFOSUZFU1QKK3dlYnNvY2tldHMuZWdnLWluZm8vCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvLnJlYWR0aGVkb2NzLnltbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8u
cmVhZHRoZWRvY3MueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwOWFmZmFiNDU3YTllMGZkMDFlNWEzYWY1Zjk1
Mzg3YTllMTVhNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLnJlYWR0aGVk
b2NzLnltbApAQCAtMCwwICsxLDcgQEAKK2J1aWxkOgorICBpbWFnZTogbGF0ZXN0CisKK3B5dGhv
bjoKKyAgdmVyc2lvbjogMy43CisKK3JlcXVpcmVtZW50c19maWxlOiBkb2NzL3JlcXVpcmVtZW50
cy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8udHJhdmlzLnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzA2OTM3NTk3YTNmZDBkMWY0NDMyYjM3
MWJjZThkNjlmMjg4NTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy50cmF2
aXMueW1sCkBAIC0wLDAgKzEsMzYgQEAKK2VudjoKKyAgZ2xvYmFsOgorICAjIHdlYnNvY2tldHMg
b25seSB3b3JrcyBvbiBQeXRob24gPj0gMy42LgorICAgIC0gQ0lCV19TS0lQPSJjcDI3LSogY3Az
My0qIGNwMzQtKiBjcDM1LSoiCisgICAgLSBDSUJXX1RFU1RfQ09NTUFORD0icHl0aG9uMyAtVyBk
ZWZhdWx0IC1tIHVuaXR0ZXN0IgorICAgIC0gV0VCU09DS0VUU19URVNUU19USU1FT1VUX0ZBQ1RP
Uj0xMDAKKworbWF0cml4OgorICBpbmNsdWRlOgorICAgIC0gbGFuZ3VhZ2U6IHB5dGhvbgorICAg
ICAgZGlzdDogeGVuaWFsICAgICMgcmVxdWlyZWQgZm9yIFB5dGhvbiAzLjcgKHRyYXZpcy1jaS90
cmF2aXMtY2kjOTA2OSkKKyAgICAgIHN1ZG86IHJlcXVpcmVkCisgICAgICBweXRob246ICIzLjci
CisgICAgICBzZXJ2aWNlczoKKyAgICAgICAgLSBkb2NrZXIKKyAgICAtIG9zOiBvc3gKKyAgICAg
IG9zeF9pbWFnZTogeGNvZGU4LjMKKworaW5zdGFsbDoKKyMgUHl0aG9uIDMgaXMgbmVlZGVkIHRv
IHJ1biBjaWJ1aWxkd2hlZWwgZm9yIHdlYnNvY2tldHMuCisgIC0gaWYgWyAiJHtUUkFWSVNfT1Nf
TkFNRTotfSIgPT0gIm9zeCIgXTsgdGhlbgorICAgICAgYnJldyB1cGRhdGU7CisgICAgICBicmV3
IHVwZ3JhZGUgcHl0aG9uOworICAgIGZpCisjIEluc3RhbGwgY2lidWlsZHdoZWVsIHVzaW5nIHBp
cDMgdG8gbWFrZSBzdXJlIFB5dGhvbiAzIGlzIHVzZWQuCisgIC0gcGlwMyBpbnN0YWxsIC0tdXBn
cmFkZSBjaWJ1aWxkd2hlZWwKKyMgQ3JlYXRlIGZpbGUgJy5jaWJ1aWxkd2hlZWwnIHNvIHRoYXQg
ZXh0ZW5zaW9uIGJ1aWxkIGlzIG5vdCBvcHRpb25hbCAoYy5mLiBzZXR1cC5weSkuCisgIC0gdG91
Y2ggLmNpYnVpbGR3aGVlbAorCitzY3JpcHQ6CisgIC0gY2lidWlsZHdoZWVsIC0tb3V0cHV0LWRp
ciB3aGVlbGhvdXNlCisjIFVwbG9hZCB0byBQeVBJIG9uIHRhZ3MKKyAgLSBpZiBbICIke1RSQVZJ
U19UQUc6LX0iICE9ICIiIF07IHRoZW4KKyAgICAgIHBpcDMgaW5zdGFsbCB0d2luZTsKKyAgICAg
IHB5dGhvbjMgLW0gdHdpbmUgdXBsb2FkIC0tc2tpcC1leGlzdGluZyB3aGVlbGhvdXNlLyo7Cisg
ICAgZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9jb21wbGlhbmNlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2NvbXBsaWFuY2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NDUzYTUzMjcxZTRlNzg4ODBmNGMyZGYzNmU0MDI4Njlh
OWQ3MjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL2NvbXBsaWFuY2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29tcGxpYW5jZS9SRUFETUUu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2NvbXBsaWFuY2UvZnV6emluZ2NsaWVudC5qc29uCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL2NvbXBsaWFuY2UvZnV6emluZ3NlcnZlci5qc29uCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2NvbXBsaWFuY2UvdGVzdF9jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29tcGxpYW5j
ZS90ZXN0X3NlcnZlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvX3N0YXRp
Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL19zdGF0aWMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNDliMWQ2OWU1MjBhNTk1NGE0
ZTYwN2NhNmY1OWY1Y2NiMzVhYjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvX3N0YXRpYy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9k
b2NzL19zdGF0aWMvdGlkZWxpZnQucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvX3N0YXRpYy93
ZWJzb2NrZXRzLnN2ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjE3MDgzZmMyYWI4NzFjNDA4ZDBjODllYWFjZTlhYWM3NTQ2NzBk
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2RvY3MvYXBpLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL2NoYW5nZWxvZy5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvZG9jcy9jaGVhdHNoZWV0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2Nz
L2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9jb250cmlidXRpbmcucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2RvY3MvZGVwbG95bWVudC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9kZXNp
Z24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvZXh0ZW5zaW9ucy5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvZG9jcy9mYXEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvaW5kZXgucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL2RvY3MvaW50cm8ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvbGljZW5z
ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9saWZlY3ljbGUuZ3JhZmZsZQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy9kb2NzL2xpZmVjeWNsZS5zdmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9saW1pdGF0
aW9ucy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9wcm90b2NvbC5ncmFmZmxlCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2RvY3MvcHJvdG9jb2wuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvcmVxdWly
ZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL3NlY3VyaXR5LnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy9kb2NzL3NwZWxsaW5nX3dvcmRsaXN0LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2Nz
L3RpZGVsaWZ0LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvYmFzaWNf
YXV0aF9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9iYXNpY19hdXRoX2NsaWVu
dC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvZXhhbXBsZS9iYXNpY19hdXRoX3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9l
eGFtcGxlL2Jhc2ljX2F1dGhfc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2NsaWVudC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy9leGFtcGxlL2NsaWVudC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLmh0bWwKaW5kZXggZjc2ZjdiYjViNzAxNjc4
YjM2MmY3MzJkNzNkOTMyOWViMWRkYzRkNi4uNjMxMGM0YTE2ZDljNmEzMjQzNjJlOTU2NjlmODNi
OTljOWY1NzVlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvY291bnRlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2NvdW50ZXIuaHRtbApAQCAtMjIsNyAr
MjIsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgLmJ1dHRvbiB7CiAgICAgICAgICAg
ICAgICAgY3Vyc29yOiBwb2ludGVyOwotICAgICAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxl
Y3Q6IG5vbmU7CisgICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAubWludXMgewogICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL2V4YW1wbGUvY291bnRlci5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9lY2hvLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL2V4YW1wbGUvZWNoby5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9oZWFsdGhfY2hlY2tfc2VydmVyLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvaGVhbHRoX2NoZWNrX3NlcnZlci5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhh
bXBsZS9oZWxsby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2hlbGxvLnB5Cm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFt
cGxlL3NlY3VyZV9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9zZWN1cmVfY2xp
ZW50LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy9leGFtcGxlL3NlY3VyZV9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhh
bXBsZS9zZWN1cmVfc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3NlcnZlci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29j
a2V0cy9leGFtcGxlL3NlcnZlci5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9zaG93X3RpbWUucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvZXhhbXBsZS9zaG93X3RpbWUucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2h1dGRvd24ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvZXhhbXBsZS9zaHV0ZG93bi5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1v
ZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS91bml4X2NsaWVu
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3VuaXhfY2xpZW50LnB5Cm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxl
L3VuaXhfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvdW5peF9zZXJ2ZXIucHkK
b2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI3ZWJhYmRhY2QxYzFm
YjRmZDZjZGFiZmNlYjY1YjQ2OWU1MjBiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLXVzZXItc2VsZWN0Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvZXhhbXBsZS9iYXNpY19hdXRoX2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFt
cGxlL2Jhc2ljX2F1dGhfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvY2xpZW50
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvY291bnRlci5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2V4YW1wbGUvY291bnRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2VjaG8ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9oZWFsdGhfY2hlY2tfc2VydmVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2V4YW1wbGUvaGVsbG8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9sb2Nh
bGhvc3QucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2VjdXJlX2NsaWVudC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy9leGFtcGxlL3NlY3VyZV9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
ZXhhbXBsZS9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9zaG93X3RpbWUuaHRt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3Nob3dfdGltZS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9leGFtcGxlL3NodXRkb3duLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvdW5peF9jbGll
bnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS91bml4X3NlcnZlci5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL2xvZ28vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
bG9nby93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI2NzEw
OTY0ODVlM2IzNjhmMWNjODdhMmI2YzQwNGUyMmRiNDcxMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvbG9nby93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29j
a2V0cy9sb2dvL2hvcml6b250YWwuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2xvZ28vaWNvbi5zdmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvbG9nby9vbGQuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2xvZ28vdGlk
ZWxpZnQucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2xvZ28vdmVydGljYWwuc3ZnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvcGVyZm9ybWFuY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvcGVyZm9ybWFuY2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg0YzIwZTM5YjJjNDFlMDA3OTMwZmUxMGQ5MzI0YjdlMGIyYjU3NzEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Bl
cmZvcm1hbmNlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3BlcmZvcm1hbmNlL21lbV9jbGllbnQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3dlYnNvY2tldHMvcGVyZm9ybWFuY2UvbWVtX3NlcnZlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL2V4dGVuc2lvbnMvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQppbmRleCBhNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4
YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dl
YnNvY2tldHMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3Jj
L3dlYnNvY2tldHMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3Ig
bW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZXh0ZW5zaW9ucy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9leHRlbnNpb25zL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWQ2ZjgwMTg4ZTg3MDY2ZjQ1NTg5M2MyNjdiOTJi
Y2UwNGE2ODgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9leHRlbnNpb25zL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRz
L3NyYy93ZWJzb2NrZXRzL2V4dGVuc2lvbnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
c3JjL3dlYnNvY2tldHMvZXh0ZW5zaW9ucy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93
ZWJzb2NrZXRzL2V4dGVuc2lvbnMvcGVybWVzc2FnZV9kZWZsYXRlLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvc3JjL3dlYnNvY2tldHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQwM2ZkMzhmM2U0NDMyYTA4M2Q2OTliNTVlYTE2Njc4OWFkMzY4MzYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRz
L3NyYy93ZWJzb2NrZXRzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL19fbWFpbl9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL3NyYy93ZWJzb2NrZXRzL2F1dGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNv
Y2tldHMvY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL2V4Y2VwdGlv
bnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZnJhbWluZy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9oYW5kc2hha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
c3JjL3dlYnNvY2tldHMvaGVhZGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0
cy9odHRwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL3Byb3RvY29sLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL3B5LnR5cGVkCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRz
L3NyYy93ZWJzb2NrZXRzL3NlcnZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0
cy9zcGVlZHVwcy5jCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL3NwZWVkdXBzLnB5
aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy90eXBpbmcucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvc3JjL3dlYnNvY2tldHMvdXJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2Nr
ZXRzL3V0aWxzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL3ZlcnNpb24ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy9leHRlbnNpb25zL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL2V4dGVuc2lvbnMvX19pbml0X18ucHkKaW5kZXggYTY4
MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRi
OGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3Rz
L2V4dGVuc2lvbnMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL2V4dGVu
c2lvbnMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL2V4
dGVuc2lvbnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9u
cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ1MTYyNWNl
Y2YwNjY2YzI1ZTM0MmQ5Y2FkOWI4Y2Q4MjUyNjY3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy90ZXN0cy9leHRlbnNpb25zL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL3Rlc3RzL2V4dGVuc2lvbnMvdGVzdF9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3Rz
L2V4dGVuc2lvbnMvdGVzdF9wZXJtZXNzYWdlX2RlZmxhdGUucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGI0MWIzZjNmMzdj
MTQ4MTA3NDE4Y2QwMzk5MWUwMzQ4NjkyYmUzMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
dGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdGVzdF9hdXRoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfY2xpZW50X3NlcnZlci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29j
a2V0cy90ZXN0cy90ZXN0X2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdGVz
dF9leHBvcnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfZnJhbWluZy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy90ZXN0cy90ZXN0X2hhbmRzaGFrZS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy90
ZXN0cy90ZXN0X2hlYWRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdGVzdF9odHRwLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfbG9jYWxob3N0LmNuZgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29j
a2V0cy90ZXN0cy90ZXN0X2xvY2FsaG9zdC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdGVz
dF9wcm90b2NvbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy90ZXN0X3VyaS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy90ZXN0cy90ZXN0X3V0aWxzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3V0
aWxzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3dlYnNvY2tldHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM1M2ZkZTE5MmEwODQ1NjA1ZWRmNDhhZDg1YjIxMDI0YWRjZDA5M2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL0NPREVfT0ZfQ09ORFVDVC5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9MSUNFTlNFCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL01ha2VmaWxlCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc2V0dXAuY2ZnCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS93ZWJzb2NrZXRzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3RveC5pbmkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC8uZmxha2U4IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy5mbGFrZTgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkw
YzEwOWZkYmVmMjU4MWQyMjMxMjViZDIxYjY2M2NiMzU0YzJkMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvemlwcC8uZmxha2U4CkBAIC0wLDAgKzEsOSBAQAorW2ZsYWtlOF0KK21heC1saW5lLWxl
bmd0aCA9IDg4CitpZ25vcmUgPQorCSMgVzUwMyB2aW9sYXRlcyBzcGVjIGh0dHBzOi8vZ2l0aHVi
LmNvbS9QeUNRQS9weWNvZGVzdHlsZS9pc3N1ZXMvNTEzCisJVzUwMworCSMgVzUwNCBoYXMgaXNz
dWVzIGh0dHBzOi8vZ2l0aHViLmNvbS9PQ0EvbWFpbnRhaW5lci1xdWFsaXR5LXRvb2xzL2lzc3Vl
cy81NDUKKwlXNTA0CisJIyBCbGFjayBjcmVhdGVzIHdoaXRlc3BhY2UgYmVmb3JlIGNvbG9uCisJ
RTIwMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy5wcmUtY29tbWl0LWNvbmZpZy55YW1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwLy5wcmUtY29tbWl0LWNvbmZpZy55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMmQ5NDI0N2EwZDc2
MzljYmUxMzc0MzVjZDlkZWU4NGVmMGFiOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAv
LnByZS1jb21taXQtY29uZmlnLnlhbWwKQEAgLTAsMCArMSw1IEBACityZXBvczoKKy0gcmVwbzog
aHR0cHM6Ly9naXRodWIuY29tL2FtYnYvYmxhY2sKKyAgcmV2OiAxOC45YjAKKyAgaG9va3M6Cisg
IC0gaWQ6IGJsYWNrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvLnJlYWR0aGVkb2NzLnltbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvemlwcC8ucmVhZHRoZWRvY3MueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZTQ0Njg0MjhiZWRmNzQ0MWM0
YjQzOTI4NDI1MDU1YTQ0NTMxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvLnJlYWR0
aGVkb2NzLnltbApAQCAtMCwwICsxLDUgQEAKK3B5dGhvbjoKKyAgdmVyc2lvbjogMworICBleHRy
YV9yZXF1aXJlbWVudHM6CisgICAgLSBkb2NzCisgIHBpcF9pbnN0YWxsOiB0cnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3ppcHAvLnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvLnRyYXZpcy55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjdkOGYzYWM5ZDZmYjE1MWE2M2E0ZWU3NDk4NGRkNzU1NTY0YmM1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvemlwcC8udHJhdmlzLnltbApAQCAtMCwwICsxLDI4IEBACitkaXN0OiB4
ZW5pYWwKK2xhbmd1YWdlOiBweXRob24KKworcHl0aG9uOgorLSAyLjcKKy0gMy42CistICZsYXRl
c3RfcHkzIDMuOAorCitqb2JzOgorICBmYXN0X2ZpbmlzaDogdHJ1ZQorICBpbmNsdWRlOgorICAt
IHN0YWdlOiBkZXBsb3kKKyAgICBpZjogdGFnIElTIHByZXNlbnQKKyAgICBweXRob246ICpsYXRl
c3RfcHkzCisgICAgYmVmb3JlX3NjcmlwdDogc2tpcAorICAgIHNjcmlwdDogdG94IC1lIHJlbGVh
c2UKKworY2FjaGU6IHBpcAorCitpbnN0YWxsOgorLSBwaXAgaW5zdGFsbCB0b3ggdG94LXZlbnYK
KworYmVmb3JlX3NjcmlwdDoKKyAgIyBEaXNhYmxlIElQdjYuIFJlZiB0cmF2aXMtY2kvdHJhdmlz
LWNpIzgzNjEKKyAgLSBpZiBbICIke1RSQVZJU19PU19OQU1FfSIgPT0gImxpbnV4IiBdOyB0aGVu
CisgICAgICBzdWRvIHNoIC1jICdlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjYvY29uZi9hbGwv
ZGlzYWJsZV9pcHY2JzsKKyAgICBmaQorc2NyaXB0OiB0b3gKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjYjY5YzJiOGUwMWUwNmJhYWFhMzA4MmFiMWEx
YTc3OTliZGY3MTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3Mv
aGlzdG9yeS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy9pbmRleC5yc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
emlwcC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTlhNGY4ZDFjODZjNTQwZDFjZTVhNTdkYmI5ZTRjNjExMDhi
YzIzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3ppcHAvQ0hBTkdFUy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvTElDRU5TRQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvemlwcC9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2FwcHZleW9yLnlt
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9weXByb2plY3QudG9tbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvemlwcC9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvc2tlbGV0
b24ubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3ppcHAvdGVzdF96aXBwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3RveC5pbmkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3ppcHAvemlwcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFhZjQzNzA5ZTQwMjI0NGRiYTc4ZGIwMmY4MmIzNGYx
MWE4NzZjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvemlwcC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL1BLRy1JTkZPCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vU09VUkNFUy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ct
aW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3JlcXVp
cmVzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDll
MDgyZWY0YzE2ZjI0N2RlODVkZDc3MDE2NGZmNGFmNjJkYmQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
OCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL01FVEEueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2ZsYWtlOC5pbmkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xvY2FscGF0aHMucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL215cHkuaW5pCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXRlc3Qu
aW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
ZXF1aXJlbWVudHNfZmxha2U4LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX215cHkudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVx
dWlyZW1lbnRzX3Rlc3RzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvLmdpdGlnbm9yZQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZjBhYWU5ZTEzZTc2OTJlMGIxYjM3YTA3NmI0OTU0ODY3NjYyMTM2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlLy5naXRpZ25vcmUKQEAgLTAsMCArMSwzIEBACishd3d3L2xpYgorIWV4cG9y
dC9saWIKKyFleHBvcnQvY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvX19pbml0X18ucHkKaW5k
ZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQx
ZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL19faW5pdF9fLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9f
X2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvY29uZmlnLmRlZmF1bHQuanNvbiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9jb25maWcuZGVmYXVs
dC5qc29uCmluZGV4IDhhMDViOTEwNjBhNWFlYjI5YzRjMGI5ZGY5ZjZhM2QzOGUxN2FlMzMuLjVi
Njk2OTI5YmIwZjQ1YWYwM2UxNTkyMDViNGUyOTc0MTVmN2JmNjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9jb25maWcu
ZGVmYXVsdC5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9jb25maWcuZGVmYXVsdC5qc29uCkBAIC0zNyw5ICszNywxMyBAQAog
ICAgICAgImF1dG9tYXRpYyI6IDYwMDAwLAogICAgICAgIm1hbnVhbCI6IDMwMDAwMAogICAgIH0s
Ci0gICAgImVuYWJsZV9yZXN1bHRzX2ltcG9ydCI6IGZhbHNlLAorICAgICJlbmFibGVfaW1wb3J0
X3Jlc3VsdHMiOiBmYWxzZSwKICAgICAid2ViX3Jvb3QiOiAiL193YXZlIiwKICAgICAicGVyc2lz
dGluZ19pbnRlcnZhbCI6IDIwLAotICAgICJhcGlfdGl0bGVzIjogW10KKyAgICAiYXBpX3RpdGxl
cyI6IFtdLAorICAgICJlbmFibGVfcmVhZF9zZXNzaW9ucyI6IGZhbHNlLAorICAgICJldmVudF9j
YWNoZV9kdXJhdGlvbiI6IDYwMDAwLAorICAgICJlbmFibGVfdGVzdF90eXBlX3NlbGVjdGlvbiI6
IGZhbHNlLAorICAgICJlbmFibGVfdGVzdF9maWxlX3NlbGVjdGlvbiI6IGZhbHNlCiAgIH0KIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9jb25maWd1cmF0aW9uX2xvYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9jb25maWd1cmF0aW9uX2xvYWRlci5w
eQppbmRleCA4MTliNDE0Y2ZhYWM0ODdhZGQ1NzkxM2EwODM1YTAyMzVmMGFhNGEwLi5lOGUwZDc0
NDhlYTdhNTI0OWI4YTY4Y2Y2OWNlYmMyNTdlMjMzOWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvY29uZmlndXJhdGlv
bl9sb2FkZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2NvbmZpZ3VyYXRpb25fbG9hZGVyLnB5CkBAIC0xLDUgKzEsNiBAQAog
aW1wb3J0IGpzb24KIGltcG9ydCBvcworZnJvbSBpbyBpbXBvcnQgb3BlbgogCiBmcm9tIHRvb2xz
LndwdCBpbXBvcnQgd3B0CiAKQEAgLTQ2LDE1ICs0NywyNCBAQCBkZWYgbG9hZChjb25maWd1cmF0
aW9uX2ZpbGVfcGF0aCk6CiAgICAgY29uZmlndXJhdGlvblsiaG9zdG5hbWUiXSA9IGNvbmZpZ3Vy
YXRpb24uZ2V0KAogICAgICAgICAiYnJvd3Nlcl9ob3N0IiwgZGVmYXVsdF9jb25maWd1cmF0aW9u
WyJicm93c2VyX2hvc3QiXSkKIAotICAgIGNvbmZpZ3VyYXRpb25bImltcG9ydF9lbmFibGVkIl0g
PSBjb25maWd1cmF0aW9uLmdldCgKKyAgICBjb25maWd1cmF0aW9uWyJpbXBvcnRfcmVzdWx0c19l
bmFibGVkIl0gPSBjb25maWd1cmF0aW9uLmdldCgKICAgICAgICAgIndhdmUiLCBkZWZhdWx0X2Nv
bmZpZ3VyYXRpb25bIndhdmUiXSkuZ2V0KAotICAgICAgICAiZW5hYmxlX3Jlc3VsdHNfaW1wb3J0
IiwKLSAgICAgICAgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl1bImVuYWJsZV9yZXN1bHRz
X2ltcG9ydCJdKQorICAgICAgICAiZW5hYmxlX2ltcG9ydF9yZXN1bHRzIiwKKyAgICAgICAgZGVm
YXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl1bImVuYWJsZV9pbXBvcnRfcmVzdWx0cyJdKQorCisg
ICAgY29uZmlndXJhdGlvblsicmVhZF9zZXNzaW9uc19lbmFibGVkIl0gPSBjb25maWd1cmF0aW9u
LmdldCgKKyAgICAgICAgIndhdmUiLCBkZWZhdWx0X2NvbmZpZ3VyYXRpb25bIndhdmUiXSkuZ2V0
KAorICAgICAgICAiZW5hYmxlX3JlYWRfc2Vzc2lvbnMiLAorICAgICAgICBkZWZhdWx0X2NvbmZp
Z3VyYXRpb25bIndhdmUiXVsiZW5hYmxlX3JlYWRfc2Vzc2lvbnMiXSkKIAogICAgIGNvbmZpZ3Vy
YXRpb25bInBlcnNpc3RpbmdfaW50ZXJ2YWwiXSA9IGNvbmZpZ3VyYXRpb24uZ2V0KAogICAgICAg
ICAid2F2ZSIsIGRlZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdKS5nZXQoCiAgICAgICAgICJw
ZXJzaXN0aW5nX2ludGVydmFsIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl1bInBlcnNp
c3RpbmdfaW50ZXJ2YWwiXSkKIAorICAgIGNvbmZpZ3VyYXRpb25bImV2ZW50X2NhY2hlX2R1cmF0
aW9uIl0gPSBjb25maWd1cmF0aW9uLmdldCgKKyAgICAgICAgIndhdmUiLCBkZWZhdWx0X2NvbmZp
Z3VyYXRpb25bIndhdmUiXSkuZ2V0KAorICAgICAgICAiZXZlbnRfY2FjaGVfZHVyYXRpb24iLCBk
ZWZhdWx0X2NvbmZpZ3VyYXRpb25bIndhdmUiXVsiZXZlbnRfY2FjaGVfZHVyYXRpb24iXSkKKwog
ICAgIGNvbmZpZ3VyYXRpb25bInRlc3RzX2RpcmVjdG9yeV9wYXRoIl0gPSBvcy5nZXRjd2QoKQog
CiAgICAgY29uZmlndXJhdGlvblsibWFuaWZlc3RfZmlsZV9wYXRoIl0gPSBvcy5wYXRoLmpvaW4o
CkBAIC02NCw2ICs3NCwxNCBAQCBkZWYgbG9hZChjb25maWd1cmF0aW9uX2ZpbGVfcGF0aCk6CiAg
ICAgICAgICJ3YXZlIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl0pLmdldCgKICAgICAg
ICAgImFwaV90aXRsZXMiLCBkZWZhdWx0X2NvbmZpZ3VyYXRpb25bIndhdmUiXVsiYXBpX3RpdGxl
cyJdKQogCisgICAgY29uZmlndXJhdGlvblsiZW5hYmxlX3Rlc3RfdHlwZV9zZWxlY3Rpb24iXSA9
IGNvbmZpZ3VyYXRpb24uZ2V0KAorICAgICAgICAid2F2ZSIsIGRlZmF1bHRfY29uZmlndXJhdGlv
blsid2F2ZSJdKS5nZXQoCisgICAgICAgICJlbmFibGVfdGVzdF90eXBlX3NlbGVjdGlvbiIsIGRl
ZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdWyJlbmFibGVfdGVzdF90eXBlX3NlbGVjdGlvbiJd
KQorCisgICAgY29uZmlndXJhdGlvblsiZW5hYmxlX3Rlc3RfZmlsZV9zZWxlY3Rpb24iXSA9IGNv
bmZpZ3VyYXRpb24uZ2V0KAorICAgICAgICAid2F2ZSIsIGRlZmF1bHRfY29uZmlndXJhdGlvblsi
d2F2ZSJdKS5nZXQoCisgICAgICAgICJlbmFibGVfdGVzdF9maWxlX3NlbGVjdGlvbiIsIGRlZmF1
bHRfY29uZmlndXJhdGlvblsid2F2ZSJdWyJlbmFibGVfdGVzdF9maWxlX3NlbGVjdGlvbiJdKQor
CiAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9fX2luaXRfXy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kYXRhL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZm
MmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9kYXRhL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAK
LSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0
b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9k
YXRhL2RldmljZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kYXRhL2RldmljZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjJjY2RmNDA3NWI5Y2Ey
NTg1N2U3NmFiMDE2YWJiYTllYWNlZjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZGV2aWNlLnB5
CkBAIC0wLDAgKzEsNiBAQAorY2xhc3MgRGV2aWNlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHRva2VuLCB1c2VyX2FnZW50LCBuYW1lLCBsYXN0X2FjdGl2ZSk6CisgICAgICAgIHNl
bGYudG9rZW4gPSB0b2tlbgorICAgICAgICBzZWxmLnVzZXJfYWdlbnQgPSB1c2VyX2FnZW50Cisg
ICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5sYXN0X2FjdGl2ZSA9IGxhc3Rf
YWN0aXZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9ldmVudF9saXN0ZW5lci5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V2ZW50X2xpc3Rl
bmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI2OTVkZjgzY2JhYjU5YWY0NjFmZWQyNTcxZWEyOTc2ZmYzZGQ1
ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9ldmVudF9saXN0ZW5lci5weQpAQCAtMCwwICsxLDgg
QEAKK2NsYXNzIEV2ZW50TGlzdGVuZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
ZGlzcGF0Y2hlcl90b2tlbik6CisgICAgICAgIHN1cGVyKEV2ZW50TGlzdGVuZXIsIHNlbGYpLl9f
aW5pdF9fKCkKKyAgICAgICAgc2VsZi5kaXNwYXRjaGVyX3Rva2VuID0gZGlzcGF0Y2hlcl90b2tl
bgorICAgICAgICBzZWxmLnRva2VuID0gTm9uZQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxm
LCBtZXNzYWdlKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDbGllbnQuc2VuZF9tZXNzYWdl
KG1lc3NhZ2UpIG5vdCBpbXBsZW1lbnRlZCEiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9kYXRhL2V4Y2VwdGlvbnMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1
NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1
YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy9fX2luaXRfXy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
ZGF0YS9leGNlcHRpb25zL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVz
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V4Y2VwdGlvbnMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZGF0YS9leGNlcHRpb25zL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNGY5YzA2MDE4NTk4NDQ0NzgxMGNlNThjYjdkODkxM2ZiZjll
N2RkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V4
Y2VwdGlvbnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZGF0YS9leGNlcHRpb25zL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy9kdXBsaWNh
dGVfZXhjZXB0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy9pbnZhbGlkX2RhdGFfZXhjZXB0aW9uLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RhdGEvZXhjZXB0aW9ucy9ub3RfZm91bmRfZXhjZXB0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy9w
ZXJtaXNzaW9uX2RlbmllZF9leGNlcHRpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2h0dHBfcG9sbGlu
Z19ldmVudF9saXN0ZW5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2h0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZjczMWQ0ODU2YzRmOWI3NjBlNjgwMzQ3M2EzMzEzMzhkMGEyMTg0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2RhdGEvaHR0cF9wb2xsaW5nX2V2ZW50X2xpc3RlbmVyLnB5CkBAIC0wLDAg
KzEsMTEgQEAKK2Zyb20gLmV2ZW50X2xpc3RlbmVyIGltcG9ydCBFdmVudExpc3RlbmVyCisKK2Ns
YXNzIEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZGlzcGF0Y2hlcl90b2tlbiwgZXZlbnQpOgorICAgICAgICBzdXBlcihIdHRw
UG9sbGluZ0V2ZW50TGlzdGVuZXIsIHNlbGYpLl9faW5pdF9fKGRpc3BhdGNoZXJfdG9rZW4pCisg
ICAgICAgIHNlbGYuZXZlbnQgPSBldmVudAorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBOb25lCisK
KyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLm1lc3Nh
Z2UgPSBtZXNzYWdlCisgICAgICAgIHNlbGYuZXZlbnQuc2V0KCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL3Nl
c3Npb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZGF0YS9zZXNzaW9uLnB5CmluZGV4IGE0NDc3ZjY2ZGVjYzQyYjNiODgxNzU3Yzky
ZmI1NmQ3NDc2MTVhZGYuLjhiNWM0YTZiMzhkZTY2ZmVlYmZiNDM3ZGQwMDYxNWM5MDM2ZDZkNjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9kYXRhL3Nlc3Npb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvc2Vzc2lvbi5weQpAQCAtMTIsNyAr
MTIsNyBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKAogICAgICAg
ICAgICAgc2VsZiwKICAgICAgICAgICAgIHRva2VuPU5vbmUsCi0gICAgICAgICAgICB0eXBlcz1O
b25lLAorICAgICAgICAgICAgdGVzdF90eXBlcz1Ob25lLAogICAgICAgICAgICAgdXNlcl9hZ2Vu
dD1Ob25lLAogICAgICAgICAgICAgbGFiZWxzPU5vbmUsCiAgICAgICAgICAgICB0ZXN0cz1Ob25l
LApAQCAtMjMsMzUgKzIzLDMwIEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgICAg
IHRlc3Rfc3RhdGU9Tm9uZSwKICAgICAgICAgICAgIGxhc3RfY29tcGxldGVkX3Rlc3Q9Tm9uZSwK
ICAgICAgICAgICAgIHJlY2VudF9jb21wbGV0ZWRfY291bnQ9Tm9uZSwKKyAgICAgICAgICAgIGRh
dGVfY3JlYXRlZD1Ob25lLAogICAgICAgICAgICAgZGF0ZV9zdGFydGVkPU5vbmUsCiAgICAgICAg
ICAgICBkYXRlX2ZpbmlzaGVkPU5vbmUsCiAgICAgICAgICAgICBpc19wdWJsaWM9Tm9uZSwKICAg
ICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnM9Tm9uZSwKICAgICAgICAgICAgIGJyb3dzZXI9Tm9u
ZSwKLSAgICAgICAgICAgIHdlYmhvb2tfdXJscz1Ob25lLAogICAgICAgICAgICAgZXhwaXJhdGlv
bl9kYXRlPU5vbmUsCisgICAgICAgICAgICB0eXBlPU5vbmUsCiAgICAgICAgICAgICBtYWxmdW5j
dGlvbmluZ190ZXN0cz1Ob25lCiAgICAgKToKICAgICAgICAgaWYgdG9rZW4gaXMgTm9uZToKICAg
ICAgICAgICAgIHRva2VuID0gIiIKICAgICAgICAgc2VsZi50b2tlbiA9IHRva2VuCi0gICAgICAg
IGlmIHR5cGVzIGlzIE5vbmU6Ci0gICAgICAgICAgICB0eXBlcyA9IFtBVVRPTUFUSUMsIE1BTlVB
TF0KLSAgICAgICAgc2VsZi50eXBlcyA9IHR5cGVzCisgICAgICAgIGlmIHRlc3RfdHlwZXMgaXMg
Tm9uZToKKyAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBbQVVUT01BVElDLCBNQU5VQUxdCisgICAg
ICAgIHNlbGYudGVzdF90eXBlcyA9IHRlc3RfdHlwZXMKICAgICAgICAgaWYgdXNlcl9hZ2VudCBp
cyBOb25lOgogICAgICAgICAgICAgdXNlcl9hZ2VudCA9ICIiCiAgICAgICAgIHNlbGYudXNlcl9h
Z2VudCA9IHVzZXJfYWdlbnQKICAgICAgICAgaWYgbGFiZWxzIGlzIE5vbmU6CiAgICAgICAgICAg
ICBsYWJlbHMgPSBbXQogICAgICAgICBzZWxmLmxhYmVscyA9IGxhYmVscwotICAgICAgICBpZiB0
ZXN0cyBpcyBOb25lOgotICAgICAgICAgICAgdGVzdHMgPSB7fQogICAgICAgICBzZWxmLnRlc3Rz
ID0gdGVzdHMKLSAgICAgICAgaWYgcGVuZGluZ190ZXN0cyBpcyBOb25lOgotICAgICAgICAgICAg
cGVuZGluZ190ZXN0cyA9IHt9CiAgICAgICAgIHNlbGYucGVuZGluZ190ZXN0cyA9IHBlbmRpbmdf
dGVzdHMKLSAgICAgICAgaWYgcnVubmluZ190ZXN0cyBpcyBOb25lOgotICAgICAgICAgICAgcnVu
bmluZ190ZXN0cyA9IHt9CiAgICAgICAgIHNlbGYucnVubmluZ190ZXN0cyA9IHJ1bm5pbmdfdGVz
dHMKICAgICAgICAgaWYgdGltZW91dHMgaXMgTm9uZToKICAgICAgICAgICAgIHRpbWVvdXRzID0g
e30KQEAgLTU5LDEzICs1NCwxMiBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIGlm
IHN0YXR1cyBpcyBOb25lOgogICAgICAgICAgICAgc3RhdHVzID0gVU5LTk9XTgogICAgICAgICBz
ZWxmLnN0YXR1cyA9IHN0YXR1cwotICAgICAgICBpZiB0ZXN0X3N0YXRlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICB0ZXN0X3N0YXRlID0ge30KICAgICAgICAgc2VsZi50ZXN0X3N0YXRlID0gdGVzdF9z
dGF0ZQogICAgICAgICBzZWxmLmxhc3RfY29tcGxldGVkX3Rlc3QgPSBsYXN0X2NvbXBsZXRlZF90
ZXN0CiAgICAgICAgIGlmIHJlY2VudF9jb21wbGV0ZWRfY291bnQgaXMgTm9uZToKICAgICAgICAg
ICAgIHJlY2VudF9jb21wbGV0ZWRfY291bnQgPSAwCiAgICAgICAgIHNlbGYucmVjZW50X2NvbXBs
ZXRlZF9jb3VudCA9IHJlY2VudF9jb21wbGV0ZWRfY291bnQKKyAgICAgICAgc2VsZi5kYXRlX2Ny
ZWF0ZWQgPSBkYXRlX2NyZWF0ZWQKICAgICAgICAgc2VsZi5kYXRlX3N0YXJ0ZWQgPSBkYXRlX3N0
YXJ0ZWQKICAgICAgICAgc2VsZi5kYXRlX2ZpbmlzaGVkID0gZGF0ZV9maW5pc2hlZAogICAgICAg
ICBpZiBpc19wdWJsaWMgaXMgTm9uZToKQEAgLTc1LDEwICs2OSw4IEBAIGNsYXNzIFNlc3Npb24o
b2JqZWN0KToKICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnMgPSBbXQogICAgICAgICBzZWxm
LnJlZmVyZW5jZV90b2tlbnMgPSByZWZlcmVuY2VfdG9rZW5zCiAgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IGJyb3dzZXIKLSAgICAgICAgaWYgd2ViaG9va191cmxzIGlzIE5vbmU6Ci0gICAgICAgICAg
ICB3ZWJob29rX3VybHMgPSBbXQotICAgICAgICBzZWxmLndlYmhvb2tfdXJscyA9IHdlYmhvb2tf
dXJscwogICAgICAgICBzZWxmLmV4cGlyYXRpb25fZGF0ZSA9IGV4cGlyYXRpb25fZGF0ZQorICAg
ICAgICBzZWxmLnR5cGUgPSB0eXBlCiAgICAgICAgIGlmIG1hbGZ1bmN0aW9uaW5nX3Rlc3RzIGlz
IE5vbmU6CiAgICAgICAgICAgICBtYWxmdW5jdGlvbmluZ190ZXN0cyA9IFtdCiAgICAgICAgIHNl
bGYubWFsZnVuY3Rpb25pbmdfdGVzdHMgPSBtYWxmdW5jdGlvbmluZ190ZXN0cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjQzYmI0YmQ5MmNmYWE5NzU4NWU1NmQ1YjVlNjUzZjE3MGViYmIyMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RhdGEvY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvaHR0cF9wb2xsaW5nX2NsaWVudC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL3Nl
c3Npb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL1JFQURNRS5tZAppbmRleCA2
Y2Y3ZDM5N2Y4NGZmNjk2OGU0YWI4ZmMwY2MxYzA2NmUxNzBhOWFlLi44ODA5MmI2M2U3NzQ4MWZm
Mzk4MDQzYmFlNGMxNGU3NTRjYjAxZDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9SRUFETUUubWQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2Rv
Y3MvUkVBRE1FLm1kCkBAIC0xLDQgKzEsMTQgQEAKLSMgV0FWRSBUZXN0IFN1aXRlIERvY3VtZW50
YXRpb24KKyMgV0FWRSBUZXN0IFJ1bm5lciBEb2N1bWVudGF0aW9uCiAKLS0gW1JFU1QgQVBJXSgu
L3Jlc3QtYXBpL1JFQURNRS5tZCkKLS0gW1VzYWdlIEd1aWRlXSguL3VzYWdlL3VzYWdlLm1kKQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0FzIHBhcnQgb2YgdGhlIFtXQVZFIHByb2plY3Rd
KGh0dHBzOi8vY3RhLnRlY2gvUmVzb3VyY2VzL1N0YW5kYXJkcy9XQVZFLVByb2plY3QpCit0aGUg
V0FWRSBUZXN0IFJ1bm5lciB3YXMgaW1wbGVtZW50ZWQgdG8gcnVuIHRlc3RzIHRoYXQgY29uZmly
bSBwcm9wZXIgaW1wbGVtZW50YXRpb24KK29mIHNwZWNpZmllZCBmZWF0dXJlcy4gVGhlIGNvZGUg
YmFzZSBpcyB1c2VkIGluIGRpZmZlcmVudCBzdWJwcm9qZWN0cywgZWFjaCBvZiB3aGljaAorbWF5
IGhhdmUgZGlmZmVyZW50IHJlcXVpcmVtZW50cyBhbmQgc2NvcGVzLCBzbyBzb21lIGZlYXR1cmVz
IGFuZCBzY3JlZW5zaG90cyBpbiAKK3RoaXMgZG9jdW1lbnRhdGlvbiBtYXkgdXNlIHNwZWNpZmlj
IGNvbnRleHRzLgorCisjIyBDb250ZW50cworCistIFtDb25maWd1cmF0aW9uXSguL2NvbmZpZy5t
ZCk6IEhvdyB0byBjb25maWd1cmUgdGhlIHRlc3QgcnVubmVyCistIFtSRVNUIEFQSV0oLi9yZXN0
LWFwaS9SRUFETUUubWQpOiBEb2N1bWVudGF0aW9uIG9mIGVuZHBvaW50cywgcGFyYW1ldGVycyBh
bmQgcGF5bG9hZHMKKyAgLSBbR3VpZGVzXSguL3Jlc3QtYXBpL2d1aWRlcy9SRUFETUUubWQpOiBI
b3cgdG8gdXNlIGNlcnRhaW4gQVBJIG1lY2hhbmlzbXMKKy0gW1VzYWdlIEd1aWRlXSguL3VzYWdl
L3VzYWdlLm1kKTogR2VuZXJhbCB1c2FnZSBndWlkZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvY29uZmlnLm1k
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvY29uZmlnLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYzdjMGIwNWZkMjM5ZTVkN2E5ZWNjMmRjY2Yz
ZjQ0MjVlYWU0NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9jb25maWcubWQKQEAgLTAsMCArMSwz
MjYgQEAKKyMgQ29uZmlndXJhdGlvbiAtIFtXQVZFIFRlc3QgUnVubmVyXSguL1JFQURNRS5tZCkK
KworVXNpbmcgYSBjb25maWd1cmF0aW9uIGZpbGUsIHRoZSBXQVZFIFRlc3QgUnVubmVyIGNhbiBi
ZSBjb25maWd1cmVkIHRvIGJlIG1vcmUKK2Z1bmN0aW9uYWwgaW4gZGlmZmVyZW50IHVzZSBjYXNl
cy4gVGhpcyBkb2N1bWVudCBsaXN0cyBhbGwgY29uZmlndXJhdGlvbgorcGFyYW1ldGVycyBhbmQg
d2hhdCB0aGV5IGFyZSB1c2VkIGZvci4KKworIyMgQ29udGVudHMKKworMS4gW0xvY2F0aW9uIGFu
ZCBzdHJ1Y3R1cmVdKCMxLWxvY2F0aW9uLWFuZC1zdHJ1Y3R1cmUpCisyLiBbUGFyYW1ldGVyc10o
IzItcGFyYW1ldGVycykKKyAgIDEuIFtSZXN1bHRzIGRpcmVjdG9yeV0oIzIxLXJlc3VsdHMtZGly
ZWN0b3J5KQorICAgMi4gW1Rlc3QgVGltZW91dHNdKCMyMi10ZXN0LXRpbWVvdXRzKQorICAgMy4g
W0VuYWJsZSBpbXBvcnQgb2YgcmVzdWx0c10oIzIzLWVuYWJsZS1pbXBvcnQtb2YtcmVzdWx0cykK
KyAgIDQuIFtXZWIgbmFtZXNwYWNlXSgjMjQtd2ViLW5hbWVzcGFjZSkKKyAgIDUuIFtQZXJzaXN0
aW5nIGludGVydmFsXSgjMjUtcGVyc2lzdGluZy1pbnRlcnZhbCkKKyAgIDYuIFtBUEkgdGl0bGVz
XSgjMjYtYXBpLXRpdGxlcykKKyAgIDcuIFtFbmFibGUgbGlzdGluZyBhbGwgc2Vzc2lvbnNdKCMy
Ny1lbmFibGUtbGlzdGluZy1hbGwtc2Vzc2lvbnMpCisgICA4LiBbRXZlbnQgY2FjaGluZyBkdXJh
dGlvbl0oIzI4LWV2ZW50LWNhY2hpbmctZHVyYXRpb24pCisgICA5LiBbRW5hYmxlIHRlc3QgdHlw
ZSBzZWxlY3Rpb25dKCMyOS1lbmFibGUtdGVzdC10eXBlLXNlbGVjdGlvbikKKworIyMgMS4gTG9j
YXRpb24gYW5kIHN0cnVjdHVyZQorCitDb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlIGRlZmlu
ZWQgaW4gYSBKU09OIGZpbGUgY2FsbGVkIGBjb25maWcuanNvbmAgaW4KK3RoZSBwcm9qZWN0IHJv
b3Qgb2YgdGhlIFdQVCBydW5uZXIuIFRoaXMgY29uZmlndXJhdGlvbiBmaWxlIGlzIGFsc28gdXNl
ZCBieQordGhlIFdQVCBydW5uZXIsIHNvIGFueSBXQVZFIFRlc3QgUnVubmVyIHJlbGF0ZWQgY29u
ZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQord3JhcHBlZCBpbnNpZGUgYSBgd2F2ZWAgb2JqZWN0
LgorCitgYGAKKzxQUkpfUk9PVD4vY29uZmlnLmpzb24KK2BgYAorCitgYGBqc29uCit7CisgICJ3
YXZlIjogeworICAgICJyZXN1bHRzIjogIi4vcmVzdWx0cyIKKyAgfQorfQorYGBgCisKK0FsbCB0
aGUgZGVmYXVsdCB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBhIGNvbmZpZ3VyYXRpb24gZmlsZSBpbnNp
ZGUgdGhlIHdhdmUKK2RpcmVjdG9yeToKKworYGBgCis8UFJKX1JPT1Q+L3Rvb2xzL3dhdmUvY29u
ZmlnLmRlZmF1bHQuanNvbgorYGBgCisKK2BgYGpzb24KK3sKKyAgIndhdmUiOiB7CisgICAgInJl
c3VsdHMiOiAiLi9yZXN1bHRzIiwKKyAgICAidGltZW91dHMiOiB7CisgICAgICAiYXV0b21hdGlj
IjogNjAwMDAsCisgICAgICAibWFudWFsIjogMzAwMDAwCisgICAgfSwKKyAgICAiZW5hYmxlX2lt
cG9ydF9yZXN1bHRzIjogZmFsc2UsCisgICAgIndlYl9yb290IjogIi9fd2F2ZSIsCisgICAgInBl
cnNpc3RpbmdfaW50ZXJ2YWwiOiAyMCwKKyAgICAiYXBpX3RpdGxlcyI6IFtdLAorICAgICJlbmFi
bGVfcmVhZF9zZXNzaW9ucyI6IGZhbHNlLAorICAgICJldmVudF9jYWNoZV9kdXJhdGlvbiI6IDYw
MDAwCisgIH0KK30KK2BgYAorW/CfoJEgdG9wXSgjY29uZmlndXJhdGlvbi0tLXdhdmUtdGVzdC1y
dW5uZXIpCisKKyMjIDIuIFBhcmFtZXRlcnMKKworIyMjIDIuMSBSZXN1bHRzIGRpcmVjdG9yeQor
CitUaGUgcmVzdWx0cyBwYXJhbWV0ZXIgc2V0cyB3aGVyZSByZXN1bHRzIGFuZCBzZXNzaW9uIGlu
Zm9ybWF0aW9uIGFyZSBzdG9yZWQuCisKKyoqUGFyYW1ldGVycyoqOgorCitgYGBqc29uCit7Cisg
ICJyZXN1bHRzIjogIjxTdHJpbmc+IgorfQorYGBgCisKKy0gKipyZXN1bHRzKio6IFBhdGggdG8g
dGhlIHJlc3VsdHMgZGlyZWN0b3J5LiBDYW4gYmUgYWJzb2x1dGUsIG9yIHJlbGF0aXZlIHRvCisg
IHRoZSBwcm9qZWN0IHJvb3QuCisKKyoqRGVmYXVsdCoqOgorCitgYGBqc29uCit7CisgICJyZXN1
bHRzIjogIi4vcmVzdWx0cyIKK30KK2BgYAorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0aW9uLS0t
d2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuMiBUZXN0IFRpbWVvdXRzCisKK1RoZSB0ZXN0IHRp
bWVvdXRzIHNldCB0aGUgZGVmYXVsdCB0ZXN0IHRpbWVvdXQgZm9yIGRpZmZlcmVudCB0ZXN0IHR5
cGVzLgorCisqKlBhcmFtZXRlcnMqKjoKKworYGBganNvbgoreworICAidGltZW91dHMiOiB7Cisg
ICAgImF1dG9tYXRpYyI6ICI8TnVtYmVyPiIsCisgICAgIm1hbnVhbCI6ICI8TnVtYmVyPiIKKyAg
fQorfQorYGBgCisKKy0gKip0aW1lb3V0cyoqOiBIb2xkcyB0aGUga2V5IHZhbHVlIHBhaXJzIGZv
ciBkaWZmZXJlbnQgdHlwZXMgb2YgdGVzdHMKKyAgLSAqKmF1dG9tYXRpYyoqOiBEZWZhdWx0IHRp
bWUgdG8gd2FpdCBmb3IgYXV0b21hdGljIHRlc3RzIGluIG1pbGxpc2Vjb25kcy4KKyAgLSAqKm1h
bnVhbCoqOiBEZWZhdWx0IHRpbWUgdG8gd2FpdCBmb3IgbWFudWFsIHRlc3RzIGluIG1pbGxpc2Vj
b25kcy4KKworKipEZWZhdWx0Kio6CisKK2BgYGpzb24KK3sKKyAgInRpbWVvdXRzIjogeworICAg
ICJhdXRvbWF0aWMiOiA2MDAwMDAsCisgICAgIm1hbnVhbCI6IDMwMDAwMAorICB9Cit9CitgYGAK
KworW/CfoJEgdG9wXSgjY29uZmlndXJhdGlvbi0tLXdhdmUtdGVzdC1ydW5uZXIpCisKKyMjIyAy
LjMgRW5hYmxlIGltcG9ydCBvZiByZXN1bHRzCisKK1RoaXMgcGFyYW1ldGVyIGVuYWJsZXMgdGhl
IGNhcGFiaWxpdHkgdG8gaW1wb3J0IHNlc3Npb24gcmVzdWx0cyBmcm9tIG90aGVyCitXQVZFIFRl
c3QgUnVubmVyIGluc3RhbmNlcyBpbnRvIHRoZSBjdXJyZW50IG9uZS4KKworKipQYXJhbWV0ZXJz
Kio6CisKK2BgYGpzb24KK3sKKyAgImVuYWJsZV9pbXBvcnRfcmVzdWx0cyI6ICI8Qm9vbGVhbj4i
Cit9CitgYGAKKworLSAqKmVuYWJsZV9pbXBvcnRfcmVzdWx0cyoqOiBTZXRzIHdoZXRoZXIgb3Ig
bm90IHRvIGVuYWJsZSB0aGUgW1JFU1QgQVBJIGVuZHBvaW50IHRvIGltcG9ydCByZXN1bHRzXSgu
L3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL2ltcG9ydC5tZCkKKworKipEZWZhdWx0Kio6CisKK2BgYGpz
b24KK3sKKyAgImVuYWJsZV9pbXBvcnRfcmVzdWx0cyI6ICJmYWxzZSIKK30KK2BgYAorCitb8J+g
kSB0b3BdKCNjb25maWd1cmF0aW9uLS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuNCBXZWIg
bmFtZXNwYWNlCisKK0FsbCBzdGF0aWMgcmVzb3VyY2VzIGFuZCBSRVNUIEFQSSBlbmRwb2ludHMg
YXJlIGFjY2Vzc2libGUgdW5kZXIgYQorY29uZmlndXJhYmxlIG5hbWVzcGFjZS4gVGhpcyBuYW1l
c3BhY2UgY2FuIGJlIHNldCB1c2luZyB0aGUgYHdlYl9yb290YAorcGFyYW1ldGVyLgorCisqKlBh
cmFtZXRlcnMqKjoKKworYGBganNvbgoreworICAid2ViX3Jvb3QiOiAiPFN0cmluZz4iCit9Citg
YGAKKworLSAqKndlYl9yb290Kio6IFRoZSBuYW1lc3BhY2UgdG8gdXNlCisKKyoqRGVmYXVsdCoq
OgorCitgYGBqc29uCit7CisgICJ3ZWJfcm9vdCI6ICIvX3dhdmUiCit9CitgYGAKKworW/CfoJEg
dG9wXSgjY29uZmlndXJhdGlvbi0tLXdhdmUtdGVzdC1ydW5uZXIpCisKKyMjIyAyLjUgUGVyc2lz
dGluZyBpbnRlcnZhbAorCitUaGUgcGVyc2lzdGluZyBpbnRlcnZhbCBzcGVjaWZpZXMgaG93IG1h
bnkgdGVzdHMgaGF2ZSB0byBiZSBjb21wbGV0ZWQgdW50aWwKK2FsbCBzZXNzaW9uIGluZm9ybWF0
aW9uIGlzIHVwZGF0ZWQgaW4gdGhlIHJlc3VsdHMgZGlyZWN0b3J5LgorCitGb3IgZXhhbXBsZSwg
aWYgc2V0IHRvIDUsIHRoZW4gZXZlcnkgNSBjb21wbGV0ZWQgdGVzdHMgdGhlIGBpbmZvLmpzb25g
IGluIHRoZQorcmVzdWx0cyBkaXJlY3RvcnkgaXMgdXBkYXRlZCB3aXRoIHRoZSBjdXJyZW50IHN0
YXRlIG9mIHRoZSBzZXNzaW9uLiBXaGVuCityZXN0YXJ0aW5nIHRoZSBzZXJ2ZXIsIHRoaXMgc3Rh
dGUgaXMgdXNlZCB0byByZWNvbnN0cnVjdCBhbGwgc2Vzc2lvbnMgdGVzdGluZworc3RhdGUuCisK
KyoqUGFyYW1ldGVycyoqOgorCitgYGBqc29uCit7CisgICJwZXJzaXN0aW5nX2ludGVydmFsIjog
IjxOdW1iZXI+IgorfQorYGBgCisKKy0gKipwZXJzaXN0aW5nX2ludGVydmFsKio6IFRoZSBudW1i
ZXIgb2YgdGVzdHMgdG8gZXhlY3V0ZSB1bnRpbCB0aGUgcGVyc2lzdGVkCisgIHNlc3Npb24gaW5m
b3JtYXRpb24gZ2V0cyB1cGRhdGVkCisKKyoqRGVmYXVsdCoqOgorCitgYGBqc29uCit7CisgICJw
ZXJzaXN0aW5nX2ludGVydmFsIjogMjAKK30KK2BgYAorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0
aW9uLS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuNiBBUEkgdGl0bGVzCisKK1RoZSBBUEkg
dGl0bGVzIGFyZSB1c2VkIHRvIGRpc3BsYXkgYSBtb3JlIGh1bWFuIHJlYWRpYmxlIHJlcHJlc2Vu
dGF0aW9uIG9mIGFuCitBUEkgdGhhdCB0ZXN0cyBhcmUgYXZhaWxhYmxlIGZvci4gVXNpbmcgdGhl
IHBhcmFtZXRlciBpdCBpcyBwb3NzaWJsZSB0byBhc3NpZ24KK2EgbmFtZSB0byBhbiBBUEkgc3Vi
ZGlyZWN0b3J5LgorCisqKlBhcmFtZXRlcnMqKjoKKworYGBganNvbgoreworICAiYXBpX3RpdGxl
cyI6IFsKKyAgICB7CisgICAgICAidGl0bGUiOiAiPFN0cmluZz4iLAorICAgICAgInBhdGgiOiAi
PFN0cmluZz4iCisgICAgfSwKKyAgICAuLi4KKyAgXQorfQorYGBgCisKKy0gKiphcGlfdGl0bGVz
Kio6IEFuIGFycmF5IG9mIHRpdGxlcyBhc3NpZ25lZCB0byBwYXRocworICAtICoqdGl0bGUqKjog
VGhlIGRpc3BsYXllZCB0aXRsZSBvZiB0aGUgQVBJIGluIHRoZSBVSQorICAtICoqcGF0aCoqOiBU
aGUgcGF0aCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290IG9mIHRoZSB0ZXN0ZWQgQVBJCisK
KyoqRGVmYXVsdCoqOgorCitgYGBqc29uCit7CisgICJhcGlfdGl0bGVzIjogW10KK30KK2BgYAor
CisqKkV4YW1wbGUqKjoKKworYGBganNvbgoreworICAiYXBpX3RpdGxlcyI6IFsKKyAgICB7Cisg
ICAgICAidGl0bGUiOiAiV2ViR0wiLAorICAgICAgInBhdGgiOiAiL3dlYmdsIgorICAgIH0sCisg
ICAgeworICAgICAgInRpdGxlIjogIldlYlJUQyBFeHRlbnNpb25zIiwKKyAgICAgICJwYXRoIjog
Ii93ZWJydGMtZXh0ZW5zaW9ucyIKKyAgICB9CisgIF0KK30KK2BgYAorCitb8J+gkSB0b3BdKCNj
b25maWd1cmF0aW9uLS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuNyBFbmFibGUgbGlzdGlu
ZyBhbGwgc2Vzc2lvbnMKKworVGhpcyBwYXJhbWV0ZXIgZW5hYmxlcyB0aGUgW1JFU1QgQVBJIGVu
ZHBvaW50IHRvIGxpc3QgYWxsIGF2YWlsYWJsZSBzZXNzaW9uc10oLi9yZXN0LWFwaS9zZXNzaW9u
cy1hcGkvcmVhZF9zZXNzaW9ucy5tZCkuCisKKyoqUGFyYW1ldGVycyoqOgorCitgYGBqc29uCit7
CisgICJlbmFibGVfcmVhZF9zZXNzaW9ucyI6ICI8Qm9vbGVhbj4iCit9CitgYGAKKworLSAqKmVu
YWJsZV9pbXBvcnRfcmVzdWx0cyoqOiBTZXRzIHdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSB0aGUg
UkVTVCBBUEkgZW5kcG9pbnQgcmVhZCBhbGwgc2Vzc2lvbnMKKworKipEZWZhdWx0Kio6CisKK2Bg
YGpzb24KK3sKKyAgImVuYWJsZV9yZWFkX3Nlc3Npb25zIjogImZhbHNlIgorfQorYGBgCisKK1vw
n6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3QtcnVubmVyKQorCisjIyMgMi44IEV2
ZW50IGNhY2hpbmcgZHVyYXRpb24KKworVGhpcyBwYXJhbWV0ZXJzIHNwZWNpZmllcyBob3cgbG9u
ZyBldmVudHMgYXJlIGhvbGQgaW4gdGhlIGNhY2hlLiBEZXBlbmRpbmcgb24KK2hvdyBmYXN0IGNs
aWVudHMgYXJlIGFibGUgdG8gZXZhbHVhdGUgZXZlbnRzLCB0aGlzIHZhbHVlIG1heSBiZSBjaGFu
Z2VkCithY2NvcmRpbmdseS4KKworKipQYXJhbWV0ZXJzKio6CisKK2BgYGpzb24KK3sKKyAgImV2
ZW50X2NhY2hlX2R1cmF0aW9uIjogIjxOdW1iZXI+IgorfQorYGBgCisKKy0gKipldmVudF9jYWNo
ZV9kdXJhdGlvbioqOiBUaGUgZHVyYXRpb24gZXZlbnRzIGFyZSBob2xkIGluIHRoZSBjYWNoZSBp
biBtaWxsaXNlY29uZHMKKworKipEZWZhdWx0Kio6CisKK2BgYGpzb24KK3sKKyAgImV2ZW50X2Nh
Y2hlX2R1cmF0aW9uIjogNjAwMDAKK30KK2BgYAorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0aW9u
LS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuOSBFbmFibGUgdGVzdCB0eXBlIHNlbGVjdGlv
bgorCitTZXRzIGRpc3BsYXkgb2YgdGVzdCB0eXBlIGNvbmZpZ3VyYXRpb24gVUkgZWxlbWVudHMu
CisKKyoqUGFyYW1ldGVycyoqOgorCitgYGBqc29uCit7CisgICJlbmFibGVfdGVzdF90eXBlX3Nl
bGVjdGlvbiI6ICI8Qm9vbGVhbj4iCit9CitgYGAKKworLSAqKmVuYWJsZV90ZXN0X3R5cGVfc2Vs
ZWN0aW9uKio6IFdoZXRoZXIgb3Igbm90IHRlc3QgdHlwZSBVSSBjb250cm9scyBhcmUgZGlzcGxh
eWVkCisKKyoqRGVmYXVsdCoqOgorCitGYWxzZQorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0aW9u
LS0td2F2ZS10ZXN0LXJ1bm5lcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9k
b2NzL3Jlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzll
OGMwNDVlM2VlMDkxNDEwM2IyZTNkYjdiN2UwN2NlZDg5MWQ4Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvY29uZmlndXJhdGlvbl9w
YWdlX2JvdHRvbS5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvY29uZmlndXJhdGlvbl9wYWdlX2V4Y2x1ZGVfYWRkX21h
bGZ1bmN0aW9uaW5nLmpwZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9jb25maWd1cmF0aW9uX3BhZ2VfZXhjbHVkZV9hZGRf
cHJldl9leGNsdWRlZC5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvY29uZmlndXJhdGlvbl9wYWdlX2V4Y2x1ZGVfYWRk
X3Jhdy5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZG9jcy9yZXMvY29uZmlndXJhdGlvbl9wYWdlX3RvcC5qcGcKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvbGFu
ZGluZ19wYWdlLmpwZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9vdmVydmlld19wYWdlX3Nlc3Npb25zLmpwZwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jl
cy9vdmVydmlld19wYWdlX3Nlc3Npb25zX2ZpbHRlcmVkLmpwZwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9vdmVydmlld19w
YWdlX3Nlc3Npb25zX3Bpbm5lZF9yZWNlbnQuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL292ZXJ2aWV3X3BhZ2VfdG9w
LmpwZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9kb2NzL3Jlcy9yZXN1bHRzX3BhZ2VfYXBpX3Jlc3VsdHMuanBnCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL3Jlc3Vs
dHNfcGFnZV9hcGlfcmVzdWx0c19leHBvcnQuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL3Jlc3VsdHNfcGFnZV9ib3R0
b20uanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzL3Jlc3VsdHNfcGFnZV9sYXN0X3RpbWVkX291dC5qcGcKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMv
cmVzdWx0c19wYWdlX21hbGZ1bmN0aW9uaW5nX2xpc3QuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL3Jlc3VsdHNfcGFn
ZV90b3AuanBnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9SRUFETUUubWQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFw
aS9SRUFETUUubWQKaW5kZXggNzNjMjRmOGFjNTI0Yjk1YmM1ZGJlZTcxY2M4YjNkNTIyMDc4MDI1
MS4uYzZkMjE4MjNhNzdmMWZjZmMyNTVkNWQ1NDNhYTFkM2EzZmUxOWYzMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2Rv
Y3MvcmVzdC1hcGkvUkVBRE1FLm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL1JFQURNRS5tZApAQCAtMSwy
NiArMSwzMSBAQAotIyBSRVNUIEFQSSAtIFtXQVZFIFRlc3QgU3VpdGVdKC4uL1JFQURNRS5tZCkK
KyMgUkVTVCBBUEkgLSBbV0FWRSBUZXN0IFJ1bm5lcl0oLi4vUkVBRE1FLm1kKQogCi1UaGUgUkVT
VCBBUEkgYWxsb3dzIHRoZSBXQVZFIHNlcnZlciB0byBiZSBpbnRlZ3JhdGVkIGludG8gb3RoZXIg
c3lzdGVtcy4gRXZlcnkgCi1jYWxsIG11c3QgYmUgcHJlY2VkZWQgd2l0aCBhIG5hbWVzcGFjZSBv
ciB3ZWIgcm9vdCwgd2hpY2ggaXMgb21pdHRlZCBpbiB0aGlzIAotZG9jdW1lbnRhdGlvbi4gVGhl
IGRlZmF1bHQgd2ViIHJvb3QgaXMgYC9fd2F2ZWAsIHdoaWNoIGNhbiBiZSBjaGFuZ2VkIGluIHRo
ZSAKK1RoZSBSRVNUIEFQSSBhbGxvd3MgdGhlIFdBVkUgc2VydmVyIHRvIGJlIGludGVncmF0ZWQg
aW50byBvdGhlciBzeXN0ZW1zLiBFdmVyeQorY2FsbCBtdXN0IGJlIHByZWNlZGVkIHdpdGggYSBu
YW1lc3BhY2Ugb3Igd2ViIHJvb3QsIHdoaWNoIGlzIG9taXR0ZWQgaW4gdGhpcworZG9jdW1lbnRh
dGlvbi4gVGhlIGRlZmF1bHQgd2ViIHJvb3QgaXMgYC9fd2F2ZWAsIHdoaWNoIGNhbiBiZSBjaGFu
Z2VkIGluIHRoZQogY29uZmlnLmpzb24gdXNpbmcgdGhlIGtleXdvcmQgYHdlYl9yb290YC4KIAor
QWRkaXRpb25hbCBbUkVTVCBBUEkgR3VpZGVzXSguL2d1aWRlcy9SRUFETUUubWQpIGNhbiBoZWxw
IHRvIHVuZGVyc3RhbmQgaG93IHRvCit1c2UgdGhlc2UgZW5kcG9pbnRzIGluIGNvbnRleHQuCisK
ICMjIFNlc3Npb25zIEFQSSA8YSBuYW1lPSJzZXNzaW9ucy1hcGkiPjwvYT4KIAotfCBOYW1lICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKLXwgW2BjcmVhdGVgXSguL3Nlc3Npb25z
LWFwaS9jcmVhdGUubWQpICAgICAgICAgICB8IENyZWF0ZXMgYSBuZXcgdGVzdCBzZXNzaW9uLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYHJlYWRgXSguL3Nlc3Npb25zLWFwaS9yZWFk
Lm1kKSAgICAgICAgICAgICAgIHwgUmVhZHMgYSBzZXNzaW9ucyBjb25maWd1cmF0aW9uLiAgICAg
ICAgICAgICAgICAgICAgICB8Ci18IFtgcmVhZCBwdWJsaWNgXSguL3Nlc3Npb25zLWFwaS9yZWFk
LXB1YmxpYy5tZCkgfCBSZWFkcyBhbGwgcHVibGljIHNlc3Npb25zIHRva2Vucy4gICAgICAgICAg
ICAgICAgICAgIHwKLXwgW2B1cGRhdGVgXSguL3Nlc3Npb25zLWFwaS91cGRhdGUubWQpICAgICAg
ICAgICB8IFVwZGF0ZXMgYSBzZXNzaW9uIGNvbmZpZ3VyYXRpb24uICAgICAgICAgICAgICAgICAg
ICAgfAotfCBbYGRlbGV0ZWBdKC4vc2Vzc2lvbnMtYXBpL2RlbGV0ZS5tZCkgICAgICAgICAgIHwg
RGVsZXRlcyBhIHRlc3Qgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18
IFtgc3RhdHVzYF0oLi9zZXNzaW9ucy1hcGkvc3RhdHVzLm1kKSAgICAgICAgICAgfCBSZWFkcyB0
aGUgc3RhdHVzIGFuZCBwcm9ncmVzcyBvZiBhIHNlc3Npb24uICAgICAgICAgIHwKLXwgW2BzdGFy
dGBdKC4vc2Vzc2lvbnMtYXBpL2NvbnRyb2wubWQjc3RhcnQpICAgICB8IFN0YXJ0cyBhIHRlc3Qg
c2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYHN0b3BgXSguL3Nl
c3Npb25zLWFwaS9jb250cm9sLm1kI3N0b3ApICAgICAgIHwgU3RvcHMgYSB0ZXN0IHNlc3Npb24u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IFtgcGF1c2VgXSguL3Nlc3Npb25z
LWFwaS9jb250cm9sLm1kI3BhdXNlKSAgICAgfCBQYXVzZXMgYSB0ZXN0IHNlc3Npb24uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgW2BmaW5kYF0oLi9zZXNzaW9ucy1hcGkvZmlu
ZC5tZCkgICAgICAgICAgICAgICB8IEZpbmRzIGEgc2Vzc2lvbiB0b2tlbiBieSBwcm92aWRpbmcg
YSB0b2tlbiBmcmFnbWVudC4gfAotfCBbYGxhYmVsc2BdKC4vc2Vzc2lvbnMtYXBpL2xhYmVscy5t
ZCkgICAgICAgICAgIHwgQXR0YWNoIGxhYmVscyB0byBzZXNzaW9ucyBmb3Igb3JnYW5pemF0aW9u
IHB1cnBvc2VzLiB8Ci18IFtgZXZlbnRzYF0oLi9zZXNzaW9ucy1hcGkvZXZlbnRzLm1kKSAgICAg
ICAgICAgfCBSZWdpc3RlciBmb3Igc2Vzc2lvbnMgc3BlY2lmaWMgZXZlbnRzLiAgICAgICAgICAg
ICAgIHwKK3wgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8Cit8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gfAorfCBbYGNyZWF0ZWBdKC4vc2Vzc2lvbnMtYXBpL2NyZWF0ZS5t
ZCkgICAgICAgICAgICAgICB8IENyZWF0ZXMgYSBuZXcgdGVzdCBzZXNzaW9uLiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2ByZWFkIHNlc3Npb25gXSguL3Nlc3Npb25z
LWFwaS9yZWFkLm1kKSAgICAgICAgICAgfCBSZWFkcyBhIHNlc3Npb25zIGNvbmZpZ3VyYXRpb24u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IFtgcmVhZCBzZXNzaW9uc2BdKC4v
c2Vzc2lvbnMtYXBpL3JlYWRfc2Vzc2lvbnMubWQpIHwgUmVhZHMgYWxsIHNlc3Npb24gdG9rZW5z
LCBleHBhbmRhYmxlIHdpdGggY29uZmlncyBhbmQgc3RhdHVzZXMgfAorfCBbYHJlYWQgcHVibGlj
YF0oLi9zZXNzaW9ucy1hcGkvcmVhZC1wdWJsaWMubWQpICAgICB8IFJlYWRzIGFsbCBwdWJsaWMg
c2Vzc2lvbnMgdG9rZW5zLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2B1cGRh
dGVgXSguL3Nlc3Npb25zLWFwaS91cGRhdGUubWQpICAgICAgICAgICAgICAgfCBVcGRhdGVzIGEg
c2Vzc2lvbiBjb25maWd1cmF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8
IFtgZGVsZXRlYF0oLi9zZXNzaW9ucy1hcGkvZGVsZXRlLm1kKSAgICAgICAgICAgICAgIHwgRGVs
ZXRlcyBhIHRlc3Qgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfAorfCBbYHN0YXR1c2BdKC4vc2Vzc2lvbnMtYXBpL3N0YXR1cy5tZCkgICAgICAgICAgICAg
ICB8IFJlYWRzIHRoZSBzdGF0dXMgYW5kIHByb2dyZXNzIG9mIGEgc2Vzc2lvbi4gICAgICAgICAg
ICAgICAgICAgIHwKK3wgW2BzdGFydGBdKC4vc2Vzc2lvbnMtYXBpL2NvbnRyb2wubWQjc3RhcnQp
ICAgICAgICAgfCBTdGFydHMgYSB0ZXN0IHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8Cit8IFtgc3RvcGBdKC4vc2Vzc2lvbnMtYXBpL2NvbnRyb2wubWQj
c3RvcCkgICAgICAgICAgIHwgU3RvcHMgYSB0ZXN0IHNlc3Npb24uICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHBhdXNlYF0oLi9zZXNzaW9ucy1hcGkvY29u
dHJvbC5tZCNwYXVzZSkgICAgICAgICB8IFBhdXNlcyBhIHRlc3Qgc2Vzc2lvbi4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2BmaW5kYF0oLi9zZXNzaW9ucy1h
cGkvZmluZC5tZCkgICAgICAgICAgICAgICAgICAgfCBGaW5kcyBhIHNlc3Npb24gdG9rZW4gYnkg
cHJvdmlkaW5nIGEgdG9rZW4gZnJhZ21lbnQuICAgICAgICAgICB8Cit8IFtgbGFiZWxzYF0oLi9z
ZXNzaW9ucy1hcGkvbGFiZWxzLm1kKSAgICAgICAgICAgICAgIHwgQXR0YWNoIGxhYmVscyB0byBz
ZXNzaW9ucyBmb3Igb3JnYW5pemF0aW9uIHB1cnBvc2VzLiAgICAgICAgICAgfAorfCBbYGxpc3Rl
biBldmVudHNgXSguL3Nlc3Npb25zLWFwaS9ldmVudHMubWQpICAgICAgICB8IFJlZ2lzdGVyIGZv
ciBzZXNzaW9ucyBzcGVjaWZpYyBldmVudHMuICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wg
W2BwdXNoIGV2ZW50c2BdKC4vc2Vzc2lvbnMtYXBpL2V2ZW50cy5tZCkgICAgICAgICAgfCBQdXNo
IHNlc3Npb24gc3BlY2lmaWMgZXZlbnRzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8CiAKICMjIFRlc3RzIEFQSSA8YSBuYW1lPSJ0ZXN0cy1hcGkiPjwvYT4KIApAQCAtMzYsMTkg
KzQxLDM2IEBAIGNvbmZpZy5qc29uIHVzaW5nIHRoZSBrZXl3b3JkIGB3ZWJfcm9vdGAuCiAKICMj
IFJlc3VsdHMgQVBJIDxhIG5hbWU9InJlc3VsdHMtYXBpIj48L2E+CiAKLXwgTmFtZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Ci18IFtgY3JlYXRlYF0oLi9yZXN1bHRzLWFwaS9j
cmVhdGUubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDcmVh
dGUgYSBuZXcgdGVzdCByZXN1bHQgZm9yIGEgdGVzdCBpbiBhIHNlc3Npb24uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKLXwgW2ByZWFkYF0oLi9yZXN1bHRzLWFwaS9yZWFkLm1kKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlYWQgYWxsIHRl
c3QgcmVzdWx0cyBvZiBhIHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfAotfCBbYHJlYWQgY29tcGFjdGBdKC4vcmVzdWx0cy1hcGkvcmVhZC1jb21w
YWN0Lm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUmVhZCB0aGUgbnVtYmVyIG9m
IHBhc3NlZCwgZmFpbGVkLCB0aW1lZCBvdXQgYW5kIG5vdCBydW4gdGVzdHMgb2YgYSBzZXNzaW9u
LiAgICB8Ci18IFtgY29uZmlnYF0oLi9yZXN1bHRzLWFwaS9jb25maWcubWQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSZWFkIHdoYXQgZmVhdHVyZXMgb2YgdGhl
IHJlc3VsdHMgQVBJIGFyZSBlbmFibGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK
LXwgW2BpbXBvcnRgXSguL3Jlc3VsdHMtYXBpL2ltcG9ydC5tZCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IEltcG9ydCBzZXNzaW9uIHJlc3VsdHMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYGlt
cG9ydCBlbmFibGVkYF0oLi9yZXN1bHRzLWFwaS9pbXBvcnQubWQjMi1pbXBvcnQtZW5hYmxlZCkg
ICAgICAgICAgICAgICAgIHwgQ2hlY2sgd2hldGhlciBvciBub3QgdGhlIGltcG9ydCBmZWF0dXJl
IGlzIGVuYWJsZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IFtgZG93bmxvYWRg
XSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzEtZG93bmxvYWQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCBEb3dubG9hZCBhbGwgc2Vzc2lvbiByZXN1bHRzIHRvIGltcG9ydCBpbnRvIG90
aGVyIFdNQVRTIGluc3RhbmNlLiAgICAgICAgICAgICAgIHwKLXwgW2Bkb3dubG9hZCBhcGlgXSgu
L3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzItZG93bmxvYWQtYXBpKSAgICAgICAgICAgICAgICAg
ICB8IERvd25sb2FkIGFsbCByZXN1bHRzIG9mIGFuIEFQSS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYGRvd25sb2FkIGFsbCBhcGlzYF0oLi9y
ZXN1bHRzLWFwaS9kb3dubG9hZC5tZCMzLWRvd25sb2FkLWFsbC1hcGlzKSAgICAgICAgIHwgRG93
bmxvYWQgYWxsIHJlc3VsdHMgb2YgYWxsIEFQSXMuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8Ci18IFtgdmlldyByZXBvcnRgXSguL3Jlc3VsdHMtYXBpL2Rv
d25sb2FkLm1kIzQtZG93bmxvYWQtcmVwb3J0KSAgICAgICAgICAgICAgICAgfCBWaWV3IHRoZSBX
UFQgcmVwb3J0IG9mIGFuIEFQSSBvZiBhIHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLXwgW2B2aWV3IG11bHRpIHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvZG93
bmxvYWQubWQjNS1kb3dubG9hZC1tdWx0aS1yZXBvcnQpICAgICB8IFZpZXcgdGhlIFdQVCByZXBv
cnQgb2YgYW4gQVBJIG9mIG11bHRpcGxlIHNlc3Npb25zLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAotfCBbYGRvd25sb2FkIG92ZXJ2aWV3YF0oLi9yZXN1bHRzLWFwaS9kb3dubG9hZC5t
ZCM2LWRvd25sb2FkLW92ZXJ2aWV3KSAgICAgICAgIHwgRG93bmxvYWQgYW4gb3ZlcnZpZXcgb2Yg
cmVzdWx0cyBvZiBhbGwgQVBJcyBvZiBhIHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICB8
Ci18IFtgdmlldyByZXBvcnRgXSguL3Jlc3VsdHMtYXBpL3ZpZXcubWQjMS12aWV3LXJlcG9ydCkg
ICAgICAgICAgICAgICAgICAgICAgICAgfCBSZWFkIGFuIHVybCB0byBhIGhvc3RlZCB2ZXJzaW9u
IG9mIGEgV1BUIHJlcG9ydCBmb3IgYW4gQVBJIG9mIGEgc2Vzc2lvbi4gICAgICAgIHwKLXwgW2B2
aWV3IG11bHRpIHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvdmlldy5tZCMyLXZpZXctbXVsdGktcmVw
b3J0KSAgICAgICAgICAgICB8IFJlYWQgYW4gdXJsIHRvIGEgaG9zdGVkIHZlcnNpb24gb2YgYSBX
UFQgcmVwb3J0IGZvciBhbiBBUEkgb2YgbXVsdGlwbGUgc2Vzc2lvbi4gfAorfCBOYW1lICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSB8Cit8IFtgY3JlYXRlYF0oLi9yZXN1bHRzLWFwaS9jcmVhdGUu
bWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENyZWF0ZSBhIG5ldyB0
ZXN0IHJlc3VsdCBmb3IgYSB0ZXN0IGluIGEgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfAorfCBbYHJlYWRgXSguL3Jlc3VsdHMtYXBpL3JlYWQubWQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSZWFkIGFsbCB0ZXN0IHJlc3VsdHMgb2Yg
YSBzZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK
K3wgW2ByZWFkIGNvbXBhY3RgXSguL3Jlc3VsdHMtYXBpL3JlYWQtY29tcGFjdC5tZCkgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgUmVhZCB0aGUgbnVtYmVyIG9mIHBhc3NlZCwgZmFpbGVkLCB0
aW1lZCBvdXQgYW5kIG5vdCBydW4gdGVzdHMgb2YgYSBzZXNzaW9uLiAgICB8Cit8IFtgaW1wb3J0
IHNlc3Npb25gXSguL3Jlc3VsdHMtYXBpL2ltcG9ydC5tZCMxLWltcG9ydC1zZXNzaW9uKSAgICAg
ICAgICAgICB8IEltcG9ydCBzZXNzaW9uIHJlc3VsdHMuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYGltcG9ydCBhcGkgcmVzdWx0
c2BdKC4vcmVzdWx0cy1hcGkvaW1wb3J0Lm1kIzItaW1wb3J0LWFwaS1yZXN1bHRzKSAgICAgfCBJ
bXBvcnQgcmVzdWx0cyBvZiBhIHNwZWNpZmljIEFQSSBpbnRvIGV4aXN0aW5nIHNlc3Npb24uICAg
ICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2Bkb3dubG9hZGBdKC4vcmVzdWx0cy1hcGkvZG93
bmxvYWQubWQjMS1kb3dubG9hZCkgICAgICAgICAgICAgICAgICAgICAgIHwgRG93bmxvYWQgYWxs
IHNlc3Npb24gcmVzdWx0cyB0byBpbXBvcnQgaW50byBvdGhlciBXTUFUUyBpbnN0YW5jZS4gICAg
ICAgICAgICAgICB8Cit8IFtgZG93bmxvYWQgYXBpYF0oLi9yZXN1bHRzLWFwaS9kb3dubG9hZC5t
ZCMyLWRvd25sb2FkLWFwaSkgICAgICAgICAgICAgICB8IERvd25sb2FkIGFsbCByZXN1bHRzIG9m
IGFuIEFQSS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorfCBbYGRvd25sb2FkIGFsbCBhcGlzYF0oLi9yZXN1bHRzLWFwaS9kb3dubG9hZC5tZCMzLWRv
d25sb2FkLWFsbC1hcGlzKSAgICAgfCBEb3dubG9hZCBhbGwgcmVzdWx0cyBvZiBhbGwgQVBJcy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2B2aWV3
IHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvZG93bmxvYWQubWQjNC1kb3dubG9hZC1yZXBvcnQpICAg
ICAgICAgICAgIHwgVmlldyB0aGUgV1BUIHJlcG9ydCBvZiBhbiBBUEkgb2YgYSBzZXNzaW9uLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IFtgdmlldyBtdWx0aSByZXBv
cnRgXSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzUtZG93bmxvYWQtbXVsdGktcmVwb3J0KSB8
IFZpZXcgdGhlIFdQVCByZXBvcnQgb2YgYW4gQVBJIG9mIG11bHRpcGxlIHNlc3Npb25zLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYGRvd25sb2FkIG92ZXJ2aWV3YF0oLi9yZXN1
bHRzLWFwaS9kb3dubG9hZC5tZCM2LWRvd25sb2FkLW92ZXJ2aWV3KSAgICAgfCBEb3dubG9hZCBh
biBvdmVydmlldyBvZiByZXN1bHRzIG9mIGFsbCBBUElzIG9mIGEgc2Vzc2lvbi4gICAgICAgICAg
ICAgICAgICAgICAgIHwKK3wgW2B2aWV3IHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvdmlldy5tZCMx
LXZpZXctcmVwb3J0KSAgICAgICAgICAgICAgICAgICAgIHwgUmVhZCBhbiB1cmwgdG8gYSBob3N0
ZWQgdmVyc2lvbiBvZiBhIFdQVCByZXBvcnQgZm9yIGFuIEFQSSBvZiBhIHNlc3Npb24uICAgICAg
ICB8Cit8IFtgdmlldyBtdWx0aSByZXBvcnRgXSguL3Jlc3VsdHMtYXBpL3ZpZXcubWQjMi12aWV3
LW11bHRpLXJlcG9ydCkgICAgICAgICB8IFJlYWQgYW4gdXJsIHRvIGEgaG9zdGVkIHZlcnNpb24g
b2YgYSBXUFQgcmVwb3J0IGZvciBhbiBBUEkgb2YgbXVsdGlwbGUgc2Vzc2lvbi4gfAorCisjIyBE
ZXZpY2VzIEFQSSA8YSBuYW1lPSJkZXZpY2VzLWFwaSI+PC9hPgorCit8IE5hbWUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
RGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKK3wgW2BjcmVhdGVgXSgu
L2RldmljZXMtYXBpL2NyZWF0ZS5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCBSZWdpc3RlcnMgYSBuZXcgZGV2aWNlLiAgICAgICAgICAgICAgICB8Cit8IFtgcmVhZCBkZXZp
Y2VgXSguL2RldmljZXMtYXBpL3JlYWQtZGV2aWNlLm1kKSAgICAgICAgICAgICAgICAgICAgICAg
IHwgUmVhZCBpbmZvcm1hdGlvbiBvZiBhIHNwZWNpZmljIGRldmljZS4gfAorfCBbYHJlYWQgZGV2
aWNlc2BdKC4vZGV2aWNlcy1hcGkvcmVhZC1kZXZpY2VzLm1kKSAgICAgICAgICAgICAgICAgICAg
ICB8IFJlYWQgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgZGV2aWNlcy4gIHwKK3wgW2ByZWdpc3Rl
ciBldmVudCBsaXN0ZW5lcmBdKC4vZGV2aWNlcy1hcGkvcmVnaXN0ZXIubWQpICAgICAgICAgICAg
ICAgfCBSZWdpc3RlciBmb3IgYSBkZXZpY2Ugc3BlY2lmaWMgZXZlbnQuICB8Cit8IFtgc2VuZCBl
dmVudGBdKC4vZGV2aWNlcy1hcGkvc2VuZC1ldmVudC5tZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgU2VuZHMgYSBkZXZpY2Ugc3BlY2lmaWMgZXZlbnQuICAgICAgICAgfAorfCBbYHJlZ2lz
dGVyIGdsb2JhbCBldmVudCBsaXN0ZW5lcmBdKC4vZGV2aWNlcy1hcGkvcmVnaXN0ZXItZ2xvYmFs
Lm1kKSB8IFJlZ2lzdGVyIGZvciBhIGdsb2JhbCBkZXZpY2UgZXZlbnQuICAgIHwKK3wgW2BzZW5k
IGdsb2JhbCBldmVudGBdKC4vZGV2aWNlcy1hcGkvc2VuZC1nbG9iYWwtZXZlbnQubWQpICAgICAg
ICAgICAgfCBTZW5kcyBhIGdsb2JhbCBkZXZpY2UgZXZlbnQuICAgICAgICAgICB8CisKKyMjIEdl
bmVyYWwgQVBJIDxhIG5hbWU9ImdlbmVyYWwtYXBpIj48L2E+CisKK3wgTmFtZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKK3wgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IHwKK3wgW2BzdGF0dXNgXSguL2dlbmVyYWwtYXBpL3N0YXR1cy5tZCkgfCBSZXR1cm5zIGluZm9y
bWF0aW9uIG9uIGhvdyB0aGUgc2VydmVyIGlzIGNvbmZpZ3VyZWQuIHwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3Jlc3QtYXBpL2RldmljZXMtYXBpL2NyZWF0ZS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBp
L2NyZWF0ZS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWQxMzU1YWQyZjAzNGVmNjc1MTQyMDgzNDhjN2Y4OWQ2
MDdiMjQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvY3JlYXRl
Lm1kCkBAIC0wLDAgKzEsMzMgQEAKKyMgYGNyZWF0ZWAgLSBbRGV2aWNlcyBBUEldKC4uL1JFQURN
RS5tZCNkZXZpY2VzLWFwaSkKKworVGhlIGBjcmVhdGVgIG1ldGhvZCBvZiB0aGUgZGV2aWNlcyBB
UEkgcmVnaXN0ZXJzIGEgbmV3IGRldmljZXMgdG8gcmVtb3RlbHkgCitzdGFydCB0ZXN0IHNlc3Np
b25zIG9uLiBUaGUgZGV2aWNlIHdpbGwgYXV0b21hdGljYWxseSBiZSB1bnJlZ2lzdGVyZWQgaWYg
aXRzIAorbm90IHJlZ2lzdGVyaW5nIGZvciBhbiBbZXZlbnRdKC4vcmVnaXN0ZXIubWQpIGZvciBt
b3JlIHRoYW4gYSBtaW51dGUuCisKKyMjIEhUVFAgUmVxdWVzdAorCitgUE9TVCAvYXBpL2Rldmlj
ZXNgCisKKyMjIFJlc3BvbnNlIFBheWxvYWQKKworYGBganNvbgoreworICAgICJ0b2tlbiI6ICI8
U3RyaW5nPiIKK30KK2BgYAorCistICoqdG9rZW4qKiBzcGVjaWZpZXMgdGhlIGhhbmRsZSB0byBy
ZWZlcmVuY2UgdGhlIHJlZ2lzdGVyZWQgZGV2aWNlIGJ5LgorCisjIyBFeGFtcGxlCisKKyoqUmVx
dWVzdDoqKgorCitgUE9TVCAvYXBpL2RldmljZXNgCisKKyoqUmVzcG9uc2U6KioKKworYGBganNv
bgoreworICAgICJ0b2tlbiI6ICJlNWYwYjkyZS04MzA5LTExZWEtYTFiMS0wMDIxY2NkNzYxNTIi
Cit9CitgYGAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL2V2ZW50LXR5cGVz
Lm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvZXZlbnQtdHlwZXMubWQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWFkMWYwNjk1Yjk2MmI0YTJjYjc3YmMxZTk5YTllMzdiMTI4NGM0YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL2V2ZW50LXR5cGVzLm1kCkBAIC0wLDAgKzEsMzcg
QEAKKyMgRGV2aWNlIEV2ZW50IFR5cGVzIC0gW0RldmljZXMgQVBJXSguLi9SRUFETUUubWQjZGV2
aWNlcy1hcGkpCisKK0RldmljZSBldmVudHMgYXJlIGV2ZW50cyB0aGF0IGFyZSB0cmlnZ2VyZWQg
YnkgYWN0aW9ucyByZWxhdGVkIHRvIGRldmljZXMuIAorVGhpcyBkb2N1bWVudCBzcGVjaWZpZXMg
d2hhdCBwb3NzaWJsZSBldmVudHMgY2FuIG9jY3VyIGFuZCB3aGF0IHRoZXkgbWVhbi4KKworIyMg
RGV2aWNlIHNwZWNpZmljIDxhIG5hbWU9ImRldmljZS1zcGVjaWZpYyI+PC9hPgorCitEZXZpY2Ug
c3BlY2lmaWMgZXZlbnRzIGFyZSBhbHdheXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIGRldmljZSwg
cmVmZXJlbmNlZCBieSAKK2l0cyB0b2tlbi4KKworIyMjIFN0YXJ0IHNlc3Npb24KKworKipUeXBl
IGlkZW50aWZpZXIqKjogYHN0YXJ0X3Nlc3Npb25gICAKKyoqUGF5bG9hZCoqOiAKK2BgYGpzb24K
K3sKKyAgInNlc3Npb25fdG9rZW4iOiAiPFN0cmluZz4iCit9CitgYGAKKyoqRGVzY3JpcHRpb24q
KjogVHJpZ2dlcmVkIGJ5IGEgY29tcGFuaW9uIGRldmljZSwgdGhpcyBldmVudCBzdGFydHMgYSAK
K3ByZS1jb25maWd1cmVkIHNlc3Npb24gb24gdGhlIHJlZ2lzdGVyZWQgZGV2aWNlLgorCisjIyBH
bG9iYWwgPGEgbmFtZT0iZ2xvYmFsIj48L2E+CisKK0dsb2JhbCBkZXZpY2UgZXZlbnRzIGhhdmUg
bm8gc3BlY2lhbCByZWxhdGlvbiB0byBhbnkgZGV2aWNlLgorCisjIyMgRGV2aWNlIGFkZGVkCisK
KyoqVHlwZSBpZGVudGlmaWVyKio6IGBkZXZpY2VfYWRkZWRgICAKKyoqUGF5bG9hZCoqOiBTYW1l
IGFzIHJlc3BvbnNlIG9mIFtgcmVhZCBkZXZpY2VgXSguL3JlYWQtZGV2aWNlLm1kKSBtZXRob2Qu
ICAKKyoqRGVzY3JpcHRpb24qKjogVGhpcyBldmVudCBpcyB0cmlnZ2VyZWQgb25jZSBhIG5ldyBk
ZXZpY2UgcmVnaXN0ZXJzLiAgICAKKworIyMjIERldmljZSByZW1vdmVkCisKKyoqVHlwZSBpZGVu
dGlmaWVyKio6IGBkZXZpY2VfcmVtb3ZlZGAgIAorKipQYXlsb2FkKio6IFNhbWUgYXMgcmVzcG9u
c2Ugb2YgW2ByZWFkIGRldmljZWBdKC4vcmVhZC1kZXZpY2UubWQpIG1ldGhvZC4gIAorKipEZXNj
cmlwdGlvbioqOiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBvbmNlIGEgZGV2aWNlIHVucmVnaXN0
ZXJzLiAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3JlYWQtZGV2aWNl
Lm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvcmVhZC1kZXZpY2UubWQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTc2MmIxN2U3MWI3NWEwMzNlNmYwM2Q1MzY0MTIzNjUyNDc4YTQ1OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3JlYWQtZGV2aWNlLm1kCkBAIC0wLDAgKzEsNDEg
QEAKKyMgYHJlYWQgZGV2aWNlYCAtIFtEZXZpY2VzIEFQSV0oLi4vUkVBRE1FLm1kI2RldmljZXMt
YXBpKQorCitUaGUgYHJlYWQgZGV2aWNlYCBtZXRob2Qgb2YgdGhlIGRldmljZXMgQVBJIGZldGNo
ZXMgYXZhaWxhYmxlIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBhIAorc3BlY2lmaWMgZGV2aWNlLgor
CisjIyBIVFRQIFJlcXVlc3QKKworYEdFVCAvYXBpL2RldmljZXMvPGRldmljZV90b2tlbj5gCisK
KyMjIFJlc3BvbnNlIFBheWxvYWQKKworYGBganNvbgoreworICAgICJ0b2tlbiI6ICI8U3RyaW5n
PiIsCisgICAgInVzZXJfYWdlbnQiOiAiPFN0cmluZz4iLAorICAgICJsYXN0X2FjdGl2ZSI6ICI8
U3RyaW5nPiIsCisgICAgIm5hbWUiOiAiPFN0cmluZz4iCit9CitgYGAKKworLSAqKnRva2VuKiog
aXMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UuCistICoqdXNlcl9hZ2VudCoq
IGlzIHRoZSB1c2VyIGFnZW50IG9mIHRoZSByZXF1ZXN0IHRoZSBkZXZpY2Ugd2FzIHJlZ2lzdGVy
ZWQgd2l0aC4KKy0gKipsYXN0X2FjdGl2ZSoqIGRlZmluZXMgdGhlIHBvaW50IGluIHRpbWUgdGhl
IGRldmljZSB3YXMgbGFzdCBhY3RpdmUuIEV4cHJlc3NlZCBhcyBJU08gODYwMSBkYXRlIGFuZCB0
aW1lIGZvcm1hdC4KKy0gKipuYW1lKiogdGhlIG5hbWUgdGhlIGRldmljZSB3YXMgYXNzaWduIGJh
c2VkIG9uIGl0cyB1c2VyIGFnZW50LgorCisjIyBFeGFtcGxlCisKKyoqUmVxdWVzdDoqKgorCitg
R0VUIC9hcGkvZGV2aWNlcy8xZDlmNWQzMC04MzBmLTExZWEtOGRjYi0wMDIxY2NkNzYxNTJgCisK
KyoqUmVzcG9uc2U6KioKKworYGBganNvbgoreworICAgICJ0b2tlbiI6ICIxZDlmNWQzMC04MzBm
LTExZWEtOGRjYi0wMDIxY2NkNzYxNTIiLAorICAgICJ1c2VyX2FnZW50IjogIk1vemlsbGEvNS4w
IChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNr
bykgQ2hyb21lLzgxLjAuNDA0NC4xMTMgU2FmYXJpLzUzNy4zNiIsCisgICAgImxhc3RfYWN0aXZl
IjogMTU4NzM5MTE1MzI5NSwKKyAgICAibmFtZSI6ICJDaHJvbWUgODEuMC40MDQ0IgorfQorYGBg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWFkLWRldmljZXMubWQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWFkLWRldmljZXMubWQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE5YjA2
YzYxMGQ1ZTFkMTMxYzJjOTMwZDk5OWY0YzkyZjA1MGRlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3Jlc3QtYXBpL2RldmljZXMtYXBpL3JlYWQtZGV2aWNlcy5tZApAQCAtMCwwICsxLDQ3IEBACisj
IGByZWFkIGRldmljZXNgIC0gW0RldmljZXMgQVBJXSguLi9SRUFETUUubWQjZGV2aWNlcy1hcGkp
CisKK1RoZSBgcmVhZCBkZXZpY2VzYCBtZXRob2Qgb2YgdGhlIGRldmljZXMgQVBJIGZldGNoZXMg
YSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIAorZGV2aWNlcy4KKworIyMgSFRUUCBSZXF1ZXN0CisK
K2BHRVQgL2FwaS9kZXZpY2VzYAorCisjIyBSZXNwb25zZSBQYXlsb2FkCisKK2BgYGpzb24KK1sK
KyAgeworICAgICAgInRva2VuIjogIjxTdHJpbmc+IiwKKyAgICAgICJ1c2VyX2FnZW50IjogIjxT
dHJpbmc+IiwKKyAgICAgICJsYXN0X2FjdGl2ZSI6ICI8U3RyaW5nPiIsCisgICAgICAibmFtZSI6
ICI8U3RyaW5nPiIKKyAgfSwKKyAgLi4uCitdCitgYGAKKworLSAqKnRva2VuKiogaXMgdGhlIHVu
aXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UuCistICoqdXNlcl9hZ2VudCoqIGlzIHRoZSB1
c2VyIGFnZW50IG9mIHRoZSByZXF1ZXN0IHRoZSBkZXZpY2Ugd2FzIHJlZ2lzdGVyZWQgd2l0aC4K
Ky0gKipsYXN0X2FjdGl2ZSoqIGRlZmluZXMgdGhlIHBvaW50IGluIHRpbWUgdGhlIGRldmljZSB3
YXMgbGFzdCBhY3RpdmUuIEV4cHJlc3NlZCBhcyBJU08gODYwMSBkYXRlIGFuZCB0aW1lIGZvcm1h
dC4KKy0gKipuYW1lKiogdGhlIG5hbWUgdGhlIGRldmljZSB3YXMgYXNzaWduIGJhc2VkIG9uIGl0
cyB1c2VyIGFnZW50LgorCisjIyBFeGFtcGxlCisKKyoqUmVxdWVzdDoqKgorCitgR0VUIC9hcGkv
ZGV2aWNlc2AKKworKipSZXNwb25zZToqKgorCitgYGBqc29uCitbCisgIHsKKyAgICAgICJ0b2tl
biI6ICIxZDlmNWQzMC04MzBmLTExZWEtOGRjYi0wMDIxY2NkNzYxNTIiLAorICAgICAgInVzZXJf
YWdlbnQiOiAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81Mzcu
MzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODEuMC40MDQ0LjExMyBTYWZhcmkvNTM3LjM2
IiwKKyAgICAgICJsYXN0X2FjdGl2ZSI6IDE1ODczOTExNTMyOTUsCisgICAgICAibmFtZSI6ICJD
aHJvbWUgODEuMC40MDQ0IgorICB9LAorICAuLi4KK10KK2BgYApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvZGV2aWNlcy1hcGkvcmVnaXN0ZXItZ2xvYmFsLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNl
cy1hcGkvcmVnaXN0ZXItZ2xvYmFsLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkM2EyYWQ5OTgxM2I1NGFlYTQ0
NTkwNDRiMTUzMWNiOWUxMDFjNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZp
Y2VzLWFwaS9yZWdpc3Rlci1nbG9iYWwubWQKQEAgLTAsMCArMSw1NCBAQAorIyBgcmVnaXN0ZXIg
Z2xvYmFsIGV2ZW50IGxpc3RlbmVyYCAtIFtEZXZpY2VzIEFQSV0oLi4vUkVBRE1FLm1kI2Rldmlj
ZXMtYXBpKQorCitUaGUgYHJlZ2lzdGVyIGdsb2JhbCBldmVudCBsaXN0ZW5lcmAgbWV0aG9kIG9m
IHRoZSBkZXZpY2VzIEFQSSBub3RpZmllcyBhIAorcmVnaXN0ZXJlZCBsaXN0ZW5lciB1cG9uIGds
b2JhbCBkZXZpY2UgZXZlbnRzLiBJdCB1c2VzIEhUVFAgbG9uZyBwb2xsaW5nIGluIAorc2VuZCB0
aGUgZXZlbnQgdG8gdGhpcyBsaXN0ZW5lciBpbiByZWFsIHRpbWUsIHNvIHVwb24gcmVjZWl2aW5n
IGFuIGV2ZW50LCB0aGUgCitjb25uZWN0aW9uIGhhcyB0byBiZSByZWVzdGFibGlzaGVkIGJ5IHRo
ZSBjbGllbnQgdG8gcmVjZWl2ZSBmdXJ0aGVyIGV2ZW50cy4KKworIyMgSFRUUCBSZXF1ZXN0CisK
K2BHRVQgL2FwaS9kZXZpY2VzL2V2ZW50c2AKKworIyMgUXVlcnkgUGFyYW1ldGVycworCit8IFBh
cmFtZXRlciAgICAgICAgfCBEZXNjaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRXhhbXBsZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
fAorfCBgZGV2aWNlX3Rva2VuYCAgIHwgVGhlIHRva2VuIG9mIHRoZSBkZXZpY2Ugd2hpY2ggcGVy
Zm9ybWVkIHRoZSByZXF1ZXN0LiAoT3B0aW9uYWwpICBMZXRzIHRoZSBzZXJ2ZXIga25vdyB0aGUg
cmVnaXN0ZXJlZCBkZXZpY2UgaXMgc3RpbGwgYWN0aXZlLiB8IGBkZXZpY2VfdG9rZW49N2RhZmVl
YzAtYzM1MS0xMWU5LTg0YzUtM2QxZWRlMmU3ZDJlYCB8CisKKyMjIFJlc3BvbnNlIFBheWxvYWQK
KworYGBganNvbgoreworICAgICJ0eXBlIjogIjxTdHJpbmc+IiwKKyAgICAiZGF0YSI6ICI8QW55
PiIKK30KK2BgYAorCistICoqdHlwZSoqIGRlZmluZXMgd2hhdCB0eXBlIG9mIGV2ZW50IGhhcyBi
ZWVuIHRyaWdnZXJlZC4KKy0gKipkYXRhKiogY29udGFpbnMgdGhlIGV2ZW50IHNwZWNpZmljIHBh
eWxvYWQuCisKKyMjIEV2ZW50IFR5cGVzCisKK1NlZSBbZ2xvYmFsIGV2ZW50c10oLi9ldmVudC10
eXBlcy5tZCNnbG9iYWwpCisKKyMjIEV4YW1wbGUKKworKipSZXF1ZXN0OioqCisKK2BHRVQgL2Fw
aS9kZXZpY2VzL2V2ZW50c2AKKworKipSZXNwb25zZToqKgorCitgYGBqc29uCit7CisgICAgInR5
cGUiOiAiZGV2aWNlX2FkZGVkIiwKKyAgICAiZGF0YSI6IHsKKyAgICAgICAgInRva2VuIjogIjFk
OWY1ZDMwLTgzMGYtMTFlYS04ZGNiLTAwMjFjY2Q3NjE1MiIsCisgICAgICAgICJ1c2VyX2FnZW50
IjogIk1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChL
SFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzgxLjAuNDA0NC4xMTMgU2FmYXJpLzUzNy4zNiIsCisg
ICAgICAgICJsYXN0X2FjdGl2ZSI6IDE1ODczOTExNTMyOTUsCisgICAgICAgICJuYW1lIjogIkNo
cm9tZSA4MS4wLjQwNDQiCisgICAgfQorfQorYGBgCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1h
cGkvZGV2aWNlcy1hcGkvcmVnaXN0ZXIubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWdp
c3Rlci5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZGVlM2I0NzQyYTZhZDU5NWYyMWMwMDFmYzE2MmUzOWIzMTE5
NzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvcmVnaXN0ZXIu
bWQKQEAgLTAsMCArMSw1MiBAQAorIyBgcmVnaXN0ZXIgZXZlbnQgbGlzdGVuZXJgIC0gW0Rldmlj
ZXMgQVBJXSguLi9SRUFETUUubWQjZGV2aWNlcy1hcGkpCisKK1RoZSBgcmVnaXN0ZXIgZXZlbnQg
bGlzdGVuZXJgIG1ldGhvZCBvZiB0aGUgZGV2aWNlcyBBUEkgbm90aWZpZXMgYSByZWdpc3RlcmVk
IAorbGlzdGVuZXIgdXBvbiBkZXZpY2Ugc3BlY2lmaWMgZXZlbnRzLiBJdCB1c2VzIEhUVFAgbG9u
ZyBwb2xsaW5nIGluIHNlbmQgdGhlIAorZXZlbnQgdG8gdGhpcyBsaXN0ZW5lciBpbiByZWFsIHRp
bWUsIHNvIHVwb24gcmVjZWl2aW5nIGFuIGV2ZW50LCB0aGUgCitjb25uZWN0aW9uIGhhcyB0byBi
ZSByZWVzdGFibGlzaGVkIGJ5IHRoZSBjbGllbnQgdG8gcmVjZWl2ZSBmdXJ0aGVyIGV2ZW50cy4K
KworIyMgSFRUUCBSZXF1ZXN0CisKK2BHRVQgL2FwaS9kZXZpY2VzLzxkZXZpY2VfdG9rZW4+L2V2
ZW50c2AKKworIyMgUXVlcnkgUGFyYW1ldGVycworCit8IFBhcmFtZXRlciAgICAgICAgfCBEZXNj
aXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgRXhhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwKK3wgLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAorfCBgZGV2aWNlX3Rva2VuYCAg
IHwgVGhlIHRva2VuIG9mIHRoZSBkZXZpY2Ugd2hpY2ggcGVyZm9ybWVkIHRoZSByZXF1ZXN0LiAo
T3B0aW9uYWwpICBMZXRzIHRoZSBzZXJ2ZXIga25vdyB0aGUgcmVnaXN0ZXJlZCBkZXZpY2UgaXMg
c3RpbGwgYWN0aXZlLiB8IGBkZXZpY2VfdG9rZW49N2RhZmVlYzAtYzM1MS0xMWU5LTg0YzUtM2Qx
ZWRlMmU3ZDJlYCB8CisKKyMjIFJlc3BvbnNlIFBheWxvYWQKKworYGBganNvbgoreworICAgICJ0
eXBlIjogIjxTdHJpbmc+IiwKKyAgICAiZGF0YSI6ICI8QW55PiIKK30KK2BgYAorCistICoqdHlw
ZSoqIGRlZmluZXMgd2hhdCB0eXBlIG9mIGV2ZW50IGhhcyBiZWVuIHRyaWdnZXJlZC4KKy0gKipk
YXRhKiogY29udGFpbnMgdGhlIGV2ZW50IHNwZWNpZmljIHBheWxvYWQuCisKKyMjIEV2ZW50IFR5
cGVzCisKKyMjIyBTdGFydCBzZXNzaW9uCisKK1NlZSBbZGV2aWNlIHNwZWNpZmljIGV2ZW50c10o
Li9ldmVudC10eXBlcy5tZCNkZXZpY2Utc3BlY2lmaWMpCisKKyMjIEV4YW1wbGUKKworKipSZXF1
ZXN0OioqCisKK2BHRVQgL2FwaS9kZXZpY2VzLzFkOWY1ZDMwLTgzMGYtMTFlYS04ZGNiLTAwMjFj
Y2Q3NjE1Mi9ldmVudHNgCisKKyoqUmVzcG9uc2U6KioKKworYGBganNvbgoreworICAgICJ0eXBl
IjogInN0YXJ0X3Nlc3Npb24iLAorICAgICJkYXRhIjogeworICAgICAgInNlc3Npb25fdG9rZW4i
OiAiOTc0Yzg0ZTAtYzM1ZC0xMWU5LThmOGQtNDdiYjViYjAwMzdkIgorICAgIH0KK30KK2BgYAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9zZW5kLWV2ZW50Lm1kIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
cmVzdC1hcGkvZGV2aWNlcy1hcGkvc2VuZC1ldmVudC5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWM3NGFlYzVj
NWI3ZWZlN2Q1NmE1Y2QwMTQ2MWNiMzFhZTUwYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvZGV2aWNlcy1hcGkvc2VuZC1ldmVudC5tZApAQCAtMCwwICsxLDQzIEBACisjIGBzZW5k
IGV2ZW50YCAtIFtEZXZpY2VzIEFQSV0oLi4vUkVBRE1FLm1kI2RldmljZXMtYXBpKQorCitUaGUg
YHNlbmQgZXZlbnRgIG1ldGhvZCBvZiB0aGUgZGV2aWNlcyBBUEkgZW5hYmxlcyBzZW5kaW5nIGFu
IGV2ZW50IHRvIAorbGlzdGVuZXJzIG9mIHNwZWNpZmljIGRldmljZXMgZXZlbnRzLgorCisjIyBI
VFRQIFJlcXVlc3QKKworYFBPU1QgL2FwaS9kZXZpY2VzLzxkZXZpY2VfdG9rZW4+L2V2ZW50c2AK
KworIyMgUmVxdWVzdCBQYXlsb2FkCisKK2BgYGpzb24KK3sKKyAgICAidHlwZSI6ICI8U3RyaW5n
PiIsCisgICAgImRhdGEiOiAiPEFueT4iCit9CitgYGAKKworLSAqKnR5cGUqKiBkZWZpbmVzIHdo
YXQgdHlwZSBvZiBldmVudCBoYXMgYmVlbiB0cmlnZ2VyZWQuCistICoqZGF0YSoqIGNvbnRhaW5z
IHRoZSBldmVudCBzcGVjaWZpYyBwYXlsb2FkLgorCisjIyBFdmVudCBUeXBlcworCitTZWUgW2Rl
dmljZSBzcGVjaWZpYyBldmVudHNdKC4vZXZlbnQtdHlwZXMubWQjZGV2aWNlLXNwZWNpZmljKQor
CisjIyBFeGFtcGxlCisKKyoqUmVxdWVzdDoqKgorCitgUE9TVCAvYXBpL2RldmljZXMvMWQ5ZjVk
MzAtODMwZi0xMWVhLThkY2ItMDAyMWNjZDc2MTUyL2V2ZW50c2AKKworYGBganNvbgoreworICAg
ICJ0eXBlIjogInN0YXJ0X3Nlc3Npb24iLAorICAgICJkYXRhIjogeworICAgICAgInNlc3Npb25f
dG9rZW4iOiAiOTc0Yzg0ZTAtYzM1ZC0xMWU5LThmOGQtNDdiYjViYjAwMzdkIgorICAgIH0KK30K
K2BgYAorCisqKlJlc3BvbnNlOioqCisKK2AyMDAgT0tgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFw
aS9kZXZpY2VzLWFwaS9zZW5kLWdsb2JhbC1ldmVudC5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMt
YXBpL3NlbmQtZ2xvYmFsLWV2ZW50Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNTIzOGRjN2Y3NThhOGU1MmU5
YjA4NzY3ZDBlNmEyYzhkMmY5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZp
Y2VzLWFwaS9zZW5kLWdsb2JhbC1ldmVudC5tZApAQCAtMCwwICsxLDQ2IEBACisjIGBzZW5kIGds
b2JhbCBldmVudGAgLSBbRGV2aWNlcyBBUEldKC4uL1JFQURNRS5tZCNkZXZpY2VzLWFwaSkKKwor
VGhlIGBzZW5kIGdsb2JhbCBldmVudGAgbWV0aG9kIG9mIHRoZSBkZXZpY2VzIEFQSSBlbmFibGVz
IHNlbmRpbmcgYW4gZXZlbnQgdG8gCitsaXN0ZW5lcnMgb2YgZ2xvYmFsIGRldmljZSBldmVudHMu
CisKKyMjIEhUVFAgUmVxdWVzdAorCitgUE9TVCAvYXBpL2RldmljZXMvZXZlbnRzYAorCisjIyBS
ZXF1ZXN0IFBheWxvYWQKKworYGBganNvbgoreworICAgICJ0eXBlIjogIjxTdHJpbmc+IiwKKyAg
ICAiZGF0YSI6ICI8QW55PiIKK30KK2BgYAorCistICoqdHlwZSoqIGRlZmluZXMgd2hhdCB0eXBl
IG9mIGV2ZW50IGhhcyBiZWVuIHRyaWdnZXJlZC4KKy0gKipkYXRhKiogY29udGFpbnMgdGhlIGV2
ZW50IHNwZWNpZmljIHBheWxvYWQuCisKKyMjIEV2ZW50IFR5cGVzCisKK1NlZSBbZ2xvYmFsIGV2
ZW50c10oLi9ldmVudC10eXBlcy5tZCNnbG9iYWwpCisKKyMjIEV4YW1wbGUKKworKipSZXF1ZXN0
OioqCisKK2BQT1NUIC9hcGkvZGV2aWNlcy8xZDlmNWQzMC04MzBmLTExZWEtOGRjYi0wMDIxY2Nk
NzYxNTIvZXZlbnRzYAorCitgYGBqc29uCit7CisgICAgInR5cGUiOiAiZGV2aWNlX2FkZGVkIiwK
KyAgICAiZGF0YSI6IHsKKyAgICAgICAgInRva2VuIjogIjFkOWY1ZDMwLTgzMGYtMTFlYS04ZGNi
LTAwMjFjY2Q3NjE1MiIsCisgICAgICAgICJ1c2VyX2FnZW50IjogIk1vemlsbGEvNS4wIChYMTE7
IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hy
b21lLzgxLjAuNDA0NC4xMTMgU2FmYXJpLzUzNy4zNiIsCisgICAgICAgICJsYXN0X2FjdGl2ZSI6
IDE1ODczOTExNTMyOTUsCisgICAgICAgICJuYW1lIjogIkNocm9tZSA4MS4wLjQwNDQiCisgICAg
fQorfQorYGBgCisKKyoqUmVzcG9uc2U6KioKKworYDIwMCBPS2AKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jl
c3QtYXBpL2dlbmVyYWwtYXBpL3N0YXR1cy5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2dlbmVyYWwtYXBpL3N0
YXR1cy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44YWY1MTAwNjZhNjYzM2YzZmUxNjU4MjJhZTZlMjc3OTAzNWUw
NjFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ2VuZXJhbC1hcGkvc3RhdHVzLm1k
CkBAIC0wLDAgKzEsNDEgQEAKKyMgYHN0YXR1c2AgLSBbR2VuZXJhbCBBUEldKC4uL1JFQURNRS5t
ZCNnZW5lcmFsLWFwaSkKKworVGhlIGBzdGF0dXNgIG1ldGhvZCBpcyB1c2VkIHRvIGVuc3VyZSB0
aGUgc2VydmVyIGlzIHJlYWNoYWJsZSBhbmQgdG8gZGV0ZXJtaW5lIAord2hhdCBmZWF0dXJlcyBv
ZiBkaWZmZXJlbnQgc2VydmVyIEFQSXMgYXJlIGVuYWJsZWQuIAorCisjIyBIVFRQIFJlcXVlc3QK
KworYGBgCitHRVQgL2FwaS9zdGF0dXMKK2BgYAorCisjIyMgUmVzcG9uc2UKKworYGBganNvbgor
eworICAidmVyc2lvbl9zdHJpbmciOiAiU3RyaW5nIiwKKyAgImltcG9ydF9yZXN1bHRzX2VuYWJs
ZWQiOiAiQm9vbGVhbiIsCisgICJyZXBvcnRzX2VuYWJsZWQiOiAiQm9vbGVhbiIsCisgICJyZWFk
X3Nlc3Npb25zX2VuYWJsZWQiOiAiQm9vbGVhbiIKK30KK2BgYAorCistICoqdmVyc2lvbl9zdHJp
bmcqKjogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlci4KKy0gKippbXBvcnRfcmVzdWx0c19lbmFi
bGVkKio6IElmIHRydWUgdGhlIFtgaW1wb3J0IHJlc3VsdGBdKC4uL3Jlc3VsdHMtYXBpL2ltcG9y
dC5tZCkgZW5kcG9pbnQgaXMgYXZhaWxhYmxlCistICoqcmVwb3J0c19lbmFibGVkKio6IElmIHRy
dWUgdGhlIHNlcnZlciB3aWxsIGdlbmVyYXRlIHJlcG9ydHMgZm9yIGNvbXBsZXRlZCBBUElzIGlu
IGEgZ2l2ZW4gdGVzdCBzZXNzaW9uLgorLSAqKnJlYWRfc2Vzc2lvbnNfZW5hYmxlZCoqOiBJZiB0
cnVlIGl0IGlzIHBvc3NpYmxlIHRvIGxpc3QgYWxsIHNlc3Npb25zIHVzaW5nIHRoZSBbYHJlYWQg
c2Vzc2lvbnNgXSguLi9zZXNzaW9ucy1hcGkvcmVhZF9zZXNzaW9ucy5tZCkgZW5kcG9pbnQgb2Yg
dGhlIHNlc3Npb25zIEFQSQorCisjIyBFeGFtcGxlCisKK2BgYAorR0VUIC9hcGkvc3RhdHVzCitg
YGAKKworYGBganNvbgoreworICAidmVyc2lvbl9zdHJpbmciOiAidjIuMC4wIiwKKyAgImltcG9y
dF9yZXN1bHRzX2VuYWJsZWQiOiBmYWxzZSwKKyAgInJlcG9ydHNfZW5hYmxlZCI6IHRydWUsCisg
ICJyZWFkX3Nlc3Npb25zX2VuYWJsZWQiOiBmYWxzZQorfQorYGBgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9y
ZXN0LWFwaS9ndWlkZXMvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ3VpZGVzL1JFQURNRS5tZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMzMxYmI4ZTY2NjMxNzkyMDVhOGZmNDE5MWVjODg3N2Y4MTA1NGNlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ3VpZGVzL1JFQURNRS5tZApAQCAtMCwwICsxLDEw
IEBACisjIFJFU1QgQVBJIEd1aWRlcyAtIFtXQVZFIFRlc3QgUnVubmVyXSguLi8uLi9SRUFETUUu
bWQpCisKK0luIGFkZGl0aW9uIHRvIHRoZSBbUkVTVCBBUEkgZG9jdW1lbnRhdGlvbl0oLi4vUkVB
RE1FLm1kKSwgdGhlc2UgZ3VpZGUgc2hhbGwgCitwcm92aWRlIGEgYmV0dGVyIHVuZGVyc3RhbmRp
bmcgb24gaG93IHRvIHByb3Blcmx5IHVzZSB0aGUgZGlmZmVyZW50IGVuZHBvaW50cy4KKworW1N0
YXJ0aW5nIHNlc3Npb25zIG9uIGEgRFVUIHVzaW5nIHRoZSBkZXZpY2VzIEFQSV0oLi9zZXNzaW9u
LXN0YXJ0LWRldmljZXMtYXBpLm1kKToKK0hvdyB0byByZWdpc3RlciBhIERVVCBhbmQgc3RhcnQg
YSBwcmUtY29uZmlndXJlZCBzZXNzaW9uIG9uIGl0LgorCitbU2VuZGluZyBhbmQgcmVjZWl2aW5n
IHNlc3Npb24gZXZlbnRzXSguL3Nlc3Npb24tZXZlbnRzLm1kKToKK0hvdyB0byByZWdpc3RlciBm
b3Igc2Vzc2lvbiBldmVudHMgYW5kIHB1c2ggZXZlbnRzIHRvIG90aGVyIGxpc3RlbmVycy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2d1aWRlcy9zZXNzaW9uLWV2ZW50cy5tZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3Qt
YXBpL2d1aWRlcy9zZXNzaW9uLWV2ZW50cy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjI3MzdjNjUyMjBmZmI0
ZTc1YTRmNmZiYWYwZjhlOWIxNzEyMjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkv
Z3VpZGVzL3Nlc3Npb24tZXZlbnRzLm1kCkBAIC0wLDAgKzEsNTIgQEAKKyMgU2VuZGluZyBhbmQg
cmVjZWl2aW5nIHNlc3Npb24gZXZlbnRzCisKK1RoZSBzZXNzaW9uIGV2ZW50IGVuZHBvaW50cyBh
bGxvdyB0byBsaXN0ZW4gZm9yIGV2ZW50cyByZWxhdGVkIHRvIGEgc3BlY2lmaWMgCitzZXNzaW9u
IGFuZCB0byBzZW5kIG5ldyBldmVudHMgdG8gYWxsIHJlZ2lzdGVyZWQgbGlzdGVuZXJzLgorCitT
ZWUgYWxsIFtSRVNUIEFQSSBHdWlkZXNdKC4vUkVBRE1FLm1kKS4KKworIyMgUmVnaXN0ZXIgZm9y
IHNlc3Npb24gc3BlY2lmaWMgZXZlbnRzCisKK1RvIHJlY2VpdmUgZXZlbnRzIG9mIGEgc2Vzc2lv
biwgc2ltcGx5IHBlcmZvcm0gYSBHRVQgcmVxdWVzdCB0byB0aGUgZGVzaXJlZCAKK3Nlc3Npb25z
IGV2ZW50IGVuZHBvaW50LiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudCB0byByZWNlaXZlIGFueSBl
dmVudHMgdGhhdCAKK2FyZSByZWxhdGVkIHRvIHRoZSBzZXNzaW9uIHdpdGggdG9rZW4gYDZmZGJk
MWEwLWMzMzktMTFlOS1iNzc1LTZkNDlkZDU2Nzc3MmA6CisKK2BgYAorR0VUIC9fd2F2ZS9hcGkv
c2Vzc2lvbnMvNmZkYmQxYTAtYzMzOS0xMWU5LWI3NzUtNmQ0OWRkNTY3NzcyL2V2ZW50cworYGBg
CisKK2BgYGpzb24KK3sKKyAgInR5cGUiOiAic3RhdHVzIiwKKyAgImRhdGEiOiAicGF1c2VkIgor
fQorYGBgCisKK0FzIHRoaXMgZW5kcG9pbnQgbWFrZXMgdXNlIG9mIHRoZSBIVFRQIGxvbmcgcG9s
bGluZywgeW91IHdpbGwgbm90IGltbWVkaWF0ZWx5IAorcmVjZWl2ZSBhIHJlc3BvbnNlLiBUaGUg
Y29ubmVjdGlvbiBzdGF5cyBvcGVuIGVpdGhlciB1bnRpbCBhbiBldmVudCBnZXRzIAordHJpZ2dl
cmVkLCBpbiB3aGljaCBjYXNlIHRoZSBzZXJ2ZXIgd2lsbCByZXNwb25kIHdpdGggdGhhdCBldmVu
dHMgZGF0YSwgb3IgCit0aGVyZSBpcyBubyBldmVudCB3aXRoaW4gdGhlIHRpbWVvdXQsIHdoaWNo
IHdpbGwgcmV0dXJuIGFuIGVtcHR5IHJlc3BvbnNlLgorCitXaXRoIG9uZSByZXF1ZXN0IG9ubHkg
b25lIGV2ZW50IGNhbiBiZSByZWNlaXZlZC4gVG8gZ2V0IGFueSBmdXJ0aGVyIGV2ZW50cywgCith
ZGRpdGlvbmFsIHJlcXVlc3RzIGFyZSBuZWNlc3NhcnkuIFRvIG5vdCBtaXNzIGFueSBldmVudHMs
IGl0IGlzIGltcG9ydGFudCB0byAKK3BlcmZvcm0gdGhlIG5leHQgcmVxdWVzdCBpbW1lZGlhdGVs
eSBhZnRlciByZWNlaXZpbmcgYSByZXNwb25zZS4KKworIyMgU2VuZGluZyBldmVudHMKKworVG8g
Y3JlYXRlIGEgbmV3IGV2ZW50LCBzaW1wbHkgc2VuZCBhIFBPU1QgcmVxdWVzdCBjb250YWluaW5n
IHRoZSBldmVudCBkYXRhIHRvIAordGhlIGRlc2lyZWQgc2Vzc2lvbnMgZXZlbnQgZW5kcG9pbnQu
IEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byB0cmlnZ2VyIGEgbmV3IAorZXZlbnQgZm9yIGEg
c2Vzc2lvbiB3aXRoIHRva2VuIGA2ZmRiZDFhMC1jMzM5LTExZTktYjc3NS02ZDQ5ZGQ1Njc3NzJg
OgorCitgYGAKK1BPU1QgL193YXZlL2FwaS9zZXNzaW9ucy82ZmRiZDFhMC1jMzM5LTExZTktYjc3
NS02ZDQ5ZGQ1Njc3NzIvZXZlbnRzCitgYGAKKworYGBganNvbgoreworICAidHlwZSI6ICJzdGF0
dXMiLAorICAiZGF0YSI6ICJwYXVzZWQiCit9CitgYGAKKworVGhpcyB3aWxsIGNhdXNlIGFueSBj
bGllbnQsIHRoYXQgY3VycmVudGx5IGhhcyBhIGNvbm5lY3Rpb24gb3BlbiBhcyBkZXNjcmliZWQg
CitpbiB0aGUgcHJlY2VkaW5nIHNlY3Rpb24sIHRvIHJlY2VpdmUgdGhlIHNwZWNpZmllZCBldmVu
dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2d1aWRlcy9zZXNzaW9uLXN0YXJ0LWRldmljZXMt
YXBpLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvZ3VpZGVzL3Nlc3Npb24tc3RhcnQtZGV2aWNlcy1hcGkubWQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTM3NmQzMTYxNzU3ZThhZDhiZDljMmZhMWQxM2QzZDNlYmY5M2U5YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2d1aWRlcy9zZXNzaW9uLXN0YXJ0LWRldmljZXMt
YXBpLm1kCkBAIC0wLDAgKzEsNjAgQEAKKyMgU3RhcnRpbmcgc2Vzc2lvbnMgb24gYSBEVVQgdXNp
bmcgdGhlIGRldmljZXMgQVBJCisKK1NlZSBhbGwgW1JFU1QgQVBJIEd1aWRlc10oLi9SRUFETUUu
bWQpLgorCisjIyBDb25uZWN0aW5nIHRoZSBEVVQKKworVG8gc3RhcnQgYSBzZXNzaW9uIG9uIGEg
RFVUIHVzaW5nIHRoZSBkZXZpY2VzIEFQSSwgZmlyc3QgcmVnaXN0ZXIgdGhlIERVVCBhdCAKK3Ro
ZSB0ZXN0IHJ1bm5lci4KKworYGBgCitQT1NUIC9hcGkvZGV2aWNlcworYGBgCisKK2BgYGpzb24K
K3sKKyAgInRva2VuIjogImZhM2ZiMjI2LTk4ZWYtMTFlYS1hMjFkLTAwMjFjY2Q3NjE1MiIKK30K
K2BgYAorCitVc2luZyB0aGUgZGV2aWNlIHRva2VuLCB5b3UgY2FuIGxpc3RlbiBmb3IgYW55IGV2
ZW50cyByZWxhdGVkIHRvIHRoZSBkZXZpY2UuCisKK2BgYAorR0VUIC9hcGkvZGV2aWNlcy9mYTNm
YjIyNi05OGVmLTExZWEtYTIxZC0wMDIxY2NkNzYxNTIvZXZlbnRzCitgYGAKKworT25jZSBhbiBl
dmVudCBvY2N1cnMsIHRoZSByZXNwb25zZSB0byB0aGlzIGNhbGwgd2lsbCBjb250YWluIHRoZSBl
dmVudCBkYXRhLiAKK0lmIG5vIGV2ZW50IG9jY3VycyB1bnRpbCB0aGUgcmVxdWVzdCB0aW1lcyBv
dXQsIHlvdSBoYXZlIHRvIHBlcmZvbSBhbm90aGVyIGNhbGwuCisKK2BgYGpzb24KK3sKKyAgInR5
cGUiOiAic3RhcnRfc2Vzc2lvbiIsCisgICJkYXRhIjogeworICAgICJzZXNzaW9uX3Rva2VuIjog
Ijk4ZWQ0YjhlLTk4ZWQtMTFlYS05ZGU3LTAwMjFjY2Q3NjE1MiIKKyAgfQorfQorYGBgCisKK1Vz
aW5nIHRoaXMgZGF0YSB5b3UgY2FuIHN0YXJ0IHRoZSBzZXNzaW9uIGFuZCBnZXQgdGhlIFVSTCB0
byB0aGUgbmV4dCB0ZXN0IHRvIAorb3Blbi4KKworIyMgVHJpZ2dlcmluZyB0aGUgc2Vzc2lvbiBz
dGFydAorCitPbmNlIGEgZGV2aWNlIGlzIHJlZ2lzdGVyZWQgYW5kIHdhaXRzIGZvciBldmVudHMs
IHlvdSBjYW4gdXNlIHRoZSBkZXZpY2UncyAKK2V2ZW50IGNoYW5uZWwgdG8gcHVzaCBhbiBldmVu
dCB0byBzdGFydCBhIHNlc3Npb24gb24gaXQuCisKK2BgYAorUE9TVCAvYXBpL2RldmljZXMvZmEz
ZmIyMjYtOThlZi0xMWVhLWEyMWQtMDAyMWNjZDc2MTUyL2V2ZW50cworYGBgCisKK2BgYGpzb24K
K3sKKyAgInR5cGUiOiAic3RhcnRfc2Vzc2lvbiIsCisgICJkYXRhIjogeworICAgICJzZXNzaW9u
X3Rva2VuIjogIjk4ZWQ0YjhlLTk4ZWQtMTFlYS05ZGU3LTAwMjFjY2Q3NjE1MiIKKyAgfQorfQor
YGBgCisKK1RoZSBzZXNzaW9uIHJlbGF0ZWQgdG8gdGhlIHByb3ZpZGVkIHRva2VuIGNhbiBiZSBh
IG5ld2x5IGNyZWF0ZWQgb25lIG9yIG1heSAKK2FscmVhZHkgYmUgcnVubmluZy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVz
dWx0cy1hcGkvZG93bmxvYWQubWQKaW5kZXggZjc1MmRmYWE2NmZmY2YyYjY2NzVhMjM0YjhhNTBj
MGJhNTA1YzYyMC4uOGNmYTdlNzUzMWM0NjY2YjQyYTRjMTAzOGM4OTVmZjI4MDM3MDMwMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvZG93bmxvYWQubWQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvcmVzdWx0cy1hcGkvZG93bmxvYWQubWQKQEAgLTcsNyArNyw3IEBAIHRoZSBbYGNyZWF0
ZWBdKC4vY3JlYXRlLm1kKSBtZXRob2Qgb2YgdGhlIHJlc3VsdHMgQVBJLgogIyMgMS4gYGRvd25s
b2FkYAogCiBEb3dubG9hZHMgYWxsIHJlc3VsdHMgb2YgYSBzZXNzaW9uIGFzIFpJUCwgd2hpY2gg
b3RoZXIgaW5zdGFuY2VzIG9mIHRoZSBXTUFTIAotVGVzdCBTdWl0ZSBjYW4gaW1wb3J0LgorVGVz
dCBSdW5uZXIgY2FuIGltcG9ydC4KIAogIyMjIEhUVFAgUmVxdWVzdAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9pbXBvcnQubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFw
aS9pbXBvcnQubWQKaW5kZXggNzUwMjY3NjhmODdiYjI0Nzg5ZTExMThmOWMyZDI0YmZjOTNlMzEz
ZS4uMDhjN2RlNmZmN2JiOWZmM2UwZGM2OWFiNzdmMTMyNWU2MDQ5NjcwNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2Rv
Y3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvaW1wb3J0Lm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3Vs
dHMtYXBpL2ltcG9ydC5tZApAQCAtMSwxNiArMSwxOCBAQAogIyBJbXBvcnQgcmVzdWx0cyAtIFtS
ZXN1bHRzIEFQSV0oLi4vUkVBRE1FLm1kI3Jlc3VsdHMtYXBpKQogCi1JZiBlbmFibGVkLCB0aGUg
V01BUyBUZXN0IFN1aXRlIGNhbiBpbXBvcnQgcmVzdWx0cyBleHBvcnRlZCBieSBhbnkgYXJiaXRy
YXJ5IG90aGVyIGluc3RhbmNlLgorSWYgZW5hYmxlZCwgdGhlIFdNQVMgVGVzdCBSdW5uZXIgY2Fu
IGltcG9ydCByZXN1bHRzIGV4cG9ydGVkIGJ5IGFueSBhcmJpdHJhcnkgb3RoZXIgaW5zdGFuY2Uu
CiAKLSMjIDEuIGBpbXBvcnRgCisjIyAxLiBJbXBvcnQgc2Vzc2lvbgogCi1JbXBvcnQgYSBzZXNz
aW9uJ3MgcmVzdWx0cyBmcm9tIGEgWklQIGZpbGUuCitVcGxvYWQgcmVzdWx0cyBhbmQgY3JlYXRl
IGEgbmV3LCBmaW5pc2hlZCBzZXNzaW9uCiAKICMjIyBIVFRQIFJlcXVlc3QKIAotYFBPU1QgL2Fw
aS9yZXN1bHRzL2ltcG9ydGAKK2BgYAorUE9TVCAvYXBpL3Jlc3VsdHMvaW1wb3J0CitgYGAKIAot
IyMjIEhUVFAgUmVzcG9uc2UKKyMjIyMgSFRUUCBSZXNwb25zZQogCiBJZiBzdWNjZXNzZnVsLCB0
aGUgc2VydmVyIHJlc3BvbmRzIHdpdGggdGhlIHRva2VuIG9mIHRoZSBpbXBvcnRlZCBzZXNzaW9u
OgogCkBAIC0yOCwxOCArMzAsMzcgQEAgSG93ZXZlciwgaWYgYW4gZXJyb3Igb2NjdXJlZCwgdGhl
IHNlcnZlciByZXNwb25kcyB0aGUgZXJyb3IgbWVzc2FnZToKIH0KIGBgYAogCi0jIyAyLiBgaW1w
b3J0IGVuYWJsZWRgCisjIyAyLiBJbXBvcnQgQVBJIHJlc3VsdHMKIAotVG8gY2hlY2sgd2hldGhl
ciBvciBub3QgdGhlIGltcG9ydCBmZWF0dXJlcyBpcyBlbmFibGVkLCB0aGUgYGltcG9ydCBlbmFi
bGVkYCBtZXRob2QgcmV0dXJucyB0aGUgc3RhdGUgYXMgSlNPTi4KK1VwbG9hZCBhIHJlc3VsdHMg
anNvbiBmaWxlIGFuZCBvdmVyd3JpdGUgcmVzdWx0cyBvZiBhIHNwZWNpZmljIEFQSS4KIAogIyMj
IEhUVFAgUmVxdWVzdAogCi1gR0VUIC9hcGkvcmVzdWx0cy9pbXBvcnRgCitgYGAKK1BPU1QgL2Fw
aS9yZXN1bHRzLzxzZXNzaW9uX3Rva2VuPi88YXBpX25hbWU+L2pzb24KK2BgYAogCi0jIyMgUmVz
cG9uc2UKKyMjIyBGaWxlIHN0cnVjdHVyZQogCiBgYGBqc29uCiB7Ci0gICJlbmFibGVkIjogIkJv
b2xlYW4iCisgICJyZXN1bHRzIjogWworICAgIHsKKyAgICAgICJ0ZXN0IjogIlN0cmluZyIsCisg
ICAgICAic3RhdHVzIjogIkVudW1bJ09LJywgJ0VSUk9SJywgJ1RJTUVPVVQnLCAnTk9UX1JVTidd
IiwKKyAgICAgICJtZXNzYWdlIjogIlN0cmluZyIsCisgICAgICAic3VidGVzdHMiOiBbCisgICAg
ICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJTdHJpbmciLAorICAgICAgICAgICJzdGF0dXMiOiAi
RW51bVsnUEFTUycsICdGQUlMJywgJ1RJTUVPVVQnLCAnTk9UX1JVTiddIiwKKyAgICAgICAgICAi
bWVzc2FnZSI6ICJTdHJpbmciCisgICAgICAgIH0KKyAgICAgIF0KKyAgICB9CisgIF0KIH0KIGBg
YAorCisjIyMgSFRUUCBSZXNwb25zZQorCitJZiBzdWNjZXNzZnVsLCB0aGUgc2VydmVyIHJlc3Bv
bmRzIHdpdGggc3RhdHVzIGNvZGUgMjAwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0
cy1hcGkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNiNThhYzdhOGEwNzVhZTcwMTJl
ZGU2ZTNiNmY5ZTdkOGQwNGQ2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBp
L2NvbmZpZy5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL2NyZWF0ZS5tZAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3Qt
YXBpL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvaW1w
b3J0Lm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvcmVhZC1jb21wYWN0Lm1kCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvcmVzdWx0cy1hcGkvcmVhZC5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL3ZpZXcu
bWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9jcmVhdGUubWQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9y
ZXN0LWFwaS9zZXNzaW9ucy1hcGkvY3JlYXRlLm1kCmluZGV4IGVhZjAwYWMxNjY5MDAyOThlZjA3
ZmM4YzY3OTEwMjZhYzc0MWFhMDAuLjg2YzA2NzRhZmRlYTJjZGE0YTdkMWI4MWRhM2RmMzk1NTAz
NzUyNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9jcmVhdGUubWQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL2NyZWF0ZS5tZApAQCAtMjEsMTIgKzIxLDEzIEBA
IFRoZSBgY3JlYXRlYCBtZXRob2Qgb2YgdGhlIHNlc3Npb25zIEFQSSBjcmVhdGVzIGEgbmV3IHNl
c3Npb24uIElmIHByb3ZpZGVkIHdpdGgKICAgICAiPHRlc3RfcGF0aD4iOiAiSW50ZWdlciIKICAg
fSwKICAgInJlZmVyZW5jZV90b2tlbnMiOiAiQXJyYXk8U3RyaW5nPiIsCi0gICJsYWJlbHMiOiAi
QXJyYXk8U3RyaW5nPiIKKyAgImxhYmVscyI6ICJBcnJheTxTdHJpbmc+IiwKKyAgInR5cGUiOiAi
U3RyaW5nIgogfQogYGBgCiAKIC0gKip0ZXN0cyoqIHNwZWNpZmllcyB0aGUgdGVzdHMgb2YgdGhl
IHNlc3Npb246Ci0gIC0gKippbmNsdWRlKiogc3BlY2lmaWVzIHdoYXQgdGVzdHMgc2hvdWxkIGJl
IHNlbGVjdGVkIGZyb20gYWxsIGF2YWlsYWJsZSB0ZXN0cy4gQ2FuIGJlIGEgcGF0aCB0byBhIHRl
c3QgZmlsZSBvciBkaXJlY3RvcnkuCisgIC0gKippbmNsdWRlKiogc3BlY2lmaWVzIHdoYXQgdGVz
dHMgc2hvdWxkIGJlIHNlbGVjdGVkIGZyb20gYWxsIGF2YWlsYWJsZSB0ZXN0cy4gQ2FuIGJlIGEg
cGF0aCB0byBhIHRlc3QgZmlsZSBvciBkaXJlY3RvcnkuIFByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRl
cnMgd2lsbCBiZSBhZGRlZCB0byBhbGwgbWF0Y2hpbmcgdGVzdCB1cmxzLgogICAtICoqZXhjbHVk
ZSoqIHNwZWNpZmllcyB3aGF0IHRlc3RzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIGluY2x1
ZGVkIHRlc3RzLiBDYW4gYmUgYSBwYXRoIHRvIGEgdGVzdCBmaWxlIG9yIGRpcmVjdG9yeS4KIC0g
Kip0eXBlcyoqIHdoYXQgdHlwZXMgb2YgdGVzdHMgc2hvdWxkIGJlIGluY2x1ZGVkLiBQb3NzaWJs
ZSB2YWx1ZXM6CiAgIC0gKiphdXRvbWF0aWMqKiB0ZXN0cyBhcmUgdGVzdHMgdGhhdCBleGVjdXRl
IHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KQEAgLTM3LDYgKzM4LDcgQEAgVGhlIGBjcmVhdGVg
IG1ldGhvZCBvZiB0aGUgc2Vzc2lvbnMgQVBJIGNyZWF0ZXMgYSBuZXcgc2Vzc2lvbi4gSWYgcHJv
dmlkZWQgd2l0aAogICAtICoqY3VzdG9tIHRlc3QgcGF0aHMqKjogU2V0IHRoZSB0aW1lb3V0IGZv
ciBhIHRlc3QgZmlsZSBvciBkaXJlY3RvcnkgYnkgcHV0dGluZyB0aGUgcGF0aCB3aXRoIGFsbCBk
b3RzIHJlbW92ZWQgYXMgdGhlIGtleS4KIC0gKipyZWZlcmVuY2VfdG9rZW5zKiogc3BlY2lmaWVz
IGEgc2V0IG9mIGNvbXBsZXRlZCBzZXNzaW9ucyB0aGF0IGlzIHVzZWQgdG8gZmlsdGVyIG91dCBh
bGwgdGVzdHMgdGhhdCBoYXZlIG5vdCBwYXNzZWQgaW4gYWxsIHRob3NlIHNlc3Npb25zIGZyb20g
dGhlIHNlc3Npb24gdGhhdCBpcyBnb2luZyB0byBiZSBjcmVhdGVkLgogLSAqKmxhYmVscyoqIHNw
ZWNpZmllcyB0aGUgaW5pdGlhbCBzZXQgb2YgbGFiZWxzIGZvciB0aGUgc2Vzc2lvbi4KKy0gKip0
eXBlKiogc3BlY2lmaWVzIHRoZSBzZXNzaW9uIHR5cGUgdG8gdHJpZ2dlciB0eXBlIHNwZWNpZmlj
IGJlaGF2aW91ciBsaWtlIGRpZmZlcmVudCBjb250cm9sIHBhZ2VzLgogCiAjIyMgRGVmYXVsdAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvZXZlbnQtdHlwZXMubWQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvZXZlbnQtdHlwZXMubWQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU1ZTBh
MTIyYmI5MmZlMmVjODI3YzRmMzhhZDNlMjI1NjA5YmNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9ldmVudC10eXBlcy5tZApAQCAtMCwwICsxLDI3IEBACisj
IFNlc3Npb24gRXZlbnQgVHlwZXMgLSBbU2Vzc2lvbnMgQVBJXSguLi9SRUFETUUubWQjc2Vzc2lv
bnMtYXBpKQorCitTZXNzaW9uIGV2ZW50cyBhcmUgZXZlbnRzIHRoYXQgYXJlIHRyaWdnZXJlZCBi
eSBhY3Rpb25zIHJlbGF0ZWQgdG8gc2Vzc2lvbnMuIAorVGhlIFtgZXZlbnRgXSguL2V2ZW50cy5t
ZCkgZnVuY3Rpb25zIG9mIHRoZSBzZXNzaW9ucyBBUEkgbWFrZSB1c2Ugb2YgdGhlc2UgZXZlbnRz
LgorCisjIyBTdGF0dXMgY2hhbmdlCisKKyoqVHlwZSBpZGVudGlmaWVyKio6IGBzdGF0dXNgICAK
KyoqUGF5bG9hZCoqOiBgIjxTdHJpbmc+ImAgIAorUG9zc2libGUgVmFsdWVzOiBgcGF1c2VkYCwg
YHJ1bm5pbmdgLCBgY29tcGxldGVkYCwgYGFib3J0ZWRgICAKKyoqRGVzY3JpcHRpb24qKjogVHJp
Z2dlcmVkIG9uY2UgdGhlIHN0YXR1cyBvZiB0aGUgc2Vzc2lvbiBjaGFuZ2VzLgorCisjIyBSZXN1
bWUgCisKKyoqVHlwZSBpZGVudGlmaWVyKio6IGByZXN1bWVgICAKKyoqUGF5bG9hZCoqOiBgIjxT
dHJpbmc+ImAgIAorQ29udGFpbnMgdGhlIHRva2VuIG9mIHRoZSBzZXNzaW9uIHRvIHJlc3VtZS4g
IAorKipEZXNjcmlwdGlvbioqOiBUcmlnZ2VyZWQgd2hlbiBhIHNwZWNpZmljIHNlc3Npb24gaXMg
c3VwcG9zZWQgdG8gYmUgcmVzdW1lZC4gCitUaGlzIHdpbGwgZGlzY2FyZCB0aGUgY3VycmVudCBz
ZXNzaW9uIGFuZCBjb250aW51ZSBleGVjdXRpbmcgdGhlIHNlc3Npb24gd2l0aCAKK3RoZSBwcm92
aWRlZCB0b2tlbi4KKworIyMgVGVzdCBDb21wbGV0ZWQgCisKKyoqVHlwZSBpZGVudGlmaWVyKio6
IGB0ZXN0X2NvbXBsZXRlZGAgIAorKipQYXlsb2FkKio6IGAiPFN0cmluZz4iYCAgCitDb250YWlu
cyB0aGUgdGVzdCBjYXNlIHRoYXQgY29tcGxldGVkLiAgCisqKkRlc2NyaXB0aW9uKio6IFRyaWdn
ZXJlZCB3aGVuIHRoZSB0ZXN0IHJ1bm5lciByZWNlaXZlZCBhIHJlc3VsdCBmb3IgYSB0ZXN0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL2V2ZW50cy5tZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3Qt
YXBpL3Nlc3Npb25zLWFwaS9ldmVudHMubWQKaW5kZXggZTIxNDhiMWRkMzYyMDAxNzI1MjhiY2Jh
ZmM1MTA5ODNlNjg5ZDI0YS4uYzFiNjkzYzg4YzU5MjExZWZkMzAzYmFhZGU1OTQ5ZTQyYTAxNWM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL2V2ZW50cy5tZAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvZXZlbnRzLm1kCkBAIC0xLDEyICsxLDg0IEBACiAjIGBl
dmVudHNgIC0gW1Nlc3Npb25zIEFQSV0oLi4vUkVBRE1FLm1kI3Nlc3Npb25zLWFwaSkKIAorU2Vz
c2lvbiBldmVudHMgY2FuIGJlIHVzZWQgdG8gc2VuZCBtZXNzYWdlcyByZWxhdGVkIHRvIGEgc3Bl
Y2lmaWMgc2Vzc2lvbiBmb3IKK290aGVycyB0byByZWNlaXZlLiBUaGlzIGNhbiBpbmNsdWRlIHN0
YXR1cyB1cGRhdGVzIG9yIGFjdGlvbiB0aGF0IHJ1bm5pbmcKK3Nlc3Npb24gcmVhY3Qgb24uCisK
K0ZvciBwb3NzaWJsZSBldmVudHMgc2VlIFtTZXNzaW9uIEV2ZW50IFR5cGVzXSguL2V2ZW50LXR5
cGVzLm1kKQorCisjIyAxLiBgbGlzdGVuIGV2ZW50c2AKKwogTGlzdGVuIGZvciBzZXNzaW9uIHNw
ZWNpZmljIGV2ZW50cyBieSByZWdpc3RlcmluZyBvbiB0aGUgYGV2ZW50c2AgZW5kcG9pbnQgdXNp
bmcgSFRUUCBsb25nIHBvbGxpbmcuCiAKLSMjIEhUVFAgUmVxdWVzdAorIyMjIEhUVFAgUmVxdWVz
dAorCitgYGAKK0dFVCAvYXBpL3Nlc3Npb25zLzx0b2tlbj4vZXZlbnRzCitgYGAKKworIyMjIFF1
ZXJ5IFBhcmFtZXRlcnMKKworfCBQYXJhbWV0ZXIgICAgfCBEZXNjaXB0aW9uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCBEZWZhdWx0IHwgRXhhbXBsZSAgICAgICAgfAorfCAtLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gfCAtLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0gfAorfCBgbGFzdF9ldmVudGAg
fCBUaGUgbnVtYmVyIG9mIHRoZSBsYXN0IHJlY2VpdmVkIGV2ZW50LiBBbGwgZXZlbnRzIHRoYXQg
YXJlIG5ld2VyIHRoYW4gYGxhc3RfZXZlbnRgIGFyZSByZXR1cm5lZCBpbW1lZGlhdGVseS4gSWYg
dGhlcmUgYXJlIG5vIG5ld2VyIGV2ZW50cywgY29ubmVjdGlvbiBzdGF5cyBvcGVuIHVudGlsIGEg
bmV3IGV2ZW50IGlzIHRyaWdnZXJlZC4gfCBOb25lICAgIHwgYGxhc3RfZXZlbnQ9NWAgfAorCisj
IyMjIFJlc3BvbnNlIFBheWxvYWQKKworYGBganNvbgorWworICB7CisgICAgInR5cGUiOiAiU3Ry
aW5nIiwKKyAgICAiZGF0YSI6ICJTdHJpbmciLAorICAgICJudW1iZXIiOiAiTnVtYmVyIgorICB9
LAorICAuLi4KK10KK2BgYAorCistICoqdHlwZSoqOiB0aGUgdHlwZSBvZiBldmVudCB0aGF0IG9j
Y3VycmVkLgorLSAqKmRhdGEqKjogdGhlIGFjdHVhbCBwYXlsb2FkIG9mIHRoZSBldmVudAorLSAq
Km51bWJlcioqOiB0aGUgbnVtYmVyIG9mIHRoZSBldmVudAorCisjIyMjIEV4YW1wbGUKKworYGBg
CitHRVQgL2FwaS9zZXNzaW9ucy82ZmRiZDFhMC1jMzM5LTExZTktYjc3NS02ZDQ5ZGQ1Njc3NzIv
ZXZlbnRzP2xhc3RfZXZlbnQ9OAorYGBgCisKK2BgYGpzb24KK1sKKyAgeworICAgICJ0eXBlIjog
InN0YXR1cyIsCisgICAgImRhdGEiOiAicGF1c2VkIiwKKyAgICAibnVtYmVyIjogOQorICB9LAor
ICB7CisgICAgInR5cGUiOiAic3RhdHVzIiwKKyAgICAiZGF0YSI6ICJydW5uaW5nIiwKKyAgICAi
bnVtYmVyIjogMTAKKyAgfSwKKyAgeworICAgICJ0eXBlIjogInN0YXR1cyIsCisgICAgImRhdGEi
OiAicGF1c2VkIiwKKyAgICAibnVtYmVyIjogMTEKKyAgfSwKKyAgeworICAgICJ0eXBlIjogInN0
YXR1cyIsCisgICAgImRhdGEiOiAicnVubmluZyIsCisgICAgIm51bWJlciI6IDEyCisgIH0KK10K
K2BgYAorCisjIyAyLiBgcHVzaCBldmVudHNgCiAKLWBHRVQgL2FwaS9zZXNzaW9ucy88dG9rZW4+
L2V2ZW50c2AKK1B1c2ggc2Vzc2lvbiBzcGVjaWZpYyBldmVudHMgZm9yIGFueSByZWdpc3RlcmVk
IGxpc3RlbmVycyB0byByZWNlaXZlLgogCi0jIyBSZXNwb25zZSBQYXlsb2FkCisjIyMgSFRUUCBS
ZXF1ZXN0CisKK2BgYAorUE9TVCAvYXBpL3Nlc3Npb25zLzx0b2tlbj4vZXZlbnRzCitgYGAKIAog
YGBganNvbgogewpAQCAtMTgsMTMgKzkwLDExIEBAIExpc3RlbiBmb3Igc2Vzc2lvbiBzcGVjaWZp
YyBldmVudHMgYnkgcmVnaXN0ZXJpbmcgb24gdGhlIGBldmVudHNgIGVuZHBvaW50IHVzaW5nCiAt
ICoqdHlwZSoqOiB0aGUgdHlwZSBvZiBldmVudCB0aGF0IG9jY3VycmVkLgogLSAqKmRhdGEqKjog
dGhlIGFjdHVhbCBwYXlsb2FkIG9mIHRoZSBldmVudAogCi0jIyBFeGFtcGxlCi0KLSoqUmVxdWVz
dCoqCisjIyMjIEV4YW1wbGUKIAotYEdFVCAvYXBpL3Nlc3Npb25zLzZmZGJkMWEwLWMzMzktMTFl
OS1iNzc1LTZkNDlkZDU2Nzc3Mi9ldmVudHNgCi0KLSoqUmVzcG9uc2UqKgorYGBgCitQT1NUIC9h
cGkvc2Vzc2lvbnMvNmZkYmQxYTAtYzMzOS0xMWU5LWI3NzUtNmQ0OWRkNTY3NzcyL2V2ZW50cwor
YGBgCiAKIGBgYGpzb24KIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9y
ZWFkLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWQubWQKaW5kZXggZGE0YjU3Mzc3
YTYxZmMzODI4ZmE1MDgwZTlkY2QwZmVlZmUyMDBlMS4uNGVjOWMzZjYzZjVkZTFmMTVjNDY1ZDcy
NTFmZDExMjgxZGQ0MWZlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3Jl
YWQubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWQubWQKQEAgLTEsNCArMSw0
IEBACi0jIGByZWFkYCAtIFtTZXNzaW9ucyBBUEldKC4uL1JFQURNRS5tZCNzZXNzaW9ucy1hcGkp
CisjIGByZWFkIHNlc3Npb25gIC0gW1Nlc3Npb25zIEFQSV0oLi4vUkVBRE1FLm1kI3Nlc3Npb25z
LWFwaSkKIAogVGhlIGByZWFkYCBtZXRob2Qgb2YgdGhlIHNlc3Npb25zIEFQSSBmZXRjaGVzIHRo
ZSBjb25maWd1cmF0aW9uIG9mIGEgc2Vzc2lvbiwgaW5jbHVkaW5nIHZhbHVlcyB0aGF0IGNhbiBu
b3QgYmUgc2V0IGJ5IHRoZSB1c2VyLCBidXQgYXJlIGNyZWF0ZWQgYnkgdGhlIHNlcnZlciB1cG9u
IGNyZWF0aW9uLgogCkBAIC0yNyw3ICsyNyw5IEBAIFRoZSBgcmVhZGAgbWV0aG9kIG9mIHRoZSBz
ZXNzaW9ucyBBUEkgZmV0Y2hlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBhIHNlc3Npb24sIGluCiAg
ICAgIm5hbWUiOiAiU3RyaW5nIiwKICAgICAidmVyc2lvbiI6ICJTdHJpbmciCiAgIH0sCi0gICJp
c19wdWJsaWMiOiAiQm9vbGVhbiIKKyAgImlzX3B1YmxpYyI6ICJCb29sZWFuIiwKKyAgImRhdGVf
Y3JlYXRlZCI6ICJTdHJpbmciLAorICAibGFiZWxzIjogIkFycmF5PFN0cmluZz4iCiB9CiBgYGAK
IApAQCAtNDgsNiArNTAsOCBAQCBUaGUgYHJlYWRgIG1ldGhvZCBvZiB0aGUgc2Vzc2lvbnMgQVBJ
IGZldGNoZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYSBzZXNzaW9uLCBpbgogICAtICoqbmFtZSoq
OiBUaGUgbmFtZSBvZiB0aGUgYnJvd3Nlci4KICAgLSAqKnZlcnNpb24qKjogVGhlIHZlcnNpb24g
bnVtYmVycyBvZiB0aGUgYnJvd3Nlci4KIC0gKippc19wdWJsaWMqKiBkZWZpbmVzIHdoZXRoZXIg
b3Igbm90IHRoZSBzZXNzaW9uIGlzIGxpc3RlZCB3aGVuIGZldGNoaW5nIHRoZSBsaXN0IG9mIHB1
YmxpYyBzZXNzaW9uIHVzaW5nIFtgcmVhZCBwdWJsaWNgXSguL3JlYWQtcHVibGljLm1kKS4KKy0g
KipkYXRlX2NyZWF0ZWQqKjogVGhlIGRhdGUgdGhlIHNlc3Npb24gd2FzIGNyZWF0ZWQgaW4gSVNP
IDg2MDEgZm9ybWF0LgorLSAqKmxhYmVscyoqOiBBIGxpc3Qgb2YgdGhlIHNlc3Npb25zIGxhYmVs
cy4KIAogIyMgRXhhbXBsZQogCkBAIC03OSw2ICs4Myw4IEBAIFRoZSBgcmVhZGAgbWV0aG9kIG9m
IHRoZSBzZXNzaW9ucyBBUEkgZmV0Y2hlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBhIHNlc3Npb24s
IGluCiAgICAgIm5hbWUiOiAiQ2hyb21pdW0iLAogICAgICJ2ZXJzaW9uIjogIjc2IgogICB9LAot
ICAiaXNfcHVibGljIjogImZhbHNlIgorICAiaXNfcHVibGljIjogImZhbHNlIiwKKyAgImRhdGVf
Y3JlYXRlZCI6ICIyMDIwLTA1LTI1VDExOjM3OjA3IiwKKyAgImxhYmVscyI6IFsibGFiZWxBIiwg
ImxhYmVsQiJdCiB9CiBgYGAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9y
ZWFkX3Nlc3Npb25zLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWRfc2Vzc2lvbnMu
bWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDI5MzcxZjAwNjQ0ODM2YjNkYjIyNzRmNjQxNjkyMGNiZDRlNmUxNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9yZWFkX3Nlc3Npb25z
Lm1kCkBAIC0wLDAgKzEsMTIzIEBACisjIGByZWFkIHNlc3Npb25zYCAtIFtTZXNzaW9ucyBBUEld
KC4uL1JFQURNRS5tZCNzZXNzaW9ucy1hcGkpCisKK1RoZSBgcmVhZCBzZXNzaW9uc2AgbWV0aG9k
IG9mIHRoZSBzZXNzaW9ucyBBUEkgZmV0Y2hlcyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZQorc2Vz
c2lvbidzIHRva2VuIHdpdGggdGhlIG9wdGlvbiBleHBhbmQgdGhlIHJldHVybmVkIGRhdGEgYnkg
YWxsIHJldHJpZXZlZAordG9rZW5zIGNvcnJlc3BvbmRpbmcgc2Vzc2lvbiBjb25maWd1cmF0aW9u
cyBvciBzdGF0dXNlcy4KKworIyMgSFRUUCBSZXF1ZXN0CisKK2BgYAorR0VUIC9hcGkvc2Vzc2lv
bnMKK2BgYAorCisjIyMgUXVlcnkgUGFyYW1ldGVycworCit8IFBhcmFtZXRlciB8IERlc2NyaXB0
aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZWZhdWx0IHwKK3wgLS0tLS0t
LS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0t
LS0gfAorfCBgaW5kZXhgICAgfCBBdCB3aGF0IGluZGV4IG9mIGFsbCBzZXNzaW9uIHRvIHN0YXJ0
IHRoZSByZXR1cm5lZCBsaXN0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgYDBgICAgICB8Cit8IGBjb3VudGAgICB8IEhvdyBtYW55IGVudHJpZXMgdG8gcmV0
dXJuIHN0YXJ0aW5nIGZyb20gYGluZGV4YC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCBgMTBgICAgIHwKK3wgYGV4cGFuZGAgIHwgQ29tbWEgc2Vw
YXJhdGVkIGxpc3Qgb2YgcmVsYXRpb25zIGZyb20gYF9saW5rc2AuIEluY2x1ZGVzIGFkZGl0aW9u
YWwgZGF0YSBpbiB0aGUgYF9lbWJlZGRlZGAgb2JqZWN0LiB8IG5vbmUgICAgfAorCisjIyMgUmVz
cG9uc2UgUGF5bG9hZAorCitgYGAKKzIwMCBPSworQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9q
c29uK2hhbAorYGBgCisKK2BgYGpzb24KK3sKKyAgIl9saW5rcyI6IHsKKyAgICAiPHJlbGF0aW9u
PiI6IHsKKyAgICAgICJocmVmIjogIlN0cmluZyIKKyAgICB9CisgICAgLi4uCisgIH0sCisgICJf
ZW1iZWRkZWQiOiB7CisgICAgIjxyZWxhdGlvbj4iOiAiQXJyYXk8QW55PiIKKyAgICAuLi4KKyAg
fSwKKyAgIml0ZW1zIjogIkFycmF5PFN0cmluZz4iCit9CitgYGAKKworLSAqKlxfbGlua3MqKiBj
b250YWlucyBVUkxzIHRvIHJlbGF0ZWQgZGF0YS4gRm9yIG1vcmUsIHNlZSBbSEFMIFNwZWNmaWNh
dGlvbl0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWtlbGx5LWpzb24taGFsKS4K
Ky0gKipcX2VtYmVkZGVkKiogYWRkaXRpb25hbCBjb250ZW50IHNwZWNpZmllZCBieSBgZXhwYW5k
YCBxdWVyeSBwYXJhbWF0ZXIuIEZvciBtb3JlLCBzZWUgW0hBTCBTcGVjZmljYXRpb25dKGh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1rZWxseS1qc29uLWhhbCkuCistICoqaXRlbXMq
KiBjb250YWlucyB0aGUgcmV0dXJuZWQgbGlzdCBvZiBzZXNzaW9uIHRva2Vucy4KKworIyMgRXhh
bXBsZQorCitgYGAKK0dFVCAvYXBpL3Nlc3Npb25zP2luZGV4PTAmY291bnQ9MyZleHBhbmQ9c3Rh
dHVzCitgYGAKKworYGBgCisyMDAgT0sKK0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbito
YWwKK2BgYAorCitgYGBqc29uCit7CisgICJfbGlua3MiOiB7CisgICAgImZpcnN0IjogeworICAg
ICAgImhyZWYiOiAiL193YXZlL2FwaS9zZXNzaW9ucz9pbmRleD0wJmNvdW50PTMiCisgICAgfSwK
KyAgICAibGFzdCI6IHsKKyAgICAgICJocmVmIjogIi9fd2F2ZS9hcGkvc2Vzc2lvbnM/aW5kZXg9
MzkmY291bnQ9MyIKKyAgICB9LAorICAgICJzZWxmIjogeworICAgICAgImhyZWYiOiAiL193YXZl
L2FwaS9zZXNzaW9ucz9pbmRleD0wJmNvdW50PTMiCisgICAgfSwKKyAgICAibmV4dCI6IHsKKyAg
ICAgICJocmVmIjogIi9fd2F2ZS9hcGkvc2Vzc2lvbnM/aW5kZXg9MyZjb3VudD0zIgorICAgIH0s
CisgICAgImNvbmZpZ3VyYXRpb24iOiB7CisgICAgICAiaHJlZiI6ICIvX3dhdmUvYXBpL3Nlc3Np
b25zL3t0b2tlbn0iLAorICAgICAgInRlbXBsYXRlZCI6IHRydWUKKyAgICB9LAorICAgICJzdGF0
dXMiOiB7CisgICAgICAiaHJlZiI6ICIvX3dhdmUvYXBpL3Nlc3Npb25zL3t0b2tlbn0vc3RhdHVz
IiwKKyAgICAgICJ0ZW1wbGF0ZWQiOiB0cnVlCisgICAgfQorICB9LAorICAiaXRlbXMiOiBbCisg
ICAgIjEzZjgwYzg0LTkwNDYtMTFlYS05YzgwLTAwMjFjY2Q3NjE1MiIsCisgICAgIjM0ZGIwOGU0
LTkwM2ItMTFlYS04OWNlLTAwMjFjY2Q3NjE1MiIsCisgICAgImEzNTVmODQ2LTk0NjUtMTFlYS1h
ZTllLTAwMjFjY2Q3NjE1MiIKKyAgXSwKKyAgIl9lbWJlZGRlZCI6IHsKKyAgICAic3RhdHVzIjog
WworICAgICAgeworICAgICAgICAic3RhdHVzIjogImNvbXBsZXRlZCIsCisgICAgICAgICJleHBp
cmF0aW9uX2RhdGUiOiBudWxsLAorICAgICAgICAibGFiZWxzIjogW10sCisgICAgICAgICJkYXRl
X2ZpbmlzaGVkIjogMTU4ODg0NDE0NTg5Ny4xNTcsCisgICAgICAgICJ0b2tlbiI6ICIxM2Y4MGM4
NC05MDQ2LTExZWEtOWM4MC0wMDIxY2NkNzYxNTIiLAorICAgICAgICAiZGF0ZV9jcmVhdGVkIjog
bnVsbCwKKyAgICAgICAgImRhdGVfc3RhcnRlZCI6IDE1ODg4NDQxMjcwMDAsCisgICAgICAgICJ0
eXBlIjogIndtYXMiCisgICAgICB9LAorICAgICAgeworICAgICAgICAic3RhdHVzIjogImNvbXBs
ZXRlZCIsCisgICAgICAgICJleHBpcmF0aW9uX2RhdGUiOiBudWxsLAorICAgICAgICAibGFiZWxz
IjogW10sCisgICAgICAgICJkYXRlX2ZpbmlzaGVkIjogMTU4ODgzOTgyMjc2OC45NTY4LAorICAg
ICAgICAidG9rZW4iOiAiMzRkYjA4ZTQtOTAzYi0xMWVhLTg5Y2UtMDAyMWNjZDc2MTUyIiwKKyAg
ICAgICAgImRhdGVfY3JlYXRlZCI6IG51bGwsCisgICAgICAgICJkYXRlX3N0YXJ0ZWQiOiAxNTg4
ODM5NTIyMDAwLAorICAgICAgICAidHlwZSI6ICJ3bWFzIgorICAgICAgfSwKKyAgICAgIHsKKyAg
ICAgICAgInN0YXR1cyI6ICJjb21wbGV0ZWQiLAorICAgICAgICAiZXhwaXJhdGlvbl9kYXRlIjog
bnVsbCwKKyAgICAgICAgImxhYmVscyI6IFtdLAorICAgICAgICAiZGF0ZV9maW5pc2hlZCI6IDE1
ODkyOTc0ODUwNjUuMTgwMiwKKyAgICAgICAgInRva2VuIjogImEzNTVmODQ2LTk0NjUtMTFlYS1h
ZTllLTAwMjFjY2Q3NjE1MiIsCisgICAgICAgICJkYXRlX2NyZWF0ZWQiOiBudWxsLAorICAgICAg
ICAiZGF0ZV9zdGFydGVkIjogMTU4OTI5NzQ4NDAwMCwKKyAgICAgICAgInR5cGUiOiAid21hcyIK
KyAgICAgIH0KKyAgICBdCisgIH0KK30KK2BgYApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vz
c2lvbnMtYXBpL3N0YXR1cy5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9zdGF0dXMubWQK
aW5kZXggNGY1MDgzMWFlODQ5NjIzYWE5ZGMzNzRiZTgxMjBlNDNiMGQ5MDNlMi4uYjI2MDRhNDFk
Zjg2MjE1YTA1NzhkNzRkOWQwMDQzZDVhY2ZhYTY2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkv
c2Vzc2lvbnMtYXBpL3N0YXR1cy5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvc3Rh
dHVzLm1kCkBAIC0yNSw5ICsyNSw5IEBAIFRoZSBgc3RhdHVzYCBtZXRob2Qgb2YgdGhlIHJlc3Vs
dHMgQVBJIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBzZXNzaW9ucyBjdXJyCiAgIC0gKipw
YXVzZWQqKjogVGhlIGV4ZWN1dGlvbiBvZiB0ZXN0cyBpbiB0aGlzIHNlc3Npb24gaXMgY3VycmVu
dGx5IHBhdXNlZC4KICAgLSAqKmNvbXBsZXRlZCoqOiBBbGwgdGVzdHMgZmlsZXMgaW5jbHVkZSBp
biB0aGlzIHNlc3Npb24gd2VyZSBleGVjdXRlZCBhbmQgaGF2ZSBhIHJlc3VsdC4KICAgLSAqKmFi
b3J0ZWQqKjogVGhlIHNlc3Npb24gd2FzIGZpbmlzaGVkIGJlZm9yZSBhbGwgdGVzdHMgd2VyZSBl
eGVjdXRlZC4KLS0gKipkYXRlX3N0YXJ0ZWQqKiBjb250YWlucyB0aGUgdGltZSB0aGUgc3RhdHVz
IGNoYW5nZWQgZnJvbSBgUEVORElOR2AgdG8gYFJVTk5JTkdgIGluIHVuaXggZXBvY2ggdGltZSBt
aWxsaXNlY29uZHMuCi0tICoqZGF0ZV9maW5pc2hlZCoqIGNvbnRhaW5zIHRoZSB0aW1lIHRoZSBz
dGF0dXMgY2hhbmdlZCB0byBlaXRoZXIgYENPTVBMRVRFRGAgb3IgYEFCT1JURURgIGluIHVuaXgg
ZXBvY2ggdGltZSBtaWxsaXNlY29uZHMuCi0tICoqZXhwaXJhdGlvbl9kYXRlKiogY29udGFpbnMg
dGhlIHRpbWUgYXQgd2hpY2ggdGhlIHNlc3Npb25zIHdpbGwgYmUgZGVsZXRlZAorLSAqKmRhdGVf
c3RhcnRlZCoqIGNvbnRhaW5zIHRoZSB0aW1lIHRoZSBzdGF0dXMgY2hhbmdlZCBmcm9tIGBQRU5E
SU5HYCB0byBgUlVOTklOR2AgaW4gSVNPIDg2MDEuCistICoqZGF0ZV9maW5pc2hlZCoqIGNvbnRh
aW5zIHRoZSB0aW1lIHRoZSBzdGF0dXMgY2hhbmdlZCB0byBlaXRoZXIgYENPTVBMRVRFRGAgb3Ig
YEFCT1JURURgIGluIElTTyA4NjAxLgorLSAqKmV4cGlyYXRpb25fZGF0ZSoqIGNvbnRhaW5zIHRo
ZSB0aW1lIGF0IHdoaWNoIHRoZSBzZXNzaW9ucyB3aWxsIGJlIGRlbGV0ZWQgaW4gSVNPIDg2MDEu
CiAKICMjIEV4YW1wbGUKIApAQCAtNDEsOCArNDEsOCBAQCBUaGUgYHN0YXR1c2AgbWV0aG9kIG9m
IHRoZSByZXN1bHRzIEFQSSByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgc2Vzc2lvbnMgY3Vy
cgogewogICAidG9rZW4iOiAiZDljYWFhZTAtYzM2Mi0xMWU5LTk0M2YtZWVkYjMwNWYyMmY2IiwK
ICAgInN0YXR1cyI6ICJydW5uaW5nIiwKLSAgImRhdGVfc3RhcnRlZCI6ICIxNTY3NjA2ODc5MjMw
IiwKKyAgImRhdGVfc3RhcnRlZCI6ICIyMDE5LTA5LTA0VDE0OjIxOjE5IiwKICAgImRhdGVfZmlu
aXNoZWQiOiBudWxsLAotICAiZXhwaXJhdGlvbl9kYXRlIjogIjE1Njc2MDcxNzkyMzAiCisgICJl
eHBpcmF0aW9uX2RhdGUiOiAiMjAxOS0wOS0wNFQxNDoyNjoxOSIKIH0KIGBgYApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkv
c2Vzc2lvbnMtYXBpL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmZjBhMGUwNjFhYjcyYThmNDA2ZmQ3NzlmYzgwMmRmYjY0ZTM3OTI0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFw
aS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9k
b2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9jb250cm9sLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lv
bnMtYXBpL2NyZWF0ZS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9kZWxldGUubWQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvZXZlbnRzLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMt
YXBpL2ZpbmQubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvbGFiZWxzLm1kCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWQtcHVibGljLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMt
YXBpL3JlYWQubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvc3RhdHVzLm1kCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvc2Vzc2lvbnMtYXBpL3VwZGF0ZS5tZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvdGVz
dHMtYXBpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvdGVzdHMtYXBpL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGQwYTFlOTNlNWYwZDQzNjU3Mzcx
NmEwMzRlYTFlOGM3MTEyY2ExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Rlc3RzLWFwaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Rlc3RzLWFwaS9yZWFk
LWFsbC5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Rlc3RzLWFwaS9yZWFkLWF2YWlsYWJsZS1hcGlzLm1kCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2Rv
Y3MvcmVzdC1hcGkvdGVzdHMtYXBpL3JlYWQtbGFzdC1jb21wbGV0ZWQubWQKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFw
aS90ZXN0cy1hcGkvcmVhZC1tYWxmdW5jdGlvbmluZy5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Rlc3RzLWFw
aS9yZWFkLW5leHQubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS90ZXN0cy1hcGkvcmVhZC1zZXNzaW9uLm1kCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2Rv
Y3MvcmVzdC1hcGkvdGVzdHMtYXBpL3VwZGF0ZS1tYWxmdW5jdGlvbmluZy5tZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvcmVzdC1hcGkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E3OTJjMDUzZDQ4OTg5YjRmNTkwZmNj
ZDQyZGZmM2Q3OGNhZTdjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZG9jcy9yZXN0LWFwaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL1JFQURNRS5tZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
dXNhZ2UvdXNhZ2UubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy91c2FnZS91c2FnZS5tZAppbmRleCAwMjVlZWFlNDI0ZTA4ZjA5
Y2QzYTQ2OTBiNDAwNDU5ZWNlNzQ2MGM4Li41MGE5OWUwZDVhYTUxZjUyZGU0MDU3NTIzNWE0NDg4
NDY3YjQ0NmUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy91c2FnZS91c2FnZS5tZAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy91c2FnZS91
c2FnZS5tZApAQCAtMSw0ICsxLDExIEBACi0jIFVzYWdlIEd1aWRlIC0gW1dBVkUgVGVzdCBTdWl0
ZV0oLi4vUkVBRE1FLm1kKQorIyBVc2FnZSBHdWlkZSAtIFtXQVZFIFRlc3QgUnVubmVyXSguLi9S
RUFETUUubWQpCisKK1dpdGggV0FWRSBUZXN0IFJ1bm5lciB2MS4wLjAgYWxsIGZpbGVzIGFuZCBS
RVNUIEFQSSBlbmRwb2ludHMgYXJlIHNlcnZlZCB1bmRlciAKK2EgY29uZmlndXJhYmxlIG5hbWVz
cGFjZSwgYnkgZGVmYXVsdCBgL193YXZlL2AsIHdoaWNoIHdpbGwgYmUgdXNlZCBpbiB0aGlzIAor
dXNhZ2UgZ3VpZGUuCisKK0luIHRoaXMgZG9jdW1lbnQgdGhlIHVzYWdlIGlzIGV4cGxhaW5lZCB1
c2luZyBzY3JlZW5zaG90cyBmcm9tIHRoZSBjb250ZXh0IG9mIAordGhlIFdNQVMgcHJvamVjdC4g
SG93ZXZlciwgcHJhY3RpY2VzIGNhbiBiZSBhcHBsaWVkIHRvIGRpZmZlcmVudCBjb250ZXh0cyBh
cyB3ZWxsLgogCiAjIyBDb250ZW50cwogCkBAIC0yNiw3ICszMyw3IEBAIEVhY2ggbmV3IHNlc3Np
b24gaXMgY29uZmlndXJlZCB1c2luZyBzZXZlcmFsIHBhcmFtZXRlcnMgYmVmb3JlIHRoZSBydW4g
c3RhcnRzLgogRXZlcnkgbmV3IHNlc3Npb24gaXMgY3JlYXRlZCBmcm9tIHRoZSBsYW5kaW5nIHBh
Z2UuCiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgYSBuZXcgc2Vzc2lvbiBmcm9tIHRoZSBk
ZXZpY2UgdGhhdCBpcyB0ZXN0ZWQsIGFzIHRoZSB1c2VyIGFnZW50IGlzIHBhcnQgb2YgdGhlIGRp
c3BsYXllZCBpbmZvcm1hdGlvbiwgYXMgd2VsbCBhcyB0aGUgYnJvd3NlciBhbmQgdmVyc2lvbiwg
d2hpY2ggZ2V0cyBwYXJzZWQgZnJvbSBpdC4KIEhvd2V2ZXIsIHRoaXMgZG9lcyBub3QgaW5mbHVl
bmNlIHRoZSBleGVjdXRpb24gb2YgdGVzdHMgb3IgdGhlIGNyZWF0aW9uIG9mIHRlc3QgcmVzdWx0
cy4gIAotVG8gY3JlYXRlIGEgbmV3IHNlc3Npb24sIG9wZW4gdGhlIGxhbmRpbmcgcGFnZSBvbiB0
aGUgVVJJIHBhdGggYC9gLgorVG8gY3JlYXRlIGEgbmV3IHNlc3Npb24sIG9wZW4gdGhlIGxhbmRp
bmcgcGFnZSBvbiB0aGUgVVJJIHBhdGggYC9fd2F2ZS9pbmRleC5odG1sYC4KIAogIVtsYW5kaW5n
X3BhZ2VdCiAKQEAgLTU2LDcgKzYzLDcgQEAgT25seSB0ZXN0cyB0aGF0IGhhdmUgcGFzc2VkIHRo
ZSByZWZlcmVuY2UgdGVzdCBzZXNzaW9uIGluIGFsbCBzZWxlY3RlZCBicm93c2VycwogVGhlIHJl
ZmVyZW5jZSBicm93c2VycyByZXByZXNlbnQgdGhlIHN0YXR1cyBvZiBpbXBsZW1lbnRhdGlvbiBv
ZiBhbGwgV0FWRSBBUElzIGluIG1vZGVybiBkZXNrdG9wIGJyb3dzZXJzLCBhdCBhYm91dCB0aGUg
dGltZSB0aGUgV0FWRSBzcGVjaWZpY2F0aW9uIHdhcyBwdWJsaXNoZWQuICAKIFRvIHN0YXJ0IHRo
ZSBzZXNzaW9uIHByZXNzICJTdGFydCBTZXNzaW9uIiwgbm90ZSB0aGF0IHRoZSBsYW5kaW5nIHBh
Z2UgaGFzIHRvIHN0YXkgb3BlbmVkLCBhcyB0aGUgdGVzdCBhcmUgZ29pbmcgdG8gYmUgZXhlY3V0
ZSBpbiB0aGUgc2FtZSB3aW5kb3cuCiAKLVtUbyB0aGUgdG9wXSgjdXNhZ2UtZ3VpZGUtLS13YXZl
LXRlc3Qtc3VpdGUpCitbVG8gdGhlIHRvcF0oI3VzYWdlLWd1aWRlLS0td2F2ZS10ZXN0LXJ1bm5l
cikKIAogIyMgMS4zIEV4Y2x1ZGUgdGVzdHMKIApAQCAtOTYsMTEgKzEwMywxMSBAQCBFbnRlciB0
aGUgZmlyc3QgZWlnaHQgY2hhcmFjdGVycyBvciBtb3JlIGludG8gdGhlIHRleHQgZmllbGQgbGFi
ZWxsZWQgIlNlc3Npb24gVAogQ2xpY2sgIkFkZCIgdG8gY29uZmlybS4KIFRoZSB0ZXN0cyBzaG91
bGQgbm93IGFwcGVhciBpbiB0aGUgbGlzdCBiZWxvdy4KIAotW1RvIHRoZSB0b3BdKCN1c2FnZS1n
dWlkZS0tLXdhdmUtdGVzdC1zdWl0ZSkKK1tUbyB0aGUgdG9wXSgjdXNhZ2UtZ3VpZGUtLS13YXZl
LXRlc3QtcnVubmVyKQogCiAjIDIuIFJlc3VtaW5nIHRlc3Qgc2Vzc2lvbnMKIAotQ2VydGFpbiB0
ZXN0IGNhc2VzIG1heSBjYXVzZSBzb21lIGRldmljZXMgdG8gY3Jhc2gsIHdoaWNoIG1ha2VzIHRo
ZSB0ZXN0IHN1aXRlIHVuYWJsZSB0byBhdXRvbWF0aWNhbGx5IHJ1biB0aGUgbmV4dCB0ZXN0Lgor
Q2VydGFpbiB0ZXN0IGNhc2VzIG1heSBjYXVzZSBzb21lIGRldmljZXMgdG8gY3Jhc2gsIHdoaWNo
IG1ha2VzIHRoZSB0ZXN0IHJ1bm5lciB1bmFibGUgdG8gYXV0b21hdGljYWxseSBydW4gdGhlIG5l
eHQgdGVzdC4KIEluIHRoaXMgY2FzZSwgZXh0ZXJuYWwgaW50ZXJhY3Rpb24gaXMgbmVjZXNzYXJ5
LgogVG8gYWxsZXZpYXRlIHRoZSBwcm9jZXNzIG9mIHJlc3VtaW5nIHRoZSB0ZXN0IHNlc3Npb24s
IHRoZSBhcmUgdHdvIG1lY2hhbmlzbXMgaW50ZWdyYXRlZCBpbnRvIHRoZSB3ZWIgaW50ZXJmYWNl
IHRoYXQgcmVkdWNlIGludGVyYWN0aW9uIHdpdGggdGhlIGRldmljZSB0byBhIG1pbmltdW0uCiBU
aGVyZSBpcyBhbHNvIGEgbWVjaGFuaXNtIHRoYXQgY2FuIGJlIHVzZWZ1bCBpZiBhIHRlc3QgZnJh
bWV3b3JrIHdpdGggYWNjZXNzIHRvIHRoZSB0ZXN0ZWQgYnJvd3NlciBpcyB1dGlsaXplZC4KQEAg
LTEzMiw5ICsxMzksOSBAQCBUbyBsb2FkIHRoZSBuZXh0IHRlc3Qgb2YgYSBzcGVjaWZpYyBzZXNz
aW9uLCBzaW1wbHkgb3BlbiB0aGUgZm9sbG93aW5nIFVSTDoKIAogRm9yIGV4YW1wbGU6CiAKLWAv
bmV4dC5odG1sP3Rva2VuPTI0ZmNkMzYwLWVmNGQtMTFlOS1hOTVmLWQ2ZTFhZDRjNWZkYmAKK2Av
X3dhdmUvbmV4dC5odG1sP3Rva2VuPTI0ZmNkMzYwLWVmNGQtMTFlOS1hOTVmLWQ2ZTFhZDRjNWZk
YmAKIAotW1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUtdGVzdC1zdWl0ZSkKK1tUbyB0
aGUgdG9wXSgjdXNhZ2UtZ3VpZGUtLS13YXZlLXRlc3QtcnVubmVyKQogCiAjIDMuIE1vbml0b3Jp
bmcgdGVzdCBzZXNzaW9ucwogCkBAIC0xNjcsMTggKzE3NCwxOCBAQCBPbmNlIGFsbCB0ZXN0IGZp
bGVzIG9mIGFuIEFQSSBoYXZlIHJlY2VpdmVkIGEgcmVzdWx0LCBpdCBpcyBwb3NzaWJsZSB0byBk
b3dubG9hZAogCiBCZWxvdyB0aGUgdGFibGUgb2YgQVBJIHJlc3VsdHMsIHRoZXJlIGFyZSBtb3Jl
IG9wdGlvbnMgdG8gZG93bmxvYWQgdGhlIHJlc3VsdHMgb2YgdGhlIHNlc3Npb24uCiBUaGUgZmly
c3Qgb3B0aW9uIGRvd25sb2FkcyB0aGUgcmVzdWx0cyB0aGUgc2FtZSB3YXkgaXQgaXMgcGVyc2lz
dGVkIG9uIHRoZSBzZXJ2ZXJzaWRlLCBhbG9uZyB3aXRoIHNvbWUgbWV0YSBkYXRhLgotVGhpcyBm
b3JtIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGltcG9ydCB0aGUgc2Vzc2lv
biBkZXRhaWxzIHdpdGggdGhlIHJlc3VsdHMgaW50byBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIFdB
VkUgVGVzdCBTdWl0ZS4gIAorVGhpcyBmb3JtIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGlmIHlvdSB3
YW50IHRvIGltcG9ydCB0aGUgc2Vzc2lvbiBkZXRhaWxzIHdpdGggdGhlIHJlc3VsdHMgaW50byBv
dGhlciBpbnN0YW5jZXMgb2YgdGhlIFdBVkUgVGVzdCBSdW5uZXIuICAKIEZ1cnRoZXJtb3JlLCB0
aGVyZSBpcyB0aGUgb3B0aW9uIHRvIGRvd25sb2FkIHRoZSByYXcgcmVzdWx0IGluIEpTT04gZm9y
bWF0IG9mIGFsbCBmaW5pc2hlZCBBUElzLgogVGhpcyB0aGUgc2FtZSBKU09OIHlvdSBnZXQgYnkg
Y2xpY2tpbmcgb24gdGhlICJKU09OIiBidXR0b24gaW4gdGhlIEFQSSByZXN1bHRzIGNvbHVtbiwg
YnV0IG9mIGFsbCBmaW5pc2hlZCBBUElzIGluIGEgWklQIGZpbGUuCiBMYXN0bHksIHlvdSBjYW4g
ZG93bmxvYWQgYSBzdGF0aWMgSFRNTCBwYWdlLCBzaW1pbGlhciB0byB0aGUgcmVzdWx0cyB2aWV3
LiAgCiBGaW5hbGx5LCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIHlvdSBjYW4gZmluZCB0aGUg
bGlzdCBvZiBtYWxmdW5jdGlvbmluZyB0ZXN0cyB0aGF0IGhhdmUgYmVlbiBhZGRlZCBmcm9tIHRo
ZSBsaXN0IG9mIGxhc3QgdGltZWQtb3V0IHRlc3QgZmlsZXMuCiBSZW1vdmUgdGVzdHMgYnkgY2xp
Y2tpbmcgdGhlaXIgY29ycmVzcG9uZGluZyBidXR0b24gd2l0aCB0aGUgdHJhc2hjYW4gaWNvbi4K
IAotW1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUtdGVzdC1zdWl0ZSkKK1tUbyB0aGUg
dG9wXSgjdXNhZ2UtZ3VpZGUtLS13YXZlLXRlc3QtcnVubmVyKQogCiAjIDQuIE1hbmFnaW5nIHRl
c3Qgc2Vzc2lvbnMKIAotVGhlIG92ZXJ2aWV3IHBhZ2UgcHJvdmlkZXMgZmVhdHVyZXMgdGhhdCBo
ZWxwIHRvIG1hbmFnZSBhbmQgb3JnYW5pemUgbXVsdGlwbGUgc2Vzc2lvbnMuIFlvdSBjYW4gYWNj
ZXNzIGl0IGZyb20gdGhlIFVSTCBgL292ZXJ2aWV3Lmh0bWxgLgorVGhlIG92ZXJ2aWV3IHBhZ2Ug
cHJvdmlkZXMgZmVhdHVyZXMgdGhhdCBoZWxwIHRvIG1hbmFnZSBhbmQgb3JnYW5pemUgbXVsdGlw
bGUgc2Vzc2lvbnMuIFlvdSBjYW4gYWNjZXNzIGl0IGZyb20gdGhlIFVSTCBgL193YXZlL292ZXJ2
aWV3Lmh0bWxgLgogCiAhW292ZXJ2aWV3X3BhZ2VdCiAKQEAgLTIwNSw3ICsyMTIsNyBAQCBTb3J0
IHRoZSBsaXN0IG9mIHNlc3Npb25zIGJ5IGNsaWNraW5nIG9uIHRoZSBjb2x1bW4gdG8gZmlsdGVy
IHRoZW0gYnkuCiAKIEFkZCBvbmUgb3IgbW9yZSB0YWdzIHRvIHRoZSBmaWx0ZXIgdG8gY29udmVu
aWVudGx5IGZpbmQgdGhlIHNlc3Npb25zIHlvdSBhcmUgbG9va2luZyBmb3IuIEFkZCBsYWJlbHMg
dG8gc2Vzc2lvbiB3aGVuIGNyZWF0aW5nIHRoZW0gb3IgaW4gdGhlaXIgY29ycmVzcG9uZGluZyBy
ZXN1bHRzIHBhZ2UuCiAKLVtUbyB0aGUgdG9wXSgjdXNhZ2UtZ3VpZGUtLS13YXZlLXRlc3Qtc3Vp
dGUpCitbVG8gdGhlIHRvcF0oI3VzYWdlLWd1aWRlLS0td2F2ZS10ZXN0LXJ1bm5lcikKIAogW2xh
bmRpbmdfcGFnZV06IC4uL3Jlcy9sYW5kaW5nX3BhZ2UuanBnICJMYW5kaW5nIFBhZ2UiCiBbY29u
ZmlndXJhdGlvbl9wYWdlXTogLi4vcmVzL2NvbmZpZ3VyYXRpb25fcGFnZV90b3AuanBnICJDb25m
aWd1cmF0aW9uIFBhZ2UiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy91c2FnZS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3VzYWdlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODMw
NGNkOGIxMmE5MTEzYzY2NWMyZmViYTQ4NTYxMTc0NjI3MGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3VzYWdlL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvdXNhZ2UvdXNhZ2UubWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxOTg1MWJlMDkxY2JkZWVlZWZjNzUyZjk1ZGQ2OTlmOGFk
NzE2MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9SRUFETUUubWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9leHBvcnQvY3NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4cG9ydC9j
c3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ODhkMGRj
MTlmMzJlZmFmNTc2ZjNkNzk1NDBiZWU3ZmJiZDBlOTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2V4cG9ydC9jc3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L2Nzcy9idWxtYS5taW4uY3NzCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4
cG9ydC9jc3MvcmVzdWx0LmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4cG9ydC9saWIvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
ZXhwb3J0L2xpYi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NDYzODE1YzVmZGZlYjE2NmU4MzQ0ZGRlOTdhMTgzYWQ1MGE1N2FjOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L2xpYi93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9leHBvcnQvbGliL3VpLmpzCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4
cG9ydC9saWIvdXRpbHMuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9leHBvcnQvcmVzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4
cG9ydC9yZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5
NzJlMzVkOThlODBlNjQzNmNiZjk2ZDE1OTgzNWIwNjNmZDQwMWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4cG9ydC9yZXMvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L3Jlcy93YXZlbG9nb18y
MDE2LmpwZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL2V4cG9ydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9leHBvcnQvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0N2UyMWY1N2U3YzUwZDkxYWY4
MjI5Y2NiYzhmNGMxYTUzMjk4NDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2V4cG9ydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9leHBvcnQvaW5kZXguaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvbmV0d29yay9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5
MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1Mzkx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvbmV0d29yay9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9fX2luaXRfXy5weQpA
QCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvX19pbml0X18u
cHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUy
OWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBp
L19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0
d29yay9hcGkvYXBpX2hhbmRsZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvYXBpX2hhbmRsZXIucHkKaW5kZXgg
OTg1N2E3YWI3M2ExYTVhYTU3MTVkZjBhZWFlMWYxNzY5MDk0ZTZhOC4uZGEyMTIzNzhjNTc2M2Rk
OTcyZTc0ODVlY2ExNDQ0NDc5NjQ5YjNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL2FwaV9oYW5k
bGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9hcGlfaGFuZGxlci5weQpAQCAtMiw2ICsyLDcgQEAgaW1w
b3J0IGpzb24KIGltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBsb2dnaW5nCisK
IGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xc2wKIAogZ2xvYmFsIGxvZ2dlcgpAQCAt
NTEsMyArNTIsNDYgQEAgY2xhc3MgQXBpSGFuZGxlcihvYmplY3QpOgogICAgICAgICBpbmZvID0g
c3lzLmV4Y19pbmZvKCkKICAgICAgICAgdHJhY2ViYWNrLnByaW50X3RiKGluZm9bMl0pCiAgICAg
ICAgIGxvZ2dlci5lcnJvcigie306IHt9OiB7fSIuZm9ybWF0KG1lc3NhZ2UsIGluZm9bMF0uX19u
YW1lX18sIGluZm9bMV0uYXJnc1swXSkpCisKKyAgICBkZWYgY3JlYXRlX2hhbF9saXN0KHNlbGYs
IGl0ZW1zLCB1cmlzLCBpbmRleCwgY291bnQsIHRvdGFsKToKKyAgICAgICAgaGFsX2xpc3QgPSB7
fQorICAgICAgICBsaW5rcyA9IHt9CisgICAgICAgIGlmIHVyaXMgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBmb3IgcmVsYXRpb24gaW4gdXJpczoKKyAgICAgICAgICAgICAgICBpZiByZWxhdGlv
biA9PSAic2VsZiI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAg
ICAgdXJpID0gdXJpc1tyZWxhdGlvbl0KKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZWQgPSAieyIg
aW4gdXJpCisgICAgICAgICAgICAgICAgbGlua3NbcmVsYXRpb25dID0geyJocmVmIjogdXJpLCAi
dGVtcGxhdGVkIjogdGVtcGxhdGVkfQorCisgICAgICAgICAgICBpZiAic2VsZiIgaW4gdXJpczoK
KyAgICAgICAgICAgICAgICBzZWxmX3VyaSA9IHVyaXNbInNlbGYiXQorICAgICAgICAgICAgICAg
IHNlbGZfdXJpICs9ICI/aW5kZXg9e30mY291bnQ9e30iLmZvcm1hdChpbmRleCwgY291bnQpCisg
ICAgICAgICAgICAgICAgbGlua3NbInNlbGYiXSA9IHsiaHJlZiI6IHNlbGZfdXJpfQorCisgICAg
ICAgICAgICAgICAgZmlyc3RfdXJpID0gdXJpc1sic2VsZiJdCisgICAgICAgICAgICAgICAgZmly
c3RfdXJpICs9ICI/aW5kZXg9e30mY291bnQ9e30iLmZvcm1hdCgwLCBjb3VudCkKKyAgICAgICAg
ICAgICAgICBsaW5rc1siZmlyc3QiXSA9IHsiaHJlZiI6IGZpcnN0X3VyaX0KKworICAgICAgICAg
ICAgICAgIGxhc3RfdXJpID0gdXJpc1sic2VsZiJdCisgICAgICAgICAgICAgICAgbGFzdF91cmkg
Kz0gIj9pbmRleD17fSZjb3VudD17fSIuZm9ybWF0KHRvdGFsIC0gKHRvdGFsICUgY291bnQpLCBj
b3VudCkKKyAgICAgICAgICAgICAgICBsaW5rc1sibGFzdCJdID0geyJocmVmIjogbGFzdF91cml9
CisKKyAgICAgICAgICAgICAgICBpZiBpbmRleCArIGNvdW50IDw9IHRvdGFsOgorICAgICAgICAg
ICAgICAgICAgICBuZXh0X2luZGV4ID0gaW5kZXggKyBjb3VudAorICAgICAgICAgICAgICAgICAg
ICBuZXh0X3VyaSA9IHVyaXNbInNlbGYiXQorICAgICAgICAgICAgICAgICAgICBuZXh0X3VyaSAr
PSAiP2luZGV4PXt9JmNvdW50PXt9Ii5mb3JtYXQobmV4dF9pbmRleCwgY291bnQpCisgICAgICAg
ICAgICAgICAgICAgIGxpbmtzWyJuZXh0Il0gPSB7ImhyZWYiOiBuZXh0X3VyaX0KKworICAgICAg
ICAgICAgICAgIGlmIGluZGV4ICE9IDA6CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2lu
ZGV4ID0gaW5kZXggLSBjb3VudAorICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91c19pbmRl
eCA8IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19pbmRleCA9IDAKKyAgICAg
ICAgICAgICAgICAgICAgcHJldmlvdXNfdXJpID0gdXJpc1sic2VsZiJdCisgICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzX3VyaSArPSAiP2luZGV4PXt9JmNvdW50PXt9Ii5mb3JtYXQocHJldmlv
dXNfaW5kZXgsIGNvdW50KQorICAgICAgICAgICAgICAgICAgICBsaW5rc1sicHJldmlvdXMiXSA9
IHsiaHJlZiI6IHByZXZpb3VzX3VyaX0KKworICAgICAgICBoYWxfbGlzdFsiX2xpbmtzIl0gPSBs
aW5rcworICAgICAgICBoYWxfbGlzdFsiaXRlbXMiXSA9IGl0ZW1zCisKKyAgICAgICAgcmV0dXJu
IGhhbF9saXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvZGV2aWNlc19hcGlfaGFuZGxlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9u
ZXR3b3JrL2FwaS9kZXZpY2VzX2FwaV9oYW5kbGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlOGIwMmJjYTFm
MzdhNzUzZThkM2EwZjllMWM0YmM2NWYwMGFiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9h
cGkvZGV2aWNlc19hcGlfaGFuZGxlci5weQpAQCAtMCwwICsxLDIwMCBAQAoraW1wb3J0IGpzb24K
K2ltcG9ydCB0aHJlYWRpbmcKKworZnJvbSAuYXBpX2hhbmRsZXIgaW1wb3J0IEFwaUhhbmRsZXIK
K2Zyb20gLi4uZGF0YS5odHRwX3BvbGxpbmdfZXZlbnRfbGlzdGVuZXIgaW1wb3J0IEh0dHBQb2xs
aW5nRXZlbnRMaXN0ZW5lcgorZnJvbSAuLi50ZXN0aW5nLmV2ZW50X2Rpc3BhdGNoZXIgaW1wb3J0
IERFVklDRVMKK2Zyb20gLi4udXRpbHMuc2VyaWFsaXplciBpbXBvcnQgc2VyaWFsaXplX2Rldmlj
ZQorZnJvbSAuLi50ZXN0aW5nLmRldmljZXNfbWFuYWdlciBpbXBvcnQgREVWSUNFX1RJTUVPVVQs
IFJFQ09OTkVDVF9USU1FCitmcm9tIC4uLmRhdGEuZXhjZXB0aW9ucy5ub3RfZm91bmRfZXhjZXB0
aW9uIGltcG9ydCBOb3RGb3VuZEV4Y2VwdGlvbgorCisKK2NsYXNzIERldmljZXNBcGlIYW5kbGVy
KEFwaUhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZXZpY2VzX21hbmFnZXIsIGV2
ZW50X2Rpc3BhdGNoZXIsIHdlYl9yb290KToKKyAgICAgICAgc3VwZXIoRGV2aWNlc0FwaUhhbmRs
ZXIsIHNlbGYpLl9faW5pdF9fKHdlYl9yb290KQorICAgICAgICBzZWxmLl9kZXZpY2VzX21hbmFn
ZXIgPSBkZXZpY2VzX21hbmFnZXIKKyAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlciA9IGV2
ZW50X2Rpc3BhdGNoZXIKKworICAgIGRlZiBjcmVhdGVfZGV2aWNlKHNlbGYsIHJlcXVlc3QsIHJl
c3BvbnNlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXNlcl9hZ2VudCA9IHJlcXVlc3Qu
aGVhZGVyc1tiInVzZXItYWdlbnQiXS5kZWNvZGUoInV0Zi04IikKKworICAgICAgICAgICAgZGV2
aWNlID0gc2VsZi5fZGV2aWNlc19tYW5hZ2VyLmNyZWF0ZV9kZXZpY2UodXNlcl9hZ2VudCkKKwor
ICAgICAgICAgICAgc2VsZi5zZW5kX2pzb24oeyJ0b2tlbiI6IGRldmljZS50b2tlbn0sIHJlc3Bv
bnNlKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5oYW5kbGVf
ZXhjZXB0aW9uKCJGYWlsZWQgdG8gY3JlYXRlIGRldmljZSIpCisgICAgICAgICAgICByZXNwb25z
ZS5zdGF0dXMgPSA1MDAKKworICAgIGRlZiByZWFkX2RldmljZShzZWxmLCByZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYucGFyc2Vf
dXJpKHJlcXVlc3QpCisgICAgICAgICAgICB0b2tlbiA9IHVyaV9wYXJ0c1syXQorCisgICAgICAg
ICAgICBkZXZpY2UgPSBzZWxmLl9kZXZpY2VzX21hbmFnZXIucmVhZF9kZXZpY2UodG9rZW4pCisK
KyAgICAgICAgICAgIGRldmljZV9vYmplY3QgPSBzZXJpYWxpemVfZGV2aWNlKGRldmljZSkKKwor
ICAgICAgICAgICAgc2VsZi5zZW5kX2pzb24oZGV2aWNlX29iamVjdCwgcmVzcG9uc2UpCisgICAg
ICAgIGV4Y2VwdCBOb3RGb3VuZEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4
Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgZGV2aWNlIikKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0
YXR1cyA9IDQwNAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5o
YW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBkZXZpY2UiKQorICAgICAgICAgICAgcmVz
cG9uc2Uuc3RhdHVzID0gNTAwCisKKyAgICBkZWYgcmVhZF9kZXZpY2VzKHNlbGYsIHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGV2aWNlcyA9IHNlbGYuX2Rl
dmljZXNfbWFuYWdlci5yZWFkX2RldmljZXMoKQorCisgICAgICAgICAgICBkZXZpY2Vfb2JqZWN0
cyA9IFtdCisgICAgICAgICAgICBmb3IgZGV2aWNlIGluIGRldmljZXM6CisgICAgICAgICAgICAg
ICAgZGV2aWNlX29iamVjdCA9IHNlcmlhbGl6ZV9kZXZpY2UoZGV2aWNlKQorICAgICAgICAgICAg
ICAgIGRldmljZV9vYmplY3RzLmFwcGVuZChkZXZpY2Vfb2JqZWN0KQorCisgICAgICAgICAgICBz
ZWxmLnNlbmRfanNvbihkZXZpY2Vfb2JqZWN0cywgcmVzcG9uc2UpCisgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byBy
ZWFkIGRldmljZXMiKQorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNTAwCisKKyAgICBk
ZWYgcmVnaXN0ZXJfZXZlbnRfbGlzdGVuZXIoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0
KQorICAgICAgICAgICAgdG9rZW4gPSB1cmlfcGFydHNbMl0KKyAgICAgICAgICAgIHF1ZXJ5ID0g
c2VsZi5wYXJzZV9xdWVyeV9wYXJhbWV0ZXJzKHJlcXVlc3QpCisKKyAgICAgICAgICAgIGlmIHUi
ZGV2aWNlX3Rva2VuIiBpbiBxdWVyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9kZXZpY2VzX21h
bmFnZXIucmVmcmVzaF9kZXZpY2UocXVlcnlbImRldmljZV90b2tlbiJdKQorCisgICAgICAgICAg
ICBldmVudCA9IHRocmVhZGluZy5FdmVudCgpCisgICAgICAgICAgICB0aW1lciA9IHRocmVhZGlu
Zy5UaW1lcigKKyAgICAgICAgICAgICAgICAoREVWSUNFX1RJTUVPVVQgLSBSRUNPTk5FQ1RfVElN
RSkgLyAxMDAwLAorICAgICAgICAgICAgICAgIGV2ZW50LnNldCwKKyAgICAgICAgICAgICAgICBb
XSkKKyAgICAgICAgICAgIHRpbWVyLnN0YXJ0KCkKKyAgICAgICAgICAgIGh0dHBfcG9sbGluZ19l
dmVudF9saXN0ZW5lciA9IEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5lcih0b2tlbiwgZXZlbnQpCisg
ICAgICAgICAgICBldmVudF9saXN0ZW5lcl90b2tlbiA9IHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIu
YWRkX2V2ZW50X2xpc3RlbmVyKGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lcikKKworICAgICAg
ICAgICAgZXZlbnQud2FpdCgpCisKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBodHRwX3BvbGxpbmdf
ZXZlbnRfbGlzdGVuZXIubWVzc2FnZQorICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICBzZWxmLnNlbmRfanNvbihkYXRhPW1lc3NhZ2UsIHJlc3BvbnNl
PXJlc3BvbnNlKQorICAgICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5yZW1vdmVfZXZl
bnRfbGlzdGVuZXIoZXZlbnRfbGlzdGVuZXJfdG9rZW4pCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byByZWdpc3Rl
ciBldmVudCBsaXN0ZW5lciIpCisgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKwor
ICAgIGRlZiByZWdpc3Rlcl9nbG9iYWxfZXZlbnRfbGlzdGVuZXIoc2VsZiwgcmVxdWVzdCwgcmVz
cG9uc2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBxdWVyeSA9IHNlbGYucGFyc2VfcXVl
cnlfcGFyYW1ldGVycyhyZXF1ZXN0KQorCisgICAgICAgICAgICBpZiB1ImRldmljZV90b2tlbiIg
aW4gcXVlcnk6CisgICAgICAgICAgICAgICAgc2VsZi5fZGV2aWNlc19tYW5hZ2VyLnJlZnJlc2hf
ZGV2aWNlKHF1ZXJ5WyJkZXZpY2VfdG9rZW4iXSkKKworICAgICAgICAgICAgZXZlbnQgPSB0aHJl
YWRpbmcuRXZlbnQoKQorICAgICAgICAgICAgdGltZXIgPSB0aHJlYWRpbmcuVGltZXIoCisgICAg
ICAgICAgICAgICAgKERFVklDRV9USU1FT1VUIC0gUkVDT05ORUNUX1RJTUUpIC8gMTAwMCwKKyAg
ICAgICAgICAgICAgICBldmVudC5zZXQsCisgICAgICAgICAgICAgICAgW10pCisgICAgICAgICAg
ICB0aW1lci5zdGFydCgpCisgICAgICAgICAgICBodHRwX3BvbGxpbmdfZXZlbnRfbGlzdGVuZXIg
PSBIdHRwUG9sbGluZ0V2ZW50TGlzdGVuZXIoREVWSUNFUywgZXZlbnQpCisgICAgICAgICAgICBl
dmVudF9saXN0ZW5lcl90b2tlbiA9IHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuYWRkX2V2ZW50X2xp
c3RlbmVyKGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lcikKKworICAgICAgICAgICAgZXZlbnQu
d2FpdCgpCisKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBodHRwX3BvbGxpbmdfZXZlbnRfbGlzdGVu
ZXIubWVzc2FnZQorICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICBzZWxmLnNlbmRfanNvbihkYXRhPW1lc3NhZ2UsIHJlc3BvbnNlPXJlc3BvbnNlKQor
ICAgICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5yZW1vdmVfZXZlbnRfbGlzdGVuZXIo
ZXZlbnRfbGlzdGVuZXJfdG9rZW4pCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
ICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24odSJGYWlsZWQgdG8gcmVnaXN0ZXIgZ2xvYmFsIGV2
ZW50IGxpc3RlbmVyIikKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorCisgICAg
ZGVmIHBvc3RfZ2xvYmFsX2V2ZW50KHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgZXZlbnQgPSB7fQorICAgICAgICAgICAgYm9keSA9IHJlcXVlc3Qu
Ym9keS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgICAgIGlmIGJvZHkgIT0gIiI6CisgICAgICAg
ICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWRzKGJvZHkpCisKKyAgICAgICAgICAgIHF1ZXJ5ID0g
c2VsZi5wYXJzZV9xdWVyeV9wYXJhbWV0ZXJzKHJlcXVlc3QpCisgICAgICAgICAgICBpZiB1ImRl
dmljZV90b2tlbiIgaW4gcXVlcnk6CisgICAgICAgICAgICAgICAgc2VsZi5fZGV2aWNlc19tYW5h
Z2VyLnJlZnJlc2hfZGV2aWNlKHF1ZXJ5WyJkZXZpY2VfdG9rZW4iXSkKKworICAgICAgICAgICAg
ZXZlbnRfdHlwZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBldmVudDoKKyAgICAg
ICAgICAgICAgICBldmVudF90eXBlID0gZXZlbnRbInR5cGUiXQorICAgICAgICAgICAgZGF0YSA9
IE5vbmUKKyAgICAgICAgICAgIGlmICJkYXRhIiBpbiBldmVudDoKKyAgICAgICAgICAgICAgICBk
YXRhID0gZXZlbnRbImRhdGEiXQorICAgICAgICAgICAgc2VsZi5fZGV2aWNlc19tYW5hZ2VyLnBv
c3RfZ2xvYmFsX2V2ZW50KGV2ZW50X3R5cGUsIGRhdGEpCisKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHBvc3Qg
Z2xvYmFsIGV2ZW50IikKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorCisgICAg
ZGVmIHBvc3RfZXZlbnQoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQorICAgICAgICAg
ICAgdG9rZW4gPSB1cmlfcGFydHNbMl0KKworICAgICAgICAgICAgZXZlbnQgPSB7fQorICAgICAg
ICAgICAgYm9keSA9IHJlcXVlc3QuYm9keS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgICAgIGlm
IGJvZHkgIT0gIiI6CisgICAgICAgICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWRzKGJvZHkpCisK
KyAgICAgICAgICAgIHF1ZXJ5ID0gc2VsZi5wYXJzZV9xdWVyeV9wYXJhbWV0ZXJzKHJlcXVlc3Qp
CisgICAgICAgICAgICBpZiB1ImRldmljZV90b2tlbiIgaW4gcXVlcnk6CisgICAgICAgICAgICAg
ICAgc2VsZi5fZGV2aWNlc19tYW5hZ2VyLnJlZnJlc2hfZGV2aWNlKHF1ZXJ5WyJkZXZpY2VfdG9r
ZW4iXSkKKworICAgICAgICAgICAgZXZlbnRfdHlwZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJ0
eXBlIiBpbiBldmVudDoKKyAgICAgICAgICAgICAgICBldmVudF90eXBlID0gZXZlbnRbInR5cGUi
XQorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJkYXRhIiBpbiBldmVu
dDoKKyAgICAgICAgICAgICAgICBkYXRhID0gZXZlbnRbImRhdGEiXQorICAgICAgICAgICAgc2Vs
Zi5fZGV2aWNlc19tYW5hZ2VyLnBvc3RfZXZlbnQodG9rZW4sIGV2ZW50X3R5cGUsIGRhdGEpCisK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2Vw
dGlvbigiRmFpbGVkIHRvIHBvc3QgZXZlbnQiKQorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVz
ID0gNTAwCisKKyAgICBkZWYgaGFuZGxlX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2Up
OgorICAgICAgICBtZXRob2QgPSByZXF1ZXN0Lm1ldGhvZAorICAgICAgICB1cmlfcGFydHMgPSBz
ZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQorCisgICAgICAgICMgL2FwaS9kZXZpY2VzCisgICAgICAg
IGlmIGxlbih1cmlfcGFydHMpID09IDI6CisgICAgICAgICAgICBpZiBtZXRob2QgPT0gdSJQT1NU
IjoKKyAgICAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9kZXZpY2UocmVxdWVzdCwgcmVzcG9uc2Up
CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBtZXRob2QgPT0gdSJHRVQi
OgorICAgICAgICAgICAgICAgIHNlbGYucmVhZF9kZXZpY2VzKHJlcXVlc3QsIHJlc3BvbnNlKQor
ICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgL2FwaS9kZXZpY2VzLzxmdW5jdGlv
bj4KKyAgICAgICAgaWYgbGVuKHVyaV9wYXJ0cykgPT0gMzoKKyAgICAgICAgICAgIGZ1bmN0aW9u
ID0gdXJpX3BhcnRzWzJdCisgICAgICAgICAgICBpZiBtZXRob2QgPT0gdSJHRVQiOgorICAgICAg
ICAgICAgICAgIGlmIGZ1bmN0aW9uID09IHUiZXZlbnRzIjoKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5yZWdpc3Rlcl9nbG9iYWxfZXZlbnRfbGlzdGVuZXIocmVxdWVzdCwgcmVzcG9uc2UpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHNlbGYucmVhZF9kZXZp
Y2UocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg
ICBpZiBtZXRob2QgPT0gIlBPU1QiOgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJl
dmVudHMiOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnBvc3RfZ2xvYmFsX2V2ZW50KHJlcXVl
c3QsIHJlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIC9h
cGkvZGV2aWNlcy88dG9rZW4+LzxmdW5jdGlvbj4KKyAgICAgICAgaWYgbGVuKHVyaV9wYXJ0cykg
PT0gNDoKKyAgICAgICAgICAgIGZ1bmN0aW9uID0gdXJpX3BhcnRzWzNdCisgICAgICAgICAgICBp
ZiBtZXRob2QgPT0gdSJHRVQiOgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09IHUiZXZl
bnRzIjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcl9ldmVudF9saXN0ZW5lcihy
ZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg
ICBpZiBtZXRob2QgPT0gIlBPU1QiOgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJl
dmVudHMiOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnBvc3RfZXZlbnQocmVxdWVzdCwgcmVz
cG9uc2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBp
L2dlbmVyYWxfYXBpX2hhbmRsZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvZ2VuZXJhbF9hcGlfaGFuZGxlci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iZDU4OGQxM2U4NWU1YTdlNmQxMjAzODVjMGJlNGY5OTU3Nzg5YmYxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL2dlbmVyYWxfYXBpX2hhbmRsZXIucHkKQEAgLTAs
MCArMSw3NyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitmcm9tIC5hcGlfaGFuZGxlciBp
bXBvcnQgQXBpSGFuZGxlcgorCitUT0tFTl9MRU5HVEggPSAzNgorCisKK2NsYXNzIEdlbmVyYWxB
cGlIYW5kbGVyKEFwaUhhbmRsZXIpOgorICAgIGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwK
KyAgICAgICAgd2ViX3Jvb3QsCisgICAgICAgIHJlYWRfc2Vzc2lvbnNfZW5hYmxlZCwKKyAgICAg
ICAgaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCwKKyAgICAgICAgcmVwb3J0c19lbmFibGVkLAorICAg
ICAgICB2ZXJzaW9uX3N0cmluZywKKyAgICAgICAgdGVzdF90eXBlX3NlbGVjdGlvbl9lbmFibGVk
LAorICAgICAgICB0ZXN0X2ZpbGVfc2VsZWN0aW9uX2VuYWJsZWQKKyAgICApOgorICAgICAgICBz
dXBlcihHZW5lcmFsQXBpSGFuZGxlciwgc2VsZikuX19pbml0X18od2ViX3Jvb3QpCisgICAgICAg
IHNlbGYucmVhZF9zZXNzaW9uc19lbmFibGVkID0gcmVhZF9zZXNzaW9uc19lbmFibGVkCisgICAg
ICAgIHNlbGYuaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCA9IGltcG9ydF9yZXN1bHRzX2VuYWJsZWQK
KyAgICAgICAgc2VsZi5yZXBvcnRzX2VuYWJsZWQgPSByZXBvcnRzX2VuYWJsZWQKKyAgICAgICAg
c2VsZi52ZXJzaW9uX3N0cmluZyA9IHZlcnNpb25fc3RyaW5nCisgICAgICAgIHNlbGYudGVzdF90
eXBlX3NlbGVjdGlvbl9lbmFibGVkID0gdGVzdF90eXBlX3NlbGVjdGlvbl9lbmFibGVkCisgICAg
ICAgIHNlbGYudGVzdF9maWxlX3NlbGVjdGlvbl9lbmFibGVkID0gdGVzdF9maWxlX3NlbGVjdGlv
bl9lbmFibGVkCisKKyAgICBkZWYgcmVhZF9zdGF0dXMoc2VsZik6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgImZvcm1hdCI6ICJhcHBsaWNhdGlv
bi9qc29uIiwKKyAgICAgICAgICAgICAgICAiZGF0YSI6IHsKKyAgICAgICAgICAgICAgICAgICAg
InZlcnNpb25fc3RyaW5nIjogc2VsZi52ZXJzaW9uX3N0cmluZywKKyAgICAgICAgICAgICAgICAg
ICAgInJlYWRfc2Vzc2lvbnNfZW5hYmxlZCI6IHNlbGYucmVhZF9zZXNzaW9uc19lbmFibGVkLAor
ICAgICAgICAgICAgICAgICAgICAiaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCI6IHNlbGYuaW1wb3J0
X3Jlc3VsdHNfZW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgInJlcG9ydHNfZW5hYmxlZCI6
IHNlbGYucmVwb3J0c19lbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAidGVzdF90eXBlX3Nl
bGVjdGlvbl9lbmFibGVkIjogc2VsZi50ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQsCisgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0X2ZpbGVfc2VsZWN0aW9uX2VuYWJsZWQiOiBzZWxmLnRlc3Rf
ZmlsZV9zZWxlY3Rpb25fZW5hYmxlZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2Vw
dGlvbigiRmFpbGVkIHRvIHJlYWQgc2VydmVyIGNvbmZpZ3VyYXRpb24iKQorICAgICAgICAgICAg
cmV0dXJuIHsic3RhdHVzIjogNTAwfQorCisgICAgZGVmIGhhbmRsZV9yZXF1ZXN0KHNlbGYsIHJl
cXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgbWV0aG9kID0gcmVxdWVzdC5tZXRob2QKKyAgICAg
ICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVzdCkKKworICAgICAgICByZXN1bHQg
PSBOb25lCisgICAgICAgICMgL2FwaS88ZnVuY3Rpb24+CisgICAgICAgIGlmIGxlbih1cmlfcGFy
dHMpID09IDI6CisgICAgICAgICAgICBmdW5jdGlvbiA9IHVyaV9wYXJ0c1sxXQorICAgICAgICAg
ICAgaWYgbWV0aG9kID09ICJHRVQiOgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJz
dGF0dXMiOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlYWRfc3RhdHVzKCkK
KworICAgICAgICBpZiByZXN1bHQgaXMgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1
cyA9IDQwNAorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZm9ybWF0ID0gTm9uZQorICAg
ICAgICBpZiAiZm9ybWF0IiBpbiByZXN1bHQ6CisgICAgICAgICAgICBmb3JtYXQgPSByZXN1bHRb
ImZvcm1hdCJdCisgICAgICAgICAgICBpZiBmb3JtYXQgPT0gImFwcGxpY2F0aW9uL2pzb24iOgor
ICAgICAgICAgICAgICAgIGRhdGEgPSBOb25lCisgICAgICAgICAgICAgICAgaWYgImRhdGEiIGlu
IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlc3VsdFsiZGF0YSJdCisgICAg
ICAgICAgICAgICAgc3RhdHVzID0gMjAwCisgICAgICAgICAgICAgICAgaWYgInN0YXR1cyIgaW4g
cmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSByZXN1bHRbInN0YXR1cyJdCisg
ICAgICAgICAgICAgICAgc2VsZi5zZW5kX2pzb24oZGF0YSwgcmVzcG9uc2UsIHN0YXR1cykKKyAg
ICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzdGF0dXMgPSA0MDQKKyAgICAgICAgaWYg
InN0YXR1cyIgaW4gcmVzdWx0OgorICAgICAgICAgICAgc3RhdHVzID0gcmVzdWx0WyJzdGF0dXMi
XQorICAgICAgICByZXNwb25zZS5zdGF0dXMgPSBzdGF0dXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2Fw
aS9yZXN1bHRzX2FwaV9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Jlc3VsdHNfYXBpX2hhbmRsZXIu
cHkKaW5kZXggMjg1ZWZlNTZhODQ1YTBmYzgxYjA5NjI5YzA5ZWUxNjlmNGY1Y2U4Mi4uMWVmYTk4
OGFlNzY0ODViNTg3ZjBkZWRjZWQ2ZTIxMGVlNzAwODc4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBp
L3Jlc3VsdHNfYXBpX2hhbmRsZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Jlc3VsdHNfYXBpX2hhbmRs
ZXIucHkKQEAgLTYsOSArNiwxMCBAQCBmcm9tIC4uLmRhdGEuZXhjZXB0aW9ucy5pbnZhbGlkX2Rh
dGFfZXhjZXB0aW9uIGltcG9ydCBJbnZhbGlkRGF0YUV4Y2VwdGlvbgogCiAKIGNsYXNzIFJlc3Vs
dHNBcGlIYW5kbGVyKEFwaUhhbmRsZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXN1bHRz
X21hbmFnZXIsIHdlYl9yb290KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVzdWx0c19tYW5h
Z2VyLCBzZXNzaW9uX21hbmFnZXIsIHdlYl9yb290KToKICAgICAgICAgc3VwZXIoUmVzdWx0c0Fw
aUhhbmRsZXIsIHNlbGYpLl9faW5pdF9fKHdlYl9yb290KQogICAgICAgICBzZWxmLl9yZXN1bHRz
X21hbmFnZXIgPSByZXN1bHRzX21hbmFnZXIKKyAgICAgICAgc2VsZi5fc2Vzc2lvbnNfbWFuYWdl
ciA9IHNlc3Npb25fbWFuYWdlcgogCiAgICAgZGVmIGNyZWF0ZV9yZXN1bHQoc2VsZiwgcmVxdWVz
dCwgcmVzcG9uc2UpOgogICAgICAgICB0cnk6CkBAIC0zMSw2ICszMiwxMSBAQCBjbGFzcyBSZXN1
bHRzQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYu
cGFyc2VfdXJpKHJlcXVlc3QpCiAgICAgICAgICAgICB0b2tlbiA9IHVyaV9wYXJ0c1syXQogCisg
ICAgICAgICAgICBzZXNzaW9uID0gc2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5yZWFkX3Nlc3Npb24o
dG9rZW4pCisgICAgICAgICAgICBpZiBzZXNzaW9uIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
cmVzcG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAg
ICAgIHJlc3VsdHMgPSBzZWxmLl9yZXN1bHRzX21hbmFnZXIucmVhZF9yZXN1bHRzKHRva2VuKQog
CiAgICAgICAgICAgICBzZWxmLnNlbmRfanNvbihyZXNwb25zZT1yZXNwb25zZSwgZGF0YT1yZXN1
bHRzKQpAQCAtNTIsMTkgKzU4LDYgQEAgY2xhc3MgUmVzdWx0c0FwaUhhbmRsZXIoQXBpSGFuZGxl
cik6CiAgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byByZWFkIGNv
bXBhY3QgcmVzdWx0cyIpCiAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKIAotICAg
IGRlZiByZWFkX3Jlc3VsdHNfY29uZmlnKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0X2VuYWJsZWQgPSBzZWxmLl9yZXN1bHRzX21hbmFn
ZXIuaXNfaW1wb3J0X2VuYWJsZWQoKQotICAgICAgICAgICAgcmVwb3J0c19lbmFibGVkID0gc2Vs
Zi5fcmVzdWx0c19tYW5hZ2VyLmFyZV9yZXBvcnRzX2VuYWJsZWQoKQotCi0gICAgICAgICAgICBz
ZWxmLnNlbmRfanNvbih7Ci0gICAgICAgICAgICAgICAgImltcG9ydF9lbmFibGVkIjogaW1wb3J0
X2VuYWJsZWQsCi0gICAgICAgICAgICAgICAgInJlcG9ydHNfZW5hYmxlZCI6IHJlcG9ydHNfZW5h
YmxlZAotICAgICAgICAgICAgfSwgcmVzcG9uc2UpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
Ci0gICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byByZWFkIHJlc3Vs
dHMgY29uZmlndXJhdGlvbiIpCi0gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKLQog
ICAgIGRlZiByZWFkX3Jlc3VsdHNfYXBpX3dwdF9yZXBvcnRfdXJsKHNlbGYsIHJlcXVlc3QsIHJl
c3BvbnNlKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJz
ZV91cmkocmVxdWVzdCkKQEAgLTExMiw2ICsxMDUsMjAgQEAgY2xhc3MgUmVzdWx0c0FwaUhhbmRs
ZXIoQXBpSGFuZGxlcik6CiAgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxl
ZCB0byBkb3dubG9hZCBhcGkganNvbiIpCiAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1
MDAKIAorICAgIGRlZiBpbXBvcnRfcmVzdWx0c19hcGlfanNvbihzZWxmLCByZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYucGFyc2Vf
dXJpKHJlcXVlc3QpCisgICAgICAgICAgICB0b2tlbiA9IHVyaV9wYXJ0c1syXQorICAgICAgICAg
ICAgYXBpID0gdXJpX3BhcnRzWzNdCisgICAgICAgICAgICBibG9iID0gcmVxdWVzdC5ib2R5CisK
KyAgICAgICAgICAgIHNlbGYuX3Jlc3VsdHNfbWFuYWdlci5pbXBvcnRfcmVzdWx0c19hcGlfanNv
bih0b2tlbiwgYXBpLCBibG9iKQorCisgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSAyMDAK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2Vw
dGlvbigiRmFpbGVkIHRvIHVwbG9hZCBhcGkganNvbiIpCisgICAgICAgICAgICByZXNwb25zZS5z
dGF0dXMgPSA1MDAKKwogICAgIGRlZiBkb3dubG9hZF9yZXN1bHRzX2FsbF9hcGlfanNvbnMoc2Vs
ZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB1cmlfcGFy
dHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQpAQCAtMTgyLDEyICsxODksOCBAQCBjbGFzcyBS
ZXN1bHRzQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgICAgICByZXR1cm4KIAog
ICAgICAgICAgICAgaWYgbWV0aG9kID09ICJHRVQiOgotICAgICAgICAgICAgICAgIGlmIHVyaV9w
YXJ0c1syXSA9PSAiY29uZmlnIjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFkX3Jlc3Vs
dHNfY29uZmlnKHJlcXVlc3QsIHJlc3BvbnNlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnJlYWRfcmVz
dWx0cyhyZXF1ZXN0LCByZXNwb25zZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgICAgICAgICAgc2VsZi5yZWFkX3Jlc3VsdHMocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAg
ICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgIyAvYXBpL3Jlc3VsdHMvPHRva2VuPi88ZnVuY3Rp
b24+CiAgICAgICAgIGlmIGxlbih1cmlfcGFydHMpID09IDQ6CkBAIC0yMTksNSArMjIyLDkgQEAg
Y2xhc3MgUmVzdWx0c0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CiAgICAgICAgICAgICAgICAgaWYg
ZnVuY3Rpb24gPT0gImpzb24iOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmRvd25sb2FkX3Jl
c3VsdHNfYXBpX2pzb24ocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAgICAgaWYgbWV0aG9kID09ICJQT1NUIjoKKyAgICAgICAgICAgICAgICBp
ZiBmdW5jdGlvbiA9PSAianNvbiI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuaW1wb3J0X3Jl
c3VsdHNfYXBpX2pzb24ocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybgogCiAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDQwNApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsv
YXBpL3Nlc3Npb25zX2FwaV9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Nlc3Npb25zX2FwaV9oYW5k
bGVyLnB5CmluZGV4IGM1MDQwYWRkZjcwZDg3M2UwOWFiNTdhNWM0OTVkYWFkMzliMzY2ZjUuLmRm
ZmNhNDNiNzdjNTVjYTI2YTljNmMwMDMzZDRhNjk5MDg3NTM3NjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3Jr
L2FwaS9zZXNzaW9uc19hcGlfaGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvc2Vzc2lvbnNfYXBp
X2hhbmRsZXIucHkKQEAgLTYsMTIxICs2LDE4NyBAQCBmcm9tIC5hcGlfaGFuZGxlciBpbXBvcnQg
QXBpSGFuZGxlcgogZnJvbSAuLi51dGlscy5zZXJpYWxpemVyIGltcG9ydCBzZXJpYWxpemVfc2Vz
c2lvbgogZnJvbSAuLi5kYXRhLmV4Y2VwdGlvbnMubm90X2ZvdW5kX2V4Y2VwdGlvbiBpbXBvcnQg
Tm90Rm91bmRFeGNlcHRpb24KIGZyb20gLi4uZGF0YS5leGNlcHRpb25zLmludmFsaWRfZGF0YV9l
eGNlcHRpb24gaW1wb3J0IEludmFsaWREYXRhRXhjZXB0aW9uCi1mcm9tIC4uLmRhdGEuaHR0cF9w
b2xsaW5nX2NsaWVudCBpbXBvcnQgSHR0cFBvbGxpbmdDbGllbnQKK2Zyb20gLi4uZGF0YS5odHRw
X3BvbGxpbmdfZXZlbnRfbGlzdGVuZXIgaW1wb3J0IEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5lcgog
CiBUT0tFTl9MRU5HVEggPSAzNgogCiAKIGNsYXNzIFNlc3Npb25zQXBpSGFuZGxlcihBcGlIYW5k
bGVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbnNfbWFuYWdlciwgcmVzdWx0c19t
YW5hZ2VyLCBldmVudF9kaXNwYXRjaGVyLCB3ZWJfcm9vdCk6CisgICAgZGVmIF9faW5pdF9fKAor
ICAgICAgICBzZWxmLAorICAgICAgICBzZXNzaW9uc19tYW5hZ2VyLAorICAgICAgICByZXN1bHRz
X21hbmFnZXIsCisgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXIsCisgICAgICAgIHdlYl9yb290LAor
ICAgICAgICByZWFkX3Nlc3Npb25zX2VuYWJsZWQKKyAgICApOgogICAgICAgICBzdXBlcihTZXNz
aW9uc0FwaUhhbmRsZXIsIHNlbGYpLl9faW5pdF9fKHdlYl9yb290KQogICAgICAgICBzZWxmLl9z
ZXNzaW9uc19tYW5hZ2VyID0gc2Vzc2lvbnNfbWFuYWdlcgogICAgICAgICBzZWxmLl9yZXN1bHRz
X21hbmFnZXIgPSByZXN1bHRzX21hbmFnZXIKICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hl
ciA9IGV2ZW50X2Rpc3BhdGNoZXIKKyAgICAgICAgc2VsZi5fcmVhZF9zZXNzaW9uc19lbmFibGVk
ID0gcmVhZF9zZXNzaW9uc19lbmFibGVkCiAKLSAgICBkZWYgY3JlYXRlX3Nlc3Npb24oc2VsZiwg
cmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGRlZiBjcmVhdGVfc2Vzc2lvbihzZWxmLCBib2R5LCBo
ZWFkZXJzKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgY29uZmlnID0ge30KLSAgICAgICAg
ICAgIGJvZHkgPSByZXF1ZXN0LmJvZHkuZGVjb2RlKCJ1dGYtOCIpCisgICAgICAgICAgICBib2R5
ID0gYm9keS5kZWNvZGUoInV0Zi04IikKICAgICAgICAgICAgIGlmIGJvZHkgIT0gIiI6CiAgICAg
ICAgICAgICAgICAgY29uZmlnID0ganNvbi5sb2Fkcyhib2R5KQogICAgICAgICAgICAgdGVzdHMg
PSB7fQogICAgICAgICAgICAgaWYgInRlc3RzIiBpbiBjb25maWc6CiAgICAgICAgICAgICAgICAg
dGVzdHMgPSBjb25maWdbInRlc3RzIl0KLSAgICAgICAgICAgIHR5cGVzID0gTm9uZQorICAgICAg
ICAgICAgdGVzdF90eXBlcyA9IE5vbmUKICAgICAgICAgICAgIGlmICJ0eXBlcyIgaW4gY29uZmln
OgotICAgICAgICAgICAgICAgIHR5cGVzID0gY29uZmlnWyJ0eXBlcyJdCisgICAgICAgICAgICAg
ICAgdGVzdF90eXBlcyA9IGNvbmZpZ1sidHlwZXMiXQogICAgICAgICAgICAgdGltZW91dHMgPSB7
fQogICAgICAgICAgICAgaWYgInRpbWVvdXRzIiBpbiBjb25maWc6CiAgICAgICAgICAgICAgICAg
dGltZW91dHMgPSBjb25maWdbInRpbWVvdXRzIl0KICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tl
bnMgPSBbXQogICAgICAgICAgICAgaWYgInJlZmVyZW5jZV90b2tlbnMiIGluIGNvbmZpZzoKICAg
ICAgICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5zID0gY29uZmlnWyJyZWZlcmVuY2VfdG9rZW5z
Il0KLSAgICAgICAgICAgIHdlYmhvb2tfdXJscyA9IFtdCi0gICAgICAgICAgICBpZiAid2ViaG9v
a191cmxzIiBpbiBjb25maWc6Ci0gICAgICAgICAgICAgICAgd2ViaG9va191cmxzID0gY29uZmln
WyJ3ZWJob29rX3VybHMiXQotICAgICAgICAgICAgdXNlcl9hZ2VudCA9IHJlcXVlc3QuaGVhZGVy
c1tiInVzZXItYWdlbnQiXS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgICAgIHVzZXJfYWdlbnQg
PSBoZWFkZXJzW2IidXNlci1hZ2VudCJdLmRlY29kZSgidXRmLTgiKQogICAgICAgICAgICAgbGFi
ZWxzID0gW10KICAgICAgICAgICAgIGlmICJsYWJlbHMiIGluIGNvbmZpZzoKICAgICAgICAgICAg
ICAgICBsYWJlbHMgPSBjb25maWdbImxhYmVscyJdCiAgICAgICAgICAgICBleHBpcmF0aW9uX2Rh
dGUgPSBOb25lCiAgICAgICAgICAgICBpZiAiZXhwaXJhdGlvbl9kYXRlIiBpbiBjb25maWc6CiAg
ICAgICAgICAgICAgICAgZXhwaXJhdGlvbl9kYXRlID0gY29uZmlnWyJleHBpcmF0aW9uX2RhdGUi
XQorICAgICAgICAgICAgdHlwZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBjb25m
aWc6CisgICAgICAgICAgICAgICAgdHlwZSA9IGNvbmZpZ1sidHlwZSJdCiAKICAgICAgICAgICAg
IHNlc3Npb24gPSBzZWxmLl9zZXNzaW9uc19tYW5hZ2VyLmNyZWF0ZV9zZXNzaW9uKAogICAgICAg
ICAgICAgICAgIHRlc3RzLAotICAgICAgICAgICAgICAgIHR5cGVzLAorICAgICAgICAgICAgICAg
IHRlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgdGltZW91dHMsCiAgICAgICAgICAgICAgICAg
cmVmZXJlbmNlX3Rva2VucywKLSAgICAgICAgICAgICAgICB3ZWJob29rX3VybHMsCiAgICAgICAg
ICAgICAgICAgdXNlcl9hZ2VudCwKICAgICAgICAgICAgICAgICBsYWJlbHMsCi0gICAgICAgICAg
ICAgICAgZXhwaXJhdGlvbl9kYXRlCisgICAgICAgICAgICAgICAgZXhwaXJhdGlvbl9kYXRlLAor
ICAgICAgICAgICAgICAgIHR5cGUKICAgICAgICAgICAgICkKIAotICAgICAgICAgICAgc2VsZi5z
ZW5kX2pzb24oeyJ0b2tlbiI6IHNlc3Npb24udG9rZW59LCByZXNwb25zZSkKKyAgICAgICAgICAg
IHJldHVybiB7CisgICAgICAgICAgICAgICAgImZvcm1hdCI6ICJhcHBsaWNhdGlvbi9qc29uIiwK
KyAgICAgICAgICAgICAgICAiZGF0YSI6IHsidG9rZW4iOiBzZXNzaW9uLnRva2VufQorICAgICAg
ICAgICAgfQorCiAgICAgICAgIGV4Y2VwdCBJbnZhbGlkRGF0YUV4Y2VwdGlvbjoKICAgICAgICAg
ICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIGNyZWF0ZSBzZXNzaW9uIikKLSAg
ICAgICAgICAgIHNlbGYuc2VuZF9qc29uKHsiZXJyb3IiOiAiSW52YWxpZCBpbnB1dCBkYXRhISJ9
LCByZXNwb25zZSwgNDAwKQorICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAi
Zm9ybWF0IjogImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICJkYXRhIjogeyJl
cnJvciI6ICJJbnZhbGlkIGlucHV0IGRhdGEhIn0sCisgICAgICAgICAgICAgICAgInN0YXR1cyI6
IDQwMAorICAgICAgICAgICAgfQogCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAg
ICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byBjcmVhdGUgc2Vzc2lvbiIpCi0g
ICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKyAgICAgICAgICAgIHJldHVybiB7InN0
YXR1cyI6IDUwMH0KIAotICAgIGRlZiByZWFkX3Nlc3Npb24oc2VsZiwgcmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGRlZiByZWFkX3Nlc3Npb24oc2VsZiwgdG9rZW4pOgogICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQotICAgICAgICAg
ICAgdG9rZW4gPSB1cmlfcGFydHNbMl0KIAogICAgICAgICAgICAgc2Vzc2lvbiA9IHNlbGYuX3Nl
c3Npb25zX21hbmFnZXIucmVhZF9zZXNzaW9uKHRva2VuKQogICAgICAgICAgICAgaWYgc2Vzc2lv
biBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDQwNAotICAgICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJldHVybiB7InN0YXR1cyI6IDQwNH0K
IAogICAgICAgICAgICAgZGF0YSA9IHNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb24pCiAKLSAgICAg
ICAgICAgIGRlbCBkYXRhWyJwZW5kaW5nX3Rlc3RzIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJy
dW5uaW5nX3Rlc3RzIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJtYWxmdW5jdGlvbmluZ190ZXN0
cyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsidGVzdF9zdGF0ZSJdCi0gICAgICAgICAgICBkZWwg
ZGF0YVsiZGF0ZV9zdGFydGVkIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJkYXRlX2ZpbmlzaGVk
Il0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJzdGF0dXMiXQotCi0gICAgICAgICAgICBzZWxmLnNl
bmRfanNvbihkYXRhLCByZXNwb25zZSkKKyAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgImZvcm1hdCI6ICJhcHBsaWNhdGlvbi9qc29uIiwKKyAgICAgICAgICAgICAgICAiZGF0
YSI6IHsKKyAgICAgICAgICAgICAgICAgICAgInRva2VuIjogZGF0YVsidG9rZW4iXSwKKyAgICAg
ICAgICAgICAgICAgICAgInRlc3RzIjogZGF0YVsidGVzdHMiXSwKKyAgICAgICAgICAgICAgICAg
ICAgInR5cGVzIjogZGF0YVsidHlwZXMiXSwKKyAgICAgICAgICAgICAgICAgICAgInRpbWVvdXRz
IjogZGF0YVsidGltZW91dHMiXSwKKyAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZV90b2tl
bnMiOiBkYXRhWyJyZWZlcmVuY2VfdG9rZW5zIl0sCisgICAgICAgICAgICAgICAgICAgICJ1c2Vy
X2FnZW50IjogZGF0YVsidXNlcl9hZ2VudCJdLAorICAgICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6IGRhdGFbImJyb3dzZXIiXSwKKyAgICAgICAgICAgICAgICAgICAgImlzX3B1YmxpYyI6IGRh
dGFbImlzX3B1YmxpYyJdLAorICAgICAgICAgICAgICAgICAgICAiZGF0ZV9jcmVhdGVkIjogZGF0
YVsiZGF0ZV9jcmVhdGVkIl0sCisgICAgICAgICAgICAgICAgICAgICJsYWJlbHMiOiBkYXRhWyJs
YWJlbHMiXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRv
IHJlYWQgc2Vzc2lvbiIpCi0gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKyAgICAg
ICAgICAgIHJldHVybiB7InN0YXR1cyI6IDUwMH0KIAotICAgIGRlZiByZWFkX3Nlc3Npb25fc3Rh
dHVzKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBkZWYgcmVhZF9zZXNzaW9ucyhzZWxm
LCBxdWVyeV9wYXJhbWV0ZXJzLCB1cmlfcGF0aCk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAg
IHVyaV9wYXJ0cyA9IHNlbGYucGFyc2VfdXJpKHJlcXVlc3QpCi0gICAgICAgICAgICB0b2tlbiA9
IHVyaV9wYXJ0c1syXQorICAgICAgICAgICAgaW5kZXggPSAwCisgICAgICAgICAgICBpZiAiaW5k
ZXgiIGluIHF1ZXJ5X3BhcmFtZXRlcnM6CisgICAgICAgICAgICAgICAgaW5kZXggPSBpbnQocXVl
cnlfcGFyYW1ldGVyc1siaW5kZXgiXSkKKyAgICAgICAgICAgIGNvdW50ID0gMTAKKyAgICAgICAg
ICAgIGlmICJjb3VudCIgaW4gcXVlcnlfcGFyYW1ldGVyczoKKyAgICAgICAgICAgICAgICBjb3Vu
dCA9IGludChxdWVyeV9wYXJhbWV0ZXJzWyJjb3VudCJdKQorICAgICAgICAgICAgZXhwYW5kID0g
W10KKyAgICAgICAgICAgIGlmICJleHBhbmQiIGluIHF1ZXJ5X3BhcmFtZXRlcnM6CisgICAgICAg
ICAgICAgICAgZXhwYW5kID0gcXVlcnlfcGFyYW1ldGVyc1siZXhwYW5kIl0uc3BsaXQoIiwiKQor
CisgICAgICAgICAgICBzZXNzaW9uX3Rva2VucyA9IHNlbGYuX3Nlc3Npb25zX21hbmFnZXIucmVh
ZF9zZXNzaW9ucyhpbmRleD1pbmRleCwgY291bnQ9Y291bnQpCisgICAgICAgICAgICB0b3RhbF9z
ZXNzaW9ucyA9IHNlbGYuX3Nlc3Npb25zX21hbmFnZXIuZ2V0X3RvdGFsX3Nlc3Npb25zKCkKKwor
ICAgICAgICAgICAgZW1iZWRkZWQgPSB7fQorCisgICAgICAgICAgICBmb3IgcmVsYXRpb24gaW4g
ZXhwYW5kOgorICAgICAgICAgICAgICAgIGlmIHJlbGF0aW9uID09ICJjb25maWd1cmF0aW9uIjoK
KyAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMgPSBbXQorICAgICAgICAgICAgICAg
ICAgICBmb3IgdG9rZW4gaW4gc2Vzc2lvbl90b2tlbnM6CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHQgPSBzZWxmLnJlYWRfc2Vzc2lvbih0b2tlbikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICJzdGF0dXMiIGluIHJlc3VsdCBhbmQgcmVzdWx0WyJzdGF0dXMiXSAhPSAyMDA6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb25zLmFwcGVuZChyZXN1bHRbImRhdGEiXSkKKyAgICAgICAgICAgICAg
ICAgICAgZW1iZWRkZWRbImNvbmZpZ3VyYXRpb24iXSA9IGNvbmZpZ3VyYXRpb25zCisKKyAgICAg
ICAgICAgICAgICBpZiByZWxhdGlvbiA9PSAic3RhdHVzIjoKKyAgICAgICAgICAgICAgICAgICAg
c3RhdHVzZXMgPSBbXQorICAgICAgICAgICAgICAgICAgICBmb3IgdG9rZW4gaW4gc2Vzc2lvbl90
b2tlbnM6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlYWRfc2Vzc2lv
bl9zdGF0dXModG9rZW4pCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAic3RhdHVzIiBpbiBy
ZXN1bHQgYW5kIHJlc3VsdFsic3RhdHVzIl0gIT0gMjAwOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNlcy5hcHBlbmQo
cmVzdWx0WyJkYXRhIl0pCisgICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkWyJzdGF0dXMiXSA9
IHN0YXR1c2VzCisKKyAgICAgICAgICAgIHVyaXMgPSB7CisgICAgICAgICAgICAgICAgInNlbGYi
OiB1cmlfcGF0aCwKKyAgICAgICAgICAgICAgICAiY29uZmlndXJhdGlvbiI6IHNlbGYuX3dlYl9y
b290ICsgImFwaS9zZXNzaW9ucy97dG9rZW59IiwKKyAgICAgICAgICAgICAgICAic3RhdHVzIjog
c2VsZi5fd2ViX3Jvb3QgKyAiYXBpL3Nlc3Npb25zL3t0b2tlbn0vc3RhdHVzIgorICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBkYXRhID0gc2VsZi5jcmVhdGVfaGFsX2xpc3Qoc2Vzc2lvbl90
b2tlbnMsIHVyaXMsIGluZGV4LCBjb3VudCwgdG90YWw9dG90YWxfc2Vzc2lvbnMpCisKKyAgICAg
ICAgICAgIGlmIGxlbihlbWJlZGRlZCkgPiAwOgorICAgICAgICAgICAgICAgIGRhdGFbIl9lbWJl
ZGRlZCJdID0gZW1iZWRkZWQKKworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAg
ICAiZm9ybWF0IjogImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICJkYXRhIjog
ZGF0YQorICAgICAgICAgICAgfQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAg
ICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBzZXNzaW9uIikKKyAgICAg
ICAgICAgIHJldHVybiB7InN0YXR1cyI6IDUwMH0KIAorICAgIGRlZiByZWFkX3Nlc3Npb25fc3Rh
dHVzKHNlbGYsIHRva2VuKToKKyAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2Vzc2lvbiA9IHNl
bGYuX3Nlc3Npb25zX21hbmFnZXIucmVhZF9zZXNzaW9uX3N0YXR1cyh0b2tlbikKICAgICAgICAg
ICAgIGlmIHNlc3Npb24gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMg
PSA0MDQKLSAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICByZXR1cm4geyJz
dGF0dXMiOiA0MDR9CisKICAgICAgICAgICAgIGRhdGEgPSBzZXJpYWxpemVfc2Vzc2lvbihzZXNz
aW9uKQogCi0gICAgICAgICAgICBkZWwgZGF0YVsidGVzdHMiXQotICAgICAgICAgICAgZGVsIGRh
dGFbInBlbmRpbmdfdGVzdHMiXQotICAgICAgICAgICAgZGVsIGRhdGFbInJ1bm5pbmdfdGVzdHMi
XQotICAgICAgICAgICAgZGVsIGRhdGFbIm1hbGZ1bmN0aW9uaW5nX3Rlc3RzIl0KLSAgICAgICAg
ICAgIGRlbCBkYXRhWyJ0eXBlcyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsidGVzdF9zdGF0ZSJd
Ci0gICAgICAgICAgICBkZWwgZGF0YVsibGFzdF9jb21wbGV0ZWRfdGVzdCJdCi0gICAgICAgICAg
ICBkZWwgZGF0YVsidXNlcl9hZ2VudCJdCi0gICAgICAgICAgICBkZWwgZGF0YVsidGltZW91dHMi
XQotICAgICAgICAgICAgZGVsIGRhdGFbImJyb3dzZXIiXQotICAgICAgICAgICAgZGVsIGRhdGFb
ImlzX3B1YmxpYyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsicmVmZXJlbmNlX3Rva2VucyJdCi0g
ICAgICAgICAgICBkZWwgZGF0YVsid2ViaG9va191cmxzIl0KLQotICAgICAgICAgICAgc2VsZi5z
ZW5kX2pzb24oZGF0YSwgcmVzcG9uc2UpCisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgICAgICJmb3JtYXQiOiAiYXBwbGljYXRpb24vanNvbiIsCisgICAgICAgICAgICAgICAgImRh
dGEiOiB7CisgICAgICAgICAgICAgICAgICAgICJ0b2tlbiI6IGRhdGFbInRva2VuIl0sCisgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiBkYXRhWyJzdGF0dXMiXSwKKyAgICAgICAgICAgICAg
ICAgICAgImRhdGVfc3RhcnRlZCI6IGRhdGFbImRhdGVfc3RhcnRlZCJdLAorICAgICAgICAgICAg
ICAgICAgICAiZGF0ZV9maW5pc2hlZCI6IGRhdGFbImRhdGVfZmluaXNoZWQiXSwKKyAgICAgICAg
ICAgICAgICAgICAgImV4cGlyYXRpb25fZGF0ZSI6IGRhdGFbImV4cGlyYXRpb25fZGF0ZSJdCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgogICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBzZXNz
aW9uIHN0YXR1cyIpCi0gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKyAgICAgICAg
ICAgIHJldHVybiB7InN0YXR1cyI6IDUwMH0KIAogICAgIGRlZiByZWFkX3B1YmxpY19zZXNzaW9u
cyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgIHRyeToKQEAgLTE0NCwyNiArMjEw
LDI2IEBAIGNsYXNzIFNlc3Npb25zQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAg
IHRlc3RzID0ge30KICAgICAgICAgICAgIGlmICJ0ZXN0cyIgaW4gY29uZmlnOgogICAgICAgICAg
ICAgICAgIHRlc3RzID0gY29uZmlnWyJ0ZXN0cyJdCi0gICAgICAgICAgICB0eXBlcyA9IE5vbmUK
KyAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBOb25lCiAgICAgICAgICAgICBpZiAidHlwZXMiIGlu
IGNvbmZpZzoKLSAgICAgICAgICAgICAgICB0eXBlcyA9IGNvbmZpZ1sidHlwZXMiXQorICAgICAg
ICAgICAgICAgIHRlc3RfdHlwZXMgPSBjb25maWdbInR5cGVzIl0KICAgICAgICAgICAgIHRpbWVv
dXRzID0ge30KICAgICAgICAgICAgIGlmICJ0aW1lb3V0cyIgaW4gY29uZmlnOgogICAgICAgICAg
ICAgICAgIHRpbWVvdXRzID0gY29uZmlnWyJ0aW1lb3V0cyJdCiAgICAgICAgICAgICByZWZlcmVu
Y2VfdG9rZW5zID0gW10KICAgICAgICAgICAgIGlmICJyZWZlcmVuY2VfdG9rZW5zIiBpbiBjb25m
aWc6CiAgICAgICAgICAgICAgICAgcmVmZXJlbmNlX3Rva2VucyA9IGNvbmZpZ1sicmVmZXJlbmNl
X3Rva2VucyJdCi0gICAgICAgICAgICB3ZWJob29rX3VybHMgPSBbXQotICAgICAgICAgICAgaWYg
IndlYmhvb2tfdXJscyIgaW4gY29uZmlnOgotICAgICAgICAgICAgICAgIHdlYmhvb2tfdXJscyA9
IGNvbmZpZ1sid2ViaG9va191cmxzIl0KKyAgICAgICAgICAgIHR5cGUgPSBOb25lCisgICAgICAg
ICAgICBpZiAidHlwZSIgaW4gY29uZmlnOgorICAgICAgICAgICAgICAgIHR5cGUgPSBjb25maWdb
InR5cGUiXQogCiAgICAgICAgICAgICBzZWxmLl9zZXNzaW9uc19tYW5hZ2VyLnVwZGF0ZV9zZXNz
aW9uX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICAgICAgdG9rZW4sCiAgICAgICAgICAgICAg
ICAgdGVzdHMsCi0gICAgICAgICAgICAgICAgdHlwZXMsCisgICAgICAgICAgICAgICAgdGVzdF90
eXBlcywKICAgICAgICAgICAgICAgICB0aW1lb3V0cywKICAgICAgICAgICAgICAgICByZWZlcmVu
Y2VfdG9rZW5zLAotICAgICAgICAgICAgICAgIHdlYmhvb2tfdXJscworICAgICAgICAgICAgICAg
IHR5cGUKICAgICAgICAgICAgICkKICAgICAgICAgZXhjZXB0IE5vdEZvdW5kRXhjZXB0aW9uOgog
ICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gdXBkYXRlIHNlc3Np
b24gY29uZmlndXJhdGlvbiIpCkBAIC0yNjgsMjcgKzMzNCw1NiBAQCBjbGFzcyBTZXNzaW9uc0Fw
aUhhbmRsZXIoQXBpSGFuZGxlcik6CiAgICAgICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNl
X3VyaShyZXF1ZXN0KQogICAgICAgICAgICAgdG9rZW4gPSB1cmlfcGFydHNbMl0KIAorICAgICAg
ICAgICAgcXVlcnlfcGFyYW1ldGVycyA9IHNlbGYucGFyc2VfcXVlcnlfcGFyYW1ldGVycyhyZXF1
ZXN0KQorICAgICAgICAgICAgbGFzdF9ldmVudF9udW1iZXIgPSBOb25lCisgICAgICAgICAgICBp
ZiAoImxhc3RfZXZlbnQiIGluIHF1ZXJ5X3BhcmFtZXRlcnMpOgorICAgICAgICAgICAgICAgIGxh
c3RfZXZlbnRfbnVtYmVyID0gaW50KHF1ZXJ5X3BhcmFtZXRlcnNbImxhc3RfZXZlbnQiXSkKKwog
ICAgICAgICAgICAgZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICAgICAgaHR0cF9w
b2xsaW5nX2NsaWVudCA9IEh0dHBQb2xsaW5nQ2xpZW50KHRva2VuLCBldmVudCkKLSAgICAgICAg
ICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuYWRkX3Nlc3Npb25fY2xpZW50KGh0dHBfcG9sbGlu
Z19jbGllbnQpCisgICAgICAgICAgICBodHRwX3BvbGxpbmdfZXZlbnRfbGlzdGVuZXIgPSBIdHRw
UG9sbGluZ0V2ZW50TGlzdGVuZXIodG9rZW4sIGV2ZW50KQorICAgICAgICAgICAgZXZlbnRfbGlz
dGVuZXJfdG9rZW4gPSBzZWxmLl9ldmVudF9kaXNwYXRjaGVyLmFkZF9ldmVudF9saXN0ZW5lciho
dHRwX3BvbGxpbmdfZXZlbnRfbGlzdGVuZXIsIGxhc3RfZXZlbnRfbnVtYmVyKQogCiAgICAgICAg
ICAgICBldmVudC53YWl0KCkKIAotICAgICAgICAgICAgbWVzc2FnZSA9IGh0dHBfcG9sbGluZ19j
bGllbnQubWVzc2FnZQorICAgICAgICAgICAgbWVzc2FnZSA9IGh0dHBfcG9sbGluZ19ldmVudF9s
aXN0ZW5lci5tZXNzYWdlCiAgICAgICAgICAgICBzZWxmLnNlbmRfanNvbihkYXRhPW1lc3NhZ2Us
IHJlc3BvbnNlPXJlc3BvbnNlKQorICAgICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5y
ZW1vdmVfZXZlbnRfbGlzdGVuZXIoZXZlbnRfbGlzdGVuZXJfdG9rZW4pCiAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CiAgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0
byByZWdpc3RlciBldmVudCBsaXN0ZW5lciIpCiAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMg
PSA1MDAKIAorICAgIGRlZiBwdXNoX2V2ZW50KHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVz
dCkKKyAgICAgICAgICAgIHRva2VuID0gdXJpX3BhcnRzWzJdCisgICAgICAgICAgICBtZXNzYWdl
ID0gTm9uZQorICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keS5kZWNvZGUodSJ1dGYtOCIp
CisgICAgICAgICAgICBpZiBib2R5ICE9IHUiIjoKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0g
anNvbi5sb2Fkcyhib2R5KQorCisgICAgICAgICAgICBzZWxmLl9ldmVudF9kaXNwYXRjaGVyLmRp
c3BhdGNoX2V2ZW50KAorICAgICAgICAgICAgICAgIHRva2VuLAorICAgICAgICAgICAgICAgIG1l
c3NhZ2VbInR5cGUiXSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlWyJkYXRhIl0pCisgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZh
aWxlZCB0byBwdXNoIHNlc3Npb24gZXZlbnQiKQorCiAgICAgZGVmIGhhbmRsZV9yZXF1ZXN0KHNl
bGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICAgICAgbWV0aG9kID0gcmVxdWVzdC5tZXRob2QK
ICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVzdCkKKyAgICAgICAgYm9k
eSA9IHJlcXVlc3QuYm9keQorICAgICAgICBoZWFkZXJzID0gcmVxdWVzdC5oZWFkZXJzCisgICAg
ICAgIHF1ZXJ5X3BhcmFtZXRlcnMgPSBzZWxmLnBhcnNlX3F1ZXJ5X3BhcmFtZXRlcnMocmVxdWVz
dCkKKyAgICAgICAgdXJpX3BhdGggPSByZXF1ZXN0LnVybF9wYXJ0cy5wYXRoCiAKKyAgICAgICAg
cmVzdWx0ID0gTm9uZQogICAgICAgICAjIC9hcGkvc2Vzc2lvbnMKICAgICAgICAgaWYgbGVuKHVy
aV9wYXJ0cykgPT0gMjoKICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAiUE9TVCI6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5jcmVhdGVfc2Vzc2lvbihyZXF1ZXN0LCByZXNwb25zZSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmNyZWF0ZV9zZXNz
aW9uKGJvZHksIGhlYWRlcnMpCisgICAgICAgICAgICBpZiBtZXRob2QgPT0gIkdFVCI6CisgICAg
ICAgICAgICAgICAgaWYgc2VsZi5fcmVhZF9zZXNzaW9uc19lbmFibGVkOgorICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSBzZWxmLnJlYWRfc2Vzc2lvbnMocXVlcnlfcGFyYW1ldGVycywgdXJp
X3BhdGgpCiAKICAgICAgICAgIyAvYXBpL3Nlc3Npb25zLzx0b2tlbj4KICAgICAgICAgaWYgbGVu
KHVyaV9wYXJ0cykgPT0gMzoKQEAgLTMwMCw4ICszOTUsNyBAQCBjbGFzcyBTZXNzaW9uc0FwaUhh
bmRsZXIoQXBpSGFuZGxlcik6CiAgICAgICAgICAgICAgICAgaWYgbGVuKGZ1bmN0aW9uKSAhPSBU
T0tFTl9MRU5HVEg6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmluZF9zZXNzaW9uKHJlcXVl
c3QsIHJlc3BvbnNlKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAg
ICBzZWxmLnJlYWRfc2Vzc2lvbihyZXF1ZXN0LCByZXNwb25zZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnJlYWRfc2Vzc2lvbih0b2tlbj11
cmlfcGFydHNbMl0pCiAgICAgICAgICAgICBpZiBtZXRob2QgPT0gIlBVVCI6CiAgICAgICAgICAg
ICAgICAgc2VsZi51cGRhdGVfc2Vzc2lvbl9jb25maWd1cmF0aW9uKHJlcXVlc3QsIHJlc3BvbnNl
KQogICAgICAgICAgICAgICAgIHJldHVybgpAQCAtMzE0LDggKzQwOCw3IEBAIGNsYXNzIFNlc3Np
b25zQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgIGZ1bmN0aW9uID0gdXJpX3Bh
cnRzWzNdCiAgICAgICAgICAgICBpZiBtZXRob2QgPT0gIkdFVCI6CiAgICAgICAgICAgICAgICAg
aWYgZnVuY3Rpb24gPT0gInN0YXR1cyI6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYucmVhZF9z
ZXNzaW9uX3N0YXR1cyhyZXF1ZXN0LCByZXNwb25zZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucmVhZF9zZXNzaW9uX3N0YXR1
cyh0b2tlbj11cmlfcGFydHNbMl0pCiAgICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0gImV2
ZW50cyI6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaXN0ZXJfZXZlbnRfbGlzdGVuZXIo
cmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybgpAQCAtMzMyLDkg
KzQyNSwzMiBAQCBjbGFzcyBTZXNzaW9uc0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CiAgICAgICAg
ICAgICAgICAgaWYgZnVuY3Rpb24gPT0gInJlc3VtZSI6CiAgICAgICAgICAgICAgICAgICAgIHNl
bGYucmVzdW1lX3Nlc3Npb24ocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJldmVudHMiOgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLnB1c2hfZXZlbnQocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgaWYgbWV0aG9kID09ICJQVVQiOgogICAg
ICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJsYWJlbHMiOgogICAgICAgICAgICAgICAgICAg
ICBzZWxmLnVwZGF0ZV9sYWJlbHMocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybgogCi0gICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDQwNAorICAgICAgICBpZiBy
ZXN1bHQgaXMgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDQwNAorICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgZm9ybWF0ID0gTm9uZQorICAgICAgICBpZiAiZm9ybWF0
IiBpbiByZXN1bHQ6CisgICAgICAgICAgICBmb3JtYXQgPSByZXN1bHRbImZvcm1hdCJdCisgICAg
ICAgICAgICBpZiBmb3JtYXQgPT0gImFwcGxpY2F0aW9uL2pzb24iOgorICAgICAgICAgICAgICAg
IGRhdGEgPSBOb25lCisgICAgICAgICAgICAgICAgaWYgImRhdGEiIGluIHJlc3VsdDoKKyAgICAg
ICAgICAgICAgICAgICAgZGF0YSA9IHJlc3VsdFsiZGF0YSJdCisgICAgICAgICAgICAgICAgc3Rh
dHVzID0gMjAwCisgICAgICAgICAgICAgICAgaWYgInN0YXR1cyIgaW4gcmVzdWx0OgorICAgICAg
ICAgICAgICAgICAgICBzdGF0dXMgPSByZXN1bHRbInN0YXR1cyJdCisgICAgICAgICAgICAgICAg
c2VsZi5zZW5kX2pzb24oZGF0YSwgcmVzcG9uc2UsIHN0YXR1cykKKyAgICAgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBzdGF0dXMgPSA0MDQKKyAgICAgICAgaWYgInN0YXR1cyIgaW4gcmVz
dWx0OgorICAgICAgICAgICAgc3RhdHVzID0gcmVzdWx0WyJzdGF0dXMiXQorICAgICAgICByZXNw
b25zZS5zdGF0dXMgPSBzdGF0dXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS90ZXN0c19hcGlfaGFu
ZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9uZXR3b3JrL2FwaS90ZXN0c19hcGlfaGFuZGxlci5weQppbmRleCBjZjYyZjcwNjM1
OGI2YjVkZTI0ZDAyMzJlOTk5NDgwYTkwM2E1Y2NmLi41Yzc5N2Q5M2EyNDk4Nzg2YTVmMDQ2ZTI2
MjUyM2M5ODhjMWIyM2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvdGVzdHNfYXBpX2hhbmRsZXIu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL25ldHdvcmsvYXBpL3Rlc3RzX2FwaV9oYW5kbGVyLnB5CkBAIC0xLDQgKzEsNSBAQAog
aW1wb3J0IGpzb24KKwogZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHVuc3BsaXQKIAogZnJv
bSAuYXBpX2hhbmRsZXIgaW1wb3J0IEFwaUhhbmRsZXIKQEAgLTgsNiArOSwxMCBAQCBmcm9tIC4u
LmRhdGEuc2Vzc2lvbiBpbXBvcnQgUEFVU0VELCBDT01QTEVURUQsIEFCT1JURUQsIFBFTkRJTkcs
IFJVTk5JTkcKIERFRkFVTFRfTEFTVF9DT01QTEVURURfVEVTVFNfQ09VTlQgPSA1CiBERUZBVUxU
X0xBU1RfQ09NUExFVEVEX1RFU1RTX1NUQVRVUyA9IFsiQUxMIl0KIAorRVhFQ1VUSU9OX01PREVf
QVVUTyA9ICJhdXRvIgorRVhFQ1VUSU9OX01PREVfTUFOVUFMID0gIm1hbnVhbCIKK0VYRUNVVElP
Tl9NT0RFX1BST0dSQU1NQVRJQyA9ICJwcm9ncmFtbWF0aWMiCisKIAogY2xhc3MgVGVzdHNBcGlI
YW5kbGVyKEFwaUhhbmRsZXIpOgogICAgIGRlZiBfX2luaXRfXygKQEAgLTEwMyw2ICsxMDgsOCBA
QCBjbGFzcyBUZXN0c0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CiAKICAgICAgICAgICAgIHRlc3Rf
dGltZW91dCA9IHNlbGYuX3Rlc3RzX21hbmFnZXIuZ2V0X3Rlc3RfdGltZW91dCgKICAgICAgICAg
ICAgICAgICB0ZXN0PXRlc3QsIHNlc3Npb249c2Vzc2lvbikKKworICAgICAgICAgICAgdGVzdCA9
IHNlbGYuX3Nlc3Npb25zX21hbmFnZXIuZ2V0X3Rlc3RfcGF0aF93aXRoX3F1ZXJ5KHRlc3QsIHNl
c3Npb24pCiAgICAgICAgICAgICB1cmwgPSBzZWxmLl9nZW5lcmF0ZV90ZXN0X3VybCgKICAgICAg
ICAgICAgICAgICB0ZXN0PXRlc3QsCiAgICAgICAgICAgICAgICAgdG9rZW49dG9rZW4sCkBAIC0y
NTAsMTEgKzI1NywxOCBAQCBjbGFzcyBUZXN0c0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CiAgICAg
ICAgICAgICBwcm90b2NvbCA9ICJodHRwcyIKICAgICAgICAgICAgIHBvcnQgPSBzZWxmLl93cHRf
c3NsX3BvcnQKIAotICAgICAgICBxdWVyeSA9ICJ0b2tlbj17fSZ0aW1lb3V0PXt9Jmh0dHBzX3Bv
cnQ9e30md2ViX3Jvb3Q9e30iLmZvcm1hdCgKKyAgICAgICAgdGVzdF9xdWVyeSA9ICIiCisgICAg
ICAgIHNwbGl0ID0gdGVzdC5zcGxpdCgiPyIpCisgICAgICAgIGlmIGxlbihzcGxpdCkgPiAxOgor
ICAgICAgICAgICAgdGVzdCA9IHNwbGl0WzBdCisgICAgICAgICAgICB0ZXN0X3F1ZXJ5ID0gc3Bs
aXRbMV0KKworICAgICAgICBxdWVyeSA9ICJ0b2tlbj17fSZ0aW1lb3V0PXt9Jmh0dHBzX3BvcnQ9
e30md2ViX3Jvb3Q9e30me30iLmZvcm1hdCgKICAgICAgICAgICAgICAgICB0b2tlbiwKICAgICAg
ICAgICAgICAgICB0ZXN0X3RpbWVvdXQsCiAgICAgICAgICAgICAgICAgc2VsZi5fd3B0X3NzbF9w
b3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX3dlYl9yb290CisgICAgICAgICAgICAgICAgc2Vs
Zi5fd2ViX3Jvb3QsCisgICAgICAgICAgICAgICAgdGVzdF9xdWVyeQogICAgICAgICApCiAKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2dlbmVyYXRlX3VybCgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmU0MDQ5ZTQzMjc2NmNiZDgwODQxZGZkMzU4YzE4ZTVhN2RhZDgyMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0
d29yay9hcGkvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvYXBpX2hhbmRsZXIucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9h
cGkvcmVzdWx0c19hcGlfaGFuZGxlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9zZXNzaW9uc19hcGlfaGFuZGxl
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9uZXR3b3JrL2FwaS90ZXN0c19hcGlfaGFuZGxlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsv
aHR0cF9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL25ldHdvcmsvaHR0cF9oYW5kbGVyLnB5CmluZGV4IDBhYWJmMzEwMWRj
NzY2ZjQ1MDE2OTZmZTE4NzExZDM4ZjlhNzhhNzYuLjVhNjYzODMyZDI0Mzk3ZjU0YzEwYzQ3NTVl
NjQ1NWNlYjJmZGI5MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2h0dHBfaGFuZGxlci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0
d29yay9odHRwX2hhbmRsZXIucHkKQEAgLTEsMjIgKzEsMzAgQEAKIGltcG9ydCBodHRwLmNsaWVu
dCBhcyBodHRwbGliCiBpbXBvcnQgc3lzCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHRyYWNlYmFj
awogCiAKK2dsb2JhbCBsb2dnZXIKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3YXZlLWFw
aS1oYW5kbGVyIikKKwogY2xhc3MgSHR0cEhhbmRsZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0
X18oCiAgICAgICAgIHNlbGYsCi0gICAgICAgIHN0YXRpY19oYW5kbGVyPU5vbmUsCi0gICAgICAg
IHNlc3Npb25zX2FwaV9oYW5kbGVyPU5vbmUsCi0gICAgICAgIHRlc3RzX2FwaV9oYW5kbGVyPU5v
bmUsCi0gICAgICAgIHJlc3VsdHNfYXBpX2hhbmRsZXI9Tm9uZSwKLSAgICAgICAgaHR0cF9wb3J0
PU5vbmUsCi0gICAgICAgIHdlYl9yb290PU5vbmUKKyAgICAgICAgc3RhdGljX2hhbmRsZXIsCisg
ICAgICAgIHNlc3Npb25zX2FwaV9oYW5kbGVyLAorICAgICAgICB0ZXN0c19hcGlfaGFuZGxlciwK
KyAgICAgICAgcmVzdWx0c19hcGlfaGFuZGxlciwKKyAgICAgICAgZGV2aWNlc19hcGlfaGFuZGxl
ciwKKyAgICAgICAgZ2VuZXJhbF9hcGlfaGFuZGxlciwKKyAgICAgICAgaHR0cF9wb3J0LAorICAg
ICAgICB3ZWJfcm9vdAogICAgICk6CiAgICAgICAgIHNlbGYuc3RhdGljX2hhbmRsZXIgPSBzdGF0
aWNfaGFuZGxlcgogICAgICAgICBzZWxmLnNlc3Npb25zX2FwaV9oYW5kbGVyID0gc2Vzc2lvbnNf
YXBpX2hhbmRsZXIKICAgICAgICAgc2VsZi50ZXN0c19hcGlfaGFuZGxlciA9IHRlc3RzX2FwaV9o
YW5kbGVyCiAgICAgICAgIHNlbGYucmVzdWx0c19hcGlfaGFuZGxlciA9IHJlc3VsdHNfYXBpX2hh
bmRsZXIKKyAgICAgICAgc2VsZi5nZW5lcmFsX2FwaV9oYW5kbGVyID0gZ2VuZXJhbF9hcGlfaGFu
ZGxlcgorICAgICAgICBzZWxmLmRldmljZXNfYXBpX2hhbmRsZXIgPSBkZXZpY2VzX2FwaV9oYW5k
bGVyCiAgICAgICAgIHNlbGYuX2h0dHBfcG9ydCA9IGh0dHBfcG9ydAogICAgICAgICBzZWxmLl93
ZWJfcm9vdCA9IHdlYl9yb290CiAKQEAgLTUwLDYgKzU4LDcgQEAgY2xhc3MgSHR0cEhhbmRsZXIo
b2JqZWN0KToKIAogICAgIGRlZiBoYW5kbGVfYXBpKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToK
ICAgICAgICAgcGF0aCA9IHNlbGYuX3JlbW92ZV93ZWJfcm9vdChyZXF1ZXN0LnJlcXVlc3RfcGF0
aCkKKyAgICAgICAgcGF0aCA9IHBhdGguc3BsaXQoIj8iKVswXQogICAgICAgICBhcGlfbmFtZSA9
IHBhdGguc3BsaXQoIi8iKVsxXQogCiAgICAgICAgIGlmIGFwaV9uYW1lIGlzIE5vbmU6CkBAIC02
NCw2ICs3MywxMSBAQCBjbGFzcyBIdHRwSGFuZGxlcihvYmplY3QpOgogICAgICAgICBpZiBhcGlf
bmFtZSA9PSAicmVzdWx0cyI6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdHNfYXBpX2hhbmRsZXIu
aGFuZGxlX3JlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgaWYgYXBpX25hbWUgPT0gImRldmljZXMiOgorICAgICAgICAgICAgc2VsZi5kZXZpY2Vz
X2FwaV9oYW5kbGVyLmhhbmRsZV9yZXF1ZXN0KHJlcXVlc3QsIHJlc3BvbnNlKQorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5nZW5lcmFsX2FwaV9oYW5kbGVyLmhhbmRsZV9yZXF1
ZXN0KHJlcXVlc3QsIHJlc3BvbnNlKQogCiAgICAgZGVmIGhhbmRsZV9zdGF0aWNfZmlsZShzZWxm
LCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgIHNlbGYuc3RhdGljX2hhbmRsZXIuaGFuZGxl
X3JlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UpCkBAIC03NiwxNiArOTAsMTkgQEAgY2xhc3MgSHR0
cEhhbmRsZXIob2JqZWN0KToKIAogICAgIGRlZiBfcHJveHkoc2VsZiwgcmVxdWVzdCwgcmVzcG9u
c2UpOgogICAgICAgICBob3N0ID0gJ2xvY2FsaG9zdCcKLSAgICAgICAgcG9ydCA9IHN0cihzZWxm
Ll9odHRwX3BvcnQpCisgICAgICAgIHBvcnQgPSBpbnQoc2VsZi5faHR0cF9wb3J0KQogICAgICAg
ICB1cmkgPSByZXF1ZXN0LnVybF9wYXJ0cy5wYXRoCiAgICAgICAgIHVyaSA9IHVyaSArICI/IiAr
IHJlcXVlc3QudXJsX3BhcnRzLnF1ZXJ5Ci0gICAgICAgIGRhdGEgPSByZXF1ZXN0LnJhd19pbnB1
dC5yZWFkKGludChyZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcsIC0xKSkpCisg
ICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gcmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1MZW5n
dGgnKQorICAgICAgICBkYXRhID0gIiIKKyAgICAgICAgaWYgY29udGVudF9sZW5ndGggaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBkYXRhID0gcmVxdWVzdC5yYXdfaW5wdXQucmVhZChpbnQoY29u
dGVudF9sZW5ndGgpKQogICAgICAgICBtZXRob2QgPSByZXF1ZXN0Lm1ldGhvZAotICAgICAgICAj
IEhUVFBDb25uZWN0aW9uIGV4cGVjdHMgdmFsdWVzIHRvIGJlIGEgY29tbWEgc2VwYXJhdGVkIHN0
cmluZyBpbnN0ZWFkCi0gICAgICAgICMgb2YgYSBsaXN0IG9mIHZhbHVlcy4KKwogICAgICAgICBo
ZWFkZXJzID0ge30KLSAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5oZWFkZXJzLml0ZW1zKCk6
Ci0gICAgICAgICAgICBoZWFkZXJzW2tdID0gYiIsIi5qb2luKGxpc3QodikpCisgICAgICAgIGZv
ciBrZXkgaW4gcmVxdWVzdC5oZWFkZXJzOgorICAgICAgICAgICAgdmFsdWUgPSByZXF1ZXN0Lmhl
YWRlcnNba2V5XQorICAgICAgICAgICAgaGVhZGVyc1trZXkuZGVjb2RlKCJ1dGYtOCIpXSA9IHZh
bHVlLmRlY29kZSgidXRmLTgiKQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHByb3h5X2Nv
bm5lY3Rpb24gPSBodHRwbGliLkhUVFBDb25uZWN0aW9uKGhvc3QsIHBvcnQpCkBAIC05Niw4ICsx
MTMsOCBAQCBjbGFzcyBIdHRwSGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgcmVzcG9uc2Uu
c3RhdHVzID0gcHJveHlfcmVzcG9uc2Uuc3RhdHVzCiAKICAgICAgICAgZXhjZXB0IElPRXJyb3I6
CisgICAgICAgICAgICBtZXNzYWdlID0gIkZhaWxlZCB0byBwZXJmb3JtIHByb3h5IHJlcXVlc3Qi
CiAgICAgICAgICAgICBpbmZvID0gc3lzLmV4Y19pbmZvKCkKICAgICAgICAgICAgIHRyYWNlYmFj
ay5wcmludF90YihpbmZvWzJdKQotICAgICAgICAgICAgcHJpbnQoIkZhaWxlZCB0byBwZXJmb3Jt
IHByb3h5IHJlcXVlc3Q6ICIgKwotICAgICAgICAgICAgICAgIGluZm9bMF0uX19uYW1lX18gKyAi
OiAiICsgc3RyKGluZm9bMV0uYXJnc1swXSkpCisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoInt9
OiB7fToge30iLmZvcm1hdChtZXNzYWdlLCBpbmZvWzBdLl9fbmFtZV9fLCBpbmZvWzFdLmFyZ3Nb
MF0pKQogICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNTAwCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29y
ay9zdGF0aWNfaGFuZGxlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL3N0YXRpY19oYW5kbGVyLnB5CmluZGV4IDZmOGFm
NDMwNjA0YzQ1ZTRlN2JmMWNiMjA5MjQ0NWI0YWVhMGUwN2EuLmZkY2EzNjFhNTY3OGUwYzk3NjBk
NzJmNTM1MmNkMjA1NmU1ZTc1NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL3N0YXRpY19oYW5kbGVyLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9uZXR3b3JrL3N0YXRpY19oYW5kbGVyLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1wb3J0IG9z
Citmcm9tIGlvIGltcG9ydCBvcGVuCiAKIAogY2xhc3MgU3RhdGljSGFuZGxlcihvYmplY3QpOgpA
QCAtMTMsMTQgKzE0LDIxIEBAIGNsYXNzIFN0YXRpY0hhbmRsZXIob2JqZWN0KToKICAgICAgICAg
ZmlsZV9wYXRoID0gcmVxdWVzdC5yZXF1ZXN0X3BhdGgKIAogICAgICAgICBpZiBzZWxmLl93ZWJf
cm9vdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIG5vdCBmaWxlX3BhdGguc3RhcnRzd2l0
aChzZWxmLl93ZWJfcm9vdCk6CisgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0
CisgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICBmaWxlX3BhdGggPSBmaWxlX3Bh
dGhbbGVuKHNlbGYuX3dlYl9yb290KTpdCiAKLSAgICAgICAgaWYgZmlsZV9wYXRoID09ICIuIiBv
ciBmaWxlX3BhdGggPT0gIi4vIiBvciBmaWxlX3BhdGggPT0gIiI6CisgICAgICAgIGlmIGZpbGVf
cGF0aCA9PSAiIjoKICAgICAgICAgICAgIGZpbGVfcGF0aCA9ICJpbmRleC5odG1sIgogCiAgICAg
ICAgIGZpbGVfcGF0aCA9IGZpbGVfcGF0aC5zcGxpdCgiPyIpWzBdCiAgICAgICAgIGZpbGVfcGF0
aCA9IG9zLnBhdGguam9pbihzZWxmLnN0YXRpY19kaXIsIGZpbGVfcGF0aCkKIAorICAgICAgICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMoZmlsZV9wYXRoKToKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0
YXR1cyA9IDQwNAorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaGVhZGVycyA9IFtdCiAK
ICAgICAgICAgY29udGVudF90eXBlcyA9IHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL25ldHdvcmsvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDIxOWZmZTkyMzE5OWI2M2RjYmQzMjM4ZmJkMDc2YzdlNzEzNDg5OGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9fX2luaXRfXy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9u
ZXR3b3JrL2h0dHBfaGFuZGxlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL3N0YXRpY19oYW5kbGVyLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvcGFja2FnZS1sb2NrLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvcGFja2FnZS1sb2NrLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I0ODEz
ODhjMmY2YWMwNjg3ODBlMTczNTQxYmQ0OTdlMWQ5ZGQ1OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9wYWNr
YWdlLWxvY2suanNvbgpAQCAtMCwwICsxLDM1IEBACit7CisgICJ2ZXJzaW9uIjogIjEuMC4wIiwK
KyAgImxvY2tmaWxlVmVyc2lvbiI6IDEsCisgICJyZXF1aXJlcyI6IHRydWUsCisgICJkZXBlbmRl
bmNpZXMiOiB7CisgICAgImZzLWV4dHJhIjogeworICAgICAgInZlcnNpb24iOiAiNy4wLjEiLAor
ICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZzLWV4dHJhLy0v
ZnMtZXh0cmEtNy4wLjEudGd6IiwKKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVlKRGFDSlpF
bkJtY2J3MTNmdmRBTTlBd05PSndPenJFNHBxTXFCcTVuRmlFcVhVcUh3bEs0QiszcFV3NkpOdmZT
UHRYMDV4Rkh0WXkvMW5pMDFlR0N3PT0iLAorICAgICAgInJlcXVpcmVzIjogeworICAgICAgICAi
Z3JhY2VmdWwtZnMiOiAiXjQuMS4yIiwKKyAgICAgICAgImpzb25maWxlIjogIl40LjAuMCIsCisg
ICAgICAgICJ1bml2ZXJzYWxpZnkiOiAiXjAuMS4wIgorICAgICAgfQorICAgIH0sCisgICAgImdy
YWNlZnVsLWZzIjogeworICAgICAgInZlcnNpb24iOiAiNC4yLjMiLAorICAgICAgInJlc29sdmVk
IjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2dyYWNlZnVsLWZzLy0vZ3JhY2VmdWwtZnMt
NC4yLjMudGd6IiwKKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWEzMFZFQm00UEVkeDFkUkI3
TUZLN0JlamVqdkN2QnJvbmJMamh0K3NIdUdZajhQSHM3TS81WitydDVsdzU1MXZaN3lmVENqNFZ1
eXkzbVNKeXREV1JRPT0iCisgICAgfSwKKyAgICAianNvbmZpbGUiOiB7CisgICAgICAidmVyc2lv
biI6ICI0LjAuMCIsCisgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v
cmcvanNvbmZpbGUvLS9qc29uZmlsZS00LjAuMC50Z3oiLAorICAgICAgImludGVncml0eSI6ICJz
aGExLWgzR3E0SG1iWkFkcmRtUVB5Z1dQbkJEalBzcz0iLAorICAgICAgInJlcXVpcmVzIjogewor
ICAgICAgICAiZ3JhY2VmdWwtZnMiOiAiXjQuMS42IgorICAgICAgfQorICAgIH0sCisgICAgInVu
aXZlcnNhbGlmeSI6IHsKKyAgICAgICJ2ZXJzaW9uIjogIjAuMS4yIiwKKyAgICAgICJyZXNvbHZl
ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy91bml2ZXJzYWxpZnkvLS91bml2ZXJzYWxp
ZnktMC4xLjIudGd6IiwKKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXJCSmVJNUNYQWxteTFw
Vis2MTdXQjlKNjNVNlhjYXpISEYyZjJkYkppeDRYenBVRjBSUzNaYmowRkdJT0NBdmE1UC9kL0dC
T1lhQUNRMXcrMGF6VWtnPT0iCisgICAgfQorICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcGFja2FnZS5qc29u
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3BhY2thZ2UuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzY1ZjdjMjM4NDVmMGE4NWUwY2MzYzY2ZjA0NTE1
MTc1NGRmMGIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3BhY2thZ2UuanNvbgpAQCAtMCwwICsxLDcgQEAK
K3sKKyAgInZlcnNpb24iOiAiMS4wLjAiLAorICAibGljZW5zZSI6ICJNSVQiLAorICAiZGVwZW5k
ZW5jaWVzIjogeworICAgICJmcy1leHRyYSI6ICJeNy4wLjEiCisgIH0KK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9y
ZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL3JlcXVpcmVtZW50cy50eHQKaW5kZXggMDcwODM3MjQyZmFkZjgwMzYx
ZjgwNWJmZDU2MWUwZWE4OTEzYzk4OS4uYTdjOWQ4MmE2YWZhNzVhZWI1Mjk4YWMzNDFiZDg4NGJk
ZGM0ZmQ1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3JlcXVpcmVtZW50cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3JlcXVpcmVtZW50cy50eHQK
QEAgLTEgKzEsMiBAQAotdWEtcGFyc2VyPT0wLjEwLjAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCit1YS1wYXJzZXI9PTAuOC4wCitweXRob24tZGF0ZXV0aWw9PTIuOC4yCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcwppbmRleCBhNmMzOTJmNGIxNDMzNjI1NjgwYWQ0M2ExODc3ZDk2NWYxYTllMjYxLi4zOTRi
NGJmM2E4MzQ3MzA3YjhiYjE5ODE1NWI5NjA1YmIxNWJlN2FlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMK
QEAgLTE1LDI3MiArMTUsMjcwIEBACiAgKi8KIAogLyoKLSAqIElmIHRoZSBxdWVyeSBwYXJhbWV0
ZXIgdG9rZW4gaXMgYXZhaWxhYmxlIG1lYW5zIHRoYXQgdGhlIHRlc3Qgd2FzIGxvYWRlZCBieSAK
KyAqIElmIHRoZSBxdWVyeSBwYXJhbWV0ZXIgdG9rZW4gaXMgYXZhaWxhYmxlIG1lYW5zIHRoYXQg
dGhlIHRlc3Qgd2FzIGxvYWRlZCBieQogICogdGhlIFdBVkUgdGVzdCBydW5uZXIgYW5kIHRoZSBy
ZXN1bHRzIG5lZWQgdG8gYmUgcmVwb3J0ZWQgdG8gdGhlIHNlcnZlciB1c2luZwotICogdGhlIHBy
b3ZpZGVkIHRva2VuIHRvIGlkZW50aWZ5IHRoZSBzZXNzaW9uIGFzc29jaWF0ZWQgdGhpcyB0b2tl
bi4gIAorICogdGhlIHByb3ZpZGVkIHRva2VuIHRvIGlkZW50aWZ5IHRoZSBzZXNzaW9uIGFzc29j
aWF0ZWQgdGhpcyB0b2tlbi4KICAqLwotY29uc29sZS5sb2coIkFSRFZBQVJEIikKIGlmIChsb2Nh
dGlvbi5zZWFyY2ggJiYgbG9jYXRpb24uc2VhcmNoLmluZGV4T2YoInRva2VuPSIpICE9IC0xKSB7
Ci0gICB2YXIgX19XQVZFX19IT1NUTkFNRSA9IGxvY2F0aW9uLmhvc3RuYW1lOwotICAgdmFyIF9f
V0FWRV9fUE9SVCA9IGxvY2F0aW9uLnBvcnQ7Ci0gICB2YXIgX19XQVZFX19QUk9UT0NPTCA9IGxv
Y2F0aW9uLnByb3RvY29sLnJlcGxhY2UoLzovLCAiIik7Ci0gICB2YXIgX19XQVZFX19RVUVSWSA9
IGxvY2F0aW9uLnNlYXJjaDsKLSAgIGlmICghX19XQVZFX19RVUVSWSkgX19XQVZFX19RVUVSWSA9
ICI/IjsKLSAgIHZhciBtYXRjaCA9IF9fV0FWRV9fUVVFUlkubWF0Y2goL2h0dHBzX3BvcnQ9KFxk
KykvKTsKLSAgIHZhciBfX0hUVFBTX1BPUlQgPSBwYXJzZUludChtYXRjaCAmJiBtYXRjaFsxXSA/
IG1hdGNoWzFdIDogNDQzKTsKLSAgIG1hdGNoID0gX19XQVZFX19RVUVSWS5tYXRjaCgvdGltZW91
dD0oXGQrKS8pOwotICAgdmFyIF9fV0FWRV9fVElNRU9VVCA9IHBhcnNlSW50KG1hdGNoICYmIG1h
dGNoWzFdID8gbWF0Y2hbMV0gOiA2NTAwMCk7Ci0gICBtYXRjaCA9IF9fV0FWRV9fUVVFUlkubWF0
Y2goL3dlYl9yb290PSguKykvKTsKLSAgIHZhciBfX1dBVkVfX1dFQl9ST09UID0gbWF0Y2ggJiYg
bWF0Y2hbMV0gPyBtYXRjaFsxXSA6ICIvd2F2ZS8iOwotICAgIGNvbnNvbGUubG9nKCJcblxuXG5c
blxuIikKLSAgICBjb25zb2xlLmxvZyhtYXRjaCkKLSAgICBjb25zb2xlLmxvZyhfX1dBVkVfX1dF
Ql9ST09UKQotICAgbWF0Y2ggPSBfX1dBVkVfX1FVRVJZLm1hdGNoKC90b2tlbj0oW14mXSspLyk7
Ci0gICB2YXIgX19XQVZFX19UT0tFTiA9IG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsOwotICAgdmFy
IF9fV0FWRV9fVEVTVCA9IGxvY2F0aW9uLnBhdGhuYW1lOwotICAgdmFyIG5leHRVcmwgPSBudWxs
OwotICAgdmFyIHJlc3VsdFNlbnQgPSBmYWxzZTsKLSAgIHZhciBzY3JlZW5Db25zb2xlOworICB2
YXIgX19XQVZFX19IT1NUTkFNRSA9IGxvY2F0aW9uLmhvc3RuYW1lOworICB2YXIgX19XQVZFX19Q
T1JUID0gbG9jYXRpb24ucG9ydDsKKyAgdmFyIF9fV0FWRV9fUFJPVE9DT0wgPSBsb2NhdGlvbi5w
cm90b2NvbC5yZXBsYWNlKC86LywgIiIpOworICB2YXIgX19XQVZFX19RVUVSWSA9IGxvY2F0aW9u
LnNlYXJjaDsKKyAgdmFyIHF1ZXJ5UGFyYW1ldGVycyA9IHt9OworICB2YXIga2V5c0FuZFZhbHVl
cyA9IGxvY2F0aW9uLnNlYXJjaC5yZXBsYWNlKCI/IiwgIiIpLnNwbGl0KCImIik7CisgIGZvciAo
dmFyIGkgPSAwOyBpIDwga2V5c0FuZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgIHZhciBrZXkg
PSBrZXlzQW5kVmFsdWVzW2ldLnNwbGl0KCI9IilbMF07CisgICAgdmFyIHZhbHVlID0ga2V5c0Fu
ZFZhbHVlc1tpXS5zcGxpdCgiPSIpWzFdOworICAgIHF1ZXJ5UGFyYW1ldGVyc1trZXldID0gdmFs
dWU7CisgIH0KKyAgdmFyIF9fSFRUUFNfUE9SVCA9IHBhcnNlSW50KHF1ZXJ5UGFyYW1ldGVyc1si
aHR0cHNfcG9ydCJdIHx8IDQ0Myk7CisgIHZhciBfX1dBVkVfX1RJTUVPVVQgPSBwYXJzZUludChx
dWVyeVBhcmFtZXRlcnNbInRpbWVvdXQiXSB8fCA2NTAwMCk7CisgIHZhciBfX1dBVkVfX1dFQl9S
T09UID0gcXVlcnlQYXJhbWV0ZXJzWyJ3ZWJfcm9vdCJdIHx8ICIvX3dhdmUvIjsKKyAgdmFyIF9f
V0FWRV9fVE9LRU4gPSBxdWVyeVBhcmFtZXRlcnNbInRva2VuIl0gfHwgbnVsbDsKKyAgdmFyIF9f
V0FWRV9fVEVTVCA9IGxvY2F0aW9uLnBhdGhuYW1lOworICB2YXIgbmV4dFVybCA9IG51bGw7Cisg
IHZhciByZXN1bHRTZW50ID0gZmFsc2U7CisgIHZhciBzY3JlZW5Db25zb2xlOwogCi0gICB0cnkg
ewotICAgICAgdmFyIGRvY3VtZW50Um9vdCA9IGRvY3VtZW50LmJvZHkgPyBkb2N1bWVudC5ib2R5
IDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwotICAgICAgZG9jdW1lbnRSb290LnN0eWxlWyJi
YWNrZ3JvdW5kLWNvbG9yIl0gPSAiI0ZGRiI7Ci0gICAgICB3aW5kb3cub3BlbiA9IGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgIGxvZ1RvQ29uc29sZSgKLSAgICAgICAgICAgICJ3aW5kb3cub3Blbigp
IGlzIG92ZXJyaWRkZW4gaW4gdGVzdGhhcm5lc3NyZXBvcnQuanMgYW5kIGhhcyBub3QgZWZmZWN0
IgotICAgICAgICAgKTsKLSAgICAgICAgIHZhciBkdW1teVdpbiA9IHsKLSAgICAgICAgICAgIGNs
b3NlOiBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICBsb2dUb0NvbnNvbGUoCi0gICAgICAg
ICAgICAgICAgICAiZHVtbXlXaW5kb3cuY2xvc2UoKSBpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyBh
bmQgaGFzIG5vdCBlZmZlY3QiCi0gICAgICAgICAgICAgICApOwotICAgICAgICAgICAgfQotICAg
ICAgICAgfTsKLSAgICAgICAgIHJldHVybiBkdW1teVdpbjsKLSAgICAgIH07Ci0gICAgICB3aW5k
b3cuY2xvc2UgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICBsb2dUb0NvbnNvbGUoCi0gICAgICAg
ICAgICAid2luZG93LmNsb3NlKCkgaXMgb3ZlcnJpZGRlbiBpbiB0ZXN0aGFybmVzc3JlcG9ydC5q
cyBhbmQgaGFzIG5vdCBlZmZlY3QiCi0gICAgICAgICApOworICB0cnkgeworICAgIHZhciBkb2N1
bWVudFJvb3QgPSBkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuYm9keSA6IGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudDsKKyAgICBkb2N1bWVudFJvb3Quc3R5bGVbImJhY2tncm91bmQtY29sb3IiXSA9
ICIjRkZGIjsKKyAgICB3aW5kb3cub3BlbiA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIGxvZ1RvQ29u
c29sZSgKKyAgICAgICAgIndpbmRvdy5vcGVuKCkgaXMgb3ZlcnJpZGRlbiBpbiB0ZXN0aGFybmVz
c3JlcG9ydC5qcyBhbmQgaGFzIG5vdCBlZmZlY3QiCisgICAgICApOworICAgICAgdmFyIGR1bW15
V2luID0geworICAgICAgICBjbG9zZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgIGxvZ1RvQ29u
c29sZSgKKyAgICAgICAgICAgICJkdW1teVdpbmRvdy5jbG9zZSgpIGluIHRlc3RoYXJuZXNzcmVw
b3J0LmpzIGFuZCBoYXMgbm90IGVmZmVjdCIKKyAgICAgICAgICApOworICAgICAgICB9LAogICAg
ICAgfTsKLSAgIH0gY2F0Y2ggKGVycikge30KKyAgICAgIHJldHVybiBkdW1teVdpbjsKKyAgICB9
OworICAgIHdpbmRvdy5jbG9zZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIGxvZ1RvQ29uc29sZSgK
KyAgICAgICAgIndpbmRvdy5jbG9zZSgpIGlzIG92ZXJyaWRkZW4gaW4gdGVzdGhhcm5lc3NyZXBv
cnQuanMgYW5kIGhhcyBub3QgZWZmZWN0IgorICAgICAgKTsKKyAgICB9OworICB9IGNhdGNoIChl
cnIpIHt9CiAKLSAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewotICAgICAgbG9hZE5leHQoKTsK
LSAgIH0sIF9fV0FWRV9fVElNRU9VVCk7CisgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAg
IGxvYWROZXh0KCk7CisgIH0sIF9fV0FWRV9fVElNRU9VVCk7CiAKLSAgIGZ1bmN0aW9uIGxvZ1Rv
Q29uc29sZSgpIHsKLSAgICAgIHZhciB0ZXh0ID0gIiI7Ci0gICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgdGV4dCArPSBhcmd1bWVudHNb
aV0gKyAiICI7CisgIGZ1bmN0aW9uIGxvZ1RvQ29uc29sZSgpIHsKKyAgICB2YXIgdGV4dCA9ICIi
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICB0ZXh0ICs9IGFyZ3VtZW50c1tpXSArICIgIjsKKyAgICB9CisgICAgaWYgKGNvbnNvbGUgJiYg
Y29uc29sZS5sb2cpIHsKKyAgICAgIGNvbnNvbGUubG9nKHRleHQpOworICAgIH0KKyAgICBpZiAo
c2NyZWVuQ29uc29sZSkgeworICAgICAgdHJ5IHsKKyAgICAgICAgdGV4dCA9IHRleHQucmVwbGFj
ZSgvIC9nbSwgIiZuYnNwOyIpOworICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cbi9nbSwg
Ijxici8+Iik7CisgICAgICAgIHNjcmVlbkNvbnNvbGUuaW5uZXJIVE1MICs9ICI8YnIvPiIgKyB0
ZXh0OworICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgc2NyZWVuQ29uc29sZS5pbm5l
clRleHQgKz0gIlxuIiArIHRleHQ7CiAgICAgICB9Ci0gICAgICBpZiAoY29uc29sZSAmJiBjb25z
b2xlLmxvZykgewotICAgICAgICAgY29uc29sZS5sb2codGV4dCk7Ci0gICAgICB9Ci0gICAgICBp
ZiAoc2NyZWVuQ29uc29sZSkgewotICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHRleHQgPSB0
ZXh0LnJlcGxhY2UoLyAvZ20sICImbmJzcDsiKTsKLSAgICAgICAgICAgIHRleHQgPSB0ZXh0LnJl
cGxhY2UoL1xuL2dtLCAiPGJyLz4iKTsKLSAgICAgICAgICAgIHNjcmVlbkNvbnNvbGUuaW5uZXJI
VE1MICs9ICI8YnIvPiIgKyB0ZXh0OwotICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAg
ICAgICAgIHNjcmVlbkNvbnNvbGUuaW5uZXJUZXh0ICs9ICJcbiIgKyB0ZXh0OwotICAgICAgICAg
fQotICAgICAgfQotICAgfQorICAgIH0KKyAgfQogCi0gICBmdW5jdGlvbiBkdW1wX2FuZF9yZXBv
cnRfdGVzdF9yZXN1bHRzKHRlc3RzLCBzdGF0dXMpIHsKLSAgICAgIHZhciByZXN1bHRzX2VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKLSAgICAgIHJlc3VsdHNfZWxl
bWVudC50eXBlID0gInRleHQvanNvbiI7Ci0gICAgICByZXN1bHRzX2VsZW1lbnQuaWQgPSAiX190
ZXN0aGFybmVzc19fcmVzdWx0c19fIjsKLSAgICAgIHZhciB0ZXN0X3Jlc3VsdHMgPSB0ZXN0cy5t
YXAoZnVuY3Rpb24gKHgpIHsKLSAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICBuYW1lOiB4
Lm5hbWUsCi0gICAgICAgICAgICBzdGF0dXM6IHguc3RhdHVzLAotICAgICAgICAgICAgbWVzc2Fn
ZTogeC5tZXNzYWdlLAotICAgICAgICAgICAgc3RhY2s6IHguc3RhY2sKLSAgICAgICAgIH07Ci0g
ICAgICB9KTsKLSAgICAgIHZhciBkYXRhID0gewotICAgICAgICAgdGVzdDogd2luZG93LmxvY2F0
aW9uLmhyZWYsCi0gICAgICAgICB0ZXN0czogdGVzdF9yZXN1bHRzLAotICAgICAgICAgc3RhdHVz
OiBzdGF0dXMuc3RhdHVzLAotICAgICAgICAgbWVzc2FnZTogc3RhdHVzLm1lc3NhZ2UsCi0gICAg
ICAgICBzdGFjazogc3RhdHVzLnN0YWNrCisgIGZ1bmN0aW9uIGR1bXBfYW5kX3JlcG9ydF90ZXN0
X3Jlc3VsdHModGVzdHMsIHN0YXR1cykgeworICAgIHZhciByZXN1bHRzX2VsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgICByZXN1bHRzX2VsZW1lbnQudHlwZSA9
ICJ0ZXh0L2pzb24iOworICAgIHJlc3VsdHNfZWxlbWVudC5pZCA9ICJfX3Rlc3RoYXJuZXNzX19y
ZXN1bHRzX18iOworICAgIHZhciB0ZXN0X3Jlc3VsdHMgPSB0ZXN0cy5tYXAoZnVuY3Rpb24gKHgp
IHsKKyAgICAgIHJldHVybiB7CisgICAgICAgIG5hbWU6IHgubmFtZSwKKyAgICAgICAgc3RhdHVz
OiB4LnN0YXR1cywKKyAgICAgICAgbWVzc2FnZTogeC5tZXNzYWdlLAorICAgICAgICBzdGFjazog
eC5zdGFjaywKICAgICAgIH07Ci0gICAgICByZXN1bHRzX2VsZW1lbnQudGV4dENvbnRlbnQgPSBK
U09OLnN0cmluZ2lmeShkYXRhKTsKKyAgICB9KTsKKyAgICB2YXIgZGF0YSA9IHsKKyAgICAgIHRl
c3Q6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLAorICAgICAgdGVzdHM6IHRlc3RfcmVzdWx0cywKKyAg
ICAgIHN0YXR1czogc3RhdHVzLnN0YXR1cywKKyAgICAgIG1lc3NhZ2U6IHN0YXR1cy5tZXNzYWdl
LAorICAgICAgc3RhY2s6IHN0YXR1cy5zdGFjaywKKyAgICB9OworICAgIHJlc3VsdHNfZWxlbWVu
dC50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOwogCi0gICAgICAvLyBUbyBhdm9p
ZCBhIEhpZXJhcmNoeVJlcXVlc3RFcnJvciB3aXRoIFhNTCBkb2N1bWVudHMsIGVuc3VyZSB0aGF0
ICdyZXN1bHRzX2VsZW1lbnQnCi0gICAgICAvLyBpcyBpbnNlcnRlZCBhdCBhIGxvY2F0aW9uIHRo
YXQgcmVzdWx0cyBpbiBhIHZhbGlkIGRvY3VtZW50LgotICAgICAgdmFyIHBhcmVudCA9IGRvY3Vt
ZW50LmJvZHkgPwotICAgICAgICAgZG9jdW1lbnQuYm9keSAvLyA8Ym9keT4gaXMgcmVxdWlyZWQg
aW4gWEhUTUwgZG9jdW1lbnRzCi0gICAgICAgICA6Ci0gICAgICAgICBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQ7IC8vIGZhbGxiYWNrIGZvciBvcHRpb25hbCA8Ym9keT4gaW4gSFRNTDUsIFNWRywg
ZXRjLgorICAgIC8vIFRvIGF2b2lkIGEgSGllcmFyY2h5UmVxdWVzdEVycm9yIHdpdGggWE1MIGRv
Y3VtZW50cywgZW5zdXJlIHRoYXQgJ3Jlc3VsdHNfZWxlbWVudCcKKyAgICAvLyBpcyBpbnNlcnRl
ZCBhdCBhIGxvY2F0aW9uIHRoYXQgcmVzdWx0cyBpbiBhIHZhbGlkIGRvY3VtZW50LgorICAgIHZh
ciBwYXJlbnQgPSBkb2N1bWVudC5ib2R5CisgICAgICA/IGRvY3VtZW50LmJvZHkgLy8gPGJvZHk+
IGlzIHJlcXVpcmVkIGluIFhIVE1MIGRvY3VtZW50cworICAgICAgOiBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQ7IC8vIGZhbGxiYWNrIGZvciBvcHRpb25hbCA8Ym9keT4gaW4gSFRNTDUsIFNWRywg
ZXRjLgogCi0gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQocmVzdWx0c19lbGVtZW50KTsKKyAgICBw
YXJlbnQuYXBwZW5kQ2hpbGQocmVzdWx0c19lbGVtZW50KTsKIAorICAgIHNjcmVlbkNvbnNvbGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgIGlmICghc2NyZWVuQ29u
c29sZSkgewogICAgICAgc2NyZWVuQ29uc29sZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOwogICAgICAgc2NyZWVuQ29uc29sZS5zZXRBdHRyaWJ1dGUoImlkIiwgImNvbnNvbGUiKTsK
ICAgICAgIHNjcmVlbkNvbnNvbGUuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJmb250LWZhbWlseTog
bW9ub3NwYWNlOyBwYWRkaW5nOiA1cHgiKTsKICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChzY3Jl
ZW5Db25zb2xlKTsKLSAgICAgIHdpbmRvdy5vbmVycm9yID0gbG9nVG9Db25zb2xlOworICAgIH0K
KyAgICB3aW5kb3cub25lcnJvciA9IGxvZ1RvQ29uc29sZTsKIAotICAgICAgZmluaXNoV3B0VGVz
dChkYXRhKTsKLSAgIH0KKyAgICBmaW5pc2hXcHRUZXN0KGRhdGEpOworICB9CiAKLSAgIGZ1bmN0
aW9uIGZpbmlzaFdwdFRlc3QoZGF0YSkgewotICAgICAgbG9nVG9Db25zb2xlKCJDcmVhdGluZyBy
ZXN1bHQgLi4uIik7Ci0gICAgICBkYXRhLnRlc3QgPSBfX1dBVkVfX1RFU1Q7Ci0gICAgICBjcmVh
dGVSZXN1bHQoCi0gICAgICAgICBfX1dBVkVfX1RPS0VOLAotICAgICAgICAgZGF0YSwKLSAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZ1RvQ29uc29sZSgiUmVzdWx0IGNyZWF0
ZWQuIik7Ci0gICAgICAgICAgICBsb2FkTmV4dCgpOwotICAgICAgICAgfSwKLSAgICAgICAgIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZ1RvQ29uc29sZSgiRmFpbGVkIHRvIGNyZWF0ZSBy
ZXN1bHQuIik7Ci0gICAgICAgICAgICBsb2dUb0NvbnNvbGUoIlRyeWluZyBhbHRlcm5hdGl2ZSBt
ZXRob2QgLi4uIik7Ci0gICAgICAgICAgICBjcmVhdGVSZXN1bHRBbHQoX19XQVZFX19UT0tFTiwg
ZGF0YSk7Ci0gICAgICAgICB9Ci0gICAgICApOwotICAgfQorICBmdW5jdGlvbiBmaW5pc2hXcHRU
ZXN0KGRhdGEpIHsKKyAgICBsb2dUb0NvbnNvbGUoIkNyZWF0aW5nIHJlc3VsdCAuLi4iKTsKKyAg
ICBkYXRhLnRlc3QgPSBfX1dBVkVfX1RFU1Q7CisgICAgY3JlYXRlUmVzdWx0KAorICAgICAgX19X
QVZFX19UT0tFTiwKKyAgICAgIGRhdGEsCisgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgIGxv
Z1RvQ29uc29sZSgiUmVzdWx0IGNyZWF0ZWQuIik7CisgICAgICAgIGxvYWROZXh0KCk7CisgICAg
ICB9LAorICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICBsb2dUb0NvbnNvbGUoIkZhaWxlZCB0
byBjcmVhdGUgcmVzdWx0LiIpOworICAgICAgICBsb2dUb0NvbnNvbGUoIlRyeWluZyBhbHRlcm5h
dGl2ZSBtZXRob2QgLi4uIik7CisgICAgICAgIGNyZWF0ZVJlc3VsdEFsdChfX1dBVkVfX1RPS0VO
LCBkYXRhKTsKKyAgICAgIH0KKyAgICApOworICB9CiAKLSAgIGZ1bmN0aW9uIGxvYWROZXh0KCkg
ewotICAgICAgbG9nVG9Db25zb2xlKCJMb2FkaW5nIG5leHQgdGVzdCAuLi4iKTsKLSAgICAgIGlm
ICh3aW5kb3cuZ2MpIHsKLSAgICAgICAgIC8vIFRoaXMgaXMgdXNpbmcgYSBjaHJvbWl1bS92OCBm
ZWF0dXJlLCBlbmFibGUgaXQgYnkKLSAgICAgICAgIC8vIC0tanMtZmxhZ3M9ImV4cG9zZS1nYyIu
Ci0gICAgICAgICAvLyBUT0RPOiBSZXBsYWNlIHRoaXMgd2l0aCBUZXN0VXRpbHMuZ2MoKSBvbmNl
L2lmIHRoYXQgaXMgYXZhaWxhYmxlCi0gICAgICAgICAvLyBpbiBicm93c2VyczoKLSAgICAgICAg
IC8vIGh0dHBzOi8vamdyYWhhbS5naXRodWIuaW8vYnJvd3Nlci10ZXN0LyN0aGUtdGVzdHV0aWxz
LW9iamVjdAotICAgICAgICAgbG9nVG9Db25zb2xlKCJGb3JjaW5nIGdhcmJhZ2UgY29sbGVjdGlv
biB1c2luZyB3aW5kb3cuZ2MoKSIpOwotICAgICAgICAgd2luZG93LmdjKCk7CisgIGZ1bmN0aW9u
IGxvYWROZXh0KCkgeworICAgIGxvZ1RvQ29uc29sZSgiTG9hZGluZyBuZXh0IHRlc3QgLi4uIik7
CisgICAgcmVhZE5leHRUZXN0KAorICAgICAgX19XQVZFX19UT0tFTiwKKyAgICAgIGZ1bmN0aW9u
ICh1cmwpIHsKKyAgICAgICAgbG9nVG9Db25zb2xlKCJSZWRpcmVjdGluZyB0byAiICsgdXJsKTsK
KyAgICAgICAgbG9jYXRpb24uaHJlZiA9IHVybDsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbiAo
KSB7CisgICAgICAgIGxvZ1RvQ29uc29sZSgiQ291bGQgbm90IGxvYWQgbmV4dCB0ZXN0LiIpOwor
ICAgICAgICBsb2dUb0NvbnNvbGUoIlRyeWluZyBhbHRlcm5hdGl2ZSBtZXRob2QgLi4uIik7Cisg
ICAgICAgIHJlYWROZXh0QWx0KF9fV0FWRV9fVE9LRU4pOwogICAgICAgfQotICAgICAgcmVhZE5l
eHRUZXN0KAotICAgICAgICAgX19XQVZFX19UT0tFTiwKLSAgICAgICAgIGZ1bmN0aW9uICh1cmwp
IHsKLSAgICAgICAgICAgIGxvZ1RvQ29uc29sZSgiUmVkaXJlY3RpbmcgdG8gIiArIHVybCk7Ci0g
ICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gdXJsOwotICAgICAgICAgfSwKLSAgICAgICAgIGZ1
bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGxvZ1RvQ29uc29sZSgiQ291bGQgbm90IGxvYWQgbmV4
dCB0ZXN0LiIpOwotICAgICAgICAgICAgbG9nVG9Db25zb2xlKCJUcnlpbmcgYWx0ZXJuYXRpdmUg
bWV0aG9kIC4uLiIpOwotICAgICAgICAgICAgcmVhZE5leHRBbHQoX19XQVZFX19UT0tFTik7Ci0g
ICAgICAgICB9Ci0gICAgICApOwotICAgfQorICAgICk7CisgIH0KIAotICAgZnVuY3Rpb24gcmVh
ZE5leHRUZXN0KHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKLSAgICAgIHNlbmRSZXF1ZXN0
KAotICAgICAgICAgIkdFVCIsCi0gICAgICAgICAiYXBpL3Rlc3RzLyIgKyB0b2tlbiArICIvbmV4
dCIsCi0gICAgICAgICBudWxsLAotICAgICAgICAgbnVsbCwKLSAgICAgICAgIGZ1bmN0aW9uIChy
ZXNwb25zZSkgewotICAgICAgICAgICAgdmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3Bv
bnNlKTsKLSAgICAgICAgICAgIG9uU3VjY2Vzcyhqc29uT2JqZWN0Lm5leHRfdGVzdCk7Ci0gICAg
ICAgICB9LAotICAgICAgICAgb25FcnJvcgotICAgICAgKTsKLSAgIH0KKyAgZnVuY3Rpb24gcmVh
ZE5leHRUZXN0KHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgICBzZW5kUmVxdWVzdCgK
KyAgICAgICJHRVQiLAorICAgICAgImFwaS90ZXN0cy8iICsgdG9rZW4gKyAiL25leHQiLAorICAg
ICAgbnVsbCwKKyAgICAgIG51bGwsCisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAg
ICAgdmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAgICAgb25TdWNj
ZXNzKGpzb25PYmplY3QubmV4dF90ZXN0KTsKKyAgICAgIH0sCisgICAgICBvbkVycm9yCisgICAg
KTsKKyAgfQogCi0gICBmdW5jdGlvbiByZWFkTmV4dEFsdCh0b2tlbikgewotICAgICAgbG9jYXRp
b24uaHJlZiA9IGdldFdhdmVVcmwoIm5leHQuaHRtbD90b2tlbj0iICsgdG9rZW4pOwotICAgfQor
ICBmdW5jdGlvbiByZWFkTmV4dEFsdCh0b2tlbikgeworICAgIGxvY2F0aW9uLmhyZWYgPQorICAg
ICAgbG9jYXRpb24ucHJvdG9jb2wgKworICAgICAgIi8vIiArCisgICAgICBsb2NhdGlvbi5ob3N0
ICsKKyAgICAgIGdldFdhdmVVcmwoIm5leHQuaHRtbD90b2tlbj0iICsgdG9rZW4pOworICB9CiAK
LSAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3VsdCh0b2tlbiwgcmVzdWx0LCBvblN1Y2Nlc3MsIG9uRXJy
b3IpIHsKLSAgICAgIHNlbmRSZXF1ZXN0KAotICAgICAgICAgIlBPU1QiLAotICAgICAgICAgImFw
aS9yZXN1bHRzLyIgKyB0b2tlbiwgewotICAgICAgICAgICAgIkNvbnRlbnQtVHlwZSI6ICJhcHBs
aWNhdGlvbi9qc29uIgotICAgICAgICAgfSwKLSAgICAgICAgIEpTT04uc3RyaW5naWZ5KHJlc3Vs
dCksCi0gICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBvblN1Y2Nlc3MoKTsKLSAg
ICAgICAgIH0sCi0gICAgICAgICBvbkVycm9yCi0gICAgICApOwotICAgfQorICBmdW5jdGlvbiBj
cmVhdGVSZXN1bHQodG9rZW4sIHJlc3VsdCwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgICAgc2Vu
ZFJlcXVlc3QoCisgICAgICAiUE9TVCIsCisgICAgICAiYXBpL3Jlc3VsdHMvIiArIHRva2VuLAor
ICAgICAgeworICAgICAgICAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iLAorICAg
ICAgfSwKKyAgICAgIEpTT04uc3RyaW5naWZ5KHJlc3VsdCksCisgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgIG9uU3VjY2VzcygpOworICAgICAgfSwKKyAgICAgIG9uRXJyb3IKKyAgICApOwor
ICB9CiAKLSAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3VsdEFsdCh0b2tlbiwgcmVzdWx0KSB7Ci0gICAg
ICBsb2NhdGlvbi5ocmVmID0gX19XQVZFX19XRUJfUk9PVCArICJzdWJtaXRyZXN1bHQuaHRtbCIg
KwotICAgICAgICAgIj90b2tlbj0iICsgdG9rZW4gKwotICAgICAgICAgIiZyZXN1bHQ9IiArIGVu
Y29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShyZXN1bHQpKTsKLSAgIH0KKyAgZnVuY3Rp
b24gY3JlYXRlUmVzdWx0QWx0KHRva2VuLCByZXN1bHQpIHsKKyAgICBsb2NhdGlvbi5ocmVmID0K
KyAgICAgIF9fV0FWRV9fV0VCX1JPT1QgKworICAgICAgInN1Ym1pdHJlc3VsdC5odG1sIiArCisg
ICAgICAiP3Rva2VuPSIgKworICAgICAgdG9rZW4gKworICAgICAgIiZyZXN1bHQ9IiArCisgICAg
ICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7CisgIH0KIAotICAg
ZnVuY3Rpb24gc2VuZFJlcXVlc3QobWV0aG9kLCB1cmksIGhlYWRlcnMsIGRhdGEsIG9uU3VjY2Vz
cywgb25FcnJvcikgewotICAgICAgdmFyIHVybCA9IGdldFdhdmVVcmwodXJpKTsKLSAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICAgIHhoci5hZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgb25TdWNjZXNzKHhoci5yZXNwb25zZSk7
Ci0gICAgICB9KTsKLSAgICAgIHhoci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGZ1bmN0aW9u
ICgpIHsKLSAgICAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKCk7Ci0gICAgICB9KTsKLSAgICAg
IGxvZ1RvQ29uc29sZSgiU2VuZGluZyIsIG1ldGhvZCwgJ3JlcXVlc3QgdG8gIicgKyB1cmwgKyAn
IicpOwotICAgICAgeGhyLm9wZW4obWV0aG9kLCB1cmwsIHRydWUpOwotICAgICAgaWYgKGhlYWRl
cnMpIHsKLSAgICAgICAgIGZvciAodmFyIGhlYWRlciBpbiBoZWFkZXJzKSB7Ci0gICAgICAgICAg
ICB4aHIuc2V0UmVxdWVzdEhlYWRlcihoZWFkZXIsIGhlYWRlcnNbaGVhZGVyXSk7Ci0gICAgICAg
ICB9CisgIGZ1bmN0aW9uIHNlbmRSZXF1ZXN0KG1ldGhvZCwgdXJpLCBoZWFkZXJzLCBkYXRhLCBv
blN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgICB2YXIgdXJsID0gZ2V0V2F2ZVVybCh1cmkpOworICAg
IHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3QgKyB1cmw7Cisg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgZnVuY3Rpb24gKCkgeworICAgICAgb25TdWNjZXNzKHhoci5yZXNwb25zZSk7
CisgICAgfSk7CisgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24gKCkg
eworICAgICAgaWYgKG9uRXJyb3IpIG9uRXJyb3IoKTsKKyAgICB9KTsKKyAgICBsb2dUb0NvbnNv
bGUoIlNlbmRpbmciLCBtZXRob2QsICdyZXF1ZXN0IHRvICInICsgdXJsICsgJyInKTsKKyAgICB4
aHIub3BlbihtZXRob2QsIHVybCwgdHJ1ZSk7CisgICAgaWYgKGhlYWRlcnMpIHsKKyAgICAgIGZv
ciAodmFyIGhlYWRlciBpbiBoZWFkZXJzKSB7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVy
KGhlYWRlciwgaGVhZGVyc1toZWFkZXJdKTsKICAgICAgIH0KLSAgICAgIHhoci5zZW5kKGRhdGEp
OwotICAgfQotCi0gICBmdW5jdGlvbiBnZXRXYXZlVXJsKHVyaSkgewotICAgICAgdmFyIHVybCA9
IF9fV0FWRV9fV0VCX1JPT1QgKyB1cmk7Ci0gICAgICBjb25zb2xlLmxvZyh1cmwpCi0gICAgICBy
ZXR1cm4gdXJsOwotICAgfQorICAgIH0KKyAgICB4aHIuc2VuZChkYXRhKTsKKyAgfQogCi0gICBh
ZGRfY29tcGxldGlvbl9jYWxsYmFjayhkdW1wX2FuZF9yZXBvcnRfdGVzdF9yZXN1bHRzKTsKKyAg
ZnVuY3Rpb24gZ2V0V2F2ZVVybCh1cmkpIHsKKyAgICB2YXIgdXJsID0gX19XQVZFX19XRUJfUk9P
VCArIHVyaTsKKyAgICByZXR1cm4gdXJsOworICB9CiAKKyAgYWRkX2NvbXBsZXRpb25fY2FsbGJh
Y2soZHVtcF9hbmRfcmVwb3J0X3Rlc3RfcmVzdWx0cyk7CiB9IGVsc2UgewotICAgZnVuY3Rpb24g
ZHVtcF90ZXN0X3Jlc3VsdHModGVzdHMsIHN0YXR1cykgewotICAgICAgdmFyIHJlc3VsdHNfZWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgICAgcmVzdWx0c19l
bGVtZW50LnR5cGUgPSAidGV4dC9qc29uIjsKLSAgICAgIHJlc3VsdHNfZWxlbWVudC5pZCA9ICJf
X3Rlc3RoYXJuZXNzX19yZXN1bHRzX18iOwotICAgICAgdmFyIHRlc3RfcmVzdWx0cyA9IHRlc3Rz
Lm1hcChmdW5jdGlvbiAoeCkgewotICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIG5hbWU6
IHgubmFtZSwKLSAgICAgICAgICAgIHN0YXR1czogeC5zdGF0dXMsCi0gICAgICAgICAgICBtZXNz
YWdlOiB4Lm1lc3NhZ2UsCi0gICAgICAgICAgICBzdGFjazogeC5zdGFjawotICAgICAgICAgfQot
ICAgICAgfSk7Ci0gICAgICB2YXIgZGF0YSA9IHsKLSAgICAgICAgIHRlc3Q6IHdpbmRvdy5sb2Nh
dGlvbi5ocmVmLAotICAgICAgICAgdGVzdHM6IHRlc3RfcmVzdWx0cywKLSAgICAgICAgIHN0YXR1
czogc3RhdHVzLnN0YXR1cywKLSAgICAgICAgIG1lc3NhZ2U6IHN0YXR1cy5tZXNzYWdlLAotICAg
ICAgICAgc3RhY2s6IHN0YXR1cy5zdGFjaworICBmdW5jdGlvbiBkdW1wX3Rlc3RfcmVzdWx0cyh0
ZXN0cywgc3RhdHVzKSB7CisgICAgdmFyIHJlc3VsdHNfZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIHJlc3VsdHNfZWxlbWVudC50eXBlID0gInRleHQvanNv
biI7CisgICAgcmVzdWx0c19lbGVtZW50LmlkID0gIl9fdGVzdGhhcm5lc3NfX3Jlc3VsdHNfXyI7
CisgICAgdmFyIHRlc3RfcmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbiAoeCkgeworICAgICAg
cmV0dXJuIHsKKyAgICAgICAgbmFtZTogeC5uYW1lLAorICAgICAgICBzdGF0dXM6IHguc3RhdHVz
LAorICAgICAgICBtZXNzYWdlOiB4Lm1lc3NhZ2UsCisgICAgICAgIHN0YWNrOiB4LnN0YWNrLAog
ICAgICAgfTsKLSAgICAgIHJlc3VsdHNfZWxlbWVudC50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5n
aWZ5KGRhdGEpOworICAgIH0pOworICAgIHZhciBkYXRhID0geworICAgICAgdGVzdDogd2luZG93
LmxvY2F0aW9uLmhyZWYsCisgICAgICB0ZXN0czogdGVzdF9yZXN1bHRzLAorICAgICAgc3RhdHVz
OiBzdGF0dXMuc3RhdHVzLAorICAgICAgbWVzc2FnZTogc3RhdHVzLm1lc3NhZ2UsCisgICAgICBz
dGFjazogc3RhdHVzLnN0YWNrLAorICAgIH07CisgICAgcmVzdWx0c19lbGVtZW50LnRleHRDb250
ZW50ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CiAKLSAgICAgIC8vIFRvIGF2b2lkIGEgSGllcmFy
Y2h5UmVxdWVzdEVycm9yIHdpdGggWE1MIGRvY3VtZW50cywgZW5zdXJlIHRoYXQgJ3Jlc3VsdHNf
ZWxlbWVudCcKLSAgICAgIC8vIGlzIGluc2VydGVkIGF0IGEgbG9jYXRpb24gdGhhdCByZXN1bHRz
IGluIGEgdmFsaWQgZG9jdW1lbnQuCi0gICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuYm9keQot
ICAgICAgICAgPyBkb2N1bWVudC5ib2R5IC8vIDxib2R5PiBpcyByZXF1aXJlZCBpbiBYSFRNTCBk
b2N1bWVudHMKLSAgICAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OyAvLyBmYWxsYmFj
ayBmb3Igb3B0aW9uYWwgPGJvZHk+IGluIEhUTUw1LCBTVkcsIGV0Yy4KKyAgICAvLyBUbyBhdm9p
ZCBhIEhpZXJhcmNoeVJlcXVlc3RFcnJvciB3aXRoIFhNTCBkb2N1bWVudHMsIGVuc3VyZSB0aGF0
ICdyZXN1bHRzX2VsZW1lbnQnCisgICAgLy8gaXMgaW5zZXJ0ZWQgYXQgYSBsb2NhdGlvbiB0aGF0
IHJlc3VsdHMgaW4gYSB2YWxpZCBkb2N1bWVudC4KKyAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQu
Ym9keQorICAgICAgPyBkb2N1bWVudC5ib2R5IC8vIDxib2R5PiBpcyByZXF1aXJlZCBpbiBYSFRN
TCBkb2N1bWVudHMKKyAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OyAvLyBmYWxsYmFj
ayBmb3Igb3B0aW9uYWwgPGJvZHk+IGluIEhUTUw1LCBTVkcsIGV0Yy4KIAotICAgICAgcGFyZW50
LmFwcGVuZENoaWxkKHJlc3VsdHNfZWxlbWVudCk7Ci0gICB9CisgICAgcGFyZW50LmFwcGVuZENo
aWxkKHJlc3VsdHNfZWxlbWVudCk7CisgIH0KIAotICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2so
ZHVtcF90ZXN0X3Jlc3VsdHMpOworICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhkdW1wX3Rlc3Rf
cmVzdWx0cyk7CiAKLSAgIC8qIElmIHRoZSBwYXJlbnQgd2luZG93IGhhcyBhIHRlc3RoYXJuZXNz
X3Byb3BlcnRpZXMgb2JqZWN0LAotICAgICogd2UgdXNlIHRoaXMgdG8gcHJvdmlkZSB0aGUgdGVz
dCBzZXR0aW5ncy4gVGhpcyBpcyB1c2VkIGJ5IHRoZQotICAgICogZGVmYXVsdCBpbi1icm93c2Vy
IHJ1bm5lciB0byBjb25maWd1cmUgdGhlIHRpbWVvdXQgYW5kIHRoZQotICAgICogcmVuZGVyaW5n
IG9mIHJlc3VsdHMKLSAgICAqLwotICAgdHJ5IHsKLSAgICAgIGlmICh3aW5kb3cub3BlbmVyICYm
ICJ0ZXN0aGFybmVzc19wcm9wZXJ0aWVzIiBpbiB3aW5kb3cub3BlbmVyKSB7Ci0gICAgICAgICAv
KiBJZiB3ZSBwYXNzIHRoZSB0ZXN0aGFybmVzc19wcm9wZXJ0aWVzIG9iamVjdCBhcy1pcyBoZXJl
IHdpdGhvdXQKLSAgICAgICAgICAqIEpTT04gc3RyaW5naWZ5aW5nIGFuZCByZXBhcnNpbmcgaXQs
IElFIGZhaWxzICYgZW1pdHMgdGhlIG1lc3NhZ2UKLSAgICAgICAgICAqICJDb3VsZCBub3QgY29t
cGxldGUgdGhlIG9wZXJhdGlvbiBkdWUgdG8gZXJyb3IgODA3MDAwMTkiLgotICAgICAgICAgICov
Ci0gICAgICAgICBzZXR1cChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHdpbmRvdy5vcGVuZXIu
dGVzdGhhcm5lc3NfcHJvcGVydGllcykpKTsKLSAgICAgIH0KLSAgIH0gY2F0Y2ggKGUpIHt9Ci0g
ICAvLyB2aW06IHNldCBleHBhbmR0YWIgc2hpZnR3aWR0aD00IHRhYnN0b3A9NDoKKyAgLyogSWYg
dGhlIHBhcmVudCB3aW5kb3cgaGFzIGEgdGVzdGhhcm5lc3NfcHJvcGVydGllcyBvYmplY3QsCisg
ICAqIHdlIHVzZSB0aGlzIHRvIHByb3ZpZGUgdGhlIHRlc3Qgc2V0dGluZ3MuIFRoaXMgaXMgdXNl
ZCBieSB0aGUKKyAgICogZGVmYXVsdCBpbi1icm93c2VyIHJ1bm5lciB0byBjb25maWd1cmUgdGhl
IHRpbWVvdXQgYW5kIHRoZQorICAgKiByZW5kZXJpbmcgb2YgcmVzdWx0cworICAgKi8KKyAgdHJ5
IHsKKyAgICBpZiAod2luZG93Lm9wZW5lciAmJiAidGVzdGhhcm5lc3NfcHJvcGVydGllcyIgaW4g
d2luZG93Lm9wZW5lcikgeworICAgICAgLyogSWYgd2UgcGFzcyB0aGUgdGVzdGhhcm5lc3NfcHJv
cGVydGllcyBvYmplY3QgYXMtaXMgaGVyZSB3aXRob3V0CisgICAgICAgKiBKU09OIHN0cmluZ2lm
eWluZyBhbmQgcmVwYXJzaW5nIGl0LCBJRSBmYWlscyAmIGVtaXRzIHRoZSBtZXNzYWdlCisgICAg
ICAgKiAiQ291bGQgbm90IGNvbXBsZXRlIHRoZSBvcGVyYXRpb24gZHVlIHRvIGVycm9yIDgwNzAw
MDE5Ii4KKyAgICAgICAqLworICAgICAgc2V0dXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh3
aW5kb3cub3BlbmVyLnRlc3RoYXJuZXNzX3Byb3BlcnRpZXMpKSk7CisgICAgfQorICB9IGNhdGNo
IChlKSB7fQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXNvdXJjZXMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmNjVhNTYwZmRj
YzI1MDY2NWU3Y2Q3ZjU3MmRkZmYxZTcwZWFmYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS90ZXN0L1dBVkUgTG9jYWwucG9zdG1hbl9lbnZpcm9ubWVudC5qc29uIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Qv
V0FWRSBMb2NhbC5wb3N0bWFuX2Vudmlyb25tZW50Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFhNmEwODlh
YjUzYzc0NzczNmJhMzNkN2Q0NDRjNzQ5MDdmZTkxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0L1dB
VkUgTG9jYWwucG9zdG1hbl9lbnZpcm9ubWVudC5qc29uCQpAQCAtMCwwICsxLDM0IEBACit7CisJ
ImlkIjogIjM3YmU4ZWM0LTc4NTUtNDU1NC04NjdlLTdhNWQyYTRmOTllNiIsCisJIm5hbWUiOiAi
V0FWRSBMb2NhbCIsCisJInZhbHVlcyI6IFsKKwkJeworCQkJImtleSI6ICJob3N0IiwKKwkJCSJ2
YWx1ZSI6ICJ3ZWItcGxhdGZvcm0udGVzdCIsCisJCQkiZW5hYmxlZCI6IHRydWUKKwkJfSwKKwkJ
eworCQkJImtleSI6ICJwb3J0IiwKKwkJCSJ2YWx1ZSI6ICI4MDAwIiwKKwkJCSJlbmFibGVkIjog
dHJ1ZQorCQl9LAorCQl7CisJCQkia2V5IjogInByb3RvY29sIiwKKwkJCSJ2YWx1ZSI6ICJodHRw
IiwKKwkJCSJlbmFibGVkIjogdHJ1ZQorCQl9LAorCQl7CisJCQkia2V5IjogIndlYl9yb290IiwK
KwkJCSJ2YWx1ZSI6ICJfd2F2ZSIsCisJCQkiZW5hYmxlZCI6IHRydWUKKwkJfSwKKwkJeworCQkJ
ImtleSI6ICJkZXZpY2VfdGltZW91dCIsCisJCQkidmFsdWUiOiAiNjAwMDAiLAorCQkJImVuYWJs
ZWQiOiB0cnVlCisJCX0KKwldLAorCSJfcG9zdG1hbl92YXJpYWJsZV9zY29wZSI6ICJlbnZpcm9u
bWVudCIsCisJIl9wb3N0bWFuX2V4cG9ydGVkX2F0IjogIjIwMjAtMDUtMjVUMTI6MTI6MzcuMDk4
WiIsCisJIl9wb3N0bWFuX2V4cG9ydGVkX3VzaW5nIjogIlBvc3RtYW4vNy4yNS4wIgorfQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0L1dBVkUgU2VydmVyIFJFU1Qg
QVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3QvV0FWRSBTZXJ2ZXIgUkVTVCBB
UEkgVGVzdHMucG9zdG1hbl9jb2xsZWN0aW9uLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNjYmVkYjUwNDg2
OWQ0YjcxNmZjNGNjMGU5NjdhZTkwNzFmZjcyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0L1dBVkUg
U2VydmVyIFJFU1QgQVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uCQpAQCAtMCwwICsx
LDk4MzMgQEAKK3sKKwkiaW5mbyI6IHsKKwkJIl9wb3N0bWFuX2lkIjogImNjZDYxMTdhLTZkNjEt
NDYxNy1hNmExLTcxMTVkYjRkNGQ5MiIsCisJCSJuYW1lIjogIldBVkUgU2VydmVyIFJFU1QgQVBJ
IFRlc3RzIiwKKwkJInNjaGVtYSI6ICJodHRwczovL3NjaGVtYS5nZXRwb3N0bWFuLmNvbS9qc29u
L2NvbGxlY3Rpb24vdjIuMS4wL2NvbGxlY3Rpb24uanNvbiIKKwl9LAorCSJpdGVtIjogWworCQl7
CisJCQkibmFtZSI6ICJSZWFkIEF2YWlsYWJsZSBUZXN0cyIsCisJCQkiaXRlbSI6IFsKKwkJCQl7
CisJCQkJCSJuYW1lIjogIlJlYWQgQXZhaWxhYmxlIFRlc3RzIiwKKwkJCQkJImV2ZW50IjogWwor
CQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJImlkIjogIjA1MWJlZjk0LTU1NDQtNGRkYi05ZDg1LTE2NzY3N2ViZWNiMiIsCisJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkidmFyIGF2
YWlsYWJsZVRlc3RzID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YgYXZhaWxhYmxlVGVzdHMpLnRv
LmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkiICAgIGZvciAodmFyIGFwaSBvZiBPYmpl
Y3Qua2V5cyhhdmFpbGFibGVUZXN0cykpIHsiLAorCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0
KGF2YWlsYWJsZVRlc3RzW2FwaV0pLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJ
CQkJCQkiICAgICAgICB2YXIgYXBpUmVnRXhwID0gbmV3IFJlZ0V4cChcIl4vXCIgKyBhcGksIFwi
aVwiKTsiLAorCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgdGVzdCBvZiBhdmFpbGFibGVUZXN0
c1thcGldKSB7IiwKKwkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QodGVzdCkudG8ubWF0
Y2goYXBpUmVnRXhwKTsiLAorCQkJCQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkiICAgIH0i
LAorCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIgaW5jbHVkZWRU
ZXN0cyA9IFtdOyIsCisJCQkJCQkJCQkidmFyIGV4Y2x1ZGVkVGVzdHMgPSBbXTsiLAorCQkJCQkJ
CQkJInZhciBzcGVjaWFsVGltZW91dFRlc3QgPSBcIlwiOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCSJ2YXIgYXBpcyA9IE9iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKTsiLAorCQkJCQkJCQkJ
ImZvcih2YXIgYXBpIG9mIGFwaXMpIHsiLAorCQkJCQkJCQkJIiAgICBpZiAoYXZhaWxhYmxlVGVz
dHNbYXBpXS5sZW5ndGggPiA1MCkgeyIsCisJCQkJCQkJCQkiICAgICAgICB2YXIgc3ViRGlycyA9
IGF2YWlsYWJsZVRlc3RzW2FwaV0ubWFwKHRlc3QgPT4gdGVzdC5zcGxpdChcIi9cIikuZmlsdGVy
KHBhcnQgPT4gISFwYXJ0KS5qb2luKFwiL1wiKS5zcGxpdChcIi9cIilbMV0pLnJlZHVjZSgoYWNj
LCBjdXJyKSA9PiBhY2MuaW5kZXhPZihjdXJyKSA9PT0gLTEgPyBhY2MuY29uY2F0KFtjdXJyXSkg
OiBhY2MsIFtdKTsiLAorCQkJCQkJCQkJIiAgICAgICAgaWYgKHN1YkRpcnMubGVuZ3RoID4gMikg
eyIsCisJCQkJCQkJCQkiICAgICAgICAgICAgaW5jbHVkZWRUZXN0cy5wdXNoKFwiL1wiICsgYXBp
KTsiLAorCQkJCQkJCQkJIiAgICAgICAgICAgIGV4Y2x1ZGVkVGVzdHMucHVzaChcIi9cIiArIGFw
aSArIFwiL1wiICsgc3ViRGlyc1swXSk7IiwKKwkJCQkJCQkJCSIgICAgICAgICAgICBzcGVjaWFs
VGltZW91dFRlc3QgPSBhdmFpbGFibGVUZXN0c1thcGldW2F2YWlsYWJsZVRlc3RzW2FwaV0ubGVu
Z3RoIC0gMV07IiwKKwkJCQkJCQkJCSIgICAgICAgICAgICBicmVhazsiLAorCQkJCQkJCQkJIiAg
ICAgICAgfSIsCisJCQkJCQkJCQkiICAgICAgICAiLAorCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJ
CQkJCSJ9IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiYXZhaWxh
YmxlX3Rlc3RzXCIsIEpTT04uc3RyaW5naWZ5KGF2YWlsYWJsZVRlc3RzKSk7IiwKKwkJCQkJCQkJ
CSJwbS5nbG9iYWxzLnNldChcImluY2x1ZGVkX3Rlc3RzXCIsIEpTT04uc3RyaW5naWZ5KGluY2x1
ZGVkVGVzdHMpKTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZXhjbHVkZWRfdGVzdHNc
IiwgSlNPTi5zdHJpbmdpZnkoZXhjbHVkZWRUZXN0cykpOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFs
cy5zZXQoXCJzcGVjaWFsX3RpbWVvdXRfdGVzdFwiLCBzcGVjaWFsVGltZW91dFRlc3QucmVwbGFj
ZShcIi5cIiwgXCJcIikpOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZh
c2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjog
eworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJf
cm9vdH19L2FwaS90ZXN0cyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9
fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkidGVzdHMiCisJCQkJCQkJXQorCQkJCQkJfQor
CQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQ
cm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJDcmVhdGUgYW5kIFJl
YWQgU2Vzc2lvbnMiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJTdGFydCBl
eHBpcmluZyBzZXNzaW9uIHJlbW92ZSBleHBpcmF0aW9uIGRhdGUiLAorCQkJCQkiaXRlbSI6IFsK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBXaXRoIEV4cGlyYXRpb24i
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImE4YmYzZTQxLWE3ZGYt
NGM2Yi04YTIwLTNhMWU2ZDhhNTFkOSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5l
dyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17
NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRv
a2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5t
YXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJ
CQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
fQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3Qi
LAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNDM3MDU0NmYtYjA4Yy00
Zjc3LTliZDktMWNkMTQ0MDA2NjVlIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJ
InZhciBleHBpcmF0aW9uRGF0ZSA9IERhdGUubm93KCkgKyAxMDAwMDsiLAorCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJleHBpcmF0aW9uX2RhdGVcIiwgZXhwaXJhdGlvbkRhdGUpOyIKKwkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJt
ZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJ
CQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlw
ZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxp
Y2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJCSJib2R5Ijogewor
CQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAie1xuXHRcImV4cGlyYXRp
b25fZGF0ZVwiOiB7e2V4cGlyYXRpb25fZGF0ZX19XG59IgorCQkJCQkJCQl9LAorCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJ
CSJzZXNzaW9ucyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNz
aW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiM2Rj
YjViNmMtOTE1MS00OWY3LWExYTYtNzQ0NzU5MjdiMzA0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAor
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRh
dGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXgg
PSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYw
LTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgY29udGFpbnMgZXhwaXJhdGlvbiBkYXRlXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5w
cm9wZXJ0eShcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIgZXhwaXJhdGlvbkRhdGUgPSBwbS5nbG9iYWxzLmdl
dChcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBt
LnRlc3QoXCJFeHBpcmF0aW9uIGRhdGUgaXMgYXMgc3BlY2lmaWVkXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChEYXRlLnBhcnNlKGpzb25EYXRhLmV4cGlyYXRp
b25fZGF0ZSkpLnRvLmVxdWFsKGV4cGlyYXRpb25EYXRlKTsiLAorCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJ
fSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFt
ZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJp
ZCI6ICI4ZDA1NTc4YS1lMmQ2LTQxZTktYTJhNC1hYTdkOTJiZmJiY2UiLAorCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJ
CQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVh
ZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9
fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9u
X3Rva2VufX0vc3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJ
CQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJ
CQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNGM1ZTNiYTQtZTI3Yi00MzQxLThj
ZjgtNzRlZDA0N2E4NzQ3IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlth
LWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEy
fSRcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1
Y3R1cmUgY29udGFpbnMgZXhwaXJhdGlvbiBkYXRlXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImV4cGlyYXRp
b25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiRXhwaXJhdGlvbiBkYXRlIGlzIG51bGxcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmV4cGlyYXRpb25fZGF0ZSkudG8u
YmUubnVsbDsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwK
KwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQki
aGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9j
b2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNz
aW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9u
cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgor
CQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJCQkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJImhlYWRlciI6
IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97
e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290
fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJ
CQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9m
aWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJ
CX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJ
CQkibmFtZSI6ICJSZWFkIFB1YmxpYyBTZXNzaW9ucyIsCisJCQkiaXRlbSI6IFsKKwkJCQl7CisJ
CQkJCSJuYW1lIjogIlJlYWQgUHVibGljIFNlc3Npb25zIiwKKwkJCQkJImV2ZW50IjogWworCQkJ
CQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJImlkIjogIjEwODFhZmQ4LWE3NzItNDU2NS1iMDNkLWI1OGY3NzNjYmI2NSIsCisJCQkJCQkJ
CSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChc
IlJlc3BvbnNlIGlzIEpTT04gQXJyYXlcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAg
IHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQki
fSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2Qi
OiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zL3B1YmxpYyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkicHVibGljIgor
CQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9CisJ
CQldLAorCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5h
bWUiOiAiRmluZCBTZXNzaW9uIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAi
Q3JlYXRlIFNlc3Npb24gTm8gQ29uZmlndXJhdGlvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CSJpZCI6ICIyNjhlOGEzMS04N2JiLTRlYzUtODFkNS04N2RjNzQwOTY4MjgiLAorCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJImNvbnN0IHRva2Vu
UmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9
LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
InBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7
IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwi
dG9rZW5cIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5t
YXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJInBt
Lmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQldLAorCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQld
LAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkiaGVh
ZGVyIjogWworCQkJCQkJCXsKKwkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJ
CQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJCQkJ
CSJib2R5IjogeworCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJInJhdyI6ICIiCisJCQkJ
CQl9LAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Np
b25zIgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiRmluZCBTZXNzaW9uIFRva2VuIiwKKwkJCQkJImV2
ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjYyNWZjYzJhLWY3YjEtNDAzYy1iNWM1LTU2ZGI3
YzViY2VlNSIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcG0u
Z2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rva2VuXCIpOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5z
ZXQoXCJzZXNzaW9uX3Rva2VuX2ZyYWdtZW50XCIsIHRva2VuLnNwbGl0KFwiLVwiKS5zaGlmdCgp
KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjhlMDQyMTJmLWUyNTktNDEzZi05OGVlLWUzNjZj
ZDNhZGZkZCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkiY29uc3Qgc2Vzc2lvblRva2VuID0gcG0uZ2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rv
a2VuXCIpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS50ZXN0KFwiRm91bmQgdG9rZW4g
aXMgb3JpZ2luYWwgdG9rZW5cIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKHNlc3Npb25Ub2tlbik7IiwKKwkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9
CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lv
bnMve3tzZXNzaW9uX3Rva2VuX2ZyYWdtZW50fX0iLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
XSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbl9mcmFnbWVudH19IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJ
CQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAi
Q2xlYW4gVXAiLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwK
KwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7
c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBv
cnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Np
b25fdG9rZW59fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkZpbmQgU2Vzc2lvbiBUb28gU2hvcnQg
RnJhZ21lbnQiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJw
cmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiNmY4NDI5ZTMt
OWMxMi00MjNjLWJhYWYtOGY4ZGUwZTRlYTQ5IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJ
CQkiY29uc3QgdG9rZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9rZW5cIik7IiwKKwkJ
CQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5fZnJhZ21lbnRcIiwgdG9rZW4u
c3BsaXQoXCItXCIpLnNoaWZ0KCkpOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiN2Y2ZWY1Njct
Mjc0ZS00ZjlkLWI3ZmMtNTBmODI0MDU0N2U5IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDQwNFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoNDA0KTsiLAorCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjog
IkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXci
OiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNz
aW9ucy8xMjM0NTY3IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQi
OiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwK
KwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSIxMjM0NTY3Igor
CQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9CisJ
CQldLAorCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5h
bWUiOiAiUmVhZCBOZXh0IFRlc3QiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6
ICJDbGVhbiBVcCIsCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUi
LAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMv
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQki
cG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290
fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbn19IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgSW52
YWxpZCBTZXNzaW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjExZjVjNjIwLWRj
M2ItNGE4Yy04ZDJmLWY5NjYzMDI1Yzc5ZiIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyA0MDRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDQwNCk7IiwKKwkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9
CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMv
e3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibmV4dCIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJ
CX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkNy
ZWF0ZSBTZXNzaW9uIFxcdyBDb25maWd1cmF0aW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJ
eworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogImM2N2NkZTdlLTcyMzctNDc5Yy1hMGM2LWI4NGE1MzNjM2IxZSIsCisJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJInBt
Lmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQldLAorCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJ
CXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCSJpZCI6ICIyNGIzOGQ2NC01YzI0LTQxNWYtYjZmNi1mOGQyNTJkNjlhYzgiLAorCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJ2YXIgYXV0b21hdGljVGltZW91dCA9IDEyMDAwMDsi
LAorCQkJCQkJCQkJInZhciBtYW51YWxUaW1lb3V0ID0gMTAwMDAwMDsiLAorCQkJCQkJCQkJInZh
ciBzcGVjaWFsVGltZW91dCA9IDIwMDA7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLmds
b2JhbHMuc2V0KFwiYXV0b21hdGljX3RpbWVvdXRcIiwgYXV0b21hdGljVGltZW91dCk7IiwKKwkJ
CQkJCQkJCSJwbS5nbG9iYWxzLnNldChcIm1hbnVhbF90aW1lb3V0XCIsIG1hbnVhbFRpbWVvdXQp
OyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzcGVjaWFsX3RpbWVvdXRcIiwgc3BlY2lh
bFRpbWVvdXQpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0
cyA9IEpTT04ucGFyc2UocG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVfdGVzdHNcIikpOyIsCisJ
CQkJCQkJCQkiY29uc3QgdGVzdDEgPSBhdmFpbGFibGVUZXN0c1tPYmplY3Qua2V5cyhhdmFpbGFi
bGVUZXN0cylbMF1dWzBdOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxzLnNl
dChcInNpbmdsZV90ZXN0XzFcIiwgdGVzdDEpOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJImhlYWRlciI6IFsKKwkJ
CQkJCQl7CisJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJIm5hbWUiOiAi
Q29udGVudC1UeXBlIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCSJ2YWx1ZSI6
ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCX0KKwkJCQkJCV0sCisJCQkJCQkiYm9keSI6IHsK
KwkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCSJyYXciOiAie1xuICAgIFwidGVzdHNcIjog
e1xuICAgICAgICBcImluY2x1ZGVcIjogW1wie3tzaW5nbGVfdGVzdF8xfX1cIl1cbiAgICB9LFxu
ICAgIFwidHlwZXNcIjogW1xuICAgICAgICBcImF1dG9tYXRpY1wiLFxuICAgICAgICBcIm1hbnVh
bFwiXG4gICAgXVxufSIKKwkJCQkJCX0sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIE5leHQg
VGVzdCBvZiBQZW5kaW5nIFNlc3Npb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAi
MDgwNmU0ZTAtYmQxYi00MGJhLWE3ZDUtNzRkNDE0NzNhMTQxIiwKKwkJCQkJCQkJImV4ZWMiOiBb
CisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5y
ZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCBuZXh0VGVzdCA9IGpzb25EYXRhLm5l
eHRfdGVzdDsiLAorCQkJCQkJCQkJImNvbnN0IHRlc3QgPSBcIi9cIiArIG5leHRUZXN0LnNwbGl0
KFwiL1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJ
CSIiLAorCQkJCQkJCQkJImNvbnN0IHdlYl9yb290ID0gcG0uZW52aXJvbm1lbnQuZ2V0KFwid2Vi
X3Jvb3RcIik7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1cm5lZCB0
ZXN0IGlzIG5ldyBzZXNzaW9uIHBhZ2VcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdCh0ZXN0KS50by5lcXVhbChcIi9cIiArIHdlYl9yb290ICsgXCIvbmV3c2Vzc2lv
bi5odG1sXCIpOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVx
dWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L25leHQiLAorCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJIm5l
eHQiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJ
CX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJImV2ZW50Ijog
WworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJImlkIjogIjliMWYyZGVjLTk5NDktNDlmZi1iNDY2LWY2MDJiMTFkZGU1ZCIsCisJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1
ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwK
KwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJCSJzdGFydCIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIFJ1bm5p
bmcgU2Vzc2lvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI3ZmVhMjk3Ny01Y2Ni
LTQ5ZWUtOGYwNy03OWE3ZjIyNDVmOWMiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24o
KTsiLAorCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0ganNvbkRhdGEubmV4dF90ZXN0OyIsCisJ
CQkJCQkJCQkiY29uc3QgcGFyYW1ldGVycyA9IG5leHRUZXN0LnNwbGl0KFwiP1wiKVsxXS5zcGxp
dChcIiZcIik7IiwKKwkJCQkJCQkJCSJsZXQgdGVzdCA9IHBhcmFtZXRlcnMuZmluZChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnNwbGl0KFwiPVwiKVswXSA9PT0gXCJ0ZXN0X3VybFwiKS5zcGxpdChc
Ij1cIilbMV07IiwKKwkJCQkJCQkJCSJ0ZXN0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRlc3QpOyIs
CisJCQkJCQkJCQkidGVzdCA9IFwiL1wiICsgdGVzdC5zcGxpdChcIi9cIikuc2xpY2UoMykuam9p
bihcIi9cIikuc3BsaXQoXCI/XCIpWzBdOyIsCisJCQkJCQkJCQkiY29uc3QgYXBpID0gdGVzdC5z
cGxpdChcIi9cIikuZmlsdGVyKHBhcnQgPT4gISFwYXJ0KVswXSIsCisJCQkJCQkJCQkiY29uc3Qg
YXZhaWxhYmxlVGVzdHMgPSBKU09OLnBhcnNlKHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rl
c3RzXCIpKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChcIlJldHVybmVkIHRl
c3QgaXMgdmFsaWQgdGVzdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGF2YWlsYWJsZVRlc3RzKS50by5oYXZlLnByb3BlcnR5KGFwaSk7IiwKKwkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGF2YWlsYWJsZVRlc3RzW2FwaV0pLnRvLmNvbnRhaW4odGVzdCkiLAorCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInNldFRp
bWVvdXQoZnVuY3Rpb24gKCkge30sIDEwMDApOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJ
CQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwKKwkJ
CQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJ
CQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCSJu
ZXh0IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3JlYXRlIFJlc3VsdCIsCisJCQkJCSJldmVudCI6
IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCSJpZCI6ICI3Y2MyN2VlOC0yZjA2LTRlMjUtOThmYi05ODcyYzZjZjBkOTMiLAor
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVx
dWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkiaGVhZGVyIjogWworCQkJ
CQkJCXsKKwkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkibmFtZSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIsCisJCQkJ
CQkJCSJ0eXBlIjogInRleHQiCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJCQkJCSJib2R5Ijogewor
CQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJInJhdyI6ICJ7XG4gIFwidGVzdFwiOiBcInt7
Y3VycmVudF90ZXN0fX1cIixcbiAgXCJzdGF0dXNcIjogXCJPS1wiLFxuICBcIm1lc3NhZ2VcIjog
bnVsbCxcbiAgXCJzdWJ0ZXN0c1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3VidGVz
dCB0ZXN0aW5nIGZlYXR1cmUgeHlcIixcbiAgICAgIFwic3RhdHVzXCI6IFwiRkFJTFwiLFxuICAg
ICAgXCJtZXNzYWdlXCI6IFwiRXJyb3IgbWVzc2FnZVwiXG4gICAgfVxuICBdXG59IgorCQkJCQkJ
fSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0iLAor
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJ
XQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJewor
CQkJCQkibmFtZSI6ICJSZWFkIE5leHQgVGVzdCBvZiBDb21wbGV0ZWQgU2Vzc2lvbiIsCisJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICIwYTczYTVlYi0zZWRiLTRkMTUtOTI0ZC0yNjBkZDIy
YmQ4MzEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJImNv
bnN0IG5leHRUZXN0ID0ganNvbkRhdGEubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkiY29uc3QgdGVz
dCA9IFwiL1wiICsgbmV4dFRlc3Quc3BsaXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIvXCIpLnNw
bGl0KFwiP1wiKVswXTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3Qgd2ViX3Jvb3Qg
PSBwbS5lbnZpcm9ubWVudC5nZXQoXCJ3ZWJfcm9vdFwiKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkicG0udGVzdChcIlJldHVybmVkIHRlc3QgaXMgbmV3IHNlc3Npb24gcGFnZVwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHRlc3QpLnRvLmVxdWFsKFwiL1wi
ICsgd2ViX3Jvb3QgKyBcIi9maW5pc2guaHRtbFwiKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJ
CQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJ
CX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Np
b25fdG9rZW59fS9uZXh0IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBv
cnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25f
dG9rZW59fSIsCisJCQkJCQkJCSJuZXh0IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJ
CQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAi
LAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59
fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJ
fSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9uIFxcdyBDb25maWd1cmF0aW9u
IENvcHkiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiOTQ4NzdlYzYtNzBlYS00Yzc4
LWFjYjUtMjAwNjBhNTM1NjUzIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiY29uc3Qg
cmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCB0b2tlbiA9
IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rv
a2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogImRjYzI5MDkyLWI3
YTEtNDBmYy04MzU5LWVjYzY1NWRiYTQ4MiIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
InZhciBhdXRvbWF0aWNUaW1lb3V0ID0gMTIwMDAwOyIsCisJCQkJCQkJCQkidmFyIG1hbnVhbFRp
bWVvdXQgPSAxMDAwMDAwOyIsCisJCQkJCQkJCQkidmFyIHNwZWNpYWxUaW1lb3V0ID0gMjAwMDsi
LAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdXRvbWF0aWNfdGlt
ZW91dFwiLCBhdXRvbWF0aWNUaW1lb3V0KTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
bWFudWFsX3RpbWVvdXRcIiwgbWFudWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxz
LnNldChcInNwZWNpYWxfdGltZW91dFwiLCBzcGVjaWFsVGltZW91dCk7IgorCQkJCQkJCQldLAor
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJ
CQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQki
aGVhZGVyIjogWworCQkJCQkJCXsKKwkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJ
CQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJ
CQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJ
CQkJCSJib2R5IjogeworCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJInJhdyI6ICJ7XG4g
ICAgXCJ0ZXN0c1wiOiB7XG4gICAgICAgIFwiaW5jbHVkZVwiOiB7e2luY2x1ZGVkX3Rlc3RzfX0s
XG4gICAgICAgIFwiZXhjbHVkZVwiOiB7e2V4Y2x1ZGVkX3Rlc3RzfX1cbiAgICB9LFxuICAgIFwi
dHlwZXNcIjogW1xuICAgICAgICBcImF1dG9tYXRpY1wiLFxuICAgICAgICBcIm1hbnVhbFwiXG4g
ICAgXSxcbiAgICBcInRpbWVvdXRzXCI6IHtcbiAgICAgICAgXCJhdXRvbWF0aWNcIjogMTAwMFxu
ICAgIH0sXG4gICAgXCJsYWJlbHNcIjogW1wibGFiZWwxXCIsIFwibGFiZWwyXCJdXG59IgorCQkJ
CQkJfSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNz
aW9ucyIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJ
CQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24iLAorCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkiaWQiOiAiOGY2ZTJiZjItNmMxZS00MzRlLTgzYzUtOWJjYzU3ODgwNjkyIiwK
KwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQi
LAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWwor
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJInN0YXJ0IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiUGF1c2UgU2Vzc2lvbiIsCisJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICJhMGE4MGMwNS1hMmNhLTQzMGEtOGJlZC00NmFkNzk3
OGM2ODQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkiaGVhZGVy
IjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59
fS9wYXVzZSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2Vu
fX0iLAorCQkJCQkJCQkicGF1c2UiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQki
cmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIE5leHQgVGVz
dCBvZiBBYm9ydGVkIFNlc3Npb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiMDBk
ODIzZTAtMjA1OS00Y2FiLTgxZDYtOGQxZGU5ZTViNjJhIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwK
KwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNw
b25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCBuZXh0VGVzdCA9IGpzb25EYXRhLm5leHRf
dGVzdDsiLAorCQkJCQkJCQkJImNvbnN0IHRlc3QgPSBcIi9cIiArIG5leHRUZXN0LnNwbGl0KFwi
L1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJImNvbnN0IHdlYl9yb290ID0gcG0uZW52aXJvbm1lbnQuZ2V0KFwid2ViX3Jv
b3RcIik7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1cm5lZCB0ZXN0
IGlzIG5ldyBzZXNzaW9uIHBhZ2VcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdCh0ZXN0KS50by5lcXVhbChcIi9cIiArIHdlYl9yb290ICsgXCIvcGF1c2UuaHRtbFwi
KTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJs
IjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwKKwkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRo
IjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJ0
ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCSJuZXh0IgorCQkJ
CQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJ
CXsKKwkJCQkJIm5hbWUiOiAiU3RvcCBTZXNzaW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJ
eworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogImI4MjExYzEzLTY2N2QtNDk3MC1hZWRjLTYzOThjMjVjYzQwYyIsCisJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0b3AiLAorCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
InNlc3Npb25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJInN0b3Ai
CisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0s
CisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIE5leHQgVGVzdCBvZiBBYm9ydGVkIFNlc3Npb24i
LAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiOGFhZDgxM2QtNTNmZS00OWZkLWJkZmMt
ZjE2Y2UyMjMzYWUyIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCSJjb25zdCBuZXh0VGVzdCA9IGpzb25EYXRhLm5leHRfdGVzdDsiLAorCQkJCQkJCQkJImNv
bnN0IHRlc3QgPSBcIi9cIiArIG5leHRUZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwi
L1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJImNvbnN0IHdl
Yl9yb290ID0gcG0uZW52aXJvbm1lbnQuZ2V0KFwid2ViX3Jvb3RcIik7IiwKKwkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1cm5lZCB0ZXN0IGlzIG5ldyBzZXNzaW9uIHBhZ2Vc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0ZXN0KS50by5lcXVh
bChcIi9cIiArIHdlYl9yb290ICsgXCIvZmluaXNoLmh0bWxcIik7IiwKKwkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9
CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMv
e3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibmV4dCIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJ
CX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkNs
ZWFuIFVwIiwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nl
c3Npb25fdG9rZW59fSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAor
CQl7CisJCQkibmFtZSI6ICJDb250cm9sIFNlc3Npb24iLAorCQkJIml0ZW0iOiBbCisJCQkJewor
CQkJCQkibmFtZSI6ICJTZXR1cCIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIkNyZWF0ZSBTZXNzaW9uIE5vIENvbmZpZ3VyYXRpb24iLAorCQkJCQkJCSJldmVudCI6
IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjMwNWNiOTE1LTg0OTYtNDU3Ny1iMTdhLWU4MTg5ZDY2
YzNkMSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJ
CSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAt
OV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwi
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRo
IHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsi
LAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJ
CQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJInBtLmdsb2Jh
bHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCXsKKwkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQt
VHlwZSIsCisJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJ
CQkJCX0KKwkJCQkJCQkJXSwKKwkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkibW9kZSI6ICJy
YXciLAorCQkJCQkJCQkJInJhdyI6ICIiCisJCQkJCQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jv
b3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25z
IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwK
KwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQki
bmFtZSI6ICJQYXVzZSBQZW5kaW5nIFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsK
KwkJCQkJCQkibmFtZSI6ICJQYXVzZSBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICI5ZDkwMzE2NS05NjY3LTQzYjAtYjIxMC1hOTUwZDBmYTFmYTIiLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJ
CQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAor
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lv
bnMve3tzZXNzaW9uX3Rva2VufX0vcGF1c2UiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
InNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJw
YXVzZSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0
YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMDMwNzkxOWIt
NjYzMC00OGZmLWFjMTgtMTBjMGE0N2VhMjU0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGlzIHBlbmRpbmdcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25E
YXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJwZW5kaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rv
a2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJ
CQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90
b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0
cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0YXJ0IFBlbmRpbmcgU2Vzc2lvbiIs
CisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24i
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImY2NjQwOGQ1LTU0Mzgt
NGQ0Zi05YmZjLTZkMjRiMTVlNWE5MCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
In0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJ
InVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0
fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGFydCIsCisJ
CQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWwor
CQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3Bv
cnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJ
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Np
b25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJ
CQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICJiYWU1NTQyZC00NDZiLTQwNjQtODhmZi1jYzM1NWE4ZjRmNjIiLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBpcyBydW5uaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicnVubmluZ1wi
KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhcnQgZGF0ZSBpcyBzZXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KERhdGUucGFyc2UoanNvbkRhdGEuZGF0ZV9zdGFydGVkKSkudG8uYmUuYmVs
b3coRGF0ZS5ub3coKSk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJ
CQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25z
L3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQki
c2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0
YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjog
e30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJ
CQkJIm5hbWUiOiAiU3RhcnQgUnVubmluZyBTZXNzaW9uIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWwor
CQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiM2IzODY5NTItOGEzNy00NzFhLTkxOTItZjI4OTc0ZDk3NWEz
IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9
CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NU
IiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7
e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19Igor
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRo
IjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJ
CQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJ
CQkic3RhcnQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lv
biBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjhlNTZk
ODQyLTMyNWItNDM1Ni1hZTFhLTI0NjVlOWVmZTE4OCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBpcyBydW5uaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicnVubmluZ1wiKTsiLAorCQkJCQkJCQkJCQki
fSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0Igor
CQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJ
CQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJ
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJ
CQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJ
CQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQki
cHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVy
IjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJQYXVzZSBSdW5uaW5nIFNlc3Np
b24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJQYXVzZSBTZXNz
aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJhMTgzY2IwYi0z
MWYwLTQ4ZjYtOWMyMC02MDVhMTY0ODhkN2QiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJ
CQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vcGF1c2Ui
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJwYXVzZSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJ
fQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWwor
CQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiZjI2MTA1OTQtODEzYS00MDc5LWFmYWUtMTUxMDQ4NmVmYWI0
IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIHBhdXNlZFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInBh
dXNlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwK
KwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQki
aGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9j
b2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNz
aW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9u
cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgor
CQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJ
CQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFt
ZSI6ICJQYXVzZSBQYXVzZWQgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJ
CQkJCSJuYW1lIjogIlBhdXNlIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJ
CQkJCQkJImlkIjogIjZiOGVjOThhLWFkOTEtNGQ1Yy1hYTA3LTZiM2NjMTI1NTkwMiIsCisJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fS9wYXVzZSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vz
c2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInBhdXNl
IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVz
IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI5MWEzOGViOC1hNTAx
LTQ1N2YtYTlmNC1iNjMyMjFjOTU3ZjYiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMg
cGF1c2VkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5zdGF0dXMpLnRvLmVxdWFsKFwicGF1c2VkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFBy
b2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJ
CQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0YXJ0IFBhdXNlZCBTZXNzaW9uIiwKKwkJCQkJ
Iml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJ
CQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNmUzYThjNjQtMDRjYi00YzRmLWIy
M2QtNjQ2NTVmNmU0ZDIyIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjog
eworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkic3RhcnQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJewor
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CQkJImlkIjogImRjZjdmNmY0LTZlZWYtNGE5MC1hNjNkLWRmNzA0NDZlYjIwOSIsCisJCQkJCQkJ
CQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBpcyBydW5uaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicnVubmluZ1wiKTsi
LAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQki
cmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjog
W10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7
aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2Vu
fX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQor
CQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0
bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdG9w
IFJ1bm5pbmcgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlN0b3AgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQi
OiAiYmVlN2E3MGQtYWYxZi00YWQxLTljNDAtN2FiZGJjYzk4M2FlIiwKKwkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRl
ciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90
b2tlbn19L3N0b3AiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdG9wIgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQki
ZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIyMTdlZDI2Ny0xZGRiLTQ5NmEtYTdjNS02
ZTI5YmFkOTdjNjAiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24o
KTsiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBpcyBhYm9ydGVkXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVx
dWFsKFwiYWJvcnRlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiRmluaXNoIGRhdGUgaXMgc2V0XCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChEYXRlLnBhcnNlKGpzb25EYXRhLmRhdGVfZmlu
aXNoZWQpKS50by5iZS5iZWxvdyhEYXRlLm5vdygpKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
fQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1l
dGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jv
b3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwK
KwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQ
cm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQor
CQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdG9wIEFib3J0ZWQgU2Vzc2lvbiIsCisJCQkJ
CSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0b3AgU2Vzc2lvbiIsCisJCQkJ
CQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYTI1NWVhNjEtNWM1YS00ZjBkLThh
NjctYzI0NDUxMGE2MDhjIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjog
eworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0b3AiLAorCQkJCQkJCQkJ
InByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
ImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2Vu
fX0iLAorCQkJCQkJCQkJCSJzdG9wIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwK
KwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6
ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJ
CSJpZCI6ICI5Y2M3NTk5Yi1kMzc4LTRiMDQtYmFkYS05ZDc2ZjZjYTYxMGYiLAorCQkJCQkJCQkJ
CSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgaXMgYWJvcnRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcImFib3J0ZWRcIik7IiwK
KwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19
L3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQki
cG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJf
cm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJ
CQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0K
KwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJ
CQkJXSwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVx
dWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjgxZTQ0ZTNmLTVkOTEt
NDJhNy1iMGFiLTQ3MDRlYjEyMTg2OCIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0K
KwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkiaWQiOiAiYTQ0MTgwY2ItM2IxMy00MjFiLWIxNDYtODI5MDFmMmI0
NWJkIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdGFydCBBYm9ydGVk
IFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJTdGFy
dCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI0N2Zi
MWZhOS00ODQ5LTRlYTktYjM2ZS1mY2VjOGRlY2Y2MmUiLAorCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJ
CQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2ph
dmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1
ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0v
c3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQki
aG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBv
cnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jv
b3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMTkyM2NlZDQtNDM2MS00YTRhLWJmN2MtNGZjZGYz
ZGY1MGY2IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIGFib3J0ZWRcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1
YWwoXCJhYm9ydGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJ
CQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJ
CQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
InNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJz
dGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJp
ZCI6ICIyMjYwNDNlNS0xYTgxLTRkMzYtYWE3Zi02N2IxMGJmNDA3YWYiLAorCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJ
CQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjg0MGJmOTcwLTA5ODQt
NDUyZS05MDc2LWI2ZjY2ZDBiNDUxMSIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0K
KwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJ
CQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5h
bWUiOiAiUGF1c2UgQWJvcnRlZCBTZXNzaW9uIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiUGF1c2UgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJCQkiaWQiOiAiODhjNDA3MmYtNTM4Yi00ZDY4LTlkNjEtZjBmYjAxN2U1NDRjIiwKKwkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25z
L3t7c2Vzc2lvbl90b2tlbn19L3BhdXNlIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJz
ZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkicGF1
c2UiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBTdGF0
dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjJhZTAwZWIzLTQ5
ZTgtNDQ4Ny1iMjdmLWU3Yzc5NTVmZTRmNCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJ
CQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBp
cyBhYm9ydGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0
YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwiYWJvcnRlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJ
fSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkiaWQiOiAiNzBlMGM3ODMtYzQwNS00ODFjLWI5YzgtNWM4YmVlMzky
Zjk3IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCXsK
KwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJp
ZCI6ICI4NWM0NWUzYi1mYWU2LTRhOTAtYWZkMC05NzY3ODc2OWUzMmMiLAorCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJ
CQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2Zp
bGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJ
fSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlNldHVwIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0v
e3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59
fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjog
W10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gTm8g
Q29uZmlndXJhdGlvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAi
ZGY0YTAwZDEtZDRmOC00YjBiLTg5MmQtMjE1MjgxNjVhMmNmIiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0
b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25z
ZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIs
IHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJ
CQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6
ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2
YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJ
CQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIiIK
KwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJ
CQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9
fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0K
KwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI0ZmE1OTYxNy1jOTIyLTQ4MjYtYWJjNi02
ZDkxMGU5MThlYTQiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAor
CQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJImlkIjogImQ4M2Y0NDlkLTRhMmUtNDFjOC1iMmNkLTVjZjBjZDFjNDA0ZSIsCisJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3Rv
Y29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRy
dWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiU3RvcCBQZW5kaW5nIFNlc3Npb24iLAor
CQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJTdG9wIFNlc3Npb24iLAor
CQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
KwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjk4ZGEyYjg2LTRmOWYtNDdk
ZC1hZmM5LTIyY2U5NmU3M2U4NCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJ
CQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0v
e3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdG9wIiwKKwkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJCQkic3RvcCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJ
CX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5h
bWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7
CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkiaWQiOiAiNmQ4YTgyMDItYzg1ZC00YWRhLWI0NDMtNDUxMDhhMzcyYWVhIiwKKwkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIGFib3J0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJhYm9ydGVkXCIp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIi
OiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9r
ZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJ
CQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9
CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bv
c3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlNl
dHVwIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAi
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMi
LAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQor
CQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJ
CQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gTm8gQ29uZmlndXJhdGlvbiIsCisJCQkJCQkJImV2
ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMGY5ZGY0ODYtOTFjZC00NmZjLWE3MTEtNWNm
OWJlYmIyNzA2IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJT
dGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5b
YS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsx
Mn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRz
IHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJ
CSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVn
ZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJ
CQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0u
Z2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1Qi
LAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29u
dGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgor
CQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2Rl
IjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIiIKKwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vz
c2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24i
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjgwZWU5MWZkLTk4Y2Et
NGI4ZS04M2I2LTMyYmYzZTU1YTI5NSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSIiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJ
CQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJ
CQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJ
CQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJ
Im5hbWUiOiAiUGF1c2UgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkiaWQiOiAiNDdmNGQyNmEtODRjMi00OTgwLTk4NGQtZGFjMGU5NTUwM2UxIiwKKwkJCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Np
b25fdG9rZW59fS9wYXVzZSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMi
LAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInBhdXNlIgorCQkJ
CQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJ
CQkJfQorCQkJCQldLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6
ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiNmJkOWU4
NWYtZWI3My00N2JlLTgzYjAtMDFiZTc3ODY4ODk5IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJ
CQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI0M2ViZmFkYi1kYzY4LTRjNDEtYjM0ZS00
NjJlNDI3ZGMyZWYiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9CisJ
CQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3Rt
YW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0b3Ag
UGF1c2VkIFNlc3Npb24gQ29weSIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIlN0b3AgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQki
aWQiOiAiMDI5ZWM4NGItZTQxYi00NzQ0LTg3NDUtNThjNTBlNTJiYjExIiwKKwkJCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMo
MjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lv
bl90b2tlbn19L3N0b3AiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdG9wIgorCQkJCQkJ
CQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJ
CQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwNzFkNzU3Yy00MWFhLTRiNTItOWFi
NC02YzJhZmQ2ZWQyYWYiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMgYWJvcnRlZFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNw
b25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVz
KS50by5lcXVhbChcImFib3J0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wi
OiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9
fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQki
cGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJ
InJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJ
eworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJImlkIjogIjMwNTcyMGEwLTJjODQtNDNkMy04ZmU1LTU1ZjhmZGY1MTFkOCIsCisJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiODRlNGFi
MDQtNWFjYy00NDI4LWE4MWEtYzBiMGM1M2I1ZmQ5IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJ
CQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3Ii
OiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJewor
CQkJCQkibmFtZSI6ICJTZXR1cCIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJERUxFVEUiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJ
CQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJ
CQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9
LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9uIE9uZSBUZXN0IiwKKwkJ
CQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJ
CQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJiN2E5ZDQ1OS05YjM5LTQwYjIt
YWJkYy1mZDhmZThiMjFkNjEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVn
RXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVth
LWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
UmVzcG9uZHMgd2l0aCB0b2tlbiBpbiBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwi
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2go
dG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigp
OyIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJ
CQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJ
CQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImZjYmZiMGUzLWExMGQtNGZmOC1h
ZmVkLWY1ZjNjOWQ1MjA5MCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJjb25z
dCBhdmFpbGFibGVUZXN0cyA9IEpTT04ucGFyc2UocG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVf
dGVzdHNcIikpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0ID0gYXZhaWxhYmxlVGVzdHNbT2Jq
ZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpWzBdXVswXSIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzaW5nbGVfdGVzdFwiLCB0ZXN0KTsiCisJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJ
CQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjog
IlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXki
OiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJ
CQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9q
c29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJ
CSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAg
ICAgICAgXCJpbmNsdWRlXCI6IFtcInt7c2luZ2xlX3Rlc3R9fVwiXVxuICAgIH1cbn0iCisJCQkJ
CQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTov
L3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJ
InByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
ImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJ
CQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQki
bmFtZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJ
CSJpZCI6ICI5MzdlZjYxZC1kNmQ2LTRlMjQtYmMzYS02OTZhMjNjYzk1ZDYiLAorCQkJCQkJCQkJ
CSJleGVjIjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lv
bl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIs
CisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhcnQiCisJCQkJ
CQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJ
CQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIFNlc3Npb24i
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjI5ZjA1NTRiLTY2ZjUt
NGUyNi04MGZmLTM5YjNmYWJhOTIwYSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgbmV4dFRlc3QgPSByZXNwb25zZS5uZXh0X3Rlc3Q7IiwKKwkJCQkJCQkJCQkJInBtLmdsb2Jh
bHMuc2V0KFwiY3VycmVudF90ZXN0X3VybFwiLCBuZXh0VGVzdCk7IiwKKwkJCQkJCQkJCQkJImlm
ICghbmV4dFRlc3QpIHJldHVybjsiLAorCQkJCQkJCQkJCQkiY29uc3QgcGFyYW1ldGVycyA9IG5l
eHRUZXN0LnNwbGl0KFwiP1wiKVsxXS5zcGxpdChcIiZcIik7IiwKKwkJCQkJCQkJCQkJImxldCB0
ZXN0ID0gcGFyYW1ldGVycy5maW5kKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIuc3BsaXQoXCI9XCIp
WzBdID09PSBcInRlc3RfdXJsXCIpLnNwbGl0KFwiPVwiKVsxXTsiLAorCQkJCQkJCQkJCQkidGVz
dCA9IGRlY29kZVVSSUNvbXBvbmVudCh0ZXN0KTsiLAorCQkJCQkJCQkJCQkidGVzdCA9IFwiL1wi
ICsgdGVzdC5zcGxpdChcIi9cIikuc2xpY2UoMykuam9pbihcIi9cIikuc3BsaXQoXCI/XCIpWzBd
OyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJlbnRfdGVzdFwiLCB0ZXN0KTsi
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwKKwkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwK
KwkJCQkJCQkJCQkibmV4dCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJ
CQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ3Jl
YXRlIFJlc3VsdCIsCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9T
VCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQi
CisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1v
ZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAie1xuICBcInRlc3RcIjogXCJ7e2N1cnJlbnRf
dGVzdH19XCIsXG4gIFwic3RhdHVzXCI6IFwiT0tcIixcbiAgXCJtZXNzYWdlXCI6IG51bGwsXG4g
IFwic3VidGVzdHNcIjogW1xuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN1YnRlc3QgdGVzdGlu
ZyBmZWF0dXJlIHh5XCIsXG4gICAgICBcInN0YXR1c1wiOiBcIkZBSUxcIixcbiAgICAgIFwibWVz
c2FnZVwiOiBcIkVycm9yIG1lc3NhZ2VcIlxuICAgIH1cbiAgXVxufSIKKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJ
CQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJ
CQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CSJpZCI6ICI5YmY2NjQyNy02ZjM5LTRmMGEtYjA2NS0xODQ5ZDY3OWVlZTYiLAorCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIi
CisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjhkMWYzODM3LTFm
MDUtNDdlNC04OTdjLWI3Yzc0ZGE5YmQ0MyIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJ
CX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30s
CisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJ
Im5hbWUiOiAiU3RhcnQgQ29tcGxldGVkIFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJ
CXsKKwkJCQkJCQkibmFtZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCSJpZCI6ICI5YmYwZmI3MC0yNGEwLTQxMzYtOTlmZS04ZTBlNDg4YWZkMWUi
LAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1Qi
LAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vz
c2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJ
CQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJ
CSJzdGFydCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9u
IFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiN2UzMTg0
YmYtMTc0MS00NGM4LThjZDMtY2ZmMzBjMmRlY2ExIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGlzIGNvbXBsZXRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIg
anNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcImNvbXBsZXRlZFwiKTsiLAorCQkJCQkJCQkJ
CQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsK
KwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9y
dH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwK
KwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9
CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJ
CQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9s
ZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJQYXVzZSBDb21wbGV0ZWQg
U2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlBhdXNl
IFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImUzMjNj
NmFmLWQ0ZTUtNGEwNS1iMjAzLTA5YmE2N2Y3N2QyOCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwK
KwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9w
YXVzZSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9v
dH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInBhdXNlIgorCQkJCQkJCQkJXQorCQkJ
CQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJ
CXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI0MGNkMDRjZS04NTBmLTQ5MDMtYmMyNC0yZTYyYTRk
Zjk4ZmUiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMgY29tcGxldGVkXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVx
dWFsKFwiY29tcGxldGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIs
CisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXci
OiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNz
aW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJ
CQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJ
CSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlv
ciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7
CisJCQkJCSJuYW1lIjogIlN0b3AgQ29tcGxldGVkIFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJTdG9wIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6
IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJImlkIjogImRiN2Q1MjA5LTM3YjItNDZiZC04OGFiLWNlNGUyNDE0
MDFiMiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAi
UE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJ
CSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2Fw
aS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdG9wIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJ
CQkJCQkic3RvcCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNz
aW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNDc3
ZGM2M2QtMGI0My00MjI2LWI4NmUtMTYzZTJkZTkyYjY3IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAor
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGlzIGNvbXBsZXRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2
YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcImNvbXBsZXRlZFwiKTsiLAorCQkJCQkJ
CQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVz
IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0Ijog
Int7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7
c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJ
CQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJ
CQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJCQkiaGVh
ZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9
fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9u
X3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJ
CQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2Nv
bFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVl
CisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9CisJCX0sCisJ
CXsKKwkJCSJuYW1lIjogIlVwZGF0ZSBhbmQgUmVhZCBTZXNzaW9ucyIsCisJCQkiaXRlbSI6IFsK
KwkJCQl7CisJCQkJCSJuYW1lIjogIkNyZWF0ZSBEZWZhdWx0IiwKKwkJCQkJIml0ZW0iOiBbCisJ
CQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gTm8gQ29uZmlndXJhdGlvbiIs
CisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYjkyM2Q5NWUtYTdiNC00
OWQ0LWFiMmEtMWY0MzVjNDU0Mzg3IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQki
fSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3
IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0
fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVz
dChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9r
ZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1h
dGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0
aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJ
CSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUi
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNh
dGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJ
CQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIiIKKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkicHJvdG9jb2wi
OiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9
fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQki
cGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJ
CQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJl
YWQgU2Vzc2lvbiBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICI4MWYzNjc1OS03YWUyLTQyYjktODFkMi03OWY1NzA0NmI0NmUiLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2Et
ZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBm
dW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhh
dmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBl
b2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidGVzdHNcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRlc3RzKS50by5lcXVhbChc
Im9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cyku
dG8uaGF2ZS5wcm9wZXJ0eShcImluY2x1ZGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEudGVzdHMuaW5jbHVkZSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMpLnRvLmhhdmUucHJvcGVy
dHkoXCJleGNsdWRlXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRl
c3RzLmV4Y2x1ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidHlwZXNcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmJlLmFuLmluc3RhbmNl
b2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwidXNlcl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0
eXBlb2YganNvbkRhdGEudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0
c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91
dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpIiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYyku
dG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCkudG8uZXF1YWwo
XCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhh
dmUucHJvcGVydHkoXCJicm93c2VyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiBqc29uRGF0YS5icm93c2VyKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwibmFt
ZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuYnJvd3Nl
ci5uYW1lKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwidmVyc2lvblwiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50
by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJlZmVyZW5jZV90b2tlbnNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2VucykudG8uYmUuYW4uaW5zdGFu
Y2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkicG0udGVzdChcIkNvbmZpZ3VyYXRpb24gaXMgZGVmYXVsdFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRv
a2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmlu
Y2x1ZGUpLnRvLmluY2x1ZGUoXCIvXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnR5cGVzKS50by5pbmNsdWRlKFwiYXV0b21hdGljXCIpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhLnR5cGVzKS50by5pbmNsdWRlKFwibWFudWFsXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnVzZXJfYWdlbnQpLnRvLmluY2x1ZGUo
XCJQb3N0bWFuUnVudGltZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS50aW1lb3V0cy5hdXRvbWF0aWMpLnRvLmVxdWFsKDYwMDAwKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5tYW51YWwpLnRvLmVxdWFsKDMwMDAwMCk7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci5uYW1lKS50by5lcXVh
bChcIk90aGVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dz
ZXIudmVyc2lvbikudG8uZXF1YWwoXCIwXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhLmlzX3B1YmxpYykudG8uZXF1YWwoZmFsc2UpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJlLmVtcHR5OyIsCisJCQkJ
CQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJ
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJ
CQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWwor
CQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3Bv
cnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJ
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Np
b25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNz
aW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMjg3
M2Q1NTQtOTgxNi00MWYwLTkwNTEtZmIyY2IxMjcyYTc2IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAor
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIs
IGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8u
aGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJzdGF0dXNcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnN0YXR1cykudG8uZXF1
YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJleHBpcmF0aW9uX2RhdGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEuZXhwaXJhdGlvbl9kYXRlKS50by5iZS5udWxsOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9zdGFy
dGVkXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfc3RhcnRl
ZCkudG8uc2F0aXNmeSh2YWx1ZSA9PiAhdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSBcIm51bWJl
clwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcImRhdGVfZmluaXNoZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEuZGF0ZV9maW5pc2hlZCkudG8uc2F0aXNmeSh2YWx1ZSA9PiAhdmFsdWUgfHwgdHlwZW9m
IHZhbHVlID09PSBcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU2Vzc2lvbiBzdGF0dXMgaXMgcGVuZGluZ1wiLCBm
dW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVz
KS50by5lcXVhbChcInBlbmRpbmdcIik7IiwKKwkJCQkJCQkJCQkJIn0pIgorCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJ
CQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
c2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJ
CQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQki
cmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRl
c3RzIG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjog
IjUzNjA1NzY0LWQ0ZjAtNGIzMi05YTMwLTY3ZTg0ZGQxMDRkOSIsCisJCQkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpz
b25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0
eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5l
cXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInJ1bm5pbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0
XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBt
LnRlc3QoXCJBbGwgdGVzdHMgYXJlIHBlbmRpbmcgdGVzdHNcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVz
dHMpKS50by5ub3QuaGF2ZS5sZW5ndGhPZigwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChPYmplY3Qua2V5cyhqc29uRGF0YS5ydW5uaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhPZigw
KTsiLAorCQkJCQkJCQkJCQkifSkiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnNv
bGUubG9nKHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpKSIsCisJCQkJCQkJCQkJ
CSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IEpTT04ucGFyc2UocG0uZ2xvYmFscy5nZXQoXCJhdmFp
bGFibGVfdGVzdHNcIikpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChc
IkFsbCBhdmFpbGFibGUgdGVzdHMgYXJlIHBhcnQgb2YgdGhlIHNlc3Npb25cIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9iamVjdC5rZXlzKGpzb25E
YXRhLnBlbmRpbmdfdGVzdHMpKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgdGVz
dCBvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzW2FwaV0pIHsiLAorCQkJCQkJCQkJCQkiICAgICAg
ICAgICAgcG0uZXhwZWN0KGF2YWlsYWJsZVRlc3RzW2FwaV0pLnRvLmluY2x1ZGUodGVzdCk7IiwK
KwkJCQkJCQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJ
CSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19Igor
CQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCQkJfQorCQkJCQldLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3Rl
biI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiY2Yx
NjVhZTktMWM0NC00ODNjLThmZTQtYmQ3Y2RhYTIwNzEwIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQld
CisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAor
CQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI2OTM4ZDQ1Ni1hZmQ1LTQzMWItYTk1
Zi1hMmM0NWEzYWM0NzkiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9
CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bv
c3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlVw
ZGF0ZSBXaXRoIENvbmZpZ3VyYXRpb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJVcGRhdGUgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7
CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkiaWQiOiAiNjU3YmU1YjMtNGE5OS00NDE1LWExZWYtOWRmZGNmNTQxZTQ2IiwKKwkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiMDkzYTAwMTktYTg0Yy00NGZjLWI4OTAtMzYzNjlkNTFiN2Q1
IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInZhciBhdXRvbWF0aWNUaW1lb3V0
ID0gMTIwMDAwOyIsCisJCQkJCQkJCQkJCSJ2YXIgbWFudWFsVGltZW91dCA9IDEwMDAwMDA7IiwK
KwkJCQkJCQkJCQkJInZhciBzcGVjaWFsVGltZW91dCA9IDIwMDA7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImF1dG9tYXRpY190aW1lb3V0XCIsIGF1dG9t
YXRpY1RpbWVvdXQpOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcIm1hbnVhbF90aW1l
b3V0XCIsIG1hbnVhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNw
ZWNpYWxfdGltZW91dFwiLCBzcGVjaWFsVGltZW91dCk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQVVQiLAorCQkJ
CQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1U
eXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJ
CQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJh
dyIsCisJCQkJCQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAgICAgICAgXCJpbmNs
dWRlXCI6IHt7aW5jbHVkZWRfdGVzdHN9fSxcbiAgICAgICAgXCJleGNsdWRlXCI6IHt7ZXhjbHVk
ZWRfdGVzdHN9fVxuICAgIH0sXG4gICAgXCJ0eXBlc1wiOiBbXG4gICAgICAgIFwiYXV0b21hdGlj
XCIsXG4gICAgICAgIFwibWFudWFsXCJcbiAgICBdLFxuICAgIFwidGltZW91dHNcIjoge1xuICAg
ICAgICBcImF1dG9tYXRpY1wiOiB7e2F1dG9tYXRpY190aW1lb3V0fX0sXG4gICAgICAgIFwibWFu
dWFsXCI6IHt7bWFudWFsX3RpbWVvdXR9fSxcbiAgICAgICAgXCJ7e3NwZWNpYWxfdGltZW91dF90
ZXN0fX1cIjoge3tzcGVjaWFsX3RpbWVvdXR9fVxuICAgIH1cbn0iCisJCQkJCQkJCX0sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJ
CQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lv
biBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICI0YWM1NTYwMS05YmRmLTQxZjgtOWQ1OS1mZjFlZTIwZmE0NzEiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5S
ZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0t
W2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVy
dHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRh
dGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRlc3RzKS50by5lcXVhbChcIm9iamVjdFwi
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5w
cm9wZXJ0eShcImluY2x1ZGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudGVzdHMuaW5jbHVkZSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMpLnRvLmhhdmUucHJvcGVydHkoXCJleGNs
dWRlXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmV4Y2x1
ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidHlwZXNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkp
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5
KFwidXNlcl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNv
bkRhdGEudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0c1wiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91dHMpLnRvLmVx
dWFsKFwib2JqZWN0XCIpIiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGlt
ZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYykudG8uZXF1YWwo
XCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91
dHMpLnRvLmhhdmUucHJvcGVydHkoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCkudG8uZXF1YWwoXCJudW1iZXJc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVy
dHkoXCJicm93c2VyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS5icm93c2VyKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuYnJvd3Nlci5uYW1lKS50
by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwidmVyc2lvblwiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChc
InN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2
ZS5wcm9wZXJ0eShcInJlZmVyZW5jZV90b2tlbnNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2VucykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJh
eSk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFy
IGluY2x1ZGVkVGVzdHMgPSBKU09OLnBhcnNlKHBtLmdsb2JhbHMuZ2V0KFwiaW5jbHVkZWRfdGVz
dHNcIikpOyIsCisJCQkJCQkJCQkJCSJ2YXIgZXhjbHVkZWRUZXN0cyA9IEpTT04ucGFyc2UocG0u
Z2xvYmFscy5nZXQoXCJleGNsdWRlZF90ZXN0c1wiKSk7IiwKKwkJCQkJCQkJCQkJInZhciBhdXRv
bWF0aWNUaW1lb3V0ID0gcG0uZ2xvYmFscy5nZXQoXCJhdXRvbWF0aWNfdGltZW91dFwiKTsiLAor
CQkJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSBwbS5nbG9iYWxzLmdldChcIm1hbnVhbF90
aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXQgPSBwbS5nbG9iYWxz
LmdldChcInNwZWNpYWxfdGltZW91dFwiKTsiLAorCQkJCQkJCQkJCQkidmFyIHNwZWNpYWxUaW1l
b3V0VGVzdCA9IHBtLmdsb2JhbHMuZ2V0KFwic3BlY2lhbF90aW1lb3V0X3Rlc3RcIik7IiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJhdGlvbiBpcyBhcyBz
cGVjaWZpZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkiICAgIGZv
ciAodmFyIHRlc3Qgb2YgaW5jbHVkZWRUZXN0cykgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBt
LmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNsdWRlKS50by5pbmNsdWRlKHRlc3QpOyIsCisJCQkJ
CQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgdGVzdCBvZiBleGNsdWRl
ZFRlc3RzKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3Rz
LmV4Y2x1ZGUpLnRvLmluY2x1ZGUodGVzdCk7IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmluY2x1ZGUoXCJhdXRvbWF0
aWNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmlu
Y2x1ZGUoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dXNlcl9hZ2VudCkudG8uaW5jbHVkZShcIlBvc3RtYW5SdW50aW1lXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYykudG8uZXF1YWwoYXV0
b21hdGljVGltZW91dCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGlt
ZW91dHMubWFudWFsKS50by5lcXVhbChtYW51YWxUaW1lb3V0KTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0c1tzcGVjaWFsVGltZW91dFRlc3RdKS50by5lcXVh
bChzcGVjaWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
YnJvd3Nlci5uYW1lKS50by5lcXVhbChcIk90aGVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIudmVyc2lvbikudG8uZXF1YWwoXCIwXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmlzX3B1YmxpYykudG8uZXF1YWwoZmFsc2Up
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMp
LnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJ
CQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMi
LAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQor
CQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJ
CQkJIm5hbWUiOiAiUmVhZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCSJpZCI6ICIwYjQ5YzAxYi1lOTQzLTQ4NzktYjQ0MS00MDkzODM2ZDA1ZTki
LAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBl
Y3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicGVuZGlu
Z190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
cGVuZGluZ190ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJydW5uaW5nX3Rlc3RzXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5ydW5uaW5nX3Rlc3Rz
KS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQWxsIHRlc3RzIGFyZSBwZW5kaW5nIHRlc3RzXCIs
IGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhq
c29uRGF0YS5wZW5kaW5nX3Rlc3RzKSkudG8ubm90LmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRhdGEucnVubmluZ190ZXN0cykp
LnRvLmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IHBtLmdsb2JhbHMuZ2V0KFwiYXZh
aWxhYmxlX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCBpbmNsdWRlZFRlc3RzID0gcG0u
Z2xvYmFscy5nZXQoXCJpbmNsdWRlZF90ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgZXhj
bHVkZWRUZXN0cyA9IHBtLmdsb2JhbHMuZ2V0KFwiZXhjbHVkZWRfdGVzdHNcIik7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU2VsZWN0ZWQgc3Vic2V0IG9mIHRlc3Rz
IGFyZSBwYXJ0IG9mIHRoZSBzZXNzaW9uXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIGZvciAodmFyIGFwaSBvZiBPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKSkg
eyIsCisJCQkJCQkJCQkJCSIgICAgICAgIGZvciAodmFyIGluY2x1ZGVkVGVzdCBvZiBpbmNsdWRl
ZFRlc3RzKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIGlmIChpbmNsdWRlZFRlc3Quc3Bs
aXQoXCIvXCIpLmZpbmQocGFydCA9PiAhIXBhcnQpID09PSBhcGkpIHsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgICAgIHZhciBpbmNsdWRlUmVnRXhwID0gbmV3IFJlZ0V4cChcIl5cIiArIGlu
Y2x1ZGVkVGVzdCwgXCJpXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgZm9yICh2
YXIgdGVzdCBvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzW2FwaV0pIHsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgICAgICAgICBwbS5leHBlY3QodGVzdCkudG8ubWF0Y2gocmVnZXgpOyIsCisJ
CQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAg
ICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIH0iLAorCQkJCQkJCQkJCQkiICAg
ICAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgZXhjbHVkZWRUZXN0IG9mIGV4
Y2x1ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgaWYgKGV4Y2x1ZGVkVGVz
dC5zcGxpdChcIi9cIikuZmluZChwYXJ0ID0+ICEhcGFydCkgPT09IGFwaSkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgICAgICAgICAgICAgdmFyIGV4Y2x1ZGVSZWdFeHAgPSBuZXcgUmVnRXhwKFwiXlwi
ICsgZXhjbHVkZWRUZXN0LCBcImlcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBm
b3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgICAgICAgICAgICAgICAgIHBtLmV4cGVjdCh0ZXN0KS50by5ub3QubWF0Y2gocmVn
ZXgpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAg
ICAgICAgICAgICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIH0iLAorCQkJCQkJ
CQkJCQkiICAgICAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3Qgc2Vzc2lvblRlc3RzID0ganNvbkRh
dGEucGVuZGluZ190ZXN0czsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLmdsb2Jh
bHMuc2V0KFwic2Vzc2lvbl90ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShzZXNzaW9uVGVzdHMpKTsi
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJ
CQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJ
CQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYjljYmExOWYtODhkMi00MWY2LTk0
MGEtYTA5NzlkYTA1NTAwIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRh
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
dGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRv
a2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tl
bikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJzdGF0dXNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJl
eHBpcmF0aW9uX2RhdGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
ZXhwaXJhdGlvbl9kYXRlKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9zdGFydGVkXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfc3RhcnRlZCkudG8uc2F0aXNmeSh2YWx1
ZSA9PiAhdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImRhdGVfZmluaXNo
ZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuZGF0ZV9maW5pc2hl
ZCkudG8uc2F0aXNmeSh2YWx1ZSA9PiAhdmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSBcIm51bWJl
clwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU2Vzc2lvbiBzdGF0dXMgaXMgcGVuZGluZ1wiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInBlbmRp
bmdcIik7IiwKKwkJCQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhcnQgYW5kIEZpbmlzaCBkYXRlIG5vdCBzZXRcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfc3RhcnRlZCkudG8uYmUu
bnVsbDsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5kYXRlX2ZpbmlzaGVk
KS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJ
CQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNl
c3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0
dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJCQkiaGVh
ZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9
fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9u
X3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJ
CQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJldmVudCI6
IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCSJpZCI6ICIzNjY5YzcwYS04OGJjLTQ4NTQtYWJhYy01Y2I4MGEyMWMz
OTIiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJewor
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlk
IjogIjFhODFmNWM1LTI4ZDgtNDkzNS1iOGFlLTgyMmUzM2MyM2RhOSIsCisJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJ
CQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmls
ZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9
CisJCQldLAorCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJ
Im5hbWUiOiAiVXBkYXRlIFNlc3Npb24gTGFiZWxzIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJ
CQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gXFx3IENvbmZpZ3VyYXRpb24gQ29weSIsCisJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI5ZGU5MzIxYy1hZTc4LTRhYmQtYTc0MC02NjM0ZTJj
YmI5YjkiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYw
LTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04g
Zm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBw
bS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50
by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tl
bjsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7
IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJ
fQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI3MzkyODRlNy0xN2FjLTRjMzQtYmFhMS05
MzMzNTNlYjdlY2MiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0s
CisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJ
CQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJ
CSJoZWFkZXIiOiBbCisJCQkJCQkJeworCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJ
CQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQiLAor
CQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQl9CisJCQkJCQldLAor
CQkJCQkJImJvZHkiOiB7CisJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkicmF3IjogIntc
biAgICBcImxhYmVsc1wiOiBbXCJsYWJlbDFcIiwgXCJsYWJlbDJcIl1cbn0iCisJCQkJCQl9LAor
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7
e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIgor
CQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAor
CQkJCXsKKwkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZpZ3VyYXRpb24iLAorCQkJCQki
ZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkiaWQiOiAiNWIxNWYzMzgtYzc3My00ZjQ4LThmNzgtMWQ3YzkyNmJl
YjgxIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25z
dCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1m
MC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRh
dGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRlc3RzXCIpOyIsCisJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0
eShcImluY2x1ZGVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3Rz
LmluY2x1ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShcImV4Y2x1ZGVcIik7IiwK
KwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmV4Y2x1ZGUpLnRvLmJlLmFu
Lmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInR5cGVzXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS50eXBlcykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidXNlcl9hZ2VudFwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnVzZXJfYWdlbnQpLnRv
LmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRzXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEudGltZW91dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpIiwKKwkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzKS50by5oYXZlLnByb3BlcnR5KFwi
YXV0b21hdGljXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
dGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJtYW51YWxc
Iik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0cy5t
YW51YWwpLnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImJyb3dzZXJcIik7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyKS50by5lcXVhbChcIm9iamVjdFwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3NlcikudG8uaGF2ZS5wcm9w
ZXJ0eShcIm5hbWVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwidmVyc2lvblwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLmJyb3dzZXIudmVyc2lv
bikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhKS50by5oYXZlLnByb3BlcnR5KFwicmVmZXJlbmNlX3Rva2Vuc1wiKTsiLAorCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2VucykudG8uYmUuYW4uaW5zdGFu
Y2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwibGFiZWxzXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5sYWJlbHMpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJDb25maWd1cmF0aW9uIGlzIGRlZmF1
bHRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50
b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnRlc3RzLmluY2x1ZGUpLnRvLmluY2x1ZGUoXCIvXCIpOyIsCisJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcImF1dG9tYXRpY1wiKTsiLAor
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmluY2x1ZGUoXCJtYW51
YWxcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnVzZXJfYWdlbnQpLnRv
LmluY2x1ZGUoXCJQb3N0bWFuUnVudGltZVwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbCg2MDAwMCk7IiwKKwkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCkudG8uZXF1YWwoMzAwMDAw
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci5uYW1lKS50by5l
cXVhbChcIk90aGVyXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93
c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwiMFwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEuaXNfcHVibGljKS50by5lcXVhbChmYWxzZSk7IiwKKwkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5sYWJlbHMpLnRvLmluY2x1ZGUoXCJsYWJlbDFcIik7
IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmxhYmVscykudG8uaW5jbHVkZShc
ImxhYmVsMlwiKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJ
CQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJXQor
CQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJ
CQkibmFtZSI6ICJVcGRhdGUgTGFiZWxzIENvcHkiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7
CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQki
aWQiOiAiZTY5YjcxODgtYjNjOS00ZjY2LThjNmMtM2YzMzQ4Zjg0ZjZhIiwKKwkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZh
c2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkibWV0aG9kIjogIlBVVCIsCisJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCXsKKwkJCQkJ
CQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUi
LAorCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIsCisJCQkJCQkJCSJ0eXBlIjog
InRleHQiCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJCQkJCSJib2R5IjogeworCQkJCQkJCSJtb2Rl
IjogInJhdyIsCisJCQkJCQkJInJhdyI6ICJ7XG5cdFwibGFiZWxzXCI6IFtcIm5ld1wiLCBcImxh
YmVsc1wiXVxufSIKKwkJCQkJCX0sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fS9sYWJlbHMiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29s
fX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJ
CQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJImxhYmVscyIKKwkJCQkJCQldCisJCQkJCQl9
CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1l
IjogIlJlYWQgU2Vzc2lvbiBDb25maWd1cmF0aW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJ
eworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogIjg2ZTIwYzRkLTU3OTctNGI2ZS1hOGNjLTE0ZTI4NGU3YzQ5MSIsCisJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkidmFyIGpzb25EYXRh
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5l
dyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17
NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChc
IkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVh
bChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhh
dmUucHJvcGVydHkoXCJ0ZXN0c1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9m
IGpzb25EYXRhLnRlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEudGVzdHMpLnRvLmhhdmUucHJvcGVydHkoXCJpbmNsdWRlXCIpOyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNsdWRlKS50by5iZS5h
bi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dGVzdHMpLnRvLmhhdmUucHJvcGVydHkoXCJleGNsdWRlXCIpOyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS50ZXN0cy5leGNsdWRlKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHko
XCJ0eXBlc1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRv
LmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInVzZXJfYWdlbnRcIik7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS51c2VyX2FnZW50KS50by5lcXVhbChcInN0cmluZ1wi
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHko
XCJ0aW1lb3V0c1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LnRpbWVvdXRzKS50by5lcXVhbChcIm9iamVjdFwiKSIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS50aW1lb3V0cykudG8uaGF2ZS5wcm9wZXJ0eShcImF1dG9tYXRpY1wiKTsiLAor
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRp
YykudG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhLnRpbWVvdXRzKS50by5oYXZlLnByb3BlcnR5KFwibWFudWFsXCIpOyIsCisJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91dHMubWFudWFsKS50by5lcXVhbChc
Im51bWJlclwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUu
cHJvcGVydHkoXCJicm93c2VyXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2Yg
anNvbkRhdGEuYnJvd3NlcikudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuYnJvd3Nlci5uYW1lKS50
by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
YnJvd3NlcikudG8uaGF2ZS5wcm9wZXJ0eShcInZlcnNpb25cIik7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwic3Ry
aW5nXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcInJlZmVyZW5jZV90b2tlbnNcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImxhYmVs
c1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEubGFiZWxzKS50by5iZS5h
bi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJhdGlvbiBpcyBkZWZhdWx0XCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRv
a2VuUmVnZXgpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNs
dWRlKS50by5pbmNsdWRlKFwiL1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudHlwZXMpLnRvLmluY2x1ZGUoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnR5cGVzKS50by5pbmNsdWRlKFwibWFudWFsXCIpOyIsCisJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS51c2VyX2FnZW50KS50by5pbmNsdWRlKFwiUG9zdG1h
blJ1bnRpbWVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRz
LmF1dG9tYXRpYykudG8uZXF1YWwoNjAwMDApOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS50aW1lb3V0cy5tYW51YWwpLnRvLmVxdWFsKDMwMDAwMCk7IiwKKwkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIubmFtZSkudG8uZXF1YWwoXCJPdGhlclwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50by5l
cXVhbChcIjBcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmlzX3B1Ymxp
YykudG8uZXF1YWwoZmFsc2UpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5y
ZWZlcmVuY2VfdG9rZW5zKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEubGFiZWxzKS50by5pbmNsdWRlKFwibmV3XCIpOyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS5sYWJlbHMpLnRvLmluY2x1ZGUoXCJsYWJlbHNcIik7IiwKKwkJCQkJ
CQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1l
dGhvZCI6ICJHRVQiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
XSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJ
CQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAi
LAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59
fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJ
fQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9CisJCX0sCisJCXsKKwkJ
CSJuYW1lIjogIkRlbGV0ZSBTZXNzaW9uIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5h
bWUiOiAiU2V0dXAiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJD
cmVhdGUgU2Vzc2lvbiBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICJlODVmZDUzOS00NTk4LTQ3YTktODc2OC02NTY2NTZmMjlmZWMiLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVth
LWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMgd2l0aCB0b2tlbiBp
biBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNv
bkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
ImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25z
dCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChc
InNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJo
ZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAor
CQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dCIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJ
CQkJCQkJCV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJ
CQkJCQkJCSJyYXciOiAiIgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Nlc3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJ
CQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJf
cG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAi
RGVsZXRlIFNlc3Npb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiOGU5ZmU0YWYt
MGQ1MC00OWViLThhNGEtMDBlMTMwMjFiNGE2IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjog
IkRFTEVURSIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAor
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQki
cmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24g
Q29uZmlndXJhdGlvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI5NDE4MTEyYS0w
M2Y2LTQ2NDEtODkzZS0wNzZjODkyMmMwYWYiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgNDA0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cyg0MDQpOyIsCisJCQkJCQkJCQkifSk7
IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJ
fQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Np
b25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJf
cm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7
e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9
CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIkNyZWF0ZSBhbmQgUmVhZCBSZXN1bHRzIiwKKwkJCSJp
dGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24iLAorCQkJCQkiaXRl
bSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBUd28gVGVzdHMi
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImE2OTk1ZmYxLWQ2MjYt
NGY0Zi1hMWUwLTU2N2YzNDI5YmY1MiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5l
dyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17
NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRv
a2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5t
YXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJ
CQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
fQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3Qi
LAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiODVjN2FkOGQtNWZjOS00
MDNkLTg3MTUtYzY1ZDVmZjEzMjNlIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJ
ImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gSlNPTi5wYXJzZShwbS5nbG9iYWxzLmdldChcImF2YWls
YWJsZV90ZXN0c1wiKSk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhh
dmFpbGFibGVUZXN0cykuc29ydCgpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IGF2YWls
YWJsZVRlc3RzW2tleXNbMF1dWzBdOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IGF2YWls
YWJsZVRlc3RzW2tleXNbMV1dWzBdOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29u
c29sZS5sb2codGVzdDEsIHRlc3QyKSIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
Z2xvYmFscy5zZXQoXCJzaW5nbGVfdGVzdF8xXCIsIHRlc3QxKTsiLAorCQkJCQkJCQkJCQkicG0u
Z2xvYmFscy5zZXQoXCJzaW5nbGVfdGVzdF8yXCIsIHRlc3QyKTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1Qi
LAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29u
dGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgor
CQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2Rl
IjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAgICAgICAg
XCJpbmNsdWRlXCI6IFtcInt7c2luZ2xlX3Rlc3RfMX19XCIsIFwie3tzaW5nbGVfdGVzdF8yfX1c
Il1cbiAgICB9XG59IgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
Imhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJ
CV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0s
CisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMzVjZjQ3NDUtMDMwMS00YzljLWI2YjMtNDA5NDUy
OTk1MzNmIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJ
CQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0v
YXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJ
CSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAor
CQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJCQkic3RhcnQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQg
UmVzdWx0cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNmRjMDgy
ZWYtODBmZi00MDdhLWE1NjItZTI1ZTM3NDc2ZWVlIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVz
cG9uZHMgd2l0aCBubyByZXN1bHRzXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdCh0eXBlb2YganNvbkRhdGEpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhKSkudG8uYmUuZW1wdHk7IiwK
KwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicXVlcnkiOiBbCisJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkia2V5IjogInBhdGgiLAorCQkJCQkJCQkJCQkidmFsdWUiOiAiLzJk
Y29udGV4dC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzIiwKKwkJCQkJCQkJCQkJImRpc2Fi
bGVkIjogdHJ1ZQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkia2V5Ijog
InBhdGgiLAorCQkJCQkJCQkJCQkidmFsdWUiOiAiLzJkY29udGV4dC9jb25mb3JtYW5jZS1yZXF1
aXJlbWVudHMiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0cnVlCisJCQkJCQkJCQkJfSwKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6
ICIvMmRjb250ZXh0L2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy8yZC5taXNzaW5nYXJncy5odG1s
IiwKKwkJCQkJCQkJCQkJImRpc2FibGVkIjogdHJ1ZQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0K
KwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJ
CQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBSZXN1bHRzIENvbXBhY3QiLAorCQkJCQkJCSJl
dmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJ
CSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImZjYWRlNjYzLWRiZDgtNDJjOS04MzQ0LTUz
YWUxZmViNmZjYiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIHNpbmdsZVRlc3QxID0gcG0uZ2xvYmFscy5nZXQo
XCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSJ2YXIgc2luZ2xlVGVzdDIgPSBwbS5n
bG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzJcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJ2YXIgYXBpMSA9IHNpbmdsZVRlc3QxLnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFw
YXJ0KTsiLAorCQkJCQkJCQkJCQkidmFyIGFwaTIgPSBzaW5nbGVUZXN0Mi5zcGxpdChcIi9cIiku
ZmluZChwYXJ0ID0+ICEhcGFydCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiUmVzcG9uZHMgd2l0aCBubyByZXN1bHRzXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KGFw
aTEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KGFwaTIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaTFdLmNv
bXBsZXRlKS50by5lcXVhbCgwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YVthcGkyXS5jb21wbGV0ZSkudG8uZXF1YWwoMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0K
KwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRo
b2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0vY29tcGFjdCIsCisJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwK
KwkJCQkJCQkJCQkiY29tcGFjdCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJ
CQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAi
UmVhZCBMYXN0IENvbXBsZXRlZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBb
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCSJpZCI6ICIzNmQ3MGQwOC0zY2FhLTQzMTItOWJiZC1hZWQxNWZkMjM4
ZGQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJ
CQkJCQkJCQkiICAgICIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBmb3JtYXQgaXMgYXMg
ZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9i
amVjdC5rZXlzKGpzb25EYXRhKSkudG8uaGF2ZS5sZW5ndGhPZigzKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInBhc3NcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJmYWls
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KFwidGltZW91dFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIGtleSBvZiBPYmpl
Y3Qua2V5cyhqc29uRGF0YSkpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNv
bkRhdGFba2V5XSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAg
ICB9IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
dGVzdChcIlJlc3BvbmRzIHdpdGggbm8gbGFzdCBjb21wbGV0ZWQgdGVzdHNcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIga2V5IG9mIE9iamVjdC5rZXlzKGpzb25E
YXRhKSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVtrZXldKS50
by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IgorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
fQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1l
dGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jv
b3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbGFzdF9jb21wbGV0ZWQiLAorCQkJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2Vu
fX0iLAorCQkJCQkJCQkJCSJsYXN0X2NvbXBsZXRlZCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQor
CQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJ
CQkJIm5hbWUiOiAiUmVhZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCSJpZCI6ICIyMTFhZGNmNy1kNzFhLTRiMGYtOTRhYi1kMjg1ZmM4MzY3ZGYi
LAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBl
Y3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicGVuZGlu
Z190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
cGVuZGluZ190ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJydW5uaW5nX3Rlc3RzXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5ydW5uaW5nX3Rlc3Rz
KS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJjb25zdCBzZXNzaW9uVGVzdHMgPSBqc29uRGF0YS5wZW5kaW5nX3Rl
c3RzOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNz
aW9uX3Rlc3RzXCIsIEpTT04uc3RyaW5naWZ5KHNlc3Npb25UZXN0cykpOyIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0
ZXN0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJ
CQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJDcmVhdGUgRmlyc3Qg
UmVzdWx0IiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBO
ZXh0IFRlc3Qgb2YgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQki
aWQiOiAiNTQxMGM5YzItZWJiZS00YmMxLWFjMTItZTI2MDJkOGFkZTU3IiwKKwkJCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMo
MjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJj
b25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMocmVzcG9u
c2UpKS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJl
c3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwibmV4dF90ZXN0XCIpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KHR5cGVvZiByZXNwb25zZS5uZXh0X3Rlc3QpLnRvLmVxdWFsKFwic3RyaW5n
XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNv
bnN0IG5leHRUZXN0ID0gcmVzcG9uc2UubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkJCSJwbS5nbG9i
YWxzLnNldChcImN1cnJlbnRfdGVzdF91cmxcIiwgbmV4dFRlc3QpOyIsCisJCQkJCQkJCQkJCSJp
ZiAoIW5leHRUZXN0KSByZXR1cm47IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25z
dCBwYXJhbWV0ZXJzID0gbmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNwbGl0KFwiJlwiKTsiLAor
CQkJCQkJCQkJCQkibGV0IHRlc3QgPSBwYXJhbWV0ZXJzLmZpbmQocGFyYW1ldGVyID0+IHBhcmFt
ZXRlci5zcGxpdChcIj1cIilbMF0gPT09IFwidGVzdF91cmxcIikuc3BsaXQoXCI9XCIpWzFdOyIs
CisJCQkJCQkJCQkJCSJ0ZXN0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRlc3QpOyIsCisJCQkJCQkJ
CQkJCSJ0ZXN0ID0gXCIvXCIgKyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwiL1wi
KS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS5nbG9i
YWxzLnNldChcImN1cnJlbnRfdGVzdFwiLCB0ZXN0KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJldHVybmVkIHRlc3QgaXMg
Zmlyc3Qgb2YgdHdvIHNwZWNpZmllZCB0ZXN0c1wiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICBjb25zb2xlLmxvZyh0ZXN0KTsiLAorCQkJCQkJCQkJCQkiICAgIGNvbnNvbGUubG9n
KHRlc3QxKTsiLAorCQkJCQkJCQkJCQkiICAgIGNvbnNvbGUubG9nKHBtLmdsb2JhbHMuZ2V0KFwi
c2luZ2xlX3Rlc3RfMlwiKSkiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0ZXN0KS50by5l
cXVhbCh0ZXN0MSk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vz
c2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJuZXh0IgorCQkJCQkJ
CQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRlc3RzIG9mIFNlc3Npb24iLAorCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImU0ZjlhMDNmLWM3MzEtNDE5Mi1h
OWE5LWFhOWUzMTVjM2M0NCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2Uu
anNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3Ry
dWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJz
dHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUu
cHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJ1
bm5pbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25E
YXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFs
cy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBt
Lmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJPbmUgdGVzdCBpcyBwZW5kaW5nLCBvbmUgdGVzdCBpcyBydW5uaW5n
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5
cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHZhciBhcGkgPSBPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKVsw
XTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5wZW5kaW5nX3Rlc3RzW2Fw
aV0pLnRvLmhhdmUubGVuZ3RoT2YoMSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEucGVuZGluZ190ZXN0c1thcGldKS50by5pbmNsdWRlKHRlc3QyKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5ydW5uaW5nX3Rlc3RzKSkudG8u
aGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIGFwaSA9IE9iamVjdC5rZXlzKGpz
b25EYXRhLnJ1bm5pbmdfdGVzdHMpWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnJ1bm5pbmdfdGVzdHNbYXBpXSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5ydW5uaW5nX3Rlc3RzW2FwaV0pLnRvLmluY2x1
ZGUodGVzdDEpOyIsCisJCQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0s
CisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJ
ImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3Rv
Y29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJ
CQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwK
KwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6
ICJDcmVhdGUgUmVzdWx0IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICI5ZjY4NGY3Ny00ZWQwLTRjZDItOTlhNC1iMWMxMzQ0MzJlOWYiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVy
IjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJ
CQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNh
dGlvbi9qc29uIiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IgorCQkJCQkJCQkJfQorCQkJCQkJ
CQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJ
CQkicmF3IjogIntcbiAgXCJ0ZXN0XCI6IFwie3tjdXJyZW50X3Rlc3R9fVwiLFxuICBcInN0YXR1
c1wiOiBcIk9LXCIsXG4gIFwibWVzc2FnZVwiOiBudWxsLFxuICBcInN1YnRlc3RzXCI6IFtcbiAg
ICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWJ0ZXN0IHRlc3RpbmcgZmVhdHVyZSB4eVwiLFxuICAg
ICAgXCJzdGF0dXNcIjogXCJGQUlMXCIsXG4gICAgICBcIm1lc3NhZ2VcIjogXCJFcnJvciBtZXNz
YWdlXCJcbiAgICB9XG4gIF1cbn0iCisJCQkJCQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRlc3RzIG9mIFNlc3Npb24iLAorCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjMzNjAxZGQwLTY3ODYtNGM4YS1hNmI1
LTdmMTM4NjEyOWRlNyIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0
dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJp
bmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJv
cGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJ1bm5p
bmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0
MSA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMVwiKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgdGVzdDIgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzJcIik7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiT25lIHRlc3QgaXMgcGVuZGluZywgb25lIHRl
c3QgaXMgY29tcGxldGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhP
ZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBhcGkgPSBPYmplY3Qua2V5cyhqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzKVswXTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzW2FwaV0pLnRvLmhhdmUubGVuZ3RoT2YoMSk7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEucGVuZGluZ190ZXN0c1thcGldKS50by5pbmNsdWRlKHRlc3Qy
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5ydW5u
aW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhPZigwKTsiLAorCQkJCQkJCQkJCQkifSkiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0K
KwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJ
CQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2
ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiOTdiZTkyZjEtYThkMS00MWVhLWI0MWQtMGNh
MDgxMTNlNmUxIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJT
dGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChc
IkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8u
ZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEp
LnRvLmhhdmUucHJvcGVydHkoXCJzdGF0dXNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QodHlwZW9mIGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJleHBpcmF0
aW9uX2RhdGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuZXhwaXJh
dGlvbl9kYXRlKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9zdGFydGVkXCIpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9maW5pc2hlZFwi
KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU2Vzc2lvbiBzdGF0dXMgaXMgcnVubmluZ1wiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInJ1bm5pbmdc
Iik7IiwKKwkJCQkJCQkJCQkJIn0pIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVy
IjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTov
L3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rv
a2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJ
CQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJ
CQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIExhc3QgQ29tcGxldGVkIFRlc3RzIG9m
IFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjI0ZWMy
Yjc5LWMyNjYtNDczZi04NTc5LTdiNjk0MDc5ZDY0MCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRh
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgIiwKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJKU09OIGZvcm1hdCBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRhdGEpKS50by5oYXZl
Lmxlbmd0aE9mKDMpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5o
YXZlLnByb3BlcnR5KFwicGFzc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImZhaWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0XCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgZm9yICh2YXIga2V5IG9mIE9iamVjdC5rZXlzKGpzb25EYXRhKSkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVtrZXldKS50by5iZS5hbi5pbnN0YW5j
ZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IHBtLmdsb2JhbHMuZ2V0KFwi
c2luZ2xlX3Rlc3RfMVwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJSZXNwb25kcyB3aXRoIG9uZSBsYXN0IGNvbXBsZXRlZCB0ZXN0cyBhcyBmYWlsZWRcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW1wicGFzc1wi
XSkudG8uYmUuZW1wdHk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJm
YWlsXCJdKS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhW1wiZmFpbFwiXVswXSkudG8uZXF1YWwodGVzdDEpOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhW1widGltZW91dFwiXSkudG8uYmUuZW1wdHk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3Qi
OiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L2xhc3RfY29t
cGxldGVkIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
Imhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkibGFzdF9jb21wbGV0ZWQiCisJCQkJCQkJ
CQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9
LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgUmVzdWx0cyIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMWY0N2IzOWYtNzI3Zi00M2I0LTkzNGQtYzdmNjJi
MjY4YmFhIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBmb3JtYXQgaXMgYXMg
ZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBp
IG9mIE9iamVjdC5rZXlzKGpzb25EYXRhKSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4
cGVjdChqc29uRGF0YVthcGldKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJ
CQkJCQkiICAgICAgICBmb3IgKHZhciByZXN1bHQgb2YganNvbkRhdGFbYXBpXSkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QodHlwZW9mIHJlc3VsdCkudG8uZXF1YWwoXCJv
YmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChPYmplY3Qua2V5
cyhyZXN1bHQpKS50by5oYXZlLmxlbmd0aE9mKDQpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAg
ICBwbS5leHBlY3QocmVzdWx0KS50by5oYXZlLnByb3BlcnR5KFwidGVzdFwiKTsiLAorCQkJCQkJ
CQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiByZXN1bHQudGVzdCkudG8uZXF1YWwo
XCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQp
LnRvLmhhdmUucHJvcGVydHkoXCJzdGF0dXNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAg
IHBtLmV4cGVjdCh0eXBlb2YgcmVzdWx0LnN0YXR1cykudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQpLnRvLmhhdmUucHJvcGVy
dHkoXCJtZXNzYWdlXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVz
dWx0Lm1lc3NhZ2UpLnRvLnNhdGlzZnkobWVzc2FnZSA9PiAhbWVzc2FnZSB8fCB0eXBlb2YgbWVz
c2FnZSA9PT0gXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVj
dChyZXN1bHQpLnRvLmhhdmUucHJvcGVydHkoXCJzdWJ0ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdC5zdWJ0ZXN0cykudG8uYmUuYW4uaW5zdGFuY2Vv
ZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIGZvciAodmFyIHN1YnRlc3Qgb2Yg
cmVzdWx0LnN1YnRlc3RzKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBl
Y3QodHlwZW9mIHN1YnRlc3QpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIg
ICAgICAgICAgICAgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKHN1YnRlc3QpKS50by5oYXZlLmxl
bmd0aE9mKDMpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHN1YnRl
c3QpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAg
ICAgICAgcG0uZXhwZWN0KHR5cGVvZiBzdWJ0ZXN0Lm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHN1YnRlc3QpLnRvLmhh
dmUucHJvcGVydHkoXCJzdGF0dXNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBw
bS5leHBlY3QodHlwZW9mIHN1YnRlc3Quc3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAor
CQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdChzdWJ0ZXN0KS50by5oYXZlLnBy
b3BlcnR5KFwibWVzc2FnZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4
cGVjdChzdWJ0ZXN0Lm1lc3NhZ2UpLnRvLnNhdGlzZnkobWVzc2FnZSA9PiAhbWVzc2FnZSB8fCB0
eXBlb2YgbWVzc2FnZSA9PT0gXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAg
IH0iLAorCQkJCQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVzdDEgPSBw
bS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiVGVzdCBpcyBmaXJzdCB0ZXN0LCBzdWNjZXNzZnVsIHJ1biBhbmQg
ZmFpbGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBhcGkgPSBPYmpl
Y3Qua2V5cyhqc29uRGF0YSlbMF07IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoYXBpKS50
by5lcXVhbCh0ZXN0MS5zcGxpdChcIi9cIikuZmluZChwYXJ0ID0+ICEhcGFydCkpIiwKKwkJCQkJ
CQkJCQkJIiAgICB2YXIgcmVzdWx0ID0ganNvbkRhdGFbYXBpXVswXTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChyZXN1bHQudGVzdCkudG8uZXF1YWwodGVzdDEpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHJlc3VsdC5zdGF0dXMpLnRvLmVxdWFsKFwiT0tcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QocmVzdWx0Lm1lc3NhZ2UpLnRvLmJlLm51bGw7IiwKKwkJCQkJ
CQkJCQkJIiAgICB2YXIgc3VidGVzdCA9IHJlc3VsdC5zdWJ0ZXN0c1swXTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChzdWJ0ZXN0LnN0YXR1cykudG8uZXF1YWwoXCJGQUlMXCIpOyIsCisJ
CQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0iLAor
CQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsK
KwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJ
CQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Np
b25fdG9rZW59fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicXVlcnkiOiBbCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkia2V5IjogInBhdGgiLAorCQkJCQkJCQkJCQkidmFsdWUiOiAiLzJkY29u
dGV4dC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzIiwKKwkJCQkJCQkJCQkJImRpc2FibGVk
IjogdHJ1ZQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkia2V5IjogInBh
dGgiLAorCQkJCQkJCQkJCQkidmFsdWUiOiAiLzJkY29udGV4dC9jb25mb3JtYW5jZS1yZXF1aXJl
bWVudHMiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0cnVlCisJCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIv
MmRjb250ZXh0L2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy8yZC5taXNzaW5nYXJncy5odG1sIiwK
KwkJCQkJCQkJCQkJImRpc2FibGVkIjogdHJ1ZQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBSZXN1bHRzIENvbXBhY3QiLAorCQkJCQkJCSJldmVu
dCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImU3MzRmMDc0LWEwYzItNGU1NC1iNDI3LTI4Mjdm
YTczMjg0MyIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkJCSJ2YXIgdGVzdCA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMVwi
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVy
ZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QodHlwZW9mIGpzb25EYXRhKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIGZvciAodmFyIGFwaSBvZiBPYmplY3Qua2V5cyhqc29uRGF0YSkpIHsiLAorCQkJCQkJ
CQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXSkudG8uaGF2ZS5wcm9wZXJ0eShc
InBhc3NcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YVthcGldLnBhc3MpLnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAg
IHBtLmV4cGVjdChqc29uRGF0YVthcGldKS50by5oYXZlLnByb3BlcnR5KFwiZmFpbFwiKTsiLAor
CQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhW2FwaV0uZmFpbCku
dG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpz
b25EYXRhW2FwaV0pLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGFbYXBpXS50aW1lb3V0KS50by5lcXVh
bChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFb
YXBpXSkudG8uaGF2ZS5wcm9wZXJ0eShcIm5vdF9ydW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICAg
ICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YVthcGldLm5vdF9ydW4pLnRvLmVxdWFsKFwibnVt
YmVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCSJ9KSIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggb25lIHRlc3QgZmFp
bGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBhcGkgPSB0ZXN0LnNw
bGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YVthcGldLnBhc3MpLnRvLmVxdWFsKDApOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhW2FwaV0uZmFpbCkudG8uZXF1YWwoMSk7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS50aW1lb3V0KS50by5lcXVhbCgwKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldLm5vdF9ydW4pLnRvLmVxdWFsKDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIi
OiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tl
bn19L2NvbXBhY3QiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJ
CQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJImNvbXBhY3QiCisJCQkJCQkJ
CQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9
CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bv
c3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkNy
ZWF0ZSBMYXN0IFJlc3VsdCIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlJlYWQgTmV4dCBUZXN0IG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJImlkIjogImZkMmMxMWVlLTVlY2EtNDNmMy04OWE3LTEzMzYwMmM4MDM0YSIsCisJ
CQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0
ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5r
ZXlzKHJlc3BvbnNlKSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIm5leHRfdGVzdFwiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UubmV4dF90ZXN0KS50by5lcXVh
bChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCSJjb25zdCBuZXh0VGVzdCA9IHJlc3BvbnNlLm5leHRfdGVzdDsiLAorCQkJCQkJCQkJ
CQkicG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RfdXJsXCIsIG5leHRUZXN0KTsiLAorCQkJ
CQkJCQkJCQkiaWYgKCFuZXh0VGVzdCkgcmV0dXJuOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiY29uc3QgcGFyYW1ldGVycyA9IG5leHRUZXN0LnNwbGl0KFwiP1wiKVsxXS5zcGxpdChc
IiZcIik7IiwKKwkJCQkJCQkJCQkJImxldCB0ZXN0ID0gcGFyYW1ldGVycy5maW5kKHBhcmFtZXRl
ciA9PiBwYXJhbWV0ZXIuc3BsaXQoXCI9XCIpWzBdID09PSBcInRlc3RfdXJsXCIpLnNwbGl0KFwi
PVwiKVsxXTsiLAorCQkJCQkJCQkJCQkidGVzdCA9IGRlY29kZVVSSUNvbXBvbmVudCh0ZXN0KTsi
LAorCQkJCQkJCQkJCQkidGVzdCA9IFwiL1wiICsgdGVzdC5zcGxpdChcIi9cIikuc2xpY2UoMyku
am9pbihcIi9cIikuc3BsaXQoXCI/XCIpWzBdOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkicG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RcIiwgdGVzdCk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rl
c3RfMlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1cm5l
ZCB0ZXN0IGlzIHNlY29uZCBvZiB0d28gc3BlY2lmaWVkIHRlc3RzXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0ZXN0KS50by5lcXVhbCh0ZXN0Mik7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L25leHQi
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNz
aW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJuZXh0IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJ
CQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJSZWFkIFRlc3RzIG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCQkJImlkIjogIjExMmVlM2Q1LWQ0ZTAtNDgzOC04NzllLWY3NGMzOGQwMjE4YyIs
CisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVj
dGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5n
X3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJ1bm5pbmdfdGVzdHNcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMp
LnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVz
dF8xXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2lu
Z2xlX3Rlc3RfMlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJP
bmUgdGVzdCBpcyBydW5uaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5n
dGhPZigwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0
YS5ydW5uaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAg
IHZhciBhcGkgPSBPYmplY3Qua2V5cyhqc29uRGF0YS5ydW5uaW5nX3Rlc3RzKVswXTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5ydW5uaW5nX3Rlc3RzW2FwaV0pLnRvLmhh
dmUubGVuZ3RoT2YoMSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucnVu
bmluZ190ZXN0c1thcGldKS50by5pbmNsdWRlKHRlc3QyKTsiLAorCQkJCQkJCQkJCQkifSkiCisJ
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJ
CQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQki
bWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsK
KwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJf
cm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wi
OiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9
fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQki
cGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJ
CV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0s
CisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFJlc3VsdCIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNzlhODRlZDktYmIwNy00OTNkLWFiMzQtOGU3Njkz
YjNlYmJkIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCXsKKwkJCQkJCQkJCQkia2V5
IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24v
anNvbiIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJXSwKKwkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJ
CQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJInJhdyI6ICJ7XG4gIFwidGVzdFwiOiBcInt7Y3Vy
cmVudF90ZXN0fX1cIixcbiAgXCJzdGF0dXNcIjogXCJPS1wiLFxuICBcIm1lc3NhZ2VcIjogbnVs
bCxcbiAgXCJzdWJ0ZXN0c1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3VidGVzdCB0
ZXN0aW5nIGZlYXR1cmUgeHlcIixcbiAgICAgIFwic3RhdHVzXCI6IFwiUEFTU1wiLFxuICAgICAg
XCJtZXNzYWdlXCI6IFwiRXJyb3IgbWVzc2FnZVwiXG4gICAgfVxuICBdXG59IgorCQkJCQkJCQl9
LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJ
InJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBT
ZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAi
YzE4MjkwNDMtMThkZC00Y2MxLTgwOTEtNDE5ODEzNDlmNGUzIiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJ
CSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVk
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJzdGF0dXNcIik7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnN0YXR1cykudG8u
ZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEp
LnRvLmhhdmUucHJvcGVydHkoXCJleHBpcmF0aW9uX2RhdGVcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEuZXhwaXJhdGlvbl9kYXRlKS50by5iZS5udWxsOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9z
dGFydGVkXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwiZGF0ZV9maW5pc2hlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU2Vzc2lvbiBzdGF0dXMgaXMgY29tcGxl
dGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5zdGF0dXMpLnRvLmVxdWFsKFwiY29tcGxldGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KSIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkZpbmlzaCBkYXRlIGlzIHNldFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoRGF0ZS5wYXJzZShq
c29uRGF0YS5kYXRlX2ZpbmlzaGVkKSkudG8uYmUuYmVsb3coRGF0ZS5ub3coKSk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3Qi
OiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1
cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0
IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6
ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7
e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJ
CQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI1OWZlZTlkZi05OTQ1LTRmZGYtYTEwMi05YzFiOTJk
OTE1YzEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBh
cyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwi
cGVuZGluZ190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNv
bkRhdGEucGVuZGluZ190ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJydW5uaW5nX3Rlc3Rz
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5ydW5uaW5n
X3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IHBtLmdsb2JhbHMuZ2V0KFwic2lu
Z2xlX3Rlc3RfMVwiKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVzdDIgPSBwbS5nbG9iYWxzLmdl
dChcInNpbmdsZV90ZXN0XzJcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIg
dGVzdDFBcGkgPSB0ZXN0MS5zcGxpdChcIi9cIikuZmluZChwYXJ0ID0+ICEhcGFydCk7IiwKKwkJ
CQkJCQkJCQkJInZhciB0ZXN0MkFwaSA9IHRlc3QxLnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4g
ISFwYXJ0KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJPbmUgdGVz
dCBpcyBwZW5kaW5nLCBvbmUgdGVzdCBpcyBjb21wbGV0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVz
dHMpKS50by5oYXZlLmxlbmd0aE9mKDApOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9i
amVjdC5rZXlzKGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDApOyIs
CisJCQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJl
cXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19IiwK
KwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lv
bl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVz
cG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIExhc3Qg
Q29tcGxldGVkIFRlc3RzIG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJ
CQkJCQkJImlkIjogIjkxZmEzOGFjLTNiMDYtNDg4YS04OTJlLTU5NDU4ZTg4YTRkYSIsCisJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIg
ICAgIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIGZvcm1hdCBpcyBhcyBleHBlY3RlZFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMo
anNvbkRhdGEpKS50by5oYXZlLmxlbmd0aE9mKDMpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicGFzc1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImZhaWxcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1l
b3V0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIga2V5IG9mIE9iamVjdC5rZXlzKGpz
b25EYXRhKSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVtrZXld
KS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJ
CQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9
IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMVwiKTsiLAorCQkJCQkJCQkJCQkiY29uc3Qg
dGVzdDIgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzJcIik7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMgd2l0aCBvbmUgbGFzdCBjb21wbGV0
ZWQgdGVzdHMgYXMgZmFpbGVkIGFuZCBvbmUgbGFzdCBjb21wbGV0ZWQgdGVzdCBhcyBwYXNzZWRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW1wi
cGFzc1wiXSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YVtcInBhc3NcIl1bMF0pLnRvLmVxdWFsKHRlc3QyKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YVtcImZhaWxcIl0pLnRvLmhhdmUubGVuZ3RoT2YoMSk7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJmYWlsXCJdWzBdKS50by5lcXVh
bCh0ZXN0MSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJ0aW1lb3V0
XCJdKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJ
CQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAor
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMv
e3tzZXNzaW9uX3Rva2VufX0vbGFzdF9jb21wbGV0ZWQiLAorCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJ
CQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJ
CSJsYXN0X2NvbXBsZXRlZCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJ
CQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVh
ZCBSZXN1bHRzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJkY2Ew
YjQyZS05MDU0LTQzNTQtODdlNS1lOGQyMzYyMTYwNTAiLAorCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0
YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBt
LnRlc3QoXCJKU09OIGZvcm1hdCBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBmb3IgKHZhciBhcGkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEpKSB7IiwK
KwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0pLnRvLmJlLmFuLmlu
c3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIGZvciAodmFyIHJlc3VsdCBv
ZiBqc29uRGF0YVthcGldKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdCh0
eXBlb2YgcmVzdWx0KS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAg
ICAgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKHJlc3VsdCkpLnRvLmhhdmUubGVuZ3RoT2YoNCk7
IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQpLnRvLmhhdmUucHJv
cGVydHkoXCJ0ZXN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QodHlw
ZW9mIHJlc3VsdC50ZXN0KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAg
ICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsi
LAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiByZXN1bHQuc3RhdHVz
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhw
ZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcIm1lc3NhZ2VcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQubWVzc2FnZSkudG8uc2F0aXNmeShtZXNzYWdl
ID0+ICFtZXNzYWdlIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiKTsiLAorCQkJCQkJ
CQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcInN1
YnRlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0LnN1
YnRlc3RzKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgICAg
ICAgICAgZm9yICh2YXIgc3VidGVzdCBvZiByZXN1bHQuc3VidGVzdHMpIHsiLAorCQkJCQkJCQkJ
CQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdCh0eXBlb2Ygc3VidGVzdCkudG8uZXF1YWwoXCJv
YmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBlY3QoT2JqZWN0
LmtleXMoc3VidGVzdCkpLnRvLmhhdmUubGVuZ3RoT2YoMyk7IiwKKwkJCQkJCQkJCQkJIiAgICAg
ICAgICAgICAgICBwbS5leHBlY3Qoc3VidGVzdCkudG8uaGF2ZS5wcm9wZXJ0eShcIm5hbWVcIik7
IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBlY3QodHlwZW9mIHN1YnRlc3Qu
bmFtZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAg
ICBwbS5leHBlY3Qoc3VidGVzdCkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdCh0eXBlb2Ygc3VidGVzdC5zdGF0dXMp
LnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgcG0u
ZXhwZWN0KHN1YnRlc3QpLnRvLmhhdmUucHJvcGVydHkoXCJtZXNzYWdlXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHN1YnRlc3QubWVzc2FnZSkudG8uc2F0aXNm
eShtZXNzYWdlID0+ICFtZXNzYWdlIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiKTsi
LAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgICAgIH0iLAor
CQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMVwi
KTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVzdDIgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90
ZXN0XzJcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiVGVzdCBp
cyBmaXJzdCBhbmQgc2Vjb25kIHRlc3QsIHN1Y2Nlc3NmdWwgcnVuIGFuZCBmYWlsZWQsIGFuZCBz
dWNjZXNzZnVsIHJ1biBhbmQgcGFzc2VkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIHZhciBhcGkgPSBPYmplY3Qua2V5cyhqc29uRGF0YSlbMF07IiwKKwkJCQkJCQkJCQkJIiAg
ICBmb3IgKHZhciByZXN1bHQgb2YganNvbkRhdGFbYXBpXSkgeyIsCisJCQkJCQkJCQkJCSIgICAg
ICAgIGlmIChyZXN1bHQudGVzdCA9PT0gdGVzdDEpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICAg
ICAgcG0uZXhwZWN0KHJlc3VsdC50ZXN0KS50by5lcXVhbCh0ZXN0MSk7ICIsCisJCQkJCQkJCQkJ
CSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0LnN0YXR1cykudG8uZXF1YWwoXCJPS1wiKTsi
LAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdC5tZXNzYWdlKS50by5i
ZS5udWxsOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICB2YXIgc3VidGVzdCA9IHJlc3VsdC5z
dWJ0ZXN0c1swXTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHN1YnRlc3Qu
c3RhdHVzKS50by5lcXVhbChcIkZBSUxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgfSBlbHNl
IHsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdC50ZXN0KS50by5l
cXVhbCh0ZXN0Mik7ICIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0
LnN0YXR1cykudG8uZXF1YWwoXCJPS1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0u
ZXhwZWN0KHJlc3VsdC5tZXNzYWdlKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSIgICAgICAg
ICAgICBzdWJ0ZXN0ID0gcmVzdWx0LnN1YnRlc3RzWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgICAg
ICAgICBwbS5leHBlY3Qoc3VidGVzdC5zdGF0dXMpLnRvLmVxdWFsKFwiUEFTU1wiKTsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJIn0p
IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJ
CQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19Igor
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJ
CSJrZXkiOiAicGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIvMmRjb250ZXh0L2RyYXdpbmct
aW1hZ2VzLXRvLXRoZS1jYW52YXMiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0cnVlCisJCQkJ
CQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0aCIsCisJCQkJCQkJ
CQkJCSJ2YWx1ZSI6ICIvMmRjb250ZXh0L2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCisJCQkJ
CQkJCQkJCSJkaXNhYmxlZCI6IHRydWUKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJ
CQkJCQkJImtleSI6ICJwYXRoIiwKKwkJCQkJCQkJCQkJInZhbHVlIjogIi8yZGNvbnRleHQvY29u
Zm9ybWFuY2UtcmVxdWlyZW1lbnRzLzJkLm1pc3NpbmdhcmdzLmh0bWwiLAorCQkJCQkJCQkJCQki
ZGlzYWJsZWQiOiB0cnVlCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJ
CQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQki
bmFtZSI6ICJSZWFkIFJlc3VsdHMgQ29tcGFjdCIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJCQkiaWQiOiAiMTRlYzkyNTQtNWE0MC00Yzg2LTlhN2YtNzJmNDNhMzVhNzliIiwKKwkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YSkudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciBh
cGkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEpKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0u
ZXhwZWN0KGpzb25EYXRhW2FwaV0pLnRvLmhhdmUucHJvcGVydHkoXCJwYXNzXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGFbYXBpXS5wYXNzKS50by5l
cXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRh
dGFbYXBpXSkudG8uaGF2ZS5wcm9wZXJ0eShcImZhaWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAg
ICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YVthcGldLmZhaWwpLnRvLmVxdWFsKFwibnVtYmVy
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldKS50by5o
YXZlLnByb3BlcnR5KFwidGltZW91dFwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBl
Y3QodHlwZW9mIGpzb25EYXRhW2FwaV0udGltZW91dCkudG8uZXF1YWwoXCJudW1iZXJcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0pLnRvLmhhdmUucHJv
cGVydHkoXCJub3RfcnVuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdCh0eXBl
b2YganNvbkRhdGFbYXBpXS5ub3RfcnVuKS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSkiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJ
CQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMlwi
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciB0ZXN0MUFwaSA9IHRlc3QxLnNw
bGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KTsiLAorCQkJCQkJCQkJCQkidmFyIHRlc3Qy
QXBpID0gdGVzdDEuc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9PiAhIXBhcnQpOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggb25lIHRlc3QgZmFp
bGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qu
a2V5cyhqc29uRGF0YSkpLnRvLmhhdmUubGVuZ3RoT2YoMik7IiwKKwkJCQkJCQkJCQkJIiAgICB2
YXIgYXBpID0gT2JqZWN0LmtleXMoanNvbkRhdGEpWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgaWYg
KGFwaSA9PT0gdGVzdDFBcGkpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNv
bkRhdGFbYXBpXS5wYXNzKS50by5lcXVhbCgwKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5l
eHBlY3QoanNvbkRhdGFbYXBpXS5mYWlsKS50by5lcXVhbCgxKTsiLAorCQkJCQkJCQkJCQkiICAg
IH0gZWxzZSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0u
cGFzcykudG8uZXF1YWwoMSk7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25E
YXRhW2FwaV0uZmFpbCkudG8uZXF1YWwoMCk7IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS50aW1lb3V0KS50by5lcXVhbCgwKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldLm5vdF9ydW4pLnRvLmVx
dWFsKDApOyIsCisJCQkJCQkJCQkJCSIgICAgYXBpID0gT2JqZWN0LmtleXMoanNvbkRhdGEpWzFd
OyIsCisJCQkJCQkJCQkJCSIgICAgaWYgKGFwaSA9PT0gdGVzdDFBcGkpIHsiLAorCQkJCQkJCQkJ
CQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5wYXNzKS50by5lcXVhbCgwKTsiLAor
CQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5mYWlsKS50by5lcXVh
bCgxKTsiLAorCQkJCQkJCQkJCQkiICAgIH0gZWxzZSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAg
cG0uZXhwZWN0KGpzb25EYXRhW2FwaV0ucGFzcykudG8uZXF1YWwoMSk7IiwKKwkJCQkJCQkJCQkJ
IiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0uZmFpbCkudG8uZXF1YWwoMCk7IiwKKwkJ
CQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBp
XS50aW1lb3V0KS50by5lcXVhbCgwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YVthcGldLm5vdF9ydW4pLnRvLmVxdWFsKDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19L2NvbXBhY3QiLAorCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIs
CisJCQkJCQkJCQkJImNvbXBhY3QiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IlJlYWQgTmV4dCBUZXN0IG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJ
CQkJCQkJImlkIjogIjEzMjU3NGRjLTM2ODgtNDdlMy04ZjUwLTMyMzVmMTg4MDZmNyIsCisJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlz
KHJlc3BvbnNlKSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIm5leHRfdGVzdFwiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UubmV4dF90ZXN0KS50by5lcXVhbChc
InN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJjb25zdCBuZXh0VGVzdCA9IHJlc3BvbnNlLm5leHRfdGVzdDsiLAorCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RfdXJsXCIsIG5leHRUZXN0KTsiLAorCQkJCQkJ
CQkJCQkiaWYgKCFuZXh0VGVzdCkgcmV0dXJuOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0ID0g
XCIvXCIgKyBuZXh0VGVzdC5zcGxpdChcIi9cIikuc2xpY2UoMykuam9pbihcIi9cIikuc3BsaXQo
XCI/XCIpWzBdOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJlbnRfdGVzdFwi
LCB0ZXN0KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHdlYl9yb290ID0g
cG0uZW52aXJvbm1lbnQuZ2V0KFwid2ViX3Jvb3RcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuZWQgdGVzdCBmaW5pc2ggcGFnZVwiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodGVzdCkudG8uZXF1YWwoXCIvXCIgKyB3
ZWJfcm9vdCArIFwiL2ZpbmlzaC5odG1sXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJ
CQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9k
IjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJ
CQkibmV4dCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9y
Ijoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsK
KwkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJEZWxldGUgU2Vzc2lvbiIsCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJ
CSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19
IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwK
KwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJv
dG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJWaWV3aW5n
IGFuZCBEb3dubG9hZGluZyBSZXBvcnRzIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5h
bWUiOiAiQ3JlYXRlIFNlc3Npb25zIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJ
Im5hbWUiOiAiRmlyc3QgU2Vzc2lvbiIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJ
CQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9uIE9uZSBUZXN0cyIsCisJCQkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjJmMjMzZGNmLWQ5MzQtNDQ3OS04
OTA4LWIxMzQ5ZTZlYTU0ZCIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2Ug
PSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNw
b25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9r
ZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJ
CQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkJCSJpZCI6ICIyOTMwYTgyMS0yYzZlLTQ3YjktODlkOS05MGViZTFjZmY1MmEi
LAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRl
c3RzID0gSlNPTi5wYXJzZShwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKSk7IiwK
KwkJCQkJCQkJCQkJCQkiY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKS5z
b3J0KCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdGVzdDEgPSBhdmFpbGFibGVUZXN0c1trZXlz
WzBdXVswXTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IGF2YWlsYWJsZVRlc3RzW2tl
eXNbMV1dWzBdOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IGFwaU5hbWUgPSB0ZXN0MS5zcGxpdChc
Ii9cIikuZmluZChwYXJ0ID0+ICEhcGFydCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzaW5nbGVfdGVzdF8xXCIsIHRlc3QxKTsiLAorCQkJCQkJ
CQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNpbmdsZV90ZXN0XzJcIiwgdGVzdDIpOyIsCisJCQkJ
CQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiYXBpX25hbWVcIiwgYXBpTmFtZSk7IgorCQkJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJ
CQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJ
CQkJCXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJu
YW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJ
CQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJCQl9CisJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJ
CQkJCQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0c1wiOiB7XG4gICAgICAgIFwiaW5jbHVkZVwi
OiBbXCJ7e3NpbmdsZV90ZXN0XzF9fVwiXVxuICAgIH1cbn0iCisJCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19
Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0s
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24iLAorCQkJCQkJCQkJ
ImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICIxMmYzNjE2Yi03MDdlLTRh
NzEtOGRiOC04OWZjMTk1YzFmY2QiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2ph
dmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQki
aGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7
c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJ
CQkJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIFNlc3Npb24iLAorCQkJCQkJCQkJImV2
ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJmMzVmMTUwOS0zODNmLTQ5YWYt
YTMwZS00MWUxZGY0ZWZhMDQiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJ
CQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNl
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJ
ImNvbnN0IG5leHRUZXN0ID0gcmVzcG9uc2UubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkJCQkJInBt
Lmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0X3VybFwiLCBuZXh0VGVzdCk7IiwKKwkJCQkJCQkJ
CQkJCQkiaWYgKCFuZXh0VGVzdCkgcmV0dXJuOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJImNvbnN0IHBhcmFtZXRlcnMgPSBuZXh0VGVzdC5zcGxpdChcIj9cIilbMV0uc3BsaXQo
XCImXCIpOyIsCisJCQkJCQkJCQkJCQkJImxldCB0ZXN0ID0gcGFyYW1ldGVycy5maW5kKHBhcmFt
ZXRlciA9PiBwYXJhbWV0ZXIuc3BsaXQoXCI9XCIpWzBdID09PSBcInRlc3RfdXJsXCIpLnNwbGl0
KFwiPVwiKVsxXTsiLAorCQkJCQkJCQkJCQkJCSJ0ZXN0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRl
c3QpOyIsCisJCQkJCQkJCQkJCQkJInRlc3QgPSBcIi9cIiArIHRlc3Quc3BsaXQoXCIvXCIpLnNs
aWNlKDMpLmpvaW4oXCIvXCIpLnNwbGl0KFwiP1wiKVswXTsiLAorCQkJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJlbnRfdGVzdFwiLCB0ZXN0KTsiLAor
CQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJ
CQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7
c2Vzc2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAor
CQkJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJ
CQkJCQkJCQkJCQkibmV4dCIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0s
CisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJ
CQkibmFtZSI6ICJDcmVhdGUgUmVzdWx0IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
CQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCQkJCQkiaWQiOiAiYjAxNWYxNjEtZTM5MC00MjI0LTlmMjYtOTIzOTVmNDRjNzcy
IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
CQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJIm5h
bWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9q
c29uIiwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJ
CQkJCQkJCQkicmF3IjogIntcbiAgXCJ0ZXN0XCI6IFwie3tjdXJyZW50X3Rlc3R9fVwiLFxuICBc
InN0YXR1c1wiOiBcIk9LXCIsXG4gIFwibWVzc2FnZVwiOiBudWxsLFxuICBcInN1YnRlc3RzXCI6
IFtcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWJ0ZXN0IHRlc3RpbmcgZmVhdHVyZSB4eVwi
LFxuICAgICAgXCJzdGF0dXNcIjogXCJGQUlMXCIsXG4gICAgICBcIm1lc3NhZ2VcIjogXCJFcnJv
ciBtZXNzYWdlXCJcbiAgICB9XG4gIF1cbn0iCisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJ
CQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJ
CQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJTZWNvbmQg
U2Vzc2lvbiIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IkNyZWF0ZSBTZXNzaW9uIE9uZSBUZXN0cyIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCQkJImlkIjogImRhM2QwYzE3LTZiMmItNGQ2MS1hZDAxLWRiYTczNjQyNTM4
OCIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAor
CQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5fY29tcFwiLCB0b2tl
bik7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJ
CQkJImlkIjogIjdkYTgxZTgxLWQzNDQtNDQ1OS1iNzAwLTE5YjkzZDQ5ZDNjOSIsCisJCQkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiY29uc3QgYXZhaWxhYmxlVGVzdHMgPSBKU09O
LnBhcnNlKHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpKTsiLAorCQkJCQkJCQkJ
CQkJCSJjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpLnNvcnQoKTsiLAor
CQkJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IGF2YWlsYWJsZVRlc3RzW2tleXNbMF1dWzBdOyIs
CisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2luZ2xl
X3Rlc3RfMVwiLCB0ZXN0MSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0s
CisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJ
CQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29u
dGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9q
c29uIgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJ
CQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0
c1wiOiB7XG4gICAgICAgIFwiaW5jbHVkZVwiOiBbXCJ7e3NpbmdsZV90ZXN0XzF9fVwiXVxuICAg
IH1cbn0iCisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vz
c2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNl
c3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IlN0YXJ0IFNlc3Npb24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkJCSJpZCI6ICIzMjk2YzdiYS02N2E2LTQwNWQtYTc4YS01MWRkNjQ0MzIzMDEiLAorCQkJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJ
CQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1l
dGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbl9jb21wfX0vc3RhcnQiLAor
CQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3
ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIiwK
KwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW5fY29tcH19IiwKKwkJCQkJCQkJCQkJCSJzdGFy
dCIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVz
cG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJSZWFk
IE5leHQgVGVzdCBvZiBTZXNzaW9uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7
CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJCQkiaWQiOiAiNzJkZWI1NWMtNDU4My00NzQxLTljZjgtOTc3MTM3NjJiODk0IiwK
KwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24o
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBuZXh0VGVzdCA9IHJl
c3BvbnNlLm5leHRfdGVzdDsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJl
bnRfdGVzdF91cmxcIiwgbmV4dFRlc3QpOyIsCisJCQkJCQkJCQkJCQkJImlmICghbmV4dFRlc3Qp
IHJldHVybjsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBwYXJhbWV0
ZXJzID0gbmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNwbGl0KFwiJlwiKTsiLAorCQkJCQkJCQkJ
CQkJCSJsZXQgdGVzdCA9IHBhcmFtZXRlcnMuZmluZChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnNw
bGl0KFwiPVwiKVswXSA9PT0gXCJ0ZXN0X3VybFwiKS5zcGxpdChcIj1cIilbMV07IiwKKwkJCQkJ
CQkJCQkJCQkidGVzdCA9IGRlY29kZVVSSUNvbXBvbmVudCh0ZXN0KTsiLAorCQkJCQkJCQkJCQkJ
CSJ0ZXN0ID0gXCIvXCIgKyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5z
cGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xv
YmFscy5zZXQoXCJjdXJyZW50X3Rlc3RcIiwgdGVzdCk7IiwKKwkJCQkJCQkJCQkJCQkiIgorCQkJ
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsK
KwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW5fY29tcH19
L25leHQiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInRl
c3RzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW5fY29tcH19IiwKKwkJCQkJCQkJCQkJ
CSJuZXh0IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IkNyZWF0ZSBSZXN1bHQiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkJCSJpZCI6ICJkNjk1ZjMwMC1hNzczLTQ2NTQtYjM0Ni05NWM1MzZjYWQxOWUiLAorCQkJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJ
CQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1l
dGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJCQl7CisJCQkJ
CQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQkibmFtZSI6ICJDb250
ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAorCQkJ
CQkJCQkJCQkJInR5cGUiOiAidGV4dCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJCSJy
YXciOiAie1xuICBcInRlc3RcIjogXCJ7e2N1cnJlbnRfdGVzdH19XCIsXG4gIFwic3RhdHVzXCI6
IFwiT0tcIixcbiAgXCJtZXNzYWdlXCI6IG51bGwsXG4gIFwic3VidGVzdHNcIjogW1xuICAgIHtc
biAgICAgIFwibmFtZVwiOiBcIlN1YnRlc3QgdGVzdGluZyBmZWF0dXJlIHh5XCIsXG4gICAgICBc
InN0YXR1c1wiOiBcIkZBSUxcIixcbiAgICAgIFwibWVzc2FnZVwiOiBcIkVycm9yIG1lc3NhZ2Vc
IlxuICAgIH1cbiAgXVxufSIKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbl9jb21wfX0iLAorCQkJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJ
CQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJ
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCQkJInt7
c2Vzc2lvbl90b2tlbl9jb21wfX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJ
CQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJ
CQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVo
YXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJ
CQkJeworCQkJCQkibmFtZSI6ICJEb3dubG9hZCByZXBvcnRzIiwKKwkJCQkJIml0ZW0iOiBbCisJ
CQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgUmVzdWx0cyBPdmVydmlldyIsCisJCQkJ
CQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNjgzODk2NWYtN2EyNy00OGQ1LThj
MjctZjU1ZDQ3NTY1ODhmIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fS9vdmVydmlldyIsCisJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkib3ZlcnZpZXciCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJ
CQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIkRvd25sb2FkIEFsbCBBcGlzIEpzb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJImlkIjogImJjYzJjOGM0LTk0YzAtNDIyNy1hNjI3LTNlMGQ1YmUyZTdiOCIsCisJ
CQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJ
CQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMv
e3tzZXNzaW9uX3Rva2VufX0vanNvbiIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkicmVz
dWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkianNvbiIK
KwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgV1BUIE11bHRpIFJl
cG9ydCBVcmwiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjdiMzcw
NzIzLTA1MDYtNGI1ZS05NDFhLWYzMWE2MjhhMjlmNiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlVy
aSByZXR1cm5lZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRh
dGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlw
ZW9mIGpzb25EYXRhLnVyaSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJ
CQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3thcGlfbmFtZX19L3JlcG9ydHVybD90b2tlbnM9e3tz
ZXNzaW9uX3Rva2VufX0se3tzZXNzaW9uX3Rva2VuX2NvbXB9fSIsCisJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7YXBpX25hbWV9fSIsCisJCQkJCQkJ
CQkJInJlcG9ydHVybCIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicXVlcnkiOiBbCisJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkia2V5IjogInRva2VucyIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6ICJ7
e3Nlc3Npb25fdG9rZW59fSx7e3Nlc3Npb25fdG9rZW5fY29tcH19IgorCQkJCQkJCQkJCX0KKwkJ
CQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgUmVzdWx0cyBBcGkgSnNv
biIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYjUyNDM5NzktYjYz
YS00YmJmLWJkNTEtMTUyOWRhMWUxZjZkIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJ
CQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjog
InByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiODFm
M2RhMjktOGEwYy00NDAzLTkyOWQtODY1OTBiMDFlZjJmIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0ve3th
cGlfbmFtZX19L2pzb24iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInJlc3VsdHMiLAor
CQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInt7YXBpX25hbWV9fSIs
CisJCQkJCQkJCQkJImpzb24iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJ
CQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkRv
d25sb2FkIFdQVCBSZXBvcnQgQ29weSIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkiaWQiOiAiMDE2OGVhM2YtOWJmNy00ZWE3LWEzYWQtNzQ1YzI3MDRkOTdlIiwKKwkJCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiVXJpIHJldHVybmVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudXJpKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAor
CQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQki
aWQiOiAiZTRlZmRhYzktMmQwMC00ODUzLWIxNDUtMThhNmQ0NGZmMTM5IiwKKwkJCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRl
ciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rv
a2VufX0ve3thcGlfbmFtZX19L3JlcG9ydHVybCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3tw
cm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6
IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
CQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQki
e3thcGlfbmFtZX19IiwKKwkJCQkJCQkJCQkicmVwb3J0dXJsIgorCQkJCQkJCQkJXQorCQkJCQkJ
CQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3Ii
OiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJNYWxmdW5jdGlvbmluZyBMaXN0IiwKKwkJCSJp
dGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gXFx3IENvbmZpZ3Vy
YXRpb24gQ29weSIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICJlNjg1YTk4OS04ZWY3
LTRlOGYtYTNjNy1iNTc5YzY2NDMwZjkiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwi
XlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTld
ezEyfSRcIik7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3
aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAg
ICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAor
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJImNv
bnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiY29uc3QgdG9r
ZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lv
bl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2ph
dmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjog
InByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI4NTE3MzYw
Yi0yZTY2LTRjYTktOTMzOS0wMTc2MjJjMzk4ODgiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCSJ2YXIgYXV0b21hdGljVGltZW91dCA9IDEyMDAwMDsiLAorCQkJCQkJCQkJInZhciBtYW51
YWxUaW1lb3V0ID0gMTAwMDAwMDsiLAorCQkJCQkJCQkJInZhciBzcGVjaWFsVGltZW91dCA9IDIw
MDA7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiYXV0b21hdGlj
X3RpbWVvdXRcIiwgYXV0b21hdGljVGltZW91dCk7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxzLnNl
dChcIm1hbnVhbF90aW1lb3V0XCIsIG1hbnVhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkicG0uZ2xv
YmFscy5zZXQoXCJzcGVjaWFsX3RpbWVvdXRcIiwgc3BlY2lhbFRpbWVvdXQpOyIKKwkJCQkJCQkJ
XSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0K
KwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJ
CQkJImhlYWRlciI6IFsKKwkJCQkJCQl7CisJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwK
KwkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dCIs
CisJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCX0KKwkJCQkJCV0s
CisJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCSJyYXciOiAi
e1xuICAgIFwidGVzdHNcIjoge1xuICAgICAgICBcImluY2x1ZGVcIjoge3tpbmNsdWRlZF90ZXN0
c319LFxuICAgICAgICBcImV4Y2x1ZGVcIjoge3tleGNsdWRlZF90ZXN0c319XG4gICAgfSxcbiAg
ICBcInR5cGVzXCI6IFtcbiAgICAgICAgXCJhdXRvbWF0aWNcIlxuICAgIF0sXG4gICAgXCJ0aW1l
b3V0c1wiOiB7XG4gICAgICAgIFwiYXV0b21hdGljXCI6IHt7YXV0b21hdGljX3RpbWVvdXR9fSxc
biAgICAgICAgXCJtYW51YWxcIjoge3ttYW51YWxfdGltZW91dH19LFxuICAgICAgICBcInt7c3Bl
Y2lhbF90aW1lb3V0X3Rlc3R9fVwiOiB7e3NwZWNpYWxfdGltZW91dH19XG4gICAgfSxcbiAgICBc
ImxhYmVsc1wiOiBbXCJsYWJlbDFcIiwgXCJsYWJlbDJcIl1cbn0iCisJCQkJCQl9LAorCQkJCQkJ
InVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwK
KwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJ
CV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsK
KwkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIE1hbGZ1bmN0aW9uaW5nIEVtcHR5IiwKKwkJCQkJ
ImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjRlODVlY2FmLTQzNjQtNDY4MS1hYjhhLTIyMWQ0MDY4
MWM0NCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuIGVtcHR5IGFycmF5XCIsIGZ1bmN0aW9uKCkgeyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uYmUuYW4uaW5zdGFuY2VvZihB
cnJheSkiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUubGVuZ3Ro
KDApIiwKKwkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJs
IjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9tYWxmdW5jdGlvbmluZyIsCisJ
CQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAor
CQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQki
bWFsZnVuY3Rpb25pbmciCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9u
c2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJVcGRhdGUgU2Vzc2lvbiBNYWxm
dW5jdGlvbmluZyBJbnNlcnQgVHdvIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogImE2
MjIxNTYwLTllYmEtNGZiNC1hN2NiLWExNTcwYTM3NDI1ZCIsCisJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1l
dGhvZCI6ICJQVVQiLAorCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQl7CisJCQkJCQkJCSJrZXki
OiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0Igor
CQkJCQkJCX0KKwkJCQkJCV0sCisJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkibW9kZSI6ICJyYXci
LAorCQkJCQkJCSJyYXciOiAiW1xuXHRcIi90ZXN0L2ZpbGUvb25lLmh0bWxcIixcblx0XCIvdGVz
dC9maWxlL3R3by5odG1sXCJcbl0iLAorCQkJCQkJCSJvcHRpb25zIjogeworCQkJCQkJCQkicmF3
IjogeworCQkJCQkJCQkJImxhbmd1YWdlIjogImpzb24iCisJCQkJCQkJCX0KKwkJCQkJCQl9CisJ
CQkJCQl9LAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7
aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0v
bWFsZnVuY3Rpb25pbmciLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJIm1hbGZ1bmN0aW9uaW5nIgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJ
CQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAi
UmVhZCBTZXNzaW9uIE1hbGZ1bmN0aW9uaW5nIFR3byBUZXN0cyIsCisJCQkJCSJldmVudCI6IFsK
KwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCSJpZCI6ICI3N2QxNDU2Ny00NjAwLTQ0ZmQtOThlNC05OWUxMTNkYTY3ODEiLAorCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQki
cG0udGVzdChcIlJldHVybiBhcnJheSB3aXRoIHR3byB0ZXN0c1wiLCBmdW5jdGlvbigpIHsiLAor
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJy
YXkpIiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLmxlbmd0aCgy
KSIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaW5jbHVkZShcIi90ZXN0
L2ZpbGUvb25lLmh0bWxcIikiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmluY2x1ZGUoXCIvdGVzdC9maWxlL3R3by5odG1sXCIpIiwKKwkJCQkJCQkJCSJ9KSIKKwkJCQkJ
CQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJ
CX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Np
b25fdG9rZW59fS9tYWxmdW5jdGlvbmluZyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAor
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQki
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibWFsZnVuY3Rpb25pbmciCisJCQkJCQkJXQor
CQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJ
CQkibmFtZSI6ICJVcGRhdGUgU2Vzc2lvbiBNYWxmdW5jdGlvbmluZyBFbXB0eSBBcnJheSIsCisJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI1NWI0ODZkYS1jNWFlLTQ5ZDQtYjExYS0yNDcz
ODcyNjdjOWEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQld
LAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUFVUIiwKKwkJCQkJCSJoZWFk
ZXIiOiBbCisJCQkJCQkJeworCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJ
CSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJ
CQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQl9CisJCQkJCQldLAorCQkJCQkJ
ImJvZHkiOiB7CisJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkicmF3IjogIltdIiwKKwkJ
CQkJCQkib3B0aW9ucyI6IHsKKwkJCQkJCQkJInJhdyI6IHsKKwkJCQkJCQkJCSJsYW5ndWFnZSI6
ICJqc29uIgorCQkJCQkJCQl9CisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L21hbGZ1bmN0aW9uaW5nIiwKKwkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7
aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCSJtYWxmdW5j
dGlvbmluZyIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtd
CisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBNYWxmdW5jdGlvbmlu
ZyBFbXB0eSIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI5NTMwMDJlYy1kOGRmLTQ3
N2EtYTBkYy1mNGU0YTJlZmQwMzEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsi
LAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChcIlJldHVybiBlbXB0eSBhcnJheVwi
LCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmJl
LmFuLmluc3RhbmNlb2YoQXJyYXkpIiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
KS50by5oYXZlLmxlbmd0aCgwKSIsCisJCQkJCQkJCQkifSkiCisJCQkJCQkJCV0sCisJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJ
CQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJImhlYWRlciI6
IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbWFs
ZnVuY3Rpb25pbmciLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6
ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJIm1hbGZ1bmN0aW9uaW5nIgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJ
fSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9CisJCQldLAorCQkJInByb3RvY29sUHJvZmls
ZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5hbWUiOiAiU2Vzc2lvbnMgQVBJIiwKKwkJ
CSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiY3JlYXRlIHNlc3Npb24iLAorCQkJCQki
aXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJXaXRoIERlZmF1bHRzIiwKKwkJCQkJ
CQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogUmVhZCBBdmFp
bGFibGUgVGVzdHMiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJ
CSJpZCI6ICJmYzE1ZDMyOS1kMTMyLTRhYmYtOTBlNC1mNTQ5ZWVlOTliNjAiLAorCQkJCQkJCQkJ
CQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZl
LnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInZhciBhdmFpbGFibGVUZXN0cyA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUg
aXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QodHlwZW9mIGF2YWlsYWJsZVRlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3Rz
KSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGF2YWlsYWJsZVRlc3RzW2Fw
aV0pLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAg
dmFyIGFwaVJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJeL1wiICsgYXBpLCBcImlcIik7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIGF2YWlsYWJsZVRlc3RzW2FwaV0pIHsi
LAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QodGVzdCkudG8ubWF0Y2goYXBp
UmVnRXhwKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJCQkJCQkJCQkJCSIgICAg
fSIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJ
InZhciBpbmNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCQkJCQkidmFyIGV4Y2x1ZGVkVGVz
dHMgPSBbXTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXRUZXN0ID0gXCJcIjsi
LAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgYXBpcyA9IE9iamVjdC5rZXlz
KGF2YWlsYWJsZVRlc3RzKTsiLAorCQkJCQkJCQkJCQkJCSJmb3IodmFyIGFwaSBvZiBhcGlzKSB7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIGlmIChhdmFpbGFibGVUZXN0c1thcGldLmxlbmd0aCA+IDUw
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB2YXIgc3ViRGlycyA9IGF2YWlsYWJsZVRlc3Rz
W2FwaV0ubWFwKHRlc3QgPT4gdGVzdC5zcGxpdChcIi9cIikuZmlsdGVyKHBhcnQgPT4gISFwYXJ0
KS5qb2luKFwiL1wiKS5zcGxpdChcIi9cIilbMV0pLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2Mu
aW5kZXhPZihjdXJyKSA9PT0gLTEgPyBhY2MuY29uY2F0KFtjdXJyXSkgOiBhY2MsIFtdKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgICAgIGlmIChzdWJEaXJzLmxlbmd0aCA+IDIpIHsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgICAgICAgICBpbmNsdWRlZFRlc3RzLnB1c2goXCIvXCIgKyBhcGkpOyIsCisJ
CQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGV4Y2x1ZGVkVGVzdHMucHVzaChcIi9cIiArIGFwaSAr
IFwiL1wiICsgc3ViRGlyc1swXSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgc3BlY2lh
bFRpbWVvdXRUZXN0ID0gYXZhaWxhYmxlVGVzdHNbYXBpXVthdmFpbGFibGVUZXN0c1thcGldLmxl
bmd0aCAtIDFdOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGJyZWFrOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgIiwKKwkJCQkJCQkJCQkJ
CQkiICAgIH0iLAorCQkJCQkJCQkJCQkJCSJ9IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdmFpbGFibGVfdGVzdHNcIiwgYXZhaWxhYmxlVGVzdHMp
OyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiaW5jbHVkZWRfdGVzdHNcIiwgSlNP
Ti5zdHJpbmdpZnkoaW5jbHVkZWRUZXN0cykpOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwiZXhjbHVkZWRfdGVzdHNcIiwgSlNPTi5zdHJpbmdpZnkoZXhjbHVkZWRUZXN0cykpOyIs
CisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic3BlY2lhbF90aW1lb3V0X3Rlc3RcIiwg
c3BlY2lhbFRpbWVvdXRUZXN0LnJlcGxhY2UoXCIuXCIsIFwiXCIpKTsiCisJCQkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJ
CSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19Igor
CQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJ
CSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkJCSJ0ZXN0cyIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJ
CQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJ
CQkJCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiZWJiMTkyY2UtNDhl
NS00YWFjLWI5OWQtNjg4OTQzNzhlYWM4IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0
b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEp
LnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJj
b25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjog
IlBPU1QiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJ
CSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlw
ZSIsCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICJh
cHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
Ym9keSI6IHsKKwkJCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCQkJInJhdyI6ICIi
CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMi
LAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25z
IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQg
U2Vzc2lvbiBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7
CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJCQkiaWQiOiAiMTU5OTc2Y2QtZGUwMC00Zjg4LThmOWYtNDdkYjEzY2E0YTMwIiwK
KwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7
IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAt
OV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwi
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJh
dGlvbiBpcyBkZWZhdWx0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmluY2x1ZGUpLnRvLmluY2x1ZGUoXCIv
XCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmlu
Y2x1ZGUoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS50eXBlcykudG8uaW5jbHVkZShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLnVzZXJfYWdlbnQpLnRvLmluY2x1ZGUoXCJQb3N0bWFuUnVudGlt
ZVwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLmF1
dG9tYXRpYykudG8uZXF1YWwoNjAwMDApOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEudGltZW91dHMubWFudWFsKS50by5lcXVhbCgzMDAwMDApOyIsCisJCQkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci5uYW1lKS50by5lcXVhbChcIk90aGVy
XCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci52ZXJz
aW9uKS50by5lcXVhbChcIjBcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS5pc19wdWJsaWMpLnRvLmVxdWFsKGZhbHNlKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEubGFiZWxzKS50by5iZS5lbXB0eTsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KG5ldyBEYXRlKGpzb25EYXRhLmRhdGVfY3JlYXRlZCku
Z2V0VGltZSgpKS50by5iZS5iZWxvdyhEYXRlLm5vdygpKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0Igor
CQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97
e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJ
CQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNz
aW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJ
CQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjUwNThiMDdi
LTVlNTUtNDRlMC1hZDg4LTVjN2I1ODg0ZmEzYyIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJ
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
KwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTZXNzaW9uIHN0YXR1cyBpcyBw
ZW5kaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJwZW5kaW5nXCIpOyIsCisJCQkJCQkJCQkJCQkJIn0p
IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXJ0LCBGaW5p
c2ggYW5kIEV4cGlyYXRpb24gZGF0ZSBub3Qgc2V0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfc3RhcnRlZCkudG8uYmUubnVsbDsi
LAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfZmluaXNoZWQpLnRv
LmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5leHBpcmF0
aW9uX2RhdGUpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0
fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAor
CQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3
ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIiwK
KwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCQkic3RhdHVzIgor
CQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQgVGVz
dHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJ
CQkJImlkIjogIjYyYThjODUzLWJmMGItNDdiMC05Y2VlLTc2MTFkMmI0OGNkZSIsCisJCQkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBh
cyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wi
KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KFwicGVuZGluZ190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicnVu
bmluZ190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS5ydW5uaW5nX3Rlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQWxsIHRl
c3RzIGFyZSBwZW5kaW5nIHRlc3RzXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpKS50by5ub3Qu
aGF2ZS5sZW5ndGhPZigwKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5r
ZXlzKGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDApOyIsCisJCQkJ
CQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgYXZh
aWxhYmxlVGVzdHMgPSBwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQWxsIGF2YWlsYWJsZSB0ZXN0
cyBhcmUgcGFydCBvZiB0aGUgc2Vzc2lvblwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIGZvciAodmFyIGFwaSBvZiBPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5nX3Rlc3Rz
KSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgdGVzdCBvZiBqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzW2FwaV0pIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBl
Y3QoYXZhaWxhYmxlVGVzdHNbYXBpXSkudG8uaW5jbHVkZSh0ZXN0KTsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgICAgIH0iLAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJIn0pIgor
CQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fSIs
CisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkidGVzdHMiLAor
CQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBEZWxldGUgc2Vzc2lvbiIsCisJCQkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29s
fX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJ
CQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19Igor
CQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCQkJImlkIjogIjg3ODQyMGMzLTU3NWEtNDE5NC05YTcyLWNlYmUwNzgyMzY3NCIs
CisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldCisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCSJpZCI6ICI2NjcyMDMwZi01YThhLTRiZWEtOTc5Mi1jMjRiOTgwMzkyZTki
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJXQorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJ
CQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQki
X3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIldpdGggQ29uZmlndXJhdGlvbiIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJuYW1lIjogIlByZXA6IFJlYWQgQXZhaWxhYmxlIFRlc3RzIiwKKwkJCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNTA0Yjc2Y2EtNjg3MC00
NDNjLThjMzMtMGNjY2M1MmNkZGFlIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgYXZhaWxh
YmxlVGVzdHMgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBhdmFpbGFibGVU
ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIGZvciAodmFy
IGFwaSBvZiBPYmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cykpIHsiLAorCQkJCQkJCQkJCQkJCSIg
ICAgICAgIHBtLmV4cGVjdChhdmFpbGFibGVUZXN0c1thcGldKS50by5iZS5hbi5pbnN0YW5jZW9m
KEFycmF5KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIHZhciBhcGlSZWdFeHAgPSBuZXcgUmVn
RXhwKFwiXi9cIiArIGFwaSwgXCJpXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2
YXIgdGVzdCBvZiBhdmFpbGFibGVUZXN0c1thcGldKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAg
ICAgICAgcG0uZXhwZWN0KHRlc3QpLnRvLm1hdGNoKGFwaVJlZ0V4cCk7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgICAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgaW5jbHVkZWRUZXN0cyA9IFtd
OyIsCisJCQkJCQkJCQkJCQkJInZhciBleGNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCQkJ
CQkidmFyIHNwZWNpYWxUaW1lb3V0VGVzdCA9IFwiXCI7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJCQkidmFyIGFwaXMgPSBPYmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cykuc29ydCgp
OyIsCisJCQkJCQkJCQkJCQkJImZvcih2YXIgYXBpIG9mIGFwaXMpIHsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgaWYgKGF2YWlsYWJsZVRlc3RzW2FwaV0ubGVuZ3RoID4gNTApIHsiLAorCQkJCQkJCQkJ
CQkJCSIgICAgICAgIHZhciBzdWJEaXJzID0gYXZhaWxhYmxlVGVzdHNbYXBpXS5tYXAodGVzdCA9
PiB0ZXN0LnNwbGl0KFwiL1wiKS5maWx0ZXIocGFydCA9PiAhIXBhcnQpLmpvaW4oXCIvXCIpLnNw
bGl0KFwiL1wiKVsxXSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5pbmRleE9mKGN1cnIpID09
PSAtMSA/IGFjYy5jb25jYXQoW2N1cnJdKSA6IGFjYywgW10pOyIsCisJCQkJCQkJCQkJCQkJIiAg
ICAgICAgaWYgKHN1YkRpcnMubGVuZ3RoID4gMikgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAg
ICAgIGluY2x1ZGVkVGVzdHMucHVzaChcIi9cIiArIGFwaSk7IiwKKwkJCQkJCQkJCQkJCQkiICAg
ICAgICAgICAgZXhjbHVkZWRUZXN0cy5wdXNoKFwiL1wiICsgYXBpICsgXCIvXCIgKyBzdWJEaXJz
WzBdKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBzcGVjaWFsVGltZW91dFRlc3QgPSBh
dmFpbGFibGVUZXN0c1thcGldW2F2YWlsYWJsZVRlc3RzW2FwaV0ubGVuZ3RoIC0gMV07IiwKKwkJ
CQkJCQkJCQkJCQkiICAgICAgICAgICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB9
IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAiLAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJ
CQkJCQkJCQkJIn0iLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxz
LnNldChcImF2YWlsYWJsZV90ZXN0c1wiLCBhdmFpbGFibGVUZXN0cyk7IiwKKwkJCQkJCQkJCQkJ
CQkicG0uZ2xvYmFscy5zZXQoXCJpbmNsdWRlZF90ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShpbmNs
dWRlZFRlc3RzKSk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJleGNsdWRlZF90
ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShleGNsdWRlZFRlc3RzKSk7IiwKKwkJCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJzcGVjaWFsX3RpbWVvdXRfdGVzdFwiLCBzcGVjaWFsVGltZW91dFRl
c3QucmVwbGFjZShcIi5cIiwgXCJcIikpOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQi
LAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvdGVzdHMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJ
InRlc3RzIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IkNyZWF0ZSBTZXNzaW9uIFxcdyBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsK
KwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiZmE5NTY4NzEtNTAzYS00MjFjLTk4MjItNGUy
YTExZTFjZjFjIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3
IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0
fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigp
OyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVy
dHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRv
a2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25z
ZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJl
c3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90
b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJewor
CQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCQkJImlkIjogIjIxM2JkZjU5LTlmOTgtNGI1ZS1iYWNjLWFlM2NiMzFhZTI2
YSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1Rp
bWVvdXQgPSAxMjAwMDA7IiwKKwkJCQkJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSAxMDAw
MDAwOyIsCisJCQkJCQkJCQkJCQkJInZhciBzcGVjaWFsVGltZW91dCA9IDIwMDA7IiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdXRvbWF0aWNfdGlt
ZW91dFwiLCBhdXRvbWF0aWNUaW1lb3V0KTsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNl
dChcIm1hbnVhbF90aW1lb3V0XCIsIG1hbnVhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkJCQkJInBt
Lmdsb2JhbHMuc2V0KFwic3BlY2lhbF90aW1lb3V0XCIsIHNwZWNpYWxUaW1lb3V0KTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IHBtLmds
b2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IGFw
aU5hbWVzID0gT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpLnNvcnQoKTsiLAorCQkJCQkJCQkJ
CQkJCSJjb25zdCBhcGlOYW1lID0gYXBpTmFtZXNbMF07IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhcGlfbmFtZVwiLCBhcGlOYW1lKTsiLAorCQkJ
CQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNwZWNpYWxfdGltZW91dF90ZXN0XCIsIFwiL1wi
ICsgYXBpTmFtZSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1U
eXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgor
CQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJ
CQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0c1wiOiB7
XG4gICAgICAgIFwiaW5jbHVkZVwiOiBbXCIve3thcGlfbmFtZX19XCJdXG4gICAgfSxcbiAgICBc
InRpbWVvdXRzXCI6IHtcbiAgICAgICAgXCJhdXRvbWF0aWNcIjoge3thdXRvbWF0aWNfdGltZW91
dH19LFxuICAgICAgICBcIm1hbnVhbFwiOiB7e21hbnVhbF90aW1lb3V0fX0sXG4gICAgICAgIFwi
e3tzcGVjaWFsX3RpbWVvdXRfdGVzdH19XCI6IHt7c3BlY2lhbF90aW1lb3V0fX1cbiAgICB9LFxu
ICAgIFwibGFiZWxzXCI6IFtcImxhYmVsMVwiLCBcImxhYmVsMlwiXVxufSIKKwkJCQkJCQkJCQl9
LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJ
CV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZp
Z3VyYXRpb24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJp
ZCI6ICJhMDQzNGE1Ni0wNGI4LTQ5ODctOGY0NC0yZDcxYjQ0MGVmMDMiLAorCQkJCQkJCQkJCQkJ
ImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciBpbmNsdWRlZFRlc3RzID0gSlNPTi5wYXJzZShw
bS5nbG9iYWxzLmdldChcImluY2x1ZGVkX3Rlc3RzXCIpKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIg
ZXhjbHVkZWRUZXN0cyA9IEpTT04ucGFyc2UocG0uZ2xvYmFscy5nZXQoXCJleGNsdWRlZF90ZXN0
c1wiKSk7IiwKKwkJCQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSBwbS5nbG9iYWxz
LmdldChcImF1dG9tYXRpY190aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJCQkJInZhciBtYW51YWxU
aW1lb3V0ID0gcG0uZ2xvYmFscy5nZXQoXCJtYW51YWxfdGltZW91dFwiKTsiLAorCQkJCQkJCQkJ
CQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXQgPSBwbS5nbG9iYWxzLmdldChcInNwZWNpYWxfdGltZW91
dFwiKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXRUZXN0ID0gcG0uZ2xvYmFs
cy5nZXQoXCJzcGVjaWFsX3RpbWVvdXRfdGVzdFwiKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJhdGlvbiBpcyBhcyBzcGVjaWZpZWRcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4p
LnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciB0ZXN0
IG9mIGluY2x1ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChq
c29uRGF0YS50ZXN0cy5pbmNsdWRlKS50by5pbmNsdWRlKHRlc3QpOyIsCisJCQkJCQkJCQkJCQkJ
IiAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIHRlc3Qgb2YgZXhjbHVkZWRUZXN0
cykgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmV4
Y2x1ZGUpLnRvLmluY2x1ZGUodGVzdCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnR5cGVzKS50by5pbmNsdWRlKFwiYXV0b21h
dGljXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRv
LmluY2x1ZGUoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS51c2VyX2FnZW50KS50by5pbmNsdWRlKFwiUG9zdG1hblJ1bnRpbWVcIik7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5hdXRvbWF0aWMpLnRvLmVx
dWFsKGF1dG9tYXRpY1RpbWVvdXQpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEudGltZW91dHMubWFudWFsKS50by5lcXVhbChtYW51YWxUaW1lb3V0KTsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzW3NwZWNpYWxUaW1lb3V0VGVz
dF0pLnRvLmVxdWFsKHNwZWNpYWxUaW1lb3V0KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhLmJyb3dzZXIubmFtZSkudG8uZXF1YWwoXCJPdGhlclwiKTsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIudmVyc2lvbikudG8uZXF1YWwo
XCIwXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuaXNfcHVibGlj
KS50by5lcXVhbChmYWxzZSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5yZWZlcmVuY2VfdG9rZW5zKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLmxhYmVscykudG8uaW5jbHVkZShcImxhYmVsMVwiKTsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmxhYmVscykudG8uaW5jbHVkZShcImxhYmVs
MlwiKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VU
IiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJ
CQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0v
YXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJ
CQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUi
OiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCQkJImlkIjogIjJhNzUyNGU1LTczOTQtNDE3Ny04MjY3LTQyZDViMzJiYzQ3NCIs
CisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTZXNzaW9uIHN0YXR1cyBpcyBwZW5kaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJwZW5k
aW5nXCIpOyIsCisJCQkJCQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXJ0IGFuZCBGaW5pc2ggZGF0ZSBub3Qgc2V0XCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfc3RhcnRl
ZCkudG8uYmUubnVsbDsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmRh
dGVfZmluaXNoZWQpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMi
LAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25z
IiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCQkic3RhdHVz
IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQg
VGVzdHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCQkJImlkIjogIjQ0OGI2YTBjLTEzNWQtNDJlZi04YmMwLWI0YjFjZTRhYjhhMCIsCisJCQkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJ
CQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJBbGwgdGVzdHMgYXJlIHBl
bmRpbmcgdGVzdHNcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoT2JqZWN0LmtleXMoanNvbkRhdGEucGVuZGluZ190ZXN0cykpLnRvLm5vdC5oYXZlLmxlbmd0
aE9mKDApOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRh
dGEucnVubmluZ190ZXN0cykpLnRvLmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJCQkJCQkJCQki
fSkiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0
cyA9IHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCQkJ
ImNvbnN0IGluY2x1ZGVkVGVzdHMgPSBwbS5nbG9iYWxzLmdldChcImluY2x1ZGVkX3Rlc3RzXCIp
OyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IGV4Y2x1ZGVkVGVzdHMgPSBwbS5nbG9iYWxzLmdldChc
ImV4Y2x1ZGVkX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTZWxlY3RlZCBzdWJzZXQgb2YgdGVzdHMgYXJlIHBhcnQgb2YgdGhlIHNlc3Npb25c
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciBhcGkgb2YgT2Jq
ZWN0LmtleXMoanNvbkRhdGEucGVuZGluZ190ZXN0cykpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAg
ICAgIGZvciAodmFyIGluY2x1ZGVkVGVzdCBvZiBpbmNsdWRlZFRlc3RzKSB7IiwKKwkJCQkJCQkJ
CQkJCQkiICAgICAgICAgICAgaWYgKGluY2x1ZGVkVGVzdC5zcGxpdChcIi9cIikuZmluZChwYXJ0
ID0+ICEhcGFydCkgPT09IGFwaSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICB2
YXIgaW5jbHVkZVJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJeXCIgKyBpbmNsdWRlZFRlc3QsIFwiaVwi
KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgZm9yICh2YXIgdGVzdCBvZiBqc29u
RGF0YS5wZW5kaW5nX3Rlc3RzW2FwaV0pIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICAg
ICAgICAgIHBtLmV4cGVjdCh0ZXN0KS50by5tYXRjaChyZWdleCk7IiwKKwkJCQkJCQkJCQkJCQki
ICAgICAgICAgICAgICAgIH0iLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgYnJlYWs7
IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAg
fSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgZXhjbHVkZWRUZXN0IG9mIGV4Y2x1
ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBpZiAoZXhjbHVkZWRUZXN0
LnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KSA9PT0gYXBpKSB7IiwKKwkJCQkJCQkJ
CQkJCQkiICAgICAgICAgICAgICAgIHZhciBleGNsdWRlUmVnRXhwID0gbmV3IFJlZ0V4cChcIl5c
IiArIGV4Y2x1ZGVkVGVzdCwgXCJpXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgICAg
ICBmb3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkgeyIsCisJCQkJ
CQkJCQkJCQkJIiAgICAgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHRlc3QpLnRvLm5vdC5tYXRj
aChyZWdleCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIH0iLAorCQkJCQkJCQkJ
CQkJCSIgICAgICAgICAgICAgICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAg
fSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICB9IiwKKwkJ
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3Qg
c2Vzc2lvblRlc3RzID0ganNvbkRhdGEucGVuZGluZ190ZXN0czsiLAorCQkJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdGVzdHNcIiwgSlNPTi5z
dHJpbmdpZnkoc2Vzc2lvblRlc3RzKSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIs
CisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJ
CSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2Fw
aS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19
IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNsZWFu
IHVwOiBEZWxldGUgc2Vzc2lvbiIsCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQki
bWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0
fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290
fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAor
CQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1
ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImExNmVhYzhlLTk2
MDktNDMxNC1hYmQ4LWE1YzQ3MDUzN2I1MiIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZh
c2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQld
CisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI1ZGY1NTk1Ny0w
YmJiLTRkYjgtOWFiOS1kOGE3MGNlMzdiYzUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJ
XQorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9m
aWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJ
CQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIldpdGggRXhwaXJhdGlvbiIsCisJCQkJ
CQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9u
IFdpdGggRXhwaXJhdGlvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCQkJImlkIjogIjZjNGFhNzAyLWFlM2EtNDRhNC1iODg2LWIzZTg4M2RlNGQzMiIsCisJCQkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAt
OV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwi
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMg
d2l0aCB0b2tlbiBpbiBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwK
KwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9r
ZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAor
CQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIK
KwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJ
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3Rl
biI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJp
ZCI6ICI4OTM2NzJhOS1jNjY2LTQ3OTAtYjZhNy1lMGNlN2FmZGE0ODIiLAorCQkJCQkJCQkJCQkJ
ImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciBleHBpcmF0aW9uRGF0ZSA9IERhdGUubm93KCkg
KyAzMDAwOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZXhwaXJhdGlvbl9kYXRl
XCIsIGV4cGlyYXRpb25EYXRlKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJ
CQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJImtleSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJ
CQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9u
L2pzb24iCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJib2R5Ijogewor
CQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIntcblx0XCJleHBp
cmF0aW9uX2RhdGVcIjoge3tleHBpcmF0aW9uX2RhdGV9fVxufSIKKwkJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBFeHBpcmVkIFNlc3Npb24iLAor
CQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJmNmIzMWQz
Ny1hOThiLTQxMTAtODBhMi1mNzhkYjZmMmUyNmYiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyA0MDRcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cyg0MDQpOyIs
CisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJ
CXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlw
dCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJkNDFjZjMxYi1jOGU4LTQ1NWYtYWE2OS01MjdhZjVm
YmQ2NmIiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciBleHBpcmF0
aW9uRGF0ZSA9IHBtLmdsb2JhbHMuZ2V0KFwiZXhwaXJhdGlvbl9kYXRlXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gZXhwaXJhdGlvbkRhdGUgLSBE
YXRlLm5vdygpICsgMTAwMCIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnNv
bGUubG9nKHRpbWVvdXQpIiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkic2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7fSwgdGltZW91dCk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjog
IkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJ
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJu
YW1lIjogIkNsZWFuIHVwOiBEZWxldGUgc2Vzc2lvbiIsCisJCQkJCQkJCQkicmVxdWVzdCI6IHsK
KwkJCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59
fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQki
aG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lv
bnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJ
CSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInBy
b3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6
IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAicmVhZCBzZXNzaW9uIiwKKwkJCQkJ
Iml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIFNlc3Npb24g
Tm8gQ29uZmlndXJhdGlvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQi
OiAiMDkwY2ExYmMtY2JlZS00ZDdiLWIxOWYtZmMxZjRiYjg3OWEwIiwKKwkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25z
dCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1m
MC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5o
YXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25z
ZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNw
b25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2Vu
XCIsIHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJ
CQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFt
ZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJ
CSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJ
CQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3Ijog
IiIKKwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJ
CQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWwor
CQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3Bv
cnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJ
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJ
CX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJewor
CQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIyMzJhZmYxMS0zY2RjLTQ5OTQtYWY0Mi01ZTM1
NzQ1ODM4MTQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsi
LAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17
OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBp
cyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5
KFwidGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LnRlc3RzKS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShcImluY2x1ZGVcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuaW5jbHVkZSkudG8uYmUuYW4uaW5z
dGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVz
dHMpLnRvLmhhdmUucHJvcGVydHkoXCJleGNsdWRlXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnRlc3RzLmV4Y2x1ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkp
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5
KFwidHlwZXNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMp
LnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidXNlcl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJz
dHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUu
cHJvcGVydHkoXCJ0aW1lb3V0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBl
b2YganNvbkRhdGEudGltZW91dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpIiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJhdXRv
bWF0aWNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRp
bWVvdXRzLmF1dG9tYXRpYykudG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJtYW51YWxc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRz
Lm1hbnVhbCkudG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJicm93c2VyXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyKS50by5lcXVhbChcIm9iamVj
dFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5o
YXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBl
b2YganNvbkRhdGEuYnJvd3Nlci5uYW1lKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwi
dmVyc2lvblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
YnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJlZmVyZW5jZV90b2tlbnNc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2Vu
cykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJsYWJlbHNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEubGFiZWxzKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0
eShcImRhdGVfY3JlYXRlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJhdGlvbiBpcyBkZWZhdWx0XCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8u
bWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dGVzdHMuaW5jbHVkZSkudG8uaW5jbHVkZShcIi9cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmluY2x1ZGUoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmluY2x1ZGUoXCJtYW51YWxc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudXNlcl9hZ2VudCkudG8u
aW5jbHVkZShcIlBvc3RtYW5SdW50aW1lXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYykudG8uZXF1YWwoNjAwMDApOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCkudG8uZXF1YWwoMzAw
MDAwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyLm5hbWUp
LnRvLmVxdWFsKFwiT3RoZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEuYnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChcIjBcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEuaXNfcHVibGljKS50by5lcXVhbChmYWxzZSk7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2VucykudG8uYmUuZW1wdHk7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEubGFiZWxzKS50by5iZS5lbXB0
eTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChuZXcgRGF0ZShqc29uRGF0YS5kYXRlX2Ny
ZWF0ZWQpLmdldFRpbWUoKSkudG8uYmUuYmVsb3coRGF0ZS5ub3coKSk7IiwKKwkJCQkJCQkJCQkJ
In0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDbGVhbiB1cDogRGVsZXRl
IHNlc3Npb24iLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkRFTEVU
RSIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQki
c2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9p
c1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAicmVhZCBzZXNz
aW9uIHN0YXR1cyIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlBy
ZXA6IENyZWF0ZSBTZXNzaW9uIE5vIENvbmZpZ3VyYXRpb24iLAorCQkJCQkJCSJldmVudCI6IFsK
KwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJImlkIjogIjczY2JlZWIwLTAxOWItNDMzMS1iMGVjLWVmOWQzZjFlMDQ5
NCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17
OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRv
a2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZh
ciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAor
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
ImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJ
XSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJ
CQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCXsKKwkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlw
ZSIsCisJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0IiwKKwkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQkJ
CX0KKwkJCQkJCQkJXSwKKwkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkibW9kZSI6ICJyYXci
LAorCQkJCQkJCQkJInJhdyI6ICIiCisJCQkJCQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIgor
CQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwK
KwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJiYTE0MmI1NS0yNDU0LTQ0
NzItYmNmOS02NjliMGJiN2JhYjkiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNv
bkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5
KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wi
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0
eShcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS5leHBpcmF0aW9uX2RhdGUpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJkYXRlX3N0YXJ0ZWRcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJkYXRl
X2ZpbmlzaGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJ
CQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97
e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNl
c3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0
dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBEZWxldGUg
c2Vzc2lvbiIsCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRF
IiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJz
ZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJ
CQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQld
LAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lz
U3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJyZWFkIHNlc3Np
b25zIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiV2l0aG91dCBx
dWVyeSBwYXJhbWV0ZXJzIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJ
Im5hbWUiOiAiUmVhZCBzZXNzaW9ucyIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCQkJImlkIjogImY0NDM5NTVmLWI1N2UtNDgwMS04ZWFjLTU0NzU5NzM4MTYxNSIs
CisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBw
bS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQki
fSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3Ry
dWN0dXJlIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJvcGVydHkoXCJpdGVtc1wiKTsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiaXRlbXNcIl0pLnRvLmJlLmluc3RhbmNl
b2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhh
dmUucHJvcGVydHkoXCJfbGlua3NcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChy
ZXNwb25zZVtcIl9saW5rc1wiXSkudG8uYmUuaW5zdGFuY2VvZihPYmplY3QpOyIsCisJCQkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2ph
dmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L193YXZlL2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJfd2F2ZSIsCisJ
CQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCQkJXQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
CQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJ
CQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAorCQkJCQkJeworCQkJ
CQkJCSJuYW1lIjogIkNvbnRhaW5pbmcgY3JlYXRlZCBzZXNzaW9uIiwKKwkJCQkJCQkiaXRlbSI6
IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIHNlc3Npb24iLAor
CQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICIyY2E4MGRl
ZS1mOWE1LTRlMGItYmVhZC02YWI4NzFkOWVkZjgiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJ
CQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJ
CSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJi
b2R5IjogeworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIiIs
CisJCQkJCQkJCQkJCSJvcHRpb25zIjogeworCQkJCQkJCQkJCQkJInJhdyI6IHsKKwkJCQkJCQkJ
CQkJCQkibGFuZ3VhZ2UiOiAianNvbiIKKwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3Rv
Y29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJ
CQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0Ijog
WworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJ
CQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJSZWFkIHNlc3Np
b25zIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAi
ZmJmNWVhZmItMGFlNy00MTA1LThkZjUtNTFiYjUzYjBjNTk1IiwKKwkJCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0KFwic2Vzc2lv
bl90b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNl
Lmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgYXMg
ZXhwZWN0ZWRcIiwgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChy
ZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIml0ZW1zXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QocmVzcG9uc2VbXCJpdGVtc1wiXSkudG8uYmUuaW5zdGFuY2VvZihBcnJheSk7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0
eShcIl9saW5rc1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wi
X2xpbmtzXCJdKS50by5iZS5pbnN0YW5jZW9mKE9iamVjdCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7
IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIkNyZWF0ZWQgc2Vz
c2lvbidzIHRva2VuIGluIHJlc3BvbnNlXCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QocmVzcG9uc2UuaXRlbXMpLnRvLmNvbnRhaW4odG9rZW4pOyIsCisJCQkJ
CQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L193YXZlL2FwaS9zZXNzaW9ucz9pbmRleD0w
JmNvdW50PTEwMDAiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJCQkiX3dhdmUiLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vz
c2lvbnMiCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQkJ
CXsKKwkJCQkJCQkJCQkJCQkia2V5IjogImluZGV4IiwKKwkJCQkJCQkJCQkJCQkidmFsdWUiOiAi
MCIKKwkJCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCQkJImtleSI6ICJj
b3VudCIsCisJCQkJCQkJCQkJCQkJInZhbHVlIjogIjEwMDAiCisJCQkJCQkJCQkJCQl9CisJCQkJ
CQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjog
W10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IERl
bGV0ZSBTZXNzaW9uIiwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2Qi
OiAiREVMRVRFIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsK
KwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9
fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJ
CQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQki
e3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9
LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJ
InByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9s
ZGVyIjogdHJ1ZQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJXaXRoIGNvbmZp
Z3VyYXRpb24gZXhwYW5zaW9uIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJ
CQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIHNlc3Npb24iLAorCQkJCQkJCQkJImV2ZW50IjogWwor
CQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJiZGQ2NDU5NC1jODc0LTRlYjItOGIzNi00YzM3
Y2VhMGYwY2IiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJImNvbnN0IHJl
c3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2Vu
ID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNz
aW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJ
CQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQki
bW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIiIsCisJCQkJCQkJCQkJCSJvcHRpb25z
IjogeworCQkJCQkJCQkJCQkJInJhdyI6IHsKKwkJCQkJCQkJCQkJCQkibGFuZ3VhZ2UiOiAianNv
biIKKwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJ
InVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJ
CX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJ
CQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJSZWFkIHNlc3Npb25zIiwKKwkJCQkJCQkJCSJldmVu
dCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNjczMmFlZGYtZDk5ZC00MTZmLWI5
M2QtOThiYzA0MDRlZjYxIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJj
b25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0KFwic2Vzc2lvbl90b2tlblwiKTsiLAorCQkJCQkJ
CQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24o
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9w
ZXJ0eShcIml0ZW1zXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2Vb
XCJpdGVtc1wiXSkudG8uYmUuaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIl9saW5rc1wiKTsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2xpbmtzXCJdKS50by5iZS5pbnN0
YW5jZW9mKE9iamVjdCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSku
dG8uaGF2ZS5wcm9wZXJ0eShcIl9lbWJlZGRlZFwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KHJlc3BvbnNlW1wiX2VtYmVkZGVkXCJdKS50by5iZS5pbnN0YW5jZW9mKE9iamVjdCk7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZVtcIl9lbWJlZGRlZFwiXSku
dG8uaGF2ZS5wcm9wZXJ0eShcImNvbmZpZ3VyYXRpb25cIik7IiwKKwkJCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChyZXNwb25zZVtcIl9lbWJlZGRlZFwiXVtcImNvbmZpZ3VyYXRpb25cIl0pLnRv
LmJlLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJDcmVhdGVkIHNlc3Npb24ncyB0b2tlbiBp
biByZXNwb25zZVwiLCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHJlc3BvbnNlLml0ZW1zKS50by5jb250YWluKHRva2VuKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ3JlYXRlZCBzZXNz
aW9uJ3MgdG9rZW4gaW4gZW1iZWRkZWQgY29uZmlndXJhdGlvblwiLCBmdW5jdGlvbigpIHsiLAor
CQkJCQkJCQkJCQkJCSIgICAgbGV0IHRva2VuSW5Db25maWd1cmF0aW9uTGlzdCA9IGZhbHNlOyIs
CisJCQkJCQkJCQkJCQkJIiAgICBsZXQgY29uZmlndXJhdGlvbnMgPSByZXNwb25zZS5fZW1iZWRk
ZWQuY29uZmlndXJhdGlvbjsiLAorCQkJCQkJCQkJCQkJCSIgICAgZm9yIChsZXQgY29uZmlndXJh
dGlvbiBvZiBjb25maWd1cmF0aW9ucykgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgaWYgKGNv
bmZpZ3VyYXRpb24udG9rZW4gIT09IHRva2VuKSBjb250aW51ZTsiLAorCQkJCQkJCQkJCQkJCSIg
ICAgICAgIHRva2VuSW5Db25maWd1cmF0aW9uTGlzdCA9IHRydWU7IiwKKwkJCQkJCQkJCQkJCQki
ICAgIH0iLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHRva2VuSW5Db25maWd1cmF0aW9u
TGlzdCkudG8uZXF1YWwodHJ1ZSk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0
fX0vX3dhdmUvYXBpL3Nlc3Npb25zP2luZGV4PTAmY291bnQ9MTAwMCZleHBhbmQ9Y29uZmlndXJh
dGlvbiIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkJCSJfd2F2ZSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIK
KwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInF1ZXJ5IjogWworCQkJCQkJCQkJCQkJeworCQkJ
CQkJCQkJCQkJCSJrZXkiOiAiaW5kZXgiLAorCQkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIwIgorCQkJ
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCQkia2V5IjogImNvdW50IiwK
KwkJCQkJCQkJCQkJCQkidmFsdWUiOiAiMTAwMCIKKwkJCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJ
CQl7CisJCQkJCQkJCQkJCQkJImtleSI6ICJleHBhbmQiLAorCQkJCQkJCQkJCQkJCSJ2YWx1ZSI6
ICJjb25maWd1cmF0aW9uIgorCQkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBEZWxldGUgU2Vzc2lvbiIsCisJCQkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29s
fX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJ
CQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19Igor
CQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhh
dmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0s
CisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiV2l0aCBzdGF0dXMgZXhwYW5zaW9uIiwKKwkJCQkJ
CQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIHNl
c3Npb24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6
ICIzMzE5ZTQxNy1kZDU0LTQ5NWYtYTQ1Mi01NTE5ZDJhNjEwODIiLAorCQkJCQkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigp
OyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQki
cmF3IjogIiIsCisJCQkJCQkJCQkJCSJvcHRpb25zIjogeworCQkJCQkJCQkJCQkJInJhdyI6IHsK
KwkJCQkJCQkJCQkJCQkibGFuZ3VhZ2UiOiAianNvbiIKKwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Np
b25zIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJ
CQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNz
aW9ucyIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQki
cmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJS
ZWFkIHNlc3Npb25zIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJ
CQkiaWQiOiAiNmNhMzQ4MGEtMzIyNC00YmY4LWE0NjYtZmRjYjA2MzM4Nzk1IiwKKwkJCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0
KFwic2Vzc2lvbl90b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1
Y3R1cmUgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIml0ZW1zXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2VbXCJpdGVtc1wiXSkudG8uYmUuaW5zdGFuY2Vv
ZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2
ZS5wcm9wZXJ0eShcIl9saW5rc1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJl
c3BvbnNlW1wiX2xpbmtzXCJdKS50by5iZS5pbnN0YW5jZW9mKE9iamVjdCk7IiwKKwkJCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIl9lbWJlZGRl
ZFwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2VtYmVkZGVk
XCJdKS50by5iZS5pbnN0YW5jZW9mKE9iamVjdCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChyZXNwb25zZVtcIl9lbWJlZGRlZFwiXSkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wi
KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2VtYmVkZGVkXCJd
W1wic3RhdHVzXCJdKS50by5iZS5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ3JlYXRlZCBz
ZXNzaW9uJ3MgdG9rZW4gaW4gcmVzcG9uc2VcIiwgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChyZXNwb25zZS5pdGVtcykudG8uY29udGFpbih0b2tlbik7IiwKKwkJ
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVz
dChcIkNyZWF0ZWQgc2Vzc2lvbidzIHRva2VuIGluIGVtYmVkZGVkIHN0YXR1c1wiLCBmdW5jdGlv
bigpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgbGV0IHRva2VuSW5TdGF0dXNMaXN0ID0gZmFsc2U7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIGxldCBzdGF0dXNlcyA9IHJlc3BvbnNlLl9lbWJlZGRlZC5z
dGF0dXM7IiwKKwkJCQkJCQkJCQkJCQkiICAgIGZvciAobGV0IHN0YXR1cyBvZiBzdGF0dXNlcykg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgaWYgKHN0YXR1cy50b2tlbiAhPT0gdG9rZW4pIGNv
bnRpbnVlOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgdG9rZW5JblN0YXR1c0xpc3QgPSB0cnVl
OyIsCisJCQkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0
b2tlbkluU3RhdHVzTGlzdCkudG8uZXF1YWwodHJ1ZSk7IiwKKwkJCQkJCQkJCQkJCQkifSk7Igor
CQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0vX3dhdmUvYXBpL3Nlc3Npb25zP2luZGV4PTAmY291bnQ9MTAwMCZleHBh
bmQ9c3RhdHVzIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJ
CQkJCQkJCQkJIl93YXZlIiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Np
b25zIgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicXVlcnkiOiBbCisJCQkJCQkJCQkJCQl7
CisJCQkJCQkJCQkJCQkJImtleSI6ICJpbmRleCIsCisJCQkJCQkJCQkJCQkJInZhbHVlIjogIjAi
CisJCQkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJCSJrZXkiOiAiY291
bnQiLAorCQkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIxMDAwIgorCQkJCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCQkJCXsKKwkJCQkJCQkJCQkJCQkia2V5IjogImV4cGFuZCIsCisJCQkJCQkJCQkJCQkJInZh
bHVlIjogInN0YXR1cyIKKwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJ
CQl7CisJCQkJCQkJCQkibmFtZSI6ICJDbGVhbiB1cDogRGVsZXRlIFNlc3Npb24iLAorCQkJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMv
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJ
CQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZp
b3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9CisJ
CQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3Rt
YW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVC
ZWhhdmlvciI6IHt9CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIlJlc3VsdHMgQVBJIiwKKwkJCSJp
dGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAidXBsb2FkIGFwaSIsCisJCQkJCSJpdGVtIjog
WworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogImNyZWF0ZSBzZXNzaW9uIiwKKwkJCQkJCQkiaXRl
bSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogUmVhZCBBdmFpbGFibGUg
VGVzdHMiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6
ICIxZjNkOGI2Ny1hYWI4LTQ0YTAtYWJmNC1lMzIwYTZiMjc3NTUiLAorCQkJCQkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJInZhciBhdmFpbGFibGVUZXN0cyA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgaW5jbHVkZWRUZXN0cyA9IFtdOyIsCisJCQkJ
CQkJCQkJCQkJInZhciBleGNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCQkJCQkidmFyIHNw
ZWNpYWxUaW1lb3V0VGVzdCA9IFwiXCI7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
CQkidmFyIGFwaXMgPSBPYmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cyk7IiwKKwkJCQkJCQkJCQkJ
CQkiZm9yKHZhciBhcGkgb2YgYXBpcykgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBpZiAoYXZhaWxh
YmxlVGVzdHNbYXBpXS5sZW5ndGggPiA1MCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgdmFy
IHN1YkRpcnMgPSBhdmFpbGFibGVUZXN0c1thcGldLm1hcCh0ZXN0ID0+IHRlc3Quc3BsaXQoXCIv
XCIpLmZpbHRlcihwYXJ0ID0+ICEhcGFydClbMV0pLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBhY2Mu
aW5kZXhPZihjdXJyKSA9PT0gLTEgPyBhY2MuY29uY2F0KFtjdXJyXSkgOiBhY2MsIFtdKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgICAgIGlmIChzdWJEaXJzLmxlbmd0aCA+IDIpIHsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgICAgICAgICBpbmNsdWRlZFRlc3RzLnB1c2goXCIvXCIgKyBhcGkpOyIsCisJ
CQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGV4Y2x1ZGVkVGVzdHMucHVzaChcIi9cIiArIGFwaSAr
IFwiL1wiICsgc3ViRGlyc1swXSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgc3BlY2lh
bFRpbWVvdXRUZXN0ID0gYXZhaWxhYmxlVGVzdHNbYXBpXVthdmFpbGFibGVUZXN0c1thcGldLmxl
bmd0aCAtIDFdOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGJyZWFrOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgIiwKKwkJCQkJCQkJCQkJ
CQkiICAgIH0iLAorCQkJCQkJCQkJCQkJCSJ9IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkidmFyIHVzZWRBcGkgPSBhcGlzWzBdOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiYXBpX25hbWVcIiwgdXNlZEFwaSk7IiwKKwkJCQkJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJ0ZXN0XCIsIGF2YWlsYWJsZVRlc3RzW3VzZWRBcGldWzBd
KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1
ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjog
W10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzIiwKKwkJCQkJCQkJCQkJ
InByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3Bv
cnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJ0ZXN0cyIKKwkJCQkJCQkJCQkJXQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
CQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBXaXRoIE9u
ZSB0ZXN0IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQi
OiAiZjQyNDc5ZDQtZjcyMy00ODQzLWJhOTEtZjMwMDE5ZWJkOTc1IiwKKwkJCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1m
MC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2Vu
IGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFy
IGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsi
LAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJ
CQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJ
CXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1l
IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJ
CQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJ
CQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0c1wiOiB7XG4gICAgICAgIFwiaW5jbHVkZVwiOiBb
XCJ7e3Rlc3R9fVwiXVxuICAgIH1cbn0iCisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJsIjog
eworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJ
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJ
InBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGki
LAorCQkJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAor
CQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1
ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjlmOGZjNjA2LTI1
ZWUtNDVkZS1iY2Q4LTU3NzM1OTAwNzAxYiIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZh
c2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQld
CisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJiZTIzNDFhOC0x
NTk4LTQxYjAtOTZhNi1jZmQwNDliYWRkMDciLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJ
XQorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9m
aWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJ
CQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogImNyZWF0ZSByZXN1bHRzIiwKKwkJCQkJ
CQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIs
CisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjg5N2Uw
NGFlLWQwYTItNGE2Ny05NDg4LTJiZGViNTVkYjA2YiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAor
CQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
c2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wi
OiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Np
b25fdG9rZW59fSIsCisJCQkJCQkJCQkJCQkic3RhcnQiCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgU2Vzc2lvbiIsCisJ
CQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjk1YjM4MmM2
LTlkMDgtNDFiOS04MGQxLTQwZGMwMjE3Y2MwOSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJ
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
KwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29u
c3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKHJl
c3BvbnNlKSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwibmV4dF90ZXN0XCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIHJlc3BvbnNlLm5leHRfdGVzdCkudG8uZXF1YWwo
XCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJCQkiY29uc3QgbmV4dFRlc3QgPSByZXNwb25zZS5uZXh0X3Rlc3Q7IiwKKwkJCQkJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RfdXJsXCIsIG5leHRUZXN0KTsi
LAorCQkJCQkJCQkJCQkJCSJpZiAoIW5leHRUZXN0KSByZXR1cm47IiwKKwkJCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcGFyYW1ldGVycyA9IG5leHRUZXN0LnNwbGl0KFwiP1wi
KVsxXS5zcGxpdChcIiZcIik7IiwKKwkJCQkJCQkJCQkJCQkibGV0IHRlc3QgPSBwYXJhbWV0ZXJz
LmZpbmQocGFyYW1ldGVyID0+IHBhcmFtZXRlci5zcGxpdChcIj1cIilbMF0gPT09IFwidGVzdF91
cmxcIikuc3BsaXQoXCI9XCIpWzFdOyIsCisJCQkJCQkJCQkJCQkJInRlc3QgPSBkZWNvZGVVUklD
b21wb25lbnQodGVzdCk7IiwKKwkJCQkJCQkJCQkJCQkidGVzdCA9IFwiL1wiICsgdGVzdC5zcGxp
dChcIi9cIikuc2xpY2UoMykuam9pbihcIi9cIikuc3BsaXQoXCI/XCIpWzBdOyIsCisJCQkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0XCIs
IHRlc3QpOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFk
ZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9j
b2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9u
X3Rva2VufX0vbmV4dCIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJ
CQkJCSJuZXh0IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1l
IjogIkNyZWF0ZSBSZXN1bHQiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJ
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkJCSJpZCI6ICI2N2IyM2FjOS01MjU0LTRiN2ItOTBiZi05MzBhOTY2MWE2MTQiLAorCQkJ
CQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJCQl7CisJ
CQkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQkibmFtZSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAor
CQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJ
CSJyYXciOiAie1xuICBcInRlc3RcIjogXCJ7e2N1cnJlbnRfdGVzdH19XCIsXG4gIFwic3RhdHVz
XCI6IFwiT0tcIixcbiAgXCJtZXNzYWdlXCI6IG51bGwsXG4gIFwic3VidGVzdHNcIjogW1xuICAg
IHtcbiAgICAgIFwibmFtZVwiOiBcIlN1YnRlc3QgdGVzdGluZyBmZWF0dXJlIHh5XCIsXG4gICAg
ICBcInN0YXR1c1wiOiBcIkZBSUxcIixcbiAgICAgIFwibWVzc2FnZVwiOiBcIkVycm9yIG1lc3Nh
Z2VcIlxuICAgIH1cbiAgXVxufSIKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJf
cm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3Rv
Y29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJ
CQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJv
dG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIi
OiB0cnVlCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogInVwbG9hZCBuZXcgcmVz
dWx0cyIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkRv
d25sb2FkIGN1cnJlbnQgcmVzdWx0cyIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCQkJImlkIjogIjk4NGM3OWRiLTVhZTEtNGMyMi04YjYyLTZlY2NhYmZhZWI5OCIs
CisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigp
OyIsCisJCQkJCQkJCQkJCQkJInZhciByZXN1bHRzID0ganNvbkRhdGEucmVzdWx0czsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInJlc3VsdHNcIiwg
cmVzdWx0cyk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJ
CQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJ
CQkJCQkJCQkJImlkIjogImE5YTQ2YjVmLTJkZDMtNGZhNy1hNDgyLTcxODZhYzAxYTRkNiIsCisJ
CQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19L3t7YXBpX25hbWV9fS9qc29u
IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJyZXN1bHRz
IiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCQkie3thcGlf
bmFtZX19IiwKKwkJCQkJCQkJCQkJCSJqc29uIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJ
CXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQgQ3VycmVudCBDb21wYWN0IFJlc3VsdHMiLAorCQkJ
CQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJmNDk3NDQ5NS0y
ZTg0LTQ5NjItOTI1OS0xZDU1MDFmYjdhM2YiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJ
CQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImNvbXBhY3RfcmVzdWx0c1wiLCBqc29uRGF0YSk7Igor
CQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19
L2NvbXBhY3QiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJ
InJlc3VsdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJ
CSJjb21wYWN0IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1l
IjogIlVwbG9hZCBSZXN1bHRzIEFwaSBKc29uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNGE3ZGY0NmQtNTQ2Yy00Y2Y0LThjNmEtOWIxM2VhYTBi
ZTMyIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAi
cHJlcmVxdWVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAi
ZTIxOTYzNDgtYTRhMC00OGQzLWJkNzItZjU5MWYwYjY1Y2YwIiwKKwkJCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkJCSJ2YXIgcmVzdWx0cyA9IHBtLmdsb2JhbHMuZ2V0KFwicmVzdWx0
c1wiKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgbmV3U3ViUmVzdWx0ID0gIiwKKwkJCQkJCQkJCQkJ
CQkiICAgICAgICB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgXCJuYW1lXCI6IFwicGxh
Y2Vob2xkZXIgc3ViIHRlc3RcIiwiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBcInN0YXR1
c1wiOiBcIlBBU1NcIiwiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBcIm1lc3NhZ2VcIjog
XCJ0aGlzIGlzIGEgcGxhY2Vob2xkZXIgc3ViIHRlc3RcIiIsCisJCQkJCQkJCQkJCQkJIiAgICAg
ICAgfTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJyZXN1bHRzWzBdLnN1YnRl
c3RzLnB1c2gobmV3U3ViUmVzdWx0KTsiLAorCQkJCQkJCQkJCQkJCSJyZXN1bHRzU3RyaW5nID0g
SlNPTi5zdHJpbmdpZnkocmVzdWx0cyk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQo
XCJyZXN1bHRzU3RyaW5nXCIsIHJlc3VsdHNTdHJpbmcpOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhv
ZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJImJvZHkiOiB7
CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJCSJyYXciOiAie1xuICAgIFwi
cmVzdWx0c1wiOiB7e3Jlc3VsdHNTdHJpbmd9fVxufSIsCisJCQkJCQkJCQkJCSJvcHRpb25zIjog
eworCQkJCQkJCQkJCQkJInJhdyI6IHsKKwkJCQkJCQkJCQkJCQkibGFuZ3VhZ2UiOiAianNvbiIK
KwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0ve3thcGlfbmFtZX19
L2pzb24iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInJl
c3VsdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJ7
e2FwaV9uYW1lfX0iLAorCQkJCQkJCQkJCQkJImpzb24iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ2hlY2sgaWYgY2hhbmdlcyB0b29rIGVmZmVjdCIs
CisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjhjNDVm
ZDZkLWNhOTgtNDM5My1hY2U2LWMwMTU2M2Q3YzFlYyIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQki
cG0udGVzdChcIlJldHVybmVkIHJlc3VsdHMgY29udGFpbiBuZXcgcmVzdWx0XCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCQkJIiAgICB2YXIgcmVzdWx0cyA9IGpzb25EYXRhLnJlc3VsdHM7
IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiICAgIHZhciBvbGRSZXN1bHRzID0g
cG0uZ2xvYmFscy5nZXQoXCJyZXN1bHRzXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3Qob2xkUmVzdWx0c1swXS5zdWJ0ZXN0cy5sZW5ndGggKyAxKS50
by5lcXVhbChyZXN1bHRzWzBdLnN1YnRlc3RzLmxlbmd0aCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7
IiwKKwkJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCQkJImlkIjogIjBjOWUzMWZjLTE5MzEtNGRjZC05NzhmLTM5ZTJhMzhm
OWEzZiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90b2tlbn19L3t7YXBpX25h
bWV9fS9qc29uIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJ
CSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJ
CQkie3thcGlfbmFtZX19IiwKKwkJCQkJCQkJCQkJCSJqc29uIgorCQkJCQkJCQkJCQldCisJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0s
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNoZWNrIGNoYW5nZXMgaW4gQ29tcGFjdCBS
ZXN1bHRzIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQi
OiAiNmUzMGI1MzMtMThmOS00MWJjLWFmNjUtYmRkZTMyM2MyMTVhIiwKKwkJCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
CQkidmFyIHRlc3QgPSBwbS5nbG9iYWxzLmdldChcInRlc3RcIik7IiwKKwkJCQkJCQkJCQkJCQki
dmFyIG9sZENvbXBhY3RSZXN1bHRzID0gcG0uZ2xvYmFscy5nZXQoXCJjb21wYWN0X3Jlc3VsdHNc
Iik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcInBhc3NlZCB0
ZXN0IGluY3JlYXNlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHZhciBh
cGkgPSB0ZXN0LnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KTsiLAorCQkJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0ucGFzcykudG8uZXF1YWwob2xkQ29tcGFj
dFJlc3VsdHNbYXBpXS5wYXNzICsgMSk7IiwKKwkJCQkJCQkJCQkJCQkifSkiCisJCQkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9
CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJ
InVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0vY29tcGFjdCIs
CisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkicmVzdWx0cyIs
CisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkJImNvbXBhY3Qi
CisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInByb3RvY29sUHJvZmlsZUJl
aGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJjbGVhbiB1cCIsCisJCQkJCQkJIml0ZW0iOiBb
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBEZWxldGUgc2Vzc2lvbiIs
CisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJ
CQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2Zp
bGVCZWhhdmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJ
CQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJ
CSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9CisJCQldLAorCQkJInByb3RvY29s
UHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5hbWUiOiAiR2VuZXJhbCBBUEki
LAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJzZXJ2ZXIgc3RhdHVzIiwKKwkJ
CQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBzZXJ2ZXIgc3RhdHVz
IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI4YjViNGMyMy1kYjBh
LTRiODEtOTM0OS1jZThlYWQ2NGJiN2EiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJl
c3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJK
U09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJpbXBvcnRfcmVz
dWx0c19lbmFibGVkXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS5pbXBvcnRfcmVzdWx0c19lbmFibGVkKS50by5lcXVhbChcImJvb2xlYW5cIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJyZXBv
cnRzX2VuYWJsZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25E
YXRhLnJlcG9ydHNfZW5hYmxlZCkudG8uZXF1YWwoXCJib29sZWFuXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicmVhZF9zZXNzaW9u
c19lbmFibGVkXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS5yZWFkX3Nlc3Npb25zX2VuYWJsZWQpLnRvLmVxdWFsKFwiYm9vbGVhblwiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInZlcnNpb25f
c3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS52
ZXJzaW9uX3N0cmluZykudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIK
KwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJ
CSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjog
eworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0s
CisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic3RhdHVz
IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwK
KwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJv
dG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJEZXZpY2Vz
IEFQSSIsCisJCQkiaXRlbSI6IFsKKwkJCQl7CisJCQkJCSJuYW1lIjogImNyZWF0ZSIsCisJCQkJ
CSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBkZXZpY2UiLAorCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjI4NjQyNmVjLWMzOTQtNDhhNC1h
OTBmLWM2ZGQ4MGM3YmVmMSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3VjY2Vzc2Z1bCBQT1NUIHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmJlLm9uZU9mKFsyMDAsMjAx
LDIwMl0pOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
InZhciByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJInBtLnRlc3QoJ1NjaGVtYSBpcyB2YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCisJCQkJ
CQkJCQkJCSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoJ0RhdGEgaXMgdmFsaWQnLCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJCQkiICBwbS5leHBl
Y3QodHlwZW9mIHJlc3BvbnNlLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJ
CQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkiIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJ
CQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJDbGVhbiB1cDogV2FpdCBkZXZpY2UgdGltZW91dCIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiM2JkYjBmN2MtMTI2MS00NjVlLTliMDItMDA3MDAw
NWYwYzQzIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImExY2Y1ODgwLTdiOGUtNGJjNi05ZDky
LTU5NjMyYTcxOWM1NCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJ2YXIgdGlt
ZW91dCA9IHBhcnNlSW50KHBtLmVudmlyb25tZW50LmdldChcImRldmljZV90aW1lb3V0XCIpKSAr
IDUwMCIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlvbiAo
KSB7fSwgdGltZW91dCk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVx
dWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAorCQkJCQkJCQkJInByb3Rv
Y29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJCQkJCSIiCisJCQkJCQkJCQldCisJCQkJCQkJ
CX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJ
CQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJG
b2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogInJlYWQgZGV2aWNlIiwK
KwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRGV2aWNlIG5vdCBmb3Vu
ZCIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQg
ZGV2aWNlIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQi
OiAiYTQ0MDFjYmMtMGEzYS00YzJkLWIxZWQtZTdkNjg2NzYxNGZmIiwKKwkJCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3VjY2Vzc2Z1bCBHRVQgcmVxdWVzdFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25z
ZS5jb2RlKS50by5lcXVhbCg0MDQpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICIxNjQ0ZmQ3
MC1iNGM0LTQyMDctOGUxMi02Nzc1MmE5ODQ0MTciLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy9p
bnZhbGlkX3Rva2VuIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
CQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkJCSJpbnZhbGlkX3Rva2VuIgorCQkJCQkJCQkJCQld
CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJ
CQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAor
CQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiRGV2aWNlIGZvdW5kIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIGRldmljZSIsCisJCQkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogImM0ZjE0MTM3LTVjZWQtNDQ5Yi1h
ODcyLWI3ZDU0MWUyZjZhZiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQki
dmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJInZhciB0
b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJ
InBtLmdsb2JhbHMuc2V0KFwiZGV2aWNlX3Rva2VuXCIsIHRva2VuKSIKKwkJCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
CQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJ
CV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBkZXZpY2UiLAorCQkJ
CQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI2MWE4NDBmMS1k
M2NkLTRkN2EtYTU0Zi0zMGRhMTI2NmU0OGYiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmJl
Lm9uZU9mKFsyMDBdKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdCgnU2NoZW1hIGlzIHZhbGlkJywgZnVu
Y3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUu
cHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChyZXNwb25z
ZSkudG8uaGF2ZS5wcm9wZXJ0eShcInVzZXJfYWdlbnRcIik7IiwKKwkJCQkJCQkJCQkJCQkiICBw
bS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJvcGVydHkoXCJsYXN0X2FjdGl2ZVwiKTsiLAor
CQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIm5h
bWVcIik7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkicG0udGVzdCgnRGF0YSBpcyB2YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgcG0uZXhwZWN0KHR5cGVvZiByZXNwb25zZS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdc
Iik7IiwKKwkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9mIHJlc3BvbnNlLnVzZXJfYWdl
bnQpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHR5
cGVvZiByZXNwb25zZS5sYXN0X2FjdGl2ZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJ
CQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9mIHJlc3BvbnNlLm5hbWUpLnRvLmVxdWFsKFwic3Ry
aW5nXCIpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJ
CQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvZGV2aWNlcy97e2RldmljZV90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkJCSJ7e2RldmljZV90
b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IkNsZWFuIHVwOiBXYWl0IGRldmljZSB0aW1lb3V0IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiMTcxMTIzMzYtYjk2Mi00NzJkLTg2YTgtNzg3MmZm
OTg3NmQxIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
CQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiOTEy
OTM5Y2MtMTY4NS00ZTFmLWIwYTYtNjk2YjI2NDg3MGNhIiwKKwkJCQkJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJCQkJCSJ2YXIgdGltZW91dCA9IHBhcnNlSW50KHBtLmVudmlyb25tZW50Lmdl
dChcImRldmljZV90aW1lb3V0XCIpKSArIDUwMCIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJInNldFRpbWVvdXQoZnVuY3Rpb24gKCkge30sIHRpbWVvdXQpOyIKKwkJCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJ
CQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9y
dH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0
fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJ
CQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7
fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAorCQkJCQkJ
eworCQkJCQkJCSJuYW1lIjogIlRpbWVkIG91dCBkZXZpY2UiLAorCQkJCQkJCSJpdGVtIjogWwor
CQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJQcmVwOiBDcmVhdGUgZGV2aWNlIiwKKwkJCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiYzk5YjkzMTgtMWU1
MC00NzAyLTlkODEtNTNkODdmYWExMDgwIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
CQkidmFyIHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJkZXZpY2VfdG9rZW5cIiwgdG9rZW4pIgorCQkJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJ
CQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19
Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAorCQkJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJCQkJCQkJIiIKKwkJ
CQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJXYWl0IGRldmlj
ZSB0aW1lb3V0IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQki
aWQiOiAiODk1MTdkYzktMzFiNC00MGU3LTg5ZTQtOTlkZDZlNzkyZTZhIiwKKwkJCQkJCQkJCQkJ
CSJleGVjIjogWworCQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJCQkJ
CSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiZWQyMGJiZjYtNGYzMS00ZDkxLWEwN2It
N2EwYjRhZmNmMTYxIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJ2YXIg
dGltZW91dCA9IHBhcnNlSW50KHBtLmVudmlyb25tZW50LmdldChcImRldmljZV90aW1lb3V0XCIp
KSArIDUwMCIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInNldFRpbWVvdXQoZnVu
Y3Rpb24gKCkge30sIHRpbWVvdXQpOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAor
CQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
ZGV2aWNlcy8iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJ
ImRldmljZXMiLAorCQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJ
CQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7
CisJCQkJCQkJCQkibmFtZSI6ICJSZWFkIGRldmljZSIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjdiNzQ5NmY1LTJmZGMtNDcwYy1iMzk0LTJhNWFl
N2QyOWRhMiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChc
IlN1Y2Nlc3NmdWwgR0VUIHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QocG0ucmVzcG9uc2UuY29kZSkudG8uZXF1YWwoNDA0KTsiLAorCQkJCQkJ
CQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJ
CQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJCQkiaWQiOiAiMTgwN2YxNTItN2VmNC00Mjc3LTlkYjYtMWJmZjUzZDZjYzhiIiwK
KwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJt
ZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL2RldmljZXMve3tkZXZpY2VfdG9rZW59fSIsCisJCQkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkiZGV2aWNlcyIsCisJCQkJCQkJCQkJCQki
e3tkZXZpY2VfdG9rZW59fSIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0s
CisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQki
cHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xk
ZXIiOiB0cnVlCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlv
ciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7
CisJCQkJCSJuYW1lIjogInJlYWQgZGV2aWNlcyIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJewor
CQkJCQkJCSJuYW1lIjogIlByZXA6IENyZWF0ZSBkZXZpY2UgQSIsCisJCQkJCQkJImV2ZW50Ijog
WworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlw
dCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYTc4MDNjNWMtZjM3MS00YWUwLThiMDgtMWMwNjk5NWM5
YjYwIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInZhciByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkidmFyIHRva2VuID0gcmVzcG9uc2UudG9r
ZW47IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImRldmlj
ZV90b2tlbl9hXCIsIHRva2VuKSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIi
OiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCisJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkiZGV2aWNlcyIsCisJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIGRldmljZSBCIiwKKwkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwMjQ1MDkwMy1hZWY5LTRlZTYtOWQ0OC05NGJh
OWI1ZmQ1NGMiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNl
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJ2YXIgdG9rZW4gPSByZXNwb25z
ZS50b2tlbjsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
ZGV2aWNlX3Rva2VuX2JcIiwgdG9rZW4pIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKKwkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkiIgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIGRldmljZXMiLAorCQkJCQkJCSJldmVudCI6
IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjE2MTI0MTdiLWJlZDgtNDhkNS1hNmEzLTM5ZDBkMGZl
NjkzMiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3VjY2Vz
c2Z1bCBHRVQgcmVxdWVzdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QocG0ucmVzcG9uc2UuY29kZSkudG8uYmUub25lT2YoWzIwMF0pOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciByZXNwb25zZSA9IHBtLnJl
c3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoJ1Nj
aGVtYSBpcyB2YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChy
ZXNwb25zZSkudG8uYmUuaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgcmVzcG9u
c2UuZm9yRWFjaChlbGVtZW50ID0+IHsiLAorCQkJCQkJCQkJCQkiICBwbS5leHBlY3QoZWxlbWVu
dCkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4cGVj
dChlbGVtZW50KS50by5oYXZlLnByb3BlcnR5KFwidXNlcl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJ
CQkiICBwbS5leHBlY3QoZWxlbWVudCkudG8uaGF2ZS5wcm9wZXJ0eShcImxhc3RfYWN0aXZlXCIp
OyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChlbGVtZW50KS50by5oYXZlLnByb3BlcnR5KFwi
bmFtZVwiKTsiLAorCQkJCQkJCQkJCQkiICB9KSIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoJ0RhdGEgaXMgdmFsaWQnLCBmdW5jdGlvbigp
IHsiLAorCQkJCQkJCQkJCQkiICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUubGVuZ3RoT2Yo
Mik7IiwKKwkJCQkJCQkJCQkJIiAgdmFyIGRldmljZXNfbGVmdCA9IFsiLAorCQkJCQkJCQkJCQki
ICAgICAgcG0uZ2xvYmFscy5nZXQoXCJkZXZpY2VfdG9rZW5fYVwiKSwgIiwKKwkJCQkJCQkJCQkJ
IiAgICAgIHBtLmdsb2JhbHMuZ2V0KFwiZGV2aWNlX3Rva2VuX2JcIikiLAorCQkJCQkJCQkJCQki
ICAgIF0iLAorCQkJCQkJCQkJCQkiICByZXNwb25zZS5mb3JFYWNoKGVsZW1lbnQgPT4geyIsCisJ
CQkJCQkJCQkJCSIgICAgICBwbS5leHBlY3QodHlwZW9mIGVsZW1lbnQudG9rZW4pLnRvLmVxdWFs
KFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICBwbS5leHBlY3QodHlwZW9mIGVsZW1l
bnQudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAg
IHBtLmV4cGVjdCh0eXBlb2YgZWxlbWVudC5sYXN0X2FjdGl2ZSkudG8uZXF1YWwoXCJzdHJpbmdc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICAgIHBtLmV4cGVjdCh0eXBlb2YgZWxlbWVudC5uYW1lKS50
by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgcG0uZXhwZWN0KGRldmlj
ZXNfbGVmdCkudG8uaW5jbHVkZShlbGVtZW50LnRva2VuKTsiLAorCQkJCQkJCQkJCQkiICAgICAg
ZGV2aWNlc19sZWZ0LnNwbGljZShkZXZpY2VzX2xlZnQuaW5kZXhPZihlbGVtZW50LnRva2VuKSwg
MSk7IiwKKwkJCQkJCQkJCQkJIiAgfSkiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJ
CQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
ZGV2aWNlcy8iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJ
CQkJCSIiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBXYWl0
IGRldmljZSB0aW1lb3V0IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICI5YjdmZjYyMy04YWFjLTQ2ZDEtOWM1Ni0xY2ViOGFjYzJkZTYiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJ
CQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkiaWQiOiAiYzBmYmY3NDItZjc1ZS00ZjNiLWE1NzYtNzVjOWQ1ZTBmNzJkIiwKKwkJCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gcGFyc2VJbnQocG0uZW52aXJv
bm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsgNTAwIiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1lb3V0KTsiCisJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJ
CQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9k
IjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS9kZXZpY2VzLyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkiZGV2aWNlcyIsCisJ
CQkJCQkJCQkJIiIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2
aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9CisJCQld
LAorCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfQorCV0sCisJInByb3RvY29s
UHJvZmlsZUJlaGF2aW9yIjoge30KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdGVzdGluZy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL19faW5pdF9fLnB5CmluZGV4IGE2ODM0
YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0Yjhi
MjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL19faW5pdF9fLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90
ZXN0aW5nL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL2RldmljZXNfbWFuYWdlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS90ZXN0aW5nL2RldmljZXNfbWFuYWdlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDM1NzJlMjU5MDM5Nzc3
YTJhNjNjZDU1NzRkZDcyMGUwNjQwZWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvZGV2aWNl
c19tYW5hZ2VyLnB5CkBAIC0wLDAgKzEsMTE3IEBACitpbXBvcnQgdGltZQoraW1wb3J0IHV1aWQK
KworZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRpbWVyCisKK2Zyb20gLi5kYXRhLmRldmljZSBpbXBv
cnQgRGV2aWNlCitmcm9tIC4udGVzdGluZy5ldmVudF9kaXNwYXRjaGVyIGltcG9ydCBERVZJQ0VT
LCBERVZJQ0VfQURERURfRVZFTlQsIERFVklDRV9SRU1PVkVEX0VWRU5UCitmcm9tIC4udXRpbHMu
dXNlcl9hZ2VudF9wYXJzZXIgaW1wb3J0IHBhcnNlX3VzZXJfYWdlbnQKK2Zyb20gLi51dGlscy5z
ZXJpYWxpemVyIGltcG9ydCBzZXJpYWxpemVfZGV2aWNlCitmcm9tIC4uZGF0YS5leGNlcHRpb25z
Lm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0aW9uCisKKworREVWSUNF
X1RJTUVPVVQgPSA2MDAwMCAgIyA2MHNlYworUkVDT05ORUNUX1RJTUUgPSA1MDAwICAgIyA1c2Vj
CisKK2NsYXNzIERldmljZXNNYW5hZ2VyKG9iamVjdCk6CisgICAgZGVmIGluaXRpYWxpemUoc2Vs
ZiwgZXZlbnRfZGlzcGF0Y2hlcik6CisgICAgICAgIHNlbGYuZGV2aWNlcyA9IHt9CisgICAgICAg
IHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIgPSBldmVudF9kaXNwYXRjaGVyCisgICAgICAgIHNlbGYu
X3RpbWVyID0gTm9uZQorCisgICAgZGVmIGNyZWF0ZV9kZXZpY2Uoc2VsZiwgdXNlcl9hZ2VudCk6
CisgICAgICAgIGJyb3dzZXIgPSBwYXJzZV91c2VyX2FnZW50KHVzZXJfYWdlbnQpCisgICAgICAg
IG5hbWUgPSAie30ge30iLmZvcm1hdChicm93c2VyWyJuYW1lIl0sIGJyb3dzZXJbInZlcnNpb24i
XSkKKyAgICAgICAgdG9rZW4gPSBzdHIodXVpZC51dWlkMSgpKQorICAgICAgICBsYXN0X2FjdGl2
ZSA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCisKKyAgICAgICAgZGV2aWNlID0gRGV2aWNlKHRv
a2VuLCB1c2VyX2FnZW50LCBuYW1lLCBsYXN0X2FjdGl2ZSkKKworICAgICAgICBzZWxmLl9ldmVu
dF9kaXNwYXRjaGVyLmRpc3BhdGNoX2V2ZW50KAorICAgICAgICAgICAgREVWSUNFUywKKyAgICAg
ICAgICAgIERFVklDRV9BRERFRF9FVkVOVCwKKyAgICAgICAgICAgIHNlcmlhbGl6ZV9kZXZpY2Uo
ZGV2aWNlKSkKKyAgICAgICAgc2VsZi5hZGRfdG9fY2FjaGUoZGV2aWNlKQorCisgICAgICAgIHNl
bGYuX3NldF90aW1lcihERVZJQ0VfVElNRU9VVCkKKworICAgICAgICByZXR1cm4gZGV2aWNlCisK
KyAgICBkZWYgcmVhZF9kZXZpY2Uoc2VsZiwgdG9rZW4pOgorICAgICAgICBpZiB0b2tlbiBub3Qg
aW4gc2VsZi5kZXZpY2VzOgorICAgICAgICAgICAgcmFpc2UgTm90Rm91bmRFeGNlcHRpb24oIkNv
dWxkIG5vdCBmaW5kIGRldmljZSAne30nIi5mb3JtYXQodG9rZW4pKQorICAgICAgICByZXR1cm4g
c2VsZi5kZXZpY2VzW3Rva2VuXQorCisgICAgZGVmIHJlYWRfZGV2aWNlcyhzZWxmKToKKyAgICAg
ICAgZGV2aWNlcyA9IFtdCisgICAgICAgIGZvciBrZXkgaW4gc2VsZi5kZXZpY2VzOgorICAgICAg
ICAgICAgZGV2aWNlcy5hcHBlbmQoc2VsZi5kZXZpY2VzW2tleV0pCisKKyAgICAgICAgcmV0dXJu
IGRldmljZXMKKworICAgIGRlZiB1cGRhdGVfZGV2aWNlKHNlbGYsIGRldmljZSk6CisgICAgICAg
IGlmIGRldmljZS50b2tlbiBub3QgaW4gc2VsZi5kZXZpY2VzOgorICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgIHNlbGYuZGV2aWNlc1tkZXZpY2UudG9rZW5dID0gZGV2aWNlCisKKyAgICBkZWYg
ZGVsZXRlX2RldmljZShzZWxmLCB0b2tlbik6CisgICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxm
LmRldmljZXM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZGV2aWNlID0gc2VsZi5kZXZp
Y2VzW3Rva2VuXQorICAgICAgICBkZWwgc2VsZi5kZXZpY2VzW3Rva2VuXQorICAgICAgICBzZWxm
Ll9ldmVudF9kaXNwYXRjaGVyLmRpc3BhdGNoX2V2ZW50KAorICAgICAgICAgICAgREVWSUNFUywK
KyAgICAgICAgICAgIERFVklDRV9SRU1PVkVEX0VWRU5ULAorICAgICAgICAgICAgc2VyaWFsaXpl
X2RldmljZShkZXZpY2UpKQorCisgICAgZGVmIHJlZnJlc2hfZGV2aWNlKHNlbGYsIHRva2VuKToK
KyAgICAgICAgaWYgdG9rZW4gbm90IGluIHNlbGYuZGV2aWNlczoKKyAgICAgICAgICAgIHJldHVy
bgorICAgICAgICBkZXZpY2UgPSBzZWxmLmRldmljZXNbdG9rZW5dCisgICAgICAgIGRldmljZS5s
YXN0X2FjdGl2ZSA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCisgICAgICAgIHNlbGYudXBkYXRl
X2RldmljZShkZXZpY2UpCisKKyAgICBkZWYgcG9zdF9ldmVudChzZWxmLCBoYW5kbGUsIGV2ZW50
X3R5cGUsIGRhdGEpOgorICAgICAgICBpZiBldmVudF90eXBlIGlzIE5vbmU6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5kaXNwYXRjaF9ldmVudCho
YW5kbGUsIGV2ZW50X3R5cGUsIGRhdGEpCisKKyAgICBkZWYgcG9zdF9nbG9iYWxfZXZlbnQoc2Vs
ZiwgZXZlbnRfdHlwZSwgZGF0YSk6CisgICAgICAgIHNlbGYucG9zdF9ldmVudChERVZJQ0VTLCBl
dmVudF90eXBlLCBkYXRhKQorCisgICAgZGVmIF9zZXRfdGltZXIoc2VsZiwgdGltZW91dCk6Cisg
ICAgICAgIGlmIHNlbGYuX3RpbWVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgZGVmIGhhbmRsZV90aW1lb3V0KHNlbGYpOgorICAgICAgICAgICAgc2VsZi5fdGlt
ZXIgPSBOb25lCisgICAgICAgICAgICBub3cgPSBpbnQodGltZS50aW1lKCkgKiAxMDAwKQorICAg
ICAgICAgICAgdGltZWRfb3V0X2RldmljZXMgPSBbXQorICAgICAgICAgICAgZm9yIHRva2VuIGlu
IHNlbGYuZGV2aWNlczoKKyAgICAgICAgICAgICAgICBkZXZpY2UgPSBzZWxmLmRldmljZXNbdG9r
ZW5dCisgICAgICAgICAgICAgICAgaWYgbm93IC0gZGV2aWNlLmxhc3RfYWN0aXZlIDwgREVWSUNF
X1RJTUVPVVQ6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAg
dGltZWRfb3V0X2RldmljZXMuYXBwZW5kKHRva2VuKQorCisgICAgICAgICAgICBmb3IgdG9rZW4g
aW4gdGltZWRfb3V0X2RldmljZXM6CisgICAgICAgICAgICAgICAgc2VsZi5kZWxldGVfZGV2aWNl
KHRva2VuKQorCisgICAgICAgICAgICBvbGRlc3RfYWN0aXZlX3RpbWUgPSBOb25lCisgICAgICAg
ICAgICBmb3IgdG9rZW4gaW4gc2VsZi5kZXZpY2VzOgorICAgICAgICAgICAgICAgIGRldmljZSA9
IHNlbGYuZGV2aWNlc1t0b2tlbl0KKyAgICAgICAgICAgICAgICBpZiBvbGRlc3RfYWN0aXZlX3Rp
bWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgb2xkZXN0X2FjdGl2ZV90aW1lID0gZGV2
aWNlLmxhc3RfYWN0aXZlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgaWYgb2xkZXN0X2FjdGl2ZV90aW1lID4gZGV2aWNlLmxhc3RfYWN0aXZlOgorICAgICAgICAg
ICAgICAgICAgICAgICAgb2xkZXN0X2FjdGl2ZV90aW1lID0gZGV2aWNlLmxhc3RfYWN0aXZlCisg
ICAgICAgICAgICBpZiBvbGRlc3RfYWN0aXZlX3RpbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAgICAgc2VsZi5fc2V0X3RpbWVyKG5vdyAtIG9sZGVzdF9hY3RpdmVfdGltZSkKKworICAgICAg
ICBzZWxmLl90aW1lciA9IFRpbWVyKHRpbWVvdXQgLyAxMDAwLjAsIGhhbmRsZV90aW1lb3V0LCBb
c2VsZl0pCisgICAgICAgIHNlbGYuX3RpbWVyLnN0YXJ0KCkKKworICAgIGRlZiBhZGRfdG9fY2Fj
aGUoc2VsZiwgZGV2aWNlKToKKyAgICAgICAgaWYgZGV2aWNlLnRva2VuIGluIHNlbGYuZGV2aWNl
czoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYuZGV2aWNlc1tkZXZpY2UudG9r
ZW5dID0gZGV2aWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9ldmVudF9kaXNwYXRjaGVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rp
bmcvZXZlbnRfZGlzcGF0Y2hlci5weQppbmRleCBiYjU3OGQxYzY4MzhkMjIzYmJjMWQyNTQ4YTZl
NWNlZjBhOWJmZTYyLi4wOTE2NTM5NmFlNzViMWM3YmUwOTVjYWQzMmVkNTBhZGE1ZDkzMTk0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvdGVzdGluZy9ldmVudF9kaXNwYXRjaGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL2V2ZW50X2Rp
c3BhdGNoZXIucHkKQEAgLTEsMzkgKzEsMTQ2IEBACitpbXBvcnQgdXVpZAoraW1wb3J0IHRpbWUK
K2Zyb20gdGhyZWFkaW5nIGltcG9ydCBUaW1lcgorCisKIFNUQVRVU19FVkVOVCA9ICJzdGF0dXMi
CiBSRVNVTUVfRVZFTlQgPSAicmVzdW1lIgogVEVTVF9DT01QTEVURURfRVZFTlQgPSAidGVzdF9j
b21wbGV0ZWQiCiAKK0RFVklDRVMgPSAiZGV2aWNlcyIKK0RFVklDRV9BRERFRF9FVkVOVCA9ICJk
ZXZpY2VfYWRkZWQiCitERVZJQ0VfUkVNT1ZFRF9FVkVOVCA9ICJkZXZpY2VfcmVtb3ZlZCIKIAog
Y2xhc3MgRXZlbnREaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICBzZWxmLl9jbGllbnRzID0ge30KKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXZlbnRf
Y2FjaGVfZHVyYXRpb24pOgorICAgICAgICBzZWxmLl9saXN0ZW5lcnMgPSB7fQorICAgICAgICBz
ZWxmLl9ldmVudHMgPSB7fQorICAgICAgICBzZWxmLl9jdXJyZW50X2V2ZW50cyA9IHt9CisgICAg
ICAgIHNlbGYuX2NhY2hlX2R1cmF0aW9uID0gZXZlbnRfY2FjaGVfZHVyYXRpb24KKyAgICAgICAg
c2VsZi5fY2FjaGVfdGltZW91dCA9IE5vbmUKKworICAgIGRlZiBhZGRfZXZlbnRfbGlzdGVuZXIo
c2VsZiwgbGlzdGVuZXIsIGxhc3RfZXZlbnRfbnVtYmVyPU5vbmUpOgorICAgICAgICB0b2tlbiA9
IGxpc3RlbmVyLmRpc3BhdGNoZXJfdG9rZW4KIAotICAgIGRlZiBhZGRfc2Vzc2lvbl9jbGllbnQo
c2VsZiwgY2xpZW50KToKLSAgICAgICAgdG9rZW4gPSBjbGllbnQuc2Vzc2lvbl90b2tlbgotICAg
ICAgICBpZiB0b2tlbiBub3QgaW4gc2VsZi5fY2xpZW50czoKLSAgICAgICAgICAgIHNlbGYuX2Ns
aWVudHNbdG9rZW5dID0gW10KLSAgICAgICAgc2VsZi5fY2xpZW50c1t0b2tlbl0uYXBwZW5kKGNs
aWVudCkKKyAgICAgICAgaWYgbGFzdF9ldmVudF9udW1iZXIgaXMgbm90IE5vbmUgXAorICAgICAg
ICAgICAgYW5kIHRva2VuIGluIHNlbGYuX2N1cnJlbnRfZXZlbnRzIFwKKyAgICAgICAgICAgICAg
ICBhbmQgc2VsZi5fY3VycmVudF9ldmVudHNbdG9rZW5dID4gbGFzdF9ldmVudF9udW1iZXI6Cisg
ICAgICAgICAgICBkaWZmX2V2ZW50cyA9IHNlbGYuX2dldF9kaWZmX2V2ZW50cyh0b2tlbiwgbGFz
dF9ldmVudF9udW1iZXIpCisgICAgICAgICAgICBpZiBsZW4oZGlmZl9ldmVudHMpID4gMDoKKyAg
ICAgICAgICAgICAgICBsaXN0ZW5lci5zZW5kX21lc3NhZ2UoZGlmZl9ldmVudHMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuCiAKLSAgICBkZWYgcmVtb3ZlX3Nlc3Npb25fY2xpZW50KHNlbGYsIGNs
aWVudF90b19kZWxldGUpOgotICAgICAgICBpZiBjbGllbnRfdG9fZGVsZXRlIGlzIE5vbmU6Cisg
ICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxmLl9saXN0ZW5lcnM6CisgICAgICAgICAgICBzZWxm
Ll9saXN0ZW5lcnNbdG9rZW5dID0gW10KKyAgICAgICAgc2VsZi5fbGlzdGVuZXJzW3Rva2VuXS5h
cHBlbmQobGlzdGVuZXIpCisgICAgICAgIGxpc3RlbmVyLnRva2VuID0gc3RyKHV1aWQudXVpZDEo
KSkKKyAgICAgICAgcmV0dXJuIGxpc3RlbmVyLnRva2VuCisKKyAgICBkZWYgcmVtb3ZlX2V2ZW50
X2xpc3RlbmVyKHNlbGYsIGxpc3RlbmVyX3Rva2VuKToKKyAgICAgICAgaWYgbGlzdGVuZXJfdG9r
ZW4gaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybgotICAgICAgICB0b2tlbiA9IGNsaWVudF90
b19kZWxldGUuc2Vzc2lvbl90b2tlbgotICAgICAgICBpZiB0b2tlbiBub3QgaW4gc2VsZi5fY2xp
ZW50czoKKworICAgICAgICBmb3IgZGlzcGF0Y2hlcl90b2tlbiBpbiBzZWxmLl9saXN0ZW5lcnM6
CisgICAgICAgICAgICBmb3IgbGlzdGVuZXIgaW4gc2VsZi5fbGlzdGVuZXJzW2Rpc3BhdGNoZXJf
dG9rZW5dOgorICAgICAgICAgICAgICAgIGlmIGxpc3RlbmVyLnRva2VuID09IGxpc3RlbmVyX3Rv
a2VuOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9saXN0ZW5lcnNbZGlzcGF0Y2hlcl90b2tl
bl0ucmVtb3ZlKGxpc3RlbmVyKQorICAgICAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fbGlz
dGVuZXJzW2Rpc3BhdGNoZXJfdG9rZW5dKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAg
ZGVsIHNlbGYuX2xpc3RlbmVyc1tkaXNwYXRjaGVyX3Rva2VuXQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4KKworICAgIGRlZiBkaXNwYXRjaF9ldmVudChzZWxmLCBkaXNwYXRjaGVyX3Rva2Vu
LCBldmVudF90eXBlLCBkYXRhPU5vbmUpOgorICAgICAgICBpZiBkaXNwYXRjaGVyX3Rva2VuIG5v
dCBpbiBzZWxmLl9jdXJyZW50X2V2ZW50czoKKyAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfZXZl
bnRzW2Rpc3BhdGNoZXJfdG9rZW5dID0gLTEKKworICAgICAgICBpZiBkaXNwYXRjaGVyX3Rva2Vu
IG5vdCBpbiBzZWxmLl9ldmVudHM6CisgICAgICAgICAgICBzZWxmLl9ldmVudHNbZGlzcGF0Y2hl
cl90b2tlbl0gPSBbXQorCisgICAgICAgIHNlbGYuX2FkZF90b19jYWNoZShkaXNwYXRjaGVyX3Rv
a2VuLCBldmVudF90eXBlLCBkYXRhKQorICAgICAgICBzZWxmLl9zZXRfY2FjaGVfdGltZXIoKQor
CisgICAgICAgIGlmIGRpc3BhdGNoZXJfdG9rZW4gbm90IGluIHNlbGYuX2xpc3RlbmVyczoKICAg
ICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGZvciBjbGllbnQgaW4gc2VsZi5fY2xpZW50c1t0
b2tlbl06Ci0gICAgICAgICAgICBpZiBjbGllbnQuc2Vzc2lvbl90b2tlbiA9PSBjbGllbnRfdG9f
ZGVsZXRlLnNlc3Npb25fdG9rZW46Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2xpZW50cy5yZW1v
dmUoY2xpZW50KQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIGxlbihzZWxmLl9j
bGllbnRzW3Rva2VuXSkgPT0gMDoKLSAgICAgICAgICAgIGRlbCBzZWxmLl9jbGllbnRzW3Rva2Vu
XQorICAgICAgICBldmVudCA9IHsKKyAgICAgICAgICAgICJ0eXBlIjogZXZlbnRfdHlwZSwKKyAg
ICAgICAgICAgICJkYXRhIjogZGF0YSwKKyAgICAgICAgICAgICJudW1iZXIiOiBzZWxmLl9jdXJy
ZW50X2V2ZW50c1tkaXNwYXRjaGVyX3Rva2VuXQorICAgICAgICB9CisKKyAgICAgICAgZm9yIGxp
c3RlbmVyIGluIHNlbGYuX2xpc3RlbmVyc1tkaXNwYXRjaGVyX3Rva2VuXToKKyAgICAgICAgICAg
IGxpc3RlbmVyLnNlbmRfbWVzc2FnZShbZXZlbnRdKQorCisgICAgZGVmIF9nZXRfZGlmZl9ldmVu
dHMoc2VsZiwgZGlzcGF0Y2hlcl90b2tlbiwgbGFzdF9ldmVudF9udW1iZXIpOgorICAgICAgICB0
b2tlbiA9IGRpc3BhdGNoZXJfdG9rZW4KKyAgICAgICAgZGlmZl9ldmVudHMgPSBbXQorICAgICAg
ICBpZiB0b2tlbiBub3QgaW4gc2VsZi5fZXZlbnRzOgorICAgICAgICAgICAgcmV0dXJuIGRpZmZf
ZXZlbnRzCisgICAgICAgIGZvciBldmVudCBpbiBzZWxmLl9ldmVudHNbdG9rZW5dOgorICAgICAg
ICAgICAgaWYgZXZlbnRbIm51bWJlciJdIDw9IGxhc3RfZXZlbnRfbnVtYmVyOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBkaWZmX2V2ZW50cy5hcHBlbmQoeworICAgICAg
ICAgICAgICAgICJ0eXBlIjogZXZlbnRbInR5cGUiXSwKKyAgICAgICAgICAgICAgICAiZGF0YSI6
IGV2ZW50WyJkYXRhIl0sCisgICAgICAgICAgICAgICAgIm51bWJlciI6IGV2ZW50WyJudW1iZXIi
XQorICAgICAgICAgICAgfSkKKyAgICAgICAgcmV0dXJuIGRpZmZfZXZlbnRzCisKKyAgICBkZWYg
X3NldF9jYWNoZV90aW1lcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fY2FjaGVfdGltZW91dCBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybgogCi0gICAgZGVmIGRpc3BhdGNoX2V2ZW50
KHNlbGYsIHRva2VuLCBldmVudF90eXBlLCBkYXRhKToKLSAgICAgICAgaWYgdG9rZW4gbm90IGlu
IHNlbGYuX2NsaWVudHM6CisgICAgICAgIGV2ZW50cyA9IHNlbGYuX3JlYWRfY2FjaGVkX2V2ZW50
cygpCisgICAgICAgIGlmIGxlbihldmVudHMpID09IDA6CiAgICAgICAgICAgICByZXR1cm4KKwor
ICAgICAgICBuZXh0X2V2ZW50ID0gZXZlbnRzWzBdCisgICAgICAgIGZvciBldmVudCBpbiBldmVu
dHM6CisgICAgICAgICAgICBpZiBuZXh0X2V2ZW50WyJleHBpcmF0aW9uX2RhdGUiXSA+IGV2ZW50
WyJleHBpcmF0aW9uX2RhdGUiXToKKyAgICAgICAgICAgICAgICBuZXh0X2V2ZW50ID0gZXZlbnQK
KworICAgICAgICB0aW1lb3V0ID0gbmV4dF9ldmVudFsiZXhwaXJhdGlvbl9kYXRlIl0gLyAxMDAw
LjAgLSB0aW1lLnRpbWUoKQorICAgICAgICBpZiB0aW1lb3V0IDwgMDoKKyAgICAgICAgICAgIHRp
bWVvdXQgPSAwCisKKyAgICAgICAgZGVmIGhhbmRsZV90aW1lb3V0KHNlbGYpOgorICAgICAgICAg
ICAgc2VsZi5fZGVsZXRlX2V4cGlyZWRfZXZlbnRzKCkKKyAgICAgICAgICAgIHNlbGYuX2NhY2hl
X3RpbWVvdXQgPSBOb25lCisgICAgICAgICAgICBzZWxmLl9zZXRfY2FjaGVfdGltZXIoKQorCisg
ICAgICAgIHNlbGYuX2NhY2hlX3RpbWVvdXQgPSBUaW1lcih0aW1lb3V0LCBoYW5kbGVfdGltZW91
dCwgW3NlbGZdKQorICAgICAgICBzZWxmLl9jYWNoZV90aW1lb3V0LnN0YXJ0KCkKKworICAgIGRl
ZiBfZGVsZXRlX2V4cGlyZWRfZXZlbnRzKHNlbGYpOgorICAgICAgICBldmVudHMgPSBzZWxmLl9y
ZWFkX2NhY2hlZF9ldmVudHMoKQorICAgICAgICBub3cgPSBpbnQodGltZS50aW1lKCkgKiAxMDAw
KQorCisgICAgICAgIGZvciBldmVudCBpbiBldmVudHM6CisgICAgICAgICAgICBpZiBldmVudFsi
ZXhwaXJhdGlvbl9kYXRlIl0gPCBub3c6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2Zy
b21fY2FjaGUoZXZlbnQpCisKKyAgICBkZWYgX2FkZF90b19jYWNoZShzZWxmLCBkaXNwYXRjaGVy
X3Rva2VuLCBldmVudF90eXBlLCBkYXRhKToKKyAgICAgICAgc2VsZi5fY3VycmVudF9ldmVudHNb
ZGlzcGF0Y2hlcl90b2tlbl0gKz0gMQorICAgICAgICBjdXJyZW50X2V2ZW50X251bWJlciA9IHNl
bGYuX2N1cnJlbnRfZXZlbnRzW2Rpc3BhdGNoZXJfdG9rZW5dCiAgICAgICAgIGV2ZW50ID0gewog
ICAgICAgICAgICAgInR5cGUiOiBldmVudF90eXBlLAotICAgICAgICAgICAgImRhdGEiOiBkYXRh
CisgICAgICAgICAgICAiZGF0YSI6IGRhdGEsCisgICAgICAgICAgICAibnVtYmVyIjogY3VycmVu
dF9ldmVudF9udW1iZXIsCisgICAgICAgICAgICAiZXhwaXJhdGlvbl9kYXRlIjogaW50KHRpbWUu
dGltZSgpICogMTAwMCkgKyBzZWxmLl9jYWNoZV9kdXJhdGlvbgogICAgICAgICB9CisgICAgICAg
IHNlbGYuX2V2ZW50c1tkaXNwYXRjaGVyX3Rva2VuXS5hcHBlbmQoZXZlbnQpCisKKyAgICBkZWYg
X3JlbW92ZV9mcm9tX2NhY2hlKHNlbGYsIGV2ZW50KToKKyAgICAgICAgZm9yIGRpc3BhdGNoZXJf
dG9rZW4gaW4gc2VsZi5fZXZlbnRzOgorICAgICAgICAgICAgZm9yIGNhY2hlZF9ldmVudCBpbiBz
ZWxmLl9ldmVudHNbZGlzcGF0Y2hlcl90b2tlbl06CisgICAgICAgICAgICAgICAgaWYgY2FjaGVk
X2V2ZW50IGlzIG5vdCBldmVudDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgICAgICAgICBzZWxmLl9ldmVudHNbZGlzcGF0Y2hlcl90b2tlbl0ucmVtb3ZlKGNhY2hlZF9l
dmVudCkKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZXZlbnRzW2Rpc3BhdGNoZXJfdG9r
ZW5dKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICBkZWwgc2VsZi5fZXZlbnRzW2Rpc3BhdGNo
ZXJfdG9rZW5dCisgICAgICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgZm9yIGNsaWVudCBp
biBzZWxmLl9jbGllbnRzW3Rva2VuXToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX21lc3NhZ2Uo
ZXZlbnQpCisgICAgZGVmIF9yZWFkX2NhY2hlZF9ldmVudHMoc2VsZik6CisgICAgICAgIGV2ZW50
cyA9IFtdCisgICAgICAgIGZvciBkaXNwYXRjaGVyX3Rva2VuIGluIHNlbGYuX2V2ZW50czoKKyAg
ICAgICAgICAgIGV2ZW50cyA9IGV2ZW50cyArIHNlbGYuX2V2ZW50c1tkaXNwYXRjaGVyX3Rva2Vu
XQorICAgICAgICByZXR1cm4gZXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9yZXN1bHRzX21hbmFn
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdGVzdGluZy9yZXN1bHRzX21hbmFnZXIucHkKaW5kZXggZWVhM2FhOTkwM2Y0ZTI1OWMw
NDJiMDk1NjdkZjQ1MGQ5NzU4MjJjNC4uOTc4YzEyZDc1Zjk4NzIxYjYyMTJjZDQwMDdhNTc2NWNj
YzIxNGE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvcmVzdWx0c19tYW5hZ2VyLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5n
L3Jlc3VsdHNfbWFuYWdlci5weQpAQCAtNSw2ICs1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBo
YXNobGliCiBpbXBvcnQgemlwZmlsZQogaW1wb3J0IHRpbWUKK2Zyb20gdGhyZWFkaW5nIGltcG9y
dCBUaW1lcgogCiBmcm9tIC4udXRpbHMudXNlcl9hZ2VudF9wYXJzZXIgaW1wb3J0IHBhcnNlX3Vz
ZXJfYWdlbnQsIGFiYnJldmlhdGVfYnJvd3Nlcl9uYW1lCiBmcm9tIC4udXRpbHMuc2VyaWFsaXpl
ciBpbXBvcnQgc2VyaWFsaXplX3Nlc3Npb24KQEAgLTE3LDYgKzE4LDkgQEAgZnJvbSAud3B0X3Jl
cG9ydCBpbXBvcnQgZ2VuZXJhdGVfcmVwb3J0LCBnZW5lcmF0ZV9tdWx0aV9yZXBvcnQKIGZyb20g
Li5kYXRhLnNlc3Npb24gaW1wb3J0IENPTVBMRVRFRAogCiBXQVZFX1NSQ19ESVIgPSAiLi90b29s
cy93YXZlIgorUkVTVUxUU19GSUxFX1JFR0VYID0gciJeXHdcd1xkXGRcZD9cLmpzb24kIgorUkVT
VUxUU19GSUxFX1BBVFRFUk4gPSByZS5jb21waWxlKFJFU1VMVFNfRklMRV9SRUdFWCkKK1NFU1NJ
T05fUkVTVUxUU19USU1FT1VUID0gNjAqMzAgICMgMzBtaW4KIAogCiBjbGFzcyBSZXN1bHRzTWFu
YWdlcihvYmplY3QpOgpAQCAtMjUsMTcgKzI5LDE4IEBAIGNsYXNzIFJlc3VsdHNNYW5hZ2VyKG9i
amVjdCk6CiAgICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5X3BhdGgsCiAgICAgICAgIHNlc3Npb25z
X21hbmFnZXIsCiAgICAgICAgIHRlc3RzX21hbmFnZXIsCi0gICAgICAgIGltcG9ydF9lbmFibGVk
LAorICAgICAgICBpbXBvcnRfcmVzdWx0c19lbmFibGVkLAogICAgICAgICByZXBvcnRzX2VuYWJs
ZWQsCiAgICAgICAgIHBlcnNpc3RpbmdfaW50ZXJ2YWwKICAgICApOgogICAgICAgICBzZWxmLl9y
ZXN1bHRzX2RpcmVjdG9yeV9wYXRoID0gcmVzdWx0c19kaXJlY3RvcnlfcGF0aAogICAgICAgICBz
ZWxmLl9zZXNzaW9uc19tYW5hZ2VyID0gc2Vzc2lvbnNfbWFuYWdlcgogICAgICAgICBzZWxmLl90
ZXN0c19tYW5hZ2VyID0gdGVzdHNfbWFuYWdlcgotICAgICAgICBzZWxmLl9pbXBvcnRfZW5hYmxl
ZCA9IGltcG9ydF9lbmFibGVkCisgICAgICAgIHNlbGYuX2ltcG9ydF9yZXN1bHRzX2VuYWJsZWQg
PSBpbXBvcnRfcmVzdWx0c19lbmFibGVkCiAgICAgICAgIHNlbGYuX3JlcG9ydHNfZW5hYmxlZCA9
IHJlcG9ydHNfZW5hYmxlZAogICAgICAgICBzZWxmLl9yZXN1bHRzID0ge30KICAgICAgICAgc2Vs
Zi5fcGVyc2lzdGluZ19pbnRlcnZhbCA9IHBlcnNpc3RpbmdfaW50ZXJ2YWwKKyAgICAgICAgc2Vs
Zi5fdGltZW91dHMgPSB7fQogCiAgICAgZGVmIGNyZWF0ZV9yZXN1bHQoc2VsZiwgdG9rZW4sIGRh
dGEpOgogICAgICAgICByZXN1bHQgPSBzZWxmLnByZXBhcmVfcmVzdWx0KGRhdGEpCkBAIC04Miwx
MCArODcsMTAgQEAgY2xhc3MgUmVzdWx0c01hbmFnZXIob2JqZWN0KToKICAgICAgICAgaWYgZmls
dGVyX3BhdGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBmaWx0ZXJfYXBpID0gbmV4dCgocCBm
b3IgcCBpbiBmaWx0ZXJfcGF0aC5zcGxpdCgiLyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgcCBpcyBub3QgTm9uZSksIE5vbmUpCi0gICAgICAgIGNhY2hlZF9yZXN1bHRzID0g
c2VsZi5fcmVhZF9mcm9tX2NhY2hlKHRva2VuKQotICAgICAgICBwZXJzaXN0ZWRfcmVzdWx0cyA9
IHNlbGYubG9hZF9yZXN1bHRzKHRva2VuKQotICAgICAgICByZXN1bHRzID0gc2VsZi5fY29tYmlu
ZV9yZXN1bHRzX2J5X2FwaShjYWNoZWRfcmVzdWx0cywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGVyc2lzdGVkX3Jlc3VsdHMpCisgICAgICAgIHJlc3Vs
dHMgPSBzZWxmLl9yZWFkX2Zyb21fY2FjaGUodG9rZW4pCisgICAgICAgIGlmIHJlc3VsdHMgPT0g
W106CisgICAgICAgICAgICByZXN1bHRzID0gc2VsZi5sb2FkX3Jlc3VsdHModG9rZW4pCisgICAg
ICAgICAgICBzZWxmLl9zZXRfc2Vzc2lvbl9jYWNoZSh0b2tlbiwgcmVzdWx0cykKIAogICAgICAg
ICBmaWx0ZXJlZF9yZXN1bHRzID0ge30KIApAQCAtMjA5LDYgKzIxNCw3IEBAIGNsYXNzIFJlc3Vs
dHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IGluIGZh
aWxlZF90ZXN0c1thcGldOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAg
ICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRfdGVzdHNbYXBpXS5hcHBlbmQodGVzdCkKKyAg
ICAgICAgcmV0dXJuIHBhc3NlZF90ZXN0cwogCiAgICAgZGVmIHJlYWRfcmVzdWx0c193cHRfcmVw
b3J0X3VyaShzZWxmLCB0b2tlbiwgYXBpKToKICAgICAgICAgYXBpX2RpcmVjdG9yeSA9IG9zLnBh
dGguam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeV9wYXRoLCB0b2tlbiwgYXBpKQpAQCAtMjQ0
LDggKzI1MCw3IEBAIGNsYXNzIFJlc3VsdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBy
ZXR1cm4KICAgICAgICAgZm9yIGFwaSBpbiBsaXN0KHNlbGYuX3Jlc3VsdHNbdG9rZW5dLmtleXMo
KSlbOl06CiAgICAgICAgICAgICBzZWxmLnNhdmVfYXBpX3Jlc3VsdHModG9rZW4sIGFwaSkKLSAg
ICAgICAgICAgIHNlbGYuY3JlYXRlX2luZm9fZmlsZShzZXNzaW9uKQotICAgICAgICAgICAgc2Vs
Zi5fY2xlYXJfY2FjaGVfYXBpKHRva2VuLCBhcGkpCisgICAgICAgIHNlbGYuY3JlYXRlX2luZm9f
ZmlsZShzZXNzaW9uKQogICAgICAgICBzZXNzaW9uLnJlY2VudF9jb21wbGV0ZWRfY291bnQgPSAw
CiAgICAgICAgIHNlbGYuX3Nlc3Npb25zX21hbmFnZXIudXBkYXRlX3Nlc3Npb24oc2Vzc2lvbikK
IApAQCAtMjgyLDIyICsyODcsMjggQEAgY2xhc3MgUmVzdWx0c01hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgaWYgYXBpIG5vdCBpbiBzZWxmLl9yZXN1bHRzW3Rva2VuXToKICAgICAgICAgICAgIHNl
bGYuX3Jlc3VsdHNbdG9rZW5dW2FwaV0gPSBbXQogICAgICAgICBzZWxmLl9yZXN1bHRzW3Rva2Vu
XVthcGldLmFwcGVuZChyZXN1bHQpCisgICAgICAgIHNlbGYuX3NldF90aW1lb3V0KHRva2VuKQor
CisgICAgZGVmIF9zZXRfc2Vzc2lvbl9jYWNoZShzZWxmLCB0b2tlbiwgcmVzdWx0cyk6CisgICAg
ICAgIGlmIHRva2VuIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5f
cmVzdWx0c1t0b2tlbl0gPSByZXN1bHRzCisgICAgICAgIHNlbGYuX3NldF90aW1lb3V0KHRva2Vu
KQogCiAgICAgZGVmIF9yZWFkX2Zyb21fY2FjaGUoc2VsZiwgdG9rZW4pOgogICAgICAgICBpZiB0
b2tlbiBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIGlmIHRva2VuIG5v
dCBpbiBzZWxmLl9yZXN1bHRzOgogICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHNlbGYu
X3NldF90aW1lb3V0KHRva2VuKQogICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c1t0b2tlbl0K
IAotICAgIGRlZiBfY2xlYXJfY2FjaGVfYXBpKHNlbGYsIHRva2VuLCBhcGkpOgorICAgIGRlZiBf
Y2xlYXJfc2Vzc2lvbl9jYWNoZShzZWxmLCB0b2tlbik6CiAgICAgICAgIGlmIHRva2VuIGlzIE5v
bmU6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgdG9rZW4gbm90IGluIHNlbGYuX3Jl
c3VsdHM6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgYXBpIG5vdCBpbiBzZWxmLl9y
ZXN1bHRzW3Rva2VuXToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBkZWwgc2VsZi5fcmVz
dWx0c1t0b2tlbl1bYXBpXQorICAgICAgICBkZWwgc2VsZi5fcmVzdWx0c1t0b2tlbl0KIAogICAg
IGRlZiBfY29tYmluZV9yZXN1bHRzX2J5X2FwaShzZWxmLCByZXN1bHRfYSwgcmVzdWx0X2IpOgog
ICAgICAgICBjb21iaW5lZF9yZXN1bHQgPSB7fQpAQCAtNTM0LDcgKzU0NSw3IEBAIGNsYXNzIFJl
c3VsdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgemlwLndyaXRlKGZpbGVfcGF0
aCwgZmlsZV9uYW1lLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKICAgICAgICAgemlwLmNsb3NlKCkK
IAotICAgICAgICB3aXRoIG9wZW4oemlwX2ZpbGVfbmFtZSwgInJiIikgYXMgZmlsZToKKyAgICAg
ICAgd2l0aCBvcGVuKHppcF9maWxlX25hbWUsICJyIikgYXMgZmlsZToKICAgICAgICAgICAgIGJs
b2IgPSBmaWxlLnJlYWQoKQogICAgICAgICAgICAgb3MucmVtb3ZlKHppcF9maWxlX25hbWUpCiAK
QEAgLTU3NSw4ICs1ODYsOCBAQCBjbGFzcyBSZXN1bHRzTWFuYWdlcihvYmplY3QpOgogCiAgICAg
ICAgICAgICByZXR1cm4gYmxvYgogCi0gICAgZGVmIGlzX2ltcG9ydF9lbmFibGVkKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5faW1wb3J0X2VuYWJsZWQKKyAgICBkZWYgaXNfaW1wb3J0X3Jl
c3VsdHNfZW5hYmxlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ltcG9ydF9yZXN1bHRz
X2VuYWJsZWQKIAogICAgIGRlZiBhcmVfcmVwb3J0c19lbmFibGVkKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5fcmVwb3J0c19lbmFibGVkCkBAIC01OTIsNyArNjAzLDcgQEAgY2xhc3MgUmVz
dWx0c01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBkZXNlcmlhbGl6ZV9zZXNz
aW9uKGluZm8pCiAKICAgICBkZWYgaW1wb3J0X3Jlc3VsdHMoc2VsZiwgYmxvYik6Ci0gICAgICAg
IGlmIG5vdCBzZWxmLmlzX2ltcG9ydF9lbmFibGVkOgorICAgICAgICBpZiBub3Qgc2VsZi5pc19p
bXBvcnRfcmVzdWx0c19lbmFibGVkOgogICAgICAgICAgICAgcmFpc2UgUGVybWlzc2lvbkRlbmll
ZEV4Y2VwdGlvbigpCiAgICAgICAgIHRtcF9maWxlX25hbWUgPSAie30uemlwIi5mb3JtYXQoc3Ry
KHRpbWUudGltZSgpKSkKIApAQCAtNjE0LDkgKzYyNSwzNSBAQCBjbGFzcyBSZXN1bHRzTWFuYWdl
cihvYmplY3QpOgogICAgICAgICBvcy5tYWtlZGlycyhkZXN0aW5hdGlvbl9wYXRoKQogICAgICAg
ICB6aXAuZXh0cmFjdGFsbChkZXN0aW5hdGlvbl9wYXRoKQogICAgICAgICBzZWxmLnJlbW92ZV90
bXBfZmlsZXMoKQotICAgICAgICBzZWxmLmxvYWRfcmVzdWx0cygpCisgICAgICAgIHNlbGYubG9h
ZF9yZXN1bHRzKHRva2VuKQogICAgICAgICByZXR1cm4gdG9rZW4KIAorICAgIGRlZiBpbXBvcnRf
cmVzdWx0c19hcGlfanNvbihzZWxmLCB0b2tlbiwgYXBpLCBibG9iKToKKyAgICAgICAgaWYgbm90
IHNlbGYuaXNfaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZDoKKyAgICAgICAgICAgIHJhaXNlIFBlcm1p
c3Npb25EZW5pZWRFeGNlcHRpb24oKQorICAgICAgICBkZXN0aW5hdGlvbl9wYXRoID0gb3MucGF0
aC5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5X3BhdGgsIHRva2VuLCBhcGkpCisgICAgICAg
IGZpbGVzID0gb3MubGlzdGRpcihkZXN0aW5hdGlvbl9wYXRoKQorICAgICAgICBmaWxlX25hbWUg
PSAiIgorICAgICAgICBmb3IgZmlsZSBpbiBmaWxlczoKKyAgICAgICAgICAgIGlmIFJFU1VMVFNf
RklMRV9QQVRURVJOLm1hdGNoKGZpbGUpOgorICAgICAgICAgICAgICAgIGZpbGVfbmFtZSA9IGZp
bGUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBkZXN0aW5hdGlvbl9maWxlX3BhdGgg
PSBvcy5wYXRoLmpvaW4oZGVzdGluYXRpb25fcGF0aCwgZmlsZV9uYW1lKQorICAgICAgICB3aXRo
IG9wZW4oZGVzdGluYXRpb25fZmlsZV9wYXRoLCAid2IiKSBhcyBmaWxlOgorICAgICAgICAgICAg
ZmlsZS53cml0ZShibG9iKQorCisgICAgICAgIHNlbGYuZ2VuZXJhdGVfcmVwb3J0KHRva2VuLCBh
cGkpCisKKyAgICAgICAgc2Vzc2lvbiA9IHNlbGYuX3Nlc3Npb25zX21hbmFnZXIucmVhZF9zZXNz
aW9uKHRva2VuKQorICAgICAgICBpZiBzZXNzaW9uIGlzIE5vbmU6CisgICAgICAgICAgICByYWlz
ZSBOb3RGb3VuZEV4Y2VwdGlvbigpCisKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYubG9hZF9yZXN1
bHRzKHRva2VuKQorICAgICAgICB0ZXN0X3N0YXRlID0gc2VsZi5wYXJzZV90ZXN0X3N0YXRlKHJl
c3VsdHMpCisgICAgICAgIHNlc3Npb24udGVzdF9zdGF0ZSA9IHRlc3Rfc3RhdGUKKworICAgICAg
ICBzZWxmLl9zZXNzaW9uc19tYW5hZ2VyLnVwZGF0ZV9zZXNzaW9uKHNlc3Npb24pCisKICAgICBk
ZWYgcmVtb3ZlX3RtcF9maWxlcyhzZWxmKToKICAgICAgICAgZmlsZXMgPSBvcy5saXN0ZGlyKCIu
IikKIApAQCAtNjI0LDMgKzY2MSwxMiBAQCBjbGFzcyBSZXN1bHRzTWFuYWdlcihvYmplY3QpOgog
ICAgICAgICAgICAgaWYgcmUubWF0Y2gociJcZHsxMH1cLlxkezJ9XC56aXAiLCBmaWxlKSBpcyBO
b25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBvcy5yZW1vdmUoZmls
ZSkKKworICAgIGRlZiBfc2V0X3RpbWVvdXQoc2VsZiwgdG9rZW4pOgorICAgICAgICBpZiB0b2tl
biBpbiBzZWxmLl90aW1lb3V0czoKKyAgICAgICAgICAgIHNlbGYuX3RpbWVvdXRzW3Rva2VuXS5j
YW5jZWwoKQorCisgICAgICAgIGRlZiBoYW5kbGVyKHNlbGYsIHRva2VuKToKKyAgICAgICAgICAg
IHNlbGYuX2NsZWFyX3Nlc3Npb25fY2FjaGUodG9rZW4pCisKKyAgICAgICAgc2VsZi5fdGltZW91
dHNbdG9rZW5dID0gVGltZXIoU0VTU0lPTl9SRVNVTFRTX1RJTUVPVVQsIGhhbmRsZXIsIFtzZWxm
LCB0b2tlbl0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9zZXNzaW9uc19tYW5hZ2VyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rpbmcv
c2Vzc2lvbnNfbWFuYWdlci5weQppbmRleCBiNTUyYWM2ZjJlMDQ2Mjg1MGRhNDY3ZmZjYTcxMTI5
ZTBhOWRmYmE4Li45MDBiN2MwZGQxZWNjZDFkMDA5NGI2NmU1MTZkN2VmYWNkMjdiZTAxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdGVzdGluZy9zZXNzaW9uc19tYW5hZ2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Nlc3Npb25zX21h
bmFnZXIucHkKQEAgLTIsNiArMiw3IEBAIGltcG9ydCB1dWlkCiBpbXBvcnQgdGltZQogaW1wb3J0
IG9zCiBpbXBvcnQganNvbgoraW1wb3J0IHJlCiAKIGZyb20gdGhyZWFkaW5nIGltcG9ydCBUaW1l
cgogCkBAIC0yNSw3ICsyNiw4IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgogICAg
ICAgICAgICAgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXIsCiAgICAgICAgICAgICAgICAgICAgdGVz
dHNfbWFuYWdlciwKICAgICAgICAgICAgICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSwKLSAgICAg
ICAgICAgICAgICAgICByZXN1bHRzX21hbmFnZXIpOgorICAgICAgICAgICAgICAgICAgIHJlc3Vs
dHNfbWFuYWdlciwKKyAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uKToKICAgICAgICAg
c2VsZi5fdGVzdF9sb2FkZXIgPSB0ZXN0X2xvYWRlcgogICAgICAgICBzZWxmLl9zZXNzaW9ucyA9
IHt9CiAgICAgICAgIHNlbGYuX2V4cGlyYXRpb25fdGltZW91dCA9IE5vbmUKQEAgLTMzLDE3ICsz
NSwxOCBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fdGVz
dHNfbWFuYWdlciA9IHRlc3RzX21hbmFnZXIKICAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3Rv
cnkgPSByZXN1bHRzX2RpcmVjdG9yeQogICAgICAgICBzZWxmLl9yZXN1bHRzX21hbmFnZXIgPSBy
ZXN1bHRzX21hbmFnZXIKKyAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRp
b24KIAogICAgIGRlZiBjcmVhdGVfc2Vzc2lvbigKICAgICAgICAgc2VsZiwKICAgICAgICAgdGVz
dHM9Tm9uZSwKLSAgICAgICAgdHlwZXM9Tm9uZSwKKyAgICAgICAgdGVzdF90eXBlcz1Ob25lLAog
ICAgICAgICB0aW1lb3V0cz1Ob25lLAogICAgICAgICByZWZlcmVuY2VfdG9rZW5zPU5vbmUsCi0g
ICAgICAgIHdlYmhvb2tfdXJscz1Ob25lLAogICAgICAgICB1c2VyX2FnZW50PU5vbmUsCiAgICAg
ICAgIGxhYmVscz1Ob25lLAotICAgICAgICBleHBpcmF0aW9uX2RhdGU9Tm9uZQorICAgICAgICBl
eHBpcmF0aW9uX2RhdGU9Tm9uZSwKKyAgICAgICAgdHlwZT1Ob25lCiAgICAgKToKICAgICAgICAg
aWYgdGVzdHMgaXMgTm9uZToKICAgICAgICAgICAgIHRlc3RzID0ge30KQEAgLTUxLDggKzU0LDYg
QEAgY2xhc3MgU2Vzc2lvbnNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICB0aW1lb3V0cyA9
IHt9CiAgICAgICAgIGlmIHJlZmVyZW5jZV90b2tlbnMgaXMgTm9uZToKICAgICAgICAgICAgIHJl
ZmVyZW5jZV90b2tlbnMgPSBbXQotICAgICAgICBpZiB3ZWJob29rX3VybHMgaXMgTm9uZToKLSAg
ICAgICAgICAgIHdlYmhvb2tfdXJscyA9IFtdCiAgICAgICAgIGlmIHVzZXJfYWdlbnQgaXMgTm9u
ZToKICAgICAgICAgICAgIHVzZXJfYWdlbnQgPSAiIgogICAgICAgICBpZiBsYWJlbHMgaXMgTm9u
ZToKQEAgLTYzLDE5ICs2NCwxOSBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgaWYgImV4Y2x1ZGUiIG5vdCBpbiB0ZXN0czoKICAgICAgICAgICAgIHRlc3RzWyJleGNs
dWRlIl0gPSBbXQogICAgICAgICBpZiAiYXV0b21hdGljIiBub3QgaW4gdGltZW91dHM6Ci0gICAg
ICAgICAgICB0aW1lb3V0c1siYXV0b21hdGljIl0gPSBERUZBVUxUX1RFU1RfQVVUT01BVElDX1RJ
TUVPVVQKKyAgICAgICAgICAgIHRpbWVvdXRzWyJhdXRvbWF0aWMiXSA9IHNlbGYuX2NvbmZpZ3Vy
YXRpb25bInRpbWVvdXRzIl1bImF1dG9tYXRpYyJdCiAgICAgICAgIGlmICJtYW51YWwiIG5vdCBp
biB0aW1lb3V0czoKLSAgICAgICAgICAgIHRpbWVvdXRzWyJtYW51YWwiXSA9IERFRkFVTFRfVEVT
VF9NQU5VQUxfVElNRU9VVAotICAgICAgICBpZiB0eXBlcyBpcyBOb25lOgotICAgICAgICAgICAg
dHlwZXMgPSBERUZBVUxUX1RFU1RfVFlQRVMKKyAgICAgICAgICAgIHRpbWVvdXRzWyJtYW51YWwi
XSA9IHNlbGYuX2NvbmZpZ3VyYXRpb25bInRpbWVvdXRzIl1bIm1hbnVhbCJdCisgICAgICAgIGlm
IHRlc3RfdHlwZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBERUZBVUxUX1RF
U1RfVFlQRVMKIAotICAgICAgICBmb3IgdHlwZSBpbiB0eXBlczoKLSAgICAgICAgICAgIGlmIHR5
cGUgIT0gImF1dG9tYXRpYyIgYW5kIHR5cGUgIT0gIm1hbnVhbCI6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgSW52YWxpZERhdGFFeGNlcHRpb24oIlVua25vd24gdHlwZSAne30nIi5mb3JtYXQodHlw
ZSkpCisgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4gdGVzdF90eXBlczoKKyAgICAgICAgICAgIGlm
IHRlc3RfdHlwZSAhPSAiYXV0b21hdGljIiBhbmQgdGVzdF90eXBlICE9ICJtYW51YWwiOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEludmFsaWREYXRhRXhjZXB0aW9uKCJVbmtub3duIHR5cGUgJ3t9
JyIuZm9ybWF0KHRlc3RfdHlwZSkpCiAKICAgICAgICAgdG9rZW4gPSBzdHIodXVpZC51dWlkMSgp
KQogICAgICAgICBwZW5kaW5nX3Rlc3RzID0gc2VsZi5fdGVzdF9sb2FkZXIuZ2V0X3Rlc3RzKAot
ICAgICAgICAgICAgdHlwZXMsCisgICAgICAgICAgICB0ZXN0X3R5cGVzLAogICAgICAgICAgICAg
aW5jbHVkZV9saXN0PXRlc3RzWyJpbmNsdWRlIl0sCiAgICAgICAgICAgICBleGNsdWRlX2xpc3Q9
dGVzdHNbImV4Y2x1ZGUiXSwKICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnM9cmVmZXJlbmNl
X3Rva2VucykKQEAgLTk2LDIxICs5NywyNCBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0
KToKICAgICAgICAgICAgICAgICAidG90YWwiOiB0ZXN0X2ZpbGVzX2NvdW50W2FwaV0sCiAgICAg
ICAgICAgICAgICAgImNvbXBsZXRlIjogMH0KIAorICAgICAgICBkYXRlX2NyZWF0ZWQgPSBpbnQo
dGltZS50aW1lKCkgKiAxMDAwKQorCiAgICAgICAgIHNlc3Npb24gPSBTZXNzaW9uKAogICAgICAg
ICAgICAgdG9rZW49dG9rZW4sCiAgICAgICAgICAgICB0ZXN0cz10ZXN0cywKICAgICAgICAgICAg
IHVzZXJfYWdlbnQ9dXNlcl9hZ2VudCwKICAgICAgICAgICAgIGJyb3dzZXI9YnJvd3NlciwKLSAg
ICAgICAgICAgIHR5cGVzPXR5cGVzLAorICAgICAgICAgICAgdGVzdF90eXBlcz10ZXN0X3R5cGVz
LAogICAgICAgICAgICAgdGltZW91dHM9dGltZW91dHMsCiAgICAgICAgICAgICBwZW5kaW5nX3Rl
c3RzPXBlbmRpbmdfdGVzdHMsCiAgICAgICAgICAgICBydW5uaW5nX3Rlc3RzPXt9LAogICAgICAg
ICAgICAgdGVzdF9zdGF0ZT10ZXN0X3N0YXRlLAogICAgICAgICAgICAgc3RhdHVzPVBFTkRJTkcs
CiAgICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5zPXJlZmVyZW5jZV90b2tlbnMsCi0gICAgICAg
ICAgICB3ZWJob29rX3VybHM9d2ViaG9va191cmxzLAogICAgICAgICAgICAgbGFiZWxzPWxhYmVs
cywKLSAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZT1leHBpcmF0aW9uX2RhdGUKKyAgICAgICAg
ICAgIHR5cGU9dHlwZSwKKyAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZT1leHBpcmF0aW9uX2Rh
dGUsCisgICAgICAgICAgICBkYXRlX2NyZWF0ZWQ9ZGF0ZV9jcmVhdGVkCiAgICAgICAgICkKIAog
ICAgICAgICBzZWxmLl9wdXNoX3RvX2NhY2hlKHNlc3Npb24pCkBAIC0xMjQsMTEgKzEyOCwyNyBA
QCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBOb25l
CiAgICAgICAgIHNlc3Npb24gPSBzZWxmLl9yZWFkX2Zyb21fY2FjaGUodG9rZW4pCiAgICAgICAg
IGlmIHNlc3Npb24gaXMgTm9uZSBvciBzZXNzaW9uLnRlc3Rfc3RhdGUgaXMgTm9uZToKKyAgICAg
ICAgICAgIHByaW50KCJsb2FkaW5nIHNlc3Npb24gZnJvbSBmaWxlIHN5c3RlbSIpCiAgICAgICAg
ICAgICBzZXNzaW9uID0gc2VsZi5sb2FkX3Nlc3Npb24odG9rZW4pCiAgICAgICAgIGlmIHNlc3Np
b24gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9wdXNoX3RvX2NhY2hlKHNlc3Npb24p
CiAgICAgICAgIHJldHVybiBzZXNzaW9uCiAKKyAgICBkZWYgcmVhZF9zZXNzaW9ucyhzZWxmLCBp
bmRleD1Ob25lLCBjb3VudD1Ob25lKToKKyAgICAgICAgaWYgaW5kZXggaXMgTm9uZToKKyAgICAg
ICAgICAgIGluZGV4ID0gMAorICAgICAgICBpZiBjb3VudCBpcyBOb25lOgorICAgICAgICAgICAg
Y291bnQgPSAxMAorICAgICAgICBzZWxmLmxvYWRfYWxsX3Nlc3Npb25zX2luZm8oKQorICAgICAg
ICBzZXNzaW9ucyA9IFtdCisgICAgICAgIGZvciBpdF9pbmRleCwgdG9rZW4gaW4gZW51bWVyYXRl
KHNlbGYuX3Nlc3Npb25zKToKKyAgICAgICAgICAgIGlmIGl0X2luZGV4IDwgaW5kZXg6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGxlbihzZXNzaW9ucykgPT0gY291
bnQ6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlc3Npb25zLmFwcGVuZCh0
b2tlbikKKyAgICAgICAgcmV0dXJuIHNlc3Npb25zCisKICAgICBkZWYgcmVhZF9zZXNzaW9uX3N0
YXR1cyhzZWxmLCB0b2tlbik6CiAgICAgICAgIGlmIHRva2VuIGlzIE5vbmU6CiAgICAgICAgICAg
ICByZXR1cm4gTm9uZQpAQCAtMTU4LDcgKzE3OCw3IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihv
YmplY3QpOgogICAgICAgICBzZWxmLl9wdXNoX3RvX2NhY2hlKHNlc3Npb24pCiAKICAgICBkZWYg
dXBkYXRlX3Nlc3Npb25fY29uZmlndXJhdGlvbigKLSAgICAgICAgc2VsZiwgdG9rZW4sIHRlc3Rz
LCB0eXBlcywgdGltZW91dHMsIHJlZmVyZW5jZV90b2tlbnMsIHdlYmhvb2tfdXJscworICAgICAg
ICBzZWxmLCB0b2tlbiwgdGVzdHMsIHRlc3RfdHlwZXMsIHRpbWVvdXRzLCByZWZlcmVuY2VfdG9r
ZW5zLCB0eXBlCiAgICAgKToKICAgICAgICAgc2Vzc2lvbiA9IHNlbGYucmVhZF9zZXNzaW9uKHRv
a2VuKQogICAgICAgICBpZiBzZXNzaW9uIGlzIE5vbmU6CkBAIC0xNzMsMTQgKzE5MywxNCBAQCBj
bGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICB0ZXN0c1siZXhj
bHVkZSJdID0gc2Vzc2lvbi50ZXN0c1siZXhjbHVkZSJdCiAgICAgICAgICAgICBpZiByZWZlcmVu
Y2VfdG9rZW5zIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgcmVmZXJlbmNlX3Rva2VucyA9IHNl
c3Npb24ucmVmZXJlbmNlX3Rva2VucwotICAgICAgICAgICAgaWYgdHlwZXMgaXMgTm9uZToKLSAg
ICAgICAgICAgICAgICB0eXBlcyA9IHNlc3Npb24udHlwZXMKKyAgICAgICAgICAgIGlmIHRlc3Rf
dHlwZXMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB0ZXN0X3R5cGVzID0gc2Vzc2lvbi50ZXN0
X3R5cGVzCiAKICAgICAgICAgICAgIHBlbmRpbmdfdGVzdHMgPSBzZWxmLl90ZXN0X2xvYWRlci5n
ZXRfdGVzdHMoCiAgICAgICAgICAgICAgICAgaW5jbHVkZV9saXN0PXRlc3RzWyJpbmNsdWRlIl0s
CiAgICAgICAgICAgICAgICAgZXhjbHVkZV9saXN0PXRlc3RzWyJleGNsdWRlIl0sCiAgICAgICAg
ICAgICAgICAgcmVmZXJlbmNlX3Rva2Vucz1yZWZlcmVuY2VfdG9rZW5zLAotICAgICAgICAgICAg
ICAgIHR5cGVzPXR5cGVzCisgICAgICAgICAgICAgICAgdGVzdF90eXBlcz10ZXN0X3R5cGVzCiAg
ICAgICAgICAgICApCiAgICAgICAgICAgICBzZXNzaW9uLnBlbmRpbmdfdGVzdHMgPSBwZW5kaW5n
X3Rlc3RzCiAgICAgICAgICAgICBzZXNzaW9uLnRlc3RzID0gdGVzdHMKQEAgLTE5OCw4ICsyMTgs
OCBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBzZXNzaW9uLnRlc3Rfc3RhdGUgPSB0ZXN0X3N0YXRlCiAKLSAgICAgICAgaWYg
dHlwZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXNzaW9uLnR5cGVzID0gdHlwZXMKKyAg
ICAgICAgaWYgdGVzdF90eXBlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlc3Npb24udGVz
dF90eXBlcyA9IHRlc3RfdHlwZXMKICAgICAgICAgaWYgdGltZW91dHMgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBpZiBBVVRPTUFUSUMgbm90IGluIHRpbWVvdXRzOgogICAgICAgICAgICAgICAg
IHRpbWVvdXRzW0FVVE9NQVRJQ10gPSBzZXNzaW9uLnRpbWVvdXRzW0FVVE9NQVRJQ10KQEAgLTIw
OCw4ICsyMjgsOCBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAg
IHNlc3Npb24udGltZW91dHMgPSB0aW1lb3V0cwogICAgICAgICBpZiByZWZlcmVuY2VfdG9rZW5z
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2Vzc2lvbi5yZWZlcmVuY2VfdG9rZW5zID0gcmVm
ZXJlbmNlX3Rva2VucwotICAgICAgICBpZiB3ZWJob29rX3VybHMgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZXNzaW9uLndlYmhvb2tfdXJscyA9IHdlYmhvb2tfdXJscworICAgICAgICBpZiB0
eXBlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2Vzc2lvbi50eXBlID0gdHlwZQogCiAgICAg
ICAgIHNlbGYuX3B1c2hfdG9fY2FjaGUoc2Vzc2lvbikKICAgICAgICAgcmV0dXJuIHNlc3Npb24K
QEAgLTMwNiw3ICszMjYsNyBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAg
ICAgaWYgc2VsZi5fZXhwaXJhdGlvbl90aW1lb3V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAg
c2VsZi5fZXhwaXJhdGlvbl90aW1lb3V0LmNhbmNlbCgpCiAKLSAgICAgICAgdGltZW91dCA9IG5l
eHRfc2Vzc2lvbi5leHBpcmF0aW9uX2RhdGUgLyAxMDAwLjAgLSBpbnQodGltZS50aW1lKCkpCisg
ICAgICAgIHRpbWVvdXQgPSBuZXh0X3Nlc3Npb24uZXhwaXJhdGlvbl9kYXRlIC8gMTAwMCAtIHRp
bWUudGltZSgpCiAgICAgICAgIGlmIHRpbWVvdXQgPCAwOgogICAgICAgICAgICAgdGltZW91dCA9
IDAKIApAQCAtMzE5LDEwICszMzksMTAgQEAgY2xhc3MgU2Vzc2lvbnNNYW5hZ2VyKG9iamVjdCk6
CiAKICAgICBkZWYgX2RlbGV0ZV9leHBpcmVkX3Nlc3Npb25zKHNlbGYpOgogICAgICAgICBleHBp
cmluZ19zZXNzaW9ucyA9IHNlbGYuX3JlYWRfZXhwaXJpbmdfc2Vzc2lvbnMoKQotICAgICAgICBu
b3cgPSBpbnQodGltZS50aW1lKCkpCisgICAgICAgIG5vdyA9IGludCh0aW1lLnRpbWUoKSAqIDEw
MDApCiAKICAgICAgICAgZm9yIHNlc3Npb24gaW4gZXhwaXJpbmdfc2Vzc2lvbnM6Ci0gICAgICAg
ICAgICBpZiBzZXNzaW9uLmV4cGlyYXRpb25fZGF0ZSAvIDEwMDAuMCA8IG5vdzoKKyAgICAgICAg
ICAgIGlmIHNlc3Npb24uZXhwaXJhdGlvbl9kYXRlIDwgbm93OgogICAgICAgICAgICAgICAgIHNl
bGYuZGVsZXRlX3Nlc3Npb24oc2Vzc2lvbi50b2tlbikKIAogICAgIGRlZiBfcmVhZF9leHBpcmlu
Z19zZXNzaW9ucyhzZWxmKToKQEAgLTM0NCw3ICszNjQsNyBAQCBjbGFzcyBTZXNzaW9uc01hbmFn
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIGlmIHNlc3Npb24uc3Rh
dHVzID09IFBFTkRJTkc6Ci0gICAgICAgICAgICBzZXNzaW9uLmRhdGVfc3RhcnRlZCA9IGludCh0
aW1lLnRpbWUoKSkgKiAxMDAwCisgICAgICAgICAgICBzZXNzaW9uLmRhdGVfc3RhcnRlZCA9IGlu
dCh0aW1lLnRpbWUoKSAqIDEwMDApCiAgICAgICAgICAgICBzZXNzaW9uLmV4cGlyYXRpb25fZGF0
ZSA9IE5vbmUKIAogICAgICAgICBzZXNzaW9uLnN0YXR1cyA9IFJVTk5JTkcKQEAgLTM3NCw3ICsz
OTQsNyBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgaWYgc2Vzc2lv
bi5zdGF0dXMgPT0gQUJPUlRFRCBvciBzZXNzaW9uLnN0YXR1cyA9PSBDT01QTEVURUQ6CiAgICAg
ICAgICAgICByZXR1cm4KICAgICAgICAgc2Vzc2lvbi5zdGF0dXMgPSBBQk9SVEVECi0gICAgICAg
IHNlc3Npb24uZGF0ZV9maW5pc2hlZCA9IHRpbWUudGltZSgpICogMTAwMAorICAgICAgICBzZXNz
aW9uLmRhdGVfZmluaXNoZWQgPSBpbnQodGltZS50aW1lKCkgKiAxMDAwKQogICAgICAgICBzZWxm
LnVwZGF0ZV9zZXNzaW9uKHNlc3Npb24pCiAgICAgICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIu
ZGlzcGF0Y2hfZXZlbnQoCiAgICAgICAgICAgICB0b2tlbiwKQEAgLTM5OCw3ICs0MTgsNyBAQCBj
bGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgaWYgc2Vzc2lvbi5zdGF0dXMg
PT0gQ09NUExFVEVEIG9yIHNlc3Npb24uc3RhdHVzID09IEFCT1JURUQ6CiAgICAgICAgICAgICBy
ZXR1cm4KICAgICAgICAgc2Vzc2lvbi5zdGF0dXMgPSBDT01QTEVURUQKLSAgICAgICAgc2Vzc2lv
bi5kYXRlX2ZpbmlzaGVkID0gdGltZS50aW1lKCkgKiAxMDAwCisgICAgICAgIHNlc3Npb24uZGF0
ZV9maW5pc2hlZCA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCiAgICAgICAgIHNlbGYudXBkYXRl
X3Nlc3Npb24oc2Vzc2lvbikKICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5kaXNwYXRj
aF9ldmVudCgKICAgICAgICAgICAgIHRva2VuLApAQCAtNDI3LDYgKzQ0NywyMCBAQCBjbGFzcyBT
ZXNzaW9uc01hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGFwaSBub3QgaW4gc2Vzc2lv
bi5wZW5kaW5nX3Rlc3RzIFwKICAgICAgICAgICAgIGFuZCBhcGkgbm90IGluIHNlc3Npb24ucnVu
bmluZ190ZXN0cwogCisgICAgZGVmIGdldF90ZXN0X3BhdGhfd2l0aF9xdWVyeShzZWxmLCB0ZXN0
LCBzZXNzaW9uKToKKyAgICAgICAgcXVlcnlfc3RyaW5nID0gIiIKKyAgICAgICAgaW5jbHVkZV9s
aXN0ID0gc2Vzc2lvbi50ZXN0c1siaW5jbHVkZSJdCisgICAgICAgIGZvciBpbmNsdWRlX3Rlc3Qg
aW4gaW5jbHVkZV9saXN0OgorICAgICAgICAgICAgc3BsaXQgPSBpbmNsdWRlX3Rlc3Quc3BsaXQo
Ij8iKQorICAgICAgICAgICAgcXVlcnkgPSAiIgorICAgICAgICAgICAgaWYgbGVuKHNwbGl0KSA+
IDE6CisgICAgICAgICAgICAgICAgaW5jbHVkZV90ZXN0ID0gc3BsaXRbMF0KKyAgICAgICAgICAg
ICAgICBxdWVyeSA9IHNwbGl0WzFdCisgICAgICAgICAgICBwYXR0ZXJuID0gcmUuY29tcGlsZSgi
XiIgKyBpbmNsdWRlX3Rlc3QpCisgICAgICAgICAgICBpZiBwYXR0ZXJuLm1hdGNoKHRlc3QpIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHF1ZXJ5X3N0cmluZyArPSBxdWVyeSArICImIgor
ICAgICAgICByZXR1cm4gInt9P3t9Ii5mb3JtYXQodGVzdCwgcXVlcnlfc3RyaW5nKQorCiAgICAg
ZGVmIGZpbmRfdG9rZW4oc2VsZiwgZnJhZ21lbnQpOgogICAgICAgICBpZiBsZW4oZnJhZ21lbnQp
IDwgODoKICAgICAgICAgICAgIHJldHVybiBOb25lCkBAIC00MzcsMyArNDcxLDYgQEAgY2xhc3Mg
U2Vzc2lvbnNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGlmIGxlbih0b2tlbnMpICE9IDE6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gdG9rZW5zWzBdCisKKyAgICBk
ZWYgZ2V0X3RvdGFsX3Nlc3Npb25zKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3Nl
c3Npb25zKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvdGVzdF9sb2FkZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy90ZXN0X2xv
YWRlci5weQppbmRleCAxMGRlNzRhNGI3ZmZlODkxNjI5YTkwMmM0ZGU4NjlhMjc0ZGY0MGZiLi5k
OWYwNjkxMGRiMmI0YWRmM2M2ZjFhMjNmYzI3NmNmZjQzMDBkNzkwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGlu
Zy90ZXN0X2xvYWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy90ZXN0X2xvYWRlci5weQpAQCAtNzAsNyArNzAs
NyBAQCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHBhdGhz
LmFwcGVuZCh0ZXN0KQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAg
ICAgIGlmIHRlc3QuZW5kc3dpdGgoIi5qcyIpOgotICAgICAgICAgICAgICAgICAgICBmb3IgZWxl
bWVudCBpbiB0ZXN0c1t0ZXN0XToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGVsZW1lbnQgaW4g
dGVzdHNbdGVzdF1bMTpdOgogICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHMuYXBwZW5kKGVs
ZW1lbnRbMF0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICByZXR1
cm4gcGF0aHMKQEAgLTk4LDYgKzk4LDcgQEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgogICAg
ICAgICBpZiBpbmNsdWRlX2xpc3QgaXMgbm90IE5vbmUgYW5kIGxlbihpbmNsdWRlX2xpc3QpID4g
MDoKICAgICAgICAgICAgIGlzX3ZhbGlkID0gRmFsc2UKICAgICAgICAgICAgIGZvciBpbmNsdWRl
X3Rlc3QgaW4gaW5jbHVkZV9saXN0OgorICAgICAgICAgICAgICAgIGluY2x1ZGVfdGVzdCA9IGlu
Y2x1ZGVfdGVzdC5zcGxpdCgiPyIpWzBdCiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHJlLmNv
bXBpbGUoIl4iICsgaW5jbHVkZV90ZXN0KQogICAgICAgICAgICAgICAgIGlmIHBhdHRlcm4ubWF0
Y2godGVzdF9wYXRoKSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgaXNfdmFsaWQg
PSBUcnVlCkBAIC0xMDksNiArMTEwLDcgQEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgogICAg
ICAgICBpZiBleGNsdWRlX2xpc3QgaXMgbm90IE5vbmUgYW5kIGxlbihleGNsdWRlX2xpc3QpID4g
MDoKICAgICAgICAgICAgIGlzX3ZhbGlkID0gVHJ1ZQogICAgICAgICAgICAgZm9yIGV4Y2x1ZGVf
dGVzdCBpbiBleGNsdWRlX2xpc3Q6CisgICAgICAgICAgICAgICAgZXhjbHVkZV90ZXN0ID0gZXhj
bHVkZV90ZXN0LnNwbGl0KCI/IilbMF0KICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcmUuY29t
cGlsZSgiXiIgKyBleGNsdWRlX3Rlc3QpCiAgICAgICAgICAgICAgICAgaWYgcGF0dGVybi5tYXRj
aCh0ZXN0X3BhdGgpIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICBpc192YWxpZCA9
IEZhbHNlCkBAIC0xMzYsMTMgKzEzOCwxMyBAQCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAK
ICAgICBkZWYgZ2V0X3Rlc3RzKAogICAgICAgICBzZWxmLAotICAgICAgICB0eXBlcz1Ob25lLAor
ICAgICAgICB0ZXN0X3R5cGVzPU5vbmUsCiAgICAgICAgIGluY2x1ZGVfbGlzdD1Ob25lLAogICAg
ICAgICBleGNsdWRlX2xpc3Q9Tm9uZSwKICAgICAgICAgcmVmZXJlbmNlX3Rva2Vucz1Ob25lCiAg
ICAgKToKLSAgICAgICAgaWYgdHlwZXMgaXMgTm9uZToKLSAgICAgICAgICAgIHR5cGVzID0gW0FV
VE9NQVRJQywgTUFOVUFMXQorICAgICAgICBpZiB0ZXN0X3R5cGVzIGlzIE5vbmU6CisgICAgICAg
ICAgICB0ZXN0X3R5cGVzID0gW0FVVE9NQVRJQywgTUFOVUFMXQogICAgICAgICBpZiBpbmNsdWRl
X2xpc3QgaXMgTm9uZToKICAgICAgICAgICAgIGluY2x1ZGVfbGlzdCA9IFtdCiAgICAgICAgIGlm
IGV4Y2x1ZGVfbGlzdCBpcyBOb25lOgpAQCAtMTU1LDcgKzE1Nyw3IEBAIGNsYXNzIFRlc3RMb2Fk
ZXIob2JqZWN0KToKICAgICAgICAgcmVmZXJlbmNlX3Jlc3VsdHMgPSBzZWxmLl9yZXN1bHRzX21h
bmFnZXIucmVhZF9jb21tb25fcGFzc2VkX3Rlc3RzKAogICAgICAgICAgICAgcmVmZXJlbmNlX3Rv
a2VucykKIAotICAgICAgICBmb3IgdGVzdF90eXBlIGluIHR5cGVzOgorICAgICAgICBmb3IgdGVz
dF90eXBlIGluIHRlc3RfdHlwZXM6CiAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgbm90IGluIFRF
U1RfVFlQRVM6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGZvciBhcGkg
aW4gc2VsZi5fdGVzdHNbdGVzdF90eXBlXToKQEAgLTE2NCw3ICsxNjYsOCBAQCBjbGFzcyBUZXN0
TG9hZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVfbGlzdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQog
ICAgICAgICAgICAgICAgICAgICBpZiByZWZlcmVuY2VfcmVzdWx0cyBpcyBub3QgTm9uZSBhbmQg
XAotICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGggbm90IGluIHJlZmVyZW5jZV9yZXN1
bHRzW2FwaV06CisgICAgICAgICAgICAgICAgICAgICAgIChhcGkgbm90IGluIHJlZmVyZW5jZV9y
ZXN1bHRzIG9yCisgICAgICAgICAgICAgICAgICAgICAgIChhcGkgaW4gcmVmZXJlbmNlX3Jlc3Vs
dHMgYW5kIHRlc3RfcGF0aCBub3QgaW4gcmVmZXJlbmNlX3Jlc3VsdHNbYXBpXSkpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgaWYgYXBpIG5v
dCBpbiBsb2FkZWRfdGVzdHM6CiAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWRfdGVzdHNb
YXBpXSA9IFtdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy90ZXN0c19tYW5hZ2VyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvdGVz
dHNfbWFuYWdlci5weQppbmRleCAyNmJiZGI4NjUyNmMzNTMyNzBhNWFhMzhlMWYyNGUzNGQxYWQy
MmYxLi45OTM1NTIxOWJkY2Q3MGRhY2I0MGQ2ZGMyMzY3OTMyMWI5NWIxZWJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
dGVzdGluZy90ZXN0c19tYW5hZ2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Rlc3RzX21hbmFnZXIucHkKQEAg
LTYsMzIgKzYsNiBAQCBmcm9tIC5ldmVudF9kaXNwYXRjaGVyIGltcG9ydCBURVNUX0NPTVBMRVRF
RF9FVkVOVAogZnJvbSAuLmRhdGEuZXhjZXB0aW9ucy5ub3RfZm91bmRfZXhjZXB0aW9uIGltcG9y
dCBOb3RGb3VuZEV4Y2VwdGlvbgogZnJvbSAuLmRhdGEuc2Vzc2lvbiBpbXBvcnQgQ09NUExFVEVE
LCBBQk9SVEVECiAKLSMgSGVscGVyIGNsYXNzIHVzZWQgdG8gYWRhcHQgYSBzcGVjaWZpYyBjb21w
YXJlIGZ1bmN0aW9uIHRvIGEgUHl0aG9uIDMKLSMga2V5IGZ1bmN0aW9uLgotY2xhc3MgQ21wV3Jh
cHBlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9tYW5hZ2VyLCBjb21wYXJlX2Z1bmN0
aW9uLCBvYmopOgotICAgICAgICBzZWxmLm9iaiA9IG9iagotICAgICAgICBzZWxmLnRlc3RfbWFu
YWdlciA9IHRlc3RfbWFuYWdlcgotICAgICAgICBzZWxmLmNvbXBhcmVfZnVuY3Rpb24gPSBjb21w
YXJlX2Z1bmN0aW9uCi0KLSAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuY29tcGFyZV9mdW5jdGlvbihzZWxmLnRlc3RfbWFuYWdlciwgc2VsZi5vYmosIG90
aGVyLm9iaikgPCAwCi0KLSAgICBkZWYgX19ndF9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuY29tcGFyZV9mdW5jdGlvbihzZWxmLnRlc3RfbWFuYWdlciwgc2VsZi5vYmosIG90
aGVyLm9iaikgPiAwCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuY29tcGFyZV9mdW5jdGlvbihzZWxmLnRlc3RfbWFuYWdlciwgc2VsZi5vYmosIG90
aGVyLm9iaikgPT0gMAotCi0gICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLmNvbXBhcmVfZnVuY3Rpb24oc2VsZi50ZXN0X21hbmFnZXIsIHNlbGYub2JqLCBv
dGhlci5vYmopIDw9IDAKLQotICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5jb21wYXJlX2Z1bmN0aW9uKHNlbGYudGVzdF9tYW5hZ2VyLCBzZWxmLm9iaiwg
b3RoZXIub2JqKSA+PSAwCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuY29tcGFyZV9mdW5jdGlvbihzZWxmLnRlc3RfbWFuYWdlciwgc2VsZi5vYmos
IG90aGVyLm9iaikgIT0gMAotCiAKIGNsYXNzIFRlc3RzTWFuYWdlcihvYmplY3QpOgogICAgIGRl
ZiBpbml0aWFsaXplKApAQCAtMTE1LDYgKzg5LDggQEAgY2xhc3MgVGVzdHNNYW5hZ2VyKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgaWYgcG90ZW50aWFsX3Jlc3VsdFsidGVzdCJdID09IHRlc3Q6
CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBvdGVudGlhbF9yZXN1bHQKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIGJyZWFrCiAKICAgICAgICAgICAgIGlmIHJlc3VsdFsic3RhdHVzIl0gPT0gIkVS
Uk9SIjoKICAgICAgICAgICAgICAgICBpZiBsZW4odGVzdHNbImZhaWwiXSkgPCBjb3VudDoKQEAg
LTE0NCwyOSArMTIwLDM1IEBAIGNsYXNzIFRlc3RzTWFuYWdlcihvYmplY3QpOgogICAgICAgICAg
ICAgZm9yIHRlc3QgaW4gdGVzdHNbYXBpXToKICAgICAgICAgICAgICAgICBzb3J0ZWRfdGVzdHMu
YXBwZW5kKHRlc3QpCiAKLSAgICAgICAgZGVmIGNvbXBhcmUodGVzdHNfbWFuYWdlciwgdGVzdF9h
LCB0ZXN0X2IpOgotICAgICAgICAgICAgbWljcm9fdGVzdF9saXN0ID0ge30KLSAgICAgICAgICAg
IGFwaV9hID0gIiIKLSAgICAgICAgICAgIGZvciBwYXJ0IGluIHRlc3RfYS5zcGxpdCgiLyIpOgot
ICAgICAgICAgICAgICAgIGlmIHBhcnQgIT0gIiI6Ci0gICAgICAgICAgICAgICAgICAgIGFwaV9h
ID0gcGFydAotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgYXBpX2IgPSAi
IgotICAgICAgICAgICAgZm9yIHBhcnQgaW4gdGVzdF9iLnNwbGl0KCIvIik6Ci0gICAgICAgICAg
ICAgICAgaWYgcGFydCAhPSAiIjoKLSAgICAgICAgICAgICAgICAgICAgYXBpX2IgPSBwYXJ0Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBhcGlfYSA9PSBhcGlfYjoK
LSAgICAgICAgICAgICAgICBtaWNyb190ZXN0X2xpc3RbYXBpX2FdID0gW3Rlc3RfYSwgdGVzdF9i
XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtaWNyb190ZXN0X2xpc3RbYXBp
X2FdID0gW3Rlc3RfYV0KLSAgICAgICAgICAgICAgICBtaWNyb190ZXN0X2xpc3RbYXBpX2JdID0g
W3Rlc3RfYl0KLSAgICAgICAgICAgIG5leHRfdGVzdCA9IHRlc3RzX21hbmFnZXIuX2dldF9uZXh0
X3Rlc3RfZnJvbV9saXN0KG1pY3JvX3Rlc3RfbGlzdCkKLSAgICAgICAgICAgIGlmIG5leHRfdGVz
dCA9PSB0ZXN0X2E6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xCi0gICAgICAgICAgICByZXR1
cm4gMQotCi0gICAgICAgIHJldHVybiBzb3J0ZWQoc29ydGVkX3Rlc3RzLCBrZXk9bGFtYmRhIHg6
Q21wV3JhcHBlcihzZWxmLCBjb21wYXJlLCB4KSkKKyAgICAgICAgY2xhc3MgY29tcGFyZShvYmpl
Y3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX21hbmFnZXIsIHRlc3Qp
OgorICAgICAgICAgICAgICAgIHNlbGYudGVzdCA9IHRlc3QKKyAgICAgICAgICAgICAgICBzZWxm
LnRlc3RzX21hbmFnZXIgPSB0ZXN0c19tYW5hZ2VyCisKKyAgICAgICAgICAgIGRlZiBfX2x0X18o
c2VsZiwgdGVzdF9iKToKKyAgICAgICAgICAgICAgICB0ZXN0X2EgPSBzZWxmLnRlc3QKKyAgICAg
ICAgICAgICAgICB0ZXN0X2IgPSB0ZXN0X2IudGVzdAorICAgICAgICAgICAgICAgIG1pY3JvX3Rl
c3RfbGlzdCA9IHt9CisgICAgICAgICAgICAgICAgYXBpX2EgPSAiIgorICAgICAgICAgICAgICAg
IGZvciBwYXJ0IGluIHRlc3RfYS5zcGxpdCgiLyIpOgorICAgICAgICAgICAgICAgICAgICBpZiBw
YXJ0ICE9ICIiOgorICAgICAgICAgICAgICAgICAgICAgICAgYXBpX2EgPSBwYXJ0CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGFwaV9iID0gIiIKKyAgICAg
ICAgICAgICAgICBmb3IgcGFydCBpbiB0ZXN0X2Iuc3BsaXQoIi8iKToKKyAgICAgICAgICAgICAg
ICAgICAgaWYgcGFydCAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwaV9iID0gcGFy
dAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiBhcGlf
YSA9PSBhcGlfYjoKKyAgICAgICAgICAgICAgICAgICAgbWljcm9fdGVzdF9saXN0W2FwaV9hXSA9
IFt0ZXN0X2EsIHRlc3RfYl0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICBtaWNyb190ZXN0X2xpc3RbYXBpX2FdID0gW3Rlc3RfYV0KKyAgICAgICAgICAgICAgICAg
ICAgbWljcm9fdGVzdF9saXN0W2FwaV9iXSA9IFt0ZXN0X2JdCisgICAgICAgICAgICAgICAgbmV4
dF90ZXN0ID0gc2VsZi50ZXN0c19tYW5hZ2VyLl9nZXRfbmV4dF90ZXN0X2Zyb21fbGlzdChtaWNy
b190ZXN0X2xpc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRfdGVzdCA9PSB0ZXN0X2IK
KworICAgICAgICBzb3J0ZWRfdGVzdHMuc29ydChrZXk9bGFtYmRhIHRlc3Q6IGNvbXBhcmUoc2Vs
ZiwgdGVzdCkpCisgICAgICAgIHJldHVybiBzb3J0ZWRfdGVzdHMKIAogICAgIGRlZiBfZ2V0X25l
eHRfdGVzdF9mcm9tX2xpc3Qoc2VsZiwgdGVzdHMpOgogICAgICAgICB0ZXN0ID0gTm9uZQpAQCAt
MTgwLDcgKzE2Miw3IEBAIGNsYXNzIFRlc3RzTWFuYWdlcihvYmplY3QpOgogICAgICAgICBhcGlz
LnNvcnQoa2V5PWxhbWJkYSBhcGk6IGFwaS5sb3dlcigpKQogCiAgICAgICAgIGZvciBhcGkgaW4g
YXBpczoKLSAgICAgICAgICAgIHRlc3RzW2FwaV0uc29ydChrZXk9bGFtYmRhIGFwaTogYXBpLnJl
cGxhY2UoIi8iLCAiIikubG93ZXIoKSkKKyAgICAgICAgICAgIHRlc3RzW2FwaV0uc29ydChrZXk9
bGFtYmRhIHRlc3Q6IHRlc3QucmVwbGFjZSgiLyIsICIiKS5sb3dlcigpKQogCiAgICAgICAgIHdo
aWxlIHRlc3QgaXMgTm9uZToKICAgICAgICAgICAgIGlmIGxlbihhcGlzKSA8PSBjdXJyZW50X2Fw
aToKQEAgLTMzMiw3ICszMTQsNyBAQCBjbGFzcyBUZXN0c01hbmFnZXIob2JqZWN0KToKICAgICAg
ICAgKQogCiAgICAgICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuZGlzcGF0Y2hfZXZlbnQoCi0g
ICAgICAgICAgICB0b2tlbj1zZXNzaW9uLnRva2VuLAorICAgICAgICAgICAgZGlzcGF0Y2hlcl90
b2tlbj1zZXNzaW9uLnRva2VuLAogICAgICAgICAgICAgZXZlbnRfdHlwZT1URVNUX0NPTVBMRVRF
RF9FVkVOVCwKICAgICAgICAgICAgIGRhdGE9dGVzdAogICAgICAgICApCkBAIC0zNzcsNyArMzU5
LDcgQEAgY2xhc3MgVGVzdHNNYW5hZ2VyKG9iamVjdCk6CiAKICAgICBkZWYgbG9hZF90ZXN0cyhz
ZWxmLCBzZXNzaW9uKToKICAgICAgICAgcGVuZGluZ190ZXN0cyA9IHNlbGYuX3Rlc3RfbG9hZGVy
LmdldF90ZXN0cygKLSAgICAgICAgICAgIHNlc3Npb24udHlwZXMsCisgICAgICAgICAgICBzZXNz
aW9uLnRlc3RfdHlwZXMsCiAgICAgICAgICAgICBpbmNsdWRlX2xpc3Q9c2Vzc2lvbi50ZXN0c1si
aW5jbHVkZSJdLAogICAgICAgICAgICAgZXhjbHVkZV9saXN0PXNlc3Npb24udGVzdHNbImV4Y2x1
ZGUiXSwKICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnM9c2Vzc2lvbi5yZWZlcmVuY2VfdG9r
ZW5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGJlMjMzMWUwZGU2OGIwMjkwNGM2
YWNiZmNjYjI4NzdjZGFmNGM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS90ZXN0aW5nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3Rlc3RpbmcvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9ldmVudF9kaXNwYXRjaGVy
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3Rlc3RpbmcvcmVzdWx0c19tYW5hZ2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rpbmcvc2Vzc2lvbnNfbWFuYWdlci5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS90ZXN0aW5nL3Rlc3RfbG9hZGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvdGVzdHNfbWFuYWdlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5n
L3dwdF9yZXBvcnQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0
cy5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0
cy5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbgppbmRleCBhMDgwMWJiNzdlMzU3ODI3MzIyNzA5MGM1
ZmUxMWVhYzU5ZjkwYjMzLi5jNWEwN2EzMzUyNDhkYThkZjc0YzdiNzI5MzhlNTBiNjE2YjcwNzAz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvdGVzdHMvV0FWRSBTZXJ2ZXIgUkVTVCBBUEkgVGVzdHMucG9zdG1hbl9jb2xs
ZWN0aW9uLmpzb24JCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0cy5wb3N0bWFu
X2NvbGxlY3Rpb24uanNvbgkKQEAgLTEsNyArMSw3IEBACiB7CiAJImluZm8iOiB7Ci0JCSJfcG9z
dG1hbl9pZCI6ICJjY2Q2MTE3YS02ZDYxLTQ2MTctYTZhMS03MTE1ZGI0ZDRkOTIiLAotCQkibmFt
ZSI6ICJXQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0cyIsCisJCSJfcG9zdG1hbl9pZCI6ICI2OWZi
NzMzYi01MWVjLTQ5YjItYWEwNC1lMjMzMGMxZDI2YjYiLAorCQkibmFtZSI6ICJXQVZFIFNlcnZl
ciBSRVNUIEFQSSBUZXN0cyBjb3B5IiwKIAkJInNjaGVtYSI6ICJodHRwczovL3NjaGVtYS5nZXRw
b3N0bWFuLmNvbS9qc29uL2NvbGxlY3Rpb24vdjIuMS4wL2NvbGxlY3Rpb24uanNvbiIKIAl9LAog
CSJpdGVtIjogWwpAQCAtMTQsNyArMTQsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjA1MWJlZjk0LTU1NDQt
NGRkYi05ZDg1LTE2NzY3N2ViZWNiMiIsCisJCQkJCQkJCSJpZCI6ICI3YzQzMmU3Yy1kMGY5LTQ1
ODMtOTc3YS01NWNhNWQxZTQyYTIiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC05NCw3ICs5NCw3IEBACiAJ
CQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0Ijog
ewotCQkJCQkJCQkJCSJpZCI6ICJhOGJmM2U0MS1hN2RmLTRjNmItOGEyMC0zYTFlNmQ4YTUxZDki
LAorCQkJCQkJCQkJCSJpZCI6ICI3MTQ3MGJmNy0yOTNiLTQ4NjMtYTc0ZS0xOTNkODZmMmU2YWMi
LAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xMTksNyArMTE5LDcgQEAKIAkJCQkJCQkJewogCQkJ
CQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJImlkIjogIjQzNzA1NDZmLWIwOGMtNGY3Ny05YmQ5LTFjZDE0NDAwNjY1ZSIsCisJCQkJ
CQkJCQkJImlkIjogIjdkNTliN2E3LTc4ZjgtNDZmYy1hM2YxLWJkMDZmN2VjMzFiNyIsCiAJCQkJ
CQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJ2YXIgZXhwaXJhdGlvbkRhdGUgPSBEYXRlLm5v
dygpICsgMTAwMDA7IiwKIAkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZXhwaXJhdGlvbl9k
YXRlXCIsIGV4cGlyYXRpb25EYXRlKTsiCkBAIC0xNjQsNyArMTY0LDcgQEAKIAkJCQkJCQkJewog
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CQkJImlkIjogIjNkY2I1YjZjLTkxNTEtNDlmNy1hMWE2LTc0NDc1OTI3YjMwNCIsCisJCQkJCQkJ
CQkJImlkIjogImRhYWE1YTk4LWYzMzAtNGNhNS1hZmM1LWM0MDUxZTdhOTRjMSIsCiAJCQkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKQEAgLTIxNCw3ICsyMTQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiOGQw
NTU3OGEtZTJkNi00MWU5LWEyYTQtYWE3ZDkyYmZiYmNlIiwKKwkJCQkJCQkJCQkiaWQiOiAiZDZl
N2EwOTYtNWJlZC00NGIwLTg3NzItYWI4MGMxZjUzNDQ3IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApA
QCAtMjUxLDcgKzI1MSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI0YzVlM2JhNC1lMjdiLTQz
NDEtOGNmOC03NGVkMDQ3YTg3NDciLAorCQkJCQkJCQkJCSJpZCI6ICI2NjA3NWQ3MS01NWVkLTQ4
MzUtYjZiNS1hZGE4NTQ2NTNkMDQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zMzEsNyArMzMx
LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCSJpZCI6ICIxMDgxYWZkOC1hNzcyLTQ1NjUtYjAzZC1iNThmNzczY2JiNjUi
LAorCQkJCQkJCQkiaWQiOiAiYTM2NWViMGItYmE1NS00OTBhLThjZDktNzI4NmExZDM5Y2QyIiwK
IAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLApAQCAtMzc4LDcgKzM3OCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiMjY4ZThhMzEt
ODdiYi00ZWM1LTgxZDUtODdkYzc0MDk2ODI4IiwKKwkJCQkJCQkJImlkIjogIjUyNzE5ZDMxLWVm
MzYtNGI3NC04YzVjLTA1ZDU1NGU5MTZjMCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQzNyw3ICs0Mzcs
NyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjYyNWZjYzJhLWY3YjEtNDAzYy1iNWM1LTU2ZGI3YzVi
Y2VlNSIsCisJCQkJCQkJCSJpZCI6ICI3NTNhNzQ1MS0yYTkyLTRkZTAtYTJlMi1kMGQ5YzY2ZGUx
MzQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2Jh
bHMuZ2V0KFwic2Vzc2lvbl90b2tlblwiKTsiLAogCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
c2Vzc2lvbl90b2tlbl9mcmFnbWVudFwiLCB0b2tlbi5zcGxpdChcIi1cIikuc2hpZnQoKSk7IgpA
QCAtNDQ4LDcgKzQ0OCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiOGUwNDIxMmYtZTI1OS00MTNmLTk4ZWUt
ZTM2NmNkM2FkZmRkIiwKKwkJCQkJCQkJImlkIjogIjJhNDY1ZGU2LWY2NmUtNDE2MS1hZDdlLTdj
MWMzNzM4YmVmZCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTUxMyw3ICs1MTMsNyBAQAogCQkJCQkJewog
CQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJImlkIjogIjZmODQyOWUzLTljMTItNDIzYy1iYWFmLThmOGRlMGU0ZWE0OSIsCisJCQkJCQkJ
CSJpZCI6ICIwZTdmZjk2Zi04YzVhLTQ2ZjMtYTFhMC0yNThhZDU5Yjk2ZTAiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0KFwic2Vzc2lv
bl90b2tlblwiKTsiLAogCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlbl9m
cmFnbWVudFwiLCB0b2tlbi5zcGxpdChcIi1cIikuc2hpZnQoKSk7IgpAQCAtNTI0LDcgKzUyNCw3
IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0Ijog
ewotCQkJCQkJCQkiaWQiOiAiN2Y2ZWY1NjctMjc0ZS00ZjlkLWI3ZmMtNTBmODI0MDU0N2U5IiwK
KwkJCQkJCQkJImlkIjogImViMzZlMDE3LTRjZGMtNDU4YS1iMzk5LTg5OThkZjgwMGZhMSIsCiAJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyA0MDRc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDQwNCk7IiwKQEAgLTU4OCw3ICs1ODgsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjExZjVjNjIwLWRj
M2ItNGE4Yy04ZDJmLWY5NjYzMDI1Yzc5ZiIsCisJCQkJCQkJCSJpZCI6ICI5YzhhZjU5Yy04ZDli
LTQyNjQtYWNiNS1hMGJkZjNhZjQzNGEiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgNDA0XCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cyg0MDQpOyIsCkBAIC02MjUsNyArNjI1LDcg
QEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCSJpZCI6ICJjNjdjZGU3ZS03MjM3LTQ3OWMtYTBjNi1iODRhNTMzYzNiMWUiLAor
CQkJCQkJCQkiaWQiOiAiYzE2YmY2NmUtMjgzZS00MGI5LWI5OGQtOGIwNThlYzE1NzVhIiwKIAkJ
CQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKIAkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCkBAIC02
MzcsNyArNjM3LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAog
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIyNGIzOGQ2NC01YzI0LTQxNWYtYjZm
Ni1mOGQyNTJkNjlhYzgiLAorCQkJCQkJCQkiaWQiOiAiNjY3ODBiYzgtODhlNi00NGQyLWE2Yzgt
NWM2NDkxNDFhY2NkIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkidmFyIGF1dG9tYXRp
Y1RpbWVvdXQgPSAxMjAwMDA7IiwKIAkJCQkJCQkJCSJ2YXIgbWFudWFsVGltZW91dCA9IDEwMDAw
MDA7IiwKQEAgLTY5Miw3ICs2OTIsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjA4MDZlNGUwLWJkMWItNDBi
YS1hN2Q1LTc0ZDQxNDczYTE0MSIsCisJCQkJCQkJCSJpZCI6ICI4MmNhMTJhZC0zYmU1LTQxOWEt
OWE0NS0xNDE2NGIwZWFmNjAiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC03MzksNyArNzM5LDcgQEAKIAkJ
CQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCSJpZCI6ICI5YjFmMmRlYy05OTQ5LTQ5ZmYtYjQ2Ni1mNjAyYjExZGRlNWQiLAorCQkJCQkJ
CQkiaWQiOiAiMTM1ZDdkOWUtMTg2OS00YzAyLTljNmEtN2MwZWE1MjJlMTQwIiwKIAkJCQkJCQkJ
ImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLApAQCAtNzc2LDcgKzc3Niw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiN2ZlYTI5NzctNWNjYi00OWVl
LThmMDctNzlhN2YyMjQ1ZjljIiwKKwkJCQkJCQkJImlkIjogIjFiZmU4YzQxLTIxNDQtNDZkZS04
MjRkLTJkMWUzYzg4MjA1YiIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTgyNyw3ICs4MjcsNyBAQAogCQkJ
CQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJImlkIjogIjdjYzI3ZWU4LTJmMDYtNGUyNS05OGZiLTk4NzJjNmNmMGQ5MyIsCisJCQkJCQkJ
CSJpZCI6ICIwMmNmY2M2OC00M2VkLTQ1MzMtYTgwYy02OTk5NTQ5MDAzOTAiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC04NzQsNyArODc0LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIwYTczYTVlYi0zZWRiLTRkMTUt
OTI0ZC0yNjBkZDIyYmQ4MzEiLAorCQkJCQkJCQkiaWQiOiAiYzhmM2Q4OWItMzRjYS00ZDM5LTk3
N2UtNjM4ZDM2MzBlZTViIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtOTQzLDcgKzk0Myw3IEBACiAJCQkJ
CQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkiaWQiOiAiOTQ4NzdlYzYtNzBlYS00Yzc4LWFjYjUtMjAwNjBhNTM1NjUzIiwKKwkJCQkJCQkJ
ImlkIjogImJjZGUxNDBlLTUxY2YtNGQ3Yy1iNzQ1LTVlNTZmOWI1OTAzNCIsCiAJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CiAJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLApAQCAtOTU1LDcgKzk1
NSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiZGNjMjkwOTItYjdhMS00MGZjLTgzNTktZWNjNjU1
ZGJhNDgyIiwKKwkJCQkJCQkJImlkIjogImM0MzU0MTE4LTg4ZmYtNGI1YS05MjUyLWRhYzE5MjY0
YzI2MiIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInZhciBhdXRvbWF0aWNUaW1lb3V0
ID0gMTIwMDAwOyIsCiAJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSAxMDAwMDAwOyIsCkBA
IC0xMDA1LDcgKzEwMDUsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjhmNmUyYmYyLTZjMWUtNDM0ZS04M2M1
LTliY2M1Nzg4MDY5MiIsCisJCQkJCQkJCSJpZCI6ICI3MzdmYzg1NC03OTAxLTQ4MTktOTZlYi00
ODgzZjViMTViYzkiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xMDQyLDcgKzEwNDIsNyBAQAogCQkJCQkJ
ewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
ImlkIjogImEwYTgwYzA1LWEyY2EtNDMwYS04YmVkLTQ2YWQ3OTc4YzY4NCIsCisJCQkJCQkJCSJp
ZCI6ICJhMjhhNTE1Zi0wZTQ4LTRjMjMtYTQxOC0zYjMwYzFlNmRjNzEiLAogCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CkBAIC0xMDc5LDcgKzEwNzksNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjAwZDgyM2UwLTIwNTktNGNhYi04
MWQ2LThkMWRlOWU1YjYyYSIsCisJCQkJCQkJCSJpZCI6ICIxYjg0MmM0Ny1jNjdjLTRiZmUtYTc3
ZC03ZDViNTUzZTAwMWIiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xMTI2LDcgKzExMjYsNyBAQAogCQkJ
CQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJImlkIjogImI4MjExYzEzLTY2N2QtNDk3MC1hZWRjLTYzOThjMjVjYzQwYyIsCisJCQkJCQkJ
CSJpZCI6ICJlMjMxOGU5My03NDQ2LTQzYmUtYWQ1Mi05OTIwMWE4NWZjYmYiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC0xMTYzLDcgKzExNjMsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjhhYWQ4MTNkLTUzZmUtNDlm
ZC1iZGZjLWYxNmNlMjIzM2FlMiIsCisJCQkJCQkJCSJpZCI6ICJjM2JkZDM3Zi1jMDQ4LTRhMmEt
OTc5Yi1kZWNhNjE3NTgyOTIiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xMjQxLDcgKzEyNDEsNyBAQAog
CQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6
IHsKLQkJCQkJCQkJCQkiaWQiOiAiMzA1Y2I5MTUtODQ5Ni00NTc3LWIxN2EtZTgxODlkNjZjM2Qx
IiwKKwkJCQkJCQkJCQkiaWQiOiAiNTA2YTJmNTItYWI5OC00ZTYxLTk0M2MtY2EwZjdjYWI3ZjI4
IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTMwNyw3ICsxMzA3LDcgQEAKIAkJCQkJCQkJewog
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CQkJImlkIjogIjlkOTAzMTY1LTk2NjctNDNiMC1iMjEwLWE5NTBkMGZhMWZhMiIsCisJCQkJCQkJ
CQkJImlkIjogIjg1ZWUwYWVjLTlmYmQtNDU0NC1hOTM4LWZiODIxZTU3NmZhYyIsCiAJCQkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKQEAgLTEzNDQsNyArMTM0NCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIw
MzA3OTE5Yi02NjMwLTQ4ZmYtYWMxOC0xMGMwYTQ3ZWEyNTQiLAorCQkJCQkJCQkJCSJpZCI6ICJm
NDJjZGYyYy01MzA0LTQyMGQtYjc5ZC1mMzM0NWFjNDQ1NWQiLAogCQkJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAo
KSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CkBAIC0xMzkzLDcgKzEzOTMsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiZjY2NDA4ZDUtNTQz
OC00ZDRmLTliZmMtNmQyNGIxNWU1YTkwIiwKKwkJCQkJCQkJCQkiaWQiOiAiMDFkNmJmYWItOGVj
NS00MzE3LTg1OTUtNjY3Nzc4YmU0MmQ4IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTQzMCw3
ICsxNDMwLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImJhZTU1NDJkLTQ0NmItNDA2NC04OGZm
LWNjMzU1YThmNGY2MiIsCisJCQkJCQkJCQkJImlkIjogImRlYzlhYjYyLTUwMTQtNGI2ZS1hNzQ3
LWJlODNkY2U3MWEzZCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE0ODMsNyArMTQ4Myw3IEBA
CiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCSJpZCI6ICIzYjM4Njk1Mi04YTM3LTQ3MWEtOTE5Mi1mMjg5NzRkOTc1
YTMiLAorCQkJCQkJCQkJCSJpZCI6ICIxZGIzNzcwYi02ZmE5LTQwYjktODc1Yy01NmQxMTNkMGZm
NWIiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xNTIwLDcgKzE1MjAsNyBAQAogCQkJCQkJCQl7
CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiOGU1NmQ4NDItMzI1Yi00MzU2LWFlMWEtMjQ2NWU5ZWZlMTg4IiwKKwkJCQkJ
CQkJCQkiaWQiOiAiODRjY2FlODUtMzZkNi00MjI2LTg1MGMtMjY5Y2JmZGRmZjhlIiwKIAkJCQkJ
CQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLApAQCAtMTU2OSw3ICsxNTY5LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjog
ImExODNjYjBiLTMxZjAtNDhmNi05YzIwLTYwNWExNjQ4OGQ3ZCIsCisJCQkJCQkJCQkJImlkIjog
IjI5ZTNhM2VkLTdiNzUtNDNhMi05OWIzLTczMDBiZDM5MDQ0YSIsCiAJCQkJCQkJCQkJImV4ZWMi
OiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKQEAgLTE2MDYsNyArMTYwNiw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJmMjYxMDU5NC04
MTNhLTQwNzktYWZhZS0xNTEwNDg2ZWZhYjQiLAorCQkJCQkJCQkJCSJpZCI6ICI2MTQ2ODlmYi05
ZDI2LTRhYzEtYjg5Yy1lY2EzMDVhOTU3ZjIiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xNjU1
LDcgKzE2NTUsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNmI4ZWM5OGEtYWQ5MS00ZDVjLWFh
MDctNmIzY2MxMjU1OTAyIiwKKwkJCQkJCQkJCQkiaWQiOiAiMjIxZDliNzUtYWY1Yy00YWE5LWIx
M2ItNmQzYWYxMDU3OGFhIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTY5Miw3ICsxNjkyLDcg
QEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3Jp
cHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjkxYTM4ZWI4LWE1MDEtNDU3Zi1hOWY0LWI2MzIyMWM5
NTdmNiIsCisJCQkJCQkJCQkJImlkIjogIjM0MTQ3MjIzLWY0ZjItNGMxMS1hNjBiLTA5Mzk2ZDQ2
YzE1MiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE3NDEsNyArMTc0MSw3IEBACiAJCQkJCQkJ
CXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCSJpZCI6ICI2ZTNhOGM2NC0wNGNiLTRjNGYtYjIzZC02NDY1NWY2ZTRkMjIiLAorCQkJ
CQkJCQkJCSJpZCI6ICI0MWI2ODZiOS04MGU5LTRjMTYtOTA2ZC1jYTk0OGMwODczYTYiLAogCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZl
LnN0YXR1cygyMDApOyIsCkBAIC0xNzc4LDcgKzE3NzgsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQi
OiAiZGNmN2Y2ZjQtNmVlZi00YTkwLWE2M2QtZGY3MDQ0NmViMjA5IiwKKwkJCQkJCQkJCQkiaWQi
OiAiN2EwNTNiNGMtODdjNi00MjZjLTk1ZDYtNzUwYzVkNDc4YWJhIiwKIAkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLApAQCAtMTgyNyw3ICsxODI3LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImJlZTdhNzBk
LWFmMWYtNGFkMS05YzQwLTdhYmRiY2M5ODNhZSIsCisJCQkJCQkJCQkJImlkIjogIjUyNjAwNzA1
LTQ3ZjUtNGVjNy1iZjNjLWZmMjI0MzAyMjYyNSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAog
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE4
NjQsNyArMTg2NCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJ
CQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyMTdlZDI2Ny0xZGRiLTQ5NmEt
YTdjNS02ZTI5YmFkOTdjNjAiLAorCQkJCQkJCQkJCSJpZCI6ICIzOWMwYTMxNC0zZWZlLTQ5Nzct
OGMyMC0zMzY2NmVhOGUwZTYiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xOTE3LDcgKzE5MTcs
NyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiYTI1NWVhNjEtNWM1YS00ZjBkLThhNjctYzI0NDUx
MGE2MDhjIiwKKwkJCQkJCQkJCQkiaWQiOiAiMGQ1M2I4M2UtNWI4Yi00ZDY5LTk4MGYtZGRjMjcz
NmQyYTVmIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTk1NCw3ICsxOTU0LDcgQEAKIAkJCQkJ
CQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCQkJImlkIjogIjljYzc1OTliLWQzNzgtNGIwNC1iYWRhLTlkNzZmNmNhNjEwZiIsCisJ
CQkJCQkJCQkJImlkIjogIjQyMTdhYmI4LTNlNmUtNDEyNS04YWFmLTkyYjM3ODEzNmY4NyIsCiAJ
CQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE5OTUsNyArMTk5NSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJ
Imxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQi
OiAiODFlNDRlM2YtNWQ5MS00MmE3LWIwYWItNDcwNGViMTIxODY4IiwKKwkJCQkJCQkJImlkIjog
ImY2NmE3Nzk0LWFkZTctNDFlNy1hYmM2LTU2MGFmN2FjZmQ1MyIsCiAJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTIw
MDUsNyArMjAwNSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiYTQ0MTgwY2ItM2IxMy00MjFiLWIxNDYtODI5
MDFmMmI0NWJkIiwKKwkJCQkJCQkJImlkIjogIjA0Y2EwMjQ3LWUzMGUtNDcwYS04MjgyLWQ3YTVl
YWZjNWI5MiIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTIwMjUsNyArMjAyNSw3IEBACiAJCQkJCQkJCXsKIAkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CSJpZCI6ICI0N2ZiMWZhOS00ODQ5LTRlYTktYjM2ZS1mY2VjOGRlY2Y2MmUiLAorCQkJCQkJCQkJ
CSJpZCI6ICIwYTE3YjQyYi1kYzVlLTQ1ODgtODhjNS1iOGJjMjkwNjVkZDAiLAogCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC0yMDYyLDcgKzIwNjIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMTky
M2NlZDQtNDM2MS00YTRhLWJmN2MtNGZjZGYzZGY1MGY2IiwKKwkJCQkJCQkJCQkiaWQiOiAiNWI5
MDhhNTctMmZlNS00MzA5LTg2YWItOTMzYzE5NmJhZGZkIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApA
QCAtMjEwMyw3ICsyMTAzLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVl
c3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIyMjYwNDNlNS0xYTgxLTRk
MzYtYWE3Zi02N2IxMGJmNDA3YWYiLAorCQkJCQkJCQkiaWQiOiAiZmU2MWI3NWYtZjEwNi00M2Y2
LWJjYWYtYWQ0NDAwYWUxZWY0IiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwK
IAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjExMyw3ICsyMTEzLDcgQEAKIAkJ
CQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCSJpZCI6ICI4NDBiZjk3MC0wOTg0LTQ1MmUtOTA3Ni1iNmY2NmQwYjQ1MTEiLAorCQkJCQkJ
CQkiaWQiOiAiZjk0YTdmMjUtNzJlYi00YmNmLTlkZGItNTczY2EyY2ZiYjFmIiwKIAkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQki
IgpAQCAtMjEzMyw3ICsyMTMzLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjg4YzQwNzJmLTUz
OGItNGQ2OC05ZDYxLWYwZmIwMTdlNTQ0YyIsCisJCQkJCQkJCQkJImlkIjogImMzOTE1YjY2LWJj
ZDQtNGEyMy04Yjc0LTJmZDljMTYyMTBkOCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTIxNzAs
NyArMjE3MCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyYWUwMGViMy00OWU4LTQ0ODctYjI3
Zi1lN2M3OTU1ZmU0ZjQiLAorCQkJCQkJCQkJCSJpZCI6ICJjOTRkMTRiZi1lNDhmLTRhODUtODkz
OS1lNDViYzY2YmU2ZDAiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0yMjExLDcgKzIyMTEsNyBA
QAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJImlkIjogIjcwZTBjNzgzLWM0MDUtNDgxYy1iOWM4LTVjOGJlZTM5MmY5
NyIsCisJCQkJCQkJCSJpZCI6ICJlYjZhNDA1MS0zY2Q3LTRkNzUtOTNlYy04ZjBjNDQ2M2NjOTgi
LAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCSIiCkBAIC0yMjIxLDcgKzIyMjEsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjg1YzQ1ZTNi
LWZhZTYtNGE5MC1hZmQwLTk3Njc4NzY5ZTMyYyIsCisJCQkJCQkJCSJpZCI6ICI2NDI5NTY2MS0z
MDBkLTQ3NzMtODg1Ni02YzNlY2JlMTU4YjAiLAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0yMjYzLDcgKzIyNjMs
NyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiZGY0YTAwZDEtZDRmOC00YjBiLTg5MmQtMjE1Mjgx
NjVhMmNmIiwKKwkJCQkJCQkJCQkiaWQiOiAiNGQzM2VlNTAtNDM2OC00MmYzLWI4YTQtYWIwZmYy
N2YwMGY2IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMjMyMSw3ICsyMzIxLDcgQEAKIAkJCQkJ
CXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCSJpZCI6ICI0ZmE1OTYxNy1jOTIyLTQ4MjYtYWJjNi02ZDkxMGU5MThlYTQiLAorCQkJ
CQkJCQkiaWQiOiAiNmEyMTcwOTctZmRmNy00Yzk5LWIwMDUtNzIzYWNmOWI4Mzg5IiwKIAkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkiIgpAQCAtMjMzMSw3ICsyMzMxLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICJkODNmNDQ5ZC00YTJlLTQx
YzgtYjJjZC01Y2YwY2QxYzQwNGUiLAorCQkJCQkJCQkiaWQiOiAiMzdjODBhMmEtOTUwOC00ZThk
LTkzZDUtZGZiZmFjODM3YmVkIiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwK
IAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjM1MSw3ICsyMzUxLDcgQEAKIAkJ
CQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJImlkIjogIjk4ZGEyYjg2LTRmOWYtNDdkZC1hZmM5LTIyY2U5NmU3M2U4NCIs
CisJCQkJCQkJCQkJImlkIjogIjZkMDYzNWFhLTJiNjMtNGUwZi04OWQyLWRhNGQ0Nzc0MTE2MCIs
CiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTIzODgsNyArMjM4OCw3IEBACiAJCQkJCQkJCXsKIAkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CSJpZCI6ICI2ZDhhODIwMi1jODVkLTRhZGEtYjQ0My00NTEwOGEzNzJhZWEiLAorCQkJCQkJCQkJ
CSJpZCI6ICI5MDg5NWY4Yi01Mzk4LTRlZWItOWYzNS01ODY5NzM2ZGM0NmMiLAogCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC0yNDU5LDcgKzI0NTksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMGY5
ZGY0ODYtOTFjZC00NmZjLWE3MTEtNWNmOWJlYmIyNzA2IiwKKwkJCQkJCQkJCQkiaWQiOiAiZTQ5
MjkwMjEtYTViMi00ODM5LTg1MzctYmZiN2VhMTkzNWMyIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApA
QCAtMjUxOCw3ICsyNTE4LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjgwZWU5MWZkLTk4Y2Et
NGI4ZS04M2I2LTMyYmYzZTU1YTI5NSIsCisJCQkJCQkJCQkJImlkIjogIjJlMjcwM2EyLWQ3NGYt
NDZiYS1iMTY4LTlmM2I2NDg4ODA4NiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJ
CSIiCiAJCQkJCQkJCQkJXSwKQEAgLTI1NTMsNyArMjU1Myw3IEBACiAJCQkJCQkJCXsKIAkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJp
ZCI6ICI0N2Y0ZDI2YS04NGMyLTQ5ODAtOTg0ZC1kYWMwZTk1NTAzZTEiLAorCQkJCQkJCQkJCSJp
ZCI6ICJkZjk4ZjA3ZC00YmIzLTQ2N2QtOTJhYS1lOTEyMmRiNDJlMzEiLAogCQkJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJCQkiIgogCQkJCQkJCQkJCV0sCkBAIC0yNTg3LDcgKzI1ODcsNyBA
QAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJImlkIjogIjZiZDllODVmLWViNzMtNDdiZS04M2IwLTAxYmU3Nzg2ODg5
OSIsCisJCQkJCQkJCSJpZCI6ICJjM2UxNjZlZi1kZTRiLTRjMDItODljMy01NDdhYWE3YTY1NTUi
LAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCSIiCkBAIC0yNTk3LDcgKzI1OTcsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjQzZWJmYWRi
LWRjNjgtNGM0MS1iMzRlLTQ2MmU0MjdkYzJlZiIsCisJCQkJCQkJCSJpZCI6ICJhODY4OTFmMy04
ZjFkLTQ4YzYtOWUwOC0wYTc5MmJiMTYyN2EiLAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0yNjE3LDcgKzI2MTcs
NyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMDI5ZWM4NGItZTQxYi00NzQ0LTg3NDUtNThjNTBl
NTJiYjExIiwKKwkJCQkJCQkJCQkiaWQiOiAiM2VhMTUxYzAtODI4Ni00MTlmLWJlZDYtMGMwNmRh
OTEyODUwIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMjY1NCw3ICsyNjU0LDcgQEAKIAkJCQkJ
CQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCQkJImlkIjogIjA3MWQ3NTdjLTQxYWEtNGI1Mi05YWI0LTZjMmFmZDZlZDJhZiIsCisJ
CQkJCQkJCQkJImlkIjogImYxMGNmMDhiLTlhMWEtNGYzZS04YjNlLThiZTUyZjgyNzM0ZSIsCiAJ
CQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKQEAgLTI2OTUsNyArMjY5NSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJ
Imxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQi
OiAiMzA1NzIwYTAtMmM4NC00M2QzLThmZTUtNTVmOGZkZjUxMWQ4IiwKKwkJCQkJCQkJImlkIjog
ImExYjNiZjJlLTRkMDktNGVlMS05MDYzLTZjNGM4NDJmY2Q5NCIsCiAJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTI3
MDUsNyArMjcwNSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiODRlNGFiMDQtNWFjYy00NDI4LWE4MWEtYzBi
MGM1M2I1ZmQ5IiwKKwkJCQkJCQkJImlkIjogImE2NzQ1ZTkwLTUzODItNDQ1ZC05ZDY1LWRiNzRh
ZmY3YWYxYiIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTI3NDcsNyArMjc0Nyw3IEBACiAJCQkJCQkJCXsKIAkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CSJpZCI6ICJiN2E5ZDQ1OS05YjM5LTQwYjItYWJkYy1mZDhmZThiMjFkNjEiLAorCQkJCQkJCQkJ
CSJpZCI6ICJkYTJlYzQ0Mi00NGZkLTQzMmUtYjMzNS1hYmU0ZGQ3M2MxODIiLAogCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC0yNzcyLDcgKzI3NzIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQi
OiAiZmNiZmIwZTMtYTEwZC00ZmY4LWFmZWQtZjVmM2M5ZDUyMDkwIiwKKwkJCQkJCQkJCQkiaWQi
OiAiNDc2NjU0NTQtZDQ2OC00OTY0LTgxNjctYmQ4MDA1MWEzOTM3IiwKIAkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gcG0uZ2xvYmFscy5nZXQo
XCJhdmFpbGFibGVfdGVzdHNcIik7IiwKIAkJCQkJCQkJCQkJImNvbnN0IHRlc3QgPSBhdmFpbGFi
bGVUZXN0c1tPYmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cylbMF1dWzBdIiwKQEAgLTI4MTksNyAr
MjgxOSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI5MzdlZjYxZC1kNmQ2LTRlMjQtYmMzYS02
OTZhMjNjYzk1ZDYiLAorCQkJCQkJCQkJCSJpZCI6ICI4YTU3NWIwMi00MGZmLTQwNGMtYTM0NC1k
NzY4YzIxOGNhYmEiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkiIgogCQkJCQkJ
CQkJCV0sCkBAIC0yODU0LDcgKzI4NTQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMjlmMDU1
NGItNjZmNS00ZTI2LTgwZmYtMzliM2ZhYmE5MjBhIiwKKwkJCQkJCQkJCQkiaWQiOiAiZThhYjFh
MDItMmJlMC00M2VlLWJlOGItMDQ5NjdiNWFhZmYzIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCiAJCQkJCQkJ
CQkJCSJjb25zdCBuZXh0VGVzdCA9IHJlc3BvbnNlLm5leHRfdGVzdDsiLApAQCAtMjkyNiw3ICsy
OTI2LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI5YmY2NjQyNy02ZjM5LTRmMGEtYjA2NS0xODQ5
ZDY3OWVlZTYiLAorCQkJCQkJCQkiaWQiOiAiYmU0MTBiNzUtZDY3NC00ZWYzLThkZGEtNTczMWY0
ZGJjYmQ1IiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjkzNiw3ICsyOTM2LDcgQEAKIAkJCQkJCXsKIAkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI4
ZDFmMzgzNy0xZjA1LTQ3ZTQtODk3Yy1iN2M3NGRhOWJkNDMiLAorCQkJCQkJCQkiaWQiOiAiNzA2
ZWZjZWEtOTBmMi00MjA2LTgyNDYtYjgyMjQwZTcxOWZiIiwKIAkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjk1Niw3
ICsyOTU2LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjliZjBmYjcwLTI0YTAtNDEzNi05OWZl
LThlMGU0ODhhZmQxZSIsCisJCQkJCQkJCQkJImlkIjogImE2OGVkZjY3LTBhODAtNDUwZC04ZjRl
LTkyMTYyNjQ5MTE2MyIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTI5OTMsNyArMjk5Myw3IEBA
CiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCSJpZCI6ICI3ZTMxODRiZi0xNzQxLTQ0YzgtOGNkMy1jZmYzMGMyZGVj
YTEiLAorCQkJCQkJCQkJCSJpZCI6ICJkMzQ5NWI3ZS1lNGI3LTQ3YTAtOTU4OS1mMmQxNDU5MTU4
NDYiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zMDQyLDcgKzMwNDIsNyBAQAogCQkJCQkJCQl7
CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiZTMyM2M2YWYtZDRlNS00YTA1LWIyMDMtMDliYTY3Zjc3ZDI4IiwKKwkJCQkJ
CQkJCQkiaWQiOiAiZjFjYThmYWItODBkMy00ZDkyLTg4N2UtMDE4Y2I2NTM2YTlmIiwKIAkJCQkJ
CQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLApAQCAtMzA3OSw3ICszMDc5LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjog
IjQwY2QwNGNlLTg1MGYtNDkwMy1iYzI0LTJlNjJhNGRmOThmZSIsCisJCQkJCQkJCQkJImlkIjog
ImMyMjBmZGMzLWI0ODMtNDBmYS1hZTg4LWJmN2Y1NzQxNWQ5MCIsCiAJCQkJCQkJCQkJImV4ZWMi
OiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKQEAgLTMxMjgsNyArMzEyOCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJkYjdkNTIwOS0z
N2IyLTQ2YmQtODhhYi1jZTRlMjQxNDAxYjIiLAorCQkJCQkJCQkJCSJpZCI6ICJhOTEzMGFiOS01
NjJlLTQ4ZDktYTdjMS1mOGNiM2JiOGQ4NWUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zMTY1
LDcgKzMxNjUsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNDc3ZGM2M2QtMGI0My00MjI2LWI4
NmUtMTYzZTJkZTkyYjY3IiwKKwkJCQkJCQkJCQkiaWQiOiAiMDEzZmE2OWUtZjk4Yi00MTI0LWFj
M2YtY2JjMWJiNGM1MDc4IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMzI0OSw3ICszMjQ5LDcg
QEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3Jp
cHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImI5MjNkOTVlLWE3YjQtNDlkNC1hYjJhLTFmNDM1YzQ1
NDM4NyIsCisJCQkJCQkJCQkJImlkIjogIjZlZDRiZWQ5LWI0ZDYtNDQ2My1iZWNhLTRjNGMwOWEy
M2U0NCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTMzMDgsNyArMzMwOCw3IEBACiAJCQkJCQkJ
CXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCSJpZCI6ICI4MWYzNjc1OS03YWUyLTQyYjktODFkMi03OWY1NzA0NmI0NmUiLAorCQkJ
CQkJCQkJCSJpZCI6ICJlMmViYTBkNC05ZTM4LTRhNWMtOWFhMC05ODc0YzcwZjA3ODgiLAogCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZl
LnN0YXR1cygyMDApOyIsCkBAIC0zMzkwLDcgKzMzOTAsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQi
OiAiMjg3M2Q1NTQtOTgxNi00MWYwLTkwNTEtZmIyY2IxMjcyYTc2IiwKKwkJCQkJCQkJCQkiaWQi
OiAiMjJkODEyYTktNWQ2Zi00Y2JiLTkyNGUtY2JlNDM5MjA3MmFkIiwKIAkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLApAQCAtMzQ0Nyw3ICszNDQ3LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjUzNjA1NzY0
LWQ0ZjAtNGIzMi05YTMwLTY3ZTg0ZGQxMDRkOSIsCisJCQkJCQkJCQkJImlkIjogImQwNmI0Y2I5
LWY1YjktNGE4OC04YTI0LWExOTVlNTljMjk4ZSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAog
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTM1
MDgsNyArMzUwOCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwK
IAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiY2YxNjVhZTktMWM0NC00ODNjLThm
ZTQtYmQ3Y2RhYTIwNzEwIiwKKwkJCQkJCQkJImlkIjogImJjZjQxOWViLTQ5NWEtNDU1OC05NWRl
LTQ1ZGVhMDdiZDZiMCIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTM1MTgsNyArMzUxOCw3IEBACiAJCQkJCQl7
CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQki
aWQiOiAiNjkzOGQ0NTYtYWZkNS00MzFiLWE5NWYtYTJjNDVhM2FjNDc5IiwKKwkJCQkJCQkJImlk
IjogIjg2Nzk1NjMwLTliMTktNDlmMy05ODhlLWFjMDg5ZWY3NjE4NyIsCiAJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAg
LTM1MzgsNyArMzUzOCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI2NTdiZTViMy00YTk5LTQ0
MTUtYTFlZi05ZGZkY2Y1NDFlNDYiLAorCQkJCQkJCQkJCSJpZCI6ICIxODFlMWY5NS0zNGQ3LTRj
MmMtYmMzYy1iNmQ1ZjQxMTgwN2QiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zNTUwLDcgKzM1
NTAsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMDkzYTAwMTktYTg0Yy00NGZjLWI4
OTAtMzYzNjlkNTFiN2Q1IiwKKwkJCQkJCQkJCQkiaWQiOiAiNDZlMzNiZmUtMDc4My00OWY4LWE5
YmMtOThlMjZhMzRiNTVlIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInZhciBh
dXRvbWF0aWNUaW1lb3V0ID0gMTIwMDAwOyIsCiAJCQkJCQkJCQkJCSJ2YXIgbWFudWFsVGltZW91
dCA9IDEwMDAwMDA7IiwKQEAgLTM2MDEsNyArMzYwMSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICI0YWM1NTYwMS05YmRmLTQxZjgtOWQ1OS1mZjFlZTIwZmE0NzEiLAorCQkJCQkJCQkJCSJpZCI6
ICJkZDg2YmUxNS0zZTA4LTQ5MWUtYjU2Yi0yNzQ1MzFjMzQ4ZTYiLAogCQkJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC0zNjk2LDcgKzM2OTYsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMGI0OWMwMWIt
ZTk0My00ODc5LWI0NDEtNDA5MzgzNmQwNWU5IiwKKwkJCQkJCQkJCQkiaWQiOiAiNTY5ZGM4ZjYt
MzlkNC00ZWM2LTk0NjYtNjQxNTQ2NzFlNGJjIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMzc3
OSw3ICszNzc5LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImI5Y2JhMTlmLTg4ZDItNDFmNi05
NDBhLWEwOTc5ZGEwNTUwMCIsCisJCQkJCQkJCQkJImlkIjogImRiODNhZTkzLTdhNzAtNDI2Ny04
YTJmLTNkMmU3Y2I0MGI4OCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQki
ICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTM4NjIsNyArMzg2Miw3
IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkiaWQiOiAiMzY2OWM3MGEtODhiYy00ODU0LWFiYWMtNWNiODBhMjFj
MzkyIiwKKwkJCQkJCQkJImlkIjogIjUyY2M1OTdlLTMwYjctNDI2ZS1hMTVlLTNhNjI4YzY2NjE5
YSIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJIiIKQEAgLTM4NzIsNyArMzg3Miw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiMWE4MWY1
YzUtMjhkOC00OTM1LWI4YWUtODIyZTMzYzIzZGE5IiwKKwkJCQkJCQkJImlkIjogIjYwZDZkZWY3
LWNiNWItNDMzZi04YTRlLTMzYmQ4ZTIwYmU1MyIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTM4OTUsNyArMzg5
NSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkiaWQiOiAiOWRlOTMyMWMtYWU3OC00YWJkLWE3NDAtNjYzNGUyY2JiOWI5
IiwKKwkJCQkJCQkJImlkIjogImExYzJlMDcwLTkzMDktNGRlZS1hZTcxLTZlZGY0Y2JlMzYzMCIs
CiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKQEAgLTM5MjAsNyArMzkyMCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxp
c3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAi
NzM5Mjg0ZTctMTdhYy00YzM0LWJhYTEtOTMzMzUzZWI3ZWNjIiwKKwkJCQkJCQkJImlkIjogIjFm
MDNhZDIzLTczYzctNGU2NC05ZGU5LWFiZTkwMmUyYjkwYyIsCiAJCQkJCQkJCSJleGVjIjogWwog
CQkJCQkJCQkJIiIKIAkJCQkJCQkJXSwKQEAgLTM5NjQsNyArMzk2NCw3IEBACiAJCQkJCQl7CiAJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQi
OiAiNWIxNWYzMzgtYzc3My00ZjQ4LThmNzgtMWQ3YzkyNmJlYjgxIiwKKwkJCQkJCQkJImlkIjog
ImJmNzZmNDdjLTk2MGMtNDAwNy1hNTliLTkyNzkzZTQ3MDA4MiIsCiAJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAg
LTQwNTAsNyArNDA1MCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiZTY5YjcxODgtYjNjOS00ZjY2LThjNmMt
M2YzMzQ4Zjg0ZjZhIiwKKwkJCQkJCQkJImlkIjogIjIwY2M5ZjdkLWI0YmItNGJiMi1hNjI4LTRj
ZmRkZDg2MTEyYSIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3Bv
bnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQwOTgsNyArNDA5OCw3IEBACiAJCQkJCQl7
CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQki
aWQiOiAiODZlMjBjNGQtNTc5Ny00YjZlLWE4Y2MtMTRlMjg0ZTdjNDkxIiwKKwkJCQkJCQkJImlk
IjogIjExZmNjNTFiLWVmZmQtNDUyMi04MTI2LTZiNmEyMDQzNTkyNyIsCiAJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTQyMTUsNyArNDIxNSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJlODVmZDUzOS00NTk4
LTQ3YTktODc2OC02NTY2NTZmMjlmZWMiLAorCQkJCQkJCQkJCSJpZCI6ICIyYjcxOThlZi02MDUx
LTQwZWUtYWY0Zi00NjZiZjQxZTM3NjgiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC00Mjc4LDcg
KzQyNzgsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjhlOWZlNGFmLTBkNTAtNDllYi04YTRhLTAwZTEzMDIx
YjRhNiIsCisJCQkJCQkJCSJpZCI6ICJjYWJjY2ZlMS04ODJlLTQ4YmYtOTk0Ni00YjhmNjdiMDlm
MDQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCkBAIC00MzE0LDcgKzQzMTQsNyBAQAogCQkJCQkJewogCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjk0
MTgxMTJhLTAzZjYtNDY0MS04OTNlLTA3NmM4OTIyYzBhZiIsCisJCQkJCQkJCSJpZCI6ICJjYWQ5
NWVkMC04MjJhLTQzM2ItYjQxMS1hZGYzYjJlNWVhNzciLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgNDA0XCIsIGZ1bmN0aW9uICgpIHsiLAog
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cyg0MDQpOyIsCkBAIC00MzU5
LDcgKzQzNTksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiYTY5OTVmZjEtZDYyNi00ZjRmLWEx
ZTAtNTY3ZjM0MjliZjUyIiwKKwkJCQkJCQkJCQkiaWQiOiAiM2M4MmIxOTktZTI3Zi00Yjg2LWI5
OGQtOWYxMGFkMmIzNjNmIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDM4NCw3ICs0Mzg0LDcg
QEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjg1YzdhZDhkLTVmYzktNDAzZC04NzE1LWM2
NWQ1ZmYxMzIzZSIsCisJCQkJCQkJCQkJImlkIjogIjcwYWQxNmQzLTVkZjctNGM5NC05NDk4LWY1
YWJkMGI2Zjc2YyIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJjb25zdCBhdmFp
bGFibGVUZXN0cyA9IHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCiAJCQkJ
CQkJCQkJCSJjb25zdCB0ZXN0MSA9IGF2YWlsYWJsZVRlc3RzW09iamVjdC5rZXlzKGF2YWlsYWJs
ZVRlc3RzKVswXV1bMF07IiwKQEAgLTQ0MzMsNyArNDQzMyw3IEBACiAJCQkJCQkJCXsKIAkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJp
ZCI6ICIzNWNmNDc0NS0wMzAxLTRjOWMtYjZiMy00MDk0NTI5OTUzM2YiLAorCQkJCQkJCQkJCSJp
ZCI6ICIwNzRhZmY2OC05MzFkLTRkMzEtYjEzOC1kOTA2OGJjNTc0MjIiLAogCQkJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCkBAIC00NDcwLDcgKzQ0NzAsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNmRjMDgy
ZWYtODBmZi00MDdhLWE1NjItZTI1ZTM3NDc2ZWVlIiwKKwkJCQkJCQkJCQkiaWQiOiAiOTQ0MDU4
M2MtYjhhNS00NDg4LTkzYWEtZTM3ZGFmOTY0ODVhIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAt
NDUyOSw3ICs0NTI5LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
IAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImZjYWRlNjYzLWRiZDgtNDJj
OS04MzQ0LTUzYWUxZmViNmZjYiIsCisJCQkJCQkJCQkJImlkIjogIjUwYjlhZmU3LTYzZWYtNDBh
ZS1hNmVhLTVhYmJkNDBmMjU0ZCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQ1ODEsNyArNDU4
MSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIzNmQ3MGQwOC0zY2FhLTQzMTItOWJiZC1hZWQx
NWZkMjM4ZGQiLAorCQkJCQkJCQkJCSJpZCI6ICJmMGM3N2RkMC1kNDI0LTRiNmUtOGJmYS0zZTBl
YTU5MDg1MTQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC00NjM2LDcgKzQ2MzYsNyBAQAogCQkJ
CQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJCQkiaWQiOiAiMjExYWRjZjctZDcxYS00YjBmLTk0YWItZDI4NWZjODM2N2RmIiwK
KwkJCQkJCQkJCQkiaWQiOiAiYmZkYjgyYzItMTQxMS00ZTIyLTgxMGItYTFmN2VkYjhkMmY0IiwK
IAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDY5NCw3ICs0Njk0LDcgQEAKIAkJCQkJCQkJewogCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJ
ImlkIjogIjU0MTBjOWMyLWViYmUtNGJjMS1hYzEyLWUyNjAyZDhhZGU1NyIsCisJCQkJCQkJCQkJ
ImlkIjogIjJhNjAyOTZkLTk1M2ItNDMwZC1hMjFkLWRmOTkyNjViOTBjMSIsCiAJCQkJCQkJCQkJ
ImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTQ3NTEsNyArNDc1MSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJlNGY5
YTAzZi1jNzMxLTQxOTItYTlhOS1hYTllMzE1YzNjNDQiLAorCQkJCQkJCQkJCSJpZCI6ICI0MjE2
OGIwZS04YmU5LTQyMTEtOGM0YS01YTA3NzZhM2QxMzEiLAogCQkJCQkJCQkJCSJleGVjIjogWwog
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBA
IC00ODEyLDcgKzQ4MTIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiOWY2ODRmNzctNGVkMC00
Y2QyLTk5YTQtYjFjMTM0NDMyZTlmIiwKKwkJCQkJCQkJCQkiaWQiOiAiOTVhMjNlZTEtZjllOS00
YjZhLWFiZjUtNGFmYTQ4YmE1MjU0IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDg1OSw3ICs0
ODU5LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjMzNjAxZGQwLTY3ODYtNGM4YS1hNmI1LTdm
MTM4NjEyOWRlNyIsCisJCQkJCQkJCQkJImlkIjogIjcwN2M0MDNiLTcxMzUtNGUwYi1hYWU4LTRm
YTRmMDdkYWFjOSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQ5MTgsNyArNDkxOCw3IEBACiAJ
CQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0Ijog
ewotCQkJCQkJCQkJCSJpZCI6ICI5N2JlOTJmMS1hOGQxLTQxZWEtYjQxZC0wY2EwODExM2U2ZTEi
LAorCQkJCQkJCQkJCSJpZCI6ICI3Yjc3Y2I5NC00MTU5LTQ2MmMtODc3Yi0yM2I0ODQ0NmExYmIi
LAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC00OTczLDcgKzQ5NzMsNyBAQAogCQkJCQkJCQl7CiAJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
CQkiaWQiOiAiMjRlYzJiNzktYzI2Ni00NzNmLTg1NzktN2I2OTQwNzlkNjQwIiwKKwkJCQkJCQkJ
CQkiaWQiOiAiOGJhNTcyNmItZWQzNy00OGY1LTkzODktNGY2MDQxYjFlZWFhIiwKIAkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLApAQCAtNTAzMSw3ICs1MDMxLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjFm
NDdiMzlmLTcyN2YtNDNiNC05MzRkLWM3ZjYyYjI2OGJhYSIsCisJCQkJCQkJCQkJImlkIjogIjVh
YzRkZTE3LWNhZjMtNDNiMi04ZWI4LWZlZTI2ZWVkNWM5NiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTUxMjcsNyArNTEyNyw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJlNzM0ZjA3NC1hMGMy
LTRlNTQtYjQyNy0yODI3ZmE3MzI4NDMiLAorCQkJCQkJCQkJCSJpZCI6ICIzOGFmYmM5NC01MDJl
LTRhYTctODVjMi03MGRiYmRhZTdlMTMiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC01MTk1LDcg
KzUxOTUsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiZmQyYzExZWUtNWVjYS00M2YzLTg5YTct
MTMzNjAyYzgwMzRhIiwKKwkJCQkJCQkJCQkiaWQiOiAiODVjZjc5NDAtNzNkMC00NDE5LTgxYTEt
MzkwYzljNGMzYTFjIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTI1Miw3ICs1MjUyLDcgQEAK
IAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJImlkIjogIjExMmVlM2Q1LWQ0ZTAtNDgzOC04NzllLWY3NGMzOGQwMjE4
YyIsCisJCQkJCQkJCQkJImlkIjogIjNlMjg4ZDJjLTg2NWEtNDhhYi1hYzUzLWNkZGQxNjBhOTg0
MCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTUzMTAsNyArNTMxMCw3IEBACiAJCQkJCQkJCXsK
IAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCSJpZCI6ICI3OWE4NGVkOS1iYjA3LTQ5M2QtYWIzNC04ZTc2OTNiM2ViYmQiLAorCQkJCQkJ
CQkJCSJpZCI6ICI3ODZkYmI2Ny00N2U4LTQwMDktOTkxYy0xNjcwZDBhYjA0ZTEiLAogCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCkBAIC01MzU3LDcgKzUzNTcsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAi
YzE4MjkwNDMtMThkZC00Y2MxLTgwOTEtNDE5ODEzNDlmNGUzIiwKKwkJCQkJCQkJCQkiaWQiOiAi
ZGI4ZmNmZTItODlmMy00ZTFjLWJlODItMDU5NDEyMjE4MDczIiwKIAkJCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LApAQCAtNTQxNiw3ICs1NDE2LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjU5ZmVlOWRmLTk5
NDUtNGZkZi1hMTAyLTljMWI5MmQ5MTVjMSIsCisJCQkJCQkJCQkJImlkIjogImY4OTM4MTc4LWM5
MjQtNDAzOC1hMWNiLTVkNmZjODhjMDhkMiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTU0NzQs
NyArNTQ3NCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI5MWZhMzhhYy0zYjA2LTQ4OGEtODky
ZS01OTQ1OGU4OGE0ZGEiLAorCQkJCQkJCQkJCSJpZCI6ICI1ZmYzZmU5My0yNjQ5LTQ4NzQtOWFl
Ni1jZTBiYzI4ODc2ODUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC01NTM0LDcgKzU1MzQsNyBA
QAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiZGNhMGI0MmUtOTA1NC00MzU0LTg3ZTUtZThkMjM2MjE2
MDUwIiwKKwkJCQkJCQkJCQkiaWQiOiAiZmVlMTVkNzEtYWJmYy00NmY2LWFkNjMtYmRmNjdjNDI5
MDVkIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTYzOSw3ICs1NjM5LDcgQEAKIAkJCQkJCQkJ
ewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJImlkIjogIjE0ZWM5MjU0LTVhNDAtNGM4Ni05YTdmLTcyZjQzYTM1YTc5YiIsCisJCQkJ
CQkJCQkJImlkIjogIjlmNzM5ODMyLTNlOTAtNGVmYy05NmNmLTI4ODlmMDhhZjcxOCIsCiAJCQkJ
CQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKQEAgLTU3MjIsNyArNTcyMiw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICIxMzI1NzRkYy0zNjg4LTQ3ZTMtOGY1MC0zMjM1ZjE4ODA2ZjciLAorCQkJCQkJCQkJCSJpZCI6
ICIzNTNjZGU0ZS01YzU3LTRkZjctYjY5ZS03ZGFjNWNmNDA4ZTMiLAogCQkJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC01ODI0LDcgKzU4MjQsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIy
ZjIzM2RjZi1kOTM0LTQ0NzktODkwOC1iMTM0OWU2ZWE1NGQiLAorCQkJCQkJCQkJCQkJImlkIjog
Ijg0YTBhNDRjLWZkYWMtNDJlNS1hM2Y4LTdiYmU3ZmMwMWZkOCIsCiAJCQkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTU4NDAsNyArNTg0MCw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogIjI5MzBhODIxLTJjNmUtNDdiOS04OWQ5LTkwZWJlMWNmZjUyYSIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiNjc0OGM1MzctNDI4Ni00OGJiLTlhMTAtN2MxODI4ZDdmNmU4IiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IHBt
Lmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCiAJCQkJCQkJCQkJCQkJImNvbnN0
IHRlc3QxID0gYXZhaWxhYmxlVGVzdHNbT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpWzBdXVsw
XTsiLApAQCAtNTg5MSw3ICs1ODkxLDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAi
MTJmMzYxNmItNzA3ZS00YTcxLThkYjgtODlmYzE5NWMxZmNkIiwKKwkJCQkJCQkJCQkJCSJpZCI6
ICI1NzlmZWIzOS0yNWM1LTQ4MmEtOTVlMS1iZTY4NjExNDQxMTAiLAogCQkJCQkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC01OTI4LDcgKzU5MjgsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJp
ZCI6ICJmMzVmMTUwOS0zODNmLTQ5YWYtYTMwZS00MWUxZGY0ZWZhMDQiLAorCQkJCQkJCQkJCQkJ
ImlkIjogIjIzOTlhOWY2LTA2ODktNDAzNS04ZjAxLTIyYWQ0NzI2MjMyYiIsCiAJCQkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKQEAgLTU5NzQsNyArNTk3NCw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogImIwMTVmMTYxLWUzOTAtNDIyNC05ZjI2LTkyMzk1ZjQ0Yzc3MiIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiNzUxNzc4OTAtYTc3Mi00YmNjLTlkOTQtNmE3ZjQ4NWI2NDdiIiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjAyOCw3ICs2MDI4LDcgQEAKIAkJCQkJCQkJCQl7CiAJ
CQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJCQkiaWQiOiAiZGEzZDBjMTctNmIyYi00ZDYxLWFkMDEtZGJhNzM2NDI1Mzg4IiwKKwkJ
CQkJCQkJCQkJCSJpZCI6ICJlMzVkZTE1MS1mMWQ1LTRjYjQtYjQwMy05NTNiYjdkY2E4N2YiLAog
CQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02MDQ0LDcgKzYwNDQsNyBAQAogCQkJCQkJCQkJ
CXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI3ZGE4MWU4MS1kMzQ0LTQ0NTktYjcwMC0xOWI5M2Q0
OWQzYzkiLAorCQkJCQkJCQkJCQkJImlkIjogIjMwYjI5ODI4LWNkMWMtNDY5YS04NzNjLTc3YTMx
Y2U3YjdmNCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkiY29uc3QgYXZh
aWxhYmxlVGVzdHMgPSBwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKTsiLAogCQkJ
CQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IGF2YWlsYWJsZVRlc3RzW09iamVjdC5rZXlzKGF2YWls
YWJsZVRlc3RzKVswXV1bMF07IiwKQEAgLTYwOTMsNyArNjA5Myw3IEBACiAJCQkJCQkJCQkJewog
CQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCQkJImlkIjogIjMyOTZjN2JhLTY3YTYtNDA1ZC1hNzhhLTUxZGQ2NDQzMjMwMSIsCisJ
CQkJCQkJCQkJCQkiaWQiOiAiMjljZGQ5MmEtMjhjNC00MjZlLTlmNTMtODU2M2JjM2EzNmU3IiwK
IAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjEzMCw3ICs2MTMwLDcgQEAKIAkJCQkJCQkJ
CQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJCQkiaWQiOiAiNzJkZWI1NWMtNDU4My00NzQxLTljZjgtOTc3MTM3NjJiODk0
IiwKKwkJCQkJCQkJCQkJCSJpZCI6ICI4Y2M2MTY5My1hNzdjLTQ2N2MtYTdkZi01YzIzOWEzYmY1
NjkiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02MTc2LDcgKzYxNzYsNyBAQAogCQkJ
CQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJkNjk1ZjMwMC1hNzczLTQ2NTQtYjM0Ni05NWM1MzZj
YWQxOWUiLAorCQkJCQkJCQkJCQkJImlkIjogImFlMzBlNDdlLWJiM2QtNDQ3OS05NDU1LTM4MjNi
YzJhZGY4OCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTYyMzQsNyArNjIzNCw3IEBA
CiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCSJpZCI6ICI2ODM4OTY1Zi03YTI3LTQ4ZDUtOGMyNy1mNTVkNDc1NjU4
OGYiLAorCQkJCQkJCQkJCSJpZCI6ICJlNjE0ZTk3ZC0xNWU0LTRjOWItOTg3Zi1iZDlmMjcyYmQy
OTUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02MjcxLDcgKzYyNzEsNyBAQAogCQkJCQkJCQl7
CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiYmNjMmM4YzQtOTRjMC00MjI3LWE2MjctM2UwZDViZTJlN2I4IiwKKwkJCQkJ
CQkJCQkiaWQiOiAiZTcyYTczODctYmQ0Mi00MjIxLWJlMmEtMjFiY2E3MDJkMWZlIiwKIAkJCQkJ
CQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLApAQCAtNjMwOCw3ICs2MzA4LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjog
IjdiMzcwNzIzLTA1MDYtNGI1ZS05NDFhLWYzMWE2MjhhMjlmNiIsCisJCQkJCQkJCQkJImlkIjog
ImRiY2Q3MjJiLTQ4MGEtNDU0NC04MDdhLTZmN2Q2ZWRjYjQ0MSIsCiAJCQkJCQkJCQkJImV4ZWMi
OiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKQEAgLTYzNTYsNyArNjM1Niw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJiNTI0Mzk3OS1i
NjNhLTRiYmYtYmQ1MS0xNTI5ZGExZTFmNmQiLAorCQkJCQkJCQkJCSJpZCI6ICI5ZTMwMjYxMC1j
N2E3LTRkZTAtOTg5YS05OTAzZTc3NDk5ZWIiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02MzY4
LDcgKzYzNjgsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3Qi
LAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiODFmM2RhMjktOGEwYy00
NDAzLTkyOWQtODY1OTBiMDFlZjJmIiwKKwkJCQkJCQkJCQkiaWQiOiAiOWQ3OWMyMzMtZTNhMy00
OTcyLWFmNzYtYWEzZGZhMmFkZTRiIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJ
IiIKIAkJCQkJCQkJCQldLApAQCAtNjQwNCw3ICs2NDA0LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlk
IjogIjAxNjhlYTNmLTliZjctNGVhNy1hM2FkLTc0NWMyNzA0ZDk3ZSIsCisJCQkJCQkJCQkJImlk
IjogIjBhNDNkYWNkLTgxMDYtNDE0Yy1iOWI0LTc1MGMyYTAzNzVhNCIsCiAJCQkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKQEAgLTY0MjEsNyArNjQyMSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4i
OiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJl
NGVmZGFjOS0yZDAwLTQ4NTMtYjE0NS0xOGE2ZDQ0ZmYxMzkiLAorCQkJCQkJCQkJCSJpZCI6ICI0
YjI5ZTY1MS00N2U1LTQ4YWUtYWE1ZC1iMDRiNjJlNDdlNTQiLAogCQkJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJCQkiIgogCQkJCQkJCQkJCV0sCkBAIC02NDY3LDcgKzY0NjcsNyBAQAogCQkJ
CQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJImlkIjogImU2ODVhOTg5LThlZjctNGU4Zi1hM2M3LWI1NzljNjY0MzBmOSIsCisJCQkJCQkJ
CSJpZCI6ICJkMGVkZWRkZS00NGEwLTQ4ZjMtYmMyMS1lYWIzMzAyYjdiNGQiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC02NDkyLDcgKzY0OTIsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjg1MTczNjBiLTJl
NjYtNGNhOS05MzM5LTAxNzYyMmMzOTg4OCIsCisJCQkJCQkJCSJpZCI6ICJlZjFkMTgxYy0xMGI4
LTRiZGQtOWI1Yy1mMTRkNmQ5Y2EwNDYiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJ2
YXIgYXV0b21hdGljVGltZW91dCA9IDEyMDAwMDsiLAogCQkJCQkJCQkJInZhciBtYW51YWxUaW1l
b3V0ID0gMTAwMDAwMDsiLApAQCAtNjU0Miw3ICs2NTQyLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI0ZTg1
ZWNhZi00MzY0LTQ2ODEtYWI4YS0yMjFkNDA2ODFjNDQiLAorCQkJCQkJCQkiaWQiOiAiZTRlZDgz
OGUtMDJlMy00ZmU3LTlmMjctYjlhZWQ2ZDcyZDAyIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjU4Niw3
ICs2NTg2LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJz
Y3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICJhNjIyMTU2MC05ZWJhLTRmYjQtYTdjYi1hMTU3MGEz
NzQyNWQiLAorCQkJCQkJCQkiaWQiOiAiNDBiNWExMzUtYTgzOS00ZmZjLTk4ZTUtNmQ4OTIzZDUz
NzQzIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjYzOSw3ICs2NjM5LDcgQEAKIAkJCQkJCXsKIAkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI3
N2QxNDU2Ny00NjAwLTQ0ZmQtOThlNC05OWUxMTNkYTY3ODEiLAorCQkJCQkJCQkiaWQiOiAiMzI5
NTM2NDAtM2IxMy00ZGYwLThhZjItMzY1NDRlYmZlNTllIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwK
IAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjY4
NSw3ICs2Njg1LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI1NWI0ODZkYS1jNWFlLTQ5ZDQtYjExYS0yNDcz
ODcyNjdjOWEiLAorCQkJCQkJCQkiaWQiOiAiNzg0NzM0ZDItNjFkYi00ZmYzLWIwNjMtYmE5ZmMw
NzE3NmQzIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjczOCw3ICs2NzM4LDcgQEAKIAkJCQkJCXsKIAkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6
ICI5NTMwMDJlYy1kOGRmLTQ3N2EtYTBkYy1mNGU0YTJlZmQwMzEiLAorCQkJCQkJCQkiaWQiOiAi
NzVhMmJiYzUtNDdhYS00NzA4LWI3ODMtMmM1ZTM2ZjU5ZTFhIiwKIAkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAt
Njc3OSw2NDAgKzY3NzksNiBAQAogCQkJXSwKIAkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6
IHt9CiAJCX0sCi0JCXsKLQkJCSJuYW1lIjogIkRldmljZXMgQVBJIiwKLQkJCSJpdGVtIjogWwot
CQkJCXsKLQkJCQkJIm5hbWUiOiAiY3JlYXRlIiwKLQkJCQkJIml0ZW0iOiBbCi0JCQkJCQl7Ci0J
CQkJCQkJIm5hbWUiOiAiQ3JlYXRlIGRldmljZSIsCi0JCQkJCQkJImV2ZW50IjogWwotCQkJCQkJ
CQl7Ci0JCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJ
CQkJCQkJCQkiaWQiOiAiMjg2NDI2ZWMtYzM5NC00OGE0LWE5MGYtYzZkZDgwYzdiZWYxIiwKLQkJ
CQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdWNjZXNzZnVsIFBPU1Qg
cmVxdWVzdFwiLCBmdW5jdGlvbiAoKSB7IiwKLQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocG0u
cmVzcG9uc2UuY29kZSkudG8uYmUub25lT2YoWzIwMCwyMDEsMjAyXSk7IiwKLQkJCQkJCQkJCQkJ
In0pOyIsCi0JCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCi0JCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkicG0udGVzdCgnU2No
ZW1hIGlzIHZhbGlkJywgZnVuY3Rpb24oKSB7IiwKLQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJl
c3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKLQkJCQkJCQkJCQkJIn0pOyIs
Ci0JCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkicG0udGVzdCgnRGF0YSBpcyB2YWxpZCcsIGZ1
bmN0aW9uKCkgeyIsCi0JCQkJCQkJCQkJCSIgIHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UudG9r
ZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCi0JCQkJCQkJCQkJCSJ9KTsiCi0JCQkJCQkJCQkJ
XSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQl9Ci0JCQkJ
CQkJCX0KLQkJCQkJCQldLAotCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkibWV0aG9kIjog
IlBPU1QiLAotCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvZGV2aWNlcy8iLAotCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCi0JCQkJ
CQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQldLAotCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCi0JCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJImRldmljZXMiLAotCQkJ
CQkJCQkJCSIiCi0JCQkJCQkJCQldCi0JCQkJCQkJCX0KLQkJCQkJCQl9LAotCQkJCQkJCSJyZXNw
b25zZSI6IFtdCi0JCQkJCQl9LAotCQkJCQkJewotCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBX
YWl0IGRldmljZSB0aW1lb3V0IiwKLQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCXsKLQkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCi0JCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJp
ZCI6ICIzYmRiMGY3Yy0xMjYxLTQ2NWUtOWIwMi0wMDcwMDA1ZjBjNDMiLAotCQkJCQkJCQkJCSJl
eGVjIjogWwotCQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJCQkJfQotCQkJCQkJCQl9LAotCQkJCQkJCQl7Ci0JCQkJ
CQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAotCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiYTFjZjU4ODAtN2I4ZS00YmM2LTlkOTItNTk2MzJhNzE5YzU0IiwKLQkJCQkJ
CQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gcGFyc2VJbnQocG0uZW52
aXJvbm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsgNTAwIiwKLQkJCQkJCQkJCQkJIiIs
Ci0JCQkJCQkJCQkJCSJzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1lb3V0KTsiCi0JCQkJ
CQkJCQkJXSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQl9
Ci0JCQkJCQkJCX0KLQkJCQkJCQldLAotCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCi0JCQkJCQkJCSJoZWFkZXIiOiBbXSwKLQkJCQkJCQkJInVybCI6IHsKLQkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
LQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCV0sCi0J
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCi0JCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKLQkJCQkJCQkJCQkiYXBpIiwKLQkJCQkJCQkJCQkiZGV2aWNlcyIs
Ci0JCQkJCQkJCQkJIiIKLQkJCQkJCQkJCV0KLQkJCQkJCQkJfQotCQkJCQkJCX0sCi0JCQkJCQkJ
InJlc3BvbnNlIjogW10KLQkJCQkJCX0KLQkJCQkJXSwKLQkJCQkJInByb3RvY29sUHJvZmlsZUJl
aGF2aW9yIjoge30sCi0JCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKLQkJCQl9LAot
CQkJCXsKLQkJCQkJIm5hbWUiOiAicmVhZCBkZXZpY2UiLAotCQkJCQkiaXRlbSI6IFsKLQkJCQkJ
CXsKLQkJCQkJCQkibmFtZSI6ICJEZXZpY2Ugbm90IGZvdW5kIiwKLQkJCQkJCQkiaXRlbSI6IFsK
LQkJCQkJCQkJewotCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBkZXZpY2UiLAotCQkJCQkJCQkJImV2
ZW50IjogWwotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJhNDQwMWNiYy0wYTNhLTRjMmQt
YjFlZC1lN2Q2ODY3NjE0ZmYiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1bmN0aW9uICgpIHsiLAotCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmVxdWFsKDQwNCk7
IiwKLQkJCQkJCQkJCQkJCQkifSk7IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0sCi0JCQkJCQkJ
CQkJewotCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAotCQkJCQkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjE2NDRmZDcwLWI0YzQtNDIwNy04ZTEyLTY3NzUy
YTk4NDQxNyIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkiIgotCQkJCQkJ
CQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJ
CQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJ
CQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0JCQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJ
CQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzL2ludmFsaWRfdG9rZW4iLAotCQkJCQkJ
CQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJCQkJImhvc3QiOiBbCi0J
CQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCSJwb3J0Ijog
Int7cG9ydH19IiwKLQkJCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJCQkJCQkJCQkie3t3ZWJfcm9v
dH19IiwKLQkJCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCQkJImRldmljZXMiLAotCQkJCQkJ
CQkJCQkJImludmFsaWRfdG9rZW4iCi0JCQkJCQkJCQkJCV0KLQkJCQkJCQkJCQl9Ci0JCQkJCQkJ
CQl9LAotCQkJCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0JCQkJ
CQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCi0JCQkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQotCQkJCQkJfSwKLQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJEZXZpY2Ug
Zm91bmQiLAotCQkJCQkJCSJpdGVtIjogWwotCQkJCQkJCQl7Ci0JCQkJCQkJCQkibmFtZSI6ICJQ
cmVwOiBDcmVhdGUgZGV2aWNlIiwKLQkJCQkJCQkJCSJldmVudCI6IFsKLQkJCQkJCQkJCQl7Ci0J
CQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCi0JCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJCQkiaWQiOiAiYzRmMTQxMzctNWNlZC00NDliLWE4NzItYjdkNTQxZTJmNmFmIiwKLQkJ
CQkJCQkJCQkJCSJleGVjIjogWwotCQkJCQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNw
b25zZS5qc29uKCk7IiwKLQkJCQkJCQkJCQkJCQkidmFyIHRva2VuID0gcmVzcG9uc2UudG9rZW47
IiwKLQkJCQkJCQkJCQkJCQkiIiwKLQkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJkZXZp
Y2VfdG9rZW5cIiwgdG9rZW4pIgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCV0s
Ci0JCQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAotCQkJ
CQkJCQkJCSJoZWFkZXIiOiBbXSwKLQkJCQkJCQkJCQkidXJsIjogewotCQkJCQkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2
aWNlcy8iLAotCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJ
CQkJImhvc3QiOiBbCi0JCQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQkJCV0sCi0JCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKLQkJCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKLQkJCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCQkJImRl
dmljZXMiLAotCQkJCQkJCQkJCQkJIiIKLQkJCQkJCQkJCQkJXQotCQkJCQkJCQkJCX0KLQkJCQkJ
CQkJCX0sCi0JCQkJCQkJCQkicmVzcG9uc2UiOiBbXQotCQkJCQkJCQl9LAotCQkJCQkJCQl7Ci0J
CQkJCQkJCQkibmFtZSI6ICJSZWFkIGRldmljZSIsCi0JCQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJ
CQkJCQkJewotCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCQkJImlkIjogIjYxYTg0MGYxLWQzY2QtNGQ3YS1hNTRmLTMwZGExMjY2
ZTQ4ZiIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN1
Y2Nlc3NmdWwgR0VUIHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCi0JCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QocG0ucmVzcG9uc2UuY29kZSkudG8uYmUub25lT2YoWzIwMF0pOyIsCi0JCQkJ
CQkJCQkJCQkJIn0pOyIsCi0JCQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCQkJInZhciByZXNw
b25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAotCQkJCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJ
CQkJCSJwbS50ZXN0KCdTY2hlbWEgaXMgdmFsaWQnLCBmdW5jdGlvbigpIHsiLAotCQkJCQkJCQkJ
CQkJCSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIs
Ci0JCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwi
dXNlcl9hZ2VudFwiKTsiLAotCQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8u
aGF2ZS5wcm9wZXJ0eShcImxhc3RfYWN0aXZlXCIpOyIsCi0JCQkJCQkJCQkJCQkJIiAgcG0uZXhw
ZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAotCQkJCQkJCQkJCQkJ
CSJ9KTsiLAotCQkJCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkJCSJwbS50ZXN0KCdEYXRhIGlz
IHZhbGlkJywgZnVuY3Rpb24oKSB7IiwKLQkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9m
IHJlc3BvbnNlLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkJCSIg
IHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdc
Iik7IiwKLQkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9mIHJlc3BvbnNlLmxhc3RfYWN0
aXZlKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdCh0
eXBlb2YgcmVzcG9uc2UubmFtZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKLQkJCQkJCQkJCQkJ
CQkifSk7IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQki
cmVxdWVzdCI6IHsKLQkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0JCQkJCQkJCQkJImhlYWRl
ciI6IFtdLAotCQkJCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzL3t7ZGV2aWNl
X3Rva2VufX0iLAotCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJ
CQkJCQkJImhvc3QiOiBbCi0JCQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQkJCV0sCi0J
CQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKLQkJCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKLQkJCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCQkJ
ImRldmljZXMiLAotCQkJCQkJCQkJCQkJInt7ZGV2aWNlX3Rva2VufX0iCi0JCQkJCQkJCQkJCV0K
LQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQl9LAotCQkJCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJ
CQkJfSwKLQkJCQkJCQkJewotCQkJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IFdhaXQgZGV2aWNl
IHRpbWVvdXQiLAotCQkJCQkJCQkJImV2ZW50IjogWwotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJp
ZCI6ICIxNzExMjMzNi1iOTYyLTQ3MmQtODZhOC03ODcyZmY5ODc2ZDEiLAotCQkJCQkJCQkJCQkJ
ImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJIiIKLQkJCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQkJCX0KLQkJCQkJCQkJCQl9LAotCQkJ
CQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKLQkJCQkJCQkJCQkJ
InNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI5MTI5MzljYy0xNjg1LTRlMWYtYjBhNi02
OTZiMjY0ODcwY2EiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJInZhciB0
aW1lb3V0ID0gcGFyc2VJbnQocG0uZW52aXJvbm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikp
ICsgNTAwIiwKLQkJCQkJCQkJCQkJCQkiIiwKLQkJCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5j
dGlvbiAoKSB7fSwgdGltZW91dCk7IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJ
CV0sCi0JCQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0J
CQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9k
ZXZpY2VzLyIsCi0JCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJ
CQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCQkJXSwKLQkJ
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJ
CQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJCQki
ZGV2aWNlcyIsCi0JCQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJCQldCi0JCQkJCQkJCQkJfQotCQkJ
CQkJCQkJfSwKLQkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCi0JCQkJCQkJCX0KLQkJCQkJCQldLAot
CQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAotCQkJCQkJCSJfcG9zdG1hbl9p
c1N1YkZvbGRlciI6IHRydWUKLQkJCQkJCX0sCi0JCQkJCQl7Ci0JCQkJCQkJIm5hbWUiOiAiVGlt
ZWQgb3V0IGRldmljZSIsCi0JCQkJCQkJIml0ZW0iOiBbCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJu
YW1lIjogIlByZXA6IENyZWF0ZSBkZXZpY2UiLAotCQkJCQkJCQkJImV2ZW50IjogWwotCQkJCQkJ
CQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJCQkJCQkJInNjcmlwdCI6
IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJjOTliOTMxOC0xZTUwLTQ3MDItOWQ4MS01M2Q4N2ZhYTEw
ODAiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJInZhciByZXNwb25zZSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLAotCQkJCQkJCQkJCQkJCSJ2YXIgdG9rZW4gPSByZXNwb25z
ZS50b2tlbjsiLAotCQkJCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNl
dChcImRldmljZV90b2tlblwiLCB0b2tlbikiCi0JCQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQkJfQotCQkJ
CQkJCQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9T
VCIsCi0JCQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAot
CQkJCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCQkJ
XSwKLQkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJCQkicGF0aCI6IFsK
LQkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJ
CQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJCQldCi0JCQkJCQkJCQkJ
fQotCQkJCQkJCQkJfSwKLQkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCi0JCQkJCQkJCX0sCi0JCQkJ
CQkJCXsKLQkJCQkJCQkJCSJuYW1lIjogIldhaXQgZGV2aWNlIHRpbWVvdXQiLAotCQkJCQkJCQkJ
ImV2ZW50IjogWwotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJ
CQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI4OTUxN2RjOS0zMWI0LTQw
ZTctODllNC05OWRkNmU3OTJlNmEiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJ
CQkJIiIKLQkJCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCi0JCQkJCQkJCQkJCX0KLQkJCQkJCQkJCQl9LAotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKLQkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
CQkJCSJpZCI6ICJlZDIwYmJmNi00ZjMxLTRkOTEtYTA3Yi03YTBiNGFmY2YxNjEiLAotCQkJCQkJ
CQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gcGFyc2VJbnQocG0u
ZW52aXJvbm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsgNTAwIiwKLQkJCQkJCQkJCQkJ
CQkiIiwKLQkJCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlvbiAoKSB7fSwgdGltZW91dCk7
IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
LQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicmVxdWVz
dCI6IHsKLQkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0JCQkJCQkJCQkJImhlYWRlciI6IFtd
LAotCQkJCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAotCQkJCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAotCQkJCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJ
CQkiIgotCQkJCQkJCQkJCQldCi0JCQkJCQkJCQkJfQotCQkJCQkJCQkJfSwKLQkJCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCi0JCQkJCQkJCX0sCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJuYW1lIjogIlJl
YWQgZGV2aWNlIiwKLQkJCQkJCQkJCSJldmVudCI6IFsKLQkJCQkJCQkJCQl7Ci0JCQkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCi0JCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQki
aWQiOiAiN2I3NDk2ZjUtMmZkYy00NzBjLWIzOTQtMmE1YWU3ZDI5ZGEyIiwKLQkJCQkJCQkJCQkJ
CSJleGVjIjogWwotCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3VjY2Vzc2Z1bCBHRVQgcmVxdWVz
dFwiLCBmdW5jdGlvbiAoKSB7IiwKLQkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNw
b25zZS5jb2RlKS50by5lcXVhbCg0MDQpOyIsCi0JCQkJCQkJCQkJCQkJIn0pOyIKLQkJCQkJCQkJ
CQkJCV0sCi0JCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQkJ
CX0KLQkJCQkJCQkJCQl9LAotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVy
ZXF1ZXN0IiwKLQkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIxODA3
ZjE1Mi03ZWY0LTQyNzctOWRiNi0xYmZmNTNkNmNjOGIiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBb
Ci0JCQkJCQkJCQkJCQkJIiIKLQkJCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQkJCX0KLQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQldLAot
CQkJCQkJCQkJInJlcXVlc3QiOiB7Ci0JCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAotCQkJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKLQkJCQkJCQkJCQkidXJsIjogewotCQkJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNl
cy97e2RldmljZV90b2tlbn19IiwKLQkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCi0JCQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJCQkJInt7aG9zdH19IgotCQkJCQkJ
CQkJCQldLAotCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCi0JCQkJCQkJCQkJCSJwYXRo
IjogWwotCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0JCQkJCQkJCQkJCQkiYXBpIiwKLQkJ
CQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJCQkJCSJ7e2RldmljZV90b2tlbn19IgotCQkJ
CQkJCQkJCQldCi0JCQkJCQkJCQkJfQotCQkJCQkJCQkJfSwKLQkJCQkJCQkJCSJyZXNwb25zZSI6
IFtdCi0JCQkJCQkJCX0KLQkJCQkJCQldLAotCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlv
ciI6IHt9LAotCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKLQkJCQkJCX0KLQkJ
CQkJXSwKLQkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCi0JCQkJCSJfcG9zdG1h
bl9pc1N1YkZvbGRlciI6IHRydWUKLQkJCQl9LAotCQkJCXsKLQkJCQkJIm5hbWUiOiAicmVhZCBk
ZXZpY2VzIiwKLQkJCQkJIml0ZW0iOiBbCi0JCQkJCQl7Ci0JCQkJCQkJIm5hbWUiOiAiUHJlcDog
Q3JlYXRlIGRldmljZSBBIiwKLQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCXsKLQkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCi0JCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICJhNzgwM2M1Yy1mMzcxLTRhZTAtOGIwOC0xYzA2OTk1YzliNjAiLAotCQkJCQkJCQkJCSJleGVj
IjogWwotCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCi0J
CQkJCQkJCQkJCSJ2YXIgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAotCQkJCQkJCQkJCQkiIiwK
LQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZGV2aWNlX3Rva2VuX2FcIiwgdG9rZW4pIgot
CQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJ
CQkJfQotCQkJCQkJCQl9Ci0JCQkJCQkJXSwKLQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKLQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJCQkidXJsIjog
ewotCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dl
Yl9yb290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29s
fX0iLAotCQkJCQkJCQkJImhvc3QiOiBbCi0JCQkJCQkJCQkJInt7aG9zdH19IgotCQkJCQkJCQkJ
XSwKLQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKLQkJCQkJCQkJCSJwYXRoIjogWwotCQkJ
CQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCSJkZXZp
Y2VzIiwKLQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJXQotCQkJCQkJCQl9Ci0JCQkJCQkJfSwKLQkJ
CQkJCQkicmVzcG9uc2UiOiBbXQotCQkJCQkJfSwKLQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJQ
cmVwOiBDcmVhdGUgZGV2aWNlIEIiLAotCQkJCQkJCSJldmVudCI6IFsKLQkJCQkJCQkJewotCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJ
ImlkIjogIjAyNDUwOTAzLWFlZjktNGVlNi05ZDQ4LTk0YmE5YjVmZDU0YyIsCi0JCQkJCQkJCQkJ
ImV4ZWMiOiBbCi0JCQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7
IiwKLQkJCQkJCQkJCQkJInZhciB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCi0JCQkJCQkJCQkJ
CSIiLAotCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJkZXZpY2VfdG9rZW5fYlwiLCB0b2tl
bikiCi0JCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0J
CQkJCQkJCQl9Ci0JCQkJCQkJCX0KLQkJCQkJCQldLAotCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJ
CQkJCQkibWV0aG9kIjogIlBPU1QiLAotCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCSJ1
cmwiOiB7Ci0JCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAotCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCi0JCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJ
CQkJCQldLAotCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJInBhdGgiOiBb
Ci0JCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0JCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJ
ImRldmljZXMiLAotCQkJCQkJCQkJCSIiCi0JCQkJCQkJCQldCi0JCQkJCQkJCX0KLQkJCQkJCQl9
LAotCQkJCQkJCSJyZXNwb25zZSI6IFtdCi0JCQkJCQl9LAotCQkJCQkJewotCQkJCQkJCSJuYW1l
IjogIlJlYWQgZGV2aWNlcyIsCi0JCQkJCQkJImV2ZW50IjogWwotCQkJCQkJCQl7Ci0JCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQi
OiAiMTYxMjQxN2ItYmVkOC00OGQ1LWE2YTMtMzlkMGQwZmU2OTMyIiwKLQkJCQkJCQkJCQkiZXhl
YyI6IFsKLQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1
bmN0aW9uICgpIHsiLAotCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25zZS5jb2Rl
KS50by5iZS5vbmVPZihbMjAwXSk7IiwKLQkJCQkJCQkJCQkJIn0pOyIsCi0JCQkJCQkJCQkJCSIi
LAotCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCi0JCQkJ
CQkJCQkJCSIiLAotCQkJCQkJCQkJCQkicG0udGVzdCgnU2NoZW1hIGlzIHZhbGlkJywgZnVuY3Rp
b24oKSB7IiwKLQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5iZS5pbnN0YW5j
ZW9mKEFycmF5KTsiLAotCQkJCQkJCQkJCQkiICByZXNwb25zZS5mb3JFYWNoKGVsZW1lbnQgPT4g
eyIsCi0JCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChlbGVtZW50KS50by5oYXZlLnByb3BlcnR5KFwi
dG9rZW5cIik7IiwKLQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJv
cGVydHkoXCJ1c2VyX2FnZW50XCIpOyIsCi0JCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChlbGVtZW50
KS50by5oYXZlLnByb3BlcnR5KFwibGFzdF9hY3RpdmVcIik7IiwKLQkJCQkJCQkJCQkJIiAgcG0u
ZXhwZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIsCi0JCQkJCQkJCQkJ
CSIgIH0pIiwKLQkJCQkJCQkJCQkJIn0pOyIsCi0JCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQki
cG0udGVzdCgnRGF0YSBpcyB2YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCi0JCQkJCQkJCQkJCSIgIHBt
LmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5sZW5ndGhPZigyKTsiLAotCQkJCQkJCQkJCQkiICB2
YXIgZGV2aWNlc19sZWZ0ID0gWyIsCi0JCQkJCQkJCQkJCSIgICAgICBwbS5nbG9iYWxzLmdldChc
ImRldmljZV90b2tlbl9hXCIpLCAiLAotCQkJCQkJCQkJCQkiICAgICAgcG0uZ2xvYmFscy5nZXQo
XCJkZXZpY2VfdG9rZW5fYlwiKSIsCi0JCQkJCQkJCQkJCSIgICAgXSIsCi0JCQkJCQkJCQkJCSIg
IHJlc3BvbnNlLmZvckVhY2goZWxlbWVudCA9PiB7IiwKLQkJCQkJCQkJCQkJIiAgICAgIHBtLmV4
cGVjdCh0eXBlb2YgZWxlbWVudC50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKLQkJCQkJ
CQkJCQkJIiAgICAgIHBtLmV4cGVjdCh0eXBlb2YgZWxlbWVudC51c2VyX2FnZW50KS50by5lcXVh
bChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkiICAgICAgcG0uZXhwZWN0KHR5cGVvZiBlbGVt
ZW50Lmxhc3RfYWN0aXZlKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkiICAg
ICAgcG0uZXhwZWN0KHR5cGVvZiBlbGVtZW50Lm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIs
Ci0JCQkJCQkJCQkJCSIgICAgICBwbS5leHBlY3QoZGV2aWNlc19sZWZ0KS50by5pbmNsdWRlKGVs
ZW1lbnQudG9rZW4pOyIsCi0JCQkJCQkJCQkJCSIgICAgICBkZXZpY2VzX2xlZnQuc3BsaWNlKGRl
dmljZXNfbGVmdC5pbmRleE9mKGVsZW1lbnQudG9rZW4pLCAxKTsiLAotCQkJCQkJCQkJCQkiICB9
KSIsCi0JCQkJCQkJCQkJCSJ9KTsiCi0JCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQl9Ci0JCQkJCQkJCX0KLQkJCQkJCQldLAotCQkJCQkJ
CSJyZXF1ZXN0IjogewotCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0JCQkJCQkJCSJoZWFkZXIi
OiBbXSwKLQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCi0J
CQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKLQkJCQkJCQkJCQki
YXBpIiwKLQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJIiIKLQkJCQkJCQkJCV0KLQkJ
CQkJCQkJfQotCQkJCQkJCX0sCi0JCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJCX0sCi0JCQkJ
CQl7Ci0JCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IFdhaXQgZGV2aWNlIHRpbWVvdXQiLAotCQkJ
CQkJCSJldmVudCI6IFsKLQkJCQkJCQkJewotCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjliN2ZmNjIzLThhYWMtNDZkMS05
YzU2LTFjZWI4YWNjMmRlNiIsCi0JCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCSIiCi0J
CQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJ
CQl9Ci0JCQkJCQkJCX0sCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVz
dCIsCi0JCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJjMGZiZjc0Mi1mNzVl
LTRmM2ItYTU3Ni03NWM5ZDVlMGY3MmQiLAotCQkJCQkJCQkJCSJleGVjIjogWwotCQkJCQkJCQkJ
CQkidmFyIHRpbWVvdXQgPSBwYXJzZUludChwbS5lbnZpcm9ubWVudC5nZXQoXCJkZXZpY2VfdGlt
ZW91dFwiKSkgKyA1MDAiLAotCQkJCQkJCQkJCQkiIiwKLQkJCQkJCQkJCQkJInNldFRpbWVvdXQo
ZnVuY3Rpb24gKCkge30sIHRpbWVvdXQpOyIKLQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCX0KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0J
CQkJCQkJInJlcXVlc3QiOiB7Ci0JCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKLQkJCQkJCQkJImhl
YWRlciI6IFtdLAotCQkJCQkJCQkidXJsIjogewotCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJCQkJImhvc3QiOiBbCi0JCQkJ
CQkJCQkJInt7aG9zdH19IgotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKLQkJCQkJCQkJCSJwYXRoIjogWwotCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJ
CQkJCSJhcGkiLAotCQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJ
XQotCQkJCQkJCQl9Ci0JCQkJCQkJfSwKLQkJCQkJCQkicmVzcG9uc2UiOiBbXQotCQkJCQkJfQot
CQkJCQldLAotCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKLQkJCQkJIl9wb3N0
bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQotCQkJCX0KLQkJCV0sCi0JCQkicHJvdG9jb2xQcm9maWxl
QmVoYXZpb3IiOiB7fQotCQl9LAogCQl7CiAJCQkibmFtZSI6ICJTZXNzaW9ucyBBUEkiLAogCQkJ
Iml0ZW0iOiBbCkBAIC03NDI4LDcgKzY3OTQsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJp
ZCI6ICJmYzE1ZDMyOS1kMTMyLTRhYmYtOTBlNC1mNTQ5ZWVlOTliNjAiLAorCQkJCQkJCQkJCQkJ
ImlkIjogIjJmOTA3NmJiLTU5YWEtNDNmOS05OTJkLTQ5NzIzYzA0ODdlNyIsCiAJCQkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKQEAgLTc0OTksNyArNjg2NSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogImViYjE5MmNlLTQ4ZTUtNGFhYy1iOTlkLTY4ODk0Mzc4ZWFjOCIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiMzI3OWUxNDUtZDM3Mi00ZmViLWE0OTYtOGUzY2NlNzNlODM5IiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNzU1OCw3ICs2OTI0LDcgQEAKIAkJCQkJCQkJCQl7CiAJ
CQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJCQkiaWQiOiAiMTU5OTc2Y2QtZGUwMC00Zjg4LThmOWYtNDdkYjEzY2E0YTMwIiwKKwkJ
CQkJCQkJCQkJCSJpZCI6ICIyZjUyYjA0Ni00OWQ2LTRhZTMtYmQ4NC0xMTFjNWY5ZTUzNGEiLAog
CQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC03NjEzLDcgKzY5NzksNyBAQAogCQkJCQkJCQkJ
CXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJCQkJCSJpZCI6ICI1MDU4YjA3Yi01ZTU1LTQ0ZTAtYWQ4OC01YzdiNTg4NGZhM2Mi
LAorCQkJCQkJCQkJCQkJImlkIjogIjg2OTY2ZDc3LTQ1MTktNDE1ZC1iODkzLTVhZjZlMThhMGFj
ZiIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTc2NjMsNyArNzAyOSw3IEBACiAJCQkJ
CQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCQkJImlkIjogIjYyYThjODUzLWJmMGItNDdiMC05Y2VlLTc2MTFkMmI0
OGNkZSIsCisJCQkJCQkJCQkJCQkiaWQiOiAiYjY3ZDM0NmEtYjJjOS00ZDY3LWFmN2ItMjdkMmY1
Yjg4NTRmIiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNzc0Niw3ICs3MTEyLDcgQEAK
IAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJCSJz
Y3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjg3ODQyMGMzLTU3NWEtNDE5NC05YTcyLWNlYmUw
NzgyMzY3NCIsCisJCQkJCQkJCQkJImlkIjogImE0YWQzYTQ3LWU2NGEtNDkxYi05MWNmLTU3YjM2
YThlYjg4ZiIsCiAJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJIiIKQEAgLTc3NTYsNyArNzEyMiw3IEBACiAJCQkJCQkJ
CXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCSJpZCI6ICI2NjcyMDMwZi01YThhLTRiZWEtOTc5Mi1jMjRiOTgwMzkyZTkiLAorCQkJ
CQkJCQkJCSJpZCI6ICJlZTRhZDk2NC1lNjZlLTQ1ZmQtOWM3YS03ODk1ZmNiYzllMTAiLAogCQkJ
CQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkJCSIiCkBAIC03Nzc2LDcgKzcxNDIsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJ
CSJpZCI6ICI1MDRiNzZjYS02ODcwLTQ0M2MtOGMzMy0wY2NjYzUyY2RkYWUiLAorCQkJCQkJCQkJ
CQkJImlkIjogIjFhOTU1MTU0LWQwYzItNGQyMC04NGE3LTQ0NWRhOGVjYzcyMiIsCiAJCQkJCQkJ
CQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIw
MFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKQEAgLTc4NDcsNyArNzIxMyw3IEBACiAJCQkJCQkJCQkJewogCQkJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCQkJImlkIjogImZhOTU2ODcxLTUwM2EtNDIxYy05ODIyLTRlMmExMWUxY2YxYyIsCisJCQkJ
CQkJCQkJCQkiaWQiOiAiMzg5NzNiZjAtMDczNy00NjlkLWIyZWQtODE5YzFhY2M2Y2YzIiwKIAkJ
CQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNzg3Miw3ICs3MjM4LDcgQEAKIAkJCQkJCQkJCQl7
CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiMjEzYmRmNTktOWY5OC00YjVlLWJhY2MtYWUzY2IzMWFl
MjZhIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICJjYzU0ZWI3ZC0yMDlmLTQ2NTktODExOS1hZGUxMDBi
YjM3ZWYiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInZhciBhdXRvbWF0
aWNUaW1lb3V0ID0gMTIwMDAwOyIsCiAJCQkJCQkJCQkJCQkJInZhciBtYW51YWxUaW1lb3V0ID0g
MTAwMDAwMDsiLApAQCAtNzkyMiw3ICs3Mjg4LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQki
aWQiOiAiMjY1NmIyMDktNTdkOC00ZjM5LThkYjEtY2UzMzc2ZThhNTMyIiwKKwkJCQkJCQkJCQkJ
CSJpZCI6ICJkYmUxNmE2Ny03MGJhLTQ5ODktYWI1MC1iYWZjOGFjYWI4NGMiLAogCQkJCQkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZl
LnN0YXR1cygyMDApOyIsCkBAIC03OTkwLDcgKzczNTYsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
CQkJCSJpZCI6ICIyYTc1MjRlNS03Mzk0LTQxNzctODI2Ny00MmQ1YjMyYmM0NzQiLAorCQkJCQkJ
CQkJCQkJImlkIjogImMxNTE0YzNlLWZkOTYtNGU5Yy1iNzk5LTZmZDA0MTg1YmI2MyIsCiAJCQkJ
CQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTgwMzksNyArNzQwNSw3IEBACiAJCQkJCQkJCQkJewog
CQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCQkJImlkIjogIjQ0OGI2YTBjLTEzNWQtNDJlZi04YmMwLWI0YjFjZTRhYjhhMCIsCisJ
CQkJCQkJCQkJCQkiaWQiOiAiZDMxYjEwZWItNGE1OS00ZjkyLTk4YjItNzM3MDdlMzdhMDNiIiwK
IAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtODEzNCw3ICs3NTAwLDcgQEAKIAkJCQkJCQkJ
ewogCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJImlkIjogImExNmVhYzhlLTk2MDktNDMxNC1hYmQ4LWE1YzQ3MDUzN2I1MiIs
CisJCQkJCQkJCQkJImlkIjogImRhZjc1OWRjLWVhMzYtNGQ4Zi1hNTI0LTRkYWUwY2M4NDFkYyIs
CiAJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCQkJIiIKQEAgLTgxNDQsNyArNzUxMCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJp
ZCI6ICI1ZGY1NTk1Ny0wYmJiLTRkYjgtOWFiOS1kOGE3MGNlMzdiYzUiLAorCQkJCQkJCQkJCSJp
ZCI6ICJiNTBmNGU2Yi0yM2I2LTQxZTEtOWJhYi1jZDJjYTkwYjdmNDMiLAogCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJ
CSIiCkBAIC04MTY0LDcgKzc1MzAsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI2
YzRhYTcwMi1hZTNhLTQ0YTQtYjg4Ni1iM2U4ODNkZTRkMzIiLAorCQkJCQkJCQkJCQkJImlkIjog
IjUzMTgzYzQ0LTMxZDEtNDhkZS04OWFlLTE3OTUwZWY0NzM2MyIsCiAJCQkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTgxODksNyArNzU1NSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogIjg5MzY3MmE5LWM2NjYtNDc5MC1iNmE3LWUwY2U3YWZkYTQ4MiIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiNmRhZGJhN2UtNTM1Mi00YjljLTk2MDEtZjBlYjQyOTM0MWNlIiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJ2YXIgZXhwaXJhdGlvbkRhdGUgPSBEYXRl
Lm5vdygpICsgMzAwMDsiLAogCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImV4cGlyYXRp
b25fZGF0ZVwiLCBleHBpcmF0aW9uRGF0ZSk7IgpAQCAtODIzNCw3ICs3NjAwLDcgQEAKIAkJCQkJ
CQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiZjZiMzFkMzctYTk4Yi00MTEwLTgwYTItZjc4ZGI2ZjJl
MjZmIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICJmMmJjMTZkNi0wOTliLTQ4N2MtYTdhNi1kNDhkMTk4
ZmY4MjYiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJT
dGF0dXMgY29kZSBpcyA0MDRcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cyg0MDQpOyIsCkBAIC04MjQ2LDcgKzc2MTIsNyBAQAog
CQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJkNDFjZjMxYi1jOGU4LTQ1NWYtYWE2
OS01MjdhZjVmYmQ2NmIiLAorCQkJCQkJCQkJCQkJImlkIjogIjU3Zjg1OGNkLWI4ODItNGZjMC05
MTcwLTYwMDc4Y2ZlNWFmOCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQki
dmFyIGV4cGlyYXRpb25EYXRlID0gcG0uZ2xvYmFscy5nZXQoXCJleHBpcmF0aW9uX2RhdGVcIik7
IiwKIAkJCQkJCQkJCQkJCQkiIiwKQEAgLTgzMTksNyArNzY4NSw3IEBACiAJCQkJCQkJCXsKIAkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CSJpZCI6ICIwOTBjYTFiYy1jYmVlLTRkN2ItYjE5Zi1mYzFmNGJiODc5YTAiLAorCQkJCQkJCQkJ
CSJpZCI6ICJiNTAzMTNlNy03ZmQyLTQzNGItYTg2ZS03ZmY1ZmIwYWYxZDgiLAogCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC04Mzc4LDcgKzc3NDQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMjMy
YWZmMTEtM2NkYy00OTk0LWFmNDItNWUzNTc0NTgzODE0IiwKKwkJCQkJCQkJCQkiaWQiOiAiZWY5
ZTJkNjgtNmIzNi00Y2U3LThkYmEtMjdlYmM3MTUzMDE1IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApA
QCAtODQ5NCw3ICs3ODYwLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjczY2JlZWIwLTAxOWIt
NDMzMS1iMGVjLWVmOWQzZjFlMDQ5NCIsCisJCQkJCQkJCQkJImlkIjogIjhjN2JjYjU2LWNkMmEt
NGQ5OS1hZDZlLWFjNGJjNDc2N2RjZSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTg1NTMsNyAr
NzkxOSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJiYTE0MmI1NS0yNDU0LTQ0NzItYmNmOS02
NjliMGJiN2JhYjkiLAorCQkJCQkJCQkJCSJpZCI6ICIwNjM5YjVhMC1kNDE5LTQ2NDItYmFmMS01
YWE0YWVkZjMzYzkiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC04NjM2LDcgKzgwMDIsNyBAQAog
CQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJmNDQzOTU1Zi1iNTdlLTQ4MDEtOGVhYy01NDc1
OTczODE2MTUiLAorCQkJCQkJCQkJCQkJImlkIjogImExZmUxNTgwLTE4MDctNDVkMS05M2JiLWU1
NDU5Njg5NWMwMCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkiY29uc3Qg
cmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKIAkJCQkJCQkJCQkJCQkiIiwKQEAgLTg2
ODcsNyArODA1Myw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjJjYTgwZGVlLWY5
YTUtNGUwYi1iZWFkLTZhYjg3MWQ5ZWRmOCIsCisJCQkJCQkJCQkJCQkiaWQiOiAiOGM2NzIyY2Yt
N2Q1Yy00YjAzLTg0MDQtM2JkZjE3ZTU0M2Q5IiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJ
CQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAogCQkJCQkJ
CQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCkBAIC04NzMxLDcgKzgwOTcs
NyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJmYmY1ZWFmYi0wYWU3LTQxMDUtOGRm
NS01MWJiNTNiMGM1OTUiLAorCQkJCQkJCQkJCQkJImlkIjogIjc0NzhmOGY4LWM4MzgtNGFlMC04
N2VmLTk4ODlhZmMxMDQxZCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQki
Y29uc3QgdG9rZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9rZW5cIik7IiwKIAkJCQkJ
CQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKQEAgLTg4MTks
NyArODE4NSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAog
CQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogImJkZDY0NTk0LWM4NzQt
NGViMi04YjM2LTRjMzdjZWEwZjBjYiIsCisJCQkJCQkJCQkJCQkiaWQiOiAiOWY1OTY4M2EtZGY5
OS00ZTNjLWI0NjEtODVjNjA2MTk2MjE4IiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJ
CQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAogCQkJCQkJCQkJ
CQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCkBAIC04ODYzLDcgKzgyMjksNyBA
QAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJ
InNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI2NzMyYWVkZi1kOTlkLTQxNmYtYjkzZC05
OGJjMDQwNGVmNjEiLAorCQkJCQkJCQkJCQkJImlkIjogIjFjYjcyMDkwLWU5ODktNGY2ZC1iMTlh
LWNkNTczODhiMThkYyIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkiY29u
c3QgdG9rZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9rZW5cIik7IiwKIAkJCQkJCQkJ
CQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKQEAgLTg5NjksNyAr
ODMzNSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjMzMTllNDE3LWRkNTQtNDk1
Zi1hNDUyLTU1MTlkMmE2MTA4MiIsCisJCQkJCQkJCQkJCQkiaWQiOiAiMjY4ZmQxZmEtNGRiYS00
MDFiLTgwNzItODE3N2EwZjI1MGM2IiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAogCQkJCQkJCQkJCQkJ
CSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCkBAIC05MDEzLDcgKzgzNzksNyBAQAog
CQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNj
cmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI2Y2EzNDgwYS0zMjI0LTRiZjgtYTQ2Ni1mZGNi
MDYzMzg3OTUiLAorCQkJCQkJCQkJCQkJImlkIjogIjkzZGI0NzQxLWI1NzQtNDQzMy04ZGJkLTAw
ODYxMTMxMTQ0MiIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkiY29uc3Qg
dG9rZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9rZW5cIik7IiwKIAkJCQkJCQkJCQkJ
CQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKQEAgLTkxMjksNyArODQ5
NSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI4YjViNGMyMy1kYjBhLTRiODEtOTM0OS1jZThl
YWQ2NGJiN2EiLAorCQkJCQkJCQkJCSJpZCI6ICJkNjk1YjM3MS1jNzQyLTRlYWYtOTE3OS04NTJi
MDQ0NjBlY2YiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdl
NmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCww
IEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRp
cmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvdGVzdHMvY29uZmlnLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvY29uZmlnLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyZWQx
YWFlOThkZmUzMjcwMmMxMDlhYmM4OTU1NWZlNjk5YjdkNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
cy9jb25maWcuanNvbgpAQCAtMCwwICsxLDYgQEAKK3sKKyAgInBvcnRzIjogeworICAgICJodHRw
IjogWzgwODAsICJhdXRvIl0sCisgICAgImh0dHBzIjogWzg0ODNdCisgIH0KK30KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS90ZXN0cy90ZXN0X3dhdmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvdGVzdF93YXZlLnB5CmluZGV4IDYzYzhhNjYwYTMz
NWU1YjQ4MTAyYTU0NzBlOWZiN2RkZWYyNGY1ZDMuLmVmM2Q4MGQxMGQ0ZWZmOWIwNjAxNzdlNzQ4
NzEyMTYzYzYzNjc4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy90ZXN0X3dhdmUucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RzL3Rl
c3Rfd2F2ZS5weQpAQCAtNywxNSArNywxMyBAQCBpbXBvcnQgdGltZQogZnJvbSB1cmxsaWIucmVx
dWVzdCBpbXBvcnQgdXJsb3BlbgogZnJvbSB1cmxsaWIuZXJyb3IgaW1wb3J0IFVSTEVycm9yCiAK
LWltcG9ydCBweXRlc3QKLQogZnJvbSB0b29scy53cHQgaW1wb3J0IHdwdAogCi1kZWYgaXNfcG9y
dF84MDAwX2luX3VzZSgpOgorZGVmIGlzX3BvcnRfODA4MF9pbl91c2UoKToKICAgICBzID0gc29j
a2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgIHRyeToK
LSAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgODAwMCkpCi0gICAgZXhjZXB0IE9TRXJyb3Ig
YXMgZToKKyAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgODA4MCkpCisgICAgZXhjZXB0IHNv
Y2tldC5lcnJvciBhcyBlOgogICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVBRERSSU5VU0U6
CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICBlbHNlOgpAQCAtMjUsMjUgKzIzLDI4
IEBAIGRlZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6CiAgICAgcmV0dXJuIEZhbHNlCiAKIGRlZiB0
ZXN0X3NlcnZlKCk6Ci0gICAgaWYgaXNfcG9ydF84MDAwX2luX3VzZSgpOgotICAgICAgICBweXRl
c3Quc2tpcCgiV0FWRSBUZXN0IFJ1bm5lciBmYWlsZWQ6IFBvcnQgODAwMCBhbHJlYWR5IGluIHVz
ZS4iKQorICAgIGlmIGlzX3BvcnRfODA4MF9pbl91c2UoKToKKyAgICAgICAgYXNzZXJ0IEZhbHNl
LCAiV0FWRSBUZXN0IFJ1bm5lciBmYWlsZWQ6IFBvcnQgODA4MCBhbHJlYWR5IGluIHVzZS4iCiAK
LSAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJl
cG9fcm9vdCwgIndwdCIpLCAic2VydmUtd2F2ZSJdLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHByZWV4ZWNfZm49b3Muc2V0c2lkKQorICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFtvcy5wYXRo
LmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAid3B0IiksCisgICAgICAgICJzZXJ2ZS13
YXZlIiwKKyAgICAgICAgIi0tY29uZmlnIiwKKyAgICAgICAgb3MucGF0aC5qb2luKHdwdC5sb2Nh
bHBhdGhzLnJlcG9fcm9vdCwgInRvb2xzL3dhdmUvdGVzdHMvY29uZmlnLmpzb24iKV0sCisgICAg
ICAgIHByZWV4ZWNfZm49b3Muc2V0c2lkKQogCiAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQogICAg
IHRyeToKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIGlmIHAucG9sbCgpIGlzIG5v
dCBOb25lOgogICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIldBVkUgVGVzdCBSdW5uZXIg
ZmFpbGVkOiBTZXJ2ZXIgbm90IHJ1bm5pbmcuIgotICAgICAgICAgICAgaWYgdGltZS50aW1lKCkg
LSBzdGFydCA+IDYgKiA2MDoKLSAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJXQVZFIFRl
c3QgUnVubmVyIGZhaWxlZDogU2VydmVyIGRpZCBub3Qgc3RhcnQgcmVzcG9uZGluZyB3aXRoaW4g
Nm0uIgorICAgICAgICAgICAgaWYgdGltZS50aW1lKCkgLSBzdGFydCA+IDYwOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBGYWxzZSwgIldBVkUgVGVzdCBSdW5uZXIgZmFpbGVkOiBTZXJ2ZXIgZGlk
IG5vdCBzdGFydCByZXNwb25kaW5nIHdpdGhpbiA2MHMuIgogICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHJlc3AgPSB1cmxvcGVuKCJodHRwOi8vd2ViLXBsYXRmb3JtLnRlc3Q6ODAw
MC9fd2F2ZS9hcGkvc2Vzc2lvbnMvcHVibGljIikKKyAgICAgICAgICAgICAgICByZXNwID0gdXJs
b3BlbigiaHR0cDovL3dlYi1wbGF0Zm9ybS50ZXN0OjgwODAvX3dhdmUvYXBpL3Nlc3Npb25zL3B1
YmxpYyIpCiAgICAgICAgICAgICAgICAgcHJpbnQocmVzcCkKICAgICAgICAgICAgIGV4Y2VwdCBV
UkxFcnJvcjoKLSAgICAgICAgICAgICAgICBwcmludCgiU2VydmVyIG5vdCByZXNwb25kaW5nLCB3
YWl0aW5nIGFub3RoZXIgMTBzLiIpCi0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMCkKKyAg
ICAgICAgICAgICAgICBwcmludCgiVVJMRXJyb3IiKQorICAgICAgICAgICAgICAgIHRpbWUuc2xl
ZXAoMSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3AuY29k
ZSA9PSAyMDAKICAgICAgICAgICAgICAgICBicmVhawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjZjVkNTU3NTg2NzVlNjZiNTI1YmNkYjk4MWVmNGJkMDMyM2RiYmYyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIExvY2FsLnBvc3Rt
YW5fZW52aXJvbm1lbnQuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0cy5wb3N0
bWFuX2NvbGxlY3Rpb24uanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy90ZXN0X3dhdmUucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3RveC5pbmkKaW5kZXggYjg2ODY4NjQ1MmY4OGExNWUxZTEzOWUw
ZmE4ZTdkMjRlNDI0ODMxOC4uYWRhMWQxYTMzMGUzNGZjZDFhNDc2NzMyNjkyMzEyNGUwODMzZWY3
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3RveC5pbmkKQEAgLTcsNyArNyw3IEBAIHNraXBfbWlz
c2luZ19pbnRlcnByZXRlcnMgPSBGYWxzZQogZGVwcyA9CiAgIC1ye3RveGluaWRpcn0vLi4vcmVx
dWlyZW1lbnRzX3B5dGVzdC50eHQKICAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWly
ZW1lbnRzLnR4dAotICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dAorICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21p
dW0udHh0CiAgIC1ye3RveGluaWRpcn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94
LnR4dAogCiBjb21tYW5kcyA9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvX19p
bml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxz
L19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS91dGlscy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMg
ZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3Ig
bW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvZGVz
ZXJpYWxpemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3V0aWxzL2Rlc2VyaWFsaXplci5weQppbmRleCAzNjUwOGJmMzY1NTdlZjk2
MGJiY2VjNWZjMjJjOGZlOTdiNzIxYzM2Li5hZTc5NGZiN2U4OWIyMjJlZDE2YzQyNmE2NDIyZTUz
ZmM4ZjgwYjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvZGVzZXJpYWxpemVyLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy9kZXNl
cmlhbGl6ZXIucHkKQEAgLTEsNCArMSw5IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCiBmcm9t
IC4uZGF0YS5zZXNzaW9uIGltcG9ydCBTZXNzaW9uLCBVTktOT1dOCitmcm9tIGRhdGV0aW1lIGlt
cG9ydCBkYXRldGltZQoraW1wb3J0IGRhdGV1dGlsLnBhcnNlcgorZnJvbSBkYXRldXRpbC50eiBp
bXBvcnQgdHp1dGMKIAogCiBkZWYgZGVzZXJpYWxpemVfc2Vzc2lvbnMoc2Vzc2lvbl9kaWN0cyk6
CkBAIC0xOSw5ICsyNCw5IEBAIGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb25fZGljdCk6
CiAgICAgaWYgInBhdGgiIGluIHNlc3Npb25fZGljdDoKICAgICAgICAgdGVzdF9wYXRocyA9IHNl
c3Npb25fZGljdFsicGF0aCJdLnNwbGl0KCIsICIpCiAgICAgICAgIHRlc3RzWyJpbmNsdWRlIl0g
PSB0ZXN0c1siaW5jbHVkZSJdICsgdGVzdF9wYXRocwotICAgIHR5cGVzID0gW10KKyAgICB0ZXN0
X3R5cGVzID0gW10KICAgICBpZiAidHlwZXMiIGluIHNlc3Npb25fZGljdDoKLSAgICAgICAgdHlw
ZXMgPSBzZXNzaW9uX2RpY3RbInR5cGVzIl0KKyAgICAgICAgdGVzdF90eXBlcyA9IHNlc3Npb25f
ZGljdFsidHlwZXMiXQogICAgIHVzZXJfYWdlbnQgPSAiIgogICAgIGlmICJ1c2VyX2FnZW50IiBp
biBzZXNzaW9uX2RpY3Q6CiAgICAgICAgIHVzZXJfYWdlbnQgPSBzZXNzaW9uX2RpY3RbInVzZXJf
YWdlbnQiXQpAQCAtNDYsMTIgKzUxLDE4IEBAIGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Np
b25fZGljdCk6CiAgICAgbGFzdF9jb21wbGV0ZWRfdGVzdCA9IE5vbmUKICAgICBpZiAibGFzdF9j
b21wbGV0ZWRfdGVzdCIgaW4gc2Vzc2lvbl9kaWN0OgogICAgICAgICBsYXN0X2NvbXBsZXRlZF90
ZXN0ID0gc2Vzc2lvbl9kaWN0WyJsYXN0X2NvbXBsZXRlZF90ZXN0Il0KKyAgICBkYXRlX2NyZWF0
ZWQgPSBOb25lCisgICAgaWYgImRhdGVfY3JlYXRlZCIgaW4gc2Vzc2lvbl9kaWN0OgorICAgICAg
ICBkYXRlX2NyZWF0ZWQgPSBzZXNzaW9uX2RpY3RbImRhdGVfY3JlYXRlZCJdCisgICAgICAgIGRh
dGVfY3JlYXRlZCA9IGlzb190b19taWxsaXMoZGF0ZV9jcmVhdGVkKQogICAgIGRhdGVfc3RhcnRl
ZCA9IE5vbmUKICAgICBpZiAiZGF0ZV9zdGFydGVkIiBpbiBzZXNzaW9uX2RpY3Q6CiAgICAgICAg
IGRhdGVfc3RhcnRlZCA9IHNlc3Npb25fZGljdFsiZGF0ZV9zdGFydGVkIl0KKyAgICAgICAgZGF0
ZV9zdGFydGVkID0gaXNvX3RvX21pbGxpcyhkYXRlX3N0YXJ0ZWQpCiAgICAgZGF0ZV9maW5pc2hl
ZCA9IE5vbmUKICAgICBpZiAiZGF0ZV9maW5pc2hlZCIgaW4gc2Vzc2lvbl9kaWN0OgogICAgICAg
ICBkYXRlX2ZpbmlzaGVkID0gc2Vzc2lvbl9kaWN0WyJkYXRlX2ZpbmlzaGVkIl0KKyAgICAgICAg
ZGF0ZV9maW5pc2hlZCA9IGlzb190b19taWxsaXMoZGF0ZV9maW5pc2hlZCkKICAgICBpc19wdWJs
aWMgPSBGYWxzZQogICAgIGlmICJpc19wdWJsaWMiIGluIHNlc3Npb25fZGljdDoKICAgICAgICAg
aXNfcHVibGljID0gc2Vzc2lvbl9kaWN0WyJpc19wdWJsaWMiXQpAQCAtNjEsMTIgKzcyLDEzIEBA
IGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb25fZGljdCk6CiAgICAgYnJvd3NlciA9IE5v
bmUKICAgICBpZiAiYnJvd3NlciIgaW4gc2Vzc2lvbl9kaWN0OgogICAgICAgICBicm93c2VyID0g
c2Vzc2lvbl9kaWN0WyJicm93c2VyIl0KLSAgICB3ZWJob29rX3VybHMgPSBbXQotICAgIGlmICJ3
ZWJob29rX3VybHMiIGluIHNlc3Npb25fZGljdDoKLSAgICAgICAgd2ViaG9va191cmxzID0gc2Vz
c2lvbl9kaWN0WyJ3ZWJob29rX3VybHMiXQogICAgIGV4cGlyYXRpb25fZGF0ZSA9IE5vbmUKICAg
ICBpZiAiZXhwaXJhdGlvbl9kYXRlIiBpbiBzZXNzaW9uX2RpY3Q6CiAgICAgICAgIGV4cGlyYXRp
b25fZGF0ZSA9IHNlc3Npb25fZGljdFsiZXhwaXJhdGlvbl9kYXRlIl0KKyAgICAgICAgZXhwaXJh
dGlvbl9kYXRlID0gaXNvX3RvX21pbGxpcyhleHBpcmF0aW9uX2RhdGUpCisgICAgdHlwZSA9IE5v
bmUKKyAgICBpZiAidHlwZSIgaW4gc2Vzc2lvbl9kaWN0OgorICAgICAgICB0eXBlID0gc2Vzc2lv
bl9kaWN0WyJ0eXBlIl0KICAgICBtYWxmdW5jdGlvbmluZ190ZXN0cyA9IFtdCiAgICAgaWYgIm1h
bGZ1bmN0aW9uaW5nX3Rlc3RzIiBpbiBzZXNzaW9uX2RpY3Q6CiAgICAgICAgIG1hbGZ1bmN0aW9u
aW5nX3Rlc3RzID0gc2Vzc2lvbl9kaWN0WyJtYWxmdW5jdGlvbmluZ190ZXN0cyJdCkBAIC03NCw3
ICs4Niw3IEBAIGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb25fZGljdCk6CiAgICAgcmV0
dXJuIFNlc3Npb24oCiAgICAgICAgIHRva2VuPXRva2VuLAogICAgICAgICB0ZXN0cz10ZXN0cywK
LSAgICAgICAgdHlwZXM9dHlwZXMsCisgICAgICAgIHRlc3RfdHlwZXM9dGVzdF90eXBlcywKICAg
ICAgICAgdXNlcl9hZ2VudD11c2VyX2FnZW50LAogICAgICAgICBsYWJlbHM9bGFiZWxzLAogICAg
ICAgICB0aW1lb3V0cz10aW1lb3V0cywKQEAgLTgzLDEyICs5NSwyNCBAQCBkZWYgZGVzZXJpYWxp
emVfc2Vzc2lvbihzZXNzaW9uX2RpY3QpOgogICAgICAgICBzdGF0dXM9c3RhdHVzLAogICAgICAg
ICB0ZXN0X3N0YXRlPXRlc3Rfc3RhdGUsCiAgICAgICAgIGxhc3RfY29tcGxldGVkX3Rlc3Q9bGFz
dF9jb21wbGV0ZWRfdGVzdCwKKyAgICAgICAgZGF0ZV9jcmVhdGVkPWRhdGVfY3JlYXRlZCwKICAg
ICAgICAgZGF0ZV9zdGFydGVkPWRhdGVfc3RhcnRlZCwKICAgICAgICAgZGF0ZV9maW5pc2hlZD1k
YXRlX2ZpbmlzaGVkLAogICAgICAgICBpc19wdWJsaWM9aXNfcHVibGljLAogICAgICAgICByZWZl
cmVuY2VfdG9rZW5zPXJlZmVyZW5jZV90b2tlbnMsCiAgICAgICAgIGJyb3dzZXI9YnJvd3NlciwK
LSAgICAgICAgd2ViaG9va191cmxzPXdlYmhvb2tfdXJscywKICAgICAgICAgZXhwaXJhdGlvbl9k
YXRlPWV4cGlyYXRpb25fZGF0ZSwKKyAgICAgICAgdHlwZT10eXBlLAogICAgICAgICBtYWxmdW5j
dGlvbmluZ190ZXN0cz1tYWxmdW5jdGlvbmluZ190ZXN0cwogICAgICkKKworZGVmIGlzb190b19t
aWxsaXMoaXNvX3N0cmluZyk6CisgICAgaWYgaXNvX3N0cmluZyBpcyBOb25lOgorICAgICAgICBy
ZXR1cm4gTm9uZQorICAgIHRyeToKKyAgICAgICAgZGF0ZSA9IGRhdGV1dGlsLnBhcnNlci5pc29w
YXJzZShpc29fc3RyaW5nKQorICAgICAgICBkYXRlID0gZGF0ZS5yZXBsYWNlKHR6aW5mbz10enV0
YygpKQorICAgICAgICBlcG9jaCA9IGRhdGV0aW1lLnV0Y2Zyb210aW1lc3RhbXAoMCkucmVwbGFj
ZSh0emluZm89dHp1dGMoKSkKKyAgICAgICAgcmV0dXJuIGludCgoZGF0ZSAtIGVwb2NoKS50b3Rh
bF9zZWNvbmRzKCkgKiAxMDAwKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHJldHVy
biBpc29fc3RyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvc2VyaWFsaXplci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy9zZXJpYWxp
emVyLnB5CmluZGV4IDJhZGNlYjBiNmRlNGZmOTMzOWRkN2Q0MjY2MGFlNThjZmIwNGMxNzkuLjNj
MWI3M2IzNGZhNTNhMDhhOTM0Yzg3MjIxY2VlYWFhNDAxNWU3YzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy9z
ZXJpYWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS91dGlscy9zZXJpYWxpemVyLnB5CkBAIC0xLDcgKzEsMTAgQEAKK2Zy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCisKKwogZGVmIHNlcmlhbGl6ZV9zZXNzaW9uKHNl
c3Npb24pOgogICAgIHJldHVybiB7CiAgICAgICAgICJ0b2tlbiI6IHNlc3Npb24udG9rZW4sCi0g
ICAgICAgICJ0eXBlcyI6IHNlc3Npb24udHlwZXMsCisgICAgICAgICJ0eXBlcyI6IHNlc3Npb24u
dGVzdF90eXBlcywKICAgICAgICAgInVzZXJfYWdlbnQiOiBzZXNzaW9uLnVzZXJfYWdlbnQsCiAg
ICAgICAgICJsYWJlbHMiOiBzZXNzaW9uLmxhYmVscywKICAgICAgICAgInRpbWVvdXRzIjogc2Vz
c2lvbi50aW1lb3V0cywKQEAgLTEyLDExICsxNSwzMSBAQCBkZWYgc2VyaWFsaXplX3Nlc3Npb24o
c2Vzc2lvbik6CiAgICAgICAgICJydW5uaW5nX3Rlc3RzIjogc2Vzc2lvbi5ydW5uaW5nX3Rlc3Rz
LAogICAgICAgICAic3RhdHVzIjogc2Vzc2lvbi5zdGF0dXMsCiAgICAgICAgICJicm93c2VyIjog
c2Vzc2lvbi5icm93c2VyLAotICAgICAgICAiZGF0ZV9zdGFydGVkIjogc2Vzc2lvbi5kYXRlX3N0
YXJ0ZWQsCi0gICAgICAgICJkYXRlX2ZpbmlzaGVkIjogc2Vzc2lvbi5kYXRlX2ZpbmlzaGVkLAor
ICAgICAgICAiZGF0ZV9jcmVhdGVkIjogbWlsbGlzX3RvX2lzbyhzZXNzaW9uLmRhdGVfY3JlYXRl
ZCksCisgICAgICAgICJkYXRlX3N0YXJ0ZWQiOiBtaWxsaXNfdG9faXNvKHNlc3Npb24uZGF0ZV9z
dGFydGVkKSwKKyAgICAgICAgImRhdGVfZmluaXNoZWQiOiBtaWxsaXNfdG9faXNvKHNlc3Npb24u
ZGF0ZV9maW5pc2hlZCksCiAgICAgICAgICJpc19wdWJsaWMiOiBzZXNzaW9uLmlzX3B1YmxpYywK
ICAgICAgICAgInJlZmVyZW5jZV90b2tlbnMiOiBzZXNzaW9uLnJlZmVyZW5jZV90b2tlbnMsCi0g
ICAgICAgICJ3ZWJob29rX3VybHMiOiBzZXNzaW9uLndlYmhvb2tfdXJscywKLSAgICAgICAgImV4
cGlyYXRpb25fZGF0ZSI6IHNlc3Npb24uZXhwaXJhdGlvbl9kYXRlLAorICAgICAgICAiZXhwaXJh
dGlvbl9kYXRlIjogbWlsbGlzX3RvX2lzbyhzZXNzaW9uLmV4cGlyYXRpb25fZGF0ZSksCisgICAg
ICAgICJ0eXBlIjogc2Vzc2lvbi50eXBlLAogICAgICAgICAibWFsZnVuY3Rpb25pbmdfdGVzdHMi
OiBzZXNzaW9uLm1hbGZ1bmN0aW9uaW5nX3Rlc3RzCiAgICAgfQorCitkZWYgc2VyaWFsaXplX3Nl
c3Npb25zKHNlc3Npb25zKToKKyAgICBzZXJpYWxpemVkX3Nlc3Npb25zID0gW10KKyAgICBmb3Ig
c2Vzc2lvbiBpbiBzZXNzaW9uczoKKyAgICAgICAgc2VyaWFsaXplZF9zZXNzaW9ucy5hcHBlbmQo
c2VyaWFsaXplX3Nlc3Npb24oc2Vzc2lvbikpCisgICAgcmV0dXJuIHNlcmlhbGl6ZWRfc2Vzc2lv
bnMKKworZGVmIHNlcmlhbGl6ZV9kZXZpY2UoZGV2aWNlKToKKyAgICByZXR1cm4geworICAgICAg
ICAidG9rZW4iOiBkZXZpY2UudG9rZW4sCisgICAgICAgICJ1c2VyX2FnZW50IjogZGV2aWNlLnVz
ZXJfYWdlbnQsCisgICAgICAgICJuYW1lIjogZGV2aWNlLm5hbWUsCisgICAgICAgICJsYXN0X2Fj
dGl2ZSI6IG1pbGxpc190b19pc28oZGV2aWNlLmxhc3RfYWN0aXZlKQorICAgIH0KKworZGVmIG1p
bGxpc190b19pc28obWlsbGlzKToKKyAgICBpZiBtaWxsaXMgaXMgTm9uZToKKyAgICAgICAgcmV0
dXJuIE5vbmUKKyAgICByZXR1cm4gZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcChtaWxsaXMvMTAw
MC4wKS5pc29mb3JtYXQoKSArICIrMDA6MDAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvdXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4
OTM1MzMzNGNjMGIwN2EyOTE5YzYxMThkZWZjY2M1OGYyMzYzNzIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL19faW5pdF9fLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL2Rl
c2VyaWFsaXplci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS91dGlscy9zZXJpYWxpemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL3VzZXJfYWdlbnRfcGFyc2Vy
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI3MWY0MDdkNmM0YjYwYTE5NGI3MzExNjBiMDgyODJiM2QyODNl
ZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2NvbmZpZy5kZWZhdWx0Lmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvY29uZmlndXJhdGlvbl9sb2FkZXIucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVxdWlyZW1lbnRz
LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS90b3guaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3dhdmVfc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd2F2ZV9zZXJ2ZXIucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd2F2
ZV9zZXJ2ZXIucHkKaW5kZXggYmMzM2JmZGM2MzEzNjUzYjA1ZGExOWM1ZjM1MmUyNjZmNmZlMGIx
Mi4uNDU5MzNkYjhhOWE4N2IzNzcwYmFkYmIyN2IzOTMxZGE1YWIxYmRmOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3dh
dmVfc2VydmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS93YXZlX3NlcnZlci5weQpAQCAtNywxNCArNywxOSBAQCBmcm9tIC5u
ZXR3b3JrLmh0dHBfaGFuZGxlciBpbXBvcnQgSHR0cEhhbmRsZXIKIGZyb20gLm5ldHdvcmsuYXBp
LnNlc3Npb25zX2FwaV9oYW5kbGVyIGltcG9ydCBTZXNzaW9uc0FwaUhhbmRsZXIKIGZyb20gLm5l
dHdvcmsuYXBpLnRlc3RzX2FwaV9oYW5kbGVyIGltcG9ydCBUZXN0c0FwaUhhbmRsZXIKIGZyb20g
Lm5ldHdvcmsuYXBpLnJlc3VsdHNfYXBpX2hhbmRsZXIgaW1wb3J0IFJlc3VsdHNBcGlIYW5kbGVy
Citmcm9tIC5uZXR3b3JrLmFwaS5kZXZpY2VzX2FwaV9oYW5kbGVyIGltcG9ydCBEZXZpY2VzQXBp
SGFuZGxlcgorZnJvbSAubmV0d29yay5hcGkuZ2VuZXJhbF9hcGlfaGFuZGxlciBpbXBvcnQgR2Vu
ZXJhbEFwaUhhbmRsZXIKIGZyb20gLm5ldHdvcmsuc3RhdGljX2hhbmRsZXIgaW1wb3J0IFN0YXRp
Y0hhbmRsZXIKIAogZnJvbSAudGVzdGluZy5zZXNzaW9uc19tYW5hZ2VyIGltcG9ydCBTZXNzaW9u
c01hbmFnZXIKIGZyb20gLnRlc3RpbmcucmVzdWx0c19tYW5hZ2VyIGltcG9ydCBSZXN1bHRzTWFu
YWdlcgogZnJvbSAudGVzdGluZy50ZXN0c19tYW5hZ2VyIGltcG9ydCBUZXN0c01hbmFnZXIKK2Zy
b20gLnRlc3RpbmcuZGV2aWNlc19tYW5hZ2VyIGltcG9ydCBEZXZpY2VzTWFuYWdlcgogZnJvbSAu
dGVzdGluZy50ZXN0X2xvYWRlciBpbXBvcnQgVGVzdExvYWRlcgogZnJvbSAudGVzdGluZy5ldmVu
dF9kaXNwYXRjaGVyIGltcG9ydCBFdmVudERpc3BhdGNoZXIKIAorVkVSU0lPTl9TVFJJTkcgPSAi
djMuMy4wIgorCiAKIGNsYXNzIFdhdmVTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgaW5pdGlhbGl6
ZShzZWxmLApAQCAtMzUsMTAgKzQwLDEzIEBAIGNsYXNzIFdhdmVTZXJ2ZXIob2JqZWN0KToKICAg
ICAgICAgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25fbG9hZGVyLmxvYWQoY29uZmlndXJh
dGlvbl9maWxlX3BhdGgpCiAKICAgICAgICAgIyBJbml0aWFsaXplIE1hbmFnZXJzCi0gICAgICAg
IGV2ZW50X2Rpc3BhdGNoZXIgPSBFdmVudERpc3BhdGNoZXIoKQorICAgICAgICBldmVudF9kaXNw
YXRjaGVyID0gRXZlbnREaXNwYXRjaGVyKAorICAgICAgICAgICAgZXZlbnRfY2FjaGVfZHVyYXRp
b249Y29uZmlndXJhdGlvblsiZXZlbnRfY2FjaGVfZHVyYXRpb24iXQorICAgICAgICApCiAgICAg
ICAgIHNlc3Npb25zX21hbmFnZXIgPSBTZXNzaW9uc01hbmFnZXIoKQogICAgICAgICByZXN1bHRz
X21hbmFnZXIgPSBSZXN1bHRzTWFuYWdlcigpCiAgICAgICAgIHRlc3RzX21hbmFnZXIgPSBUZXN0
c01hbmFnZXIoKQorICAgICAgICBkZXZpY2VzX21hbmFnZXIgPSBEZXZpY2VzTWFuYWdlcigpCiAg
ICAgICAgIHRlc3RfbG9hZGVyID0gVGVzdExvYWRlcigpCiAKICAgICAgICAgc2Vzc2lvbnNfbWFu
YWdlci5pbml0aWFsaXplKApAQCAtNDYsMTQgKzU0LDE1IEBAIGNsYXNzIFdhdmVTZXJ2ZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXI9ZXZlbnRfZGlzcGF0Y2hlciwKICAg
ICAgICAgICAgIHRlc3RzX21hbmFnZXI9dGVzdHNfbWFuYWdlciwKICAgICAgICAgICAgIHJlc3Vs
dHNfZGlyZWN0b3J5PWNvbmZpZ3VyYXRpb25bInJlc3VsdHNfZGlyZWN0b3J5X3BhdGgiXSwKLSAg
ICAgICAgICAgIHJlc3VsdHNfbWFuYWdlcj1yZXN1bHRzX21hbmFnZXIKKyAgICAgICAgICAgIHJl
c3VsdHNfbWFuYWdlcj1yZXN1bHRzX21hbmFnZXIsCisgICAgICAgICAgICBjb25maWd1cmF0aW9u
PWNvbmZpZ3VyYXRpb24KICAgICAgICAgKQogCiAgICAgICAgIHJlc3VsdHNfbWFuYWdlci5pbml0
aWFsaXplKAogICAgICAgICAgICAgcmVzdWx0c19kaXJlY3RvcnlfcGF0aD1jb25maWd1cmF0aW9u
WyJyZXN1bHRzX2RpcmVjdG9yeV9wYXRoIl0sCiAgICAgICAgICAgICBzZXNzaW9uc19tYW5hZ2Vy
PXNlc3Npb25zX21hbmFnZXIsCiAgICAgICAgICAgICB0ZXN0c19tYW5hZ2VyPXRlc3RzX21hbmFn
ZXIsCi0gICAgICAgICAgICBpbXBvcnRfZW5hYmxlZD1jb25maWd1cmF0aW9uWyJpbXBvcnRfZW5h
YmxlZCJdLAorICAgICAgICAgICAgaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZD1jb25maWd1cmF0aW9u
WyJpbXBvcnRfcmVzdWx0c19lbmFibGVkIl0sCiAgICAgICAgICAgICByZXBvcnRzX2VuYWJsZWQ9
cmVwb3J0c19lbmFibGVkLAogICAgICAgICAgICAgcGVyc2lzdGluZ19pbnRlcnZhbD1jb25maWd1
cmF0aW9uWyJwZXJzaXN0aW5nX2ludGVydmFsIl0KICAgICAgICAgKQpAQCAtNjUsNiArNzQsOCBA
QCBjbGFzcyBXYXZlU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICBldmVudF9kaXNwYXRjaGVy
PWV2ZW50X2Rpc3BhdGNoZXIKICAgICAgICAgKQogCisgICAgICAgIGRldmljZXNfbWFuYWdlci5p
bml0aWFsaXplKGV2ZW50X2Rpc3BhdGNoZXIpCisKICAgICAgICAgZXhjbHVkZV9saXN0X2ZpbGVf
cGF0aCA9IG9zLnBhdGguYWJzcGF0aCgiLi9leGNsdWRlZC5qc29uIikKICAgICAgICAgaW5jbHVk
ZV9saXN0X2ZpbGVfcGF0aCA9IG9zLnBhdGguYWJzcGF0aCgiLi9pbmNsdWRlZC5qc29uIikKICAg
ICAgICAgdGVzdF9sb2FkZXIuaW5pdGlhbGl6ZSgKQEAgLTg2LDcgKzk3LDggQEAgY2xhc3MgV2F2
ZVNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgc2Vzc2lvbnNfbWFuYWdlcj1zZXNzaW9uc19t
YW5hZ2VyLAogICAgICAgICAgICAgcmVzdWx0c19tYW5hZ2VyPXJlc3VsdHNfbWFuYWdlciwKICAg
ICAgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXI9ZXZlbnRfZGlzcGF0Y2hlciwKLSAgICAgICAgICAg
IHdlYl9yb290PWNvbmZpZ3VyYXRpb25bIndlYl9yb290Il0KKyAgICAgICAgICAgIHdlYl9yb290
PWNvbmZpZ3VyYXRpb25bIndlYl9yb290Il0sCisgICAgICAgICAgICByZWFkX3Nlc3Npb25zX2Vu
YWJsZWQ9Y29uZmlndXJhdGlvblsicmVhZF9zZXNzaW9uc19lbmFibGVkIl0KICAgICAgICAgKQog
ICAgICAgICB0ZXN0c19hcGlfaGFuZGxlciA9IFRlc3RzQXBpSGFuZGxlcigKICAgICAgICAgICAg
IHRlc3RzX21hbmFnZXI9dGVzdHNfbWFuYWdlciwKQEAgLTk3LDkgKzEwOSwyNSBAQCBjbGFzcyBX
YXZlU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICB3ZWJfcm9vdD1jb25maWd1cmF0aW9uWyJ3
ZWJfcm9vdCJdLAogICAgICAgICAgICAgdGVzdF9sb2FkZXI9dGVzdF9sb2FkZXIKICAgICAgICAg
KQorICAgICAgICBkZXZpY2VzX2FwaV9oYW5kbGVyID0gRGV2aWNlc0FwaUhhbmRsZXIoCisgICAg
ICAgICAgICBkZXZpY2VzX21hbmFnZXI9ZGV2aWNlc19tYW5hZ2VyLAorICAgICAgICAgICAgZXZl
bnRfZGlzcGF0Y2hlcj1ldmVudF9kaXNwYXRjaGVyLAorICAgICAgICAgICAgd2ViX3Jvb3Q9Y29u
ZmlndXJhdGlvblsid2ViX3Jvb3QiXQorICAgICAgICApCiAgICAgICAgIHJlc3VsdHNfYXBpX2hh
bmRsZXIgPSBSZXN1bHRzQXBpSGFuZGxlcigKICAgICAgICAgICAgIHJlc3VsdHNfbWFuYWdlciwK
LSAgICAgICAgICAgIHdlYl9yb290PWNvbmZpZ3VyYXRpb25bIndlYl9yb290Il0pCisgICAgICAg
ICAgICBzZXNzaW9uc19tYW5hZ2VyLAorICAgICAgICAgICAgd2ViX3Jvb3Q9Y29uZmlndXJhdGlv
blsid2ViX3Jvb3QiXQorICAgICAgICApCisgICAgICAgIGdlbmVyYWxfYXBpX2hhbmRsZXIgPSBH
ZW5lcmFsQXBpSGFuZGxlcigKKyAgICAgICAgICAgIHdlYl9yb290PWNvbmZpZ3VyYXRpb25bIndl
Yl9yb290Il0sCisgICAgICAgICAgICByZWFkX3Nlc3Npb25zX2VuYWJsZWQ9Y29uZmlndXJhdGlv
blsicmVhZF9zZXNzaW9uc19lbmFibGVkIl0sCisgICAgICAgICAgICBpbXBvcnRfcmVzdWx0c19l
bmFibGVkPWNvbmZpZ3VyYXRpb25bImltcG9ydF9yZXN1bHRzX2VuYWJsZWQiXSwKKyAgICAgICAg
ICAgIHJlcG9ydHNfZW5hYmxlZD1yZXBvcnRzX2VuYWJsZWQsCisgICAgICAgICAgICB2ZXJzaW9u
X3N0cmluZz1WRVJTSU9OX1NUUklORywKKyAgICAgICAgICAgIHRlc3RfdHlwZV9zZWxlY3Rpb25f
ZW5hYmxlZD1jb25maWd1cmF0aW9uWyJlbmFibGVfdGVzdF90eXBlX3NlbGVjdGlvbiJdLAorICAg
ICAgICAgICAgdGVzdF9maWxlX3NlbGVjdGlvbl9lbmFibGVkPWNvbmZpZ3VyYXRpb25bImVuYWJs
ZV90ZXN0X2ZpbGVfc2VsZWN0aW9uIl0KKyAgICAgICAgKQogCiAgICAgICAgICMgSW5pdGlhbGl6
ZSBIVFRQIHNlcnZlcgogICAgICAgICBodHRwX2hhbmRsZXIgPSBIdHRwSGFuZGxlcigKQEAgLTEw
Nyw2ICsxMzUsOCBAQCBjbGFzcyBXYXZlU2VydmVyKG9iamVjdCk6CiAgICAgICAgICAgICBzZXNz
aW9uc19hcGlfaGFuZGxlcj1zZXNzaW9uc19hcGlfaGFuZGxlciwKICAgICAgICAgICAgIHRlc3Rz
X2FwaV9oYW5kbGVyPXRlc3RzX2FwaV9oYW5kbGVyLAogICAgICAgICAgICAgcmVzdWx0c19hcGlf
aGFuZGxlcj1yZXN1bHRzX2FwaV9oYW5kbGVyLAorICAgICAgICAgICAgZGV2aWNlc19hcGlfaGFu
ZGxlcj1kZXZpY2VzX2FwaV9oYW5kbGVyLAorICAgICAgICAgICAgZ2VuZXJhbF9hcGlfaGFuZGxl
cj1nZW5lcmFsX2FwaV9oYW5kbGVyLAogICAgICAgICAgICAgaHR0cF9wb3J0PWNvbmZpZ3VyYXRp
b25bIndwdF9wb3J0Il0sCiAgICAgICAgICAgICB3ZWJfcm9vdD1jb25maWd1cmF0aW9uWyJ3ZWJf
cm9vdCJdCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY29tcGFyaXNvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jb21w
YXJpc29uLmh0bWwKaW5kZXggNWJlNmRhNGQ2NDdkMjBiMTA1OGE4ZmI5NThmN2I5ZDczNDc5ZTYw
OS4uZGViYjk3MWJmNDg4ZTQ3MjgyODg0ZDVmNzhhOGJmNWUzNzlhZGY3MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy9jb21wYXJpc29uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jb21wYXJpc29uLmh0bWwKQEAgLTY1LDcgKzY1LDcg
QEAKICAgICAgICAgdG9rZW5zID0gdG9rZW5zID8gdG9rZW5zLnNwbGl0KCIsIikgOiBbXTsKICAg
ICAgICAgY29uc3QgcmVmVG9rZW5zID0gcmVmdG9rZW5zID8gcmVmdG9rZW5zLnNwbGl0KCIsIikg
OiBbXTsKICAgICAgICAgaWYgKHRva2VucykgewotICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRS
ZXN1bHRzQ29uZmlnKGZ1bmN0aW9uKGNvbmZpZykgeworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJl
YWRTdGF0dXMoZnVuY3Rpb24oY29uZmlnKSB7CiAgICAgICAgICAgICBjb21wYXJpc29uVWkuc3Rh
dGUucmVwb3J0c0VuYWJsZWQgPSBjb25maWcucmVwb3J0c0VuYWJsZWQ7CiAgICAgICAgICAgICBj
b21wYXJpc29uVWkucmVuZGVyKCk7CiAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2NvbmZp
Z3VyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS93d3cvY29uZmlndXJhdGlvbi5odG1sCmluZGV4IGFlMTc0YjFhNTU5YmFh
N2VkNmMxMjZiNWNmY2JmYmRhZjEwNDNjNjAuLjMyN2ExNTUxNTRkMGRlZThiNzljYWRhZDljNWI3
YWQzOWY5NThmNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY29uZmlndXJhdGlvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY29u
ZmlndXJhdGlvbi5odG1sCkBAIC0xOCwyNzEgKzE4LDQyOCBAQAogICA8L2hlYWQ+CiAgIDxib2R5
PgogICAgIDxzY3JpcHQ+Ci0vLyAgICAgIHZhciBhcGlzID0gWwotLy8gICAgICAgIHsgdGl0bGU6
ICIyRCBDb250ZXh0IiwgcGF0aDogIi8yZGNvbnRleHQiIH0sCi0vLyAgICAgICAgeyB0aXRsZTog
IkNvbnRlbnQgU2VjdXJpdHkgUG9saWN5IiwgcGF0aDogIi9jb250ZW50LXNlY3VyaXR5LXBvbGlj
eSIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiQ1NTIiwgcGF0aDogIi9jc3MiIH0sCi0vLyAgICAg
ICAgeyB0aXRsZTogIkRPTSIsIHBhdGg6ICIvZG9tIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJF
Q01BU2NyaXB0IiwgcGF0aDogIi9lY21hc2NyaXB0IiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJF
bmNyeXB0ZWQgbWVkaWEiLCBwYXRoOiAiL2VuY3J5cHRlZC1tZWRpYSIgfSwKLS8vICAgICAgICB7
IHRpdGxlOiAiRmV0Y2giLCBwYXRoOiAiL2ZldGNoIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJG
aWxlQVBJIiwgcGF0aDogIi9GaWxlQVBJIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJGdWxsc2Ny
ZWVuIiwgcGF0aDogIi9mdWxsc2NyZWVuIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXZWJHTCIs
IHBhdGg6ICIvd2ViZ2wiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkhUTUwiLCBwYXRoOiAiL2h0
bWwiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkluZGV4ZWREQiIsIHBhdGg6ICIvSW5kZXhlZERC
IiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJNZWRpYSBTb3VyY2UiLCBwYXRoOiAiL21lZGlhLXNv
dXJjZSIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiTm90aWZpY2F0aW9ucyIsIHBhdGg6ICIvbm90
aWZpY2F0aW9ucyIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiUGFnZSBWaXNpYmlsaXR5IiwgcGF0
aDogIi9wYWdlLXZpc2liaWxpdHkiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIlNlcnZpY2UgV29y
a2VycyIsIHBhdGg6ICIvc2VydmljZS13b3JrZXJzIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJV
SSBFdmVudHMiLCBwYXRoOiAiL3VpZXZlbnRzIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXQVZF
IEV4dHJhIiwgcGF0aDogIi93YXZlLWV4dHJhIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXZWJh
dWRpbyIsIHBhdGg6ICIvd2ViYXVkaW8iIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIldlYkNyeXB0
b0FQSSIsIHBhdGg6ICIvV2ViQ3J5cHRvQVBJIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXZWJt
ZXNzYWdpbmciLCBwYXRoOiAiL3dlYm1lc3NhZ2luZyIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAi
V2Vic29ja2V0cyIsIHBhdGg6ICIvd2Vic29ja2V0cyIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAi
V2Vic3RvcmFnZSIsIHBhdGg6ICIvd2Vic3RvcmFnZSIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAi
V29ya2VycyIsIHBhdGg6ICIvd29ya2VycyIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiWEhSIiwg
cGF0aDogIi94aHIiIH0KLS8vICAgICAgXTsKLQkJCXZhciBhcGlzID0gW107Ci0KLSAgICAgIHZh
ciB0eXBlcyA9IFsKLSAgICAgICAgeyB0aXRsZTogIkF1dG9tYXRpYyIsIHZhbHVlOiAiYXV0b21h
dGljIiB9LAotICAgICAgICB7IHRpdGxlOiAiTWFudWFsIiwgdmFsdWU6ICJtYW51YWwiIH0KLSAg
ICAgIF07Ci0KLS8vICAgICAgdmFyIHJlZmVyZW5jZVNlc3Npb25zID0gWwotLy8gICAgICAgIHsK
LS8vICAgICAgICAgIHRpdGxlOiAiRWRnZSA0NC4xNzc2MyIsCi0vLyAgICAgICAgICBlbmdpbmU6
ICIiLAotLy8gICAgICAgICAgdG9rZW46ICJiMjkyNGQyMC02YTkzLTExZTktOThiNC1hMTFmYjky
YTZkMWMiLAotLy8gICAgICAgICAgaWNvbjogImZhYiBmYS1lZGdlIgotLy8gICAgICAgIH0sCi0v
LyAgICAgICAgewotLy8gICAgICAgICAgdGl0bGU6ICJGaXJlZm94IDY0LjAiLAotLy8gICAgICAg
ICAgZW5naW5lOiAiR2Vja28gNjQuMCIsCi0vLyAgICAgICAgICB0b2tlbjogImJiN2FhZmEwLTZh
OTItMTFlOS04ZWMyLTA0ZjU4ZGFkMmU0ZiIsCi0vLyAgICAgICAgICBpY29uOiAiZmFiIGZhLWZp
cmVmb3giCi0vLyAgICAgICAgfSwKLS8vICAgICAgICB7Ci0vLyAgICAgICAgICB0aXRsZTogIldl
YktpdCA2MDUuMS4xNSIsCi0vLyAgICAgICAgICBlbmdpbmU6ICJSZXZpc2lvbiAyMzkxNTgiLAot
Ly8gICAgICAgICAgdG9rZW46ICJjYWY4MjNlMC02YTkyLTExZTktYjczMi0zMTg4ZDAwNjVlYmMi
LAotLy8gICAgICAgICAgaWNvbjogImZhYiBmYS1zYWZhcmkiCi0vLyAgICAgICAgfSwKLS8vICAg
ICAgICB7Ci0vLyAgICAgICAgICB0aXRsZTogIkNocm9taXVtIDczLjAuMzY0MC4wIiwKLS8vICAg
ICAgICAgIGVuZ2luZTogIkJsaW5rIDUzNy4zNiIsCi0vLyAgICAgICAgICB0b2tlbjogImE1MGM2
ZGIwLTZhOTQtMTFlOS04ZDFiLWUyM2ZjNDU1NTg4NSIsCi0vLyAgICAgICAgICBpY29uOiAiZmFi
IGZhLWNocm9tZSIKLS8vICAgICAgICB9Ci0vLyAgICAgIF07Ci0JCQl2YXIgcmVmZXJlbmNlU2Vz
c2lvbnM9IFtdOwotCi0gICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAv
LyAgICAgIHZhciBhcGlzID0gWworICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICIyRCBDb250ZXh0
IiwgcGF0aDogIi8yZGNvbnRleHQiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTogIkNvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IiwgcGF0aDogIi9jb250ZW50LXNlY3VyaXR5LXBvbGljeSIgfSwK
KyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiQ1NTIiwgcGF0aDogIi9jc3MiIH0sCisgICAgICAv
LyAgICAgICAgeyB0aXRsZTogIkRPTSIsIHBhdGg6ICIvZG9tIiB9LAorICAgICAgLy8gICAgICAg
IHsgdGl0bGU6ICJFQ01BU2NyaXB0IiwgcGF0aDogIi9lY21hc2NyaXB0IiB9LAorICAgICAgLy8g
ICAgICAgIHsgdGl0bGU6ICJFbmNyeXB0ZWQgbWVkaWEiLCBwYXRoOiAiL2VuY3J5cHRlZC1tZWRp
YSIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiRmV0Y2giLCBwYXRoOiAiL2ZldGNoIiB9
LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJGaWxlQVBJIiwgcGF0aDogIi9GaWxlQVBJIiB9
LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJGdWxsc2NyZWVuIiwgcGF0aDogIi9mdWxsc2Ny
ZWVuIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXZWJHTCIsIHBhdGg6ICIvd2ViZ2wi
IH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTogIkhUTUwiLCBwYXRoOiAiL2h0bWwiIH0sCisg
ICAgICAvLyAgICAgICAgeyB0aXRsZTogIkluZGV4ZWREQiIsIHBhdGg6ICIvSW5kZXhlZERCIiB9
LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJNZWRpYSBTb3VyY2UiLCBwYXRoOiAiL21lZGlh
LXNvdXJjZSIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiTm90aWZpY2F0aW9ucyIsIHBh
dGg6ICIvbm90aWZpY2F0aW9ucyIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiUGFnZSBW
aXNpYmlsaXR5IiwgcGF0aDogIi9wYWdlLXZpc2liaWxpdHkiIH0sCisgICAgICAvLyAgICAgICAg
eyB0aXRsZTogIlNlcnZpY2UgV29ya2VycyIsIHBhdGg6ICIvc2VydmljZS13b3JrZXJzIiB9LAor
ICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJVSSBFdmVudHMiLCBwYXRoOiAiL3VpZXZlbnRzIiB9
LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXQVZFIEV4dHJhIiwgcGF0aDogIi93YXZlLWV4
dHJhIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXZWJhdWRpbyIsIHBhdGg6ICIvd2Vi
YXVkaW8iIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTogIldlYkNyeXB0b0FQSSIsIHBhdGg6
ICIvV2ViQ3J5cHRvQVBJIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXZWJtZXNzYWdp
bmciLCBwYXRoOiAiL3dlYm1lc3NhZ2luZyIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAi
V2Vic29ja2V0cyIsIHBhdGg6ICIvd2Vic29ja2V0cyIgfSwKKyAgICAgIC8vICAgICAgICB7IHRp
dGxlOiAiV2Vic3RvcmFnZSIsIHBhdGg6ICIvd2Vic3RvcmFnZSIgfSwKKyAgICAgIC8vICAgICAg
ICB7IHRpdGxlOiAiV29ya2VycyIsIHBhdGg6ICIvd29ya2VycyIgfSwKKyAgICAgIC8vICAgICAg
ICB7IHRpdGxlOiAiWEhSIiwgcGF0aDogIi94aHIiIH0KKyAgICAgIC8vICAgICAgXTsKKworICAg
ICAgLy8gICAgICB2YXIgcmVmZXJlbmNlU2Vzc2lvbnMgPSBbCisgICAgICAvLyAgICAgICAgewor
ICAgICAgLy8gICAgICAgICAgdGl0bGU6ICJFZGdlIDQ0LjE3NzYzIiwKKyAgICAgIC8vICAgICAg
ICAgIGVuZ2luZTogIiIsCisgICAgICAvLyAgICAgICAgICB0b2tlbjogImIyOTI0ZDIwLTZhOTMt
MTFlOS05OGI0LWExMWZiOTJhNmQxYyIsCisgICAgICAvLyAgICAgICAgICBpY29uOiAiZmFiIGZh
LWVkZ2UiCisgICAgICAvLyAgICAgICAgfSwKKyAgICAgIC8vICAgICAgICB7CisgICAgICAvLyAg
ICAgICAgICB0aXRsZTogIkZpcmVmb3ggNjQuMCIsCisgICAgICAvLyAgICAgICAgICBlbmdpbmU6
ICJHZWNrbyA2NC4wIiwKKyAgICAgIC8vICAgICAgICAgIHRva2VuOiAiYmI3YWFmYTAtNmE5Mi0x
MWU5LThlYzItMDRmNThkYWQyZTRmIiwKKyAgICAgIC8vICAgICAgICAgIGljb246ICJmYWIgZmEt
ZmlyZWZveCIKKyAgICAgIC8vICAgICAgICB9LAorICAgICAgLy8gICAgICAgIHsKKyAgICAgIC8v
ICAgICAgICAgIHRpdGxlOiAiV2ViS2l0IDYwNS4xLjE1IiwKKyAgICAgIC8vICAgICAgICAgIGVu
Z2luZTogIlJldmlzaW9uIDIzOTE1OCIsCisgICAgICAvLyAgICAgICAgICB0b2tlbjogImNhZjgy
M2UwLTZhOTItMTFlOS1iNzMyLTMxODhkMDA2NWViYyIsCisgICAgICAvLyAgICAgICAgICBpY29u
OiAiZmFiIGZhLXNhZmFyaSIKKyAgICAgIC8vICAgICAgICB9LAorICAgICAgLy8gICAgICAgIHsK
KyAgICAgIC8vICAgICAgICAgIHRpdGxlOiAiQ2hyb21pdW0gNzMuMC4zNjQwLjAiLAorICAgICAg
Ly8gICAgICAgICAgZW5naW5lOiAiQmxpbmsgNTM3LjM2IiwKKyAgICAgIC8vICAgICAgICAgIHRv
a2VuOiAiYTUwYzZkYjAtNmE5NC0xMWU5LThkMWItZTIzZmM0NTU1ODg1IiwKKyAgICAgIC8vICAg
ICAgICAgIGljb246ICJmYWIgZmEtY2hyb21lIgorICAgICAgLy8gICAgICAgIH0KKyAgICAgIC8v
ICAgICAgXTsKKworICAgICAgdmFyIHRlc3RGaWxlU2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7CisK
KyAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgIG5ldyBDb25maWd1
cmF0aW9uVmlldygpOworICAgICAgfTsKKworICAgICAgZnVuY3Rpb24gQ29uZmlndXJhdGlvblZp
ZXcoKSB7CiAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdXRpbHMucGFyc2VRdWVyeShsb2NhdGlvbi5z
ZWFyY2gpOwotICAgICAgICB0b2tlbiA9IHF1ZXJ5LnRva2VuOworICAgICAgICB2YXIgdG9rZW4g
PSBxdWVyeS50b2tlbjsKICAgICAgICAgaWYgKHRva2VuKSBXYXZlU2VydmljZS5hZGRSZWNlbnRT
ZXNzaW9uKHRva2VuKTsKLSAgICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlcigpOwotCQkJCVdh
dmVTZXJ2aWNlLnJlYWRBdmFpbGFibGVBcGlzKGZ1bmN0aW9uKGF2YWlsYWJsZV9hcGlzKSB7Ci0J
CQkJCWF2YWlsYWJsZV9hcGlzID0gYXZhaWxhYmxlX2FwaXMuc29ydCgoYXBpQSwgYXBpQikgPT4g
YXBpQS50aXRsZS50b0xvd2VyQ2FzZSgpID4gYXBpQi50aXRsZS50b0xvd2VyQ2FzZSgpID8gMSA6
IC0xKQotCQkJCQlhcGlzID0gYXZhaWxhYmxlX2FwaXM7Ci0JCQkJCVdhdmVTZXJ2aWNlLnJlYWRQ
dWJsaWNTZXNzaW9ucyhmdW5jdGlvbih0b2tlbnMpIHsKLQkJCQkJCWNvbnNvbGUubG9nKHRva2Vu
cyk7Ci0JCQkJCQlXYXZlU2VydmljZS5yZWFkTXVsdGlwbGVTZXNzaW9ucyh0b2tlbnMsIGZ1bmN0
aW9uKGNvbmZpZ3VyYXRpb25zKSB7Ci0JCQkJCQkJcmVmZXJlbmNlU2Vzc2lvbnMgPSBjb25maWd1
cmF0aW9ucwotCQkJCQkJCQkuc29ydCgoY29uZkEsIGNvbmZCKSA9PiBjb25mQS5icm93c2VyLm5h
bWUudG9Mb3dlckNhc2UoKSA+IGNvbmZCLmJyb3dzZXIubmFtZS50b0xvd2VyQ2FzZSgpID8gMSA6
IC0xKQotCQkJCQkJCQkubWFwKGNvbmZpZ3VyYXRpb24gPT4gewotCQkJCQkJCQkJdmFyIGljb24g
PSAiIjsKLQkJCQkJCQkJCXN3aXRjaChjb25maWd1cmF0aW9uLmJyb3dzZXIubmFtZS50b0xvd2Vy
Q2FzZSgpKSB7Ci0JCQkJCQkJCQkJY2FzZSAiZmlyZWZveCI6IGljb24gPSAiZmFiIGZhLWZpcmVm
b3giOyBicmVhazsKLQkJCQkJCQkJCQljYXNlICJ3ZWJraXQiOgotCQkJCQkJCQkJCWNhc2UgInNh
ZmFyaSI6IGljb24gPSAiZmFiIGZhLXNhZmFyaSI7IGJyZWFrOwotCQkJCQkJCQkJCWNhc2UgImVk
Z2UiOiBpY29uID0gImZhYiBmYS1lZGdlIjsgYnJlYWs7Ci0JCQkJCQkJCQkJY2FzZSAiY2hyb21l
IjoKLQkJCQkJCQkJCQljYXNlICJjaHJvbWl1bSI6IGljb24gPSAiZmFiIGZhLWNocm9tZSI7IGJy
ZWFrOwotCQkJCQkJCQkJfQotCQkJCQkJCQkJcmV0dXJuIHsKLQkJCQkJCQkJCQl0aXRsZTogY29u
ZmlndXJhdGlvbi5icm93c2VyLm5hbWUgKyAiICIgKyBjb25maWd1cmF0aW9uLmJyb3dzZXIudmVy
c2lvbiwKLQkJCQkJCQkJCQl0b2tlbjogY29uZmlndXJhdGlvbi50b2tlbiwKLQkJCQkJCQkJCQlp
Y29uLAotCQkJCQkJCQkJCWVuZ2luZTogY29uZmlndXJhdGlvbi5icm93c2VyLmVuZ2luZSB8fCAi
IgotCQkJCQkJCQkJfQotCQkJCQkJCQl9KTsKLQkJCQkJCQlXYXZlU2VydmljZS5yZWFkU2Vzc2lv
blN0YXR1cygKLQkJCQkJCQkJdG9rZW4sCi0JCQkJCQkJCWZ1bmN0aW9uKHN0YXR1cykgewotCQkJ
CQkJCQkJaWYgKHN0YXR1cy5zdGF0dXMgIT09ICJwZW5kaW5nIikgewotCQkJCQkJCQkJCWNvbmZp
Z3VyYXRpb25VaS5vcGVuUmVzdWx0c1BhZ2UodG9rZW4pOwotCQkJCQkJCQkJCXJldHVybjsKLQkJ
CQkJCQkJCX0KLQotCQkJCQkJCQkJV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0
aW9uKGNvbmZpZ3VyYXRpb24pIHsKLQkJCQkJCQkJCQlpZiAoCi0JCQkJCQkJCQkJCWNvbmZpZ3Vy
YXRpb24udGVzdHMuaW5jbHVkZS5maW5kSW5kZXgodGVzdCA9PiB0ZXN0ID09PSAiLyIpICE9PQot
CQkJCQkJCQkJCQktMQotCQkJCQkJCQkJCSkgewotCQkJCQkJCQkJCQljb25maWd1cmF0aW9uLnRl
c3RzLmluY2x1ZGUgPSBhcGlzLm1hcChhcGkgPT4gYXBpLnBhdGgpOwotCQkJCQkJCQkJCX0KLQkJ
CQkJCQkJCQljb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbkJhY2t1cCA9IHV0aWxz
LmNvcHlPYmplY3QoCi0JCQkJCQkJCQkJCWNvbmZpZ3VyYXRpb24KLQkJCQkJCQkJCQkpOwotCQkJ
CQkJCQkJCWNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlv
bjsKLQkJCQkJCQkJCQlzZXRUaW1lb3V0KAotCQkJCQkJCQkJCQljb25maWd1cmF0aW9uVWkuaGFu
ZGxlRXhwaXJhdGlvbiwKLQkJCQkJCQkJCQkJY29uZmlndXJhdGlvbi5leHBpcmF0aW9uRGF0ZSAt
IERhdGUubm93KCkKLQkJCQkJCQkJCQkpOwotCQkJCQkJCQkJCWNvbmZpZ3VyYXRpb25VaS5yZW5k
ZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotCQkJCQkJCQkJfSk7Ci0JCQkJCQkJCX0sCi0JCQkJ
CQkJCWZ1bmN0aW9uKCkgewotCQkJCQkJCQkJY29uZmlndXJhdGlvblVpLnN0YXRlLmV4cGlyZWQg
PSB0cnVlOwotCQkJCQkJCQkJY29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0
aW9uKCk7Ci0JCQkJCQkJCQljb25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0cygpOwot
CQkJCQkJCQkJY29uZmlndXJhdGlvblVpLnJlbmRlclJlc3VtZVZpZXcoKTsKLQkJCQkJCQkJfQot
CQkJCQkJCSk7Ci0JCQkJCQl9KTsKLQkJCQkJfSk7Ci0JCQkJfSk7Ci0gICAgICB9OworICAgICAg
ICB2YXIgcmVmZXJlbmNlU2Vzc2lvbnMgPSBbXTsKKyAgICAgICAgdmFyIGFwaXMgPSBbXTsKKyAg
ICAgICAgdmFyIHRlc3RUeXBlU2VsZWN0aW9uRW5hYmxlZCA9IHRydWU7CisgICAgICAgIHZhciB0
ZXN0RmlsZVNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTsKKworICAgICAgICB2YXIgdHlwZXMgPSBb
CisgICAgICAgICAgeyB0aXRsZTogIkF1dG9tYXRpYyIsIHZhbHVlOiAiYXV0b21hdGljIiB9LAor
ICAgICAgICAgIHsgdGl0bGU6ICJNYW51YWwiLCB2YWx1ZTogIm1hbnVhbCIgfSwKKyAgICAgICAg
XTsKKyAgICAgICAgdmFyIHN0YXRlID0ge307CisgICAgICAgIGxvYWRTZXJ2ZXJTdGF0dXMoKTsK
KyAgICAgICAgbG9hZFNlc3Npb25EYXRhKHRva2VuLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgbG9hZFB1YmxpY1Nlc3Npb25EYXRhKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICAgIHJlbmRlclJlZmVyZW5jZXNGaWVsZCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICAgICAgcmVuZGVyKCk7CiAKLSAgICAgIHZhciBjb25maWd1cmF0aW9uVWkgPSB7
Ci0gICAgICAgIHN0YXRlOiB7fSwKLSAgICAgICAgaGFzSW5jbHVkZWRUZXN0OiBmdW5jdGlvbihw
YXRoKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3Rh
dGUuY29uZmlndXJhdGlvbjsKLSAgICAgICAgICB2YXIgaW5kZXggPSBjb25maWd1cmF0aW9uLnRl
c3RzLmluY2x1ZGUuZmluZEluZGV4KAotICAgICAgICAgICAgdGVzdCA9PiB0ZXN0ID09PSBwYXRo
CisgICAgICAgIGZ1bmN0aW9uIGxvYWRTZXJ2ZXJTdGF0dXMoKSB7CisgICAgICAgICAgV2F2ZVNl
cnZpY2UucmVhZFN0YXR1cyhmdW5jdGlvbiAoc3RhdHVzKSB7CisgICAgICAgICAgICB0ZXN0VHlw
ZVNlbGVjdGlvbkVuYWJsZWQgPSBzdGF0dXMudGVzdFR5cGVTZWxlY3Rpb25FbmFibGVkOworICAg
ICAgICAgICAgdGVzdEZpbGVTZWxlY3Rpb25FbmFibGVkID0gc3RhdHVzLnRlc3RGaWxlU2VsZWN0
aW9uRW5hYmxlZDsKKyAgICAgICAgICAgIHJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7Cisg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBsb2FkU2Vzc2lvbkRh
dGEodG9rZW4sIGNhbGxiYWNrKSB7CisgICAgICAgICAgaWYgKCF0b2tlbikgeworICAgICAgICAg
ICAgc3RhdGUuZXhwaXJlZCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
fQorICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uU3RhdHVzKAorICAgICAgICAgICAg
dG9rZW4sCisgICAgICAgICAgICBmdW5jdGlvbiAoc3RhdHVzKSB7CisgICAgICAgICAgICAgIGlm
IChzdGF0dXMuc3RhdHVzICE9PSAicGVuZGluZyIpIHsKKyAgICAgICAgICAgICAgICBvcGVuUmVz
dWx0c1BhZ2UodG9rZW4pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICBzdGF0ZS5zdGF0dXMgPSBzdGF0dXM7CisKKyAgICAgICAgICAgICAg
V2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0aW9uIChjb25maWd1cmF0aW9uKSB7
CisgICAgICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi50
ZXN0cy5pbmNsdWRlLmZpbmRJbmRleCgKKyAgICAgICAgICAgICAgICAgICAgKHRlc3QpID0+IHRl
c3QgPT09ICIvIgorICAgICAgICAgICAgICAgICAgKSAhPT0gLTEKKyAgICAgICAgICAgICAgICAp
IHsKKyAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZSA9IGFwaXMu
bWFwKChhcGkpID0+IGFwaS5wYXRoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgc3RhdGUuY29uZmlndXJhdGlvbkJhY2t1cCA9IHV0aWxzLmNvcHlPYmplY3QoY29uZmlndXJh
dGlvbik7CisgICAgICAgICAgICAgICAgc3RhdGUuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRp
b247CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgKKyAgICAgICAgICAgICAgICAgIGhhbmRs
ZUV4cGlyYXRpb24sCisgICAgICAgICAgICAgICAgICBzdGF0dXMuZXhwaXJhdGlvbkRhdGUuZ2V0
VGltZSgpIC0gRGF0ZS5ub3coKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg
cmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygp
OworICAgICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRBdmFpbGFibGVBcGlzKGZ1bmN0aW9u
IChhdmFpbGFibGVfYXBpcykgeworICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX2FwaXMgPSBh
dmFpbGFibGVfYXBpcy5zb3J0KChhcGlBLCBhcGlCKSA9PgorICAgICAgICAgICAgICAgICAgICBh
cGlBLnRpdGxlLnRvTG93ZXJDYXNlKCkgPiBhcGlCLnRpdGxlLnRvTG93ZXJDYXNlKCkgPyAxIDog
LTEKKyAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICBhcGlzID0gYXZhaWxh
YmxlX2FwaXM7CisgICAgICAgICAgICAgICAgICBzZWxlY3RBbGxUZXN0cygpOworICAgICAgICAg
ICAgICAgICAgcmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICBzdGF0ZS5leHBpcmVkID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgcmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAgcmVuZGVyRXhj
bHVkZWRUZXN0cygpOworICAgICAgICAgICAgICByZW5kZXJSZXN1bWVWaWV3KCk7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxvYWRQ
dWJsaWNTZXNzaW9uRGF0YShjYWxsYmFjaykgeworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRQ
dWJsaWNTZXNzaW9ucyhmdW5jdGlvbiAodG9rZW5zKSB7CisgICAgICAgICAgICBXYXZlU2Vydmlj
ZS5yZWFkTXVsdGlwbGVTZXNzaW9ucyh0b2tlbnMsIGZ1bmN0aW9uIChjb25maWd1cmF0aW9ucykg
eworICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb25maWd1cmF0aW9ucyk7CisgICAg
ICAgICAgICAgIHJlZmVyZW5jZVNlc3Npb25zID0gY29uZmlndXJhdGlvbnMKKyAgICAgICAgICAg
ICAgICAuc29ydCgoY29uZkEsIGNvbmZCKSA9PgorICAgICAgICAgICAgICAgICAgY29uZkEuYnJv
d3Nlci5uYW1lLnRvTG93ZXJDYXNlKCkgPgorICAgICAgICAgICAgICAgICAgY29uZkIuYnJvd3Nl
ci5uYW1lLnRvTG93ZXJDYXNlKCkKKyAgICAgICAgICAgICAgICAgICAgPyAxCisgICAgICAgICAg
ICAgICAgICAgIDogLTEKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgLm1hcCgo
Y29uZmlndXJhdGlvbikgPT4geworICAgICAgICAgICAgICAgICAgdmFyIGljb24gPSAiIjsKKyAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAoY29uZmlndXJhdGlvbi5icm93c2VyLm5hbWUudG9Mb3dl
ckNhc2UoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICJmaXJlZm94IjoKKyAgICAgICAg
ICAgICAgICAgICAgICBpY29uID0gImZhYiBmYS1maXJlZm94IjsKKyAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAid2Via2l0IjoKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSAic2FmYXJpIjoKKyAgICAgICAgICAgICAgICAgICAgICBpY29uID0g
ImZhYiBmYS1zYWZhcmkiOworICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICBjYXNlICJlZGdlIjoKKyAgICAgICAgICAgICAgICAgICAgICBpY29uID0gImZh
YiBmYS1lZGdlIjsKKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSAiY2hyb21lIjoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hyb21pdW0i
OgorICAgICAgICAgICAgICAgICAgICAgIGljb24gPSAiZmFiIGZhLWNocm9tZSI7CisgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICB0aXRsZToKKyAgICAgICAgICAgICAg
ICAgICAgICBjb25maWd1cmF0aW9uLmJyb3dzZXIubmFtZSArCisgICAgICAgICAgICAgICAgICAg
ICAgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLmJyb3dzZXIudmVy
c2lvbiwKKyAgICAgICAgICAgICAgICAgICAgdG9rZW46IGNvbmZpZ3VyYXRpb24udG9rZW4sCisg
ICAgICAgICAgICAgICAgICAgIGljb24sCisgICAgICAgICAgICAgICAgICAgIGVuZ2luZTogY29u
ZmlndXJhdGlvbi5icm93c2VyLmVuZ2luZSB8fCAiIiwKKyAgICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIGNhbGxiYWNrKHJlZmVyZW5jZVNlc3Np
b25zKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gaGFuZGxlQ29uZmlndXJlU2Vzc2lvbigpIHsKKyAgICAgICAgICBjb25zdCB0
b2tlbkZyYWdtZW50SW5wdXQgPSBVSS5nZXRFbGVtZW50KCJ0b2tlbi1mcmFnbWVudCIpOworICAg
ICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdG9rZW5GcmFnbWVudElucHV0LnZhbHVlOworICAgICAg
ICAgIGZpbmRTZXNzaW9uKGZyYWdtZW50LCBmdW5jdGlvbiAoc2Vzc2lvbikgeworICAgICAgICAg
ICAgaWYgKCFzZXNzaW9uKSB7CisgICAgICAgICAgICAgIGNvbnN0IGVycm9yQm94ID0gVUkuZ2V0
RWxlbWVudCgiZmluZC1lcnJvciIpOworICAgICAgICAgICAgICBlcnJvckJveC5zZXRBdHRyaWJ1
dGUoInN0eWxlIiwgImRpc3BsYXk6IGJsb2NrIik7CisgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHRva2VuRnJhZ21lbnRJbnB1dC52YWx1ZSA9ICIiOwor
ICAgICAgICAgICAgY29uc3QgZXJyb3JCb3ggPSBVSS5nZXRFbGVtZW50KCJmaW5kLWVycm9yIik7
CisgICAgICAgICAgICBlcnJvckJveC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5v
bmUiKTsKKyAgICAgICAgICAgIGNvbnN0IHBhdGggPSBsb2NhdGlvbi5wYXRobmFtZSArICI/dG9r
ZW49IiArIHNlc3Npb24udG9rZW47CisgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gcGF0aDsK
KyAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGZpbmRTZXNzaW9u
KGZyYWdtZW50LCBjYWxsYmFjaykgeworICAgICAgICAgIGlmICghZnJhZ21lbnQgfHwgZnJhZ21l
bnQubGVuZ3RoIDwgOCkgeworICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIFdhdmVTZXJ2aWNlLmZpbmRUb2tlbigK
KyAgICAgICAgICAgIGZyYWdtZW50LAorICAgICAgICAgICAgZnVuY3Rpb24gKHRva2VuKSB7Cisg
ICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uKHRva2VuLCBmdW5jdGlvbiAoc2Vz
c2lvbikgeworICAgICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uU3RhdHVzKHRv
a2VuLCBmdW5jdGlvbiAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICBzZXNzaW9uLnN0YXR1
cyA9IHN0YXR1cy5zdGF0dXM7CisgICAgICAgICAgICAgICAgICBzZXNzaW9uLmRhdGVTdGFydGVk
ID0gc3RhdHVzLmRhdGVTdGFydGVkOworICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5kYXRlRmlu
aXNoZWQgPSBzdGF0dXMuZGF0ZUZpbmlzaGVkOworICAgICAgICAgICAgICAgICAgY2FsbGJhY2so
c2Vzc2lvbik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgY2FsbGJh
Y2sobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGhhc0luY2x1ZGVkVGVzdChwYXRoKSB7CisgICAgICAgICAgdmFyIHRlc3Rz
ID0gc3RhdGUuY29uZmlndXJhdGlvbi50ZXN0czsKKyAgICAgICAgICAvL3ZhciBpbmRleCA9IHRl
c3RzLmluY2x1ZGUuZmluZEluZGV4KGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICAgICAgLy8gIHJl
dHVybiB0ZXN0Lm1hdGNoKG5ldyBSZWdFeHAoIl4iICsgcGF0aCkpOworICAgICAgICAgIC8vfSk7
CisgICAgICAgICAgdmFyIGluZGV4ID0gdGVzdHMuaW5jbHVkZS5pbmRleE9mKHBhdGgpOwogICAg
ICAgICAgIHJldHVybiBpbmRleCAhPT0gLTE7Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZUlu
Y2x1ZGVkVGVzdFRvZ2dsZTogZnVuY3Rpb24ocGF0aCkgewotICAgICAgICAgIHZhciBjb25maWd1
cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247Ci0gICAgICAgICAg
aWYgKGNvbmZpZ3VyYXRpb25VaS5oYXNJbmNsdWRlZFRlc3QocGF0aCkpIHsKLSAgICAgICAgICAg
IHZhciBpbmRleCA9IGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZS5maW5kSW5kZXgoCi0gICAg
ICAgICAgICAgIHRlc3QgPT4gdGVzdCA9PT0gcGF0aAotICAgICAgICAgICAgKTsKLSAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZS5zcGxpY2UoaW5kZXgsIDEpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlSW5jbHVkZWRUZXN0VG9nZ2xlKHBhdGgpIHsK
KyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAg
ICAgICAgaWYgKGhhc0luY2x1ZGVkVGVzdChwYXRoKSkgeworICAgICAgICAgICAgaGFuZGxlUmVt
b3ZlSW5jbHVkZWRUZXN0KHBhdGgpOwogICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBj
b25maWd1cmF0aW9uLnRlc3RzLmluY2x1ZGUucHVzaChwYXRoKTsKKyAgICAgICAgICAgIGhhbmRs
ZUFkZEluY2x1ZGVkVGVzdChwYXRoKTsKICAgICAgICAgICB9Ci0gICAgICAgICAgY29uZmlndXJh
dGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7Ci0gICAgICAgIH0sCi0gICAgICAg
IHNlbGVjdEFsbFRlc3RzOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlv
biA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOwotICAgICAgICAgIGNvbmZp
Z3VyYXRpb24udGVzdHMuaW5jbHVkZSA9IGFwaXMubWFwKGFwaSA9PiBhcGkucGF0aCk7Ci0gICAg
ICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7Ci0gICAg
ICAgIH0sCi0gICAgICAgIGRlc2VsZWN0QWxsVGVzdHM6IGZ1bmN0aW9uKCkgewotICAgICAgICAg
IHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVBZGRJbmNsdWRlZFRlc3QocGF0
aCkgeworICAgICAgICAgIHZhciB0ZXN0cyA9IHN0YXRlLmNvbmZpZ3VyYXRpb24udGVzdHM7Cisg
ICAgICAgICAgaWYgKHN0YXRlLnRlc3RzICYmIHN0YXRlLnRlc3RzW3BhdGguc3Vic3RyKDEpXSkg
eworICAgICAgICAgICAgdGVzdHMuaW5jbHVkZSA9IHRlc3RzLmluY2x1ZGUuZmlsdGVyKGZ1bmN0
aW9uICh0ZXN0KSB7CisgICAgICAgICAgICAgIHJldHVybiAhdGVzdC5tYXRjaChuZXcgUmVnRXhw
KCJeIiArIHBhdGggKyAiLyIpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdGVzdHMu
aW5jbHVkZSA9IHRlc3RzLmluY2x1ZGUuY29uY2F0KHN0YXRlLnRlc3RzW3BhdGguc3Vic3RyKDEp
XSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RzLmluY2x1ZGUucHVzaChw
YXRoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVS
ZW1vdmVJbmNsdWRlZFRlc3QocGF0aCkgeworICAgICAgICAgIHZhciB0ZXN0cyA9IHN0YXRlLmNv
bmZpZ3VyYXRpb24udGVzdHM7CisKKyAgICAgICAgICBpZiAoc3RhdGUudGVzdHMgJiYgc3RhdGUu
dGVzdHNbcGF0aC5zdWJzdHIoMSldKSB7CisgICAgICAgICAgICB0ZXN0cy5pbmNsdWRlID0gdGVz
dHMuaW5jbHVkZS5maWx0ZXIoZnVuY3Rpb24gKHRlc3QpIHsKKyAgICAgICAgICAgICAgcmV0dXJu
ICF0ZXN0Lm1hdGNoKG5ldyBSZWdFeHAoIl4iICsgcGF0aCArICIvIikpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBpbmRleCA9IHRlc3RzLmlu
Y2x1ZGUuZmluZEluZGV4KCh0ZXN0KSA9PiB0ZXN0ID09PSBwYXRoKTsKKyAgICAgICAgICAgIHRl
c3RzLmluY2x1ZGUuc3BsaWNlKGluZGV4LCAxKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBnZXRJbmNsdWRlZFJhdGlvKHBhdGgpIHsKKyAgICAgICAgICB2YXIg
aW5jbHVkZWRUZXN0cyA9IHN0YXRlLmNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZTsKKyAgICAg
ICAgICBpZiAoIXN0YXRlLnRlc3RzKSB7CisgICAgICAgICAgICByZXR1cm4gaW5jbHVkZWRUZXN0
cy5pbmRleE9mKHBhdGgpICE9PSAtMSA/IDEgOiAwOworICAgICAgICAgIH0KKyAgICAgICAgICB2
YXIgY291bnQgPSAwOworICAgICAgICAgIGZvciAodmFyIHRlc3Qgb2YgaW5jbHVkZWRUZXN0cykg
eworICAgICAgICAgICAgaWYgKCF0ZXN0Lm1hdGNoKG5ldyBSZWdFeHAoIl4iICsgcGF0aCkpKSBj
b250aW51ZTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgfQorICAgICAgICAgIHJl
dHVybiBjb3VudCAvIHN0YXRlLnRlc3RzW3BhdGguc3Vic3RyKDEpXS5sZW5ndGg7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBzZWxlY3RBbGxUZXN0cygpIHsKKyAgICAgICAgICB2YXIg
dGVzdHMgPSBzdGF0ZS5jb25maWd1cmF0aW9uLnRlc3RzOworICAgICAgICAgIGlmIChzdGF0ZS50
ZXN0cykgeworICAgICAgICAgICAgdGVzdHMuaW5jbHVkZSA9IFtdOworICAgICAgICAgICAgZm9y
ICh2YXIgYXBpIGluIHN0YXRlLnRlc3RzKSB7CisgICAgICAgICAgICAgIHRlc3RzLmluY2x1ZGUg
PSB0ZXN0cy5pbmNsdWRlLmNvbmNhdChzdGF0ZS50ZXN0c1thcGldKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdHMuaW5jbHVkZSA9IGFwaXMubWFw
KChhcGkpID0+IGFwaS5wYXRoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBkZXNlbGVjdEFsbFRlc3RzKCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9u
ID0gc3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICBjb25maWd1cmF0aW9uLnRlc3RzLmlu
Y2x1ZGUgPSBbXTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZp
Z3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgaGFzVGVzdFR5cGU6IGZ1bmN0aW9uKHZh
bHVlKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3Rh
dGUuY29uZmlndXJhdGlvbjsKLSAgICAgICAgICB2YXIgaW5kZXggPSBjb25maWd1cmF0aW9uLnR5
cGVzLmZpbmRJbmRleCh0eXBlID0+IHR5cGUgPT09IHZhbHVlKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGhhc1Rlc3RUeXBlKHZhbHVlKSB7CisgICAgICAgICAgdmFyIGNvbmZpZ3Vy
YXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIHZhciBpbmRleCA9IGNvbmZp
Z3VyYXRpb24udHlwZXMuZmluZEluZGV4KCh0eXBlKSA9PiB0eXBlID09PSB2YWx1ZSk7CiAgICAg
ICAgICAgcmV0dXJuIGluZGV4ICE9PSAtMTsKLSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlVGVz
dFR5cGVUb2dnbGU6IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRp
b24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsKLSAgICAgICAgICBpZiAo
Y29uZmlndXJhdGlvblVpLmhhc1Rlc3RUeXBlKHZhbHVlKSkgewotICAgICAgICAgICAgdmFyIGlu
ZGV4ID0gY29uZmlndXJhdGlvbi50eXBlcy5maW5kSW5kZXgodHlwZSA9PiB0eXBlID09PSB2YWx1
ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVUZXN0VHlwZVRvZ2dsZSh2
YWx1ZSkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlv
bjsKKyAgICAgICAgICBpZiAoaGFzVGVzdFR5cGUodmFsdWUpKSB7CisgICAgICAgICAgICB2YXIg
aW5kZXggPSBjb25maWd1cmF0aW9uLnR5cGVzLmZpbmRJbmRleCgodHlwZSkgPT4gdHlwZSA9PT0g
dmFsdWUpOwogICAgICAgICAgICAgY29uZmlndXJhdGlvbi50eXBlcy5zcGxpY2UoaW5kZXgsIDEp
OwogICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjb25maWd1cmF0aW9uLnR5cGVzLnB1
c2godmFsdWUpOwogICAgICAgICAgIH0KLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVy
U2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgc2VsZWN0QWxsVGVz
dFR5cGVzOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZp
Z3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb24u
dHlwZXMgPSB0eXBlcy5tYXAodHlwZSA9PiB0eXBlLnZhbHVlKTsKLSAgICAgICAgICBjb25maWd1
cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAg
ICAgZGVzZWxlY3RBbGxUZXN0VHlwZXM6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBjb25m
aWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBzZWxlY3RBbGxUZXN0VHlwZXMoKSB7CisgICAgICAgICAg
dmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIGNvbmZp
Z3VyYXRpb24udHlwZXMgPSB0eXBlcy5tYXAoKHR5cGUpID0+IHR5cGUudmFsdWUpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGVzZWxlY3RBbGxUZXN0VHlwZXMoKSB7CisgICAgICAg
ICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOwogICAgICAgICAgIGNv
bmZpZ3VyYXRpb24udHlwZXMgPSBbXTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVy
U2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgaGFzUmVmU2Vzc2lv
bjogZnVuY3Rpb24oc2Vzc2lvbikgewotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29u
ZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBoYXNSZWZTZXNzaW9uKHNlc3Npb24pIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJh
dGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAgdmFyIGluZGV4ID0gY29uZmln
dXJhdGlvbi5yZWZlcmVuY2VUb2tlbnMuZmluZEluZGV4KAotICAgICAgICAgICAgdG9rZW4gPT4g
dG9rZW4gPT09IHNlc3Npb24udG9rZW4KKyAgICAgICAgICAgICh0b2tlbikgPT4gdG9rZW4gPT09
IHNlc3Npb24udG9rZW4KICAgICAgICAgICApOwogICAgICAgICAgIHJldHVybiBpbmRleCAhPT0g
LTE7Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZVJlZlNlc3Npb25Ub2dnbGU6IGZ1bmN0aW9u
KHNlc3Npb24pIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25V
aS5zdGF0ZS5jb25maWd1cmF0aW9uOwotICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uVWkuaGFz
UmVmU2Vzc2lvbihzZXNzaW9uKSkgeworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFu
ZGxlUmVmU2Vzc2lvblRvZ2dsZShzZXNzaW9uKSB7CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRp
b24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIGlmIChoYXNSZWZTZXNzaW9uKHNl
c3Npb24pKSB7CiAgICAgICAgICAgICB2YXIgaW5kZXggPSBjb25maWd1cmF0aW9uLnJlZmVyZW5j
ZVRva2Vucy5maW5kSW5kZXgoCi0gICAgICAgICAgICAgIHRva2VuID0+IHRva2VuID09PSBzZXNz
aW9uLnRva2VuCisgICAgICAgICAgICAgICh0b2tlbikgPT4gdG9rZW4gPT09IHNlc3Npb24udG9r
ZW4KICAgICAgICAgICAgICk7CiAgICAgICAgICAgICBjb25maWd1cmF0aW9uLnJlZmVyZW5jZVRv
a2Vucy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBj
b25maWd1cmF0aW9uLnJlZmVyZW5jZVRva2Vucy5wdXNoKHNlc3Npb24udG9rZW4pOwogICAgICAg
ICAgIH0KLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRp
b24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgc2VsZWN0QWxsUmVmU2Vzc2lvbnM6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRl
LmNvbmZpZ3VyYXRpb247CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWxlY3RBbGxS
ZWZTZXNzaW9ucygpIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZp
Z3VyYXRpb247CiAgICAgICAgICAgY29uZmlndXJhdGlvbi5yZWZlcmVuY2VUb2tlbnMgPSByZWZl
cmVuY2VTZXNzaW9ucy5tYXAoCi0gICAgICAgICAgICBzZXNzaW9uID0+IHNlc3Npb24udG9rZW4K
KyAgICAgICAgICAgIChzZXNzaW9uKSA9PiBzZXNzaW9uLnRva2VuCiAgICAgICAgICAgKTsKLSAg
ICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgZGVzZWxlY3RBbGxSZWZTZXNzaW9uczogZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmln
dXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlc2VsZWN0QWxsUmVmU2Vz
c2lvbnMoKSB7CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0
aW9uOwogICAgICAgICAgIGNvbmZpZ3VyYXRpb24ucmVmZXJlbmNlVG9rZW5zID0gW107Ci0gICAg
ICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7Ci0gICAg
ICAgIH0sCi0gICAgICAgIGlzVGVzdExpc3RWYWxpZDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
dmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlzVGVzdExpc3RWYWxpZCgpIHsKKyAgICAg
ICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAg
cmV0dXJuIGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZS5sZW5ndGggPiAwOwotICAgICAgICB9
LAotICAgICAgICBpc1Rlc3RUeXBlTGlzdFZhbGlkOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2
YXIgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaXNUZXN0VHlwZUxpc3RWYWxpZCgpIHsKKyAg
ICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAg
ICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24udHlwZXMubGVuZ3RoID4gMDsKLSAgICAgICAgfSwKLSAg
ICAgICAgaXNDb25maWd1cmF0aW9uVmFsaWQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGlmICgh
Y29uZmlndXJhdGlvblVpLmlzVGVzdExpc3RWYWxpZCgpKSByZXR1cm4gZmFsc2U7Ci0gICAgICAg
ICAgaWYgKCFjb25maWd1cmF0aW9uVWkuaXNUZXN0VHlwZUxpc3RWYWxpZCgpKSByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpc0NvbmZpZ3VyYXRpb25WYWxpZCgp
IHsKKyAgICAgICAgICBpZiAoIWlzVGVzdExpc3RWYWxpZCgpKSByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgaWYgKCFpc1Rlc3RUeXBlTGlzdFZhbGlkKCkpIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSwKLSAgICAgICAgaXNTZXNzaW9uU3RhcnRpbmc6IGZ1
bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBjb25maWd1cmF0aW9uVWkuc3RhdGUuaXNTdGFy
dGluZzsKLSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlU3RhcnQ6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIGlmIChjb25maWd1cmF0aW9uVWkuaXNTZXNzaW9uU3RhcnRpbmcoKSkgcmV0dXJuOwot
ICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZp
Z3VyYXRpb247CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBpc1Nlc3Npb25TdGFydGlu
ZygpIHsKKyAgICAgICAgICByZXR1cm4gc3RhdGUuaXNTdGFydGluZzsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrQXBpTGlzdCgpIHsKKyAgICAgICAgICB2YXIgYXBpRXJyb3JF
bGVtZW50ID0gVUkuZ2V0RWxlbWVudCgiYXBpLWVycm9yIik7CisgICAgICAgICAgYXBpRXJyb3JF
bGVtZW50LmlubmVySFRNTCA9ICIiOworICAgICAgICAgIGlmICghaXNUZXN0TGlzdFZhbGlkKCkp
IHsKKyAgICAgICAgICAgIGFwaUVycm9yRWxlbWVudC5hcHBlbmRDaGlsZCgKKyAgICAgICAgICAg
ICAgVUkuY3JlYXRlRWxlbWVudCgKKyAgICAgICAgICAgICAgICBjcmVhdGVFcnJvck1lc3NhZ2Uo
CisgICAgICAgICAgICAgICAgICAiU2VsZWN0IGF0IGxlYXN0IG9uZSBBUEkgb3IgYXQgbGVhc3Qg
b25lIHRlc3Qgd2l0aGluIGFuIEFQSSIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgfQorICAgICAgICAgIHJlbmRlckJ1dHRvbnNG
aWVsZCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlU3RhcnQoKSB7Cisg
ICAgICAgICAgaWYgKGlzU2Vzc2lvblN0YXJ0aW5nKCkpIHJldHVybjsKKyAgICAgICAgICB2YXIg
Y29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAgdmFyIHRva2Vu
ID0gY29uZmlndXJhdGlvbi50b2tlbjsKLSAgICAgICAgICBXYXZlU2VydmljZS51cGRhdGVTZXNz
aW9uKHRva2VuLCBjb25maWd1cmF0aW9uLCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIFdhdmVT
ZXJ2aWNlLnVwZGF0ZUxhYmVscyh0b2tlbiwgY29uZmlndXJhdGlvbi5sYWJlbHMsIGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgICBXYXZlU2VydmljZS5zdGFydFNlc3Npb24odG9rZW4sIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5vcGVuUmVzdWx0c1BhZ2Uo
dG9rZW4pOworICAgICAgICAgIFdhdmVTZXJ2aWNlLnVwZGF0ZVNlc3Npb24odG9rZW4sIGNvbmZp
Z3VyYXRpb24sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnVwZGF0ZUxh
YmVscyh0b2tlbiwgY29uZmlndXJhdGlvbi5sYWJlbHMsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgV2F2ZVNlcnZpY2Uuc3RhcnRTZXNzaW9uKHRva2VuLCBmdW5jdGlvbiAoKSB7CisgICAg
ICAgICAgICAgICAgb3BlblJlc3VsdHNQYWdlKHRva2VuKTsKICAgICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICB9KTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWku
c3RhdGUuaXNTdGFydGluZyA9IHRydWU7Ci0gICAgICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRl
clNlc3Npb25Db25maWd1cmF0aW9uKCk7Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZURpc2Nh
cmRDaGFuZ2VzOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkuc3RhdGUu
Y29uZmlndXJhdGlvbiA9IHV0aWxzLmNvcHlPYmplY3QoCi0gICAgICAgICAgICBjb25maWd1cmF0
aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbkJhY2t1cAotICAgICAgICAgICk7Ci0gICAgICAgICAg
Y29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7Ci0gICAgICAgIH0s
Ci0gICAgICAgIGhhbmRsZUV4cGlyYXRpb246IGZ1bmN0aW9uKCkgewotICAgICAgICAgIGNvbmZp
Z3VyYXRpb25VaS5zdGF0ZS5leHBpcmVkID0gdHJ1ZTsKLSAgICAgICAgICBjb25maWd1cmF0aW9u
VWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgICBjb25maWd1cmF0aW9u
VWkucmVuZGVyUmVzdW1lVmlldygpOwotICAgICAgICB9LAotICAgICAgICBvcGVuUmVzdWx0c1Bh
Z2U6IGZ1bmN0aW9uKHRva2VuKSB7CisgICAgICAgICAgc3RhdGUuaXNTdGFydGluZyA9IHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVEaXNjYXJkQ2hhbmdlcygpIHsK
KyAgICAgICAgICBzdGF0ZS5jb25maWd1cmF0aW9uID0gdXRpbHMuY29weU9iamVjdChzdGF0ZS5j
b25maWd1cmF0aW9uQmFja3VwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRs
ZUV4cGlyYXRpb24oKSB7CisgICAgICAgICAgc3RhdGUuZXhwaXJlZCA9IHRydWU7CisgICAgICAg
ICAgcmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICByZW5kZXJSZXN1bWVW
aWV3KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuUmVzdWx0c1BhZ2UodG9r
ZW4pIHsKICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gV0VCX1JPT1QgKyAicmVzdWx0cy5odG1s
P3Rva2VuPSIgKyB0b2tlbjsKLSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlQWRkRXhsdWRlZFRl
c3RzUmF3OiBmdW5jdGlvbigpIHsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRs
ZUFkZEV4bHVkZWRUZXN0c1JhdygpIHsKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0c1RleHRB
cmVhID0gVUkuZ2V0RWxlbWVudCgiZXhjbHVkZWQtdGVzdHMtdGV4dCIpOwogICAgICAgICAgIHZh
ciB0ZXN0cyA9IGV4Y2x1ZGVkVGVzdHNUZXh0QXJlYS52YWx1ZS5zcGxpdCgiXG4iKTsKLSAgICAg
ICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0
aW9uOworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsK
ICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0cyA9IGNvbmZpZ3VyYXRpb24udGVzdHMuZXhjbHVk
ZTsKICAgICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIHRlc3RzKSB7CiAgICAgICAgICAgICBpZiAo
IXRlc3QpIGNvbnRpbnVlOwpAQCAtMjkyLDIxICs0NDksMjIgQEAKICAgICAgICAgICB9CiAKICAg
ICAgICAgICBleGNsdWRlZFRlc3RzVGV4dEFyZWEudmFsdWUgPSAiIjsKLSAgICAgICAgICBjb25m
aWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0cygpOwotICAgICAgICB9LAotICAgICAgICBo
YW5kbGVBZGRFeGx1ZGVkVGVzdHNNYWxmdW5jdGlvbmluZzogZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgcmVuZGVyRXhjbHVkZWRUZXN0cygpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
aGFuZGxlQWRkRXhsdWRlZFRlc3RzTWFsZnVuY3Rpb25pbmcoKSB7CiAgICAgICAgICAgdmFyIGV4
Y2x1ZGVkVGVzdHNUZXh0QXJlYSA9IFVJLmdldEVsZW1lbnQoImV4Y2x1ZGVkLXRlc3RzLXRleHQi
KTsKICAgICAgICAgICB2YXIgdG9rZW4gPSBleGNsdWRlZFRlc3RzVGV4dEFyZWEudmFsdWU7CiAg
ICAgICAgICAgdmFyIHRva2VuUmVnRXhwID0gbmV3IFJlZ0V4cCgKICAgICAgICAgICAgICJeW2Et
ZjAtOV17OH0oLVthLWYwLTldezAsNH18JCkoLVthLWYwLTldezAsNH18JCkoLVthLWYwLTldezAs
NH18JCkoLVthLWYwLTldezAsMTJ9fCQpIgogICAgICAgICAgICk7Ci0gICAgICAgICAgdmFyIGNv
bmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAg
ICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAg
dmFyIGV4Y2x1ZGVkVGVzdHMgPSBjb25maWd1cmF0aW9uLnRlc3RzLmV4Y2x1ZGU7CiAgICAgICAg
ICAgaWYgKHRva2VuUmVnRXhwLnRlc3QodG9rZW4pKSB7CiAgICAgICAgICAgICBXYXZlU2Vydmlj
ZS5maW5kVG9rZW4oCiAgICAgICAgICAgICAgIHRva2VuLAotICAgICAgICAgICAgICBmdW5jdGlv
bih0b2tlbikgewotICAgICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRNYWxmdW5jdGlvbmlu
Z1Rlc3RzKHRva2VuLCBmdW5jdGlvbigKKyAgICAgICAgICAgICAgZnVuY3Rpb24gKHRva2VuKSB7
CisgICAgICAgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZE1hbGZ1bmN0aW9uaW5nVGVzdHModG9r
ZW4sIGZ1bmN0aW9uICgKICAgICAgICAgICAgICAgICAgIG1hbGZ1bmN0aW9uaW5nVGVzdHMKICAg
ICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgIGZvciAodmFyIHRlc3Qgb2YgbWFs
ZnVuY3Rpb25pbmdUZXN0cykgewpAQCAtMzE0LDEwMCArNDcyLDEwOSBAQAogICAgICAgICAgICAg
ICAgICAgICBpZiAoZXhjbHVkZWRUZXN0cy5pbmRleE9mKHRlc3QpICE9PSAtMSkgY29udGludWU7
CiAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVkVGVzdHMucHVzaCh0ZXN0KTsKICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJFeGNs
dWRlZFRlc3RzKCk7CisgICAgICAgICAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5leGNsdWRlZFRl
c3RFcnJvciA9ICJTZXNzaW9uIG5vdCBmb3VuZCI7Ci0gICAgICAgICAgICAgICAgY29uZmlndXJh
dGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9yID0gIlNlc3Npb24gbm90
IGZvdW5kIjsKKyAgICAgICAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7CiAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICk7CiAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5leGNsdWRlZFRlc3RFcnJvciA9ICJJbnZhbGlkIHNlc3Np
b24gdG9rZW4iOwotICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVz
dHMoKTsKKyAgICAgICAgICAgIHN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9yID0gIkludmFsaWQgc2Vz
c2lvbiB0b2tlbiI7CisgICAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7CiAgICAgICAg
ICAgfQotICAgICAgICB9LAotICAgICAgICBoYW5kbGVBZGRFeGx1ZGVkVGVzdHNFeGNsdWRlZDog
ZnVuY3Rpb24oKSB7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVBZGRFeGx1
ZGVkVGVzdHNFeGNsdWRlZCgpIHsKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0c1RleHRBcmVh
ID0gVUkuZ2V0RWxlbWVudCgiZXhjbHVkZWQtdGVzdHMtdGV4dCIpOwogICAgICAgICAgIHZhciB0
b2tlbiA9IGV4Y2x1ZGVkVGVzdHNUZXh0QXJlYS52YWx1ZTsKICAgICAgICAgICB2YXIgdG9rZW5S
ZWdFeHAgPSBuZXcgUmVnRXhwKAogICAgICAgICAgICAgIl5bYS1mMC05XXs4fSgtW2EtZjAtOV17
MCw0fXwkKSgtW2EtZjAtOV17MCw0fXwkKSgtW2EtZjAtOV17MCw0fXwkKSgtW2EtZjAtOV17MCwx
Mn18JCkiCiAgICAgICAgICAgKTsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZp
Z3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIHZhciBjb25maWd1cmF0
aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0cyA9
IGNvbmZpZ3VyYXRpb24udGVzdHMuZXhjbHVkZTsKICAgICAgICAgICBpZiAodG9rZW5SZWdFeHAu
dGVzdCh0b2tlbikpIHsKICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLmZpbmRUb2tlbigKICAgICAg
ICAgICAgICAgdG9rZW4sCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKHRva2VuKSB7Ci0gICAgICAg
ICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0aW9uKHNlc3Npb25D
b25maWcpIHsKKyAgICAgICAgICAgICAgZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgICAgICAg
ICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0aW9uIChzZXNzaW9uQ29uZmln
KSB7CiAgICAgICAgICAgICAgICAgICB2YXIgcHJldkV4Y2x1ZGVkVGVzdHMgPSBzZXNzaW9uQ29u
ZmlnLnRlc3RzLmV4Y2x1ZGU7CiAgICAgICAgICAgICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIHBy
ZXZFeGNsdWRlZFRlc3RzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdCkgY29udGlu
dWU7CiAgICAgICAgICAgICAgICAgICAgIGlmIChleGNsdWRlZFRlc3RzLmluZGV4T2YodGVzdCkg
IT09IC0xKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZWRUZXN0cy5wdXNo
KHRlc3QpOwogICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgY29uZmlndXJh
dGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAgICAgICAgICAgICAgIHJlbmRlckV4
Y2x1ZGVkVGVzdHMoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvblVp
LnN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9yID0gIlNlc3Npb24gbm90IGZvdW5kIjsKLSAgICAgICAg
ICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0cygpOworICAgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgc3RhdGUuZXhjbHVkZWRUZXN0RXJy
b3IgPSAiU2Vzc2lvbiBub3QgZm91bmQiOworICAgICAgICAgICAgICAgIHJlbmRlckV4Y2x1ZGVk
VGVzdHMoKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgKTsKICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9y
ID0gIkludmFsaWQgc2Vzc2lvbiB0b2tlbiI7Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uVWku
cmVuZGVyRXhjbHVkZWRUZXN0cygpOworICAgICAgICAgICAgc3RhdGUuZXhjbHVkZWRUZXN0RXJy
b3IgPSAiSW52YWxpZCBzZXNzaW9uIHRva2VuIjsKKyAgICAgICAgICAgIHJlbmRlckV4Y2x1ZGVk
VGVzdHMoKTsKICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZVJlbW92ZUV4
Y2x1ZGVkVGVzdDogZnVuY3Rpb24odGVzdCkgewotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9u
ID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBoYW5kbGVSZW1vdmVFeGNsdWRlZFRlc3QodGVzdCkgeworICAgICAgICAg
IHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICB2YXIg
ZXhjbHVkZWRUZXN0cyA9IGNvbmZpZ3VyYXRpb24udGVzdHMuZXhjbHVkZTsKICAgICAgICAgICB2
YXIgaW5kZXggPSBleGNsdWRlZFRlc3RzLmluZGV4T2YodGVzdCk7CiAgICAgICAgICAgZXhjbHVk
ZWRUZXN0cy5zcGxpY2UoaW5kZXgsIDEpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5k
ZXJFeGNsdWRlZFRlc3RzKCk7Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZUV4Y2x1ZGVJbnB1
dENoYW5nZTogZnVuY3Rpb24odHlwZSkgewotICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uVWku
c3RhdGUuYWN0aXZlRXhjbHVkZUlucHV0ID09PSB0eXBlKSB7Ci0gICAgICAgICAgICBjb25maWd1
cmF0aW9uVWkuc3RhdGUuYWN0aXZlRXhjbHVkZUlucHV0ID0gbnVsbDsKKyAgICAgICAgICByZW5k
ZXJFeGNsdWRlZFRlc3RzKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVF
eGNsdWRlSW5wdXRDaGFuZ2UodHlwZSkgeworICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVFeGNs
dWRlSW5wdXQgPT09IHR5cGUpIHsKKyAgICAgICAgICAgIHN0YXRlLmFjdGl2ZUV4Y2x1ZGVJbnB1
dCA9IG51bGw7CiAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25V
aS5zdGF0ZS5hY3RpdmVFeGNsdWRlSW5wdXQgPSB0eXBlOworICAgICAgICAgICAgc3RhdGUuYWN0
aXZlRXhjbHVkZUlucHV0ID0gdHlwZTsKICAgICAgICAgICB9Ci0gICAgICAgICAgY29uZmlndXJh
dGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKLSAgICAgICAgfSwKLSAgICAgICAgc2hvd0Fk
ZExhYmVsOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkuc3RhdGUuYWRk
TGFiZWxWaXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vz
c2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzaG93QWRkTGFiZWwoKSB7CisgICAgICAgICAg
c3RhdGUuYWRkTGFiZWxWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICByZW5kZXJMYWJlbHNGaWVs
ZCgpOwogICAgICAgICAgIFVJLmdldEVsZW1lbnQoInNlc3Npb24tbGFiZWwtaW5wdXQiKS5mb2N1
cygpOwotICAgICAgICB9LAotICAgICAgICBoaWRlQWRkTGFiZWw6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5hZGRMYWJlbFZpc2libGUgPSBmYWxzZTsKLSAg
ICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgYWRkTGFiZWw6IGZ1bmN0aW9uKCkgeworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gaGlkZUFkZExhYmVsKCkgeworICAgICAgICAgIHN0YXRlLmFkZExhYmVs
VmlzaWJsZSA9IGZhbHNlOworICAgICAgICAgIHJlbmRlckxhYmVsc0ZpZWxkKCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBhZGRMYWJlbCgpIHsKICAgICAgICAgICB2YXIgbGFiZWwg
PSBVSS5nZXRFbGVtZW50KCJzZXNzaW9uLWxhYmVsLWlucHV0IikudmFsdWU7CiAgICAgICAgICAg
aWYgKCFsYWJlbCkgcmV0dXJuOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25m
aWd1cmF0aW9uLmxhYmVscy5wdXNoKGxhYmVsKTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWku
cmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICBzdGF0ZS5jb25maWd1cmF0
aW9uLmxhYmVscy5wdXNoKGxhYmVsKTsKKyAgICAgICAgICByZW5kZXJMYWJlbHNGaWVsZCgpOwog
ICAgICAgICAgIFVJLmdldEVsZW1lbnQoInNlc3Npb24tbGFiZWwtaW5wdXQiKS5mb2N1cygpOwot
ICAgICAgICB9LAotICAgICAgICByZW1vdmVMYWJlbDogZnVuY3Rpb24oaW5kZXgpIHsKLSAgICAg
ICAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb24gfSA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUxhYmVsKGluZGV4KSB7CisgICAgICAg
ICAgY29uc3QgeyBjb25maWd1cmF0aW9uIH0gPSBzdGF0ZTsKICAgICAgICAgICBjb25maWd1cmF0
aW9uLmxhYmVscy5zcGxpY2UoaW5kZXgsIDEpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5y
ZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICB9LAotICAgICAgICByZXN1bWVT
ZXNzaW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZW5kZXJMYWJlbHNGaWVsZCgpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVzdW1lU2Vzc2lvbigpIHsKICAgICAgICAgICB2
YXIgcmVzdW1lVG9rZW4gPSBVSS5nZXRFbGVtZW50KCJyZXN1bWUtdG9rZW4iKS52YWx1ZTsKICAg
ICAgICAgICBpZiAoIXJlc3VtZVRva2VuKSByZXR1cm47CiAKICAgICAgICAgICBXYXZlU2Vydmlj
ZS5yZXN1bWVTZXNzaW9uKAotICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZp
Z3VyYXRpb24udG9rZW4sCisgICAgICAgICAgICBzdGF0ZS5jb25maWd1cmF0aW9uLnRva2VuLAog
ICAgICAgICAgICAgcmVzdW1lVG9rZW4sCi0gICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgY29uZmlndXJhdGlvblVpLm9wZW5SZXN1bHRzUGFnZShyZXN1bWVUb2tlbik7Cisg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIG9wZW5SZXN1bHRzUGFnZShy
ZXN1bWVUb2tlbik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgKTsKLSAgICAgICAgfSwKLSAg
ICAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHJlbmRlcigpIHsKICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uVmlldyA9IFVJLmNyZWF0
ZUVsZW1lbnQoewogICAgICAgICAgICAgZWxlbWVudDogInNlY3Rpb24iLAogICAgICAgICAgICAg
Y2xhc3NOYW1lOiAic2VjdGlvbiIsCkBAIC00MTksNDggKzU4NiwxMTQgQEAKICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImltZyIsCiAgICAgICAgICAg
ICAgICAgICAgIHNyYzogInJlcy93YXZlbG9nb18yMDE2LmpwZyIsCi0gICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogInNpdGUtbG9nbyIKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAic2l0ZS1sb2dvIiwKICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICB7
IGNsYXNzTmFtZTogInRpdGxlIiwgdGV4dDogIlNlc3Npb24gQ29uZmlndXJhdGlvbiIgfQotICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAidGl0bGUiLCB0
ZXh0OiAiU2Vzc2lvbiBDb25maWd1cmF0aW9uIiB9LAorICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZDogInNlc3Np
b24tY29uZmlndXJhdGlvbiIsCi0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVy
IiwKLSAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIKICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlkOiAicmVzdW1lLXZp
ZXciLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRhaW5lciIsCi0gICAgICAgICAg
ICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iCi0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIsCisg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAg
IGNvbnN0IHJvb3QgPSBVSS5nZXRSb290KCk7CiAgICAgICAgICAgcm9vdC5pbm5lckhUTUwgPSAi
IjsKICAgICAgICAgICByb290LmFwcGVuZENoaWxkKGNvbmZpZ3VyYXRpb25WaWV3KTsKLSAgICAg
ICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAg
ICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyUmVzdW1lVmlldygpOwotICAgICAgICB9LAotICAg
ICAgICByZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbjogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAg
dmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsK
KyAgICAgICAgICByZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOworICAgICAgICAgIHJlbmRl
clJlc3VtZVZpZXcoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlbmRlclNlc3Np
b25Db25maWd1cmF0aW9uKCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUu
Y29uZmlndXJhdGlvbjsKKyAgICAgICAgICB2YXIgc3RhdHVzID0gc3RhdGUuc3RhdHVzOwogICAg
ICAgICAgIHZhciBzZXNzaW9uQ29uZmlndXJhdGlvblZpZXcgPSBVSS5jcmVhdGVFbGVtZW50KHt9
KTsKICAgICAgICAgICB2YXIgc2Vzc2lvbkNvbmZpZ3VyYXRpb24gPSBVSS5nZXRFbGVtZW50KCJz
ZXNzaW9uLWNvbmZpZ3VyYXRpb24iKTsKICAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlvbi5p
bm5lckhUTUwgPSAiIjsKIAotICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uVWkuc3RhdGUuZXhw
aXJlZCkgeworICAgICAgICAgIGlmIChzdGF0ZS5leHBpcmVkKSB7CiAgICAgICAgICAgICB2YXIg
ZXhwaXJlZEluZGljYXRvciA9IFVJLmNyZWF0ZUVsZW1lbnQoewotICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJsZXZlbCIsCisgICAgICAgICAgICAgIGNsYXNzTmFtZTogImxldmVsIGNvbnRhaW5l
ciIsCisgICAgICAgICAgICAgIHN0eWxlOiAibWF4LXdpZHRoOiA1MDBweCIsCiAgICAgICAgICAg
ICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAotICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImxldmVsLWl0ZW0iLAorICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogImxldmVsLWl0ZW0gZmllbGQgY29sdW1uIiwKICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogWwogICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB0ZXh0OgotICAg
ICAgICAgICAgICAgICAgICAgICJUaGUgc3BlY2lmaWVkIHNlc3Npb24gZG9lcyBub3QgZXhpc3Qg
b3IgaXMgYWxyZWFkeSBleHBpcmVkLiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBdCi0gICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImFy
dGljbGUiLAorICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtZXNzYWdlIGlzLWRhbmdl
ciIsCisgICAgICAgICAgICAgICAgICAgIGlkOiAiZmluZC1lcnJvciIsCisgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBm
aW5kIGFueSBzZXNzaW9ucyEgVHJ5IGFkZGluZyBtb3JlIGNoYXJhY3RlcnMgb2YgdGhlIHRva2Vu
LiIsCisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtZXNzYWdlLWJvZHkiLAor
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlOiAiZGlzcGxheTogbm9uZSIsCisgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJs
YWJlbCBoYXMtdGV4dC13ZWlnaHQtbm9ybWFsIiwKKyAgICAgICAgICAgICAgICAgICAgdGV4dDog
IlNlc3Npb24gdG9rZW46IiwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLAorICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkIiwKKyAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogImRpc3Bs
YXk6IGZsZXg7IG1hcmdpbi1ib3R0b206IDEwcHg7IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaW5wdXQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5wdXRUeXBlOiAidGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJpbnB1dCBpcy1mYW1pbHktbW9ub3NwYWNlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkOiAidG9rZW4tZnJhZ21lbnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJGaXJzdCA4IGNoYXJhY3RlcnMgb3IgbW9yZSBvZiBzZXNzaW9uIHRva2VuIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bjogZnVuY3Rpb24gKGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICJFbnRlciIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVDb25maWd1cmVTZXNz
aW9uKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogImZpZWxkIGlzLWdyb3VwZWQgaXMtZ3JvdXBlZC1yaWdodCIsCisgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29u
dHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiaWNvbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtY29nIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
eyB0ZXh0OiAiQ29uZmlndXJlIFNlc3Npb24iLCBlbGVtZW50OiAic3BhbiIgfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrOiBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNvbmZpZ3VyZVNlc3Np
b24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb25WaWV3LmFwcGVuZENoaWxkKGV4cGlyZWRJbmRpY2F0b3Ip
OwogICAgICAgICAgICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24uYXBwZW5kQ2hpbGQoc2Vzc2lvbkNv
bmZpZ3VyYXRpb25WaWV3KTsKQEAgLTQ2OCwzNTUgKzcwMSw1ODEgQEAKICAgICAgICAgICB9CiAK
ICAgICAgICAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHsKLSAgICAgICAgICAgIHZhciBsb2FkaW5n
SW5kaWNhdG9yID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImxldmVsIiwKLSAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICBlbGVt
ZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibGV2ZWwtaXRlbSIsCi0g
ICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudDogImkiLAotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJmYXMgZmEtc3Bpbm5lciBmYS1wdWxzZSIKLSAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWxlZnQ6IDAu
NGVtOyIsCi0gICAgICAgICAgICAgICAgICAgIHRleHQ6ICJMb2FkaW5nIGNvbmZpZ3VyYXRpb24g
Li4uIgotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB2YXIgbG9hZGluZ0luZGljYXRvciA9
IGNyZWF0ZUxvYWRpbmdJbmRpY2F0b3IoCisgICAgICAgICAgICAgICJMb2FkaW5nIGNvbmZpZ3Vy
YXRpb24gLi4uIgorICAgICAgICAgICAgKTsKICAgICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0
aW9uVmlldy5hcHBlbmRDaGlsZChsb2FkaW5nSW5kaWNhdG9yKTsKICAgICAgICAgICAgIHNlc3Np
b25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKHNlc3Npb25Db25maWd1cmF0aW9uVmlldyk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgfQogCi0gICAgICAgICAgdmFyIGFkZExhYmVs
VmlzaWJsZSA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5hZGRMYWJlbFZpc2libGU7CisgICAgICAg
ICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24ucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoCisgICAgICAg
ICAgICBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJzZXNzaW9uLWNvbmZp
Z3VyYXRpb24iLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWluZXIiLAorICAgICAg
ICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIsCisgICAgICAgICAgICAgIGNoaWxk
cmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWQ6ICJ0b2tlbi1m
aWVsZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICBpZDogImV4cGlyYXRpb24tZmllbGQiLAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWQ6ICJsYWJlbHMtZmllbGQiLAorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWQ6
ICJhcGlzLWZpZWxkIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgIGlkOiAiZXhjbHVkZS1maWVsZCIsCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZDogInR5cGVzLWZpZWxkIiwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
IGlkOiAicmVmZXJlbmNlcy1maWVsZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICBpZDogImJ1dHRvbnMtZmllbGQiLAorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAg
IHNlc3Npb25Db25maWd1cmF0aW9uCisgICAgICAgICAgKTsKIAotICAgICAgICAgIHZhciB0b2tl
bkZpZWxkID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZCBpcy1ob3Jpem9udGFsIiwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAg
ICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiVG9rZW4iIH0KLSAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkLWJvZHkiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjog
ewotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKLSAgICAgICAgICAg
ICAgICAgICAgdGV4dDogY29uZmlndXJhdGlvbi50b2tlbgotICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAg
ICAgIH0pOwotICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKHRva2Vu
RmllbGQpOworICAgICAgICAgIHJlbmRlclRva2VuRmllbGQoKTsKKyAgICAgICAgICByZW5kZXJF
eHBpcmF0aW9uRmllbGQoKTsKKyAgICAgICAgICByZW5kZXJMYWJlbHNGaWVsZCgpOworICAgICAg
ICAgIHJlbmRlckFwaXNGaWVsZCgpOworICAgICAgICAgIHJlbmRlckV4Y2x1ZGVGaWVsZCgpOwor
ICAgICAgICAgIHJlbmRlclR5cGVzRmllbGQoKTsKKyAgICAgICAgICByZW5kZXJSZWZlcmVuY2Vz
RmllbGQoKTsKKyAgICAgICAgICByZW5kZXJCdXR0b25zRmllbGQoKTsKKyAgICAgICAgfQogCi0g
ICAgICAgICAgZXhwaXJhdGlvbkZpZWxkID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAg
ICBjbGFzc05hbWU6ICJmaWVsZCBpcy1ob3Jpem9udGFsIiwKLSAgICAgICAgICAgIGNoaWxkcmVu
OiBbCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1s
YWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiRXhwaXJlcyIgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCi0gICAgICAgICAgICAgICAgY2hp
bGRyZW46IHsKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKKyAgICAgICAg
ZnVuY3Rpb24gcmVuZGVyVG9rZW5GaWVsZCgpIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlv
biA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAgICAgdmFyIHRva2VuRmllbGQgPSBVSS5n
ZXRFbGVtZW50KCJ0b2tlbi1maWVsZCIpOworICAgICAgICAgIHRva2VuRmllbGQucGFyZW50Tm9k
ZS5yZXBsYWNlQ2hpbGQoCisgICAgICAgICAgICBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAg
ICAgICAgaWQ6ICJ0b2tlbi1maWVsZCIsCisgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxk
IGlzLWhvcml6b250YWwiLAorICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKKyAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRva2Vu
IiB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCiAgICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogewotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKLSAgICAgICAg
ICAgICAgICAgICAgdGV4dDogbmV3IERhdGUoCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmln
dXJhdGlvbi5leHBpcmF0aW9uRGF0ZQotICAgICAgICAgICAgICAgICAgICApLnRvTG9jYWxlU3Ry
aW5nKCkKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBzZXNzaW9uQ29u
ZmlndXJhdGlvbi5hcHBlbmRDaGlsZChleHBpcmF0aW9uRmllbGQpOworICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
CisgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCisgICAgICAgICAg
ICAgICAgICAgICAgdGV4dDogY29uZmlndXJhdGlvbi50b2tlbiwKKyAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgdG9rZW5GaWVsZAorICAgICAg
ICAgICk7CisgICAgICAgIH0KIAotICAgICAgICAgIHZhciBsYWJlbHNGaWVsZCA9IFVJLmNyZWF0
ZUVsZW1lbnQoewotICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIs
Ci0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIkxhYmVscyIgfQotICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIs
Ci0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkIGlzLWdyb3VwZWQgaXMtZ3JvdXBlZC1tdWx0aWxpbmUiLAotICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IGNvbmZpZ3VyYXRpb24ubGFiZWxzCi0gICAgICAgICAgICAgICAgICAg
IC5tYXAoKGxhYmVsLCBpbmRleCkgPT4gKHsKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyRXhwaXJh
dGlvbkZpZWxkKCkgeworICAgICAgICAgIHZhciBzdGF0dXMgPSBzdGF0ZS5zdGF0dXM7CisgICAg
ICAgICAgdmFyIGV4cGlyYXRpb25GaWVsZCA9IFVJLmdldEVsZW1lbnQoImV4cGlyYXRpb24tZmll
bGQiKTsKKyAgICAgICAgICBleHBpcmF0aW9uRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQo
CisgICAgICAgICAgICBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJleHBp
cmF0aW9uLWZpZWxkIiwKKyAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpv
bnRhbCIsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAorICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiRXhwaXJlcyIgfSwKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGNs
YXNzTmFtZTogImZpZWxkLWJvZHkiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAg
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQiLAorICAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wi
LAotICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJ0YWdzIGhhcy1hZGRvbnMiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJ0YWcgaXMtaW5mbyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGV4dDogbGFiZWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJh
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0YWcgaXMtZGVsZXRl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9PiBjb25maWd1cmF0
aW9uVWkucmVtb3ZlTGFiZWwoaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIH0pKQotICAgICAgICAgICAgICAgICAgICAuY29uY2F0KAotICAgICAgICAg
ICAgICAgICAgICAgIGFkZExhYmVsVmlzaWJsZQotICAgICAgICAgICAgICAgICAgICAgICAgPyBb
CisgICAgICAgICAgICAgICAgICAgICAgdGV4dDogc3RhdHVzLmV4cGlyYXRpb25EYXRlLnRvTG9j
YWxlU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KSwK
KyAgICAgICAgICAgIGV4cGlyYXRpb25GaWVsZAorICAgICAgICAgICk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiByZW5kZXJMYWJlbHNGaWVsZCgpIHsKKyAgICAgICAgICB2YXIgYWRk
TGFiZWxWaXNpYmxlID0gc3RhdGUuYWRkTGFiZWxWaXNpYmxlOworICAgICAgICAgIHZhciBjb25m
aWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAgICB2YXIgbGFiZWxzRmll
bGQgPSBVSS5nZXRFbGVtZW50KCJsYWJlbHMtZmllbGQiKTsKKworICAgICAgICAgIGxhYmVsc0Zp
ZWxkLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKAorICAgICAgICAgICAgVUkuY3JlYXRlRWxlbWVu
dCh7CisgICAgICAgICAgICAgIGlkOiAibGFiZWxzLWZpZWxkIiwKKyAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQt
bGFiZWwiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwi
LCB0ZXh0OiAiTGFiZWxzIiB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCisgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZCBpcy1ncm91cGVkIGlzLWdyb3VwZWQtbXVsdGlsaW5lIiwKKyAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IGNvbmZpZ3VyYXRpb24ubGFiZWxzCisgICAgICAgICAgICAgICAgICAgICAgLm1h
cCgobGFiZWwsIGluZGV4KSA9PiAoeworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0YWdzIGhhcy1hZGRvbnMiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wg
ZmllbGQgaXMtZ3JvdXBlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudDogImlucHV0IiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpbnB1dCBpcy1zbWFsbCBjb250cm9sIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIndpZHRoOiAxMHJlbSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJzZXNzaW9uLWxhYmVsLWlucHV0IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAidGV4dCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlVcDogZXZlbnQgPT4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmtleUNvZGUgPT09IDEzCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uZmlndXJhdGlvblVpLmFkZExhYmVsKCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQg
aXMtc21hbGwgaXMtcm91bmRlZCBjb250cm9sIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0OiAic2F2ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b25DbGljazogY29uZmlndXJhdGlvblVpLmFkZExhYmVsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwgaXMt
cm91bmRlZCBjb250cm9sIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0
OiAiY2FuY2VsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBj
b25maWd1cmF0aW9uVWkuaGlkZUFkZExhYmVsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNw
YW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAidGFnIGlzLWlu
Zm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogbGFiZWwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtcm91bmRl
ZCBpcy1zbWFsbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiQWRkIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGNvbmZpZ3VyYXRpb25VaS5z
aG93QWRkTGFiZWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICAgIH0pOwotICAgICAgICAg
IHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKGxhYmVsc0ZpZWxkKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJhIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogInRhZyBpcy1kZWxldGUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb25DbGljazogKCkgPT4gcmVtb3ZlTGFiZWwoaW5kZXgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIH0pKQorICAgICAg
ICAgICAgICAgICAgICAgIC5jb25jYXQoCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRMYWJl
bFZpc2libGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImNvbnRyb2wgZmllbGQgaXMtZ3JvdXBlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImlucHV0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImlucHV0IGlzLXNt
YWxsIGNvbnRyb2wiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6
ICJ3aWR0aDogMTByZW0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6
ICJzZXNzaW9uLWxhYmVsLWlucHV0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHR5cGU6ICJ0ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u
S2V5VXA6IChldmVudCkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnQua2V5Q29kZSA9PT0gMTMgPyBhZGRMYWJlbCgpIDogbnVsbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxp
bmVkIGlzLXNtYWxsIGlzLXJvdW5kZWQgY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXh0OiAic2F2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvbkNsaWNrOiBhZGRMYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsIGlz
LXJvdW5kZWQgY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0OiAiY2FuY2VsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xp
Y2s6IGhpZGVBZGRMYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtcm91bmRlZCBp
cy1zbWFsbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBZGQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBzaG93QWRkTGFiZWwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSksCisgICAg
ICAgICAgICBsYWJlbHNGaWVsZAorICAgICAgICAgICk7CisgICAgICAgIH0KIAotICAgICAgICAg
IHZhciBhcGlzRmllbGQgPSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkIGlzLWhvcml6b250YWwiLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6
ICJsYWJlbCIsIHRleHQ6ICJBUElzIiB9LAotICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlv
blVpLmNyZWF0ZVNlbGVjdERlc2VsZWN0QnV0dG9ucygKLSAgICAgICAgICAgICAgICAgICAgY29u
ZmlndXJhdGlvblVpLnNlbGVjdEFsbFRlc3RzLAotICAgICAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uVWkuZGVzZWxlY3RBbGxUZXN0cwotICAgICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
Ci0gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCisgICAgICAgIGZ1bmN0aW9u
IHJlbmRlckFwaXNGaWVsZCgpIHsKKyAgICAgICAgICB2YXIgYXBpc0ZpZWxkID0gVUkuZ2V0RWxl
bWVudCgiYXBpcy1maWVsZCIpOworICAgICAgICAgIGFwaXNGaWVsZC5wYXJlbnROb2RlLnJlcGxh
Y2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQoeworICAgICAgICAgICAgICBp
ZDogImFwaXMtZmllbGQiLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1ob3Jp
em9udGFsIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCisgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogImxhYmVs
IiwgdGV4dDogIkFQSXMiIH0sCisgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNlbGVjdERlc2Vs
ZWN0QnV0dG9ucygKKyAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxlY3RBbGxUZXN0cygpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVuZGVyQXBpc0ZpZWxkKCk7CisgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXNl
bGVjdEFsbFRlc3RzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJBcGlzRmllbGQo
KTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICksCisgICAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCiAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9s
IiwKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgICAg
ICBjb25maWd1cmF0aW9uVWkuaXNUZXN0TGlzdFZhbGlkKCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgID8gbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25maWd1cmF0aW9uVWkuY3Jl
YXRlRXJyb3JNZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZWxlY3QgYXQg
bGVhc3Qgb25lIEFQSSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICAgICAgICBdLmNvbmNhdChjb25maWd1cmF0aW9uVWkuY3JlYXRlQXBpTGlzdChhcGlzKSkKLSAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIF0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlv
bi5hcHBlbmRDaGlsZChhcGlzRmllbGQpOworICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJmaWVsZCIsCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWQ6ICJhcGktZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
InVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibWVudS1saXN0IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGFwaXMubWFwKGZ1bmN0aW9uIChh
cGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUkuY3JlYXRlRWxlbWVu
dCh7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAibGkiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGFwaS50aXRsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSksCisgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIGFwaXNGaWVsZAorICAg
ICAgICAgICk7CisgICAgICAgICAgcmVuZGVyQXBpc0xpc3QoYXBpcyk7CisgICAgICAgICAgY2hl
Y2tBcGlMaXN0KCk7CisgICAgICAgIH0KIAotICAgICAgICAgIHZhciBleGNsdWRlRmllbGQgPSBV
SS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6
b250YWwiLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAgICAgICAgICBjaGls
ZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJFeGNsdWRlZCBUZXN0cyIgfQotICAg
ICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAiZmllbGQtYm9keSIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKLSAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
Ci0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAotICAgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeyBpZDogImV4Y2x1ZGVkLXRlc3RzLXZpZXciIH0KLSAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlvbi5hcHBl
bmRDaGlsZChleGNsdWRlRmllbGQpOworICAgICAgICBmdW5jdGlvbiByZW5kZXJBcGlzTGlzdChh
cGlzKSB7CisgICAgICAgICAgZm9yICh2YXIgYXBpIG9mIGFwaXMpIHsKKyAgICAgICAgICAgIHJl
bmRlckFwaUxpc3QoYXBpKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KIAotICAgICAgICAgIHZh
ciB0eXBlc0ZpZWxkID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBjbGFzc05hbWU6
ICJmaWVsZCBpcy1ob3Jpem9udGFsIiwKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyQXBpTGlzdChh
cGkpIHsKKyAgICAgICAgICB2YXIgbGlzdEl0ZW0gPSBVSS5nZXRFbGVtZW50KGFwaS50aXRsZSk7
CisgICAgICAgICAgdmFyIGluY2x1ZGVkUmF0aW8gPSBnZXRJbmNsdWRlZFJhdGlvKGFwaS5wYXRo
KTsKKyAgICAgICAgICB2YXIgYXBpTGlzdEl0ZW0gPSB7CisgICAgICAgICAgICBlbGVtZW50OiAi
YSIsCisgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAg
ICAgaWYgKCF0ZXN0RmlsZVNlbGVjdGlvbkVuYWJsZWQpIHJldHVybjsKKyAgICAgICAgICAgICAg
aWYgKCFzdGF0ZS5leHBhbmRlZEFwaXMpIHN0YXRlLmV4cGFuZGVkQXBpcyA9IHt9OworICAgICAg
ICAgICAgICBzdGF0ZS5leHBhbmRlZEFwaXNbYXBpLnBhdGhdID0gIXN0YXRlLmV4cGFuZGVkQXBp
c1thcGkucGF0aF07CisgICAgICAgICAgICAgIHJlbmRlckFwaUxpc3QoYXBpKTsKKyAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxk
cmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRlc3QgVHlwZXMiIH0KKyAgICAgICAg
ICAgICAgICBlbGVtZW50OiAiaW5wdXQiLAorICAgICAgICAgICAgICAgIHR5cGU6ICJjaGVja2Jv
eCIsCisgICAgICAgICAgICAgICAgc3R5bGU6ICJ3aWR0aDogMS4zZW07IGhlaWdodDogMS4zZW07
dmVydGljYWwtYWxpZ246IG1pZGRsZTsiLAorICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGluY2x1
ZGVkUmF0aW8gPiAwLAorICAgICAgICAgICAgICAgIGluZGV0ZXJtaW5hdGU6IGluY2x1ZGVkUmF0
aW8gPiAwICYmIGluY2x1ZGVkUmF0aW8gPCAxLAorICAgICAgICAgICAgICAgIG9uY2xpY2s6IGZ1
bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9u
KCk7CisgICAgICAgICAgICAgICAgICBpZiAoaW5jbHVkZWRSYXRpbyA+IDApIHsKKyAgICAgICAg
ICAgICAgICAgICAgaGFuZGxlUmVtb3ZlSW5jbHVkZWRUZXN0KGFwaS5wYXRoKTsKKyAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFkZEluY2x1ZGVk
VGVzdChhcGkucGF0aCk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBy
ZW5kZXJBcGlMaXN0KGFwaSk7CisgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHki
LAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAgICAgICAgICBjbGFzc05h
bWU6ICJmaWVsZCIsCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IFsKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaXNUZXN0VHlwZUxp
c3RWYWxpZCgpCi0gICAgICAgICAgICAgICAgICAgICAgICA/IG51bGwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIDogY29uZmlndXJhdGlvblVpLmNyZWF0ZUVycm9yTWVzc2FnZSgKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiU2VsZWN0IGF0IGxlYXN0IG9uZSB0ZXN0IHR5cGUiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgXS5jb25jYXQoY29u
ZmlndXJhdGlvblVpLmNyZWF0ZVRlc3RUeXBlTGlzdCh0eXBlcykpCisgICAgICAgICAgICAgIHRl
c3RGaWxlU2VsZWN0aW9uRW5hYmxlZAorICAgICAgICAgICAgICAgID8geworICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50OiAic3BhbiIsCisgICAgICAgICAgICAgICAgICAgIHN0eWxlOgorICAg
ICAgICAgICAgICAgICAgICAgICJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246
IG1pZGRsZTttYXJnaW4tbGVmdDowLjNlbTt3aWR0aDogMC43ZW0iLAorICAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpIiwKKyAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0ZS5leHBhbmRlZEFwaXMgJiYgc3RhdGUuZXhwYW5kZWRBcGlzW2FwaS5wYXRoXQorICAgICAg
ICAgICAgICAgICAgICAgICAgICA/ICJmYXMgZmEtYW5nbGUtZG93biIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiAiZmFzIGZhLWFuZ2xlLXJpZ2h0IiwKKyAgICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9KTsKLSAgICAgICAgICBzZXNzaW9uQ29uZmln
dXJhdGlvbi5hcHBlbmRDaGlsZCh0eXBlc0ZpZWxkKTsKLQotICAgICAgICAgIHZhciByZWZlcmVu
Y2VzRmllbGQgPSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogImZp
ZWxkIGlzLWhvcml6b250YWwiLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAg
ICAgICA6IG51bGwsCiAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAg
ICAgICAgIHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiUmVmZXJlbmNlIEJyb3dzZXJzIiB9
LAotICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLmNyZWF0ZVNlbGVjdERlc2VsZWN0
QnV0dG9ucygKLSAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnNlbGVjdEFsbFJl
ZlNlc3Npb25zLAotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuZGVzZWxlY3RB
bGxSZWZTZXNzaW9ucwotICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgICAgICBzdHlsZToKKyAgICAgICAgICAgICAgICAgICJkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7dmVydGljYWwtYWxpZ246IG1pZGRsZTttYXJnaW4tbGVmdDowLjNlbTt3aWR0aDogOTAl
IiwKKyAgICAgICAgICAgICAgICB0ZXh0OiBhcGkudGl0bGUsCiAgICAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwK
LSAgICAgICAgICAgICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAiZmllbGQiLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiBjb25maWd1cmF0aW9uVWkuY3JlYXRlUmVmU2Vzc2lvbnNMaXN0KAotICAgICAgICAgICAgICAg
ICAgICAgIHJlZmVyZW5jZVNlc3Npb25zCi0gICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgfTsKKyAgICAgICAgICBsaXN0SXRlbS5pbm5lckhUTUwgPSAiIjsK
KyAgICAgICAgICBsaXN0SXRlbS5hcHBlbmRDaGlsZChVSS5jcmVhdGVFbGVtZW50KGFwaUxpc3RJ
dGVtKSk7CisgICAgICAgICAgaWYgKHN0YXRlLmV4cGFuZGVkQXBpcyAmJiBzdGF0ZS5leHBhbmRl
ZEFwaXNbYXBpLnBhdGhdKSB7CisgICAgICAgICAgICBsaXN0SXRlbS5hcHBlbmRDaGlsZChjcmVh
dGVBcGlUZXN0c0xpc3QoYXBpKSk7CisgICAgICAgICAgfQorICAgICAgICAgIGNoZWNrQXBpTGlz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlQXBpVGVzdHNMaXN0KGFw
aSkgeworICAgICAgICAgIGlmICghc3RhdGUudGVzdHMpIHsKKyAgICAgICAgICAgIFdhdmVTZXJ2
aWNlLnJlYWRUZXN0TGlzdCgKKyAgICAgICAgICAgICAgZnVuY3Rpb24gKHJlYWRUZXN0cykgewor
ICAgICAgICAgICAgICAgIHN0YXRlLnRlc3RzID0gcmVhZFRlc3RzOworICAgICAgICAgICAgICAg
IGZvciAodmFyIGFwaSBpbiBzdGF0ZS50ZXN0cykgeworICAgICAgICAgICAgICAgICAgaWYgKGhh
c0luY2x1ZGVkVGVzdCgiLyIgKyBhcGkpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJl
bW92ZUluY2x1ZGVkVGVzdCgiLyIgKyBhcGkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVB
ZGRJbmNsdWRlZFRlc3QoIi8iICsgYXBpKTsKICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgICB9KTsK
LSAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlvbi5hcHBlbmRDaGlsZChyZWZlcmVuY2VzRmll
bGQpOworICAgICAgICAgICAgICAgIHJlbmRlckFwaUxpc3QodGhpcy5hcGkpOworICAgICAgICAg
ICAgICB9LmJpbmQoeyBhcGk6IGFwaSB9KQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIHJl
dHVybiBjcmVhdGVMb2FkaW5nSW5kaWNhdG9yKCJMb2FkaW5nIHRlc3RzIC4uLiIpOworICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgdGVzdHMgPSBzdGF0ZS50ZXN0c1thcGkucGF0
aC5zdWJzdHIoMSldOworICAgICAgICAgICAgdmFyIHRlc3RMaXN0VmlldyA9IHsKKyAgICAgICAg
ICAgICAgZWxlbWVudDogInVsIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLAorICAgICAg
ICAgICAgfTsKIAotICAgICAgICAgIHZhciBidXR0b25MaXN0ID0gVUkuY3JlYXRlRWxlbWVudCh7
Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICJsZXZlbCBsZXZlbC1yaWdodCIsCi0gICAgICAgICAg
ICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZWxlbWVudDog
ImJ1dHRvbiIsCi0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLXN1Y2Nlc3Mi
LAotICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLXJpZ2h0OiAwLjNlbSIsCi0gICAgICAg
ICAgICAgICAgZGlzYWJsZWQ6ICFjb25maWd1cmF0aW9uVWkuaXNDb25maWd1cmF0aW9uVmFsaWQo
KSwKLSAgICAgICAgICAgICAgICBvbkNsaWNrOiBjb25maWd1cmF0aW9uVWkuaGFuZGxlU3RhcnQs
Ci0gICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAotICAgICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJpY29uIiwKKyAgICAgICAgICAgIHRlc3RMaXN0Vmlldy5jaGlsZHJlbiA9IHRlc3RM
aXN0Vmlldy5jaGlsZHJlbi5jb25jYXQoCisgICAgICAgICAgICAgIHRlc3RzCisgICAgICAgICAg
ICAgICAgLnNvcnQoKQorICAgICAgICAgICAgICAgIC5tYXAoZnVuY3Rpb24gKHRlc3QpIHsKKyAg
ICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJs
aSIsCisgICAgICAgICAgICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIChldmVudCkgeworICAg
ICAgICAgICAgICAgICAgICAgIGhhbmRsZUluY2x1ZGVkVGVzdFRvZ2dsZSh0ZXN0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICByZW5kZXJBcGlMaXN0KGFwaSk7CisgICAgICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiBjb25maWd1cmF0aW9uVWkuaXNTZXNzaW9uU3RhcnRpbmco
KQotICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJmYXMgZmEtc3Bpbm5lciBmYS1wdWxzZSIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiZmFzIGZhLXBsYXkiCi0gICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAg
ICBlbGVtZW50OiAiYSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudDogImlucHV0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiY2hlY2ti
b3giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndpZHRoOiAxLjNlbTsgaGVpZ2h0OiAxLjNlbTt2ZXJ0aWNhbC1hbGln
bjogbWlkZGxlOyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogaGFzSW5j
bHVkZWRUZXN0KHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzcGxheTogaW5saW5lLWJsb2NrO3ZlcnRp
Y2FsLWFsaWduOiBtaWRkbGU7bWFyZ2luLWxlZnQ6MC4zZW07bWF4LXdpZHRoOiA5MCUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgIH0pCisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJuIFVJLmNy
ZWF0ZUVsZW1lbnQodGVzdExpc3RWaWV3KTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiByZW5kZXJFeGNsdWRlRmllbGQoKSB7CisgICAgICAgICAgdmFyIGV4Y2x1
ZGVGaWVsZCA9IFVJLmdldEVsZW1lbnQoImV4Y2x1ZGUtZmllbGQiKTsKKyAgICAgICAgICBleGNs
dWRlRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoCisgICAgICAgICAgICBVSS5jcmVhdGVF
bGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJleGNsdWRlLWZpZWxkIiwKKyAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCisgICAgICAgICAgICAgIGNoaWxk
cmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
ZmllbGQtbGFiZWwiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAi
bGFiZWwiLCB0ZXh0OiAiRXhjbHVkZWQgVGVzdHMiIH0sCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5
IiwKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAgICAgICAgIGNs
YXNzTmFtZTogImZpZWxkIiwKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeyBpZDogImV4Y2x1ZGVkLXRlc3RzLXZpZXciIH0sCisgICAgICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgICAg
IHRleHQ6IGNvbmZpZ3VyYXRpb25VaS5pc1Nlc3Npb25TdGFydGluZygpCi0gICAgICAgICAgICAg
ICAgICAgICAgPyAiU3RhcnRpbmcgU2Vzc2lvbiAuLi4iCi0gICAgICAgICAgICAgICAgICAgICAg
OiAiU3RhcnQgU2Vzc2lvbiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBd
Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBlbGVt
ZW50OiAiYnV0dG9uIiwKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24iLAotICAg
ICAgICAgICAgICAgIG9uQ2xpY2s6IGNvbmZpZ3VyYXRpb25VaS5oYW5kbGVEaXNjYXJkQ2hhbmdl
cywKLSAgICAgICAgICAgICAgICBkaXNhYmxlZDogY29uZmlndXJhdGlvblVpLmlzU2Vzc2lvblN0
YXJ0aW5nKCksCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAotICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJpY29uIiwKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsK
LSAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50
OiAiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtdGltZXMi
CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pLAor
ICAgICAgICAgICAgZXhjbHVkZUZpZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgICByZW5kZXJF
eGNsdWRlZFRlc3RzKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZW5kZXJUeXBl
c0ZpZWxkKCkgeworICAgICAgICAgIGlmICghdGVzdFR5cGVTZWxlY3Rpb25FbmFibGVkKSByZXR1
cm47CisgICAgICAgICAgdmFyIHR5cGVzRmllbGQgPSBVSS5nZXRFbGVtZW50KCJ0eXBlcy1maWVs
ZCIpOworICAgICAgICAgIHR5cGVzRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoCisgICAg
ICAgICAgICBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJ0eXBlcy1maWVs
ZCIsCisgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6b250YWwiLAorICAg
ICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRlc3QgVHlwZXMiIH0sCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJmaWVsZC1ib2R5IiwKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IHsKKyAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAg
ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICAgICAgaXNU
ZXN0VHlwZUxpc3RWYWxpZCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICA6IGNyZWF0ZUVycm9yTWVzc2FnZSgiU2VsZWN0IGF0IGxl
YXN0IG9uZSB0ZXN0IHR5cGUiKSwKKyAgICAgICAgICAgICAgICAgICAgICBdLmNvbmNhdChjcmVh
dGVUZXN0VHlwZUxpc3QodHlwZXMpKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgIH0pLAorICAgICAgICAgICAgdHlwZXNGaWVsZAorICAgICAgICAgICk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiByZW5kZXJSZWZlcmVuY2VzRmllbGQoKSB7CisgICAgICAg
ICAgaWYgKHJlZmVyZW5jZVNlc3Npb25zLmxlbmd0aCA9PT0gMCkgeworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgIH0KKyAgICAgICAgICB2YXIgcmVmZXJlbmNlc0ZpZWxkID0gVUkuZ2V0
RWxlbWVudCgicmVmZXJlbmNlcy1maWVsZCIpOworICAgICAgICAgIHJlZmVyZW5jZXNGaWVsZC5w
YXJlbnROb2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQoewor
ICAgICAgICAgICAgICBpZDogInJlZmVyZW5jZXMtZmllbGQiLAorICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJmaWVsZCBpcy1ob3Jpem9udGFsIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1s
YWJlbCIsCisgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAg
ICB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlJlZmVyZW5jZSBCcm93c2VycyIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlU2VsZWN0RGVzZWxlY3RCdXR0b25zKAorICAgICAgICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVj
dEFsbFJlZlNlc3Npb25zKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJSZWZlcmVu
Y2VzRmllbGQoKTsKKyAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VsZWN0QWxsUmVm
U2Vzc2lvbnMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclJlZmVyZW5jZXNGaWVs
ZCgpOwogICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQorICAg
ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZp
ZWxkLWJvZHkiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiZmllbGQiLAorICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog
eworICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAorICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuOiBjcmVhdGVSZWZTZXNzaW9uc0xpc3QocmVmZXJlbmNlU2Vz
c2lvbnMpLAorICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAot
ICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiRGlzY2FyZCBDaGFuZ2VzIgotICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
XQotICAgICAgICAgIH0pOwotICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENo
aWxkKGJ1dHRvbkxpc3QpOworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIHJlZmVyZW5jZXNGaWVsZAorICAgICAgICAgICk7
CisgICAgICAgIH0KIAotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJFeGNsdWRlZFRl
c3RzKCk7Ci0gICAgICAgIH0sCi0gICAgICAgIHJlbmRlckV4Y2x1ZGVkVGVzdHM6IGZ1bmN0aW9u
KCkgeworICAgICAgICBmdW5jdGlvbiByZW5kZXJCdXR0b25zRmllbGQoKSB7CisgICAgICAgICAg
dmFyIGJ1dHRvbnNGaWVsZCA9IFVJLmdldEVsZW1lbnQoImJ1dHRvbnMtZmllbGQiKTsKKyAgICAg
ICAgICBidXR0b25zRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoCisgICAgICAgICAgICBV
SS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJidXR0b25zLWZpZWxkIiwKKyAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAibGV2ZWwgbGV2ZWwtcmlnaHQiLAorICAgICAgICAgICAg
ICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJidXR0b24iLAorICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLXN1
Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tcmlnaHQ6IDAuM2VtIiwK
KyAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhaXNDb25maWd1cmF0aW9uVmFsaWQoKSwKKyAg
ICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaGFuZGxlU3RhcnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyQnV0dG9uc0ZpZWxk
KCk7CisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsK
KyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJz
cGFuIiwKKyAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29uIiwKKyAgICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogaXNTZXNzaW9uU3RhcnRpbmcoKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID8gImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogImZhcyBmYS1wbGF5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKKyAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpc1Nlc3Npb25TdGFydGluZygpCisgICAgICAgICAg
ICAgICAgICAgICAgICA/ICJTdGFydGluZyBTZXNzaW9uIC4uLiIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIDogIlN0YXJ0IFNlc3Npb24iLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJidXR0b24iLAorICAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiYnV0dG9uIiwKKyAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGlzY2FyZENoYW5nZXMoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogaXNTZXNzaW9uU3RhcnRpbmcoKSwK
KyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiaWNvbiIsCisgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudDogImkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEt
dGltZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAorICAgICAgICAgICAgICAgICAgICAg
IHRleHQ6ICJEaXNjYXJkIENoYW5nZXMiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgfSksCisgICAgICAgICAgICBidXR0b25zRmllbGQKKyAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyRXhjbHVkZWRUZXN0cygpIHsKICAgICAg
ICAgICB2YXIgZXhjbHVkZWRUZXN0c1ZpZXcgPSBVSS5nZXRFbGVtZW50KCJleGNsdWRlZC10ZXN0
cy12aWV3Iik7CiAgICAgICAgICAgaWYgKCFleGNsdWRlZFRlc3RzVmlldykgcmV0dXJuOwogICAg
ICAgICAgIGV4Y2x1ZGVkVGVzdHNWaWV3LmlubmVySFRNTCA9ICIiOwogCi0gICAgICAgICAgdmFy
IGVycm9yTWVzc2FnZSA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5leGNsdWRlZFRlc3RFcnJvcjsK
KyAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gc3RhdGUuZXhjbHVkZWRUZXN0RXJyb3I7CiAg
ICAgICAgICAgaWYgKGVycm9yTWVzc2FnZSkgewotICAgICAgICAgICAgdmFyIGVycm9yID0gY29u
ZmlndXJhdGlvblVpLmNyZWF0ZUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOworICAgICAgICAg
ICAgdmFyIGVycm9yID0gY3JlYXRlRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAg
ICAgICBleGNsdWRlZFRlc3RzVmlldy5hcHBlbmRDaGlsZChVSS5jcmVhdGVFbGVtZW50KGVycm9y
KSk7CiAgICAgICAgICAgfQogCiAgICAgICAgICAgdmFyIGV4Y2x1ZGVJbnB1dHMgPSBbCiAgICAg
ICAgICAgICB7IHRpdGxlOiAiQWRkIFJhdyIsIHR5cGU6ICJyYXciIH0sCiAgICAgICAgICAgICB7
IHRpdGxlOiAiQWRkIE1hbGZ1bmN0aW9uaW5nIiwgdHlwZTogIm1hbGZ1bmMiIH0sCi0gICAgICAg
ICAgICB7IHRpdGxlOiAiQWRkIFByZXZpb3VzIEV4Y2x1ZGVkIiwgdHlwZTogImV4Y2x1ZGVkIiB9
CisgICAgICAgICAgICB7IHRpdGxlOiAiQWRkIFByZXZpb3VzIEV4Y2x1ZGVkIiwgdHlwZTogImV4
Y2x1ZGVkIiB9LAogICAgICAgICAgIF07CiAKLSAgICAgICAgICB2YXIgYWN0aXZlRXhjbHVkZUlu
cHV0ID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmFjdGl2ZUV4Y2x1ZGVJbnB1dDsKKyAgICAgICAg
ICB2YXIgYWN0aXZlRXhjbHVkZUlucHV0ID0gc3RhdGUuYWN0aXZlRXhjbHVkZUlucHV0OwogCiAg
ICAgICAgICAgdmFyIGV4Y2x1ZGVkVGVzdElucHV0U3dpdGNoID0gVUkuY3JlYXRlRWxlbWVudCh7
CiAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0YWJzIGlzLWNlbnRlcmVkIGlzLXRvZ2dsZSBpcy1z
bWFsbCIsCiAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICBlbGVtZW50OiAi
dWwiLAotICAgICAgICAgICAgICBjaGlsZHJlbjogZXhjbHVkZUlucHV0cy5tYXAoZnVuY3Rpb24o
aW5wdXQpIHsKKyAgICAgICAgICAgICAgY2hpbGRyZW46IGV4Y2x1ZGVJbnB1dHMubWFwKGZ1bmN0
aW9uIChpbnB1dCkgewogICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAg
ICBlbGVtZW50OiAibGkiLAotICAgICAgICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24oKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5oYW5kbGVFeGNsdWRlSW5wdXRD
aGFuZ2UoaW5wdXQudHlwZSk7CisgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUV4Y2x1ZGVJbnB1dENoYW5nZShpbnB1dC50
eXBlKTsKICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
IChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogKGZ1bmN0aW9uICgp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUV4Y2x1ZGVJbnB1dCA9PT0gaW5wdXQu
dHlwZSkgcmV0dXJuICJpcy1hY3RpdmUiOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiI7
CiAgICAgICAgICAgICAgICAgICB9KSgpLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsg
ZWxlbWVudDogImEiLCB0ZXh0OiBpbnB1dC50aXRsZSB9CisgICAgICAgICAgICAgICAgICBjaGls
ZHJlbjogeyBlbGVtZW50OiAiYSIsIHRleHQ6IGlucHV0LnRpdGxlIH0sCiAgICAgICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSks
CisgICAgICAgICAgICB9LAogICAgICAgICAgIH0pOwogICAgICAgICAgIGV4Y2x1ZGVkVGVzdHNW
aWV3LmFwcGVuZENoaWxkKGV4Y2x1ZGVkVGVzdElucHV0U3dpdGNoKTsKIApAQCAtODI3LDI4ICsx
Mjg2LDI4IEBACiAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpcy1zaXplLTciLAogICAg
ICAgICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyMHB4IiwKICAgICAgICAgICAg
ICAgICAgIHRleHQ6Ci0gICAgICAgICAgICAgICAgICAgICJQcm92aWRlIHBhdGhzIHRvIHRlc3Qg
ZmlsZXMgb3IgZGlyZWN0b3JpZXMgdG8gZXhjbHVkZSB0aGVtIGZyb20gdGhlIHNlc3Npb24uIE9u
ZSBwYXRoIHBlciBsaW5lLCBsaW5lcyBzdGFydGluZyB3aXRoICMgYXJlIG9taXR0ZWQuIgorICAg
ICAgICAgICAgICAgICAgICAiUHJvdmlkZSBwYXRocyB0byB0ZXN0IGZpbGVzIG9yIGRpcmVjdG9y
aWVzIHRvIGV4Y2x1ZGUgdGhlbSBmcm9tIHRoZSBzZXNzaW9uLiBPbmUgcGF0aCBwZXIgbGluZSwg
bGluZXMgc3RhcnRpbmcgd2l0aCAjIGFyZSBvbWl0dGVkLiIsCiAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGV4dGFyZWEi
LAogICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAidGV4dGFyZWEiLAotICAgICAgICAgICAg
ICAgICAgaWQ6ICJleGNsdWRlZC10ZXN0cy10ZXh0IgorICAgICAgICAgICAgICAgICAgaWQ6ICJl
eGNsdWRlZC10ZXN0cy10ZXh0IiwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLXRvcDogMTBweCIsCi0gICAgICAg
ICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgY29u
ZmlndXJhdGlvblVpLmhhbmRsZUFkZEV4bHVkZWRUZXN0c1JhdygpOworICAgICAgICAgICAgICAg
ICAgb25DbGljazogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVBZGRF
eGx1ZGVkVGVzdHNSYXcoKTsKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudDogImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
YnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDIw
cHgiLAotICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBZGQiCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiQWRkIiwKKyAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgZXhjbHVkZWRUZXN0c1Zp
ZXcuYXBwZW5kQ2hpbGQocmF3SW5wdXQpOwogICAgICAgICAgIH0gZWxzZSBpZiAoCkBAIC04NjQs
MTQgKzEzMjMsMTQgQEAKICAgICAgICAgICAgICAgICAgIHRleHQ6CiAgICAgICAgICAgICAgICAg
ICAgIGFjdGl2ZUV4Y2x1ZGVJbnB1dCA9PT0gIm1hbGZ1bmMiCiAgICAgICAgICAgICAgICAgICAg
ICAgPyAiQWRkIG1hbGZ1bmN0aW9uaW5nIHRlc3RzIGZyb20gcGFzdCBzZXNzaW9ucyBieSBwcm92
aWRpbmcgYXQgbGVhc3QgdGhlIGZpcnN0IGVpZ2h0IGNoYXJhY3RlcnMgb2YgdGhlIHNlc3Npb24n
cyB0b2tlbi4iCi0gICAgICAgICAgICAgICAgICAgICAgOiAiQWRkIGV4Y2x1ZGVkIHRlc3RzIGZy
b20gcGFzdCBzZXNzaW9ucyBieSBwcm92aWRpbmcgYXQgbGVhc3QgdGhlIGZpcnN0IGVpZ2h0IGNo
YXJhY3RlcnMgb2YgdGhlIHNlc3Npb24ncyB0b2tlbi4iCisgICAgICAgICAgICAgICAgICAgICAg
OiAiQWRkIGV4Y2x1ZGVkIHRlc3RzIGZyb20gcGFzdCBzZXNzaW9ucyBieSBwcm92aWRpbmcgYXQg
bGVhc3QgdGhlIGZpcnN0IGVpZ2h0IGNoYXJhY3RlcnMgb2YgdGhlIHNlc3Npb24ncyB0b2tlbi4i
LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCiAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlNlc3Npb24gVG9rZW4iIH0KKyAgICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJTZXNz
aW9uIFRva2VuIiB9LAogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC04
ODIsNTAgKzEzNDEsNTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogImV4Y2x1
ZGVkLXRlc3RzLXRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImlucHV0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaW5wdXQiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJ0ZXh0IgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU6ICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6
ICJtYXJnaW4tbGVmdDogMWVtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAi
QWRkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlRXhjbHVkZUlucHV0ID09PSAibWFs
ZnVuYyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvblVp
LmhhbmRsZUFkZEV4bHVkZWRUZXN0c01hbGZ1bmN0aW9uaW5nKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhhbmRsZUFkZEV4bHVkZWRUZXN0c01hbGZ1bmN0aW9uaW5nKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaGFuZGxlQWRkRXhsdWRlZFRlc3RzRXhjbHVk
ZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWRkRXhsdWRlZFRl
c3RzRXhjbHVkZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICBleGNsdWRlZFRlc3RzVmlldy5hcHBlbmRDaGlsZChtYWxmdW5jSW5wdXQp
OwogICAgICAgICAgIH0KIAotICAgICAgICAgIHZhciBleGNsdWRlZFRlc3RzVGFibGUgPSBjb25m
aWd1cmF0aW9uVWkuY3JlYXRlRXhjbHVkZWRUZXN0c1RhYmxlKCk7CisgICAgICAgICAgdmFyIGV4
Y2x1ZGVkVGVzdHNUYWJsZSA9IGNyZWF0ZUV4Y2x1ZGVkVGVzdHNUYWJsZSgpOwogICAgICAgICAg
IHZhciB0YWJsZVdyYXBwZXIgPSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIHN0eWxl
OiAibWF4LWhlaWdodDogMjUwcHg7IG92ZXJmbG93OiBhdXRvOyBtYXJnaW4tYm90dG9tOiAxMHB4
IgorICAgICAgICAgICAgc3R5bGU6ICJtYXgtaGVpZ2h0OiAyNTBweDsgb3ZlcmZsb3c6IGF1dG87
IG1hcmdpbi1ib3R0b206IDEwcHgiLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHRhYmxlV3Jh
cHBlci5hcHBlbmRDaGlsZChleGNsdWRlZFRlc3RzVGFibGUpOwogICAgICAgICAgIGV4Y2x1ZGVk
VGVzdHNWaWV3LmFwcGVuZENoaWxkKHRhYmxlV3JhcHBlcik7Ci0gICAgICAgIH0sCi0gICAgICAg
IHJlbmRlclJlc3VtZVZpZXc6IGZ1bmN0aW9uKCkgeworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gcmVuZGVyUmVzdW1lVmlldygpIHsKICAgICAgICAgICB2YXIgcXVlcnkgPSB1dGlscy5w
YXJzZVF1ZXJ5KGxvY2F0aW9uLnNlYXJjaCk7CiAgICAgICAgICAgdmFyIHJlc3VtZVRva2VuID0g
cXVlcnkucmVzdW1lOwogICAgICAgICAgIGlmICghcmVzdW1lVG9rZW4pIHJlc3VtZVRva2VuID0g
IiI7CiAKICAgICAgICAgICB2YXIgcmVuZGVyUmVzdW1lRWxlbWVudCA9IFVJLmdldEVsZW1lbnQo
InJlc3VtZS12aWV3Iik7CiAgICAgICAgICAgcmVuZGVyUmVzdW1lRWxlbWVudC5pbm5lckhUTUwg
PSAiIjsKLSAgICAgICAgICBpZiAoY29uZmlndXJhdGlvblVpLnN0YXRlLmV4cGlyZWQpIHJldHVy
bjsKKyAgICAgICAgICBpZiAoc3RhdGUuZXhwaXJlZCkgcmV0dXJuOwogCiAgICAgICAgICAgdmFy
IGhlYWRpbmcgPSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgIGVsZW1lbnQ6ICJoMiIs
CiAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0aXRsZSBpcy01IiwKLSAgICAgICAgICAgIHRleHQ6
ICJSZXN1bWUgc2Vzc2lvbiIKKyAgICAgICAgICAgIHRleHQ6ICJSZXN1bWUgc2Vzc2lvbiIsCiAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgcmVuZGVyUmVzdW1lRWxlbWVudC5hcHBlbmRDaGlsZCho
ZWFkaW5nKTsKIApAQCAtOTQwLDcgKzE0MDAsNyBAQAogICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImxhYmVsIiwKICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJsYWJlbCIsCi0gICAgICAgICAgICAgICAgICAgICAgdGV4dDogIlRv
a2VuIChmaXJzdCA4IGNoYXJhY3RlcnMgb3IgbW9yZSkiCisgICAgICAgICAgICAgICAgICAgICAg
dGV4dDogIlRva2VuIChmaXJzdCA4IGNoYXJhY3RlcnMgb3IgbW9yZSkiLAogICAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiY29udHJvbCIsCkBAIC05NTAsMTEgKzE0MTAsMTEgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogImlucHV0IGlzLWZhbWlseS1tb25vc3BhY2UgdGFiYmFi
bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInRleHQiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgc3R5bGU6ICJtYXgtd2lkdGg6IDMwZW0iLAotICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWU6IHJlc3VtZVRva2VuCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlc3VtZVRva2VuLAorICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb2x1bW4iLApAQCAtOTYyLDM5ICsxNDIyLDQw
IEBACiAgICAgICAgICAgICAgICAgICAiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgt
ZW5kOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kIiwKICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogewogICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIiwKLSAgICAgICAgICAg
ICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uVWkucmVzdW1lU2Vzc2lvbigpOworICAgICAgICAgICAgICAgICAgb25DbGljazogZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bWVTZXNzaW9uKCk7CiAgICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKICAgICAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29uIiwKLSAgICAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogeyBlbGVtZW50OiAiaSIsIGNsYXNzTmFtZTogImZhcyBmYS1yZWRvLWFsdCIg
fQorICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGVsZW1lbnQ6ICJpIiwgY2xhc3NO
YW1lOiAiZmFzIGZhLXJlZG8tYWx0IiB9LAogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAot
ICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJSZXN1bWUiCi0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiUmVzdW1lIiwK
KyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAgfSk7
CiAgICAgICAgICAgcmVuZGVyUmVzdW1lRWxlbWVudC5hcHBlbmRDaGlsZChyZXN1bWVDb250cm9s
cyk7Ci0gICAgICAgIH0sCi0gICAgICAgIGNyZWF0ZUV4Y2x1ZGVkVGVzdHNUYWJsZTogZnVuY3Rp
b24oKSB7Ci0gICAgICAgICAgdmFyIGV4Y2x1ZGVkVGVzdHMgPSBjb25maWd1cmF0aW9uVWkuc3Rh
dGUuY29uZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlRXhjbHVkZWRUZXN0c1RhYmxlKCkgeworICAgICAgICAgIHZhciBleGNsdWRl
ZFRlc3RzID0gc3RhdGUuY29uZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlOwogICAgICAgICAgIGlm
IChleGNsdWRlZFRlc3RzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgcmV0dXJuIFVJLmNy
ZWF0ZUVsZW1lbnQoewogICAgICAgICAgICAgICBzdHlsZTogInRleHQtYWxpZ246IGNlbnRlciIs
Ci0gICAgICAgICAgICAgIHRleHQ6ICItIE5vIEV4Y2x1ZGVkIFRlc3RzIC0iCisgICAgICAgICAg
ICAgIHRleHQ6ICItIE5vIEV4Y2x1ZGVkIFRlc3RzIC0iLAogICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgfQogICAgICAgICAgIHZhciB0YWJsZSA9IFVJLmNyZWF0ZUVsZW1lbnQoewogICAgICAg
ICAgICAgZWxlbWVudDogInRhYmxlIiwKICAgICAgICAgICAgIGNsYXNzTmFtZTogInRhYmxlIiwK
ICAgICAgICAgICAgIHN0eWxlOiAid2lkdGg6IDEwMCUiLAotICAgICAgICAgICAgY2hpbGRyZW46
IGV4Y2x1ZGVkVGVzdHMubWFwKGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgICAgIGNoaWxkcmVu
OiBleGNsdWRlZFRlc3RzLm1hcChmdW5jdGlvbiAodGVzdCkgewogICAgICAgICAgICAgICByZXR1
cm4gewogICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ciIsCiAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IFsKQEAgLTEwMDQsNjYgKzE0NjUsNTMgQEAKICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiYnV0dG9uIiwKICAgICAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtc21hbGwiLAotICAgICAgICAg
ICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgY29uZmlndXJhdGlvblVpLmhhbmRsZVJlbW92ZUV4Y2x1ZGVkVGVzdCh0ZXN0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBoYW5kbGVSZW1vdmVFeGNsdWRlZFRlc3QodGVzdCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS10cmFzaC1hbHQiCi0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtdHJhc2gtYWx0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIH0pCisgICAgICAgICAgICB9KSwKICAgICAgICAgICB9KTsKICAg
ICAgICAgICByZXR1cm4gdGFibGU7Ci0gICAgICAgIH0sCi0gICAgICAgIGNyZWF0ZUFwaUxpc3Q6
IGZ1bmN0aW9uKGFwaXMpIHsKLSAgICAgICAgICByZXR1cm4gYXBpcy5tYXAoYXBpID0+ICh7Ci0g
ICAgICAgICAgICBlbGVtZW50OiAiYnV0dG9uIiwKLSAgICAgICAgICAgIHN0eWxlOiAibWFyZ2lu
LXJpZ2h0OiAwLjNlbTsgbWFyZ2luLWJvdHRvbTogMC4zZW0iLAotICAgICAgICAgICAgY2xhc3NO
YW1lOgotICAgICAgICAgICAgICAiYnV0dG9uIiArCi0gICAgICAgICAgICAgIChjb25maWd1cmF0
aW9uVWkuaGFzSW5jbHVkZWRUZXN0KGFwaS5wYXRoKSA/ICIgaXMtaW5mbyIgOiAiIiksCi0gICAg
ICAgICAgICB0ZXh0OiBhcGkudGl0bGUsCi0gICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaGFuZGxlSW5jbHVkZWRUZXN0
VG9nZ2xlKGFwaS5wYXRoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICB9KSk7Ci0gICAgICAg
IH0sCi0gICAgICAgIGNyZWF0ZVRlc3RUeXBlTGlzdDogZnVuY3Rpb24odHlwZXMpIHsKLSAgICAg
ICAgICByZXR1cm4gdHlwZXMubWFwKHR5cGUgPT4gKHsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGNyZWF0ZVRlc3RUeXBlTGlzdCh0eXBlcykgeworICAgICAgICAgIHJldHVybiB0eXBl
cy5tYXAoKHR5cGUpID0+ICh7CiAgICAgICAgICAgICBlbGVtZW50OiAiYnV0dG9uIiwKICAgICAg
ICAgICAgIHN0eWxlOiAibWFyZ2luLXJpZ2h0OiAwLjNlbTsgbWFyZ2luLWJvdHRvbTogMC4zZW0i
LAotICAgICAgICAgICAgY2xhc3NOYW1lOgotICAgICAgICAgICAgICAiYnV0dG9uIiArCi0gICAg
ICAgICAgICAgIChjb25maWd1cmF0aW9uVWkuaGFzVGVzdFR5cGUodHlwZS52YWx1ZSkgPyAiIGlz
LWluZm8iIDogIiIpLAorICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIiArIChoYXNUZXN0
VHlwZSh0eXBlLnZhbHVlKSA/ICIgaXMtaW5mbyIgOiAiIiksCiAgICAgICAgICAgICB0ZXh0OiB0
eXBlLnRpdGxlLAotICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgICAgICAgY29uZmlndXJhdGlvblVpLmhhbmRsZVRlc3RUeXBlVG9nZ2xlKHR5cGUudmFsdWUp
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKGV2ZW50KSB7
CisgICAgICAgICAgICAgIGhhbmRsZVRlc3RUeXBlVG9nZ2xlKHR5cGUudmFsdWUpOworICAgICAg
ICAgICAgICByZW5kZXJUeXBlc0ZpZWxkKCk7CisgICAgICAgICAgICB9LAogICAgICAgICAgIH0p
KTsKLSAgICAgICAgfSwKLSAgICAgICAgY3JlYXRlUmVmU2Vzc2lvbnNMaXN0OiBmdW5jdGlvbihy
ZWZlcmVuY2VTZXNzaW9ucykgewotICAgICAgICAgIHJldHVybiByZWZlcmVuY2VTZXNzaW9ucy5t
YXAoc2Vzc2lvbiA9PiAoeworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlUmVm
U2Vzc2lvbnNMaXN0KHJlZmVyZW5jZVNlc3Npb25zKSB7CisgICAgICAgICAgcmV0dXJuIHJlZmVy
ZW5jZVNlc3Npb25zLm1hcCgoc2Vzc2lvbikgPT4gKHsKICAgICAgICAgICAgIGVsZW1lbnQ6ICJi
dXR0b24iLAotICAgICAgICAgICAgY2xhc3NOYW1lOgotICAgICAgICAgICAgICAiYnV0dG9uIiAr
Ci0gICAgICAgICAgICAgIChjb25maWd1cmF0aW9uVWkuaGFzUmVmU2Vzc2lvbihzZXNzaW9uKSA/
ICIgaXMtaW5mbyIgOiAiIiksCisgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24iICsgKGhh
c1JlZlNlc3Npb24oc2Vzc2lvbikgPyAiIGlzLWluZm8iIDogIiIpLAogICAgICAgICAgICAgc3R5
bGU6ICJtYXJnaW4tcmlnaHQ6IDAuM2VtOyBtYXJnaW4tYm90dG9tOiAwLjNlbTsgaGVpZ2h0OiBh
dXRvIiwKLSAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBj
b25maWd1cmF0aW9uVWkuaGFuZGxlUmVmU2Vzc2lvblRvZ2dsZShzZXNzaW9uKTsKKyAgICAgICAg
ICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgaGFuZGxlUmVmU2Vzc2lv
blRvZ2dsZShzZXNzaW9uKTsKKyAgICAgICAgICAgICAgcmVuZGVyUmVmZXJlbmNlc0ZpZWxkKCk7
CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJpY29uIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgZWxlbWVudDogImki
LCBjbGFzc05hbWU6IHNlc3Npb24uaWNvbiB9XQorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb
eyBlbGVtZW50OiAiaSIsIGNsYXNzTmFtZTogc2Vzc2lvbi5pY29uIH1dLAogICAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLApA
QCAtMTA3MSwxNCArMTUxOSwxNSBAQAogICAgICAgICAgICAgICAgICAgeyB0ZXh0OiBzZXNzaW9u
LnRpdGxlIH0sCiAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRleHQ6
IHNlc3Npb24uZW5naW5lLAotICAgICAgICAgICAgICAgICAgICBzdHlsZTogImZvbnQtc2l6ZTog
MC44ZW0iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAiZm9udC1z
aXplOiAwLjhlbSIsCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pKTsKLSAgICAgICAg
fSwKLSAgICAgICAgY3JlYXRlU2VsZWN0RGVzZWxlY3RCdXR0b25zOiBmdW5jdGlvbihvblNlbGVj
dCwgb25EZXNlbGVjdCkgeworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlU2Vs
ZWN0RGVzZWxlY3RCdXR0b25zKG9uU2VsZWN0LCBvbkRlc2VsZWN0KSB7CiAgICAgICAgICAgcmV0
dXJuIHsKICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLXRvcDogMC4zZW0iLAogICAgICAgICAg
ICAgY2hpbGRyZW46IFsKQEAgLTEwODcsMzAgKzE1MzYsNTEgQEAKICAgICAgICAgICAgICAgICBz
dHlsZTogIm1hcmdpbi1yaWdodDogMC4zZW0iLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXNtYWxsIiwKICAgICAgICAgICAgICAgICB0ZXh0OiAiQWxs
IiwKLSAgICAgICAgICAgICAgICBvbkNsaWNrOiBvblNlbGVjdAorICAgICAgICAgICAgICAgIG9u
Q2xpY2s6IG9uU2VsZWN0LAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgZWxlbWVudDogImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAiYnV0dG9uIGlzLXJvdW5kZWQgaXMtc21hbGwiLAogICAgICAgICAgICAgICAgIHRleHQ6ICJO
b25lIiwKLSAgICAgICAgICAgICAgICBvbkNsaWNrOiBvbkRlc2VsZWN0Ci0gICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICBvbkNsaWNrOiBvbkRlc2VsZWN0LAor
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9OwotICAgICAgICB9
LAotICAgICAgICBjcmVhdGVFcnJvck1lc3NhZ2U6IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUVycm9yTWVzc2FnZShtZXNzYWdlKSB7CiAg
ICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgIGVsZW1lbnQ6ICJhcnRpY2xlIiwKICAgICAg
ICAgICAgIGNsYXNzTmFtZTogIm1lc3NhZ2UgaXMtZGFuZ2VyIiwKICAgICAgICAgICAgIGNoaWxk
cmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtZXNz
YWdlLWJvZHkiLAotICAgICAgICAgICAgICAgIHRleHQ6IG1lc3NhZ2UKLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIHRleHQ6IG1lc3NhZ2UsCisgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH07CiAgICAgICAgIH0KLSAgICAg
IH07CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlTG9hZGluZ0luZGljYXRvcih0ZXh0KSB7Cisg
ICAgICAgICAgcmV0dXJuIFVJLmNyZWF0ZUVsZW1lbnQoeworICAgICAgICAgICAgY2xhc3NOYW1l
OiAibGV2ZWwiLAorICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAgZWxlbWVu
dDogInNwYW4iLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJsZXZlbC1pdGVtIiwKKyAgICAg
ICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICBlbGVtZW50OiAiaSIsCisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtc3Bp
bm5lciBmYS1wdWxzZSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1sZWZ0OiAwLjRlbTsiLAorICAgICAgICAg
ICAgICAgICAgdGV4dDogdGV4dCwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBd
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgfQogICAg
IDwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9idWxtYS0w
LjcuNS9idWxtYS5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9idWxtYS0wLjcuNS9idWxtYS5jc3MKaW5kZXggZjk5NDg0
YmM0YTI5MmFlMWM5NGExY2RhNWZjZDM1MDY1N2MwNjMxOS4uZTc5MzQzMmFlMzFjMzQ5NTdjYWI3
NGY3OTFkMjk4ODcxZDkwZmEyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvYnVsbWEtMC43LjUvYnVsbWEu
Y3NzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L2J1bG1hLmNzcwpAQCAtMjYsOSArMjYsOSBAQAog
LnBhZ2luYXRpb24tZWxsaXBzaXMsIC50YWJzIHsKICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBu
b25lOwogICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAtd2Via2l0LXVzZXItc2VsZWN0
OiBub25lOworICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAtbXMtdXNlci1zZWxlY3Q6IG5v
bmU7Ci0gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgIHVzZXItc2VsZWN0OiBub25lOwog
fQogCiAuc2VsZWN0Om5vdCguaXMtbXVsdGlwbGUpOm5vdCguaXMtbG9hZGluZyk6OmFmdGVyLCAu
bmF2YmFyLWxpbms6bm90KC5pcy1hcnJvd2xlc3MpOjphZnRlciB7CkBAIC0zMzgsNyArMzM4LDcg
QEAgaHRtbCB7CiAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKICAgICAgLW1vei10
ZXh0LXNpemUtYWRqdXN0OiAxMDAlOwogICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7
Ci0gICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOworICAgICAgICAgIHRl
eHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiB9CiAKIGFydGljbGUsCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9i
dWxtYS0wLjcuNS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTA4OThmY2Y2N2ZiMmVmNzUyZmJk
NzMxZGZhMjBjZjE3MGEzOWNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotdXNlci1z
ZWxlY3QKLXRleHQtc2l6ZS1hZGp1c3QKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3Nz
L2J1bG1hLTAuNy41L2J1bG1hLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L2J1bG1hLmNzcy5tYXAK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L2Nzcy9idWxtYS0wLjcuNS9idWxtYS5taW4uY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS93d3cvY3NzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkODZjYmYwNDNkYjMxYWUwZGFjNTI5N2UxNjUwMDAzYjBmMDA5OGU5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvZm9udGF3
ZXNvbWUtNS43LjIubWluLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2ZvbnRhd2Vzb21lLm1pbi5jc3MKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9t
YWluLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvY3NzL3Jlc3VsdC5jc3MKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9zdHlsZS5jc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvaW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS93d3cvaW5kZXguaHRtbAppbmRleCBmYmZlYzQxZDYxOTNkOTU1NjY5NDA0
YTNhNjVjNzBiMWYwYzQ2Yzg1Li44YmE5NGRmYWMwYzAxNzg3MTAxM2JlMWYyNzcxYmYxZWQwOWRi
MDExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L2luZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9pbmRleC5odG1sCkBAIC0yMyw3
ICsyMyw3IEBACiAgICAgICAgIDxoMSBjbGFzcz0idGl0bGUgaXMtc3BhY2VkIj4KICAgICAgICAg
ICBXQVZFIFdNQVMgVGVzdCBTdWl0ZQogICAgICAgICA8L2gxPgotCQkJCTxwIGNsYXNzPSJzdWJ0
aXRsZSI+CisgICAgICAgIDxwIGNsYXNzPSJzdWJ0aXRsZSI+CiAgICAgICAgICAgPGEgaHJlZj0i
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJtZWRpYWFwaS8iPkdpdEh1YjwvYT4gLQogICAgICAg
ICA8L3A+CiAgICAgICA8L2Rpdj4KQEAgLTMyLDIzICszMiwyOSBAQAogICAgICAgICA8aDIgY2xh
c3M9InRpdGxlIGlzLTUiPgogICAgICAgICAgIE5ldyB0ZXN0IHNlc3Npb24KICAgICAgICAgPC9o
Mj4KLSAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucyBpcy12Y2VudGVyZWQiIHN0eWxlPSJtYXJn
aW4tdG9wOiAyMHB4Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1ucyBpcy12Y2VudGVyZWQi
IHN0eWxlPSJtYXJnaW4tdG9wOiAyMHB4OyI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sdW1u
IGlzLW5hcnJvdyI+CiAgICAgICAgICAgICA8ZGl2CiAgICAgICAgICAgICAgIGlkPSJxci1jb2Rl
IgotICAgICAgICAgICAgICBzdHlsZT0id2lkdGg6IDI1NnB4OyBoZWlnaHQ6IDI1NnB4OyBwYWRk
aW5nOiA1cHg7IGJvcmRlcjogMXB4IGdyYXkgc29saWQ7IGJvcmRlci1yYWRpdXM6IDNweDsiCisg
ICAgICAgICAgICAgIHN0eWxlPSIKKyAgICAgICAgICAgICAgICB3aWR0aDogMjU2cHg7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAyNTZweDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHg7
CisgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggZ3JheSBzb2xpZDsKKyAgICAgICAgICAgICAg
ICBib3JkZXItcmFkaXVzOiAzcHg7CisgICAgICAgICAgICAgICIKICAgICAgICAgICAgID48L2Rp
dj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4iPgotICAg
ICAgICAgICAgPHRhYmxlIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxLjVlbSI+CisgICAgICAgICAg
ICA8dGFibGUgc3R5bGU9Im1hcmdpbi1ib3R0b206IDEuNWVtOyI+CiAgICAgICAgICAgICAgIDx0
cj4KLSAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Imhhcy10ZXh0LXdlaWdodC1ib2xkIiBzdHls
ZT0icGFkZGluZy1yaWdodDogMXJlbSI+CisgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJoYXMt
dGV4dC13ZWlnaHQtYm9sZCIgc3R5bGU9InBhZGRpbmctcmlnaHQ6IDFyZW07Ij4KICAgICAgICAg
ICAgICAgICAgIFRva2VuOgogICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAg
PHRkIGlkPSJzZXNzaW9uLXRva2VuIiBjbGFzcz0iaXMtZmFtaWx5LW1vbm9zcGFjZSI+PC90ZD4K
ICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgPHRyPgotICAgICAgICAgICAgICAg
IDx0ZCBjbGFzcz0iaGFzLXRleHQtd2VpZ2h0LWJvbGQiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAx
cmVtIj4KKyAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Imhhcy10ZXh0LXdlaWdodC1ib2xkIiBz
dHlsZT0icGFkZGluZy1yaWdodDogMXJlbTsiPgogICAgICAgICAgICAgICAgICAgRXhwaXJlczoK
ICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgIDx0ZCBpZD0iZXhwaWFyeS1k
YXRlIj48L3RkPgpAQCAtODcsNyArOTMsNyBAQAogICAgICAgICA8L2gyPgogICAgICAgICA8YXJ0
aWNsZQogICAgICAgICAgIGlkPSJ1bmtub3duX3Rva2VuX2Vycm9yIgotICAgICAgICAgIHN0eWxl
PSJtYXgtd2lkdGg6IDMwZW07IGRpc3BsYXk6IG5vbmUiCisgICAgICAgICAgc3R5bGU9Im1heC13
aWR0aDogMzBlbTsgZGlzcGxheTogbm9uZTsiCiAgICAgICAgICAgY2xhc3M9Im1lc3NhZ2UgaXMt
ZGFuZ2VyIgogICAgICAgICA+CiAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1ib2R5Ij4K
QEAgLTExMiwxNDggKzExOCwxNDYgQEAKICAgICAgIDwvZGl2PgogICAgIDwvc2VjdGlvbj4KIAot
CQk8c2NyaXB0PgotCQkJdmFyIHNlbGVjdGVkVGFiYmFibGUgPSAtMTsKKyAgICA8c2NyaXB0Pgor
ICAgICAgdmFyIHNlbGVjdGVkVGFiYmFibGUgPSAtMTsKIAotCQkJZnVuY3Rpb24gcmVtb3ZlQ2xh
c3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7Ci0JCQkJdmFyIGVsZW1lbnRDbGFzcyA9IGVsZW1lbnQu
Y2xhc3NOYW1lOwotCQkJCXZhciBpbmRleCA9IGVsZW1lbnRDbGFzcy5pbmRleE9mKGNsYXNzTmFt
ZSk7Ci0JCQkJaWYgKGluZGV4ICE9PSAtMSkgewotCQkJCQllbGVtZW50LmNsYXNzTmFtZSA9IGVs
ZW1lbnRDbGFzcy5yZXBsYWNlKGNsYXNzTmFtZSwgIiIpOwotCQkJCX0KLQkJCX0KKyAgICAgIGZ1
bmN0aW9uIHJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkgeworICAgICAgICB2YXIgZWxl
bWVudENsYXNzID0gZWxlbWVudC5jbGFzc05hbWU7CisgICAgICAgIHZhciBpbmRleCA9IGVsZW1l
bnRDbGFzcy5pbmRleE9mKGNsYXNzTmFtZSk7CisgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHsK
KyAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnRDbGFzcy5yZXBsYWNlKGNsYXNz
TmFtZSwgIiIpOworICAgICAgICB9CisgICAgICB9CiAKLQkJCWZ1bmN0aW9uIGFkZENsYXNzKGVs
ZW1lbnQsIGNsYXNzTmFtZSkgewotCQkJCWVsZW1lbnQuY2xhc3NOYW1lICs9ICIgIiArIGNsYXNz
TmFtZTsKLQkJCX0KKyAgICAgIGZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkg
eworICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSArPSAiICIgKyBjbGFzc05hbWU7CisgICAgICB9
CiAKLQkJCWZ1bmN0aW9uIHNraXBGb2N1cyhzdGVwcykgewotCQkJCXZhciB0YWJiYWJsZXMgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0YWJiYWJsZSIpOwotCQkJCWlmIChzZWxl
Y3RlZFRhYmJhYmxlID09PSAtMSkgewotCQkJCQlzZWxlY3RlZFRhYmJhYmxlID0gMDsKLQkJCQl9
IGVsc2UgewotCQkJCQlyZW1vdmVDbGFzcyh0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV0sICJm
b2N1c2VkIik7Ci0JCQkJCXNlbGVjdGVkVGFiYmFibGUgKz0gc3RlcHM7Ci0JCQkJfQorICAgICAg
ZnVuY3Rpb24gc2tpcEZvY3VzKHN0ZXBzKSB7CisgICAgICAgIHZhciB0YWJiYWJsZXMgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ0YWJiYWJsZSIpOworICAgICAgICBpZiAoc2Vs
ZWN0ZWRUYWJiYWJsZSA9PT0gLTEpIHsKKyAgICAgICAgICBzZWxlY3RlZFRhYmJhYmxlID0gMDsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZW1vdmVDbGFzcyh0YWJiYWJsZXNbc2VsZWN0
ZWRUYWJiYWJsZV0sICJmb2N1c2VkIik7CisgICAgICAgICAgc2VsZWN0ZWRUYWJiYWJsZSArPSBz
dGVwczsKKyAgICAgICAgfQogCi0JCQkJaWYgKHNlbGVjdGVkVGFiYmFibGUgPj0gdGFiYmFibGVz
Lmxlbmd0aCkgewotCQkJCQlzZWxlY3RlZFRhYmJhYmxlID0gMDsKLQkJCQl9CisgICAgICAgIGlm
IChzZWxlY3RlZFRhYmJhYmxlID49IHRhYmJhYmxlcy5sZW5ndGgpIHsKKyAgICAgICAgICBzZWxl
Y3RlZFRhYmJhYmxlID0gMDsKKyAgICAgICAgfQogCi0JCQkJaWYgKHNlbGVjdGVkVGFiYmFibGUg
PCAwKSB7Ci0JCQkJCXNlbGVjdGVkVGFiYmFibGUgPSB0YWJiYWJsZXMubGVuZ3RoIC0gMTsKLQkJ
CQl9CisgICAgICAgIGlmIChzZWxlY3RlZFRhYmJhYmxlIDwgMCkgeworICAgICAgICAgIHNlbGVj
dGVkVGFiYmFibGUgPSB0YWJiYWJsZXMubGVuZ3RoIC0gMTsKKyAgICAgICAgfQogCi0JCQkJdGFi
YmFibGVzW3NlbGVjdGVkVGFiYmFibGVdLmZvY3VzKCk7Ci0JCQkJYWRkQ2xhc3ModGFiYmFibGVz
W3NlbGVjdGVkVGFiYmFibGVdLCAiZm9jdXNlZCIpOwotCQkJfQorICAgICAgICB0YWJiYWJsZXNb
c2VsZWN0ZWRUYWJiYWJsZV0uZm9jdXMoKTsKKyAgICAgICAgYWRkQ2xhc3ModGFiYmFibGVzW3Nl
bGVjdGVkVGFiYmFibGVdLCAiZm9jdXNlZCIpOworICAgICAgfQogCi0JCQlmdW5jdGlvbiBmb2N1
c05leHQoKSB7Ci0JCQkJc2tpcEZvY3VzKDEpOwotCQkJfQorICAgICAgZnVuY3Rpb24gZm9jdXNO
ZXh0KCkgeworICAgICAgICBza2lwRm9jdXMoMSk7CisgICAgICB9CiAKLQkJCWZ1bmN0aW9uIGZv
Y3VzUHJldmlvdXMoKSB7Ci0JCQkJc2tpcEZvY3VzKC0xKTsKLQkJCX0KKyAgICAgIGZ1bmN0aW9u
IGZvY3VzUHJldmlvdXMoKSB7CisgICAgICAgIHNraXBGb2N1cygtMSk7CisgICAgICB9CiAKLQkJ
CS8vIFJlc3VtZQotCQkJdmFyIHJlc3VtZVRva2VuID0gIiI7Ci0JCQl2YXIgY29va2llcyA9IGRv
Y3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpOwotCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVz
Lmxlbmd0aDsgaSsrKSB7Ci0JCQkJdmFyIGNvb2tpZSA9IGNvb2tpZXNbaV07Ci0JCQkJaWYgKGNv
b2tpZS5zcGxpdCgiPSIpWzBdLnJlcGxhY2UoLyAvZywgIiIpID09PSAicmVzdW1lX3Rva2VuIikg
ewotCQkJCQlyZXN1bWVUb2tlbiA9IGNvb2tpZS5zcGxpdCgiPSIpWzFdOwotCQkJCQlicmVhazsK
LQkJCQl9Ci0JCQl9Ci0JCQlpZiAoIXJlc3VtZVRva2VuKSByZXN1bWVUb2tlbiA9ICIiOworICAg
ICAgLy8gUmVzdW1lCisgICAgICB2YXIgcmVzdW1lVG9rZW4gPSAiIjsKKyAgICAgIHZhciBjb29r
aWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7CisgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGNvb2tpZSA9IGNvb2tpZXNb
aV07CisgICAgICAgIGlmIChjb29raWUuc3BsaXQoIj0iKVswXS5yZXBsYWNlKC8gL2csICIiKSA9
PT0gInJlc3VtZV90b2tlbiIpIHsKKyAgICAgICAgICByZXN1bWVUb2tlbiA9IGNvb2tpZS5zcGxp
dCgiPSIpWzFdOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgICBp
ZiAoIXJlc3VtZVRva2VuKSByZXN1bWVUb2tlbiA9ICIiOwogCi0JCQl2YXIgcmVzdW1lQnV0dG9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VtZS1idXR0b24iKTsKKyAgICAgIHZhciBy
ZXN1bWVCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdW1lLWJ1dHRvbiIpOwog
Ci0JCQl2YXIgdG9rZW5UZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VtZV90b2tl
biIpOwotCQkJaWYgKHJlc3VtZVRva2VuKSB7Ci0JCQkJdG9rZW5UZXh0LmlubmVyVGV4dCA9ICJM
YXN0IHNlc3Npb246ICIgKyByZXN1bWVUb2tlbjsKLQkJCX0gZWxzZSB7Ci0JCQkJdG9rZW5UZXh0
LmlubmVyVGV4dCA9ICJObyByZWNlbnQgc2Vzc2lvbi4iOwotCQkJCXJlc3VtZUJ1dHRvbi5zZXRB
dHRyaWJ1dGUoImRpc2FibGVkIiwgIiIpOwotCQkJfQotCQkJdmFyIHVua25vd25Ub2tlbkVycm9y
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVua25vd25fdG9rZW5fZXJyb3IiKTsKLQkJCXJl
c3VtZUJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oZXZlbnQpIHsKLQkJCQlsb2NhdGlvbi5ocmVm
ID0gV0VCX1JPT1QgKyAibmV4dC5odG1sP3Rva2VuPSIgKyByZXN1bWVUb2tlbjsKLQkJCX07Cisg
ICAgICB2YXIgdG9rZW5UZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VtZV90b2tl
biIpOworICAgICAgaWYgKHJlc3VtZVRva2VuKSB7CisgICAgICAgIHRva2VuVGV4dC5pbm5lclRl
eHQgPSAiTGFzdCBzZXNzaW9uOiAiICsgcmVzdW1lVG9rZW47CisgICAgICB9IGVsc2UgeworICAg
ICAgICB0b2tlblRleHQuaW5uZXJUZXh0ID0gIk5vIHJlY2VudCBzZXNzaW9uLiI7CisgICAgICAg
IHJlc3VtZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgIiIpOworICAgICAgfQorICAg
ICAgdmFyIHVua25vd25Ub2tlbkVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVua25v
d25fdG9rZW5fZXJyb3IiKTsKKyAgICAgIHJlc3VtZUJ1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBXRUJfUk9PVCArICJuZXh0Lmh0bWw/
dG9rZW49IiArIHJlc3VtZVRva2VuOworICAgICAgfTsKIAotCQkJcmVzdW1lQnV0dG9uLm9ua2V5
ZG93biA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0JCQkJdmFyIGNoYXJDb2RlID0KLQkJCQkJdHlwZW9m
IGV2ZW50LndoaWNoID09PSAibnVtYmVyIiA/IGV2ZW50LndoaWNoIDogZXZlbnQua2V5Q29kZTsK
LQkJCQlpZiAoQUNUSU9OX0tFWVMuaW5kZXhPZihjaGFyQ29kZSkgPT09IC0xKSByZXR1cm47Ci0J
CQkJbG9jYXRpb24uaHJlZiA9IFdFQl9ST09UICsgIm5leHQuaHRtbD90b2tlbj0iICsgcmVzdW1l
VG9rZW47Ci0JCQl9OworICAgICAgcmVzdW1lQnV0dG9uLm9ua2V5ZG93biA9IGZ1bmN0aW9uIChl
dmVudCkgeworICAgICAgICB2YXIgY2hhckNvZGUgPQorICAgICAgICAgIHR5cGVvZiBldmVudC53
aGljaCA9PT0gIm51bWJlciIgPyBldmVudC53aGljaCA6IGV2ZW50LmtleUNvZGU7CisgICAgICAg
IGlmIChBQ1RJT05fS0VZUy5pbmRleE9mKGNoYXJDb2RlKSA9PT0gLTEpIHJldHVybjsKKyAgICAg
ICAgbG9jYXRpb24uaHJlZiA9IFdFQl9ST09UICsgIm5leHQuaHRtbD90b2tlbj0iICsgcmVzdW1l
VG9rZW47CisgICAgICB9OwogCi0JCQlkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbihldmVu
dCkgewotCQkJCWV2ZW50ID0gZXZlbnQgfHwgd2luZG93LmV2ZW50OwotCQkJCXZhciBjaGFyQ29k
ZSA9Ci0JCQkJCXR5cGVvZiBldmVudC53aGljaCA9PT0gIm51bWJlciIgPyBldmVudC53aGljaCA6
IGV2ZW50LmtleUNvZGU7CisgICAgICBkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CisgICAgICAgIHZh
ciBjaGFyQ29kZSA9CisgICAgICAgICAgdHlwZW9mIGV2ZW50LndoaWNoID09PSAibnVtYmVyIiA/
IGV2ZW50LndoaWNoIDogZXZlbnQua2V5Q29kZTsKIAotCQkJCWlmIChBQ1RJT05fS0VZUy5pbmRl
eE9mKGNoYXJDb2RlKSAhPT0gLTEpIHsKLQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKLQkJ
CQkJdmFyIHRhYmJhYmxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRhYmJh
YmxlIik7Ci0JCQkJCXZhciBlbGVtZW50ID0gdGFiYmFibGVzW3NlbGVjdGVkVGFiYmFibGVdOwot
CQkJCQlpZiAoIWVsZW1lbnQpIHJldHVybjsKLQkJCQkJaWYgKGVsZW1lbnQudHlwZSA9PT0gImNo
ZWNrYm94IikgewotCQkJCQkJZWxlbWVudC5jaGVja2VkID0gIWVsZW1lbnQuY2hlY2tlZDsKLQkJ
CQkJfSBlbHNlIHsKLQkJCQkJCWVsZW1lbnQuY2xpY2soKTsKLQkJCQkJfQotCQkJCX0KKyAgICAg
ICAgaWYgKEFDVElPTl9LRVlTLmluZGV4T2YoY2hhckNvZGUpICE9PSAtMSkgeworICAgICAgICAg
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgdmFyIHRhYmJhYmxlcyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInRhYmJhYmxlIik7CisgICAgICAgICAgdmFyIGVs
ZW1lbnQgPSB0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV07CisgICAgICAgICAgaWYgKCFlbGVt
ZW50KSByZXR1cm47CisgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gImNoZWNrYm94Iikg
eworICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gIWVsZW1lbnQuY2hlY2tlZDsKKyAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZWxlbWVudC5jbGljaygpOworICAgICAgICAgIH0K
KyAgICAgICAgfQogCi0JCQkJaWYgKFBSRVZfS0VZUy5pbmRleE9mKGNoYXJDb2RlKSAhPT0gLTEp
IHsKLQkJCQkJZm9jdXNQcmV2aW91cygpOwotCQkJCX0KKyAgICAgICAgaWYgKFBSRVZfS0VZUy5p
bmRleE9mKGNoYXJDb2RlKSAhPT0gLTEpIHsKKyAgICAgICAgICBmb2N1c1ByZXZpb3VzKCk7Cisg
ICAgICAgIH0KIAotCQkJCWlmIChORVhUX0tFWVMuaW5kZXhPZihjaGFyQ29kZSkgIT09IC0xKSB7
Ci0JCQkJCWZvY3VzTmV4dCgpOwotCQkJCX0KLQkJCX07CisgICAgICAgIGlmIChORVhUX0tFWVMu
aW5kZXhPZihjaGFyQ29kZSkgIT09IC0xKSB7CisgICAgICAgICAgZm9jdXNOZXh0KCk7CisgICAg
ICAgIH0KKyAgICAgIH07CiAKLQkJCXZhciBsaWZlVGltZSA9IDMwICogNjAgKiAxMDAwOyAvLyAz
MG1pbgotCQkJV2F2ZVNlcnZpY2UuY3JlYXRlU2Vzc2lvbigKLQkJCQl7IGV4cGlyYXRpb25EYXRl
OiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGxpZmVUaW1lIH0sCi0JCQkJZnVuY3Rpb24odG9rZW4p
IHsKLQkJCQkJdmFyIHNlc3Npb25Ub2tlbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic2Vzc2lvbi10b2tlbiIpOwotCQkJCQlzZXNzaW9uVG9rZW5FbGVtZW50LmlubmVyVGV4dCA9
IHRva2VuOworICAgICAgdmFyIGxpZmVUaW1lID0gMzAgKiA2MCAqIDEwMDA7IC8vIDMwbWluCisg
ICAgICBXYXZlU2VydmljZS5jcmVhdGVTZXNzaW9uKAorICAgICAgICB7IGV4cGlyYXRpb25EYXRl
OiBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGxpZmVUaW1lIH0sCisgICAgICAgIGZ1bmN0aW9uICh0
b2tlbikgeworICAgICAgICAgIHZhciBzZXNzaW9uVG9rZW5FbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInNlc3Npb24tdG9rZW4iKTsKKyAgICAgICAgICBzZXNzaW9uVG9rZW5FbGVt
ZW50LmlubmVyVGV4dCA9IHRva2VuOwogCi0JCQkJCVdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uKHRv
a2VuLCBmdW5jdGlvbihjb25maWcpIHsKLQkJCQkJCXZhciBleHBpYXJ5RGF0ZUVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhwaWFyeS1kYXRlIik7Ci0JCQkJCQlleHBpYXJ5RGF0
ZUVsZW1lbnQuaW5uZXJUZXh0ID0gbmV3IERhdGUoCi0JCQkJCQkJY29uZmlnLmV4cGlyYXRpb25E
YXRlCi0JCQkJCQkpLnRvTG9jYWxlU3RyaW5nKCk7Ci0JCQkJCX0pOworICAgICAgICAgIFdhdmVT
ZXJ2aWNlLnJlYWRTZXNzaW9uU3RhdHVzKHRva2VuLCBmdW5jdGlvbiAoY29uZmlnKSB7CisgICAg
ICAgICAgICB2YXIgZXhwaWFyeURhdGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImV4cGlhcnktZGF0ZSIpOworICAgICAgICAgICAgZXhwaWFyeURhdGVFbGVtZW50LmlubmVyVGV4
dCA9IGNvbmZpZy5leHBpcmF0aW9uRGF0ZS50b0xvY2FsZVN0cmluZygpOworICAgICAgICAgIH0p
OwogCi0JCQkJCXZhciBjb25maWd1cmF0aW9uVXJsID0KLQkJCQkJCWxvY2F0aW9uLm9yaWdpbiAr
Ci0JCQkJCQlXRUJfUk9PVCArICJjb25maWd1cmF0aW9uLmh0bWw/dG9rZW49IiArCi0JCQkJCQl0
b2tlbiArCi0JCQkJCQkiJnJlc3VtZT0iICsKLQkJCQkJCXJlc3VtZVRva2VuOwotCQkJCQluZXcg
UVJDb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxci1jb2RlIiksIGNvbmZpZ3VyYXRpb25V
cmwpOwotCQkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlndXJlLWJ1dHRvbiIpLm9u
Y2xpY2sgPSBmdW5jdGlvbigpIHsKLQkJCQkJCXdpbmRvdy5vcGVuKGNvbmZpZ3VyYXRpb25Vcmws
ICJfYmxhbmsiKTsKLQkJCQkJfTsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvblVybCA9Cisg
ICAgICAgICAgICBsb2NhdGlvbi5vcmlnaW4gKworICAgICAgICAgICAgV0VCX1JPT1QgKworICAg
ICAgICAgICAgImNvbmZpZ3VyYXRpb24uaHRtbD90b2tlbj0iICsKKyAgICAgICAgICAgIHRva2Vu
ICsKKyAgICAgICAgICAgICImcmVzdW1lPSIgKworICAgICAgICAgICAgcmVzdW1lVG9rZW47Cisg
ICAgICAgICAgbmV3IFFSQ29kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXItY29kZSIpLCBj
b25maWd1cmF0aW9uVXJsKTsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
ZmlndXJlLWJ1dHRvbiIpLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB3aW5k
b3cub3Blbihjb25maWd1cmF0aW9uVXJsLCAiX2JsYW5rIik7CisgICAgICAgICAgfTsKIAotCQkJ
CQlXYXZlU2VydmljZS5jb25uZWN0SHR0cFBvbGxpbmcodG9rZW4pOwotCQkJCQlXYXZlU2Vydmlj
ZS5vbk1lc3NhZ2UoZnVuY3Rpb24obWVzc2FnZSkgewotCQkJCQkJaWYgKG1lc3NhZ2UudHlwZSA9
PT0gInJlc3VtZSIpIHsKLQkJCQkJCQl2YXIgcmVzdW1lVG9rZW4gPSBtZXNzYWdlLmRhdGE7Ci0J
CQkJCQkJbG9jYXRpb24uaHJlZiA9IFdFQl9ST09UICsgIm5leHQuaHRtbD90b2tlbj0iICsgcmVz
dW1lVG9rZW47Ci0JCQkJCQl9CisgICAgICAgICAgV2F2ZVNlcnZpY2UuYWRkU2Vzc2lvbkV2ZW50
TGlzdGVuZXIodG9rZW4sIGZ1bmN0aW9uIChtZXNzYWdlKSB7CisgICAgICAgICAgICBpZiAobWVz
c2FnZS50eXBlID09PSAicmVzdW1lIikgeworICAgICAgICAgICAgICB2YXIgcmVzdW1lVG9rZW4g
PSBtZXNzYWdlLmRhdGE7CisgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBXRUJfUk9PVCAr
ICJuZXh0Lmh0bWw/dG9rZW49IiArIHJlc3VtZVRva2VuOworICAgICAgICAgICAgfQogCi0JCQkJ
CQlpZiAobWVzc2FnZS50eXBlICE9PSAic3RhdHVzIikgcmV0dXJuOwotCQkJCQkJaWYgKG1lc3Nh
Z2UuZGF0YSA9PT0gInBlbmRpbmciKSByZXR1cm47Ci0JCQkJCQlsb2NhdGlvbi5ocmVmID0gV0VC
X1JPT1QgKyAibmV4dC5odG1sP3Rva2VuPSIgKyB0b2tlbjsKLQkJCQkJfSk7Ci0JCQkJfQotCQkJ
KTsKLQkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bWUtYnV0dG9uIikuZm9jdXMoKTsK
LQkJPC9zY3JpcHQ+CisgICAgICAgICAgICBpZiAobWVzc2FnZS50eXBlICE9PSAic3RhdHVzIikg
cmV0dXJuOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UuZGF0YSA9PT0gInBlbmRpbmciKSByZXR1
cm47CisgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gV0VCX1JPT1QgKyAibmV4dC5odG1sP3Rv
a2VuPSIgKyB0b2tlbjsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgKTsKKyAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bWUtYnV0dG9uIikuZm9jdXMoKTsKKyAgICA8
L3NjcmlwdD4KICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvZGF2aWRzaGlt
anMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9kYXZpZHNoaW1qcy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2VmMjAzMTFiYWIxNzhiOGNlOTBkNTk0ZTU2MWE3
ZDU5YTcyZDlkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L2xpYi9kYXZpZHNoaW1qcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL2Rhdmlkc2hpbWpzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9kYXZp
ZHNoaW1qcy9xcmNvZGUuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL2pzemlwLm1pbi5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGli
L2pzemlwLm1pbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTE4ODczNmI3MzY5MTY1NjlhZDYwNWE4NzdhN2Vm
MDhjMmQ2MTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvanN6aXAubWluLmpzCkBAIC0wLDAg
KzEsMTUgQEAKKy8qIQorCitKU1ppcCB2My4xLjUgLSBBIEphdmFTY3JpcHQgY2xhc3MgZm9yIGdl
bmVyYXRpbmcgYW5kIHJlYWRpbmcgemlwIGZpbGVzCis8aHR0cDovL3N0dWFydGsuY29tL2pzemlw
PgorCisoYykgMjAwOS0yMDE2IFN0dWFydCBLbmlnaHRsZXkgPHN0dWFydCBbYXRdIHN0dWFydGsu
Y29tPgorRHVhbCBsaWNlbmNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2Ugb3IgR1BMdjMuIFNlZSBo
dHRwczovL3Jhdy5naXRodWIuY29tL1N0dWsvanN6aXAvbWFzdGVyL0xJQ0VOU0UubWFya2Rvd24u
CisKK0pTWmlwIHVzZXMgdGhlIGxpYnJhcnkgcGFrbyByZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxp
Y2Vuc2UgOgoraHR0cHM6Ly9naXRodWIuY29tL25vZGVjYS9wYWtvL2Jsb2IvbWFzdGVyL0xJQ0VO
U0UKKyovCishZnVuY3Rpb24oYSl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZp
bmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz1hKCk7ZWxzZSBpZigiZnVuY3Rpb24i
PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSxhKTtlbHNle3ZhciBiO2I9InVu
ZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFs
P2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGIuSlNaaXA9YSgpfX0o
ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gYShiLGMsZCl7ZnVuY3Rpb24gZShnLGgpe2lmKCFj
W2ddKXtpZighYltnXSl7dmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7
aWYoIWgmJmkpcmV0dXJuIGkoZywhMCk7aWYoZilyZXR1cm4gZihnLCEwKTt2YXIgaj1uZXcgRXJy
b3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIitnKyInIik7dGhyb3cgai5jb2RlPSJNT0RVTEVfTk9U
X0ZPVU5EIixqfXZhciBrPWNbZ109e2V4cG9ydHM6e319O2JbZ11bMF0uY2FsbChrLmV4cG9ydHMs
ZnVuY3Rpb24oYSl7dmFyIGM9YltnXVsxXVthXTtyZXR1cm4gZShjP2M6YSl9LGssay5leHBvcnRz
LGEsYixjLGQpfXJldHVybiBjW2ddLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVv
ZiByZXF1aXJlJiZyZXF1aXJlLGc9MDtnPGQubGVuZ3RoO2crKyllKGRbZ10pO3JldHVybiBlfSh7
MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1hKCIuL3V0aWxzIiksZT1hKCIu
L3N1cHBvcnQiKSxmPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3Bx
cnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7Yy5lbmNvZGU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMs
ZSxnLGgsaSxqLGs9W10sbD0wLG09YS5sZW5ndGgsbj1tLG89InN0cmluZyIhPT1kLmdldFR5cGVP
ZihhKTtsPGEubGVuZ3RoOyluPW0tbCxvPyhiPWFbbCsrXSxjPWw8bT9hW2wrK106MCxlPWw8bT9h
W2wrK106MCk6KGI9YS5jaGFyQ29kZUF0KGwrKyksYz1sPG0/YS5jaGFyQ29kZUF0KGwrKyk6MCxl
PWw8bT9hLmNoYXJDb2RlQXQobCsrKTowKSxnPWI+PjIsaD0oMyZiKTw8NHxjPj40LGk9bj4xPygx
NSZjKTw8MnxlPj42OjY0LGo9bj4yPzYzJmU6NjQsay5wdXNoKGYuY2hhckF0KGcpK2YuY2hhckF0
KGgpK2YuY2hhckF0KGkpK2YuY2hhckF0KGopKTtyZXR1cm4gay5qb2luKCIiKX0sYy5kZWNvZGU9
ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxpLGosaz0wLGw9MCxtPSJkYXRhOiI7aWYoYS5zdWJz
dHIoMCxtLmxlbmd0aCk9PT1tKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBiYXNlNjQgaW5wdXQs
IGl0IGxvb2tzIGxpa2UgYSBkYXRhIHVybC4iKTthPWEucmVwbGFjZSgvW15BLVphLXowLTlcK1wv
XD1dL2csIiIpO3ZhciBuPTMqYS5sZW5ndGgvNDtpZihhLmNoYXJBdChhLmxlbmd0aC0xKT09PWYu
Y2hhckF0KDY0KSYmbi0tLGEuY2hhckF0KGEubGVuZ3RoLTIpPT09Zi5jaGFyQXQoNjQpJiZuLS0s
biUxIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmFzZTY0IGlucHV0LCBiYWQgY29udGVu
dCBsZW5ndGguIik7dmFyIG87Zm9yKG89ZS51aW50OGFycmF5P25ldyBVaW50OEFycmF5KDB8bik6
bmV3IEFycmF5KDB8bik7azxhLmxlbmd0aDspZz1mLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaD1m
LmluZGV4T2YoYS5jaGFyQXQoaysrKSksaT1mLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaj1mLmlu
ZGV4T2YoYS5jaGFyQXQoaysrKSksYj1nPDwyfGg+PjQsYz0oMTUmaCk8PDR8aT4+MixkPSgzJmkp
PDw2fGosb1tsKytdPWIsNjQhPT1pJiYob1tsKytdPWMpLDY0IT09aiYmKG9bbCsrXT1kKTtyZXR1
cm4gb319LHsiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6MzJ9XSwyOltmdW5jdGlvbihhLGIsYyl7
InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiLGMsZCxlKXt0aGlzLmNvbXByZXNzZWRTaXplPWEs
dGhpcy51bmNvbXByZXNzZWRTaXplPWIsdGhpcy5jcmMzMj1jLHRoaXMuY29tcHJlc3Npb249ZCx0
aGlzLmNvbXByZXNzZWRDb250ZW50PWV9dmFyIGU9YSgiLi9leHRlcm5hbCIpLGY9YSgiLi9zdHJl
YW0vRGF0YVdvcmtlciIpLGc9YSgiLi9zdHJlYW0vRGF0YUxlbmd0aFByb2JlIiksaD1hKCIuL3N0
cmVhbS9DcmMzMlByb2JlIiksZz1hKCIuL3N0cmVhbS9EYXRhTGVuZ3RoUHJvYmUiKTtkLnByb3Rv
dHlwZT17Z2V0Q29udGVudFdvcmtlcjpmdW5jdGlvbigpe3ZhciBhPW5ldyBmKGUuUHJvbWlzZS5y
ZXNvbHZlKHRoaXMuY29tcHJlc3NlZENvbnRlbnQpKS5waXBlKHRoaXMuY29tcHJlc3Npb24udW5j
b21wcmVzc1dvcmtlcigpKS5waXBlKG5ldyBnKCJkYXRhX2xlbmd0aCIpKSxiPXRoaXM7cmV0dXJu
IGEub24oImVuZCIsZnVuY3Rpb24oKXtpZih0aGlzLnN0cmVhbUluZm8uZGF0YV9sZW5ndGghPT1i
LnVuY29tcHJlc3NlZFNpemUpdGhyb3cgbmV3IEVycm9yKCJCdWcgOiB1bmNvbXByZXNzZWQgZGF0
YSBzaXplIG1pc21hdGNoIil9KSxhfSxnZXRDb21wcmVzc2VkV29ya2VyOmZ1bmN0aW9uKCl7cmV0
dXJuIG5ldyBmKGUuUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29tcHJlc3NlZENvbnRlbnQpKS53aXRo
U3RyZWFtSW5mbygiY29tcHJlc3NlZFNpemUiLHRoaXMuY29tcHJlc3NlZFNpemUpLndpdGhTdHJl
YW1JbmZvKCJ1bmNvbXByZXNzZWRTaXplIix0aGlzLnVuY29tcHJlc3NlZFNpemUpLndpdGhTdHJl
YW1JbmZvKCJjcmMzMiIsdGhpcy5jcmMzMikud2l0aFN0cmVhbUluZm8oImNvbXByZXNzaW9uIix0
aGlzLmNvbXByZXNzaW9uKX19LGQuY3JlYXRlV29ya2VyRnJvbT1mdW5jdGlvbihhLGIsYyl7cmV0
dXJuIGEucGlwZShuZXcgaCkucGlwZShuZXcgZygidW5jb21wcmVzc2VkU2l6ZSIpKS5waXBlKGIu
Y29tcHJlc3NXb3JrZXIoYykpLnBpcGUobmV3IGcoImNvbXByZXNzZWRTaXplIikpLndpdGhTdHJl
YW1JbmZvKCJjb21wcmVzc2lvbiIsYil9LGIuZXhwb3J0cz1kfSx7Ii4vZXh0ZXJuYWwiOjYsIi4v
c3RyZWFtL0NyYzMyUHJvYmUiOjI1LCIuL3N0cmVhbS9EYXRhTGVuZ3RoUHJvYmUiOjI2LCIuL3N0
cmVhbS9EYXRhV29ya2VyIjoyN31dLDM6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFy
IGQ9YSgiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpO2MuU1RPUkU9e21hZ2ljOiJcMFwwIixjb21w
cmVzc1dvcmtlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IGQoIlNUT1JFIGNvbXByZXNzaW9uIil9
LHVuY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQoIlNUT1JFIGRlY29tcHJl
c3Npb24iKX19LGMuREVGTEFURT1hKCIuL2ZsYXRlIil9LHsiLi9mbGF0ZSI6NywiLi9zdHJlYW0v
R2VuZXJpY1dvcmtlciI6Mjh9XSw0OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0
aW9uIGQoKXtmb3IodmFyIGEsYj1bXSxjPTA7YzwyNTY7YysrKXthPWM7Zm9yKHZhciBkPTA7ZDw4
O2QrKylhPTEmYT8zOTg4MjkyMzg0XmE+Pj4xOmE+Pj4xO2JbY109YX1yZXR1cm4gYn1mdW5jdGlv
biBlKGEsYixjLGQpe3ZhciBlPWgsZj1kK2M7YV49LTE7Zm9yKHZhciBnPWQ7ZzxmO2crKylhPWE+
Pj44XmVbMjU1JihhXmJbZ10pXTtyZXR1cm4gYV4tMX1mdW5jdGlvbiBmKGEsYixjLGQpe3ZhciBl
PWgsZj1kK2M7YV49LTE7Zm9yKHZhciBnPWQ7ZzxmO2crKylhPWE+Pj44XmVbMjU1JihhXmIuY2hh
ckNvZGVBdChnKSldO3JldHVybiBhXi0xfXZhciBnPWEoIi4vdXRpbHMiKSxoPWQoKTtiLmV4cG9y
dHM9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fCFhLmxlbmd0aClyZXR1
cm4gMDt2YXIgYz0ic3RyaW5nIiE9PWcuZ2V0VHlwZU9mKGEpO3JldHVybiBjP2UoMHxiLGEsYS5s
ZW5ndGgsMCk6ZigwfGIsYSxhLmxlbmd0aCwwKX19LHsiLi91dGlscyI6MzJ9XSw1OltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2MuYmFzZTY0PSExLGMuYmluYXJ5PSExLGMuZGlyPSExLGMu
Y3JlYXRlRm9sZGVycz0hMCxjLmRhdGU9bnVsbCxjLmNvbXByZXNzaW9uPW51bGwsYy5jb21wcmVz
c2lvbk9wdGlvbnM9bnVsbCxjLmNvbW1lbnQ9bnVsbCxjLnVuaXhQZXJtaXNzaW9ucz1udWxsLGMu
ZG9zUGVybWlzc2lvbnM9bnVsbH0se31dLDY6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7
dmFyIGQ9bnVsbDtkPSJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOmEoImxpZSIp
LGIuZXhwb3J0cz17UHJvbWlzZTpkfX0se2xpZTo1OH1dLDc6W2Z1bmN0aW9uKGEsYixjKXsidXNl
IHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2guY2FsbCh0aGlzLCJGbGF0ZVdvcmtlci8iK2EpLHRo
aXMuX3Bha289bnVsbCx0aGlzLl9wYWtvQWN0aW9uPWEsdGhpcy5fcGFrb09wdGlvbnM9Yix0aGlz
Lm1ldGE9e319dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVk
IiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LGY9
YSgicGFrbyIpLGc9YSgiLi91dGlscyIpLGg9YSgiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLGk9
ZT8idWludDhhcnJheSI6ImFycmF5IjtjLm1hZ2ljPSJcYlwwIixnLmluaGVyaXRzKGQsaCksZC5w
cm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGEpe3RoaXMubWV0YT1hLm1ldGEsbnVsbD09
PXRoaXMuX3Bha28mJnRoaXMuX2NyZWF0ZVBha28oKSx0aGlzLl9wYWtvLnB1c2goZy50cmFuc2Zv
cm1UbyhpLGEuZGF0YSksITEpfSxkLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2gucHJvdG90
eXBlLmZsdXNoLmNhbGwodGhpcyksbnVsbD09PXRoaXMuX3Bha28mJnRoaXMuX2NyZWF0ZVBha28o
KSx0aGlzLl9wYWtvLnB1c2goW10sITApfSxkLnByb3RvdHlwZS5jbGVhblVwPWZ1bmN0aW9uKCl7
aC5wcm90b3R5cGUuY2xlYW5VcC5jYWxsKHRoaXMpLHRoaXMuX3Bha289bnVsbH0sZC5wcm90b3R5
cGUuX2NyZWF0ZVBha289ZnVuY3Rpb24oKXt0aGlzLl9wYWtvPW5ldyBmW3RoaXMuX3Bha29BY3Rp
b25dKHtyYXc6ITAsbGV2ZWw6dGhpcy5fcGFrb09wdGlvbnMubGV2ZWx8fC0xfSk7dmFyIGE9dGhp
czt0aGlzLl9wYWtvLm9uRGF0YT1mdW5jdGlvbihiKXthLnB1c2goe2RhdGE6YixtZXRhOmEubWV0
YX0pfX0sYy5jb21wcmVzc1dvcmtlcj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3IGQoIkRlZmxhdGUi
LGEpfSxjLnVuY29tcHJlc3NXb3JrZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQoIkluZmxhdGUi
LHt9KX19LHsiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4vdXRpbHMiOjMyLHBha286NTl9
XSw4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiLGMsZCl7Zi5j
YWxsKHRoaXMsIlppcEZpbGVXb3JrZXIiKSx0aGlzLmJ5dGVzV3JpdHRlbj0wLHRoaXMuemlwQ29t
bWVudD1iLHRoaXMuemlwUGxhdGZvcm09Yyx0aGlzLmVuY29kZUZpbGVOYW1lPWQsdGhpcy5zdHJl
YW1GaWxlcz1hLHRoaXMuYWNjdW11bGF0ZT0hMSx0aGlzLmNvbnRlbnRCdWZmZXI9W10sdGhpcy5k
aXJSZWNvcmRzPVtdLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldD0wLHRoaXMuZW50cmllc0NvdW50
PTAsdGhpcy5jdXJyZW50RmlsZT1udWxsLHRoaXMuX3NvdXJjZXM9W119dmFyIGU9YSgiLi4vdXRp
bHMiKSxmPWEoIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyIiksZz1hKCIuLi91dGY4IiksaD1hKCIu
Li9jcmMzMiIpLGk9YSgiLi4vc2lnbmF0dXJlIiksaj1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9IiI7
Zm9yKGM9MDtjPGI7YysrKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpLGE+Pj49ODtyZXR1
cm4gZH0saz1mdW5jdGlvbihhLGIpe3ZhciBjPWE7cmV0dXJuIGF8fChjPWI/MTY4OTM6MzMyMDQp
LCg2NTUzNSZjKTw8MTZ9LGw9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gNjMmKGF8fDApfSxtPWZ1bmN0
aW9uKGEsYixjLGQsZixtKXt2YXIgbixvLHA9YS5maWxlLHE9YS5jb21wcmVzc2lvbixyPW0hPT1n
LnV0ZjhlbmNvZGUscz1lLnRyYW5zZm9ybVRvKCJzdHJpbmciLG0ocC5uYW1lKSksdD1lLnRyYW5z
Zm9ybVRvKCJzdHJpbmciLGcudXRmOGVuY29kZShwLm5hbWUpKSx1PXAuY29tbWVudCx2PWUudHJh
bnNmb3JtVG8oInN0cmluZyIsbSh1KSksdz1lLnRyYW5zZm9ybVRvKCJzdHJpbmciLGcudXRmOGVu
Y29kZSh1KSkseD10Lmxlbmd0aCE9PXAubmFtZS5sZW5ndGgseT13Lmxlbmd0aCE9PXUubGVuZ3Ro
LHo9IiIsQT0iIixCPSIiLEM9cC5kaXIsRD1wLmRhdGUsRT17Y3JjMzI6MCxjb21wcmVzc2VkU2l6
ZTowLHVuY29tcHJlc3NlZFNpemU6MH07YiYmIWN8fChFLmNyYzMyPWEuY3JjMzIsRS5jb21wcmVz
c2VkU2l6ZT1hLmNvbXByZXNzZWRTaXplLEUudW5jb21wcmVzc2VkU2l6ZT1hLnVuY29tcHJlc3Nl
ZFNpemUpO3ZhciBGPTA7YiYmKEZ8PTgpLHJ8fCF4JiYheXx8KEZ8PTIwNDgpO3ZhciBHPTAsSD0w
O0MmJihHfD0xNiksIlVOSVgiPT09Zj8oSD03OTgsR3w9ayhwLnVuaXhQZXJtaXNzaW9ucyxDKSk6
KEg9MjAsR3w9bChwLmRvc1Blcm1pc3Npb25zLEMpKSxuPUQuZ2V0VVRDSG91cnMoKSxuPDw9Nixu
fD1ELmdldFVUQ01pbnV0ZXMoKSxuPDw9NSxufD1ELmdldFVUQ1NlY29uZHMoKS8yLG89RC5nZXRV
VENGdWxsWWVhcigpLTE5ODAsbzw8PTQsb3w9RC5nZXRVVENNb250aCgpKzEsbzw8PTUsb3w9RC5n
ZXRVVENEYXRlKCkseCYmKEE9aigxLDEpK2ooaChzKSw0KSt0LHorPSJ1cCIraihBLmxlbmd0aCwy
KStBKSx5JiYoQj1qKDEsMSkraihoKHYpLDQpK3cseis9InVjIitqKEIubGVuZ3RoLDIpK0IpO3Zh
ciBJPSIiO0krPSJcblwwIixJKz1qKEYsMiksSSs9cS5tYWdpYyxJKz1qKG4sMiksSSs9aihvLDIp
LEkrPWooRS5jcmMzMiw0KSxJKz1qKEUuY29tcHJlc3NlZFNpemUsNCksSSs9aihFLnVuY29tcHJl
c3NlZFNpemUsNCksSSs9aihzLmxlbmd0aCwyKSxJKz1qKHoubGVuZ3RoLDIpO3ZhciBKPWkuTE9D
QUxfRklMRV9IRUFERVIrSStzK3osSz1pLkNFTlRSQUxfRklMRV9IRUFERVIraihILDIpK0kraih2
Lmxlbmd0aCwyKSsiXDBcMFwwXDAiK2ooRyw0KStqKGQsNCkrcyt6K3Y7cmV0dXJue2ZpbGVSZWNv
cmQ6SixkaXJSZWNvcmQ6S319LG49ZnVuY3Rpb24oYSxiLGMsZCxmKXt2YXIgZz0iIixoPWUudHJh
bnNmb3JtVG8oInN0cmluZyIsZihkKSk7cmV0dXJuIGc9aS5DRU5UUkFMX0RJUkVDVE9SWV9FTkQr
IlwwXDBcMFwwIitqKGEsMikraihhLDIpK2ooYiw0KStqKGMsNCkraihoLmxlbmd0aCwyKStofSxv
PWZ1bmN0aW9uKGEpe3ZhciBiPSIiO3JldHVybiBiPWkuREFUQV9ERVNDUklQVE9SK2ooYS5jcmMz
Miw0KStqKGEuY29tcHJlc3NlZFNpemUsNCkraihhLnVuY29tcHJlc3NlZFNpemUsNCl9O2UuaW5o
ZXJpdHMoZCxmKSxkLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEpe3ZhciBiPWEubWV0YS5wZXJj
ZW50fHwwLGM9dGhpcy5lbnRyaWVzQ291bnQsZD10aGlzLl9zb3VyY2VzLmxlbmd0aDt0aGlzLmFj
Y3VtdWxhdGU/dGhpcy5jb250ZW50QnVmZmVyLnB1c2goYSk6KHRoaXMuYnl0ZXNXcml0dGVuKz1h
LmRhdGEubGVuZ3RoLGYucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHtkYXRhOmEuZGF0YSxtZXRh
OntjdXJyZW50RmlsZTp0aGlzLmN1cnJlbnRGaWxlLHBlcmNlbnQ6Yz8oYisxMDAqKGMtZC0xKSkv
YzoxMDB9fSkpfSxkLnByb3RvdHlwZS5vcGVuZWRTb3VyY2U9ZnVuY3Rpb24oYSl7dGhpcy5jdXJy
ZW50U291cmNlT2Zmc2V0PXRoaXMuYnl0ZXNXcml0dGVuLHRoaXMuY3VycmVudEZpbGU9YS5maWxl
Lm5hbWU7dmFyIGI9dGhpcy5zdHJlYW1GaWxlcyYmIWEuZmlsZS5kaXI7aWYoYil7dmFyIGM9bShh
LGIsITEsdGhpcy5jdXJyZW50U291cmNlT2Zmc2V0LHRoaXMuemlwUGxhdGZvcm0sdGhpcy5lbmNv
ZGVGaWxlTmFtZSk7dGhpcy5wdXNoKHtkYXRhOmMuZmlsZVJlY29yZCxtZXRhOntwZXJjZW50OjB9
fSl9ZWxzZSB0aGlzLmFjY3VtdWxhdGU9ITB9LGQucHJvdG90eXBlLmNsb3NlZFNvdXJjZT1mdW5j
dGlvbihhKXt0aGlzLmFjY3VtdWxhdGU9ITE7dmFyIGI9dGhpcy5zdHJlYW1GaWxlcyYmIWEuZmls
ZS5kaXIsYz1tKGEsYiwhMCx0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQsdGhpcy56aXBQbGF0Zm9y
bSx0aGlzLmVuY29kZUZpbGVOYW1lKTtpZih0aGlzLmRpclJlY29yZHMucHVzaChjLmRpclJlY29y
ZCksYil0aGlzLnB1c2goe2RhdGE6byhhKSxtZXRhOntwZXJjZW50OjEwMH19KTtlbHNlIGZvcih0
aGlzLnB1c2goe2RhdGE6Yy5maWxlUmVjb3JkLG1ldGE6e3BlcmNlbnQ6MH19KTt0aGlzLmNvbnRl
bnRCdWZmZXIubGVuZ3RoOyl0aGlzLnB1c2godGhpcy5jb250ZW50QnVmZmVyLnNoaWZ0KCkpO3Ro
aXMuY3VycmVudEZpbGU9bnVsbH0sZC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFy
IGE9dGhpcy5ieXRlc1dyaXR0ZW4sYj0wO2I8dGhpcy5kaXJSZWNvcmRzLmxlbmd0aDtiKyspdGhp
cy5wdXNoKHtkYXRhOnRoaXMuZGlyUmVjb3Jkc1tiXSxtZXRhOntwZXJjZW50OjEwMH19KTt2YXIg
Yz10aGlzLmJ5dGVzV3JpdHRlbi1hLGQ9bih0aGlzLmRpclJlY29yZHMubGVuZ3RoLGMsYSx0aGlz
LnppcENvbW1lbnQsdGhpcy5lbmNvZGVGaWxlTmFtZSk7dGhpcy5wdXNoKHtkYXRhOmQsbWV0YTp7
cGVyY2VudDoxMDB9fSl9LGQucHJvdG90eXBlLnByZXBhcmVOZXh0U291cmNlPWZ1bmN0aW9uKCl7
dGhpcy5wcmV2aW91cz10aGlzLl9zb3VyY2VzLnNoaWZ0KCksdGhpcy5vcGVuZWRTb3VyY2UodGhp
cy5wcmV2aW91cy5zdHJlYW1JbmZvKSx0aGlzLmlzUGF1c2VkP3RoaXMucHJldmlvdXMucGF1c2Uo
KTp0aGlzLnByZXZpb3VzLnJlc3VtZSgpfSxkLnByb3RvdHlwZS5yZWdpc3RlclByZXZpb3VzPWZ1
bmN0aW9uKGEpe3RoaXMuX3NvdXJjZXMucHVzaChhKTt2YXIgYj10aGlzO3JldHVybiBhLm9uKCJk
YXRhIixmdW5jdGlvbihhKXtiLnByb2Nlc3NDaHVuayhhKX0pLGEub24oImVuZCIsZnVuY3Rpb24o
KXtiLmNsb3NlZFNvdXJjZShiLnByZXZpb3VzLnN0cmVhbUluZm8pLGIuX3NvdXJjZXMubGVuZ3Ro
P2IucHJlcGFyZU5leHRTb3VyY2UoKTpiLmVuZCgpfSksYS5vbigiZXJyb3IiLGZ1bmN0aW9uKGEp
e2IuZXJyb3IoYSl9KSx0aGlzfSxkLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4h
IWYucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYoIXRoaXMucHJldmlvdXMmJnRoaXMuX3Nv
dXJjZXMubGVuZ3RoPyh0aGlzLnByZXBhcmVOZXh0U291cmNlKCksITApOnRoaXMucHJldmlvdXN8
fHRoaXMuX3NvdXJjZXMubGVuZ3RofHx0aGlzLmdlbmVyYXRlZEVycm9yP3ZvaWQgMDoodGhpcy5l
bmQoKSwhMCkpfSxkLnByb3RvdHlwZS5lcnJvcj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLl9zb3Vy
Y2VzO2lmKCFmLnByb3RvdHlwZS5lcnJvci5jYWxsKHRoaXMsYSkpcmV0dXJuITE7Zm9yKHZhciBj
PTA7YzxiLmxlbmd0aDtjKyspdHJ5e2JbY10uZXJyb3IoYSl9Y2F0Y2goYSl7fXJldHVybiEwfSxk
LnByb3RvdHlwZS5sb2NrPWZ1bmN0aW9uKCl7Zi5wcm90b3R5cGUubG9jay5jYWxsKHRoaXMpO2Zv
cih2YXIgYT10aGlzLl9zb3VyY2VzLGI9MDtiPGEubGVuZ3RoO2IrKylhW2JdLmxvY2soKX0sYi5l
eHBvcnRzPWR9LHsiLi4vY3JjMzIiOjQsIi4uL3NpZ25hdHVyZSI6MjMsIi4uL3N0cmVhbS9HZW5l
cmljV29ya2VyIjoyOCwiLi4vdXRmOCI6MzEsIi4uL3V0aWxzIjozMn1dLDk6W2Z1bmN0aW9uKGEs
YixjKXsidXNlIHN0cmljdCI7dmFyIGQ9YSgiLi4vY29tcHJlc3Npb25zIiksZT1hKCIuL1ppcEZp
bGVXb3JrZXIiKSxmPWZ1bmN0aW9uKGEsYil7dmFyIGM9YXx8YixlPWRbY107aWYoIWUpdGhyb3cg
bmV3IEVycm9yKGMrIiBpcyBub3QgYSB2YWxpZCBjb21wcmVzc2lvbiBtZXRob2QgISIpO3JldHVy
biBlfTtjLmdlbmVyYXRlV29ya2VyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1uZXcgZShiLnN0cmVh
bUZpbGVzLGMsYi5wbGF0Zm9ybSxiLmVuY29kZUZpbGVOYW1lKSxnPTA7dHJ5e2EuZm9yRWFjaChm
dW5jdGlvbihhLGMpe2crKzt2YXIgZT1mKGMub3B0aW9ucy5jb21wcmVzc2lvbixiLmNvbXByZXNz
aW9uKSxoPWMub3B0aW9ucy5jb21wcmVzc2lvbk9wdGlvbnN8fGIuY29tcHJlc3Npb25PcHRpb25z
fHx7fSxpPWMuZGlyLGo9Yy5kYXRlO2MuX2NvbXByZXNzV29ya2VyKGUsaCkud2l0aFN0cmVhbUlu
Zm8oImZpbGUiLHtuYW1lOmEsZGlyOmksZGF0ZTpqLGNvbW1lbnQ6Yy5jb21tZW50fHwiIix1bml4
UGVybWlzc2lvbnM6Yy51bml4UGVybWlzc2lvbnMsZG9zUGVybWlzc2lvbnM6Yy5kb3NQZXJtaXNz
aW9uc30pLnBpcGUoZCl9KSxkLmVudHJpZXNDb3VudD1nfWNhdGNoKGgpe2QuZXJyb3IoaCl9cmV0
dXJuIGR9fSx7Ii4uL2NvbXByZXNzaW9ucyI6MywiLi9aaXBGaWxlV29ya2VyIjo4fV0sMTA6W2Z1
bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZCgpe2lmKCEodGhpcyBpbnN0YW5j
ZW9mIGQpKXJldHVybiBuZXcgZDtpZihhcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigi
VGhlIGNvbnN0cnVjdG9yIHdpdGggcGFyYW1ldGVycyBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlw
IDMuMCwgcGxlYXNlIGNoZWNrIHRoZSB1cGdyYWRlIGd1aWRlLiIpO3RoaXMuZmlsZXM9e30sdGhp
cy5jb21tZW50PW51bGwsdGhpcy5yb290PSIiLHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1u
ZXcgZDtmb3IodmFyIGIgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tiXSYmKGFbYl09
dGhpc1tiXSk7cmV0dXJuIGF9fWQucHJvdG90eXBlPWEoIi4vb2JqZWN0IiksZC5wcm90b3R5cGUu
bG9hZEFzeW5jPWEoIi4vbG9hZCIpLGQuc3VwcG9ydD1hKCIuL3N1cHBvcnQiKSxkLmRlZmF1bHRz
PWEoIi4vZGVmYXVsdHMiKSxkLnZlcnNpb249IjMuMS41IixkLmxvYWRBc3luYz1mdW5jdGlvbihh
LGIpe3JldHVybihuZXcgZCkubG9hZEFzeW5jKGEsYil9LGQuZXh0ZXJuYWw9YSgiLi9leHRlcm5h
bCIpLGIuZXhwb3J0cz1kfSx7Ii4vZGVmYXVsdHMiOjUsIi4vZXh0ZXJuYWwiOjYsIi4vbG9hZCI6
MTEsIi4vb2JqZWN0IjoxNSwiLi9zdXBwb3J0IjozMH1dLDExOltmdW5jdGlvbihhLGIsYyl7InVz
ZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuIG5ldyBmLlByb21pc2UoZnVuY3Rpb24oYixj
KXt2YXIgZD1hLmRlY29tcHJlc3NlZC5nZXRDb250ZW50V29ya2VyKCkucGlwZShuZXcgaSk7ZC5v
bigiZXJyb3IiLGZ1bmN0aW9uKGEpe2MoYSl9KS5vbigiZW5kIixmdW5jdGlvbigpe2Quc3RyZWFt
SW5mby5jcmMzMiE9PWEuZGVjb21wcmVzc2VkLmNyYzMyP2MobmV3IEVycm9yKCJDb3JydXB0ZWQg
emlwIDogQ1JDMzIgbWlzbWF0Y2giKSk6YigpfSkucmVzdW1lKCl9KX12YXIgZT1hKCIuL3V0aWxz
IiksZj1hKCIuL2V4dGVybmFsIiksZz1hKCIuL3V0ZjgiKSxlPWEoIi4vdXRpbHMiKSxoPWEoIi4v
emlwRW50cmllcyIpLGk9YSgiLi9zdHJlYW0vQ3JjMzJQcm9iZSIpLGo9YSgiLi9ub2RlanNVdGls
cyIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7cmV0dXJuIGI9ZS5leHRlbmQo
Ynx8e30se2Jhc2U2NDohMSxjaGVja0NSQzMyOiExLG9wdGltaXplZEJpbmFyeVN0cmluZzohMSxj
cmVhdGVGb2xkZXJzOiExLGRlY29kZUZpbGVOYW1lOmcudXRmOGRlY29kZX0pLGouaXNOb2RlJiZq
LmlzU3RyZWFtKGEpP2YuUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJKU1ppcCBjYW4ndCBhY2Nl
cHQgYSBzdHJlYW0gd2hlbiBsb2FkaW5nIGEgemlwIGZpbGUuIikpOmUucHJlcGFyZUNvbnRlbnQo
InRoZSBsb2FkZWQgemlwIGZpbGUiLGEsITAsYi5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcsYi5iYXNl
NjQpLnRoZW4oZnVuY3Rpb24oYSl7dmFyIGM9bmV3IGgoYik7cmV0dXJuIGMubG9hZChhKSxjfSku
dGhlbihmdW5jdGlvbihhKXt2YXIgYz1bZi5Qcm9taXNlLnJlc29sdmUoYSldLGU9YS5maWxlcztp
ZihiLmNoZWNrQ1JDMzIpZm9yKHZhciBnPTA7ZzxlLmxlbmd0aDtnKyspYy5wdXNoKGQoZVtnXSkp
O3JldHVybiBmLlByb21pc2UuYWxsKGMpfSkudGhlbihmdW5jdGlvbihhKXtmb3IodmFyIGQ9YS5z
aGlmdCgpLGU9ZC5maWxlcyxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBnPWVbZl07Yy5maWxlKGcu
ZmlsZU5hbWVTdHIsZy5kZWNvbXByZXNzZWQse2JpbmFyeTohMCxvcHRpbWl6ZWRCaW5hcnlTdHJp
bmc6ITAsZGF0ZTpnLmRhdGUsZGlyOmcuZGlyLGNvbW1lbnQ6Zy5maWxlQ29tbWVudFN0ci5sZW5n
dGg/Zy5maWxlQ29tbWVudFN0cjpudWxsLHVuaXhQZXJtaXNzaW9uczpnLnVuaXhQZXJtaXNzaW9u
cyxkb3NQZXJtaXNzaW9uczpnLmRvc1Blcm1pc3Npb25zLGNyZWF0ZUZvbGRlcnM6Yi5jcmVhdGVG
b2xkZXJzfSl9cmV0dXJuIGQuemlwQ29tbWVudC5sZW5ndGgmJihjLmNvbW1lbnQ9ZC56aXBDb21t
ZW50KSxjfSl9fSx7Ii4vZXh0ZXJuYWwiOjYsIi4vbm9kZWpzVXRpbHMiOjE0LCIuL3N0cmVhbS9D
cmMzMlByb2JlIjoyNSwiLi91dGY4IjozMSwiLi91dGlscyI6MzIsIi4vemlwRW50cmllcyI6MzN9
XSwxMjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7Zi5jYWxs
KHRoaXMsIk5vZGVqcyBzdHJlYW0gaW5wdXQgYWRhcHRlciBmb3IgIithKSx0aGlzLl91cHN0cmVh
bUVuZGVkPSExLHRoaXMuX2JpbmRTdHJlYW0oYil9dmFyIGU9YSgiLi4vdXRpbHMiKSxmPWEoIi4u
L3N0cmVhbS9HZW5lcmljV29ya2VyIik7ZS5pbmhlcml0cyhkLGYpLGQucHJvdG90eXBlLl9iaW5k
U3RyZWFtPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7dGhpcy5fc3RyZWFtPWEsYS5wYXVzZSgpLGEu
b24oImRhdGEiLGZ1bmN0aW9uKGEpe2IucHVzaCh7ZGF0YTphLG1ldGE6e3BlcmNlbnQ6MH19KX0p
Lm9uKCJlcnJvciIsZnVuY3Rpb24oYSl7Yi5pc1BhdXNlZD90aGlzLmdlbmVyYXRlZEVycm9yPWE6
Yi5lcnJvcihhKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7Yi5pc1BhdXNlZD9iLl91cHN0cmVhbUVu
ZGVkPSEwOmIuZW5kKCl9KX0sZC5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4hIWYu
cHJvdG90eXBlLnBhdXNlLmNhbGwodGhpcykmJih0aGlzLl9zdHJlYW0ucGF1c2UoKSwhMCl9LGQu
cHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3JldHVybiEhZi5wcm90b3R5cGUucmVzdW1lLmNh
bGwodGhpcykmJih0aGlzLl91cHN0cmVhbUVuZGVkP3RoaXMuZW5kKCk6dGhpcy5fc3RyZWFtLnJl
c3VtZSgpLCEwKX0sYi5leHBvcnRzPWR9LHsiLi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiOjI4LCIu
Li91dGlscyI6MzJ9XSwxMzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBk
KGEsYixjKXtlLmNhbGwodGhpcyxiKSx0aGlzLl9oZWxwZXI9YTt2YXIgZD10aGlzO2Eub24oImRh
dGEiLGZ1bmN0aW9uKGEsYil7ZC5wdXNoKGEpfHxkLl9oZWxwZXIucGF1c2UoKSxjJiZjKGIpfSku
b24oImVycm9yIixmdW5jdGlvbihhKXtkLmVtaXQoImVycm9yIixhKX0pLm9uKCJlbmQiLGZ1bmN0
aW9uKCl7ZC5wdXNoKG51bGwpfSl9dmFyIGU9YSgicmVhZGFibGUtc3RyZWFtIikuUmVhZGFibGUs
Zj1hKCIuLi91dGlscyIpO2YuaW5oZXJpdHMoZCxlKSxkLnByb3RvdHlwZS5fcmVhZD1mdW5jdGlv
bigpe3RoaXMuX2hlbHBlci5yZXN1bWUoKX0sYi5leHBvcnRzPWR9LHsiLi4vdXRpbHMiOjMyLCJy
ZWFkYWJsZS1zdHJlYW0iOjE2fV0sMTQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Yi5l
eHBvcnRzPXtpc05vZGU6InVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXIsbmV3QnVmZmVyRnJvbTpm
dW5jdGlvbihhLGIpe3JldHVybiBuZXcgQnVmZmVyKGEsYil9LGFsbG9jQnVmZmVyOmZ1bmN0aW9u
KGEpe3JldHVybiBCdWZmZXIuYWxsb2M/QnVmZmVyLmFsbG9jKGEpOm5ldyBCdWZmZXIoYSl9LGlz
QnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoYSl9LGlzU3RyZWFtOmZ1
bmN0aW9uKGEpe3JldHVybiBhJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5vbiYmImZ1bmN0aW9uIj09
dHlwZW9mIGEucGF1c2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnJlc3VtZX19fSx7fV0sMTU6W2Z1
bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtyZXR1cm4iW29iamVjdCBS
ZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX12YXIgZT1hKCIuL3V0
ZjgiKSxmPWEoIi4vdXRpbHMiKSxnPWEoIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKSxoPWEoIi4v
c3RyZWFtL1N0cmVhbUhlbHBlciIpLGk9YSgiLi9kZWZhdWx0cyIpLGo9YSgiLi9jb21wcmVzc2Vk
T2JqZWN0Iiksaz1hKCIuL3ppcE9iamVjdCIpLGw9YSgiLi9nZW5lcmF0ZSIpLG09YSgiLi9ub2Rl
anNVdGlscyIpLG49YSgiLi9ub2RlanMvTm9kZWpzU3RyZWFtSW5wdXRBZGFwdGVyIiksbz1mdW5j
dGlvbihhLGIsYyl7dmFyIGQsZT1mLmdldFR5cGVPZihiKSxoPWYuZXh0ZW5kKGN8fHt9LGkpO2gu
ZGF0ZT1oLmRhdGV8fG5ldyBEYXRlLG51bGwhPT1oLmNvbXByZXNzaW9uJiYoaC5jb21wcmVzc2lv
bj1oLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLCJzdHJpbmciPT10eXBlb2YgaC51bml4UGVy
bWlzc2lvbnMmJihoLnVuaXhQZXJtaXNzaW9ucz1wYXJzZUludChoLnVuaXhQZXJtaXNzaW9ucyw4
KSksaC51bml4UGVybWlzc2lvbnMmJjE2Mzg0JmgudW5peFBlcm1pc3Npb25zJiYoaC5kaXI9ITAp
LGguZG9zUGVybWlzc2lvbnMmJjE2JmguZG9zUGVybWlzc2lvbnMmJihoLmRpcj0hMCksaC5kaXIm
JihhPXEoYSkpLGguY3JlYXRlRm9sZGVycyYmKGQ9cChhKSkmJnIuY2FsbCh0aGlzLGQsITApO3Zh
ciBsPSJzdHJpbmciPT09ZSYmaC5iaW5hcnk9PT0hMSYmaC5iYXNlNjQ9PT0hMTtjJiYidW5kZWZp
bmVkIiE9dHlwZW9mIGMuYmluYXJ5fHwoaC5iaW5hcnk9IWwpO3ZhciBvPWIgaW5zdGFuY2VvZiBq
JiYwPT09Yi51bmNvbXByZXNzZWRTaXplOyhvfHxoLmRpcnx8IWJ8fDA9PT1iLmxlbmd0aCkmJiho
LmJhc2U2ND0hMSxoLmJpbmFyeT0hMCxiPSIiLGguY29tcHJlc3Npb249IlNUT1JFIixlPSJzdHJp
bmciKTt2YXIgcz1udWxsO3M9YiBpbnN0YW5jZW9mIGp8fGIgaW5zdGFuY2VvZiBnP2I6bS5pc05v
ZGUmJm0uaXNTdHJlYW0oYik/bmV3IG4oYSxiKTpmLnByZXBhcmVDb250ZW50KGEsYixoLmJpbmFy
eSxoLm9wdGltaXplZEJpbmFyeVN0cmluZyxoLmJhc2U2NCk7dmFyIHQ9bmV3IGsoYSxzLGgpO3Ro
aXMuZmlsZXNbYV09dH0scD1mdW5jdGlvbihhKXsiLyI9PT1hLnNsaWNlKC0xKSYmKGE9YS5zdWJz
dHJpbmcoMCxhLmxlbmd0aC0xKSk7dmFyIGI9YS5sYXN0SW5kZXhPZigiLyIpO3JldHVybiBiPjA/
YS5zdWJzdHJpbmcoMCxiKToiIn0scT1mdW5jdGlvbihhKXtyZXR1cm4iLyIhPT1hLnNsaWNlKC0x
KSYmKGErPSIvIiksYX0scj1mdW5jdGlvbihhLGIpe3JldHVybiBiPSJ1bmRlZmluZWQiIT10eXBl
b2YgYj9iOmkuY3JlYXRlRm9sZGVycyxhPXEoYSksdGhpcy5maWxlc1thXXx8by5jYWxsKHRoaXMs
YSxudWxsLHtkaXI6ITAsY3JlYXRlRm9sZGVyczpifSksdGhpcy5maWxlc1thXX0scz17bG9hZDpm
dW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiVGhpcyBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZCBp
biBKU1ppcCAzLjAsIHBsZWFzZSBjaGVjayB0aGUgdXBncmFkZSBndWlkZS4iKX0sZm9yRWFjaDpm
dW5jdGlvbihhKXt2YXIgYixjLGQ7Zm9yKGIgaW4gdGhpcy5maWxlcyl0aGlzLmZpbGVzLmhhc093
blByb3BlcnR5KGIpJiYoZD10aGlzLmZpbGVzW2JdLGM9Yi5zbGljZSh0aGlzLnJvb3QubGVuZ3Ro
LGIubGVuZ3RoKSxjJiZiLnNsaWNlKDAsdGhpcy5yb290Lmxlbmd0aCk9PT10aGlzLnJvb3QmJmEo
YyxkKSl9LGZpbHRlcjpmdW5jdGlvbihhKXt2YXIgYj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1
bmN0aW9uKGMsZCl7YShjLGQpJiZiLnB1c2goZCl9KSxifSxmaWxlOmZ1bmN0aW9uKGEsYixjKXtp
ZigxPT09YXJndW1lbnRzLmxlbmd0aCl7aWYoZChhKSl7dmFyIGU9YTtyZXR1cm4gdGhpcy5maWx0
ZXIoZnVuY3Rpb24oYSxiKXtyZXR1cm4hYi5kaXImJmUudGVzdChhKX0pfXZhciBmPXRoaXMuZmls
ZXNbdGhpcy5yb290K2FdO3JldHVybiBmJiYhZi5kaXI/ZjpudWxsfXJldHVybiBhPXRoaXMucm9v
dCthLG8uY2FsbCh0aGlzLGEsYixjKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0
dXJuIHRoaXM7aWYoZChhKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4g
Yy5kaXImJmEudGVzdChiKX0pO3ZhciBiPXRoaXMucm9vdCthLGM9ci5jYWxsKHRoaXMsYiksZT10
aGlzLmNsb25lKCk7cmV0dXJuIGUucm9vdD1jLm5hbWUsZX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2E9
dGhpcy5yb290K2E7dmFyIGI9dGhpcy5maWxlc1thXTtpZihifHwoIi8iIT09YS5zbGljZSgtMSkm
JihhKz0iLyIpLGI9dGhpcy5maWxlc1thXSksYiYmIWIuZGlyKWRlbGV0ZSB0aGlzLmZpbGVzW2Fd
O2Vsc2UgZm9yKHZhciBjPXRoaXMuZmlsdGVyKGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGMubmFtZS5z
bGljZSgwLGEubGVuZ3RoKT09PWF9KSxkPTA7ZDxjLmxlbmd0aDtkKyspZGVsZXRlIHRoaXMuZmls
ZXNbY1tkXS5uYW1lXTtyZXR1cm4gdGhpc30sZ2VuZXJhdGU6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3
IEVycm9yKCJUaGlzIG1ldGhvZCBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlwIDMuMCwgcGxlYXNl
IGNoZWNrIHRoZSB1cGdyYWRlIGd1aWRlLiIpfSxnZW5lcmF0ZUludGVybmFsU3RyZWFtOmZ1bmN0
aW9uKGEpe3ZhciBiLGM9e307dHJ5e2lmKGM9Zi5leHRlbmQoYXx8e30se3N0cmVhbUZpbGVzOiEx
LGNvbXByZXNzaW9uOiJTVE9SRSIsY29tcHJlc3Npb25PcHRpb25zOm51bGwsdHlwZToiIixwbGF0
Zm9ybToiRE9TIixjb21tZW50Om51bGwsbWltZVR5cGU6ImFwcGxpY2F0aW9uL3ppcCIsZW5jb2Rl
RmlsZU5hbWU6ZS51dGY4ZW5jb2RlfSksYy50eXBlPWMudHlwZS50b0xvd2VyQ2FzZSgpLGMuY29t
cHJlc3Npb249Yy5jb21wcmVzc2lvbi50b1VwcGVyQ2FzZSgpLCJiaW5hcnlzdHJpbmciPT09Yy50
eXBlJiYoYy50eXBlPSJzdHJpbmciKSwhYy50eXBlKXRocm93IG5ldyBFcnJvcigiTm8gb3V0cHV0
IHR5cGUgc3BlY2lmaWVkLiIpO2YuY2hlY2tTdXBwb3J0KGMudHlwZSksImRhcndpbiIhPT1jLnBs
YXRmb3JtJiYiZnJlZWJzZCIhPT1jLnBsYXRmb3JtJiYibGludXgiIT09Yy5wbGF0Zm9ybSYmInN1
bm9zIiE9PWMucGxhdGZvcm18fChjLnBsYXRmb3JtPSJVTklYIiksIndpbjMyIj09PWMucGxhdGZv
cm0mJihjLnBsYXRmb3JtPSJET1MiKTt2YXIgZD1jLmNvbW1lbnR8fHRoaXMuY29tbWVudHx8IiI7
Yj1sLmdlbmVyYXRlV29ya2VyKHRoaXMsYyxkKX1jYXRjaChpKXtiPW5ldyBnKCJlcnJvciIpLGIu
ZXJyb3IoaSl9cmV0dXJuIG5ldyBoKGIsYy50eXBlfHwic3RyaW5nIixjLm1pbWVUeXBlKX0sZ2Vu
ZXJhdGVBc3luYzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmdlbmVyYXRlSW50ZXJuYWxTdHJl
YW0oYSkuYWNjdW11bGF0ZShiKX0sZ2VuZXJhdGVOb2RlU3RyZWFtOmZ1bmN0aW9uKGEsYil7cmV0
dXJuIGE9YXx8e30sYS50eXBlfHwoYS50eXBlPSJub2RlYnVmZmVyIiksdGhpcy5nZW5lcmF0ZUlu
dGVybmFsU3RyZWFtKGEpLnRvTm9kZWpzU3RyZWFtKGIpfX07Yi5leHBvcnRzPXN9LHsiLi9jb21w
cmVzc2VkT2JqZWN0IjoyLCIuL2RlZmF1bHRzIjo1LCIuL2dlbmVyYXRlIjo5LCIuL25vZGVqcy9O
b2RlanNTdHJlYW1JbnB1dEFkYXB0ZXIiOjEyLCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0v
R2VuZXJpY1dvcmtlciI6MjgsIi4vc3RyZWFtL1N0cmVhbUhlbHBlciI6MjksIi4vdXRmOCI6MzEs
Ii4vdXRpbHMiOjMyLCIuL3ppcE9iamVjdCI6MzV9XSwxNjpbZnVuY3Rpb24oYSxiLGMpe2IuZXhw
b3J0cz1hKCJzdHJlYW0iKX0se3N0cmVhbTp2b2lkIDB9XSwxNzpbZnVuY3Rpb24oYSxiLGMpeyJ1
c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe2UuY2FsbCh0aGlzLGEpO2Zvcih2YXIgYj0wO2I8dGhp
cy5kYXRhLmxlbmd0aDtiKyspYVtiXT0yNTUmYVtiXX12YXIgZT1hKCIuL0RhdGFSZWFkZXIiKSxm
PWEoIi4uL3V0aWxzIik7Zi5pbmhlcml0cyhkLGUpLGQucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlv
bihhKXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMuemVybythXX0sZC5wcm90b3R5cGUubGFzdEluZGV4
T2ZTaWduYXR1cmU9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPWEuY2hhckNvZGVBdCgwKSxjPWEuY2hh
ckNvZGVBdCgxKSxkPWEuY2hhckNvZGVBdCgyKSxlPWEuY2hhckNvZGVBdCgzKSxmPXRoaXMubGVu
Z3RoLTQ7Zj49MDstLWYpaWYodGhpcy5kYXRhW2ZdPT09YiYmdGhpcy5kYXRhW2YrMV09PT1jJiZ0
aGlzLmRhdGFbZisyXT09PWQmJnRoaXMuZGF0YVtmKzNdPT09ZSlyZXR1cm4gZi10aGlzLnplcm87
cmV0dXJuLTF9LGQucHJvdG90eXBlLnJlYWRBbmRDaGVja1NpZ25hdHVyZT1mdW5jdGlvbihhKXt2
YXIgYj1hLmNoYXJDb2RlQXQoMCksYz1hLmNoYXJDb2RlQXQoMSksZD1hLmNoYXJDb2RlQXQoMiks
ZT1hLmNoYXJDb2RlQXQoMyksZj10aGlzLnJlYWREYXRhKDQpO3JldHVybiBiPT09ZlswXSYmYz09
PWZbMV0mJmQ9PT1mWzJdJiZlPT09ZlszXX0sZC5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24o
YSl7aWYodGhpcy5jaGVja09mZnNldChhKSwwPT09YSlyZXR1cm5bXTt2YXIgYj10aGlzLmRhdGEu
c2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrYSk7cmV0dXJu
IHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWR9LHsiLi4vdXRpbHMiOjMyLCIuL0RhdGFSZWFk
ZXIiOjE4fV0sMTg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXt0
aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD1hLmxlbmd0aCx0aGlzLmluZGV4PTAsdGhpcy56ZXJvPTB9
dmFyIGU9YSgiLi4vdXRpbHMiKTtkLnByb3RvdHlwZT17Y2hlY2tPZmZzZXQ6ZnVuY3Rpb24oYSl7
dGhpcy5jaGVja0luZGV4KHRoaXMuaW5kZXgrYSl9LGNoZWNrSW5kZXg6ZnVuY3Rpb24oYSl7aWYo
dGhpcy5sZW5ndGg8dGhpcy56ZXJvK2F8fGE8MCl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRh
IHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIr
YSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJ
bmRleChhKSx0aGlzLmluZGV4PWF9LHNraXA6ZnVuY3Rpb24oYSl7dGhpcy5zZXRJbmRleCh0aGlz
LmluZGV4K2EpfSxieXRlQXQ6ZnVuY3Rpb24oYSl7fSxyZWFkSW50OmZ1bmN0aW9uKGEpe3ZhciBi
LGM9MDtmb3IodGhpcy5jaGVja09mZnNldChhKSxiPXRoaXMuaW5kZXgrYS0xO2I+PXRoaXMuaW5k
ZXg7Yi0tKWM9KGM8PDgpK3RoaXMuYnl0ZUF0KGIpO3JldHVybiB0aGlzLmluZGV4Kz1hLGN9LHJl
YWRTdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIGUudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5y
ZWFkRGF0YShhKSl9LHJlYWREYXRhOmZ1bmN0aW9uKGEpe30sbGFzdEluZGV4T2ZTaWduYXR1cmU6
ZnVuY3Rpb24oYSl7fSxyZWFkQW5kQ2hlY2tTaWduYXR1cmU6ZnVuY3Rpb24oYSl7fSxyZWFkRGF0
ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoRGF0ZS5V
VEMoKGE+PjI1JjEyNykrMTk4MCwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2
MywoMzEmYSk8PDEpKX19LGIuZXhwb3J0cz1kfSx7Ii4uL3V0aWxzIjozMn1dLDE5OltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7ZS5jYWxsKHRoaXMsYSl9dmFyIGU9
YSgiLi9VaW50OEFycmF5UmVhZGVyIiksZj1hKCIuLi91dGlscyIpO2YuaW5oZXJpdHMoZCxlKSxk
LnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBi
PXRoaXMuZGF0YS5zbGljZSh0aGlzLnplcm8rdGhpcy5pbmRleCx0aGlzLnplcm8rdGhpcy5pbmRl
eCthKTtyZXR1cm4gdGhpcy5pbmRleCs9YSxifSxiLmV4cG9ydHM9ZH0seyIuLi91dGlscyI6MzIs
Ii4vVWludDhBcnJheVJlYWRlciI6MjF9XSwyMDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0
IjtmdW5jdGlvbiBkKGEpe2UuY2FsbCh0aGlzLGEpfXZhciBlPWEoIi4vRGF0YVJlYWRlciIpLGY9
YSgiLi4vdXRpbHMiKTtmLmluaGVyaXRzKGQsZSksZC5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9u
KGEpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdCh0aGlzLnplcm8rYSl9LGQucHJvdG90eXBl
Lmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGEubGFzdElu
ZGV4T2YoYSktdGhpcy56ZXJvfSxkLnByb3RvdHlwZS5yZWFkQW5kQ2hlY2tTaWduYXR1cmU9ZnVu
Y3Rpb24oYSl7dmFyIGI9dGhpcy5yZWFkRGF0YSg0KTtyZXR1cm4gYT09PWJ9LGQucHJvdG90eXBl
LnJlYWREYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tPZmZzZXQoYSk7dmFyIGI9dGhpcy5kYXRh
LnNsaWNlKHRoaXMuemVybyt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2EpO3JldHVy
biB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1kfSx7Ii4uL3V0aWxzIjozMiwiLi9EYXRhUmVh
ZGVyIjoxOH1dLDIxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7
ZS5jYWxsKHRoaXMsYSl9dmFyIGU9YSgiLi9BcnJheVJlYWRlciIpLGY9YSgiLi4vdXRpbHMiKTtm
LmluaGVyaXRzKGQsZSksZC5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7aWYodGhpcy5j
aGVja09mZnNldChhKSwwPT09YSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7dmFyIGI9dGhpcy5k
YXRhLnN1YmFycmF5KHRoaXMuemVybyt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2Ep
O3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1kfSx7Ii4uL3V0aWxzIjozMiwiLi9B
cnJheVJlYWRlciI6MTd9XSwyMjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1h
KCIuLi91dGlscyIpLGU9YSgiLi4vc3VwcG9ydCIpLGY9YSgiLi9BcnJheVJlYWRlciIpLGc9YSgi
Li9TdHJpbmdSZWFkZXIiKSxoPWEoIi4vTm9kZUJ1ZmZlclJlYWRlciIpLGk9YSgiLi9VaW50OEFy
cmF5UmVhZGVyIik7Yi5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciBiPWQuZ2V0VHlwZU9mKGEpO3Jl
dHVybiBkLmNoZWNrU3VwcG9ydChiKSwic3RyaW5nIiE9PWJ8fGUudWludDhhcnJheT8ibm9kZWJ1
ZmZlciI9PT1iP25ldyBoKGEpOmUudWludDhhcnJheT9uZXcgaShkLnRyYW5zZm9ybVRvKCJ1aW50
OGFycmF5IixhKSk6bmV3IGYoZC50cmFuc2Zvcm1UbygiYXJyYXkiLGEpKTpuZXcgZyhhKX19LHsi
Li4vc3VwcG9ydCI6MzAsIi4uL3V0aWxzIjozMiwiLi9BcnJheVJlYWRlciI6MTcsIi4vTm9kZUJ1
ZmZlclJlYWRlciI6MTksIi4vU3RyaW5nUmVhZGVyIjoyMCwiLi9VaW50OEFycmF5UmVhZGVyIjoy
MX1dLDIzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuTE9DQUxfRklMRV9IRUFERVI9
IlBLAwQiLGMuQ0VOVFJBTF9GSUxFX0hFQURFUj0iUEsBAiIsYy5DRU5UUkFMX0RJUkVDVE9SWV9F
TkQ9IlBLBQYiLGMuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUj0iUEsGByIsYy5aSVA2
NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLBgYiLGMuREFUQV9ERVNDUklQVE9SPSJQSwdcYiJ9
LHt9XSwyNDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe2UuY2Fs
bCh0aGlzLCJDb252ZXJ0V29ya2VyIHRvICIrYSksdGhpcy5kZXN0VHlwZT1hfXZhciBlPWEoIi4v
R2VuZXJpY1dvcmtlciIpLGY9YSgiLi4vdXRpbHMiKTtmLmluaGVyaXRzKGQsZSksZC5wcm90b3R5
cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGEpe3RoaXMucHVzaCh7ZGF0YTpmLnRyYW5zZm9ybVRv
KHRoaXMuZGVzdFR5cGUsYS5kYXRhKSxtZXRhOmEubWV0YX0pfSxiLmV4cG9ydHM9ZH0seyIuLi91
dGlscyI6MzIsIi4vR2VuZXJpY1dvcmtlciI6Mjh9XSwyNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ug
c3RyaWN0IjtmdW5jdGlvbiBkKCl7ZS5jYWxsKHRoaXMsIkNyYzMyUHJvYmUiKSx0aGlzLndpdGhT
dHJlYW1JbmZvKCJjcmMzMiIsMCl9dmFyIGU9YSgiLi9HZW5lcmljV29ya2VyIiksZj1hKCIuLi9j
cmMzMiIpLGc9YSgiLi4vdXRpbHMiKTtnLmluaGVyaXRzKGQsZSksZC5wcm90b3R5cGUucHJvY2Vz
c0NodW5rPWZ1bmN0aW9uKGEpe3RoaXMuc3RyZWFtSW5mby5jcmMzMj1mKGEuZGF0YSx0aGlzLnN0
cmVhbUluZm8uY3JjMzJ8fDApLHRoaXMucHVzaChhKX0sYi5leHBvcnRzPWR9LHsiLi4vY3JjMzIi
OjQsIi4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDI2OltmdW5jdGlvbihhLGIs
Yyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zi5jYWxsKHRoaXMsIkRhdGFMZW5ndGhQcm9i
ZSBmb3IgIithKSx0aGlzLnByb3BOYW1lPWEsdGhpcy53aXRoU3RyZWFtSW5mbyhhLDApfXZhciBl
PWEoIi4uL3V0aWxzIiksZj1hKCIuL0dlbmVyaWNXb3JrZXIiKTtlLmluaGVyaXRzKGQsZiksZC5w
cm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGEpe2lmKGEpe3ZhciBiPXRoaXMuc3RyZWFt
SW5mb1t0aGlzLnByb3BOYW1lXXx8MDt0aGlzLnN0cmVhbUluZm9bdGhpcy5wcm9wTmFtZV09Yith
LmRhdGEubGVuZ3RofWYucHJvdG90eXBlLnByb2Nlc3NDaHVuay5jYWxsKHRoaXMsYSl9LGIuZXhw
b3J0cz1kfSx7Ii4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDI3OltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zi5jYWxsKHRoaXMsIkRhdGFXb3Jr
ZXIiKTt2YXIgYj10aGlzO3RoaXMuZGF0YUlzUmVhZHk9ITEsdGhpcy5pbmRleD0wLHRoaXMubWF4
PTAsdGhpcy5kYXRhPW51bGwsdGhpcy50eXBlPSIiLHRoaXMuX3RpY2tTY2hlZHVsZWQ9ITEsYS50
aGVuKGZ1bmN0aW9uKGEpe2IuZGF0YUlzUmVhZHk9ITAsYi5kYXRhPWEsYi5tYXg9YSYmYS5sZW5n
dGh8fDAsYi50eXBlPWUuZ2V0VHlwZU9mKGEpLGIuaXNQYXVzZWR8fGIuX3RpY2tBbmRSZXBlYXQo
KX0sZnVuY3Rpb24oYSl7Yi5lcnJvcihhKX0pfXZhciBlPWEoIi4uL3V0aWxzIiksZj1hKCIuL0dl
bmVyaWNXb3JrZXIiKSxnPTE2Mzg0O2UuaW5oZXJpdHMoZCxmKSxkLnByb3RvdHlwZS5jbGVhblVw
PWZ1bmN0aW9uKCl7Zi5wcm90b3R5cGUuY2xlYW5VcC5jYWxsKHRoaXMpLHRoaXMuZGF0YT1udWxs
fSxkLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIWYucHJvdG90eXBlLnJlc3Vt
ZS5jYWxsKHRoaXMpJiYoIXRoaXMuX3RpY2tTY2hlZHVsZWQmJnRoaXMuZGF0YUlzUmVhZHkmJih0
aGlzLl90aWNrU2NoZWR1bGVkPSEwLGUuZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlz
KSksITApfSxkLnByb3RvdHlwZS5fdGlja0FuZFJlcGVhdD1mdW5jdGlvbigpe3RoaXMuX3RpY2tT
Y2hlZHVsZWQ9ITEsdGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkfHwodGhpcy5fdGljaygp
LHRoaXMuaXNGaW5pc2hlZHx8KGUuZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlzKSx0
aGlzLl90aWNrU2NoZWR1bGVkPSEwKSl9LGQucHJvdG90eXBlLl90aWNrPWZ1bmN0aW9uKCl7aWYo
dGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkKXJldHVybiExO3ZhciBhPWcsYj1udWxsLGM9
TWF0aC5taW4odGhpcy5tYXgsdGhpcy5pbmRleCthKTtpZih0aGlzLmluZGV4Pj10aGlzLm1heCly
ZXR1cm4gdGhpcy5lbmQoKTtzd2l0Y2godGhpcy50eXBlKXtjYXNlInN0cmluZyI6Yj10aGlzLmRh
dGEuc3Vic3RyaW5nKHRoaXMuaW5kZXgsYyk7YnJlYWs7Y2FzZSJ1aW50OGFycmF5IjpiPXRoaXMu
ZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LGMpO2JyZWFrO2Nhc2UiYXJyYXkiOmNhc2Uibm9kZWJ1
ZmZlciI6Yj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCxjKX1yZXR1cm4gdGhpcy5pbmRleD1j
LHRoaXMucHVzaCh7ZGF0YTpiLG1ldGE6e3BlcmNlbnQ6dGhpcy5tYXg/dGhpcy5pbmRleC90aGlz
Lm1heCoxMDA6MH19KX0sYi5leHBvcnRzPWR9LHsiLi4vdXRpbHMiOjMyLCIuL0dlbmVyaWNXb3Jr
ZXIiOjI4fV0sMjg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXt0
aGlzLm5hbWU9YXx8ImRlZmF1bHQiLHRoaXMuc3RyZWFtSW5mbz17fSx0aGlzLmdlbmVyYXRlZEVy
cm9yPW51bGwsdGhpcy5leHRyYVN0cmVhbUluZm89e30sdGhpcy5pc1BhdXNlZD0hMCx0aGlzLmlz
RmluaXNoZWQ9ITEsdGhpcy5pc0xvY2tlZD0hMSx0aGlzLl9saXN0ZW5lcnM9e2RhdGE6W10sZW5k
OltdLGVycm9yOltdfSx0aGlzLnByZXZpb3VzPW51bGx9ZC5wcm90b3R5cGU9e3B1c2g6ZnVuY3Rp
b24oYSl7dGhpcy5lbWl0KCJkYXRhIixhKX0sZW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0Zpbmlz
aGVkKXJldHVybiExO3RoaXMuZmx1c2goKTt0cnl7dGhpcy5lbWl0KCJlbmQiKSx0aGlzLmNsZWFu
VXAoKSx0aGlzLmlzRmluaXNoZWQ9ITB9Y2F0Y2goYSl7dGhpcy5lbWl0KCJlcnJvciIsYSl9cmV0
dXJuITB9LGVycm9yOmZ1bmN0aW9uKGEpe3JldHVybiF0aGlzLmlzRmluaXNoZWQmJih0aGlzLmlz
UGF1c2VkP3RoaXMuZ2VuZXJhdGVkRXJyb3I9YToodGhpcy5pc0ZpbmlzaGVkPSEwLHRoaXMuZW1p
dCgiZXJyb3IiLGEpLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMuZXJyb3IoYSksdGhpcy5j
bGVhblVwKCkpLCEwKX0sb246ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW2Fd
LnB1c2goYiksdGhpc30sY2xlYW5VcDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtSW5mbz10aGlzLmdl
bmVyYXRlZEVycm9yPXRoaXMuZXh0cmFTdHJlYW1JbmZvPW51bGwsdGhpcy5fbGlzdGVuZXJzPVtd
fSxlbWl0OmZ1bmN0aW9uKGEsYil7aWYodGhpcy5fbGlzdGVuZXJzW2FdKWZvcih2YXIgYz0wO2M8
dGhpcy5fbGlzdGVuZXJzW2FdLmxlbmd0aDtjKyspdGhpcy5fbGlzdGVuZXJzW2FdW2NdLmNhbGwo
dGhpcyxiKX0scGlwZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZWdpc3RlclByZXZpb3VzKHRoaXMp
fSxyZWdpc3RlclByZXZpb3VzOmZ1bmN0aW9uKGEpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3
IEVycm9yKCJUaGUgc3RyZWFtICciK3RoaXMrIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiIpO3Ro
aXMuc3RyZWFtSW5mbz1hLnN0cmVhbUluZm8sdGhpcy5tZXJnZVN0cmVhbUluZm8oKSx0aGlzLnBy
ZXZpb3VzPWE7dmFyIGI9dGhpcztyZXR1cm4gYS5vbigiZGF0YSIsZnVuY3Rpb24oYSl7Yi5wcm9j
ZXNzQ2h1bmsoYSl9KSxhLm9uKCJlbmQiLGZ1bmN0aW9uKCl7Yi5lbmQoKX0pLGEub24oImVycm9y
IixmdW5jdGlvbihhKXtiLmVycm9yKGEpfSksdGhpc30scGF1c2U6ZnVuY3Rpb24oKXtyZXR1cm4h
dGhpcy5pc1BhdXNlZCYmIXRoaXMuaXNGaW5pc2hlZCYmKHRoaXMuaXNQYXVzZWQ9ITAsdGhpcy5w
cmV2aW91cyYmdGhpcy5wcmV2aW91cy5wYXVzZSgpLCEwKX0scmVzdW1lOmZ1bmN0aW9uKCl7aWYo
IXRoaXMuaXNQYXVzZWR8fHRoaXMuaXNGaW5pc2hlZClyZXR1cm4hMTt0aGlzLmlzUGF1c2VkPSEx
O3ZhciBhPSExO3JldHVybiB0aGlzLmdlbmVyYXRlZEVycm9yJiYodGhpcy5lcnJvcih0aGlzLmdl
bmVyYXRlZEVycm9yKSxhPSEwKSx0aGlzLnByZXZpb3VzJiZ0aGlzLnByZXZpb3VzLnJlc3VtZSgp
LCFhfSxmbHVzaDpmdW5jdGlvbigpe30scHJvY2Vzc0NodW5rOmZ1bmN0aW9uKGEpe3RoaXMucHVz
aChhKX0sd2l0aFN0cmVhbUluZm86ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5leHRyYVN0cmVh
bUluZm9bYV09Yix0aGlzLm1lcmdlU3RyZWFtSW5mbygpLHRoaXN9LG1lcmdlU3RyZWFtSW5mbzpm
dW5jdGlvbigpe2Zvcih2YXIgYSBpbiB0aGlzLmV4dHJhU3RyZWFtSW5mbyl0aGlzLmV4dHJhU3Ry
ZWFtSW5mby5oYXNPd25Qcm9wZXJ0eShhKSYmKHRoaXMuc3RyZWFtSW5mb1thXT10aGlzLmV4dHJh
U3RyZWFtSW5mb1thXSl9LGxvY2s6ZnVuY3Rpb24oKXtpZih0aGlzLmlzTG9ja2VkKXRocm93IG5l
dyBFcnJvcigiVGhlIHN0cmVhbSAnIit0aGlzKyInIGhhcyBhbHJlYWR5IGJlZW4gdXNlZC4iKTt0
aGlzLmlzTG9ja2VkPSEwLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMubG9jaygpfSx0b1N0
cmluZzpmdW5jdGlvbigpe3ZhciBhPSJXb3JrZXIgIit0aGlzLm5hbWU7cmV0dXJuIHRoaXMucHJl
dmlvdXM/dGhpcy5wcmV2aW91cysiIC0+ICIrYTphfX0sYi5leHBvcnRzPWR9LHt9XSwyOTpbZnVu
Y3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYixjKXtzd2l0Y2goYSl7Y2Fz
ZSJibG9iIjpyZXR1cm4gaC5uZXdCbG9iKGgudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIixiKSxj
KTtjYXNlImJhc2U2NCI6cmV0dXJuIGsuZW5jb2RlKGIpO2RlZmF1bHQ6cmV0dXJuIGgudHJhbnNm
b3JtVG8oYSxiKX19ZnVuY3Rpb24gZShhLGIpe3ZhciBjLGQ9MCxlPW51bGwsZj0wO2ZvcihjPTA7
YzxiLmxlbmd0aDtjKyspZis9YltjXS5sZW5ndGg7c3dpdGNoKGEpe2Nhc2Uic3RyaW5nIjpyZXR1
cm4gYi5qb2luKCIiKTtjYXNlImFycmF5IjpyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5h
cHBseShbXSxiKTtjYXNlInVpbnQ4YXJyYXkiOmZvcihlPW5ldyBVaW50OEFycmF5KGYpLGM9MDtj
PGIubGVuZ3RoO2MrKyllLnNldChiW2NdLGQpLGQrPWJbY10ubGVuZ3RoO3JldHVybiBlO2Nhc2Ui
bm9kZWJ1ZmZlciI6cmV0dXJuIEJ1ZmZlci5jb25jYXQoYik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJy
b3IoImNvbmNhdCA6IHVuc3VwcG9ydGVkIHR5cGUgJyIrYSsiJyIpfX1mdW5jdGlvbiBmKGEsYil7
cmV0dXJuIG5ldyBtLlByb21pc2UoZnVuY3Rpb24oYyxmKXt2YXIgZz1bXSxoPWEuX2ludGVybmFs
VHlwZSxpPWEuX291dHB1dFR5cGUsaj1hLl9taW1lVHlwZTthLm9uKCJkYXRhIixmdW5jdGlvbihh
LGMpe2cucHVzaChhKSxiJiZiKGMpfSkub24oImVycm9yIixmdW5jdGlvbihhKXtnPVtdLGYoYSl9
KS5vbigiZW5kIixmdW5jdGlvbigpe3RyeXt2YXIgYT1kKGksZShoLGcpLGopO2MoYSl9Y2F0Y2go
Yil7ZihiKX1nPVtdfSkucmVzdW1lKCl9KX1mdW5jdGlvbiBnKGEsYixjKXt2YXIgZD1iO3N3aXRj
aChiKXtjYXNlImJsb2IiOmNhc2UiYXJyYXlidWZmZXIiOmQ9InVpbnQ4YXJyYXkiO2JyZWFrO2Nh
c2UiYmFzZTY0IjpkPSJzdHJpbmcifXRyeXt0aGlzLl9pbnRlcm5hbFR5cGU9ZCx0aGlzLl9vdXRw
dXRUeXBlPWIsdGhpcy5fbWltZVR5cGU9YyxoLmNoZWNrU3VwcG9ydChkKSx0aGlzLl93b3JrZXI9
YS5waXBlKG5ldyBpKGQpKSxhLmxvY2soKX1jYXRjaChlKXt0aGlzLl93b3JrZXI9bmV3IGooImVy
cm9yIiksdGhpcy5fd29ya2VyLmVycm9yKGUpfX12YXIgaD1hKCIuLi91dGlscyIpLGk9YSgiLi9D
b252ZXJ0V29ya2VyIiksaj1hKCIuL0dlbmVyaWNXb3JrZXIiKSxrPWEoIi4uL2Jhc2U2NCIpLGw9
YSgiLi4vc3VwcG9ydCIpLG09YSgiLi4vZXh0ZXJuYWwiKSxuPW51bGw7aWYobC5ub2Rlc3RyZWFt
KXRyeXtuPWEoIi4uL25vZGVqcy9Ob2RlanNTdHJlYW1PdXRwdXRBZGFwdGVyIil9Y2F0Y2gobyl7
fWcucHJvdG90eXBlPXthY2N1bXVsYXRlOmZ1bmN0aW9uKGEpe3JldHVybiBmKHRoaXMsYSl9LG9u
OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcztyZXR1cm4iZGF0YSI9PT1hP3RoaXMuX3dvcmtlci5v
bihhLGZ1bmN0aW9uKGEpe2IuY2FsbChjLGEuZGF0YSxhLm1ldGEpfSk6dGhpcy5fd29ya2VyLm9u
KGEsZnVuY3Rpb24oKXtoLmRlbGF5KGIsYXJndW1lbnRzLGMpfSksdGhpc30scmVzdW1lOmZ1bmN0
aW9uKCl7cmV0dXJuIGguZGVsYXkodGhpcy5fd29ya2VyLnJlc3VtZSxbXSx0aGlzLl93b3JrZXIp
LHRoaXN9LHBhdXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvcmtlci5wYXVzZSgpLHRoaXN9
LHRvTm9kZWpzU3RyZWFtOmZ1bmN0aW9uKGEpe2lmKGguY2hlY2tTdXBwb3J0KCJub2Rlc3RyZWFt
IiksIm5vZGVidWZmZXIiIT09dGhpcy5fb3V0cHV0VHlwZSl0aHJvdyBuZXcgRXJyb3IodGhpcy5f
b3V0cHV0VHlwZSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBtZXRob2QiKTtyZXR1cm4gbmV3
IG4odGhpcyx7b2JqZWN0TW9kZToibm9kZWJ1ZmZlciIhPT10aGlzLl9vdXRwdXRUeXBlfSxhKX19
LGIuZXhwb3J0cz1nfSx7Ii4uL2Jhc2U2NCI6MSwiLi4vZXh0ZXJuYWwiOjYsIi4uL25vZGVqcy9O
b2RlanNTdHJlYW1PdXRwdXRBZGFwdGVyIjoxMywiLi4vc3VwcG9ydCI6MzAsIi4uL3V0aWxzIjoz
MiwiLi9Db252ZXJ0V29ya2VyIjoyNCwiLi9HZW5lcmljV29ya2VyIjoyOH1dLDMwOltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2lmKGMuYmFzZTY0PSEwLGMuYXJyYXk9ITAsYy5zdHJpbmc9
ITAsYy5hcnJheWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZp
bmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksYy5ub2RlYnVmZmVyPSJ1bmRlZmluZWQiIT10eXBlb2Yg
QnVmZmVyLGMudWludDhhcnJheT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXksInVuZGVm
aW5lZCI9PXR5cGVvZiBBcnJheUJ1ZmZlciljLmJsb2I9ITE7ZWxzZXt2YXIgZD1uZXcgQXJyYXlC
dWZmZXIoMCk7dHJ5e2MuYmxvYj0wPT09bmV3IEJsb2IoW2RdLHt0eXBlOiJhcHBsaWNhdGlvbi96
aXAifSkuc2l6ZX1jYXRjaChlKXt0cnl7dmFyIGY9c2VsZi5CbG9iQnVpbGRlcnx8c2VsZi5XZWJL
aXRCbG9iQnVpbGRlcnx8c2VsZi5Nb3pCbG9iQnVpbGRlcnx8c2VsZi5NU0Jsb2JCdWlsZGVyLGc9
bmV3IGY7Zy5hcHBlbmQoZCksYy5ibG9iPTA9PT1nLmdldEJsb2IoImFwcGxpY2F0aW9uL3ppcCIp
LnNpemV9Y2F0Y2goZSl7Yy5ibG9iPSExfX19dHJ5e2Mubm9kZXN0cmVhbT0hIWEoInJlYWRhYmxl
LXN0cmVhbSIpLlJlYWRhYmxlfWNhdGNoKGUpe2Mubm9kZXN0cmVhbT0hMX19LHsicmVhZGFibGUt
c3RyZWFtIjoxNn1dLDMxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQo
KXtpLmNhbGwodGhpcywidXRmLTggZGVjb2RlIiksdGhpcy5sZWZ0T3Zlcj1udWxsfWZ1bmN0aW9u
IGUoKXtpLmNhbGwodGhpcywidXRmLTggZW5jb2RlIil9Zm9yKHZhciBmPWEoIi4vdXRpbHMiKSxn
PWEoIi4vc3VwcG9ydCIpLGg9YSgiLi9ub2RlanNVdGlscyIpLGk9YSgiLi9zdHJlYW0vR2VuZXJp
Y1dvcmtlciIpLGo9bmV3IEFycmF5KDI1Niksaz0wO2s8MjU2O2srKylqW2tdPWs+PTI1Mj82Oms+
PTI0OD81Oms+PTI0MD80Oms+PTIyND8zOms+PTE5Mj8yOjE7alsyNTRdPWpbMjU0XT0xO3ZhciBs
PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsaD1hLmxlbmd0aCxpPTA7Zm9yKGU9MDtlPGg7ZSsr
KWM9YS5jaGFyQ29kZUF0KGUpLDU1Mjk2PT09KDY0NTEyJmMpJiZlKzE8aCYmKGQ9YS5jaGFyQ29k
ZUF0KGUrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYz
MjApLGUrKykpLGkrPWM8MTI4PzE6YzwyMDQ4PzI6Yzw2NTUzNj8zOjQ7Zm9yKGI9Zy51aW50OGFy
cmF5P25ldyBVaW50OEFycmF5KGkpOm5ldyBBcnJheShpKSxmPTAsZT0wO2Y8aTtlKyspYz1hLmNo
YXJDb2RlQXQoZSksNTUyOTY9PT0oNjQ1MTImYykmJmUrMTxoJiYoZD1hLmNoYXJDb2RlQXQoZSsx
KSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZSsr
KSksYzwxMjg/YltmKytdPWM6YzwyMDQ4PyhiW2YrK109MTkyfGM+Pj42LGJbZisrXT0xMjh8NjMm
Yyk6Yzw2NTUzNj8oYltmKytdPTIyNHxjPj4+MTIsYltmKytdPTEyOHxjPj4+NiY2MyxiW2YrK109
MTI4fDYzJmMpOihiW2YrK109MjQwfGM+Pj4xOCxiW2YrK109MTI4fGM+Pj4xMiY2MyxiW2YrK109
MTI4fGM+Pj42JjYzLGJbZisrXT0xMjh8NjMmYyk7cmV0dXJuIGJ9LG09ZnVuY3Rpb24oYSxiKXt2
YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49
MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiBjPDA/YjowPT09Yz9iOmMralthW2NdXT5i
P2M6Yn0sbj1mdW5jdGlvbihhKXt2YXIgYixjLGQsZSxnPWEubGVuZ3RoLGg9bmV3IEFycmF5KDIq
Zyk7Zm9yKGM9MCxiPTA7YjxnOylpZihkPWFbYisrXSxkPDEyOCloW2MrK109ZDtlbHNlIGlmKGU9
altkXSxlPjQpaFtjKytdPTY1NTMzLGIrPWUtMTtlbHNle2ZvcihkJj0yPT09ZT8zMTozPT09ZT8x
NTo3O2U+MSYmYjxnOylkPWQ8PDZ8NjMmYVtiKytdLGUtLTtlPjE/aFtjKytdPTY1NTMzOmQ8NjU1
MzY/aFtjKytdPWQ6KGQtPTY1NTM2LGhbYysrXT01NTI5NnxkPj4xMCYxMDIzLGhbYysrXT01NjMy
MHwxMDIzJmQpfXJldHVybiBoLmxlbmd0aCE9PWMmJihoLnN1YmFycmF5P2g9aC5zdWJhcnJheSgw
LGMpOmgubGVuZ3RoPWMpLGYuYXBwbHlGcm9tQ2hhckNvZGUoaCl9O2MudXRmOGVuY29kZT1mdW5j
dGlvbihhKXtyZXR1cm4gZy5ub2RlYnVmZmVyP2gubmV3QnVmZmVyRnJvbShhLCJ1dGYtOCIpOmwo
YSl9LGMudXRmOGRlY29kZT1mdW5jdGlvbihhKXtyZXR1cm4gZy5ub2RlYnVmZmVyP2YudHJhbnNm
b3JtVG8oIm5vZGVidWZmZXIiLGEpLnRvU3RyaW5nKCJ1dGYtOCIpOihhPWYudHJhbnNmb3JtVG8o
Zy51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGEpLG4oYSkpfSxmLmluaGVyaXRzKGQs
aSksZC5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGEpe3ZhciBiPWYudHJhbnNmb3Jt
VG8oZy51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGEuZGF0YSk7aWYodGhpcy5sZWZ0
T3ZlciYmdGhpcy5sZWZ0T3Zlci5sZW5ndGgpe2lmKGcudWludDhhcnJheSl7dmFyIGQ9YjtiPW5l
dyBVaW50OEFycmF5KGQubGVuZ3RoK3RoaXMubGVmdE92ZXIubGVuZ3RoKSxiLnNldCh0aGlzLmxl
ZnRPdmVyLDApLGIuc2V0KGQsdGhpcy5sZWZ0T3Zlci5sZW5ndGgpfWVsc2UgYj10aGlzLmxlZnRP
dmVyLmNvbmNhdChiKTt0aGlzLmxlZnRPdmVyPW51bGx9dmFyIGU9bShiKSxoPWI7ZSE9PWIubGVu
Z3RoJiYoZy51aW50OGFycmF5PyhoPWIuc3ViYXJyYXkoMCxlKSx0aGlzLmxlZnRPdmVyPWIuc3Vi
YXJyYXkoZSxiLmxlbmd0aCkpOihoPWIuc2xpY2UoMCxlKSx0aGlzLmxlZnRPdmVyPWIuc2xpY2Uo
ZSxiLmxlbmd0aCkpKSx0aGlzLnB1c2goe2RhdGE6Yy51dGY4ZGVjb2RlKGgpLG1ldGE6YS5tZXRh
fSl9LGQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0T3ZlciYmdGhpcy5sZWZ0
T3Zlci5sZW5ndGgmJih0aGlzLnB1c2goe2RhdGE6Yy51dGY4ZGVjb2RlKHRoaXMubGVmdE92ZXIp
LG1ldGE6e319KSx0aGlzLmxlZnRPdmVyPW51bGwpfSxjLlV0ZjhEZWNvZGVXb3JrZXI9ZCxmLmlu
aGVyaXRzKGUsaSksZS5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGEpe3RoaXMucHVz
aCh7ZGF0YTpjLnV0ZjhlbmNvZGUoYS5kYXRhKSxtZXRhOmEubWV0YX0pfSxjLlV0ZjhFbmNvZGVX
b3JrZXI9ZX0seyIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6Mjgs
Ii4vc3VwcG9ydCI6MzAsIi4vdXRpbHMiOjMyfV0sMzI6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0
cmljdCI7ZnVuY3Rpb24gZChhKXt2YXIgYj1udWxsO3JldHVybiBiPWkudWludDhhcnJheT9uZXcg
VWludDhBcnJheShhLmxlbmd0aCk6bmV3IEFycmF5KGEubGVuZ3RoKSxmKGEsYil9ZnVuY3Rpb24g
ZShhKXtyZXR1cm4gYX1mdW5jdGlvbiBmKGEsYil7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDsrK2Mp
YltjXT0yNTUmYS5jaGFyQ29kZUF0KGMpO3JldHVybiBifWZ1bmN0aW9uIGcoYSl7dmFyIGI9NjU1
MzYsZD1jLmdldFR5cGVPZihhKSxlPSEwO2lmKCJ1aW50OGFycmF5Ij09PWQ/ZT1uLmFwcGx5Q2Fu
QmVVc2VkLnVpbnQ4YXJyYXk6Im5vZGVidWZmZXIiPT09ZCYmKGU9bi5hcHBseUNhbkJlVXNlZC5u
b2RlYnVmZmVyKSxlKWZvcig7Yj4xOyl0cnl7cmV0dXJuIG4uc3RyaW5naWZ5QnlDaHVuayhhLGQs
Yil9Y2F0Y2goZil7Yj1NYXRoLmZsb29yKGIvMil9cmV0dXJuIG4uc3RyaW5naWZ5QnlDaGFyKGEp
fWZ1bmN0aW9uIGgoYSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyliW2NdPWFbY107City
ZXR1cm4gYn12YXIgaT1hKCIuL3N1cHBvcnQiKSxqPWEoIi4vYmFzZTY0Iiksaz1hKCIuL25vZGVq
c1V0aWxzIiksbD1hKCJjb3JlLWpzL2xpYnJhcnkvZm4vc2V0LWltbWVkaWF0ZSIpLG09YSgiLi9l
eHRlcm5hbCIpO2MubmV3QmxvYj1mdW5jdGlvbihhLGIpe2MuY2hlY2tTdXBwb3J0KCJibG9iIik7
dHJ5e3JldHVybiBuZXcgQmxvYihbYV0se3R5cGU6Yn0pfWNhdGNoKGQpe3RyeXt2YXIgZT1zZWxm
LkJsb2JCdWlsZGVyfHxzZWxmLldlYktpdEJsb2JCdWlsZGVyfHxzZWxmLk1vekJsb2JCdWlsZGVy
fHxzZWxmLk1TQmxvYkJ1aWxkZXIsZj1uZXcgZTtyZXR1cm4gZi5hcHBlbmQoYSksZi5nZXRCbG9i
KGIpfWNhdGNoKGQpe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBC
bG9iLiIpfX19O3ZhciBuPXtzdHJpbmdpZnlCeUNodW5rOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1b
XSxlPTAsZj1hLmxlbmd0aDtpZihmPD1jKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5
KG51bGwsYSk7Zm9yKDtlPGY7KSJhcnJheSI9PT1ifHwibm9kZWJ1ZmZlciI9PT1iP2QucHVzaChT
dHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zbGljZShlLE1hdGgubWluKGUrYyxmKSkp
KTpkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEuc3ViYXJyYXkoZSxNYXRo
Lm1pbihlK2MsZikpKSksZSs9YztyZXR1cm4gZC5qb2luKCIiKX0sc3RyaW5naWZ5QnlDaGFyOmZ1
bmN0aW9uKGEpe2Zvcih2YXIgYj0iIixjPTA7YzxhLmxlbmd0aDtjKyspYis9U3RyaW5nLmZyb21D
aGFyQ29kZShhW2NdKTtyZXR1cm4gYn0sYXBwbHlDYW5CZVVzZWQ6e3VpbnQ4YXJyYXk6ZnVuY3Rp
b24oKXt0cnl7cmV0dXJuIGkudWludDhhcnJheSYmMT09PVN0cmluZy5mcm9tQ2hhckNvZGUuYXBw
bHkobnVsbCxuZXcgVWludDhBcnJheSgxKSkubGVuZ3RofWNhdGNoKGEpe3JldHVybiExfX0oKSxu
b2RlYnVmZmVyOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBpLm5vZGVidWZmZXImJjE9PT1TdHJpbmcu
ZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsay5hbGxvY0J1ZmZlcigxKSkubGVuZ3RofWNhdGNoKGEp
e3JldHVybiExfX0oKX19O2MuYXBwbHlGcm9tQ2hhckNvZGU9Zzt2YXIgbz17fTtvLnN0cmluZz17
c3RyaW5nOmUsYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGYoYSxuZXcgQXJyYXkoYS5sZW5ndGgp
KX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIG8uc3RyaW5nLnVpbnQ4YXJyYXkoYSku
YnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBmKGEsbmV3IFVpbnQ4QXJyYXko
YS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gZihhLGsuYWxsb2NCdWZm
ZXIoYS5sZW5ndGgpKX19LG8uYXJyYXk9e3N0cmluZzpnLGFycmF5OmUsYXJyYXlidWZmZXI6ZnVu
Y3Rpb24oYSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5j
dGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7
cmV0dXJuIGsubmV3QnVmZmVyRnJvbShhKX19LG8uYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlv
bihhKXtyZXR1cm4gZyhuZXcgVWludDhBcnJheShhKSl9LGFycmF5OmZ1bmN0aW9uKGEpe3JldHVy
biBoKG5ldyBVaW50OEFycmF5KGEpLG5ldyBBcnJheShhLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZm
ZXI6ZSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9k
ZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5uZXdCdWZmZXJGcm9tKG5ldyBVaW50OEFycmF5
KGEpKX19LG8udWludDhhcnJheT17c3RyaW5nOmcsYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGgo
YSxuZXcgQXJyYXkoYS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
YnVmZmVyfSx1aW50OGFycmF5OmUsbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5uZXdC
dWZmZXJGcm9tKGEpfX0sby5ub2RlYnVmZmVyPXtzdHJpbmc6ZyxhcnJheTpmdW5jdGlvbihhKXty
ZXR1cm4gaChhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXty
ZXR1cm4gby5ub2RlYnVmZmVyLnVpbnQ4YXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0
aW9uKGEpe3JldHVybiBoKGEsbmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpl
fSxjLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKGEsYil7aWYoYnx8KGI9IiIpLCFhKXJldHVybiBiO2Mu
Y2hlY2tTdXBwb3J0KGEpO3ZhciBkPWMuZ2V0VHlwZU9mKGIpLGU9b1tkXVthXShiKTtyZXR1cm4g
ZX0sYy5nZXRUeXBlT2Y9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhPyJzdHJp
bmciOiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk/
ImFycmF5IjppLm5vZGVidWZmZXImJmsuaXNCdWZmZXIoYSk/Im5vZGVidWZmZXIiOmkudWludDhh
cnJheSYmYSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOmkuYXJyYXlidWZmZXIm
JmEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8iYXJyYXlidWZmZXIiOnZvaWQgMH0sYy5jaGVja1N1
cHBvcnQ9ZnVuY3Rpb24oYSl7dmFyIGI9aVthLnRvTG93ZXJDYXNlKCldO2lmKCFiKXRocm93IG5l
dyBFcnJvcihhKyIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtIil9LGMuTUFYX1ZB
TFVFXzE2QklUUz02NTUzNSxjLk1BWF9WQUxVRV8zMkJJVFM9LTEsYy5wcmV0dHk9ZnVuY3Rpb24o
YSl7dmFyIGIsYyxkPSIiO2ZvcihjPTA7YzwoYXx8IiIpLmxlbmd0aDtjKyspYj1hLmNoYXJDb2Rl
QXQoYyksZCs9IlxceCIrKGI8MTY/IjAiOiIiKStiLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgp
O3JldHVybiBkfSxjLmRlbGF5PWZ1bmN0aW9uKGEsYixjKXtsKGZ1bmN0aW9uKCl7YS5hcHBseShj
fHxudWxsLGJ8fFtdKX0pfSxjLmluaGVyaXRzPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24o
KXt9O2MucHJvdG90eXBlPWIucHJvdG90eXBlLGEucHJvdG90eXBlPW5ldyBjfSxjLmV4dGVuZD1m
dW5jdGlvbigpe3ZhciBhLGIsYz17fTtmb3IoYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZm9y
KGIgaW4gYXJndW1lbnRzW2FdKWFyZ3VtZW50c1thXS5oYXNPd25Qcm9wZXJ0eShiKSYmInVuZGVm
aW5lZCI9PXR5cGVvZiBjW2JdJiYoY1tiXT1hcmd1bWVudHNbYV1bYl0pO3JldHVybiBjfSxjLnBy
ZXBhcmVDb250ZW50PWZ1bmN0aW9uKGEsYixlLGYsZyl7dmFyIGg9bS5Qcm9taXNlLnJlc29sdmUo
YikudGhlbihmdW5jdGlvbihhKXt2YXIgYj1pLmJsb2ImJihhIGluc3RhbmNlb2YgQmxvYnx8WyJb
b2JqZWN0IEZpbGVdIiwiW29iamVjdCBCbG9iXSJdLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKGEpKSE9PS0xKTtyZXR1cm4gYiYmInVuZGVmaW5lZCIhPXR5cGVvZiBGaWxl
UmVhZGVyP25ldyBtLlByb21pc2UoZnVuY3Rpb24oYixjKXt2YXIgZD1uZXcgRmlsZVJlYWRlcjtk
Lm9ubG9hZD1mdW5jdGlvbihhKXtiKGEudGFyZ2V0LnJlc3VsdCl9LGQub25lcnJvcj1mdW5jdGlv
bihhKXtjKGEudGFyZ2V0LmVycm9yKX0sZC5yZWFkQXNBcnJheUJ1ZmZlcihhKX0pOmF9KTtyZXR1
cm4gaC50aGVuKGZ1bmN0aW9uKGIpe3ZhciBoPWMuZ2V0VHlwZU9mKGIpO3JldHVybiBoPygiYXJy
YXlidWZmZXIiPT09aD9iPWMudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGIpOiJzdHJpbmciPT09
aCYmKGc/Yj1qLmRlY29kZShiKTplJiZmIT09ITAmJihiPWQoYikpKSxiKTptLlByb21pc2UucmVq
ZWN0KG5ldyBFcnJvcigiQ2FuJ3QgcmVhZCB0aGUgZGF0YSBvZiAnIithKyInLiBJcyBpdCBpbiBh
IHN1cHBvcnRlZCBKYXZhU2NyaXB0IHR5cGUgKFN0cmluZywgQmxvYiwgQXJyYXlCdWZmZXIsIGV0
YykgPyIpKX0pfX0seyIuL2Jhc2U2NCI6MSwiLi9leHRlcm5hbCI6NiwiLi9ub2RlanNVdGlscyI6
MTQsIi4vc3VwcG9ydCI6MzAsImNvcmUtanMvbGlicmFyeS9mbi9zZXQtaW1tZWRpYXRlIjozNn1d
LDMzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7dGhpcy5maWxl
cz1bXSx0aGlzLmxvYWRPcHRpb25zPWF9dmFyIGU9YSgiLi9yZWFkZXIvcmVhZGVyRm9yIiksZj1h
KCIuL3V0aWxzIiksZz1hKCIuL3NpZ25hdHVyZSIpLGg9YSgiLi96aXBFbnRyeSIpLGk9KGEoIi4v
dXRmOCIpLGEoIi4vc3VwcG9ydCIpKTtkLnByb3RvdHlwZT17Y2hlY2tTaWduYXR1cmU6ZnVuY3Rp
b24oYSl7aWYoIXRoaXMucmVhZGVyLnJlYWRBbmRDaGVja1NpZ25hdHVyZShhKSl7dGhpcy5yZWFk
ZXIuaW5kZXgtPTQ7dmFyIGI9dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KTt0aHJvdyBuZXcgRXJy
b3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnOiB1bmV4cGVjdGVkIHNpZ25hdHVyZSAoIitmLnByZXR0
eShiKSsiLCBleHBlY3RlZCAiK2YucHJldHR5KGEpKyIpIil9fSxpc1NpZ25hdHVyZTpmdW5jdGlv
bihhLGIpe3ZhciBjPXRoaXMucmVhZGVyLmluZGV4O3RoaXMucmVhZGVyLnNldEluZGV4KGEpO3Zh
ciBkPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCksZT1kPT09YjtyZXR1cm4gdGhpcy5yZWFkZXIu
c2V0SW5kZXgoYyksZX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNr
TnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFy
dD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNr
PXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRl
ci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0
aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1l
bnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKTt2YXIgYT10aGlzLnJlYWRlci5yZWFkRGF0
YSh0aGlzLnppcENvbW1lbnRMZW5ndGgpLGI9aS51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJy
YXkiLGM9Zi50cmFuc2Zvcm1UbyhiLGEpO3RoaXMuemlwQ29tbWVudD10aGlzLmxvYWRPcHRpb25z
LmRlY29kZUZpbGVOYW1lKGMpfSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbDpmdW5jdGlvbigp
e3RoaXMuemlwNjRFbmRPZkNlbnRyYWxTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5y
ZWFkZXIuc2tpcCg0KSx0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlz
LmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5jZW50
cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRy
YWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyU2l6ZT10
aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRlci5y
ZWFkSW50KDgpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YT17fTtmb3IodmFyIGEsYixjLGQ9dGhp
cy56aXA2NEVuZE9mQ2VudHJhbFNpemUtNDQsZT0wO2U8ZDspYT10aGlzLnJlYWRlci5yZWFkSW50
KDIpLGI9dGhpcy5yZWFkZXIucmVhZEludCg0KSxjPXRoaXMucmVhZGVyLnJlYWREYXRhKGIpLHRo
aXMuemlwNjRFeHRlbnNpYmxlRGF0YVthXT17aWQ6YSxsZW5ndGg6Yix2YWx1ZTpjfX0scmVhZEJs
b2NrWmlwNjRFbmRPZkNlbnRyYWxMb2NhdG9yOmZ1bmN0aW9uKCl7aWYodGhpcy5kaXNrV2l0aFpp
cDY0Q2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5yZWxhdGl2ZU9m
ZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5kaXNr
c0NvdW50PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5kaXNrc0NvdW50PjEpdGhyb3cgbmV3
IEVycm9yKCJNdWx0aS12b2x1bWVzIHppcCBhcmUgbm90IHN1cHBvcnRlZCIpfSxyZWFkTG9jYWxG
aWxlczpmdW5jdGlvbigpe3ZhciBhLGI7Zm9yKGE9MDthPHRoaXMuZmlsZXMubGVuZ3RoO2ErKyli
PXRoaXMuZmlsZXNbYV0sdGhpcy5yZWFkZXIuc2V0SW5kZXgoYi5sb2NhbEhlYWRlck9mZnNldCks
dGhpcy5jaGVja1NpZ25hdHVyZShnLkxPQ0FMX0ZJTEVfSEVBREVSKSxiLnJlYWRMb2NhbFBhcnQo
dGhpcy5yZWFkZXIpLGIuaGFuZGxlVVRGOCgpLGIucHJvY2Vzc0F0dHJpYnV0ZXMoKX0scmVhZENl
bnRyYWxEaXI6ZnVuY3Rpb24oKXt2YXIgYTtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5j
ZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkQW5kQ2hlY2tTaWduYXR1cmUoZy5DRU5U
UkFMX0ZJTEVfSEVBREVSKTspYT1uZXcgaCh7emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0
aW9ucyksYS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChhKTtp
Zih0aGlzLmNlbnRyYWxEaXJSZWNvcmRzIT09dGhpcy5maWxlcy5sZW5ndGgmJjAhPT10aGlzLmNl
bnRyYWxEaXJSZWNvcmRzJiYwPT09dGhpcy5maWxlcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJD
b3JydXB0ZWQgemlwIG9yIGJ1ZzogZXhwZWN0ZWQgIit0aGlzLmNlbnRyYWxEaXJSZWNvcmRzKyIg
cmVjb3JkcyBpbiBjZW50cmFsIGRpciwgZ290ICIrdGhpcy5maWxlcy5sZW5ndGgpfSxyZWFkRW5k
T2ZDZW50cmFsOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1
cmUoZy5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpO2lmKGE8MCl7dmFyIGI9IXRoaXMuaXNTaWduYXR1
cmUoMCxnLkxPQ0FMX0ZJTEVfSEVBREVSKTt0aHJvdyBiP25ldyBFcnJvcigiQ2FuJ3QgZmluZCBl
bmQgb2YgY2VudHJhbCBkaXJlY3RvcnkgOiBpcyB0aGlzIGEgemlwIGZpbGUgPyBJZiBpdCBpcywg
c2VlIGh0dHBzOi8vc3R1ay5naXRodWIuaW8vanN6aXAvZG9jdW1lbnRhdGlvbi9ob3d0by9yZWFk
X3ppcC5odG1sIik6bmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIGVuZCBvZiBj
ZW50cmFsIGRpcmVjdG9yeSIpfXRoaXMucmVhZGVyLnNldEluZGV4KGEpO3ZhciBjPWE7aWYodGhp
cy5jaGVja1NpZ25hdHVyZShnLkNFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWFkQmxvY2tF
bmRPZkNlbnRyYWwoKSx0aGlzLmRpc2tOdW1iZXI9PT1mLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMu
ZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9PT1mLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJh
bERpclJlY29yZHNPblRoaXNEaXNrPT09Zi5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxE
aXJSZWNvcmRzPT09Zi5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJTaXplPT09Zi5N
QVhfVkFMVUVfMzJCSVRTfHx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9PT1mLk1BWF9WQUxVRV8zMkJJ
VFMpe2lmKHRoaXMuemlwNjQ9ITAsYT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShn
LlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpLGE8MCl0aHJvdyBuZXcgRXJyb3IoIkNv
cnJ1cHRlZCB6aXA6IGNhbid0IGZpbmQgdGhlIFpJUDY0IGVuZCBvZiBjZW50cmFsIGRpcmVjdG9y
eSBsb2NhdG9yIik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgoYSksdGhpcy5jaGVja1NpZ25hdHVy
ZShnLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpLHRoaXMucmVhZEJsb2NrWmlwNjRF
bmRPZkNlbnRyYWxMb2NhdG9yKCksIXRoaXMuaXNTaWduYXR1cmUodGhpcy5yZWxhdGl2ZU9mZnNl
dEVuZE9mWmlwNjRDZW50cmFsRGlyLGcuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSYmKHRo
aXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5sYXN0SW5k
ZXhPZlNpZ25hdHVyZShnLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWxhdGl2
ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPDApKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVk
IHppcDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik7dGhp
cy5yZWFkZXIuc2V0SW5kZXgodGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGly
KSx0aGlzLmNoZWNrU2lnbmF0dXJlKGcuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlz
LnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsKCl9dmFyIGQ9dGhpcy5jZW50cmFsRGlyT2Zmc2V0
K3RoaXMuY2VudHJhbERpclNpemU7dGhpcy56aXA2NCYmKGQrPTIwLGQrPTEyK3RoaXMuemlwNjRF
bmRPZkNlbnRyYWxTaXplKTt2YXIgZT1jLWQ7aWYoZT4wKXRoaXMuaXNTaWduYXR1cmUoYyxnLkNF
TlRSQUxfRklMRV9IRUFERVIpfHwodGhpcy5yZWFkZXIuemVybz1lKTtlbHNlIGlmKGU8MCl0aHJv
dyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXA6IG1pc3NpbmcgIitNYXRoLmFicyhlKSsiIGJ5dGVz
LiIpfSxwcmVwYXJlUmVhZGVyOmZ1bmN0aW9uKGEpe3RoaXMucmVhZGVyPWUoYSl9LGxvYWQ6ZnVu
Y3Rpb24oYSl7dGhpcy5wcmVwYXJlUmVhZGVyKGEpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRo
aXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxiLmV4cG9ydHM9ZH0s
eyIuL3JlYWRlci9yZWFkZXJGb3IiOjIyLCIuL3NpZ25hdHVyZSI6MjMsIi4vc3VwcG9ydCI6MzAs
Ii4vdXRmOCI6MzEsIi4vdXRpbHMiOjMyLCIuL3ppcEVudHJ5IjozNH1dLDM0OltmdW5jdGlvbihh
LGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXt0aGlzLm9wdGlvbnM9YSx0aGlzLmxv
YWRPcHRpb25zPWJ9dmFyIGU9YSgiLi9yZWFkZXIvcmVhZGVyRm9yIiksZj1hKCIuL3V0aWxzIiks
Zz1hKCIuL2NvbXByZXNzZWRPYmplY3QiKSxoPWEoIi4vY3JjMzIiKSxpPWEoIi4vdXRmOCIpLGo9
YSgiLi9jb21wcmVzc2lvbnMiKSxrPWEoIi4vc3VwcG9ydCIpLGw9MCxtPTMsbj1mdW5jdGlvbihh
KXtmb3IodmFyIGIgaW4gailpZihqLmhhc093blByb3BlcnR5KGIpJiZqW2JdLm1hZ2ljPT09YSly
ZXR1cm4galtiXTtyZXR1cm4gbnVsbH07ZC5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9u
KCl7cmV0dXJuIDE9PT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJu
IDIwNDg9PT0oMjA0OCZ0aGlzLmJpdEZsYWcpfSxyZWFkTG9jYWxQYXJ0OmZ1bmN0aW9uKGEpe3Zh
ciBiLGM7aWYoYS5za2lwKDIyKSx0aGlzLmZpbGVOYW1lTGVuZ3RoPWEucmVhZEludCgyKSxjPWEu
cmVhZEludCgyKSx0aGlzLmZpbGVOYW1lPWEucmVhZERhdGEodGhpcy5maWxlTmFtZUxlbmd0aCks
YS5za2lwKGMpLHRoaXMuY29tcHJlc3NlZFNpemU9PT0tMXx8dGhpcy51bmNvbXByZXNzZWRTaXpl
PT09LTEpdGhyb3cgbmV3IEVycm9yKCJCdWcgb3IgY29ycnVwdGVkIHppcCA6IGRpZG4ndCBnZXQg
ZW5vdWdoIGluZm9ybWF0aW9ucyBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeSAoY29tcHJlc3Nl
ZFNpemUgPT09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT09IC0xKSIpO2lmKGI9bih0aGlzLmNv
bXByZXNzaW9uTWV0aG9kKSxudWxsPT09Yil0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAg
OiBjb21wcmVzc2lvbiAiK2YucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93
biAoaW5uZXIgZmlsZSA6ICIrZi50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmZpbGVOYW1lKSsi
KSIpO3RoaXMuZGVjb21wcmVzc2VkPW5ldyBnKHRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy51bmNv
bXByZXNzZWRTaXplLHRoaXMuY3JjMzIsYixhLnJlYWREYXRhKHRoaXMuY29tcHJlc3NlZFNpemUp
KX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKGEpe3RoaXMudmVyc2lvbk1hZGVCeT1hLnJlYWRJ
bnQoMiksYS5za2lwKDIpLHRoaXMuYml0RmxhZz1hLnJlYWRJbnQoMiksdGhpcy5jb21wcmVzc2lv
bk1ldGhvZD1hLnJlYWRTdHJpbmcoMiksdGhpcy5kYXRlPWEucmVhZERhdGUoKSx0aGlzLmNyYzMy
PWEucmVhZEludCg0KSx0aGlzLmNvbXByZXNzZWRTaXplPWEucmVhZEludCg0KSx0aGlzLnVuY29t
cHJlc3NlZFNpemU9YS5yZWFkSW50KDQpO3ZhciBiPWEucmVhZEludCgyKTtpZih0aGlzLmV4dHJh
RmllbGRzTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPWEucmVhZElu
dCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVB
dHRyaWJ1dGVzPWEucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFk
SW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9YS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0
ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTth
LnNraXAoYiksdGhpcy5yZWFkRXh0cmFGaWVsZHMoYSksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVs
ZChhKSx0aGlzLmZpbGVDb21tZW50PWEucmVhZERhdGEodGhpcy5maWxlQ29tbWVudExlbmd0aCl9
LHByb2Nlc3NBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dGhpcy51bml4UGVybWlzc2lvbnM9bnVsbCx0
aGlzLmRvc1Blcm1pc3Npb25zPW51bGw7dmFyIGE9dGhpcy52ZXJzaW9uTWFkZUJ5Pj44O3RoaXMu
ZGlyPSEhKDE2JnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksYT09PWwmJih0aGlzLmRvc1Bl
cm1pc3Npb25zPTYzJnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksYT09PW0mJih0aGlzLnVu
aXhQZXJtaXNzaW9ucz10aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM+PjE2JjY1NTM1KSx0aGlz
LmRpcnx8Ii8iIT09dGhpcy5maWxlTmFtZVN0ci5zbGljZSgtMSl8fCh0aGlzLmRpcj0hMCl9LHBh
cnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKGEpe2lmKHRoaXMuZXh0cmFGaWVsZHNbMV0pe3Zh
ciBiPWUodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09
Zi5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPWIucmVhZEludCg4KSks
dGhpcy5jb21wcmVzc2VkU2l6ZT09PWYuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3Nl
ZFNpemU9Yi5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09Zi5NQVhfVkFMVUVf
MzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1iLnJlYWRJbnQoOCkpLHRoaXMuZGlza051
bWJlclN0YXJ0PT09Zi5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9Yi5y
ZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLmlu
ZGV4K3RoaXMuZXh0cmFGaWVsZHNMZW5ndGg7Zm9yKHRoaXMuZXh0cmFGaWVsZHN8fCh0aGlzLmV4
dHJhRmllbGRzPXt9KTthLmluZGV4PGU7KWI9YS5yZWFkSW50KDIpLGM9YS5yZWFkSW50KDIpLGQ9
YS5yZWFkRGF0YShjKSx0aGlzLmV4dHJhRmllbGRzW2JdPXtpZDpiLGxlbmd0aDpjLHZhbHVlOmR9
fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7dmFyIGE9ay51aW50OGFycmF5PyJ1aW50OGFycmF5Ijoi
YXJyYXkiO2lmKHRoaXMudXNlVVRGOCgpKXRoaXMuZmlsZU5hbWVTdHI9aS51dGY4ZGVjb2RlKHRo
aXMuZmlsZU5hbWUpLHRoaXMuZmlsZUNvbW1lbnRTdHI9aS51dGY4ZGVjb2RlKHRoaXMuZmlsZUNv
bW1lbnQpO2Vsc2V7dmFyIGI9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoKCk7aWYobnVs
bCE9PWIpdGhpcy5maWxlTmFtZVN0cj1iO2Vsc2V7dmFyIGM9Zi50cmFuc2Zvcm1UbyhhLHRoaXMu
ZmlsZU5hbWUpO3RoaXMuZmlsZU5hbWVTdHI9dGhpcy5sb2FkT3B0aW9ucy5kZWNvZGVGaWxlTmFt
ZShjKX12YXIgZD10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtpZihudWxsIT09
ZCl0aGlzLmZpbGVDb21tZW50U3RyPWQ7ZWxzZXt2YXIgZT1mLnRyYW5zZm9ybVRvKGEsdGhpcy5m
aWxlQ29tbWVudCk7dGhpcy5maWxlQ29tbWVudFN0cj10aGlzLmxvYWRPcHRpb25zLmRlY29kZUZp
bGVOYW1lKGUpfX19LGZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGg6ZnVuY3Rpb24oKXt2YXIgYT10
aGlzLmV4dHJhRmllbGRzWzI4Nzg5XTtpZihhKXt2YXIgYj1lKGEudmFsdWUpO3JldHVybiAxIT09
Yi5yZWFkSW50KDEpP251bGw6aCh0aGlzLmZpbGVOYW1lKSE9PWIucmVhZEludCg0KT9udWxsOmku
dXRmOGRlY29kZShiLnJlYWREYXRhKGEubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH0sZmluZEV4dHJh
RmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjU0
NjFdO2lmKGEpe3ZhciBiPWUoYS52YWx1ZSk7cmV0dXJuIDEhPT1iLnJlYWRJbnQoMSk/bnVsbDpo
KHRoaXMuZmlsZUNvbW1lbnQpIT09Yi5yZWFkSW50KDQpP251bGw6aS51dGY4ZGVjb2RlKGIucmVh
ZERhdGEoYS5sZW5ndGgtNSkpfXJldHVybiBudWxsfX0sYi5leHBvcnRzPWR9LHsiLi9jb21wcmVz
c2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9yZWFkZXIvcmVh
ZGVyRm9yIjoyMiwiLi9zdXBwb3J0IjozMCwiLi91dGY4IjozMSwiLi91dGlscyI6MzJ9XSwzNTpb
ZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1hKCIuL3N0cmVhbS9TdHJlYW1IZWxw
ZXIiKSxlPWEoIi4vc3RyZWFtL0RhdGFXb3JrZXIiKSxmPWEoIi4vdXRmOCIpLGc9YSgiLi9jb21w
cmVzc2VkT2JqZWN0IiksaD1hKCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIiksaT1mdW5jdGlvbihh
LGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5kaXI9Yy5kaXIsdGhpcy5kYXRlPWMuZGF0ZSx0aGlzLmNv
bW1lbnQ9Yy5jb21tZW50LHRoaXMudW5peFBlcm1pc3Npb25zPWMudW5peFBlcm1pc3Npb25zLHRo
aXMuZG9zUGVybWlzc2lvbnM9Yy5kb3NQZXJtaXNzaW9ucyx0aGlzLl9kYXRhPWIsdGhpcy5fZGF0
YUJpbmFyeT1jLmJpbmFyeSx0aGlzLm9wdGlvbnM9e2NvbXByZXNzaW9uOmMuY29tcHJlc3Npb24s
Y29tcHJlc3Npb25PcHRpb25zOmMuY29tcHJlc3Npb25PcHRpb25zfX07aS5wcm90b3R5cGU9e2lu
dGVybmFsU3RyZWFtOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGwsYz0ic3RyaW5nIjt0cnl7aWYoIWEp
dGhyb3cgbmV3IEVycm9yKCJObyBvdXRwdXQgdHlwZSBzcGVjaWZpZWQuIik7Yz1hLnRvTG93ZXJD
YXNlKCk7dmFyIGU9InN0cmluZyI9PT1jfHwidGV4dCI9PT1jOyJiaW5hcnlzdHJpbmciIT09YyYm
InRleHQiIT09Y3x8KGM9InN0cmluZyIpLGI9dGhpcy5fZGVjb21wcmVzc1dvcmtlcigpO3ZhciBn
PSF0aGlzLl9kYXRhQmluYXJ5O2cmJiFlJiYoYj1iLnBpcGUobmV3IGYuVXRmOEVuY29kZVdvcmtl
cikpLCFnJiZlJiYoYj1iLnBpcGUobmV3IGYuVXRmOERlY29kZVdvcmtlcikpfWNhdGNoKGkpe2I9
bmV3IGgoImVycm9yIiksYi5lcnJvcihpKX1yZXR1cm4gbmV3IGQoYixjLCIiKX0sYXN5bmM6ZnVu
Y3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pbnRlcm5hbFN0cmVhbShhKS5hY2N1bXVsYXRlKGIpfSxu
b2RlU3RyZWFtOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaW50ZXJuYWxTdHJlYW0oYXx8Im5v
ZGVidWZmZXIiKS50b05vZGVqc1N0cmVhbShiKX0sX2NvbXByZXNzV29ya2VyOmZ1bmN0aW9uKGEs
Yil7aWYodGhpcy5fZGF0YSBpbnN0YW5jZW9mIGcmJnRoaXMuX2RhdGEuY29tcHJlc3Npb24ubWFn
aWM9PT1hLm1hZ2ljKXJldHVybiB0aGlzLl9kYXRhLmdldENvbXByZXNzZWRXb3JrZXIoKTt2YXIg
Yz10aGlzLl9kZWNvbXByZXNzV29ya2VyKCk7cmV0dXJuIHRoaXMuX2RhdGFCaW5hcnl8fChjPWMu
cGlwZShuZXcgZi5VdGY4RW5jb2RlV29ya2VyKSksZy5jcmVhdGVXb3JrZXJGcm9tKGMsYSxiKX0s
X2RlY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YSBpbnN0YW5jZW9m
IGc/dGhpcy5fZGF0YS5nZXRDb250ZW50V29ya2VyKCk6dGhpcy5fZGF0YSBpbnN0YW5jZW9mIGg/
dGhpcy5fZGF0YTpuZXcgZSh0aGlzLl9kYXRhKX19O2Zvcih2YXIgaj1bImFzVGV4dCIsImFzQmlu
YXJ5IiwiYXNOb2RlQnVmZmVyIiwiYXNVaW50OEFycmF5IiwiYXNBcnJheUJ1ZmZlciJdLGs9ZnVu
Y3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIGhhcyBiZWVuIHJlbW92ZWQgaW4g
SlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuIil9LGw9MDtsPGoubGVu
Z3RoO2wrKylpLnByb3RvdHlwZVtqW2xdXT1rO2IuZXhwb3J0cz1pfSx7Ii4vY29tcHJlc3NlZE9i
amVjdCI6MiwiLi9zdHJlYW0vRGF0YVdvcmtlciI6MjcsIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIi
OjI4LCIuL3N0cmVhbS9TdHJlYW1IZWxwZXIiOjI5LCIuL3V0ZjgiOjMxfV0sMzY6W2Z1bmN0aW9u
KGEsYixjKXthKCIuLi9tb2R1bGVzL3dlYi5pbW1lZGlhdGUiKSxiLmV4cG9ydHM9YSgiLi4vbW9k
dWxlcy9fY29yZSIpLnNldEltbWVkaWF0ZX0seyIuLi9tb2R1bGVzL19jb3JlIjo0MCwiLi4vbW9k
dWxlcy93ZWIuaW1tZWRpYXRlIjo1Nn1dLDM3OltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPWZ1
bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXRocm93IFR5cGVFcnJvcihhKyIgaXMg
bm90IGEgZnVuY3Rpb24hIik7cmV0dXJuIGF9fSx7fV0sMzg6W2Z1bmN0aW9uKGEsYixjKXt2YXIg
ZD1hKCIuL19pcy1vYmplY3QiKTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSl7aWYoIWQoYSkpdGhyb3cg
VHlwZUVycm9yKGErIiBpcyBub3QgYW4gb2JqZWN0ISIpO3JldHVybiBhfX0seyIuL19pcy1vYmpl
Y3QiOjUxfV0sMzk6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZD17fS50b1N0cmluZztiLmV4cG9ydHM9
ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY2FsbChhKS5zbGljZSg4LC0xKX19LHt9XSw0MDpbZnVuY3Rp
b24oYSxiLGMpe3ZhciBkPWIuZXhwb3J0cz17dmVyc2lvbjoiMi4zLjAifTsibnVtYmVyIj09dHlw
ZW9mIF9fZSYmKF9fZT1kKX0se31dLDQxOltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9fYS1m
dW5jdGlvbiIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIsYyl7aWYoZChhKSx2b2lkIDA9PT1iKXJl
dHVybiBhO3N3aXRjaChjKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwo
YixjKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihjLGQpe3JldHVybiBhLmNhbGwoYixjLGQpfTtj
YXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4gYS5jYWxsKGIsYyxkLGUpfX1yZXR1
cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShiLGFyZ3VtZW50cyl9fX0seyIuL19hLWZ1bmN0
aW9uIjozN31dLDQyOltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPSFhKCIuL19mYWlscyIpKGZ1
bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiYSIse2dldDpmdW5j
dGlvbigpe3JldHVybiA3fX0pLmF9KX0seyIuL19mYWlscyI6NDV9XSw0MzpbZnVuY3Rpb24oYSxi
LGMpe3ZhciBkPWEoIi4vX2lzLW9iamVjdCIpLGU9YSgiLi9fZ2xvYmFsIikuZG9jdW1lbnQsZj1k
KGUpJiZkKGUuY3JlYXRlRWxlbWVudCk7Yi5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiBmP2Uu
Y3JlYXRlRWxlbWVudChhKTp7fX19LHsiLi9fZ2xvYmFsIjo0NiwiLi9faXMtb2JqZWN0Ijo1MX1d
LDQ0OltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9fZ2xvYmFsIiksZT1hKCIuL19jb3JlIiks
Zj1hKCIuL19jdHgiKSxnPWEoIi4vX2hpZGUiKSxoPSJwcm90b3R5cGUiLGk9ZnVuY3Rpb24oYSxi
LGMpe3ZhciBqLGssbCxtPWEmaS5GLG49YSZpLkcsbz1hJmkuUyxwPWEmaS5QLHE9YSZpLkIscj1h
JmkuVyxzPW4/ZTplW2JdfHwoZVtiXT17fSksdD1zW2hdLHU9bj9kOm8/ZFtiXTooZFtiXXx8e30p
W2hdO24mJihjPWIpO2ZvcihqIGluIGMpaz0hbSYmdSYmdm9pZCAwIT09dVtqXSxrJiZqIGluIHN8
fChsPWs/dVtqXTpjW2pdLHNbal09biYmImZ1bmN0aW9uIiE9dHlwZW9mIHVbal0/Y1tqXTpxJiZr
P2YobCxkKTpyJiZ1W2pdPT1sP2Z1bmN0aW9uKGEpe3ZhciBiPWZ1bmN0aW9uKGIsYyxkKXtpZih0
aGlzIGluc3RhbmNlb2YgYSl7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4g
bmV3IGE7Y2FzZSAxOnJldHVybiBuZXcgYShiKTtjYXNlIDI6cmV0dXJuIG5ldyBhKGIsYyl9cmV0
dXJuIG5ldyBhKGIsYyxkKX1yZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBi
W2hdPWFbaF0sYn0obCk6cCYmImZ1bmN0aW9uIj09dHlwZW9mIGw/ZihGdW5jdGlvbi5jYWxsLGwp
OmwscCYmKChzLnZpcnR1YWx8fChzLnZpcnR1YWw9e30pKVtqXT1sLGEmaS5SJiZ0JiYhdFtqXSYm
Zyh0LGosbCkpKX07aS5GPTEsaS5HPTIsaS5TPTQsaS5QPTgsaS5CPTE2LGkuVz0zMixpLlU9NjQs
aS5SPTEyOCxiLmV4cG9ydHM9aX0seyIuL19jb3JlIjo0MCwiLi9fY3R4Ijo0MSwiLi9fZ2xvYmFs
Ijo0NiwiLi9faGlkZSI6NDd9XSw0NTpbZnVuY3Rpb24oYSxiLGMpe2IuZXhwb3J0cz1mdW5jdGlv
bihhKXt0cnl7cmV0dXJuISFhKCl9Y2F0Y2goYil7cmV0dXJuITB9fX0se31dLDQ2OltmdW5jdGlv
bihhLGIsYyl7dmFyIGQ9Yi5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5k
b3cuTWF0aD09TWF0aD93aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmLk1hdGg9
PU1hdGg/c2VsZjpGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpOyJudW1iZXIiPT10eXBlb2YgX19n
JiYoX19nPWQpfSx7fV0sNDc6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZD1hKCIuL19vYmplY3QtZHAi
KSxlPWEoIi4vX3Byb3BlcnR5LWRlc2MiKTtiLmV4cG9ydHM9YSgiLi9fZGVzY3JpcHRvcnMiKT9m
dW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuZihhLGIsZSgxLGMpKX06ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBhW2JdPWMsYX19LHsiLi9fZGVzY3JpcHRvcnMiOjQyLCIuL19vYmplY3QtZHAiOjUyLCIu
L19wcm9wZXJ0eS1kZXNjIjo1M31dLDQ4OltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPWEoIi4v
X2dsb2JhbCIpLmRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9LHsiLi9fZ2xvYmFs
Ijo0Nn1dLDQ5OltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPSFhKCIuL19kZXNjcmlwdG9ycyIp
JiYhYSgiLi9fZmFpbHMiKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVy
dHkoYSgiLi9fZG9tLWNyZWF0ZSIpKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3
fX0pLmF9KX0seyIuL19kZXNjcmlwdG9ycyI6NDIsIi4vX2RvbS1jcmVhdGUiOjQzLCIuL19mYWls
cyI6NDV9XSw1MDpbZnVuY3Rpb24oYSxiLGMpe2IuZXhwb3J0cz1mdW5jdGlvbihhLGIsYyl7dmFy
IGQ9dm9pZCAwPT09Yztzd2l0Y2goYi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gZD9hKCk6YS5jYWxs
KGMpO2Nhc2UgMTpyZXR1cm4gZD9hKGJbMF0pOmEuY2FsbChjLGJbMF0pO2Nhc2UgMjpyZXR1cm4g
ZD9hKGJbMF0sYlsxXSk6YS5jYWxsKGMsYlswXSxiWzFdKTtjYXNlIDM6cmV0dXJuIGQ/YShiWzBd
LGJbMV0sYlsyXSk6YS5jYWxsKGMsYlswXSxiWzFdLGJbMl0pO2Nhc2UgNDpyZXR1cm4gZD9hKGJb
MF0sYlsxXSxiWzJdLGJbM10pOmEuY2FsbChjLGJbMF0sYlsxXSxiWzJdLGJbM10pfXJldHVybiBh
LmFwcGx5KGMsYil9fSx7fV0sNTE6W2Z1bmN0aW9uKGEsYixjKXtiLmV4cG9ydHM9ZnVuY3Rpb24o
YSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP251bGwhPT1hOiJmdW5jdGlvbiI9PXR5cGVvZiBh
fX0se31dLDUyOltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9fYW4tb2JqZWN0IiksZT1hKCIu
L19pZTgtZG9tLWRlZmluZSIpLGY9YSgiLi9fdG8tcHJpbWl0aXZlIiksZz1PYmplY3QuZGVmaW5l
UHJvcGVydHk7Yy5mPWEoIi4vX2Rlc2NyaXB0b3JzIik/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1
bmN0aW9uKGEsYixjKXtpZihkKGEpLGI9ZihiLCEwKSxkKGMpLGUpdHJ5e3JldHVybiBnKGEsYixj
KX1jYXRjaChoKXt9aWYoImdldCJpbiBjfHwic2V0ImluIGMpdGhyb3cgVHlwZUVycm9yKCJBY2Nl
c3NvcnMgbm90IHN1cHBvcnRlZCEiKTtyZXR1cm4idmFsdWUiaW4gYyYmKGFbYl09Yy52YWx1ZSks
YX19LHsiLi9fYW4tb2JqZWN0IjozOCwiLi9fZGVzY3JpcHRvcnMiOjQyLCIuL19pZTgtZG9tLWRl
ZmluZSI6NDksIi4vX3RvLXByaW1pdGl2ZSI6NTV9XSw1MzpbZnVuY3Rpb24oYSxiLGMpe2IuZXhw
b3J0cz1mdW5jdGlvbihhLGIpe3JldHVybntlbnVtZXJhYmxlOiEoMSZhKSxjb25maWd1cmFibGU6
ISgyJmEpLHdyaXRhYmxlOiEoNCZhKSx2YWx1ZTpifX19LHt9XSw1NDpbZnVuY3Rpb24oYSxiLGMp
e3ZhciBkLGUsZixnPWEoIi4vX2N0eCIpLGg9YSgiLi9faW52b2tlIiksaT1hKCIuL19odG1sIiks
aj1hKCIuL19kb20tY3JlYXRlIiksaz1hKCIuL19nbG9iYWwiKSxsPWsucHJvY2VzcyxtPWsuc2V0
SW1tZWRpYXRlLG49ay5jbGVhckltbWVkaWF0ZSxvPWsuTWVzc2FnZUNoYW5uZWwscD0wLHE9e30s
cj0ib25yZWFkeXN0YXRlY2hhbmdlIixzPWZ1bmN0aW9uKCl7dmFyIGE9K3RoaXM7aWYocS5oYXNP
d25Qcm9wZXJ0eShhKSl7dmFyIGI9cVthXTtkZWxldGUgcVthXSxiKCl9fSx0PWZ1bmN0aW9uKGEp
e3MuY2FsbChhLmRhdGEpfTttJiZufHwobT1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0xO2Fy
Z3VtZW50cy5sZW5ndGg+YzspYi5wdXNoKGFyZ3VtZW50c1tjKytdKTtyZXR1cm4gcVsrK3BdPWZ1
bmN0aW9uKCl7aCgiZnVuY3Rpb24iPT10eXBlb2YgYT9hOkZ1bmN0aW9uKGEpLGIpfSxkKHApLHB9
LG49ZnVuY3Rpb24oYSl7ZGVsZXRlIHFbYV19LCJwcm9jZXNzIj09YSgiLi9fY29mIikobCk/ZD1m
dW5jdGlvbihhKXtsLm5leHRUaWNrKGcocyxhLDEpKX06bz8oZT1uZXcgbyxmPWUucG9ydDIsZS5w
b3J0MS5vbm1lc3NhZ2U9dCxkPWcoZi5wb3N0TWVzc2FnZSxmLDEpKTprLmFkZEV2ZW50TGlzdGVu
ZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBwb3N0TWVzc2FnZSYmIWsuaW1wb3J0U2NyaXB0cz8oZD1m
dW5jdGlvbihhKXtrLnBvc3RNZXNzYWdlKGErIiIsIioiKX0say5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIix0LCExKSk6ZD1yIGluIGooInNjcmlwdCIpP2Z1bmN0aW9uKGEpe2kuYXBwZW5kQ2hp
bGQoaigic2NyaXB0IikpW3JdPWZ1bmN0aW9uKCl7aS5yZW1vdmVDaGlsZCh0aGlzKSxzLmNhbGwo
YSl9fTpmdW5jdGlvbihhKXtzZXRUaW1lb3V0KGcocyxhLDEpLDApfSksYi5leHBvcnRzPXtzZXQ6
bSxjbGVhcjpufX0seyIuL19jb2YiOjM5LCIuL19jdHgiOjQxLCIuL19kb20tY3JlYXRlIjo0Mywi
Li9fZ2xvYmFsIjo0NiwiLi9faHRtbCI6NDgsIi4vX2ludm9rZSI6NTB9XSw1NTpbZnVuY3Rpb24o
YSxiLGMpe3ZhciBkPWEoIi4vX2lzLW9iamVjdCIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lm
KCFkKGEpKXJldHVybiBhO3ZhciBjLGU7aWYoYiYmImZ1bmN0aW9uIj09dHlwZW9mKGM9YS50b1N0
cmluZykmJiFkKGU9Yy5jYWxsKGEpKSlyZXR1cm4gZTtpZigiZnVuY3Rpb24iPT10eXBlb2YoYz1h
LnZhbHVlT2YpJiYhZChlPWMuY2FsbChhKSkpcmV0dXJuIGU7aWYoIWImJiJmdW5jdGlvbiI9PXR5
cGVvZihjPWEudG9TdHJpbmcpJiYhZChlPWMuY2FsbChhKSkpcmV0dXJuIGU7dGhyb3cgVHlwZUVy
cm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LHsiLi9faXMt
b2JqZWN0Ijo1MX1dLDU2OltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9fZXhwb3J0IiksZT1h
KCIuL190YXNrIik7ZChkLkcrZC5CLHtzZXRJbW1lZGlhdGU6ZS5zZXQsY2xlYXJJbW1lZGlhdGU6
ZS5jbGVhcn0pfSx7Ii4vX2V4cG9ydCI6NDQsIi4vX3Rhc2siOjU0fV0sNTc6W2Z1bmN0aW9uKGEs
YixjKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXtrPSEwO2Zvcih2YXIg
YSxiLGM9bC5sZW5ndGg7Yzspe2ZvcihiPWwsbD1bXSxhPS0xOysrYTxjOyliW2FdKCk7Yz1sLmxl
bmd0aH1rPSExfWZ1bmN0aW9uIGQoYSl7MSE9PWwucHVzaChhKXx8a3x8ZSgpfXZhciBlLGY9YS5N
dXRhdGlvbk9ic2VydmVyfHxhLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7aWYoZil7dmFyIGc9MCxo
PW5ldyBmKGMpLGk9YS5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik7aC5vYnNlcnZlKGkse2No
YXJhY3RlckRhdGE6ITB9KSxlPWZ1bmN0aW9uKCl7aS5kYXRhPWc9KytnJTJ9fWVsc2UgaWYoYS5z
ZXRJbW1lZGlhdGV8fCJ1bmRlZmluZWQiPT10eXBlb2YgYS5NZXNzYWdlQ2hhbm5lbCllPSJkb2N1
bWVudCJpbiBhJiYib25yZWFkeXN0YXRlY2hhbmdlImluIGEuZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik/ZnVuY3Rpb24oKXt2YXIgYj1hLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpO2Iub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7YygpLGIub25yZWFkeXN0YXRl
Y2hhbmdlPW51bGwsYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH0sYS5kb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoYil9OmZ1bmN0aW9uKCl7c2V0VGltZW91dChj
LDApfTtlbHNle3ZhciBqPW5ldyBhLk1lc3NhZ2VDaGFubmVsO2oucG9ydDEub25tZXNzYWdlPWMs
ZT1mdW5jdGlvbigpe2oucG9ydDIucG9zdE1lc3NhZ2UoMCl9fXZhciBrLGw9W107Yi5leHBvcnRz
PWR9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmlu
ZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7
fSl9LHt9XSw1ODpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKCl7fWZ1
bmN0aW9uIGUoYSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigi
cmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dGhpcy5zdGF0ZT1zLHRoaXMucXVldWU9W10s
dGhpcy5vdXRjb21lPXZvaWQgMCxhIT09ZCYmaSh0aGlzLGEpfWZ1bmN0aW9uIGYoYSxiLGMpe3Ro
aXMucHJvbWlzZT1hLCJmdW5jdGlvbiI9PXR5cGVvZiBiJiYodGhpcy5vbkZ1bGZpbGxlZD1iLHRo
aXMuY2FsbEZ1bGZpbGxlZD10aGlzLm90aGVyQ2FsbEZ1bGZpbGxlZCksImZ1bmN0aW9uIj09dHlw
ZW9mIGMmJih0aGlzLm9uUmVqZWN0ZWQ9Yyx0aGlzLmNhbGxSZWplY3RlZD10aGlzLm90aGVyQ2Fs
bFJlamVjdGVkKX1mdW5jdGlvbiBnKGEsYixjKXtvKGZ1bmN0aW9uKCl7dmFyIGQ7dHJ5e2Q9Yihj
KX1jYXRjaChlKXtyZXR1cm4gcC5yZWplY3QoYSxlKX1kPT09YT9wLnJlamVjdChhLG5ldyBUeXBl
RXJyb3IoIkNhbm5vdCByZXNvbHZlIHByb21pc2Ugd2l0aCBpdHNlbGYiKSk6cC5yZXNvbHZlKGEs
ZCl9KX1mdW5jdGlvbiBoKGEpe3ZhciBiPWEmJmEudGhlbjtpZihhJiYoIm9iamVjdCI9PXR5cGVv
ZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBiKXJldHVybiBm
dW5jdGlvbigpe2IuYXBwbHkoYSxhcmd1bWVudHMpfX1mdW5jdGlvbiBpKGEsYil7ZnVuY3Rpb24g
YyhiKXtmfHwoZj0hMCxwLnJlamVjdChhLGIpKX1mdW5jdGlvbiBkKGIpe2Z8fChmPSEwLHAucmVz
b2x2ZShhLGIpKX1mdW5jdGlvbiBlKCl7YihkLGMpfXZhciBmPSExLGc9aihlKTsiZXJyb3IiPT09
Zy5zdGF0dXMmJmMoZy52YWx1ZSl9ZnVuY3Rpb24gaihhLGIpe3ZhciBjPXt9O3RyeXtjLnZhbHVl
PWEoYiksYy5zdGF0dXM9InN1Y2Nlc3MifWNhdGNoKGQpe2Muc3RhdHVzPSJlcnJvciIsYy52YWx1
ZT1kfXJldHVybiBjfWZ1bmN0aW9uIGsoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiB0aGlzP2E6cC5y
ZXNvbHZlKG5ldyB0aGlzKGQpLGEpfWZ1bmN0aW9uIGwoYSl7dmFyIGI9bmV3IHRoaXMoZCk7cmV0
dXJuIHAucmVqZWN0KGIsYSl9ZnVuY3Rpb24gbShhKXtmdW5jdGlvbiBiKGEsYil7ZnVuY3Rpb24g
ZChhKXtnW2JdPWEsKytoIT09ZXx8Znx8KGY9ITAscC5yZXNvbHZlKGosZykpfWMucmVzb2x2ZShh
KS50aGVuKGQsZnVuY3Rpb24oYSl7Znx8KGY9ITAscC5yZWplY3QoaixhKSl9KX12YXIgYz10aGlz
O2lmKCJbb2JqZWN0IEFycmF5XSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkp
cmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoIm11c3QgYmUgYW4gYXJyYXkiKSk7dmFy
IGU9YS5sZW5ndGgsZj0hMTtpZighZSlyZXR1cm4gdGhpcy5yZXNvbHZlKFtdKTtmb3IodmFyIGc9
bmV3IEFycmF5KGUpLGg9MCxpPS0xLGo9bmV3IHRoaXMoZCk7KytpPGU7KWIoYVtpXSxpKTtyZXR1
cm4gan1mdW5jdGlvbiBuKGEpe2Z1bmN0aW9uIGIoYSl7Yy5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rp
b24oYSl7Znx8KGY9ITAscC5yZXNvbHZlKGgsYSkpfSxmdW5jdGlvbihhKXtmfHwoZj0hMCxwLnJl
amVjdChoLGEpKX0pfXZhciBjPXRoaXM7aWYoIltvYmplY3QgQXJyYXldIiE9PU9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChhKSlyZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5cGVFcnJvcigi
bXVzdCBiZSBhbiBhcnJheSIpKTt2YXIgZT1hLmxlbmd0aCxmPSExO2lmKCFlKXJldHVybiB0aGlz
LnJlc29sdmUoW10pO2Zvcih2YXIgZz0tMSxoPW5ldyB0aGlzKGQpOysrZzxlOyliKGFbZ10pO3Jl
dHVybiBofXZhciBvPWEoImltbWVkaWF0ZSIpLHA9e30scT1bIlJFSkVDVEVEIl0scj1bIkZVTEZJ
TExFRCJdLHM9WyJQRU5ESU5HIl07Yi5leHBvcnRzPWUsZS5wcm90b3R5cGVbImNhdGNoIl09ZnVu
Y3Rpb24oYSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGEpfSxlLnByb3RvdHlwZS50aGVuPWZ1bmN0
aW9uKGEsYil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGEmJnRoaXMuc3RhdGU9PT1yfHwiZnVuY3Rp
b24iIT10eXBlb2YgYiYmdGhpcy5zdGF0ZT09PXEpcmV0dXJuIHRoaXM7dmFyIGM9bmV3IHRoaXMu
Y29uc3RydWN0b3IoZCk7aWYodGhpcy5zdGF0ZSE9PXMpe3ZhciBlPXRoaXMuc3RhdGU9PT1yP2E6
YjtnKGMsZSx0aGlzLm91dGNvbWUpfWVsc2UgdGhpcy5xdWV1ZS5wdXNoKG5ldyBmKGMsYSxiKSk7
cmV0dXJuIGN9LGYucHJvdG90eXBlLmNhbGxGdWxmaWxsZWQ9ZnVuY3Rpb24oYSl7cC5yZXNvbHZl
KHRoaXMucHJvbWlzZSxhKX0sZi5wcm90b3R5cGUub3RoZXJDYWxsRnVsZmlsbGVkPWZ1bmN0aW9u
KGEpe2codGhpcy5wcm9taXNlLHRoaXMub25GdWxmaWxsZWQsYSl9LGYucHJvdG90eXBlLmNhbGxS
ZWplY3RlZD1mdW5jdGlvbihhKXtwLnJlamVjdCh0aGlzLnByb21pc2UsYSl9LGYucHJvdG90eXBl
Lm90aGVyQ2FsbFJlamVjdGVkPWZ1bmN0aW9uKGEpe2codGhpcy5wcm9taXNlLHRoaXMub25SZWpl
Y3RlZCxhKX0scC5yZXNvbHZlPWZ1bmN0aW9uKGEsYil7dmFyIGM9aihoLGIpO2lmKCJlcnJvciI9
PT1jLnN0YXR1cylyZXR1cm4gcC5yZWplY3QoYSxjLnZhbHVlKTt2YXIgZD1jLnZhbHVlO2lmKGQp
aShhLGQpO2Vsc2V7YS5zdGF0ZT1yLGEub3V0Y29tZT1iO2Zvcih2YXIgZT0tMSxmPWEucXVldWUu
bGVuZ3RoOysrZTxmOylhLnF1ZXVlW2VdLmNhbGxGdWxmaWxsZWQoYil9cmV0dXJuIGF9LHAucmVq
ZWN0PWZ1bmN0aW9uKGEsYil7YS5zdGF0ZT1xLGEub3V0Y29tZT1iO2Zvcih2YXIgYz0tMSxkPWEu
cXVldWUubGVuZ3RoOysrYzxkOylhLnF1ZXVlW2NdLmNhbGxSZWplY3RlZChiKTtyZXR1cm4gYX0s
ZS5yZXNvbHZlPWssZS5yZWplY3Q9bCxlLmFsbD1tLGUucmFjZT1ufSx7aW1tZWRpYXRlOjU3fV0s
NTk6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9YSgiLi9saWIvdXRpbHMvY29t
bW9uIikuYXNzaWduLGU9YSgiLi9saWIvZGVmbGF0ZSIpLGY9YSgiLi9saWIvaW5mbGF0ZSIpLGc9
YSgiLi9saWIvemxpYi9jb25zdGFudHMiKSxoPXt9O2QoaCxlLGYsZyksYi5leHBvcnRzPWh9LHsi
Li9saWIvZGVmbGF0ZSI6NjAsIi4vbGliL2luZmxhdGUiOjYxLCIuL2xpYi91dGlscy9jb21tb24i
OjYyLCIuL2xpYi96bGliL2NvbnN0YW50cyI6NjV9XSw2MDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ug
c3RyaWN0IjtmdW5jdGlvbiBkKGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQpKXJldHVybiBuZXcg
ZChhKTt0aGlzLm9wdGlvbnM9aS5hc3NpZ24oe2xldmVsOnMsbWV0aG9kOnUsY2h1bmtTaXplOjE2
Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTp0LHRvOiIifSxhfHx7fSk7dmFy
IGI9dGhpcy5vcHRpb25zO2IucmF3JiZiLndpbmRvd0JpdHM+MD9iLndpbmRvd0JpdHM9LWIud2lu
ZG93Qml0czpiLmd6aXAmJmIud2luZG93Qml0cz4wJiZiLndpbmRvd0JpdHM8MTYmJihiLndpbmRv
d0JpdHMrPTE2KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVu
a3M9W10sdGhpcy5zdHJtPW5ldyBsLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgYz1oLmRlZmxh
dGVJbml0Mih0aGlzLnN0cm0sYi5sZXZlbCxiLm1ldGhvZCxiLndpbmRvd0JpdHMsYi5tZW1MZXZl
bCxiLnN0cmF0ZWd5KTtpZihjIT09cCl0aHJvdyBuZXcgRXJyb3Ioa1tjXSk7aWYoYi5oZWFkZXIm
JmguZGVmbGF0ZVNldEhlYWRlcih0aGlzLnN0cm0sYi5oZWFkZXIpLGIuZGljdGlvbmFyeSl7dmFy
IGU7aWYoZT0ic3RyaW5nIj09dHlwZW9mIGIuZGljdGlvbmFyeT9qLnN0cmluZzJidWYoYi5kaWN0
aW9uYXJ5KToiW29iamVjdCBBcnJheUJ1ZmZlcl0iPT09bS5jYWxsKGIuZGljdGlvbmFyeSk/bmV3
IFVpbnQ4QXJyYXkoYi5kaWN0aW9uYXJ5KTpiLmRpY3Rpb25hcnksYz1oLmRlZmxhdGVTZXREaWN0
aW9uYXJ5KHRoaXMuc3RybSxlKSxjIT09cCl0aHJvdyBuZXcgRXJyb3Ioa1tjXSk7dGhpcy5fZGlj
dF9zZXQ9ITB9fWZ1bmN0aW9uIGUoYSxiKXt2YXIgYz1uZXcgZChiKTtpZihjLnB1c2goYSwhMCks
Yy5lcnIpdGhyb3cgYy5tc2d8fGtbYy5lcnJdO3JldHVybiBjLnJlc3VsdH1mdW5jdGlvbiBmKGEs
Yil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZShhLGIpfWZ1bmN0aW9uIGcoYSxiKXtyZXR1cm4g
Yj1ifHx7fSxiLmd6aXA9ITAsZShhLGIpfXZhciBoPWEoIi4vemxpYi9kZWZsYXRlIiksaT1hKCIu
L3V0aWxzL2NvbW1vbiIpLGo9YSgiLi91dGlscy9zdHJpbmdzIiksaz1hKCIuL3psaWIvbWVzc2Fn
ZXMiKSxsPWEoIi4vemxpYi96c3RyZWFtIiksbT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLG49
MCxvPTQscD0wLHE9MSxyPTIscz0tMSx0PTAsdT04O2QucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24o
YSxiKXt2YXIgYyxkLGU9dGhpcy5zdHJtLGY9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlz
LmVuZGVkKXJldHVybiExO2Q9Yj09PX5+Yj9iOmI9PT0hMD9vOm4sInN0cmluZyI9PXR5cGVvZiBh
P2UuaW5wdXQ9ai5zdHJpbmcyYnVmKGEpOiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1tLmNhbGwo
YSk/ZS5pbnB1dD1uZXcgVWludDhBcnJheShhKTplLmlucHV0PWEsZS5uZXh0X2luPTAsZS5hdmFp
bF9pbj1lLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09ZS5hdmFpbF9vdXQmJihlLm91dHB1dD1uZXcg
aS5CdWY4KGYpLGUubmV4dF9vdXQ9MCxlLmF2YWlsX291dD1mKSxjPWguZGVmbGF0ZShlLGQpLGMh
PT1xJiZjIT09cClyZXR1cm4gdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLCExOzAhPT1lLmF2
YWlsX291dCYmKDAhPT1lLmF2YWlsX2lufHxkIT09byYmZCE9PXIpfHwoInN0cmluZyI9PT10aGlz
Lm9wdGlvbnMudG8/dGhpcy5vbkRhdGEoai5idWYyYmluc3RyaW5nKGkuc2hyaW5rQnVmKGUub3V0
cHV0LGUubmV4dF9vdXQpKSk6dGhpcy5vbkRhdGEoaS5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0
X291dCkpKX13aGlsZSgoZS5hdmFpbF9pbj4wfHwwPT09ZS5hdmFpbF9vdXQpJiZjIT09cSk7cmV0
dXJuIGQ9PT1vPyhjPWguZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoYyksdGhpcy5l
bmRlZD0hMCxjPT09cCk6ZCE9PXJ8fCh0aGlzLm9uRW5kKHApLGUuYXZhaWxfb3V0PTAsITApfSxk
LnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaHVua3MucHVzaChhKX0sZC5wcm90
b3R5cGUub25FbmQ9ZnVuY3Rpb24oYSl7YT09PXAmJigic3RyaW5nIj09PXRoaXMub3B0aW9ucy50
bz90aGlzLnJlc3VsdD10aGlzLmNodW5rcy5qb2luKCIiKTp0aGlzLnJlc3VsdD1pLmZsYXR0ZW5D
aHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1hLHRoaXMubXNnPXRo
aXMuc3RybS5tc2d9LGMuRGVmbGF0ZT1kLGMuZGVmbGF0ZT1lLGMuZGVmbGF0ZVJhdz1mLGMuZ3pp
cD1nfSx7Ii4vdXRpbHMvY29tbW9uIjo2MiwiLi91dGlscy9zdHJpbmdzIjo2MywiLi96bGliL2Rl
ZmxhdGUiOjY3LCIuL3psaWIvbWVzc2FnZXMiOjcyLCIuL3psaWIvenN0cmVhbSI6NzR9XSw2MTpb
ZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe2lmKCEodGhpcyBpbnN0
YW5jZW9mIGQpKXJldHVybiBuZXcgZChhKTt0aGlzLm9wdGlvbnM9aC5hc3NpZ24oe2NodW5rU2l6
ZToxNjM4NCx3aW5kb3dCaXRzOjAsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5y
YXcmJmIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2JiYoYi53aW5kb3dCaXRzPS1iLndp
bmRvd0JpdHMsMD09PWIud2luZG93Qml0cyYmKGIud2luZG93Qml0cz0tMTUpKSwhKGIud2luZG93
Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2KXx8YSYmYS53aW5kb3dCaXRzfHwoYi53aW5kb3dCaXRz
Kz0zMiksYi53aW5kb3dCaXRzPjE1JiZiLndpbmRvd0JpdHM8NDgmJjA9PT0oMTUmYi53aW5kb3dC
aXRzKSYmKGIud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRl
ZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGwsdGhpcy5zdHJtLmF2YWlsX291dD0w
O3ZhciBjPWcuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxiLndpbmRvd0JpdHMpO2lmKGMhPT1qLlpf
T0spdGhyb3cgbmV3IEVycm9yKGtbY10pO3RoaXMuaGVhZGVyPW5ldyBtLGcuaW5mbGF0ZUdldEhl
YWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfWZ1bmN0aW9uIGUoYSxiKXt2YXIgYz1uZXcgZChi
KTtpZihjLnB1c2goYSwhMCksYy5lcnIpdGhyb3cgYy5tc2d8fGtbYy5lcnJdO3JldHVybiBjLnJl
c3VsdH1mdW5jdGlvbiBmKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZShhLGIpfXZhciBn
PWEoIi4vemxpYi9pbmZsYXRlIiksaD1hKCIuL3V0aWxzL2NvbW1vbiIpLGk9YSgiLi91dGlscy9z
dHJpbmdzIiksaj1hKCIuL3psaWIvY29uc3RhbnRzIiksaz1hKCIuL3psaWIvbWVzc2FnZXMiKSxs
PWEoIi4vemxpYi96c3RyZWFtIiksbT1hKCIuL3psaWIvZ3poZWFkZXIiKSxuPU9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmc7ZC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxm
LGssbCxtPXRoaXMuc3RybSxvPXRoaXMub3B0aW9ucy5jaHVua1NpemUscD10aGlzLm9wdGlvbnMu
ZGljdGlvbmFyeSxxPSExO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7ZD1iPT09fn5iP2I6Yj09PSEw
P2ouWl9GSU5JU0g6ai5aX05PX0ZMVVNILCJzdHJpbmciPT10eXBlb2YgYT9tLmlucHV0PWkuYmlu
c3RyaW5nMmJ1ZihhKToiW29iamVjdCBBcnJheUJ1ZmZlcl0iPT09bi5jYWxsKGEpP20uaW5wdXQ9
bmV3IFVpbnQ4QXJyYXkoYSk6bS5pbnB1dD1hLG0ubmV4dF9pbj0wLG0uYXZhaWxfaW49bS5pbnB1
dC5sZW5ndGg7ZG97aWYoMD09PW0uYXZhaWxfb3V0JiYobS5vdXRwdXQ9bmV3IGguQnVmOChvKSxt
Lm5leHRfb3V0PTAsbS5hdmFpbF9vdXQ9byksYz1nLmluZmxhdGUobSxqLlpfTk9fRkxVU0gpLGM9
PT1qLlpfTkVFRF9ESUNUJiZwJiYobD0ic3RyaW5nIj09dHlwZW9mIHA/aS5zdHJpbmcyYnVmKHAp
OiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1uLmNhbGwocCk/bmV3IFVpbnQ4QXJyYXkocCk6cCxj
PWcuaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLGwpKSxjPT09ai5aX0JVRl9FUlJPUiYm
cT09PSEwJiYoYz1qLlpfT0sscT0hMSksYyE9PWouWl9TVFJFQU1fRU5EJiZjIT09ai5aX09LKXJl
dHVybiB0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7bS5uZXh0X291dCYmKDAhPT1tLmF2
YWlsX291dCYmYyE9PWouWl9TVFJFQU1fRU5EJiYoMCE9PW0uYXZhaWxfaW58fGQhPT1qLlpfRklO
SVNIJiZkIT09ai5aX1NZTkNfRkxVU0gpfHwoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KGU9
aS51dGY4Ym9yZGVyKG0ub3V0cHV0LG0ubmV4dF9vdXQpLGY9bS5uZXh0X291dC1lLGs9aS5idWYy
c3RyaW5nKG0ub3V0cHV0LGUpLG0ubmV4dF9vdXQ9ZixtLmF2YWlsX291dD1vLWYsZiYmaC5hcnJh
eVNldChtLm91dHB1dCxtLm91dHB1dCxlLGYsMCksdGhpcy5vbkRhdGEoaykpOnRoaXMub25EYXRh
KGguc2hyaW5rQnVmKG0ub3V0cHV0LG0ubmV4dF9vdXQpKSkpLDA9PT1tLmF2YWlsX2luJiYwPT09
bS5hdmFpbF9vdXQmJihxPSEwKX13aGlsZSgobS5hdmFpbF9pbj4wfHwwPT09bS5hdmFpbF9vdXQp
JiZjIT09ai5aX1NUUkVBTV9FTkQpO3JldHVybiBjPT09ai5aX1NUUkVBTV9FTkQmJihkPWouWl9G
SU5JU0gpLGQ9PT1qLlpfRklOSVNIPyhjPWcuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25F
bmQoYyksdGhpcy5lbmRlZD0hMCxjPT09ai5aX09LKTpkIT09ai5aX1NZTkNfRkxVU0h8fCh0aGlz
Lm9uRW5kKGouWl9PSyksbS5hdmFpbF9vdXQ9MCwhMCl9LGQucHJvdG90eXBlLm9uRGF0YT1mdW5j
dGlvbihhKXt0aGlzLmNodW5rcy5wdXNoKGEpfSxkLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihh
KXthPT09ai5aX09LJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5yZXN1bHQ9dGhp
cy5jaHVua3Muam9pbigiIik6dGhpcy5yZXN1bHQ9aC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtz
KSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9YSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxjLklu
ZmxhdGU9ZCxjLmluZmxhdGU9ZSxjLmluZmxhdGVSYXc9ZixjLnVuZ3ppcD1lfSx7Ii4vdXRpbHMv
Y29tbW9uIjo2MiwiLi91dGlscy9zdHJpbmdzIjo2MywiLi96bGliL2NvbnN0YW50cyI6NjUsIi4v
emxpYi9nemhlYWRlciI6NjgsIi4vemxpYi9pbmZsYXRlIjo3MCwiLi96bGliL21lc3NhZ2VzIjo3
MiwiLi96bGliL3pzdHJlYW0iOjc0fV0sNjI6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7
dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9m
IFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIEludDMyQXJyYXk7Yy5hc3NpZ249ZnVu
Y3Rpb24oYSl7Zm9yKHZhciBiPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywx
KTtiLmxlbmd0aDspe3ZhciBjPWIuc2hpZnQoKTtpZihjKXtpZigib2JqZWN0IiE9dHlwZW9mIGMp
dGhyb3cgbmV3IFR5cGVFcnJvcihjKyJtdXN0IGJlIG5vbi1vYmplY3QiKTtmb3IodmFyIGQgaW4g
YyljLmhhc093blByb3BlcnR5KGQpJiYoYVtkXT1jW2RdKX19cmV0dXJuIGF9LGMuc2hyaW5rQnVm
PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubGVuZ3RoPT09Yj9hOmEuc3ViYXJyYXk/YS5zdWJhcnJh
eSgwLGIpOihhLmxlbmd0aD1iLGEpfTt2YXIgZT17YXJyYXlTZXQ6ZnVuY3Rpb24oYSxiLGMsZCxl
KXtpZihiLnN1YmFycmF5JiZhLnN1YmFycmF5KXJldHVybiB2b2lkIGEuc2V0KGIuc3ViYXJyYXko
YyxjK2QpLGUpO2Zvcih2YXIgZj0wO2Y8ZDtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5r
czpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGc7Zm9yKGQ9MCxiPTAsYz1hLmxlbmd0aDtiPGM7
YisrKWQrPWFbYl0ubGVuZ3RoO2ZvcihnPW5ldyBVaW50OEFycmF5KGQpLGU9MCxiPTAsYz1hLmxl
bmd0aDtiPGM7YisrKWY9YVtiXSxnLnNldChmLGUpLGUrPWYubGVuZ3RoO3JldHVybiBnfX0sZj17
YXJyYXlTZXQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXtmb3IodmFyIGY9MDtmPGQ7ZisrKWFbZStmXT1i
W2MrZl19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oYSl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtd
LGEpfX07Yy5zZXRUeXBlZD1mdW5jdGlvbihhKXthPyhjLkJ1Zjg9VWludDhBcnJheSxjLkJ1ZjE2
PVVpbnQxNkFycmF5LGMuQnVmMzI9SW50MzJBcnJheSxjLmFzc2lnbihjLGUpKTooYy5CdWY4PUFy
cmF5LGMuQnVmMTY9QXJyYXksYy5CdWYzMj1BcnJheSxjLmFzc2lnbihjLGYpKX0sYy5zZXRUeXBl
ZChkKX0se31dLDYzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxi
KXtpZihiPDY1NTM3JiYoYS5zdWJhcnJheSYmZ3x8IWEuc3ViYXJyYXkmJmYpKXJldHVybiBTdHJp
bmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZS5zaHJpbmtCdWYoYSxiKSk7Zm9yKHZhciBjPSIi
LGQ9MDtkPGI7ZCsrKWMrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtkXSk7cmV0dXJuIGN9dmFyIGU9
YSgiLi9jb21tb24iKSxmPSEwLGc9ITA7dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVs
bCxbMF0pfWNhdGNoKGgpe2Y9ITF9dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxu
ZXcgVWludDhBcnJheSgxKSl9Y2F0Y2goaCl7Zz0hMX1mb3IodmFyIGk9bmV3IGUuQnVmOCgyNTYp
LGo9MDtqPDI1NjtqKyspaVtqXT1qPj0yNTI/NjpqPj0yNDg/NTpqPj0yNDA/NDpqPj0yMjQ/Mzpq
Pj0xOTI/MjoxO2lbMjU0XT1pWzI1NF09MSxjLnN0cmluZzJidWY9ZnVuY3Rpb24oYSl7dmFyIGIs
YyxkLGYsZyxoPWEubGVuZ3RoLGk9MDtmb3IoZj0wO2Y8aDtmKyspYz1hLmNoYXJDb2RlQXQoZiks
NTUyOTY9PT0oNjQ1MTImYykmJmYrMTxoJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2
NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksaSs9YzwxMjg/
MTpjPDIwNDg/MjpjPDY1NTM2PzM6NDtmb3IoYj1uZXcgZS5CdWY4KGkpLGc9MCxmPTA7ZzxpO2Yr
KyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmZisxPGgmJihkPWEuY2hhckNv
ZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2
MzIwKSxmKyspKSxjPDEyOD9iW2crK109YzpjPDIwNDg/KGJbZysrXT0xOTJ8Yz4+PjYsYltnKytd
PTEyOHw2MyZjKTpjPDY1NTM2PyhiW2crK109MjI0fGM+Pj4xMixiW2crK109MTI4fGM+Pj42JjYz
LGJbZysrXT0xMjh8NjMmYyk6KGJbZysrXT0yNDB8Yz4+PjE4LGJbZysrXT0xMjh8Yz4+PjEyJjYz
LGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTtyZXR1cm4gYn0sYy5idWYyYmlu
c3RyaW5nPWZ1bmN0aW9uKGEpe3JldHVybiBkKGEsYS5sZW5ndGgpfSxjLmJpbnN0cmluZzJidWY9
ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPW5ldyBlLkJ1ZjgoYS5sZW5ndGgpLGM9MCxkPWIubGVuZ3Ro
O2M8ZDtjKyspYltjXT1hLmNoYXJDb2RlQXQoYyk7cmV0dXJuIGJ9LGMuYnVmMnN0cmluZz1mdW5j
dGlvbihhLGIpe3ZhciBjLGUsZixnLGg9Ynx8YS5sZW5ndGgsaj1uZXcgQXJyYXkoMipoKTtmb3Io
ZT0wLGM9MDtjPGg7KWlmKGY9YVtjKytdLGY8MTI4KWpbZSsrXT1mO2Vsc2UgaWYoZz1pW2ZdLGc+
NClqW2UrK109NjU1MzMsYys9Zy0xO2Vsc2V7Zm9yKGYmPTI9PT1nPzMxOjM9PT1nPzE1Ojc7Zz4x
JiZjPGg7KWY9Zjw8Nnw2MyZhW2MrK10sZy0tO2c+MT9qW2UrK109NjU1MzM6Zjw2NTUzNj9qW2Ur
K109ZjooZi09NjU1MzYsaltlKytdPTU1Mjk2fGY+PjEwJjEwMjMsaltlKytdPTU2MzIwfDEwMjMm
Zil9cmV0dXJuIGQoaixlKX0sYy51dGY4Ym9yZGVyPWZ1bmN0aW9uKGEsYil7dmFyIGM7Zm9yKGI9
Ynx8YS5sZW5ndGgsYj5hLmxlbmd0aCYmKGI9YS5sZW5ndGgpLGM9Yi0xO2M+PTAmJjEyOD09PSgx
OTImYVtjXSk7KWMtLTtyZXR1cm4gYzwwP2I6MD09PWM/YjpjK2lbYVtjXV0+Yj9jOmJ9fSx7Ii4v
Y29tbW9uIjo2Mn1dLDY0OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQo
YSxiLGMsZCl7Zm9yKHZhciBlPTY1NTM1JmF8MCxmPWE+Pj4xNiY2NTUzNXwwLGc9MDswIT09Yzsp
e2c9Yz4yZTM/MmUzOmMsYy09ZztkbyBlPWUrYltkKytdfDAsZj1mK2V8MDt3aGlsZSgtLWcpO2Ul
PTY1NTIxLGYlPTY1NTIxfXJldHVybiBlfGY8PDE2fDA7Cit9Yi5leHBvcnRzPWR9LHt9XSw2NTpb
ZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BB
UlRJQUxfRkxVU0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZVTExfRkxVU0g6MyxaX0ZJTklTSDo0LFpf
QkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9F
UlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUs
Wl9OT19DT01QUkVTU0lPTjowLFpfQkVTVF9TUEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpf
REVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JM
RTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDoxLFpf
VU5LTk9XTjoyLFpfREVGTEFURUQ6OH19LHt9XSw2NjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3Ry
aWN0IjtmdW5jdGlvbiBkKCl7Zm9yKHZhciBhLGI9W10sYz0wO2M8MjU2O2MrKyl7YT1jO2Zvcih2
YXIgZD0wO2Q8ODtkKyspYT0xJmE/Mzk4ODI5MjM4NF5hPj4+MTphPj4+MTtiW2NdPWF9cmV0dXJu
IGJ9ZnVuY3Rpb24gZShhLGIsYyxkKXt2YXIgZT1mLGc9ZCtjO2FePS0xO2Zvcih2YXIgaD1kO2g8
ZztoKyspYT1hPj4+OF5lWzI1NSYoYV5iW2hdKV07cmV0dXJuIGFeLTF9dmFyIGY9ZCgpO2IuZXhw
b3J0cz1lfSx7fV0sNjc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChh
LGIpe3JldHVybiBhLm1zZz1JW2JdLGJ9ZnVuY3Rpb24gZShhKXtyZXR1cm4oYTw8MSktKGE+ND85
OjApfWZ1bmN0aW9uIGYoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0
aW9uIGcoYSl7dmFyIGI9YS5zdGF0ZSxjPWIucGVuZGluZztjPmEuYXZhaWxfb3V0JiYoYz1hLmF2
YWlsX291dCksMCE9PWMmJihFLmFycmF5U2V0KGEub3V0cHV0LGIucGVuZGluZ19idWYsYi5wZW5k
aW5nX291dCxjLGEubmV4dF9vdXQpLGEubmV4dF9vdXQrPWMsYi5wZW5kaW5nX291dCs9YyxhLnRv
dGFsX291dCs9YyxhLmF2YWlsX291dC09YyxiLnBlbmRpbmctPWMsMD09PWIucGVuZGluZyYmKGIu
cGVuZGluZ19vdXQ9MCkpfWZ1bmN0aW9uIGgoYSxiKXtGLl90cl9mbHVzaF9ibG9jayhhLGEuYmxv
Y2tfc3RhcnQ+PTA/YS5ibG9ja19zdGFydDotMSxhLnN0cnN0YXJ0LWEuYmxvY2tfc3RhcnQsYiks
YS5ibG9ja19zdGFydD1hLnN0cnN0YXJ0LGcoYS5zdHJtKX1mdW5jdGlvbiBpKGEsYil7YS5wZW5k
aW5nX2J1ZlthLnBlbmRpbmcrK109Yn1mdW5jdGlvbiBqKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBl
bmRpbmcrK109Yj4+PjgmMjU1LGEucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPTI1NSZifWZ1bmN0
aW9uIGsoYSxiLGMsZCl7dmFyIGU9YS5hdmFpbF9pbjtyZXR1cm4gZT5kJiYoZT1kKSwwPT09ZT8w
OihhLmF2YWlsX2luLT1lLEUuYXJyYXlTZXQoYixhLmlucHV0LGEubmV4dF9pbixlLGMpLDE9PT1h
LnN0YXRlLndyYXA/YS5hZGxlcj1HKGEuYWRsZXIsYixlLGMpOjI9PT1hLnN0YXRlLndyYXAmJihh
LmFkbGVyPUgoYS5hZGxlcixiLGUsYykpLGEubmV4dF9pbis9ZSxhLnRvdGFsX2luKz1lLGUpfWZ1
bmN0aW9uIGwoYSxiKXt2YXIgYyxkLGU9YS5tYXhfY2hhaW5fbGVuZ3RoLGY9YS5zdHJzdGFydCxn
PWEucHJldl9sZW5ndGgsaD1hLm5pY2VfbWF0Y2gsaT1hLnN0cnN0YXJ0PmEud19zaXplLWxhP2Eu
c3Ryc3RhcnQtKGEud19zaXplLWxhKTowLGo9YS53aW5kb3csaz1hLndfbWFzayxsPWEucHJldixt
PWEuc3Ryc3RhcnQra2Esbj1qW2YrZy0xXSxvPWpbZitnXTthLnByZXZfbGVuZ3RoPj1hLmdvb2Rf
bWF0Y2gmJihlPj49MiksaD5hLmxvb2thaGVhZCYmKGg9YS5sb29rYWhlYWQpO2RvIGlmKGM9Yixq
W2MrZ109PT1vJiZqW2MrZy0xXT09PW4mJmpbY109PT1qW2ZdJiZqWysrY109PT1qW2YrMV0pe2Yr
PTIsYysrO2RvO3doaWxlKGpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09
PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysr
Y10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZmPG0pO2lmKGQ9a2EtKG0tZiks
Zj1tLWthLGQ+Zyl7aWYoYS5tYXRjaF9zdGFydD1iLGc9ZCxkPj1oKWJyZWFrO249altmK2ctMV0s
bz1qW2YrZ119fXdoaWxlKChiPWxbYiZrXSk+aSYmMCE9PS0tZSk7cmV0dXJuIGc8PWEubG9va2Fo
ZWFkP2c6YS5sb29rYWhlYWR9ZnVuY3Rpb24gbShhKXt2YXIgYixjLGQsZSxmLGc9YS53X3NpemU7
ZG97aWYoZT1hLndpbmRvd19zaXplLWEubG9va2FoZWFkLWEuc3Ryc3RhcnQsYS5zdHJzdGFydD49
ZysoZy1sYSkpe0UuYXJyYXlTZXQoYS53aW5kb3csYS53aW5kb3csZyxnLDApLGEubWF0Y2hfc3Rh
cnQtPWcsYS5zdHJzdGFydC09ZyxhLmJsb2NrX3N0YXJ0LT1nLGM9YS5oYXNoX3NpemUsYj1jO2Rv
IGQ9YS5oZWFkWy0tYl0sYS5oZWFkW2JdPWQ+PWc/ZC1nOjA7d2hpbGUoLS1jKTtjPWcsYj1jO2Rv
IGQ9YS5wcmV2Wy0tYl0sYS5wcmV2W2JdPWQ+PWc/ZC1nOjA7d2hpbGUoLS1jKTtlKz1nfWlmKDA9
PT1hLnN0cm0uYXZhaWxfaW4pYnJlYWs7aWYoYz1rKGEuc3RybSxhLndpbmRvdyxhLnN0cnN0YXJ0
K2EubG9va2FoZWFkLGUpLGEubG9va2FoZWFkKz1jLGEubG9va2FoZWFkK2EuaW5zZXJ0Pj1qYSlm
b3IoZj1hLnN0cnN0YXJ0LWEuaW5zZXJ0LGEuaW5zX2g9YS53aW5kb3dbZl0sYS5pbnNfaD0oYS5p
bnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2YrMV0pJmEuaGFzaF9tYXNrO2EuaW5zZXJ0JiYo
YS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2YramEtMV0pJmEuaGFzaF9t
YXNrLGEucHJldltmJmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWYs
ZisrLGEuaW5zZXJ0LS0sIShhLmxvb2thaGVhZCthLmluc2VydDxqYSkpOyk7fXdoaWxlKGEubG9v
a2FoZWFkPGxhJiYwIT09YS5zdHJtLmF2YWlsX2luKX1mdW5jdGlvbiBuKGEsYil7dmFyIGM9NjU1
MzU7Zm9yKGM+YS5wZW5kaW5nX2J1Zl9zaXplLTUmJihjPWEucGVuZGluZ19idWZfc2l6ZS01KTs7
KXtpZihhLmxvb2thaGVhZDw9MSl7aWYobShhKSwwPT09YS5sb29rYWhlYWQmJmI9PT1KKXJldHVy
biB1YTtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9YS5zdHJzdGFydCs9YS5sb29rYWhlYWQsYS5s
b29rYWhlYWQ9MDt2YXIgZD1hLmJsb2NrX3N0YXJ0K2M7aWYoKDA9PT1hLnN0cnN0YXJ0fHxhLnN0
cnN0YXJ0Pj1kKSYmKGEubG9va2FoZWFkPWEuc3Ryc3RhcnQtZCxhLnN0cnN0YXJ0PWQsaChhLCEx
KSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHVhO2lmKGEuc3Ryc3RhcnQtYS5ibG9ja19z
dGFydD49YS53X3NpemUtbGEmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4g
dWF9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PU0/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/
d2E6eGEpOmEuc3Ryc3RhcnQ+YS5ibG9ja19zdGFydCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFp
bF9vdXQpP3VhOnVhfWZ1bmN0aW9uIG8oYSxiKXtmb3IodmFyIGMsZDs7KXtpZihhLmxvb2thaGVh
ZDxsYSl7aWYobShhKSxhLmxvb2thaGVhZDxsYSYmYj09PUopcmV0dXJuIHVhO2lmKDA9PT1hLmxv
b2thaGVhZClicmVha31pZihjPTAsYS5sb29rYWhlYWQ+PWphJiYoYS5pbnNfaD0oYS5pbnNfaDw8
YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQramEtMV0pJmEuaGFzaF9tYXNrLGM9YS5w
cmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09
YS5zdHJzdGFydCksMCE9PWMmJmEuc3Ryc3RhcnQtYzw9YS53X3NpemUtbGEmJihhLm1hdGNoX2xl
bmd0aD1sKGEsYykpLGEubWF0Y2hfbGVuZ3RoPj1qYSlpZihkPUYuX3RyX3RhbGx5KGEsYS5zdHJz
dGFydC1hLm1hdGNoX3N0YXJ0LGEubWF0Y2hfbGVuZ3RoLWphKSxhLmxvb2thaGVhZC09YS5tYXRj
aF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg8PWEubWF4X2xhenlfbWF0Y2gmJmEubG9va2FoZWFkPj1q
YSl7YS5tYXRjaF9sZW5ndGgtLTtkbyBhLnN0cnN0YXJ0KyssYS5pbnNfaD0oYS5pbnNfaDw8YS5o
YXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQramEtMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2
W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5z
dHJzdGFydDt3aGlsZSgwIT09LS1hLm1hdGNoX2xlbmd0aCk7YS5zdHJzdGFydCsrfWVsc2UgYS5z
dHJzdGFydCs9YS5tYXRjaF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg9MCxhLmluc19oPWEud2luZG93
W2Euc3Ryc3RhcnRdLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0
cnN0YXJ0KzFdKSZhLmhhc2hfbWFzaztlbHNlIGQ9Ri5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Eu
c3Ryc3RhcnRdKSxhLmxvb2thaGVhZC0tLGEuc3Ryc3RhcnQrKztpZihkJiYoaChhLCExKSwwPT09
YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHVhfXJldHVybiBhLmluc2VydD1hLnN0cnN0YXJ0PGph
LTE/YS5zdHJzdGFydDpqYS0xLGI9PT1NPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3dh
OnhhKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/dWE6dmF9ZnVu
Y3Rpb24gcChhLGIpe2Zvcih2YXIgYyxkLGU7Oyl7aWYoYS5sb29rYWhlYWQ8bGEpe2lmKG0oYSks
YS5sb29rYWhlYWQ8bGEmJmI9PT1KKXJldHVybiB1YTtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9
aWYoYz0wLGEubG9va2FoZWFkPj1qYSYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5h
LndpbmRvd1thLnN0cnN0YXJ0K2phLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0
JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpLGEu
cHJldl9sZW5ndGg9YS5tYXRjaF9sZW5ndGgsYS5wcmV2X21hdGNoPWEubWF0Y2hfc3RhcnQsYS5t
YXRjaF9sZW5ndGg9amEtMSwwIT09YyYmYS5wcmV2X2xlbmd0aDxhLm1heF9sYXp5X21hdGNoJiZh
LnN0cnN0YXJ0LWM8PWEud19zaXplLWxhJiYoYS5tYXRjaF9sZW5ndGg9bChhLGMpLGEubWF0Y2hf
bGVuZ3RoPD01JiYoYS5zdHJhdGVneT09PVV8fGEubWF0Y2hfbGVuZ3RoPT09amEmJmEuc3Ryc3Rh
cnQtYS5tYXRjaF9zdGFydD40MDk2KSYmKGEubWF0Y2hfbGVuZ3RoPWphLTEpKSxhLnByZXZfbGVu
Z3RoPj1qYSYmYS5tYXRjaF9sZW5ndGg8PWEucHJldl9sZW5ndGgpe2U9YS5zdHJzdGFydCthLmxv
b2thaGVhZC1qYSxkPUYuX3RyX3RhbGx5KGEsYS5zdHJzdGFydC0xLWEucHJldl9tYXRjaCxhLnBy
ZXZfbGVuZ3RoLWphKSxhLmxvb2thaGVhZC09YS5wcmV2X2xlbmd0aC0xLGEucHJldl9sZW5ndGgt
PTI7ZG8rK2Euc3Ryc3RhcnQ8PWUmJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53
aW5kb3dbYS5zdHJzdGFydCtqYS0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZh
LndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KTt3aGls
ZSgwIT09LS1hLnByZXZfbGVuZ3RoKTtpZihhLm1hdGNoX2F2YWlsYWJsZT0wLGEubWF0Y2hfbGVu
Z3RoPWphLTEsYS5zdHJzdGFydCsrLGQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSly
ZXR1cm4gdWF9ZWxzZSBpZihhLm1hdGNoX2F2YWlsYWJsZSl7aWYoZD1GLl90cl90YWxseShhLDAs
YS53aW5kb3dbYS5zdHJzdGFydC0xXSksZCYmaChhLCExKSxhLnN0cnN0YXJ0KyssYS5sb29rYWhl
YWQtLSwwPT09YS5zdHJtLmF2YWlsX291dClyZXR1cm4gdWF9ZWxzZSBhLm1hdGNoX2F2YWlsYWJs
ZT0xLGEuc3Ryc3RhcnQrKyxhLmxvb2thaGVhZC0tfXJldHVybiBhLm1hdGNoX2F2YWlsYWJsZSYm
KGQ9Ri5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnQtMV0pLGEubWF0Y2hfYXZhaWxh
YmxlPTApLGEuaW5zZXJ0PWEuc3Ryc3RhcnQ8amEtMT9hLnN0cnN0YXJ0OmphLTEsYj09PU0/KGgo
YSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/d2E6eGEpOmEubGFzdF9saXQmJihoKGEsITEpLDA9
PT1hLnN0cm0uYXZhaWxfb3V0KT91YTp2YX1mdW5jdGlvbiBxKGEsYil7Zm9yKHZhciBjLGQsZSxm
LGc9YS53aW5kb3c7Oyl7aWYoYS5sb29rYWhlYWQ8PWthKXtpZihtKGEpLGEubG9va2FoZWFkPD1r
YSYmYj09PUopcmV0dXJuIHVhO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31pZihhLm1hdGNoX2xl
bmd0aD0wLGEubG9va2FoZWFkPj1qYSYmYS5zdHJzdGFydD4wJiYoZT1hLnN0cnN0YXJ0LTEsZD1n
W2VdLGQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0pKXtmPWEuc3Ryc3RhcnQra2E7
ZG87d2hpbGUoZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYm
ZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZD09PWdbKytlXSYmZTxmKTthLm1h
dGNoX2xlbmd0aD1rYS0oZi1lKSxhLm1hdGNoX2xlbmd0aD5hLmxvb2thaGVhZCYmKGEubWF0Y2hf
bGVuZ3RoPWEubG9va2FoZWFkKX1pZihhLm1hdGNoX2xlbmd0aD49amE/KGM9Ri5fdHJfdGFsbHko
YSwxLGEubWF0Y2hfbGVuZ3RoLWphKSxhLmxvb2thaGVhZC09YS5tYXRjaF9sZW5ndGgsYS5zdHJz
dGFydCs9YS5tYXRjaF9sZW5ndGgsYS5tYXRjaF9sZW5ndGg9MCk6KGM9Ri5fdHJfdGFsbHkoYSww
LGEud2luZG93W2Euc3Ryc3RhcnRdKSxhLmxvb2thaGVhZC0tLGEuc3Ryc3RhcnQrKyksYyYmKGgo
YSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiB1YX1yZXR1cm4gYS5pbnNlcnQ9MCxi
PT09TT8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD93YTp4YSk6YS5sYXN0X2xpdCYmKGgo
YSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3VhOnZhfWZ1bmN0aW9uIHIoYSxiKXtmb3IodmFy
IGM7Oyl7aWYoMD09PWEubG9va2FoZWFkJiYobShhKSwwPT09YS5sb29rYWhlYWQpKXtpZihiPT09
SilyZXR1cm4gdWE7YnJlYWt9aWYoYS5tYXRjaF9sZW5ndGg9MCxjPUYuX3RyX3RhbGx5KGEsMCxh
LndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0KyssYyYmKGgoYSwh
MSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiB1YX1yZXR1cm4gYS5pbnNlcnQ9MCxiPT09
TT8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD93YTp4YSk6YS5sYXN0X2xpdCYmKGgoYSwh
MSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3VhOnZhfWZ1bmN0aW9uIHMoYSxiLGMsZCxlKXt0aGlz
Lmdvb2RfbGVuZ3RoPWEsdGhpcy5tYXhfbGF6eT1iLHRoaXMubmljZV9sZW5ndGg9Yyx0aGlzLm1h
eF9jaGFpbj1kLHRoaXMuZnVuYz1lfWZ1bmN0aW9uIHQoYSl7YS53aW5kb3dfc2l6ZT0yKmEud19z
aXplLGYoYS5oZWFkKSxhLm1heF9sYXp5X21hdGNoPURbYS5sZXZlbF0ubWF4X2xhenksYS5nb29k
X21hdGNoPURbYS5sZXZlbF0uZ29vZF9sZW5ndGgsYS5uaWNlX21hdGNoPURbYS5sZXZlbF0ubmlj
ZV9sZW5ndGgsYS5tYXhfY2hhaW5fbGVuZ3RoPURbYS5sZXZlbF0ubWF4X2NoYWluLGEuc3Ryc3Rh
cnQ9MCxhLmJsb2NrX3N0YXJ0PTAsYS5sb29rYWhlYWQ9MCxhLmluc2VydD0wLGEubWF0Y2hfbGVu
Z3RoPWEucHJldl9sZW5ndGg9amEtMSxhLm1hdGNoX2F2YWlsYWJsZT0wLGEuaW5zX2g9MH1mdW5j
dGlvbiB1KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51
bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGlu
Zz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRo
b2Q9JCx0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMu
d19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51
bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNo
X2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3Rh
cnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZh
aWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVh
ZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9s
YXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9
MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgRS5CdWYxNigyKmhhKSx0aGlz
LmR5bl9kdHJlZT1uZXcgRS5CdWYxNigyKigyKmZhKzEpKSx0aGlzLmJsX3RyZWU9bmV3IEUuQnVm
MTYoMiooMipnYSsxKSksZih0aGlzLmR5bl9sdHJlZSksZih0aGlzLmR5bl9kdHJlZSksZih0aGlz
LmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9
bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBFLkJ1ZjE2KGlhKzEpLHRoaXMuaGVhcD1uZXcgRS5CdWYx
NigyKmVhKzEpLGYodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRo
aXMuZGVwdGg9bmV3IEUuQnVmMTYoMiplYSsxKSxmKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0
aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9s
ZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMu
YmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIHYoYSl7dmFyIGI7cmV0dXJuIGEmJmEu
c3RhdGU/KGEudG90YWxfaW49YS50b3RhbF9vdXQ9MCxhLmRhdGFfdHlwZT1aLGI9YS5zdGF0ZSxi
LnBlbmRpbmc9MCxiLnBlbmRpbmdfb3V0PTAsYi53cmFwPDAmJihiLndyYXA9LWIud3JhcCksYi5z
dGF0dXM9Yi53cmFwP25hOnNhLGEuYWRsZXI9Mj09PWIud3JhcD8wOjEsYi5sYXN0X2ZsdXNoPUos
Ri5fdHJfaW5pdChiKSxPKTpkKGEsUSl9ZnVuY3Rpb24gdyhhKXt2YXIgYj12KGEpO3JldHVybiBi
PT09TyYmdChhLnN0YXRlKSxifWZ1bmN0aW9uIHgoYSxiKXtyZXR1cm4gYSYmYS5zdGF0ZT8yIT09
YS5zdGF0ZS53cmFwP1E6KGEuc3RhdGUuZ3poZWFkPWIsTyk6UX1mdW5jdGlvbiB5KGEsYixjLGUs
ZixnKXtpZighYSlyZXR1cm4gUTt2YXIgaD0xO2lmKGI9PT1UJiYoYj02KSxlPDA/KGg9MCxlPS1l
KTplPjE1JiYoaD0yLGUtPTE2KSxmPDF8fGY+X3x8YyE9PSR8fGU8OHx8ZT4xNXx8YjwwfHxiPjl8
fGc8MHx8Zz5YKXJldHVybiBkKGEsUSk7OD09PWUmJihlPTkpO3ZhciBpPW5ldyB1O3JldHVybiBh
LnN0YXRlPWksaS5zdHJtPWEsaS53cmFwPWgsaS5nemhlYWQ9bnVsbCxpLndfYml0cz1lLGkud19z
aXplPTE8PGkud19iaXRzLGkud19tYXNrPWkud19zaXplLTEsaS5oYXNoX2JpdHM9Zis3LGkuaGFz
aF9zaXplPTE8PGkuaGFzaF9iaXRzLGkuaGFzaF9tYXNrPWkuaGFzaF9zaXplLTEsaS5oYXNoX3No
aWZ0PX5+KChpLmhhc2hfYml0cytqYS0xKS9qYSksaS53aW5kb3c9bmV3IEUuQnVmOCgyKmkud19z
aXplKSxpLmhlYWQ9bmV3IEUuQnVmMTYoaS5oYXNoX3NpemUpLGkucHJldj1uZXcgRS5CdWYxNihp
Lndfc2l6ZSksaS5saXRfYnVmc2l6ZT0xPDxmKzYsaS5wZW5kaW5nX2J1Zl9zaXplPTQqaS5saXRf
YnVmc2l6ZSxpLnBlbmRpbmdfYnVmPW5ldyBFLkJ1ZjgoaS5wZW5kaW5nX2J1Zl9zaXplKSxpLmRf
YnVmPTEqaS5saXRfYnVmc2l6ZSxpLmxfYnVmPTMqaS5saXRfYnVmc2l6ZSxpLmxldmVsPWIsaS5z
dHJhdGVneT1nLGkubWV0aG9kPWMsdyhhKX1mdW5jdGlvbiB6KGEsYil7cmV0dXJuIHkoYSxiLCQs
YWEsYmEsWSl9ZnVuY3Rpb24gQShhLGIpe3ZhciBjLGgsayxsO2lmKCFhfHwhYS5zdGF0ZXx8Yj5O
fHxiPDApcmV0dXJuIGE/ZChhLFEpOlE7aWYoaD1hLnN0YXRlLCFhLm91dHB1dHx8IWEuaW5wdXQm
JjAhPT1hLmF2YWlsX2lufHxoLnN0YXR1cz09PXRhJiZiIT09TSlyZXR1cm4gZChhLDA9PT1hLmF2
YWlsX291dD9TOlEpO2lmKGguc3RybT1hLGM9aC5sYXN0X2ZsdXNoLGgubGFzdF9mbHVzaD1iLGgu
c3RhdHVzPT09bmEpaWYoMj09PWgud3JhcClhLmFkbGVyPTAsaShoLDMxKSxpKGgsMTM5KSxpKGgs
OCksaC5nemhlYWQ/KGkoaCwoaC5nemhlYWQudGV4dD8xOjApKyhoLmd6aGVhZC5oY3JjPzI6MCkr
KGguZ3poZWFkLmV4dHJhPzQ6MCkrKGguZ3poZWFkLm5hbWU/ODowKSsoaC5nemhlYWQuY29tbWVu
dD8xNjowKSksaShoLDI1NSZoLmd6aGVhZC50aW1lKSxpKGgsaC5nemhlYWQudGltZT4+OCYyNTUp
LGkoaCxoLmd6aGVhZC50aW1lPj4xNiYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4yNCYyNTUpLGko
aCw5PT09aC5sZXZlbD8yOmguc3RyYXRlZ3k+PVZ8fGgubGV2ZWw8Mj80OjApLGkoaCwyNTUmaC5n
emhlYWQub3MpLGguZ3poZWFkLmV4dHJhJiZoLmd6aGVhZC5leHRyYS5sZW5ndGgmJihpKGgsMjU1
JmguZ3poZWFkLmV4dHJhLmxlbmd0aCksaShoLGguZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUp
KSxoLmd6aGVhZC5oY3JjJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRp
bmcsMCkpLGguZ3ppbmRleD0wLGguc3RhdHVzPW9hKTooaShoLDApLGkoaCwwKSxpKGgsMCksaSho
LDApLGkoaCwwKSxpKGgsOT09PWgubGV2ZWw/MjpoLnN0cmF0ZWd5Pj1WfHxoLmxldmVsPDI/NDow
KSxpKGgseWEpLGguc3RhdHVzPXNhKTtlbHNle3ZhciBtPSQrKGgud19iaXRzLTg8PDQpPDw4LG49
LTE7bj1oLnN0cmF0ZWd5Pj1WfHxoLmxldmVsPDI/MDpoLmxldmVsPDY/MTo2PT09aC5sZXZlbD8y
OjMsbXw9bjw8NiwwIT09aC5zdHJzdGFydCYmKG18PW1hKSxtKz0zMS1tJTMxLGguc3RhdHVzPXNh
LGooaCxtKSwwIT09aC5zdHJzdGFydCYmKGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFk
bGVyKSksYS5hZGxlcj0xfWlmKGguc3RhdHVzPT09b2EpaWYoaC5nemhlYWQuZXh0cmEpe2Zvcihr
PWgucGVuZGluZztoLmd6aW5kZXg8KDY1NTM1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihoLnBl
bmRpbmchPT1oLnBlbmRpbmdfYnVmX3NpemV8fChoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYm
KGEuYWRsZXI9SChhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1o
LnBlbmRpbmcsaC5wZW5kaW5nIT09aC5wZW5kaW5nX2J1Zl9zaXplKSk7KWkoaCwyNTUmaC5nemhl
YWQuZXh0cmFbaC5nemluZGV4XSksaC5nemluZGV4Kys7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5n
PmsmJihhLmFkbGVyPUgoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxoLmd6
aW5kZXg9PT1oLmd6aGVhZC5leHRyYS5sZW5ndGgmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1wYSl9
ZWxzZSBoLnN0YXR1cz1wYTtpZihoLnN0YXR1cz09PXBhKWlmKGguZ3poZWFkLm5hbWUpe2s9aC5w
ZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhj
cmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRp
bmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUp
KXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQubmFtZS5sZW5ndGg/MjU1JmguZ3poZWFk
Lm5hbWUuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3po
ZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5kaW5nX2J1Zixo
LnBlbmRpbmctayxrKSksMD09PWwmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1xYSl9ZWxzZSBoLnN0
YXR1cz1xYTtpZihoLnN0YXR1cz09PXFhKWlmKGguZ3poZWFkLmNvbW1lbnQpe2s9aC5wZW5kaW5n
O2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgu
cGVuZGluZz5rJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxr
KSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7
YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1JmguZ3poZWFkLmNv
bW1lbnQuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3po
ZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5kaW5nX2J1Zixo
LnBlbmRpbmctayxrKSksMD09PWwmJihoLnN0YXR1cz1yYSl9ZWxzZSBoLnN0YXR1cz1yYTtpZiho
LnN0YXR1cz09PXJhJiYoaC5nemhlYWQuaGNyYz8oaC5wZW5kaW5nKzI+aC5wZW5kaW5nX2J1Zl9z
aXplJiZnKGEpLGgucGVuZGluZysyPD1oLnBlbmRpbmdfYnVmX3NpemUmJihpKGgsMjU1JmEuYWRs
ZXIpLGkoaCxhLmFkbGVyPj44JjI1NSksYS5hZGxlcj0wLGguc3RhdHVzPXNhKSk6aC5zdGF0dXM9
c2EpLDAhPT1oLnBlbmRpbmcpe2lmKGcoYSksMD09PWEuYXZhaWxfb3V0KXJldHVybiBoLmxhc3Rf
Zmx1c2g9LTEsT31lbHNlIGlmKDA9PT1hLmF2YWlsX2luJiZlKGIpPD1lKGMpJiZiIT09TSlyZXR1
cm4gZChhLFMpO2lmKGguc3RhdHVzPT09dGEmJjAhPT1hLmF2YWlsX2luKXJldHVybiBkKGEsUyk7
aWYoMCE9PWEuYXZhaWxfaW58fDAhPT1oLmxvb2thaGVhZHx8YiE9PUomJmguc3RhdHVzIT09dGEp
e3ZhciBvPWguc3RyYXRlZ3k9PT1WP3IoaCxiKTpoLnN0cmF0ZWd5PT09Vz9xKGgsYik6RFtoLmxl
dmVsXS5mdW5jKGgsYik7aWYobyE9PXdhJiZvIT09eGF8fChoLnN0YXR1cz10YSksbz09PXVhfHxv
PT09d2EpcmV0dXJuIDA9PT1hLmF2YWlsX291dCYmKGgubGFzdF9mbHVzaD0tMSksTztpZihvPT09
dmEmJihiPT09Sz9GLl90cl9hbGlnbihoKTpiIT09TiYmKEYuX3RyX3N0b3JlZF9ibG9jayhoLDAs
MCwhMSksYj09PUwmJihmKGguaGVhZCksMD09PWgubG9va2FoZWFkJiYoaC5zdHJzdGFydD0wLGgu
YmxvY2tfc3RhcnQ9MCxoLmluc2VydD0wKSkpLGcoYSksMD09PWEuYXZhaWxfb3V0KSlyZXR1cm4g
aC5sYXN0X2ZsdXNoPS0xLE99cmV0dXJuIGIhPT1NP086aC53cmFwPD0wP1A6KDI9PT1oLndyYXA/
KGkoaCwyNTUmYS5hZGxlciksaShoLGEuYWRsZXI+PjgmMjU1KSxpKGgsYS5hZGxlcj4+MTYmMjU1
KSxpKGgsYS5hZGxlcj4+MjQmMjU1KSxpKGgsMjU1JmEudG90YWxfaW4pLGkoaCxhLnRvdGFsX2lu
Pj44JjI1NSksaShoLGEudG90YWxfaW4+PjE2JjI1NSksaShoLGEudG90YWxfaW4+PjI0JjI1NSkp
OihqKGgsYS5hZGxlcj4+PjE2KSxqKGgsNjU1MzUmYS5hZGxlcikpLGcoYSksaC53cmFwPjAmJiho
LndyYXA9LWgud3JhcCksMCE9PWgucGVuZGluZz9POlApfWZ1bmN0aW9uIEIoYSl7dmFyIGI7cmV0
dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZS5zdGF0dXMsYiE9PW5hJiZiIT09b2EmJmIhPT1wYSYm
YiE9PXFhJiZiIT09cmEmJmIhPT1zYSYmYiE9PXRhP2QoYSxRKTooYS5zdGF0ZT1udWxsLGI9PT1z
YT9kKGEsUik6TykpOlF9ZnVuY3Rpb24gQyhhLGIpe3ZhciBjLGQsZSxnLGgsaSxqLGssbD1iLmxl
bmd0aDtpZighYXx8IWEuc3RhdGUpcmV0dXJuIFE7aWYoYz1hLnN0YXRlLGc9Yy53cmFwLDI9PT1n
fHwxPT09ZyYmYy5zdGF0dXMhPT1uYXx8Yy5sb29rYWhlYWQpcmV0dXJuIFE7Zm9yKDE9PT1nJiYo
YS5hZGxlcj1HKGEuYWRsZXIsYixsLDApKSxjLndyYXA9MCxsPj1jLndfc2l6ZSYmKDA9PT1nJiYo
ZihjLmhlYWQpLGMuc3Ryc3RhcnQ9MCxjLmJsb2NrX3N0YXJ0PTAsYy5pbnNlcnQ9MCksaz1uZXcg
RS5CdWY4KGMud19zaXplKSxFLmFycmF5U2V0KGssYixsLWMud19zaXplLGMud19zaXplLDApLGI9
ayxsPWMud19zaXplKSxoPWEuYXZhaWxfaW4saT1hLm5leHRfaW4saj1hLmlucHV0LGEuYXZhaWxf
aW49bCxhLm5leHRfaW49MCxhLmlucHV0PWIsbShjKTtjLmxvb2thaGVhZD49amE7KXtkPWMuc3Ry
c3RhcnQsZT1jLmxvb2thaGVhZC0oamEtMSk7ZG8gYy5pbnNfaD0oYy5pbnNfaDw8Yy5oYXNoX3No
aWZ0XmMud2luZG93W2QramEtMV0pJmMuaGFzaF9tYXNrLGMucHJldltkJmMud19tYXNrXT1jLmhl
YWRbYy5pbnNfaF0sYy5oZWFkW2MuaW5zX2hdPWQsZCsrO3doaWxlKC0tZSk7Yy5zdHJzdGFydD1k
LGMubG9va2FoZWFkPWphLTEsbShjKX1yZXR1cm4gYy5zdHJzdGFydCs9Yy5sb29rYWhlYWQsYy5i
bG9ja19zdGFydD1jLnN0cnN0YXJ0LGMuaW5zZXJ0PWMubG9va2FoZWFkLGMubG9va2FoZWFkPTAs
Yy5tYXRjaF9sZW5ndGg9Yy5wcmV2X2xlbmd0aD1qYS0xLGMubWF0Y2hfYXZhaWxhYmxlPTAsYS5u
ZXh0X2luPWksYS5pbnB1dD1qLGEuYXZhaWxfaW49aCxjLndyYXA9ZyxPfXZhciBELEU9YSgiLi4v
dXRpbHMvY29tbW9uIiksRj1hKCIuL3RyZWVzIiksRz1hKCIuL2FkbGVyMzIiKSxIPWEoIi4vY3Jj
MzIiKSxJPWEoIi4vbWVzc2FnZXMiKSxKPTAsSz0xLEw9MyxNPTQsTj01LE89MCxQPTEsUT0tMixS
PS0zLFM9LTUsVD0tMSxVPTEsVj0yLFc9MyxYPTQsWT0wLFo9MiwkPTgsXz05LGFhPTE1LGJhPTgs
Y2E9MjksZGE9MjU2LGVhPWRhKzErY2EsZmE9MzAsZ2E9MTksaGE9MiplYSsxLGlhPTE1LGphPTMs
a2E9MjU4LGxhPWthK2phKzEsbWE9MzIsbmE9NDIsb2E9NjkscGE9NzMscWE9OTEscmE9MTAzLHNh
PTExMyx0YT02NjYsdWE9MSx2YT0yLHdhPTMseGE9NCx5YT0zO0Q9W25ldyBzKDAsMCwwLDAsbiks
bmV3IHMoNCw0LDgsNCxvKSxuZXcgcyg0LDUsMTYsOCxvKSxuZXcgcyg0LDYsMzIsMzIsbyksbmV3
IHMoNCw0LDE2LDE2LHApLG5ldyBzKDgsMTYsMzIsMzIscCksbmV3IHMoOCwxNiwxMjgsMTI4LHAp
LG5ldyBzKDgsMzIsMTI4LDI1NixwKSxuZXcgcygzMiwxMjgsMjU4LDEwMjQscCksbmV3IHMoMzIs
MjU4LDI1OCw0MDk2LHApXSxjLmRlZmxhdGVJbml0PXosYy5kZWZsYXRlSW5pdDI9eSxjLmRlZmxh
dGVSZXNldD13LGMuZGVmbGF0ZVJlc2V0S2VlcD12LGMuZGVmbGF0ZVNldEhlYWRlcj14LGMuZGVm
bGF0ZT1BLGMuZGVmbGF0ZUVuZD1CLGMuZGVmbGF0ZVNldERpY3Rpb25hcnk9QyxjLmRlZmxhdGVJ
bmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21t
b24iOjYyLCIuL2FkbGVyMzIiOjY0LCIuL2NyYzMyIjo2NiwiLi9tZXNzYWdlcyI6NzIsIi4vdHJl
ZXMiOjczfV0sNjg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZCgpe3Ro
aXMudGV4dD0wLHRoaXMudGltZT0wLHRoaXMueGZsYWdzPTAsdGhpcy5vcz0wLHRoaXMuZXh0cmE9
bnVsbCx0aGlzLmV4dHJhX2xlbj0wLHRoaXMubmFtZT0iIix0aGlzLmNvbW1lbnQ9IiIsdGhpcy5o
Y3JjPTAsdGhpcy5kb25lPSExfWIuZXhwb3J0cz1kfSx7fV0sNjk6W2Z1bmN0aW9uKGEsYixjKXsi
dXNlIHN0cmljdCI7dmFyIGQ9MzAsZT0xMjtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXt2YXIgYyxm
LGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyx4LHkseixBLEIsQztjPWEuc3RhdGUs
Zj1hLm5leHRfaW4sQj1hLmlucHV0LGc9ZisoYS5hdmFpbF9pbi01KSxoPWEubmV4dF9vdXQsQz1h
Lm91dHB1dCxpPWgtKGItYS5hdmFpbF9vdXQpLGo9aCsoYS5hdmFpbF9vdXQtMjU3KSxrPWMuZG1h
eCxsPWMud3NpemUsbT1jLndoYXZlLG49Yy53bmV4dCxvPWMud2luZG93LHA9Yy5ob2xkLHE9Yy5i
aXRzLHI9Yy5sZW5jb2RlLHM9Yy5kaXN0Y29kZSx0PSgxPDxjLmxlbmJpdHMpLTEsdT0oMTw8Yy5k
aXN0Yml0cyktMTthOmRve3E8MTUmJihwKz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9
OCksdj1yW3AmdF07Yjpmb3IoOzspe2lmKHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1
NSwwPT09dylDW2grK109NjU1MzUmdjtlbHNle2lmKCEoMTYmdykpe2lmKDA9PT0oNjQmdykpe3Y9
clsoNjU1MzUmdikrKHAmKDE8PHcpLTEpXTtjb250aW51ZSBifWlmKDMyJncpe2MubW9kZT1lO2Jy
ZWFrIGF9YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsYy5tb2RlPWQ7YnJlYWsg
YX14PTY1NTM1JnYsdyY9MTUsdyYmKHE8dyYmKHArPUJbZisrXTw8cSxxKz04KSx4Kz1wJigxPDx3
KS0xLHA+Pj49dyxxLT13KSxxPDE1JiYocCs9QltmKytdPDxxLHErPTgscCs9QltmKytdPDxxLHEr
PTgpLHY9c1twJnVdO2M6Zm9yKDs7KXtpZih3PXY+Pj4yNCxwPj4+PXcscS09dyx3PXY+Pj4xNiYy
NTUsISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1zWyg2NTUzNSZ2KSsocCYoMTw8dyktMSldO2Nv
bnRpbnVlIGN9YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsYy5tb2RlPWQ7YnJlYWsgYX1p
Zih5PTY1NTM1JnYsdyY9MTUscTx3JiYocCs9QltmKytdPDxxLHErPTgscTx3JiYocCs9QltmKytd
PDxxLHErPTgpKSx5Kz1wJigxPDx3KS0xLHk+ayl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9v
IGZhciBiYWNrIixjLm1vZGU9ZDticmVhayBhfWlmKHA+Pj49dyxxLT13LHc9aC1pLHk+dyl7aWYo
dz15LXcsdz5tJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIs
Yy5tb2RlPWQ7YnJlYWsgYX1pZih6PTAsQT1vLDA9PT1uKXtpZih6Kz1sLXcsdzx4KXt4LT13O2Rv
IENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9fWVsc2UgaWYobjx3KXtpZih6Kz1s
K24tdyx3LT1uLHc8eCl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7aWYoej0wLG48
eCl7dz1uLHgtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q319fWVsc2Ug
aWYoeis9bi13LHc8eCl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1D
fWZvcig7eD4yOylDW2grK109QVt6KytdLENbaCsrXT1BW3orK10sQ1toKytdPUFbeisrXSx4LT0z
O3gmJihDW2grK109QVt6KytdLHg+MSYmKENbaCsrXT1BW3orK10pKX1lbHNle3o9aC15O2RvIENb
aCsrXT1DW3orK10sQ1toKytdPUNbeisrXSxDW2grK109Q1t6KytdLHgtPTM7d2hpbGUoeD4yKTt4
JiYoQ1toKytdPUNbeisrXSx4PjEmJihDW2grK109Q1t6KytdKSl9YnJlYWt9fWJyZWFrfX13aGls
ZShmPGcmJmg8aik7eD1xPj4zLGYtPXgscS09eDw8MyxwJj0oMTw8cSktMSxhLm5leHRfaW49Zixh
Lm5leHRfb3V0PWgsYS5hdmFpbF9pbj1mPGc/NSsoZy1mKTo1LShmLWcpLGEuYXZhaWxfb3V0PWg8
aj8yNTcrKGotaCk6MjU3LShoLWopLGMuaG9sZD1wLGMuYml0cz1xfX0se31dLDcwOltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuKGE+Pj4yNCYyNTUpKyhh
Pj4+OCY2NTI4MCkrKCg2NTI4MCZhKTw8OCkrKCgyNTUmYSk8PDI0KX1mdW5jdGlvbiBlKCl7dGhp
cy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5m
bGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51
bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRo
aXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlz
Lm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51
bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49
MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyBz
LkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyBzLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0
aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0
aW9uIGYoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxhLnRvdGFsX2luPWEu
dG90YWxfb3V0PWIudG90YWw9MCxhLm1zZz0iIixiLndyYXAmJihhLmFkbGVyPTEmYi53cmFwKSxi
Lm1vZGU9TCxiLmxhc3Q9MCxiLmhhdmVkaWN0PTAsYi5kbWF4PTMyNzY4LGIuaGVhZD1udWxsLGIu
aG9sZD0wLGIuYml0cz0wLGIubGVuY29kZT1iLmxlbmR5bj1uZXcgcy5CdWYzMihwYSksYi5kaXN0
Y29kZT1iLmRpc3RkeW49bmV3IHMuQnVmMzIocWEpLGIuc2FuZT0xLGIuYmFjaz0tMSxEKTpHfWZ1
bmN0aW9uIGcoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxiLndzaXplPTAs
Yi53aGF2ZT0wLGIud25leHQ9MCxmKGEpKTpHfWZ1bmN0aW9uIGgoYSxiKXt2YXIgYyxkO3JldHVy
biBhJiZhLnN0YXRlPyhkPWEuc3RhdGUsYjwwPyhjPTAsYj0tYik6KGM9KGI+PjQpKzEsYjw0OCYm
KGImPTE1KSksYiYmKGI8OHx8Yj4xNSk/RzoobnVsbCE9PWQud2luZG93JiZkLndiaXRzIT09YiYm
KGQud2luZG93PW51bGwpLGQud3JhcD1jLGQud2JpdHM9YixnKGEpKSk6R31mdW5jdGlvbiBpKGEs
Yil7dmFyIGMsZDtyZXR1cm4gYT8oZD1uZXcgZSxhLnN0YXRlPWQsZC53aW5kb3c9bnVsbCxjPWgo
YSxiKSxjIT09RCYmKGEuc3RhdGU9bnVsbCksYyk6R31mdW5jdGlvbiBqKGEpe3JldHVybiBpKGEs
c2EpfWZ1bmN0aW9uIGsoYSl7aWYodGEpe3ZhciBiO2ZvcihxPW5ldyBzLkJ1ZjMyKDUxMikscj1u
ZXcgcy5CdWYzMigzMiksYj0wO2I8MTQ0OylhLmxlbnNbYisrXT04O2Zvcig7YjwyNTY7KWEubGVu
c1tiKytdPTk7Zm9yKDtiPDI4MDspYS5sZW5zW2IrK109Nztmb3IoO2I8Mjg4OylhLmxlbnNbYisr
XT04O2Zvcih3KHksYS5sZW5zLDAsMjg4LHEsMCxhLndvcmsse2JpdHM6OX0pLGI9MDtiPDMyOylh
LmxlbnNbYisrXT01O3coeixhLmxlbnMsMCwzMixyLDAsYS53b3JrLHtiaXRzOjV9KSx0YT0hMX1h
LmxlbmNvZGU9cSxhLmxlbmJpdHM9OSxhLmRpc3Rjb2RlPXIsYS5kaXN0Yml0cz01fWZ1bmN0aW9u
IGwoYSxiLGMsZCl7dmFyIGUsZj1hLnN0YXRlO3JldHVybiBudWxsPT09Zi53aW5kb3cmJihmLndz
aXplPTE8PGYud2JpdHMsZi53bmV4dD0wLGYud2hhdmU9MCxmLndpbmRvdz1uZXcgcy5CdWY4KGYu
d3NpemUpKSxkPj1mLndzaXplPyhzLmFycmF5U2V0KGYud2luZG93LGIsYy1mLndzaXplLGYud3Np
emUsMCksZi53bmV4dD0wLGYud2hhdmU9Zi53c2l6ZSk6KGU9Zi53c2l6ZS1mLnduZXh0LGU+ZCYm
KGU9ZCkscy5hcnJheVNldChmLndpbmRvdyxiLGMtZCxlLGYud25leHQpLGQtPWUsZD8ocy5hcnJh
eVNldChmLndpbmRvdyxiLGMtZCxkLDApLGYud25leHQ9ZCxmLndoYXZlPWYud3NpemUpOihmLndu
ZXh0Kz1lLGYud25leHQ9PT1mLndzaXplJiYoZi53bmV4dD0wKSxmLndoYXZlPGYud3NpemUmJihm
LndoYXZlKz1lKSkpLDB9ZnVuY3Rpb24gbShhLGIpe3ZhciBjLGUsZixnLGgsaSxqLG0sbixvLHAs
cSxyLHBhLHFhLHJhLHNhLHRhLHVhLHZhLHdhLHhhLHlhLHphLEFhPTAsQmE9bmV3IHMuQnVmOCg0
KSxDYT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07aWYo
IWF8fCFhLnN0YXRlfHwhYS5vdXRwdXR8fCFhLmlucHV0JiYwIT09YS5hdmFpbF9pbilyZXR1cm4g
RztjPWEuc3RhdGUsYy5tb2RlPT09VyYmKGMubW9kZT1YKSxoPWEubmV4dF9vdXQsZj1hLm91dHB1
dCxqPWEuYXZhaWxfb3V0LGc9YS5uZXh0X2luLGU9YS5pbnB1dCxpPWEuYXZhaWxfaW4sbT1jLmhv
bGQsbj1jLmJpdHMsbz1pLHA9aix4YT1EO2E6Zm9yKDs7KXN3aXRjaChjLm1vZGUpe2Nhc2UgTDpp
ZigwPT09Yy53cmFwKXtjLm1vZGU9WDticmVha31mb3IoO248MTY7KXtpZigwPT09aSlicmVhayBh
O2ktLSxtKz1lW2crK108PG4sbis9OH1pZigyJmMud3JhcCYmMzU2MTU9PT1tKXtjLmNoZWNrPTAs
QmFbMF09MjU1Jm0sQmFbMV09bT4+PjgmMjU1LGMuY2hlY2s9dShjLmNoZWNrLEJhLDIsMCksbT0w
LG49MCxjLm1vZGU9TTticmVha31pZihjLmZsYWdzPTAsYy5oZWFkJiYoYy5oZWFkLmRvbmU9ITEp
LCEoMSZjLndyYXApfHwoKCgyNTUmbSk8PDgpKyhtPj44KSklMzEpe2EubXNnPSJpbmNvcnJlY3Qg
aGVhZGVyIGNoZWNrIixjLm1vZGU9bWE7YnJlYWt9aWYoKDE1Jm0pIT09Syl7YS5tc2c9InVua25v
d24gY29tcHJlc3Npb24gbWV0aG9kIixjLm1vZGU9bWE7YnJlYWt9aWYobT4+Pj00LG4tPTQsd2E9
KDE1Jm0pKzgsMD09PWMud2JpdHMpYy53Yml0cz13YTtlbHNlIGlmKHdhPmMud2JpdHMpe2EubXNn
PSJpbnZhbGlkIHdpbmRvdyBzaXplIixjLm1vZGU9bWE7YnJlYWt9Yy5kbWF4PTE8PHdhLGEuYWRs
ZXI9Yy5jaGVjaz0xLGMubW9kZT01MTImbT9VOlcsbT0wLG49MDticmVhaztjYXNlIE06Zm9yKDtu
PDE2Oyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoYy5mbGFncz1t
LCgyNTUmYy5mbGFncykhPT1LKXthLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLGMu
bW9kZT1tYTticmVha31pZig1NzM0NCZjLmZsYWdzKXthLm1zZz0idW5rbm93biBoZWFkZXIgZmxh
Z3Mgc2V0IixjLm1vZGU9bWE7YnJlYWt9Yy5oZWFkJiYoYy5oZWFkLnRleHQ9bT4+OCYxKSw1MTIm
Yy5mbGFncyYmKEJhWzBdPTI1NSZtLEJhWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXUoYy5jaGVjayxC
YSwyLDApKSxtPTAsbj0wLGMubW9kZT1OO2Nhc2UgTjpmb3IoO248MzI7KXtpZigwPT09aSlicmVh
ayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmhlYWQmJihjLmhlYWQudGltZT1tKSw1MTImYy5m
bGFncyYmKEJhWzBdPTI1NSZtLEJhWzFdPW0+Pj44JjI1NSxCYVsyXT1tPj4+MTYmMjU1LEJhWzNd
PW0+Pj4yNCYyNTUsYy5jaGVjaz11KGMuY2hlY2ssQmEsNCwwKSksbT0wLG49MCxjLm1vZGU9Tztj
YXNlIE86Zm9yKDtuPDE2Oyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9
Yy5oZWFkJiYoYy5oZWFkLnhmbGFncz0yNTUmbSxjLmhlYWQub3M9bT4+OCksNTEyJmMuZmxhZ3Mm
JihCYVswXT0yNTUmbSxCYVsxXT1tPj4+OCYyNTUsYy5jaGVjaz11KGMuY2hlY2ssQmEsMiwwKSks
bT0wLG49MCxjLm1vZGU9UDtjYXNlIFA6aWYoMTAyNCZjLmZsYWdzKXtmb3IoO248MTY7KXtpZigw
PT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aD1tLGMuaGVhZCYmKGMu
aGVhZC5leHRyYV9sZW49bSksNTEyJmMuZmxhZ3MmJihCYVswXT0yNTUmbSxCYVsxXT1tPj4+OCYy
NTUsYy5jaGVjaz11KGMuY2hlY2ssQmEsMiwwKSksbT0wLG49MH1lbHNlIGMuaGVhZCYmKGMuaGVh
ZC5leHRyYT1udWxsKTtjLm1vZGU9UTtjYXNlIFE6aWYoMTAyNCZjLmZsYWdzJiYocT1jLmxlbmd0
aCxxPmkmJihxPWkpLHEmJihjLmhlYWQmJih3YT1jLmhlYWQuZXh0cmFfbGVuLWMubGVuZ3RoLGMu
aGVhZC5leHRyYXx8KGMuaGVhZC5leHRyYT1uZXcgQXJyYXkoYy5oZWFkLmV4dHJhX2xlbikpLHMu
YXJyYXlTZXQoYy5oZWFkLmV4dHJhLGUsZyxxLHdhKSksNTEyJmMuZmxhZ3MmJihjLmNoZWNrPXUo
Yy5jaGVjayxlLHEsZykpLGktPXEsZys9cSxjLmxlbmd0aC09cSksYy5sZW5ndGgpKWJyZWFrIGE7
Yy5sZW5ndGg9MCxjLm1vZGU9UjtjYXNlIFI6aWYoMjA0OCZjLmZsYWdzKXtpZigwPT09aSlicmVh
ayBhO3E9MDtkbyB3YT1lW2crcSsrXSxjLmhlYWQmJndhJiZjLmxlbmd0aDw2NTUzNiYmKGMuaGVh
ZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHdhKSk7d2hpbGUod2EmJnE8aSk7aWYoNTEyJmMu
ZmxhZ3MmJihjLmNoZWNrPXUoYy5jaGVjayxlLHEsZykpLGktPXEsZys9cSx3YSlicmVhayBhfWVs
c2UgYy5oZWFkJiYoYy5oZWFkLm5hbWU9bnVsbCk7Yy5sZW5ndGg9MCxjLm1vZGU9UztjYXNlIFM6
aWYoNDA5NiZjLmZsYWdzKXtpZigwPT09aSlicmVhayBhO3E9MDtkbyB3YT1lW2crcSsrXSxjLmhl
YWQmJndhJiZjLmxlbmd0aDw2NTUzNiYmKGMuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJD
b2RlKHdhKSk7d2hpbGUod2EmJnE8aSk7aWYoNTEyJmMuZmxhZ3MmJihjLmNoZWNrPXUoYy5jaGVj
ayxlLHEsZykpLGktPXEsZys9cSx3YSlicmVhayBhfWVsc2UgYy5oZWFkJiYoYy5oZWFkLmNvbW1l
bnQ9bnVsbCk7Yy5tb2RlPVQ7Y2FzZSBUOmlmKDUxMiZjLmZsYWdzKXtmb3IoO248MTY7KXtpZigw
PT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtIT09KDY1NTM1JmMuY2hlY2sp
KXthLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsYy5tb2RlPW1hO2JyZWFrfW09MCxuPTB9Yy5o
ZWFkJiYoYy5oZWFkLmhjcmM9Yy5mbGFncz4+OSYxLGMuaGVhZC5kb25lPSEwKSxhLmFkbGVyPWMu
Y2hlY2s9MCxjLm1vZGU9VzticmVhaztjYXNlIFU6Zm9yKDtuPDMyOyl7aWYoMD09PWkpYnJlYWsg
YTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9YS5hZGxlcj1jLmNoZWNrPWQobSksbT0wLG49MCxjLm1v
ZGU9VjtjYXNlIFY6aWYoMD09PWMuaGF2ZWRpY3QpcmV0dXJuIGEubmV4dF9vdXQ9aCxhLmF2YWls
X291dD1qLGEubmV4dF9pbj1nLGEuYXZhaWxfaW49aSxjLmhvbGQ9bSxjLmJpdHM9bixGO2EuYWRs
ZXI9Yy5jaGVjaz0xLGMubW9kZT1XO2Nhc2UgVzppZihiPT09Qnx8Yj09PUMpYnJlYWsgYTtjYXNl
IFg6aWYoYy5sYXN0KXttPj4+PTcmbixuLT03Jm4sYy5tb2RlPWphO2JyZWFrfWZvcig7bjwzOyl7
aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9c3dpdGNoKGMubGFzdD0xJm0s
bT4+Pj0xLG4tPTEsMyZtKXtjYXNlIDA6Yy5tb2RlPVk7YnJlYWs7Y2FzZSAxOmlmKGsoYyksYy5t
b2RlPWNhLGI9PT1DKXttPj4+PTIsbi09MjticmVhayBhfWJyZWFrO2Nhc2UgMjpjLm1vZGU9Xzti
cmVhaztjYXNlIDM6YS5tc2c9ImludmFsaWQgYmxvY2sgdHlwZSIsYy5tb2RlPW1hfW0+Pj49Mixu
LT0yO2JyZWFrO2Nhc2UgWTpmb3IobT4+Pj03Jm4sbi09NyZuO248MzI7KXtpZigwPT09aSlicmVh
ayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigoNjU1MzUmbSkhPT0obT4+PjE2XjY1NTM1KSl7
YS5tc2c9ImludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMiLGMubW9kZT1tYTticmVha31pZihj
Lmxlbmd0aD02NTUzNSZtLG09MCxuPTAsYy5tb2RlPVosYj09PUMpYnJlYWsgYTtjYXNlIFo6Yy5t
b2RlPSQ7Y2FzZSAkOmlmKHE9Yy5sZW5ndGgpe2lmKHE+aSYmKHE9aSkscT5qJiYocT1qKSwwPT09
cSlicmVhayBhO3MuYXJyYXlTZXQoZixlLGcscSxoKSxpLT1xLGcrPXEsai09cSxoKz1xLGMubGVu
Z3RoLT1xO2JyZWFrfWMubW9kZT1XO2JyZWFrO2Nhc2UgXzpmb3IoO248MTQ7KXtpZigwPT09aSli
cmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihjLm5sZW49KDMxJm0pKzI1NyxtPj4+PTUs
bi09NSxjLm5kaXN0PSgzMSZtKSsxLG0+Pj49NSxuLT01LGMubmNvZGU9KDE1Jm0pKzQsbT4+Pj00
LG4tPTQsYy5ubGVuPjI4Nnx8Yy5uZGlzdD4zMCl7YS5tc2c9InRvbyBtYW55IGxlbmd0aCBvciBk
aXN0YW5jZSBzeW1ib2xzIixjLm1vZGU9bWE7YnJlYWt9Yy5oYXZlPTAsYy5tb2RlPWFhO2Nhc2Ug
YWE6Zm9yKDtjLmhhdmU8Yy5uY29kZTspe2Zvcig7bjwzOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0s
bSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5zW0NhW2MuaGF2ZSsrXV09NyZtLG0+Pj49MyxuLT0zfWZv
cig7Yy5oYXZlPDE5OyljLmxlbnNbQ2FbYy5oYXZlKytdXT0wO2lmKGMubGVuY29kZT1jLmxlbmR5
bixjLmxlbmJpdHM9Nyx5YT17Yml0czpjLmxlbmJpdHN9LHhhPXcoeCxjLmxlbnMsMCwxOSxjLmxl
bmNvZGUsMCxjLndvcmsseWEpLGMubGVuYml0cz15YS5iaXRzLHhhKXthLm1zZz0iaW52YWxpZCBj
b2RlIGxlbmd0aHMgc2V0IixjLm1vZGU9bWE7YnJlYWt9Yy5oYXZlPTAsYy5tb2RlPWJhO2Nhc2Ug
YmE6Zm9yKDtjLmhhdmU8Yy5ubGVuK2MubmRpc3Q7KXtmb3IoO0FhPWMubGVuY29kZVttJigxPDxj
LmxlbmJpdHMpLTFdLHFhPUFhPj4+MjQscmE9QWE+Pj4xNiYyNTUsc2E9NjU1MzUmQWEsIShxYTw9
bik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihzYTwxNiltPj4+
PXFhLG4tPXFhLGMubGVuc1tjLmhhdmUrK109c2E7ZWxzZXtpZigxNj09PXNhKXtmb3IoemE9cWEr
MjtuPHphOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobT4+Pj1x
YSxuLT1xYSwwPT09Yy5oYXZlKXthLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5t
b2RlPW1hO2JyZWFrfXdhPWMubGVuc1tjLmhhdmUtMV0scT0zKygzJm0pLG0+Pj49MixuLT0yfWVs
c2UgaWYoMTc9PT1zYSl7Zm9yKHphPXFhKzM7bjx6YTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0r
PWVbZysrXTw8bixuKz04fW0+Pj49cWEsbi09cWEsd2E9MCxxPTMrKDcmbSksbT4+Pj0zLG4tPTN9
ZWxzZXtmb3IoemE9cWErNztuPHphOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxu
LG4rPTh9bT4+Pj1xYSxuLT1xYSx3YT0wLHE9MTErKDEyNyZtKSxtPj4+PTcsbi09N31pZihjLmhh
dmUrcT5jLm5sZW4rYy5uZGlzdCl7YS5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLGMu
bW9kZT1tYTticmVha31mb3IoO3EtLTspYy5sZW5zW2MuaGF2ZSsrXT13YX19aWYoYy5tb2RlPT09
bWEpYnJlYWs7aWYoMD09PWMubGVuc1syNTZdKXthLm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3Np
bmcgZW5kLW9mLWJsb2NrIixjLm1vZGU9bWE7YnJlYWt9aWYoYy5sZW5iaXRzPTkseWE9e2JpdHM6
Yy5sZW5iaXRzfSx4YT13KHksYy5sZW5zLDAsYy5ubGVuLGMubGVuY29kZSwwLGMud29yayx5YSks
Yy5sZW5iaXRzPXlhLmJpdHMseGEpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQi
LGMubW9kZT1tYTticmVha31pZihjLmRpc3RiaXRzPTYsYy5kaXN0Y29kZT1jLmRpc3RkeW4seWE9
e2JpdHM6Yy5kaXN0Yml0c30seGE9dyh6LGMubGVucyxjLm5sZW4sYy5uZGlzdCxjLmRpc3Rjb2Rl
LDAsYy53b3JrLHlhKSxjLmRpc3RiaXRzPXlhLmJpdHMseGEpe2EubXNnPSJpbnZhbGlkIGRpc3Rh
bmNlcyBzZXQiLGMubW9kZT1tYTticmVha31pZihjLm1vZGU9Y2EsYj09PUMpYnJlYWsgYTtjYXNl
IGNhOmMubW9kZT1kYTtjYXNlIGRhOmlmKGk+PTYmJmo+PTI1OCl7YS5uZXh0X291dD1oLGEuYXZh
aWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFpbF9pbj1pLGMuaG9sZD1tLGMuYml0cz1uLHYoYSxw
KSxoPWEubmV4dF9vdXQsZj1hLm91dHB1dCxqPWEuYXZhaWxfb3V0LGc9YS5uZXh0X2luLGU9YS5p
bnB1dCxpPWEuYXZhaWxfaW4sbT1jLmhvbGQsbj1jLmJpdHMsYy5tb2RlPT09VyYmKGMuYmFjaz0t
MSk7YnJlYWt9Zm9yKGMuYmFjaz0wO0FhPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFh
PUFhPj4+MjQscmE9QWE+Pj4xNiYyNTUsc2E9NjU1MzUmQWEsIShxYTw9bik7KXtpZigwPT09aSli
cmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihyYSYmMD09PSgyNDAmcmEpKXtmb3IodGE9
cWEsdWE9cmEsdmE9c2E7QWE9Yy5sZW5jb2RlW3ZhKygobSYoMTw8dGErdWEpLTEpPj50YSldLHFh
PUFhPj4+MjQscmE9QWE+Pj4xNiYyNTUsc2E9NjU1MzUmQWEsISh0YStxYTw9bik7KXtpZigwPT09
aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRhLG4tPXRhLGMuYmFjays9dGF9
aWYobT4+Pj1xYSxuLT1xYSxjLmJhY2srPXFhLGMubGVuZ3RoPXNhLDA9PT1yYSl7Yy5tb2RlPWlh
O2JyZWFrfWlmKDMyJnJhKXtjLmJhY2s9LTEsYy5tb2RlPVc7YnJlYWt9aWYoNjQmcmEpe2EubXNn
PSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGMubW9kZT1tYTticmVha31jLmV4dHJhPTE1
JnJhLGMubW9kZT1lYTtjYXNlIGVhOmlmKGMuZXh0cmEpe2Zvcih6YT1jLmV4dHJhO248emE7KXtp
ZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aCs9bSYoMTw8Yy5l
eHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRyYSxjLmJhY2srPWMuZXh0cmF9Yy53YXM9Yy5s
ZW5ndGgsYy5tb2RlPWZhO2Nhc2UgZmE6Zm9yKDtBYT1jLmRpc3Rjb2RlW20mKDE8PGMuZGlzdGJp
dHMpLTFdLHFhPUFhPj4+MjQscmE9QWE+Pj4xNiYyNTUsc2E9NjU1MzUmQWEsIShxYTw9bik7KXtp
ZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigwPT09KDI0MCZyYSkpe2Zv
cih0YT1xYSx1YT1yYSx2YT1zYTtBYT1jLmRpc3Rjb2RlW3ZhKygobSYoMTw8dGErdWEpLTEpPj50
YSldLHFhPUFhPj4+MjQscmE9QWE+Pj4xNiYyNTUsc2E9NjU1MzUmQWEsISh0YStxYTw9bik7KXtp
ZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRhLG4tPXRhLGMuYmFj
ays9dGF9aWYobT4+Pj1xYSxuLT1xYSxjLmJhY2srPXFhLDY0JnJhKXthLm1zZz0iaW52YWxpZCBk
aXN0YW5jZSBjb2RlIixjLm1vZGU9bWE7YnJlYWt9Yy5vZmZzZXQ9c2EsYy5leHRyYT0xNSZyYSxj
Lm1vZGU9Z2E7Y2FzZSBnYTppZihjLmV4dHJhKXtmb3IoemE9Yy5leHRyYTtuPHphOyl7aWYoMD09
PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5vZmZzZXQrPW0mKDE8PGMuZXh0cmEp
LTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWlmKGMub2Zmc2V0PmMu
ZG1heCl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9bWE7YnJl
YWt9Yy5tb2RlPWhhO2Nhc2UgaGE6aWYoMD09PWopYnJlYWsgYTtpZihxPXAtaixjLm9mZnNldD5x
KXtpZihxPWMub2Zmc2V0LXEscT5jLndoYXZlJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3Rh
bmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPW1hO2JyZWFrfXE+Yy53bmV4dD8ocS09Yy53bmV4dCxy
PWMud3NpemUtcSk6cj1jLnduZXh0LXEscT5jLmxlbmd0aCYmKHE9Yy5sZW5ndGgpLHBhPWMud2lu
ZG93fWVsc2UgcGE9ZixyPWgtYy5vZmZzZXQscT1jLmxlbmd0aDtxPmomJihxPWopLGotPXEsYy5s
ZW5ndGgtPXE7ZG8gZltoKytdPXBhW3IrK107d2hpbGUoLS1xKTswPT09Yy5sZW5ndGgmJihjLm1v
ZGU9ZGEpO2JyZWFrO2Nhc2UgaWE6aWYoMD09PWopYnJlYWsgYTtmW2grK109Yy5sZW5ndGgsai0t
LGMubW9kZT1kYTticmVhaztjYXNlIGphOmlmKGMud3JhcCl7Zm9yKDtuPDMyOyl7aWYoMD09PWkp
YnJlYWsgYTtpLS0sbXw9ZVtnKytdPDxuLG4rPTh9aWYocC09aixhLnRvdGFsX291dCs9cCxjLnRv
dGFsKz1wLHAmJihhLmFkbGVyPWMuY2hlY2s9Yy5mbGFncz91KGMuY2hlY2ssZixwLGgtcCk6dChj
LmNoZWNrLGYscCxoLXApKSxwPWosKGMuZmxhZ3M/bTpkKG0pKSE9PWMuY2hlY2spe2EubXNnPSJp
bmNvcnJlY3QgZGF0YSBjaGVjayIsYy5tb2RlPW1hO2JyZWFrfW09MCxuPTB9Yy5tb2RlPWthO2Nh
c2Uga2E6aWYoYy53cmFwJiZjLmZsYWdzKXtmb3IoO248MzI7KXtpZigwPT09aSlicmVhayBhO2kt
LSxtKz1lW2crK108PG4sbis9OH1pZihtIT09KDQyOTQ5NjcyOTUmYy50b3RhbCkpe2EubXNnPSJp
bmNvcnJlY3QgbGVuZ3RoIGNoZWNrIixjLm1vZGU9bWE7YnJlYWt9bT0wLG49MH1jLm1vZGU9bGE7
Y2FzZSBsYTp4YT1FO2JyZWFrIGE7Y2FzZSBtYTp4YT1IO2JyZWFrIGE7Y2FzZSBuYTpyZXR1cm4g
STtjYXNlIG9hOmRlZmF1bHQ6cmV0dXJuIEd9cmV0dXJuIGEubmV4dF9vdXQ9aCxhLmF2YWlsX291
dD1qLGEubmV4dF9pbj1nLGEuYXZhaWxfaW49aSxjLmhvbGQ9bSxjLmJpdHM9biwoYy53c2l6ZXx8
cCE9PWEuYXZhaWxfb3V0JiZjLm1vZGU8bWEmJihjLm1vZGU8amF8fGIhPT1BKSkmJmwoYSxhLm91
dHB1dCxhLm5leHRfb3V0LHAtYS5hdmFpbF9vdXQpPyhjLm1vZGU9bmEsSSk6KG8tPWEuYXZhaWxf
aW4scC09YS5hdmFpbF9vdXQsYS50b3RhbF9pbis9byxhLnRvdGFsX291dCs9cCxjLnRvdGFsKz1w
LGMud3JhcCYmcCYmKGEuYWRsZXI9Yy5jaGVjaz1jLmZsYWdzP3UoYy5jaGVjayxmLHAsYS5uZXh0
X291dC1wKTp0KGMuY2hlY2ssZixwLGEubmV4dF9vdXQtcCkpLGEuZGF0YV90eXBlPWMuYml0cyso
Yy5sYXN0PzY0OjApKyhjLm1vZGU9PT1XPzEyODowKSsoYy5tb2RlPT09Y2F8fGMubW9kZT09PVo/
MjU2OjApLCgwPT09byYmMD09PXB8fGI9PT1BKSYmeGE9PT1EJiYoeGE9SikseGEpfWZ1bmN0aW9u
IG4oYSl7aWYoIWF8fCFhLnN0YXRlKXJldHVybiBHO3ZhciBiPWEuc3RhdGU7cmV0dXJuIGIud2lu
ZG93JiYoYi53aW5kb3c9bnVsbCksYS5zdGF0ZT1udWxsLER9ZnVuY3Rpb24gbyhhLGIpe3ZhciBj
O3JldHVybiBhJiZhLnN0YXRlPyhjPWEuc3RhdGUsMD09PSgyJmMud3JhcCk/RzooYy5oZWFkPWIs
Yi5kb25lPSExLEQpKTpHfWZ1bmN0aW9uIHAoYSxiKXt2YXIgYyxkLGUsZj1iLmxlbmd0aDtyZXR1
cm4gYSYmYS5zdGF0ZT8oYz1hLnN0YXRlLDAhPT1jLndyYXAmJmMubW9kZSE9PVY/RzpjLm1vZGU9
PT1WJiYoZD0xLGQ9dChkLGIsZiwwKSxkIT09Yy5jaGVjayk/SDooZT1sKGEsYixmLGYpKT8oYy5t
b2RlPW5hLEkpOihjLmhhdmVkaWN0PTEsRCkpOkd9dmFyIHEscixzPWEoIi4uL3V0aWxzL2NvbW1v
biIpLHQ9YSgiLi9hZGxlcjMyIiksdT1hKCIuL2NyYzMyIiksdj1hKCIuL2luZmZhc3QiKSx3PWEo
Ii4vaW5mdHJlZXMiKSx4PTAseT0xLHo9MixBPTQsQj01LEM9NixEPTAsRT0xLEY9MixHPS0yLEg9
LTMsST0tNCxKPS01LEs9OCxMPTEsTT0yLE49MyxPPTQsUD01LFE9NixSPTcsUz04LFQ9OSxVPTEw
LFY9MTEsVz0xMixYPTEzLFk9MTQsWj0xNSwkPTE2LF89MTcsYWE9MTgsYmE9MTksY2E9MjAsZGE9
MjEsZWE9MjIsZmE9MjMsZ2E9MjQsaGE9MjUsaWE9MjYsamE9Mjcsa2E9MjgsbGE9MjksbWE9MzAs
bmE9MzEsb2E9MzIscGE9ODUyLHFhPTU5MixyYT0xNSxzYT1yYSx0YT0hMDtjLmluZmxhdGVSZXNl
dD1nLGMuaW5mbGF0ZVJlc2V0Mj1oLGMuaW5mbGF0ZVJlc2V0S2VlcD1mLGMuaW5mbGF0ZUluaXQ9
aixjLmluZmxhdGVJbml0Mj1pLGMuaW5mbGF0ZT1tLGMuaW5mbGF0ZUVuZD1uLGMuaW5mbGF0ZUdl
dEhlYWRlcj1vLGMuaW5mbGF0ZVNldERpY3Rpb25hcnk9cCxjLmluZmxhdGVJbmZvPSJwYWtvIGlu
ZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjYyLCIuL2Fk
bGVyMzIiOjY0LCIuL2NyYzMyIjo2NiwiLi9pbmZmYXN0Ijo2OSwiLi9pbmZ0cmVlcyI6NzF9XSw3
MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1hKCIuLi91dGlscy9jb21tb24i
KSxlPTE1LGY9ODUyLGc9NTkyLGg9MCxpPTEsaj0yLGs9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMs
MTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIy
NywyNTgsMCwwXSxsPVsxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNiwxNywxNywxNywxNywxOCwxOCwx
OCwxOCwxOSwxOSwxOSwxOSwyMCwyMCwyMCwyMCwyMSwyMSwyMSwyMSwxNiw3Miw3OF0sbT1bMSwy
LDMsNCw1LDcsOSwxMywxNywyNSwzMyw0OSw2NSw5NywxMjksMTkzLDI1NywzODUsNTEzLDc2OSwx
MDI1LDE1MzcsMjA0OSwzMDczLDQwOTcsNjE0NSw4MTkzLDEyMjg5LDE2Mzg1LDI0NTc3LDAsMF0s
bj1bMTYsMTYsMTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMs
MjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRdO2IuZXhwb3J0cz1mdW5j
dGlvbihhLGIsYyxvLHAscSxyLHMpe3ZhciB0LHUsdix3LHgseSx6LEEsQixDPXMuYml0cyxEPTAs
RT0wLEY9MCxHPTAsSD0wLEk9MCxKPTAsSz0wLEw9MCxNPTAsTj1udWxsLE89MCxQPW5ldyBkLkJ1
ZjE2KGUrMSksUT1uZXcgZC5CdWYxNihlKzEpLFI9bnVsbCxTPTA7Zm9yKEQ9MDtEPD1lO0QrKylQ
W0RdPTA7Zm9yKEU9MDtFPG87RSsrKVBbYltjK0VdXSsrO2ZvcihIPUMsRz1lO0c+PTEmJjA9PT1Q
W0ddO0ctLSk7aWYoSD5HJiYoSD1HKSwwPT09RylyZXR1cm4gcFtxKytdPTIwOTcxNTIwLHBbcSsr
XT0yMDk3MTUyMCxzLmJpdHM9MSwwO2ZvcihGPTE7RjxHJiYwPT09UFtGXTtGKyspO2ZvcihIPEYm
JihIPUYpLEs9MSxEPTE7RDw9ZTtEKyspaWYoSzw8PTEsSy09UFtEXSxLPDApcmV0dXJuLTE7aWYo
Sz4wJiYoYT09PWh8fDEhPT1HKSlyZXR1cm4tMTtmb3IoUVsxXT0wLEQ9MTtEPGU7RCsrKVFbRCsx
XT1RW0RdK1BbRF07Zm9yKEU9MDtFPG87RSsrKTAhPT1iW2MrRV0mJihyW1FbYltjK0VdXSsrXT1F
KTtpZihhPT09aD8oTj1SPXIseT0xOSk6YT09PWk/KE49ayxPLT0yNTcsUj1sLFMtPTI1Nyx5PTI1
Nik6KE49bSxSPW4seT0tMSksTT0wLEU9MCxEPUYseD1xLEk9SCxKPTAsdj0tMSxMPTE8PEgsdz1M
LTEsYT09PWkmJkw+Znx8YT09PWomJkw+ZylyZXR1cm4gMTtmb3IoOzspe3o9RC1KLHJbRV08eT8o
QT0wLEI9cltFXSk6cltFXT55PyhBPVJbUytyW0VdXSxCPU5bTytyW0VdXSk6KEE9OTYsQj0wKSx0
PTE8PEQtSix1PTE8PEksRj11O2RvIHUtPXQscFt4KyhNPj5KKSt1XT16PDwyNHxBPDwxNnxCfDA7
d2hpbGUoMCE9PXUpO2Zvcih0PTE8PEQtMTtNJnQ7KXQ+Pj0xO2lmKDAhPT10PyhNJj10LTEsTSs9
dCk6TT0wLEUrKywwPT09LS1QW0RdKXtpZihEPT09RylicmVhaztEPWJbYytyW0VdXX1pZihEPkgm
JihNJncpIT09dil7Zm9yKDA9PT1KJiYoSj1IKSx4Kz1GLEk9RC1KLEs9MTw8STtJK0o8RyYmKEst
PVBbSStKXSwhKEs8PTApKTspSSsrLEs8PD0xO2lmKEwrPTE8PEksYT09PWkmJkw+Znx8YT09PWom
Jkw+ZylyZXR1cm4gMTt2PU0mdyxwW3ZdPUg8PDI0fEk8PDE2fHgtcXwwfX1yZXR1cm4gMCE9PU0m
JihwW3grTV09RC1KPDwyNHw2NDw8MTZ8MCkscy5iaXRzPUgsMH19LHsiLi4vdXRpbHMvY29tbW9u
Ijo2Mn1dLDcyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2IuZXhwb3J0cz17MjoibmVl
ZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6
InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9y
eSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSx7fV0s
NzM6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtmb3IodmFyIGI9
YS5sZW5ndGg7LS1iPj0wOylhW2JdPTB9ZnVuY3Rpb24gZShhLGIsYyxkLGUpe3RoaXMuc3RhdGlj
X3RyZWU9YSx0aGlzLmV4dHJhX2JpdHM9Yix0aGlzLmV4dHJhX2Jhc2U9Yyx0aGlzLmVsZW1zPWQs
dGhpcy5tYXhfbGVuZ3RoPWUsdGhpcy5oYXNfc3RyZWU9YSYmYS5sZW5ndGh9ZnVuY3Rpb24gZihh
LGIpe3RoaXMuZHluX3RyZWU9YSx0aGlzLm1heF9jb2RlPTAsdGhpcy5zdGF0X2Rlc2M9Yn1mdW5j
dGlvbiBnKGEpe3JldHVybiBhPDI1Nj9pYVthXTppYVsyNTYrKGE+Pj43KV19ZnVuY3Rpb24gaChh
LGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPTI1NSZiLGEucGVuZGluZ19idWZbYS5wZW5k
aW5nKytdPWI+Pj44JjI1NX1mdW5jdGlvbiBpKGEsYixjKXthLmJpX3ZhbGlkPlgtYz8oYS5iaV9i
dWZ8PWI8PGEuYmlfdmFsaWQmNjU1MzUsaChhLGEuYmlfYnVmKSxhLmJpX2J1Zj1iPj5YLWEuYmlf
dmFsaWQsYS5iaV92YWxpZCs9Yy1YKTooYS5iaV9idWZ8PWI8PGEuYmlfdmFsaWQmNjU1MzUsYS5i
aV92YWxpZCs9Yyl9ZnVuY3Rpb24gaihhLGIsYyl7aShhLGNbMipiXSxjWzIqYisxXSl9ZnVuY3Rp
b24gayhhLGIpe3ZhciBjPTA7ZG8gY3w9MSZhLGE+Pj49MSxjPDw9MTt3aGlsZSgtLWI+MCk7cmV0
dXJuIGM+Pj4xfWZ1bmN0aW9uIGwoYSl7MTY9PT1hLmJpX3ZhbGlkPyhoKGEsYS5iaV9idWYpLGEu
YmlfYnVmPTAsYS5iaV92YWxpZD0wKTphLmJpX3ZhbGlkPj04JiYoYS5wZW5kaW5nX2J1ZlthLnBl
bmRpbmcrK109MjU1JmEuYmlfYnVmLGEuYmlfYnVmPj49OCxhLmJpX3ZhbGlkLT04KX1mdW5jdGlv
biBtKGEsYil7dmFyIGMsZCxlLGYsZyxoLGk9Yi5keW5fdHJlZSxqPWIubWF4X2NvZGUsaz1iLnN0
YXRfZGVzYy5zdGF0aWNfdHJlZSxsPWIuc3RhdF9kZXNjLmhhc19zdHJlZSxtPWIuc3RhdF9kZXNj
LmV4dHJhX2JpdHMsbj1iLnN0YXRfZGVzYy5leHRyYV9iYXNlLG89Yi5zdGF0X2Rlc2MubWF4X2xl
bmd0aCxwPTA7Zm9yKGY9MDtmPD1XO2YrKylhLmJsX2NvdW50W2ZdPTA7Zm9yKGlbMiphLmhlYXBb
YS5oZWFwX21heF0rMV09MCwKK2M9YS5oZWFwX21heCsxO2M8VjtjKyspZD1hLmhlYXBbY10sZj1p
WzIqaVsyKmQrMV0rMV0rMSxmPm8mJihmPW8scCsrKSxpWzIqZCsxXT1mLGQ+anx8KGEuYmxfY291
bnRbZl0rKyxnPTAsZD49biYmKGc9bVtkLW5dKSxoPWlbMipkXSxhLm9wdF9sZW4rPWgqKGYrZyks
bCYmKGEuc3RhdGljX2xlbis9aCooa1syKmQrMV0rZykpKTtpZigwIT09cCl7ZG97Zm9yKGY9by0x
OzA9PT1hLmJsX2NvdW50W2ZdOylmLS07YS5ibF9jb3VudFtmXS0tLGEuYmxfY291bnRbZisxXSs9
MixhLmJsX2NvdW50W29dLS0scC09Mn13aGlsZShwPjApO2ZvcihmPW87MCE9PWY7Zi0tKWZvcihk
PWEuYmxfY291bnRbZl07MCE9PWQ7KWU9YS5oZWFwWy0tY10sZT5qfHwoaVsyKmUrMV0hPT1mJiYo
YS5vcHRfbGVuKz0oZi1pWzIqZSsxXSkqaVsyKmVdLGlbMiplKzFdPWYpLGQtLSl9fWZ1bmN0aW9u
IG4oYSxiLGMpe3ZhciBkLGUsZj1uZXcgQXJyYXkoVysxKSxnPTA7Zm9yKGQ9MTtkPD1XO2QrKylm
W2RdPWc9ZytjW2QtMV08PDE7Zm9yKGU9MDtlPD1iO2UrKyl7dmFyIGg9YVsyKmUrMV07MCE9PWgm
JihhWzIqZV09ayhmW2hdKyssaCkpfX1mdW5jdGlvbiBvKCl7dmFyIGEsYixjLGQsZixnPW5ldyBB
cnJheShXKzEpO2ZvcihjPTAsZD0wO2Q8US0xO2QrKylmb3Ioa2FbZF09YyxhPTA7YTwxPDxiYVtk
XTthKyspamFbYysrXT1kO2ZvcihqYVtjLTFdPWQsZj0wLGQ9MDtkPDE2O2QrKylmb3IobGFbZF09
ZixhPTA7YTwxPDxjYVtkXTthKyspaWFbZisrXT1kO2ZvcihmPj49NztkPFQ7ZCsrKWZvcihsYVtk
XT1mPDw3LGE9MDthPDE8PGNhW2RdLTc7YSsrKWlhWzI1NitmKytdPWQ7Zm9yKGI9MDtiPD1XO2Ir
KylnW2JdPTA7Zm9yKGE9MDthPD0xNDM7KWdhWzIqYSsxXT04LGErKyxnWzhdKys7Zm9yKDthPD0y
NTU7KWdhWzIqYSsxXT05LGErKyxnWzldKys7Zm9yKDthPD0yNzk7KWdhWzIqYSsxXT03LGErKyxn
WzddKys7Zm9yKDthPD0yODc7KWdhWzIqYSsxXT04LGErKyxnWzhdKys7Zm9yKG4oZ2EsUysxLGcp
LGE9MDthPFQ7YSsrKWhhWzIqYSsxXT01LGhhWzIqYV09ayhhLDUpO21hPW5ldyBlKGdhLGJhLFIr
MSxTLFcpLG5hPW5ldyBlKGhhLGNhLDAsVCxXKSxvYT1uZXcgZShuZXcgQXJyYXkoMCksZGEsMCxV
LFkpfWZ1bmN0aW9uIHAoYSl7dmFyIGI7Zm9yKGI9MDtiPFM7YisrKWEuZHluX2x0cmVlWzIqYl09
MDtmb3IoYj0wO2I8VDtiKyspYS5keW5fZHRyZWVbMipiXT0wO2ZvcihiPTA7YjxVO2IrKylhLmJs
X3RyZWVbMipiXT0wO2EuZHluX2x0cmVlWzIqWl09MSxhLm9wdF9sZW49YS5zdGF0aWNfbGVuPTAs
YS5sYXN0X2xpdD1hLm1hdGNoZXM9MH1mdW5jdGlvbiBxKGEpe2EuYmlfdmFsaWQ+OD9oKGEsYS5i
aV9idWYpOmEuYmlfdmFsaWQ+MCYmKGEucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWEuYmlfYnVm
KSxhLmJpX2J1Zj0wLGEuYmlfdmFsaWQ9MH1mdW5jdGlvbiByKGEsYixjLGQpe3EoYSksZCYmKGgo
YSxjKSxoKGEsfmMpKSxHLmFycmF5U2V0KGEucGVuZGluZ19idWYsYS53aW5kb3csYixjLGEucGVu
ZGluZyksYS5wZW5kaW5nKz1jfWZ1bmN0aW9uIHMoYSxiLGMsZCl7dmFyIGU9MipiLGY9MipjO3Jl
dHVybiBhW2VdPGFbZl18fGFbZV09PT1hW2ZdJiZkW2JdPD1kW2NdfWZ1bmN0aW9uIHQoYSxiLGMp
e2Zvcih2YXIgZD1hLmhlYXBbY10sZT1jPDwxO2U8PWEuaGVhcF9sZW4mJihlPGEuaGVhcF9sZW4m
JnMoYixhLmhlYXBbZSsxXSxhLmhlYXBbZV0sYS5kZXB0aCkmJmUrKywhcyhiLGQsYS5oZWFwW2Vd
LGEuZGVwdGgpKTspYS5oZWFwW2NdPWEuaGVhcFtlXSxjPWUsZTw8PTE7YS5oZWFwW2NdPWR9ZnVu
Y3Rpb24gdShhLGIsYyl7dmFyIGQsZSxmLGgsaz0wO2lmKDAhPT1hLmxhc3RfbGl0KWRvIGQ9YS5w
ZW5kaW5nX2J1ZlthLmRfYnVmKzIqa108PDh8YS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqaysxXSxl
PWEucGVuZGluZ19idWZbYS5sX2J1ZitrXSxrKyssMD09PWQ/aihhLGUsYik6KGY9amFbZV0saihh
LGYrUisxLGIpLGg9YmFbZl0sMCE9PWgmJihlLT1rYVtmXSxpKGEsZSxoKSksZC0tLGY9ZyhkKSxq
KGEsZixjKSxoPWNhW2ZdLDAhPT1oJiYoZC09bGFbZl0saShhLGQsaCkpKTt3aGlsZShrPGEubGFz
dF9saXQpO2ooYSxaLGIpfWZ1bmN0aW9uIHYoYSxiKXt2YXIgYyxkLGUsZj1iLmR5bl90cmVlLGc9
Yi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsaD1iLnN0YXRfZGVzYy5oYXNfc3RyZWUsaT1iLnN0YXRf
ZGVzYy5lbGVtcyxqPS0xO2ZvcihhLmhlYXBfbGVuPTAsYS5oZWFwX21heD1WLGM9MDtjPGk7Yysr
KTAhPT1mWzIqY10/KGEuaGVhcFsrK2EuaGVhcF9sZW5dPWo9YyxhLmRlcHRoW2NdPTApOmZbMipj
KzFdPTA7Zm9yKDthLmhlYXBfbGVuPDI7KWU9YS5oZWFwWysrYS5oZWFwX2xlbl09ajwyPysrajow
LGZbMiplXT0xLGEuZGVwdGhbZV09MCxhLm9wdF9sZW4tLSxoJiYoYS5zdGF0aWNfbGVuLT1nWzIq
ZSsxXSk7Zm9yKGIubWF4X2NvZGU9aixjPWEuaGVhcF9sZW4+PjE7Yz49MTtjLS0pdChhLGYsYyk7
ZT1pO2RvIGM9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS5oZWFwX2xlbi0tXSx0KGEsZiwx
KSxkPWEuaGVhcFsxXSxhLmhlYXBbLS1hLmhlYXBfbWF4XT1jLGEuaGVhcFstLWEuaGVhcF9tYXhd
PWQsZlsyKmVdPWZbMipjXStmWzIqZF0sYS5kZXB0aFtlXT0oYS5kZXB0aFtjXT49YS5kZXB0aFtk
XT9hLmRlcHRoW2NdOmEuZGVwdGhbZF0pKzEsZlsyKmMrMV09ZlsyKmQrMV09ZSxhLmhlYXBbMV09
ZSsrLHQoYSxmLDEpO3doaWxlKGEuaGVhcF9sZW4+PTIpO2EuaGVhcFstLWEuaGVhcF9tYXhdPWEu
aGVhcFsxXSxtKGEsYiksbihmLGosYS5ibF9jb3VudCl9ZnVuY3Rpb24gdyhhLGIsYyl7dmFyIGQs
ZSxmPS0xLGc9YlsxXSxoPTAsaT03LGo9NDtmb3IoMD09PWcmJihpPTEzOCxqPTMpLGJbMiooYysx
KSsxXT02NTUzNSxkPTA7ZDw9YztkKyspZT1nLGc9YlsyKihkKzEpKzFdLCsraDxpJiZlPT09Z3x8
KGg8aj9hLmJsX3RyZWVbMiplXSs9aDowIT09ZT8oZSE9PWYmJmEuYmxfdHJlZVsyKmVdKyssYS5i
bF90cmVlWzIqJF0rKyk6aDw9MTA/YS5ibF90cmVlWzIqX10rKzphLmJsX3RyZWVbMiphYV0rKyxo
PTAsZj1lLDA9PT1nPyhpPTEzOCxqPTMpOmU9PT1nPyhpPTYsaj0zKTooaT03LGo9NCkpfWZ1bmN0
aW9uIHgoYSxiLGMpe3ZhciBkLGUsZj0tMSxnPWJbMV0saD0wLGs9NyxsPTQ7Zm9yKDA9PT1nJiYo
az0xMzgsbD0zKSxkPTA7ZDw9YztkKyspaWYoZT1nLGc9YlsyKihkKzEpKzFdLCEoKytoPGsmJmU9
PT1nKSl7aWYoaDxsKXtkbyBqKGEsZSxhLmJsX3RyZWUpO3doaWxlKDAhPT0tLWgpfWVsc2UgMCE9
PWU/KGUhPT1mJiYoaihhLGUsYS5ibF90cmVlKSxoLS0pLGooYSwkLGEuYmxfdHJlZSksaShhLGgt
MywyKSk6aDw9MTA/KGooYSxfLGEuYmxfdHJlZSksaShhLGgtMywzKSk6KGooYSxhYSxhLmJsX3Ry
ZWUpLGkoYSxoLTExLDcpKTtoPTAsZj1lLDA9PT1nPyhrPTEzOCxsPTMpOmU9PT1nPyhrPTYsbD0z
KTooaz03LGw9NCl9fWZ1bmN0aW9uIHkoYSl7dmFyIGI7Zm9yKHcoYSxhLmR5bl9sdHJlZSxhLmxf
ZGVzYy5tYXhfY29kZSksdyhhLGEuZHluX2R0cmVlLGEuZF9kZXNjLm1heF9jb2RlKSx2KGEsYS5i
bF9kZXNjKSxiPVUtMTtiPj0zJiYwPT09YS5ibF90cmVlWzIqZWFbYl0rMV07Yi0tKTtyZXR1cm4g
YS5vcHRfbGVuKz0zKihiKzEpKzUrNSs0LGJ9ZnVuY3Rpb24geihhLGIsYyxkKXt2YXIgZTtmb3Io
aShhLGItMjU3LDUpLGkoYSxjLTEsNSksaShhLGQtNCw0KSxlPTA7ZTxkO2UrKylpKGEsYS5ibF90
cmVlWzIqZWFbZV0rMV0sMyk7eChhLGEuZHluX2x0cmVlLGItMSkseChhLGEuZHluX2R0cmVlLGMt
MSl9ZnVuY3Rpb24gQShhKXt2YXIgYixjPTQwOTM2MjQ0NDc7Zm9yKGI9MDtiPD0zMTtiKyssYz4+
Pj0xKWlmKDEmYyYmMCE9PWEuZHluX2x0cmVlWzIqYl0pcmV0dXJuIEk7aWYoMCE9PWEuZHluX2x0
cmVlWzE4XXx8MCE9PWEuZHluX2x0cmVlWzIwXXx8MCE9PWEuZHluX2x0cmVlWzI2XSlyZXR1cm4g
Sjtmb3IoYj0zMjtiPFI7YisrKWlmKDAhPT1hLmR5bl9sdHJlZVsyKmJdKXJldHVybiBKO3JldHVy
biBJfWZ1bmN0aW9uIEIoYSl7cGF8fChvKCkscGE9ITApLGEubF9kZXNjPW5ldyBmKGEuZHluX2x0
cmVlLG1hKSxhLmRfZGVzYz1uZXcgZihhLmR5bl9kdHJlZSxuYSksYS5ibF9kZXNjPW5ldyBmKGEu
YmxfdHJlZSxvYSksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTAscChhKX1mdW5jdGlvbiBDKGEsYixj
LGQpe2koYSwoTDw8MSkrKGQ/MTowKSwzKSxyKGEsYixjLCEwKX1mdW5jdGlvbiBEKGEpe2koYSxN
PDwxLDMpLGooYSxaLGdhKSxsKGEpfWZ1bmN0aW9uIEUoYSxiLGMsZCl7dmFyIGUsZixnPTA7YS5s
ZXZlbD4wPyhhLnN0cm0uZGF0YV90eXBlPT09SyYmKGEuc3RybS5kYXRhX3R5cGU9QShhKSksdihh
LGEubF9kZXNjKSx2KGEsYS5kX2Rlc2MpLGc9eShhKSxlPWEub3B0X2xlbiszKzc+Pj4zLGY9YS5z
dGF0aWNfbGVuKzMrNz4+PjMsZjw9ZSYmKGU9ZikpOmU9Zj1jKzUsYys0PD1lJiZiIT09LTE/Qyhh
LGIsYyxkKTphLnN0cmF0ZWd5PT09SHx8Zj09PWU/KGkoYSwoTTw8MSkrKGQ/MTowKSwzKSx1KGEs
Z2EsaGEpKTooaShhLChOPDwxKSsoZD8xOjApLDMpLHooYSxhLmxfZGVzYy5tYXhfY29kZSsxLGEu
ZF9kZXNjLm1heF9jb2RlKzEsZysxKSx1KGEsYS5keW5fbHRyZWUsYS5keW5fZHRyZWUpKSxwKGEp
LGQmJnEoYSl9ZnVuY3Rpb24gRihhLGIsYyl7cmV0dXJuIGEucGVuZGluZ19idWZbYS5kX2J1Zisy
KmEubGFzdF9saXRdPWI+Pj44JjI1NSxhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiphLmxhc3RfbGl0
KzFdPTI1NSZiLGEucGVuZGluZ19idWZbYS5sX2J1ZithLmxhc3RfbGl0XT0yNTUmYyxhLmxhc3Rf
bGl0KyssMD09PWI/YS5keW5fbHRyZWVbMipjXSsrOihhLm1hdGNoZXMrKyxiLS0sYS5keW5fbHRy
ZWVbMiooamFbY10rUisxKV0rKyxhLmR5bl9kdHJlZVsyKmcoYildKyspLGEubGFzdF9saXQ9PT1h
LmxpdF9idWZzaXplLTF9dmFyIEc9YSgiLi4vdXRpbHMvY29tbW9uIiksSD00LEk9MCxKPTEsSz0y
LEw9MCxNPTEsTj0yLE89MyxQPTI1OCxRPTI5LFI9MjU2LFM9UisxK1EsVD0zMCxVPTE5LFY9MipT
KzEsVz0xNSxYPTE2LFk9NyxaPTI1NiwkPTE2LF89MTcsYWE9MTgsYmE9WzAsMCwwLDAsMCwwLDAs
MCwxLDEsMSwxLDIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsMF0sY2E9WzAsMCwwLDAs
MSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMs
MTNdLGRhPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3XSxlYT1bMTYsMTcs
MTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0sZmE9NTEyLGdhPW5ldyBB
cnJheSgyKihTKzIpKTtkKGdhKTt2YXIgaGE9bmV3IEFycmF5KDIqVCk7ZChoYSk7dmFyIGlhPW5l
dyBBcnJheShmYSk7ZChpYSk7dmFyIGphPW5ldyBBcnJheShQLU8rMSk7ZChqYSk7dmFyIGthPW5l
dyBBcnJheShRKTtkKGthKTt2YXIgbGE9bmV3IEFycmF5KFQpO2QobGEpO3ZhciBtYSxuYSxvYSxw
YT0hMTtjLl90cl9pbml0PUIsYy5fdHJfc3RvcmVkX2Jsb2NrPUMsYy5fdHJfZmx1c2hfYmxvY2s9
RSxjLl90cl90YWxseT1GLGMuX3RyX2FsaWduPUR9LHsiLi4vdXRpbHMvY29tbW9uIjo2Mn1dLDc0
OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoKXt0aGlzLmlucHV0PW51
bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91
dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0
PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxl
cj0wfWIuZXhwb3J0cz1kfSx7fV19LHt9LFsxMF0pKDEwKX0pOwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3FyY29kZS5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3FyY29kZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NWU1ZDdiOTc0YTY2ZjRjMzA1MmViNjQ3MDhhY2VmNjcyYWMzNmNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvcXJjb2RlLmpzCkBAIC0wLDAgKzEsMTUzMyBAQAorLyoqCisg
KiBAZmlsZW92ZXJ2aWV3CisgKiAtIFVzaW5nIHRoZSAnUVJDb2RlIGZvciBKYXZhc2NyaXB0IGxp
YnJhcnknCisgKiAtIEZpeGVkIGRhdGFzZXQgb2YgJ1FSQ29kZSBmb3IgSmF2YXNjcmlwdCBsaWJy
YXJ5JyBmb3Igc3VwcG9ydCBmdWxsLXNwZWMuCisgKiAtIHRoaXMgbGlicmFyeSBoYXMgbm8gZGVw
ZW5kZW5jaWVzLgorICoKKyAqIEBhdXRob3IgZGF2aWRzaGltanMKKyAqIEBzZWUgPGEgaHJlZj0i
aHR0cDovL3d3dy5kLXByb2plY3QuY29tLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cuZC1w
cm9qZWN0LmNvbS88L2E+CisgKiBAc2VlIDxhIGhyZWY9Imh0dHA6Ly9qZXJvbWVldGllbm5lLmdp
dGh1Yi5jb20vanF1ZXJ5LXFyY29kZS8iIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vamVyb21lZXRp
ZW5uZS5naXRodWIuY29tL2pxdWVyeS1xcmNvZGUvPC9hPgorICovCit2YXIgUVJDb2RlCis7KGZ1
bmN0aW9uICgpIHsKKyAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIC8vIFFSQ29kZSBmb3IgSmF2YVNjcmlw
dAorICAvLworICAvLyBDb3B5cmlnaHQgKGMpIDIwMDkgS2F6dWhpa28gQXJhc2UKKyAgLy8KKyAg
Ly8gVVJMOiBodHRwOi8vd3d3LmQtcHJvamVjdC5jb20vCisgIC8vCisgIC8vIExpY2Vuc2VkIHVu
ZGVyIHRoZSBNSVQgbGljZW5zZToKKyAgLy8gICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xp
Y2Vuc2VzL21pdC1saWNlbnNlLnBocAorICAvLworICAvLyBUaGUgd29yZCAiUVIgQ29kZSIgaXMg
cmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YKKyAgLy8gREVOU08gV0FWRSBJTkNPUlBPUkFURUQKKyAg
Ly8gICBodHRwOi8vd3d3LmRlbnNvLXdhdmUuY29tL3FyY29kZS9mYXFwYXRlbnQtZS5odG1sCisg
IC8vCisgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBmdW5jdGlvbiBRUjhiaXRCeXRlIChkYXRhKSB7Cisg
ICAgdGhpcy5tb2RlID0gUVJNb2RlLk1PREVfOEJJVF9CWVRFCisgICAgdGhpcy5kYXRhID0gZGF0
YQorICAgIHRoaXMucGFyc2VkRGF0YSA9IFtdCisKKyAgICAvLyBBZGRlZCB0byBzdXBwb3J0IFVU
Ri04IENoYXJhY3RlcnMKKyAgICBmb3IgKHZhciBpID0gMCwgbCA9IHRoaXMuZGF0YS5sZW5ndGg7
IGkgPCBsOyBpKyspIHsKKyAgICAgIHZhciBieXRlQXJyYXkgPSBbXQorICAgICAgdmFyIGNvZGUg
PSB0aGlzLmRhdGEuY2hhckNvZGVBdChpKQorCisgICAgICBpZiAoY29kZSA+IDB4MTAwMDApIHsK
KyAgICAgICAgYnl0ZUFycmF5WzBdID0gMHhmMCB8ICgoY29kZSAmIDB4MWMwMDAwKSA+Pj4gMTgp
CisgICAgICAgIGJ5dGVBcnJheVsxXSA9IDB4ODAgfCAoKGNvZGUgJiAweDNmMDAwKSA+Pj4gMTIp
CisgICAgICAgIGJ5dGVBcnJheVsyXSA9IDB4ODAgfCAoKGNvZGUgJiAweGZjMCkgPj4+IDYpCisg
ICAgICAgIGJ5dGVBcnJheVszXSA9IDB4ODAgfCAoY29kZSAmIDB4M2YpCisgICAgICB9IGVsc2Ug
aWYgKGNvZGUgPiAweDgwMCkgeworICAgICAgICBieXRlQXJyYXlbMF0gPSAweGUwIHwgKChjb2Rl
ICYgMHhmMDAwKSA+Pj4gMTIpCisgICAgICAgIGJ5dGVBcnJheVsxXSA9IDB4ODAgfCAoKGNvZGUg
JiAweGZjMCkgPj4+IDYpCisgICAgICAgIGJ5dGVBcnJheVsyXSA9IDB4ODAgfCAoY29kZSAmIDB4
M2YpCisgICAgICB9IGVsc2UgaWYgKGNvZGUgPiAweDgwKSB7CisgICAgICAgIGJ5dGVBcnJheVsw
XSA9IDB4YzAgfCAoKGNvZGUgJiAweDdjMCkgPj4+IDYpCisgICAgICAgIGJ5dGVBcnJheVsxXSA9
IDB4ODAgfCAoY29kZSAmIDB4M2YpCisgICAgICB9IGVsc2UgeworICAgICAgICBieXRlQXJyYXlb
MF0gPSBjb2RlCisgICAgICB9CisKKyAgICAgIHRoaXMucGFyc2VkRGF0YS5wdXNoKGJ5dGVBcnJh
eSkKKyAgICB9CisKKyAgICB0aGlzLnBhcnNlZERhdGEgPSBBcnJheS5wcm90b3R5cGUuY29uY2F0
LmFwcGx5KFtdLCB0aGlzLnBhcnNlZERhdGEpCisKKyAgICBpZiAodGhpcy5wYXJzZWREYXRhLmxl
bmd0aCAhPSB0aGlzLmRhdGEubGVuZ3RoKSB7CisgICAgICB0aGlzLnBhcnNlZERhdGEudW5zaGlm
dCgxOTEpCisgICAgICB0aGlzLnBhcnNlZERhdGEudW5zaGlmdCgxODcpCisgICAgICB0aGlzLnBh
cnNlZERhdGEudW5zaGlmdCgyMzkpCisgICAgfQorICB9CisKKyAgUVI4Yml0Qnl0ZS5wcm90b3R5
cGUgPSB7CisgICAgZ2V0TGVuZ3RoOiBmdW5jdGlvbiAoYnVmZmVyKSB7CisgICAgICByZXR1cm4g
dGhpcy5wYXJzZWREYXRhLmxlbmd0aAorICAgIH0sCisgICAgd3JpdGU6IGZ1bmN0aW9uIChidWZm
ZXIpIHsKKyAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gdGhpcy5wYXJzZWREYXRhLmxlbmd0aDsg
aSA8IGw7IGkrKykgeworICAgICAgICBidWZmZXIucHV0KHRoaXMucGFyc2VkRGF0YVtpXSwgOCkK
KyAgICAgIH0KKyAgICB9CisgIH0KKworICBmdW5jdGlvbiBRUkNvZGVNb2RlbCAodHlwZU51bWJl
ciwgZXJyb3JDb3JyZWN0TGV2ZWwpIHsKKyAgICB0aGlzLnR5cGVOdW1iZXIgPSB0eXBlTnVtYmVy
CisgICAgdGhpcy5lcnJvckNvcnJlY3RMZXZlbCA9IGVycm9yQ29ycmVjdExldmVsCisgICAgdGhp
cy5tb2R1bGVzID0gbnVsbAorICAgIHRoaXMubW9kdWxlQ291bnQgPSAwCisgICAgdGhpcy5kYXRh
Q2FjaGUgPSBudWxsCisgICAgdGhpcy5kYXRhTGlzdCA9IFtdCisgIH0KKworICBRUkNvZGVNb2Rl
bC5wcm90b3R5cGUgPSB7CisgICAgYWRkRGF0YTogZnVuY3Rpb24gKGRhdGEpIHsKKyAgICAgIHZh
ciBuZXdEYXRhID0gbmV3IFFSOGJpdEJ5dGUoZGF0YSkKKyAgICAgIHRoaXMuZGF0YUxpc3QucHVz
aChuZXdEYXRhKQorICAgICAgdGhpcy5kYXRhQ2FjaGUgPSBudWxsCisgICAgfSwKKyAgICBpc0Rh
cms6IGZ1bmN0aW9uIChyb3csIGNvbCkgeworICAgICAgaWYgKAorICAgICAgICByb3cgPCAwIHx8
CisgICAgICAgIHRoaXMubW9kdWxlQ291bnQgPD0gcm93IHx8CisgICAgICAgIGNvbCA8IDAgfHwK
KyAgICAgICAgdGhpcy5tb2R1bGVDb3VudCA8PSBjb2wKKyAgICAgICkgeworICAgICAgICB0aHJv
dyBuZXcgRXJyb3Iocm93ICsgJywnICsgY29sKQorICAgICAgfQorICAgICAgcmV0dXJuIHRoaXMu
bW9kdWxlc1tyb3ddW2NvbF0KKyAgICB9LAorICAgIGdldE1vZHVsZUNvdW50OiBmdW5jdGlvbiAo
KSB7CisgICAgICByZXR1cm4gdGhpcy5tb2R1bGVDb3VudAorICAgIH0sCisgICAgbWFrZTogZnVu
Y3Rpb24gKCkgeworICAgICAgdGhpcy5tYWtlSW1wbChmYWxzZSwgdGhpcy5nZXRCZXN0TWFza1Bh
dHRlcm4oKSkKKyAgICB9LAorICAgIG1ha2VJbXBsOiBmdW5jdGlvbiAodGVzdCwgbWFza1BhdHRl
cm4pIHsKKyAgICAgIHRoaXMubW9kdWxlQ291bnQgPSB0aGlzLnR5cGVOdW1iZXIgKiA0ICsgMTcK
KyAgICAgIHRoaXMubW9kdWxlcyA9IG5ldyBBcnJheSh0aGlzLm1vZHVsZUNvdW50KQorICAgICAg
Zm9yICh2YXIgcm93ID0gMDsgcm93IDwgdGhpcy5tb2R1bGVDb3VudDsgcm93KyspIHsKKyAgICAg
ICAgdGhpcy5tb2R1bGVzW3Jvd10gPSBuZXcgQXJyYXkodGhpcy5tb2R1bGVDb3VudCkKKyAgICAg
ICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgdGhpcy5tb2R1bGVDb3VudDsgY29sKyspIHsKKyAg
ICAgICAgICB0aGlzLm1vZHVsZXNbcm93XVtjb2xdID0gbnVsbAorICAgICAgICB9CisgICAgICB9
CisgICAgICB0aGlzLnNldHVwUG9zaXRpb25Qcm9iZVBhdHRlcm4oMCwgMCkKKyAgICAgIHRoaXMu
c2V0dXBQb3NpdGlvblByb2JlUGF0dGVybih0aGlzLm1vZHVsZUNvdW50IC0gNywgMCkKKyAgICAg
IHRoaXMuc2V0dXBQb3NpdGlvblByb2JlUGF0dGVybigwLCB0aGlzLm1vZHVsZUNvdW50IC0gNykK
KyAgICAgIHRoaXMuc2V0dXBQb3NpdGlvbkFkanVzdFBhdHRlcm4oKQorICAgICAgdGhpcy5zZXR1
cFRpbWluZ1BhdHRlcm4oKQorICAgICAgdGhpcy5zZXR1cFR5cGVJbmZvKHRlc3QsIG1hc2tQYXR0
ZXJuKQorICAgICAgaWYgKHRoaXMudHlwZU51bWJlciA+PSA3KSB7CisgICAgICAgIHRoaXMuc2V0
dXBUeXBlTnVtYmVyKHRlc3QpCisgICAgICB9CisgICAgICBpZiAodGhpcy5kYXRhQ2FjaGUgPT0g
bnVsbCkgeworICAgICAgICB0aGlzLmRhdGFDYWNoZSA9IFFSQ29kZU1vZGVsLmNyZWF0ZURhdGEo
CisgICAgICAgICAgdGhpcy50eXBlTnVtYmVyLAorICAgICAgICAgIHRoaXMuZXJyb3JDb3JyZWN0
TGV2ZWwsCisgICAgICAgICAgdGhpcy5kYXRhTGlzdAorICAgICAgICApCisgICAgICB9CisgICAg
ICB0aGlzLm1hcERhdGEodGhpcy5kYXRhQ2FjaGUsIG1hc2tQYXR0ZXJuKQorICAgIH0sCisgICAg
c2V0dXBQb3NpdGlvblByb2JlUGF0dGVybjogZnVuY3Rpb24gKHJvdywgY29sKSB7CisgICAgICBm
b3IgKHZhciByID0gLTE7IHIgPD0gNzsgcisrKSB7CisgICAgICAgIGlmIChyb3cgKyByIDw9IC0x
IHx8IHRoaXMubW9kdWxlQ291bnQgPD0gcm93ICsgcikgY29udGludWUKKyAgICAgICAgZm9yICh2
YXIgYyA9IC0xOyBjIDw9IDc7IGMrKykgeworICAgICAgICAgIGlmIChjb2wgKyBjIDw9IC0xIHx8
IHRoaXMubW9kdWxlQ291bnQgPD0gY29sICsgYykgY29udGludWUKKyAgICAgICAgICBpZiAoCisg
ICAgICAgICAgICAociA+PSAwICYmIHIgPD0gNiAmJiAoYyA9PSAwIHx8IGMgPT0gNikpIHx8Cisg
ICAgICAgICAgICAoYyA+PSAwICYmIGMgPD0gNiAmJiAociA9PSAwIHx8IHIgPT0gNikpIHx8Cisg
ICAgICAgICAgICAociA+PSAyICYmIHIgPD0gNCAmJiBjID49IDIgJiYgYyA8PSA0KQorICAgICAg
ICAgICkgeworICAgICAgICAgICAgdGhpcy5tb2R1bGVzW3JvdyArIHJdW2NvbCArIGNdID0gdHJ1
ZQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLm1vZHVsZXNbcm93ICsgcl1b
Y29sICsgY10gPSBmYWxzZQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0s
CisgICAgZ2V0QmVzdE1hc2tQYXR0ZXJuOiBmdW5jdGlvbiAoKSB7CisgICAgICB2YXIgbWluTG9z
dFBvaW50ID0gMAorICAgICAgdmFyIHBhdHRlcm4gPSAwCisgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDg7IGkrKykgeworICAgICAgICB0aGlzLm1ha2VJbXBsKHRydWUsIGkpCisgICAgICAgIHZh
ciBsb3N0UG9pbnQgPSBRUlV0aWwuZ2V0TG9zdFBvaW50KHRoaXMpCisgICAgICAgIGlmIChpID09
IDAgfHwgbWluTG9zdFBvaW50ID4gbG9zdFBvaW50KSB7CisgICAgICAgICAgbWluTG9zdFBvaW50
ID0gbG9zdFBvaW50CisgICAgICAgICAgcGF0dGVybiA9IGkKKyAgICAgICAgfQorICAgICAgfQor
ICAgICAgcmV0dXJuIHBhdHRlcm4KKyAgICB9LAorICAgIGNyZWF0ZU1vdmllQ2xpcDogZnVuY3Rp
b24gKHRhcmdldF9tYywgaW5zdGFuY2VfbmFtZSwgZGVwdGgpIHsKKyAgICAgIHZhciBxcl9tYyA9
IHRhcmdldF9tYy5jcmVhdGVFbXB0eU1vdmllQ2xpcChpbnN0YW5jZV9uYW1lLCBkZXB0aCkKKyAg
ICAgIHZhciBjcyA9IDEKKyAgICAgIHRoaXMubWFrZSgpCisgICAgICBmb3IgKHZhciByb3cgPSAw
OyByb3cgPCB0aGlzLm1vZHVsZXMubGVuZ3RoOyByb3crKykgeworICAgICAgICB2YXIgeSA9IHJv
dyAqIGNzCisgICAgICAgIGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IHRoaXMubW9kdWxlc1tyb3dd
Lmxlbmd0aDsgY29sKyspIHsKKyAgICAgICAgICB2YXIgeCA9IGNvbCAqIGNzCisgICAgICAgICAg
dmFyIGRhcmsgPSB0aGlzLm1vZHVsZXNbcm93XVtjb2xdCisgICAgICAgICAgaWYgKGRhcmspIHsK
KyAgICAgICAgICAgIHFyX21jLmJlZ2luRmlsbCgwLCAxMDApCisgICAgICAgICAgICBxcl9tYy5t
b3ZlVG8oeCwgeSkKKyAgICAgICAgICAgIHFyX21jLmxpbmVUbyh4ICsgY3MsIHkpCisgICAgICAg
ICAgICBxcl9tYy5saW5lVG8oeCArIGNzLCB5ICsgY3MpCisgICAgICAgICAgICBxcl9tYy5saW5l
VG8oeCwgeSArIGNzKQorICAgICAgICAgICAgcXJfbWMuZW5kRmlsbCgpCisgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gcXJfbWMKKyAgICB9LAorICAgIHNldHVw
VGltaW5nUGF0dGVybjogZnVuY3Rpb24gKCkgeworICAgICAgZm9yICh2YXIgciA9IDg7IHIgPCB0
aGlzLm1vZHVsZUNvdW50IC0gODsgcisrKSB7CisgICAgICAgIGlmICh0aGlzLm1vZHVsZXNbcl1b
Nl0gIT0gbnVsbCkgeworICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIH0KKyAgICAgICAgdGhp
cy5tb2R1bGVzW3JdWzZdID0gciAlIDIgPT0gMAorICAgICAgfQorICAgICAgZm9yICh2YXIgYyA9
IDg7IGMgPCB0aGlzLm1vZHVsZUNvdW50IC0gODsgYysrKSB7CisgICAgICAgIGlmICh0aGlzLm1v
ZHVsZXNbNl1bY10gIT0gbnVsbCkgeworICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIH0KKyAg
ICAgICAgdGhpcy5tb2R1bGVzWzZdW2NdID0gYyAlIDIgPT0gMAorICAgICAgfQorICAgIH0sCisg
ICAgc2V0dXBQb3NpdGlvbkFkanVzdFBhdHRlcm46IGZ1bmN0aW9uICgpIHsKKyAgICAgIHZhciBw
b3MgPSBRUlV0aWwuZ2V0UGF0dGVyblBvc2l0aW9uKHRoaXMudHlwZU51bWJlcikKKyAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcG9zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGZvciAodmFyIGog
PSAwOyBqIDwgcG9zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgdmFyIHJvdyA9IHBvc1tpXQor
ICAgICAgICAgIHZhciBjb2wgPSBwb3Nbal0KKyAgICAgICAgICBpZiAodGhpcy5tb2R1bGVzW3Jv
d11bY29sXSAhPSBudWxsKSB7CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgIH0KKyAg
ICAgICAgICBmb3IgKHZhciByID0gLTI7IHIgPD0gMjsgcisrKSB7CisgICAgICAgICAgICBmb3Ig
KHZhciBjID0gLTI7IGMgPD0gMjsgYysrKSB7CisgICAgICAgICAgICAgIGlmICgKKyAgICAgICAg
ICAgICAgICByID09IC0yIHx8CisgICAgICAgICAgICAgICAgciA9PSAyIHx8CisgICAgICAgICAg
ICAgICAgYyA9PSAtMiB8fAorICAgICAgICAgICAgICAgIGMgPT0gMiB8fAorICAgICAgICAgICAg
ICAgIChyID09IDAgJiYgYyA9PSAwKQorICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLm1vZHVsZXNbcm93ICsgcl1bY29sICsgY10gPSB0cnVlCisgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2R1bGVzW3JvdyArIHJdW2NvbCArIGNdID0g
ZmFsc2UKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgfQorICAgIH0sCisgICAgc2V0dXBUeXBlTnVtYmVyOiBmdW5jdGlvbiAodGVz
dCkgeworICAgICAgdmFyIGJpdHMgPSBRUlV0aWwuZ2V0QkNIVHlwZU51bWJlcih0aGlzLnR5cGVO
dW1iZXIpCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE4OyBpKyspIHsKKyAgICAgICAgdmFy
IG1vZCA9ICF0ZXN0ICYmICgoYml0cyA+PiBpKSAmIDEpID09IDEKKyAgICAgICAgdGhpcy5tb2R1
bGVzW01hdGguZmxvb3IoaSAvIDMpXVtpICUgMyArIHRoaXMubW9kdWxlQ291bnQgLSA4IC0gM10g
PSBtb2QKKyAgICAgIH0KKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTg7IGkrKykgeworICAg
ICAgICB2YXIgbW9kID0gIXRlc3QgJiYgKChiaXRzID4+IGkpICYgMSkgPT0gMQorICAgICAgICB0
aGlzLm1vZHVsZXNbaSAlIDMgKyB0aGlzLm1vZHVsZUNvdW50IC0gOCAtIDNdW01hdGguZmxvb3Io
aSAvIDMpXSA9IG1vZAorICAgICAgfQorICAgIH0sCisgICAgc2V0dXBUeXBlSW5mbzogZnVuY3Rp
b24gKHRlc3QsIG1hc2tQYXR0ZXJuKSB7CisgICAgICB2YXIgZGF0YSA9ICh0aGlzLmVycm9yQ29y
cmVjdExldmVsIDw8IDMpIHwgbWFza1BhdHRlcm4KKyAgICAgIHZhciBiaXRzID0gUVJVdGlsLmdl
dEJDSFR5cGVJbmZvKGRhdGEpCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDE1OyBpKyspIHsK
KyAgICAgICAgdmFyIG1vZCA9ICF0ZXN0ICYmICgoYml0cyA+PiBpKSAmIDEpID09IDEKKyAgICAg
ICAgaWYgKGkgPCA2KSB7CisgICAgICAgICAgdGhpcy5tb2R1bGVzW2ldWzhdID0gbW9kCisgICAg
ICAgIH0gZWxzZSBpZiAoaSA8IDgpIHsKKyAgICAgICAgICB0aGlzLm1vZHVsZXNbaSArIDFdWzhd
ID0gbW9kCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgdGhpcy5tb2R1bGVzW3RoaXMubW9k
dWxlQ291bnQgLSAxNSArIGldWzhdID0gbW9kCisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTU7IGkrKykgeworICAgICAgICB2YXIgbW9kID0gIXRlc3QgJiYg
KChiaXRzID4+IGkpICYgMSkgPT0gMQorICAgICAgICBpZiAoaSA8IDgpIHsKKyAgICAgICAgICB0
aGlzLm1vZHVsZXNbOF1bdGhpcy5tb2R1bGVDb3VudCAtIGkgLSAxXSA9IG1vZAorICAgICAgICB9
IGVsc2UgaWYgKGkgPCA5KSB7CisgICAgICAgICAgdGhpcy5tb2R1bGVzWzhdWzE1IC0gaSAtIDEg
KyAxXSA9IG1vZAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHRoaXMubW9kdWxlc1s4XVsx
NSAtIGkgLSAxXSA9IG1vZAorICAgICAgICB9CisgICAgICB9CisgICAgICB0aGlzLm1vZHVsZXNb
dGhpcy5tb2R1bGVDb3VudCAtIDhdWzhdID0gIXRlc3QKKyAgICB9LAorICAgIG1hcERhdGE6IGZ1
bmN0aW9uIChkYXRhLCBtYXNrUGF0dGVybikgeworICAgICAgdmFyIGluYyA9IC0xCisgICAgICB2
YXIgcm93ID0gdGhpcy5tb2R1bGVDb3VudCAtIDEKKyAgICAgIHZhciBiaXRJbmRleCA9IDcKKyAg
ICAgIHZhciBieXRlSW5kZXggPSAwCisgICAgICBmb3IgKHZhciBjb2wgPSB0aGlzLm1vZHVsZUNv
dW50IC0gMTsgY29sID4gMDsgY29sIC09IDIpIHsKKyAgICAgICAgaWYgKGNvbCA9PSA2KSBjb2wt
LQorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwg
MjsgYysrKSB7CisgICAgICAgICAgICBpZiAodGhpcy5tb2R1bGVzW3Jvd11bY29sIC0gY10gPT0g
bnVsbCkgeworICAgICAgICAgICAgICB2YXIgZGFyayA9IGZhbHNlCisgICAgICAgICAgICAgIGlm
IChieXRlSW5kZXggPCBkYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGRhcmsgPSAoKGRh
dGFbYnl0ZUluZGV4XSA+Pj4gYml0SW5kZXgpICYgMSkgPT0gMQorICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgIHZhciBtYXNrID0gUVJVdGlsLmdldE1hc2sobWFza1BhdHRlcm4sIHJvdywg
Y29sIC0gYykKKyAgICAgICAgICAgICAgaWYgKG1hc2spIHsKKyAgICAgICAgICAgICAgICBkYXJr
ID0gIWRhcmsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB0aGlzLm1vZHVsZXNbcm93
XVtjb2wgLSBjXSA9IGRhcmsKKyAgICAgICAgICAgICAgYml0SW5kZXgtLQorICAgICAgICAgICAg
ICBpZiAoYml0SW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBieXRlSW5kZXgrKworICAg
ICAgICAgICAgICAgIGJpdEluZGV4ID0gNworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICAgIHJvdyArPSBpbmMKKyAgICAgICAgICBpZiAocm93IDwg
MCB8fCB0aGlzLm1vZHVsZUNvdW50IDw9IHJvdykgeworICAgICAgICAgICAgcm93IC09IGluYwor
ICAgICAgICAgICAgaW5jID0gLWluYworICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KKyAgUVJDb2RlTW9kZWwuUEFEMCA9IDB4ZWMK
KyAgUVJDb2RlTW9kZWwuUEFEMSA9IDB4MTEKKyAgUVJDb2RlTW9kZWwuY3JlYXRlRGF0YSA9IGZ1
bmN0aW9uICh0eXBlTnVtYmVyLCBlcnJvckNvcnJlY3RMZXZlbCwgZGF0YUxpc3QpIHsKKyAgICB2
YXIgcnNCbG9ja3MgPSBRUlJTQmxvY2suZ2V0UlNCbG9ja3ModHlwZU51bWJlciwgZXJyb3JDb3Jy
ZWN0TGV2ZWwpCisgICAgdmFyIGJ1ZmZlciA9IG5ldyBRUkJpdEJ1ZmZlcigpCisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBkYXRhTGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgdmFyIGRhdGEgPSBk
YXRhTGlzdFtpXQorICAgICAgYnVmZmVyLnB1dChkYXRhLm1vZGUsIDQpCisgICAgICBidWZmZXIu
cHV0KAorICAgICAgICBkYXRhLmdldExlbmd0aCgpLAorICAgICAgICBRUlV0aWwuZ2V0TGVuZ3Ro
SW5CaXRzKGRhdGEubW9kZSwgdHlwZU51bWJlcikKKyAgICAgICkKKyAgICAgIGRhdGEud3JpdGUo
YnVmZmVyKQorICAgIH0KKyAgICB2YXIgdG90YWxEYXRhQ291bnQgPSAwCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByc0Jsb2Nrcy5sZW5ndGg7IGkrKykgeworICAgICAgdG90YWxEYXRhQ291bnQg
Kz0gcnNCbG9ja3NbaV0uZGF0YUNvdW50CisgICAgfQorICAgIGlmIChidWZmZXIuZ2V0TGVuZ3Ro
SW5CaXRzKCkgPiB0b3RhbERhdGFDb3VudCAqIDgpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcigK
KyAgICAgICAgJ2NvZGUgbGVuZ3RoIG92ZXJmbG93LiAoJyArCisgICAgICAgICAgYnVmZmVyLmdl
dExlbmd0aEluQml0cygpICsKKyAgICAgICAgICAnPicgKworICAgICAgICAgIHRvdGFsRGF0YUNv
dW50ICogOCArCisgICAgICAgICAgJyknCisgICAgICApCisgICAgfQorICAgIGlmIChidWZmZXIu
Z2V0TGVuZ3RoSW5CaXRzKCkgKyA0IDw9IHRvdGFsRGF0YUNvdW50ICogOCkgeworICAgICAgYnVm
ZmVyLnB1dCgwLCA0KQorICAgIH0KKyAgICB3aGlsZSAoYnVmZmVyLmdldExlbmd0aEluQml0cygp
ICUgOCAhPSAwKSB7CisgICAgICBidWZmZXIucHV0Qml0KGZhbHNlKQorICAgIH0KKyAgICB3aGls
ZSAodHJ1ZSkgeworICAgICAgaWYgKGJ1ZmZlci5nZXRMZW5ndGhJbkJpdHMoKSA+PSB0b3RhbERh
dGFDb3VudCAqIDgpIHsKKyAgICAgICAgYnJlYWsKKyAgICAgIH0KKyAgICAgIGJ1ZmZlci5wdXQo
UVJDb2RlTW9kZWwuUEFEMCwgOCkKKyAgICAgIGlmIChidWZmZXIuZ2V0TGVuZ3RoSW5CaXRzKCkg
Pj0gdG90YWxEYXRhQ291bnQgKiA4KSB7CisgICAgICAgIGJyZWFrCisgICAgICB9CisgICAgICBi
dWZmZXIucHV0KFFSQ29kZU1vZGVsLlBBRDEsIDgpCisgICAgfQorICAgIHJldHVybiBRUkNvZGVN
b2RlbC5jcmVhdGVCeXRlcyhidWZmZXIsIHJzQmxvY2tzKQorICB9CisgIFFSQ29kZU1vZGVsLmNy
ZWF0ZUJ5dGVzID0gZnVuY3Rpb24gKGJ1ZmZlciwgcnNCbG9ja3MpIHsKKyAgICB2YXIgb2Zmc2V0
ID0gMAorICAgIHZhciBtYXhEY0NvdW50ID0gMAorICAgIHZhciBtYXhFY0NvdW50ID0gMAorICAg
IHZhciBkY2RhdGEgPSBuZXcgQXJyYXkocnNCbG9ja3MubGVuZ3RoKQorICAgIHZhciBlY2RhdGEg
PSBuZXcgQXJyYXkocnNCbG9ja3MubGVuZ3RoKQorICAgIGZvciAodmFyIHIgPSAwOyByIDwgcnNC
bG9ja3MubGVuZ3RoOyByKyspIHsKKyAgICAgIHZhciBkY0NvdW50ID0gcnNCbG9ja3Nbcl0uZGF0
YUNvdW50CisgICAgICB2YXIgZWNDb3VudCA9IHJzQmxvY2tzW3JdLnRvdGFsQ291bnQgLSBkY0Nv
dW50CisgICAgICBtYXhEY0NvdW50ID0gTWF0aC5tYXgobWF4RGNDb3VudCwgZGNDb3VudCkKKyAg
ICAgIG1heEVjQ291bnQgPSBNYXRoLm1heChtYXhFY0NvdW50LCBlY0NvdW50KQorICAgICAgZGNk
YXRhW3JdID0gbmV3IEFycmF5KGRjQ291bnQpCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRj
ZGF0YVtyXS5sZW5ndGg7IGkrKykgeworICAgICAgICBkY2RhdGFbcl1baV0gPSAweGZmICYgYnVm
ZmVyLmJ1ZmZlcltpICsgb2Zmc2V0XQorICAgICAgfQorICAgICAgb2Zmc2V0ICs9IGRjQ291bnQK
KyAgICAgIHZhciByc1BvbHkgPSBRUlV0aWwuZ2V0RXJyb3JDb3JyZWN0UG9seW5vbWlhbChlY0Nv
dW50KQorICAgICAgdmFyIHJhd1BvbHkgPSBuZXcgUVJQb2x5bm9taWFsKGRjZGF0YVtyXSwgcnNQ
b2x5LmdldExlbmd0aCgpIC0gMSkKKyAgICAgIHZhciBtb2RQb2x5ID0gcmF3UG9seS5tb2QocnNQ
b2x5KQorICAgICAgZWNkYXRhW3JdID0gbmV3IEFycmF5KHJzUG9seS5nZXRMZW5ndGgoKSAtIDEp
CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVjZGF0YVtyXS5sZW5ndGg7IGkrKykgeworICAg
ICAgICB2YXIgbW9kSW5kZXggPSBpICsgbW9kUG9seS5nZXRMZW5ndGgoKSAtIGVjZGF0YVtyXS5s
ZW5ndGgKKyAgICAgICAgZWNkYXRhW3JdW2ldID0gbW9kSW5kZXggPj0gMCA/IG1vZFBvbHkuZ2V0
KG1vZEluZGV4KSA6IDAKKyAgICAgIH0KKyAgICB9CisgICAgdmFyIHRvdGFsQ29kZUNvdW50ID0g
MAorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnNCbG9ja3MubGVuZ3RoOyBpKyspIHsKKyAgICAg
IHRvdGFsQ29kZUNvdW50ICs9IHJzQmxvY2tzW2ldLnRvdGFsQ291bnQKKyAgICB9CisgICAgdmFy
IGRhdGEgPSBuZXcgQXJyYXkodG90YWxDb2RlQ291bnQpCisgICAgdmFyIGluZGV4ID0gMAorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWF4RGNDb3VudDsgaSsrKSB7CisgICAgICBmb3IgKHZhciBy
ID0gMDsgciA8IHJzQmxvY2tzLmxlbmd0aDsgcisrKSB7CisgICAgICAgIGlmIChpIDwgZGNkYXRh
W3JdLmxlbmd0aCkgeworICAgICAgICAgIGRhdGFbaW5kZXgrK10gPSBkY2RhdGFbcl1baV0KKyAg
ICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1heEVjQ291
bnQ7IGkrKykgeworICAgICAgZm9yICh2YXIgciA9IDA7IHIgPCByc0Jsb2Nrcy5sZW5ndGg7IHIr
KykgeworICAgICAgICBpZiAoaSA8IGVjZGF0YVtyXS5sZW5ndGgpIHsKKyAgICAgICAgICBkYXRh
W2luZGV4KytdID0gZWNkYXRhW3JdW2ldCisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuIGRhdGEKKyAgfQorICB2YXIgUVJNb2RlID0geworICAgIE1PREVfTlVNQkVSOiAxIDw8
IDAsCisgICAgTU9ERV9BTFBIQV9OVU06IDEgPDwgMSwKKyAgICBNT0RFXzhCSVRfQllURTogMSA8
PCAyLAorICAgIE1PREVfS0FOSkk6IDEgPDwgMworICB9CisgIHZhciBRUkVycm9yQ29ycmVjdExl
dmVsID0geyBMOiAxLCBNOiAwLCBROiAzLCBIOiAyIH0KKyAgdmFyIFFSTWFza1BhdHRlcm4gPSB7
CisgICAgUEFUVEVSTjAwMDogMCwKKyAgICBQQVRURVJOMDAxOiAxLAorICAgIFBBVFRFUk4wMTA6
IDIsCisgICAgUEFUVEVSTjAxMTogMywKKyAgICBQQVRURVJOMTAwOiA0LAorICAgIFBBVFRFUk4x
MDE6IDUsCisgICAgUEFUVEVSTjExMDogNiwKKyAgICBQQVRURVJOMTExOiA3CisgIH0KKyAgdmFy
IFFSVXRpbCA9IHsKKyAgICBQQVRURVJOX1BPU0lUSU9OX1RBQkxFOiBbCisgICAgICBbXSwKKyAg
ICAgIFs2LCAxOF0sCisgICAgICBbNiwgMjJdLAorICAgICAgWzYsIDI2XSwKKyAgICAgIFs2LCAz
MF0sCisgICAgICBbNiwgMzRdLAorICAgICAgWzYsIDIyLCAzOF0sCisgICAgICBbNiwgMjQsIDQy
XSwKKyAgICAgIFs2LCAyNiwgNDZdLAorICAgICAgWzYsIDI4LCA1MF0sCisgICAgICBbNiwgMzAs
IDU0XSwKKyAgICAgIFs2LCAzMiwgNThdLAorICAgICAgWzYsIDM0LCA2Ml0sCisgICAgICBbNiwg
MjYsIDQ2LCA2Nl0sCisgICAgICBbNiwgMjYsIDQ4LCA3MF0sCisgICAgICBbNiwgMjYsIDUwLCA3
NF0sCisgICAgICBbNiwgMzAsIDU0LCA3OF0sCisgICAgICBbNiwgMzAsIDU2LCA4Ml0sCisgICAg
ICBbNiwgMzAsIDU4LCA4Nl0sCisgICAgICBbNiwgMzQsIDYyLCA5MF0sCisgICAgICBbNiwgMjgs
IDUwLCA3MiwgOTRdLAorICAgICAgWzYsIDI2LCA1MCwgNzQsIDk4XSwKKyAgICAgIFs2LCAzMCwg
NTQsIDc4LCAxMDJdLAorICAgICAgWzYsIDI4LCA1NCwgODAsIDEwNl0sCisgICAgICBbNiwgMzIs
IDU4LCA4NCwgMTEwXSwKKyAgICAgIFs2LCAzMCwgNTgsIDg2LCAxMTRdLAorICAgICAgWzYsIDM0
LCA2MiwgOTAsIDExOF0sCisgICAgICBbNiwgMjYsIDUwLCA3NCwgOTgsIDEyMl0sCisgICAgICBb
NiwgMzAsIDU0LCA3OCwgMTAyLCAxMjZdLAorICAgICAgWzYsIDI2LCA1MiwgNzgsIDEwNCwgMTMw
XSwKKyAgICAgIFs2LCAzMCwgNTYsIDgyLCAxMDgsIDEzNF0sCisgICAgICBbNiwgMzQsIDYwLCA4
NiwgMTEyLCAxMzhdLAorICAgICAgWzYsIDMwLCA1OCwgODYsIDExNCwgMTQyXSwKKyAgICAgIFs2
LCAzNCwgNjIsIDkwLCAxMTgsIDE0Nl0sCisgICAgICBbNiwgMzAsIDU0LCA3OCwgMTAyLCAxMjYs
IDE1MF0sCisgICAgICBbNiwgMjQsIDUwLCA3NiwgMTAyLCAxMjgsIDE1NF0sCisgICAgICBbNiwg
MjgsIDU0LCA4MCwgMTA2LCAxMzIsIDE1OF0sCisgICAgICBbNiwgMzIsIDU4LCA4NCwgMTEwLCAx
MzYsIDE2Ml0sCisgICAgICBbNiwgMjYsIDU0LCA4MiwgMTEwLCAxMzgsIDE2Nl0sCisgICAgICBb
NiwgMzAsIDU4LCA4NiwgMTE0LCAxNDIsIDE3MF0KKyAgICBdLAorICAgIEcxNToKKyAgICAgICgx
IDw8IDEwKSB8CisgICAgICAoMSA8PCA4KSB8CisgICAgICAoMSA8PCA1KSB8CisgICAgICAoMSA8
PCA0KSB8CisgICAgICAoMSA8PCAyKSB8CisgICAgICAoMSA8PCAxKSB8CisgICAgICAoMSA8PCAw
KSwKKyAgICBHMTg6CisgICAgICAoMSA8PCAxMikgfAorICAgICAgKDEgPDwgMTEpIHwKKyAgICAg
ICgxIDw8IDEwKSB8CisgICAgICAoMSA8PCA5KSB8CisgICAgICAoMSA8PCA4KSB8CisgICAgICAo
MSA8PCA1KSB8CisgICAgICAoMSA8PCAyKSB8CisgICAgICAoMSA8PCAwKSwKKyAgICBHMTVfTUFT
SzogKDEgPDwgMTQpIHwgKDEgPDwgMTIpIHwgKDEgPDwgMTApIHwgKDEgPDwgNCkgfCAoMSA8PCAx
KSwKKyAgICBnZXRCQ0hUeXBlSW5mbzogZnVuY3Rpb24gKGRhdGEpIHsKKyAgICAgIHZhciBkID0g
ZGF0YSA8PCAxMAorICAgICAgd2hpbGUgKFFSVXRpbC5nZXRCQ0hEaWdpdChkKSAtIFFSVXRpbC5n
ZXRCQ0hEaWdpdChRUlV0aWwuRzE1KSA+PSAwKSB7CisgICAgICAgIGQgXj0KKyAgICAgICAgICBR
UlV0aWwuRzE1IDw8IChRUlV0aWwuZ2V0QkNIRGlnaXQoZCkgLSBRUlV0aWwuZ2V0QkNIRGlnaXQo
UVJVdGlsLkcxNSkpCisgICAgICB9CisgICAgICByZXR1cm4gKChkYXRhIDw8IDEwKSB8IGQpIF4g
UVJVdGlsLkcxNV9NQVNLCisgICAgfSwKKyAgICBnZXRCQ0hUeXBlTnVtYmVyOiBmdW5jdGlvbiAo
ZGF0YSkgeworICAgICAgdmFyIGQgPSBkYXRhIDw8IDEyCisgICAgICB3aGlsZSAoUVJVdGlsLmdl
dEJDSERpZ2l0KGQpIC0gUVJVdGlsLmdldEJDSERpZ2l0KFFSVXRpbC5HMTgpID49IDApIHsKKyAg
ICAgICAgZCBePQorICAgICAgICAgIFFSVXRpbC5HMTggPDwgKFFSVXRpbC5nZXRCQ0hEaWdpdChk
KSAtIFFSVXRpbC5nZXRCQ0hEaWdpdChRUlV0aWwuRzE4KSkKKyAgICAgIH0KKyAgICAgIHJldHVy
biAoZGF0YSA8PCAxMikgfCBkCisgICAgfSwKKyAgICBnZXRCQ0hEaWdpdDogZnVuY3Rpb24gKGRh
dGEpIHsKKyAgICAgIHZhciBkaWdpdCA9IDAKKyAgICAgIHdoaWxlIChkYXRhICE9IDApIHsKKyAg
ICAgICAgZGlnaXQrKworICAgICAgICBkYXRhID4+Pj0gMQorICAgICAgfQorICAgICAgcmV0dXJu
IGRpZ2l0CisgICAgfSwKKyAgICBnZXRQYXR0ZXJuUG9zaXRpb246IGZ1bmN0aW9uICh0eXBlTnVt
YmVyKSB7CisgICAgICByZXR1cm4gUVJVdGlsLlBBVFRFUk5fUE9TSVRJT05fVEFCTEVbdHlwZU51
bWJlciAtIDFdCisgICAgfSwKKyAgICBnZXRNYXNrOiBmdW5jdGlvbiAobWFza1BhdHRlcm4sIGks
IGopIHsKKyAgICAgIHN3aXRjaCAobWFza1BhdHRlcm4pIHsKKyAgICAgICAgY2FzZSBRUk1hc2tQ
YXR0ZXJuLlBBVFRFUk4wMDA6CisgICAgICAgICAgcmV0dXJuIChpICsgaikgJSAyID09IDAKKyAg
ICAgICAgY2FzZSBRUk1hc2tQYXR0ZXJuLlBBVFRFUk4wMDE6CisgICAgICAgICAgcmV0dXJuIGkg
JSAyID09IDAKKyAgICAgICAgY2FzZSBRUk1hc2tQYXR0ZXJuLlBBVFRFUk4wMTA6CisgICAgICAg
ICAgcmV0dXJuIGogJSAzID09IDAKKyAgICAgICAgY2FzZSBRUk1hc2tQYXR0ZXJuLlBBVFRFUk4w
MTE6CisgICAgICAgICAgcmV0dXJuIChpICsgaikgJSAzID09IDAKKyAgICAgICAgY2FzZSBRUk1h
c2tQYXR0ZXJuLlBBVFRFUk4xMDA6CisgICAgICAgICAgcmV0dXJuIChNYXRoLmZsb29yKGkgLyAy
KSArIE1hdGguZmxvb3IoaiAvIDMpKSAlIDIgPT0gMAorICAgICAgICBjYXNlIFFSTWFza1BhdHRl
cm4uUEFUVEVSTjEwMToKKyAgICAgICAgICByZXR1cm4gKGkgKiBqKSAlIDIgKyAoaSAqIGopICUg
MyA9PSAwCisgICAgICAgIGNhc2UgUVJNYXNrUGF0dGVybi5QQVRURVJOMTEwOgorICAgICAgICAg
IHJldHVybiAoKGkgKiBqKSAlIDIgKyAoaSAqIGopICUgMykgJSAyID09IDAKKyAgICAgICAgY2Fz
ZSBRUk1hc2tQYXR0ZXJuLlBBVFRFUk4xMTE6CisgICAgICAgICAgcmV0dXJuICgoaSAqIGopICUg
MyArIChpICsgaikgJSAyKSAlIDIgPT0gMAorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIG1hc2tQYXR0ZXJuOicgKyBtYXNrUGF0dGVybikKKyAgICAgIH0K
KyAgICB9LAorICAgIGdldEVycm9yQ29ycmVjdFBvbHlub21pYWw6IGZ1bmN0aW9uIChlcnJvckNv
cnJlY3RMZW5ndGgpIHsKKyAgICAgIHZhciBhID0gbmV3IFFSUG9seW5vbWlhbChbMV0sIDApCisg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVycm9yQ29ycmVjdExlbmd0aDsgaSsrKSB7CisgICAg
ICAgIGEgPSBhLm11bHRpcGx5KG5ldyBRUlBvbHlub21pYWwoWzEsIFFSTWF0aC5nZXhwKGkpXSwg
MCkpCisgICAgICB9CisgICAgICByZXR1cm4gYQorICAgIH0sCisgICAgZ2V0TGVuZ3RoSW5CaXRz
OiBmdW5jdGlvbiAobW9kZSwgdHlwZSkgeworICAgICAgaWYgKHR5cGUgPj0gMSAmJiB0eXBlIDwg
MTApIHsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgICAgY2FzZSBRUk1vZGUuTU9E
RV9OVU1CRVI6CisgICAgICAgICAgICByZXR1cm4gMTAKKyAgICAgICAgICBjYXNlIFFSTW9kZS5N
T0RFX0FMUEhBX05VTToKKyAgICAgICAgICAgIHJldHVybiA5CisgICAgICAgICAgY2FzZSBRUk1v
ZGUuTU9ERV84QklUX0JZVEU6CisgICAgICAgICAgICByZXR1cm4gOAorICAgICAgICAgIGNhc2Ug
UVJNb2RlLk1PREVfS0FOSkk6CisgICAgICAgICAgICByZXR1cm4gOAorICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21vZGU6JyArIG1vZGUpCisgICAgICAg
IH0KKyAgICAgIH0gZWxzZSBpZiAodHlwZSA8IDI3KSB7CisgICAgICAgIHN3aXRjaCAobW9kZSkg
eworICAgICAgICAgIGNhc2UgUVJNb2RlLk1PREVfTlVNQkVSOgorICAgICAgICAgICAgcmV0dXJu
IDEyCisgICAgICAgICAgY2FzZSBRUk1vZGUuTU9ERV9BTFBIQV9OVU06CisgICAgICAgICAgICBy
ZXR1cm4gMTEKKyAgICAgICAgICBjYXNlIFFSTW9kZS5NT0RFXzhCSVRfQllURToKKyAgICAgICAg
ICAgIHJldHVybiAxNgorICAgICAgICAgIGNhc2UgUVJNb2RlLk1PREVfS0FOSkk6CisgICAgICAg
ICAgICByZXR1cm4gMTAKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdtb2RlOicgKyBtb2RlKQorICAgICAgICB9CisgICAgICB9IGVsc2UgaWYgKHR5cGUg
PCA0MSkgeworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgICBjYXNlIFFSTW9kZS5N
T0RFX05VTUJFUjoKKyAgICAgICAgICAgIHJldHVybiAxNAorICAgICAgICAgIGNhc2UgUVJNb2Rl
Lk1PREVfQUxQSEFfTlVNOgorICAgICAgICAgICAgcmV0dXJuIDEzCisgICAgICAgICAgY2FzZSBR
Uk1vZGUuTU9ERV84QklUX0JZVEU6CisgICAgICAgICAgICByZXR1cm4gMTYKKyAgICAgICAgICBj
YXNlIFFSTW9kZS5NT0RFX0tBTkpJOgorICAgICAgICAgICAgcmV0dXJuIDEyCisgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9kZTonICsgbW9kZSkKKyAg
ICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eXBlOicg
KyB0eXBlKQorICAgICAgfQorICAgIH0sCisgICAgZ2V0TG9zdFBvaW50OiBmdW5jdGlvbiAocXJD
b2RlKSB7CisgICAgICB2YXIgbW9kdWxlQ291bnQgPSBxckNvZGUuZ2V0TW9kdWxlQ291bnQoKQor
ICAgICAgdmFyIGxvc3RQb2ludCA9IDAKKyAgICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IG1v
ZHVsZUNvdW50OyByb3crKykgeworICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBtb2R1
bGVDb3VudDsgY29sKyspIHsKKyAgICAgICAgICB2YXIgc2FtZUNvdW50ID0gMAorICAgICAgICAg
IHZhciBkYXJrID0gcXJDb2RlLmlzRGFyayhyb3csIGNvbCkKKyAgICAgICAgICBmb3IgKHZhciBy
ID0gLTE7IHIgPD0gMTsgcisrKSB7CisgICAgICAgICAgICBpZiAocm93ICsgciA8IDAgfHwgbW9k
dWxlQ291bnQgPD0gcm93ICsgcikgeworICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZm9yICh2YXIgYyA9IC0xOyBjIDw9IDE7IGMrKykgeworICAgICAg
ICAgICAgICBpZiAoY29sICsgYyA8IDAgfHwgbW9kdWxlQ291bnQgPD0gY29sICsgYykgeworICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYg
KHIgPT0gMCAmJiBjID09IDApIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgIGlmIChkYXJrID09IHFyQ29kZS5pc0Rhcmsocm93ICsgciwg
Y29sICsgYykpIHsKKyAgICAgICAgICAgICAgICBzYW1lQ291bnQrKworICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChzYW1lQ291bnQgPiA1
KSB7CisgICAgICAgICAgICBsb3N0UG9pbnQgKz0gMyArIHNhbWVDb3VudCAtIDUKKyAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IG1v
ZHVsZUNvdW50IC0gMTsgcm93KyspIHsKKyAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwg
bW9kdWxlQ291bnQgLSAxOyBjb2wrKykgeworICAgICAgICAgIHZhciBjb3VudCA9IDAKKyAgICAg
ICAgICBpZiAocXJDb2RlLmlzRGFyayhyb3csIGNvbCkpIGNvdW50KysKKyAgICAgICAgICBpZiAo
cXJDb2RlLmlzRGFyayhyb3cgKyAxLCBjb2wpKSBjb3VudCsrCisgICAgICAgICAgaWYgKHFyQ29k
ZS5pc0Rhcmsocm93LCBjb2wgKyAxKSkgY291bnQrKworICAgICAgICAgIGlmIChxckNvZGUuaXNE
YXJrKHJvdyArIDEsIGNvbCArIDEpKSBjb3VudCsrCisgICAgICAgICAgaWYgKGNvdW50ID09IDAg
fHwgY291bnQgPT0gNCkgeworICAgICAgICAgICAgbG9zdFBvaW50ICs9IDMKKyAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IG1vZHVs
ZUNvdW50OyByb3crKykgeworICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBtb2R1bGVD
b3VudCAtIDY7IGNvbCsrKSB7CisgICAgICAgICAgaWYgKAorICAgICAgICAgICAgcXJDb2RlLmlz
RGFyayhyb3csIGNvbCkgJiYKKyAgICAgICAgICAgICFxckNvZGUuaXNEYXJrKHJvdywgY29sICsg
MSkgJiYKKyAgICAgICAgICAgIHFyQ29kZS5pc0Rhcmsocm93LCBjb2wgKyAyKSAmJgorICAgICAg
ICAgICAgcXJDb2RlLmlzRGFyayhyb3csIGNvbCArIDMpICYmCisgICAgICAgICAgICBxckNvZGUu
aXNEYXJrKHJvdywgY29sICsgNCkgJiYKKyAgICAgICAgICAgICFxckNvZGUuaXNEYXJrKHJvdywg
Y29sICsgNSkgJiYKKyAgICAgICAgICAgIHFyQ29kZS5pc0Rhcmsocm93LCBjb2wgKyA2KQorICAg
ICAgICAgICkgeworICAgICAgICAgICAgbG9zdFBvaW50ICs9IDQwCisgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICB9CisgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBtb2R1bGVDb3Vu
dDsgY29sKyspIHsKKyAgICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbW9kdWxlQ291bnQg
LSA2OyByb3crKykgeworICAgICAgICAgIGlmICgKKyAgICAgICAgICAgIHFyQ29kZS5pc0Rhcmso
cm93LCBjb2wpICYmCisgICAgICAgICAgICAhcXJDb2RlLmlzRGFyayhyb3cgKyAxLCBjb2wpICYm
CisgICAgICAgICAgICBxckNvZGUuaXNEYXJrKHJvdyArIDIsIGNvbCkgJiYKKyAgICAgICAgICAg
IHFyQ29kZS5pc0Rhcmsocm93ICsgMywgY29sKSAmJgorICAgICAgICAgICAgcXJDb2RlLmlzRGFy
ayhyb3cgKyA0LCBjb2wpICYmCisgICAgICAgICAgICAhcXJDb2RlLmlzRGFyayhyb3cgKyA1LCBj
b2wpICYmCisgICAgICAgICAgICBxckNvZGUuaXNEYXJrKHJvdyArIDYsIGNvbCkKKyAgICAgICAg
ICApIHsKKyAgICAgICAgICAgIGxvc3RQb2ludCArPSA0MAorICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgfQorICAgICAgdmFyIGRhcmtDb3VudCA9IDAKKyAgICAgIGZvciAodmFyIGNvbCA9
IDA7IGNvbCA8IG1vZHVsZUNvdW50OyBjb2wrKykgeworICAgICAgICBmb3IgKHZhciByb3cgPSAw
OyByb3cgPCBtb2R1bGVDb3VudDsgcm93KyspIHsKKyAgICAgICAgICBpZiAocXJDb2RlLmlzRGFy
ayhyb3csIGNvbCkpIHsKKyAgICAgICAgICAgIGRhcmtDb3VudCsrCisgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICB9CisgICAgICB2YXIgcmF0aW8gPSBNYXRoLmFicygxMDAgKiBkYXJrQ291
bnQgLyBtb2R1bGVDb3VudCAvIG1vZHVsZUNvdW50IC0gNTApIC8gNQorICAgICAgbG9zdFBvaW50
ICs9IHJhdGlvICogMTAKKyAgICAgIHJldHVybiBsb3N0UG9pbnQKKyAgICB9CisgIH0KKyAgdmFy
IFFSTWF0aCA9IHsKKyAgICBnbG9nOiBmdW5jdGlvbiAobikgeworICAgICAgaWYgKG4gPCAxKSB7
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignZ2xvZygnICsgbiArICcpJykKKyAgICAgIH0KKyAg
ICAgIHJldHVybiBRUk1hdGguTE9HX1RBQkxFW25dCisgICAgfSwKKyAgICBnZXhwOiBmdW5jdGlv
biAobikgeworICAgICAgd2hpbGUgKG4gPCAwKSB7CisgICAgICAgIG4gKz0gMjU1CisgICAgICB9
CisgICAgICB3aGlsZSAobiA+PSAyNTYpIHsKKyAgICAgICAgbiAtPSAyNTUKKyAgICAgIH0KKyAg
ICAgIHJldHVybiBRUk1hdGguRVhQX1RBQkxFW25dCisgICAgfSwKKyAgICBFWFBfVEFCTEU6IG5l
dyBBcnJheSgyNTYpLAorICAgIExPR19UQUJMRTogbmV3IEFycmF5KDI1NikKKyAgfQorICBmb3Ig
KHZhciBpID0gMDsgaSA8IDg7IGkrKykgeworICAgIFFSTWF0aC5FWFBfVEFCTEVbaV0gPSAxIDw8
IGkKKyAgfQorICBmb3IgKHZhciBpID0gODsgaSA8IDI1NjsgaSsrKSB7CisgICAgUVJNYXRoLkVY
UF9UQUJMRVtpXSA9CisgICAgICBRUk1hdGguRVhQX1RBQkxFW2kgLSA0XSBeCisgICAgICBRUk1h
dGguRVhQX1RBQkxFW2kgLSA1XSBeCisgICAgICBRUk1hdGguRVhQX1RBQkxFW2kgLSA2XSBeCisg
ICAgICBRUk1hdGguRVhQX1RBQkxFW2kgLSA4XQorICB9CisgIGZvciAodmFyIGkgPSAwOyBpIDwg
MjU1OyBpKyspIHsKKyAgICBRUk1hdGguTE9HX1RBQkxFW1FSTWF0aC5FWFBfVEFCTEVbaV1dID0g
aQorICB9CisgIGZ1bmN0aW9uIFFSUG9seW5vbWlhbCAobnVtLCBzaGlmdCkgeworICAgIGlmIChu
dW0ubGVuZ3RoID09IHVuZGVmaW5lZCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKG51bS5sZW5n
dGggKyAnLycgKyBzaGlmdCkKKyAgICB9CisgICAgdmFyIG9mZnNldCA9IDAKKyAgICB3aGlsZSAo
b2Zmc2V0IDwgbnVtLmxlbmd0aCAmJiBudW1bb2Zmc2V0XSA9PSAwKSB7CisgICAgICBvZmZzZXQr
KworICAgIH0KKyAgICB0aGlzLm51bSA9IG5ldyBBcnJheShudW0ubGVuZ3RoIC0gb2Zmc2V0ICsg
c2hpZnQpCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW0ubGVuZ3RoIC0gb2Zmc2V0OyBpKysp
IHsKKyAgICAgIHRoaXMubnVtW2ldID0gbnVtW2kgKyBvZmZzZXRdCisgICAgfQorICB9CisgIFFS
UG9seW5vbWlhbC5wcm90b3R5cGUgPSB7CisgICAgZ2V0OiBmdW5jdGlvbiAoaW5kZXgpIHsKKyAg
ICAgIHJldHVybiB0aGlzLm51bVtpbmRleF0KKyAgICB9LAorICAgIGdldExlbmd0aDogZnVuY3Rp
b24gKCkgeworICAgICAgcmV0dXJuIHRoaXMubnVtLmxlbmd0aAorICAgIH0sCisgICAgbXVsdGlw
bHk6IGZ1bmN0aW9uIChlKSB7CisgICAgICB2YXIgbnVtID0gbmV3IEFycmF5KHRoaXMuZ2V0TGVu
Z3RoKCkgKyBlLmdldExlbmd0aCgpIC0gMSkKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhp
cy5nZXRMZW5ndGgoKTsgaSsrKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZS5nZXRM
ZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgbnVtW2kgKyBqXSBePSBRUk1hdGguZ2V4cCgKKyAg
ICAgICAgICAgIFFSTWF0aC5nbG9nKHRoaXMuZ2V0KGkpKSArIFFSTWF0aC5nbG9nKGUuZ2V0KGop
KQorICAgICAgICAgICkKKyAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIG5ldyBRUlBv
bHlub21pYWwobnVtLCAwKQorICAgIH0sCisgICAgbW9kOiBmdW5jdGlvbiAoZSkgeworICAgICAg
aWYgKHRoaXMuZ2V0TGVuZ3RoKCkgLSBlLmdldExlbmd0aCgpIDwgMCkgeworICAgICAgICByZXR1
cm4gdGhpcworICAgICAgfQorICAgICAgdmFyIHJhdGlvID0gUVJNYXRoLmdsb2codGhpcy5nZXQo
MCkpIC0gUVJNYXRoLmdsb2coZS5nZXQoMCkpCisgICAgICB2YXIgbnVtID0gbmV3IEFycmF5KHRo
aXMuZ2V0TGVuZ3RoKCkpCisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZ2V0TGVuZ3Ro
KCk7IGkrKykgeworICAgICAgICBudW1baV0gPSB0aGlzLmdldChpKQorICAgICAgfQorICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBlLmdldExlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgbnVtW2ld
IF49IFFSTWF0aC5nZXhwKFFSTWF0aC5nbG9nKGUuZ2V0KGkpKSArIHJhdGlvKQorICAgICAgfQor
ICAgICAgcmV0dXJuIG5ldyBRUlBvbHlub21pYWwobnVtLCAwKS5tb2QoZSkKKyAgICB9CisgIH0K
KyAgZnVuY3Rpb24gUVJSU0Jsb2NrICh0b3RhbENvdW50LCBkYXRhQ291bnQpIHsKKyAgICB0aGlz
LnRvdGFsQ291bnQgPSB0b3RhbENvdW50CisgICAgdGhpcy5kYXRhQ291bnQgPSBkYXRhQ291bnQK
KyAgfQorICBRUlJTQmxvY2suUlNfQkxPQ0tfVEFCTEUgPSBbCisgICAgWzEsIDI2LCAxOV0sCisg
ICAgWzEsIDI2LCAxNl0sCisgICAgWzEsIDI2LCAxM10sCisgICAgWzEsIDI2LCA5XSwKKyAgICBb
MSwgNDQsIDM0XSwKKyAgICBbMSwgNDQsIDI4XSwKKyAgICBbMSwgNDQsIDIyXSwKKyAgICBbMSwg
NDQsIDE2XSwKKyAgICBbMSwgNzAsIDU1XSwKKyAgICBbMSwgNzAsIDQ0XSwKKyAgICBbMiwgMzUs
IDE3XSwKKyAgICBbMiwgMzUsIDEzXSwKKyAgICBbMSwgMTAwLCA4MF0sCisgICAgWzIsIDUwLCAz
Ml0sCisgICAgWzIsIDUwLCAyNF0sCisgICAgWzQsIDI1LCA5XSwKKyAgICBbMSwgMTM0LCAxMDhd
LAorICAgIFsyLCA2NywgNDNdLAorICAgIFsyLCAzMywgMTUsIDIsIDM0LCAxNl0sCisgICAgWzIs
IDMzLCAxMSwgMiwgMzQsIDEyXSwKKyAgICBbMiwgODYsIDY4XSwKKyAgICBbNCwgNDMsIDI3XSwK
KyAgICBbNCwgNDMsIDE5XSwKKyAgICBbNCwgNDMsIDE1XSwKKyAgICBbMiwgOTgsIDc4XSwKKyAg
ICBbNCwgNDksIDMxXSwKKyAgICBbMiwgMzIsIDE0LCA0LCAzMywgMTVdLAorICAgIFs0LCAzOSwg
MTMsIDEsIDQwLCAxNF0sCisgICAgWzIsIDEyMSwgOTddLAorICAgIFsyLCA2MCwgMzgsIDIsIDYx
LCAzOV0sCisgICAgWzQsIDQwLCAxOCwgMiwgNDEsIDE5XSwKKyAgICBbNCwgNDAsIDE0LCAyLCA0
MSwgMTVdLAorICAgIFsyLCAxNDYsIDExNl0sCisgICAgWzMsIDU4LCAzNiwgMiwgNTksIDM3XSwK
KyAgICBbNCwgMzYsIDE2LCA0LCAzNywgMTddLAorICAgIFs0LCAzNiwgMTIsIDQsIDM3LCAxM10s
CisgICAgWzIsIDg2LCA2OCwgMiwgODcsIDY5XSwKKyAgICBbNCwgNjksIDQzLCAxLCA3MCwgNDRd
LAorICAgIFs2LCA0MywgMTksIDIsIDQ0LCAyMF0sCisgICAgWzYsIDQzLCAxNSwgMiwgNDQsIDE2
XSwKKyAgICBbNCwgMTAxLCA4MV0sCisgICAgWzEsIDgwLCA1MCwgNCwgODEsIDUxXSwKKyAgICBb
NCwgNTAsIDIyLCA0LCA1MSwgMjNdLAorICAgIFszLCAzNiwgMTIsIDgsIDM3LCAxM10sCisgICAg
WzIsIDExNiwgOTIsIDIsIDExNywgOTNdLAorICAgIFs2LCA1OCwgMzYsIDIsIDU5LCAzN10sCisg
ICAgWzQsIDQ2LCAyMCwgNiwgNDcsIDIxXSwKKyAgICBbNywgNDIsIDE0LCA0LCA0MywgMTVdLAor
ICAgIFs0LCAxMzMsIDEwN10sCisgICAgWzgsIDU5LCAzNywgMSwgNjAsIDM4XSwKKyAgICBbOCwg
NDQsIDIwLCA0LCA0NSwgMjFdLAorICAgIFsxMiwgMzMsIDExLCA0LCAzNCwgMTJdLAorICAgIFsz
LCAxNDUsIDExNSwgMSwgMTQ2LCAxMTZdLAorICAgIFs0LCA2NCwgNDAsIDUsIDY1LCA0MV0sCisg
ICAgWzExLCAzNiwgMTYsIDUsIDM3LCAxN10sCisgICAgWzExLCAzNiwgMTIsIDUsIDM3LCAxM10s
CisgICAgWzUsIDEwOSwgODcsIDEsIDExMCwgODhdLAorICAgIFs1LCA2NSwgNDEsIDUsIDY2LCA0
Ml0sCisgICAgWzUsIDU0LCAyNCwgNywgNTUsIDI1XSwKKyAgICBbMTEsIDM2LCAxMl0sCisgICAg
WzUsIDEyMiwgOTgsIDEsIDEyMywgOTldLAorICAgIFs3LCA3MywgNDUsIDMsIDc0LCA0Nl0sCisg
ICAgWzE1LCA0MywgMTksIDIsIDQ0LCAyMF0sCisgICAgWzMsIDQ1LCAxNSwgMTMsIDQ2LCAxNl0s
CisgICAgWzEsIDEzNSwgMTA3LCA1LCAxMzYsIDEwOF0sCisgICAgWzEwLCA3NCwgNDYsIDEsIDc1
LCA0N10sCisgICAgWzEsIDUwLCAyMiwgMTUsIDUxLCAyM10sCisgICAgWzIsIDQyLCAxNCwgMTcs
IDQzLCAxNV0sCisgICAgWzUsIDE1MCwgMTIwLCAxLCAxNTEsIDEyMV0sCisgICAgWzksIDY5LCA0
MywgNCwgNzAsIDQ0XSwKKyAgICBbMTcsIDUwLCAyMiwgMSwgNTEsIDIzXSwKKyAgICBbMiwgNDIs
IDE0LCAxOSwgNDMsIDE1XSwKKyAgICBbMywgMTQxLCAxMTMsIDQsIDE0MiwgMTE0XSwKKyAgICBb
MywgNzAsIDQ0LCAxMSwgNzEsIDQ1XSwKKyAgICBbMTcsIDQ3LCAyMSwgNCwgNDgsIDIyXSwKKyAg
ICBbOSwgMzksIDEzLCAxNiwgNDAsIDE0XSwKKyAgICBbMywgMTM1LCAxMDcsIDUsIDEzNiwgMTA4
XSwKKyAgICBbMywgNjcsIDQxLCAxMywgNjgsIDQyXSwKKyAgICBbMTUsIDU0LCAyNCwgNSwgNTUs
IDI1XSwKKyAgICBbMTUsIDQzLCAxNSwgMTAsIDQ0LCAxNl0sCisgICAgWzQsIDE0NCwgMTE2LCA0
LCAxNDUsIDExN10sCisgICAgWzE3LCA2OCwgNDJdLAorICAgIFsxNywgNTAsIDIyLCA2LCA1MSwg
MjNdLAorICAgIFsxOSwgNDYsIDE2LCA2LCA0NywgMTddLAorICAgIFsyLCAxMzksIDExMSwgNywg
MTQwLCAxMTJdLAorICAgIFsxNywgNzQsIDQ2XSwKKyAgICBbNywgNTQsIDI0LCAxNiwgNTUsIDI1
XSwKKyAgICBbMzQsIDM3LCAxM10sCisgICAgWzQsIDE1MSwgMTIxLCA1LCAxNTIsIDEyMl0sCisg
ICAgWzQsIDc1LCA0NywgMTQsIDc2LCA0OF0sCisgICAgWzExLCA1NCwgMjQsIDE0LCA1NSwgMjVd
LAorICAgIFsxNiwgNDUsIDE1LCAxNCwgNDYsIDE2XSwKKyAgICBbNiwgMTQ3LCAxMTcsIDQsIDE0
OCwgMTE4XSwKKyAgICBbNiwgNzMsIDQ1LCAxNCwgNzQsIDQ2XSwKKyAgICBbMTEsIDU0LCAyNCwg
MTYsIDU1LCAyNV0sCisgICAgWzMwLCA0NiwgMTYsIDIsIDQ3LCAxN10sCisgICAgWzgsIDEzMiwg
MTA2LCA0LCAxMzMsIDEwN10sCisgICAgWzgsIDc1LCA0NywgMTMsIDc2LCA0OF0sCisgICAgWzcs
IDU0LCAyNCwgMjIsIDU1LCAyNV0sCisgICAgWzIyLCA0NSwgMTUsIDEzLCA0NiwgMTZdLAorICAg
IFsxMCwgMTQyLCAxMTQsIDIsIDE0MywgMTE1XSwKKyAgICBbMTksIDc0LCA0NiwgNCwgNzUsIDQ3
XSwKKyAgICBbMjgsIDUwLCAyMiwgNiwgNTEsIDIzXSwKKyAgICBbMzMsIDQ2LCAxNiwgNCwgNDcs
IDE3XSwKKyAgICBbOCwgMTUyLCAxMjIsIDQsIDE1MywgMTIzXSwKKyAgICBbMjIsIDczLCA0NSwg
MywgNzQsIDQ2XSwKKyAgICBbOCwgNTMsIDIzLCAyNiwgNTQsIDI0XSwKKyAgICBbMTIsIDQ1LCAx
NSwgMjgsIDQ2LCAxNl0sCisgICAgWzMsIDE0NywgMTE3LCAxMCwgMTQ4LCAxMThdLAorICAgIFsz
LCA3MywgNDUsIDIzLCA3NCwgNDZdLAorICAgIFs0LCA1NCwgMjQsIDMxLCA1NSwgMjVdLAorICAg
IFsxMSwgNDUsIDE1LCAzMSwgNDYsIDE2XSwKKyAgICBbNywgMTQ2LCAxMTYsIDcsIDE0NywgMTE3
XSwKKyAgICBbMjEsIDczLCA0NSwgNywgNzQsIDQ2XSwKKyAgICBbMSwgNTMsIDIzLCAzNywgNTQs
IDI0XSwKKyAgICBbMTksIDQ1LCAxNSwgMjYsIDQ2LCAxNl0sCisgICAgWzUsIDE0NSwgMTE1LCAx
MCwgMTQ2LCAxMTZdLAorICAgIFsxOSwgNzUsIDQ3LCAxMCwgNzYsIDQ4XSwKKyAgICBbMTUsIDU0
LCAyNCwgMjUsIDU1LCAyNV0sCisgICAgWzIzLCA0NSwgMTUsIDI1LCA0NiwgMTZdLAorICAgIFsx
MywgMTQ1LCAxMTUsIDMsIDE0NiwgMTE2XSwKKyAgICBbMiwgNzQsIDQ2LCAyOSwgNzUsIDQ3XSwK
KyAgICBbNDIsIDU0LCAyNCwgMSwgNTUsIDI1XSwKKyAgICBbMjMsIDQ1LCAxNSwgMjgsIDQ2LCAx
Nl0sCisgICAgWzE3LCAxNDUsIDExNV0sCisgICAgWzEwLCA3NCwgNDYsIDIzLCA3NSwgNDddLAor
ICAgIFsxMCwgNTQsIDI0LCAzNSwgNTUsIDI1XSwKKyAgICBbMTksIDQ1LCAxNSwgMzUsIDQ2LCAx
Nl0sCisgICAgWzE3LCAxNDUsIDExNSwgMSwgMTQ2LCAxMTZdLAorICAgIFsxNCwgNzQsIDQ2LCAy
MSwgNzUsIDQ3XSwKKyAgICBbMjksIDU0LCAyNCwgMTksIDU1LCAyNV0sCisgICAgWzExLCA0NSwg
MTUsIDQ2LCA0NiwgMTZdLAorICAgIFsxMywgMTQ1LCAxMTUsIDYsIDE0NiwgMTE2XSwKKyAgICBb
MTQsIDc0LCA0NiwgMjMsIDc1LCA0N10sCisgICAgWzQ0LCA1NCwgMjQsIDcsIDU1LCAyNV0sCisg
ICAgWzU5LCA0NiwgMTYsIDEsIDQ3LCAxN10sCisgICAgWzEyLCAxNTEsIDEyMSwgNywgMTUyLCAx
MjJdLAorICAgIFsxMiwgNzUsIDQ3LCAyNiwgNzYsIDQ4XSwKKyAgICBbMzksIDU0LCAyNCwgMTQs
IDU1LCAyNV0sCisgICAgWzIyLCA0NSwgMTUsIDQxLCA0NiwgMTZdLAorICAgIFs2LCAxNTEsIDEy
MSwgMTQsIDE1MiwgMTIyXSwKKyAgICBbNiwgNzUsIDQ3LCAzNCwgNzYsIDQ4XSwKKyAgICBbNDYs
IDU0LCAyNCwgMTAsIDU1LCAyNV0sCisgICAgWzIsIDQ1LCAxNSwgNjQsIDQ2LCAxNl0sCisgICAg
WzE3LCAxNTIsIDEyMiwgNCwgMTUzLCAxMjNdLAorICAgIFsyOSwgNzQsIDQ2LCAxNCwgNzUsIDQ3
XSwKKyAgICBbNDksIDU0LCAyNCwgMTAsIDU1LCAyNV0sCisgICAgWzI0LCA0NSwgMTUsIDQ2LCA0
NiwgMTZdLAorICAgIFs0LCAxNTIsIDEyMiwgMTgsIDE1MywgMTIzXSwKKyAgICBbMTMsIDc0LCA0
NiwgMzIsIDc1LCA0N10sCisgICAgWzQ4LCA1NCwgMjQsIDE0LCA1NSwgMjVdLAorICAgIFs0Miwg
NDUsIDE1LCAzMiwgNDYsIDE2XSwKKyAgICBbMjAsIDE0NywgMTE3LCA0LCAxNDgsIDExOF0sCisg
ICAgWzQwLCA3NSwgNDcsIDcsIDc2LCA0OF0sCisgICAgWzQzLCA1NCwgMjQsIDIyLCA1NSwgMjVd
LAorICAgIFsxMCwgNDUsIDE1LCA2NywgNDYsIDE2XSwKKyAgICBbMTksIDE0OCwgMTE4LCA2LCAx
NDksIDExOV0sCisgICAgWzE4LCA3NSwgNDcsIDMxLCA3NiwgNDhdLAorICAgIFszNCwgNTQsIDI0
LCAzNCwgNTUsIDI1XSwKKyAgICBbMjAsIDQ1LCAxNSwgNjEsIDQ2LCAxNl0KKyAgXQorICBRUlJT
QmxvY2suZ2V0UlNCbG9ja3MgPSBmdW5jdGlvbiAodHlwZU51bWJlciwgZXJyb3JDb3JyZWN0TGV2
ZWwpIHsKKyAgICB2YXIgcnNCbG9jayA9IFFSUlNCbG9jay5nZXRSc0Jsb2NrVGFibGUodHlwZU51
bWJlciwgZXJyb3JDb3JyZWN0TGV2ZWwpCisgICAgaWYgKHJzQmxvY2sgPT0gdW5kZWZpbmVkKSB7
CisgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICdiYWQgcnMgYmxvY2sgQCB0eXBlTnVt
YmVyOicgKworICAgICAgICAgIHR5cGVOdW1iZXIgKworICAgICAgICAgICcvZXJyb3JDb3JyZWN0
TGV2ZWw6JyArCisgICAgICAgICAgZXJyb3JDb3JyZWN0TGV2ZWwKKyAgICAgICkKKyAgICB9Cisg
ICAgdmFyIGxlbmd0aCA9IHJzQmxvY2subGVuZ3RoIC8gMworICAgIHZhciBsaXN0ID0gW10KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICB2YXIgY291bnQgPSBy
c0Jsb2NrW2kgKiAzICsgMF0KKyAgICAgIHZhciB0b3RhbENvdW50ID0gcnNCbG9ja1tpICogMyAr
IDFdCisgICAgICB2YXIgZGF0YUNvdW50ID0gcnNCbG9ja1tpICogMyArIDJdCisgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IGNvdW50OyBqKyspIHsKKyAgICAgICAgbGlzdC5wdXNoKG5ldyBRUlJT
QmxvY2sodG90YWxDb3VudCwgZGF0YUNvdW50KSkKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IGxpc3QKKyAgfQorICBRUlJTQmxvY2suZ2V0UnNCbG9ja1RhYmxlID0gZnVuY3Rpb24gKHR5cGVO
dW1iZXIsIGVycm9yQ29ycmVjdExldmVsKSB7CisgICAgc3dpdGNoIChlcnJvckNvcnJlY3RMZXZl
bCkgeworICAgICAgY2FzZSBRUkVycm9yQ29ycmVjdExldmVsLkw6CisgICAgICAgIHJldHVybiBR
UlJTQmxvY2suUlNfQkxPQ0tfVEFCTEVbKHR5cGVOdW1iZXIgLSAxKSAqIDQgKyAwXQorICAgICAg
Y2FzZSBRUkVycm9yQ29ycmVjdExldmVsLk06CisgICAgICAgIHJldHVybiBRUlJTQmxvY2suUlNf
QkxPQ0tfVEFCTEVbKHR5cGVOdW1iZXIgLSAxKSAqIDQgKyAxXQorICAgICAgY2FzZSBRUkVycm9y
Q29ycmVjdExldmVsLlE6CisgICAgICAgIHJldHVybiBRUlJTQmxvY2suUlNfQkxPQ0tfVEFCTEVb
KHR5cGVOdW1iZXIgLSAxKSAqIDQgKyAyXQorICAgICAgY2FzZSBRUkVycm9yQ29ycmVjdExldmVs
Lkg6CisgICAgICAgIHJldHVybiBRUlJTQmxvY2suUlNfQkxPQ0tfVEFCTEVbKHR5cGVOdW1iZXIg
LSAxKSAqIDQgKyAzXQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHVuZGVmaW5lZAor
ICAgIH0KKyAgfQorICBmdW5jdGlvbiBRUkJpdEJ1ZmZlciAoKSB7CisgICAgdGhpcy5idWZmZXIg
PSBbXQorICAgIHRoaXMubGVuZ3RoID0gMAorICB9CisgIFFSQml0QnVmZmVyLnByb3RvdHlwZSA9
IHsKKyAgICBnZXQ6IGZ1bmN0aW9uIChpbmRleCkgeworICAgICAgdmFyIGJ1ZkluZGV4ID0gTWF0
aC5mbG9vcihpbmRleCAvIDgpCisgICAgICByZXR1cm4gKCh0aGlzLmJ1ZmZlcltidWZJbmRleF0g
Pj4+ICg3IC0gaW5kZXggJSA4KSkgJiAxKSA9PSAxCisgICAgfSwKKyAgICBwdXQ6IGZ1bmN0aW9u
IChudW0sIGxlbmd0aCkgeworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykg
eworICAgICAgICB0aGlzLnB1dEJpdCgoKG51bSA+Pj4gKGxlbmd0aCAtIGkgLSAxKSkgJiAxKSA9
PSAxKQorICAgICAgfQorICAgIH0sCisgICAgZ2V0TGVuZ3RoSW5CaXRzOiBmdW5jdGlvbiAoKSB7
CisgICAgICByZXR1cm4gdGhpcy5sZW5ndGgKKyAgICB9LAorICAgIHB1dEJpdDogZnVuY3Rpb24g
KGJpdCkgeworICAgICAgdmFyIGJ1ZkluZGV4ID0gTWF0aC5mbG9vcih0aGlzLmxlbmd0aCAvIDgp
CisgICAgICBpZiAodGhpcy5idWZmZXIubGVuZ3RoIDw9IGJ1ZkluZGV4KSB7CisgICAgICAgIHRo
aXMuYnVmZmVyLnB1c2goMCkKKyAgICAgIH0KKyAgICAgIGlmIChiaXQpIHsKKyAgICAgICAgdGhp
cy5idWZmZXJbYnVmSW5kZXhdIHw9IDB4ODAgPj4+ICh0aGlzLmxlbmd0aCAlIDgpCisgICAgICB9
CisgICAgICB0aGlzLmxlbmd0aCsrCisgICAgfQorICB9CisgIHZhciBRUkNvZGVMaW1pdExlbmd0
aCA9IFsKKyAgICBbMTcsIDE0LCAxMSwgN10sCisgICAgWzMyLCAyNiwgMjAsIDE0XSwKKyAgICBb
NTMsIDQyLCAzMiwgMjRdLAorICAgIFs3OCwgNjIsIDQ2LCAzNF0sCisgICAgWzEwNiwgODQsIDYw
LCA0NF0sCisgICAgWzEzNCwgMTA2LCA3NCwgNThdLAorICAgIFsxNTQsIDEyMiwgODYsIDY0XSwK
KyAgICBbMTkyLCAxNTIsIDEwOCwgODRdLAorICAgIFsyMzAsIDE4MCwgMTMwLCA5OF0sCisgICAg
WzI3MSwgMjEzLCAxNTEsIDExOV0sCisgICAgWzMyMSwgMjUxLCAxNzcsIDEzN10sCisgICAgWzM2
NywgMjg3LCAyMDMsIDE1NV0sCisgICAgWzQyNSwgMzMxLCAyNDEsIDE3N10sCisgICAgWzQ1OCwg
MzYyLCAyNTgsIDE5NF0sCisgICAgWzUyMCwgNDEyLCAyOTIsIDIyMF0sCisgICAgWzU4NiwgNDUw
LCAzMjIsIDI1MF0sCisgICAgWzY0NCwgNTA0LCAzNjQsIDI4MF0sCisgICAgWzcxOCwgNTYwLCAz
OTQsIDMxMF0sCisgICAgWzc5MiwgNjI0LCA0NDIsIDMzOF0sCisgICAgWzg1OCwgNjY2LCA0ODIs
IDM4Ml0sCisgICAgWzkyOSwgNzExLCA1MDksIDQwM10sCisgICAgWzEwMDMsIDc3OSwgNTY1LCA0
MzldLAorICAgIFsxMDkxLCA4NTcsIDYxMSwgNDYxXSwKKyAgICBbMTE3MSwgOTExLCA2NjEsIDUx
MV0sCisgICAgWzEyNzMsIDk5NywgNzE1LCA1MzVdLAorICAgIFsxMzY3LCAxMDU5LCA3NTEsIDU5
M10sCisgICAgWzE0NjUsIDExMjUsIDgwNSwgNjI1XSwKKyAgICBbMTUyOCwgMTE5MCwgODY4LCA2
NThdLAorICAgIFsxNjI4LCAxMjY0LCA5MDgsIDY5OF0sCisgICAgWzE3MzIsIDEzNzAsIDk4Miwg
NzQyXSwKKyAgICBbMTg0MCwgMTQ1MiwgMTAzMCwgNzkwXSwKKyAgICBbMTk1MiwgMTUzOCwgMTEx
MiwgODQyXSwKKyAgICBbMjA2OCwgMTYyOCwgMTE2OCwgODk4XSwKKyAgICBbMjE4OCwgMTcyMiwg
MTIyOCwgOTU4XSwKKyAgICBbMjMwMywgMTgwOSwgMTI4MywgOTgzXSwKKyAgICBbMjQzMSwgMTkx
MSwgMTM1MSwgMTA1MV0sCisgICAgWzI1NjMsIDE5ODksIDE0MjMsIDEwOTNdLAorICAgIFsyNjk5
LCAyMDk5LCAxNDk5LCAxMTM5XSwKKyAgICBbMjgwOSwgMjIxMywgMTU3OSwgMTIxOV0sCisgICAg
WzI5NTMsIDIzMzEsIDE2NjMsIDEyNzNdCisgIF0KKworICBmdW5jdGlvbiBfaXNTdXBwb3J0Q2Fu
dmFzICgpIHsKKyAgICByZXR1cm4gdHlwZW9mIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCAhPT0g
J3VuZGVmaW5lZCcKKyAgfQorCisgIC8vIGFuZHJvaWQgMi54IGRvZXNuJ3Qgc3VwcG9ydCBEYXRh
LVVSSSBzcGVjCisgIGZ1bmN0aW9uIF9nZXRBbmRyb2lkICgpIHsKKyAgICB2YXIgYW5kcm9pZCA9
IGZhbHNlCisgICAgdmFyIHNBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQKKworICAgIGlmICgv
YW5kcm9pZC9pLnRlc3Qoc0FnZW50KSkgeworICAgICAgLy8gYW5kcm9pZAorICAgICAgYW5kcm9p
ZCA9IHRydWUKKyAgICAgIHZhciBhTWF0ID0gc0FnZW50LnRvU3RyaW5nKCkubWF0Y2goL2FuZHJv
aWQgKFswLTldXC5bMC05XSkvaSkKKworICAgICAgaWYgKGFNYXQgJiYgYU1hdFsxXSkgeworICAg
ICAgICBhbmRyb2lkID0gcGFyc2VGbG9hdChhTWF0WzFdKQorICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiBhbmRyb2lkCisgIH0KKworICB2YXIgc3ZnRHJhd2VyID0gKGZ1bmN0aW9uICgpIHsK
KyAgICB2YXIgRHJhd2luZyA9IGZ1bmN0aW9uIChlbCwgaHRPcHRpb24pIHsKKyAgICAgIHRoaXMu
X2VsID0gZWwKKyAgICAgIHRoaXMuX2h0T3B0aW9uID0gaHRPcHRpb24KKyAgICB9CisKKyAgICBE
cmF3aW5nLnByb3RvdHlwZS5kcmF3ID0gZnVuY3Rpb24gKG9RUkNvZGUpIHsKKyAgICAgIHZhciBf
aHRPcHRpb24gPSB0aGlzLl9odE9wdGlvbgorICAgICAgdmFyIF9lbCA9IHRoaXMuX2VsCisgICAg
ICB2YXIgbkNvdW50ID0gb1FSQ29kZS5nZXRNb2R1bGVDb3VudCgpCisgICAgICB2YXIgbldpZHRo
ID0gTWF0aC5mbG9vcihfaHRPcHRpb24ud2lkdGggLyBuQ291bnQpCisgICAgICB2YXIgbkhlaWdo
dCA9IE1hdGguZmxvb3IoX2h0T3B0aW9uLmhlaWdodCAvIG5Db3VudCkKKworICAgICAgdGhpcy5j
bGVhcigpCisKKyAgICAgIGZ1bmN0aW9uIG1ha2VTVkcgKHRhZywgYXR0cnMpIHsKKyAgICAgICAg
dmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2ZycsIHRhZykKKyAgICAgICAgZm9yICh2YXIgayBpbiBhdHRycykgeworICAgICAgICAgIGlm
IChhdHRycy5oYXNPd25Qcm9wZXJ0eShrKSkgZWwuc2V0QXR0cmlidXRlKGssIGF0dHJzW2tdKQor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBlbAorICAgICAgfQorCisgICAgICB2YXIgc3ZnID0g
bWFrZVNWRygnc3ZnJywgeworICAgICAgICB2aWV3Qm94OiAnMCAwICcgKyBTdHJpbmcobkNvdW50
KSArICcgJyArIFN0cmluZyhuQ291bnQpLAorICAgICAgICB3aWR0aDogJzEwMCUnLAorICAgICAg
ICBoZWlnaHQ6ICcxMDAlJywKKyAgICAgICAgZmlsbDogX2h0T3B0aW9uLmNvbG9yTGlnaHQKKyAg
ICAgIH0pCisgICAgICBzdmcuc2V0QXR0cmlidXRlTlMoCisgICAgICAgICdodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3htbG5zLycsCisgICAgICAgICd4bWxuczp4bGluaycsCisgICAgICAgICdodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJworICAgICAgKQorICAgICAgX2VsLmFwcGVuZENoaWxk
KHN2ZykKKworICAgICAgc3ZnLmFwcGVuZENoaWxkKAorICAgICAgICBtYWtlU1ZHKCdyZWN0Jywg
eworICAgICAgICAgIGZpbGw6IF9odE9wdGlvbi5jb2xvckxpZ2h0LAorICAgICAgICAgIHdpZHRo
OiAnMTAwJScsCisgICAgICAgICAgaGVpZ2h0OiAnMTAwJScKKyAgICAgICAgfSkKKyAgICAgICkK
KyAgICAgIHN2Zy5hcHBlbmRDaGlsZCgKKyAgICAgICAgbWFrZVNWRygncmVjdCcsIHsKKyAgICAg
ICAgICBmaWxsOiBfaHRPcHRpb24uY29sb3JEYXJrLAorICAgICAgICAgIHdpZHRoOiAnMScsCisg
ICAgICAgICAgaGVpZ2h0OiAnMScsCisgICAgICAgICAgaWQ6ICd0ZW1wbGF0ZScKKyAgICAgICAg
fSkKKyAgICAgICkKKworICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbkNvdW50OyByb3cr
KykgeworICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuQ291bnQ7IGNvbCsrKSB7Cisg
ICAgICAgICAgaWYgKG9RUkNvZGUuaXNEYXJrKHJvdywgY29sKSkgeworICAgICAgICAgICAgdmFy
IGNoaWxkID0gbWFrZVNWRygndXNlJywgeyB4OiBTdHJpbmcoY29sKSwgeTogU3RyaW5nKHJvdykg
fSkKKyAgICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZU5TKAorICAgICAgICAgICAgICAnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluaycsCisgICAgICAgICAgICAgICdocmVmJywKKyAgICAg
ICAgICAgICAgJyN0ZW1wbGF0ZScKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN2Zy5hcHBl
bmRDaGlsZChjaGlsZCkKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9Cisg
ICAgRHJhd2luZy5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7CisgICAgICB3aGlsZSAo
dGhpcy5fZWwuaGFzQ2hpbGROb2RlcygpKSB0aGlzLl9lbC5yZW1vdmVDaGlsZCh0aGlzLl9lbC5s
YXN0Q2hpbGQpCisgICAgfQorICAgIHJldHVybiBEcmF3aW5nCisgIH0pKCkKKworICB2YXIgdXNl
U1ZHID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0g
J3N2ZycKKworICAvLyBEcmF3aW5nIGluIERPTSBieSB1c2luZyBUYWJsZSB0YWcKKyAgdmFyIERy
YXdpbmcgPSB1c2VTVkcKKyAgICA/IHN2Z0RyYXdlcgorICAgIDogIV9pc1N1cHBvcnRDYW52YXMo
KQorICAgICAgPyAoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgRHJhd2luZyA9IGZ1bmN0aW9u
IChlbCwgaHRPcHRpb24pIHsKKyAgICAgICAgICB0aGlzLl9lbCA9IGVsCisgICAgICAgICAgdGhp
cy5faHRPcHRpb24gPSBodE9wdGlvbgorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAg
ICAgICogRHJhdyB0aGUgUVJDb2RlCisgICAgICAgICAgICoKKyAgICAgICAgICAgKiBAcGFyYW0g
e1FSQ29kZX0gb1FSQ29kZQorICAgICAgICAgICAqLworICAgICAgICBEcmF3aW5nLnByb3RvdHlw
ZS5kcmF3ID0gZnVuY3Rpb24gKG9RUkNvZGUpIHsKKyAgICAgICAgICB2YXIgX2h0T3B0aW9uID0g
dGhpcy5faHRPcHRpb24KKyAgICAgICAgICB2YXIgX2VsID0gdGhpcy5fZWwKKyAgICAgICAgICB2
YXIgbkNvdW50ID0gb1FSQ29kZS5nZXRNb2R1bGVDb3VudCgpCisgICAgICAgICAgdmFyIG5XaWR0
aCA9IE1hdGguZmxvb3IoX2h0T3B0aW9uLndpZHRoIC8gbkNvdW50KQorICAgICAgICAgIHZhciBu
SGVpZ2h0ID0gTWF0aC5mbG9vcihfaHRPcHRpb24uaGVpZ2h0IC8gbkNvdW50KQorICAgICAgICAg
IHZhciBhSFRNTCA9IFsnPHRhYmxlIHN0eWxlPSJib3JkZXI6MDtib3JkZXItY29sbGFwc2U6Y29s
bGFwc2U7Ij4nXQorCisgICAgICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbkNvdW50OyBy
b3crKykgeworICAgICAgICAgICAgYUhUTUwucHVzaCgnPHRyPicpCisKKyAgICAgICAgICAgIGZv
ciAodmFyIGNvbCA9IDA7IGNvbCA8IG5Db3VudDsgY29sKyspIHsKKyAgICAgICAgICAgICAgYUhU
TUwucHVzaCgKKyAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJib3JkZXI6MDtib3JkZXItY29s
bGFwc2U6Y29sbGFwc2U7cGFkZGluZzowO21hcmdpbjowO3dpZHRoOicgKworICAgICAgICAgICAg
ICAgICAgICBuV2lkdGggKworICAgICAgICAgICAgICAgICAgICAncHg7aGVpZ2h0OicgKworICAg
ICAgICAgICAgICAgICAgICBuSGVpZ2h0ICsKKyAgICAgICAgICAgICAgICAgICAgJ3B4O2JhY2tn
cm91bmQtY29sb3I6JyArCisgICAgICAgICAgICAgICAgICAgIChvUVJDb2RlLmlzRGFyayhyb3cs
IGNvbCkKKyAgICAgICAgICAgICAgICAgICAgICA/IF9odE9wdGlvbi5jb2xvckRhcmsKKyAgICAg
ICAgICAgICAgICAgICAgICA6IF9odE9wdGlvbi5jb2xvckxpZ2h0KSArCisgICAgICAgICAgICAg
ICAgICAgICc7Ij48L3RkPicKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBhSFRNTC5wdXNoKCc8L3RyPicpCisgICAgICAgICAgfQorCisgICAgICAgICAgYUhU
TUwucHVzaCgnPC90YWJsZT4nKQorICAgICAgICAgIF9lbC5pbm5lckhUTUwgPSBhSFRNTC5qb2lu
KCcnKQorCisgICAgICAgICAgLy8gRml4IHRoZSBtYXJnaW4gdmFsdWVzIGFzIHJlYWwgc2l6ZS4K
KyAgICAgICAgICB2YXIgZWxUYWJsZSA9IF9lbC5jaGlsZE5vZGVzWzBdCisgICAgICAgICAgdmFy
IG5MZWZ0TWFyZ2luVGFibGUgPSAoX2h0T3B0aW9uLndpZHRoIC0gZWxUYWJsZS5vZmZzZXRXaWR0
aCkgLyAyCisgICAgICAgICAgdmFyIG5Ub3BNYXJnaW5UYWJsZSA9IChfaHRPcHRpb24uaGVpZ2h0
IC0gZWxUYWJsZS5vZmZzZXRIZWlnaHQpIC8gMgorCisgICAgICAgICAgaWYgKG5MZWZ0TWFyZ2lu
VGFibGUgPiAwICYmIG5Ub3BNYXJnaW5UYWJsZSA+IDApIHsKKyAgICAgICAgICAgIGVsVGFibGUu
c3R5bGUubWFyZ2luID0KKyAgICAgICAgICAgICAgICBuVG9wTWFyZ2luVGFibGUgKyAncHggJyAr
IG5MZWZ0TWFyZ2luVGFibGUgKyAncHgnCisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgLyoqCisgICAgICAgICAgICogQ2xlYXIgdGhlIFFSQ29kZQorICAgICAgICAgICAqLworICAg
ICAgICBEcmF3aW5nLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICB0
aGlzLl9lbC5pbm5lckhUTUwgPSAnJworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIERyYXdp
bmcKKyAgICAgIH0pKCkKKyAgICAgIDogKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgLy8gRHJhd2lu
ZyBpbiBDYW52YXMKKyAgICAgICAgZnVuY3Rpb24gX29uTWFrZUltYWdlICgpIHsKKyAgICAgICAg
ICB0aGlzLl9lbEltYWdlLnNyYyA9IHRoaXMuX2VsQ2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5n
JykKKyAgICAgICAgICB0aGlzLl9lbEltYWdlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snCisgICAg
ICAgICAgdGhpcy5fZWxDYW52YXMuc3R5bGUuZGlzcGxheSA9ICdub25lJworICAgICAgICB9CisK
KyAgICAgICAgLy8gQW5kcm9pZCAyLjEgYnVnIHdvcmthcm91bmQKKyAgICAgICAgLy8gaHR0cDov
L2NvZGUuZ29vZ2xlLmNvbS9wL2FuZHJvaWQvaXNzdWVzL2RldGFpbD9pZD01MTQxCisgICAgICAg
IGlmICh0aGlzLl9hbmRyb2lkICYmIHRoaXMuX2FuZHJvaWQgPD0gMi4xKSB7CisgICAgICAgICAg
dmFyIGZhY3RvciA9IDEgLyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbworICAgICAgICAgIHZhciBk
cmF3SW1hZ2UgPSBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQucHJvdG90eXBlLmRyYXdJbWFnZQor
ICAgICAgICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGUuZHJhd0ltYWdlID0g
ZnVuY3Rpb24gKAorICAgICAgICAgICAgaW1hZ2UsCisgICAgICAgICAgICBzeCwKKyAgICAgICAg
ICAgIHN5LAorICAgICAgICAgICAgc3csCisgICAgICAgICAgICBzaCwKKyAgICAgICAgICAgIGR4
LAorICAgICAgICAgICAgZHksCisgICAgICAgICAgICBkdywKKyAgICAgICAgICAgIGRoCisgICAg
ICAgICAgKSB7CisgICAgICAgICAgICBpZiAoJ25vZGVOYW1lJyBpbiBpbWFnZSAmJiAvaW1nL2ku
dGVzdChpbWFnZS5ub2RlTmFtZSkpIHsKKyAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGFyZ3Vt
ZW50cy5sZW5ndGggLSAxOyBpID49IDE7IGktLSkgeworICAgICAgICAgICAgICAgIGFyZ3VtZW50
c1tpXSA9IGFyZ3VtZW50c1tpXSAqIGZhY3RvcgorICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKHR5cGVvZiBkdyA9PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICAgICAg
YXJndW1lbnRzWzFdICo9IGZhY3RvcgorICAgICAgICAgICAgICBhcmd1bWVudHNbMl0gKj0gZmFj
dG9yCisgICAgICAgICAgICAgIGFyZ3VtZW50c1szXSAqPSBmYWN0b3IKKyAgICAgICAgICAgICAg
YXJndW1lbnRzWzRdICo9IGZhY3RvcgorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkcmF3
SW1hZ2UuYXBwbHkodGhpcywgYXJndW1lbnRzKQorICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIC8qKgorICAgICAgICAgICAqIENoZWNrIHdoZXRoZXIgdGhlIHVzZXIncyBicm93c2Vy
IHN1cHBvcnRzIERhdGEgVVJJIG9yIG5vdAorICAgICAgICAgICAqCisgICAgICAgICAgICogQHBy
aXZhdGUKKyAgICAgICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmU3VjY2VzcyBPY2N1cnMgaWYg
aXQgc3VwcG9ydHMgRGF0YSBVUkkKKyAgICAgICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmRmFp
bCBPY2N1cnMgaWYgaXQgZG9lc24ndCBzdXBwb3J0IERhdGEgVVJJCisgICAgICAgICAgICovCisg
ICAgICAgIGZ1bmN0aW9uIF9zYWZlU2V0RGF0YVVSSSAoZlN1Y2Nlc3MsIGZGYWlsKSB7CisgICAg
ICAgICAgdmFyIHNlbGYgPSB0aGlzCisgICAgICAgICAgc2VsZi5fZkZhaWwgPSBmRmFpbAorICAg
ICAgICAgIHNlbGYuX2ZTdWNjZXNzID0gZlN1Y2Nlc3MKKworICAgICAgICAgIC8vIENoZWNrIGl0
IGp1c3Qgb25jZQorICAgICAgICAgIGlmIChzZWxmLl9iU3VwcG9ydERhdGFVUkkgPT09IG51bGwp
IHsKKyAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpCisg
ICAgICAgICAgICB2YXIgZk9uRXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIHNl
bGYuX2JTdXBwb3J0RGF0YVVSSSA9IGZhbHNlCisKKyAgICAgICAgICAgICAgaWYgKHNlbGYuX2ZG
YWlsKSB7CisgICAgICAgICAgICAgICAgc2VsZi5fZkZhaWwuY2FsbChzZWxmKQorICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgZk9uU3VjY2VzcyA9IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgc2VsZi5fYlN1cHBvcnREYXRhVVJJID0gdHJ1ZQorCisg
ICAgICAgICAgICAgIGlmIChzZWxmLl9mU3VjY2VzcykgeworICAgICAgICAgICAgICAgIHNlbGYu
X2ZTdWNjZXNzLmNhbGwoc2VsZikKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBlbC5vbmFib3J0ID0gZk9uRXJyb3IKKyAgICAgICAgICAgIGVsLm9uZXJyb3Ig
PSBmT25FcnJvcgorICAgICAgICAgICAgZWwub25sb2FkID0gZk9uU3VjY2VzcworICAgICAgICAg
ICAgZWwuc3JjID0KKyAgICAgICAgICAgICAgICAnZGF0YTppbWFnZS9naWY7YmFzZTY0LGlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUFBVUFBQUFGQ0FZQUFBQ05ieWJsQUFBQUhFbEVRVlFJMTJQNC8v
OC93MzhHSUFYRElCS0UwREh4Z2xqTkJBQU85VFhMMFk0T0h3QUFBQUJKUlU1RXJrSmdnZz09JyAv
LyB0aGUgSW1hZ2UgY29udGFpbnMgMXB4IGRhdGEuCisgICAgICAgICAgfSBlbHNlIGlmIChzZWxm
Ll9iU3VwcG9ydERhdGFVUkkgPT09IHRydWUgJiYgc2VsZi5fZlN1Y2Nlc3MpIHsKKyAgICAgICAg
ICAgIHNlbGYuX2ZTdWNjZXNzLmNhbGwoc2VsZikKKyAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYu
X2JTdXBwb3J0RGF0YVVSSSA9PT0gZmFsc2UgJiYgc2VsZi5fZkZhaWwpIHsKKyAgICAgICAgICAg
IHNlbGYuX2ZGYWlsLmNhbGwoc2VsZikKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICAvKioKKyAgICAgICAgICAgKiBEcmF3aW5nIFFSQ29kZSBieSB1c2luZyBjYW52YXMKKyAgICAg
ICAgICAgKgorICAgICAgICAgICAqIEBjb25zdHJ1Y3RvcgorICAgICAgICAgICAqIEBwYXJhbSB7
SFRNTEVsZW1lbnR9IGVsCisgICAgICAgICAgICogQHBhcmFtIHtPYmplY3R9IGh0T3B0aW9uIFFS
Q29kZSBPcHRpb25zCisgICAgICAgICAgICovCisgICAgICAgIHZhciBEcmF3aW5nID0gZnVuY3Rp
b24gKGVsLCBodE9wdGlvbikgeworICAgICAgICAgIHRoaXMuX2JJc1BhaW50ZWQgPSBmYWxzZQor
ICAgICAgICAgIHRoaXMuX2FuZHJvaWQgPSBfZ2V0QW5kcm9pZCgpCisKKyAgICAgICAgICB0aGlz
Ll9odE9wdGlvbiA9IGh0T3B0aW9uCisgICAgICAgICAgdGhpcy5fZWxDYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKQorICAgICAgICAgIHRoaXMuX2VsQ2FudmFzLndpZHRo
ID0gaHRPcHRpb24ud2lkdGgKKyAgICAgICAgICB0aGlzLl9lbENhbnZhcy5oZWlnaHQgPSBodE9w
dGlvbi5oZWlnaHQKKyAgICAgICAgICBlbC5hcHBlbmRDaGlsZCh0aGlzLl9lbENhbnZhcykKKyAg
ICAgICAgICB0aGlzLl9lbCA9IGVsCisgICAgICAgICAgdGhpcy5fb0NvbnRleHQgPSB0aGlzLl9l
bENhbnZhcy5nZXRDb250ZXh0KCcyZCcpCisgICAgICAgICAgdGhpcy5fYklzUGFpbnRlZCA9IGZh
bHNlCisgICAgICAgICAgdGhpcy5fZWxJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lt
ZycpCisgICAgICAgICAgdGhpcy5fZWxJbWFnZS5hbHQgPSAnU2NhbiBtZSEnCisgICAgICAgICAg
dGhpcy5fZWxJbWFnZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCisgICAgICAgICAgdGhpcy5fZWwu
YXBwZW5kQ2hpbGQodGhpcy5fZWxJbWFnZSkKKyAgICAgICAgICB0aGlzLl9iU3VwcG9ydERhdGFV
UkkgPSBudWxsCisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICAgKiBEcmF3IHRo
ZSBRUkNvZGUKKyAgICAgICAgICAgKgorICAgICAgICAgICAqIEBwYXJhbSB7UVJDb2RlfSBvUVJD
b2RlCisgICAgICAgICAgICovCisgICAgICAgIERyYXdpbmcucHJvdG90eXBlLmRyYXcgPSBmdW5j
dGlvbiAob1FSQ29kZSkgeworICAgICAgICAgIHZhciBfZWxJbWFnZSA9IHRoaXMuX2VsSW1hZ2UK
KyAgICAgICAgICB2YXIgX29Db250ZXh0ID0gdGhpcy5fb0NvbnRleHQKKyAgICAgICAgICB2YXIg
X2h0T3B0aW9uID0gdGhpcy5faHRPcHRpb24KKworICAgICAgICAgIHZhciBuQ291bnQgPSBvUVJD
b2RlLmdldE1vZHVsZUNvdW50KCkKKyAgICAgICAgICB2YXIgbldpZHRoID0gX2h0T3B0aW9uLndp
ZHRoIC8gbkNvdW50CisgICAgICAgICAgdmFyIG5IZWlnaHQgPSBfaHRPcHRpb24uaGVpZ2h0IC8g
bkNvdW50CisgICAgICAgICAgdmFyIG5Sb3VuZGVkV2lkdGggPSBNYXRoLnJvdW5kKG5XaWR0aCkK
KyAgICAgICAgICB2YXIgblJvdW5kZWRIZWlnaHQgPSBNYXRoLnJvdW5kKG5IZWlnaHQpCisKKyAg
ICAgICAgICBfZWxJbWFnZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnCisgICAgICAgICAgdGhpcy5j
bGVhcigpCisKKyAgICAgICAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCBuQ291bnQ7IHJvdysr
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuQ291bnQ7IGNvbCsrKSB7
CisgICAgICAgICAgICAgIHZhciBiSXNEYXJrID0gb1FSQ29kZS5pc0Rhcmsocm93LCBjb2wpCisg
ICAgICAgICAgICAgIHZhciBuTGVmdCA9IGNvbCAqIG5XaWR0aAorICAgICAgICAgICAgICB2YXIg
blRvcCA9IHJvdyAqIG5IZWlnaHQKKyAgICAgICAgICAgICAgX29Db250ZXh0LnN0cm9rZVN0eWxl
ID0gYklzRGFyaworICAgICAgICAgICAgICAgID8gX2h0T3B0aW9uLmNvbG9yRGFyaworICAgICAg
ICAgICAgICAgIDogX2h0T3B0aW9uLmNvbG9yTGlnaHQKKyAgICAgICAgICAgICAgX29Db250ZXh0
LmxpbmVXaWR0aCA9IDEKKyAgICAgICAgICAgICAgX29Db250ZXh0LmZpbGxTdHlsZSA9IGJJc0Rh
cmsKKyAgICAgICAgICAgICAgICA/IF9odE9wdGlvbi5jb2xvckRhcmsKKyAgICAgICAgICAgICAg
ICA6IF9odE9wdGlvbi5jb2xvckxpZ2h0CisgICAgICAgICAgICAgIF9vQ29udGV4dC5maWxsUmVj
dChuTGVmdCwgblRvcCwgbldpZHRoLCBuSGVpZ2h0KQorCisgICAgICAgICAgICAgIC8vIOyViO2L
sCDslajrpqzslrTsi7Eg67Cp7KeAIOyymOumrAorICAgICAgICAgICAgICBfb0NvbnRleHQuc3Ry
b2tlUmVjdCgKKyAgICAgICAgICAgICAgICBNYXRoLmZsb29yKG5MZWZ0KSArIDAuNSwKKyAgICAg
ICAgICAgICAgICBNYXRoLmZsb29yKG5Ub3ApICsgMC41LAorICAgICAgICAgICAgICAgIG5Sb3Vu
ZGVkV2lkdGgsCisgICAgICAgICAgICAgICAgblJvdW5kZWRIZWlnaHQKKyAgICAgICAgICAgICAg
KQorCisgICAgICAgICAgICAgIF9vQ29udGV4dC5zdHJva2VSZWN0KAorICAgICAgICAgICAgICAg
IE1hdGguY2VpbChuTGVmdCkgLSAwLjUsCisgICAgICAgICAgICAgICAgTWF0aC5jZWlsKG5Ub3Ap
IC0gMC41LAorICAgICAgICAgICAgICAgIG5Sb3VuZGVkV2lkdGgsCisgICAgICAgICAgICAgICAg
blJvdW5kZWRIZWlnaHQKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgfQorICAgICAgICAg
IH0KKworICAgICAgICAgIHRoaXMuX2JJc1BhaW50ZWQgPSB0cnVlCisgICAgICAgIH0KKworICAg
ICAgICAvKioKKyAgICAgICAgICAgKiBNYWtlIHRoZSBpbWFnZSBmcm9tIENhbnZhcyBpZiB0aGUg
YnJvd3NlciBzdXBwb3J0cyBEYXRhIFVSSS4KKyAgICAgICAgICAgKi8KKyAgICAgICAgRHJhd2lu
Zy5wcm90b3R5cGUubWFrZUltYWdlID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgIGlmICh0aGlz
Ll9iSXNQYWludGVkKSB7CisgICAgICAgICAgICBfc2FmZVNldERhdGFVUkkuY2FsbCh0aGlzLCBf
b25NYWtlSW1hZ2UpCisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAg
ICAgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIFFSQ29kZSBpcyBwYWludGVkIG9yIG5vdAorICAg
ICAgICAgICAqCisgICAgICAgICAgICogQHJldHVybiB7Qm9vbGVhbn0KKyAgICAgICAgICAgKi8K
KyAgICAgICAgRHJhd2luZy5wcm90b3R5cGUuaXNQYWludGVkID0gZnVuY3Rpb24gKCkgeworICAg
ICAgICAgIHJldHVybiB0aGlzLl9iSXNQYWludGVkCisgICAgICAgIH0KKworICAgICAgICAvKioK
KyAgICAgICAgICAgKiBDbGVhciB0aGUgUVJDb2RlCisgICAgICAgICAgICovCisgICAgICAgIERy
YXdpbmcucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgIHRoaXMuX29D
b250ZXh0LmNsZWFyUmVjdCgKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLAorICAgICAg
ICAgICAgdGhpcy5fZWxDYW52YXMud2lkdGgsCisgICAgICAgICAgICB0aGlzLl9lbENhbnZhcy5o
ZWlnaHQKKyAgICAgICAgICApCisgICAgICAgICAgdGhpcy5fYklzUGFpbnRlZCA9IGZhbHNlCisg
ICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICAgKiBAcHJpdmF0ZQorICAgICAgICAg
ICAqIEBwYXJhbSB7TnVtYmVyfSBuTnVtYmVyCisgICAgICAgICAgICovCisgICAgICAgIERyYXdp
bmcucHJvdG90eXBlLnJvdW5kID0gZnVuY3Rpb24gKG5OdW1iZXIpIHsKKyAgICAgICAgICBpZiAo
IW5OdW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBuTnVtYmVyCisgICAgICAgICAgfQorCisg
ICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3Iobk51bWJlciAqIDEwMDApIC8gMTAwMAorICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIERyYXdpbmcKKyAgICAgIH0pKCkKKworICAvKioKKyAgICog
R2V0IHRoZSB0eXBlIGJ5IHN0cmluZyBsZW5ndGgKKyAgICoKKyAgICogQHByaXZhdGUKKyAgICog
QHBhcmFtIHtTdHJpbmd9IHNUZXh0CisgICAqIEBwYXJhbSB7TnVtYmVyfSBuQ29ycmVjdExldmVs
CisgICAqIEByZXR1cm4ge051bWJlcn0gdHlwZQorICAgKi8KKyAgZnVuY3Rpb24gX2dldFR5cGVO
dW1iZXIgKHNUZXh0LCBuQ29ycmVjdExldmVsKSB7CisgICAgdmFyIG5UeXBlID0gMQorICAgIHZh
ciBsZW5ndGggPSBfZ2V0VVRGOExlbmd0aChzVGV4dCkKKworICAgIGZvciAodmFyIGkgPSAwLCBs
ZW4gPSBRUkNvZGVMaW1pdExlbmd0aC5sZW5ndGg7IGkgPD0gbGVuOyBpKyspIHsKKyAgICAgIHZh
ciBuTGltaXQgPSAwCisKKyAgICAgIHN3aXRjaCAobkNvcnJlY3RMZXZlbCkgeworICAgICAgICBj
YXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwuTDoKKyAgICAgICAgICBuTGltaXQgPSBRUkNvZGVMaW1p
dExlbmd0aFtpXVswXQorICAgICAgICAgIGJyZWFrCisgICAgICAgIGNhc2UgUVJFcnJvckNvcnJl
Y3RMZXZlbC5NOgorICAgICAgICAgIG5MaW1pdCA9IFFSQ29kZUxpbWl0TGVuZ3RoW2ldWzFdCisg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgY2FzZSBRUkVycm9yQ29ycmVjdExldmVsLlE6CisgICAg
ICAgICAgbkxpbWl0ID0gUVJDb2RlTGltaXRMZW5ndGhbaV1bMl0KKyAgICAgICAgICBicmVhawor
ICAgICAgICBjYXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwuSDoKKyAgICAgICAgICBuTGltaXQgPSBR
UkNvZGVMaW1pdExlbmd0aFtpXVszXQorICAgICAgICAgIGJyZWFrCisgICAgICB9CisKKyAgICAg
IGlmIChsZW5ndGggPD0gbkxpbWl0KSB7CisgICAgICAgIGJyZWFrCisgICAgICB9IGVsc2Ugewor
ICAgICAgICBuVHlwZSsrCisgICAgICB9CisgICAgfQorCisgICAgaWYgKG5UeXBlID4gUVJDb2Rl
TGltaXRMZW5ndGgubGVuZ3RoKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvbyBsb25nIGRh
dGEnKQorICAgIH0KKworICAgIHJldHVybiBuVHlwZQorICB9CisKKyAgZnVuY3Rpb24gX2dldFVU
RjhMZW5ndGggKHNUZXh0KSB7CisgICAgdmFyIHJlcGxhY2VkVGV4dCA9IGVuY29kZVVSSShzVGV4
dCkKKyAgICAgIC50b1N0cmluZygpCisgICAgICAucmVwbGFjZSgvXCVbMC05YS1mQS1GXXsyfS9n
LCAnYScpCisgICAgcmV0dXJuIHJlcGxhY2VkVGV4dC5sZW5ndGggKyAocmVwbGFjZWRUZXh0Lmxl
bmd0aCAhPSBzVGV4dCA/IDMgOiAwKQorICB9CisKKyAgLyoqCisgICAqIEBjbGFzcyBRUkNvZGUK
KyAgICogQGNvbnN0cnVjdG9yCisgICAqIEBleGFtcGxlCisgICAqIG5ldyBRUkNvZGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKSwgImh0dHA6Ly9qaW5kby5kZXYubmF2ZXIuY29tL2Nv
bGxpZSIpOworICAgKgorICAgKiBAZXhhbXBsZQorICAgKiB2YXIgb1FSQ29kZSA9IG5ldyBRUkNv
ZGUoInRlc3QiLCB7CisgICAqICAgIHRleHQgOiAiaHR0cDovL25hdmVyLmNvbSIsCisgICAqICAg
IHdpZHRoIDogMTI4LAorICAgKiAgICBoZWlnaHQgOiAxMjgKKyAgICogfSk7CisgICAqCisgICAq
IG9RUkNvZGUuY2xlYXIoKTsgLy8gQ2xlYXIgdGhlIFFSQ29kZS4KKyAgICogb1FSQ29kZS5tYWtl
Q29kZSgiaHR0cDovL21hcC5uYXZlci5jb20iKTsgLy8gUmUtY3JlYXRlIHRoZSBRUkNvZGUuCisg
ICAqCisgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8U3RyaW5nfSBlbCB0YXJnZXQgZWxlbWVudCBv
ciAnaWQnIGF0dHJpYnV0ZSBvZiBlbGVtZW50LgorICAgKiBAcGFyYW0ge09iamVjdHxTdHJpbmd9
IHZPcHRpb24KKyAgICogQHBhcmFtIHtTdHJpbmd9IHZPcHRpb24udGV4dCBRUkNvZGUgbGluayBk
YXRhCisgICAqIEBwYXJhbSB7TnVtYmVyfSBbdk9wdGlvbi53aWR0aD0yNTZdCisgICAqIEBwYXJh
bSB7TnVtYmVyfSBbdk9wdGlvbi5oZWlnaHQ9MjU2XQorICAgKiBAcGFyYW0ge1N0cmluZ30gW3ZP
cHRpb24uY29sb3JEYXJrPSIjMDAwMDAwIl0KKyAgICogQHBhcmFtIHtTdHJpbmd9IFt2T3B0aW9u
LmNvbG9yTGlnaHQ9IiNmZmZmZmYiXQorICAgKiBAcGFyYW0ge1FSQ29kZS5Db3JyZWN0TGV2ZWx9
IFt2T3B0aW9uLmNvcnJlY3RMZXZlbD1RUkNvZGUuQ29ycmVjdExldmVsLkhdIFtMfE18UXxIXQor
ICAgKi8KKyAgUVJDb2RlID0gZnVuY3Rpb24gKGVsLCB2T3B0aW9uKSB7CisgICAgdGhpcy5faHRP
cHRpb24gPSB7CisgICAgICB3aWR0aDogMjU2LAorICAgICAgaGVpZ2h0OiAyNTYsCisgICAgICB0
eXBlTnVtYmVyOiA0LAorICAgICAgY29sb3JEYXJrOiAnIzAwMDAwMCcsCisgICAgICBjb2xvckxp
Z2h0OiAnI2ZmZmZmZicsCisgICAgICBjb3JyZWN0TGV2ZWw6IFFSRXJyb3JDb3JyZWN0TGV2ZWwu
SAorICAgIH0KKworICAgIGlmICh0eXBlb2Ygdk9wdGlvbiA9PT0gJ3N0cmluZycpIHsKKyAgICAg
IHZPcHRpb24gPSB7CisgICAgICAgIHRleHQ6IHZPcHRpb24KKyAgICAgIH0KKyAgICB9CisKKyAg
ICAvLyBPdmVyd3JpdGVzIG9wdGlvbnMKKyAgICBpZiAodk9wdGlvbikgeworICAgICAgZm9yICh2
YXIgaSBpbiB2T3B0aW9uKSB7CisgICAgICAgIHRoaXMuX2h0T3B0aW9uW2ldID0gdk9wdGlvbltp
XQorICAgICAgfQorICAgIH0KKworICAgIGlmICh0eXBlb2YgZWwgPT09ICdzdHJpbmcnKSB7Cisg
ICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsKQorICAgIH0KKworICAgIGlmICh0
aGlzLl9odE9wdGlvbi51c2VTVkcpIHsKKyAgICAgIERyYXdpbmcgPSBzdmdEcmF3ZXIKKyAgICB9
CisKKyAgICB0aGlzLl9hbmRyb2lkID0gX2dldEFuZHJvaWQoKQorICAgIHRoaXMuX2VsID0gZWwK
KyAgICB0aGlzLl9vUVJDb2RlID0gbnVsbAorICAgIHRoaXMuX29EcmF3aW5nID0gbmV3IERyYXdp
bmcodGhpcy5fZWwsIHRoaXMuX2h0T3B0aW9uKQorCisgICAgaWYgKHRoaXMuX2h0T3B0aW9uLnRl
eHQpIHsKKyAgICAgIHRoaXMubWFrZUNvZGUodGhpcy5faHRPcHRpb24udGV4dCkKKyAgICB9Cisg
IH0KKworICAvKioKKyAgICogTWFrZSB0aGUgUVJDb2RlCisgICAqCisgICAqIEBwYXJhbSB7U3Ry
aW5nfSBzVGV4dCBsaW5rIGRhdGEKKyAgICovCisgIFFSQ29kZS5wcm90b3R5cGUubWFrZUNvZGUg
PSBmdW5jdGlvbiAoc1RleHQpIHsKKyAgICB0aGlzLl9vUVJDb2RlID0gbmV3IFFSQ29kZU1vZGVs
KAorICAgICAgX2dldFR5cGVOdW1iZXIoc1RleHQsIHRoaXMuX2h0T3B0aW9uLmNvcnJlY3RMZXZl
bCksCisgICAgICB0aGlzLl9odE9wdGlvbi5jb3JyZWN0TGV2ZWwKKyAgICApCisgICAgdGhpcy5f
b1FSQ29kZS5hZGREYXRhKHNUZXh0KQorICAgIHRoaXMuX29RUkNvZGUubWFrZSgpCisgICAgdGhp
cy5fZWwudGl0bGUgPSBzVGV4dAorICAgIHRoaXMuX29EcmF3aW5nLmRyYXcodGhpcy5fb1FSQ29k
ZSkKKyAgICB0aGlzLm1ha2VJbWFnZSgpCisgIH0KKworICAvKioKKyAgICogTWFrZSB0aGUgSW1h
Z2UgZnJvbSBDYW52YXMgZWxlbWVudAorICAgKiAtIEl0IG9jY3VycyBhdXRvbWF0aWNhbGx5Cisg
ICAqIC0gQW5kcm9pZCBiZWxvdyAzIGRvZXNuJ3Qgc3VwcG9ydCBEYXRhLVVSSSBzcGVjLgorICAg
KgorICAgKiBAcHJpdmF0ZQorICAgKi8KKyAgUVJDb2RlLnByb3RvdHlwZS5tYWtlSW1hZ2UgPSBm
dW5jdGlvbiAoKSB7CisgICAgaWYgKAorICAgICAgdHlwZW9mIHRoaXMuX29EcmF3aW5nLm1ha2VJ
bWFnZSA9PT0gJ2Z1bmN0aW9uJyAmJgorICAgICAgKCF0aGlzLl9hbmRyb2lkIHx8IHRoaXMuX2Fu
ZHJvaWQgPj0gMykKKyAgICApIHsKKyAgICAgIHRoaXMuX29EcmF3aW5nLm1ha2VJbWFnZSgpCisg
ICAgfQorICB9CisKKyAgLyoqCisgICAqIENsZWFyIHRoZSBRUkNvZGUKKyAgICovCisgIFFSQ29k
ZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbiAoKSB7CisgICAgdGhpcy5fb0RyYXdpbmcuY2xl
YXIoKQorICB9CisKKyAgLyoqCisgICAqIEBuYW1lIFFSQ29kZS5Db3JyZWN0TGV2ZWwKKyAgICov
CisgIFFSQ29kZS5Db3JyZWN0TGV2ZWwgPSBRUkVycm9yQ29ycmVjdExldmVsCit9KSgpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvd3d3L2xpYi9xdWVyeS1wYXJzZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9xdWVyeS1wYXJzZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzhhYjgzMzNkMmIwOWNlMmFjNzk5YWVkNGUzNDczZWMwMjAyNjc0ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS93d3cvbGliL3F1ZXJ5LXBhcnNlci5qcwpAQCAtMCwwICsxLDEyIEBACit2YXIg
UXVlcnlQYXJzZXIgPSB7fTsKKworUXVlcnlQYXJzZXIucGFyc2VRdWVyeSA9IGZ1bmN0aW9uICgp
IHsKKyAgdmFyIHF1ZXJ5UGFyYW1ldGVycyA9IHt9OworICB2YXIga2V5c0FuZFZhbHVlcyA9IGxv
Y2F0aW9uLnNlYXJjaC5yZXBsYWNlKCI/IiwgIiIpLnNwbGl0KCImIik7CisgIGZvciAodmFyIGkg
PSAwOyBpIDwga2V5c0FuZFZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgIHZhciBrZXkgPSBrZXlz
QW5kVmFsdWVzW2ldLnNwbGl0KCI9IilbMF07CisgICAgdmFyIHZhbHVlID0ga2V5c0FuZFZhbHVl
c1tpXS5zcGxpdCgiPSIpWzFdOworICAgIHF1ZXJ5UGFyYW1ldGVyc1trZXldID0gdmFsdWU7Cisg
IH0KKyAgcmV0dXJuIHF1ZXJ5UGFyYW1ldGVyczsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9zY3Jl
ZW4tY29uc29sZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS93d3cvbGliL3NjcmVlbi1jb25zb2xlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMTNi
OTYzYTZjMzRjM2UxM2M4NjQwYmNmY2FlOWQ2YTU2NDBhYzAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3
L2xpYi9zY3JlZW4tY29uc29sZS5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBTY3JlZW5D
b25zb2xlKGVsZW1lbnQpIHsKKyAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7Cit9CisKK1NjcmVl
bkNvbnNvbGUucHJvdG90eXBlLmxvZyA9IGZ1bmN0aW9uICgpIHsKKyAgdmFyIHRleHQgPSAiIjsK
KyAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICB0ZXh0
ICs9IGFyZ3VtZW50c1tpXSArICIgIjsKKyAgfQorICBjb25zb2xlLmxvZyh0ZXh0KTsKKyAgdGhp
cy5fZWxlbWVudC5pbm5lclRleHQgKz0gdGV4dCArICJcbiI7Cit9OworCitTY3JlZW5Db25zb2xl
LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHsKKyAgdGhpcy5fZWxlbWVudC5pbm5lclRl
eHQgPSAiIjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi91aS5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3VpLmpzCmluZGV4
IDY4NGVkMTgwMDllMzdmMzdjZjU3MDUyMDdhM2UyN2UzYWNlZWUzYWUuLjRhYmJlY2U5ODVlNDI4
NGVlMDI0NzUyMjQ4ZjNlMzBmZTg5OGI0ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3VpLmpzCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvbGliL3VpLmpzCkBAIC02OCw2ICs2OCw5IEBAIGNvbnN0IFVJID0gewogICAgICAgICBjYXNl
ICJjaGVja2VkIjoKICAgICAgICAgICBpZiAodmFsdWUpIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJj
aGVja2VkIiwgdHJ1ZSk7CiAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlICJpbmRldGVy
bWluYXRlIjoKKyAgICAgICAgICBlbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB2YWx1ZTsKKyAgICAg
ICAgICByZXR1cm47CiAgICAgICB9CiAgICAgfSk7CiAgICAgcmV0dXJuIGVsZW1lbnQ7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvd3d3L2xpYi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzVmNGQ5MDlkZDdkZWFlMmI2NWM2ZGUxZWU1ZjJj
NzFmZDk5YTc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvbGliL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3d3dy9saWIva2V5Y29kZXMuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi91aS5qcwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3V0aWxzLmpzCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy9saWIvd2F2ZS1zZXJ2aWNlLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi93YXZlLXNlcnZpY2UuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L2xpYi93YXZlLXNlcnZpY2UuanMKaW5kZXggZTQyMDI5MGViYzYyMjQ0NGRlNGEyNGQ2NmU5
MTdiYTkxMjM1ZjRhMi4uZjdhNjBlMTUzZGM3NzgzMDUwZjZiODEzYzEzMDA3MDI4MjQ4ZmI5OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL3d3dy9saWIvd2F2ZS1zZXJ2aWNlLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3dhdmUtc2Vydmlj
ZS5qcwpAQCAtMSwxMyArMSwxMyBAQAogZnVuY3Rpb24gc2VuZFJlcXVlc3QobWV0aG9kLCB1cmks
IGhlYWRlcnMsIGRhdGEsIG9uU3VjY2Vzcywgb25FcnJvcikgewogICB2YXIgeGhyID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgeGhyLm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHsKICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwKSB7CiAgICAgICBv
blN1Y2Nlc3MoeGhyLnJlc3BvbnNlKTsKICAgICB9IGVsc2UgewogICAgICAgaWYgKG9uRXJyb3Ip
IG9uRXJyb3IoeGhyLnN0YXR1cywgeGhyLnJlc3BvbnNlKTsKICAgICB9CiAgIH07Ci0gIHhoci5v
bmVycm9yID0gZnVuY3Rpb24oKSB7CisgIHhoci5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAg
IGlmIChvbkVycm9yKSBvbkVycm9yKCk7CiAgIH07CiAgIHhoci5vcGVuKG1ldGhvZCwgV2F2ZVNl
cnZpY2UudXJpUHJlZml4ICsgdXJpLCB0cnVlKTsKQEAgLTE4LDkgKzE4LDkgQEAgZnVuY3Rpb24g
c2VuZFJlcXVlc3QobWV0aG9kLCB1cmksIGhlYWRlcnMsIGRhdGEsIG9uU3VjY2Vzcywgb25FcnJv
cikgewogICByZXR1cm4geGhyOwogfQogCi12YXIgV0VCX1JPT1QgPSAie3tXRUJfUk9PVH19Igot
dmFyIEhUVFBfUE9SVCA9ICJ7e0hUVFBfUE9SVH19IgotdmFyIEhUVFBTX1BPUlQgPSAie3tIVFRQ
U19QT1JUfX0iCit2YXIgV0VCX1JPT1QgPSAie3tXRUJfUk9PVH19IjsKK3ZhciBIVFRQX1BPUlQg
PSAie3tIVFRQX1BPUlR9fSI7Cit2YXIgSFRUUFNfUE9SVCA9ICJ7e0hUVFBTX1BPUlR9fSI7CiB2
YXIgT1BFTiA9ICJvcGVuIjsKIHZhciBDTE9TRUQgPSAiY2xvc2VkIjsKIApAQCAtMjgsNDIgKzI4
LDQyIEBAIHZhciBXYXZlU2VydmljZSA9IHsKICAgdXJpUHJlZml4OiBXRUJfUk9PVCwKICAgc29j
a2V0OiB7CiAgICAgc3RhdGU6IENMT1NFRCwKLSAgICBvbk1lc3NhZ2U6IGZ1bmN0aW9uKCkge30s
Ci0gICAgb25PcGVuOiBmdW5jdGlvbigpIHt9LAotICAgIG9uQ2xvc2U6IGZ1bmN0aW9uKCkge30s
Ci0gICAgc2VuZDogZnVuY3Rpb24oKSB7fSwKLSAgICBjbG9zZTogZnVuY3Rpb24oKSB7fSwKLSAg
ICBvblN0YXRlQ2hhbmdlOiBmdW5jdGlvbigpIHt9CisgICAgb25NZXNzYWdlOiBmdW5jdGlvbiAo
KSB7fSwKKyAgICBvbk9wZW46IGZ1bmN0aW9uICgpIHt9LAorICAgIG9uQ2xvc2U6IGZ1bmN0aW9u
ICgpIHt9LAorICAgIHNlbmQ6IGZ1bmN0aW9uICgpIHt9LAorICAgIGNsb3NlOiBmdW5jdGlvbiAo
KSB7fSwKKyAgICBvblN0YXRlQ2hhbmdlOiBmdW5jdGlvbiAoKSB7fSwKICAgfSwKICAgLy8gU0VT
U0lPTlMgQVBJCi0gIGNyZWF0ZVNlc3Npb246IGZ1bmN0aW9uKGNvbmZpZ3VyYXRpb24sIG9uU3Vj
Y2Vzcywgb25FcnJvcikgeworICBjcmVhdGVTZXNzaW9uOiBmdW5jdGlvbiAoY29uZmlndXJhdGlv
biwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgdmFyIGRhdGEgPSBKU09OLnN0cmluZ2lmeSh7
CiAgICAgICB0ZXN0czogY29uZmlndXJhdGlvbi50ZXN0cywKICAgICAgIHR5cGVzOiBjb25maWd1
cmF0aW9uLnR5cGVzLAogICAgICAgdGltZW91dHM6IGNvbmZpZ3VyYXRpb24udGltZW91dHMsCiAg
ICAgICByZWZlcmVuY2VfdG9rZW5zOiBjb25maWd1cmF0aW9uLnJlZmVyZW5jZVRva2VucywKICAg
ICAgIGV4cGlyYXRpb25fZGF0ZTogY29uZmlndXJhdGlvbi5leHBpcmF0aW9uRGF0ZSwKLSAgICAg
IGxhYmVsczogY29uZmlndXJhdGlvbi5sYWJlbHMKKyAgICAgIGxhYmVsczogY29uZmlndXJhdGlv
bi5sYWJlbHMsCiAgICAgfSk7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiUE9TVCIsCiAgICAg
ICAiYXBpL3Nlc3Npb25zIiwKICAgICAgIHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9q
c29uIiB9LAogICAgICAgZGF0YSwKLSAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBm
dW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgdmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNl
KHJlc3BvbnNlKTsKICAgICAgICAgb25TdWNjZXNzKGpzb25PYmplY3QudG9rZW4pOwogICAgICAg
fSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFkU2Vzc2lvbjogZnVuY3Rpb24o
dG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgeworICByZWFkU2Vzc2lvbjogZnVuY3Rpb24gKHRv
a2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJHRVQi
LAogICAgICAgImFwaS9zZXNzaW9ucy8iICsgdG9rZW4sCiAgICAgICBudWxsLAogICAgICAgbnVs
bCwKLSAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKICAgICAgICAgdmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAg
ICAgb25TdWNjZXNzKHsKICAgICAgICAgICB0b2tlbjoganNvbk9iamVjdC50b2tlbiwKQEAgLTc1
LDE0ICs3NSwxMiBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgICAgICAgYnJvd3NlcjoganNv
bk9iamVjdC5icm93c2VyLAogICAgICAgICAgIGlzUHVibGljOiBqc29uT2JqZWN0LmlzX3B1Ymxp
YywKICAgICAgICAgICByZWZlcmVuY2VUb2tlbnM6IGpzb25PYmplY3QucmVmZXJlbmNlX3Rva2Vu
cywKLSAgICAgICAgICB3ZWJob29rVXJsczoganNvbk9iamVjdC53ZWJob29rX3VybHMsCi0gICAg
ICAgICAgZXhwaXJhdGlvbkRhdGU6IGpzb25PYmplY3QuZXhwaXJhdGlvbl9kYXRlCiAgICAgICAg
IH0pOwogICAgICAgfSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFkTXVsdGlw
bGVTZXNzaW9uczogZnVuY3Rpb24odG9rZW5zLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVh
ZE11bHRpcGxlU2Vzc2lvbnM6IGZ1bmN0aW9uICh0b2tlbnMsIG9uU3VjY2Vzcywgb25FcnJvcikg
ewogICAgIHZhciByZXF1ZXN0c0xlZnQgPSB0b2tlbnMubGVuZ3RoOwogICAgIGlmIChyZXF1ZXN0
c0xlZnQgPT09IDApIG9uU3VjY2VzcyhbXSk7CiAgICAgdmFyIGNvbmZpZ3VyYXRpb25zID0gW107
CkBAIC05MCwxMiArODgsMTIgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgdmFyIHRva2Vu
ID0gdG9rZW5zW2ldOwogICAgICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24oCiAgICAgICAgIHRv
a2VuLAotICAgICAgICBmdW5jdGlvbihjb25maWd1cmF0aW9uKSB7CisgICAgICAgIGZ1bmN0aW9u
IChjb25maWd1cmF0aW9uKSB7CiAgICAgICAgICAgcmVxdWVzdHNMZWZ0LS07CiAgICAgICAgICAg
Y29uZmlndXJhdGlvbnMucHVzaChjb25maWd1cmF0aW9uKTsKICAgICAgICAgICBpZiAocmVxdWVz
dHNMZWZ0ID09PSAwKSBvblN1Y2Nlc3MoY29uZmlndXJhdGlvbnMpOwogICAgICAgICB9LAotICAg
ICAgICBmdW5jdGlvbihzdGF0dXMpIHsKKyAgICAgICAgZnVuY3Rpb24gKHN0YXR1cykgewogICAg
ICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCkgcmVxdWVzdHNMZWZ0LS07CiAgICAgICAgICAgaWYg
KHN0YXR1cyAhPT0gNDA0ICYmIG9uRXJyb3IpIG9uRXJyb3IoKTsKICAgICAgICAgICBpZiAocmVx
dWVzdHNMZWZ0ID09PSAwKSBvblN1Y2Nlc3MoY29uZmlndXJhdGlvbnMpOwpAQCAtMTAzLDI5ICsx
MDEsNDIgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgKTsKICAgICB9CiAgIH0sCi0gIHJl
YWRTZXNzaW9uU3RhdHVzOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7Cisg
IHJlYWRTZXNzaW9uU3RhdHVzOiBmdW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikg
ewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdFVCIsCiAgICAgICAiYXBpL3Nlc3Npb25zLyIg
KyB0b2tlbiArICIvc3RhdHVzIiwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVu
Y3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2
YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOworICAgICAgICB2YXIgZGF0ZVN0
YXJ0ZWQgPSBudWxsOworICAgICAgICBpZiAoanNvbk9iamVjdC5kYXRlX3N0YXJ0ZWQpIHsKKyAg
ICAgICAgICBkYXRlU3RhcnRlZCA9IG5ldyBEYXRlKGpzb25PYmplY3QuZGF0ZV9zdGFydGVkKTsK
KyAgICAgICAgfQorICAgICAgICB2YXIgZGF0ZUZpbmlzaGVkID0gbnVsbDsKKyAgICAgICAgaWYg
KGpzb25PYmplY3QuZGF0ZV9maW5pc2hlZCkgeworICAgICAgICAgIGRhdGVGaW5pc2hlZCA9IG5l
dyBEYXRlKGpzb25PYmplY3QuZGF0ZV9maW5pc2hlZCk7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IGV4cGlyYXRpb25EYXRlID0gbnVsbDsKKyAgICAgICAgaWYgKGpzb25PYmplY3QuZXhwaXJhdGlv
bl9kYXRlKSB7CisgICAgICAgICAgZXhwaXJhdGlvbkRhdGUgPSBuZXcgRGF0ZShqc29uT2JqZWN0
LmV4cGlyYXRpb25fZGF0ZSk7CisgICAgICAgIH0KICAgICAgICAgb25TdWNjZXNzKHsKICAgICAg
ICAgICB0b2tlbjoganNvbk9iamVjdC50b2tlbiwKLSAgICAgICAgICBkYXRlU3RhcnRlZDoganNv
bk9iamVjdC5kYXRlX3N0YXJ0ZWQsCi0gICAgICAgICAgZGF0ZUZpbmlzaGVkOiBqc29uT2JqZWN0
LmRhdGVfZmluaXNoZWQsCisgICAgICAgICAgZGF0ZVN0YXJ0ZWQ6IGRhdGVTdGFydGVkLAorICAg
ICAgICAgIGRhdGVGaW5pc2hlZDogZGF0ZUZpbmlzaGVkLAogICAgICAgICAgIHRlc3RGaWxlc0Nv
dW50OiBqc29uT2JqZWN0LnRlc3RfZmlsZXNfY291bnQsCiAgICAgICAgICAgdGVzdEZpbGVzQ29t
cGxldGVkOiBqc29uT2JqZWN0LnRlc3RfZmlsZXNfY29tcGxldGVkLAotICAgICAgICAgIHN0YXR1
czoganNvbk9iamVjdC5zdGF0dXMKKyAgICAgICAgICBzdGF0dXM6IGpzb25PYmplY3Quc3RhdHVz
LAorICAgICAgICAgIGV4cGlyYXRpb25EYXRlOiBleHBpcmF0aW9uRGF0ZSwKICAgICAgICAgfSk7
CiAgICAgICB9LAotICAgICAgZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiAoKSB7CiAgICAg
ICAgIGlmIChvbkVycm9yKSBvbkVycm9yKCk7CiAgICAgICB9CiAgICAgKTsKICAgfSwKLSAgcmVh
ZE11bHRpcGxlU2Vzc2lvblN0YXR1c2VzOiBmdW5jdGlvbih0b2tlbnMsIG9uU3VjY2Vzcywgb25F
cnJvcikgeworICByZWFkTXVsdGlwbGVTZXNzaW9uU3RhdHVzZXM6IGZ1bmN0aW9uICh0b2tlbnMs
IG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHZhciByZXF1ZXN0c0xlZnQgPSB0b2tlbnMubGVu
Z3RoOwogICAgIGlmIChyZXF1ZXN0c0xlZnQgPT09IDApIG9uU3VjY2VzcyhbXSk7CiAgICAgdmFy
IHN0YXR1c2VzID0gW107CkBAIC0xMzMsMTM0ICsxNDQsMTM1IEBAIHZhciBXYXZlU2VydmljZSA9
IHsKICAgICAgIHZhciB0b2tlbiA9IHRva2Vuc1tpXTsKICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRT
ZXNzaW9uU3RhdHVzKAogICAgICAgICB0b2tlbiwKLSAgICAgICAgZnVuY3Rpb24oc3RhdHVzKSB7
CisgICAgICAgIGZ1bmN0aW9uIChzdGF0dXMpIHsKICAgICAgICAgICByZXF1ZXN0c0xlZnQtLTsK
ICAgICAgICAgICBzdGF0dXNlcy5wdXNoKHN0YXR1cyk7CiAgICAgICAgICAgaWYgKHJlcXVlc3Rz
TGVmdCA9PT0gMCkgb25TdWNjZXNzKHN0YXR1c2VzKTsKICAgICAgICAgfSwKLSAgICAgICAgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICByZXF1ZXN0c0xlZnQt
LTsKICAgICAgICAgICBpZiAocmVxdWVzdHNMZWZ0ID09PSAwKSBvblN1Y2Nlc3Moc3RhdHVzZXMp
OwogICAgICAgICB9CiAgICAgICApOwogICAgIH0KICAgfSwKLSAgcmVhZFB1YmxpY1Nlc3Npb25z
OiBmdW5jdGlvbihvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVhZFB1YmxpY1Nlc3Npb25zOiBm
dW5jdGlvbiAob25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAi
R0VUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvcHVibGljIiwKICAgICAgIG51bGwsCiAgICAgICBu
dWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewogICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAg
ICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdCk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAg
ICk7CiAgIH0sCi0gIHVwZGF0ZVNlc3Npb246IGZ1bmN0aW9uKHRva2VuLCBjb25maWd1cmF0aW9u
LCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgdXBkYXRlU2Vzc2lvbjogZnVuY3Rpb24gKHRva2Vu
LCBjb25maWd1cmF0aW9uLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICB2YXIgZGF0YSA9IEpT
T04uc3RyaW5naWZ5KHsKICAgICAgIHRlc3RzOiBjb25maWd1cmF0aW9uLnRlc3RzLAogICAgICAg
dHlwZXM6IGNvbmZpZ3VyYXRpb24udHlwZXMsCiAgICAgICB0aW1lb3V0czogY29uZmlndXJhdGlv
bi50aW1lb3V0cywKICAgICAgIHJlZmVyZW5jZV90b2tlbnM6IGNvbmZpZ3VyYXRpb24ucmVmZXJl
bmNlVG9rZW5zLAotICAgICAgZXhwaXJhdGlvbl9kYXRlOiBjb25maWd1cmF0aW9uLmV4cGlyYXRp
b25EYXRlCisgICAgICBleHBpcmF0aW9uX2RhdGU6IGNvbmZpZ3VyYXRpb24uZXhwaXJhdGlvbkRh
dGUsCisgICAgICB0eXBlOiBjb25maWd1cmF0aW9uLnR5cGUsCiAgICAgfSk7CiAgICAgc2VuZFJl
cXVlc3QoCiAgICAgICAiUFVUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIHRva2VuLAogICAg
ICAgeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICAgICBkYXRhLAot
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgIG9uU3VjY2Vz
cygpOwogICAgICAgfSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICB1cGRhdGVMYWJl
bHM6IGZ1bmN0aW9uKHRva2VuLCBsYWJlbHMsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICB1cGRh
dGVMYWJlbHM6IGZ1bmN0aW9uICh0b2tlbiwgbGFiZWxzLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsK
ICAgICB2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHsgbGFiZWxzOiBsYWJlbHMgfSk7CiAgICAg
c2VuZFJlcXVlc3QoCiAgICAgICAiUFVUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIHRva2Vu
ICsgIi9sYWJlbHMiLAogICAgICAgeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24i
IH0sCiAgICAgICBkYXRhLAotICAgICAgZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiAoKSB7
CiAgICAgICAgIGlmIChvblN1Y2Nlc3MpIG9uU3VjY2VzcygpOwogICAgICAgfSwKICAgICAgIG9u
RXJyb3IKICAgICApOwogICB9LAotICBmaW5kVG9rZW46IGZ1bmN0aW9uKGZyYWdtZW50LCBvblN1
Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgZmluZFRva2VuOiBmdW5jdGlvbiAoZnJhZ21lbnQsIG9uU3Vj
Y2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdFVCIsCiAgICAgICAi
YXBpL3Nlc3Npb25zLyIgKyBmcmFnbWVudCwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAg
ICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAg
ICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1
Y2Nlc3MoanNvbk9iamVjdC50b2tlbik7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7
CiAgIH0sCi0gIHN0YXJ0U2Vzc2lvbjogZnVuY3Rpb24odG9rZW4sIG9uU3VjY2Vzcywgb25FcnJv
cikgeworICBzdGFydFNlc3Npb246IGZ1bmN0aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9y
KSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiUE9TVCIsCiAgICAgICAiYXBpL3Nlc3Npb25z
LyIgKyB0b2tlbiArICIvc3RhcnQiLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBm
dW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAg
ICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7CiAgIH0sCi0gIHBhdXNlU2Vzc2lvbjogZnVu
Y3Rpb24odG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgeworICBwYXVzZVNlc3Npb246IGZ1bmN0
aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAg
ICAiUE9TVCIsCiAgICAgICAiYXBpL3Nlc3Npb25zLyIgKyB0b2tlbiArICIvcGF1c2UiLAogICAg
ICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAg
ICk7CiAgIH0sCi0gIHN0b3BTZXNzaW9uOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVy
cm9yKSB7CisgIHN0b3BTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJv
cikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIlBPU1QiLAogICAgICAgImFwaS9zZXNzaW9u
cy8iICsgdG9rZW4gKyAiL3N0b3AiLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBm
dW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAg
ICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7CiAgIH0sCi0gIHJlc3VtZVNlc3Npb246IGZ1
bmN0aW9uKHRva2VuLCByZXN1bWVUb2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHJlc3Vt
ZVNlc3Npb246IGZ1bmN0aW9uICh0b2tlbiwgcmVzdW1lVG9rZW4sIG9uU3VjY2Vzcywgb25FcnJv
cikgewogICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoeyByZXN1bWVfdG9rZW46IHJlc3Vt
ZVRva2VuIH0pOwogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIlBPU1QiLAogICAgICAgImFwaS9z
ZXNzaW9ucy8iICsgdG9rZW4gKyAiL3Jlc3VtZSIsCiAgICAgICB7ICJDb250ZW50LVR5cGUiOiAi
YXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgIGRhdGEsCi0gICAgICBmdW5jdGlvbigpIHsKKyAg
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaWYgKG9uU3VjY2Vzcykgb25TdWNjZXNzKCk7CiAg
ICAgICB9LAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNw
b25zZSkgewogICAgICAgICBpZiAob25FcnJvcikgb25FcnJvcihyZXNwb25zZSk7CiAgICAgICB9
CiAgICAgKTsKICAgfSwKLSAgZGVsZXRlU2Vzc2lvbjogZnVuY3Rpb24odG9rZW4sIG9uU3VjY2Vz
cywgb25FcnJvcikgeworICBkZWxldGVTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vz
cywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkRFTEVURSIsCiAgICAgICAi
YXBpL3Nlc3Npb25zLyIgKyB0b2tlbiwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAg
ZnVuY3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgIG9uU3VjY2VzcygpOwog
ICAgICAgfSwKICAgICAgIG9uRXJyb3IKQEAgLTI2OCwyMCArMjgwLDMzIEBAIHZhciBXYXZlU2Vy
dmljZSA9IHsKICAgfSwKIAogICAvLyBURVNUUyBBUEkKLSAgcmVhZE5leHRUZXN0OiBmdW5jdGlv
bih0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHJlYWRUZXN0TGlzdDogZnVuY3Rpb24g
KG9uU3VjY2Vzcywgb25FcnJvcikgeworICAgIHNlbmRSZXF1ZXN0KAorICAgICAgIkdFVCIsCisg
ICAgICAiYXBpL3Rlc3RzIiwKKyAgICAgIG51bGwsCisgICAgICBudWxsLAorICAgICAgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7CisgICAgICAgIHZhciBqc29uT2JqZWN0ID0gSlNPTi5wYXJzZShyZXNw
b25zZSk7CisgICAgICAgIG9uU3VjY2Vzcyhqc29uT2JqZWN0KTsKKyAgICAgIH0sCisgICAgICBv
bkVycm9yCisgICAgKTsKKyAgfSwKKyAgcmVhZE5leHRUZXN0OiBmdW5jdGlvbiAodG9rZW4sIG9u
U3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdFVCIsCiAgICAg
ICAiYXBpL3Rlc3RzLyIgKyB0b2tlbiArICIvbmV4dCIsCiAgICAgICBudWxsLAogICAgICAgbnVs
bCwKLSAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKICAgICAgICAgdmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAg
ICAgb25TdWNjZXNzKGpzb25PYmplY3QubmV4dF90ZXN0KTsKICAgICAgIH0sCiAgICAgICBvbkVy
cm9yCiAgICAgKTsKICAgfSwKLSAgcmVhZExhc3RDb21wbGV0ZWRUZXN0czogZnVuY3Rpb24odG9r
ZW4sIHJlc3VsdFR5cGVzLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVhZExhc3RDb21wbGV0
ZWRUZXN0czogZnVuY3Rpb24gKHRva2VuLCByZXN1bHRUeXBlcywgb25TdWNjZXNzLCBvbkVycm9y
KSB7CiAgICAgdmFyIHN0YXR1cyA9ICIiOwogICAgIGlmIChyZXN1bHRUeXBlcykgewogICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRUeXBlcy5sZW5ndGg7IGkrKykgewpAQCAtMjk0LDcg
KzMxOSw3IEBAIHZhciBXYXZlU2VydmljZSA9IHsKICAgICAgICJhcGkvdGVzdHMvIiArIHRva2Vu
ICsgIi9sYXN0X2NvbXBsZXRlZD9zdGF0dXM9IiArIHN0YXR1cywKICAgICAgIG51bGwsCiAgICAg
ICBudWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNw
b25zZSkgewogICAgICAgICB2YXIgdGVzdHMgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAg
ICAgdmFyIHBhcnNlZFRlc3RzID0gW107CiAgICAgICAgIGZvciAodmFyIHN0YXR1cyBpbiB0ZXN0
cykgewpAQCAtMzA4LDIzICszMzMsMjMgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgb25F
cnJvcgogICAgICk7CiAgIH0sCi0gIHJlYWRNYWxmdW5jdGlvbmluZ1Rlc3RzOiBmdW5jdGlvbih0
b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHJlYWRNYWxmdW5jdGlvbmluZ1Rlc3RzOiBm
dW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAog
ICAgICAgIkdFVCIsCiAgICAgICAiYXBpL3Rlc3RzLyIgKyB0b2tlbiArICIvbWFsZnVuY3Rpb25p
bmciLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNwb25zZSkg
eworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciB0ZXN0cyA9IEpTT04u
cGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1Y2Nlc3ModGVzdHMpOwogICAgICAgfSwKLSAg
ICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAg
ICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IEpTT04ucGFyc2UocmVzcG9uc2UpLmVycm9yOwogICAg
ICAgICBvbkVycm9yKGVycm9yTWVzc2FnZSk7CiAgICAgICB9CiAgICAgKTsKICAgfSwKLSAgdXBk
YXRlTWFsZnVuY3Rpb25pbmdUZXN0czogZnVuY3Rpb24oCisgIHVwZGF0ZU1hbGZ1bmN0aW9uaW5n
VGVzdHM6IGZ1bmN0aW9uICgKICAgICB0b2tlbiwKICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzLAog
ICAgIG9uU3VjY2VzcywKQEAgLTMzNiw3NCArMzYxLDc0IEBAIHZhciBXYXZlU2VydmljZSA9IHsK
ICAgICAgICJhcGkvdGVzdHMvIiArIHRva2VuICsgIi9tYWxmdW5jdGlvbmluZyIsCiAgICAgICB7
ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgIGRhdGEsCi0gICAg
ICBmdW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7
CiAgICAgICB9LAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gSlNPTi5wYXJzZShyZXNwb25z
ZSkuZXJyb3I7CisgICAgICAgIG9uRXJyb3IoZXJyb3JNZXNzYWdlKTsKKyAgICAgIH0KKyAgICAp
OworICB9LAorICByZWFkQXZhaWxhYmxlQXBpczogZnVuY3Rpb24gKG9uU3VjY2Vzcywgb25FcnJv
cikgeworICAgIHNlbmRSZXF1ZXN0KAorICAgICAgIkdFVCIsCisgICAgICAiYXBpL3Rlc3RzL2Fw
aXMiLAorICAgICAgbnVsbCwKKyAgICAgIG51bGwsCisgICAgICBmdW5jdGlvbiAocmVzcG9uc2Up
IHsKKyAgICAgICAgdmFyIGFwaXMgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAgICAgb25T
dWNjZXNzKGFwaXMpOworICAgICAgfSwKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAg
ICAgICBpZiAoIW9uRXJyb3IpIHJldHVybjsKICAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IEpT
T04ucGFyc2UocmVzcG9uc2UpLmVycm9yOwogICAgICAgICBvbkVycm9yKGVycm9yTWVzc2FnZSk7
CiAgICAgICB9CiAgICAgKTsKICAgfSwKLQlyZWFkQXZhaWxhYmxlQXBpczogZnVuY3Rpb24ob25T
dWNjZXNzLCBvbkVycm9yKSB7Ci0JCXNlbmRSZXF1ZXN0KAotCQkJIkdFVCIsCi0JCQkiYXBpL3Rl
c3RzL2FwaXMiLAotCQkJbnVsbCwKLQkJCW51bGwsCi0JCQlmdW5jdGlvbihyZXNwb25zZSkgewot
CQkJCXZhciBhcGlzID0gSlNPTi5wYXJzZShyZXNwb25zZSk7Ci0JCQkJb25TdWNjZXNzKGFwaXMp
OwotCQkJfSwKLQkJCWZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0JCQkJaWYoIW9uRXJyb3IpIHJldHVy
bjsKLQkJCQl2YXIgZXJyb3JNZXNzYWdlID0gSlNPTi5wYXJzZShyZXNwb25zZSkuZXJyb3I7Ci0J
CQkJb25FcnJvcihlcnJvck1lc3NhZ2UpOwotCQkJfQotCQkpOwotCX0sCiAKICAgLy8gUkVTVUxU
UyBBUEkKLSAgY3JlYXRlUmVzdWx0OiBmdW5jdGlvbih0b2tlbiwgcmVzdWx0LCBvblN1Y2Nlc3Ms
IG9uRXJyb3IpIHsKKyAgY3JlYXRlUmVzdWx0OiBmdW5jdGlvbiAodG9rZW4sIHJlc3VsdCwgb25T
dWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiUE9TVCIsCiAgICAg
ICAiYXBpL3Jlc3VsdHMvIiArIHRva2VuLAogICAgICAgeyAiQ29udGVudC1UeXBlIjogImFwcGxp
Y2F0aW9uL2pzb24iIH0sCiAgICAgICBKU09OLnN0cmluZ2lmeShyZXN1bHQpLAotICAgICAgZnVu
Y3Rpb24oKSB7CisgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgIG9uU3VjY2VzcygpOwogICAg
ICAgfSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFkUmVzdWx0czogZnVuY3Rp
b24odG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgeworICByZWFkUmVzdWx0czogZnVuY3Rpb24g
KHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJH
RVQiLAogICAgICAgImFwaS9yZXN1bHRzLyIgKyB0b2tlbiwKICAgICAgIG51bGwsCiAgICAgICBu
dWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25z
ZSkgewogICAgICAgICBvblN1Y2Nlc3MoSlNPTi5wYXJzZShyZXNwb25zZSkpOwogICAgICAgfSwK
ICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFkUmVzdWx0c0NvbXBhY3Q6IGZ1bmN0
aW9uKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVhZFJlc3VsdHNDb21wYWN0OiBm
dW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAog
ICAgICAgIkdFVCIsCiAgICAgICAiYXBpL3Jlc3VsdHMvIiArIHRva2VuICsgIi9jb21wYWN0IiwK
ICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAg
ICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04u
cGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdCk7CiAgICAgICB9
LAogICAgICAgb25FcnJvcgogICAgICk7CiAgIH0sCi0gIHJlYWRSZXN1bHRDb21wYXJpc29uOiBm
dW5jdGlvbih0b2tlbnMsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICByZWFkUmVzdWx0Q29tcGFy
aXNvbjogZnVuY3Rpb24gKHRva2Vucywgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgdmFyIGNv
bXBhcmlzb24gPSB7fTsKLSAgICB2YXIgZmV0Y2hDb21wbGV0ZSA9IGZ1bmN0aW9uKHJlc3VsdHMp
IHsKKyAgICB2YXIgZmV0Y2hDb21wbGV0ZSA9IGZ1bmN0aW9uIChyZXN1bHRzKSB7CiAgICAgICBj
b21wYXJpc29uLnRvdGFsID0ge307CiAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdHMu
bGVuZ3RoOyBpKyspIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IHJlc3VsdHNbaV07CkBAIC00Mjgs
MTYgKzQ1MywxNiBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgdmFyIHJlc3VsdHMgPSBbXTsK
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykgewogICAgICAgdmFy
IHRva2VuID0gdG9rZW5zW2ldOwotICAgICAgKGZ1bmN0aW9uKHRva2VuKSB7CisgICAgICAoZnVu
Y3Rpb24gKHRva2VuKSB7CiAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRSZXN1bHRzQ29tcGFjdCgK
ICAgICAgICAgICB0b2tlbiwKLSAgICAgICAgICBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICBmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICAgICByZXF1ZXN0c0xlZnQtLTsKICAgICAg
ICAgICAgIHJlc3VsdC50b2tlbiA9IHRva2VuOwogICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJl
c3VsdCk7CiAgICAgICAgICAgICBpZiAocmVxdWVzdHNMZWZ0ID09PSAwKSBmZXRjaENvbXBsZXRl
KHJlc3VsdHMpOwogICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24ocmVzcG9uc2VTdGF0
dXMpIHsKKyAgICAgICAgICBmdW5jdGlvbiAocmVzcG9uc2VTdGF0dXMpIHsKICAgICAgICAgICAg
IGlmIChyZXNwb25zZVN0YXR1cyA9PT0gNDA0KSByZXF1ZXN0c0xlZnQtLTsKICAgICAgICAgICAg
IGlmIChzdGF0dXMgIT09IDQwNCAmJiBvbkVycm9yKSBvbkVycm9yKCk7CiAgICAgICAgICAgICBp
ZiAocmVxdWVzdHNMZWZ0ID09PSAwKSBmZXRjaENvbXBsZXRlKHJlc3VsdHMpOwpAQCAtNDQ2LDI5
ICs0NzEsMjkgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgfSkodG9rZW4pOwogICAgIH0K
ICAgfSwKLSAgZG93bmxvYWRSZXN1bHRzOiBmdW5jdGlvbih0b2tlbikgeworICBkb3dubG9hZFJl
c3VsdHM6IGZ1bmN0aW9uICh0b2tlbikgewogICAgIGxvY2F0aW9uLmhyZWYgPSAiYXBpL3Jlc3Vs
dHMvIiArIHRva2VuICsgIi9leHBvcnQiOwogICB9LAotICBkb3dubG9hZEFwaVJlc3VsdDogZnVu
Y3Rpb24odG9rZW4sIGFwaSkgeworICBkb3dubG9hZEFwaVJlc3VsdDogZnVuY3Rpb24gKHRva2Vu
LCBhcGkpIHsKICAgICBsb2NhdGlvbi5ocmVmID0gImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIv
IiArIGFwaSArICIvanNvbiI7CiAgIH0sCi0gIGRvd25sb2FkQWxsQXBpUmVzdWx0czogZnVuY3Rp
b24odG9rZW4sIGFwaSkgeworICBkb3dubG9hZEFsbEFwaVJlc3VsdHM6IGZ1bmN0aW9uICh0b2tl
biwgYXBpKSB7CiAgICAgbG9jYXRpb24uaHJlZiA9ICJhcGkvcmVzdWx0cy8iICsgdG9rZW4gKyAi
L2pzb24iOwogICB9LAotICBkb3dubG9hZFJlcG9ydDogZnVuY3Rpb24odG9rZW4sIGFwaSkgewor
ICBkb3dubG9hZFJlcG9ydDogZnVuY3Rpb24gKHRva2VuLCBhcGkpIHsKICAgICBsb2NhdGlvbi5o
cmVmID0gImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIvIiArIGFwaSArICIvcmVwb3J0IjsKICAg
fSwKLSAgaW1wb3J0UmVzdWx0czogZnVuY3Rpb24oZGF0YSwgb25TdWNjZXNzLCBvbkVycm9yKSB7
CisgIGltcG9ydFJlc3VsdHM6IGZ1bmN0aW9uIChkYXRhLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsK
ICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJQT1NUIiwKICAgICAgICJhcGkvcmVzdWx0cy9pbXBv
cnQiLAogICAgICAgeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIg
fSwKICAgICAgIGRhdGEsCi0gICAgICBmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgZnVuY3Rp
b24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciB0b2tlbiA9IEpTT04ucGFyc2UocmVzcG9uc2Up
LnRva2VuOwogICAgICAgICBvblN1Y2Nlc3ModG9rZW4pOwogICAgICAgfSwKLSAgICAgIGZ1bmN0
aW9uKHN0YXR1cywgcmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChzdGF0dXMsIHJlc3BvbnNl
KSB7CiAgICAgICAgIHZhciBlcnJvck1lc3NhZ2U7CiAgICAgICAgIGlmIChzdGF0dXMgPT09IDUw
MCkgewogICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIjsK
QEAgLTQ3OSw1OCArNTA0LDIxMCBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgICB9CiAgICAg
KTsKICAgfSwKLSAgcmVhZFJlc3VsdHNDb25maWc6IGZ1bmN0aW9uKG9uU3VjY2Vzcywgb25FcnJv
cikgeworICByZWFkUmVwb3J0VXJpOiBmdW5jdGlvbiAodG9rZW4sIGFwaSwgb25TdWNjZXNzLCBv
bkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKLSAgICAgICJhcGkvcmVz
dWx0cy9jb25maWciLAorICAgICAgImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIvIiArIGFwaSAr
ICIvcmVwb3J0dXJsIiwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVuY3Rpb24o
cmVzcG9uc2UpIHsKLSAgICAgICAgdmFyIGNvbmZpZyA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwot
ICAgICAgICBvblN1Y2Nlc3MoewotCSAgICAgIAlpbXBvcnRFbmFibGVkOiBjb25maWcuaW1wb3J0
X2VuYWJsZWQsCi0JICAgICAgCXJlcG9ydHNFbmFibGVkOiBjb25maWcucmVwb3J0c19lbmFibGVk
Ci0JICAgICAgfSk7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgdmFyIGpz
b25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAgICAgb25TdWNjZXNzKGpzb25P
YmplY3QudXJpKTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwKLSAgcmVh
ZFJlcG9ydFVyaTogZnVuY3Rpb24odG9rZW4sIGFwaSwgb25TdWNjZXNzLCBvbkVycm9yKSB7Cisg
IGRvd25sb2FkTXVsdGlSZXBvcnQ6IGZ1bmN0aW9uICh0b2tlbnMsIGFwaSkgeworICAgIGxvY2F0
aW9uLmhyZWYgPSAiYXBpL3Jlc3VsdHMvIiArIGFwaSArICIvcmVwb3J0P3Rva2Vucz0iICsgdG9r
ZW5zLmpvaW4oIiwiKTsKKyAgfSwKKyAgcmVhZE11bHRpUmVwb3J0VXJpOiBmdW5jdGlvbiAodG9r
ZW5zLCBhcGksIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAg
IkdFVCIsCi0gICAgICAiYXBpL3Jlc3VsdHMvIiArIHRva2VuICsgIi8iICsgYXBpICsgIi9yZXBv
cnR1cmwiLAorICAgICAgImFwaS9yZXN1bHRzLyIgKyBhcGkgKyAiL3JlcG9ydHVybD90b2tlbnM9
IiArIHRva2Vucy5qb2luKCIsIiksCiAgICAgICBudWxsLAogICAgICAgbnVsbCwKLSAgICAgIGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAg
dmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAgICAgb25TdWNjZXNz
KGpzb25PYmplY3QudXJpKTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwK
LSAgZG93bmxvYWRNdWx0aVJlcG9ydDogZnVuY3Rpb24odG9rZW5zLCBhcGkpIHsKLSAgICBsb2Nh
dGlvbi5ocmVmID0KLSAgICAgICJhcGkvcmVzdWx0cy8iICsgYXBpICsgIi9yZXBvcnQ/dG9rZW5z
PSIgKyB0b2tlbnMuam9pbigiLCIpOworICBkb3dubG9hZFJlc3VsdHNPdmVydmlldzogZnVuY3Rp
b24gKHRva2VuKSB7CisgICAgbG9jYXRpb24uaHJlZiA9ICJhcGkvcmVzdWx0cy8iICsgdG9rZW4g
KyAiL292ZXJ2aWV3IjsKICAgfSwKLSAgcmVhZE11bHRpUmVwb3J0VXJpOiBmdW5jdGlvbih0b2tl
bnMsIGFwaSwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisKKyAgLy8gREVWSUNFUyBBUEkKKyAgX2Rl
dmljZV90b2tlbjogbnVsbCwKKyAgX2RldmljZUV2ZW50TGlzdGVuZXJzOiB7fSwKKyAgX2Rldmlj
ZUV2ZW50TnVtYmVyczoge30sCisgIHJlZ2lzdGVyRGV2aWNlOiBmdW5jdGlvbiAob25TdWNjZXNz
LCBvbkVycm9yKSB7CisgICAgc2VuZFJlcXVlc3QoCisgICAgICAiUE9TVCIsCisgICAgICAiYXBp
L2RldmljZXMiLAorICAgICAgbnVsbCwKKyAgICAgIG51bGwsCisgICAgICBmdW5jdGlvbiAocmVz
cG9uc2UpIHsKKyAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAg
ICAgV2F2ZVNlcnZpY2UuX2RldmljZV90b2tlbiA9IGRhdGEudG9rZW47CisgICAgICAgIG9uU3Vj
Y2VzcyhkYXRhLnRva2VuKTsKKyAgICAgIH0sCisgICAgICBvbkVycm9yCisgICAgKTsKKyAgfSwK
KyAgcmVhZERldmljZTogZnVuY3Rpb24gKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAg
ICBzZW5kUmVxdWVzdCgKICAgICAgICJHRVQiLAotICAgICAgImFwaS9yZXN1bHRzLyIgKyBhcGkg
KyAiL3JlcG9ydHVybD90b2tlbnM9IiArIHRva2Vucy5qb2luKCIsIiksCisgICAgICAiYXBpL2Rl
dmljZXMvIiArIHRva2VuLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlv
bihyZXNwb25zZSkgewotICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9u
c2UpOwotICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdC51cmkpOworICAgICAgZnVuY3Rpb24g
KHJlc3BvbnNlKSB7CisgICAgICAgIGlmICghb25TdWNjZXNzKSByZXR1cm47CisgICAgICAgIHZh
ciBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CisgICAgICAgIG9uU3VjY2VzcyhkYXRhKTsK
KyAgICAgIH0sCisgICAgICBmdW5jdGlvbiAoZXJyb3IpIHsKKyAgICAgICAgaWYgKCFvbkVycm9y
KSByZXR1cm47CisgICAgICAgIG9uRXJyb3IoZXJyb3IpOworICAgICAgfQorICAgICk7CisgIH0s
CisgIERFVklDRV9BRERFRF9FVkVOVDogImRldmljZV9hZGRlZCIsCisgIERFVklDRV9SRU1PVkVE
X0VWRU5UOiAiZGV2aWNlX3JlbW92ZWQiLAorICBTVEFSVF9TRVNTSU9OOiAic3RhcnRfc2Vzc2lv
biIsCisgIGFkZERldmljZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uICh0b2tlbiwgY2FsbGJhY2sp
IHsKKyAgICB2YXIgbGlzdGVuZXJzID0gV2F2ZVNlcnZpY2UuX2RldmljZUV2ZW50TGlzdGVuZXJz
OworICAgIGlmICghbGlzdGVuZXJzW3Rva2VuXSkgbGlzdGVuZXJzW3Rva2VuXSA9IFtdOworICAg
IGxpc3RlbmVyc1t0b2tlbl0ucHVzaChjYWxsYmFjayk7CisgICAgV2F2ZVNlcnZpY2UuX2Rldmlj
ZUV2ZW50TGlzdGVuZXJzID0gbGlzdGVuZXJzOworICAgIFdhdmVTZXJ2aWNlLmxpc3RlbkRldmlj
ZUV2ZW50cyh0b2tlbik7CisgIH0sCisgIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXI6IGZ1bmN0
aW9uIChjYWxsYmFjaykgeworICAgIHZhciBsaXN0ZW5lcnMgPSBXYXZlU2VydmljZS5fZGV2aWNl
RXZlbnRMaXN0ZW5lcnM7CisgICAgZm9yICh2YXIgdG9rZW4gb2YgT2JqZWN0LmtleXMobGlzdGVu
ZXJzKSkgeworICAgICAgdmFyIGluZGV4ID0gbGlzdGVuZXJzW3Rva2VuXS5pbmRleE9mKGNhbGxi
YWNrKTsKKyAgICAgIGlmIChpbmRleCA9PT0gLTEpIGNvbnRpbnVlOworICAgICAgbGlzdGVuZXJz
W3Rva2VuXS5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgYnJlYWs7CisgICAgfQorICAgIFdhdmVT
ZXJ2aWNlLl9kZXZpY2VFdmVudExpc3RlbmVycyA9IGxpc3RlbmVyczsKKyAgfSwKKyAgbGlzdGVu
RGV2aWNlRXZlbnRzOiBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICB2YXIgbGlzdGVuZXJzID0gV2F2
ZVNlcnZpY2UuX2RldmljZUV2ZW50TGlzdGVuZXJzOworICAgIGlmICghbGlzdGVuZXJzW3Rva2Vu
XSB8fCBsaXN0ZW5lcnMubGVuZ3RoID09PSAwKSByZXR1cm47CisgICAgdmFyIHVybCA9ICJhcGkv
ZGV2aWNlcy8iICsgdG9rZW4gKyAiL2V2ZW50cyI7CisgICAgdmFyIGxhc3RFdmVudE51bWJlciA9
IFdhdmVTZXJ2aWNlLl9kZXZpY2VFdmVudE51bWJlcnNbdG9rZW5dOworICAgIGlmIChsYXN0RXZl
bnROdW1iZXIpIHsKKyAgICAgIHVybCArPSAiP2xhc3RfYWN0aXZlPSIgKyBsYXN0RXZlbnROdW1i
ZXI7CisgICAgfQorICAgIFdhdmVTZXJ2aWNlLmxpc3Rlbkh0dHBQb2xsaW5nKAorICAgICAgdXJs
LAorICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIGlmICghcmVzcG9uc2UpIHsK
KyAgICAgICAgICBXYXZlU2VydmljZS5saXN0ZW5EZXZpY2VFdmVudHModG9rZW4pOworICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBsaXN0ZW5lciBvZiBsaXN0
ZW5lcnNbdG9rZW5dKSB7CisgICAgICAgICAgbGlzdGVuZXIocmVzcG9uc2UpOworICAgICAgICB9
CisgICAgICAgIFdhdmVTZXJ2aWNlLl9kZXZpY2VFdmVudE51bWJlcnNbdG9rZW5dID0gbGFzdEV2
ZW50TnVtYmVyOworICAgICAgICBXYXZlU2VydmljZS5saXN0ZW5EZXZpY2VFdmVudHModG9rZW4p
OwogICAgICAgfSwKKyAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgV2F2ZVNlcnZpY2UubGlzdGVuRGV2aWNlRXZlbnRzKCk7Cisg
ICAgICAgIH0sIDEwMDApOworICAgICAgfQorICAgICk7CisgIH0sCisgIHNlbmREZXZpY2VFdmVu
dDogZnVuY3Rpb24gKGRldmljZV90b2tlbiwgZXZlbnQsIG9uU3VjY2Vzcywgb25FcnJvcikgewor
ICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoeworICAgICAgdHlwZTogZXZlbnQudHlwZSwK
KyAgICAgIGRhdGE6IGV2ZW50LmRhdGEsCisgICAgfSk7CisgICAgc2VuZFJlcXVlc3QoCisgICAg
ICAiUE9TVCIsCisgICAgICAiYXBpL2RldmljZXMvIiArIGRldmljZV90b2tlbiArICIvZXZlbnRz
IiwKKyAgICAgIHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LAorICAgICAg
ZGF0YSwKKyAgICAgIG9uU3VjY2VzcywKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICBk
b3dubG9hZFJlc3VsdHNPdmVydmlldzogZnVuY3Rpb24odG9rZW4pIHsKLSAgICBsb2NhdGlvbi5o
cmVmID0gImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIvb3ZlcnZpZXciOworICBhZGRHbG9iYWxE
ZXZpY2VFdmVudExpc3RlbmVyOiBmdW5jdGlvbiAoY2FsbGJhY2spIHsKKyAgICBXYXZlU2Vydmlj
ZS5fZ2xvYmFsRGV2aWNlRXZlbnRMaXN0ZW5lcnMucHVzaChjYWxsYmFjayk7CisgICAgV2F2ZVNl
cnZpY2UubGlzdGVuR2xvYmFsRGV2aWNlRXZlbnRzKCk7CisgIH0sCisgIHJlbW92ZUdsb2JhbERl
dmljZUV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIChjYWxsYmFjaykgeworICAgIHZhciBpbmRleCA9
IFdhdmVTZXJ2aWNlLl9nbG9iYWxEZXZpY2VFdmVudExpc3RlbmVycy5pbmRleE9mKGNhbGxiYWNr
KTsKKyAgICBXYXZlU2VydmljZS5fZ2xvYmFsRGV2aWNlRXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGlu
ZGV4LCAxKTsKKyAgfSwKKyAgbGlzdGVuR2xvYmFsRGV2aWNlRXZlbnRzOiBmdW5jdGlvbiAoKSB7
CisgICAgdmFyIGxpc3RlbmVycyA9IFdhdmVTZXJ2aWNlLl9nbG9iYWxEZXZpY2VFdmVudExpc3Rl
bmVyczsKKyAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOworICAgIHZhciBx
dWVyeSA9ICIiOworICAgIGlmIChXYXZlU2VydmljZS5fZGV2aWNlX3Rva2VuKSB7CisgICAgICBx
dWVyeSA9ICI/ZGV2aWNlX3Rva2VuPSIgKyBXYXZlU2VydmljZS5fZGV2aWNlX3Rva2VuOworICAg
IH0KKyAgICBXYXZlU2VydmljZS5saXN0ZW5IdHRwUG9sbGluZygKKyAgICAgICJhcGkvZGV2aWNl
cy9ldmVudHMiICsgcXVlcnksCisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
aWYgKCFyZXNwb25zZSkgeworICAgICAgICAgIFdhdmVTZXJ2aWNlLmxpc3Rlbkdsb2JhbERldmlj
ZUV2ZW50cygpOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZh
ciBsaXN0ZW5lciBvZiBsaXN0ZW5lcnMpIHsKKyAgICAgICAgICBsaXN0ZW5lcihyZXNwb25zZSk7
CisgICAgICAgIH0KKyAgICAgICAgV2F2ZVNlcnZpY2UubGlzdGVuR2xvYmFsRGV2aWNlRXZlbnRz
KCk7CisgICAgICB9LAorICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICBXYXZlU2VydmljZS5saXN0ZW5HbG9iYWxEZXZpY2VFdmVu
dHMoKTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICB9CisgICAgKTsKKyAgfSwKKyAgc2VuZEds
b2JhbERldmljZUV2ZW50OiBmdW5jdGlvbiAoZXZlbnQsIG9uU3VjY2Vzcywgb25FcnJvcikgewor
ICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoeworICAgICAgdHlwZTogZXZlbnQudHlwZSwK
KyAgICAgIGRhdGE6IGV2ZW50LmRhdGEsCisgICAgfSk7CisgICAgc2VuZFJlcXVlc3QoCisgICAg
ICAiUE9TVCIsCisgICAgICAiYXBpL2RldmljZXMvZXZlbnRzIiwKKyAgICAgIHsgIkNvbnRlbnQt
VHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LAorICAgICAgZGF0YSwKKyAgICAgIG9uU3VjY2Vz
cywKKyAgICAgIG9uRXJyb3IKKyAgICApOworICB9LAorCisgIC8vIEdFTkVSQUwgQVBJCisgIHJl
YWRTdGF0dXM6IGZ1bmN0aW9uIChvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgICBzZW5kUmVxdWVz
dCgKKyAgICAgICJHRVQiLAorICAgICAgImFwaS9zdGF0dXMiLAorICAgICAgbnVsbCwKKyAgICAg
IG51bGwsCisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgdmFyIGRhdGEgPSBK
U09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSB7CisgICAg
ICAgICAgcmVhZFNlc3Npb25zRW5hYmxlZDogZGF0YS5yZWFkX3Nlc3Npb25zX2VuYWJsZWQsCisg
ICAgICAgICAgaW1wb3J0UmVzdWx0c0VuYWJsZWQ6IGRhdGEuaW1wb3J0X3Jlc3VsdHNfZW5hYmxl
ZCwKKyAgICAgICAgICByZXBvcnRzRW5hYmxlZDogZGF0YS5yZXBvcnRzX2VuYWJsZWQsCisgICAg
ICAgICAgdmVyc2lvblN0cmluZzogZGF0YS52ZXJzaW9uX3N0cmluZywKKyAgICAgICAgICB0ZXN0
VHlwZVNlbGVjdGlvbkVuYWJsZWQ6IGRhdGEudGVzdF90eXBlX3NlbGVjdGlvbl9lbmFibGVkLAor
ICAgICAgICAgIHRlc3RGaWxlU2VsZWN0aW9uRW5hYmxlZDogZGF0YS50ZXN0X2ZpbGVfc2VsZWN0
aW9uX2VuYWJsZWQKKyAgICAgICAgfTsKKyAgICAgICAgb25TdWNjZXNzKGNvbmZpZ3VyYXRpb24p
OworICAgICAgfSwKKyAgICAgIG9uRXJyb3IKKyAgICApOwogICB9LAogCiAgIC8vIFVUSUxJVFkK
LSAgYWRkUmVjZW50U2Vzc2lvbjogZnVuY3Rpb24odG9rZW4pIHsKKyAgYWRkUmVjZW50U2Vzc2lv
bjogZnVuY3Rpb24gKHRva2VuKSB7CiAgICAgaWYgKCF0b2tlbikgcmV0dXJuOwogICAgIHZhciBz
dGF0ZSA9IFdhdmVTZXJ2aWNlLmdldFN0YXRlKCk7CiAgICAgaWYgKCFzdGF0ZS5yZWNlbnRfc2Vz
c2lvbnMpIHN0YXRlLnJlY2VudF9zZXNzaW9ucyA9IFtdOwpAQCAtNTM4LDE4ICs3MTUsMTggQEAg
dmFyIFdhdmVTZXJ2aWNlID0gewogICAgIHN0YXRlLnJlY2VudF9zZXNzaW9ucy51bnNoaWZ0KHRv
a2VuKTsKICAgICBXYXZlU2VydmljZS5zZXRTdGF0ZShzdGF0ZSk7CiAgIH0sCi0gIGFkZFJlY2Vu
dFNlc3Npb25zOiBmdW5jdGlvbih0b2tlbnMpIHsKKyAgYWRkUmVjZW50U2Vzc2lvbnM6IGZ1bmN0
aW9uICh0b2tlbnMpIHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkr
KykgewogICAgICAgdmFyIHRva2VuID0gdG9rZW5zW2ldOwogICAgICAgV2F2ZVNlcnZpY2UuYWRk
UmVjZW50U2Vzc2lvbih0b2tlbik7CiAgICAgfQogICB9LAotICBnZXRQaW5uZWRTZXNzaW9uczog
ZnVuY3Rpb24oKSB7CisgIGdldFBpbm5lZFNlc3Npb25zOiBmdW5jdGlvbiAoKSB7CiAgICAgdmFy
IHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3RhdGUoKTsKICAgICBpZiAoIXN0YXRlIHx8ICFzdGF0
ZS5waW5uZWRfc2Vzc2lvbnMpIHJldHVybiBbXTsKICAgICByZXR1cm4gc3RhdGUucGlubmVkX3Nl
c3Npb25zOwogICB9LAotICBhZGRQaW5uZWRTZXNzaW9uOiBmdW5jdGlvbih0b2tlbikgeworICBh
ZGRQaW5uZWRTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4pIHsKICAgICBpZiAoIXRva2VuKSByZXR1
cm47CiAgICAgdmFyIHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3RhdGUoKTsKICAgICBpZiAoIXN0
YXRlLnBpbm5lZF9zZXNzaW9ucykgc3RhdGUucGlubmVkX3Nlc3Npb25zID0gW107CkBAIC01NTcs
MTcgKzczNCwxNyBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgc3RhdGUucGlubmVkX3Nlc3Np
b25zLnVuc2hpZnQodG9rZW4pOwogICAgIFdhdmVTZXJ2aWNlLnNldFN0YXRlKHN0YXRlKTsKICAg
fSwKLSAgZ2V0UmVjZW50U2Vzc2lvbnM6IGZ1bmN0aW9uKCkgeworICBnZXRSZWNlbnRTZXNzaW9u
czogZnVuY3Rpb24gKCkgewogICAgIHZhciBzdGF0ZSA9IFdhdmVTZXJ2aWNlLmdldFN0YXRlKCk7
CiAgICAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUucmVjZW50X3Nlc3Npb25zKSByZXR1cm4gW107CiAg
ICAgcmV0dXJuIHN0YXRlLnJlY2VudF9zZXNzaW9uczsKICAgfSwKLSAgc2V0UmVjZW50U2Vzc2lv
bnM6IGZ1bmN0aW9uKHNlc3Npb25Ub2tlbnMpIHsKKyAgc2V0UmVjZW50U2Vzc2lvbnM6IGZ1bmN0
aW9uIChzZXNzaW9uVG9rZW5zKSB7CiAgICAgdmFyIHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3Rh
dGUoKTsKICAgICBzdGF0ZS5yZWNlbnRfc2Vzc2lvbnMgPSBzZXNzaW9uVG9rZW5zOwogICAgIFdh
dmVTZXJ2aWNlLnNldFN0YXRlKHN0YXRlKTsKICAgfSwKLSAgcmVtb3ZlUGlubmVkU2Vzc2lvbjog
ZnVuY3Rpb24odG9rZW4pIHsKKyAgcmVtb3ZlUGlubmVkU2Vzc2lvbjogZnVuY3Rpb24gKHRva2Vu
KSB7CiAgICAgaWYgKCF0b2tlbikgcmV0dXJuOwogICAgIHZhciBzdGF0ZSA9IFdhdmVTZXJ2aWNl
LmdldFN0YXRlKCk7CiAgICAgaWYgKCFzdGF0ZS5waW5uZWRfc2Vzc2lvbnMpIHJldHVybjsKQEAg
LTU3Niw3ICs3NTMsNyBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgc3RhdGUucGlubmVkX3Nl
c3Npb25zLnNwbGljZShpbmRleCwgMSk7CiAgICAgV2F2ZVNlcnZpY2Uuc2V0U3RhdGUoc3RhdGUp
OwogICB9LAotICByZW1vdmVSZWNlbnRTZXNzaW9uOiBmdW5jdGlvbih0b2tlbikgeworICByZW1v
dmVSZWNlbnRTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4pIHsKICAgICB2YXIgc3RhdGUgPSBXYXZl
U2VydmljZS5nZXRTdGF0ZSgpOwogICAgIGlmICghc3RhdGUucmVjZW50X3Nlc3Npb25zKSByZXR1
cm47CiAgICAgdmFyIGluZGV4ID0gc3RhdGUucmVjZW50X3Nlc3Npb25zLmluZGV4T2YodG9rZW4p
OwpAQCAtNTg0LDkxICs3NjEsMTA2IEBAIHZhciBXYXZlU2VydmljZSA9IHsKICAgICBzdGF0ZS5y
ZWNlbnRfc2Vzc2lvbnMuc3BsaWNlKGluZGV4LCAxKTsKICAgICBXYXZlU2VydmljZS5zZXRTdGF0
ZShzdGF0ZSk7CiAgIH0sCi0gIGdldFN0YXRlOiBmdW5jdGlvbigpIHsKKyAgZ2V0U3RhdGU6IGZ1
bmN0aW9uICgpIHsKICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHJldHVybiBudWxsOwog
ICAgIHZhciBzdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZTsKICAgICB2YXIgc3RhdGUgPSBK
U09OLnBhcnNlKHN0b3JhZ2UuZ2V0SXRlbSgid2F2ZSIpKTsKICAgICBpZiAoIXN0YXRlKSByZXR1
cm4ge307CiAgICAgcmV0dXJuIHN0YXRlOwogICB9LAotICBzZXRTdGF0ZTogZnVuY3Rpb24oc3Rh
dGUpIHsKKyAgc2V0U3RhdGU6IGZ1bmN0aW9uIChzdGF0ZSkgewogICAgIGlmICghd2luZG93Lmxv
Y2FsU3RvcmFnZSkgcmV0dXJuIG51bGw7CiAgICAgdmFyIHN0b3JhZ2UgPSB3aW5kb3cubG9jYWxT
dG9yYWdlOwogICAgIHN0b3JhZ2Uuc2V0SXRlbSgid2F2ZSIsIEpTT04uc3RyaW5naWZ5KHN0YXRl
KSk7CiAgIH0sCi0gIGNvbm5lY3RXZWJTb2NrZXQ6IGZ1bmN0aW9uKHRva2VuKSB7Ci0gICAgdmFy
IHByb3RvY29sOwotICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gImh0dHBzOiIpIHsKLSAg
ICAgIHByb3RvY29sID0gIndzcyI7CisgIF9nbG9iYWxEZXZpY2VFdmVudExpc3RlbmVyczogW10s
CisgIF9zZXNzaW9uRXZlbnRMaXN0ZW5lcnM6IHt9LAorICBfc2Vzc2lvbkV2ZW50TnVtYmVyczog
e30sCisgIGxpc3Rlbkh0dHBQb2xsaW5nOiBmdW5jdGlvbiAodXJsLCBvblN1Y2Nlc3MsIG9uRXJy
b3IpIHsKKyAgICB2YXIgdW5pcXVlSWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKKyAgICBpZiAo
dXJsLmluZGV4T2YoIj8iKSA9PT0gLTEpIHsKKyAgICAgIHVybCA9IHVybCArICI/aWQ9IiArIHVu
aXF1ZUlkOwogICAgIH0gZWxzZSB7Ci0gICAgICBwcm90b2NvbCA9ICJ3cyI7CisgICAgICB1cmwg
PSB1cmwgKyAiJmlkPSIgKyB1bmlxdWVJZDsKICAgICB9Ci0gICAgdmFyIHVybCA9IHByb3RvY29s
ICsgIjovLyIgKyBsb2NhdGlvbi5ob3N0OwotICAgIGNvbnNvbGUubG9nKCJDb25uZWN0aW5nIHdl
YiBzb2NrZXQgdG8iICsgdXJsKTsKLSAgICB2YXIgd2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCh1
cmwpOwotICAgIHdlYlNvY2tldC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlKSB7Ci0gICAg
ICBXYXZlU2VydmljZS5zb2NrZXQub25NZXNzYWdlKEpTT04ucGFyc2UobWVzc2FnZS5kYXRhKSk7
Ci0gICAgfTsKLSAgICB3ZWJTb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKCkgewotICAgICAgV2F2
ZVNlcnZpY2Uuc29ja2V0LnN0YXRlID0gQ0xPU0VEOwotICAgICAgV2F2ZVNlcnZpY2Uuc29ja2V0
Lm9uU3RhdGVDaGFuZ2UoQ0xPU0VEKTsKLSAgICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vbkNsb3Nl
KCk7Ci0gICAgfTsKLSAgICB3ZWJTb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0gICAgICBX
YXZlU2VydmljZS5zb2NrZXQuc3RhdGUgPSBPUEVOOwotICAgICAgV2F2ZVNlcnZpY2Uuc29ja2V0
Lm9uU3RhdGVDaGFuZ2UoT1BFTik7Ci0gICAgICBXYXZlU2VydmljZS5zb2NrZXQub25PcGVuKCk7
Ci0gICAgICB3ZWJTb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHRva2VuOiB0b2tlbiB9KSk7
Ci0gICAgfTsKLSAgICBXYXZlU2VydmljZS5zb2NrZXQuc2VuZCA9IGZ1bmN0aW9uKG1lc3NhZ2Up
IHsKLSAgICAgIHdlYlNvY2tldC5zZW5kKG1lc3NhZ2UpOwotICAgIH07Ci0gICAgV2F2ZVNlcnZp
Y2Uuc29ja2V0LmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgICB3ZWJTb2NrZXQuY2xvc2UoKTsK
LSAgICB9OwotICB9LAotICBjb25uZWN0SHR0cFBvbGxpbmc6IGZ1bmN0aW9uKHRva2VuKSB7Ci0J
CXZhciB1bmlxdWVJZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpCi0gICAgdmFyIHBvbGwgPSBmdW5j
dGlvbigpIHsKLSAgICAgIHZhciByZXF1ZXN0ID0gc2VuZFJlcXVlc3QoCi0gICAgICAgICJHRVQi
LAotICAgICAgICAiYXBpL3Nlc3Npb25zLyIgKyB0b2tlbiArICIvZXZlbnRzP2lkPSIgKyB1bmlx
dWVJZCwKLSAgICAgICAgbnVsbCwKLSAgICAgICAgbnVsbCwKLSAgICAgICAgZnVuY3Rpb24ocmVz
cG9uc2UpIHsKLSAgICAgICAgICBpZiAoV2F2ZVNlcnZpY2Uuc29ja2V0LnN0YXRlID09PSBPUEVO
KSBwb2xsKCk7Ci0gICAgICAgICAgV2F2ZVNlcnZpY2Uuc29ja2V0Lm9uTWVzc2FnZShKU09OLnBh
cnNlKHJlc3BvbnNlKSk7Ci0gICAgICAgIH0sCi0gICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAg
ICAgIGlmIChXYXZlU2VydmljZS5zb2NrZXQuc3RhdGUgPT09IE9QRU4pIHNldFRpbWVvdXQocG9s
bCwgMTAwMCk7CisgICAgc2VuZFJlcXVlc3QoCisgICAgICAiR0VUIiwKKyAgICAgIHVybCwKKyAg
ICAgIG51bGwsCisgICAgICBudWxsLAorICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAg
ICAgIGlmICghcmVzcG9uc2UpIHsKKyAgICAgICAgICBvblN1Y2Nlc3MobnVsbCk7CisgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICApOwotICAgICAgV2F2ZVNlcnZpY2Uuc29ja2V0
LmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlcXVlc3QuYWJvcnQoKTsKLSAgICAgICAg
V2F2ZVNlcnZpY2Uuc29ja2V0LnN0YXRlID0gQ0xPU0VEOwotICAgICAgICBXYXZlU2VydmljZS5z
b2NrZXQub25TdGF0ZUNoYW5nZShDTE9TRUQpOwotICAgICAgICBXYXZlU2VydmljZS5zb2NrZXQu
b25DbG9zZSgpOwotICAgICAgfTsKLSAgICB9OwotICAgIHBvbGwoKTsKLSAgICBXYXZlU2Vydmlj
ZS5zb2NrZXQub25PcGVuKCk7Ci0gICAgV2F2ZVNlcnZpY2Uuc29ja2V0LnN0YXRlID0gT1BFTjsK
LSAgICBXYXZlU2VydmljZS5zb2NrZXQub25TdGF0ZUNoYW5nZShPUEVOKTsKLSAgfSwKLSAgY29u
bmVjdDogZnVuY3Rpb24odG9rZW4pIHsKLSAgICBpZiAod2luZG93LldlYlNvY2tldCkgewotICAg
ICAgV2F2ZVNlcnZpY2UuY29ubmVjdFdlYlNvY2tldCh0b2tlbik7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIFdhdmVTZXJ2aWNlLmNvbm5lY3RIdHRwUG9sbGluZyh0b2tlbik7Ci0gICAgfQotICB9LAot
ICBvbk1lc3NhZ2U6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7Ci0gICAgV2F2ZVNlcnZpY2Uuc29ja2V0
Lm9uTWVzc2FnZSA9IGNhbGxiYWNrOworICAgICAgICBvblN1Y2Nlc3MoSlNPTi5wYXJzZShyZXNw
b25zZSkpOworICAgICAgfSwKKyAgICAgIG9uRXJyb3IKKyAgICApOwogICB9LAotICBpc0Nvbm5l
Y3RlZDogZnVuY3Rpb24oKSB7Ci0gICAgcmV0dXJuIFdhdmVTZXJ2aWNlLnNvY2tldC5zdGF0ZSA9
PT0gT1BFTjsKKyAgYWRkU2Vzc2lvbkV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uICh0b2tlbiwgY2Fs
bGJhY2spIHsKKyAgICB2YXIgbGlzdGVuZXJzID0gV2F2ZVNlcnZpY2UuX3Nlc3Npb25FdmVudExp
c3RlbmVyczsKKyAgICBpZiAoIWxpc3RlbmVyc1t0b2tlbl0pIGxpc3RlbmVyc1t0b2tlbl0gPSBb
XTsKKyAgICBpZiAobGlzdGVuZXJzW3Rva2VuXS5pbmRleE9mKGNhbGxiYWNrKSA+PSAwKSByZXR1
cm47CisgICAgbGlzdGVuZXJzW3Rva2VuXS5wdXNoKGNhbGxiYWNrKTsKKyAgICBXYXZlU2Vydmlj
ZS5fc2Vzc2lvbkV2ZW50TGlzdGVuZXJzID0gbGlzdGVuZXJzOworICAgIFdhdmVTZXJ2aWNlLmxp
c3RlblNlc3Npb25FdmVudHModG9rZW4pOworICB9LAorICByZW1vdmVTZXNzaW9uRXZlbnRMaXN0
ZW5lcjogZnVuY3Rpb24gKGNhbGxiYWNrKSB7CisgICAgdmFyIGxpc3RlbmVycyA9IFdhdmVTZXJ2
aWNlLl9zZXNzaW9uRXZlbnRMaXN0ZW5lcnM7CisgICAgZm9yICh2YXIgdG9rZW4gb2YgT2JqZWN0
LmtleXMobGlzdGVuZXJzKSkgeworICAgICAgdmFyIGluZGV4ID0gbGlzdGVuZXJzW3Rva2VuXS5p
bmRleE9mKGNhbGxiYWNrKTsKKyAgICAgIGlmIChpbmRleCA9PT0gLTEpIGNvbnRpbnVlOworICAg
ICAgbGlzdGVuZXJzW3Rva2VuXS5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgYnJlYWs7CisgICAg
fQorICAgIFdhdmVTZXJ2aWNlLl9zZXNzaW9uRXZlbnRMaXN0ZW5lcnMgPSBsaXN0ZW5lcnM7Cisg
IH0sCisgIGxpc3RlblNlc3Npb25FdmVudHM6IGZ1bmN0aW9uICh0b2tlbikgeworICAgIHZhciBs
aXN0ZW5lcnMgPSBXYXZlU2VydmljZS5fc2Vzc2lvbkV2ZW50TGlzdGVuZXJzOworICAgIGlmICgh
bGlzdGVuZXJzW3Rva2VuXSB8fCBsaXN0ZW5lcnMubGVuZ3RoID09PSAwKSByZXR1cm47CisgICAg
dmFyIHVybCA9ICJhcGkvc2Vzc2lvbnMvIiArIHRva2VuICsgIi9ldmVudHMiOworICAgIHZhciBs
YXN0RXZlbnROdW1iZXIgPSBXYXZlU2VydmljZS5fc2Vzc2lvbkV2ZW50TnVtYmVyc1t0b2tlbl07
CisgICAgaWYgKGxhc3RFdmVudE51bWJlcikgeworICAgICAgdXJsICs9ICI/bGFzdF9ldmVudD0i
ICsgbGFzdEV2ZW50TnVtYmVyOworICAgIH0KKyAgICBXYXZlU2VydmljZS5saXN0ZW5IdHRwUG9s
bGluZygKKyAgICAgIHVybCwKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICBp
ZiAoIXJlc3BvbnNlKSB7CisgICAgICAgICAgV2F2ZVNlcnZpY2UubGlzdGVuU2Vzc2lvbkV2ZW50
cyh0b2tlbik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciBsYXN0
RXZlbnROdW1iZXIgPSAwOworICAgICAgICBmb3IgKHZhciBsaXN0ZW5lciBvZiBsaXN0ZW5lcnNb
dG9rZW5dKSB7CisgICAgICAgICAgZm9yICh2YXIgZXZlbnQgb2YgcmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgIGlmIChldmVudC5udW1iZXIgPiBsYXN0RXZlbnROdW1iZXIpIHsKKyAgICAgICAgICAg
ICAgbGFzdEV2ZW50TnVtYmVyID0gZXZlbnQubnVtYmVyOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbGlzdGVuZXIoZXZlbnQpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBX
YXZlU2VydmljZS5fc2Vzc2lvbkV2ZW50TnVtYmVyc1t0b2tlbl0gPSBsYXN0RXZlbnROdW1iZXI7
CisgICAgICAgIFdhdmVTZXJ2aWNlLmxpc3RlblNlc3Npb25FdmVudHModG9rZW4pOworICAgICAg
fSwKKyAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgV2F2ZVNlcnZpY2UubGlzdGVuU2Vzc2lvbkV2ZW50cygpOworICAgICAgICB9
LCAxMDAwKTsKKyAgICAgIH0KKyAgICApOwogICB9LAotICBvcGVuU2Vzc2lvbjogZnVuY3Rpb24o
dG9rZW4pIHsKKyAgb3BlblNlc3Npb246IGZ1bmN0aW9uICh0b2tlbikgewogICAgIGxvY2F0aW9u
LmhyZWYgPSAiL3Jlc3VsdHMuaHRtbD90b2tlbj0iICsgdG9rZW47Ci0gIH0KKyAgfSwKIH07CisK
K2lmICghT2JqZWN0LmtleXMpCisgIE9iamVjdC5rZXlzID0gZnVuY3Rpb24gKG8pIHsKKyAgICBp
ZiAobyAhPT0gT2JqZWN0KG8pKQorICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0Lmtl
eXMgY2FsbGVkIG9uIGEgbm9uLW9iamVjdCIpOworICAgIHZhciBrID0gW10sCisgICAgICBwOwor
ICAgIGZvciAocCBpbiBvKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxs
KG8sIHApKSBrLnB1c2gocCk7CisgICAgcmV0dXJuIGs7CisgIH07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L25l
eHQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvbmV4dC5odG1sCmluZGV4IDI3N2Y0YWZlZDY3ZmUyYWU5YzJjYTM4NTExMGVm
NDU5ZmY3Y2Q1OTcuLjg0MTJiOTIzNGZkOGE2ZDkwODU3MjQwNDY4NmYyYWRmZjQzNTA1NDMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvbmV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbmV4dC5odG1sCkBAIC0yLDQyICsyLDMwIEBA
CiA8aHRtbD4KICAgPGhlYWQ+CiAgICAgPHNjcmlwdCBzcmM9ImxpYi93YXZlLXNlcnZpY2UuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJsaWIvc2NyZWVuLWNvbnNvbGUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJsaWIvcXVlcnktcGFyc2VyLmpzIj48L3NjcmlwdD4KICAg
PC9oZWFkPgogICA8Ym9keT4KLSAgICA8ZGl2IGlkPSJjb25zb2xlIiBzdHlsZT0iZm9udC1mYW1p
bHk6IG1vbm9zcGFjZTsgcGFkZGluZzogNXB4Ij48L2Rpdj4KKyAgICA8cCBpZD0iY29uc29sZSIg
c3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Ij48L3A+CiAgICAgPHNjcmlwdD4KLSAgICAg
IHZhciBzY3JlZW5Db25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsK
LSAgICAgIHZhciBsb2cgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHRleHQgPSAiIjsKLSAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKLSAgICAg
ICAgICB0ZXh0ICs9IGFyZ3VtZW50c1tpXSArICIgIjsKLSAgICAgICAgfQotICAgICAgICBjb25z
b2xlLmxvZyh0ZXh0KTsKLSAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvIC9nbSwgIiZuYnNw
OyIpOwotICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cbi9nbSwgIjxici8+Iik7Ci0gICAg
ICAgIHNjcmVlbkNvbnNvbGUuaW5uZXJIVE1MICs9ICI8YnIvPiIgKyB0ZXh0OwotICAgICAgfTsK
LQotICAgICAgdmFyIEhPU1ROQU1FID0gbG9jYXRpb24uaG9zdG5hbWU7Ci0gICAgICB2YXIgUE9S
VCA9IGxvY2F0aW9uLnBvcnQ7Ci0gICAgICB2YXIgUFJPVE9DT0wgPSBsb2NhdGlvbi5wcm90b2Nv
bC5yZXBsYWNlKC86LywgIiIpOwotICAgICAgdmFyIFFVRVJZID0gbG9jYXRpb24uc2VhcmNoLnJl
cGxhY2UoL1w/LywgIiIpOwotICAgICAgdmFyIG1hdGNoID0gUVVFUlkubWF0Y2goL3Rva2VuPShb
XiZdKykvKTsKLSAgICAgIHZhciBUT0tFTiA9IG1hdGNoID8gbWF0Y2hbMV0gOiBudWxsOworICAg
ICAgdmFyIGNvbnNvbGVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KTsKKyAgICAgIHZhciBzY3JlZW5Db25zb2xlID0gbmV3IFNjcmVlbkNvbnNvbGUoY29uc29sZUVs
ZW1lbnQpOworICAgICAgdmFyIHF1ZXJ5UGFyYW1ldGVycyA9IFF1ZXJ5UGFyc2VyLnBhcnNlUXVl
cnkoKTsKKyAgICAgIHZhciBUT0tFTiA9IHF1ZXJ5UGFyYW1ldGVyc1sidG9rZW4iXTsKICAgICAg
IGlmIChUT0tFTikKICAgICAgICAgZG9jdW1lbnQuY29va2llID0KICAgICAgICAgICAicmVzdW1l
X3Rva2VuPSIgKyBUT0tFTiArICI7IGV4cGlyZXM9RnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBH
TVQiOwogCi0gICAgICBsb2coIkxvYWRpbmcgbmV4dCB0ZXN0IC4uLiIpOworICAgICAgc2NyZWVu
Q29uc29sZS5sb2coIkxvYWRpbmcgbmV4dCB0ZXN0IC4uLiIpOwogCiAgICAgICBXYXZlU2Vydmlj
ZS5yZWFkTmV4dFRlc3QoCiAgICAgICAgIFRPS0VOLAotICAgICAgICBmdW5jdGlvbih1cmwpIHsK
LSAgICAgICAgICBsb2coIlJlZGlyZWN0aW5nIHRvICIgKyB1cmwpOworICAgICAgICBmdW5jdGlv
biAodXJsKSB7CisgICAgICAgICAgc2NyZWVuQ29uc29sZS5sb2coIlJlZGlyZWN0aW5nIHRvICIg
KyB1cmwpOwogICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSB1cmw7CiAgICAgICAgIH0sCi0gICAg
ICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgIGxvZygiQ29ubmVjdGlvbiBmYWlsZWQuIik7Cisg
ICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBzY3JlZW5Db25zb2xlLmxvZygiQ29ubmVj
dGlvbiBmYWlsZWQuIik7CiAgICAgICAgIH0KICAgICAgICk7CiAgICAgPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvd3d3L292ZXJ2aWV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L292ZXJ2aWV3Lmh0bWwKaW5kZXggY2FiYjE1ODcx
MWE0YWRmYTc1ZTBiYzQwNDMyZGFmNjNhMTQ5MGFhOS4uNDhlYzNhMjUxNGIyMWFiNmQzN2QyNmNj
M2FlMjExNzU4YTRlMzUyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9vdmVydmlldy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvb3Zl
cnZpZXcuaHRtbApAQCAtMTI4LDggKzEyOCw4IEBACiAgICAgICAgICAgICAgIH0pCiAgICAgICAg
ICAgICApOwogICAgICAgICAgIH0pOwotICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRSZXN1bHRz
Q29uZmlnKGZ1bmN0aW9uKGNvbmZpZykgewotICAgICAgICAgICAgcmVzdWx0c1VpLnN0YXRlLmlt
cG9ydFJlc3VsdHNFbmFibGVkID0gY29uZmlnLmltcG9ydEVuYWJsZWQ7CisgICAgICAgICAgV2F2
ZVNlcnZpY2UucmVhZFN0YXR1cyhmdW5jdGlvbihjb25maWcpIHsKKyAgICAgICAgICAgIHJlc3Vs
dHNVaS5zdGF0ZS5pbXBvcnRSZXN1bHRzRW5hYmxlZCA9IGNvbmZpZy5pbXBvcnRSZXN1bHRzRW5h
YmxlZDsKICAgICAgICAgICAgIHJlc3VsdHNVaS5zdGF0ZS5yZXBvcnRzRW5hYmxlZCA9IGNvbmZp
Zy5yZXBvcnRzRW5hYmxlZDsKICAgICAgICAgICAgIHJlc3VsdHNVaS5yZW5kZXJNYW5hZ2VTZXNz
aW9ucygpOwogICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9wYXVzZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9wYXVz
ZS5odG1sCmluZGV4IGE1NjE5NjhlMTEyNThlZWIzOGY2ZDJiZjMxM2MzZDQ1ZDMwNmQwZjkuLjRl
NTJiNjY3M2Q0YzgxYmY4NGI4YTIzYjY1ZDNjYWY4MjMzZDg1ZDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcGF1
c2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvd3d3L3BhdXNlLmh0bWwKQEAgLTEyMiw4ICsxMjIsNyBAQAogICAgICAgICB9
KTsKICAgICAgIH0KIAotICAgICAgV2F2ZVNlcnZpY2UuY29ubmVjdEh0dHBQb2xsaW5nKFRPS0VO
KTsKLSAgICAgIFdhdmVTZXJ2aWNlLm9uTWVzc2FnZShmdW5jdGlvbihtZXNzYWdlKSB7CisgICAg
ICBXYXZlU2VydmljZS5hZGRTZXNzaW9uRXZlbnRMaXN0ZW5lcihUT0tFTiwgZnVuY3Rpb24obWVz
c2FnZSkgewogICAgICAgICBpZiAobWVzc2FnZS50eXBlICE9PSAic3RhdHVzIikgcmV0dXJuOwog
ICAgICAgICBpZiAobWVzc2FnZS5kYXRhICE9PSAicnVubmluZyIpIHJldHVybjsKICAgICAgICAg
V2F2ZVNlcnZpY2UucmVhZE5leHRUZXN0KFRPS0VOLCBmdW5jdGlvbih1cmwpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS93d3cvcmVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9yZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1ZTgwNTJjNmU5NmY5ZTMyOGUzNGI2NTU5MmM2ZjljZjc3
YmQxYzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9y
ZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3Jlcy9zcGlubmVyLXNvbGlkLnN2ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzL3dhdmVsb2dvXzIwMTYuanBnCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvd3d3L3Jlc3VsdHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzdWx0cy5odG1sCmluZGV4IDgzOWNlMDU1OTBj
OWZjMDNmOGMzYTM1NzVhNzQyYjBkMmMwMzRmNzYuLmM5YjJjMDI4YzE5NzZmYTdhZjJkZGVjZGMy
Zjc5NmRhM2M5NTRlOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzdWx0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzdWx0
cy5odG1sCkBAIC0xLDUgKzEsNSBAQAogPCFET0NUWVBFIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiIg
c3R5bGU9Im92ZXJmbG93OiBhdXRvIj4KKzxodG1sIGxhbmc9ImVuIiBzdHlsZT0ib3ZlcmZsb3c6
IGF1dG87Ij4KICAgPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CiAgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xIiAvPgpAQCAtMzgsMTIgKzM4LDEyIEBACiAgICAgICAgICAgcmVmZXJlbmNlU2Vzc2lv
bnM6IFtdLAogICAgICAgICAgIGxhc3RDb21wbGV0ZWRUZXN0czogW10sCiAgICAgICAgICAgbWFs
ZnVuY3Rpb25pbmdUZXN0czogW10sCi0gICAgICAgICAgYWRkTGFiZWxWaXNpYmxlOiBmYWxzZQor
ICAgICAgICAgIGFkZExhYmVsVmlzaWJsZTogZmFsc2UsCiAgICAgICAgIH0sCi0gICAgICAgIHJl
ZnJlc2hEYXRhOiB0b1VwZGF0ZSA9PiB7Ci0gICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFJlc3Vs
dHNDb25maWcoZnVuY3Rpb24oY29uZmlnKSB7Ci0gICAgICAgICAgICAgICAgICByZXN1bHRVaS5z
dGF0ZS5yZXBvcnRzRW5hYmxlZCA9IGNvbmZpZy5yZXBvcnRzRW5hYmxlZDsKLSAgICAgICAgICAg
ICAgICAgIHJlc3VsdFVpLnJlbmRlckFwaVJlc3VsdHMoKTsKKyAgICAgICAgcmVmcmVzaERhdGE6
ICh0b1VwZGF0ZSkgPT4geworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTdGF0dXMoZnVuY3Rp
b24gKGNvbmZpZykgeworICAgICAgICAgICAgcmVzdWx0VWkuc3RhdGUucmVwb3J0c0VuYWJsZWQg
PSBjb25maWcucmVwb3J0c0VuYWJsZWQ7CisgICAgICAgICAgICByZXN1bHRVaS5yZW5kZXJBcGlS
ZXN1bHRzKCk7CiAgICAgICAgICAgfSk7CiAgICAgICAgICAgc3dpdGNoICh0b1VwZGF0ZSkgewog
ICAgICAgICAgICAgY2FzZSAidGVzdF9jb21wbGV0ZWQiOgpAQCAtODgsMTYgKzg4LDE5IEBACiAg
ICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICByZWZyZXNoU2Vzc2lvbkNvbmZpZ3VyYXRp
b24oY2FsbGJhY2sgPSAoKSA9PiB7fSkgewotICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNz
aW9uKHRva2VuLCBjb25maWd1cmF0aW9uID0+IHsKKyAgICAgICAgICBXYXZlU2VydmljZS5yZWFk
U2Vzc2lvbih0b2tlbiwgKGNvbmZpZ3VyYXRpb24pID0+IHsKICAgICAgICAgICAgIHJlc3VsdFVp
LnN0YXRlLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOwogICAgICAgICAgICAgY2FsbGJh
Y2soY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAgICAgICAgIHJl
ZnJlc2hTZXNzaW9uU3RhdHVzKGNhbGxiYWNrID0gKCkgPT4ge30pIHsKLSAgICAgICAgICBXYXZl
U2VydmljZS5yZWFkU2Vzc2lvblN0YXR1cyh0b2tlbiwgc3RhdHVzID0+IHsKKyAgICAgICAgICBX
YXZlU2VydmljZS5yZWFkU2Vzc2lvblN0YXR1cyh0b2tlbiwgKHN0YXR1cykgPT4gewogICAgICAg
ICAgICAgcmVzdWx0VWkuc3RhdGUuc3RhdHVzID0gc3RhdHVzOwogICAgICAgICAgICAgaWYgKHN0
YXR1cy5zdGF0dXMgIT09ICJjb21wbGV0ZWQiICYmIHN0YXR1cy5zdGF0dXMgIT09ICJhYm9ydGVk
IikKLSAgICAgICAgICAgICAgcmVzdWx0VWkuY29ubmVjdFdlYlNvY2tldCgpOworICAgICAgICAg
ICAgICBXYXZlU2VydmljZS5hZGRTZXNzaW9uRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgICAgICAg
ICB0b2tlbiwKKyAgICAgICAgICAgICAgICByZXN1bHRVaS5oYW5kbGVTZXNzaW9uRXZlbnQKKyAg
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgIGNhbGxiYWNrKHN0YXR1cyk7CiAgICAgICAgICAg
fSk7CiAgICAgICAgIH0sCkBAIC0xMDYsMzggKzEwOSwzMyBAQAogICAgICAgICAgIGlmICghY29u
ZmlndXJhdGlvbikgcmV0dXJuOwogICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlVG9rZW5zIH0g
PSBjb25maWd1cmF0aW9uOwogICAgICAgICAgIGlmICghcmVmZXJlbmNlVG9rZW5zKSByZXR1cm47
Ci0gICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZE11bHRpcGxlU2Vzc2lvbnMocmVmZXJlbmNlVG9r
ZW5zLCBjb25maWd1cmF0aW9uID0+IHsKKyAgICAgICAgICBXYXZlU2VydmljZS5yZWFkTXVsdGlw
bGVTZXNzaW9ucyhyZWZlcmVuY2VUb2tlbnMsIChjb25maWd1cmF0aW9uKSA9PiB7CiAgICAgICAg
ICAgICByZXN1bHRVaS5zdGF0ZS5yZWZlcmVuY2VTZXNzaW9ucyA9IGNvbmZpZ3VyYXRpb247CiAg
ICAgICAgICAgICByZXN1bHRVaS5yZW5kZXJSZWZlcmVuY2VTZXNzaW9ucygpOwogICAgICAgICAg
ICAgY2FsbGJhY2soY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAg
ICAgICAgIHJlZnJlc2hTZXNzaW9uUmVzdWx0cyhjYWxsYmFjayA9ICgpID0+IHt9KSB7Ci0gICAg
ICAgICAgV2F2ZVNlcnZpY2UucmVhZFJlc3VsdHNDb21wYWN0KHRva2VuLCByZXN1bHRzID0+IHsK
KyAgICAgICAgICBXYXZlU2VydmljZS5yZWFkUmVzdWx0c0NvbXBhY3QodG9rZW4sIChyZXN1bHRz
KSA9PiB7CiAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5yZXN1bHRzID0gcmVzdWx0czsKICAg
ICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdHMpOwogICAgICAgICAgIH0pOwogICAgICAgICB9LAog
ICAgICAgICByZWZyZXNoTGFzdENvbXBsZXRlZFRlc3RzKGNhbGxiYWNrID0gKCkgPT4ge30pIHsK
ICAgICAgICAgICBpZiAocmVzdWx0VWkuc3RhdGUuY29uZmlndXJhdGlvbi5pc1B1YmxpYykgcmV0
dXJuOwotICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRMYXN0Q29tcGxldGVkVGVzdHModG9rZW4s
IFsidGltZW91dCJdLCB0ZXN0cyA9PiB7CisgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZExhc3RD
b21wbGV0ZWRUZXN0cyh0b2tlbiwgWyJ0aW1lb3V0Il0sICh0ZXN0cykgPT4gewogICAgICAgICAg
ICAgcmVzdWx0VWkuc3RhdGUubGFzdENvbXBsZXRlZFRlc3RzID0gdGVzdHM7CiAgICAgICAgICAg
ICBjYWxsYmFjaygpOwogICAgICAgICAgIH0pOwogICAgICAgICB9LAogICAgICAgICByZWZyZXNo
TWFsZnVuY3Rpb25pbmdUZXN0cyhjYWxsYmFjayA9ICgpID0+IHt9KSB7Ci0gICAgICAgICAgV2F2
ZVNlcnZpY2UucmVhZE1hbGZ1bmN0aW9uaW5nVGVzdHModG9rZW4sIHRlc3RzID0+IHsKKyAgICAg
ICAgICBXYXZlU2VydmljZS5yZWFkTWFsZnVuY3Rpb25pbmdUZXN0cyh0b2tlbiwgKHRlc3RzKSA9
PiB7CiAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5tYWxmdW5jdGlvbmluZ1Rlc3RzID0gdGVz
dHM7CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICAgIH0pOwogICAgICAgICB9LAot
ICAgICAgICBjb25uZWN0V2ViU29ja2V0KCkgewotICAgICAgICAgIGlmICghV2F2ZVNlcnZpY2Uu
aXNDb25uZWN0ZWQoKSkgewotICAgICAgICAgICAgV2F2ZVNlcnZpY2UuY29ubmVjdEh0dHBQb2xs
aW5nKHRva2VuKTsKLSAgICAgICAgICAgIFdhdmVTZXJ2aWNlLm9uTWVzc2FnZShtZXNzYWdlID0+
IHsKLSAgICAgICAgICAgICAgcmVzdWx0VWkucmVmcmVzaERhdGEobWVzc2FnZS50eXBlKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAgIH0KKyAgICAgICAgaGFuZGxlU2Vzc2lvbkV2ZW50KG1l
c3NhZ2UpIHsKKyAgICAgICAgICByZXN1bHRVaS5yZWZyZXNoRGF0YShtZXNzYWdlLnR5cGUpOwog
ICAgICAgICB9LAogICAgICAgICBvcGVuUmVzdWx0c092ZXJ2aWV3KCkgewogICAgICAgICAgIGxv
Y2F0aW9uLmhyZWYgPSBXRUJfUk9PVCArICJvdmVydmlldy5odG1sIjsKQEAgLTE2OCw3ICsxNjYs
NyBAQAogICAgICAgICBvcGVuSHRtbFJlcG9ydChhcGkpIHsKICAgICAgICAgICBjb25zdCB7IHJl
c3VsdHMgfSA9IHJlc3VsdFVpLnN0YXRlOwogICAgICAgICAgIGlmIChyZXN1bHRzW2FwaV0uY29t
cGxldGUgIT0gcmVzdWx0c1thcGldLnRvdGFsKSByZXR1cm47Ci0gICAgICAgICAgV2F2ZVNlcnZp
Y2UucmVhZFJlcG9ydFVyaSh0b2tlbiwgYXBpLCBmdW5jdGlvbih1cmkpIHsKKyAgICAgICAgICBX
YXZlU2VydmljZS5yZWFkUmVwb3J0VXJpKHRva2VuLCBhcGksIGZ1bmN0aW9uICh1cmkpIHsKICAg
ICAgICAgICAgIHdpbmRvdy5vcGVuKHVyaSwgIl9ibGFuayIpOwogICAgICAgICAgIH0pOwogICAg
ICAgICB9LApAQCAtMjYwLDkgKzI1OCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaW1nIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzcmM6ICJyZXMvd2F2ZWxvZ29fMjAxNi5qcGciLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInNpdGUtbG9nbyIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogInNpdGUtbG9nbyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiY29sdW1uIGlzLW5hcnJvdyIsCkBAIC0yNzYsMTggKzI3NCwxOCBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJm
YXMgZmEtYXJyb3ctbGVmdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1hcnJvdy1sZWZ0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiUmVzdWx0cyBPdmVydmlldyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVy
IiwKQEAgLTI5Niw0OCArMjk0LDQ4IEBACiAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46
IFsKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiY29sdW1uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46
IHsgY2xhc3NOYW1lOiAidGl0bGUiLCB0ZXh0OiAiUmVzdWx0IiB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogInRpdGxlIiwgdGV4dDogIlJlc3VsdCIg
fSwKICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbHVtbiBpcy1uYXJyb3ci
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBpZDogImNvbnRyb2xzIiB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgXQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
XQorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBpZDogImNvbnRyb2xzIiB9
LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgaWQ6ICJzZXNzaW9uLWRldGFpbHMiLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNv
bnRhaW5lciIsCi0gICAgICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iCisg
ICAgICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iLAogICAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWQ6ICJsYXN0LWNvbXBsZXRl
ZC10ZXN0cyIsCiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVyIiwKLSAgICAg
ICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIKKyAgICAgICAgICAgICAgICBz
dHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIsCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICBpZDogImFwaS1yZXN1bHRzIiwKICAgICAgICAgICAgICAg
ICBjbGFzc05hbWU6ICJjb250YWluZXIiLAotICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2lu
LWJvdHRvbTogMmVtIgorICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVt
IiwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlk
OiAidGltZW91dC1maWxlcyIsCiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVy
IiwKLSAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIKKyAgICAgICAg
ICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIsCiAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZDogImV4cG9ydCIsCiAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVyIiwKLSAgICAgICAgICAgICAgICBzdHlsZTogIm1h
cmdpbi1ib3R0b206IDJlbSIKKyAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206
IDJlbSIsCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBpZDogIm1hbGZ1bmN0aW9uaW5nLXRlc3RzIiwKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJjb250YWluZXIiLAotICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVt
IgotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgc3R5bGU6
ICJtYXJnaW4tYm90dG9tOiAyZW0iLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwK
ICAgICAgICAgICB9KTsKICAgICAgICAgICBjb25zdCByb290ID0gVUkuZ2V0Um9vdCgpOwogICAg
ICAgICAgIHJvb3QuaW5uZXJIVE1MID0gIiI7CkBAIC0zNTMsNyArMzUxLDcgQEAKICAgICAgICAg
ICBjb25zdCB7IHN0YXR1cyB9ID0gc3RhdGUuc3RhdHVzOwogICAgICAgICAgIGNvbnN0IHsgaXNQ
dWJsaWMgfSA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAgY29uc3QgY29udHJvbHNW
aWV3ID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBp
cy1ncm91cGVkIGlzLWdyb3VwZWQtbXVsdGlsaW5lIgorICAgICAgICAgICAgY2xhc3NOYW1lOiAi
ZmllbGQgaXMtZ3JvdXBlZCBpcy1ncm91cGVkLW11bHRpbGluZSIsCiAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgaWYgKAogICAgICAgICAgICAgc3RhdHVzICYmCkBAIC0zNjQsNyArMzYyLDcgQEAK
ICAgICAgICAgICAgIGNvbnN0IHBhdXNlUmVzdW1lQnV0dG9uID0gVUkuY3JlYXRlRWxlbWVudCh7
CiAgICAgICAgICAgICAgIGlkOiAicGF1c2UtcmVzdW1lLWJ1dHRvbiIsCiAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImNvbnRyb2wgYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQiLAotICAgICAg
ICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgb25jbGljazogZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICJydW5uaW5nIikgewog
ICAgICAgICAgICAgICAgICAgV2F2ZVNlcnZpY2UucGF1c2VTZXNzaW9uKHRva2VuLCByZXN1bHRV
aS5yZWZyZXNoRGF0YSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTM3OSwxNSArMzc3
LDE1IEBACiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50OiAiaSIsCiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOgotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhdHVzID09PSAicnVubmluZyIgPyAiZmFzIGZhLXBhdXNlIiA6ICJmYXMg
ZmEtcGxheSIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgXQorICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID09PSAicnVubmluZyIgPyAiZmFzIGZhLXBhdXNl
IiA6ICJmYXMgZmEtcGxheSIsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgdGV4dDogc3RhdHVzID09PSAicnVubmluZyIgPyAiUGF1c2UiIDogIlJlc3VtZSIs
Ci0gICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICBjb250cm9sc1ZpZXcuYXBwZW5kQ2hpbGQocGF1c2VSZXN1bWVCdXR0b24pOwogICAgICAg
ICAgIH0KQEAgLTQwNCwxNSArNDAyLDE1IEBACiAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog
WwogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
ImkiLAotICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1zcXVhcmUiCi0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtc3F1YXJlIiwKKyAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICB0ZXh0OiAiU3RvcCIsCi0gICAgICAgICAgICAgICAg
ICBlbGVtZW50OiAic3BhbiIKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBjb250cm9sc1ZpZXcu
YXBwZW5kQ2hpbGQoc3RvcEJ1dHRvbik7CiAgICAgICAgICAgfQpAQCAtNDI4LDE1ICs0MjYsMTUg
QEAKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmFzIGZhLXRyYXNoLWFsdCIKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZh
cyBmYS10cmFzaC1hbHQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgIHRleHQ6ICJEZWxldGUiLAotICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4i
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICBl
bGVtZW50OiAic3BhbiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgY29udHJvbHNWaWV3LmFwcGVuZENoaWxkKGRlbGV0
ZUJ1dHRvbik7CiAgICAgICAgICAgfQpAQCAtNDQ3LDcgKzQ0NSw3IEBACiAgICAgICAgICAgICBj
aGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
bW9kYWwtYmFja2dyb3VuZCIsCi0gICAgICAgICAgICAgICAgb25jbGljazogcmVzdWx0VWkuaGlk
ZURlbGV0ZU1vZGFsCisgICAgICAgICAgICAgICAgb25jbGljazogcmVzdWx0VWkuaGlkZURlbGV0
ZU1vZGFsLAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAibW9kYWwtY2FyZCIsCkBAIC00NTgsMTkgKzQ1NiwxOSBAQAogICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJwIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm1vZGFsLWNhcmQtdGl0bGUiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogIkRlbGV0ZSBTZXNzaW9uIgotICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGV4dDogIkRlbGV0ZSBTZXNzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibW9kYWwtY2FyZC1ib2R5
IiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAicCIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0ZXh0OiAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHNl
c3Npb24/IgorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogIkFyZSB5b3Ugc3VyZSB5b3Ug
d2FudCB0byBkZWxldGUgdGhpcyBzZXNzaW9uPyIsCiAgICAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJwIiwgdGV4dDogIlRoaXMgYWN0aW9u
IGNhbm5vdCBiZSB1bmRvbmUuIiB9Ci0gICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
ICAgICAgICAgICB7IGVsZW1lbnQ6ICJwIiwgdGV4dDogIlRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1
bmRvbmUuIiB9LAorICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibW9k
YWwtY2FyZC1mb290IiwKQEAgLTQ3OCwxOCArNDc2LDE4IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLWRhbmdl
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiRGVsZXRlIFNlc3Npb24iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgb25jbGljazogcmVzdWx0VWkuZGVsZXRlU2Vzc2lvbgorICAg
ICAgICAgICAgICAgICAgICAgICAgb25jbGljazogcmVzdWx0VWkuZGVsZXRlU2Vzc2lvbiwKICAg
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0OiAiQ2FuY2VsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9uY2xpY2s6IHJl
c3VsdFVpLmhpZGVEZWxldGVNb2RhbAotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgb25j
bGljazogcmVzdWx0VWkuaGlkZURlbGV0ZU1vZGFsLAorICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0p
OwogICAgICAgICAgIGNvbnRyb2xzVmlldy5hcHBlbmRDaGlsZChkZWxldGVNb2RhbCk7CiAKQEAg
LTUwMiwxNiArNTAwLDE2IEBACiAgICAgICAgICAgY29uc3QgeyBjb25maWd1cmF0aW9uLCBzdGF0
dXMsIHJlc3VsdHMgfSA9IHN0YXRlOwogICAgICAgICAgIGlmICghY29uZmlndXJhdGlvbiB8fCAh
c3RhdHVzKSByZXR1cm47CiAgICAgICAgICAgY29uc3Qgc2Vzc2lvbkRldGFpbHNWaWV3ID0gVUku
Y3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDIwcHgi
CisgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDIwcHgiLAogICAgICAgICAgIH0p
OwogCiAgICAgICAgICAgY29uc3QgaGVhZGluZyA9IFVJLmNyZWF0ZUVsZW1lbnQoewogICAgICAg
ICAgICAgdGV4dDogIlNlc3Npb24gZGV0YWlscyIsCi0gICAgICAgICAgICBjbGFzc05hbWU6ICJ0
aXRsZSBpcy00IgorICAgICAgICAgICAgY2xhc3NOYW1lOiAidGl0bGUgaXMtNCIsCiAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKGhlYWRpbmcp
OwogCi0gICAgICAgICAgY29uc3QgZ2V0VGFnU3R5bGUgPSBzdGF0dXMgPT4geworICAgICAgICAg
IGNvbnN0IGdldFRhZ1N0eWxlID0gKHN0YXR1cykgPT4gewogICAgICAgICAgICAgc3dpdGNoIChz
dGF0dXMpIHsKICAgICAgICAgICAgICAgY2FzZSAiY29tcGxldGVkIjoKICAgICAgICAgICAgICAg
ICByZXR1cm4gImlzLXN1Y2Nlc3MiOwpAQCAtNTMxLDcgKzUyOSw3IEBACiAgICAgICAgICAgICBp
ZiAoIXN0YXRlLmR1cmF0aW9uSW50ZXJ2YWwpCiAgICAgICAgICAgICAgIHN0YXRlLmR1cmF0aW9u
SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgVUkuZ2V0RWxl
bWVudCgiZHVyYXRpb24iKS5pbm5lckhUTUwgPSB1dGlscy5taWxsaXNUb1RpbWVTdHJpbmcoCi0g
ICAgICAgICAgICAgICAgICBEYXRlLm5vdygpIC0gcGFyc2VJbnQoc3RhdHVzLmRhdGVTdGFydGVk
KQorICAgICAgICAgICAgICAgICAgRGF0ZS5ub3coKSAtIHN0YXR1cy5kYXRlU3RhcnRlZC5nZXRU
aW1lKCkKICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICB9LCAxMDAwKTsKICAgICAg
ICAgICB9CkBAIC01NDQsNyArNTQyLDcgQEAKICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0g
ICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiVG9r
ZW4iIH0KKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRl
eHQ6ICJUb2tlbiIgfSwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLApAQCAtNTUyLDExICs1NTAsMTEgQEAK
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKICAgICAgICAgICAgICAgICAg
IGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAot
ICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjb25maWd1cmF0aW9uLnRva2VuCi0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBdCisgICAgICAgICAgICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24udG9rZW4sCisgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmll
dy5hcHBlbmRDaGlsZCh0b2tlbkZpZWxkKTsKIApAQCAtNTY1LDcgKzU2Myw3IEBACiAgICAgICAg
ICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFt
ZTogImxhYmVsIiwgdGV4dDogIlVzZXIgQWdlbnQiIH0KKyAgICAgICAgICAgICAgICBjaGlsZHJl
bjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJVc2VyIEFnZW50IiB9LAogICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQtYm9keSIsCkBAIC01NzMsMTEgKzU3MSwxMSBAQAogICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQiLAogICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgIHRleHQ6
IGNvbmZpZ3VyYXRpb24udXNlckFnZW50IHx8ICIiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAg
ICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24udXNlckFnZW50IHx8ICIiLAorICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9uRGV0YWlsc1ZpZXcuYXBw
ZW5kQ2hpbGQodXNlckFnZW50RmllbGQpOwogCkBAIC01ODYsNyArNTg0LDcgQEAKICAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05h
bWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1l
OiAibGFiZWwiLCB0ZXh0OiAiVGVzdCBQYXRocyIgfQorICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRlc3QgUGF0aHMiIH0sCiAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZC1ib2R5IiwKQEAgLTU5NiwxMSArNTk0LDExIEBACiAgICAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogImNvbnRyb2wiLAogICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjb25maWd1cmF0aW9u
LnRlc3RzLmluY2x1ZGUKICAgICAgICAgICAgICAgICAgICAgICAucmVkdWNlKCh0ZXh0LCB0ZXN0
KSA9PiB0ZXh0ICsgdGVzdCArICIsICIsICIiKQotICAgICAgICAgICAgICAgICAgICAgIC5zbGlj
ZSgwLCAtMikKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwg
LTIpLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9u
RGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQodGVzdFBhdGhzRmllbGQpOwogCkBAIC02MDksNyArNjA3
LDcgQEAKICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRy
ZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiRXhjbHVkZWQgVGVzdCBQYXRocyIgfQor
ICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIkV4
Y2x1ZGVkIFRlc3QgUGF0aHMiIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTYyMCw3ICs2MTgs
NyBAQAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24udGVzdHMuZXhjbHVkZS5sZW5ndGgK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24udGVzdHMuZXhjbHVk
ZS5sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCkBAIC02MjksMjIg
KzYyNywyNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogc2hvd0V4Y2x1ZGVkID8g
ImhpZGUiIDogInNob3ciLAogICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogc2hvd0V4
Y2x1ZGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcmVzdWx0VWkuaGlkZUV4Y2x1ZGVk
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzdWx0VWkuc2hvd0V4Y2x1ZGVkCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogcmVzdWx0VWkuc2hvd0V4Y2x1ZGVkLAogICAgICAgICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgc2hvd0V4Y2x1ZGVkCiAgICAg
ICAgICAgICAgICAgICAgICAgICA/IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHls
ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXgtaGVpZ2h0OiAyNTBweDsgb3Zl
cmZsb3c6IGF1dG87IG1hcmdpbi1ib3R0b206IDEwcHgiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiBjb25maWd1cmF0aW9uLnRlc3RzLmV4Y2x1ZGUubWFwKHRlc3QgPT4g
KHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRlc3QKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogY29uZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlLm1hcCgKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0ZXN0KSA9PiAoeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0OiB0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICA6IG51bGwKLSAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLAorICAgICAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9u
RGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQoZXhjbHVkZWRUZXN0c0ZpZWxkKTsKIApAQCAtNjU1LDcg
KzY1NSw3IEBACiAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNo
aWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlJlZmVyZW5jZSBTZXNzaW9ucyIg
fQorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDog
IlJlZmVyZW5jZSBTZXNzaW9ucyIgfSwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLApAQCAtNjYzLDExICs2
NjMsMTEgQEAKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNv
bnRyb2wiLAotICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBpZDogInJlZmVyZW5jZS1z
ZXNzaW9ucyIgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog
eyBpZDogInJlZmVyZW5jZS1zZXNzaW9ucyIgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKHJlZmVyZW5j
ZVNlc3Npb25GaWVsZCk7CiAKQEAgLTY3Niw3ICs2NzYsNyBAQAogICAgICAgICAgICAgY2hpbGRy
ZW46IFsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxk
LWxhYmVsIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIs
IHRleHQ6ICJUb3RhbCBUZXN0IEZpbGVzIiB9CisgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsg
Y2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiVG90YWwgVGVzdCBGaWxlcyIgfSwKICAgICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZp
ZWxkLWJvZHkiLApAQCAtNjg3LDExICs2ODcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgdGV4
dDogT2JqZWN0LmtleXMocmVzdWx0cykucmVkdWNlKAogICAgICAgICAgICAgICAgICAgICAgIChz
dW0sIGFwaSkgPT4gKHN1bSArPSByZXN1bHRzW2FwaV0udG90YWwpLAogICAgICAgICAgICAgICAg
ICAgICAgIDAKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAg
ICBzZXNzaW9uRGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQodG90YWxUZXN0RmlsZXNGaWVsZCk7CiAK
QEAgLTcwMCw3ICs3MDAsNyBAQAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJTdGF0dXMiIH0K
KyAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJT
dGF0dXMiIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTcwOCwxMSArNzA4LDExIEBACiAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCiAgICAgICAgICAgICAgICAgICBjaGls
ZHJlbjogewogICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGBjb250cm9sIHRhZyAke2dl
dFRhZ1N0eWxlKHN0YXR1cy5zdGF0dXMpfWAsCi0gICAgICAgICAgICAgICAgICAgIHRleHQ6IHN0
YXR1cy5zdGF0dXMKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgdGV4dDogc3Rh
dHVzLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAgfSk7CiAgICAgICAgICAg
c2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKHN0YXR1c0ZpZWxkKTsKIApAQCAtNzIxLDcg
KzcyMSw3IEBACiAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNo
aWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRlc3QgVGltZW91dHMiIH0KKyAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJUZXN0
IFRpbWVvdXRzIiB9LAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC03MzEsMTQgKzczMSwxNSBAQAog
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGBjb250cm9sYCwKICAgICAgICAgICAgICAg
ICAgICAgdGV4dDogT2JqZWN0LmtleXMoY29uZmlndXJhdGlvbi50aW1lb3V0cykucmVkdWNlKAog
ICAgICAgICAgICAgICAgICAgICAgICh0ZXh0LCB0aW1lb3V0KSA9PgotICAgICAgICAgICAgICAg
ICAgICAgICAgYCR7dGV4dH0ke3RpbWVvdXR9OiAke2NvbmZpZ3VyYXRpb24udGltZW91dHNbdGlt
ZW91dF0gLwotICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwfXNcbmAsCisgICAgICAgICAg
ICAgICAgICAgICAgICBgJHt0ZXh0fSR7dGltZW91dH06ICR7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb24udGltZW91dHNbdGltZW91dF0gLyAxMDAwCisgICAgICAgICAg
ICAgICAgICAgICAgICB9c1xuYCwKICAgICAgICAgICAgICAgICAgICAgICAiIgotICAgICAgICAg
ICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICksCisgICAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmll
dy5hcHBlbmRDaGlsZCh0aW1lb3V0c0ZpZWxkKTsKIApAQCAtNzQ4LDcgKzc0OSw3IEBACiAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46
IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiRGF0ZSBTdGFydGVkIiB9CisgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJEYXRlIFN0YXJ0
ZWQiIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTc1NiwxMSArNzU3LDExIEBACiAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGBjb250cm9s
YCwKLSAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBuZXcgRGF0ZShzdGF0dXMuZGF0ZVN0YXJ0
ZWQpLnRvTG9jYWxlU3RyaW5nKCkKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
ICAgICAgICAgIHRleHQ6IG5ldyBEYXRlKHN0YXR1cy5kYXRlU3RhcnRlZCkudG9Mb2NhbGVTdHJp
bmcoKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKHN0YXJ0ZWRGaWVsZCk7CiAgICAg
ICAgICAgfQpAQCAtNzcxLDcgKzc3Miw3IEBACiAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFi
ZWwiLAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiRGF0ZSBGaW5pc2hlZCIgfQorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xh
c3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiRGF0ZSBGaW5pc2hlZCIgfSwKICAgICAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZp
ZWxkLWJvZHkiLApAQCAtNzc5LDExICs3ODAsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiZmllbGQiLAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAg
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogYGNvbnRyb2xgLAotICAgICAgICAgICAgICAgICAg
ICAgIHRleHQ6IG5ldyBEYXRlKHN0YXR1cy5kYXRlRmluaXNoZWQpLnRvTG9jYWxlU3RyaW5nKCkK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IG5ldyBE
YXRlKHN0YXR1cy5kYXRlRmluaXNoZWQpLnRvTG9jYWxlU3RyaW5nKCksCisgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgIF0sCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHNlc3Npb25EZXRhaWxz
Vmlldy5hcHBlbmRDaGlsZChmaW5pc2hlZEZpZWxkKTsKICAgICAgICAgICB9CkBAIC03OTQsNyAr
Nzk1LDcgQEAKICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJEdXJhdGlvbiIgfQor
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAi
RHVyYXRpb24iIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTgwNSwxNCArODA2LDE0
IEBACiAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJkdXJhdGlvbiIsCiAgICAgICAgICAgICAg
ICAgICAgICAgdGV4dDogdXRpbHMubWlsbGlzVG9UaW1lU3RyaW5nKAogICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdHVzLmRhdGVGaW5pc2hlZAotICAgICAgICAgICAgICAgICAgICAgICAgICA/
IHBhcnNlSW50KHN0YXR1cy5kYXRlRmluaXNoZWQpIC0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnNlSW50KHN0YXR1cy5kYXRlU3RhcnRlZCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgOiBEYXRlLm5vdygpIC0gcGFyc2VJbnQoc3RhdHVzLmRhdGVTdGFydGVkKQotICAgICAg
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAg
ICAgICAgICAgICA/IHN0YXR1cy5kYXRlRmluaXNoZWQuZ2V0VGltZSgpIC0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXR1cy5kYXRlU3RhcnRlZC5nZXRUaW1lKCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOiBEYXRlLm5vdygpIC0gc3RhdHVzLmRhdGVTdGFydGVkLmdldFRp
bWUoKQorICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmlldy5hcHBlbmRD
aGlsZChkdXJhdGlvbkZpZWxkKTsKICAgICAgICAgICB9CkBAIC04MjIsNyArODIzLDcgQEAKICAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBj
bGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xh
c3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiTGFiZWxzIiB9CisgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiTGFiZWxzIiB9LAogICAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQt
Ym9keSIsCkBAIC04MzcsMTUgKzgzOCwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInRhZyBpcy1pbmZvIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0OiBsYWJlbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRleHQ6IGxhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImEi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInRhZyBpcy1kZWxldGUi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHJlc3VsdFVpLnJl
bW92ZUxhYmVsKGluZGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHJlc3VsdFVpLnJlbW92ZUxhYmVsKGluZGV4KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgfSkpCiAgICAg
ICAgICAgICAgICAgICAgIC5jb25jYXQoCiAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VWku
c3RhdGUuY29uZmlndXJhdGlvbi5pc1B1YmxpYwpAQCAtODYxLDM3ICs4NjIsMzcgQEAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIndpZHRoOiAxMHJlbSIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJzZXNzaW9uLWxhYmVsLWlucHV0IiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAidGV4dCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlVcDogZXZlbnQgPT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvbktleVVwOiAoZXZlbnQpID0+CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAxMwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlc3VsdFVpLmFkZExhYmVsKCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDogbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZToKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJidXR0b24gaXMtZGFyayBpcy1vdXRsaW5lZCBpcy1zbWFsbCBpcy1yb3VuZGVk
IGNvbnRyb2wiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJzYXZl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiByZXN1bHRVaS5h
ZGRMYWJlbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHJlc3Vs
dFVpLmFkZExhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1
dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVkIGlzLXNtYWxsIGlzLXJvdW5kZWQgY29udHJvbCIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogImNhbmNlbCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogcmVzdWx0VWkuaGlkZUFkZExhYmVs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb25DbGljazogcmVzdWx0VWkuaGlkZUFkZExhYmVsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgICAgICAgICA6IFsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJidXR0b24gaXMtcm91bmRlZCBpcy1zbWFsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0OiAiQWRkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6
IHJlc3VsdFVpLnNob3dBZGRMYWJlbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHJlc3VsdFVpLnNob3dBZGRMYWJl
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBdCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9
KTsKICAgICAgICAgICBzZXNzaW9uRGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQobGFiZWxzRmllbGQp
OwogCkBAIC05MDQsOSArOTA1LDkgQEAKICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZVNlc3Np
b25zIH0gPSByZXN1bHRVaS5zdGF0ZTsKICAgICAgICAgICBpZiAoIXJlZmVyZW5jZVNlc3Npb25z
IHx8IHJlZmVyZW5jZVNlc3Npb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgIGNv
bnN0IHJlZmVyZW5jZVNlc3Npb25zTGlzdCA9IFVJLmNyZWF0ZUVsZW1lbnQoewotICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtZ3JvdXBlZCBpcy1ncm91cGVkLW11bHRpbGluZSIKKyAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWdyb3VwZWQgaXMtZ3JvdXBlZC1tdWx0aWxp
bmUiLAogICAgICAgICAgIH0pOwotICAgICAgICAgIGNvbnN0IGdldEJyb3dzZXJJY29uID0gYnJv
d3NlciA9PiB7CisgICAgICAgICAgY29uc3QgZ2V0QnJvd3Nlckljb24gPSAoYnJvd3NlcikgPT4g
ewogICAgICAgICAgICAgc3dpdGNoIChicm93c2VyLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgICAg
ICAgICAgY2FzZSAiZmlyZWZveCI6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJmYWIgZmEtZmly
ZWZveCI7CkBAIC05MjAsNyArOTIxLDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gImZhYiBm
YS1zYWZhcmkiOwogICAgICAgICAgICAgfQogICAgICAgICAgIH07Ci0gICAgICAgICAgcmVmZXJl
bmNlU2Vzc2lvbnMuZm9yRWFjaChzZXNzaW9uID0+IHsKKyAgICAgICAgICByZWZlcmVuY2VTZXNz
aW9ucy5mb3JFYWNoKChzZXNzaW9uKSA9PiB7CiAgICAgICAgICAgICBjb25zdCB7IHRva2VuLCBi
cm93c2VyIH0gPSBzZXNzaW9uOwogICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlU2Vzc2lvbkl0
ZW0gPSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICAgY2xhc3NOYW1lOgpAQCAtOTMy
LDE0ICs5MzMsMTQgQEAKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImljb24iLAogICAg
ICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
ImkiLAotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGdldEJyb3dzZXJJY29uKGJyb3dz
ZXIubmFtZSkKLSAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiBnZXRCcm93c2VySWNvbihicm93c2VyLm5hbWUpLAorICAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQ6ICJzcGFuIiwKLSAgICAgICAgICAgICAgICAgIHRleHQ6IHRva2VuLnNwbGl0KCIt
Iikuc2hpZnQoKQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgdGV4dDogdG9rZW4uc3BsaXQoIi0iKS5zaGlmdCgpLAorICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJlZmVy
ZW5jZVNlc3Npb25zTGlzdC5hcHBlbmRDaGlsZChyZWZlcmVuY2VTZXNzaW9uSXRlbSk7CiAgICAg
ICAgICAgfSk7CkBAIC05NjAsOSArOTYxLDkgQEAKICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0aXRs
ZSBpcy03IiwKLSAgICAgICAgICAgICAgICB0ZXh0OiAiIChtb3N0IHJlY2VudCBmaXJzdCkiCi0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB0ZXh0OiAiICht
b3N0IHJlY2VudCBmaXJzdCkiLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAg
ICAgICAgICB9KTsKICAgICAgICAgICBsYXN0Q29tcGxldGVkVGVzdHNWaWV3LmFwcGVuZENoaWxk
KGhlYWRpbmcpOwogCkBAIC05NzksMTAgKzk4MCwxMCBAQAogICAgICAgICAgICAgICAgICAgICBl
bGVtZW50OiAidHIiLAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAg
ICAgICAgICAgICAgIHsgZWxlbWVudDogInRkIiwgdGV4dDogIlRlc3QgRmlsZSIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6ICJNYWxmdW5jdGlvbmluZyBM
aXN0IiB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAidGQiLCB0ZXh0
OiAiTWFsZnVuY3Rpb25pbmcgTGlzdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0Ym9keSIsCkBAIC0xMDA5
LDE4ICsxMDEwLDE4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRo
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPyAiZmFzIGZhLWNoZWNrIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiAiZmFzIGZhLXBsdXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9KSkKLSAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiAiZmFzIGZhLXBsdXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB9KSksCisgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIGlmIChsYXN0
Q29tcGxldGVkVGVzdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgbGFzdENvbXBsZXRlZFRl
c3RzVmlldy5hcHBlbmRDaGlsZCgKQEAgLTEwMjgsMTMgKzEwMjksMTMgQEAKICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJjb250YWluZXIiLAogICAgICAgICAgICAgICAgIHN0eWxlOiAib3Zl
cmZsb3cteDogYXV0bzsiLAogICAgICAgICAgICAgICAgIGlkOiAibGFzdC1jb21wbGV0ZWQtb3Zl
cmZsb3ciLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0ZXN0c1RhYmxlCisgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IHRlc3RzVGFibGUsCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg
ICApOwogICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjb25zdCBub1Rlc3RzTGFiZWwg
PSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICAgdGV4dDogIi0gTm8gVGltZWQtT3V0
IFRlc3RzIC0iLAotICAgICAgICAgICAgICBzdHlsZTogInRleHQtYWxpZ246IGNlbnRlciIKKyAg
ICAgICAgICAgICAgc3R5bGU6ICJ0ZXh0LWFsaWduOiBjZW50ZXIiLAogICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICBsYXN0Q29tcGxldGVkVGVzdHNWaWV3LmFwcGVuZENoaWxkKG5vVGVzdHNM
YWJlbCk7CiAgICAgICAgICAgfQpAQCAtMTA1MywxMiArMTA1NCwxMiBAQAogICAgICAgICAgIGNv
bnN0IHsgcmVzdWx0cywgc3RhdHVzIH0gPSByZXN1bHRVaS5zdGF0ZTsKIAogICAgICAgICAgIGNv
bnN0IGFwaVJlc3VsdHNWaWV3ID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBzdHls
ZTogIm1hcmdpbi1ib3R0b206IDIwcHgiCisgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0
b206IDIwcHgiLAogICAgICAgICAgIH0pOwogCiAgICAgICAgICAgY29uc3QgaGVhZGluZyA9IFVJ
LmNyZWF0ZUVsZW1lbnQoewogICAgICAgICAgICAgdGV4dDogIkFQSSBSZXN1bHRzIiwKLSAgICAg
ICAgICAgIGNsYXNzTmFtZTogInRpdGxlIGlzLTQiCisgICAgICAgICAgICBjbGFzc05hbWU6ICJ0
aXRsZSBpcy00IiwKICAgICAgICAgICB9KTsKICAgICAgICAgICBhcGlSZXN1bHRzVmlldy5hcHBl
bmRDaGlsZChoZWFkaW5nKTsKIApAQCAtMTA3MSwxNCArMTA3MiwxNCBAQAogICAgICAgICAgICAg
ICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLXNw
aW5uZXIgZmEtcHVsc2UiCisgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1z
cGlubmVyIGZhLXB1bHNlIiwKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWxlZnQ6IDAuNGVtOyIsCi0g
ICAgICAgICAgICAgICAgICAgIHRleHQ6ICJMb2FkaW5nIHJlc3VsdHMgLi4uIgotICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB0ZXh0OiAiTG9hZGluZyByZXN1bHRzIC4uLiIsCisgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIGFwaVJlc3VsdHNWaWV3LmFwcGVuZENoaWxkKGxvYWRpbmdJbmRpY2F0
b3IpOwogCkBAIC0xMTAxLDI5ICsxMTAyLDI5IEBACiAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0aCIsCiAgICAgICAgICAgICAgICAgICAgIHRleHQ6
ICJUaW1lb3V0IiwKLSAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBtaW4td2lkdGg6ICR7d2lk
dGh9YAorICAgICAgICAgICAgICAgICAgICBzdHlsZTogYG1pbi13aWR0aDogJHt3aWR0aH1gLAog
ICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgZWxlbWVudDogInRoIiwKICAgICAgICAgICAgICAgICAgICAgdGV4dDogIk5vdCBSdW4i
LAotICAgICAgICAgICAgICAgICAgICBzdHlsZTogYG1pbi13aWR0aDogJHt3aWR0aH1gCisgICAg
ICAgICAgICAgICAgICAgIHN0eWxlOiBgbWluLXdpZHRoOiAke3dpZHRofWAsCiAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50OiAidGgiLAogICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiVGVzdCBGaWxlcyBSdW4iLAot
ICAgICAgICAgICAgICAgICAgICBzdHlsZTogYG1pbi13aWR0aDogJHt3aWR0aH1gCisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlOiBgbWluLXdpZHRoOiAke3dpZHRofWAsCiAgICAgICAgICAgICAg
ICAgICB9LAotICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAidGgiLCB0ZXh0OiAiRXhwb3J0
IiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0aCIsIHRleHQ6ICJFeHBvcnQiIH0sCisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgICBjb25zdCBhcGlzID0gT2JqZWN0LmtleXMocmVzdWx0cykuc29y
dCgoYXBpQSwgYXBpQikgPT4KICAgICAgICAgICAgIGFwaUEudG9Mb3dlckNhc2UoKSA+IGFwaUIu
dG9Mb3dlckNhc2UoKSA/IDEgOiAtMQogICAgICAgICAgICk7CiAKLSAgICAgICAgICBjb25zdCBy
b3dzID0gYXBpcy5tYXAoYXBpID0+IHsKKyAgICAgICAgICBjb25zdCByb3dzID0gYXBpcy5tYXAo
KGFwaSkgPT4gewogICAgICAgICAgICAgY29uc3QgewogICAgICAgICAgICAgICBjb21wbGV0ZSA9
IDAsCiAgICAgICAgICAgICAgIHBhc3MgPSAwLApAQCAtMTEzMSw5ICsxMTMyLDkgQEAKICAgICAg
ICAgICAgICAgdGltZW91dCA9IDAsCiAgICAgICAgICAgICAgIHRpbWVvdXRmaWxlcyA9IFtdLAog
ICAgICAgICAgICAgICBub3RfcnVuOiBub3RSdW4gPSAwLAotICAgICAgICAgICAgICB0b3RhbAor
ICAgICAgICAgICAgICB0b3RhbCwKICAgICAgICAgICAgIH0gPSByZXN1bHRzW2FwaV07Ci0JCQkJ
CQlpc0RvbmUgPSByZXN1bHRzW2FwaV0uY29tcGxldGUgPT0gcmVzdWx0c1thcGldLnRvdGFsOwor
ICAgICAgICAgICAgaXNEb25lID0gcmVzdWx0c1thcGldLmNvbXBsZXRlID09IHJlc3VsdHNbYXBp
XS50b3RhbDsKICAgICAgICAgICAgIGNvbnN0IHRvdGFsVGVzdFJlc3VsdHMgPSBwYXNzICsgZmFp
bCArIHRpbWVvdXQgKyBub3RSdW47CiAgICAgICAgICAgICByZXR1cm4gVUkuY3JlYXRlRWxlbWVu
dCh7CiAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ciIsCkBAIC0xMTQ0LDMxICsxMTQ1LDM3IEBA
CiAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGQiLAogICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBjb2xvcjogaHNsKDE0MSwgNzEl
LCAzOCUpOyBvdmVyZmxvdzogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgd2lkdGg6ICR7
d2lkdGh9YCwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7cGFzc30gKCR7dXRpbHMucGVy
Y2VudChwYXNzLCB0b3RhbFRlc3RSZXN1bHRzKX0lKWAKLSAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgdGV4dDogYCR7cGFzc30gKCR7dXRpbHMucGVyY2VudChwYXNzLCB0
b3RhbFRlc3RSZXN1bHRzKX0lKWAsCisgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRk
IiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgIGNs
YXNzTmFtZTogImhhcy10ZXh0LWRhbmdlciIsCiAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBg
b3ZlcmZsb3c6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHdpZHRoOiAke3dpZHRofWAs
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke2ZhaWx9ICgke3V0aWxzLnBlcmNlbnQoZmFp
bCwgdG90YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIHRleHQ6IGAke2ZhaWx9ICgke3V0aWxzLnBlcmNlbnQoZmFpbCwgdG90YWxUZXN0
UmVzdWx0cyl9JSlgLAorICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ZCIsCiAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICBzdHlsZTogYGNv
bG9yOiBoc2woNDgsIDEwMCUsIDQwJSk7IG92ZXJmbG93OiB2aXNpYmxlOyB3aGl0ZS1zcGFjZTog
bm93cmFwOyB3aWR0aDogJHt3aWR0aH1gLAotICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHt0
aW1lb3V0fSAoJHt1dGlscy5wZXJjZW50KHRpbWVvdXQsIHRvdGFsVGVzdFJlc3VsdHMpfSUpYAot
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHt0aW1lb3V0
fSAoJHt1dGlscy5wZXJjZW50KAorICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsCisgICAg
ICAgICAgICAgICAgICAgICAgdG90YWxUZXN0UmVzdWx0cworICAgICAgICAgICAgICAgICAgICAp
fSUpYCwKKyAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGQiLAogICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiaGFzLXRl
eHQtaW5mbyIsCiAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBgb3ZlcmZsb3c6IHZpc2libGU7
IHdoaXRlLXNwYWNlOiBub3dyYXA7IHdpZHRoOiAke3dpZHRofWAsCi0gICAgICAgICAgICAgICAg
ICAgIHRleHQ6IGAke25vdFJ1bn0gKCR7dXRpbHMucGVyY2VudChub3RSdW4sIHRvdGFsVGVzdFJl
c3VsdHMpfSUpYAotICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXh0
OiBgJHtub3RSdW59ICgke3V0aWxzLnBlcmNlbnQoCisgICAgICAgICAgICAgICAgICAgICAgbm90
UnVuLAorICAgICAgICAgICAgICAgICAgICAgIHRvdGFsVGVzdFJlc3VsdHMKKyAgICAgICAgICAg
ICAgICAgICAgKX0lKWAsCisgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRkIiwKQEAg
LTExNzcsOCArMTE4NCw4IEBACiAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke2NvbXBsZXRl
fS8ke3RvdGFsfSAoJHt1dGlscy5wZXJjZW50KAogICAgICAgICAgICAgICAgICAgICAgIGNvbXBs
ZXRlLAogICAgICAgICAgICAgICAgICAgICAgIHRvdGFsCi0gICAgICAgICAgICAgICAgICAgICl9
JSlgCi0gICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICl9JSlgLAorICAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ZCIsCkBAIC0xMTkxLDMxICsxMTk4LDMyIEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiBpcy1kYXJrIGlz
LW91dGxpbmVkIGlzLXNtYWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jbGljazog
KCkgPT4gcmVzdWx0VWkuZG93bmxvYWRBcGlSZXN1bHRKc29uKGFwaSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRleHQ6ICJqc29uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0
bGU6IGBEb3dubG9hZCByZXN1bHRzIG9mICR7YXBpfSBBUEkgYXMgSlNPTiBmaWxlLmAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBE
b3dubG9hZCByZXN1bHRzIG9mICR7YXBpfSBBUEkgYXMgSlNPTiBmaWxlLmAsCisgICAgICAgICAg
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0VWkuc3RhdGUucmVwb3J0c0VuYWJsZWQgPwotICAgICAgICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogIWlzRG9uZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgb25jbGljazogKCkgPT4gcmVzdWx0VWkub3Blbkh0bWxSZXBvcnQoYXBp
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogInJlcG9ydCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpdGxlOiBgU2hvdyByZXN1bHRzIG9mICR7YXBpfSBBUEkgaW4gV1BU
IFJlcG9ydCBmb3JtYXQuYAotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgIH0gOiBudWxsCi0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHRVaS5zdGF0ZS5yZXBvcnRzRW5hYmxlZAorICAgICAgICAgICAgICAgICAg
ICAgICAgPyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJv
bCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiBpcy1kYXJrIGlzLW91dGxpbmVk
IGlzLXNtYWxsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhaXNE
b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jbGljazogKCkgPT4gcmVzdWx0
VWkub3Blbkh0bWxSZXBvcnQoYXBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHQ6ICJyZXBvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBTaG93
IHJlc3VsdHMgb2YgJHthcGl9IEFQSSBpbiBXUFQgUmVwb3J0IGZvcm1hdC5gLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDogbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgIH0pOwogCiAgICAgICAgICAgY29uc3QgeyBwYXNzLCBm
YWlsLCB0aW1lb3V0LCBub3RfcnVuLCBjb21wbGV0ZSwgdG90YWwgfSA9IGFwaXMucmVkdWNlKAog
ICAgICAgICAgICAgKHN1bSwgYXBpKSA9PiB7CiAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHN1
bSkuZm9yRWFjaCgKLSAgICAgICAgICAgICAgICBrZXkgPT4gKHN1bVtrZXldICs9IHJlc3VsdHNb
YXBpXVtrZXldID8gcmVzdWx0c1thcGldW2tleV0gOiAwKQorICAgICAgICAgICAgICAgIChrZXkp
ID0+IChzdW1ba2V5XSArPSByZXN1bHRzW2FwaV1ba2V5XSA/IHJlc3VsdHNbYXBpXVtrZXldIDog
MCkKICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAg
ICAgIH0sCkBAIC0xMjM0LDMxICsxMjQyLDQzIEBACiAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJ0aCIsCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAg
ICAgICAgICAgc3R5bGU6IGBjb2xvcjogaHNsKDE0MSwgNzElLCAzOCUpOyBvdmVyZmxvdzogdmlz
aWJsZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgd2lkdGg6ICR7d2lkdGh9YCwKLSAgICAgICAgICAg
ICAgICAgICAgICB0ZXh0OiBgJHtwYXNzfSAoJHt1dGlscy5wZXJjZW50KHBhc3MsIHRvdGFsVGVz
dFJlc3VsdHMpfSUpYAotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgdGV4dDogYCR7cGFzc30gKCR7dXRpbHMucGVyY2VudCgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbFRlc3RSZXN1bHRzCisgICAg
ICAgICAgICAgICAgICAgICAgKX0lKWAsCisgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBl
bGVtZW50OiAidGgiLAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAg
ICAgICAgICAgICAgIHN0eWxlOiBgb3ZlcmZsb3c6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3dy
YXA7IHdpZHRoOiAke3dpZHRofWAsCiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
aGFzLXRleHQtZGFuZ2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHtmYWlsfSAo
JHt1dGlscy5wZXJjZW50KGZhaWwsIHRvdGFsVGVzdFJlc3VsdHMpfSUpYAotICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7ZmFpbH0gKCR7dXRpbHMu
cGVyY2VudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwsCisgICAgICAgICAgICAgICAg
ICAgICAgICB0b3RhbFRlc3RSZXN1bHRzCisgICAgICAgICAgICAgICAgICAgICAgKX0lKWAsCisg
ICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGgiLAogICAgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBgY29sb3I6
IGhzbCg0OCwgMTAwJSwgNDAlKTsgb3ZlcmZsb3c6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3dy
YXA7IHdpZHRoOiAke3dpZHRofWAsCi0gICAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7dGlt
ZW91dH0gKCR7dXRpbHMucGVyY2VudCh0aW1lb3V0LCB0b3RhbFRlc3RSZXN1bHRzKX0lKWAKLSAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke3RpbWVv
dXR9ICgke3V0aWxzLnBlcmNlbnQoCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxUZXN0UmVzdWx0cworICAgICAgICAgICAgICAg
ICAgICAgICl9JSlgLAorICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRo
IiwKICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAg
ICBzdHlsZTogYG92ZXJmbG93OiB2aXNpYmxlOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB3aWR0aDog
JHt3aWR0aH1gLAogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImhhcy10ZXh0LWlu
Zm8iLAotICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke25vdF9ydW59ICgke3V0aWxzLnBl
cmNlbnQobm90X3J1biwgdG90YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHtub3RfcnVufSAoJHt1dGlscy5wZXJj
ZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgbm90X3J1biwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRvdGFsVGVzdFJlc3VsdHMKKyAgICAgICAgICAgICAgICAgICAgICApfSUpYCwKKyAg
ICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0aCIsCkBAIC0xMjY3LDEzICsx
Mjg3LDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7Y29tcGxldGV9LyR7dG90
YWx9ICgke3V0aWxzLnBlcmNlbnQoCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsCi0gICAgICAgICAgICAgICAgICAgICAgKX0l
KWAKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICl9JSlgLAor
ICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgIHsgZWxlbWVudDogInRoIiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0aCIgfSwK
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAg
ICAgICAgICB9KTsKIAogICAgICAgICAgIGNvbnN0IHJlc3VsdHNUYWJsZSA9IFVJLmNyZWF0ZUVs
ZW1lbnQoewpAQCAtMTI4Niw4ICsxMzA2LDggQEAKICAgICAgICAgICAgICAgaWQ6ICJyZXN1bHRz
LXRhYmxlIiwKICAgICAgICAgICAgICAgc3R5bGU6CiAgICAgICAgICAgICAgICAgIndpZHRoOiAx
MDAlOyBtaW4td2lkdGg6IDMwZW07IGJvcmRlci1yYWRpdXM6IDNweDsgYm9yZGVyOiAycHggc29s
aWQgaHNsKDAsIDAlLCA4NiUpOyIsCi0gICAgICAgICAgICAgIGNoaWxkcmVuOiBbaGVhZGVyLCB7
IGVsZW1lbnQ6ICJ0Ym9keSIsIGNoaWxkcmVuOiByb3dzIH0sIGZvb3Rlcl0KLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgY2hpbGRyZW46IFtoZWFkZXIsIHsgZWxlbWVudDogInRib2R5Iiwg
Y2hpbGRyZW46IHJvd3MgfSwgZm9vdGVyXSwKKyAgICAgICAgICAgIH0sCiAgICAgICAgICAgfSk7
CiAgICAgICAgICAgYXBpUmVzdWx0c1ZpZXcuYXBwZW5kQ2hpbGQocmVzdWx0c1RhYmxlKTsKIApA
QCAtMTMwOCw3ICsxMzI4LDcgQEAKIAogICAgICAgICAgIGNvbnN0IGhlYWRpbmcgPSBVSS5jcmVh
dGVFbGVtZW50KHsKICAgICAgICAgICAgIGNsYXNzTmFtZTogInRpdGxlIGlzLTQiLAotICAgICAg
ICAgICAgdGV4dDogIkV4cG9ydCIKKyAgICAgICAgICAgIHRleHQ6ICJFeHBvcnQiLAogICAgICAg
ICAgIH0pOwogICAgICAgICAgIGV4cG9ydEVsZW1lbnQuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAK
QEAgLTEzMTcsNyArMTMzNyw3IEBACiAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlJlc3VsdHMi
IH0KKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6
ICJSZXN1bHRzIiB9LAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC0xMzI4LDcgKzEzNDgsNyBAQAog
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
Y29sdW1uIGlzLTkiLAogICAgICAgICAgICAgICAgICAgICAgIHRleHQ6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAiRG93bmxvYWQgcmVzdWx0cyBmb3IgaW1wb3J0IGludG8gb3RoZXIgV01BUyBU
ZXN0IFN1aXRlIGluc3RhbmNlcy4iCisgICAgICAgICAgICAgICAgICAgICAgICAiRG93bmxvYWQg
cmVzdWx0cyBmb3IgaW1wb3J0IGludG8gb3RoZXIgV01BUyBUZXN0IFN1aXRlIGluc3RhbmNlcy4i
LAogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29sdW1uIGlzLTMiLApAQCAtMTM0MywxNyArMTM2
MywxNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImljb24iLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzc05hbWU6ICJmYXMgZmEtZmlsZS1hcmNoaXZlIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBm
YS1maWxlLWFyY2hpdmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVu
dDogInNwYW4iLCB0ZXh0OiAiRG93bmxvYWQgWmlwIiB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBdCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVudDogInNwYW4iLCB0
ZXh0OiAiRG93bmxvYWQgWmlwIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBleHBvcnRFbGVtZW50LmFwcGVuZENoaWxk
KHJlc3VsdHNGaWVsZCk7CiAKQEAgLTEzNjQsOCArMTM4NCw4IEBACiAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAogICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJsYWJlbCIsCi0gICAgICAgICAgICAgICAgICB0
ZXh0OiAiQWxsIEpTT04gRmlsZXMiCi0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgdGV4dDogIkFsbCBKU09OIEZpbGVzIiwKKyAgICAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQtYm9keSIsCkBAIC0xMzc2LDcgKzEzOTYsNyBAQAogICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29sdW1uIGlzLTkiLAogICAgICAgICAg
ICAgICAgICAgICAgIHRleHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAiRG93bmxvYWQgSlNP
TiBmaWxlcyBjb250YWluaW5nIHJlc3VsdHMgb2YgY29tcGxldGVkIHRlc3QgZmlsZXMuIgorICAg
ICAgICAgICAgICAgICAgICAgICAgIkRvd25sb2FkIEpTT04gZmlsZXMgY29udGFpbmluZyByZXN1
bHRzIG9mIGNvbXBsZXRlZCB0ZXN0IGZpbGVzLiIsCiAgICAgICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJj
b2x1bW4gaXMtMyIsCkBAIC0xMzkwLDE3ICsxNDEwLDE3IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1maWxlLWFy
Y2hpdmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLWZpbGUtYXJjaGl2ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAic3BhbiIsIHRleHQ6ICJEb3dubG9hZCBa
aXAiIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyBlbGVtZW50OiAic3BhbiIsIHRleHQ6ICJEb3dubG9hZCBaaXAiIH0sCisgICAg
ICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAg
ICAgIGV4cG9ydEVsZW1lbnQuYXBwZW5kQ2hpbGQoanNvbkZpZWxkKTsKIApAQCAtMTQxMSw4ICsx
NDMxLDggQEAKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCiAgICAg
ICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImxh
YmVsIiwKLSAgICAgICAgICAgICAgICAgIHRleHQ6ICJTZXNzaW9uIHJlc3VsdCBIVE1MIgotICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHRleHQ6ICJTZXNzaW9uIHJlc3VsdCBI
VE1MIiwKKyAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC0xNDIzLDcg
KzE0NDMsNyBAQAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiY29sdW1uIGlzLTkiLAogICAgICAgICAgICAgICAgICAgICAgIHRleHQ6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAiRG93bmxvYWQgdGhpcyBzZXNzaW9ucyByZXN1bHQgYXMg
c3RhbmRhbG9uZSBIVE1MIHBhZ2UsIHNpbWlsYXIgdG8gdGhpcyBwYWdlLiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJEb3dubG9hZCB0aGlzIHNlc3Npb25zIHJlc3VsdCBhcyBzdGFuZGFsb25l
IEhUTUwgcGFnZSwgc2ltaWxhciB0byB0aGlzIHBhZ2UuIiwKICAgICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImNvbHVtbiBpcy0zIiwKQEAgLTE0MzcsMTcgKzE0NTcsMTcgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29uIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
ImkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLWNv
ZGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLWNvZGUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgZWxlbWVudDogInNwYW4iLCB0ZXh0OiAiRG93bmxvYWQgSFRNTCIgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgICB7
IGVsZW1lbnQ6ICJzcGFuIiwgdGV4dDogIkRvd25sb2FkIEhUTUwiIH0sCisgICAgICAgICAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIGV4cG9y
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoaHRtbEZpZWxkKTsKICAgICAgICAgfSwKQEAgLTE0NTUsNyAr
MTQ3NSw3IEBACiAgICAgICAgICAgY29uc3QgbWFsZnVuY3Rpb25pbmdUZXN0c1ZpZXcgPSBVSS5j
cmVhdGVFbGVtZW50KHt9KTsKICAgICAgICAgICBjb25zdCBoZWFkaW5nID0gVUkuY3JlYXRlRWxl
bWVudCh7CiAgICAgICAgICAgICBjbGFzc05hbWU6ICJ0aXRsZSBpcy00IiwKLSAgICAgICAgICAg
IHRleHQ6ICJNYWxmdW5jdGlvbmluZyBUZXN0cyIKKyAgICAgICAgICAgIHRleHQ6ICJNYWxmdW5j
dGlvbmluZyBUZXN0cyIsCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgbWFsZnVuY3Rpb25pbmdU
ZXN0c1ZpZXcuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAKQEAgLTE0NzIsMTQgKzE0OTIsMTQgQEAK
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRyIiwKICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6
ICJUZXN0IEZpbGUiIH0sCi0gICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAidGQiLCB0
ZXh0OiAiIiB9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAidGQiLCB0
ZXh0OiAiIiB9LAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgZWxlbWVudDogInRib2R5IiwKLSAgICAgICAgICAgICAgICBjaGlsZHJl
bjogbWFsZnVuY3Rpb25pbmdUZXN0cy5tYXAocGF0aCA9PiAoeworICAgICAgICAgICAgICAgIGNo
aWxkcmVuOiBtYWxmdW5jdGlvbmluZ1Rlc3RzLm1hcCgocGF0aCkgPT4gKHsKICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJ0ciIsCiAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAg
ICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6IHBhdGggfSwKQEAgLTE1MDAs
MTcgKzE1MjAsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46
IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtdHJhc2gtYWx0IgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfSkpCi0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImZhcyBmYS10cmFzaC1hbHQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0pKSwKKyAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgaWYgKG1hbGZ1bmN0
aW9uaW5nVGVzdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgbWFsZnVuY3Rpb25pbmdUZXN0
c1ZpZXcuYXBwZW5kQ2hpbGQoCkBAIC0xNTE4LDEzICsxNTM4LDEzIEBACiAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiY29udGFpbmVyIiwKICAgICAgICAgICAgICAgICBzdHlsZTogIm92ZXJm
bG93LXg6IGF1dG8iLAogICAgICAgICAgICAgICAgIGlkOiAibWFsZnVuY3Rpb25pbmctb3ZlcmZs
b3ciLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0ZXN0c1RhYmxlCisgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IHRlc3RzVGFibGUsCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAp
OwogICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjb25zdCBub1Rlc3RzTGFiZWwgPSBV
SS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICAgdGV4dDogIi0gTm8gVGVzdHMgQXZhaWxh
YmxlIC0iLAotICAgICAgICAgICAgICBzdHlsZTogInRleHQtYWxpZ246IGNlbnRlciIKKyAgICAg
ICAgICAgICAgc3R5bGU6ICJ0ZXh0LWFsaWduOiBjZW50ZXIiLAogICAgICAgICAgICAgfSk7CiAg
ICAgICAgICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzVmlldy5hcHBlbmRDaGlsZChub1Rlc3RzTGFi
ZWwpOwogICAgICAgICAgIH0KQEAgLTE1MzgsNyArMTU1OCw3IEBACiAgICAgICAgICAgbWFsZnVu
Y3Rpb25pbmdUZXN0c0VsZW1lbnQuYXBwZW5kQ2hpbGQobWFsZnVuY3Rpb25pbmdUZXN0c1ZpZXcp
OwogCiAgICAgICAgICAgVUkubG9hZFNjcm9sbFBvc2l0aW9uKCJtYWxmdW5jdGlvbmluZy1vdmVy
ZmxvdyIpOwotICAgICAgICB9CisgICAgICAgIH0sCiAgICAgICB9OwogICAgIDwvc2NyaXB0Pgog
ICA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3N1Ym1pdHJlc3VsdC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9zdWJtaXRyZXN1
bHQuaHRtbAppbmRleCAwMDBjNWExMjA4YTYyYTI1NTg5MDM3ZDhiNWU5OTY0NDVlMjFjZjM5Li4w
N2U5ZjM1MjM1MDE2YmE0MWJkNTk5ZDVlZWQwMzg4Mjc4ZDI3ZWUxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3N1
Ym1pdHJlc3VsdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvc3VibWl0cmVzdWx0Lmh0bWwKQEAgLTUwLDcgKzUwLDYg
QEAKICAgICAgIHZhciByZXN1bHREYXRhOwogICAgICAgdmFyIHJhd1Jlc3VsdCA9IHBhcnNlZFF1
ZXJ5LnJlc3VsdDsKICAgICAgIGlmIChyYXdSZXN1bHQpIHsKLQljb25zb2xlLmxvZyhkZWNvZGVV
UklDb21wb25lbnQocmF3UmVzdWx0KSk7CiAgICAgICAgIHJlc3VsdERhdGEgPSBKU09OLnBhcnNl
KGRlY29kZVVSSUNvbXBvbmVudChyYXdSZXN1bHQpKTsKICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy90ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvd3d3L3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDZiMThmZWY2ZDYwMTA2NGI0
ZjQwMmI2ZjllZjhkZmY4MWZiZDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy90ZXN0Lmh0bWwKQEAg
LTAsMCArMSwxNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KKyAgICA8dGl0bGU+Q3JlYXRpbmcgU2Vz
c2lvbiAtIFdlYiBQbGF0Zm9ybSBUZXN0czwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJjc3MvYnVsbWEtMC43LjUvYnVsbWEubWluLmNzcyIgLz4KKyAgICA8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9zdHlsZS5jc3MiIC8+CisgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJjc3MvbWFpbi5jc3MiIC8+CisgICAgPHNjcmlwdCBzcmM9ImxpYi93
YXZlLXNlcnZpY2UuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICNjb25zb2xlIHsK
KyAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICAgIH0KKyAgICAgIC5zcGlubmVy
IHsKKyAgICAgICAgaGVpZ2h0OiAwLjdlbTsKKyAgICAgICAgd2lkdGg6IDAuN2VtOworICAgICAg
fQorICAgICAgLmZhLXB1bHNlIHsKKyAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IGZhLXNwaW4g
MXMgc3RlcHMoOCkgaW5maW5pdGU7CisgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAxcyBzdGVw
cyg4KSBpbmZpbml0ZTsKKyAgICAgIH0KKyAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBmYS1zcGlu
IHsKKyAgICAgICAgMCUgeworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRl
Zyk7CisgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CisgICAgICAgIH0KKyAgICAg
ICAgdG8geworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOworICAg
ICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsKKyAgICAgICAgfQorICAgICAgfQorICAg
ICAgQGtleWZyYW1lcyBmYS1zcGluIHsKKyAgICAgICAgMCUgeworICAgICAgICAgIC13ZWJraXQt
dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CisgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRl
Zyk7CisgICAgICAgIH0KKyAgICAgICAgdG8geworICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiByb3RhdGUoMXR1cm4pOworICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsKKyAg
ICAgICAgfQorICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNlY3Rpb24gY2xhc3M9InNlY3Rpb24iPgorICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4K
KyAgICAgICAgPGltZyBzcmM9InJlcy93YXZlbG9nb18yMDE2LmpwZyIgYWx0PSJXQVZFIExvZ28i
IGNsYXNzPSJzaXRlLWxvZ28iIC8+CisKKyAgICAgICAgPGgxIGNsYXNzPSJ0aXRsZSBpcy1zcGFj
ZWQiPgorICAgICAgICAgIDxzcGFuPgorICAgICAgICAgICAgPGltZyBzcmM9InJlcy9zcGlubmVy
LXNvbGlkLnN2ZyIgY2xhc3M9InNwaW5uZXIgZmEtcHVsc2UiIC8+CisgICAgICAgICAgPC9zcGFu
PgorICAgICAgICAgIENyZWF0aW5nIFNlc3Npb24KKyAgICAgICAgPC9oMT4KKyAgICAgICAgPGRp
diBpZD0iY29udGVudCI+CisgICAgICAgICAgPGRpdiBpZD0iZGV0YWlscy13cmFwcGVyIj4KKyAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImRldGFpbCI+CisgICAgICAgICAgICAgIDxkaXY+UmVmZXJl
bmNlIFRva2Vuczo8L2Rpdj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0icmVmZXJlbmNlLXRva2Vu
cyI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRl
dGFpbCI+CisgICAgICAgICAgICAgIDxkaXY+VGVzdCBQYXRoczo8L2Rpdj4KKyAgICAgICAgICAg
ICAgPGRpdiBpZD0idGVzdC1wYXRoIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorCisgICAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAg
IDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9zZWN0aW9uPgorICAgIDxzY3JpcHQ+CisgICAg
ICB2YXIgc2NyZWVuQ29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7
CisgICAgICB2YXIgbG9nID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB0ZXh0ID0gIiI7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgdGV4dCArPSBhcmd1bWVudHNbaV0gKyAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGV4
dCA9IHRleHQucmVwbGFjZSgvIC9nbSwgIiZuYnNwOyIpOworICAgICAgICB0ZXh0ID0gdGV4dC5y
ZXBsYWNlKC9cbi9nbSwgIjxici8+Iik7CisgICAgICAgIHNjcmVlbkNvbnNvbGUuaW5uZXJIVE1M
ICs9ICI8YnIvPiIgKyB0ZXh0OworICAgICAgfTsKKworICAgICAgd2luZG93Lm9uZXJyb3IgPSBm
dW5jdGlvbihlcnJvcikgeworICAgICAgICBsb2coZXJyb3IpOworICAgICAgfTsKKworICAgICAg
dmFyIEhPU1ROQU1FID0gbG9jYXRpb24uaG9zdG5hbWU7CisgICAgICB2YXIgUE9SVCA9IGxvY2F0
aW9uLnBvcnQ7CisgICAgICB2YXIgUFJPVE9DT0wgPSBsb2NhdGlvbi5wcm90b2NvbC5yZXBsYWNl
KC86LywgIiIpOworICAgICAgdmFyIFFVRVJZID0gZGVjb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9u
LnNlYXJjaC5yZXBsYWNlKC9cPy8sICIiKSk7CisgICAgICB2YXIgbWF0Y2ggPSBRVUVSWS5tYXRj
aCgvdG9rZW49KFteJl0rKS8pOworICAgICAgdmFyIFRPS0VOID0gbWF0Y2ggPyBtYXRjaFsxXSA6
IG51bGw7CisgICAgICBRVUVSWSArPSAvW1w/Jl1wYXRoPS8udGVzdChsb2NhdGlvbi5zZWFyY2gp
ID8gIiIgOiAiJnJlc3VtZT0xIjsKKworICAgICAgdmFyIHBhcnNlZFF1ZXJ5ID0ge307CisKKyAg
ICAgIHZhciBwYXJ0cyA9IFFVRVJZLnNwbGl0KCImIik7CisgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07Cisg
ICAgICAgIHZhciBrZXkgPSBwYXJ0LnNwbGl0KCI9IilbMF07CisgICAgICAgIHZhciB2YWx1ZSA9
IHBhcnQuc3BsaXQoIj0iKVsxXTsKKyAgICAgICAgcGFyc2VkUXVlcnlba2V5XSA9IHZhbHVlOwor
ICAgICAgfQorCisgICAgICB2YXIgaW5jbHVkZWRUZXN0cyA9IFtdOworICAgICAgdmFyIHBhdGhz
ID0gcGFyc2VkUXVlcnlbInBhdGgiXS5zcGxpdCgiLCIpOworICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBwYXRocy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2ldOwor
ICAgICAgICBpbmNsdWRlZFRlc3RzLnB1c2gocGF0aC50cmltKCkpOworICAgICAgfQorCisgICAg
ICB2YXIgZXhjbHVkZWRUZXN0cyA9IFsKKyAgICAgICAgIi9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L25vLWFjdGl2ZS1z
Y3JpcHQtbWFudWFsLWNsYXNzaWMuaHRtbCIsCisgICAgICAgICIvaHRtbC9zZW1hbnRpY3Mvc2Ny
aXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9keW5hbWljLWltcG9ydC9uby1hY3Rp
dmUtc2NyaXB0LW1hbnVhbC1tb2R1bGUuaHRtbCIKKyAgICAgIF07CisKKyAgICAgIHZhciByZWZl
cmVuY2VUb2tlbnMgPSBbXTsKKyAgICAgIGlmIChwYXJzZWRRdWVyeVsicmVmdG9rZW4iXSkgewor
ICAgICAgICB2YXIgcGF0aHMgPSBwYXJzZWRRdWVyeVsicmVmdG9rZW4iXS5zcGxpdCgiLCIpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGhzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgdmFyIHBhdGggPSBwYXRoc1tpXTsKKyAgICAgICAgICByZWZlcmVuY2VUb2tlbnMucHVzaChw
YXRoLnRyaW0oKSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgdmFyIHRlc3RQYXRoID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtcGF0aCIpOworICAgICAgdmFyIHBhdGhzID0g
aW5jbHVkZWRUZXN0czsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgdmFyIHBhdGggPSBwYXRoc1tpXTsKKyAgICAgICAgdGVzdFBhdGguaW5u
ZXJUZXh0ICs9IHBhdGggKyAiXG4iOworICAgICAgfQorICAgICAgdmFyIHJlZmVyZW5jZVRva2Vu
c0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlLXRva2VucyIpOwor
ICAgICAgaWYgKHJlZmVyZW5jZVRva2Vucy5sZW5ndGggPT09IDApIHsKKyAgICAgICAgcmVmZXJl
bmNlVG9rZW5zRWxlbWVudC5pbm5lclRleHQgPSAibm9uZSI7CisgICAgICB9IGVsc2UgeworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlZmVyZW5jZVRva2Vucy5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgIHZhciB0b2tlbiA9IHJlZmVyZW5jZVRva2Vuc1tpXTsKKyAgICAgICAgICByZWZl
cmVuY2VUb2tlbnNFbGVtZW50LmlubmVyVGV4dCArPSB0b2tlbiArICJcbiI7CisgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIGxvZygiUGxlYXNlIHdhaXQgLi4uIik7CisgICAgICBXYXZlU2Vydmlj
ZS5jcmVhdGVTZXNzaW9uKAorICAgICAgICB7CisgICAgICAgICAgdGVzdHM6IHsgaW5jbHVkZTog
aW5jbHVkZWRUZXN0cywgZXhjbHVkZTogZXhjbHVkZWRUZXN0cyB9LAorICAgICAgICAgIHJlZmVy
ZW5jZVRva2VuczogcmVmZXJlbmNlVG9rZW5zCisgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9u
KHRva2VuKSB7CisgICAgICAgICAgbG9nKCJTZXNzaW9uIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5ISBU
b2tlbjogIiArIHRva2VuKTsKKyAgICAgICAgICBsb2coIlJlZGlyZWN0aW5nIC4uLiIpOworICAg
ICAgICAgIGxvY2F0aW9uLmhyZWYgPSAiL25ld3Nlc3Npb24uaHRtbD90b2tlbj0iICsgdG9rZW47
CisgICAgICAgIH0KKyAgICAgICk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS93d3cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjJiMDE1YTAxZWRhNWJjNDc1NzYwOGMwYzc3ZmM1OWZh
NzM2NGE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3
L2NvbXBhcmlzb24uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS93d3cvY29uZmlndXJhdGlvbi5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9mYXZpY29uLmljbwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvZmluaXNoLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L2luZGV4Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L25ld3Nlc3Npb24uaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbmV4
dC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3d3dy9vdmVydmlldy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9wYXVzZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9yZXN1bHRzLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3N1Ym1pdHJlc3VsdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3d3dy93ZWJmb250cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDc2OTRkNGZkODFmNjI4ZWYzOTgxZWExZTAyZGQ2MDMzMjIwODNhNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250
cy9mYS1icmFuZHMtNDAwLmVvdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC5zdmcKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dl
YmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZjIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLXJlZ3VsYXIt
NDAwLmVvdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtcmVndWxhci00MDAuc3ZnCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250cy9mYS1y
ZWd1bGFyLTQwMC50dGYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZv
bnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250cy9mYS1zb2xpZC05MDAuZW90Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250cy9mYS1zb2xpZC05MDAudHRm
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3d3dy93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtc29saWQtOTAw
LndvZmYyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvLmdpdGlnbm9yZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lODQxM2UwZWU0NTVhZGM1NDgwMDk4MzIwZDI1NGZiOWM1Y2VkOTAzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKK3dlYmRyaXZlci5lZ2ctaW5m
by8KKyoucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTVkYmM3MzJlZmQ3OGM0Nzc2Y2Jk
NDZlN2VjNjM0YzFiZWViOTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2ViZHJpdmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci9iaWRpL2NsaWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQppbmRl
eCA4ZGEwNjAxOTNhZGU5MzNlNWRhYmFkZTFmN2FkZTY5MTBjMDA4NzdhLi5kYjgxOTE3ZmY4MTQ4
YjVlOGYxOWJhYTU0YWVhZWRkN2Q0MDQyMDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlk
aS9jbGllbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5CkBAIC0xLDI2ICsx
LDExIEBACiBpbXBvcnQgYXN5bmNpbwotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0IGpzb24KLWlt
cG9ydCBsb2dnaW5nCi1pbXBvcnQgc3lzCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0
ZGljdAotZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQXdhaXRhYmxlLCBDYWxsYWJsZSwgQ29yb3V0
aW5lLCBMaXN0LCBPcHRpb25hbCwgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcKK2Zyb20gdHlwaW5n
IGltcG9ydCBBbnksIEF3YWl0YWJsZSwgQ2FsbGFibGUsIExpc3QsIE9wdGlvbmFsLCBNYXBwaW5n
LCBNdXRhYmxlTWFwcGluZwogZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHBh
cnNlCiAKLWltcG9ydCB3ZWJzb2NrZXRzCi0KK2Zyb20gLiBpbXBvcnQgbW9kdWxlcwogZnJvbSAu
ZXJyb3IgaW1wb3J0IGZyb21fZXJyb3JfZGV0YWlscwotCi1sb2dnZXIgPSBsb2dnaW5nLmdldExv
Z2dlcigid2ViZHJpdmVyLmJpZGkiKQotCi0KLWRlZiBnZXRfcnVubmluZ19sb29wKCkgLT4gYXN5
bmNpby5BYnN0cmFjdEV2ZW50TG9vcDoKLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA3
KToKLSAgICAgICAgcmV0dXJuIGFzeW5jaW8uZ2V0X3J1bm5pbmdfbG9vcCgpCi0gICAgIyBVbmxp
a2UgdGhlIGFib3ZlLCB0aGlzIHdpbGwgYWN0dWFsbHkgY3JlYXRlIGFuIGV2ZW50IGxvb3AKLSAg
ICAjIGlmIHRoZXJlIGlzbid0IG9uZTsgaG9wZWZ1bGx5IHJ1bm5pbmcgdGVzdHMgaW4gUHl0aG9u
ID49IDMuNwotICAgICMgd2lsbCBhbGxvdyB1cyB0byBjYXRjaCBhbnkgYmVoYXZpb3VyIGRpZmZl
cmVuY2UKLSAgICByZXR1cm4gYXN5bmNpby5nZXRfZXZlbnRfbG9vcCgpCitmcm9tIC50cmFuc3Bv
cnQgaW1wb3J0IGdldF9ydW5uaW5nX2xvb3AsIFRyYW5zcG9ydAogCiAKIGNsYXNzIEJpZGlTZXNz
aW9uOgpAQCAtOTYsMTEgKzgxLDE0IEBAIGNsYXNzIEJpZGlTZXNzaW9uOgogCiAgICAgICAgIHNl
bGYuY29tbWFuZF9pZCA9IDAKICAgICAgICAgc2VsZi5wZW5kaW5nX2NvbW1hbmRzOiBNdXRhYmxl
TWFwcGluZ1tpbnQsICJhc3luY2lvLkZ1dHVyZVtBbnldIl0gPSB7fQotICAgICAgICBzZWxmLmV2
ZW50X2xpc3RlbmVyczogTXV0YWJsZU1hcHBpbmdbT3B0aW9uYWxbc3RyXSwgTGlzdFtDYWxsYWJs
ZVtbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV0sIEFueV1dXSA9IGRlZmF1bHRkaWN0KGxpc3QpCisg
ICAgICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFwcGluZ1sKKyAgICAgICAgICAg
IE9wdGlvbmFsW3N0cl0sCisgICAgICAgICAgICBMaXN0W0NhbGxhYmxlW1tzdHIsIE1hcHBpbmdb
c3RyLCBBbnldXSwgQW55XV0KKyAgICAgICAgXSA9IGRlZmF1bHRkaWN0KGxpc3QpCiAKICAgICAg
ICAgIyBNb2R1bGVzLgogICAgICAgICAjIEZvciBlYWNoIG1vZHVsZSwgaGF2ZSBhIHByb3BlcnR5
IHJlcHJlc2VudGluZyB0aGF0IG1vZHVsZQotICAgICAgICBzZWxmLnNlc3Npb24gPSBTZXNzaW9u
KHNlbGYpCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IG1vZHVsZXMuU2Vzc2lvbihzZWxmKQogCiAg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21faHR0cChjbHMsCkBAIC0xNDMsMTEgKzEzMSwx
NiBAQCBjbGFzcyBCaWRpU2Vzc2lvbjoKICAgICAgICAgc2VsZi50cmFuc3BvcnQgPSBUcmFuc3Bv
cnQoc2VsZi53ZWJzb2NrZXRfdXJsLCBzZWxmLm9uX21lc3NhZ2UsIGxvb3A9bG9vcCkKIAogICAg
ICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuc2Vzc2lv
bl9pZCwgc2VsZi5jYXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxmLnNlc3Npb24ubmV3KHNlbGYucmVx
dWVzdGVkX2NhcGFiaWxpdGllcykKKyAgICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCwgc2VsZi5j
YXBhYmlsaXRpZXMgPSBhd2FpdCBzZWxmLnNlc3Npb24ubmV3KAorICAgICAgICAgICAgICAgIHNl
bGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcykKIAogICAgICAgICBhd2FpdCBzZWxmLnRyYW5zcG9y
dC5zdGFydCgpCiAKLSAgICBhc3luYyBkZWYgc2VuZF9jb21tYW5kKHNlbGYsIG1ldGhvZDogc3Ry
LCBwYXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBBd2FpdGFibGVbTWFwcGluZ1tzdHIsIEFu
eV1dOgorICAgIGFzeW5jIGRlZiBzZW5kX2NvbW1hbmQoCisgICAgICAgIHNlbGYsCisgICAgICAg
IG1ldGhvZDogc3RyLAorICAgICAgICBwYXJhbXM6IE1hcHBpbmdbc3RyLCBBbnldCisgICAgKSAt
PiBBd2FpdGFibGVbTWFwcGluZ1tzdHIsIEFueV1dOgogICAgICAgICAiIiJTZW5kIGEgY29tbWFu
ZCB0byB0aGUgcmVtb3RlIHNlcnZlciIiIgogICAgICAgICAjIHRoaXMgaXNuJ3QgdGhyZWFkc2Fm
ZQogICAgICAgICBzZWxmLmNvbW1hbmRfaWQgKz0gMQpAQCAtMTg2LDExICsxNzksMTMgQEAgY2xh
c3MgQmlkaVNlc3Npb246CiAgICAgICAgIGVsaWYgIm1ldGhvZCIgaW4gZGF0YSBhbmQgInBhcmFt
cyIgaW4gZGF0YToKICAgICAgICAgICAgICMgVGhpcyBpcyBhbiBldmVudAogICAgICAgICAgICAg
bWV0aG9kID0gZGF0YVsibWV0aG9kIl0KKyAgICAgICAgICAgIHBhcmFtcyA9IGRhdGFbInBhcmFt
cyJdCisKICAgICAgICAgICAgIGxpc3RlbmVycyA9IHNlbGYuZXZlbnRfbGlzdGVuZXJzLmdldCht
ZXRob2QsIFtdKQogICAgICAgICAgICAgaWYgbm90IGxpc3RlbmVyczoKICAgICAgICAgICAgICAg
ICBsaXN0ZW5lcnMgPSBzZWxmLmV2ZW50X2xpc3RlbmVycy5nZXQoTm9uZSwgW10pCiAgICAgICAg
ICAgICBmb3IgbGlzdGVuZXIgaW4gbGlzdGVuZXJzOgotICAgICAgICAgICAgICAgIGF3YWl0IGxp
c3RlbmVyKG1ldGhvZCwgZGF0YVsicGFyYW1zIl0pCisgICAgICAgICAgICAgICAgYXdhaXQgbGlz
dGVuZXIobWV0aG9kLCBwYXJhbXMpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKGYiVW5leHBlY3RlZCBtZXNzYWdlOiB7ZGF0YSFyfSIpCiAKQEAgLTIwMCwxMCAr
MTk1LDExIEBAIGNsYXNzIEJpZGlTZXNzaW9uOgogICAgICAgICBhd2FpdCBzZWxmLnRyYW5zcG9y
dC5lbmQoKQogICAgICAgICBzZWxmLnRyYW5zcG9ydCA9IE5vbmUKIAotICAgIGRlZiBhZGRfZXZl
bnRfbGlzdGVuZXIoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IE9wdGlv
bmFsW3N0cl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmbjogQ2FsbGFibGVbW3N0ciwg
TWFwcGluZ1tzdHIsIEFueV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgQXdhaXRhYmxl
W0FueV1dKSAtPiBDYWxsYWJsZVtbXSwgTm9uZV06CisgICAgZGVmIGFkZF9ldmVudF9saXN0ZW5l
cigKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbmFtZTogT3B0aW9uYWxbc3RyXSwKKyAgICAgICAg
Zm46IENhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXSwgQXdhaXRhYmxlW0FueV1dCisg
ICAgKSAtPiBDYWxsYWJsZVtbXSwgTm9uZV06CiAgICAgICAgICIiIkFkZCBhIGxpc3RlbmVyIGZv
ciB0aGUgZXZlbnQgd2l0aCBhIGdpdmVuIG5hbWUuCiAKICAgICAgICAgSWYgbmFtZSBpcyBOb25l
LCB0aGUgbGlzdGVuZXIgaXMgY2FsbGVkIGZvciBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgbm90IG90
aGVyd2lzZQpAQCAtMjE3LDE3OCArMjEzLDMgQEAgY2xhc3MgQmlkaVNlc3Npb246CiAgICAgICAg
IHNlbGYuZXZlbnRfbGlzdGVuZXJzW25hbWVdLmFwcGVuZChmbikKIAogICAgICAgICByZXR1cm4g
bGFtYmRhOiBzZWxmLmV2ZW50X2xpc3RlbmVyc1tuYW1lXS5yZW1vdmUoZm4pCi0KLQotY2xhc3Mg
VHJhbnNwb3J0OgotICAgICIiIkxvdyBsZXZlbCBtZXNzYWdlIGhhbmRsZXIgZm9yIHRoZSBXZWJT
b2NrZXRzIGNvbm5lY3Rpb24iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsOiBzdHIsCi0g
ICAgICAgICAgICAgICAgIG1zZ19oYW5kbGVyOiBDYWxsYWJsZVtbTWFwcGluZ1tzdHIsIEFueV1d
LCBDb3JvdXRpbmVbQW55LCBBbnksIE5vbmVdXSwKLSAgICAgICAgICAgICAgICAgbG9vcDogT3B0
aW9uYWxbYXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcF0gPSBOb25lKToKLSAgICAgICAgc2VsZi51
cmwgPSB1cmwKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uOiBPcHRpb25hbFt3ZWJzb2NrZXRzLldl
YlNvY2tldENsaWVudFByb3RvY29sXSA9IE5vbmUKLSAgICAgICAgc2VsZi5tc2dfaGFuZGxlciA9
IG1zZ19oYW5kbGVyCi0gICAgICAgIHNlbGYuc2VuZF9idWY6IExpc3RbTWFwcGluZ1tzdHIsIEFu
eV1dID0gW10KLQotICAgICAgICBpZiBsb29wIGlzIE5vbmU6Ci0gICAgICAgICAgICBsb29wID0g
Z2V0X3J1bm5pbmdfbG9vcCgpCi0gICAgICAgIHNlbGYubG9vcCA9IGxvb3AKLQotICAgICAgICBz
ZWxmLnJlYWRfbWVzc2FnZV90YXNrOiBPcHRpb25hbFthc3luY2lvLlRhc2tbQW55XV0gPSBOb25l
Ci0KLSAgICBhc3luYyBkZWYgc3RhcnQoc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gYXdhaXQgd2Vic29ja2V0cy5jbGllbnQuY29ubmVjdChzZWxmLnVybCkKLSAgICAg
ICAgc2VsZi5yZWFkX21lc3NhZ2VfdGFzayA9IHNlbGYubG9vcC5jcmVhdGVfdGFzayhzZWxmLnJl
YWRfbWVzc2FnZXMoKSkKLQotICAgICAgICBmb3IgbXNnIGluIHNlbGYuc2VuZF9idWY6Ci0gICAg
ICAgICAgICBhd2FpdCBzZWxmLl9zZW5kKHNlbGYuY29ubmVjdGlvbiwgbXNnKQotCi0gICAgYXN5
bmMgZGVmIHNlbmQoc2VsZiwgZGF0YTogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE5vbmU6Ci0gICAg
ICAgIGlmIHNlbGYuY29ubmVjdGlvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGF3YWl0IHNl
bGYuX3NlbmQoc2VsZi5jb25uZWN0aW9uLCBkYXRhKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc2VsZi5zZW5kX2J1Zi5hcHBlbmQoZGF0YSkKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBh
c3luYyBkZWYgX3NlbmQoY29ubmVjdGlvbjogd2Vic29ja2V0cy5XZWJTb2NrZXRDbGllbnRQcm90
b2NvbCwgZGF0YTogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE5vbmU6Ci0gICAgICAgIG1zZyA9IGpz
b24uZHVtcHMoZGF0YSkKLSAgICAgICAgbG9nZ2VyLmRlYnVnKCLihpIgJXMiLCBtc2cpCi0gICAg
ICAgIGF3YWl0IGNvbm5lY3Rpb24uc2VuZChtc2cpCi0KLSAgICBhc3luYyBkZWYgaGFuZGxlKHNl
bGYsIG1zZzogc3RyKSAtPiBOb25lOgotICAgICAgICBsb2dnZXIuZGVidWcoIuKGkCAlcyIsIG1z
ZykKLSAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMobXNnKQotICAgICAgICBhd2FpdCBzZWxmLm1z
Z19oYW5kbGVyKGRhdGEpCi0KLSAgICBhc3luYyBkZWYgZW5kKHNlbGYpIC0+IE5vbmU6Ci0gICAg
ICAgIGlmIHNlbGYuY29ubmVjdGlvbjoKLSAgICAgICAgICAgIGF3YWl0IHNlbGYuY29ubmVjdGlv
bi5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBOb25lCi0KLSAgICBhc3lu
YyBkZWYgcmVhZF9tZXNzYWdlcyhzZWxmKSAtPiBOb25lOgotICAgICAgICBhc3NlcnQgc2VsZi5j
b25uZWN0aW9uIGlzIG5vdCBOb25lCi0gICAgICAgIGFzeW5jIGZvciBtc2cgaW4gc2VsZi5jb25u
ZWN0aW9uOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobXNnLCBzdHIpOgotICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkdvdCBhIGJpbmFyeSBtZXNzYWdlIikKLSAgICAg
ICAgICAgIGF3YWl0IHNlbGYuaGFuZGxlKG1zZykKLQotCi1jbGFzcyBjb21tYW5kOgotICAgICIi
IkRlY29yYXRvciBmb3IgaW1wbGVtZW50aW5nIGJpZGkgY29tbWFuZHMKLQotICAgIEltcGxlbWVu
dGluZyBhIGNvbW1hbmQgaW52b2x2ZXMgc3BlY2lmeWluZyBhbiBhc3luYyBmdW5jdGlvbiB0aGF0
Ci0gICAgYnVpbGRzIHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb21tYW5kLiBUaGUgZGVjb3JhdG9y
IGFycmFuZ2VzIHRob3NlCi0gICAgcGFyYW1ldGVycyB0byBiZSB0dXJuZWQgaW50byBhIHNlbmRf
Y29tbWFuZCBjYWxsLCB1c2luZyB0aGUgY2xhc3MKLSAgICBhbmQgbWV0aG9kIG5hbWVzIHRvIGRl
dGVybWluZSB0aGUgbWV0aG9kIGluIHRoZSBjYWxsLgotCi0gICAgQ29tbWFuZHMgZGVjb3JhdGVk
IGluIHRoaXMgd2F5IGRvbid0IHJldHVybiBhIGZ1dHVyZSwgYnV0IGF3YWl0Ci0gICAgdGhlIGFj
dHVhbCByZXNwb25zZS4gSW4gc29tZSBjYXNlcyBpdCBjYW4gYmUgdXNlZnVsIHRvCi0gICAgcG9z
dC1wcm9jZXNzIHRoaXMgcmVzcG9uc2UgYmVmb3JlIHJldHVybmluZyBpdCB0byB0aGUgY2xpZW50
LiBUaGlzCi0gICAgY2FuIGJlIGRvbmUgYnkgc3BlY2lmeWluZyBhIHNlY29uZCBkZWNvcmF0ZWQg
bWV0aG9kIGxpa2UKLSAgICBAY29tbWFuZF9uYW1lLnJlc3VsdC4gVGhhdCBtZXRob2Qgd2lsbCB0
aGVuIGJlIGNhbGxlZCBvbmNlIHRoZQotICAgIHJlc3VsdCBvZiB0aGUgb3JpZ2luYWwgY29tbWFu
ZCBpcyBrbm93biwgYW5kIHRoZSByZXR1cm4gdmFsdWUgb2YKLSAgICB0aGUgbWV0aG9kIHVzZWQg
YXMgdGhlIHJlc3BvbnNlIG9mIHRoZSBjb21tYW5kLgotCi0gICAgU28gZm9yIGFuIGV4YW1wbGUs
IGlmIHdlIGhhZCBhIGNvbW1hbmQgdGVzdC50ZXN0TWV0aG9kLCB3aGljaAotICAgIHJldHVybmVk
IGEgcmVzdWx0IHdoaWNoIHdlIHdhbnQgdG8gY29udmVydCB0byBhIFRlc3RSZXN1bHQgdHlwZSwK
LSAgICB0aGUgaW1wbGVtZW50YXRpb24gbWlnaHQgbG9vayBsaWtlOgotCi0gICAgY2xhc3MgVGVz
dChCaWRpTW9kdWxlKToKLSAgICAgICAgQGNvbW1hbmQKLSAgICAgICAgZGVmIHRlc3RfbWV0aG9k
KHNlbGYsIHRlc3RfZGF0YT1Ob25lKToKLSAgICAgICAgICAgIHJldHVybiB7InRlc3REYXRhIjog
dGVzdF9kYXRhfQotCi0gICAgICAgQHRlc3RfbWV0aG9kLnJlc3VsdAotICAgICAgIGRlZiBjb252
ZXJ0X3Rlc3RfbWV0aG9kX3Jlc3VsdChzZWxmLCByZXN1bHQpOgotICAgICAgICAgICByZXR1cm4g
VGVzdERhdGEoKipyZXN1bHQpCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZm46
IENhbGxhYmxlWy4uLiwgTWFwcGluZ1tzdHIsIEFueV1dKToKLSAgICAgICAgc2VsZi5wYXJhbXNf
Zm4gPSBmbgotICAgICAgICBzZWxmLnJlc3VsdF9mbjogT3B0aW9uYWxbQ2FsbGFibGVbLi4uLCBB
bnldXSA9IE5vbmUKLQotICAgIGRlZiByZXN1bHQoc2VsZiwgZm46IENhbGxhYmxlW1tBbnksIE11
dGFibGVNYXBwaW5nW3N0ciwgQW55XV0sIE1hcHBpbmdbc3RyLCBBbnldXSkgLT4gTm9uZToKLSAg
ICAgICAgc2VsZi5yZXN1bHRfZm4gPSBmbgotCi0gICAgZGVmIF9fc2V0X25hbWVfXyhzZWxmLCBv
d25lcjogQW55LCBuYW1lOiBzdHIpIC0+IE5vbmU6Ci0gICAgICAgICMgVGhpcyBpcyBjYWxsZWQg
d2hlbiB0aGUgY2xhc3MgaXMgY3JlYXRlZAotICAgICAgICAjIHNlZSBodHRwczovL2RvY3MucHl0
aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNvYmplY3QuX19zZXRfbmFtZV9fCi0g
ICAgICAgIHBhcmFtc19mbiA9IHNlbGYucGFyYW1zX2ZuCi0gICAgICAgIHJlc3VsdF9mbiA9IHNl
bGYucmVzdWx0X2ZuCi0KLSAgICAgICAgQGZ1bmN0b29scy53cmFwcyhwYXJhbXNfZm4pCi0gICAg
ICAgIGFzeW5jIGRlZiBpbm5lcihzZWxmOiBBbnksICoqa3dhcmdzOiBBbnkpIC0+IEFueToKLSAg
ICAgICAgICAgIHBhcmFtcyA9IHBhcmFtc19mbihzZWxmLCAqKmt3YXJncykKLQotICAgICAgICAg
ICAgIyBDb252ZXJ0IHRoZSBjbGFzc25hbWUgYW5kIHRoZSBtZXRob2QgbmFtZSB0byBhIGJpZGkg
Y29tbWFuZCBuYW1lCi0gICAgICAgICAgICBtb2RfbmFtZSA9IG93bmVyLl9fbmFtZV9fLmxvd2Vy
KCkKLSAgICAgICAgICAgIGlmIGhhc2F0dHIob3duZXIsICJwcmVmaXgiKToKLSAgICAgICAgICAg
ICAgICBtb2RfbmFtZSA9IGYie293bmVyLnByZWZpeH06e21vZF9uYW1lfSIKLSAgICAgICAgICAg
IGNtZF9uYW1lID0gZiJ7bW9kX25hbWV9Lnt0b19jYW1lbGNhc2UobmFtZSl9IgotCi0gICAgICAg
ICAgICBmdXR1cmUgPSBhd2FpdCBzZWxmLnNlc3Npb24uc2VuZF9jb21tYW5kKGNtZF9uYW1lLCBw
YXJhbXMpCi0gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCBmdXR1cmUKLQotICAgICAgICAgICAg
aWYgcmVzdWx0X2ZuIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICMgQ29udmVydCB0aGUg
cmVzdWx0IGlmIHdlIGhhdmUgYSBjb252ZXJzaW9uIGZ1bmN0aW9uIGRlZmluZWQKLSAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZXN1bHRfZm4oc2VsZiwgcmVzdWx0KQotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdAotCi0gICAgICAgICMgT3ZlcndyaXRlIHRoZSBtZXRob2Qgb24gdGhlIG93bmVy
IGNsYXNzIHdpdGggdGhlIHdyYXBwZXIKLSAgICAgICAgc2V0YXR0cihvd25lciwgbmFtZSwgaW5u
ZXIpCi0KLSAgICBkZWYgX19jYWxsX18oKmFyZ3M6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQXdh
aXRhYmxlW0FueV06Ci0gICAgICAgICMgVGhpcyBpc24ndCByZWFsbHkgdXNlZCwgYnV0IG15cHkg
ZG9lc24ndCB1bmRlcnN0YW5kIF9fc2V0X25hbWVfXwotICAgICAgICBwYXNzCi0KLQotZGVmIHRv
X2NhbWVsY2FzZShuYW1lOiBzdHIpIC0+IHN0cjoKLSAgICAiIiJDb252ZXJ0IGEgcHl0aG9uIHN0
eWxlIG1ldGhvZCBuYW1lIGZvb19iYXIgdG8gYSBCaURpIGNvbW1hbmQgbmFtZSBmb29CYXIiIiIK
LSAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoIl8iKQotICAgIHBhcnRzWzBdID0gcGFydHNbMF0ubG93
ZXIoKQotICAgIGZvciBpIGluIHJhbmdlKDEsIGxlbihwYXJ0cykpOgotICAgICAgICBwYXJ0c1tp
XSA9IHBhcnRzW2ldLnRpdGxlKCkKLSAgICByZXR1cm4gIiIuam9pbihwYXJ0cykKLQotCi1jbGFz
cyBCaWRpTW9kdWxlOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uOiBCaWRpU2Vzc2lv
bik6Ci0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KLQotCi1jbGFzcyBTZXNzaW9uKEJp
ZGlNb2R1bGUpOgotICAgIEBjb21tYW5kCi0gICAgZGVmIG5ldyhzZWxmLCBjYXBhYmlsaXRpZXM6
IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBNYXBwaW5nW3N0ciwgTWFwcGluZ1tzdHIsIEFueV1dOgot
ICAgICAgICByZXR1cm4geyJjYXBhYmlsaXRpZXMiOiBjYXBhYmlsaXRpZXN9Ci0KLSAgICBAbmV3
LnJlc3VsdAotICAgIGRlZiBfbmV3KHNlbGYsIHJlc3VsdDogTWFwcGluZ1tzdHIsIEFueV0pIC0+
IEFueToKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5nZXQoInNlc3Npb25faWQiKSwgcmVzdWx0Lmdl
dCgiY2FwYWJpbGl0aWVzIiwge30pCi0KLSAgICBAY29tbWFuZAotICAgIGRlZiBzdWJzY3JpYmUo
c2VsZiwKLSAgICAgICAgICAgICAgICAgIGV2ZW50czogTGlzdFtzdHJdLAotICAgICAgICAgICAg
ICAgICAgY29udGV4dHM6IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0
ciwgQW55XToKLSAgICAgICAgcGFyYW1zOiBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2
ZW50cyI6IGV2ZW50c30KLSAgICAgICAgaWYgY29udGV4dHMgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBjb250ZXh0cwotICAgICAgICByZXR1cm4gcGFyYW1z
Ci0KLSAgICBAY29tbWFuZAotICAgIGRlZiB1bnN1YnNjcmliZShzZWxmLAotICAgICAgICAgICAg
ICAgICAgICBldmVudHM6IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lLAotICAgICAgICAgICAg
ICAgICAgICBjb250ZXh0czogT3B0aW9uYWxbTGlzdFtzdHJdXSA9IE5vbmUpIC0+IE1hcHBpbmdb
c3RyLCBBbnldOgotICAgICAgICBwYXJhbXM6IE11dGFibGVNYXBwaW5nW3N0ciwgQW55XSA9IHsi
ZXZlbnRzIjogZXZlbnRzIGlmIGV2ZW50cyBpcyBub3QgTm9uZSBlbHNlIFtdfQotICAgICAgICBp
ZiBjb250ZXh0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHBhcmFtc1siY29udGV4dHMiXSA9
IGNvbnRleHRzCi0gICAgICAgIHJldHVybiBwYXJhbXMKLQotCi1jbGFzcyBUZXN0KEJpZGlNb2R1
bGUpOgotICAgICIiIlZlcnkgdGVtcG9yYXJ5IG1vZHVsZSB0aGF0IGRvZXMgbm90aGluZywgZXhj
ZXB0IGRlbW9uc3RyYXRlIGEgdmVuZG9yIHByZWZpeCBhbmQKLSAgICBwcm92aWRlIGEgd2F5IHRv
IHdvcmsgd2l0aCBHZWNrbydzIGN1cnJlbnQgc2tlbGV0b24gaW1wbGVtZW50YXRpb24uIiIiCi0K
LSAgICBwcmVmaXggPSAibW96IgotCi0gICAgQGNvbW1hbmQKLSAgICBkZWYgdGVzdF9tZXRob2Qo
c2VsZiwgKiprd2FyZ3MpOgotICAgICAgICByZXR1cm4ga3dhcmdzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvYmlkaS9tb2R1bGVzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvbW9k
dWxlcy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzM1NDA5OGQxZDFmZmY4OWQ2ZGIzMTlkNDFl
NGQ2NDRlYzJhMjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvbW9kdWxl
cy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMgQEAKKyMgZmxha2U4OiBub3FhCisKK2Zyb20gLnNl
c3Npb24gaW1wb3J0IFNlc3Npb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL21vZHVs
ZXMvX21vZHVsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL21vZHVsZXMvX21vZHVsZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43YmQ4NTlkYTliNzUxODVkNGI4YmJhZmYzZDBjZTJhNGM3ZDM0ZDhjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvbW9kdWxlcy9fbW9kdWxlLnB5CkBAIC0wLDAg
KzEsODggQEAKK2ltcG9ydCBmdW5jdG9vbHMKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIEF3YWl0
YWJsZSwgQ2FsbGFibGUsIE9wdGlvbmFsLCBNYXBwaW5nLCBNdXRhYmxlTWFwcGluZywgVFlQRV9D
SEVDS0lORworCitpZiBUWVBFX0NIRUNLSU5HOgorICAgIGZyb20gLi5jbGllbnQgaW1wb3J0IEJp
ZGlTZXNzaW9uCisKKworY2xhc3MgY29tbWFuZDoKKyAgICAiIiJEZWNvcmF0b3IgZm9yIGltcGxl
bWVudGluZyBiaWRpIGNvbW1hbmRzLgorCisgICAgSW1wbGVtZW50aW5nIGEgY29tbWFuZCBpbnZv
bHZlcyBzcGVjaWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKKyAgICBidWlsZHMgdGhlIHBh
cmFtZXRlcnMgdG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMgdGhvc2UKKyAg
ICBwYXJhbWV0ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNhbGwsIHVzaW5n
IHRoZSBjbGFzcworICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRoZSBtZXRob2Qg
aW4gdGhlIGNhbGwuCisKKyAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3YXkgZG9uJ3Qg
cmV0dXJuIGEgZnV0dXJlLCBidXQgYXdhaXQKKyAgICB0aGUgYWN0dWFsIHJlc3BvbnNlLiBJbiBz
b21lIGNhc2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8KKyAgICBwb3N0LXByb2Nlc3MgdGhpcyByZXNw
b25zZSBiZWZvcmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKKyAgICBjYW4gYmUg
ZG9uZSBieSBzcGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlrZQorICAgIEBj
b21tYW5kX25hbWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2FsbGVkIG9uY2Ug
dGhlCisgICAgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3duLCBhbmQgdGhl
IHJldHVybiB2YWx1ZSBvZgorICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVzcG9uc2Ugb2Yg
dGhlIGNvbW1hbmQuCisKKyAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFkIGEgY29tbWFu
ZCB0ZXN0LnRlc3RNZXRob2QsIHdoaWNoCisgICAgcmV0dXJuZWQgYSByZXN1bHQgd2hpY2ggd2Ug
d2FudCB0byBjb252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAorICAgIHRoZSBpbXBsZW1lbnRh
dGlvbiBtaWdodCBsb29rIGxpa2U6CisKKyAgICBjbGFzcyBUZXN0KEJpZGlNb2R1bGUpOgorICAg
ICAgICBAY29tbWFuZAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVzdF9kYXRhPU5v
bmUpOgorICAgICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9CisKKyAgICAg
ICBAdGVzdF9tZXRob2QucmVzdWx0CisgICAgICAgZGVmIGNvbnZlcnRfdGVzdF9tZXRob2RfcmVz
dWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgqKnJlc3VsdCkK
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVbLi4uLCBNYXBw
aW5nW3N0ciwgQW55XV0pOgorICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCisgICAgICAgIHNl
bGYucmVzdWx0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9uZQorCisgICAg
ZGVmIHJlc3VsdChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBpbmdbc3RyLCBB
bnldXSwgTWFwcGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgorICAgICAgICBzZWxmLnJlc3VsdF9m
biA9IGZuCisKKyAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnksIG5hbWU6IHN0
cikgLT4gTm9uZToKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjbGFzcyBpcyBj
cmVhdGVkCisgICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNl
L2RhdGFtb2RlbC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KKyAgICAgICAgcGFyYW1zX2ZuID0g
c2VsZi5wYXJhbXNfZm4KKyAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRfZm4KKworICAg
ICAgICBAZnVuY3Rvb2xzLndyYXBzKHBhcmFtc19mbikKKyAgICAgICAgYXN5bmMgZGVmIGlubmVy
KHNlbGY6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgorICAgICAgICAgICAgcGFyYW1zID0g
cGFyYW1zX2ZuKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgICAgICAjIENvbnZlcnQgdGhlIGNs
YXNzbmFtZSBhbmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5hbWUKKyAgICAg
ICAgICAgIG1vZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQorICAgICAgICAgICAgaWYg
aGFzYXR0cihvd25lciwgInByZWZpeCIpOgorICAgICAgICAgICAgICAgIG1vZF9uYW1lID0gZiJ7
b3duZXIucHJlZml4fTp7bW9kX25hbWV9IgorICAgICAgICAgICAgY21kX25hbWUgPSBmInttb2Rf
bmFtZX0ue3RvX2NhbWVsY2FzZShuYW1lKX0iCisKKyAgICAgICAgICAgIGZ1dHVyZSA9IGF3YWl0
IHNlbGYuc2Vzc2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKKyAgICAgICAgICAg
IHJlc3VsdCA9IGF3YWl0IGZ1dHVyZQorCisgICAgICAgICAgICBpZiByZXN1bHRfZm4gaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYgd2UgaGF2ZSBh
IGNvbnZlcnNpb24gZnVuY3Rpb24gZGVmaW5lZAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdF9mbihzZWxmLCByZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAg
ICAgIyBPdmVyd3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0aCB0aGUgd3Jh
cHBlcgorICAgICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKKworICAgIGRlZiBfX2Nh
bGxfXygqYXJnczogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55XToKKyAgICAg
ICAgIyBUaGlzIGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVuZGVyc3RhbmQg
X19zZXRfbmFtZV9fCisgICAgICAgIHBhc3MKKworCitjbGFzcyBCaWRpTW9kdWxlOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uOiAiQmlkaVNlc3Npb24iKToKKyAgICAgICAgc2VsZi5z
ZXNzaW9uID0gc2Vzc2lvbgorCisKK2RlZiB0b19jYW1lbGNhc2UobmFtZTogc3RyKSAtPiBzdHI6
CisgICAgIiIiQ29udmVydCBhIHB5dGhvbiBzdHlsZSBtZXRob2QgbmFtZSBmb29fYmFyIHRvIGEg
QmlEaSBjb21tYW5kIG5hbWUgZm9vQmFyIiIiCisgICAgcGFydHMgPSBuYW1lLnNwbGl0KCJfIikK
KyAgICBwYXJ0c1swXSA9IHBhcnRzWzBdLmxvd2VyKCkKKyAgICBmb3IgaSBpbiByYW5nZSgxLCBs
ZW4ocGFydHMpKToKKyAgICAgICAgcGFydHNbaV0gPSBwYXJ0c1tpXS50aXRsZSgpCisgICAgcmV0
dXJuICIiLmpvaW4ocGFydHMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9tb2R1bGVz
L3Nlc3Npb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9tb2R1bGVzL3Nlc3Npb24ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2MxZmVmMzBhZTEzMTk5M2FiOGFkYzAyMDVmYmExMWJiZDZkZWE4NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL21vZHVsZXMvc2Vzc2lvbi5weQpAQCAtMCwwICsx
LDMxIEBACitmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBMaXN0LCBPcHRpb25hbCwgTWFwcGluZywg
TXV0YWJsZU1hcHBpbmcKKworZnJvbSAuX21vZHVsZSBpbXBvcnQgQmlkaU1vZHVsZSwgY29tbWFu
ZAorCisKK2NsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6CisgICAgQGNvbW1hbmQKKyAgICBkZWYg
bmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE1hcHBpbmdbc3Ry
LCBNYXBwaW5nW3N0ciwgQW55XV06CisgICAgICAgIHJldHVybiB7ImNhcGFiaWxpdGllcyI6IGNh
cGFiaWxpdGllc30KKworICAgIEBuZXcucmVzdWx0CisgICAgZGVmIF9uZXcoc2VsZiwgcmVzdWx0
OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgorICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgi
c2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmlsaXRpZXMiLCB7fSkKKworICAgIEBjb21t
YW5kCisgICAgZGVmIHN1YnNjcmliZShzZWxmLAorICAgICAgICAgICAgICAgICAgZXZlbnRzOiBM
aXN0W3N0cl0sCisgICAgICAgICAgICAgICAgICBjb250ZXh0czogT3B0aW9uYWxbTGlzdFtzdHJd
XSA9IE5vbmUpIC0+IE1hcHBpbmdbc3RyLCBBbnldOgorICAgICAgICBwYXJhbXM6IE11dGFibGVN
YXBwaW5nW3N0ciwgQW55XSA9IHsiZXZlbnRzIjogZXZlbnRzfQorICAgICAgICBpZiBjb250ZXh0
cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhcmFtc1siY29udGV4dHMiXSA9IGNvbnRleHRz
CisgICAgICAgIHJldHVybiBwYXJhbXMKKworICAgIEBjb21tYW5kCisgICAgZGVmIHVuc3Vic2Ny
aWJlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgIGV2ZW50czogT3B0aW9uYWxbTGlzdFtzdHJd
XSA9IE5vbmUsCisgICAgICAgICAgICAgICAgICAgIGNvbnRleHRzOiBPcHRpb25hbFtMaXN0W3N0
cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIsIEFueV06CisgICAgICAgIHBhcmFtczogTXV0YWJs
ZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVudHMiOiBldmVudHMgaWYgZXZlbnRzIGlzIG5vdCBO
b25lIGVsc2UgW119CisgICAgICAgIGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4dHMKKyAgICAgICAgcmV0dXJuIHBhcmFtcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvdHJhbnNwb3J0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L2JpZGkvdHJhbnNwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMGE2NzBlMThlODE4N2I2MGEyZTZkNjEy
YWY2YmRlNmYzMzM1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS90cmFu
c3BvcnQucHkKQEAgLTAsMCArMSw3NCBAQAoraW1wb3J0IGFzeW5jaW8KK2ltcG9ydCBqc29uCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFi
bGUsIENvcm91dGluZSwgTGlzdCwgT3B0aW9uYWwsIE1hcHBpbmcKKworaW1wb3J0IHdlYnNvY2tl
dHMKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmRyaXZlci5iaWRpIikKKworCitk
ZWYgZ2V0X3J1bm5pbmdfbG9vcCgpIC0+IGFzeW5jaW8uQWJzdHJhY3RFdmVudExvb3A6CisgICAg
aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNyk6CisgICAgICAgIHJldHVybiBhc3luY2lvLmdl
dF9ydW5uaW5nX2xvb3AoKQorICAgICMgVW5saWtlIHRoZSBhYm92ZSwgdGhpcyB3aWxsIGFjdHVh
bGx5IGNyZWF0ZSBhbiBldmVudCBsb29wCisgICAgIyBpZiB0aGVyZSBpc24ndCBvbmU7IGhvcGVm
dWxseSBydW5uaW5nIHRlc3RzIGluIFB5dGhvbiA+PSAzLjcKKyAgICAjIHdpbGwgYWxsb3cgdXMg
dG8gY2F0Y2ggYW55IGJlaGF2aW91ciBkaWZmZXJlbmNlCisgICAgcmV0dXJuIGFzeW5jaW8uZ2V0
X2V2ZW50X2xvb3AoKQorCisKK2NsYXNzIFRyYW5zcG9ydDoKKyAgICAiIiJMb3cgbGV2ZWwgbWVz
c2FnZSBoYW5kbGVyIGZvciB0aGUgV2ViU29ja2V0cyBjb25uZWN0aW9uIiIiCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHVybDogc3RyLAorICAgICAgICAgICAgICAgICBtc2dfaGFuZGxlcjogQ2Fs
bGFibGVbW01hcHBpbmdbc3RyLCBBbnldXSwgQ29yb3V0aW5lW0FueSwgQW55LCBOb25lXV0sCisg
ICAgICAgICAgICAgICAgIGxvb3A6IE9wdGlvbmFsW2FzeW5jaW8uQWJzdHJhY3RFdmVudExvb3Bd
ID0gTm9uZSk6CisgICAgICAgIHNlbGYudXJsID0gdXJsCisgICAgICAgIHNlbGYuY29ubmVjdGlv
bjogT3B0aW9uYWxbd2Vic29ja2V0cy5XZWJTb2NrZXRDbGllbnRQcm90b2NvbF0gPSBOb25lCisg
ICAgICAgIHNlbGYubXNnX2hhbmRsZXIgPSBtc2dfaGFuZGxlcgorICAgICAgICBzZWxmLnNlbmRf
YnVmOiBMaXN0W01hcHBpbmdbc3RyLCBBbnldXSA9IFtdCisKKyAgICAgICAgaWYgbG9vcCBpcyBO
b25lOgorICAgICAgICAgICAgbG9vcCA9IGdldF9ydW5uaW5nX2xvb3AoKQorICAgICAgICBzZWxm
Lmxvb3AgPSBsb29wCisKKyAgICAgICAgc2VsZi5yZWFkX21lc3NhZ2VfdGFzazogT3B0aW9uYWxb
YXN5bmNpby5UYXNrW0FueV1dID0gTm9uZQorCisgICAgYXN5bmMgZGVmIHN0YXJ0KHNlbGYpIC0+
IE5vbmU6CisgICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGF3YWl0IHdlYnNvY2tldHMuY2xpZW50
LmNvbm5lY3Qoc2VsZi51cmwpCisgICAgICAgIHNlbGYucmVhZF9tZXNzYWdlX3Rhc2sgPSBzZWxm
Lmxvb3AuY3JlYXRlX3Rhc2soc2VsZi5yZWFkX21lc3NhZ2VzKCkpCisKKyAgICAgICAgZm9yIG1z
ZyBpbiBzZWxmLnNlbmRfYnVmOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxmLmNv
bm5lY3Rpb24sIG1zZykKKworICAgIGFzeW5jIGRlZiBzZW5kKHNlbGYsIGRhdGE6IE1hcHBpbmdb
c3RyLCBBbnldKSAtPiBOb25lOgorICAgICAgICBpZiBzZWxmLmNvbm5lY3Rpb24gaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBhd2FpdCBzZWxmLl9zZW5kKHNlbGYuY29ubmVjdGlvbiwgZGF0YSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2VuZF9idWYuYXBwZW5kKGRhdGEpCisK
KyAgICBAc3RhdGljbWV0aG9kCisgICAgYXN5bmMgZGVmIF9zZW5kKAorICAgICAgICBjb25uZWN0
aW9uOiB3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLAorICAgICAgICBkYXRhOiBN
YXBwaW5nW3N0ciwgQW55XQorICAgICkgLT4gTm9uZToKKyAgICAgICAgbXNnID0ganNvbi5kdW1w
cyhkYXRhKQorICAgICAgICBsb2dnZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKKyAgICAgICAgYXdh
aXQgY29ubmVjdGlvbi5zZW5kKG1zZykKKworICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNn
OiBzdHIpIC0+IE5vbmU6CisgICAgICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQorICAg
ICAgICBkYXRhID0ganNvbi5sb2Fkcyhtc2cpCisgICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRs
ZXIoZGF0YSkKKworICAgIGFzeW5jIGRlZiBlbmQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgaWYg
c2VsZi5jb25uZWN0aW9uOgorICAgICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3Nl
KCkKKyAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKKworICAgIGFzeW5jIGRlZiBy
ZWFkX21lc3NhZ2VzKHNlbGYpIC0+IE5vbmU6CisgICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rp
b24gaXMgbm90IE5vbmUKKyAgICAgICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246
CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtc2csIHN0cik6CisgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiR290IGEgYmluYXJ5IG1lc3NhZ2UiKQorICAgICAgICAgICAg
YXdhaXQgc2VsZi5oYW5kbGUobXNnKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWM5ZTcxYTk4ZDQ3ZWIxMDVlMzQ1NzAwYzhmNGQ4ZTU2YzE0
NTZhYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvYmlkaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L2JpZGkvY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvZXJyb3IucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IDlk
MzE3MWY2YWYyZGFkNjQ4NGFkZGIxODIwZjU0NDIxZGU3MmI5NGQuLjlhNWYyNmQ5OGUzYWE1NTc2
MjdhMzM2YTg2ZTU2NDc1MjZmYmRlMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQpAQCAtMzE2LDYgKzMxNiwxMSBAQCBjbGFz
cyBXaW5kb3cob2JqZWN0KToKICAgICBkZWYgcmVjdChzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9yZWN0IikKIAor
ICAgIEByZWN0LnNldHRlciAgIyB0eXBlOiBpZ25vcmUKKyAgICBAY29tbWFuZAorICAgIGRlZiBy
ZWN0KHNlbGYsIG5ld19yZWN0KToKKyAgICAgICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9j
b21tYW5kKCJQT1NUIiwgIndpbmRvdy9yZWN0IiwgbmV3X3JlY3QpCisKICAgICBAcHJvcGVydHkg
ICMgdHlwZTogaWdub3JlCiAgICAgQGNvbW1hbmQKICAgICBkZWYgc2l6ZShzZWxmKToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJlMzg1MTNmMWZjMDY2ZDc4
OWNmOGQ2MzQ5NzU5MTkxNGZiNDBiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L3Byb3RvY29sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3Bv
cnQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVm
MGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhj
MmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9fX2lu
aXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9u
IHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL19f
aW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIu
LmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNw
b3J0L2gzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL19faW5pdF9fLnB5CkBAIC0xICswLDAg
QEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGly
ZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2Vi
dHJhbnNwb3J0L2gzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhYTJlODllYTc5NDYxMzJlZDlmMzNhZTk2NTA5
ZTdlOGI3MDJkZGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0
cmFuc3BvcnQvaDMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dlYnRyYW5zcG9ydC9oMy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL2NhcHN1bGUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5z
cG9ydC9oMy9oYW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvdGVzdF9jYXBzdWxlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMv
d2VidHJhbnNwb3J0X2gzX3NlcnZlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvd2VidHJhbnNw
b3J0X2gzX3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL3dlYnRyYW5zcG9ydF9oM19zZXJ2ZXIucHkKaW5k
ZXggMjM3MWRjMjQ4MGEzMDUxNTZlYTc5NzcxNzg1MmM1YTBmNTA1NTJhMy4uMWZmNWNhOGI2Y2E1
NmY4Njk4Nzg1NzFmOWY3NjQ5MjIwMGFmMmYxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvd2VidHJh
bnNwb3J0X2gzX3NlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy93ZWJ0cmFuc3BvcnRfaDNfc2VydmVy
LnB5CkBAIC0xNCw3ICsxNCw4IEBAIGZyb20gYWlvcXVpYy5hc3luY2lvLmNsaWVudCBpbXBvcnQg
Y29ubmVjdCAgIyB0eXBlOiBpZ25vcmUKIGZyb20gYWlvcXVpYy5oMy5jb25uZWN0aW9uIGltcG9y
dCBIM19BTFBOLCBGcmFtZVR5cGUsIEgzQ29ubmVjdGlvbiwgUHJvdG9jb2xFcnJvciwgU2V0dGlu
ZyAgIyB0eXBlOiBpZ25vcmUKIGZyb20gYWlvcXVpYy5oMy5ldmVudHMgaW1wb3J0IEgzRXZlbnQs
IEhlYWRlcnNSZWNlaXZlZCwgV2ViVHJhbnNwb3J0U3RyZWFtRGF0YVJlY2VpdmVkLCBEYXRhZ3Jh
bVJlY2VpdmVkLCBEYXRhUmVjZWl2ZWQgICMgdHlwZTogaWdub3JlCiBmcm9tIGFpb3F1aWMucXVp
Yy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbiAgIyB0eXBlOiBpZ25vcmUK
LWZyb20gYWlvcXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0IHN0cmVhbV9pc191bmlkaXJlY3Rp
b25hbCAgIyB0eXBlOiBpZ25vcmUKK2Zyb20gYWlvcXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0
IGxvZ2dlciBhcyBxdWljX2Nvbm5lY3Rpb25fbG9nZ2VyICAjIHR5cGU6IGlnbm9yZQorZnJvbSBh
aW9xdWljLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsCiBm
cm9tIGFpb3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFF1aWNFdmVudCwgUHJvdG9jb2xOZWdvdGlh
dGVkLCBDb25uZWN0aW9uVGVybWluYXRlZCwgU3RyZWFtUmVzZXQgICMgdHlwZTogaWdub3JlCiBm
cm9tIGFpb3F1aWMudGxzIGltcG9ydCBTZXNzaW9uVGlja2V0ICAjIHR5cGU6IGlnbm9yZQogCkBA
IC0zNSw2ICszNiwxMCBAQCBTRVJWRVJfTkFNRSA9ICd3ZWJ0cmFuc3BvcnQtaDMtc2VydmVyJwog
X2xvZ2dlcjogbG9nZ2luZy5Mb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIF9k
b2Nfcm9vdDogc3RyID0gIiIKIAorIyBTZXQgYWlvcXVpYydzIGxvZyBsZXZlbCB0byBXQVJOSU5H
IHRvIHN1cHByZXNzIHNvbWUgSU5GTyBsb2dzIHdoaWNoIGFyZQorIyByZWNvcmRlZCBldmVyeSBj
b25uZWN0aW9uIGNsb3NlLgorcXVpY19jb25uZWN0aW9uX2xvZ2dlci5zZXRMZXZlbChsb2dnaW5n
LldBUk5JTkcpCisKIAogY2xhc3MgSDNDb25uZWN0aW9uV2l0aERhdGFncmFtMDQoSDNDb25uZWN0
aW9uKToKICAgICAiIiIKQEAgLTQyLDYgKzQ3LDggQEAgY2xhc3MgSDNDb25uZWN0aW9uV2l0aERh
dGFncmFtMDQoSDNDb25uZWN0aW9uKToKICAgICBIVFRQIERhdGFncmFtIHByb3RvY29sLgogICAg
ICIiIgogICAgIEgzX0RBVEFHUkFNXzA0ID0gMHhmZmQyNzcKKyAgICAjIGh0dHBzOi8vZGF0YXRy
YWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtaWV0Zi1odHRwYmlzLWgzLXdlYnNvY2tldHMt
MDAjc2VjdGlvbi01CisgICAgRU5BQkxFX0NPTk5FQ1RfUFJPVE9DT0wgPSAweDA4CiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgKmFyZ3M6IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gTm9uZToKICAg
ICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCkBAIC01OCw2ICs2NSw3IEBA
IGNsYXNzIEgzQ29ubmVjdGlvbldpdGhEYXRhZ3JhbTA0KEgzQ29ubmVjdGlvbik6CiAgICAgICAg
IEgzX0RBVEFHUkFNXzA0ID0gSDNDb25uZWN0aW9uV2l0aERhdGFncmFtMDQuSDNfREFUQUdSQU1f
MDQKICAgICAgICAgc2V0dGluZ3MgPSBzdXBlcigpLl9nZXRfbG9jYWxfc2V0dGluZ3MoKQogICAg
ICAgICBzZXR0aW5nc1tIM19EQVRBR1JBTV8wNF0gPSAxCisgICAgICAgIHNldHRpbmdzW0gzQ29u
bmVjdGlvbldpdGhEYXRhZ3JhbTA0LkVOQUJMRV9DT05ORUNUX1BST1RPQ09MXSA9IDEKICAgICAg
ICAgcmV0dXJuIHNldHRpbmdzCiAKICAgICBAcHJvcGVydHkKQEAgLTIwMyw2ICsyMTEsNyBAQCBj
bGFzcyBXZWJUcmFuc3BvcnRIM1Byb3RvY29sKFF1aWNDb25uZWN0aW9uUHJvdG9jb2wpOgogCiAg
ICAgICAgIHJlc3BvbnNlX2hlYWRlcnMgPSBbCiAgICAgICAgICAgICAoYiJzZXJ2ZXIiLCBTRVJW
RVJfTkFNRS5lbmNvZGUoKSksCisgICAgICAgICAgICAoYiJzZWMtd2VidHJhbnNwb3J0LWh0dHAz
LWRyYWZ0IiwgYiJkcmFmdDAyIiksCiAgICAgICAgIF0KICAgICAgICAgc2VsZi5faGFuZGxlci5j
b25uZWN0X3JlY2VpdmVkKHJlc3BvbnNlX2hlYWRlcnM9cmVzcG9uc2VfaGVhZGVycykKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJ0cmFuc3BvcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU2YmE2M2QzMTBhNjMwZGE2ZTg3YmM2ODQ0M2Nh
MTIyN2VjMTBjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRy
YW5zcG9ydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2VidHJhbnNwb3J0L01FVEEueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YnRyYW5zcG9ydC9yZXF1aXJlbWVudHMudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L19faW5pdF9f
LnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJvaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9hbmRyb2lkLnB5CmluZGV4IGFi
Njg0NzQ4MGVlMmM3YzNmMmQzMmE3OGNlZjY4NzNjZTIxODdhOGUuLmQyNWFhNDc1MzU3ZThkNmRl
NWRkZGI2NGE2ZjQ0ZGY3NTQyY2QxYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJvaWQucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYW5kcm9pZC5w
eQpAQCAtODgsOCArODgsOCBAQCBkZWYgaW5zdGFsbF9hbmRyb2lkX3BhY2thZ2VzKGxvZ2dlciwg
c2RrX3BhdGgsIG5vX3Byb21wdD1GYWxzZSk6CiAgICAgICAgIHJhaXNlIE9TRXJyb3IoIkNhbid0
IGZpbmQgc2RrbWFuYWdlciBhdCAlcyIgJSBzZGtfbWFuYWdlcl9wYXRoKQogCiAgICAgcGFja2Fn
ZXMgPSBbInBsYXRmb3JtLXRvb2xzIiwKLSAgICAgICAgICAgICAgICAiYnVpbGQtdG9vbHM7MzAu
MC4yIiwKLSAgICAgICAgICAgICAgICAicGxhdGZvcm1zO2FuZHJvaWQtMzAiLAorICAgICAgICAg
ICAgICAgICJidWlsZC10b29sczszMS4wLjAiLAorICAgICAgICAgICAgICAgICJwbGF0Zm9ybXM7
YW5kcm9pZC0zMSIsCiAgICAgICAgICAgICAgICAgImVtdWxhdG9yIl0KIAogICAgICMgVE9ETzog
bWFrZSB0aGlzIHdvcmsgbm9uLWludGVybmFjdGl2ZWx5CkBAIC0xMDYsMTggKzEwNiwxOCBAQCBk
ZWYgaW5zdGFsbF9hbmRyb2lkX3BhY2thZ2VzKGxvZ2dlciwgc2RrX3BhdGgsIG5vX3Byb21wdD1G
YWxzZSk6CiAgICAgICAgIHJhaXNlIHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHByb2Mu
cmV0dXJuY29kZSwgY21kKQogCiAKLWRlZiBnZXRfZW11bGF0b3Ioc2RrX3BhdGgpOgorZGVmIGdl
dF9lbXVsYXRvcihzZGtfcGF0aCwgZGV2aWNlX3NlcmlhbD1Ob25lKToKICAgICBpZiBhbmRyb2lk
X2RldmljZSBpcyBOb25lOgogICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQogICAgIGlmICJB
TkRST0lEX1NES19ST09UIiBub3QgaW4gb3MuZW52aXJvbjoKICAgICAgICAgb3MuZW52aXJvblsi
QU5EUk9JRF9TREtfUk9PVCJdID0gc2RrX3BhdGgKICAgICBzdWJzdHMgPSB7InRvcF9zcmNkaXIi
OiB3cHRfcm9vdCwgIlRBUkdFVF9DUFUiOiAieDg2In0KLSAgICBlbXVsYXRvciA9IGFuZHJvaWRf
ZGV2aWNlLkFuZHJvaWRFbXVsYXRvcigiKiIsIHN1YnN0cz1zdWJzdHMpCisgICAgZW11bGF0b3Ig
PSBhbmRyb2lkX2RldmljZS5BbmRyb2lkRW11bGF0b3IoIioiLCBzdWJzdHM9c3Vic3RzLCBkZXZp
Y2Vfc2VyaWFsPWRldmljZV9zZXJpYWwpCiAgICAgZW11bGF0b3IuZW11bGF0b3JfcGF0aCA9IG9z
LnBhdGguam9pbihzZGtfcGF0aCwgImVtdWxhdG9yIiwgImVtdWxhdG9yIikKICAgICByZXR1cm4g
ZW11bGF0b3IKIAogCi1kZWYgaW5zdGFsbChsb2dnZXIsIHJlaW5zdGFsbD1GYWxzZSwgbm9fcHJv
bXB0PUZhbHNlKToKK2RlZiBpbnN0YWxsKGxvZ2dlciwgcmVpbnN0YWxsPUZhbHNlLCBub19wcm9t
cHQ9RmFsc2UsIGRldmljZV9zZXJpYWw9Tm9uZSk6CiAgICAgaWYgcmVpbnN0YWxsOgogICAgICAg
ICB1bmluc3RhbGxfc2RrKCkKIApAQCAtMTI4LDE4ICsxMjgsMTggQEAgZGVmIGluc3RhbGwobG9n
Z2VyLCByZWluc3RhbGw9RmFsc2UsIG5vX3Byb21wdD1GYWxzZSk6CiAgICAgaWYgIkFORFJPSURf
U0RLX1JPT1QiIG5vdCBpbiBvcy5lbnZpcm9uOgogICAgICAgICBvcy5lbnZpcm9uWyJBTkRST0lE
X1NES19ST09UIl0gPSBkZXN0CiAKLSAgICBlbXVsYXRvciA9IGdldF9lbXVsYXRvcihkZXN0KQor
ICAgIGVtdWxhdG9yID0gZ2V0X2VtdWxhdG9yKGRlc3QsIGRldmljZV9zZXJpYWw9ZGV2aWNlX3Nl
cmlhbCkKICAgICByZXR1cm4gZW11bGF0b3IKIAogCi1kZWYgc3RhcnQobG9nZ2VyLCBlbXVsYXRv
cj1Ob25lLCByZWluc3RhbGw9RmFsc2UpOgorZGVmIHN0YXJ0KGxvZ2dlciwgZW11bGF0b3I9Tm9u
ZSwgcmVpbnN0YWxsPUZhbHNlLCBkZXZpY2Vfc2VyaWFsPU5vbmUpOgogICAgIGlmIHJlaW5zdGFs
bDoKICAgICAgICAgaW5zdGFsbChyZWluc3RhbGw9VHJ1ZSkKIAogICAgIHNka19wYXRoID0gZ2V0
X3Nka19wYXRoKE5vbmUpCiAKICAgICBpZiBlbXVsYXRvciBpcyBOb25lOgotICAgICAgICBlbXVs
YXRvciA9IGdldF9lbXVsYXRvcihzZGtfcGF0aCkKKyAgICAgICAgZW11bGF0b3IgPSBnZXRfZW11
bGF0b3Ioc2RrX3BhdGgsIGRldmljZV9zZXJpYWw9ZGV2aWNlX3NlcmlhbCkKIAogICAgIGlmIG5v
dCBlbXVsYXRvci5jaGVja19hdmQoKToKICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJBbmRyb2lk
IEFWRCBub3QgZm91bmQsIHBsZWFzZSBydW4gfG1hY2ggYm9vdHN0cmFwfCIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9i
cm93c2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvYnJvd3Nlci5weQppbmRleCA2YTQ5NGM4OTM3M2FlOGRlMmFhZTdkMDMxOGY1ODhh
YjJhNDI3ODExLi40ZjJiMzgzMzMwYmRmNDY5MDdlZDI0ZGNkYjhhOGM1M2IzNDFjZmU1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC9icm93c2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKQEAgLTUyMyw3ICs1MjMsNyBAQCBjbGFzcyBD
aHJvbWUoQnJvd3Nlcik6CiAgICAgIiIiCiAKICAgICBwcm9kdWN0ID0gImNocm9tZSIKLSAgICBy
ZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9tZS50eHQiCisgICAgcmVxdWlyZW1lbnRz
ID0gInJlcXVpcmVtZW50c19jaHJvbWl1bS50eHQiCiAgICAgcGxhdGZvcm1zID0gewogICAgICAg
ICAiTGludXgiOiAiTGludXgiLAogICAgICAgICAiV2luZG93cyI6ICJXaW4iLApAQCAtODUxLDcg
Kzg1MSw4IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCYXNlKEJyb3dzZXIpOgogCiAgICAgICAgIGNv
bW1hbmQgPSBbJ2FkYiddCiAgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKLSAgICAgICAg
ICAgIGNvbW1hbmQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICAg
ICAgIyBBc3N1bWUgd2UgaGF2ZSBzYW1lIHZlcnNpb24gb2YgYnJvd3NlciBvbiBhbGwgZGV2aWNl
cworICAgICAgICAgICAgY29tbWFuZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbFsw
XV0pCiAgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsnc2hlbGwnLCAnZHVtcHN5cycsICdwYWNrYWdl
JywgYmluYXJ5XSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3V0cHV0ID0gY2FsbCgqY29t
bWFuZCkKQEAgLTg3MCw3ICs4NzEsNyBAQCBjbGFzcyBDaHJvbWVBbmRyb2lkKENocm9tZUFuZHJv
aWRCYXNlKToKICAgICAiIiIKIAogICAgIHByb2R1Y3QgPSAiY2hyb21lX2FuZHJvaWQiCi0gICAg
cmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQiCisgICAgcmVx
dWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWl1bS50eHQiCiAKICAgICBkZWYgZmluZF9i
aW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIGlmIGNo
YW5uZWwgaW4gKCJiZXRhIiwgImRldiIsICJjYW5hcnkiKToKQEAgLTg4Niw3ICs4ODcsNyBAQCBj
bGFzcyBBbmRyb2lkV2VibGF5ZXIoQ2hyb21lQW5kcm9pZEJhc2UpOgogCiAgICAgcHJvZHVjdCA9
ICJhbmRyb2lkX3dlYmxheWVyIgogICAgICMgVE9ETyhhbHVvKTogcmVwbGFjZSB0aGlzIHdpdGgg
d2VibGF5ZXIgdmVyc2lvbiBhZnRlciB0ZXN0cyBhcmUgd29ya2luZy4KLSAgICByZXF1aXJlbWVu
dHMgPSAicmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vidmlldy50eHQiCisgICAgcmVxdWlyZW1lbnRz
ID0gInJlcXVpcmVtZW50c19jaHJvbWl1bS50eHQiCiAKICAgICBkZWYgZmluZF9iaW5hcnkoc2Vs
ZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJldHVybiAib3JnLmNo
cm9taXVtLndlYmxheWVyLnNoZWxsIgpAQCAtOTAwLDcgKzkwMSw3IEBAIGNsYXNzIEFuZHJvaWRX
ZWJ2aWV3KENocm9tZUFuZHJvaWRCYXNlKToKICAgICAiIiIKIAogICAgIHByb2R1Y3QgPSAiYW5k
cm9pZF93ZWJ2aWV3IgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfYW5kcm9pZF93
ZWJ2aWV3LnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9taXVtLnR4
dCIKIAogICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1O
b25lKToKICAgICAgICAgIyBKdXN0IGdldCB0aGUgY3VycmVudCBwYWNrYWdlIG5hbWUgb2YgdGhl
IFdlYlZpZXcgcHJvdmlkZXIuCkBAIC05MzAsNyArOTMxLDcgQEAgY2xhc3MgQ2hyb21laU9TKEJy
b3dzZXIpOgogICAgICIiIgogCiAgICAgcHJvZHVjdCA9ICJjaHJvbWVfaW9zIgotICAgIHJlcXVp
cmVtZW50cyA9ICJyZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQiCisgICAgcmVxdWlyZW1lbnRz
ID0gTm9uZQogCiAgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25l
LCByZW5hbWU9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKQEAgLTEw
MzgsNyArMTAzOSw3IEBAIGNsYXNzIEVkZ2VDaHJvbWl1bShCcm93c2VyKToKICAgICB9LmdldCh1
bmFtZVswXSkKICAgICBwcm9kdWN0ID0gImVkZ2VjaHJvbWl1bSIKICAgICBlZGdlZHJpdmVyX25h
bWUgPSAibXNlZGdlZHJpdmVyIgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZWRn
ZV9jaHJvbWl1bS50eHQiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWl1
bS50eHQiCiAKICAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUs
IHJlbmFtZT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpAQCAtMTMx
NSw3ICsxMzE2LDcgQEAgY2xhc3MgU2Vydm8oQnJvd3Nlcik6CiAgICAgIiIiU2Vydm8tc3BlY2lm
aWMgaW50ZXJmYWNlLiIiIgogCiAgICAgcHJvZHVjdCA9ICJzZXJ2byIKLSAgICByZXF1aXJlbWVu
dHMgPSAicmVxdWlyZW1lbnRzX3NlcnZvLnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSBOb25lCiAK
ICAgICBkZWYgcGxhdGZvcm1fY29tcG9uZW50cyhzZWxmKToKICAgICAgICAgcGxhdGZvcm0gPSB7
CkBAIC0xNDIxLDcgKzE0MjIsNyBAQCBjbGFzcyBXZWJLaXQoQnJvd3Nlcik6CiAgICAgIiIiV2Vi
S2l0LXNwZWNpZmljIGludGVyZmFjZS4iIiIKIAogICAgIHByb2R1Y3QgPSAid2Via2l0IgotICAg
IHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfd2Via2l0LnR4dCIKKyAgICByZXF1aXJlbWVu
dHMgPSBOb25lCiAKICAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5v
bmUsIHJlbmFtZT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpAQCAt
MTU3OSw3ICsxNTgwLDcgQEAgY2xhc3MgRXBpcGhhbnkoQnJvd3Nlcik6CiAgICAgIiIiRXBpcGhh
bnktc3BlY2lmaWMgaW50ZXJmYWNlLiIiIgogCiAgICAgcHJvZHVjdCA9ICJlcGlwaGFueSIKLSAg
ICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4dCIKKyAgICByZXF1aXJl
bWVudHMgPSBOb25lCiAKICAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVs
PU5vbmUsIHJlbmFtZT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKaW5kZXggZDFhOGY3ZWI2
N2M0NTNiMDQxMjQ5MDEyODhiMWE2NzU3ODY2MGIzNy4uNThhZmNlMDFlMGVmMjc5Y2U2N2Q0NDk5
YTkyMTYyYWE0YTVkYWI4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVu
dHMudHh0CkBAIC0xLDIgKzEsMiBAQAotcmVxdWVzdHM9PTIuMjYuMAorcmVxdWVzdHM9PTIuMjcu
MQogbW96aW5mbz09MS4yLjIgICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYyMTIyNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5CmluZGV4IGNhOTBjYzFlZTkz
OTBjODQ3N2YwZTM0ODc1NWJkNGE2YTY2MWM0YTYuLjAxYzI5ZWFlNTNmY2VkOTk1ODQ5Mjk2Y2M1
MzU5ZDJmMmNlNmI5YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkKQEAgLTEyMSw3ICsxMjEs
OCBAQCBkZWYgY2hlY2tfZW52aXJvbihwcm9kdWN0KToKIAogICAgICAgICBtaXNzaW5nX2hvc3Rz
ID0gc2V0KGV4cGVjdGVkX2hvc3RzKQogICAgICAgICBpZiBpc193aW5kb3dzOgotICAgICAgICAg
ICAgaG9zdHNfcGF0aCA9IHIiJXNcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMiICUgb3MuZW52
aXJvbi5nZXQoIlN5c3RlbVJvb3QiLCByIkM6XFdpbmRvd3MiKQorICAgICAgICAgICAgaG9zdHNf
cGF0aCA9IHIiJXNcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMiICUgb3MuZW52aXJvbi5nZXQo
CisgICAgICAgICAgICAgICAgIlN5c3RlbVJvb3QiLCByIkM6XFdpbmRvd3MiKQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgaG9zdHNfcGF0aCA9ICIvZXRjL2hvc3RzIgogCkBAIC0xNzYsOCAr
MTc3LDEwIEBAIGNsYXNzIEJyb3dzZXJTZXR1cChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJu
IHNlbGYuYnJvd3Nlci5pbnN0YWxsKHNlbGYudmVudi5wYXRoLCBjaGFubmVsKQogCiAgICAgZGVm
IGluc3RhbGxfcmVxdWlyZW1lbnRzKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi52ZW52LnNr
aXBfdmlydHVhbGVudl9zZXR1cDoKLSAgICAgICAgICAgIHNlbGYudmVudi5pbnN0YWxsX3JlcXVp
cmVtZW50cyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3cHRydW5uZXIiLCBzZWxm
LmJyb3dzZXIucmVxdWlyZW1lbnRzKSkKKyAgICAgICAgaWYgbm90IHNlbGYudmVudi5za2lwX3Zp
cnR1YWxlbnZfc2V0dXAgYW5kIHNlbGYuYnJvd3Nlci5yZXF1aXJlbWVudHM6CisgICAgICAgICAg
ICBzZWxmLnZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMob3MucGF0aC5qb2luKAorICAgICAgICAg
ICAgICAgIHdwdF9yb290LCAidG9vbHMiLCAid3B0cnVubmVyIiwgc2VsZi5icm93c2VyLnJlcXVp
cmVtZW50cykpCisKIAogICAgIGRlZiBzZXR1cChzZWxmLCBrd2FyZ3MpOgogICAgICAgICBzZWxm
LnNldHVwX2t3YXJncyhrd2FyZ3MpCkBAIC0yODYsMTYgKzI4OSwyMyBAQCBjbGFzcyBGaXJlZm94
QW5kcm9pZChCcm93c2VyU2V0dXApOgogICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0g
PSBwcmVmc19yb290CiAKICAgICAgICAgaWYga3dhcmdzWyJwYWNrYWdlX25hbWUiXSBpcyBOb25l
OgotICAgICAgICAgICAga3dhcmdzWyJwYWNrYWdlX25hbWUiXSA9ICJvcmcubW96aWxsYS5nZWNr
b3ZpZXcudGVzdCIKKyAgICAgICAgICAgIGt3YXJnc1sicGFja2FnZV9uYW1lIl0gPSAib3JnLm1v
emlsbGEuZ2Vja292aWV3LnRlc3RfcnVubmVyIgogICAgICAgICBhcHAgPSBrd2FyZ3NbInBhY2th
Z2VfbmFtZSJdCiAKLSAgICAgICAgaWYga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0gaXMgTm9uZToK
LSAgICAgICAgICAgIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdID0gImVtdWxhdG9yLTU1NTQiCi0K
LSAgICAgICAgIyBXZSdyZSBydW5uaW5nIG9uIGFuIGVtdWxhdG9yIHNvIGVuc3VyZSB0aGF0J3Mg
c2V0IHVwCi0gICAgICAgIGlmIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLnN0YXJ0c3dpdGgoImVt
dWxhdG9yLSIpOgotICAgICAgICAgICAgZW11bGF0b3IgPSBhbmRyb2lkLmluc3RhbGwobG9nZ2Vy
LCByZWluc3RhbGw9RmFsc2UsIG5vX3Byb21wdD1ub3Qgc2VsZi5wcm9tcHQpCi0gICAgICAgICAg
ICBhbmRyb2lkLnN0YXJ0KGxvZ2dlciwgZW11bGF0b3I9ZW11bGF0b3IsIHJlaW5zdGFsbD1GYWxz
ZSkKKyAgICAgICAgaWYgbm90IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdOgorICAgICAgICAgICAg
a3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0gPSBbImVtdWxhdG9yLTU1NTQiXQorCisgICAgICAgIGZv
ciBkZXZpY2Vfc2VyaWFsIGluIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdOgorICAgICAgICAgICAg
aWYgZGV2aWNlX3NlcmlhbC5zdGFydHN3aXRoKCJlbXVsYXRvci0iKToKKyAgICAgICAgICAgICAg
ICAjIFdlJ3JlIHJ1bm5pbmcgb24gYW4gZW11bGF0b3Igc28gZW5zdXJlIHRoYXQncyBzZXQgdXAK
KyAgICAgICAgICAgICAgICBlbXVsYXRvciA9IGFuZHJvaWQuaW5zdGFsbChsb2dnZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnN0YWxsPUZhbHNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vX3Byb21wdD1ub3Qg
c2VsZi5wcm9tcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGV2aWNlX3NlcmlhbD1kZXZpY2Vfc2VyaWFsKQorICAgICAgICAgICAgICAgIGFuZHJvaWQuc3Rh
cnQobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW11bGF0b3I9ZW11bGF0
b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWluc3RhbGw9RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPWRldmljZV9zZXJpYWwpCiAK
ICAgICAgICAgaWYgIkFEQl9QQVRIIiBub3QgaW4gb3MuZW52aXJvbjoKICAgICAgICAgICAgIGFk
Yl9wYXRoID0gb3MucGF0aC5qb2luKGFuZHJvaWQuZ2V0X3Nka19wYXRoKE5vbmUpLApAQCAtMzA0
LDE1ICszMTQsMTYgQEAgY2xhc3MgRmlyZWZveEFuZHJvaWQoQnJvd3NlclNldHVwKToKICAgICAg
ICAgICAgIG9zLmVudmlyb25bIkFEQl9QQVRIIl0gPSBhZGJfcGF0aAogICAgICAgICBhZGJfcGF0
aCA9IG9zLmVudmlyb25bIkFEQl9QQVRIIl0KIAotICAgICAgICBkZXZpY2UgPSBtb3pkZXZpY2Uu
QURCRGV2aWNlRmFjdG9yeShhZGI9YWRiX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRldmljZT1rd2FyZ3NbImRldmljZV9zZXJpYWwiXSkKKyAgICAg
ICAgZm9yIGRldmljZV9zZXJpYWwgaW4ga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl06CisgICAgICAg
ICAgICBkZXZpY2UgPSBtb3pkZXZpY2UuQURCRGV2aWNlRmFjdG9yeShhZGI9YWRiX3BhdGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2U9ZGV2
aWNlX3NlcmlhbCkKIAotICAgICAgICBpZiBzZWxmLmJyb3dzZXIuYXBrX3BhdGg6Ci0gICAgICAg
ICAgICBkZXZpY2UudW5pbnN0YWxsX2FwcChhcHApCi0gICAgICAgICAgICBkZXZpY2UuaW5zdGFs
bF9hcHAoc2VsZi5icm93c2VyLmFwa19wYXRoKQotICAgICAgICBlbGlmIG5vdCBkZXZpY2UuaXNf
YXBwX2luc3RhbGxlZChhcHApOgotICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoImFwcCAl
cyBub3QgaW5zdGFsbGVkIG9uIGRldmljZSAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGFwcCwga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0pKQorICAgICAgICAgICAgaWYgc2Vs
Zi5icm93c2VyLmFwa19wYXRoOgorICAgICAgICAgICAgICAgIGRldmljZS51bmluc3RhbGxfYXBw
KGFwcCkKKyAgICAgICAgICAgICAgICBkZXZpY2UuaW5zdGFsbF9hcHAoc2VsZi5icm93c2VyLmFw
a19wYXRoKQorICAgICAgICAgICAgZWxpZiBub3QgZGV2aWNlLmlzX2FwcF9pbnN0YWxsZWQoYXBw
KToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiYXBwICVzIG5vdCBpbnN0YWxs
ZWQgb24gZGV2aWNlICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFw
cCwgZGV2aWNlX3NlcmlhbCkpCiAKIAogY2xhc3MgQ2hyb21lKEJyb3dzZXJTZXR1cCk6CkBAIC0z
MjMsNyArMzM0LDcgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXJTZXR1cCk6CiAgICAgZGVmIHNldHVw
X2t3YXJncyhzZWxmLCBrd2FyZ3MpOgogICAgICAgICBicm93c2VyX2NoYW5uZWwgPSBrd2FyZ3Nb
ImJyb3dzZXJfY2hhbm5lbCJdCiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToK
LSAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeShjaGFubmVsPWJy
b3dzZXJfY2hhbm5lbCkKKyAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2Jp
bmFyeSh2ZW52X3BhdGg9c2VsZi52ZW52LnBhdGgsIGNoYW5uZWw9YnJvd3Nlcl9jaGFubmVsKQog
ICAgICAgICAgICAgaWYgYmluYXJ5OgogICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0g
PSBiaW5hcnkKICAgICAgICAgICAgIGVsc2U6CkBAIC0zNzEsNyArMzgyLDggQEAgY2xhc3MgQ2hy
b21lKEJyb3dzZXJTZXR1cCk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJh
aXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIG9yIGluc3RhbGwgbWF0Y2hpbmcgQ2hy
b21lRHJpdmVyIGJpbmFyeSIpCiAgICAgICAgIGlmIGJyb3dzZXJfY2hhbm5lbCBpbiBzZWxmLmV4
cGVyaW1lbnRhbF9jaGFubmVsczoKLSAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJBdXRvbWF0aWNh
bGx5IHR1cm5pbmcgb24gZXhwZXJpbWVudGFsIGZlYXR1cmVzIGZvciBDaHJvbWUgRGV2L0NhbmFy
eSBvciBDaHJvbWl1bSB0cnVuayIpCisgICAgICAgICAgICBsb2dnZXIuaW5mbygKKyAgICAgICAg
ICAgICAgICAiQXV0b21hdGljYWxseSB0dXJuaW5nIG9uIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBm
b3IgQ2hyb21lIERldi9DYW5hcnkgb3IgQ2hyb21pdW0gdHJ1bmsiKQogICAgICAgICAgICAga3dh
cmdzWyJiaW5hcnlfYXJncyJdLmFwcGVuZCgiLS1lbmFibGUtZXhwZXJpbWVudGFsLXdlYi1wbGF0
Zm9ybS1mZWF0dXJlcyIpCiAgICAgICAgICAgICAjIEhBQ0soSGV4Y2xlcyk6IHdvcmsgYXJvdW5k
IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNjQ0OAog
ICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYXJncyJdLmFwcGVuZCgiLS1kaXNhYmxlLWJ1
aWxkLWNoZWNrIikKQEAgLTY4NiwxNCArNjk4LDE2IEBAIGNsYXNzIFdlYktpdEdUS01pbmlCcm93
c2VyKEJyb3dzZXJTZXR1cCk6CiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6
CiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKLSAgICAgICAgICAgIGJpbmFy
eSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeSh2ZW52X3BhdGg9c2VsZi52ZW52LnBhdGgsIGNo
YW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKKyAgICAgICAgICAgIGJpbmFyeSA9IHNl
bGYuYnJvd3Nlci5maW5kX2JpbmFyeSgKKyAgICAgICAgICAgICAgICB2ZW52X3BhdGg9c2VsZi52
ZW52LnBhdGgsIGNoYW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKIAogICAgICAgICAg
ICAgaWYgYmluYXJ5IGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3Io
IlVuYWJsZSB0byBmaW5kIE1pbmlCcm93c2VyIGJpbmFyeSIpCiAgICAgICAgICAgICBrd2FyZ3Nb
ImJpbmFyeSJdID0gYmluYXJ5CiAKICAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5
Il0gaXMgTm9uZToKLSAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIu
ZmluZF93ZWJkcml2ZXIodmVudl9wYXRoPXNlbGYudmVudi5wYXRoLCBjaGFubmVsPWt3YXJnc1si
YnJvd3Nlcl9jaGFubmVsIl0pCisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfd2ViZHJpdmVyKAorICAgICAgICAgICAgICAgIHZlbnZfcGF0aD1zZWxmLnZl
bnYucGF0aCwgY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdKQogCiAgICAgICAgICAg
ICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgcmFpc2UgV3B0
cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIFdlYktpdFdlYkRyaXZlciBpbiBQQVRIIikKQEAgLTgw
Nyw3ICs4MjEsOCBAQCBkZWYgc2V0dXBfd3B0cnVubmVyKHZlbnYsICoqa3dhcmdzKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFubmVsKSkKICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSBj
aGFubmVsCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygiVmFsaWQgY2hh
bm5lbHMgZm9yICVzIG5vdCBrbm93bjsgdXNpbmcgYXJndW1lbnQgdW5tb2RpZmllZCIgJSBrd2Fy
Z3NbInByb2R1Y3QiXSkKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJWYWxpZCBjaGFubmVscyBm
b3IgJXMgbm90IGtub3duOyB1c2luZyBhcmd1bWVudCB1bm1vZGlmaWVkIiAlCisgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbInByb2R1Y3QiXSkKICAgICAgICAgICAgIGt3YXJnc1siYnJv
d3Nlcl9jaGFubmVsIl0gPSBrd2FyZ3NbImNoYW5uZWwiXQogCiAgICAgaWYga3dhcmdzWyJpbnN0
YWxsX2Jyb3dzZXIiXToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvX19pbml0X18u
cHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUy
OWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE3
NjRjNGY1NWY1NWVmMmM5OGI0ZmI1ZTdiMzI5ODNiNzg0MzIxMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvbGF0ZXN0
X21vemlsbGFfY2VudHJhbC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2Jyb3dzZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2luc3Rh
bGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC90ZXN0cy90ZXN0X21hcmtkb3duLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVz
dF9ydW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdG94LmluaQppbmRleCBhNGViMGM2ZTgwMWQ1MDIzMThjY2Q5ZDIyNTRhYWRjMDhj
YTNlMWIzLi5mM2ExNTgxOWQ3OTg5YTYzOTMzMGZiMTllMmY5ZDEwZGRiM2FiYWUzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90b3guaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3RveC5pbmkKQEAgLTcsNyArNyw3IEBAIHNraXBfbWlzc2luZ19pbnRlcnBy
ZXRlcnMgPSBGYWxzZQogZGVwcyA9CiAgIC1ye3RveGluaWRpcn0vLi4vcmVxdWlyZW1lbnRzX3B5
dGVzdC50eHQKICAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAot
ICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAorICAt
cnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21pdW0udHh0CiAgIC1y
e3RveGluaWRpcn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAogCiBjb21t
YW5kcyA9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4OTFhNDEyMmFhNWY2OGIzNWE4ODhhMTM5ODRkMDg4YTljNmIx
N2UxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9h
bmRyb2lkLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvYnJvd3Nlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFya2Rv
d24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC9wYXRocwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94
LmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3VwZGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3V0aWxzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdmlydHVhbGVudi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
LmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk1NjE2ZWYxZDE5YzU0Y2I5
NjNlOTllMWEyMjZlODMyMGNjMzc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyLy5naXRpZ25vcmUK
QEAgLTAsMCArMSw4IEBACisqLnB5W2NvXQorKn4KKyojCitcIyoKK192aXJ0dWFsZW52Cit0ZXN0
L3Rlc3QuY2ZnCit0ZXN0L21ldGFkYXRhL01BTklGRVNULmpzb24KK3dwdHJ1bm5lci5lZ2ctaW5m
bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxM2ZjNDEwOTZkNzI0YjEwM2Vi
YTY5ZjZjYzg3OWJiOWQ5M2VkZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvYXJjaGl0ZWN0dXJlLnN2ZwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29t
bWFuZHMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy9kZXNpZ24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9leHBlY3RhdGlvbi5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9kb2NzL2ludGVybmFscy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHMudHh0CmluZGV4IDU3NGZlNTc3NzllOTg1OTJkYWE0YzQxZjAyMDUz
MTgxMDQxNGI5YTUuLmFhOGZhN2Y2OWVmNGM2N2Q2MDEzM2ZkZTM4N2RlMGZkNmFhYjI1MGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApA
QCAtMSw4ICsxLDkgQEAKIGh0bWw1bGliPT0xLjEKK21vemRlYnVnPT0wLjMuMAogbW96aW5mbz09
MS4yLjIgICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MTIyNgogbW96bG9nPT03LjEuMAotbW96ZGVidWc9PTAuMy4wCi1waWxsb3c9PTguMy4yCi11cmxs
aWIzW3NlY3VyZV09PTEuMjYuNwotcmVxdWVzdHM9PTIuMjYuMAorbW96cHJvY2Vzcz09MS4zLjAK
K3BpbGxvdz09OC40LjAKK3JlcXVlc3RzPT0yLjI3LjEKIHNpeD09MS4xNi4wCit1cmxsaWIzW3Nl
Y3VyZV09PTEuMjYuOApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vidmll
dy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzk2MTk1NThhNWRjODQzZjc2NWQxNGY1ZmU2NTc4YjBhM2Q0YzFl
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LW1venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkZWY3MWU5YTEzMjY5Y2E4Y2IwNmE3ZDEwOTFmNWQzOGY4NGU1MGY1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJv
bWUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1haW9xdWljPT0wLjkuMTUKLW1v
enByb2Nlc3M9PTEuMy4wClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJv
bWVfYW5kcm9pZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NjE5NTU4YTVk
Yzg0M2Y3NjVkMTRmNWZlNjU3OGIwYTNkNGMxZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLW1venByb2Nlc3M9PTEuMy4wCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
X2lvcy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NjE5NTU4YTVkYzg0M2Y3
NjVkMTRmNWZlNjU3OGIwYTNkNGMxZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9pb3MudHh0CisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19jaHJvbWl1bS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21pdW0udHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZjYjk0MzYzZTkxZmU3YWMyYjliNzUyMjRiNTg1ZGU4MjM0NmM2YTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21pdW0udHh0CkBAIC0wLDAgKzEgQEAKK2Fp
b3F1aWM9PTAuOS4xNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2VkZ2UudHh0CmluZGV4IDdhZDAxODBiODU0NTM4NTNjOGJjYjYxNWVjYmVl
ZGJhYjk3MDRmMWEuLjYwMGI2ZWJiZWRjOWZmNGU1MmU1NWMyMTZkYjY4NGY0MjAzNWYzZjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
ZWRnZS50eHQKQEAgLTEsMiArMSBAQAotbW96cHJvY2Vzcz09MS4zLjAKIHNlbGVuaXVtPT0zLjE0
MS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIxOWY2OGVlZDNlZDVhMWQ4NjUzMjJmNGFlMzkwNzRhMzIzNjcyOTcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2Vf
Y2hyb21pdW0udHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotbW96cHJvY2Vzcz09MS4z
LjANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2VwaXBoYW55LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk2MTk1
NThhNWRjODQzZjc2NWQxNGY1ZmU2NTc4YjBhM2Q0YzFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4
dAppbmRleCA2YmYyODBjNDdjOTJjYTZjM2I1MDE1NDg1YzI0NWNlMWMzYzM4ZGRkLi5jOGFjMzNh
N2JlOTk4NTc5MmJmMTM5ZjIxMTMwNDMzMWJkOGY1MmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfZmlyZWZveC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0x
LDkgKzEsOSBAQAogbWFyaW9uZXR0ZV9kcml2ZXI9PTMuMS4wCiBtb3pjcmFzaD09Mi4xLjAKK21v
emRldmljZT09NC4wLjMKIG1vemluc3RhbGw9PTIuMC4xCiBtb3psZWFrPT0wLjIKIG1vem5ldHdv
cms9PTEuMS4wCi1tb3pwcm9jZXNzPT0xLjMuMAogbW96cHJvZmlsZT09Mi41LjAKIG1venJ1bm5l
cj09OC4yLjEKIG1venZlcnNpb249PTIuMy4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
c2FmYXJpLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CmluZGV4IDY1Yjc2YWE4NWNj
NDFmMGE2Y2Y5NjYxMzgxMDA3YWE2NDM2YjFkZWQuLmUyZDA4ZTcwYzFhZjNmNDU1NDQyNzQ5NDI0
N2MyYTdhZTJmMjM1MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CkBAIC0xLDIgKzEgQEAKLW1venByb2Nlc3M9
PTEuMy4wCiBwc3V0aWw9PTUuOC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2Uu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAppbmRleCA0NjZkMWU1ZGU0MjBjNTczOTYy
NWZmOTE1YjRkYmQ4NmI1ZDI3N2E4Li43ZDRmZjljNzI4NDRlMWZjNjFiZGMwOWYyODBkMGQ4MGQ5
NDFiZWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19zYXVjZS50eHQKQEAgLTEsMyArMSwyIEBACi1tb3pwcm9jZXNzPT0xLjMuMAog
c2VsZW5pdW09PTMuMTQxLjAKLXJlcXVlc3RzPT0yLjI2LjAKK3JlcXVlc3RzPT0yLjI3LjEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vy
dm8udHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTYxOTU1OGE1ZGM4NDNmNzY1
ZDE0ZjVmZTY1NzhiMGEzZDRjMWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSArMCwwIEBACi1tb3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X3dlYmtpdC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzk2MTk1NThhNWRjODQzZjc2NWQxNGY1ZmU2NTc4YjBhM2Q0YzFlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfd2Via2l0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLW1venByb2Nlc3M9
PTEuMy4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRf
ZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWls
Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWFlZjA0OWNkMTIyZjcz
MzJjNjZmNWEwODc5NDdlNTEyYTU5ZDBlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWls
Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF9hbmRfZmFp
bC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sLmluaQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyYjMzZjc3NjRiZGU2ZTJhZWE3YmMyY2NkOGJmMzcz
OWJhYmFkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCisrKyAv
ZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWxdCi0gIHR5
cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRh
L3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmM2RjMzM2MmZhYzQxYmJlOGRlZDQ0NTg5ZTg5OGVmNTg5Y2IxYTg5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAt
MSwzICswLDAgQEAKLVtyZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAot
ICBleHBlY3RlZDogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEwNTUzMzdlMmQ2NWNiOGYyMWQyY2VhYzYyZTM1Y2U3YmI5OWE5NzYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotW3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0g
IGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVm
dGVzdF9yZWZfdGltZW91dC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X3JlZl90aW1lb3V0Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
OTM2MjQxYWQyOWNkMTYyZjk2MTA3NmMyYmE4ZWI5NjBmNzY5OGMzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBA
Ci1bcmVmdGVzdF9yZWZfdGltZW91dC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVk
OiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90
aW1lb3V0Lmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91
dC5odG1sLmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQxYjliYWRlOTVkN2Ix
MDFjOGRiZjUxNTQ3ZmZiYWVjMjI2MGMyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0
Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF90aW1lb3V0
Lmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IFRJTUVPVVQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWVlNGZiYjc2Mzk2ZWIyNjQxYjNhNDBmZjFhZmE0N2ZhYWUzZDhmMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3Qv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sLmluaQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sLmluaQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwuaW5pCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmluaQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L19fZGlyX18uaW5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L19fZGlyX18uaW5pCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOWQxNjRjZDQxOGEyYTc3Yzc5MzY2OWM3Y2Y2YjA5ZmZjNjE4ZTY3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0
YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9fX2Rpcl9fLmluaQorKysgL2Rldi9udWxsCkBAIC0x
LDIgKzAsMCBAQAotcHJlZnM6IFsiYnJvd3Nlci5kaXNwbGF5LmZvcmVncm91bmRfY29sb3I6I0ZG
MDAwMCIsCi0gICAgICAgICJicm93c2VyLmRpc3BsYXkuYmFja2dyb3VuZF9jb2xvcjojMDAwMDAw
Il0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFk
YXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sLmluaSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX3Jl
c2V0Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzkxOThkOWJiZjFj
Nzc5YmU0MmY0N2JiNTJjNjg5NmY5YWQ2MjRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9z
dWJkaXIvdGVzdF9wcmVmX3Jlc2V0Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi1bdGVzdF9wcmVmX3Jlc2V0Lmh0bWxdCi0gIHByZWZzOiBbQFJlc2V0XQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1MmRjMDlkZTU1YzNiMGQy
OThlMjkyM2FhOTUzNzFkMTU4NzkxOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRp
ci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX3Jl
c2V0Lmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvdGVzdF9wcmVmX3NldC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5l
c3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiYzliZmI5YzQxMzk3ZGMxN2RjYWZmMGE0NDlkZjgxMGVmNDljYTc4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEv
dGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwuaW5pCisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1bdGVzdF9wcmVmX3NldC5odG1sXQotICBwcmVmczogWyJicm93c2Vy
LmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvcjojMDBGRjAwIiwKLSAgICAgICAgICAiYnJvd3Nlci5k
aXNwbGF5LmJhY2tncm91bmRfY29sb3I6IzAwMDAwMCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21l
dGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFk
YXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdiMWJiMTgzMmE5MTg3MTliNzUwN2Q1MzAwNThmYmI4ZGYzNzI0OTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJl
Zm94L19fZGlyX18uaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rl
c3RfcHJlZl9zZXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhh
cm5lc3Mvc3ViZGlyL19fZGlyX18uaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9z
dWJkaXIvX19kaXJfXy5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MTU3ZmJj
NmE5ZjRhOWE2YmIzYzg5NGIzZTA5NWJmYTUxZTMxNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJk
aXIvX19kaXJfXy5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1kaXNhYmxlZDogdHJ1
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21l
dGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci90ZXN0aGFybmVzc18xLmh0bWwuaW5pCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjkzOTM5ODdiNmM3M2U2OTEwYWZjZjBjYTBiNzUzOGZj
ZGI5MTliLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkK
KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVt0ZXN0aGFybmVzc18xLmh0bWxdCi0gIGRp
c2FibGVkOiBARmFsc2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZmJkODllZmVmYTk0Y2Q5MmFiZTIyNWZhYTNkOTJiNDQwODIy
NTYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVz
cy9zdWJkaXIvX19kaXJfXy5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRp
ci90ZXN0aGFybmVzc18xLmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rl
c3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkwYjlhNmU5ZjAxMmI1ZTIzNGMxNWQyOTgwNWM2MWY2YmU4ZDVhNTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0
aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCww
IEBACi1bdGVzdGhhcm5lc3NfMC5odG1sXQotICB0eXBlOiB0ZXN0aGFybmVzcwotICBbVGVzdCB0
aGF0IHNob3VsZCBmYWlsXQotICAgIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5pIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC9tZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sLmluaQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE1M2UwNzMzYWJjYjE3MzkxOWIzZDQ4YTc3NjdiNWJi
YWQ4YjBlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5pCisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bdGVzdGhhcm5lc3NfZXJyb3IuaHRtbF0KLSAg
dHlwZTogdGVzdGhhcm5lc3MKLSAgZXhwZWN0ZWQ6IEVSUk9SCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbC5pbmkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZWNhNTE5MWFiMWZhNmM1ZDU1MzFhMWUwNWI5
OTJkMDk3MjNkZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwu
aW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bdGVzdGhhcm5lc3NfdGltZW91dC5o
dG1sXQotICB0eXBlOiB0ZXN0aGFybmVzcwotICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvdGVzdGhhcm5lc3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYzNGVhMjUzOTcyNWQ3MzUwZjc2ODU0ZjBkYmVjMDJkMGYzYzFjMzEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5o
dG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3Iu
aHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVv
dXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5jZmcuZXhhbXBsZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdC5jZmcuZXhhbXBsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI0ODIy
NjIxNmMzMGViN2Q4YjA3ODE4OTYzNjk2NGI3ZjdjZTUyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2ZnLmV4YW1wbGUKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1bZ2VuZXJhbF0KLXRlc3RzPS9wYXRoL3RvL3dlYi1w
bGF0Zm9ybS10ZXN0cy8KLW1ldGFkYXRhPS9wYXRoL3RvL3dlYi1wbGF0Zm9ybS10ZXN0cy8KLXNz
bC10eXBlPW5vbmUKLQotIyBbZmlyZWZveF0KLSMgYmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3gKLSMg
cHJlZnMtcm9vdD0vcGF0aC90by9nZWNrby1zcmMvdGVzdGluZy9wcm9maWxlcy8KLQotIyBbc2Vy
dm9dCi0jIGJpbmFyeT0vcGF0aC90by9zZXJ2by1zcmMvdGFyZ2V0L3JlbGVhc2Uvc2Vydm8KLSMg
ZXhjbHVkZT10ZXN0aGFybmVzcyAjIEJlY2F1c2UgaXQgbmVlZHMgYSBzcGVjaWFsIHRlc3RoYXJu
ZXNzLmpzCi0KLSMgW3NlcnZvZHJpdmVyXQotIyBiaW5hcnk9L3BhdGgvdG8vc2Vydm8tc3JjL3Rh
cmdldC9yZWxlYXNlL3NlcnZvCi0jIGV4Y2x1ZGU9dGVzdGhhcm5lc3MgIyBCZWNhdXNlIGl0IG5l
ZWRzIGEgc3BlY2lhbCB0ZXN0aGFybmVzcy5qcwotCi0jIFtjaHJvbWVdCi0jIGJpbmFyeT0vcGF0
aC90by9jaHJvbWUKLSMgd2ViZHJpdmVyLWJpbmFyeT0vcGF0aC90by9jaHJvbWVkcml2ZXIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDJlN2FiYmJhYjQ5MDkyMzcwNjVjYjAxMjVkYjcxMWExODYwNzg5
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBwcmludF9mdW5jdGlvbgotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgb3MKLWltcG9y
dCBzeXMKLQotZnJvbSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKLWZyb20gbW96bG9nLmhh
bmRsZXJzIGltcG9ydCBCYXNlSGFuZGxlciwgU3RyZWFtSGFuZGxlcgotZnJvbSBtb3psb2cuZm9y
bWF0dGVycyBpbXBvcnQgTWFjaEZvcm1hdHRlcgotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcwot
ZnJvbSBzaXgubW92ZXMuY29uZmlncGFyc2VyIGltcG9ydCBDb25maWdQYXJzZXIKLWZyb20gd3B0
cnVubmVyIGltcG9ydCB3cHRjb21tYW5kbGluZSwgd3B0cnVubmVyCi0KLWhlcmUgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKLQotZGVmIHNldHVwX3dwdHJ1bm5l
cl9sb2dnaW5nKGxvZ2dlcik6Ci0gICAgc3RydWN0dXJlZGxvZy5zZXRfZGVmYXVsdF9sb2dnZXIo
bG9nZ2VyKQotICAgIHdwdHJ1bm5lci5sb2dnZXIgPSBsb2dnZXIKLSAgICB3cHRydW5uZXIud3B0
bG9nZ2luZy5zZXR1cF9zdGRsaWJfbG9nZ2VyKCkKLQotY2xhc3MgUmVzdWx0SGFuZGxlcihCYXNl
SGFuZGxlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcmJvc2U9RmFsc2UsIGxvZ2dlcj1O
b25lKToKLSAgICAgICAgc2VsZi5pbm5lciA9IFN0cmVhbUhhbmRsZXIoc3lzLnN0ZG91dCwgTWFj
aEZvcm1hdHRlcigpKQotICAgICAgICBCYXNlSGFuZGxlci5fX2luaXRfXyhzZWxmLCBzZWxmLmlu
bmVyKQotICAgICAgICBzZWxmLnByb2R1Y3QgPSBOb25lCi0gICAgICAgIHNlbGYudmVyYm9zZSA9
IHZlcmJvc2UKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLQotICAgICAgICBzZWxmLnJl
Z2lzdGVyX21lc3NhZ2VfaGFuZGxlcnMoIndwdHJ1bm5lci10ZXN0IiwgeyJzZXQtcHJvZHVjdCI6
IHNlbGYuc2V0X3Byb2R1Y3R9KQotCi0gICAgZGVmIHNldF9wcm9kdWN0KHNlbGYsIHByb2R1Y3Qp
OgotICAgICAgICBzZWxmLnByb2R1Y3QgPSBwcm9kdWN0Ci0KLSAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgZGF0YSk6Ci0gICAgICAgIGlmIHNlbGYucHJvZHVjdCBpcyBub3QgTm9uZSBhbmQgZGF0YVsi
YWN0aW9uIl0gaW4gWyJzdWl0ZV9zdGFydCIsICJzdWl0ZV9lbmQiXToKLSAgICAgICAgICAgICMg
SGFjazogbW96bG9nIHNldHMgc29tZSBpbnRlcm5hbCBzdGF0ZSB0byBwcmV2ZW50IG11bHRpcGxl
IHN1aXRlX3N0YXJ0IG9yCi0gICAgICAgICAgICAjIHN1aXRlX2VuZCBtZXNzYWdlcy4gV2UgYWN0
dWFsbHkgd2FudCB0aGF0IGhlcmUgKG9uZSBmcm9tIHRoZSBtZXRhaGFybmVzcwotICAgICAgICAg
ICAgIyBhbmQgb25lIGZyb20gdGhlIGluZGl2aWR1YWwgdGVzdCB0eXBlIGhhcm5lc3MpLCBzbyBv
dmVycmlkZSB0aGF0IGludGVybmFsCi0gICAgICAgICAgICAjIHN0YXRlIChhIGJldHRlciBzb2x1
dGlvbiBtaWdodCBiZSB0byBub3Qgc2hhcmUgbG9nZ2VycywgYnV0IHRoaXMgd29ya3Mgd2VsbAot
ICAgICAgICAgICAgIyBlbm91Z2gpCi0gICAgICAgICAgICBzZWxmLmxvZ2dlci5fc3RhdGUuc3Vp
dGVfc3RhcnRlZCA9IFRydWUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIChub3Qg
c2VsZi52ZXJib3NlIGFuZAotICAgICAgICAgICAgKGRhdGFbImFjdGlvbiJdID09ICJwcm9jZXNz
X291dHB1dCIgb3IKLSAgICAgICAgICAgICBkYXRhWyJhY3Rpb24iXSA9PSAibG9nIiBhbmQgZGF0
YVsibGV2ZWwiXSBub3QgaW4gWyJlcnJvciIsICJjcml0aWNhbCJdKSk6Ci0gICAgICAgICAgICBy
ZXR1cm4KLQotICAgICAgICBpZiAidGVzdCIgaW4gZGF0YToKLSAgICAgICAgICAgIGRhdGEgPSBk
YXRhLmNvcHkoKQotICAgICAgICAgICAgZGF0YVsidGVzdCJdID0gIiVzOiAlcyIgJSAoc2VsZi5w
cm9kdWN0LCBkYXRhWyJ0ZXN0Il0pCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoZGF0YSkK
LQotZGVmIHRlc3Rfc2V0dGluZ3MoKToKLSAgICByZXR1cm4gewotICAgICAgICAiaW5jbHVkZSI6
ICJfdGVzdCIsCi0gICAgICAgICJtYW5pZmVzdC11cGRhdGUiOiAiIiwKLSAgICAgICAgIm5vLWNh
cHR1cmUtc3RkaW8iOiAiIgotICAgIH0KLQotZGVmIHJlYWRfY29uZmlnKCk6Ci0gICAgcGFyc2Vy
ID0gQ29uZmlnUGFyc2VyKCkKLSAgICBwYXJzZXIucmVhZCgidGVzdC5jZmciKQotCi0gICAgcnYg
PSB7ImdlbmVyYWwiOnt9LAotICAgICAgICAgICJwcm9kdWN0cyI6e319Ci0KLSAgICBydlsiZ2Vu
ZXJhbCJdLnVwZGF0ZShkaWN0KHBhcnNlci5pdGVtcygiZ2VuZXJhbCIpKSkKLQotICAgICMgVGhp
cyBvbmx5IGFsbG93cyBvbmUgcHJvZHVjdCBwZXIgd2hhdGV2ZXIgZm9yIG5vdwotICAgIGZvciBw
cm9kdWN0IGluIHBhcnNlci5zZWN0aW9ucygpOgotICAgICAgICBpZiBwcm9kdWN0ICE9ICJnZW5l
cmFsIjoKLSAgICAgICAgICAgIHJ2WyJwcm9kdWN0cyJdW3Byb2R1Y3RdID0ge30KLSAgICAgICAg
ICAgIGZvciBrZXksIHZhbHVlIGluIHBhcnNlci5pdGVtcyhwcm9kdWN0KToKLSAgICAgICAgICAg
ICAgICBydlsicHJvZHVjdHMiXVtwcm9kdWN0XVtrZXldID0gdmFsdWUKLQotICAgIHJldHVybiBy
dgotCi1kZWYgcnVuX3Rlc3RzKHByb2R1Y3QsIGt3YXJncyk6Ci0gICAga3dhcmdzWyJ0ZXN0X3Bh
dGhzIl1bIi9fdGVzdC8iXSA9IHsidGVzdHNfcGF0aCI6IG9zLnBhdGguam9pbihoZXJlLCAidGVz
dGRhdGEiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRhZGF0
YV9wYXRoIjogb3MucGF0aC5qb2luKGhlcmUsICJtZXRhZGF0YSIpfQotCi0gICAgd3B0cnVubmVy
LnJ1bl90ZXN0cygqKmt3YXJncykKLQotZGVmIHNldHRpbmdzX3RvX2FyZ3Yoc2V0dGluZ3MpOgot
ICAgIHJ2ID0gW10KLSAgICBmb3IgbmFtZSwgdmFsdWUgaW4gaXRlcml0ZW1zKHNldHRpbmdzKToK
LSAgICAgICAga2V5ID0gIi0tJXMiICUgbmFtZQotICAgICAgICBpZiBub3QgdmFsdWU6Ci0gICAg
ICAgICAgICBydi5hcHBlbmQoa2V5KQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIGxp
c3QpOgotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gdmFsdWU6Ci0gICAgICAgICAgICAgICAgcnYu
ZXh0ZW5kKFtrZXksIGl0ZW1dKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcnYuZXh0ZW5k
KFtrZXksIHZhbHVlXSkKLSAgICByZXR1cm4gcnYKLQotZGVmIHNldF9mcm9tX2FyZ3Moc2V0dGlu
Z3MsIGFyZ3MpOgotICAgIGlmIGFyZ3MudGVzdDoKLSAgICAgICAgc2V0dGluZ3NbImluY2x1ZGUi
XSA9IGFyZ3MudGVzdAotICAgIGlmIGFyZ3MudGFnczoKLSAgICAgICAgc2V0dGluZ3NbInRhZ3Mi
XSA9IGFyZ3MudGFncwotCi1kZWYgcnVuKGNvbmZpZywgYXJncyk6Ci0gICAgbG9nZ2VyID0gc3Ry
dWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ3ZWItcGxhdGZvcm0tdGVzdHMiKQotICAgIGxv
Z2dlci5hZGRfaGFuZGxlcihSZXN1bHRIYW5kbGVyKGxvZ2dlcj1sb2dnZXIsIHZlcmJvc2U9YXJn
cy52ZXJib3NlKSkKLSAgICBzZXR1cF93cHRydW5uZXJfbG9nZ2luZyhsb2dnZXIpCi0KLSAgICBw
YXJzZXIgPSB3cHRjb21tYW5kbGluZS5jcmVhdGVfcGFyc2VyKCkKLQotICAgIGxvZ2dlci5zdWl0
ZV9zdGFydCh0ZXN0cz1bXSkKLQotICAgIGZvciBwcm9kdWN0LCBwcm9kdWN0X3NldHRpbmdzIGlu
IGl0ZXJpdGVtcyhjb25maWdbInByb2R1Y3RzIl0pOgotICAgICAgICBpZiBhcmdzLnByb2R1Y3Qg
YW5kIHByb2R1Y3Qgbm90IGluIGFyZ3MucHJvZHVjdDoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0K
LSAgICAgICAgc2V0dGluZ3MgPSB0ZXN0X3NldHRpbmdzKCkKLSAgICAgICAgc2V0dGluZ3MudXBk
YXRlKGNvbmZpZ1siZ2VuZXJhbCJdKQotICAgICAgICBzZXR0aW5ncy51cGRhdGUocHJvZHVjdF9z
ZXR0aW5ncykKLSAgICAgICAgc2V0dGluZ3NbInByb2R1Y3QiXSA9IHByb2R1Y3QKLSAgICAgICAg
c2V0X2Zyb21fYXJncyhzZXR0aW5ncywgYXJncykKLQotICAgICAgICBrd2FyZ3MgPSB2YXJzKHBh
cnNlci5wYXJzZV9hcmdzKHNldHRpbmdzX3RvX2FyZ3Yoc2V0dGluZ3MpKSkKLSAgICAgICAgd3B0
Y29tbWFuZGxpbmUuY2hlY2tfYXJncyhrd2FyZ3MpCi0KLSAgICAgICAgbG9nZ2VyLnNlbmRfbWVz
c2FnZSgid3B0cnVubmVyLXRlc3QiLCAic2V0LXByb2R1Y3QiLCBwcm9kdWN0KQotCi0gICAgICAg
IHJ1bl90ZXN0cyhwcm9kdWN0LCBrd2FyZ3MpCi0KLSAgICBsb2dnZXIuc2VuZF9tZXNzYWdlKCJ3
cHRydW5uZXItdGVzdCIsICJzZXQtcHJvZHVjdCIsIE5vbmUpCi0gICAgbG9nZ2VyLnN1aXRlX2Vu
ZCgpCi0KLWRlZiBnZXRfcGFyc2VyKCk6Ci0gICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQ
YXJzZXIoKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJ2ZXJib3NlIGxvZyBvdXRwdXQiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcHJv
ZHVjdCIsIGFjdGlvbj0iYXBwZW5kIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNw
ZWNpZmljIHByb2R1Y3QgdG8gaW5jbHVkZSBpbiB0ZXN0IHJ1biIpCi0gICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS1wZGIiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iSW52b2tlIHBkYiBvbiB1bmNhdWdodCBleGNlcHRpb24iKQotICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tdGFnIiwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ0YWdzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InRhZ3MgdG8gc2VsZWN0IHRlc3RzIikKLSAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0IiwgbmFyZ3M9IioiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iU3BlY2lmaWMgdGVzdHMgdG8gaW5jbHVkZSBpbiB0ZXN0IHJ1biIpCi0gICAg
cmV0dXJuIHBhcnNlcgotCi1kZWYgbWFpbigpOgotICAgIGNvbmZpZyA9IHJlYWRfY29uZmlnKCkK
LQotICAgIGFyZ3MgPSBnZXRfcGFyc2VyKCkucGFyc2VfYXJncygpCi0KLSAgICB0cnk6Ci0gICAg
ICAgIHJ1bihjb25maWcsIGFyZ3MpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgaWYg
YXJncy5wZGI6Ci0gICAgICAgICAgICBpbXBvcnQgcGRiCi0gICAgICAgICAgICBpbXBvcnQgdHJh
Y2ViYWNrCi0gICAgICAgICAgICBwcmludCh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAg
ICAgICAgcGRiLnBvc3RfbW9ydGVtKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNl
Ci0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgbWFpbigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwZTE0NWQ2MGI1NWIzNTAyNjM5ZDE1ZjEwZDRkNjNhNmIwZjc5YjdkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBA
Ci08bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1
NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDBlMTQ1ZDYwYjU1YjM1MDI2MzlkMTVmMTBkNGQ2M2E2YjBmNzliN2QuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L2dyZWVuLXJlZi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi08bGluayBy
ZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29s
b3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L2dyZWVuLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4MTY3
YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVu
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNr
Z3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1
ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4
cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290
IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE0NWYxMGYzNWViNDcyZWMxM2NjNWRkMjQ3ZmY4
ZGY1YzI2NTM4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsOSArMCwwIEBACi08bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0
eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxvY2F0aW9uLnByb3RvY29sID09PSAiaHR0cHM6IikgewotICAgZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7Ci19Ci08L3Nj
cmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDRmYjlhYTE1MTc2ZTYxOTFkZWQ1ZWNjZjQ0MmZjZmQ2Y2Rj
ZjU2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCBjaGFpbiB0aGF0IHNob3Vs
ZCBmYWlsPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5odG1sPgotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2FuZF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFp
bC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTYwMTk1MzU2MjM4ZjAzNTQz
MjA3ZTllNmEzNTk5MzYxZGFlYjkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IGNoYWluIHRo
YXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9hbmRf
ZmFpbF8wLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMy
YmE4ZDAyOWNjYWIwNDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAt
cmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4K
LTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
YW5kX2ZhaWxfMC1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2Fu
ZF9mYWlsXzAtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ZmI5YWEx
NTE3NmU2MTkxZGVkNWVjY2Y0NDJmY2ZkNmNkY2Y1NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
YW5kX2ZhaWxfMC1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxl
PlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2gg
aHJlZj1yZWQuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQot
PC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTE4YmZkODg0NDdiNDgyMTJhZjI5ZTU0ODYxYmI2ZDUwOWE1ZTFi
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3RlZC5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+T1IgbWF0Y2ggdGhhdCBzaG91bGQgcGFzczwvdGl0
bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWw+Ci08c3R5
bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhODRhM2I2NzQxZWU0MWZlNjE4
N2E5YmRjNzY2ZDc0OTIwNmM4M2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwg
YWxsIG1hdGNoPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfMC1y
ZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHls
ZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYtZXhwZWN0ZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliZTBiNjQxZGVmNmJkNzNhMGNjYTcyZjE3ZDMzMDQ2
NDFiNDhlYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi1leHBlY3RlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xl
LCBhbGwgbWF0Y2g8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZS5o
dG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxMThiZmQ4ODQ0N2I0ODIxMmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAK
LTx0aXRsZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRj
aCBocmVmPXJlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3Jv
dW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1y
ZWYtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE4NGEzYjY3
NDFlZTQxZmU2MTg3YTliZGM3NjZkNzQ5MjA2YzgzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9j
eWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08
dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgotPGxpbmsgcmVsPW1h
dGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVm
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWJlMGI2NDFkZWY2YmQ3M2EwY2NhNzJm
MTdkMzMwNDY0MWI0OGVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUs
IGFsbCBtYXRjaDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0
bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjOGU1NDhjNDYyMjU1NjM4YTMyYzQ3NGExNzc3NTlmZjZkN2NjZWFm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8
L3RpdGxlPgotPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV9mYWlsLmh0bWw+
Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfZmFpbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzVl
NzZjNGNjOWJiNzY1ZjhmYzhkZmMzNDQ1NWFkMmViOWJjNDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlX2ZhaWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxl
PlJlZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9
cmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJl
Zi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVf
ZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NzVlNzZjNGNjOWJiNzY1ZjhmYzhkZmMzNDQ1NWFkMmViOWJjNDA1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDUgKzAsMCBAQAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8L3RpdGxlPgotPGxp
bmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWw+Ci08c3R5bGU+
Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
OGU1NDhjNDYyMjU1NjM4YTMyYzQ3NGExNzc3NTlmZjZkN2NjZWFmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBA
QAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8L3RpdGxlPgotPGxpbmsgcmVsPW1p
c21hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV9mYWlsLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLWV4cGVj
dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4MTY3YmI1OGQ1NzFlNzVm
NTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhw
ZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzNjYzZjMWVjZGYyMDAwZTRiMTE4NTY1NjYxNzYx
Yjg3NmE3Mjk5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgcGFzczwvdGl0
bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2Jh
Y2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2Zh
aWwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNo
X2ZhaWwtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2Nzdl
MDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9tYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfbWF0Y2hfZmFpbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTI3MmVm
NzRkYTg3MzM3YTAyMjNmY2IwMGYwNTNjZWJhNWZiNTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X21hdGNoX2ZhaWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPnJl
bD1tYXRjaCB0aGF0IHNob3VsZCBmYWlsPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJl
ZC5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2Nzgw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJl
ZH0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFmNWZhMDc1MGQ4M2I2NzU5YzMwZWE0MzRmYzUwOTI1NTI0NmNmODMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAs
MCBAQAotPHRpdGxlPnJlbD1taXNtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5r
IHJlbD1taXNtYXRjaCBocmVmPXJlZC5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQt
Y29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2Zh
aWwtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4
ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhkMTYwYzRmYzIwMGNhOTc2MzFiMTg1MDU4NDdkNTFmZDc2MmFiYTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA
Ci08dGl0bGU+cmVsPW1pc21hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVs
PW1pc21hdGNoIGhyZWY9Z3JlZW4uaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2Nh
YjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC1leHBlY3RlZC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2E1MWRlMjE2NDQxMDNhOTNmNTlkNGM1NjU0MjhjYzJkMTYwNmU1NC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9vcl8wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LTx0aXRsZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRj
aCBocmVmPXJlZC5odG1sPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9Z3JlZW4uaHRtbD4KLTxzdHls
ZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfcmVmX3RpbWVvdXQtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDRjYmI3MWUwYzNjNDI4NmMwMGQ0YzAxZWNlNmFiMWExYmVjNjFiOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KLTx0aXRsZT5yZWw9
bWF0Y2ggdGhhdCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Ci08bGluayByZWw9
bWF0Y2ggaHJlZj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGFhZjY4ZjVjYjVmYTA0Y2QzNjVhNzE5MWVlY2VhZmEzNWNjM2NlNGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotPGh0bWw+Ci08dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIHRpbWUgb3V0IGlu
IHRoZSByZWY8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9yZWZfdGltZW91
dC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9z
dHlsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVv
dXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVv
dXQtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4
ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90
aW1lb3V0LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHls
ZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF90aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1l
b3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxMGU2NzZiZjAwNTJlN2Jj
YmUyZTkyMTRhNjkwYjNjZTY2NWRhODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13
YWl0Ij4KLTx0aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgdGltZW91dDwvdGl0bGU+Ci08bGlu
ayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQt
Y29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3Rfd2FpdF8wLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF93YWl0XzAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X3dhaXRfMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjkyNzE1
YzYxZTdkOTIyYTk0OTVlOTczN2M5OTZlN2MwNmMzN2Q0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X3dhaXRfMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWwgY2xhc3M9
InJlZnRlc3Qtd2FpdCI+Ci08dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxl
PgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dy
b3VuZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgotPHNjcmlwdD4KLXNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7Ci0gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAi
Z3JlZW4iOwotICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lID0gIiI7Ci19LCAy
MDAwKTsKLTwvc2NyaXB0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZWQxMDA4MTQxZWNlYmY1ZDM3
YWIwNDIyODFkMjU0ZWIwNmNmYzRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVu
LXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5o
dHRwcy1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0
cHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4cGVj
dGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0
ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVm
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBlY3RlZC5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYtZXhwZWN0ZWQuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVkLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3Rfb3JfMC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3Rfb3JfMC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVm
X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X3JlZl90aW1lb3V0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1l
b3V0LWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1l
b3V0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0
ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rl
c3RfcHJlZl9pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVm
b3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEwYjI4NTE5NGI0YWUwMTBjNjk5YzdhZWNmNzdkNzcxYzIyMTMyZDMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90
ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfaW5oZXJpdC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+RXhhbXBsZSBw
cmVmIHRlc3Q8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHA+VGVzdCByZXF1aXJlcyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9y
ZWdyb3VuZF9jb2xvciB0byBiZSBzZXQgdG8gIzAwRkYwMDwvcD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1
bmN0aW9uKCkgewotICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9k
eSkuY29sb3IsICJyZ2IoMjU1LCAwLCAwKSIpOwotfSwgIlRlc3QgdGhhdCBwcmVmIHdhcyBzZXQi
KTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9m
aXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVz
dGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX3Jlc2V0Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDVjNzVjMTE2MDUyMmNlODE0MTRlZGRlZTRiOTRjY2FlMjE3ODVh
MjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxl
PkV4YW1wbGUgcHJlZiB0ZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxwPlRlc3QgcmVxdWlyZXMgdGhlIHByZWYgYnJvd3Nlci5k
aXNwbGF5LmZvcmVncm91bmRfY29sb3IgdG8gYmUgc2V0IHRvICMwMEZGMDA8L3A+Ci08c2NyaXB0
PgotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmJvZHkpLmNvbG9yLCAicmdiKDAsIDAsIDApIik7Ci19LCAiVGVzdCB0aGF0IHByZWYg
d2FzIHJlc2V0Iik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVz
dGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNmNmNWM3MWM2OThmYTUzZmQzYmI4OGE3ZGQwMzljN2M3ZmFmMmFi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVm
X2Rpci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJl
Zl9kaXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA1ZDkwNzBjOWRjZWFk
Y2RiMGNjNjQ3MTM4OTY3OGM4ZDI3MTlhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVz
dF9wcmVmX2Rpci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPCFkb2N0eXBl
IGh0bWw+Ci08dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHA+VGVzdCByZXF1aXJlcyB0aGUg
cHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0byBiZSBzZXQgdG8gI0ZGMDAw
MDwvcD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBhc3NlcnRfZXF1YWxzKGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2IoMjU1LCAwLCAwKSIpOwotfSwg
IlRlc3QgdGhhdCBwcmVmIHdhcyBzZXQiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNWUyOTg5YmY3Mjk5ZjQyMmM5ZGMwYzEzZjJjNzI5
OGYwZGZmNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPkV4
YW1wbGUgcHJlZiB0ZXN0PC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxwPlRlc3QgcmVxdWlyZXMgdGhlIHByZWYgYnJvd3Nlci5kaXNw
bGF5LmZvcmVncm91bmRfY29sb3IgdG8gYmUgc2V0IHRvICMwMEZGMDA8L3A+Ci08c2NyaXB0Pgot
dGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmJvZHkpLmNvbG9yLCAicmdiKDAsIDI1NSwgMCkiKTsKLX0sICJUZXN0IHRoYXQgcHJlZiB3
YXMgc2V0Iik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5l
c3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmIzNjA2ZWRiM2JlMjEyOTAyOGQ4NTlmMGE4NDQ2MWE5YWY1MDBmOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJu
ZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVm
X2Rpci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJl
Zl9zZXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJk
aXIvdGVzdGhhcm5lc3NfMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJk
aXIvdGVzdGhhcm5lc3NfMS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDJm
YzQzMWQzOTk5OGQ2YmZhNjNiYzBlM2I3ODg0NzkxMDE0YzMzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mv
c3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+VGVzdCBzaG91bGQgYmUgZW5hYmxlZDwvdGl0bGU+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X3RydWUodHJ1ZSk7Ci19LCAiVGVzdCB0aGF0
IHNob3VsZCBwYXNzIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0
aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg4N2Y4NWVhNzliNWQ4MDA4YjM4NmJjNmQ2YzljZGM3YTBmMWVmNTQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0
aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci90ZXN0aGFy
bmVzc18xLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVz
dGhhcm5lc3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhh
cm5lc3MuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg3MWVhYzAw
MTQ4ZDQ0YThiZWJkYzQzOTRlMWNiOGI0ZDU4ZGFjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3Ro
YXJuZXNzLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08IWRvY3R5
cGUgaHRtbD4KLTx0aXRsZT5FeGFtcGxlIGh0dHBzIHRlc3Q8L3RpdGxlPgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXRlc3QoZnVu
Y3Rpb24oKSB7Ci0gIGFzc2VydF9lcXVhbHMod2luZG93LmxvY2F0aW9uLnByb3RvY29sLCAiaHR0
cHM6Iik7Ci19LCAiVGVzdCB0aGF0IGZpbGUgd2FzIGxvYWRlZCB3aXRoIHRoZSBjb3JyZWN0IHBy
b3RvY29sIik7Ci0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmMDY1NGNiOWEwOTI1MWFkMDA4MmU4ZDg0OTE4YjIwNjhj
MTJlMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPlRlc3Qgc2hvdWxkIGJl
IGRpc2FibGVkPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBhc3NlcnRfdHJ1ZShm
YWxzZSk7Ci19LCAiVGVzdCB0aGF0IHNob3VsZCBmYWlsIik7Ci08L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFjNWJhNDZhMzMwNWY2ZmJjNjNkZDhkMWZjNzQ5
NjAzNGRhOWFmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPnRlc3Ro
YXJuZXNzLmpzIHRlc3QgdGhhdCBzaG91bGQgZXJyb3I8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXVuZGVmaW5lZF9m
dW5jdGlvbigpCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rl
c3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2xvbmdfdGltZW91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYzk0ZTA1NWJlMGM1NTQ1NGMxMmUwODUwMWNjOTgxZmRhZjQ1ODM3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPnRlc3RoYXJuZXNz
LmpzIHRlc3Qgd2l0aCBsb25nIHRpbWVvdXQ8L3RpdGxlPgotPG1ldGEgbmFtZT10aW1lb3V0IGNv
bnRlbnQ9bG9uZz4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIkxvbmcgdGltZW91dCB0ZXN0Iik7
Ci1zZXRUaW1lb3V0KHQuc3RlcF9mdW5jX2RvbmUoZnVuY3Rpb24oKSB7YXNzZXJ0X3RydWUodHJ1
ZSl9KSwgMTUqMTAwMCk7Ci08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVv
dXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfdGltZW91
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTk5MTVhYzc0NTM5NTJhYTE5
OWM3YWMyNGU5MTk0NTlmNjY1YTQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfdGlt
ZW91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTx0aXRsZT5TaW1wbGUgdGVzdGhhcm5lc3MuanMgdXNhZ2U8L3RpdGxlPgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotCi0vLyBUaGlzIGZpbGUgc2hv
dWxkIHRpbWUgb3V0LCBvYnZpb3VzbHkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTUxOGFkYWI0MDNmNmIwOWE0Y2JhZDQwOWVkODMyZmUxNDdmMjhhYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVz
cy5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc18w
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2xvbmdfdGltZW91
dC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjAxMWI2YjA0ZmRlOTU1
MjVlM2Y5OTczY2I3Yzc5NjViNTE0NjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2ZnLmV4YW1wbGUKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCmluZGV4IGM0OWU3
NTllYWQ4YzVjOGZjYmIxYzA4OWNmMmU1OWQ2MjQ5NjFiMWEuLmYyZmNmODQ5MTBiNmM5Mzg0Mzhl
MWQyMWU5M2Q3NjA5ZTA4NzNlOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdG94
LmluaQpAQCAtOSwxNyArOSwxMyBAQCBza2lwX21pc3NpbmdfaW50ZXJwcmV0ZXJzID0gRmFsc2UK
IGRlcHMgPQogICAgICAtcnt0b3hpbmlkaXJ9Ly4uL3JlcXVpcmVtZW50c19weXRlc3QudHh0CiAg
ICAgIC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzLnR4dAotICAgICBjaHJvbWU6IC1ye3RveGlu
aWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKKyAgICAgY2hyb21lOiAtcnt0b3hpbmlkaXJ9
L3JlcXVpcmVtZW50c19jaHJvbWl1bS50eHQKICAgICAgZWRnZTogLXJ7dG94aW5pZGlyfS9yZXF1
aXJlbWVudHNfZWRnZS50eHQKICAgICAgZmlyZWZveDogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVu
dHNfZmlyZWZveC50eHQKICAgICAgaWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2llLnR4
dAogICAgICBvcGVyYTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfb3BlcmEudHh0CiAgICAg
IHNhZmFyaTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAogICAgICBzYXVj
ZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfc2F1Y2UudHh0Ci0gICAgIHNlcnZvOiAtcnt0
b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19zZXJ2by50eHQKLSAgICAgd2Via2l0OiAtcnt0b3hpbmlk
aXJ9L3JlcXVpcmVtZW50c193ZWJraXQudHh0Ci0gICAgIHdlYmtpdGd0a19taW5pYnJvd3Nlcjog
LXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfd2Via2l0LnR4dAotICAgICBlcGlwaGFueTogLXJ7
dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0CiAKIGNvbW1hbmRzID0gcHl0ZXN0
IHtwb3NhcmdzfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGU5NzBhMGVkZjZlZGZjMTYw
N2M3NjZhNzYzYmY5NTE1MGY2M2YzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2Nocm9tZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9pb3MudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2Uu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2VwaXBoYW55LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19pZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X3NhZmFyaS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X3NlcnZvLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvc2V0dXAucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90b3guaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyLmRlZmF1bHQuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvX19pbml0X18ucHkKaW5kZXggYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIy
OWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9k
dWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJsYXllci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9h
bmRyb2lkX3dlYmxheWVyLnB5CmluZGV4IDRiZDg3MWQxZmJkNTFkNGVkNTQ3YTljZDAwZDUzZTRm
NzE1NmZmNTUuLjRmMGFjN2YyOTVlNDZmMzc4YWNmMzkyYmI2YzU1NDcwZDQzMGY2YWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxheWVyLnB5CkBAIC0zLDkgKzMsOSBAQCBm
cm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZwogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVv
dXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9y
X2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC5jaHJvbWVfYW5kcm9pZCBp
bXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCitmcm9tIC4uZXhlY3V0b3JzLmJhc2UgaW1w
b3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3Fh
OiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAx
CiAKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJhbmRyb2lkX3dlYmxheWVyIiwKQEAg
LTE0LDcgKzE0LDcgQEAgX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJhbmRyb2lkX3dlYmxh
eWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3Nl
ciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3IifSwK
ICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAg
ICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKQEAgLTU1LDggKzU1LDgg
QEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVu
dCwgcnVuX2luZm9fZGF0YSwKICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJd
WyJhbmRyb2lkUGFja2FnZSJdID0gXAogICAgICAgICAib3JnLmNocm9taXVtLndlYmxheWVyLnNo
ZWxsIgogICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRBY3Rp
dml0eSJdID0gIi5XZWJMYXllclNoZWxsQWN0aXZpdHkiCi0gICAgaWYga3dhcmdzLmdldCgnZGV2
aWNlX3NlcmlhbCcpOgotICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJd
WyJhbmRyb2lkRGV2aWNlU2VyaWFsIl0gPSBrd2FyZ3NbJ2RldmljZV9zZXJpYWwnXQorICAgIGNh
cGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRLZWVwQXBwRGF0YURpciJd
ID0gXAorICAgICAgICBrd2FyZ3MuZ2V0KCJrZWVwX2FwcF9kYXRhX2RpcmVjdG9yeSIpCiAKICAg
ICAjIFdvcmthcm91bmQ6IGRyaXZlci5xdWl0KCkgY2Fubm90IHF1aXQgV2VibGF5ZXJTaGVsbC4K
ICAgICBleGVjdXRvcl9rd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCkBAIC04OSw4
ICs4OSw4IEBAIGNsYXNzIFdlYmxheWVyU2hlbGwoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToK
ICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUpOgogICAgICAgICAiIiJDcmVhdGVz
IGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBn
aXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgot
ICAgICAgICBzdXBlcihXZWJsYXllclNoZWxsLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsCi0gICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFs
LAotICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1i
b2xzX3BhdGgpCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnksIHJlbW90ZV9xdWV1ZSwgZGV2aWNlX3Nlcmlh
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgc3RhY2t3YWxrX2Jp
bmFyeSwgc3ltYm9sc19wYXRoKQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAg
ICBzZWxmLndwdHNlcnZlcl9wb3J0cyA9IF93cHRzZXJ2ZV9wb3J0cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkKaW5kZXggOWQ2MjA5MzRlZjI4N2EzOTk4MjUwYWU5N2Uy
NGI5MTA5YTZlMGIxOC4uYzcxMzUzOTEyNWQ5MWQ5YzM1YmVlZWUxMWYyOGY4ZDUzNTRlOThkMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5CkBAIC0zLDE4ICszLDE3
IEBAIGZyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRf
dGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC5jaHJvbWUgaW1wb3J0IGV4
ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC5jaHJvbWVfYW5k
cm9pZCBpbXBvcnQgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlCitmcm9tIC4uZXhlY3V0b3JzLmJh
c2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAg
IyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3Fh
OiBGNDAxCiAKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJhbmRyb2lkX3dlYnZpZXci
LAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIlN5c3RlbVdlYlZpZXdTaGVsbCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiAiU3lzdGVtV2ViVmlld1NoZWxsIiwKICAgICAgICAgICAgICAg
ICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1
dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZl
clJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVj
IjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJi
cm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9l
eHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC01NSw4ICs1NCw4IEBAIGRlZiBleGVjdXRvcl9rd2Fy
Z3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAg
ICAgICAgIGt3YXJncy5nZXQoInBhY2thZ2VfbmFtZSIsICJvcmcuY2hyb21pdW0ud2Vidmlld19z
aGVsbCIpCiAgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZEFj
dGl2aXR5Il0gPSBcCiAgICAgICAgICJvcmcuY2hyb21pdW0ud2Vidmlld19zaGVsbC5XZWJQbGF0
Zm9ybVRlc3RzQWN0aXZpdHkiCi0gICAgaWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgot
ICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkRGV2aWNl
U2VyaWFsIl0gPSBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQorICAgIGNhcGFiaWxpdGllc1siZ29v
ZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRLZWVwQXBwRGF0YURpciJdID0gXAorICAgICAgICBr
d2FyZ3MuZ2V0KCJrZWVwX2FwcF9kYXRhX2RpcmVjdG9yeSIpCiAKICAgICAjIFdvcmthcm91bmQ6
IGRyaXZlci5xdWl0KCkgY2Fubm90IHF1aXQgU3lzdGVtV2ViVmlld1NoZWxsLgogICAgIGV4ZWN1
dG9yX2t3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKQEAgLTg4LDggKzg3LDggQEAg
Y2xhc3MgU3lzdGVtV2ViVmlld1NoZWxsKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6CiAgICAg
ICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKICAgICAgICAgIiIiQ3JlYXRlcyBhIG5l
dyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMK
ICAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKLSAgICAg
ICAgc3VwZXIoU3lzdGVtV2ViVmlld1NoZWxsLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIsCi0gICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFs
LAotICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1i
b2xzX3BhdGgpCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnksIHJlbW90ZV9xdWV1ZSwgZGV2aWNlX3Nlcmlh
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgc3RhY2t3YWxrX2Jp
bmFyeSwgc3ltYm9sc19wYXRoKQogICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAg
ICBzZWxmLndwdHNlcnZlcl9wb3J0cyA9IF93cHRzZXJ2ZV9wb3J0cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5w
eQppbmRleCAyODJlMmQ3YWQ1ZWViYzNkMDMzNTQ2YjUxYmRlMGM5YzJmNTFiYTRmLi42MThjZGMy
Yjc4MDNkYjQzMzhlZThmN2IzYmQ1NWE1MGM1MDdjMDc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvYmFzZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQpA
QCAtMSw5ICsxLDE0IEBACiBpbXBvcnQgZW51bQoraW1wb3J0IGVycm5vCiBpbXBvcnQgb3MKIGlt
cG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNvY2tldAoraW1wb3J0IHRyYWNlYmFjawogZnJvbSBhYmMg
aW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCiAKK2ltcG9ydCBtb3pwcm9jZXNzCisKK2Zy
b20gLi5lbnZpcm9ubWVudCBpbXBvcnQgd2FpdF9mb3Jfc2VydmljZQogZnJvbSAuLndwdGNvbW1h
bmRsaW5lIGltcG9ydCByZXF1aXJlX2FyZyAgIyBub3FhOiBGNDAxCiAKIGhlcmUgPSBvcy5wYXRo
LmRpcm5hbWUoX19maWxlX18pCkBAIC0yNzUsMyArMjgwLDExOSBAQCBjbGFzcyBPdXRwdXRIYW5k
bGVyOgogICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFj
ZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2lu
KHNlbGYuY29tbWFuZCkgaWYgc2VsZi5jb21tYW5kIGVsc2UgIiIpCisKKworY2xhc3MgV2ViRHJp
dmVyQnJvd3NlcihCcm93c2VyKToKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9
Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwgaG9zdD0iMTI3LjAu
MC4xIiwgcG9ydD1Ob25lLCBiYXNlX3BhdGg9Ii8iLAorICAgICAgICAgICAgICAgICBlbnY9Tm9u
ZSwgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlcikKKworICAgICAg
ICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJXZWJEcml2ZXIgc2VydmVyIGJpbmFyeSBtdXN0IGJlIGdpdmVuICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInRvIC0td2ViZHJpdmVyLWJpbmFyeSBhcmd1bWVudCIpCisKKyAg
ICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkK
KyAgICAgICAgc2VsZi53ZWJkcml2ZXJfYmluYXJ5ID0gd2ViZHJpdmVyX2JpbmFyeQorCisgICAg
ICAgIHNlbGYuaG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKworICAgICAg
ICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmVudiA9IG9zLmVudmly
b24uY29weSgpIGlmIGVudiBpcyBOb25lIGVsc2UgZW52CisgICAgICAgIHNlbGYud2ViZHJpdmVy
X2FyZ3MgPSB3ZWJkcml2ZXJfYXJncyBpZiB3ZWJkcml2ZXJfYXJncyBpcyBub3QgTm9uZSBlbHNl
IFtdCisKKyAgICAgICAgc2VsZi51cmwgPSBmImh0dHA6Ly97c2VsZi5ob3N0fTp7c2VsZi5wb3J0
fXtzZWxmLmJhc2VfcGF0aH0iCisKKyAgICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIgPSBOb25l
CisgICAgICAgIHNlbGYuX2NtZCA9IE5vbmUKKyAgICAgICAgc2VsZi5fcHJvYyA9IE5vbmUKKwor
ICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGZ1bGwg
Y29tbWFuZCBmb3Igc3RhcnRpbmcgdGhlIHNlcnZlciBwcm9jZXNzIGFzIGEgbGlzdC4iIiIKKyAg
ICAgICAgcmV0dXJuIFtzZWxmLndlYmRyaXZlcl9iaW5hcnldICsgc2VsZi53ZWJkcml2ZXJfYXJn
cworCisgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhLCAqKmt3YXJncyk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX3J1bl9zZXJ2ZXIoZ3JvdXBfbWV0YWRhdGEsICoq
a3dhcmdzKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICBz
ZWxmLnN0b3AoKQorCisgICAgZGVmIGNyZWF0ZV9vdXRwdXRfaGFuZGxlcihzZWxmLCBjbWQpOgor
ICAgICAgICAiIiJSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHVzZWQgdG8gaGFuZGxl
IGFwcGxpY2F0aW9uIG91dHB1dC4KKworICAgICAgICBUaGlzIGNhbiBiZSBvdmVycmlkZGVuIGJ5
IHN1YmNsYXNzZXMgd2hpY2ggaGF2ZSBwYXJ0aWN1bGFyIHJlcXVpcmVtZW50cworICAgICAgICBm
b3IgcGFyc2luZywgb3Igb3RoZXJ3aXNlIHVzaW5nLCB0aGUgb3V0cHV0LiIiIgorICAgICAgICBy
ZXR1cm4gT3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwgY21kKQorCisgICAgZGVmIF9ydW5fc2Vy
dmVyKHNlbGYsIGdyb3VwX21ldGFkYXRhLCAqKmt3YXJncyk6CisgICAgICAgIGNtZCA9IHNlbGYu
bWFrZV9jb21tYW5kKCkKKyAgICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIgPSBzZWxmLmNyZWF0
ZV9vdXRwdXRfaGFuZGxlcihjbWQpCisKKyAgICAgICAgc2VsZi5fcHJvYyA9IG1venByb2Nlc3Mu
UHJvY2Vzc0hhbmRsZXIoCisgICAgICAgICAgICBjbWQsCisgICAgICAgICAgICBwcm9jZXNzT3V0
cHV0TGluZT1zZWxmLl9vdXRwdXRfaGFuZGxlciwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwK
KyAgICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNlKQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJTdGFydGluZyBXZWJEcml2ZXI6ICVzIiAlICcgJy5qb2luKGNtZCkpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNlbGYuX3Byb2MucnVuKCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3Ig
YXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRU5PRU5UOgorICAgICAgICAg
ICAgICAgIHJhaXNlIElPRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgZXhl
Y3V0YWJsZSBub3QgZm91bmQ6ICVzIiAlIHNlbGYud2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAg
ICAgIHJhaXNlCisgICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyLmFmdGVyX3Byb2Nlc3Nfc3Rh
cnQoc2VsZi5fcHJvYy5waWQpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2FpdF9mb3Jf
c2VydmljZShzZWxmLmxvZ2dlciwgc2VsZi5ob3N0LCBzZWxmLnBvcnQpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigKKyAgICAgICAgICAg
ICAgICAiV2ViRHJpdmVyIHdhcyBub3QgYWNjZXNzaWJsZSAiCisgICAgICAgICAgICAgICAgZiJ3
aXRoaW4gdGhlIHRpbWVvdXQ6XG57dHJhY2ViYWNrLmZvcm1hdF9leGMoKX0iKQorICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIuc3RhcnQoZ3JvdXBfbWV0YWRh
dGE9Z3JvdXBfbWV0YWRhdGEsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1Zygi
X3J1biBjb21wbGV0ZSIpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wcGluZyBXZWJEcml2ZXIiKQorICAgICAgICBjbGVh
biA9IFRydWUKKyAgICAgICAgaWYgc2VsZi5pc19hbGl2ZSgpOgorICAgICAgICAgICAga2lsbF9y
ZXN1bHQgPSBzZWxmLl9wcm9jLmtpbGwoKQorICAgICAgICAgICAgaWYgZm9yY2UgYW5kIGtpbGxf
cmVzdWx0ICE9IDA6CisgICAgICAgICAgICAgICAgY2xlYW4gPSBGYWxzZQorICAgICAgICAgICAg
ICAgIHNlbGYuX3Byb2Mua2lsbCg5KQorICAgICAgICBzdWNjZXNzID0gbm90IHNlbGYuaXNfYWxp
dmUoKQorICAgICAgICBpZiBzdWNjZXNzIGFuZCBzZWxmLl9vdXRwdXRfaGFuZGxlciBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICMgT25seSB0cnkgdG8gZG8gb3V0cHV0IHBvc3QtcHJvY2Vzc2lu
ZyBpZiB3ZSBtYW5hZ2VkIHRvIHNodXQgZG93bgorICAgICAgICAgICAgc2VsZi5fb3V0cHV0X2hh
bmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdG9wKGNsZWFuKQorICAgICAgICAgICAgc2VsZi5fb3V0cHV0
X2hhbmRsZXIgPSBOb25lCisgICAgICAgIHJldHVybiBzdWNjZXNzCisKKyAgICBkZWYgaXNfYWxp
dmUoc2VsZik6CisgICAgICAgIHJldHVybiBoYXNhdHRyKHNlbGYuX3Byb2MsICJwcm9jIikgYW5k
IHNlbGYuX3Byb2MucG9sbCgpIGlzIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwaWQo
c2VsZik6CisgICAgICAgIGlmIHNlbGYuX3Byb2MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5fcHJvYy5waWQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwb3J0KHNlbGYp
OgorICAgICAgICAjIElmIG5vIHBvcnQgaXMgc3VwcGxpZWQsIHdlJ2xsIGdldCBhIGZyZWUgcG9y
dCByaWdodCBiZWZvcmUgd2UgdXNlIGl0LgorICAgICAgICAjIE5vdGhpbmcgZ3VhcmFudGVlcyBh
biBhYnNlbmNlIG9mIHJhY2UgY29uZGl0aW9ucyBoZXJlLgorICAgICAgICBpZiBzZWxmLl9wb3J0
IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCisgICAg
ICAgIHJldHVybiBzZWxmLl9wb3J0CisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAg
c2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnVybCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob3N0Ijogc2VsZi5ob3N0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzZWxmLnBvcnR9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2No
cm9tZS5weQppbmRleCA2OWU0MmI5NWFiNDIxMjJjODIzMmZiYmE1NDBmMjNlZmM3NGRhYjZkLi44
ZWFiODliOTg4ZTI3NmVhMjQwNWI5OWE1YmEzMzA2MTY3NTk3MDE0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9j
aHJvbWUucHkKQEAgLTEsMjQgKzEsMjMgQEAKIGZyb20gLiBpbXBvcnQgY2hyb21lX3Nwa2lfY2Vy
dHMKLWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9h
cmcKK2Zyb20gLmJhc2UgaW1wb3J0IFdlYkRyaXZlckJyb3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCi1mcm9tIC4ud2ViZHJpdmVy
X3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGltcG9ydCBjbWRf
YXJnCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVj
dXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yLCAg
IyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViRHJpdmVyQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IChDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciwgICMg
bm9xYTogRjQwMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENocm9t
ZURyaXZlclByaW50UmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0
b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlclByaW50UmVmVGVzdEV4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImNocm9t
ZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAg
ICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21lQnJvd3NlciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiAiQ2hyb21lQnJvd3NlciIsCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0
RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaW50LXJlZnRlc3Qi
OiAiQ2hyb21lRHJpdmVyUHJpbnRSZWZUZXN0RXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmFzaHRlc3QiOiAiV2ViRHJpdmVyQ3Jhc2h0
ZXN0RXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dz
ZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRv
cl9rd2FyZ3MiLApAQCAtNzYsMTIgKzc1LDE1IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2Vy
LCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgIyBBbGxv
dyBhdWRpbyBhdXRvcGxheSB3aXRob3V0IGEgdXNlciBnZXN0dXJlLgogICAgIGNocm9tZV9vcHRp
b25zWyJhcmdzIl0uYXBwZW5kKCItLWF1dG9wbGF5LXBvbGljeT1uby11c2VyLWdlc3R1cmUtcmVx
dWlyZWQiKQogICAgICMgQWxsb3cgV2ViUlRDIHRlc3RzIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgot
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLXVzZS1mYWtlLXVpLWZvci1tZWRp
YS1zdHJlYW0iKQogICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLXVzZS1mYWtl
LWRldmljZS1mb3ItbWVkaWEtc3RyZWFtIikKICAgICAjIFNob3J0ZW4gZGVsYXkgZm9yIFJlcG9y
dGluZyA8aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3JlcG9ydGluZy8+LgogICAgIGNocm9tZV9vcHRp
b25zWyJhcmdzIl0uYXBwZW5kKCItLXNob3J0LXJlcG9ydGluZy1kZWxheSIpCiAgICAgIyBQb2lu
dCBhbGwgLnRlc3QgZG9tYWlucyB0byBsb2NhbGhvc3QgZm9yIENocm9tZQogICAgIGNocm9tZV9v
cHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhvc3QtcmVzb2x2ZXItcnVsZXM9TUFQIG5vbmV4aXN0
ZW50LioudGVzdCB+Tk9URk9VTkQsIE1BUCAqLnRlc3QgMTI3LjAuMC4xIikKKyAgICAjIEVuYWJs
ZSBTZWN1cmUgUGF5bWVudCBDb25maXJtYXRpb24gZm9yIENocm9tZS4gVGhpcyBpcyBub3JtYWxs
eSBkaXNhYmxlZAorICAgICMgb24gTGludXggYXMgaXQgaGFzbid0IHNoaXBwZWQgdGhlcmUgeWV0
LCBidXQgaW4gV1BUIHdlIGVuYWJsZSB2aXJ0dWFsCisgICAgIyBhdXRoZW50aWNhdG9yIGRldmlj
ZXMgYW55d2F5IGZvciB0ZXN0aW5nIGFuZCBzbyBTUEMgd29ya3MuCisgICAgY2hyb21lX29wdGlv
bnNbImFyZ3MiXS5hcHBlbmQoIi0tZW5hYmxlLWZlYXR1cmVzPVNlY3VyZVBheW1lbnRDb25maXJt
YXRpb25Ccm93c2VyIikKIAogICAgICMgQ2xhc3NpZnkgYGh0dHAtcHJpdmF0ZWAsIGBodHRwLXB1
YmxpY2AgYW5kIGh0dHBzIHZhcmlhbnRzIGluIHRoZQogICAgICMgYXBwcm9wcmlhdGUgSVAgYWRk
cmVzcyBzcGFjZXMuCkBAIC0xMzYsNDEgKzEzOCwxNCBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJn
cyk6CiBkZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcu
MC4wLjEifQogCisKIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgogICAgIHJldHVybiAoWyJkZWJ1
ZyIsICJvcyIsICJwcm9jZXNzb3IiXSwgeyJvcyI6IFsidmVyc2lvbiJdLCAicHJvY2Vzc29yIjog
WyJiaXRzIl19KQogCi1jbGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIpOgotICAgICIiIkNocm9t
ZSBpcyBiYWNrZWQgYnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCi0g
ICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5
PSJjaHJvbWVkcml2ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLCAq
Kmt3YXJncyk6Ci0gICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgQ2hy
b21lLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCi0gICAgICAgIHRoZSBicm93c2VyIGJp
bmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCi0gICAgICAgIEJyb3dzZXIuX19pbml0X18oc2Vs
ZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQotICAgICAgICBzZWxmLnNl
cnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0K
LSAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLnNlcnZlci5zdGFy
dChibG9jaz1GYWxzZSkKLQotICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToK
LSAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBh
bGl2ZSwKLSAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBh
IGJyb3dzZXIgc2Vzc2lvbgotICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNl
bGYuc2VydmVyLmlzX2FsaXZlKCkKLQotICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBz
ZWxmLnN0b3AoKQotCi0gICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0K
KworY2xhc3MgQ2hyb21lQnJvd3NlcihXZWJEcml2ZXJCcm93c2VyKToKKyAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYud2ViZHJpdmVyX2JpbmFyeSwKKyAg
ICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAorICAgICAgICAg
ICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNlX3BhdGgpLAorICAgICAgICAgICAg
ICAgIGNtZF9hcmcoImVuYWJsZS1jaHJvbWUtbG9ncyIpXSArIHNlbGYud2ViZHJpdmVyX2FyZ3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQppbmRleCAzYmEwMTU4OGIyOTQz
YjY1ODI2ZWY5ZjY0MGE1ZjdmNTRmNWMwNDY1Li4xZTkyNmJmYWMyZDJiZGM2YmI2ZjBhNjM1MTRi
MzhmMDc2MTNkNDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2Fu
ZHJvaWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CkBA
IC0xLDIzICsxLDIxIEBACiBpbXBvcnQgbW96cHJvY2VzcwogaW1wb3J0IHN1YnByb2Nlc3MKIAot
ZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwor
ZnJvbSAuYmFzZSBpbXBvcnQgY21kX2FyZywgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0
IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZyb20gLmJhc2UgaW1wb3J0
IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IFdlYkRyaXZlckJy
b3dzZXIgICMgbm9xYTogRjQwMQogZnJvbSAuY2hyb21lIGltcG9ydCBleGVjdXRvcl9rd2FyZ3Mg
YXMgY2hyb21lX2V4ZWN1dG9yX2t3YXJncwotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IENocm9tZURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNF
eGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVy
IGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RF
eGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBp
bXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiAKIF9fd3B0
cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lX2FuZHJvaWQiLAogICAgICAgICAgICAgICAg
ICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIi
OiB7Tm9uZTogIkNocm9tZUFuZHJvaWRCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6ICJDaHJvbWVBbmRyb2lkQnJvd3NlciIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6
IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2
ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3Bl
YyI6ICJXZHNwZWNFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3Mi
OiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjog
ImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9l
eHRyYXMiLApAQCAtNTUsMTEgKzUzLDExIEBAIGRlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgZGVsIGV4ZWN1
dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJwcmVmcyJd
CiAKICAgICBhc3NlcnQga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwgIm1pc3NpbmcgLS1wYWNrYWdl
LW5hbWUiCi0gICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVP
cHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSBcCisgICAgY2FwYWJpbGl0aWVzID0gZXhlY3V0
b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXQorICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVP
cHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSBcCiAgICAgICAgIGt3YXJnc1sicGFja2FnZV9u
YW1lIl0KLSAgICBpZiBrd2FyZ3MuZ2V0KCJkZXZpY2Vfc2VyaWFsIik6Ci0gICAgICAgIGV4ZWN1
dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lk
RGV2aWNlU2VyaWFsIl0gPSBcCi0gICAgICAgICAgICBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQor
ICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRLZWVwQXBwRGF0
YURpciJdID0gXAorICAgICAgICBrd2FyZ3MuZ2V0KCJrZWVwX2FwcF9kYXRhX2RpcmVjdG9yeSIp
CiAKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKQEAgLTEyNSwyNSArMTIzLDI2IEBAIGNs
YXNzIExvZ2NhdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9zZW5kX21lc3NhZ2UoImxv
ZyIsIGRhdGEpCiAKIAotY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKEJyb3dzZXIpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsCitjbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3Nl
ckJhc2UoV2ViRHJpdmVyQnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAg
ICAgICAgICAgIGxvZ2dlciwKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT0iY2hy
b21lZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgcmVtb3RlX3F1ZXVlID0gTm9uZSwKKyAgICAg
ICAgICAgICAgICAgcmVtb3RlX3F1ZXVlPU5vbmUsCiAgICAgICAgICAgICAgICAgIGRldmljZV9z
ZXJpYWw9Tm9uZSwKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLAogICAgICAgICAgICAgICAgICBzeW1i
b2xzX3BhdGg9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSwg
c2VsZikuX19pbml0X18obG9nZ2VyKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9d2ViZHJpdmVyX2FyZ3MsKQogICAgICAgICBzZWxm
LmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCiAgICAgICAgIHNlbGYuc3RhY2t3YWxrX2Jp
bmFyeSA9IHN0YWNrd2Fsa19iaW5hcnkKICAgICAgICAgc2VsZi5zeW1ib2xzX3BhdGggPSBzeW1i
b2xzX3BhdGgKICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSByZW1vdGVfcXVldWUKLSAgICAg
ICAgc2VsZi5zZXJ2ZXIgPSBDaHJvbWVEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZl
cl9hcmdzKQorCiAgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyID0gTG9nY2F0UnVubmVyKHNlbGYubG9nZ2VyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5yZW1v
dGVfcXVldWUpCisgICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5uZXIgPSBMb2djYXRSdW5uZXIo
c2VsZi5sb2dnZXIsIHNlbGYsIHNlbGYucmVtb3RlX3F1ZXVlKQogCiAgICAgZGVmIHNldHVwKHNl
bGYpOgogICAgICAgICBzZWxmLnNldHVwX2FkYl9yZXZlcnNlKCkKQEAgLTE1OCwzMCArMTU3LDI3
IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyQmFzZShCcm93c2VyKToKICAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygnICcuam9pbihjbWQpKQogICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh
bGwoY21kKQogCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5z
ZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxz
ZSk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCi0KLSAgICBkZWYgcGlk
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCi0KLSAgICBkZWYgaXNfYWxp
dmUoc2VsZik6Ci0gICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBk
cml2ZXIgaXMgYWxpdmUsCi0gICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0
IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KLSAgICAgICAgIyBpcyBhY3RpdmUuCi0gICAgICAg
IHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKKyAgICAgICAgcmV0dXJuIFtzZWxmLndlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAg
ICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQpKSwKKyAgICAgICAgICAgICAgICBjbWRf
YXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKSwKKyAgICAgICAgICAgICAgICBjbWRfYXJn
KCJlbmFibGUtY2hyb21lLWxvZ3MiKV0gKyBzZWxmLndlYmRyaXZlcl9hcmdzCiAKICAgICBkZWYg
Y2xlYW51cChzZWxmKToKLSAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgc3VwZXIoKS5jbGVh
bnVwKCkKICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10p
CiAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQogICAg
ICAgICBpZiBzZWxmLnJlbW90ZV9xdWV1ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYu
bG9nY2F0X3J1bm5lci5zdG9wKGZvcmNlPVRydWUpCiAKICAgICBkZWYgZXhlY3V0b3JfYnJvd3Nl
cihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJs
Ijogc2VsZi5zZXJ2ZXIudXJsfQorICAgICAgICBjbHMsIGt3YXJncyA9IHN1cGVyKCkuZXhlY3V0
b3JfYnJvd3NlcigpCisgICAgICAgIGt3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSB7CisgICAgICAg
ICAgICAiZ29vZzpjaHJvbWVPcHRpb25zIjogeworICAgICAgICAgICAgICAgICJhbmRyb2lkRGV2
aWNlU2VyaWFsIjogc2VsZi5kZXZpY2Vfc2VyaWFsCisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGNscywga3dhcmdzCiAKICAgICBkZWYgY2xlYXJfbG9nKHNlbGYpOgog
ICAgICAgICBzZWxmLl9hZGJfcnVuKFsnbG9nY2F0JywgJy1jJ10pCkBAIC0yMTcsNiArMjEzLDcg
QEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKEJyb3dzZXIpOgogICAgICAgICBmb3Ig
cG9ydCBpbiBzZWxmLndwdHNlcnZlcl9wb3J0czoKICAgICAgICAgICAgIHNlbGYuX2FkYl9ydW4o
WydyZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0LCAndGNwOiVkJyAlIHBvcnRdKQogCisKIGNsYXNz
IENocm9tZUFuZHJvaWRCcm93c2VyKENocm9tZUFuZHJvaWRCcm93c2VyQmFzZSk6CiAgICAgIiIi
Q2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91
Z2gKICAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCkBAIC0y
MjksOCArMjI2LDggQEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQ2hyb21lQW5kcm9pZEJy
b3dzZXJCYXNlKToKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLAogICAgICAgICAgICAgICAgICBzeW1i
b2xzX3BhdGg9Tm9uZSk6Ci0gICAgICAgIHN1cGVyKENocm9tZUFuZHJvaWRCcm93c2VyLCBzZWxm
KS5fX2luaXRfXyhsb2dnZXIsCi0gICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVt
b3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAotICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdz
LCBzdGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCisgICAgICAgIHN1cGVyKCkuX19pbml0
X18obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnksIHJl
bW90ZV9xdWV1ZSwgZGV2aWNlX3NlcmlhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJk
cml2ZXJfYXJncywgc3RhY2t3YWxrX2JpbmFyeSwgc3ltYm9sc19wYXRoKQogICAgICAgICBzZWxm
LnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQogICAgICAgICBzZWxmLndwdHNlcnZlcl9wb3J0
cyA9IF93cHRzZXJ2ZV9wb3J0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2No
cm9tZV9pb3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQppbmRleCBm
ZTRhYzUyODdmMTlmZjZjOGRkMTFmZjgwYjc5NjkxN2IwMTdjMTA5Li5iMjJlY2M1ODk1MTE1YzBl
NmU5MjA3YjJiZTRjM2ViMWE4NDkxNjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lX2lvcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5w
eQpAQCAtMSwxNiArMSwxNCBAQAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JC
cm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90
aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZyb20gLi53ZWJkcml2ZXJfc2VydmVy
IGltcG9ydCBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdlYkRyaXZl
ckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0
aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9r
d2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBv
cnQgV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6
IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2
ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEK
IAogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImNocm9tZV9pb3MiLAogICAgICAgICAg
ICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJy
b3dzZXIiOiB7Tm9uZTogIkNocm9tZWlPU0Jyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93
c2VyIjogIkNocm9tZWlPU0Jyb3dzZXIiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9y
In0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIs
CkBAIC00NSwzNyArNDMsMTIgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHt9CiAK
IAotY2xhc3MgQ2hyb21laU9TQnJvd3NlcihCcm93c2VyKToKK2NsYXNzIENocm9tZWlPU0Jyb3dz
ZXIoV2ViRHJpdmVyQnJvd3Nlcik6CiAgICAgIiIiQ2hyb21laU9TIGlzIGJhY2tlZCBieSBDV1RD
aHJvbWVEcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKICAgICBgYHdwdHJ1bm5lci53
ZWJkcml2ZXIuQ1dUQ2hyb21lRHJpdmVyU2VydmVyYGAuCiAgICAgIiIiCiAKICAgICBpbml0X3Rp
bWVvdXQgPSAxMjAKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9i
aW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3JlYXRl
cyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuIiIiCi0gICAgICAgIEJyb3dzZXIuX19p
bml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnNlcnZlciA9IENXVENocm9tZURyaXZl
clNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0KLSAgICBkZWYgc3Rh
cnQoc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxz
ZSkKLQotICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2
ZXIuc3RvcChmb3JjZT1mb3JjZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLnNlcnZlci5waWQKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBU
T0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKLSAgICAg
ICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vz
c2lvbgotICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlz
X2FsaXZlKCkKLQotICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQot
Ci0gICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeGVjdXRv
ckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKyAgICBkZWYgbWFr
ZV9jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCBmIi0tcG9ydD17
c2VsZi5wb3J0fSJdICsgc2VsZi53ZWJkcml2ZXJfYXJncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2VkZ2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQppbmRl
eCAzMTAxZTljN2JlYTM4YTRiNjA5ODIyMjA0MDVhYmM2ZDIyZjJlZTEzLi4wNTMzNDJlYjQ1MjM3
NDgyYzBkNTY1ZWE3NzllZTlhMzM3ZTM1MzE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZWRnZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQpAQCAtMSwy
MCArMSwxOCBAQAogaW1wb3J0IHRpbWUKIGltcG9ydCBzdWJwcm9jZXNzCi1mcm9tIC5iYXNlIGlt
cG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGlt
cG9ydCBOdWxsQnJvd3NlciAgIyBub3FhOiBGNDAxCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBp
bXBvcnQgRWRnZURyaXZlclNlcnZlcgorZnJvbSAuYmFzZSBpbXBvcnQgcmVxdWlyZV9hcmcKK2Zy
b20gLmJhc2UgaW1wb3J0IFdlYkRyaXZlckJyb3dzZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9y
cy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0
b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yZWRnZSBpbXBvcnQgRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0
MDEKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlIiwKICAgICAgICAgICAgICAg
ICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2Vy
Ijoge05vbmU6ICJFZGdlQnJvd3NlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRWRn
ZUJyb3dzZXIiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjog
IlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciJ9
LAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAog
ICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAg
ICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLApAQCAtNjQsMzAgKzYy
LDIwIEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2Vy
IjogRmFsc2V9CiAKIAotY2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6CitjbGFzcyBFZGdlQnJv
d3NlcihXZWJEcml2ZXJCcm93c2VyKToKICAgICBpbml0X3RpbWVvdXQgPSA2MAogCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgIHRp
bWVvdXRfbXVsdGlwbGllcj1Ob25lLCB3ZWJkcml2ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6Ci0g
ICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLnNlcnZl
ciA9IEVkZ2VEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCi0gICAgICAgIHNl
bGYud2ViZHJpdmVyX2hvc3QgPSAibG9jYWxob3N0IgotICAgICAgICBzZWxmLndlYmRyaXZlcl9w
b3J0ID0gc2VsZi5zZXJ2ZXIucG9ydAotICAgICAgICBpZiB0aW1lb3V0X211bHRpcGxpZXI6Ci0g
ICAgICAgICAgICBzZWxmLmluaXRfdGltZW91dCA9IHNlbGYuaW5pdF90aW1lb3V0ICogdGltZW91
dF9tdWx0aXBsaWVyCi0KLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAg
IHByaW50KHNlbGYuc2VydmVyLnVybCkKLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeSwgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgaG9zdD0ibG9jYWxob3N0IiwgcG9y
dD1Ob25lLCBiYXNlX3BhdGg9Ii8iLCBlbnY9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzdXBl
cigpLl9faW5pdF9fKGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJf
YXJncz13ZWJkcml2ZXJfYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICBob3N0PWhvc3Qs
IHBvcnQ9cG9ydCwgYmFzZV9wYXRoPWJhc2VfcGF0aCwgZW52PWVudiwgKiprd2FyZ3MpCisgICAg
ICAgIHNlbGYuaG9zdCA9ICJsb2NhbGhvc3QiCiAKICAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1G
YWxzZSk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCisgICAgICAgIHN1
cGVyKHNlbGYpLnN0b3AoZm9yY2UpCiAgICAgICAgICMgV2FpdCBmb3IgRWRnZSBicm93c2VyIHBy
b2Nlc3MgdG8gZXhpdCBpZiBkcml2ZXIgcHJvY2VzcyBpcyBmb3VuZAogICAgICAgICBlZGdlX3By
b2NfbmFtZSA9ICdNaWNyb3NvZnRFZGdlLmV4ZScKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCw1
KToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgNSk6CiAgICAgICAgICAgICBwcm9jcyA9IHN1
YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsndGFza2xpc3QnLCAnL2ZpJywgJ0ltYWdlTmFtZSBlcSAn
ICsgZWRnZV9wcm9jX25hbWVdKQogICAgICAgICAgICAgaWYgYidNaWNyb3NvZnRXZWJEcml2ZXIu
ZXhlJyBub3QgaW4gcHJvY3M6CiAgICAgICAgICAgICAgICAgIyBFZGdlIGRyaXZlciBwcm9jZXNz
IGFscmVhZHkgZXhpdGVkLCBkb24ndCB3YWl0IGZvciBicm93c2VyIHByb2Nlc3MgdG8gZXhpdApA
QCAtMTAxLDIwICs4OSw4IEBAIGNsYXNzIEVkZ2VCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAg
ICAgIyBjbG9zZSBFZGdlIHByb2Nlc3MgaWYgaXQgaXMgc3RpbGwgcnVubmluZwogICAgICAgICAg
ICAgc3VicHJvY2Vzcy5jYWxsKFsndGFza2tpbGwuZXhlJywgJy9mJywgJy9pbScsICdtaWNyb3Nv
ZnRlZGdlKiddKQogCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vy
dmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTog
VGhpcyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBk
b2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAg
ICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQot
Ci0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYg
ZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3Nlciwg
eyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQorICAgIGRlZiBtYWtlX2NvbW1hbmQo
c2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi53ZWJkcml2ZXJfYmluYXJ5LCBmIi0tcG9ydD17
c2VsZi5wb3J0fSJdICsgc2VsZi53ZWJkcml2ZXJfYXJncwogCiAKIGRlZiBydW5faW5mb19leHRy
YXMoKiprd2FyZ3MpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2Vi
ZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CmluZGV4
IGU1OTQ5ZmUzZTU3ZmIyYTczM2ZmZTU3ZTZmYjU4NDIxZGFhYjA4OGIuLmU5ODUzNjFlNDEyODNi
NjhiMWQyZDc5YTc1NTgxMmI3Mjc0NmU5OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9lZGdlX3dlYmRyaXZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93
ZWJkcml2ZXIucHkKQEAgLTEsNiArMSw1IEBACiBmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3Nl
ciAgIyBub3FhOiBGNDAxCiBmcm9tIC5lZGdlIGltcG9ydCAoRWRnZUJyb3dzZXIsICAjIG5vcWE6
IEY0MDEKLSAgICAgICAgICAgICAgICAgICBFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICBjaGVja19hcmdzLCAgIyBub3FhOiBGNDAxCiAg
ICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKICAgICAgICAg
ICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKQEAgLTksMTcgKzgsMTcg
QEAgZnJvbSAuZWRnZSBpbXBvcnQgKEVkZ2VCcm93c2VyLCAgIyBub3FhOiBGNDAxCiAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAg
ICAgICAgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcikgICMgbm9xYTogRjQwMQogCitmcm9tIC4uZXhl
Y3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIGZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4
ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiAKIAogX193
cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlX3dlYmRyaXZlciIsCiAgICAgICAgICAgICAg
ICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6IHtOb25lOiAiRWRnZUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVk
Z2VCcm93c2VyIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6
ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciJ9
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRv
ciJ9LAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3Mi
LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIs
CiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9lZGdlY2hyb21pdW0ucHkKaW5kZXggYzkzZDE0MGVhY2UyZWEyYTE2NzRjODkxMWRl
ZmNmN2IyYTYyNjI5MC4uZjg2M2EyZjZkZjQxNjI1ZjNmMzM4M2RiZDg0YzgzNWNiNjVlOTI4NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5CkBAIC0xLDExOSArMSw5MiBAQAot
ZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZw0K
LWZyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDENCi1mcm9tIC5iYXNl
IGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxDQotZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KLWZyb20gLi5l
eGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncw0K
LWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0
aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxDQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQw
MQ0KLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JlZGdlY2hyb21pdW0gaW1wb3J0IEVkZ2VDaHJv
bWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDENCi0NCi0NCi1fX3dwdHJ1bm5l
cl9fID0geyJwcm9kdWN0IjogImVkZ2VjaHJvbWl1bSIsDQotICAgICAgICAgICAgICAgICAiY2hl
Y2tfYXJncyI6ICJjaGVja19hcmdzIiwNCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjoge05v
bmU6ICJFZGdlQ2hyb21pdW1Ccm93c2VyIiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwNCi0gICAgICAgICAgICAgICAgICJleGVjdXRvciI6
IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsDQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yIiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkVkZ2VDaHJv
bWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sDQotICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9r
d2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLA0KLSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3
YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLA0KLSAgICAgICAgICAgICAgICAgImVudl9leHRyYXMi
OiAiZW52X2V4dHJhcyIsDQotICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29w
dGlvbnMiLA0KLSAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGlt
ZW91dF9tdWx0aXBsaWVyIix9DQotDQotDQotZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOg0KLSAg
ICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikNCi0NCi0NCi1kZWYgYnJv
d3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKipr
d2FyZ3MpOg0KLSAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLA0KLSAgICAg
ICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sDQot
ICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3Mi
KX0NCi0NCi0NCi1kZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vu
dmlyb25tZW50LCBydW5faW5mb19kYXRhLA0KLSAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
Og0KLSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUs
DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJv
bm1lbnQsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9p
bmZvX2RhdGEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQ0KLSAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUN
Ci0gICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UN
Ci0NCi0gICAgY2FwYWJpbGl0aWVzID0gew0KLSAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogew0K
LSAgICAgICAgICAgICJwcmVmcyI6IHsNCi0gICAgICAgICAgICAgICAgInByb2ZpbGUiOiB7DQot
ICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogew0K
LSAgICAgICAgICAgICAgICAgICAgICAgICJwb3B1cHMiOiAxDQotICAgICAgICAgICAgICAgICAg
ICB9DQotICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICB9LA0KLSAgICAgICAgICAgICJ1
c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIjogRmFsc2UsDQotICAgICAgICAgICAgImV4Y2x1ZGVTd2l0
Y2hlcyI6IFsiZW5hYmxlLWF1dG9tYXRpb24iXSwNCi0gICAgICAgICAgICAidzNjIjogVHJ1ZQ0K
LSAgICAgICAgfQ0KLSAgICB9DQotDQotICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3Mi
Og0KLSAgICAgICAgY2FwYWJpbGl0aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSINCi0N
Ci0gICAgZm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAo
ImJpbmFyeV9hcmdzIiwgImFyZ3MiKV06DQotICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5v
dCBOb25lOg0KLSAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVtjYXBh
YmlsaXR5XSA9IGt3YXJnc1trd2FyZ10NCi0NCi0gICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOg0K
LSAgICAgICAgaWYgImFyZ3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl06
DQotICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdWyJhcmdzIl0gPSBb
XQ0KLSAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VP
cHRpb25zIl1bImFyZ3MiXToNCi0gICAgICAgICAgICBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRp
b25zIl1bImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQ0KLQ0KLSAgICBleGVjdXRvcl9rd2Fy
Z3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzDQotDQotICAgIHJldHVybiBleGVjdXRv
cl9rd2FyZ3MNCi0NCi0NCi1kZWYgZW52X2V4dHJhcygqKmt3YXJncyk6DQotICAgIHJldHVybiBb
XQ0KLQ0KLQ0KLWRlZiBlbnZfb3B0aW9ucygpOg0KLSAgICByZXR1cm4ge30NCi0NCi0NCi1jbGFz
cyBFZGdlQ2hyb21pdW1Ccm93c2VyKEJyb3dzZXIpOg0KLSAgICAiIiJNaWNyb3NvZnRFZGdlIGlz
IGJhY2tlZCBieSBNU0VkZ2VEcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gNCi0gICAg
YGB3cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLg0KLSAgICAi
IiINCi0NCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJf
YmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLA0KLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSwgKiprd2FyZ3MpOg0KLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlv
biBvZiBNaWNyb3NvZnRFZGdlLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzDQotICAgICAg
ICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIg0KLSAgICAgICAgQnJv
d3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpDQotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFy
eQ0KLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIoc2VsZi5s
b2dnZXIsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9
d2ViZHJpdmVyX2JpbmFyeSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpDQotDQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJn
cyk6DQotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkNCi0NCi0gICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOg0KLSAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3Jj
ZT1mb3JjZSkNCi0NCi0gICAgZGVmIHBpZChzZWxmKToNCi0gICAgICAgIHJldHVybiBzZWxmLnNl
cnZlci5waWQNCi0NCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOg0KLSAgICAgICAgIyBUT0RPKGF0
byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwNCi0gICAgICAgICMg
YW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24N
Ci0gICAgICAgICMgaXMgYWN0aXZlLg0KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2Fs
aXZlKCkNCi0NCi0gICAgZGVmIGNsZWFudXAoc2VsZik6DQotICAgICAgICBzZWxmLnN0b3AoKQ0K
LQ0KLSAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToNCi0gICAgICAgIHJldHVybiBFeGVj
dXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0NCitmcm9tIC5i
YXNlIGltcG9ydCBjbWRfYXJnLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJp
dmVyQnJvd3NlcgorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMg
bm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAg
IyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMg
YmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIg
aW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4
ZWN1dG9yKSAgIyBub3FhOiBGNDAxCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJl
ZGdlY2hyb21pdW0iLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdz
IiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRWRnZUNocm9taXVtQnJvd3NlciIsCisg
ICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0
cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52
X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90
aW1lb3V0X211bHRpcGxpZXIiLH0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAg
cmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKworZGVmIGJyb3dzZXJf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdz
KToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAg
IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CisKKwor
ZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwg
cnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGV4ZWN1
dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dh
cmdzWyJzdXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKworICAgIGNhcGFiaWxpdGll
cyA9IHsKKyAgICAgICAgIm1zOmVkZ2VPcHRpb25zIjogeworICAgICAgICAgICAgInByZWZzIjog
eworICAgICAgICAgICAgICAgICJwcm9maWxlIjogeworICAgICAgICAgICAgICAgICAgICAiZGVm
YXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAgICAgICAgICAgICAgICAgICAgICAg
InBvcHVwcyI6IDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAidXNlQXV0b21hdGlvbkV4dGVuc2lvbiI6IEZhbHNl
LAorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxlLWF1dG9tYXRpb24iXSwK
KyAgICAgICAgICAgICJ3M2MiOiBUcnVlCisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiB0ZXN0
X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJwYWdlTG9hZFN0
cmF0ZWd5Il0gPSAibm9uZSIKKworICAgIGZvciAoa3dhcmcsIGNhcGFiaWxpdHkpIGluIFsoImJp
bmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIildOgorICAgICAgICBpZiBr
d2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJtczpl
ZGdlT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQorCisgICAgaWYga3dhcmdz
WyJoZWFkbGVzcyJdOgorICAgICAgICBpZiAiYXJncyIgbm90IGluIGNhcGFiaWxpdGllc1sibXM6
ZWRnZU9wdGlvbnMiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMi
XVsiYXJncyJdID0gW10KKyAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBhYmlsaXRp
ZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXToKKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1si
bXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCisgICAgICAgIGNh
cGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS11c2UtZmFrZS1k
ZXZpY2UtZm9yLW1lZGlhLXN0cmVhbSIpCisKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxp
dGllcyJdID0gY2FwYWJpbGl0aWVzCisKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKwor
ZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0
aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bUJyb3dzZXIoV2Vi
RHJpdmVyQnJvd3Nlcik6CisgICAgIiIiTWljcm9zb2Z0RWRnZSBpcyBiYWNrZWQgYnkgTVNFZGdl
RHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJp
dmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIG1ha2Vf
Y29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLndlYmRyaXZlcl9iaW5hcnksCisg
ICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQpKSwKKyAgICAgICAg
ICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKV0gKyBzZWxmLndlYmRy
aXZlcl9hcmdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKaW5kZXggZDYxZjc0ZTIyNjhhZTI2
YmEyZTQ0YWNkYTQ5MDgyYTA4MmZlMDYxMy4uYTQwZjc2NWI2Mzk4NmRlZWJiZDVlMTZhOGViOTk4
OTBjMTA1MTI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weQpAQCAtMiwyMSArMiwyMSBA
QCBmcm9tIC5iYXNlIGltcG9ydCAoTnVsbEJyb3dzZXIsICAjIG5vcWE6IEY0MDEKICAgICAgICAg
ICAgICAgICAgICBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCwKICAgICAgICAgICAgICAgICAgICBn
ZXRfdGltZW91dF9tdWx0aXBsaWVyLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAg
bWF5YmVfYWRkX2FyZ3MpCi1mcm9tIC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKK2Zyb20g
LndlYmtpdCBpbXBvcnQgV2ViS2l0QnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0
b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20g
Li5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJv
bSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJDcmFzaHRl
c3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmtp
dCBpbXBvcnQgV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dw
dHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImVwaXBoYW55IiwKICAgICAgICAgICAgICAgICAgImNo
ZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjoge05v
bmU6ICJFcGlwaGFueUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25l
OiAiV2ViS2l0QnJvd3NlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiTnVsbEJyb3dzZXIifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJy
b3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVz
cyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3BlY0V4ZWN1
dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2RzcGVjRXhl
Y3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6ICJXZWJE
cml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dh
cmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjog
ImVudl9leHRyYXMiLApAQCAtNzEsMTAgKzcxLDMgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAKIGRl
ZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgogICAgIHJldHVybiB7IndlYmtpdF9wb3J0Ijog
Imd0ayJ9Ci0KLQotY2xhc3MgRXBpcGhhbnlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5v
bmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAg
ICAgICAgV2ViS2l0QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJp
dmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKaW5kZXggYWMyNzQ1MzEyN2FiZTdlNmQ4NjViYjZk
YTk4MDJlZGYwMWYzOGYyZS4uMGVkN2EzNjViNDI5OWEzNDNjOTcwNDE1YjlmOWZkYTkwNzk4ZTE3
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKQEAgLTEsMTMgKzEsMTIgQEAKLWltcG9ydCBi
YXNlNjQKLWltcG9ydCBpbwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3Jt
CiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCi1pbXBv
cnQgemlwZmlsZQoraW1wb3J0IHRpbWUKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFj
dG1ldGhvZAorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KIAogaW1wb3J0
IG1vemluZm8KIGltcG9ydCBtb3psZWFrCkBAIC0yMCw3ICsxOSw3IEBAIGZyb20gbW96Y3Jhc2gg
aW1wb3J0IG1vemNyYXNoCiAKIGZyb20gLmJhc2UgaW1wb3J0IChCcm93c2VyLAogICAgICAgICAg
ICAgICAgICAgIEV4ZWN1dG9yQnJvd3NlciwKLSAgICAgICAgICAgICAgICAgICBOdWxsQnJvd3Nl
ciwKKyAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJCcm93c2VyLAogICAgICAgICAgICAgICAg
ICAgIE91dHB1dEhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgT3V0cHV0SGFuZGxlclN0YXRl
LAogICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY29tbWFuZCwKQEAgLTMzLDEwICszMiw4IEBA
IGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRlIGltcG9ydCAoTWFyaW9uZXR0ZVRl
c3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1hcmlvbmV0dGVQcmludFJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQw
MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
V2RzcGVjRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBG
NDAxCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViRHJpdmVyU2VydmVyCiAKIAot
aGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogX193cHRydW5uZXJfXyA9IHsicHJv
ZHVjdCI6ICJmaXJlZm94IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tf
YXJncyIsCkBAIC04NSw2ICs4Miw4IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKIAogZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAg
ICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
KyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJnc1sid2ViZHJpdmVyX2FyZ3MiXSwK
ICAgICAgICAgICAgICJwcmVmc19yb290Ijoga3dhcmdzWyJwcmVmc19yb290Il0sCiAgICAgICAg
ICAgICAiZXh0cmFfcHJlZnMiOiBrd2FyZ3NbImV4dHJhX3ByZWZzIl0sCiAgICAgICAgICAgICAi
dGVzdF90eXBlIjogdGVzdF90eXBlLApAQCAtMTEyLDE3ICsxMTEsNiBAQCBkZWYgYnJvd3Nlcl9r
d2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3Mp
OgogICAgICAgICAgICAgInNwZWNpYWxwb3dlcnNfcGF0aCI6IGt3YXJnc1sic3BlY2lhbHBvd2Vy
c19wYXRoIl19CiAKIAotY2xhc3MgV2RTcGVjUHJvZmlsZShvYmplY3QpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwcm9maWxlKToKLSAgICAgICAgc2VsZi5wcm9maWxlID0gcHJvZmlsZQotCi0g
ICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLnByb2ZpbGUuY2xl
YW51cCgpCi0KLQogZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9l
bnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
OgogICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
dGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKQEAgLTE0NSw1NyArMTMzLDExIEBAIGRl
ZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1
bl9pbmZvX2RhdGEsCiAgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5X2FyZ3MiXToKICAgICAgICAg
ICAgIG9wdGlvbnNbImFyZ3MiXSA9IGt3YXJnc1siYmluYXJ5X2FyZ3MiXQogCi0gICAgICAgIHBy
b2ZpbGVfY3JlYXRvciA9IFByb2ZpbGVDcmVhdG9yKGxvZ2dlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZXh0cmFfcHJlZnMi
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJnZWNr
b19lMTBzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJn
c1siZW5hYmxlX2Zpc3Npb24iXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcu
c3NsX2NvbmZpZ1siY2FfY2VydF9wYXRoIl0pCi0gICAgICAgIGlmIGt3YXJnc1sicHJvY2Vzc2Vz
Il0gPiAxOgotICAgICAgICAgICAgIyBXaXRoIG11bHRpcGxlIHByb2Nlc3Nlcywgd2Ugd291bGQg
bmVlZCBhIHByb2ZpbGUgZGlyZWN0b3J5IHBlciBwcm9jZXNzLCBidXQgd2UKLSAgICAgICAgICAg
ICMgZG9uJ3QgaGF2ZSBhbiBlYXN5IHdheSB0byBkbyB0aGF0LCBzbyBpbmNsdWRlIHRoZSBwcm9m
aWxlIGluIHRoZSBjYXBhYmlsdGllcwotICAgICAgICAgICAgIyBkaXJlY3RseSBpbnN0ZWFkLiBU
aGlzIG1lYW5zIHJlY3JlYXRpbmcgaXQgcGVyIHNlc3Npb24sIHdoaWNoIGlzIHNsb3cKLSAgICAg
ICAgICAgIG9wdGlvbnNbInByb2ZpbGUiXSA9IHByb2ZpbGVfY3JlYXRvci5jcmVhdGVfYmFzZTY0
KCkKLSAgICAgICAgICAgIHByb2ZpbGUgPSBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBwcm9maWxlID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZSgpCi0gICAgICAgICAgICBvcHRpb25z
WyJhcmdzIl0uZXh0ZW5kKFsiLS1wcm9maWxlIiwgcHJvZmlsZS5wcm9maWxlXSkKLSAgICAgICAg
ICAgIHRlc3RfZW52aXJvbm1lbnQuZW52X2V4dHJhc19jbXMuYXBwZW5kKFdkU3BlY1Byb2ZpbGUo
cHJvZmlsZSkpCisgICAgICAgIGlmIG5vdCBrd2FyZ3NbImJpbmFyeSJdIGFuZCBrd2FyZ3NbImhl
YWRsZXNzIl0gYW5kICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9uc1siYXJncyJdOgorICAgICAg
ICAgICAgb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCiAKICAgICAgICAgY2Fw
YWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9wdGlvbnMiXSA9IG9wdGlvbnMKIAotICAgICAgICAjIFRo
aXMgZ2V0cyByZXVzZWQgZm9yIGZpcmVmb3hfYW5kcm9pZCwgYnV0IHRoZSBlbnZpcm9ubWVudCBz
ZXR1cAotICAgICAgICAjIGlzbid0IHJlcXVpcmVkIGluIHRoYXQgY2FzZQotICAgICAgICBpZiBr
d2FyZ3NbImJpbmFyeSJdOgotICAgICAgICAgICAgZW52aXJvbiA9IGdldF9lbnZpcm9uKGxvZ2dl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sic3R5bG9fdGhyZWFkcyJd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siaGVhZGxlc3MiXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImVuYWJsZV93ZWJyZW5k
ZXIiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImNoYW9zX21v
ZGVfZmxhZ3MiXSkKLSAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGUgPSBzZXR1cF9sZWFrX3Jl
cG9ydChrd2FyZ3NbImxlYWtfY2hlY2siXSwgcHJvZmlsZSwgZW52aXJvbikKLQotICAgICAgICAg
ICAgIyBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIHdkc3BlYyB0ZXN0cwotICAgICAgICAgICAgIyBJ
biBwYXJ0aWN1bGFyIHRlc3RzIGNhbiBjcmVhdGUgYSBzZXNzaW9uIHdpdGhvdXQgcGFzc2luZyBp
biB0aGUgY2FwYWJpbGl0ZXMKLSAgICAgICAgICAgICMgYW5kIGluIHRob3NlIGNhc2VzIHdlIGdl
dCB0aGUgZGVmYXVsdCBnZWNrb2RyaXZlciBwcm9maWxlIHdoaWNoIGRvZXNuJ3QKLSAgICAgICAg
ICAgICMgZ3VhcmFudGVlIHplcm8gbmV0d29yayBhY2Nlc3MKLSAgICAgICAgICAgIGRlbCBlbnZp
cm9uWyJNT1pfRElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9OUyJdCi0gICAgICAgICAgICBleGVj
dXRvcl9rd2FyZ3NbImVudmlyb24iXSA9IGVudmlyb24KLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXSBhbmQgIi0taGVhZGxlc3MiIG5vdCBpbiBvcHRpb25z
WyJhcmdzIl06Ci0gICAgICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1oZWFk
bGVzcyIpCi0gICAgICAgICAgICBsZWFrX3JlcG9ydF9maWxlID0gTm9uZQotCi0gICAgICAgIGV4
ZWN1dG9yX2t3YXJnc1sic3RhY2tmaXhfZGlyIl0gPSBrd2FyZ3NbInN0YWNrZml4X2RpciJdLAot
ICAgICAgICBleGVjdXRvcl9rd2FyZ3NbImxlYWtfcmVwb3J0X2ZpbGUiXSA9IGxlYWtfcmVwb3J0
X2ZpbGUKLSAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJhc2FuIl0gPSBydW5faW5mb19kYXRhLmdl
dCgiYXNhbiIpCi0KICAgICBpZiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdIGlzIE5vbmU6CiAg
ICAgICAgIGNhcGFiaWxpdGllc1siYWNjZXB0SW5zZWN1cmVDZXJ0cyJdID0gVHJ1ZQogICAgIGlm
IGNhcGFiaWxpdGllczoKQEAgLTI2Myw3ICsyMDUsNyBAQCBkZWYgcnVuX2luZm9fYnJvd3Nlcl92
ZXJzaW9uKCoqa3dhcmdzKToKIAogCiBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKLSAgICByZXR1
cm4gKFsib3MiLCAiZGVidWciLCAid2VicmVuZGVyIiwgImZpc3Npb24iLCAiZTEwcyIsICJwcm9j
ZXNzb3IiLCAic3dnbCJdLAorICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJmaXNzaW9uIiwg
ImUxMHMiLCAicHJvY2Vzc29yIiwgInN3Z2wiLCAiZG9tc3RyZWFtcyJdLAogICAgICAgICAgICAg
eyJvcyI6IFsidmVyc2lvbiJdLCAicHJvY2Vzc29yIjogWyJiaXRzIl19KQogCiAKQEAgLTI3NSw2
ICsyMTcsOCBAQCBkZWYgZ2V0X2Vudmlyb24obG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm8sIHN0
eWxvX3RocmVhZHMsIGhlYWRsZXNzLCBlbmFibGVfd2VicgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nPWxvZ2dlcikKIAogICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0eWxv
X3RocmVhZHMpCisgICAgIyBEaXNhYmxlIHdpbmRvdyBvY2NsdXNpb24uIEJ1ZyAxNzMzOTU1Cisg
ICAgZW52WyJNT1pfV0lORE9XX09DQ0xVU0lPTiJdID0gIjAiCiAgICAgaWYgY2hhb3NfbW9kZV9m
bGFncyBpcyBub3QgTm9uZToKICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoY2hh
b3NfbW9kZV9mbGFncykKICAgICBpZiBoZWFkbGVzczoKQEAgLTYwOCw3ICs1NTIsOCBAQCBjbGFz
cyBGaXJlZm94T3V0cHV0SGFuZGxlcihPdXRwdXRIYW5kbGVyKToKIAogY2xhc3MgUHJvZmlsZUNy
ZWF0b3I6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgY29uZmln
LCB0ZXN0X3R5cGUsIGV4dHJhX3ByZWZzLCBlMTBzLAotICAgICAgICAgICAgICAgICBlbmFibGVf
Zmlzc2lvbiwgYnJvd3Nlcl9jaGFubmVsLCBiaW5hcnksIGNlcnR1dGlsX2JpbmFyeSwgY2FfY2Vy
dGlmaWNhdGVfcGF0aCk6CisgICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBicm93c2Vy
X2NoYW5uZWwsIGJpbmFyeSwgY2VydHV0aWxfYmluYXJ5LAorICAgICAgICAgICAgICAgICBjYV9j
ZXJ0aWZpY2F0ZV9wYXRoKToKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKICAgICAgICAg
c2VsZi5wcmVmc19yb290ID0gcHJlZnNfcm9vdAogICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZwpAQCAtNjM5LDIxICs1ODQsNiBAQCBjbGFzcyBQcm9maWxlQ3JlYXRvcjoKIAogICAgICAgICBy
ZXR1cm4gcHJvZmlsZQogCi0gICAgZGVmIGNyZWF0ZV9iYXNlNjQoc2VsZiwgKiprd2FyZ3MpOgot
ICAgICAgICBwcm9maWxlID0gc2VsZi5jcmVhdGUoKiprd2FyZ3MpCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHdpdGggaW8uQnl0ZXNJTygpIGFzIGJ1ZjoKLSAgICAgICAgICAgICAgICB3aXRo
IHppcGZpbGUuWmlwRmlsZShidWYsICJ3IiwgY29tcHJlc3Npb249emlwZmlsZS5aSVBfREVGTEFU
RUQpIGFzIHppcGY6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBfLCBmaWxlbmFt
ZXMgaW4gb3Mud2Fsayhwcm9maWxlLnByb2ZpbGUpOgotICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
cmNfcGF0aCA9IG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXN0X3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoc3JjX3BhdGgsIHByb2Zp
bGUucHJvZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc3JjX3Bh
dGgsICJyYiIpIGFzIGY6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHppcGYud3Jp
dGVzdHIoZGVzdF9wYXRoLCBmLnJlYWQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0
LmI2NGVuY29kZShidWYuZ2V0dmFsdWUoKSkuZGVjb2RlKCJhc2NpaSIpLnN0cmlwKCkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHByb2ZpbGUuY2xlYW51cCgpCi0KICAgICBkZWYgX2xv
YWRfcHJlZnMoc2VsZik6CiAgICAgICAgIHByZWZzID0gUHJlZmVyZW5jZXMoKQogCkBAIC04ODEs
MTAgKzgxMSwxMTIgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKIAogCi1jbGFzcyBGaXJlZm94V2RTcGVjQnJvd3NlcihOdWxsQnJvd3Nl
cik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgbGVha19jaGVjaz1GYWxzZSwgKipr
d2FyZ3MpOgotICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgKiprd2FyZ3MpCitjbGFz
cyBGaXJlZm94V2RTcGVjQnJvd3NlcihXZWJEcml2ZXJCcm93c2VyKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHByZWZzX3Jvb3QsIHdlYmRyaXZlcl9iaW5hcnksIHdl
YmRyaXZlcl9hcmdzLAorICAgICAgICAgICAgICAgICBleHRyYV9wcmVmcz1Ob25lLCBkZWJ1Z19p
bmZvPU5vbmUsIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja3dhbGtfYmluYXJ5PU5vbmUsCisgICAg
ICAgICAgICAgICAgIGNlcnR1dGlsX2JpbmFyeT1Ob25lLCBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5v
bmUsIGUxMHM9RmFsc2UsCisgICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uPUZhbHNlLCBz
dGFja2ZpeF9kaXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgYXNh
bj1GYWxzZSwgc3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZpZz1O
b25lLAorICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFkbGVz
cz1Ob25lLCAqKmt3YXJncyk6CisKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsIGJp
bmFyeSwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIHNlbGYuYmlu
YXJ5ID0gYmluYXJ5CisgICAgICAgIHNlbGYud2ViZHJpdmVyX2JpbmFyeSA9IHdlYmRyaXZlcl9i
aW5hcnkKKworICAgICAgICBzZWxmLnN0YWNrZml4X2RpciA9IHN0YWNrZml4X2RpcgorICAgICAg
ICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAorICAgICAgICBzZWxmLnN0YWNrd2Fs
a19iaW5hcnkgPSBzdGFja3dhbGtfYmluYXJ5CisKKyAgICAgICAgc2VsZi5hc2FuID0gYXNhbgog
ICAgICAgICBzZWxmLmxlYWtfY2hlY2sgPSBsZWFrX2NoZWNrCisgICAgICAgIHNlbGYubGVha19y
ZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBzZWxmLmVudiA9IHNlbGYuZ2V0X2VudihiaW5h
cnksIGRlYnVnX2luZm8sIHN0eWxvX3RocmVhZHMsIGhlYWRsZXNzLCBjaGFvc19tb2RlX2ZsYWdz
KQorCisgICAgICAgIHByb2ZpbGVfY3JlYXRvciA9IFByb2ZpbGVDcmVhdG9yKGxvZ2dlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZnNfcm9vdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfcHJlZnMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGUxMHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydHV0aWxfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9wYXRoKQorCisgICAgICAgIHNlbGYucHJvZmlsZSA9
IHByb2ZpbGVfY3JlYXRvci5jcmVhdGUoKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9
IE5vbmUKKworICAgIGRlZiBnZXRfZW52KHNlbGYsIGJpbmFyeSwgZGVidWdfaW5mbywgc3R5bG9f
dGhyZWFkcywgaGVhZGxlc3MsIGNoYW9zX21vZGVfZmxhZ3MpOgorICAgICAgICBlbnYgPSBnZXRf
ZW52aXJvbihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHlsb190aHJlYWRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkbGVz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAg
ZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisgICAgICAgICMgVGhpcyBkb2Vzbid0IHdvcmsg
d2l0aCB3ZHNwZWMgdGVzdHMKKyAgICAgICAgIyBJbiBwYXJ0aWN1bGFyIHRlc3RzIGNhbiBjcmVh
dGUgYSBzZXNzaW9uIHdpdGhvdXQgcGFzc2luZyBpbiB0aGUgY2FwYWJpbGl0ZXMKKyAgICAgICAg
IyBhbmQgaW4gdGhvc2UgY2FzZXMgd2UgZ2V0IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVyIHByb2Zp
bGUgd2hpY2ggZG9lc24ndAorICAgICAgICAjIGd1YXJhbnRlZSB6ZXJvIG5ldHdvcmsgYWNjZXNz
CisgICAgICAgIGRlbCBlbnZbIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5FQ1RJT05TIl0KKyAg
ICAgICAgcmV0dXJuIGVudgorCisgICAgZGVmIGNyZWF0ZV9vdXRwdXRfaGFuZGxlcihzZWxmLCBj
bWQpOgorICAgICAgICByZXR1cm4gRmlyZWZveE91dHB1dEhhbmRsZXIoc2VsZi5sb2dnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGFja2ZpeF9kaXI9c2VsZi5zdGFja2ZpeF9kaXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xz
X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2FuPXNlbGYuYXNh
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWtfcmVwb3J0X2ZpbGU9
c2VsZi5sZWFrX3JlcG9ydF9maWxlKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFk
YXRhLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xl
YWtfcmVwb3J0KHNlbGYubGVha19jaGVjaywgc2VsZi5wcm9maWxlLCBzZWxmLmVudikKKyAgICAg
ICAgc3VwZXIoKS5zdGFydChncm91cF9tZXRhZGF0YSwgKiprd2FyZ3MpCisKKyAgICBkZWYgc3Rv
cChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgICMgSW5pdGlhbGx5IHdhaXQgZm9yIGFueSBX
ZWJEcml2ZXIgc2Vzc2lvbiB0byBjbGVhbmx5IHNodXRkb3duCisgICAgICAgICMgV2hlbiB0aGlz
IGlzIGNhbGxlZCB0aGUgZXhlY3V0b3IgaXMgdXN1YWxseSBzZW5kaW5nIGEgZW5kIHNlc3Npb24K
KyAgICAgICAgIyBjb21tYW5kIHRvIHRoZSBicm93c2VyLiBXZSBkb24ndCBoYXZlIGEgc3luY2hy
b25pc2F0aW9uIG1lY2hhbmlzbQorICAgICAgICAjIHRoYXQgYWxsb3dzIHVzIHRvIGtub3cgdGhh
dCBwcm9jZXNzIGlzIG9uZ29pbmcsIHNvIHBvbGwgdGhlIHN0YXR1cworICAgICAgICAjIGVuZHBv
aW50IHVudGlsIHRoZXJlIGlzbid0IGEgc2Vzc2lvbiwgYmVmb3JlIGtpbGxpbmcgdGhlIGRyaXZl
ci4KKyAgICAgICAgaWYgc2VsZi5pc19hbGl2ZSgpOgorICAgICAgICAgICAgZW5kX3RpbWUgPSB0
aW1lLnRpbWUoKSArIEJyb3dzZXJJbnN0YW5jZS5zaHV0ZG93bl90aW1lb3V0CisgICAgICAgICAg
ICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZF90aW1lOgorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJXYWl0aW5nIGZvciBXZWJEcml2ZXIgc2Vzc2lvbiB0byBlbmQiKQorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZiJD
b25uZWN0aW5nIHRvIGh0dHA6Ly97c2VsZi5ob3N0fTp7c2VsZi5wb3J0fS9zdGF0dXMiKQorICAg
ICAgICAgICAgICAgICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5ob3N0LCBzZWxmLnBv
cnQpCisgICAgICAgICAgICAgICAgICAgIGNvbm4ucmVxdWVzdCgiR0VUIiwgIi9zdGF0dXMiKQor
ICAgICAgICAgICAgICAgICAgICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZiJHb3QgcmVzcG9uc2UgZnJvbSBodHRwOi8ve3Nl
bGYuaG9zdH06e3NlbGYucG9ydH0vc3RhdHVzIikKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGYiQ29ubmVjdGluZyB0byBodHRwOi8ve3NlbGYuaG9zdH06e3NlbGYu
cG9ydH0vc3RhdHVzIGZhaWxlZCIpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
ICAgICAgICAgaWYgcmVzLnN0YXR1cyAhPSAyMDA6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKGYiQ29ubmVjdGluZyB0byBodHRwOi8ve3NlbGYuaG9zdH06e3NlbGYucG9y
dH0vc3RhdHVzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJnYXZl
IHN0YXR1cyB7cmVzLnN0YXR1c30iKQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgICAgIGRhdGEgPSByZXMucmVhZCgpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICBtc2cgPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgICAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCIv
c3RhdHVzIHJlc3BvbnNlIHdhcyBub3QgdmFsaWQgSlNPTiIpCisgICAgICAgICAgICAgICAgICAg
IGJyZWFrCisgICAgICAgICAgICAgICAgaWYgbXNnLmdldCgidmFsdWUiLCB7fSkuZ2V0KCJyZWFk
eSIpIGlzIFRydWU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3Qg
cmVhZHkgc3RhdHVzIikKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZyhmIkdvdCBzdGF0dXMgcmVzcG9uc2Uge2RhdGF9IikKKyAgICAg
ICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJXZWJEcml2ZXIgc2Vzc2lvbiBkaWRuJ3QgZW5kIikKKyAg
ICAgICAgc3VwZXIoKS5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6
CisgICAgICAgIHN1cGVyKCkuY2xlYW51cCgpCisgICAgICAgIHNlbGYucHJvZmlsZS5jbGVhbnVw
KCkKIAogICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToKICAgICAgICAgcmV0dXJuIHsiY2hl
Y2tfbGVha3MiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLApAQCAtODk0LDI0
ICs5MjYsMTIgQEAgY2xhc3MgRmlyZWZveFdkU3BlY0Jyb3dzZXIoTnVsbEJyb3dzZXIpOgogICAg
ICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3Qu
bW96bGVha19hbGxvd2VkLAogICAgICAgICAgICAgICAgICJtb3psZWFrX3RocmVzaG9sZHMiOiBz
ZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190aHJlc2hvbGR9CiAKLQotY2xhc3MgR2Vj
a29Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBvdXRwdXRfaGFuZGxlcl9jbHMg
PSBGaXJlZm94T3V0cHV0SGFuZGxlcgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
bWFyaW9uZXR0ZV9wb3J0PTI4MjgsIGJpbmFyeT0iZ2Vja29kcml2ZXIiLAotICAgICAgICAgICAg
ICAgICBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgot
ICAgICAgICBpZiBlbnYgaXMgTm9uZToKLSAgICAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29w
eSgpCi0gICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgotICAgICAgICBXZWJEcml2
ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBob3N0PWhvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3J0PXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzKQotICAgICAgICBz
ZWxmLm1hcmlvbmV0dGVfcG9ydCA9IG1hcmlvbmV0dGVfcG9ydAotCiAgICAgZGVmIG1ha2VfY29t
bWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAg
ICAiLS1tYXJpb25ldHRlLXBvcnQiLCBzdHIoc2VsZi5tYXJpb25ldHRlX3BvcnQpLAorICAgICAg
ICByZXR1cm4gW3NlbGYud2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAiLS1ob3N0
Iiwgc2VsZi5ob3N0LAotICAgICAgICAgICAgICAgICItLXBvcnQiLCBzdHIoc2VsZi5wb3J0KV0g
KyBzZWxmLl9hcmdzCisgICAgICAgICAgICAgICAgIi0tcG9ydCIsIHN0cihzZWxmLnBvcnQpXSAr
IHNlbGYud2ViZHJpdmVyX2FyZ3MKKworICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgor
ICAgICAgICBjbHMsIGFyZ3MgPSBzdXBlcigpLmV4ZWN1dG9yX2Jyb3dzZXIoKQorICAgICAgICBh
cmdzWyJwcm9maWxlIl0gPSBzZWxmLnByb2ZpbGUucHJvZmlsZQorICAgICAgICByZXR1cm4gY2xz
LCBhcmdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lk
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQppbmRleCAwZWFh
ODFhMGU0MzE0ZTYzNmFjMzFmMWY2ZGYzNGI3Y2NhN2IxNWMxLi42NjgyMWI4MTJiNTU3YzFjZjQ4
ZTY3ZmZlOTViY2M2ZDRiOTkwYWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
ZmlyZWZveF9hbmRyb2lkLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94X2Fu
ZHJvaWQucHkKQEAgLTEsNyArMSw3IEBACiBpbXBvcnQgb3MKIAogaW1wb3J0IG1vem5ldHdvcmsK
LWZyb20gbW96cnVubmVyIGltcG9ydCBGZW5uZWNFbXVsYXRvclJ1bm5lcgorZnJvbSBtb3pydW5u
ZXIgaW1wb3J0IEZlbm5lY0VtdWxhdG9yUnVubmVyLCBnZXRfYXBwX2NvbnRleHQKIAogZnJvbSAu
YmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCiAgICAgICAgICAgICAgICAgICAgY21kX2FyZywK
QEAgLTE2LDEyICsxNiwxNCBAQCBmcm9tIC5maXJlZm94IGltcG9ydCAoZ2V0X3RpbWVvdXRfbXVs
dGlwbGllciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2V4
dHJhcyBhcyBmeF9ydW5faW5mb19leHRyYXMsCiAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRl
X3Byb3BlcnRpZXMsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRv
cl9rd2FyZ3MgYXMgZnhfZXhlY3V0b3Jfa3dhcmdzLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAg
ICAgICAgICAgICAgRmlyZWZveFdkU3BlY0Jyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
UHJvZmlsZUNyZWF0b3IgYXMgRmlyZWZveFByb2ZpbGVDcmVhdG9yKQogCiAKIF9fd3B0cnVubmVy
X18gPSB7InByb2R1Y3QiOiAiZmlyZWZveF9hbmRyb2lkIiwKICAgICAgICAgICAgICAgICAgImNo
ZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjogIkZp
cmVmb3hBbmRyb2lkQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6
ICJGaXJlZm94QW5kcm9pZEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIkZpcmVmb3hBbmRyb2lkV2RTcGVjQnJvd3NlciJ9LAogICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIk1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1
dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIk1hcmlvbmV0
dGVSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNo
dGVzdCI6ICJNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0b3IiLApAQCAtNDEsNiArNDMsOCBAQCBk
ZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CiAKIGRlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsi
YWRiX2JpbmFyeSI6IGt3YXJnc1siYWRiX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZl
cl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJk
cml2ZXJfYXJncyI6IGt3YXJnc1sid2ViZHJpdmVyX2FyZ3MiXSwKICAgICAgICAgICAgICJwYWNr
YWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAogICAgICAgICAgICAgImRldmljZV9z
ZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAgICAgICJwcmVmc19yb290
Ijoga3dhcmdzWyJwcmVmc19yb290Il0sCkBAIC05Nyw2ICsxMDEsMTcgQEAgZGVmIGVudl9vcHRp
b25zKCk6CiAgICAgICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQogCiAKK2RlZiBn
ZXRfZW52aXJvbihzdHlsb190aHJlYWRzLCBjaGFvc19tb2RlX2ZsYWdzKToKKyAgICBlbnYgPSB7
fQorICAgIGVudlsiTU9aX0NSQVNIUkVQT1JURVIiXSA9ICIxIgorICAgIGVudlsiTU9aX0NSQVNI
UkVQT1JURVJfU0hVVERPV04iXSA9ICIxIgorICAgIGVudlsiTU9aX0RJU0FCTEVfTk9OTE9DQUxf
Q09OTkVDVElPTlMiXSA9ICIxIgorICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHN0eWxv
X3RocmVhZHMpCisgICAgaWYgY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAg
ZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoY2hhb3NfbW9kZV9mbGFncykKKyAgICByZXR1cm4g
ZW52CisKKwogY2xhc3MgUHJvZmlsZUNyZWF0b3IoRmlyZWZveFByb2ZpbGVDcmVhdG9yKToKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCBjb25maWcsIHRlc3RfdHlw
ZSwgZXh0cmFfcHJlZnMsCiAgICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBicm93c2Vy
X2NoYW5uZWwsIGNlcnR1dGlsX2JpbmFyeSwgY2FfY2VydGlmaWNhdGVfcGF0aCk6CkBAIC0xMzMs
OCArMTQ4LDggQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAgIGlu
aXRfdGltZW91dCA9IDMwMAogICAgIHNodXRkb3duX3RpbWVvdXQgPSA2MAogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgdGVzdF90eXBlLCBwYWNrYWdlX25hbWU9
Im9yZy5tb3ppbGxhLmdlY2tvdmlldy50ZXN0IiwKLSAgICAgICAgICAgICAgICAgZGV2aWNlX3Nl
cmlhbD0iZW11bGF0b3ItNTQ0NCIsIGV4dHJhX3ByZWZzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCB0ZXN0X3R5cGUsIHBh
Y2thZ2VfbmFtZT0ib3JnLm1vemlsbGEuZ2Vja292aWV3LnRlc3RfcnVubmVyIiwKKyAgICAgICAg
ICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLCBleHRyYV9wcmVmcz1Ob25lLCBkZWJ1Z19pbmZv
PU5vbmUsCiAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lLCBzdGFja3dhbGtfYmlu
YXJ5PU5vbmUsIGNlcnR1dGlsX2JpbmFyeT1Ob25lLAogICAgICAgICAgICAgICAgICBjYV9jZXJ0
aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9RmFsc2UsIHN0
YWNrZml4X2Rpcj1Ob25lLAogICAgICAgICAgICAgICAgICBiaW5hcnlfYXJncz1Ob25lLCB0aW1l
b3V0X211bHRpcGxpZXI9Tm9uZSwgbGVha19jaGVjaz1GYWxzZSwgYXNhbj1GYWxzZSwKQEAgLTIx
NiwxNyArMjMxLDcgQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJyb3dzZXIpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0
dGUiKSwgImFib3V0OmJsYW5rIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmRlYnVnX2luZm8pCiAKLSAgICAgICAgZW52ID0ge30KLSAgICAgICAgZW52
WyJNT1pfQ1JBU0hSRVBPUlRFUiJdID0gIjEiCi0gICAgICAgIGVudlsiTU9aX0NSQVNIUkVQT1JU
RVJfU0hVVERPV04iXSA9ICIxIgotICAgICAgICBlbnZbIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NP
Tk5FQ1RJT05TIl0gPSAiMSIKLSAgICAgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2Vs
Zi5zdHlsb190aHJlYWRzKQotICAgICAgICBpZiBzZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9z
X21vZGVfZmxhZ3MpCi0gICAgICAgIGlmIHNlbGYuZW5hYmxlX3dlYnJlbmRlcjoKLSAgICAgICAg
ICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIwIgorICAgICAgICBlbnYgPSBnZXRfZW52aXJvbihz
ZWxmLnN0eWxvX3RocmVhZHMsIHNlbGYuY2hhb3NfbW9kZV9mbGFncykKIAogICAgICAgICBzZWxm
LnJ1bm5lciA9IEZlbm5lY0VtdWxhdG9yUnVubmVyKGFwcD1zZWxmLnBhY2thZ2VfbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlPXNlbGYucHJv
ZmlsZSwKQEAgLTI5OSwzICszMDQsNTggQEAgY2xhc3MgRmlyZWZveEFuZHJvaWRCcm93c2VyKEJy
b3dzZXIpOgogICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoIk1JTklEVU1QX1NUQUNLV0FM
SyIsICIiKSBhbmQgc2VsZi5zdGFja3dhbGtfYmluYXJ5OgogICAgICAgICAgICAgb3MuZW52aXJv
blsiTUlOSURVTVBfU1RBQ0tXQUxLIl0gPSBzZWxmLnN0YWNrd2Fsa19iaW5hcnkKICAgICAgICAg
cmV0dXJuIGJvb2woc2VsZi5ydW5uZXIuY2hlY2tfZm9yX2NyYXNoZXModGVzdF9uYW1lPXRlc3Qp
KQorCisKK2NsYXNzIEZpcmVmb3hBbmRyb2lkV2RTcGVjQnJvd3NlcihGaXJlZm94V2RTcGVjQnJv
d3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgd2ViZHJp
dmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICAgICAgIGV4dHJhX3ByZWZz
PU5vbmUsIGRlYnVnX2luZm89Tm9uZSwgc3ltYm9sc19wYXRoPU5vbmUsIHN0YWNrd2Fsa19iaW5h
cnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2VydHV0aWxfYmluYXJ5PU5vbmUsIGNhX2NlcnRp
ZmljYXRlX3BhdGg9Tm9uZSwgZTEwcz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZW5hYmxlX2Zp
c3Npb249RmFsc2UsIHN0YWNrZml4X2Rpcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNlLAorICAgICAg
ICAgICAgICAgICBhc2FuPUZhbHNlLCBzdHlsb190aHJlYWRzPTEsIGNoYW9zX21vZGVfZmxhZ3M9
Tm9uZSwgY29uZmlnPU5vbmUsCisgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hhbm5lbD0ibmln
aHRseSIsIGhlYWRsZXNzPU5vbmUsCisgICAgICAgICAgICAgICAgIHBhY2thZ2VfbmFtZT0ib3Jn
Lm1vemlsbGEuZ2Vja292aWV3LnRlc3RfcnVubmVyIiwgZGV2aWNlX3NlcmlhbD1Ob25lLAorICAg
ICAgICAgICAgICAgICBhZGJfYmluYXJ5PU5vbmUsICoqa3dhcmdzKToKKworICAgICAgICBzdXBl
cigpLl9faW5pdF9fKGxvZ2dlciwgTm9uZSwgcHJlZnNfcm9vdCwgd2ViZHJpdmVyX2JpbmFyeSwg
d2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfcHJlZnM9ZXh0
cmFfcHJlZnMsIGRlYnVnX2luZm89ZGVidWdfaW5mbywgc3ltYm9sc19wYXRoPXN5bWJvbHNfcGF0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmluYXJ5PXN0YWNrd2Fsa19i
aW5hcnksIGNlcnR1dGlsX2JpbmFyeT1jZXJ0dXRpbF9iaW5hcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1jYV9jZXJ0aWZpY2F0ZV9wYXRoLCBlMTBzPWUx
MHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2Zpc3Npb249ZW5hYmxlX2Zpc3Np
b24sIHN0YWNrZml4X2Rpcj1zdGFja2ZpeF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
bGVha19jaGVjaz1sZWFrX2NoZWNrLCBhc2FuPWFzYW4sIHN0eWxvX3RocmVhZHM9c3R5bG9fdGhy
ZWFkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGFvc19tb2RlX2ZsYWdzPWNoYW9zX21v
ZGVfZmxhZ3MsIGNvbmZpZz1jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
cl9jaGFubmVsPWJyb3dzZXJfY2hhbm5lbCwgaGVhZGxlc3M9aGVhZGxlc3MsICoqa3dhcmdzKQor
CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisgICAgICAgIHNlbGYucGFja2FnZV9uYW1l
ID0gcGFja2FnZV9uYW1lCisgICAgICAgIHNlbGYuZGV2aWNlX3NlcmlhbCA9IGRldmljZV9zZXJp
YWwKKyAgICAgICAgIyBUaGlzIGlzIGp1c3QgdG8gc3VwcG9ydCB0aGUgc2FtZSBhZGIgbG9va3Vw
IGFzIGZvciBvdGhlciB0ZXN0IHR5cGVzCisgICAgICAgIGNvbnRleHQgPSBnZXRfYXBwX2NvbnRl
eHQoImZlbm5lYyIpKGFkYl9wYXRoPWFkYl9iaW5hcnksIGRldmljZV9zZXJpYWw9ZGV2aWNlX3Nl
cmlhbCkKKyAgICAgICAgc2VsZi5kZXZpY2UgPSBjb250ZXh0LmdldF9kZXZpY2UoY29udGV4dC5h
ZGIsIHNlbGYuZGV2aWNlX3NlcmlhbCkKKworICAgIGRlZiBzdGFydChzZWxmLCBncm91cF9tZXRh
ZGF0YSwgKiprd2FyZ3MpOgorICAgICAgICBmb3IgcG9ydHMgaW4gc2VsZi5jb25maWcucG9ydHMu
dmFsdWVzKCk6CisgICAgICAgICAgICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgICAg
ICBzZWxmLmRldmljZS5yZXZlcnNlKAorICAgICAgICAgICAgICAgICAgICBsb2NhbD0idGNwOnt9
Ii5mb3JtYXQocG9ydCksCisgICAgICAgICAgICAgICAgICAgIHJlbW90ZT0idGNwOnt9Ii5mb3Jt
YXQocG9ydCkpCisgICAgICAgIHN1cGVyKCkuc3RhcnQoZ3JvdXBfbWV0YWRhdGEsICoqa3dhcmdz
KQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzZWxmLmRldmljZS5yZW1vdmVfcmV2ZXJzZXMoKQorICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8g
cmVtb3ZlIGZvcndhcmRlZCBvciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkKKyAgICAgICAgc3Vw
ZXIoKS5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIGdldF9lbnYoc2VsZiwgYmluYXJ5LCBk
ZWJ1Z19pbmZvLCBzdHlsb190aHJlYWRzLCBoZWFkbGVzcywgY2hhb3NfbW9kZV9mbGFncyk6Cisg
ICAgICAgIGVudiA9IGdldF9lbnZpcm9uKHN0eWxvX3RocmVhZHMsIGNoYW9zX21vZGVfZmxhZ3Mp
CisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgorICAgICAgICBkZWwgZW52WyJN
T1pfRElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9OUyJdCisgICAgICAgIHJldHVybiBlbnYKKwor
ICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICBjbHMsIGFyZ3MgPSBzdXBl
cigpLmV4ZWN1dG9yX2Jyb3dzZXIoKQorICAgICAgICBhcmdzWyJhbmRyb2lkUGFja2FnZSJdID0g
c2VsZi5wYWNrYWdlX25hbWUKKyAgICAgICAgYXJnc1siYW5kcm9pZERldmljZVNlcmlhbCJdID0g
c2VsZi5kZXZpY2Vfc2VyaWFsCisgICAgICAgIGFyZ3NbImVudiJdID0gc2VsZi5lbnYKKyAgICAg
ICAgcmV0dXJuIGNscywgYXJncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ll
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CmluZGV4IGM4NTFkYWYwYjYzY2JmZDk0
YmRiYmJlM2U5YTYzN2NlODg0ZTMwZDQuLmRlNTc3ZTA2YTAxYjQ5NWFmMmVkNDRhMDZjOTg0ZTVh
OGFmN2NkMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKQEAgLTEsMTIgKzEsMTIgQEAKLWZyb20gLmJhc2Ug
aW1wb3J0IHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciAgIyBub3FhOiBGNDAxCitmcm9tIC5iYXNlIGltcG9ydCByZXF1aXJl
X2FyZywgV2ViRHJpdmVyQnJvd3NlcgorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVs
dGlwbGllciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9r
d2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jp
bnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVj
dXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAog
ICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAg
ICAgICAgImJyb3dzZXIiOiAiTnVsbEJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAiZXhlY3V0
b3IiOiB7Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiV2ViRHJpdmVyQnJvd3NlciIsCisgICAgICAg
ICAgICAgICAgICJleGVjdXRvciI6IHsid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIn0sCiAgICAg
ICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAg
ICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAg
ICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC0xNywxMCArMTcsMTIgQEAg
X193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJpZSIsCiBkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKKwogZGVm
IGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0
KCJ3ZWJkcml2ZXJfYXJncyIpfQogCisKIGRlZiBleGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0
X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAg
ICAgICoqa3dhcmdzKToKICAgICBvcHRpb25zID0ge30KQEAgLTMyLDggKzM0LDE1IEBAIGRlZiBl
eGVjdXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9p
bmZvX2RhdGEsCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxp
dGllcwogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAorCiBkZWYgZW52X2V4dHJhcygqKmt3
YXJncyk6CiAgICAgcmV0dXJuIFtdCiAKKwogZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJu
IHsic3VwcG9ydHNfZGVidWdnZXIiOiBGYWxzZX0KKworCitjbGFzcyBJbnRlcm5ldEV4cGxvcmVy
QnJvd3NlcihXZWJEcml2ZXJCcm93c2VyKToKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgor
ICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCBmIi0tcG9ydD17c2VsZi5wb3J0fSJdICsgc2Vs
Zi53ZWJkcml2ZXJfYXJncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJh
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CmluZGV4IGYzYTI5MjljZThlYmI2
OWM1MzQ4NjJlMDAwMTM0YjQ2ZmEyMzU2YjQuLmI3ZjJhNDAzM2Y3ODI1YTM2NGE5NjQ4MGNiYjJm
ODJkZjIzNDZjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKQEAgLTEsMjAgKzEsMTggQEAKLWZy
b20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKLWZy
b20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1w
b3J0IHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVy
ICAgIyBub3FhOiBGNDAxCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgT3BlcmFEcml2
ZXJTZXJ2ZXIKK2Zyb20gLmNocm9tZSBpbXBvcnQgQ2hyb21lQnJvd3NlcgogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9t
IC4uZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5l
c3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20g
Li5leGVjdXRvcnMuZXhlY3V0b3JvcGVyYSBpbXBvcnQgT3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRv
ciAgIyBub3FhOiBGNDAxCiAKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJvcGVyYSIs
CiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAg
ICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiT3BlcmFCcm93c2VyIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6ICJPcGVyYUJyb3dzZXIiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Ii
OiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRv
ciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk9wZXJhRHJpdmVy
V2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjog
ImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJl
eGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0
cmFzIiwKQEAgLTY2LDM4ICs2NCw1IEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAgIHJldHVybiB7
fQogCiAKLWNsYXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKLSAgICAiIiJPcGVyYSBpcyBiYWNr
ZWQgYnkgb3BlcmFkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKLSAgICBgYHdwdHJ1
bm5lci53ZWJkcml2ZXIuT3BlcmFEcml2ZXJTZXJ2ZXJgYC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0ib3BlcmFkcml2
ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6Ci0g
ICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgT3BlcmEuICBUaGUgYGJp
bmFyeWAgYXJndW1lbnQgZ2l2ZXMKLSAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBm
b3IgdGVzdGluZy4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCi0g
ICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5Ci0gICAgICAgIHNlbGYuc2VydmVyID0gT3BlcmFE
cml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKLQotICAgIGRlZiBzdGFydChz
ZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQot
Ci0gICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5z
dG9wKGZvcmNlPWZvcmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuc2VydmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8o
YXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAj
IGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9u
Ci0gICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxp
dmUoKQotCi0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAg
ICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJv
d3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQorY2xhc3MgT3BlcmFCcm93
c2VyKENocm9tZUJyb3dzZXIpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9zYWZhcmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4
IDIwYTU0NzVhY2YwYjYxZTYzZmNmZmZhNTMzZDAwMTc2OTNmM2NmZDQuLjNmOTEwYjUxZjk4ZjBk
ZDJmMzU2ZWZhY2UwMzEyNWY4NjM5ZWQ4NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zYWZhcmkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpAQCAt
MSwzMiArMSwzMSBAQAogaW1wb3J0IG9zCiBpbXBvcnQgcGxpc3RsaWIKIGZyb20gZGlzdHV0aWxz
LnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKK2Zyb20gZGlzdHV0aWxzLnZlcnNpb24gaW1w
b3J0IExvb3NlVmVyc2lvbgogCiBpbXBvcnQgcHN1dGlsCiAKLWZyb20gLmJhc2UgaW1wb3J0IEJy
b3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKLWZyb20gLmJhc2UgaW1wb3J0IE51
bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IFdlYkRyaXZlckJyb3dz
ZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVy
ICAgIyBub3FhOiBGNDAxCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgU2FmYXJpRHJp
dmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFz
ZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhl
Y3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBp
bXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAu
LmV4ZWN1dG9ycy5leGVjdXRvcnNhZmFyaSBpbXBvcnQgU2FmYXJpRHJpdmVyV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQogCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAic2FmYXJp
IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAg
ICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJTYWZhcmlCcm93c2VyIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJTYWZhcmlCcm93c2VyIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1
dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RF
eGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIlNhZmFy
aURyaXZlcldkc3BlY0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNyYXNodGVzdCI6ICJXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAogICAgICAgICAgICAg
ICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAg
ICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAogICAgICAgICAgICAgICAgICAiZW52X29wdGlv
bnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjog
InJ1bl9pbmZvX2V4dHJhcyIsCiAgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIi
OiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CiAKIApAQCAtNDksNiArNDgsMTQgQEAgZGVmIGV4
ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MKICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgog
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTYWZhcmkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcg
ZXhlY3V0YWJsZSBsb2NhdGlvbiIpCiAKKyAgICBWID0gTG9vc2VWZXJzaW9uCisgICAgYnJvd3Nl
cl9idW5kbGVfdmVyc2lvbiA9IHJ1bl9pbmZvX2RhdGFbImJyb3dzZXJfYnVuZGxlX3ZlcnNpb24i
XQorICAgIGlmIGJyb3dzZXJfYnVuZGxlX3ZlcnNpb24gaXMgbm90IE5vbmUgYW5kIFYoYnJvd3Nl
cl9idW5kbGVfdmVyc2lvblsyOl0pID49IFYoIjYxMy4xLjcuMSIpOgorICAgICAgICBsb2dnZXIu
ZGVidWcoInVzaW5nIGFjY2VwdEluc2VjdXJlQ2VydHM9VHJ1ZSIpCisgICAgICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImFjY2VwdEluc2VjdXJlQ2VydHMiXSA9IFRydWUKKyAg
ICBlbHNlOgorICAgICAgICBsb2dnZXIud2FybmluZygibm90IHVzaW5nIGFjY2VwdEluc2VjdXJl
Q2VydHMsIFNhZmFyaSB3aWxsIHJlcXVpcmUgY2VydGlmaWNhdGVzIHRvIGJlIHRydXN0ZWQiKQor
CiAgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwogCiAKQEAgLTYwLDc2ICs2NywxMzEgQEAgZGVm
IGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHt9CiAKIAotY2xhc3MgU2FmYXJpQnJvd3NlcihC
cm93c2VyKToKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIHdlYmRyaXZlcl9i
aW5hcnkgPSBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXQorICAgIHJ2ID0ge30KKworICAgIHNh
ZmFyaV9idW5kbGUsIHNhZmFyaV9pbmZvID0gZ2V0X3NhZmFyaV9pbmZvKHdlYmRyaXZlcl9iaW5h
cnkpCisKKyAgICBpZiBzYWZhcmlfaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgYXNzZXJ0IHNh
ZmFyaV9idW5kbGUgaXMgbm90IE5vbmUgICMgaWYgc2FmYXJpX2luZm8gaXMgbm90IE5vbmUsIHRo
aXMgY2FuJ3QgYmUKKyAgICAgICAgXywgd2Via2l0X2luZm8gPSBnZXRfd2Via2l0X2luZm8oc2Fm
YXJpX2J1bmRsZSkKKyAgICAgICAgaWYgd2Via2l0X2luZm8gaXMgTm9uZToKKyAgICAgICAgICAg
IHdlYmtpdF9pbmZvID0ge30KKyAgICBlbHNlOgorICAgICAgICBzYWZhcmlfaW5mbyA9IHt9Cisg
ICAgICAgIHdlYmtpdF9pbmZvID0ge30KKworICAgIHJ2WyJicm93c2VyX21hcmtldGluZ192ZXJz
aW9uIl0gPSBzYWZhcmlfaW5mby5nZXQoIkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nIikKKyAg
ICBydlsiYnJvd3Nlcl9idW5kbGVfdmVyc2lvbiJdID0gc2FmYXJpX2luZm8uZ2V0KCJDRkJ1bmRs
ZVZlcnNpb24iKQorICAgIHJ2WyJicm93c2VyX3dlYmtpdF9idW5kbGVfdmVyc2lvbiJdID0gd2Vi
a2l0X2luZm8uZ2V0KCJDRkJ1bmRsZVZlcnNpb24iKQorCisgICAgd2l0aCBvcGVuKCIvU3lzdGVt
L0xpYnJhcnkvQ29yZVNlcnZpY2VzL1N5c3RlbVZlcnNpb24ucGxpc3QiLCAicmIiKSBhcyBmcDoK
KyAgICAgICAgc3lzdGVtX3ZlcnNpb24gPSBwbGlzdGxpYi5sb2FkKGZwKQorCisgICAgcnZbIm9z
X2J1aWxkIl0gPSBzeXN0ZW1fdmVyc2lvblsiUHJvZHVjdEJ1aWxkVmVyc2lvbiJdCisKKyAgICBy
ZXR1cm4gcnYKKworCitkZWYgZ2V0X3NhZmFyaV9pbmZvKHdkX3BhdGgpOgorICAgIGJ1bmRsZV9w
YXRocyA9IFsKKyAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZSh3ZF9wYXRoKSwg
Ii4uIiwgIi4uIiksICAjIGJ1bmRsZWQgU2FmYXJpIChlLmcuIFNUUCkKKyAgICAgICAgb3MucGF0
aC5qb2luKG9zLnBhdGguZGlybmFtZSh3ZF9wYXRoKSwgIlNhZmFyaS5hcHAiKSwgICMgbG9jYWwg
U2FmYXJpIGJ1aWxkCisgICAgICAgICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAiLCAgIyBzeXN0
ZW0gU2FmYXJpCisgICAgXQorCisgICAgZm9yIGJ1bmRsZV9wYXRoIGluIGJ1bmRsZV9wYXRoczoK
KyAgICAgICAgaW5mb19wYXRoID0gb3MucGF0aC5qb2luKGJ1bmRsZV9wYXRoLCAiQ29udGVudHMi
LCAiSW5mby5wbGlzdCIpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShpbmZvX3BhdGgp
OgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICB3aXRoIG9wZW4oaW5mb19wYXRoLCAi
cmIiKSBhcyBmcDoKKyAgICAgICAgICAgIGluZm8gPSBwbGlzdGxpYi5sb2FkKGZwKQorCisgICAg
ICAgICMgY2hlY2sgd2UgaGF2ZSBhIFNhZmFyaSBmYW1pbHkgYnVuZGxlCisgICAgICAgIGlkZW50
ID0gaW5mby5nZXQoIkNGQnVuZGxlSWRlbnRpZmllciIpCisgICAgICAgIGlmIG5vdCBpc2luc3Rh
bmNlKGlkZW50LCBzdHIpIG9yIG5vdCBpZGVudC5zdGFydHN3aXRoKCJjb20uYXBwbGUuU2FmYXJp
Iik6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIHJldHVybiAoYnVuZGxlX3BhdGgs
IGluZm8pCisKKyAgICByZXR1cm4gKE5vbmUsIE5vbmUpCisKKworZGVmIGdldF93ZWJraXRfaW5m
byhzYWZhcmlfYnVuZGxlX3BhdGgpOgorICAgIGZyYW1ld29ya19wYXRocyA9IFsKKyAgICAgICAg
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShzYWZhcmlfYnVuZGxlX3BhdGgpLCAiQ29udGVu
dHMiLCAiRnJhbWV3b3JrcyIpLCAgIyBidW5kbGVkIFNhZmFyaSAoZS5nLiBTVFApCisgICAgICAg
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoc2FmYXJpX2J1bmRsZV9wYXRoKSwgIi4uIiks
ICAjIGxvY2FsIFNhZmFyaSBidWlsZAorICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzIiwKKyAgICAgICAgIi9MaWJyYXJ5L0ZyYW1ld29ya3MiLAorICAgICAgICAiL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MiLAorICAgIF0KKworICAgIGZvciBmcmFtZXdvcmtfcGF0
aCBpbiBmcmFtZXdvcmtfcGF0aHM6CisgICAgICAgIGluZm9fcGF0aCA9IG9zLnBhdGguam9pbihm
cmFtZXdvcmtfcGF0aCwgIldlYktpdC5mcmFtZXdvcmsiLCAiVmVyc2lvbnMiLCAiQ3VycmVudCIs
ICJSZXNvdXJjZXMiLCAiSW5mby5wbGlzdCIpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmls
ZShpbmZvX3BhdGgpOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICB3aXRoIG9wZW4o
aW5mb19wYXRoLCAicmIiKSBhcyBmcDoKKyAgICAgICAgICAgIGluZm8gPSBwbGlzdGxpYi5sb2Fk
KGZwKQorICAgICAgICAgICAgcmV0dXJuIChmcmFtZXdvcmtfcGF0aCwgaW5mbykKKworICAgIHJl
dHVybiAoTm9uZSwgTm9uZSkKKworCitjbGFzcyBTYWZhcmlCcm93c2VyKFdlYkRyaXZlckJyb3dz
ZXIpOgogICAgICIiIlNhZmFyaSBpcyBiYWNrZWQgYnkgc2FmYXJpZHJpdmVyLCB3aGljaCBpcyBz
dXBwbGllZCB0aHJvdWdoCiAgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLlNhZmFyaURyaXZlclNl
cnZlcmBgLgogICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJp
dmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwga2lsbF9zYWZhcmk9RmFsc2UsICoqa3dh
cmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwgd2ViZHJp
dmVyX2JpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAgICAgICAgICAgICBw
b3J0PU5vbmUsIGVudj1Ob25lLCBraWxsX3NhZmFyaT1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAg
ICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIFNhZmFyaS4gIFRoZSBgd2ViZHJp
dmVyX2JpbmFyeWAKICAgICAgICAgYXJndW1lbnQgZ2l2ZXMgdGhlIFdlYkRyaXZlciBiaW5hcnkg
dG8gdXNlIGZvciB0ZXN0aW5nLiAoVGhlIGJyb3dzZXIKICAgICAgICAgYmluYXJ5IGxvY2F0aW9u
IGNhbm5vdCBiZSBzcGVjaWZpZWQsIGFzIFNhZmFyaSBhbmQgU2FmYXJpRHJpdmVyIGFyZQogICAg
ICAgICBjb3VwbGVkLikgSWYgYGtpbGxfc2FmYXJpYCBpcyBUcnVlLCB0aGVuIGBCcm93c2VyLnN0
b3BgIHdpbGwgc3RvcCBTYWZhcmkuIiIiCi0gICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwg
bG9nZ2VyKQotICAgICAgICBzZWxmLnNlcnZlciA9IFNhZmFyaURyaXZlclNlcnZlcihzZWxmLmxv
Z2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdl
YmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9h
cmdzPXdlYmRyaXZlcl9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52KQorCiAgICAgICAgIGlmICIvIiBub3Qg
aW4gd2ViZHJpdmVyX2JpbmFyeToKICAgICAgICAgICAgIHdkX3BhdGggPSBmaW5kX2V4ZWN1dGFi
bGUod2ViZHJpdmVyX2JpbmFyeSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHdkX3BhdGgg
PSB3ZWJkcml2ZXJfYmluYXJ5Ci0gICAgICAgIHNlbGYuc2FmYXJpX3BhdGggPSBzZWxmLl9maW5k
QXNzb2NpYXRlZFNhZmFyaUV4ZWN1dGFibGUod2RfcGF0aCkKKyAgICAgICAgc2VsZi5zYWZhcmlf
cGF0aCA9IHNlbGYuX2ZpbmRfc2FmYXJpX2V4ZWN1dGFibGUod2RfcGF0aCkKIAogICAgICAgICBs
b2dnZXIuZGVidWcoIldlYkRyaXZlciBleGVjdXRhYmxlIHBhdGg6ICVzIiAlIHdkX3BhdGgpCiAg
ICAgICAgIGxvZ2dlci5kZWJ1ZygiU2FmYXJpIGV4ZWN1dGFibGUgcGF0aDogJXMiICUgc2VsZi5z
YWZhcmlfcGF0aCkKIAogICAgICAgICBzZWxmLmtpbGxfc2FmYXJpID0ga2lsbF9zYWZhcmkKIAot
ICAgIGRlZiBfZmluZEFzc29jaWF0ZWRTYWZhcmlFeGVjdXRhYmxlKHNlbGYsIHdkX3BhdGgpOgot
ICAgICAgICBidW5kbGVfcGF0aHMgPSBbCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0
aC5kaXJuYW1lKHdkX3BhdGgpLCAiLi4iLCAiLi4iKSwgICMgYnVuZGxlZCBTYWZhcmkgKGUuZy4g
U1RQKQotICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZSh3ZF9wYXRoKSwg
IlNhZmFyaS5hcHAiKSwgICMgbG9jYWwgU2FmYXJpIGJ1aWxkCi0gICAgICAgICAgICAiL0FwcGxp
Y2F0aW9ucy9TYWZhcmkuYXBwIiwgICMgc3lzdGVtIFNhZmFyaQotICAgICAgICBdCisgICAgZGVm
IF9maW5kX3NhZmFyaV9leGVjdXRhYmxlKHNlbGYsIHdkX3BhdGgpOgorICAgICAgICBidW5kbGVf
cGF0aCwgaW5mbyA9IGdldF9zYWZhcmlfaW5mbyh3ZF9wYXRoKQogCi0gICAgICAgIGZvciBidW5k
bGVfcGF0aCBpbiBidW5kbGVfcGF0aHM6Ci0gICAgICAgICAgICBpbmZvX3BhdGggPSBvcy5wYXRo
LmpvaW4oYnVuZGxlX3BhdGgsICJDb250ZW50cyIsICJJbmZvLnBsaXN0IikKLSAgICAgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZmlsZShpbmZvX3BhdGgpOgotICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgIGV4ZSA9IGluZm8uZ2V0KCJDRkJ1bmRsZUV4ZWN1dGFibGUiKQorICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShleGUsIHN0cik6CisgICAgICAgICAgICByZXR1cm4gTm9uZQog
Ci0gICAgICAgICAgICB3aXRoIG9wZW4oaW5mb19wYXRoLCAicmIiKSBhcyBmcDoKLSAgICAgICAg
ICAgICAgICBpbmZvID0gcGxpc3RsaWIubG9hZChmcCkKKyAgICAgICAgZXhlX3BhdGggPSBvcy5w
YXRoLmpvaW4oYnVuZGxlX3BhdGgsICJDb250ZW50cyIsICJNYWNPUyIsIGV4ZSkKKyAgICAgICAg
aWYgbm90IG9zLnBhdGguaXNmaWxlKGV4ZV9wYXRoKToKKyAgICAgICAgICAgIHJldHVybiBOb25l
CiAKLSAgICAgICAgICAgICMgY2hlY2sgd2UgaGF2ZSBhIFNhZmFyaSBmYW1pbHkgYnVuZGxlCi0g
ICAgICAgICAgICBpZiAiQ0ZCdW5kbGVJZGVudGlmaWVyIiBub3QgaW4gaW5mbzoKLSAgICAgICAg
ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWRlbnQgPSBpbmZvWyJDRkJ1bmRsZUlkZW50
aWZpZXIiXQotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRlbnQsIHN0cikgb3Igbm90
IGlkZW50LnN0YXJ0c3dpdGgoImNvbS5hcHBsZS5TYWZhcmkiKToKLSAgICAgICAgICAgICAgICBj
b250aW51ZQorICAgICAgICByZXR1cm4gZXhlX3BhdGgKIAotICAgICAgICAgICAgIyBnZXQgdGhl
IGV4ZWN1dGFibGUgbmFtZQotICAgICAgICAgICAgaWYgIkNGQnVuZGxlRXhlY3V0YWJsZSIgbm90
IGluIGluZm86Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGV4ZSA9IGlu
Zm9bIkNGQnVuZGxlRXhlY3V0YWJsZSJdCi0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShl
eGUsIHN0cik6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgZXhlX3Bh
dGggPSBvcy5wYXRoLmpvaW4oYnVuZGxlX3BhdGgsICJDb250ZW50cyIsICJNYWNPUyIsIGV4ZSkK
LSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShleGVfcGF0aCk6Ci0gICAgICAgICAg
ICAgICAgY29udGludWUKLQotICAgICAgICAgICAgcmV0dXJuIGV4ZV9wYXRoCi0KLSAgICBkZWYg
c3RhcnQoc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1G
YWxzZSkKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYu
d2ViZHJpdmVyX2JpbmFyeSwgZiItLXBvcnQ9e3NlbGYucG9ydH0iXSArIHNlbGYud2ViZHJpdmVy
X2FyZ3MKIAogICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5z
ZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKyAgICAgICAgc3VwZXIoKS5zdG9wKGZvcmNlKQogCiAg
ICAgICAgIGlmIHNlbGYua2lsbF9zYWZhcmk6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiR29pbmcgdG8gc3RvcCBTYWZhcmkiKQogICAgICAgICAgICAgZm9yIHByb2MgaW4gcHN1dGls
LnByb2Nlc3NfaXRlcihhdHRycz1bImV4ZSJdKToKLSAgICAgICAgICAgICAgICBpZiBwcm9jLmlu
Zm9bImV4ZSJdIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLnNhbWVmaWxlKHByb2MuaW5mb1siZXhl
Il0sIHNlbGYuc2FmYXJpX3BhdGgpOgorICAgICAgICAgICAgICAgIGlmIChwcm9jLmluZm9bImV4
ZSJdIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLnNhbWVmaWxl
KHByb2MuaW5mb1siZXhlIl0sIHNlbGYuc2FmYXJpX3BhdGgpKToKICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0b3BwaW5nIFNhZmFyaSAlcyIgJSBwcm9jLnBpZCkKICAg
ICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgcHJvYy50ZXJt
aW5hdGUoKQpAQCAtMTM5LDE4ICsyMDEsMyBAQCBjbGFzcyBTYWZhcmlCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Mua2lsbCgpCiAgICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdCBwc3V0aWwuTm9TdWNoUHJvY2VzczoKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc3MKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZl
ci5waWQKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RPKGF0byk6IFRo
aXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKLSAgICAgICAgIyBhbmQgZG9l
c24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgotICAgICAg
ICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKLQot
ICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIGV4
ZWN1dG9yX2Jyb3dzZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsi
d2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zYXVjZV9zZXR1cC9lZGdlLXByZXJ1bi5iYXQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2F1Y2Vfc2V0dXAvZWRnZS1wcmVydW4uYmF0Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9k
ZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9z
YWZhcmktcHJlcnVuLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3NhZmFy
aS1wcmVydW4uc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1MTUyZTEyNmI0ZTIxNGZkMGVlYjI2NmJiZWRjNzM3NzBiM2VlZmVl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1
cC9lZGdlLXByZXJ1bi5iYXQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2Fm
YXJpLXByZXJ1bi5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CmluZGV4IDE3OTFjMWRhMjcwNjkxMzc0
OGRlN2YzMTFkOWQ5NjgzZjI2ZDZiMzguLjFlMzJjN2MwZWQ1ODA1YTIwYTQzOTYxZGE3M2ExYzI0
NGJhYzhiNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTEsMjQgKzEsMjYgQEAKIGltcG9y
dCBvcwogCi1mcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCBy
ZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgRXhlY3V0b3JCcm93c2VyLCBOdWxsQnJvd3Nl
ciwgV2ViRHJpdmVyQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90
aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9y
cy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0
b3JzLmV4ZWN1dG9yc2Vydm8gaW1wb3J0IChTZXJ2b0NyYXNodGVzdEV4ZWN1dG9yLCAgIyBub3Fh
OiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2b1Rlc3Ro
YXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNlcnZvUmVmVGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2b1dkc3BlY0V4ZWN1dG9yKSAgIyBu
b3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2b1Jl
ZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pCiAKIF9fd3B0cnVubmVyX18gPSB7CiAgICAgInByb2R1Y3QiOiAic2Vydm8iLAog
ICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICJicm93c2VyIjogIlNlcnZvQnJv
d3NlciIsCisgICAgImJyb3dzZXIiOiB7Tm9uZTogIlNlcnZvQnJvd3NlciIsCisgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJTZXJ2b1dkc3BlY0Jyb3dzZXIifSwKICAgICAiZXhlY3V0b3IiOiB7
CiAgICAgICAgICJjcmFzaHRlc3QiOiAiU2Vydm9DcmFzaHRlc3RFeGVjdXRvciIsCiAgICAgICAg
ICJ0ZXN0aGFybmVzcyI6ICJTZXJ2b1Rlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAicmVm
dGVzdCI6ICJTZXJ2b1JlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICJ3ZHNwZWMiOiAiU2Vydm9X
ZHNwZWNFeGVjdXRvciIsCisgICAgICAgICJ3ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3IiLAogICAg
IH0sCiAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCkBAIC00OSw3ICs1MSw2IEBAIGRlZiBleGVj
dXRvcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZv
X2RhdGEsCiAgICAgcnZbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IGt3YXJnc1sicGF1c2VfYWZ0ZXJf
dGVzdCJdCiAgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgogICAgICAgICBydlsiY2FwYWJp
bGl0aWVzIl0gPSB7fQotICAgICAgICBydlsid2ViZHJpdmVyX2JpbmFyeSJdID0ga3dhcmdzWyJi
aW5hcnkiXQogICAgIHJldHVybiBydgogCiAKQEAgLTg2LDMgKzg3LDMwIEBAIGNsYXNzIFNlcnZv
QnJvd3NlcihOdWxsQnJvd3Nlcik6CiAgICAgICAgICAgICAidXNlcl9zdHlsZXNoZWV0cyI6IHNl
bGYudXNlcl9zdHlsZXNoZWV0cywKICAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjog
c2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoLAogICAgICAgICB9CisKKworY2xhc3MgU2Vydm9XZHNw
ZWNCcm93c2VyKFdlYkRyaXZlckJyb3dzZXIpOgorICAgICMgVE9ETzogY291bGQgc2hhcmUgYW4g
aW1wbGVtZW5hdGlvbiB3aXRoIHNlcnZvZHJpdmVyLnB5LCBwZXJoYXBzCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJzZXJ2byIsIHdlYmRyaXZlcl9hcmdzPU5vbmUsCisg
ICAgICAgICAgICAgICAgIGJpbmFyeV9hcmdzPU5vbmUsIGhvc3Q9IjEyNy4wLjAuMSIsIGVudj1O
b25lLCBwb3J0PU5vbmUpOgorCisgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpIGlmIGVu
diBpcyBOb25lIGVsc2UgZW52CisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgor
CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPXdlYmRyaXZlcl9hcmdzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGhvc3Q9aG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0PXBv
cnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKKyAgICAgICAgc2VsZi5iaW5h
cnlfYXJncyA9IGJpbmFyeV9hcmdzCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAg
ICAgICBjb21tYW5kID0gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICAgIGYiLS13ZWJk
cml2ZXI9e3NlbGYucG9ydH0iLAorICAgICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsCisg
ICAgICAgICAgICAgICAgICAgIi0taGVhZGxlc3MiXSArIHNlbGYud2ViZHJpdmVyX2FyZ3MKKyAg
ICAgICAgaWYgc2VsZi5iaW5hcnlfYXJnczoKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gc2VsZi5i
aW5hcnlfYXJncworICAgICAgICByZXR1cm4gY29tbWFuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
ZHJpdmVyLnB5CmluZGV4IDlhNmExYTQwMmIzNjkyM2JiYjJiMmUxOTlhMzRkYTg0YjU4NzNhNGUu
LjMyZDc1NDNiZGM0YmZhOTZhYmYzOTlkYmUyYjQyNDkzYjM4MTk0NGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2Vydm9kcml2ZXIucHkKQEAgLTc2LDYgKzc2LDcgQEAgZGVmIHdyaXRlX2hvc3RzX2Zp
bGUoY29uZmlnKToKICAgICAgICAgZi53cml0ZShtYWtlX2hvc3RzX2ZpbGUoY29uZmlnLCAiMTI3
LjAuMC4xIikpCiAgICAgcmV0dXJuIGhvc3RzX3BhdGgKIAorCiBjbGFzcyBTZXJ2b1dlYkRyaXZl
ckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0gMzAwICAjIExhcmdlIHRpbWVv
dXQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIGJvb3RpbmcgYW4gQW5kcm9pZCBlbXVsYXRvcgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI2ODNkYmYzMWYxY2Q5OTFiNTgyNDk1MjdjNzRlZGQ3YjNhODY3MzEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2FuZHJvaWRfd2VibGF5ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2
aWV3LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lX3Nwa2lfY2VydHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9lZGdlY2hyb21pdW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhh
bnkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2FmYXJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL3NlcnZvLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy93ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CmluZGV4IGFk
MjQ3NzFhYzljZWQ2NWUxMTdkODk0YjQ0OTIwZTcxYjgzYjZlZTguLmFhNjkxZjBjODVjZDcyMmU2
ODdiNmM3N2ZmNDU5MjE5NjhjNmM0ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy93ZWJraXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQpAQCAtMSwy
MSArMSwxOSBAQAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCBy
ZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIGdldF90aW1lb3V0X211
bHRpcGxpZXIsIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKK2Zyb20gLmJh
c2UgaW1wb3J0IFdlYkRyaXZlckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3Fh
OiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9l
eGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBv
cnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAuLmV4
ZWN1dG9ycy5leGVjdXRvcndlYmtpdCBpbXBvcnQgV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3Ig
ICMgbm9xYTogRjQwMQotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYktpdERyaXZl
clNlcnZlcgogCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Via2l0IiwKICAgICAg
ICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAg
ICJicm93c2VyIjoge05vbmU6ICJXZWJLaXRCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3NlciI6ICJXZWJLaXRCcm93c2VyIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdz
IjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0
aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3Bl
Y0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2Rz
cGVjRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6
ICJXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0
cmFzIjogImVudl9leHRyYXMiLApAQCAtNzYsMzUgKzc0LDggQEAgZGVmIHJ1bl9pbmZvX2V4dHJh
cygqKmt3YXJncyk6CiAgICAgcmV0dXJuIHsid2Via2l0X3BvcnQiOiBrd2FyZ3NbIndlYmtpdF9w
b3J0Il19CiAKIAotY2xhc3MgV2ViS2l0QnJvd3NlcihCcm93c2VyKToKLSAgICAiIiJHZW5lcmlj
IFdlYktpdCBicm93c2VyIGlzIGJhY2tlZCBieSBXZWJLaXQncyBXZWJEcml2ZXIgaW1wbGVtZW50
YXRpb24sCi0gICAgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaCBgYHdwdHJ1bm5lci53ZWJkcml2
ZXIuV2ViS2l0RHJpdmVyU2VydmVyYGAuCi0gICAgIiIiCitjbGFzcyBXZWJLaXRCcm93c2VyKFdl
YkRyaXZlckJyb3dzZXIpOgorICAgICIiIkdlbmVyaWMgV2ViS2l0IGJyb3dzZXIgaXMgYmFja2Vk
IGJ5IFdlYktpdCdzIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbiIiIgogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCi0gICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgQnJvd3Nl
ci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCi0gICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5Ci0g
ICAgICAgIHNlbGYuc2VydmVyID0gV2ViS2l0RHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLCBiaW5h
cnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJn
cyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAgZGVmIHN0
b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZv
cmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBp
ZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBv
bmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0
IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMg
aXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAg
ZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0
b3JfYnJvd3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJk
cml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQorICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6
CisgICAgICAgIHJldHVybiBbc2VsZi53ZWJkcml2ZXJfYmluYXJ5LCBmIi0tcG9ydD17c2VsZi5w
b3J0fSJdICsgc2VsZi53ZWJkcml2ZXJfYXJncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93
ZWJraXRndGtfbWluaWJyb3dzZXIucHkKaW5kZXggN2EwMmFkMTQ5MDJiODA5NDBmMGEzNGEzYWI5
OGI4YTVmNDYxMDkwZi4uMmM2OTk5N2FmMDA3YzJlN2U2M2Q2MTVlZjhlMWRjZWJjYzA3ODhlYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5CkBA
IC00LDE5ICs0LDE4IEBAIGZyb20gLmJhc2UgaW1wb3J0IChOdWxsQnJvd3NlciwgICMgbm9xYTog
RjQwMQogICAgICAgICAgICAgICAgICAgIG1heWJlX2FkZF9hcmdzKQogZnJvbSAud2Via2l0IGlt
cG9ydCBXZWJLaXRCcm93c2VyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2Fy
Z3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQg
V2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndl
YmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0
MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJS
ZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQw
MQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmtpdCBpbXBvcnQgV2ViS2l0RHJpdmVyV2Rz
cGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0Ijog
IndlYmtpdGd0a19taW5pYnJvd3NlciIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjog
ImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiV2ViS2l0
R1RLTWluaUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjog
Ik51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIldlYktpdEdUS01p
bmlCcm93c2VyIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJf
a3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3Ii
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyYXNodGVzdCI6ICJXZWJEcml2ZXJD
cmFzaHRlc3RFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjog
ImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9l
eHRyYXMiLApAQCAtNDAsMTMgKzM5LDEzIEBAIGRlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAKIGRlZiBjYXBhYmls
aXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgogICAgIGJyb3dzZXJfcmVxdWlyZWRfYXJn
cyA9IFsiLS1hdXRvbWF0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1qYXZh
c2NyaXB0LWNhbi1vcGVuLXdpbmRvd3MtYXV0b21hdGljYWxseT10cnVlIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiLS1lbmFibGUteHNzLWF1ZGl0b3I9ZmFsc2UiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tZWRpYS1jYXBhYmlsaXRpZXM9dHJ1ZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLWVuY3J5cHRlZC1tZWRpYT10cnVl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtc3RyZWFtPXRy
dWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tb2NrLWNhcHR1cmUt
ZGV2aWNlcz10cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtd2Vi
YXVkaW89dHJ1ZSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWphdmFzY3JpcHQt
Y2FuLW9wZW4td2luZG93cy1hdXRvbWF0aWNhbGx5PXRydWUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLS1lbmFibGUteHNzLWF1ZGl0b3I9ZmFsc2UiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtY2FwYWJpbGl0aWVzPXRydWUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtZW5jcnlwdGVkLW1lZGlhPXRydWUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtc3RyZWFtPXRydWUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbW9jay1jYXB0dXJlLWRl
dmljZXM9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS13ZWJh
dWRpbz10cnVlIl0KICAgICBhcmdzID0ga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSkKICAg
ICBhcmdzID0gbWF5YmVfYWRkX2FyZ3MoYnJvd3Nlcl9yZXF1aXJlZF9hcmdzLCBhcmdzKQogICAg
IHJldHVybiB7CkBAIC03OCw3ICs3Nyw0IEBAIGRlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3Mp
OgogCiAKIGNsYXNzIFdlYktpdEdUS01pbmlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5v
bmUsCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAg
ICAgICAgV2ViS2l0QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJp
dmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cykKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkKaW5kZXggOTc4ZWQ5ZjY5MjZjM2FmZmU4MTAzODll
YzQ5MWRiZjdiMDQ5NTY1Mi4uNTNkZmYxNDkzYTRhNWIyMjZhOTViODU4MDBkNmVjNmU5MWNlMGE4
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9lbnZpcm9ubWVudC5weQpAQCAtMSwzICsxLDQgQEAKK2ltcG9ydCBlcnJubwogaW1wb3J0
IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNpZ25hbApAQCAtMjk0LDMgKzI5NSwyOCBAQCBjbGFz
cyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIHMuY2xv
c2UoKQogCiAgICAgICAgIHJldHVybiBmYWlsZWQsIHBlbmRpbmcKKworCitkZWYgd2FpdF9mb3Jf
c2VydmljZShsb2dnZXIsIGhvc3QsIHBvcnQsIHRpbWVvdXQ9NjApOgorICAgICIiIldhaXRzIHVu
dGlsIG5ldHdvcmsgc2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mIChob3N0LCBwb3J0KSBiZWNv
bWVzCisgICAgYXZhaWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRpb24gaXMgcmVhY2hlZCwg
YXQgd2hpY2ggcG9pbnQKKyAgICBgYHNvY2tldC5lcnJvcmBgIGlzIHJhaXNlZC4iIiIKKyAgICBh
ZGRyID0gKGhvc3QsIHBvcnQpCisgICAgbG9nZ2VyLmRlYnVnKGYiVHJ5aW5nIHRvIGNvbm5lY3Qg
dG8ge2hvc3R9Ontwb3J0fSIpCisgICAgZW5kID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAg
d2hpbGUgZW5kID4gdGltZS50aW1lKCk6CisgICAgICAgIHNvID0gc29ja2V0LnNvY2tldCgpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNvLmNvbm5lY3QoYWRkcikKKyAgICAgICAgZXhjZXB0
IHNvY2tldC50aW1lb3V0OgorICAgICAgICAgICAgcGFzcworICAgICAgICBleGNlcHQgc29ja2V0
LmVycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVDT05OUkVGVVNF
RDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9n
Z2VyLmRlYnVnKGYiQ29ubmVjdGVkIHRvIHtob3N0fTp7cG9ydH0iKQorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNvLmNsb3NlKCkKKyAgICAg
ICAgdGltZS5zbGVlcCgwLjUpCisgICAgcmFpc2Ugc29ja2V0LmVycm9yKCJTZXJ2aWNlIGlzIHVu
YXZhaWxhYmxlOiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9hY3Rpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CmluZGV4
IDk2M2VkMzM3ZmRlNDRlY2RkNDdiOTRiN2FhNDE3OTAzZTMzODQ5ZWEuLmQ0YmE4OWI4NTAzNGI3
YWExM2UyY2IzMWMwMDZkMWUwMTViMTQ1ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvYWN0aW9ucy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkK
QEAgLTQwLDYgKzQwLDI5IEBAIGNsYXNzIFNlbmRLZXlzQWN0aW9uKG9iamVjdCk6CiAgICAgICAg
IHNlbGYucHJvdG9jb2wuc2VuZF9rZXlzLnNlbmRfa2V5cyhlbGVtZW50LCBrZXlzKQogCiAKK2Ns
YXNzIE1pbmltaXplV2luZG93QWN0aW9uKG9iamVjdCk6CisgICAgbmFtZSA9ICJtaW5pbWl6ZV93
aW5kb3ciCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAg
ICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2Nv
bAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5wcm90b2NvbC53aW5kb3cubWluaW1pemUoKQorCisKK2NsYXNzIFNldFdpbmRvd1JlY3RBY3Rp
b24ob2JqZWN0KToKKyAgICBuYW1lID0gInNldF93aW5kb3dfcmVjdCIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dn
ZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgcGF5bG9hZCk6CisgICAgICAgIHJlY3QgPSBwYXlsb2FkWyJyZWN0Il0KKyAgICAgICAg
c2VsZi5wcm90b2NvbC53aW5kb3cuc2V0X3JlY3QocmVjdCkKKworCiBjbGFzcyBBY3Rpb25TZXF1
ZW5jZUFjdGlvbihvYmplY3QpOgogICAgIG5hbWUgPSAiYWN0aW9uX3NlcXVlbmNlIgogCkBAIC0x
ODEsMTAgKzIwNCwyMyBAQCBjbGFzcyBTZXRVc2VyVmVyaWZpZWRBY3Rpb24ob2JqZWN0KToKICAg
ICAgICAgICAgICJTZXR0aW5nIHVzZXIgdmVyaWZpZWQgZmxhZyBvbiBhdXRoZW50aWNhdG9yICVz
IHRvICVzIiAlIChhdXRoZW50aWNhdG9yX2lkLCB1dlsiaXNVc2VyVmVyaWZpZWQiXSkpCiAgICAg
ICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGljYXRvci5zZXRfdXNlcl92
ZXJpZmllZChhdXRoZW50aWNhdG9yX2lkLCB1dikKIAorY2xhc3MgU2V0U1BDVHJhbnNhY3Rpb25N
b2RlQWN0aW9uKG9iamVjdCk6CisgICAgbmFtZSA9ICJzZXRfc3BjX3RyYW5zYWN0aW9uX21vZGUi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNl
bGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBtb2RlID0gcGF5bG9hZFsi
bW9kZSJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTZXR0aW5nIFNQQyB0cmFuc2FjdGlv
biBtb2RlIHRvICVzIiAlIG1vZGUpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnNwY190
cmFuc2FjdGlvbnMuc2V0X3NwY190cmFuc2FjdGlvbl9tb2RlKG1vZGUpCiAKIGFjdGlvbnMgPSBb
Q2xpY2tBY3Rpb24sCiAgICAgICAgICAgIERlbGV0ZUFsbENvb2tpZXNBY3Rpb24sCiAgICAgICAg
ICAgIFNlbmRLZXlzQWN0aW9uLAorICAgICAgICAgICBNaW5pbWl6ZVdpbmRvd0FjdGlvbiwKKyAg
ICAgICAgICAgU2V0V2luZG93UmVjdEFjdGlvbiwKICAgICAgICAgICAgQWN0aW9uU2VxdWVuY2VB
Y3Rpb24sCiAgICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9ydEFjdGlvbiwKICAgICAgICAgICAg
U2V0UGVybWlzc2lvbkFjdGlvbiwKQEAgLTE5NCw0ICsyMzAsNSBAQCBhY3Rpb25zID0gW0NsaWNr
QWN0aW9uLAogICAgICAgICAgICBHZXRDcmVkZW50aWFsc0FjdGlvbiwKICAgICAgICAgICAgUmVt
b3ZlQ3JlZGVudGlhbEFjdGlvbiwKICAgICAgICAgICAgUmVtb3ZlQWxsQ3JlZGVudGlhbHNBY3Rp
b24sCi0gICAgICAgICAgIFNldFVzZXJWZXJpZmllZEFjdGlvbl0KKyAgICAgICAgICAgU2V0VXNl
clZlcmlmaWVkQWN0aW9uLAorICAgICAgICAgICBTZXRTUENUcmFuc2FjdGlvbk1vZGVBY3Rpb25d
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2Jhc2UucHkKaW5kZXggMjkwNzY5OTJkZjhmNDIyMjJiZWUwOWNhOWY4YzNj
M2UxZjVlNjU1NS4uMDI3NjBiMTVmNThmMTkwNjA1NGU2MTZmMGQ2MjI1Njg3MjBhMDkyYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvYmFzZS5weQpAQCAtOCwxNSArOCwxMyBAQCBpbXBvcnQgdHJhY2ViYWNrCiBp
bXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJh
Y3RtZXRob2QKLWZyb20gaHR0cC5jbGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCi1mcm9tIHR5
cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIE9wdGlvbmFsLCBUdXBsZSwgVHlw
ZSwgVFlQRV9DSEVDS0lORworZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIENsYXNz
VmFyLCBUdXBsZSwgVHlwZQogZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHNw
bGl0LCB1cmx1bnNwbGl0CiAKK2Zyb20gLiBpbXBvcnQgcHl0ZXN0cnVubmVyCiBmcm9tIC5hY3Rp
b25zIGltcG9ydCBhY3Rpb25zCi1mcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJvdG9jb2wsIEJhc2VQ
cm90b2NvbFBhcnQKK2Zyb20gLnByb3RvY29sIGltcG9ydCBQcm90b2NvbCwgV2RzcGVjUHJvdG9j
b2wKIAotaWYgVFlQRV9DSEVDS0lORzoKLSAgICBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBv
cnQgV2ViRHJpdmVyU2VydmVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAK
QEAgLTU5OCwyMiArNTk2LDE4IEBAIGNsYXNzIFJlZlRlc3RJbXBsZW1lbnRhdGlvbihvYmplY3Qp
OgogCiBjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgogICAgIGNvbnZlcnRfcmVz
dWx0ID0gcHl0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIKLSAgICBwcm90b2NvbF9jbHMgPSBOb25lICAj
IHR5cGU6IENsYXNzVmFyW1R5cGVbUHJvdG9jb2xdXQorICAgIHByb3RvY29sX2NscyA9IFdkc3Bl
Y1Byb3RvY29sICAjIHR5cGU6IENsYXNzVmFyW1R5cGVbUHJvdG9jb2xdXQogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgd2ViZHJpdmVyX2Jp
bmFyeSwKICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHRpbWVvdXRfbXVsdGlwbGll
cj0xLCBjYXBhYmlsaXRpZXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25l
LCBlbnZpcm9uPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5kb19kZWxheWVkX2ltcG9y
dHMoKQotICAgICAgICBUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2Vy
LCBzZXJ2ZXJfY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9t
dWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1O
b25lLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBicm93c2Vy
LCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlw
bGllcj10aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdf
aW5mbz1kZWJ1Z19pbmZvKQogICAgICAgICBzZWxmLndlYmRyaXZlcl9iaW5hcnkgPSB3ZWJkcml2
ZXJfYmluYXJ5CiAgICAgICAgIHNlbGYud2ViZHJpdmVyX2FyZ3MgPSB3ZWJkcml2ZXJfYXJncwog
ICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9IHRpbWVvdXRfbXVsdGlwbGllcgogICAg
ICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcwotICAgICAgICBzZWxmLmVudmly
b24gPSBlbnZpcm9uIGlmIGVudmlyb24gaXMgbm90IE5vbmUgZWxzZSB7fQotICAgICAgICBzZWxm
Lm91dHB1dF9oYW5kbGVyX2t3YXJncyA9IE5vbmUKLSAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxl
cl9zdGFydF9rd2FyZ3MgPSBOb25lCiAKICAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKICAg
ICAgICAgc2VsZi5wcm90b2NvbCA9IHNlbGYucHJvdG9jb2xfY2xzKHNlbGYsIHNlbGYuYnJvd3Nl
cikKQEAgLTYyOSw3ICs2MjMsNiBAQCBjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3Ip
OgogICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxp
ZXIgKyBzZWxmLmV4dHJhX3RpbWVvdXQKIAogICAgICAgICBzdWNjZXNzLCBkYXRhID0gV2RzcGVj
UnVuKHNlbGYuZG9fd2RzcGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYucHJvdG9jb2wuc2Vzc2lvbl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdC5hYnNfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aW1lb3V0KS5ydW4oKQogCkBAIC02MzgsMjIgKzYzMSwyNSBAQCBjbGFzcyBXZHNwZWNFeGVjdXRv
cihUZXN0RXhlY3V0b3IpOgogCiAgICAgICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKCpkYXRh
KSwgW10pCiAKLSAgICBkZWYgZG9fd2RzcGVjKHNlbGYsIHNlc3Npb25fY29uZmlnLCBwYXRoLCB0
aW1lb3V0KToKKyAgICBkZWYgZG9fd2RzcGVjKHNlbGYsIHBhdGgsIHRpbWVvdXQpOgorICAgICAg
ICBzZXNzaW9uX2NvbmZpZyA9IHsiaG9zdCI6IHNlbGYuYnJvd3Nlci5ob3N0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAicG9ydCI6IHNlbGYuYnJvd3Nlci5wb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY2FwYWJpbGl0aWVzIjogc2VsZi5jYXBhYmlsaXRpZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZWJkcml2ZXIiOiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYmluYXJ5Ijogc2VsZi53ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImFyZ3MiOiBzZWxmLndlYmRyaXZlcl9hcmdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIH19CisKICAgICAgICAgcmV0dXJuIHB5dGVzdHJ1bm5lci5ydW4ocGF0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY29uZmlnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX2NvbmZpZywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0KQogCi0gICAgZGVmIGRvX2RlbGF5
ZWRfaW1wb3J0cyhzZWxmKToKLSAgICAgICAgZ2xvYmFsIHB5dGVzdHJ1bm5lcgotICAgICAgICBm
cm9tIC4gaW1wb3J0IHB5dGVzdHJ1bm5lcgotCiAKIGNsYXNzIFdkc3BlY1J1bihvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBzZXNzaW9uLCBwYXRoLCB0aW1lb3V0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgcGF0aCwgdGltZW91dCk6CiAgICAgICAgIHNlbGYu
ZnVuYyA9IGZ1bmMKICAgICAgICAgc2VsZi5yZXN1bHQgPSAoTm9uZSwgTm9uZSkKLSAgICAgICAg
c2VsZi5zZXNzaW9uID0gc2Vzc2lvbgogICAgICAgICBzZWxmLnBhdGggPSBwYXRoCiAgICAgICAg
IHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVh
ZGluZy5FdmVudCgpCkBAIC02NzYsNyArNjcyLDcgQEAgY2xhc3MgV2RzcGVjUnVuKG9iamVjdCk6
CiAKICAgICBkZWYgX3J1bihzZWxmKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5zZXNzaW9uLCBzZWxmLnBhdGgsIHNlbGYudGlt
ZW91dCkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucGF0
aCwgc2VsZi50aW1lb3V0KQogICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9y
KToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25lKQogICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CkBAIC02ODksOTMgKzY4NSw2IEBAIGNsYXNzIFdk
c3BlY1J1bihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQogCiAK
LWNsYXNzIENvbm5lY3Rpb25sZXNzQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToK
LSAgICBkZWYgbG9hZChzZWxmLCB1cmwpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgZXhlY3V0
ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2UpOgotICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6Ci0gICAgICAgIHBhc3MKLQot
ICAgIGRlZiB3YWl0KHNlbGYpOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBzZXRf
d2luZG93KHNlbGYsIGhhbmRsZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiB3aW5kb3dfaGFu
ZGxlcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCi0KLQotY2xhc3MgQ29ubmVjdGlvbmxlc3NQ
cm90b2NvbChQcm90b2NvbCk6Ci0gICAgaW1wbGVtZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQ
cm90b2NvbFBhcnRdCi0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAgcGFzcwotCi0g
ICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBXZHNw
ZWNQcm90b2NvbChQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IE5vbmUgICMgdHlwZTogQ2xh
c3NWYXJbT3B0aW9uYWxbVHlwZVtXZWJEcml2ZXJTZXJ2ZXJdXV0KLQotICAgIGltcGxlbWVudHMg
PSBbQ29ubmVjdGlvbmxlc3NCYXNlUHJvdG9jb2xQYXJ0XQotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGV4ZWN1dG9yLCBicm93c2VyKToKLSAgICAgICAgUHJvdG9jb2wuX19pbml0X18oc2VsZiwg
ZXhlY3V0b3IsIGJyb3dzZXIpCi0gICAgICAgIHNlbGYud2ViZHJpdmVyX2JpbmFyeSA9IGV4ZWN1
dG9yLndlYmRyaXZlcl9iaW5hcnkKLSAgICAgICAgc2VsZi53ZWJkcml2ZXJfYXJncyA9IGV4ZWN1
dG9yLndlYmRyaXZlcl9hcmdzCi0gICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gc2VsZi5leGVj
dXRvci5jYXBhYmlsaXRpZXMKLSAgICAgICAgc2VsZi5zZXNzaW9uX2NvbmZpZyA9IE5vbmUKLSAg
ICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuZW52aXJvbiA9IG9zLmVudmly
b24uY29weSgpCi0gICAgICAgIHNlbGYuZW52aXJvbi51cGRhdGUoZXhlY3V0b3IuZW52aXJvbikK
LSAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSBleGVjdXRvci5vdXRwdXRfaGFu
ZGxlcl9rd2FyZ3MKLSAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSBl
eGVjdXRvci5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MKLQotICAgIGRlZiBjb25uZWN0KHNl
bGYpOgotICAgICAgICAiIiJDb25uZWN0IHRvIGJyb3dzZXIgdmlhIHRoZSBIVFRQIHNlcnZlci4i
IiIKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBzZWxmLnNlcnZlcl9jbHMoCi0gICAgICAgICAgICBz
ZWxmLmxvZ2dlciwKLSAgICAgICAgICAgIGJpbmFyeT1zZWxmLndlYmRyaXZlcl9iaW5hcnksCi0g
ICAgICAgICAgICBhcmdzPXNlbGYud2ViZHJpdmVyX2FyZ3MsCi0gICAgICAgICAgICBlbnY9c2Vs
Zi5lbnZpcm9uKQotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzPXNlbGYub3V0cHV0X2hh
bmRsZXJfa3dhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9z
dGFydF9rd2FyZ3M9c2VsZi5vdXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MpCi0gICAgICAgIHNl
bGYubG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAiV2ViRHJpdmVyIEhUVFAgc2VydmVyIGxpc3Rl
bmluZyBhdCAlcyIgJSBzZWxmLnNlcnZlci51cmwpCi0gICAgICAgIHNlbGYuc2Vzc2lvbl9jb25m
aWcgPSB7Imhvc3QiOiBzZWxmLnNlcnZlci5ob3N0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwb3J0Ijogc2VsZi5zZXJ2ZXIucG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY2FwYWJpbGl0aWVzIjogc2VsZi5jYXBhYmlsaXRpZXN9Ci0KLSAgICBkZWYgYWZ0
ZXJfY29ubmVjdChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHRlYXJkb3duKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLnNlcnZlciBpcyBub3QgTm9uZSBhbmQgc2VsZi5zZXJ2ZXIuaXNf
YWxpdmUoKToKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoKQotCi0gICAgZGVmIGlzX2Fs
aXZlKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgc3RpbGwg
YWxpdmUuCi0KLSAgICAgICAgQmVjYXVzZSB0aGUgcmVtb3RlIGNvbW11bmljYXRpb24gaGFwcGVu
cyBvdmVyIEhUVFAgd2UgbmVlZCB0bwotICAgICAgICBtYWtlIGFuIGV4cGxpY2l0IHJlcXVlc3Qg
dG8gdGhlIHJlbW90ZS4gIEl0IGlzIGFsbG93ZWQgZm9yCi0gICAgICAgIFdlYkRyaXZlciBzcGVj
IHRlc3RzIHRvIG5vdCBoYXZlIGEgV2ViRHJpdmVyIHNlc3Npb24sIHNpbmNlIHRoaXMKLSAgICAg
ICAgbWF5IGJlIHdoYXQgaXMgdGVzdGVkLgotCi0gICAgICAgIEFuIEhUVFAgcmVxdWVzdCB0byBh
biBpbnZhbGlkIHBhdGggdGhhdCByZXN1bHRzIGluIGEgNDA0IGlzCi0gICAgICAgIHByb29mIGVu
b3VnaCB0byB1cyB0aGF0IHRoZSBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGtpY2tpbmcuCi0gICAgICAg
ICIiIgotICAgICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5zZXJ2ZXIuaG9zdCwgc2Vs
Zi5zZXJ2ZXIucG9ydCkKLSAgICAgICAgY29ubi5yZXF1ZXN0KCJIRUFEIiwgc2VsZi5zZXJ2ZXIu
YmFzZV9wYXRoICsgImludmFsaWQiKQotICAgICAgICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkK
LSAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMgPT0gNDA0Ci0KLQogY2xhc3MgQ2FsbGJhY2tIYW5k
bGVyKG9iamVjdCk6CiAgICAgIiIiSGFuZGxlIGNhbGxiYWNrcyBmcm9tIHRlc3Rkcml2ZXItdXNp
bmcgdGVzdHMuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jj
aHJvbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21lLnB5CmluZGV4
IDQzMWQzOThlYmQyNzNkOWQyZDllZjAzNjIzNTBjZTBjM2NlMjBiOTguLjUyNGM4NmVjMGJlOWU2
NmUzOTUxOTdhZjU3ODE4OTgyY2ZlYzE2OGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcmNocm9tZS5weQpAQCAtMywxMCArMyw5IEBAIGltcG9ydCB0cmFjZWJhY2sKIAogZnJvbSB1
cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIAotZnJvbSAuYmFzZSBpbXBvcnQgV2RzcGVjUHJv
dG9jb2wsIFdkc3BlY0V4ZWN1dG9yLCBnZXRfcGFnZXMKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF9w
YWdlcwogZnJvbSAuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IFdlYkRyaXZlclByb3RvY29sLCBX
ZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsIFdlYkRyaXZlclJ1bgogZnJvbSAucHJvdG9jb2wgaW1w
b3J0IFByaW50UHJvdG9jb2xQYXJ0Ci1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hy
b21lRHJpdmVyU2VydmVyCiAKIGhlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAKQEAg
LTExMSwxMSArMTEwLDMgQEAgY2xhc3MgQ2hyb21lRHJpdmVyUHJpbnRSZWZUZXN0RXhlY3V0b3Io
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBzY3JlZW5zaG90c1tp
XSA9IHNjcmVlbnNob3Quc3BsaXQoIiwiLCAxKVsxXQogCiAgICAgICAgIHJldHVybiBzY3JlZW5z
aG90cwotCi0KLWNsYXNzIENocm9tZURyaXZlcldkc3BlY1Byb3RvY29sKFdkc3BlY1Byb3RvY29s
KToKLSAgICBzZXJ2ZXJfY2xzID0gQ2hyb21lRHJpdmVyU2VydmVyCi0KLQotY2xhc3MgQ2hyb21l
RHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgotICAgIHByb3RvY29sX2NscyA9
IENocm9tZURyaXZlcldkc3BlY1Byb3RvY29sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yZWRnZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jl
ZGdlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDNkOWNmNTMxNDk1OTRlMWI2
Y2UxOTE4MDhlYjA3NTE2ZDdkNGU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IEVkZ2VEcml2ZXJTZXJ2ZXIKLWZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZHNw
ZWNQcm90b2NvbAotCi0KLWNsYXNzIEVkZ2VEcml2ZXJQcm90b2NvbChXZHNwZWNQcm90b2NvbCk6
Ci0gICAgc2VydmVyX2NscyA9IEVkZ2VEcml2ZXJTZXJ2ZXIKLQotCi1jbGFzcyBFZGdlRHJpdmVy
V2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgotICAgIHByb3RvY29sX2NscyA9IEVkZ2VE
cml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cmVkZ2VjaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hy
b21pdW0ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMjYzYWY2ODAzNDExMWZh
ZTU2YjZlMWFjYjA1MGZhOTU4NTlkYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1
bS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXINCi1mcm9tIC5iYXNlIGltcG9ydCBX
ZHNwZWNFeGVjdXRvciwgV2RzcGVjUHJvdG9jb2wNCi0NCi0NCi1jbGFzcyBFZGdlQ2hyb21pdW1E
cml2ZXJQcm90b2NvbChXZHNwZWNQcm90b2NvbCk6DQotICAgIHNlcnZlcl9jbHMgPSBFZGdlQ2hy
b21pdW1Ecml2ZXJTZXJ2ZXINCi0NCi0NCi1jbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNF
eGVjdXRvcihXZHNwZWNFeGVjdXRvcik6DQotICAgIHByb3RvY29sX2NscyA9IEVkZ2VDaHJvbWl1
bURyaXZlclByb3RvY29sDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcmludGVybmV0ZXhwbG9yZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
aW50ZXJuZXRleHBsb3Jlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY2YTE2
ZWY1ZWJmYjcyNmRiNjM3OTg0ZDVlNDg5NmVlNGM0NWRjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
aW50ZXJuZXRleHBsb3Jlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWZyb20g
Li53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyCi1m
cm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2RzcGVjUHJvdG9jb2wKLQotCi1jbGFz
cyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyUHJvdG9jb2woV2RzcGVjUHJvdG9jb2wpOgotICAgIHNl
cnZlcl9jbHMgPSBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyCi0KLQotY2xhc3MgSW50ZXJu
ZXRFeHBsb3JlckRyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKLSAgICBwcm90
b2NvbF9jbHMgPSBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKaW5kZXggZTYxZGIxM2UyODdlNjFkYmY2
YmU1ZTljNzJkNThkZWE2NmQzNGFmNC4uYjFlZTAyNmU0NTYzNjdhZWQ0N2IyNjU0MGMxNDkyZDhh
OGVkN2VkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlv
bmV0dGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUu
cHkKQEAgLTIwLDcgKzIwLDYgQEAgZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwK
ICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLAogICAgICAgICAgICAgICAg
ICAgIFRpbWVkUnVubmVyLAogICAgICAgICAgICAgICAgICAgIFdkc3BlY0V4ZWN1dG9yLAotICAg
ICAgICAgICAgICAgICAgIFdkc3BlY1Byb3RvY29sLAogICAgICAgICAgICAgICAgICAgIGdldF9w
YWdlcywKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCiBmcm9tIC5wcm90b2NvbCBp
bXBvcnQgKEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LApAQCAtMzgsOSArMzcsMTEgQEAgZnJv
bSAucHJvdG9jb2wgaW1wb3J0IChBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgQ292ZXJhZ2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgIEdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAg
ICAgIFdpbmRvd1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2V0UGVybWlz
c2lvblByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRQcm90b2NvbFBh
cnQsCi0gICAgICAgICAgICAgICAgICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQorICAgICAgICAg
ICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAg
bWVyZ2VfZGljdHMpCiAKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgpAQCAtNDUzLDYgKzQ1
NCwxNiBAQCBjbGFzcyBNYXJpb25ldHRlU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90
b2NvbFBhcnQpOgogICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgZWxlbWVudCwga2V5cyk6CiAgICAg
ICAgIHJldHVybiBlbGVtZW50LnNlbmRfa2V5cyhrZXlzKQogCitjbGFzcyBNYXJpb25ldHRlV2lu
ZG93UHJvdG9jb2xQYXJ0KFdpbmRvd1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYp
OgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAg
ICBkZWYgbWluaW1pemUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1hcmlvbmV0dGUubWlu
aW1pemVfd2luZG93KCkKKworICAgIGRlZiBzZXRfcmVjdChzZWxmLCByZWN0KToKKyAgICAgICAg
c2VsZi5tYXJpb25ldHRlLnNldF93aW5kb3dfcmVjdChyZWN0WyJ4Il0sIHJlY3RbInkiXSwgcmVj
dFsiaGVpZ2h0Il0sIHJlY3RbIndpZHRoIl0pCisKIAogY2xhc3MgTWFyaW9uZXR0ZUFjdGlvblNl
cXVlbmNlUHJvdG9jb2xQYXJ0KEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0KToKICAgICBkZWYg
c2V0dXAoc2VsZik6CkBAIC02NzMsNiArNjg0LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29s
KFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVDb29raWVzUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNlbmRLZXlzUHJvdG9jb2xQYXJ0LAorICAgICAgICAg
ICAgICAgICAgTWFyaW9uZXR0ZVdpbmRvd1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
IE1hcmlvbmV0dGVBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
IE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFy
aW9uZXR0ZUFzc2VydHNQcm90b2NvbFBhcnQsCkBAIC02OTAsNiArNzAyLDExIEBAIGNsYXNzIE1h
cmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IE5v
bmUKICAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBicm93c2VyLm1hcmlvbmV0dGVfcG9y
dAogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBpZiBo
YXNhdHRyKGJyb3dzZXIsICJjYXBhYmlsaXRpZXMiKToKKyAgICAgICAgICAgIGlmIHNlbGYuY2Fw
YWJpbGl0aWVzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBi
cm93c2VyLmNhcGFiaWxpdGllcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBt
ZXJnZV9kaWN0cyhzZWxmLmNhcGFiaWxpdGllcywgYnJvd3Nlci5jYXBhYmlsaXRpZXMpCiAgICAg
ICAgIHNlbGYudGltZW91dF9tdWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAg
IHNlbGYucnVubmVyX2hhbmRsZSA9IE5vbmUKICAgICAgICAgc2VsZi5lMTBzID0gZTEwcwpAQCAt
MTExNCwzNCArMTEzMSw2IEBAIGNsYXNzIEludGVybmFsUmVmVGVzdEltcGxlbWVudGF0aW9uKFJl
ZlRlc3RJbXBsZW1lbnRhdGlvbik6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKHRy
YWNlYmFjay5mb3JtYXRfZXhjKCkpCiAKIAotY2xhc3MgR2Vja29Ecml2ZXJQcm90b2NvbChXZHNw
ZWNQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IE5vbmUgICMgVG8gYXZvaWQgY2lyY3VsYXIg
aW1wb3J0cyB3ZSBzZXQgdGhpcyBhdCBydW50aW1lCi0KLQotY2xhc3MgTWFyaW9uZXR0ZVdkc3Bl
Y0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKLSAgICBwcm90b2NvbF9jbHMgPSBHZWNrb0RyaXZl
clByb3RvY29sCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93c2VyLCBzZXJ2
ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJf
YXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAotICAgICAgICAg
ICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGVudmlyb249Tm9uZSwgc3RhY2tmaXhfZGlyPU5vbmUs
Ci0gICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lLCBsZWFrX3JlcG9ydF9maWxlPU5v
bmUsIGFzYW49RmFsc2UsCi0gICAgICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhPU5vbmUsIGJy
b3dzZXJfc2V0dGluZ3M9Tm9uZSwgKiprd2FyZ3MpOgotCi0gICAgICAgIGZyb20gLi5icm93c2Vy
cy5maXJlZm94IGltcG9ydCBHZWNrb0RyaXZlclNlcnZlcgotICAgICAgICBzdXBlcigpLl9faW5p
dF9fKGxvZ2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgd2ViZHJpdmVyX2JpbmFyeSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVy
PXRpbWVvdXRfbXVsdGlwbGllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRp
ZXM9Y2FwYWJpbGl0aWVzLCBkZWJ1Z19pbmZvPWRlYnVnX2luZm8sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZW52aXJvbj1lbnZpcm9uLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5wcm90b2Nv
bF9jbHMuc2VydmVyX2NscyA9IEdlY2tvRHJpdmVyU2VydmVyCi0gICAgICAgIHNlbGYub3V0cHV0
X2hhbmRsZXJfa3dhcmdzID0geyJzdGFja2ZpeF9kaXIiOiBzdGFja2ZpeF9kaXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBzeW1ib2xzX3Bh
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc2FuIjogYXNhbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxlYWtfcmVwb3J0X2ZpbGUi
OiBsZWFrX3JlcG9ydF9maWxlfQotICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3
YXJncyA9IHsiZ3JvdXBfbWV0YWRhdGEiOiBncm91cF9tZXRhZGF0YX0KLSAgICAgICAgc2VsZi5v
dXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MudXBkYXRlKGJyb3dzZXJfc2V0dGluZ3MpCi0KLQot
CiBjbGFzcyBNYXJpb25ldHRlQ3Jhc2h0ZXN0RXhlY3V0b3IoQ3Jhc2h0ZXN0RXhlY3V0b3IpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRp
bWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGNh
cGFiaWxpdGllcz1Ob25lLCBkZWJ1Zz1GYWxzZSwKQEAgLTEyNzUsMyArMTI2NCwxNSBAQCBjbGFz
cyBNYXJpb25ldHRlUHJpbnRSZWZUZXN0RXhlY3V0b3IoTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRv
cik6CiAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdHNbaV0gPSBzY3JlZW5zaG90LnNwbGl0KCIs
IiwgMSlbMV0KIAogICAgICAgICByZXR1cm4gc2NyZWVuc2hvdHMKKworCitjbGFzcyBNYXJpb25l
dHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIGJyb3dzZXIsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKCkuX19p
bml0X18obG9nZ2VyLCBicm93c2VyLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgYXJncyA9
IHNlbGYuY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9wdGlvbnMiXS5zZXRkZWZhdWx0KCJhcmdz
IiwgW10pCisgICAgICAgIGFyZ3MuZXh0ZW5kKFsiLS1wcm9maWxlIiwgc2VsZi5icm93c2VyLnBy
b2ZpbGVdKQorCisgICAgICAgIGZvciBvcHRpb24gaW4gWyJhbmRyb2lkUGFja2FnZSIsICJhbmRy
b2lkRGV2aWNlU2VyaWFsIiwgImVudiJdOgorICAgICAgICAgICAgaWYgaGFzYXR0cihicm93c2Vy
LCBvcHRpb24pOgorICAgICAgICAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZv
eE9wdGlvbnMiXVtvcHRpb25dID0gZ2V0YXR0cihicm93c2VyLCBvcHRpb24pCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDNhOTQ1YTEwMTZiYTM0N2I1ZGFkZTFiMDdhODI2YjIxYmIxMmI3NWMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcm9wZXJhLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IE9wZXJhRHJpdmVyU2VydmVyCi1mcm9tIC5iYXNlIGltcG9y
dCBXZHNwZWNFeGVjdXRvciwgV2RzcGVjUHJvdG9jb2wKLQotCi1jbGFzcyBPcGVyYURyaXZlclBy
b3RvY29sKFdkc3BlY1Byb3RvY29sKToKLSAgICBzZXJ2ZXJfY2xzID0gT3BlcmFEcml2ZXJTZXJ2
ZXIKLQotCi1jbGFzcyBPcGVyYURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToK
LSAgICBwcm90b2NvbF9jbHMgPSBPcGVyYURyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2FmYXJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9leGVjdXRvcnNhZmFyaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZk
N2ZjZGQwNjg3Y2MxMzYyMWNmODY5ZDg2NWEyMTc3MDg0Zjk2My4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yc2FmYXJpLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotZnJvbSAuLndlYmRy
aXZlcl9zZXJ2ZXIgaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgotZnJvbSAuYmFzZSBpbXBvcnQg
V2RzcGVjRXhlY3V0b3IsIFdkc3BlY1Byb3RvY29sCi0KLQotY2xhc3MgU2FmYXJpRHJpdmVyUHJv
dG9jb2woV2RzcGVjUHJvdG9jb2wpOgotICAgIHNlcnZlcl9jbHMgPSBTYWZhcmlEcml2ZXJTZXJ2
ZXIKLQotCi1jbGFzcyBTYWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6
Ci0gICAgcHJvdG9jb2xfY2xzID0gU2FmYXJpRHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQppbmRleCAxZmUyYTgwM2IyYWQ5ZTkxZjE3NGE4
ZGFjNDM2YmQzNTViNDJmZTNkLi44ZGRmY2RjNmJmM2NlODNkZjg5ZmEyOWIwNmM4OGZjODY1ZTdk
ZjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0u
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5CkBAIC0y
MCw2ICsyMCw3IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgQ2xpY2tQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgIENvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRL
ZXlzUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3dQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KQogCkBAIC0xOTIs
NiArMTkzLDE4IEBAIGNsYXNzIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydChDb29raWVzUHJv
dG9jb2xQYXJ0KToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRGVsZXRpbmcgYWxsIGNvb2tp
ZXMiKQogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuZGVsZXRlX2FsbF9jb29raWVzKCkK
IAorY2xhc3MgU2VsZW5pdW1XaW5kb3dQcm90b2NvbFBhcnQoV2luZG93UHJvdG9jb2xQYXJ0KToK
KyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJl
bnQud2ViZHJpdmVyCisKKyAgICBkZWYgbWluaW1pemUoc2VsZik6CisgICAgICAgIHNlbGYucHJl
dmlvdXNfcmVjdCA9IHNlbGYud2ViZHJpdmVyLndpbmRvdy5yZWN0CisgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIk1pbmltaXppbmciKQorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIubWlu
aW1pemUoKQorCisgICAgZGVmIHNldF9yZWN0KHNlbGYsIHJlY3QpOgorICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCJTZXR0aW5nIHdpbmRvdyByZWN0IikKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIu
d2luZG93LnJlY3QgPSByZWN0CiAKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQo
U2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTIzMiw2ICsy
NDUsNyBAQCBjbGFzcyBTZWxlbml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAg
ICAgIFNlbGVuaXVtQ29va2llc1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVu
aXVtU2VuZEtleXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bVRlc3RE
cml2ZXJQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBTZWxlbml1bVdpbmRvd1Byb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQWN0aW9uU2VxdWVuY2VQcm90b2Nv
bFBhcnRdCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFi
aWxpdGllcywgKiprd2FyZ3MpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcnNlcnZvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5
CmluZGV4IGYzMjI0MjFiZDNmYTg5NGE5NTE1YzA5MTI3OGQ4OTBmNzdhZGM1MjIuLmQzNDVjZjdl
ZTI3ZjIwOTgwYzRiNWNiNDU2ZDhmODI0YWJkMzhhMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yc2Vydm8ucHkKQEAgLTExLDE3ICsxMSwxNCBAQCBmcm9tIG1venByb2Nlc3MgaW1w
b3J0IFByb2Nlc3NIYW5kbGVyCiAKIGZyb20gdG9vbHMuc2VydmUuc2VydmUgaW1wb3J0IG1ha2Vf
aG9zdHNfZmlsZQogCi1mcm9tIC5iYXNlIGltcG9ydCAoQ29ubmVjdGlvbmxlc3NQcm90b2NvbCwK
LSAgICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCitmcm9tIC5iYXNlIGlt
cG9ydCAoUmVmVGVzdEltcGxlbWVudGF0aW9uLAogICAgICAgICAgICAgICAgICAgIGNyYXNodGVz
dF9yZXN1bHRfY29udmVydGVyLAogICAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3Jlc3Vs
dF9jb252ZXJ0ZXIsCiAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9yZXN1bHRfY29udmVydGVy
LAotICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVyLAotICAgICAgICAgICAgICAgICAgIFdk
c3BlY0V4ZWN1dG9yLAotICAgICAgICAgICAgICAgICAgIFdkc3BlY1Byb3RvY29sKQorICAgICAg
ICAgICAgICAgICAgIFRpbWVkUnVubmVyKQogZnJvbSAucHJvY2VzcyBpbXBvcnQgUHJvY2Vzc1Rl
c3RFeGVjdXRvcgorZnJvbSAucHJvdG9jb2wgaW1wb3J0IENvbm5lY3Rpb25sZXNzUHJvdG9jb2wK
IGZyb20gLi5icm93c2Vycy5iYXNlIGltcG9ydCBicm93c2VyX2NvbW1hbmQKLWZyb20gLi53ZWJk
cml2ZXJfc2VydmVyIGltcG9ydCBTZXJ2b0RyaXZlclNlcnZlcgogCiAKIHB5dGVzdHJ1bm5lciA9
IE5vbmUKQEAgLTI4MCwxNCArMjc3LDYgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJv
Y2Vzc1Rlc3RFeGVjdXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiICIuam9pbihzZWxmLmNvbW1hbmQpKQogCiAKLWNsYXNzIFNlcnZvRHJpdmVyUHJvdG9jb2wo
V2RzcGVjUHJvdG9jb2wpOgotICAgIHNlcnZlcl9jbHMgPSBTZXJ2b0RyaXZlclNlcnZlcgotCi0K
LWNsYXNzIFNlcnZvV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgotICAgIHByb3RvY29s
X2NscyA9IFNlcnZvRHJpdmVyUHJvdG9jb2wKLQotCiBjbGFzcyBTZXJ2b1RpbWVkUnVubmVyKFRp
bWVkUnVubmVyKToKICAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAgICAgIHRyeToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQppbmRleCBhMDY1ZTNj
NTZhY2VjMzVkM2VjZDg3Y2ZkMmZjZjMzMGY2YWJkZjI3Li44OTQyOGI1M2I3MGQ3NjZhMTI0MTIy
NmIyNWRkMmIwNzJkMmE3MWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9yc2Vydm9kcml2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cnNlcnZvZHJpdmVyLnB5CkBAIC00LDEzICs0LDEzIEBAIGltcG9ydCBzb2NrZXQKIGltcG9ydCB0
cmFjZWJhY2sKIAogZnJvbSAuYmFzZSBpbXBvcnQgKFByb3RvY29sLAotICAgICAgICAgICAgICAg
ICAgIEJhc2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9y
LAogICAgICAgICAgICAgICAgICAgIFJlZlRlc3RJbXBsZW1lbnRhdGlvbiwKICAgICAgICAgICAg
ICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLAogICAgICAgICAgICAgICAgICAgIFRpbWVkUnVu
bmVyLAogICAgICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKLWZyb20gLi53ZWJkcml2ZXJf
c2VydmVyIGltcG9ydCB3YWl0X2Zvcl9zZXJ2aWNlCitmcm9tIC5wcm90b2NvbCBpbXBvcnQgQmFz
ZVByb3RvY29sUGFydAorZnJvbSAuLmVudmlyb25tZW50IGltcG9ydCB3YWl0X2Zvcl9zZXJ2aWNl
CiAKIHdlYmRyaXZlciA9IE5vbmUKIFNlcnZvQ29tbWFuZEV4dGVuc2lvbnMgPSBOb25lCkBAIC05
Niw3ICs5Niw3IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogCiAg
ICAgZGVmIGNvbm5lY3Qoc2VsZik6CiAgICAgICAgICIiIkNvbm5lY3QgdG8gYnJvd3NlciB2aWEg
V2ViRHJpdmVyLiIiIgotICAgICAgICB3YWl0X2Zvcl9zZXJ2aWNlKChzZWxmLmhvc3QsIHNlbGYu
cG9ydCksIHRpbWVvdXQ9c2VsZi5pbml0X3RpbWVvdXQpCisgICAgICAgIHdhaXRfZm9yX3NlcnZp
Y2Uoc2VsZi5sb2dnZXIsIHNlbGYuaG9zdCwgc2VsZi5wb3J0LCB0aW1lb3V0PXNlbGYuaW5pdF90
aW1lb3V0KQogCiAgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKHNlbGYu
aG9zdCwgc2VsZi5wb3J0LCBleHRlbnNpb249U2Vydm9Db21tYW5kRXh0ZW5zaW9ucykKICAgICAg
ICAgc2VsZi5zZXNzaW9uLnN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
d2ViZHJpdmVyLnB5CmluZGV4IGM2OTVhMDVkMmViMjdjNTUyNmU0MTBjYjg2OGNmMzVhYWM0YWM0
YTEuLjdlOTUxOTg3MDMxMGU5ZmY0ZDQzNWQ5YTk0ZDlhZmU3N2M5MTYzNjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpAQCAtMjYsNyArMjYsMTAgQEAg
ZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgICAgICBHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgIFNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAg
IFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgICAg
ICBEZWJ1Z1Byb3RvY29sUGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgV2luZG93UHJvdG9j
b2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z1Byb3RvY29sUGFydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgU1BDVHJhbnNhY3Rpb25zUHJvdG9jb2xQYXJ0LAorICAgICAgICAg
ICAgICAgICAgICAgICBtZXJnZV9kaWN0cykKIAogZnJvbSB3ZWJkcml2ZXIuY2xpZW50IGltcG9y
dCBTZXNzaW9uCiBmcm9tIHdlYmRyaXZlciBpbXBvcnQgZXJyb3IKQEAgLTIwMSw2ICsyMDQsMTcg
QEAgY2xhc3MgV2ViRHJpdmVyQ29va2llc1Byb3RvY29sUGFydChDb29raWVzUHJvdG9jb2xQYXJ0
KToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRGVsZXRpbmcgYWxsIGNvb2tpZXMiKQogICAg
ICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIs
ICJjb29raWUiKQogCitjbGFzcyBXZWJEcml2ZXJXaW5kb3dQcm90b2NvbFBhcnQoV2luZG93UHJv
dG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVy
ID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgbWluaW1pemUoc2VsZik6CisgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oIk1pbmltaXppbmciKQorICAgICAgICByZXR1cm4gc2VsZi53
ZWJkcml2ZXIud2luZG93Lm1pbmltaXplKCkKKworICAgIGRlZiBzZXRfcmVjdChzZWxmLCByZWN0
KToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUmVzdG9yaW5nIikKKyAgICAgICAgc2VsZi53
ZWJkcml2ZXIud2luZG93LnJlY3QgPSByZWN0CiAKIGNsYXNzIFdlYkRyaXZlclNlbmRLZXlzUHJv
dG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CkBA
IC0yOTksNiArMzEzLDE1IEBAIGNsYXNzIFdlYkRyaXZlclZpcnR1YWxBdXRoZW50aWNhdG9yUHJv
dG9jb2xQYXJ0KFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0CiAgICAgICAgIHJldHVy
biBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3ZWJhdXRobi9h
dXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1dGhlbnRpY2F0b3JfaWQsIHV2KQogCiAKK2NsYXNzIFdl
YkRyaXZlclNQQ1RyYW5zYWN0aW9uc1Byb3RvY29sUGFydChTUENUcmFuc2FjdGlvbnNQcm90b2Nv
bFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBz
ZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBzZXRfc3BjX3RyYW5zYWN0aW9uX21vZGUo
c2VsZiwgbW9kZSk6CisgICAgICAgIGJvZHkgPSB7Im1vZGUiOiBtb2RlfQorICAgICAgICByZXR1
cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAic2VjdXJlLXBh
eW1lbnQtY29uZmlybWF0aW9uL3NldC1tb2RlIiwgYm9keSkKKworCiBjbGFzcyBXZWJEcml2ZXJE
ZWJ1Z1Byb3RvY29sUGFydChEZWJ1Z1Byb3RvY29sUGFydCk6CiAgICAgZGVmIGxvYWRfZGV2dG9v
bHMoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQpAQCAtMzExLDE2
ICszMzQsMjMgQEAgY2xhc3MgV2ViRHJpdmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJDb29raWVzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVy
U2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJXaW5kb3dQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJBY3Rpb25TZXF1ZW5jZVBy
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclRlc3REcml2ZXJQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJHZW5lcmF0ZVRlc3RSZXBvcnRQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZXRQZXJtaXNzaW9uUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVmlydHVhbEF1dGhlbnRpY2F0b3JQ
cm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTUENUcmFuc2FjdGlvbnNQ
cm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJEZWJ1Z1Byb3RvY29sUGFy
dF0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvciwgYnJvd3NlciwgY2FwYWJpbGl0
aWVzLCAqKmt3YXJncyk6CiAgICAgICAgIHN1cGVyKFdlYkRyaXZlclByb3RvY29sLCBzZWxmKS5f
X2luaXRfXyhleGVjdXRvciwgYnJvd3NlcikKICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBj
YXBhYmlsaXRpZXMKKyAgICAgICAgaWYgaGFzYXR0cihicm93c2VyLCAiY2FwYWJpbGl0aWVzIik6
CisgICAgICAgICAgICBpZiBzZWxmLmNhcGFiaWxpdGllcyBpcyBOb25lOgorICAgICAgICAgICAg
ICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gYnJvd3Nlci5jYXBhYmlsaXRpZXMKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgbWVyZ2VfZGljdHMoc2VsZi5jYXBhYmlsaXRpZXMsIGJy
b3dzZXIuY2FwYWJpbGl0aWVzKQogICAgICAgICBzZWxmLnVybCA9IGJyb3dzZXIud2ViZHJpdmVy
X3VybAogICAgICAgICBzZWxmLndlYmRyaXZlciA9IE5vbmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmtpdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3J3ZWJraXQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNGI0
ZmFkM2E5NTM0MWZkNGJhMDgwYmRkMTI4MDM3NDcyNjUyZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cndlYmtpdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWZyb20gLi53ZWJkcml2
ZXJfc2VydmVyIGltcG9ydCBXZWJLaXREcml2ZXJTZXJ2ZXIKLWZyb20gLmJhc2UgaW1wb3J0IFdk
c3BlY0V4ZWN1dG9yLCBXZHNwZWNQcm90b2NvbAotCi0KLWNsYXNzIFdlYktpdERyaXZlclByb3Rv
Y29sKFdkc3BlY1Byb3RvY29sKToKLSAgICBzZXJ2ZXJfY2xzID0gV2ViS2l0RHJpdmVyU2VydmVy
Ci0KLQotY2xhc3MgV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgot
ICAgIHByb3RvY29sX2NscyA9IFdlYktpdERyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9w
cm90b2NvbC5weQppbmRleCA4YTExYjEzMzhlMGZiZDBhNGJmZWUzNTlkZDM1Y2IwODc2OTYwM2Q0
Li4wZWVlYmZjYTgwYTUwMzU0OGM1OTI3ZWJiMzFjODRmM2VmMzhkN2M2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvcHJvdG9jb2wucHkKQEAgLTEsOSArMSwyMiBAQAogaW1wb3J0IHRyYWNlYmFjaworZnJv
bSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KIAogZnJvbSBhYmMgaW1wb3J0IEFC
Q01ldGEsIGFic3RyYWN0bWV0aG9kCiBmcm9tIHR5cGluZyBpbXBvcnQgQ2xhc3NWYXIsIExpc3Qs
IFR5cGUKIAogCitkZWYgbWVyZ2VfZGljdHModGFyZ2V0LCBzb3VyY2UpOgorICAgIGlmIG5vdCAo
aXNpbnN0YW5jZSh0YXJnZXQsIGRpY3QpIGFuZCBpc2luc3RhbmNlKHNvdXJjZSwgZGljdCkpOgor
ICAgICAgICByYWlzZSBUeXBlRXJyb3IKKyAgICBmb3IgKGtleSwgc291cmNlX3ZhbHVlKSBpbiBz
b3VyY2UuaXRlbXMoKToKKyAgICAgICAgaWYga2V5IG5vdCBpbiB0YXJnZXQ6CisgICAgICAgICAg
ICB0YXJnZXRba2V5XSA9IHNvdXJjZV92YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShzb3VyY2VfdmFsdWUsIGRpY3QpIGFuZCBpc2luc3RhbmNlKHRhcmdldFtr
ZXldLCBkaWN0KToKKyAgICAgICAgICAgICAgICBtZXJnZV9kaWN0cyh0YXJnZXRba2V5XSwgc291
cmNlX3ZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0YXJnZXRba2V5
XSA9IHNvdXJjZV92YWx1ZQorCiBjbGFzcyBQcm90b2NvbChvYmplY3QpOgogICAgICIiIkJhY2tl
bmQgZm9yIGEgc3BlY2lmaWMgYnJvd3Nlci1jb250cm9sIHByb3RvY29sLgogCkBAIC0zMTAsNiAr
MzIzLDIxIEBAIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAg
ICAgIDpwYXJhbSBrZXlzOiBBIHByb3RvY29sLXNwZWNpZmljIGhhbmRsZSB0byBhIHN0cmluZyBv
ZiBpbnB1dCBrZXlzLiIiIgogICAgICAgICBwYXNzCiAKK2NsYXNzIFdpbmRvd1Byb3RvY29sUGFy
dChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIG1hbmlwdWxhdGluZyB0
aGUgd2luZG93IiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAi
d2luZG93IgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHNldF9yZWN0KHNlbGYsIHJl
Y3QpOgorICAgICAgICAiIiJSZXN0b3JlcyB0aGUgd2luZG93IHRvIHRoZSBnaXZlbiByZWN0LiIi
IgorICAgICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgbWluaW1pemUo
c2VsZik6CisgICAgICAgICIiIk1pbmltaXplcyB0aGUgd2luZG93IGFuZCByZXR1cm5zIHRoZSBw
cmV2aW91cyByZWN0LiIiIgorICAgICAgICBwYXNzCiAKIGNsYXNzIEdlbmVyYXRlVGVzdFJlcG9y
dFByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICIiIlByb3RvY29sIHBhcnQgZm9yIGdl
bmVyYXRpbmcgdGVzdCByZXBvcnRzIiIiCkBAIC01MzcsNiArNTY1LDIwIEBAIGNsYXNzIFZpcnR1
YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIHBhc3MK
IAogCitjbGFzcyBTUENUcmFuc2FjdGlvbnNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAg
ICAiIiJQcm90b2NvbCBwYXJ0IGZvciBTZWN1cmUgUGF5bWVudCBDb25maXJtYXRpb24gdHJhbnNh
Y3Rpb25zIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAic3Bj
X3RyYW5zYWN0aW9ucyIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBzZXRfc3BjX3Ry
YW5zYWN0aW9uX21vZGUoc2VsZiwgbW9kZSk6CisgICAgICAgICIiIlNldCB0aGUgU1BDIHRyYW5z
YWN0aW9uIGF1dG9tYXRpb24gbW9kZQorCisgICAgICAgIDpwYXJhbSBzdHIgbW9kZTogVGhlIGF1
dG9tYXRpb24gbW9kZSB0byBzZXQiIiIKKyAgICAgICAgcGFzcworCisKIGNsYXNzIFByaW50UHJv
dG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcmVuZGVy
aW5nIHRvIGEgUERGLiIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCkBAIC01NzYsMyAr
NjE4LDU2IEBAIGNsYXNzIERlYnVnUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAg
IHNlbGYucGFyZW50LmJhc2UubG9hZCh1cmxqb2luKHNlbGYucGFyZW50LmV4ZWN1dG9yLnNlcnZl
cl91cmwoImh0dHBzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL2NvbW1vbi90
aGlyZF9wYXJ0eS9yZWZ0ZXN0LWFuYWx5emVyLnhodG1sI2xvZz0lcyIgJQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHF1b3RlKG91dHB1dC5nZXR2YWx1ZSgpKSkpCisKKworY2xhc3Mg
Q29ubmVjdGlvbmxlc3NCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgorICAgIGRl
ZiBsb2FkKHNlbGYsIHVybCk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBleGVjdXRlX3Njcmlw
dChzZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91cz1GYWxzZSk6CisgICAgICAgIHBhc3MKKworICAg
IGRlZiBzZXRfdGltZW91dChzZWxmLCB0aW1lb3V0KToKKyAgICAgICAgcGFzcworCisgICAgZGVm
IHdhaXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIHNldF93aW5kb3co
c2VsZiwgaGFuZGxlKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHdpbmRvd19oYW5kbGVzKHNl
bGYpOgorICAgICAgICByZXR1cm4gW10KKworCitjbGFzcyBDb25uZWN0aW9ubGVzc1Byb3RvY29s
KFByb3RvY29sKToKKyAgICBpbXBsZW1lbnRzID0gW0Nvbm5lY3Rpb25sZXNzQmFzZVByb3RvY29s
UGFydF0KKworICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYg
YWZ0ZXJfY29ubmVjdChzZWxmKToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFdkc3BlY1Byb3Rv
Y29sKENvbm5lY3Rpb25sZXNzUHJvdG9jb2wpOgorICAgIGltcGxlbWVudHMgPSBbQ29ubmVjdGlv
bmxlc3NCYXNlUHJvdG9jb2xQYXJ0XQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9y
LCBicm93c2VyKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhleGVjdXRvciwgYnJvd3NlcikK
KworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IHRoZSBjb25u
ZWN0aW9uIGlzIHN0aWxsIGFsaXZlLgorCisgICAgICAgIEJlY2F1c2UgdGhlIHJlbW90ZSBjb21t
dW5pY2F0aW9uIGhhcHBlbnMgb3ZlciBIVFRQIHdlIG5lZWQgdG8KKyAgICAgICAgbWFrZSBhbiBl
eHBsaWNpdCByZXF1ZXN0IHRvIHRoZSByZW1vdGUuICBJdCBpcyBhbGxvd2VkIGZvcgorICAgICAg
ICBXZWJEcml2ZXIgc3BlYyB0ZXN0cyB0byBub3QgaGF2ZSBhIFdlYkRyaXZlciBzZXNzaW9uLCBz
aW5jZSB0aGlzCisgICAgICAgIG1heSBiZSB3aGF0IGlzIHRlc3RlZC4KKworICAgICAgICBBbiBI
VFRQIHJlcXVlc3QgdG8gYW4gaW52YWxpZCBwYXRoIHRoYXQgcmVzdWx0cyBpbiBhIDQwNCBpcwor
ICAgICAgICBwcm9vZiBlbm91Z2ggdG8gdXMgdGhhdCB0aGUgc2VydmVyIGlzIGFsaXZlIGFuZCBr
aWNraW5nLgorICAgICAgICAiIiIKKyAgICAgICAgY29ubiA9IEhUVFBDb25uZWN0aW9uKHNlbGYu
YnJvd3Nlci5ob3N0LCBzZWxmLmJyb3dzZXIucG9ydCkKKyAgICAgICAgY29ubi5yZXF1ZXN0KCJI
RUFEIiwgIi9pbnZhbGlkIikKKyAgICAgICAgcmVzID0gY29ubi5nZXRyZXNwb25zZSgpCisgICAg
ICAgIHJldHVybiByZXMuc3RhdHVzID09IDQwNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9weXRlc3RydW5uZXIvcnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9w
eXRlc3RydW5uZXIvcnVubmVyLnB5CmluZGV4IDc4ZGE4NDYyOGRiMjFhZWY4ODkxMzc2ZjA0YzI4
YjE3OTY1MjY0MzkuLmRlMjU3YjdmYTAwZjU1YjUzMWNlOWIwY2IyM2RlMjcxZTQ1MWEyNmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKQEAgLTQ0
LDE0ICs0NCwxNCBAQCBkZWYgcnVuKHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmln
LCB0aW1lb3V0PTAsIGVudmlyb249Tm9uZSk6CiAgICAgb2xkX2Vudmlyb24gPSBvcy5lbnZpcm9u
LmNvcHkoKQogICAgIHRyeToKICAgICAgICAgd2l0aCBUZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBj
YWNoZToKLSAgICAgICAgICAgIG9zLmVudmlyb25bIldEX0hPU1QiXSA9IHNlc3Npb25fY29uZmln
WyJob3N0Il0KLSAgICAgICAgICAgIG9zLmVudmlyb25bIldEX1BPUlQiXSA9IHN0cihzZXNzaW9u
X2NvbmZpZ1sicG9ydCJdKQotICAgICAgICAgICAgb3MuZW52aXJvblsiV0RfQ0FQQUJJTElUSUVT
Il0gPSBqc29uLmR1bXBzKHNlc3Npb25fY29uZmlnWyJjYXBhYmlsaXRpZXMiXSkKKyAgICAgICAg
ICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5qb2luKGNhY2hlLCAid2RfY29uZmlnLmpzb24iKQor
ICAgICAgICAgICAgb3MuZW52aXJvblsiV0RTUEVDX0NPTkZJR19GSUxFIl0gPSBjb25maWdfcGF0
aAorCisgICAgICAgICAgICBjb25maWcgPSBzZXNzaW9uX2NvbmZpZy5jb3B5KCkKKyAgICAgICAg
ICAgIGNvbmZpZ1sid3B0c2VydmUiXSA9IHNlcnZlcl9jb25maWcuYXNfZGljdCgpCiAKLSAgICAg
ICAgICAgIGNvbmZpZ19wYXRoID0gb3MucGF0aC5qb2luKGNhY2hlLCAid2Rfc2VydmVyX2NvbmZp
Zy5qc29uIikKLSAgICAgICAgICAgIG9zLmVudmlyb25bIldEX1NFUlZFUl9DT05GSUdfRklMRSJd
ID0gY29uZmlnX3BhdGgKICAgICAgICAgICAgIHdpdGggb3Blbihjb25maWdfcGF0aCwgInciKSBh
cyBmOgotICAgICAgICAgICAgICAgIGpzb24uZHVtcChzZXJ2ZXJfY29uZmlnLmFzX2RpY3QoKSwg
ZikKKyAgICAgICAgICAgICAgICBqc29uLmR1bXAoY29uZmlnLCBmKQogCiAgICAgICAgICAgICBp
ZiBlbnZpcm9uOgogICAgICAgICAgICAgICAgIG9zLmVudmlyb24udXBkYXRlKGVudmlyb24pCkBA
IC02MCwxMCArNjAsMTEgQEAgZGVmIHJ1bihwYXRoLCBzZXJ2ZXJfY29uZmlnLCBzZXNzaW9uX2Nv
bmZpZywgdGltZW91dD0wLCBlbnZpcm9uPU5vbmUpOgogICAgICAgICAgICAgc3VidGVzdHMgPSBT
dWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQogCiAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgYmFzZXRlbXAgPSBvcy5wYXRoLmpvaW4oY2FjaGUsICJweXRlc3QiKQogICAgICAgICAgICAg
ICAgIHB5dGVzdC5tYWluKFsiLS1zdHJpY3QiLCAgIyB0dXJuIHdhcm5pbmdzIGludG8gZXJyb3Jz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItdnYiLCAgIyBzaG93IGVhY2ggaW5kaXZp
ZHVhbCBzdWJ0ZXN0IGFuZCBmdWxsIGZhaWx1cmUgbG9ncwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0
ZXN0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1iYXNldGVtcCIsIGNhY2hlLCAg
IyB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWJh
c2V0ZW1wIiwgYmFzZXRlbXAsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi0tc2hvd2xvY2FscyIsICAjIGRpc3BsYXkgY29udGVudHMgb2YgdmFy
aWFibGVzIGluIGxvY2FsIHNjb3BlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcCIs
ICJubzptb3psb2ciLCAgIyB1c2UgdGhlIFdQVCByZXN1bHQgcmVjb3JkZXIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOmNhY2hlcHJvdmlkZXIiLCAgIyBkaXNhYmxlIHN0
YXRlIHByZXNlcnZhdGlvbiBhY3Jvc3MgaW52b2NhdGlvbnMKQEAgLTE0Nyw3ICsxNDgsNyBAQCBj
bGFzcyBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIob2JqZWN0KToKIAogY2xhc3MgVGVtcG9yYXJ5RGly
ZWN0b3J5KG9iamVjdCk6CiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgc2VsZi5w
YXRoID0gdGVtcGZpbGUubWtkdGVtcChwcmVmaXg9InB5dGVzdC0iKQorICAgICAgICBzZWxmLnBh
dGggPSB0ZW1wZmlsZS5ta2R0ZW1wKHByZWZpeD0id2RzcGVjLSIpCiAgICAgICAgIHJldHVybiBz
ZWxmLnBhdGgKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4OTFkZjBhMjNjNTljNGUwMjMzNjFlNTA3ZDE0NjA0Y2NiNWMx
YjE4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRl
c3RydW5uZXIvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5l
ci9ydW5uZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmZWY4NTA2YzI4MDIyNmJjMjczOGRlNTVlYzViZWVkZDg4NDYx
ZGEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzOSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9i
YXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JpbnRlcm5ldGV4cGxvcmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1h
cmlvbmV0dGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2FmYXJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcnNlcnZvLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVy
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJraXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3Byb2Nlc3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9y
dW5uZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3Qtd2FpdC5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIuanMKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3dpbmRvdy1sb2FkZWQuanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19pbml0X18ucHkK
aW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJi
MmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Zvcm1hdHRlcnMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19p
bml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvX19p
bml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRfXy5weQppbmRl
eCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9y
bWF0dGVycy90ZXN0cy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90
ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90
ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTA3MWYxOTY2ZmI3OGNk
OGY0MjVkZjAzYjE1MTMyNmQ0MWJjMWZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Zvcm1hdHRlcnMvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90
ZXN0cy90ZXN0X2Nocm9taXVtLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVy
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzFhYjBiMDk2ZTE1YjM3ZjdjMTgzZDAw
MjkwZjJmOWFlNzQ2MzJkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dw
dHNjcmVlbnNob3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CmluZGV4IGVlYjVhZjIzMDAyOTkzZWU2OWQ2MmFmZjRk
YWNiYTUyMmY3ZDhjOWQuLmVmYWUyNDA2ZmQzYTkzNDcyOGZiNGE3MWZkNjAyY2Y5ZDMxOWExMzgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3N0YWJpbGl0eS5weQpAQCAtMjg4LDcgKzI4OCwxMSBAQCBkZWYgcnVuX3N0ZXAobG9nZ2VyLCBp
dGVyYXRpb25zLCByZXN0YXJ0X2FmdGVyX2l0ZXJhdGlvbiwga3dhcmdzX2V4dHJhcywgKiprd2Fy
ZwogICAgICMgd2FybmluZysgbGV2ZWwgbG9ncyBvbmx5CiAgICAgbG9nZ2VyLmFkZF9oYW5kbGVy
KFN0cmVhbUhhbmRsZXIobG9nLCBKU09ORm9ybWF0dGVyKCkpKQogCi0gICAgd3B0cnVubmVyLnJ1
bl90ZXN0cygqKmt3YXJncykKKyAgICAjIFVzZSB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2Yg
dGhlIHRlc3Qgc3VpdGUgdGhhdCB3ZXJlIHJ1biB0byBwcm9jZXNzIHRoZSByZXN1bHRzLgorICAg
ICMgaWYgdGhlIHJ1bnMgd2VyZSBzdG9wcGVkIHRvIGF2b2lkIGhpdHRpbmcgdGhlIG1heGltdW0g
cnVuIHRpbWUuCisgICAgXywgdGVzdF9zdGF0dXMgPSB3cHRydW5uZXIucnVuX3Rlc3RzKCoqa3dh
cmdzKQorICAgIGl0ZXJhdGlvbnMgPSB0ZXN0X3N0YXR1cy5yZXBlYXRlZF9ydW5zCisgICAgYWxs
X3NraXBwZWQgPSB0ZXN0X3N0YXR1cy5hbGxfc2tpcHBlZAogCiAgICAgbG9nZ2VyLl9zdGF0ZS5o
YW5kbGVycyA9IGluaXRpYWxfaGFuZGxlcnMKICAgICBsb2dnZXIuX3N0YXRlLnJ1bm5pbmdfdGVz
dHMgPSBzZXQoKQpAQCAtMjk2LDcgKzMwMCw3IEBAIGRlZiBydW5fc3RlcChsb2dnZXIsIGl0ZXJh
dGlvbnMsIHJlc3RhcnRfYWZ0ZXJfaXRlcmF0aW9uLCBrd2FyZ3NfZXh0cmFzLCAqKmt3YXJnCiAK
ICAgICBsb2cuc2VlaygwKQogICAgIHJlc3VsdHMsIGluY29uc2lzdGVudCwgc2xvdyA9IHByb2Nl
c3NfcmVzdWx0cyhsb2csIGl0ZXJhdGlvbnMpCi0gICAgcmV0dXJuIHJlc3VsdHMsIGluY29uc2lz
dGVudCwgc2xvdywgaXRlcmF0aW9ucworICAgIHJldHVybiByZXN1bHRzLCBpbmNvbnNpc3RlbnQs
IHNsb3csIGl0ZXJhdGlvbnMsIGFsbF9za2lwcGVkCiAKIAogZGVmIGdldF9zdGVwcyhsb2dnZXIs
IHJlcGVhdF9sb29wLCByZXBlYXRfcmVzdGFydCwga3dhcmdzX2V4dHJhcyk6CkBAIC0zMTEsMTIg
KzMxNSwyNCBAQCBkZWYgZ2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0
YXJ0LCBrd2FyZ3NfZXh0cmFzKToKICAgICAgICAgaWYgcmVwZWF0X2xvb3A6CiAgICAgICAgICAg
ICBkZXNjID0gIlJ1bm5pbmcgdGVzdHMgaW4gYSBsb29wICVkIHRpbWVzJXMiICUgKHJlcGVhdF9s
b29wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmbGFnc19zdHJpbmcpCi0gICAgICAgICAgICBzdGVwcy5hcHBlbmQoKGRlc2MsIGZ1
bmN0b29scy5wYXJ0aWFsKHJ1bl9zdGVwLCBsb2dnZXIsIHJlcGVhdF9sb29wLCBGYWxzZSwga3dh
cmdzX2V4dHJhKSkpCisgICAgICAgICAgICBzdGVwcy5hcHBlbmQoKGRlc2MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZ1bmN0b29scy5wYXJ0aWFsKHJ1bl9zdGVwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdF9sb29wLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzX2V4dHJhKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwZWF0X2xvb3ApKQogCiAgICAgICAgIGlmIHJlcGVhdF9yZXN0YXJ0OgogICAg
ICAgICAgICAgZGVzYyA9ICJSdW5uaW5nIHRlc3RzIGluIGEgbG9vcCB3aXRoIHJlc3RhcnRzICVz
IHRpbWVzJXMiICUgKHJlcGVhdF9yZXN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzX3N0cmlu
ZykKLSAgICAgICAgICAgIHN0ZXBzLmFwcGVuZCgoZGVzYywgZnVuY3Rvb2xzLnBhcnRpYWwocnVu
X3N0ZXAsIGxvZ2dlciwgcmVwZWF0X3Jlc3RhcnQsIFRydWUsIGt3YXJnc19leHRyYSkpKQorICAg
ICAgICAgICAgc3RlcHMuYXBwZW5kKChkZXNjLAorICAgICAgICAgICAgICAgICAgICAgICAgICBm
dW5jdG9vbHMucGFydGlhbChydW5fc3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBlYXRfcmVzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzX2V4dHJhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0
X3Jlc3RhcnQpKQogCiAgICAgcmV0dXJuIHN0ZXBzCiAKQEAgLTMzNSw2ICszNTEsNyBAQCBkZWYg
d3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgZmluYWxfcmVzdWx0KToKIAogICAg
IGxvZ2dlci5pbmZvKCc6OjonKQogCisKIGRlZiBjaGVja19zdGFiaWxpdHkobG9nZ2VyLCByZXBl
YXRfbG9vcD0xMCwgcmVwZWF0X3Jlc3RhcnQ9NSwgY2hhb3NfbW9kZT1UcnVlLCBtYXhfdGltZT1O
b25lLAogICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcmVzdWx0cz1UcnVlLCAqKmt3YXJncyk6
CiAgICAga3dhcmdzX2V4dHJhcyA9IFt7fV0KQEAgLTM0OCw3ICszNjUsNyBAQCBkZWYgY2hlY2tf
c3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVhdF9yZXN0YXJ0PTUsIGNoYW9z
X21vZGU9VHJ1ZSwgbQogCiAgICAgZ2l0aHViX2NoZWNrc19vdXRwdXR0ZXIgPSBnZXRfZ2hfY2hl
Y2tzX291dHB1dHRlcihrd2FyZ3NbImdpdGh1Yl9jaGVja3NfdGV4dF9maWxlIl0pCiAKLSAgICBm
b3IgZGVzYywgc3RlcF9mdW5jIGluIHN0ZXBzOgorICAgIGZvciBkZXNjLCBzdGVwX2Z1bmMsIGV4
cGVjdGVkX2l0ZXJhdGlvbnMgaW4gc3RlcHM6CiAgICAgICAgIGlmIG1heF90aW1lIGFuZCBkYXRl
dGltZS5ub3coKSAtIHN0YXJ0X3RpbWUgPiBtYXhfdGltZToKICAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCI6OjogVGVzdCB2ZXJpZmljYXRpb24gaXMgdGFraW5nIHRvbyBsb25nOiBHaXZpbmcgdXAh
IikKICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCI6OjogU28gZmFyLCBhbGwgY2hlY2tzIHBhc3Nl
ZCwgYnV0IG5vdCBhbGwgY2hlY2tzIHdlcmUgcnVuLiIpCkBAIC0zNTgsNyArMzc1LDE1IEBAIGRl
ZiBjaGVja19zdGFiaWxpdHkobG9nZ2VyLCByZXBlYXRfbG9vcD0xMCwgcmVwZWF0X3Jlc3RhcnQ9
NSwgY2hhb3NfbW9kZT1UcnVlLCBtCiAgICAgICAgIGxvZ2dlci5pbmZvKCc6OjonKQogICAgICAg
ICBsb2dnZXIuaW5mbygnOjo6IFJ1bm5pbmcgdGVzdCB2ZXJpZmljYXRpb24gc3RlcCAiJXMiLi4u
JyAlIGRlc2MpCiAgICAgICAgIGxvZ2dlci5pbmZvKCc6OjonKQotICAgICAgICByZXN1bHRzLCBp
bmNvbnNpc3RlbnQsIHNsb3csIGl0ZXJhdGlvbnMgPSBzdGVwX2Z1bmMoKiprd2FyZ3MpCisgICAg
ICAgIHJlc3VsdHMsIGluY29uc2lzdGVudCwgc2xvdywgaXRlcmF0aW9ucywgYWxsX3NraXBwZWQg
PSBzdGVwX2Z1bmMoKiprd2FyZ3MpCisKKyAgICAgICAgaWYgaXRlcmF0aW9ucyA8PSAxIGFuZCBl
eHBlY3RlZF9pdGVyYXRpb25zID4gMSBhbmQgbm90IGFsbF9za2lwcGVkOgorICAgICAgICAgICAg
c3RlcF9yZXN1bHRzLmFwcGVuZCgoZGVzYywgIkZBSUwiKSkKKyAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCI6OjogUmVhY2hlZCBpdGVyYXRpb24gdGltZW91dCBiZWZvcmUgZmluaXNoaW5nIDIgb3Ig
bW9yZSByZXBlYXQgcnVucy4iKQorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIjo6OiBBdCBsZWFz
dCAyIHN1Y2Nlc3NmdWwgcmVwZWF0IHJ1bnMgYXJlIHJlcXVpcmVkIHRvIHZhbGlkYXRlIHN0YWJp
bGl0eS4iKQorICAgICAgICAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywg
IlRJTUVPVVQiKQorICAgICAgICAgICAgcmV0dXJuIDEKKwogICAgICAgICBpZiBvdXRwdXRfcmVz
dWx0czoKICAgICAgICAgICAgIHdyaXRlX3Jlc3VsdHMobG9nZ2VyLmluZm8sIHJlc3VsdHMsIGl0
ZXJhdGlvbnMpCiAKQEAgLTM3OCw2ICs0MDMsMTIgQEAgZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dn
ZXIsIHJlcGVhdF9sb29wPTEwLCByZXBlYXRfcmVzdGFydD01LCBjaGFvc19tb2RlPVRydWUsIG0K
ICAgICAgICAgICAgIHdyaXRlX3N1bW1hcnkobG9nZ2VyLCBzdGVwX3Jlc3VsdHMsICJGQUlMIikK
ICAgICAgICAgICAgIHJldHVybiAxCiAKLSAgICAgICAgc3RlcF9yZXN1bHRzLmFwcGVuZCgoZGVz
YywgIlBBU1MiKSkKKyAgICAgICAgIyBJZiB0aGUgdGVzdHMgcGFzc2VkIGJ1dCB0aGUgbnVtYmVy
IG9mIGl0ZXJhdGlvbnMgZGlkbid0IG1hdGNoIHRoZSBudW1iZXIgZXhwZWN0ZWQgdG8gcnVuLAor
ICAgICAgICAjIGl0IGlzIGxpa2VseSB0aGF0IHRoZSBydW5zIHdlcmUgc3RvcHBlZCBlYXJseSB0
byBhdm9pZCBhIHRpbWVvdXQuCisgICAgICAgIGlmIGl0ZXJhdGlvbnMgIT0gZXhwZWN0ZWRfaXRl
cmF0aW9uczoKKyAgICAgICAgICAgIHJlc3VsdCA9IGYiUEFTUyAqICB7aXRlcmF0aW9uc30ve2V4
cGVjdGVkX2l0ZXJhdGlvbnN9IHJlcGVhdHMgY29tcGxldGVkIgorICAgICAgICAgICAgc3RlcF9y
ZXN1bHRzLmFwcGVuZCgoZGVzYywgcmVzdWx0KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHN0ZXBfcmVzdWx0cy5hcHBlbmQoKGRlc2MsICJQQVNTIikpCiAKICAgICB3cml0ZV9zdW1tYXJ5
KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiUEFTUyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdGRyaXZlci1leHRyYS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCmlu
ZGV4IDg0MmFiZjQxMWY5MGNkYTE0MzljYWUxZWM3MzgwMTE3YjQyNWEyMTYuLmQ1YTUxZjU2Y2Q0
YjUyMmE0YjU5NWNiMTM0MGJlODFjYmQzNGM1ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0ZHJpdmVyLWV4dHJhLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpz
CkBAIC0xNzYsNiArMTc2LDE0IEBACiAgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJkZWxl
dGVfYWxsX2Nvb2tpZXMiLCB7Y29udGV4dH0pOwogICAgIH07CiAKKyAgICB3aW5kb3cudGVzdF9k
cml2ZXJfaW50ZXJuYWwubWluaW1pemVfd2luZG93ID0gZnVuY3Rpb24oY29udGV4dD1udWxsKSB7
CisgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJtaW5pbWl6ZV93aW5kb3ciLCB7Y29udGV4
dH0pOworICAgIH07CisKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3dpbmRv
d19yZWN0ID0gZnVuY3Rpb24ocmVjdCwgY29udGV4dD1udWxsKSB7CisgICAgICAgIHJldHVybiBj
cmVhdGVfYWN0aW9uKCJzZXRfd2luZG93X3JlY3QiLCB7cmVjdCwgY29udGV4dH0pOworICAgIH07
CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2VuZF9rZXlzID0gZnVuY3Rpb24o
ZWxlbWVudCwga2V5cykgewogICAgICAgICBjb25zdCBzZWxlY3RvciA9IGdldF9zZWxlY3Rvcihl
bGVtZW50KTsKICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldF9jb250ZXh0KGVsZW1lbnQpOwpA
QCAtMjM2LDQgKzI0NCw4IEBACiAgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLnNldF91
c2VyX3ZlcmlmaWVkID0gZnVuY3Rpb24oYXV0aGVudGljYXRvcl9pZCwgdXYsIGNvbnRleHQ9bnVs
bCkgewogICAgICAgICByZXR1cm4gY3JlYXRlX2FjdGlvbigic2V0X3VzZXJfdmVyaWZpZWQiLCB7
YXV0aGVudGljYXRvcl9pZCwgdXYsIGNvbnRleHR9KTsKICAgICB9OworCisgICAgd2luZG93LnRl
c3RfZHJpdmVyX2ludGVybmFsLnNldF9zcGNfdHJhbnNhY3Rpb25fbW9kZSA9IGZ1bmN0aW9uKG1v
ZGUsIGNvbnRleHQgPSBudWxsKSB7CisgICAgICAgIHJldHVybiBjcmVhdGVfYWN0aW9uKCJzZXRf
c3BjX3RyYW5zYWN0aW9uX21vZGUiLCB7bW9kZSwgY29udGV4dH0pOworICAgIH07CiB9KSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHJ1bm5lci5weQppbmRleCBlMDgxOTdkM2YwOTVlOGUwN2M3M2RkMjkyNTMxYjhhMTFiMWJmNjQy
Li4wZGFjNzdjNGI1NTMzMDUyZjdmYTI1MTFiMjU5OGMyNWIwMTBlYTE1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHJ1bm5lci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5w
eQpAQCAtMTU3LDE1ICsxNTcsNiBAQCBkZWYgc3RhcnRfcnVubmVyKHJ1bm5lcl9jb21tYW5kX3F1
ZXVlLCBydW5uZXJfcmVzdWx0X3F1ZXVlLAogICAgICAgICAgICAgaGFuZGxlX2Vycm9yKGUpCiAK
IAotbWFuYWdlcl9jb3VudCA9IDAKLQotCi1kZWYgbmV4dF9tYW5hZ2VyX251bWJlcigpOgotICAg
IGdsb2JhbCBtYW5hZ2VyX2NvdW50Ci0gICAgbG9jYWwgPSBtYW5hZ2VyX2NvdW50ID0gbWFuYWdl
cl9jb3VudCArIDEKLSAgICByZXR1cm4gbG9jYWwKLQotCiBjbGFzcyBCcm93c2VyTWFuYWdlcihv
YmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIGNvbW1hbmRf
cXVldWUsIG5vX3RpbWVvdXQ9RmFsc2UpOgogICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgpA
QCAtMjA3LDcgKzE5OCw3IEBAIGNsYXNzIEJyb3dzZXJNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
ICAgICAgICAgc2VsZi5pbml0X3RpbWVyLnN0YXJ0KCkKICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJTdGFydGluZyBicm93c2VyIHdpdGggc2V0dGluZ3MgJXIiICUgc2VsZi5icm93c2Vy
X3NldHRpbmdzKQogICAgICAgICAgICAgc2VsZi5icm93c2VyLnN0YXJ0KGdyb3VwX21ldGFkYXRh
PWdyb3VwX21ldGFkYXRhLCAqKnNlbGYuYnJvd3Nlcl9zZXR0aW5ncykKLSAgICAgICAgICAgIHNl
bGYuYnJvd3Nlcl9waWQgPSBzZWxmLmJyb3dzZXIucGlkKCkKKyAgICAgICAgICAgIHNlbGYuYnJv
d3Nlcl9waWQgPSBzZWxmLmJyb3dzZXIucGlkCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsdXJlIGR1cmluZyBpbml0ICVzIiAl
IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCiAgICAgICAgICAgICBpZiBzZWxmLmluaXRfdGltZXIg
aXMgbm90IE5vbmU6CkBAIC0yNjQsMTAgKzI1NSwxMCBAQCBSdW5uZXJNYW5hZ2VyU3RhdGUgPSBf
UnVubmVyTWFuYWdlclN0YXRlKCkKIAogCiBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRp
bmcuVGhyZWFkKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc3VpdGVfbmFtZSwgdGVzdF9xdWV1
ZSwgdGVzdF9zb3VyY2VfY2xzLCBicm93c2VyX2NscywgYnJvd3Nlcl9rd2FyZ3MsCi0gICAgICAg
ICAgICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jfa3dhcmdzLCBzdG9wX2ZsYWcsIHJlcnVu
PTEsIHBhdXNlX2FmdGVyX3Rlc3Q9RmFsc2UsCi0gICAgICAgICAgICAgICAgIHBhdXNlX29uX3Vu
ZXhwZWN0ZWQ9RmFsc2UsIHJlc3RhcnRfb25fdW5leHBlY3RlZD1UcnVlLCBkZWJ1Z19pbmZvPU5v
bmUsCi0gICAgICAgICAgICAgICAgIGNhcHR1cmVfc3RkaW89VHJ1ZSwgcmVjb3JkaW5nPU5vbmUp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdWl0ZV9uYW1lLCBpbmRleCwgdGVzdF90eXBlLCB0
ZXN0X3F1ZXVlLCB0ZXN0X3NvdXJjZV9jbHMsIGJyb3dzZXJfY2xzLAorICAgICAgICAgICAgICAg
ICBicm93c2VyX2t3YXJncywgZXhlY3V0b3JfY2xzLCBleGVjdXRvcl9rd2FyZ3MsIHN0b3BfZmxh
ZywgcmVydW49MSwKKyAgICAgICAgICAgICAgICAgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxzZSwgcGF1
c2Vfb25fdW5leHBlY3RlZD1GYWxzZSwgcmVzdGFydF9vbl91bmV4cGVjdGVkPVRydWUsCisgICAg
ICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwdHVyZV9zdGRpbz1UcnVlLCByZWNvcmRp
bmc9Tm9uZSk6CiAgICAgICAgICIiIlRocmVhZCB0aGF0IG93bnMgYSBzaW5nbGUgVGVzdFJ1bm5l
ciBwcm9jZXNzIGFuZCBhbnkgcHJvY2Vzc2VzIHJlcXVpcmVkCiAgICAgICAgIGJ5IHRoZSBUZXN0
UnVubmVyIChlLmcuIHRoZSBGaXJlZm94IGJpbmFyeSkuCiAKQEAgLTI4Nyw4ICsyNzgsMTQgQEAg
Y2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAKICAgICAgICAgc2Vs
Zi50ZXN0X3NvdXJjZSA9IHRlc3Rfc291cmNlX2Nscyh0ZXN0X3F1ZXVlKQogCisgICAgICAgIHNl
bGYubWFuYWdlcl9udW1iZXIgPSBpbmRleAorICAgICAgICBzZWxmLnRlc3RfdHlwZSA9IHRlc3Rf
dHlwZQogICAgICAgICBzZWxmLmJyb3dzZXJfY2xzID0gYnJvd3Nlcl9jbHMKLSAgICAgICAgc2Vs
Zi5icm93c2VyX2t3YXJncyA9IGJyb3dzZXJfa3dhcmdzCisgICAgICAgIHNlbGYuYnJvd3Nlcl9r
d2FyZ3MgPSBicm93c2VyX2t3YXJncy5jb3B5KCkKKyAgICAgICAgaWYgc2VsZi5icm93c2VyX2t3
YXJncy5nZXQoImRldmljZV9zZXJpYWwiKToKKyAgICAgICAgICAgICMgQXNzaWduIEFuZHJvaWQg
ZGV2aWNlIHRvIHJ1bm5lciBhY2NvcmRpbmcgdG8gY3VycmVudCBtYW5hZ2VyIGluZGV4CisgICAg
ICAgICAgICBzZWxmLmJyb3dzZXJfa3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0gPSAoCisgICAgICAg
ICAgICAgICAgc2VsZi5icm93c2VyX2t3YXJnc1siZGV2aWNlX3NlcmlhbCJdW2luZGV4XSkKIAog
ICAgICAgICBzZWxmLmV4ZWN1dG9yX2NscyA9IGV4ZWN1dG9yX2NscwogICAgICAgICBzZWxmLmV4
ZWN1dG9yX2t3YXJncyA9IGV4ZWN1dG9yX2t3YXJncwpAQCAtMzA2LDcgKzMwMyw2IEBAIGNsYXNz
IFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICBzZWxmLnJlc3Rh
cnRfb25fdW5leHBlY3RlZCA9IHJlc3RhcnRfb25fdW5leHBlY3RlZAogICAgICAgICBzZWxmLmRl
YnVnX2luZm8gPSBkZWJ1Z19pbmZvCiAKLSAgICAgICAgc2VsZi5tYW5hZ2VyX251bWJlciA9IG5l
eHRfbWFuYWdlcl9udW1iZXIoKQogICAgICAgICBhc3NlcnQgcmVjb3JkaW5nIGlzIG5vdCBOb25l
CiAgICAgICAgIHNlbGYucmVjb3JkaW5nID0gcmVjb3JkaW5nCiAKQEAgLTMxNSw3ICszMTEsNyBA
QCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICBz
ZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5f
X2luaXRfXyhzZWxmLCBuYW1lPSJUZXN0UnVubmVyTWFuYWdlci0laSIgJSBzZWxmLm1hbmFnZXJf
bnVtYmVyKQorICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9IlRl
c3RSdW5uZXJNYW5hZ2VyLSVzLSVpIiAlICh0ZXN0X3R5cGUsIGluZGV4KSkKICAgICAgICAgIyBU
aGlzIGlzIHN0YXJ0ZWQgaW4gdGhlIGFjdHVhbCBuZXcgdGhyZWFkCiAgICAgICAgIHNlbGYubG9n
Z2VyID0gTm9uZQogCkBAIC01MTAsNyArNTA2LDggQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIo
dGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIG1wID0gbXBjb250ZXh0LmdldF9jb250ZXh0KCkK
ICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jID0gbXAuUHJvY2Vzcyh0YXJnZXQ9c3RhcnRf
cnVubmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9
YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJU
ZXN0UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0lcy0laSIgJSAoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF90eXBl
LCBzZWxmLm1hbmFnZXJfbnVtYmVyKSkKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnN0
YXJ0KCkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3QgcnVubmVyIHN0YXJ0ZWQiKQog
ICAgICAgICAjIE5vdyB3ZSB3YWl0IGZvciBlaXRoZXIgYW4gaW5pdF9zdWNjZWVkZWQgZXZlbnQg
b3IgYW4gaW5pdF9mYWlsZWQgZXZlbnQKQEAgLTg5NCw4ICs4OTEsMTAgQEAgY2xhc3MgTWFuYWdl
ckdyb3VwKG9iamVjdCk6CiAKICAgICAgICAgdGVzdF9xdWV1ZSA9IG1ha2VfdGVzdF9xdWV1ZSh0
eXBlX3Rlc3RzLCBzZWxmLnRlc3Rfc291cmNlX2NscywgKipzZWxmLnRlc3Rfc291cmNlX2t3YXJn
cykKIAotICAgICAgICBmb3IgXyBpbiByYW5nZShzZWxmLnNpemUpOgorICAgICAgICBmb3IgaWR4
IGluIHJhbmdlKHNlbGYuc2l6ZSk6CiAgICAgICAgICAgICBtYW5hZ2VyID0gVGVzdFJ1bm5lck1h
bmFnZXIoc2VsZi5zdWl0ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9xdWV1
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3Rfc291
cmNlX2NscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJy
b3dzZXJfY2xzLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5pdF9fLnB5CmluZGV4IGE2
ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0
YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9i
cm93c2Vycy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19p
bml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhv
biB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTY5ODc3MzEyN2NkZGY1YmM2YjY0YzFlMzMx
NjQzMjliZDI4MDg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vy
cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3Rlc3Rfd3B0dGVzdC5weQppbmRleCA1OWFhNjM2YTkwMzczYzFjODk1MjJiOTc1NmIzZjJj
YzU5MjdlNmIyLi5mODc2MWJiYzFlMDRlODlmYjA3ZmFmMDMyMWFkZDViNTE2NjRlYzk2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkKQEAgLTExOCw2ICsxMTgsMTYgQEAgZGVmIG1ha2Vf
dGVzdF9vYmplY3QodGVzdF9uYW1lLAogICAgIHJldHVybiB3cHR0ZXN0LmZyb21fbWFuaWZlc3Qo
dGVzdHMsIHRlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEuZ2V0X3Rlc3QodGVz
dC5pZCkpCiAKIAorZGVmIHRlc3RfcnVuX2luZm8oKToKKyAgICBydW5faW5mbyA9IHdwdHRlc3Qu
Z2V0X3J1bl9pbmZvKCIvIiwgImZha2UtcHJvZHVjdCIsIGRlYnVnPUZhbHNlKQorICAgIGFzc2Vy
dCBpc2luc3RhbmNlKHJ1bl9pbmZvWyJiaXRzIl0sIGludCkKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZShydW5faW5mb1sib3MiXSwgc3RyKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJ1bl9pbmZvWyJv
c192ZXJzaW9uIl0sIHN0cikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShydW5faW5mb1sicHJvY2Vz
c29yIl0sIHN0cikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShydW5faW5mb1sicHJvZHVjdCJdLCBz
dHIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocnVuX2luZm9bInB5dGhvbl92ZXJzaW9uIl0sIGlu
dCkKKworCiBkZWYgdGVzdF9tZXRhZGF0YV9pbmhlcml0KCk6CiAgICAgaXRlbXMgPSBbKCJ0ZXN0
IiwgImEiLCAxMCksICgidGVzdCIsICJhL2IiLCAxMCksICgidGVzdCIsICJjIiwgMTApXQogICAg
IGluaGVyaXRfbWV0YWRhdGEgPSBbCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZTI3YzRkMzBiY2QwMzU1NWNmNTc3MGEzODY2YThiNzM1
ZWIyYzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9leGVjdXRvcnMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9leHBlY3RlZHRyZWUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvdGVzdF9mb3JtYXR0ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfbWFuaWZl
c3RleHBlY3RlZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rl
c3RfdGVzdGxvYWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci91cGRhdGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDlhMzlhYTA5YWY1OTk3NTA0Njhl
ZTNkNGM3Mjk4MDE5MjliNTI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9t
ZXRhZGF0YS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL3N5bmMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL3VwZGF0ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3NjRmYzg1ZTM1YmQ1MTkwY2M3YzdlOTI0NTljNGFhZTk5NTQ3YzRlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZW52aXJvbm1lbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhwZWN0ZWQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhwZWN0ZWR0cmVlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
aW5zdHJ1bWVudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbXBjb250ZXh0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3ByaW50X3JlZnRlc3RfcnVubmVyLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
cHJvZHVjdHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3Rkcml2ZXItZXh0cmEuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci12ZW5kb3IuanMKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NyZXBvcnQtc2Vydm8uanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vy
dm9kcml2ZXIuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdGxvYWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Zjcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0cnVubmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dl
YmRyaXZlcl9zZXJ2ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2NWUzZDRl
NDNiZTJhZWY1M2EwZjQxYjRhNTQ4ODYxMGY3M2Q4YmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwyNTEgKzAsMCBAQAotaW1wb3J0IGFiYwotaW1wb3J0IGVycm5v
Ci1pbXBvcnQgb3MKLWltcG9ydCBwbGF0Zm9ybQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHRpbWUK
LWltcG9ydCB0cmFjZWJhY2sKLWZyb20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgVHlwZQotCi1p
bXBvcnQgbW96cHJvY2VzcwotCi1mcm9tIC5icm93c2Vycy5iYXNlIGltcG9ydCBPdXRwdXRIYW5k
bGVyCi0KLQotX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21lRHJpdmVyU2VydmVy
IiwgIkNXVENocm9tZURyaXZlclNlcnZlciIsCi0gICAgICAgICAgICJFZGdlQ2hyb21pdW1Ecml2
ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLAotICAgICAgICAgICAiSW50ZXJuZXRFeHBs
b3JlckRyaXZlclNlcnZlciIsICJFZGdlRHJpdmVyU2VydmVyIiwKLSAgICAgICAgICAgIlNlcnZv
RHJpdmVyU2VydmVyIiwgIldlYktpdERyaXZlclNlcnZlciIsICJXZWJEcml2ZXJTZXJ2ZXIiXQot
Ci0KLWNsYXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgotICAgIF9fbWV0YWNsYXNzX18gPSBh
YmMuQUJDTWV0YQotCi0gICAgZGVmYXVsdF9iYXNlX3BhdGggPSAiLyIKLSAgICBvdXRwdXRfaGFu
ZGxlcl9jbHMgPSBPdXRwdXRIYW5kbGVyICAjIHR5cGU6IENsYXNzVmFyW1R5cGVbT3V0cHV0SGFu
ZGxlcl1dCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGhvc3Q9IjEy
Ny4wLjAuMSIsIHBvcnQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBlbnY9
Tm9uZSwgYXJncz1Ob25lKToKLSAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJXZWJEcml2ZXIgc2VydmVyIGJpbmFyeSBtdXN0IGJlIGdpdmVu
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvIC0td2ViZHJpdmVyLWJpbmFyeSBh
cmd1bWVudCIpCi0KLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLSAgICAgICAgc2VsZi5i
aW5hcnkgPSBiaW5hcnkKLSAgICAgICAgc2VsZi5ob3N0ID0gaG9zdAotCi0gICAgICAgIGlmIGJh
c2VfcGF0aCA9PSAiIjoKLSAgICAgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gc2VsZi5kZWZhdWx0
X2Jhc2VfcGF0aAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGggPSBi
YXNlX3BhdGgKLSAgICAgICAgc2VsZi5lbnYgPSBvcy5lbnZpcm9uLmNvcHkoKSBpZiBlbnYgaXMg
Tm9uZSBlbHNlIGVudgotCi0gICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gTm9uZQotICAg
ICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9jbWQgPSBOb25lCi0gICAgICAg
IHNlbGYuX2FyZ3MgPSBhcmdzIGlmIGFyZ3MgaXMgbm90IE5vbmUgZWxzZSBbXQotICAgICAgICBz
ZWxmLl9wcm9jID0gTm9uZQotCi0gICAgQGFiYy5hYnN0cmFjdG1ldGhvZAotICAgIGRlZiBtYWtl
X2NvbW1hbmQoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGZ1bGwgY29tbWFuZCBmb3Ig
c3RhcnRpbmcgdGhlIHNlcnZlciBwcm9jZXNzIGFzIGEgbGlzdC4iIiIKLQotICAgIGRlZiBzdGFy
dChzZWxmLAotICAgICAgICAgICAgICBibG9jaz1GYWxzZSwKLSAgICAgICAgICAgICAgb3V0cHV0
X2hhbmRsZXJfa3dhcmdzPU5vbmUsCi0gICAgICAgICAgICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0
X2t3YXJncz1Ob25lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcnVuKGJsb2Nr
LCBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MsIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncykKLSAg
ICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgc2VsZi5zdG9wKCkK
LQotICAgIGRlZiBfcnVuKHNlbGYsIGJsb2NrLCBvdXRwdXRfaGFuZGxlcl9rd2FyZ3MsIG91dHB1
dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyk6Ci0gICAgICAgIGlmIG91dHB1dF9oYW5kbGVyX2t3YXJn
cyBpcyBOb25lOgotICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfa3dhcmdzID0ge30KLSAgICAg
ICAgaWYgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzIGlzIE5vbmU6Ci0gICAgICAgICAgICBv
dXRwdXRfaGFuZGxlcl9zdGFydF9rd2FyZ3MgPSB7fQotICAgICAgICBzZWxmLl9jbWQgPSBzZWxm
Lm1ha2VfY29tbWFuZCgpCi0gICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyID0gc2VsZi5vdXRw
dXRfaGFuZGxlcl9jbHMoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY21kLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqb3V0cHV0X2hhbmRsZXJfa3dh
cmdzKQotICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlcigKLSAg
ICAgICAgICAgIHNlbGYuX2NtZCwKLSAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYu
X291dHB1dF9oYW5kbGVyLAotICAgICAgICAgICAgZW52PXNlbGYuZW52LAotICAgICAgICAgICAg
c3RvcmVPdXRwdXQ9RmFsc2UpCi0KLSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5n
IFdlYkRyaXZlcjogJXMiICUgJyAnLmpvaW4oc2VsZi5fY21kKSkKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fcHJvYy5ydW4oKQotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgot
ICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgSU9FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIldlYkRyaXZlciBleGVjdXRhYmxl
IG5vdCBmb3VuZDogJXMiICUgc2VsZi5iaW5hcnkpCi0gICAgICAgICAgICByYWlzZQotICAgICAg
ICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0YXJ0KHNlbGYuX3Byb2MucGlk
KQotCi0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgIldhaXRpbmcgZm9y
IFdlYkRyaXZlciB0byBiZWNvbWUgYWNjZXNzaWJsZTogJXMiICUgc2VsZi51cmwpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHdhaXRfZm9yX3NlcnZpY2UoKHNlbGYuaG9zdCwgc2VsZi5wb3J0
KSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVy
cm9yKAotICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgd2FzIG5vdCBhY2Nlc3NpYmxlICIKLSAg
ICAgICAgICAgICAgICAid2l0aGluIHRoZSB0aW1lb3V0OlxuJXMiICUgdHJhY2ViYWNrLmZvcm1h
dF9leGMoKSkKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVy
LnN0YXJ0KCoqb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQotICAgICAgICBpZiBibG9jazoK
LSAgICAgICAgICAgIHNlbGYuX3Byb2Mud2FpdCgpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSk6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wcGluZyBXZWJEcml2ZXIi
KQotICAgICAgICBjbGVhbiA9IFRydWUKLSAgICAgICAgaWYgc2VsZi5pc19hbGl2ZSgpOgotICAg
ICAgICAgICAga2lsbF9yZXN1bHQgPSBzZWxmLl9wcm9jLmtpbGwoKQotICAgICAgICAgICAgaWYg
Zm9yY2UgYW5kIGtpbGxfcmVzdWx0ICE9IDA6Ci0gICAgICAgICAgICAgICAgY2xlYW4gPSBGYWxz
ZQotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Mua2lsbCg5KQotICAgICAgICBzdWNjZXNzID0g
bm90IHNlbGYuaXNfYWxpdmUoKQotICAgICAgICBpZiBzdWNjZXNzIGFuZCBzZWxmLl9vdXRwdXRf
aGFuZGxlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICMgT25seSB0cnkgdG8gZG8gb3V0cHV0
IHBvc3QtcHJvY2Vzc2luZyBpZiB3ZSBtYW5hZ2VkIHRvIHNodXQgZG93bgotICAgICAgICAgICAg
c2VsZi5fb3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdG9wKGNsZWFuKQotICAgICAgICAg
ICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIgPSBOb25lCi0gICAgICAgIHJldHVybiBzdWNjZXNzCi0K
LSAgICBkZWYgaXNfYWxpdmUoc2VsZik6Ci0gICAgICAgIHJldHVybiBoYXNhdHRyKHNlbGYuX3By
b2MsICJwcm9jIikgYW5kIHNlbGYuX3Byb2MucG9sbCgpIGlzIE5vbmUKLQotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3Byb2MgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5waWQKLQotICAgIEBwcm9wZXJ0eQotICAg
IGRlZiB1cmwoc2VsZik6Ci0gICAgICAgIHJldHVybiAiaHR0cDovLyVzOiVpJXMiICUgKHNlbGYu
aG9zdCwgc2VsZi5wb3J0LCBzZWxmLmJhc2VfcGF0aCkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBwb3J0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9wb3J0IGlzIE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCi0gICAgICAgIHJldHVybiBzZWxmLl9wb3J0
Ci0KLQotY2xhc3MgU2VsZW5pdW1TZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWZhdWx0
X2Jhc2VfcGF0aCA9ICIvd2QvaHViIgotCi0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIFsiamF2YSIsICItamFyIiwgc2VsZi5iaW5hcnksICItcG9ydCIsIHN0cihz
ZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBDaHJvbWVEcml2ZXJTZXJ2ZXIoV2Vi
RHJpdmVyU2VydmVyKToKLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1
cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgIGNtZF9hcmcoInBvcnQiLCBzdHIoc2Vs
Zi5wb3J0KSksCi0gICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2UiLCBzZWxmLmJhc2Vf
cGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIiwKLSAgICAgICAgICAgICAgICBjbWRfYXJn
KCJlbmFibGUtY2hyb21lLWxvZ3MiKV0gKyBzZWxmLl9hcmdzCi0KLQotY2xhc3MgQ1dUQ2hyb21l
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKLSAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAgICAiLS1wb3J0
PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBFZGdlQ2hyb21p
dW1Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgbWFrZV9jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgIGNtZF9h
cmcoInBvcnQiLCBzdHIoc2VsZi5wb3J0KSksCi0gICAgICAgICAgICAgICAgY21kX2FyZygidXJs
LWJhc2UiLCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0gKyBzZWxm
Ll9hcmdzCi0KLQotY2xhc3MgRWRnZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAg
IGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCi0g
ICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdz
Ci0KLQotY2xhc3MgT3BlcmFEcml2ZXJTZXJ2ZXIoQ2hyb21lRHJpdmVyU2VydmVyKToKLSAgICBw
YXNzCi0KLWNsYXNzIEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVy
KToKLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gW3NlbGYuYmlu
YXJ5LAotICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2Vs
Zi5fYXJncwotCi0KLWNsYXNzIFNhZmFyaURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgot
ICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnks
Ci0gICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9h
cmdzCi0KLQotY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9InNlcnZvIiwgYmluYXJ5X2FyZ3M9Tm9u
ZSwgaG9zdD0iMTI3LjAuMC4xIiwKLSAgICAgICAgICAgICAgICAgcG9ydD1Ob25lLCBlbnY9Tm9u
ZSwgYXJncz1Ob25lKToKLSAgICAgICAgZW52ID0gZW52IGlmIGVudiBpcyBub3QgTm9uZSBlbHNl
IG9zLmVudmlyb24uY29weSgpCi0gICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgot
ICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0PWhvc3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0PXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbnY9ZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1h
cmdzKQotICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKLQotICAgIGRlZiBt
YWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIGNvbW1hbmQgPSBbc2VsZi5iaW5hcnksCi0gICAg
ICAgICAgICAgICAgICAgIi0td2ViZHJpdmVyPSVzIiAlIHNlbGYucG9ydCwKLSAgICAgICAgICAg
ICAgICAgICAiLS1oYXJkLWZhaWwiLAotICAgICAgICAgICAgICAgICAgICItLWhlYWRsZXNzIl0g
KyBzZWxmLl9hcmdzCi0gICAgICAgIGlmIHNlbGYuYmluYXJ5X2FyZ3M6Ci0gICAgICAgICAgICBj
b21tYW5kICs9IHNlbGYuYmluYXJ5X2FyZ3MKLSAgICAgICAgcmV0dXJuIGNvbW1hbmQKLQotCi1j
bGFzcyBXZWJLaXREcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKLSAgICBkZWYgbWFrZV9j
b21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LCAiLS1wb3J0PSVzIiAl
IHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKLQotCi1kZWYgY21kX2FyZyhuYW1lLCB2YWx1
ZT1Ob25lKToKLSAgICBwcmVmaXggPSAiLSIgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRv
d3MiIGVsc2UgIi0tIgotICAgIHJ2ID0gcHJlZml4ICsgbmFtZQotICAgIGlmIHZhbHVlIGlzIG5v
dCBOb25lOgotICAgICAgICBydiArPSAiPSIgKyB2YWx1ZQotICAgIHJldHVybiBydgotCi0KLWRl
ZiBnZXRfZnJlZV9wb3J0KCk6Ci0gICAgIiIiR2V0IGEgcmFuZG9tIHVuYm91bmQgcG9ydCIiIgot
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgICAgIGV4Y2VwdCBP
U0Vycm9yOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHMuY2xvc2UoKQotCi0KLWRlZiB3YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjApOgot
ICAgICIiIldhaXRzIHVudGlsIG5ldHdvcmsgc2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mICho
b3N0LCBwb3J0KSBiZWNvbWVzCi0gICAgYXZhaWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRp
b24gaXMgcmVhY2hlZCwgYXQgd2hpY2ggcG9pbnQKLSAgICBgYHNvY2tldC50aW1lb3V0YGAgaXMg
cmFpc2VkLiIiIgotICAgIGVuZCA9IHRpbWUudGltZSgpICsgdGltZW91dAotICAgIHdoaWxlIGVu
ZCA+IHRpbWUudGltZSgpOgotICAgICAgICBzbyA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzby5jb25uZWN0KGFkZHIpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQu
dGltZW91dDoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToK
LSAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgotICAgICAgICAg
ICAgICAgIHJhaXNlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAg
ICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc28uY2xvc2UoKQotICAgICAgICB0aW1lLnNsZWVw
KDAuNSkKLSAgICByYWlzZSBzb2NrZXQudGltZW91dCgiU2VydmljZSBpcyB1bmF2YWlsYWJsZTog
JXM6JWkiICUgYWRkcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weQppbmRleCA4YzlkNDY0NzZiZjhiMTMw
NzRmN2M1ZTliYzIwMWQ2ZGQ2YTg0ZGMzLi5jZTUwYjNlNzA1OTNjNDVkZWYwM2VhMWJiYmMxOGE1
OTcxNjA3NWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CkBAIC0xMTYsNiArMTE2LDEwIEBAIHNj
aGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iVGhlIG1heGltdW0g
bnVtYmVyIG9mIG1pbnV0ZXMgZm9yIHRoZSBqb2IgdG8gcnVuIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPWxhbWJkYSB4OiB0aW1lZGVsdGEobWludXRlcz1mbG9hdCh4KSkpCisg
ICAgbW9kZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tcmVwZWF0LW1heC10aW1lIiwgYWN0aW9uPSJz
dG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0xMDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbnV0ZXMg
Zm9yIHRoZSB0ZXN0IHN1aXRlIHRvIGF0dGVtcHQgcmVwZWF0IHJ1bnMiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9aW50KQogICAgIG91dHB1dF9yZXN1bHRzX2dyb3VwID0gbW9k
ZV9ncm91cC5hZGRfbXV0dWFsbHlfZXhjbHVzaXZlX2dyb3VwKCkKICAgICBvdXRwdXRfcmVzdWx0
c19ncm91cC5hZGRfYXJndW1lbnQoIi0tdmVyaWZ5LW5vLW91dHB1dC1yZXN1bHRzIiwgYWN0aW9u
PSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9InZlcmlmeV9vdXRwdXRfcmVzdWx0cyIsCkBAIC0xOTEsNiArMTk1LDE2IEBAIHNjaGVtZSBo
b3N0IGFuZCBwb3J0LiIiIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBk
YiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJEcm9wIGludG8gcGRiIG9uIHB5dGhvbiBleGNlcHRpb24iKQogCisgICAgYW5kcm9p
ZF9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIkFuZHJvaWQgc3BlY2lmaWMgYXJn
dW1lbnRzIikKKyAgICBhbmRyb2lkX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5Iiwg
YWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFk
YiBiaW5hcnkgdG8gdXNlIikKKyAgICBhbmRyb2lkX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1wYWNr
YWdlLW5hbWUiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
IkFuZHJvaWQgcGFja2FnZSBuYW1lIHRvIHJ1biB0ZXN0cyBhZ2FpbnN0IikKKyAgICBhbmRyb2lk
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1rZWVwLWFwcC1kYXRhLWRpcmVjdG9yeSIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBkZWxldGUg
dGhlIGFwcCBkYXRhIGRpcmVjdG9yeSIpCisgICAgYW5kcm9pZF9ncm91cC5hZGRfYXJndW1lbnQo
Ii0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0iYXBwZW5kIiwgZGVmYXVsdD1bXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlJ1bm5pbmcgQW5kcm9pZCBpbnN0YW5jZXMgdG8gY29ubmVj
dCB0bywgaWYgbm90IGVtdWxhdG9yLTU1NTQiKQorCiAgICAgY29uZmlnX2dyb3VwID0gcGFyc2Vy
LmFkZF9hcmd1bWVudF9ncm91cCgiQ29uZmlndXJhdGlvbiIpCiAgICAgY29uZmlnX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9YWJzX3BhdGgsIGhlbHA9IkRlc2t0b3AgYmluYXJ5IHRvIHJ1biB0
ZXN0cyBhZ2FpbnN0IikKQEAgLTIwMiwxMiArMjE2LDYgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQu
IiIiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoJy0td2ViZHJpdmVyLWFyZycsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLCBhY3Rpb249ImFwcGVuZCIs
IGRlc3Q9IndlYmRyaXZlcl9hcmdzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IkV4dHJhIGFyZ3VtZW50IGZvciB0aGUgV2ViRHJpdmVyIGJpbmFyeSIpCi0gICAgY29uZmln
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1hZGItYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGFkYiBiaW5hcnkgdG8gdXNl
IikKLSAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlv
bj0ic3RvcmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBw
YWNrYWdlIG5hbWUgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQotICAgIGNvbmZpZ19ncm91cC5hZGRf
YXJndW1lbnQoIi0tZGV2aWNlLXNlcmlhbCIsIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iUnVubmluZyBBbmRyb2lkIGluc3RhbmNlIHRvIGNvbm5l
Y3QgdG8sIGlmIG5vdCBlbXVsYXRvci01NTU0IikKICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLW1ldGFkYXRhIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9Im1l
dGFkYXRhX3Jvb3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0
byByb290IGRpcmVjdG9yeSBjb250YWluaW5nIHRlc3QgbWV0YWRhdGEiKSwKICAgICBjb25maWdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLXRlc3RzIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3Bh
dGgsIGRlc3Q9InRlc3RzX3Jvb3QiLApAQCAtNTQ0LDYgKzU1MiwxOCBAQCBkZWYgY2hlY2tfYXJn
cyhrd2FyZ3MpOgogICAgICAgICAgICAgcHJpbnQoIi0tdGVzdC1ncm91cHMgZmlsZSAlcyBub3Qg
Zm91bmQiICUga3dhcmdzWyJ0ZXN0X2dyb3Vwc19maWxlIl0pCiAgICAgICAgICAgICBzeXMuZXhp
dCgxKQogCisgICAgIyBXaGVuIHJ1bm5pbmcgb24gQW5kcm9pZCwgdGhlIG51bWJlciBvZiB3b3Jr
ZXJzIGlzIGRlY2lkZWQgYnkgdGhlIG51bWJlciBvZgorICAgICMgZW11bGF0b3JzLiBFYWNoIHdv
cmtlciB3aWxsIHVzZSBvbmUgZW11bGF0b3IgdG8gcnVuIHRoZSBBbmRyb2lkIGJyb3dzZXIuCisg
ICAgaWYga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl06CisgICAgICAgIGlmIGt3YXJnc1sicHJvY2Vz
c2VzIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1sicHJvY2Vzc2VzIl0gPSBsZW4oa3dh
cmdzWyJkZXZpY2Vfc2VyaWFsIl0pCisgICAgICAgIGVsaWYgbGVuKGt3YXJnc1siZGV2aWNlX3Nl
cmlhbCJdKSAhPSBrd2FyZ3NbInByb2Nlc3NlcyJdOgorICAgICAgICAgICAgcHJpbnQoIi0tcHJv
Y2Vzc2VzIGRvZXMgbm90IG1hdGNoIG51bWJlciBvZiBkZXZpY2VzIikKKyAgICAgICAgICAgIHN5
cy5leGl0KDEpCisgICAgICAgIGVsaWYgbGVuKHNldChrd2FyZ3NbImRldmljZV9zZXJpYWwiXSkp
ICE9IGxlbihrd2FyZ3NbImRldmljZV9zZXJpYWwiXSk6CisgICAgICAgICAgICBwcmludCgiR290
IGR1cGxpY2F0ZSAtLWRldmljZS1zZXJpYWwgdmFsdWUiKQorICAgICAgICAgICAgc3lzLmV4aXQo
MSkKKwogICAgIGlmIGt3YXJnc1sicHJvY2Vzc2VzIl0gaXMgTm9uZToKICAgICAgICAga3dhcmdz
WyJwcm9jZXNzZXMiXSA9IDEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L2JhY2tlbmRzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRz
L19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMy
MDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9fX2luaXRfXy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAot
IyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rv
cnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyZDIwZmFlMDIzMjhjZTBkODg3ZjIzMmM1MmNkZTY3YzFmNWQwZGNj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5k
cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9iYXNlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRpYy5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNm
ZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUz
OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKQEAgLTEg
KzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhp
cyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxZGM3ZjJmZjBhMTIyYmZhMWI3NzcwMzMxOWRmY2UzZWY1M2I0
MTM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRpdGlv
bmFsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTNlM2RkNWQw
OWM0MGI2MmMzYzE0MDViMDU5ODViNDdkZjBjMDcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93cHRtYW5pZmVzdC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2Rl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVu
bmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQppbmRleCA3NmVmM2RiYzk5MDFjYWI0
ODc0Yzc1ZTJiMDY0MzFjMzM3Y2NmMTMxLi40MjAzMWNlOWFkN2Y2ZTUxNGY4ZGM4Yzg5MDY5ODIy
YTNhODE3OGVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRydW5uZXIucHkKQEAgLTEsNiArMSw3IEBACiBpbXBvcnQganNvbgogaW1w
b3J0IG9zCiBpbXBvcnQgc3lzCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRl
bHRhCiAKIGltcG9ydCB3cHRzZXJ2ZQogZnJvbSB3cHRzZXJ2ZSBpbXBvcnQgc3NsdXRpbHMKQEAg
LTE1MCw2ICsxNTEsMTM0IEBAIGRlZiBnZXRfcGF1c2VfYWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwg
Kiprd2FyZ3MpOgogICAgIHJldHVybiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXQogCiAKK2Rl
ZiBydW5fdGVzdF9pdGVyYXRpb24odGVzdF9zdGF0dXMsIHRlc3RfbG9hZGVyLCB0ZXN0X3NvdXJj
ZV9rd2FyZ3MsIHRlc3Rfc291cmNlX2NscywgcnVuX2luZm8sCisgICAgICAgICAgICAgICAgICAg
ICAgIHJlY29yZGluZywgdGVzdF9lbnZpcm9ubWVudCwgcHJvZHVjdCwgcnVuX3Rlc3Rfa3dhcmdz
KToKKyAgICAiIiJSdW5zIHRoZSBlbnRpcmUgdGVzdCBzdWl0ZS4KKyAgICBUaGlzIGlzIGNhbGxl
ZCBmb3IgZWFjaCByZXBlYXQgcnVuIHJlcXVlc3RlZC4iIiIKKyAgICB0ZXN0cyA9IFtdCisgICAg
Zm9yIHRlc3RfdHlwZSBpbiB0ZXN0X2xvYWRlci50ZXN0X3R5cGVzOgorICAgICAgICB0ZXN0cy5l
eHRlbmQodGVzdF9sb2FkZXIudGVzdHNbdGVzdF90eXBlXSkKKworICAgIHRyeToKKyAgICAgICAg
dGVzdF9ncm91cHMgPSB0ZXN0X3NvdXJjZV9jbHMudGVzdHNfYnlfZ3JvdXAoCisgICAgICAgICAg
ICB0ZXN0cywgKip0ZXN0X3NvdXJjZV9rd2FyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAg
ICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJMb2FkaW5nIHRlc3RzIGZhaWxlZCIpCisgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KHRlc3RfZ3JvdXBzLAorICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lPSd3ZWItcGxhdGZvcm0tdGVzdCcsCisgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bl9pbmZvPXJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICBleHRy
YT17InJ1bl9ieV9kaXIiOiBydW5fdGVzdF9rd2FyZ3NbInJ1bl9ieV9kaXIiXX0pCisgICAgZm9y
IHRlc3RfdHlwZSBpbiBydW5fdGVzdF9rd2FyZ3NbInRlc3RfdHlwZXMiXToKKyAgICAgICAgbG9n
Z2VyLmluZm8oZiJSdW5uaW5nIHt0ZXN0X3R5cGV9IHRlc3RzIikKKworICAgICAgICBicm93c2Vy
X2NscyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfY2xzKHRlc3RfdHlwZSkKKworICAgICAgICBicm93
c2VyX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdzKGxvZ2dlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3R5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2lu
Zm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV90ZXN0X2dyb3Vwcz1sZW4odGVzdF9ncm91
cHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICoqcnVuX3Rlc3Rfa3dhcmdzKQorCisgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhl
Y3V0b3JfY2xhc3Nlcy5nZXQodGVzdF90eXBlKQorICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBw
cm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3MobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKipydW5fdGVzdF9rd2FyZ3MpCisKKyAgICAgICAgaWYgZXhlY3V0b3JfY2xzIGlz
IE5vbmU6CisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZiJVbnN1cHBvcnRlZCB0ZXN0IHR5cGUg
e3Rlc3RfdHlwZX0gZm9yIHByb2R1Y3Qge3Byb2R1Y3QubmFtZX0iKQorICAgICAgICAgICAgY29u
dGludWUKKworICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0c1t0
ZXN0X3R5cGVdOgorICAgICAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKKyAgICAg
ICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9IlNLSVAiKQorICAgICAgICAg
ICAgdGVzdF9zdGF0dXMuc2tpcHBlZCArPSAxCisKKyAgICAgICAgaWYgdGVzdF90eXBlID09ICJ0
ZXN0aGFybmVzcyI6CisgICAgICAgICAgICBydW5fdGVzdHMgPSB7InRlc3RoYXJuZXNzIjogW119
CisgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0c1sidGVzdGhhcm5lc3Mi
XToKKyAgICAgICAgICAgICAgICBpZiAoKHRlc3QudGVzdGRyaXZlciBhbmQgbm90IGV4ZWN1dG9y
X2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgKHRl
c3QuanNzaGVsbCBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c19qc3NoZWxsKSk6CisgICAg
ICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCisgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9IlNLSVAiKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0X3N0YXR1cy5za2lwcGVkICs9IDEKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBydW5fdGVzdHNbInRlc3RoYXJuZXNzIl0uYXBwZW5kKHRl
c3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydW5fdGVzdHMgPSB0ZXN0X2xvYWRlci50
ZXN0cworCisgICAgICAgIHJlY29yZGluZy5wYXVzZSgpCisgICAgICAgIHdpdGggTWFuYWdlckdy
b3VwKCJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBydW5f
dGVzdF9rd2FyZ3NbInByb2Nlc3NlcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3NvdXJjZV9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc291cmNlX2t3YXJn
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGVjdXRvcl9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3Rfa3dhcmdzWyJyZXJ1biJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5fdGVzdF9rd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3Qi
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3Rfa3dhcmdzWyJwYXVzZV9vbl91
bmV4cGVjdGVkIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0X2t3YXJnc1si
cmVzdGFydF9vbl91bmV4cGVjdGVkIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90
ZXN0X2t3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qg
cnVuX3Rlc3Rfa3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY29yZGluZz1yZWNvcmRpbmcpIGFzIG1hbmFnZXJfZ3JvdXA6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5ydW4odGVzdF90eXBlLCBydW5f
dGVzdHMpCisgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAg
ICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJNYWluIHRocmVhZCBnb3Qgc2lnbmFsIikKKyAgICAgICAg
ICAgICAgICBtYW5hZ2VyX2dyb3VwLnN0b3AoKQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAg
ICAgICAgICB0ZXN0X3N0YXR1cy50b3RhbF90ZXN0cyArPSBtYW5hZ2VyX2dyb3VwLnRlc3RfY291
bnQoKQorICAgICAgICAgICAgdGVzdF9zdGF0dXMudW5leHBlY3RlZCArPSBtYW5hZ2VyX2dyb3Vw
LnVuZXhwZWN0ZWRfY291bnQoKQorICAgICAgICAgICAgdGVzdF9zdGF0dXMudW5leHBlY3RlZF9w
YXNzICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9wYXNzX2NvdW50KCkKKworICAgIHJldHVy
biBUcnVlCisKKworZGVmIGV2YWx1YXRlX3J1bnModGVzdF9zdGF0dXMsIHJ1bl90ZXN0X2t3YXJn
cyk6CisgICAgIiIiRXZhbHVhdGVzIHRoZSB0ZXN0IGNvdW50cyBhZnRlciB0aGUgZ2l2ZW4gbnVt
YmVyIG9mIHJlcGVhdCBydW5zIGhhcyBmaW5pc2hlZCIiIgorICAgIGlmIHRlc3Rfc3RhdHVzLnRv
dGFsX3Rlc3RzID09IDA6CisgICAgICAgIGlmIHRlc3Rfc3RhdHVzLnNraXBwZWQgPiAwOgorICAg
ICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkFsbCByZXF1ZXN0ZWQgdGVzdHMgd2VyZSBza2lwcGVk
IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHJ1bl90ZXN0X2t3YXJnc1siZGVmYXVs
dF9leGNsdWRlIl06CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk5vIHRlc3RzIHJhbiIp
CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJObyB0ZXN0cyByYW4iKQorICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgaWYgdGVzdF9zdGF0dXMudW5leHBlY3RlZCBhbmQgbm90IHJ1
bl90ZXN0X2t3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkIl06CisgICAgICAgIGxvZ2dlci5pbmZv
KGYiVG9sZXJhdGluZyB7dGVzdF9zdGF0dXMudW5leHBlY3RlZH0gdW5leHBlY3RlZCByZXN1bHRz
IikKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCA9ICh0
ZXN0X3N0YXR1cy51bmV4cGVjdGVkIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3N0YXR1cy51bmV4cGVjdGVkID09IHRlc3Rfc3RhdHVzLnVuZXhwZWN0ZWRfcGFzcykKKyAg
ICBpZiBhbGxfdW5leHBlY3RlZF9wYXNzZWQgYW5kIG5vdCBydW5fdGVzdF9rd2FyZ3NbImZhaWxf
b25fdW5leHBlY3RlZF9wYXNzIl06CisgICAgICAgIGxvZ2dlci5pbmZvKGYiVG9sZXJhdGluZyB7
dGVzdF9zdGF0dXMudW5leHBlY3RlZF9wYXNzfSB1bmV4cGVjdGVkIHJlc3VsdHMgIgorICAgICAg
ICAgICAgICAgICAgICAiYmVjYXVzZSB0aGV5IGFsbCBQQVNTIikKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgIHJldHVybiB0ZXN0X3N0YXR1cy51bmV4cGVjdGVkID09IDAKKworCitjbGFzcyBU
ZXN0U3RhdHVzOgorICAgICIiIkNsYXNzIHRoYXQgc3RvcmVzIGluZm9ybWF0aW9uIG9uIHRoZSBy
ZXN1bHRzIG9mIHRlc3QgcnVucyBmb3IgbGF0ZXIgcmVmZXJlbmNlIiIiCisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBzZWxmLnRvdGFsX3Rlc3RzID0gMAorICAgICAgICBzZWxmLnNr
aXBwZWQgPSAwCisgICAgICAgIHNlbGYudW5leHBlY3RlZCA9IDAKKyAgICAgICAgc2VsZi51bmV4
cGVjdGVkX3Bhc3MgPSAwCisgICAgICAgIHNlbGYucmVwZWF0ZWRfcnVucyA9IDAKKyAgICAgICAg
c2VsZi5leHBlY3RlZF9yZXBlYXRlZF9ydW5zID0gMAorICAgICAgICBzZWxmLmFsbF9za2lwcGVk
ID0gRmFsc2UKKworCiBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwg
Kiprd2FyZ3MpOgogICAgICIiIlNldCB1cCB0aGUgdGVzdCBlbnZpcm9ubWVudCwgbG9hZCB0aGUg
bGlzdCBvZiB0ZXN0cyB0byBiZSBleGVjdXRlZCwgYW5kCiAgICAgaW52b2tlIHRoZSByZW1haW5k
ZXIgb2YgdGhlIGNvZGUgdG8gZXhlY3V0ZSB0ZXN0cyIiIgpAQCAtMTk2LDE3ICszMjUsMTYgQEAg
ZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAog
ICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgJWkgY2xpZW50IHByb2Nlc3NlcyIgJSBrd2FyZ3Nb
InByb2Nlc3NlcyJdKQogCi0gICAgICAgIHNraXBwZWRfdGVzdHMgPSAwCi0gICAgICAgIHRlc3Rf
dG90YWwgPSAwCi0gICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPSAwCi0gICAgICAgIHVuZXhwZWN0
ZWRfcGFzc190b3RhbCA9IDAKKyAgICAgICAgdGVzdF9zdGF0dXMgPSBUZXN0U3RhdHVzKCkKKyAg
ICAgICAgcmVwZWF0ID0ga3dhcmdzWyJyZXBlYXQiXQorICAgICAgICB0ZXN0X3N0YXR1cy5leHBl
Y3RlZF9yZXBlYXQgPSByZXBlYXQKIAogICAgICAgICBpZiBsZW4odGVzdF9sb2FkZXIudGVzdF9p
ZHMpID09IDAgYW5kIGt3YXJnc1sidGVzdF9saXN0Il06CiAgICAgICAgICAgICBsb2dnZXIuY3Jp
dGljYWwoIlVuYWJsZSB0byBmaW5kIGFueSB0ZXN0cyBhdCB0aGUgcGF0aChzKToiKQogICAgICAg
ICAgICAgZm9yIHBhdGggaW4ga3dhcmdzWyJ0ZXN0X2xpc3QiXToKICAgICAgICAgICAgICAgICBs
b2dnZXIuY3JpdGljYWwoIiAgJXMiICUgcGF0aCkKICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNh
bCgiUGxlYXNlIGNoZWNrIHNwZWxsaW5nIGFuZCBtYWtlIHN1cmUgdGhlcmUgYXJlIHRlc3RzIGlu
IHRoZSBzcGVjaWZpZWQgcGF0aChzKS4iKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UsIHRlc3Rfc3RhdHVzCiAgICAgICAgIGt3YXJnc1sicGF1c2Vf
YWZ0ZXJfdGVzdCJdID0gZ2V0X3BhdXNlX2FmdGVyX3Rlc3QodGVzdF9sb2FkZXIsICoqa3dhcmdz
KQogCiAgICAgICAgIHNzbF9jb25maWcgPSB7InR5cGUiOiBrd2FyZ3NbInNzbF90eXBlIl0sCkBA
IC0yMzUsMTQzICszNjMsNjYgQEAgZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHBy
b2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAgICAgIHJlY29yZGluZy5zZXQoWyJzdGFydHVwIiwg
ImVuc3VyZV9lbnZpcm9ubWVudCJdKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
IHRlc3RfZW52aXJvbm1lbnQuZW5zdXJlX3N0YXJ0ZWQoKQorICAgICAgICAgICAgICAgIHN0YXJ0
X3RpbWUgPSBkYXRldGltZS5ub3coKQogICAgICAgICAgICAgZXhjZXB0IGVudi5UZXN0RW52aXJv
bm1lbnRFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRXJyb3Ig
c3RhcnRpbmcgdGVzdCBlbnZpcm9ubWVudDogJXMiICUgZSkKICAgICAgICAgICAgICAgICByYWlz
ZQogCiAgICAgICAgICAgICByZWNvcmRpbmcuc2V0KFsic3RhcnR1cCJdKQogCi0gICAgICAgICAg
ICByZXBlYXQgPSBrd2FyZ3NbInJlcGVhdCJdCi0gICAgICAgICAgICByZXBlYXRfY291bnQgPSAw
CisgICAgICAgICAgICBtYXhfdGltZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJyZXBlYXRfbWF4
X3RpbWUiIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICBtYXhfdGltZSA9IHRpbWVkZWx0YSht
aW51dGVzPWt3YXJnc1sicmVwZWF0X21heF90aW1lIl0pCisKICAgICAgICAgICAgIHJlcGVhdF91
bnRpbF91bmV4cGVjdGVkID0ga3dhcmdzWyJyZXBlYXRfdW50aWxfdW5leHBlY3RlZCJdCiAKLSAg
ICAgICAgICAgIHdoaWxlIHJlcGVhdF9jb3VudCA8IHJlcGVhdCBvciByZXBlYXRfdW50aWxfdW5l
eHBlY3RlZDoKLSAgICAgICAgICAgICAgICByZXBlYXRfY291bnQgKz0gMQorICAgICAgICAgICAg
IyBrZWVwIHRyYWNrIG9mIGxvbmdlc3QgdGltZSB0YWtlbiB0byBjb21wbGV0ZSBhIHRlc3Qgc3Vp
dGUgaXRlcmF0aW9uCisgICAgICAgICAgICAjIHNvIHRoYXQgdGhlIHJ1bnMgY2FuIGJlIHN0b3Bw
ZWQgdG8gYXZvaWQgYSBwb3NzaWJsZSBUQyB0aW1lb3V0LgorICAgICAgICAgICAgbG9uZ2VzdF9p
dGVyYXRpb25fdGltZSA9IHRpbWVkZWx0YSgpCisKKyAgICAgICAgICAgIHdoaWxlIHRlc3Rfc3Rh
dHVzLnJlcGVhdGVkX3J1bnMgPCByZXBlYXQgb3IgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQ6Cisg
ICAgICAgICAgICAgICAgIyBpZiB0aGUgbmV4dCByZXBlYXQgcnVuIGNvdWxkIGNhdXNlIHRoZSBU
QyB0aW1lb3V0IHRvIGJlIHJlYWNoZWQsCisgICAgICAgICAgICAgICAgIyBzdG9wIG5vdyBhbmQg
dXNlIHRoZSB0ZXN0IHJlc3VsdHMgd2UgaGF2ZS4KKyAgICAgICAgICAgICAgICAjIFBhZCB0aGUg
dG90YWwgdGltZSBieSAxMCUgdG8gZW5zdXJlIGFtcGxlIHRpbWUgZm9yIHRoZSBuZXh0IGl0ZXJh
dGlvbihzKS4KKyAgICAgICAgICAgICAgICBlc3RpbWF0ZSA9IChkYXRldGltZS5ub3coKSArCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZWRlbHRhKHNlY29uZHM9KGxvbmdlc3RfaXRl
cmF0aW9uX3RpbWUudG90YWxfc2Vjb25kcygpICogMS4xKSkpCisgICAgICAgICAgICAgICAgaWYg
bm90IHJlcGVhdF91bnRpbF91bmV4cGVjdGVkIGFuZCBtYXhfdGltZSBhbmQgZXN0aW1hdGUgPj0g
c3RhcnRfdGltZSArIG1heF90aW1lOgorICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhm
IlJhbiB7dGVzdF9zdGF0dXMucmVwZWF0ZWRfcnVuc30gb2Yge3JlcGVhdH0gaXRlcmF0aW9ucy4i
KQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAgIyBiZWdpbiB0
cmFja2luZyBydW50aW1lIG9mIHRoZSB0ZXN0IHN1aXRlCisgICAgICAgICAgICAgICAgaXRlcmF0
aW9uX3N0YXJ0ID0gZGF0ZXRpbWUubm93KCkKKyAgICAgICAgICAgICAgICB0ZXN0X3N0YXR1cy5y
ZXBlYXRlZF9ydW5zICs9IDEKICAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50aWxfdW5leHBl
Y3RlZDoKLSAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJlcGV0aXRpb24gJWkiICUg
KHJlcGVhdF9jb3VudCkpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGYiUmVwZXRp
dGlvbiB7dGVzdF9zdGF0dXMucmVwZWF0ZWRfcnVuc30iKQogICAgICAgICAgICAgICAgIGVsaWYg
cmVwZWF0ID4gMToKLSAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJlcGV0aXRpb24g
JWkgLyAlaSIgJSAocmVwZWF0X2NvdW50LCByZXBlYXQpKQotCi0gICAgICAgICAgICAgICAgdGVz
dF9jb3VudCA9IDAKLSAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ID0gMAotICAgICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfcGFzc19jb3VudCA9IDAKLQotICAgICAgICAgICAgICAgIHRl
c3RzID0gW10KLSAgICAgICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9hZGVyLnRl
c3RfdHlwZXM6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RzLmV4dGVuZCh0ZXN0X2xvYWRlci50
ZXN0c1t0ZXN0X3R5cGVdKQotCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
ICAgICB0ZXN0X2dyb3VwcyA9IHRlc3Rfc291cmNlX2Nscy50ZXN0c19ieV9ncm91cCh0ZXN0cywg
Kip0ZXN0X3NvdXJjZV9rd2FyZ3MpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
LSAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJMb2FkaW5nIHRlc3RzIGZhaWxl
ZCIpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICAgICAg
bG9nZ2VyLnN1aXRlX3N0YXJ0KHRlc3RfZ3JvdXBzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lPSd3ZWItcGxhdGZvcm0tdGVzdCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXJ1bl9pbmZvLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHRyYT17InJ1bl9ieV9kaXIiOiBrd2FyZ3NbInJ1bl9ieV9kaXIiXX0p
Ci0gICAgICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSBpbiBrd2FyZ3NbInRlc3RfdHlwZXMiXToK
LSAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcgJXMgdGVzdHMiICUgdGVz
dF90eXBlKQotCi0gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gcHJvZHVjdC5nZXRf
YnJvd3Nlcl9jbHModGVzdF90eXBlKQotCi0gICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dh
cmdzID0gcHJvZHVjdC5nZXRfYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5faW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9dGVzdF9lbnZpcm9ubWVudC5jb25m
aWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbnVtX3Rlc3RfZ3JvdXBzPWxlbih0ZXN0X2dyb3VwcyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpCi0KLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3JfY2xzID0gcHJvZHVjdC5leGVj
dXRvcl9jbGFzc2VzLmdldCh0ZXN0X3R5cGUpCi0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9y
X2t3YXJncyA9IHByb2R1Y3QuZ2V0X2V4ZWN1dG9yX2t3YXJncyhsb2dnZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqKmt3YXJncykKLQotICAgICAgICAgICAgICAgICAgICBpZiBleGVjdXRvcl9j
bHMgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiVW5zdXBw
b3J0ZWQgdGVzdCB0eXBlICVzIGZvciBwcm9kdWN0ICVzIiAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRlc3RfdHlwZSwgcHJvZHVjdC5uYW1lKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4g
dGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHNbdGVzdF90eXBlXToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBsb2dnZXIudGVzdF9lbmQodGVzdC5pZCwgc3RhdHVzPSJTS0lQIikKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHNraXBwZWRfdGVzdHMgKz0gMQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHRl
c3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgotICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rl
c3RzID0geyJ0ZXN0aGFybmVzcyI6IFtdfQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRl
c3QgaW4gdGVzdF9sb2FkZXIudGVzdHNbInRlc3RoYXJuZXNzIl06Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCh0ZXN0LnRlc3Rkcml2ZXIgYW5kIG5vdCBleGVjdXRvcl9jbHMuc3Vw
cG9ydHNfdGVzdGRyaXZlcikgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRl
c3QuanNzaGVsbCBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c19qc3NoZWxsKSk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBz
dGF0dXM9IlNLSVAiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkX3Rl
c3RzICs9IDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5fdGVzdHNbInRlc3RoYXJuZXNzIl0uYXBwZW5kKHRlc3Qp
Ci0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBydW5f
dGVzdHMgPSB0ZXN0X2xvYWRlci50ZXN0cwotCi0gICAgICAgICAgICAgICAgICAgIHJlY29yZGlu
Zy5wYXVzZSgpCi0gICAgICAgICAgICAgICAgICAgIHdpdGggTWFuYWdlckdyb3VwKCJ3ZWItcGxh
dGZvcm0tdGVzdHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3NbInByb2Nlc3NlcyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3NvdXJjZV9jbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3Rfc291cmNlX2t3YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3Nlcl9jbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dz
ZXJfa3dhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRv
cl9jbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3
YXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJyZXJ1
biJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNl
X2FmdGVyX3Rlc3QiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dh
cmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1sicmVzdGFydF9vbl91bmV4cGVjdGVkIl0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlv
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZGluZz1yZWNv
cmRpbmcpIGFzIG1hbmFnZXJfZ3JvdXA6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5ydW4odGVzdF90eXBlLCBy
dW5fdGVzdHMpCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1
cHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJNYWluIHRo
cmVhZCBnb3Qgc2lnbmFsIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyX2dy
b3VwLnN0b3AoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCi0g
ICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAu
dW5leHBlY3RlZF9jb3VudCgpCi0gICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bh
c3NfY291bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX3Bhc3NfY291bnQoKQorICAgICAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhmIlJlcGV0aXRpb24ge3Rlc3Rfc3RhdHVzLnJlcGVh
dGVkX3J1bnN9IC8ge3JlcGVhdH0iKQorCisgICAgICAgICAgICAgICAgaXRlcl9zdWNjZXNzID0g
cnVuX3Rlc3RfaXRlcmF0aW9uKHRlc3Rfc3RhdHVzLCB0ZXN0X2xvYWRlciwgdGVzdF9zb3VyY2Vf
a3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3NvdXJjZV9jbHMsIHJ1bl9pbmZvLCByZWNvcmRpbmcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZW52aXJvbm1lbnQsIHByb2R1
Y3QsIGt3YXJncykKKyAgICAgICAgICAgICAgICAjIGlmIHRoZXJlIHdlcmUgaXNzdWVzIHdpdGgg
dGhlIHN1aXRlIHJ1bih0ZXN0cyBub3QgbG9hZGVkLCBldGMuKSByZXR1cm4KKyAgICAgICAgICAg
ICAgICBpZiBub3QgaXRlcl9zdWNjZXNzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UsIHRlc3Rfc3RhdHVzCiAgICAgICAgICAgICAgICAgcmVjb3JkaW5nLnNldChbImFmdGVyLWVu
ZCJdKQotICAgICAgICAgICAgICAgIHRlc3RfdG90YWwgKz0gdGVzdF9jb3VudAotICAgICAgICAg
ICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgKz0gdW5leHBlY3RlZF9jb3VudAotICAgICAgICAgICAg
ICAgIHVuZXhwZWN0ZWRfcGFzc190b3RhbCArPSB1bmV4cGVjdGVkX3Bhc3NfY291bnQKLSAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiR290ICVpIHVuZXhwZWN0ZWQgcmVzdWx0cywgd2l0aCAl
aSB1bmV4cGVjdGVkIHBhc3NlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmV4
cGVjdGVkX2NvdW50LCB1bmV4cGVjdGVkX3Bhc3NfY291bnQpKQorICAgICAgICAgICAgICAgIGxv
Z2dlci5pbmZvKGYiR290IHt0ZXN0X3N0YXR1cy51bmV4cGVjdGVkfSB1bmV4cGVjdGVkIHJlc3Vs
dHMsICIKKyAgICAgICAgICAgICAgICAgICAgZiJ3aXRoIHt0ZXN0X3N0YXR1cy51bmV4cGVjdGVk
X3Bhc3N9IHVuZXhwZWN0ZWQgcGFzc2VzIikKICAgICAgICAgICAgICAgICBsb2dnZXIuc3VpdGVf
ZW5kKCkKLSAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50aWxfdW5leHBlY3RlZCBhbmQgdW5l
eHBlY3RlZF90b3RhbCA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICAgICAgaWYgcmVwZWF0X2NvdW50ID09IDEgYW5kIGxlbih0ZXN0X2xvYWRlci50ZXN0X2lkcykg
PT0gc2tpcHBlZF90ZXN0czoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgIGlmIHRl
c3RfdG90YWwgPT0gMDoKLSAgICAgICAgaWYgc2tpcHBlZF90ZXN0cyA+IDA6Ci0gICAgICAgICAg
ICBsb2dnZXIud2FybmluZygiQWxsIHJlcXVlc3RlZCB0ZXN0cyB3ZXJlIHNraXBwZWQiKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYga3dhcmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXToKLSAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiTm8gdGVzdHMgcmFuIikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBsb2dnZXIu
Y3JpdGljYWwoIk5vIHRlc3RzIHJhbiIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAK
LSAgICBpZiB1bmV4cGVjdGVkX3RvdGFsIGFuZCBub3Qga3dhcmdzWyJmYWlsX29uX3VuZXhwZWN0
ZWQiXToKLSAgICAgICAgbG9nZ2VyLmluZm8oIlRvbGVyYXRpbmcgJXMgdW5leHBlY3RlZCByZXN1
bHRzIiAlIHVuZXhwZWN0ZWRfdG90YWwpCi0gICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAg
ICAgICAgIyBOb3RlIHRoaXMgaXRlcmF0aW9uJ3MgcnVudGltZQorICAgICAgICAgICAgICAgIGl0
ZXJhdGlvbl9ydW50aW1lID0gZGF0ZXRpbWUubm93KCkgLSBpdGVyYXRpb25fc3RhcnQKKyAgICAg
ICAgICAgICAgICAjIGRldGVybWluZSB0aGUgbG9uZ2VzdCB0ZXN0IHN1aXRlIHJ1bnRpbWUgc2Vl
bi4KKyAgICAgICAgICAgICAgICBsb25nZXN0X2l0ZXJhdGlvbl90aW1lID0gbWF4KGxvbmdlc3Rf
aXRlcmF0aW9uX3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpdGVyYXRpb25fcnVudGltZSkKIAotICAgIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCA9ICh1
bmV4cGVjdGVkX3RvdGFsIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVj
dGVkX3RvdGFsID09IHVuZXhwZWN0ZWRfcGFzc190b3RhbCkKLSAgICBpZiBhbGxfdW5leHBlY3Rl
ZF9wYXNzZWQgYW5kIG5vdCBrd2FyZ3NbImZhaWxfb25fdW5leHBlY3RlZF9wYXNzIl06Ci0gICAg
ICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0aW5nICVpIHVuZXhwZWN0ZWQgcmVzdWx0cyBiZWNhdXNl
IHRoZXkgYWxsIFBBU1MiICUKLSAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9wYXNzX3Rv
dGFsKQotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIHJlcGVhdF91bnRp
bF91bmV4cGVjdGVkIGFuZCB0ZXN0X3N0YXR1cy51bmV4cGVjdGVkID4gMDoKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiB0ZXN0X3N0YXR1cy5yZXBlYXRlZF9y
dW5zID09IDEgYW5kIGxlbih0ZXN0X2xvYWRlci50ZXN0X2lkcykgPT0gdGVzdF9zdGF0dXMuc2tp
cHBlZDoKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9zdGF0dXMuYWxsX3NraXBwZWQgPSBUcnVl
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICByZXR1cm4gdW5leHBlY3RlZF90b3Rh
bCA9PSAwCisgICAgIyBSZXR1cm4gdGhlIGV2YWx1YXRpb24gb2YgdGhlIHJ1bnMgYW5kIHRoZSBu
dW1iZXIgb2YgcmVwZWF0ZWQgaXRlcmF0aW9ucyB0aGF0IHdlcmUgcnVuLgorICAgIHJldHVybiBl
dmFsdWF0ZV9ydW5zKHRlc3Rfc3RhdHVzLCBrd2FyZ3MpLCB0ZXN0X3N0YXR1cwogCiAKIGRlZiBj
aGVja19zdGFiaWxpdHkoKiprd2FyZ3MpOgpAQCAtNDExLDcgKzQ2Miw3IEBAIGRlZiBzdGFydCgq
Kmt3YXJncyk6CiAgICAgICAgIGVsaWYga3dhcmdzWyJ2ZXJpZnkiXSBvciBrd2FyZ3NbInN0YWJp
bGl0eSJdOgogICAgICAgICAgICAgcnYgPSBjaGVja19zdGFiaWxpdHkoKiprd2FyZ3MpIG9yIGxv
Z2dlZF9jcml0aWNhbC5oYXNfbG9nCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBydiA9IG5v
dCBydW5fdGVzdHMoKiprd2FyZ3MpIG9yIGxvZ2dlZF9jcml0aWNhbC5oYXNfbG9nCisgICAgICAg
ICAgICBydiA9IG5vdCBydW5fdGVzdHMoKiprd2FyZ3MpWzBdIG9yIGxvZ2dlZF9jcml0aWNhbC5o
YXNfbG9nCiAgICAgZmluYWxseToKICAgICAgICAgbG9nZ2VyLnJlbW92ZV9oYW5kbGVyKGhhbmRs
ZXIpCiAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5CmluZGV4IDA2M2Q2MjI3YmY2NzFhNGY2Njc3OTVkNjA4
NjU4NzdhNzQxODg2NTEuLjc1MjczOWI0ZTQzYjY3NjQ2ZDE0ZGVhODhjYWVlOTU0MGM0ODg5MTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHR0ZXN0LnB5CkBAIC0xMjAsOCArMTIwLDkgQEAgY2xhc3MgUnVuSW5mbyhEaWN0W3N0ciwgQW55
XSk6CiAgICAgICAgICAgICBzZWxmWyJ3YXNtIl0gPSBGYWxzZQogICAgICAgICBpZiBleHRyYXMg
aXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLnVwZGF0ZShleHRyYXMpCisgICAgICAgIGlm
ICJoZWFkbGVzcyIgbm90IGluIHNlbGY6CisgICAgICAgICAgICBzZWxmWyJoZWFkbGVzcyJdID0g
RmFsc2UKIAotICAgICAgICBzZWxmWyJoZWFkbGVzcyJdID0gZXh0cmFzLmdldCgiaGVhZGxlc3Mi
LCBGYWxzZSkKICAgICAgICAgc2VsZlsid2VicmVuZGVyIl0gPSBlbmFibGVfd2VicmVuZGVyCiAK
ICAgICBkZWYgX3VwZGF0ZV9tb3ppbmZvKHNlbGYsIG1ldGFkYXRhX3Jvb3QpOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS8uY292ZXJhZ2VyYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUwMGMwNzlmNjRj
YmQ5ZTMyZTAxOGQwMWExMjBhMDgyN2I3OTAyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvLmNvdmVy
YWdlcmMKQEAgLTAsMCArMSwxMSBAQAorW3J1bl0KK2JyYW5jaCA9IFRydWUKK3BhcmFsbGVsID0g
VHJ1ZQorb21pdCA9CisgICovc2l0ZS1wYWNrYWdlcy8qCisgICovbGliX3B5cHkvKgorCitbcGF0
aHNdCit3cHRzZXJ2ZSA9CisgIHdwdHNlcnZlCisgIC50b3gvKiovc2l0ZS1wYWNrYWdlcy93cHRz
ZXJ2ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhlODdkMzg4NDg4YmJjMjFjNjY0MjA5ZmVjZDJmM2UwMzA0MTFiMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlLy5naXRpZ25vcmUKQEAgLTAsMCArMSw0MCBAQAorKi5weVtjb2RdCisqfgorXCMqCisK
K2RvY3MvX2J1aWxkLworCisjIEMgZXh0ZW5zaW9ucworKi5zbworCisjIFBhY2thZ2VzCisqLmVn
ZworKi5lZ2ctaW5mbworZGlzdAorYnVpbGQKK2VnZ3MKK3BhcnRzCitiaW4KK3Zhcgorc2Rpc3QK
K2RldmVsb3AtZWdncworLmluc3RhbGxlZC5jZmcKK2xpYgorbGliNjQKKworIyBJbnN0YWxsZXIg
bG9ncworcGlwLWxvZy50eHQKKworIyBVbml0IHRlc3QgLyBjb3ZlcmFnZSByZXBvcnRzCisuY292
ZXJhZ2UKKy50b3gKK25vc2V0ZXN0cy54bWwKK3Rlc3RzL2Z1bmN0aW9uYWwvaHRtbC8qCisKKyMg
VHJhbnNsYXRpb25zCisqLm1vCisKKyMgTXIgRGV2ZWxvcGVyCisubXIuZGV2ZWxvcGVyLmNmZwor
LnByb2plY3QKKy5weWRldnByb2plY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2QxNmM3MzJjYWJmOWI3ZWZhMDRjZmIyODZkM2UzZTViM2NkZGEyMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvTWFrZWZpbGUKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaW5kZXgucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9kb2NzL2ludHJvZHVjdGlvbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvbWFrZS5iYXQKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcGlwZXMu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3Jlc3BvbnNlLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9y
b3V0ZXIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9kb2NzL3NlcnZlci5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
X19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIw
Mi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9f
X2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIu
YW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3Jr
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM4MjkxMzUyOGU2OTNiM2E1
ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRl
c3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2YmMyODMzMmE0NTdlYmQwZjM0Mjc2MjE2OWY3MTk4YzhkNjZhZTg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9leGFtcGxl
X21vZHVsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9maWxlLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9pbXBvcnRfaGFuZGxlci5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9zdWJfcGF0aC5zdWIudHh0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC9kb2Nyb290L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ZDMxNmY0MzE1OGUyYjVhMTFiNDRiZWMzNDgxODQ0MjE4MzM2ZTNkLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuanMKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9kb2N1bWVudC50eHQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9mb28uYW55Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28u
YW55LnNlcnZpY2V3b3JrZXIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5h
bnkuc2hhcmVkd29ya2VyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55
Lndvcmtlci5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndpbmRvdy5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndvcmtlci5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L25vX21haW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWIuc3ViLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9zdWJfZmlsZV9oYXNoLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9z
dWJfZmlsZV9oYXNoX3N1YmplY3QudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3Vi
X2ZpbGVfaGFzaF91bnJlY29nbml6ZWQuc3ViLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L3N1Yl9oZWFkZXJfb3JfZGVmYXVsdC5zdWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Rv
Y3Jvb3Qvc3ViX2hlYWRlcnMuc3ViLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1
Yl9oZWFkZXJzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9sb2NhdGlvbi5z
dWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX3BhcmFtcy5zdWIudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX3BhcmFtcy50eHQKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvZG9jcm9vdC9zdWJfdXJsX2Jhc2Uuc3ViLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L3N1Yl91dWlkLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJf
dmFyLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC90ZXN0LmFzaXMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC90ZXN0X2gyX2RhdGEucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC90ZXN0X2gyX2hlYWRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC90ZXN0X2gyX2hlYWRlcnNfZGF0YS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rl
c3Rfc3RyaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdGVzdF90dXBsZV8yLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdGVzdF90dXBsZV8zLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3Qvd2l0aF9oZWFkZXJzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L3dpdGhfaGVhZGVycy50eHQuc3ViLmhlYWRlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgwNjUyMDU3ZTllMzNmNGIwM2Rm
YjIyNjBjM2QzOTRkZDdlMzJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyNiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0
X2Nvb2tpZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9oYW5kbGVycy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVz
dHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVz
dF9waXBlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3JlcXVlc3QucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvdGVzdF9yZXNwb25zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Nl
cnZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3N0YXNoLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGM3MDkyNGMwNGVjZDVlOWRmYTc2MzU2OGRhZTEyNTg1MDMw
MWY4Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy90ZXN0X2NvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9yZXBsYWNlbWVudF90b2tl
bml6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfcmVxdWVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9yZXNwb25z
ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvdGVzdF9zdGFzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhYWFm
NjdlOTg1OGExMDdkYzgzYTk1Mjg1ZjJiOTM5NDdmYjAxMzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5tZAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4Nzc1YmJiNjAyMzYxYWE0NDMzZTBkZTFiNjQxNmVjNmFjMzA1NDY2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
c3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1
dGlscy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3NsLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9zc2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CmluZGV4IDQ5MzE0NDEzMmUyMzBlNmFkOTQzYTliNzdl
MDk3OTBjY2JiNmNmYTUuLmJmMzA3MGYzZWIyMmQzN2UzOGMzNWIxN2U2OWYxNDQ1ZmU0NzA2ZDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5w
eQpAQCAtMiw0MCArMiw1NiBAQCBpbXBvcnQgYmFzZTY0CiBpbXBvcnQganNvbgogaW1wb3J0IG9z
CiBpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgcXVldWUKIGltcG9ydCB1dWlkCiAKLWZyb20gbXVs
dGlwcm9jZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBBY3F1aXJlclByb3h5LCBCYXNlTWFuYWdlciwg
RGljdFByb3h5Citmcm9tIG11bHRpcHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNxdWlyZXJQ
cm94eSwgQmFzZU1hbmFnZXIsIEJhc2VQcm94eSwgRGljdFByb3h5LCBwdWJsaWNfbWV0aG9kcwog
CiBmcm9tIC51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19lbmNvZGUKIAogCi1jbGFzcyBTZXJ2ZXJE
aWN0TWFuYWdlcihCYXNlTWFuYWdlcik6CitjbGFzcyBTdGFzaE1hbmFnZXIoQmFzZU1hbmFnZXIp
OgogICAgIHNoYXJlZF9kYXRhID0ge30KICAgICBsb2NrID0gdGhyZWFkaW5nLkxvY2soKQogCiAK
IGRlZiBfZ2V0X3NoYXJlZCgpOgotICAgIHJldHVybiBTZXJ2ZXJEaWN0TWFuYWdlci5zaGFyZWRf
ZGF0YQorICAgIHJldHVybiBTdGFzaE1hbmFnZXIuc2hhcmVkX2RhdGEKIAogCiBkZWYgX2dldF9s
b2NrKCk6Ci0gICAgcmV0dXJuIFNlcnZlckRpY3RNYW5hZ2VyLmxvY2sKKyAgICByZXR1cm4gU3Rh
c2hNYW5hZ2VyLmxvY2sKIAorU3Rhc2hNYW5hZ2VyLnJlZ2lzdGVyKCJnZXRfZGljdCIsCisgICAg
ICAgICAgICAgICAgICAgICAgY2FsbGFibGU9X2dldF9zaGFyZWQsCisgICAgICAgICAgICAgICAg
ICAgICAgcHJveHl0eXBlPURpY3RQcm94eSkKK1N0YXNoTWFuYWdlci5yZWdpc3RlcignTG9jaycs
CisgICAgICAgICAgICAgICAgICAgICAgY2FsbGFibGU9X2dldF9sb2NrLAorICAgICAgICAgICAg
ICAgICAgICAgIHByb3h5dHlwZT1BY3F1aXJlclByb3h5KQogCi1TZXJ2ZXJEaWN0TWFuYWdlci5y
ZWdpc3RlcigiZ2V0X2RpY3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGFibGU9
X2dldF9zaGFyZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eXR5cGU9RGljdFBy
b3h5KQotU2VydmVyRGljdE1hbmFnZXIucmVnaXN0ZXIoJ0xvY2snLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FsbGFibGU9X2dldF9sb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJveHl0eXBlPUFjcXVpcmVyUHJveHkpCiAKKyMgV2UgaGF2ZSB0byBjcmVhdGUgYW4gZXhw
bGljaXQgY2xhc3MgaGVyZSBiZWNhdXNlIHRoZSBidWlsdC1pbgorIyBBdXRvUHJveHkgaGFzIGEg
YnVnIHdpdGggbmVzdGVkIG1hbmFnZXJzLCBhbmQgdGhlIE1ha2VQcm94eQorIyBtZXRob2QgZG9l
c24ndCB3b3JrIHdpdGggc3Bhd24tYmFzZWQgbXVsdGlwcm9jZXNzaW5nLCBzaW5jZSB0aGUKKyMg
Z2VuZXJhdGVkIGNsYXNzIGNhbid0IGJlIHBpY2tsZWQgZm9yIHVzZSBpbiBjaGlsZCBwcm9jZXNz
ZXMuCitjbGFzcyBRdWV1ZVByb3h5KEJhc2VQcm94eSk6CisgICAgX2V4cG9zZWRfID0gcHVibGlj
X21ldGhvZHMocXVldWUuUXVldWUpCiAKLWNsYXNzIENsaWVudERpY3RNYW5hZ2VyKEJhc2VNYW5h
Z2VyKToKLSAgICBwYXNzCiAKK2ZvciBtZXRob2QgaW4gUXVldWVQcm94eS5fZXhwb3NlZF86CisK
KyAgICBkZWYgaW1wbF9mbihtZXRob2QpOgorICAgICAgICBkZWYgX2ltcGwoc2VsZiwgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYWxsbWV0aG9kKG1ldGhvZCwg
YXJncywga3dhcmdzKQorICAgICAgICBfaW1wbC5fX25hbWVfXyA9IG1ldGhvZAorICAgICAgICBy
ZXR1cm4gX2ltcGwKKworICAgIHNldGF0dHIoUXVldWVQcm94eSwgbWV0aG9kLCBpbXBsX2ZuKG1l
dGhvZCkpCiAKLUNsaWVudERpY3RNYW5hZ2VyLnJlZ2lzdGVyKCJnZXRfZGljdCIpCi1DbGllbnRE
aWN0TWFuYWdlci5yZWdpc3RlcigiTG9jayIpCisKK1N0YXNoTWFuYWdlci5yZWdpc3RlcigiUXVl
dWUiLAorICAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlPXF1ZXVlLlF1ZXVlLAorICAgICAg
ICAgICAgICAgICAgICAgIHByb3h5dHlwZT1RdWV1ZVByb3h5KQogCiAKIGNsYXNzIFN0YXNoU2Vy
dmVyKG9iamVjdCk6CkBAIC03Nyw3ICs5Myw3IEBAIGRlZiBzdGFydF9zZXJ2ZXIoYWRkcmVzcz1O
b25lLCBhdXRoa2V5PU5vbmUsIG1wX2NvbnRleHQ9Tm9uZSk6CiAgICAga3dhcmdzID0ge30KICAg
ICBpZiBtcF9jb250ZXh0IGlzIG5vdCBOb25lOgogICAgICAgICBrd2FyZ3NbImN0eCJdID0gbXBf
Y29udGV4dAotICAgIG1hbmFnZXIgPSBTZXJ2ZXJEaWN0TWFuYWdlcihhZGRyZXNzLCBhdXRoa2V5
LCAqKmt3YXJncykKKyAgICBtYW5hZ2VyID0gU3Rhc2hNYW5hZ2VyKGFkZHJlc3MsIGF1dGhrZXks
ICoqa3dhcmdzKQogICAgIG1hbmFnZXIuc3RhcnQoKQogCiAgICAgYWRkcmVzcyA9IG1hbmFnZXIu
X2FkZHJlc3MKQEAgLTEzMiw2ICsxNDgsNyBAQCBjbGFzcyBTdGFzaChvYmplY3QpOgogCiAgICAg
X3Byb3h5ID0gTm9uZQogICAgIGxvY2sgPSBOb25lCisgICAgbWFuYWdlciA9IE5vbmUKICAgICBf
aW5pdGlhbGl6aW5nID0gdGhyZWFkaW5nLkxvY2soKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGRlZmF1bHRfcGF0aCwgYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgpAQCAtMTU0LDEwICsx
NzEsMTMgQEAgY2xhc3MgU3Rhc2gob2JqZWN0KToKICAgICAgICAgICAgIGlmIFN0YXNoLmxvY2s6
CiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgICAgIG1hbmFnZXIgPSBDbGllbnRE
aWN0TWFuYWdlcihhZGRyZXNzLCBhdXRoa2V5KQotICAgICAgICAgICAgbWFuYWdlci5jb25uZWN0
KCkKLSAgICAgICAgICAgIFN0YXNoLl9wcm94eSA9IG1hbmFnZXIuZ2V0X2RpY3QoKQotICAgICAg
ICAgICAgU3Rhc2gubG9jayA9IExvY2tXcmFwcGVyKG1hbmFnZXIuTG9jaygpKQorICAgICAgICAg
ICAgU3Rhc2gubWFuYWdlciA9IFN0YXNoTWFuYWdlcihhZGRyZXNzLCBhdXRoa2V5KQorICAgICAg
ICAgICAgU3Rhc2gubWFuYWdlci5jb25uZWN0KCkKKyAgICAgICAgICAgIFN0YXNoLl9wcm94eSA9
IHNlbGYubWFuYWdlci5nZXRfZGljdCgpCisgICAgICAgICAgICBTdGFzaC5sb2NrID0gTG9ja1dy
YXBwZXIoc2VsZi5tYW5hZ2VyLkxvY2soKSkKKworICAgIGRlZiBnZXRfcXVldWUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLm1hbmFnZXIuUXVldWUoKQogCiAgICAgZGVmIF93cmFwX2tleShz
ZWxmLCBrZXksIHBhdGgpOgogICAgICAgICBpZiBwYXRoIGlzIE5vbmU6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE4MDczNTE4ZmMyNzEwYTJjMWI3MTM4OGNhMzZh
ZjhlMTE0YmQ1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uZmlnLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9jb25zdGFudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9sb2dnZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5n
ZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9yb3V0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
c2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3dwdHNlcnZlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93c19oMl9oYW5kc2hha2UucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvd3B0c2VydmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3dwdHNlcnZlLnB5
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
</data>
<flag name="commit-queue"
          id="478592"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451751</attachid>
            <date>2022-02-11 15:26:39 -0800</date>
            <delta_ts>2022-02-14 09:35:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206546-20220211152629.patch</filename>
            <type>text/plain</type>
            <size>5788244</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NjY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzcxYTkwMzVkZjg4ODA0YWU3NTVmNTNkMjg1MjQwYjgx
NjM2MjhjOC4uMjhlZDA1ZDI2N2NjZmE2MWI3YzEwOThkNmEwOTY5MjhkYmVlYjAzZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIyLTAyLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICB3ZWJraXRweTogV2ViU29ja2V0IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgUHl0aG9u
IDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU0
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg4MTQ3NDM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgIEFsd2F5cyBpbnZva2Ug
d2Vic29ja2V0IHNlcnZlciB3aXRoIFB5dGhvbiAzLgorCiAyMDIyLTAyLTAyICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gSGFuZGxl
IGxvY2FsIGNvbW1pdCBvbiBwcm9kdWN0aW9uIGJyYW5jaApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2Vy
dmVyLnB5CmluZGV4IGI0ZTMxMDhkYjM2MWQ3ZmI3Y2Y1ZjA5MjY0NTBkMjJjMzY5YmEzOGMuLmM1
MGQ4ZGU2YTk4YTI1MzUyMWM3NThiMjg3Yzk4YzVlMThkMTA3Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNv
Y2tldF9zZXJ2ZXIucHkKQEAgLTExOCwxMyArMTE4LDEyIEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0
dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgb3V0cHV0X2xvZyA9IHNlbGYuX2ZpbGVzeXN0
ZW0uam9pbihzZWxmLl9vdXRwdXRfZGlyLCBsb2dfZmlsZV9uYW1lICsgIi1vdXQudHh0IikKICAg
ICAgICAgc2VsZi5fd3NvdXQgPSBzZWxmLl9maWxlc3lzdGVtLm9wZW5fdGV4dF9maWxlX2Zvcl93
cml0aW5nKG91dHB1dF9sb2cpCiAKLSAgICAgICAgIyBGSVhNRSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTQ2OiBTaG91bGQgYmUgdXNpbmcgdGhlIHNhbWUgdmVy
c2lvbiBvZiBQeXRob24gcnVuLXdlYmtpdC10ZXN0cyBpcwogICAgICAgICBweXRob25faW50ZXJw
ID0gc3lzLmV4ZWN1dGFibGUKLSAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToK
LSAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSAncHl0aG9uMicKKyAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSAncHl0aG9u
MycKIAogICAgICAgICB3cHRfdG9vbHNfYmFzZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxm
Ll9sYXlvdXRfdGVzdHMsICJpbXBvcnRlZCIsICJ3M2MiLCAid2ViLXBsYXRmb3JtLXRlc3RzIiwg
InRvb2xzIikKLSAgICAgICAgcHl3ZWJzb2NrZXRfYmFzZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9p
bih3cHRfdG9vbHNfYmFzZSwgInB5d2Vic29ja2V0IikKKyAgICAgICAgcHl3ZWJzb2NrZXRfYmFz
ZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbih3cHRfdG9vbHNfYmFzZSwgInRoaXJkX3BhcnR5Iiwg
InB5d2Vic29ja2V0MyIpCiAgICAgICAgIHB5d2Vic29ja2V0X2RlcHMgPSBbc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHdwdF90b29sc19iYXNlLCAidGhpcmRfcGFydHkiLCAic2l4IildCiAgICAgICAg
IHB5d2Vic29ja2V0X3NjcmlwdCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihweXdlYnNvY2tldF9i
YXNlLCAnbW9kX3B5d2Vic29ja2V0JywgJ3N0YW5kYWxvbmUucHknKQogICAgICAgICBzdGFydF9j
bWQgPSBbCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2ZTQ4OGI5YjNmMTJhN2Iw
YTYzNDg4NWY3ZTc1YzNlNjExMjYzODU0Li4wZGYwYzUxZDdlMWQ1NDFkZjgxYTI1MTdjY2ZlMjY5
ZjJhNGM2ZTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMi0wMi0xMSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisKKyAg
ICAgICAgd2Via2l0cHk6IFdlYlNvY2tldCBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0IFB5dGhvbiAz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY1NDYK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4ODE0NzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzOiBS
ZS1zeW5jZWQgZnJvbSB1cHN0cmVhbSBhdCBmZWM1ZTZmZmViZmYuCisKIDIwMjItMDItMTEgIEpv
biBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvTUVUQS55bWwKaW5kZXggYTFhZWI4NGQ0YTZmZTEyNjM3MWQxYjhmODk5YTk2
N2VlMGU1YWE4My4uZGI3ZDRkNzg2YjQwNTE4ODJkYzMxYWFlNjc0NTZhNzE4NDhlMzNlMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9NRVRBLnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL01FVEEueW1sCkBAIC0xLDMgKzEsNCBAQAogc3VnZ2VzdGVkX3Jldmlld2VyczoK
ICAgLSBqZ3JhaGFtCiAgIC0gZm9vbGlwCisgIC0gRGFuaWVsUnlhblNtaXRoCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDg3MTkxMTRmMWYyM2ZjZjEwNWQ2YTJhN2M4NmVmOTc1N2IyYzZkZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9SRUFETUUubWQKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRz
L2NhY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NlcnRzL2NvbmZpZy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0
Zm9ybS50ZXN0LnBlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19pbml0X18ucHkKaW5kZXggYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIy
OWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL19faW5pdF9fLnB5CkBA
IC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNo
IHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvYWZmZWN0ZWRfdGVzdHMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwK
aW5kZXggOTZhYjJiOGNjNTIzZWE2ODQ5OTY5MzNmNGJmM2U3NjE3NmJkOWQ5Yy4uZmZiMWZlMWY2
ZmIxNGFkZDRmMWY4MzMyMDMzNDNmMGFlZmQyMGM3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90
ZXN0cy55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwKQEAgLTYsNyArNiw5IEBAIHBhcmFt
ZXRlcnM6CiBzdGVwczoKIC0gdGVtcGxhdGU6IGNoZWNrb3V0LnltbAogLSAke3sgaWYgbmUocGFy
YW1ldGVycy5jaGVja291dENvbW1pdCwgJycpIH19OgotICAtIHNjcmlwdDogZ2l0IGNoZWNrb3V0
ICR7eyBwYXJhbWV0ZXJzLmNoZWNrb3V0Q29tbWl0IH19CisgIC0gc2NyaXB0OiB8CisgICAgICBz
ZXQgLWV1eCAtbyBwaXBlZmFpbAorICAgICAgZ2l0IGNoZWNrb3V0ICR7eyBwYXJhbWV0ZXJzLmNo
ZWNrb3V0Q29tbWl0IH19CiAgICAgZGlzcGxheU5hbWU6ICdDaGVja291dCAke3sgcGFyYW1ldGVy
cy5jaGVja291dENvbW1pdCB9fScKIC0gdGVtcGxhdGU6IHBpcF9pbnN0YWxsLnltbAogICBwYXJh
bWV0ZXJzOgpAQCAtMTUsNyArMTcsMTAgQEAgc3RlcHM6CiAtIHRlbXBsYXRlOiBpbnN0YWxsX3Nh
ZmFyaS55bWwKIC0gdGVtcGxhdGU6IHVwZGF0ZV9ob3N0cy55bWwKIC0gdGVtcGxhdGU6IHVwZGF0
ZV9tYW5pZmVzdC55bWwKLS0gc2NyaXB0OiAuL3dwdCBydW4gLS15ZXMgLS1uby1wYXVzZSAtLW5v
LWZhaWwtb24tdW5leHBlY3RlZCAtLW5vLXJlc3RhcnQtb24tdW5leHBlY3RlZCAtLWFmZmVjdGVk
ICR7eyBwYXJhbWV0ZXJzLmFmZmVjdGVkUmFuZ2UgfX0gLS1sb2ctd3B0cmVwb3J0ICQoQnVpbGQu
QXJ0aWZhY3RTdGFnaW5nRGlyZWN0b3J5KS93cHRfcmVwb3J0Lmpzb24gLS1sb2ctd3B0c2NyZWVu
c2hvdCAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3NjcmVlbnNob3QudHh0
IC0tY2hhbm5lbCBwcmV2aWV3IC0ta2lsbC1zYWZhcmkgc2FmYXJpCistIHNjcmlwdDogfAorICAg
IHNldCAtZXV4IC1vIHBpcGVmYWlsCisgICAgICBleHBvcnQgU1lTVEVNX1ZFUlNJT05fQ09NUEFU
PTAKKyAgICAuL3dwdCBydW4gLS15ZXMgLS1uby1wYXVzZSAtLW5vLWZhaWwtb24tdW5leHBlY3Rl
ZCAtLW5vLXJlc3RhcnQtb24tdW5leHBlY3RlZCAtLWFmZmVjdGVkICR7eyBwYXJhbWV0ZXJzLmFm
ZmVjdGVkUmFuZ2UgfX0gLS1sb2ctd3B0cmVwb3J0ICQoQnVpbGQuQXJ0aWZhY3RTdGFnaW5nRGly
ZWN0b3J5KS93cHRfcmVwb3J0Lmpzb24gLS1sb2ctd3B0c2NyZWVuc2hvdCAkKEJ1aWxkLkFydGlm
YWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3NjcmVlbnNob3QudHh0IC0tY2hhbm5lbCBwcmV2aWV3
IC0ta2lsbC1zYWZhcmkgc2FmYXJpCiAgIGRpc3BsYXlOYW1lOiAnUnVuIHRlc3RzJwogLSB0YXNr
OiBQdWJsaXNoQnVpbGRBcnRpZmFjdHNAMQogICBkaXNwbGF5TmFtZTogJ1B1Ymxpc2ggcmVzdWx0
cycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9meWlfaG9vay55bWwKaW5kZXggMTc4
ODUwMmViNGYwZWNlN2QyOTVjMjFiMjhmNzdhMDlkZGU2ZjI5OC4uZGY5MmNlMTA2NjRkNGY2OTdj
ZDA0NTZjZmM1ODZmMWI1Y2VjMzNjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9meWlfaG9vay55bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9meWlfaG9vay55bWwKQEAgLTEzLDcgKzEzLDExIEBAIGpvYnM6CiAgICAgdm1JbWFnZTogJ3Vi
dW50dS0yMC4wNCcKICAgc3RlcHM6CiAgIC0gY2hlY2tvdXQ6IG5vbmUKLSAgLSBzY3JpcHQ6IGN1
cmwgLWYgLXMgLVMgLWQgImFydGlmYWN0PSR7eyBwYXJhbWV0ZXJzLmFydGlmYWN0TmFtZSB9fSIg
LVggUE9TVCBodHRwczovL3dwdC5meWkvYXBpL2NoZWNrcy9henVyZS8kKEJ1aWxkLkJ1aWxkSWQp
CisgIC0gc2NyaXB0OiB8CisgICAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAorICAgICAgY3VybCAt
ZiAtcyAtUyAtZCAiYXJ0aWZhY3Q9JHt7IHBhcmFtZXRlcnMuYXJ0aWZhY3ROYW1lIH19IiAtWCBQ
T1NUIGh0dHBzOi8vd3B0LmZ5aS9hcGkvY2hlY2tzL2F6dXJlLyQoQnVpbGQuQnVpbGRJZCkKICAg
ICBkaXNwbGF5TmFtZTogJ0ludm9rZSB3cHQuZnlpIGhvb2snCi0gIC0gc2NyaXB0OiBjdXJsIC1m
IC1zIC1TIC1kICJhcnRpZmFjdD0ke3sgcGFyYW1ldGVycy5hcnRpZmFjdE5hbWUgfX0iIC1YIFBP
U1QgaHR0cHM6Ly9zdGFnaW5nLndwdC5meWkvYXBpL2NoZWNrcy9henVyZS8kKEJ1aWxkLkJ1aWxk
SWQpCisgIC0gc2NyaXB0OiB8CisgICAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAorICAgICAgY3Vy
bCAtZiAtcyAtUyAtZCAiYXJ0aWZhY3Q9JHt7IHBhcmFtZXRlcnMuYXJ0aWZhY3ROYW1lIH19IiAt
WCBQT1NUIGh0dHBzOi8vc3RhZ2luZy53cHQuZnlpL2FwaS9jaGVja3MvYXp1cmUvJChCdWlsZC5C
dWlsZElkKQogICAgIGRpc3BsYXlOYW1lOiAnSW52b2tlIHN0YWdpbmcud3B0LmZ5aSBob29rJwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwKaW5k
ZXggNTY4MjE5OWIzODczYTI3OWVkZTAzNDVjNjBjZTM3ZGMyODBmYTJhMi4uYmVlNWFiMDg0ZTM3
ZmU4MDg5NjAyMTlkMDkyZGIyYzBhNWE2MGY4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRz
LnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL2luc3RhbGxfY2VydHMueW1sCkBAIC0xLDcgKzEsOSBAQAogc3RlcHM6CiAt
IHNjcmlwdDogfAorICAgIHNldCAtZXV4IC1vIHBpcGVmYWlsCiAgICAgIyBodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc3VsdHMtY29sbGVjdGlvbi9ibG9iL21hc3Rlci9z
cmMvc2NyaXB0cy90cnVzdC1yb290LWNhLnNoCi0gICAgc3VkbyBzZWN1cml0eSBhZGQtdHJ1c3Rl
ZC1jZXJ0IC1kIC1yIHRydXN0Um9vdCAtayAvTGlicmFyeS9LZXljaGFpbnMvU3lzdGVtLmtleWNo
YWluIHRvb2xzL2NlcnRzL2NhY2VydC5wZW0KKyAgICAjIG9ubHkgcnVuIHRoaXMgb24gbWFjT1Mg
PCAxMQorICAgIFsgIjExIiA9ICJgZWNobyAtZSAkKCBzd192ZXJzIC1wcm9kdWN0VmVyc2lvbiAp
XFxcbjExIHwgc29ydCAtViB8IGhlYWQgLW4xYCIgXSB8fCBzdWRvIHNlY3VyaXR5IGFkZC10cnVz
dGVkLWNlcnQgLWQgLXIgdHJ1c3RSb290IC1rIC9MaWJyYXJ5L0tleWNoYWlucy9TeXN0ZW0ua2V5
Y2hhaW4gdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQogICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgd2Vi
LXBsYXRmb3JtLnRlc3QgY2VydGlmaWNhdGUgKG1hY09TKScKICAgY29uZGl0aW9uOiBhbmQoc3Vj
Y2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ0RhcndpbicpKQogLSBzY3JpcHQ6
IGNlcnR1dGlsIOKAk2FkZHN0b3JlIC1lbnRlcnByaXNlIOKAk2YgIlJvb3QiIHRvb2xzXGNlcnRz
XGNhY2VydC5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxs
X2Nocm9tZS55bWwKaW5kZXggOWNjZGM0OWJhMGVlMWZhNDM4MmNmNWUwNmM5OGExNDk4OTM4YTMz
OS4uNzU5OTMyMWJlMjQ4Nzc3ODhlZmQ4YWE5NzBmMzE4ZmY1YzdkMmY3MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9pbnN0YWxsX2Nocm9tZS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKQEAgLTIsNiAr
Miw3IEBAIHN0ZXBzOgogIyBUaGUgY29uZmxpY3RpbmcgZ29vZ2xlLWNocm9tZSBhbmQgY2hyb21l
ZHJpdmVyIGNhc2tzIGFyZSBmaXJzdCB1bmluc3RhbGxlZC4KICMgVGhlIHJhdyBnb29nbGUtY2hy
b21lLWRldiBjYXNrIFVSTCBpcyB1c2VkIHRvIGJ5cGFzcyBjYWNoaW5nLgogLSBzY3JpcHQ6IHwK
KyAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAogICAgIEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFPTEg
YnJldyB1bmluc3RhbGwgLS1jYXNrIGdvb2dsZS1jaHJvbWUgfHwgdHJ1ZQogICAgIEhPTUVCUkVX
X05PX0FVVE9fVVBEQVRFPTEgYnJldyB1bmluc3RhbGwgLS1jYXNrIGNocm9tZWRyaXZlciB8fCB0
cnVlCiAgICAgY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcv
aG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZ29vZ2xlLWNocm9tZS1kZXYucmIg
PiBnb29nbGUtY2hyb21lLWRldi5yYgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCmluZGV4IDdiOGM3YmUwNWZlZTliYzZkNmRiOTYwOWEy
MWE3MWI4Y2M5M2IyNmEuLjczYWY1OTc2NjU1M2Y3ZWY1ZjRkNDY0N2Q3YTk0ZjhiMDk3N2E4ZmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9maXJlZm94LnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZmlyZWZv
eC55bWwKQEAgLTIsNiArMiw3IEBAIHN0ZXBzOgogIyBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYEhv
bWVicmV3L2hvbWVicmV3LWNhc2stdmVyc2lvbnMvZmlyZWZveC1uaWdodGx5YCwKICMgYnV0IHRo
ZSByYXcgVVJMIGlzIHVzZWQgdG8gYnlwYXNzIGNhY2hpbmcuCiAtIHNjcmlwdDogfAorICAgIHNl
dCAtZXV4IC1vIHBpcGVmYWlsCiAgICAgY3VybCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZmlyZWZv
eC1uaWdodGx5LnJiID4gZmlyZWZveC1uaWdodGx5LnJiCiAgICAgSE9NRUJSRVdfTk9fQVVUT19V
UERBVEU9MSBicmV3IGluc3RhbGwgLS1jYXNrIGZpcmVmb3gtbmlnaHRseS5yYgogICBkaXNwbGF5
TmFtZTogJ0luc3RhbGwgRmlyZWZveCBOaWdodGx5JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Zv
bnRzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvaW5zdGFsbF9mb250cy55bWwKaW5kZXggMzQ4ZWI3NDU0ZTA2NGNhZDU1Yjhh
MmU2Y2U5ZWJkZjk2NzIyZTRkZC4uMjc5YzI2MmM3ZWZhYjA3MTFmMjMwMDA1NDA0N2EzZDVjNzk0
Y2ZmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZm9u
dHMueW1sCkBAIC0xLDUgKzEsNyBAQAogc3RlcHM6CiAjIEluc3RhbGxpZyBBaGVtIGluIC9MaWJy
YXJ5L0ZvbnRzIGluc3RlYWQgb2YgdXNpbmcgLS1pbnN0YWxsLWZvbnRzIGlzIGEKICMgd29ya2Fy
b3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzEzODAzLgotLSBzY3JpcHQ6IHN1ZG8gY3AgZm9udHMvQWhlbS50dGYgL0xpYnJhcnkvRm9udHMK
Ky0gc2NyaXB0OiB8CisgICAgc2V0IC1ldXggLW8gcGlwZWZhaWwKKyAgICBzdWRvIGNwIGZvbnRz
L0FoZW0udHRmIC9MaWJyYXJ5L0ZvbnRzCiAgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBBaGVtIGZv
bnQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmku
eW1sCmluZGV4IGQ5MjlmZmE0ZGE5Mjk2OTI5YTA3YWIyMTA4NGM1OTIxNjdjOTEyMmIuLmNkYTFi
NTMwMmI1OWUxYjkyMzhmZjk4NzUxMTU4ZDk4ZmFhZWZjY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFs
bF9zYWZhcmkueW1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCkBAIC04LDcgKzgsOCBAQCBz
dGVwczoKICAgY29uZGl0aW9uOiBlcSh2YXJpYWJsZXNbJ3NhZmFyaWRyaXZlcl9kaWFnbm9zZSdd
LCB0cnVlKQogLSAke3sgaWYgZXEocGFyYW1ldGVycy5jaGFubmVsLCAncHJldmlldycpIH19Ogog
ICAtIHNjcmlwdDogfAotICAgICAgc2V0IC1ldXgKKyAgICAgIHNldCAtZXV4IC1vIHBpcGVmYWls
CisgICAgICBleHBvcnQgU1lTVEVNX1ZFUlNJT05fQ09NUEFUPTAKICAgICAgIEhPTUVCUkVXX05P
X0FVVE9fVVBEQVRFPTEgYnJldyBpbnN0YWxsIC0tY2FzayB0b29scy9jaS9henVyZS9zYWZhcmkt
dGVjaG5vbG9neS1wcmV2aWV3LnJiCiAgICAgICAjIFdvcmthcm91bmQgZm9yIGBzdWRvIHNhZmFy
ZHJpdmVyIC0tZW5hYmxlYCBub3Qgd29ya2luZyBvbiBDYXRhbGluYToKICAgICAgICMgaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzIxNzUxCkBAIC0xOSw3
ICsyMCw5IEBAIHN0ZXBzOgogICAgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBTYWZhcmkgVGVjaG5v
bG9neSBQcmV2aWV3JwogLSAke3sgaWYgZXEocGFyYW1ldGVycy5jaGFubmVsLCAnc3RhYmxlJykg
fX06CiAgIC0gc2NyaXB0OiB8Ci0gICAgICBzZXQgLWV1eAorICAgICAgc2V0IC1ldXggLW8gcGlw
ZWZhaWwKKyAgICAgIGV4cG9ydCBTWVNURU1fVkVSU0lPTl9DT01QQVQ9MAorICAgICAgc3VkbyBz
b2Z0d2FyZXVwZGF0ZSAtLWluc3RhbGwgJCggc29mdHdhcmV1cGRhdGUgLWwgfCBncmVwIC1vICdc
KiBMYWJlbDogXChTYWZhcmkuKlwpJyB8IHNlZCAtZSAncy8qIExhYmVsOiAvLycgKQogICAgICAg
c3VkbyBzYWZhcmlkcml2ZXIgLS1lbmFibGUKICAgICAgIGRlZmF1bHRzIHdyaXRlIGNvbS5hcHBs
ZS5TYWZhcmkgV2ViS2l0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSAxCiAg
ICAgZGlzcGxheU5hbWU6ICdDb25maWd1cmUgU2FmYXJpJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zYWZhcmkt
dGVjaG5vbG9neS1wcmV2aWV3LnJiIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCmlu
ZGV4IDU4Njc1YmRhZGQwMWIzMTVkOGViZjRlODI0YzNlNDdhOGNhM2QwMGQuLjQ4Zjg3ZGQ2YzVj
NGM5YmJjOGVlNzY5NWE0MTk5ZDU0MjM2NTIwNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hu
b2xvZ3ktcHJldmlldy5yYgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIKQEAg
LTEsMTkgKzEsMjAgQEAKIGNhc2sgInNhZmFyaS10ZWNobm9sb2d5LXByZXZpZXciIGRvCi0gIGlm
IE1hY09TLnZlcnNpb24gPD0gOmNhdGFsaW5hCi0gICAgdmVyc2lvbiAiMTI1LDA3MS00NDUyNy0y
MDIxMDUyNi05MzQzMDI0NC0wMzM0LTRmYWUtODc4ZC01NjUwMmE2NTYwMDMiCi0gICAgc2hhMjU2
ICI2ZWE4MzBlYzVjOTEwMTY2NWUxOGQ3N2YzMWE3ZjIyMGEwZmM4YWZjMzViOWFjMDM2ZWUyOWQ1
ZWUzZGJkZDIzIgotICBlbHNlCi0gICAgdmVyc2lvbiAiMTI1LDA3MS00NTg5OS0yMDIxMDUyNi0z
ZmU3MzU5Yy0wZjIwLTQ4NTAtYjZlYy1kYTliMTk3MTE5YzIiCi0gICAgc2hhMjU2ICI2M2U0OTYx
ZmQwY2NhMzQ1YjU4MTI4YzBlZGIzMzYyNzg0N2QwMmI5OWE3NzYxM2M1NGMwYTg5ZTY0MDJkMzZl
IgorICBpZiBNYWNPUy52ZXJzaW9uID09IDptb250ZXJleQorICAgIHZlcnNpb24gIjE0MCwwMDIt
Njk1MDctMjAyMjAyMTAtNTIxMDlCNDgtQzVBQi00RTIxLTkxQ0ItRTk0OUExQUIwQjY2IgorICAg
IHVybCAiaHR0cHM6Ly9zZWN1cmUtYXBwbGRubGQuYXBwbGUuY29tL1NUUC8je3ZlcnNpb24uYWZ0
ZXJfY29tbWF9L1NhZmFyaVRlY2hub2xvZ3lQcmV2aWV3LmRtZyIKKyAgICBzaGEyNTYgIjNlZjEx
YjViOGZkMzg5ZTUwOTk5OTUyZTQ3NWRiYzU2MjM5ODM5MDA5YWRjMjYzZmY1MGM2NDk4YzliMjVh
MTEiCisgIGVsc2lmIE1hY09TLnZlcnNpb24gPT0gOmJpZ19zdXIKKyAgICB2ZXJzaW9uICIxNDAs
MDAyLTY5NjAwLTIwMjIwMjEwLTYzQjk5RUQxLTg3MkEtNEZGMC1BMDY1LTNFOUQ2QjgxQjU4MyIK
KyAgICB1cmwgImh0dHBzOi8vc2VjdXJlLWFwcGxkbmxkLmFwcGxlLmNvbS9TVFAvI3t2ZXJzaW9u
LmFmdGVyX2NvbW1hfS9TYWZhcmlUZWNobm9sb2d5UHJldmlldy5kbWciCisgICAgc2hhMjU2ICJl
M2FiOWNjMDljNzE0ODdlNjhmNjZlZDc3ZWY0MTMwNDhhM2Q1N2U5N2JmMzQ2MTA3Y2Q0NTI0MzFi
NjE5OWZkIgogICBlbmQKIAotICB1cmwgImh0dHBzOi8vc2VjdXJlLWFwcGxkbmxkLmFwcGxlLmNv
bS9TVFAvI3t2ZXJzaW9uLmFmdGVyX2NvbW1hfS9TYWZhcmlUZWNobm9sb2d5UHJldmlldy5kbWci
CiAgIGFwcGNhc3QgImh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9zYWZhcmkvZG93bmxvYWQv
IgogICBuYW1lICJTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IgogICBob21lcGFnZSAiaHR0cHM6
Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9kb3dubG9hZC8iCiAKICAgYXV0b191cGRhdGVz
IHRydWUKLSAgZGVwZW5kc19vbiBtYWNvczogIj49IDpjYXRhbGluYSIKKyAgZGVwZW5kc19vbiBt
YWNvczogIj49IDpiaWdfc3VyIgogCiAgIHBrZyAiU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5w
a2ciCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3RveF9weXRlc3QueW1sCmlu
ZGV4IDEyZWQ2NmE5YTAyMDZmNjg2NmZiMTIwZTI2NGJlMzlkYzdlMjkyZTQuLjM3MDRlY2M1YmVk
OWQ2MjI1NzRjY2I3NGMyNzVhMWI1Y2YxNDlhM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS90b3hfcHl0ZXN0LnltbApAQCAtNyw3ICs3LDkgQEAgc3RlcHM6CiAgIHBhcmFt
ZXRlcnM6CiAgICAgcGFja2FnZXM6IHRveAogCi0tIHNjcmlwdDogdG94IC1jICR7eyBwYXJhbWV0
ZXJzLmRpcmVjdG9yeSB9fSAtZSAke3sgcGFyYW1ldGVycy50b3hlbnYgfX0gLS0gLS1qdW5pdHht
bD1yZXN1bHRzLnhtbAorLSBzY3JpcHQ6IHwKKyAgICBzZXQgLWV1eCAtbyBwaXBlZmFpbAorICAg
IHRveCAtYyAke3sgcGFyYW1ldGVycy5kaXJlY3RvcnkgfX0gLWUgJHt7IHBhcmFtZXRlcnMudG94
ZW52IH19IC0tIC0tanVuaXR4bWw9cmVzdWx0cy54bWwKICAgZGlzcGxheU5hbWU6ICdSdW4gdGVz
dHMnCiAKIC0gdGFzazogUHVibGlzaFRlc3RSZXN1bHRzQDIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRl
X2hvc3RzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbAppbmRleCA2M2M3ZTQ1ODExMjk3YTJkZDUz
NDJiM2IzYWI5MDkzYWNhYjZmNWNkLi5iY2I4NTM2YTVjYmEwZjc0ODgwYzUxYjRjNWMyYmU1OGRh
MTdlNWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9z
dHMueW1sCkBAIC0xLDUgKzEsNyBAQAogc3RlcHM6Ci0tIHNjcmlwdDogLi93cHQgbWFrZS1ob3N0
cy1maWxlIHwgc3VkbyB0ZWUgLWEgL2V0Yy9ob3N0cworLSBzY3JpcHQ6IHwKKyAgICBzZXQgLWV1
eCAtbyBwaXBlZmFpbAorICAgIC4vd3B0IG1ha2UtaG9zdHMtZmlsZSB8IHN1ZG8gdGVlIC1hIC9l
dGMvaG9zdHMKICAgZGlzcGxheU5hbWU6ICdVcGRhdGUgaG9zdHMgKG1hY09TKScKICAgY29uZGl0
aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ0Rhcndpbicp
KQogLSBwb3dlcnNoZWxsOiB8CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTVjNjkyYjVlNjA3NzBm
N2Y5YmEwMWRhMWRlN2M0ZDNlYjY0ZDY0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzYg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9SRUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnltbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
Y2hlY2tvdXQueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY29tLmFwcGxlLlNhZmFyaVRl
Y2hub2xvZ3lQcmV2aWV3LnBsaXN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9meWlfaG9vay55bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfY2VydHMu
eW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZWRnZS55bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3Rh
bGxfZmlyZWZveC55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZm9udHMueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3B5dGhvbi55
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvcGlwX2luc3RhbGwueW1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9wdWJsaXNo
X2xvZ3MueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zeXN0ZW1faW5m
by55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2F6dXJlL3RveF9weXRlc3QueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9zdHMueW1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVf
bWFuaWZlc3QueW1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2ggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBmOGFlM2U2MWJmNzU2ZDk3Yzc4ZTJk
OTU4OTEyMWI3ZDYwMTA2NmZiLi5mYWQ5NDZkMjk3M2E2MjE1Y2E1YzRjMzA2YmRmZjE5NGJhZTdl
NDJlCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvY2lfYnVpbHRfZGlmZi5zaAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKQEAgLTIyLDcgKzIyLDcg
QEAgbWFpbigpIHsKICAgICAgICAgJ2h0bWwvY2FudmFzL29mZnNjcmVlbi90ZXh0LzJkLnRleHQu
ZHJhdy5zdHJva2UuYmFzaWMucG5nJwogICAgICkKIAotICAgIC4vdXBkYXRlLWJ1aWx0LXRlc3Rz
LnNoCisgICAgLi93cHQgdXBkYXRlLWJ1aWx0CiAgICAgZ2l0IHVwZGF0ZS1pbmRleCAtLWFzc3Vt
ZS11bmNoYW5nZWQgJHtleGNsdWRlZFsqXX0KICAgICBnaXQgZGlmZiAtLWV4aXQtY29kZQogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9jaV9yZXNvdXJjZXNfdW5pdHRlc3Quc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVzdC5zaApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX2ludGVncmF0
aW9uX3Rlc3Quc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2NpX3Rvb2xzX2ludGVncmF0aW9uX3Rlc3Quc2gKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc191bml0dGVzdC5zaCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRl
c3Quc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5u
ZXJfaW5mcmFzdHJ1Y3R1cmUuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpz
b24KaW5kZXggM2ZiNmQyMjJiMTdkZWQ5Zjc4YjAyNjA3NTA5ZDA5MGIwNjYxZmI0ZC4uZDE1NmEz
MmU2NTJjMWE1OWRmZjkwZGUwYTcwM2NmOWE5YTQ5Mzc1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29u
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY29tbWFuZHMuanNvbgpAQCAtMjAsNiArMjAsMTYgQEAKICAgICAiaGVscCI6ICJSZWdlbmVy
YXRlIHRoZSBXUFQgY2VydGlmaWNhdGVzIiwKICAgICAidmlydHVhbGVudiI6IGZhbHNlCiAgIH0s
CisgICJ1cGRhdGUtYnVpbHQiOiB7CisgICAgInBhdGgiOiAidXBkYXRlX2J1aWx0LnB5IiwKKyAg
ICAic2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKKyAgICAiaGVs
cCI6ICJVcGRhdGUgYnVpbHQgdGVzdHMiLAorICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwKKyAgICAi
cmVxdWlyZW1lbnRzIjogWworICAgICAgICAicmVxdWlyZW1lbnRzX2J1aWxkLnR4dCIKKyAgICBd
CisgIH0sCiAgICJ0Yy1kb3dubG9hZCI6IHsKICAgICAicGF0aCI6ICJ0Yy9kb3dubG9hZC5weSIs
CiAgICAgInNjcmlwdCI6ICJydW4iLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9lcG9jaHNfdXBk
YXRlLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW50ZXJmYWNl
c191cGRhdGUuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2ludGVyZmFjZXNfdXBkYXRlLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAx
MDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvcmVxdWlyZW1lbnRzX2J1aWxkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcmVxdWlyZW1lbnRzX2J1aWxkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNzYxMDJkYzNlNjc1NTc2ZjU5Yjg3NWU1ZjkzMTllNjQxNmIzNTFiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9yZXF1aXJlbWVudHNfYnVpbGQudHh0CkBAIC0wLDAgKzEsNCBAQAorY2Fp
cm9jZmZpPT0xLjMuMAorZm9udHRvb2xzPT0zLjEzLjEKK3B5eWFtbAorZ2Vuc2hpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3J1bl90Yy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvcnVuX3RjLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXgg
YzgyMTNiMDMxZmMyMTg2MTYzOGYzMjljZjEzMTU5ZTgwYzAyMTBjZS4uN2U3NTkyMThjMDk4ZjQw
YjQzMmRkOGRjODg5NzkwYTQ2M2Y2N2JhMQotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQpAQCAtOTYs
MTIgKzk2LDE1IEBAIGRlZiBnZXRfcGFyc2VyKCk6CiAgICAgcC5hZGRfYXJndW1lbnQoIi0teHZm
YiIsCiAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJTdGFydCB4dmZiIikKLSAgICBwLmFkZF9hcmd1bWVudCgiLS1jaGVja291
dCIsCi0gICAgICAgICAgICAgICAgICAgaGVscD0iUmV2aXNpb24gdG8gY2hlY2tvdXQgYmVmb3Jl
IHN0YXJ0aW5nIGpvYiIpCiAgICAgcC5hZGRfYXJndW1lbnQoIi0taW5zdGFsbC1jZXJ0aWZpY2F0
ZXMiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAg
ICAgaGVscD0iSW5zdGFsbCB3ZWItcGxhdGZvcm0udGVzdCBjZXJ0aWZpY2F0ZXMgdG8gVUEgc3Rv
cmUiKQogICAgIHAuYWRkX2FyZ3VtZW50KCItLW5vLWluc3RhbGwtY2VydGlmaWNhdGVzIiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICBoZWxw
PSJEb24ndCBpbnN0YWxsIHdlYi1wbGF0Zm9ybS50ZXN0IGNlcnRpZmljYXRlcyB0byBVQSBzdG9y
ZSIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tbm8tc2V0dXAtcmVwb3NpdG9yeSIsIGFjdGlvbj0i
c3RvcmVfZmFsc2UiLCBkZXN0PSJzZXR1cF9yZXBvc2l0b3J5IiwKKyAgICAgICAgICAgICAgICAg
ICBoZWxwPSJEb24ndCBydW4gYW55IHJlcG9zaXRvcnkgc2V0dXAgc3RlcHMsIGluc3RlYWQgdXNl
IHRoZSBleGlzdGluZyB3b3JrdHJlZS4gIgorICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMg
aXMgdXNlZnVsIGZvciBsb2NhbCB0ZXN0aW5nLiIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tY2hl
Y2tvdXQiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlJldmlzaW9uIHRvIGNoZWNrb3V0IGJl
Zm9yZSBzdGFydGluZyBqb2IiKQogICAgIHAuYWRkX2FyZ3VtZW50KCItLXJlZiIsCiAgICAgICAg
ICAgICAgICAgICAgaGVscD0iR2l0IHJlZiBmb3IgdGhlIGNvbW1pdCB0aGF0IHNob3VsZCBiZSBy
dW4iKQogICAgIHAuYWRkX2FyZ3VtZW50KCItLWhlYWQtcmV2IiwKQEAgLTM5OCw3ICs0MDEsOCBA
QCBkZWYgbWFpbigpOgogICAgIGlmIGV2ZW50OgogICAgICAgICBzZXRfdmFyaWFibGVzKGV2ZW50
KQogCi0gICAgc2V0dXBfcmVwb3NpdG9yeShhcmdzKQorICAgIGlmIGFyZ3Muc2V0dXBfcmVwb3Np
dG9yeToKKyAgICAgICAgc2V0dXBfcmVwb3NpdG9yeShhcmdzKQogCiAgICAgIyBIYWNrIGZvciBi
YWNrd2FyZHMgY29tcGF0aWJpbGl0eQogICAgIGlmIGFyZ3Muc2NyaXB0IGluIFsicnVuLWFsbCIs
ICJsaW50IiwgInVwZGF0ZV9idWlsdCIsICJ0b29sc191bml0dGVzdCIsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rhc2tj
bHVzdGVyLXJ1bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAx
MDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19faW5pdF9fLnB5CmluZGV4IGE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlh
ZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9fX2luaXRfXy5w
eQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNl
YXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQppbmRleCBkMTlmZjc2OTJj
ZjRmNjMwMmNhMzNkOTI3YzUyMzA4MjA1MDI0MTMyLi5mNWMxODQ0NjBlMWM1NWI5NWQ2ZTA1NjMx
YzE1NTU5MTlmM2VmMGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZGVjaXNpb24ucHkK
QEAgLTEwMCw2ICsxMDAsMzEgQEAgZGVmIGdldF9leHRyYV9qb2JzKGV2ZW50KToKICAgICByZXR1
cm4gam9icwogCiAKK2RlZiBmaWx0ZXJfZXhjbHVkZWRfdXNlcnModGFza3MsIGV2ZW50KToKKyAg
ICAjIFNvbWUgdXNlcnMnIHB1bGwgcmVxdWVzdHMgYXJlIGV4Y2x1ZGVkIGZyb20gdGFza3MsCisg
ICAgIyBzdWNoIGFzIHB1bGwgcmVxdWVzdHMgZnJvbSBhdXRvbWF0ZWQgZXhwb3J0cy4KKyAgICB0
cnk6CisgICAgICAgIHN1Ym1pdHRlciA9IGV2ZW50WyJwdWxsX3JlcXVlc3QiXVsidXNlciJdWyJs
b2dpbiJdCisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAjIEp1c3QgaWdub3JlIGV4Y2x1
ZGVkIHVzZXJzIGlmIHRoZQorICAgICAgICAjIHVzZXJuYW1lIGNhbm5vdCBiZSBwdWxsZWQgZnJv
bSB0aGUgZXZlbnQuCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiVW5hYmxlIHRvIHJlYWQgdXNlcm5h
bWUgZnJvbSBldmVudC4gQ29udGludWluZy4iKQorICAgICAgICByZXR1cm4KKworICAgIGV4Y2x1
ZGVkX3Rhc2tzID0gW10KKyAgICAjIEEgc2VwYXJhdGUgbGlzdCBvZiBpdGVtcyBmb3IgdGFza3Mg
aXMgbmVlZGVkIHRvIGl0ZXJhdGUgb3ZlcgorICAgICMgYmVjYXVzZSByZW1vdmluZyBhbiBpdGVt
IGR1cmluZyBpdGVyYXRpb24gd2lsbCByYWlzZSBhbiBlcnJvci4KKyAgICBmb3IgbmFtZSwgdGFz
ayBpbiBsaXN0KHRhc2tzLml0ZW1zKCkpOgorICAgICAgICBpZiBzdWJtaXR0ZXIgaW4gdGFzay5n
ZXQoImV4Y2x1ZGUtdXNlcnMiLCBbXSk6CisgICAgICAgICAgICBleGNsdWRlZF90YXNrcy5hcHBl
bmQobmFtZSkKKyAgICAgICAgICAgIHRhc2tzLnBvcChuYW1lKSAgIyByZW1vdmluZyBleGNsdWRl
ZCB0YXNrCisgICAgaWYgZXhjbHVkZWRfdGFza3M6CisgICAgICAgIGxvZ2dlci5pbmZvKAorICAg
ICAgICAgICAgZiJUYXNrcyBleGNsdWRlZCBmb3IgdXNlciB7c3VibWl0dGVyfTpcbiAqICIgKwor
ICAgICAgICAgICAgIlxuICogIi5qb2luKGV4Y2x1ZGVkX3Rhc2tzKQorICAgICAgICApCisKKwog
ZGVmIGZpbHRlcl9zY2hlZHVsZV9pZihldmVudCwgdGFza3MpOgogICAgIHNjaGVkdWxlZCA9IE9y
ZGVyZWREaWN0KCkKICAgICBydW5fam9icyA9IE5vbmUKQEAgLTMzOCw2ICszNjMsNyBAQCBkZWYg
ZGVjaWRlKGV2ZW50KToKIAogICAgIHRyaWdnZXJlZF90YXNrcyA9IGZpbHRlcl90cmlnZ2Vycyhl
dmVudCwgYWxsX3Rhc2tzKQogICAgIHNjaGVkdWxlZF90YXNrcyA9IGZpbHRlcl9zY2hlZHVsZV9p
ZihldmVudCwgdHJpZ2dlcmVkX3Rhc2tzKQorICAgIGZpbHRlcl9leGNsdWRlZF91c2VycyhzY2hl
ZHVsZWRfdGFza3MsIGV2ZW50KQogCiAgICAgbG9nZ2VyLmluZm8oIlVOU0NIRURVTEVEIFRBU0tT
OlxuICAlcyIgJSAiXG4gICIuam9pbihzb3J0ZWQoc2V0KGFsbF90YXNrcy5rZXlzKCkpIC0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNldChzY2hlZHVsZWRfdGFza3Mua2V5cygpKSkpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy90ZXN0Lnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGMvdGFza3MvdGVzdC55bWwKaW5kZXggNjQ4NGU2NTRhYzhiNDg5YWMzMmVlYTgwZDVjMGQ0NTJi
ZWUxZGIxZC4uNGM3NDYyZDFhZTU0NDY1ZTZjNzMyMzIwMzgxOTlmMjA4Mjk4YWEzNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90YXNrcy90ZXN0LnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCkBAIC0yOTYsOSArMjk2LDEz
IEBAIHRhc2tzOgogICAgICAgICAtIHZhcnM6CiAgICAgICAgICAgICBicm93c2VyOiBmaXJlZm94
CiAgICAgICAgICAgICBjaGFubmVsOiBuaWdodGx5CisgICAgICAgICAgICBzdGFiaWxpdHktZXhj
bHVkZS11c2VyczoKKyAgICAgICAgICAgICAgLSBtb3otd3B0c3luYy1ib3QKICAgICAgICAgLSB2
YXJzOgogICAgICAgICAgICAgYnJvd3NlcjogY2hyb21lCiAgICAgICAgICAgICBjaGFubmVsOiBk
ZXYKKyAgICAgICAgICAgIHN0YWJpbGl0eS1leGNsdWRlLXVzZXJzOgorICAgICAgICAgICAgICAt
IGNocm9taXVtLXdwdC1leHBvcnQtYm90CiAgICAgICBkbzoKICAgICAgICAgLSB3cHQtJHt2YXJz
LmJyb3dzZXJ9LSR7dmFycy5jaGFubmVsfS1zdGFiaWxpdHk6CiAgICAgICAgICAgICB1c2U6CkBA
IC0zMjIsNiArMzI2LDcgQEAgdGFza3M6CiAgICAgICAgICAgICAgIC0tdmVyaWZ5LXJlcGVhdC1s
b29wPTAKICAgICAgICAgICAgICAgLS12ZXJpZnktcmVwZWF0LXJlc3RhcnQ9MTAKICAgICAgICAg
ICAgICAgLS1naXRodWItY2hlY2tzLXRleHQtZmlsZT0iL2hvbWUvdGVzdC9hcnRpZmFjdHMvY2hl
Y2tydW4ubWQiCisgICAgICAgICAgICBleGNsdWRlLXVzZXJzOiAke3ZhcnMuc3RhYmlsaXR5LWV4
Y2x1ZGUtdXNlcnN9CiAKICAgICAgICAgLSB3cHQtJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5jaGFu
bmVsfS1yZXN1bHRzOgogICAgICAgICAgICAgdXNlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdGFza3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkMjNjMjUxYjY5MGU2MzY5NjNjYjcxMDhmZWQxMzRjZWIxN2UxMDYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTZlZmRjOWUxZWJiMGY0NzViMmQ3Y2M5
N2FjYjUxYTEzYTYzMGQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL2Vwb2Noc19kYWlseV9wdXNoX2V2ZW50Lmpzb24KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3Rk
YXRhL21hc3Rlcl9wdXNoX2V2ZW50Lmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50Lmpzb24KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3Rk
YXRhL3ByX2V2ZW50X3Rlc3RzX2FmZmVjdGVkLmpzb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkw
MWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy9fX2luaXRfXy5weQpAQCAt
MSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0
aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKaW5kZXgg
ZmY2Y2E3YTRjNDhjMmJmNGQ4NWM4NzZkNTkwZjhmMDc3ODcyYjA0ZS4uZWRlM2JkYmE3YzVkYjY5
NTRiOWZmYjcyZjZjMmU0M2YwMDkwMzk4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGVzdHMvdGVzdF92YWxpZC5weQpAQCAtMzcsNiArMzcsMjggQEAgZGVmIHRlc3RfdmVy
aWZ5X3Rhc2tjbHVzdGVyX3ltbCgpOgogICAgICAgICBqc29uZS5yZW5kZXIodGVtcGxhdGUsIGNv
bnRleHQpCiAKIAorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJldmVudF9wYXRoLGV4cGVjdGVk
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbKCJwcl9ldmVudC5qc29uIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyb3plbnNldChbImxpbnQiLCAid3B0LWNocm9tZS1kZXYtc3Rh
YmlsaXR5Il0pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCJwcl9ldmVudF90ZXN0c19h
ZmZlY3RlZC5qc29uIiwgZnJvemVuc2V0KFsibGludCJdKSldCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKQorZGVmIHRlc3RfZXhjbHVkZV91c2VycyhldmVudF9wYXRoLCBleHBlY3RlZCk6Cisg
ICAgIiIiVmVyaWZ5IHRoYXQgdGFza3MgZXhjbHVkZWQgYnkgdGhlIFBSIHN1Ym1pdHRlciBhcmUg
cHJvcGVybHkgZXhjbHVkZWQiIiIKKyAgICB0YXNrcyA9IHsKKyAgICAgICAgImxpbnQiOiB7Cisg
ICAgICAgICAgICAiY29tbWFuZHMiOiAid3B0IGV4YW1wbGUiCisgICAgICAgIH0sCisgICAgICAg
ICJ3cHQtY2hyb21lLWRldi1zdGFiaWxpdHkiOiB7CisgICAgICAgICAgICAiY29tbWFuZHMiOiAi
d3B0IGV4YW1wbGUiLAorICAgICAgICAgICAgImV4Y2x1ZGUtdXNlcnMiOiBbImNocm9taXVtLXdw
dC1leHBvcnQtYm90Il0KKyAgICAgICAgfQorICAgIH0KKyAgICB3aXRoIG9wZW4oZGF0YV9wYXRo
KGV2ZW50X3BhdGgpLCBlbmNvZGluZz0idXRmOCIpIGFzIGY6CisgICAgICAgIGV2ZW50ID0ganNv
bi5sb2FkKGYpCisgICAgICAgIGRlY2lzaW9uLmZpbHRlcl9leGNsdWRlZF91c2Vycyh0YXNrcywg
ZXZlbnQpCisgICAgICAgIGFzc2VydCBzZXQodGFza3MpID09IGV4cGVjdGVkCisKKwogZGVmIHRl
c3RfdmVyaWZ5X3BheWxvYWQoKToKICAgICAiIiJWZXJpZnkgdGhhdCB0aGUgZGVjaXNpb24gdGFz
ayBwcm9kdWNlcyB0YXNrcyB3aXRoIGEgdmFsaWQgcGF5bG9hZCIiIgogICAgIGZyb20gdG9vbHMu
Y2kudGMuZGVjaXNpb24gaW1wb3J0IGRlY2lkZQpAQCAtMTQ1LDcgKzE2Nyw2IEBAIGRlZiB0ZXN0
X3ZlcmlmeV9wYXlsb2FkKCk6CiAgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1zdGFiaWxpdHkn
LAogICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVzdWx0cycsCiAgICAgICAnd3B0LWZpcmVm
b3gtbmlnaHRseS1yZXN1bHRzLXdpdGhvdXQtY2hhbmdlcycsCi0gICAgICAnd3B0LWNocm9tZS1k
ZXYtc3RhYmlsaXR5JywKICAgICAgICd3cHQtY2hyb21lLWRldi1yZXN1bHRzJywKICAgICAgICd3
cHQtY2hyb21lLWRldi1yZXN1bHRzLXdpdGhvdXQtY2hhbmdlcycsCiAgICAgICAnbGludCcsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL3RjL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA1OGVmZTJkZGI1MGZmOTY5NTljZTRhNmEwMjUx
OWQ5Mzk1ZDAyMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVz
dF90YXNrZ3JhcGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTIz
NGM2YWQxN2VjZTg5ZWFhN2VkZmRkZjQxNGM3ODE5OTAwODQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9u
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy9kb3dubG9hZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvZ2l0aHViX2NoZWNrc19vdXRwdXQucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3NpbmtfdGFzay5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMv
dGFza2dyYXBoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy9fX2luaXRfXy5weQpp
bmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIy
ZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViOTdjYjA3ODFk
ZWY5NjhkZWJjYWM0YzY5Yjg4Zjc0M2Q2MjJmMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS91cGRhdGVfYnVpbHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3VwZGF0ZV9idWlsdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWRhYmE2NGY1
ZGI1MjhkMDk3Mzk5NTIwNGFiMzYzZTQzYzA5NjFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS91cGRhdGVfYnVp
bHQucHkKQEAgLTAsMCArMSw2OSBAQAoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0
IHN1YnByb2Nlc3MKK2Zyb20gYXJncGFyc2UgaW1wb3J0IEFyZ3VtZW50UGFyc2VyCisKK2xvZ2dl
ciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKword3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3Mu
cGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGly
KSkKKworc2NyaXB0cyA9IHsKKyAgICAiY2FudmFzIjogWyJodG1sL2NhbnZhcy90b29scy9nZW50
ZXN0LnB5Il0sCisgICAgImNvbmZvcm1hbmNlLWNoZWNrZXJzIjogWyJjb25mb3JtYW5jZS1jaGVj
a2Vycy90b29scy9kbC5weSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25mb3Jt
YW5jZS1jaGVja2Vycy90b29scy9pbnMtZGVsLWRhdGV0aW1lLnB5IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbmZvcm1hbmNlLWNoZWNrZXJzL3Rvb2xzL3BpY3R1cmUucHkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZm9ybWFuY2UtY2hlY2tlcnMvdG9vbHMv
dXJsLnB5Il0sCisgICAgImNzcy11aSI6IFsiY3NzL2Nzcy11aS90b29scy9hcHBlYXJhbmNlLWJ1
aWxkLXdlYmtpdC1yZWZ0ZXN0cy5weSJdLAorICAgICMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8zMjA2MAorICAgICMgImNzcy10ZXh0Ijog
WyJjc3MvY3NzLXRleHQvbGluZS1icmVha2luZy90b29scy9nZW5lcmF0ZS1zZWdtZW50LWJyZWFr
LXRyYW5zZm9ybWF0aW9uLXJ1bGVzLXRlc3RzLnB5Il0sCisgICAgIyAiY3NzLXRleHQtZGVjb3Ii
OiBbImNzcy9jc3MtdGV4dC1kZWNvci90b29scy9nZW5lcmF0ZS10ZXh0LWVtcGhhc2lzLWxpbmUt
aGVpZ2h0LXRlc3RzLnB5IiwKKyAgICAjICAgICAgICAgICAgICAgICAgICAiY3NzL2Nzcy10ZXh0
LWRlY29yL3Rvb2xzL2dlbmVyYXRlLXRleHQtZW1waGFzaXMtcG9zaXRpb24tcHJvcGVydHktdGVz
dHMucHkiLAorICAgICMgICAgICAgICAgICAgICAgICAgICJjc3MvY3NzLXRleHQtZGVjb3IvdG9v
bHMvZ2VuZXJhdGUtdGV4dC1lbXBoYXNpcy1ydWJ5LXRlc3RzLnB5IiwKKyAgICAjICAgICAgICAg
ICAgICAgICAgICAiY3NzL2Nzcy10ZXh0LWRlY29yL3Rvb2xzL2dlbmVyYXRlLXRleHQtZW1waGFz
aXMtc3R5bGUtcHJvcGVydHktdGVzdHMucHkiXSwKKyAgICAiaHRtbDVsaWIiOiBbImh0bWwvdG9v
bHMvdXBkYXRlX2h0bWw1bGliX3Rlc3RzLnB5Il0sCisgICAgImluZnJhc3RydWN0dXJlIjogWyJp
bmZyYXN0cnVjdHVyZS9hc3N1bXB0aW9ucy90b29scy9haGVtLWdlbmVyYXRlLXRhYmxlLnB5Il0s
CisgICAgIm1pbWVzbmlmZiI6IFsibWltZXNuaWZmL21pbWUtdHlwZXMvcmVzb3VyY2VzL2dlbmVy
YXRlZC1taW1lLXR5cGVzLnB5Il0sCisgICAgInNwZWN1bGF0aXZlLXBhcnNpbmciOiBbImh0bWwv
c3ludGF4L3NwZWN1bGF0aXZlLXBhcnNpbmcvdG9vbHMvZ2VuZXJhdGUucHkiXQorfQorCisKK2Rl
ZiBnZXRfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tbGlzdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJMaXN0IHN1aXRlcyB0aGF0IGNhbiBiZSB1cGRhdGVkIGFuZCB0
aGUgcmVsYXRlZCBzY3JpcHQgZmlsZXMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taW5j
bHVkZSIsIG5hcmdzPSIqIiwgY2hvaWNlcz1zY3JpcHRzLmtleXMoKSwgZGVmYXVsdD1Ob25lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU3VpdGVzIHRvIHVwZGF0ZSAoZGVmYXVsdCBp
cyB0byB1cGRhdGUgZXZlcnl0aGluZykiKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgbGlz
dF9zdWl0ZXMoaW5jbHVkZSk6CisgICAgZm9yIG5hbWUsIHNjcmlwdF9wYXRocyBpbiBzY3JpcHRz
Lml0ZW1zKCk6CisgICAgICAgIGlmIG5hbWUgaW4gaW5jbHVkZToKKyAgICAgICAgICAgIHByaW50
KG5hbWUpCisgICAgICAgICAgICBmb3Igc2NyaXB0X3BhdGggaW4gc2NyaXB0X3BhdGhzOgorICAg
ICAgICAgICAgICAgIHByaW50KGYiICAgIHtzY3JpcHRfcGF0aH0iKQorCisKK2RlZiBydW4odmVu
diwgKiprd2FyZ3MpOgorICAgIGluY2x1ZGUgPSBrd2FyZ3NbImluY2x1ZGUiXQorICAgIGlmIGlu
Y2x1ZGUgaXMgTm9uZToKKyAgICAgICAgaW5jbHVkZSA9IGxpc3Qoc2NyaXB0cy5rZXlzKCkpCisK
KyAgICBpZiBrd2FyZ3NbImxpc3QiXToKKyAgICAgICAgbGlzdF9zdWl0ZXMoaW5jbHVkZSkKKyAg
ICAgICAgcmV0dXJuIDAKKworICAgIGZhaWxlZCA9IEZhbHNlCisKKyAgICBmb3IgdGFyZ2V0IGlu
IGluY2x1ZGU6CisgICAgICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0c1t0YXJnZXRdOgorICAgICAg
ICAgICAgc2NyaXB0X3BhdGggPSBzY3JpcHQucmVwbGFjZSgiLyIsIG9zLnBhdGguc2VwKQorICAg
ICAgICAgICAgY21kID0gW29zLnBhdGguam9pbih2ZW52LmJpbl9wYXRoLCAicHl0aG9uMyIpLCBv
cy5wYXRoLmpvaW4od3B0X3Jvb3QsIHNjcmlwdF9wYXRoKV0KKyAgICAgICAgICAgIGxvZ2dlci5p
bmZvKGYiUnVubmluZyB7JyAnLmpvaW4oY21kKX0iKQorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChjbWQsIGN3ZD1vcy5wYXRoLmRpcm5hbWUo
c2NyaXB0X3BhdGgpKQorICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz
c0Vycm9yOgorICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihmIlVwZGF0ZSBzY3JpcHQge3Nj
cmlwdH0gZmFpbGVkIikKKyAgICAgICAgICAgICAgICBmYWlsZWQgPSBUcnVlCisKKyAgICByZXR1
cm4gMSBpZiBmYWlsZWQgZWxzZSAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2NhOWRkZDBhMDM0Njg4NmM2NTg5ZTNh
OTQ4YTQ5NzljZGZlMzFjOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvY2lfYnVpbHRfZGlmZi5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc19p
bnRlZ3JhdGlvbl90ZXN0LnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV90b29sc191bml0dGVzdC5zaAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3Ry
dWN0dXJlLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9pbnRlcmZhY2VzX3VwZGF0ZS5zaAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvam9i
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvbWFrZV9ob3N0c19maWxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9tYW5pZmVzdF9idWlsZC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcmVnZW5fY2VydHMucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGFza2NsdXN0ZXItcnVuLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS93ZWJzaXRlX2J1aWxkLnNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQu
c2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3dlYnNpdGVfYnVpbGQuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCBm
YzI1NWFlODNmMjIxOWQzZTMyYTg1OWYwZDYzNzQ1ZWQ2ODJiNDM2Li5hZGZkZjQxYWU3MzgxMmRl
MTc3OTc4YWMwN2Y4N2Q2YzhlYjEwYjEwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5zaAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVp
bGQuc2gKQEAgLTEwLDcgKzEwLDggQEAgc291cmNlX3JldmlzaW9uPSQoZ2l0IHJldi1wYXJzZSBI
RUFEKQogIyB3cHQtcHItYm90LgogIwogIyBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9lbi9hcnRp
Y2xlcy9nZW5lcmljLWpla3lsbC1idWlsZC1mYWlsdXJlcwotcmVtb3RlX3VybD1odHRwczovLyR7
REVQTE9ZX1RPS0VOfUBnaXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0CityZW1v
dGVfdXJsPWh0dHBzOi8vJHtERVBMT1lfVE9LRU59QGdpdGh1Yi5jb20vJHtHSVRIVUJfUkVQT1NJ
VE9SWX0uZ2l0Cit3cHRfcm9vdD0kUFdECiAKIGZ1bmN0aW9uIGpzb25fcHJvcGVydHkgewogICBj
YXQgJHsxfSB8IFwKQEAgLTMwLDE5ICszMSwyMyBAQCBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIu
bmFtZSAid3B0LXByLWJvdCIKIAogIyBQcmVwYXJlIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHNvIHRo
YXQgdGhlIG5ldyBidWlsZCBjYW4gYmUgcHVzaGVkIHRvIHRoZQogIyByZXBvc2l0b3J5IGFzIGFu
IGluY3JlbWVudGFsIGNoYW5nZSB0byB0aGUgcHJpb3IgYnVpbGQuCi1ta2RpciAtcCBkb2NzL19i
dWlsZC9odG1sCi1jZCBkb2NzL19idWlsZC9odG1sCitta2RpciAtcCBkb2NzL19idWlsZAorY2Qg
ZG9jcy9fYnVpbGQKIGdpdCBpbml0CiBnaXQgZmV0Y2ggLS1kZXB0aCAxICR7cmVtb3RlX3VybH0g
Z2gtcGFnZXMKIGdpdCBjaGVja291dCBGRVRDSF9IRUFECiBnaXQgcm0gLXJmIC4KIAogIyBCdWls
ZCB0aGUgd2Vic2l0ZQotY2QgLi4vLi4KLXBpcCBpbnN0YWxsIC1yIHJlcXVpcmVtZW50cy50eHQK
LW1ha2UgaHRtbAordW5zZXQgTk9ERV9FTlYKK2NkICR7d3B0X3Jvb3R9L2RvY3MKK25wbSBpbnN0
YWxsIC4KK2V4cG9ydCBQQVRIPSIkUFdEL25vZGVfbW9kdWxlcy8uYmluOiRQQVRIIgorY2QgJHt3
cHRfcm9vdH0KIAotY2QgX2J1aWxkL2h0bWwKKy4vd3B0IGJ1aWxkLWRvY3MKKworY2QgZG9jcy9f
YnVpbGQKICMgQ29uZmlndXJlIEROUwogZWNobyB3ZWItcGxhdGZvcm0tdGVzdHMub3JnID4gQ05B
TUUKICMgRGlzYWJsZSBKZWt5bGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyLy5iYXNocmMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci8uYmFzaHJjCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiZTAzYzQ4OWFhNTI4MzYwMGM0NjBlMTJhZjRiNjM4NjkyMzExZmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2RvY2tlci8uYmFzaHJjCkBAIC0wLDAgKzEsNCBAQAorZnVuY3Rpb24geHZmYl9zdGFydCgp
IHsKKyAgICBHRU9NRVRSWT0iJFNDUkVFTl9XSURUSCIieCIiJFNDUkVFTl9IRUlHSFQiIngiIiRT
Q1JFRU5fREVQVEgiCisgICAgeHZmYi1ydW4gLS1zZXJ2ZXItYXJncz0iLXNjcmVlbiAwICRHRU9N
RVRSWSAtYWMgK2V4dGVuc2lvbiBSQU5EUiIgJEAKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2Nr
ZXIvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhi
YzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2Nr
ZXIvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9kb2NrZXIvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZp
bGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1v
ZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRh
dGlvbi9Eb2NrZXJmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9Eb2NrZXJmaWxlCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMDFmOThlNGQ0ZGYwZTdmNzUwMWJiNWQ3MDU3ZDFkNTI4MjIxYmRl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50
YXRpb24vRG9ja2VyZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotRlJPTSBweXRo
b246Mi1zdHJldGNoCi0KLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLS15
ZXMgZ2l0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1l
bnRhdGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMy
NGIyZjQwOWFmMTcyYzk4NjMxYjliYWExNGMzODFmZTkzYjgxZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9E
b2NrZXJmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5CmluZGV4IGMw
NTkzN2I3M2RjZGE3NWI4MGViZjNjYzJjYTJmOGRjY2RiMGRmZGEuLjI3YTBjZDU5MDMxNGE1ZmU3
MDVhODE1NTJmMTgyMTA0ZTIxNGUzNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zy
b250ZW5kLnB5CkBAIC0xMTMsNiArMTEzLDggQEAgZGVmIHBhcnNlcl9ydW4oKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICIvaG9tZS90ZXN0L3dlYi1wbGF0Zm9ybS10ZXN0cy8iKQogICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoIi0tcHJpdmlsZWdlZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGhlIGltYWdlIGluIHByaXZpbGVkZ2Vk
IG1vZGUgKHJlcXVpcmVkIGZvciBlbXVsYXRvcnMpIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLXRhZyIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJ3cHQ6bG9jYWwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iRG9ja2VyIGltYWdlIHRhZyB0byB1c2UgKGRlZmF1bHQgd3B0
OmxvY2FsKSIpCiAgICAgcmV0dXJuIHBhcnNlcgogCiAKQEAgLTEzMCw3ICsxMzIsNyBAQCBkZWYg
cnVuKCphcmdzLCAqKmt3YXJncyk6CiAgICAgZWxzZToKICAgICAgICAgYXJncy5leHRlbmQoWyIt
LW1vdW50IiwKICAgICAgICAgICAgICAgICAgICAgICJ0eXBlPWJpbmQsc291cmNlPSVzLHRhcmdl
dD0vaG9tZS90ZXN0L3dlYi1wbGF0Zm9ybS10ZXN0cyIgJSB3cHRfcm9vdF0pCi0gICAgYXJncy5l
eHRlbmQoWyItaXQiLCAid3B0OmxvY2FsIl0pCisgICAgYXJncy5leHRlbmQoWyItaXQiLCBrd2Fy
Z3NbInRhZyJdXSkKIAogICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGFyZ3MpCiAgICAgcHJv
Yy53YWl0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvZG9ja2VyL3JldHJ5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvcmV0cnkucHkKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQuc2ggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaApvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTFjYmZiYjkwZDc0
YTdiZWRhNzViZDFjMjViZmI1ZjhhMzE2YThhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZG9ja2VyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIv
Y29tbWFuZHMuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvcmV0cnkucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zZWNjb21wLmpzb24KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9z
dGFydC5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9naXRpZ25vcmUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weQppbmRl
eCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dp
dGlnbm9yZS9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJl
ZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdu
b3JlL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZ2l0aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5
CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2Vh
cmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyYjgwNDAyY2ZmYjIyODkx
Yjg3OTZkZGYzNDkyYTc4ZDZiNjdlZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9naXRpZ25vcmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rl
c3RfZ2l0aWdub3JlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjVjY2UyOGZmNzk2YWZi
MWYyZDYzODgwZDA3MDAwNzdjN2Q0ZmUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZ2l0aWdub3JlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTgg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9naXRpZ25vcmUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1
YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3
NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL19f
aW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRo
b24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1leHBlY3RlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDA0OTFmZDdlNWJiNmZhMjhjNTE3YTBiYjMyYjhi
NTA2NTM5ZDRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi0xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1y
ZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLXJlZi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQwMDQ5MWZkN2U1YmI2ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1yZWYuaHRtbApAQCAtMCwwICsxIEBACisx
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAwNDkxZmQ3ZTViYjZmYTI4YzUxN2EwYmIzMmI4
YjUwNjUzOWQ0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1leHBlY3RlZC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL21hdGNoL2EtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1y
ZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kMDA0OTFmZDdlNWJiNmZhMjhjNTE3YTBiYjMyYjhiNTA2NTM5
ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2Et
cmVmLmh0bWwKQEAgLTAsMCArMSBAQAorMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC90b29scy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODFkYmEzNDRjYmFmNjdhZTI1NTVmM2M4MGJiMzBjZmMyZWNk
ODYwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC90b29scy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGZiMzUyM2VlMjI0ZGNjNjlkZjM2OWRlMzNiNzU0OThmN2NhNzU0
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC9zdXBwb3J0L2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVl
L21hdGNoL3Rvb2xzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21h
dGNoL3Rvb2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
YzhjYjBmMjkzMzljNThlMDFiNjgzN2MxMTAyOGE0YzA1YjE5NzZhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC90b29scy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy9hLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2NmYTZkZGMwYjUxNTUxZmQ0MWM2ZDlhOGQwYWYyZDU5NTE5
NTY3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gv
YS1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtZXhwZWN0ZWQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNmYmYwODg4NmZjYTlhOTFjYjc1M2Vj
ODczNGM4NGZjYmU1MmM5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9j
c3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvYS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9ub3QtbWF0Y2gvYS1yZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2ZiZjA4ODg2ZmNhOWE5MWNi
NzUzZWM4NzM0Yzg0ZmNiZTUyYzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9j
c3MtdW5pcXVlL25vdC1tYXRjaC9hLXJlZi5odG1sCkBAIC0wLDAgKzEgQEAKKzIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUyMzQ2NDBlYTNhZGJmYWNi
ODJlYjNhOWFhNjliZGQ5YzAxNGFmYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3N1cHBvcnQv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3N1cHBvcnQvYS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rvb2xzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90b29scy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRmYTc4MTg5ODliYjM2MjQyMmUx
NDFmZjE3ZjAzMjEwNzkwMGZmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rvb2xzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC90b29scy9hLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4ZGRiYzNiYTBjYjY2YzgxNzVmZjY5MGYwNmI4MzYxMjBlMmRhM2E3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1h
dGNoL2EtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gv
YS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvcmVsYXRpdmUtdGVz
dGhhcm5lc3MtaW50ZXJhY3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9yZWxhdGl2
ZS10ZXN0aGFybmVzcy1pbnRlcmFjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MGVmOTgzYTkzOWRhYTQ1
YjQ2NzFhZWYwYWIwMDk0NDVhNmFhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvcmVsYXRpdmUtdGVzdGhhcm5lc3MtaW50ZXJhY3QuaHRtbApAQCAtMCwwICsx
LDUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cHM6Ly93d3cu
dzMub3JnL1RSL0NTUzIvdmlzdWZ4Lmh0bWwjb3ZlcmZsb3ctY2xpcHBpbmciPgorPG1ldGEgbmFt
ZT1mbGFncyBjb250ZW50PWludGVyYWN0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvc2VsZWN0b3JzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkNTgyYTQ2MGYyY2NkMWIwNDMwMGIyYWZkMTA3ZTE3N2UyNDNlODVmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9zZWxlY3RvcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL2Eu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM0NjQ5YTQ5Y2Fi
ZDQ4MDliYzQ3MWI4NmYzMDJlZjk2YzEwZGExOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29s
cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3Rvb2xzL2EuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmY0M2Q0YTU0NTRkMmQ1Y2FiYjAwMWM3ZDY3YmIyOWQ5YWExOGU3
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0
L2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGI2Yjg4NzgzMmMyN2YyZDRjODk3Mzhh
MzMxMzUzYzc0NjNiYmY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS90b29scy9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRkMzI1MWUzNTRjNzYzYjFhNTliOTFmN2U4
MTFkZmYyZmVkZWUyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1l
eHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EuaHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9yZWxhdGl2ZS10ZXN0aGFybmVzcy5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
cmVmL2V4aXN0ZW50X3JlbGF0aXZlLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9yZWYvZXhpc3RlbnRfcmVsYXRpdmUtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50
X3JlbGF0aXZlLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3
NWFkOGMyZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxlX3BhdGgu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxlX3BhdGguaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTgw
YzFmMjBkZGYwZGZmOGJhMTBlZmYzY2NlNGZjNzI4NmY3OWM4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L3JlZi9zYW1lX2ZpbGVfcGF0aC5odG1sCkBAIC0wLDAgKzEgQEAKKzxsaW5rIHJl
bD0ibWF0Y2giIGhyZWY9InNhbWVfZmlsZV9wYXRoLmh0bWwiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L3JlZi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NGRhNTlhOTJjYjY0YzI2YWRjZjNhODUzMzk3
ZTczN2Q2MDU0NzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJzb2x1dGUuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9y
ZWYvZXhpc3RlbnRfcmVsYXRpdmUtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvZXhpc3Rl
bnRfcmVsYXRpdmUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcmVsYXRpdmUuaHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9yZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2Ft
ZV9maWxlX2VtcHR5Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0cy9kaXIxL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2RpcjEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyMjk5MWQ5YmU2Y2NmNDE4ODAxMDAwNmE2ZTZkODM2OThk
MjhlN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L3Rlc3RzL2RpcjEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVzdHMvZGlyMS9hLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
dGVzdHMvZGlyMS9hLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2RpcjEvYS54aHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS90ZXN0cy9kaXIxL2IuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL2RpcjIvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdGVzdHMvZGlyMi93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNkNjY5ZTY1M2JmYzIzN2I2Mzc4ZjNhZTllZTY2NzUw
YzU1MGJhYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvdGVzdHMvZGlyMi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS90ZXN0cy9kaXIyL2EueGh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS90ZXN0cy9yZWxhdGl2ZS10ZXN0aGFybmVzcy1tYW51YWwuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS90ZXN0cy9yZWxhdGl2ZS10ZXN0aGFybmVzcy1tYW51YWwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNTY5M2I5OTBjMWQ1MTY1YWE1MTAzNzNkNWM2OTU1ZTA2NjFiOGEwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L3Rlc3RzL3JlbGF0aXZlLXRlc3RoYXJuZXNzLW1hbnVhbC5odG1sCkBA
IC0wLDAgKzEsMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzRkMTY3MzBmNzAwNGY3NGQyMzRjOWNjYWRiMmMwZWNl
ZDJiNTA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9hYm91dF9ibGFuay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbi5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Jyb2tlbl9pZ25vcmVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvZGVwZW5kZW5jeS5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2xpbnQuaWdub3JlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L29rYXkuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2N2I1MTg5ZmJlMTFkOThjZGQ3ODhmMzA2ZGU2NTZiMTY2OGJl
Yjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy90ZXN0X2xpbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVj
ZWFjNThkNGVkNzA1MzRiZTk4NjJiYzhlYmVlZTcwY2YxNWQ5YzcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2NvbW1hbmRzLmpzb24KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRj
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC9saW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3J1bGVzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NhdGFsb2cvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L2NhdGFsb2cvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkMTM5MTFjMGE3YmJlY2VjZjZhYWRmYTEwNWZkOGQ1NTlhMDcyNzYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3ho
dG1sLmR0ZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3hodG1sLmR0ZCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY2F0YWxvZy94aHRt
bC5kdGQKaW5kZXggODA0MjM0ODBiYzU5NzU0MjY5MTAxMGE1MGNhMmMxNmY5NDVhNzA4NC4uNDMw
N2IxYzJjNDMzMmIyOTQ5OTlhNWZhMzEzYTZhMjhlZWM1N2ZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRh
bG9nL3hodG1sLmR0ZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NhdGFsb2cveGh0bWwuZHRkCkBAIC0xLDIxMjUgKzEsMjEy
NSBAQAotPCEtLUVOVElUWSBUYWIgIiYjeDk7Ii0tPgotPCEtLUVOVElUWSBOZXdMaW5lICImI3hB
OyItLT4KLTwhLS1FTlRJVFkgZXhjbCAiJiN4MjE7Ii0tPgotPCEtLUVOVElUWSBxdW90ICImI3gy
MjsiLS0+Ci08IS0tRU5USVRZIFFVT1QgIiYjeDIyOyItLT4KLTwhLS1FTlRJVFkgbnVtICImI3gy
MzsiLS0+Ci08IS0tRU5USVRZIGRvbGxhciAiJiN4MjQ7Ii0tPgotPCEtLUVOVElUWSBwZXJjbnQg
IiYjeDI1OyItLT4KLTwhLS1FTlRJVFkgYW1wICImI3gyNjsjeDI2OyItLT4KLTwhLS1FTlRJVFkg
QU1QICImI3gyNjsjeDI2OyItLT4KLTwhLS1FTlRJVFkgYXBvcyAiJiN4Mjc7Ii0tPgotPCEtLUVO
VElUWSBscGFyICImI3gyODsiLS0+Ci08IS0tRU5USVRZIHJwYXIgIiYjeDI5OyItLT4KLTwhLS1F
TlRJVFkgYXN0ICImI3gyQTsiLS0+Ci08IS0tRU5USVRZIG1pZGFzdCAiJiN4MkE7Ii0tPgotPCEt
LUVOVElUWSBwbHVzICImI3gyQjsiLS0+Ci08IS0tRU5USVRZIGNvbW1hICImI3gyQzsiLS0+Ci08
IS0tRU5USVRZIHBlcmlvZCAiJiN4MkU7Ii0tPgotPCEtLUVOVElUWSBzb2wgIiYjeDJGOyItLT4K
LTwhLS1FTlRJVFkgY29sb24gIiYjeDNBOyItLT4KLTwhLS1FTlRJVFkgc2VtaSAiJiN4M0I7Ii0t
PgotPCEtLUVOVElUWSBsdCAiJiN4MjY7I3gzQzsiLS0+Ci08IS0tRU5USVRZIExUICImI3gyNjsj
eDNDOyItLT4KLTwhLS1FTlRJVFkgbnZsdCAiJiN4MjY7I3gzQzsmI3gyMEQyOyItLT4KLTwhLS1F
TlRJVFkgZXF1YWxzICImI3gzRDsiLS0+Ci08IS0tRU5USVRZIGJuZSAiJiN4M0Q7JiN4MjBFNTsi
LS0+Ci08IS0tRU5USVRZIGd0ICImI3gzRTsiLS0+Ci08IS0tRU5USVRZIEdUICImI3gzRTsiLS0+
Ci08IS0tRU5USVRZIG52Z3QgIiYjeDNFOyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBxdWVzdCAi
JiN4M0Y7Ii0tPgotPCEtLUVOVElUWSBjb21tYXQgIiYjeDQwOyItLT4KLTwhLS1FTlRJVFkgbHNx
YiAiJiN4NUI7Ii0tPgotPCEtLUVOVElUWSBsYnJhY2sgIiYjeDVCOyItLT4KLTwhLS1FTlRJVFkg
YnNvbCAiJiN4NUM7Ii0tPgotPCEtLUVOVElUWSByc3FiICImI3g1RDsiLS0+Ci08IS0tRU5USVRZ
IHJicmFjayAiJiN4NUQ7Ii0tPgotPCEtLUVOVElUWSBIYXQgIiYjeDVFOyItLT4KLTwhLS1FTlRJ
VFkgbG93YmFyICImI3g1RjsiLS0+Ci08IS0tRU5USVRZIFVuZGVyQmFyICImI3g1RjsiLS0+Ci08
IS0tRU5USVRZIGdyYXZlICImI3g2MDsiLS0+Ci08IS0tRU5USVRZIERpYWNyaXRpY2FsR3JhdmUg
IiYjeDYwOyItLT4KLTwhLS1FTlRJVFkgZmpsaWcgIiYjeDY2OyYjeDZBOyItLT4KLTwhLS1FTlRJ
VFkgbGN1YiAiJiN4N0I7Ii0tPgotPCEtLUVOVElUWSBsYnJhY2UgIiYjeDdCOyItLT4KLTwhLS1F
TlRJVFkgdmVyYmFyICImI3g3QzsiLS0+Ci08IS0tRU5USVRZIHZlcnQgIiYjeDdDOyItLT4KLTwh
LS1FTlRJVFkgVmVydGljYWxMaW5lICImI3g3QzsiLS0+Ci08IS0tRU5USVRZIHJjdWIgIiYjeDdE
OyItLT4KLTwhLS1FTlRJVFkgcmJyYWNlICImI3g3RDsiLS0+Ci08IS0tRU5USVRZIG5ic3AgIiYj
eEEwOyItLT4KLTwhLS1FTlRJVFkgTm9uQnJlYWtpbmdTcGFjZSAiJiN4QTA7Ii0tPgotPCEtLUVO
VElUWSBpZXhjbCAiJiN4QTE7Ii0tPgotPCEtLUVOVElUWSBjZW50ICImI3hBMjsiLS0+Ci08IS0t
RU5USVRZIHBvdW5kICImI3hBMzsiLS0+Ci08IS0tRU5USVRZIGN1cnJlbiAiJiN4QTQ7Ii0tPgot
PCEtLUVOVElUWSB5ZW4gIiYjeEE1OyItLT4KLTwhLS1FTlRJVFkgYnJ2YmFyICImI3hBNjsiLS0+
Ci08IS0tRU5USVRZIHNlY3QgIiYjeEE3OyItLT4KLTwhLS1FTlRJVFkgRG90ICImI3hBODsiLS0+
Ci08IS0tRU5USVRZIGRpZSAiJiN4QTg7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVEb3QgIiYjeEE4
OyItLT4KLTwhLS1FTlRJVFkgdW1sICImI3hBODsiLS0+Ci08IS0tRU5USVRZIGNvcHkgIiYjeEE5
OyItLT4KLTwhLS1FTlRJVFkgQ09QWSAiJiN4QTk7Ii0tPgotPCEtLUVOVElUWSBvcmRmICImI3hB
QTsiLS0+Ci08IS0tRU5USVRZIGxhcXVvICImI3hBQjsiLS0+Ci08IS0tRU5USVRZIG5vdCAiJiN4
QUM7Ii0tPgotPCEtLUVOVElUWSBzaHkgIiYjeEFEOyItLT4KLTwhLS1FTlRJVFkgcmVnICImI3hB
RTsiLS0+Ci08IS0tRU5USVRZIGNpcmNsZWRSICImI3hBRTsiLS0+Ci08IS0tRU5USVRZIFJFRyAi
JiN4QUU7Ii0tPgotPCEtLUVOVElUWSBtYWNyICImI3hBRjsiLS0+Ci08IS0tRU5USVRZIHN0cm5z
ICImI3hBRjsiLS0+Ci08IS0tRU5USVRZIGRlZyAiJiN4QjA7Ii0tPgotPCEtLUVOVElUWSBwbHVz
bW4gIiYjeEIxOyItLT4KLTwhLS1FTlRJVFkgcG0gIiYjeEIxOyItLT4KLTwhLS1FTlRJVFkgUGx1
c01pbnVzICImI3hCMTsiLS0+Ci08IS0tRU5USVRZIHN1cDIgIiYjeEIyOyItLT4KLTwhLS1FTlRJ
VFkgc3VwMyAiJiN4QjM7Ii0tPgotPCEtLUVOVElUWSBhY3V0ZSAiJiN4QjQ7Ii0tPgotPCEtLUVO
VElUWSBEaWFjcml0aWNhbEFjdXRlICImI3hCNDsiLS0+Ci08IS0tRU5USVRZIG1pY3JvICImI3hC
NTsiLS0+Ci08IS0tRU5USVRZIHBhcmEgIiYjeEI2OyItLT4KLTwhLS1FTlRJVFkgbWlkZG90ICIm
I3hCNzsiLS0+Ci08IS0tRU5USVRZIGNlbnRlcmRvdCAiJiN4Qjc7Ii0tPgotPCEtLUVOVElUWSBD
ZW50ZXJEb3QgIiYjeEI3OyItLT4KLTwhLS1FTlRJVFkgY2VkaWwgIiYjeEI4OyItLT4KLTwhLS1F
TlRJVFkgQ2VkaWxsYSAiJiN4Qjg7Ii0tPgotPCEtLUVOVElUWSBzdXAxICImI3hCOTsiLS0+Ci08
IS0tRU5USVRZIG9yZG0gIiYjeEJBOyItLT4KLTwhLS1FTlRJVFkgcmFxdW8gIiYjeEJCOyItLT4K
LTwhLS1FTlRJVFkgZnJhYzE0ICImI3hCQzsiLS0+Ci08IS0tRU5USVRZIGZyYWMxMiAiJiN4QkQ7
Ii0tPgotPCEtLUVOVElUWSBoYWxmICImI3hCRDsiLS0+Ci08IS0tRU5USVRZIGZyYWMzNCAiJiN4
QkU7Ii0tPgotPCEtLUVOVElUWSBpcXVlc3QgIiYjeEJGOyItLT4KLTwhLS1FTlRJVFkgQWdyYXZl
ICImI3hDMDsiLS0+Ci08IS0tRU5USVRZIEFhY3V0ZSAiJiN4QzE7Ii0tPgotPCEtLUVOVElUWSBB
Y2lyYyAiJiN4QzI7Ii0tPgotPCEtLUVOVElUWSBBdGlsZGUgIiYjeEMzOyItLT4KLTwhLS1FTlRJ
VFkgQXVtbCAiJiN4QzQ7Ii0tPgotPCEtLUVOVElUWSBBcmluZyAiJiN4QzU7Ii0tPgotPCEtLUVO
VElUWSBhbmdzdCAiJiN4QzU7Ii0tPgotPCEtLUVOVElUWSBBRWxpZyAiJiN4QzY7Ii0tPgotPCEt
LUVOVElUWSBDY2VkaWwgIiYjeEM3OyItLT4KLTwhLS1FTlRJVFkgRWdyYXZlICImI3hDODsiLS0+
Ci08IS0tRU5USVRZIEVhY3V0ZSAiJiN4Qzk7Ii0tPgotPCEtLUVOVElUWSBFY2lyYyAiJiN4Q0E7
Ii0tPgotPCEtLUVOVElUWSBFdW1sICImI3hDQjsiLS0+Ci08IS0tRU5USVRZIElncmF2ZSAiJiN4
Q0M7Ii0tPgotPCEtLUVOVElUWSBJYWN1dGUgIiYjeENEOyItLT4KLTwhLS1FTlRJVFkgSWNpcmMg
IiYjeENFOyItLT4KLTwhLS1FTlRJVFkgSXVtbCAiJiN4Q0Y7Ii0tPgotPCEtLUVOVElUWSBFVEgg
IiYjeEQwOyItLT4KLTwhLS1FTlRJVFkgTnRpbGRlICImI3hEMTsiLS0+Ci08IS0tRU5USVRZIE9n
cmF2ZSAiJiN4RDI7Ii0tPgotPCEtLUVOVElUWSBPYWN1dGUgIiYjeEQzOyItLT4KLTwhLS1FTlRJ
VFkgT2NpcmMgIiYjeEQ0OyItLT4KLTwhLS1FTlRJVFkgT3RpbGRlICImI3hENTsiLS0+Ci08IS0t
RU5USVRZIE91bWwgIiYjeEQ2OyItLT4KLTwhLS1FTlRJVFkgdGltZXMgIiYjeEQ3OyItLT4KLTwh
LS1FTlRJVFkgT3NsYXNoICImI3hEODsiLS0+Ci08IS0tRU5USVRZIFVncmF2ZSAiJiN4RDk7Ii0t
PgotPCEtLUVOVElUWSBVYWN1dGUgIiYjeERBOyItLT4KLTwhLS1FTlRJVFkgVWNpcmMgIiYjeERC
OyItLT4KLTwhLS1FTlRJVFkgVXVtbCAiJiN4REM7Ii0tPgotPCEtLUVOVElUWSBZYWN1dGUgIiYj
eEREOyItLT4KLTwhLS1FTlRJVFkgVEhPUk4gIiYjeERFOyItLT4KLTwhLS1FTlRJVFkgc3psaWcg
IiYjeERGOyItLT4KLTwhLS1FTlRJVFkgYWdyYXZlICImI3hFMDsiLS0+Ci08IS0tRU5USVRZIGFh
Y3V0ZSAiJiN4RTE7Ii0tPgotPCEtLUVOVElUWSBhY2lyYyAiJiN4RTI7Ii0tPgotPCEtLUVOVElU
WSBhdGlsZGUgIiYjeEUzOyItLT4KLTwhLS1FTlRJVFkgYXVtbCAiJiN4RTQ7Ii0tPgotPCEtLUVO
VElUWSBhcmluZyAiJiN4RTU7Ii0tPgotPCEtLUVOVElUWSBhZWxpZyAiJiN4RTY7Ii0tPgotPCEt
LUVOVElUWSBjY2VkaWwgIiYjeEU3OyItLT4KLTwhLS1FTlRJVFkgZWdyYXZlICImI3hFODsiLS0+
Ci08IS0tRU5USVRZIGVhY3V0ZSAiJiN4RTk7Ii0tPgotPCEtLUVOVElUWSBlY2lyYyAiJiN4RUE7
Ii0tPgotPCEtLUVOVElUWSBldW1sICImI3hFQjsiLS0+Ci08IS0tRU5USVRZIGlncmF2ZSAiJiN4
RUM7Ii0tPgotPCEtLUVOVElUWSBpYWN1dGUgIiYjeEVEOyItLT4KLTwhLS1FTlRJVFkgaWNpcmMg
IiYjeEVFOyItLT4KLTwhLS1FTlRJVFkgaXVtbCAiJiN4RUY7Ii0tPgotPCEtLUVOVElUWSBldGgg
IiYjeEYwOyItLT4KLTwhLS1FTlRJVFkgbnRpbGRlICImI3hGMTsiLS0+Ci08IS0tRU5USVRZIG9n
cmF2ZSAiJiN4RjI7Ii0tPgotPCEtLUVOVElUWSBvYWN1dGUgIiYjeEYzOyItLT4KLTwhLS1FTlRJ
VFkgb2NpcmMgIiYjeEY0OyItLT4KLTwhLS1FTlRJVFkgb3RpbGRlICImI3hGNTsiLS0+Ci08IS0t
RU5USVRZIG91bWwgIiYjeEY2OyItLT4KLTwhLS1FTlRJVFkgZGl2aWRlICImI3hGNzsiLS0+Ci08
IS0tRU5USVRZIGRpdiAiJiN4Rjc7Ii0tPgotPCEtLUVOVElUWSBvc2xhc2ggIiYjeEY4OyItLT4K
LTwhLS1FTlRJVFkgdWdyYXZlICImI3hGOTsiLS0+Ci08IS0tRU5USVRZIHVhY3V0ZSAiJiN4RkE7
Ii0tPgotPCEtLUVOVElUWSB1Y2lyYyAiJiN4RkI7Ii0tPgotPCEtLUVOVElUWSB1dW1sICImI3hG
QzsiLS0+Ci08IS0tRU5USVRZIHlhY3V0ZSAiJiN4RkQ7Ii0tPgotPCEtLUVOVElUWSB0aG9ybiAi
JiN4RkU7Ii0tPgotPCEtLUVOVElUWSB5dW1sICImI3hGRjsiLS0+Ci08IS0tRU5USVRZIEFtYWNy
ICImI3gxMDA7Ii0tPgotPCEtLUVOVElUWSBhbWFjciAiJiN4MTAxOyItLT4KLTwhLS1FTlRJVFkg
QWJyZXZlICImI3gxMDI7Ii0tPgotPCEtLUVOVElUWSBhYnJldmUgIiYjeDEwMzsiLS0+Ci08IS0t
RU5USVRZIEFvZ29uICImI3gxMDQ7Ii0tPgotPCEtLUVOVElUWSBhb2dvbiAiJiN4MTA1OyItLT4K
LTwhLS1FTlRJVFkgQ2FjdXRlICImI3gxMDY7Ii0tPgotPCEtLUVOVElUWSBjYWN1dGUgIiYjeDEw
NzsiLS0+Ci08IS0tRU5USVRZIENjaXJjICImI3gxMDg7Ii0tPgotPCEtLUVOVElUWSBjY2lyYyAi
JiN4MTA5OyItLT4KLTwhLS1FTlRJVFkgQ2RvdCAiJiN4MTBBOyItLT4KLTwhLS1FTlRJVFkgY2Rv
dCAiJiN4MTBCOyItLT4KLTwhLS1FTlRJVFkgQ2Nhcm9uICImI3gxMEM7Ii0tPgotPCEtLUVOVElU
WSBjY2Fyb24gIiYjeDEwRDsiLS0+Ci08IS0tRU5USVRZIERjYXJvbiAiJiN4MTBFOyItLT4KLTwh
LS1FTlRJVFkgZGNhcm9uICImI3gxMEY7Ii0tPgotPCEtLUVOVElUWSBEc3Ryb2sgIiYjeDExMDsi
LS0+Ci08IS0tRU5USVRZIGRzdHJvayAiJiN4MTExOyItLT4KLTwhLS1FTlRJVFkgRW1hY3IgIiYj
eDExMjsiLS0+Ci08IS0tRU5USVRZIGVtYWNyICImI3gxMTM7Ii0tPgotPCEtLUVOVElUWSBFZG90
ICImI3gxMTY7Ii0tPgotPCEtLUVOVElUWSBlZG90ICImI3gxMTc7Ii0tPgotPCEtLUVOVElUWSBF
b2dvbiAiJiN4MTE4OyItLT4KLTwhLS1FTlRJVFkgZW9nb24gIiYjeDExOTsiLS0+Ci08IS0tRU5U
SVRZIEVjYXJvbiAiJiN4MTFBOyItLT4KLTwhLS1FTlRJVFkgZWNhcm9uICImI3gxMUI7Ii0tPgot
PCEtLUVOVElUWSBHY2lyYyAiJiN4MTFDOyItLT4KLTwhLS1FTlRJVFkgZ2NpcmMgIiYjeDExRDsi
LS0+Ci08IS0tRU5USVRZIEdicmV2ZSAiJiN4MTFFOyItLT4KLTwhLS1FTlRJVFkgZ2JyZXZlICIm
I3gxMUY7Ii0tPgotPCEtLUVOVElUWSBHZG90ICImI3gxMjA7Ii0tPgotPCEtLUVOVElUWSBnZG90
ICImI3gxMjE7Ii0tPgotPCEtLUVOVElUWSBHY2VkaWwgIiYjeDEyMjsiLS0+Ci08IS0tRU5USVRZ
IEhjaXJjICImI3gxMjQ7Ii0tPgotPCEtLUVOVElUWSBoY2lyYyAiJiN4MTI1OyItLT4KLTwhLS1F
TlRJVFkgSHN0cm9rICImI3gxMjY7Ii0tPgotPCEtLUVOVElUWSBoc3Ryb2sgIiYjeDEyNzsiLS0+
Ci08IS0tRU5USVRZIEl0aWxkZSAiJiN4MTI4OyItLT4KLTwhLS1FTlRJVFkgaXRpbGRlICImI3gx
Mjk7Ii0tPgotPCEtLUVOVElUWSBJbWFjciAiJiN4MTJBOyItLT4KLTwhLS1FTlRJVFkgaW1hY3Ig
IiYjeDEyQjsiLS0+Ci08IS0tRU5USVRZIElvZ29uICImI3gxMkU7Ii0tPgotPCEtLUVOVElUWSBp
b2dvbiAiJiN4MTJGOyItLT4KLTwhLS1FTlRJVFkgSWRvdCAiJiN4MTMwOyItLT4KLTwhLS1FTlRJ
VFkgaW1hdGggIiYjeDEzMTsiLS0+Ci08IS0tRU5USVRZIGlub2RvdCAiJiN4MTMxOyItLT4KLTwh
LS1FTlRJVFkgSUpsaWcgIiYjeDEzMjsiLS0+Ci08IS0tRU5USVRZIGlqbGlnICImI3gxMzM7Ii0t
PgotPCEtLUVOVElUWSBKY2lyYyAiJiN4MTM0OyItLT4KLTwhLS1FTlRJVFkgamNpcmMgIiYjeDEz
NTsiLS0+Ci08IS0tRU5USVRZIEtjZWRpbCAiJiN4MTM2OyItLT4KLTwhLS1FTlRJVFkga2NlZGls
ICImI3gxMzc7Ii0tPgotPCEtLUVOVElUWSBrZ3JlZW4gIiYjeDEzODsiLS0+Ci08IS0tRU5USVRZ
IExhY3V0ZSAiJiN4MTM5OyItLT4KLTwhLS1FTlRJVFkgbGFjdXRlICImI3gxM0E7Ii0tPgotPCEt
LUVOVElUWSBMY2VkaWwgIiYjeDEzQjsiLS0+Ci08IS0tRU5USVRZIGxjZWRpbCAiJiN4MTNDOyIt
LT4KLTwhLS1FTlRJVFkgTGNhcm9uICImI3gxM0Q7Ii0tPgotPCEtLUVOVElUWSBsY2Fyb24gIiYj
eDEzRTsiLS0+Ci08IS0tRU5USVRZIExtaWRvdCAiJiN4MTNGOyItLT4KLTwhLS1FTlRJVFkgbG1p
ZG90ICImI3gxNDA7Ii0tPgotPCEtLUVOVElUWSBMc3Ryb2sgIiYjeDE0MTsiLS0+Ci08IS0tRU5U
SVRZIGxzdHJvayAiJiN4MTQyOyItLT4KLTwhLS1FTlRJVFkgTmFjdXRlICImI3gxNDM7Ii0tPgot
PCEtLUVOVElUWSBuYWN1dGUgIiYjeDE0NDsiLS0+Ci08IS0tRU5USVRZIE5jZWRpbCAiJiN4MTQ1
OyItLT4KLTwhLS1FTlRJVFkgbmNlZGlsICImI3gxNDY7Ii0tPgotPCEtLUVOVElUWSBOY2Fyb24g
IiYjeDE0NzsiLS0+Ci08IS0tRU5USVRZIG5jYXJvbiAiJiN4MTQ4OyItLT4KLTwhLS1FTlRJVFkg
bmFwb3MgIiYjeDE0OTsiLS0+Ci08IS0tRU5USVRZIEVORyAiJiN4MTRBOyItLT4KLTwhLS1FTlRJ
VFkgZW5nICImI3gxNEI7Ii0tPgotPCEtLUVOVElUWSBPbWFjciAiJiN4MTRDOyItLT4KLTwhLS1F
TlRJVFkgb21hY3IgIiYjeDE0RDsiLS0+Ci08IS0tRU5USVRZIE9kYmxhYyAiJiN4MTUwOyItLT4K
LTwhLS1FTlRJVFkgb2RibGFjICImI3gxNTE7Ii0tPgotPCEtLUVOVElUWSBPRWxpZyAiJiN4MTUy
OyItLT4KLTwhLS1FTlRJVFkgb2VsaWcgIiYjeDE1MzsiLS0+Ci08IS0tRU5USVRZIFJhY3V0ZSAi
JiN4MTU0OyItLT4KLTwhLS1FTlRJVFkgcmFjdXRlICImI3gxNTU7Ii0tPgotPCEtLUVOVElUWSBS
Y2VkaWwgIiYjeDE1NjsiLS0+Ci08IS0tRU5USVRZIHJjZWRpbCAiJiN4MTU3OyItLT4KLTwhLS1F
TlRJVFkgUmNhcm9uICImI3gxNTg7Ii0tPgotPCEtLUVOVElUWSByY2Fyb24gIiYjeDE1OTsiLS0+
Ci08IS0tRU5USVRZIFNhY3V0ZSAiJiN4MTVBOyItLT4KLTwhLS1FTlRJVFkgc2FjdXRlICImI3gx
NUI7Ii0tPgotPCEtLUVOVElUWSBTY2lyYyAiJiN4MTVDOyItLT4KLTwhLS1FTlRJVFkgc2NpcmMg
IiYjeDE1RDsiLS0+Ci08IS0tRU5USVRZIFNjZWRpbCAiJiN4MTVFOyItLT4KLTwhLS1FTlRJVFkg
c2NlZGlsICImI3gxNUY7Ii0tPgotPCEtLUVOVElUWSBTY2Fyb24gIiYjeDE2MDsiLS0+Ci08IS0t
RU5USVRZIHNjYXJvbiAiJiN4MTYxOyItLT4KLTwhLS1FTlRJVFkgVGNlZGlsICImI3gxNjI7Ii0t
PgotPCEtLUVOVElUWSB0Y2VkaWwgIiYjeDE2MzsiLS0+Ci08IS0tRU5USVRZIFRjYXJvbiAiJiN4
MTY0OyItLT4KLTwhLS1FTlRJVFkgdGNhcm9uICImI3gxNjU7Ii0tPgotPCEtLUVOVElUWSBUc3Ry
b2sgIiYjeDE2NjsiLS0+Ci08IS0tRU5USVRZIHRzdHJvayAiJiN4MTY3OyItLT4KLTwhLS1FTlRJ
VFkgVXRpbGRlICImI3gxNjg7Ii0tPgotPCEtLUVOVElUWSB1dGlsZGUgIiYjeDE2OTsiLS0+Ci08
IS0tRU5USVRZIFVtYWNyICImI3gxNkE7Ii0tPgotPCEtLUVOVElUWSB1bWFjciAiJiN4MTZCOyIt
LT4KLTwhLS1FTlRJVFkgVWJyZXZlICImI3gxNkM7Ii0tPgotPCEtLUVOVElUWSB1YnJldmUgIiYj
eDE2RDsiLS0+Ci08IS0tRU5USVRZIFVyaW5nICImI3gxNkU7Ii0tPgotPCEtLUVOVElUWSB1cmlu
ZyAiJiN4MTZGOyItLT4KLTwhLS1FTlRJVFkgVWRibGFjICImI3gxNzA7Ii0tPgotPCEtLUVOVElU
WSB1ZGJsYWMgIiYjeDE3MTsiLS0+Ci08IS0tRU5USVRZIFVvZ29uICImI3gxNzI7Ii0tPgotPCEt
LUVOVElUWSB1b2dvbiAiJiN4MTczOyItLT4KLTwhLS1FTlRJVFkgV2NpcmMgIiYjeDE3NDsiLS0+
Ci08IS0tRU5USVRZIHdjaXJjICImI3gxNzU7Ii0tPgotPCEtLUVOVElUWSBZY2lyYyAiJiN4MTc2
OyItLT4KLTwhLS1FTlRJVFkgeWNpcmMgIiYjeDE3NzsiLS0+Ci08IS0tRU5USVRZIFl1bWwgIiYj
eDE3ODsiLS0+Ci08IS0tRU5USVRZIFphY3V0ZSAiJiN4MTc5OyItLT4KLTwhLS1FTlRJVFkgemFj
dXRlICImI3gxN0E7Ii0tPgotPCEtLUVOVElUWSBaZG90ICImI3gxN0I7Ii0tPgotPCEtLUVOVElU
WSB6ZG90ICImI3gxN0M7Ii0tPgotPCEtLUVOVElUWSBaY2Fyb24gIiYjeDE3RDsiLS0+Ci08IS0t
RU5USVRZIHpjYXJvbiAiJiN4MTdFOyItLT4KLTwhLS1FTlRJVFkgZm5vZiAiJiN4MTkyOyItLT4K
LTwhLS1FTlRJVFkgaW1wZWQgIiYjeDFCNTsiLS0+Ci08IS0tRU5USVRZIGdhY3V0ZSAiJiN4MUY1
OyItLT4KLTwhLS1FTlRJVFkgam1hdGggIiYjeDIzNzsiLS0+Ci08IS0tRU5USVRZIGNpcmMgIiYj
eDJDNjsiLS0+Ci08IS0tRU5USVRZIGNhcm9uICImI3gyQzc7Ii0tPgotPCEtLUVOVElUWSBIYWNl
ayAiJiN4MkM3OyItLT4KLTwhLS1FTlRJVFkgYnJldmUgIiYjeDJEODsiLS0+Ci08IS0tRU5USVRZ
IEJyZXZlICImI3gyRDg7Ii0tPgotPCEtLUVOVElUWSBkb3QgIiYjeDJEOTsiLS0+Ci08IS0tRU5U
SVRZIERpYWNyaXRpY2FsRG90ICImI3gyRDk7Ii0tPgotPCEtLUVOVElUWSByaW5nICImI3gyREE7
Ii0tPgotPCEtLUVOVElUWSBvZ29uICImI3gyREI7Ii0tPgotPCEtLUVOVElUWSB0aWxkZSAiJiN4
MkRDOyItLT4KLTwhLS1FTlRJVFkgRGlhY3JpdGljYWxUaWxkZSAiJiN4MkRDOyItLT4KLTwhLS1F
TlRJVFkgZGJsYWMgIiYjeDJERDsiLS0+Ci08IS0tRU5USVRZIERpYWNyaXRpY2FsRG91YmxlQWN1
dGUgIiYjeDJERDsiLS0+Ci08IS0tRU5USVRZIERvd25CcmV2ZSAiJiN4MzExOyItLT4KLTwhLS1F
TlRJVFkgQWxwaGEgIiYjeDM5MTsiLS0+Ci08IS0tRU5USVRZIEJldGEgIiYjeDM5MjsiLS0+Ci08
IS0tRU5USVRZIEdhbW1hICImI3gzOTM7Ii0tPgotPCEtLUVOVElUWSBEZWx0YSAiJiN4Mzk0OyIt
LT4KLTwhLS1FTlRJVFkgRXBzaWxvbiAiJiN4Mzk1OyItLT4KLTwhLS1FTlRJVFkgWmV0YSAiJiN4
Mzk2OyItLT4KLTwhLS1FTlRJVFkgRXRhICImI3gzOTc7Ii0tPgotPCEtLUVOVElUWSBUaGV0YSAi
JiN4Mzk4OyItLT4KLTwhLS1FTlRJVFkgSW90YSAiJiN4Mzk5OyItLT4KLTwhLS1FTlRJVFkgS2Fw
cGEgIiYjeDM5QTsiLS0+Ci08IS0tRU5USVRZIExhbWJkYSAiJiN4MzlCOyItLT4KLTwhLS1FTlRJ
VFkgTXUgIiYjeDM5QzsiLS0+Ci08IS0tRU5USVRZIE51ICImI3gzOUQ7Ii0tPgotPCEtLUVOVElU
WSBYaSAiJiN4MzlFOyItLT4KLTwhLS1FTlRJVFkgT21pY3JvbiAiJiN4MzlGOyItLT4KLTwhLS1F
TlRJVFkgUGkgIiYjeDNBMDsiLS0+Ci08IS0tRU5USVRZIFJobyAiJiN4M0ExOyItLT4KLTwhLS1F
TlRJVFkgU2lnbWEgIiYjeDNBMzsiLS0+Ci08IS0tRU5USVRZIFRhdSAiJiN4M0E0OyItLT4KLTwh
LS1FTlRJVFkgVXBzaWxvbiAiJiN4M0E1OyItLT4KLTwhLS1FTlRJVFkgUGhpICImI3gzQTY7Ii0t
PgotPCEtLUVOVElUWSBDaGkgIiYjeDNBNzsiLS0+Ci08IS0tRU5USVRZIFBzaSAiJiN4M0E4OyIt
LT4KLTwhLS1FTlRJVFkgT21lZ2EgIiYjeDNBOTsiLS0+Ci08IS0tRU5USVRZIG9obSAiJiN4M0E5
OyItLT4KLTwhLS1FTlRJVFkgYWxwaGEgIiYjeDNCMTsiLS0+Ci08IS0tRU5USVRZIGJldGEgIiYj
eDNCMjsiLS0+Ci08IS0tRU5USVRZIGdhbW1hICImI3gzQjM7Ii0tPgotPCEtLUVOVElUWSBkZWx0
YSAiJiN4M0I0OyItLT4KLTwhLS1FTlRJVFkgZXBzaSAiJiN4M0I1OyItLT4KLTwhLS1FTlRJVFkg
ZXBzaWxvbiAiJiN4M0I1OyItLT4KLTwhLS1FTlRJVFkgemV0YSAiJiN4M0I2OyItLT4KLTwhLS1F
TlRJVFkgZXRhICImI3gzQjc7Ii0tPgotPCEtLUVOVElUWSB0aGV0YSAiJiN4M0I4OyItLT4KLTwh
LS1FTlRJVFkgaW90YSAiJiN4M0I5OyItLT4KLTwhLS1FTlRJVFkga2FwcGEgIiYjeDNCQTsiLS0+
Ci08IS0tRU5USVRZIGxhbWJkYSAiJiN4M0JCOyItLT4KLTwhLS1FTlRJVFkgbXUgIiYjeDNCQzsi
LS0+Ci08IS0tRU5USVRZIG51ICImI3gzQkQ7Ii0tPgotPCEtLUVOVElUWSB4aSAiJiN4M0JFOyIt
LT4KLTwhLS1FTlRJVFkgb21pY3JvbiAiJiN4M0JGOyItLT4KLTwhLS1FTlRJVFkgcGkgIiYjeDND
MDsiLS0+Ci08IS0tRU5USVRZIHJobyAiJiN4M0MxOyItLT4KLTwhLS1FTlRJVFkgc2lnbWF2ICIm
I3gzQzI7Ii0tPgotPCEtLUVOVElUWSB2YXJzaWdtYSAiJiN4M0MyOyItLT4KLTwhLS1FTlRJVFkg
c2lnbWFmICImI3gzQzI7Ii0tPgotPCEtLUVOVElUWSBzaWdtYSAiJiN4M0MzOyItLT4KLTwhLS1F
TlRJVFkgdGF1ICImI3gzQzQ7Ii0tPgotPCEtLUVOVElUWSB1cHNpICImI3gzQzU7Ii0tPgotPCEt
LUVOVElUWSB1cHNpbG9uICImI3gzQzU7Ii0tPgotPCEtLUVOVElUWSBwaGkgIiYjeDNDNjsiLS0+
Ci08IS0tRU5USVRZIGNoaSAiJiN4M0M3OyItLT4KLTwhLS1FTlRJVFkgcHNpICImI3gzQzg7Ii0t
PgotPCEtLUVOVElUWSBvbWVnYSAiJiN4M0M5OyItLT4KLTwhLS1FTlRJVFkgdGhldGF2ICImI3gz
RDE7Ii0tPgotPCEtLUVOVElUWSB2YXJ0aGV0YSAiJiN4M0QxOyItLT4KLTwhLS1FTlRJVFkgdGhl
dGFzeW0gIiYjeDNEMTsiLS0+Ci08IS0tRU5USVRZIFVwc2kgIiYjeDNEMjsiLS0+Ci08IS0tRU5U
SVRZIHVwc2loICImI3gzRDI7Ii0tPgotPCEtLUVOVElUWSBzdHJhaWdodHBoaSAiJiN4M0Q1OyIt
LT4KLTwhLS1FTlRJVFkgcGhpdiAiJiN4M0Q1OyItLT4KLTwhLS1FTlRJVFkgdmFycGhpICImI3gz
RDU7Ii0tPgotPCEtLUVOVElUWSBwaXYgIiYjeDNENjsiLS0+Ci08IS0tRU5USVRZIHZhcnBpICIm
I3gzRDY7Ii0tPgotPCEtLUVOVElUWSBHYW1tYWQgIiYjeDNEQzsiLS0+Ci08IS0tRU5USVRZIGdh
bW1hZCAiJiN4M0REOyItLT4KLTwhLS1FTlRJVFkgZGlnYW1tYSAiJiN4M0REOyItLT4KLTwhLS1F
TlRJVFkga2FwcGF2ICImI3gzRjA7Ii0tPgotPCEtLUVOVElUWSB2YXJrYXBwYSAiJiN4M0YwOyIt
LT4KLTwhLS1FTlRJVFkgcmhvdiAiJiN4M0YxOyItLT4KLTwhLS1FTlRJVFkgdmFycmhvICImI3gz
RjE7Ii0tPgotPCEtLUVOVElUWSBlcHNpdiAiJiN4M0Y1OyItLT4KLTwhLS1FTlRJVFkgc3RyYWln
aHRlcHNpbG9uICImI3gzRjU7Ii0tPgotPCEtLUVOVElUWSB2YXJlcHNpbG9uICImI3gzRjU7Ii0t
PgotPCEtLUVOVElUWSBiZXBzaSAiJiN4M0Y2OyItLT4KLTwhLS1FTlRJVFkgYmFja2Vwc2lsb24g
IiYjeDNGNjsiLS0+Ci08IS0tRU5USVRZIElPY3kgIiYjeDQwMTsiLS0+Ci08IS0tRU5USVRZIERK
Y3kgIiYjeDQwMjsiLS0+Ci08IS0tRU5USVRZIEdKY3kgIiYjeDQwMzsiLS0+Ci08IS0tRU5USVRZ
IEp1a2N5ICImI3g0MDQ7Ii0tPgotPCEtLUVOVElUWSBEU2N5ICImI3g0MDU7Ii0tPgotPCEtLUVO
VElUWSBJdWtjeSAiJiN4NDA2OyItLT4KLTwhLS1FTlRJVFkgWUljeSAiJiN4NDA3OyItLT4KLTwh
LS1FTlRJVFkgSnNlcmN5ICImI3g0MDg7Ii0tPgotPCEtLUVOVElUWSBMSmN5ICImI3g0MDk7Ii0t
PgotPCEtLUVOVElUWSBOSmN5ICImI3g0MEE7Ii0tPgotPCEtLUVOVElUWSBUU0hjeSAiJiN4NDBC
OyItLT4KLTwhLS1FTlRJVFkgS0pjeSAiJiN4NDBDOyItLT4KLTwhLS1FTlRJVFkgVWJyY3kgIiYj
eDQwRTsiLS0+Ci08IS0tRU5USVRZIERaY3kgIiYjeDQwRjsiLS0+Ci08IS0tRU5USVRZIEFjeSAi
JiN4NDEwOyItLT4KLTwhLS1FTlRJVFkgQmN5ICImI3g0MTE7Ii0tPgotPCEtLUVOVElUWSBWY3kg
IiYjeDQxMjsiLS0+Ci08IS0tRU5USVRZIEdjeSAiJiN4NDEzOyItLT4KLTwhLS1FTlRJVFkgRGN5
ICImI3g0MTQ7Ii0tPgotPCEtLUVOVElUWSBJRWN5ICImI3g0MTU7Ii0tPgotPCEtLUVOVElUWSBa
SGN5ICImI3g0MTY7Ii0tPgotPCEtLUVOVElUWSBaY3kgIiYjeDQxNzsiLS0+Ci08IS0tRU5USVRZ
IEljeSAiJiN4NDE4OyItLT4KLTwhLS1FTlRJVFkgSmN5ICImI3g0MTk7Ii0tPgotPCEtLUVOVElU
WSBLY3kgIiYjeDQxQTsiLS0+Ci08IS0tRU5USVRZIExjeSAiJiN4NDFCOyItLT4KLTwhLS1FTlRJ
VFkgTWN5ICImI3g0MUM7Ii0tPgotPCEtLUVOVElUWSBOY3kgIiYjeDQxRDsiLS0+Ci08IS0tRU5U
SVRZIE9jeSAiJiN4NDFFOyItLT4KLTwhLS1FTlRJVFkgUGN5ICImI3g0MUY7Ii0tPgotPCEtLUVO
VElUWSBSY3kgIiYjeDQyMDsiLS0+Ci08IS0tRU5USVRZIFNjeSAiJiN4NDIxOyItLT4KLTwhLS1F
TlRJVFkgVGN5ICImI3g0MjI7Ii0tPgotPCEtLUVOVElUWSBVY3kgIiYjeDQyMzsiLS0+Ci08IS0t
RU5USVRZIEZjeSAiJiN4NDI0OyItLT4KLTwhLS1FTlRJVFkgS0hjeSAiJiN4NDI1OyItLT4KLTwh
LS1FTlRJVFkgVFNjeSAiJiN4NDI2OyItLT4KLTwhLS1FTlRJVFkgQ0hjeSAiJiN4NDI3OyItLT4K
LTwhLS1FTlRJVFkgU0hjeSAiJiN4NDI4OyItLT4KLTwhLS1FTlRJVFkgU0hDSGN5ICImI3g0Mjk7
Ii0tPgotPCEtLUVOVElUWSBIQVJEY3kgIiYjeDQyQTsiLS0+Ci08IS0tRU5USVRZIFljeSAiJiN4
NDJCOyItLT4KLTwhLS1FTlRJVFkgU09GVGN5ICImI3g0MkM7Ii0tPgotPCEtLUVOVElUWSBFY3kg
IiYjeDQyRDsiLS0+Ci08IS0tRU5USVRZIFlVY3kgIiYjeDQyRTsiLS0+Ci08IS0tRU5USVRZIFlB
Y3kgIiYjeDQyRjsiLS0+Ci08IS0tRU5USVRZIGFjeSAiJiN4NDMwOyItLT4KLTwhLS1FTlRJVFkg
YmN5ICImI3g0MzE7Ii0tPgotPCEtLUVOVElUWSB2Y3kgIiYjeDQzMjsiLS0+Ci08IS0tRU5USVRZ
IGdjeSAiJiN4NDMzOyItLT4KLTwhLS1FTlRJVFkgZGN5ICImI3g0MzQ7Ii0tPgotPCEtLUVOVElU
WSBpZWN5ICImI3g0MzU7Ii0tPgotPCEtLUVOVElUWSB6aGN5ICImI3g0MzY7Ii0tPgotPCEtLUVO
VElUWSB6Y3kgIiYjeDQzNzsiLS0+Ci08IS0tRU5USVRZIGljeSAiJiN4NDM4OyItLT4KLTwhLS1F
TlRJVFkgamN5ICImI3g0Mzk7Ii0tPgotPCEtLUVOVElUWSBrY3kgIiYjeDQzQTsiLS0+Ci08IS0t
RU5USVRZIGxjeSAiJiN4NDNCOyItLT4KLTwhLS1FTlRJVFkgbWN5ICImI3g0M0M7Ii0tPgotPCEt
LUVOVElUWSBuY3kgIiYjeDQzRDsiLS0+Ci08IS0tRU5USVRZIG9jeSAiJiN4NDNFOyItLT4KLTwh
LS1FTlRJVFkgcGN5ICImI3g0M0Y7Ii0tPgotPCEtLUVOVElUWSByY3kgIiYjeDQ0MDsiLS0+Ci08
IS0tRU5USVRZIHNjeSAiJiN4NDQxOyItLT4KLTwhLS1FTlRJVFkgdGN5ICImI3g0NDI7Ii0tPgot
PCEtLUVOVElUWSB1Y3kgIiYjeDQ0MzsiLS0+Ci08IS0tRU5USVRZIGZjeSAiJiN4NDQ0OyItLT4K
LTwhLS1FTlRJVFkga2hjeSAiJiN4NDQ1OyItLT4KLTwhLS1FTlRJVFkgdHNjeSAiJiN4NDQ2OyIt
LT4KLTwhLS1FTlRJVFkgY2hjeSAiJiN4NDQ3OyItLT4KLTwhLS1FTlRJVFkgc2hjeSAiJiN4NDQ4
OyItLT4KLTwhLS1FTlRJVFkgc2hjaGN5ICImI3g0NDk7Ii0tPgotPCEtLUVOVElUWSBoYXJkY3kg
IiYjeDQ0QTsiLS0+Ci08IS0tRU5USVRZIHljeSAiJiN4NDRCOyItLT4KLTwhLS1FTlRJVFkgc29m
dGN5ICImI3g0NEM7Ii0tPgotPCEtLUVOVElUWSBlY3kgIiYjeDQ0RDsiLS0+Ci08IS0tRU5USVRZ
IHl1Y3kgIiYjeDQ0RTsiLS0+Ci08IS0tRU5USVRZIHlhY3kgIiYjeDQ0RjsiLS0+Ci08IS0tRU5U
SVRZIGlvY3kgIiYjeDQ1MTsiLS0+Ci08IS0tRU5USVRZIGRqY3kgIiYjeDQ1MjsiLS0+Ci08IS0t
RU5USVRZIGdqY3kgIiYjeDQ1MzsiLS0+Ci08IS0tRU5USVRZIGp1a2N5ICImI3g0NTQ7Ii0tPgot
PCEtLUVOVElUWSBkc2N5ICImI3g0NTU7Ii0tPgotPCEtLUVOVElUWSBpdWtjeSAiJiN4NDU2OyIt
LT4KLTwhLS1FTlRJVFkgeWljeSAiJiN4NDU3OyItLT4KLTwhLS1FTlRJVFkganNlcmN5ICImI3g0
NTg7Ii0tPgotPCEtLUVOVElUWSBsamN5ICImI3g0NTk7Ii0tPgotPCEtLUVOVElUWSBuamN5ICIm
I3g0NUE7Ii0tPgotPCEtLUVOVElUWSB0c2hjeSAiJiN4NDVCOyItLT4KLTwhLS1FTlRJVFkga2pj
eSAiJiN4NDVDOyItLT4KLTwhLS1FTlRJVFkgdWJyY3kgIiYjeDQ1RTsiLS0+Ci08IS0tRU5USVRZ
IGR6Y3kgIiYjeDQ1RjsiLS0+Ci08IS0tRU5USVRZIGVuc3AgIiYjeDIwMDI7Ii0tPgotPCEtLUVO
VElUWSBlbXNwICImI3gyMDAzOyItLT4KLTwhLS1FTlRJVFkgZW1zcDEzICImI3gyMDA0OyItLT4K
LTwhLS1FTlRJVFkgZW1zcDE0ICImI3gyMDA1OyItLT4KLTwhLS1FTlRJVFkgbnVtc3AgIiYjeDIw
MDc7Ii0tPgotPCEtLUVOVElUWSBwdW5jc3AgIiYjeDIwMDg7Ii0tPgotPCEtLUVOVElUWSB0aGlu
c3AgIiYjeDIwMDk7Ii0tPgotPCEtLUVOVElUWSBUaGluU3BhY2UgIiYjeDIwMDk7Ii0tPgotPCEt
LUVOVElUWSBoYWlyc3AgIiYjeDIwMEE7Ii0tPgotPCEtLUVOVElUWSBWZXJ5VGhpblNwYWNlICIm
I3gyMDBBOyItLT4KLTwhLS1FTlRJVFkgWmVyb1dpZHRoU3BhY2UgIiYjeDIwMEI7Ii0tPgotPCEt
LUVOVElUWSBOZWdhdGl2ZVZlcnlUaGluU3BhY2UgIiYjeDIwMEI7Ii0tPgotPCEtLUVOVElUWSBO
ZWdhdGl2ZVRoaW5TcGFjZSAiJiN4MjAwQjsiLS0+Ci08IS0tRU5USVRZIE5lZ2F0aXZlTWVkaXVt
U3BhY2UgIiYjeDIwMEI7Ii0tPgotPCEtLUVOVElUWSBOZWdhdGl2ZVRoaWNrU3BhY2UgIiYjeDIw
MEI7Ii0tPgotPCEtLUVOVElUWSB6d25qICImI3gyMDBDOyItLT4KLTwhLS1FTlRJVFkgendqICIm
I3gyMDBEOyItLT4KLTwhLS1FTlRJVFkgbHJtICImI3gyMDBFOyItLT4KLTwhLS1FTlRJVFkgcmxt
ICImI3gyMDBGOyItLT4KLTwhLS1FTlRJVFkgaHlwaGVuICImI3gyMDEwOyItLT4KLTwhLS1FTlRJ
VFkgZGFzaCAiJiN4MjAxMDsiLS0+Ci08IS0tRU5USVRZIG5kYXNoICImI3gyMDEzOyItLT4KLTwh
LS1FTlRJVFkgbWRhc2ggIiYjeDIwMTQ7Ii0tPgotPCEtLUVOVElUWSBob3JiYXIgIiYjeDIwMTU7
Ii0tPgotPCEtLUVOVElUWSBWZXJiYXIgIiYjeDIwMTY7Ii0tPgotPCEtLUVOVElUWSBWZXJ0ICIm
I3gyMDE2OyItLT4KLTwhLS1FTlRJVFkgbHNxdW8gIiYjeDIwMTg7Ii0tPgotPCEtLUVOVElUWSBP
cGVuQ3VybHlRdW90ZSAiJiN4MjAxODsiLS0+Ci08IS0tRU5USVRZIHJzcXVvICImI3gyMDE5OyIt
LT4KLTwhLS1FTlRJVFkgcnNxdW9yICImI3gyMDE5OyItLT4KLTwhLS1FTlRJVFkgQ2xvc2VDdXJs
eVF1b3RlICImI3gyMDE5OyItLT4KLTwhLS1FTlRJVFkgbHNxdW9yICImI3gyMDFBOyItLT4KLTwh
LS1FTlRJVFkgc2JxdW8gIiYjeDIwMUE7Ii0tPgotPCEtLUVOVElUWSBsZHF1byAiJiN4MjAxQzsi
LS0+Ci08IS0tRU5USVRZIE9wZW5DdXJseURvdWJsZVF1b3RlICImI3gyMDFDOyItLT4KLTwhLS1F
TlRJVFkgcmRxdW8gIiYjeDIwMUQ7Ii0tPgotPCEtLUVOVElUWSByZHF1b3IgIiYjeDIwMUQ7Ii0t
PgotPCEtLUVOVElUWSBDbG9zZUN1cmx5RG91YmxlUXVvdGUgIiYjeDIwMUQ7Ii0tPgotPCEtLUVO
VElUWSBsZHF1b3IgIiYjeDIwMUU7Ii0tPgotPCEtLUVOVElUWSBiZHF1byAiJiN4MjAxRTsiLS0+
Ci08IS0tRU5USVRZIGRhZ2dlciAiJiN4MjAyMDsiLS0+Ci08IS0tRU5USVRZIERhZ2dlciAiJiN4
MjAyMTsiLS0+Ci08IS0tRU5USVRZIGRkYWdnZXIgIiYjeDIwMjE7Ii0tPgotPCEtLUVOVElUWSBi
dWxsICImI3gyMDIyOyItLT4KLTwhLS1FTlRJVFkgYnVsbGV0ICImI3gyMDIyOyItLT4KLTwhLS1F
TlRJVFkgbmxkciAiJiN4MjAyNTsiLS0+Ci08IS0tRU5USVRZIGhlbGxpcCAiJiN4MjAyNjsiLS0+
Ci08IS0tRU5USVRZIG1sZHIgIiYjeDIwMjY7Ii0tPgotPCEtLUVOVElUWSBwZXJtaWwgIiYjeDIw
MzA7Ii0tPgotPCEtLUVOVElUWSBwZXJ0ZW5rICImI3gyMDMxOyItLT4KLTwhLS1FTlRJVFkgcHJp
bWUgIiYjeDIwMzI7Ii0tPgotPCEtLUVOVElUWSBQcmltZSAiJiN4MjAzMzsiLS0+Ci08IS0tRU5U
SVRZIHRwcmltZSAiJiN4MjAzNDsiLS0+Ci08IS0tRU5USVRZIGJwcmltZSAiJiN4MjAzNTsiLS0+
Ci08IS0tRU5USVRZIGJhY2twcmltZSAiJiN4MjAzNTsiLS0+Ci08IS0tRU5USVRZIGxzYXF1byAi
JiN4MjAzOTsiLS0+Ci08IS0tRU5USVRZIHJzYXF1byAiJiN4MjAzQTsiLS0+Ci08IS0tRU5USVRZ
IG9saW5lICImI3gyMDNFOyItLT4KLTwhLS1FTlRJVFkgT3ZlckJhciAiJiN4MjAzRTsiLS0+Ci08
IS0tRU5USVRZIGNhcmV0ICImI3gyMDQxOyItLT4KLTwhLS1FTlRJVFkgaHlidWxsICImI3gyMDQz
OyItLT4KLTwhLS1FTlRJVFkgZnJhc2wgIiYjeDIwNDQ7Ii0tPgotPCEtLUVOVElUWSBic2VtaSAi
JiN4MjA0RjsiLS0+Ci08IS0tRU5USVRZIHFwcmltZSAiJiN4MjA1NzsiLS0+Ci08IS0tRU5USVRZ
IE1lZGl1bVNwYWNlICImI3gyMDVGOyItLT4KLTwhLS1FTlRJVFkgVGhpY2tTcGFjZSAiJiN4MjA1
RjsmI3gyMDBBOyItLT4KLTwhLS1FTlRJVFkgTm9CcmVhayAiJiN4MjA2MDsiLS0+Ci08IS0tRU5U
SVRZIEFwcGx5RnVuY3Rpb24gIiYjeDIwNjE7Ii0tPgotPCEtLUVOVElUWSBhZiAiJiN4MjA2MTsi
LS0+Ci08IS0tRU5USVRZIEludmlzaWJsZVRpbWVzICImI3gyMDYyOyItLT4KLTwhLS1FTlRJVFkg
aXQgIiYjeDIwNjI7Ii0tPgotPCEtLUVOVElUWSBJbnZpc2libGVDb21tYSAiJiN4MjA2MzsiLS0+
Ci08IS0tRU5USVRZIGljICImI3gyMDYzOyItLT4KLTwhLS1FTlRJVFkgZXVybyAiJiN4MjBBQzsi
LS0+Ci08IS0tRU5USVRZIHRkb3QgIiYjeDIwREI7Ii0tPgotPCEtLUVOVElUWSBUcmlwbGVEb3Qg
IiYjeDIwREI7Ii0tPgotPCEtLUVOVElUWSBEb3REb3QgIiYjeDIwREM7Ii0tPgotPCEtLUVOVElU
WSBDb3BmICImI3gyMTAyOyItLT4KLTwhLS1FTlRJVFkgY29tcGxleGVzICImI3gyMTAyOyItLT4K
LTwhLS1FTlRJVFkgaW5jYXJlICImI3gyMTA1OyItLT4KLTwhLS1FTlRJVFkgZ3NjciAiJiN4MjEw
QTsiLS0+Ci08IS0tRU5USVRZIGhhbWlsdCAiJiN4MjEwQjsiLS0+Ci08IS0tRU5USVRZIEhpbGJl
cnRTcGFjZSAiJiN4MjEwQjsiLS0+Ci08IS0tRU5USVRZIEhzY3IgIiYjeDIxMEI7Ii0tPgotPCEt
LUVOVElUWSBIZnIgIiYjeDIxMEM7Ii0tPgotPCEtLUVOVElUWSBQb2luY2FyZXBsYW5lICImI3gy
MTBDOyItLT4KLTwhLS1FTlRJVFkgcXVhdGVybmlvbnMgIiYjeDIxMEQ7Ii0tPgotPCEtLUVOVElU
WSBIb3BmICImI3gyMTBEOyItLT4KLTwhLS1FTlRJVFkgcGxhbmNraCAiJiN4MjEwRTsiLS0+Ci08
IS0tRU5USVRZIHBsYW5jayAiJiN4MjEwRjsiLS0+Ci08IS0tRU5USVRZIGhiYXIgIiYjeDIxMEY7
Ii0tPgotPCEtLUVOVElUWSBwbGFua3YgIiYjeDIxMEY7Ii0tPgotPCEtLUVOVElUWSBoc2xhc2gg
IiYjeDIxMEY7Ii0tPgotPCEtLUVOVElUWSBJc2NyICImI3gyMTEwOyItLT4KLTwhLS1FTlRJVFkg
aW1hZ2xpbmUgIiYjeDIxMTA7Ii0tPgotPCEtLUVOVElUWSBpbWFnZSAiJiN4MjExMTsiLS0+Ci08
IS0tRU5USVRZIEltICImI3gyMTExOyItLT4KLTwhLS1FTlRJVFkgaW1hZ3BhcnQgIiYjeDIxMTE7
Ii0tPgotPCEtLUVOVElUWSBJZnIgIiYjeDIxMTE7Ii0tPgotPCEtLUVOVElUWSBMc2NyICImI3gy
MTEyOyItLT4KLTwhLS1FTlRJVFkgbGFncmFuICImI3gyMTEyOyItLT4KLTwhLS1FTlRJVFkgTGFw
bGFjZXRyZiAiJiN4MjExMjsiLS0+Ci08IS0tRU5USVRZIGVsbCAiJiN4MjExMzsiLS0+Ci08IS0t
RU5USVRZIE5vcGYgIiYjeDIxMTU7Ii0tPgotPCEtLUVOVElUWSBuYXR1cmFscyAiJiN4MjExNTsi
LS0+Ci08IS0tRU5USVRZIG51bWVybyAiJiN4MjExNjsiLS0+Ci08IS0tRU5USVRZIGNvcHlzciAi
JiN4MjExNzsiLS0+Ci08IS0tRU5USVRZIHdlaWVycCAiJiN4MjExODsiLS0+Ci08IS0tRU5USVRZ
IHdwICImI3gyMTE4OyItLT4KLTwhLS1FTlRJVFkgUG9wZiAiJiN4MjExOTsiLS0+Ci08IS0tRU5U
SVRZIHByaW1lcyAiJiN4MjExOTsiLS0+Ci08IS0tRU5USVRZIHJhdGlvbmFscyAiJiN4MjExQTsi
LS0+Ci08IS0tRU5USVRZIFFvcGYgIiYjeDIxMUE7Ii0tPgotPCEtLUVOVElUWSBSc2NyICImI3gy
MTFCOyItLT4KLTwhLS1FTlRJVFkgcmVhbGluZSAiJiN4MjExQjsiLS0+Ci08IS0tRU5USVRZIHJl
YWwgIiYjeDIxMUM7Ii0tPgotPCEtLUVOVElUWSBSZSAiJiN4MjExQzsiLS0+Ci08IS0tRU5USVRZ
IHJlYWxwYXJ0ICImI3gyMTFDOyItLT4KLTwhLS1FTlRJVFkgUmZyICImI3gyMTFDOyItLT4KLTwh
LS1FTlRJVFkgcmVhbHMgIiYjeDIxMUQ7Ii0tPgotPCEtLUVOVElUWSBSb3BmICImI3gyMTFEOyIt
LT4KLTwhLS1FTlRJVFkgcnggIiYjeDIxMUU7Ii0tPgotPCEtLUVOVElUWSB0cmFkZSAiJiN4MjEy
MjsiLS0+Ci08IS0tRU5USVRZIFRSQURFICImI3gyMTIyOyItLT4KLTwhLS1FTlRJVFkgaW50ZWdl
cnMgIiYjeDIxMjQ7Ii0tPgotPCEtLUVOVElUWSBab3BmICImI3gyMTI0OyItLT4KLTwhLS1FTlRJ
VFkgbWhvICImI3gyMTI3OyItLT4KLTwhLS1FTlRJVFkgWmZyICImI3gyMTI4OyItLT4KLTwhLS1F
TlRJVFkgemVldHJmICImI3gyMTI4OyItLT4KLTwhLS1FTlRJVFkgaWlvdGEgIiYjeDIxMjk7Ii0t
PgotPCEtLUVOVElUWSBiZXJub3UgIiYjeDIxMkM7Ii0tPgotPCEtLUVOVElUWSBCZXJub3VsbGlz
ICImI3gyMTJDOyItLT4KLTwhLS1FTlRJVFkgQnNjciAiJiN4MjEyQzsiLS0+Ci08IS0tRU5USVRZ
IENmciAiJiN4MjEyRDsiLS0+Ci08IS0tRU5USVRZIENheWxleXMgIiYjeDIxMkQ7Ii0tPgotPCEt
LUVOVElUWSBlc2NyICImI3gyMTJGOyItLT4KLTwhLS1FTlRJVFkgRXNjciAiJiN4MjEzMDsiLS0+
Ci08IS0tRU5USVRZIGV4cGVjdGF0aW9uICImI3gyMTMwOyItLT4KLTwhLS1FTlRJVFkgRnNjciAi
JiN4MjEzMTsiLS0+Ci08IS0tRU5USVRZIEZvdXJpZXJ0cmYgIiYjeDIxMzE7Ii0tPgotPCEtLUVO
VElUWSBwaG1tYXQgIiYjeDIxMzM7Ii0tPgotPCEtLUVOVElUWSBNZWxsaW50cmYgIiYjeDIxMzM7
Ii0tPgotPCEtLUVOVElUWSBNc2NyICImI3gyMTMzOyItLT4KLTwhLS1FTlRJVFkgb3JkZXIgIiYj
eDIxMzQ7Ii0tPgotPCEtLUVOVElUWSBvcmRlcm9mICImI3gyMTM0OyItLT4KLTwhLS1FTlRJVFkg
b3NjciAiJiN4MjEzNDsiLS0+Ci08IS0tRU5USVRZIGFsZWZzeW0gIiYjeDIxMzU7Ii0tPgotPCEt
LUVOVElUWSBhbGVwaCAiJiN4MjEzNTsiLS0+Ci08IS0tRU5USVRZIGJldGggIiYjeDIxMzY7Ii0t
PgotPCEtLUVOVElUWSBnaW1lbCAiJiN4MjEzNzsiLS0+Ci08IS0tRU5USVRZIGRhbGV0aCAiJiN4
MjEzODsiLS0+Ci08IS0tRU5USVRZIENhcGl0YWxEaWZmZXJlbnRpYWxEICImI3gyMTQ1OyItLT4K
LTwhLS1FTlRJVFkgREQgIiYjeDIxNDU7Ii0tPgotPCEtLUVOVElUWSBEaWZmZXJlbnRpYWxEICIm
I3gyMTQ2OyItLT4KLTwhLS1FTlRJVFkgZGQgIiYjeDIxNDY7Ii0tPgotPCEtLUVOVElUWSBFeHBv
bmVudGlhbEUgIiYjeDIxNDc7Ii0tPgotPCEtLUVOVElUWSBleHBvbmVudGlhbGUgIiYjeDIxNDc7
Ii0tPgotPCEtLUVOVElUWSBlZSAiJiN4MjE0NzsiLS0+Ci08IS0tRU5USVRZIEltYWdpbmFyeUkg
IiYjeDIxNDg7Ii0tPgotPCEtLUVOVElUWSBpaSAiJiN4MjE0ODsiLS0+Ci08IS0tRU5USVRZIGZy
YWMxMyAiJiN4MjE1MzsiLS0+Ci08IS0tRU5USVRZIGZyYWMyMyAiJiN4MjE1NDsiLS0+Ci08IS0t
RU5USVRZIGZyYWMxNSAiJiN4MjE1NTsiLS0+Ci08IS0tRU5USVRZIGZyYWMyNSAiJiN4MjE1Njsi
LS0+Ci08IS0tRU5USVRZIGZyYWMzNSAiJiN4MjE1NzsiLS0+Ci08IS0tRU5USVRZIGZyYWM0NSAi
JiN4MjE1ODsiLS0+Ci08IS0tRU5USVRZIGZyYWMxNiAiJiN4MjE1OTsiLS0+Ci08IS0tRU5USVRZ
IGZyYWM1NiAiJiN4MjE1QTsiLS0+Ci08IS0tRU5USVRZIGZyYWMxOCAiJiN4MjE1QjsiLS0+Ci08
IS0tRU5USVRZIGZyYWMzOCAiJiN4MjE1QzsiLS0+Ci08IS0tRU5USVRZIGZyYWM1OCAiJiN4MjE1
RDsiLS0+Ci08IS0tRU5USVRZIGZyYWM3OCAiJiN4MjE1RTsiLS0+Ci08IS0tRU5USVRZIGxhcnIg
IiYjeDIxOTA7Ii0tPgotPCEtLUVOVElUWSBsZWZ0YXJyb3cgIiYjeDIxOTA7Ii0tPgotPCEtLUVO
VElUWSBMZWZ0QXJyb3cgIiYjeDIxOTA7Ii0tPgotPCEtLUVOVElUWSBzbGFyciAiJiN4MjE5MDsi
LS0+Ci08IS0tRU5USVRZIFNob3J0TGVmdEFycm93ICImI3gyMTkwOyItLT4KLTwhLS1FTlRJVFkg
dWFyciAiJiN4MjE5MTsiLS0+Ci08IS0tRU5USVRZIHVwYXJyb3cgIiYjeDIxOTE7Ii0tPgotPCEt
LUVOVElUWSBVcEFycm93ICImI3gyMTkxOyItLT4KLTwhLS1FTlRJVFkgU2hvcnRVcEFycm93ICIm
I3gyMTkxOyItLT4KLTwhLS1FTlRJVFkgcmFyciAiJiN4MjE5MjsiLS0+Ci08IS0tRU5USVRZIHJp
Z2h0YXJyb3cgIiYjeDIxOTI7Ii0tPgotPCEtLUVOVElUWSBSaWdodEFycm93ICImI3gyMTkyOyIt
LT4KLTwhLS1FTlRJVFkgc3JhcnIgIiYjeDIxOTI7Ii0tPgotPCEtLUVOVElUWSBTaG9ydFJpZ2h0
QXJyb3cgIiYjeDIxOTI7Ii0tPgotPCEtLUVOVElUWSBkYXJyICImI3gyMTkzOyItLT4KLTwhLS1F
TlRJVFkgZG93bmFycm93ICImI3gyMTkzOyItLT4KLTwhLS1FTlRJVFkgRG93bkFycm93ICImI3gy
MTkzOyItLT4KLTwhLS1FTlRJVFkgU2hvcnREb3duQXJyb3cgIiYjeDIxOTM7Ii0tPgotPCEtLUVO
VElUWSBoYXJyICImI3gyMTk0OyItLT4KLTwhLS1FTlRJVFkgbGVmdHJpZ2h0YXJyb3cgIiYjeDIx
OTQ7Ii0tPgotPCEtLUVOVElUWSBMZWZ0UmlnaHRBcnJvdyAiJiN4MjE5NDsiLS0+Ci08IS0tRU5U
SVRZIHZhcnIgIiYjeDIxOTU7Ii0tPgotPCEtLUVOVElUWSB1cGRvd25hcnJvdyAiJiN4MjE5NTsi
LS0+Ci08IS0tRU5USVRZIFVwRG93bkFycm93ICImI3gyMTk1OyItLT4KLTwhLS1FTlRJVFkgbndh
cnIgIiYjeDIxOTY7Ii0tPgotPCEtLUVOVElUWSBVcHBlckxlZnRBcnJvdyAiJiN4MjE5NjsiLS0+
Ci08IS0tRU5USVRZIG53YXJyb3cgIiYjeDIxOTY7Ii0tPgotPCEtLUVOVElUWSBuZWFyciAiJiN4
MjE5NzsiLS0+Ci08IS0tRU5USVRZIFVwcGVyUmlnaHRBcnJvdyAiJiN4MjE5NzsiLS0+Ci08IS0t
RU5USVRZIG5lYXJyb3cgIiYjeDIxOTc7Ii0tPgotPCEtLUVOVElUWSBzZWFyciAiJiN4MjE5ODsi
LS0+Ci08IS0tRU5USVRZIHNlYXJyb3cgIiYjeDIxOTg7Ii0tPgotPCEtLUVOVElUWSBMb3dlclJp
Z2h0QXJyb3cgIiYjeDIxOTg7Ii0tPgotPCEtLUVOVElUWSBzd2FyciAiJiN4MjE5OTsiLS0+Ci08
IS0tRU5USVRZIHN3YXJyb3cgIiYjeDIxOTk7Ii0tPgotPCEtLUVOVElUWSBMb3dlckxlZnRBcnJv
dyAiJiN4MjE5OTsiLS0+Ci08IS0tRU5USVRZIG5sYXJyICImI3gyMTlBOyItLT4KLTwhLS1FTlRJ
VFkgbmxlZnRhcnJvdyAiJiN4MjE5QTsiLS0+Ci08IS0tRU5USVRZIG5yYXJyICImI3gyMTlCOyIt
LT4KLTwhLS1FTlRJVFkgbnJpZ2h0YXJyb3cgIiYjeDIxOUI7Ii0tPgotPCEtLUVOVElUWSByYXJy
dyAiJiN4MjE5RDsiLS0+Ci08IS0tRU5USVRZIHJpZ2h0c3F1aWdhcnJvdyAiJiN4MjE5RDsiLS0+
Ci08IS0tRU5USVRZIG5yYXJydyAiJiN4MjE5RDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBMYXJy
ICImI3gyMTlFOyItLT4KLTwhLS1FTlRJVFkgdHdvaGVhZGxlZnRhcnJvdyAiJiN4MjE5RTsiLS0+
Ci08IS0tRU5USVRZIFVhcnIgIiYjeDIxOUY7Ii0tPgotPCEtLUVOVElUWSBSYXJyICImI3gyMUEw
OyItLT4KLTwhLS1FTlRJVFkgdHdvaGVhZHJpZ2h0YXJyb3cgIiYjeDIxQTA7Ii0tPgotPCEtLUVO
VElUWSBEYXJyICImI3gyMUExOyItLT4KLTwhLS1FTlRJVFkgbGFycnRsICImI3gyMUEyOyItLT4K
LTwhLS1FTlRJVFkgbGVmdGFycm93dGFpbCAiJiN4MjFBMjsiLS0+Ci08IS0tRU5USVRZIHJhcnJ0
bCAiJiN4MjFBMzsiLS0+Ci08IS0tRU5USVRZIHJpZ2h0YXJyb3d0YWlsICImI3gyMUEzOyItLT4K
LTwhLS1FTlRJVFkgTGVmdFRlZUFycm93ICImI3gyMUE0OyItLT4KLTwhLS1FTlRJVFkgbWFwc3Rv
bGVmdCAiJiN4MjFBNDsiLS0+Ci08IS0tRU5USVRZIFVwVGVlQXJyb3cgIiYjeDIxQTU7Ii0tPgot
PCEtLUVOVElUWSBtYXBzdG91cCAiJiN4MjFBNTsiLS0+Ci08IS0tRU5USVRZIG1hcCAiJiN4MjFB
NjsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0VGVlQXJyb3cgIiYjeDIxQTY7Ii0tPgotPCEtLUVOVElU
WSBtYXBzdG8gIiYjeDIxQTY7Ii0tPgotPCEtLUVOVElUWSBEb3duVGVlQXJyb3cgIiYjeDIxQTc7
Ii0tPgotPCEtLUVOVElUWSBtYXBzdG9kb3duICImI3gyMUE3OyItLT4KLTwhLS1FTlRJVFkgbGFy
cmhrICImI3gyMUE5OyItLT4KLTwhLS1FTlRJVFkgaG9va2xlZnRhcnJvdyAiJiN4MjFBOTsiLS0+
Ci08IS0tRU5USVRZIHJhcnJoayAiJiN4MjFBQTsiLS0+Ci08IS0tRU5USVRZIGhvb2tyaWdodGFy
cm93ICImI3gyMUFBOyItLT4KLTwhLS1FTlRJVFkgbGFycmxwICImI3gyMUFCOyItLT4KLTwhLS1F
TlRJVFkgbG9vcGFycm93bGVmdCAiJiN4MjFBQjsiLS0+Ci08IS0tRU5USVRZIHJhcnJscCAiJiN4
MjFBQzsiLS0+Ci08IS0tRU5USVRZIGxvb3BhcnJvd3JpZ2h0ICImI3gyMUFDOyItLT4KLTwhLS1F
TlRJVFkgaGFycncgIiYjeDIxQUQ7Ii0tPgotPCEtLUVOVElUWSBsZWZ0cmlnaHRzcXVpZ2Fycm93
ICImI3gyMUFEOyItLT4KLTwhLS1FTlRJVFkgbmhhcnIgIiYjeDIxQUU7Ii0tPgotPCEtLUVOVElU
WSBubGVmdHJpZ2h0YXJyb3cgIiYjeDIxQUU7Ii0tPgotPCEtLUVOVElUWSBsc2ggIiYjeDIxQjA7
Ii0tPgotPCEtLUVOVElUWSBMc2ggIiYjeDIxQjA7Ii0tPgotPCEtLUVOVElUWSByc2ggIiYjeDIx
QjE7Ii0tPgotPCEtLUVOVElUWSBSc2ggIiYjeDIxQjE7Ii0tPgotPCEtLUVOVElUWSBsZHNoICIm
I3gyMUIyOyItLT4KLTwhLS1FTlRJVFkgcmRzaCAiJiN4MjFCMzsiLS0+Ci08IS0tRU5USVRZIGNy
YXJyICImI3gyMUI1OyItLT4KLTwhLS1FTlRJVFkgY3VsYXJyICImI3gyMUI2OyItLT4KLTwhLS1F
TlRJVFkgY3VydmVhcnJvd2xlZnQgIiYjeDIxQjY7Ii0tPgotPCEtLUVOVElUWSBjdXJhcnIgIiYj
eDIxQjc7Ii0tPgotPCEtLUVOVElUWSBjdXJ2ZWFycm93cmlnaHQgIiYjeDIxQjc7Ii0tPgotPCEt
LUVOVElUWSBvbGFyciAiJiN4MjFCQTsiLS0+Ci08IS0tRU5USVRZIGNpcmNsZWFycm93bGVmdCAi
JiN4MjFCQTsiLS0+Ci08IS0tRU5USVRZIG9yYXJyICImI3gyMUJCOyItLT4KLTwhLS1FTlRJVFkg
Y2lyY2xlYXJyb3dyaWdodCAiJiN4MjFCQjsiLS0+Ci08IS0tRU5USVRZIGxoYXJ1ICImI3gyMUJD
OyItLT4KLTwhLS1FTlRJVFkgTGVmdFZlY3RvciAiJiN4MjFCQzsiLS0+Ci08IS0tRU5USVRZIGxl
ZnRoYXJwb29udXAgIiYjeDIxQkM7Ii0tPgotPCEtLUVOVElUWSBsaGFyZCAiJiN4MjFCRDsiLS0+
Ci08IS0tRU5USVRZIGxlZnRoYXJwb29uZG93biAiJiN4MjFCRDsiLS0+Ci08IS0tRU5USVRZIERv
d25MZWZ0VmVjdG9yICImI3gyMUJEOyItLT4KLTwhLS1FTlRJVFkgdWhhcnIgIiYjeDIxQkU7Ii0t
PgotPCEtLUVOVElUWSB1cGhhcnBvb25yaWdodCAiJiN4MjFCRTsiLS0+Ci08IS0tRU5USVRZIFJp
Z2h0VXBWZWN0b3IgIiYjeDIxQkU7Ii0tPgotPCEtLUVOVElUWSB1aGFybCAiJiN4MjFCRjsiLS0+
Ci08IS0tRU5USVRZIHVwaGFycG9vbmxlZnQgIiYjeDIxQkY7Ii0tPgotPCEtLUVOVElUWSBMZWZ0
VXBWZWN0b3IgIiYjeDIxQkY7Ii0tPgotPCEtLUVOVElUWSByaGFydSAiJiN4MjFDMDsiLS0+Ci08
IS0tRU5USVRZIFJpZ2h0VmVjdG9yICImI3gyMUMwOyItLT4KLTwhLS1FTlRJVFkgcmlnaHRoYXJw
b29udXAgIiYjeDIxQzA7Ii0tPgotPCEtLUVOVElUWSByaGFyZCAiJiN4MjFDMTsiLS0+Ci08IS0t
RU5USVRZIHJpZ2h0aGFycG9vbmRvd24gIiYjeDIxQzE7Ii0tPgotPCEtLUVOVElUWSBEb3duUmln
aHRWZWN0b3IgIiYjeDIxQzE7Ii0tPgotPCEtLUVOVElUWSBkaGFyciAiJiN4MjFDMjsiLS0+Ci08
IS0tRU5USVRZIFJpZ2h0RG93blZlY3RvciAiJiN4MjFDMjsiLS0+Ci08IS0tRU5USVRZIGRvd25o
YXJwb29ucmlnaHQgIiYjeDIxQzI7Ii0tPgotPCEtLUVOVElUWSBkaGFybCAiJiN4MjFDMzsiLS0+
Ci08IS0tRU5USVRZIExlZnREb3duVmVjdG9yICImI3gyMUMzOyItLT4KLTwhLS1FTlRJVFkgZG93
bmhhcnBvb25sZWZ0ICImI3gyMUMzOyItLT4KLTwhLS1FTlRJVFkgcmxhcnIgIiYjeDIxQzQ7Ii0t
PgotPCEtLUVOVElUWSByaWdodGxlZnRhcnJvd3MgIiYjeDIxQzQ7Ii0tPgotPCEtLUVOVElUWSBS
aWdodEFycm93TGVmdEFycm93ICImI3gyMUM0OyItLT4KLTwhLS1FTlRJVFkgdWRhcnIgIiYjeDIx
QzU7Ii0tPgotPCEtLUVOVElUWSBVcEFycm93RG93bkFycm93ICImI3gyMUM1OyItLT4KLTwhLS1F
TlRJVFkgbHJhcnIgIiYjeDIxQzY7Ii0tPgotPCEtLUVOVElUWSBsZWZ0cmlnaHRhcnJvd3MgIiYj
eDIxQzY7Ii0tPgotPCEtLUVOVElUWSBMZWZ0QXJyb3dSaWdodEFycm93ICImI3gyMUM2OyItLT4K
LTwhLS1FTlRJVFkgbGxhcnIgIiYjeDIxQzc7Ii0tPgotPCEtLUVOVElUWSBsZWZ0bGVmdGFycm93
cyAiJiN4MjFDNzsiLS0+Ci08IS0tRU5USVRZIHV1YXJyICImI3gyMUM4OyItLT4KLTwhLS1FTlRJ
VFkgdXB1cGFycm93cyAiJiN4MjFDODsiLS0+Ci08IS0tRU5USVRZIHJyYXJyICImI3gyMUM5OyIt
LT4KLTwhLS1FTlRJVFkgcmlnaHRyaWdodGFycm93cyAiJiN4MjFDOTsiLS0+Ci08IS0tRU5USVRZ
IGRkYXJyICImI3gyMUNBOyItLT4KLTwhLS1FTlRJVFkgZG93bmRvd25hcnJvd3MgIiYjeDIxQ0E7
Ii0tPgotPCEtLUVOVElUWSBscmhhciAiJiN4MjFDQjsiLS0+Ci08IS0tRU5USVRZIFJldmVyc2VF
cXVpbGlicml1bSAiJiN4MjFDQjsiLS0+Ci08IS0tRU5USVRZIGxlZnRyaWdodGhhcnBvb25zICIm
I3gyMUNCOyItLT4KLTwhLS1FTlRJVFkgcmxoYXIgIiYjeDIxQ0M7Ii0tPgotPCEtLUVOVElUWSBy
aWdodGxlZnRoYXJwb29ucyAiJiN4MjFDQzsiLS0+Ci08IS0tRU5USVRZIEVxdWlsaWJyaXVtICIm
I3gyMUNDOyItLT4KLTwhLS1FTlRJVFkgbmxBcnIgIiYjeDIxQ0Q7Ii0tPgotPCEtLUVOVElUWSBu
TGVmdGFycm93ICImI3gyMUNEOyItLT4KLTwhLS1FTlRJVFkgbmhBcnIgIiYjeDIxQ0U7Ii0tPgot
PCEtLUVOVElUWSBuTGVmdHJpZ2h0YXJyb3cgIiYjeDIxQ0U7Ii0tPgotPCEtLUVOVElUWSBuckFy
ciAiJiN4MjFDRjsiLS0+Ci08IS0tRU5USVRZIG5SaWdodGFycm93ICImI3gyMUNGOyItLT4KLTwh
LS1FTlRJVFkgbEFyciAiJiN4MjFEMDsiLS0+Ci08IS0tRU5USVRZIExlZnRhcnJvdyAiJiN4MjFE
MDsiLS0+Ci08IS0tRU5USVRZIERvdWJsZUxlZnRBcnJvdyAiJiN4MjFEMDsiLS0+Ci08IS0tRU5U
SVRZIHVBcnIgIiYjeDIxRDE7Ii0tPgotPCEtLUVOVElUWSBVcGFycm93ICImI3gyMUQxOyItLT4K
LTwhLS1FTlRJVFkgRG91YmxlVXBBcnJvdyAiJiN4MjFEMTsiLS0+Ci08IS0tRU5USVRZIHJBcnIg
IiYjeDIxRDI7Ii0tPgotPCEtLUVOVElUWSBSaWdodGFycm93ICImI3gyMUQyOyItLT4KLTwhLS1F
TlRJVFkgSW1wbGllcyAiJiN4MjFEMjsiLS0+Ci08IS0tRU5USVRZIERvdWJsZVJpZ2h0QXJyb3cg
IiYjeDIxRDI7Ii0tPgotPCEtLUVOVElUWSBkQXJyICImI3gyMUQzOyItLT4KLTwhLS1FTlRJVFkg
RG93bmFycm93ICImI3gyMUQzOyItLT4KLTwhLS1FTlRJVFkgRG91YmxlRG93bkFycm93ICImI3gy
MUQzOyItLT4KLTwhLS1FTlRJVFkgaEFyciAiJiN4MjFENDsiLS0+Ci08IS0tRU5USVRZIExlZnRy
aWdodGFycm93ICImI3gyMUQ0OyItLT4KLTwhLS1FTlRJVFkgRG91YmxlTGVmdFJpZ2h0QXJyb3cg
IiYjeDIxRDQ7Ii0tPgotPCEtLUVOVElUWSBpZmYgIiYjeDIxRDQ7Ii0tPgotPCEtLUVOVElUWSB2
QXJyICImI3gyMUQ1OyItLT4KLTwhLS1FTlRJVFkgVXBkb3duYXJyb3cgIiYjeDIxRDU7Ii0tPgot
PCEtLUVOVElUWSBEb3VibGVVcERvd25BcnJvdyAiJiN4MjFENTsiLS0+Ci08IS0tRU5USVRZIG53
QXJyICImI3gyMUQ2OyItLT4KLTwhLS1FTlRJVFkgbmVBcnIgIiYjeDIxRDc7Ii0tPgotPCEtLUVO
VElUWSBzZUFyciAiJiN4MjFEODsiLS0+Ci08IS0tRU5USVRZIHN3QXJyICImI3gyMUQ5OyItLT4K
LTwhLS1FTlRJVFkgbEFhcnIgIiYjeDIxREE7Ii0tPgotPCEtLUVOVElUWSBMbGVmdGFycm93ICIm
I3gyMURBOyItLT4KLTwhLS1FTlRJVFkgckFhcnIgIiYjeDIxREI7Ii0tPgotPCEtLUVOVElUWSBS
cmlnaHRhcnJvdyAiJiN4MjFEQjsiLS0+Ci08IS0tRU5USVRZIHppZ3JhcnIgIiYjeDIxREQ7Ii0t
PgotPCEtLUVOVElUWSBsYXJyYiAiJiN4MjFFNDsiLS0+Ci08IS0tRU5USVRZIExlZnRBcnJvd0Jh
ciAiJiN4MjFFNDsiLS0+Ci08IS0tRU5USVRZIHJhcnJiICImI3gyMUU1OyItLT4KLTwhLS1FTlRJ
VFkgUmlnaHRBcnJvd0JhciAiJiN4MjFFNTsiLS0+Ci08IS0tRU5USVRZIGR1YXJyICImI3gyMUY1
OyItLT4KLTwhLS1FTlRJVFkgRG93bkFycm93VXBBcnJvdyAiJiN4MjFGNTsiLS0+Ci08IS0tRU5U
SVRZIGxvYXJyICImI3gyMUZEOyItLT4KLTwhLS1FTlRJVFkgcm9hcnIgIiYjeDIxRkU7Ii0tPgot
PCEtLUVOVElUWSBob2FyciAiJiN4MjFGRjsiLS0+Ci08IS0tRU5USVRZIGZvcmFsbCAiJiN4MjIw
MDsiLS0+Ci08IS0tRU5USVRZIEZvckFsbCAiJiN4MjIwMDsiLS0+Ci08IS0tRU5USVRZIGNvbXAg
IiYjeDIyMDE7Ii0tPgotPCEtLUVOVElUWSBjb21wbGVtZW50ICImI3gyMjAxOyItLT4KLTwhLS1F
TlRJVFkgcGFydCAiJiN4MjIwMjsiLS0+Ci08IS0tRU5USVRZIFBhcnRpYWxEICImI3gyMjAyOyIt
LT4KLTwhLS1FTlRJVFkgbnBhcnQgIiYjeDIyMDI7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgZXhp
c3QgIiYjeDIyMDM7Ii0tPgotPCEtLUVOVElUWSBFeGlzdHMgIiYjeDIyMDM7Ii0tPgotPCEtLUVO
VElUWSBuZXhpc3QgIiYjeDIyMDQ7Ii0tPgotPCEtLUVOVElUWSBOb3RFeGlzdHMgIiYjeDIyMDQ7
Ii0tPgotPCEtLUVOVElUWSBuZXhpc3RzICImI3gyMjA0OyItLT4KLTwhLS1FTlRJVFkgZW1wdHkg
IiYjeDIyMDU7Ii0tPgotPCEtLUVOVElUWSBlbXB0eXNldCAiJiN4MjIwNTsiLS0+Ci08IS0tRU5U
SVRZIGVtcHR5diAiJiN4MjIwNTsiLS0+Ci08IS0tRU5USVRZIHZhcm5vdGhpbmcgIiYjeDIyMDU7
Ii0tPgotPCEtLUVOVElUWSBuYWJsYSAiJiN4MjIwNzsiLS0+Ci08IS0tRU5USVRZIERlbCAiJiN4
MjIwNzsiLS0+Ci08IS0tRU5USVRZIGlzaW4gIiYjeDIyMDg7Ii0tPgotPCEtLUVOVElUWSBpc2lu
diAiJiN4MjIwODsiLS0+Ci08IS0tRU5USVRZIEVsZW1lbnQgIiYjeDIyMDg7Ii0tPgotPCEtLUVO
VElUWSBpbiAiJiN4MjIwODsiLS0+Ci08IS0tRU5USVRZIG5vdGluICImI3gyMjA5OyItLT4KLTwh
LS1FTlRJVFkgTm90RWxlbWVudCAiJiN4MjIwOTsiLS0+Ci08IS0tRU5USVRZIG5vdGludmEgIiYj
eDIyMDk7Ii0tPgotPCEtLUVOVElUWSBuaXYgIiYjeDIyMEI7Ii0tPgotPCEtLUVOVElUWSBSZXZl
cnNlRWxlbWVudCAiJiN4MjIwQjsiLS0+Ci08IS0tRU5USVRZIG5pICImI3gyMjBCOyItLT4KLTwh
LS1FTlRJVFkgU3VjaFRoYXQgIiYjeDIyMEI7Ii0tPgotPCEtLUVOVElUWSBub3RuaSAiJiN4MjIw
QzsiLS0+Ci08IS0tRU5USVRZIG5vdG5pdmEgIiYjeDIyMEM7Ii0tPgotPCEtLUVOVElUWSBOb3RS
ZXZlcnNlRWxlbWVudCAiJiN4MjIwQzsiLS0+Ci08IS0tRU5USVRZIHByb2QgIiYjeDIyMEY7Ii0t
PgotPCEtLUVOVElUWSBQcm9kdWN0ICImI3gyMjBGOyItLT4KLTwhLS1FTlRJVFkgY29wcm9kICIm
I3gyMjEwOyItLT4KLTwhLS1FTlRJVFkgQ29wcm9kdWN0ICImI3gyMjEwOyItLT4KLTwhLS1FTlRJ
VFkgc3VtICImI3gyMjExOyItLT4KLTwhLS1FTlRJVFkgU3VtICImI3gyMjExOyItLT4KLTwhLS1F
TlRJVFkgbWludXMgIiYjeDIyMTI7Ii0tPgotPCEtLUVOVElUWSBtbnBsdXMgIiYjeDIyMTM7Ii0t
PgotPCEtLUVOVElUWSBtcCAiJiN4MjIxMzsiLS0+Ci08IS0tRU5USVRZIE1pbnVzUGx1cyAiJiN4
MjIxMzsiLS0+Ci08IS0tRU5USVRZIHBsdXNkbyAiJiN4MjIxNDsiLS0+Ci08IS0tRU5USVRZIGRv
dHBsdXMgIiYjeDIyMTQ7Ii0tPgotPCEtLUVOVElUWSBzZXRtbiAiJiN4MjIxNjsiLS0+Ci08IS0t
RU5USVRZIHNldG1pbnVzICImI3gyMjE2OyItLT4KLTwhLS1FTlRJVFkgQmFja3NsYXNoICImI3gy
MjE2OyItLT4KLTwhLS1FTlRJVFkgc3NldG1uICImI3gyMjE2OyItLT4KLTwhLS1FTlRJVFkgc21h
bGxzZXRtaW51cyAiJiN4MjIxNjsiLS0+Ci08IS0tRU5USVRZIGxvd2FzdCAiJiN4MjIxNzsiLS0+
Ci08IS0tRU5USVRZIGNvbXBmbiAiJiN4MjIxODsiLS0+Ci08IS0tRU5USVRZIFNtYWxsQ2lyY2xl
ICImI3gyMjE4OyItLT4KLTwhLS1FTlRJVFkgcmFkaWMgIiYjeDIyMUE7Ii0tPgotPCEtLUVOVElU
WSBTcXJ0ICImI3gyMjFBOyItLT4KLTwhLS1FTlRJVFkgcHJvcCAiJiN4MjIxRDsiLS0+Ci08IS0t
RU5USVRZIHByb3B0byAiJiN4MjIxRDsiLS0+Ci08IS0tRU5USVRZIFByb3BvcnRpb25hbCAiJiN4
MjIxRDsiLS0+Ci08IS0tRU5USVRZIHZwcm9wICImI3gyMjFEOyItLT4KLTwhLS1FTlRJVFkgdmFy
cHJvcHRvICImI3gyMjFEOyItLT4KLTwhLS1FTlRJVFkgaW5maW4gIiYjeDIyMUU7Ii0tPgotPCEt
LUVOVElUWSBhbmdydCAiJiN4MjIxRjsiLS0+Ci08IS0tRU5USVRZIGFuZyAiJiN4MjIyMDsiLS0+
Ci08IS0tRU5USVRZIGFuZ2xlICImI3gyMjIwOyItLT4KLTwhLS1FTlRJVFkgbmFuZyAiJiN4MjIy
MDsmI3gyMEQyOyItLT4KLTwhLS1FTlRJVFkgYW5nbXNkICImI3gyMjIxOyItLT4KLTwhLS1FTlRJ
VFkgbWVhc3VyZWRhbmdsZSAiJiN4MjIyMTsiLS0+Ci08IS0tRU5USVRZIGFuZ3NwaCAiJiN4MjIy
MjsiLS0+Ci08IS0tRU5USVRZIG1pZCAiJiN4MjIyMzsiLS0+Ci08IS0tRU5USVRZIFZlcnRpY2Fs
QmFyICImI3gyMjIzOyItLT4KLTwhLS1FTlRJVFkgc21pZCAiJiN4MjIyMzsiLS0+Ci08IS0tRU5U
SVRZIHNob3J0bWlkICImI3gyMjIzOyItLT4KLTwhLS1FTlRJVFkgbm1pZCAiJiN4MjIyNDsiLS0+
Ci08IS0tRU5USVRZIE5vdFZlcnRpY2FsQmFyICImI3gyMjI0OyItLT4KLTwhLS1FTlRJVFkgbnNt
aWQgIiYjeDIyMjQ7Ii0tPgotPCEtLUVOVElUWSBuc2hvcnRtaWQgIiYjeDIyMjQ7Ii0tPgotPCEt
LUVOVElUWSBwYXIgIiYjeDIyMjU7Ii0tPgotPCEtLUVOVElUWSBwYXJhbGxlbCAiJiN4MjIyNTsi
LS0+Ci08IS0tRU5USVRZIERvdWJsZVZlcnRpY2FsQmFyICImI3gyMjI1OyItLT4KLTwhLS1FTlRJ
VFkgc3BhciAiJiN4MjIyNTsiLS0+Ci08IS0tRU5USVRZIHNob3J0cGFyYWxsZWwgIiYjeDIyMjU7
Ii0tPgotPCEtLUVOVElUWSBucGFyICImI3gyMjI2OyItLT4KLTwhLS1FTlRJVFkgbnBhcmFsbGVs
ICImI3gyMjI2OyItLT4KLTwhLS1FTlRJVFkgTm90RG91YmxlVmVydGljYWxCYXIgIiYjeDIyMjY7
Ii0tPgotPCEtLUVOVElUWSBuc3BhciAiJiN4MjIyNjsiLS0+Ci08IS0tRU5USVRZIG5zaG9ydHBh
cmFsbGVsICImI3gyMjI2OyItLT4KLTwhLS1FTlRJVFkgYW5kICImI3gyMjI3OyItLT4KLTwhLS1F
TlRJVFkgd2VkZ2UgIiYjeDIyMjc7Ii0tPgotPCEtLUVOVElUWSBvciAiJiN4MjIyODsiLS0+Ci08
IS0tRU5USVRZIHZlZSAiJiN4MjIyODsiLS0+Ci08IS0tRU5USVRZIGNhcCAiJiN4MjIyOTsiLS0+
Ci08IS0tRU5USVRZIGNhcHMgIiYjeDIyMjk7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIGN1cCAi
JiN4MjIyQTsiLS0+Ci08IS0tRU5USVRZIGN1cHMgIiYjeDIyMkE7JiN4RkUwMDsiLS0+Ci08IS0t
RU5USVRZIGludCAiJiN4MjIyQjsiLS0+Ci08IS0tRU5USVRZIEludGVncmFsICImI3gyMjJCOyIt
LT4KLTwhLS1FTlRJVFkgSW50ICImI3gyMjJDOyItLT4KLTwhLS1FTlRJVFkgdGludCAiJiN4MjIy
RDsiLS0+Ci08IS0tRU5USVRZIGlpaW50ICImI3gyMjJEOyItLT4KLTwhLS1FTlRJVFkgY29uaW50
ICImI3gyMjJFOyItLT4KLTwhLS1FTlRJVFkgb2ludCAiJiN4MjIyRTsiLS0+Ci08IS0tRU5USVRZ
IENvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRTsiLS0+Ci08IS0tRU5USVRZIENvbmludCAiJiN4MjIy
RjsiLS0+Ci08IS0tRU5USVRZIERvdWJsZUNvbnRvdXJJbnRlZ3JhbCAiJiN4MjIyRjsiLS0+Ci08
IS0tRU5USVRZIENjb25pbnQgIiYjeDIyMzA7Ii0tPgotPCEtLUVOVElUWSBjd2ludCAiJiN4MjIz
MTsiLS0+Ci08IS0tRU5USVRZIGN3Y29uaW50ICImI3gyMjMyOyItLT4KLTwhLS1FTlRJVFkgQ2xv
Y2t3aXNlQ29udG91ckludGVncmFsICImI3gyMjMyOyItLT4KLTwhLS1FTlRJVFkgYXdjb25pbnQg
IiYjeDIyMzM7Ii0tPgotPCEtLUVOVElUWSBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFs
ICImI3gyMjMzOyItLT4KLTwhLS1FTlRJVFkgdGhlcmU0ICImI3gyMjM0OyItLT4KLTwhLS1FTlRJ
VFkgdGhlcmVmb3JlICImI3gyMjM0OyItLT4KLTwhLS1FTlRJVFkgVGhlcmVmb3JlICImI3gyMjM0
OyItLT4KLTwhLS1FTlRJVFkgYmVjYXVzICImI3gyMjM1OyItLT4KLTwhLS1FTlRJVFkgYmVjYXVz
ZSAiJiN4MjIzNTsiLS0+Ci08IS0tRU5USVRZIEJlY2F1c2UgIiYjeDIyMzU7Ii0tPgotPCEtLUVO
VElUWSByYXRpbyAiJiN4MjIzNjsiLS0+Ci08IS0tRU5USVRZIENvbG9uICImI3gyMjM3OyItLT4K
LTwhLS1FTlRJVFkgUHJvcG9ydGlvbiAiJiN4MjIzNzsiLS0+Ci08IS0tRU5USVRZIG1pbnVzZCAi
JiN4MjIzODsiLS0+Ci08IS0tRU5USVRZIGRvdG1pbnVzICImI3gyMjM4OyItLT4KLTwhLS1FTlRJ
VFkgbUREb3QgIiYjeDIyM0E7Ii0tPgotPCEtLUVOVElUWSBob210aHQgIiYjeDIyM0I7Ii0tPgot
PCEtLUVOVElUWSBzaW0gIiYjeDIyM0M7Ii0tPgotPCEtLUVOVElUWSBUaWxkZSAiJiN4MjIzQzsi
LS0+Ci08IS0tRU5USVRZIHRoa3NpbSAiJiN4MjIzQzsiLS0+Ci08IS0tRU5USVRZIHRoaWNrc2lt
ICImI3gyMjNDOyItLT4KLTwhLS1FTlRJVFkgbnZzaW0gIiYjeDIyM0M7JiN4MjBEMjsiLS0+Ci08
IS0tRU5USVRZIGJzaW0gIiYjeDIyM0Q7Ii0tPgotPCEtLUVOVElUWSBiYWNrc2ltICImI3gyMjNE
OyItLT4KLTwhLS1FTlRJVFkgcmFjZSAiJiN4MjIzRDsmI3gzMzE7Ii0tPgotPCEtLUVOVElUWSBh
YyAiJiN4MjIzRTsiLS0+Ci08IS0tRU5USVRZIG1zdHBvcyAiJiN4MjIzRTsiLS0+Ci08IS0tRU5U
SVRZIGFjRSAiJiN4MjIzRTsmI3gzMzM7Ii0tPgotPCEtLUVOVElUWSBhY2QgIiYjeDIyM0Y7Ii0t
PgotPCEtLUVOVElUWSB3cmVhdGggIiYjeDIyNDA7Ii0tPgotPCEtLUVOVElUWSBWZXJ0aWNhbFRp
bGRlICImI3gyMjQwOyItLT4KLTwhLS1FTlRJVFkgd3IgIiYjeDIyNDA7Ii0tPgotPCEtLUVOVElU
WSBuc2ltICImI3gyMjQxOyItLT4KLTwhLS1FTlRJVFkgTm90VGlsZGUgIiYjeDIyNDE7Ii0tPgot
PCEtLUVOVElUWSBlc2ltICImI3gyMjQyOyItLT4KLTwhLS1FTlRJVFkgRXF1YWxUaWxkZSAiJiN4
MjI0MjsiLS0+Ci08IS0tRU5USVRZIGVxc2ltICImI3gyMjQyOyItLT4KLTwhLS1FTlRJVFkgTm90
RXF1YWxUaWxkZSAiJiN4MjI0MjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBuZXNpbSAiJiN4MjI0
MjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBzaW1lICImI3gyMjQzOyItLT4KLTwhLS1FTlRJVFkg
VGlsZGVFcXVhbCAiJiN4MjI0MzsiLS0+Ci08IS0tRU5USVRZIHNpbWVxICImI3gyMjQzOyItLT4K
LTwhLS1FTlRJVFkgbnNpbWUgIiYjeDIyNDQ7Ii0tPgotPCEtLUVOVElUWSBuc2ltZXEgIiYjeDIy
NDQ7Ii0tPgotPCEtLUVOVElUWSBOb3RUaWxkZUVxdWFsICImI3gyMjQ0OyItLT4KLTwhLS1FTlRJ
VFkgY29uZyAiJiN4MjI0NTsiLS0+Ci08IS0tRU5USVRZIFRpbGRlRnVsbEVxdWFsICImI3gyMjQ1
OyItLT4KLTwhLS1FTlRJVFkgc2ltbmUgIiYjeDIyNDY7Ii0tPgotPCEtLUVOVElUWSBuY29uZyAi
JiN4MjI0NzsiLS0+Ci08IS0tRU5USVRZIE5vdFRpbGRlRnVsbEVxdWFsICImI3gyMjQ3OyItLT4K
LTwhLS1FTlRJVFkgYXN5bXAgIiYjeDIyNDg7Ii0tPgotPCEtLUVOVElUWSBhcCAiJiN4MjI0ODsi
LS0+Ci08IS0tRU5USVRZIFRpbGRlVGlsZGUgIiYjeDIyNDg7Ii0tPgotPCEtLUVOVElUWSBhcHBy
b3ggIiYjeDIyNDg7Ii0tPgotPCEtLUVOVElUWSB0aGthcCAiJiN4MjI0ODsiLS0+Ci08IS0tRU5U
SVRZIHRoaWNrYXBwcm94ICImI3gyMjQ4OyItLT4KLTwhLS1FTlRJVFkgbmFwICImI3gyMjQ5OyIt
LT4KLTwhLS1FTlRJVFkgTm90VGlsZGVUaWxkZSAiJiN4MjI0OTsiLS0+Ci08IS0tRU5USVRZIG5h
cHByb3ggIiYjeDIyNDk7Ii0tPgotPCEtLUVOVElUWSBhcGUgIiYjeDIyNEE7Ii0tPgotPCEtLUVO
VElUWSBhcHByb3hlcSAiJiN4MjI0QTsiLS0+Ci08IS0tRU5USVRZIGFwaWQgIiYjeDIyNEI7Ii0t
PgotPCEtLUVOVElUWSBuYXBpZCAiJiN4MjI0QjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBiY29u
ZyAiJiN4MjI0QzsiLS0+Ci08IS0tRU5USVRZIGJhY2tjb25nICImI3gyMjRDOyItLT4KLTwhLS1F
TlRJVFkgYXN5bXBlcSAiJiN4MjI0RDsiLS0+Ci08IS0tRU5USVRZIEN1cENhcCAiJiN4MjI0RDsi
LS0+Ci08IS0tRU5USVRZIG52YXAgIiYjeDIyNEQ7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIGJ1
bXAgIiYjeDIyNEU7Ii0tPgotPCEtLUVOVElUWSBIdW1wRG93bkh1bXAgIiYjeDIyNEU7Ii0tPgot
PCEtLUVOVElUWSBCdW1wZXEgIiYjeDIyNEU7Ii0tPgotPCEtLUVOVElUWSBOb3RIdW1wRG93bkh1
bXAgIiYjeDIyNEU7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbmJ1bXAgIiYjeDIyNEU7JiN4MzM4
OyItLT4KLTwhLS1FTlRJVFkgYnVtcGUgIiYjeDIyNEY7Ii0tPgotPCEtLUVOVElUWSBIdW1wRXF1
YWwgIiYjeDIyNEY7Ii0tPgotPCEtLUVOVElUWSBidW1wZXEgIiYjeDIyNEY7Ii0tPgotPCEtLUVO
VElUWSBuYnVtcGUgIiYjeDIyNEY7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgTm90SHVtcEVxdWFs
ICImI3gyMjRGOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGVzZG90ICImI3gyMjUwOyItLT4KLTwh
LS1FTlRJVFkgRG90RXF1YWwgIiYjeDIyNTA7Ii0tPgotPCEtLUVOVElUWSBkb3RlcSAiJiN4MjI1
MDsiLS0+Ci08IS0tRU5USVRZIG5lZG90ICImI3gyMjUwOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZ
IGVEb3QgIiYjeDIyNTE7Ii0tPgotPCEtLUVOVElUWSBkb3RlcWRvdCAiJiN4MjI1MTsiLS0+Ci08
IS0tRU5USVRZIGVmRG90ICImI3gyMjUyOyItLT4KLTwhLS1FTlRJVFkgZmFsbGluZ2RvdHNlcSAi
JiN4MjI1MjsiLS0+Ci08IS0tRU5USVRZIGVyRG90ICImI3gyMjUzOyItLT4KLTwhLS1FTlRJVFkg
cmlzaW5nZG90c2VxICImI3gyMjUzOyItLT4KLTwhLS1FTlRJVFkgY29sb25lICImI3gyMjU0OyIt
LT4KLTwhLS1FTlRJVFkgY29sb25lcSAiJiN4MjI1NDsiLS0+Ci08IS0tRU5USVRZIEFzc2lnbiAi
JiN4MjI1NDsiLS0+Ci08IS0tRU5USVRZIGVjb2xvbiAiJiN4MjI1NTsiLS0+Ci08IS0tRU5USVRZ
IGVxY29sb24gIiYjeDIyNTU7Ii0tPgotPCEtLUVOVElUWSBlY2lyICImI3gyMjU2OyItLT4KLTwh
LS1FTlRJVFkgZXFjaXJjICImI3gyMjU2OyItLT4KLTwhLS1FTlRJVFkgY2lyZSAiJiN4MjI1Nzsi
LS0+Ci08IS0tRU5USVRZIGNpcmNlcSAiJiN4MjI1NzsiLS0+Ci08IS0tRU5USVRZIHdlZGdlcSAi
JiN4MjI1OTsiLS0+Ci08IS0tRU5USVRZIHZlZWVxICImI3gyMjVBOyItLT4KLTwhLS1FTlRJVFkg
dHJpZSAiJiN4MjI1QzsiLS0+Ci08IS0tRU5USVRZIHRyaWFuZ2xlcSAiJiN4MjI1QzsiLS0+Ci08
IS0tRU5USVRZIGVxdWVzdCAiJiN4MjI1RjsiLS0+Ci08IS0tRU5USVRZIHF1ZXN0ZXEgIiYjeDIy
NUY7Ii0tPgotPCEtLUVOVElUWSBuZSAiJiN4MjI2MDsiLS0+Ci08IS0tRU5USVRZIE5vdEVxdWFs
ICImI3gyMjYwOyItLT4KLTwhLS1FTlRJVFkgZXF1aXYgIiYjeDIyNjE7Ii0tPgotPCEtLUVOVElU
WSBDb25ncnVlbnQgIiYjeDIyNjE7Ii0tPgotPCEtLUVOVElUWSBibmVxdWl2ICImI3gyMjYxOyYj
eDIwRTU7Ii0tPgotPCEtLUVOVElUWSBuZXF1aXYgIiYjeDIyNjI7Ii0tPgotPCEtLUVOVElUWSBO
b3RDb25ncnVlbnQgIiYjeDIyNjI7Ii0tPgotPCEtLUVOVElUWSBsZSAiJiN4MjI2NDsiLS0+Ci08
IS0tRU5USVRZIGxlcSAiJiN4MjI2NDsiLS0+Ci08IS0tRU5USVRZIG52bGUgIiYjeDIyNjQ7JiN4
MjBEMjsiLS0+Ci08IS0tRU5USVRZIGdlICImI3gyMjY1OyItLT4KLTwhLS1FTlRJVFkgR3JlYXRl
ckVxdWFsICImI3gyMjY1OyItLT4KLTwhLS1FTlRJVFkgZ2VxICImI3gyMjY1OyItLT4KLTwhLS1F
TlRJVFkgbnZnZSAiJiN4MjI2NTsmI3gyMEQyOyItLT4KLTwhLS1FTlRJVFkgbEUgIiYjeDIyNjY7
Ii0tPgotPCEtLUVOVElUWSBMZXNzRnVsbEVxdWFsICImI3gyMjY2OyItLT4KLTwhLS1FTlRJVFkg
bGVxcSAiJiN4MjI2NjsiLS0+Ci08IS0tRU5USVRZIG5sRSAiJiN4MjI2NjsmI3gzMzg7Ii0tPgot
PCEtLUVOVElUWSBubGVxcSAiJiN4MjI2NjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBnRSAiJiN4
MjI2NzsiLS0+Ci08IS0tRU5USVRZIEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7Ii0tPgotPCEt
LUVOVElUWSBnZXFxICImI3gyMjY3OyItLT4KLTwhLS1FTlRJVFkgbmdFICImI3gyMjY3OyYjeDMz
ODsiLS0+Ci08IS0tRU5USVRZIG5nZXFxICImI3gyMjY3OyYjeDMzODsiLS0+Ci08IS0tRU5USVRZ
IE5vdEdyZWF0ZXJGdWxsRXF1YWwgIiYjeDIyNjc7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbG5F
ICImI3gyMjY4OyItLT4KLTwhLS1FTlRJVFkgbG5lcXEgIiYjeDIyNjg7Ii0tPgotPCEtLUVOVElU
WSBsdm5FICImI3gyMjY4OyYjeEZFMDA7Ii0tPgotPCEtLUVOVElUWSBsdmVydG5lcXEgIiYjeDIy
Njg7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIGduRSAiJiN4MjI2OTsiLS0+Ci08IS0tRU5USVRZ
IGduZXFxICImI3gyMjY5OyItLT4KLTwhLS1FTlRJVFkgZ3ZuRSAiJiN4MjI2OTsmI3hGRTAwOyIt
LT4KLTwhLS1FTlRJVFkgZ3ZlcnRuZXFxICImI3gyMjY5OyYjeEZFMDA7Ii0tPgotPCEtLUVOVElU
WSBMdCAiJiN4MjI2QTsiLS0+Ci08IS0tRU5USVRZIE5lc3RlZExlc3NMZXNzICImI3gyMjZBOyIt
LT4KLTwhLS1FTlRJVFkgbGwgIiYjeDIyNkE7Ii0tPgotPCEtLUVOVElUWSBuTHR2ICImI3gyMjZB
OyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIE5vdExlc3NMZXNzICImI3gyMjZBOyYjeDMzODsiLS0+
Ci08IS0tRU5USVRZIG5MdCAiJiN4MjI2QTsmI3gyMEQyOyItLT4KLTwhLS1FTlRJVFkgR3QgIiYj
eDIyNkI7Ii0tPgotPCEtLUVOVElUWSBOZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsiLS0+
Ci08IS0tRU5USVRZIGdnICImI3gyMjZCOyItLT4KLTwhLS1FTlRJVFkgbkd0diAiJiN4MjI2Qjsm
I3gzMzg7Ii0tPgotPCEtLUVOVElUWSBOb3RHcmVhdGVyR3JlYXRlciAiJiN4MjI2QjsmI3gzMzg7
Ii0tPgotPCEtLUVOVElUWSBuR3QgIiYjeDIyNkI7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIHR3
aXh0ICImI3gyMjZDOyItLT4KLTwhLS1FTlRJVFkgYmV0d2VlbiAiJiN4MjI2QzsiLS0+Ci08IS0t
RU5USVRZIE5vdEN1cENhcCAiJiN4MjI2RDsiLS0+Ci08IS0tRU5USVRZIG5sdCAiJiN4MjI2RTsi
LS0+Ci08IS0tRU5USVRZIE5vdExlc3MgIiYjeDIyNkU7Ii0tPgotPCEtLUVOVElUWSBubGVzcyAi
JiN4MjI2RTsiLS0+Ci08IS0tRU5USVRZIG5ndCAiJiN4MjI2RjsiLS0+Ci08IS0tRU5USVRZIE5v
dEdyZWF0ZXIgIiYjeDIyNkY7Ii0tPgotPCEtLUVOVElUWSBuZ3RyICImI3gyMjZGOyItLT4KLTwh
LS1FTlRJVFkgbmxlICImI3gyMjcwOyItLT4KLTwhLS1FTlRJVFkgTm90TGVzc0VxdWFsICImI3gy
MjcwOyItLT4KLTwhLS1FTlRJVFkgbmxlcSAiJiN4MjI3MDsiLS0+Ci08IS0tRU5USVRZIG5nZSAi
JiN4MjI3MTsiLS0+Ci08IS0tRU5USVRZIE5vdEdyZWF0ZXJFcXVhbCAiJiN4MjI3MTsiLS0+Ci08
IS0tRU5USVRZIG5nZXEgIiYjeDIyNzE7Ii0tPgotPCEtLUVOVElUWSBsc2ltICImI3gyMjcyOyIt
LT4KLTwhLS1FTlRJVFkgTGVzc1RpbGRlICImI3gyMjcyOyItLT4KLTwhLS1FTlRJVFkgbGVzc3Np
bSAiJiN4MjI3MjsiLS0+Ci08IS0tRU5USVRZIGdzaW0gIiYjeDIyNzM7Ii0tPgotPCEtLUVOVElU
WSBndHJzaW0gIiYjeDIyNzM7Ii0tPgotPCEtLUVOVElUWSBHcmVhdGVyVGlsZGUgIiYjeDIyNzM7
Ii0tPgotPCEtLUVOVElUWSBubHNpbSAiJiN4MjI3NDsiLS0+Ci08IS0tRU5USVRZIE5vdExlc3NU
aWxkZSAiJiN4MjI3NDsiLS0+Ci08IS0tRU5USVRZIG5nc2ltICImI3gyMjc1OyItLT4KLTwhLS1F
TlRJVFkgTm90R3JlYXRlclRpbGRlICImI3gyMjc1OyItLT4KLTwhLS1FTlRJVFkgbGcgIiYjeDIy
NzY7Ii0tPgotPCEtLUVOVElUWSBsZXNzZ3RyICImI3gyMjc2OyItLT4KLTwhLS1FTlRJVFkgTGVz
c0dyZWF0ZXIgIiYjeDIyNzY7Ii0tPgotPCEtLUVOVElUWSBnbCAiJiN4MjI3NzsiLS0+Ci08IS0t
RU5USVRZIGd0cmxlc3MgIiYjeDIyNzc7Ii0tPgotPCEtLUVOVElUWSBHcmVhdGVyTGVzcyAiJiN4
MjI3NzsiLS0+Ci08IS0tRU5USVRZIG50bGcgIiYjeDIyNzg7Ii0tPgotPCEtLUVOVElUWSBOb3RM
ZXNzR3JlYXRlciAiJiN4MjI3ODsiLS0+Ci08IS0tRU5USVRZIG50Z2wgIiYjeDIyNzk7Ii0tPgot
PCEtLUVOVElUWSBOb3RHcmVhdGVyTGVzcyAiJiN4MjI3OTsiLS0+Ci08IS0tRU5USVRZIHByICIm
I3gyMjdBOyItLT4KLTwhLS1FTlRJVFkgUHJlY2VkZXMgIiYjeDIyN0E7Ii0tPgotPCEtLUVOVElU
WSBwcmVjICImI3gyMjdBOyItLT4KLTwhLS1FTlRJVFkgc2MgIiYjeDIyN0I7Ii0tPgotPCEtLUVO
VElUWSBTdWNjZWVkcyAiJiN4MjI3QjsiLS0+Ci08IS0tRU5USVRZIHN1Y2MgIiYjeDIyN0I7Ii0t
PgotPCEtLUVOVElUWSBwcmN1ZSAiJiN4MjI3QzsiLS0+Ci08IS0tRU5USVRZIFByZWNlZGVzU2xh
bnRFcXVhbCAiJiN4MjI3QzsiLS0+Ci08IS0tRU5USVRZIHByZWNjdXJseWVxICImI3gyMjdDOyIt
LT4KLTwhLS1FTlRJVFkgc2NjdWUgIiYjeDIyN0Q7Ii0tPgotPCEtLUVOVElUWSBTdWNjZWVkc1Ns
YW50RXF1YWwgIiYjeDIyN0Q7Ii0tPgotPCEtLUVOVElUWSBzdWNjY3VybHllcSAiJiN4MjI3RDsi
LS0+Ci08IS0tRU5USVRZIHByc2ltICImI3gyMjdFOyItLT4KLTwhLS1FTlRJVFkgcHJlY3NpbSAi
JiN4MjI3RTsiLS0+Ci08IS0tRU5USVRZIFByZWNlZGVzVGlsZGUgIiYjeDIyN0U7Ii0tPgotPCEt
LUVOVElUWSBzY3NpbSAiJiN4MjI3RjsiLS0+Ci08IS0tRU5USVRZIHN1Y2NzaW0gIiYjeDIyN0Y7
Ii0tPgotPCEtLUVOVElUWSBTdWNjZWVkc1RpbGRlICImI3gyMjdGOyItLT4KLTwhLS1FTlRJVFkg
Tm90U3VjY2VlZHNUaWxkZSAiJiN4MjI3RjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBucHIgIiYj
eDIyODA7Ii0tPgotPCEtLUVOVElUWSBucHJlYyAiJiN4MjI4MDsiLS0+Ci08IS0tRU5USVRZIE5v
dFByZWNlZGVzICImI3gyMjgwOyItLT4KLTwhLS1FTlRJVFkgbnNjICImI3gyMjgxOyItLT4KLTwh
LS1FTlRJVFkgbnN1Y2MgIiYjeDIyODE7Ii0tPgotPCEtLUVOVElUWSBOb3RTdWNjZWVkcyAiJiN4
MjI4MTsiLS0+Ci08IS0tRU5USVRZIHN1YiAiJiN4MjI4MjsiLS0+Ci08IS0tRU5USVRZIHN1YnNl
dCAiJiN4MjI4MjsiLS0+Ci08IS0tRU5USVRZIHZuc3ViICImI3gyMjgyOyYjeDIwRDI7Ii0tPgot
PCEtLUVOVElUWSBuc3Vic2V0ICImI3gyMjgyOyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBOb3RT
dWJzZXQgIiYjeDIyODI7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIHN1cCAiJiN4MjI4MzsiLS0+
Ci08IS0tRU5USVRZIHN1cHNldCAiJiN4MjI4MzsiLS0+Ci08IS0tRU5USVRZIFN1cGVyc2V0ICIm
I3gyMjgzOyItLT4KLTwhLS1FTlRJVFkgdm5zdXAgIiYjeDIyODM7JiN4MjBEMjsiLS0+Ci08IS0t
RU5USVRZIG5zdXBzZXQgIiYjeDIyODM7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIE5vdFN1cGVy
c2V0ICImI3gyMjgzOyYjeDIwRDI7Ii0tPgotPCEtLUVOVElUWSBuc3ViICImI3gyMjg0OyItLT4K
LTwhLS1FTlRJVFkgbnN1cCAiJiN4MjI4NTsiLS0+Ci08IS0tRU5USVRZIHN1YmUgIiYjeDIyODY7
Ii0tPgotPCEtLUVOVElUWSBTdWJzZXRFcXVhbCAiJiN4MjI4NjsiLS0+Ci08IS0tRU5USVRZIHN1
YnNldGVxICImI3gyMjg2OyItLT4KLTwhLS1FTlRJVFkgc3VwZSAiJiN4MjI4NzsiLS0+Ci08IS0t
RU5USVRZIHN1cHNldGVxICImI3gyMjg3OyItLT4KLTwhLS1FTlRJVFkgU3VwZXJzZXRFcXVhbCAi
JiN4MjI4NzsiLS0+Ci08IS0tRU5USVRZIG5zdWJlICImI3gyMjg4OyItLT4KLTwhLS1FTlRJVFkg
bnN1YnNldGVxICImI3gyMjg4OyItLT4KLTwhLS1FTlRJVFkgTm90U3Vic2V0RXF1YWwgIiYjeDIy
ODg7Ii0tPgotPCEtLUVOVElUWSBuc3VwZSAiJiN4MjI4OTsiLS0+Ci08IS0tRU5USVRZIG5zdXBz
ZXRlcSAiJiN4MjI4OTsiLS0+Ci08IS0tRU5USVRZIE5vdFN1cGVyc2V0RXF1YWwgIiYjeDIyODk7
Ii0tPgotPCEtLUVOVElUWSBzdWJuZSAiJiN4MjI4QTsiLS0+Ci08IS0tRU5USVRZIHN1YnNldG5l
cSAiJiN4MjI4QTsiLS0+Ci08IS0tRU5USVRZIHZzdWJuZSAiJiN4MjI4QTsmI3hGRTAwOyItLT4K
LTwhLS1FTlRJVFkgdmFyc3Vic2V0bmVxICImI3gyMjhBOyYjeEZFMDA7Ii0tPgotPCEtLUVOVElU
WSBzdXBuZSAiJiN4MjI4QjsiLS0+Ci08IS0tRU5USVRZIHN1cHNldG5lcSAiJiN4MjI4QjsiLS0+
Ci08IS0tRU5USVRZIHZzdXBuZSAiJiN4MjI4QjsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgdmFy
c3Vwc2V0bmVxICImI3gyMjhCOyYjeEZFMDA7Ii0tPgotPCEtLUVOVElUWSBjdXBkb3QgIiYjeDIy
OEQ7Ii0tPgotPCEtLUVOVElUWSB1cGx1cyAiJiN4MjI4RTsiLS0+Ci08IS0tRU5USVRZIFVuaW9u
UGx1cyAiJiN4MjI4RTsiLS0+Ci08IS0tRU5USVRZIHNxc3ViICImI3gyMjhGOyItLT4KLTwhLS1F
TlRJVFkgU3F1YXJlU3Vic2V0ICImI3gyMjhGOyItLT4KLTwhLS1FTlRJVFkgc3FzdWJzZXQgIiYj
eDIyOEY7Ii0tPgotPCEtLUVOVElUWSBOb3RTcXVhcmVTdWJzZXQgIiYjeDIyOEY7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgc3FzdXAgIiYjeDIyOTA7Ii0tPgotPCEtLUVOVElUWSBTcXVhcmVTdXBl
cnNldCAiJiN4MjI5MDsiLS0+Ci08IS0tRU5USVRZIHNxc3Vwc2V0ICImI3gyMjkwOyItLT4KLTwh
LS1FTlRJVFkgTm90U3F1YXJlU3VwZXJzZXQgIiYjeDIyOTA7JiN4MzM4OyItLT4KLTwhLS1FTlRJ
VFkgc3FzdWJlICImI3gyMjkxOyItLT4KLTwhLS1FTlRJVFkgU3F1YXJlU3Vic2V0RXF1YWwgIiYj
eDIyOTE7Ii0tPgotPCEtLUVOVElUWSBzcXN1YnNldGVxICImI3gyMjkxOyItLT4KLTwhLS1FTlRJ
VFkgc3FzdXBlICImI3gyMjkyOyItLT4KLTwhLS1FTlRJVFkgU3F1YXJlU3VwZXJzZXRFcXVhbCAi
JiN4MjI5MjsiLS0+Ci08IS0tRU5USVRZIHNxc3Vwc2V0ZXEgIiYjeDIyOTI7Ii0tPgotPCEtLUVO
VElUWSBzcWNhcCAiJiN4MjI5MzsiLS0+Ci08IS0tRU5USVRZIFNxdWFyZUludGVyc2VjdGlvbiAi
JiN4MjI5MzsiLS0+Ci08IS0tRU5USVRZIHNxY2FwcyAiJiN4MjI5MzsmI3hGRTAwOyItLT4KLTwh
LS1FTlRJVFkgc3FjdXAgIiYjeDIyOTQ7Ii0tPgotPCEtLUVOVElUWSBTcXVhcmVVbmlvbiAiJiN4
MjI5NDsiLS0+Ci08IS0tRU5USVRZIHNxY3VwcyAiJiN4MjI5NDsmI3hGRTAwOyItLT4KLTwhLS1F
TlRJVFkgb3BsdXMgIiYjeDIyOTU7Ii0tPgotPCEtLUVOVElUWSBDaXJjbGVQbHVzICImI3gyMjk1
OyItLT4KLTwhLS1FTlRJVFkgb21pbnVzICImI3gyMjk2OyItLT4KLTwhLS1FTlRJVFkgQ2lyY2xl
TWludXMgIiYjeDIyOTY7Ii0tPgotPCEtLUVOVElUWSBvdGltZXMgIiYjeDIyOTc7Ii0tPgotPCEt
LUVOVElUWSBDaXJjbGVUaW1lcyAiJiN4MjI5NzsiLS0+Ci08IS0tRU5USVRZIG9zb2wgIiYjeDIy
OTg7Ii0tPgotPCEtLUVOVElUWSBvZG90ICImI3gyMjk5OyItLT4KLTwhLS1FTlRJVFkgQ2lyY2xl
RG90ICImI3gyMjk5OyItLT4KLTwhLS1FTlRJVFkgb2NpciAiJiN4MjI5QTsiLS0+Ci08IS0tRU5U
SVRZIGNpcmNsZWRjaXJjICImI3gyMjlBOyItLT4KLTwhLS1FTlRJVFkgb2FzdCAiJiN4MjI5Qjsi
LS0+Ci08IS0tRU5USVRZIGNpcmNsZWRhc3QgIiYjeDIyOUI7Ii0tPgotPCEtLUVOVElUWSBvZGFz
aCAiJiN4MjI5RDsiLS0+Ci08IS0tRU5USVRZIGNpcmNsZWRkYXNoICImI3gyMjlEOyItLT4KLTwh
LS1FTlRJVFkgcGx1c2IgIiYjeDIyOUU7Ii0tPgotPCEtLUVOVElUWSBib3hwbHVzICImI3gyMjlF
OyItLT4KLTwhLS1FTlRJVFkgbWludXNiICImI3gyMjlGOyItLT4KLTwhLS1FTlRJVFkgYm94bWlu
dXMgIiYjeDIyOUY7Ii0tPgotPCEtLUVOVElUWSB0aW1lc2IgIiYjeDIyQTA7Ii0tPgotPCEtLUVO
VElUWSBib3h0aW1lcyAiJiN4MjJBMDsiLS0+Ci08IS0tRU5USVRZIHNkb3RiICImI3gyMkExOyIt
LT4KLTwhLS1FTlRJVFkgZG90c3F1YXJlICImI3gyMkExOyItLT4KLTwhLS1FTlRJVFkgdmRhc2gg
IiYjeDIyQTI7Ii0tPgotPCEtLUVOVElUWSBSaWdodFRlZSAiJiN4MjJBMjsiLS0+Ci08IS0tRU5U
SVRZIGRhc2h2ICImI3gyMkEzOyItLT4KLTwhLS1FTlRJVFkgTGVmdFRlZSAiJiN4MjJBMzsiLS0+
Ci08IS0tRU5USVRZIHRvcCAiJiN4MjJBNDsiLS0+Ci08IS0tRU5USVRZIERvd25UZWUgIiYjeDIy
QTQ7Ii0tPgotPCEtLUVOVElUWSBib3R0b20gIiYjeDIyQTU7Ii0tPgotPCEtLUVOVElUWSBib3Qg
IiYjeDIyQTU7Ii0tPgotPCEtLUVOVElUWSBwZXJwICImI3gyMkE1OyItLT4KLTwhLS1FTlRJVFkg
VXBUZWUgIiYjeDIyQTU7Ii0tPgotPCEtLUVOVElUWSBtb2RlbHMgIiYjeDIyQTc7Ii0tPgotPCEt
LUVOVElUWSB2RGFzaCAiJiN4MjJBODsiLS0+Ci08IS0tRU5USVRZIERvdWJsZVJpZ2h0VGVlICIm
I3gyMkE4OyItLT4KLTwhLS1FTlRJVFkgVmRhc2ggIiYjeDIyQTk7Ii0tPgotPCEtLUVOVElUWSBW
dmRhc2ggIiYjeDIyQUE7Ii0tPgotPCEtLUVOVElUWSBWRGFzaCAiJiN4MjJBQjsiLS0+Ci08IS0t
RU5USVRZIG52ZGFzaCAiJiN4MjJBQzsiLS0+Ci08IS0tRU5USVRZIG52RGFzaCAiJiN4MjJBRDsi
LS0+Ci08IS0tRU5USVRZIG5WZGFzaCAiJiN4MjJBRTsiLS0+Ci08IS0tRU5USVRZIG5WRGFzaCAi
JiN4MjJBRjsiLS0+Ci08IS0tRU5USVRZIHBydXJlbCAiJiN4MjJCMDsiLS0+Ci08IS0tRU5USVRZ
IHZsdHJpICImI3gyMkIyOyItLT4KLTwhLS1FTlRJVFkgdmFydHJpYW5nbGVsZWZ0ICImI3gyMkIy
OyItLT4KLTwhLS1FTlRJVFkgTGVmdFRyaWFuZ2xlICImI3gyMkIyOyItLT4KLTwhLS1FTlRJVFkg
dnJ0cmkgIiYjeDIyQjM7Ii0tPgotPCEtLUVOVElUWSB2YXJ0cmlhbmdsZXJpZ2h0ICImI3gyMkIz
OyItLT4KLTwhLS1FTlRJVFkgUmlnaHRUcmlhbmdsZSAiJiN4MjJCMzsiLS0+Ci08IS0tRU5USVRZ
IGx0cmllICImI3gyMkI0OyItLT4KLTwhLS1FTlRJVFkgdHJpYW5nbGVsZWZ0ZXEgIiYjeDIyQjQ7
Ii0tPgotPCEtLUVOVElUWSBMZWZ0VHJpYW5nbGVFcXVhbCAiJiN4MjJCNDsiLS0+Ci08IS0tRU5U
SVRZIG52bHRyaWUgIiYjeDIyQjQ7JiN4MjBEMjsiLS0+Ci08IS0tRU5USVRZIHJ0cmllICImI3gy
MkI1OyItLT4KLTwhLS1FTlRJVFkgdHJpYW5nbGVyaWdodGVxICImI3gyMkI1OyItLT4KLTwhLS1F
TlRJVFkgUmlnaHRUcmlhbmdsZUVxdWFsICImI3gyMkI1OyItLT4KLTwhLS1FTlRJVFkgbnZydHJp
ZSAiJiN4MjJCNTsmI3gyMEQyOyItLT4KLTwhLS1FTlRJVFkgb3JpZ29mICImI3gyMkI2OyItLT4K
LTwhLS1FTlRJVFkgaW1vZiAiJiN4MjJCNzsiLS0+Ci08IS0tRU5USVRZIG11bWFwICImI3gyMkI4
OyItLT4KLTwhLS1FTlRJVFkgbXVsdGltYXAgIiYjeDIyQjg7Ii0tPgotPCEtLUVOVElUWSBoZXJj
b24gIiYjeDIyQjk7Ii0tPgotPCEtLUVOVElUWSBpbnRjYWwgIiYjeDIyQkE7Ii0tPgotPCEtLUVO
VElUWSBpbnRlcmNhbCAiJiN4MjJCQTsiLS0+Ci08IS0tRU5USVRZIHZlZWJhciAiJiN4MjJCQjsi
LS0+Ci08IS0tRU5USVRZIGJhcnZlZSAiJiN4MjJCRDsiLS0+Ci08IS0tRU5USVRZIGFuZ3J0dmIg
IiYjeDIyQkU7Ii0tPgotPCEtLUVOVElUWSBscnRyaSAiJiN4MjJCRjsiLS0+Ci08IS0tRU5USVRZ
IHh3ZWRnZSAiJiN4MjJDMDsiLS0+Ci08IS0tRU5USVRZIFdlZGdlICImI3gyMkMwOyItLT4KLTwh
LS1FTlRJVFkgYmlnd2VkZ2UgIiYjeDIyQzA7Ii0tPgotPCEtLUVOVElUWSB4dmVlICImI3gyMkMx
OyItLT4KLTwhLS1FTlRJVFkgVmVlICImI3gyMkMxOyItLT4KLTwhLS1FTlRJVFkgYmlndmVlICIm
I3gyMkMxOyItLT4KLTwhLS1FTlRJVFkgeGNhcCAiJiN4MjJDMjsiLS0+Ci08IS0tRU5USVRZIElu
dGVyc2VjdGlvbiAiJiN4MjJDMjsiLS0+Ci08IS0tRU5USVRZIGJpZ2NhcCAiJiN4MjJDMjsiLS0+
Ci08IS0tRU5USVRZIHhjdXAgIiYjeDIyQzM7Ii0tPgotPCEtLUVOVElUWSBVbmlvbiAiJiN4MjJD
MzsiLS0+Ci08IS0tRU5USVRZIGJpZ2N1cCAiJiN4MjJDMzsiLS0+Ci08IS0tRU5USVRZIGRpYW0g
IiYjeDIyQzQ7Ii0tPgotPCEtLUVOVElUWSBkaWFtb25kICImI3gyMkM0OyItLT4KLTwhLS1FTlRJ
VFkgRGlhbW9uZCAiJiN4MjJDNDsiLS0+Ci08IS0tRU5USVRZIHNkb3QgIiYjeDIyQzU7Ii0tPgot
PCEtLUVOVElUWSBzc3RhcmYgIiYjeDIyQzY7Ii0tPgotPCEtLUVOVElUWSBTdGFyICImI3gyMkM2
OyItLT4KLTwhLS1FTlRJVFkgZGl2b254ICImI3gyMkM3OyItLT4KLTwhLS1FTlRJVFkgZGl2aWRl
b250aW1lcyAiJiN4MjJDNzsiLS0+Ci08IS0tRU5USVRZIGJvd3RpZSAiJiN4MjJDODsiLS0+Ci08
IS0tRU5USVRZIGx0aW1lcyAiJiN4MjJDOTsiLS0+Ci08IS0tRU5USVRZIHJ0aW1lcyAiJiN4MjJD
QTsiLS0+Ci08IS0tRU5USVRZIGx0aHJlZSAiJiN4MjJDQjsiLS0+Ci08IS0tRU5USVRZIGxlZnR0
aHJlZXRpbWVzICImI3gyMkNCOyItLT4KLTwhLS1FTlRJVFkgcnRocmVlICImI3gyMkNDOyItLT4K
LTwhLS1FTlRJVFkgcmlnaHR0aHJlZXRpbWVzICImI3gyMkNDOyItLT4KLTwhLS1FTlRJVFkgYnNp
bWUgIiYjeDIyQ0Q7Ii0tPgotPCEtLUVOVElUWSBiYWNrc2ltZXEgIiYjeDIyQ0Q7Ii0tPgotPCEt
LUVOVElUWSBjdXZlZSAiJiN4MjJDRTsiLS0+Ci08IS0tRU5USVRZIGN1cmx5dmVlICImI3gyMkNF
OyItLT4KLTwhLS1FTlRJVFkgY3V3ZWQgIiYjeDIyQ0Y7Ii0tPgotPCEtLUVOVElUWSBjdXJseXdl
ZGdlICImI3gyMkNGOyItLT4KLTwhLS1FTlRJVFkgU3ViICImI3gyMkQwOyItLT4KLTwhLS1FTlRJ
VFkgU3Vic2V0ICImI3gyMkQwOyItLT4KLTwhLS1FTlRJVFkgU3VwICImI3gyMkQxOyItLT4KLTwh
LS1FTlRJVFkgU3Vwc2V0ICImI3gyMkQxOyItLT4KLTwhLS1FTlRJVFkgQ2FwICImI3gyMkQyOyIt
LT4KLTwhLS1FTlRJVFkgQ3VwICImI3gyMkQzOyItLT4KLTwhLS1FTlRJVFkgZm9yayAiJiN4MjJE
NDsiLS0+Ci08IS0tRU5USVRZIHBpdGNoZm9yayAiJiN4MjJENDsiLS0+Ci08IS0tRU5USVRZIGVw
YXIgIiYjeDIyRDU7Ii0tPgotPCEtLUVOVElUWSBsdGRvdCAiJiN4MjJENjsiLS0+Ci08IS0tRU5U
SVRZIGxlc3Nkb3QgIiYjeDIyRDY7Ii0tPgotPCEtLUVOVElUWSBndGRvdCAiJiN4MjJENzsiLS0+
Ci08IS0tRU5USVRZIGd0cmRvdCAiJiN4MjJENzsiLS0+Ci08IS0tRU5USVRZIExsICImI3gyMkQ4
OyItLT4KLTwhLS1FTlRJVFkgbkxsICImI3gyMkQ4OyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIEdn
ICImI3gyMkQ5OyItLT4KLTwhLS1FTlRJVFkgZ2dnICImI3gyMkQ5OyItLT4KLTwhLS1FTlRJVFkg
bkdnICImI3gyMkQ5OyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGxlZyAiJiN4MjJEQTsiLS0+Ci08
IS0tRU5USVRZIExlc3NFcXVhbEdyZWF0ZXIgIiYjeDIyREE7Ii0tPgotPCEtLUVOVElUWSBsZXNz
ZXFndHIgIiYjeDIyREE7Ii0tPgotPCEtLUVOVElUWSBsZXNnICImI3gyMkRBOyYjeEZFMDA7Ii0t
PgotPCEtLUVOVElUWSBnZWwgIiYjeDIyREI7Ii0tPgotPCEtLUVOVElUWSBndHJlcWxlc3MgIiYj
eDIyREI7Ii0tPgotPCEtLUVOVElUWSBHcmVhdGVyRXF1YWxMZXNzICImI3gyMkRCOyItLT4KLTwh
LS1FTlRJVFkgZ2VzbCAiJiN4MjJEQjsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgY3VlcHIgIiYj
eDIyREU7Ii0tPgotPCEtLUVOVElUWSBjdXJseWVxcHJlYyAiJiN4MjJERTsiLS0+Ci08IS0tRU5U
SVRZIGN1ZXNjICImI3gyMkRGOyItLT4KLTwhLS1FTlRJVFkgY3VybHllcXN1Y2MgIiYjeDIyREY7
Ii0tPgotPCEtLUVOVElUWSBucHJjdWUgIiYjeDIyRTA7Ii0tPgotPCEtLUVOVElUWSBOb3RQcmVj
ZWRlc1NsYW50RXF1YWwgIiYjeDIyRTA7Ii0tPgotPCEtLUVOVElUWSBuc2NjdWUgIiYjeDIyRTE7
Ii0tPgotPCEtLUVOVElUWSBOb3RTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyRTE7Ii0tPgotPCEt
LUVOVElUWSBuc3FzdWJlICImI3gyMkUyOyItLT4KLTwhLS1FTlRJVFkgTm90U3F1YXJlU3Vic2V0
RXF1YWwgIiYjeDIyRTI7Ii0tPgotPCEtLUVOVElUWSBuc3FzdXBlICImI3gyMkUzOyItLT4KLTwh
LS1FTlRJVFkgTm90U3F1YXJlU3VwZXJzZXRFcXVhbCAiJiN4MjJFMzsiLS0+Ci08IS0tRU5USVRZ
IGxuc2ltICImI3gyMkU2OyItLT4KLTwhLS1FTlRJVFkgZ25zaW0gIiYjeDIyRTc7Ii0tPgotPCEt
LUVOVElUWSBwcm5zaW0gIiYjeDIyRTg7Ii0tPgotPCEtLUVOVElUWSBwcmVjbnNpbSAiJiN4MjJF
ODsiLS0+Ci08IS0tRU5USVRZIHNjbnNpbSAiJiN4MjJFOTsiLS0+Ci08IS0tRU5USVRZIHN1Y2Nu
c2ltICImI3gyMkU5OyItLT4KLTwhLS1FTlRJVFkgbmx0cmkgIiYjeDIyRUE7Ii0tPgotPCEtLUVO
VElUWSBudHJpYW5nbGVsZWZ0ICImI3gyMkVBOyItLT4KLTwhLS1FTlRJVFkgTm90TGVmdFRyaWFu
Z2xlICImI3gyMkVBOyItLT4KLTwhLS1FTlRJVFkgbnJ0cmkgIiYjeDIyRUI7Ii0tPgotPCEtLUVO
VElUWSBudHJpYW5nbGVyaWdodCAiJiN4MjJFQjsiLS0+Ci08IS0tRU5USVRZIE5vdFJpZ2h0VHJp
YW5nbGUgIiYjeDIyRUI7Ii0tPgotPCEtLUVOVElUWSBubHRyaWUgIiYjeDIyRUM7Ii0tPgotPCEt
LUVOVElUWSBudHJpYW5nbGVsZWZ0ZXEgIiYjeDIyRUM7Ii0tPgotPCEtLUVOVElUWSBOb3RMZWZ0
VHJpYW5nbGVFcXVhbCAiJiN4MjJFQzsiLS0+Ci08IS0tRU5USVRZIG5ydHJpZSAiJiN4MjJFRDsi
LS0+Ci08IS0tRU5USVRZIG50cmlhbmdsZXJpZ2h0ZXEgIiYjeDIyRUQ7Ii0tPgotPCEtLUVOVElU
WSBOb3RSaWdodFRyaWFuZ2xlRXF1YWwgIiYjeDIyRUQ7Ii0tPgotPCEtLUVOVElUWSB2ZWxsaXAg
IiYjeDIyRUU7Ii0tPgotPCEtLUVOVElUWSBjdGRvdCAiJiN4MjJFRjsiLS0+Ci08IS0tRU5USVRZ
IHV0ZG90ICImI3gyMkYwOyItLT4KLTwhLS1FTlRJVFkgZHRkb3QgIiYjeDIyRjE7Ii0tPgotPCEt
LUVOVElUWSBkaXNpbiAiJiN4MjJGMjsiLS0+Ci08IS0tRU5USVRZIGlzaW5zdiAiJiN4MjJGMzsi
LS0+Ci08IS0tRU5USVRZIGlzaW5zICImI3gyMkY0OyItLT4KLTwhLS1FTlRJVFkgaXNpbmRvdCAi
JiN4MjJGNTsiLS0+Ci08IS0tRU5USVRZIG5vdGluZG90ICImI3gyMkY1OyYjeDMzODsiLS0+Ci08
IS0tRU5USVRZIG5vdGludmMgIiYjeDIyRjY7Ii0tPgotPCEtLUVOVElUWSBub3RpbnZiICImI3gy
MkY3OyItLT4KLTwhLS1FTlRJVFkgaXNpbkUgIiYjeDIyRjk7Ii0tPgotPCEtLUVOVElUWSBub3Rp
bkUgIiYjeDIyRjk7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbmlzZCAiJiN4MjJGQTsiLS0+Ci08
IS0tRU5USVRZIHhuaXMgIiYjeDIyRkI7Ii0tPgotPCEtLUVOVElUWSBuaXMgIiYjeDIyRkM7Ii0t
PgotPCEtLUVOVElUWSBub3RuaXZjICImI3gyMkZEOyItLT4KLTwhLS1FTlRJVFkgbm90bml2YiAi
JiN4MjJGRTsiLS0+Ci08IS0tRU5USVRZIGJhcndlZCAiJiN4MjMwNTsiLS0+Ci08IS0tRU5USVRZ
IGJhcndlZGdlICImI3gyMzA1OyItLT4KLTwhLS1FTlRJVFkgQmFyd2VkICImI3gyMzA2OyItLT4K
LTwhLS1FTlRJVFkgZG91YmxlYmFyd2VkZ2UgIiYjeDIzMDY7Ii0tPgotPCEtLUVOVElUWSBsY2Vp
bCAiJiN4MjMwODsiLS0+Ci08IS0tRU5USVRZIExlZnRDZWlsaW5nICImI3gyMzA4OyItLT4KLTwh
LS1FTlRJVFkgcmNlaWwgIiYjeDIzMDk7Ii0tPgotPCEtLUVOVElUWSBSaWdodENlaWxpbmcgIiYj
eDIzMDk7Ii0tPgotPCEtLUVOVElUWSBsZmxvb3IgIiYjeDIzMEE7Ii0tPgotPCEtLUVOVElUWSBM
ZWZ0Rmxvb3IgIiYjeDIzMEE7Ii0tPgotPCEtLUVOVElUWSByZmxvb3IgIiYjeDIzMEI7Ii0tPgot
PCEtLUVOVElUWSBSaWdodEZsb29yICImI3gyMzBCOyItLT4KLTwhLS1FTlRJVFkgZHJjcm9wICIm
I3gyMzBDOyItLT4KLTwhLS1FTlRJVFkgZGxjcm9wICImI3gyMzBEOyItLT4KLTwhLS1FTlRJVFkg
dXJjcm9wICImI3gyMzBFOyItLT4KLTwhLS1FTlRJVFkgdWxjcm9wICImI3gyMzBGOyItLT4KLTwh
LS1FTlRJVFkgYm5vdCAiJiN4MjMxMDsiLS0+Ci08IS0tRU5USVRZIHByb2ZsaW5lICImI3gyMzEy
OyItLT4KLTwhLS1FTlRJVFkgcHJvZnN1cmYgIiYjeDIzMTM7Ii0tPgotPCEtLUVOVElUWSB0ZWxy
ZWMgIiYjeDIzMTU7Ii0tPgotPCEtLUVOVElUWSB0YXJnZXQgIiYjeDIzMTY7Ii0tPgotPCEtLUVO
VElUWSB1bGNvcm4gIiYjeDIzMUM7Ii0tPgotPCEtLUVOVElUWSB1bGNvcm5lciAiJiN4MjMxQzsi
LS0+Ci08IS0tRU5USVRZIHVyY29ybiAiJiN4MjMxRDsiLS0+Ci08IS0tRU5USVRZIHVyY29ybmVy
ICImI3gyMzFEOyItLT4KLTwhLS1FTlRJVFkgZGxjb3JuICImI3gyMzFFOyItLT4KLTwhLS1FTlRJ
VFkgbGxjb3JuZXIgIiYjeDIzMUU7Ii0tPgotPCEtLUVOVElUWSBkcmNvcm4gIiYjeDIzMUY7Ii0t
PgotPCEtLUVOVElUWSBscmNvcm5lciAiJiN4MjMxRjsiLS0+Ci08IS0tRU5USVRZIGZyb3duICIm
I3gyMzIyOyItLT4KLTwhLS1FTlRJVFkgc2Zyb3duICImI3gyMzIyOyItLT4KLTwhLS1FTlRJVFkg
c21pbGUgIiYjeDIzMjM7Ii0tPgotPCEtLUVOVElUWSBzc21pbGUgIiYjeDIzMjM7Ii0tPgotPCEt
LUVOVElUWSBjeWxjdHkgIiYjeDIzMkQ7Ii0tPgotPCEtLUVOVElUWSBwcm9mYWxhciAiJiN4MjMy
RTsiLS0+Ci08IS0tRU5USVRZIHRvcGJvdCAiJiN4MjMzNjsiLS0+Ci08IS0tRU5USVRZIG92YmFy
ICImI3gyMzNEOyItLT4KLTwhLS1FTlRJVFkgc29sYmFyICImI3gyMzNGOyItLT4KLTwhLS1FTlRJ
VFkgYW5nemFyciAiJiN4MjM3QzsiLS0+Ci08IS0tRU5USVRZIGxtb3VzdCAiJiN4MjNCMDsiLS0+
Ci08IS0tRU5USVRZIGxtb3VzdGFjaGUgIiYjeDIzQjA7Ii0tPgotPCEtLUVOVElUWSBybW91c3Qg
IiYjeDIzQjE7Ii0tPgotPCEtLUVOVElUWSBybW91c3RhY2hlICImI3gyM0IxOyItLT4KLTwhLS1F
TlRJVFkgdGJyayAiJiN4MjNCNDsiLS0+Ci08IS0tRU5USVRZIE92ZXJCcmFja2V0ICImI3gyM0I0
OyItLT4KLTwhLS1FTlRJVFkgYmJyayAiJiN4MjNCNTsiLS0+Ci08IS0tRU5USVRZIFVuZGVyQnJh
Y2tldCAiJiN4MjNCNTsiLS0+Ci08IS0tRU5USVRZIGJicmt0YnJrICImI3gyM0I2OyItLT4KLTwh
LS1FTlRJVFkgT3ZlclBhcmVudGhlc2lzICImI3gyM0RDOyItLT4KLTwhLS1FTlRJVFkgVW5kZXJQ
YXJlbnRoZXNpcyAiJiN4MjNERDsiLS0+Ci08IS0tRU5USVRZIE92ZXJCcmFjZSAiJiN4MjNERTsi
LS0+Ci08IS0tRU5USVRZIFVuZGVyQnJhY2UgIiYjeDIzREY7Ii0tPgotPCEtLUVOVElUWSB0cnBl
eml1bSAiJiN4MjNFMjsiLS0+Ci08IS0tRU5USVRZIGVsaW50ZXJzICImI3gyM0U3OyItLT4KLTwh
LS1FTlRJVFkgYmxhbmsgIiYjeDI0MjM7Ii0tPgotPCEtLUVOVElUWSBvUyAiJiN4MjRDODsiLS0+
Ci08IS0tRU5USVRZIGNpcmNsZWRTICImI3gyNEM4OyItLT4KLTwhLS1FTlRJVFkgYm94aCAiJiN4
MjUwMDsiLS0+Ci08IS0tRU5USVRZIEhvcml6b250YWxMaW5lICImI3gyNTAwOyItLT4KLTwhLS1F
TlRJVFkgYm94diAiJiN4MjUwMjsiLS0+Ci08IS0tRU5USVRZIGJveGRyICImI3gyNTBDOyItLT4K
LTwhLS1FTlRJVFkgYm94ZGwgIiYjeDI1MTA7Ii0tPgotPCEtLUVOVElUWSBib3h1ciAiJiN4MjUx
NDsiLS0+Ci08IS0tRU5USVRZIGJveHVsICImI3gyNTE4OyItLT4KLTwhLS1FTlRJVFkgYm94dnIg
IiYjeDI1MUM7Ii0tPgotPCEtLUVOVElUWSBib3h2bCAiJiN4MjUyNDsiLS0+Ci08IS0tRU5USVRZ
IGJveGhkICImI3gyNTJDOyItLT4KLTwhLS1FTlRJVFkgYm94aHUgIiYjeDI1MzQ7Ii0tPgotPCEt
LUVOVElUWSBib3h2aCAiJiN4MjUzQzsiLS0+Ci08IS0tRU5USVRZIGJveEggIiYjeDI1NTA7Ii0t
PgotPCEtLUVOVElUWSBib3hWICImI3gyNTUxOyItLT4KLTwhLS1FTlRJVFkgYm94ZFIgIiYjeDI1
NTI7Ii0tPgotPCEtLUVOVElUWSBib3hEciAiJiN4MjU1MzsiLS0+Ci08IS0tRU5USVRZIGJveERS
ICImI3gyNTU0OyItLT4KLTwhLS1FTlRJVFkgYm94ZEwgIiYjeDI1NTU7Ii0tPgotPCEtLUVOVElU
WSBib3hEbCAiJiN4MjU1NjsiLS0+Ci08IS0tRU5USVRZIGJveERMICImI3gyNTU3OyItLT4KLTwh
LS1FTlRJVFkgYm94dVIgIiYjeDI1NTg7Ii0tPgotPCEtLUVOVElUWSBib3hVciAiJiN4MjU1OTsi
LS0+Ci08IS0tRU5USVRZIGJveFVSICImI3gyNTVBOyItLT4KLTwhLS1FTlRJVFkgYm94dUwgIiYj
eDI1NUI7Ii0tPgotPCEtLUVOVElUWSBib3hVbCAiJiN4MjU1QzsiLS0+Ci08IS0tRU5USVRZIGJv
eFVMICImI3gyNTVEOyItLT4KLTwhLS1FTlRJVFkgYm94dlIgIiYjeDI1NUU7Ii0tPgotPCEtLUVO
VElUWSBib3hWciAiJiN4MjU1RjsiLS0+Ci08IS0tRU5USVRZIGJveFZSICImI3gyNTYwOyItLT4K
LTwhLS1FTlRJVFkgYm94dkwgIiYjeDI1NjE7Ii0tPgotPCEtLUVOVElUWSBib3hWbCAiJiN4MjU2
MjsiLS0+Ci08IS0tRU5USVRZIGJveFZMICImI3gyNTYzOyItLT4KLTwhLS1FTlRJVFkgYm94SGQg
IiYjeDI1NjQ7Ii0tPgotPCEtLUVOVElUWSBib3hoRCAiJiN4MjU2NTsiLS0+Ci08IS0tRU5USVRZ
IGJveEhEICImI3gyNTY2OyItLT4KLTwhLS1FTlRJVFkgYm94SHUgIiYjeDI1Njc7Ii0tPgotPCEt
LUVOVElUWSBib3hoVSAiJiN4MjU2ODsiLS0+Ci08IS0tRU5USVRZIGJveEhVICImI3gyNTY5OyIt
LT4KLTwhLS1FTlRJVFkgYm94dkggIiYjeDI1NkE7Ii0tPgotPCEtLUVOVElUWSBib3hWaCAiJiN4
MjU2QjsiLS0+Ci08IS0tRU5USVRZIGJveFZIICImI3gyNTZDOyItLT4KLTwhLS1FTlRJVFkgdWhi
bGsgIiYjeDI1ODA7Ii0tPgotPCEtLUVOVElUWSBsaGJsayAiJiN4MjU4NDsiLS0+Ci08IS0tRU5U
SVRZIGJsb2NrICImI3gyNTg4OyItLT4KLTwhLS1FTlRJVFkgYmxrMTQgIiYjeDI1OTE7Ii0tPgot
PCEtLUVOVElUWSBibGsxMiAiJiN4MjU5MjsiLS0+Ci08IS0tRU5USVRZIGJsazM0ICImI3gyNTkz
OyItLT4KLTwhLS1FTlRJVFkgc3F1ICImI3gyNUExOyItLT4KLTwhLS1FTlRJVFkgc3F1YXJlICIm
I3gyNUExOyItLT4KLTwhLS1FTlRJVFkgU3F1YXJlICImI3gyNUExOyItLT4KLTwhLS1FTlRJVFkg
c3F1ZiAiJiN4MjVBQTsiLS0+Ci08IS0tRU5USVRZIHNxdWFyZiAiJiN4MjVBQTsiLS0+Ci08IS0t
RU5USVRZIGJsYWNrc3F1YXJlICImI3gyNUFBOyItLT4KLTwhLS1FTlRJVFkgRmlsbGVkVmVyeVNt
YWxsU3F1YXJlICImI3gyNUFBOyItLT4KLTwhLS1FTlRJVFkgRW1wdHlWZXJ5U21hbGxTcXVhcmUg
IiYjeDI1QUI7Ii0tPgotPCEtLUVOVElUWSByZWN0ICImI3gyNUFEOyItLT4KLTwhLS1FTlRJVFkg
bWFya2VyICImI3gyNUFFOyItLT4KLTwhLS1FTlRJVFkgZmx0bnMgIiYjeDI1QjE7Ii0tPgotPCEt
LUVOVElUWSB4dXRyaSAiJiN4MjVCMzsiLS0+Ci08IS0tRU5USVRZIGJpZ3RyaWFuZ2xldXAgIiYj
eDI1QjM7Ii0tPgotPCEtLUVOVElUWSB1dHJpZiAiJiN4MjVCNDsiLS0+Ci08IS0tRU5USVRZIGJs
YWNrdHJpYW5nbGUgIiYjeDI1QjQ7Ii0tPgotPCEtLUVOVElUWSB1dHJpICImI3gyNUI1OyItLT4K
LTwhLS1FTlRJVFkgdHJpYW5nbGUgIiYjeDI1QjU7Ii0tPgotPCEtLUVOVElUWSBydHJpZiAiJiN4
MjVCODsiLS0+Ci08IS0tRU5USVRZIGJsYWNrdHJpYW5nbGVyaWdodCAiJiN4MjVCODsiLS0+Ci08
IS0tRU5USVRZIHJ0cmkgIiYjeDI1Qjk7Ii0tPgotPCEtLUVOVElUWSB0cmlhbmdsZXJpZ2h0ICIm
I3gyNUI5OyItLT4KLTwhLS1FTlRJVFkgeGR0cmkgIiYjeDI1QkQ7Ii0tPgotPCEtLUVOVElUWSBi
aWd0cmlhbmdsZWRvd24gIiYjeDI1QkQ7Ii0tPgotPCEtLUVOVElUWSBkdHJpZiAiJiN4MjVCRTsi
LS0+Ci08IS0tRU5USVRZIGJsYWNrdHJpYW5nbGVkb3duICImI3gyNUJFOyItLT4KLTwhLS1FTlRJ
VFkgZHRyaSAiJiN4MjVCRjsiLS0+Ci08IS0tRU5USVRZIHRyaWFuZ2xlZG93biAiJiN4MjVCRjsi
LS0+Ci08IS0tRU5USVRZIGx0cmlmICImI3gyNUMyOyItLT4KLTwhLS1FTlRJVFkgYmxhY2t0cmlh
bmdsZWxlZnQgIiYjeDI1QzI7Ii0tPgotPCEtLUVOVElUWSBsdHJpICImI3gyNUMzOyItLT4KLTwh
LS1FTlRJVFkgdHJpYW5nbGVsZWZ0ICImI3gyNUMzOyItLT4KLTwhLS1FTlRJVFkgbG96ICImI3gy
NUNBOyItLT4KLTwhLS1FTlRJVFkgbG96ZW5nZSAiJiN4MjVDQTsiLS0+Ci08IS0tRU5USVRZIGNp
ciAiJiN4MjVDQjsiLS0+Ci08IS0tRU5USVRZIHRyaWRvdCAiJiN4MjVFQzsiLS0+Ci08IS0tRU5U
SVRZIHhjaXJjICImI3gyNUVGOyItLT4KLTwhLS1FTlRJVFkgYmlnY2lyYyAiJiN4MjVFRjsiLS0+
Ci08IS0tRU5USVRZIHVsdHJpICImI3gyNUY4OyItLT4KLTwhLS1FTlRJVFkgdXJ0cmkgIiYjeDI1
Rjk7Ii0tPgotPCEtLUVOVElUWSBsbHRyaSAiJiN4MjVGQTsiLS0+Ci08IS0tRU5USVRZIEVtcHR5
U21hbGxTcXVhcmUgIiYjeDI1RkI7Ii0tPgotPCEtLUVOVElUWSBGaWxsZWRTbWFsbFNxdWFyZSAi
JiN4MjVGQzsiLS0+Ci08IS0tRU5USVRZIHN0YXJmICImI3gyNjA1OyItLT4KLTwhLS1FTlRJVFkg
Ymlnc3RhciAiJiN4MjYwNTsiLS0+Ci08IS0tRU5USVRZIHN0YXIgIiYjeDI2MDY7Ii0tPgotPCEt
LUVOVElUWSBwaG9uZSAiJiN4MjYwRTsiLS0+Ci08IS0tRU5USVRZIGZlbWFsZSAiJiN4MjY0MDsi
LS0+Ci08IS0tRU5USVRZIG1hbGUgIiYjeDI2NDI7Ii0tPgotPCEtLUVOVElUWSBzcGFkZXMgIiYj
eDI2NjA7Ii0tPgotPCEtLUVOVElUWSBzcGFkZXN1aXQgIiYjeDI2NjA7Ii0tPgotPCEtLUVOVElU
WSBjbHVicyAiJiN4MjY2MzsiLS0+Ci08IS0tRU5USVRZIGNsdWJzdWl0ICImI3gyNjYzOyItLT4K
LTwhLS1FTlRJVFkgaGVhcnRzICImI3gyNjY1OyItLT4KLTwhLS1FTlRJVFkgaGVhcnRzdWl0ICIm
I3gyNjY1OyItLT4KLTwhLS1FTlRJVFkgZGlhbXMgIiYjeDI2NjY7Ii0tPgotPCEtLUVOVElUWSBk
aWFtb25kc3VpdCAiJiN4MjY2NjsiLS0+Ci08IS0tRU5USVRZIHN1bmcgIiYjeDI2NkE7Ii0tPgot
PCEtLUVOVElUWSBmbGF0ICImI3gyNjZEOyItLT4KLTwhLS1FTlRJVFkgbmF0dXIgIiYjeDI2NkU7
Ii0tPgotPCEtLUVOVElUWSBuYXR1cmFsICImI3gyNjZFOyItLT4KLTwhLS1FTlRJVFkgc2hhcnAg
IiYjeDI2NkY7Ii0tPgotPCEtLUVOVElUWSBjaGVjayAiJiN4MjcxMzsiLS0+Ci08IS0tRU5USVRZ
IGNoZWNrbWFyayAiJiN4MjcxMzsiLS0+Ci08IS0tRU5USVRZIGNyb3NzICImI3gyNzE3OyItLT4K
LTwhLS1FTlRJVFkgbWFsdCAiJiN4MjcyMDsiLS0+Ci08IS0tRU5USVRZIG1hbHRlc2UgIiYjeDI3
MjA7Ii0tPgotPCEtLUVOVElUWSBzZXh0ICImI3gyNzM2OyItLT4KLTwhLS1FTlRJVFkgVmVydGlj
YWxTZXBhcmF0b3IgIiYjeDI3NTg7Ii0tPgotPCEtLUVOVElUWSBsYmJyayAiJiN4Mjc3MjsiLS0+
Ci08IS0tRU5USVRZIHJiYnJrICImI3gyNzczOyItLT4KLTwhLS1FTlRJVFkgYnNvbGhzdWIgIiYj
eDI3Qzg7Ii0tPgotPCEtLUVOVElUWSBzdXBoc29sICImI3gyN0M5OyItLT4KLTwhLS1FTlRJVFkg
bG9icmsgIiYjeDI3RTY7Ii0tPgotPCEtLUVOVElUWSBMZWZ0RG91YmxlQnJhY2tldCAiJiN4MjdF
NjsiLS0+Ci08IS0tRU5USVRZIHJvYnJrICImI3gyN0U3OyItLT4KLTwhLS1FTlRJVFkgUmlnaHRE
b3VibGVCcmFja2V0ICImI3gyN0U3OyItLT4KLTwhLS1FTlRJVFkgbGFuZyAiJiN4MjdFODsiLS0+
Ci08IS0tRU5USVRZIExlZnRBbmdsZUJyYWNrZXQgIiYjeDI3RTg7Ii0tPgotPCEtLUVOVElUWSBs
YW5nbGUgIiYjeDI3RTg7Ii0tPgotPCEtLUVOVElUWSByYW5nICImI3gyN0U5OyItLT4KLTwhLS1F
TlRJVFkgUmlnaHRBbmdsZUJyYWNrZXQgIiYjeDI3RTk7Ii0tPgotPCEtLUVOVElUWSByYW5nbGUg
IiYjeDI3RTk7Ii0tPgotPCEtLUVOVElUWSBMYW5nICImI3gyN0VBOyItLT4KLTwhLS1FTlRJVFkg
UmFuZyAiJiN4MjdFQjsiLS0+Ci08IS0tRU5USVRZIGxvYW5nICImI3gyN0VDOyItLT4KLTwhLS1F
TlRJVFkgcm9hbmcgIiYjeDI3RUQ7Ii0tPgotPCEtLUVOVElUWSB4bGFyciAiJiN4MjdGNTsiLS0+
Ci08IS0tRU5USVRZIGxvbmdsZWZ0YXJyb3cgIiYjeDI3RjU7Ii0tPgotPCEtLUVOVElUWSBMb25n
TGVmdEFycm93ICImI3gyN0Y1OyItLT4KLTwhLS1FTlRJVFkgeHJhcnIgIiYjeDI3RjY7Ii0tPgot
PCEtLUVOVElUWSBsb25ncmlnaHRhcnJvdyAiJiN4MjdGNjsiLS0+Ci08IS0tRU5USVRZIExvbmdS
aWdodEFycm93ICImI3gyN0Y2OyItLT4KLTwhLS1FTlRJVFkgeGhhcnIgIiYjeDI3Rjc7Ii0tPgot
PCEtLUVOVElUWSBsb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3Rjc7Ii0tPgotPCEtLUVOVElUWSBM
b25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3Rjc7Ii0tPgotPCEtLUVOVElUWSB4bEFyciAiJiN4MjdG
ODsiLS0+Ci08IS0tRU5USVRZIExvbmdsZWZ0YXJyb3cgIiYjeDI3Rjg7Ii0tPgotPCEtLUVOVElU
WSBEb3VibGVMb25nTGVmdEFycm93ICImI3gyN0Y4OyItLT4KLTwhLS1FTlRJVFkgeHJBcnIgIiYj
eDI3Rjk7Ii0tPgotPCEtLUVOVElUWSBMb25ncmlnaHRhcnJvdyAiJiN4MjdGOTsiLS0+Ci08IS0t
RU5USVRZIERvdWJsZUxvbmdSaWdodEFycm93ICImI3gyN0Y5OyItLT4KLTwhLS1FTlRJVFkgeGhB
cnIgIiYjeDI3RkE7Ii0tPgotPCEtLUVOVElUWSBMb25nbGVmdHJpZ2h0YXJyb3cgIiYjeDI3RkE7
Ii0tPgotPCEtLUVOVElUWSBEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3cgIiYjeDI3RkE7Ii0tPgot
PCEtLUVOVElUWSB4bWFwICImI3gyN0ZDOyItLT4KLTwhLS1FTlRJVFkgbG9uZ21hcHN0byAiJiN4
MjdGQzsiLS0+Ci08IS0tRU5USVRZIGR6aWdyYXJyICImI3gyN0ZGOyItLT4KLTwhLS1FTlRJVFkg
bnZsQXJyICImI3gyOTAyOyItLT4KLTwhLS1FTlRJVFkgbnZyQXJyICImI3gyOTAzOyItLT4KLTwh
LS1FTlRJVFkgbnZIYXJyICImI3gyOTA0OyItLT4KLTwhLS1FTlRJVFkgTWFwICImI3gyOTA1OyIt
LT4KLTwhLS1FTlRJVFkgbGJhcnIgIiYjeDI5MEM7Ii0tPgotPCEtLUVOVElUWSByYmFyciAiJiN4
MjkwRDsiLS0+Ci08IS0tRU5USVRZIGJrYXJvdyAiJiN4MjkwRDsiLS0+Ci08IS0tRU5USVRZIGxC
YXJyICImI3gyOTBFOyItLT4KLTwhLS1FTlRJVFkgckJhcnIgIiYjeDI5MEY7Ii0tPgotPCEtLUVO
VElUWSBkYmthcm93ICImI3gyOTBGOyItLT4KLTwhLS1FTlRJVFkgUkJhcnIgIiYjeDI5MTA7Ii0t
PgotPCEtLUVOVElUWSBkcmJrYXJvdyAiJiN4MjkxMDsiLS0+Ci08IS0tRU5USVRZIEREb3RyYWhk
ICImI3gyOTExOyItLT4KLTwhLS1FTlRJVFkgVXBBcnJvd0JhciAiJiN4MjkxMjsiLS0+Ci08IS0t
RU5USVRZIERvd25BcnJvd0JhciAiJiN4MjkxMzsiLS0+Ci08IS0tRU5USVRZIFJhcnJ0bCAiJiN4
MjkxNjsiLS0+Ci08IS0tRU5USVRZIGxhdGFpbCAiJiN4MjkxOTsiLS0+Ci08IS0tRU5USVRZIHJh
dGFpbCAiJiN4MjkxQTsiLS0+Ci08IS0tRU5USVRZIGxBdGFpbCAiJiN4MjkxQjsiLS0+Ci08IS0t
RU5USVRZIHJBdGFpbCAiJiN4MjkxQzsiLS0+Ci08IS0tRU5USVRZIGxhcnJmcyAiJiN4MjkxRDsi
LS0+Ci08IS0tRU5USVRZIHJhcnJmcyAiJiN4MjkxRTsiLS0+Ci08IS0tRU5USVRZIGxhcnJiZnMg
IiYjeDI5MUY7Ii0tPgotPCEtLUVOVElUWSByYXJyYmZzICImI3gyOTIwOyItLT4KLTwhLS1FTlRJ
VFkgbndhcmhrICImI3gyOTIzOyItLT4KLTwhLS1FTlRJVFkgbmVhcmhrICImI3gyOTI0OyItLT4K
LTwhLS1FTlRJVFkgc2VhcmhrICImI3gyOTI1OyItLT4KLTwhLS1FTlRJVFkgaGtzZWFyb3cgIiYj
eDI5MjU7Ii0tPgotPCEtLUVOVElUWSBzd2FyaGsgIiYjeDI5MjY7Ii0tPgotPCEtLUVOVElUWSBo
a3N3YXJvdyAiJiN4MjkyNjsiLS0+Ci08IS0tRU5USVRZIG53bmVhciAiJiN4MjkyNzsiLS0+Ci08
IS0tRU5USVRZIG5lc2VhciAiJiN4MjkyODsiLS0+Ci08IS0tRU5USVRZIHRvZWEgIiYjeDI5Mjg7
Ii0tPgotPCEtLUVOVElUWSBzZXN3YXIgIiYjeDI5Mjk7Ii0tPgotPCEtLUVOVElUWSB0b3NhICIm
I3gyOTI5OyItLT4KLTwhLS1FTlRJVFkgc3dud2FyICImI3gyOTJBOyItLT4KLTwhLS1FTlRJVFkg
cmFycmMgIiYjeDI5MzM7Ii0tPgotPCEtLUVOVElUWSBucmFycmMgIiYjeDI5MzM7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgY3VkYXJyciAiJiN4MjkzNTsiLS0+Ci08IS0tRU5USVRZIGxkY2EgIiYj
eDI5MzY7Ii0tPgotPCEtLUVOVElUWSByZGNhICImI3gyOTM3OyItLT4KLTwhLS1FTlRJVFkgY3Vk
YXJybCAiJiN4MjkzODsiLS0+Ci08IS0tRU5USVRZIGxhcnJwbCAiJiN4MjkzOTsiLS0+Ci08IS0t
RU5USVRZIGN1cmFycm0gIiYjeDI5M0M7Ii0tPgotPCEtLUVOVElUWSBjdWxhcnJwICImI3gyOTNE
OyItLT4KLTwhLS1FTlRJVFkgcmFycnBsICImI3gyOTQ1OyItLT4KLTwhLS1FTlRJVFkgaGFycmNp
ciAiJiN4Mjk0ODsiLS0+Ci08IS0tRU5USVRZIFVhcnJvY2lyICImI3gyOTQ5OyItLT4KLTwhLS1F
TlRJVFkgbHVyZHNoYXIgIiYjeDI5NEE7Ii0tPgotPCEtLUVOVElUWSBsZHJ1c2hhciAiJiN4Mjk0
QjsiLS0+Ci08IS0tRU5USVRZIExlZnRSaWdodFZlY3RvciAiJiN4Mjk0RTsiLS0+Ci08IS0tRU5U
SVRZIFJpZ2h0VXBEb3duVmVjdG9yICImI3gyOTRGOyItLT4KLTwhLS1FTlRJVFkgRG93bkxlZnRS
aWdodFZlY3RvciAiJiN4Mjk1MDsiLS0+Ci08IS0tRU5USVRZIExlZnRVcERvd25WZWN0b3IgIiYj
eDI5NTE7Ii0tPgotPCEtLUVOVElUWSBMZWZ0VmVjdG9yQmFyICImI3gyOTUyOyItLT4KLTwhLS1F
TlRJVFkgUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTM7Ii0tPgotPCEtLUVOVElUWSBSaWdodFVwVmVj
dG9yQmFyICImI3gyOTU0OyItLT4KLTwhLS1FTlRJVFkgUmlnaHREb3duVmVjdG9yQmFyICImI3gy
OTU1OyItLT4KLTwhLS1FTlRJVFkgRG93bkxlZnRWZWN0b3JCYXIgIiYjeDI5NTY7Ii0tPgotPCEt
LUVOVElUWSBEb3duUmlnaHRWZWN0b3JCYXIgIiYjeDI5NTc7Ii0tPgotPCEtLUVOVElUWSBMZWZ0
VXBWZWN0b3JCYXIgIiYjeDI5NTg7Ii0tPgotPCEtLUVOVElUWSBMZWZ0RG93blZlY3RvckJhciAi
JiN4Mjk1OTsiLS0+Ci08IS0tRU5USVRZIExlZnRUZWVWZWN0b3IgIiYjeDI5NUE7Ii0tPgotPCEt
LUVOVElUWSBSaWdodFRlZVZlY3RvciAiJiN4Mjk1QjsiLS0+Ci08IS0tRU5USVRZIFJpZ2h0VXBU
ZWVWZWN0b3IgIiYjeDI5NUM7Ii0tPgotPCEtLUVOVElUWSBSaWdodERvd25UZWVWZWN0b3IgIiYj
eDI5NUQ7Ii0tPgotPCEtLUVOVElUWSBEb3duTGVmdFRlZVZlY3RvciAiJiN4Mjk1RTsiLS0+Ci08
IS0tRU5USVRZIERvd25SaWdodFRlZVZlY3RvciAiJiN4Mjk1RjsiLS0+Ci08IS0tRU5USVRZIExl
ZnRVcFRlZVZlY3RvciAiJiN4Mjk2MDsiLS0+Ci08IS0tRU5USVRZIExlZnREb3duVGVlVmVjdG9y
ICImI3gyOTYxOyItLT4KLTwhLS1FTlRJVFkgbEhhciAiJiN4Mjk2MjsiLS0+Ci08IS0tRU5USVRZ
IHVIYXIgIiYjeDI5NjM7Ii0tPgotPCEtLUVOVElUWSBySGFyICImI3gyOTY0OyItLT4KLTwhLS1F
TlRJVFkgZEhhciAiJiN4Mjk2NTsiLS0+Ci08IS0tRU5USVRZIGx1cnVoYXIgIiYjeDI5NjY7Ii0t
PgotPCEtLUVOVElUWSBsZHJkaGFyICImI3gyOTY3OyItLT4KLTwhLS1FTlRJVFkgcnVsdWhhciAi
JiN4Mjk2ODsiLS0+Ci08IS0tRU5USVRZIHJkbGRoYXIgIiYjeDI5Njk7Ii0tPgotPCEtLUVOVElU
WSBsaGFydWwgIiYjeDI5NkE7Ii0tPgotPCEtLUVOVElUWSBsbGhhcmQgIiYjeDI5NkI7Ii0tPgot
PCEtLUVOVElUWSByaGFydWwgIiYjeDI5NkM7Ii0tPgotPCEtLUVOVElUWSBscmhhcmQgIiYjeDI5
NkQ7Ii0tPgotPCEtLUVOVElUWSB1ZGhhciAiJiN4Mjk2RTsiLS0+Ci08IS0tRU5USVRZIFVwRXF1
aWxpYnJpdW0gIiYjeDI5NkU7Ii0tPgotPCEtLUVOVElUWSBkdWhhciAiJiN4Mjk2RjsiLS0+Ci08
IS0tRU5USVRZIFJldmVyc2VVcEVxdWlsaWJyaXVtICImI3gyOTZGOyItLT4KLTwhLS1FTlRJVFkg
Um91bmRJbXBsaWVzICImI3gyOTcwOyItLT4KLTwhLS1FTlRJVFkgZXJhcnIgIiYjeDI5NzE7Ii0t
PgotPCEtLUVOVElUWSBzaW1yYXJyICImI3gyOTcyOyItLT4KLTwhLS1FTlRJVFkgbGFycnNpbSAi
JiN4Mjk3MzsiLS0+Ci08IS0tRU5USVRZIHJhcnJzaW0gIiYjeDI5NzQ7Ii0tPgotPCEtLUVOVElU
WSByYXJyYXAgIiYjeDI5NzU7Ii0tPgotPCEtLUVOVElUWSBsdGxhcnIgIiYjeDI5NzY7Ii0tPgot
PCEtLUVOVElUWSBndHJhcnIgIiYjeDI5Nzg7Ii0tPgotPCEtLUVOVElUWSBzdWJyYXJyICImI3gy
OTc5OyItLT4KLTwhLS1FTlRJVFkgc3VwbGFyciAiJiN4Mjk3QjsiLS0+Ci08IS0tRU5USVRZIGxm
aXNodCAiJiN4Mjk3QzsiLS0+Ci08IS0tRU5USVRZIHJmaXNodCAiJiN4Mjk3RDsiLS0+Ci08IS0t
RU5USVRZIHVmaXNodCAiJiN4Mjk3RTsiLS0+Ci08IS0tRU5USVRZIGRmaXNodCAiJiN4Mjk3Rjsi
LS0+Ci08IS0tRU5USVRZIGxvcGFyICImI3gyOTg1OyItLT4KLTwhLS1FTlRJVFkgcm9wYXIgIiYj
eDI5ODY7Ii0tPgotPCEtLUVOVElUWSBsYnJrZSAiJiN4Mjk4QjsiLS0+Ci08IS0tRU5USVRZIHJi
cmtlICImI3gyOThDOyItLT4KLTwhLS1FTlRJVFkgbGJya3NsdSAiJiN4Mjk4RDsiLS0+Ci08IS0t
RU5USVRZIHJicmtzbGQgIiYjeDI5OEU7Ii0tPgotPCEtLUVOVElUWSBsYnJrc2xkICImI3gyOThG
OyItLT4KLTwhLS1FTlRJVFkgcmJya3NsdSAiJiN4Mjk5MDsiLS0+Ci08IS0tRU5USVRZIGxhbmdk
ICImI3gyOTkxOyItLT4KLTwhLS1FTlRJVFkgcmFuZ2QgIiYjeDI5OTI7Ii0tPgotPCEtLUVOVElU
WSBscGFybHQgIiYjeDI5OTM7Ii0tPgotPCEtLUVOVElUWSBycGFyZ3QgIiYjeDI5OTQ7Ii0tPgot
PCEtLUVOVElUWSBndGxQYXIgIiYjeDI5OTU7Ii0tPgotPCEtLUVOVElUWSBsdHJQYXIgIiYjeDI5
OTY7Ii0tPgotPCEtLUVOVElUWSB2emlnemFnICImI3gyOTlBOyItLT4KLTwhLS1FTlRJVFkgdmFu
Z3J0ICImI3gyOTlDOyItLT4KLTwhLS1FTlRJVFkgYW5ncnR2YmQgIiYjeDI5OUQ7Ii0tPgotPCEt
LUVOVElUWSBhbmdlICImI3gyOUE0OyItLT4KLTwhLS1FTlRJVFkgcmFuZ2UgIiYjeDI5QTU7Ii0t
PgotPCEtLUVOVElUWSBkd2FuZ2xlICImI3gyOUE2OyItLT4KLTwhLS1FTlRJVFkgdXdhbmdsZSAi
JiN4MjlBNzsiLS0+Ci08IS0tRU5USVRZIGFuZ21zZGFhICImI3gyOUE4OyItLT4KLTwhLS1FTlRJ
VFkgYW5nbXNkYWIgIiYjeDI5QTk7Ii0tPgotPCEtLUVOVElUWSBhbmdtc2RhYyAiJiN4MjlBQTsi
LS0+Ci08IS0tRU5USVRZIGFuZ21zZGFkICImI3gyOUFCOyItLT4KLTwhLS1FTlRJVFkgYW5nbXNk
YWUgIiYjeDI5QUM7Ii0tPgotPCEtLUVOVElUWSBhbmdtc2RhZiAiJiN4MjlBRDsiLS0+Ci08IS0t
RU5USVRZIGFuZ21zZGFnICImI3gyOUFFOyItLT4KLTwhLS1FTlRJVFkgYW5nbXNkYWggIiYjeDI5
QUY7Ii0tPgotPCEtLUVOVElUWSBiZW1wdHl2ICImI3gyOUIwOyItLT4KLTwhLS1FTlRJVFkgZGVt
cHR5diAiJiN4MjlCMTsiLS0+Ci08IS0tRU5USVRZIGNlbXB0eXYgIiYjeDI5QjI7Ii0tPgotPCEt
LUVOVElUWSByYWVtcHR5diAiJiN4MjlCMzsiLS0+Ci08IS0tRU5USVRZIGxhZW1wdHl2ICImI3gy
OUI0OyItLT4KLTwhLS1FTlRJVFkgb2hiYXIgIiYjeDI5QjU7Ii0tPgotPCEtLUVOVElUWSBvbWlk
ICImI3gyOUI2OyItLT4KLTwhLS1FTlRJVFkgb3BhciAiJiN4MjlCNzsiLS0+Ci08IS0tRU5USVRZ
IG9wZXJwICImI3gyOUI5OyItLT4KLTwhLS1FTlRJVFkgb2xjcm9zcyAiJiN4MjlCQjsiLS0+Ci08
IS0tRU5USVRZIG9kc29sZCAiJiN4MjlCQzsiLS0+Ci08IS0tRU5USVRZIG9sY2lyICImI3gyOUJF
OyItLT4KLTwhLS1FTlRJVFkgb2ZjaXIgIiYjeDI5QkY7Ii0tPgotPCEtLUVOVElUWSBvbHQgIiYj
eDI5QzA7Ii0tPgotPCEtLUVOVElUWSBvZ3QgIiYjeDI5QzE7Ii0tPgotPCEtLUVOVElUWSBjaXJz
Y2lyICImI3gyOUMyOyItLT4KLTwhLS1FTlRJVFkgY2lyRSAiJiN4MjlDMzsiLS0+Ci08IS0tRU5U
SVRZIHNvbGIgIiYjeDI5QzQ7Ii0tPgotPCEtLUVOVElUWSBic29sYiAiJiN4MjlDNTsiLS0+Ci08
IS0tRU5USVRZIGJveGJveCAiJiN4MjlDOTsiLS0+Ci08IS0tRU5USVRZIHRyaXNiICImI3gyOUNE
OyItLT4KLTwhLS1FTlRJVFkgcnRyaWx0cmkgIiYjeDI5Q0U7Ii0tPgotPCEtLUVOVElUWSBMZWZ0
VHJpYW5nbGVCYXIgIiYjeDI5Q0Y7Ii0tPgotPCEtLUVOVElUWSBOb3RMZWZ0VHJpYW5nbGVCYXIg
IiYjeDI5Q0Y7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgUmlnaHRUcmlhbmdsZUJhciAiJiN4MjlE
MDsiLS0+Ci08IS0tRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGVCYXIgIiYjeDI5RDA7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgaWluZmluICImI3gyOURDOyItLT4KLTwhLS1FTlRJVFkgaW5maW50aWUg
IiYjeDI5REQ7Ii0tPgotPCEtLUVOVElUWSBudmluZmluICImI3gyOURFOyItLT4KLTwhLS1FTlRJ
VFkgZXBhcnNsICImI3gyOUUzOyItLT4KLTwhLS1FTlRJVFkgc21lcGFyc2wgIiYjeDI5RTQ7Ii0t
PgotPCEtLUVOVElUWSBlcXZwYXJzbCAiJiN4MjlFNTsiLS0+Ci08IS0tRU5USVRZIGxvemYgIiYj
eDI5RUI7Ii0tPgotPCEtLUVOVElUWSBibGFja2xvemVuZ2UgIiYjeDI5RUI7Ii0tPgotPCEtLUVO
VElUWSBSdWxlRGVsYXllZCAiJiN4MjlGNDsiLS0+Ci08IS0tRU5USVRZIGRzb2wgIiYjeDI5RjY7
Ii0tPgotPCEtLUVOVElUWSB4b2RvdCAiJiN4MkEwMDsiLS0+Ci08IS0tRU5USVRZIGJpZ29kb3Qg
IiYjeDJBMDA7Ii0tPgotPCEtLUVOVElUWSB4b3BsdXMgIiYjeDJBMDE7Ii0tPgotPCEtLUVOVElU
WSBiaWdvcGx1cyAiJiN4MkEwMTsiLS0+Ci08IS0tRU5USVRZIHhvdGltZSAiJiN4MkEwMjsiLS0+
Ci08IS0tRU5USVRZIGJpZ290aW1lcyAiJiN4MkEwMjsiLS0+Ci08IS0tRU5USVRZIHh1cGx1cyAi
JiN4MkEwNDsiLS0+Ci08IS0tRU5USVRZIGJpZ3VwbHVzICImI3gyQTA0OyItLT4KLTwhLS1FTlRJ
VFkgeHNxY3VwICImI3gyQTA2OyItLT4KLTwhLS1FTlRJVFkgYmlnc3FjdXAgIiYjeDJBMDY7Ii0t
PgotPCEtLUVOVElUWSBxaW50ICImI3gyQTBDOyItLT4KLTwhLS1FTlRJVFkgaWlpaW50ICImI3gy
QTBDOyItLT4KLTwhLS1FTlRJVFkgZnBhcnRpbnQgIiYjeDJBMEQ7Ii0tPgotPCEtLUVOVElUWSBj
aXJmbmludCAiJiN4MkExMDsiLS0+Ci08IS0tRU5USVRZIGF3aW50ICImI3gyQTExOyItLT4KLTwh
LS1FTlRJVFkgcnBwb2xpbnQgIiYjeDJBMTI7Ii0tPgotPCEtLUVOVElUWSBzY3BvbGludCAiJiN4
MkExMzsiLS0+Ci08IS0tRU5USVRZIG5wb2xpbnQgIiYjeDJBMTQ7Ii0tPgotPCEtLUVOVElUWSBw
b2ludGludCAiJiN4MkExNTsiLS0+Ci08IS0tRU5USVRZIHF1YXRpbnQgIiYjeDJBMTY7Ii0tPgot
PCEtLUVOVElUWSBpbnRsYXJoayAiJiN4MkExNzsiLS0+Ci08IS0tRU5USVRZIHBsdXNjaXIgIiYj
eDJBMjI7Ii0tPgotPCEtLUVOVElUWSBwbHVzYWNpciAiJiN4MkEyMzsiLS0+Ci08IS0tRU5USVRZ
IHNpbXBsdXMgIiYjeDJBMjQ7Ii0tPgotPCEtLUVOVElUWSBwbHVzZHUgIiYjeDJBMjU7Ii0tPgot
PCEtLUVOVElUWSBwbHVzc2ltICImI3gyQTI2OyItLT4KLTwhLS1FTlRJVFkgcGx1c3R3byAiJiN4
MkEyNzsiLS0+Ci08IS0tRU5USVRZIG1jb21tYSAiJiN4MkEyOTsiLS0+Ci08IS0tRU5USVRZIG1p
bnVzZHUgIiYjeDJBMkE7Ii0tPgotPCEtLUVOVElUWSBsb3BsdXMgIiYjeDJBMkQ7Ii0tPgotPCEt
LUVOVElUWSByb3BsdXMgIiYjeDJBMkU7Ii0tPgotPCEtLUVOVElUWSBDcm9zcyAiJiN4MkEyRjsi
LS0+Ci08IS0tRU5USVRZIHRpbWVzZCAiJiN4MkEzMDsiLS0+Ci08IS0tRU5USVRZIHRpbWVzYmFy
ICImI3gyQTMxOyItLT4KLTwhLS1FTlRJVFkgc21hc2hwICImI3gyQTMzOyItLT4KLTwhLS1FTlRJ
VFkgbG90aW1lcyAiJiN4MkEzNDsiLS0+Ci08IS0tRU5USVRZIHJvdGltZXMgIiYjeDJBMzU7Ii0t
PgotPCEtLUVOVElUWSBvdGltZXNhcyAiJiN4MkEzNjsiLS0+Ci08IS0tRU5USVRZIE90aW1lcyAi
JiN4MkEzNzsiLS0+Ci08IS0tRU5USVRZIG9kaXYgIiYjeDJBMzg7Ii0tPgotPCEtLUVOVElUWSB0
cmlwbHVzICImI3gyQTM5OyItLT4KLTwhLS1FTlRJVFkgdHJpbWludXMgIiYjeDJBM0E7Ii0tPgot
PCEtLUVOVElUWSB0cml0aW1lICImI3gyQTNCOyItLT4KLTwhLS1FTlRJVFkgaXByb2QgIiYjeDJB
M0M7Ii0tPgotPCEtLUVOVElUWSBpbnRwcm9kICImI3gyQTNDOyItLT4KLTwhLS1FTlRJVFkgYW1h
bGcgIiYjeDJBM0Y7Ii0tPgotPCEtLUVOVElUWSBjYXBkb3QgIiYjeDJBNDA7Ii0tPgotPCEtLUVO
VElUWSBuY3VwICImI3gyQTQyOyItLT4KLTwhLS1FTlRJVFkgbmNhcCAiJiN4MkE0MzsiLS0+Ci08
IS0tRU5USVRZIGNhcGFuZCAiJiN4MkE0NDsiLS0+Ci08IS0tRU5USVRZIGN1cG9yICImI3gyQTQ1
OyItLT4KLTwhLS1FTlRJVFkgY3VwY2FwICImI3gyQTQ2OyItLT4KLTwhLS1FTlRJVFkgY2FwY3Vw
ICImI3gyQTQ3OyItLT4KLTwhLS1FTlRJVFkgY3VwYnJjYXAgIiYjeDJBNDg7Ii0tPgotPCEtLUVO
VElUWSBjYXBicmN1cCAiJiN4MkE0OTsiLS0+Ci08IS0tRU5USVRZIGN1cGN1cCAiJiN4MkE0QTsi
LS0+Ci08IS0tRU5USVRZIGNhcGNhcCAiJiN4MkE0QjsiLS0+Ci08IS0tRU5USVRZIGNjdXBzICIm
I3gyQTRDOyItLT4KLTwhLS1FTlRJVFkgY2NhcHMgIiYjeDJBNEQ7Ii0tPgotPCEtLUVOVElUWSBj
Y3Vwc3NtICImI3gyQTUwOyItLT4KLTwhLS1FTlRJVFkgQW5kICImI3gyQTUzOyItLT4KLTwhLS1F
TlRJVFkgT3IgIiYjeDJBNTQ7Ii0tPgotPCEtLUVOVElUWSBhbmRhbmQgIiYjeDJBNTU7Ii0tPgot
PCEtLUVOVElUWSBvcm9yICImI3gyQTU2OyItLT4KLTwhLS1FTlRJVFkgb3JzbG9wZSAiJiN4MkE1
NzsiLS0+Ci08IS0tRU5USVRZIGFuZHNsb3BlICImI3gyQTU4OyItLT4KLTwhLS1FTlRJVFkgYW5k
diAiJiN4MkE1QTsiLS0+Ci08IS0tRU5USVRZIG9ydiAiJiN4MkE1QjsiLS0+Ci08IS0tRU5USVRZ
IGFuZGQgIiYjeDJBNUM7Ii0tPgotPCEtLUVOVElUWSBvcmQgIiYjeDJBNUQ7Ii0tPgotPCEtLUVO
VElUWSB3ZWRiYXIgIiYjeDJBNUY7Ii0tPgotPCEtLUVOVElUWSBzZG90ZSAiJiN4MkE2NjsiLS0+
Ci08IS0tRU5USVRZIHNpbWRvdCAiJiN4MkE2QTsiLS0+Ci08IS0tRU5USVRZIGNvbmdkb3QgIiYj
eDJBNkQ7Ii0tPgotPCEtLUVOVElUWSBuY29uZ2RvdCAiJiN4MkE2RDsmI3gzMzg7Ii0tPgotPCEt
LUVOVElUWSBlYXN0ZXIgIiYjeDJBNkU7Ii0tPgotPCEtLUVOVElUWSBhcGFjaXIgIiYjeDJBNkY7
Ii0tPgotPCEtLUVOVElUWSBhcEUgIiYjeDJBNzA7Ii0tPgotPCEtLUVOVElUWSBuYXBFICImI3gy
QTcwOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGVwbHVzICImI3gyQTcxOyItLT4KLTwhLS1FTlRJ
VFkgcGx1c2UgIiYjeDJBNzI7Ii0tPgotPCEtLUVOVElUWSBFc2ltICImI3gyQTczOyItLT4KLTwh
LS1FTlRJVFkgQ29sb25lICImI3gyQTc0OyItLT4KLTwhLS1FTlRJVFkgRXF1YWwgIiYjeDJBNzU7
Ii0tPgotPCEtLUVOVElUWSBlRERvdCAiJiN4MkE3NzsiLS0+Ci08IS0tRU5USVRZIGRkb3RzZXEg
IiYjeDJBNzc7Ii0tPgotPCEtLUVOVElUWSBlcXVpdkREICImI3gyQTc4OyItLT4KLTwhLS1FTlRJ
VFkgbHRjaXIgIiYjeDJBNzk7Ii0tPgotPCEtLUVOVElUWSBndGNpciAiJiN4MkE3QTsiLS0+Ci08
IS0tRU5USVRZIGx0cXVlc3QgIiYjeDJBN0I7Ii0tPgotPCEtLUVOVElUWSBndHF1ZXN0ICImI3gy
QTdDOyItLT4KLTwhLS1FTlRJVFkgbGVzICImI3gyQTdEOyItLT4KLTwhLS1FTlRJVFkgTGVzc1Ns
YW50RXF1YWwgIiYjeDJBN0Q7Ii0tPgotPCEtLUVOVElUWSBsZXFzbGFudCAiJiN4MkE3RDsiLS0+
Ci08IS0tRU5USVRZIG5sZXMgIiYjeDJBN0Q7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgTm90TGVz
c1NsYW50RXF1YWwgIiYjeDJBN0Q7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbmxlcXNsYW50ICIm
I3gyQTdEOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIGdlcyAiJiN4MkE3RTsiLS0+Ci08IS0tRU5U
SVRZIEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyItLT4KLTwhLS1FTlRJVFkgZ2Vxc2xhbnQg
IiYjeDJBN0U7Ii0tPgotPCEtLUVOVElUWSBuZ2VzICImI3gyQTdFOyYjeDMzODsiLS0+Ci08IS0t
RU5USVRZIE5vdEdyZWF0ZXJTbGFudEVxdWFsICImI3gyQTdFOyYjeDMzODsiLS0+Ci08IS0tRU5U
SVRZIG5nZXFzbGFudCAiJiN4MkE3RTsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBsZXNkb3QgIiYj
eDJBN0Y7Ii0tPgotPCEtLUVOVElUWSBnZXNkb3QgIiYjeDJBODA7Ii0tPgotPCEtLUVOVElUWSBs
ZXNkb3RvICImI3gyQTgxOyItLT4KLTwhLS1FTlRJVFkgZ2VzZG90byAiJiN4MkE4MjsiLS0+Ci08
IS0tRU5USVRZIGxlc2RvdG9yICImI3gyQTgzOyItLT4KLTwhLS1FTlRJVFkgZ2VzZG90b2wgIiYj
eDJBODQ7Ii0tPgotPCEtLUVOVElUWSBsYXAgIiYjeDJBODU7Ii0tPgotPCEtLUVOVElUWSBsZXNz
YXBwcm94ICImI3gyQTg1OyItLT4KLTwhLS1FTlRJVFkgZ2FwICImI3gyQTg2OyItLT4KLTwhLS1F
TlRJVFkgZ3RyYXBwcm94ICImI3gyQTg2OyItLT4KLTwhLS1FTlRJVFkgbG5lICImI3gyQTg3OyIt
LT4KLTwhLS1FTlRJVFkgbG5lcSAiJiN4MkE4NzsiLS0+Ci08IS0tRU5USVRZIGduZSAiJiN4MkE4
ODsiLS0+Ci08IS0tRU5USVRZIGduZXEgIiYjeDJBODg7Ii0tPgotPCEtLUVOVElUWSBsbmFwICIm
I3gyQTg5OyItLT4KLTwhLS1FTlRJVFkgbG5hcHByb3ggIiYjeDJBODk7Ii0tPgotPCEtLUVOVElU
WSBnbmFwICImI3gyQThBOyItLT4KLTwhLS1FTlRJVFkgZ25hcHByb3ggIiYjeDJBOEE7Ii0tPgot
PCEtLUVOVElUWSBsRWcgIiYjeDJBOEI7Ii0tPgotPCEtLUVOVElUWSBsZXNzZXFxZ3RyICImI3gy
QThCOyItLT4KLTwhLS1FTlRJVFkgZ0VsICImI3gyQThDOyItLT4KLTwhLS1FTlRJVFkgZ3RyZXFx
bGVzcyAiJiN4MkE4QzsiLS0+Ci08IS0tRU5USVRZIGxzaW1lICImI3gyQThEOyItLT4KLTwhLS1F
TlRJVFkgZ3NpbWUgIiYjeDJBOEU7Ii0tPgotPCEtLUVOVElUWSBsc2ltZyAiJiN4MkE4RjsiLS0+
Ci08IS0tRU5USVRZIGdzaW1sICImI3gyQTkwOyItLT4KLTwhLS1FTlRJVFkgbGdFICImI3gyQTkx
OyItLT4KLTwhLS1FTlRJVFkgZ2xFICImI3gyQTkyOyItLT4KLTwhLS1FTlRJVFkgbGVzZ2VzICIm
I3gyQTkzOyItLT4KLTwhLS1FTlRJVFkgZ2VzbGVzICImI3gyQTk0OyItLT4KLTwhLS1FTlRJVFkg
ZWxzICImI3gyQTk1OyItLT4KLTwhLS1FTlRJVFkgZXFzbGFudGxlc3MgIiYjeDJBOTU7Ii0tPgot
PCEtLUVOVElUWSBlZ3MgIiYjeDJBOTY7Ii0tPgotPCEtLUVOVElUWSBlcXNsYW50Z3RyICImI3gy
QTk2OyItLT4KLTwhLS1FTlRJVFkgZWxzZG90ICImI3gyQTk3OyItLT4KLTwhLS1FTlRJVFkgZWdz
ZG90ICImI3gyQTk4OyItLT4KLTwhLS1FTlRJVFkgZWwgIiYjeDJBOTk7Ii0tPgotPCEtLUVOVElU
WSBlZyAiJiN4MkE5QTsiLS0+Ci08IS0tRU5USVRZIHNpbWwgIiYjeDJBOUQ7Ii0tPgotPCEtLUVO
VElUWSBzaW1nICImI3gyQTlFOyItLT4KLTwhLS1FTlRJVFkgc2ltbEUgIiYjeDJBOUY7Ii0tPgot
PCEtLUVOVElUWSBzaW1nRSAiJiN4MkFBMDsiLS0+Ci08IS0tRU5USVRZIExlc3NMZXNzICImI3gy
QUExOyItLT4KLTwhLS1FTlRJVFkgTm90TmVzdGVkTGVzc0xlc3MgIiYjeDJBQTE7JiN4MzM4OyIt
LT4KLTwhLS1FTlRJVFkgR3JlYXRlckdyZWF0ZXIgIiYjeDJBQTI7Ii0tPgotPCEtLUVOVElUWSBO
b3ROZXN0ZWRHcmVhdGVyR3JlYXRlciAiJiN4MkFBMjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBn
bGogIiYjeDJBQTQ7Ii0tPgotPCEtLUVOVElUWSBnbGEgIiYjeDJBQTU7Ii0tPgotPCEtLUVOVElU
WSBsdGNjICImI3gyQUE2OyItLT4KLTwhLS1FTlRJVFkgZ3RjYyAiJiN4MkFBNzsiLS0+Ci08IS0t
RU5USVRZIGxlc2NjICImI3gyQUE4OyItLT4KLTwhLS1FTlRJVFkgZ2VzY2MgIiYjeDJBQTk7Ii0t
PgotPCEtLUVOVElUWSBzbXQgIiYjeDJBQUE7Ii0tPgotPCEtLUVOVElUWSBsYXQgIiYjeDJBQUI7
Ii0tPgotPCEtLUVOVElUWSBzbXRlICImI3gyQUFDOyItLT4KLTwhLS1FTlRJVFkgc210ZXMgIiYj
eDJBQUM7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIGxhdGUgIiYjeDJBQUQ7Ii0tPgotPCEtLUVO
VElUWSBsYXRlcyAiJiN4MkFBRDsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgYnVtcEUgIiYjeDJB
QUU7Ii0tPgotPCEtLUVOVElUWSBwcmUgIiYjeDJBQUY7Ii0tPgotPCEtLUVOVElUWSBwcmVjZXEg
IiYjeDJBQUY7Ii0tPgotPCEtLUVOVElUWSBQcmVjZWRlc0VxdWFsICImI3gyQUFGOyItLT4KLTwh
LS1FTlRJVFkgbnByZSAiJiN4MkFBRjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBucHJlY2VxICIm
I3gyQUFGOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIE5vdFByZWNlZGVzRXF1YWwgIiYjeDJBQUY7
JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgc2NlICImI3gyQUIwOyItLT4KLTwhLS1FTlRJVFkgc3Vj
Y2VxICImI3gyQUIwOyItLT4KLTwhLS1FTlRJVFkgU3VjY2VlZHNFcXVhbCAiJiN4MkFCMDsiLS0+
Ci08IS0tRU5USVRZIG5zY2UgIiYjeDJBQjA7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbnN1Y2Nl
cSAiJiN4MkFCMDsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBOb3RTdWNjZWVkc0VxdWFsICImI3gy
QUIwOyYjeDMzODsiLS0+Ci08IS0tRU5USVRZIHByRSAiJiN4MkFCMzsiLS0+Ci08IS0tRU5USVRZ
IHNjRSAiJiN4MkFCNDsiLS0+Ci08IS0tRU5USVRZIHBybkUgIiYjeDJBQjU7Ii0tPgotPCEtLUVO
VElUWSBwcmVjbmVxcSAiJiN4MkFCNTsiLS0+Ci08IS0tRU5USVRZIHNjbkUgIiYjeDJBQjY7Ii0t
PgotPCEtLUVOVElUWSBzdWNjbmVxcSAiJiN4MkFCNjsiLS0+Ci08IS0tRU5USVRZIHByYXAgIiYj
eDJBQjc7Ii0tPgotPCEtLUVOVElUWSBwcmVjYXBwcm94ICImI3gyQUI3OyItLT4KLTwhLS1FTlRJ
VFkgc2NhcCAiJiN4MkFCODsiLS0+Ci08IS0tRU5USVRZIHN1Y2NhcHByb3ggIiYjeDJBQjg7Ii0t
PgotPCEtLUVOVElUWSBwcm5hcCAiJiN4MkFCOTsiLS0+Ci08IS0tRU5USVRZIHByZWNuYXBwcm94
ICImI3gyQUI5OyItLT4KLTwhLS1FTlRJVFkgc2NuYXAgIiYjeDJBQkE7Ii0tPgotPCEtLUVOVElU
WSBzdWNjbmFwcHJveCAiJiN4MkFCQTsiLS0+Ci08IS0tRU5USVRZIFByICImI3gyQUJCOyItLT4K
LTwhLS1FTlRJVFkgU2MgIiYjeDJBQkM7Ii0tPgotPCEtLUVOVElUWSBzdWJkb3QgIiYjeDJBQkQ7
Ii0tPgotPCEtLUVOVElUWSBzdXBkb3QgIiYjeDJBQkU7Ii0tPgotPCEtLUVOVElUWSBzdWJwbHVz
ICImI3gyQUJGOyItLT4KLTwhLS1FTlRJVFkgc3VwcGx1cyAiJiN4MkFDMDsiLS0+Ci08IS0tRU5U
SVRZIHN1Ym11bHQgIiYjeDJBQzE7Ii0tPgotPCEtLUVOVElUWSBzdXBtdWx0ICImI3gyQUMyOyIt
LT4KLTwhLS1FTlRJVFkgc3ViZWRvdCAiJiN4MkFDMzsiLS0+Ci08IS0tRU5USVRZIHN1cGVkb3Qg
IiYjeDJBQzQ7Ii0tPgotPCEtLUVOVElUWSBzdWJFICImI3gyQUM1OyItLT4KLTwhLS1FTlRJVFkg
c3Vic2V0ZXFxICImI3gyQUM1OyItLT4KLTwhLS1FTlRJVFkgbnN1YkUgIiYjeDJBQzU7JiN4MzM4
OyItLT4KLTwhLS1FTlRJVFkgbnN1YnNldGVxcSAiJiN4MkFDNTsmI3gzMzg7Ii0tPgotPCEtLUVO
VElUWSBzdXBFICImI3gyQUM2OyItLT4KLTwhLS1FTlRJVFkgc3Vwc2V0ZXFxICImI3gyQUM2OyIt
LT4KLTwhLS1FTlRJVFkgbnN1cEUgIiYjeDJBQzY7JiN4MzM4OyItLT4KLTwhLS1FTlRJVFkgbnN1
cHNldGVxcSAiJiN4MkFDNjsmI3gzMzg7Ii0tPgotPCEtLUVOVElUWSBzdWJzaW0gIiYjeDJBQzc7
Ii0tPgotPCEtLUVOVElUWSBzdXBzaW0gIiYjeDJBQzg7Ii0tPgotPCEtLUVOVElUWSBzdWJuRSAi
JiN4MkFDQjsiLS0+Ci08IS0tRU5USVRZIHN1YnNldG5lcXEgIiYjeDJBQ0I7Ii0tPgotPCEtLUVO
VElUWSB2c3VibkUgIiYjeDJBQ0I7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIHZhcnN1YnNldG5l
cXEgIiYjeDJBQ0I7JiN4RkUwMDsiLS0+Ci08IS0tRU5USVRZIHN1cG5FICImI3gyQUNDOyItLT4K
LTwhLS1FTlRJVFkgc3Vwc2V0bmVxcSAiJiN4MkFDQzsiLS0+Ci08IS0tRU5USVRZIHZzdXBuRSAi
JiN4MkFDQzsmI3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgdmFyc3Vwc2V0bmVxcSAiJiN4MkFDQzsm
I3hGRTAwOyItLT4KLTwhLS1FTlRJVFkgY3N1YiAiJiN4MkFDRjsiLS0+Ci08IS0tRU5USVRZIGNz
dXAgIiYjeDJBRDA7Ii0tPgotPCEtLUVOVElUWSBjc3ViZSAiJiN4MkFEMTsiLS0+Ci08IS0tRU5U
SVRZIGNzdXBlICImI3gyQUQyOyItLT4KLTwhLS1FTlRJVFkgc3Vic3VwICImI3gyQUQzOyItLT4K
LTwhLS1FTlRJVFkgc3Vwc3ViICImI3gyQUQ0OyItLT4KLTwhLS1FTlRJVFkgc3Vic3ViICImI3gy
QUQ1OyItLT4KLTwhLS1FTlRJVFkgc3Vwc3VwICImI3gyQUQ2OyItLT4KLTwhLS1FTlRJVFkgc3Vw
aHN1YiAiJiN4MkFENzsiLS0+Ci08IS0tRU5USVRZIHN1cGRzdWIgIiYjeDJBRDg7Ii0tPgotPCEt
LUVOVElUWSBmb3JrdiAiJiN4MkFEOTsiLS0+Ci08IS0tRU5USVRZIHRvcGZvcmsgIiYjeDJBREE7
Ii0tPgotPCEtLUVOVElUWSBtbGNwICImI3gyQURCOyItLT4KLTwhLS1FTlRJVFkgRGFzaHYgIiYj
eDJBRTQ7Ii0tPgotPCEtLUVOVElUWSBEb3VibGVMZWZ0VGVlICImI3gyQUU0OyItLT4KLTwhLS1F
TlRJVFkgVmRhc2hsICImI3gyQUU2OyItLT4KLTwhLS1FTlRJVFkgQmFydiAiJiN4MkFFNzsiLS0+
Ci08IS0tRU5USVRZIHZCYXIgIiYjeDJBRTg7Ii0tPgotPCEtLUVOVElUWSB2QmFydiAiJiN4MkFF
OTsiLS0+Ci08IS0tRU5USVRZIFZiYXIgIiYjeDJBRUI7Ii0tPgotPCEtLUVOVElUWSBOb3QgIiYj
eDJBRUM7Ii0tPgotPCEtLUVOVElUWSBiTm90ICImI3gyQUVEOyItLT4KLTwhLS1FTlRJVFkgcm5t
aWQgIiYjeDJBRUU7Ii0tPgotPCEtLUVOVElUWSBjaXJtaWQgIiYjeDJBRUY7Ii0tPgotPCEtLUVO
VElUWSBtaWRjaXIgIiYjeDJBRjA7Ii0tPgotPCEtLUVOVElUWSB0b3BjaXIgIiYjeDJBRjE7Ii0t
PgotPCEtLUVOVElUWSBuaHBhciAiJiN4MkFGMjsiLS0+Ci08IS0tRU5USVRZIHBhcnNpbSAiJiN4
MkFGMzsiLS0+Ci08IS0tRU5USVRZIHBhcnNsICImI3gyQUZEOyItLT4KLTwhLS1FTlRJVFkgbnBh
cnNsICImI3gyQUZEOyYjeDIwRTU7Ii0tPgotPCEtLUVOVElUWSBmZmxpZyAiJiN4RkIwMDsiLS0+
Ci08IS0tRU5USVRZIGZpbGlnICImI3hGQjAxOyItLT4KLTwhLS1FTlRJVFkgZmxsaWcgIiYjeEZC
MDI7Ii0tPgotPCEtLUVOVElUWSBmZmlsaWcgIiYjeEZCMDM7Ii0tPgotPCEtLUVOVElUWSBmZmxs
aWcgIiYjeEZCMDQ7Ii0tPgotPCEtLUVOVElUWSBBc2NyICImI3gxRDQ5QzsiLS0+Ci08IS0tRU5U
SVRZIENzY3IgIiYjeDFENDlFOyItLT4KLTwhLS1FTlRJVFkgRHNjciAiJiN4MUQ0OUY7Ii0tPgot
PCEtLUVOVElUWSBHc2NyICImI3gxRDRBMjsiLS0+Ci08IS0tRU5USVRZIEpzY3IgIiYjeDFENEE1
OyItLT4KLTwhLS1FTlRJVFkgS3NjciAiJiN4MUQ0QTY7Ii0tPgotPCEtLUVOVElUWSBOc2NyICIm
I3gxRDRBOTsiLS0+Ci08IS0tRU5USVRZIE9zY3IgIiYjeDFENEFBOyItLT4KLTwhLS1FTlRJVFkg
UHNjciAiJiN4MUQ0QUI7Ii0tPgotPCEtLUVOVElUWSBRc2NyICImI3gxRDRBQzsiLS0+Ci08IS0t
RU5USVRZIFNzY3IgIiYjeDFENEFFOyItLT4KLTwhLS1FTlRJVFkgVHNjciAiJiN4MUQ0QUY7Ii0t
PgotPCEtLUVOVElUWSBVc2NyICImI3gxRDRCMDsiLS0+Ci08IS0tRU5USVRZIFZzY3IgIiYjeDFE
NEIxOyItLT4KLTwhLS1FTlRJVFkgV3NjciAiJiN4MUQ0QjI7Ii0tPgotPCEtLUVOVElUWSBYc2Ny
ICImI3gxRDRCMzsiLS0+Ci08IS0tRU5USVRZIFlzY3IgIiYjeDFENEI0OyItLT4KLTwhLS1FTlRJ
VFkgWnNjciAiJiN4MUQ0QjU7Ii0tPgotPCEtLUVOVElUWSBhc2NyICImI3gxRDRCNjsiLS0+Ci08
IS0tRU5USVRZIGJzY3IgIiYjeDFENEI3OyItLT4KLTwhLS1FTlRJVFkgY3NjciAiJiN4MUQ0Qjg7
Ii0tPgotPCEtLUVOVElUWSBkc2NyICImI3gxRDRCOTsiLS0+Ci08IS0tRU5USVRZIGZzY3IgIiYj
eDFENEJCOyItLT4KLTwhLS1FTlRJVFkgaHNjciAiJiN4MUQ0QkQ7Ii0tPgotPCEtLUVOVElUWSBp
c2NyICImI3gxRDRCRTsiLS0+Ci08IS0tRU5USVRZIGpzY3IgIiYjeDFENEJGOyItLT4KLTwhLS1F
TlRJVFkga3NjciAiJiN4MUQ0QzA7Ii0tPgotPCEtLUVOVElUWSBsc2NyICImI3gxRDRDMTsiLS0+
Ci08IS0tRU5USVRZIG1zY3IgIiYjeDFENEMyOyItLT4KLTwhLS1FTlRJVFkgbnNjciAiJiN4MUQ0
QzM7Ii0tPgotPCEtLUVOVElUWSBwc2NyICImI3gxRDRDNTsiLS0+Ci08IS0tRU5USVRZIHFzY3Ig
IiYjeDFENEM2OyItLT4KLTwhLS1FTlRJVFkgcnNjciAiJiN4MUQ0Qzc7Ii0tPgotPCEtLUVOVElU
WSBzc2NyICImI3gxRDRDODsiLS0+Ci08IS0tRU5USVRZIHRzY3IgIiYjeDFENEM5OyItLT4KLTwh
LS1FTlRJVFkgdXNjciAiJiN4MUQ0Q0E7Ii0tPgotPCEtLUVOVElUWSB2c2NyICImI3gxRDRDQjsi
LS0+Ci08IS0tRU5USVRZIHdzY3IgIiYjeDFENENDOyItLT4KLTwhLS1FTlRJVFkgeHNjciAiJiN4
MUQ0Q0Q7Ii0tPgotPCEtLUVOVElUWSB5c2NyICImI3gxRDRDRTsiLS0+Ci08IS0tRU5USVRZIHpz
Y3IgIiYjeDFENENGOyItLT4KLTwhLS1FTlRJVFkgQWZyICImI3gxRDUwNDsiLS0+Ci08IS0tRU5U
SVRZIEJmciAiJiN4MUQ1MDU7Ii0tPgotPCEtLUVOVElUWSBEZnIgIiYjeDFENTA3OyItLT4KLTwh
LS1FTlRJVFkgRWZyICImI3gxRDUwODsiLS0+Ci08IS0tRU5USVRZIEZmciAiJiN4MUQ1MDk7Ii0t
PgotPCEtLUVOVElUWSBHZnIgIiYjeDFENTBBOyItLT4KLTwhLS1FTlRJVFkgSmZyICImI3gxRDUw
RDsiLS0+Ci08IS0tRU5USVRZIEtmciAiJiN4MUQ1MEU7Ii0tPgotPCEtLUVOVElUWSBMZnIgIiYj
eDFENTBGOyItLT4KLTwhLS1FTlRJVFkgTWZyICImI3gxRDUxMDsiLS0+Ci08IS0tRU5USVRZIE5m
ciAiJiN4MUQ1MTE7Ii0tPgotPCEtLUVOVElUWSBPZnIgIiYjeDFENTEyOyItLT4KLTwhLS1FTlRJ
VFkgUGZyICImI3gxRDUxMzsiLS0+Ci08IS0tRU5USVRZIFFmciAiJiN4MUQ1MTQ7Ii0tPgotPCEt
LUVOVElUWSBTZnIgIiYjeDFENTE2OyItLT4KLTwhLS1FTlRJVFkgVGZyICImI3gxRDUxNzsiLS0+
Ci08IS0tRU5USVRZIFVmciAiJiN4MUQ1MTg7Ii0tPgotPCEtLUVOVElUWSBWZnIgIiYjeDFENTE5
OyItLT4KLTwhLS1FTlRJVFkgV2ZyICImI3gxRDUxQTsiLS0+Ci08IS0tRU5USVRZIFhmciAiJiN4
MUQ1MUI7Ii0tPgotPCEtLUVOVElUWSBZZnIgIiYjeDFENTFDOyItLT4KLTwhLS1FTlRJVFkgYWZy
ICImI3gxRDUxRTsiLS0+Ci08IS0tRU5USVRZIGJmciAiJiN4MUQ1MUY7Ii0tPgotPCEtLUVOVElU
WSBjZnIgIiYjeDFENTIwOyItLT4KLTwhLS1FTlRJVFkgZGZyICImI3gxRDUyMTsiLS0+Ci08IS0t
RU5USVRZIGVmciAiJiN4MUQ1MjI7Ii0tPgotPCEtLUVOVElUWSBmZnIgIiYjeDFENTIzOyItLT4K
LTwhLS1FTlRJVFkgZ2ZyICImI3gxRDUyNDsiLS0+Ci08IS0tRU5USVRZIGhmciAiJiN4MUQ1MjU7
Ii0tPgotPCEtLUVOVElUWSBpZnIgIiYjeDFENTI2OyItLT4KLTwhLS1FTlRJVFkgamZyICImI3gx
RDUyNzsiLS0+Ci08IS0tRU5USVRZIGtmciAiJiN4MUQ1Mjg7Ii0tPgotPCEtLUVOVElUWSBsZnIg
IiYjeDFENTI5OyItLT4KLTwhLS1FTlRJVFkgbWZyICImI3gxRDUyQTsiLS0+Ci08IS0tRU5USVRZ
IG5mciAiJiN4MUQ1MkI7Ii0tPgotPCEtLUVOVElUWSBvZnIgIiYjeDFENTJDOyItLT4KLTwhLS1F
TlRJVFkgcGZyICImI3gxRDUyRDsiLS0+Ci08IS0tRU5USVRZIHFmciAiJiN4MUQ1MkU7Ii0tPgot
PCEtLUVOVElUWSByZnIgIiYjeDFENTJGOyItLT4KLTwhLS1FTlRJVFkgc2ZyICImI3gxRDUzMDsi
LS0+Ci08IS0tRU5USVRZIHRmciAiJiN4MUQ1MzE7Ii0tPgotPCEtLUVOVElUWSB1ZnIgIiYjeDFE
NTMyOyItLT4KLTwhLS1FTlRJVFkgdmZyICImI3gxRDUzMzsiLS0+Ci08IS0tRU5USVRZIHdmciAi
JiN4MUQ1MzQ7Ii0tPgotPCEtLUVOVElUWSB4ZnIgIiYjeDFENTM1OyItLT4KLTwhLS1FTlRJVFkg
eWZyICImI3gxRDUzNjsiLS0+Ci08IS0tRU5USVRZIHpmciAiJiN4MUQ1Mzc7Ii0tPgotPCEtLUVO
VElUWSBBb3BmICImI3gxRDUzODsiLS0+Ci08IS0tRU5USVRZIEJvcGYgIiYjeDFENTM5OyItLT4K
LTwhLS1FTlRJVFkgRG9wZiAiJiN4MUQ1M0I7Ii0tPgotPCEtLUVOVElUWSBFb3BmICImI3gxRDUz
QzsiLS0+Ci08IS0tRU5USVRZIEZvcGYgIiYjeDFENTNEOyItLT4KLTwhLS1FTlRJVFkgR29wZiAi
JiN4MUQ1M0U7Ii0tPgotPCEtLUVOVElUWSBJb3BmICImI3gxRDU0MDsiLS0+Ci08IS0tRU5USVRZ
IEpvcGYgIiYjeDFENTQxOyItLT4KLTwhLS1FTlRJVFkgS29wZiAiJiN4MUQ1NDI7Ii0tPgotPCEt
LUVOVElUWSBMb3BmICImI3gxRDU0MzsiLS0+Ci08IS0tRU5USVRZIE1vcGYgIiYjeDFENTQ0OyIt
LT4KLTwhLS1FTlRJVFkgT29wZiAiJiN4MUQ1NDY7Ii0tPgotPCEtLUVOVElUWSBTb3BmICImI3gx
RDU0QTsiLS0+Ci08IS0tRU5USVRZIFRvcGYgIiYjeDFENTRCOyItLT4KLTwhLS1FTlRJVFkgVW9w
ZiAiJiN4MUQ1NEM7Ii0tPgotPCEtLUVOVElUWSBWb3BmICImI3gxRDU0RDsiLS0+Ci08IS0tRU5U
SVRZIFdvcGYgIiYjeDFENTRFOyItLT4KLTwhLS1FTlRJVFkgWG9wZiAiJiN4MUQ1NEY7Ii0tPgot
PCEtLUVOVElUWSBZb3BmICImI3gxRDU1MDsiLS0+Ci08IS0tRU5USVRZIGFvcGYgIiYjeDFENTUy
OyItLT4KLTwhLS1FTlRJVFkgYm9wZiAiJiN4MUQ1NTM7Ii0tPgotPCEtLUVOVElUWSBjb3BmICIm
I3gxRDU1NDsiLS0+Ci08IS0tRU5USVRZIGRvcGYgIiYjeDFENTU1OyItLT4KLTwhLS1FTlRJVFkg
ZW9wZiAiJiN4MUQ1NTY7Ii0tPgotPCEtLUVOVElUWSBmb3BmICImI3gxRDU1NzsiLS0+Ci08IS0t
RU5USVRZIGdvcGYgIiYjeDFENTU4OyItLT4KLTwhLS1FTlRJVFkgaG9wZiAiJiN4MUQ1NTk7Ii0t
PgotPCEtLUVOVElUWSBpb3BmICImI3gxRDU1QTsiLS0+Ci08IS0tRU5USVRZIGpvcGYgIiYjeDFE
NTVCOyItLT4KLTwhLS1FTlRJVFkga29wZiAiJiN4MUQ1NUM7Ii0tPgotPCEtLUVOVElUWSBsb3Bm
ICImI3gxRDU1RDsiLS0+Ci08IS0tRU5USVRZIG1vcGYgIiYjeDFENTVFOyItLT4KLTwhLS1FTlRJ
VFkgbm9wZiAiJiN4MUQ1NUY7Ii0tPgotPCEtLUVOVElUWSBvb3BmICImI3gxRDU2MDsiLS0+Ci08
IS0tRU5USVRZIHBvcGYgIiYjeDFENTYxOyItLT4KLTwhLS1FTlRJVFkgcW9wZiAiJiN4MUQ1NjI7
Ii0tPgotPCEtLUVOVElUWSByb3BmICImI3gxRDU2MzsiLS0+Ci08IS0tRU5USVRZIHNvcGYgIiYj
eDFENTY0OyItLT4KLTwhLS1FTlRJVFkgdG9wZiAiJiN4MUQ1NjU7Ii0tPgotPCEtLUVOVElUWSB1
b3BmICImI3gxRDU2NjsiLS0+Ci08IS0tRU5USVRZIHZvcGYgIiYjeDFENTY3OyItLT4KLTwhLS1F
TlRJVFkgd29wZiAiJiN4MUQ1Njg7Ii0tPgotPCEtLUVOVElUWSB4b3BmICImI3gxRDU2OTsiLS0+
Ci08IS0tRU5USVRZIHlvcGYgIiYjeDFENTZBOyItLT4KLTwhLS1FTlRJVFkgem9wZiAiJiN4MUQ1
NkI7Ii0tPgorPCFFTlRJVFkgVGFiICImI3g5OyI+Cis8IUVOVElUWSBOZXdMaW5lICImI3hBOyI+
Cis8IUVOVElUWSBleGNsICImI3gyMTsiPgorPCFFTlRJVFkgcXVvdCAiJiN4MjI7Ij4KKzwhRU5U
SVRZIFFVT1QgIiYjeDIyOyI+Cis8IUVOVElUWSBudW0gIiYjeDIzOyI+Cis8IUVOVElUWSBkb2xs
YXIgIiYjeDI0OyI+Cis8IUVOVElUWSBwZXJjbnQgIiYjeDI1OyI+Cis8IUVOVElUWSBhbXAgIiYj
eDI2OyN4MjY7Ij4KKzwhRU5USVRZIEFNUCAiJiN4MjY7I3gyNjsiPgorPCFFTlRJVFkgYXBvcyAi
JiN4Mjc7Ij4KKzwhRU5USVRZIGxwYXIgIiYjeDI4OyI+Cis8IUVOVElUWSBycGFyICImI3gyOTsi
PgorPCFFTlRJVFkgYXN0ICImI3gyQTsiPgorPCFFTlRJVFkgbWlkYXN0ICImI3gyQTsiPgorPCFF
TlRJVFkgcGx1cyAiJiN4MkI7Ij4KKzwhRU5USVRZIGNvbW1hICImI3gyQzsiPgorPCFFTlRJVFkg
cGVyaW9kICImI3gyRTsiPgorPCFFTlRJVFkgc29sICImI3gyRjsiPgorPCFFTlRJVFkgY29sb24g
IiYjeDNBOyI+Cis8IUVOVElUWSBzZW1pICImI3gzQjsiPgorPCFFTlRJVFkgbHQgIiYjeDI2OyN4
M0M7Ij4KKzwhRU5USVRZIExUICImI3gyNjsjeDNDOyI+Cis8IUVOVElUWSBudmx0ICImI3gyNjsj
eDNDOyYjeDIwRDI7Ij4KKzwhRU5USVRZIGVxdWFscyAiJiN4M0Q7Ij4KKzwhRU5USVRZIGJuZSAi
JiN4M0Q7JiN4MjBFNTsiPgorPCFFTlRJVFkgZ3QgIiYjeDNFOyI+Cis8IUVOVElUWSBHVCAiJiN4
M0U7Ij4KKzwhRU5USVRZIG52Z3QgIiYjeDNFOyYjeDIwRDI7Ij4KKzwhRU5USVRZIHF1ZXN0ICIm
I3gzRjsiPgorPCFFTlRJVFkgY29tbWF0ICImI3g0MDsiPgorPCFFTlRJVFkgbHNxYiAiJiN4NUI7
Ij4KKzwhRU5USVRZIGxicmFjayAiJiN4NUI7Ij4KKzwhRU5USVRZIGJzb2wgIiYjeDVDOyI+Cis8
IUVOVElUWSByc3FiICImI3g1RDsiPgorPCFFTlRJVFkgcmJyYWNrICImI3g1RDsiPgorPCFFTlRJ
VFkgSGF0ICImI3g1RTsiPgorPCFFTlRJVFkgbG93YmFyICImI3g1RjsiPgorPCFFTlRJVFkgVW5k
ZXJCYXIgIiYjeDVGOyI+Cis8IUVOVElUWSBncmF2ZSAiJiN4NjA7Ij4KKzwhRU5USVRZIERpYWNy
aXRpY2FsR3JhdmUgIiYjeDYwOyI+Cis8IUVOVElUWSBmamxpZyAiJiN4NjY7JiN4NkE7Ij4KKzwh
RU5USVRZIGxjdWIgIiYjeDdCOyI+Cis8IUVOVElUWSBsYnJhY2UgIiYjeDdCOyI+Cis8IUVOVElU
WSB2ZXJiYXIgIiYjeDdDOyI+Cis8IUVOVElUWSB2ZXJ0ICImI3g3QzsiPgorPCFFTlRJVFkgVmVy
dGljYWxMaW5lICImI3g3QzsiPgorPCFFTlRJVFkgcmN1YiAiJiN4N0Q7Ij4KKzwhRU5USVRZIHJi
cmFjZSAiJiN4N0Q7Ij4KKzwhRU5USVRZIG5ic3AgIiYjeEEwOyI+Cis8IUVOVElUWSBOb25CcmVh
a2luZ1NwYWNlICImI3hBMDsiPgorPCFFTlRJVFkgaWV4Y2wgIiYjeEExOyI+Cis8IUVOVElUWSBj
ZW50ICImI3hBMjsiPgorPCFFTlRJVFkgcG91bmQgIiYjeEEzOyI+Cis8IUVOVElUWSBjdXJyZW4g
IiYjeEE0OyI+Cis8IUVOVElUWSB5ZW4gIiYjeEE1OyI+Cis8IUVOVElUWSBicnZiYXIgIiYjeEE2
OyI+Cis8IUVOVElUWSBzZWN0ICImI3hBNzsiPgorPCFFTlRJVFkgRG90ICImI3hBODsiPgorPCFF
TlRJVFkgZGllICImI3hBODsiPgorPCFFTlRJVFkgRG91YmxlRG90ICImI3hBODsiPgorPCFFTlRJ
VFkgdW1sICImI3hBODsiPgorPCFFTlRJVFkgY29weSAiJiN4QTk7Ij4KKzwhRU5USVRZIENPUFkg
IiYjeEE5OyI+Cis8IUVOVElUWSBvcmRmICImI3hBQTsiPgorPCFFTlRJVFkgbGFxdW8gIiYjeEFC
OyI+Cis8IUVOVElUWSBub3QgIiYjeEFDOyI+Cis8IUVOVElUWSBzaHkgIiYjeEFEOyI+Cis8IUVO
VElUWSByZWcgIiYjeEFFOyI+Cis8IUVOVElUWSBjaXJjbGVkUiAiJiN4QUU7Ij4KKzwhRU5USVRZ
IFJFRyAiJiN4QUU7Ij4KKzwhRU5USVRZIG1hY3IgIiYjeEFGOyI+Cis8IUVOVElUWSBzdHJucyAi
JiN4QUY7Ij4KKzwhRU5USVRZIGRlZyAiJiN4QjA7Ij4KKzwhRU5USVRZIHBsdXNtbiAiJiN4QjE7
Ij4KKzwhRU5USVRZIHBtICImI3hCMTsiPgorPCFFTlRJVFkgUGx1c01pbnVzICImI3hCMTsiPgor
PCFFTlRJVFkgc3VwMiAiJiN4QjI7Ij4KKzwhRU5USVRZIHN1cDMgIiYjeEIzOyI+Cis8IUVOVElU
WSBhY3V0ZSAiJiN4QjQ7Ij4KKzwhRU5USVRZIERpYWNyaXRpY2FsQWN1dGUgIiYjeEI0OyI+Cis8
IUVOVElUWSBtaWNybyAiJiN4QjU7Ij4KKzwhRU5USVRZIHBhcmEgIiYjeEI2OyI+Cis8IUVOVElU
WSBtaWRkb3QgIiYjeEI3OyI+Cis8IUVOVElUWSBjZW50ZXJkb3QgIiYjeEI3OyI+Cis8IUVOVElU
WSBDZW50ZXJEb3QgIiYjeEI3OyI+Cis8IUVOVElUWSBjZWRpbCAiJiN4Qjg7Ij4KKzwhRU5USVRZ
IENlZGlsbGEgIiYjeEI4OyI+Cis8IUVOVElUWSBzdXAxICImI3hCOTsiPgorPCFFTlRJVFkgb3Jk
bSAiJiN4QkE7Ij4KKzwhRU5USVRZIHJhcXVvICImI3hCQjsiPgorPCFFTlRJVFkgZnJhYzE0ICIm
I3hCQzsiPgorPCFFTlRJVFkgZnJhYzEyICImI3hCRDsiPgorPCFFTlRJVFkgaGFsZiAiJiN4QkQ7
Ij4KKzwhRU5USVRZIGZyYWMzNCAiJiN4QkU7Ij4KKzwhRU5USVRZIGlxdWVzdCAiJiN4QkY7Ij4K
KzwhRU5USVRZIEFncmF2ZSAiJiN4QzA7Ij4KKzwhRU5USVRZIEFhY3V0ZSAiJiN4QzE7Ij4KKzwh
RU5USVRZIEFjaXJjICImI3hDMjsiPgorPCFFTlRJVFkgQXRpbGRlICImI3hDMzsiPgorPCFFTlRJ
VFkgQXVtbCAiJiN4QzQ7Ij4KKzwhRU5USVRZIEFyaW5nICImI3hDNTsiPgorPCFFTlRJVFkgYW5n
c3QgIiYjeEM1OyI+Cis8IUVOVElUWSBBRWxpZyAiJiN4QzY7Ij4KKzwhRU5USVRZIENjZWRpbCAi
JiN4Qzc7Ij4KKzwhRU5USVRZIEVncmF2ZSAiJiN4Qzg7Ij4KKzwhRU5USVRZIEVhY3V0ZSAiJiN4
Qzk7Ij4KKzwhRU5USVRZIEVjaXJjICImI3hDQTsiPgorPCFFTlRJVFkgRXVtbCAiJiN4Q0I7Ij4K
KzwhRU5USVRZIElncmF2ZSAiJiN4Q0M7Ij4KKzwhRU5USVRZIElhY3V0ZSAiJiN4Q0Q7Ij4KKzwh
RU5USVRZIEljaXJjICImI3hDRTsiPgorPCFFTlRJVFkgSXVtbCAiJiN4Q0Y7Ij4KKzwhRU5USVRZ
IEVUSCAiJiN4RDA7Ij4KKzwhRU5USVRZIE50aWxkZSAiJiN4RDE7Ij4KKzwhRU5USVRZIE9ncmF2
ZSAiJiN4RDI7Ij4KKzwhRU5USVRZIE9hY3V0ZSAiJiN4RDM7Ij4KKzwhRU5USVRZIE9jaXJjICIm
I3hENDsiPgorPCFFTlRJVFkgT3RpbGRlICImI3hENTsiPgorPCFFTlRJVFkgT3VtbCAiJiN4RDY7
Ij4KKzwhRU5USVRZIHRpbWVzICImI3hENzsiPgorPCFFTlRJVFkgT3NsYXNoICImI3hEODsiPgor
PCFFTlRJVFkgVWdyYXZlICImI3hEOTsiPgorPCFFTlRJVFkgVWFjdXRlICImI3hEQTsiPgorPCFF
TlRJVFkgVWNpcmMgIiYjeERCOyI+Cis8IUVOVElUWSBVdW1sICImI3hEQzsiPgorPCFFTlRJVFkg
WWFjdXRlICImI3hERDsiPgorPCFFTlRJVFkgVEhPUk4gIiYjeERFOyI+Cis8IUVOVElUWSBzemxp
ZyAiJiN4REY7Ij4KKzwhRU5USVRZIGFncmF2ZSAiJiN4RTA7Ij4KKzwhRU5USVRZIGFhY3V0ZSAi
JiN4RTE7Ij4KKzwhRU5USVRZIGFjaXJjICImI3hFMjsiPgorPCFFTlRJVFkgYXRpbGRlICImI3hF
MzsiPgorPCFFTlRJVFkgYXVtbCAiJiN4RTQ7Ij4KKzwhRU5USVRZIGFyaW5nICImI3hFNTsiPgor
PCFFTlRJVFkgYWVsaWcgIiYjeEU2OyI+Cis8IUVOVElUWSBjY2VkaWwgIiYjeEU3OyI+Cis8IUVO
VElUWSBlZ3JhdmUgIiYjeEU4OyI+Cis8IUVOVElUWSBlYWN1dGUgIiYjeEU5OyI+Cis8IUVOVElU
WSBlY2lyYyAiJiN4RUE7Ij4KKzwhRU5USVRZIGV1bWwgIiYjeEVCOyI+Cis8IUVOVElUWSBpZ3Jh
dmUgIiYjeEVDOyI+Cis8IUVOVElUWSBpYWN1dGUgIiYjeEVEOyI+Cis8IUVOVElUWSBpY2lyYyAi
JiN4RUU7Ij4KKzwhRU5USVRZIGl1bWwgIiYjeEVGOyI+Cis8IUVOVElUWSBldGggIiYjeEYwOyI+
Cis8IUVOVElUWSBudGlsZGUgIiYjeEYxOyI+Cis8IUVOVElUWSBvZ3JhdmUgIiYjeEYyOyI+Cis8
IUVOVElUWSBvYWN1dGUgIiYjeEYzOyI+Cis8IUVOVElUWSBvY2lyYyAiJiN4RjQ7Ij4KKzwhRU5U
SVRZIG90aWxkZSAiJiN4RjU7Ij4KKzwhRU5USVRZIG91bWwgIiYjeEY2OyI+Cis8IUVOVElUWSBk
aXZpZGUgIiYjeEY3OyI+Cis8IUVOVElUWSBkaXYgIiYjeEY3OyI+Cis8IUVOVElUWSBvc2xhc2gg
IiYjeEY4OyI+Cis8IUVOVElUWSB1Z3JhdmUgIiYjeEY5OyI+Cis8IUVOVElUWSB1YWN1dGUgIiYj
eEZBOyI+Cis8IUVOVElUWSB1Y2lyYyAiJiN4RkI7Ij4KKzwhRU5USVRZIHV1bWwgIiYjeEZDOyI+
Cis8IUVOVElUWSB5YWN1dGUgIiYjeEZEOyI+Cis8IUVOVElUWSB0aG9ybiAiJiN4RkU7Ij4KKzwh
RU5USVRZIHl1bWwgIiYjeEZGOyI+Cis8IUVOVElUWSBBbWFjciAiJiN4MTAwOyI+Cis8IUVOVElU
WSBhbWFjciAiJiN4MTAxOyI+Cis8IUVOVElUWSBBYnJldmUgIiYjeDEwMjsiPgorPCFFTlRJVFkg
YWJyZXZlICImI3gxMDM7Ij4KKzwhRU5USVRZIEFvZ29uICImI3gxMDQ7Ij4KKzwhRU5USVRZIGFv
Z29uICImI3gxMDU7Ij4KKzwhRU5USVRZIENhY3V0ZSAiJiN4MTA2OyI+Cis8IUVOVElUWSBjYWN1
dGUgIiYjeDEwNzsiPgorPCFFTlRJVFkgQ2NpcmMgIiYjeDEwODsiPgorPCFFTlRJVFkgY2NpcmMg
IiYjeDEwOTsiPgorPCFFTlRJVFkgQ2RvdCAiJiN4MTBBOyI+Cis8IUVOVElUWSBjZG90ICImI3gx
MEI7Ij4KKzwhRU5USVRZIENjYXJvbiAiJiN4MTBDOyI+Cis8IUVOVElUWSBjY2Fyb24gIiYjeDEw
RDsiPgorPCFFTlRJVFkgRGNhcm9uICImI3gxMEU7Ij4KKzwhRU5USVRZIGRjYXJvbiAiJiN4MTBG
OyI+Cis8IUVOVElUWSBEc3Ryb2sgIiYjeDExMDsiPgorPCFFTlRJVFkgZHN0cm9rICImI3gxMTE7
Ij4KKzwhRU5USVRZIEVtYWNyICImI3gxMTI7Ij4KKzwhRU5USVRZIGVtYWNyICImI3gxMTM7Ij4K
KzwhRU5USVRZIEVkb3QgIiYjeDExNjsiPgorPCFFTlRJVFkgZWRvdCAiJiN4MTE3OyI+Cis8IUVO
VElUWSBFb2dvbiAiJiN4MTE4OyI+Cis8IUVOVElUWSBlb2dvbiAiJiN4MTE5OyI+Cis8IUVOVElU
WSBFY2Fyb24gIiYjeDExQTsiPgorPCFFTlRJVFkgZWNhcm9uICImI3gxMUI7Ij4KKzwhRU5USVRZ
IEdjaXJjICImI3gxMUM7Ij4KKzwhRU5USVRZIGdjaXJjICImI3gxMUQ7Ij4KKzwhRU5USVRZIEdi
cmV2ZSAiJiN4MTFFOyI+Cis8IUVOVElUWSBnYnJldmUgIiYjeDExRjsiPgorPCFFTlRJVFkgR2Rv
dCAiJiN4MTIwOyI+Cis8IUVOVElUWSBnZG90ICImI3gxMjE7Ij4KKzwhRU5USVRZIEdjZWRpbCAi
JiN4MTIyOyI+Cis8IUVOVElUWSBIY2lyYyAiJiN4MTI0OyI+Cis8IUVOVElUWSBoY2lyYyAiJiN4
MTI1OyI+Cis8IUVOVElUWSBIc3Ryb2sgIiYjeDEyNjsiPgorPCFFTlRJVFkgaHN0cm9rICImI3gx
Mjc7Ij4KKzwhRU5USVRZIEl0aWxkZSAiJiN4MTI4OyI+Cis8IUVOVElUWSBpdGlsZGUgIiYjeDEy
OTsiPgorPCFFTlRJVFkgSW1hY3IgIiYjeDEyQTsiPgorPCFFTlRJVFkgaW1hY3IgIiYjeDEyQjsi
PgorPCFFTlRJVFkgSW9nb24gIiYjeDEyRTsiPgorPCFFTlRJVFkgaW9nb24gIiYjeDEyRjsiPgor
PCFFTlRJVFkgSWRvdCAiJiN4MTMwOyI+Cis8IUVOVElUWSBpbWF0aCAiJiN4MTMxOyI+Cis8IUVO
VElUWSBpbm9kb3QgIiYjeDEzMTsiPgorPCFFTlRJVFkgSUpsaWcgIiYjeDEzMjsiPgorPCFFTlRJ
VFkgaWpsaWcgIiYjeDEzMzsiPgorPCFFTlRJVFkgSmNpcmMgIiYjeDEzNDsiPgorPCFFTlRJVFkg
amNpcmMgIiYjeDEzNTsiPgorPCFFTlRJVFkgS2NlZGlsICImI3gxMzY7Ij4KKzwhRU5USVRZIGtj
ZWRpbCAiJiN4MTM3OyI+Cis8IUVOVElUWSBrZ3JlZW4gIiYjeDEzODsiPgorPCFFTlRJVFkgTGFj
dXRlICImI3gxMzk7Ij4KKzwhRU5USVRZIGxhY3V0ZSAiJiN4MTNBOyI+Cis8IUVOVElUWSBMY2Vk
aWwgIiYjeDEzQjsiPgorPCFFTlRJVFkgbGNlZGlsICImI3gxM0M7Ij4KKzwhRU5USVRZIExjYXJv
biAiJiN4MTNEOyI+Cis8IUVOVElUWSBsY2Fyb24gIiYjeDEzRTsiPgorPCFFTlRJVFkgTG1pZG90
ICImI3gxM0Y7Ij4KKzwhRU5USVRZIGxtaWRvdCAiJiN4MTQwOyI+Cis8IUVOVElUWSBMc3Ryb2sg
IiYjeDE0MTsiPgorPCFFTlRJVFkgbHN0cm9rICImI3gxNDI7Ij4KKzwhRU5USVRZIE5hY3V0ZSAi
JiN4MTQzOyI+Cis8IUVOVElUWSBuYWN1dGUgIiYjeDE0NDsiPgorPCFFTlRJVFkgTmNlZGlsICIm
I3gxNDU7Ij4KKzwhRU5USVRZIG5jZWRpbCAiJiN4MTQ2OyI+Cis8IUVOVElUWSBOY2Fyb24gIiYj
eDE0NzsiPgorPCFFTlRJVFkgbmNhcm9uICImI3gxNDg7Ij4KKzwhRU5USVRZIG5hcG9zICImI3gx
NDk7Ij4KKzwhRU5USVRZIEVORyAiJiN4MTRBOyI+Cis8IUVOVElUWSBlbmcgIiYjeDE0QjsiPgor
PCFFTlRJVFkgT21hY3IgIiYjeDE0QzsiPgorPCFFTlRJVFkgb21hY3IgIiYjeDE0RDsiPgorPCFF
TlRJVFkgT2RibGFjICImI3gxNTA7Ij4KKzwhRU5USVRZIG9kYmxhYyAiJiN4MTUxOyI+Cis8IUVO
VElUWSBPRWxpZyAiJiN4MTUyOyI+Cis8IUVOVElUWSBvZWxpZyAiJiN4MTUzOyI+Cis8IUVOVElU
WSBSYWN1dGUgIiYjeDE1NDsiPgorPCFFTlRJVFkgcmFjdXRlICImI3gxNTU7Ij4KKzwhRU5USVRZ
IFJjZWRpbCAiJiN4MTU2OyI+Cis8IUVOVElUWSByY2VkaWwgIiYjeDE1NzsiPgorPCFFTlRJVFkg
UmNhcm9uICImI3gxNTg7Ij4KKzwhRU5USVRZIHJjYXJvbiAiJiN4MTU5OyI+Cis8IUVOVElUWSBT
YWN1dGUgIiYjeDE1QTsiPgorPCFFTlRJVFkgc2FjdXRlICImI3gxNUI7Ij4KKzwhRU5USVRZIFNj
aXJjICImI3gxNUM7Ij4KKzwhRU5USVRZIHNjaXJjICImI3gxNUQ7Ij4KKzwhRU5USVRZIFNjZWRp
bCAiJiN4MTVFOyI+Cis8IUVOVElUWSBzY2VkaWwgIiYjeDE1RjsiPgorPCFFTlRJVFkgU2Nhcm9u
ICImI3gxNjA7Ij4KKzwhRU5USVRZIHNjYXJvbiAiJiN4MTYxOyI+Cis8IUVOVElUWSBUY2VkaWwg
IiYjeDE2MjsiPgorPCFFTlRJVFkgdGNlZGlsICImI3gxNjM7Ij4KKzwhRU5USVRZIFRjYXJvbiAi
JiN4MTY0OyI+Cis8IUVOVElUWSB0Y2Fyb24gIiYjeDE2NTsiPgorPCFFTlRJVFkgVHN0cm9rICIm
I3gxNjY7Ij4KKzwhRU5USVRZIHRzdHJvayAiJiN4MTY3OyI+Cis8IUVOVElUWSBVdGlsZGUgIiYj
eDE2ODsiPgorPCFFTlRJVFkgdXRpbGRlICImI3gxNjk7Ij4KKzwhRU5USVRZIFVtYWNyICImI3gx
NkE7Ij4KKzwhRU5USVRZIHVtYWNyICImI3gxNkI7Ij4KKzwhRU5USVRZIFVicmV2ZSAiJiN4MTZD
OyI+Cis8IUVOVElUWSB1YnJldmUgIiYjeDE2RDsiPgorPCFFTlRJVFkgVXJpbmcgIiYjeDE2RTsi
PgorPCFFTlRJVFkgdXJpbmcgIiYjeDE2RjsiPgorPCFFTlRJVFkgVWRibGFjICImI3gxNzA7Ij4K
KzwhRU5USVRZIHVkYmxhYyAiJiN4MTcxOyI+Cis8IUVOVElUWSBVb2dvbiAiJiN4MTcyOyI+Cis8
IUVOVElUWSB1b2dvbiAiJiN4MTczOyI+Cis8IUVOVElUWSBXY2lyYyAiJiN4MTc0OyI+Cis8IUVO
VElUWSB3Y2lyYyAiJiN4MTc1OyI+Cis8IUVOVElUWSBZY2lyYyAiJiN4MTc2OyI+Cis8IUVOVElU
WSB5Y2lyYyAiJiN4MTc3OyI+Cis8IUVOVElUWSBZdW1sICImI3gxNzg7Ij4KKzwhRU5USVRZIFph
Y3V0ZSAiJiN4MTc5OyI+Cis8IUVOVElUWSB6YWN1dGUgIiYjeDE3QTsiPgorPCFFTlRJVFkgWmRv
dCAiJiN4MTdCOyI+Cis8IUVOVElUWSB6ZG90ICImI3gxN0M7Ij4KKzwhRU5USVRZIFpjYXJvbiAi
JiN4MTdEOyI+Cis8IUVOVElUWSB6Y2Fyb24gIiYjeDE3RTsiPgorPCFFTlRJVFkgZm5vZiAiJiN4
MTkyOyI+Cis8IUVOVElUWSBpbXBlZCAiJiN4MUI1OyI+Cis8IUVOVElUWSBnYWN1dGUgIiYjeDFG
NTsiPgorPCFFTlRJVFkgam1hdGggIiYjeDIzNzsiPgorPCFFTlRJVFkgY2lyYyAiJiN4MkM2OyI+
Cis8IUVOVElUWSBjYXJvbiAiJiN4MkM3OyI+Cis8IUVOVElUWSBIYWNlayAiJiN4MkM3OyI+Cis8
IUVOVElUWSBicmV2ZSAiJiN4MkQ4OyI+Cis8IUVOVElUWSBCcmV2ZSAiJiN4MkQ4OyI+Cis8IUVO
VElUWSBkb3QgIiYjeDJEOTsiPgorPCFFTlRJVFkgRGlhY3JpdGljYWxEb3QgIiYjeDJEOTsiPgor
PCFFTlRJVFkgcmluZyAiJiN4MkRBOyI+Cis8IUVOVElUWSBvZ29uICImI3gyREI7Ij4KKzwhRU5U
SVRZIHRpbGRlICImI3gyREM7Ij4KKzwhRU5USVRZIERpYWNyaXRpY2FsVGlsZGUgIiYjeDJEQzsi
PgorPCFFTlRJVFkgZGJsYWMgIiYjeDJERDsiPgorPCFFTlRJVFkgRGlhY3JpdGljYWxEb3VibGVB
Y3V0ZSAiJiN4MkREOyI+Cis8IUVOVElUWSBEb3duQnJldmUgIiYjeDMxMTsiPgorPCFFTlRJVFkg
QWxwaGEgIiYjeDM5MTsiPgorPCFFTlRJVFkgQmV0YSAiJiN4MzkyOyI+Cis8IUVOVElUWSBHYW1t
YSAiJiN4MzkzOyI+Cis8IUVOVElUWSBEZWx0YSAiJiN4Mzk0OyI+Cis8IUVOVElUWSBFcHNpbG9u
ICImI3gzOTU7Ij4KKzwhRU5USVRZIFpldGEgIiYjeDM5NjsiPgorPCFFTlRJVFkgRXRhICImI3gz
OTc7Ij4KKzwhRU5USVRZIFRoZXRhICImI3gzOTg7Ij4KKzwhRU5USVRZIElvdGEgIiYjeDM5OTsi
PgorPCFFTlRJVFkgS2FwcGEgIiYjeDM5QTsiPgorPCFFTlRJVFkgTGFtYmRhICImI3gzOUI7Ij4K
KzwhRU5USVRZIE11ICImI3gzOUM7Ij4KKzwhRU5USVRZIE51ICImI3gzOUQ7Ij4KKzwhRU5USVRZ
IFhpICImI3gzOUU7Ij4KKzwhRU5USVRZIE9taWNyb24gIiYjeDM5RjsiPgorPCFFTlRJVFkgUGkg
IiYjeDNBMDsiPgorPCFFTlRJVFkgUmhvICImI3gzQTE7Ij4KKzwhRU5USVRZIFNpZ21hICImI3gz
QTM7Ij4KKzwhRU5USVRZIFRhdSAiJiN4M0E0OyI+Cis8IUVOVElUWSBVcHNpbG9uICImI3gzQTU7
Ij4KKzwhRU5USVRZIFBoaSAiJiN4M0E2OyI+Cis8IUVOVElUWSBDaGkgIiYjeDNBNzsiPgorPCFF
TlRJVFkgUHNpICImI3gzQTg7Ij4KKzwhRU5USVRZIE9tZWdhICImI3gzQTk7Ij4KKzwhRU5USVRZ
IG9obSAiJiN4M0E5OyI+Cis8IUVOVElUWSBhbHBoYSAiJiN4M0IxOyI+Cis8IUVOVElUWSBiZXRh
ICImI3gzQjI7Ij4KKzwhRU5USVRZIGdhbW1hICImI3gzQjM7Ij4KKzwhRU5USVRZIGRlbHRhICIm
I3gzQjQ7Ij4KKzwhRU5USVRZIGVwc2kgIiYjeDNCNTsiPgorPCFFTlRJVFkgZXBzaWxvbiAiJiN4
M0I1OyI+Cis8IUVOVElUWSB6ZXRhICImI3gzQjY7Ij4KKzwhRU5USVRZIGV0YSAiJiN4M0I3OyI+
Cis8IUVOVElUWSB0aGV0YSAiJiN4M0I4OyI+Cis8IUVOVElUWSBpb3RhICImI3gzQjk7Ij4KKzwh
RU5USVRZIGthcHBhICImI3gzQkE7Ij4KKzwhRU5USVRZIGxhbWJkYSAiJiN4M0JCOyI+Cis8IUVO
VElUWSBtdSAiJiN4M0JDOyI+Cis8IUVOVElUWSBudSAiJiN4M0JEOyI+Cis8IUVOVElUWSB4aSAi
JiN4M0JFOyI+Cis8IUVOVElUWSBvbWljcm9uICImI3gzQkY7Ij4KKzwhRU5USVRZIHBpICImI3gz
QzA7Ij4KKzwhRU5USVRZIHJobyAiJiN4M0MxOyI+Cis8IUVOVElUWSBzaWdtYXYgIiYjeDNDMjsi
PgorPCFFTlRJVFkgdmFyc2lnbWEgIiYjeDNDMjsiPgorPCFFTlRJVFkgc2lnbWFmICImI3gzQzI7
Ij4KKzwhRU5USVRZIHNpZ21hICImI3gzQzM7Ij4KKzwhRU5USVRZIHRhdSAiJiN4M0M0OyI+Cis8
IUVOVElUWSB1cHNpICImI3gzQzU7Ij4KKzwhRU5USVRZIHVwc2lsb24gIiYjeDNDNTsiPgorPCFF
TlRJVFkgcGhpICImI3gzQzY7Ij4KKzwhRU5USVRZIGNoaSAiJiN4M0M3OyI+Cis8IUVOVElUWSBw
c2kgIiYjeDNDODsiPgorPCFFTlRJVFkgb21lZ2EgIiYjeDNDOTsiPgorPCFFTlRJVFkgdGhldGF2
ICImI3gzRDE7Ij4KKzwhRU5USVRZIHZhcnRoZXRhICImI3gzRDE7Ij4KKzwhRU5USVRZIHRoZXRh
c3ltICImI3gzRDE7Ij4KKzwhRU5USVRZIFVwc2kgIiYjeDNEMjsiPgorPCFFTlRJVFkgdXBzaWgg
IiYjeDNEMjsiPgorPCFFTlRJVFkgc3RyYWlnaHRwaGkgIiYjeDNENTsiPgorPCFFTlRJVFkgcGhp
diAiJiN4M0Q1OyI+Cis8IUVOVElUWSB2YXJwaGkgIiYjeDNENTsiPgorPCFFTlRJVFkgcGl2ICIm
I3gzRDY7Ij4KKzwhRU5USVRZIHZhcnBpICImI3gzRDY7Ij4KKzwhRU5USVRZIEdhbW1hZCAiJiN4
M0RDOyI+Cis8IUVOVElUWSBnYW1tYWQgIiYjeDNERDsiPgorPCFFTlRJVFkgZGlnYW1tYSAiJiN4
M0REOyI+Cis8IUVOVElUWSBrYXBwYXYgIiYjeDNGMDsiPgorPCFFTlRJVFkgdmFya2FwcGEgIiYj
eDNGMDsiPgorPCFFTlRJVFkgcmhvdiAiJiN4M0YxOyI+Cis8IUVOVElUWSB2YXJyaG8gIiYjeDNG
MTsiPgorPCFFTlRJVFkgZXBzaXYgIiYjeDNGNTsiPgorPCFFTlRJVFkgc3RyYWlnaHRlcHNpbG9u
ICImI3gzRjU7Ij4KKzwhRU5USVRZIHZhcmVwc2lsb24gIiYjeDNGNTsiPgorPCFFTlRJVFkgYmVw
c2kgIiYjeDNGNjsiPgorPCFFTlRJVFkgYmFja2Vwc2lsb24gIiYjeDNGNjsiPgorPCFFTlRJVFkg
SU9jeSAiJiN4NDAxOyI+Cis8IUVOVElUWSBESmN5ICImI3g0MDI7Ij4KKzwhRU5USVRZIEdKY3kg
IiYjeDQwMzsiPgorPCFFTlRJVFkgSnVrY3kgIiYjeDQwNDsiPgorPCFFTlRJVFkgRFNjeSAiJiN4
NDA1OyI+Cis8IUVOVElUWSBJdWtjeSAiJiN4NDA2OyI+Cis8IUVOVElUWSBZSWN5ICImI3g0MDc7
Ij4KKzwhRU5USVRZIEpzZXJjeSAiJiN4NDA4OyI+Cis8IUVOVElUWSBMSmN5ICImI3g0MDk7Ij4K
KzwhRU5USVRZIE5KY3kgIiYjeDQwQTsiPgorPCFFTlRJVFkgVFNIY3kgIiYjeDQwQjsiPgorPCFF
TlRJVFkgS0pjeSAiJiN4NDBDOyI+Cis8IUVOVElUWSBVYnJjeSAiJiN4NDBFOyI+Cis8IUVOVElU
WSBEWmN5ICImI3g0MEY7Ij4KKzwhRU5USVRZIEFjeSAiJiN4NDEwOyI+Cis8IUVOVElUWSBCY3kg
IiYjeDQxMTsiPgorPCFFTlRJVFkgVmN5ICImI3g0MTI7Ij4KKzwhRU5USVRZIEdjeSAiJiN4NDEz
OyI+Cis8IUVOVElUWSBEY3kgIiYjeDQxNDsiPgorPCFFTlRJVFkgSUVjeSAiJiN4NDE1OyI+Cis8
IUVOVElUWSBaSGN5ICImI3g0MTY7Ij4KKzwhRU5USVRZIFpjeSAiJiN4NDE3OyI+Cis8IUVOVElU
WSBJY3kgIiYjeDQxODsiPgorPCFFTlRJVFkgSmN5ICImI3g0MTk7Ij4KKzwhRU5USVRZIEtjeSAi
JiN4NDFBOyI+Cis8IUVOVElUWSBMY3kgIiYjeDQxQjsiPgorPCFFTlRJVFkgTWN5ICImI3g0MUM7
Ij4KKzwhRU5USVRZIE5jeSAiJiN4NDFEOyI+Cis8IUVOVElUWSBPY3kgIiYjeDQxRTsiPgorPCFF
TlRJVFkgUGN5ICImI3g0MUY7Ij4KKzwhRU5USVRZIFJjeSAiJiN4NDIwOyI+Cis8IUVOVElUWSBT
Y3kgIiYjeDQyMTsiPgorPCFFTlRJVFkgVGN5ICImI3g0MjI7Ij4KKzwhRU5USVRZIFVjeSAiJiN4
NDIzOyI+Cis8IUVOVElUWSBGY3kgIiYjeDQyNDsiPgorPCFFTlRJVFkgS0hjeSAiJiN4NDI1OyI+
Cis8IUVOVElUWSBUU2N5ICImI3g0MjY7Ij4KKzwhRU5USVRZIENIY3kgIiYjeDQyNzsiPgorPCFF
TlRJVFkgU0hjeSAiJiN4NDI4OyI+Cis8IUVOVElUWSBTSENIY3kgIiYjeDQyOTsiPgorPCFFTlRJ
VFkgSEFSRGN5ICImI3g0MkE7Ij4KKzwhRU5USVRZIFljeSAiJiN4NDJCOyI+Cis8IUVOVElUWSBT
T0ZUY3kgIiYjeDQyQzsiPgorPCFFTlRJVFkgRWN5ICImI3g0MkQ7Ij4KKzwhRU5USVRZIFlVY3kg
IiYjeDQyRTsiPgorPCFFTlRJVFkgWUFjeSAiJiN4NDJGOyI+Cis8IUVOVElUWSBhY3kgIiYjeDQz
MDsiPgorPCFFTlRJVFkgYmN5ICImI3g0MzE7Ij4KKzwhRU5USVRZIHZjeSAiJiN4NDMyOyI+Cis8
IUVOVElUWSBnY3kgIiYjeDQzMzsiPgorPCFFTlRJVFkgZGN5ICImI3g0MzQ7Ij4KKzwhRU5USVRZ
IGllY3kgIiYjeDQzNTsiPgorPCFFTlRJVFkgemhjeSAiJiN4NDM2OyI+Cis8IUVOVElUWSB6Y3kg
IiYjeDQzNzsiPgorPCFFTlRJVFkgaWN5ICImI3g0Mzg7Ij4KKzwhRU5USVRZIGpjeSAiJiN4NDM5
OyI+Cis8IUVOVElUWSBrY3kgIiYjeDQzQTsiPgorPCFFTlRJVFkgbGN5ICImI3g0M0I7Ij4KKzwh
RU5USVRZIG1jeSAiJiN4NDNDOyI+Cis8IUVOVElUWSBuY3kgIiYjeDQzRDsiPgorPCFFTlRJVFkg
b2N5ICImI3g0M0U7Ij4KKzwhRU5USVRZIHBjeSAiJiN4NDNGOyI+Cis8IUVOVElUWSByY3kgIiYj
eDQ0MDsiPgorPCFFTlRJVFkgc2N5ICImI3g0NDE7Ij4KKzwhRU5USVRZIHRjeSAiJiN4NDQyOyI+
Cis8IUVOVElUWSB1Y3kgIiYjeDQ0MzsiPgorPCFFTlRJVFkgZmN5ICImI3g0NDQ7Ij4KKzwhRU5U
SVRZIGtoY3kgIiYjeDQ0NTsiPgorPCFFTlRJVFkgdHNjeSAiJiN4NDQ2OyI+Cis8IUVOVElUWSBj
aGN5ICImI3g0NDc7Ij4KKzwhRU5USVRZIHNoY3kgIiYjeDQ0ODsiPgorPCFFTlRJVFkgc2hjaGN5
ICImI3g0NDk7Ij4KKzwhRU5USVRZIGhhcmRjeSAiJiN4NDRBOyI+Cis8IUVOVElUWSB5Y3kgIiYj
eDQ0QjsiPgorPCFFTlRJVFkgc29mdGN5ICImI3g0NEM7Ij4KKzwhRU5USVRZIGVjeSAiJiN4NDRE
OyI+Cis8IUVOVElUWSB5dWN5ICImI3g0NEU7Ij4KKzwhRU5USVRZIHlhY3kgIiYjeDQ0RjsiPgor
PCFFTlRJVFkgaW9jeSAiJiN4NDUxOyI+Cis8IUVOVElUWSBkamN5ICImI3g0NTI7Ij4KKzwhRU5U
SVRZIGdqY3kgIiYjeDQ1MzsiPgorPCFFTlRJVFkganVrY3kgIiYjeDQ1NDsiPgorPCFFTlRJVFkg
ZHNjeSAiJiN4NDU1OyI+Cis8IUVOVElUWSBpdWtjeSAiJiN4NDU2OyI+Cis8IUVOVElUWSB5aWN5
ICImI3g0NTc7Ij4KKzwhRU5USVRZIGpzZXJjeSAiJiN4NDU4OyI+Cis8IUVOVElUWSBsamN5ICIm
I3g0NTk7Ij4KKzwhRU5USVRZIG5qY3kgIiYjeDQ1QTsiPgorPCFFTlRJVFkgdHNoY3kgIiYjeDQ1
QjsiPgorPCFFTlRJVFkga2pjeSAiJiN4NDVDOyI+Cis8IUVOVElUWSB1YnJjeSAiJiN4NDVFOyI+
Cis8IUVOVElUWSBkemN5ICImI3g0NUY7Ij4KKzwhRU5USVRZIGVuc3AgIiYjeDIwMDI7Ij4KKzwh
RU5USVRZIGVtc3AgIiYjeDIwMDM7Ij4KKzwhRU5USVRZIGVtc3AxMyAiJiN4MjAwNDsiPgorPCFF
TlRJVFkgZW1zcDE0ICImI3gyMDA1OyI+Cis8IUVOVElUWSBudW1zcCAiJiN4MjAwNzsiPgorPCFF
TlRJVFkgcHVuY3NwICImI3gyMDA4OyI+Cis8IUVOVElUWSB0aGluc3AgIiYjeDIwMDk7Ij4KKzwh
RU5USVRZIFRoaW5TcGFjZSAiJiN4MjAwOTsiPgorPCFFTlRJVFkgaGFpcnNwICImI3gyMDBBOyI+
Cis8IUVOVElUWSBWZXJ5VGhpblNwYWNlICImI3gyMDBBOyI+Cis8IUVOVElUWSBaZXJvV2lkdGhT
cGFjZSAiJiN4MjAwQjsiPgorPCFFTlRJVFkgTmVnYXRpdmVWZXJ5VGhpblNwYWNlICImI3gyMDBC
OyI+Cis8IUVOVElUWSBOZWdhdGl2ZVRoaW5TcGFjZSAiJiN4MjAwQjsiPgorPCFFTlRJVFkgTmVn
YXRpdmVNZWRpdW1TcGFjZSAiJiN4MjAwQjsiPgorPCFFTlRJVFkgTmVnYXRpdmVUaGlja1NwYWNl
ICImI3gyMDBCOyI+Cis8IUVOVElUWSB6d25qICImI3gyMDBDOyI+Cis8IUVOVElUWSB6d2ogIiYj
eDIwMEQ7Ij4KKzwhRU5USVRZIGxybSAiJiN4MjAwRTsiPgorPCFFTlRJVFkgcmxtICImI3gyMDBG
OyI+Cis8IUVOVElUWSBoeXBoZW4gIiYjeDIwMTA7Ij4KKzwhRU5USVRZIGRhc2ggIiYjeDIwMTA7
Ij4KKzwhRU5USVRZIG5kYXNoICImI3gyMDEzOyI+Cis8IUVOVElUWSBtZGFzaCAiJiN4MjAxNDsi
PgorPCFFTlRJVFkgaG9yYmFyICImI3gyMDE1OyI+Cis8IUVOVElUWSBWZXJiYXIgIiYjeDIwMTY7
Ij4KKzwhRU5USVRZIFZlcnQgIiYjeDIwMTY7Ij4KKzwhRU5USVRZIGxzcXVvICImI3gyMDE4OyI+
Cis8IUVOVElUWSBPcGVuQ3VybHlRdW90ZSAiJiN4MjAxODsiPgorPCFFTlRJVFkgcnNxdW8gIiYj
eDIwMTk7Ij4KKzwhRU5USVRZIHJzcXVvciAiJiN4MjAxOTsiPgorPCFFTlRJVFkgQ2xvc2VDdXJs
eVF1b3RlICImI3gyMDE5OyI+Cis8IUVOVElUWSBsc3F1b3IgIiYjeDIwMUE7Ij4KKzwhRU5USVRZ
IHNicXVvICImI3gyMDFBOyI+Cis8IUVOVElUWSBsZHF1byAiJiN4MjAxQzsiPgorPCFFTlRJVFkg
T3BlbkN1cmx5RG91YmxlUXVvdGUgIiYjeDIwMUM7Ij4KKzwhRU5USVRZIHJkcXVvICImI3gyMDFE
OyI+Cis8IUVOVElUWSByZHF1b3IgIiYjeDIwMUQ7Ij4KKzwhRU5USVRZIENsb3NlQ3VybHlEb3Vi
bGVRdW90ZSAiJiN4MjAxRDsiPgorPCFFTlRJVFkgbGRxdW9yICImI3gyMDFFOyI+Cis8IUVOVElU
WSBiZHF1byAiJiN4MjAxRTsiPgorPCFFTlRJVFkgZGFnZ2VyICImI3gyMDIwOyI+Cis8IUVOVElU
WSBEYWdnZXIgIiYjeDIwMjE7Ij4KKzwhRU5USVRZIGRkYWdnZXIgIiYjeDIwMjE7Ij4KKzwhRU5U
SVRZIGJ1bGwgIiYjeDIwMjI7Ij4KKzwhRU5USVRZIGJ1bGxldCAiJiN4MjAyMjsiPgorPCFFTlRJ
VFkgbmxkciAiJiN4MjAyNTsiPgorPCFFTlRJVFkgaGVsbGlwICImI3gyMDI2OyI+Cis8IUVOVElU
WSBtbGRyICImI3gyMDI2OyI+Cis8IUVOVElUWSBwZXJtaWwgIiYjeDIwMzA7Ij4KKzwhRU5USVRZ
IHBlcnRlbmsgIiYjeDIwMzE7Ij4KKzwhRU5USVRZIHByaW1lICImI3gyMDMyOyI+Cis8IUVOVElU
WSBQcmltZSAiJiN4MjAzMzsiPgorPCFFTlRJVFkgdHByaW1lICImI3gyMDM0OyI+Cis8IUVOVElU
WSBicHJpbWUgIiYjeDIwMzU7Ij4KKzwhRU5USVRZIGJhY2twcmltZSAiJiN4MjAzNTsiPgorPCFF
TlRJVFkgbHNhcXVvICImI3gyMDM5OyI+Cis8IUVOVElUWSByc2FxdW8gIiYjeDIwM0E7Ij4KKzwh
RU5USVRZIG9saW5lICImI3gyMDNFOyI+Cis8IUVOVElUWSBPdmVyQmFyICImI3gyMDNFOyI+Cis8
IUVOVElUWSBjYXJldCAiJiN4MjA0MTsiPgorPCFFTlRJVFkgaHlidWxsICImI3gyMDQzOyI+Cis8
IUVOVElUWSBmcmFzbCAiJiN4MjA0NDsiPgorPCFFTlRJVFkgYnNlbWkgIiYjeDIwNEY7Ij4KKzwh
RU5USVRZIHFwcmltZSAiJiN4MjA1NzsiPgorPCFFTlRJVFkgTWVkaXVtU3BhY2UgIiYjeDIwNUY7
Ij4KKzwhRU5USVRZIFRoaWNrU3BhY2UgIiYjeDIwNUY7JiN4MjAwQTsiPgorPCFFTlRJVFkgTm9C
cmVhayAiJiN4MjA2MDsiPgorPCFFTlRJVFkgQXBwbHlGdW5jdGlvbiAiJiN4MjA2MTsiPgorPCFF
TlRJVFkgYWYgIiYjeDIwNjE7Ij4KKzwhRU5USVRZIEludmlzaWJsZVRpbWVzICImI3gyMDYyOyI+
Cis8IUVOVElUWSBpdCAiJiN4MjA2MjsiPgorPCFFTlRJVFkgSW52aXNpYmxlQ29tbWEgIiYjeDIw
NjM7Ij4KKzwhRU5USVRZIGljICImI3gyMDYzOyI+Cis8IUVOVElUWSBldXJvICImI3gyMEFDOyI+
Cis8IUVOVElUWSB0ZG90ICImI3gyMERCOyI+Cis8IUVOVElUWSBUcmlwbGVEb3QgIiYjeDIwREI7
Ij4KKzwhRU5USVRZIERvdERvdCAiJiN4MjBEQzsiPgorPCFFTlRJVFkgQ29wZiAiJiN4MjEwMjsi
PgorPCFFTlRJVFkgY29tcGxleGVzICImI3gyMTAyOyI+Cis8IUVOVElUWSBpbmNhcmUgIiYjeDIx
MDU7Ij4KKzwhRU5USVRZIGdzY3IgIiYjeDIxMEE7Ij4KKzwhRU5USVRZIGhhbWlsdCAiJiN4MjEw
QjsiPgorPCFFTlRJVFkgSGlsYmVydFNwYWNlICImI3gyMTBCOyI+Cis8IUVOVElUWSBIc2NyICIm
I3gyMTBCOyI+Cis8IUVOVElUWSBIZnIgIiYjeDIxMEM7Ij4KKzwhRU5USVRZIFBvaW5jYXJlcGxh
bmUgIiYjeDIxMEM7Ij4KKzwhRU5USVRZIHF1YXRlcm5pb25zICImI3gyMTBEOyI+Cis8IUVOVElU
WSBIb3BmICImI3gyMTBEOyI+Cis8IUVOVElUWSBwbGFuY2toICImI3gyMTBFOyI+Cis8IUVOVElU
WSBwbGFuY2sgIiYjeDIxMEY7Ij4KKzwhRU5USVRZIGhiYXIgIiYjeDIxMEY7Ij4KKzwhRU5USVRZ
IHBsYW5rdiAiJiN4MjEwRjsiPgorPCFFTlRJVFkgaHNsYXNoICImI3gyMTBGOyI+Cis8IUVOVElU
WSBJc2NyICImI3gyMTEwOyI+Cis8IUVOVElUWSBpbWFnbGluZSAiJiN4MjExMDsiPgorPCFFTlRJ
VFkgaW1hZ2UgIiYjeDIxMTE7Ij4KKzwhRU5USVRZIEltICImI3gyMTExOyI+Cis8IUVOVElUWSBp
bWFncGFydCAiJiN4MjExMTsiPgorPCFFTlRJVFkgSWZyICImI3gyMTExOyI+Cis8IUVOVElUWSBM
c2NyICImI3gyMTEyOyI+Cis8IUVOVElUWSBsYWdyYW4gIiYjeDIxMTI7Ij4KKzwhRU5USVRZIExh
cGxhY2V0cmYgIiYjeDIxMTI7Ij4KKzwhRU5USVRZIGVsbCAiJiN4MjExMzsiPgorPCFFTlRJVFkg
Tm9wZiAiJiN4MjExNTsiPgorPCFFTlRJVFkgbmF0dXJhbHMgIiYjeDIxMTU7Ij4KKzwhRU5USVRZ
IG51bWVybyAiJiN4MjExNjsiPgorPCFFTlRJVFkgY29weXNyICImI3gyMTE3OyI+Cis8IUVOVElU
WSB3ZWllcnAgIiYjeDIxMTg7Ij4KKzwhRU5USVRZIHdwICImI3gyMTE4OyI+Cis8IUVOVElUWSBQ
b3BmICImI3gyMTE5OyI+Cis8IUVOVElUWSBwcmltZXMgIiYjeDIxMTk7Ij4KKzwhRU5USVRZIHJh
dGlvbmFscyAiJiN4MjExQTsiPgorPCFFTlRJVFkgUW9wZiAiJiN4MjExQTsiPgorPCFFTlRJVFkg
UnNjciAiJiN4MjExQjsiPgorPCFFTlRJVFkgcmVhbGluZSAiJiN4MjExQjsiPgorPCFFTlRJVFkg
cmVhbCAiJiN4MjExQzsiPgorPCFFTlRJVFkgUmUgIiYjeDIxMUM7Ij4KKzwhRU5USVRZIHJlYWxw
YXJ0ICImI3gyMTFDOyI+Cis8IUVOVElUWSBSZnIgIiYjeDIxMUM7Ij4KKzwhRU5USVRZIHJlYWxz
ICImI3gyMTFEOyI+Cis8IUVOVElUWSBSb3BmICImI3gyMTFEOyI+Cis8IUVOVElUWSByeCAiJiN4
MjExRTsiPgorPCFFTlRJVFkgdHJhZGUgIiYjeDIxMjI7Ij4KKzwhRU5USVRZIFRSQURFICImI3gy
MTIyOyI+Cis8IUVOVElUWSBpbnRlZ2VycyAiJiN4MjEyNDsiPgorPCFFTlRJVFkgWm9wZiAiJiN4
MjEyNDsiPgorPCFFTlRJVFkgbWhvICImI3gyMTI3OyI+Cis8IUVOVElUWSBaZnIgIiYjeDIxMjg7
Ij4KKzwhRU5USVRZIHplZXRyZiAiJiN4MjEyODsiPgorPCFFTlRJVFkgaWlvdGEgIiYjeDIxMjk7
Ij4KKzwhRU5USVRZIGJlcm5vdSAiJiN4MjEyQzsiPgorPCFFTlRJVFkgQmVybm91bGxpcyAiJiN4
MjEyQzsiPgorPCFFTlRJVFkgQnNjciAiJiN4MjEyQzsiPgorPCFFTlRJVFkgQ2ZyICImI3gyMTJE
OyI+Cis8IUVOVElUWSBDYXlsZXlzICImI3gyMTJEOyI+Cis8IUVOVElUWSBlc2NyICImI3gyMTJG
OyI+Cis8IUVOVElUWSBFc2NyICImI3gyMTMwOyI+Cis8IUVOVElUWSBleHBlY3RhdGlvbiAiJiN4
MjEzMDsiPgorPCFFTlRJVFkgRnNjciAiJiN4MjEzMTsiPgorPCFFTlRJVFkgRm91cmllcnRyZiAi
JiN4MjEzMTsiPgorPCFFTlRJVFkgcGhtbWF0ICImI3gyMTMzOyI+Cis8IUVOVElUWSBNZWxsaW50
cmYgIiYjeDIxMzM7Ij4KKzwhRU5USVRZIE1zY3IgIiYjeDIxMzM7Ij4KKzwhRU5USVRZIG9yZGVy
ICImI3gyMTM0OyI+Cis8IUVOVElUWSBvcmRlcm9mICImI3gyMTM0OyI+Cis8IUVOVElUWSBvc2Ny
ICImI3gyMTM0OyI+Cis8IUVOVElUWSBhbGVmc3ltICImI3gyMTM1OyI+Cis8IUVOVElUWSBhbGVw
aCAiJiN4MjEzNTsiPgorPCFFTlRJVFkgYmV0aCAiJiN4MjEzNjsiPgorPCFFTlRJVFkgZ2ltZWwg
IiYjeDIxMzc7Ij4KKzwhRU5USVRZIGRhbGV0aCAiJiN4MjEzODsiPgorPCFFTlRJVFkgQ2FwaXRh
bERpZmZlcmVudGlhbEQgIiYjeDIxNDU7Ij4KKzwhRU5USVRZIEREICImI3gyMTQ1OyI+Cis8IUVO
VElUWSBEaWZmZXJlbnRpYWxEICImI3gyMTQ2OyI+Cis8IUVOVElUWSBkZCAiJiN4MjE0NjsiPgor
PCFFTlRJVFkgRXhwb25lbnRpYWxFICImI3gyMTQ3OyI+Cis8IUVOVElUWSBleHBvbmVudGlhbGUg
IiYjeDIxNDc7Ij4KKzwhRU5USVRZIGVlICImI3gyMTQ3OyI+Cis8IUVOVElUWSBJbWFnaW5hcnlJ
ICImI3gyMTQ4OyI+Cis8IUVOVElUWSBpaSAiJiN4MjE0ODsiPgorPCFFTlRJVFkgZnJhYzEzICIm
I3gyMTUzOyI+Cis8IUVOVElUWSBmcmFjMjMgIiYjeDIxNTQ7Ij4KKzwhRU5USVRZIGZyYWMxNSAi
JiN4MjE1NTsiPgorPCFFTlRJVFkgZnJhYzI1ICImI3gyMTU2OyI+Cis8IUVOVElUWSBmcmFjMzUg
IiYjeDIxNTc7Ij4KKzwhRU5USVRZIGZyYWM0NSAiJiN4MjE1ODsiPgorPCFFTlRJVFkgZnJhYzE2
ICImI3gyMTU5OyI+Cis8IUVOVElUWSBmcmFjNTYgIiYjeDIxNUE7Ij4KKzwhRU5USVRZIGZyYWMx
OCAiJiN4MjE1QjsiPgorPCFFTlRJVFkgZnJhYzM4ICImI3gyMTVDOyI+Cis8IUVOVElUWSBmcmFj
NTggIiYjeDIxNUQ7Ij4KKzwhRU5USVRZIGZyYWM3OCAiJiN4MjE1RTsiPgorPCFFTlRJVFkgbGFy
ciAiJiN4MjE5MDsiPgorPCFFTlRJVFkgbGVmdGFycm93ICImI3gyMTkwOyI+Cis8IUVOVElUWSBM
ZWZ0QXJyb3cgIiYjeDIxOTA7Ij4KKzwhRU5USVRZIHNsYXJyICImI3gyMTkwOyI+Cis8IUVOVElU
WSBTaG9ydExlZnRBcnJvdyAiJiN4MjE5MDsiPgorPCFFTlRJVFkgdWFyciAiJiN4MjE5MTsiPgor
PCFFTlRJVFkgdXBhcnJvdyAiJiN4MjE5MTsiPgorPCFFTlRJVFkgVXBBcnJvdyAiJiN4MjE5MTsi
PgorPCFFTlRJVFkgU2hvcnRVcEFycm93ICImI3gyMTkxOyI+Cis8IUVOVElUWSByYXJyICImI3gy
MTkyOyI+Cis8IUVOVElUWSByaWdodGFycm93ICImI3gyMTkyOyI+Cis8IUVOVElUWSBSaWdodEFy
cm93ICImI3gyMTkyOyI+Cis8IUVOVElUWSBzcmFyciAiJiN4MjE5MjsiPgorPCFFTlRJVFkgU2hv
cnRSaWdodEFycm93ICImI3gyMTkyOyI+Cis8IUVOVElUWSBkYXJyICImI3gyMTkzOyI+Cis8IUVO
VElUWSBkb3duYXJyb3cgIiYjeDIxOTM7Ij4KKzwhRU5USVRZIERvd25BcnJvdyAiJiN4MjE5Mzsi
PgorPCFFTlRJVFkgU2hvcnREb3duQXJyb3cgIiYjeDIxOTM7Ij4KKzwhRU5USVRZIGhhcnIgIiYj
eDIxOTQ7Ij4KKzwhRU5USVRZIGxlZnRyaWdodGFycm93ICImI3gyMTk0OyI+Cis8IUVOVElUWSBM
ZWZ0UmlnaHRBcnJvdyAiJiN4MjE5NDsiPgorPCFFTlRJVFkgdmFyciAiJiN4MjE5NTsiPgorPCFF
TlRJVFkgdXBkb3duYXJyb3cgIiYjeDIxOTU7Ij4KKzwhRU5USVRZIFVwRG93bkFycm93ICImI3gy
MTk1OyI+Cis8IUVOVElUWSBud2FyciAiJiN4MjE5NjsiPgorPCFFTlRJVFkgVXBwZXJMZWZ0QXJy
b3cgIiYjeDIxOTY7Ij4KKzwhRU5USVRZIG53YXJyb3cgIiYjeDIxOTY7Ij4KKzwhRU5USVRZIG5l
YXJyICImI3gyMTk3OyI+Cis8IUVOVElUWSBVcHBlclJpZ2h0QXJyb3cgIiYjeDIxOTc7Ij4KKzwh
RU5USVRZIG5lYXJyb3cgIiYjeDIxOTc7Ij4KKzwhRU5USVRZIHNlYXJyICImI3gyMTk4OyI+Cis8
IUVOVElUWSBzZWFycm93ICImI3gyMTk4OyI+Cis8IUVOVElUWSBMb3dlclJpZ2h0QXJyb3cgIiYj
eDIxOTg7Ij4KKzwhRU5USVRZIHN3YXJyICImI3gyMTk5OyI+Cis8IUVOVElUWSBzd2Fycm93ICIm
I3gyMTk5OyI+Cis8IUVOVElUWSBMb3dlckxlZnRBcnJvdyAiJiN4MjE5OTsiPgorPCFFTlRJVFkg
bmxhcnIgIiYjeDIxOUE7Ij4KKzwhRU5USVRZIG5sZWZ0YXJyb3cgIiYjeDIxOUE7Ij4KKzwhRU5U
SVRZIG5yYXJyICImI3gyMTlCOyI+Cis8IUVOVElUWSBucmlnaHRhcnJvdyAiJiN4MjE5QjsiPgor
PCFFTlRJVFkgcmFycncgIiYjeDIxOUQ7Ij4KKzwhRU5USVRZIHJpZ2h0c3F1aWdhcnJvdyAiJiN4
MjE5RDsiPgorPCFFTlRJVFkgbnJhcnJ3ICImI3gyMTlEOyYjeDMzODsiPgorPCFFTlRJVFkgTGFy
ciAiJiN4MjE5RTsiPgorPCFFTlRJVFkgdHdvaGVhZGxlZnRhcnJvdyAiJiN4MjE5RTsiPgorPCFF
TlRJVFkgVWFyciAiJiN4MjE5RjsiPgorPCFFTlRJVFkgUmFyciAiJiN4MjFBMDsiPgorPCFFTlRJ
VFkgdHdvaGVhZHJpZ2h0YXJyb3cgIiYjeDIxQTA7Ij4KKzwhRU5USVRZIERhcnIgIiYjeDIxQTE7
Ij4KKzwhRU5USVRZIGxhcnJ0bCAiJiN4MjFBMjsiPgorPCFFTlRJVFkgbGVmdGFycm93dGFpbCAi
JiN4MjFBMjsiPgorPCFFTlRJVFkgcmFycnRsICImI3gyMUEzOyI+Cis8IUVOVElUWSByaWdodGFy
cm93dGFpbCAiJiN4MjFBMzsiPgorPCFFTlRJVFkgTGVmdFRlZUFycm93ICImI3gyMUE0OyI+Cis8
IUVOVElUWSBtYXBzdG9sZWZ0ICImI3gyMUE0OyI+Cis8IUVOVElUWSBVcFRlZUFycm93ICImI3gy
MUE1OyI+Cis8IUVOVElUWSBtYXBzdG91cCAiJiN4MjFBNTsiPgorPCFFTlRJVFkgbWFwICImI3gy
MUE2OyI+Cis8IUVOVElUWSBSaWdodFRlZUFycm93ICImI3gyMUE2OyI+Cis8IUVOVElUWSBtYXBz
dG8gIiYjeDIxQTY7Ij4KKzwhRU5USVRZIERvd25UZWVBcnJvdyAiJiN4MjFBNzsiPgorPCFFTlRJ
VFkgbWFwc3RvZG93biAiJiN4MjFBNzsiPgorPCFFTlRJVFkgbGFycmhrICImI3gyMUE5OyI+Cis8
IUVOVElUWSBob29rbGVmdGFycm93ICImI3gyMUE5OyI+Cis8IUVOVElUWSByYXJyaGsgIiYjeDIx
QUE7Ij4KKzwhRU5USVRZIGhvb2tyaWdodGFycm93ICImI3gyMUFBOyI+Cis8IUVOVElUWSBsYXJy
bHAgIiYjeDIxQUI7Ij4KKzwhRU5USVRZIGxvb3BhcnJvd2xlZnQgIiYjeDIxQUI7Ij4KKzwhRU5U
SVRZIHJhcnJscCAiJiN4MjFBQzsiPgorPCFFTlRJVFkgbG9vcGFycm93cmlnaHQgIiYjeDIxQUM7
Ij4KKzwhRU5USVRZIGhhcnJ3ICImI3gyMUFEOyI+Cis8IUVOVElUWSBsZWZ0cmlnaHRzcXVpZ2Fy
cm93ICImI3gyMUFEOyI+Cis8IUVOVElUWSBuaGFyciAiJiN4MjFBRTsiPgorPCFFTlRJVFkgbmxl
ZnRyaWdodGFycm93ICImI3gyMUFFOyI+Cis8IUVOVElUWSBsc2ggIiYjeDIxQjA7Ij4KKzwhRU5U
SVRZIExzaCAiJiN4MjFCMDsiPgorPCFFTlRJVFkgcnNoICImI3gyMUIxOyI+Cis8IUVOVElUWSBS
c2ggIiYjeDIxQjE7Ij4KKzwhRU5USVRZIGxkc2ggIiYjeDIxQjI7Ij4KKzwhRU5USVRZIHJkc2gg
IiYjeDIxQjM7Ij4KKzwhRU5USVRZIGNyYXJyICImI3gyMUI1OyI+Cis8IUVOVElUWSBjdWxhcnIg
IiYjeDIxQjY7Ij4KKzwhRU5USVRZIGN1cnZlYXJyb3dsZWZ0ICImI3gyMUI2OyI+Cis8IUVOVElU
WSBjdXJhcnIgIiYjeDIxQjc7Ij4KKzwhRU5USVRZIGN1cnZlYXJyb3dyaWdodCAiJiN4MjFCNzsi
PgorPCFFTlRJVFkgb2xhcnIgIiYjeDIxQkE7Ij4KKzwhRU5USVRZIGNpcmNsZWFycm93bGVmdCAi
JiN4MjFCQTsiPgorPCFFTlRJVFkgb3JhcnIgIiYjeDIxQkI7Ij4KKzwhRU5USVRZIGNpcmNsZWFy
cm93cmlnaHQgIiYjeDIxQkI7Ij4KKzwhRU5USVRZIGxoYXJ1ICImI3gyMUJDOyI+Cis8IUVOVElU
WSBMZWZ0VmVjdG9yICImI3gyMUJDOyI+Cis8IUVOVElUWSBsZWZ0aGFycG9vbnVwICImI3gyMUJD
OyI+Cis8IUVOVElUWSBsaGFyZCAiJiN4MjFCRDsiPgorPCFFTlRJVFkgbGVmdGhhcnBvb25kb3du
ICImI3gyMUJEOyI+Cis8IUVOVElUWSBEb3duTGVmdFZlY3RvciAiJiN4MjFCRDsiPgorPCFFTlRJ
VFkgdWhhcnIgIiYjeDIxQkU7Ij4KKzwhRU5USVRZIHVwaGFycG9vbnJpZ2h0ICImI3gyMUJFOyI+
Cis8IUVOVElUWSBSaWdodFVwVmVjdG9yICImI3gyMUJFOyI+Cis8IUVOVElUWSB1aGFybCAiJiN4
MjFCRjsiPgorPCFFTlRJVFkgdXBoYXJwb29ubGVmdCAiJiN4MjFCRjsiPgorPCFFTlRJVFkgTGVm
dFVwVmVjdG9yICImI3gyMUJGOyI+Cis8IUVOVElUWSByaGFydSAiJiN4MjFDMDsiPgorPCFFTlRJ
VFkgUmlnaHRWZWN0b3IgIiYjeDIxQzA7Ij4KKzwhRU5USVRZIHJpZ2h0aGFycG9vbnVwICImI3gy
MUMwOyI+Cis8IUVOVElUWSByaGFyZCAiJiN4MjFDMTsiPgorPCFFTlRJVFkgcmlnaHRoYXJwb29u
ZG93biAiJiN4MjFDMTsiPgorPCFFTlRJVFkgRG93blJpZ2h0VmVjdG9yICImI3gyMUMxOyI+Cis8
IUVOVElUWSBkaGFyciAiJiN4MjFDMjsiPgorPCFFTlRJVFkgUmlnaHREb3duVmVjdG9yICImI3gy
MUMyOyI+Cis8IUVOVElUWSBkb3duaGFycG9vbnJpZ2h0ICImI3gyMUMyOyI+Cis8IUVOVElUWSBk
aGFybCAiJiN4MjFDMzsiPgorPCFFTlRJVFkgTGVmdERvd25WZWN0b3IgIiYjeDIxQzM7Ij4KKzwh
RU5USVRZIGRvd25oYXJwb29ubGVmdCAiJiN4MjFDMzsiPgorPCFFTlRJVFkgcmxhcnIgIiYjeDIx
QzQ7Ij4KKzwhRU5USVRZIHJpZ2h0bGVmdGFycm93cyAiJiN4MjFDNDsiPgorPCFFTlRJVFkgUmln
aHRBcnJvd0xlZnRBcnJvdyAiJiN4MjFDNDsiPgorPCFFTlRJVFkgdWRhcnIgIiYjeDIxQzU7Ij4K
KzwhRU5USVRZIFVwQXJyb3dEb3duQXJyb3cgIiYjeDIxQzU7Ij4KKzwhRU5USVRZIGxyYXJyICIm
I3gyMUM2OyI+Cis8IUVOVElUWSBsZWZ0cmlnaHRhcnJvd3MgIiYjeDIxQzY7Ij4KKzwhRU5USVRZ
IExlZnRBcnJvd1JpZ2h0QXJyb3cgIiYjeDIxQzY7Ij4KKzwhRU5USVRZIGxsYXJyICImI3gyMUM3
OyI+Cis8IUVOVElUWSBsZWZ0bGVmdGFycm93cyAiJiN4MjFDNzsiPgorPCFFTlRJVFkgdXVhcnIg
IiYjeDIxQzg7Ij4KKzwhRU5USVRZIHVwdXBhcnJvd3MgIiYjeDIxQzg7Ij4KKzwhRU5USVRZIHJy
YXJyICImI3gyMUM5OyI+Cis8IUVOVElUWSByaWdodHJpZ2h0YXJyb3dzICImI3gyMUM5OyI+Cis8
IUVOVElUWSBkZGFyciAiJiN4MjFDQTsiPgorPCFFTlRJVFkgZG93bmRvd25hcnJvd3MgIiYjeDIx
Q0E7Ij4KKzwhRU5USVRZIGxyaGFyICImI3gyMUNCOyI+Cis8IUVOVElUWSBSZXZlcnNlRXF1aWxp
YnJpdW0gIiYjeDIxQ0I7Ij4KKzwhRU5USVRZIGxlZnRyaWdodGhhcnBvb25zICImI3gyMUNCOyI+
Cis8IUVOVElUWSBybGhhciAiJiN4MjFDQzsiPgorPCFFTlRJVFkgcmlnaHRsZWZ0aGFycG9vbnMg
IiYjeDIxQ0M7Ij4KKzwhRU5USVRZIEVxdWlsaWJyaXVtICImI3gyMUNDOyI+Cis8IUVOVElUWSBu
bEFyciAiJiN4MjFDRDsiPgorPCFFTlRJVFkgbkxlZnRhcnJvdyAiJiN4MjFDRDsiPgorPCFFTlRJ
VFkgbmhBcnIgIiYjeDIxQ0U7Ij4KKzwhRU5USVRZIG5MZWZ0cmlnaHRhcnJvdyAiJiN4MjFDRTsi
PgorPCFFTlRJVFkgbnJBcnIgIiYjeDIxQ0Y7Ij4KKzwhRU5USVRZIG5SaWdodGFycm93ICImI3gy
MUNGOyI+Cis8IUVOVElUWSBsQXJyICImI3gyMUQwOyI+Cis8IUVOVElUWSBMZWZ0YXJyb3cgIiYj
eDIxRDA7Ij4KKzwhRU5USVRZIERvdWJsZUxlZnRBcnJvdyAiJiN4MjFEMDsiPgorPCFFTlRJVFkg
dUFyciAiJiN4MjFEMTsiPgorPCFFTlRJVFkgVXBhcnJvdyAiJiN4MjFEMTsiPgorPCFFTlRJVFkg
RG91YmxlVXBBcnJvdyAiJiN4MjFEMTsiPgorPCFFTlRJVFkgckFyciAiJiN4MjFEMjsiPgorPCFF
TlRJVFkgUmlnaHRhcnJvdyAiJiN4MjFEMjsiPgorPCFFTlRJVFkgSW1wbGllcyAiJiN4MjFEMjsi
PgorPCFFTlRJVFkgRG91YmxlUmlnaHRBcnJvdyAiJiN4MjFEMjsiPgorPCFFTlRJVFkgZEFyciAi
JiN4MjFEMzsiPgorPCFFTlRJVFkgRG93bmFycm93ICImI3gyMUQzOyI+Cis8IUVOVElUWSBEb3Vi
bGVEb3duQXJyb3cgIiYjeDIxRDM7Ij4KKzwhRU5USVRZIGhBcnIgIiYjeDIxRDQ7Ij4KKzwhRU5U
SVRZIExlZnRyaWdodGFycm93ICImI3gyMUQ0OyI+Cis8IUVOVElUWSBEb3VibGVMZWZ0UmlnaHRB
cnJvdyAiJiN4MjFENDsiPgorPCFFTlRJVFkgaWZmICImI3gyMUQ0OyI+Cis8IUVOVElUWSB2QXJy
ICImI3gyMUQ1OyI+Cis8IUVOVElUWSBVcGRvd25hcnJvdyAiJiN4MjFENTsiPgorPCFFTlRJVFkg
RG91YmxlVXBEb3duQXJyb3cgIiYjeDIxRDU7Ij4KKzwhRU5USVRZIG53QXJyICImI3gyMUQ2OyI+
Cis8IUVOVElUWSBuZUFyciAiJiN4MjFENzsiPgorPCFFTlRJVFkgc2VBcnIgIiYjeDIxRDg7Ij4K
KzwhRU5USVRZIHN3QXJyICImI3gyMUQ5OyI+Cis8IUVOVElUWSBsQWFyciAiJiN4MjFEQTsiPgor
PCFFTlRJVFkgTGxlZnRhcnJvdyAiJiN4MjFEQTsiPgorPCFFTlRJVFkgckFhcnIgIiYjeDIxREI7
Ij4KKzwhRU5USVRZIFJyaWdodGFycm93ICImI3gyMURCOyI+Cis8IUVOVElUWSB6aWdyYXJyICIm
I3gyMUREOyI+Cis8IUVOVElUWSBsYXJyYiAiJiN4MjFFNDsiPgorPCFFTlRJVFkgTGVmdEFycm93
QmFyICImI3gyMUU0OyI+Cis8IUVOVElUWSByYXJyYiAiJiN4MjFFNTsiPgorPCFFTlRJVFkgUmln
aHRBcnJvd0JhciAiJiN4MjFFNTsiPgorPCFFTlRJVFkgZHVhcnIgIiYjeDIxRjU7Ij4KKzwhRU5U
SVRZIERvd25BcnJvd1VwQXJyb3cgIiYjeDIxRjU7Ij4KKzwhRU5USVRZIGxvYXJyICImI3gyMUZE
OyI+Cis8IUVOVElUWSByb2FyciAiJiN4MjFGRTsiPgorPCFFTlRJVFkgaG9hcnIgIiYjeDIxRkY7
Ij4KKzwhRU5USVRZIGZvcmFsbCAiJiN4MjIwMDsiPgorPCFFTlRJVFkgRm9yQWxsICImI3gyMjAw
OyI+Cis8IUVOVElUWSBjb21wICImI3gyMjAxOyI+Cis8IUVOVElUWSBjb21wbGVtZW50ICImI3gy
MjAxOyI+Cis8IUVOVElUWSBwYXJ0ICImI3gyMjAyOyI+Cis8IUVOVElUWSBQYXJ0aWFsRCAiJiN4
MjIwMjsiPgorPCFFTlRJVFkgbnBhcnQgIiYjeDIyMDI7JiN4MzM4OyI+Cis8IUVOVElUWSBleGlz
dCAiJiN4MjIwMzsiPgorPCFFTlRJVFkgRXhpc3RzICImI3gyMjAzOyI+Cis8IUVOVElUWSBuZXhp
c3QgIiYjeDIyMDQ7Ij4KKzwhRU5USVRZIE5vdEV4aXN0cyAiJiN4MjIwNDsiPgorPCFFTlRJVFkg
bmV4aXN0cyAiJiN4MjIwNDsiPgorPCFFTlRJVFkgZW1wdHkgIiYjeDIyMDU7Ij4KKzwhRU5USVRZ
IGVtcHR5c2V0ICImI3gyMjA1OyI+Cis8IUVOVElUWSBlbXB0eXYgIiYjeDIyMDU7Ij4KKzwhRU5U
SVRZIHZhcm5vdGhpbmcgIiYjeDIyMDU7Ij4KKzwhRU5USVRZIG5hYmxhICImI3gyMjA3OyI+Cis8
IUVOVElUWSBEZWwgIiYjeDIyMDc7Ij4KKzwhRU5USVRZIGlzaW4gIiYjeDIyMDg7Ij4KKzwhRU5U
SVRZIGlzaW52ICImI3gyMjA4OyI+Cis8IUVOVElUWSBFbGVtZW50ICImI3gyMjA4OyI+Cis8IUVO
VElUWSBpbiAiJiN4MjIwODsiPgorPCFFTlRJVFkgbm90aW4gIiYjeDIyMDk7Ij4KKzwhRU5USVRZ
IE5vdEVsZW1lbnQgIiYjeDIyMDk7Ij4KKzwhRU5USVRZIG5vdGludmEgIiYjeDIyMDk7Ij4KKzwh
RU5USVRZIG5pdiAiJiN4MjIwQjsiPgorPCFFTlRJVFkgUmV2ZXJzZUVsZW1lbnQgIiYjeDIyMEI7
Ij4KKzwhRU5USVRZIG5pICImI3gyMjBCOyI+Cis8IUVOVElUWSBTdWNoVGhhdCAiJiN4MjIwQjsi
PgorPCFFTlRJVFkgbm90bmkgIiYjeDIyMEM7Ij4KKzwhRU5USVRZIG5vdG5pdmEgIiYjeDIyMEM7
Ij4KKzwhRU5USVRZIE5vdFJldmVyc2VFbGVtZW50ICImI3gyMjBDOyI+Cis8IUVOVElUWSBwcm9k
ICImI3gyMjBGOyI+Cis8IUVOVElUWSBQcm9kdWN0ICImI3gyMjBGOyI+Cis8IUVOVElUWSBjb3By
b2QgIiYjeDIyMTA7Ij4KKzwhRU5USVRZIENvcHJvZHVjdCAiJiN4MjIxMDsiPgorPCFFTlRJVFkg
c3VtICImI3gyMjExOyI+Cis8IUVOVElUWSBTdW0gIiYjeDIyMTE7Ij4KKzwhRU5USVRZIG1pbnVz
ICImI3gyMjEyOyI+Cis8IUVOVElUWSBtbnBsdXMgIiYjeDIyMTM7Ij4KKzwhRU5USVRZIG1wICIm
I3gyMjEzOyI+Cis8IUVOVElUWSBNaW51c1BsdXMgIiYjeDIyMTM7Ij4KKzwhRU5USVRZIHBsdXNk
byAiJiN4MjIxNDsiPgorPCFFTlRJVFkgZG90cGx1cyAiJiN4MjIxNDsiPgorPCFFTlRJVFkgc2V0
bW4gIiYjeDIyMTY7Ij4KKzwhRU5USVRZIHNldG1pbnVzICImI3gyMjE2OyI+Cis8IUVOVElUWSBC
YWNrc2xhc2ggIiYjeDIyMTY7Ij4KKzwhRU5USVRZIHNzZXRtbiAiJiN4MjIxNjsiPgorPCFFTlRJ
VFkgc21hbGxzZXRtaW51cyAiJiN4MjIxNjsiPgorPCFFTlRJVFkgbG93YXN0ICImI3gyMjE3OyI+
Cis8IUVOVElUWSBjb21wZm4gIiYjeDIyMTg7Ij4KKzwhRU5USVRZIFNtYWxsQ2lyY2xlICImI3gy
MjE4OyI+Cis8IUVOVElUWSByYWRpYyAiJiN4MjIxQTsiPgorPCFFTlRJVFkgU3FydCAiJiN4MjIx
QTsiPgorPCFFTlRJVFkgcHJvcCAiJiN4MjIxRDsiPgorPCFFTlRJVFkgcHJvcHRvICImI3gyMjFE
OyI+Cis8IUVOVElUWSBQcm9wb3J0aW9uYWwgIiYjeDIyMUQ7Ij4KKzwhRU5USVRZIHZwcm9wICIm
I3gyMjFEOyI+Cis8IUVOVElUWSB2YXJwcm9wdG8gIiYjeDIyMUQ7Ij4KKzwhRU5USVRZIGluZmlu
ICImI3gyMjFFOyI+Cis8IUVOVElUWSBhbmdydCAiJiN4MjIxRjsiPgorPCFFTlRJVFkgYW5nICIm
I3gyMjIwOyI+Cis8IUVOVElUWSBhbmdsZSAiJiN4MjIyMDsiPgorPCFFTlRJVFkgbmFuZyAiJiN4
MjIyMDsmI3gyMEQyOyI+Cis8IUVOVElUWSBhbmdtc2QgIiYjeDIyMjE7Ij4KKzwhRU5USVRZIG1l
YXN1cmVkYW5nbGUgIiYjeDIyMjE7Ij4KKzwhRU5USVRZIGFuZ3NwaCAiJiN4MjIyMjsiPgorPCFF
TlRJVFkgbWlkICImI3gyMjIzOyI+Cis8IUVOVElUWSBWZXJ0aWNhbEJhciAiJiN4MjIyMzsiPgor
PCFFTlRJVFkgc21pZCAiJiN4MjIyMzsiPgorPCFFTlRJVFkgc2hvcnRtaWQgIiYjeDIyMjM7Ij4K
KzwhRU5USVRZIG5taWQgIiYjeDIyMjQ7Ij4KKzwhRU5USVRZIE5vdFZlcnRpY2FsQmFyICImI3gy
MjI0OyI+Cis8IUVOVElUWSBuc21pZCAiJiN4MjIyNDsiPgorPCFFTlRJVFkgbnNob3J0bWlkICIm
I3gyMjI0OyI+Cis8IUVOVElUWSBwYXIgIiYjeDIyMjU7Ij4KKzwhRU5USVRZIHBhcmFsbGVsICIm
I3gyMjI1OyI+Cis8IUVOVElUWSBEb3VibGVWZXJ0aWNhbEJhciAiJiN4MjIyNTsiPgorPCFFTlRJ
VFkgc3BhciAiJiN4MjIyNTsiPgorPCFFTlRJVFkgc2hvcnRwYXJhbGxlbCAiJiN4MjIyNTsiPgor
PCFFTlRJVFkgbnBhciAiJiN4MjIyNjsiPgorPCFFTlRJVFkgbnBhcmFsbGVsICImI3gyMjI2OyI+
Cis8IUVOVElUWSBOb3REb3VibGVWZXJ0aWNhbEJhciAiJiN4MjIyNjsiPgorPCFFTlRJVFkgbnNw
YXIgIiYjeDIyMjY7Ij4KKzwhRU5USVRZIG5zaG9ydHBhcmFsbGVsICImI3gyMjI2OyI+Cis8IUVO
VElUWSBhbmQgIiYjeDIyMjc7Ij4KKzwhRU5USVRZIHdlZGdlICImI3gyMjI3OyI+Cis8IUVOVElU
WSBvciAiJiN4MjIyODsiPgorPCFFTlRJVFkgdmVlICImI3gyMjI4OyI+Cis8IUVOVElUWSBjYXAg
IiYjeDIyMjk7Ij4KKzwhRU5USVRZIGNhcHMgIiYjeDIyMjk7JiN4RkUwMDsiPgorPCFFTlRJVFkg
Y3VwICImI3gyMjJBOyI+Cis8IUVOVElUWSBjdXBzICImI3gyMjJBOyYjeEZFMDA7Ij4KKzwhRU5U
SVRZIGludCAiJiN4MjIyQjsiPgorPCFFTlRJVFkgSW50ZWdyYWwgIiYjeDIyMkI7Ij4KKzwhRU5U
SVRZIEludCAiJiN4MjIyQzsiPgorPCFFTlRJVFkgdGludCAiJiN4MjIyRDsiPgorPCFFTlRJVFkg
aWlpbnQgIiYjeDIyMkQ7Ij4KKzwhRU5USVRZIGNvbmludCAiJiN4MjIyRTsiPgorPCFFTlRJVFkg
b2ludCAiJiN4MjIyRTsiPgorPCFFTlRJVFkgQ29udG91ckludGVncmFsICImI3gyMjJFOyI+Cis8
IUVOVElUWSBDb25pbnQgIiYjeDIyMkY7Ij4KKzwhRU5USVRZIERvdWJsZUNvbnRvdXJJbnRlZ3Jh
bCAiJiN4MjIyRjsiPgorPCFFTlRJVFkgQ2NvbmludCAiJiN4MjIzMDsiPgorPCFFTlRJVFkgY3dp
bnQgIiYjeDIyMzE7Ij4KKzwhRU5USVRZIGN3Y29uaW50ICImI3gyMjMyOyI+Cis8IUVOVElUWSBD
bG9ja3dpc2VDb250b3VySW50ZWdyYWwgIiYjeDIyMzI7Ij4KKzwhRU5USVRZIGF3Y29uaW50ICIm
I3gyMjMzOyI+Cis8IUVOVElUWSBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsICImI3gy
MjMzOyI+Cis8IUVOVElUWSB0aGVyZTQgIiYjeDIyMzQ7Ij4KKzwhRU5USVRZIHRoZXJlZm9yZSAi
JiN4MjIzNDsiPgorPCFFTlRJVFkgVGhlcmVmb3JlICImI3gyMjM0OyI+Cis8IUVOVElUWSBiZWNh
dXMgIiYjeDIyMzU7Ij4KKzwhRU5USVRZIGJlY2F1c2UgIiYjeDIyMzU7Ij4KKzwhRU5USVRZIEJl
Y2F1c2UgIiYjeDIyMzU7Ij4KKzwhRU5USVRZIHJhdGlvICImI3gyMjM2OyI+Cis8IUVOVElUWSBD
b2xvbiAiJiN4MjIzNzsiPgorPCFFTlRJVFkgUHJvcG9ydGlvbiAiJiN4MjIzNzsiPgorPCFFTlRJ
VFkgbWludXNkICImI3gyMjM4OyI+Cis8IUVOVElUWSBkb3RtaW51cyAiJiN4MjIzODsiPgorPCFF
TlRJVFkgbUREb3QgIiYjeDIyM0E7Ij4KKzwhRU5USVRZIGhvbXRodCAiJiN4MjIzQjsiPgorPCFF
TlRJVFkgc2ltICImI3gyMjNDOyI+Cis8IUVOVElUWSBUaWxkZSAiJiN4MjIzQzsiPgorPCFFTlRJ
VFkgdGhrc2ltICImI3gyMjNDOyI+Cis8IUVOVElUWSB0aGlja3NpbSAiJiN4MjIzQzsiPgorPCFF
TlRJVFkgbnZzaW0gIiYjeDIyM0M7JiN4MjBEMjsiPgorPCFFTlRJVFkgYnNpbSAiJiN4MjIzRDsi
PgorPCFFTlRJVFkgYmFja3NpbSAiJiN4MjIzRDsiPgorPCFFTlRJVFkgcmFjZSAiJiN4MjIzRDsm
I3gzMzE7Ij4KKzwhRU5USVRZIGFjICImI3gyMjNFOyI+Cis8IUVOVElUWSBtc3Rwb3MgIiYjeDIy
M0U7Ij4KKzwhRU5USVRZIGFjRSAiJiN4MjIzRTsmI3gzMzM7Ij4KKzwhRU5USVRZIGFjZCAiJiN4
MjIzRjsiPgorPCFFTlRJVFkgd3JlYXRoICImI3gyMjQwOyI+Cis8IUVOVElUWSBWZXJ0aWNhbFRp
bGRlICImI3gyMjQwOyI+Cis8IUVOVElUWSB3ciAiJiN4MjI0MDsiPgorPCFFTlRJVFkgbnNpbSAi
JiN4MjI0MTsiPgorPCFFTlRJVFkgTm90VGlsZGUgIiYjeDIyNDE7Ij4KKzwhRU5USVRZIGVzaW0g
IiYjeDIyNDI7Ij4KKzwhRU5USVRZIEVxdWFsVGlsZGUgIiYjeDIyNDI7Ij4KKzwhRU5USVRZIGVx
c2ltICImI3gyMjQyOyI+Cis8IUVOVElUWSBOb3RFcXVhbFRpbGRlICImI3gyMjQyOyYjeDMzODsi
PgorPCFFTlRJVFkgbmVzaW0gIiYjeDIyNDI7JiN4MzM4OyI+Cis8IUVOVElUWSBzaW1lICImI3gy
MjQzOyI+Cis8IUVOVElUWSBUaWxkZUVxdWFsICImI3gyMjQzOyI+Cis8IUVOVElUWSBzaW1lcSAi
JiN4MjI0MzsiPgorPCFFTlRJVFkgbnNpbWUgIiYjeDIyNDQ7Ij4KKzwhRU5USVRZIG5zaW1lcSAi
JiN4MjI0NDsiPgorPCFFTlRJVFkgTm90VGlsZGVFcXVhbCAiJiN4MjI0NDsiPgorPCFFTlRJVFkg
Y29uZyAiJiN4MjI0NTsiPgorPCFFTlRJVFkgVGlsZGVGdWxsRXF1YWwgIiYjeDIyNDU7Ij4KKzwh
RU5USVRZIHNpbW5lICImI3gyMjQ2OyI+Cis8IUVOVElUWSBuY29uZyAiJiN4MjI0NzsiPgorPCFF
TlRJVFkgTm90VGlsZGVGdWxsRXF1YWwgIiYjeDIyNDc7Ij4KKzwhRU5USVRZIGFzeW1wICImI3gy
MjQ4OyI+Cis8IUVOVElUWSBhcCAiJiN4MjI0ODsiPgorPCFFTlRJVFkgVGlsZGVUaWxkZSAiJiN4
MjI0ODsiPgorPCFFTlRJVFkgYXBwcm94ICImI3gyMjQ4OyI+Cis8IUVOVElUWSB0aGthcCAiJiN4
MjI0ODsiPgorPCFFTlRJVFkgdGhpY2thcHByb3ggIiYjeDIyNDg7Ij4KKzwhRU5USVRZIG5hcCAi
JiN4MjI0OTsiPgorPCFFTlRJVFkgTm90VGlsZGVUaWxkZSAiJiN4MjI0OTsiPgorPCFFTlRJVFkg
bmFwcHJveCAiJiN4MjI0OTsiPgorPCFFTlRJVFkgYXBlICImI3gyMjRBOyI+Cis8IUVOVElUWSBh
cHByb3hlcSAiJiN4MjI0QTsiPgorPCFFTlRJVFkgYXBpZCAiJiN4MjI0QjsiPgorPCFFTlRJVFkg
bmFwaWQgIiYjeDIyNEI7JiN4MzM4OyI+Cis8IUVOVElUWSBiY29uZyAiJiN4MjI0QzsiPgorPCFF
TlRJVFkgYmFja2NvbmcgIiYjeDIyNEM7Ij4KKzwhRU5USVRZIGFzeW1wZXEgIiYjeDIyNEQ7Ij4K
KzwhRU5USVRZIEN1cENhcCAiJiN4MjI0RDsiPgorPCFFTlRJVFkgbnZhcCAiJiN4MjI0RDsmI3gy
MEQyOyI+Cis8IUVOVElUWSBidW1wICImI3gyMjRFOyI+Cis8IUVOVElUWSBIdW1wRG93bkh1bXAg
IiYjeDIyNEU7Ij4KKzwhRU5USVRZIEJ1bXBlcSAiJiN4MjI0RTsiPgorPCFFTlRJVFkgTm90SHVt
cERvd25IdW1wICImI3gyMjRFOyYjeDMzODsiPgorPCFFTlRJVFkgbmJ1bXAgIiYjeDIyNEU7JiN4
MzM4OyI+Cis8IUVOVElUWSBidW1wZSAiJiN4MjI0RjsiPgorPCFFTlRJVFkgSHVtcEVxdWFsICIm
I3gyMjRGOyI+Cis8IUVOVElUWSBidW1wZXEgIiYjeDIyNEY7Ij4KKzwhRU5USVRZIG5idW1wZSAi
JiN4MjI0RjsmI3gzMzg7Ij4KKzwhRU5USVRZIE5vdEh1bXBFcXVhbCAiJiN4MjI0RjsmI3gzMzg7
Ij4KKzwhRU5USVRZIGVzZG90ICImI3gyMjUwOyI+Cis8IUVOVElUWSBEb3RFcXVhbCAiJiN4MjI1
MDsiPgorPCFFTlRJVFkgZG90ZXEgIiYjeDIyNTA7Ij4KKzwhRU5USVRZIG5lZG90ICImI3gyMjUw
OyYjeDMzODsiPgorPCFFTlRJVFkgZURvdCAiJiN4MjI1MTsiPgorPCFFTlRJVFkgZG90ZXFkb3Qg
IiYjeDIyNTE7Ij4KKzwhRU5USVRZIGVmRG90ICImI3gyMjUyOyI+Cis8IUVOVElUWSBmYWxsaW5n
ZG90c2VxICImI3gyMjUyOyI+Cis8IUVOVElUWSBlckRvdCAiJiN4MjI1MzsiPgorPCFFTlRJVFkg
cmlzaW5nZG90c2VxICImI3gyMjUzOyI+Cis8IUVOVElUWSBjb2xvbmUgIiYjeDIyNTQ7Ij4KKzwh
RU5USVRZIGNvbG9uZXEgIiYjeDIyNTQ7Ij4KKzwhRU5USVRZIEFzc2lnbiAiJiN4MjI1NDsiPgor
PCFFTlRJVFkgZWNvbG9uICImI3gyMjU1OyI+Cis8IUVOVElUWSBlcWNvbG9uICImI3gyMjU1OyI+
Cis8IUVOVElUWSBlY2lyICImI3gyMjU2OyI+Cis8IUVOVElUWSBlcWNpcmMgIiYjeDIyNTY7Ij4K
KzwhRU5USVRZIGNpcmUgIiYjeDIyNTc7Ij4KKzwhRU5USVRZIGNpcmNlcSAiJiN4MjI1NzsiPgor
PCFFTlRJVFkgd2VkZ2VxICImI3gyMjU5OyI+Cis8IUVOVElUWSB2ZWVlcSAiJiN4MjI1QTsiPgor
PCFFTlRJVFkgdHJpZSAiJiN4MjI1QzsiPgorPCFFTlRJVFkgdHJpYW5nbGVxICImI3gyMjVDOyI+
Cis8IUVOVElUWSBlcXVlc3QgIiYjeDIyNUY7Ij4KKzwhRU5USVRZIHF1ZXN0ZXEgIiYjeDIyNUY7
Ij4KKzwhRU5USVRZIG5lICImI3gyMjYwOyI+Cis8IUVOVElUWSBOb3RFcXVhbCAiJiN4MjI2MDsi
PgorPCFFTlRJVFkgZXF1aXYgIiYjeDIyNjE7Ij4KKzwhRU5USVRZIENvbmdydWVudCAiJiN4MjI2
MTsiPgorPCFFTlRJVFkgYm5lcXVpdiAiJiN4MjI2MTsmI3gyMEU1OyI+Cis8IUVOVElUWSBuZXF1
aXYgIiYjeDIyNjI7Ij4KKzwhRU5USVRZIE5vdENvbmdydWVudCAiJiN4MjI2MjsiPgorPCFFTlRJ
VFkgbGUgIiYjeDIyNjQ7Ij4KKzwhRU5USVRZIGxlcSAiJiN4MjI2NDsiPgorPCFFTlRJVFkgbnZs
ZSAiJiN4MjI2NDsmI3gyMEQyOyI+Cis8IUVOVElUWSBnZSAiJiN4MjI2NTsiPgorPCFFTlRJVFkg
R3JlYXRlckVxdWFsICImI3gyMjY1OyI+Cis8IUVOVElUWSBnZXEgIiYjeDIyNjU7Ij4KKzwhRU5U
SVRZIG52Z2UgIiYjeDIyNjU7JiN4MjBEMjsiPgorPCFFTlRJVFkgbEUgIiYjeDIyNjY7Ij4KKzwh
RU5USVRZIExlc3NGdWxsRXF1YWwgIiYjeDIyNjY7Ij4KKzwhRU5USVRZIGxlcXEgIiYjeDIyNjY7
Ij4KKzwhRU5USVRZIG5sRSAiJiN4MjI2NjsmI3gzMzg7Ij4KKzwhRU5USVRZIG5sZXFxICImI3gy
MjY2OyYjeDMzODsiPgorPCFFTlRJVFkgZ0UgIiYjeDIyNjc7Ij4KKzwhRU5USVRZIEdyZWF0ZXJG
dWxsRXF1YWwgIiYjeDIyNjc7Ij4KKzwhRU5USVRZIGdlcXEgIiYjeDIyNjc7Ij4KKzwhRU5USVRZ
IG5nRSAiJiN4MjI2NzsmI3gzMzg7Ij4KKzwhRU5USVRZIG5nZXFxICImI3gyMjY3OyYjeDMzODsi
PgorPCFFTlRJVFkgTm90R3JlYXRlckZ1bGxFcXVhbCAiJiN4MjI2NzsmI3gzMzg7Ij4KKzwhRU5U
SVRZIGxuRSAiJiN4MjI2ODsiPgorPCFFTlRJVFkgbG5lcXEgIiYjeDIyNjg7Ij4KKzwhRU5USVRZ
IGx2bkUgIiYjeDIyNjg7JiN4RkUwMDsiPgorPCFFTlRJVFkgbHZlcnRuZXFxICImI3gyMjY4OyYj
eEZFMDA7Ij4KKzwhRU5USVRZIGduRSAiJiN4MjI2OTsiPgorPCFFTlRJVFkgZ25lcXEgIiYjeDIy
Njk7Ij4KKzwhRU5USVRZIGd2bkUgIiYjeDIyNjk7JiN4RkUwMDsiPgorPCFFTlRJVFkgZ3ZlcnRu
ZXFxICImI3gyMjY5OyYjeEZFMDA7Ij4KKzwhRU5USVRZIEx0ICImI3gyMjZBOyI+Cis8IUVOVElU
WSBOZXN0ZWRMZXNzTGVzcyAiJiN4MjI2QTsiPgorPCFFTlRJVFkgbGwgIiYjeDIyNkE7Ij4KKzwh
RU5USVRZIG5MdHYgIiYjeDIyNkE7JiN4MzM4OyI+Cis8IUVOVElUWSBOb3RMZXNzTGVzcyAiJiN4
MjI2QTsmI3gzMzg7Ij4KKzwhRU5USVRZIG5MdCAiJiN4MjI2QTsmI3gyMEQyOyI+Cis8IUVOVElU
WSBHdCAiJiN4MjI2QjsiPgorPCFFTlRJVFkgTmVzdGVkR3JlYXRlckdyZWF0ZXIgIiYjeDIyNkI7
Ij4KKzwhRU5USVRZIGdnICImI3gyMjZCOyI+Cis8IUVOVElUWSBuR3R2ICImI3gyMjZCOyYjeDMz
ODsiPgorPCFFTlRJVFkgTm90R3JlYXRlckdyZWF0ZXIgIiYjeDIyNkI7JiN4MzM4OyI+Cis8IUVO
VElUWSBuR3QgIiYjeDIyNkI7JiN4MjBEMjsiPgorPCFFTlRJVFkgdHdpeHQgIiYjeDIyNkM7Ij4K
KzwhRU5USVRZIGJldHdlZW4gIiYjeDIyNkM7Ij4KKzwhRU5USVRZIE5vdEN1cENhcCAiJiN4MjI2
RDsiPgorPCFFTlRJVFkgbmx0ICImI3gyMjZFOyI+Cis8IUVOVElUWSBOb3RMZXNzICImI3gyMjZF
OyI+Cis8IUVOVElUWSBubGVzcyAiJiN4MjI2RTsiPgorPCFFTlRJVFkgbmd0ICImI3gyMjZGOyI+
Cis8IUVOVElUWSBOb3RHcmVhdGVyICImI3gyMjZGOyI+Cis8IUVOVElUWSBuZ3RyICImI3gyMjZG
OyI+Cis8IUVOVElUWSBubGUgIiYjeDIyNzA7Ij4KKzwhRU5USVRZIE5vdExlc3NFcXVhbCAiJiN4
MjI3MDsiPgorPCFFTlRJVFkgbmxlcSAiJiN4MjI3MDsiPgorPCFFTlRJVFkgbmdlICImI3gyMjcx
OyI+Cis8IUVOVElUWSBOb3RHcmVhdGVyRXF1YWwgIiYjeDIyNzE7Ij4KKzwhRU5USVRZIG5nZXEg
IiYjeDIyNzE7Ij4KKzwhRU5USVRZIGxzaW0gIiYjeDIyNzI7Ij4KKzwhRU5USVRZIExlc3NUaWxk
ZSAiJiN4MjI3MjsiPgorPCFFTlRJVFkgbGVzc3NpbSAiJiN4MjI3MjsiPgorPCFFTlRJVFkgZ3Np
bSAiJiN4MjI3MzsiPgorPCFFTlRJVFkgZ3Ryc2ltICImI3gyMjczOyI+Cis8IUVOVElUWSBHcmVh
dGVyVGlsZGUgIiYjeDIyNzM7Ij4KKzwhRU5USVRZIG5sc2ltICImI3gyMjc0OyI+Cis8IUVOVElU
WSBOb3RMZXNzVGlsZGUgIiYjeDIyNzQ7Ij4KKzwhRU5USVRZIG5nc2ltICImI3gyMjc1OyI+Cis8
IUVOVElUWSBOb3RHcmVhdGVyVGlsZGUgIiYjeDIyNzU7Ij4KKzwhRU5USVRZIGxnICImI3gyMjc2
OyI+Cis8IUVOVElUWSBsZXNzZ3RyICImI3gyMjc2OyI+Cis8IUVOVElUWSBMZXNzR3JlYXRlciAi
JiN4MjI3NjsiPgorPCFFTlRJVFkgZ2wgIiYjeDIyNzc7Ij4KKzwhRU5USVRZIGd0cmxlc3MgIiYj
eDIyNzc7Ij4KKzwhRU5USVRZIEdyZWF0ZXJMZXNzICImI3gyMjc3OyI+Cis8IUVOVElUWSBudGxn
ICImI3gyMjc4OyI+Cis8IUVOVElUWSBOb3RMZXNzR3JlYXRlciAiJiN4MjI3ODsiPgorPCFFTlRJ
VFkgbnRnbCAiJiN4MjI3OTsiPgorPCFFTlRJVFkgTm90R3JlYXRlckxlc3MgIiYjeDIyNzk7Ij4K
KzwhRU5USVRZIHByICImI3gyMjdBOyI+Cis8IUVOVElUWSBQcmVjZWRlcyAiJiN4MjI3QTsiPgor
PCFFTlRJVFkgcHJlYyAiJiN4MjI3QTsiPgorPCFFTlRJVFkgc2MgIiYjeDIyN0I7Ij4KKzwhRU5U
SVRZIFN1Y2NlZWRzICImI3gyMjdCOyI+Cis8IUVOVElUWSBzdWNjICImI3gyMjdCOyI+Cis8IUVO
VElUWSBwcmN1ZSAiJiN4MjI3QzsiPgorPCFFTlRJVFkgUHJlY2VkZXNTbGFudEVxdWFsICImI3gy
MjdDOyI+Cis8IUVOVElUWSBwcmVjY3VybHllcSAiJiN4MjI3QzsiPgorPCFFTlRJVFkgc2NjdWUg
IiYjeDIyN0Q7Ij4KKzwhRU5USVRZIFN1Y2NlZWRzU2xhbnRFcXVhbCAiJiN4MjI3RDsiPgorPCFF
TlRJVFkgc3VjY2N1cmx5ZXEgIiYjeDIyN0Q7Ij4KKzwhRU5USVRZIHByc2ltICImI3gyMjdFOyI+
Cis8IUVOVElUWSBwcmVjc2ltICImI3gyMjdFOyI+Cis8IUVOVElUWSBQcmVjZWRlc1RpbGRlICIm
I3gyMjdFOyI+Cis8IUVOVElUWSBzY3NpbSAiJiN4MjI3RjsiPgorPCFFTlRJVFkgc3VjY3NpbSAi
JiN4MjI3RjsiPgorPCFFTlRJVFkgU3VjY2VlZHNUaWxkZSAiJiN4MjI3RjsiPgorPCFFTlRJVFkg
Tm90U3VjY2VlZHNUaWxkZSAiJiN4MjI3RjsmI3gzMzg7Ij4KKzwhRU5USVRZIG5wciAiJiN4MjI4
MDsiPgorPCFFTlRJVFkgbnByZWMgIiYjeDIyODA7Ij4KKzwhRU5USVRZIE5vdFByZWNlZGVzICIm
I3gyMjgwOyI+Cis8IUVOVElUWSBuc2MgIiYjeDIyODE7Ij4KKzwhRU5USVRZIG5zdWNjICImI3gy
MjgxOyI+Cis8IUVOVElUWSBOb3RTdWNjZWVkcyAiJiN4MjI4MTsiPgorPCFFTlRJVFkgc3ViICIm
I3gyMjgyOyI+Cis8IUVOVElUWSBzdWJzZXQgIiYjeDIyODI7Ij4KKzwhRU5USVRZIHZuc3ViICIm
I3gyMjgyOyYjeDIwRDI7Ij4KKzwhRU5USVRZIG5zdWJzZXQgIiYjeDIyODI7JiN4MjBEMjsiPgor
PCFFTlRJVFkgTm90U3Vic2V0ICImI3gyMjgyOyYjeDIwRDI7Ij4KKzwhRU5USVRZIHN1cCAiJiN4
MjI4MzsiPgorPCFFTlRJVFkgc3Vwc2V0ICImI3gyMjgzOyI+Cis8IUVOVElUWSBTdXBlcnNldCAi
JiN4MjI4MzsiPgorPCFFTlRJVFkgdm5zdXAgIiYjeDIyODM7JiN4MjBEMjsiPgorPCFFTlRJVFkg
bnN1cHNldCAiJiN4MjI4MzsmI3gyMEQyOyI+Cis8IUVOVElUWSBOb3RTdXBlcnNldCAiJiN4MjI4
MzsmI3gyMEQyOyI+Cis8IUVOVElUWSBuc3ViICImI3gyMjg0OyI+Cis8IUVOVElUWSBuc3VwICIm
I3gyMjg1OyI+Cis8IUVOVElUWSBzdWJlICImI3gyMjg2OyI+Cis8IUVOVElUWSBTdWJzZXRFcXVh
bCAiJiN4MjI4NjsiPgorPCFFTlRJVFkgc3Vic2V0ZXEgIiYjeDIyODY7Ij4KKzwhRU5USVRZIHN1
cGUgIiYjeDIyODc7Ij4KKzwhRU5USVRZIHN1cHNldGVxICImI3gyMjg3OyI+Cis8IUVOVElUWSBT
dXBlcnNldEVxdWFsICImI3gyMjg3OyI+Cis8IUVOVElUWSBuc3ViZSAiJiN4MjI4ODsiPgorPCFF
TlRJVFkgbnN1YnNldGVxICImI3gyMjg4OyI+Cis8IUVOVElUWSBOb3RTdWJzZXRFcXVhbCAiJiN4
MjI4ODsiPgorPCFFTlRJVFkgbnN1cGUgIiYjeDIyODk7Ij4KKzwhRU5USVRZIG5zdXBzZXRlcSAi
JiN4MjI4OTsiPgorPCFFTlRJVFkgTm90U3VwZXJzZXRFcXVhbCAiJiN4MjI4OTsiPgorPCFFTlRJ
VFkgc3VibmUgIiYjeDIyOEE7Ij4KKzwhRU5USVRZIHN1YnNldG5lcSAiJiN4MjI4QTsiPgorPCFF
TlRJVFkgdnN1Ym5lICImI3gyMjhBOyYjeEZFMDA7Ij4KKzwhRU5USVRZIHZhcnN1YnNldG5lcSAi
JiN4MjI4QTsmI3hGRTAwOyI+Cis8IUVOVElUWSBzdXBuZSAiJiN4MjI4QjsiPgorPCFFTlRJVFkg
c3Vwc2V0bmVxICImI3gyMjhCOyI+Cis8IUVOVElUWSB2c3VwbmUgIiYjeDIyOEI7JiN4RkUwMDsi
PgorPCFFTlRJVFkgdmFyc3Vwc2V0bmVxICImI3gyMjhCOyYjeEZFMDA7Ij4KKzwhRU5USVRZIGN1
cGRvdCAiJiN4MjI4RDsiPgorPCFFTlRJVFkgdXBsdXMgIiYjeDIyOEU7Ij4KKzwhRU5USVRZIFVu
aW9uUGx1cyAiJiN4MjI4RTsiPgorPCFFTlRJVFkgc3FzdWIgIiYjeDIyOEY7Ij4KKzwhRU5USVRZ
IFNxdWFyZVN1YnNldCAiJiN4MjI4RjsiPgorPCFFTlRJVFkgc3FzdWJzZXQgIiYjeDIyOEY7Ij4K
KzwhRU5USVRZIE5vdFNxdWFyZVN1YnNldCAiJiN4MjI4RjsmI3gzMzg7Ij4KKzwhRU5USVRZIHNx
c3VwICImI3gyMjkwOyI+Cis8IUVOVElUWSBTcXVhcmVTdXBlcnNldCAiJiN4MjI5MDsiPgorPCFF
TlRJVFkgc3FzdXBzZXQgIiYjeDIyOTA7Ij4KKzwhRU5USVRZIE5vdFNxdWFyZVN1cGVyc2V0ICIm
I3gyMjkwOyYjeDMzODsiPgorPCFFTlRJVFkgc3FzdWJlICImI3gyMjkxOyI+Cis8IUVOVElUWSBT
cXVhcmVTdWJzZXRFcXVhbCAiJiN4MjI5MTsiPgorPCFFTlRJVFkgc3FzdWJzZXRlcSAiJiN4MjI5
MTsiPgorPCFFTlRJVFkgc3FzdXBlICImI3gyMjkyOyI+Cis8IUVOVElUWSBTcXVhcmVTdXBlcnNl
dEVxdWFsICImI3gyMjkyOyI+Cis8IUVOVElUWSBzcXN1cHNldGVxICImI3gyMjkyOyI+Cis8IUVO
VElUWSBzcWNhcCAiJiN4MjI5MzsiPgorPCFFTlRJVFkgU3F1YXJlSW50ZXJzZWN0aW9uICImI3gy
MjkzOyI+Cis8IUVOVElUWSBzcWNhcHMgIiYjeDIyOTM7JiN4RkUwMDsiPgorPCFFTlRJVFkgc3Fj
dXAgIiYjeDIyOTQ7Ij4KKzwhRU5USVRZIFNxdWFyZVVuaW9uICImI3gyMjk0OyI+Cis8IUVOVElU
WSBzcWN1cHMgIiYjeDIyOTQ7JiN4RkUwMDsiPgorPCFFTlRJVFkgb3BsdXMgIiYjeDIyOTU7Ij4K
KzwhRU5USVRZIENpcmNsZVBsdXMgIiYjeDIyOTU7Ij4KKzwhRU5USVRZIG9taW51cyAiJiN4MjI5
NjsiPgorPCFFTlRJVFkgQ2lyY2xlTWludXMgIiYjeDIyOTY7Ij4KKzwhRU5USVRZIG90aW1lcyAi
JiN4MjI5NzsiPgorPCFFTlRJVFkgQ2lyY2xlVGltZXMgIiYjeDIyOTc7Ij4KKzwhRU5USVRZIG9z
b2wgIiYjeDIyOTg7Ij4KKzwhRU5USVRZIG9kb3QgIiYjeDIyOTk7Ij4KKzwhRU5USVRZIENpcmNs
ZURvdCAiJiN4MjI5OTsiPgorPCFFTlRJVFkgb2NpciAiJiN4MjI5QTsiPgorPCFFTlRJVFkgY2ly
Y2xlZGNpcmMgIiYjeDIyOUE7Ij4KKzwhRU5USVRZIG9hc3QgIiYjeDIyOUI7Ij4KKzwhRU5USVRZ
IGNpcmNsZWRhc3QgIiYjeDIyOUI7Ij4KKzwhRU5USVRZIG9kYXNoICImI3gyMjlEOyI+Cis8IUVO
VElUWSBjaXJjbGVkZGFzaCAiJiN4MjI5RDsiPgorPCFFTlRJVFkgcGx1c2IgIiYjeDIyOUU7Ij4K
KzwhRU5USVRZIGJveHBsdXMgIiYjeDIyOUU7Ij4KKzwhRU5USVRZIG1pbnVzYiAiJiN4MjI5Rjsi
PgorPCFFTlRJVFkgYm94bWludXMgIiYjeDIyOUY7Ij4KKzwhRU5USVRZIHRpbWVzYiAiJiN4MjJB
MDsiPgorPCFFTlRJVFkgYm94dGltZXMgIiYjeDIyQTA7Ij4KKzwhRU5USVRZIHNkb3RiICImI3gy
MkExOyI+Cis8IUVOVElUWSBkb3RzcXVhcmUgIiYjeDIyQTE7Ij4KKzwhRU5USVRZIHZkYXNoICIm
I3gyMkEyOyI+Cis8IUVOVElUWSBSaWdodFRlZSAiJiN4MjJBMjsiPgorPCFFTlRJVFkgZGFzaHYg
IiYjeDIyQTM7Ij4KKzwhRU5USVRZIExlZnRUZWUgIiYjeDIyQTM7Ij4KKzwhRU5USVRZIHRvcCAi
JiN4MjJBNDsiPgorPCFFTlRJVFkgRG93blRlZSAiJiN4MjJBNDsiPgorPCFFTlRJVFkgYm90dG9t
ICImI3gyMkE1OyI+Cis8IUVOVElUWSBib3QgIiYjeDIyQTU7Ij4KKzwhRU5USVRZIHBlcnAgIiYj
eDIyQTU7Ij4KKzwhRU5USVRZIFVwVGVlICImI3gyMkE1OyI+Cis8IUVOVElUWSBtb2RlbHMgIiYj
eDIyQTc7Ij4KKzwhRU5USVRZIHZEYXNoICImI3gyMkE4OyI+Cis8IUVOVElUWSBEb3VibGVSaWdo
dFRlZSAiJiN4MjJBODsiPgorPCFFTlRJVFkgVmRhc2ggIiYjeDIyQTk7Ij4KKzwhRU5USVRZIFZ2
ZGFzaCAiJiN4MjJBQTsiPgorPCFFTlRJVFkgVkRhc2ggIiYjeDIyQUI7Ij4KKzwhRU5USVRZIG52
ZGFzaCAiJiN4MjJBQzsiPgorPCFFTlRJVFkgbnZEYXNoICImI3gyMkFEOyI+Cis8IUVOVElUWSBu
VmRhc2ggIiYjeDIyQUU7Ij4KKzwhRU5USVRZIG5WRGFzaCAiJiN4MjJBRjsiPgorPCFFTlRJVFkg
cHJ1cmVsICImI3gyMkIwOyI+Cis8IUVOVElUWSB2bHRyaSAiJiN4MjJCMjsiPgorPCFFTlRJVFkg
dmFydHJpYW5nbGVsZWZ0ICImI3gyMkIyOyI+Cis8IUVOVElUWSBMZWZ0VHJpYW5nbGUgIiYjeDIy
QjI7Ij4KKzwhRU5USVRZIHZydHJpICImI3gyMkIzOyI+Cis8IUVOVElUWSB2YXJ0cmlhbmdsZXJp
Z2h0ICImI3gyMkIzOyI+Cis8IUVOVElUWSBSaWdodFRyaWFuZ2xlICImI3gyMkIzOyI+Cis8IUVO
VElUWSBsdHJpZSAiJiN4MjJCNDsiPgorPCFFTlRJVFkgdHJpYW5nbGVsZWZ0ZXEgIiYjeDIyQjQ7
Ij4KKzwhRU5USVRZIExlZnRUcmlhbmdsZUVxdWFsICImI3gyMkI0OyI+Cis8IUVOVElUWSBudmx0
cmllICImI3gyMkI0OyYjeDIwRDI7Ij4KKzwhRU5USVRZIHJ0cmllICImI3gyMkI1OyI+Cis8IUVO
VElUWSB0cmlhbmdsZXJpZ2h0ZXEgIiYjeDIyQjU7Ij4KKzwhRU5USVRZIFJpZ2h0VHJpYW5nbGVF
cXVhbCAiJiN4MjJCNTsiPgorPCFFTlRJVFkgbnZydHJpZSAiJiN4MjJCNTsmI3gyMEQyOyI+Cis8
IUVOVElUWSBvcmlnb2YgIiYjeDIyQjY7Ij4KKzwhRU5USVRZIGltb2YgIiYjeDIyQjc7Ij4KKzwh
RU5USVRZIG11bWFwICImI3gyMkI4OyI+Cis8IUVOVElUWSBtdWx0aW1hcCAiJiN4MjJCODsiPgor
PCFFTlRJVFkgaGVyY29uICImI3gyMkI5OyI+Cis8IUVOVElUWSBpbnRjYWwgIiYjeDIyQkE7Ij4K
KzwhRU5USVRZIGludGVyY2FsICImI3gyMkJBOyI+Cis8IUVOVElUWSB2ZWViYXIgIiYjeDIyQkI7
Ij4KKzwhRU5USVRZIGJhcnZlZSAiJiN4MjJCRDsiPgorPCFFTlRJVFkgYW5ncnR2YiAiJiN4MjJC
RTsiPgorPCFFTlRJVFkgbHJ0cmkgIiYjeDIyQkY7Ij4KKzwhRU5USVRZIHh3ZWRnZSAiJiN4MjJD
MDsiPgorPCFFTlRJVFkgV2VkZ2UgIiYjeDIyQzA7Ij4KKzwhRU5USVRZIGJpZ3dlZGdlICImI3gy
MkMwOyI+Cis8IUVOVElUWSB4dmVlICImI3gyMkMxOyI+Cis8IUVOVElUWSBWZWUgIiYjeDIyQzE7
Ij4KKzwhRU5USVRZIGJpZ3ZlZSAiJiN4MjJDMTsiPgorPCFFTlRJVFkgeGNhcCAiJiN4MjJDMjsi
PgorPCFFTlRJVFkgSW50ZXJzZWN0aW9uICImI3gyMkMyOyI+Cis8IUVOVElUWSBiaWdjYXAgIiYj
eDIyQzI7Ij4KKzwhRU5USVRZIHhjdXAgIiYjeDIyQzM7Ij4KKzwhRU5USVRZIFVuaW9uICImI3gy
MkMzOyI+Cis8IUVOVElUWSBiaWdjdXAgIiYjeDIyQzM7Ij4KKzwhRU5USVRZIGRpYW0gIiYjeDIy
QzQ7Ij4KKzwhRU5USVRZIGRpYW1vbmQgIiYjeDIyQzQ7Ij4KKzwhRU5USVRZIERpYW1vbmQgIiYj
eDIyQzQ7Ij4KKzwhRU5USVRZIHNkb3QgIiYjeDIyQzU7Ij4KKzwhRU5USVRZIHNzdGFyZiAiJiN4
MjJDNjsiPgorPCFFTlRJVFkgU3RhciAiJiN4MjJDNjsiPgorPCFFTlRJVFkgZGl2b254ICImI3gy
MkM3OyI+Cis8IUVOVElUWSBkaXZpZGVvbnRpbWVzICImI3gyMkM3OyI+Cis8IUVOVElUWSBib3d0
aWUgIiYjeDIyQzg7Ij4KKzwhRU5USVRZIGx0aW1lcyAiJiN4MjJDOTsiPgorPCFFTlRJVFkgcnRp
bWVzICImI3gyMkNBOyI+Cis8IUVOVElUWSBsdGhyZWUgIiYjeDIyQ0I7Ij4KKzwhRU5USVRZIGxl
ZnR0aHJlZXRpbWVzICImI3gyMkNCOyI+Cis8IUVOVElUWSBydGhyZWUgIiYjeDIyQ0M7Ij4KKzwh
RU5USVRZIHJpZ2h0dGhyZWV0aW1lcyAiJiN4MjJDQzsiPgorPCFFTlRJVFkgYnNpbWUgIiYjeDIy
Q0Q7Ij4KKzwhRU5USVRZIGJhY2tzaW1lcSAiJiN4MjJDRDsiPgorPCFFTlRJVFkgY3V2ZWUgIiYj
eDIyQ0U7Ij4KKzwhRU5USVRZIGN1cmx5dmVlICImI3gyMkNFOyI+Cis8IUVOVElUWSBjdXdlZCAi
JiN4MjJDRjsiPgorPCFFTlRJVFkgY3VybHl3ZWRnZSAiJiN4MjJDRjsiPgorPCFFTlRJVFkgU3Vi
ICImI3gyMkQwOyI+Cis8IUVOVElUWSBTdWJzZXQgIiYjeDIyRDA7Ij4KKzwhRU5USVRZIFN1cCAi
JiN4MjJEMTsiPgorPCFFTlRJVFkgU3Vwc2V0ICImI3gyMkQxOyI+Cis8IUVOVElUWSBDYXAgIiYj
eDIyRDI7Ij4KKzwhRU5USVRZIEN1cCAiJiN4MjJEMzsiPgorPCFFTlRJVFkgZm9yayAiJiN4MjJE
NDsiPgorPCFFTlRJVFkgcGl0Y2hmb3JrICImI3gyMkQ0OyI+Cis8IUVOVElUWSBlcGFyICImI3gy
MkQ1OyI+Cis8IUVOVElUWSBsdGRvdCAiJiN4MjJENjsiPgorPCFFTlRJVFkgbGVzc2RvdCAiJiN4
MjJENjsiPgorPCFFTlRJVFkgZ3Rkb3QgIiYjeDIyRDc7Ij4KKzwhRU5USVRZIGd0cmRvdCAiJiN4
MjJENzsiPgorPCFFTlRJVFkgTGwgIiYjeDIyRDg7Ij4KKzwhRU5USVRZIG5MbCAiJiN4MjJEODsm
I3gzMzg7Ij4KKzwhRU5USVRZIEdnICImI3gyMkQ5OyI+Cis8IUVOVElUWSBnZ2cgIiYjeDIyRDk7
Ij4KKzwhRU5USVRZIG5HZyAiJiN4MjJEOTsmI3gzMzg7Ij4KKzwhRU5USVRZIGxlZyAiJiN4MjJE
QTsiPgorPCFFTlRJVFkgTGVzc0VxdWFsR3JlYXRlciAiJiN4MjJEQTsiPgorPCFFTlRJVFkgbGVz
c2VxZ3RyICImI3gyMkRBOyI+Cis8IUVOVElUWSBsZXNnICImI3gyMkRBOyYjeEZFMDA7Ij4KKzwh
RU5USVRZIGdlbCAiJiN4MjJEQjsiPgorPCFFTlRJVFkgZ3RyZXFsZXNzICImI3gyMkRCOyI+Cis8
IUVOVElUWSBHcmVhdGVyRXF1YWxMZXNzICImI3gyMkRCOyI+Cis8IUVOVElUWSBnZXNsICImI3gy
MkRCOyYjeEZFMDA7Ij4KKzwhRU5USVRZIGN1ZXByICImI3gyMkRFOyI+Cis8IUVOVElUWSBjdXJs
eWVxcHJlYyAiJiN4MjJERTsiPgorPCFFTlRJVFkgY3Vlc2MgIiYjeDIyREY7Ij4KKzwhRU5USVRZ
IGN1cmx5ZXFzdWNjICImI3gyMkRGOyI+Cis8IUVOVElUWSBucHJjdWUgIiYjeDIyRTA7Ij4KKzwh
RU5USVRZIE5vdFByZWNlZGVzU2xhbnRFcXVhbCAiJiN4MjJFMDsiPgorPCFFTlRJVFkgbnNjY3Vl
ICImI3gyMkUxOyI+Cis8IUVOVElUWSBOb3RTdWNjZWVkc1NsYW50RXF1YWwgIiYjeDIyRTE7Ij4K
KzwhRU5USVRZIG5zcXN1YmUgIiYjeDIyRTI7Ij4KKzwhRU5USVRZIE5vdFNxdWFyZVN1YnNldEVx
dWFsICImI3gyMkUyOyI+Cis8IUVOVElUWSBuc3FzdXBlICImI3gyMkUzOyI+Cis8IUVOVElUWSBO
b3RTcXVhcmVTdXBlcnNldEVxdWFsICImI3gyMkUzOyI+Cis8IUVOVElUWSBsbnNpbSAiJiN4MjJF
NjsiPgorPCFFTlRJVFkgZ25zaW0gIiYjeDIyRTc7Ij4KKzwhRU5USVRZIHBybnNpbSAiJiN4MjJF
ODsiPgorPCFFTlRJVFkgcHJlY25zaW0gIiYjeDIyRTg7Ij4KKzwhRU5USVRZIHNjbnNpbSAiJiN4
MjJFOTsiPgorPCFFTlRJVFkgc3VjY25zaW0gIiYjeDIyRTk7Ij4KKzwhRU5USVRZIG5sdHJpICIm
I3gyMkVBOyI+Cis8IUVOVElUWSBudHJpYW5nbGVsZWZ0ICImI3gyMkVBOyI+Cis8IUVOVElUWSBO
b3RMZWZ0VHJpYW5nbGUgIiYjeDIyRUE7Ij4KKzwhRU5USVRZIG5ydHJpICImI3gyMkVCOyI+Cis8
IUVOVElUWSBudHJpYW5nbGVyaWdodCAiJiN4MjJFQjsiPgorPCFFTlRJVFkgTm90UmlnaHRUcmlh
bmdsZSAiJiN4MjJFQjsiPgorPCFFTlRJVFkgbmx0cmllICImI3gyMkVDOyI+Cis8IUVOVElUWSBu
dHJpYW5nbGVsZWZ0ZXEgIiYjeDIyRUM7Ij4KKzwhRU5USVRZIE5vdExlZnRUcmlhbmdsZUVxdWFs
ICImI3gyMkVDOyI+Cis8IUVOVElUWSBucnRyaWUgIiYjeDIyRUQ7Ij4KKzwhRU5USVRZIG50cmlh
bmdsZXJpZ2h0ZXEgIiYjeDIyRUQ7Ij4KKzwhRU5USVRZIE5vdFJpZ2h0VHJpYW5nbGVFcXVhbCAi
JiN4MjJFRDsiPgorPCFFTlRJVFkgdmVsbGlwICImI3gyMkVFOyI+Cis8IUVOVElUWSBjdGRvdCAi
JiN4MjJFRjsiPgorPCFFTlRJVFkgdXRkb3QgIiYjeDIyRjA7Ij4KKzwhRU5USVRZIGR0ZG90ICIm
I3gyMkYxOyI+Cis8IUVOVElUWSBkaXNpbiAiJiN4MjJGMjsiPgorPCFFTlRJVFkgaXNpbnN2ICIm
I3gyMkYzOyI+Cis8IUVOVElUWSBpc2lucyAiJiN4MjJGNDsiPgorPCFFTlRJVFkgaXNpbmRvdCAi
JiN4MjJGNTsiPgorPCFFTlRJVFkgbm90aW5kb3QgIiYjeDIyRjU7JiN4MzM4OyI+Cis8IUVOVElU
WSBub3RpbnZjICImI3gyMkY2OyI+Cis8IUVOVElUWSBub3RpbnZiICImI3gyMkY3OyI+Cis8IUVO
VElUWSBpc2luRSAiJiN4MjJGOTsiPgorPCFFTlRJVFkgbm90aW5FICImI3gyMkY5OyYjeDMzODsi
PgorPCFFTlRJVFkgbmlzZCAiJiN4MjJGQTsiPgorPCFFTlRJVFkgeG5pcyAiJiN4MjJGQjsiPgor
PCFFTlRJVFkgbmlzICImI3gyMkZDOyI+Cis8IUVOVElUWSBub3RuaXZjICImI3gyMkZEOyI+Cis8
IUVOVElUWSBub3RuaXZiICImI3gyMkZFOyI+Cis8IUVOVElUWSBiYXJ3ZWQgIiYjeDIzMDU7Ij4K
KzwhRU5USVRZIGJhcndlZGdlICImI3gyMzA1OyI+Cis8IUVOVElUWSBCYXJ3ZWQgIiYjeDIzMDY7
Ij4KKzwhRU5USVRZIGRvdWJsZWJhcndlZGdlICImI3gyMzA2OyI+Cis8IUVOVElUWSBsY2VpbCAi
JiN4MjMwODsiPgorPCFFTlRJVFkgTGVmdENlaWxpbmcgIiYjeDIzMDg7Ij4KKzwhRU5USVRZIHJj
ZWlsICImI3gyMzA5OyI+Cis8IUVOVElUWSBSaWdodENlaWxpbmcgIiYjeDIzMDk7Ij4KKzwhRU5U
SVRZIGxmbG9vciAiJiN4MjMwQTsiPgorPCFFTlRJVFkgTGVmdEZsb29yICImI3gyMzBBOyI+Cis8
IUVOVElUWSByZmxvb3IgIiYjeDIzMEI7Ij4KKzwhRU5USVRZIFJpZ2h0Rmxvb3IgIiYjeDIzMEI7
Ij4KKzwhRU5USVRZIGRyY3JvcCAiJiN4MjMwQzsiPgorPCFFTlRJVFkgZGxjcm9wICImI3gyMzBE
OyI+Cis8IUVOVElUWSB1cmNyb3AgIiYjeDIzMEU7Ij4KKzwhRU5USVRZIHVsY3JvcCAiJiN4MjMw
RjsiPgorPCFFTlRJVFkgYm5vdCAiJiN4MjMxMDsiPgorPCFFTlRJVFkgcHJvZmxpbmUgIiYjeDIz
MTI7Ij4KKzwhRU5USVRZIHByb2ZzdXJmICImI3gyMzEzOyI+Cis8IUVOVElUWSB0ZWxyZWMgIiYj
eDIzMTU7Ij4KKzwhRU5USVRZIHRhcmdldCAiJiN4MjMxNjsiPgorPCFFTlRJVFkgdWxjb3JuICIm
I3gyMzFDOyI+Cis8IUVOVElUWSB1bGNvcm5lciAiJiN4MjMxQzsiPgorPCFFTlRJVFkgdXJjb3Ju
ICImI3gyMzFEOyI+Cis8IUVOVElUWSB1cmNvcm5lciAiJiN4MjMxRDsiPgorPCFFTlRJVFkgZGxj
b3JuICImI3gyMzFFOyI+Cis8IUVOVElUWSBsbGNvcm5lciAiJiN4MjMxRTsiPgorPCFFTlRJVFkg
ZHJjb3JuICImI3gyMzFGOyI+Cis8IUVOVElUWSBscmNvcm5lciAiJiN4MjMxRjsiPgorPCFFTlRJ
VFkgZnJvd24gIiYjeDIzMjI7Ij4KKzwhRU5USVRZIHNmcm93biAiJiN4MjMyMjsiPgorPCFFTlRJ
VFkgc21pbGUgIiYjeDIzMjM7Ij4KKzwhRU5USVRZIHNzbWlsZSAiJiN4MjMyMzsiPgorPCFFTlRJ
VFkgY3lsY3R5ICImI3gyMzJEOyI+Cis8IUVOVElUWSBwcm9mYWxhciAiJiN4MjMyRTsiPgorPCFF
TlRJVFkgdG9wYm90ICImI3gyMzM2OyI+Cis8IUVOVElUWSBvdmJhciAiJiN4MjMzRDsiPgorPCFF
TlRJVFkgc29sYmFyICImI3gyMzNGOyI+Cis8IUVOVElUWSBhbmd6YXJyICImI3gyMzdDOyI+Cis8
IUVOVElUWSBsbW91c3QgIiYjeDIzQjA7Ij4KKzwhRU5USVRZIGxtb3VzdGFjaGUgIiYjeDIzQjA7
Ij4KKzwhRU5USVRZIHJtb3VzdCAiJiN4MjNCMTsiPgorPCFFTlRJVFkgcm1vdXN0YWNoZSAiJiN4
MjNCMTsiPgorPCFFTlRJVFkgdGJyayAiJiN4MjNCNDsiPgorPCFFTlRJVFkgT3ZlckJyYWNrZXQg
IiYjeDIzQjQ7Ij4KKzwhRU5USVRZIGJicmsgIiYjeDIzQjU7Ij4KKzwhRU5USVRZIFVuZGVyQnJh
Y2tldCAiJiN4MjNCNTsiPgorPCFFTlRJVFkgYmJya3RicmsgIiYjeDIzQjY7Ij4KKzwhRU5USVRZ
IE92ZXJQYXJlbnRoZXNpcyAiJiN4MjNEQzsiPgorPCFFTlRJVFkgVW5kZXJQYXJlbnRoZXNpcyAi
JiN4MjNERDsiPgorPCFFTlRJVFkgT3ZlckJyYWNlICImI3gyM0RFOyI+Cis8IUVOVElUWSBVbmRl
ckJyYWNlICImI3gyM0RGOyI+Cis8IUVOVElUWSB0cnBleml1bSAiJiN4MjNFMjsiPgorPCFFTlRJ
VFkgZWxpbnRlcnMgIiYjeDIzRTc7Ij4KKzwhRU5USVRZIGJsYW5rICImI3gyNDIzOyI+Cis8IUVO
VElUWSBvUyAiJiN4MjRDODsiPgorPCFFTlRJVFkgY2lyY2xlZFMgIiYjeDI0Qzg7Ij4KKzwhRU5U
SVRZIGJveGggIiYjeDI1MDA7Ij4KKzwhRU5USVRZIEhvcml6b250YWxMaW5lICImI3gyNTAwOyI+
Cis8IUVOVElUWSBib3h2ICImI3gyNTAyOyI+Cis8IUVOVElUWSBib3hkciAiJiN4MjUwQzsiPgor
PCFFTlRJVFkgYm94ZGwgIiYjeDI1MTA7Ij4KKzwhRU5USVRZIGJveHVyICImI3gyNTE0OyI+Cis8
IUVOVElUWSBib3h1bCAiJiN4MjUxODsiPgorPCFFTlRJVFkgYm94dnIgIiYjeDI1MUM7Ij4KKzwh
RU5USVRZIGJveHZsICImI3gyNTI0OyI+Cis8IUVOVElUWSBib3hoZCAiJiN4MjUyQzsiPgorPCFF
TlRJVFkgYm94aHUgIiYjeDI1MzQ7Ij4KKzwhRU5USVRZIGJveHZoICImI3gyNTNDOyI+Cis8IUVO
VElUWSBib3hIICImI3gyNTUwOyI+Cis8IUVOVElUWSBib3hWICImI3gyNTUxOyI+Cis8IUVOVElU
WSBib3hkUiAiJiN4MjU1MjsiPgorPCFFTlRJVFkgYm94RHIgIiYjeDI1NTM7Ij4KKzwhRU5USVRZ
IGJveERSICImI3gyNTU0OyI+Cis8IUVOVElUWSBib3hkTCAiJiN4MjU1NTsiPgorPCFFTlRJVFkg
Ym94RGwgIiYjeDI1NTY7Ij4KKzwhRU5USVRZIGJveERMICImI3gyNTU3OyI+Cis8IUVOVElUWSBi
b3h1UiAiJiN4MjU1ODsiPgorPCFFTlRJVFkgYm94VXIgIiYjeDI1NTk7Ij4KKzwhRU5USVRZIGJv
eFVSICImI3gyNTVBOyI+Cis8IUVOVElUWSBib3h1TCAiJiN4MjU1QjsiPgorPCFFTlRJVFkgYm94
VWwgIiYjeDI1NUM7Ij4KKzwhRU5USVRZIGJveFVMICImI3gyNTVEOyI+Cis8IUVOVElUWSBib3h2
UiAiJiN4MjU1RTsiPgorPCFFTlRJVFkgYm94VnIgIiYjeDI1NUY7Ij4KKzwhRU5USVRZIGJveFZS
ICImI3gyNTYwOyI+Cis8IUVOVElUWSBib3h2TCAiJiN4MjU2MTsiPgorPCFFTlRJVFkgYm94Vmwg
IiYjeDI1NjI7Ij4KKzwhRU5USVRZIGJveFZMICImI3gyNTYzOyI+Cis8IUVOVElUWSBib3hIZCAi
JiN4MjU2NDsiPgorPCFFTlRJVFkgYm94aEQgIiYjeDI1NjU7Ij4KKzwhRU5USVRZIGJveEhEICIm
I3gyNTY2OyI+Cis8IUVOVElUWSBib3hIdSAiJiN4MjU2NzsiPgorPCFFTlRJVFkgYm94aFUgIiYj
eDI1Njg7Ij4KKzwhRU5USVRZIGJveEhVICImI3gyNTY5OyI+Cis8IUVOVElUWSBib3h2SCAiJiN4
MjU2QTsiPgorPCFFTlRJVFkgYm94VmggIiYjeDI1NkI7Ij4KKzwhRU5USVRZIGJveFZIICImI3gy
NTZDOyI+Cis8IUVOVElUWSB1aGJsayAiJiN4MjU4MDsiPgorPCFFTlRJVFkgbGhibGsgIiYjeDI1
ODQ7Ij4KKzwhRU5USVRZIGJsb2NrICImI3gyNTg4OyI+Cis8IUVOVElUWSBibGsxNCAiJiN4MjU5
MTsiPgorPCFFTlRJVFkgYmxrMTIgIiYjeDI1OTI7Ij4KKzwhRU5USVRZIGJsazM0ICImI3gyNTkz
OyI+Cis8IUVOVElUWSBzcXUgIiYjeDI1QTE7Ij4KKzwhRU5USVRZIHNxdWFyZSAiJiN4MjVBMTsi
PgorPCFFTlRJVFkgU3F1YXJlICImI3gyNUExOyI+Cis8IUVOVElUWSBzcXVmICImI3gyNUFBOyI+
Cis8IUVOVElUWSBzcXVhcmYgIiYjeDI1QUE7Ij4KKzwhRU5USVRZIGJsYWNrc3F1YXJlICImI3gy
NUFBOyI+Cis8IUVOVElUWSBGaWxsZWRWZXJ5U21hbGxTcXVhcmUgIiYjeDI1QUE7Ij4KKzwhRU5U
SVRZIEVtcHR5VmVyeVNtYWxsU3F1YXJlICImI3gyNUFCOyI+Cis8IUVOVElUWSByZWN0ICImI3gy
NUFEOyI+Cis8IUVOVElUWSBtYXJrZXIgIiYjeDI1QUU7Ij4KKzwhRU5USVRZIGZsdG5zICImI3gy
NUIxOyI+Cis8IUVOVElUWSB4dXRyaSAiJiN4MjVCMzsiPgorPCFFTlRJVFkgYmlndHJpYW5nbGV1
cCAiJiN4MjVCMzsiPgorPCFFTlRJVFkgdXRyaWYgIiYjeDI1QjQ7Ij4KKzwhRU5USVRZIGJsYWNr
dHJpYW5nbGUgIiYjeDI1QjQ7Ij4KKzwhRU5USVRZIHV0cmkgIiYjeDI1QjU7Ij4KKzwhRU5USVRZ
IHRyaWFuZ2xlICImI3gyNUI1OyI+Cis8IUVOVElUWSBydHJpZiAiJiN4MjVCODsiPgorPCFFTlRJ
VFkgYmxhY2t0cmlhbmdsZXJpZ2h0ICImI3gyNUI4OyI+Cis8IUVOVElUWSBydHJpICImI3gyNUI5
OyI+Cis8IUVOVElUWSB0cmlhbmdsZXJpZ2h0ICImI3gyNUI5OyI+Cis8IUVOVElUWSB4ZHRyaSAi
JiN4MjVCRDsiPgorPCFFTlRJVFkgYmlndHJpYW5nbGVkb3duICImI3gyNUJEOyI+Cis8IUVOVElU
WSBkdHJpZiAiJiN4MjVCRTsiPgorPCFFTlRJVFkgYmxhY2t0cmlhbmdsZWRvd24gIiYjeDI1QkU7
Ij4KKzwhRU5USVRZIGR0cmkgIiYjeDI1QkY7Ij4KKzwhRU5USVRZIHRyaWFuZ2xlZG93biAiJiN4
MjVCRjsiPgorPCFFTlRJVFkgbHRyaWYgIiYjeDI1QzI7Ij4KKzwhRU5USVRZIGJsYWNrdHJpYW5n
bGVsZWZ0ICImI3gyNUMyOyI+Cis8IUVOVElUWSBsdHJpICImI3gyNUMzOyI+Cis8IUVOVElUWSB0
cmlhbmdsZWxlZnQgIiYjeDI1QzM7Ij4KKzwhRU5USVRZIGxveiAiJiN4MjVDQTsiPgorPCFFTlRJ
VFkgbG96ZW5nZSAiJiN4MjVDQTsiPgorPCFFTlRJVFkgY2lyICImI3gyNUNCOyI+Cis8IUVOVElU
WSB0cmlkb3QgIiYjeDI1RUM7Ij4KKzwhRU5USVRZIHhjaXJjICImI3gyNUVGOyI+Cis8IUVOVElU
WSBiaWdjaXJjICImI3gyNUVGOyI+Cis8IUVOVElUWSB1bHRyaSAiJiN4MjVGODsiPgorPCFFTlRJ
VFkgdXJ0cmkgIiYjeDI1Rjk7Ij4KKzwhRU5USVRZIGxsdHJpICImI3gyNUZBOyI+Cis8IUVOVElU
WSBFbXB0eVNtYWxsU3F1YXJlICImI3gyNUZCOyI+Cis8IUVOVElUWSBGaWxsZWRTbWFsbFNxdWFy
ZSAiJiN4MjVGQzsiPgorPCFFTlRJVFkgc3RhcmYgIiYjeDI2MDU7Ij4KKzwhRU5USVRZIGJpZ3N0
YXIgIiYjeDI2MDU7Ij4KKzwhRU5USVRZIHN0YXIgIiYjeDI2MDY7Ij4KKzwhRU5USVRZIHBob25l
ICImI3gyNjBFOyI+Cis8IUVOVElUWSBmZW1hbGUgIiYjeDI2NDA7Ij4KKzwhRU5USVRZIG1hbGUg
IiYjeDI2NDI7Ij4KKzwhRU5USVRZIHNwYWRlcyAiJiN4MjY2MDsiPgorPCFFTlRJVFkgc3BhZGVz
dWl0ICImI3gyNjYwOyI+Cis8IUVOVElUWSBjbHVicyAiJiN4MjY2MzsiPgorPCFFTlRJVFkgY2x1
YnN1aXQgIiYjeDI2NjM7Ij4KKzwhRU5USVRZIGhlYXJ0cyAiJiN4MjY2NTsiPgorPCFFTlRJVFkg
aGVhcnRzdWl0ICImI3gyNjY1OyI+Cis8IUVOVElUWSBkaWFtcyAiJiN4MjY2NjsiPgorPCFFTlRJ
VFkgZGlhbW9uZHN1aXQgIiYjeDI2NjY7Ij4KKzwhRU5USVRZIHN1bmcgIiYjeDI2NkE7Ij4KKzwh
RU5USVRZIGZsYXQgIiYjeDI2NkQ7Ij4KKzwhRU5USVRZIG5hdHVyICImI3gyNjZFOyI+Cis8IUVO
VElUWSBuYXR1cmFsICImI3gyNjZFOyI+Cis8IUVOVElUWSBzaGFycCAiJiN4MjY2RjsiPgorPCFF
TlRJVFkgY2hlY2sgIiYjeDI3MTM7Ij4KKzwhRU5USVRZIGNoZWNrbWFyayAiJiN4MjcxMzsiPgor
PCFFTlRJVFkgY3Jvc3MgIiYjeDI3MTc7Ij4KKzwhRU5USVRZIG1hbHQgIiYjeDI3MjA7Ij4KKzwh
RU5USVRZIG1hbHRlc2UgIiYjeDI3MjA7Ij4KKzwhRU5USVRZIHNleHQgIiYjeDI3MzY7Ij4KKzwh
RU5USVRZIFZlcnRpY2FsU2VwYXJhdG9yICImI3gyNzU4OyI+Cis8IUVOVElUWSBsYmJyayAiJiN4
Mjc3MjsiPgorPCFFTlRJVFkgcmJicmsgIiYjeDI3NzM7Ij4KKzwhRU5USVRZIGJzb2xoc3ViICIm
I3gyN0M4OyI+Cis8IUVOVElUWSBzdXBoc29sICImI3gyN0M5OyI+Cis8IUVOVElUWSBsb2JyayAi
JiN4MjdFNjsiPgorPCFFTlRJVFkgTGVmdERvdWJsZUJyYWNrZXQgIiYjeDI3RTY7Ij4KKzwhRU5U
SVRZIHJvYnJrICImI3gyN0U3OyI+Cis8IUVOVElUWSBSaWdodERvdWJsZUJyYWNrZXQgIiYjeDI3
RTc7Ij4KKzwhRU5USVRZIGxhbmcgIiYjeDI3RTg7Ij4KKzwhRU5USVRZIExlZnRBbmdsZUJyYWNr
ZXQgIiYjeDI3RTg7Ij4KKzwhRU5USVRZIGxhbmdsZSAiJiN4MjdFODsiPgorPCFFTlRJVFkgcmFu
ZyAiJiN4MjdFOTsiPgorPCFFTlRJVFkgUmlnaHRBbmdsZUJyYWNrZXQgIiYjeDI3RTk7Ij4KKzwh
RU5USVRZIHJhbmdsZSAiJiN4MjdFOTsiPgorPCFFTlRJVFkgTGFuZyAiJiN4MjdFQTsiPgorPCFF
TlRJVFkgUmFuZyAiJiN4MjdFQjsiPgorPCFFTlRJVFkgbG9hbmcgIiYjeDI3RUM7Ij4KKzwhRU5U
SVRZIHJvYW5nICImI3gyN0VEOyI+Cis8IUVOVElUWSB4bGFyciAiJiN4MjdGNTsiPgorPCFFTlRJ
VFkgbG9uZ2xlZnRhcnJvdyAiJiN4MjdGNTsiPgorPCFFTlRJVFkgTG9uZ0xlZnRBcnJvdyAiJiN4
MjdGNTsiPgorPCFFTlRJVFkgeHJhcnIgIiYjeDI3RjY7Ij4KKzwhRU5USVRZIGxvbmdyaWdodGFy
cm93ICImI3gyN0Y2OyI+Cis8IUVOVElUWSBMb25nUmlnaHRBcnJvdyAiJiN4MjdGNjsiPgorPCFF
TlRJVFkgeGhhcnIgIiYjeDI3Rjc7Ij4KKzwhRU5USVRZIGxvbmdsZWZ0cmlnaHRhcnJvdyAiJiN4
MjdGNzsiPgorPCFFTlRJVFkgTG9uZ0xlZnRSaWdodEFycm93ICImI3gyN0Y3OyI+Cis8IUVOVElU
WSB4bEFyciAiJiN4MjdGODsiPgorPCFFTlRJVFkgTG9uZ2xlZnRhcnJvdyAiJiN4MjdGODsiPgor
PCFFTlRJVFkgRG91YmxlTG9uZ0xlZnRBcnJvdyAiJiN4MjdGODsiPgorPCFFTlRJVFkgeHJBcnIg
IiYjeDI3Rjk7Ij4KKzwhRU5USVRZIExvbmdyaWdodGFycm93ICImI3gyN0Y5OyI+Cis8IUVOVElU
WSBEb3VibGVMb25nUmlnaHRBcnJvdyAiJiN4MjdGOTsiPgorPCFFTlRJVFkgeGhBcnIgIiYjeDI3
RkE7Ij4KKzwhRU5USVRZIExvbmdsZWZ0cmlnaHRhcnJvdyAiJiN4MjdGQTsiPgorPCFFTlRJVFkg
RG91YmxlTG9uZ0xlZnRSaWdodEFycm93ICImI3gyN0ZBOyI+Cis8IUVOVElUWSB4bWFwICImI3gy
N0ZDOyI+Cis8IUVOVElUWSBsb25nbWFwc3RvICImI3gyN0ZDOyI+Cis8IUVOVElUWSBkemlncmFy
ciAiJiN4MjdGRjsiPgorPCFFTlRJVFkgbnZsQXJyICImI3gyOTAyOyI+Cis8IUVOVElUWSBudnJB
cnIgIiYjeDI5MDM7Ij4KKzwhRU5USVRZIG52SGFyciAiJiN4MjkwNDsiPgorPCFFTlRJVFkgTWFw
ICImI3gyOTA1OyI+Cis8IUVOVElUWSBsYmFyciAiJiN4MjkwQzsiPgorPCFFTlRJVFkgcmJhcnIg
IiYjeDI5MEQ7Ij4KKzwhRU5USVRZIGJrYXJvdyAiJiN4MjkwRDsiPgorPCFFTlRJVFkgbEJhcnIg
IiYjeDI5MEU7Ij4KKzwhRU5USVRZIHJCYXJyICImI3gyOTBGOyI+Cis8IUVOVElUWSBkYmthcm93
ICImI3gyOTBGOyI+Cis8IUVOVElUWSBSQmFyciAiJiN4MjkxMDsiPgorPCFFTlRJVFkgZHJia2Fy
b3cgIiYjeDI5MTA7Ij4KKzwhRU5USVRZIEREb3RyYWhkICImI3gyOTExOyI+Cis8IUVOVElUWSBV
cEFycm93QmFyICImI3gyOTEyOyI+Cis8IUVOVElUWSBEb3duQXJyb3dCYXIgIiYjeDI5MTM7Ij4K
KzwhRU5USVRZIFJhcnJ0bCAiJiN4MjkxNjsiPgorPCFFTlRJVFkgbGF0YWlsICImI3gyOTE5OyI+
Cis8IUVOVElUWSByYXRhaWwgIiYjeDI5MUE7Ij4KKzwhRU5USVRZIGxBdGFpbCAiJiN4MjkxQjsi
PgorPCFFTlRJVFkgckF0YWlsICImI3gyOTFDOyI+Cis8IUVOVElUWSBsYXJyZnMgIiYjeDI5MUQ7
Ij4KKzwhRU5USVRZIHJhcnJmcyAiJiN4MjkxRTsiPgorPCFFTlRJVFkgbGFycmJmcyAiJiN4Mjkx
RjsiPgorPCFFTlRJVFkgcmFycmJmcyAiJiN4MjkyMDsiPgorPCFFTlRJVFkgbndhcmhrICImI3gy
OTIzOyI+Cis8IUVOVElUWSBuZWFyaGsgIiYjeDI5MjQ7Ij4KKzwhRU5USVRZIHNlYXJoayAiJiN4
MjkyNTsiPgorPCFFTlRJVFkgaGtzZWFyb3cgIiYjeDI5MjU7Ij4KKzwhRU5USVRZIHN3YXJoayAi
JiN4MjkyNjsiPgorPCFFTlRJVFkgaGtzd2Fyb3cgIiYjeDI5MjY7Ij4KKzwhRU5USVRZIG53bmVh
ciAiJiN4MjkyNzsiPgorPCFFTlRJVFkgbmVzZWFyICImI3gyOTI4OyI+Cis8IUVOVElUWSB0b2Vh
ICImI3gyOTI4OyI+Cis8IUVOVElUWSBzZXN3YXIgIiYjeDI5Mjk7Ij4KKzwhRU5USVRZIHRvc2Eg
IiYjeDI5Mjk7Ij4KKzwhRU5USVRZIHN3bndhciAiJiN4MjkyQTsiPgorPCFFTlRJVFkgcmFycmMg
IiYjeDI5MzM7Ij4KKzwhRU5USVRZIG5yYXJyYyAiJiN4MjkzMzsmI3gzMzg7Ij4KKzwhRU5USVRZ
IGN1ZGFycnIgIiYjeDI5MzU7Ij4KKzwhRU5USVRZIGxkY2EgIiYjeDI5MzY7Ij4KKzwhRU5USVRZ
IHJkY2EgIiYjeDI5Mzc7Ij4KKzwhRU5USVRZIGN1ZGFycmwgIiYjeDI5Mzg7Ij4KKzwhRU5USVRZ
IGxhcnJwbCAiJiN4MjkzOTsiPgorPCFFTlRJVFkgY3VyYXJybSAiJiN4MjkzQzsiPgorPCFFTlRJ
VFkgY3VsYXJycCAiJiN4MjkzRDsiPgorPCFFTlRJVFkgcmFycnBsICImI3gyOTQ1OyI+Cis8IUVO
VElUWSBoYXJyY2lyICImI3gyOTQ4OyI+Cis8IUVOVElUWSBVYXJyb2NpciAiJiN4Mjk0OTsiPgor
PCFFTlRJVFkgbHVyZHNoYXIgIiYjeDI5NEE7Ij4KKzwhRU5USVRZIGxkcnVzaGFyICImI3gyOTRC
OyI+Cis8IUVOVElUWSBMZWZ0UmlnaHRWZWN0b3IgIiYjeDI5NEU7Ij4KKzwhRU5USVRZIFJpZ2h0
VXBEb3duVmVjdG9yICImI3gyOTRGOyI+Cis8IUVOVElUWSBEb3duTGVmdFJpZ2h0VmVjdG9yICIm
I3gyOTUwOyI+Cis8IUVOVElUWSBMZWZ0VXBEb3duVmVjdG9yICImI3gyOTUxOyI+Cis8IUVOVElU
WSBMZWZ0VmVjdG9yQmFyICImI3gyOTUyOyI+Cis8IUVOVElUWSBSaWdodFZlY3RvckJhciAiJiN4
Mjk1MzsiPgorPCFFTlRJVFkgUmlnaHRVcFZlY3RvckJhciAiJiN4Mjk1NDsiPgorPCFFTlRJVFkg
UmlnaHREb3duVmVjdG9yQmFyICImI3gyOTU1OyI+Cis8IUVOVElUWSBEb3duTGVmdFZlY3RvckJh
ciAiJiN4Mjk1NjsiPgorPCFFTlRJVFkgRG93blJpZ2h0VmVjdG9yQmFyICImI3gyOTU3OyI+Cis8
IUVOVElUWSBMZWZ0VXBWZWN0b3JCYXIgIiYjeDI5NTg7Ij4KKzwhRU5USVRZIExlZnREb3duVmVj
dG9yQmFyICImI3gyOTU5OyI+Cis8IUVOVElUWSBMZWZ0VGVlVmVjdG9yICImI3gyOTVBOyI+Cis8
IUVOVElUWSBSaWdodFRlZVZlY3RvciAiJiN4Mjk1QjsiPgorPCFFTlRJVFkgUmlnaHRVcFRlZVZl
Y3RvciAiJiN4Mjk1QzsiPgorPCFFTlRJVFkgUmlnaHREb3duVGVlVmVjdG9yICImI3gyOTVEOyI+
Cis8IUVOVElUWSBEb3duTGVmdFRlZVZlY3RvciAiJiN4Mjk1RTsiPgorPCFFTlRJVFkgRG93blJp
Z2h0VGVlVmVjdG9yICImI3gyOTVGOyI+Cis8IUVOVElUWSBMZWZ0VXBUZWVWZWN0b3IgIiYjeDI5
NjA7Ij4KKzwhRU5USVRZIExlZnREb3duVGVlVmVjdG9yICImI3gyOTYxOyI+Cis8IUVOVElUWSBs
SGFyICImI3gyOTYyOyI+Cis8IUVOVElUWSB1SGFyICImI3gyOTYzOyI+Cis8IUVOVElUWSBySGFy
ICImI3gyOTY0OyI+Cis8IUVOVElUWSBkSGFyICImI3gyOTY1OyI+Cis8IUVOVElUWSBsdXJ1aGFy
ICImI3gyOTY2OyI+Cis8IUVOVElUWSBsZHJkaGFyICImI3gyOTY3OyI+Cis8IUVOVElUWSBydWx1
aGFyICImI3gyOTY4OyI+Cis8IUVOVElUWSByZGxkaGFyICImI3gyOTY5OyI+Cis8IUVOVElUWSBs
aGFydWwgIiYjeDI5NkE7Ij4KKzwhRU5USVRZIGxsaGFyZCAiJiN4Mjk2QjsiPgorPCFFTlRJVFkg
cmhhcnVsICImI3gyOTZDOyI+Cis8IUVOVElUWSBscmhhcmQgIiYjeDI5NkQ7Ij4KKzwhRU5USVRZ
IHVkaGFyICImI3gyOTZFOyI+Cis8IUVOVElUWSBVcEVxdWlsaWJyaXVtICImI3gyOTZFOyI+Cis8
IUVOVElUWSBkdWhhciAiJiN4Mjk2RjsiPgorPCFFTlRJVFkgUmV2ZXJzZVVwRXF1aWxpYnJpdW0g
IiYjeDI5NkY7Ij4KKzwhRU5USVRZIFJvdW5kSW1wbGllcyAiJiN4Mjk3MDsiPgorPCFFTlRJVFkg
ZXJhcnIgIiYjeDI5NzE7Ij4KKzwhRU5USVRZIHNpbXJhcnIgIiYjeDI5NzI7Ij4KKzwhRU5USVRZ
IGxhcnJzaW0gIiYjeDI5NzM7Ij4KKzwhRU5USVRZIHJhcnJzaW0gIiYjeDI5NzQ7Ij4KKzwhRU5U
SVRZIHJhcnJhcCAiJiN4Mjk3NTsiPgorPCFFTlRJVFkgbHRsYXJyICImI3gyOTc2OyI+Cis8IUVO
VElUWSBndHJhcnIgIiYjeDI5Nzg7Ij4KKzwhRU5USVRZIHN1YnJhcnIgIiYjeDI5Nzk7Ij4KKzwh
RU5USVRZIHN1cGxhcnIgIiYjeDI5N0I7Ij4KKzwhRU5USVRZIGxmaXNodCAiJiN4Mjk3QzsiPgor
PCFFTlRJVFkgcmZpc2h0ICImI3gyOTdEOyI+Cis8IUVOVElUWSB1ZmlzaHQgIiYjeDI5N0U7Ij4K
KzwhRU5USVRZIGRmaXNodCAiJiN4Mjk3RjsiPgorPCFFTlRJVFkgbG9wYXIgIiYjeDI5ODU7Ij4K
KzwhRU5USVRZIHJvcGFyICImI3gyOTg2OyI+Cis8IUVOVElUWSBsYnJrZSAiJiN4Mjk4QjsiPgor
PCFFTlRJVFkgcmJya2UgIiYjeDI5OEM7Ij4KKzwhRU5USVRZIGxicmtzbHUgIiYjeDI5OEQ7Ij4K
KzwhRU5USVRZIHJicmtzbGQgIiYjeDI5OEU7Ij4KKzwhRU5USVRZIGxicmtzbGQgIiYjeDI5OEY7
Ij4KKzwhRU5USVRZIHJicmtzbHUgIiYjeDI5OTA7Ij4KKzwhRU5USVRZIGxhbmdkICImI3gyOTkx
OyI+Cis8IUVOVElUWSByYW5nZCAiJiN4Mjk5MjsiPgorPCFFTlRJVFkgbHBhcmx0ICImI3gyOTkz
OyI+Cis8IUVOVElUWSBycGFyZ3QgIiYjeDI5OTQ7Ij4KKzwhRU5USVRZIGd0bFBhciAiJiN4Mjk5
NTsiPgorPCFFTlRJVFkgbHRyUGFyICImI3gyOTk2OyI+Cis8IUVOVElUWSB2emlnemFnICImI3gy
OTlBOyI+Cis8IUVOVElUWSB2YW5ncnQgIiYjeDI5OUM7Ij4KKzwhRU5USVRZIGFuZ3J0dmJkICIm
I3gyOTlEOyI+Cis8IUVOVElUWSBhbmdlICImI3gyOUE0OyI+Cis8IUVOVElUWSByYW5nZSAiJiN4
MjlBNTsiPgorPCFFTlRJVFkgZHdhbmdsZSAiJiN4MjlBNjsiPgorPCFFTlRJVFkgdXdhbmdsZSAi
JiN4MjlBNzsiPgorPCFFTlRJVFkgYW5nbXNkYWEgIiYjeDI5QTg7Ij4KKzwhRU5USVRZIGFuZ21z
ZGFiICImI3gyOUE5OyI+Cis8IUVOVElUWSBhbmdtc2RhYyAiJiN4MjlBQTsiPgorPCFFTlRJVFkg
YW5nbXNkYWQgIiYjeDI5QUI7Ij4KKzwhRU5USVRZIGFuZ21zZGFlICImI3gyOUFDOyI+Cis8IUVO
VElUWSBhbmdtc2RhZiAiJiN4MjlBRDsiPgorPCFFTlRJVFkgYW5nbXNkYWcgIiYjeDI5QUU7Ij4K
KzwhRU5USVRZIGFuZ21zZGFoICImI3gyOUFGOyI+Cis8IUVOVElUWSBiZW1wdHl2ICImI3gyOUIw
OyI+Cis8IUVOVElUWSBkZW1wdHl2ICImI3gyOUIxOyI+Cis8IUVOVElUWSBjZW1wdHl2ICImI3gy
OUIyOyI+Cis8IUVOVElUWSByYWVtcHR5diAiJiN4MjlCMzsiPgorPCFFTlRJVFkgbGFlbXB0eXYg
IiYjeDI5QjQ7Ij4KKzwhRU5USVRZIG9oYmFyICImI3gyOUI1OyI+Cis8IUVOVElUWSBvbWlkICIm
I3gyOUI2OyI+Cis8IUVOVElUWSBvcGFyICImI3gyOUI3OyI+Cis8IUVOVElUWSBvcGVycCAiJiN4
MjlCOTsiPgorPCFFTlRJVFkgb2xjcm9zcyAiJiN4MjlCQjsiPgorPCFFTlRJVFkgb2Rzb2xkICIm
I3gyOUJDOyI+Cis8IUVOVElUWSBvbGNpciAiJiN4MjlCRTsiPgorPCFFTlRJVFkgb2ZjaXIgIiYj
eDI5QkY7Ij4KKzwhRU5USVRZIG9sdCAiJiN4MjlDMDsiPgorPCFFTlRJVFkgb2d0ICImI3gyOUMx
OyI+Cis8IUVOVElUWSBjaXJzY2lyICImI3gyOUMyOyI+Cis8IUVOVElUWSBjaXJFICImI3gyOUMz
OyI+Cis8IUVOVElUWSBzb2xiICImI3gyOUM0OyI+Cis8IUVOVElUWSBic29sYiAiJiN4MjlDNTsi
PgorPCFFTlRJVFkgYm94Ym94ICImI3gyOUM5OyI+Cis8IUVOVElUWSB0cmlzYiAiJiN4MjlDRDsi
PgorPCFFTlRJVFkgcnRyaWx0cmkgIiYjeDI5Q0U7Ij4KKzwhRU5USVRZIExlZnRUcmlhbmdsZUJh
ciAiJiN4MjlDRjsiPgorPCFFTlRJVFkgTm90TGVmdFRyaWFuZ2xlQmFyICImI3gyOUNGOyYjeDMz
ODsiPgorPCFFTlRJVFkgUmlnaHRUcmlhbmdsZUJhciAiJiN4MjlEMDsiPgorPCFFTlRJVFkgTm90
UmlnaHRUcmlhbmdsZUJhciAiJiN4MjlEMDsmI3gzMzg7Ij4KKzwhRU5USVRZIGlpbmZpbiAiJiN4
MjlEQzsiPgorPCFFTlRJVFkgaW5maW50aWUgIiYjeDI5REQ7Ij4KKzwhRU5USVRZIG52aW5maW4g
IiYjeDI5REU7Ij4KKzwhRU5USVRZIGVwYXJzbCAiJiN4MjlFMzsiPgorPCFFTlRJVFkgc21lcGFy
c2wgIiYjeDI5RTQ7Ij4KKzwhRU5USVRZIGVxdnBhcnNsICImI3gyOUU1OyI+Cis8IUVOVElUWSBs
b3pmICImI3gyOUVCOyI+Cis8IUVOVElUWSBibGFja2xvemVuZ2UgIiYjeDI5RUI7Ij4KKzwhRU5U
SVRZIFJ1bGVEZWxheWVkICImI3gyOUY0OyI+Cis8IUVOVElUWSBkc29sICImI3gyOUY2OyI+Cis8
IUVOVElUWSB4b2RvdCAiJiN4MkEwMDsiPgorPCFFTlRJVFkgYmlnb2RvdCAiJiN4MkEwMDsiPgor
PCFFTlRJVFkgeG9wbHVzICImI3gyQTAxOyI+Cis8IUVOVElUWSBiaWdvcGx1cyAiJiN4MkEwMTsi
PgorPCFFTlRJVFkgeG90aW1lICImI3gyQTAyOyI+Cis8IUVOVElUWSBiaWdvdGltZXMgIiYjeDJB
MDI7Ij4KKzwhRU5USVRZIHh1cGx1cyAiJiN4MkEwNDsiPgorPCFFTlRJVFkgYmlndXBsdXMgIiYj
eDJBMDQ7Ij4KKzwhRU5USVRZIHhzcWN1cCAiJiN4MkEwNjsiPgorPCFFTlRJVFkgYmlnc3FjdXAg
IiYjeDJBMDY7Ij4KKzwhRU5USVRZIHFpbnQgIiYjeDJBMEM7Ij4KKzwhRU5USVRZIGlpaWludCAi
JiN4MkEwQzsiPgorPCFFTlRJVFkgZnBhcnRpbnQgIiYjeDJBMEQ7Ij4KKzwhRU5USVRZIGNpcmZu
aW50ICImI3gyQTEwOyI+Cis8IUVOVElUWSBhd2ludCAiJiN4MkExMTsiPgorPCFFTlRJVFkgcnBw
b2xpbnQgIiYjeDJBMTI7Ij4KKzwhRU5USVRZIHNjcG9saW50ICImI3gyQTEzOyI+Cis8IUVOVElU
WSBucG9saW50ICImI3gyQTE0OyI+Cis8IUVOVElUWSBwb2ludGludCAiJiN4MkExNTsiPgorPCFF
TlRJVFkgcXVhdGludCAiJiN4MkExNjsiPgorPCFFTlRJVFkgaW50bGFyaGsgIiYjeDJBMTc7Ij4K
KzwhRU5USVRZIHBsdXNjaXIgIiYjeDJBMjI7Ij4KKzwhRU5USVRZIHBsdXNhY2lyICImI3gyQTIz
OyI+Cis8IUVOVElUWSBzaW1wbHVzICImI3gyQTI0OyI+Cis8IUVOVElUWSBwbHVzZHUgIiYjeDJB
MjU7Ij4KKzwhRU5USVRZIHBsdXNzaW0gIiYjeDJBMjY7Ij4KKzwhRU5USVRZIHBsdXN0d28gIiYj
eDJBMjc7Ij4KKzwhRU5USVRZIG1jb21tYSAiJiN4MkEyOTsiPgorPCFFTlRJVFkgbWludXNkdSAi
JiN4MkEyQTsiPgorPCFFTlRJVFkgbG9wbHVzICImI3gyQTJEOyI+Cis8IUVOVElUWSByb3BsdXMg
IiYjeDJBMkU7Ij4KKzwhRU5USVRZIENyb3NzICImI3gyQTJGOyI+Cis8IUVOVElUWSB0aW1lc2Qg
IiYjeDJBMzA7Ij4KKzwhRU5USVRZIHRpbWVzYmFyICImI3gyQTMxOyI+Cis8IUVOVElUWSBzbWFz
aHAgIiYjeDJBMzM7Ij4KKzwhRU5USVRZIGxvdGltZXMgIiYjeDJBMzQ7Ij4KKzwhRU5USVRZIHJv
dGltZXMgIiYjeDJBMzU7Ij4KKzwhRU5USVRZIG90aW1lc2FzICImI3gyQTM2OyI+Cis8IUVOVElU
WSBPdGltZXMgIiYjeDJBMzc7Ij4KKzwhRU5USVRZIG9kaXYgIiYjeDJBMzg7Ij4KKzwhRU5USVRZ
IHRyaXBsdXMgIiYjeDJBMzk7Ij4KKzwhRU5USVRZIHRyaW1pbnVzICImI3gyQTNBOyI+Cis8IUVO
VElUWSB0cml0aW1lICImI3gyQTNCOyI+Cis8IUVOVElUWSBpcHJvZCAiJiN4MkEzQzsiPgorPCFF
TlRJVFkgaW50cHJvZCAiJiN4MkEzQzsiPgorPCFFTlRJVFkgYW1hbGcgIiYjeDJBM0Y7Ij4KKzwh
RU5USVRZIGNhcGRvdCAiJiN4MkE0MDsiPgorPCFFTlRJVFkgbmN1cCAiJiN4MkE0MjsiPgorPCFF
TlRJVFkgbmNhcCAiJiN4MkE0MzsiPgorPCFFTlRJVFkgY2FwYW5kICImI3gyQTQ0OyI+Cis8IUVO
VElUWSBjdXBvciAiJiN4MkE0NTsiPgorPCFFTlRJVFkgY3VwY2FwICImI3gyQTQ2OyI+Cis8IUVO
VElUWSBjYXBjdXAgIiYjeDJBNDc7Ij4KKzwhRU5USVRZIGN1cGJyY2FwICImI3gyQTQ4OyI+Cis8
IUVOVElUWSBjYXBicmN1cCAiJiN4MkE0OTsiPgorPCFFTlRJVFkgY3VwY3VwICImI3gyQTRBOyI+
Cis8IUVOVElUWSBjYXBjYXAgIiYjeDJBNEI7Ij4KKzwhRU5USVRZIGNjdXBzICImI3gyQTRDOyI+
Cis8IUVOVElUWSBjY2FwcyAiJiN4MkE0RDsiPgorPCFFTlRJVFkgY2N1cHNzbSAiJiN4MkE1MDsi
PgorPCFFTlRJVFkgQW5kICImI3gyQTUzOyI+Cis8IUVOVElUWSBPciAiJiN4MkE1NDsiPgorPCFF
TlRJVFkgYW5kYW5kICImI3gyQTU1OyI+Cis8IUVOVElUWSBvcm9yICImI3gyQTU2OyI+Cis8IUVO
VElUWSBvcnNsb3BlICImI3gyQTU3OyI+Cis8IUVOVElUWSBhbmRzbG9wZSAiJiN4MkE1ODsiPgor
PCFFTlRJVFkgYW5kdiAiJiN4MkE1QTsiPgorPCFFTlRJVFkgb3J2ICImI3gyQTVCOyI+Cis8IUVO
VElUWSBhbmRkICImI3gyQTVDOyI+Cis8IUVOVElUWSBvcmQgIiYjeDJBNUQ7Ij4KKzwhRU5USVRZ
IHdlZGJhciAiJiN4MkE1RjsiPgorPCFFTlRJVFkgc2RvdGUgIiYjeDJBNjY7Ij4KKzwhRU5USVRZ
IHNpbWRvdCAiJiN4MkE2QTsiPgorPCFFTlRJVFkgY29uZ2RvdCAiJiN4MkE2RDsiPgorPCFFTlRJ
VFkgbmNvbmdkb3QgIiYjeDJBNkQ7JiN4MzM4OyI+Cis8IUVOVElUWSBlYXN0ZXIgIiYjeDJBNkU7
Ij4KKzwhRU5USVRZIGFwYWNpciAiJiN4MkE2RjsiPgorPCFFTlRJVFkgYXBFICImI3gyQTcwOyI+
Cis8IUVOVElUWSBuYXBFICImI3gyQTcwOyYjeDMzODsiPgorPCFFTlRJVFkgZXBsdXMgIiYjeDJB
NzE7Ij4KKzwhRU5USVRZIHBsdXNlICImI3gyQTcyOyI+Cis8IUVOVElUWSBFc2ltICImI3gyQTcz
OyI+Cis8IUVOVElUWSBDb2xvbmUgIiYjeDJBNzQ7Ij4KKzwhRU5USVRZIEVxdWFsICImI3gyQTc1
OyI+Cis8IUVOVElUWSBlRERvdCAiJiN4MkE3NzsiPgorPCFFTlRJVFkgZGRvdHNlcSAiJiN4MkE3
NzsiPgorPCFFTlRJVFkgZXF1aXZERCAiJiN4MkE3ODsiPgorPCFFTlRJVFkgbHRjaXIgIiYjeDJB
Nzk7Ij4KKzwhRU5USVRZIGd0Y2lyICImI3gyQTdBOyI+Cis8IUVOVElUWSBsdHF1ZXN0ICImI3gy
QTdCOyI+Cis8IUVOVElUWSBndHF1ZXN0ICImI3gyQTdDOyI+Cis8IUVOVElUWSBsZXMgIiYjeDJB
N0Q7Ij4KKzwhRU5USVRZIExlc3NTbGFudEVxdWFsICImI3gyQTdEOyI+Cis8IUVOVElUWSBsZXFz
bGFudCAiJiN4MkE3RDsiPgorPCFFTlRJVFkgbmxlcyAiJiN4MkE3RDsmI3gzMzg7Ij4KKzwhRU5U
SVRZIE5vdExlc3NTbGFudEVxdWFsICImI3gyQTdEOyYjeDMzODsiPgorPCFFTlRJVFkgbmxlcXNs
YW50ICImI3gyQTdEOyYjeDMzODsiPgorPCFFTlRJVFkgZ2VzICImI3gyQTdFOyI+Cis8IUVOVElU
WSBHcmVhdGVyU2xhbnRFcXVhbCAiJiN4MkE3RTsiPgorPCFFTlRJVFkgZ2Vxc2xhbnQgIiYjeDJB
N0U7Ij4KKzwhRU5USVRZIG5nZXMgIiYjeDJBN0U7JiN4MzM4OyI+Cis8IUVOVElUWSBOb3RHcmVh
dGVyU2xhbnRFcXVhbCAiJiN4MkE3RTsmI3gzMzg7Ij4KKzwhRU5USVRZIG5nZXFzbGFudCAiJiN4
MkE3RTsmI3gzMzg7Ij4KKzwhRU5USVRZIGxlc2RvdCAiJiN4MkE3RjsiPgorPCFFTlRJVFkgZ2Vz
ZG90ICImI3gyQTgwOyI+Cis8IUVOVElUWSBsZXNkb3RvICImI3gyQTgxOyI+Cis8IUVOVElUWSBn
ZXNkb3RvICImI3gyQTgyOyI+Cis8IUVOVElUWSBsZXNkb3RvciAiJiN4MkE4MzsiPgorPCFFTlRJ
VFkgZ2VzZG90b2wgIiYjeDJBODQ7Ij4KKzwhRU5USVRZIGxhcCAiJiN4MkE4NTsiPgorPCFFTlRJ
VFkgbGVzc2FwcHJveCAiJiN4MkE4NTsiPgorPCFFTlRJVFkgZ2FwICImI3gyQTg2OyI+Cis8IUVO
VElUWSBndHJhcHByb3ggIiYjeDJBODY7Ij4KKzwhRU5USVRZIGxuZSAiJiN4MkE4NzsiPgorPCFF
TlRJVFkgbG5lcSAiJiN4MkE4NzsiPgorPCFFTlRJVFkgZ25lICImI3gyQTg4OyI+Cis8IUVOVElU
WSBnbmVxICImI3gyQTg4OyI+Cis8IUVOVElUWSBsbmFwICImI3gyQTg5OyI+Cis8IUVOVElUWSBs
bmFwcHJveCAiJiN4MkE4OTsiPgorPCFFTlRJVFkgZ25hcCAiJiN4MkE4QTsiPgorPCFFTlRJVFkg
Z25hcHByb3ggIiYjeDJBOEE7Ij4KKzwhRU5USVRZIGxFZyAiJiN4MkE4QjsiPgorPCFFTlRJVFkg
bGVzc2VxcWd0ciAiJiN4MkE4QjsiPgorPCFFTlRJVFkgZ0VsICImI3gyQThDOyI+Cis8IUVOVElU
WSBndHJlcXFsZXNzICImI3gyQThDOyI+Cis8IUVOVElUWSBsc2ltZSAiJiN4MkE4RDsiPgorPCFF
TlRJVFkgZ3NpbWUgIiYjeDJBOEU7Ij4KKzwhRU5USVRZIGxzaW1nICImI3gyQThGOyI+Cis8IUVO
VElUWSBnc2ltbCAiJiN4MkE5MDsiPgorPCFFTlRJVFkgbGdFICImI3gyQTkxOyI+Cis8IUVOVElU
WSBnbEUgIiYjeDJBOTI7Ij4KKzwhRU5USVRZIGxlc2dlcyAiJiN4MkE5MzsiPgorPCFFTlRJVFkg
Z2VzbGVzICImI3gyQTk0OyI+Cis8IUVOVElUWSBlbHMgIiYjeDJBOTU7Ij4KKzwhRU5USVRZIGVx
c2xhbnRsZXNzICImI3gyQTk1OyI+Cis8IUVOVElUWSBlZ3MgIiYjeDJBOTY7Ij4KKzwhRU5USVRZ
IGVxc2xhbnRndHIgIiYjeDJBOTY7Ij4KKzwhRU5USVRZIGVsc2RvdCAiJiN4MkE5NzsiPgorPCFF
TlRJVFkgZWdzZG90ICImI3gyQTk4OyI+Cis8IUVOVElUWSBlbCAiJiN4MkE5OTsiPgorPCFFTlRJ
VFkgZWcgIiYjeDJBOUE7Ij4KKzwhRU5USVRZIHNpbWwgIiYjeDJBOUQ7Ij4KKzwhRU5USVRZIHNp
bWcgIiYjeDJBOUU7Ij4KKzwhRU5USVRZIHNpbWxFICImI3gyQTlGOyI+Cis8IUVOVElUWSBzaW1n
RSAiJiN4MkFBMDsiPgorPCFFTlRJVFkgTGVzc0xlc3MgIiYjeDJBQTE7Ij4KKzwhRU5USVRZIE5v
dE5lc3RlZExlc3NMZXNzICImI3gyQUExOyYjeDMzODsiPgorPCFFTlRJVFkgR3JlYXRlckdyZWF0
ZXIgIiYjeDJBQTI7Ij4KKzwhRU5USVRZIE5vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyICImI3gyQUEy
OyYjeDMzODsiPgorPCFFTlRJVFkgZ2xqICImI3gyQUE0OyI+Cis8IUVOVElUWSBnbGEgIiYjeDJB
QTU7Ij4KKzwhRU5USVRZIGx0Y2MgIiYjeDJBQTY7Ij4KKzwhRU5USVRZIGd0Y2MgIiYjeDJBQTc7
Ij4KKzwhRU5USVRZIGxlc2NjICImI3gyQUE4OyI+Cis8IUVOVElUWSBnZXNjYyAiJiN4MkFBOTsi
PgorPCFFTlRJVFkgc210ICImI3gyQUFBOyI+Cis8IUVOVElUWSBsYXQgIiYjeDJBQUI7Ij4KKzwh
RU5USVRZIHNtdGUgIiYjeDJBQUM7Ij4KKzwhRU5USVRZIHNtdGVzICImI3gyQUFDOyYjeEZFMDA7
Ij4KKzwhRU5USVRZIGxhdGUgIiYjeDJBQUQ7Ij4KKzwhRU5USVRZIGxhdGVzICImI3gyQUFEOyYj
eEZFMDA7Ij4KKzwhRU5USVRZIGJ1bXBFICImI3gyQUFFOyI+Cis8IUVOVElUWSBwcmUgIiYjeDJB
QUY7Ij4KKzwhRU5USVRZIHByZWNlcSAiJiN4MkFBRjsiPgorPCFFTlRJVFkgUHJlY2VkZXNFcXVh
bCAiJiN4MkFBRjsiPgorPCFFTlRJVFkgbnByZSAiJiN4MkFBRjsmI3gzMzg7Ij4KKzwhRU5USVRZ
IG5wcmVjZXEgIiYjeDJBQUY7JiN4MzM4OyI+Cis8IUVOVElUWSBOb3RQcmVjZWRlc0VxdWFsICIm
I3gyQUFGOyYjeDMzODsiPgorPCFFTlRJVFkgc2NlICImI3gyQUIwOyI+Cis8IUVOVElUWSBzdWNj
ZXEgIiYjeDJBQjA7Ij4KKzwhRU5USVRZIFN1Y2NlZWRzRXF1YWwgIiYjeDJBQjA7Ij4KKzwhRU5U
SVRZIG5zY2UgIiYjeDJBQjA7JiN4MzM4OyI+Cis8IUVOVElUWSBuc3VjY2VxICImI3gyQUIwOyYj
eDMzODsiPgorPCFFTlRJVFkgTm90U3VjY2VlZHNFcXVhbCAiJiN4MkFCMDsmI3gzMzg7Ij4KKzwh
RU5USVRZIHByRSAiJiN4MkFCMzsiPgorPCFFTlRJVFkgc2NFICImI3gyQUI0OyI+Cis8IUVOVElU
WSBwcm5FICImI3gyQUI1OyI+Cis8IUVOVElUWSBwcmVjbmVxcSAiJiN4MkFCNTsiPgorPCFFTlRJ
VFkgc2NuRSAiJiN4MkFCNjsiPgorPCFFTlRJVFkgc3VjY25lcXEgIiYjeDJBQjY7Ij4KKzwhRU5U
SVRZIHByYXAgIiYjeDJBQjc7Ij4KKzwhRU5USVRZIHByZWNhcHByb3ggIiYjeDJBQjc7Ij4KKzwh
RU5USVRZIHNjYXAgIiYjeDJBQjg7Ij4KKzwhRU5USVRZIHN1Y2NhcHByb3ggIiYjeDJBQjg7Ij4K
KzwhRU5USVRZIHBybmFwICImI3gyQUI5OyI+Cis8IUVOVElUWSBwcmVjbmFwcHJveCAiJiN4MkFC
OTsiPgorPCFFTlRJVFkgc2NuYXAgIiYjeDJBQkE7Ij4KKzwhRU5USVRZIHN1Y2NuYXBwcm94ICIm
I3gyQUJBOyI+Cis8IUVOVElUWSBQciAiJiN4MkFCQjsiPgorPCFFTlRJVFkgU2MgIiYjeDJBQkM7
Ij4KKzwhRU5USVRZIHN1YmRvdCAiJiN4MkFCRDsiPgorPCFFTlRJVFkgc3VwZG90ICImI3gyQUJF
OyI+Cis8IUVOVElUWSBzdWJwbHVzICImI3gyQUJGOyI+Cis8IUVOVElUWSBzdXBwbHVzICImI3gy
QUMwOyI+Cis8IUVOVElUWSBzdWJtdWx0ICImI3gyQUMxOyI+Cis8IUVOVElUWSBzdXBtdWx0ICIm
I3gyQUMyOyI+Cis8IUVOVElUWSBzdWJlZG90ICImI3gyQUMzOyI+Cis8IUVOVElUWSBzdXBlZG90
ICImI3gyQUM0OyI+Cis8IUVOVElUWSBzdWJFICImI3gyQUM1OyI+Cis8IUVOVElUWSBzdWJzZXRl
cXEgIiYjeDJBQzU7Ij4KKzwhRU5USVRZIG5zdWJFICImI3gyQUM1OyYjeDMzODsiPgorPCFFTlRJ
VFkgbnN1YnNldGVxcSAiJiN4MkFDNTsmI3gzMzg7Ij4KKzwhRU5USVRZIHN1cEUgIiYjeDJBQzY7
Ij4KKzwhRU5USVRZIHN1cHNldGVxcSAiJiN4MkFDNjsiPgorPCFFTlRJVFkgbnN1cEUgIiYjeDJB
QzY7JiN4MzM4OyI+Cis8IUVOVElUWSBuc3Vwc2V0ZXFxICImI3gyQUM2OyYjeDMzODsiPgorPCFF
TlRJVFkgc3Vic2ltICImI3gyQUM3OyI+Cis8IUVOVElUWSBzdXBzaW0gIiYjeDJBQzg7Ij4KKzwh
RU5USVRZIHN1Ym5FICImI3gyQUNCOyI+Cis8IUVOVElUWSBzdWJzZXRuZXFxICImI3gyQUNCOyI+
Cis8IUVOVElUWSB2c3VibkUgIiYjeDJBQ0I7JiN4RkUwMDsiPgorPCFFTlRJVFkgdmFyc3Vic2V0
bmVxcSAiJiN4MkFDQjsmI3hGRTAwOyI+Cis8IUVOVElUWSBzdXBuRSAiJiN4MkFDQzsiPgorPCFF
TlRJVFkgc3Vwc2V0bmVxcSAiJiN4MkFDQzsiPgorPCFFTlRJVFkgdnN1cG5FICImI3gyQUNDOyYj
eEZFMDA7Ij4KKzwhRU5USVRZIHZhcnN1cHNldG5lcXEgIiYjeDJBQ0M7JiN4RkUwMDsiPgorPCFF
TlRJVFkgY3N1YiAiJiN4MkFDRjsiPgorPCFFTlRJVFkgY3N1cCAiJiN4MkFEMDsiPgorPCFFTlRJ
VFkgY3N1YmUgIiYjeDJBRDE7Ij4KKzwhRU5USVRZIGNzdXBlICImI3gyQUQyOyI+Cis8IUVOVElU
WSBzdWJzdXAgIiYjeDJBRDM7Ij4KKzwhRU5USVRZIHN1cHN1YiAiJiN4MkFENDsiPgorPCFFTlRJ
VFkgc3Vic3ViICImI3gyQUQ1OyI+Cis8IUVOVElUWSBzdXBzdXAgIiYjeDJBRDY7Ij4KKzwhRU5U
SVRZIHN1cGhzdWIgIiYjeDJBRDc7Ij4KKzwhRU5USVRZIHN1cGRzdWIgIiYjeDJBRDg7Ij4KKzwh
RU5USVRZIGZvcmt2ICImI3gyQUQ5OyI+Cis8IUVOVElUWSB0b3Bmb3JrICImI3gyQURBOyI+Cis8
IUVOVElUWSBtbGNwICImI3gyQURCOyI+Cis8IUVOVElUWSBEYXNodiAiJiN4MkFFNDsiPgorPCFF
TlRJVFkgRG91YmxlTGVmdFRlZSAiJiN4MkFFNDsiPgorPCFFTlRJVFkgVmRhc2hsICImI3gyQUU2
OyI+Cis8IUVOVElUWSBCYXJ2ICImI3gyQUU3OyI+Cis8IUVOVElUWSB2QmFyICImI3gyQUU4OyI+
Cis8IUVOVElUWSB2QmFydiAiJiN4MkFFOTsiPgorPCFFTlRJVFkgVmJhciAiJiN4MkFFQjsiPgor
PCFFTlRJVFkgTm90ICImI3gyQUVDOyI+Cis8IUVOVElUWSBiTm90ICImI3gyQUVEOyI+Cis8IUVO
VElUWSBybm1pZCAiJiN4MkFFRTsiPgorPCFFTlRJVFkgY2lybWlkICImI3gyQUVGOyI+Cis8IUVO
VElUWSBtaWRjaXIgIiYjeDJBRjA7Ij4KKzwhRU5USVRZIHRvcGNpciAiJiN4MkFGMTsiPgorPCFF
TlRJVFkgbmhwYXIgIiYjeDJBRjI7Ij4KKzwhRU5USVRZIHBhcnNpbSAiJiN4MkFGMzsiPgorPCFF
TlRJVFkgcGFyc2wgIiYjeDJBRkQ7Ij4KKzwhRU5USVRZIG5wYXJzbCAiJiN4MkFGRDsmI3gyMEU1
OyI+Cis8IUVOVElUWSBmZmxpZyAiJiN4RkIwMDsiPgorPCFFTlRJVFkgZmlsaWcgIiYjeEZCMDE7
Ij4KKzwhRU5USVRZIGZsbGlnICImI3hGQjAyOyI+Cis8IUVOVElUWSBmZmlsaWcgIiYjeEZCMDM7
Ij4KKzwhRU5USVRZIGZmbGxpZyAiJiN4RkIwNDsiPgorPCFFTlRJVFkgQXNjciAiJiN4MUQ0OUM7
Ij4KKzwhRU5USVRZIENzY3IgIiYjeDFENDlFOyI+Cis8IUVOVElUWSBEc2NyICImI3gxRDQ5Rjsi
PgorPCFFTlRJVFkgR3NjciAiJiN4MUQ0QTI7Ij4KKzwhRU5USVRZIEpzY3IgIiYjeDFENEE1OyI+
Cis8IUVOVElUWSBLc2NyICImI3gxRDRBNjsiPgorPCFFTlRJVFkgTnNjciAiJiN4MUQ0QTk7Ij4K
KzwhRU5USVRZIE9zY3IgIiYjeDFENEFBOyI+Cis8IUVOVElUWSBQc2NyICImI3gxRDRBQjsiPgor
PCFFTlRJVFkgUXNjciAiJiN4MUQ0QUM7Ij4KKzwhRU5USVRZIFNzY3IgIiYjeDFENEFFOyI+Cis8
IUVOVElUWSBUc2NyICImI3gxRDRBRjsiPgorPCFFTlRJVFkgVXNjciAiJiN4MUQ0QjA7Ij4KKzwh
RU5USVRZIFZzY3IgIiYjeDFENEIxOyI+Cis8IUVOVElUWSBXc2NyICImI3gxRDRCMjsiPgorPCFF
TlRJVFkgWHNjciAiJiN4MUQ0QjM7Ij4KKzwhRU5USVRZIFlzY3IgIiYjeDFENEI0OyI+Cis8IUVO
VElUWSBac2NyICImI3gxRDRCNTsiPgorPCFFTlRJVFkgYXNjciAiJiN4MUQ0QjY7Ij4KKzwhRU5U
SVRZIGJzY3IgIiYjeDFENEI3OyI+Cis8IUVOVElUWSBjc2NyICImI3gxRDRCODsiPgorPCFFTlRJ
VFkgZHNjciAiJiN4MUQ0Qjk7Ij4KKzwhRU5USVRZIGZzY3IgIiYjeDFENEJCOyI+Cis8IUVOVElU
WSBoc2NyICImI3gxRDRCRDsiPgorPCFFTlRJVFkgaXNjciAiJiN4MUQ0QkU7Ij4KKzwhRU5USVRZ
IGpzY3IgIiYjeDFENEJGOyI+Cis8IUVOVElUWSBrc2NyICImI3gxRDRDMDsiPgorPCFFTlRJVFkg
bHNjciAiJiN4MUQ0QzE7Ij4KKzwhRU5USVRZIG1zY3IgIiYjeDFENEMyOyI+Cis8IUVOVElUWSBu
c2NyICImI3gxRDRDMzsiPgorPCFFTlRJVFkgcHNjciAiJiN4MUQ0QzU7Ij4KKzwhRU5USVRZIHFz
Y3IgIiYjeDFENEM2OyI+Cis8IUVOVElUWSByc2NyICImI3gxRDRDNzsiPgorPCFFTlRJVFkgc3Nj
ciAiJiN4MUQ0Qzg7Ij4KKzwhRU5USVRZIHRzY3IgIiYjeDFENEM5OyI+Cis8IUVOVElUWSB1c2Ny
ICImI3gxRDRDQTsiPgorPCFFTlRJVFkgdnNjciAiJiN4MUQ0Q0I7Ij4KKzwhRU5USVRZIHdzY3Ig
IiYjeDFENENDOyI+Cis8IUVOVElUWSB4c2NyICImI3gxRDRDRDsiPgorPCFFTlRJVFkgeXNjciAi
JiN4MUQ0Q0U7Ij4KKzwhRU5USVRZIHpzY3IgIiYjeDFENENGOyI+Cis8IUVOVElUWSBBZnIgIiYj
eDFENTA0OyI+Cis8IUVOVElUWSBCZnIgIiYjeDFENTA1OyI+Cis8IUVOVElUWSBEZnIgIiYjeDFE
NTA3OyI+Cis8IUVOVElUWSBFZnIgIiYjeDFENTA4OyI+Cis8IUVOVElUWSBGZnIgIiYjeDFENTA5
OyI+Cis8IUVOVElUWSBHZnIgIiYjeDFENTBBOyI+Cis8IUVOVElUWSBKZnIgIiYjeDFENTBEOyI+
Cis8IUVOVElUWSBLZnIgIiYjeDFENTBFOyI+Cis8IUVOVElUWSBMZnIgIiYjeDFENTBGOyI+Cis8
IUVOVElUWSBNZnIgIiYjeDFENTEwOyI+Cis8IUVOVElUWSBOZnIgIiYjeDFENTExOyI+Cis8IUVO
VElUWSBPZnIgIiYjeDFENTEyOyI+Cis8IUVOVElUWSBQZnIgIiYjeDFENTEzOyI+Cis8IUVOVElU
WSBRZnIgIiYjeDFENTE0OyI+Cis8IUVOVElUWSBTZnIgIiYjeDFENTE2OyI+Cis8IUVOVElUWSBU
ZnIgIiYjeDFENTE3OyI+Cis8IUVOVElUWSBVZnIgIiYjeDFENTE4OyI+Cis8IUVOVElUWSBWZnIg
IiYjeDFENTE5OyI+Cis8IUVOVElUWSBXZnIgIiYjeDFENTFBOyI+Cis8IUVOVElUWSBYZnIgIiYj
eDFENTFCOyI+Cis8IUVOVElUWSBZZnIgIiYjeDFENTFDOyI+Cis8IUVOVElUWSBhZnIgIiYjeDFE
NTFFOyI+Cis8IUVOVElUWSBiZnIgIiYjeDFENTFGOyI+Cis8IUVOVElUWSBjZnIgIiYjeDFENTIw
OyI+Cis8IUVOVElUWSBkZnIgIiYjeDFENTIxOyI+Cis8IUVOVElUWSBlZnIgIiYjeDFENTIyOyI+
Cis8IUVOVElUWSBmZnIgIiYjeDFENTIzOyI+Cis8IUVOVElUWSBnZnIgIiYjeDFENTI0OyI+Cis8
IUVOVElUWSBoZnIgIiYjeDFENTI1OyI+Cis8IUVOVElUWSBpZnIgIiYjeDFENTI2OyI+Cis8IUVO
VElUWSBqZnIgIiYjeDFENTI3OyI+Cis8IUVOVElUWSBrZnIgIiYjeDFENTI4OyI+Cis8IUVOVElU
WSBsZnIgIiYjeDFENTI5OyI+Cis8IUVOVElUWSBtZnIgIiYjeDFENTJBOyI+Cis8IUVOVElUWSBu
ZnIgIiYjeDFENTJCOyI+Cis8IUVOVElUWSBvZnIgIiYjeDFENTJDOyI+Cis8IUVOVElUWSBwZnIg
IiYjeDFENTJEOyI+Cis8IUVOVElUWSBxZnIgIiYjeDFENTJFOyI+Cis8IUVOVElUWSByZnIgIiYj
eDFENTJGOyI+Cis8IUVOVElUWSBzZnIgIiYjeDFENTMwOyI+Cis8IUVOVElUWSB0ZnIgIiYjeDFE
NTMxOyI+Cis8IUVOVElUWSB1ZnIgIiYjeDFENTMyOyI+Cis8IUVOVElUWSB2ZnIgIiYjeDFENTMz
OyI+Cis8IUVOVElUWSB3ZnIgIiYjeDFENTM0OyI+Cis8IUVOVElUWSB4ZnIgIiYjeDFENTM1OyI+
Cis8IUVOVElUWSB5ZnIgIiYjeDFENTM2OyI+Cis8IUVOVElUWSB6ZnIgIiYjeDFENTM3OyI+Cis8
IUVOVElUWSBBb3BmICImI3gxRDUzODsiPgorPCFFTlRJVFkgQm9wZiAiJiN4MUQ1Mzk7Ij4KKzwh
RU5USVRZIERvcGYgIiYjeDFENTNCOyI+Cis8IUVOVElUWSBFb3BmICImI3gxRDUzQzsiPgorPCFF
TlRJVFkgRm9wZiAiJiN4MUQ1M0Q7Ij4KKzwhRU5USVRZIEdvcGYgIiYjeDFENTNFOyI+Cis8IUVO
VElUWSBJb3BmICImI3gxRDU0MDsiPgorPCFFTlRJVFkgSm9wZiAiJiN4MUQ1NDE7Ij4KKzwhRU5U
SVRZIEtvcGYgIiYjeDFENTQyOyI+Cis8IUVOVElUWSBMb3BmICImI3gxRDU0MzsiPgorPCFFTlRJ
VFkgTW9wZiAiJiN4MUQ1NDQ7Ij4KKzwhRU5USVRZIE9vcGYgIiYjeDFENTQ2OyI+Cis8IUVOVElU
WSBTb3BmICImI3gxRDU0QTsiPgorPCFFTlRJVFkgVG9wZiAiJiN4MUQ1NEI7Ij4KKzwhRU5USVRZ
IFVvcGYgIiYjeDFENTRDOyI+Cis8IUVOVElUWSBWb3BmICImI3gxRDU0RDsiPgorPCFFTlRJVFkg
V29wZiAiJiN4MUQ1NEU7Ij4KKzwhRU5USVRZIFhvcGYgIiYjeDFENTRGOyI+Cis8IUVOVElUWSBZ
b3BmICImI3gxRDU1MDsiPgorPCFFTlRJVFkgYW9wZiAiJiN4MUQ1NTI7Ij4KKzwhRU5USVRZIGJv
cGYgIiYjeDFENTUzOyI+Cis8IUVOVElUWSBjb3BmICImI3gxRDU1NDsiPgorPCFFTlRJVFkgZG9w
ZiAiJiN4MUQ1NTU7Ij4KKzwhRU5USVRZIGVvcGYgIiYjeDFENTU2OyI+Cis8IUVOVElUWSBmb3Bm
ICImI3gxRDU1NzsiPgorPCFFTlRJVFkgZ29wZiAiJiN4MUQ1NTg7Ij4KKzwhRU5USVRZIGhvcGYg
IiYjeDFENTU5OyI+Cis8IUVOVElUWSBpb3BmICImI3gxRDU1QTsiPgorPCFFTlRJVFkgam9wZiAi
JiN4MUQ1NUI7Ij4KKzwhRU5USVRZIGtvcGYgIiYjeDFENTVDOyI+Cis8IUVOVElUWSBsb3BmICIm
I3gxRDU1RDsiPgorPCFFTlRJVFkgbW9wZiAiJiN4MUQ1NUU7Ij4KKzwhRU5USVRZIG5vcGYgIiYj
eDFENTVGOyI+Cis8IUVOVElUWSBvb3BmICImI3gxRDU2MDsiPgorPCFFTlRJVFkgcG9wZiAiJiN4
MUQ1NjE7Ij4KKzwhRU5USVRZIHFvcGYgIiYjeDFENTYyOyI+Cis8IUVOVElUWSByb3BmICImI3gx
RDU2MzsiPgorPCFFTlRJVFkgc29wZiAiJiN4MUQ1NjQ7Ij4KKzwhRU5USVRZIHRvcGYgIiYjeDFE
NTY1OyI+Cis8IUVOVElUWSB1b3BmICImI3gxRDU2NjsiPgorPCFFTlRJVFkgdm9wZiAiJiN4MUQ1
Njc7Ij4KKzwhRU5USVRZIHdvcGYgIiYjeDFENTY4OyI+Cis8IUVOVElUWSB4b3BmICImI3gxRDU2
OTsiPgorPCFFTlRJVFkgeW9wZiAiJiN4MUQ1NkE7Ij4KKzwhRU5USVRZIHpvcGYgIiYjeDFENTZC
OyI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5w
eQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5
YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL19f
aW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlz
IGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9y
IG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA5ZTUzOTlmNDgyYjlmNjQ4ODYyM2YwNzI4MDY4MmJjYjc5OWNiYWQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
dGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfWE1MUGFyc2VyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90
ZXN0X2l0ZW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291
cmNlZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF91dGlscy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3VwZGF0ZS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZGY3NTlmZWY5MDM1YjAwNmRiNGM3MDk3NjU2NTdjMmU0NjI2YWY4My4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9YTUxQYXJz
ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvaXRlbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvanNvbmxpYi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
c291cmNlZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHBhdGhzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90eXBlZGF0YS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC91dGlscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0NPTlRSSUJVVElO
RyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvQ09OVFJJQlVUSU5HCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDE1
ZjVkMDExZjNlMjJiZTU1NGZmNzU1YzA3ODA1MjIxM2FmYTkwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvQ09OVFJJQlVUSU5HCisrKyAvZGV2L251
bGwKQEAgLTEsMTEgKzAsMCBAQAotRm9yIGluc3RydWN0aW9ucyBmb3IgY29udHJpYnV0aW5nIGNv
ZGUsIHBsZWFzZSByZWFkOgotaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9weXdlYnNvY2tldC93
aWtpL0NvZGVSZXZpZXdJbnN0cnVjdGlvbgotCi1Zb3UgbXVzdCBjb21wbGV0ZSB0aGUgSW5kaXZp
ZHVhbCBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudC4KLWh0dHBzOi8vY2xhLmRldmVsb3Bl
cnMuZ29vZ2xlLmNvbS9hYm91dC9nb29nbGUtaW5kaXZpZHVhbAotWW91IGNhbiBkbyB0aGlzIG9u
bGluZSwgYW5kIGl0IG9ubHkgdGFrZXMgYSBtaW51dGUuCi0KLUlmIHlvdSBhcmUgY29udHJpYnV0
aW5nIG9uIGJlaGFsZiBvZiBhIGNvcnBvcmF0aW9uLCB5b3UgbXVzdCBmaWxsIG91dCB0aGUKLUNv
cnBvcmF0ZSBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudAotaHR0cHM6Ly9jbGEuZGV2ZWxv
cGVycy5nb29nbGUuY29tL2Fib3V0L2dvb2dsZS1jb3Jwb3JhdGUKLWFuZCBzZW5kIGl0IHRvIHVz
IGFzIGRlc2NyaWJlZCBvbiB0aGF0IHBhZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L0xJQ0VOU0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OWQwMmU0Y2QwOTIz
NzgwNmY3ZGY4YmVhZWNjNjkxNTI3MzQyOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9MSUNFTlNFCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAs
MCBAQAotQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgot
Ci1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
Ci1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbiBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvTUFOSUZFU1QuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MjU2ODgy
YzU2ZmViNzI4MTJjOTljOGE4Mzc5OTc5ZTYzZTRhMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgorKysgL2Rldi9udWxsCkBA
IC0xLDYgKzAsMCBAQAotaW5jbHVkZSBDT1BZSU5HCi1pbmNsdWRlIE1BTklGRVNULmluCi1pbmNs
dWRlIFJFQURNRQotcmVjdXJzaXZlLWluY2x1ZGUgZXhhbXBsZSAqLnB5Ci1yZWN1cnNpdmUtaW5j
bHVkZSBtb2RfcHl3ZWJzb2NrZXQgKi5weQotcmVjdXJzaXZlLWluY2x1ZGUgdGVzdCAqLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L1JFQURNRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjOGM3NThmNWVlZjRjNzMxODkyNjQxZGUzMzNlNWQ3NWQxMGEzZTU2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotSU5TVEFMTAotCi1UbyBpbnN0YWxsIHRoaXMg
cGFja2FnZSB0byB0aGUgc3lzdGVtLCBydW4gdGhpczoKLSQgcHl0aG9uIHNldHVwLnB5IGJ1aWxk
Ci0kIHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKLQotVG8gaW5zdGFsbCB0aGlzIHBhY2th
Z2UgYXMgYSBub3JtYWwgdXNlciwgcnVuIHRoaXMgaW5zdGVhZDoKLSQgcHl0aG9uIHNldHVwLnB5
IGJ1aWxkCi0kIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0tdXNlcgotCi1MQVVOQ0gKLQotVG8g
dXNlIHB5d2Vic29ja2V0IGFzIEFwYWNoZSBtb2R1bGUsIHJ1biB0aGlzIHRvIHJlYWQgdGhlIGRv
Y3VtZW50OgotJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQKLQotVG8gdXNlIHB5d2Vic29ja2V0IGFz
IHN0YW5kYWxvbmUgc2VydmVyLCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVudDoKLSQgcHlk
b2MgbW9kX3B5d2Vic29ja2V0LnN0YW5kYWxvbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1k
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9SRUFETUUubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlOGU5MTBh
ODRlZjk5NTY2OWVhMDcyM2YxYmM3ZjI5OTM0NjY1ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUubWQKKysrIC9kZXYvbnVsbApAQCAt
MSw4ICswLDAgQEAKLQotIyBweXdlYnNvY2tldCAjCi0KLVRoZSBweXdlYnNvY2tldCBwcm9qZWN0
IGFpbXMgdG8gcHJvdmlkZSBhIFtXZWJTb2NrZXRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9yZmM2NDU1KSBzdGFuZGFsb25lIHNlcnZlciBhbmQgYSBXZWJTb2NrZXQgZXh0ZW5zaW9uIGZv
ciBbQXBhY2hlIEhUVFAgU2VydmVyXShodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvKSwgbW9kXF9w
eXdlYnNvY2tldC4KLQotcHl3ZWJzb2NrZXQgaXMgaW50ZW5kZWQgZm9yICoqdGVzdGluZyoqIG9y
ICoqZXhwZXJpbWVudGFsKiogcHVycG9zZXMuCi0KLVBsZWFzZSBzZWUgW1dpa2ldKC4uLy4uL3dp
a2kpIGZvciBtb3JlIGRldGFpbHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfaGFu
ZHNoYWtlX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDgwMjNhMWZlOTFlMmYyOTc3YjE2M2Y5NzdkYWU2
ODUwMDA5YWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1
ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAg
ICAgIkFib3J0ZWQgaW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UiKQotCi0KLWRlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9hYm9ydF93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYmYw
MDVmNmEzN2M2MDllMTZhYmRlNGRmOTQwMjQyNjhkMGRhZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNl
cHRpb24oCi0gICAgICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSIpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZm
ZXJfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2OWNkN2UxZWU2NTNkNTlmMDRiODAy
ZmYzNGM4ZDA4MTMxN2NhODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5j
LgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6
Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmli
dXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1E
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgot
Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkFycmF5QnVmZmVyIGJlbmNobWFyazwvdGl0bGU+Ci08
c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIFBSSU5UX1NJWkUg
PSB0cnVlOwotCi0vLyBJbml0aWFsIHNpemUgb2YgYXJyYXlzLgotdmFyIFNUQVJUX1NJWkUgPSAx
MCAqIDEwMjQ7Ci0vLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBhbiBhcnJheSBl
eGNlZWRzIHRoaXMgdGhyZXNob2xkLgotdmFyIFNUT1BfVEhSRVNIT0xEID0gMTAwMDAwICogMTAy
NDsKLS8vIElmIHRoZSBzaXplIG9mIGVhY2ggYXJyYXkgaXMgc21hbGwsIHdyaXRlL3JlYWQgdGhl
IGFycmF5IG11bHRpcGxlIHRpbWVzCi0vLyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMg
dGhpcyB0aHJlc2hvbGQuCi12YXIgTUlOX1RPVEFMID0gMTAwMDAwICogMTAyNDsKLXZhciBNVUxU
SVBMSUVSUyA9IFs1LCAyXTsKLQotLy8gUmVwZWF0IGJlbmNobWFyayBmb3Igc2V2ZXJhbCB0aW1l
cyB0byBtZWFzdXJlIHBlcmZvcm1hbmNlIG9mIG9wdGltaXplZAotLy8gKHN1Y2ggYXMgSklUKSBy
dW4uCi12YXIgUkVQRUFUX0ZPUl9XQVJNVVAgPSAzOwotCi1mdW5jdGlvbiB3cml0ZUJlbmNobWFy
ayhzaXplLCBtaW5Ub3RhbCkgewotICB2YXIgdG90YWxTaXplID0gMDsKLSAgd2hpbGUgKHRvdGFs
U2l6ZSA8IG1pblRvdGFsKSB7Ci0gICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVy
KHNpemUpOwotCi0gICAgLy8gV3JpdGUgJ2Ency4KLSAgICBmaWxsQXJyYXlCdWZmZXIoYXJyYXlC
dWZmZXIsIDB4NjEpOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLSAgcmV0dXJuIHRv
dGFsU2l6ZTsKLX0KLQotZnVuY3Rpb24gcmVhZEJlbmNobWFyayhzaXplLCBtaW5Ub3RhbCkgewot
ICB2YXIgdG90YWxTaXplID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IG1pblRvdGFsKSB7Ci0g
ICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAgaWYgKCF2
ZXJpZnlBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHgwMCkpIHsKLSAgICAgIHF1ZXVlTG9nKCdW
ZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgdG90
YWxTaXplICs9IHNpemU7Ci0gIH0KLSAgcmV0dXJuIHRvdGFsU2l6ZTsKLX0KLQotZnVuY3Rpb24g
cnVuQmVuY2htYXJrKGJlbmNobWFya0Z1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIHNp
emUsCi0gICAgICAgICAgICAgICAgICAgICAgc3RvcFRocmVzaG9sZCwKLSAgICAgICAgICAgICAg
ICAgICAgICBtaW5Ub3RhbCwKLSAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWVycywKLSAg
ICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWVySW5kZXgpIHsKLSAgd2hpbGUgKHNpemUgPD0g
c3RvcFRocmVzaG9sZCkgewotICAgIHZhciBtYXhTcGVlZCA9IDA7Ci0KLSAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IFJFUEVBVF9GT1JfV0FSTVVQOyArK2kpIHsKLSAgICAgIHZhciBzdGFydFRpbWVJ
bk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgICAgIHZhciB0b3RhbFNpemUgPSBiZW5jaG1hcmtG
dW5jdGlvbihzaXplLCBtaW5Ub3RhbCk7Ci0KLSAgICAgIG1heFNwZWVkID0gTWF0aC5tYXgobWF4
U3BlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZVNwZWVkSW5LQih0b3Rh
bFNpemUsIHN0YXJ0VGltZUluTXMpKTsKLSAgICB9Ci0gICAgcXVldWVMb2coZm9ybWF0UmVzdWx0
SW5LaUIoc2l6ZSwgbWF4U3BlZWQsIFBSSU5UX1NJWkUpKTsKLQotICAgIHNpemUgKj0gbXVsdGlw
bGllcnNbbXVsdGlwbGllckluZGV4XTsKLSAgICBtdWx0aXBsaWVySW5kZXggPSAobXVsdGlwbGll
ckluZGV4ICsgMSkgJSBtdWx0aXBsaWVycy5sZW5ndGg7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcnVu
QmVuY2htYXJrcygpIHsKLSAgcXVldWVMb2coJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFNwZWVkIGlu
IGtCL3MnKTsKLQotICBxdWV1ZUxvZygnV3JpdGUgYmVuY2htYXJrJyk7Ci0gIHJ1bkJlbmNobWFy
aygKLSAgICAgIHdyaXRlQmVuY2htYXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RIUkVTSE9MRCwgTUlO
X1RPVEFMLCBNVUxUSVBMSUVSUywgMCk7Ci0gIHF1ZXVlTG9nKCdGaW5pc2hlZCcpOwotCi0gIHF1
ZXVlTG9nKCdSZWFkIGJlbmNobWFyaycpOwotICBydW5CZW5jaG1hcmsoCi0gICAgICByZWFkQmVu
Y2htYXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RIUkVTSE9MRCwgTUlOX1RPVEFMLCBNVUxUSVBMSUVS
UywgMCk7Ci0gIGFkZFRvTG9nKCdGaW5pc2hlZCcpOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewot
ICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgcXVldWVMb2co
d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAgYWRkVG9Mb2co
J1N0YXJ0ZWQuLi4nKTsKLQotICBzZXRUaW1lb3V0KHJ1bkJlbmNobWFya3MsIDApOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJlYQotICAg
IGlkPSJsb2ciIHJvd3M9IjUwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFy
ZWE+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2hfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2JlbmNoX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTA2N2NhN2Q4OTU1ZmMxNjNkNTAwMWNkODgxMmU2YWUyMGMxNjI5My4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2hf
d3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiQSBzaW1wbGUgbG9hZCB0ZXN0ZXIgZm9yIFdlYlNvY2tldCBjbGllbnRzLgotCi1BIGNs
aWVudCBwcm9ncmFtIHNlbmRzIGEgbWVzc2FnZSBmb3JtYXR0ZWQgYXMgIjx0aW1lPiA8Y291bnQ+
IDxtZXNzYWdlPiIgdG8KLXRoaXMgaGFuZGxlci4gVGhpcyBoYW5kbGVyIHN0YXJ0cyBzZW5kaW5n
IHRvdGFsIDxjb3VudD4gV2ViU29ja2V0IG1lc3NhZ2VzCi1jb250YWluaW5nIDxtZXNzYWdlPiBl
dmVyeSA8dGltZT4gc2Vjb25kcy4gPHRpbWU+IGNhbiBiZSBhIGZsb2F0aW5nIHBvaW50Ci12YWx1
ZS4gPGNvdW50PiBtdXN0IGJlIGFuIGludGVnZXIgdmFsdWUuCi0iIiIKLQotCi1pbXBvcnQgdGlt
ZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBw
YXNzICAjIEFsd2F5cyBhY2NlcHQuCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShy
ZXF1ZXN0KToKLSAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkK
LSAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoJyAnKQotICAgIGlmIGxlbihwYXJ0cykgIT0gMzoKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHBhcmFtZXRlciBmb3JtYXQnKQotICAgIHdhaXQg
PSBmbG9hdChwYXJ0c1swXSkKLSAgICBjb3VudCA9IGludChwYXJ0c1sxXSkKLSAgICBtZXNzYWdl
ID0gcGFydHNbMl0KLSAgICBmb3IgaSBpbiB4cmFuZ2UoY291bnQpOgotICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgdGltZS5zbGVlcCh3YWl0
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNo
bWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhOTIzODYzYTk5NTY5NzYzYWI3OTc2YTdkZTc4MjA1Y2E2MTkyYTJhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3NSArMCwwIEBACi08IS0tCi1D
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2Nr
ZXQgYmVuY2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImJlbmNobWFy
ay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotCi1mdW5j
dGlvbiBnZXRDb25maWcoKSB7Ci0gIHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBhZGRyZXNzQm94
LnZhbHVlLAotICAgIHByaW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyks
Ci0gICAgbnVtU29ja2V0czogZ2V0SW50RnJvbUlucHV0KCdudW1zb2NrZXRzJyksCi0gICAgLy8g
SW5pdGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21J
bnB1dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZy
b21JbnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJv
bUlucHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6
ZSBvZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAgc3RvcFRocmVzaG9sZDog
Z2V0SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgLy8gSWYgdGhlIHNpemUgb2Yg
ZWFjaCBtZXNzYWdlIGlzIHNtYWxsLCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUgbWVzc2FnZXMKLSAg
ICAvLyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCi0gICAg
bWluVG90YWw6IGdldEludEZyb21JbnB1dCgnbWludG90YWwnKSwKLSAgICBtdWx0aXBsaWVyczog
Z2V0RmxvYXRBcnJheUZyb21JbnB1dCgnbXVsdGlwbGllcnMnKSwKLSAgICB2ZXJpZnlEYXRhOiBn
ZXRCb29sRnJvbUNoZWNrQm94KCd2ZXJpZnlkYXRhJyksCi0gICAgYWRkVG9Mb2c6IGFkZFRvTG9n
LAotICAgIGFkZFRvU3VtbWFyeTogYWRkVG9TdW1tYXJ5LAotICAgIG1lYXN1cmVWYWx1ZTogbWVh
c3VyZVZhbHVlLAotICAgIG5vdGlmeUFib3J0OiBub3RpZnlBYm9ydAotICB9OwotfQotCi1mdW5j
dGlvbiBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAg
ZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3NlbmRCZW5j
aG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgewotICB2YXIgY29u
ZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0Jv
eCgnd29ya2VyJyksICdyZWNlaXZlQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0Y2hC
ZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgZG9BY3Rpb24oY29u
ZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Ci19
Ci0KLWZ1bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBk
b0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOwot
fQotCi1mdW5jdGlvbiBpbml0KCkgewotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FkZHJlc3MnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xv
ZycpOwotCi0gIHN1bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScp
OwotCi0gIHZhciBzY2hlbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicg
PyAnd3NzOi8vJyA6ICd3czovLyc7Ci0gIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdp
bmRvdy5sb2NhdGlvbi5ob3N0ICsgJy9iZW5jaG1hcmtfaGVscGVyJzsKLQotICBhZGRyZXNzQm94
LnZhbHVlID0gZGVmYXVsdEFkZHJlc3M7Ci0KLSAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51
c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0gIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9y
LnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBpZiAoISgnV2ViU29ja2V0JyBpbiB3aW5k
b3cpKSB7Ci0gICAgYWRkVG9Mb2coJ1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7Ci0gIH0K
LQotICBpbml0V29ya2VyKCdXZWJTb2NrZXQnLCAnJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLQotPGRpdiBpZD0iYmVuY2htYXJrX2RpdiI+Ci0gIHVy
bCA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KLSAgPGlucHV0IHR5
cGU9ImJ1dHRvbiIgdmFsdWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KLSAg
PGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJl
bmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNr
PSJvbkJhdGNoQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3Rv
cCIgb25jbGljaz0ib25TdG9wKCkiPgotCi0gIDxici8+Ci0KLSAgPGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBpZD0icHJpbnRzaXplIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlBy
aW50IHNpemUgYW5kIHRpbWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hl
Y2tib3giIGlkPSJ2ZXJpZnlkYXRhIiBjaGVja2VkPgotICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRh
Ij5WZXJpZnkgZGF0YTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Indvcmtl
ciI+Ci0gIDxsYWJlbCBmb3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+Ci0KLSAgPGJy
Lz4KLQotICBQYXJhbWV0ZXJzOgotCi0gIDxici8+Ci0KLSAgPHRhYmxlPgotICAgIDx0cj4KLSAg
ICAgIDx0ZD5OdW0gc29ja2V0czwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlk
PSJudW1zb2NrZXRzIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAg
IDx0ZD5OdW1iZXIgb2YgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRl
eHQiIGlkPSJudW1pdGVyYXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0
cj4KLSAgICAgIDx0ZD5OdW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0
ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48
L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgotICAg
ICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwv
dGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgot
ICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEw
MjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NaW5pbXVtIHRv
dGFsPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1
ZT0iMTAyNDAwMDAwIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk11bHRp
cGxpZXJzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJz
IiB2YWx1ZT0iNSwgMiI+PC90ZD4KLSAgICA8L3RyPgotICA8L3RhYmxlPgotPC9kaXY+Ci0KLTxk
aXYgaWQ9ImxvZ19kaXYiPgotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBz
dHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLTxkaXYgaWQ9
InN1bW1hcnlfZGl2Ij4KLSAgU3VtbWFyeQotICA8dGV4dGFyZWEKLSAgICAgIGlkPSJzdW1tYXJ5
IiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9k
aXY+Ci0KLU5vdGU6IEVmZmVjdCBvZiBSVFQgaXMgbm90IGVsaW1pbmF0ZWQuCi0KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvYmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTY0MzVk
MWQwZGQ3OGQ5Nzk0YWE4NGMwMjljOGFiNGY3MzM5ZWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMTQgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0
aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9v
cGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotaWYgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAi
dW5kZWZpbmVkIikgewotICAvLyBSdW5uaW5nIG9uIGEgd29ya2VyCi0gIGltcG9ydFNjcmlwdHMo
J3V0aWwuanMnLCAndXRpbF93b3JrZXIuanMnKTsKLX0KLQotLy8gTmFtZXNwYWNlIGZvciBob2xk
aW5nIGdsb2JhbHMuCi12YXIgYmVuY2htYXJrID0ge3N0YXJ0VGltZUluTXM6IDB9OwotCi12YXIg
c29ja2V0cyA9IFtdOwotdmFyIG51bUVzdGFibGlzaGVkU29ja2V0cyA9IDA7Ci0KLXZhciB0aW1l
cklEID0gbnVsbDsKLQotZnVuY3Rpb24gZGVzdHJveVNvY2tldChzb2NrZXQpIHsKLSAgc29ja2V0
Lm9ub3BlbiA9IG51bGw7Ci0gIHNvY2tldC5vbm1lc3NhZ2UgPSBudWxsOwotICBzb2NrZXQub25l
cnJvciA9IG51bGw7Ci0gIHNvY2tldC5vbmNsb3NlID0gbnVsbDsKLSAgc29ja2V0LmNsb3NlKCk7
Ci19Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lBbGxTb2NrZXRzKCkgewotICBmb3IgKHZhciBpID0gMDsg
aSA8IHNvY2tldHMubGVuZ3RoOyArK2kpIHsKLSAgICBkZXN0cm95U29ja2V0KHNvY2tldHNbaV0p
OwotICB9Ci0gIHNvY2tldHMgPSBbXTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNobWFya1N0ZXAo
c2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2YXIgdG90
YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVzc2FnZUhh
bmRsZXIgPSBmdW5jdGlvbihldmVudCkgewotICAgIGlmICghdmVyaWZ5QWNrbm93bGVkZ2VtZW50
KGNvbmZpZywgZXZlbnQuZGF0YSwgc2l6ZSkpIHsKLSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7
Ci0gICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICB0b3RhbFJlcGxpZWQgKz0gc2l6ZTsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNp
emUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQo
Y29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplLAotICAgICAg
ICBpc1dhcm1VcCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9OwotCi0gIGZvciAo
dmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIHZhciBzb2NrZXQgPSBz
b2NrZXRzW2ldOwotICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2VIYW5kbGVyOwotICB9
Ci0KLSAgdmFyIGRhdGFBcnJheSA9IFtdOwotCi0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcu
bWluVG90YWwpIHsKLSAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0g
ICAgZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgMHg2MSk7Ci0KLSAgICBkYXRhQXJyYXkucHVzaChi
dWZmZXIpOwotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0
VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICB0b3RhbFNpemUgPSAwOwotCi0gIHZhciBz
b2NrZXRJbmRleCA9IDA7Ci0gIHZhciBkYXRhSW5kZXggPSAwOwotICB3aGlsZSAodG90YWxTaXpl
IDwgY29uZmlnLm1pblRvdGFsKSB7Ci0gICAgdmFyIGNvbW1hbmQgPSBbJ3NlbmQnXTsKLSAgICBj
b21tYW5kLnB1c2goY29uZmlnLnZlcmlmeURhdGEgPyAnMScgOiAnMCcpOwotICAgIHNvY2tldHNb
c29ja2V0SW5kZXhdLnNlbmQoY29tbWFuZC5qb2luKCcgJykpOwotICAgIHNvY2tldHNbc29ja2V0
SW5kZXhdLnNlbmQoZGF0YUFycmF5W2RhdGFJbmRleF0pOwotICAgIHNvY2tldEluZGV4ID0gKHNv
Y2tldEluZGV4ICsgMSkgJSBzb2NrZXRzLmxlbmd0aDsKLQotICAgIHRvdGFsU2l6ZSArPSBzaXpl
OwotICAgICsrZGF0YUluZGV4OwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmtT
dGVwKHNpemUsIGNvbmZpZywgaXNXYXJtVXApIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0KLSAgdmFy
IHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZhciBvbk1lc3Nh
Z2VIYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICB2YXIgYnl0ZXNSZWNlaXZlZCA9IGV2
ZW50LmRhdGEuYnl0ZUxlbmd0aDsKLSAgICBpZiAoYnl0ZXNSZWNlaXZlZCAhPSBzaXplKSB7Ci0g
ICAgICBjb25maWcuYWRkVG9Mb2coJ0V4cGVjdGVkICcgKyBzaXplICsgJ0IgYnV0IHJlY2VpdmVk
ICcgKwotICAgICAgICAgIGJ5dGVzUmVjZWl2ZWQgKyAnQicpOwotICAgICAgZGVzdHJveUFsbFNv
Y2tldHMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSAmJiAhdmVyaWZ5QXJyYXlCdWZmZXIoZXZl
bnQuZGF0YSwgMHg2MSkpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnUmVzcG9uc2UgdmVyaWZp
Y2F0aW9uIGZhaWxlZCcpOwotICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICAgIGNvbmZp
Zy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGll
ZCArPSBieXRlc1JlY2VpdmVkOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkg
ewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25m
aWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCi0gICAgICAgIGlz
V2FybVVwKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHNvY2tldCA9IHNvY2tl
dHNbaV07Ci0gICAgc29ja2V0LmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgIHNvY2tl
dC5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2VIYW5kbGVyOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0
VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICB2YXIgc29ja2V0SW5kZXggPSAwOwotICB3
aGlsZSAodG90YWxTaXplIDwgY29uZmlnLm1pblRvdGFsKSB7Ci0gICAgc29ja2V0c1tzb2NrZXRJ
bmRleF0uc2VuZCgncmVjZWl2ZSAnICsgc2l6ZSk7Ci0gICAgc29ja2V0SW5kZXggPSAoc29ja2V0
SW5kZXggKyAxKSAlIHNvY2tldHMubGVuZ3RoOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gY3JlYXRlU29ja2V0KGNvbmZpZykgewotICAvLyBUT0RPKHR5b3No
aW5vKTogQWRkIFRDUCB3YXJtIHVwLgotICB2YXIgdXJsID0gY29uZmlnLnByZWZpeFVybDsKLQot
ICBjb25maWcuYWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVybCk7Ci0KLSAgdmFyIHNvY2tldCA9IG5l
dyBXZWJTb2NrZXQodXJsKTsKLSAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdVbmV4cGVjdGVkIG1lc3NhZ2UgcmVjZWl2ZWQuIEFib3J0
aW5nLicpOwotICB9OwotICBzb2NrZXQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgIGNvbmZp
Zy5hZGRUb0xvZygnRXJyb3InKTsKLSAgfTsKLSAgc29ja2V0Lm9uY2xvc2UgPSBmdW5jdGlvbihl
dmVudCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnQ2xvc2VkJyk7Ci0gICAgY29uZmlnLm5vdGlm
eUFib3J0KCk7Ci0gIH07Ci0gIHJldHVybiBzb2NrZXQ7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVu
Y2htYXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxT
b2NrZXRzKCk7Ci0KLSAgbnVtRXN0YWJsaXNoZWRTb2NrZXRzID0gMDsKLQotICBmb3IgKHZhciBp
ID0gMDsgaSA8IGNvbmZpZy5udW1Tb2NrZXRzOyArK2kpIHsKLSAgICB2YXIgc29ja2V0ID0gY3Jl
YXRlU29ja2V0KGNvbmZpZyk7Ci0gICAgc29ja2V0Lm9ub3BlbiA9IGZ1bmN0aW9uKCkgewotICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdPcGVuZWQnKTsKLQotICAgICAgKytudW1Fc3RhYmxpc2hlZFNv
Y2tldHM7Ci0KLSAgICAgIGlmIChudW1Fc3RhYmxpc2hlZFNvY2tldHMgPT0gc29ja2V0cy5sZW5n
dGgpIHsKLSAgICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgICAgIH0KLSAgICB9OwotICAg
IHNvY2tldHMucHVzaChzb2NrZXQpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGdldENvbmZpZ1N0cmlu
Zyhjb25maWcpIHsKLSAgcmV0dXJuICcoV2ViU29ja2V0JyArCi0gICAgJywgJyArICh0eXBlb2Yg
aW1wb3J0U2NyaXB0cyAhPT0gInVuZGVmaW5lZCIgPyAnV29ya2VyJyA6ICdNYWluJykgKwotICAg
ICcsIG51bVNvY2tldHM9JyArIGNvbmZpZy5udW1Tb2NrZXRzICsKLSAgICAnLCBudW1JdGVyYXRp
b25zPScgKyBjb25maWcubnVtSXRlcmF0aW9ucyArCi0gICAgJywgdmVyaWZ5RGF0YT0nICsgY29u
ZmlnLnZlcmlmeURhdGEgKwotICAgICcsIG1pblRvdGFsPScgKyBjb25maWcubWluVG90YWwgKwot
ICAgICcsIG51bVdhcm1VcEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25z
ICsKLSAgICAnKSc7Ci19Ci0KLWZ1bmN0aW9uIGJhdGNoQmVuY2htYXJrKGNvbmZpZykgewotICBj
b25maWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOwotICBjb25maWcuYWRkVG9Mb2coYnVp
bGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdl
RGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVz
dWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3Ry
aW5nKGNvbmZpZykpOwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5jaG1hcmtTdGVwKTsK
LSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdSZWNlaXZlIEJlbmNobWFyayAnICsK
LSAgICAgIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5jaG1hcmsoY29uZmln
KTsKLX0KLQotZnVuY3Rpb24gY2xlYW51cCgpIHsKLSAgZGVzdHJveUFsbFNvY2tldHMoKTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDRhZDBiZmVlZmM2ZjQ0MzA1NzFiN2I1MzIzM2ZiNzk1MDYxNGNmMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2ht
YXJrX2hlbHBlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0jIENvcHly
aWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJIYW5kbGVyIGZvciBiZW5jaG1hcmsuaHRtbC4iIiIKLQotCi1kZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIyBUdXJuIG9mZiBj
b21wcmVzc2lvbi4KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10KLQot
Ci1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIGRhdGEgPSAnJwot
Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgY29tbWFuZCA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJl
Y2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGNvbW1hbmQgaXMgTm9uZToKLSAgICAgICAgICAg
IHJldHVybgotCi0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbW1hbmQsIHVuaWNvZGUpOgot
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6JyArIGNv
bW1hbmQpCi0gICAgICAgIGNvbW1hbmRzID0gY29tbWFuZC5zcGxpdCgnICcpCi0gICAgICAgIGlm
IGxlbihjb21tYW5kcykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFs
aWQgY29tbWFuZCBkYXRhOiAnICsgY29tbWFuZCkKLQotICAgICAgICBpZiBjb21tYW5kc1swXSA9
PSAncmVjZWl2ZSc6Ci0gICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9IDI6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdJbGxl
Z2FsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHNlbmQgY29tbWFuZCcgKwotICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbWFuZCkKLSAgICAgICAgICAgIHNpemUgPSBpbnQoY29tbWFuZHNbMV0p
Ci0KLSAgICAgICAgICAgICMgUmV1c2UgZGF0YSBpZiBwb3NzaWJsZS4KLSAgICAgICAgICAgIGlm
IGxlbihkYXRhKSAhPSBzaXplOgotICAgICAgICAgICAgICAgIGRhdGEgPSAnYScgKiBzaXplCi0g
ICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoZGF0YSwgYmluYXJ5PVRy
dWUpCi0gICAgICAgIGVsaWYgY29tbWFuZHNbMF0gPT0gJ3NlbmQnOgotICAgICAgICAgICAgaWYg
bGVuKGNvbW1hbmRzKSAhPSAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBy
ZWNlaXZlIGNvbW1hbmQnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCi0gICAg
ICAgICAgICB2ZXJpZnlfZGF0YSA9IGNvbW1hbmRzWzFdID09ICcxJwotCi0gICAgICAgICAgICBk
YXRhID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgIGlm
IGRhdGEgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXlsb2Fk
IG5vdCByZWNlaXZlZCcpCi0gICAgICAgICAgICBzaXplID0gbGVuKGRhdGEpCi0KLSAgICAgICAg
ICAgIGlmIHZlcmlmeV9kYXRhOgotICAgICAgICAgICAgICAgIGlmIGRhdGEgIT0gJ2EnICogc2l6
ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCB2ZXJpZmlj
YXRpb24gZmFpbGVkJykKLQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNz
YWdlKHN0cihzaXplKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgY29tbWFuZDogJyArIGNvbW1hbmRzWzBdKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nsb3NlX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9jbG9zZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2YjA4Mzg0MDgx
MjQ1Mzk3OTc2NTdkNDBkNjQyNzhmMWE2NDgxYzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nsb3NlX3dzaC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDY5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgc3RydWN0Ci0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBzdHJlYW0KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJl
Y2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAgICAgIHJl
dHVybgotICAgICAgICBjb2RlLCByZWFzb24gPSBsaW5lLnNwbGl0KCcgJywgMSkKLSAgICAgICAg
aWYgY29kZSBpcyBOb25lIG9yIHJlYXNvbiBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oaW50KGNvZGUpLCByZWFz
b24pCi0gICAgICAgICMgY2xvc2VfY29ubmVjdGlvbigpIGluaXRpYXRlcyBjbG9zaW5nIGhhbmRz
aGFrZS4gSXQgdmFsaWRhdGVzIGNvZGUKLSAgICAgICAgIyBhbmQgcmVhc29uLiBJZiB5b3Ugd2Fu
dCB0byBzZW5kIGEgYnJva2VuIGNsb3NlIGZyYW1lIGZvciBhIHRlc3QsCi0gICAgICAgICMgZm9s
bG93aW5nIGNvZGUgd2lsbCBiZSB1c2VmdWwuCi0gICAgICAgICMgPiBkYXRhID0gc3RydWN0LnBh
Y2soJyFIJywgaW50KGNvZGUpKSArIHJlYXNvbi5lbmNvZGUoJ1VURi04JykKLSAgICAgICAgIyA+
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShzdHJlYW0uY3JlYXRlX2Nsb3NlX2ZyYW1lKGRhdGEp
KQotICAgICAgICAjID4gIyBTdXBwcmVzcyB0byByZS1yZXNwb25kIGNsaWVudCByZXNwb25kaW5n
IGNsb3NlIGZyYW1lLgotICAgICAgICAjID4gcmFpc2UgRXhjZXB0aW9uKCJjdXN0b21pemVkIHNl
cnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3Bh
c3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIyBTaW1wbHkgZWNobyBhIGNs
b3NlIHN0YXR1cyBjb2RlCi0gICAgY29kZSwgcmVhc29uID0gcmVxdWVzdC53c19jbG9zZV9jb2Rl
LCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbgotCi0gICAgIyBweXdlYnNvY2tldCBzZXRzIHBzZXVk
byBjb2RlIGZvciByZWNlaXZpbmcgYW4gZW1wdHkgYm9keSBjbG9zZSBmcmFtZS4KLSAgICBpZiBj
b2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEOgotICAgICAgICBjb2RlID0g
Tm9uZQotICAgICAgICByZWFzb24gPSAnJwotICAgIHJldHVybiBjb2RlLCByZWFzb24KLQotCi0j
IHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjY2Q2ZDhmODA2NzZiOTk5MWUyMmRmYzdlYzg1MDgzNDExZGRkMGIzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMTcgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTEs
IEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotLS0+Ci0KLTwhLS0KLUEgc2ltcGxlIGNvbnNvbGUgZm9yIHRlc3RpbmcgV2ViU29ja2V0
IHNlcnZlci4KLQotVHlwZSBhbiBhZGRyZXNzIGludG8gdGhlIHRvcCB0ZXh0IGlucHV0IGFuZCBj
bGljayBjb25uZWN0IHRvIGVzdGFibGlzaAotV2ViU29ja2V0LiBUaGVuLCB0eXBlIHNvbWUgbWVz
c2FnZSBpbnRvIHRoZSBib3R0b20gdGV4dCBpbnB1dCBhbmQgY2xpY2sgc2VuZAotdG8gc2VuZCB0
aGUgbWVzc2FnZS4gUmVjZWl2ZWQvc2VudCBtZXNzYWdlcyBhbmQgY29ubmVjdGlvbiBzdGF0ZSB3
aWxsIGJlIHNob3duCi1vbiB0aGUgbWlkZGxlIHRleHRhcmVhLgotLS0+Ci0KLTxodG1sPgotPGhl
YWQ+Ci08dGl0bGU+V2ViU29ja2V0IGNvbnNvbGU8L3RpdGxlPgotPHNjcmlwdD4KLXZhciBzb2Nr
ZXQgPSBudWxsOwotCi12YXIgc2hvd1RpbWVTdGFtcCA9IGZhbHNlOwotCi12YXIgYWRkcmVzc0Jv
eCA9IG51bGw7Ci12YXIgcHJvdG9jb2xzQm94ID0gbnVsbDsKLXZhciBsb2dCb3ggPSBudWxsOwot
dmFyIG1lc3NhZ2VCb3ggPSBudWxsOwotdmFyIGZpbGVCb3ggPSBudWxsOwotdmFyIGNvZGVCb3gg
PSBudWxsOwotdmFyIHJlYXNvbkJveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldFRpbWVTdGFtcCgp
IHsKLSAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpOwotfQotCi1mdW5jdGlvbiBhZGRUb0xv
Zyhsb2cpIHsKLSAgaWYgKHNob3dUaW1lU3RhbXApIHsKLSAgICBsb2dCb3gudmFsdWUgKz0gJ1sn
ICsgZ2V0VGltZVN0YW1wKCkgKyAnXSAnOwotICB9Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAn
XG4nCi0gIC8vIExhcmdlIGVub3VnaCB0byBrZWVwIHNob3dpbmcgdGhlIGxhdGVzdCBtZXNzYWdl
LgotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gc2V0YmluYXJ5
dHlwZShiaW5hcnlUeXBlKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBj
b25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQuYmluYXJ5VHlwZSA9IGJp
bmFyeVR5cGU7Ci0gIGFkZFRvTG9nKCdTZXQgYmluYXJ5VHlwZSB0byAnICsgYmluYXJ5VHlwZSk7
Ci19Ci0KLWZ1bmN0aW9uIHNlbmQoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2co
J05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQuc2VuZChtZXNz
YWdlQm94LnZhbHVlKTsKLSAgYWRkVG9Mb2coJz4gJyArIG1lc3NhZ2VCb3gudmFsdWUpOwotICBt
ZXNzYWdlQm94LnZhbHVlID0gJyc7Ci19Ci0KLWZ1bmN0aW9uIHNlbmRmaWxlKCkgewotICBpZiAo
IXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwot
ICB9Ci0KLSAgdmFyIGZpbGVzID0gZmlsZUJveC5maWxlczsKLQotICBpZiAoZmlsZXMubGVuZ3Ro
ID09IDApIHsKLSAgICBhZGRUb0xvZygnRmlsZSBub3Qgc2VsZWN0ZWQnKTsKLSAgICByZXR1cm47
Ci0gIH0KLQotICBzb2NrZXQuc2VuZChmaWxlc1swXSk7Ci0gIGFkZFRvTG9nKCc+IFNlbmQgJyAr
IGZpbGVzWzBdLm5hbWUpOwotfQotCi1mdW5jdGlvbiBwYXJzZVByb3RvY29scyhwcm90b2NvbHNU
ZXh0KSB7Ci0gIHZhciBwcm90b2NvbHMgPSBwcm90b2NvbHNUZXh0LnNwbGl0KCcsJyk7Ci0gIGZv
ciAodmFyIGkgPSAwOyBpIDwgcHJvdG9jb2xzLmxlbmd0aDsgKytpKSB7Ci0gICAgcHJvdG9jb2xz
W2ldID0gcHJvdG9jb2xzW2ldLnRyaW0oKTsKLSAgfQotCi0gIGlmIChwcm90b2NvbHMubGVuZ3Ro
ID09IDApIHsKLSAgICAvLyBEb24ndCBwYXNzLgotICAgIHByb3RvY29scyA9IG51bGw7Ci0gIH0g
ZWxzZSBpZiAocHJvdG9jb2xzLmxlbmd0aCA9PSAxKSB7Ci0gICAgaWYgKHByb3RvY29sc1swXS5s
ZW5ndGggPT0gMCkgewotICAgICAgLy8gRG9uJ3QgcGFzcy4KLSAgICAgIHByb3RvY29scyA9IG51
bGw7Ci0gICAgfSBlbHNlIHsKLSAgICAgIC8vIFBhc3MgYXMgYSBzdHJpbmcuCi0gICAgICBwcm90
b2NvbHMgPSBwcm90b2NvbHNbMF07Ci0gICAgfQotICB9Ci0KLSAgcmV0dXJuIHByb3RvY29sczsK
LX0KLQotZnVuY3Rpb24gY29ubmVjdCgpIHsKLSAgdmFyIHVybCA9IGFkZHJlc3NCb3gudmFsdWU7
Ci0gIHZhciBwcm90b2NvbHMgPSBwYXJzZVByb3RvY29scyhwcm90b2NvbHNCb3gudmFsdWUpOwot
Ci0gIGlmICgnV2ViU29ja2V0JyBpbiB3aW5kb3cpIHsKLSAgICBpZiAocHJvdG9jb2xzKSB7Ci0g
ICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCwgcHJvdG9jb2xzKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOwotICAgIH0KLSAgfSBlbHNlIHsK
LSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24gKCkgewotICAg
IHZhciBleHRyYUluZm8gPSBbXTsKLSAgICBpZiAoKCdwcm90b2NvbCcgaW4gc29ja2V0KSAmJiBz
b2NrZXQucHJvdG9jb2wpIHsKLSAgICAgIGV4dHJhSW5mby5wdXNoKCdwcm90b2NvbCA9ICcgKyBz
b2NrZXQucHJvdG9jb2wpOwotICAgIH0KLSAgICBpZiAoKCdleHRlbnNpb25zJyBpbiBzb2NrZXQp
ICYmIHNvY2tldC5leHRlbnNpb25zKSB7Ci0gICAgICBleHRyYUluZm8ucHVzaCgnZXh0ZW5zaW9u
cyA9ICcgKyBzb2NrZXQuZXh0ZW5zaW9ucyk7Ci0gICAgfQotCi0gICAgdmFyIGxvZ01lc3NhZ2Ug
PSAnT3BlbmVkJzsKLSAgICBpZiAoZXh0cmFJbmZvLmxlbmd0aCA+IDApIHsKLSAgICAgIGxvZ01l
c3NhZ2UgKz0gJyAoJyArIGV4dHJhSW5mby5qb2luKCcsICcpICsgJyknOwotICAgIH0KLSAgICBh
ZGRUb0xvZyhsb2dNZXNzYWdlKTsKLSAgfTsKLSAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
IChldmVudCkgewotICAgIGlmICgoJ0FycmF5QnVmZmVyJyBpbiB3aW5kb3cpICYmIChldmVudC5k
YXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSB7Ci0gICAgICBhZGRUb0xvZygnPCBSZWNlaXZl
ZCBhbiBBcnJheUJ1ZmZlciBvZiAnICsgZXZlbnQuZGF0YS5ieXRlTGVuZ3RoICsKLSAgICAgICAg
ICAgICAgICcgYnl0ZXMnKQotICAgIH0gZWxzZSBpZiAoKCdCbG9iJyBpbiB3aW5kb3cpICYmIChl
dmVudC5kYXRhIGluc3RhbmNlb2YgQmxvYikpIHsKLSAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVk
IGEgQmxvYiBvZiAnICsgZXZlbnQuZGF0YS5zaXplICsgJyBieXRlcycpCi0gICAgfSBlbHNlIHsK
LSAgICAgIGFkZFRvTG9nKCc8ICcgKyBldmVudC5kYXRhKTsKLSAgICB9Ci0gIH07Ci0gIHNvY2tl
dC5vbmVycm9yID0gZnVuY3Rpb24gKCkgewotICAgIGFkZFRvTG9nKCdFcnJvcicpOwotICB9Owot
ICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uIChldmVudCkgewotICAgIHZhciBsb2dNZXNzYWdl
ID0gJ0Nsb3NlZCAoJzsKLSAgICBpZiAoKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgJiYgKCdDbG9z
ZUV2ZW50JyBpbiB3aW5kb3cpICYmCi0gICAgICAgIChldmVudCBpbnN0YW5jZW9mIENsb3NlRXZl
bnQpKSB7Ci0gICAgICBsb2dNZXNzYWdlICs9ICd3YXNDbGVhbiA9ICcgKyBldmVudC53YXNDbGVh
bjsKLSAgICAgIC8vIGNvZGUgYW5kIHJlYXNvbiBhcmUgcHJlc2VudCBvbmx5IGZvcgotICAgICAg
Ly8gZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTA2IGFuZCBsYXRlcgotICAg
ICAgaWYgKCdjb2RlJyBpbiBldmVudCkgewotICAgICAgICBsb2dNZXNzYWdlICs9ICcsIGNvZGUg
PSAnICsgZXZlbnQuY29kZTsKLSAgICAgIH0KLSAgICAgIGlmICgncmVhc29uJyBpbiBldmVudCkg
ewotICAgICAgICBsb2dNZXNzYWdlICs9ICcsIHJlYXNvbiA9ICcgKyBldmVudC5yZWFzb247Ci0g
ICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJ0Nsb3NlRXZlbnQgaXMg
bm90IGF2YWlsYWJsZSc7Ci0gICAgfQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UgKyAnKScpOwot
ICB9OwotCi0gIGlmIChwcm90b2NvbHMpIHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJs
ICsgJyAocHJvdG9jb2xzID0gJyArIHByb3RvY29scyArICcpJyk7Ci0gIH0gZWxzZSB7Ci0gICAg
YWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVybCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2xvc2VTb2Nr
ZXQoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsK
LSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoY29kZUJveC52YWx1ZSB8fCByZWFzb25Cb3gudmFs
dWUpIHsKLSAgICBzb2NrZXQuY2xvc2UoY29kZUJveC52YWx1ZSwgcmVhc29uQm94LnZhbHVlKTsK
LSAgfSBlbHNlIHsKLSAgICBzb2NrZXQuY2xvc2UoKTsKLSAgfQotfQotCi1mdW5jdGlvbiBwcmlu
dFN0YXRlKCkgewotICBpZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVk
Jyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgYWRkVG9Mb2coCi0gICAgICAndXJsID0gJyArIHNv
Y2tldC51cmwgKwotICAgICAgJywgcmVhZHlTdGF0ZSA9ICcgKyBzb2NrZXQucmVhZHlTdGF0ZSAr
Ci0gICAgICAnLCBidWZmZXJlZEFtb3VudCA9ICcgKyBzb2NrZXQuYnVmZmVyZWRBbW91bnQpOwot
fQotCi1mdW5jdGlvbiBpbml0KCkgewotICB2YXIgc2NoZW1lID0gd2luZG93LmxvY2F0aW9uLnBy
b3RvY29sID09ICdodHRwczonID8gJ3dzczovLycgOiAnd3M6Ly8nOwotICB2YXIgZGVmYXVsdEFk
ZHJlc3MgPSBzY2hlbWUgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvZWNobyc7Ci0KLSAgYWRk
cmVzc0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIHByb3RvY29s
c0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm90b2NvbHMnKTsKLSAgbG9nQm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotICBtZXNzYWdlQm94ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ21lc3NhZ2UnKTsKLSAgZmlsZUJveCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdmaWxlJyk7Ci0gIGNvZGVCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29k
ZScpOwotICByZWFzb25Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVhc29uJyk7Ci0K
LSAgYWRkcmVzc0JveC52YWx1ZSA9IGRlZmF1bHRBZGRyZXNzOwotCi0gIGlmICghKCdXZWJTb2Nr
ZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xvZygnV2ViU29ja2V0IGlzIG5vdCBhdmFpbGFi
bGUnKTsKLSAgfQotfQotPC9zY3JpcHQ+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotZm9ybSB7
Ci0gIG1hcmdpbjogMHB4OwotfQotCi0jY29ubmVjdF9kaXYsICNsb2dfZGl2LCAjc2VuZF9kaXYs
ICNzZW5kZmlsZV9kaXYsICNjbG9zZV9kaXYsICNwcmludHN0YXRlX2RpdiB7Ci0gIHBhZGRpbmc6
IDVweDsKLSAgbWFyZ2luOiA1cHg7Ci0gIGJvcmRlci13aWR0aDogMHB4IDBweCAwcHggMTBweDsK
LSAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKLSAgYm9yZGVyLWNvbG9yOiBzaWx2ZXI7Ci19Ci08L3N0
eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08ZGl2PgotCi08ZGl2IGlk
PSJjb25uZWN0X2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJtaXQ9ImNvbm5lY3QoKTsg
cmV0dXJuIGZhbHNlOyI+Ci0gICAgdXJsIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIg
c2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjb25uZWN0Ij4KLSAg
ICA8YnIvPgotICAgIHByb3RvY29scyA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InByb3RvY29scyIg
c2l6ZT0iMjAiPgotICA8L2Zvcm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0
ZXh0YXJlYSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+
Ci0gIDxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIKLSAgICAgICAgIG5hbWU9InNob3d0
aW1lc3RhbXAiCi0gICAgICAgICB2YWx1ZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAgIG9uY2xp
Y2s9InNob3dUaW1lU3RhbXAgPSB0aGlzLmNoZWNrZWQiPlNob3cgdGltZSBzdGFtcAotPC9kaXY+
Ci0KLTxkaXYgaWQ9InNlbmRfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2Vu
ZCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICBkYXRhIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWVz
c2FnZSIgc2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzZW5kIj4K
LSAgPC9mb3JtPgotPC9kaXY+Ci0KLTxkaXYgaWQ9InNlbmRmaWxlX2RpdiI+Ci0gIDxmb3JtIGFj
dGlvbj0iIyIgb25zdWJtaXQ9InNlbmRmaWxlKCk7IHJldHVybiBmYWxzZTsiPgotICAgIDxpbnB1
dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIgc2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJt
aXQiIHZhbHVlPSJzZW5kIGZpbGUiPgotICA8L2Zvcm0+Ci0KLSAgU2V0IGJpbmFyeVR5cGUKLSAg
PGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iYmluYXJ5dHlwZSIKLSAgICAgICAg
IHZhbHVlPSJibG9iIgotICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYmxvYicpIiBj
aGVja2VkPmJsb2IKLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iYmluYXJ5
dHlwZSIKLSAgICAgICAgIHZhbHVlPSJhcnJheWJ1ZmZlciIKLSAgICAgICAgIG9uY2xpY2s9InNl
dGJpbmFyeXR5cGUoJ2FycmF5YnVmZmVyJykiPmFycmF5YnVmZmVyCi08L2Rpdj4KLQotPGRpdiBp
ZD0iY2xvc2VfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0iY2xvc2VTb2NrZXQo
KTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgY29kZSA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvZGUi
IHNpemU9IjEwIj4KLSAgICByZWFzb24gPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZWFzb24iIHNp
emU9IjIwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iY2xvc2UiPgotICA8L2Zv
cm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0icHJpbnRzdGF0ZV9kaXYiPgotICA8aW5wdXQgdHlwZT0i
YnV0dG9uIiB2YWx1ZT0icHJpbnQgc3RhdGUiIG9uY2xpY2s9InByaW50U3RhdGUoKTsiPgotPC9k
aXY+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvY29va2llX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4YjMyNzE1MmU3MDFmN2QyMDMxZDdjOWNlMDQ2MjRjZmE4NGFj
MTZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9jb29raWVfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNl
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9k
ZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLQotaW1wb3J0
IHVybHBhcnNlCi0KLQotZGVmIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCB2YWx1ZSk6Ci0gICAg
cmVxdWVzdC5leHRyYV9oZWFkZXJzLmFwcGVuZCgoJ1NldC1Db29raWUnLCB2YWx1ZSkpCi0KLQot
ZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGNvbXBvbmVu
dHMgPSB1cmxwYXJzZS51cmxwYXJzZShyZXF1ZXN0LnVyaSkKLSAgICBjb21tYW5kID0gY29tcG9u
ZW50c1s0XQotCi0gICAgT05FX0RBWV9MSUZFID0gJ01heC1BZ2U9ODY0MDAnCi0KLSAgICBpZiBj
b21tYW5kID09ICdzZXQnOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJzsgJy5q
b2luKFsnZm9vPWJhcicsIE9ORV9EQVlfTElGRV0pKQotICAgIGVsaWYgY29tbWFuZCA9PSAnc2V0
X2h0dHBvbmx5JzoKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsCi0gICAgICAgICAg
ICAnOyAnLmpvaW4oWydodHRwT25seUZvbz1iYXInLCBPTkVfREFZX0xJRkUsICdodHRwT25seSdd
KSkKLSAgICBlbGlmIGNvbW1hbmQgPT0gJ2NsZWFyJzoKLSAgICAgICAgX2FkZF9zZXRfY29va2ll
KHJlcXVlc3QsICdmb289MDsgTWF4LUFnZT0wJykKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJl
cXVlc3QsICdodHRwT25seUZvbz0wOyBNYXgtQWdlPTAnKQotCi0KLWRlZiB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2VjaG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4YWM3NDBlNzA1OGJkMzFhNzhiY2YxYjFiODk3ZDNiZGYzZmM3
ZDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9lY2hvX2NsaWVudC5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMjkgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJTaW1wbGUg
V2ViU29ja2V0IGNsaWVudCBuYW1lZCBlY2hvX2NsaWVudCBqdXN0IGJlY2F1c2Ugb2YgaGlzdG9y
aWNhbCByZWFzb24uCi0KLW1vZF9weXdlYnNvY2tldCBkaXJlY3RvcnkgbXVzdCBiZSBpbiBQWVRI
T05QQVRILgotCi1FeGFtcGxlIFVzYWdlOgotCi0jIHNlcnZlciBzZXR1cAotICUgY2QgJHB5d2Vi
c29ja2V0Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL21vZF9weXdlYnNvY2tldC9z
dGFuZGFsb25lLnB5IC1wIDg4ODAgXAotICAgIC1kICRjd2Qvc3JjL2V4YW1wbGUKLQotIyBydW4g
Y2xpZW50Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL3NyYy9leGFtcGxlL2VjaG9f
Y2xpZW50LnB5IC1wIDg4ODAgXAotICAgICAtcyBsb2NhbGhvc3QgXAotICAgICAtbyBodHRwOi8v
bG9jYWxob3N0IC1yIC9lY2hvIC1tIHRlc3QKLQotb3IKLQotIyBydW4gZWNobyBjbGllbnQgdG8g
dGVzdCBJRVRGIEh5QmkgMDAgcHJvdG9jb2wKLSBydW4gd2l0aCAtLXByb3RvY29sLXZlcnNpb249
aHliaTAwCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLQotCi1p
bXBvcnQgYmFzZTY0Ci1pbXBvcnQgY29kZWNzCi1pbXBvcnQgbG9nZ2luZwotZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgT3B0aW9uUGFyc2VyCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWltcG9ydCBy
ZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHN5cwotCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25z
IGltcG9ydCBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29j
a2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29y
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBfUGVyTWVzc2FnZURlZmxh
dGVGcmFtZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9wYXJzZV93
aW5kb3dfYml0cwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZy
b20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgdXRpbAotCi0KLV9USU1FT1VUX1NFQyA9IDEwCi1fVU5ERUZJTkVEX1BPUlQg
PSAtMQotCi1fVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLV9VUEdS
QURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi1fQ09OTkVDVElP
Tl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0KLSMgU3BlY2lhbCBtZXNzYWdl
IHRoYXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCi1f
R09PREJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCi0KLV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyA9
ICdoeWJpMTMnCi1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggPSAnaHliaTA4JwotX1BST1RPQ09M
X1ZFUlNJT05fSFlCSTAwID0gJ2h5YmkwMCcKLV9QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzUgPSAn
aGl4aWU3NScKLQotIyBDb25zdGFudHMgZm9yIHRoZSAtLXRsc19tb2R1bGUgZmxhZy4KLV9UTFNf
QllfU1RBTkRBUkRfTU9EVUxFID0gJ3NzbCcKLV9UTFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNz
bCcKLQotIyBWYWx1ZXMgdXNlZCBieSB0aGUgLS10bHMtdmVyc2lvbiBmbGFnLgotX1RMU19WRVJT
SU9OX1NTTDIzID0gJ3NzbDIzJwotX1RMU19WRVJTSU9OX1NTTDMgPSAnc3NsMycKLV9UTFNfVkVS
U0lPTl9UTFMxID0gJ3RsczEnCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtlRXJyb3IoRXhjZXB0
aW9uKToKLSAgICBwYXNzCi0KLQotZGVmIF9idWlsZF9tZXRob2RfbGluZShyZXNvdXJjZSk6Ci0g
ICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291cmNlCi0KLQotZGVmIF9vcmln
aW5faGVhZGVyKGhlYWRlciwgb3JpZ2luKToKLSAgICAjIDQuMSAxMy4gY29uY2F0ZW5hdGlvbiBv
ZiB0aGUgc3RyaW5nICJPcmlnaW46IiwgYSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLAotICAgICMg
YW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8g
L2ZpZWxkcy8uCi0gICAgcmV0dXJuICclczogJXNcclxuJyAlIChoZWFkZXIsIG9yaWdpbi5sb3dl
cigpKQotCi0KLWRlZiBfZm9ybWF0X2hvc3RfaGVhZGVyKGhvc3QsIHBvcnQsIHNlY3VyZSk6Ci0g
ICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9ydC8gYmUgYW4gZW1wdHkgc3RyaW5nLgotICAgICMgNC4x
IDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2Fz
ZSwgdG8KLSAgICAjIC9ob3N0cG9ydC8KLSAgICBob3N0cG9ydCA9IGhvc3QubG93ZXIoKQotICAg
ICMgNC4xIDExLiBJZiAvc2VjdXJlLyBpcyBmYWxzZSwgYW5kIC9wb3J0LyBpcyBub3QgODAsIG9y
IGlmIC9zZWN1cmUvCi0gICAgIyBpcyB0cnVlLCBhbmQgL3BvcnQvIGlzIG5vdCA0NDMsIHRoZW4g
YXBwZW5kIGEgVSswMDNBIENPTE9OIGNoYXJhY3RlcgotICAgICMgKDopIGZvbGxvd2VkIGJ5IHRo
ZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJlc3NlZCBhcyBhIGJhc2UtdGVuIGludGVnZXIsCi0gICAg
IyB0byAvaG9zdHBvcnQvCi0gICAgaWYgKChub3Qgc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5E
RUZBVUxUX1dFQl9TT0NLRVRfUE9SVCkgb3IKLSAgICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBj
b21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUKSk6Ci0gICAgICAgIGhvc3Rwb3J0
ICs9ICc6JyArIHN0cihwb3J0KQotICAgICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBz
dHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAgU1BBQ0UKLSAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0
cG9ydC8sIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnJXM6ICVzXHJcbicgJSAoY29tbW9uLkhP
U1RfSEVBREVSLCBob3N0cG9ydCkKLQotCi1kZWYgX3JlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5n
dGgpOgotICAgIGJ5dGVzID0gW10KLSAgICByZW1haW5pbmcgPSBsZW5ndGgKLSAgICB3aGlsZSBy
ZW1haW5pbmcgPiAwOgotICAgICAgICByZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFp
bmluZykKLSAgICAgICAgaWYgbm90IHJlY2VpdmVkX2J5dGVzOgotICAgICAgICAgICAgcmFpc2Ug
SU9FcnJvcigKLSAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2Vp
dmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcKLSAgICAgICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBi
eXRlcyBidXQgcmVjZWl2ZWQgb25seSAlZCBieXRlcyknICUKLSAgICAgICAgICAgICAgICAobGVu
Z3RoLCBsZW5ndGggLSByZW1haW5pbmcpKQotICAgICAgICBieXRlcy5hcHBlbmQocmVjZWl2ZWRf
Ynl0ZXMpCi0gICAgICAgIHJlbWFpbmluZyAtPSBsZW4ocmVjZWl2ZWRfYnl0ZXMpCi0gICAgcmV0
dXJuICcnLmpvaW4oYnl0ZXMpCi0KLQotZGVmIF9nZXRfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMs
IG5hbWUpOgotICAgICIiIkdldHMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5
IG5hbWUgZnJvbSBmaWVsZHMuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgdGhhdCB0aGVy
ZSdzIG9ubHkgb25lIGhlYWRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZQotICAgIGluIGZpZWxk
cy4gT3RoZXJ3aXNlLCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtlRXJyb3IuCi0gICAgIiIiCi0K
LSAgICB2YWx1ZXMgPSBmaWVsZHMuZ2V0KG5hbWUubG93ZXIoKSkKLSAgICBpZiB2YWx1ZXMgaXMg
Tm9uZSBvciBsZW4odmFsdWVzKSA9PSAwOgotICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VF
cnJvcigKLSAgICAgICAgICAgICclcyBoZWFkZXIgbm90IGZvdW5kOiAlcicgJSAobmFtZSwgdmFs
dWVzKSkKLSAgICBpZiBsZW4odmFsdWVzKSA+IDE6Ci0gICAgICAgIHJhaXNlIENsaWVudEhhbmRz
aGFrZUVycm9yKAotICAgICAgICAgICAgJ011bHRpcGxlICVzIGhlYWRlcnMgZm91bmQ6ICVyJyAl
IChuYW1lLCB2YWx1ZXMpKQotICAgIHJldHVybiB2YWx1ZXNbMF0KLQotCi1kZWYgX3ZhbGlkYXRl
X21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGVjdGVkX3ZhbHVlLCBjYXNlX3NlbnNpdGl2ZT1GYWxzZSk6Ci0gICAgIiIiR2V0
cyBhbmQgdmFsaWRhdGVzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1l
IGZyb20KLSAgICBmaWVsZHMuCi0KLSAgICBJZiBleHBlY3RlZF92YWx1ZSBpcyBzcGVjaWZpZWQs
IGNvbXBhcmVzIGV4cGVjdGVkIHZhbHVlIGFuZCBhY3R1YWwgdmFsdWUKLSAgICBhbmQgcmFpc2Vz
IGFuIENsaWVudEhhbmRzaGFrZUVycm9yIG9uIGZhaWx1cmUuIFlvdSBjYW4gc3BlY2lmeSBjYXNl
Ci0gICAgc2Vuc2l0aXZlbmVzcyBpbiB0aGlzIGNvbXBhcmlzb24gYnkgY2FzZV9zZW5zaXRpdmUg
cGFyYW1ldGVyLiBUaGlzIGZ1bmN0aW9uCi0gICAgZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBv
bmUgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGluIGZpZWxkcy4KLSAgICBPdGhlcndp
c2UsIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VFcnJvci4KLSAgICAiIiIKLQotICAgIHZhbHVl
ID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSkKLQotICAgIGlmICgoY2FzZV9z
ZW5zaXRpdmUgYW5kIHZhbHVlICE9IGV4cGVjdGVkX3ZhbHVlKSBvcgotICAgICAgICAobm90IGNh
c2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZS5sb3dlcigpICE9IGV4cGVjdGVkX3ZhbHVlLmxvd2VyKCkp
KToKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAnSWxs
ZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAl
Ci0gICAgICAgICAgICAobmFtZSwgZXhwZWN0ZWRfdmFsdWUsIHZhbHVlKSkKLQotCi1jbGFzcyBf
VExTU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiV3JhcHBlciBmb3IgYSBUTFMgY29ubmVjdGlvbi4i
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLAotICAgICAgICAgICAgICAgICByYXdfc29ja2V0
LCB0bHNfbW9kdWxlLCB0bHNfdmVyc2lvbiwgZGlzYWJsZV90bHNfY29tcHJlc3Npb24pOgotICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAg
ICBpZiB0bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAg
aWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDIzOgotICAgICAgICAgICAgICAgIHZl
cnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjIzCi0gICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9u
ID09IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJP
VE9DT0xfU1NMdjMKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9O
X1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9UTFN2MQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAg
ICAgICAgICAgICAgICAnSW52YWxpZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJz
aW9uKQotCi0gICAgICAgICAgICBpZiBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnLS1kaXNhYmxl
LXRscy1jb21wcmVzc2lvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBzc2wgJwotICAgICAgICAgICAg
ICAgICAgICAnbW9kdWxlJykKLQotICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IHNzbC53
cmFwX3NvY2tldChyYXdfc29ja2V0LCBzc2xfdmVyc2lvbj12ZXJzaW9uKQotCi0gICAgICAgICAg
ICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9uIHdyYXBfc29ja2V0
IGNhbGwuCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygiQ2lwaGVyOiAlcyIsIHNlbGYu
X3Rsc19zb2NrZXQuY2lwaGVyKCkpCi0gICAgICAgIGVsaWYgdGxzX21vZHVsZSA9PSBfVExTX0JZ
X1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9T
U0wyMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNTTC5TU0wuU1NMdjIzX01FVEhP
RAotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMzoKLSAg
ICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNTTC5TU0wuU1NMdjNfTUVUSE9ECi0gICAgICAg
ICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9UTFMxOgotICAgICAgICAgICAg
ICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5UTFN2MV9NRVRIT0QKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
J0ludmFsaWQgLS10bHMtdmVyc2lvbiBmbGFnOiAlcicgJSB0bHNfdmVyc2lvbikKLQotICAgICAg
ICAgICAgY29udGV4dCA9IE9wZW5TU0wuU1NMLkNvbnRleHQodmVyc2lvbikKLQotICAgICAgICAg
ICAgaWYgZGlzYWJsZV90bHNfY29tcHJlc3Npb246Ci0gICAgICAgICAgICAgICAgIyBPUF9OT19D
T01QUkVTU0lPTiBpcyBub3QgZGVmaW5lZCBpbiBPcGVuU1NMIG1vZHVsZS4KLSAgICAgICAgICAg
ICAgICBjb250ZXh0LnNldF9vcHRpb25zKDB4MDAwMjAwMDApCi0KLSAgICAgICAgICAgIHNlbGYu
X3Rsc19zb2NrZXQgPSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uKGNvbnRleHQsIHJhd19zb2NrZXQp
Ci0gICAgICAgICAgICAjIENsaWVudCBtb2RlLgotICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tl
dC5zZXRfY29ubmVjdF9zdGF0ZSgpCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldGJs
b2NraW5nKFRydWUpCi0KLSAgICAgICAgICAgICMgRG8gaGFuZHNoYWtlIG5vdyAobm90IG5lY2Vz
c2FyeSkuCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBt
b2R1bGUgaXMgYXZhaWxhYmxlJykKLQotICAgIGRlZiBzZW5kKHNlbGYsIGRhdGEpOgotICAgICAg
ICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC53cml0ZShkYXRhKQotCi0gICAgZGVmIHNlbmRhbGwo
c2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LnNlbmRhbGwoZGF0
YSkKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9LTEpOgotICAgICAgICByZXR1cm4gc2VsZi5f
dGxzX3NvY2tldC5yZWFkKHNpemUpCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl90bHNfc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBnZXRwZWVybmFtZShzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuZ2V0cGVlcm5hbWUoKQotCi0KLWNs
YXNzIENsaWVudEhhbmRzaGFrZUJhc2Uob2JqZWN0KToKLSAgICAiIiJBIGJhc2UgY2xhc3MgZm9y
IFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3JzIGZvciBlYWNoCi0gICAgcHJv
dG9jb2wgdmVyc2lvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYg
X3JlYWRfZmllbGRzKHNlbGYpOgotICAgICAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCi0gICAgICAgIGZpZWxk
cyA9IHt9Ci0gICAgICAgIHdoaWxlIFRydWU6ICAjICJGaWVsZCIKLSAgICAgICAgICAgICMgNC4x
IDMzLiBsZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAg
ICAgICBuYW1lID0gJycKLSAgICAgICAgICAgIHZhbHVlID0gJycKLSAgICAgICAgICAgICMgNC4x
IDM0LiByZWFkIC9uYW1lLwotICAgICAgICAgICAgbmFtZSA9IHNlbGYuX3JlYWRfbmFtZSgpCi0g
ICAgICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgICMgNC4xIDM1LiByZWFkIHNwYWNlcwotICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5v
KTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCi0gICAgICAg
ICAgICBjaCA9IHNlbGYuX3NraXBfc3BhY2VzKCkKLSAgICAgICAgICAgICMgNC4xIDM2LiByZWFk
IC92YWx1ZS8KLSAgICAgICAgICAgIHZhbHVlID0gc2VsZi5fcmVhZF92YWx1ZShjaCkKLSAgICAg
ICAgICAgICMgNC4xIDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgICAg
IGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgY2gg
IT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVy
cm9yKAotICAgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxl
IHJlYWRpbmcgdmFsdWUgJXIgZm9yICcKLSAgICAgICAgICAgICAgICAgICAgJ2hlYWRlciAlcicg
JSAoY2gsIHZhbHVlLCBuYW1lKSkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVj
ZWl2ZWQgJXIgaGVhZGVyJywgbmFtZSkKLSAgICAgICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4g
ZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKLSAgICAgICAgICAg
ICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1l
LyBieXRlCi0gICAgICAgICAgICAjIGFycmF5IGFzIGEgVVRGLTggc3RyZWFtIGFuZCB0aGUgdmFs
dWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwotICAgICAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnBy
ZXRpbmcgdGhlIC92YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKLSAgICAgICAgICAg
ICMgc3RyZWFtLgotICAgICAgICAgICAgZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVu
ZCh2YWx1ZSkKLSAgICAgICAgICAgICMgNC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3Rl
cCBhYm92ZQotICAgICAgICByZXR1cm4gZmllbGRzCi0KLSAgICBkZWYgX3JlYWRfbmFtZShzZWxm
KToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAg
ICAgICAgbmFtZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAjIDQuMSAz
NC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgICAgICBjaCA9IF9yZWNlaXZl
X2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4
MEQKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgZWxpZiBjaCA9PSAn
XG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3Io
Ci0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIg
bmFtZSAlcicgJSBuYW1lKQotICAgICAgICAgICAgZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbmFtZQotICAgICAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5k
IGNoIDw9ICdaJzogICMgUmFuZ2UgMHgzMSB0byAweDVBCi0gICAgICAgICAgICAgICAgY2ggPSBj
aHIob3JkKGNoKSArIDB4MjApCi0gICAgICAgICAgICAgICAgbmFtZSArPSBjaAotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBuYW1lICs9IGNoCi0KLSAgICBkZWYgX3NraXBfc3Bh
Y2VzKHNlbGYpOgotICAgICAgICAjIDQuMSAzNS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVy
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNl
bGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIGNoID09ICcgJzogICMgMHgyMAotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByZXR1cm4gY2gKLQotICAgIGRlZiBfcmVh
ZF92YWx1ZShzZWxmLCBjaCk6Ci0gICAgICAgICMgNC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0
eSBieXRlIGFycmF5cwotICAgICAgICB2YWx1ZSA9ICcnCi0gICAgICAgICMgNC4xIDM2LiByZWFk
IGEgYnl0ZSBmcm9tIHNlcnZlci4KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGlm
IGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKLSAgICAg
ICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3
aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVlICVyJyAlIHZhbHVlKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICB2YWx1ZSArPSBjaAotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9i
eXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0KLQotZGVmIF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2Zy
YW1lcihleHRlbnNpb25fcmVzcG9uc2UpOgotICAgICIiIlZhbGlkYXRlIHRoZSByZXNwb25zZSBh
bmQgcmV0dXJuIGEgZnJhbWVyIG9iamVjdCB1c2luZyB0aGUgcGFyYW1ldGVycyBpbgotICAgIHRo
ZSByZXNwb25zZS4gVGhpcyBtZXRob2QgZG9lc24ndCBhY2NlcHQgdGhlIHNlcnZlcl8uKiBwYXJh
bWV0ZXJzLgotICAgICIiIgotCi0gICAgY2xpZW50X21heF93aW5kb3dfYml0cyA9IE5vbmUKLSAg
ICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IE5vbmUKLQotICAgIGNsaWVudF9tYXhfd2lu
ZG93X2JpdHNfbmFtZSA9ICgKLSAgICAgICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9u
UHJvY2Vzc29yLgotICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19Q
QVJBTSkKLSAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lID0gKAotICAgICAgICAg
ICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAgICAgICAg
ICAgIF9DTElFTlRfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKLQotICAgICMgV2UgZGlkbid0
IHNlbmQgYW55IHNlcnZlcl8uKiBwYXJhbWV0ZXIuCi0gICAgIyBIYW5kbGUgdGhvc2UgcGFyYW1l
dGVycyBhcyBpbnZhbGlkIGlmIGZvdW5kIGluIHRoZSByZXNwb25zZS4KLQotICAgIGZvciBwYXJh
bV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNpb25fcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMo
KToKLSAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWU6
Ci0gICAgICAgICAgICBpZiBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAlIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFt
ZSkKLQotICAgICAgICAgICAgcGFyc2VkX3ZhbHVlID0gX3BhcnNlX3dpbmRvd19iaXRzKHBhcmFt
X3ZhbHVlKQotICAgICAgICAgICAgaWYgcGFyc2VkX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAnQmFkICVzOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWVudF9tYXhfd2lu
ZG93X2JpdHNfbmFtZSwgcGFyYW1fdmFsdWUpKQotICAgICAgICAgICAgY2xpZW50X21heF93aW5k
b3dfYml0cyA9IHBhcnNlZF92YWx1ZQotICAgICAgICBlbGlmIHBhcmFtX25hbWUgPT0gY2xpZW50
X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZToKLSAgICAgICAgICAgIGlmIGNsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhh
bmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5k
JyAlIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUpCi0KLSAgICAgICAgICAgIGlmIHBh
cmFtX3ZhbHVlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRz
aGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZCAlczogSGFzIHZhbHVlICVy
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJf
bmFtZSwgcGFyYW1fdmFsdWUpKQotICAgICAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXIgPSBUcnVlCi0KLSAgICBpZiBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBpcyBOb25lOgot
ICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCi0KLSAgICByZXR1cm4g
X1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKGNsaWVudF9tYXhfd2luZG93X2JpdHMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcikK
LQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoQ2xpZW50SGFuZHNoYWtlQmFzZSk6
Ci0gICAgIiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IKLSAgICBk
cmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1
cGVyKENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvciwgc2VsZikuX19pbml0X18oKQotCi0gICAgICAg
IHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgZGVmIGhhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybXMgb3BlbmluZyBoYW5k
c2hha2Ugb24gdGhlIHNwZWNpZmllZCBzb2NrZXQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAg
ICAgICAgQ2xpZW50SGFuZHNoYWtlRXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIi
IgotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9idWlsZF9tZXRob2RfbGluZShzZWxmLl9vcHRp
b25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudFwncyBvcGVu
aW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9s
aW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1h
dF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0g
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIp
Ci0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLm9yaWdpbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6Ci0gICAg
ICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcigKLSAgICAgICAgICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVS
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5vcmlnaW4pKQotCi0gICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCi0g
ICAgICAgIHNlbGYuX2tleSA9IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnJXM6ICVyICglcyknLAotICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwKLSAgICAgICAgICAgIHNlbGYu
X2tleSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkpCi0gICAgICAgIGZp
ZWxkcy5hcHBlbmQoCi0gICAgICAgICAgICAnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJT
T0NLRVRfS0VZX0hFQURFUiwgc2VsZi5fa2V5KSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LnZlcnNpb25faGVhZGVyID4gMDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxy
XG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRl
cikpCi0gICAgICAgIGVsaWYgc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9U
T0NPTF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxy
XG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlZFUlNJT05fSFlCSTA4KSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNv
bW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQotCi0gICAg
ICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdCA9IFtdCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0LmFwcGVu
ZCgKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVy
bWVzc2FnZV9kZWZsYXRlOgotICAgICAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04pCi0gICAgICAgICAgICAjIEFjY2VwdCB0aGUgY2xpZW50X21heF93aW5kb3df
Yml0cyBleHRlbnNpb24gcGFyYW1ldGVyIGJ5IGRlZmF1bHQuCi0gICAgICAgICAgICBleHRlbnNp
b24uYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0NMSUVOVF9N
QVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgIE5vbmUpCi0gICAgICAg
ICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QuYXBwZW5kKGV4dGVuc2lvbikKLQotICAgICAgICBp
ZiBsZW4oZXh0ZW5zaW9uc190b19yZXF1ZXN0KSAhPSAwOgotICAgICAgICAgICAgZmllbGRzLmFw
cGVuZCgKLSAgICAgICAgICAgICAgICAnJXM6ICVzXHJcbicgJQotICAgICAgICAgICAgICAgIChj
b21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKLSAgICAgICAgICAgICAgICAg
Y29tbW9uLmZvcm1hdF9leHRlbnNpb25zKGV4dGVuc2lvbnNfdG9fcmVxdWVzdCkpKQotCi0gICAg
ICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChmaWVsZCkKLQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IGNsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBo
ZWFkZXJzOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHMpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBTdGF0dXMtTGluZScpCi0KLSAgICAg
ICAgc3RhdHVzX2xpbmUgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2gg
PSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBzdGF0dXNfbGlu
ZSArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICBicmVh
awotCi0gICAgICAgIG0gPSByZS5tYXRjaCgnSFRUUC9cXGQrXFwuXFxkKyAoXFxkXFxkXFxkKSAu
KlxyXG4nLCBzdGF0dXNfbGluZSkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1dyb25nIHN0YXR1
cyBsaW5lIGZvcm1hdDogJXInICUgc3RhdHVzX2xpbmUpCi0gICAgICAgIHN0YXR1c19jb2RlID0g
bS5ncm91cCgxKQotICAgICAgICBpZiBzdGF0dXNfY29kZSAhPSAnMTAxJzoKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnVW5leHBlY3RlZCBzdGF0dXMgY29kZSAlcyB3aXRoIGZvbGxv
d2luZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcnM6ICVyJywgc3Rh
dHVzX2NvZGUsIHNlbGYuX3JlYWRfZmllbGRzKCkpCi0gICAgICAgICAgICByYWlzZSBDbGllbnRI
YW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29k
ZSAxMDEgYnV0IGZvdW5kICVyJyAlIHN0YXR1c19jb2RlKQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnUmVjZWl2ZWQgdmFsaWQgU3RhdHVzLUxpbmUnKQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1N0YXJ0IHJlYWRpbmcgaGVhZGVycyB1bnRpbCB3ZSBzZWUgYW4gZW1wdHkgbGlu
ZScpCi0KLSAgICAgICAgZmllbGRzID0gc2VsZi5fcmVhZF9maWVsZHMoKQotCi0gICAgICAgIGNo
ID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAg
ICAgICAgICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUg
JXIgZm9yIGhlYWRlciAnCi0gICAgICAgICAgICAgICAgJ25hbWUgJXInICUgKGNoLCB2YWx1ZSwg
bmFtZSkpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhbiBlbXB0eSBs
aW5lJykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZXJ2ZXJcJ3Mgb3BlbmluZyBoYW5k
c2hha2UgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9y
eV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFE
RV9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSwKLSAg
ICAgICAgICAgIEZhbHNlKQotCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAot
ICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVS
LAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLAotICAgICAgICAg
ICAgRmFsc2UpCi0KLSAgICAgICAgYWNjZXB0ID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAotICAg
ICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQotCi0g
ICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYmluYXJ5X2FjY2Vw
dCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9yOgot
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0lsbGVn
YWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXInICUKLSAgICAgICAgICAgICAgICAoY29tbW9uLlNF
Q19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwgYWNjZXB0KSkKLQotICAgICAgICBpZiBsZW4oYmlu
YXJ5X2FjY2VwdCkgIT0gMjA6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJv
cigKLSAgICAgICAgICAgICAgICAnRGVjb2RlZCB2YWx1ZSBvZiAlcyBpcyBub3QgMjAtYnl0ZSBs
b25nJyAlCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURF
UikKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnUmVzcG9uc2Ug
Zm9yIGNoYWxsZW5nZSA6ICVyICglcyknLAotICAgICAgICAgICAgYWNjZXB0LCB1dGlsLmhleGlm
eShiaW5hcnlfYWNjZXB0KSkKLQotICAgICAgICBiaW5hcnlfZXhwZWN0ZWRfYWNjZXB0ID0gdXRp
bC5zaGExX2hhc2goCi0gICAgICAgICAgICBzZWxmLl9rZXkgKyBjb21tb24uV0VCU09DS0VUX0FD
Q0VQVF9VVUlEKS5kaWdlc3QoKQotICAgICAgICBleHBlY3RlZF9hY2NlcHQgPSBiYXNlNjQuYjY0
ZW5jb2RlKGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ0V4cGVjdGVkIHJlc3BvbnNlIGZvciBjaGFsbGVuZ2U6ICVyICgl
cyknLAotICAgICAgICAgICAgZXhwZWN0ZWRfYWNjZXB0LCB1dGlsLmhleGlmeShiaW5hcnlfZXhw
ZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBpZiBhY2NlcHQgIT0gZXhwZWN0ZWRfYWNjZXB0Ogot
ICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAg
J0ludmFsaWQgJXMgaGVhZGVyOiAlciAoZXhwZWN0ZWQ6ICVzKScgJQotICAgICAgICAgICAgICAg
IChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQsIGV4cGVjdGVkX2Fj
Y2VwdCkpCi0KLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAg
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCA9IEZhbHNlCi0KLSAgICAgICAgZXh0ZW5zaW9u
c19oZWFkZXIgPSBmaWVsZHMuZ2V0KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRf
RVhURU5TSU9OU19IRUFERVIubG93ZXIoKSkKLSAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9
IFtdCi0gICAgICAgIGlmIGV4dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lIGFuZCBsZW4oZXh0
ZW5zaW9uc19oZWFkZXIpICE9IDA6Ci0gICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0g
Y29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoZXh0ZW5zaW9uc19oZWFkZXJbMF0pCi0KLSAgICAgICAg
IyBUT0RPKGJhc2hpKTogU3VwcG9ydCB0aGUgbmV3IHN0eWxlIHBlcmZyYW1lIGNvbXByZXNzaW9u
IGV4dGVuc2lvbi4KLSAgICAgICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25z
OgotICAgICAgICAgICAgZXh0ZW5zaW9uX25hbWUgPSBleHRlbnNpb24ubmFtZSgpCi0gICAgICAg
ICAgICBpZiAoZXh0ZW5zaW9uX25hbWUgPT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
IGFuZAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGVmbGF0ZV9mcmFtZSk6Ci0gICAg
ICAgICAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAg
ICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQot
ICAgICAgICAgICAgICAgIHVudXNlZF9leHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kZWZs
YXRlX2ZyYW1lID0gcHJvY2Vzc29yCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
ICAgIGVsaWYgKGV4dGVuc2lvbl9uYW1lID09IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OIGFuZAotICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2Fn
ZV9kZWZsYXRlKToKLSAgICAgICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfYWNjZXB0ZWQg
PSBUcnVlCi0KLSAgICAgICAgICAgICAgICBmcmFtZXIgPSBfZ2V0X3Blcm1lc3NhZ2VfZGVmbGF0
ZV9mcmFtZXIoZXh0ZW5zaW9uKQotICAgICAgICAgICAgICAgIGZyYW1lci5zZXRfY29tcHJlc3Nf
b3V0Z29pbmdfZW5hYmxlZChUcnVlKQotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNl
X3Blcm1lc3NhZ2VfZGVmbGF0ZSA9IGZyYW1lcgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0K
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIGV4dGVuc2lvbiAlcicgJSBleHRlbnNpb25fbmFtZSkKLQotICAgICAgICBp
ZiAoc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lIGFuZCBub3QgZGVmbGF0ZV9mcmFtZV9hY2Nl
cHRlZCk6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAg
ICAgICAgICAnUmVxdWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBpdCcgJQotICAg
ICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotICAgICAgICBp
ZiAoc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlIGFuZAotICAgICAgICAgICAg
bm90IHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCk6Ci0gICAgICAgICAgICByYWlzZSBDbGll
bnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCAlcywgYnV0
IHRoZSBzZXJ2ZXIgcmVqZWN0ZWQgaXQnICUKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0KLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTog
SGFuZGxlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wKLSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTog
SGFuZGxlIENvb2tpZSwgZXRjLgotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5
YmkwMChDbGllbnRIYW5kc2hha2VCYXNlKToKLSAgICAiIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5k
c2hha2UgcHJvY2Vzc29yIGZvcgotICAgIGRyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90
b2NvbC0wMCAoZXF1aXZhbGVudCB0bwotICAgIGRyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3Rv
Y29sLTc2KS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQsIG9wdGlv
bnMpOgotICAgICAgICBzdXBlcihDbGllbnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAsIHNlbGYp
Ll9faW5pdF9fKCkKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLSAgICAgICAgc2Vs
Zi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9j
bGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2Zy
YW1lIG9yCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUp
OgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnSHlCaSAwMCBkb2VzblwndCBzdXBwb3J0
IGV4dGVuc2lvbnMuJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBkZWYgaGFuZHNo
YWtlKHNlbGYpOgotICAgICAgICAiIiJQZXJmb3JtcyBvcGVuaW5nIGhhbmRzaGFrZSBvbiB0aGUg
c3BlY2lmaWVkIHNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDbGllbnRI
YW5kc2hha2VFcnJvcjogaGFuZHNoYWtlIGZhaWxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
IyA0LjEgNS4gc2VuZCByZXF1ZXN0IGxpbmUuCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxs
KF9idWlsZF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKSkKLSAgICAgICAgIyA0
LjEgNi4gTGV0IC9maWVsZHMvIGJlIGFuIGVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4KLSAgICAgICAg
ZmllbGRzID0gW10KLSAgICAgICAgIyA0LjEgNy4gQWRkIHRoZSBzdHJpbmcgIlVwZ3JhZGU6IFdl
YlNvY2tldCIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX1VQR1JBREVfSEVB
REVSX0hJWElFNzUpCi0gICAgICAgICMgNC4xIDguIEFkZCB0aGUgc3RyaW5nICJDb25uZWN0aW9u
OiBVcGdyYWRlIiB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09OTkVDVElP
Tl9IRUFERVIpCi0gICAgICAgICMgNC4xIDktMTIuIEFkZCBIb3N0OiBmaWVsZCB0byAvZmllbGRz
Ly4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
c2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpKQotICAgICAg
ICAjIDQuMSAxMy4gQWRkIE9yaWdpbjogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLm9yaWdpbjoKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFr
ZUVycm9yKAotICAgICAgICAgICAgICAgICdTcGVjaWZ5IHRoZSBvcmlnaW4gb2YgdGhlIGNvbm5l
Y3Rpb24gYnkgLS1vcmlnaW4gZmxhZycpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9o
ZWFkZXIoY29tbW9uLk9SSUdJTl9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICAjIFRPRE86IDQuMSAxNCBB
ZGQgU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgICMg
VE9ETzogNC4xIDE1IEFkZCBjb29raWUgaGVhZGVycyB0byAvZmllbGRzLy4KLQotICAgICAgICAj
IDQuMSAxNi0yMy4gQWRkIFNlYy1XZWJTb2NrZXQtS2V5PG4+IHRvIC9maWVsZHMvLgotICAgICAg
ICBzZWxmLl9udW1iZXIxLCBrZXkxID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXko
KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjE6ICVkJywgc2VsZi5fbnVtYmVy
MSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJT
T0NLRVRfS0VZMV9IRUFERVIsIGtleTEpKQotICAgICAgICBzZWxmLl9udW1iZXIyLCBrZXkyID0g
c2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoKQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ051bWJlcjI6ICVkJywgc2VsZi5fbnVtYmVyMikKLSAgICAgICAgZmllbGRzLmFwcGVu
ZCgnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIsIGtleTIp
KQotCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAwXHJcbicgJSBjb21tb24uU0VDX1dFQlNP
Q0tFVF9EUkFGVF9IRUFERVIpCi0KLSAgICAgICAgIyA0LjEgMjQuIEZvciBlYWNoIHN0cmluZyBp
biAvZmllbGRzLywgaW4gYSByYW5kb20gb3JkZXI6IHNlbmQgdGhlCi0gICAgICAgICMgc3RyaW5n
LCBlbmNvZGVkIGFzIFVURi04LCBmb2xsb3dlZCBieSBhIFVURi04IGVuY29kZWQgVSswMDBEIENB
UlJJQUdFCi0gICAgICAgICMgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQgY2hhcmFjdGVyIHBhaXIg
KENSTEYpLgotICAgICAgICByYW5kb20uc2h1ZmZsZShmaWVsZHMpCi0gICAgICAgIGZvciBmaWVs
ZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKLSAg
ICAgICAgIyA0LjEgMjUuIHNlbmQgYSBVVEYtOC1lbmNvZGVkIFUrMDAwRCBDQVJSSUFHRSBSRVRV
Uk4gVSswMDBBIExJTkUgRkVFRAotICAgICAgICAjIGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAg
ICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQotICAgICAgICAjIDQuMSAyNi4gbGV0
IC9rZXkzLyBiZSBhIHN0cmluZyBjb25zaXN0aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IK
LSAgICAgICAgIyBlcXVpdmFsZW50bHksIGEgcmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQg
aW4gYSBiaWctZW5kaWFuIG9yZGVyKS4KLSAgICAgICAgc2VsZi5fa2V5MyA9IHNlbGYuX2dlbmVy
YXRlX2tleTMoKQotICAgICAgICAjIDQuMSAyNy4gc2VuZCAva2V5My8gdG8gdGhlIHNlcnZlci4K
LSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoc2VsZi5fa2V5MykKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0tleTM6ICVyICglcyknLCBzZWxmLl9rZXkzLCB1
dGlsLmhleGlmeShzZWxmLl9rZXkzKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2Vu
dCBoYW5kc2hha2UnKQotCi0gICAgICAgICMgNC4xIDI4LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNl
cnZlciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24KLSAgICAgICAgIyBjbG9zZXMsIG9yIGEg
MHgwQSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJlIHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcK
LSAgICAgICAgIyB0aGUgMHgwQSBieXRlcy4KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0gICAgICAgICAgICBmaWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoK
LSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAjIGlmIC9maWVsZC8gaXMgbm90IGF0IGxl
YXN0IHNldmVuIGJ5dGVzIGxvbmcsIG9yIGlmIHRoZSBsYXN0Ci0gICAgICAgICMgdHdvIGJ5dGVz
IGFyZW4ndCAweDBEIGFuZCAweDBBIHJlc3BlY3RpdmVseSwgb3IgaWYgaXQgZG9lcyBub3QKLSAg
ICAgICAgIyBjb250YWluIGF0IGxlYXN0IHR3byAweDIwIGJ5dGVzLCB0aGVuIGZhaWwgdGhlIFdl
YlNvY2tldCBjb25uZWN0aW9uCi0gICAgICAgICMgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAg
ICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmllbGQuZW5kc3dpdGgoJ1xyXG4nKToKLSAg
ICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKCdXcm9uZyBzdGF0dXMgbGluZTog
JXInICUgZmllbGQpCi0gICAgICAgIG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZp
ZWxkKQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5k
c2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnTm8gSFRUUCBzdGF0dXMgY29kZSBmb3VuZCBp
biBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgICMgNC4xIDI5LiBsZXQgL2NvZGUv
IGJlIHRoZSBzdWJzdHJpbmcgb2YgL2ZpZWxkLyB0aGF0IHN0YXJ0cyBmcm9tIHRoZQotICAgICAg
ICAjIGJ5dGUgYWZ0ZXIgdGhlIGZpcnN0IDB4MjAgYnl0ZSwgYW5kIGVuZHMgd2l0aCB0aGUgYnl0
ZSBiZWZvcmUgdGhlCi0gICAgICAgICMgc2Vjb25kIDB4MjAgYnl0ZS4KLSAgICAgICAgY29kZSA9
IG0uZ3JvdXAoMSkKLSAgICAgICAgIyA0LjEgMzAuIGlmIC9jb2RlLyBpcyBub3QgdGhyZWUgYnl0
ZXMgbG9uZywgb3IgaWYgYW55IG9mIHRoZSBieXRlcyBpbgotICAgICAgICAjIC9jb2RlLyBhcmUg
bm90IGluIHRoZSByYW5nZSAweDMwIHRvIDB4OTAsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0Ci0g
ICAgICAgICMgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIG5v
dCByZS5tYXRjaCgnWzAtOV1bMC05XVswLTldJywgY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBD
bGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29kZSAl
ciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0LjEgMzEuIGlmIC9jb2RlLywgaW50ZXJwcmV0
ZWQgYXMgVVRGLTgsIGlzICIxMDEiLCB0aGVuIG1vdmUgdG8gdGhlCi0gICAgICAgICMgbmV4dCBz
dGVwLgotICAgICAgICBpZiBjb2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNv
ZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJwotICAgICAgICAgICAgICAgICcl
cicgJSAoY29kZSwgZmllbGQpKQotICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50
byAvZmllbGRzLwotICAgICAgICBmaWVsZHMgPSBzZWxmLl9yZWFkX2ZpZWxkcygpCi0gICAgICAg
ICMgNC4xIDQwLiBfRmllbGRzIHByb2Nlc3NpbmdfCi0gICAgICAgICMgcmVhZCBhIGJ5dGUgZnJv
bSBzZXJ2ZXIKLSAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0g
ICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhh
bmRzaGFrZUVycm9yKCdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXInICUgY2gpCi0gICAgICAgICMg
NC4xIDQxLiBjaGVjayAvZmllbGRzLwotICAgICAgICAjIFRPRE8odWthaSk6IHByb3RvY29sCi0g
ICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAidXBncmFkZSIKLSAgICAgICAgIyAgaWYg
dGhlIHZhbHVlIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBzdHJpbmcgIldlYlNvY2tldCIs
Ci0gICAgICAgICMgIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgotICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAg
ICAgICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAg
ICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUsCi0gICAgICAgICAg
ICBUcnVlKQotICAgICAgICAjIGlmIHRoZSBlbnRyeSdzIG5hbWUgaXMgImNvbm5lY3Rpb24iCi0g
ICAgICAgICMgIGlmIHRoZSB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgaXMg
bm90IGV4YWN0bHkgZXF1YWwKLSAgICAgICAgIyAgdG8gdGhlIHN0cmluZyAidXBncmFkZSIsIHRo
ZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kCi0gICAgICAgICMgIGFib3J0IHRo
ZXNlIHN0ZXBzLgotICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAg
ICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwKLSAgICAg
ICAgICAgIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSwKLSAgICAgICAgICAgIEZhbHNl
KQotCi0gICAgICAgIG9yaWdpbiA9IF9nZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAg
IGZpZWxkcywgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUikKLQotICAgICAgICBs
b2NhdGlvbiA9IF9nZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywgY29t
bW9uLlNFQ19XRUJTT0NLRVRfTE9DQVRJT05fSEVBREVSKQotCi0gICAgICAgICMgVE9ETyh1a2Fp
KTogY2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2llLCAuLgotCi0gICAgICAgICMgNC4xIDQy
LiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL251bWJlcl8xLywKLSAg
ICAgICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVy
XzIvLCBleHByZXNzZWQKLSAgICAgICAgIyBhcyBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBh
bmQgdGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4gdGhlCi0gICAgICAgICMgb3JkZXIgdGhl
eSB3ZXJlIHNlbnQgb24gdGhlIHdpcmUuCi0gICAgICAgIGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNr
KCchSScsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygn
IUknLCBzZWxmLl9udW1iZXIyKQotICAgICAgICBjaGFsbGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICgl
cyknLCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxsZW5nZSkpCi0KLSAgICAgICAgIyA0LjEg
NDMuIGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmluZ2VycHJpbnQgb2YgL2NoYWxsZW5nZS8g
YXMgYQotICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJpdCBzdHJpbmcuCi0gICAgICAgIGV4cGVj
dGVkID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3RlZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVy
ICglcyknLAotICAgICAgICAgICAgZXhwZWN0ZWQsIHV0aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQot
ICAgICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5dGVzIGZyb20gdGhlIHNlcnZlci4KLSAg
ICAgICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRlcy4KLSAgICAgICAgcmVwbHkgPSBfcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDE2KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAnQWN0dWFsIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsIHJlcGx5
LCB1dGlsLmhleGlmeShyZXBseSkpCi0KLSAgICAgICAgIyA0LjEgNDUuIGlmIC9yZXBseS8gZG9l
cyBub3QgZXhhY3RseSBlcXVhbCAvZXhwZWN0ZWQvLCB0aGVuIGZhaWwKLSAgICAgICAgIyB0aGUg
V2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBl
eHBlY3RlZCAhPSByZXBseToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9y
KAotICAgICAgICAgICAgICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoZXhwZWN0ZWQp
ICE9ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVkLCByZXBseSkpCi0g
ICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVk
Ki4KLQotICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2VsZik6Ci0gICAgICAg
ICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMSB0byAx
MiBpbmNsdXNpdmUuCi0gICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAg
ICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50ZWdlciBub3QgZ3Jl
YXRlciB0aGFuCi0gICAgICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBieSAvc3BhY2VzX24v
LgotICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCi0gICAgICAgICMgNC4xIDE4
LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byAvbWF4X24vCi0g
ICAgICAgICMgaW5jbHVzaXZlLgotICAgICAgICBudW1iZXIgPSByYW5kb20ucmFuZGludCgwLCBt
YXhudW0pCi0gICAgICAgICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUgdGhlIHJlc3VsdCBv
ZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAotICAgICAgICAjIC9zcGFjZXNfbi8gdG9nZXRo
ZXIuCi0gICAgICAgIHByb2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKLSAgICAgICAgIyA0LjEgMjAu
IGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1Y3Rfbi8sIGV4cHJl
c3NlZAotICAgICAgICAjIGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFscyBpbiB0aGUgcmFu
Z2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCi0gICAgICAgICMgVSswMDM5IERJR0lUIE5JTkUg
KDkpLgotICAgICAgICBrZXkgPSBzdHIocHJvZHVjdCkKLSAgICAgICAgIyA0LjEgMjEuIGluc2Vy
dCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZyb20gdGhlCi0gICAg
ICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUrMDA3RSBpbnRvIC9r
ZXlfbi8gYXQgcmFuZG9tCi0gICAgICAgICMgcG9zaXRpb25zLgotICAgICAgICBhdmFpbGFibGVf
Y2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAweDdlICsgMSkKLSAg
ICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uo
bik6Ci0gICAgICAgICAgICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxlX2NoYXJzKQotICAg
ICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCi0gICAgICAgICAgICBr
ZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtleVtwb3M6XQotICAgICAgICAjIDQuMSAyMi4g
aW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50byAva2V5X24vIGF0
Ci0gICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0IG9yIGVuZCBvZiB0
aGUgc3RyaW5nLgotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToKLSAgICAgICAgICAg
IHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihrZXkpIC0gMSkKLSAgICAgICAgICAgIGtleSA9
IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0KLSAgICAgICAgcmV0dXJuIG51bWJlciwga2V5
Ci0KLSAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2VsZik6Ci0gICAgICAgICMgNC4xIDI2LiBsZXQg
L2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgot
ICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBp
biBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICByZXR1cm4gJycuam9pbihbY2hyKHJhbmRv
bS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCi0KLQotY2xhc3MgQ2xpZW50
Q29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBmb3Igc29ja2V0IG9iamVjdCB0
byBwcm92aWRlIHRoZSBtcF9jb25uIGludGVyZmFjZS4KLSAgICBtb2RfcHl3ZWJzb2NrZXQgbGli
cmFyeSBpcyBkZXNpZ25lZCB0byBiZSB3b3JraW5nIG9uIEFwYWNoZSBtb2RfcHl0aG9uJ3MKLSAg
ICBtcF9jb25uIG9iamVjdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2Nr
ZXQpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgIGRlZiB3cml0ZShzZWxm
LCBkYXRhKToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZGF0YSkKLQotICAgIGRlZiBy
ZWFkKHNlbGYsIG4pOgotICAgICAgICByZXR1cm4gc2VsZi5fc29ja2V0LnJlY3YobikKLQotICAg
IGRlZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXQu
Z2V0cGVlcm5hbWUoKQotICAgIHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRy
KQotCi0KLWNsYXNzIENsaWVudFJlcXVlc3Qob2JqZWN0KToKLSAgICAiIiJBIHdyYXBwZXIgY2xh
c3MganVzdCB0byBtYWtlIGl0IGFibGUgdG8gcGFzcyBhIHNvY2tldCBvYmplY3QgdG8KLSAgICBm
dW5jdGlvbnMgdGhhdCBleHBlY3QgYSBtcF9yZXF1ZXN0IG9iamVjdC4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGls
LmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQK
LSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gQ2xpZW50Q29ubmVjdGlvbihzb2NrZXQpCi0KLQot
ZGVmIF9pbXBvcnRfc3NsKCk6Ci0gICAgZ2xvYmFsIHNzbAotICAgIHRyeToKLSAgICAgICAgaW1w
b3J0IHNzbAotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAg
ICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgZ2xv
YmFsIE9wZW5TU0wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBPcGVuU1NMLlNTTAotICAgICAg
ICByZXR1cm4gVHJ1ZQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLQotY2xhc3MgRWNob0NsaWVudChvYmplY3QpOgotICAgICIiIldlYlNvY2tldCBlY2hv
IGNsaWVudC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAg
c2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQotCi0g
ICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAg
ZGVmIHJ1bihzZWxmKToKLSAgICAgICAgIiIiUnVuIHRoZSBjbGllbnQuCi0KLSAgICAgICAgU2hh
a2UgaGFuZHMgYW5kIHRoZW4gcmVwZWF0IHNlbmRpbmcgbWVzc2FnZSBhbmQgcmVjZWl2aW5nIGl0
cyBlY2hvLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQuc29j
a2V0KCkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNldHRpbWVvdXQoc2VsZi5fb3B0aW9ucy5zb2Nr
ZXRfdGltZW91dCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNvbm5l
Y3QoKHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCkpCi0gICAgICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnVzZV90bHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0ID0gX1RMU1Nv
Y2tldCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LAotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLnRsc19tb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMudGxzX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
ZGlzYWJsZV90bHNfY29tcHJlc3Npb24pCi0KLSAgICAgICAgICAgIHZlcnNpb24gPSBzZWxmLl9v
cHRpb25zLnByb3RvY29sX3ZlcnNpb24KLQotICAgICAgICAgICAgaWYgKHZlcnNpb24gPT0gX1BS
T1RPQ09MX1ZFUlNJT05fSFlCSTA4IG9yCi0gICAgICAgICAgICAgICAgdmVyc2lvbiA9PSBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMTMpOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9
IENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcigKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29j
a2V0LCBzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgZWxpZiB2ZXJzaW9uID09IF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UgPSBDbGll
bnRIYW5kc2hha2VQcm9jZXNzb3JIeWJpMDAoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nv
Y2tldCwgc2VsZi5fb3B0aW9ucykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS1wcm90b2Nv
bC12ZXJzaW9uIGZsYWc6ICVyJyAlIHZlcnNpb24pCi0KLSAgICAgICAgICAgIHNlbGYuX2hhbmRz
aGFrZS5oYW5kc2hha2UoKQotCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQ29ubmVj
dGlvbiBlc3RhYmxpc2hlZCcpCi0KLSAgICAgICAgICAgIHJlcXVlc3QgPSBDbGllbnRSZXF1ZXN0
KHNlbGYuX3NvY2tldCkKLQotICAgICAgICAgICAgdmVyc2lvbl9tYXAgPSB7Ci0gICAgICAgICAg
ICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTA4OiBjb21tb24uVkVSU0lPTl9IWUJJMDgsCi0g
ICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzOiBjb21tb24uVkVSU0lPTl9I
WUJJMTMsCi0gICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOiBjb21tb24u
VkVSU0lPTl9IWUJJMDB9Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3ZlcnNpb24gPSB2ZXJzaW9u
X21hcFt2ZXJzaW9uXQotCi0gICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDggb3IKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJT
SU9OX0hZQkkxMyk6Ci0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbiA9IFN0cmVhbU9wdGlv
bnMoKQotICAgICAgICAgICAgICAgIHN0cmVhbV9vcHRpb24ubWFza19zZW5kID0gVHJ1ZQotICAg
ICAgICAgICAgICAgIHN0cmVhbV9vcHRpb24udW5tYXNrX3JlY2VpdmUgPSBGYWxzZQotCi0gICAg
ICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lIGlzIG5vdCBGYWxzZToK
LSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yID0gc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2Zy
YW1lCi0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhz
dHJlYW1fb3B0aW9uKQotCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVy
bWVzc2FnZV9kZWZsYXRlIGlzIG5vdCBGYWxzZToKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVy
ID0gc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlCi0gICAgICAgICAgICAgICAg
ICAgIGZyYW1lci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9uKQotCi0gICAgICAg
ICAgICAgICAgc2VsZi5fc3RyZWFtID0gU3RyZWFtKHJlcXVlc3QsIHN0cmVhbV9vcHRpb24pCi0g
ICAgICAgICAgICBlbGlmIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxdWVzdCwgVHJ1ZSkK
LQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5fb3B0aW9ucy5tZXNzYWdlLnNwbGl0KCcs
Jyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lKQotICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAgICAg
ICAgcHJpbnQoJ1NlbmQ6ICVzJyAlIGxpbmUpCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgICAgICByZWNlaXZlZCA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQot
Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KCdSZWN2OiAlcycgJSByZWNlaXZlZCkKLSAgICAgICAgICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCdFcnJvcjog
JXMnICUgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLQotICAgICAgICAgICAgc2VsZi5f
ZG9fY2xvc2luZ19oYW5kc2hha2UoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBfZG9fY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6
Ci0gICAgICAgICIiIlBlcmZvcm0gY2xvc2luZyBoYW5kc2hha2UgdXNpbmcgdGhlIHNwZWNpZmll
ZCBjbG9zaW5nIGZyYW1lLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMubWVzc2FnZS5z
cGxpdCgnLCcpWy0xXSA9PSBfR09PREJZRV9NRVNTQUdFOgotICAgICAgICAgICAgIyByZXF1ZXN0
ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSwgc28KLSAgICAgICAgICAgICMg
ZXhwZWN0aW5nIGNsb3NpbmcgaGFuZHNoYWtlIG1lc3NhZ2UgZnJvbSBzZXJ2ZXIuCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnV2FpdCBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5n
IGhhbmRzaGFrZScpCi0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVf
bWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcHJpbnQoJ1JlY3YgY2xvc2UnKQotICAgICAgICAgICAgICAgIHByaW50KCdTZW5kIGFjaycp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgICAg
ICdSZWNlaXZlZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQgc2VudCBhY2snKQotICAgICAgICAgICAg
ICAgIHJldHVybgotICAgICAgICBwcmludCgnU2VuZCBjbG9zZScpCi0gICAgICAgIHNlbGYuX3N0
cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQg
Y2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICBwcmludCgnUmVjdiBhY2snKQotICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnUmVjZWl2ZWQgYWNrJykKLQotCi1kZWYgbWFpbigpOgotICAgIHN5
cy5zdGRvdXQgPSBjb2RlY3MuZ2V0d3JpdGVyKCd1dGYtOCcpKHN5cy5zdGRvdXQpCi0KLSAgICBw
YXJzZXIgPSBPcHRpb25QYXJzZXIoKQotICAgICMgV2UgYWNjZXB0IC0tY29tbWFuZF9saW5lX2Zs
YWcgc3R5bGUgZmxhZ3Mgd2hpY2ggaXMgdGhlIHNhbWUgYXMgR29vZ2xlCi0gICAgIyBnZmxhZ3Mg
aW4gYWRkaXRpb24gdG8gY29tbW9uIC0tY29tbWFuZC1saW5lLWZsYWcgc3R5bGUgZmxhZ3MuCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy1zJywgJy0tc2VydmVyLWhvc3QnLCAnLS1zZXJ2ZXJfaG9z
dCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc2VydmVyX2hvc3QnLCB0eXBlPSdzdHJp
bmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9J2xvY2FsaG9zdCcsIGhlbHA9J3Nl
cnZlciBob3N0JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1zZXJ2ZXItcG9ydCcs
ICctLXNlcnZlcl9wb3J0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfcG9y
dCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fVU5ERUZJTkVE
X1BPUlQsIGhlbHA9J3NlcnZlciBwb3J0JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLW8nLCAn
LS1vcmlnaW4nLCBkZXN0PSdvcmlnaW4nLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0nb3JpZ2luJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLXInLCAnLS1yZXNvdXJjZScsIGRlc3Q9J3Jlc291cmNlJywgdHlwZT0nc3RyaW5nJywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScvZWNobycsIGhlbHA9J3Jlc291cmNlIHBhdGgn
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLW1lc3NhZ2UnLCBkZXN0PSdtZXNzYWdl
JywgdHlwZT0nc3RyaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnY29tbWEtc2Vw
YXJhdGVkIG1lc3NhZ2VzIHRvIHNlbmQuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICcl
cyB3aWxsIGZvcmNlIGNsb3NlIHRoZSBjb25uZWN0aW9uIGZyb20gc2VydmVyLicgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9HT09EQllFX01FU1NBR0UpKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctcScsICctLXF1aWV0JywgZGVzdD0ndmVyYm9zZScsIGFjdGlvbj0nc3RvcmVfZmFs
c2UnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1ZSwgaGVscD0nc3VwcHJlc3Mg
bWVzc2FnZXMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3Vz
ZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLykuIEJ5IGRlZmF1bHQsICcKLSAgICAgICAg
ICAgICAgICAgICAgICAnaXQgbG9va3MgZm9yIHNzbCBhbmQgcHlPcGVuU1NMIG1vZHVsZSBhbmQg
dXNlcyBmb3VuZCAnCi0gICAgICAgICAgICAgICAgICAgICAgJ29uZS4gVXNlIC0tdGxzLW1vZHVs
ZSBvcHRpb24gdG8gc3BlY2lmeSB3aGljaCBtb2R1bGUgJwotICAgICAgICAgICAgICAgICAgICAg
ICd0byB1c2UnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNf
bW9kdWxlJywgZGVzdD0ndGxzX21vZHVsZScsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0n
Y2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVtfVExTX0JZX1NUQU5EQVJE
X01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0xdLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J1VzZSBzc2wgbW9kdWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkLiAnCi0gICAgICAgICAgICAgICAg
ICAgICAgJ1VzZSBweU9wZW5TU0wgbW9kdWxlIGlmICIlcyIgaXMgc3BlY2lmaWVkJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgKF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BF
TlNTTCkpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLXZlcnNpb24nLCAnLS10bHNfdmVy
c2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndGxzX3ZlcnNpb24nLAotICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9X1RMU19WRVJTSU9OX1NTTDIz
LAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1RMUy9TU0wgdmVyc2lvbiB0byB1c2UuIE9u
ZSBvZiBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9TU0wyMyArICdc
JyAoU1NMIHZlcnNpb24gMiBvciAzKSwgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfVExT
X1ZFUlNJT05fU1NMMyArICdcJyAoU1NMIHZlcnNpb24gMyksIFwnJyArCi0gICAgICAgICAgICAg
ICAgICAgICAgX1RMU19WRVJTSU9OX1RMUzEgKyAnXCcgKFRMUyB2ZXJzaW9uIDEpJykKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbicsICctLWRpc2FibGVf
dGxzX2NvbXByZXNzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkaXNhYmxlX3Rs
c19jb21wcmVzc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVl
JywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdEaXNhYmxlIFRM
UyBjb21wcmVzc2lvbi4gQXZhaWxhYmxlIG9ubHkgd2hlbiAnCi0gICAgICAgICAgICAgICAgICAg
ICAgJ3B5T3BlblNTTCBtb2R1bGUgaXMgdXNlZC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
aycsICctLXNvY2tldC10aW1lb3V0JywgJy0tc29ja2V0X3RpbWVvdXQnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3NvY2tldF90aW1lb3V0JywgdHlwZT0naW50JywgZGVmYXVsdD1fVElN
RU9VVF9TRUMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVGltZW91dChzZWMpIGZvciBz
b2NrZXRzJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1kcmFmdDc1JywgZGVzdD0nZHJhZnQ3
NScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdPYnNvbGV0ZSBvcHRpb24uIERvblwn
dCB1c2UgdGhpcy4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXByb3RvY29sLXZlcnNpb24n
LCAnLS1wcm90b2NvbF92ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdwcm90
b2NvbF92ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdzdHJpbmcnLCBkZWZh
dWx0PV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiB0byB1c2UuIE9uZSBvZiBcJycgKwotICAgICAg
ICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyArICdcJywgXCcnICsKLSAg
ICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggKyAnXCcsIFwnJyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwICsgJ1wnJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS12ZXJzaW9uLWhlYWRlcicsICctLXZlcnNpb25faGVh
ZGVyJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2ZXJzaW9uX2hlYWRlcicsCi0gICAg
ICAgICAgICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD0tMSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdTcGVjaWZ5IFNlYy1XZWJTb2NrZXQtVmVyc2lvbiBoZWFkZXIgdmFsdWUn
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRlZmxhdGUtZnJhbWUnLCAnLS1kZWZsYXRlX2Zy
YW1lJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkZWZsYXRlX2ZyYW1lJywKLSAgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24u
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS11c2UtcGVybWVzc2FnZS1kZWZsYXRlJywgJy0t
dXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndXNl
X3Blcm1lc3NhZ2VfZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2Ug
dGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAg
ICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InLCAn
Y3JpdGljYWwnXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbGV2ZWwuJykKLQot
ICAgIChvcHRpb25zLCB1bnVzZWRfYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBs
b2dnaW5nLmJhc2ljQ29uZmlnKGxldmVsPWxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9n
X2xldmVsLnVwcGVyKCkpKQotCi0gICAgaWYgb3B0aW9ucy5kcmFmdDc1OgotICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKCctLWRyYWZ0NzUgb3B0aW9uIGlzIG9ic29sZXRlLicpCi0gICAgICAgIHN5
cy5leGl0KDEpCi0KLSAgICBpZiBvcHRpb25zLnByb3RvY29sX3ZlcnNpb24gPT0gX1BST1RPQ09M
X1ZFUlNJT05fSElYSUU3NToKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAg
ICdWYWx1ZSAlcyBpcyBvYnNvbGV0ZSBmb3IgLS1wcm90b2NvbF92ZXJzaW9uIG9wdGlvbnMnICUK
LSAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzUpCi0gICAgICAgIHN5cy5leGl0
KDEpCi0KLSAgICBpZiBvcHRpb25zLnVzZV90bHM6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21v
ZHVsZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAg
ICAgICBvcHRpb25zLnRsc19tb2R1bGUgPSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRQotICAgICAg
ICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1VzaW5nIHNzbCBtb2R1bGUnKQotICAgICAgICAgICAg
ZWxpZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21v
ZHVsZSA9IF9UTFNfQllfUFlPUEVOU1NMCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1Zygn
VXNpbmcgcHlPcGVuU1NMIG1vZHVsZScpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAgICAgICAgICAgICAnVExTIHN1cHBv
cnQgcmVxdWlyZXMgc3NsIG9yIHB5T3BlblNTTCBtb2R1bGUuJykKLSAgICAgICAgICAgICAgICBz
eXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NU
QU5EQVJEX01PRFVMRToKLSAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3NzbCgpOgotICAgICAg
ICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3NzbCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScp
Ci0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19t
b2R1bGUgPT0gX1RMU19CWV9QWU9QRU5TU0w6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9w
eW9wZW5zc2woKToKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdweU9wZW5TU0wg
bW9kdWxlIGlzIG5vdCBhdmFpbGFibGUnKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdJbnZhbGlkIC0tdGxz
LW1vZHVsZSBvcHRpb246ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
cy50bHNfbW9kdWxlKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiAob3B0
aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lvbiBhbmQKLSAgICAgICAgICAgIG9wdGlvbnMudGxz
X21vZHVsZSAhPSBfVExTX0JZX1BZT1BFTlNTTCk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdZb3UgY2FuIGRpc2FibGUgVExTIGNvbXByZXNzaW9uIG9ubHkgd2hlbiAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdweU9wZW5TU0wgbW9kdWxlIGlzIHVzZWQuJykKLSAgICAg
ICAgICAgIHN5cy5leGl0KDEpCi0gICAgZWxzZToKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9k
dWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tdGxz
LW1vZHVsZSBvcHRpb24gb25seSB0b2dldGhlciB3aXRoICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0tdXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0K
LSAgICAgICAgaWYgb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAgICAg
IGxvZ2dpbmcuY3JpdGljYWwoJ1VzZSAtLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uIG9ubHkgdG9n
ZXRoZXIgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2l0aCAtLXVzZS10bHMgb3B0
aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgIyBEZWZhdWx0IHBvcnQgbnVt
YmVyIGRlcGVuZHMgb24gd2hldGhlciBUTFMgaXMgdXNlZC4KLSAgICBpZiBvcHRpb25zLnNlcnZl
cl9wb3J0ID09IF9VTkRFRklORURfUE9SVDoKLSAgICAgICAgaWYgb3B0aW9ucy51c2VfdGxzOgot
ICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NL
RVRfU0VDVVJFX1BPUlQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wdGlvbnMuc2VydmVy
X3BvcnQgPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQKLQotICAgICMgb3B0cGFyc2Ug
ZG9lc24ndCBzZWVtIHRvIGhhbmRsZSBub24tYXNjaWkgZGVmYXVsdCB2YWx1ZXMuCi0gICAgIyBT
ZXQgZGVmYXVsdCBtZXNzYWdlIGhlcmUuCi0gICAgaWYgbm90IG9wdGlvbnMubWVzc2FnZToKLSAg
ICAgICAgb3B0aW9ucy5tZXNzYWdlID0gdSdIZWxsbyxcdTY1ZTVcdTY3MmMnICAgIyAiSmFwYW4i
IGluIEphcGFuZXNlCi0KLSAgICBFY2hvQ2xpZW50KG9wdGlvbnMpLnJ1bigpCi0KLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9lY2hvX25vZXh0X3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRmNTE1
MTIyNzExMWUxMTQ0MjRjNTU4NmExNDJhOWFkYjdkNjA0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1fR09P
REJZRV9NRVNTQUdFID0gdSdHb29kYnllJwotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICAiIiJSZWNlaXZlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMgaGVhZGVyIHZhbHVlIGlzIHBhcnNlZCBpbnRvCi0gICAgcmVxdWVzdC53c19yZXF1ZXN0ZWRf
ZXh0ZW5zaW9ucy4gcHl3ZWJzb2NrZXQgY3JlYXRlcyBleHRlbnNpb24KLSAgICBwcm9jZXNzb3Jz
IHVzaW5nIGl0IGJlZm9yZSBkb19leHRyYV9oYW5kc2hha2UgY2FsbCBhbmQgbmV2ZXIgbG9va3Mg
YXQgaXQKLSAgICBhZnRlciB0aGUgY2FsbC4KLQotICAgIFRvIHJlamVjdCByZXF1ZXN0ZWQgZXh0
ZW5zaW9ucywgY2xlYXIgdGhlIHByb2Nlc3NvciBsaXN0LgotICAgICIiIgotCi0gICAgcmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKLSAgICAiIiJFY2hvLiBTYW1lIGFzIGVjaG9fd3NoLnB5LiIiIgot
Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2Vp
dmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBpZiBpc2luc3RhbmNlKGxpbmUsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmVx
dWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1GYWxzZSkKLSAgICAgICAg
ICAgIGlmIGxpbmUgPT0gX0dPT0RCWUVfTUVTU0FHRToKLSAgICAgICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2Fn
ZShsaW5lLCBiaW5hcnk9VHJ1ZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2NDZjMzJjZWI1MTVmMTVkZDU3MjYyMjY4OWM3
OWVlNjFlNTQzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvZWNob193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBA
Ci0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9u
LgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotCi1fR09PREJZRV9NRVNTQUdFID0gdSdHb29kYnllJwotCi0K
LWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICAjIFRoaXMg
ZXhhbXBsZSBoYW5kbGVyIGFjY2VwdHMgYW55IHJlcXVlc3QuIFNlZSBvcmlnaW5fY2hlY2tfd3No
LnB5IGZvciBob3cKLSAgICAjIHRvIHJlamVjdCBhY2Nlc3MgZnJvbSB1bnRydXN0ZWQgc2NyaXB0
cyBiYXNlZCBvbiBvcmlnaW4gdmFsdWUuCi0KLSAgICBwYXNzICAjIEFsd2F5cyBhY2NlcHQuCi0K
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgaWYgbGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlz
aW5zdGFuY2UobGluZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5z
ZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNlKQotICAgICAgICAgICAgaWYgbGluZSA9PSBf
R09PREJZRV9NRVNTQUdFOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1U
cnVlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2
ZW50c291cmNlLmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFkZGRmMjM3Y2Y3ZDQ3NjQ5NzM0N2QwOTVhMTIyOTk0MTc3ZTE0
MDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2V2ZW50c291cmNlLmNnaQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLSMh
L3Vzci9iaW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgQ0dJIHNjcmlw
dCBnZW5lcmF0ZXMgdGV4dC9ldmVudC1zdHJlYW0gdHlwZSBkYXRhIHN0cmVhbSBmb3IgdGVzdGlu
ZwotdGhlIFNlcnZlci1TZW50IEV2ZW50cy4KLQotSXQgd2lsbCBvbmx5IHdvcmsgY29ycmVjdGx5
IHdpdGggSFRUUCBzZXJ2ZXJzIHRoYXQgZG8gbm90IGJ1ZmZlciB0aGUgb3V0cHV0IG9mCi1DR0kg
c2NyaXB0cy4KLSIiIgotCi0KLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi0KLXN5cy5zdGRvdXQu
d3JpdGUoJ0NvbnRlbnQtdHlwZTogdGV4dC9ldmVudC1zdHJlYW1cclxuXHJcbicpCi0KLWlkID0g
MAotCi13aGlsZSBUcnVlOgotICBzeXMuc3Rkb3V0LndyaXRlKCdkYXRhOiBIZWxsb1xyXG5pZDog
JWRcclxuXHJcbicgJSBpZCkKLSAgc3lzLnN0ZG91dC5mbHVzaCgpCi0KLSAgaWQgPSBpZCArIDEK
LQotICB0aW1lLnNsZWVwKDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxNTk4YTg4MDdkMWZmY2NlY2Y1ODVmMWJiNjU2ZmQyZDkwMmZjZDM5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9l
dmVudHNvdXJjZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotPCEtLQotQ29w
eXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1T
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTwhLS0KLVNpbXBsZSBleGFtcGxlIG9mIHRoZSBTZXJ2
ZXItU2VudCBFdmVudHMKLWh0dHA6Ly9kZXYudzMub3JnL2h0bWw1L2V2ZW50c291cmNlLwotCi1G
b3IgY29tcGFyaXNvbiB3aXRoIHRoZSBXZWJTb2NrZXQgUHJvdG9jb2wgJiBBUEkuCi0KLVJ1biB0
aGUgcHl3ZWJzb2NrZXQgd2l0aCB0aGUgLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCi0tLT4KLQotPGh0
bWw+Ci08aGVhZD4KLTx0aXRsZT5TZXJ2ZXItU2VudCBFdmVudHMgRXhhbXBsZTwvdGl0bGU+Ci08
c2NyaXB0PgotdmFyIGV2ZW50U291cmNlID0gbnVsbDsKLQotZnVuY3Rpb24gYWRkVG9Mb2coZGF0
YSkgewotICBsb2dCb3gudmFsdWUgKz0gZGF0YSArICdcbic7Ci0gIGxvZ0JveC5zY3JvbGxUb3Ag
PSAxMDAwMDAwOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewotICBsb2dCb3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgZXZlbnRTb3VyY2UgID0gbmV3IEV2ZW50U291cmNl
KCcvZXZlbnRzb3VyY2UuY2dpJyk7Ci0gIGV2ZW50U291cmNlLm9ub3BlbiA9IGZ1bmN0aW9uKCkg
ewotICAgIGFkZFRvTG9nKCdvbm9wZW4gKHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2UucmVh
ZHlTdGF0ZSArICcpJyk7Ci0gIH0KLSAgZXZlbnRTb3VyY2Uub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICBhZGRUb0xvZyhldmVudC5kYXRhKTsKLSAgfQotICBldmVudFNvdXJjZS5v
bmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICBhZGRUb0xvZygnb25lcnJvciAocmVhZHlT
dGF0ZSA9ICcgKyBldmVudFNvdXJjZS5yZWFkeVN0YXRlICsgJyknKTsKLSAgfQotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci08dGV4dGFyZWEgaWQ9ImxvZyIg
cm93cz0iMTAiIGNvbHM9IjQwIiByZWFkb25seT48L3RleHRhcmVhPgotPHAgc3R5bGU9ImZvbnQt
c2l6ZTogc21hbGwiPgotICBNYWtlIHN1cmUgdGhhdCBweXdlYnNvY2tldCBpcyBydW4gd2l0aCAt
LWNnaV9wYXRoIHBhcmFtZXRlci4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9i
ZW5jaG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEwNWViNjdhNTUz
MmI3NmJjOTdiZjgzMTA4YTE5ZTA0M2U1NGYzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjMgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTUgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLWxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IENPUFlJTkcgZmlsZSBvciBhdAotaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1z
b3VyY2UvbGljZW5zZXMvYnNkCi0tLT4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+RmV0Y2ggQVBJ
IGJlbmNobWFyazwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJmZXRjaF9iZW5j
aG1hcmsuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLQot
ZnVuY3Rpb24gZ2V0Q29uZmlnKCkgewotICByZXR1cm4gewotICAgIHByZWZpeFVybDogYWRkcmVz
c0JveC52YWx1ZSwKLSAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6
ZScpLAotICAgIG51bUZldGNoZXM6IGdldEludEZyb21JbnB1dCgnbnVtRmV0Y2hlcycpLAotICAg
IC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdlcy4KLSAgICBudW1JdGVyYXRpb25zOiBnZXRJbnRG
cm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwKLSAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBnZXRJ
bnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJhdGlvbnMnKSwKLSAgICBzdGFydFNpemU6IGdldElu
dEZyb21JbnB1dCgnc3RhcnRzaXplJyksCi0gICAgLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4gdGhl
IHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRoaXMgdGhyZXNob2xkLgotICAgIHN0b3BUaHJlc2hv
bGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRocmVzaG9sZCcpLAotICAgIG11bHRpcGxpZXJzOiBn
ZXRGbG9hdEFycmF5RnJvbUlucHV0KCdtdWx0aXBsaWVycycpLAotICAgIHZlcmlmeURhdGE6IGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRhdGEnKSwKLSAgICBhZGRUb0xvZzogYWRkVG9Mb2cs
Ci0gICAgYWRkVG9TdW1tYXJ5OiBhZGRUb1N1bW1hcnksCi0gICAgbWVhc3VyZVZhbHVlOiBtZWFz
dXJlVmFsdWUsCi0gICAgbm90aWZ5QWJvcnQ6IG5vdGlmeUFib3J0Ci0gIH07Ci19Ci0KLWZ1bmN0
aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBj
b25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBlcmFkaW8nKTsK
LSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3NlbmRC
ZW5jaG1hcmsnKTsKLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgewotICB2YXIg
Y29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0cmluZ0Zyb21S
YWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotICBkb0FjdGlvbihjb25maWcsIGdldEJvb2xGcm9t
Q2hlY2tCb3goJ3dvcmtlcicpLCAncmVjZWl2ZUJlbmNobWFyaycpOwotfQotCi1mdW5jdGlvbiBv
bkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGRvQWN0
aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdiYXRjaEJlbmNobWFy
aycpOwotfQotCi1mdW5jdGlvbiBvblN0b3AoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWco
KTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3N0
b3AnKTsKLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRkcmVzc0JveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1
bW1hcnknKTsKLQotICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2YgcHl3ZWJzb2NrZXQgZm9yIFhIUi9G
ZXRjaCBBUEkgYmVuY2htYXJrLgotICBhZGRyZXNzQm94LnZhbHVlID0gJy8wNzNiZTAwMWUxMDk1
MDY5MmNjYmYzYTJhZDIxYzI0NSc7Ci0KLSAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51c2Vy
QWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0gIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9yLnVz
ZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLQotICBpbml0V29ya2VyKCdmZXRjaCcsICcnKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08Zm9ybSBpZD0i
YmVuY2htYXJrX2Zvcm0iPgotICB1cmwgcHJlZml4IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRk
cmVzcyIgc2l6ZT0iNDAiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic2VuZCIgb25j
bGljaz0ib25TZW5kQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i
cmVjZWl2ZSIgb25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgotICA8aW5wdXQgdHlwZT0i
YnV0dG9uIiB2YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmsoKSI+Ci0gIDxp
bnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3AoKSI+Ci0KLSAg
PGJyLz4KLQotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUiIGNoZWNrZWQ+
Ci0gIDxsYWJlbCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBwZXIgbWVzc2Fn
ZTwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRhdGEiIGNoZWNr
ZWQ+Ci0gIDxsYWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJlbD4KLSAgPGlu
cHV0IHR5cGU9ImNoZWNrYm94IiBpZD0id29ya2VyIj4KLSAgPGxhYmVsIGZvcj0id29ya2VyIj5S
dW4gb24gd29ya2VyPC9sYWJlbD4KLQotICA8YnIvPgotCi0gIFBhcmFtZXRlcnM6Ci0KLSAgPGJy
Lz4KLQotICA8dGFibGU+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJlciBvZiBmZXRjaCgpIHJl
cXVlc3RzPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bUZldGNoZXMi
IHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk51bWJlciBv
ZiBpdGVyYXRpb25zPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51bWl0
ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRk
Pk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBl
PSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9IjAiPjwvdGQ+Ci0gICAgPC90
cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0
IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0MCI+PC90ZD4KLSAgICA8L3Ry
PgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwvdGQ+Ci0gICAgICA8dGQ+PGlu
cHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1ZT0iMTAyNDAwMDAwIj48L3Rk
PgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4KLSAgICAg
IDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwgMiI+PC90
ZD4KLSAgICA8L3RyPgotICA8L3RhYmxlPgotCi0gIFNldCBkYXRhIHR5cGUKLSAgPGlucHV0IHR5
cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJk
YXRhdHlwZXJhZGlvdGV4dCIKLSAgICAgICAgIHZhbHVlPSJ0ZXh0IgotICAgICAgICAgY2hlY2tl
ZD48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvdGV4dCI+dGV4dDwvbGFiZWw+Ci0gIDxpbnB1dCB0
eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0i
ZGF0YXR5cGVyYWRpb2Jsb2IiCi0gICAgICAgICB2YWx1ZT0iYmxvYiIKLSAgICAgICAgID48bGFi
ZWwgZm9yPSJkYXRhdHlwZXJhZGlvYmxvYiI+YmxvYjwvbGFiZWw+Ci0gIDxpbnB1dCB0eXBlPSJy
YWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0YXR5
cGVyYWRpb2FycmF5YnVmZmVyIgotICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVyIgotICAgICAg
ICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciI+YXJyYXlidWZmZXI8L2xh
YmVsPgotPC9mb3JtPgotCi08ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhCi0gICAgICBp
ZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVh
PgotPC9kaXY+Ci08ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAgPHRleHRhcmVh
Ci0gICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9u
bHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotCi08ZGl2IGlkPSJub3RlX2RpdiI+Ci0gIE5vdGU6Ci0g
IDx1bD4KLSAgICA8bGk+RWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVudCBmb3IgQXJyYXlCdWZm
ZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3QgZWxpbWluYXRlZC48L2xp
PgotICAgIDxsaT5UaGUgU3RkZGV2IGNvbHVtbiBzaG93cyBOYU4gd2hlbiB0aGUgbnVtYmVyIG9m
IGl0ZXJhdGlvbnMgaXMgc2V0IHRvIDEuPC9saT4KLSAgPC91bD4KLTwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTM5NTIxOTBhOGUwNzM5ZTNhMGYyYTQ4Y2I4M2RiZTliMzAxNTM5Ni4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hf
YmVuY2htYXJrLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjI1ICswLDAgQEAKLS8vIENvcHlyaWdo
dCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZl
bG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLXZhciBpc1dvcmtl
ciA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIjsKLQotaWYgKGlzV29ya2Vy
KSB7Ci0gIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIKLSAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycs
ICd1dGlsX3dvcmtlci5qcycpOwotfQotCi0vLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFs
cy4KLXZhciBiZW5jaG1hcmsgPSB7fTsKLWJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gMDsKLQot
dmFyIHRpbWVySUQgPSBudWxsOwotCi1mdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBj
b25maWcsIGlzV2FybVVwKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotICBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcyA9IG51bGw7Ci0KLSAgLy8gUHJlcGFyZSBkYXRhLgotICB2YXIgZGF0YUFycmF5ID0g
W107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bUZldGNoZXM7ICsraSkgewotICAg
IHZhciBkYXRhID0gbnVsbDsKLSAgICBpZiAoY29uZmlnLmRhdGFUeXBlID09ICdhcnJheWJ1ZmZl
cicgfHwKLSAgICAgICAgY29uZmlnLmRhdGFUeXBlID09ICdibG9iJykgewotICAgICAgZGF0YSA9
IG5ldyBBcnJheUJ1ZmZlcihzaXplKTsKLQotICAgICAgZmlsbEFycmF5QnVmZmVyKGRhdGEsIDB4
NjEpOwotCi0gICAgICBpZiAoY29uZmlnLmRhdGFUeXBlID09ICdibG9iJykgewotICAgICAgICBk
YXRhID0gbmV3IEJsb2IoW2RhdGFdKTsKLSAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgZGF0
YSA9IHJlcGVhdFN0cmluZygnYScsIHNpemUpOwotICAgIH0KLQotICAgIGRhdGFBcnJheS5wdXNo
KGRhdGEpOwotICB9Ci0KLSAgLy8gU3RhcnQgdGltZSBtZWFzdXJpbmcuCi0gIGJlbmNobWFyay5z
dGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgLy8gU3RhcnQgZmV0Y2guCi0gIHZh
ciBwcm9taXNlcyA9IFtdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5udW1GZXRjaGVz
OyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IGRhdGFBcnJheVtpXTsKLSAgICB2YXIgcHJvbWlzZSA9
IGZldGNoKGNvbmZpZy5wcmVmaXhVcmwgKyAnX3NlbmQnLAotICAgICAgICAgICAgICAgICAgICAg
ICAge21ldGhvZDogJ1BPU1QnLCBib2R5OiBkYXRhfSkKLSAgICAgICAgLnRoZW4oZnVuY3Rpb24g
KHJlc3BvbnNlKSB7Ci0gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPSAyMDApIHsKLSAg
ICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyArIHJlc3BvbnNlLnN0
YXR1cyArICcpJyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAg
ICAgICB9Ci0gICAgICAgICAgLy8gQ2hlY2sgYW5kIHdhcm4gaWYgcHJveHkgaXMgZW5hYmxlZC4K
LSAgICAgICAgICBpZiAocmVzcG9uc2UuaGVhZGVycy5nZXQoJ1ZpYScpICE9PSBudWxsKSB7Ci0g
ICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5IHNlZW1zIGVuYWJsZWQu
Jyk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkgewotICAg
ICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKQotICAgICAgICAgICAgICAgIC50aGVuKGZ1
bmN0aW9uKHRleHQpIHsKLSAgICAgICAgICAgICAgICAgIGlmICghdmVyaWZ5QWNrbm93bGVkZ2Vt
ZW50KGNvbmZpZywgdGV4dCwgc2l6ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVqZWN0KCk7Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpOwot
ICB9Ci0KLSAgLy8gRmluaXNoIGFuZCByZXBvcnQgdGltZSBtZWFzdXJpbmcuCi0gIFByb21pc2Uu
YWxsKHByb21pc2VzKQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmIChiZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0gICAgICAgICAgY29uZmlnLmFkZFRvTG9n
KCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKLSAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QoKTsKLSAgICAgICAgfQotICAgICAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBz
aXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywKLSAgICAgICAgICBzaXplICogY29uZmlnLm51
bUZldGNoZXMsIGlzV2FybVVwKTsKLSAgICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgICAg
IH0pCi0gICAgICAuY2F0Y2goZnVuY3Rpb24oZSkgewotICAgICAgICBjb25maWcuYWRkVG9Mb2co
IkVSUk9SOiAiICsgZSk7Ci0gICAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgfSk7
Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZywgaXNXYXJt
VXApIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVs
bDsKLQotICAvLyBTdGFydCB0aW1lIG1lYXN1cmluZy4KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUlu
TXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICAvLyBTdGFydCBmZXRjaC4KLSAgdmFyIHByb21pc2Vz
ID0gW107Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bUZldGNoZXM7ICsraSkgewot
ICAgIHZhciByZXF1ZXN0OwotICAgIGlmIChjb25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQt
Tk9DQUNIRScpIHsKLSAgICAgIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChjb25maWcucHJlZml4VXJs
ICsgJ19yZWNlaXZlX2dldG5vY2FjaGU/JyArIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAge21ldGhvZDogJ0dFVCd9KTsKLSAgICB9IGVsc2UgaWYgKGNvbmZpZy5tZXRob2RBbmRD
YWNoZSA9PT0gJ0dFVC1DQUNIRScpIHsKLSAgICAgIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChjb25m
aWcucHJlZml4VXJsICsgJ19yZWNlaXZlX2dldGNhY2hlPycgKyBzaXplLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHttZXRob2Q6ICdHRVQnfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHJl
cXVlc3QgPSBuZXcgUmVxdWVzdChjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6IHNpemUgKyAnIG5v
bmUnfSk7Ci0gICAgfQotICAgIHZhciBwcm9taXNlID0gZmV0Y2gocmVxdWVzdCkKLSAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVz
ICE9IDIwMCkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0n
ICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0
KCk7Ci0gICAgICAgICAgfQotICAgICAgICAgIC8vIENoZWNrIGFuZCB3YXJuIGlmIHByb3h5IGlz
IGVuYWJsZWQuCi0gICAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdWaWEnKSAhPT0g
bnVsbCkgewotICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBwcm94eSBzZWVt
cyBlbmFibGVkLicpOwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoY29uZmlnLmRhdGFUeXBl
ID09PSAnYXJyYXlidWZmZXInKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYXJyYXlC
dWZmZXIoKQotICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKGFycmF5QnVmZmVyKSB7Ci0g
ICAgICAgICAgICAgICAgICByZXR1cm4gW2FycmF5QnVmZmVyLmJ5dGVMZW5ndGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICghY29uZmlnLnZlcmlmeURhdGEgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZlcmlmeUFycmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDYxKSldOwotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLmRhdGFUeXBlID09
ICdibG9iJykgewotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmJsb2IoKQotICAgICAgICAg
ICAgICAgIC50aGVuKGZ1bmN0aW9uKGJsb2IpIHsKLSAgICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICBpZiAoY29uZmlnLnZlcmlmeURhdGEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZl
cmlmeUJsb2IoY29uZmlnLCBibG9iLCAweDYxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uKHJlY2VpdmVkU2l6ZSwgdmVyaWZpY2F0aW9uUmVzdWx0KSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFtyZWNlaXZlZFNpemUsIHZlcmlmaWNhdGlvblJl
c3VsdF0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKFtibG9iLnNp
emUsIHRydWVdKTsKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVzcG9uc2UudGV4dCgpCi0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24o
dGV4dCkgewotICAgICAgICAgICAgICAgICAgcmV0dXJuIFt0ZXh0Lmxlbmd0aCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCFjb25maWcudmVyaWZ5RGF0YSB8fAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dCA9PSByZXBlYXRTdHJpbmcoJ2EnLCB0ZXh0Lmxlbmd0aCkpXTsKLSAg
ICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0pCi0gICAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlY2VpdmVkU2l6ZUFuZFZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgICAgICAg
IHZhciByZWNlaXZlZFNpemUgPSByZWNlaXZlZFNpemVBbmRWZXJpZmljYXRpb25SZXN1bHRbMF07
Ci0gICAgICAgICAgdmFyIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlY2VpdmVkU2l6ZUFuZFZlcmlm
aWNhdGlvblJlc3VsdFsxXTsKLSAgICAgICAgICBpZiAocmVjZWl2ZWRTaXplICE9PSBzaXplKSB7
Ci0gICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0V4cGVjdGVkICcgKyBzaXplICsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnQiBidXQgcmVjZWl2ZWQgJyArIHJlY2VpdmVkU2l6ZSAr
ICdCJyk7Ci0gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAgICAgICB9
Ci0gICAgICAgICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICAgICAgICAgIGNvbmZp
Zy5hZGRUb0xvZygnUmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVqZWN0KCk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICBw
cm9taXNlcy5wdXNoKHByb21pc2UpOwotICB9Ci0KLSAgLy8gRmluaXNoIGFuZCByZXBvcnQgdGlt
ZSBtZWFzdXJpbmcuCi0gIFByb21pc2UuYWxsKHByb21pc2VzKQotICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7Ci0gICAgICAgIGlmIChiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0g
ICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKLSAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKLSAgICAgICAgfQotICAgICAgICBjYWxjdWxh
dGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgKiBjb25maWcubnVtRmV0Y2hlcywgaXNX
YXJtVXApOwotICAgICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICAgICAgfSkKLSAgICAgIC5j
YXRjaChmdW5jdGlvbihlKSB7Ci0gICAgICAgIGNvbmZpZy5hZGRUb0xvZygiRVJST1I6ICIgKyBl
KTsKLSAgICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICB9KTsKLX0KLQotCi1mdW5j
dGlvbiBnZXRDb25maWdTdHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAnKCcgKyBjb25maWcuZGF0
YVR5cGUgKwotICAgICcsIHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAn
LCAnICsgKGlzV29ya2VyID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAnLCBudW1GZXRjaGVz
PScgKyBjb25maWcubnVtRmV0Y2hlcyArCi0gICAgJywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmln
Lm51bUl0ZXJhdGlvbnMgKwotICAgICcsIG51bVdhcm1VcEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5u
dW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAnKSc7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2ht
YXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0KLSAgcnVuTmV4dFRhc2so
Y29uZmlnKTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsob3JpZ2luYWxDb25maWcpIHsK
LSAgb3JpZ2luYWxDb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOwotCi0gIHRhc2tz
ID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLQotICB2YXIgZGF0YVR5cGVzID0gWyd0ZXh0
JywgJ2Jsb2InLCAnYXJyYXlidWZmZXInXTsKLSAgdmFyIHN0ZXBGdW5jcyA9IFtzZW5kQmVuY2ht
YXJrU3RlcCwgcmVjZWl2ZUJlbmNobWFya1N0ZXBdOwotICB2YXIgbmFtZXMgPSBbJ1NlbmQnLCAn
UmVjZWl2ZSddOwotICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ZXBGdW5jcy5sZW5ndGg7ICsraSkg
ewotICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5cGVzLmxlbmd0aDsgKytqKSB7Ci0gICAg
ICB2YXIgY29uZmlnID0gY2xvbmVDb25maWcob3JpZ2luYWxDb25maWcpOwotICAgICAgY29uZmln
LmRhdGFUeXBlID0gZGF0YVR5cGVzW2pdOwotICAgICAgYWRkVGFza3MoY29uZmlnLCBzdGVwRnVu
Y3NbaV0pOwotICAgICAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0gICAgICAgICAg
bmFtZXNbaV0gKyAnIGJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICAg
IH0KLSAgfQotCi0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFu
dXAoKSB7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfcGVyZm9ybWFuY2VfdGVz
dF9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90ZXN0X2lmcmFt
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTJkZjJlN2RmNGQzZWE2MmRj
MmEwYmQ1ZTgxYmU4YmY1YjVkYmM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InBlcmZvcm1h
bmNlX3Rlc3RfaWZyYW1lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJmZXRjaF9iZW5jaG1h
cmsuanMiPjwvc2NyaXB0PgotPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hhbmRs
ZXJfbWFwLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIxYzRjMDlhYTAwOTFkOGJhZjI5MDg5NTk5MDU4Njc4NDJhZWI4NjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2hhbmRsZXJfbWFwLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLSMgd2Vi
c29ja2V0IGhhbmRsZXIgbWFwIGZpbGUsIHVzZWQgYnkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24u
Ci0jIEEgbGluZSBzdGFydGluZyB3aXRoICcjJyBpcyBhIGNvbW1lbnQgbGluZS4KLSMgRWFjaCBs
aW5lIGNvbnNpc3RzIG9mICdhbGlhc19yZXNvdXJjZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291
cmNlX3BhdGgnCi0jIHNlcGFyYXRlZCBieSBzcGFjZXMuCi0jIEFsaWFzaW5nIGlzIHByb2Nlc3Nl
ZCBmcm9tIHRoZSB0b3AgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGluZSwgYW5kCi0jICdleGlzdGlu
Z19yZXNvdXJjZV9wYXRoJyBtdXN0IGV4aXN0IGJlZm9yZSBpdCBpcyBhbGlhc2VkLgotIyBGb3Ig
ZXhhbXBsZSwKLSMgIC8gL2VjaG8KLSMgbWVhbnMgdGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwg
YmUgaGFuZGxlZCBieSBoYW5kbGVycyBmb3IgJy9lY2hvJy4KLS8gL2VjaG8KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODYxOTQ2OTIxYWYwNDU5NGQ2MjAyNmI0NmYw
Nzc1OGRkZmU0MDJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9oc3RzX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmV4dHJhX2hlYWRlcnMuYXBwZW5kKAotICAgICAgICAo
J1N0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHknLCAnbWF4LWFnZT04NjQwMCcpKQotCi0KLWRlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKCdIZWxsbycsIGJpbmFyeT1GYWxzZSkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmZTU4MWI1NGE2NDhjMDlhMjJmMjU0NTEyN2Q3MGRmMDUxMzQ5MjM0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5h
bF9lcnJvcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAotCi0KLWRlZiB3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVm
IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBtc2d1dGlsLkJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbignSW50ZW50aW9uYWwnKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL29yaWdpbl9jaGVja193c2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTA1NzY3YWI5MzJmYjU4MjgyNGFhZjFhNTdkOTI0OWMzMDRiZDUxZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvb3JpZ2luX2NoZWNr
X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEs
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0jIFRoaXMgZXhhbXBsZSBpcyBkZXJpdmVkIGZyb20gdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9v
cmlnaW5fY2hlY2tfd3NoLnB5LgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4YW1wbGUu
Y29tJzoKLSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2NlcHRhYmxl
IG9yaWdpbjogJXInICUgcmVxdWVzdC53c19vcmlnaW4pCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJh
bnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdp
bl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1h
bmNlX3Rlc3RfaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhhZWRlOTdhMTQzMDQyODU0
ZTU1NTcyODkzNzIyOGZlYWM3YmViMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJwZXJmb3JtYW5jZV90
ZXN0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iYmVuY2htYXJrLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0
X2lmcmFtZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY1YjI1YmQxZmZkNjM3NTkzZWYzZjdmMDZmMGE0
ZmU2NjBhZDBlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMKKysrIC9kZXYvbnVsbApA
QCAtMSw2NiArMCwwIEBACi1mdW5jdGlvbiBwZXJmVGVzdEFkZFRvTG9nKHRleHQpIHsKLSAgcGFy
ZW50LnBvc3RNZXNzYWdlKHsnY29tbWFuZCc6ICdsb2cnLCAndmFsdWUnOiB0ZXh0fSwgJyonKTsK
LX0KLQotZnVuY3Rpb24gcGVyZlRlc3RBZGRUb1N1bW1hcnkodGV4dCkgewotfQotCi1mdW5jdGlv
biBwZXJmVGVzdE1lYXN1cmVWYWx1ZSh2YWx1ZSkgewotICBwYXJlbnQucG9zdE1lc3NhZ2Uoeydj
b21tYW5kJzogJ21lYXN1cmVWYWx1ZScsICd2YWx1ZSc6IHZhbHVlfSwgJyonKTsKLX0KLQotZnVu
Y3Rpb24gcGVyZlRlc3ROb3RpZnlBYm9ydCgpIHsKLSAgcGFyZW50LnBvc3RNZXNzYWdlKHsnY29t
bWFuZCc6ICdub3RpZnlBYm9ydCd9LCAnKicpOwotfQotCi1mdW5jdGlvbiBnZXRDb25maWdGb3JQ
ZXJmb3JtYW5jZVRlc3QoY29ubmVjdGlvblR5cGUsIGRhdGFUeXBlLCBhc3luYywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlEYXRhLCBudW1JdGVyYXRpb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bVdhcm1VcEl0ZXJhdGlvbnMp
IHsKLSAgdmFyIHByZWZpeFVybDsKLSAgaWYgKGNvbm5lY3Rpb25UeXBlID09PSAnV2ViU29ja2V0
JykgewotICAgIHByZWZpeFVybCA9ICd3czovLycgKyBsb2NhdGlvbi5ob3N0ICsgJy9iZW5jaG1h
cmtfaGVscGVyJzsKLSAgfSBlbHNlIHsKLSAgICAvLyBYSFIgb3IgZmV0Y2gKLSAgICBwcmVmaXhV
cmwgPSAnaHR0cDovLycgKyBsb2NhdGlvbi5ob3N0ICsgJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYz
YTJhZDIxYzI0NSc7Ci0gIH0KLQotICByZXR1cm4gewotICAgIHByZWZpeFVybDogcHJlZml4VXJs
LAotICAgIHByaW50U2l6ZTogdHJ1ZSwKLSAgICBudW1YSFJzOiAxLAotICAgIG51bUZldGNoZXM6
IDEsCi0gICAgbnVtU29ja2V0czogMSwKLSAgICAvLyArIDEgaXMgZm9yIGEgd2FybXVwIGl0ZXJh
dGlvbiBieSB0aGUgVGVsZW1ldHJ5IGZyYW1ld29yay4KLSAgICBudW1JdGVyYXRpb25zOiBudW1J
dGVyYXRpb25zICsgbnVtV2FybVVwSXRlcmF0aW9ucyArIDEsCi0gICAgbnVtV2FybVVwSXRlcmF0
aW9uczogbnVtV2FybVVwSXRlcmF0aW9ucywKLSAgICBtaW5Ub3RhbDogMTAyNDAwMDAsCi0gICAg
c3RhcnRTaXplOiAxMDI0MDAwMCwKLSAgICBzdG9wVGhyZXNob2xkOiAxMDI0MDAwMCwKLSAgICBt
dWx0aXBsaWVyczogWzJdLAotICAgIHZlcmlmeURhdGE6IHZlcmlmeURhdGEsCi0gICAgZGF0YVR5
cGU6IGRhdGFUeXBlLAotICAgIGFzeW5jOiBhc3luYywKLSAgICBhZGRUb0xvZzogcGVyZlRlc3RB
ZGRUb0xvZywKLSAgICBhZGRUb1N1bW1hcnk6IHBlcmZUZXN0QWRkVG9TdW1tYXJ5LAotICAgIG1l
YXN1cmVWYWx1ZTogcGVyZlRlc3RNZWFzdXJlVmFsdWUsCi0gICAgbm90aWZ5QWJvcnQ6IHBlcmZU
ZXN0Tm90aWZ5QWJvcnQKLSAgfTsKLX0KLQotdmFyIGRhdGE7Ci1vbm1lc3NhZ2UgPSBmdW5jdGlv
bihtZXNzYWdlKSB7Ci0gIHZhciBhY3Rpb247Ci0gIGlmIChtZXNzYWdlLmRhdGEuY29tbWFuZCA9
PT0gJ3N0YXJ0JykgewotICAgIGRhdGEgPSBtZXNzYWdlLmRhdGE7Ci0gICAgaW5pdFdvcmtlcihk
YXRhLmNvbm5lY3Rpb25UeXBlLCAnaHR0cDovLycgKyBsb2NhdGlvbi5ob3N0KTsKLSAgICBhY3Rp
b24gPSBkYXRhLmJlbmNobWFya05hbWU7Ci0gIH0gZWxzZSB7Ci0gICAgYWN0aW9uID0gJ3N0b3An
OwotICB9Ci0KLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZ0ZvclBlcmZvcm1hbmNlVGVzdChkYXRh
LmNvbm5lY3Rpb25UeXBlLCBkYXRhLmRhdGFUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEuYXN5bmMsIGRhdGEudmVyaWZ5RGF0YSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLm51bUl0ZXJhdGlvbnMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5udW1XYXJtVXBJ
dGVyYXRpb25zKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBkYXRhLmlzV29ya2VyLCBhY3Rpb24pOwot
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3B5d2Vic29ja2V0LmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNWQx
MzBhNWM4NGY2OWRlNGY4MWQzNThmYjJjZGI1YmRlNGFmNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3B5d2Vic29ja2V0LmNvbmYK
KysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotIwotIyBT
YW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciBhcGFjaGUyCi0jCi1Mb2dMZXZlbCBkZWJ1Zwot
PElmTW9kdWxlIHB5dGhvbl9tb2R1bGU+Ci0gIFB5dGhvblBhdGggInN5cy5wYXRoK1snL21vZF9w
eXdlYnNvY2tldCddIgotICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9v
dCAvdmFyL3d3dwotICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbiAv
dmFyL3d3dy93cwotICAjUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1
IE9uCi0gIDxMb2NhdGlvbiAvd3M+Ci0gICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2Rf
cHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotICA8L0xvY2F0aW9uPgotPC9JZk1vZHVs
ZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVhNTA4MGYxZjFhZWEzYTM3YTdlNzI5YzY3OGQ2YTEyMzM3YmVkYjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVh
ZGVycy5jZ2kKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0jIS91c3IvYmluL3B5dGhv
bgotCi0jIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0j
IGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotIyBo
dHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQot
IiIiQ0dJIHNjcmlwdCBzYW1wbGUgZm9yIHRlc3RpbmcgZWZmZWN0IG9mIEhUVFAgaGVhZGVycyBv
biB0aGUgb3JpZ2luIHBhZ2UuCi0KLU5vdGUgdGhhdCBDR0kgc2NyaXB0cyBkb24ndCB3b3JrIG9u
IHRoZSBzdGFuZGFsb25lIHB5d2Vic29ja2V0IHJ1bm5pbmcgaW4gVExTCi1tb2RlLgotIiIiCi0K
LQotcHJpbnQgIiIiQ29udGVudC10eXBlOiB0ZXh0L2h0bWwKLUNvbnRlbnQtU2VjdXJpdHktUG9s
aWN5OiBjb25uZWN0LXNyYyBzZWxmCi0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+PC90aXRsZT4K
LTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLXZhciBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KCJ3
czovL2V4YW1wbGUuY29tIik7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4iIiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllYzAwMDdiMWVkZDVhMGM1NzE3YTI4ZGEwNTUyMTg3
YTY3ZGE5YTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL3V0aWwuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMjcgKzAsMCBAQAotLy8g
Q29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8K
LS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0
cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0v
LyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLS8vIFV0aWxpdGll
cyBmb3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMgKGZvciBib3RoIG1haW4gYW5kIHdvcmtlciB0aHJl
YWQpLgotCi12YXIgcmVzdWx0cyA9IHt9OwotCi1mdW5jdGlvbiBnZXRUaW1lU3RhbXAoKSB7Ci0g
IHJldHVybiBEYXRlLm5vdygpOwotfQotCi1mdW5jdGlvbiBmb3JtYXRSZXN1bHRJbktpQihzaXpl
LCB0aW1lUGVyTWVzc2FnZUluTXMsIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcywKLSAgICBzcGVl
ZCwgcHJpbnRTaXplKSB7Ci0gIGlmIChwcmludFNpemUpIHsKLSAgICByZXR1cm4gKHNpemUgLyAx
MDI0KSArCi0gICAgICAgICdcdCcgKyB0aW1lUGVyTWVzc2FnZUluTXMudG9GaXhlZCgzKSArCi0g
ICAgICAgIChzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMgPT0gLTEgPwotICAgICAgICAgICAgJycg
OgotICAgICAgICAgICAgJ1x0JyArIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5Ncy50b0ZpeGVkKDMp
KSArCi0gICAgICAgICdcdCcgKyBzcGVlZC50b0ZpeGVkKDMpOwotICB9IGVsc2UgewotICAgIHJl
dHVybiBzcGVlZC50b1N0cmluZygpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIGNsZWFyQXZlcmFnZURh
dGEoKSB7Ci0gIHJlc3VsdHMgPSB7fTsKLX0KLQotZnVuY3Rpb24gcmVwb3J0QXZlcmFnZURhdGEo
Y29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb1N1bW1hcnkoCi0gICAgICAnU2l6ZVtLaUJdXHRBdmVy
YWdlIHRpbWVbbXNdXHRTdGRkZXYgdGltZVttc11cdFNwZWVkW0tCL3NdJyk7Ci0gIGZvciAodmFy
IHNpemUgaW4gcmVzdWx0cykgewotICAgIHZhciBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zID0g
cmVzdWx0c1tzaXplXS5zdW1fdCAvIHJlc3VsdHNbc2l6ZV0ubjsKLSAgICB2YXIgc3BlZWQgPSBj
YWxjdWxhdGVTcGVlZEluS0Ioc2l6ZSwgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncyk7Ci0gICAg
Ly8gQ2FsY3VsYXRlIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24KLSAgICB2YXIgc3RkZGV2VGlt
ZVBlck1lc3NhZ2VJbk1zID0gTWF0aC5zcXJ0KAotICAgICAgICAocmVzdWx0c1tzaXplXS5zdW1f
dDIgLyByZXN1bHRzW3NpemVdLm4gLQotICAgICAgICAgICAgYXZlcmFnZVRpbWVQZXJNZXNzYWdl
SW5NcyAqIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMpICoKLSAgICAgICAgcmVzdWx0c1tzaXpl
XS5uIC8KLSAgICAgICAgKHJlc3VsdHNbc2l6ZV0ubiAtIDEpKTsKLSAgICBjb25maWcuYWRkVG9T
dW1tYXJ5KGZvcm1hdFJlc3VsdEluS2lCKAotICAgICAgICBzaXplLCBhdmVyYWdlVGltZVBlck1l
c3NhZ2VJbk1zLCBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMsIHNwZWVkLAotICAgICAgICB0cnVl
KSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2FsY3VsYXRlU3BlZWRJbktCKHNpemUsIHRpbWVTcGVu
dEluTXMpIHsKLSAgcmV0dXJuIE1hdGgucm91bmQoc2l6ZSAvIHRpbWVTcGVudEluTXMgKiAxMDAw
KSAvIDEwMDA7Ci19Ci0KLWZ1bmN0aW9uIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNp
emUsIHN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKLSAgICBpc1dhcm1VcCkgewotICB2YXIgdGlt
ZVNwZW50SW5NcyA9IGdldFRpbWVTdGFtcCgpIC0gc3RhcnRUaW1lSW5NczsKLSAgdmFyIHNwZWVk
ID0gY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwgdGltZVNwZW50SW5Ncyk7Ci0gIHZhciB0
aW1lUGVyTWVzc2FnZUluTXMgPSB0aW1lU3BlbnRJbk1zIC8gKHRvdGFsU2l6ZSAvIHNpemUpOwot
ICBpZiAoIWlzV2FybVVwKSB7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSh0aW1lUGVyTWVzc2Fn
ZUluTXMpOwotICAgIGlmICghcmVzdWx0c1tzaXplXSkgewotICAgICAgcmVzdWx0c1tzaXplXSA9
IHtuOiAwLCBzdW1fdDogMCwgc3VtX3QyOiAwfTsKLSAgICB9Ci0gICAgcmVzdWx0c1tzaXplXS5u
ICsrOwotICAgIHJlc3VsdHNbc2l6ZV0uc3VtX3QgKz0gdGltZVBlck1lc3NhZ2VJbk1zOwotICAg
IHJlc3VsdHNbc2l6ZV0uc3VtX3QyICs9IHRpbWVQZXJNZXNzYWdlSW5NcyAqIHRpbWVQZXJNZXNz
YWdlSW5NczsKLSAgfQotICBjb25maWcuYWRkVG9Mb2coZm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwg
dGltZVBlck1lc3NhZ2VJbk1zLCAtMSwgc3BlZWQsCi0gICAgICBjb25maWcucHJpbnRTaXplKSk7
Ci19Ci0KLWZ1bmN0aW9uIHJlcGVhdFN0cmluZyhzdHIsIGNvdW50KSB7Ci0gIHZhciBkYXRhID0g
Jyc7Ci0gIHZhciBleHBDaHVuayA9IHN0cjsKLSAgdmFyIHJlbWFpbiA9IGNvdW50OwotICB3aGls
ZSAodHJ1ZSkgewotICAgIGlmIChyZW1haW4gJSAyKSB7Ci0gICAgICBkYXRhICs9IGV4cENodW5r
OwotICAgICAgcmVtYWluID0gKHJlbWFpbiAtIDEpIC8gMjsKLSAgICB9IGVsc2UgewotICAgICAg
cmVtYWluIC89IDI7Ci0gICAgfQotCi0gICAgaWYgKHJlbWFpbiA9PSAwKQotICAgICAgYnJlYWs7
Ci0KLSAgICBleHBDaHVuayA9IGV4cENodW5rICsgZXhwQ2h1bms7Ci0gIH0KLSAgcmV0dXJuIGRh
dGE7Ci19Ci0KLWZ1bmN0aW9uIGZpbGxBcnJheUJ1ZmZlcihidWZmZXIsIGMpIHsKLSAgdmFyIGk7
Ci0KLSAgdmFyIHUzMkNvbnRlbnQgPSBjICogMHgwMTAxMDEwMTsKLQotICB2YXIgdTMyQmxvY2tz
ID0gTWF0aC5mbG9vcihidWZmZXIuYnl0ZUxlbmd0aCAvIDQpOwotICB2YXIgdTMyVmlldyA9IG5l
dyBVaW50MzJBcnJheShidWZmZXIsIDAsIHUzMkJsb2Nrcyk7Ci0gIC8vIGxlbmd0aCBhdHRyaWJ1
dGUgaXMgc2xvdyBvbiBDaHJvbWUuIERvbid0IHVzZSBpdCBmb3IgbG9vcCBjb25kaXRpb24uCi0g
IGZvciAoaSA9IDA7IGkgPCB1MzJCbG9ja3M7ICsraSkgewotICAgIHUzMlZpZXdbaV0gPSB1MzJD
b250ZW50OwotICB9Ci0KLSAgLy8gRnJhY3Rpb24KLSAgdmFyIHU4QmxvY2tzID0gYnVmZmVyLmJ5
dGVMZW5ndGggLSB1MzJCbG9ja3MgKiA0OwotICB2YXIgdThWaWV3ID0gbmV3IFVpbnQ4QXJyYXko
YnVmZmVyLCB1MzJCbG9ja3MgKiA0LCB1OEJsb2Nrcyk7Ci0gIGZvciAoaSA9IDA7IGkgPCB1OEJs
b2NrczsgKytpKSB7Ci0gICAgdThWaWV3W2ldID0gYzsKLSAgfQotfQotCi1mdW5jdGlvbiB2ZXJp
ZnlBcnJheUJ1ZmZlcihidWZmZXIsIGV4cGVjdGVkQ2hhcikgewotICB2YXIgaTsKLQotICB2YXIg
ZXhwZWN0ZWRVMzJWYWx1ZSA9IGV4cGVjdGVkQ2hhciAqIDB4MDEwMTAxMDE7Ci0KLSAgdmFyIHUz
MkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVyLmJ5dGVMZW5ndGggLyA0KTsKLSAgdmFyIHUzMlZp
ZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyLCAwLCB1MzJCbG9ja3MpOwotICBmb3IgKGkgPSAw
OyBpIDwgdTMyQmxvY2tzOyArK2kpIHsKLSAgICBpZiAodTMyVmlld1tpXSAhPSBleHBlY3RlZFUz
MlZhbHVlKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICB9Ci0KLSAgdmFyIHU4Qmxv
Y2tzID0gYnVmZmVyLmJ5dGVMZW5ndGggLSB1MzJCbG9ja3MgKiA0OwotICB2YXIgdThWaWV3ID0g
bmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCB1MzJCbG9ja3MgKiA0LCB1OEJsb2Nrcyk7Ci0gIGZvciAo
aSA9IDA7IGkgPCB1OEJsb2NrczsgKytpKSB7Ci0gICAgaWYgKHU4Vmlld1tpXSAhPSBleHBlY3Rl
ZENoYXIpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gdHJ1
ZTsKLX0KLQotZnVuY3Rpb24gdmVyaWZ5QmxvYihjb25maWcsIGJsb2IsIGV4cGVjdGVkQ2hhciwg
ZG9uZUNhbGxiYWNrKSB7Ci0gIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcihibG9iKTsKLSAg
cmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbGVS
ZWFkZXIgRXJyb3I6ICcgKyByZWFkZXIuZXJyb3IubWVzc2FnZSk7Ci0gICAgZG9uZUNhbGxiYWNr
KGJsb2Iuc2l6ZSwgZmFsc2UpOwotICB9Ci0gIHJlYWRlci5vbmxvYWRlbmQgPSBmdW5jdGlvbigp
IHsKLSAgICB2YXIgcmVzdWx0ID0gdmVyaWZ5QXJyYXlCdWZmZXIocmVhZGVyLnJlc3VsdCwgZXhw
ZWN0ZWRDaGFyKTsKLSAgICBkb25lQ2FsbGJhY2soYmxvYi5zaXplLCByZXN1bHQpOwotICB9Ci0g
IHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTsKLX0KLQotZnVuY3Rpb24gdmVyaWZ5QWNr
bm93bGVkZ2VtZW50KGNvbmZpZywgbWVzc2FnZSwgc2l6ZSkgewotICBpZiAodHlwZW9mIG1lc3Nh
Z2UgIT0gJ3N0cmluZycpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQgYWNrIHR5cGU6
ICcgKyB0eXBlb2YgbWVzc2FnZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIHZhciBwYXJz
ZWRBY2sgPSBwYXJzZUludChtZXNzYWdlKTsKLSAgaWYgKGlzTmFOKHBhcnNlZEFjaykpIHsKLSAg
ICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQgYWNrIHZhbHVlOiAnICsgbWVzc2FnZSk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotICB9Ci0gIGlmIChwYXJzZWRBY2sgIT0gc2l6ZSkgewotICAgIGNvbmZp
Zy5hZGRUb0xvZygKLSAgICAgICAgJ0V4cGVjdGVkIGFjayBmb3IgJyArIHNpemUgKyAnQiBidXQg
cmVjZWl2ZWQgb25lIGZvciAnICsgcGFyc2VkQWNrICsKLSAgICAgICAgJ0InKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci0gIH0KLQotICByZXR1cm4gdHJ1ZTsKLX0KLQotZnVuY3Rpb24gY2xvbmVDb25m
aWcob2JqKSB7Ci0gIHZhciBuZXdPYmogPSB7fTsKLSAgZm9yIChrZXkgaW4gb2JqKSB7Ci0gICAg
bmV3T2JqW2tleV0gPSBvYmpba2V5XTsKLSAgfQotICByZXR1cm4gbmV3T2JqOwotfQotCi12YXIg
dGFza3MgPSBbXTsKLQotZnVuY3Rpb24gcnVuTmV4dFRhc2soY29uZmlnKSB7Ci0gIHZhciB0YXNr
ID0gdGFza3Muc2hpZnQoKTsKLSAgaWYgKHRhc2sgPT0gdW5kZWZpbmVkKSB7Ci0gICAgY29uZmln
LmFkZFRvTG9nKCdGaW5pc2hlZCcpOwotICAgIGNsZWFudXAoKTsKLSAgICByZXR1cm47Ci0gIH0K
LSAgdGltZXJJRCA9IHNldFRpbWVvdXQodGFzaywgMCk7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxkTGVn
ZW5kU3RyaW5nKGNvbmZpZykgewotICB2YXIgbGVnZW5kID0gJycKLSAgaWYgKGNvbmZpZy5wcmlu
dFNpemUpCi0gICAgbGVnZW5kID0gJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFRpbWUvbWVzc2FnZSBp
biBtcywgJzsKLSAgbGVnZW5kICs9ICdTcGVlZCBpbiBrQi9zJzsKLSAgcmV0dXJuIGxlZ2VuZDsK
LX0KLQotZnVuY3Rpb24gYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuYykgewotICBmb3IgKHZhciBp
ID0gMDsKLSAgICAgIGkgPCBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArIGNvbmZpZy5udW1J
dGVyYXRpb25zOyArK2kpIHsKLSAgICB2YXIgbXVsdGlwbGllckluZGV4ID0gMDsKLSAgICBmb3Ig
KHZhciBzaXplID0gY29uZmlnLnN0YXJ0U2l6ZTsKLSAgICAgICAgIHNpemUgPD0gY29uZmlnLnN0
b3BUaHJlc2hvbGQ7Ci0gICAgICAgICArK211bHRpcGxpZXJJbmRleCkgewotICAgICAgdmFyIHRh
c2sgPSBzdGVwRnVuYy5iaW5kKAotICAgICAgICAgIG51bGwsCi0gICAgICAgICAgc2l6ZSwKLSAg
ICAgICAgICBjb25maWcsCi0gICAgICAgICAgaSA8IGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25z
KTsKLSAgICAgIHRhc2tzLnB1c2godGFzayk7Ci0gICAgICB2YXIgbXVsdGlwbGllciA9IGNvbmZp
Zy5tdWx0aXBsaWVyc1sKLSAgICAgICAgbXVsdGlwbGllckluZGV4ICUgY29uZmlnLm11bHRpcGxp
ZXJzLmxlbmd0aF07Ci0gICAgICBpZiAobXVsdGlwbGllciA8PSAxKSB7Ci0gICAgICAgIGNvbmZp
Zy5hZGRUb0xvZygnSW52YWxpZCBtdWx0aXBsaWVyICcgKyBtdWx0aXBsaWVyKTsKLSAgICAgICAg
Y29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBt
dWx0aXBsZXInKTsKLSAgICAgIH0KLSAgICAgIHNpemUgPSBNYXRoLmNlaWwoc2l6ZSAqIG11bHRp
cGxpZXIpOwotICAgIH0KLSAgfQotfQotCi1mdW5jdGlvbiBhZGRSZXN1bHRSZXBvcnRpbmdUYXNr
KGNvbmZpZywgdGl0bGUpIHsKLSAgdGFza3MucHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJ
RCA9IG51bGw7Ci0gICAgICBjb25maWcuYWRkVG9TdW1tYXJ5KHRpdGxlKTsKLSAgICAgIHJlcG9y
dEF2ZXJhZ2VEYXRhKGNvbmZpZyk7Ci0gICAgICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gICAgICBy
dW5OZXh0VGFzayhjb25maWcpOwotICB9KTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNobWFyayhj
b25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdTZW5kIGJlbmNobWFyaycpOwotICBjb25maWcu
YWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBbXTsKLSAg
Y2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1hcmtTdGVw
KTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJlbmNobWFyayAnICsg
Z2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQot
Ci1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRkVG9Mb2co
J1JlY2VpdmUgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmlu
Zyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0gIGFk
ZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRSZXBvcnRp
bmdUYXNrKGNvbmZpZywKLSAgICAgICdSZWNlaXZlIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3Ry
aW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiBz
dG9wKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0gIHRpbWVySUQgPSBudWxs
OwotICB0YXNrcyA9IFtdOwotICBjb25maWcuYWRkVG9Mb2coJ1N0b3BwZWQnKTsKLSAgY2xlYW51
cCgpOwotfQotCi12YXIgd29ya2VyOwotCi1mdW5jdGlvbiBpbml0V29ya2VyKGNvbm5lY3Rpb25U
eXBlLCBvcmlnaW4pIHsKLSAgdmFyIHNjcmlwdFBhdGggPQotICAgIGNvbm5lY3Rpb25UeXBlID09
PSAnV2ViU29ja2V0JyA/ICcvYmVuY2htYXJrLmpzJyA6Ci0gICAgY29ubmVjdGlvblR5cGUgPT09
ICdYSFInID8gJy94aHJfYmVuY2htYXJrLmpzJyA6Ci0gICAgJy9mZXRjaF9iZW5jaG1hcmsuanMn
OyAvLyBjb25uZWN0aW9uVHlwZSA9PT0gJ2ZldGNoJwotICB3b3JrZXIgPSBuZXcgV29ya2VyKG9y
aWdpbiArIHNjcmlwdFBhdGgpOwotfQotCi1mdW5jdGlvbiBkb0FjdGlvbihjb25maWcsIGlzV2lu
ZG93VG9Xb3JrZXIsIGFjdGlvbikgewotICBpZiAoaXNXaW5kb3dUb1dvcmtlcikgewotICAgIHdv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihhZGRUb0xvZywgYWRkVG9TdW1tYXJ5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlVmFsdWUsIG5vdGlmeUFib3J0LCBtZXNz
YWdlKSB7Ci0gICAgICBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdhZGRUb0xvZycpCi0gICAg
ICAgIGFkZFRvTG9nKG1lc3NhZ2UuZGF0YS5kYXRhKTsKLSAgICAgIGVsc2UgaWYgKG1lc3NhZ2Uu
ZGF0YS50eXBlID09PSAnYWRkVG9TdW1tYXJ5JykKLSAgICAgICAgYWRkVG9TdW1tYXJ5KG1lc3Nh
Z2UuZGF0YS5kYXRhKTsKLSAgICAgIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnbWVh
c3VyZVZhbHVlJykKLSAgICAgICAgbWVhc3VyZVZhbHVlKG1lc3NhZ2UuZGF0YS5kYXRhKTsKLSAg
ICAgIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnbm90aWZ5QWJvcnQnKQotICAgICAg
ICBub3RpZnlBYm9ydCgpOwotICAgIH0uYmluZCh1bmRlZmluZWQsIGNvbmZpZy5hZGRUb0xvZywg
Y29uZmlnLmFkZFRvU3VtbWFyeSwKLSAgICAgICAgICAgY29uZmlnLm1lYXN1cmVWYWx1ZSwgY29u
ZmlnLm5vdGlmeUFib3J0KTsKLSAgICBjb25maWcuYWRkVG9Mb2cgPSB1bmRlZmluZWQ7Ci0gICAg
Y29uZmlnLmFkZFRvU3VtbWFyeSA9IHVuZGVmaW5lZDsKLSAgICBjb25maWcubWVhc3VyZVZhbHVl
ID0gdW5kZWZpbmVkOwotICAgIGNvbmZpZy5ub3RpZnlBYm9ydCA9IHVuZGVmaW5lZDsKLSAgICB3
b3JrZXIucG9zdE1lc3NhZ2Uoe3R5cGU6IGFjdGlvbiwgY29uZmlnOiBjb25maWd9KTsKLSAgfSBl
bHNlIHsKLSAgICBpZiAoYWN0aW9uID09PSAnc2VuZEJlbmNobWFyaycpCi0gICAgICBzZW5kQmVu
Y2htYXJrKGNvbmZpZyk7Ci0gICAgZWxzZSBpZiAoYWN0aW9uID09PSAncmVjZWl2ZUJlbmNobWFy
aycpCi0gICAgICByZWNlaXZlQmVuY2htYXJrKGNvbmZpZyk7Ci0gICAgZWxzZSBpZiAoYWN0aW9u
ID09PSAnYmF0Y2hCZW5jaG1hcmsnKQotICAgICAgYmF0Y2hCZW5jaG1hcmsoY29uZmlnKTsKLSAg
ICBlbHNlIGlmIChhY3Rpb24gPT09ICdzdG9wJykKLSAgICAgIHN0b3AoY29uZmlnKTsKLSAgfQot
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfbWFpbi5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91
dGlsX21haW4uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MWVkNjNmYjVkNzQ5
ZDBlZDIxODFiNWFhYmNjZTJlOTM2NWI4N2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfbWFpbi5qcworKysgL2Rldi9udWxs
CkBAIC0xLDY1ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJ
TkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3Vy
Y2UvbGljZW5zZXMvYnNkCi0KLS8vIFV0aWxpdGllcyBmb3IgZXhhbXBsZSBhcHBsaWNhdGlvbnMg
KGZvciB0aGUgbWFpbiB0aHJlYWQgb25seSkuCi0KLXZhciBsb2dCb3ggPSBudWxsOwotdmFyIHF1
ZXVlZExvZyA9ICcnOwotCi12YXIgc3VtbWFyeUJveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIHF1ZXVl
TG9nKGxvZykgewotICBxdWV1ZWRMb2cgKz0gbG9nICsgJ1xuJzsKLX0KLQotZnVuY3Rpb24gYWRk
VG9Mb2cobG9nKSB7Ci0gIGxvZ0JveC52YWx1ZSArPSBxdWV1ZWRMb2c7Ci0gIHF1ZXVlZExvZyA9
ICcnOwotICBsb2dCb3gudmFsdWUgKz0gbG9nICsgJ1xuJzsKLSAgbG9nQm94LnNjcm9sbFRvcCA9
IDEwMDAwMDA7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRvU3VtbWFyeShsb2cpIHsKLSAgc3VtbWFyeUJv
eC52YWx1ZSArPSBsb2cgKyAnXG4nOwotICBzdW1tYXJ5Qm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7
Ci19Ci0KLS8vIHZhbHVlOiBleGVjdXRpb24gdGltZSBpbiBtaWxsaXNlY29uZHMuCi0vLyBjb25m
aWcubWVhc3VyZVZhbHVlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgaW4gUGVyZm9ybWFuY2UgVGVz
dHMuCi0vLyBEbyBub3RoaW5nIGhlcmUgaW4gbm9uLVBlcmZvcm1hbmNlVGVzdC4KLWZ1bmN0aW9u
IG1lYXN1cmVWYWx1ZSh2YWx1ZSkgewotfQotCi0vLyBjb25maWcubm90aWZ5QWJvcnQgaXMgY2Fs
bGVkIHdoZW4gdGhlIGJlbmNobWFyayBmYWlsZWQgYW5kIGFib3J0ZWQsIGFuZAotLy8gaW50ZW5k
ZWQgdG8gYmUgdXNlZCBpbiBQZXJmb3JtYW5jZSBUZXN0cy4KLS8vIERvIG5vdGhpbmcgaGVyZSBp
biBub24tUGVyZm9ybWFuY2VUZXN0LgotZnVuY3Rpb24gbm90aWZ5QWJvcnQoKSB7Ci19Ci0KLWZ1
bmN0aW9uIGdldEludEZyb21JbnB1dChpZCkgewotICByZXR1cm4gcGFyc2VJbnQoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlKTsKLX0KLQotZnVuY3Rpb24gZ2V0U3RyaW5nRnJvbVJh
ZGlvQm94KG5hbWUpIHsKLSAgdmFyIGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVu
Y2htYXJrX2Zvcm0nKVtuYW1lXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsg
KytpKQotICAgIGlmIChsaXN0Lml0ZW0oaSkuY2hlY2tlZCkKLSAgICAgIHJldHVybiBsaXN0Lml0
ZW0oaSkudmFsdWU7Ci0gIHJldHVybiB1bmRlZmluZWQ7Ci19Ci1mdW5jdGlvbiBnZXRCb29sRnJv
bUNoZWNrQm94KGlkKSB7Ci0gIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hl
Y2tlZDsKLX0KLQotZnVuY3Rpb24gZ2V0SW50QXJyYXlGcm9tSW5wdXQoaWQpIHsKLSAgdmFyIHN0
ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlLnNwbGl0KCcsJyk7Ci0g
IHJldHVybiBzdHJBcnJheS5tYXAoZnVuY3Rpb24oc3RyKSB7IHJldHVybiBwYXJzZUludChzdHIs
IDEwKTsgfSk7Ci19Ci0KLWZ1bmN0aW9uIGdldEZsb2F0QXJyYXlGcm9tSW5wdXQoaWQpIHsKLSAg
dmFyIHN0ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlLnNwbGl0KCcs
Jyk7Ci0gIHJldHVybiBzdHJBcnJheS5tYXAocGFyc2VGbG9hdCk7Ci19CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZGNmNDQxNzI5OWY5YzlkNjFkZWVmY2Ix
YTU5NWFlYWIwNWQ1NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3V0aWxfd29ya2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMjAg
KzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z
dHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9y
IGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNl
cy9ic2QKLQotLy8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIHRoZSB3
b3JrZXIgdGhyZWFkcyBvbmx5KS4KLQotb25tZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHsK
LSAgdmFyIGNvbmZpZyA9IG1lc3NhZ2UuZGF0YS5jb25maWc7Ci0gIGNvbmZpZy5hZGRUb0xvZyA9
IGZ1bmN0aW9uKHRleHQpIHsKLSAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9Mb2cnLCBk
YXRhOiB0ZXh0fSk7IH07Ci0gIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBmdW5jdGlvbih0ZXh0KSB7
Ci0gICAgICBwb3N0TWVzc2FnZSh7dHlwZTogJ2FkZFRvU3VtbWFyeScsIGRhdGE6IHRleHR9KTsg
fTsKLSAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgICBwb3N0
TWVzc2FnZSh7dHlwZTogJ21lYXN1cmVWYWx1ZScsIGRhdGE6IHZhbHVlfSk7IH07Ci0gIGNvbmZp
Zy5ub3RpZnlBYm9ydCA9IGZ1bmN0aW9uKCkgeyBwb3N0TWVzc2FnZSh7dHlwZTogJ25vdGlmeUFi
b3J0J30pOyB9OwotCi0gIGRvQWN0aW9uKGNvbmZpZywgZmFsc2UsIG1lc3NhZ2UuZGF0YS50eXBl
KTsKLX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmOTNi
OGI2OTU1YjA2MjVhNjExNDdkM2MzM2IyN2U5ZTliNTVkN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0
X2hhbmRzaGFrZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfd3NoLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNoX3dzaC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsu
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
Y2xvc2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2NvbnNvbGUuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9j
b29raWVfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2VjaG9fbm9leHRfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fd3NoLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2V2ZW50c291cmNlLmNnaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNo
bWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oc3RzX3dzaC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvb3Jp
Z2luX2NoZWNrX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL3B5d2Vic29ja2V0LmNvbmYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS91dGlsLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfbWFpbi5qcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS91dGlsX3dvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRf
bG9nZ2VyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUveGhyX2JlbmNobWFyay5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
MDBkMjBjOWNjYjRhYmVjZjIzOWM3NWIxODU3N2IwZDFmZjExYzkyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJr
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTIgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIw
MTMsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1M
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+WE1MSHR0cFJlcXVlc3QgYmVu
Y2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Inhocl9iZW5jaG1hcmsu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBhZGRyZXNzQm94ID0gbnVsbDsKLQotZnVuY3Rp
b24gZ2V0Q29uZmlnKCkgewotICByZXR1cm4gewotICAgIHByZWZpeFVybDogYWRkcmVzc0JveC52
YWx1ZSwKLSAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6ZScpLAot
ICAgIG51bVhIUnM6IGdldEludEZyb21JbnB1dCgnbnVtWEhScycpLAotICAgIGFzeW5jOiBnZXRC
b29sRnJvbUNoZWNrQm94KCdhc3luYycpLAotICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdl
cy4KLSAgICBudW1JdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwK
LSAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJh
dGlvbnMnKSwKLSAgICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyksCi0g
ICAgLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRo
aXMgdGhyZXNob2xkLgotICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRo
cmVzaG9sZCcpLAotICAgIG11bHRpcGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0KCdtdWx0
aXBsaWVycycpLAotICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRh
dGEnKSwKLSAgICBtZXRob2RBbmRDYWNoZTogZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdtZXRob2Rh
bmRjYWNoZScpLAotICAgIGFkZFRvTG9nOiBhZGRUb0xvZywKLSAgICBhZGRUb1N1bW1hcnk6IGFk
ZFRvU3VtbWFyeSwKLSAgICBtZWFzdXJlVmFsdWU6IG1lYXN1cmVWYWx1ZSwKLSAgICBub3RpZnlB
Ym9ydDogbm90aWZ5QWJvcnQKLSAgfTsKLX0KLQotZnVuY3Rpb24gb25TZW5kQmVuY2htYXJrKCkg
ewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0gIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0
cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOwotICBkb0FjdGlvbihjb25maWcsIGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc2VuZEJlbmNobWFyaycpOwotfQotCi1mdW5j
dGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsK
LSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlwZXJhZGlv
Jyk7Ci0gIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdy
ZWNlaXZlQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Ci0g
IHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJv
bUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Ci19Ci0KLWZ1bmN0aW9uIG9u
U3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotICBkb0FjdGlvbihjb25maWcs
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOwotfQotCi1mdW5jdGlvbiBp
bml0KCkgewotICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3Mn
KTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOwotCi0gIHN1bW1h
cnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOwotCi0gIC8vIFNwZWNp
YWwgYWRkcmVzcyBvZiBweXdlYnNvY2tldCBmb3IgWEhSIGJlbmNobWFyay4KLSAgYWRkcmVzc0Jv
eC52YWx1ZSA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOwotCi0gIGFkZFRv
TG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotICBhZGRUb1N1
bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAgaW5p
dFdvcmtlcignWEhSJywgJycpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
ImluaXQoKSI+Ci0KLTxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+Ci0gIHVybCBwcmVmaXggPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0eXBlPSJi
dXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1
dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5jaG1h
cmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0ib25C
YXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3AiIG9u
Y2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5QcmludCBz
aXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+VmVy
aWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIiPgot
ICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0iYXN5bmMiPkFz
eW5jPC9sYWJlbD48YnI+Ci0gIChSZWNlaXZlICZhbXA7JmFtcDsgTm9uLVdvcmtlciAmYW1wOyZh
bXA7IFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSBzcGVjKQotCi0gIDxici8+Ci0KLSAgUGFyYW1l
dGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtIFhI
UnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtWEhScyIgdmFsdWU9
IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIGl0ZXJh
dGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRlcmF0aW9u
cyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVy
IG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQi
IGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KLSAgICA8L3RyPgotICAg
IDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgotICAgIDwvdHI+Ci0gICAg
PHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAg
PC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TXVsdGlwbGllcnM8L3RkPgotICAgICAgPHRkPjxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3RkPgotICAg
IDwvdHI+Ci0gIDwvdGFibGU+Ci0KLSAgU2V0IGRhdGEgdHlwZQotICA8aW5wdXQgdHlwZT0icmFk
aW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBl
cmFkaW90ZXh0IgotICAgICAgICAgdmFsdWU9InRleHQiCi0gICAgICAgICBjaGVja2VkPjxsYWJl
bCBmb3I9ImRhdGF0eXBlcmFkaW90ZXh0Ij50ZXh0PC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9InJh
ZGlvIgotICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlw
ZXJhZGlvYmxvYiIKLSAgICAgICAgIHZhbHVlPSJibG9iIgotICAgICAgICAgPjxsYWJlbCBmb3I9
ImRhdGF0eXBlcmFkaW9ibG9iIj5ibG9iPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgot
ICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKLSAgICAgICAgIGlkPSJkYXRhdHlwZXJhZGlv
YXJyYXlidWZmZXIiCi0gICAgICAgICB2YWx1ZT0iYXJyYXlidWZmZXIiCi0gICAgICAgICA+PGxh
YmVsIGZvcj0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIj5hcnJheWJ1ZmZlcjwvbGFiZWw+Ci0K
LSAgPGJyPgotICBTZXQgSFRUUCBtZXRob2QgYW5kIGNhY2hlIGNvbnRyb2wKLSAgPGlucHV0IHR5
cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2FjaGUiCi0gICAgICAgICBpZD0i
bWV0aG9kYW5kY2FjaGVQT1NUIgotICAgICAgICAgdmFsdWU9IlBPU1QiCi0gICAgICAgICBjaGVj
a2VkPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlUE9TVCI+UE9TVCAoTm8gQ2FjaGUpPC9sYWJl
bD4KLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2FjaGUi
Ci0gICAgICAgICBpZD0ibWV0aG9kYW5kY2FjaGVHRVROT0NBQ0hFIgotICAgICAgICAgdmFsdWU9
IkdFVC1OT0NBQ0hFIgotICAgICAgICAgPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlR0VUTk9D
QUNIRSI+R0VUIChObyBDYWNoZSk8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAg
ICAgICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKLSAgICAgICAgIGlkPSJtZXRob2RhbmRjYWNoZUdF
VENBQ0hFIgotICAgICAgICAgdmFsdWU9IkdFVC1DQUNIRSIKLSAgICAgICAgID48bGFiZWwgZm9y
PSJtZXRob2RhbmRjYWNoZUdFVENBQ0hFIj5HRVQgKENhY2hlKTwvbGFiZWw+Ci0gIDxicj4KLSAg
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogODAlIj4oQ2FjaGUgY29udHJvbDogcmVjZWl2ZSBvbmx5
LiBDYWNoZSBpcyB2YWxpZCBmb3IgMTAgc2Vjb25kcy4gVGhpcyBjb25maWcgY29udHJvbHMgQ2Fj
aGUtY29udHJvbCBIVFRQIHJlc3BvbnNlIGhlYWRlci4gQnJvd3NlcnMgbWlnaHQgbm90IGNhY2hl
IGRhdGEgZS5nLiB3aGVuIGl0IGlzIGxhcmdlKTwvc3Bhbj4KLTwvZm9ybT4KLQotPGRpdiBpZD0i
bG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0eWxlPSJ3
aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotPGRpdiBpZD0ic3VtbWFy
eV9kaXYiPgotICBTdW1tYXJ5Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9InN1bW1hcnkiIHJvd3M9
IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQot
PGRpdiBpZD0ibm90ZV9kaXYiPgotICBOb3RlOgotICA8dWw+Ci0gICAgPGxpPkVmZmVjdCBvZiBS
VFQgYW5kIHRpbWUgc3BlbnQgZm9yIEFycmF5QnVmZmVyIGNyZWF0aW9uIGluIHJlY2VpdmUgYmVu
Y2htYXJrcyBhcmUgbm90IGVsaW1pbmF0ZWQuPC9saT4KLSAgICA8bGk+VGhlIFN0ZGRldiBjb2x1
bW4gc2hvd3MgTmFOIHdoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGlzIHNldCB0byAxLjwv
bGk+Ci0gIDwvdWw+Ci08L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRhOTdlOGZiODNlOTQ4Yzg1ZjlmMDIx
MDIxZGM3NDc5MzA1ZTZjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5qcworKysgL2Rldi9udWxsCkBAIC0x
LDI5MiArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg
QlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZp
bGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xp
Y2Vuc2VzL2JzZAotCi12YXIgaXNXb3JrZXIgPSB0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gInVu
ZGVmaW5lZCI7Ci0KLWlmIChpc1dvcmtlcikgewotICAvLyBSdW5uaW5nIG9uIGEgd29ya2VyCi0g
IGltcG9ydFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3JrZXIuanMnKTsKLX0KLQotLy8gTmFt
ZXNwYWNlIGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVuY2htYXJrID0ge307Ci1iZW5jaG1h
cmsuc3RhcnRUaW1lSW5NcyA9IDA7Ci0KLXZhciB4aHJzID0gW107Ci0KLXZhciB0aW1lcklEID0g
bnVsbDsKLQotZnVuY3Rpb24gZGVzdHJveUFsbFhIUnMoKSB7Ci0gIGZvciAodmFyIGkgPSAwOyBp
IDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHhocnNbaV0ub25yZWFkeXN0YXRlY2hhbmdlID0g
bnVsbDsKLSAgICAvLyBBYm9ydCBYSFJzIGlmIHRoZXkgYXJlIG5vdCB5ZXQgRE9ORSBzdGF0ZS4K
LSAgICAvLyBDYWxsaW5nIGFib3J0KCkgaGVyZSAoaS5lLiBpbiBvbnJlYWR5c3RhdGVjaGFuZ2Ug
aGFuZGxlcikgCi0gICAgLy8gY2F1c2VzICJOZXR3b3JrRXJyb3IiIG1lc3NhZ2VzIGluIERldlRv
b2xzIGluIHN5bmMgbW9kZSwKLSAgICAvLyBldmVuIGlmIGl0IGlzIGFmdGVyIHRyYW5zaXRpb24g
dG8gRE9ORSBzdGF0ZS4KLSAgICBpZiAoeGhyc1tpXS5yZWFkeVN0YXRlICE9IFhNTEh0dHBSZXF1
ZXN0LkRPTkUpCi0gICAgICB4aHJzW2ldLmFib3J0KCk7Ci0gIH0KLSAgeGhycyA9IFtdOwotICAv
LyBnYygpIG1pZ2h0IGJlIG5lZWRlZCBmb3IgQ2hyb21lL0Jsb2IKLX0KLQotZnVuY3Rpb24gc2Vu
ZEJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dhcm1VcCkgewotICB0aW1lcklEID0gbnVs
bDsKLQotICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IG51bGw7Ci0gIHZhciB0b3RhbFNpemUg
PSAwOwotICB2YXIgdG90YWxSZXBsaWVkID0gMDsKLQotICB2YXIgb25SZWFkeVN0YXRlQ2hhbmdl
SGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhpcy5yZWFkeVN0YXRlICE9IHRoaXMu
RE9ORSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnN0YXR1cyAhPSAy
MDApIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyArIHRoaXMuc3Rh
dHVzICsgJyknKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICBjb25maWcubm90aWZ5
QWJvcnQoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY29uZmlnLnZlcmlmeURh
dGEgJiYKLSAgICAgICAgIXZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIHRoaXMucmVzcG9u
c2UsIHNpemUpKSB7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5vdGlm
eUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IHNp
emU7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAg
ICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAgICBkZXN0
cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sgYW5kIHdhcm4gaWYgcHJveHkgaXMgZW5hYmxlZC4KLSAg
ICBpZiAodGhpcy5nZXRSZXNwb25zZUhlYWRlcignVmlhJykgIT09IG51bGwpIHsKLSAgICAgIGNv
bmZpZy5hZGRUb0xvZygnV0FSTklORzogcHJveHkgc2VlbXMgZW5hYmxlZC4nKTsKLSAgICB9Ci0K
LSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcywgdG90YWxTaXplLAotICAgICAgICBpc1dhcm1VcCk7Ci0KLSAgICBkZXN0cm95QWxs
WEhScygpOwotCi0gICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfTsKLQotICBmb3IgKHZhciBp
ID0gMDsgaSA8IGNvbmZpZy5udW1YSFJzOyArK2kpIHsKLSAgICB2YXIgeGhyID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7Ci0gICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG9uUmVhZHlTdGF0ZUNo
YW5nZUhhbmRsZXI7Ci0gICAgeGhycy5wdXNoKHhocik7Ci0gIH0KLQotICB2YXIgZGF0YUFycmF5
ID0gW107Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
dmFyIGRhdGEgPSBudWxsOwotICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2FycmF5YnVmZmVy
JyB8fAotICAgICAgICBjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICBkYXRhID0g
bmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAgICBmaWxsQXJyYXlCdWZmZXIoZGF0YSwgMHg2
MSk7Ci0KLSAgICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICAgIGRh
dGEgPSBuZXcgQmxvYihbZGF0YV0pOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBkYXRh
ID0gcmVwZWF0U3RyaW5nKCdhJywgc2l6ZSk7Ci0gICAgfQotCi0gICAgZGF0YUFycmF5LnB1c2go
ZGF0YSk7Ci0gIH0KLQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1w
KCk7Ci0gIHRvdGFsU2l6ZSA9IHNpemUgKiB4aHJzLmxlbmd0aDsKLQotICBmb3IgKHZhciBpID0g
MDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IGRhdGFBcnJheVtpXTsK
LSAgICB2YXIgeGhyID0geGhyc1tpXTsKLSAgICB4aHIub3BlbignUE9TVCcsIGNvbmZpZy5wcmVm
aXhVcmwgKyAnX3NlbmQnLCBjb25maWcuYXN5bmMpOwotICAgIHhoci5zZW5kKGRhdGEpOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZywgaXNXYXJt
VXApIHsKLSAgdGltZXJJRCA9IG51bGw7Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBu
dWxsOwotICB2YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAg
dmFyIGNoZWNrUmVzdWx0QW5kQ29udGludWUgPSBmdW5jdGlvbiAoYnl0ZXNSZWNlaXZlZCwgdmVy
aWZpY2F0aW9uUmVzdWx0KSB7Ci0gICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQpIHsKLSAgICAg
IGNvbmZpZy5hZGRUb0xvZygnUmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAg
ZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBieXRlc1JlY2VpdmVkOwotCi0gICAg
aWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlmIChiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0gICAgICBjb25maWcu
YWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwotICAgICAgZGVzdHJveUFsbFhIUnMo
KTsKLSAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRp
bWVJbk1zLCB0b3RhbFNpemUsCi0gICAgICAgIGlzV2FybVVwKTsKLQotICAgIGRlc3Ryb3lBbGxY
SFJzKCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9Ci0KLSAgdmFyIG9uUmVhZHlT
dGF0ZUNoYW5nZUhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKHRoaXMucmVhZHlTdGF0
ZSAhPSB0aGlzLkRPTkUpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy5z
dGF0dXMgIT0gMjAwKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAoc3RhdHVzPScg
KyB0aGlzLnN0YXR1cyArICcpJyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgY29u
ZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ2hlY2sg
YW5kIHdhcm4gaWYgcHJveHkgaXMgZW5hYmxlZC4KLSAgICBpZiAodGhpcy5nZXRSZXNwb25zZUhl
YWRlcignVmlhJykgIT09IG51bGwpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnV0FSTklORzog
cHJveHkgc2VlbXMgZW5hYmxlZC4nKTsKLSAgICB9Ci0KLSAgICB2YXIgYnl0ZXNSZWNlaXZlZCA9
IC0xOwotICAgIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYXJyYXlidWZmZXInKSB7Ci0gICAg
ICBieXRlc1JlY2VpdmVkID0gdGhpcy5yZXNwb25zZS5ieXRlTGVuZ3RoOwotICAgIH0gZWxzZSBp
ZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAgICBieXRlc1JlY2VpdmVkID0g
dGhpcy5yZXNwb25zZS5zaXplOwotICAgIH0gZWxzZSB7Ci0gICAgICBieXRlc1JlY2VpdmVkID0g
dGhpcy5yZXNwb25zZS5sZW5ndGg7Ci0gICAgfQotICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNp
emUpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKwotICAgICAg
ICAgICdCIGJ1dCByZWNlaXZlZCAnICsgYnl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBkZXN0
cm95QWxsWEhScygpOwotICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Ci0gICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZlcicpIHsK
LSAgICAgIGNoZWNrUmVzdWx0QW5kQ29udGludWUoYnl0ZXNSZWNlaXZlZCwKLSAgICAgICAgICAh
Y29uZmlnLnZlcmlmeURhdGEgfHwgdmVyaWZ5QXJyYXlCdWZmZXIodGhpcy5yZXNwb25zZSwgMHg2
MSkpOwotICAgIH0gZWxzZSBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2Jsb2InKSB7Ci0gICAg
ICBpZiAoY29uZmlnLnZlcmlmeURhdGEpCi0gICAgICAgIHZlcmlmeUJsb2IoY29uZmlnLCB0aGlz
LnJlc3BvbnNlLCAweDYxLCBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKTsKLSAgICAgIGVsc2UKLSAg
ICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLCB0cnVlKTsKLSAgICB9
IGVsc2UgewotICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZSgKLSAgICAgICAgICBieXRlc1Jl
Y2VpdmVkLAotICAgICAgICAgICFjb25maWcudmVyaWZ5RGF0YSB8fAotICAgICAgICAgICAgICB0
aGlzLnJlc3BvbnNlID09IHJlcGVhdFN0cmluZygnYScsIHRoaXMucmVzcG9uc2UubGVuZ3RoKSk7
Ci0gICAgfQotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsr
aSkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub25yZWFk
eXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlcjsKLSAgICB4aHJzLnB1c2go
eGhyKTsKLSAgfQotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7
Ci0gIHRvdGFsU2l6ZSA9IHNpemUgKiB4aHJzLmxlbmd0aDsKLQotICBmb3IgKHZhciBpID0gMDsg
aSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgeGhyID0geGhyc1tpXTsKLSAgICBpZiAo
Y29uZmlnLm1ldGhvZEFuZENhY2hlID09PSAnR0VULU5PQ0FDSEUnKSB7Ci0gICAgICB4aHIub3Bl
bignR0VUJywgY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZV9nZXRub2NhY2hlPycgKyBzaXpl
LAotICAgICAgICAgIGNvbmZpZy5hc3luYyk7Ci0gICAgICB4aHIucmVzcG9uc2VUeXBlID0gY29u
ZmlnLmRhdGFUeXBlOwotICAgICAgeGhyLnNlbmQoKTsKLSAgICB9IGVsc2UgaWYgKGNvbmZpZy5t
ZXRob2RBbmRDYWNoZSA9PT0gJ0dFVC1DQUNIRScpIHsKLSAgICAgIHhoci5vcGVuKCdHRVQnLCBj
b25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlX2dldGNhY2hlPycgKyBzaXplLAotICAgICAgICAg
IGNvbmZpZy5hc3luYyk7Ci0gICAgICB4aHIucmVzcG9uc2VUeXBlID0gY29uZmlnLmRhdGFUeXBl
OwotICAgICAgeGhyLnNlbmQoKTsKLSAgICB9IGVsc2UgewotICAgICAgeGhyLm9wZW4oJ1BPU1Qn
LCBjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlJywgY29uZmlnLmFzeW5jKTsKLSAgICAgIHho
ci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5cGU7Ci0gICAgICB4aHIuc2VuZChzaXplICsg
JyBub25lJyk7Ci0gICAgfQotICB9Ci19Ci0KLQotZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNv
bmZpZykgewotICByZXR1cm4gJygnICsgY29uZmlnLmRhdGFUeXBlICsKLSAgICAnLCB2ZXJpZnlE
YXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0gICAgJywgJyArIChpc1dvcmtlciA/ICdXb3Jr
ZXInIDogJ01haW4nKSArCi0gICAgJywgJyArIChjb25maWcuYXN5bmMgPyAnQXN5bmMnIDogJ1N5
bmMnKSArCi0gICAgJywgbnVtWEhScz0nICsgY29uZmlnLm51bVhIUnMgKwotICAgICcsIG51bUl0
ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRpb25zICsKLSAgICAnLCBudW1XYXJtVXBJdGVy
YXRpb25zPScgKyBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArCi0gICAgJyknOwotfQotCi1m
dW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0KHRpbWVySUQp
OwotICBkZXN0cm95QWxsWEhScygpOwotCi0gIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci19Ci0KLWZ1
bmN0aW9uIGJhdGNoQmVuY2htYXJrKG9yaWdpbmFsQ29uZmlnKSB7Ci0gIG9yaWdpbmFsQ29uZmln
LmFkZFRvTG9nKCdCYXRjaCBiZW5jaG1hcmsnKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2
ZXJhZ2VEYXRhKCk7Ci0KLSAgdmFyIGRhdGFUeXBlcyA9IFsndGV4dCcsICdibG9iJywgJ2FycmF5
YnVmZmVyJ107Ci0gIHZhciBzdGVwRnVuY3MgPSBbc2VuZEJlbmNobWFya1N0ZXAsIHJlY2VpdmVC
ZW5jaG1hcmtTdGVwXTsKLSAgdmFyIG5hbWVzID0gWydTZW5kJywgJ1JlY2VpdmUnXTsKLSAgdmFy
IGFzeW5jID0gW3RydWUsIGZhbHNlXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGVwRnVuY3Mu
bGVuZ3RoOyArK2kpIHsKLSAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRhdGFUeXBlcy5sZW5ndGg7
ICsraikgewotICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBhc3luYy5sZW5ndGg7ICsraykgewot
ICAgICAgICB2YXIgY29uZmlnID0gY2xvbmVDb25maWcob3JpZ2luYWxDb25maWcpOwotICAgICAg
ICBjb25maWcuZGF0YVR5cGUgPSBkYXRhVHlwZXNbal07Ci0gICAgICAgIGNvbmZpZy5hc3luYyA9
IGFzeW5jW2tdOwotCi0gICAgICAgIC8vIFJlY2VpdmUgJiYgTm9uLVdvcmtlciAmJiBTeW5jIGlz
IG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHNwZWMKLSAgICAgICAgaWYgKHN0ZXBGdW5jc1tpXSA9PT0g
cmVjZWl2ZUJlbmNobWFya1N0ZXAgJiYgIWlzV29ya2VyICYmCi0gICAgICAgICAgICAhY29uZmln
LmFzeW5jKQotICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGFkZFRhc2tzKGNvbmZpZywg
c3RlcEZ1bmNzW2ldKTsKLSAgICAgICAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0g
ICAgICAgICAgICBuYW1lc1tpXSArICcgYmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29u
ZmlnKSk7Ci0gICAgICB9Ci0gICAgfQotICB9Ci0KLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsK
LX0KLQotZnVuY3Rpb24gY2xlYW51cCgpIHsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94
aHJfZXZlbnRfbG9nZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGRiMGZiZWM0OTQ2NTA5MTMyOWJkYWY0
NzE3ZDcyMTk4ODZhZDZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwxMjMgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLQotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUKLWxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmls
ZSBvciBhdAotaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5z
ZXMvYnNkCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5YSFIgZXZlbnQgbG9nZ2VyPC90
aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZh
ciBldmVudHMgPSBbXTsKLXZhciBzdGFydFRpbWUgPSAwOwotCi1mdW5jdGlvbiBydW4oKSB7Ci0g
IGV2ZW50cyA9IFtdOwotICBzdGFydFRpbWUgPSBEYXRlLm5vdygpOwotCi0gIGZ1bmN0aW9uIHB1
c2hUb0xvZyh0eXBlKSB7Ci0gICAgdmFyIHRpbWUgPSBEYXRlLm5vdygpOwotICAgIGlmIChldmVu
dHMubGVuZ3RoICE9IDAgJiYgdHlwZSA9PT0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS50eXBl
KSB7Ci0gICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmNvdW50ICs9IDE7Ci0gICAgICBl
dmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmxhc3QgPSB0aW1lOwotICAgIH0gZWxzZSB7Ci0gICAg
ICBldmVudHMucHVzaCh7dHlwZTogdHlwZSwgY291bnQ6IDEsIGZpcnN0OiB0aW1lLCBsYXN0OiB0
aW1lfSk7Ci0gICAgfQotICB9Ci0KLSAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwot
Ci0gIGZ1bmN0aW9uIGdldFByb2dyZXNzRXZlbnREdW1wKGUpIHsKLSAgICByZXR1cm4gJygnICsg
ZS5sZW5ndGhDb21wdXRhYmxlICsgJywgJyArIGUubG9hZGVkICsgJywgJyArIGUudG90YWwgKyAn
KSc7Ci0gIH0KLQotICB2YXIgZHVtcFByb2dyZXNzRXZlbnQgPSBnZXRCb29sRnJvbUNoZWNrQm94
KCdkdW1wcHJvZ3Jlc3NldmVudCcpOwotCi0gIGZ1bmN0aW9uIGxvZyhlKSB7Ci0gICAgdmFyIHR5
cGUgPSBlLnR5cGU7Ci0gICAgaWYgKHR5cGUgPT09ICdyZWFkeXN0YXRlY2hhbmdlJykgewotICAg
ICAgdHlwZSArPSBlLnRhcmdldC5yZWFkeVN0YXRlOwotICAgIH0KLSAgICBpZiAoZHVtcFByb2dy
ZXNzRXZlbnQgJiYgKGUgaW5zdGFuY2VvZiBQcm9ncmVzc0V2ZW50KSkgewotICAgICAgdHlwZSAr
PSBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKTsKLSAgICB9Ci0gICAgcHVzaFRvTG9nKHR5cGUpOwot
ICB9OwotCi0gIGZ1bmN0aW9uIGxvZ1VwbG9hZChlKSB7Ci0gICAgdmFyIHR5cGUgPSBlLnR5cGU7
Ci0gICAgaWYgKGR1bXBQcm9ncmVzc0V2ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVu
dCkpIHsKLSAgICAgIHR5cGUgKz0gZ2V0UHJvZ3Jlc3NFdmVudER1bXAoZSk7Ci0gICAgfQotICAg
IHB1c2hUb0xvZygndXBsb2FkJyArIHR5cGUpOwotICB9Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hl
Y2tCb3goJ3VwbG9hZCcpKSB7Ci0gICAgdmFyIHVwbG9hZCA9IHhoci51cGxvYWQ7Ci0gICAgdXBs
b2FkLm9ubG9hZHN0YXJ0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbnByb2dyZXNzID0gbG9n
VXBsb2FkOwotICAgIHVwbG9hZC5vbmFib3J0ID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmVy
cm9yID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBs
b2FkLm9udGltZW91dCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25sb2FkZW5kID0gbG9nVXBs
b2FkOwotICB9Ci0KLSAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGxvZzsKLSAgeGhyLm9ubG9h
ZHN0YXJ0ID0gbG9nOwotICB4aHIub25wcm9ncmVzcyA9IGxvZzsKLSAgeGhyLm9uYWJvcnQgPSBs
b2c7Ci0gIHhoci5vbmVycm9yID0gbG9nOwotICB4aHIub25sb2FkID0gbG9nOwotICB4aHIub250
aW1lb3V0ID0gbG9nOwotICB4aHIub25sb2FkZW5kID0gbG9nOwotCi0gIHhoci5vcGVuKCdQT1NU
JywgJy8wNzNiZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NV9yZWNlaXZlJywKLSAgICAgICAg
ICAgZ2V0Qm9vbEZyb21DaGVja0JveCgnYXN5bmMnKSk7Ci0gIHZhciBzaXplID0gZ2V0SW50RnJv
bUlucHV0KCdzaXplJyk7Ci0gIHZhciBjaHVua2VkTW9kZSA9ICdub25lJzsKLSAgaWYgKGdldEJv
b2xGcm9tQ2hlY2tCb3goJ2NodW5rZWRyZXNwb25zZScpKSB7Ci0gICAgY2h1bmtlZE1vZGUgPSAn
Y2h1bmtlZCc7Ci0gIH0KLSAgeGhyLnNlbmQoc2l6ZSArICcgJyArIGNodW5rZWRNb2RlKTsKLX0K
LQotZnVuY3Rpb24gcHJpbnQoKSB7Ci0gIHZhciByZXN1bHQgPSAnJzsKLSAgZm9yICh2YXIgaSA9
IDA7IGkgPCBldmVudHMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZXZlbnQgPSBldmVudHNbaV07
Ci0gICAgdmFyIGxpbmUgPSAnJzsKLSAgICBsaW5lICs9IChldmVudC5maXJzdCAtIHN0YXJ0VGlt
ZSkgKyAibXMiOwotICAgIGlmIChldmVudC5jb3VudCA+IDEpCi0gICAgICBsaW5lICs9ICItIiAr
IChldmVudC5sYXN0IC0gc3RhcnRUaW1lKSArICJtcyI7Ci0gICAgZWxzZQotICAgICAgbGluZSAr
PSAiICAgICAgICAiOwotICAgIHdoaWxlKGxpbmUubGVuZ3RoIDwgMTUpCi0gICAgICBsaW5lICs9
ICIgIjsKLSAgICBsaW5lICs9ICI6ICIgKyBldmVudC50eXBlICsgJyAqICcgKyBldmVudC5jb3Vu
dCArICdcbic7Ci0gICAgcmVzdWx0ICs9IGxpbmU7Ci0gIH0KLSAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2xvZycpLnZhbHVlID0gcmVzdWx0OwotfQotPC9zY3JpcHQ+Ci0KLTxib2R5PgotICA8
dGV4dGFyZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9IjcwIiByZWFkb25seT48L3RleHRhcmVh
PgotICA8YnIvPgotICBTaXplOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNpemUiIHZhbHVlPSI2
NTUzNiI+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2h1bmtlZHJlc3BvbnNl
Ij4KLSAgPGxhYmVsIGZvcj0iY2h1bmtlZHJlc3BvbnNlIj5Vc2UgQ2h1bmtlZCBULUUgZm9yIHJl
c3BvbnNlPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ1cGxvYWQi
PgotICA8bGFiZWwgZm9yPSJ1cGxvYWQiPlVwbG9hZCBwcm9ncmVzczwvbGFiZWw+PGJyLz4KLSAg
PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZHVtcHByb2dyZXNzZXZlbnQiPgotICA8bGFiZWwg
Zm9yPSJkdW1wcHJvZ3Jlc3NldmVudCI+Ci0gICAgRHVtcCBsZW5ndGhDb21wdXRhYmxlL2xvYWRl
ZC90b3RhbDwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXN5bmMi
IGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9ImFzeW5jIj5Bc3luYzwvbGFiZWw+PGJyLz4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icnVuKCkiIHZhbHVlPSJSdW4gWEhSIj4KLSAgPGlu
cHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icHJpbnQoKSIgdmFsdWU9IlByaW50IGxvZyI+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNl
X3Rlc3RfaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rlc3RfaWZy
YW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiMDJjOWVhNTZmNmMxMGQw
M2JlYzEwMzhkNjcyMmRlNmU4ZDMxZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InBlcmZvcm1h
bmNlX3Rlc3RfaWZyYW1lLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJr
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOTMzYTIyMDQ1MWZhZGI2YTAxYTVjMWQ0NWMyNTUxNDY4
ZDdkODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjQgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBh
Y2hlIEhUVFAgU2VydmVyLgotCi1tb2RfcHl3ZWJzb2NrZXQgaXMgYSBXZWJTb2NrZXQgZXh0ZW5z
aW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIKLWludGVuZGVkIGZvciB0ZXN0aW5nIG9yIGV4cGVy
aW1lbnRhbCBwdXJwb3Nlcy4gbW9kX3B5dGhvbiBpcyByZXF1aXJlZC4KLQotCi1JbnN0YWxsYXRp
b24KLT09PT09PT09PT09PQotCi0wLiBQcmVwYXJlIGFuIEFwYWNoZSBIVFRQIFNlcnZlciBmb3Ig
d2hpY2ggbW9kX3B5dGhvbiBpcyBlbmFibGVkLgotCi0xLiBTcGVjaWZ5IHRoZSBmb2xsb3dpbmcg
QXBhY2hlIEhUVFAgU2VydmVyIGRpcmVjdGl2ZXMgdG8gc3VpdCB5b3VyCi0gICBjb25maWd1cmF0
aW9uLgotCi0gICBJZiBtb2RfcHl3ZWJzb2NrZXQgaXMgbm90IGluIHRoZSBQeXRob24gcGF0aCwg
c3BlY2lmeSB0aGUgZm9sbG93aW5nLgotICAgPHdlYnNvY2tfbGliPiBpcyB0aGUgZGlyZWN0b3J5
IHdoZXJlIG1vZF9weXdlYnNvY2tldCBpcyBpbnN0YWxsZWQuCi0KLSAgICAgICBQeXRob25QYXRo
ICJzeXMucGF0aCtbJzx3ZWJzb2NrX2xpYj4nXSIKLQotICAgQWx3YXlzIHNwZWNpZnkgdGhlIGZv
bGxvd2luZy4gPHdlYnNvY2tfaGFuZGxlcnM+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUKLSAgIHVz
ZXItd3JpdHRlbiBXZWJTb2NrZXQgaGFuZGxlcnMgYXJlIHBsYWNlZC4KLQotICAgICAgIFB5dGhv
bk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IDx3ZWJzb2NrX2hhbmRsZXJzPgot
ICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBh
cnNlcmhhbmRsZXIKLQotICAgVG8gbGltaXQgdGhlIHNlYXJjaCBmb3IgV2ViU29ja2V0IGhhbmRs
ZXJzIHRvIGEgZGlyZWN0b3J5IDxzY2FuX2Rpcj4KLSAgIHVuZGVyIDx3ZWJzb2NrX2hhbmRsZXJz
PiwgY29uZmlndXJlIGFzIGZvbGxvd3M6Ci0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vi
c29ja2V0LmhhbmRsZXJfc2NhbiA8c2Nhbl9kaXI+Ci0KLSAgIDxzY2FuX2Rpcj4gaXMgdXNlZnVs
IGluIHNhdmluZyBzY2FuIHRpbWUgd2hlbiA8d2Vic29ja19oYW5kbGVycz4KLSAgIGNvbnRhaW5z
IG1hbnkgbm9uLVdlYlNvY2tldCBoYW5kbGVyIGZpbGVzLgotCi0gICBJZiB5b3Ugd2FudCB0byBh
bGxvdyBoYW5kbGVycyB3aG9zZSBjYW5vbmljYWwgcGF0aCBpcyBub3QgdW5kZXIgdGhlIHJvb3QK
LSAgIGRpcmVjdG9yeSAoaS5lLiBzeW1ib2xpYyBsaW5rIGlzIGluIHJvb3QgZGlyZWN0b3J5IGJ1
dCBpdHMgdGFyZ2V0IGlzIG5vdCksCi0gICBjb25maWd1cmUgYXMgZm9sbG93czoKLQotICAgICAg
IFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290
X2RpciBPbgotCi0gICBFeGFtcGxlIHNuaXBwZXQgb2YgaHR0cGQuY29uZjoKLSAgIChtb2RfcHl3
ZWJzb2NrZXQgaXMgaW4gL3dlYnNvY2tfbGliLCBXZWJTb2NrZXQgaGFuZGxlcnMgYXJlIGluCi0g
ICAvd2Vic29ja19oYW5kbGVycywgcG9ydCBpcyA4MCBmb3Igd3MsIDQ0MyBmb3Igd3NzLikKLQot
ICAgICAgIDxJZk1vZHVsZSBweXRob25fbW9kdWxlPgotICAgICAgICAgUHl0aG9uUGF0aCAic3lz
LnBhdGgrWycvd2Vic29ja19saWInXSIKLSAgICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJz
b2NrZXQuaGFuZGxlcl9yb290IC93ZWJzb2NrX2hhbmRsZXJzCi0gICAgICAgICBQeXRob25IZWFk
ZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0gICAg
ICAgPC9JZk1vZHVsZT4KLQotMi4gVHVuZSBBcGFjaGUgcGFyYW1ldGVycyBmb3Igc2VydmluZyBX
ZWJTb2NrZXQuIFdlJ2QgbGlrZSB0byBub3RlIHRoYXQgYXQKLSAgIGxlYXN0IFRpbWVPdXQgZGly
ZWN0aXZlIGZyb20gY29yZSBmZWF0dXJlcyBhbmQgUmVxdWVzdFJlYWRUaW1lb3V0Ci0gICBkaXJl
Y3RpdmUgZnJvbSBtb2RfcmVxdGltZW91dCBzaG91bGQgYmUgbW9kaWZpZWQgbm90IHRvIGtpbGwg
Y29ubmVjdGlvbnMKLSAgIGluIG9ubHkgYSBmZXcgc2Vjb25kcyBvZiBpZGxlIHRpbWUuCi0KLTMu
IFZlcmlmeSBpbnN0YWxsYXRpb24uIFlvdSBjYW4gdXNlIGV4YW1wbGUvY29uc29sZS5odG1sIHRv
IHBva2UgdGhlIHNlcnZlci4KLQotCi1Xcml0aW5nIFdlYlNvY2tldCBoYW5kbGVycwotPT09PT09
PT09PT09PT09PT09PT09PT09PT0KLQotV2hlbiBhIFdlYlNvY2tldCByZXF1ZXN0IGNvbWVzIGlu
LCB0aGUgcmVzb3VyY2UgbmFtZQotc3BlY2lmaWVkIGluIHRoZSBoYW5kc2hha2UgaXMgY29uc2lk
ZXJlZCBhcyBpZiBpdCBpcyBhIGZpbGUgcGF0aCB1bmRlcgotPHdlYnNvY2tfaGFuZGxlcnM+IGFu
ZCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCi08d2Vic29ja19oYW5kbGVycz4vPHJlc291cmNlX25h
bWU+X3dzaC5weSBpcyBpbnZva2VkLgotCi1Gb3IgZXhhbXBsZSwgaWYgdGhlIHJlc291cmNlIG5h
bWUgaXMgL2V4YW1wbGUvY2hhdCwgdGhlIGhhbmRsZXIgZGVmaW5lZCBpbgotPHdlYnNvY2tfaGFu
ZGxlcnM+L2V4YW1wbGUvY2hhdF93c2gucHkgaXMgaW52b2tlZC4KLQotQSBXZWJTb2NrZXQgaGFu
ZGxlciBpcyBjb21wb3NlZCBvZiB0aGUgZm9sbG93aW5nIHRocmVlIGZ1bmN0aW9uczoKLQotICAg
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpCi0gICAgd2ViX3NvY2tldF90
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlKHJlcXVlc3QpCi0KLXdoZXJlOgotICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVz
dC4KLQotd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVkIGR1cmluZyB0aGUg
aGFuZHNoYWtlIGFmdGVyIHRoZQotaGVhZGVycyBhcmUgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBhbmQg
V2ViU29ja2V0IHByb3BlcnRpZXMgKHdzX2xvY2F0aW9uLAotd3Nfb3JpZ2luLCBhbmQgd3NfcmVz
b3VyY2UpIGFyZSBhZGRlZCB0byByZXF1ZXN0LiBBIGhhbmRsZXIKLWNhbiByZWplY3QgdGhlIHJl
cXVlc3QgYnkgcmFpc2luZyBhbiBleGNlcHRpb24uCi0KLUEgcmVxdWVzdCBvYmplY3QgaGFzIHRo
ZSBmb2xsb3dpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBjYW4gdXNlIGR1cmluZyB0aGUKLWV4dHJh
IGhhbmRzaGFrZSAod2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UpOgotLSB3c19yZXNvdXJj
ZQotLSB3c19vcmlnaW4KLS0gd3NfdmVyc2lvbgotLSB3c19sb2NhdGlvbiAoSHlCaSAwMCBvbmx5
KQotLSB3c19leHRlbnNpb25zIChIeUJpIDA2IGFuZCBsYXRlcikKLS0gd3NfZGVmbGF0ZSAoSHlC
aSAwNiBhbmQgbGF0ZXIpCi0tIHdzX3Byb3RvY29sCi0tIHdzX3JlcXVlc3RlZF9wcm90b2NvbHMg
KEh5QmkgMDYgYW5kIGxhdGVyKQotCi1UaGUgbGFzdCB0d28gYXJlIGEgYml0IHRyaWNreS4gU2Vl
IHRoZSBuZXh0IHN1YnNlY3Rpb24uCi0KLQotU3VicHJvdG9jb2wgTmVnb3RpYXRpb24KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLUZvciBIeUJpIDA2IGFuZCBsYXRlciwgd3NfcHJvdG9jb2wg
aXMgYWx3YXlzIHNldCB0byBOb25lIHdoZW4KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtl
IGlzIGNhbGxlZC4gSWYgd3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QKLU5vbmUsIHlvdSBt
dXN0IGNob29zZSBvbmUgc3VicHJvdG9jb2wgZnJvbSB0aGlzIGxpc3QgYW5kIHNldCBpdCB0bwot
d3NfcHJvdG9jb2wuCi0KLUZvciBIeUJpIDAwLCB3aGVuIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlIGlzIGNhbGxlZCwKLXdzX3Byb3RvY29sIGlzIHNldCB0byB0aGUgdmFsdWUgZ2l2ZW4g
YnkgdGhlIGNsaWVudCBpbgotU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBoZWFkZXIgb3IgTm9uZSBp
Zgotc3VjaCBoZWFkZXIgd2FzIG5vdCBmb3VuZCBpbiB0aGUgb3BlbmluZyBoYW5kc2hha2UgcmVx
dWVzdC4gRmluaXNoIGV4dHJhCi1oYW5kc2hha2Ugd2l0aCB3c19wcm90b2NvbCB1bnRvdWNoZWQg
dG8gYWNjZXB0IHRoZSByZXF1ZXN0IHN1YnByb3RvY29sLgotVGhlbiwgU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCBoZWFkZXIgd2lsbCBiZSBzZW50IHRvCi10aGUgY2xpZW50IGluIHJlc3BvbnNlIHdp
dGggdGhlIHNhbWUgdmFsdWUgYXMgcmVxdWVzdGVkLiBSYWlzZSBhbiBleGNlcHRpb24KLWluIHdl
Yl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIHRvIHJlamVjdCB0aGUgcmVxdWVzdGVkIHN1YnBy
b3RvY29sLgotCi0KLURhdGEgVHJhbnNmZXIKLS0tLS0tLS0tLS0tLS0KLQotd2ViX3NvY2tldF90
cmFuc2Zlcl9kYXRhIGlzIGNhbGxlZCBhZnRlciB0aGUgaGFuZHNoYWtlIGNvbXBsZXRlZAotc3Vj
Y2Vzc2Z1bGx5LiBBIGhhbmRsZXIgY2FuIHJlY2VpdmUvc2VuZCBtZXNzYWdlcyBmcm9tL3RvIHRo
ZSBjbGllbnQKLXVzaW5nIHJlcXVlc3QuIG1vZF9weXdlYnNvY2tldC5tc2d1dGlsIG1vZHVsZSBw
cm92aWRlcyB1dGlsaXRpZXMKLWZvciBkYXRhIHRyYW5zZmVyLgotCi1Zb3UgY2FuIHJlY2VpdmUg
YSBtZXNzYWdlIGJ5IHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50LgotCi0gICAgbWVzc2FnZSA9IHJl
cXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0KLVRoaXMgY2FsbCBibG9ja3MgdW50
aWwgYW55IGNvbXBsZXRlIHRleHQgZnJhbWUgYXJyaXZlcywgYW5kIHRoZSBwYXlsb2FkIGRhdGEK
LW9mIHRoZSBpbmNvbWluZyBmcmFtZSB3aWxsIGJlIHN0b3JlZCBpbnRvIG1lc3NhZ2UuIFdoZW4g
eW91J3JlIHVzaW5nIElFVEYKLUh5QmkgMDAgb3IgbGF0ZXIgcHJvdG9jb2wsIHJlY2VpdmVfbWVz
c2FnZSgpIHdpbGwgcmV0dXJuIE5vbmUgb24gcmVjZWl2aW5nCi1jbGllbnQtaW5pdGlhdGVkIGNs
b3NpbmcgaGFuZHNoYWtlLiBXaGVuIGFueSBlcnJvciBvY2N1cnMsIHJlY2VpdmVfbWVzc2FnZSgp
Ci13aWxsIHJhaXNlIHNvbWUgZXhjZXB0aW9uLgotCi1Zb3UgY2FuIHNlbmQgYSBtZXNzYWdlIGJ5
IHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50LgotCi0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9t
ZXNzYWdlKG1lc3NhZ2UpCi0KLQotQ2xvc2luZyBDb25uZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotRXhlY3V0aW5nIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50IG9yIGp1c3QgcmV0dXJuLWlu
ZyBmcm9tCi13ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEgY2F1c2UgY29ubmVjdGlvbiBjbG9zZS4K
LQotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotCi1jbG9zZV9jb25u
ZWN0aW9uIHdpbGwgd2FpdAotZm9yIGNsb3NpbmcgaGFuZHNoYWtlIGFja25vd2xlZGdlbWVudCBj
b21pbmcgZnJvbSB0aGUgY2xpZW50LiBXaGVuIGl0Ci1jb3VsZG4ndCByZWNlaXZlIGEgdmFsaWQg
YWNrbm93bGVkZ2VtZW50LCByYWlzZXMgYW4gZXhjZXB0aW9uLgotCi13ZWJfc29ja2V0X3Bhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2UgaXMgY2FsbGVkIGFmdGVyIHRoZSBzZXJ2ZXIgcmVjZWl2ZXMK
LWluY29taW5nIGNsb3NpbmcgZnJhbWUgZnJvbSB0aGUgY2xpZW50IHBlZXIgaW1tZWRpYXRlbHku
IFlvdSBjYW4gc3BlY2lmeQotY29kZSBhbmQgcmVhc29uIGJ5IHJldHVybiB2YWx1ZXMuIFRoZXkg
YXJlIHNlbnQgYXMgYSBvdXRnb2luZyBjbG9zaW5nIGZyYW1lCi1mcm9tIHRoZSBzZXJ2ZXIuIEEg
cmVxdWVzdCBvYmplY3QgaGFzIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB0aGF0IHlvdSBjYW4K
LXVzZSBpbiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UuCi0tIHdzX2Nsb3Nl
X2NvZGUKLS0gd3NfY2xvc2VfcmVhc29uCi0KLQotVGhyZWFkaW5nCi0tLS0tLS0tLS0KLQotQSBX
ZWJTb2NrZXQgaGFuZGxlciBtdXN0IGJlIHRocmVhZC1zYWZlIGlmIHRoZSBzZXJ2ZXIgKEFwYWNo
ZSBvcgotc3RhbmRhbG9uZS5weSkgaXMgY29uZmlndXJlZCB0byB1c2UgdGhyZWFkcy4KLQotCi1D
b25maWd1cmluZyBXZWJTb2NrZXQgRXh0ZW5zaW9uIFByb2Nlc3NvcnMKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TZWUgZXh0ZW5zaW9ucy5weSBmb3Igc3Vw
cG9ydGVkIFdlYlNvY2tldCBleHRlbnNpb25zLiBOb3RlIHRoYXQgdGhleSBhcmUKLXVuc3RhYmxl
IGFuZCB0aGVpciBBUElzIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSBzdWJzdGFudGlhbGx5LgotCi1B
IHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGVzZSBleHRlbnNpb24gcHJvY2Vzc2luZyByZWxhdGVkIGF0
dHJpYnV0ZXMuCi0KLS0gd3NfcmVxdWVzdGVkX2V4dGVuc2lvbnM6Ci0KLSAgQSBsaXN0IG9mIGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2VzIHJlcHJlc2VudGluZyBleHRlbnNpb24K
LSAgcGFyYW1ldGVycyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQgaW4gdGhlIGNsaWVudCdzIG9w
ZW5pbmcgaGFuZHNoYWtlLgotICBZb3Ugc2hvdWxkbid0IG1vZGlmeSBpdCBtYW51YWxseS4KLQot
LSB3c19leHRlbnNpb25zOgotCi0gIEEgbGlzdCBvZiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
IGluc3RhbmNlcyByZXByZXNlbnRpbmcgZXh0ZW5zaW9uCi0gIHBhcmFtZXRlcnMgdG8gc2VuZCBi
YWNrIHRvIHRoZSBjbGllbnQgaW4gdGhlIHNlcnZlcidzIG9wZW5pbmcgaGFuZHNoYWtlLgotICBZ
b3Ugc2hvdWxkbid0IHRvdWNoIGl0IGRpcmVjdGx5LiBJbnN0ZWFkLCBjYWxsIG1ldGhvZHMgb24g
ZXh0ZW5zaW9uCi0gIHByb2Nlc3NvcnMuCi0KLS0gd3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnM6Ci0K
LSAgQSBsaXN0IG9mIGxvYWRlZCBleHRlbnNpb24gcHJvY2Vzc29ycy4gRmluZCB0aGUgcHJvY2Vz
c29yIGZvciB0aGUKLSAgZXh0ZW5zaW9uIHlvdSB3YW50IHRvIGNvbmZpZ3VyZSBmcm9tIGl0LCBh
bmQgY2FsbCBpdHMgbWV0aG9kcy4KLSIiIgotCi0KLSMgdmk6c3RzPTQgc3c9NCBldCB0dz03Mgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyMWExMjU0YWU2ZDBlMzZmYjVlOTc5ODEyODNjNTdiMTVkZjZmM2ViLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1fYmFzZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0jIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJCYXNlIHN0cmVhbSBjbGFzcy4KLSIiIgotCi0KLSMgTm90ZTogcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4g
dGhvdWdoCi0jIG1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJlIHVz
ZWQgb25seSBpbiBjb25uZWN0aW9uCi0jIGhhbmRsZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZl
IG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxlLAotIyByZXF1ZXN0LndyaXRlL3JlYWQgYXJl
IG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcwot
IyB3cml0aW5nL3JlYWRpbmcuCi0KLQotaW1wb3J0IHNvY2tldAotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgdXRpbAotCi0KLSMgRXhjZXB0aW9ucwotCi0KLWNsYXNzIENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2ls
bCBiZSByYWlzZWQgd2hlbiBhIGNvbm5lY3Rpb24gaXMgdGVybWluYXRlZAotICAgIHVuZXhwZWN0
ZWRseS4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBJbnZhbGlkRnJhbWVFeGNlcHRp
b24oQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9u
IHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVjZWl2ZWQgYW4gaW52YWxpZCBmcmFtZSB3ZQotICAg
IGNhbm5vdCBwYXJzZS4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFzcyBCYWRPcGVyYXRp
b25FeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJh
aXNlZCB3aGVuIHNlbmRfbWVzc2FnZSgpIGlzIGNhbGxlZCBvbgotICAgIHNlcnZlci10ZXJtaW5h
dGVkIGNvbm5lY3Rpb24gb3IgcmVjZWl2ZV9tZXNzYWdlKCkgaXMgY2FsbGVkIG9uCi0gICAgY2xp
ZW50LXRlcm1pbmF0ZWQgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFz
cyBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNl
cHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB3ZSByZWNlaXZlIGEgZnJhbWUgd2l0aCBmbGFnLCBv
cGNvZGUKLSAgICB3ZSBjYW5ub3QgaGFuZGxlLiBIYW5kbGVycyBjYW4ganVzdCBjYXRjaCBhbmQg
aWdub3JlIHRoaXMgZXhjZXB0aW9uIGFuZAotICAgIGNhbGwgcmVjZWl2ZV9tZXNzYWdlKCkgYWdh
aW4gdG8gY29udGludWUgcHJvY2Vzc2luZyB0aGUgbmV4dCBmcmFtZS4KLSAgICAiIiIKLQotICAg
IHBhc3MKLQotCi1jbGFzcyBJbnZhbGlkVVRGOEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIi
IlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVjZWl2ZSBhIHRleHQgZnJh
bWUgd2hpY2gKLSAgICBjb250YWlucyBpbnZhbGlkIFVURi04IHN0cmluZ3MuCi0gICAgIiIiCi0K
LSAgICBwYXNzCi0KLQotY2xhc3MgU3RyZWFtQmFzZShvYmplY3QpOgotICAgICIiIkJhc2Ugc3Ry
ZWFtIGNsYXNzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRlZiBfcmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAg
ICAiIiJSZWFkcyBsZW5ndGggYnl0ZXMgZnJvbSBjb25uZWN0aW9uLiBJbiBjYXNlIHdlIGNhdGNo
IGFueSBleGNlcHRpb24sCi0gICAgICAgIHByZXBlbmRzIHJlbW90ZSBhZGRyZXNzIHRvIHRoZSBl
eGNlcHRpb24gbWVzc2FnZSBhbmQgcmFpc2UgYWdhaW4uCi0KLSAgICAgICAgUmFpc2VzOgotICAg
ICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5z
IGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
cmVhZF9ieXRlcyA9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKGxlbmd0aCkKLSAgICAg
ICAgICAgIGlmIG5vdCByZWFkX2J5dGVzOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVk
IGJ5dGUgZmFpbGVkLiBQZWVyICglcikgY2xvc2VkIGNvbm5lY3Rpb24nICUKLSAgICAgICAgICAg
ICAgICAgICAgKGxlbmd0aCwgKHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZW1vdGVfYWRkciwp
KSkKLSAgICAgICAgICAgIHJldHVybiByZWFkX2J5dGVzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQu
ZXJyb3IgYXMgZToKLSAgICAgICAgICAgICMgQ2F0Y2ggYSBzb2NrZXQuZXJyb3IuIEJlY2F1c2Ug
aXQncyBub3QgYSBjaGlsZCBjbGFzcyBvZiB0aGUKLSAgICAgICAgICAgICMgSU9FcnJvciBwcmlv
ciB0byBQeXRob24gMi42LCB3ZSBjYW5ub3Qgb21pdCB0aGlzIGV4Y2VwdCBjbGF1c2UuCi0gICAg
ICAgICAgICAjIFVzZSAlcyByYXRoZXIgdGhhbiAlciBmb3IgdGhlIGV4Y2VwdGlvbiB0byB1c2Ug
aHVtYW4gZnJpZW5kbHkKLSAgICAgICAgICAgICMgZm9ybWF0LgotICAgICAgICAgICAgcmFpc2Ug
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2Vpdmlu
ZyAlZCBieXRlIGZhaWxlZC4gc29ja2V0LmVycm9yICglcykgb2NjdXJyZWQnICUKLSAgICAgICAg
ICAgICAgICAobGVuZ3RoLCBlKSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAg
ICAgICAgICMgQWxzbyBjYXRjaCBhbiBJT0Vycm9yIGJlY2F1c2UgbW9kX3B5dGhvbiB0aHJvd3Mg
aXQuCi0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBJT0Vycm9yICglcykgb2Nj
dXJyZWQnICUKLSAgICAgICAgICAgICAgICAobGVuZ3RoLCBlKSkKLQotICAgIGRlZiBfd3JpdGUo
c2VsZiwgYnl0ZXNfdG9fd3JpdGUpOgotICAgICAgICAiIiJXcml0ZXMgZ2l2ZW4gYnl0ZXMgdG8g
Y29ubmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAotICAgICAgICBwcmVw
ZW5kcyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFn
YWluLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGUoYnl0ZXNfdG9fd3JpdGUpCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6ICcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24u
cmVtb3RlX2FkZHIsKSwKLSAgICAgICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNl
Ci0KLSAgICBkZWYgcmVjZWl2ZV9ieXRlcyhzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJSZWNl
aXZlcyBtdWx0aXBsZSBieXRlcy4gUmV0cmllcyByZWFkIHdoZW4gd2UgY291bGRuJ3QgcmVjZWl2
ZSB0aGUKLSAgICAgICAgc3BlY2lmaWVkIGFtb3VudC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMg
ZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQotICAgICAgICByZWFkX2J5dGVzID0gW10KLSAg
ICAgICAgd2hpbGUgbGVuZ3RoID4gMDoKLSAgICAgICAgICAgIG5ld19yZWFkX2J5dGVzID0gc2Vs
Zi5fcmVhZChsZW5ndGgpCi0gICAgICAgICAgICByZWFkX2J5dGVzLmFwcGVuZChuZXdfcmVhZF9i
eXRlcykKLSAgICAgICAgICAgIGxlbmd0aCAtPSBsZW4obmV3X3JlYWRfYnl0ZXMpCi0gICAgICAg
IHJldHVybiAnJy5qb2luKHJlYWRfYnl0ZXMpCi0KLSAgICBkZWYgX3JlYWRfdW50aWwoc2VsZiwg
ZGVsaW1fY2hhcik6Ci0gICAgICAgICIiIlJlYWRzIGJ5dGVzIHVudGlsIHdlIGVuY291bnRlciBk
ZWxpbV9jaGFyLiBUaGUgcmVzdWx0IHdpbGwgbm90Ci0gICAgICAgIGNvbnRhaW4gZGVsaW1fY2hh
ci4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkgc3RyaW5nLgotICAgICAgICAiIiIKLQot
ICAgICAgICByZWFkX2J5dGVzID0gW10KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
IGNoID0gc2VsZi5fcmVhZCgxKQotICAgICAgICAgICAgaWYgY2ggPT0gZGVsaW1fY2hhcjoKLSAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcmVhZF9ieXRlcy5hcHBlbmQoY2gpCi0g
ICAgICAgIHJldHVybiAnJy5qb2luKHJlYWRfYnl0ZXMpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hpeGllNzUucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk0Y2Y1YjMxYmEwZmMzYzNhMzQ3N2RlODIyOTdhMGMyNmRhMWM0OGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjI5ICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBhIGNsYXNzIGZv
ciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0Ci1wcm90b2NvbCB2ZXJz
aW9uIEh5QmkgMDAgYW5kIEhpeGllIDc1LgotCi1TcGVjaWZpY2F0aW9uOgotLSBIeUJpIDAwIGh0
dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90
b2NvbC0wMAotLSBIaXhpZSA3NSBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1oaXhp
ZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03NQotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBC
YWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1jbGFzcyBTdHJlYW1IaXhpZTc1KFN0cmVh
bUJhc2UpOgotICAgICIiIkEgY2xhc3MgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRo
ZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbgotICAgIEh5QmkgMDAgYW5kIEhpeGllIDc1Lgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGVuYWJsZV9jbG9zaW5n
X2hhbmRzaGFrZT1GYWxzZSk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0Lgot
ICAgICAgICAgICAgZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOiB0byBsZXQgU3RyZWFtSGl4aWU3
NSBwZXJmb3JtIGNsb3NpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZHNoYWtlIGFzIHNwZWNpZmllZCBpbiBIeUJpIDAwLCBzZXQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcyBvcHRpb24gdG8gVHJ1ZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgU3RyZWFtQmFzZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotCi0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYu
X2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZSA9IGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZQotCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLQotICAgIGRlZiBzZW5kX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIi
IlNlbmQgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogdW5p
Y29kZSBzdHJpbmcgdG8gc2VuZC4KLSAgICAgICAgICAgIGJpbmFyeTogbm90IHVzZWQgaW4gaGl4
aWU3NS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRp
b246IHdoZW4gY2FsbGVkIG9uIGEgc2VydmVyLXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBub3QgZW5kOgotICAgICAgICAg
ICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTdHJlYW1I
aXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdpdGggZW5kPUZhbHNlJykKLQot
ICAgICAgICBpZiBiaW5hcnk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5k
X21lc3NhZ2Ugd2l0aCBiaW5hcnk9VHJ1ZScpCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5n
IG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBzZWxmLl93cml0ZSgnJy5qb2lu
KFsnXHgwMCcsIG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpLCAnXHhmZiddKSkKLQotICAgIGRlZiBf
cmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBhIGxl
bmd0aCBoZWFkZXIgaW4gYSBIaXhpZTc1IHZlcnNpb24gZnJhbWUgd2l0aCBsZW5ndGguCi0KLSAg
ICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246
IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
bGVuZ3RoID0gMAotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgYl9zdHIgPSBzZWxm
Ll9yZWFkKDEpCi0gICAgICAgICAgICBiID0gb3JkKGJfc3RyKQotICAgICAgICAgICAgbGVuZ3Ro
ID0gbGVuZ3RoICogMTI4ICsgKGIgJiAweDdmKQotICAgICAgICAgICAgaWYgKGIgJiAweDgwKSA9
PSAwOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHJldHVybiBsZW5ndGgKLQotICAg
IGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2Nr
ZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhbiB1bmljb2RlIHN0cmluZy4KLQotICAg
ICAgICBSZXR1cm5zOgotICAgICAgICAgICAgcGF5bG9hZCB1bmljb2RlIHN0cmluZyBpbiBhIFdl
YlNvY2tldCBmcmFtZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9u
VGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAgICAgICAgICAg
ICAgICBzdHJpbmcuCi0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2Fs
bGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgot
ICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVk
OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3Npbmcg
JwotICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0g
ICAgICAgICAgICAjIFJlYWQgMSBieXRlLgotICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2ls
bCBibG9jayBpZiBubyBieXRlcyBhcmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgIyBUaW1lb3V0
IGlzIGNvbnRyb2xsZWQgYnkgVGltZU91dCBkaXJlY3RpdmUgb2YgQXBhY2hlLgotICAgICAgICAg
ICAgZnJhbWVfdHlwZV9zdHIgPSBzZWxmLnJlY2VpdmVfYnl0ZXMoMSkKLSAgICAgICAgICAgIGZy
YW1lX3R5cGUgPSBvcmQoZnJhbWVfdHlwZV9zdHIpCi0gICAgICAgICAgICBpZiAoZnJhbWVfdHlw
ZSAmIDB4ODApID09IDB4ODA6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5bG9hZCBsZW5ndGgg
aXMgc3BlY2lmaWVkIGluIHRoZSBmcmFtZS4KLSAgICAgICAgICAgICAgICAjIFJlYWQgYW5kIGRp
c2NhcmQuCi0gICAgICAgICAgICAgICAgbGVuZ3RoID0gc2VsZi5fcmVhZF9wYXlsb2FkX2xlbmd0
aF9oaXhpZTc1KCkKLSAgICAgICAgICAgICAgICBpZiBsZW5ndGggPiAwOgotICAgICAgICAgICAg
ICAgICAgICBfID0gc2VsZi5yZWNlaXZlX2J5dGVzKGxlbmd0aCkKLSAgICAgICAgICAgICAgICAj
IDUuMyAzLiAxMi4gaWYgL3R5cGUvIGlzIDB4RkYgYW5kIC9sZW5ndGgvIGlzIDAsIHRoZW4gc2V0
IHRoZQotICAgICAgICAgICAgICAgICMgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3Np
bmdfaGFuZHNoYWtlOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAg
ICAgICAgaWYgZnJhbWVfdHlwZSA9PSAweEZGIGFuZCBsZW5ndGggPT0gMDoKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBhY2sgZm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbmRzaGFrZScpCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVk
IGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Ns
b3NpbmdfaGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgICAgICAgICAgICAgJ1NlbnQgYWNrIGZvciBjbGllbnQtaW5pdGlhdGVk
IGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcGF5bG9hZCBpcyBkZWxpbWl0
ZWQgd2l0aCBceGZmLgotICAgICAgICAgICAgICAgIGJ5dGVzID0gc2VsZi5fcmVhZF91bnRpbCgn
XHhmZicpCi0gICAgICAgICAgICAgICAgIyBUaGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rpb24g
NC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKLSAgICAgICAgICAgICAgICAjIGNoYXJhY3RlcnMg
bXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVOVAotICAgICAgICAgICAgICAg
ICMgQ0hBUkFDVEVSLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBieXRlcy5kZWNvZGUoJ3V0
Zi04JywgJ3JlcGxhY2UnKQotICAgICAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHgwMDoK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAgICAgICAgICAjIERp
c2NhcmQgZGF0YSBvZiBvdGhlciB0eXBlcy4KLQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRz
aGFrZShzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFr
ZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnQ2xvc2luZyBoYW5kc2hha2UgaXMgbm90IHN1cHBvcnRlZCBpbiBIaXhpZSA3NSBwcm90
b2NvbCcpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUK
LQotICAgICAgICAjIDUuMyB0aGUgc2VydmVyIG1heSBkZWNpZGUgdG8gdGVybWluYXRlIHRoZSBX
ZWJTb2NrZXQgY29ubmVjdGlvbiBieQotICAgICAgICAjIHJ1bm5pbmcgdGhyb3VnaCB0aGUgZm9s
bG93aW5nIHN0ZXBzOgotICAgICAgICAjIDEuIHNlbmQgYSAweEZGIGJ5dGUgYW5kIGEgMHgwMCBi
eXRlIHRvIHRoZSBjbGllbnQgdG8gaW5kaWNhdGUgdGhlCi0gICAgICAgICMgc3RhcnQgb2YgdGhl
IGNsb3NpbmcgaGFuZHNoYWtlLgotICAgICAgICBzZWxmLl93cml0ZSgnXHhmZlx4MDAnKQotCi0g
ICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZiwgdW51c2VkX2NvZGU9JycsIHVudXNlZF9yZWFz
b249JycpOgotICAgICAgICAiIiJDbG9zZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjog
d2hlbiBjbG9zaW5nIGhhbmRzaGFrZSB3YXMKLSAgICAgICAgICAgICAgICBub3Qgc3VjY2Vzc2Z1
bGwuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1p
bmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAg
J1JlcXVlc3RlZCBjbG9zZV9jb25uZWN0aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5h
dGVkJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVf
Y2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJt
aW5hdGVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25uZWN0aW9u
IGNsb3NlZCcpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3Np
bmdfaGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlci1p
bml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgICMgVE9ETyh1a2FpKTogMi4g
d2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBiZWVuIHNldCwKLSAg
ICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhwaXJlcy4KLSAgICAg
ICAgIwotICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcgY2xvc2luZyBoYW5k
c2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZwotICAgICAgICAjIG91dCBjbG9zaW5nIGhhbmRzaGFr
ZSwgYW5kIGlmIHdlIGNvdWxkbid0IHJlY2VpdmUgbm9uLWhhbmRzaGFrZQotICAgICAgICAjIGZy
YW1lLCB3ZSB0YWtlIGl0IGFzIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLgotICAgICAg
ICBtZXNzYWdlID0gc2VsZi5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBtZXNzYWdlIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0RpZG5cJ3QgcmVjZWl2ZSB2YWxpZCBhY2sgZm9yIGNsb3Np
bmcgaGFuZHNoYWtlJykKLSAgICAgICAgIyBUT0RPOiAzLiBjbG9zZSB0aGUgV2ViU29ja2V0IGNv
bm5lY3Rpb24uCi0gICAgICAgICMgbm90ZTogbW9kX3B5dGhvbiBDb25uZWN0aW9uIChtcF9jb25u
KSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0aG9kLgotCi0gICAgZGVmIHNlbmRfcGluZyhzZWxmLCBi
b2R5KToKLSAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
J1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX3BpbmcnKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJp
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3MThlOGZmYTM5NTVkNWFmNWMzYjdjNTE2YmNmYTk4MGVmZTZkZDg4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDg5NCArMCww
IEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgY2xhc3NlcyBh
bmQgaGVscGVyIGZ1bmN0aW9ucyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMKLW9mIHRoZSBX
ZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4KLQotU3BlY2lmaWNhdGlvbjoKLWh0dHA6Ly90
b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKLSIiIgotCi0KLWZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IGRlcXVlCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc3RydWN0Ci1pbXBv
cnQgdGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNl
IGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9u
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFN0cmVhbUJhc2UKLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4
Y2VwdGlvbgotCi0KLV9OT09QX01BU0tFUiA9IHV0aWwuTm9vcE1hc2tlcigpCi0KLQotY2xhc3Mg
RnJhbWUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaW49MSwgcnN2MT0wLCBy
c3YyPTAsIHJzdjM9MCwKLSAgICAgICAgICAgICAgICAgb3Bjb2RlPU5vbmUsIHBheWxvYWQ9Jycp
OgotICAgICAgICBzZWxmLmZpbiA9IGZpbgotICAgICAgICBzZWxmLnJzdjEgPSByc3YxCi0gICAg
ICAgIHNlbGYucnN2MiA9IHJzdjIKLSAgICAgICAgc2VsZi5yc3YzID0gcnN2MwotICAgICAgICBz
ZWxmLm9wY29kZSA9IG9wY29kZQotICAgICAgICBzZWxmLnBheWxvYWQgPSBwYXlsb2FkCi0KLQot
IyBIZWxwZXIgZnVuY3Rpb25zIG1hZGUgcHVibGljIHRvIGJlIHVzZWQgZm9yIHdyaXRpbmcgdW5p
dHRlc3RzIGZvciBXZWJTb2NrZXQKLSMgY2xpZW50cy4KLQotCi1kZWYgY3JlYXRlX2xlbmd0aF9o
ZWFkZXIobGVuZ3RoLCBtYXNrKToKLSAgICAiIiJDcmVhdGVzIGEgbGVuZ3RoIGhlYWRlci4KLQot
ICAgIEFyZ3M6Ci0gICAgICAgIGxlbmd0aDogRnJhbWUgbGVuZ3RoLiBNdXN0IGJlIGxlc3MgdGhh
biAyXjYzLgotICAgICAgICBtYXNrOiBNYXNrIGJpdC4gTXVzdCBiZSBib29sZWFuLgotCi0gICAg
UmFpc2VzOgotICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIGJhZCBkYXRhIGlzIGdpdmVuLgotICAg
ICIiIgotCi0gICAgaWYgbWFzazoKLSAgICAgICAgbWFza19iaXQgPSAxIDw8IDcKLSAgICBlbHNl
OgotICAgICAgICBtYXNrX2JpdCA9IDAKLQotICAgIGlmIGxlbmd0aCA8IDA6Ci0gICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ2xlbmd0aCBtdXN0IGJlIG5vbiBuZWdhdGl2ZSBpbnRlZ2VyJykKLSAg
ICBlbGlmIGxlbmd0aCA8PSAxMjU6Ci0gICAgICAgIHJldHVybiBjaHIobWFza19iaXQgfCBsZW5n
dGgpCi0gICAgZWxpZiBsZW5ndGggPCAoMSA8PCAxNik6Ci0gICAgICAgIHJldHVybiBjaHIobWFz
a19iaXQgfCAxMjYpICsgc3RydWN0LnBhY2soJyFIJywgbGVuZ3RoKQotICAgIGVsaWYgbGVuZ3Ro
IDwgKDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgMTI3KSArIHN0cnVj
dC5wYWNrKCchUScsIGxlbmd0aCkKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdQYXlsb2FkIGlzIHRvbyBiaWcgZm9yIG9uZSBmcmFtZScpCi0KLQotZGVmIGNyZWF0ZV9oZWFk
ZXIob3Bjb2RlLCBwYXlsb2FkX2xlbmd0aCwgZmluLCByc3YxLCByc3YyLCByc3YzLCBtYXNrKToK
LSAgICAiIiJDcmVhdGVzIGEgZnJhbWUgaGVhZGVyLgotCi0gICAgUmFpc2VzOgotICAgICAgICBF
eGNlcHRpb246IHdoZW4gYmFkIGRhdGEgaXMgZ2l2ZW4uCi0gICAgIiIiCi0KLSAgICBpZiBvcGNv
ZGUgPCAwIG9yIDB4ZiA8IG9wY29kZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignT3Bjb2Rl
IG91dCBvZiByYW5nZScpCi0KLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA8IDAgb3IgKDEgPDwgNjMp
IDw9IHBheWxvYWRfbGVuZ3RoOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdwYXlsb2FkX2xl
bmd0aCBvdXQgb2YgcmFuZ2UnKQotCi0gICAgaWYgKGZpbiB8IHJzdjEgfCByc3YyIHwgcnN2Mykg
JiB+MToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRklOIGJpdCBhbmQgUmVzZXJ2ZWQgYml0
IHBhcmFtZXRlciBtdXN0IGJlIDAgb3IgMScpCi0KLSAgICBoZWFkZXIgPSAnJwotCi0gICAgZmly
c3RfYnl0ZSA9ICgoZmluIDw8IDcpCi0gICAgICAgICAgICAgICAgICB8IChyc3YxIDw8IDYpIHwg
KHJzdjIgPDwgNSkgfCAocnN2MyA8PCA0KQotICAgICAgICAgICAgICAgICAgfCBvcGNvZGUpCi0g
ICAgaGVhZGVyICs9IGNocihmaXJzdF9ieXRlKQotICAgIGhlYWRlciArPSBjcmVhdGVfbGVuZ3Ro
X2hlYWRlcihwYXlsb2FkX2xlbmd0aCwgbWFzaykKLQotICAgIHJldHVybiBoZWFkZXIKLQotCi1k
ZWYgX2J1aWxkX2ZyYW1lKGhlYWRlciwgYm9keSwgbWFzayk6Ci0gICAgaWYgbm90IG1hc2s6Ci0g
ICAgICAgIHJldHVybiBoZWFkZXIgKyBib2R5Ci0KLSAgICBtYXNraW5nX25vbmNlID0gb3MudXJh
bmRvbSg0KQotICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIobWFza2luZ19ub25j
ZSkKLQotICAgIHJldHVybiBoZWFkZXIgKyBtYXNraW5nX25vbmNlICsgbWFza2VyLm1hc2soYm9k
eSkKLQotCi1kZWYgX2ZpbHRlcl9hbmRfZm9ybWF0X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywg
ZnJhbWVfZmlsdGVycyk6Ci0gICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBmcmFtZV9maWx0ZXJzOgot
ICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAgaGVhZGVyID0gY3JlYXRl
X2hlYWRlcigKLSAgICAgICAgZnJhbWUub3Bjb2RlLCBsZW4oZnJhbWUucGF5bG9hZCksIGZyYW1l
LmZpbiwKLSAgICAgICAgZnJhbWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MywgbWFzaykK
LSAgICByZXR1cm4gX2J1aWxkX2ZyYW1lKGhlYWRlciwgZnJhbWUucGF5bG9hZCwgbWFzaykKLQot
Ci1kZWYgY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9Q
Q09ERV9CSU5BUlksIGZpbj0xLCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICAi
IiJDcmVhdGVzIGEgc2ltcGxlIGJpbmFyeSBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2
ZWQgYml0LiIiIgotCi0gICAgZnJhbWUgPSBGcmFtZShmaW49ZmluLCBvcGNvZGU9b3Bjb2RlLCBw
YXlsb2FkPW1lc3NhZ2UpCi0gICAgcmV0dXJuIF9maWx0ZXJfYW5kX2Zvcm1hdF9mcmFtZV9vYmpl
Y3QoZnJhbWUsIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV90ZXh0X2ZyYW1l
KAotICAgIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQsIGZpbj0xLCBtYXNrPUZh
bHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICAiIiJDcmVhdGVzIGEgc2ltcGxlIHRleHQgZnJh
bWUgd2l0aCBubyBleHRlbnNpb24sIHJlc2VydmVkIGJpdC4iIiIKLQotICAgIGVuY29kZWRfbWVz
c2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlf
ZnJhbWUoZW5jb2RlZF9tZXNzYWdlLCBvcGNvZGUsIGZpbiwgbWFzaywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBwYXJzZV9mcmFtZShyZWNl
aXZlX2J5dGVzLCBsb2dnZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICB3c192ZXJzaW9uPWNvbW1v
bi5WRVJTSU9OX0hZQklfTEFURVNULAotICAgICAgICAgICAgICAgIHVubWFza19yZWNlaXZlPVRy
dWUpOgotICAgICIiIlBhcnNlcyBhIGZyYW1lLiBSZXR1cm5zIGEgdHVwbGUgY29udGFpbmluZyBl
YWNoIGhlYWRlciBmaWVsZCBhbmQKLSAgICBwYXlsb2FkLgotCi0gICAgQXJnczoKLSAgICAgICAg
cmVjZWl2ZV9ieXRlczogYSBmdW5jdGlvbiB0aGF0IHJlYWRzIGZyYW1lIGRhdGEgZnJvbSBhIHN0
cmVhbSBvcgotICAgICAgICAgICAgc29tZXRoaW5nIHNpbWlsYXIuIFRoZSBmdW5jdGlvbiB0YWtl
cyBsZW5ndGggb2YgdGhlIGJ5dGVzIHRvIGJlCi0gICAgICAgICAgICByZWFkLiBUaGUgZnVuY3Rp
b24gbXVzdCByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBpZgotICAgICAgICAg
ICAgdGhlcmUgaXMgbm90IGVub3VnaCBkYXRhIHRvIGJlIHJlYWQuCi0gICAgICAgIGxvZ2dlcjog
YSBsb2dnaW5nIG9iamVjdC4KLSAgICAgICAgd3NfdmVyc2lvbjogdGhlIHZlcnNpb24gb2YgV2Vi
U29ja2V0IHByb3RvY29sLgotICAgICAgICB1bm1hc2tfcmVjZWl2ZTogdW5tYXNrIHJlY2VpdmVk
IGZyYW1lcy4gV2hlbiByZWNlaXZlZCB1bm1hc2tlZAotICAgICAgICAgICAgZnJhbWUsIHJhaXNl
cyBJbnZhbGlkRnJhbWVFeGNlcHRpb24uCi0KLSAgICBSYWlzZXM6Ci0gICAgICAgIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlY2VpdmVfYnl0ZXMgcmFpc2VzIGl0LgotICAg
ICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFs
aWQgZGF0YS4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBsb2dnZXI6Ci0gICAgICAgIGxvZ2dlciA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLQotICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJ
TkUsICdSZWNlaXZlIHRoZSBmaXJzdCAyIG9jdGV0cyBvZiBhIGZyYW1lJykKLQotICAgIHJlY2Vp
dmVkID0gcmVjZWl2ZV9ieXRlcygyKQotCi0gICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFsw
XSkKLSAgICBmaW4gPSAoZmlyc3RfYnl0ZSA+PiA3KSAmIDEKLSAgICByc3YxID0gKGZpcnN0X2J5
dGUgPj4gNikgJiAxCi0gICAgcnN2MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQotICAgIHJzdjMg
PSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0K
LSAgICBzZWNvbmRfYnl0ZSA9IG9yZChyZWNlaXZlZFsxXSkKLSAgICBtYXNrID0gKHNlY29uZF9i
eXRlID4+IDcpICYgMQotICAgIHBheWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCi0K
LSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgJ0ZJ
Tj0lcywgUlNWMT0lcywgUlNWMj0lcywgUlNWMz0lcywgb3Bjb2RlPSVzLCAnCi0gICAgICAgICAg
ICAgICAnTWFzaz0lcywgUGF5bG9hZF9sZW5ndGg9JXMnLAotICAgICAgICAgICAgICAgZmluLCBy
c3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIG1hc2ssIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYg
KG1hc2sgPT0gMSkgIT0gdW5tYXNrX3JlY2VpdmU6Ci0gICAgICAgIHJhaXNlIEludmFsaWRGcmFt
ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICdNYXNrIGJpdCBvbiB0aGUgcmVjZWl2ZWQgZnJhbWUg
ZGlkXCdudCBtYXRjaCBtYXNraW5nICcKLSAgICAgICAgICAgICdjb25maWd1cmF0aW9uIGZvciBy
ZWNlaXZlZCBmcmFtZXMnKQotCi0gICAgIyBUaGUgSHlCaSBhbmQgbGF0ZXIgc3BlY3MgZGlzYWxs
b3cgcHV0dGluZyBhIHZhbHVlIGluIDB4MC0weEZGRkYKLSAgICAjIGludG8gdGhlIDgtb2N0ZXQg
ZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQgKG9yIDB4MC0weEZEIGluCi0gICAgIyAyLW9j
dGV0IGZpZWxkKS4KLSAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBUcnVlCi0gICAgbGVuZ3Ro
X2VuY29kaW5nX2J5dGVzID0gMQotICAgIGlmIHBheWxvYWRfbGVuZ3RoID09IDEyNzoKLSAgICAg
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZSA4LW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoJykKLQotICAgICAgICBleHRl
bmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoOCkKLSAgICAgICAgcGF5bG9hZF9s
ZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgJyFRJywgZXh0ZW5kZWRfcGF5bG9h
ZF9sZW5ndGgpWzBdCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoID4gMHg3RkZGRkZGRkZGRkZG
RkZGOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdFeHRlbmRlZCBwYXlsb2FkIGxlbmd0aCA+PSAyXjYzJykKLSAgICAgICAgaWYgd3Nf
dmVyc2lvbiA+PSAxMyBhbmQgcGF5bG9hZF9sZW5ndGggPCAweDEwMDAwOgotICAgICAgICAgICAg
dmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gRmFsc2UKLSAgICAgICAgICAgIGxlbmd0aF9lbmNvZGlu
Z19ieXRlcyA9IDgKLQotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAot
ICAgICAgICAgICAgICAgICAgICdEZWNvZGVkX3BheWxvYWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9s
ZW5ndGgpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjY6Ci0gICAgICAgIGxvZ2dlci5s
b2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ1JlY2VpdmUgMi1v
Y3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCcpCi0KLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9h
ZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKDIpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3Ry
dWN0LnVucGFjaygKLSAgICAgICAgICAgICchSCcsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVsw
XQotICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xlbmd0aCA8IDEyNjoK
LSAgICAgICAgICAgIHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IEZhbHNlCi0gICAgICAgICAgICBs
ZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAyCi0KLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9H
TEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICAgICAnRGVjb2RlZF9wYXlsb2FkX2xlbmd0aD0l
cycsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgaWYgbm90IHZhbGlkX2xlbmd0aF9lbmNvZGluZzoK
LSAgICAgICAgbG9nZ2VyLndhcm5pbmcoCi0gICAgICAgICAgICAnUGF5bG9hZCBsZW5ndGggaXMg
bm90IGVuY29kZWQgdXNpbmcgdGhlIG1pbmltYWwgbnVtYmVyIG9mICcKLSAgICAgICAgICAgICdi
eXRlcyAoJWQgaXMgZW5jb2RlZCB1c2luZyAlZCBieXRlcyknLAotICAgICAgICAgICAgcGF5bG9h
ZF9sZW5ndGgsCi0gICAgICAgICAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMpCi0KLSAgICBpZiBt
YXNrID09IDE6Ci0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdSZWNl
aXZlIG1hc2snKQotCi0gICAgICAgIG1hc2tpbmdfbm9uY2UgPSByZWNlaXZlX2J5dGVzKDQpCi0g
ICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIobWFza2luZ19ub25jZSkKLQot
ICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnTWFzaz0lcicsIG1hc2tp
bmdfbm9uY2UpCi0gICAgZWxzZToKLSAgICAgICAgbWFza2VyID0gX05PT1BfTUFTS0VSCi0KLSAg
ICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSBwYXlsb2FkIGRhdGEn
KQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAg
ICAgICByZWNlaXZlX3N0YXJ0ID0gdGltZS50aW1lKCkKLQotICAgIHJhd19wYXlsb2FkX2J5dGVz
ID0gcmVjZWl2ZV9ieXRlcyhwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIGxvZ2dlci5pc0VuYWJs
ZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICBsb2dnZXIubG9nKAotICAgICAg
ICAgICAgY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAnRG9uZSByZWNlaXZpbmcg
cGF5bG9hZCBkYXRhIGF0ICVzIE1CL3MnLAotICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGggLyAo
dGltZS50aW1lKCkgLSByZWNlaXZlX3N0YXJ0KSAvIDEwMDAgLyAxMDAwKQotICAgIGxvZ2dlci5s
b2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdVbm1hc2sgcGF5bG9hZCBkYXRhJykKLQotICAgIGlm
IGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9uLkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICB1bm1h
c2tfc3RhcnQgPSB0aW1lLnRpbWUoKQotCi0gICAgdW5tYXNrZWRfYnl0ZXMgPSBtYXNrZXIubWFz
ayhyYXdfcGF5bG9hZF9ieXRlcykKLQotICAgIGlmIGxvZ2dlci5pc0VuYWJsZWRGb3IoY29tbW9u
LkxPR0xFVkVMX0ZJTkUpOgotICAgICAgICBsb2dnZXIubG9nKAotICAgICAgICAgICAgY29tbW9u
LkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAnRG9uZSB1bm1hc2tpbmcgcGF5bG9hZCBkYXRh
IGF0ICVzIE1CL3MnLAotICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGggLyAodGltZS50aW1lKCkg
LSB1bm1hc2tfc3RhcnQpIC8gMTAwMCAvIDEwMDApCi0KLSAgICByZXR1cm4gb3Bjb2RlLCB1bm1h
c2tlZF9ieXRlcywgZmluLCByc3YxLCByc3YyLCByc3YzCi0KLQotY2xhc3MgRnJhZ21lbnRlZEZy
YW1lQnVpbGRlcihvYmplY3QpOgotICAgICIiIkEgc3RhdGVmdWwgY2xhc3MgdG8gc2VuZCBhIG1l
c3NhZ2UgYXMgZnJhZ21lbnRzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hc2ssIGZy
YW1lX2ZpbHRlcnM9W10sIGVuY29kZV91dGY4PVRydWUpOgotICAgICAgICAiIiJDb25zdHJ1Y3Rz
IGFuIGluc3RhbmNlLiIiIgotCi0gICAgICAgIHNlbGYuX21hc2sgPSBtYXNrCi0gICAgICAgIHNl
bGYuX2ZyYW1lX2ZpbHRlcnMgPSBmcmFtZV9maWx0ZXJzCi0gICAgICAgICMgVGhpcyBpcyBmb3Ig
c2tpcHBpbmcgVVRGLTggZW5jb2Rpbmcgd2hlbiBidWlsZGluZyB0ZXh0IHR5cGUgZnJhbWVzCi0g
ICAgICAgICMgZnJvbSBjb21wcmVzc2VkIGRhdGEuCi0gICAgICAgIHNlbGYuX2VuY29kZV91dGY4
ID0gZW5jb2RlX3V0ZjgKLQotICAgICAgICBzZWxmLl9zdGFydGVkID0gRmFsc2UKLQotICAgICAg
ICAjIEhvbGQgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFtZSBpbiBtZXNzYWdlcyB0byB2ZXJpZnkg
dHlwZXMgb2Ygb3RoZXIKLSAgICAgICAgIyBmcmFtZXMgaW4gdGhlIG1lc3NhZ2UgYXJlIGFsbCB0
aGUgc2FtZS4KLSAgICAgICAgc2VsZi5fb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0KLSAg
ICBkZWYgYnVpbGQoc2VsZiwgcGF5bG9hZF9kYXRhLCBlbmQsIGJpbmFyeSk6Ci0gICAgICAgIGlm
IGJpbmFyeToKLSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBjb21tb24uT1BDT0RFX0JJTkFSWQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IGNvbW1vbi5PUENPREVfVEVY
VAotICAgICAgICBpZiBzZWxmLl9zdGFydGVkOgotICAgICAgICAgICAgaWYgc2VsZi5fb3Bjb2Rl
ICE9IGZyYW1lX3R5cGU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTWVzc2Fn
ZSB0eXBlcyBhcmUgZGlmZmVyZW50IGluIGZyYW1lcyBmb3IgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3RoZSBzYW1lIG1lc3NhZ2UnKQotICAgICAgICAgICAgb3Bjb2RlID0g
Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9w
Y29kZSA9IGZyYW1lX3R5cGUKLSAgICAgICAgICAgIHNlbGYuX29wY29kZSA9IGZyYW1lX3R5cGUK
LQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9zdGFydGVkID0gRmFsc2UKLSAg
ICAgICAgICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3N0YXJ0
ZWQgPSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0KLSAgICAgICAgaWYgYmluYXJ5IG9yIG5v
dCBzZWxmLl9lbmNvZGVfdXRmODoKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2Zy
YW1lKAotICAgICAgICAgICAgICAgIHBheWxvYWRfZGF0YSwgb3Bjb2RlLCBmaW4sIHNlbGYuX21h
c2ssIHNlbGYuX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1
cm4gY3JlYXRlX3RleHRfZnJhbWUoCi0gICAgICAgICAgICAgICAgcGF5bG9hZF9kYXRhLCBvcGNv
ZGUsIGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKLQotCi1kZWYgX2NyZWF0
ZV9jb250cm9sX2ZyYW1lKG9wY29kZSwgYm9keSwgbWFzaywgZnJhbWVfZmlsdGVycyk6Ci0gICAg
ZnJhbWUgPSBGcmFtZShvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPWJvZHkpCi0KLSAgICBmb3IgZnJh
bWVfZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIo
ZnJhbWUpCi0KLSAgICBpZiBsZW4oZnJhbWUucGF5bG9hZCkgPiAxMjU6Ci0gICAgICAgIHJhaXNl
IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBv
ZiBjb250cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRlcyBvciBsZXNzJykKLQotICAgIGhlYWRl
ciA9IGNyZWF0ZV9oZWFkZXIoCi0gICAgICAgIGZyYW1lLm9wY29kZSwgbGVuKGZyYW1lLnBheWxv
YWQpLCBmcmFtZS5maW4sCi0gICAgICAgIGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJz
djMsIG1hc2spCi0gICAgcmV0dXJuIF9idWlsZF9mcmFtZShoZWFkZXIsIGZyYW1lLnBheWxvYWQs
IG1hc2spCi0KLQotZGVmIGNyZWF0ZV9waW5nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZyYW1l
X2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9uLk9Q
Q09ERV9QSU5HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfcG9u
Z19mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4g
X2NyZWF0ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5PUENPREVfUE9ORywgYm9keSwgbWFzaywgZnJh
bWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX2Nsb3NlX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2Us
IGZyYW1lX2ZpbHRlcnM9W10pOgotICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoCi0g
ICAgICAgIGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0K
LQotZGVmIGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUsIHJlYXNvbik6Ci0gICAg
Ym9keSA9ICcnCi0gICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgaWYgKGNvZGUgPiBj
b21tb24uU1RBVFVTX1VTRVJfUFJJVkFURV9NQVggb3IKLSAgICAgICAgICAgIGNvZGUgPCBjb21t
b24uU1RBVFVTX05PUk1BTF9DTE9TVVJFKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbignU3RhdHVzIGNvZGUgaXMgb3V0IG9mIHJhbmdlJykKLSAgICAgICAgaWYgKGNv
ZGUgPT0gY29tbW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgb3IKLSAgICAgICAgICAgIGNv
ZGUgPT0gY29tbW9uLlNUQVRVU19BQk5PUk1BTF9DTE9TVVJFIG9yCi0gICAgICAgICAgICBjb2Rl
ID09IGNvbW1vbi5TVEFUVVNfVExTX0hBTkRTSEFLRSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRP
cGVyYXRpb25FeGNlcHRpb24oJ1N0YXR1cyBjb2RlIGlzIHJlc2VydmVkIHBzZXVkbyAnCi0gICAg
ICAgICAgICAgICAgJ2NvZGUnKQotICAgICAgICBlbmNvZGVkX3JlYXNvbiA9IHJlYXNvbi5lbmNv
ZGUoJ3V0Zi04JykKLSAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsgZW5j
b2RlZF9yZWFzb24KLSAgICByZXR1cm4gYm9keQotCi0KLWNsYXNzIFN0cmVhbU9wdGlvbnMob2Jq
ZWN0KToKLSAgICAiIiJIb2xkcyBvcHRpb24gdmFsdWVzIHRvIGNvbmZpZ3VyZSBTdHJlYW0gb2Jq
ZWN0cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIiIiQ29uc3RydWN0
cyBTdHJlYW1PcHRpb25zLiIiIgotCi0gICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGZyYW1l
cy4KLSAgICAgICAgc2VsZi5vdXRnb2luZ19mcmFtZV9maWx0ZXJzID0gW10KLSAgICAgICAgc2Vs
Zi5pbmNvbWluZ19mcmFtZV9maWx0ZXJzID0gW10KLQotICAgICAgICAjIEZpbHRlcnMgYXBwbGll
ZCB0byBtZXNzYWdlcy4gQ29udHJvbCBmcmFtZXMgYXJlIG5vdCBhZmZlY3RlZCBieSB0aGVtLgot
ICAgICAgICBzZWxmLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVycyA9IFtdCi0gICAgICAgIHNlbGYu
aW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzID0gW10KLQotICAgICAgICBzZWxmLmVuY29kZV90ZXh0
X21lc3NhZ2VfdG9fdXRmOCA9IFRydWUKLSAgICAgICAgc2VsZi5tYXNrX3NlbmQgPSBGYWxzZQot
ICAgICAgICBzZWxmLnVubWFza19yZWNlaXZlID0gVHJ1ZQotCi0KLWNsYXNzIFN0cmVhbShTdHJl
YW1CYXNlKToKLSAgICAiIiJBIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0
aGUgV2ViU29ja2V0IHByb3RvY29sCi0gICAgKFJGQyA2NDU1KS4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvcHRpb25zKToKLSAgICAgICAgIiIiQ29uc3RydWN0
cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9k
X3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICBTdHJlYW1CYXNlLl9faW5p
dF9fKHNlbGYsIHJlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBIb2xkcyBi
b2R5IG9mIHJlY2VpdmVkIGZyYWdtZW50cy4KLSAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21l
bnRzID0gW10KLSAgICAgICAgIyBIb2xkcyB0aGUgb3Bjb2RlIG9mIHRoZSBmaXJzdCBmcmFnbWVu
dC4KLSAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gTm9uZQotCi0gICAgICAgIHNlbGYu
X3dyaXRlciA9IEZyYWdtZW50ZWRGcmFtZUJ1aWxkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRp
b25zLm1hc2tfc2VuZCwgc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLAotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0ZjgpCi0KLSAg
ICAgICAgc2VsZi5fcGluZ19xdWV1ZSA9IGRlcXVlKCkKLQotICAgIGRlZiBfcmVjZWl2ZV9mcmFt
ZShzZWxmKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgYSBmcmFtZSBhbmQgcmV0dXJuIGRhdGEgaW4g
dGhlIGZyYW1lIGFzIGEgdHVwbGUgY29udGFpbmluZwotICAgICAgICBlYWNoIGhlYWRlciBmaWVs
ZCBhbmQgcGF5bG9hZCBzZXBhcmF0ZWx5LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAg
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eQot
ICAgICAgICAgICAgICAgIHN0cmluZy4KLSAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlv
bjogd2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgotICAgICAgICAiIiIKLQot
ICAgICAgICBkZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3RoKToKLSAgICAgICAgICAgIHJldHVybiBz
ZWxmLnJlY2VpdmVfYnl0ZXMobGVuZ3RoKQotCi0gICAgICAgIHJldHVybiBwYXJzZV9mcmFtZShy
ZWNlaXZlX2J5dGVzPV9yZWNlaXZlX2J5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyPXNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHdzX3ZlcnNp
b249c2VsZi5fcmVxdWVzdC53c192ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5tYXNrX3JlY2VpdmU9c2VsZi5fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSkKLQotICAgIGRlZiBf
cmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3Qoc2VsZik6Ci0gICAgICAgIG9wY29kZSwgdW5t
YXNrZWRfYnl0ZXMsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MyA9IHNlbGYuX3JlY2VpdmVfZnJhbWUo
KQotCi0gICAgICAgIHJldHVybiBGcmFtZShmaW49ZmluLCByc3YxPXJzdjEsIHJzdjI9cnN2Miwg
cnN2Mz1yc3YzLAotICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD11
bm1hc2tlZF9ieXRlcykKLQotICAgIGRlZiByZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKHNlbGYpOgot
ICAgICAgICAiIiJSZWNlaXZlcyBhIGZyYW1lIGFuZCBhcHBsaWVzIGZyYW1lIGZpbHRlcnMgYW5k
IG1lc3NhZ2UgZmlsdGVycy4KLSAgICAgICAgVGhlIGZyYW1lIHRvIGJlIHJlY2VpdmVkIG11c3Qg
c2F0aXNmeSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAgICAgICAgLSBUaGUgZnJhbWUgaXMgbm90
IGZyYWdtZW50ZWQuCi0gICAgICAgIC0gVGhlIG9wY29kZSBvZiB0aGUgZnJhbWUgaXMgVEVYVCBv
ciBCSU5BUlkuCi0KLSAgICAgICAgRE8gTk9UIFVTRSB0aGlzIG1ldGhvZCBleGNlcHQgZm9yIHRl
c3RpbmcgcHVycG9zZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZnJhbWUgPSBzZWxmLl9yZWNl
aXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0g
ICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J1NlZ21lbnRlZCBmcmFtZXMgbXVzdCBub3QgYmUgcmVjZWl2ZWQgdmlhICcKLSAgICAgICAgICAg
ICAgICAncmVjZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykKLSAgICAgICAgaWYgKGZyYW1lLm9wY29k
ZSAhPSBjb21tb24uT1BDT0RFX1RFWFQgYW5kCi0gICAgICAgICAgICBmcmFtZS5vcGNvZGUgIT0g
Y29tbW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdDb250cm9sIGZyYW1lcyBtdXN0IG5vdCBiZSByZWNl
aXZlZCB2aWEgJwotICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1lKCknKQot
Ci0gICAgICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFt
ZV9maWx0ZXJzOgotICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLSAgICAg
ICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9m
aWx0ZXJzOgotICAgICAgICAgICAgZnJhbWUucGF5bG9hZCA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRl
cihmcmFtZS5wYXlsb2FkKQotICAgICAgICByZXR1cm4gZnJhbWUKLQotICAgIGRlZiBzZW5kX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAgICIi
IlNlbmQgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogdGV4
dCBpbiB1bmljb2RlIG9yIGJpbmFyeSBpbiBzdHIgdG8gc2VuZC4KLSAgICAgICAgICAgIGJpbmFy
eTogc2VuZCBtZXNzYWdlIGFzIGJpbmFyeSBmcmFtZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAg
ICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgc2VydmVyLXRl
cm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uIG9yIGNhbGxlZCB3aXRoIGluY29u
c2lzdGVudCBtZXNzYWdlIHR5cGUgb3IKLSAgICAgICAgICAgICAgICBiaW5hcnkgcGFyYW1ldGVy
LgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5h
dGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdlIGFmdGVyIHNlbmRpbmcgb3V0IGEgY2xvc2lu
ZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGlmIGJpbmFyeSBhbmQgaXNpbnN0YW5jZShtZXNzYWdl
LCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnTWVzc2FnZSBmb3IgYmluYXJ5IGZyYW1lIG11c3QgYmUgaW5zdGFuY2Ug
b2Ygc3RyJykKLQotICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5v
dXRnb2luZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9m
aWx0ZXIuZmlsdGVyKG1lc3NhZ2UsIGVuZCwgYmluYXJ5KQotCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgICMgU2V0IHRoaXMgdG8gYW55IHBvc2l0aXZlIGludGVnZXIgdG8gbGltaXQgbWF4aW11
bSBzaXplIG9mIGRhdGEgaW4KLSAgICAgICAgICAgICMgcGF5bG9hZCBkYXRhIG9mIGVhY2ggZnJh
bWUuCi0gICAgICAgICAgICBNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPSAtMQotCi0gICAgICAgICAg
ICBpZiBNQVhfUEFZTE9BRF9EQVRBX1NJWkUgPD0gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl93
cml0ZShzZWxmLl93cml0ZXIuYnVpbGQobWVzc2FnZSwgZW5kLCBiaW5hcnkpKQotICAgICAgICAg
ICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBieXRlc193cml0dGVuID0gMAotICAgICAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUgPSBlbmQK
LSAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9IGxlbihtZXNzYWdlKSAtIGJ5dGVzX3dy
aXR0ZW4KLSAgICAgICAgICAgICAgICBpZiAoTUFYX1BBWUxPQURfREFUQV9TSVpFID4gMCBhbmQK
LSAgICAgICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUgPiBNQVhfUEFZTE9BRF9EQVRBX1NJ
WkUpOgotICAgICAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUgPSBGYWxzZQotICAg
ICAgICAgICAgICAgICAgICBieXRlc190b193cml0ZSA9IE1BWF9QQVlMT0FEX0RBVEFfU0laRQot
Ci0gICAgICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl93cml0ZXIuYnVpbGQoCi0gICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2VbYnl0ZXNfd3JpdHRlbjpieXRlc193cml0dGVuICsgYnl0ZXNfdG9f
d3JpdGVdLAotICAgICAgICAgICAgICAgICAgICBlbmRfZm9yX3RoaXNfZnJhbWUsCi0gICAgICAg
ICAgICAgICAgICAgIGJpbmFyeSkKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkK
LQotICAgICAgICAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gKz0gYnl0ZXNfdG9fd3JpdGUKLQotICAg
ICAgICAgICAgICAgICMgVGhpcyBpZiBtdXN0IGJlIHBsYWNlZCBoZXJlICh0aGUgZW5kIG9mIHdo
aWxlIGJsb2NrKSBzbyB0aGF0Ci0gICAgICAgICAgICAgICAgIyBhdCBsZWFzdCBvbmUgZnJhbWUg
aXMgc2VudC4KLSAgICAgICAgICAgICAgICBpZiBsZW4obWVzc2FnZSkgPD0gYnl0ZXNfd3JpdHRl
bjoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Ig
YXMgZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihlKQotCi0gICAg
ZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiR2V0
cyBhIG1lc3NhZ2UgZnJvbSBmcmFtZS4gSWYgdGhlIG1lc3NhZ2UgaXMgY29tcG9zZWQgb2YgZnJh
Z21lbnRlZAotICAgICAgICBmcmFtZXMgYW5kIHRoZSBmcmFtZSBpcyBub3QgdGhlIGxhc3QgZnJh
Z21lbnRlZCBmcmFtZSwgdGhpcyBtZXRob2QKLSAgICAgICAgcmV0dXJucyBOb25lLiBUaGUgd2hv
bGUgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIHdoZW4gdGhlIGxhc3QKLSAgICAgICAgZnJhZ21l
bnRlZCBmcmFtZSBpcyBwYXNzZWQgdG8gdGhpcyBtZXRob2QuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBkb2Vzbid0
IG1hdGNoIGRlZnJhZ21lbnRhdGlvbgotICAgICAgICAgICAgICAgIGNvbnRleHQsIG9yIHRoZSBm
cmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIGZy
YW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHM6Ci0gICAgICAgICAgICAgICAgaWYgZnJhbWUu
ZmluOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYSB0ZXJtaW5hdGlvbiBmcmFtZSBidXQg
ZnJhZ21lbnRhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnbm90IHN0YXJ0ZWQnKQot
ICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhbiBpbnRl
cm1lZGlhdGUgZnJhbWUgYnV0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdmcmFnbWVudGF0
aW9uIG5vdCBzdGFydGVkJykKLQotICAgICAgICAgICAgaWYgZnJhbWUuZmluOgotICAgICAgICAg
ICAgICAgICMgRW5kIG9mIGZyYWdtZW50YXRpb24gZnJhbWUKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgICAgICAg
ICAgbWVzc2FnZSA9ICcnLmpvaW4oc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzKQotICAgICAgICAg
ICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgICAgICAgICAgcmV0
dXJuIG1lc3NhZ2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBJbnRlcm1l
ZGlhdGUgZnJhbWUKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBw
ZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGlmIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50czoKLSAgICAgICAg
ICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhbiB1bmZy
YWdtZW50ZWQgZnJhbWUgd2l0aG91dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVybWlu
YXRpbmcgZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICAgICAgICAgJ05ldyBmcmFnbWVudGF0aW9uIHN0YXJ0ZWQgd2l0aG91dCB0ZXJtaW5h
dGluZyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicp
Ci0KLSAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAjIFVuZnJhZ21l
bnRlZCBmcmFtZQotCi0gICAgICAgICAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gZnJh
bWUub3Bjb2RlCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZyYW1lLnBheWxvYWQKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBTdGFydCBvZiBmcmFnbWVudGF0aW9uIGZyYW1l
Ci0KLSAgICAgICAgICAgICAgICBpZiBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bj
b2RlKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRyb2wgZnJhbWVzIG11c3Qgbm90IGJlIGZyYWdt
ZW50ZWQnKQotCi0gICAgICAgICAgICAgICAgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gZnJhbWUu
b3Bjb2RlCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChm
cmFtZS5wYXlsb2FkKQotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgX3By
b2Nlc3NfY2xvc2VfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiUHJvY2Vzc2Vz
IGNsb3NlIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IGNs
b3NlIG1lc3NhZ2UuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1l
RXhjZXB0aW9uOiB3aGVuIHRoZSBtZXNzYWdlIGlzIGludmFsaWQuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAg
IyBTdGF0dXMgY29kZSBpcyBvcHRpb25hbC4gV2UgY2FuIGhhdmUgc3RhdHVzIHJlYXNvbiBvbmx5
IGlmIHdlCi0gICAgICAgICMgaGF2ZSBzdGF0dXMgY29kZS4gU3RhdHVzIHJlYXNvbiBjYW4gYmUg
ZW1wdHkgc3RyaW5nLiBTbywKLSAgICAgICAgIyBhbGxvd2VkIGNhc2VzIGFyZQotICAgICAgICAj
IC0gbm8gYXBwbGljYXRpb24gZGF0YTogbm8gY29kZSBubyByZWFzb24KLSAgICAgICAgIyAtIDIg
b2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogaGFzIGNvZGUgYnV0IG5vIHJlYXNvbgotICAgICAg
ICAjIC0gMyBvciBtb3JlIG9jdGV0IG9mIGFwcGxpY2F0aW9uIGRhdGE6IGJvdGggY29kZSBhbmQg
cmVhc29uCi0gICAgICAgIGlmIGxlbihtZXNzYWdlKSA9PSAwOgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBjbG9zZSBmcmFtZSAoZW1wdHkgYm9keSknKQotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9jb2RlID0gKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEKQotICAgICAgICBlbGlmIGxlbihtZXNzYWdl
KSA9PSAxOgotICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdJZiBhIGNsb3NlIGZyYW1lIGhhcyBzdGF0dXMgY29kZSwgdGhlIGxlbmd0aCBv
ZiAnCi0gICAgICAgICAgICAgICAgJ3N0YXR1cyBjb2RlIG11c3QgYmUgMiBvY3RldCcpCi0gICAg
ICAgIGVsaWYgbGVuKG1lc3NhZ2UpID49IDI6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKAotICAgICAgICAgICAgICAgICchSCcsIG1lc3Nh
Z2VbMDoyXSlbMF0KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uID0g
bWVzc2FnZVsyOl0uZGVjb2RlKAotICAgICAgICAgICAgICAgICd1dGYtOCcsICdyZXBsYWNlJykK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVjZWl2
ZWQgY2xvc2UgZnJhbWUgKGNvZGU9JWQsIHJlYXNvbj0lciknLAotICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2Nsb3NlX3JlYXNvbikKLQotICAgICAgICAjIEFzIHdlJ3ZlIHJlY2VpdmVkIGEgY2xvc2Ug
ZnJhbWUsIG5vIG1vcmUgZGF0YSBpcyBjb21pbmcgb3ZlciB0aGUKLSAgICAgICAgIyBzb2NrZXQu
IFdlIGNhbiBub3cgc2FmZWx5IGNsb3NlIHRoZSBzb2NrZXQgd2l0aG91dCB3b3JyeWluZyBhYm91
dAotICAgICAgICAjIFJTVCBzZW5kaW5nLgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2Vy
dmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRz
aGFrZScpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAnUmVjZWl2ZWQgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFr
ZScpCi0KLSAgICAgICAgY29kZSA9IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUKLSAgICAg
ICAgcmVhc29uID0gJycKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9yZXF1ZXN0LCAnX2Rpc3Bh
dGNoZXInKToKLSAgICAgICAgICAgIGRpc3BhdGNoZXIgPSBzZWxmLl9yZXF1ZXN0Ll9kaXNwYXRj
aGVyCi0gICAgICAgICAgICBjb2RlLCByZWFzb24gPSBkaXNwYXRjaGVyLnBhc3NpdmVfY2xvc2lu
Z19oYW5kc2hha2UoCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAg
IGlmIGNvZGUgaXMgTm9uZSBhbmQgcmVhc29uIGlzIG5vdCBOb25lIGFuZCBsZW4ocmVhc29uKSA+
IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoCi0gICAgICAgICAgICAg
ICAgICAgICdIYW5kbGVyIHNwZWNpZmllZCByZWFzb24gZGVzcGl0ZSBjb2RlIGJlaW5nIE5vbmUn
KQotICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgICAgICBpZiByZWFzb24gaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICByZWFzb24gPSAnJwotICAgICAgICBzZWxmLl9zZW5kX2Ns
b3NpbmdfaGFuZHNoYWtlKGNvZGUsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAotICAgICAgICAgICAgJ0Fja25vd2xlZGdlZCBjbG9zaW5nIGhhbmRzaGFrZSBpbml0aWF0ZWQg
YnkgdGhlIHBlZXIgJwotICAgICAgICAgICAgJyhjb2RlPSVyLCByZWFzb249JXIpJywgY29kZSwg
cmVhc29uKQotCi0gICAgZGVmIF9wcm9jZXNzX3BpbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToK
LSAgICAgICAgIiIiUHJvY2Vzc2VzIHBpbmcgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAg
ICAgICAgICAgbWVzc2FnZTogcGluZyBtZXNzYWdlLgotICAgICAgICAiIiIKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBoYW5kbGVyID0gc2VsZi5fcmVxdWVzdC5vbl9waW5nX2hhbmRsZXIK
LSAgICAgICAgICAgIGlmIGhhbmRsZXI6Ci0gICAgICAgICAgICAgICAgaGFuZGxlcihzZWxmLl9y
ZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fc2Vu
ZF9wb25nKG1lc3NhZ2UpCi0KLSAgICBkZWYgX3Byb2Nlc3NfcG9uZ19tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMgcG9uZyBtZXNzYWdlLgotCi0gICAgICAgIEFy
Z3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBwb25nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEFkZCBwaW5nIHRpbWVvdXQgaGFuZGxpbmcuCi0KLSAg
ICAgICAgaW5mbGlnaHRfcGluZ3MgPSBkZXF1ZSgpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5ID0gc2VsZi5fcGlu
Z19xdWV1ZS5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9ib2R5ID09IG1l
c3NhZ2U6Ci0gICAgICAgICAgICAgICAgICAgICMgaW5mbGlnaHRfcGluZ3MgY29udGFpbnMgcGlu
Z3MgaWdub3JlZCBieSB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBvdGhlciBwZWVyLiBKdXN0
IGZvcmdldCB0aGVtLgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnUGluZyAlciBpcyBhY2tlZCAoJWQgcGluZ3Mgd2VyZSBp
Z25vcmVkKScsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5LCBsZW4oaW5m
bGlnaHRfcGluZ3MpKQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGluZmxpZ2h0X3BpbmdzLmFwcGVuZChleHBlY3Rl
ZF9ib2R5KQotICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3IgYXMgZToKLSAgICAgICAgICAg
ICAgICAjIFRoZSByZWNlaXZlZCBwb25nIHdhcyB1bnNvbGljaXRlZCBwb25nLiBLZWVwIHRoZQot
ICAgICAgICAgICAgICAgICMgcGluZyBxdWV1ZSBhcyBpcy4KLSAgICAgICAgICAgICAgICBzZWxm
Ll9waW5nX3F1ZXVlID0gaW5mbGlnaHRfcGluZ3MKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1JlY2VpdmVkIGEgdW5zb2xpY2l0ZWQgcG9uZycpCi0gICAgICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kbGVyID0gc2VsZi5fcmVxdWVz
dC5vbl9wb25nX2hhbmRsZXIKLSAgICAgICAgICAgIGlmIGhhbmRsZXI6Ci0gICAgICAgICAgICAg
ICAgaGFuZGxlcihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICBleGNlcHQgQXR0cmli
dXRlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHBhc3MKLQotICAgIGRlZiByZWNlaXZlX21lc3Nh
Z2Uoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJldHVy
biBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KLSAgICAgICAgdW5pY29kZSBvciBhIGJpbmFyeSBp
biBzdHIuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIHBheWxvYWQgZGF0YSBvZiB0
aGUgZnJhbWUKLSAgICAgICAgICAgIC0gYXMgdW5pY29kZSBpbnN0YW5jZSBpZiByZWNlaXZlZCB0
ZXh0IGZyYW1lCi0gICAgICAgICAgICAtIGFzIHN0ciBpbnN0YW5jZSBpZiByZWNlaXZlZCBiaW5h
cnkgZnJhbWUKLSAgICAgICAgICAgIG9yIE5vbmUgaWZmIHJlY2VpdmVkIGNsb3NpbmcgaGFuZHNo
YWtlLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246
IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICBjb25u
ZWN0aW9uLgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4g
cmVhZCByZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAgICAg
SW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkCi0g
ICAgICAgICAgICAgICAgZGF0YS4KLSAgICAgICAgICAgIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b246IHdoZW4gdGhlIHJlY2VpdmVkIGZyYW1lIGhhcwotICAgICAgICAgICAgICAgIGZsYWdzLCBv
cGNvZGUgd2UgY2Fubm90IGhhbmRsZS4gWW91IGNhbiBpZ25vcmUgdGhpcwotICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbiBhbmQgY29udGludWUgcmVjZWl2aW5nIHRoZSBuZXh0IGZyYW1lLgotICAg
ICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkOgot
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3NpbmcgJwot
ICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxsIGJsb2NrIGlmIG5vIGJ5dGVzIGFyZSBhdmFpbGFi
bGUuCi0gICAgICAgICAgICAjIFRpbWVvdXQgaXMgY29udHJvbGxlZCBieSBUaW1lT3V0IGRpcmVj
dGl2ZSBvZiBBcGFjaGUuCi0KLSAgICAgICAgICAgIGZyYW1lID0gc2VsZi5fcmVjZWl2ZV9mcmFt
ZV9hc19mcmFtZV9vYmplY3QoKQotCi0gICAgICAgICAgICAjIENoZWNrIHRoZSBjb25zdHJhaW50
IG9uIHRoZSBwYXlsb2FkIHNpemUgZm9yIGNvbnRyb2wgZnJhbWVzCi0gICAgICAgICAgICAjIGJl
Zm9yZSBleHRlbnNpb24gcHJvY2Vzc2VzIHRoZSBmcmFtZS4KLSAgICAgICAgICAgICMgU2VlIGFs
c28gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NSNzZWN0aW9uLTUuNQotICAgICAg
ICAgICAgaWYgKGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpIGFuZAotICAg
ICAgICAgICAgICAgIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEyNSk6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnUGF5bG9h
ZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFtZXMgbXVzdCBiZSAxMjUgYnl0ZXMgb3IgJwotICAg
ICAgICAgICAgICAgICAgICAnbGVzcycpCi0KLSAgICAgICAgICAgIGZvciBmcmFtZV9maWx0ZXIg
aW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzOgotICAgICAgICAgICAgICAg
IGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgICAgIGlmIGZyYW1lLnJzdjEg
b3IgZnJhbWUucnN2MiBvciBmcmFtZS5yc3YzOgotICAgICAgICAgICAgICAgIHJhaXNlIFVuc3Vw
cG9ydGVkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBm
bGFnIGlzIHNldCAocnN2ID0gJWQlZCVkKScgJQotICAgICAgICAgICAgICAgICAgICAoZnJhbWUu
cnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MykpCi0KLSAgICAgICAgICAgIG1lc3NhZ2UgPSBz
ZWxmLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKGZyYW1lKQotICAgICAgICAgICAgaWYgbWVzc2Fn
ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIGZvciBt
ZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVyczoK
LSAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKG1lc3NhZ2Up
Ci0KLSAgICAgICAgICAgIGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RF
X1RFWFQ6Ci0gICAgICAgICAgICAgICAgIyBUaGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rpb24g
NC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKLSAgICAgICAgICAgICAgICAjIGNoYXJhY3RlcnMg
bXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNFTUVOVAotICAgICAgICAgICAgICAg
ICMgQ0hBUkFDVEVSLgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIG1lc3NhZ2UuZGVjb2RlKCd1dGYtOCcpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFVu
aWNvZGVEZWNvZGVFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlk
VVRGOEV4Y2VwdGlvbihlKQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUg
PT0gY29tbW9uLk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UK
LSAgICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVf
Q0xPU0U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19jbG9zZV9tZXNzYWdlKG1lc3Nh
Z2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGVsaWYgc2VsZi5f
b3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfUElORzoKLSAgICAgICAgICAgICAgICBz
ZWxmLl9wcm9jZXNzX3BpbmdfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgZWxpZiBzZWxm
Ll9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9QT05HOgotICAgICAgICAgICAgICAg
IHNlbGYuX3Byb2Nlc3NfcG9uZ19tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgICAgICdPcGNvZGUgJWQgaXMgbm90IHN1cHBvcnRlZCcgJSBzZWxmLl9vcmlnaW5h
bF9vcGNvZGUpCi0KLSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgY29kZSwg
cmVhc29uKToKLSAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNv
ZGUsIHJlYXNvbikKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfY2xvc2VfZnJhbWUoCi0gICAgICAg
ICAgICBib2R5LCBtYXNrPXNlbGYuX29wdGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgZnJh
bWVfZmlsdGVycz1zZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0KLSAgICAg
ICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICBzZWxm
Ll93cml0ZShmcmFtZSkKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9Y29t
bW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHdhaXRfcmVzcG9uc2U9VHJ1ZSk6Ci0gICAgICAgICIiIkNsb3NlcyBhIFdlYlNvY2tl
dCBjb25uZWN0aW9uLiBOb3RlIHRoYXQgdGhpcyBtZXRob2QgYmxvY2tzIHVudGlsCi0gICAgICAg
IGl0IHJlY2VpdmVzIGFja25vd2xlZGdlbWVudCB0byB0aGUgY2xvc2luZyBoYW5kc2hha2UuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNvZGU6IFN0YXR1cyBjb2RlIGZvciBjbG9zZSBm
cmFtZS4gSWYgY29kZSBpcyBOb25lLCBhIGNsb3NlCi0gICAgICAgICAgICAgICAgZnJhbWUgd2l0
aCBlbXB0eSBib2R5IHdpbGwgYmUgc2VudC4KLSAgICAgICAgICAgIHJlYXNvbjogc3RyaW5nIHJl
cHJlc2VudGluZyBjbG9zZSByZWFzb24uCi0gICAgICAgICAgICB3YWl0X3Jlc3BvbnNlOiBUcnVl
IHdoZW4gY2FsbGVyIHdhbnQgdG8gd2FpdCB0aGUgcmVzcG9uc2UuCi0gICAgICAgIFJhaXNlczoK
LSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiByZWFzb24gaXMgc3BlY2lm
aWVkIHdpdGggY29kZSBOb25lCi0gICAgICAgICAgICBvciByZWFzb24gaXMgbm90IGFuIGluc3Rh
bmNlIG9mIGJvdGggc3RyIGFuZCB1bmljb2RlLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgY2xvc2VfY29ubmVjdGlvbiBidXQg
c2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRlZCcpCi0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICAjIFdoZW4gd2UgcmVjZWl2ZSBhIGNsb3NlIGZyYW1lLCB3ZSBjYWxsIF9wcm9jZXNzX2Ns
b3NlX21lc3NhZ2UoKS4KLSAgICAgICAgIyBfcHJvY2Vzc19jbG9zZV9tZXNzYWdlKCkgaW1tZWRp
YXRlbHkgYWNrbm93bGVkZ2VzIHRvIHRoZQotICAgICAgICAjIHNlcnZlci1pbml0aWF0ZWQgY2xv
c2luZyBoYW5kc2hha2UgYW5kIHNldHMgc2VydmVyX3Rlcm1pbmF0ZWQgdG8KLSAgICAgICAgIyBU
cnVlLiBTbywgaGVyZSB3ZSBjYW4gYXNzdW1lIHRoYXQgd2UgaGF2ZW4ndCByZWNlaXZlZCBhbnkg
Y2xvc2UKLSAgICAgICAgIyBmcmFtZS4gV2UncmUgaW5pdGlhdGluZyBhIGNsb3NpbmcgaGFuZHNo
YWtlLgotCi0gICAgICAgIGlmIGNvZGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHJlYXNvbiBp
cyBub3QgTm9uZSBhbmQgbGVuKHJlYXNvbikgPiAwOgotICAgICAgICAgICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJlYXNvbiBt
dXN0IG5vdCBiZSBzcGVjaWZpZWQgaWYgY29kZSBpcyBOb25lJykKLSAgICAgICAgICAgIHJlYXNv
biA9ICcnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZWFz
b24sIHN0cikgYW5kIG5vdCBpc2luc3RhbmNlKHJlYXNvbiwgdW5pY29kZSk6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAn
Y2xvc2UgcmVhc29uIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2Ygc3RyIG9yIHVuaWNvZGUnKQotCi0g
ICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2UoY29kZSwgcmVhc29uKQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnSW5pdGlhdGVkIGNsb3NpbmcgaGFu
ZHNoYWtlIChjb2RlPSVyLCByZWFzb249JXIpJywKLSAgICAgICAgICAgIGNvZGUsIHJlYXNvbikK
LQotICAgICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX0dPSU5HX0FXQVkgb3IKLSAgICAg
ICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19QUk9UT0NPTF9FUlJPUikgb3Igbm90IHdhaXRf
cmVzcG9uc2U6Ci0gICAgICAgICAgICAjIEl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byB3YWl0IGZv
ciBhIGNsb3NlIGZyYW1lIGlmIHRoZSByZWFzb24gaXMKLSAgICAgICAgICAgICMgcHJvdG9jb2wg
ZXJyb3Igb3IgdGhhdCB0aGUgc2VydmVyIGlzIGdvaW5nIGF3YXkuIEZvciBzb21lIG9mCi0gICAg
ICAgICAgICAjIG90aGVyIHJlYXNvbnMsIGl0IG1pZ2h0IG5vdCBtYWtlIHNlbnNlIHRvIHdhaXQg
Zm9yIGEgY2xvc2UgZnJhbWUsCi0gICAgICAgICAgICAjIGJ1dCBpdCdzIG5vdCBjbGVhciwgeWV0
LgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiAyLiB3YWl0IHVu
dGlsIHRoZSAvY2xpZW50IHRlcm1pbmF0ZWQvIGZsYWcgaGFzIGJlZW4gc2V0LAotICAgICAgICAj
IG9yIHVudGlsIGEgc2VydmVyLWRlZmluZWQgdGltZW91dCBleHBpcmVzLgotICAgICAgICAjCi0g
ICAgICAgICMgRm9yIG5vdywgd2UgZXhwZWN0IHJlY2VpdmluZyBjbG9zaW5nIGhhbmRzaGFrZSBy
aWdodCBhZnRlciBzZW5kaW5nCi0gICAgICAgICMgb3V0IGNsb3NpbmcgaGFuZHNoYWtlLgotICAg
ICAgICBtZXNzYWdlID0gc2VsZi5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBtZXNzYWdl
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ0RpZG5cJ3QgcmVjZWl2ZSB2YWxpZCBhY2sgZm9yIGNs
b3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgIyBUT0RPOiAzLiBjbG9zZSB0aGUgV2ViU29ja2V0
IGNvbm5lY3Rpb24uCi0gICAgICAgICMgbm90ZTogbW9kX3B5dGhvbiBDb25uZWN0aW9uIChtcF9j
b25uKSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0aG9kLgotCi0gICAgZGVmIHNlbmRfcGluZyhzZWxm
LCBib2R5PScnKToKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfcGluZ19mcmFtZSgKLSAgICAgICAg
ICAgIGJvZHksCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycykKLSAgICAgICAgc2VsZi5f
d3JpdGUoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5fcGluZ19xdWV1ZS5hcHBlbmQoYm9keSkKLQot
ICAgIGRlZiBfc2VuZF9wb25nKHNlbGYsIGJvZHkpOgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9w
b25nX2ZyYW1lKAotICAgICAgICAgICAgYm9keSwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
bWFza19zZW5kLAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0
ZXJzKQotICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAgIGRlZiBnZXRfbGFzdF9yZWNl
aXZlZF9vcGNvZGUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIG9wY29kZSBvZiB0aGUg
V2ViU29ja2V0IG1lc3NhZ2Ugd2hpY2ggdGhlIGxhc3QgcmVjZWl2ZWQKLSAgICAgICAgZnJhbWUg
YmVsb25ncyB0by4gVGhlIHJldHVybiB2YWx1ZSBpcyB2YWxpZCBpZmYgaW1tZWRpYXRlbHkgYWZ0
ZXIKLSAgICAgICAgcmVjZWl2ZV9tZXNzYWdlIGNhbGwuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHJldHVybiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2NvbW1vbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY3M2Q2NjU2
MGQ2NDQxNTVlZTBmNWYyYTU1MDk4ODk4NzEzMGQ5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwzMDYgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhp
cyBmaWxlIG11c3Qgbm90IGRlcGVuZCBvbiBhbnkgbW9kdWxlIHNwZWNpZmljIHRvIHRoZSBXZWJT
b2NrZXQgcHJvdG9jb2wuCi0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0
cF9oZWFkZXJfdXRpbAotCi0KLSMgQWRkaXRpb25hbCBsb2cgbGV2ZWwgZGVmaW5pdGlvbnMuCi1M
T0dMRVZFTF9GSU5FID0gOQotCi0jIENvbnN0YW50cyBpbmRpY2F0aW5nIFdlYlNvY2tldCBwcm90
b2NvbCB2ZXJzaW9uLgotVkVSU0lPTl9ISVhJRTc1ID0gLTEKLVZFUlNJT05fSFlCSTAwID0gMAot
VkVSU0lPTl9IWUJJMDEgPSAxCi1WRVJTSU9OX0hZQkkwMiA9IDIKLVZFUlNJT05fSFlCSTAzID0g
MgotVkVSU0lPTl9IWUJJMDQgPSA0Ci1WRVJTSU9OX0hZQkkwNSA9IDUKLVZFUlNJT05fSFlCSTA2
ID0gNgotVkVSU0lPTl9IWUJJMDcgPSA3Ci1WRVJTSU9OX0hZQkkwOCA9IDgKLVZFUlNJT05fSFlC
STA5ID0gOAotVkVSU0lPTl9IWUJJMTAgPSA4Ci1WRVJTSU9OX0hZQkkxMSA9IDgKLVZFUlNJT05f
SFlCSTEyID0gOAotVkVSU0lPTl9IWUJJMTMgPSAxMwotVkVSU0lPTl9IWUJJMTQgPSAxMwotVkVS
U0lPTl9IWUJJMTUgPSAxMwotVkVSU0lPTl9IWUJJMTYgPSAxMwotVkVSU0lPTl9IWUJJMTcgPSAx
MwotCi0jIENvbnN0YW50cyBpbmRpY2F0aW5nIFdlYlNvY2tldCBwcm90b2NvbCBsYXRlc3QgdmVy
c2lvbi4KLVZFUlNJT05fSFlCSV9MQVRFU1QgPSBWRVJTSU9OX0hZQkkxMwotCi0jIFBvcnQgbnVt
YmVycwotREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAotREVGQVVMVF9XRUJfU09DS0VUX1NF
Q1VSRV9QT1JUID0gNDQzCi0KLSMgU2NoZW1lcwotV0VCX1NPQ0tFVF9TQ0hFTUUgPSAnd3MnCi1X
RUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUgPSAnd3NzJwotCi0jIEZyYW1lIG9wY29kZXMgZGVmaW5l
ZCBpbiB0aGUgc3BlYy4KLU9QQ09ERV9DT05USU5VQVRJT04gPSAweDAKLU9QQ09ERV9URVhUID0g
MHgxCi1PUENPREVfQklOQVJZID0gMHgyCi1PUENPREVfQ0xPU0UgPSAweDgKLU9QQ09ERV9QSU5H
ID0gMHg5Ci1PUENPREVfUE9ORyA9IDB4YQotCi0jIFVVSURzIHVzZWQgYnkgSHlCaSAwNCBhbmQg
bGF0ZXIgb3BlbmluZyBoYW5kc2hha2UgYW5kIGZyYW1lIG1hc2tpbmcuCi1XRUJTT0NLRVRfQUND
RVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVBQjBEQzg1QjExJwotCi0jIE9w
ZW5pbmcgaGFuZHNoYWtlIGhlYWRlciBuYW1lcyBhbmQgZXhwZWN0ZWQgdmFsdWVzLgotVVBHUkFE
RV9IRUFERVIgPSAnVXBncmFkZScKLVdFQlNPQ0tFVF9VUEdSQURFX1RZUEUgPSAnd2Vic29ja2V0
JwotV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1ID0gJ1dlYlNvY2tldCcKLUNPTk5FQ1RJ
T05fSEVBREVSID0gJ0Nvbm5lY3Rpb24nCi1VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSA9ICdVcGdy
YWRlJwotSE9TVF9IRUFERVIgPSAnSG9zdCcKLU9SSUdJTl9IRUFERVIgPSAnT3JpZ2luJwotU0VD
X1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtT3JpZ2luJwotU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5JwotU0VDX1dFQlNPQ0tFVF9B
Q0NFUFRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0JwotU0VDX1dFQlNPQ0tFVF9WRVJT
SU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVZlcnNpb24nCi1TRUNfV0VCU09DS0VUX1BST1RP
Q09MX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJwotU0VDX1dFQlNPQ0tFVF9FWFRF
TlNJT05TX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnCi1TRUNfV0VCU09DS0VU
X0RSQUZUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LURyYWZ0JwotU0VDX1dFQlNPQ0tFVF9LRVkx
X0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTEnCi1TRUNfV0VCU09DS0VUX0tFWTJfSEVBREVS
ID0gJ1NlYy1XZWJTb2NrZXQtS2V5MicKLVNFQ19XRUJTT0NLRVRfTE9DQVRJT05fSEVBREVSID0g
J1NlYy1XZWJTb2NrZXQtTG9jYXRpb24nCi0KLSMgRXh0ZW5zaW9ucwotREVGTEFURV9GUkFNRV9F
WFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKLVBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04g
PSAncGVybWVzc2FnZS1kZWZsYXRlJwotWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04g
PSAneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScKLU1VWF9FWFRFTlNJT04gPSAnbXV4X0RPX05PVF9V
U0UnCi0KLSMgU3RhdHVzIGNvZGVzCi0jIENvZGUgU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCwg
U1RBVFVTX0FCTk9STUFMX0NMT1NVUkUsIGFuZAotIyBTVEFUVVNfVExTX0hBTkRTSEFLRSBhcmUg
cHNldWRvIGNvZGVzIHRvIGluZGljYXRlIHNwZWNpZmljIGVycm9yIGNhc2VzLgotIyBDb3VsZCBu
b3QgYmUgdXNlZCBmb3IgY29kZXMgaW4gYWN0dWFsIGNsb3NpbmcgZnJhbWVzLgotIyBBcHBsaWNh
dGlvbiBsZXZlbCBlcnJvcnMgbXVzdCB1c2UgY29kZXMgaW4gdGhlIHJhbmdlCi0jIFNUQVRVU19V
U0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9QUklWQVRFX01BWC4gVGhlIGNvZGVz
IGluIHRoZQotIyByYW5nZSBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgdG8gU1RBVFVTX1VT
RVJfUkVHSVNURVJFRF9NQVggYXJlIG1hbmFnZWQKLSMgYnkgSUFOQS4gVXN1YWxseSBhcHBsaWNh
dGlvbiBtdXN0IGRlZmluZSB1c2VyIHByb3RvY29sIGxldmVsIGVycm9ycyBpbiB0aGUKLSMgcmFu
Z2UgU1RBVFVTX1VTRVJfUFJJVkFURV9CQVNFIHRvIFNUQVRVU19VU0VSX1BSSVZBVEVfTUFYLgot
U1RBVFVTX05PUk1BTF9DTE9TVVJFID0gMTAwMAotU1RBVFVTX0dPSU5HX0FXQVkgPSAxMDAxCi1T
VEFUVVNfUFJPVE9DT0xfRVJST1IgPSAxMDAyCi1TVEFUVVNfVU5TVVBQT1JURURfREFUQSA9IDEw
MDMKLVNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAxMDA1Ci1TVEFUVVNfQUJOT1JNQUxfQ0xP
U1VSRSA9IDEwMDYKLVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSA9IDEwMDcKLVNU
QVRVU19QT0xJQ1lfVklPTEFUSU9OID0gMTAwOAotU1RBVFVTX01FU1NBR0VfVE9PX0JJRyA9IDEw
MDkKLVNUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OID0gMTAxMAotU1RBVFVTX0lOVEVSTkFMX0VO
RFBPSU5UX0VSUk9SID0gMTAxMQotU1RBVFVTX1RMU19IQU5EU0hBS0UgPSAxMDE1Ci1TVEFUVVNf
VVNFUl9SRUdJU1RFUkVEX0JBU0UgPSAzMDAwCi1TVEFUVVNfVVNFUl9SRUdJU1RFUkVEX01BWCA9
IDM5OTkKLVNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSA9IDQwMDAKLVNUQVRVU19VU0VSX1BSSVZB
VEVfTUFYID0gNDk5OQotIyBGb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXJlIGFsaWFzZXMgdG8ga2Vl
cCBjb21wYXRpYmlsaXR5LiBBcHBsaWNhdGlvbnMgbXVzdAotIyBub3QgdXNlIHRoZXNlIG9ic29s
ZXRlZCBkZWZpbml0aW9ucyBhbnltb3JlLgotU1RBVFVTX05PUk1BTCA9IFNUQVRVU19OT1JNQUxf
Q0xPU1VSRQotU1RBVFVTX1VOU1VQUE9SVEVEID0gU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEKLVNU
QVRVU19DT0RFX05PVF9BVkFJTEFCTEUgPSBTVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVECi1TVEFU
VVNfQUJOT1JNQUxfQ0xPU0UgPSBTVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRQotU1RBVFVTX0lOVkFM
SURfRlJBTUVfUEFZTE9BRCA9IFNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQQotU1RB
VFVTX01BTkRBVE9SWV9FWFQgPSBTVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lPTgotCi0jIEhUVFAg
c3RhdHVzIGNvZGVzCi1IVFRQX1NUQVRVU19CQURfUkVRVUVTVCA9IDQwMAotSFRUUF9TVEFUVVNf
Rk9SQklEREVOID0gNDAzCi1IVFRQX1NUQVRVU19OT1RfRk9VTkQgPSA0MDQKLQotCi1kZWYgaXNf
Y29udHJvbF9vcGNvZGUob3Bjb2RlKToKLSAgICByZXR1cm4gKG9wY29kZSA+PiAzKSA9PSAxCi0K
LQotY2xhc3MgRXh0ZW5zaW9uUGFyYW1ldGVyKG9iamVjdCk6Ci0KLSAgICAiIiJUaGlzIGlzIGV4
Y2hhbmdlZCBvbiBleHRlbnNpb24gbmVnb3RpYXRpb24gaW4gb3BlbmluZyBoYW5kc2hha2UuIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYuX25hbWUgPSBu
YW1lCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENoYW5nZSB0aGUgZGF0YSBzdHJ1Y3R1cmUg
dG8gbW9yZSBlZmZpY2llbnQgb25lIHN1Y2gKLSAgICAgICAgIyBhcyBkaWN0IHdoZW4gdGhlIHNw
ZWMgY2hhbmdlcyB0byBzYXkgbGlrZQotICAgICAgICAjIC0gUGFyYW1ldGVyIG5hbWVzIG11c3Qg
YmUgdW5pcXVlCi0gICAgICAgICMgLSBUaGUgb3JkZXIgb2YgcGFyYW1ldGVycyBpcyBub3Qgc2ln
bmlmaWNhbnQKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IFtdCi0KLSAgICBkZWYgbmFtZShz
ZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBleHRlbnNpb24gbmFtZS4iIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX25hbWUKLQotICAgIGRlZiBhZGRfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZh
bHVlKToKLSAgICAgICAgIiIiQWRkIGEgcGFyYW1ldGVyLiIiIgotICAgICAgICBzZWxmLl9wYXJh
bWV0ZXJzLmFwcGVuZCgobmFtZSwgdmFsdWUpKQotCi0gICAgZGVmIGdldF9wYXJhbWV0ZXJzKHNl
bGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHBhcmFtZXRlcnMuIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9wYXJhbWV0ZXJzCi0KLSAgICBkZWYgZ2V0X3BhcmFtZXRlcl9uYW1lcyhzZWxmKToK
LSAgICAgICAgIiIiUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVycy4iIiIKLSAgICAg
ICAgcmV0dXJuIFtuYW1lIGZvciBuYW1lLCB1bnVzZWRfdmFsdWUgaW4gc2VsZi5fcGFyYW1ldGVy
c10KLQotICAgIGRlZiBoYXNfcGFyYW1ldGVyKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJUZXN0
IGlmIGEgcGFyYW1ldGVyIGV4aXN0cy4iIiIKLSAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFt
X3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Ci0gICAgICAgICAgICBpZiBwYXJhbV9uYW1lID09
IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLSAgICBkZWYgZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLCBuYW1lKToKLSAgICAgICAgIiIi
R2V0IHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIHBhcmFtZXRlci4iIiIKLSAgICAgICAgZm9yIHBh
cmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6Ci0gICAgICAgICAgICBp
ZiBwYXJhbV9uYW1lID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmFtX3ZhbHVl
Ci0KLQotY2xhc3MgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbihFeGNlcHRpb24pOgotCi0gICAg
IiIiRXhjZXB0aW9uIHRvIGhhbmRsZSBlcnJvcnMgaW4gZXh0ZW5zaW9uIHBhcnNpbmcuIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHN1cGVyKEV4dGVuc2lvblBh
cnNpbmdFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0KLQotZGVmIF9wYXJzZV9leHRl
bnNpb25fcGFyYW0oc3RhdGUsIGRlZmluaXRpb24pOgotICAgIHBhcmFtX25hbWUgPSBodHRwX2hl
YWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0KLSAgICBpZiBwYXJhbV9uYW1lIGlzIE5v
bmU6Ci0gICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oJ05vIHZhbGlkIHBh
cmFtZXRlciBuYW1lIGZvdW5kJykKLQotICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3Nl
cyhzdGF0ZSkKLQotICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0
YXRlLCAnPScpOgotICAgICAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIocGFyYW1fbmFtZSwg
Tm9uZSkKLSAgICAgICAgcmV0dXJuCi0KLSAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdz
ZXMoc3RhdGUpCi0KLSAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgY29kZSB0byB2YWxpZGF0ZSB0
aGF0IHBhcnNlZCBwYXJhbV92YWx1ZSBpcyB0b2tlbgotICAgIHBhcmFtX3ZhbHVlID0gaHR0cF9o
ZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpCi0gICAgaWYg
cGFyYW1fdmFsdWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2Vw
dGlvbigKLSAgICAgICAgICAgICdObyB2YWxpZCBwYXJhbWV0ZXIgdmFsdWUgZm91bmQgb24gdGhl
IHJpZ2h0LWhhbmQgc2lkZSBvZiAnCi0gICAgICAgICAgICAncGFyYW1ldGVyICVyJyAlIHBhcmFt
X25hbWUpCi0KLSAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIocGFyYW1fbmFtZSwgcGFyYW1f
dmFsdWUpCi0KLQotZGVmIF9wYXJzZV9leHRlbnNpb24oc3RhdGUpOgotICAgIGV4dGVuc2lvbl90
b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0ZSkKLSAgICBpZiBleHRl
bnNpb25fdG9rZW4gaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGV4dGVuc2lv
biA9IEV4dGVuc2lvblBhcmFtZXRlcihleHRlbnNpb25fdG9rZW4pCi0KLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAg
ICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICc7Jyk6Ci0g
ICAgICAgICAgICBicmVhawotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3Nl
cyhzdGF0ZSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBfcGFyc2VfZXh0ZW5zaW9uX3Bh
cmFtKHN0YXRlLCBleHRlbnNpb24pCi0gICAgICAgIGV4Y2VwdCBFeHRlbnNpb25QYXJzaW5nRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgcGFyYW1ldGVyIGZvciAlciAoJXIp
JyAlCi0gICAgICAgICAgICAgICAgKGV4dGVuc2lvbl90b2tlbiwgZSkpCi0KLSAgICByZXR1cm4g
ZXh0ZW5zaW9uCi0KLQotZGVmIHBhcnNlX2V4dGVuc2lvbnMoZGF0YSk6Ci0gICAgIiIiUGFyc2Ug
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZS4KLQotICAgIFJldHVybnMgYSBs
aXN0IG9mIEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3RzLgotICAgIExlYWRpbmcgTFdTZXMgbXVz
dCBiZSB0cmltbWVkLgotICAgICIiIgotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJz
aW5nU3RhdGUoZGF0YSkKLQotICAgIGV4dGVuc2lvbl9saXN0ID0gW10KLSAgICB3aGlsZSBUcnVl
OgotICAgICAgICBleHRlbnNpb24gPSBfcGFyc2VfZXh0ZW5zaW9uKHN0YXRlKQotICAgICAgICBp
ZiBleHRlbnNpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBleHRlbnNpb25fbGlzdC5hcHBl
bmQoZXh0ZW5zaW9uKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3Nlcyhz
dGF0ZSkKLQotICAgICAgICBpZiBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpIGlzIE5vbmU6
Ci0gICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNv
bnN1bWVfc3RyaW5nKHN0YXRlLCAnLCcpOgotICAgICAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFy
c2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJT
b2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXI6ICcKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgYSBj
b21tYSBidXQgZm91bmQgJXInICUKLSAgICAgICAgICAgICAgICBodHRwX2hlYWRlcl91dGlsLnBl
ZWsoc3RhdGUpKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0
ZSkKLQotICAgIGlmIGxlbihleHRlbnNpb25fbGlzdCkgPT0gMDoKLSAgICAgICAgcmFpc2UgRXh0
ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICdObyB2YWxpZCBleHRlbnNpb24g
ZW50cnkgZm91bmQnKQotCi0gICAgcmV0dXJuIGV4dGVuc2lvbl9saXN0Ci0KLQotZGVmIGZvcm1h
dF9leHRlbnNpb24oZXh0ZW5zaW9uKToKLSAgICAiIiJGb3JtYXQgYW4gRXh0ZW5zaW9uUGFyYW1l
dGVyIG9iamVjdC4iIiIKLSAgICBmb3JtYXR0ZWRfcGFyYW1zID0gW2V4dGVuc2lvbi5uYW1lKCld
Ci0gICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIGV4dGVuc2lvbi5nZXRfcGFyYW1l
dGVycygpOgotICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgZm9y
bWF0dGVkX3BhcmFtcy5hcHBlbmQocGFyYW1fbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHF1b3RlZF92YWx1ZSA9IGh0dHBfaGVhZGVyX3V0aWwucXVvdGVfaWZfbmVjZXNzYXJ5KHBh
cmFtX3ZhbHVlKQotICAgICAgICAgICAgZm9ybWF0dGVkX3BhcmFtcy5hcHBlbmQoJyVzPSVzJyAl
IChwYXJhbV9uYW1lLCBxdW90ZWRfdmFsdWUpKQotICAgIHJldHVybiAnOyAnLmpvaW4oZm9ybWF0
dGVkX3BhcmFtcykKLQotCi1kZWYgZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9uX2xpc3QpOgot
ICAgICIiIkZvcm1hdCBhIGxpc3Qgb2YgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMuIiIiCi0g
ICAgZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0ID0gW10KLSAgICBmb3IgZXh0ZW5zaW9uIGluIGV4
dGVuc2lvbl9saXN0OgotICAgICAgICBmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QuYXBwZW5kKGZv
cm1hdF9leHRlbnNpb24oZXh0ZW5zaW9uKSkKLSAgICByZXR1cm4gJywgJy5qb2luKGZvcm1hdHRl
ZF9leHRlbnNpb25fbGlzdCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZGlz
cGF0Y2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1OTFmZThiOWU5ZWFmMmU4
ZWI0ZDZkOGJjZmNiYTcyZTAzMGJiNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwzOTMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRGlzcGF0Y2gg
V2ViU29ja2V0IHJlcXVlc3QuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1p
bXBvcnQgcmUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IG1zZ3V0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBzdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0K
LQotX1NPVVJDRV9QQVRIX1BBVFRFUk4gPSByZS5jb21waWxlKHInKD9pKV93c2hcLnB5JCcpCi1f
U09VUkNFX1NVRkZJWCA9ICdfd3NoLnB5JwotX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05B
TUUgPSAnd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UnCi1fVFJBTlNGRVJfREFUQV9IQU5E
TEVSX05BTUUgPSAnd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhJwotX1BBU1NJVkVfQ0xPU0lOR19I
QU5EU0hBS0VfSEFORExFUl9OQU1FID0gKAotICAgICd3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2lu
Z19oYW5kc2hha2UnKQotCi0KLWNsYXNzIERpc3BhdGNoRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0g
ICAgIiIiRXhjZXB0aW9uIGluIGRpc3BhdGNoaW5nIFdlYlNvY2tldCByZXF1ZXN0LiIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfTk9U
X0ZPVU5EKToKLSAgICAgICAgc3VwZXIoRGlzcGF0Y2hFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9f
KG5hbWUpCi0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0KLQotZGVmIF9kZWZhdWx0X3Bh
c3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KToKLSAgICAiIiJEZWZhdWx0
IHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSBoYW5kbGVyLiIiIgotCi0gICAg
cmV0dXJuIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnCi0KLQotZGVmIF9ub3JtYWxp
emVfcGF0aChwYXRoKToKLSAgICAiIiJOb3JtYWxpemUgcGF0aC4KLQotICAgIEFyZ3M6Ci0gICAg
ICAgIHBhdGg6IHRoZSBwYXRoIHRvIG5vcm1hbGl6ZS4KLQotICAgIFBhdGggaXMgY29udmVydGVk
IHRvIHRoZSBhYnNvbHV0ZSBwYXRoLgotICAgIFRoZSBpbnB1dCBwYXRoIGNhbiB1c2UgZWl0aGVy
ICdcXCcgb3IgJy8nIGFzIHRoZSBzZXBhcmF0b3IuCi0gICAgVGhlIG5vcm1hbGl6ZWQgcGF0aCBh
bHdheXMgdXNlcyAnLycgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0uCi0gICAgIiIiCi0KLSAg
ICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsIG9zLnBhdGguc2VwKQotICAgIHBhdGggPSBvcy5w
YXRoLnJlYWxwYXRoKHBhdGgpCi0gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAnLycpCi0g
ICAgcmV0dXJuIHBhdGgKLQotCi1kZWYgX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRl
cihiYXNlX2Rpcik6Ci0gICAgIiIiUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhl
IHBhdGggb2YgYSBXZWJTb2NrZXQgaGFuZGxlciBzb3VyY2UKLSAgICBmaWxlIHRvIGEgcmVzb3Vy
Y2Ugc3RyaW5nIGJ5IHJlbW92aW5nIHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVjdG9yeSBmcm9t
Ci0gICAgaXRzIGhlYWQsIHJlbW92aW5nIF9TT1VSQ0VfU1VGRklYIGZyb20gaXRzIHRhaWwsIGFu
ZCByZXBsYWNpbmcgcGF0aAotICAgIHNlcGFyYXRvcnMgaW4gaXQgd2l0aCAnLycuCi0KLSAgICBB
cmdzOgotICAgICAgICBiYXNlX2RpcjogdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5Lgot
ICAgICIiIgotCi0gICAgYmFzZV9kaXIgPSBfbm9ybWFsaXplX3BhdGgoYmFzZV9kaXIpCi0KLSAg
ICBiYXNlX2xlbiA9IGxlbihiYXNlX2RpcikKLSAgICBzdWZmaXhfbGVuID0gbGVuKF9TT1VSQ0Vf
U1VGRklYKQotCi0gICAgZGVmIGNvbnZlcnRlcihwYXRoKToKLSAgICAgICAgaWYgbm90IHBhdGgu
ZW5kc3dpdGgoX1NPVVJDRV9TVUZGSVgpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgIyBfbm9ybWFsaXplX3BhdGggbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIHJlc29sdmluZyBz
eW1saW5rIGJyZWFrcwotICAgICAgICAjIGZvbGxvd2luZyBwYXRoIGNoZWNrLgotICAgICAgICBw
YXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKLSAgICAgICAgaWYgbm90IHBhdGguc3RhcnRz
d2l0aChiYXNlX2Rpcik6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4g
cGF0aFtiYXNlX2xlbjotc3VmZml4X2xlbl0KLQotICAgIHJldHVybiBjb252ZXJ0ZXIKLQotCi1k
ZWYgX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoZGlyZWN0b3J5KToKLSAgICAiIiJSZXR1
cm5zIGEgZ2VuZXJhdG9yIHRoYXQgZW51bWVyYXRlcyBXZWJTb2NrZXQgSGFuZGxlciBzb3VyY2Ug
ZmlsZSBuYW1lcwotICAgIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBm
b3Igcm9vdCwgdW51c2VkX2RpcnMsIGZpbGVzIGluIG9zLndhbGsoZGlyZWN0b3J5KToKLSAgICAg
ICAgZm9yIGJhc2UgaW4gZmlsZXM6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHJv
b3QsIGJhc2UpCi0gICAgICAgICAgICBpZiBfU09VUkNFX1BBVEhfUEFUVEVSTi5zZWFyY2gocGF0
aCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcGF0aAotCi0KLWNsYXNzIF9IYW5kbGVyU3VpdGUo
b2JqZWN0KToKLSAgICAiIiJBIGhhbmRsZXIgc3VpdGUgaG9sZGVyIGNsYXNzLiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGRvX2V4dHJhX2hhbmRzaGFrZSwgdHJhbnNmZXJfZGF0YSwKLSAg
ICAgICAgICAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYu
ZG9fZXh0cmFfaGFuZHNoYWtlID0gZG9fZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHNlbGYudHJh
bnNmZXJfZGF0YSA9IHRyYW5zZmVyX2RhdGEKLSAgICAgICAgc2VsZi5wYXNzaXZlX2Nsb3Npbmdf
aGFuZHNoYWtlID0gcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZQotCi0KLWRlZiBfc291cmNlX2hh
bmRsZXJfZmlsZShoYW5kbGVyX2RlZmluaXRpb24pOgotICAgICIiIlNvdXJjZSBhIGhhbmRsZXIg
ZGVmaW5pdGlvbiBzdHJpbmcuCi0KLSAgICBBcmdzOgotICAgICAgICBoYW5kbGVyX2RlZmluaXRp
b246IGEgc3RyaW5nIGNvbnRhaW5pbmcgUHl0aG9uIHN0YXRlbWVudHMgdGhhdCBkZWZpbmUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyIGZ1bmN0aW9ucy4KLSAgICAiIiIKLQot
ICAgIGdsb2JhbF9kaWMgPSB7fQotICAgIHRyeToKLSAgICAgICAgZXhlYyhoYW5kbGVyX2RlZmlu
aXRpb24sIGdsb2JhbF9kaWMpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgcmFpc2Ug
RGlzcGF0Y2hFeGNlcHRpb24oJ0Vycm9yIGluIHNvdXJjaW5nIGhhbmRsZXI6JyArCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpCi0gICAgcGFz
c2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gTm9uZQotICAgIHRyeToKLSAgICAgICAg
cGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gX2V4dHJhY3RfaGFuZGxlcigKLSAg
ICAgICAgICAgIGdsb2JhbF9kaWMsIF9QQVNTSVZFX0NMT1NJTkdfSEFORFNIQUtFX0hBTkRMRVJf
TkFNRSkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2hhbmRsZXIgPSAoCi0gICAgICAgICAgICBfZGVmYXVsdF9wYXNzaXZlX2Nsb3Npbmdf
aGFuZHNoYWtlX2hhbmRsZXIpCi0gICAgcmV0dXJuIF9IYW5kbGVyU3VpdGUoCi0gICAgICAgIF9l
eHRyYWN0X2hhbmRsZXIoZ2xvYmFsX2RpYywgX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05B
TUUpLAotICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9UUkFOU0ZFUl9EQVRB
X0hBTkRMRVJfTkFNRSksCi0gICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxl
cikKLQotCi1kZWYgX2V4dHJhY3RfaGFuZGxlcihkaWMsIG5hbWUpOgotICAgICIiIkV4dHJhY3Rz
IGEgY2FsbGFibGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gZGljdGlv
bmFyeQotICAgIGRpYy4KLSAgICAiIiIKLQotICAgIGlmIG5hbWUgbm90IGluIGRpYzoKLSAgICAg
ICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJyVzIGlzIG5vdCBkZWZpbmVkLicgJSBuYW1lKQot
ICAgIGhhbmRsZXIgPSBkaWNbbmFtZV0KLSAgICBpZiBub3QgY2FsbGFibGUoaGFuZGxlcik6Ci0g
ICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBpcyBub3QgY2FsbGFibGUuJyAlIG5h
bWUpCi0gICAgcmV0dXJuIGhhbmRsZXIKLQotCi1jbGFzcyBEaXNwYXRjaGVyKG9iamVjdCk6Ci0g
ICAgIiIiRGlzcGF0Y2hlcyBXZWJTb2NrZXQgcmVxdWVzdHMuCi0KLSAgICBUaGlzIGNsYXNzIG1h
aW50YWlucyBhIG1hcCBmcm9tIHJlc291cmNlIG5hbWUgdG8gaGFuZGxlcnMuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsIHJvb3RfZGlyLCBzY2FuX2Rpcj1Ob25l
LAotICAgICAgICBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyPVRydWUpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IHJvb3RfZGlyOiBUaGUgZGlyZWN0b3J5IHdoZXJlIGhhbmRsZXIgZGVmaW5pdGlvbiBmaWxlcyBh
cmUKLSAgICAgICAgICAgICAgICAgICAgICBwbGFjZWQuCi0gICAgICAgICAgICBzY2FuX2Rpcjog
VGhlIGRpcmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRpb24gZmlsZXMgYXJlCi0gICAgICAg
ICAgICAgICAgICAgICAgc2VhcmNoZWQuIHNjYW5fZGlyIG11c3QgYmUgYSBkaXJlY3RvcnkgdW5k
ZXIgcm9vdF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIHJvb3RfZGlyIGl0
c2VsZi4gIElmIHNjYW5fZGlyIGlzIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgcm9vdF9k
aXIgaXMgdXNlZCBhcyBzY2FuX2Rpci4gc2Nhbl9kaXIgY2FuIGJlIHVzZWZ1bAotICAgICAgICAg
ICAgICAgICAgICAgIGluIHNhdmluZyBzY2FuIHRpbWUgd2hlbiByb290X2RpciBjb250YWlucyBt
YW55Ci0gICAgICAgICAgICAgICAgICAgICAgc3ViZGlyZWN0b3JpZXMuCi0gICAgICAgICAgICBh
bGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyOiBTY2FucyBoYW5kbGVyIGZpbGVzIGV2ZW4g
aWYgdGhlaXIKLSAgICAgICAgICAgICAgICAgICAgICBjYW5vbmljYWwgcGF0aCBpcyBub3QgdW5k
ZXIgcm9vdF9kaXIuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFw
ID0ge30KLSAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzID0gW10KLSAgICAgICAgaWYgc2Nh
bl9kaXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNjYW5fZGlyID0gcm9vdF9kaXIKLSAgICAgICAg
aWYgbm90IG9zLnBhdGgucmVhbHBhdGgoc2Nhbl9kaXIpLnN0YXJ0c3dpdGgoCi0gICAgICAgICAg
ICAgICAgb3MucGF0aC5yZWFscGF0aChyb290X2RpcikpOgotICAgICAgICAgICAgcmFpc2UgRGlz
cGF0Y2hFeGNlcHRpb24oJ3NjYW5fZGlyOiVzIG11c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3RfZGlyOiVzLicgJSAoc2Nh
bl9kaXIsIHJvb3RfZGlyKSkKLSAgICAgICAgc2VsZi5fc291cmNlX2hhbmRsZXJfZmlsZXNfaW5f
ZGlyKAotICAgICAgICAgICAgcm9vdF9kaXIsIHNjYW5fZGlyLCBhbGxvd19oYW5kbGVyc19vdXRz
aWRlX3Jvb3RfZGlyKQotCi0gICAgZGVmIGFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKHNlbGYsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzX3Jlc291cmNlX3BhdGgsIGV4aXN0
aW5nX3Jlc291cmNlX3BhdGgpOgotICAgICAgICAiIiJBZGQgcmVzb3VyY2UgcGF0aCBhbGlhcy4K
LQotICAgICAgICBPbmNlIGFkZGVkLCByZXF1ZXN0IHRvIGFsaWFzX3Jlc291cmNlX3BhdGggd291
bGQgYmUgaGFuZGxlZCBieQotICAgICAgICBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIGV4aXN0aW5n
X3Jlc291cmNlX3BhdGguCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGFsaWFzX3Jlc291
cmNlX3BhdGg6IGFsaWFzIHJlc291cmNlIHBhdGgKLSAgICAgICAgICAgIGV4aXN0aW5nX3Jlc291
cmNlX3BhdGg6IGV4aXN0aW5nIHJlc291cmNlIHBhdGgKLSAgICAgICAgIiIiCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcFtl
eGlzdGluZ19yZXNvdXJjZV9wYXRoXQotICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9t
YXBbYWxpYXNfcmVzb3VyY2VfcGF0aF0gPSBoYW5kbGVyX3N1aXRlCi0gICAgICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdObyBoYW5kbGVy
IGZvcjogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5n
X3Jlc291cmNlX3BhdGgpCi0KLSAgICBkZWYgc291cmNlX3dhcm5pbmdzKHNlbGYpOgotICAgICAg
ICAiIiJSZXR1cm4gd2FybmluZ3MgaW4gc291cmNpbmcgaGFuZGxlcnMuIiIiCi0KLSAgICAgICAg
cmV0dXJuIHNlbGYuX3NvdXJjZV93YXJuaW5ncwotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiRG8gZXh0cmEgY2hlY2tpbmcgaW4gV2ViU29j
a2V0IGhhbmRzaGFrZS4KLQotICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9uIHJlcXVl
c3QudXJpIGFuZCBjYWxsIGl0cwotICAgICAgICB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZSBmdW5jdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5
dGhvbiByZXF1ZXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIERpc3BhdGNoRXhj
ZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAotICAgICAgICAgICAgQWJvcnRlZEJ5
VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlvbgotICAgICAg
ICAgICAgSGFuZHNoYWtlRXhjZXB0aW9uOiB3aGVuIG9wZW5pbmcgaGFuZHNoYWtlIGZhaWxlZAot
ICAgICAgICAiIiIKLQotICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRfaGFuZGxlcl9z
dWl0ZShyZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1aXRlIGlzIE5v
bmU6Ci0gICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6
ICVyJyAlIHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIGRvX2V4dHJhX2hhbmRzaGFrZV8g
PSBoYW5kbGVyX3N1aXRlLmRvX2V4dHJhX2hhbmRzaGFrZQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBkb19leHRyYV9oYW5kc2hha2VfKHJlcXVlc3QpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hh
a2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgIyBSZS1yYWlzZSB0
byB0ZWxsIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbiB0byBmaW5pc2ggdGhpcwotICAgICAg
ICAgICAgIyBjb25uZWN0aW9uIHdpdGhvdXQgc2VuZGluZyBhbnkgZXJyb3IuCi0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAg
ICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
JyVzIHJhaXNlZCBleGNlcHRpb24gZm9yICVzOiAnICUgKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAotICAgICAgICAgICAgICAgICAgICBl
KQotICAgICAgICAgICAgcmFpc2UgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbihlLCBjb21t
b24uSFRUUF9TVEFUVVNfRk9SQklEREVOKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwg
cmVxdWVzdCk6Ci0gICAgICAgICIiIkxldCBhIGhhbmRsZXIgdHJhbnNmZXJfZGF0YSB3aXRoIGEg
V2ViU29ja2V0IGNsaWVudC4KLQotICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9uIHJl
cXVlc3Qud3NfcmVzb3VyY2UgYW5kIGNhbGwgaXRzCi0gICAgICAgIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YSBmdW5jdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDog
bW9kX3B5dGhvbiByZXF1ZXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIERpc3Bh
dGNoRXhjZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAotICAgICAgICAgICAgQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlvbgot
ICAgICAgICAiIiIKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBUZXJtaW5hdGUgdW5kZXJs
eWluZyBUQ1AgY29ubmVjdGlvbiBpZiBwb3NzaWJsZS4KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgaWYgbXV4LnVzZV9tdXgocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgbXV4LnN0YXJ0KHJl
cXVlc3QsIHNlbGYpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGhhbmRsZXJf
c3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAg
ICAgICAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2Up
Ci0gICAgICAgICAgICAgICAgdHJhbnNmZXJfZGF0YV8gPSBoYW5kbGVyX3N1aXRlLnRyYW5zZmVy
X2RhdGEKLSAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyhyZXF1ZXN0KQotCi0gICAgICAg
ICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgIyBDYXRjaCBub24t
Y3JpdGljYWwgZXhjZXB0aW9ucyB0aGUgaGFuZGxlciBkaWRuJ3QgaGFuZGxlLgotICAgICAgICBl
eGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAg
ICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAg
Y29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLSAgICAgICAgZXhjZXB0IG1z
Z3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAjIEludmFsaWRG
cmFtZUV4Y2VwdGlvbiBtdXN0IGJlIGNhdWdodCBiZWZvcmUKLSAgICAgICAgICAgICMgQ29ubmVj
dGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gdGhhdCBjYXRjaGVzIEludmFsaWRGcmFtZUV4Y2VwdGlv
bi4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1BST1RPQ09M
X0VSUk9SKQotICAgICAgICBleGNlcHQgbXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oY29tbW9uLlNUQVRVU19VTlNV
UFBPUlRFRF9EQVRBKQotICAgICAgICBleGNlcHQgc3RyZWFtLkludmFsaWRVVEY4RXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAg
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAg
Y29tbW9uLlNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSkKLSAgICAgICAgZXhjZXB0
IG1zZ3V0aWwuQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz
IGU6Ci0gICAgICAgICAgICAjIEFueSBvdGhlciBleGNlcHRpb25zIGFyZSBmb3J3YXJkZWQgdG8g
dGhlIGNhbGxlciBvZiB0aGlzCi0gICAgICAgICAgICAjIGZ1bmN0aW9uLgotICAgICAgICAgICAg
dXRpbC5wcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclcyBy
YWlzZWQgZXhjZXB0aW9uIGZvciAlczogJyAlICgKLSAgICAgICAgICAgICAgICAgICAgX1RSQU5T
RkVSX0RBVEFfSEFORExFUl9OQU1FLCByZXF1ZXN0LndzX3Jlc291cmNlKSwKLSAgICAgICAgICAg
ICAgICBlKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRlZiBwYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAiIiJQcmVwYXJlIGNvZGUgYW5kIHJlYXNv
biBmb3IgcmVzcG9uZGluZyBjbGllbnQgaW5pdGlhdGVkIGNsb3NpbmcKLSAgICAgICAgaGFuZHNo
YWtlLgotICAgICAgICAiIiIKLQotICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5nZXRfaGFu
ZGxlcl9zdWl0ZShyZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBpZiBoYW5kbGVyX3N1aXRl
IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hh
bmRzaGFrZV9oYW5kbGVyKHJlcXVlc3QpCi0gICAgICAgIHJldHVybiBoYW5kbGVyX3N1aXRlLnBh
c3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCkKLQotICAgIGRlZiBnZXRfaGFuZGxlcl9z
dWl0ZShzZWxmLCByZXNvdXJjZSk6Ci0gICAgICAgICIiIlJldHJpZXZlcyB0d28gaGFuZGxlcnMg
KG9uZSBmb3IgZXh0cmEgaGFuZHNoYWtlIHByb2Nlc3NpbmcsIGFuZCBvbmUKLSAgICAgICAgZm9y
IGRhdGEgdHJhbnNmZXIpIGZvciB0aGUgZ2l2ZW4gcmVxdWVzdCBhcyBhIEhhbmRsZXJTdWl0ZSBv
YmplY3QuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZyYWdtZW50ID0gTm9uZQotICAgICAgICBp
ZiAnIycgaW4gcmVzb3VyY2U6Ci0gICAgICAgICAgICByZXNvdXJjZSwgZnJhZ21lbnQgPSByZXNv
dXJjZS5zcGxpdCgnIycsIDEpCi0gICAgICAgIGlmICc/JyBpbiByZXNvdXJjZToKLSAgICAgICAg
ICAgIHJlc291cmNlID0gcmVzb3VyY2Uuc3BsaXQoJz8nLCAxKVswXQotICAgICAgICBoYW5kbGVy
X3N1aXRlID0gc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXAuZ2V0KHJlc291cmNlKQotICAgICAgICBp
ZiBoYW5kbGVyX3N1aXRlIGFuZCBmcmFnbWVudDoKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNo
RXhjZXB0aW9uKCdGcmFnbWVudCBpZGVudGlmaWVycyBNVVNUIE5PVCBiZSB1c2VkIG9uICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXZWJTb2NrZXQgVVJJcycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JF
UVVFU1QpCi0gICAgICAgIHJldHVybiBoYW5kbGVyX3N1aXRlCi0KLSAgICBkZWYgX3NvdXJjZV9o
YW5kbGVyX2ZpbGVzX2luX2RpcigKLSAgICAgICAgc2VsZiwgcm9vdF9kaXIsIHNjYW5fZGlyLCBh
bGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyKToKLSAgICAgICAgIiIiU291cmNlIGFsbCB0
aGUgaGFuZGxlciBzb3VyY2UgZmlsZXMgaW4gdGhlIHNjYW5fZGlyIGRpcmVjdG9yeS4KLQotICAg
ICAgICBUaGUgcmVzb3VyY2UgcGF0aCBpcyBkZXRlcm1pbmVkIHJlbGF0aXZlIHRvIHJvb3RfZGly
LgotICAgICAgICAiIiIKLQotICAgICAgICAjIFdlIGJ1aWxkIGEgbWFwIGZyb20gcmVzb3VyY2Ug
dG8gaGFuZGxlciBjb2RlIGFzc3VtaW5nIHRoYXQgdGhlcmUncwotICAgICAgICAjIG9ubHkgb25l
IHBhdGggZnJvbSByb290X2RpciB0byBzY2FuX2RpciBhbmQgaXQgY2FuIGJlIG9idGFpbmVkIGJ5
Ci0gICAgICAgICMgY29tcGFyaW5nIHJlYWxwYXRoIG9mIHRoZW0uCi0KLSAgICAgICAgIyBIZXJl
IHdlIGNhbm5vdCB1c2UgYWJzcGF0aC4gU2VlCi0gICAgICAgICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjAzCi0KLSAgICAgICAgY29udmVydCA9IF9jcmVhdGVf
cGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIocm9vdF9kaXIpCi0gICAgICAgIHNjYW5fcmVhbHBh
dGggPSBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGlyKQotICAgICAgICByb290X3JlYWxwYXRoID0g
b3MucGF0aC5yZWFscGF0aChyb290X2RpcikKLSAgICAgICAgZm9yIHBhdGggaW4gX2VudW1lcmF0
ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoc2Nhbl9yZWFscGF0aCk6Ci0gICAgICAgICAgICBpZiAobm90
IGFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIgYW5kCi0gICAgICAgICAgICAgICAgKG5v
dCBvcy5wYXRoLnJlYWxwYXRoKHBhdGgpLnN0YXJ0c3dpdGgocm9vdF9yZWFscGF0aCkpKToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdD
YW5vbmljYWwgcGF0aCBvZiAlcyBpcyBub3QgdW5kZXIgcm9vdCBkaXJlY3RvcnknICUKLSAgICAg
ICAgICAgICAgICAgICAgcGF0aCkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBfc291cmNlX2hhbmRsZXJf
ZmlsZShvcGVuKHBhdGgpLnJlYWQoKSkKLSAgICAgICAgICAgIGV4Y2VwdCBEaXNwYXRjaEV4Y2Vw
dGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX3NvdXJjZV93YXJuaW5ncy5hcHBlbmQo
JyVzOiAlcycgJSAocGF0aCwgZSkpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
ICAgIHJlc291cmNlID0gY29udmVydChwYXRoKQotICAgICAgICAgICAgaWYgcmVzb3VyY2UgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAg
ICAgICAgICdQYXRoIHRvIHJlc291cmNlIGNvbnZlcnNpb24gb24gJXMgZmFpbGVkJyAlIHBhdGgp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVf
bWFwW2NvbnZlcnQocGF0aCldID0gaGFuZGxlcl9zdWl0ZQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L2V4dGVuc2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQxYmU3NDlmZmY1OTg5NjUxN2ZjNTE1NzE3NDZjN2YxYzJhN2ViMDkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
ZXh0ZW5zaW9ucy5weQorKysgL2Rldi9udWxsCkBAIC0xLDc1MCArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaHR0cF9oZWFkZXJf
dXRpbCBpbXBvcnQgcXVvdGVfaWZfbmVjZXNzYXJ5Ci0KLQotIyBUaGUgbGlzdCBvZiBhdmFpbGFi
bGUgc2VydmVyIHNpZGUgZXh0ZW5zaW9uIHByb2Nlc3NvciBjbGFzc2VzLgotX2F2YWlsYWJsZV9w
cm9jZXNzb3JzID0ge30KLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMgPSBbXQotCi0KLWNs
YXNzIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZShvYmplY3QpOgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFz
c19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAg
ICBzZWxmLl9hY3RpdmUgPSBUcnVlCi0KLSAgICBkZWYgcmVxdWVzdChzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3JlcXVlc3QKLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIGNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29y
cyhzZWxmLCBwcm9jZXNzb3JzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldF9hY3RpdmUo
c2VsZiwgYWN0aXZlKToKLSAgICAgICAgc2VsZi5fYWN0aXZlID0gYWN0aXZlCi0KLSAgICBkZWYg
aXNfYWN0aXZlKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYWN0aXZlCi0KLSAgICBkZWYg
X2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIHJldHVybiBO
b25lCi0KLSAgICBkZWYgZ2V0X2V4dGVuc2lvbl9yZXNwb25zZShzZWxmKToKLSAgICAgICAgaWYg
bm90IHNlbGYuX2FjdGl2ZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRXh0ZW5z
aW9uICVzIGlzIGRlYWN0aXZhdGVkJywgc2VsZi5uYW1lKCkpCi0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi5fZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9p
bnRlcm5hbCgpCi0gICAgICAgIGlmIHJlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxm
Ll9hY3RpdmUgPSBGYWxzZQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0
dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlvbnMoc2VsZiwgc3RyZWFtX29wdGlv
bnMpOgotICAgICAgICBpZiBzZWxmLl9hY3RpdmU6Ci0gICAgICAgICAgICBzZWxmLl9zZXR1cF9z
dHJlYW1fb3B0aW9uc19pbnRlcm5hbChzdHJlYW1fb3B0aW9ucykKLQotCi1kZWYgX2xvZ19vdXRn
b2luZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgbG9nZ2VyLCBvcmlnaW5hbF9ieXRlcywg
ZmlsdGVyZWRfYnl0ZXMsIGF2ZXJhZ2VfcmF0aW8pOgotICAgICMgUHJpbnQgaW5mIHdoZW4gcmF0
aW8gaXMgbm90IGF2YWlsYWJsZS4KLSAgICByYXRpbyA9IGZsb2F0KCdpbmYnKQotICAgIGlmIG9y
aWdpbmFsX2J5dGVzICE9IDA6Ci0gICAgICAgIHJhdGlvID0gZmxvYXQoZmlsdGVyZWRfYnl0ZXMp
IC8gb3JpZ2luYWxfYnl0ZXMKLQotICAgIGxvZ2dlci5kZWJ1ZygnT3V0Z29pbmcgY29tcHJlc3Np
b24gcmF0aW86ICVmIChhdmVyYWdlOiAlZiknICUKLSAgICAgICAgICAgIChyYXRpbywgYXZlcmFn
ZV9yYXRpbykpCi0KLQotZGVmIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8oCi0gICAg
ICAgIGxvZ2dlciwgcmVjZWl2ZWRfYnl0ZXMsIGZpbHRlcmVkX2J5dGVzLCBhdmVyYWdlX3JhdGlv
KToKLSAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFpbGFibGUuCi0gICAgcmF0
aW8gPSBmbG9hdCgnaW5mJykKLSAgICBpZiBmaWx0ZXJlZF9ieXRlcyAhPSAwOgotICAgICAgICBy
YXRpbyA9IGZsb2F0KHJlY2VpdmVkX2J5dGVzKSAvIGZpbHRlcmVkX2J5dGVzCi0KLSAgICBsb2dn
ZXIuZGVidWcoJ0luY29taW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAoYXZlcmFnZTogJWYpJyAl
Ci0gICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQotCi0KLWRlZiBfcGFyc2Vfd2lu
ZG93X2JpdHMoYml0cyk6Ci0gICAgIiIiUmV0dXJuIHBhcnNlZCBpbnRlZ2VyIHZhbHVlIGlmZiB0
aGUgZ2l2ZW4gc3RyaW5nIGNvbmZvcm1zIHRvIHRoZQotICAgIGdyYW1tYXIgb2YgdGhlIHdpbmRv
dyBiaXRzIGV4dGVuc2lvbiBwYXJhbWV0ZXJzLgotICAgICIiIgotCi0gICAgaWYgYml0cyBpcyBO
b25lOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdWYWx1ZSBpcyByZXF1aXJlZCcpCi0KLSAg
ICAjIEZvciBub24gaW50ZWdlciB2YWx1ZXMgc3VjaCBhcyAiMTAuMCIsIFZhbHVlRXJyb3Igd2ls
bCBiZSByYWlzZWQuCi0gICAgaW50X2JpdHMgPSBpbnQoYml0cykKLQotICAgICMgRmlyc3QgY29u
ZGl0aW9uIGlzIHRvIGRyb3AgbGVhZGluZyB6ZXJvIGNhc2UgZS5nLiAiMDgiLgotICAgIGlmIGJp
dHMgIT0gc3RyKGludF9iaXRzKSBvciBpbnRfYml0cyA8IDggb3IgaW50X2JpdHMgPiAxNToKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCB2YWx1ZTogJXInICUgYml0cykKLQotICAg
IHJldHVybiBpbnRfYml0cwotCi0KLWNsYXNzIF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKG9iamVj
dCk6Ci0gICAgIiIiU3RvcmVzIHRvdGFsIGJ5dGVzIG9mIG9yaWdpbmFsIGFuZCByZXN1bHQgZGF0
YSwgYW5kIGNhbGN1bGF0ZXMgYXZlcmFnZQotICAgIHJlc3VsdCAvIG9yaWdpbmFsIHJhdGlvLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl90b3RhbF9v
cmlnaW5hbF9ieXRlcyA9IDAKLSAgICAgICAgc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzID0gMAot
Ci0gICAgZGVmIGFkZF9vcmlnaW5hbF9ieXRlcyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYu
X3RvdGFsX29yaWdpbmFsX2J5dGVzICs9IHZhbHVlCi0KLSAgICBkZWYgYWRkX3Jlc3VsdF9ieXRl
cyhzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcyArPSB2YWx1
ZQotCi0gICAgZGVmIGdldF9hdmVyYWdlX3JhdGlvKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl90
b3RhbF9vcmlnaW5hbF9ieXRlcyAhPSAwOgotICAgICAgICAgICAgcmV0dXJuIChmbG9hdChzZWxm
Ll90b3RhbF9yZXN1bHRfYnl0ZXMpIC8KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fdG90YWxf
b3JpZ2luYWxfYnl0ZXMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQo
J2luZicpCi0KLQotY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lv
blByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIiZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24gcHJv
Y2Vzc29yLgotCi0gICAgU3BlY2lmaWNhdGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9kcmFmdC10eW9zaGluby1oeWJpLXdlYnNvY2tldC1wZXJmcmFtZS1kZWZsYXRlCi0gICAg
IiIiCi0KLSAgICBfV0lORE9XX0JJVFNfUEFSQU0gPSAnbWF4X3dpbmRvd19iaXRzJwotICAgIF9O
T19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ25vX2NvbnRleHRfdGFrZW92ZXInCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4dGVuc2lvblByb2Nlc3Nvcklu
dGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5k
b3dfYml0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3Zl
ciA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2JmaW5hbCA9IEZhbHNlCi0KLSAgICAgICAgIyBDYWxj
dWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBvdXRnb2luZyBieXRlcyBzdXBwbGllZCB0byB0
aGlzIGZpbHRlcikgLwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0
d29yayBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdf
YXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0g
ICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQg
ZnJvbSB0aGUgbmV0d29yaykgLwotICAgICAgICAjICAgICAoVG90YWwgaW5jb21pbmcgYnl0ZXMg
b2J0YWluZWQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYuX2luY29t
aW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkK
LQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwo
c2VsZik6Ci0gICAgICAgICMgQW55IHVua25vd24gcGFyYW1ldGVyIHdpbGwgYmUganVzdCBpZ25v
cmVkLgotCi0gICAgICAgIHdpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBpZiBzZWxmLl9yZXF1
ZXN0Lmhhc19wYXJhbWV0ZXIoc2VsZi5fV0lORE9XX0JJVFNfUEFSQU0pOgotICAgICAgICAgICAg
d2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fV0lORE9XX0JJVFNfUEFSQU0pCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgd2luZG93X2JpdHMgPSBfcGFyc2Vfd2luZG93X2JpdHMod2luZG93X2JpdHMp
Ci0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCi0KLSAgICAgICAgbm9fY29udGV4dF90YWtlb3ZlciA9IHNlbGYuX3JlcXVlc3Qu
aGFzX3BhcmFtZXRlcigKLSAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFS
QU0pCi0gICAgICAgIGlmIChub19jb250ZXh0X3Rha2VvdmVyIGFuZAotICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX05P
X0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHJldHVy
biBOb25lCi0KLSAgICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JGQzE5NzlE
ZWZsYXRlcigKLSAgICAgICAgICAgIHdpbmRvd19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKQot
Ci0gICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIo
KQotCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQotCi0gICAgICAgIHJl
c3BvbnNlID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihzZWxmLl9yZXF1ZXN0Lm5hbWUoKSkK
LQotICAgICAgICBpZiBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5f
V0lORE9XX0JJVFNfUEFSQU0sIHN0cihzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cykpCi0gICAg
ICAgIGlmIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ0VuYWJsZSAlcyBleHRlbnNpb24gKCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiB3
aW5kb3dfYml0cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0lciwgJwotICAgICAgICAgICAgJ3Jl
c3BvbnNlOiB3aW5kb3dfd2JpdHM9JXM7IG5vX2NvbnRleHRfdGFrZW92ZXI9JXIpJyAlCi0gICAg
ICAgICAgICAoc2VsZi5fcmVxdWVzdC5uYW1lKCksCi0gICAgICAgICAgICAgd2luZG93X2JpdHMs
Ci0gICAgICAgICAgICAgbm9fY29udGV4dF90YWtlb3ZlciwKLSAgICAgICAgICAgICBzZWxmLl9y
ZXNwb25zZV93aW5kb3dfYml0cywKLSAgICAgICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250
ZXh0X3Rha2VvdmVyKSkKLQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0
dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotCi0gICAg
ICAgIGNsYXNzIF9PdXRnb2luZ0ZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJl
bnQKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fcGFyZW50Ll9vdXRnb2luZ19maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgY2xhc3Mg
X0luY29taW5nRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAg
ICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9w
YXJlbnQuX2luY29taW5nX2ZpbHRlcihmcmFtZSkKLQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5v
dXRnb2luZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIF9PdXRnb2luZ0ZpbHRl
cihzZWxmKSkKLSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5p
bnNlcnQoCi0gICAgICAgICAgICAwLCBfSW5jb21pbmdGaWx0ZXIoc2VsZikpCi0KLSAgICBkZWYg
c2V0X3Jlc3BvbnNlX3dpbmRvd19iaXRzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcmVz
cG9uc2Vfd2luZG93X2JpdHMgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9yZXNwb25zZV9ub19jb250
ZXh0X3Rha2VvdmVyKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29u
dGV4dF90YWtlb3ZlciA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6
Ci0gICAgICAgIHNlbGYuX2JmaW5hbCA9IHZhbHVlCi0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5n
X2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9IFRy
dWUKLQotICAgIGRlZiBkaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAg
ICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9IEZhbHNlCi0KLSAgICBkZWYgX291dGdvaW5nX2Zp
bHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIiIlRyYW5zZm9ybSBvdXRnb2luZyBmcmFtZXMu
IFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmx5IGJ5Ci0gICAgICAgIGFuIF9PdXRnb2luZ0ZpbHRl
ciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXpl
ID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0
aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgb3JpZ2lu
YWxfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIGlmIChub3Qgc2VsZi5fY29tcHJlc3Nfb3V0Z29p
bmcgb3IKLSAgICAgICAgICAgIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUp
KToKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5h
ZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3Np
emUpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBmcmFtZS5wYXlsb2FkID0gc2VsZi5f
cmZjMTk3OV9kZWZsYXRlci5maWx0ZXIoCi0gICAgICAgICAgICBmcmFtZS5wYXlsb2FkLCBiZmlu
YWw9c2VsZi5fYmZpbmFsKQotICAgICAgICBmcmFtZS5yc3YxID0gMQotCi0gICAgICAgIGZpbHRl
cmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9vdXRn
b2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAg
ICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgX2xvZ19vdXRnb2luZ19j
b21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCi0gICAgICAg
ICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKLQotICAgIGRlZiBfaW5jb21pbmdf
ZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiVHJhbnNmb3JtIGluY29taW5nIGZyYW1l
cy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX0luY29taW5nRmls
dGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3Np
emUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9y
YXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgcmVjZWl2
ZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIGlmIGZyYW1lLnJzdjEgIT0gMSBvciBjb21tb24u
aXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIHNlbGYuX2luY29t
aW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAg
ICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIGZyYW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihm
cmFtZS5wYXlsb2FkKQotICAgICAgICBmcmFtZS5yc3YxID0gMAotCi0gICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWlu
Z19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAg
ICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX2luY29taW5nX2Nv
bXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAg
ICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRf
cGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0
aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0KLV9hdmFpbGFibGVfcHJvY2Vz
c29yc1tjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT05dID0gKAotICAgIERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcikKLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5k
KGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotX2F2YWlsYWJsZV9wcm9jZXNzb3Jz
W2NvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAgRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5h
cHBlbmQoY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0KLWNsYXNz
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lvblByb2Nlc3Nvcklu
dGVyZmFjZSk6Ci0gICAgIiIicGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbiBwcm9jZXNzb3Iu
Ci0KLSAgICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2Ry
YWZ0LWlldGYtaHliaS1wZXJtZXNzYWdlLWNvbXByZXNzaW9uLTA4Ci0gICAgIiIiCi0KLSAgICBf
U0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSA9ICdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJwot
ICAgIF9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9ICdzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcicKLSAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSA9ICdjbGllbnRf
bWF4X3dpbmRvd19iaXRzJwotICAgIF9DTElFTlRfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSA9
ICdjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9u
UHJvY2Vzc29yLiIiIgotCi0gICAgICAgIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFz
c19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5k
b3dfYml0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIg
PSBGYWxzZQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgICMgVGhpcyBtZXRob2QgcmV0
dXJucyAiZGVmbGF0ZSIgKG5vdCAicGVybWVzc2FnZS1kZWZsYXRlIikgZm9yCi0gICAgICAgICMg
Y29tcGF0aWJpbGl0eS4KLSAgICAgICAgcmV0dXJuICdkZWZsYXRlJwotCi0gICAgZGVmIF9nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgotICAgICAgICBmb3IgbmFtZSBpbiBz
ZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfbmFtZXMoKToKLSAgICAgICAgICAgIGlmIG5hbWUg
bm90IGluIFtzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNf
UEFSQU1dOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnVW5rbm93biBwYXJh
bWV0ZXI6ICVyJywgbmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAg
IHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qu
aGFzX3BhcmFtZXRlcihzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNKToKLSAgICAg
ICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0
ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJ
VFNfUEFSQU0pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VydmVyX21heF93
aW5kb3dfYml0cyA9IF9wYXJzZV93aW5kb3dfYml0cygKLSAgICAgICAgICAgICAgICAgICAgc2Vy
dmVyX21heF93aW5kb3dfYml0cykKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdCYWQgJXMgcGFyYW1ldGVyOiAl
cicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhf
V0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlciA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcigKLSAgICAgICAgICAgIHNl
bGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNKQotICAgICAgICBpZiAoc2VydmVy
X25vX2NvbnRleHRfdGFrZW92ZXIgYW5kCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9w
YXJhbWV0ZXJfdmFsdWUoCi0gICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0pIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnJXMgcGFyYW1ldGVyIG11c3Qgbm90IGhhdmUgYSB2YWx1ZTogJXInLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BB
UkFNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rh
a2VvdmVyKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICAjIGNsaWVudF9tYXhf
d2luZG93X2JpdHMgZnJvbSBhIGNsaWVudCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY2xpZW50IGNh
bgotICAgICAgICAjIGFjY2VwdCBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBzZXJ2ZXIg
b3Igbm90LgotICAgICAgICBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHNlbGYuX3Jl
cXVlc3QuaGFzX3BhcmFtZXRlcigKLSAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9X
X0JJVFNfUEFSQU0pCi0gICAgICAgIGlmIChjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyBh
bmQKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKSBpcyBub3QgTm9u
ZSk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5v
dCBoYXZlIGEgdmFsdWUgaW4gYSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ns
aWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMpCi0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGls
Ll9SRkMxOTc5RGVmbGF0ZXIoCi0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBz
ZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgICAgICAjIE5vdGUgdGhhdCB3ZSBwcmVw
YXJlIGZvciBpbmNvbWluZyBtZXNzYWdlcyBjb21wcmVzc2VkIHdpdGggd2luZG93Ci0gICAgICAg
ICMgYml0cyB1cHRvIDE1IHJlZ2FyZGxlc3Mgb2YgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMg
dmFsdWUgdG8gYmUKLSAgICAgICAgIyBzZW50IHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHNlbGYu
X3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNl
bGYuX2ZyYW1lciA9IF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcigKLSAgICAgICAgICAgIHNlcnZl
cl9tYXhfd2luZG93X2JpdHMsIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotICAgICAgICBz
ZWxmLl9mcmFtZXIuc2V0X2JmaW5hbChGYWxzZSkKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9j
b21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQotCi0gICAgICAgIGlm
IHNlcnZlcl9tYXhfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25z
ZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9X
X0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9tYXhfd2luZG93X2JpdHMp
KQotCi0gICAgICAgIGlmIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAgICAgICAg
cmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9f
Q09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBpZiBzZWxmLl9wcmVmZXJy
ZWRfY2xpZW50X21heF93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlmIG5v
dCBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0czoKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1Byb2Nlc3NvciBpcyBjb25maWd1cmVkIHRvIHVzZSAlcyBidXQgJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGNsaWVudCBjYW5ub3QgYWNjZXB0
IGl0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01B
WF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9DTElF
TlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAgIHN0cihzZWxmLl9wcmVm
ZXJyZWRfY2xpZW50X21heF93aW5kb3dfYml0cykpCi0KLSAgICAgICAgaWYgc2VsZi5fY2xpZW50
X25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVy
KAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFN
LCBOb25lKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFbmFi
bGUgJXMgZXh0ZW5zaW9uICgnCi0gICAgICAgICAgICAncmVxdWVzdDogc2VydmVyX21heF93aW5k
b3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyPSVy
LCAnCi0gICAgICAgICAgICAncmVzcG9uc2U6IGNsaWVudF9tYXhfd2luZG93X2JpdHM9JXM7ICcK
LSAgICAgICAgICAgICdjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKLSAgICAgICAg
ICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRv
d19iaXRzLAotICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyLAotICAgICAg
ICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzLAotICAgICAgICAg
ICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKSkKLQotICAgICAgICByZXR1cm4g
cmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwg
c3RyZWFtX29wdGlvbnMpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0dXBfc3RyZWFtX29wdGlv
bnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYgc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMo
c2VsZiwgdmFsdWUpOgotICAgICAgICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRo
aXMgY2xhc3MgYWRkcyB0aGUKLSAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNp
b24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hha2UgcmVzcG9uc2UsCi0gICAgICAgIGJ1dCBkb2Vz
bid0IHJlZHVjZSB0aGUgTFo3NyBzbGlkaW5nIHdpbmRvdyBzaXplIG9mIGl0cyBpbmZsYXRlci4K
LSAgICAgICAgSS5lLiwgeW91IGNhbiB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1wbGVt
ZW50YXRpb24gYnV0IGNhbm5vdAotICAgICAgICByZWR1Y2UgbWVtb3J5IHVzYWdlIG9mIHRoaXMg
Y2xhc3MuCi0KLSAgICAgICAgSWYgdGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkIHdpdGggVHJ1
ZSBhbmQgYW4gb2ZmZXIgd2l0aG91dCB0aGUKLSAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0
cyBleHRlbnNpb24gcGFyYW1ldGVyIGlzIHJlY2VpdmVkLAotICAgICAgICAtIChXaGVuIHByb2Nl
c3NpbmcgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCi0g
ICAgICAgICAgZGVjbGluZXMgdGhlIHJlcXVlc3QuCi0gICAgICAgIC0gKFdoZW4gcHJvY2Vzc2lu
ZyB0aGUgcGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCi0gICAg
ICAgICAgYWNjZXB0cyB0aGUgcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5f
cHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9j
bGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmLCB2YWx1ZSk6Ci0gICAgICAgICIiIklmIHRo
aXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQotICAgICAgICBjbGll
bnRfbm9fY29udGV4dF90YWtlb3ZlciBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hh
a2UKLSAgICAgICAgcmVzcG9uc2UsIGJ1dCBkb2Vzbid0IHJlc2V0IGluZmxhdGVyIGZvciBlYWNo
IG1lc3NhZ2UuIEkuZS4sIHlvdSBjYW4KLSAgICAgICAgdXNlIHRoaXMgZm9yIHRlc3RpbmcgY2xp
ZW50IGltcGxlbWVudGF0aW9uIGJ1dCBjYW5ub3QgcmVkdWNlIG1lbW9yeQotICAgICAgICB1c2Fn
ZSBvZiB0aGlzIGNsYXNzLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9jbGllbnRfbm9f
Y29udGV4dF90YWtlb3ZlciA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1
ZSk6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZpbmFsKHZhbHVlKQotCi0gICAgZGVmIGVu
YWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNl
dF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0KLSAgICBkZWYgZGlzYWJsZV9vdXRn
b2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVz
c19vdXRnb2luZ19lbmFibGVkKEZhbHNlKQotCi0KLWNsYXNzIF9QZXJNZXNzYWdlRGVmbGF0ZUZy
YW1lcihvYmplY3QpOgotICAgICIiIkEgZnJhbWVyIGZvciBleHRlbnNpb25zIHdpdGggcGVyLW1l
c3NhZ2UgREVGTEFURSBmZWF0dXJlLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmxh
dGVfbWF4X3dpbmRvd19iaXRzLCBkZWZsYXRlX25vX2NvbnRleHRfdGFrZW92ZXIpOgotICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBz
ZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAgICAg
ICAgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3ZlcikK
LQotICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVy
KCkKLQotICAgICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX2NvbXBy
ZXNzX291dGdvaW5nX2VuYWJsZWQgPSBGYWxzZQotCi0gICAgICAgICMgVHJ1ZSBpZiBhIG1lc3Nh
Z2UgaXMgZnJhZ21lbnRlZCBhbmQgY29tcHJlc3Npb24gaXMgb25nb2luZy4KLSAgICAgICAgc2Vs
Zi5fY29tcHJlc3Nfb25nb2luZyA9IEZhbHNlCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAg
ICAgICMgICAgIChUb3RhbCBvdXRnb2luZyBieXRlcyBzdXBwbGllZCB0byB0aGlzIGZpbHRlcikg
LwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0d29yayBhZnRlciBh
cHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRp
b19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgICAgICMgQ2Fs
Y3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgbmV0
d29yaykgLwotICAgICAgICAjICAgICAoVG90YWwgaW5jb21pbmcgYnl0ZXMgb2J0YWluZWQgYWZ0
ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2Vf
cmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKLQotICAgIGRlZiBz
ZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUKLQot
ICAgIGRlZiBzZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChzZWxmLCB2YWx1ZSk6Ci0gICAg
ICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQgPSB2YWx1ZQotCi0gICAgZGVmIF9w
cm9jZXNzX2luY29taW5nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZGVjb21wcmVzcyk6Ci0gICAg
ICAgIGlmIG5vdCBkZWNvbXByZXNzOgotICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAg
ICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2VsZi5f
aW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAg
ICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIG1lc3NhZ2UgPSBz
ZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihtZXNzYWdlKQotCi0gICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVy
YWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgICAg
IGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX2luY29taW5nX2NvbXByZXNz
aW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAg
ICByZWNlaXZlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9h
ZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2Fs
Y3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgICAgIHJldHVybiBtZXNzYWdlCi0K
LSAgICBkZWYgX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQsIGJp
bmFyeSk6Ci0gICAgICAgIGlmIG5vdCBiaW5hcnk6Ci0gICAgICAgICAgICBtZXNzYWdlID0gbWVz
c2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb3V0
Z29pbmdfZW5hYmxlZDoKLSAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAgb3Jp
Z2luYWxfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX291dGdvaW5n
X2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAg
ICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5
NzlfZGVmbGF0ZXIuZmlsdGVyKAotICAgICAgICAgICAgbWVzc2FnZSwgZW5kPWVuZCwgYmZpbmFs
PXNlbGYuX2JmaW5hbCkKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVz
c2FnZSkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFk
ZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAg
ICAgICAgX2xvZ19vdXRnb2luZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplLAotICAg
ICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBzZWxm
Ll9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkK
LQotICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb25nb2luZzoKLSAgICAgICAgICAgIHNl
bGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5zZXRfY29tcHJlc3Npb25fYml0KCkKLSAgICAgICAg
c2VsZi5fY29tcHJlc3Nfb25nb2luZyA9IG5vdCBlbmQKLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UK
LQotICAgIGRlZiBfcHJvY2Vzc19pbmNvbWluZ19mcmFtZShzZWxmLCBmcmFtZSk6Ci0gICAgICAg
IGlmIGZyYW1lLnJzdjEgPT0gMSBhbmQgbm90IGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFt
ZS5vcGNvZGUpOgotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIuZGVj
b21wcmVzc19uZXh0X21lc3NhZ2UoKQotICAgICAgICAgICAgZnJhbWUucnN2MSA9IDAKLQotICAg
IGRlZiBfcHJvY2Vzc19vdXRnb2luZ19mcmFtZShzZWxmLCBmcmFtZSwgY29tcHJlc3Npb25fYml0
KToKLSAgICAgICAgaWYgKG5vdCBjb21wcmVzc2lvbl9iaXQgb3IKLSAgICAgICAgICAgIGNvbW1v
bi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpKToKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlvbnMo
c2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJDcmVhdGVzIGZpbHRlcnMgYW5kIHNl
dHMgdGhlbSB0byB0aGUgU3RyZWFtT3B0aW9ucy4iIiIKLQotICAgICAgICBjbGFzcyBfT3V0Z29p
bmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAg
ICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2Up
OgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX3Byb2Nlc3Nfb3V0Z29pbmdf
bWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAg
ICAgICAgY2xhc3MgX0luY29taW5nTWVzc2FnZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJl
bnQgPSBwYXJlbnQKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2Fn
ZSA9IEZhbHNlCi0KLSAgICAgICAgICAgIGRlZiBkZWNvbXByZXNzX25leHRfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IFRydWUK
LQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gc2VsZi5fcGFyZW50Ll9wcm9jZXNzX2luY29taW5nX21lc3NhZ2UoCi0gICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2UsIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlKQot
ICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgICAgIHNlbGYuX291dGdvaW5nX21l
c3NhZ2VfZmlsdGVyID0gX091dGdvaW5nTWVzc2FnZUZpbHRlcihzZWxmKQotICAgICAgICBzZWxm
Ll9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlciA9IF9JbmNvbWluZ01lc3NhZ2VGaWx0ZXIoc2VsZikK
LSAgICAgICAgc3RyZWFtX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzLmFwcGVuZCgK
LSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmlsdGVyKQotICAgICAgICBzdHJl
YW1fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAgICAg
c2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIpCi0KLSAgICAgICAgY2xhc3MgX091dGdvaW5n
RnJhbWVGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh
cmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCi0KLSAgICAgICAgICAgIGRl
ZiBzZXRfY29tcHJlc3Npb25fYml0KHNlbGYpOgotICAgICAgICAgICAgICAgIHNlbGYuX3NldF9j
b21wcmVzc2lvbl9iaXQgPSBUcnVlCi0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJh
bWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19mcmFt
ZSgKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUsIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCi0KLSAg
ICAgICAgY2xhc3MgX0luY29taW5nRnJhbWVGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50
ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAg
ICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19pbmNvbWluZ19mcmFtZShmcmFtZSkKLQot
ICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBfT3V0Z29pbmdGcmFtZUZpbHRl
cihzZWxmKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBfSW5jb21pbmdG
cmFtZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9m
aWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlcikK
LSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCi0g
ICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIpCi0KLSAgICAgICAgc3RyZWFt
X29wdGlvbnMuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gRmFsc2UKLQotCi1fYXZhaWxh
YmxlX3Byb2Nlc3NvcnNbY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT05dID0gKAot
ICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKLSMgVE9ETyh0eW9z
aGlubyk6IFJlb3JnYW5pemUgY2xhc3MgbmFtZXMuCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9uX25h
bWVzLmFwcGVuZCgnZGVmbGF0ZScpCi0KLQotY2xhc3MgTXV4RXh0ZW5zaW9uUHJvY2Vzc29yKEV4
dGVuc2lvblByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIiV2ViU29ja2V0IG11bHRpcGxleGlu
ZyBleHRlbnNpb24gcHJvY2Vzc29yLiIiIgotCi0gICAgX1FVT1RBX1BBUkFNID0gJ3F1b3RhJwot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBFeHRlbnNpb25Qcm9j
ZXNzb3JJbnRlcmZhY2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5fcXVv
dGEgPSAwCi0gICAgICAgIHNlbGYuX2V4dGVuc2lvbnMgPSBbXQotCi0gICAgZGVmIG5hbWUoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBjb21tb24uTVVYX0VYVEVOU0lPTgotCi0gICAgZGVmIGNoZWNr
X2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycyhzZWxmLCBwcm9jZXNzb3JzKToKLSAg
ICAgICAgYmVmb3JlX211eCA9IFRydWUKLSAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNz
b3JzOgotICAgICAgICAgICAgbmFtZSA9IHByb2Nlc3Nvci5uYW1lKCkKLSAgICAgICAgICAgIGlm
IG5hbWUgPT0gc2VsZi5uYW1lKCk6Ci0gICAgICAgICAgICAgICAgYmVmb3JlX211eCA9IEZhbHNl
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3Iu
aXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGJl
Zm9yZV9tdXg6Ci0gICAgICAgICAgICAgICAgIyBNdXggZXh0ZW5zaW9uIGNhbm5vdCBiZSB1c2Vk
IGFmdGVyIGV4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICAjIHRoYXQgZGVwZW5kIG9uIGZyYW1l
IGJvdW5kYXJ5LCBleHRlbnNpb24gZGF0YSBmaWVsZCwgb3IgYW55Ci0gICAgICAgICAgICAgICAg
IyByZXNlcnZlZCBiaXRzIHdoaWNoIGFyZSBhdHRyaWJ1dGVkIHRvIGVhY2ggZnJhbWUuCi0gICAg
ICAgICAgICAgICAgaWYgKG5hbWUgPT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9y
Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNl
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgIyBNdXggZXh0ZW5zaW9uIHNob3VsZCBub3QgYmUgYXBwbGllZCBiZWZvcmUgYW55
IGhpc3RvcnktYmFzZWQKLSAgICAgICAgICAgICAgICAjIGNvbXByZXNzaW9uIGV4dGVuc2lvbi4K
LSAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAnZGVmbGF0ZScgb3IKLSAgICAgICAgICAgICAg
ICAgICAgbmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKLSAgICAgICAg
ICAgICAgICAgICAgbmFtZSA9PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJ
T04pOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybgotCi0gICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2lu
dGVybmFsKHNlbGYpOgotICAgICAgICBzZWxmLl9hY3RpdmUgPSBGYWxzZQotICAgICAgICBxdW90
YSA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLl9RVU9UQV9QQVJBTSkK
LSAgICAgICAgaWYgcXVvdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgcXVvdGEgPSBpbnQocXVvdGEpCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJv
ciBhcyBlOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBpZiBxdW90
YSA8IDAgb3IgcXVvdGEgPj0gMiAqKiAzMjoKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQot
ICAgICAgICAgICAgc2VsZi5fcXVvdGEgPSBxdW90YQotCi0gICAgICAgIHNlbGYuX2FjdGl2ZSA9
IFRydWUKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLk1V
WF9FWFRFTlNJT04pCi0KLSAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHNl
bGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNldF9xdW90YShz
ZWxmLCBxdW90YSk6Ci0gICAgICAgIHNlbGYuX3F1b3RhID0gcXVvdGEKLQotICAgIGRlZiBxdW90
YShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3F1b3RhCi0KLSAgICBkZWYgc2V0X2V4dGVu
c2lvbnMoc2VsZiwgZXh0ZW5zaW9ucyk6Ci0gICAgICAgIHNlbGYuX2V4dGVuc2lvbnMgPSBleHRl
bnNpb25zCi0KLSAgICBkZWYgZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2V4dGVuc2lvbnMKLQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLk1VWF9FWFRFTlNJ
T05dID0gTXV4RXh0ZW5zaW9uUHJvY2Vzc29yCi0KLQotZGVmIGdldF9leHRlbnNpb25fcHJvY2Vz
c29yKGV4dGVuc2lvbl9yZXF1ZXN0KToKLSAgICAiIiJHaXZlbiBhbiBFeHRlbnNpb25QYXJhbWV0
ZXIgcmVwcmVzZW50aW5nIGFuIGV4dGVuc2lvbiBvZmZlciByZWNlaXZlZAotICAgIGZyb20gYSBj
bGllbnQsIGNvbmZpZ3VyZXMgYW5kIHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3Bv
bmRpbmcKLSAgICBleHRlbnNpb24gcHJvY2Vzc29yIGNsYXNzLgotICAgICIiIgotCi0gICAgcHJv
Y2Vzc29yX2NsYXNzID0gX2F2YWlsYWJsZV9wcm9jZXNzb3JzLmdldChleHRlbnNpb25fcmVxdWVz
dC5uYW1lKCkpCi0gICAgaWYgcHJvY2Vzc29yX2NsYXNzIGlzIE5vbmU6Ci0gICAgICAgIHJldHVy
biBOb25lCi0gICAgcmV0dXJuIHByb2Nlc3Nvcl9jbGFzcyhleHRlbnNpb25fcmVxdWVzdCkKLQot
Ci1kZWYgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uKGV4dGVuc2lvbl9uYW1lKToKLSAgICByZXR1
cm4gZXh0ZW5zaW9uX25hbWUgaW4gX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcwotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9t
YXNraW5nLmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGRhYWQyN2Y1M2M0NmJlMmE3MWM3MDRjNzA4ZmJiM2Y0MmYx
YTNkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQorKysgL2Rldi9udWxsCkBAIC0xLDk4ICsw
LDAgQEAKLS8vIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotLy8gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLS8vIG1ldDoKLS8vCi0v
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotLy8gZGlzdHJpYnV0aW9uLgotLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLS8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0vLwotLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLS8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0vLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLS8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLS8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0l
bW9kdWxlIGZhc3RfbWFza2luZwotCi0laW5jbHVkZSAiY3N0cmluZy5pIgotCi0lewotI2luY2x1
ZGUgPGNzdHJpbmc+Ci0KLSNpZmRlZiBfX1NTRTJfXwotI2luY2x1ZGUgPGVtbWludHJpbi5oPgot
I2VuZGlmCi0lfQotCi0lYXBwbHkgKGNoYXIgKlNUUklORywgaW50IExFTkdUSCkgewotICAgIChj
b25zdCBjaGFyKiBwYXlsb2FkLCBpbnQgcGF5bG9hZF9sZW5ndGgpLAotICAgIChjb25zdCBjaGFy
KiBtYXNraW5nX2tleSwgaW50IG1hc2tpbmdfa2V5X2xlbmd0aCkgfTsKLSVjc3RyaW5nX291dHB1
dF9hbGxvY2F0ZV9zaXplKAotICAgIGNoYXIqKiByZXN1bHQsIGludCogcmVzdWx0X2xlbmd0aCwg
ZGVsZXRlIFtdICokMSk7Ci0KLSVpbmxpbmUgJXsKLQotdm9pZCBtYXNrKAotICAgIGNvbnN0IGNo
YXIqIHBheWxvYWQsIGludCBwYXlsb2FkX2xlbmd0aCwKLSAgICBjb25zdCBjaGFyKiBtYXNraW5n
X2tleSwgaW50IG1hc2tpbmdfa2V5X2xlbmd0aCwKLSAgICBpbnQgbWFza2luZ19rZXlfaW5kZXgs
Ci0gICAgY2hhcioqIHJlc3VsdCwgaW50KiByZXN1bHRfbGVuZ3RoKSB7Ci0gICpyZXN1bHQgPSBu
ZXcgY2hhcltwYXlsb2FkX2xlbmd0aF07Ci0gICpyZXN1bHRfbGVuZ3RoID0gcGF5bG9hZF9sZW5n
dGg7Ci0gIG1lbWNweSgqcmVzdWx0LCBwYXlsb2FkLCBwYXlsb2FkX2xlbmd0aCk7Ci0KLSAgY2hh
ciogY3Vyc29yID0gKnJlc3VsdDsKLSAgY2hhciogY3Vyc29yX2VuZCA9ICpyZXN1bHQgKyAqcmVz
dWx0X2xlbmd0aDsKLQotI2lmZGVmIF9fU1NFMl9fCi0gIHdoaWxlICgoY3Vyc29yIDwgY3Vyc29y
X2VuZCkgJiYKLSAgICAgICAgIChyZWludGVycHJldF9jYXN0PHNpemVfdD4oY3Vyc29yKSAmIDB4
ZikpIHsKLSAgICAqY3Vyc29yIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAg
ICArK2N1cnNvcjsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCAr
IDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci0gIGlmIChjdXJzb3IgPT0gY3Vyc29yX2Vu
ZCkgewotICAgIHJldHVybjsKLSAgfQotCi0gIGNvbnN0IGludCBrQmxvY2tTaXplID0gMTY7Ci0g
IF9fbTEyOGkgbWFza2luZ19rZXlfYmxvY2s7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwga0Jsb2Nr
U2l6ZTsgKytpKSB7Ci0gICAgKihyZWludGVycHJldF9jYXN0PGNoYXIqPigmbWFza2luZ19rZXlf
YmxvY2spICsgaSkgPQotICAgICAgICBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07Ci0g
ICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdf
a2V5X2xlbmd0aDsKLSAgfQotCi0gIHdoaWxlIChjdXJzb3IgKyBrQmxvY2tTaXplIDw9IGN1cnNv
cl9lbmQpIHsKLSAgICBfX20xMjhpIHBheWxvYWRfYmxvY2sgPQotICAgICAgICBfbW1fbG9hZF9z
aTEyOChyZWludGVycHJldF9jYXN0PF9fbTEyOGkqPihjdXJzb3IpKTsKLSAgICBfbW1fc3RyZWFt
X3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4aSo+KGN1cnNvciksCi0gICAgICAgICAgICAg
ICAgICAgICBfbW1feG9yX3NpMTI4KHBheWxvYWRfYmxvY2ssIG1hc2tpbmdfa2V5X2Jsb2NrKSk7
Ci0gICAgY3Vyc29yICs9IGtCbG9ja1NpemU7Ci0gIH0KLSNlbmRpZgotCi0gIHdoaWxlIChjdXJz
b3IgPCBjdXJzb3JfZW5kKSB7Ci0gICAgKmN1cnNvciBePSBtYXNraW5nX2tleVttYXNraW5nX2tl
eV9pbmRleF07Ci0gICAgKytjdXJzb3I7Ci0gICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2lu
Z19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKLSAgfQotfQotCi0lfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3MDcyNjNhNjlmZTk1MTU2YjVmM2IzOWQ1ODgzZGI5NzUyNTlkMzRjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMCAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hh
a2UgcHJvY2Vzc29yLiBUaGlzIGNsYXNzIHRyeSB0byBhcHBseSBhdmFpbGFibGUKLW9wZW5pbmcg
aGFuZHNoYWtlIHByb2Nlc3NvcnMgZm9yIGVhY2ggcHJvdG9jb2wgdmVyc2lvbiB1bnRpbCBhIGNv
bm5lY3Rpb24gaXMKLXN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4KLSIiIgotCi0KLWltcG9ydCBs
b2dnaW5nCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaTAwCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UgaW1wb3J0IGh5YmkKLSMgRXhwb3J0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIEhh
bmRzaGFrZUV4Y2VwdGlvbiwgYW5kIFZlcnNpb25FeGNlcHRpb24KLSMgc3ltYm9sIGZyb20gdGhp
cyBtb2R1bGUuCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFi
b3J0ZWRCeVVzZXJFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFz
ZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KLQotCi1fTE9HR0VSID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCi0KLQotZGVmIGRvX2hhbmRzaGFrZShyZXF1ZXN0LCBkaXNwYXRj
aGVyLCBhbGxvd0RyYWZ0NzU9RmFsc2UsIHN0cmljdD1GYWxzZSk6Ci0gICAgIiIiUGVyZm9ybXMg
V2ViU29ja2V0IGhhbmRzaGFrZS4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlcXVlc3Q6IG1vZF9w
eXRob24gcmVxdWVzdC4KLSAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2gu
RGlzcGF0Y2hlcikuCi0gICAgICAgIGFsbG93RHJhZnQ3NTogb2Jzb2xldGUgYXJndW1lbnQuIGln
bm9yZWQuCi0gICAgICAgIHN0cmljdDogb2Jzb2xldGUgYXJndW1lbnQuIGlnbm9yZWQuCi0KLSAg
ICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19yZXNvdXJjZSBpbiBw
ZXJmb3JtaW5nCi0gICAgaGFuZHNoYWtlLgotICAgICIiIgotCi0gICAgX0xPR0dFUi5kZWJ1Zygn
Q2xpZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIHJlc291cmNlOiAlcicsIHJlcXVlc3QudXJpKQot
ICAgICMgVG8gcHJpbnQgbWltZXRvb2xzLk1lc3NhZ2UgYXMgZXNjYXBlZCBvbmUtbGluZSBzdHJp
bmcsIHdlIGNvbnZlcnRzCi0gICAgIyBoZWFkZXJzX2luIHRvIGRpY3Qgb2JqZWN0LiBXaXRob3V0
IGNvbnZlcnNpb24sIGlmIHdlIHVzZSAlciwgaXQganVzdAotICAgICMgcHJpbnRzIHRoZSB0eXBl
IGFuZCBhZGRyZXNzLCBhbmQgaWYgd2UgdXNlICVzLCBpdCBwcmludHMgdGhlIG9yaWdpbmFsCi0g
ICAgIyBoZWFkZXIgc3RyaW5nIGFzIG11bHRpcGxlIGxpbmVzLgotICAgICMKLSAgICAjIEJvdGgg
bWltZXRvb2xzLk1lc3NhZ2UgYW5kIE1wVGFibGVfVHlwZSBvZiBtb2RfcHl0aG9uIGNhbiBiZQot
ICAgICMgY29udmVydGVkIHRvIGRpY3QuCi0gICAgIwotICAgICMgbWltZXRvb2xzLk1lc3NhZ2Uu
X19zdHJfXyByZXR1cm5zIHRoZSBvcmlnaW5hbCBoZWFkZXIgc3RyaW5nLgotICAgICMgZGljdCht
aW1ldG9vbHMuTWVzc2FnZSBvYmplY3QpIHJldHVybnMgdGhlIG1hcCBmcm9tIGhlYWRlciBuYW1l
cyB0bwotICAgICMgaGVhZGVyIHZhbHVlcy4gV2hpbGUgTXBUYWJsZV9UeXBlIGRvZXNuJ3QgaGF2
ZSBzdWNoIF9fc3RyX18gYnV0IGp1c3QKLSAgICAjIF9fcmVwcl9fIHdoaWNoIGZvcm1hdHMgaXRz
ZWxmIGFzIHdlbGwgYXMgZGljdGlvbmFyeSBvYmplY3QuCi0gICAgX0xPR0dFUi5kZWJ1ZygKLSAg
ICAgICAgJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGRpY3QocmVx
dWVzdC5oZWFkZXJzX2luKSkKLQotICAgIGhhbmRzaGFrZXJzID0gW10KLSAgICBoYW5kc2hha2Vy
cy5hcHBlbmQoCi0gICAgICAgICgnUkZDIDY0NTUnLCBoeWJpLkhhbmRzaGFrZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikpKQotICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKLSAgICAgICAgKCdIeUJpIDAw
JywgaHliaTAwLkhhbmRzaGFrZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikpKQotCi0gICAgZm9yIG5h
bWUsIGhhbmRzaGFrZXIgaW4gaGFuZHNoYWtlcnM6Ci0gICAgICAgIF9MT0dHRVIuZGVidWcoJ1Ry
eWluZyBwcm90b2NvbCB2ZXJzaW9uICVzJywgbmFtZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgX0xPR0dFUi5pbmZvKCdF
c3RhYmxpc2hlZCAoJXMgcHJvdG9jb2wpJywgbmFtZSkKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBfTE9HR0VS
LmRlYnVnKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5k
c2hha2UgYXMgJXMgcHJvdG9jb2w6ICVyJywKLSAgICAgICAgICAgICAgICBuYW1lLCBlKQotICAg
ICAgICAgICAgaWYgZS5zdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgZQotICAgICAgICBl
eGNlcHQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcmFpc2UKLSAg
ICAgICAgZXhjZXB0IFZlcnNpb25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHJhaXNlCi0K
LSAgICAjIFRPRE8odG95b3NoaW0pOiBBZGQgYSB0ZXN0IHRvIGNvdmVyIHRoZSBjYXNlIGFsbCBo
YW5kc2hha2VycyBmYWlsLgotICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAg
J0ZhaWxlZCB0byBjb21wbGV0ZSBvcGVuaW5nIGhhbmRzaGFrZSBmb3IgYWxsIGF2YWlsYWJsZSBw
cm90b2NvbHMnLAotICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNU
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL19iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19i
YXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWYwNTI0MmJmY2Q2ZmM5NmNi
ZDg4MzliMDcwMzg0NDI0YTdlMjlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDE4MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJDb21t
b24gZnVuY3Rpb25zIGFuZCBleGNlcHRpb25zIHVzZWQgYnkgV2ViU29ja2V0IG9wZW5pbmcgaGFu
ZHNoYWtlCi1wcm9jZXNzb3JzLgotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLQot
Ci1jbGFzcyBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiRXhjZXB0
aW9uIGZvciBhYm9ydGluZyBhIGNvbm5lY3Rpb24gaW50ZW50aW9uYWxseS4KLQotICAgIElmIHRo
aXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBpbiBkb19leHRyYV9oYW5kc2hha2UgaGFuZGxlciwgdGhl
IGNvbm5lY3Rpb24KLSAgICB3aWxsIGJlIGFiYW5kb25lZC4gTm8gb3RoZXIgV2ViU29ja2V0IG9y
IEhUVFAoUykgaGFuZGxlciB3aWxsIGJlIGludm9rZWQuCi0KLSAgICBJZiB0aGlzIGV4Y2VwdGlv
biBpcyByYWlzZWQgaW4gdHJhbnNmZXJfZGF0YV9oYW5kbGVyLCB0aGUgY29ubmVjdGlvbiB3aWxs
Ci0gICAgYmUgY2xvc2VkIHdpdGhvdXQgY2xvc2luZyBoYW5kc2hha2UuIE5vIG90aGVyIFdlYlNv
Y2tldCBvciBIVFRQKFMpIGhhbmRsZXIKLSAgICB3aWxsIGJlIGludm9rZWQuCi0gICAgIiIiCi0K
LSAgICBwYXNzCi0KLQotY2xhc3MgSGFuZHNoYWtlRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAg
IiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBhbiBlcnJvciBvY2N1cnJlZCB3
aGlsZSBwcm9jZXNzaW5nCi0gICAgV2ViU29ja2V0IGluaXRpYWwgaGFuZHNoYWtlLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1Ob25lKToKLSAgICAgICAg
c3VwZXIoSGFuZHNoYWtlRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBz
ZWxmLnN0YXR1cyA9IHN0YXR1cwotCi0KLWNsYXNzIFZlcnNpb25FeGNlcHRpb24oRXhjZXB0aW9u
KToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGEgdmVyc2lvbiBv
ZiBjbGllbnQgcmVxdWVzdCBkb2VzIG5vdAotICAgIG1hdGNoIHdpdGggdmVyc2lvbiB0aGUgc2Vy
dmVyIHN1cHBvcnRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN1
cHBvcnRlZF92ZXJzaW9ucz0nJyk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb246IGEgc3RyIG9i
amVjdCB0byBzaG93IHN1cHBvcnRlZCBoeWJpIHZlcnNpb25zLgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChlLmcuICc4LCAxMycpCi0gICAgICAgICIiIgotICAgICAgICBzdXBlcihW
ZXJzaW9uRXhjZXB0aW9uLCBzZWxmKS5fX2luaXRfXyhuYW1lKQotICAgICAgICBzZWxmLnN1cHBv
cnRlZF92ZXJzaW9ucyA9IHN1cHBvcnRlZF92ZXJzaW9ucwotCi0KLWRlZiBnZXRfZGVmYXVsdF9w
b3J0KGlzX3NlY3VyZSk6Ci0gICAgaWYgaXNfc2VjdXJlOgotICAgICAgICByZXR1cm4gY29tbW9u
LkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAotICAgIGVsc2U6Ci0gICAgICAgIHJldHVy
biBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQKLQotCi1kZWYgdmFsaWRhdGVfc3VicHJv
dG9jb2woc3VicHJvdG9jb2wpOgotICAgICIiIlZhbGlkYXRlIGEgdmFsdWUgaW4gdGhlIFNlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wgZmllbGQuCi0KLSAgICBTZWUgdGhlIFNlY3Rpb24gNC4xLiwgNC4y
LjIuLCBhbmQgNC4zLiBvZiBSRkMgNjQ1NS4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBzdWJwcm90
b2NvbDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHN1YnByb3Rv
Y29sIG5hbWU6IGVtcHR5JykKLQotICAgICMgUGFyYW1ldGVyIHNob3VsZCBiZSBlbmNvZGVkIEhU
VFAgdG9rZW4uCi0gICAgc3RhdGUgPSBodHRwX2hlYWRlcl91dGlsLlBhcnNpbmdTdGF0ZShzdWJw
cm90b2NvbCkKLSAgICB0b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0
ZSkKLSAgICByZXN0ID0gaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0YXRlKQotICAgICMgSWYgfHJl
c3R8IGlzIG5vdCBOb25lLCB8c3VicHJvdG9jb2x8IGlzIG5vdCBvbmUgdG9rZW4gb3IgaW52YWxp
ZC4gSWYKLSAgICAjIHxyZXN0fCBpcyBOb25lLCB8dG9rZW58IG11c3Qgbm90IGJlIE5vbmUgYmVj
YXVzZSB8c3VicHJvdG9jb2x8IGlzCi0gICAgIyBjb25jYXRlbmF0aW9uIG9mIHx0b2tlbnwgYW5k
IHxyZXN0fCBhbmQgaXMgbm90IE5vbmUuCi0gICAgaWYgcmVzdCBpcyBub3QgTm9uZToKLSAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIG5vbi10b2tlbiBzdHJpbmcgaW4g
c3VicHJvdG9jb2wgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU6ICVy
JyAlIHJlc3QpCi0KLQotZGVmIHBhcnNlX2hvc3RfaGVhZGVyKHJlcXVlc3QpOgotICAgIGZpZWxk
cyA9IHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uSE9TVF9IRUFERVJdLnNwbGl0KCc6JywgMSkK
LSAgICBpZiBsZW4oZmllbGRzKSA9PSAxOgotICAgICAgICByZXR1cm4gZmllbGRzWzBdLCBnZXRf
ZGVmYXVsdF9wb3J0KHJlcXVlc3QuaXNfaHR0cHMoKSkKLSAgICB0cnk6Ci0gICAgICAgIHJldHVy
biBmaWVsZHNbMF0sIGludChmaWVsZHNbMV0pCi0gICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToK
LSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHBvcnQgbnVtYmVyIGZv
cm1hdDogJXInICUgZSkKLQotCi1kZWYgZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1ZSk6Ci0gICAg
cmV0dXJuICclczogJXNcclxuJyAlIChuYW1lLCB2YWx1ZSkKLQotCi1kZWYgZ2V0X21hbmRhdG9y
eV9oZWFkZXIocmVxdWVzdCwga2V5KToKLSAgICB2YWx1ZSA9IHJlcXVlc3QuaGVhZGVyc19pbi5n
ZXQoa2V5KQotICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbignSGVhZGVyICVzIGlzIG5vdCBkZWZpbmVkJyAlIGtleSkKLSAgICByZXR1cm4gdmFs
dWUKLQotCi1kZWYgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXksIGV4cGVj
dGVkX3ZhbHVlLCBmYWlsX3N0YXR1cz1Ob25lKToKLSAgICB2YWx1ZSA9IGdldF9tYW5kYXRvcnlf
aGVhZGVyKHJlcXVlc3QsIGtleSkKLQotICAgIGlmIHZhbHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRf
dmFsdWUubG93ZXIoKToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAg
ICAgICAgJ0V4cGVjdGVkICVyIGZvciBoZWFkZXIgJXMgYnV0IGZvdW5kICVyIChjYXNlLWluc2Vu
c2l0aXZlKScgJQotICAgICAgICAgICAgKGV4cGVjdGVkX3ZhbHVlLCBrZXksIHZhbHVlKSwgc3Rh
dHVzPWZhaWxfc3RhdHVzKQotCi0KLWRlZiBjaGVja19yZXF1ZXN0X2xpbmUocmVxdWVzdCk6Ci0g
ICAgIyA1LjEgMS4gVGhlIHRocmVlIGNoYXJhY3RlciBVVEYtOCBzdHJpbmcgIkdFVCIuCi0gICAg
IyA1LjEgMi4gQSBVVEYtOC1lbmNvZGVkIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIgKDB4MjAgYnl0
ZSkuCi0gICAgaWYgcmVxdWVzdC5tZXRob2QgIT0gJ0dFVCc6Ci0gICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbignTWV0aG9kIGlzIG5vdCBHRVQ6ICVyJyAlIHJlcXVlc3QubWV0aG9kKQot
Ci0gICAgaWYgcmVxdWVzdC5wcm90b2NvbCAhPSAnSFRUUC8xLjEnOgotICAgICAgICByYWlzZSBI
YW5kc2hha2VFeGNlcHRpb24oJ1ZlcnNpb24gaXMgbm90IEhUVFAvMS4xOiAlcicgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5wcm90b2NvbCkKLQotCi1kZWYgcGFy
c2VfdG9rZW5fbGlzdChkYXRhKToKLSAgICAiIiJQYXJzZXMgYSBoZWFkZXIgdmFsdWUgd2hpY2gg
Zm9sbG93cyAxI3Rva2VuIGFuZCByZXR1cm5zIHBhcnNlZCBlbGVtZW50cwotICAgIGFzIGEgbGlz
dCBvZiBzdHJpbmdzLgotCi0gICAgTGVhZGluZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQuCi0gICAg
IiIiCi0KLSAgICBzdGF0ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCi0K
LSAgICB0b2tlbl9saXN0ID0gW10KLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHRva2VuID0g
aHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgICAgICBpZiB0b2tlbiBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHRva2VuX2xpc3QuYXBwZW5kKHRva2VuKQotCi0gICAg
ICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBo
dHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawot
Ci0gICAgICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAn
LCcpOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdFeHBlY3RlZCBhIGNvbW1hIGJ1dCBmb3VuZCAlcicgJSBodHRwX2hlYWRlcl91dGlsLnBl
ZWsoc3RhdGUpKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0
ZSkKLQotICAgIGlmIGxlbih0b2tlbl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBIYW5kc2hh
a2VFeGNlcHRpb24oJ05vIHZhbGlkIHRva2VuIGZvdW5kJykKLQotICAgIHJldHVybiB0b2tlbl9s
aXN0Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9oYW5kc2hha2UvaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9o
eWJpLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGJmMjVhMWRjY2E3N2NkNTg5
ZGJhNzA1NGY0ZTYyNzJjNmRlYTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNDIwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMg
ZmlsZSBwcm92aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2Vi
U29ja2V0Ci1wcm90b2NvbCAoUkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUgaXMgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2ggbW9kX3B5dGhv
bgotIyBkb2N1bWVudCBzYXlzIHRoYXQgaXQgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0
aW9uIGhhbmRsZXJzLgotIyBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMu
IEZvciBleGFtcGxlLCByZXF1ZXN0LndyaXRlIGlzIG5vdAotIyBzdWl0YWJsZSBiZWNhdXNlIGl0
IGRvZXNuJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcyB3cml0aW5nLgotCi0KLWltcG9ydCBiYXNl
NjQKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGlt
cG9ydCBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5z
aW9ucyBpbXBvcnQgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGNoZWNrX3JlcXVlc3RfbGluZQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBmb3JtYXRfaGVhZGVyCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9tYW5kYXRvcnlfaGVhZGVyCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBwYXJzZV90
b2tlbl9saXN0Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZh
bGlkYXRlX21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5f
YmFzZSBpbXBvcnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBv
cnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0j
IFVzZWQgdG8gdmFsaWRhdGUgdGhlIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LUtleSBoZWFk
ZXIgc3RyaWN0bHkuIFJGQyA0NjQ4Ci0jIGRpc2FsbG93cyBub24temVybyBwYWRkaW5nLCBzbyB0
aGUgY2hhcmFjdGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0IGJlIGFueSBvZgotIyBBLCBRLCBnIGFu
ZCB3LgotX1NFQ19XRUJTT0NLRVRfS0VZX1JFR0VYID0gcmUuY29tcGlsZSgnXlsrLzAtOUEtWmEt
el17MjF9W0FRZ3ddPT0kJykKLQotIyBEZWZpbmluZyBhbGlhc2VzIGZvciB2YWx1ZXMgdXNlZCBm
cmVxdWVudGx5LgotX1ZFUlNJT05fTEFURVNUID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QK
LV9WRVJTSU9OX0xBVEVTVF9TVFJJTkcgPSBzdHIoX1ZFUlNJT05fTEFURVNUKQotX1NVUFBPUlRF
RF9WRVJTSU9OUyA9IFsKLSAgICBfVkVSU0lPTl9MQVRFU1QsCi1dCi0KLQotZGVmIGNvbXB1dGVf
YWNjZXB0KGtleSk6Ci0gICAgIiIiQ29tcHV0ZXMgdmFsdWUgZm9yIHRoZSBTZWMtV2ViU29ja2V0
LUFjY2VwdCBoZWFkZXIgZnJvbSB2YWx1ZSBvZiB0aGUKLSAgICBTZWMtV2ViU29ja2V0LUtleSBo
ZWFkZXIuCi0gICAgIiIiCi0KLSAgICBhY2NlcHRfYmluYXJ5ID0gdXRpbC5zaGExX2hhc2goCi0g
ICAgICAgIGtleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAg
YWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShhY2NlcHRfYmluYXJ5KQotCi0gICAgcmV0dXJuIChh
Y2NlcHQsIGFjY2VwdF9iaW5hcnkpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihvYmplY3QpOgotICAg
ICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2Nv
bCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3Bh
dGNoZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAg
IGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotCi0gICAgICAg
IEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGR1cmlu
ZyBoYW5kc2hha2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0
Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBkZWYgX3ZhbGlk
YXRlX2Nvbm5lY3Rpb25faGVhZGVyKHNlbGYpOgotICAgICAgICBjb25uZWN0aW9uID0gZ2V0X21h
bmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uQ09OTkVD
VElPTl9IRUFERVIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29ubmVjdGlvbl90b2tl
bnMgPSBwYXJzZV90b2tlbl9saXN0KGNvbm5lY3Rpb24pCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hh
a2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlICVzOiAlcycgJSAoY29tbW9uLkNPTk5F
Q1RJT05fSEVBREVSLCBlKSkKLQotICAgICAgICBjb25uZWN0aW9uX2lzX3ZhbGlkID0gRmFsc2UK
LSAgICAgICAgZm9yIHRva2VuIGluIGNvbm5lY3Rpb25fdG9rZW5zOgotICAgICAgICAgICAgaWYg
dG9rZW4ubG93ZXIoKSA9PSBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUubG93ZXIoKToK
LSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2lzX3ZhbGlkID0gVHJ1ZQotICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgIGlmIG5vdCBjb25uZWN0aW9uX2lzX3ZhbGlkOgotICAgICAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclcyBoZWFkZXIg
ZG9lc25cJ3QgY29udGFpbiAiJXMiJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5DT05ORUNU
SU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFKSkKLQotICAgIGRlZiBk
b19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9
IE5vbmUKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBOb25lCi0KLSAg
ICAgICAgIyBQYXJzaW5nLgotCi0gICAgICAgIGNoZWNrX3JlcXVlc3RfbGluZShzZWxmLl9yZXF1
ZXN0KQotCi0gICAgICAgIHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAg
ICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCi0KLSAgICAgICAgc2VsZi5fdmFs
aWRhdGVfY29ubmVjdGlvbl9oZWFkZXIoKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVz
b3VyY2UgPSBzZWxmLl9yZXF1ZXN0LnVyaQotCi0gICAgICAgIHVudXNlZF9ob3N0ID0gZ2V0X21h
bmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwgY29tbW9uLkhPU1RfSEVBREVSKQotCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9IHNlbGYuX2NoZWNrX3ZlcnNpb24oKQotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2dldF9vcmlnaW4oKQotICAgICAgICAgICAg
c2VsZi5fc2V0X3Byb3RvY29sKCkKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlX2V4dGVuc2lvbnMo
KQotCi0gICAgICAgICAgICAjIEtleSB2YWxpZGF0aW9uLCByZXNwb25zZSBnZW5lcmF0aW9uLgot
Ci0gICAgICAgICAgICBrZXkgPSBzZWxmLl9nZXRfa2V5KCkKLSAgICAgICAgICAgIChhY2NlcHQs
IGFjY2VwdF9iaW5hcnkpID0gY29tcHV0ZV9hY2NlcHQoa2V5KQotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAg
ICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICBhY2NlcHQsCi0gICAgICAgICAgICAgICAgdXRpbC5oZXhpZnkoYWNjZXB0X2JpbmFyeSkpCi0K
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUHJvdG9jb2wgdmVyc2lvbiBpcyBSRkMg
NjQ1NScpCi0KLSAgICAgICAgICAgICMgU2V0dXAgZXh0ZW5zaW9uIHByb2Nlc3NvcnMuCi0KLSAg
ICAgICAgICAgIHByb2Nlc3NvcnMgPSBbXQotICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53
c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBmb3Ig
ZXh0ZW5zaW9uX3JlcXVlc3QgaW4gc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
czoKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yID0gZ2V0X2V4dGVuc2lvbl9wcm9jZXNz
b3IoZXh0ZW5zaW9uX3JlcXVlc3QpCi0gICAgICAgICAgICAgICAgICAgICMgVW5rbm93biBleHRl
bnNpb24gcmVxdWVzdHMgYXJlIGp1c3QgaWdub3JlZC4KLSAgICAgICAgICAgICAgICAgICAgaWYg
cHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29y
cy5hcHBlbmQocHJvY2Vzc29yKQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29ycyA9IHByb2Nlc3NvcnMKLQotICAgICAgICAgICAgIyBMaXN0IG9mIGV4dHJh
IGhlYWRlcnMuIFRoZSBleHRyYSBoYW5kc2hha2UgaGFuZGxlciBtYXkgYWRkIGhlYWRlcgotICAg
ICAgICAgICAgIyBkYXRhIGFzIG5hbWUvdmFsdWUgcGFpcnMgdG8gdGhpcyBsaXN0IGFuZCBweXdl
YnNvY2tldCBhcHBlbmRzCi0gICAgICAgICAgICAjIHRoZW0gdG8gdGhlIFdlYlNvY2tldCBoYW5k
c2hha2UuCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hlYWRlcnMgPSBbXQotCi0g
ICAgICAgICAgICAjIEV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBtb2RpZnkvcmVtb3ZlIHBy
b2Nlc3NvcnMuCi0gICAgICAgICAgICBzZWxmLl9kaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEg
cHJvY2Vzc29yOiBwcm9jZXNzb3IgaXMgbm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpCi0KLSAgICAg
ICAgICAgICMgQXNrIGVhY2ggcHJvY2Vzc29yIGlmIHRoZXJlIGFyZSBleHRlbnNpb25zIG9uIHRo
ZSByZXF1ZXN0IHdoaWNoCi0gICAgICAgICAgICAjIGNhbm5vdCBjby1leGlzdC4gV2hlbiBwcm9j
ZXNzb3IgZGVjaWRlZCBvdGhlciBwcm9jZXNzb3JzIGNhbm5vdAotICAgICAgICAgICAgIyBjby1l
eGlzdCB3aXRoIGl0LCB0aGUgcHJvY2Vzc29yIG1hcmtzIHRoZW0gKG9yIGl0c2VsZikgYXMKLSAg
ICAgICAgICAgICMgImluYWN0aXZlIi4gVGhlIGZpcnN0IGV4dGVuc2lvbiBwcm9jZXNzb3IgaGFz
IHRoZSByaWdodCB0bwotICAgICAgICAgICAgIyBtYWtlIHRoZSBmaW5hbCBjYWxsLgotICAgICAg
ICAgICAgZm9yIHByb2Nlc3NvciBpbiByZXZlcnNlZChwcm9jZXNzb3JzKToKLSAgICAgICAgICAg
ICAgICBpZiBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nl
c3Nvci5jaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotICAgICAgICAgICAgcHJvY2Vzc29ycyA9IGZpbHRl
cihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3IuaXNfYWN0aXZlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCi0KLSAgICAgICAgICAgIGFjY2VwdGVkX2V4
dGVuc2lvbnMgPSBbXQotCi0gICAgICAgICAgICAjIFdlIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291
bnQgb2YgbXV4IGV4dGVuc2lvbiBoZXJlLgotICAgICAgICAgICAgIyBJZiBtdXggZXh0ZW5zaW9u
IGV4aXN0czoKLSAgICAgICAgICAgICMgLSBSZW1vdmUgcHJvY2Vzc29ycyBvZiBleHRlbnNpb25z
IGZvciBsb2dpY2FsIGNoYW5uZWwsCi0gICAgICAgICAgICAjICAgd2hpY2ggYXJlIHByb2Nlc3Nv
cnMgbG9jYXRlZCBiZWZvcmUgdGhlIG11eCBwcm9jZXNzb3IKLSAgICAgICAgICAgICMgLSBQYXNz
IGV4dGVuc2lvbiByZXF1ZXN0cyBmb3IgbG9naWNhbCBjaGFubmVsIHRvIG11eCBwcm9jZXNzb3IK
LSAgICAgICAgICAgICMgLSBBdHRhY2ggdGhlIG11eCBwcm9jZXNzb3IgdG8gdGhlIHJlcXVlc3Qu
IEl0IHdpbGwgYmUgcmVmZXJyZWQKLSAgICAgICAgICAgICMgICBieSBkaXNwYXRjaGVyIHRvIHNl
ZSB3aGV0aGVyIHRoZSBkaXNwYXRjaGVyIHNob3VsZCB1c2UgbXV4Ci0gICAgICAgICAgICAjICAg
aGFuZGxlciBvciBub3QuCi0gICAgICAgICAgICBtdXhfaW5kZXggPSAtMQotICAgICAgICAgICAg
Zm9yIGksIHByb2Nlc3NvciBpbiBlbnVtZXJhdGUocHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAg
ICAgaWYgcHJvY2Vzc29yLm5hbWUoKSA9PSBjb21tb24uTVVYX0VYVEVOU0lPTjoKLSAgICAgICAg
ICAgICAgICAgICAgbXV4X2luZGV4ID0gaQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICAgICAgaWYgbXV4X2luZGV4ID49IDA6Ci0gICAgICAgICAgICAgICAgbG9naWNhbF9jaGFu
bmVsX2V4dGVuc2lvbnMgPSBbXQotICAgICAgICAgICAgICAgIGZvciBwcm9jZXNzb3IgaW4gcHJv
Y2Vzc29yc1s6bXV4X2luZGV4XToKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9jaGFubmVs
X2V4dGVuc2lvbnMuYXBwZW5kKHByb2Nlc3Nvci5yZXF1ZXN0KCkpCi0gICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3Nvci5zZXRfYWN0aXZlKEZhbHNlKQotICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QubXV4X3Byb2Nlc3NvciA9IHByb2Nlc3NvcnNbbXV4X2luZGV4XQotICAgICAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfZXh0ZW5zaW9ucygKLSAgICAgICAg
ICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMpCi0gICAgICAgICAgICAgICAg
cHJvY2Vzc29ycyA9IGZpbHRlcihsYW1iZGEgcHJvY2Vzc29yOiBwcm9jZXNzb3IuaXNfYWN0aXZl
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotCi0g
ICAgICAgICAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotCi0gICAgICAgICAg
ICBmb3IgaW5kZXgsIHByb2Nlc3NvciBpbiBlbnVtZXJhdGUocHJvY2Vzc29ycyk6Ci0gICAgICAg
ICAgICAgICAgaWYgbm90IHByb2Nlc3Nvci5pc19hY3RpdmUoKToKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGV4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nl
c3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgICAgICAgICBpZiBleHRlbnNp
b25fcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgIyBSZWplY3RlZC4KLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGFjY2VwdGVkX2V4
dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbl9yZXNwb25zZSkKLQotICAgICAgICAgICAgICAgIHBy
b2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLQotICAgICAgICAg
ICAgICAgIGlmIG5vdCBpc19jb21wcmVzc2lvbl9leHRlbnNpb24ocHJvY2Vzc29yLm5hbWUoKSk6
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICAjIEluYWN0
aXZhdGUgYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29tcHJlc3Npb24gZXh0ZW5zaW9ucy4KLSAgICAg
ICAgICAgICAgICBmb3IgaiBpbiB4cmFuZ2UoaW5kZXggKyAxLCBsZW4ocHJvY2Vzc29ycykpOgot
ICAgICAgICAgICAgICAgICAgICBpZiBpc19jb21wcmVzc2lvbl9leHRlbnNpb24ocHJvY2Vzc29y
c1tqXS5uYW1lKCkpOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yc1tqXS5zZXRf
YWN0aXZlKEZhbHNlKQotCi0gICAgICAgICAgICBpZiBsZW4oYWNjZXB0ZWRfZXh0ZW5zaW9ucykg
PiAwOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IGFjY2Vw
dGVkX2V4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgICAgICdFeHRlbnNpb25zIGFjY2VwdGVkOiAlcicsCi0gICAgICAgICAgICAg
ICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5hbWUsIGFjY2VwdGVkX2V4dGVu
c2lvbnMpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2V4dGVuc2lvbnMgPSBOb25lCi0KLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfc3Ry
ZWFtID0gc2VsZi5fY3JlYXRlX3N0cmVhbShzdHJlYW1fb3B0aW9ucykKLQotICAgICAgICAgICAg
aWYgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ2RvX2V4dHJhX2hhbmRzaGFrZSBtdXN0IGNob29zZSBvbmUgc3VicHJvdG9jb2wg
ZnJvbSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAnd3NfcmVxdWVzdGVkX3Byb3RvY29scyBh
bmQgc2V0IGl0IHRvIHdzX3Byb3RvY29sJykKLSAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbChzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnU3VicHJvdG9jb2wgYWNjZXB0
ZWQ6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19w
cm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ3dzX3Byb3RvY29sIG11c3QgYmUg
Tm9uZSB3aGVuIHRoZSBjbGllbnQgZGlkblwndCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAn
cmVxdWVzdCBhbnkgc3VicHJvdG9jb2wnKQotCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2hhbmRz
aGFrZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24gYXMgZToKLSAg
ICAgICAgICAgIGlmIG5vdCBlLnN0YXR1czoKLSAgICAgICAgICAgICAgICAjIEZhbGxiYWNrIHRv
IDQwMCBiYWQgcmVxdWVzdCBieSBkZWZhdWx0LgotICAgICAgICAgICAgICAgIGUuc3RhdHVzID0g
Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCi0gICAgICAgICAgICByYWlzZSBlCi0KLSAg
ICBkZWYgX2dldF9vcmlnaW4oc2VsZik6Ci0gICAgICAgIG9yaWdpbl9oZWFkZXIgPSBjb21tb24u
T1JJR0lOX0hFQURFUgotICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4u
Z2V0KG9yaWdpbl9oZWFkZXIpCi0gICAgICAgIGlmIG9yaWdpbiBpcyBOb25lOgotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgcmVxdWVzdCBkb2VzIG5vdCBoYXZlIG9yaWdp
biBoZWFkZXInKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9yaWdpbgotCi0g
ICAgZGVmIF9jaGVja192ZXJzaW9uKHNlbGYpOgotICAgICAgICB2ZXJzaW9uID0gZ2V0X21hbmRh
dG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKQotICAgICAgICBp
ZiB2ZXJzaW9uID09IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6Ci0gICAgICAgICAgICByZXR1cm4g
X1ZFUlNJT05fTEFURVNUCi0KLSAgICAgICAgaWYgdmVyc2lvbi5maW5kKCcsJykgPj0gMDoKLSAg
ICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVs
dGlwbGUgdmVyc2lvbnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9yIGhlYWRlciAlcycgJQotICAg
ICAgICAgICAgICAgICh2ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURF
UiksCi0gICAgICAgICAgICAgICAgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVT
VCkKLSAgICAgICAgcmFpc2UgVmVyc2lvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdVbnN1cHBv
cnRlZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUKLSAgICAgICAgICAgICh2ZXJzaW9uLCBj
b21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiksCi0gICAgICAgICAgICBzdXBwb3J0
ZWRfdmVyc2lvbnM9JywgJy5qb2luKG1hcChzdHIsIF9TVVBQT1JURURfVkVSU0lPTlMpKSkKLQot
ICAgIGRlZiBfc2V0X3Byb3RvY29sKHNlbGYpOgotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3By
b3RvY29sID0gTm9uZQotCi0gICAgICAgIHByb3RvY29sX2hlYWRlciA9IHNlbGYuX3JlcXVlc3Qu
aGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NP
TF9IRUFERVIpCi0KLSAgICAgICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBOb25lCi0gICAgICAg
ICAgICByZXR1cm4KLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2Nv
bHMgPSBwYXJzZV90b2tlbl9saXN0KAotICAgICAgICAgICAgcHJvdG9jb2xfaGVhZGVyKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0ZWQ6ICVyJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3Rv
Y29scykKLQotICAgIGRlZiBfcGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgZXh0ZW5z
aW9uc19oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAotICAgICAgICAgICAg
Y29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIpCi0gICAgICAgIGlmIG5vdCBl
eHRlbnNpb25zX2hlYWRlcjoKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVk
X2V4dGVuc2lvbnMgPSBOb25lCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zID0gY29tbW9u
LnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uc19oZWFkZXIpCi0g
ICAgICAgIGV4Y2VwdCBjb21tb24uRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiBhcyBlOgotICAg
ICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWls
ZWQgdG8gcGFyc2UgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjogJXInICUgZSkKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXh0ZW5zaW9ucyByZXF1
ZXN0ZWQ6ICVyJywKLSAgICAgICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5h
bWUsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
cykpCi0KLSAgICBkZWYgX3ZhbGlkYXRlX2tleShzZWxmLCBrZXkpOgotICAgICAgICBpZiBrZXku
ZmluZCgnLCcpID49IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ1Jl
cXVlc3QgaGFzIG11bHRpcGxlICVzIGhlYWRlciBsaW5lcyBvciAnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyIFwnLFwnOiAl
cicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSLCBrZXkpKQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAg
a2V5X2lzX3ZhbGlkID0gRmFsc2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBWYWxpZGF0
ZSBrZXkgYnkgcXVpY2sgcmVnZXggbWF0Y2ggYmVmb3JlIHBhcnNpbmcgYnkgYmFzZTY0Ci0gICAg
ICAgICAgICAjIG1vZHVsZS4gQmVjYXVzZSBiYXNlNjQgbW9kdWxlIHNraXBzIGludmFsaWQgY2hh
cmFjdGVycywgd2UgaGF2ZQotICAgICAgICAgICAgIyB0byBkbyB0aGlzIGluIGFkdmFuY2UgdG8g
bWFrZSB0aGlzIHNlcnZlciBzdHJpY3RseSByZWplY3QgaWxsZWdhbAotICAgICAgICAgICAgIyBr
ZXlzLgotICAgICAgICAgICAgaWYgX1NFQ19XRUJTT0NLRVRfS0VZX1JFR0VYLm1hdGNoKGtleSk6
Ci0gICAgICAgICAgICAgICAgZGVjb2RlZF9rZXkgPSBiYXNlNjQuYjY0ZGVjb2RlKGtleSkKLSAg
ICAgICAgICAgICAgICBpZiBsZW4oZGVjb2RlZF9rZXkpID09IDE2OgotICAgICAgICAgICAgICAg
ICAgICBrZXlfaXNfdmFsaWQgPSBUcnVlCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToK
LSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBpZiBub3Qga2V5X2lzX3ZhbGlkOgotICAgICAg
ICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbGxlZ2Fs
IHZhbHVlIGZvciBoZWFkZXIgJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNf
V0VCU09DS0VUX0tFWV9IRUFERVIsIGtleSkpCi0KLSAgICAgICAgcmV0dXJuIGRlY29kZWRfa2V5
Ci0KLSAgICBkZWYgX2dldF9rZXkoc2VsZik6Ci0gICAgICAgIGtleSA9IGdldF9tYW5kYXRvcnlf
aGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwgY29tbW9uLlNFQ19XRUJTT0NLRVRf
S0VZX0hFQURFUikKLQotICAgICAgICBkZWNvZGVkX2tleSA9IHNlbGYuX3ZhbGlkYXRlX2tleShr
ZXkpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJyVzOiAlciAo
JXMpJywKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIsCi0gICAg
ICAgICAgICBrZXksCi0gICAgICAgICAgICB1dGlsLmhleGlmeShkZWNvZGVkX2tleSkpCi0KLSAg
ICAgICAgcmV0dXJuIGtleQotCi0gICAgZGVmIF9jcmVhdGVfc3RyZWFtKHNlbGYsIHN0cmVhbV9v
cHRpb25zKToKLSAgICAgICAgcmV0dXJuIFN0cmVhbShzZWxmLl9yZXF1ZXN0LCBzdHJlYW1fb3B0
aW9ucykKLQotICAgIGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShzZWxmLCBhY2NlcHQp
OgotICAgICAgICByZXNwb25zZSA9IFtdCi0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdIVFRQ
LzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nKQotCi0gICAgICAgICMgV2ViU29ja2V0
IGhlYWRlcnMKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAg
ICAgICBjb21tb24uVVBHUkFERV9IRUFERVIsIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBF
KSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAgICAgICBj
b21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkp
Ci0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29t
bW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURFUiwgYWNjZXB0KSkKLSAgICAgICAgaWYgc2Vs
Zi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNl
LmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09D
S0VUX1BST1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3By
b3RvY29sKSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyBpcyBub3Qg
Tm9uZSBhbmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpICE9
IDApOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIsCi0gICAgICAg
ICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5z
aW9ucykpKQotCi0gICAgICAgICMgSGVhZGVycyBub3Qgc3BlY2lmaWMgZm9yIFdlYlNvY2tldAot
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5fcmVxdWVzdC5leHRyYV9oZWFkZXJzOgot
ICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIobmFtZSwgdmFsdWUpKQot
Ci0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0KLSAgICAgICAgcmV0dXJuICcnLmpv
aW4ocmVzcG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtlKHNlbGYsIGFjY2VwdCk6Ci0g
ICAgICAgIHJhd19yZXNwb25zZSA9IHNlbGYuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNj
ZXB0KQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUocmF3X3Jlc3BvbnNl
KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQgc2VydmVyXCdzIG9wZW5pbmcgaGFu
ZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByYXdfcmVzcG9uc2UpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9o
YW5kc2hha2UvaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5Ymkw
MC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc1NzcxN2E2MzliYWMzZGIwNWQ0
Y2IzMDI3ZTA1NWZkYmY3ZjNjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHliaTAwLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMjkzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMg
ZmlsZSBwcm92aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2Vi
U29ja2V0Ci1wcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAuCi0KLVNwZWNpZmljYXRpb246Ci1odHRw
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9j
b2wtMDAKLSIiIgotCi0KLSMgTm90ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJl
IHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoCi0jIG1vZF9weXRob24gZG9jdW1lbnQg
c2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi0jIGhhbmRs
ZXJzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFtcGxl
LAotIyByZXF1ZXN0LndyaXRlL3JlYWQgYXJlIG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9u
J3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcwotIyB3cml0aW5nL3JlYWRpbmcuCi0KLQotaW1wb3J0
IGxvZ2dpbmcKLWltcG9ydCByZQotaW1wb3J0IHN0cnVjdAotCi1mcm9tIG1vZF9weXdlYnNvY2tl
dCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVh
bUhpeGllNzUKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0X2xpbmUK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0X2hlYWRl
cgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfZGVmYXVs
dF9wb3J0Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9t
YW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IHBhcnNlX2hvc3RfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jh
c2UgaW1wb3J0IHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIKLQotCi1fTUFOREFUT1JZX0hFQURF
UlMgPSBbCi0gICAgIyBrZXksIGV4cGVjdGVkIHZhbHVlIG9yIE5vbmUKLSAgICBbY29tbW9uLlVQ
R1JBREVfSEVBREVSLCBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1XSwKLSAg
ICBbY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZ
UEVdLAotXQotCi0KLWRlZiBfdmFsaWRhdGVfc3VicHJvdG9jb2woc3VicHJvdG9jb2wpOgotICAg
ICIiIkNoZWNrcyBpZiBjaGFyYWN0ZXJzIGluIHN1YnByb3RvY29sIGFyZSBpbiByYW5nZSBiZXR3
ZWVuIFUrMDAyMCBhbmQKLSAgICBVKzAwN0UuIEEgdmFsdWUgaW4gdGhlIFNlYy1XZWJTb2NrZXQt
UHJvdG9jb2wgZmllbGQgbmVlZCB0byBzYXRpc2Z5IHRoaXMKLSAgICByZXF1aXJlbWVudC4KLQot
ICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEuIE9wZW5pbmcgaGFuZHNoYWtlIG9mIHRoZSBzcGVjLgot
ICAgICIiIgotCi0gICAgaWYgbm90IHN1YnByb3RvY29sOgotICAgICAgICByYWlzZSBIYW5kc2hh
a2VFeGNlcHRpb24oJ0ludmFsaWQgc3VicHJvdG9jb2wgbmFtZTogZW1wdHknKQotCi0gICAgIyBQ
YXJhbWV0ZXIgc2hvdWxkIGJlIGluIHRoZSByYW5nZSBVKzAwMjAgdG8gVSswMDdFLgotICAgIGZv
ciBjIGluIHN1YnByb3RvY29sOgotICAgICAgICBpZiBub3QgMHgyMCA8PSBvcmQoYykgPD0gMHg3
ZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnSWxsZWdhbCBjaGFyYWN0ZXIgaW4gc3VicHJvdG9jb2wgbmFtZTogJXInICUgYykKLQotCi1k
ZWYgX2NoZWNrX2hlYWRlcl9saW5lcyhyZXF1ZXN0LCBtYW5kYXRvcnlfaGVhZGVycyk6Ci0gICAg
Y2hlY2tfcmVxdWVzdF9saW5lKHJlcXVlc3QpCi0KLSAgICAjIFRoZSBleHBlY3RlZCBmaWVsZCBu
YW1lcywgYW5kIHRoZSBtZWFuaW5nIG9mIHRoZWlyIGNvcnJlc3BvbmRpbmcKLSAgICAjIHZhbHVl
cywgYXJlIGFzIGZvbGxvd3MuCi0gICAgIyAgfFVwZ3JhZGV8IGFuZCB8Q29ubmVjdGlvbnwKLSAg
ICBmb3Iga2V5LCBleHBlY3RlZF92YWx1ZSBpbiBtYW5kYXRvcnlfaGVhZGVyczoKLSAgICAgICAg
dmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXksIGV4cGVjdGVkX3ZhbHVlKQot
Ci0KLWRlZiBfYnVpbGRfbG9jYXRpb24ocmVxdWVzdCk6Ci0gICAgIiIiQnVpbGQgV2ViU29ja2V0
IGxvY2F0aW9uIGZvciByZXF1ZXN0LiIiIgotCi0gICAgbG9jYXRpb25fcGFydHMgPSBbXQotICAg
IGlmIHJlcXVlc3QuaXNfaHR0cHMoKToKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKGNv
bW1vbi5XRUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUpCi0gICAgZWxzZToKLSAgICAgICAgbG9jYXRp
b25fcGFydHMuYXBwZW5kKGNvbW1vbi5XRUJfU09DS0VUX1NDSEVNRSkKLSAgICBsb2NhdGlvbl9w
YXJ0cy5hcHBlbmQoJzovLycpCi0gICAgaG9zdCwgcG9ydCA9IHBhcnNlX2hvc3RfaGVhZGVyKHJl
cXVlc3QpCi0gICAgY29ubmVjdGlvbl9wb3J0ID0gcmVxdWVzdC5jb25uZWN0aW9uLmxvY2FsX2Fk
ZHJbMV0KLSAgICBpZiBwb3J0ICE9IGNvbm5lY3Rpb25fcG9ydDoKLSAgICAgICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIvY29ubmVjdGlvbiBwb3J0IG1pc21hdGNoOiAlZC8lZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvcnQsIGNvbm5lY3Rpb25fcG9y
dCkpCi0gICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKGhvc3QpCi0gICAgaWYgKHBvcnQgIT0gZ2V0
X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpKToKLSAgICAgICAgbG9jYXRpb25fcGFy
dHMuYXBwZW5kKCc6JykKLSAgICAgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHN0cihwb3J0KSkK
LSAgICBsb2NhdGlvbl9wYXJ0cy5hcHBlbmQocmVxdWVzdC51bnBhcnNlZF91cmkpCi0gICAgcmV0
dXJuICcnLmpvaW4obG9jYXRpb25fcGFydHMpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihvYmplY3Qp
OgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBw
cm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5j
ZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1
ZXN0LgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciAoZGlzcGF0Y2guRGlzcGF0
Y2hlcikuCi0KLSAgICAgICAgSGFuZHNoYWtlciB3aWxsIGFkZCBhdHRyaWJ1dGVzIHN1Y2ggYXMg
d3NfcmVzb3VyY2UgaW4gcGVyZm9ybWluZwotICAgICAgICBoYW5kc2hha2UuCi0gICAgICAgICIi
IgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQot
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNo
ZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBkZWYgZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAi
IiJQZXJmb3JtIFdlYlNvY2tldCBIYW5kc2hha2UuCi0KLSAgICAgICAgT24gX3JlcXVlc3QsIHdl
IHNldAotICAgICAgICAgICAgd3NfcmVzb3VyY2UsIHdzX3Byb3RvY29sLCB3c19sb2NhdGlvbiwg
d3Nfb3JpZ2luLCB3c19jaGFsbGVuZ2UsCi0gICAgICAgICAgICB3c19jaGFsbGVuZ2VfbWQ1OiBX
ZWJTb2NrZXQgaGFuZHNoYWtlIGluZm9ybWF0aW9uLgotICAgICAgICAgICAgd3Nfc3RyZWFtOiBG
cmFtZSBnZW5lcmF0aW9uL3BhcnNpbmcgY2xhc3MuCi0gICAgICAgICAgICB3c192ZXJzaW9uOiBQ
cm90b2NvbCB2ZXJzaW9uLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEhhbmRzaGFr
ZUV4Y2VwdGlvbjogd2hlbiBhbnkgZXJyb3IgaGFwcGVuZWQgaW4gcGFyc2luZyB0aGUgb3Blbmlu
ZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kc2hha2UgcmVxdWVzdC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgIyA1LjEgUmVhZGluZyB0aGUgY2xpZW50J3Mgb3BlbmluZyBo
YW5kc2hha2UuCi0gICAgICAgICMgZGlzcGF0Y2hlciBzZXRzIGl0IGluIHNlbGYuX3JlcXVlc3Qu
Ci0gICAgICAgIF9jaGVja19oZWFkZXJfbGluZXMoc2VsZi5fcmVxdWVzdCwgX01BTkRBVE9SWV9I
RUFERVJTKQotICAgICAgICBzZWxmLl9zZXRfcmVzb3VyY2UoKQotICAgICAgICBzZWxmLl9zZXRf
c3VicHJvdG9jb2woKQotICAgICAgICBzZWxmLl9zZXRfbG9jYXRpb24oKQotICAgICAgICBzZWxm
Ll9zZXRfb3JpZ2luKCkKLSAgICAgICAgc2VsZi5fc2V0X2NoYWxsZW5nZV9yZXNwb25zZSgpCi0g
ICAgICAgIHNlbGYuX3NldF9wcm90b2NvbF92ZXJzaW9uKCkKLQotICAgICAgICBzZWxmLl9kaXNw
YXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLl9yZXF1ZXN0KQotCi0gICAgICAgIHNlbGYu
X3NlbmRfaGFuZHNoYWtlKCkKLQotICAgIGRlZiBfc2V0X3Jlc291cmNlKHNlbGYpOgotICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX3Jlc291cmNlID0gc2VsZi5fcmVxdWVzdC51cmkKLQotICAgIGRl
ZiBfc2V0X3N1YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIHxTZWMtV2ViU29ja2V0LVByb3Rv
Y29sfAotICAgICAgICBzdWJwcm90b2NvbCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQo
Ci0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIpCi0gICAg
ICAgIGlmIHN1YnByb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgX3ZhbGlkYXRlX3N1
YnByb3RvY29sKHN1YnByb3RvY29sKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29s
ID0gc3VicHJvdG9jb2wKLQotICAgIGRlZiBfc2V0X2xvY2F0aW9uKHNlbGYpOgotICAgICAgICAj
IHxIb3N0fAotICAgICAgICBob3N0ID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21t
b24uSE9TVF9IRUFERVIpCi0gICAgICAgIGlmIGhvc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLl9yZXF1ZXN0LndzX2xvY2F0aW9uID0gX2J1aWxkX2xvY2F0aW9uKHNlbGYuX3JlcXVl
c3QpCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgaG9zdCBpcyB0aGlzIGhvc3QuCi0KLSAg
ICBkZWYgX3NldF9vcmlnaW4oc2VsZik6Ci0gICAgICAgICMgfE9yaWdpbnwKLSAgICAgICAgb3Jp
Z2luID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21tb24uT1JJR0lOX0hFQURFUikK
LSAgICAgICAgaWYgb3JpZ2luIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19vcmlnaW4gPSBvcmlnaW4KLQotICAgIGRlZiBfc2V0X3Byb3RvY29sX3ZlcnNpb24oc2Vs
Zik6Ci0gICAgICAgICMgfFNlYy1XZWJTb2NrZXQtRHJhZnR8Ci0gICAgICAgIGRyYWZ0ID0gc2Vs
Zi5fcmVxdWVzdC5oZWFkZXJzX2luLmdldChjb21tb24uU0VDX1dFQlNPQ0tFVF9EUkFGVF9IRUFE
RVIpCi0gICAgICAgIGlmIGRyYWZ0IGlzIG5vdCBOb25lIGFuZCBkcmFmdCAhPSAnMCc6Ci0gICAg
ICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0lsbGVnYWwgdmFsdWUgZm9yICVzOiAl
cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9EUkFGVF9IRUFERVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYWZ0KSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb3RvY29sIHZlcnNp
b24gaXMgSHlCaSAwMCcpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiA9IGNvbW1v
bi5WRVJTSU9OX0hZQkkwMAotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3N0cmVhbSA9IFN0cmVh
bUhpeGllNzUoc2VsZi5fcmVxdWVzdCwgVHJ1ZSkKLQotICAgIGRlZiBfc2V0X2NoYWxsZW5nZV9y
ZXNwb25zZShzZWxmKToKLSAgICAgICAgIyA1LjIgNC04LgotICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2NoYWxsZW5nZSA9IHNlbGYuX2dldF9jaGFsbGVuZ2UoKQotICAgICAgICAjIDUuMiA5LiBs
ZXQgL3Jlc3BvbnNlLyBiZSB0aGUgTUQ1IGZpbnRlcnByaW50IG9mIC9jaGFsbGVuZ2UvCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSA9IHV0aWwubWQ1X2hhc2goCi0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkuZGlnZXN0KCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsCi0gICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSwKLSAgICAgICAgICAgIHV0aWwuaGV4
aWZ5KHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlKSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ0NoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUsCi0gICAgICAgICAgICB1dGlsLmhl
eGlmeShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpKQotCi0gICAgZGVmIF9nZXRfa2V5
X3ZhbHVlKHNlbGYsIGtleV9maWVsZCk6Ci0gICAgICAgIGtleV92YWx1ZSA9IGdldF9tYW5kYXRv
cnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsIGtleV9maWVsZCkKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJyVzOiAlcicsIGtleV9maWVsZCwga2V5X3ZhbHVlKQotCi0gICAgICAgICMgNS4y
IDQuIGxldCAva2V5LW51bWJlcl9uLyBiZSB0aGUgZGlnaXRzIChjaGFyYWN0ZXJzIGluIHRoZSBy
YW5nZQotICAgICAgICAjIFUrMDAzMCBESUdJVCBaRVJPICgwKSB0byBVKzAwMzkgRElHSVQgTklO
RSAoOSkpIGluIC9rZXlfbi8sCi0gICAgICAgICMgaW50ZXJwcmV0ZWQgYXMgYSBiYXNlIHRlbiBp
bnRlZ2VyLCBpZ25vcmluZyBhbGwgb3RoZXIgY2hhcmFjdGVycwotICAgICAgICAjIGluIC9rZXlf
bi8uCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGtleV9udW1iZXIgPSBpbnQocmUuc3ViKCJc
XEQiLCAiIiwga2V5X3ZhbHVlKSkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlRXhjZXB0aW9uKCclcyBmaWVsZCBjb250YWlucyBubyBkaWdpdCcgJSBrZXlfZmll
bGQpCi0gICAgICAgICMgNS4yIDUuIGxldCAvc3BhY2VzX24vIGJlIHRoZSBudW1iZXIgb2YgVSsw
MDIwIFNQQUNFIGNoYXJhY3RlcnMKLSAgICAgICAgIyBpbiAva2V5X24vLgotICAgICAgICBzcGFj
ZXMgPSByZS5zdWJuKCIgIiwgIiIsIGtleV92YWx1ZSlbMV0KLSAgICAgICAgaWYgc3BhY2VzID09
IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJyVzIGZpZWxkIGNvbnRh
aW5zIG5vIHNwYWNlJyAlIGtleV9maWVsZCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAnJXM6IEtleS1udW1iZXIgaXMgJWQgYW5kIG51bWJlciBvZiBzcGFjZXMg
aXMgJWQnLAotICAgICAgICAgICAga2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMpCi0KLSAg
ICAgICAgIyA1LjIgNi4gaWYgL2tleS1udW1iZXJfbi8gaXMgbm90IGFuIGludGVncmFsIG11bHRp
cGxlIG9mIC9zcGFjZXNfbi8KLSAgICAgICAgIyB0aGVuIGFib3J0IHRoZSBXZWJTb2NrZXQgY29u
bmVjdGlvbi4KLSAgICAgICAgaWYga2V5X251bWJlciAlIHNwYWNlcyAhPSAwOgotICAgICAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICclczogS2V5LW51
bWJlciAoJWQpIGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBvZiBzcGFjZXMgJwotICAgICAg
ICAgICAgICAgICcoJWQpJyAlIChrZXlfZmllbGQsIGtleV9udW1iZXIsIHNwYWNlcykpCi0gICAg
ICAgICMgNS4yIDcuIGxldCAvcGFydF9uLyBiZSAva2V5LW51bWJlcl9uLyBkaXZpZGVkIGJ5IC9z
cGFjZXNfbi8uCi0gICAgICAgIHBhcnQgPSBrZXlfbnVtYmVyIC8gc3BhY2VzCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXM6IFBhcnQgaXMgJWQnLCBrZXlfZmllbGQsIHBhcnQpCi0gICAg
ICAgIHJldHVybiBwYXJ0Ci0KLSAgICBkZWYgX2dldF9jaGFsbGVuZ2Uoc2VsZik6Ci0gICAgICAg
ICMgNS4yIDQtNy4KLSAgICAgICAga2V5MSA9IHNlbGYuX2dldF9rZXlfdmFsdWUoY29tbW9uLlNF
Q19XRUJTT0NLRVRfS0VZMV9IRUFERVIpCi0gICAgICAgIGtleTIgPSBzZWxmLl9nZXRfa2V5X3Zh
bHVlKGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTJfSEVBREVSKQotICAgICAgICAjIDUuMiA4LiBs
ZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL3BhcnRfMS8sCi0gICAgICAg
IGNoYWxsZW5nZSA9ICcnCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBr
ZXkxKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKLSAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVj
dC5wYWNrKCchSScsIGtleTIpICAjIG5ldHdvcmsgYnl0ZW9yZGVyIGludAotICAgICAgICBjaGFs
bGVuZ2UgKz0gc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlYWQoOCkKLSAgICAgICAgcmV0dXJu
IGNoYWxsZW5nZQotCi0gICAgZGVmIF9zZW5kX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVz
cG9uc2UgPSBbXQotCi0gICAgICAgICMgNS4yIDEwLiBzZW5kIHRoZSBmb2xsb3dpbmcgbGluZS4K
LSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29s
IEhhbmRzaGFrZVxyXG4nKQotCi0gICAgICAgICMgNS4yIDExLiBzZW5kIHRoZSBmb2xsb3dpbmcg
ZmllbGRzIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVh
ZGVyKAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VCU09DS0VU
X1VQR1JBREVfVFlQRV9ISVhJRTc1KSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9o
ZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdS
QURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVh
ZGVyKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfTE9DQVRJT05fSEVBREVSLCBz
ZWxmLl9yZXF1ZXN0LndzX2xvY2F0aW9uKSkKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1h
dF9oZWFkZXIoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVS
LCBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbikpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3Nf
cHJvdG9jb2w6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAg
ICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFERVIsCi0gICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAgICMgNS4yIDEy
LiBzZW5kIHR3byBieXRlcyAweDBEIDB4MEEuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJc
bicpCi0gICAgICAgICMgNS4yIDEzLiBzZW5kIC9yZXNwb25zZS8KLSAgICAgICAgcmVzcG9uc2Uu
YXBwZW5kKHNlbGYuX3JlcXVlc3Qud3NfY2hhbGxlbmdlX21kNSkKLQotICAgICAgICByYXdfcmVz
cG9uc2UgPSAnJy5qb2luKHJlc3BvbnNlKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUocmF3X3Jlc3BvbnNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbnQg
c2VydmVyXCdzIG9wZW5pbmcgaGFuZHNoYWtlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICByYXdfcmVzcG9uc2UpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGY1N2E0OGM2MjdiYmQyODAzNmNlNmI3MzdjNjVhYmQzZWQwNmJlYzYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvaHliaTAwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJz
ZXJoYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZlNzYzODU5Nzk4NWE5NmE0YzAwZWEw
MDUyYTBkMzcxN2U0NDAzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMjU3ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlB5dGhv
bkhlYWRlclBhcnNlckhhbmRsZXIgZm9yIG1vZF9weXdlYnNvY2tldC4KLQotQXBhY2hlIEhUVFAg
U2VydmVyIGFuZCBtb2RfcHl0aG9uIG11c3QgYmUgY29uZmlndXJlZCBzdWNoIHRoYXQgdGhpcwot
ZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGhhbmRsZSBXZWJTb2NrZXQgcmVxdWVzdC4KLSIiIgotCi0K
LWltcG9ydCBsb2dnaW5nCi0KLWZyb20gbW9kX3B5dGhvbiBpbXBvcnQgYXBhY2hlCi0KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBkaXNwYXRjaAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5
IHRoZSBoYW5kbGVyIHJvb3QgZGlyZWN0b3J5LgotX1BZT1BUX0hBTkRMRVJfUk9PVCA9ICdtb2Rf
cHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290JwotCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5IHRo
ZSBoYW5kbGVyIHNjYW4gZGlyZWN0b3J5LgotIyBUaGlzIG11c3QgYmUgYSBkaXJlY3RvcnkgdW5k
ZXIgdGhlIHJvb3QgZGlyZWN0b3J5LgotIyBUaGUgZGVmYXVsdCBpcyB0aGUgcm9vdCBkaXJlY3Rv
cnkuCi1fUFlPUFRfSEFORExFUl9TQ0FOID0gJ21vZF9weXdlYnNvY2tldC5oYW5kbGVyX3NjYW4n
Ci0KLSMgUHl0aG9uT3B0aW9uIHRvIGFsbG93IGhhbmRsZXJzIHdob3NlIGNhbm9uaWNhbCBwYXRo
IGlzCi0jIG5vdCB1bmRlciB0aGUgcm9vdCBkaXJlY3RvcnkuIEl0J3MgZGlzYWxsb3dlZCBieSBk
ZWZhdWx0LgotIyBTZXQgdGhpcyBvcHRpb24gd2l0aCB2YWx1ZSBvZiAneWVzJyB0byBhbGxvdy4K
LV9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1QgPSAoCi0gICAgJ21vZF9weXdlYnNv
Y2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyJykKLSMgTWFwIGZyb20gdmFsdWVz
IHRvIHRoZWlyIG1lYW5pbmdzLiAnWWVzJyBhbmQgJ05vJyBhcmUgYWxsb3dlZCBqdXN0IGZvcgot
IyBjb21wYXRpYmlsaXR5LgotX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVF9ERUZJ
TklUSU9OID0gewotICAgICdvZmYnOiBGYWxzZSwgJ25vJzogRmFsc2UsICdvbic6IFRydWUsICd5
ZXMnOiBUcnVlfQotCi0jIChPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuKQotIyBQeXRob25PcHRp
b24gdG8gc3BlY2lmeSB0byBhbGxvdyBoYW5kc2hha2UgZGVmaW5lZCBpbiBIaXhpZSA3NSB2ZXJz
aW9uCi0jIHByb3RvY29sLiBUaGUgZGVmYXVsdCBpcyBOb25lIChPZmYpCi1fUFlPUFRfQUxMT1df
RFJBRlQ3NSA9ICdtb2RfcHl3ZWJzb2NrZXQuYWxsb3dfZHJhZnQ3NScKLSMgTWFwIGZyb20gdmFs
dWVzIHRvIHRoZWlyIG1lYW5pbmdzLgotX1BZT1BUX0FMTE9XX0RSQUZUNzVfREVGSU5JVElPTiA9
IHsnb2ZmJzogRmFsc2UsICdvbic6IFRydWV9Ci0KLQotY2xhc3MgQXBhY2hlTG9nSGFuZGxlcihs
b2dnaW5nLkhhbmRsZXIpOgotCi0gICAgIiIiV3JhcHBlciBsb2dnaW5nLkhhbmRsZXIgdG8gZW1p
dCBsb2cgbWVzc2FnZSB0byBhcGFjaGUncyBlcnJvci5sb2cuIiIiCi0KLSAgICBfTEVWRUxTID0g
ewotICAgICAgICBsb2dnaW5nLkRFQlVHOiBhcGFjaGUuQVBMT0dfREVCVUcsCi0gICAgICAgIGxv
Z2dpbmcuSU5GTzogYXBhY2hlLkFQTE9HX0lORk8sCi0gICAgICAgIGxvZ2dpbmcuV0FSTklORzog
YXBhY2hlLkFQTE9HX1dBUk5JTkcsCi0gICAgICAgIGxvZ2dpbmcuRVJST1I6IGFwYWNoZS5BUExP
R19FUlIsCi0gICAgICAgIGxvZ2dpbmcuQ1JJVElDQUw6IGFwYWNoZS5BUExPR19DUklULAotICAg
ICAgICB9Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdD1Ob25lKToKLSAgICAgICAg
bG9nZ2luZy5IYW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ19lcnJvciA9
IGFwYWNoZS5sb2dfZXJyb3IKLSAgICAgICAgaWYgcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ19lcnJvciA9IHJlcXVlc3QubG9nX2Vycm9yCi0KLSAgICAgICAgIyBU
aW1lIGFuZCBsZXZlbCB3aWxsIGJlIHByaW50ZWQgYnkgQXBhY2hlLgotICAgICAgICBzZWxmLl9m
b3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRlcignJShuYW1lKXM6ICUobWVzc2FnZSlzJykKLQot
ICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIGFwYWNoZV9sZXZlbCA9IGFwYWNo
ZS5BUExPR19ERUJVRwotICAgICAgICBpZiByZWNvcmQubGV2ZWxubyBpbiBBcGFjaGVMb2dIYW5k
bGVyLl9MRVZFTFM6Ci0gICAgICAgICAgICBhcGFjaGVfbGV2ZWwgPSBBcGFjaGVMb2dIYW5kbGVy
Ll9MRVZFTFNbcmVjb3JkLmxldmVsbm9dCi0KLSAgICAgICAgbXNnID0gc2VsZi5fZm9ybWF0dGVy
LmZvcm1hdChyZWNvcmQpCi0KLSAgICAgICAgIyAic2VydmVyIiBwYXJhbWV0ZXIgbXVzdCBiZSBw
YXNzZWQgdG8gaGF2ZSAibGV2ZWwiIHBhcmFtZXRlciB3b3JrLgotICAgICAgICAjIElmIG9ubHkg
ImxldmVsIiBwYXJhbWV0ZXIgaXMgcGFzc2VkLCBub3RoaW5nIHNob3dzIHVwIG9uIEFwYWNoZSdz
Ci0gICAgICAgICMgbG9nLiBIb3dldmVyLCBhdCB0aGlzIHBvaW50LCB3ZSBjYW5ub3QgZ2V0IHRo
ZSBzZXJ2ZXIgb2JqZWN0IG9mIHRoZQotICAgICAgICAjIHZpcnR1YWwgaG9zdCB3aGljaCB3aWxs
IHByb2Nlc3MgV2ViU29ja2V0IHJlcXVlc3RzLiBUaGUgb25seSBzZXJ2ZXIKLSAgICAgICAgIyBv
YmplY3Qgd2UgY2FuIGdldCBoZXJlIGlzIGFwYWNoZS5tYWluX3NlcnZlci4gQnV0IFdoZXJldmVy
IChzZXJ2ZXIKLSAgICAgICAgIyBjb25maWd1cmF0aW9uIGNvbnRleHQgb3IgdmlydHVhbCBob3N0
IGNvbnRleHQpIHdlIHB1dAotICAgICAgICAjIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgZGly
ZWN0aXZlLCBhcGFjaGUubWFpbl9zZXJ2ZXIganVzdCBwb2ludHMKLSAgICAgICAgIyB0aGUgbWFp
biBzZXJ2ZXIgaW5zdGFuY2UgKG5vdCBhbnkgb2YgdmlydHVhbCBzZXJ2ZXIgaW5zdGFuY2UpLiBU
aGVuLAotICAgICAgICAjIEFwYWNoZSBmb2xsb3dzIExvZ0xldmVsIGRpcmVjdGl2ZSBpbiB0aGUg
c2VydmVyIGNvbmZpZ3VyYXRpb24gY29udGV4dAotICAgICAgICAjIHRvIGZpbHRlciBsb2dzLiBT
bywgd2UgbmVlZCB0byBzcGVjaWZ5IExvZ0xldmVsIGluIHRoZSBzZXJ2ZXIKLSAgICAgICAgIyBj
b25maWd1cmF0aW9uIGNvbnRleHQuIEV2ZW4gaWYgd2Ugc3BlY2lmeSAiTG9nTGV2ZWwgZGVidWci
IGluIHRoZQotICAgICAgICAjIHZpcnR1YWwgaG9zdCBjb250ZXh0IHdoaWNoIGFjdHVhbGx5IGhh
bmRsZXMgV2ViU29ja2V0IGNvbm5lY3Rpb25zLAotICAgICAgICAjIERFQlVHIGxldmVsIGxvZ3Mg
bmV2ZXIgc2hvdyB1cCB1bmxlc3MgIkxvZ0xldmVsIGRlYnVnIiBpcyBzcGVjaWZpZWQKLSAgICAg
ICAgIyBpbiB0aGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gY29udGV4dC4KLSAgICAgICAgIwotICAg
ICAgICAjIFRPRE8odHlvc2hpbm8pOiBQcm92aWRlIGxvZ2dpbmcgbWV0aG9kcyBvbiByZXF1ZXN0
IG9iamVjdC4gV2hlbgotICAgICAgICAjIHJlcXVlc3QgaXMgbXBfcmVxdWVzdCBvYmplY3QgKHdo
ZW4gdXNlZCB0b2dldGhlciB3aXRoIEFwYWNoZSksIHRoZQotICAgICAgICAjIG1ldGhvZHMgY2Fs
bCByZXF1ZXN0LmxvZ19lcnJvciBpbmRpcmVjdGx5LiBXaGVuIHJlcXVlc3QgaXMKLSAgICAgICAg
IyBfU3RhbmRhbG9uZVJlcXVlc3QsIHRoZSBtZXRob2RzIGNhbGwgUHl0aG9uJ3MgbG9nZ2luZyBm
YWNpbGl0eSB3aGljaAotICAgICAgICAjIHdlIGNyZWF0ZSBpbiBzdGFuZGFsb25lLnB5LgotICAg
ICAgICBzZWxmLl9sb2dfZXJyb3IobXNnLCBhcGFjaGVfbGV2ZWwsIGFwYWNoZS5tYWluX3NlcnZl
cikKLQotCi1kZWYgX2NvbmZpZ3VyZV9sb2dnaW5nKCk6Ci0gICAgbG9nZ2VyID0gbG9nZ2luZy5n
ZXRMb2dnZXIoKQotICAgICMgTG9ncyBhcmUgZmlsdGVyZWQgYnkgQXBhY2hlIGJhc2VkIG9uIExv
Z0xldmVsIGRpcmVjdGl2ZSBpbiBBcGFjaGUKLSAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZS4gV2Ug
bXVzdCBqdXN0IHBhc3MgbG9ncyBmb3IgYWxsIGxldmVscyB0bwotICAgICMgQXBhY2hlTG9nSGFu
ZGxlci4KLSAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5ERUJVRykKLSAgICBsb2dnZXIuYWRk
SGFuZGxlcihBcGFjaGVMb2dIYW5kbGVyKCkpCi0KLQotX2NvbmZpZ3VyZV9sb2dnaW5nKCkKLQot
X0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWRlZiBfcGFyc2Vfb3B0
aW9uKG5hbWUsIHZhbHVlLCBkZWZpbml0aW9uKToKLSAgICAiIiJSZXR1cm4gdGhlIG1lYW5pbmcg
b2YgYSBvcHRpb24gdmFsdWUuIiIiCi0gICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAgcmV0
dXJuIEZhbHNlCi0KLSAgICBtZWFuaW5nID0gZGVmaW5pdGlvbi5nZXQodmFsdWUubG93ZXIoKSkK
LSAgICBpZiBtZWFuaW5nIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxp
ZCB2YWx1ZSBmb3IgUHl0aG9uT3B0aW9uICVzOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAg
ICAgKG5hbWUsIHZhbHVlKSkKLSAgICByZXR1cm4gbWVhbmluZwotCi0KLWRlZiBfY3JlYXRlX2Rp
c3BhdGNoZXIoKToKLSAgICAiIiJJbml0aWFsaXplIGEgZGlzcGF0Y2guRGlzcGF0Y2hlci4iIiIK
LSAgICBfTE9HR0VSLmluZm8oJ0luaXRpYWxpemluZyBEaXNwYXRjaGVyJykKLQotICAgIG9wdGlv
bnMgPSBhcGFjaGUubWFpbl9zZXJ2ZXIuZ2V0X29wdGlvbnMoKQotCi0gICAgaGFuZGxlcl9yb290
ID0gb3B0aW9ucy5nZXQoX1BZT1BUX0hBTkRMRVJfUk9PVCwgTm9uZSkKLSAgICBpZiBub3QgaGFu
ZGxlcl9yb290OgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1B5dGhvbk9wdGlvbiAlcyBpcyBu
b3QgZGVmaW5lZCcgJSBfUFlPUFRfSEFORExFUl9ST09ULAotICAgICAgICAgICAgICAgICAgICAg
ICAgYXBhY2hlLkFQTE9HX0VSUikKLQotICAgIGhhbmRsZXJfc2NhbiA9IG9wdGlvbnMuZ2V0KF9Q
WU9QVF9IQU5ETEVSX1NDQU4sIGhhbmRsZXJfcm9vdCkKLQotICAgIGFsbG93X2hhbmRsZXJzX291
dHNpZGVfcm9vdCA9IF9wYXJzZV9vcHRpb24oCi0gICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVS
U19PVVRTSURFX1JPT1QsCi0gICAgICAgIG9wdGlvbnMuZ2V0KF9QWU9QVF9BTExPV19IQU5ETEVS
U19PVVRTSURFX1JPT1QpLAotICAgICAgICBfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9S
T09UX0RFRklOSVRJT04pCi0KLSAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcigK
LSAgICAgICAgaGFuZGxlcl9yb290LCBoYW5kbGVyX3NjYW4sIGFsbG93X2hhbmRsZXJzX291dHNp
ZGVfcm9vdCkKLQotICAgIGZvciB3YXJuaW5nIGluIGRpc3BhdGNoZXIuc291cmNlX3dhcm5pbmdz
KCk6Ci0gICAgICAgIGFwYWNoZS5sb2dfZXJyb3IoCi0gICAgICAgICAgICAnbW9kX3B5d2Vic29j
a2V0OiBXYXJuaW5nIGluIHNvdXJjZSBsb2FkaW5nOiAlcycgJSB3YXJuaW5nLAotICAgICAgICAg
ICAgYXBhY2hlLkFQTE9HX1dBUk5JTkcpCi0KLSAgICByZXR1cm4gZGlzcGF0Y2hlcgotCi0KLSMg
SW5pdGlhbGl6ZQotX2Rpc3BhdGNoZXIgPSBfY3JlYXRlX2Rpc3BhdGNoZXIoKQotCi0KLWRlZiBo
ZWFkZXJwYXJzZXJoYW5kbGVyKHJlcXVlc3QpOgotICAgICIiIkhhbmRsZSByZXF1ZXN0LgotCi0g
ICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotCi0gICAgVGhp
cyBmdW5jdGlvbiBpcyBuYW1lZCBoZWFkZXJwYXJzZXJoYW5kbGVyIGJlY2F1c2UgaXQgaXMgdGhl
IGRlZmF1bHQKLSAgICBuYW1lIGZvciBhIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIuCi0gICAg
IiIiCi0gICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBGYWxzZQotICAgIHRyeToKLSAgICAgICAgIyBG
YWxsYmFjayB0byBkZWZhdWx0IGh0dHAgaGFuZGxlciBmb3IgcmVxdWVzdCBwYXRocyBmb3Igd2hp
Y2gKLSAgICAgICAgIyB3ZSBkb24ndCBoYXZlIHJlcXVlc3QgaGFuZGxlcnMuCi0gICAgICAgIGlm
IG5vdCBfZGlzcGF0Y2hlci5nZXRfaGFuZGxlcl9zdWl0ZShyZXF1ZXN0LnVyaSk6Ci0gICAgICAg
ICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0
OiBObyBoYW5kbGVyIGZvciByZXNvdXJjZTogJXInICUgcmVxdWVzdC51cmksCi0gICAgICAgICAg
ICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigK
LSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBGYWxsYmFjayB0byBBcGFjaGUnLCBh
cGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKLSAg
ICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKLSAgICAgICAgcmVxdWVz
dC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBEaXNwYXRjaCBmYWls
ZWQgZm9yIGVycm9yOiAlcycgJSBlLAotICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCi0g
ICAgICAgIGlmIG5vdCBoYW5kc2hha2VfaXNfZG9uZToKLSAgICAgICAgICAgIHJldHVybiBlLnN0
YXR1cwotCi0gICAgdHJ5OgotICAgICAgICBhbGxvd19kcmFmdDc1ID0gX3BhcnNlX29wdGlvbigK
LSAgICAgICAgICAgIF9QWU9QVF9BTExPV19EUkFGVDc1LAotICAgICAgICAgICAgYXBhY2hlLm1h
aW5fc2VydmVyLmdldF9vcHRpb25zKCkuZ2V0KF9QWU9QVF9BTExPV19EUkFGVDc1KSwKLSAgICAg
ICAgICAgIF9QWU9QVF9BTExPV19EUkFGVDc1X0RFRklOSVRJT04pCi0KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgaGFuZHNoYWtlLmRvX2hhbmRzaGFrZSgKLSAgICAgICAgICAgICAgICByZXF1
ZXN0LCBfZGlzcGF0Y2hlciwgYWxsb3dEcmFmdDc1PWFsbG93X2RyYWZ0NzUpCi0gICAgICAgIGV4
Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgcmVxdWVz
dC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogSGFuZHNoYWtl
IGZhaWxlZCBmb3IgdmVyc2lvbiBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAgICAgICBhcGFj
aGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJlcXVlc3QuZXJyX2hlYWRlcnNfb3V0LmFkZChj
b21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlLnN1cHBvcnRlZF92ZXJzaW9ucykKLSAgICAgICAgICAgIHJl
dHVybiBhcGFjaGUuSFRUUF9CQURfUkVRVUVTVAotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhh
bmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgIyBIYW5kc2hha2UgZm9yIHdzL3dz
cyBmYWlsZWQuCi0gICAgICAgICAgICAjIFNlbmQgaHR0cCByZXNwb25zZSB3aXRoIGVycm9yIHN0
YXR1cy4KLSAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAotICAgICAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIGVycm9yOiAlcycgJSBlLAotICAg
ICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmV0dXJuIGUuc3Rh
dHVzCi0KLSAgICAgICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBUcnVlCi0gICAgICAgIHJlcXVlc3Qu
X2Rpc3BhdGNoZXIgPSBfZGlzcGF0Y2hlcgotICAgICAgICBfZGlzcGF0Y2hlci50cmFuc2Zlcl9k
YXRhKHJlcXVlc3QpCi0gICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEFib3J0
ZWQ6ICVzJyAlIGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZP
KQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlv
biBjYW4gYWxzbyBiZSB0aHJvd24gaWYgc29tZXRoaW5nIGlzIHdyb25nIGluCi0gICAgICAgICMg
cHl3ZWJzb2NrZXQgY29kZS4gSXQncyBjYXVnaHQgaGVyZSwgdGhlbi4KLQotICAgICAgICByZXF1
ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vic29ja2V0OiBFeGNlcHRpb24gb2NjdXJyZWQ6ICVzXG4l
cycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAoZSwgdXRpbC5nZXRfc3RhY2tfdHJhY2Uo
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19FUlIpCi0gICAgICAg
ICMgVW5rbm93biBleGNlcHRpb25zIGJlZm9yZSBoYW5kc2hha2UgbWVhbiBBcGFjaGUgbXVzdCBo
YW5kbGUgaXRzCi0gICAgICAgICMgcmVxdWVzdCB3aXRoIGFub3RoZXIgaGFuZGxlci4KLSAgICAg
ICAgaWYgbm90IGhhbmRzaGFrZV9pc19kb25lOgotICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5E
RUNMSU5FRAotICAgICMgU2V0IGFzc2JhY2t3YXJkcyB0byBzdXBwcmVzcyByZXNwb25zZSBoZWFk
ZXIgZ2VuZXJhdGlvbiBieSBBcGFjaGUuCi0gICAgcmVxdWVzdC5hc3NiYWNrd2FyZHMgPSAxCi0g
ICAgcmV0dXJuIGFwYWNoZS5ET05FICAjIFJldHVybiBET05FIHN1Y2ggdGhhdCBubyBvdGhlciBo
YW5kbGVycyBhcmUgaW52b2tlZC4KLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9odHRwX2hlYWRlcl91dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZTA1ODRjNWRhYzhjYzQ0Yzc3NmY3Y2NiNGU2YTUwNDBjZTUyMjI0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2h0
dHBfaGVhZGVyX3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjMgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiVXRpbGl0aWVzIGZvciBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIGhl
YWRlcnMgdGhhdCBmb2xsb3cgdGhlIGdyYW1tYXIgZGVmaW5lZAotaW4gSFRUUCBSRkMgaHR0cDov
L3d3dy5pZXRmLm9yZy9yZmMvcmZjMjYxNi50eHQuCi0iIiIKLQotCi1mcm9tIHNpeC5tb3ZlcyBp
bXBvcnQgdXJsbGliCi0KLQotX1NFUEFSQVRPUlMgPSAnKCk8PkAsOzpcXCIvW10/PXt9IFx0Jwot
Ci0KLWRlZiBfaXNfY2hhcihjKToKLSAgICAiIiJSZXR1cm5zIHRydWUgaWZmIGMgaXMgaW4gQ0hB
UiBhcyBzcGVjaWZpZWQgaW4gSFRUUCBSRkMuIiIiCi0KLSAgICByZXR1cm4gb3JkKGMpIDw9IDEy
NwotCi0KLWRlZiBfaXNfY3RsKGMpOgotICAgICIiIlJldHVybnMgdHJ1ZSBpZmYgYyBpcyBpbiBD
VEwgYXMgc3BlY2lmaWVkIGluIEhUVFAgUkZDLiIiIgotCi0gICAgcmV0dXJuIG9yZChjKSA8PSAz
MSBvciBvcmQoYykgPT0gMTI3Ci0KLQotY2xhc3MgUGFyc2luZ1N0YXRlKG9iamVjdCk6Ci0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKLSAg
ICAgICAgc2VsZi5oZWFkID0gMAotCi0KLWRlZiBwZWVrKHN0YXRlLCBwb3M9MCk6Ci0gICAgIiIi
UGVla3MgdGhlIGNoYXJhY3RlciBhdCBwb3MgZnJvbSB0aGUgaGVhZCBvZiBkYXRhLiIiIgotCi0g
ICAgaWYgc3RhdGUuaGVhZCArIHBvcyA+PSBsZW4oc3RhdGUuZGF0YSk6Ci0gICAgICAgIHJldHVy
biBOb25lCi0KLSAgICByZXR1cm4gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkICsgcG9zXQotCi0KLWRl
ZiBjb25zdW1lKHN0YXRlLCBhbW91bnQ9MSk6Ci0gICAgIiIiQ29uc3VtZXMgc3BlY2lmaWVkIGFt
b3VudCBvZiBieXRlcyBmcm9tIHRoZSBoZWFkIGFuZCByZXR1cm5zIHRoZQotICAgIGNvbnN1bWVk
IGJ5dGVzLiBJZiB0aGVyZSdzIG5vdCBlbm91Z2ggYnl0ZXMgdG8gY29uc3VtZSwgcmV0dXJucyBO
b25lLgotICAgICIiIgotCi0gICAgaWYgc3RhdGUuaGVhZCArIGFtb3VudCA+IGxlbihzdGF0ZS5k
YXRhKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJlc3VsdCA9IHN0YXRlLmRhdGFbc3Rh
dGUuaGVhZDpzdGF0ZS5oZWFkICsgYW1vdW50XQotICAgIHN0YXRlLmhlYWQgPSBzdGF0ZS5oZWFk
ICsgYW1vdW50Ci0gICAgcmV0dXJuIHJlc3VsdAotCi0KLWRlZiBjb25zdW1lX3N0cmluZyhzdGF0
ZSwgZXhwZWN0ZWQpOgotICAgICIiIkdpdmVuIGEgcGFyc2luZyBzdGF0ZSBhbmQgYSBleHBlY3Rl
ZCBzdHJpbmcsIGNvbnN1bWVzIHRoZSBzdHJpbmcgZnJvbQotICAgIHRoZSBoZWFkLiBSZXR1cm5z
IFRydWUgaWYgY29uc3VtZWQgc3VjY2Vzc2Z1bGx5LiBPdGhlcndpc2UsIHJldHVybnMKLSAgICBG
YWxzZS4KLSAgICAiIiIKLQotICAgIHBvcyA9IDAKLQotICAgIGZvciBjIGluIGV4cGVjdGVkOgot
ICAgICAgICBpZiBjICE9IHBlZWsoc3RhdGUsIHBvcyk6Ci0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgcG9zICs9IDEKLQotICAgIGNvbnN1bWUoc3RhdGUsIHBvcykKLSAgICByZXR1
cm4gVHJ1ZQotCi0KLWRlZiBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0gICAgIiIiQ29uc3VtZXMgYSBM
V1MgZnJvbSB0aGUgaGVhZC4gUmV0dXJucyBUcnVlIGlmIGFueSBMV1MgaXMgY29uc3VtZWQuCi0g
ICAgT3RoZXJ3aXNlLCByZXR1cm5zIEZhbHNlLgotCi0gICAgTFdTID0gW0NSTEZdIDEqKCBTUCB8
IEhUICkKLSAgICAiIiIKLQotICAgIG9yaWdpbmFsX2hlYWQgPSBzdGF0ZS5oZWFkCi0KLSAgICBj
b25zdW1lX3N0cmluZyhzdGF0ZSwgJ1xyXG4nKQotCi0gICAgcG9zID0gMAotCi0gICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgYyA9IHBlZWsoc3RhdGUsIHBvcykKLSAgICAgICAgaWYgYyA9PSAnICcg
b3IgYyA9PSAnXHQnOgotICAgICAgICAgICAgcG9zICs9IDEKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGlmIHBvcyA9PSAwOgotICAgICAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5h
bF9oZWFkCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIGNvbnN1bWUoc3RhdGUsIHBvcykKLSAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQotCi0KLWRlZiBjb25zdW1lX2x3c2VzKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyAq
TFdTIGZyb20gdGhlIGhlYWQuIiIiCi0KLSAgICB3aGlsZSBjb25zdW1lX2x3cyhzdGF0ZSk6Ci0g
ICAgICAgIHBhc3MKLQotCi1kZWYgY29uc3VtZV90b2tlbihzdGF0ZSk6Ci0gICAgIiIiQ29uc3Vt
ZXMgYSB0b2tlbiBmcm9tIHRoZSBoZWFkLiBSZXR1cm5zIHRoZSB0b2tlbiBvciBOb25lIGlmIG5v
IHRva2VuCi0gICAgd2FzIGZvdW5kLgotICAgICIiIgotCi0gICAgcG9zID0gMAotCi0gICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgYyA9IHBlZWsoc3RhdGUsIHBvcykKLSAgICAgICAgaWYgYyBpcyBO
b25lIG9yIGMgaW4gX1NFUEFSQVRPUlMgb3IgX2lzX2N0bChjKSBvciBub3QgX2lzX2NoYXIoYyk6
Ci0gICAgICAgICAgICBpZiBwb3MgPT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQot
Ci0gICAgICAgICAgICByZXR1cm4gY29uc3VtZShzdGF0ZSwgcG9zKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcG9zICs9IDEKLQotCi1kZWYgY29uc3VtZV90b2tlbl9vcl9xdW90ZWRfc3Ry
aW5nKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyBhIHRva2VuIG9yIGEgcXVvdGVkLXN0cmluZywg
YW5kIHJldHVybnMgdGhlIHRva2VuIG9yIHVucXVvdGVkCi0gICAgc3RyaW5nLiBJZiBubyB0b2tl
biBvciBxdW90ZWQtc3RyaW5nIHdhcyBmb3VuZCwgcmV0dXJucyBOb25lLgotICAgICIiIgotCi0g
ICAgb3JpZ2luYWxfaGVhZCA9IHN0YXRlLmhlYWQKLQotICAgIGlmIG5vdCBjb25zdW1lX3N0cmlu
ZyhzdGF0ZSwgJyInKToKLSAgICAgICAgcmV0dXJuIGNvbnN1bWVfdG9rZW4oc3RhdGUpCi0KLSAg
ICByZXN1bHQgPSBbXQotCi0gICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gRmFsc2UKLQotICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgIGlmIG5vdCBleHBlY3RfcXVvdGVkX3BhaXIgYW5kIGNvbnN1bWVf
bHdzKHN0YXRlKToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAnKQotICAgICAgICAgICAg
Y29udGludWUKLQotICAgICAgICBjID0gY29uc3VtZShzdGF0ZSkKLSAgICAgICAgaWYgYyBpcyBO
b25lOgotICAgICAgICAgICAgIyBxdW90ZWQtc3RyaW5nIGlzIG5vdCBlbmNsb3NlZCB3aXRoIGRv
dWJsZSBxdW90YXRpb24KLSAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbGlmIGV4cGVjdF9xdW90ZWRfcGFpcjoK
LSAgICAgICAgICAgIGV4cGVjdF9xdW90ZWRfcGFpciA9IEZhbHNlCi0gICAgICAgICAgICBpZiBf
aXNfY2hhcihjKToKLSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgICMgTm9uIENIQVIgY2hhcmFjdGVyIGZvdW5kIGluIHF1
b3RlZC1wYWlyCi0gICAgICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAg
ICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbGlmIGMgPT0gJ1xcJzoKLSAgICAg
ICAgICAgIGV4cGVjdF9xdW90ZWRfcGFpciA9IFRydWUKLSAgICAgICAgZWxpZiBjID09ICciJzoK
LSAgICAgICAgICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKLSAgICAgICAgZWxpZiBfaXNfY3Rs
KGMpOgotICAgICAgICAgICAgIyBJbnZhbGlkIGNoYXJhY3RlciAlciBmb3VuZCBpbiBxZHRleHQK
LSAgICAgICAgICAgIHN0YXRlLmhlYWQgPSBvcmlnaW5hbF9oZWFkCi0gICAgICAgICAgICByZXR1
cm4gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKQotCi0K
LWRlZiBxdW90ZV9pZl9uZWNlc3Nhcnkocyk6Ci0gICAgIiIiUXVvdGVzIGFyYml0cmFyeSBzdHJp
bmcgaW50byBxdW90ZWQtc3RyaW5nLiIiIgotCi0gICAgcXVvdGUgPSBGYWxzZQotICAgIGlmIHMg
PT0gJyc6Ci0gICAgICAgIHJldHVybiAnIiInCi0KLSAgICByZXN1bHQgPSBbXQotICAgIGZvciBj
IGluIHM6Ci0gICAgICAgIGlmIGMgPT0gJyInIG9yIGMgaW4gX1NFUEFSQVRPUlMgb3IgX2lzX2N0
bChjKSBvciBub3QgX2lzX2NoYXIoYyk6Ci0gICAgICAgICAgICBxdW90ZSA9IFRydWUKLQotICAg
ICAgICBpZiBjID09ICciJyBvciBfaXNfY3RsKGMpOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVu
ZCgnXFwnICsgYykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYykK
LQotICAgIGlmIHF1b3RlOgotICAgICAgICByZXR1cm4gJyInICsgJycuam9pbihyZXN1bHQpICsg
JyInCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQotCi0KLWRlZiBw
YXJzZV91cmkodXJpKToKLSAgICAiIiJQYXJzZSBhYnNvbHV0ZSBVUkkgdGhlbiByZXR1cm4gaG9z
dCwgcG9ydCBhbmQgcmVzb3VyY2UuIiIiCi0KLSAgICBwYXJzZWQgPSB1cmxsaWIucGFyc2UudXJs
c3BsaXQodXJpKQotICAgIGlmIHBhcnNlZC5zY2hlbWUgIT0gJ3dzcycgYW5kIHBhcnNlZC5zY2hl
bWUgIT0gJ3dzJzoKLSAgICAgICAgIyB8dXJpfCBtdXN0IGJlIGEgcmVsYXRpdmUgVVJJLgotICAg
ICAgICAjIFRPRE8odG95b3NoaW0pOiBTaG91bGQgdmFsaWRhdGUgfHVyaXwuCi0gICAgICAgIHJl
dHVybiBOb25lLCBOb25lLCB1cmkKLQotICAgIGlmIHBhcnNlZC5ob3N0bmFtZSBpcyBOb25lOgot
ICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQotCi0gICAgcG9ydCA9IE5vbmUKLSAgICB0
cnk6Ci0gICAgICAgIHBvcnQgPSBwYXJzZWQucG9ydAotICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFz
IGU6Ci0gICAgICAgICMgcG9ydCBwcm9wZXJ0eSBjYXVzZSBWYWx1ZUVycm9yIG9uIGludmFsaWQg
bnVsbCBwb3J0IGRlc2NyaXB0aW9uIGxpa2UKLSAgICAgICAgIyAnd3M6Ly9ob3N0Oi9wYXRoJy4K
LSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKLQotICAgIGlmIHBvcnQgaXMgTm9uZToK
LSAgICAgICAgaWYgcGFyc2VkLnNjaGVtZSA9PSAnd3MnOgotICAgICAgICAgICAgcG9ydCA9IDgw
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3J0ID0gNDQzCi0KLSAgICBwYXRoID0gcGFy
c2VkLnBhdGgKLSAgICBpZiBub3QgcGF0aDoKLSAgICAgICAgcGF0aCArPSAnLycKLSAgICBpZiBw
YXJzZWQucXVlcnk6Ci0gICAgICAgIHBhdGggKz0gJz8nICsgcGFyc2VkLnF1ZXJ5Ci0gICAgaWYg
cGFyc2VkLmZyYWdtZW50OgotICAgICAgICBwYXRoICs9ICcjJyArIHBhcnNlZC5mcmFnbWVudAot
Ci0gICAgcmV0dXJuIHBhcnNlZC5ob3N0bmFtZSwgcG9ydCwgcGF0aAotCi0KLXRyeToKLSAgICB1
cmxsaWIucGFyc2UudXNlc19uZXRsb2MuaW5kZXgoJ3dzJykKLWV4Y2VwdCBWYWx1ZUVycm9yIGFz
IGU6Ci0gICAgIyB1cmxwYXJzZSBpbiBQeXRob24yLjUuMSBkb2Vzbid0IGhhdmUgJ3dzJyBhbmQg
J3dzcycgZW50cmllcy4KLSAgICB1cmxsaWIucGFyc2UudXNlc19uZXRsb2MuYXBwZW5kKCd3cycp
Ci0gICAgdXJsbGliLnBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3NzJykKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdm
aWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3YWZjYzE1N2VkN2ExZDk0MmNiZjQzNThhZmEwNDU0ODQ2
ZjAxZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSw5
OCArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNZW1vcml6aW5nIGZpbGUuCi0KLUEg
bWVtb3JpemluZyBmaWxlIHdyYXBzIGEgZmlsZSBhbmQgbWVtb3JpemVzIGxpbmVzIHJlYWQgYnkg
cmVhZGxpbmUuCi0iIiIKLQotCi1jbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgotCi0gICAg
IiIiTWVtb3JpemluZ0ZpbGUgd3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBi
eSByZWFkbGluZS4KLQotICAgIE5vdGUgdGhhdCBkYXRhIHJlYWQgYnkgb3RoZXIgbWV0aG9kcyBh
cmUgbm90IG1lbW9yaXplZC4gVGhpcyBiZWhhdmlvcgotICAgIGlzIGdvb2QgZW5vdWdoIGZvciBt
ZW1vcml6aW5nIGxpbmVzIFNpbXBsZUhUVFBTZXJ2ZXIgcmVhZHMgYmVmb3JlCi0gICAgdGhlIGNv
bnRyb2wgcmVhY2hlcyBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaWxlXywgbWF4X21lbW9yaXplZF9saW5lcz0weDdGRkZGRkZGKToK
LSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBmaWxlXzogdGhlIGZpbGUgb2JqZWN0IHRvIHdyYXAuCi0gICAgICAgICAgICBtYXhf
bWVtb3JpemVkX2xpbmVzOiB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gbWVtb3JpemUu
Ci0gICAgICAgICAgICAgICAgT25seSB0aGUgZmlyc3QgbWF4X21lbW9yaXplZF9saW5lcyBhcmUg
bWVtb3JpemVkLgotICAgICAgICAgICAgICAgIERlZmF1bHQ6IHN5cy5tYXhpbnQuCi0gICAgICAg
ICIiIgotICAgICAgICBzZWxmLl9maWxlID0gZmlsZV8KLSAgICAgICAgc2VsZi5fbWVtb3JpemVk
X2xpbmVzID0gW10KLSAgICAgICAgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lcyA9IG1heF9tZW1v
cml6ZWRfbGluZXMKLSAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQotICAgICAgICBzZWxm
Ll9idWZmZXJlZF9saW5lID0gTm9uZQotCi0gICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oc2VsZiwg
bmFtZSk6Ci0gICAgICAgICIiIlJldHVybiBhIGZpbGUgYXR0cmlidXRlLgotCi0gICAgICAgIFJl
dHVybnMgdGhlIHZhbHVlIG92ZXJyaWRkZW4gYnkgdGhpcyBjbGFzcyBmb3Igc29tZSBhdHRyaWJ1
dGVzLAotICAgICAgICBhbmQgZm9yd2FyZHMgdGhlIGNhbGwgdG8gX2ZpbGUgZm9yIHRoZSBvdGhl
ciBhdHRyaWJ1dGVzLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbmFtZSBpbiAoJ19maWxlJywg
J19tZW1vcml6ZWRfbGluZXMnLCAnX21heF9tZW1vcml6ZWRfbGluZXMnLAotICAgICAgICAgICAg
ICAgICAgICAnX2J1ZmZlcmVkJywgJ19idWZmZXJlZF9saW5lJywgJ3JlYWRsaW5lJywKLSAgICAg
ICAgICAgICAgICAgICAgJ2dldF9tZW1vcml6ZWRfbGluZXMnKToKLSAgICAgICAgICAgIHJldHVy
biBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQotICAgICAgICByZXR1cm4gc2Vs
Zi5fZmlsZS5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZiwg
c2l6ZT0tMSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGZpbGUucmVhZGxpbmUgYW5kIG1lbW9yaXpl
IHRoZSBsaW5lIHJlYWQuCi0KLSAgICAgICAgTm90ZSB0aGF0IGV2ZW4gaWYgc2l6ZSBpcyBzcGVj
aWZpZWQgYW5kIHNtYWxsZXIgdGhhbiBhY3R1YWwgc2l6ZSwKLSAgICAgICAgdGhlIHdob2xlIGxp
bmUgd2lsbCBiZSByZWFkIG91dCBmcm9tIHVuZGVybHlpbmcgZmlsZSBvYmplY3QgYnkKLSAgICAg
ICAgc3Vic2VxdWVudCByZWFkbGluZSBjYWxscy4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNl
bGYuX2J1ZmZlcmVkOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2J1ZmZlcmVkX2xpbmUKLSAg
ICAgICAgICAgIHNlbGYuX2J1ZmZlcmVkID0gRmFsc2UKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGxpbmUgPSBzZWxmLl9maWxlLnJlYWRsaW5lKCkKLSAgICAgICAgICAgIGlmIGxpbmUgYW5k
IGxlbihzZWxmLl9tZW1vcml6ZWRfbGluZXMpIDwgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lczoK
LSAgICAgICAgICAgICAgICBzZWxmLl9tZW1vcml6ZWRfbGluZXMuYXBwZW5kKGxpbmUpCi0gICAg
ICAgIGlmIHNpemUgPj0gMCBhbmQgc2l6ZSA8IGxlbihsaW5lKToKLSAgICAgICAgICAgIHNlbGYu
X2J1ZmZlcmVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWRfbGluZSA9IGxpbmVb
c2l6ZTpdCi0gICAgICAgICAgICByZXR1cm4gbGluZVs6c2l6ZV0KLSAgICAgICAgcmV0dXJuIGxp
bmUKLQotICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXQg
bGluZXMgbWVtb3JpemVkIHNvIGZhci4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX21lbW9yaXpl
ZF9saW5lcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvbXNndXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNmM1YjFkYmNlOTdkNzJmMjZjYjc3Y2RiN2Y4
NDY3NDFiMWJiM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIx
OSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNZXNzYWdlIHJlbGF0ZWQgdXRpbGl0
aWVzLgotCi1Ob3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0
aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gKLW1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0IHRo
ZXkgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi1oYW5kbGVycy4gVW5mb3J0dW5h
dGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwKLXJlcXVlc3Qud3Jp
dGUvcmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3Qg
cmF3Ci1ieXRlcyB3cml0aW5nL3JlYWRpbmcuCi0iIiIKLQotCi1mcm9tIHNpeC5tb3ZlcyBpbXBv
cnQgcXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLQotCi0jIEV4cG9ydCBFeGNlcHRpb24gc3ltYm9s
cyBmcm9tIG1zZ3V0aWwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhj
ZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBV
bnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi0KLQotIyBBbiBBUEkgZm9yIGhhbmRsZXIgdG8gc2Vu
ZC9yZWNlaXZlIFdlYlNvY2tldCBtZXNzYWdlcy4KLWRlZiBjbG9zZV9jb25uZWN0aW9uKHJlcXVl
c3QpOgotICAgICIiIkNsb3NlIGNvbm5lY3Rpb24uCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1
ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgIiIiCi0gICAgcmVxdWVzdC53c19zdHJlYW0u
Y2xvc2VfY29ubmVjdGlvbigpCi0KLQotZGVmIHNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2Fk
X2RhdGEsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICIiIlNlbmQgYSBtZXNzYWdlIChv
ciBwYXJ0IG9mIGEgbWVzc2FnZSkuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2Rf
cHl0aG9uIHJlcXVlc3QuCi0gICAgICAgIHBheWxvYWRfZGF0YTogdW5pY29kZSB0ZXh0IG9yIHN0
ciBiaW5hcnkgdG8gc2VuZC4KLSAgICAgICAgZW5kOiBUcnVlIHRvIHRlcm1pbmF0ZSBhIG1lc3Nh
Z2UuCi0gICAgICAgICAgICAgRmFsc2UgdG8gc2VuZCBwYXlsb2FkX2RhdGEgYXMgcGFydCBvZiBh
IG1lc3NhZ2UgdGhhdCBpcyB0byBiZQotICAgICAgICAgICAgIHRlcm1pbmF0ZWQgYnkgbmV4dCBv
ciBsYXRlciBzZW5kX21lc3NhZ2UgY2FsbCB3aXRoIGVuZD1UcnVlLgotICAgICAgICBiaW5hcnk6
IHNlbmQgcGF5bG9hZF9kYXRhIGFzIGJpbmFyeSBmcmFtZShzKS4KLSAgICBSYWlzZXM6Ci0gICAg
ICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBzZXJ2ZXIgYWxyZWFkeSB0ZXJtaW5hdGVk
LgotICAgICIiIgotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShwYXlsb2FkX2Rh
dGEsIGVuZCwgYmluYXJ5KQotCi0KLWRlZiByZWNlaXZlX21lc3NhZ2UocmVxdWVzdCk6Ci0gICAg
IiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEg
dGV4dCBpbgotICAgIHVuaWNvZGUgb3IgYSBiaW5hcnkgaW4gc3RyLgotCi0gICAgQXJnczoKLSAg
ICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgIFJhaXNlczoKLSAgICAgICAg
SW52YWxpZEZyYW1lRXhjZXB0aW9uOiAgICAgd2hlbiBjbGllbnQgc2VuZCBpbnZhbGlkIGZyYW1l
LgotICAgICAgICBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uOiB3aGVuIGNsaWVudCBzZW5kIHVu
c3VwcG9ydGVkIGZyYW1lIGUuZy4gc29tZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBvZiByZXNlcnZlZCBiaXQgaXMgc2V0IGJ1dCBubyBleHRlbnNpb24gY2FuCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBpdC4KLSAgICAgICAgSW52YWxp
ZFVURjhFeGNlcHRpb246ICAgICAgd2hlbiBjbGllbnQgc2VuZCBhIHRleHQgZnJhbWUgY29udGFp
bmluZyBhbnkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZCBVVEYt
OCBzdHJpbmcuCi0gICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRo
ZSBjb25uZWN0aW9uIGlzIGNsb3NlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bmV4cGVjdGVkbHkuCi0gICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogICAgIHdoZW4g
Y2xpZW50IGFscmVhZHkgdGVybWluYXRlZC4KLSAgICAiIiIKLSAgICByZXR1cm4gcmVxdWVzdC53
c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLQotCi1kZWYgc2VuZF9waW5nKHJlcXVlc3QsIGJv
ZHk9JycpOgotICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZyhib2R5KQotCi0KLWNsYXNz
IE1lc3NhZ2VSZWNlaXZlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaGlzIGNsYXNzIHJl
Y2VpdmVzIG1lc3NhZ2VzIGZyb20gdGhlIGNsaWVudC4KLQotICAgIFRoaXMgY2xhc3MgcHJvdmlk
ZXMgdGhyZWUgd2F5cyB0byByZWNlaXZlIG1lc3NhZ2VzOiBibG9ja2luZywKLSAgICBub24tYmxv
Y2tpbmcsIGFuZCB2aWEgY2FsbGJhY2suIENhbGxiYWNrIGhhcyB0aGUgaGlnaGVzdCBwcmVjZWRl
bmNlLgotCi0gICAgTm90ZTogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUg
c3RhbmRhbG9uZSBzZXJ2ZXIgZm9yIHdzcwotICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkg
dGhlIHNlcnZlciByYWlzZXMgYSBmYXRhbCBlcnJvciBpZiB0aGUgc29ja2V0Ci0gICAgaXMgYWNj
ZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QsIG9ubWVzc2FnZT1Ob25lKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0
aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBvbm1lc3NhZ2U6IGEgZnVuY3Rpb24gdG8gYmUgY2Fs
bGVkIHdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVkLgotICAgICAgICAgICAgICAgICAgICAgICBN
YXkgYmUgTm9uZS4gSWYgbm90IE5vbmUsIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgb24KLSAgICAg
ICAgICAgICAgICAgICAgICAgYW5vdGhlciB0aHJlYWQuIEluIHRoYXQgY2FzZSwgTWVzc2FnZVJl
Y2VpdmVyLnJlY2VpdmUKLSAgICAgICAgICAgICAgICAgICAgICAgYW5kIE1lc3NhZ2VSZWNlaXZl
ci5yZWNlaXZlX25vd2FpdCBhcmUgdXNlbGVzcwotICAgICAgICAgICAgICAgICAgICAgICBiZWNh
dXNlIHRoZXkgd2lsbCBuZXZlciByZXR1cm4gYW55IG1lc3NhZ2VzLgotICAgICAgICAiIiIKLQot
ICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3Jl
cXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVlID0gcXVldWUuUXVldWUoKQotICAg
ICAgICBzZWxmLl9vbm1lc3NhZ2UgPSBvbm1lc3NhZ2UKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1
ZXN0ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxm
LnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHdoaWxlIG5vdCBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gcmVjZWl2ZV9tZXNzYWdlKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICAgICAgICAgaWYgc2Vs
Zi5fb25tZXNzYWdlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vbm1lc3NhZ2UobWVzc2Fn
ZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1
ZS5wdXQobWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGNsb3NlX2Nvbm5l
Y3Rpb24oc2VsZi5fcmVxdWVzdCkKLQotICAgIGRlZiByZWNlaXZlKHNlbGYpOgotICAgICAgICAi
IiIgUmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0aGUgY2hhbm5lbCwgYmxvY2tpbmcuCi0KLSAgICAg
ICAgUmV0dXJuczoKLSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1bmljb2RlIHN0cmluZy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9xdWV1ZS5nZXQoKQotCi0gICAgZGVmIHJl
Y2VpdmVfbm93YWl0KHNlbGYpOgotICAgICAgICAiIiIgUmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0
aGUgY2hhbm5lbCwgbm9uLWJsb2NraW5nLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAg
ICBtZXNzYWdlIGFzIGEgdW5pY29kZSBzdHJpbmcgaWYgYXZhaWxhYmxlLiBOb25lIG90aGVyd2lz
ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxm
Ll9xdWV1ZS5nZXRfbm93YWl0KCkKLSAgICAgICAgZXhjZXB0IHF1ZXVlLkVtcHR5OgotICAgICAg
ICAgICAgbWVzc2FnZSA9IE5vbmUKLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBz
dG9wKHNlbGYpOgotICAgICAgICAiIiJSZXF1ZXN0IHRvIHN0b3AgdGhpcyBpbnN0YW5jZS4KLQot
ICAgICAgICBUaGUgaW5zdGFuY2Ugd2lsbCBiZSBzdG9wcGVkIGFmdGVyIHJlY2VpdmluZyB0aGUg
bmV4dCBtZXNzYWdlLgotICAgICAgICBUaGlzIG1ldGhvZCBtYXkgbm90IGJlIHZlcnkgdXNlZnVs
LCBidXQgdGhlcmUgaXMgbm8gY2xlYW4gd2F5Ci0gICAgICAgIGluIFB5dGhvbiB0byBmb3JjZWZ1
bGx5IHN0b3AgYSBydW5uaW5nIHRocmVhZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3N0
b3BfcmVxdWVzdGVkID0gVHJ1ZQotCi0KLWNsYXNzIE1lc3NhZ2VTZW5kZXIodGhyZWFkaW5nLlRo
cmVhZCk6Ci0gICAgIiIiVGhpcyBjbGFzcyBzZW5kcyBtZXNzYWdlcyB0byB0aGUgY2xpZW50Lgot
Ci0gICAgVGhpcyBjbGFzcyBwcm92aWRlcyBib3RoIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25v
dXMgd2F5cyB0byBzZW5kCi0gICAgbWVzc2FnZXMuCi0KLSAgICBOb3RlOiBUaGlzIGNsYXNzIHNo
b3VsZCBub3QgYmUgdXNlZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZlciBmb3Igd3NzCi0gICAg
YmVjYXVzZSBweU9wZW5TU0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNlcyBhIGZhdGFsIGVycm9y
IGlmIHRoZSBzb2NrZXQKLSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNv
bnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVz
dDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAgdGhyZWFkaW5nLlRo
cmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAg
ICAgICBzZWxmLl9xdWV1ZSA9IHF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgc2VsZi5zZXREYWVtb24o
VHJ1ZSkKLSAgICAgICAgc2VsZi5zdGFydCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAg
ICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgbWVzc2FnZSwgY29uZGl0aW9uID0gc2VsZi5fcXVl
dWUuZ2V0KCkKLSAgICAgICAgICAgIGNvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHNl
bmRfbWVzc2FnZShzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICAgICAgY29uZGl0aW9u
Lm5vdGlmeSgpCi0gICAgICAgICAgICBjb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgc2Vu
ZChzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiU2VuZCBhIG1lc3NhZ2UsIGJsb2NraW5nLiIi
IgotCi0gICAgICAgIGNvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBj
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX3F1ZXVlLnB1dCgobWVzc2FnZSwgY29u
ZGl0aW9uKSkKLSAgICAgICAgY29uZGl0aW9uLndhaXQoKQotCi0gICAgZGVmIHNlbmRfbm93YWl0
KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwgbm9uLWJsb2NraW5n
LiIiIgotCi0gICAgICAgIHNlbGYuX3F1ZXVlLnB1dCgobWVzc2FnZSwgdGhyZWFkaW5nLkNvbmRp
dGlvbigpKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L211eC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211eC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTk0ZjhhMTQ2NDVjNTRiNjc0YjgxNDU4MzY3MzE5YjY2MDMw
NDQ3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9tdXgucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODg1ICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBo
ZWxwZXIgZnVuY3Rpb25zIGZvciBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uLgotCi1TcGVjaWZpY2F0
aW9uOgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXdlYnNvY2tl
dC1tdWx0aXBsZXhpbmctMDYKLSIiIgotCi0KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGNv
cHkKLWltcG9ydCBlbWFpbAotaW1wb3J0IGVtYWlsLnBhcnNlcgotaW1wb3J0IGxvZ2dpbmcKLWlt
cG9ydCBtYXRoCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdHJhY2Vi
YWNrCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGls
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNl
IGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgRnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBp
bXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0
cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3Jl
YXRlX2JpbmFyeV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9y
dCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UgaW1wb3J0IGh5YmkKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFV
TFRfQ0hBTk5FTF9JRCA9IDEKLQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAK
LV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19D
T05UUk9MID0gMgotX01VWF9PUENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVX
X0NIQU5ORUxfU0xPVCA9IDQKLQotX01BWF9DSEFOTkVMX0lEID0gMiAqKiAyOSAtIDEKLQotX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMgPSA2NAotX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCA9IDggKiAxMDI0Ci0KLV9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFkgPSAwCi1fSEFO
RFNIQUtFX0VOQ09ESU5HX0RFTFRBID0gMQotCi0jIFdlIG5lZWQgb25seSB0aGVzZSBzdGF0dXMg
Y29kZSBmb3Igbm93LgotX0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTID0gewotICAgIGNvbW1v
bi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVDogJ0JhZCBSZXF1ZXN0JywKLX0KLQotIyBEcm9wQ2hh
bm5lbCByZWFzb24gY29kZQotIyBUT0RPKGJhc2hpKTogRGVmaW5lIGFsbCByZWFzb24gY29kZSBk
ZWZpbmVkIGluIC0wNSBkcmFmdC4KLV9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi0K
LV9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UgPSAyMDAxCi1fRFJPUF9D
T0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEID0gMjAwMgotX0RST1BfQ09ERV9FTkNBUFNVTEFURURf
RlJBTUVfSVNfVFJVTkNBVEVEID0gMjAwMwotX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUg
PSAyMDA0Ci1fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0sgPSAyMDA1Ci1fRFJP
UF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMgPSAyMDA2Ci1fRFJPUF9DT0RFX05FV19DSEFO
TkVMX1NMT1RfVklPTEFUSU9OID0gMjAwNwotX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5D
T0RJTkcgPSAyMDEwCi0KLV9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04gPSAzMDA1Ci1f
RFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cgPSAzMDA2Ci1fRFJPUF9DT0RFX0FDS05PV0xF
REdFRCA9IDMwMDgKLV9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04gPSAzMDA5Ci0KLQotY2xh
c3MgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotCi0gICAgIiIiRXhjZXB0aW9u
IGluIGhhbmRsaW5nIG11bHRpcGxleGluZyBleHRlbnNpb24uIiIiCi0KLSAgICBwYXNzCi0KLQot
IyBUZW1wb3JhcnkKLWNsYXNzIE11eE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6
Ci0KLSAgICAiIiJSYWlzZWQgd2hlbiBhIGZsb3cgZW50ZXJzIHVuaW1wbGVtZW50ZWQgY29kZSBw
YXRoLiIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhj
ZXB0aW9uKEV4Y2VwdGlvbik6Ci0KLSAgICAiIiJSYWlzZWQgd2hlbiBsb2dpY2FsIGNvbm5lY3Rp
b24gaXMgZ3JhY2VmdWxseSBjbG9zZWQuIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IoRXhjZXB0aW9uKToKLQotICAgICIiIlJhaXNlZCB3aGVuIHRoZXJl
IGlzIGEgcGh5c2ljYWwgY29ubmVjdGlvbiBlcnJvci4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBkcm9wX2NvZGUsIG1lc3NhZ2U9JycpOgotICAgICAgICBzdXBlcihQaHlzaWNhbENvbm5l
Y3Rpb25FcnJvciwgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICAnY29kZT0lZCwgbWVzc2Fn
ZT0lcicgJSAoZHJvcF9jb2RlLCBtZXNzYWdlKSkKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBk
cm9wX2NvZGUKLSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotCi0KLWNsYXNzIExvZ2lj
YWxDaGFubmVsRXJyb3IoRXhjZXB0aW9uKToKLQotICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlz
IGEgbG9naWNhbCBjaGFubmVsIGVycm9yLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNo
YW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZT0nJyk6Ci0gICAgICAgICIiIkluaXRpYWxpemUg
dGhlIGVycm9yIHdpdGggYSBzdGF0dXMgbWVzc2FnZS4iIiIKLSAgICAgICAgc3VwZXIoTG9naWNh
bENoYW5uZWxFcnJvciwgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICAnY2hhbm5lbF9pZD0l
ZCwgY29kZT0lZCwgbWVzc2FnZT0lcicgJSAoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwg
ZHJvcF9jb2RlLCBtZXNzYWdlKSkKLSAgICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9p
ZAotICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRyb3BfY29kZQotICAgICAgICBzZWxmLm1lc3Nh
Z2UgPSBtZXNzYWdlCi0KLQotZGVmIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKToKLSAg
ICBpZiBjaGFubmVsX2lkIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBp
ZCAlZCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScgJSBjaGFubmVsX2lkKQotCi0gICAgaWYgY2hhbm5l
bF9pZCA8IDIgKiogNzoKLSAgICAgICAgcmV0dXJuIGNocihjaGFubmVsX2lkKQotICAgIGlmIGNo
YW5uZWxfaWQgPCAyICoqIDE0OgotICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFIJywgMHg4
MDAwICsgY2hhbm5lbF9pZCkKLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyMToKLSAgICAgICAg
Zmlyc3QgPSBjaHIoMHhjMCArIChjaGFubmVsX2lkID4+IDE2KSkKLSAgICAgICAgcmV0dXJuIGZp
cnN0ICsgc3RydWN0LnBhY2soJyFIJywgY2hhbm5lbF9pZCAmIDB4ZmZmZikKLSAgICBpZiBjaGFu
bmVsX2lkIDwgMiAqKiAyOToKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAw
MDAwMDAgKyBjaGFubmVsX2lkKQotCi0gICAgcmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAl
ZCBpcyB0b28gbGFyZ2UnICUgY2hhbm5lbF9pZCkKLQotCi1kZWYgX2VuY29kZV9udW1iZXIobnVt
YmVyKToKLSAgICByZXR1cm4gY3JlYXRlX2xlbmd0aF9oZWFkZXIobnVtYmVyLCBGYWxzZSkKLQot
Ci1kZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkLCBlbmNvZGVkX2hh
bmRzaGFrZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPTAsIHJl
amVjdGVkPUZhbHNlKToKLSAgICBpZiBlbmNvZGluZyAhPSAwIGFuZCBlbmNvZGluZyAhPSAxOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGVuY29kaW5nICVkJyAlIGVuY29kaW5n
KQotCi0gICAgZmlyc3RfYnl0ZSA9ICgoX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0Ug
PDwgNSkgfAotICAgICAgICAgICAgICAgICAgKHJlamVjdGVkIDw8IDQpIHwgZW5jb2RpbmcpCi0g
ICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAgICAgICAgICBfZW5jb2RlX2NoYW5u
ZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKGxlbihlbmNv
ZGVkX2hhbmRzaGFrZSkpICsKLSAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSkKLSAgICBy
ZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29k
ZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICBpZiBsZW4obWVzc2FnZSkgPiAwIGFuZCBjb2RlIGlz
IE5vbmU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NvZGUgbXVzdCBiZSBzcGVjaWZpZWQg
aWYgbWVzc2FnZSBpcyBzcGVjaWZpZWQnKQotCi0gICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RF
X0RST1BfQ0hBTk5FTCA8PCA1Ci0gICAgYmxvY2sgPSBjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2Rl
X2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkKLSAgICBpZiBjb2RlIGlzIE5vbmU6Ci0gICAgICAgIGJs
b2NrICs9IF9lbmNvZGVfbnVtYmVyKDApICAjIFJlYXNvbiBzaXplCi0gICAgZWxzZToKLSAgICAg
ICAgcmVhc29uID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyBtZXNzYWdlCi0gICAgICAgIHJl
YXNvbl9zaXplID0gX2VuY29kZV9udW1iZXIobGVuKHJlYXNvbikpCi0gICAgICAgIGJsb2NrICs9
IHJlYXNvbl9zaXplICsgcmVhc29uCi0KLSAgICByZXR1cm4gYmxvY2sKLQotCi1kZWYgX2NyZWF0
ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIGZpcnN0
X2J5dGUgPSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPDwgNQotICAgIGJsb2NrID0gKGNocihm
aXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQp
ICsKLSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihyZXBsZW5pc2hlZF9xdW90YSkpCi0gICAg
cmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfbmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2Vu
ZF9xdW90YSk6Ci0gICAgaWYgc2xvdHMgPCAwIG9yIHNlbmRfcXVvdGEgPCAwOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIG5vbi1uZWdhdGl2
ZS4nKQotICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUK
LSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVt
YmVyKHNsb3RzKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIoc2VuZF9xdW90YSkpCi0g
ICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZmFsbGJhY2tfbmV3X2NoYW5uZWxfc2xv
dCgpOgotICAgIGZpcnN0X2J5dGUgPSAoX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1
KSB8IDEgICMgU2V0IHRoZSBGIGZsYWcKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKyBf
ZW5jb2RlX251bWJlcigwKSArIF9lbmNvZGVfbnVtYmVyKDApKQotICAgIHJldHVybiBibG9jawot
Ci0KLWRlZiBfcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVlc3RfdGV4dCk6Ci0gICAgcmVxdWVzdF9s
aW5lLCBoZWFkZXJfbGluZXMgPSByZXF1ZXN0X3RleHQuc3BsaXQoJ1xyXG4nLCAxKQotCi0gICAg
d29yZHMgPSByZXF1ZXN0X2xpbmUuc3BsaXQoJyAnKQotICAgIGlmIGxlbih3b3JkcykgIT0gMzoK
LSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIFJlcXVlc3QtTGluZSBzeW50YXggJXInICUg
cmVxdWVzdF9saW5lKQotICAgIFtjb21tYW5kLCBwYXRoLCB2ZXJzaW9uXSA9IHdvcmRzCi0gICAg
aWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQg
cmVxdWVzdCB2ZXJzaW9uICVyJyAlIHZlcnNpb24pCi0KLSAgICAjIGVtYWlsLnBhcnNlci5QYXJz
ZXIoKSBwYXJzZXMgUkZDIDI4MjIgKFJGQyA4MjIpIHN0eWxlIGhlYWRlcnMuCi0gICAgIyBSRkMg
NjQ1NSByZWZlcnMgUkZDIDI2MTYgZm9yIGhhbmRzaGFrZSBwYXJzaW5nLCBhbmQgUkZDIDI2MTYg
cmVmZXJzCi0gICAgIyBSRkMgODIyLgotICAgIGhlYWRlcnMgPSBlbWFpbC5wYXJzZXIuUGFyc2Vy
KCkucGFyc2VzdHIoaGVhZGVyX2xpbmVzKQotICAgIHJldHVybiBjb21tYW5kLCBwYXRoLCB2ZXJz
aW9uLCBoZWFkZXJzCi0KLQotY2xhc3MgX0NvbnRyb2xCbG9jayhvYmplY3QpOgotCi0gICAgIiIi
QSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBwYXJzaW5nIHJlc3VsdCBvZiBtdWx0aXBsZXhpbmcgY29u
dHJvbCBibG9jay4KLQotICAgIENvbnRyb2wgYmxvY2sgc3BlY2lmaWMgYXR0cmlidXRlcyB3aWxs
IGJlIGFkZGVkIGJ5IF9NdXhGcmFtZVBheWxvYWRQYXJzZXIuCi0gICAgKGUuZy4gZW5jb2RlZF9o
YW5kc2hha2Ugd2lsbCBiZSBhZGRlZCBmb3IgQWRkQ2hhbm5lbFJlcXVlc3QgYW5kCi0gICAgQWRk
Q2hhbm5lbFJlc3BvbnNlKQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29k
ZSk6Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0KLQotY2xhc3MgX011eEZyYW1lUGF5
bG9hZFBhcnNlcihvYmplY3QpOgotCi0gICAgIiIiQSBjbGFzcyB0aGF0IHBhcnNlcyBtdWx0aXBs
ZXhlZCBmcmFtZSBwYXlsb2FkLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBheWxvYWQp
OgotICAgICAgICBzZWxmLl9kYXRhID0gcGF5bG9hZAotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0
aW9uID0gMAotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLQotICAgIGRlZiByZWFkX2NoYW5uZWxfaWQoc2VsZik6Ci0gICAgICAgICIiIlJlYWQgY2hh
bm5lbCBpZC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBWYWx1ZUVycm9yOiB3aGVu
IHRoZSBwYXlsb2FkIGRvZXNuJ3QgY29udGFpbgotICAgICAgICAgICAgICAgIHZhbGlkIGNoYW5u
ZWwgaWQuCi0gICAgICAgICIiIgotICAgICAgICByZW1haW5pbmdfbGVuZ3RoID0gbGVuKHNlbGYu
X2RhdGEpIC0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bv
c2l0aW9uCi0gICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPT0gMDoKLSAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotCi0gICAgICAgIGNo
YW5uZWxfaWQgPSBvcmQoc2VsZi5fZGF0YVtwb3NdKQotICAgICAgICBjaGFubmVsX2lkX2xlbmd0
aCA9IDEKLSAgICAgICAgaWYgY2hhbm5lbF9pZCAmIDB4ZTAgPT0gMHhlMDoKLSAgICAgICAgICAg
IGlmIHJlbWFpbmluZ19sZW5ndGggPCA0OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9
IHN0cnVjdC51bnBhY2soJyFMJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2RhdGFbcG9zOnBvcys0XSlbMF0gJiAweDFmZmZmZmZmCi0gICAgICAgICAgICBj
aGFubmVsX2lkX2xlbmd0aCA9IDQKLSAgICAgICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAw
eGMwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDM6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAg
ICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9pZCAmIDB4MWYpIDw8IDE2KSArCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soJyFIJywgc2VsZi5fZGF0YVtwb3MrMTpw
b3MrM10pWzBdKQotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAzCi0gICAgICAgIGVs
aWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAgICAgIGlmIHJlbWFpbmluZ19s
ZW5ndGggPCAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hh
bm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2so
JyFIJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFb
cG9zOnBvcysyXSlbMF0gJiAweDNmZmYKLSAgICAgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0g
MgotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IGNoYW5uZWxfaWRfbGVuZ3RoCi0KLSAg
ICAgICAgcmV0dXJuIGNoYW5uZWxfaWQKLQotICAgIGRlZiByZWFkX2lubmVyX2ZyYW1lKHNlbGYp
OgotICAgICAgICAiIiJSZWFkIGFuIGlubmVyIGZyYW1lLgotCi0gICAgICAgIFJhaXNlczoKLSAg
ICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiB3aGVuIHRoZSBpbm5lciBmcmFtZSBp
cyBpbnZhbGlkLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbGVuKHNlbGYuX2RhdGEpID09IHNl
bGYuX3JlYWRfcG9zaXRpb246Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19U
UlVOQ0FURUQpCi0KLSAgICAgICAgYml0cyA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9z
aXRpb25dKQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAgICAgZmluID0g
KGJpdHMgJiAweDgwKSA9PSAweDgwCi0gICAgICAgIHJzdjEgPSAoYml0cyAmIDB4NDApID09IDB4
NDAKLSAgICAgICAgcnN2MiA9IChiaXRzICYgMHgyMCkgPT0gMHgyMAotICAgICAgICByc3YzID0g
KGJpdHMgJiAweDEwKSA9PSAweDEwCi0gICAgICAgIG9wY29kZSA9IGJpdHMgJiAweGYKLSAgICAg
ICAgcGF5bG9hZCA9IHNlbGYucmVtYWluaW5nX2RhdGEoKQotICAgICAgICAjIENvbnN1bWUgcmVz
dCBvZiB0aGUgbWVzc2FnZSB3aGljaCBpcyBwYXlsb2FkIGRhdGEgb2YgdGhlIG9yaWdpbmFsCi0g
ICAgICAgICMgZnJhbWUuCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gPSBsZW4oc2VsZi5f
ZGF0YSkKLSAgICAgICAgcmV0dXJuIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXls
b2FkCi0KLSAgICBkZWYgX3JlYWRfbnVtYmVyKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9yZWFk
X3Bvc2l0aW9uICsgMSA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoCi0gICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkIHRoZSBmaXJzdCBieXRlIG9mIG51
bWJlciBmaWVsZCcpCi0KLSAgICAgICAgbnVtYmVyID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVh
ZF9wb3NpdGlvbl0pCi0gICAgICAgIGlmIG51bWJlciAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1RoZSBtb3N0IHNpZ25pZmlj
YW50IGJpdCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBudW1iZXIgc2hvdWxkICcKLSAgICAgICAgICAg
ICAgICAnYmUgdW5zZXQnKQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAg
ICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBpZiBudW1iZXIgPT0gMTI3Ogot
ICAgICAgICAgICAgaWYgcG9zICsgOCA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJlciBmaWVsZCcpCi0gICAgICAgICAgICBz
ZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDgKLSAgICAgICAgICAgIG51bWJlciA9IHN0cnVjdC51bnBh
Y2soJyFRJywgc2VsZi5fZGF0YVtwb3M6cG9zKzhdKVswXQotICAgICAgICAgICAgaWYgbnVtYmVy
ID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0VuY29kZWQgbnVtYmVyKCVkKSA+PSAyXjYzJyAlIG51bWJlcikKLSAgICAgICAgICAgIGlmIG51
bWJlciA8PSAweEZGRkY6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAg
ICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3QgYmUgZW5jb2RlZCBieSA5IGJ5dGVzIGVuY29k
aW5nJyAlIG51bWJlcikKLSAgICAgICAgICAgIHJldHVybiBudW1iZXIKLSAgICAgICAgaWYgbnVt
YmVyID09IDEyNjoKLSAgICAgICAgICAgIGlmIHBvcyArIDIgPiBsZW4oc2VsZi5fZGF0YSk6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBudW1iZXIgZmllbGQnKQot
ICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAyCi0gICAgICAgICAgICBudW1iZXIg
PSBzdHJ1Y3QudW5wYWNrKCchSCcsIHNlbGYuX2RhdGFbcG9zOnBvcysyXSlbMF0KLSAgICAgICAg
ICAgIGlmIG51bWJlciA8PSAxMjU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3QgYmUgZW5jb2RlZCBieSAzIGJ5dGVz
IGVuY29kaW5nJyAlIG51bWJlcikKLSAgICAgICAgcmV0dXJuIG51bWJlcgotCi0gICAgZGVmIF9y
ZWFkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgotICAgICAgICAiIiJSZWFkIGRhdGEgdGhhdCBj
b25zaXN0cyBvZiB0aGUgZm9sbG93aW5nOgotICAgICAgICAgICAgLSB0aGUgc2l6ZSBvZiB0aGUg
Y29udGVudHMgZW5jb2RlZCB0aGUgc2FtZSB3YXkgYXMgcGF5bG9hZCBsZW5ndGgKLSAgICAgICAg
ICAgICAgb2YgdGhlIFdlYlNvY2tldCBQcm90b2NvbCB3aXRoIDEgYml0IHBhZGRpbmcgYXQgdGhl
IGhlYWQuCi0gICAgICAgICAgICAtIHRoZSBjb250ZW50cy4KLSAgICAgICAgIiIiCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNpemUgPSBzZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCi0gICAgICAgIHBvcyA9IHNl
bGYuX3JlYWRfcG9zaXRpb24KLSAgICAgICAgaWYgcG9zICsgc2l6ZSA+IGxlbihzZWxmLl9kYXRh
KToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAg
ICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAg
ICAgICAnQ2Fubm90IHJlYWQgJWQgYnl0ZXMgZGF0YScgJSBzaXplKQotCi0gICAgICAgIHNlbGYu
X3JlYWRfcG9zaXRpb24gKz0gc2l6ZQotICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtwb3M6cG9z
K3NpemVdCi0KLSAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBmaXJzdF9i
eXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQgPSAoZmlyc3RfYnl0ZSA+PiAy
KSAmIDB4NwotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3Qg
YmUgdW5zZXQnKQotCi0gICAgICAgICMgSW52YWxpZCBlbmNvZGluZyB3aWxsIGJlIGhhbmRsZWQg
YnkgTXV4SGFuZGxlci4KLSAgICAgICAgZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYgMHgzCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVh
ZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAg
ICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhf
Q09OVFJPTF9CTE9DSykKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGluZyA9IGVuY29kaW5n
Ci0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50
cygpCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RlZF9oYW5kc2hha2UgPSBlbmNvZGVkX2hh
bmRzaGFrZQotICAgICAgICByZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX2Fk
ZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAg
ICAgICByZXNlcnZlZCA9IChmaXJzdF9ieXRlID4+IDIpICYgMHgzCi0gICAgICAgIGlmIHJlc2Vy
dmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAg
ICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAg
ICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAgICAgY29u
dHJvbF9ibG9jay5hY2NlcHRlZCA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgICAgICBjb250
cm9sX2Jsb2NrLmVuY29kaW5nID0gZmlyc3RfYnl0ZSAmIDB4MwotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgp
Ci0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlz
aWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0sp
Ci0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RlZF9oYW5kc2hha2UgPSBzZWxmLl9yZWFkX3Np
emVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRl
ZiBfcmVhZF9mbG93X2NvbnRyb2woc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0g
ICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWYKLSAgICAgICAgaWYgcmVzZXJ2ZWQg
IT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAg
ICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAg
ICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9p
ZCgpCi0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRfcXVvdGEgPSBzZWxmLl9yZWFkX251
bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlz
ZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xf
QkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkp
Ci0KLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9kcm9wX2No
YW5uZWwoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVk
ID0gZmlyc3RfYnl0ZSAmIDB4MWYKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAg
ICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9Q
X0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2
ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250
cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0spCi0gICAgICAgIHJl
YXNvbiA9IHNlbGYuX3JlYWRfc2l6ZV9hbmRfY29udGVudHMoKQotICAgICAgICBpZiBsZW4ocmVh
c29uKSA9PSAwOgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9wX2NvZGUgPSBOb25lCi0g
ICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9ICcnCi0gICAgICAgIGVsaWYg
bGVuKHJlYXNvbikgPj0gMjoKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9jb2RlID0g
c3RydWN0LnVucGFjaygnIUgnLCByZWFzb25bOjJdKVswXQotICAgICAgICAgICAgY29udHJvbF9i
bG9jay5kcm9wX21lc3NhZ2UgPSByZWFzb25bMjpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9D
T0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVk
IERyb3BDaGFubmVsIHRoYXQgY29uYWlucyBvbmx5IDEtYnl0ZSByZWFzb24nKQotICAgICAgICBy
ZXR1cm4gY29udHJvbF9ibG9jawotCi0gICAgZGVmIF9yZWFkX25ld19jaGFubmVsX3Nsb3Qoc2Vs
ZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3Rf
Ynl0ZSAmIDB4MWUKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNl
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5W
QUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBt
dXN0IGJlIHVuc2V0JykKLSAgICAgICAgY29udHJvbF9ibG9jay5mYWxsYmFjayA9IGZpcnN0X2J5
dGUgJiAxCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2xvdHMgPSBz
ZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRfcXVvdGEg
PSBzZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0g
ICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFM
SURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHIoZSkpCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYg
cmVhZF9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgIiIiUmVhZCBjb250cm9sIGJsb2Nr
KHMpLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0aW9uRXJy
b3I6IHdoZW4gdGhlIHBheWxvYWQgY29udGFpbnMgaW52YWxpZCBjb250cm9sCi0gICAgICAgICAg
ICAgICBibG9jayhzKS4KLSAgICAgICAgICAgU3RvcEl0ZXJhdGlvbjogd2hlbiBubyBjb250cm9s
IGJsb2NrcyBsZWZ0LgotICAgICAgICAiIiIKLSAgICAgICAgd2hpbGUgc2VsZi5fcmVhZF9wb3Np
dGlvbiA8IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgIGZpcnN0X2J5dGUgPSBvcmQoc2Vs
Zi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfcG9z
aXRpb24gKz0gMQotICAgICAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAweDcK
LSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZT1vcGNvZGUp
Ci0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVT
VDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9jaGFubmVsX3JlcXVlc3Qo
Zmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAgIHlpZWxkIHNl
bGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgICAgIGZpcnN0
X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09Q
Q09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5fcmVhZF9mbG93
X2NvbnRyb2woZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgICAgICB5aWVsZCBz
ZWxmLl9yZWFkX2Ryb3BfY2hhbm5lbChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKQotICAgICAg
ICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAg
ICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX25ld19jaGFubmVsX3Nsb3QoZmlyc3RfYnl0ZSwg
Y29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
UGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVf
VU5LTk9XTl9NVVhfT1BDT0RFLAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCBvcGNvZGUg
JWQnICUgb3Bjb2RlKQotCi0gICAgICAgIGFzc2VydCBzZWxmLl9yZWFkX3Bvc2l0aW9uID09IGxl
bihzZWxmLl9kYXRhKQotICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCi0KLSAgICBkZWYgcmVt
YWluaW5nX2RhdGEoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiByZW1haW5pbmcgZGF0YS4iIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbjpdCi0KLQotY2xh
c3MgX0xvZ2ljYWxSZXF1ZXN0KG9iamVjdCk6Ci0KLSAgICAiIiJNaW1pY3MgbW9kX3B5dGhvbiBy
ZXF1ZXN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGNvbW1hbmQs
IHBhdGgsIHByb3RvY29sLCBoZWFkZXJzLAotICAgICAgICAgICAgICAgICBjb25uZWN0aW9uKToK
LSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBjaGFubmVsX2lkOiB0aGUgY2hhbm5lbCBpZCBvZiB0aGUgbG9naWNhbCBjaGFubmVs
LgotICAgICAgICAgICAgY29tbWFuZDogSFRUUCByZXF1ZXN0IGNvbW1hbmQuCi0gICAgICAgICAg
ICBwYXRoOiBIVFRQIHJlcXVlc3QgcGF0aC4KLSAgICAgICAgICAgIGhlYWRlcnM6IEhUVFAgaGVh
ZGVycy4KLSAgICAgICAgICAgIGNvbm5lY3Rpb246IF9Mb2dpY2FsQ29ubmVjdGlvbiBpbnN0YW5j
ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAg
ICAgICAgc2VsZi5tZXRob2QgPSBjb21tYW5kCi0gICAgICAgIHNlbGYudXJpID0gcGF0aAotICAg
ICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKLSAgICAgICAgc2VsZi5oZWFkZXJzX2luID0g
aGVhZGVycwotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uCi0gICAgICAgIHNl
bGYuc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLmNsaWVudF90ZXJtaW5h
dGVkID0gRmFsc2UKLQotICAgIGRlZiBpc19odHRwcyhzZWxmKToKLSAgICAgICAgIiIiTWltaWMg
cmVxdWVzdC5pc19odHRwcygpLgotCi0gICAgICAgIFJldHVybnMgRmFsc2UgYmVjYXVzZSB0aGlz
IG1ldGhvZCBpcyB1c2VkIG9ubHkgYnkgb2xkIHByb3RvY29scwotICAgICAgICAoaGl4aWUgYW5k
IGh5YmkwMCkuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBf
TG9naWNhbENvbm5lY3Rpb24ob2JqZWN0KToKLQotICAgICIiIk1pbWljcyBtb2RfcHl0aG9uIG1w
X2Nvbm4uIiIiCi0KLSAgICAjIEZvciBkZXRhaWxzLCBzZWUgdGhlIGNvbW1lbnQgb2Ygc2V0X3Jl
YWRfc3RhdGUoKS4KLSAgICBTVEFURV9BQ1RJVkUgPSAxCi0gICAgU1RBVEVfR1JBQ0VGVUxMWV9D
TE9TRUQgPSAyCi0gICAgU1RBVEVfVEVSTUlOQVRFRCA9IDMKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtdXhfaGFuZGxlciwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhI
YW5kbGVyIGluc3RhbmNlLgotICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZCBvZiB0
aGlzIGNvbm5lY3Rpb24uCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9
IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAg
ICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSAnJwotCi0gICAgICAgICMgLSBQcm90ZWN0cyBfd2Fp
dGluZ193cml0ZV9jb21wbGV0aW9uCi0gICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJlYWQgd2Fp
dGluZyBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSBieSBtdXggaGFuZGxlcgotICAgICAgICBzZWxm
Ll93cml0ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgc2VsZi5f
d2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9yZWFkX2Nv
bmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxmLl9yZWFkX3N0YXRl
ID0gc2VsZi5TVEFURV9BQ1RJVkUKLQotICAgIGRlZiBnZXRfbG9jYWxfYWRkcihzZWxmKToKLSAg
ICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9jYWxfYWRkci4iIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24uZ2V0X2xvY2FsX2Fk
ZHIoKQotICAgIGxvY2FsX2FkZHIgPSBwcm9wZXJ0eShnZXRfbG9jYWxfYWRkcikKLQotICAgIGRl
ZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9j
b25uLnJlbW90ZV9hZGRyLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hhbmRsZXIucGh5
c2ljYWxfY29ubmVjdGlvbi5nZXRfcmVtb3RlX2FkZHIoKQotICAgIHJlbW90ZV9hZGRyID0gcHJv
cGVydHkoZ2V0X3JlbW90ZV9hZGRyKQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2Vs
Zik6Ci0gICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIE5vdCBzdXBwb3J0ZWQuIiIiCi0g
ICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ19Mb2dpY2FsQ29ubmVjdGlvbiBk
b2VzIG5vdCBzdXBwb3J0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
Z2V0X21lbW9yaXplZF9saW5lcycpCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAg
ICAgICIiIldyaXRlIGRhdGEuIG11eF9oYW5kbGVyIHNlbmRzIGRhdGEgYXN5bmNocm9ub3VzbHku
Ci0KLSAgICAgICAgVGhlIGNhbGxlciB3aWxsIGJlIHN1c3BlbmRlZCB1bnRpbCB3cml0ZSBkb25l
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRhOiBkYXRhIHRvIGJlIHdyaXR0ZW4u
Ci0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbjog
d2hlbiBjYWxsZWQgYmVmb3JlIGZpbmlzaGluZyB0aGUgcHJldmlvdXMKLSAgICAgICAgICAgICAg
ICB3cml0ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dy
aXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3dhaXRpbmdfd3Jp
dGVfY29tcGxldGlvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0aW9uICVkIGlzIGFscmVh
ZHkgd2FpdGluZyB0aGUgY29tcGxldGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICdvZiB3cml0
ZScgJSBzZWxmLl9jaGFubmVsX2lkKQotCi0gICAgICAgICAgICBzZWxmLl93YWl0aW5nX3dyaXRl
X2NvbXBsZXRpb24gPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5zZW5kX2Rh
dGEoc2VsZi5fY2hhbm5lbF9pZCwgZGF0YSkKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRp
dGlvbi53YWl0KCkKLSAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IFJhaXNlIGFuIGV4Y2Vw
dGlvbiBpZiB3b2tlIHVwIGJ5IG9uX3dyaXRlcl9kb25lLgotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIHdyaXRl
X2NvbnRyb2xfZGF0YShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiV3JpdGUgZGF0YSB2aWEgdGhl
IGNvbnRyb2wgY2hhbm5lbC4KLQotICAgICAgICBEb24ndCB3YWl0IGZpbmlzaGluZyB3cml0ZSBi
ZWNhdXNlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgYnkKLSAgICAgICAgbXV4IGRpc3BhdGNo
ZXIuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgd3JpdHRl
bi4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnNlbmRfY29udHJvbF9k
YXRhKGRhdGEpCi0KLSAgICBkZWYgb25fd3JpdGVfZGF0YV9kb25lKHNlbGYpOgotICAgICAgICAi
IiJDYWxsZWQgd2hlbiBzZW5kaW5nIGRhdGEgaXMgY29tcGxldGVkLiIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAg
ICBpZiBub3Qgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgotICAgICAgICAgICAgICAg
IHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdJbnZh
bGlkIGNhbGwgb2Ygb25fd3JpdGVfZGF0YV9kb25lIGZvciBsb2dpY2FsICcKLSAgICAgICAgICAg
ICAgICAgICAgJ2Nvbm5lY3Rpb24gJWQnICUgc2VsZi5fY2hhbm5lbF9pZCkKLSAgICAgICAgICAg
IHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCi0gICAgICAgICAgICBzZWxm
Ll93cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBvbl93cml0ZXJfZG9u
ZShzZWxmKToKLSAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSBtdXggaGFuZGxlciB3aGVuIHRoZSB3
cml0ZXIgdGhyZWFkIGhhcyBmaW5pc2hlZC4iIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgc2VsZi5fd2FpdGlu
Z193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRp
dGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIGFwcGVuZF9mcmFtZV9kYXRhKHNlbGYsIGZy
YW1lX2RhdGEpOgotICAgICAgICAiIiJBcHBlbmQgaW5jb21pbmcgZnJhbWUgZGF0YS4KLQotICAg
ICAgICBDYWxsZWQgd2hlbiBtdXhfaGFuZGxlciBkaXNwYXRjaGVzIGZyYW1lIGRhdGEgdG8gdGhl
IGNvcnJlc3BvbmRpbmcKLSAgICAgICAgYXBwbGljYXRpb24uCi0KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIGZyYW1lX2RhdGE6IGluY29taW5nIGZyYW1lIGRhdGEuCi0gICAgICAgICIiIgot
ICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5faW5j
b21pbmdfZGF0YSArPSBmcmFtZV9kYXRhCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLm5v
dGlmeSgpCi0gICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVm
IHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVhZCBkYXRhLgotCi0gICAgICAgIEJs
b2NrcyB1bnRpbCBlbm91Z2ggZGF0YSBoYXMgYXJyaXZlZCB2aWEgcGh5c2ljYWwgY29ubmVjdGlv
bi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbGVuZ3RoOiBsZW5ndGggb2YgZGF0YSB0
byBiZSByZWFkLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBMb2dpY2FsQ29ubmVjdGlv
bkNsb3NlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBmb3IgdGhpcwotICAgICAg
ICAgICAgICAgIGxvZ2ljYWwgY2hhbm5lbCBoYXMgYmVlbiByZWNlaXZlZC4KLSAgICAgICAgICAg
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBwaHlzaWNhbCBjb25uZWN0
aW9uIGhhcwotICAgICAgICAgICAgICAgIGNsb3NlZCwgb3IgYW4gZXJyb3IgaXMgY2F1c2VkIG9u
IHRoZSByZWFkZXIgdGhyZWFkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcmVhZF9jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHdoaWxlIChzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYu
U1RBVEVfQUNUSVZFIGFuZAotICAgICAgICAgICAgICAgbGVuKHNlbGYuX2luY29taW5nX2RhdGEp
IDwgbGVuZ3RoKToKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLndhaXQoKQotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFU
RV9HUkFDRUZVTExZX0NMT1NFRDoKLSAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ29ubmVj
dGlvbkNsb3NlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0xvZ2ljYWwgY2hhbm5l
bCAlZCBoYXMgY2xvc2VkLicgJSBzZWxmLl9jaGFubmVsX2lkKQotICAgICAgICAgICAgZWxpZiBz
ZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfVEVSTUlOQVRFRDoKLSAgICAgICAgICAgICAg
ICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAg
ICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gTG9naWNhbCBjaGFubmVsICglZCkgY2xvc2Vk
JyAlCi0gICAgICAgICAgICAgICAgICAgIChsZW5ndGgsIHNlbGYuX2NoYW5uZWxfaWQpKQotCi0g
ICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2luY29taW5nX2RhdGFbOmxlbmd0aF0KLSAgICAgICAg
ICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSBzZWxmLl9pbmNvbWluZ19kYXRhW2xlbmd0aDpdCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNl
KCkKLQotICAgICAgICByZXR1cm4gdmFsdWUKLQotICAgIGRlZiBzZXRfcmVhZF9zdGF0ZShzZWxm
LCBuZXdfc3RhdGUpOgotICAgICAgICAiIiJTZXQgdGhlIHN0YXRlIG9mIHRoaXMgY29ubmVjdGlv
bi4KLQotICAgICAgICBDYWxsZWQgd2hlbiBhbiBldmVudCBmb3IgdGhpcyBjb25uZWN0aW9uIGhh
cyBvY2N1cnJlZC4KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG5ld19zdGF0ZTogc3RhdGUg
dG8gYmUgc2V0LiBuZXdfc3RhdGUgbXVzdCBiZSBvbmUgb2YgZm9sbG93aW5nczoKLSAgICAgICAg
ICAgIC0gU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6IHdoZW4gY2xvc2luZyBoYW5kc2hha2UgZm9y
IHRoaXMKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGhhcyBiZWVuIHJlY2VpdmVkLgotICAg
ICAgICAgICAgLSBTVEFURV9URVJNSU5BVEVEOiB3aGVuIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9u
IGhhcyBjbG9zZWQgb3IKLSAgICAgICAgICAgICAgICBEcm9wQ2hhbm5lbCBvZiB0aGlzIGNvbm5l
Y3Rpb24gaGFzIHJlY2VpdmVkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcmVhZF9jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX3JlYWRfc3RhdGUgPSBuZXdfc3RhdGUKLSAg
ICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fcmVhZF9j
b25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX0lubmVyTWVzc2FnZShvYmplY3QpOgotCi0g
ICAgIiIiSG9sZCB0aGUgcmVzdWx0IG9mIF9Jbm5lck1lc3NhZ2VCdWlsZGVyLmJ1aWxkKCkuIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlLCBwYXlsb2FkKToKLSAgICAgICAgc2Vs
Zi5vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLWNs
YXNzIF9Jbm5lck1lc3NhZ2VCdWlsZGVyKG9iamVjdCk6Ci0KLSAgICAiIiJDbGFzcyB0byBidWls
ZCBhbiBfSW5uZXJNZXNzYWdlLgotCi0gICAgQSBjbGFzcyB0aGF0IGhvbGRzIHRoZSBjb250ZXh0
IG9mIGlubmVyIG1lc3NhZ2UgZnJhZ21lbnRhdGlvbiBhbmQKLSAgICBidWlsZHMgYSBtZXNzYWdl
IGZyb20gZnJhZ21lbnRlZCBpbm5lciBmcmFtZShzKS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBOb25lCi0gICAgICAg
IHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9tZXNz
YWdlX29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50
cyA9IFtdCi0gICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QK
LQotICAgIGRlZiBfaGFuZGxlX2ZpcnN0KHNlbGYsIGZyYW1lKToKLSAgICAgICAgaWYgZnJhbWUu
b3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgcmFpc2Ug
SW52YWxpZEZyYW1lRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGludWF0aW9uIG9wY29k
ZScpCi0KLSAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRy
b2woZnJhbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vz
c19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2UoZnJhbWUpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZmly
c3RfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZyYW1lKToKLSAgICAgICAgc2VsZi5fY29udHJv
bF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2Zy
YWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoK
LSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZnJhZ21lbnRl
ZF9jb250cm9sCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5f
cmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQotCi0gICAgZGVmIF9wcm9jZXNzX2ZpcnN0
X2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgIHNlbGYuX21lc3NhZ2Vf
b3Bjb2RlID0gZnJhbWUub3Bjb2RlCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFn
bWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0g
ICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRf
bWVzc2FnZQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
YXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKLQotICAgIGRlZiBfaGFuZGxlX2ZyYWdtZW50
ZWRfY29udHJvbChzZWxmLCBmcmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29kZSAhPSBjb21t
b24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCB3aGls
ZSBzZW5kaW5nIGZyYWdtZW50ZWQgY29udHJvbCAnCi0gICAgICAgICAgICAgICAgJ21lc3NhZ2Un
ICUgZnJhbWUub3Bjb2RlKQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRz
LmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21l
bnRlZF9jb250cm9sKCkKLQotICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2wo
c2VsZik6Ci0gICAgICAgIG9wY29kZSA9IHNlbGYuX2NvbnRyb2xfb3Bjb2RlCi0gICAgICAgIHBh
eWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMpCi0gICAgICAg
IHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRy
b2xfZnJhZ21lbnRzID0gW10KLSAgICAgICAgaWYgc2VsZi5fbWVzc2FnZV9vcGNvZGUgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2Zy
YWdtZW50ZWRfbWVzc2FnZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVf
aGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAotICAgICAgICByZXR1cm4gX0lubmVyTWVzc2Fn
ZShvcGNvZGUsIHBheWxvYWQpCi0KLSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2Uo
c2VsZiwgZnJhbWUpOgotICAgICAgICAjIFNlbmRlciBjYW4gaW50ZXJsZWF2ZSBhIGNvbnRyb2wg
bWVzc2FnZSB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQKLSAgICAgICAgIyBtZXNzYWdlcy4KLSAg
ICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSk6Ci0gICAgICAg
ICAgICBpZiBzZWxmLl9jb250cm9sX29wY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnU2hv
dWxkIG5vdCByZWFjaCBoZXJlKEJ1ZyBpbiBidWlsZGVyKScpCi0gICAgICAgICAgICByZXR1cm4g
c2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woZnJhbWUpCi0KLSAgICAgICAg
aWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAg
ICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTZW5kaW5n
IGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRlZCBtZXNzYWdlJyAlCi0g
ICAgICAgICAgICAgICAgZnJhbWUub3Bjb2RlKQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3Nh
Z2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUu
ZmluOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNz
ZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKLQotICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFnbWVu
dGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIG9wY29kZSA9IHNlbGYuX21lc3NhZ2Vfb3Bjb2Rl
Ci0gICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVu
dHMpCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9w
ZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxl
ciA9IHNlbGYuX2hhbmRsZV9maXJzdAotICAgICAgICByZXR1cm4gX0lubmVyTWVzc2FnZShvcGNv
ZGUsIHBheWxvYWQpCi0KLSAgICBkZWYgYnVpbGQoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJC
dWlsZCBhbiBpbm5lciBtZXNzYWdlLgotCi0gICAgICAgIFJldHVybnMgYW4gX0lubmVyTWVzc2Fn
ZSBpbnN0YW5jZSB3aGVuIHRoZSBnaXZlbiBmcmFtZSBpcyB0aGUgbGFzdAotICAgICAgICBmcmFn
bWVudGVkIGZyYW1lLiBSZXR1cm5zIE5vbmUgb3RoZXJ3aXNlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBmcmFtZTogYW4gaW5uZXIgZnJhbWUuCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiByZWNlaXZlZCBpbnZhbGlkIG9wY29k
ZS4gKGUuZy4KLSAgICAgICAgICAgICAgICByZWNlaXZpbmcgbm9uIGNvbnRpbnVhdGlvbiBkYXRh
IG9wY29kZSBidXQgdGhlIGZpbiBmbGFnIG9mCi0gICAgICAgICAgICAgICAgdGhlIHByZXZpb3Vz
IGlubmVyIGZyYW1lIHdhcyBub3Qgc2V0LikKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLl9mcmFtZV9oYW5kbGVyKGZyYW1lKQotCi0KLWNsYXNzIF9Mb2dpY2FsU3RyZWFtKFN0cmVh
bSk6Ci0KLSAgICAiIiJNaW1pY3MgdGhlIFN0cmVhbSBjbGFzcy4KLQotICAgIFRoaXMgY2xhc3Mg
aW50ZXJwcmV0cyBtdWx0aXBsZXhlZCBXZWJTb2NrZXQgZnJhbWVzLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25zLCBzZW5kX3F1b3RhLCBy
ZWNlaXZlX3F1b3RhKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFuY2Uu
Ci0gICAgICAgICAgICBzdHJlYW1fb3B0aW9uczogU3RyZWFtT3B0aW9ucyBpbnN0YW5jZS4KLSAg
ICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4KLSAgICAgICAgICAgIHJl
Y2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KLSAgICAgICAgIiIiCi0gICAgICAg
ICMgUGh5c2ljYWwgc3RyZWFtIGlzIHJlc3BvbnNpYmxlIGZvciBtYXNraW5nLgotICAgICAgICBz
dHJlYW1fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCi0gICAgICAgIFN0cmVhbS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykKLQotICAgICAgICBzZWxmLl9zZW5k
X2Nsb3NlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0g
ICAgICAgICMgLSBQcm90ZWN0cyBfc2VuZF9jbG9zZWQgYW5kIF9zZW5kX3F1b3RhCi0gICAgICAg
ICMgLSBTaWduYWxzIHRoZSB0aHJlYWQgd2FpdGluZyBmb3Igc2VuZCBxdW90YSByZXBsZW5pc2hl
ZAotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQot
Ci0gICAgICAgICMgVGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhbWUgaW4gbWVzc2FnZXMuCi0g
ICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0gICAgICAg
ICMgVHJ1ZSB3aGVuIHRoZSBsYXN0IG1lc3NhZ2Ugd2FzIGZyYWdtZW50ZWQuCi0gICAgICAgIHNl
bGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZCA9IEZhbHNlCi0KLSAgICAgICAgc2VsZi5f
cmVjZWl2ZV9xdW90YSA9IHJlY2VpdmVfcXVvdGEKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJf
ZnJhbWVfc2VtYXBob3JlID0gdGhyZWFkaW5nLlNlbWFwaG9yZSgpCi0KLSAgICAgICAgc2VsZi5f
aW5uZXJfbWVzc2FnZV9idWlsZGVyID0gX0lubmVyTWVzc2FnZUJ1aWxkZXIoKQotCi0gICAgZGVm
IF9jcmVhdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXlsb2FkLCBlbmQ9VHJ1ZSk6Ci0g
ICAgICAgIGZyYW1lID0gRnJhbWUoZmluPWVuZCwgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1wYXls
b2FkKQotICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdf
ZnJhbWVfZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0K
LSAgICAgICAgaWYgbGVuKHBheWxvYWQpICE9IGxlbihmcmFtZS5wYXlsb2FkKToKLSAgICAgICAg
ICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011eCBl
eHRlbnNpb24gbXVzdCBub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25zIHdoaWNoIGNoYW5nZSAn
Ci0gICAgICAgICAgICAgICAgJyBmcmFtZSBib3VuZGFyeScpCi0KLSAgICAgICAgZmlyc3RfYnl0
ZSA9ICgoZnJhbWUuZmluIDw8IDcpIHwgKGZyYW1lLnJzdjEgPDwgNikgfAotICAgICAgICAgICAg
ICAgICAgICAgIChmcmFtZS5yc3YyIDw8IDUpIHwgKGZyYW1lLnJzdjMgPDwgNCkgfCBmcmFtZS5v
cGNvZGUpCi0gICAgICAgIHJldHVybiBjaHIoZmlyc3RfYnl0ZSkgKyBmcmFtZS5wYXlsb2FkCi0K
LSAgICBkZWYgX3dyaXRlX2lubmVyX2ZyYW1lKHNlbGYsIG9wY29kZSwgcGF5bG9hZCwgZW5kPVRy
dWUpOgotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXlsb2FkKQotICAgICAgICB3cml0
ZV9wb3NpdGlvbiA9IDAKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIEFuIGlubmVyIGZy
YW1lIHdpbGwgYmUgZnJhZ21lbnRlZCBpZiB0aGVyZSBpcyBubyBlbm91Z2ggc2VuZAotICAgICAg
ICAgICAgIyBxdW90YS4gVGhpcyBzZW1hcGhvcmUgZW5zdXJlcyB0aGF0IGZyYWdtZW50ZWQgaW5u
ZXIgZnJhbWVzIGFyZQotICAgICAgICAgICAgIyBzZW50IGluIG9yZGVyIG9uIHRoZSBsb2dpY2Fs
IGNoYW5uZWwuCi0gICAgICAgICAgICAjIE5vdGUgdGhhdCBmcmFtZXMgdGhhdCBjb21lIGZyb20g
b3RoZXIgbG9naWNhbCBjaGFubmVscyBvcgotICAgICAgICAgICAgIyBtdWx0aXBsZXhpbmcgY29u
dHJvbCBibG9ja3MgY2FuIGJlIGluc2VydGVkIGJldHdlZW4gZnJhZ21lbnRlZAotICAgICAgICAg
ICAgIyBpbm5lciBmcmFtZXMgb24gdGhlIHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBz
ZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUuYWNxdWlyZSgpCi0KLSAgICAgICAgICAg
ICMgQ29uc3VtZSBhbiBvY3RldCBxdW90YSB3aGVuIHRoaXMgaXMgdGhlIGZpcnN0IGZyYWdtZW50
ZWQgZnJhbWUuCi0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5V
QVRJT046Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9z
ZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5vdCBz
ZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQotCi0gICAgICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdM
b2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3NlbmRfcXVvdGEgLT0gMQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICAgICB3
aGlsZSB3cml0ZV9wb3NpdGlvbiA8IHBheWxvYWRfbGVuZ3RoOgotICAgICAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0g
ICAgICAgICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2VuZF9jbG9zZWQpIGFuZCBzZWxm
Ll9zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIHF1b3RhLiBXYWl0aW5nIEZs
b3dDb250cm9sIG1lc3NhZ2UgZm9yICVkLicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3NlbmRfY29uZGl0aW9uLndhaXQoKQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nl
bmRfY2xvc2VkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24g
JWQgaXMgY2xvc2VkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0
Ll9jaGFubmVsX2lkKQotCi0gICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyA9IHBheWxvYWRf
bGVuZ3RoIC0gd3JpdGVfcG9zaXRpb24KLSAgICAgICAgICAgICAgICAgICAgd3JpdGVfbGVuZ3Ro
ID0gbWluKHNlbGYuX3NlbmRfcXVvdGEsIHJlbWFpbmluZykKLSAgICAgICAgICAgICAgICAgICAg
aW5uZXJfZnJhbWVfZW5kID0gKAotICAgICAgICAgICAgICAgICAgICAgICAgZW5kIGFuZAotICAg
ICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX3Bvc2l0aW9uICsgd3JpdGVfbGVuZ3RoID09IHBh
eWxvYWRfbGVuZ3RoKSkKLQotICAgICAgICAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X2NyZWF0ZV9pbm5lcl9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWRbd3JpdGVfcG9zaXRpb246d3JpdGVfcG9zaXRp
b24rd3JpdGVfbGVuZ3RoXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lX2Vu
ZCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAtPSB3cml0ZV9sZW5ndGgK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25zdW1lZCBxdW90YT0l
ZCwgcmVtYWluaW5nPSVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAod3JpdGVfbGVuZ3RoLCBzZWxmLl9zZW5kX3F1b3RhKSkKLSAgICAgICAgICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LQotICAgICAgICAgICAgICAgICMgV3JpdGluZyBkYXRhIHdpbGwgYmxvY2sgdGhlIHdvcmtlciBz
byB3ZSBuZWVkIHRvIHJlbGVhc2UKLSAgICAgICAgICAgICAgICAjIF9zZW5kX2NvbmRpdGlvbiBi
ZWZvcmUgd3JpdGluZy4KLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRp
bmcgaW5uZXIgZnJhbWU6ICVyJyAlIGlubmVyX2ZyYW1lKQotICAgICAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShpbm5lcl9mcmFtZSkKLSAgICAgICAgICAgICAgICB3
cml0ZV9wb3NpdGlvbiArPSB3cml0ZV9sZW5ndGgKLQotICAgICAgICAgICAgICAgIG9wY29kZSA9
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0KLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Ig
YXMgZToKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbihlKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3Jl
LnJlbGVhc2UoKQotCi0gICAgZGVmIHJlcGxlbmlzaF9zZW5kX3F1b3RhKHNlbGYsIHNlbmRfcXVv
dGEpOgotICAgICAgICAiIiJSZXBsZW5pc2ggc2VuZCBxdW90YS4iIiIKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBp
ZiBzZWxmLl9zZW5kX3F1b3RhICsgc2VuZF9xdW90YSA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAg
ICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gMAotICAgICAgICAgICAgICAgIHJhaXNl
IExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
Y2hhbm5lbF9pZCwgX0RST1BfQ09ERV9TRU5EX1FVT1RBX09WRVJGTE9XKQotICAgICAgICAgICAg
c2VsZi5fc2VuZF9xdW90YSArPSBzZW5kX3F1b3RhCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1JlcGxlbmlzaGVkIHNlbmQgcXVvdGEgZm9yIGNoYW5uZWwgaWQgJWQ6ICVkJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwg
c2VsZi5fc2VuZF9xdW90YSkpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24u
cmVsZWFzZSgpCi0KLSAgICBkZWYgY29uc3VtZV9yZWNlaXZlX3F1b3RhKHNlbGYsIGFtb3VudCk6
Ci0gICAgICAgICIiIkNvbnN1bWUgcmVjZWl2ZSBxdW90YS4gUmV0dXJucyBGYWxzZSBvbiBmYWls
dXJlLiIiIgotICAgICAgICBpZiBzZWxmLl9yZWNlaXZlX3F1b3RhIDwgYW1vdW50OgotICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdWaW9sYXRlIHF1b3RhIG9uIGNoYW5uZWwgaWQgJWQ6
ICVkIDwgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVz
dC5jaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWNl
aXZlX3F1b3RhLCBhbW91bnQpKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHNl
bGYuX3JlY2VpdmVfcXVvdGEgLT0gYW1vdW50Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBk
ZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgot
ICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uc2VuZF9tZXNzYWdlLiIiIgotICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgcmFpc2UgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgc2VuZF9tZXNzYWdl
IGFmdGVyIHNlbmRpbmcgb3V0IGEgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgICAgIGlmIGJp
bmFyeSBhbmQgaXNpbnN0YW5jZShtZXNzYWdlLCB1bmljb2RlKToKLSAgICAgICAgICAgIHJhaXNl
IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTWVzc2FnZSBmb3IgYmlu
YXJ5IGZyYW1lIG11c3QgYmUgaW5zdGFuY2Ugb2Ygc3RyJykKLQotICAgICAgICBpZiBiaW5hcnk6
Ci0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0gICAgICAgICAgICBt
ZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICBmb3IgbWVzc2FnZV9m
aWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnM6Ci0gICAgICAg
ICAgICBtZXNzYWdlID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKG1lc3NhZ2UsIGVuZCwgYmluYXJ5
KQotCi0gICAgICAgIGlmIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZDoKLSAgICAg
ICAgICAgIGlmIG9wY29kZSAhPSBzZWxmLl9tZXNzYWdlX29wY29kZToKLSAgICAgICAgICAgICAg
ICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ01lc3NhZ2UgdHlwZXMgYXJlIGRpZmZlcmVu
dCBpbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmcmFt
ZXMgZm9yIHRoZSBzYW1lIG1lc3NhZ2UnKQotICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9Q
Q09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX21lc3Nh
Z2Vfb3Bjb2RlID0gb3Bjb2RlCi0KLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUob3Bj
b2RlLCBtZXNzYWdlLCBlbmQpCi0gICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21l
bnRlZCA9IG5vdCBlbmQKLQotICAgIGRlZiBfcmVjZWl2ZV9mcmFtZShzZWxmKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgU3RyZWFtLl9yZWNlaXZlX2ZyYW1lLgotCi0gICAgICAgIEluIGFkZGl0aW9u
IHRvIGNhbGwgU3RyZWFtLl9yZWNlaXZlX2ZyYW1lLCB0aGlzIG1ldGhvZCBhZGRzIHRoZSBhbW91
bnQKLSAgICAgICAgb2YgcGF5bG9hZCB0byByZWNlaXZpbmcgcXVvdGEgYW5kIHNlbmRzIEZsb3dD
b250cm9sIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIFdlIG5lZWQgdG8gZG8gaXQgaGVyZSBiZWNh
dXNlIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKSBoYW5kbGVzCi0gICAgICAgIGNvbnRyb2wgZnJh
bWVzIGludGVybmFsbHkuCi0gICAgICAgICIiIgotICAgICAgICBvcGNvZGUsIHBheWxvYWQsIGZp
biwgcnN2MSwgcnN2MiwgcnN2MyA9IFN0cmVhbS5fcmVjZWl2ZV9mcmFtZShzZWxmKQotICAgICAg
ICBhbW91bnQgPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgIyBSZXBsZW5pc2ggZXh0cmEgb25lIG9j
dGV0IHdoZW4gcmVjZWl2aW5nIHRoZSBmaXJzdCBmcmFnbWVudGVkIGZyYW1lLgotICAgICAgICBp
ZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICBhbW91
bnQgKz0gMQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhICs9IGFtb3VudAotICAgICAgICBm
cmFtZV9kYXRhID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50KQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgZmxvdyBjb250cm9sIGZvciAlZCwgcmVw
bGVuaXNoZWQ9JWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQsIGFtb3VudCkpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53
cml0ZV9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLSAgICAgICAgcmV0dXJuIG9wY29kZSwgcGF5
bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzCi0KLSAgICBkZWYgX2dldF9tZXNzYWdlX2Zyb21f
ZnJhbWUoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uX2dldF9tZXNz
YWdlX2Zyb21fZnJhbWUuIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVyX21lc3Nh
Z2UgPSBzZWxmLl9pbm5lcl9tZXNzYWdlX2J1aWxkZXIuYnVpbGQoZnJhbWUpCi0gICAgICAgIGV4
Y2VwdCBJbnZhbGlkRnJhbWVFeGNlcHRpb246Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hh
bm5lbEVycm9yKAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgX0RS
T1BfQ09ERV9CQURfRlJBR01FTlRBVElPTikKLQotICAgICAgICBpZiBpbm5lcl9tZXNzYWdlIGlz
IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBzZWxmLl9vcmlnaW5hbF9v
cGNvZGUgPSBpbm5lcl9tZXNzYWdlLm9wY29kZQotICAgICAgICByZXR1cm4gaW5uZXJfbWVzc2Fn
ZS5wYXlsb2FkCi0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJP
dmVycmlkZSBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlLiIiIgotICAgICAgICAjIEp1c3QgY2FsbCBT
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCksIGJ1dCBjYXRjaAotICAgICAgICAjIExvZ2ljYWxDb25u
ZWN0aW9uQ2xvc2VkRXhjZXB0aW9uLCB3aGljaCBpcyByYWlzZWQgd2hlbiB0aGUgbG9naWNhbAot
ICAgICAgICAjIGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBncmFjZWZ1bGx5LgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICByZXR1cm4gU3RyZWFtLnJlY2VpdmVfbWVzc2FnZShzZWxmKQotICAgICAg
ICBleGNlcHQgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LQotICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCBjb2RlLCByZWFzb24pOgot
ICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uX3NlbmRfY2xvc2luZ19oYW5kc2hha2UuIiIiCi0g
ICAgICAgIGJvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24p
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGluZyBjbG9zaW5nIGhhbmRzaGFrZSBm
b3IgJWQ6ICglciwgJXIpJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVx
dWVzdC5jaGFubmVsX2lkLCBjb2RlLCByZWFzb24pKQotICAgICAgICBzZWxmLl93cml0ZV9pbm5l
cl9mcmFtZShjb21tb24uT1BDT0RFX0NMT1NFLCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQotCi0gICAgZGVmIHNlbmRfcGlu
ZyhzZWxmLCBib2R5PScnKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnNlbmRfcGluZy4i
IiIKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIHBpbmcgb24gbG9naWNhbCBj
aGFubmVsICVkOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVl
c3QuY2hhbm5lbF9pZCwgYm9keSkpCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKGNv
bW1vbi5PUENPREVfUElORywgYm9keSwgZW5kPVRydWUpCi0KLSAgICAgICAgc2VsZi5fcGluZ19x
dWV1ZS5hcHBlbmQoYm9keSkKLQotICAgIGRlZiBfc2VuZF9wb25nKHNlbGYsIGJvZHkpOgotICAg
ICAgICAiIiJPdmVycmlkZSBTdHJlYW0uX3NlbmRfcG9uZy4iIiIKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdTZW5kaW5nIHBvbmcgb24gbG9naWNhbCBjaGFubmVsICVkOiAlcicgJQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgYm9keSkp
Ci0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVfUE9ORywgYm9k
eSwgZW5kPVRydWUpCi0KLSAgICBkZWYgY2xvc2VfY29ubmVjdGlvbihzZWxmLCBjb2RlPWNvbW1v
bi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgICIiIk92ZXJyaWRl
IFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLiIiIgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJbXBs
ZW1lbnQKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbG9zaW5nIGxvZ2ljYWwgY29ubmVj
dGlvbiAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQot
Ci0gICAgZGVmIHN0b3Bfc2VuZGluZyhzZWxmKToKLSAgICAgICAgIiIiU3RvcCBhY2NlcHRpbmcg
bmV3IHNlbmQgb3BlcmF0aW9uIChfd3JpdGVfaW5uZXJfZnJhbWUpLiIiIgotICAgICAgICBzZWxm
Ll9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zZWQgPSBU
cnVlCi0gICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgIHNlbGYu
X3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNzIF9PdXRnb2luZ0RhdGEob2JqZWN0
KToKLQotICAgICIiIlNpbXBsZSBkYXRhL2NoYW5uZWwgY29udGFpbmVyLgotCi0gICAgQSBzdHJ1
Y3R1cmUgdGhhdCBob2xkcyBkYXRhIHRvIGJlIHNlbnQgdmlhIHBoeXNpY2FsIGNvbm5lY3Rpb24g
YW5kCi0gICAgb3JpZ2luIG9mIHRoZSBkYXRhLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNoYW5uZWxfaWQsIGRhdGEpOgotICAgICAgICBzZWxmLmNoYW5uZWxfaWQgPSBjaGFu
bmVsX2lkCi0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKLQotCi1jbGFzcyBfUGh5c2ljYWxDb25u
ZWN0aW9uV3JpdGVyKHRocmVhZGluZy5UaHJlYWQpOgotCi0gICAgIiIiQSB0aHJlYWQgdGhhdCBp
cyByZXNwb25zaWJsZSBmb3Igd3JpdGluZyBkYXRhIHRvIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0K
LSAgICBUT0RPKGJhc2hpKTogTWFrZSBzdXJlIHRoZXJlIGlzIG5vIHRocmVhZC1zYWZldHkgcHJv
YmxlbSB3aGVuIHRoZSByZWFkZXIKLSAgICB0aHJlYWQgcmVhZHMgZGF0YSBmcm9tIHRoZSBzYW1l
IHNvY2tldCBhdCBhIHRpbWUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4
X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAg
ICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNl
bGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1
ZSkKLQotICAgICAgICAjIFdoZW4gc2V0LCBtYWtlIHRoaXMgdGhyZWFkIHN0b3AgYWNjZXB0aW5n
IG5ldyBkYXRhLCBmbHVzaCBwZW5kaW5nCi0gICAgICAgICMgZGF0YSBhbmQgZXhpdC4KLSAgICAg
ICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQotICAgICAgICAjIFRoZSBjbG9zZSBjb2Rl
IG9mIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICBzZWxmLl9jbG9zZV9jb2RlID0g
Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRQotICAgICAgICAjIERlcXVlIGZvciBwYXNzaW5n
IHdyaXRlIGRhdGEuIEl0J3MgcHJvdGVjdGVkIGJ5IF9kZXF1ZV9jb25kaXRpb24KLSAgICAgICAg
IyB1bnRpbCBfc3RvcF9yZXF1ZXN0ZWQgaXMgc2V0LgotICAgICAgICBzZWxmLl9kZXF1ZSA9IGNv
bGxlY3Rpb25zLmRlcXVlKCkKLSAgICAgICAgIyAtIFByb3RlY3RzIF9kZXF1ZSwgX3N0b3BfcmVx
dWVzdGVkIGFuZCBfY2xvc2VfY29kZQotICAgICAgICAjIC0gU2lnbmFscyB0aHJlYWRzIHdhaXRp
bmcgZm9yIHRoZW0gdG8gYmUgYXZhaWxhYmxlCi0gICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlv
biA9IHRocmVhZGluZy5Db25kaXRpb24oKQotCi0gICAgZGVmIHB1dF9vdXRnb2luZ19kYXRhKHNl
bGYsIGRhdGEpOgotICAgICAgICAiIiJQdXQgb3V0Z29pbmcgZGF0YS4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgICAgZGF0YTogX091dGdvaW5nRGF0YSBpbnN0YW5jZS4KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIHRoZSB0aHJlYWQg
aGFzIGJlZW4gcmVxdWVzdGVkIHRvCi0gICAgICAgICAgICAgICAgdGVybWluYXRlLgotICAgICAg
ICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdDYW5ub3Qgd3JpdGUgZGF0YSBhbnlt
b3JlJykKLQotICAgICAgICAgICAgc2VsZi5fZGVxdWUuYXBwZW5kKGRhdGEpCi0gICAgICAgICAg
ICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToKLSAgICAg
ICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfd3JpdGVf
ZGF0YShzZWxmLCBvdXRnb2luZ19kYXRhKToKLSAgICAgICAgbWVzc2FnZSA9IChfZW5jb2RlX2No
YW5uZWxfaWQob3V0Z29pbmdfZGF0YS5jaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgICAgICAg
b3V0Z29pbmdfZGF0YS5kYXRhKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9tdXhf
aGFuZGxlci5waHlzaWNhbF9zdHJlYW0uc2VuZF9tZXNzYWdlKAotICAgICAgICAgICAgICAgIG1l
c3NhZ2U9bWVzc2FnZSwgZW5kPVRydWUsIGJpbmFyeT1UcnVlKQotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8gJXI6ICcgJQot
ICAgICAgICAgICAgICAgIChzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25uZWN0aW9uLnJl
bW90ZV9hZGRyLCksIGUpCi0gICAgICAgICAgICByYWlzZQotCi0gICAgICAgICMgVE9ETyhiYXNo
aSk6IEl0IHdvdWxkIGJlIGJldHRlciB0byBibG9jayB0aGUgdGhyZWFkIHRoYXQgc2VuZHMKLSAg
ICAgICAgIyBjb250cm9sIGRhdGEgYXMgd2VsbC4KLSAgICAgICAgaWYgb3V0Z29pbmdfZGF0YS5j
aGFubmVsX2lkICE9IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICBzZWxmLl9tdXhf
aGFuZGxlci5ub3RpZnlfd3JpdGVfZGF0YV9kb25lKG91dGdvaW5nX2RhdGEuY2hhbm5lbF9pZCkK
LQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2Rl
cXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9w
X3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZGVxdWUpID09IDA6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi53YWl0KCkKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEgPSBz
ZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG91dGdvaW5n
X2RhdGEpCi0gICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQot
Ci0gICAgICAgICAgICAjIEZsdXNoIGRlcXVlLgotICAgICAgICAgICAgIwotICAgICAgICAgICAg
IyBBdCB0aGlzIHBvaW50LCBzZWxmLl9kZXF1ZV9jb25kaXRpb24gaXMgYWx3YXlzIGFjcXVpcmVk
LgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdoaWxlIGxlbihzZWxmLl9kZXF1
ZSkgPiAwOgotICAgICAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2VsZi5fZGVxdWUu
cG9wbGVmdCgpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3V0Z29pbmdf
ZGF0YSkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICAgICAjIENsb3NlIHBoeXNpY2FsIGNvbm5l
Y3Rpb24uCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIyBEb24ndCB3YWl0IHRo
ZSByZXNwb25zZSBoZXJlLiBUaGUgcmVzcG9uc2Ugd2lsbCBiZSByZWFkCi0gICAgICAgICAgICAg
ICAgIyBieSB0aGUgcmVhZGVyIHRocmVhZC4KLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFu
ZGxlci5waHlzaWNhbF9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fY2xvc2VfY29kZSwgd2FpdF9yZXNwb25zZT1GYWxzZSkKLSAgICAgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2Fn
ZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gY2xvc2UgdGhl
IHBoeXNpY2FsIGNvbm5lY3Rpb246ICVyJyAlIGUpCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0
ZXJfZG9uZSgpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBjbG9zZV9jb2RlPWNvbW1vbi5TVEFUVVNf
Tk9STUFMX0NMT1NVUkUpOgotICAgICAgICAiIiJTdG9wIHRoZSB3cml0ZXIgdGhyZWFkLiIiIgot
ICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX3N0
b3BfcmVxdWVzdGVkID0gVHJ1ZQotICAgICAgICBzZWxmLl9jbG9zZV9jb2RlID0gY2xvc2VfY29k
ZQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNzIF9QaHlzaWNhbENvbm5lY3Rpb25S
ZWFkZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0KLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3Bv
bnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29u
c3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFu
ZGxlcjogX011eEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRp
bmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5k
bGVyCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgot
ICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBo
eXNpY2FsX3N0cmVhbSA9IHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbQotICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSBwaHlzaWNhbF9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAg
ICAgICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgIyBCZWxvdyBoYXBwZW5zIG9ubHkgd2hlbiBhIGRhdGEgbWVz
c2FnZSBpcyByZWNlaXZlZC4KLSAgICAgICAgICAgICAgICBvcGNvZGUgPSBwaHlzaWNhbF9zdHJl
YW0uZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKCkKLSAgICAgICAgICAgICAgICBpZiBvcGNvZGUg
IT0gY29tbW9uLk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX211eF9o
YW5kbGVyLmZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAg
IF9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAnUmVjZWl2ZWQgYSB0ZXh0IG1lc3NhZ2Ugb24gcGh5c2ljYWwgY29ubmVjdGlv
bicpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgIGV4Y2VwdCBDb25u
ZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaF9tZXNzYWdl
KG1lc3NhZ2UpCi0gICAgICAgICAgICBleGNlcHQgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IgYXMg
ZToKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5l
Y3Rpb24oCi0gICAgICAgICAgICAgICAgICAgIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVycm9y
IGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9sb2dpY2FsX2No
YW5uZWwoCi0gICAgICAgICAgICAgICAgICAgIGUuY2hhbm5lbF9pZCwgZS5kcm9wX2NvZGUsIGUu
bWVzc2FnZSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV9yZWFkZXJf
ZG9uZSgpCi0KLQotY2xhc3MgX1dvcmtlcih0aHJlYWRpbmcuVGhyZWFkKToKLQotICAgICIiIkEg
dGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJ1bm5pbmcgdGhlIGNvcnJlc3BvbmRpbmcg
YXBwbGljYXRpb24KLSAgICBoYW5kbGVyLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG11eF9oYW5kbGVyLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3Rh
bmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtdXhfaGFuZGxlcjogX011eEhhbmRs
ZXIgaW5zdGFuY2UuCi0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3QgaW5zdGFu
Y2UuCi0gICAgICAgICIiIgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAg
ICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuX3JlcXVl
c3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0KLSAgICBkZWYgcnVu
KHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0xvZ2ljYWwgY2hhbm5lbCB3b3Jr
ZXIgc3RhcnRlZC4gKGlkPSVkKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIE5vbi1jcml0
aWNhbCBleGNlcHRpb25zIHdpbGwgYmUgaGFuZGxlZCBieSBkaXNwYXRjaGVyLgotICAgICAgICAg
ICAgc2VsZi5fbXV4X2hhbmRsZXIuZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHNlbGYuX3JlcXVl
c3QpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVycm9yIGFzIGU6Ci0gICAgICAgICAg
ICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKLSAgICAgICAgICAgICAg
ICBlLmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd29ya2VyX2RvbmUoc2VsZi5f
cmVxdWVzdC5jaGFubmVsX2lkKQotCi0KLWNsYXNzIF9NdXhIYW5kc2hha2VyKGh5YmkuSGFuZHNo
YWtlcik6Ci0KLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIG11bHRpcGxl
eGluZy4iIiIKLQotICAgIF9EVU1NWV9XRUJTT0NLRVRfS0VZID0gJ2RHaGxJSE5oYlhCc1pTQnVi
MjVqWlE9PScKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyLCBz
ZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3Rh
bmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVl
c3QgaW5zdGFuY2UuCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNl
IChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwg
c2VuZCBxdW90YS4KLSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBx
dW90YS4KLSAgICAgICAgIiIiCi0gICAgICAgIGh5YmkuSGFuZHNoYWtlci5fX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gc2VuZF9x
dW90YQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90YQotCi0gICAg
ICAgICMgQXBwZW5kIGhlYWRlcnMgd2hpY2ggc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiBoYW5k
c2hha2UgZmllbGQgb2YKLSAgICAgICAgIyBBZGRDaGFubmVsUmVxdWVzdC4KLSAgICAgICAgIyBU
T0RPKGJhc2hpKTogTWFrZSBzdXJlIHdoZXRoZXIgd2Ugc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3
aGVuCi0gICAgICAgICMgICAgIHRoZXNlIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGFscmVhZHkuCi0g
ICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uVVBHUkFERV9IRUFERVJdID0gKAotICAg
ICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCi0gICAgICAgIHJlcXVlc3Qu
aGVhZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUl0gPSAoCi0gICAg
ICAgICAgICBzdHIoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQotICAgICAgICByZXF1ZXN0
LmhlYWRlcnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUl0gPSAoCi0gICAgICAg
ICAgICBzZWxmLl9EVU1NWV9XRUJTT0NLRVRfS0VZKQotCi0gICAgZGVmIF9jcmVhdGVfc3RyZWFt
KHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5IYW5kc2hh
a2VyLl9jcmVhdGVfc3RyZWFtLiIiIgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NyZWF0
aW5nIGxvZ2ljYWwgc3RyZWFtIGZvciAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICByZXR1cm4gX0xvZ2ljYWxTdHJlYW0o
Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucywgc2VsZi5fc2VuZF9x
dW90YSwKLSAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEpCi0KLSAgICBkZWYgX2NyZWF0
ZV9oYW5kc2hha2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgIiIiT3ZlcnJpZGUg
aHliaS5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZS4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBb
XQotCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuJykKLQotICAgICAgICAjIFVwZ3JhZGUgYW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0
IHNob3VsZCBiZSBleGNsdWRlZC4KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxu
JyAlICgKLSAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JB
REVfQ09OTkVDVElPTl9UWVBFKSkKLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2Nv
bCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicg
JSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVS
LAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAgICBp
ZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5vdCBOb25lIGFuZAotICAgICAgICAg
ICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykgIT0gMCk6Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgIGNvbW1vbi5m
b3JtYXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKLSAgICAgICAg
cmVzcG9uc2UuYXBwZW5kKCdcclxuJykKLQotICAgICAgICByZXR1cm4gJycuam9pbihyZXNwb25z
ZSkKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgaHliaS5IYW5kc2hha2VyLl9zZW5kX2hhbmRzaGFrZS4iIiIKLSAgICAgICAgIyBE
b24ndCBzZW5kIGhhbmRzaGFrZSByZXNwb25zZSBmb3IgdGhlIGRlZmF1bHQgY2hhbm5lbAotICAg
ICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQgPT0gX0RFRkFVTFRfQ0hBTk5FTF9JRDoK
LSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGhhbmRzaGFrZV9yZXNwb25zZSA9IHNlbGYu
X2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQotICAgICAgICBmcmFtZV9kYXRhID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNo
YWtlX3Jlc3BvbnNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgaGFuZHNo
YWtlIHJlc3BvbnNlIGZvciAlZDogJXInICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGZyYW1lX2RhdGEpKQotICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLQotY2xhc3Mg
X0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3QpOgotCi0gICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBo
b2xkcyBpbmZvcm1hdGlvbiBhYm91dCBsb2dpY2FsIGNoYW5uZWwuIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgd29ya2VyKToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVx
dWVzdAotICAgICAgICBzZWxmLndvcmtlciA9IHdvcmtlcgotICAgICAgICBzZWxmLmRyb3BfY29k
ZSA9IF9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUKLSAgICAgICAgc2VsZi5kcm9wX21lc3NhZ2Ug
PSAnJwotCi0KLWNsYXNzIF9IYW5kc2hha2VEZWx0YUJhc2Uob2JqZWN0KToKLSAgICAiIiJBIGNs
YXNzIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gZm9yIGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMpOgotICAgICAgICBzZWxmLl9oZWFk
ZXJzID0gaGVhZGVycwotCi0gICAgZGVmIGNyZWF0ZV9oZWFkZXJzKHNlbGYsIGRlbHRhPU5vbmUp
OgotICAgICAgICAiIiJDcmVhdGVzIHJlcXVlc3QgaGVhZGVycyBmb3IgYW4gQWRkQ2hhbm5lbFJl
cXVlc3QgdGhhdCBoYXMKLSAgICAgICAgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGRlbHRhOiBoZWFkZXJzIHNob3VsZCBiZSBvdmVycmlkZGVu
LgotICAgICAgICAiIiIKLQotICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYuX2hlYWRl
cnMpCi0gICAgICAgIGlmIGRlbHRhOgotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGVs
dGEuaXRlbXMoKToKLSAgICAgICAgICAgICAgICAjIFRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgYSBo
ZWFkZXIgd2l0aCBhbiBlbXB0eSB2YWx1ZSBpcwotICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBm
cm9tIHRoZSBkZWx0YSBiYXNlLgotICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMCBh
bmQgaGVhZGVycy5oYXNfa2V5KGtleSk6Ci0gICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJz
W2tleV0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBoZWFkZXJz
W2tleV0gPSB2YWx1ZQotICAgICAgICByZXR1cm4gaGVhZGVycwotCi0KLWNsYXNzIF9NdXhIYW5k
bGVyKG9iamVjdCk6Ci0gICAgIiIiTXVsdGlwbGV4aW5nIGhhbmRsZXIuIFdoZW4gYSBoYW5kbGVy
IHN0YXJ0cywgaXQgbGF1bmNoZXMgdGhyZWUKLSAgICB0aHJlYWRzOyB0aGUgcmVhZGVyIHRocmVh
ZCwgdGhlIHdyaXRlciB0aHJlYWQsIGFuZCBhIHdvcmtlciB0aHJlYWQuCi0KLSAgICBUaGUgcmVh
ZGVyIHRocmVhZCByZWFkcyBkYXRhIGZyb20gdGhlIHBoeXNpY2FsIHN0cmVhbSwgaS5lLiwgdGhl
Ci0gICAgd3Nfc3RyZWFtIG9iamVjdCBvZiB0aGUgdW5kZXJseWluZyB3ZWJzb2NrZXQgY29ubmVj
dGlvbi4gVGhlIHJlYWRlcgotICAgIHRocmVhZCBpbnRlcnByZXRzIG11bHRpcGxleGVkIGZyYW1l
cyBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIGxvZ2ljYWwKLSAgICBjaGFubmVscy4gTWV0aG9kcyBv
ZiB0aGlzIGNsYXNzIGFyZSBtb3N0bHkgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgotCi0g
ICAgVGhlIHdyaXRlciB0aHJlYWQgc2VuZHMgbXVsdGlwbGV4ZWQgZnJhbWVzIHdoaWNoIGFyZSBj
cmVhdGVkIGJ5Ci0gICAgbG9naWNhbCBjaGFubmVscyB2aWEgdGhlIHBoeXNpY2FsIGNvbm5lY3Rp
b24uCi0KLSAgICBUaGUgd29ya2VyIHRocmVhZCBsYXVuY2hlZCBhdCB0aGUgc3RhcnRpbmcgcG9p
bnQgaGFuZGxlcyB0aGUKLSAgICAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuIElmIG11
bHRpcGxleGluZyBoYW5kbGVyIHJlY2VpdmVzCi0gICAgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgYW5k
IGFjY2VwdHMgaXQsIHRoZSBoYW5kbGVyIHdpbGwgbGF1bmNoIGEgbmV3IHdvcmtlcgotICAgIHRo
cmVhZCBhbmQgZGlzcGF0Y2ggdGhlIHJlcXVlc3QgdG8gaXQuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1v
ZF9weXRob24gcmVxdWVzdCBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAg
IGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QgPSByZXF1ZXN0Ci0g
ICAgICAgIHNlbGYuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKLSAgICAgICAgc2VsZi5waHlzaWNh
bF9jb25uZWN0aW9uID0gcmVxdWVzdC5jb25uZWN0aW9uCi0gICAgICAgIHNlbGYucGh5c2ljYWxf
c3RyZWFtID0gcmVxdWVzdC53c19zdHJlYW0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7
fQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5D
b25kaXRpb24oKQotICAgICAgICAjIEhvbGRzIGNsaWVudCdzIGluaXRpYWwgcXVvdGEKLSAgICAg
ICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKLSAgICAgICAgc2Vs
Zi5faGFuZHNoYWtlX2Jhc2UgPSBOb25lCi0gICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlm
eV9yZWNlaXZlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlYWRlciA9IE5vbmUKLSAgICAgICAg
c2VsZi5fd3JpdGVyID0gTm9uZQotCi0gICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICAiIiJT
dGFydHMgdGhlIGhhbmRsZXIuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgTXV4VW5l
eHBlY3RlZEV4Y2VwdGlvbjogd2hlbiB0aGUgaGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQsIG9yIHdo
ZW4KLSAgICAgICAgICAgICAgICBvcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgZGVmYXVsdCBjaGFu
bmVsIGZhaWxzLgotICAgICAgICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkZXIgb3Igc2Vs
Zi5fd3JpdGVyOgotICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignTXV4
SGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQnKQotCi0gICAgICAgIHNlbGYuX3JlYWRlciA9IF9QaHlz
aWNhbENvbm5lY3Rpb25SZWFkZXIoc2VsZikKLSAgICAgICAgc2VsZi5fd3JpdGVyID0gX1BoeXNp
Y2FsQ29ubmVjdGlvbldyaXRlcihzZWxmKQotICAgICAgICBzZWxmLl9yZWFkZXIuc3RhcnQoKQot
ICAgICAgICBzZWxmLl93cml0ZXIuc3RhcnQoKQotCi0gICAgICAgICMgQ3JlYXRlICJJbXBsaWNp
dGx5IE9wZW5lZCBDb25uZWN0aW9uIi4KLSAgICAgICAgbG9naWNhbF9jb25uZWN0aW9uID0gX0xv
Z2ljYWxDb25uZWN0aW9uKHNlbGYsIF9ERUZBVUxUX0NIQU5ORUxfSUQpCi0gICAgICAgIGhlYWRl
cnMgPSBjb3B5LmNvcHkoc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCi0gICAgICAg
ICMgQWRkIGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgaGVhZGVyc1tj
b21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBj
b21tb24uZm9ybWF0X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9y
ZXF1ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpKSkKLSAgICAgICAgc2VsZi5faGFuZHNo
YWtlX2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKGhlYWRlcnMpCi0gICAgICAgIGxvZ2ljYWxf
cmVxdWVzdCA9IF9Mb2dpY2FsUmVxdWVzdCgKLSAgICAgICAgICAgIF9ERUZBVUxUX0NIQU5ORUxf
SUQsCi0gICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubWV0aG9kLAotICAgICAgICAg
ICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnVyaSwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxf
cmVxdWVzdC5wcm90b2NvbCwKLSAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0
ZV9oZWFkZXJzKCksCi0gICAgICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24pCi0gICAgICAgICMg
Q2xpZW50J3Mgc2VuZCBxdW90YSBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24g
aXMgemVybywKLSAgICAgICAgIyBidXQgd2Ugd2lsbCBzZW5kIEZsb3dDb250cm9sIGxhdGVyIHNv
IHNldCB0aGUgaW5pdGlhbCBxdW90YSB0bwotICAgICAgICAjIF9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQuCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuYXBwZW5kKF9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0gICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLm9yaWdpbmFsX3JlcXVlc3Qu
bXV4X3Byb2Nlc3Nvci5xdW90YSgpCi0gICAgICAgIGlmIG5vdCBzZWxmLl9kb19oYW5kc2hha2Vf
Zm9yX2xvZ2ljYWxfcmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCwgc2VuZF9x
dW90YT1zZW5kX3F1b3RhKToKLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCBoYW5kc2hha2Ugb24gdGhlIGRlZmF1bHQgY2hh
bm5lbCBpZCcpCi0gICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1
ZXN0KQotCi0gICAgICAgICMgU2VuZCBGbG93Q29udHJvbCBmb3IgdGhlIGltcGxpY2l0bHkgb3Bl
bmVkIGNvbm5lY3Rpb24uCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bChfREVGQVVMVF9DSEFOTkVMX0lELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLSAgICAgICAgbG9naWNhbF9yZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYg
YWRkX2NoYW5uZWxfc2xvdHMoc2VsZiwgc2xvdHMsIHNlbmRfcXVvdGEpOgotICAgICAgICAiIiJB
ZGRzIGNoYW5uZWwgc2xvdHMuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHNsb3RzOiBu
dW1iZXIgb2Ygc2xvdHMgdG8gYmUgYWRkZWQuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBpbml0
aWFsIHNlbmQgcXVvdGEgZm9yIHNsb3RzLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9j
aGFubmVsX3Nsb3RzLmV4dGVuZChbc2VuZF9xdW90YV0gKiBzbG90cykKLSAgICAgICAgIyBTZW5k
IE5ld0NoYW5uZWxTbG90IHRvIGNsaWVudC4KLSAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVf
bmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSkKLSAgICAgICAgc2VsZi5zZW5kX2Nv
bnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIHdhaXRfdW50aWxfZG9uZShzZWxmLCB0
aW1lb3V0PU5vbmUpOgotICAgICAgICAiIiJXYWl0cyB1bnRpbCBhbGwgd29ya2VycyBhcmUgZG9u
ZS4gUmV0dXJucyBGYWxzZSB3aGVuIHRpbWVvdXQgaGFzCi0gICAgICAgIG9jY3VycmVkLiBSZXR1
cm5zIFRydWUgb24gc3VjY2Vzcy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgdGltZW91
dDogdGltZW91dCBpbiBzZWMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aGlsZSBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykgPiAwOgotICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXJzKCVkKS4uLicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykpCi0gICAg
ICAgICAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0KHRpbWVv
dXQpCi0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNl
aXZlZDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdv
cmtlcihzKSB0aW1lZCBvdXQnKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMgRmx1c2ggcGVuZGluZyBvdXRnb2luZyBkYXRhCi0g
ICAgICAgIHNlbGYuX3dyaXRlci5zdG9wKCkKLSAgICAgICAgc2VsZi5fd3JpdGVyLmpvaW4oKQot
Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgbm90aWZ5X3dyaXRlX2RhdGFfZG9uZShz
ZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFk
IHdoZW4gYSB3cml0ZSBvcGVyYXRpb24gaGFzIGRvbmUuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9j
aGFubmVsczoKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzW2NoYW5uZWxfaWRdCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qu
Y29ubmVjdGlvbi5vbl93cml0ZV9kYXRhX2RvbmUoKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlZW1zIHRoYXQgbG9naWNhbCBjaGFubmVs
IGZvciAlZCBoYXMgZ29uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBj
aGFubmVsX2lkKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgc2VuZF9jb250cm9sX2RhdGEo
c2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlNlbmRzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5u
ZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9P
dXRnb2luZ0RhdGEoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1fQ09OVFJPTF9DSEFOTkVM
X0lELCBkYXRhPWRhdGEpKQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBjaGFubmVsX2lkLCBk
YXRhKToKLSAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgZ2l2ZW4gbG9naWNhbCBjaGFubmVsLiBU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkKLSAgICAgICAgd29ya2VyIHRocmVhZHMuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgot
ICAgICAgICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgKLSAgICAgICAg
ICAgICAgICBjaGFubmVsX2lkPWNoYW5uZWxfaWQsIGRhdGE9ZGF0YSkpCi0KLSAgICBkZWYgX3Nl
bmRfZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6
Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBj
b2RlLCBtZXNzYWdlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
U2VuZGluZyBkcm9wIGNoYW5uZWwgZm9yIGNoYW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKLSAg
ICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIF9zZW5k
X2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYsIGNoYW5uZWxfaWQsIHN0YXR1cz1Ob25l
KToKLSAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6Ci0gICAgICAgICAgICBzdGF0dXMgPSBjb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QKLQotICAgICAgICBpZiBzdGF0dXMgaW4gX0hUVFBf
QkFEX1JFU1BPTlNFX01FU1NBR0VTOgotICAgICAgICAgICAgbWVzc2FnZSA9IF9IVFRQX0JBRF9S
RVNQT05TRV9NRVNTQUdFU1tzdGF0dXNdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1Jlc3BvbnNlIG1lc3NhZ2UgZm9yICVkIGlzIG5vdCBmb3VuZCcgJSBz
dGF0dXMpCi0gICAgICAgICAgICBtZXNzYWdlID0gJz8/PycKLQotICAgICAgICByZXNwb25zZSA9
ICdIVFRQLzEuMSAlZCAlc1xyXG5cclxuJyAlIChzdGF0dXMsIG1lc3NhZ2UpCi0gICAgICAgIGZy
YW1lX2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPXJlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1UcnVlKQotICAgICAgICBzZWxmLnNlbmRf
Y29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCi0KLSAgICBkZWYgX2NyZWF0ZV9sb2dpY2FsX3JlcXVl
c3Qoc2VsZiwgYmxvY2spOgotICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IF9DT05UUk9M
X0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBSYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvciB3aXRoIGNvZGUgMjAwNgotICAgICAgICAgICAgIyBpbnN0ZWFkIG9mIE11
eFVuZXhwZWN0ZWRFeGNlcHRpb24uCi0gICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCB0aGUgY29udHJvbCBjaGFubmVsIGlk
ICgwKSBhcyBvYmplY3RpdmUgY2hhbm5lbCAnCi0gICAgICAgICAgICAgICAgJ2lkIGZvciBBZGRD
aGFubmVsJykKLQotICAgICAgICBpZiBibG9jay5lbmNvZGluZyA+IF9IQU5EU0hBS0VfRU5DT0RJ
TkdfREVMVEE6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAg
ICAgICAgICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORykKLQotICAg
ICAgICBtZXRob2QsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBfcGFyc2VfcmVxdWVzdF90ZXh0
KAotICAgICAgICAgICAgYmxvY2suZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIGlmIGJsb2Nr
LmVuY29kaW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEE6Ci0gICAgICAgICAgICBoZWFk
ZXJzID0gc2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoaGVhZGVycykKLQotICAg
ICAgICBjb25uZWN0aW9uID0gX0xvZ2ljYWxDb25uZWN0aW9uKHNlbGYsIGJsb2NrLmNoYW5uZWxf
aWQpCi0gICAgICAgIHJlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoYmxvY2suY2hhbm5lbF9pZCwg
bWV0aG9kLCBwYXRoLCB2ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlYWRlcnMsIGNvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybiByZXF1ZXN0Ci0KLSAgICBkZWYg
X2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIHNlbmRfcXVv
dGE9MCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlY2VpdmVfcXVvdGEgPSBzZWxmLl9j
aGFubmVsX3Nsb3RzLnBvcGxlZnQoKQotICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAg
ICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgcmVxdWVz
dC5jaGFubmVsX2lkLCBfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OKQotCi0g
ICAgICAgIGhhbmRzaGFrZXIgPSBfTXV4SGFuZHNoYWtlcihyZXF1ZXN0LCBzZWxmLmRpc3BhdGNo
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhLCByZWNl
aXZlX3F1b3RhKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyVzJywgZSkKLSAgICAgICAgICAgIHNlbGYu
X3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAgcmVxdWVz
dC5jaGFubmVsX2lkLCBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtl
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBTaG91bGQgd2UgX0Zh
aWwgdGhlIExvZ2ljYWwgQ2hhbm5lbF8gd2l0aCAzMDAxCi0gICAgICAgICAgICAjIGluc3RlYWQ/
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2Vs
Zi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShyZXF1ZXN0LmNoYW5uZWxfaWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz1l
LnN0YXR1cykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBleGNlcHQgaGFuZHNo
YWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKCclcycsIGUpCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVs
X3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQot
Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX2FkZF9sb2dpY2FsX2NoYW5uZWwoc2Vs
ZiwgbG9naWNhbF9yZXF1ZXN0KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBsb2dpY2Fs
X3JlcXVlc3QuY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hh
bm5lbF9pZCkKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigK
LSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTLAot
ICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQotICAg
ICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAg
IHdvcmtlciA9IF9Xb3JrZXIoc2VsZiwgbG9naWNhbF9yZXF1ZXN0KQotICAgICAgICAgICAgY2hh
bm5lbF9kYXRhID0gX0xvZ2ljYWxDaGFubmVsRGF0YShsb2dpY2FsX3JlcXVlc3QsIHdvcmtlcikK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbbG9naWNhbF9yZXF1ZXN0LmNoYW5u
ZWxfaWRdID0gY2hhbm5lbF9kYXRhCi0gICAgICAgICAgICB3b3JrZXIuc3RhcnQoKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24u
cmVsZWFzZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBi
bG9jayk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCA9IHNlbGYu
X2NyZWF0ZV9sb2dpY2FsX3JlcXVlc3QoYmxvY2spCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
IGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0ZhaWxlZCB0byBjcmVhdGUg
bG9naWNhbCByZXF1ZXN0OiAlcicgJSBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9h
ZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICBibG9jay5jaGFubmVsX2lkLCBz
dGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGlmIHNlbGYuX2RvX2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KGxvZ2lj
YWxfcmVxdWVzdCk6Ci0gICAgICAgICAgICBpZiBibG9jay5lbmNvZGluZyA9PSBfSEFORFNIQUtF
X0VOQ09ESU5HX0lERU5USVRZOgotICAgICAgICAgICAgICAgICMgVXBkYXRlIGhhbmRzaGFrZSBi
YXNlLgotICAgICAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IE1ha2Ugc3VyZSB0aGlzIGlzIHRo
ZSByaWdodCBwbGFjZSB0byB1cGRhdGUKLSAgICAgICAgICAgICAgICAjIGhhbmRzaGFrZSBiYXNl
LgotICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gX0hhbmRzaGFrZURlbHRh
QmFzZSgKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCi0g
ICAgICAgICAgICBzZWxmLl9hZGRfbG9naWNhbF9jaGFubmVsKGxvZ2ljYWxfcmVxdWVzdCkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxfcmVz
cG9uc2UoCi0gICAgICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5I
VFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLQotICAgIGRlZiBfcHJvY2Vzc19mbG93X2NvbnRyb2wo
c2VsZiwgYmxvY2spOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFu
bmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2Jsb2Nr
LmNoYW5uZWxfaWRdCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0u
cmVwbGVuaXNoX3NlbmRfcXVvdGEoCi0gICAgICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSkK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29u
ZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNzX2Ryb3BfY2hhbm5lbChzZWxmLCBi
bG9jayk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdEcm9wQ2hh
bm5lbCByZWNlaXZlZCBmb3IgJWQ6IGNvZGU9JXIsIHJlYXNvbj0lcicgJQotICAgICAgICAgICAg
KGJsb2NrLmNoYW5uZWxfaWQsIGJsb2NrLmRyb3BfY29kZSwgYmxvY2suZHJvcF9tZXNzYWdlKSkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRp
b24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAg
Y2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXQot
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRyb3BfY29kZSA9IF9EUk9QX0NPREVfQUNLTk9XTEVE
R0VECi0KLSAgICAgICAgICAgICMgQ2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbAotICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKLSAgICAg
ICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rpb24uU1RBVEVfVEVSTUlOQVRFRCkKLSAgICAgICAg
ICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5zdG9wX3NlbmRpbmcoKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24u
cmVsZWFzZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfY29udHJvbF9ibG9ja3Moc2VsZiwgcGFyc2Vy
KToKLSAgICAgICAgZm9yIGNvbnRyb2xfYmxvY2sgaW4gcGFyc2VyLnJlYWRfY29udHJvbF9ibG9j
a3MoKToKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbnRyb2xfYmxvY2sub3Bjb2RlCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ2NvbnRyb2wgYmxvY2sgcmVjZWl2ZWQsIG9wY29kZTog
JWQnICUgb3Bjb2RlKQotICAgICAgICAgICAgaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFUVVFU1Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19hZGRfY2hhbm5l
bF9yZXF1ZXN0KGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVY
X09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAgICByYWlzZSBQaHlz
aWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZB
TElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgQWRk
Q2hhbm5lbFJlc3BvbnNlJykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RF
X0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Zsb3dfY29udHJv
bChjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfZHJvcF9jaGFubmVs
KGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9O
RVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlv
bkVycm9yKAotICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRS
T0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBOZXdDaGFubmVsU2xvdCcp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIG9wY29kZSAlcicgJSBv
cGNvZGUpCi0KLSAgICBkZWYgX3Byb2Nlc3NfbG9naWNhbF9mcmFtZShzZWxmLCBjaGFubmVsX2lk
LCBwYXJzZXIpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGEgZnJhbWUu
IGNoYW5uZWwgaWQ9JWQnICUgY2hhbm5lbF9pZCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBp
ZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAg
ICAgICMgV2UgbXVzdCBpZ25vcmUgdGhlIG1lc3NhZ2UgZm9yIGFuIGluYWN0aXZlIGNoYW5uZWwu
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdCi0gICAgICAgICAgICBmaW4sIHJzdjEsIHJz
djIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCA9IHBhcnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKLSAg
ICAgICAgICAgIGNvbnN1bWluZ19ieXRlID0gbGVuKHBheWxvYWQpCi0gICAgICAgICAgICBpZiBv
cGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgY29u
c3VtaW5nX2J5dGUgKz0gMQotICAgICAgICAgICAgaWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0
LndzX3N0cmVhbS5jb25zdW1lX3JlY2VpdmVfcXVvdGEoCi0gICAgICAgICAgICAgICAgY29uc3Vt
aW5nX2J5dGUpOgotICAgICAgICAgICAgICAgICMgVGhlIGNsaWVudCB2aW9sYXRlcyBxdW90YS4g
Q2xvc2UgbG9naWNhbCBjaGFubmVsLgotICAgICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFu
bmVsRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQsIF9EUk9QX0NPREVfU0VO
RF9RVU9UQV9WSU9MQVRJT04pCi0gICAgICAgICAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKG9w
Y29kZSwgbGVuKHBheWxvYWQpLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hc2s9RmFsc2UpCi0gICAgICAgICAgICBmcmFtZV9kYXRh
ID0gaGVhZGVyICsgcGF5bG9hZAotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29u
bmVjdGlvbi5hcHBlbmRfZnJhbWVfZGF0YShmcmFtZV9kYXRhKQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0K
LSAgICBkZWYgZGlzcGF0Y2hfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiRGlz
cGF0Y2hlcyBtZXNzYWdlLiBUaGUgcmVhZGVyIHRocmVhZCBjYWxscyB0aGlzIG1ldGhvZC4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogYSBtZXNzYWdlIHRoYXQgY29udGFp
bnMgZW5jYXBzdWxhdGVkIGZyYW1lLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBQaHlz
aWNhbENvbm5lY3Rpb25FcnJvcjogaWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgcGh5c2ljYWwKLSAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uIGxldmVsIGVycm9ycy4KLSAgICAgICAgICAgIExvZ2lj
YWxDaGFubmVsRXJyb3I6IGlmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIGxvZ2ljYWwgY2hhbm5lbAot
ICAgICAgICAgICAgICAgIGxldmVsIGVycm9ycy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcGFy
c2VyID0gX011eEZyYW1lUGF5bG9hZFBhcnNlcihtZXNzYWdlKQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvcihfRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEKQotICAgICAgICBpZiBjaGFu
bmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICBzZWxmLl9wcm9jZXNz
X2NvbnRyb2xfYmxvY2tzKHBhcnNlcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYu
X3Byb2Nlc3NfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkLCBwYXJzZXIpCi0KLSAgICBkZWYgbm90
aWZ5X3dvcmtlcl9kb25lKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICAiIiJDYWxsZWQgd2hl
biBhIHdvcmtlciBoYXMgZmluaXNoZWQuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ6IGNoYW5uZWwgaWQgY29ycmVzcG9uZGVkIHdpdGggdGhlIHdvcmtlci4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXb3JrZXIgZm9yIGNoYW5uZWwg
aWQgJWQgdGVybWluYXRlZCcgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAg
IGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
J0NoYW5uZWwgaWQgJWQgbm90IGZvdW5kJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgICAgICBjaGFu
bmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnBvcChjaGFubmVsX2lkKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVk
ID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ubm90
aWZ5KCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVh
c2UoKQotCi0gICAgICAgIGlmIG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC5zZXJ2ZXJfdGVybWlu
YXRlZDoKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKAotICAgICAgICAgICAg
ICAgIGNoYW5uZWxfaWQsIGNvZGU9Y2hhbm5lbF9kYXRhLmRyb3BfY29kZSwKLSAgICAgICAgICAg
ICAgICBtZXNzYWdlPWNoYW5uZWxfZGF0YS5kcm9wX21lc3NhZ2UpCi0KLSAgICBkZWYgbm90aWZ5
X3JlYWRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkg
dGhlIHJlYWRlciB0aHJlYWQgd2hlbiB0aGUgcmVhZGVyIGhhcwotICAgICAgICBmaW5pc2hlZC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAg
J1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlvbnMgd2FpdGluZyBmb3IgaW5jb21pbmcg
ZGF0YSAnCi0gICAgICAgICAgICAnLi4uJykKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5f
bG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0YXRlKAotICAg
ICAgICAgICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rpb24uU1RBVEVfVEVSTUlOQVRFRCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIG5vdGlmeV93cml0ZXJfZG9uZShz
ZWxmKToKLSAgICAgICAgIiIiVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhy
ZWFkIHdoZW4gdGhlIHdyaXRlciBoYXMKLSAgICAgICAgZmluaXNoZWQuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdUZXJtaWF0aW5nIGFs
bCBsb2dpY2FsIGNvbm5lY3Rpb25zIHdhaXRpbmcgZm9yIHdyaXRlICcKLSAgICAgICAgICAgICdj
b21wbGV0aW9uIC4uLicpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICBmb3IgY2hhbm5lbF9kYXRhIGluIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHMudmFsdWVzKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2hhbm5l
bF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5vbl93cml0ZXJfZG9uZSgpCi0gICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFj
ZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBmYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24oc2VsZiwg
Y29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkZhaWwgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24u
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCi0g
ICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4uLicp
Ci0gICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKF9DT05UUk9MX0NIQU5ORUxfSUQsIGNv
ZGUsIG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX3dyaXRlci5zdG9wKGNvbW1vbi5TVEFUVVNfSU5U
RVJOQUxfRU5EUE9JTlRfRVJST1IpCi0KLSAgICBkZWYgZmFpbF9sb2dpY2FsX2NoYW5uZWwoc2Vs
ZiwgY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkZhaWwgYSBsb2dpY2Fs
IGNoYW5uZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IGNoYW5u
ZWwgaWQuCi0gICAgICAgICAgICBjb2RlOiBkcm9wIHJlYXNvbiBjb2RlLgotICAgICAgICAgICAg
bWVzc2FnZTogZHJvcCBtZXNzYWdlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ0ZhaWxpbmcgbG9naWNhbCBjaGFubmVsICVkLi4uJyAlIGNoYW5uZWxfaWQpCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzOgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgICAgICAjIENsb3NlIHRoZSBsb2dpY2FsIGNo
YW5uZWwuIG5vdGlmeV93b3JrZXJfZG9uZSgpIHdpbGwgYmUKLSAgICAgICAgICAgICAgICAjIGNh
bGxlZCBsYXRlciBhbmQgaXQgd2lsbCBzZW5kIERyb3BDaGFubmVsLgotICAgICAgICAgICAgICAg
IGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBjb2RlCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9k
YXRhLmRyb3BfbWVzc2FnZSA9IG1lc3NhZ2UKLQotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0
YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAgICAgICAgICAg
IF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAgICAgIGNo
YW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5zdG9wX3NlbmRpbmcoKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lk
LCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotZGVmIHVzZV9tdXgocmVxdWVz
dCk6Ci0gICAgcmV0dXJuIGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSBhbmQgKAot
ICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IuaXNfYWN0aXZlKCkpCi0KLQotZGVmIHN0YXJ0
KHJlcXVlc3QsIGRpc3BhdGNoZXIpOgotICAgIG11eF9oYW5kbGVyID0gX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhfSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgbXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKCkKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyYzg3ODYwNjQ4ODllODRmMTE1YTc1Njc5YWI3MWM3NDQ2NmEwYzYyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L3N0YW5kYWxvbmUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjA4ICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiU3RhbmRhbG9u
ZSBXZWJTb2NrZXQgc2VydmVyLgotCi1Vc2UgdGhpcyBmaWxlIHRvIGxhdW5jaCBweXdlYnNvY2tl
dCB3aXRob3V0IEFwYWNoZSBIVFRQIFNlcnZlci4KLQotCi1CQVNJQyBVU0FHRQotPT09PT09PT09
PT0KLQotR28gdG8gdGhlIHNyYyBkaXJlY3RvcnkgYW5kIHJ1bgotCi0gICQgcHl0aG9uIG1vZF9w
eXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IFstcCA8d3NfcG9ydD5dCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFstdyA8d2Vic29ja19oYW5kbGVycz5dCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFstZCA8ZG9jdW1lbnRfcm9vdD5dCi0K
LTx3c19wb3J0PiBpcyB0aGUgcG9ydCBudW1iZXIgdG8gdXNlIGZvciB3czovLyBjb25uZWN0aW9u
LgotCi08ZG9jdW1lbnRfcm9vdD4gaXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9m
IEhUTUwgZmlsZXMuCi0KLTx3ZWJzb2NrX2hhbmRsZXJzPiBpcyB0aGUgcGF0aCB0byB0aGUgcm9v
dCBkaXJlY3Rvcnkgb2YgV2ViU29ja2V0IGhhbmRsZXJzLgotSWYgbm90IHNwZWNpZmllZCwgPGRv
Y3VtZW50X3Jvb3Q+IHdpbGwgYmUgdXNlZC4gU2VlIF9faW5pdF9fLnB5IChvcgotcnVuICQgcHlk
b2MgbW9kX3B5d2Vic29ja2V0KSBmb3IgaG93IHRvIHdyaXRlIFdlYlNvY2tldCBoYW5kbGVycy4K
LQotRm9yIG1vcmUgZGV0YWlsIGFuZCBvdGhlciBvcHRpb25zLCBydW4KLQotICAkIHB5dGhvbiBt
b2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtLWhlbHAKLQotb3Igc2VlIF9idWlsZF9vcHRp
b25fcGFyc2VyIG1ldGhvZCBiZWxvdy4KLQotRm9yIHRyb3VibGUgc2hvb3RpbmcsIGFkZGluZyAi
LS1sb2dfbGV2ZWwgZGVidWciIG1pZ2h0IGhlbHAgeW91LgotCi0KLVRSWSBERU1PCi09PT09PT09
PQotCi1HbyB0byB0aGUgc3JjIGRpcmVjdG9yeSBhbmQgcnVuIHN0YW5kYWxvbmUucHkgd2l0aCAt
ZCBvcHRpb24gdG8gc2V0IHRoZQotZG9jdW1lbnQgcm9vdCB0byB0aGUgZGlyZWN0b3J5IGNvbnRh
aW5pbmcgZXhhbXBsZSBIVE1McyBhbmQgaGFuZGxlcnMgbGlrZSB0aGlzOgotCi0gICQgY2Qgc3Jj
Ci0gICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAt
ZCBleGFtcGxlCi0KLXRvIGxhdW5jaCBweXdlYnNvY2tldCB3aXRoIHRoZSBzYW1wbGUgaGFuZGxl
ciBhbmQgaHRtbCBvbiBwb3J0IDgwLiBPcGVuCi1odHRwOi8vbG9jYWxob3N0L2NvbnNvbGUuaHRt
bCwgY2xpY2sgdGhlIGNvbm5lY3QgYnV0dG9uLCB0eXBlIHNvbWV0aGluZyBpbnRvCi10aGUgdGV4
dCBib3ggbmV4dCB0byB0aGUgc2VuZCBidXR0b24gYW5kIGNsaWNrIHRoZSBzZW5kIGJ1dHRvbi4g
SWYgZXZlcnl0aGluZwotaXMgd29ya2luZywgeW91J2xsIHNlZSB0aGUgbWVzc2FnZSB5b3UgdHlw
ZWQgZWNob2VkIGJ5IHRoZSBzZXJ2ZXIuCi0KLQotVVNJTkcgVExTCi09PT09PT09PT0KLQotVG8g
cnVuIHRoZSBzdGFuZGFsb25lIHNlcnZlciB3aXRoIFRMUyBzdXBwb3J0LCBydW4gaXQgd2l0aCAt
dCwgLWssIGFuZCAtYwotb3B0aW9ucy4gV2hlbiBUTFMgaXMgZW5hYmxlZCwgdGhlIHN0YW5kYWxv
bmUgc2VydmVyIGFjY2VwdHMgb25seSBUTFMgY29ubmVjdGlvbi4KLQotTm90ZSB0aGF0IHdoZW4g
c3NsIG1vZHVsZSBpcyB1c2VkIGFuZCB0aGUga2V5L2NlcnQgbG9jYXRpb24gaXMgaW5jb3JyZWN0
LAotVExTIGNvbm5lY3Rpb24gc2lsZW50bHkgZmFpbHMgd2hpbGUgcHlPcGVuU1NMIGZhaWxzIG9u
IHN0YXJ0dXAuCi0KLUV4YW1wbGU6Ci0KLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdl
YnNvY2tldC9zdGFuZGFsb25lLnB5IFwKLSAgICAgICAgLWQgZXhhbXBsZSBcCi0gICAgICAgIC1w
IDEwNDQzIFwKLSAgICAgICAgLXQgXAotICAgICAgICAtYyAuLi90ZXN0L2NlcnQvY2VydC5wZW0g
XAotICAgICAgICAtayAuLi90ZXN0L2NlcnQva2V5LnBlbSBcCi0KLU5vdGUgdGhhdCB3aGVuIHBh
c3NpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIC1jIGFuZCAtayBvcHRpb24sIGl0IHdpbGwgYmUgcmVz
b2x2ZWQKLXVzaW5nIHRoZSBkb2N1bWVudCByb290IGRpcmVjdG9yeSBhcyB0aGUgYmFzZS4KLQot
Ci1VU0lORyBDTElFTlQgQVVUSEVOVElDQVRJT04KLT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi1UbyBydW4gdGhlIHN0YW5kYWxvbmUgc2VydmVyIHdpdGggVExTIGNsaWVudCBhdXRoZW50
aWNhdGlvbiBzdXBwb3J0LCBydW4gaXQgd2l0aAotLS10bHMtY2xpZW50LWF1dGggYW5kIC0tdGxz
LWNsaWVudC1jYSBvcHRpb25zIGluIGFkZGl0aW9uIHRvIG9uZXMgcmVxdWlyZWQgZm9yCi1UTFMg
c3VwcG9ydC4KLQotRXhhbXBsZToKLQotICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5d2Vi
c29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZSAtcCAxMDQ0MyAtdCBcCi0gICAgICAgIC1j
IC4uL3Rlc3QvY2VydC9jZXJ0LnBlbSAtayAuLi90ZXN0L2NlcnQva2V5LnBlbSBcCi0gICAgICAg
IC0tdGxzLWNsaWVudC1hdXRoIFwKLSAgICAgICAgLS10bHMtY2xpZW50LWNhPS4uL3Rlc3QvY2Vy
dC9jYWNlcnQucGVtCi0KLU5vdGUgdGhhdCB3aGVuIHBhc3NpbmcgYSByZWxhdGl2ZSBwYXRoIHRv
IC0tdGxzLWNsaWVudC1jYSBvcHRpb24sIGl0IHdpbGwgYmUKLXJlc29sdmVkIHVzaW5nIHRoZSBk
b2N1bWVudCByb290IGRpcmVjdG9yeSBhcyB0aGUgYmFzZS4KLQotCi1DT05GSUdVUkFUSU9OIEZJ
TEUKLT09PT09PT09PT09PT09PT09PQotCi1Zb3UgY2FuIGFsc28gd3JpdGUgYSBjb25maWd1cmF0
aW9uIGZpbGUgYW5kIHVzZSBpdCBieSBzcGVjaWZ5aW5nIHRoZSBwYXRoIHRvCi10aGUgY29uZmln
dXJhdGlvbiBmaWxlIGJ5IC0tY29uZmlnIG9wdGlvbi4gUGxlYXNlIHdyaXRlIGEgY29uZmlndXJh
dGlvbiBmaWxlCi1mb2xsb3dpbmcgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFB5dGhvbiBDb25m
aWdQYXJzZXIgbGlicmFyeS4gTmFtZSBvZiBlYWNoCi1lbnRyeSBtdXN0IGJlIHRoZSBsb25nIHZl
cnNpb24gYXJndW1lbnQgbmFtZS4gRS5nLiB0byBzZXQgbG9nIGxldmVsIHRvIGRlYnVnLAotYWRk
IHRoZSBmb2xsb3dpbmcgbGluZToKLQotbG9nX2xldmVsPWRlYnVnCi0KLUZvciBvcHRpb25zIHdo
aWNoIGRvZXNuJ3QgdGFrZSB2YWx1ZSwgcGxlYXNlIGFkZCBzb21lIGZha2UgdmFsdWUuIEUuZy4g
Zm9yCi0tLXRscyBvcHRpb24sIGFkZCB0aGUgZm9sbG93aW5nIGxpbmU6Ci0KLXRscz1UcnVlCi0K
LU5vdGUgdGhhdCB0bHMgd2lsbCBiZSBlbmFibGVkIGV2ZW4gaWYgeW91IHdyaXRlIHRscz1GYWxz
ZSBhcyB0aGUgdmFsdWUgcGFydCBpcwotZmFrZS4KLQotV2hlbiBib3RoIGEgY29tbWFuZCBsaW5l
IGFyZ3VtZW50IGFuZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBlbnRyeSBhcmUgc2V0IGZvcgotdGhl
IHNhbWUgY29uZmlndXJhdGlvbiBpdGVtLCB0aGUgY29tbWFuZCBsaW5lIHZhbHVlIHdpbGwgb3Zl
cnJpZGUgb25lIGluIHRoZQotY29uZmlndXJhdGlvbiBmaWxlLgotCi0KLVRIUkVBRElORwotPT09
PT09PT09Ci0KLVRoaXMgc2VydmVyIGlzIGRlcml2ZWQgZnJvbSBzb2NrZXRzZXJ2ZXIuVGhyZWFk
aW5nTWl4SW4uIEhlbmNlIGEgdGhyZWFkIGlzCi11c2VkIGZvciBlYWNoIHJlcXVlc3QuCi0KLQot
U0VDVVJJVFkgV0FSTklORwotPT09PT09PT09PT09PT09PQotCi1UaGlzIHVzZXMgQ0dJSFRUUFNl
cnZlciBhbmQgQ0dJSFRUUFNlcnZlciBpcyBub3Qgc2VjdXJlLgotSXQgbWF5IGV4ZWN1dGUgYXJi
aXRyYXJ5IFB5dGhvbiBjb2RlIG9yIGV4dGVybmFsIHByb2dyYW1zLiBJdCBzaG91bGQgbm90IGJl
Ci11c2VkIG91dHNpZGUgYSBmaXJld2FsbC4KLSIiIgotCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQg
QmFzZUhUVFBTZXJ2ZXIKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCBDR0lIVFRQU2VydmVyCi1mcm9t
IHNpeC5tb3ZlcyBpbXBvcnQgU2ltcGxlSFRUUFNlcnZlcgotZnJvbSBzaXgubW92ZXMgaW1wb3J0
IHNvY2tldHNlcnZlcgotZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNvbmZpZ3BhcnNlcgotaW1wb3J0
IGJhc2U2NAotZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0dHBfY2xpZW50Ci1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IGxvZ2dpbmcuaGFuZGxlcnMKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCi1p
bXBvcnQgcmUKLWltcG9ydCBzZWxlY3QKLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzeXMKLWltcG9y
dCB0aHJlYWRpbmcKLWltcG9ydCB0aW1lCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgdXJsbGliCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBkaXNwYXRjaAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVyX3V0aWwKLWZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBtZW1vcml6aW5nZmlsZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Lnhocl9iZW5jaG1hcmtfaGFuZGxlciBpbXBv
cnQgWEhSQmVuY2htYXJrSGFuZGxlcgotCi0KLV9ERUZBVUxUX0xPR19NQVhfQllURVMgPSAxMDI0
ICogMjU2Ci1fREVGQVVMVF9MT0dfQkFDS1VQX0NPVU5UID0gNQotCi1fREVGQVVMVF9SRVFVRVNU
X1FVRVVFX1NJWkUgPSAxMjgKLQotIyAxMDI0IGlzIHByYWN0aWNhbGx5IGxhcmdlIGVub3VnaCB0
byBjb250YWluIFdlYlNvY2tldCBoYW5kc2hha2UgbGluZXMuCi1fTUFYX01FTU9SSVpFRF9MSU5F
UyA9IDEwMjQKLQotIyBDb25zdGFudHMgZm9yIHRoZSAtLXRsc19tb2R1bGUgZmxhZy4KLV9UTFNf
QllfU1RBTkRBUkRfTU9EVUxFID0gJ3NzbCcKLV9UTFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNz
bCcKLQotCi1jbGFzcyBfU3RhbmRhbG9uZUNvbm5lY3Rpb24ob2JqZWN0KToKLSAgICAiIiJNaW1p
YyBtb2RfcHl0aG9uIG1wX2Nvbm4uIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVz
dF9oYW5kbGVyKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhh
bmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3JlcXVlc3RfaGFu
ZGxlciA9IHJlcXVlc3RfaGFuZGxlcgotCi0gICAgZGVmIGdldF9sb2NhbF9hZGRyKHNlbGYpOgot
ICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgbXBfY29ubi5sb2NhbF9hZGRyLiIiIgotCi0gICAg
ICAgIHJldHVybiAoc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnNlcnZlci5zZXJ2ZXJfbmFtZSwKLSAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZlcl9wb3J0KQot
ICAgIGxvY2FsX2FkZHIgPSBwcm9wZXJ0eShnZXRfbG9jYWxfYWRkcikKLQotICAgIGRlZiBnZXRf
cmVtb3RlX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25uLnJl
bW90ZV9hZGRyLgotCi0gICAgICAgIFNldHRpbmcgdGhlIHByb3BlcnR5IGluIF9faW5pdF9fIHdv
bid0IHdvcmsgYmVjYXVzZSB0aGUgcmVxdWVzdAotICAgICAgICBoYW5kbGVyIGlzIG5vdCBpbml0
aWFsaXplZCB5ZXQgdGhlcmUuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFu
ZGxlci5jbGllbnRfYWRkcmVzcwotICAgIHJlbW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90
ZV9hZGRyKQotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJNaW1pYyBt
cF9jb25uLndyaXRlKCkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxl
ci53ZmlsZS53cml0ZShkYXRhKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAg
ICAgIiIiTWltaWMgbXBfY29ubi5yZWFkKCkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
cXVlc3RfaGFuZGxlci5yZmlsZS5yZWFkKGxlbmd0aCkKLQotICAgIGRlZiBnZXRfbWVtb3JpemVk
X2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXQgbWVtb3JpemVkIGxpbmVzLiIiIgotCi0gICAg
ICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmZpbGUuZ2V0X21lbW9yaXplZF9saW5l
cygpCi0KLQotY2xhc3MgX1N0YW5kYWxvbmVSZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiTWltaWMg
bW9kX3B5dGhvbiByZXF1ZXN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Rf
aGFuZGxlciwgdXNlX3Rscyk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdF9oYW5kbGVyOiBBIFdlYlNvY2tldFJl
cXVlc3RIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0
X2hhbmRsZXIgPSByZXF1ZXN0X2hhbmRsZXIKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gX1N0
YW5kYWxvbmVDb25uZWN0aW9uKHJlcXVlc3RfaGFuZGxlcikKLSAgICAgICAgc2VsZi5fdXNlX3Rs
cyA9IHVzZV90bHMKLSAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gcmVxdWVzdF9oYW5kbGVyLmhl
YWRlcnMKLQotICAgIGRlZiBnZXRfdXJpKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWlt
aWMgcmVxdWVzdC51cmkuCi0KLSAgICAgICAgVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgcmF3IGRh
dGEgYXQgdGhlIFJlcXVlc3QtVVJJIHBhcnQgb2YgdGhlCi0gICAgICAgIFJlcXVlc3QtTGluZSwg
d2hpbGUgdGhlIHVyaSBtZXRob2Qgb24gdGhlIHJlcXVlc3Qgb2JqZWN0IG9mIG1vZF9weXRob24K
LSAgICAgICAgcmV0dXJucyB0aGUgcGF0aCBwb3J0aW9uIGFmdGVyIHBhcnNpbmcgdGhlIHJhdyBk
YXRhLiBUaGlzIGJlaGF2aW9yIGlzCi0gICAgICAgIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucGF0aAot
ICAgIHVyaSA9IHByb3BlcnR5KGdldF91cmkpCi0KLSAgICBkZWYgZ2V0X3VucGFyc2VkX3VyaShz
ZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3QudW5wYXJzZWRfdXJpLiIi
IgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucGF0aAotICAgIHVucGFy
c2VkX3VyaSA9IHByb3BlcnR5KGdldF91bnBhcnNlZF91cmkpCi0KLSAgICBkZWYgZ2V0X21ldGhv
ZChzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIHJlcXVlc3QubWV0aG9kLiIiIgot
Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuY29tbWFuZAotICAgIG1ldGhv
ZCA9IHByb3BlcnR5KGdldF9tZXRob2QpCi0KLSAgICBkZWYgZ2V0X3Byb3RvY29sKHNlbGYpOgot
ICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5wcm90b2NvbC4iIiIKLQotICAgICAg
ICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJlcXVlc3RfdmVyc2lvbgotICAgIHByb3Rv
Y29sID0gcHJvcGVydHkoZ2V0X3Byb3RvY29sKQotCi0gICAgZGVmIGlzX2h0dHBzKHNlbGYpOgot
ICAgICAgICAiIiJNaW1pYyByZXF1ZXN0LmlzX2h0dHBzKCkuIiIiCi0KLSAgICAgICAgcmV0dXJu
IHNlbGYuX3VzZV90bHMKLQotCi1kZWYgX2ltcG9ydF9zc2woKToKLSAgICBnbG9iYWwgc3NsCi0g
ICAgdHJ5OgotICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhj
ZXB0IEltcG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2ltcG9ydF9w
eW9wZW5zc2woKToKLSAgICBnbG9iYWwgT3BlblNTTAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0
IE9wZW5TU0wuU1NMCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBfU3RhbmRhbG9uZVNTTENvbm5lY3Rp
b24ob2JqZWN0KToKLSAgICAiIiJBIHdyYXBwZXIgY2xhc3MgZm9yIE9wZW5TU0wuU1NMLkNvbm5l
Y3Rpb24gdG8KLSAgICAtIHByb3ZpZGUgbWFrZWZpbGUgbWV0aG9kIHdoaWNoIGlzIG5vdCBzdXBw
b3J0ZWQgYnkgdGhlIGNsYXNzCi0gICAgLSB0d2VhayBzaHV0ZG93biBtZXRob2Qgc2luY2UgT3Bl
blNTTC5TU0wuQ29ubmVjdGlvbi5zaHV0ZG93biBkb2Vzbid0Ci0gICAgICBhY2NlcHQgdGhlICJo
b3ciIGFyZ3VtZW50LgotICAgIC0gY29udmVydCBTeXNDYWxsRXJyb3IgZXhjZXB0aW9ucyB0aGF0
IGl0cyByZWN2IG1ldGhvZCBtYXkgcmFpc2UgaW50byBhCi0gICAgICByZXR1cm4gdmFsdWUgb2Yg
JycsIG1lYW5pbmcgRU9GLiBXZSBjYW5ub3Qgb3ZlcndyaXRlIHRoZSByZWN2IG1ldGhvZCBvbgot
ICAgICAgc2VsZi5fY29ubmVjdGlvbiBzaW5jZSBpdCdzIGltbXV0YWJsZS4KLSAgICAiIiIKLQot
ICAgIF9PVkVSUklEREVOX0FUVFJJQlVURVMgPSBbJ19jb25uZWN0aW9uJywgJ21ha2VmaWxlJywg
J3NodXRkb3duJywgJ3JlY3YnXQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbm5lY3Rpb24p
OgotICAgICAgICBzZWxmLl9jb25uZWN0aW9uID0gY29ubmVjdGlvbgotCi0gICAgZGVmIF9fZ2V0
YXR0cmlidXRlX18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gX1N0YW5kYWxvbmVT
U0xDb25uZWN0aW9uLl9PVkVSUklEREVOX0FUVFJJQlVURVM6Ci0gICAgICAgICAgICByZXR1cm4g
b2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSkKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2Nvbm5lY3Rpb24uX19nZXRhdHRyaWJ1dGVfXyhuYW1lKQotCi0gICAgZGVmIF9fc2V0YXR0cl9f
KHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENv
bm5lY3Rpb24uX09WRVJSSURERU5fQVRUUklCVVRFUzoKLSAgICAgICAgICAgIHJldHVybiBvYmpl
Y3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpCi0gICAgICAgIHJldHVybiBzZWxmLl9j
b25uZWN0aW9uLl9fc2V0YXR0cl9fKG5hbWUsIHZhbHVlKQotCi0gICAgZGVmIG1ha2VmaWxlKHNl
bGYsIG1vZGU9J3InLCBidWZzaXplPS0xKToKLSAgICAgICAgcmV0dXJuIHNvY2tldC5fZmlsZW9i
amVjdChzZWxmLCBtb2RlLCBidWZzaXplKQotCi0gICAgZGVmIHNodXRkb3duKHNlbGYsIHVudXNl
ZF9ob3cpOgotICAgICAgICBzZWxmLl9jb25uZWN0aW9uLnNodXRkb3duKCkKLQotICAgIGRlZiBy
ZWN2KHNlbGYsIGJ1ZnNpemUsIGZsYWdzPTApOgotICAgICAgICBpZiBmbGFncyAhPSAwOgotICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm9uLXplcm8gZmxhZ3Mgbm90IGFsbG93ZWQnKQot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb25uZWN0aW9uLnJlY3Yo
YnVmc2l6ZSkKLSAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NMLlN5c0NhbGxFcnJvciBhcyBlOgot
ICAgICAgICAgICAgaWYgZS5hcmdzWzBdID09IC0xOgotICAgICAgICAgICAgICAgICMgU3VwcHJl
c3MgInVuZXhwZWN0ZWQgRU9GIiBleGNlcHRpb24uIFNlZSB0aGUgT3BlblNTTCBkb2N1bWVudAot
ICAgICAgICAgICAgICAgICMgZm9yIFNTTF9nZXRfZXJyb3IuCi0gICAgICAgICAgICAgICAgcmV0
dXJuICcnCi0gICAgICAgICAgICByYWlzZQotCi0KLWRlZiBfYWxpYXNfaGFuZGxlcnMoZGlzcGF0
Y2hlciwgd2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSk6Ci0gICAgIiIiU2V0IGFsaWFzZXMgc3Bl
Y2lmaWVkIGluIHdlYnNvY2tfaGFuZGxlcl9tYXBfZmlsZSBpbiBkaXNwYXRjaGVyLgotCi0gICAg
QXJnczoKLSAgICAgICAgZGlzcGF0Y2hlcjogZGlzcGF0Y2guRGlzcGF0Y2hlciBpbnN0YW5jZQot
ICAgICAgICB3ZWJzb2NrX2hhbmRsZXJfbWFwX2ZpbGU6IGFsaWFzIG1hcCBmaWxlCi0gICAgIiIi
Ci0KLSAgICBmcCA9IG9wZW4od2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSkKLSAgICB0cnk6Ci0g
ICAgICAgIGZvciBsaW5lIGluIGZwOgotICAgICAgICAgICAgaWYgbGluZVswXSA9PSAnIycgb3Ig
bGluZS5pc3NwYWNlKCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0g
PSByZS5tYXRjaChyJyhcUyspXHMrKFxTKyknLCBsaW5lKQotICAgICAgICAgICAgaWYgbm90IG06
Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4gbWFwIGZp
bGU6JyArIGxpbmUpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKAotICAg
ICAgICAgICAgICAgICAgICBtLmdyb3VwKDEpLCBtLmdyb3VwKDIpKQotICAgICAgICAgICAgZXhj
ZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgbG9n
Z2luZy5lcnJvcihzdHIoZSkpCi0gICAgZmluYWxseToKLSAgICAgICAgZnAuY2xvc2UoKQotCi0K
LWNsYXNzIFdlYlNvY2tldFNlcnZlcihzb2NrZXRzZXJ2ZXIuVGhyZWFkaW5nTWl4SW4sIEJhc2VI
VFRQU2VydmVyLkhUVFBTZXJ2ZXIpOgotICAgICIiIkhUVFBTZXJ2ZXIgc3BlY2lhbGl6ZWQgZm9y
IFdlYlNvY2tldC4iIiIKLQotICAgICMgT3ZlcnJpZGVzIHNvY2tldHNlcnZlci5UaHJlYWRpbmdN
aXhJbi5kYWVtb25fdGhyZWFkcwotICAgIGRhZW1vbl90aHJlYWRzID0gVHJ1ZQotICAgICMgT3Zl
cnJpZGVzIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIuYWxsb3dfcmV1c2VfYWRkcmVzcwotICAg
IGFsbG93X3JldXNlX2FkZHJlc3MgPSBUcnVlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0
aW9ucyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuX19pbml0
X18gdG8gc2V0IFNTTCBlbmFibGVkCi0gICAgICAgIHNvY2tldCBvYmplY3QgdG8gc2VsZi5zb2Nr
ZXQgYmVmb3JlIHNlcnZlcl9iaW5kIGFuZCBzZXJ2ZXJfYWN0aXZhdGUsCi0gICAgICAgIGlmIG5l
Y2Vzc2FyeS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBTaGFyZSBhIERpc3BhdGNoZXIgYW1v
bmcgcmVxdWVzdCBoYW5kbGVycyB0byBzYXZlIHRpbWUgZm9yCi0gICAgICAgICMgaW5zdGFudGlh
dGlvbi4gIERpc3BhdGNoZXIgY2FuIGJlIHNoYXJlZCBiZWNhdXNlIGl0IGlzIHRocmVhZC1zYWZl
LgotICAgICAgICBvcHRpb25zLmRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAotICAg
ICAgICAgICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzLAotICAgICAgICAgICAgb3B0aW9ucy5z
Y2FuX2RpciwKLSAgICAgICAgICAgIG9wdGlvbnMuYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290
X2RpcikKLSAgICAgICAgaWYgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlOgotICAg
ICAgICAgICAgX2FsaWFzX2hhbmRsZXJzKG9wdGlvbnMuZGlzcGF0Y2hlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpCi0gICAg
ICAgIHdhcm5pbmdzID0gb3B0aW9ucy5kaXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpCi0gICAg
ICAgIGlmIHdhcm5pbmdzOgotICAgICAgICAgICAgZm9yIHdhcm5pbmcgaW4gd2FybmluZ3M6Ci0g
ICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXYXJuaW5nIGluIHNvdXJjZSBsb2FkaW5n
OiAlcycgJSB3YXJuaW5nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYucmVxdWVzdF9xdWV1ZV9zaXplID0gb3B0aW9u
cy5yZXF1ZXN0X3F1ZXVlX3NpemUKLSAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93biA9IHRo
cmVhZGluZy5FdmVudCgpCi0gICAgICAgIHNlbGYuX193c19zZXJ2aW5nID0gRmFsc2UKLQotICAg
ICAgICBzb2NrZXRzZXJ2ZXIuQmFzZVNlcnZlci5fX2luaXRfXygKLSAgICAgICAgICAgIHNlbGYs
IChvcHRpb25zLnNlcnZlcl9ob3N0LCBvcHRpb25zLnBvcnQpLCBXZWJTb2NrZXRSZXF1ZXN0SGFu
ZGxlcikKLQotICAgICAgICAjIEV4cG9zZSB0aGUgb3B0aW9ucyBvYmplY3QgdG8gYWxsb3cgaGFu
ZGxlciBvYmplY3RzIGFjY2VzcyBpdC4gV2UgbmFtZQotICAgICAgICAjIGl0IHdpdGggd2Vic29j
a2V0XyBwcmVmaXggdG8gYXZvaWQgY29uZmxpY3QuCi0gICAgICAgIHNlbGYud2Vic29ja2V0X3Nl
cnZlcl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2NyZWF0ZV9zb2NrZXRzKCkK
LSAgICAgICAgc2VsZi5zZXJ2ZXJfYmluZCgpCi0gICAgICAgIHNlbGYuc2VydmVyX2FjdGl2YXRl
KCkKLQotICAgIGRlZiBfY3JlYXRlX3NvY2tldHMoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVy
X25hbWUsIHNlbGYuc2VydmVyX3BvcnQgPSBzZWxmLnNlcnZlcl9hZGRyZXNzCi0gICAgICAgIHNl
bGYuX3NvY2tldHMgPSBbXQotICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJfbmFtZToKLSAgICAg
ICAgICAgICMgT24gcGxhdGZvcm1zIHRoYXQgZG9lc24ndCBzdXBwb3J0IElQdjYsIHRoZSBmaXJz
dCBiaW5kIGZhaWxzLgotICAgICAgICAgICAgIyBPbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0cyBJ
UHY2Ci0gICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMgYm90aCBJUHY0IGFuZCBJUHY2IG9uIGNh
bGwgd2l0aCBBRl9JTkVUNiwgdGhlCi0gICAgICAgICAgICAjICAgZmlyc3QgYmluZCBzdWNjZWVk
cyBhbmQgdGhlIHNlY29uZCBmYWlscyAod2UnbGwgc2VlICdBZGRyZXNzCi0gICAgICAgICAgICAj
ICAgYWxyZWFkeSBpbiB1c2UnIGVycm9yKS4KLSAgICAgICAgICAgICMgLSBJZiBpdCBiaW5kcyBv
bmx5IElQdjYgb24gY2FsbCB3aXRoIEFGX0lORVQ2LCBib3RoIGNhbGwgYXJlCi0gICAgICAgICAg
ICAjICAgZXhwZWN0ZWQgdG8gc3VjY2VlZCB0byBsaXN0ZW4gYm90aCBwcm90b2NvbC4KLSAgICAg
ICAgICAgIGFkZHJpbmZvX2FycmF5ID0gWwotICAgICAgICAgICAgICAgIChzb2NrZXQuQUZfSU5F
VDYsIHNvY2tldC5TT0NLX1NUUkVBTSwgJycsICcnLCAnJyksCi0gICAgICAgICAgICAgICAgKHNv
Y2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0sICcnLCAnJywgJycpXQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgYWRkcmluZm9fYXJyYXkgPSBzb2NrZXQuZ2V0YWRkcmluZm8oc2Vs
Zi5zZXJ2ZXJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzb2NrZXQuQUZfVU5TUEVDLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LlNPQ0tfU1RSRUFNLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LklQUFJPVE9fVENQ
KQotICAgICAgICBmb3IgYWRkcmluZm8gaW4gYWRkcmluZm9fYXJyYXk6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnQ3JlYXRlIHNvY2tldCBvbjogJXInLCBhZGRyaW5mbykKLSAgICAg
ICAgICAgIGZhbWlseSwgc29ja3R5cGUsIHByb3RvLCBjYW5vbm5hbWUsIHNvY2thZGRyID0gYWRk
cmluZm8KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrZXRfID0gc29ja2V0
LnNvY2tldChmYW1pbHksIHNvY2t0eXBlKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6
ICVyJywgZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgc2VydmVyX29w
dGlvbnMgPSBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotICAgICAgICAgICAgaWYgc2Vy
dmVyX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgICAgICAjIEZvciB0aGUgY2FzZSBvZiBf
SEFTX09QRU5fU1NMLCB3ZSBkbyB3cmFwcGVyIHNldHVwIGFmdGVyCi0gICAgICAgICAgICAgICAg
IyBhY2NlcHQuCi0gICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9
PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VydmVy
X29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Vy
dmVyX29wdGlvbnMudGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsOgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX09QVElPTkFMCi0gICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0
XyA9IHNzbC5DRVJUX1JFUVVJUkVECi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjbGllbnRfY2VydF8gPSBzc2wuQ0VSVF9OT05FCi0gICAgICAgICAg
ICAgICAgICAgIHNvY2tldF8gPSBzc2wud3JhcF9zb2NrZXQoc29ja2V0XywKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGtleWZpbGU9c2VydmVyX29wdGlvbnMucHJpdmF0ZV9rZXksCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjZXJ0ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNzbF92ZXJzaW9uPXNzbC5QUk9UT0NPTF9TU0x2MjMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjYV9jZXJ0cz1zZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50
X2NhLAotICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9yZXFzPWNsaWVudF9jZXJ0XywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0PUZhbHNlKQotICAg
ICAgICAgICAgc2VsZi5fc29ja2V0cy5hcHBlbmQoKHNvY2tldF8sIGFkZHJpbmZvKSkKLQotICAg
IGRlZiBzZXJ2ZXJfYmluZChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVy
LlRDUFNlcnZlci5zZXJ2ZXJfYmluZCB0byBlbmFibGUgbXVsdGlwbGUKLSAgICAgICAgc29ja2V0
cyBiaW5kLgotICAgICAgICAiIiIKLQotICAgICAgICBmYWlsZWRfc29ja2V0cyA9IFtdCi0KLSAg
ICAgICAgZm9yIHNvY2tldGluZm8gaW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tl
dF8sIGFkZHJpbmZvID0gc29ja2V0aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J0JpbmQgb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICBpZiBzZWxmLmFsbG93X3JldXNl
X2FkZHJlc3M6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5zZXRzb2Nrb3B0KHNvY2tldC5TT0xf
U09DS0VULCBzb2NrZXQuU09fUkVVU0VBRERSLCAxKQotICAgICAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgICAgIHNvY2tldF8uYmluZChzZWxmLnNlcnZlcl9hZGRyZXNzKQotICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAgICAgICAgICAgICBzb2NrZXRfLmNsb3Nl
KCkKLSAgICAgICAgICAgICAgICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0aW5mbykKLSAg
ICAgICAgICAgIGlmIHNlbGYuc2VydmVyX2FkZHJlc3NbMV0gPT0gMDoKLSAgICAgICAgICAgICAg
ICAjIFRoZSBvcGVyYXRpbmcgc3lzdGVtIGFzc2lnbnMgdGhlIGFjdHVhbCBwb3J0IG51bWJlciBm
b3IgcG9ydAotICAgICAgICAgICAgICAgICMgbnVtYmVyIDAuIFRoaXMgY2FzZSwgdGhlIHNlY29u
ZCBhbmQgbGF0ZXIgc29ja2V0cyBzaG91bGQgdXNlCi0gICAgICAgICAgICAgICAgIyB0aGUgc2Ft
ZSBwb3J0IG51bWJlci4gQWxzbyBzZWxmLnNlcnZlcl9wb3J0IGlzIHJld3JpdHRlbgotICAgICAg
ICAgICAgICAgICMgYmVjYXVzZSBpdCBpcyBleHBvcnRlZCwgYW5kIHdpbGwgYmUgdXNlZCBieSBl
eHRlcm5hbCBjb2RlLgotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2FkZHJlc3MgPSAoCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX25hbWUsIHNvY2tldF8uZ2V0c29ja25hbWUo
KVsxXSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRk
cmVzc1sxXQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdQb3J0ICVyIGlzIGFz
c2lnbmVkJywgc2VsZi5zZXJ2ZXJfcG9ydCkKLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBm
YWlsZWRfc29ja2V0czoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3ZlKHNvY2tldGlu
Zm8pCi0KLSAgICBkZWYgc2VydmVyX2FjdGl2YXRlKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlk
ZSBzb2NrZXRzZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9hY3RpdmF0ZSB0byBlbmFibGUgbXVsdGlw
bGUKLSAgICAgICAgc29ja2V0cyBsaXN0ZW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIGZhaWxl
ZF9zb2NrZXRzID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRz
OgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnTGlzdGVuIG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8ubGlzdGVuKHNlbGYucmVxdWVzdF9xdWV1
ZV9zaXplKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAgICAg
ICAgICAgICBzb2NrZXRfLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBmYWlsZWRfc29ja2V0cy5h
cHBlbmQoc29ja2V0aW5mbykKLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBmYWlsZWRfc29j
a2V0czoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3ZlKHNvY2tldGluZm8pCi0KLSAg
ICAgICAgaWYgbGVuKHNlbGYuX3NvY2tldHMpID09IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuY3JpdGljYWwoCi0gICAgICAgICAgICAgICAgJ05vIHNvY2tldHMgYWN0aXZhdGVkLiBVc2Ug
aW5mbyBsb2cgbGV2ZWwgdG8gc2VlIHRoZSByZWFzb24uJykKLQotICAgIGRlZiBzZXJ2ZXJfY2xv
c2Uoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuc2Vy
dmVyX2Nsb3NlIHRvIGVuYWJsZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGNsb3NlLgotICAg
ICAgICAiIiIKLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgotICAg
ICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnQ2xvc2Ugb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICBzb2Nr
ZXRfLmNsb3NlKCkKLQotICAgIGRlZiBmaWxlbm8oc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRl
IHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuZmlsZW5vLiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5jcml0aWNhbCgnTm90IHN1cHBvcnRlZDogZmlsZW5vJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
X3NvY2tldHNbMF1bMF0uZmlsZW5vKCkKLQotICAgIGRlZiBoYW5kbGVfZXJyb3Ioc2VsZiwgcmVx
dWVzdCwgY2xpZW50X2FkZHJlc3MpOgotICAgICAgICAiIiJPdmVycmlkZSBzb2NrZXRzZXJ2ZXIu
aGFuZGxlX2Vycm9yLiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5lcnJvcigKLSAgICAgICAg
ICAgICdFeGNlcHRpb24gaW4gcHJvY2Vzc2luZyByZXF1ZXN0IGZyb206ICVyXG4lcycsCi0gICAg
ICAgICAgICBjbGllbnRfYWRkcmVzcywKLSAgICAgICAgICAgIHV0aWwuZ2V0X3N0YWNrX3RyYWNl
KCkpCi0gICAgICAgICMgTm90ZTogY2xpZW50X2FkZHJlc3MgaXMgYSB0dXBsZS4KLQotICAgIGRl
ZiBnZXRfcmVxdWVzdChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgVENQU2VydmVyLmdldF9y
ZXF1ZXN0IHRvIHdyYXAgT3BlblNTTC5TU0wuQ29ubmVjdGlvbgotICAgICAgICBvYmplY3Qgd2l0
aCBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24gdG8gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2QuIFdl
Ci0gICAgICAgIGNhbm5vdCBzdWJzdGl0dXRlIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24ubWFrZWZp
bGUgc2luY2UgaXQncyByZWFkb25seQotICAgICAgICBhdHRyaWJ1dGUuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIGFjY2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJlc3MgPSBzZWxmLnNvY2tldC5h
Y2NlcHQoKQotCi0gICAgICAgIHNlcnZlcl9vcHRpb25zID0gc2VsZi53ZWJzb2NrZXRfc2VydmVy
X29wdGlvbnMKLSAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAg
IGlmIHNlcnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9TVEFOREFSRF9NT0RVTEU6
Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2Nr
ZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yIGFz
IGU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXInLCBlKQotICAg
ICAgICAgICAgICAgICAgICByYWlzZQotCi0gICAgICAgICAgICAgICAgIyBQcmludCBjaXBoZXIg
aW4gdXNlLiBIYW5kc2hha2UgaXMgZG9uZSBvbiBhY2NlcHQuCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDaXBoZXI6ICVzJywgYWNjZXB0ZWRfc29ja2V0LmNpcGhlcigpKQot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IGNlcnQ6ICVyJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmdldHBlZXJj
ZXJ0KCkpCi0gICAgICAgICAgICBlbGlmIHNlcnZlcl9vcHRpb25zLnRsc19tb2R1bGUgPT0gX1RM
U19CWV9QWU9QRU5TU0w6Ci0gICAgICAgICAgICAgICAgIyBXZSBjYW5ub3QgcHJpbnQgdGhlIGNp
cGhlciBpbiB1c2UuIHB5T3BlblNTTCBkb2Vzbid0IHByb3ZpZGUKLSAgICAgICAgICAgICAgICAj
IGFueSBtZXRob2QgdG8gZmV0Y2ggdGhhdC4KLQotICAgICAgICAgICAgICAgIGN0eCA9IE9wZW5T
U0wuU1NMLkNvbnRleHQoT3BlblNTTC5TU0wuU1NMdjIzX01FVEhPRCkKLSAgICAgICAgICAgICAg
ICBjdHgudXNlX3ByaXZhdGVrZXlfZmlsZShzZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tleSkKLSAg
ICAgICAgICAgICAgICBjdHgudXNlX2NlcnRpZmljYXRlX2ZpbGUoc2VydmVyX29wdGlvbnMuY2Vy
dGlmaWNhdGUpCi0KLSAgICAgICAgICAgICAgICBkZWYgZGVmYXVsdF9jYWxsYmFjayhjb25uLCBj
ZXJ0LCBlcnJudW0sIGVycmRlcHRoLCBvayk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBv
ayA9PSAxCi0KLSAgICAgICAgICAgICAgICAjIFNlZSB0aGUgT3BlblNTTCBkb2N1bWVudCBmb3Ig
U1NMX0NUWF9zZXRfdmVyaWZ5LgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnRs
c19jbGllbnRfYXV0aDoKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X21vZGUgPSBPcGVuU1NM
LlNTTC5WRVJJRllfUEVFUgotICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc2VydmVyX29wdGlv
bnMudGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsOgotICAgICAgICAgICAgICAgICAgICAgICAgdmVy
aWZ5X21vZGUgfD0gT3BlblNTTC5TU0wuVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUCi0gICAg
ICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVyaWZ5KHZlcmlmeV9tb2RlLCBkZWZhdWx0X2NhbGxi
YWNrKQotICAgICAgICAgICAgICAgICAgICBjdHgubG9hZF92ZXJpZnlfbG9jYXRpb25zKHNlcnZl
cl9vcHRpb25zLnRsc19jbGllbnRfY2EsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTm9uZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBjdHguc2V0X3ZlcmlmeShPcGVuU1NMLlNTTC5WRVJJRllfTk9ORSwgZGVmYXVsdF9j
YWxsYmFjaykKLQotICAgICAgICAgICAgICAgIGFjY2VwdGVkX3NvY2tldCA9IE9wZW5TU0wuU1NM
LkNvbm5lY3Rpb24oY3R4LCBhY2NlcHRlZF9zb2NrZXQpCi0gICAgICAgICAgICAgICAgYWNjZXB0
ZWRfc29ja2V0LnNldF9hY2NlcHRfc3RhdGUoKQotCi0gICAgICAgICAgICAgICAgIyBDb252ZXJ0
IFNTTCByZWxhdGVkIGVycm9yIGludG8gc29ja2V0LmVycm9yIHNvIHRoYXQKLSAgICAgICAgICAg
ICAgICAjIFNvY2tldFNlcnZlciBpZ25vcmVzIHRoZW0gYW5kIGtlZXBzIHJ1bm5pbmcuCi0gICAg
ICAgICAgICAgICAgIwotICAgICAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENvbnZlcnQg
YWxsIGtpbmRzIG9mIGVycm9ycy4KLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgICAgIGFjY2VwdGVkX3NvY2tldC5kb19oYW5kc2hha2UoKQotICAgICAgICAgICAgICAgIGV4
Y2VwdCBPcGVuU1NMLlNTTC5FcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICAjIFNldCBl
cnJubyBwYXJ0IHRvIDEgKFNTTF9FUlJPUl9TU0wpIGxpa2UgdGhlIHNzbCBtb2R1bGUKLSAgICAg
ICAgICAgICAgICAgICAgIyBkb2VzLgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yKDEs
ICclcicgJSBlKQotICAgICAgICAgICAgICAgIGNlcnQgPSBhY2NlcHRlZF9zb2NrZXQuZ2V0X3Bl
ZXJfY2VydGlmaWNhdGUoKQotICAgICAgICAgICAgICAgIGlmIGNlcnQgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IGNlcnQgc3ViamVj
dDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC5nZXRf
c3ViamVjdCgpLmdldF9jb21wb25lbnRzKCkpCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29j
a2V0ID0gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKGFjY2VwdGVkX3NvY2tldCkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gVExTIHN1cHBv
cnQgbW9kdWxlIGlzIGF2YWlsYWJsZScpCi0KLSAgICAgICAgcmV0dXJuIGFjY2VwdGVkX3NvY2tl
dCwgY2xpZW50X2FkZHJlc3MKLQotICAgIGRlZiBzZXJ2ZV9mb3JldmVyKHNlbGYsIHBvbGxfaW50
ZXJ2YWw9MC41KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgc29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIu
c2VydmVfZm9yZXZlci4iIiIKLQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IFRydWUKLSAg
ICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi5jbGVhcigpCi0gICAgICAgIGhhbmRsZV9yZXF1
ZXN0ID0gc2VsZi5oYW5kbGVfcmVxdWVzdAotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfaGFu
ZGxlX3JlcXVlc3Rfbm9ibG9jaycpOgotICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxm
Ll9oYW5kbGVfcmVxdWVzdF9ub2Jsb2NrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIud2FybmluZygnRmFsbGJhY2sgdG8gYmxvY2tpbmcgcmVxdWVzdCBoYW5kbGVyJykK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgc2VsZi5fX3dzX3NlcnZpbmc6Ci0gICAg
ICAgICAgICAgICAgciwgdywgZSA9IHNlbGVjdC5zZWxlY3QoCi0gICAgICAgICAgICAgICAgICAg
IFtzb2NrZXRfWzBdIGZvciBzb2NrZXRfIGluIHNlbGYuX3NvY2tldHNdLAotICAgICAgICAgICAg
ICAgICAgICBbXSwgW10sIHBvbGxfaW50ZXJ2YWwpCi0gICAgICAgICAgICAgICAgZm9yIHNvY2tl
dF8gaW4gcjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBzb2NrZXRfCi0gICAg
ICAgICAgICAgICAgICAgIGhhbmRsZV9yZXF1ZXN0KCkKLSAgICAgICAgICAgICAgICBzZWxmLnNv
Y2tldCA9IE5vbmUKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX193c19pc19z
aHV0X2Rvd24uc2V0KCkKLQotICAgIGRlZiBzaHV0ZG93bihzZWxmKToKLSAgICAgICAgIiIiT3Zl
cnJpZGUgc29ja2V0c2VydmVyLkJhc2VTZXJ2ZXIuc2h1dGRvd24uIiIiCi0KLSAgICAgICAgc2Vs
Zi5fX3dzX3NlcnZpbmcgPSBGYWxzZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLndh
aXQoKQotCi0KLWNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXJ2ZXIuQ0dJ
SFRUUFJlcXVlc3RIYW5kbGVyKToKLSAgICAiIiJDR0lIVFRQUmVxdWVzdEhhbmRsZXIgc3BlY2lh
bGl6ZWQgZm9yIFdlYlNvY2tldC4iIiIKLQotICAgICMgVXNlIGh0dHBfY2xpZW50LkhUVFBNZXNz
YWdlIGluc3RlYWQgb2YgbWltZXRvb2xzLk1lc3NhZ2UuCi0gICAgTWVzc2FnZUNsYXNzID0gaHR0
cF9jbGllbnQuSFRUUE1lc3NhZ2UKLQotICAgIHByb3RvY29sX3ZlcnNpb24gPSAiSFRUUC8xLjEi
Ci0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIHNvY2tldHNlcnZl
ci5TdHJlYW1SZXF1ZXN0SGFuZGxlci5zZXR1cCB0byB3cmFwIHJmaWxlCi0gICAgICAgIHdpdGgg
TWVtb3JpemluZ0ZpbGUuCi0KLSAgICAgICAgVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYnkg
QmFzZVJlcXVlc3RIYW5kbGVyJ3MgY29uc3RydWN0b3IKLSAgICAgICAgYmVmb3JlIGNhbGxpbmcg
QmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGUuCi0gICAgICAgIEJhc2VIVFRQUmVxdWVzdEhh
bmRsZXIuaGFuZGxlIHdpbGwgY2FsbAotICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhh
bmRsZV9vbmVfcmVxdWVzdCBhbmQgaXQgd2lsbCBjYWxsCi0gICAgICAgIFdlYlNvY2tldFJlcXVl
c3RIYW5kbGVyLnBhcnNlX3JlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgQ2FsbCBz
dXBlcmNsYXNzJ3Mgc2V0dXAgdG8gcHJlcGFyZSByZmlsZSwgd2ZpbGUsIGV0Yy4gU2VlIHNldHVw
Ci0gICAgICAgICMgZGVmaW5pdGlvbiBvbiB0aGUgcm9vdCBjbGFzcyBzb2NrZXRzZXJ2ZXIuU3Ry
ZWFtUmVxdWVzdEhhbmRsZXIgdG8KLSAgICAgICAgIyB1bmRlcnN0YW5kIHdoYXQgdGhpcyBkb2Vz
LgotICAgICAgICBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5zZXR1cChzZWxm
KQotCi0gICAgICAgIHNlbGYucmZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZSgK
LSAgICAgICAgICAgIHNlbGYucmZpbGUsCi0gICAgICAgICAgICBtYXhfbWVtb3JpemVkX2xpbmVz
PV9NQVhfTUVNT1JJWkVEX0xJTkVTKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IGNsaWVudF9hZGRyZXNzLCBzZXJ2ZXIpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gc2VydmVyLndl
YnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotCi0gICAgICAgICMgT3ZlcnJpZGVzIENHSUhUVFBTZXJ2
ZXJSZXF1ZXN0SGFuZGxlci5jZ2lfZGlyZWN0b3JpZXMuCi0gICAgICAgIHNlbGYuY2dpX2RpcmVj
dG9yaWVzID0gc2VsZi5fb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMKLSAgICAgICAgIyBSZXBsYWNl
IENHSUhUVFBSZXF1ZXN0SGFuZGxlci5pc19leGVjdXRhYmxlIG1ldGhvZC4KLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuaXNfZXhlY3V0YWJsZSA9IHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRo
b2QKLQotICAgICAgICAjIFRoaXMgYWN0dWFsbHkgY2FsbHMgQmFzZVJlcXVlc3RIYW5kbGVyLl9f
aW5pdF9fLgotICAgICAgICBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5fX2lu
aXRfXygKLSAgICAgICAgICAgIHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzLCBzZXJ2ZXIp
Ci0KLSAgICBkZWYgcGFyc2VfcmVxdWVzdChzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgQmFz
ZUhUVFBTZXJ2ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgotCi0gICAg
ICAgIFJldHVybiBUcnVlIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgZm9yIEhUVFAoUyksIEZhbHNl
IG90aGVyd2lzZS4KLQotICAgICAgICBTZWUgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVf
b25lX3JlcXVlc3QgbWV0aG9kIHdoaWNoIGNhbGxzCi0gICAgICAgIHRoaXMgbWV0aG9kIHRvIHVu
ZGVyc3RhbmQgaG93IHRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBoYW5kbGVkLgotICAgICAgICAi
IiIKLQotICAgICAgICAjIFdlIGhvb2sgcGFyc2VfcmVxdWVzdCBtZXRob2QsIGJ1dCBhbHNvIGNh
bGwgdGhlIG9yaWdpbmFsCi0gICAgICAgICMgQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3Jl
cXVlc3Qgc2luY2Ugd2hlbiB3ZSByZXR1cm4gRmFsc2UsCi0gICAgICAgICMgQ0dJSFRUUFJlcXVl
c3RIYW5kbGVyLmhhbmRsZV9vbmVfcmVxdWVzdCBjb250aW51ZXMgcHJvY2Vzc2luZyBhbmQKLSAg
ICAgICAgIyBpdCBuZWVkcyB2YXJpYWJsZXMgc2V0IGJ5IENHSUhUVFBSZXF1ZXN0SGFuZGxlci5w
YXJzZV9yZXF1ZXN0LgotICAgICAgICAjCi0gICAgICAgICMgVmFyaWFibGVzIHNldCBieSB0aGlz
IG1ldGhvZCB3aWxsIGJlIGFsc28gdXNlZCBieSBXZWJTb2NrZXQgcmVxdWVzdAotICAgICAgICAj
IGhhbmRsaW5nIChzZWxmLnBhdGgsIHNlbGYuY29tbWFuZCwgc2VsZi5yZXF1ZXN0bGluZSwgZXRj
LiBTZWUgYWxzbwotICAgICAgICAjIGhvdyBfU3RhbmRhbG9uZVJlcXVlc3QncyBtZW1iZXJzIGFy
ZSBpbXBsZW1lbnRlZCB1c2luZyB0aGVzZQotICAgICAgICAjIGF0dHJpYnV0ZXMpLgotICAgICAg
ICBpZiBub3QgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVz
dChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIHNlbGYuY29t
bWFuZCA9PSAiQ09OTkVDVCI6Ci0gICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwLCAi
Q29ubmVjdGVkIikKLSAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbm5lY3Rpb24iLCAi
a2VlcC1hbGl2ZSIpCi0gICAgICAgICAgICBzZWxmLmVuZF9oZWFkZXJzKCkKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX2Jhc2ljX2F1dGg6
Ci0gICAgICAgICAgICBhdXRoID0gc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQXV0aG9yaXphdGlv
bicpCi0gICAgICAgICAgICBpZiBhdXRoICE9IHNlbGYuX29wdGlvbnMuYmFzaWNfYXV0aF9jcmVk
ZW50aWFsOgotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSg0MDEpCi0gICAgICAg
ICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcignV1dXLUF1dGhlbnRpY2F0ZScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnQmFzaWMgcmVhbG09IlB5d2Vic29ja2V0IicpCi0gICAg
ICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ1JlcXVlc3QgYmFzaWMgYXV0aGVudGljYXRpb24nKQotICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgICAgICMgU3BlY2lhbCBwYXRocyBmb3IgWE1MSHR0cFJlcXVl
c3QgYmVuY2htYXJrCi0gICAgICAgIHhocl9iZW5jaG1hcmtfaGVscGVyX3ByZWZpeCA9ICcvMDcz
YmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnCi0gICAgICAgIHBhcnNlZF9wYXRoID0gdXJs
bGliLnBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkKLSAgICAgICAgaWYgcGFyc2VkX3BhdGgucGF0
aCA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsgJ19zZW5kJyk6Ci0gICAgICAgICAg
ICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAotICAgICAgICAg
ICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKLSAgICAgICAgICAg
IHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19zZW5kKCkKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQotICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9w
cmVmaXggKyAnX3JlY2VpdmUnKToKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9
IFhIUkJlbmNobWFya0hhbmRsZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxm
LnJmaWxlLCBzZWxmLndmaWxlKQotICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRv
X3JlY2VpdmVfYW5kX3BhcnNlKCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBp
ZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX3JlY2VpdmVfZ2V0bm9jYWNoZScpOgotICAg
ICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVyID0gWEhSQmVuY2htYXJrSGFuZGxlcigKLSAg
ICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNlbGYucmZpbGUsIHNlbGYud2ZpbGUpCi0gICAg
ICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIuZG9fcmVjZWl2ZSgKLSAgICAgICAgICAgICAg
ICBpbnQocGFyc2VkX3BhdGgucXVlcnkpLCBGYWxzZSwgRmFsc2UpCi0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKLSAgICAgICAgaWYgcGFyc2VkX3BhdGgucGF0aCA9PSAoeGhyX2JlbmNobWFya19o
ZWxwZXJfcHJlZml4ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19yZWNlaXZl
X2dldGNhY2hlJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5j
aG1hcmtIYW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwg
c2VsZi53ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19yZWNlaXZl
KAotICAgICAgICAgICAgICAgIGludChwYXJzZWRfcGF0aC5xdWVyeSksIEZhbHNlLCBUcnVlKQot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2Ug
PSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaShzZWxmLnBhdGgpCi0gICAgICAgIGlmIHJlc291
cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52YWxpZCBVUkk6
ICVyJywgc2VsZi5wYXRoKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNr
IHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAg
ICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYuc2VydmVyLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9u
cwotICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdmFsaWRhdGlvbl9o
b3N0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9ob3N0Ci0gICAgICAgICAgICBpZiB2YWxp
ZGF0aW9uX2hvc3QgaXMgbm90IE5vbmUgYW5kIGhvc3QgIT0gdmFsaWRhdGlvbl9ob3N0OgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIGhvc3Q6ICVyIChleHBlY3Rl
ZDogJXIpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25faG9zdCkKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
JykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBpZiBwb3J0IGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0ID0gc2VydmVyX29wdGlvbnMudmFsaWRh
dGlvbl9wb3J0Ci0gICAgICAgICAgICBpZiB2YWxpZGF0aW9uX3BvcnQgaXMgbm90IE5vbmUgYW5k
IHBvcnQgIT0gdmFsaWRhdGlvbl9wb3J0OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdJbnZhbGlkIHBvcnQ6ICVyIChleHBlY3RlZDogJXIpJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhbGlkYXRpb25fcG9ydCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFs
bGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQotICAgICAgICBzZWxmLnBhdGggPSByZXNvdXJjZQotCi0gICAgICAgIHJlcXVlc3QgPSBf
U3RhbmRhbG9uZVJlcXVlc3Qoc2VsZiwgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9y
IHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNoCi0gICAgICAgICAgICAjIHdlIGRvbid0IGhhdmUgcmVx
dWVzdCBoYW5kbGVycy4KLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmRpc3BhdGNo
ZXIuZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZi5wYXRoKToKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnTm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdGgpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRGlzcGF0Y2ggZmFpbGVk
IGZvciBlcnJvcjogJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKGUuc3RhdHVz
KQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgIyBJZiBhbnkgRXhjZXB0aW9u
cyB3aXRob3V0IGV4Y2VwdCBjbGF1c2Ugc2V0dXAgKGluY2x1ZGluZwotICAgICAgICAjIERpc3Bh
dGNoRXhjZXB0aW9uKSBpcyByYWlzZWQgYmVsb3cgdGhpcyBwb2ludCwgaXQgd2lsbCBiZSBjYXVn
aHQKLSAgICAgICAgIyBhbmQgbG9nZ2VkIGJ5IFdlYlNvY2tldFNlcnZlci4KLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGFuZHNoYWtlLmRvX2hhbmRz
aGFrZSgKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICBhbGxvd0RyYWZ0
NzU9c2VsZi5fb3B0aW9ucy5hbGxvd19kcmFmdDc1LAotICAgICAgICAgICAgICAgICAgICBzdHJp
Y3Q9c2VsZi5fb3B0aW9ucy5zdHJpY3QpCi0gICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZl
cnNpb25FeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygn
SGFuZHNoYWtlIGZhaWxlZCBmb3IgdmVyc2lvbiBlcnJvcjogJXMnLCBlKQotICAgICAgICAgICAg
ICAgIHNlbGYuc2VuZF9yZXNwb25zZShjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0g
ICAgICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcihjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJT
SU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3VwcG9ydGVk
X3ZlcnNpb25zKQotICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hh
a2VFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mocykg
ZmFpbGVkLgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFp
bGVkIGZvciBlcnJvcjogJXMnLCBlKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJvcihl
LnN0YXR1cykKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAgICAgcmVx
dWVzdC5fZGlzcGF0Y2hlciA9IHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlcgotICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAg
ZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnQWJvcnRlZDogJXMnLCBlKQotICAgICAgICByZXR1cm4gRmFs
c2UKLQotICAgIGRlZiBsb2dfcmVxdWVzdChzZWxmLCBjb2RlPSctJywgc2l6ZT0nLScpOgotICAg
ICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5sb2dfcmVxdWVzdC4iIiIKLQotICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnIiVzIiAlcyAlcycsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYucmVxdWVzdGxpbmUsIHN0cihjb2RlKSwgc3RyKHNpemUpKQotCi0gICAgZGVmIGxv
Z19lcnJvcihzZWxmLCAqYXJncyk6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVy
LmxvZ19lcnJvci4iIiIKLQotICAgICAgICAjIERlc3BpdGUgdGhlIG5hbWUsIHRoaXMgbWV0aG9k
IGlzIGZvciB3YXJuaW5ncyB0aGFuIGZvciBlcnJvcnMuCi0gICAgICAgICMgRm9yIGV4YW1wbGUs
IEhUVFAgc3RhdHVzIGNvZGUgaXMgbG9nZ2VkIGJ5IHRoaXMgbWV0aG9kLgotICAgICAgICBzZWxm
Ll9sb2dnZXIud2FybmluZygnJXMgLSAlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuYWRkcmVzc19zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn
c1swXSAlIGFyZ3NbMTpdKQotCi0gICAgZGVmIGlzX2NnaShzZWxmKToKLSAgICAgICAgIiIiVGVz
dCB3aGV0aGVyIHNlbGYucGF0aCBjb3JyZXNwb25kcyB0byBhIENHSSBzY3JpcHQuCi0KLSAgICAg
ICAgQWRkIGV4dHJhIGNoZWNrIHRoYXQgc2VsZi5wYXRoIGRvZXNuJ3QgY29udGFpbnMgLi4KLSAg
ICAgICAgQWxzbyBjaGVjayBpZiB0aGUgZmlsZSBpcyBhIGV4ZWN1dGFibGUgZmlsZSBvciBub3Qu
Ci0gICAgICAgIElmIHRoZSBmaWxlIGlzIG5vdCBleGVjdXRhYmxlLCBpdCBpcyBoYW5kbGVkIGFz
IHN0YXRpYyBmaWxlIG9yIGRpcgotICAgICAgICByYXRoZXIgdGhhbiBhIENHSSBzY3JpcHQuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIGlmIENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5k
bGVyLmlzX2NnaShzZWxmKToKLSAgICAgICAgICAgIGlmICcuLicgaW4gc2VsZi5wYXRoOgotICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgIyBzdHJpcCBxdWVyeSBwYXJh
bWV0ZXIgZnJvbSByZXF1ZXN0IHBhdGgKLSAgICAgICAgICAgIHJlc291cmNlX25hbWUgPSBzZWxm
LnBhdGguc3BsaXQoJz8nLCAyKVswXQotICAgICAgICAgICAgIyBjb252ZXJ0IHJlc291cmNlX25h
bWUgaW50byByZWFsIHBhdGggbmFtZSBpbiBmaWxlc3lzdGVtLgotICAgICAgICAgICAgc2NyaXB0
ZmlsZSA9IHNlbGYudHJhbnNsYXRlX3BhdGgocmVzb3VyY2VfbmFtZSkKLSAgICAgICAgICAgIGlm
IG5vdCBvcy5wYXRoLmlzZmlsZShzY3JpcHRmaWxlKToKLSAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmlzX2V4ZWN1dGFibGUoc2NyaXB0ZmlsZSk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQot
ICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2dldF9sb2dnZXJfZnJvbV9jbGFzcyhjKToK
LSAgICByZXR1cm4gbG9nZ2luZy5nZXRMb2dnZXIoJyVzLiVzJyAlIChjLl9fbW9kdWxlX18sIGMu
X19uYW1lX18pKQotCi0KLWRlZiBfY29uZmlndXJlX2xvZ2dpbmcob3B0aW9ucyk6Ci0gICAgbG9n
Z2luZy5hZGRMZXZlbE5hbWUoY29tbW9uLkxPR0xFVkVMX0ZJTkUsICdGSU5FJykKLQotICAgIGxv
Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKLSAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5n
ZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0gICAgaWYgb3B0aW9ucy5s
b2dfZmlsZToKLSAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcuaGFuZGxlcnMuUm90YXRpbmdGaWxl
SGFuZGxlcigKLSAgICAgICAgICAgICAgICBvcHRpb25zLmxvZ19maWxlLCAnYScsIG9wdGlvbnMu
bG9nX21heCwgb3B0aW9ucy5sb2dfY291bnQpCi0gICAgZWxzZToKLSAgICAgICAgaGFuZGxlciA9
IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpCi0gICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0
ZXIoCi0gICAgICAgICAgICAnWyUoYXNjdGltZSlzXSBbJShsZXZlbG5hbWUpc10gJShuYW1lKXM6
ICUobWVzc2FnZSlzJykKLSAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCi0gICAg
bG9nZ2VyLmFkZEhhbmRsZXIoaGFuZGxlcikKLQotICAgIGRlZmxhdGVfbG9nX2xldmVsX25hbWUg
PSBsb2dnaW5nLmdldExldmVsTmFtZSgKLSAgICAgICAgb3B0aW9ucy5kZWZsYXRlX2xvZ19sZXZl
bC51cHBlcigpKQotICAgIF9nZXRfbG9nZ2VyX2Zyb21fY2xhc3ModXRpbC5fRGVmbGF0ZXIpLnNl
dExldmVsKAotICAgICAgICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1lKQotICAgIF9nZXRfbG9nZ2Vy
X2Zyb21fY2xhc3ModXRpbC5fSW5mbGF0ZXIpLnNldExldmVsKAotICAgICAgICBkZWZsYXRlX2xv
Z19sZXZlbF9uYW1lKQotCi0KLWRlZiBfYnVpbGRfb3B0aW9uX3BhcnNlcigpOgotICAgIHBhcnNl
ciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1j
b25maWcnLCBkZXN0PSdjb25maWdfZmlsZScsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdQYXRo
IHRvIGNvbmZpZ3VyYXRpb24gZmlsZS4gU2VlIHRoZSBmaWxlIGNvbW1lbnQgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSBmb3IgdGhlIGNvbmZp
Z3VyYXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlIGZvcm1hdCcpKQot
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctSCcsICctLXNlcnZlci1ob3N0JywgJy0tc2VydmVyX2hv
c3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9ob3N0JywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PScnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3Nl
cnZlciBob3N0bmFtZSB0byBsaXN0ZW4gdG8nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctVics
ICctLXZhbGlkYXRpb24taG9zdCcsICctLXZhbGlkYXRpb25faG9zdCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0ndmFsaWRhdGlvbl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VydmVyIGhvc3RuYW1l
IHRvIHZhbGlkYXRlIGluIGFic29sdXRlIHBhdGguJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LXAnLCAnLS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1jb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCi0gICAgICAgICAg
ICAgICAgICAgICAgaGVscD0ncG9ydCB0byBsaXN0ZW4gdG8nKQotICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctUCcsICctLXZhbGlkYXRpb24tcG9ydCcsICctLXZhbGlkYXRpb25fcG9ydCcsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0ndmFsaWRhdGlvbl9wb3J0JywgdHlwZT0naW50JywKLSAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0nc2VydmVyIHBvcnQgdG8gdmFsaWRhdGUgaW4gYWJzb2x1dGUgcGF0aC4nKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctdycsICctLXdlYnNvY2staGFuZGxlcnMnLCAnLS13ZWJzb2NrX2hh
bmRsZXJzJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScuJywKLSAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSgnVGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdlYlNvY2tldCBoYW5kbGVyIGZpbGVzLiAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLCAt
LWRvY3VtZW50LXJvb3QgaXMgdXNlZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fz
IHRoZSBiYXNlLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLXdlYnNvY2staGFu
ZGxlcnMtbWFwLWZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgICctLXdlYnNvY2tfaGFuZGxl
cnNfbWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3dlYnNvY2tfaGFuZGxl
cnNfbWFwX2ZpbGUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSgnV2ViU29ja2V0IGhhbmRsZXJzIG1hcCBmaWxlLiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0VhY2ggbGluZSBjb25zaXN0cyBvZiBhbGlhc19y
ZXNvdXJjZV9wYXRoIGFuZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4aXN0aW5n
X3Jlc291cmNlX3BhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMuJykpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1zJywgJy0tc2Nhbi1kaXInLCAnLS1zY2FuX2RpcicsIGRlc3Q9J3NjYW5fZGlyJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ011c3QgYmUgYSBkaXJlY3RvcnkgdW5kZXIgLS13ZWJzb2NrLWhhbmRsZXJzLiAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09ubHkgaGFuZGxlcnMgdW5kZXIgdGhpcyBk
aXJlY3RvcnkgYXJlIHNjYW5uZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbmQg
cmVnaXN0ZXJlZCB0byB0aGUgc2VydmVyLiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J1VzZWZ1bCBmb3Igc2F2aW5nIHNjYW4gdGltZSB3aGVuIHRoZSBoYW5kbGVyICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAncm9vdCBkaXJlY3RvcnkgY29udGFpbnMgbG90cyBvZiBmaWxl
cyB0aGF0IGFyZSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vdCBoYW5kbGVyIGZp
bGUgb3IgYXJlIGhhbmRsZXIgZmlsZXMgYnV0IHlvdSAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2RvblwndCB3YW50IHRoZW0gdG8gYmUgcmVnaXN0ZXJlZC4gJykpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tYWxsb3ctaGFuZGxlcnMtb3V0c2lkZS1yb290LWRpcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgJy0tYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcicsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0nYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcics
Ci0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdT
Y2FucyBXZWJTb2NrZXQgaGFuZGxlcnMgZXZlbiBpZiB0aGVpciBjYW5vbmljYWwgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdwYXRoIGlzIG5vdCB1bmRlciAtLXdlYnNvY2staGFuZGxl
cnMuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1kJywgJy0tZG9jdW1lbnQtcm9vdCcsICct
LWRvY3VtZW50X3Jvb3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RvY3VtZW50X3Jv
b3QnLCBkZWZhdWx0PScuJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdEb2N1bWVudCBy
b290IGRpcmVjdG9yeS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCcteCcsICctLWNnaS1wYXRo
cycsICctLWNnaV9wYXRocycsIGRlc3Q9J2NnaV9wYXRocycsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdDR0kgcGF0aHMg
cmVsYXRpdmUgdG8gZG9jdW1lbnRfcm9vdC4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J0NvbW1hLXNlcGFyYXRlZC4gKGUuZyAteCAvY2dpLC9odGJpbikgJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdGaWxlcyB1bmRlciBkb2N1bWVudF9yb290L2NnaV9wYXRoIGFyZSBoYW5k
bGVkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXMgQ0dJIHByb2dyYW1zLiBNdXN0
IGJlIGV4ZWN1dGFibGUuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywg
ZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKScpCi0gICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tdGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxl
JywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAg
ICAgICAgIGNob2ljZXMgPSBbX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVO
U1NMXSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdVc2Ugc3NsIG1vZHVsZSBpZiAiJXMi
IGlzIHNwZWNpZmllZC4gJwotICAgICAgICAgICAgICAgICAgICAgICdVc2UgcHlPcGVuU1NMIG1v
ZHVsZSBpZiAiJXMiIGlzIHNwZWNpZmllZCcgJQotICAgICAgICAgICAgICAgICAgICAgIChfVExT
X0JZX1NUQU5EQVJEX01PRFVMRSwgX1RMU19CWV9QWU9QRU5TU0wpKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctaycsICctLXByaXZhdGUta2V5JywgJy0tcHJpdmF0ZV9rZXknLAotICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J3ByaXZhdGVfa2V5JywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PScnLCBoZWxwPSdUTFMgcHJpdmF0ZSBrZXkgZmlsZS4nKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctYycsICctLWNlcnRpZmljYXRlJywgZGVzdD0nY2VydGlmaWNhdGUnLAotICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9JycsIGhlbHA9J1RMUyBjZXJ0aWZpY2F0ZSBmaWxlLicp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLWNsaWVudC1hdXRoJywgZGVzdD0ndGxzX2Ns
aWVudF9hdXRoJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBk
ZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlcXVlc3RzIFRMUyBj
bGllbnQgYXV0aCBvbiBldmVyeSBjb25uZWN0aW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tdGxzLWNsaWVudC1jZXJ0LW9wdGlvbmFsJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSd0bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVs
cD0oJ01ha2VzIGNsaWVudCBjZXJ0aWZpY2F0ZSBvcHRpb25hbCBldmVuIHRob3VnaCAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1RMUyBjbGllbnQgYXV0aCBpcyBlbmFibGVkLicpKQot
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtY2EnLCBkZXN0PSd0bHNfY2xpZW50
X2NhJywgZGVmYXVsdD0nJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnU3BlY2lmaWVz
IGEgcGVtIGZpbGUgd2hpY2ggY29udGFpbnMgYSBzZXQgb2YgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdjb25jYXRlbmF0ZWQgQ0EgY2VydGlmaWNhdGVzIHdoaWNoIGFyZSB1c2VkIHRv
ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsaWRhdGUgY2VydGlmaWNhdGVzIHBh
c3NlZCBmcm9tIGNsaWVudHMnKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1iYXNpYy1hdXRo
JywgZGVzdD0ndXNlX2Jhc2ljX2F1dGgnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0n
c3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0n
UmVxdWlyZXMgQmFzaWMgYXV0aGVudGljYXRpb24uJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbign
LS1iYXNpYy1hdXRoLWNyZWRlbnRpYWwnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Jh
c2ljX2F1dGhfY3JlZGVudGlhbCcsIGRlZmF1bHQ9J3Rlc3Q6dGVzdCcsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nU3BlY2lmaWVzIHRoZSBjcmVkZW50aWFsIG9mIGJhc2ljIGF1dGhlbnRp
Y2F0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAnYnkgdXNlcm5hbWU6cGFzc3dvcmQgcGFp
ciAoZS5nLiB0ZXN0OnRlc3QpLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbG9n
LWZpbGUnLCAnLS1sb2dfZmlsZScsIGRlc3Q9J2xvZ19maWxlJywKLSAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0PScnLCBoZWxwPSdMb2cgZmlsZS4nKQotICAgICMgQ3VzdG9tIGxvZyBsZXZl
bDoKLSAgICAjIC0gRklORTogUHJpbnRzIHN0YXR1cyBvZiBlYWNoIGZyYW1lIHByb2Nlc3Npbmcg
c3RlcAotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcs
IHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywg
ZGVmYXVsdD0nd2FybicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2ZpbmUnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcn
LCAnd2FybicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRp
Y2FsJ10sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsLicpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1sb2ctbGV2ZWwnLCAnLS1kZWZsYXRlX2xvZ19sZXZl
bCcsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdkZWZsYXRlX2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAotICAgICAg
ICAgICAgICAgICAgICAgIGNob2ljZXM9WydkZWJ1ZycsICdpbmZvJywgJ3dhcm5pbmcnLCAnd2Fy
bicsICdlcnJvcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyaXRpY2FsJ10s
Ci0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGxldmVsIGZvciBfRGVmbGF0ZXIgYW5k
IF9JbmZsYXRlci4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRocmVhZC1tb25pdG9yLWlu
dGVydmFsLWluLXNlYycsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tdGhyZWFkX21vbml0b3Jf
aW50ZXJ2YWxfaW5fc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0aHJlYWRfbW9u
aXRvcl9pbnRlcnZhbF9pbl9zZWMnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2ludCcs
IGRlZmF1bHQ9LTEsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ0lmIHBvc2l0aXZlIGlu
dGVnZXIgaXMgc3BlY2lmaWVkLCBydW4gYSB0aHJlYWQgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtb25pdG9yIHRvIHNob3cgdGhlIHN0YXR1cyBvZiBzZXJ2ZXIgdGhyZWFkcyAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BlcmlvZGljYWxseSBpbiB0aGUgc3BlY2lmaWVk
IGludGV2YWwgaW4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmQuIElmIG5v
bi1wb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdkaXNhYmxlIHRoZSB0aHJlYWQgbW9uaXRvci4nKSkKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLS1sb2ctbWF4JywgJy0tbG9nX21heCcsIGRlc3Q9J2xvZ19tYXgnLCB0eXBlPSdpbnQn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfTE9HX01BWF9CWVRFUywK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdMb2cgbWF4aW11bSBieXRlcycpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tbG9nLWNvdW50JywgJy0tbG9nX2NvdW50JywgZGVzdD0nbG9nX2Nv
dW50JywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PV9ERUZBVUxU
X0xPR19CQUNLVVBfQ09VTlQsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIGJhY2t1
cCBjb3VudCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYWxsb3ctZHJhZnQ3NScsIGRlc3Q9
J2FsbG93X2RyYWZ0NzUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nT2Jzb2xldGUg
b3B0aW9uLiBJZ25vcmVkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tc3RyaWN0JywgZGVz
dD0nc3RyaWN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PUZhbHNlLCBoZWxwPSdPYnNvbGV0ZSBvcHRpb24uIElnbm9yZWQuJykKLSAgICBwYXJz
ZXIuYWRkX29wdGlvbignLXEnLCAnLS1xdWV1ZScsIGRlc3Q9J3JlcXVlc3RfcXVldWVfc2l6ZScs
IHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9SRVFV
RVNUX1FVRVVFX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0ncmVxdWVzdCBxdWV1
ZSBzaXplJykKLQotICAgIHJldHVybiBwYXJzZXIKLQotCi1jbGFzcyBUaHJlYWRNb25pdG9yKHRo
cmVhZGluZy5UaHJlYWQpOgotICAgIGRhZW1vbiA9IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBpbnRlcnZhbF9pbl9zZWMpOgotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9f
KHNlbGYsIG5hbWU9J1RocmVhZE1vbml0b3InKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX2ludGVydmFsX2luX3Nl
YyA9IGludGVydmFsX2luX3NlYwotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QgPSBbXQotICAgICAgICAgICAgZm9y
IHRocmVhZCBpbiB0aHJlYWRpbmcuZW51bWVyYXRlKCk6Ci0gICAgICAgICAgICAgICAgdGhyZWFk
X25hbWVfbGlzdC5hcHBlbmQodGhyZWFkLm5hbWUpCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygKLSAgICAgICAgICAgICAgICAiJWQgYWN0aXZlIHRocmVhZHM6ICVzIiwKLSAgICAgICAg
ICAgICAgICB0aHJlYWRpbmcuYWN0aXZlX2NvdW50KCksCi0gICAgICAgICAgICAgICAgJywgJy5q
b2luKHRocmVhZF9uYW1lX2xpc3QpKQotICAgICAgICAgICAgdGltZS5zbGVlcChzZWxmLl9pbnRl
cnZhbF9pbl9zZWMpCi0KLQotZGVmIF9wYXJzZV9hcmdzX2FuZF9jb25maWcoYXJncyk6Ci0gICAg
cGFyc2VyID0gX2J1aWxkX29wdGlvbl9wYXJzZXIoKQotCi0gICAgIyBGaXJzdCwgcGFyc2Ugb3B0
aW9ucyB3aXRob3V0IGNvbmZpZ3VyYXRpb24gZmlsZS4KLSAgICB0ZW1wb3Jhcnlfb3B0aW9ucywg
dGVtcG9yYXJ5X2FyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzPWFyZ3MpCi0gICAgaWYgdGVt
cG9yYXJ5X2FyZ3M6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAnVW5y
ZWNvZ25pemVkIHBvc2l0aW9uYWwgYXJndW1lbnRzOiAlcicsIHRlbXBvcmFyeV9hcmdzKQotICAg
ICAgICBzeXMuZXhpdCgxKQotCi0gICAgaWYgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGU6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbmZpZ19mcCA9IG9wZW4odGVtcG9yYXJ5X29w
dGlvbnMuY29uZmlnX2ZpbGUsICdyJykKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAg
ICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBv
cGVuIGNvbmZpZ3VyYXRpb24gZmlsZSAlcjogJXInLAotICAgICAgICAgICAgICAgIHRlbXBvcmFy
eV9vcHRpb25zLmNvbmZpZ19maWxlLAotICAgICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICBz
eXMuZXhpdCgxKQotCi0gICAgICAgIGNvbmZpZ19wYXJzZXIgPSBjb25maWdwYXJzZXIuU2FmZUNv
bmZpZ1BhcnNlcigpCi0gICAgICAgIGNvbmZpZ19wYXJzZXIucmVhZGZwKGNvbmZpZ19mcCkKLSAg
ICAgICAgY29uZmlnX2ZwLmNsb3NlKCkKLQotICAgICAgICBhcmdzX2Zyb21fY29uZmlnID0gW10K
LSAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGNvbmZpZ19wYXJzZXIuaXRlbXMoJ3B5d2Vic29j
a2V0Jyk6Ci0gICAgICAgICAgICBhcmdzX2Zyb21fY29uZmlnLmFwcGVuZCgnLS0nICsgbmFtZSkK
LSAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKHZhbHVlKQotICAgICAgICBpZiBh
cmdzIGlzIE5vbmU6Ci0gICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZpZwotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgYXJncyA9IGFyZ3NfZnJvbV9jb25maWcgKyBhcmdzCi0gICAg
ICAgIHJldHVybiBwYXJzZXIucGFyc2VfYXJncyhhcmdzPWFyZ3MpCi0gICAgZWxzZToKLSAgICAg
ICAgcmV0dXJuIHRlbXBvcmFyeV9vcHRpb25zLCB0ZW1wb3JhcnlfYXJncwotCi0KLWRlZiBfbWFp
bihhcmdzPU5vbmUpOgotICAgICIiIllvdSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uIGZyb20geW91
ciBvd24gcHJvZ3JhbSwgYnV0IHBsZWFzZSBub3RlIHRoYXQKLSAgICB0aGlzIGZ1bmN0aW9uIGhh
cyBzb21lIHNpZGUtZWZmZWN0cyB0aGF0IG1pZ2h0IGFmZmVjdCB5b3VyIHByb2dyYW0uIEZvcgot
ICAgIGV4YW1wbGUsIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbiB1c2UgaW4gdGhpcyBtZXRob2Qg
cmVwbGFjZXMgaW1wbGVtZW50YXRpb24KLSAgICBvZiBvcy5wb3BlbjMuCi0gICAgIiIiCi0KLSAg
ICBvcHRpb25zLCBhcmdzID0gX3BhcnNlX2FyZ3NfYW5kX2NvbmZpZyhhcmdzPWFyZ3MpCi0KLSAg
ICBvcy5jaGRpcihvcHRpb25zLmRvY3VtZW50X3Jvb3QpCi0KLSAgICBfY29uZmlndXJlX2xvZ2dp
bmcob3B0aW9ucykKLQotICAgIGlmIG9wdGlvbnMuYWxsb3dfZHJhZnQ3NToKLSAgICAgICAgbG9n
Z2luZy53YXJuaW5nKCctLWFsbG93X2RyYWZ0NzUgb3B0aW9uIGlzIG9ic29sZXRlLicpCi0KLSAg
ICBpZiBvcHRpb25zLnN0cmljdDoKLSAgICAgICAgbG9nZ2luZy53YXJuaW5nKCctLXN0cmljdCBv
cHRpb24gaXMgb2Jzb2xldGUuJykKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IENsZWFuIHVwIGlu
aXRpYWxpemF0aW9uIG9mIENHSSByZWxhdGVkIHZhbHVlcy4gTW92ZSBzb21lCi0gICAgIyBvZiBj
b2RlIGhlcmUgdG8gV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgY2xhc3MgaWYgaXQncyBiZXR0ZXIu
Ci0gICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBbXQotICAgIG9wdGlvbnMuaXNfZXhlY3V0
YWJsZV9tZXRob2QgPSBOb25lCi0gICAgaWYgb3B0aW9ucy5jZ2lfcGF0aHM6Ci0gICAgICAgIG9w
dGlvbnMuY2dpX2RpcmVjdG9yaWVzID0gb3B0aW9ucy5jZ2lfcGF0aHMuc3BsaXQoJywnKQotICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdjeWd3aW4nLCAnd2luMzInKToKLSAgICAgICAgICAg
IGN5Z3dpbl9wYXRoID0gTm9uZQotICAgICAgICAgICAgIyBGb3IgV2luMzIgUHl0aG9uLCBpdCBp
cyBleHBlY3RlZCB0aGF0IENZR1dJTl9QQVRICi0gICAgICAgICAgICAjIGlzIHNldCB0byBhIGRp
cmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCi0gICAgICAgICAgICAjIEZvciBleGFtcGxlLCB3
ZWJzb2NrZXRfc2VydmVyLnB5IGluIENocm9taXVtIHNldHMgQ1lHV0lOX1BBVEggdG8KLSAgICAg
ICAgICAgICMgZnVsbCBwYXRoIG9mIHRoaXJkX3BhcnR5L2N5Z3dpbi9iaW4uCi0gICAgICAgICAg
ICBpZiAnQ1lHV0lOX1BBVEgnIGluIG9zLmVudmlyb246Ci0gICAgICAgICAgICAgICAgY3lnd2lu
X3BhdGggPSBvcy5lbnZpcm9uWydDWUdXSU5fUEFUSCddCi0gICAgICAgICAgICB1dGlsLndyYXBf
cG9wZW4zX2Zvcl93aW4oY3lnd2luX3BhdGgpCi0KLSAgICAgICAgICAgIGRlZiBfX2NoZWNrX3Nj
cmlwdChzY3JpcHRwYXRoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gdXRpbC5nZXRfc2NyaXB0
X2ludGVycChzY3JpcHRwYXRoLCBjeWd3aW5fcGF0aCkKLQotICAgICAgICAgICAgb3B0aW9ucy5p
c19leGVjdXRhYmxlX21ldGhvZCA9IF9fY2hlY2tfc2NyaXB0Ci0KLSAgICBpZiBvcHRpb25zLnVz
ZV90bHM6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBpcyBOb25lOgotICAgICAgICAg
ICAgaWYgX2ltcG9ydF9zc2woKToKLSAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUg
PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRQotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWco
J1VzaW5nIHNzbCBtb2R1bGUnKQotICAgICAgICAgICAgZWxpZiBfaW1wb3J0X3B5b3BlbnNzbCgp
OgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfUFlPUEVOU1NM
Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgcHlPcGVuU1NMIG1vZHVsZScp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnVExTIHN1cHBvcnQgcmVxdWlyZXMgc3NsIG9yIHB5T3Bl
blNTTCBtb2R1bGUuJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlm
IG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1NUQU5EQVJEX01PRFVMRToKLSAgICAgICAg
ICAgIGlmIG5vdCBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGlj
YWwoJ3NzbCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAgc3lzLmV4
aXQoMSkKLSAgICAgICAgZWxpZiBvcHRpb25zLnRsc19tb2R1bGUgPT0gX1RMU19CWV9QWU9QRU5T
U0w6Ci0gICAgICAgICAgICBpZiBub3QgX2ltcG9ydF9weW9wZW5zc2woKToKLSAgICAgICAgICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKCdweU9wZW5TU0wgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUn
KQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKCdJbnZhbGlkIC0tdGxzLW1vZHVsZSBvcHRpb246ICVyJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlKQotICAgICAgICAg
ICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBub3Qgb3B0aW9ucy5wcml2YXRlX2tleSBvciBu
b3Qgb3B0aW9ucy5jZXJ0aWZpY2F0ZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoCi0g
ICAgICAgICAgICAgICAgICAgICdUbyB1c2UgVExTLCBzcGVjaWZ5IHByaXZhdGVfa2V5IGFuZCBj
ZXJ0aWZpY2F0ZS4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiAob3B0
aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWwgYW5kCi0gICAgICAgICAgICBub3Qgb3B0aW9u
cy50bHNfY2xpZW50X2F1dGgpOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnQ2xpZW50
IGF1dGhlbnRpY2F0aW9uIG11c3QgYmUgZW5hYmxlZCB0byAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzcGVjaWZ5IHRsc19jbGllbnRfY2VydF9vcHRpb25hbCcpCi0gICAgICAgICAg
ICBzeXMuZXhpdCgxKQotICAgIGVsc2U6Ci0gICAgICAgIGlmIG9wdGlvbnMudGxzX21vZHVsZSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1VzZSAtLXRscy1tb2R1
bGUgb3B0aW9uIG9ubHkgdG9nZXRoZXIgd2l0aCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICctLXVzZS10bHMgb3B0aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAg
ICAgIGlmIG9wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0
aWNhbCgnVExTIG11c3QgYmUgZW5hYmxlZCBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uLicpCi0g
ICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG9wdGlvbnMudGxzX2NsaWVudF9j
ZXJ0X29wdGlvbmFsOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVExTIG11c3QgYmUg
ZW5hYmxlZCBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uLicpCi0gICAgICAgICAgICBzeXMuZXhp
dCgxKQotCi0gICAgaWYgbm90IG9wdGlvbnMuc2Nhbl9kaXI6Ci0gICAgICAgIG9wdGlvbnMuc2Nh
bl9kaXIgPSBvcHRpb25zLndlYnNvY2tfaGFuZGxlcnMKLQotICAgIGlmIG9wdGlvbnMudXNlX2Jh
c2ljX2F1dGg6Ci0gICAgICAgIG9wdGlvbnMuYmFzaWNfYXV0aF9jcmVkZW50aWFsID0gJ0Jhc2lj
ICcgKyBiYXNlNjQuYjY0ZW5jb2RlKAotICAgICAgICAgICAgb3B0aW9ucy5iYXNpY19hdXRoX2Ny
ZWRlbnRpYWwpCi0KLSAgICB0cnk6Ci0gICAgICAgIGlmIG9wdGlvbnMudGhyZWFkX21vbml0b3Jf
aW50ZXJ2YWxfaW5fc2VjID4gMDoKLSAgICAgICAgICAgICMgUnVuIGEgdGhyZWFkIG1vbml0b3Ig
dG8gc2hvdyB0aGUgc3RhdHVzIG9mIHNlcnZlciB0aHJlYWRzIGZvcgotICAgICAgICAgICAgIyBk
ZWJ1Z2dpbmcuCi0gICAgICAgICAgICBUaHJlYWRNb25pdG9yKG9wdGlvbnMudGhyZWFkX21vbml0
b3JfaW50ZXJ2YWxfaW5fc2VjKS5zdGFydCgpCi0KLSAgICAgICAgc2VydmVyID0gV2ViU29ja2V0
U2VydmVyKG9wdGlvbnMpCi0gICAgICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKLSAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ21vZF9weXdlYnNv
Y2tldDogJXMnICUgZSkKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9kX3B5d2Vic29ja2V0
OiAlcycgJSB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0K
LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgX21haW4oc3lzLmFyZ3ZbMTpdKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3Ry
ZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhN2QzMTM2YWM5YjQyZjVkZjU2NTJkOTFmM2M4ODZmODVlY2JmMWY0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLSMgQ29w
eXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBleHBvcnRzIHB1YmxpYyBzeW1ib2xzLiIiIgot
Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9u
RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkVVRGOEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2hpeGllNzUgaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20g
bW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgRnJhbWUKLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKLQotIyBUaGVzZSBtZXRob2RzIGFyZSBp
bnRlbmRlZCB0byBiZSB1c2VkIGJ5IFdlYlNvY2tldCBjbGllbnQgZGV2ZWxvcGVycyB0byBoYXZl
Ci0jIHRoZWlyIGltcGxlbWVudGF0aW9ucyByZWNlaXZlIGJyb2tlbiBkYXRhIGluIHRlc3RzLgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2VfZnJh
bWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2hlYWRl
cgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfbGVuZ3Ro
X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVf
cGluZ19mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVh
dGVfcG9uZ19mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBj
cmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IGNyZWF0ZV90ZXh0X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5Ci0KLQotIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvdXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4Mjg0
Y2QwNzQ0Y2RlMzg0YzU0MmE5NmRjYzMwYWVmNWFkZTg3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNDI0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldl
YlNvY2tldCB1dGlsaXRpZXMuIiIiCi0KLQotaW1wb3J0IGFycmF5Ci1pbXBvcnQgZXJybm8KLQot
IyBJbXBvcnQgaGFzaCBjbGFzc2VzIGZyb20gYSBtb2R1bGUgYXZhaWxhYmxlIGFuZCByZWNvbW1l
bmRlZCBmb3IgZWFjaCBQeXRob24KLSMgdmVyc2lvbiBhbmQgcmUtZXhwb3J0IHRob3NlIHN5bWJv
bC4gVXNlIHNoYSBhbmQgbWQ1IG1vZHVsZSBpbiBQeXRob24gMi40LCBhbmQKLSMgaGFzaGxpYiBt
b2R1bGUgaW4gUHl0aG9uIDIuNi4KLXRyeToKLSAgICBpbXBvcnQgaGFzaGxpYgotICAgIG1kNV9o
YXNoID0gaGFzaGxpYi5tZDUKLSAgICBzaGExX2hhc2ggPSBoYXNobGliLnNoYTEKLWV4Y2VwdCBJ
bXBvcnRFcnJvcjoKLSAgICBpbXBvcnQgbWQ1Ci0gICAgaW1wb3J0IHNoYQotICAgIG1kNV9oYXNo
ID0gbWQ1Lm1kNQotICAgIHNoYTFfaGFzaCA9IHNoYS5zaGEKLQotZnJvbSBzaXgubW92ZXMgaW1w
b3J0IFN0cmluZ0lPCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9y
dCBzb2NrZXQKLWltcG9ydCB0cmFjZWJhY2sKLWltcG9ydCB6bGliCi0KLXRyeToKLSAgICBmcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgZmFzdF9tYXNraW5nCi1leGNlcHQgSW1wb3J0RXJyb3I6
Ci0gICAgcGFzcwotCi0KLWRlZiBnZXRfc3RhY2tfdHJhY2UoKToKLSAgICAiIiJHZXQgdGhlIGN1
cnJlbnQgc3RhY2sgdHJhY2UgYXMgc3RyaW5nLgotCi0gICAgVGhpcyBpcyBuZWVkZWQgdG8gc3Vw
cG9ydCBQeXRob24gMi4zLgotICAgIFRPRE86IFJlbW92ZSB0aGlzIHdoZW4gd2Ugb25seSBzdXBw
b3J0IFB5dGhvbiAyLjQgYW5kIGFib3ZlLgotICAgICAgICAgIFVzZSB0cmFjZWJhY2suZm9ybWF0
X2V4YyBpbnN0ZWFkLgotICAgICIiIgotICAgIG91dCA9IFN0cmluZ0lPKCkKLSAgICB0cmFjZWJh
Y2sucHJpbnRfZXhjKGZpbGU9b3V0KQotICAgIHJldHVybiBvdXQuZ2V0dmFsdWUoKQotCi0KLWRl
ZiBwcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKG1lc3NhZ2UsIGV4Yyk6Ci0gICAgIiIiUHJl
cGVuZCBtZXNzYWdlIHRvIHRoZSBleGNlcHRpb24uIiIiCi0gICAgZXhjLmFyZ3MgPSAobWVzc2Fn
ZSArIHN0cihleGMpLCkKLSAgICByZXR1cm4KLQotCi1kZWYgX190cmFuc2xhdGVfaW50ZXJwKGlu
dGVycCwgY3lnd2luX3BhdGgpOgotICAgICIiIlRyYW5zbGF0ZSBpbnRlcnAgcHJvZ3JhbSBwYXRo
IGZvciBXaW4zMiBweXRob24gdG8gcnVuIGN5Z3dpbiBwcm9ncmFtCi0gICAgKGUuZy4gcGVybCku
ICBOb3RlIHRoYXQgaXQgZG9lc24ndCBzdXBwb3J0IHBhdGggdGhhdCBjb250YWlucyBzcGFjZSwK
LSAgICB3aGljaCBpcyB0eXBpY2FsbHkgdHJ1ZSBmb3IgVW5peCwgd2hlcmUgIyEtc2NyaXB0IGlz
IHdyaXR0ZW4uCi0gICAgRm9yIFdpbjMyIHB5dGhvbiwgY3lnd2luX3BhdGggaXMgYSBkaXJlY3Rv
cnkgb2YgY3lnd2luIGJpbmFyaWVzLgotCi0gICAgQXJnczoKLSAgICAgIGludGVycDogaW50ZXJw
IGNvbW1hbmQgbGluZQotICAgICAgY3lnd2luX3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dp
biBiaW5hcnksIG9yIE5vbmUKLSAgICBSZXR1cm5zOgotICAgICAgdHJhbnNsYXRlZCBpbnRlcnAg
Y29tbWFuZCBsaW5lLgotICAgICIiIgotICAgIGlmIG5vdCBjeWd3aW5fcGF0aDoKLSAgICAgICAg
cmV0dXJuIGludGVycAotICAgIG0gPSByZS5tYXRjaCgnXlteIF0qLyhbXiBdKykoIC4qKT8nLCBp
bnRlcnApCi0gICAgaWYgbToKLSAgICAgICAgY21kID0gb3MucGF0aC5qb2luKGN5Z3dpbl9wYXRo
LCBtLmdyb3VwKDEpKQotICAgICAgICByZXR1cm4gY21kICsgbS5ncm91cCgyKQotICAgIHJldHVy
biBpbnRlcnAKLQotCi1kZWYgZ2V0X3NjcmlwdF9pbnRlcnAoc2NyaXB0X3BhdGgsIGN5Z3dpbl9w
YXRoPU5vbmUpOgotICAgIHIiIiJHZXQgIyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5lIGZyb20g
dGhlIHNjcmlwdC4KLQotICAgIEl0IGFsc28gZml4ZXMgY29tbWFuZCBwYXRoLiAgV2hlbiBDeWd3
aW4gUHl0aG9uIGlzIHVzZWQsIGUuZy4gaW4gV2ViS2l0LAotICAgIGl0IGNvdWxkIHJ1biAiL3Vz
ci9iaW4vcGVybCAtd1QgaGVsbG8ucGwiLgotICAgIFdoZW4gV2luMzIgUHl0aG9uIGlzIHVzZWQs
IGUuZy4gaW4gQ2hyb21pdW0sIGl0IGNvdWxkbid0LiAgU28sIGZpeAotICAgICIvdXNyL2Jpbi9w
ZXJsIiB0byAiPGN5Z3dpbl9wYXRoPlxwZXJsLmV4ZSIuCi0KLSAgICBBcmdzOgotICAgICAgc2Ny
aXB0X3BhdGg6IHBhdGhuYW1lIG9mIHRoZSBzY3JpcHQKLSAgICAgIGN5Z3dpbl9wYXRoOiBkaXJl
Y3RvcnkgbmFtZSBvZiBjeWd3aW4gYmluYXJ5LCBvciBOb25lCi0gICAgUmV0dXJuczoKLSAgICAg
ICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSwgb3IgTm9uZSBpZiBpdCBpcyBub3QgIyEtc2Ny
aXB0LgotICAgICIiIgotICAgIGZwID0gb3BlbihzY3JpcHRfcGF0aCkKLSAgICBsaW5lID0gZnAu
cmVhZGxpbmUoKQotICAgIGZwLmNsb3NlKCkKLSAgICBtID0gcmUubWF0Y2goJ14jISguKiknLCBs
aW5lKQotICAgIGlmIG06Ci0gICAgICAgIHJldHVybiBfX3RyYW5zbGF0ZV9pbnRlcnAobS5ncm91
cCgxKSwgY3lnd2luX3BhdGgpCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgd3JhcF9wb3BlbjNf
Zm9yX3dpbihjeWd3aW5fcGF0aCk6Ci0gICAgIiIiV3JhcCBwb3BlbjMgdG8gc3VwcG9ydCAjIS1z
Y3JpcHQgb24gV2luZG93cy4KLQotICAgIEFyZ3M6Ci0gICAgICBjeWd3aW5fcGF0aDogIHBhdGgg
Zm9yIGN5Z3dpbiBiaW5hcnkgaWYgY29tbWFuZCBwYXRoIGlzIG5lZWRlZCB0byBiZQotICAgICAg
ICAgICAgICAgICAgICB0cmFuc2xhdGVkLiAgTm9uZSBpZiBubyB0cmFuc2xhdGlvbiByZXF1aXJl
ZC4KLSAgICAiIiIKLSAgICBfX29yaWdfcG9wZW4zID0gb3MucG9wZW4zCi0KLSAgICBkZWYgX193
cmFwX3BvcGVuMyhjbWQsIG1vZGU9J3QnLCBidWZzaXplPS0xKToKLSAgICAgICAgY21kbGluZSA9
IGNtZC5zcGxpdCgnICcpCi0gICAgICAgIGludGVycCA9IGdldF9zY3JpcHRfaW50ZXJwKGNtZGxp
bmVbMF0sIGN5Z3dpbl9wYXRoKQotICAgICAgICBpZiBpbnRlcnA6Ci0gICAgICAgICAgICBjbWQg
PSBpbnRlcnAgKyAnICcgKyBjbWQKLSAgICAgICAgcmV0dXJuIF9fb3JpZ19wb3BlbjMoY21kLCBt
b2RlLCBidWZzaXplKQotCi0gICAgb3MucG9wZW4zID0gX193cmFwX3BvcGVuMwotCi0KLWRlZiBo
ZXhpZnkocyk6Ci0gICAgcmV0dXJuICcgJy5qb2luKG1hcChsYW1iZGEgeDogJyUwMngnICUgb3Jk
KHgpLCBzKSkKLQotCi1kZWYgZ2V0X2NsYXNzX2xvZ2dlcihvKToKLSAgICAiIiJSZXR1cm4gdGhl
IGxvZ2dpbmcgY2xhc3MgaW5mb3JtYXRpb24uIiIiCi0gICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9n
Z2VyKAotICAgICAgICAnJXMuJXMnICUgKG8uX19jbGFzc19fLl9fbW9kdWxlX18sIG8uX19jbGFz
c19fLl9fbmFtZV9fKSkKLQotCi1jbGFzcyBOb29wTWFza2VyKG9iamVjdCk6Ci0gICAgIiIiQSBO
b09wIG1hc2tpbmcgb2JqZWN0LgotCi0gICAgVGhpcyBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGFz
IFJlcGVhdGVkWG9yTWFza2VyIGJ1dCBqdXN0IHJldHVybnMKLSAgICB0aGUgc3RyaW5nIHBhc3Nl
ZCBpbiB3aXRob3V0IG1ha2luZyBhbnkgY2hhbmdlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYpOgotICAgICAgICAiIiJOb09wLiIiIgotICAgICAgICBwYXNzCi0KLSAgICBkZWYg
bWFzayhzZWxmLCBzKToKLSAgICAgICAgIiIiTm9PcC4iIiIKLSAgICAgICAgcmV0dXJuIHMKLQot
Ci1jbGFzcyBSZXBlYXRlZFhvck1hc2tlcihvYmplY3QpOgotCi0gICAgIiIiQSBtYXNraW5nIG9i
amVjdCB0aGF0IGFwcGxpZXMgWE9SIG9uIHRoZSBzdHJpbmcuCi0KLSAgICBBcHBsaWVzIFhPUiBv
biB0aGUgc3RyaW5nIGdpdmVuIHRvIG1hc2sgbWV0aG9kIHdpdGggdGhlIG1hc2tpbmcgYnl0ZXMK
LSAgICBnaXZlbiB0byB0aGUgY29uc3RydWN0b3IgcmVwZWF0ZWRseS4gVGhpcyBvYmplY3QgcmVt
ZW1iZXJzIHRoZSBwb3NpdGlvbgotICAgIGluIHRoZSBtYXNraW5nIGJ5dGVzIHRoZSBsYXN0IG1h
c2sgbWV0aG9kIGNhbGwgZW5kZWQgYW5kIHJlc3VtZXMgZnJvbQotICAgIHRoYXQgcG9pbnQgb24g
dGhlIG5leHQgbWFzayBtZXRob2QgY2FsbC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtYXNraW5nX2tleSk6Ci0gICAgICAgIHNlbGYuX21hc2tpbmdfa2V5ID0gbWFza2luZ19r
ZXkKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSAwCi0KLSAgICBkZWYgX21hc2tf
dXNpbmdfc3dpZyhzZWxmLCBzKToKLSAgICAgICAgIiIiUGVyZm9ybSB0aGUgbWFzayB2aWEgU1dJ
Ry4iIiIKLSAgICAgICAgbWFza2VkX2RhdGEgPSBmYXN0X21hc2tpbmcubWFzaygKLSAgICAgICAg
ICAgICAgICBzLCBzZWxmLl9tYXNraW5nX2tleSwgc2VsZi5fbWFza2luZ19rZXlfaW5kZXgpCi0g
ICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gKAotICAgICAgICAgICAgICAgIChzZWxm
Ll9tYXNraW5nX2tleV9pbmRleCArIGxlbihzKSkgJSBsZW4oc2VsZi5fbWFza2luZ19rZXkpKQot
ICAgICAgICByZXR1cm4gbWFza2VkX2RhdGEKLQotICAgIGRlZiBfbWFza191c2luZ19hcnJheShz
ZWxmLCBzKToKLSAgICAgICAgIiIiUGVyZm9ybSB0aGUgbWFzayB2aWEgcHl0aG9uLiIiIgotICAg
ICAgICByZXN1bHQgPSBhcnJheS5hcnJheSgnQicpCi0gICAgICAgIHJlc3VsdC5mcm9tc3RyaW5n
KHMpCi0KLSAgICAgICAgIyBVc2UgdGVtcG9yYXJ5IGxvY2FsIHZhcmlhYmxlcyB0byBlbGltaW5h
dGUgdGhlIGNvc3QgdG8gYWNjZXNzCi0gICAgICAgICMgYXR0cmlidXRlcwotICAgICAgICBtYXNr
aW5nX2tleSA9IG1hcChvcmQsIHNlbGYuX21hc2tpbmdfa2V5KQotICAgICAgICBtYXNraW5nX2tl
eV9zaXplID0gbGVuKG1hc2tpbmdfa2V5KQotICAgICAgICBtYXNraW5nX2tleV9pbmRleCA9IHNl
bGYuX21hc2tpbmdfa2V5X2luZGV4Ci0KLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKGxlbihyZXN1
bHQpKToKLSAgICAgICAgICAgIHJlc3VsdFtpXSBePSBtYXNraW5nX2tleVttYXNraW5nX2tleV9p
bmRleF0KLSAgICAgICAgICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4
ICsgMSkgJSBtYXNraW5nX2tleV9zaXplCi0KLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5k
ZXggPSBtYXNraW5nX2tleV9pbmRleAotCi0gICAgICAgIHJldHVybiByZXN1bHQudG9zdHJpbmco
KQotCi0gICAgaWYgJ2Zhc3RfbWFza2luZycgaW4gZ2xvYmFscygpOgotICAgICAgICBtYXNrID0g
X21hc2tfdXNpbmdfc3dpZwotICAgIGVsc2U6Ci0gICAgICAgIG1hc2sgPSBfbWFza191c2luZ19h
cnJheQotCi0KLSMgQnkgbWFraW5nIHdiaXRzIG9wdGlvbiBuZWdhdGl2ZSwgd2UgY2FuIHN1cHBy
ZXNzIENNRi9GTEcgKDIgb2N0ZXQpIGFuZAotIyBBRExFUjMyICg0IG9jdGV0KSBmaWVsZHMgb2Yg
emxpYiBzbyB0aGF0IHdlIGNhbiB1c2UgemxpYiBtb2R1bGUganVzdCBhcwotIyBkZWZsYXRlIGxp
YnJhcnkuIERJQ1RJRCB3b24ndCBiZSBhZGRlZCBhcyBmYXIgYXMgd2UgZG9uJ3Qgc2V0IGRpY3Rp
b25hcnkuCi0jIExaNzcgd2luZG93IG9mIDMySyB3aWxsIGJlIHVzZWQgZm9yIGJvdGggY29tcHJl
c3Npb24gYW5kIGRlY29tcHJlc3Npb24uCi0jIEZvciBkZWNvbXByZXNzaW9uLCB3ZSBjYW4ganVz
dCB1c2UgMzJLIHRvIGNvdmVyIGFueSB3aW5kb3dzIHNpemUuIEZvcgotIyBjb21wcmVzc2lvbiwg
d2UgdXNlIDMySyBzbyByZWNlaXZlcnMgbXVzdCB1c2UgMzJLLgotIwotIyBDb21wcmVzc2lvbiBs
ZXZlbCBpcyBaX0RFRkFVTFRfQ09NUFJFU1NJT04uIFdlIGRvbid0IGhhdmUgdG8gbWF0Y2ggbGV2
ZWwKLSMgdG8gZGVjb2RlLgotIwotIyBTZWUgemNvbmYuaCwgZGVmbGF0ZS5jYywgaW5mbGF0ZS5j
YyBvZiB6bGliIGxpYnJhcnksIGFuZCB6bGlibW9kdWxlLmMgb2YKLSMgUHl0aG9uLiBTZWUgYWxz
byBSRkMxOTUwIChaTElCIDMuMykuCi0KLQotY2xhc3MgX0RlZmxhdGVyKG9iamVjdCk6Ci0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMpOgotICAgICAgICBzZWxmLl9sb2dnZXIg
PSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC13aW5kb3dfYml0cykKLQotICAgIGRlZiBjb21wcmVzcyhzZWxmLCBieXRl
cyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhi
eXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5
dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNv
bXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVzCi0KLSAgICBk
ZWYgY29tcHJlc3NfYW5kX2ZsdXNoKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9i
eXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBjb21wcmVzc2Vk
X2J5dGVzICs9IHNlbGYuX2NvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRl
cykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMKLQotICAgIGRlZiBjb21wcmVzc19h
bmRfZmluaXNoKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyA9IHNlbGYu
X2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBjb21wcmVzc2VkX2J5dGVzICs9IHNl
bGYuX2NvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1
cm4gY29tcHJlc3NlZF9ieXRlcwotCi0KLWNsYXNzIF9JbmZsYXRlcihvYmplY3QpOgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0g
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl93aW5kb3dfYml0cyA9IHdpbmRv
d19iaXRzCi0KLSAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9ICcnCi0KLSAgICAgICAgc2VsZi5y
ZXNldCgpCi0KLSAgICBkZWYgZGVjb21wcmVzcyhzZWxmLCBzaXplKToKLSAgICAgICAgaWYgbm90
IChzaXplID09IC0xIG9yIHNpemUgPiAwKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
c2l6ZSBtdXN0IGJlIC0xIG9yIHBvc2l0aXZlJykKLQotICAgICAgICBkYXRhID0gJycKLQotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgc2l6ZSA9PSAtMToKLSAgICAgICAgICAg
ICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3MuZGVjb21wcmVzcyhzZWxmLl91bmNvbnN1bWVk
KQotICAgICAgICAgICAgICAgICMgU2VlIFB5dGhvbiBidWcgaHR0cDovL2J1Z3MucHl0aG9uLm9y
Zy9pc3N1ZTEyMDUwIHRvCi0gICAgICAgICAgICAgICAgIyB1bmRlcnN0YW5kIHdoeSB0aGUgc2Ft
ZSBjb2RlIGNhbm5vdCBiZSB1c2VkIGZvciB1cGRhdGluZwotICAgICAgICAgICAgICAgICMgc2Vs
Zi5fdW5jb25zdW1lZCBmb3IgaGVyZSBhbmQgZWxzZSBibG9jay4KLSAgICAgICAgICAgICAgICBz
ZWxmLl91bmNvbnN1bWVkID0gJycKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRlY29tcHJlc3MoCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3VuY29uc3VtZWQsIHNpemUgLSBsZW4oZGF0YSkpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29tcHJlc3MudW5jb25zdW1lZF90YWlsCi0gICAgICAg
ICAgICBpZiBzZWxmLl9kZWNvbXByZXNzLnVudXNlZF9kYXRhOgotICAgICAgICAgICAgICAgICMg
RW5jb3VudGVyZWQgYSBsYXN0IGJsb2NrIChpLmUuIGEgYmxvY2sgd2l0aCBCRklOQUwgPSAxKSBh
bmQKLSAgICAgICAgICAgICAgICAjIGZvdW5kIGEgbmV3IHN0cmVhbSAodW51c2VkX2RhdGEpLiBX
ZSBjYW5ub3QgdXNlIHRoZSBzYW1lCi0gICAgICAgICAgICAgICAgIyB6bGliLkRlY29tcHJlc3Mg
b2JqZWN0IGZvciB0aGUgbmV3IHN0cmVhbS4gQ3JlYXRlIGEgbmV3Ci0gICAgICAgICAgICAgICAg
IyBEZWNvbXByZXNzIG9iamVjdCB0byBkZWNvbXByZXNzIHRoZSBuZXcgb25lLgotICAgICAgICAg
ICAgICAgICMKLSAgICAgICAgICAgICAgICAjIEl0J3MgZmluZSB0byBpZ25vcmUgdW5jb25zdW1l
ZF90YWlsIGlmIHVudXNlZF9kYXRhIGlzIG5vdAotICAgICAgICAgICAgICAgICMgZW1wdHkuCi0g
ICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29tcHJlc3MudW51c2Vk
X2RhdGEKLSAgICAgICAgICAgICAgICBzZWxmLnJlc2V0KCkKLSAgICAgICAgICAgICAgICBpZiBz
aXplID49IDAgYW5kIGxlbihkYXRhKSA9PSBzaXplOgotICAgICAgICAgICAgICAgICAgICAjIGRh
dGEgaXMgZmlsbGVkLiBEb24ndCBjYWxsIGRlY29tcHJlc3MgYWdhaW4uCi0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
IyBSZS1pbnZva2UgRGVjb21wcmVzcy5kZWNvbXByZXNzIHRvIHRyeSB0byBkZWNvbXByZXNzIGFs
bAotICAgICAgICAgICAgICAgICAgICAjIGF2YWlsYWJsZSBieXRlcyBiZWZvcmUgaW52b2tpbmcg
cmVhZCB3aGljaCBibG9ja3MgdW50aWwKLSAgICAgICAgICAgICAgICAgICAgIyBhbnkgbmV3IGJ5
dGUgaXMgYXZhaWxhYmxlLgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEhlcmUsIHNpbmNlIHVudXNlZF9kYXRhIGlzIGVt
cHR5LCBldmVuIGlmIHVuY29uc3VtZWRfdGFpbCBpcwotICAgICAgICAgICAgICAgICMgbm90IGVt
cHR5LCBieXRlcyBvZiByZXF1ZXN0ZWQgbGVuZ3RoIGFyZSBhbHJlYWR5IGluIGRhdGEuIFdlCi0g
ICAgICAgICAgICAgICAgIyBkb24ndCBoYXZlIHRvICJjb250aW51ZSIgaGVyZS4KLSAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGRhdGE6Ci0gICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ0RlY29tcHJlc3NlZCAlcicsIGRhdGEpCi0gICAgICAgIHJldHVybiBkYXRhCi0K
LSAgICBkZWYgYXBwZW5kKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J0FwcGVuZGVkICVyJywgZGF0YSkKLSAgICAgICAgc2VsZi5fdW5jb25zdW1lZCArPSBkYXRhCi0K
LSAgICBkZWYgcmVzZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVzZXQn
KQotICAgICAgICBzZWxmLl9kZWNvbXByZXNzID0gemxpYi5kZWNvbXByZXNzb2JqKC1zZWxmLl93
aW5kb3dfYml0cykKLQotCi0jIENvbXByZXNzZXMvZGVjb21wcmVzc2VzIGdpdmVuIG9jdGV0cyB1
c2luZyB0aGUgbWV0aG9kIGludHJvZHVjZWQgaW4gUkZDMTk3OS4KLQotCi1jbGFzcyBfUkZDMTk3
OURlZmxhdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBjb21wcmVzc29yIGNsYXNzIHRoYXQgYXBwbGll
cyBERUZMQVRFIHRvIGdpdmVuIGJ5dGUgc2VxdWVuY2UgYW5kCi0gICAgZmx1c2hlcyB1c2luZyB0
aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0aGUgUkZDMTk3OSBzZWN0aW9uIDIuMS4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cywgbm9fY29udGV4dF90YWtl
b3Zlcik6Ci0gICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotICAgICAgICBpZiB3aW5kb3df
Yml0cyBpcyBOb25lOgotICAgICAgICAgICAgd2luZG93X2JpdHMgPSB6bGliLk1BWF9XQklUUwot
ICAgICAgICBzZWxmLl93aW5kb3dfYml0cyA9IHdpbmRvd19iaXRzCi0gICAgICAgIHNlbGYuX25v
X2NvbnRleHRfdGFrZW92ZXIgPSBub19jb250ZXh0X3Rha2VvdmVyCi0KLSAgICBkZWYgZmlsdGVy
KHNlbGYsIGJ5dGVzLCBlbmQ9VHJ1ZSwgYmZpbmFsPUZhbHNlKToKLSAgICAgICAgaWYgc2VsZi5f
ZGVmbGF0ZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2RlZmxhdGVyID0gX0RlZmxhdGVy
KHNlbGYuX3dpbmRvd19iaXRzKQotCi0gICAgICAgIGlmIGJmaW5hbDoKLSAgICAgICAgICAgIHJl
c3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9maW5pc2goYnl0ZXMpCi0gICAgICAg
ICAgICAjIEFkZCBhIHBhZGRpbmcgYmxvY2sgd2l0aCBCRklOQUwgPSAwIGFuZCBCVFlQRSA9IDAu
Ci0gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBjaHIoMCkKLSAgICAgICAgICAgIHNlbGYu
X2RlZmxhdGVyID0gTm9uZQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgICAgIHJl
c3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9mbHVzaChieXRlcykKLSAgICAgICAg
aWYgZW5kOgotICAgICAgICAgICAgIyBTdHJpcCBsYXN0IDQgb2N0ZXRzIHdoaWNoIGlzIExFTiBh
bmQgTkxFTiBmaWVsZCBvZiBhCi0gICAgICAgICAgICAjIG5vbi1jb21wcmVzc2VkIGJsb2NrIGFk
ZGVkIGZvciBaX1NZTkNfRkxVU0guCi0gICAgICAgICAgICByZXN1bHQgPSByZXN1bHRbOi00XQot
Ci0gICAgICAgIGlmIHNlbGYuX25vX2NvbnRleHRfdGFrZW92ZXIgYW5kIGVuZDoKLSAgICAgICAg
ICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotCi0gICAgICAgIHJldHVybiByZXN1bHQKLQotCi1j
bGFzcyBfUkZDMTk3OUluZmxhdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkZWNvbXByZXNzb3IgY2xh
c3MgYSBsYSBSRkMxOTc5LgotCi0gICAgQSBkZWNvbXByZXNzb3IgY2xhc3MgZm9yIGJ5dGUgc2Vx
dWVuY2UgY29tcHJlc3NlZCBhbmQgZmx1c2hlZCBmb2xsb3dpbmcKLSAgICB0aGUgYWxnb3JpdGht
IGRlc2NyaWJlZCBpbiB0aGUgUkZDMTk3OSBzZWN0aW9uIDIuMS4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cz16bGliLk1BWF9XQklUUyk6Ci0gICAgICAgIHNl
bGYuX2luZmxhdGVyID0gX0luZmxhdGVyKHdpbmRvd19iaXRzKQotCi0gICAgZGVmIGZpbHRlcihz
ZWxmLCBieXRlcyk6Ci0gICAgICAgICMgUmVzdG9yZSBzdHJpcHBlZCBMRU4gYW5kIE5MRU4gZmll
bGQgb2YgYSBub24tY29tcHJlc3NlZCBibG9jayBhZGRlZAotICAgICAgICAjIGZvciBaX1NZTkNf
RkxVU0guCi0gICAgICAgIHNlbGYuX2luZmxhdGVyLmFwcGVuZChieXRlcyArICdceDAwXHgwMFx4
ZmZceGZmJykKLSAgICAgICAgcmV0dXJuIHNlbGYuX2luZmxhdGVyLmRlY29tcHJlc3MoLTEpCi0K
LQotY2xhc3MgRGVmbGF0ZVNvY2tldChvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBm
b3Igc29ja2V0IG9iamVjdCB0byBpbnRlcmNlcHQgc2VuZCBhbmQgcmVjdiB0byBwZXJmb3JtCi0g
ICAgZGVmbGF0ZSBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbiB0cmFuc3BhcmVudGx5Lgot
ICAgICIiIgotCi0gICAgIyBTaXplIG9mIHRoZSBidWZmZXIgcGFzc2VkIHRvIHJlY3YgdG8gcmVj
ZWl2ZSBjb21wcmVzc2VkIGRhdGEuCi0gICAgX1JFQ1ZfU0laRSA9IDQwOTYKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBzb2NrZXQpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAg
c2VsZi5fZGVmbGF0ZXIgPSBfRGVmbGF0ZXIoemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIHNlbGYu
X2luZmxhdGVyID0gX0luZmxhdGVyKHpsaWIuTUFYX1dCSVRTKQotCi0gICAgZGVmIHJlY3Yoc2Vs
Ziwgc2l6ZSk6Ci0gICAgICAgICIiIlJlY2VpdmVzIGRhdGEgZnJvbSB0aGUgc29ja2V0IHNwZWNp
ZmllZCBvbiB0aGUgY29uc3RydWN0aW9uIHVwCi0gICAgICAgIHRvIHRoZSBzcGVjaWZpZWQgc2l6
ZS4gT25jZSBhbnkgZGF0YSBpcyBhdmFpbGFibGUsIHJldHVybnMgaXQgZXZlbgotICAgICAgICBp
ZiBpdCdzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuCi0gICAgICAgICIiIgotCi0g
ICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEFsbG93IGNhbGwgd2l0aCBzaXplPTAuIEl0IHNob3Vs
ZCBibG9jayB1bnRpbCBhbnkKLSAgICAgICAgIyBkZWNvbXByZXNzZWQgZGF0YSBpcyBhdmFpbGFi
bGUuCi0gICAgICAgIGlmIHNpemUgPD0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
Tm9uLXBvc2l0aXZlIHNpemUgcGFzc2VkJykKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
ICAgIGRhdGEgPSBzZWxmLl9pbmZsYXRlci5kZWNvbXByZXNzKHNpemUpCi0gICAgICAgICAgICBp
ZiBsZW4oZGF0YSkgIT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgICAg
ICAgICByZWFkX2RhdGEgPSBzZWxmLl9zb2NrZXQucmVjdihEZWZsYXRlU29ja2V0Ll9SRUNWX1NJ
WkUpCi0gICAgICAgICAgICBpZiBub3QgcmVhZF9kYXRhOgotICAgICAgICAgICAgICAgIHJldHVy
biAnJwotICAgICAgICAgICAgc2VsZi5faW5mbGF0ZXIuYXBwZW5kKHJlYWRfZGF0YSkKLQotICAg
IGRlZiBzZW5kYWxsKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgc2VsZi5zZW5kKGJ5dGVzKQotCi0g
ICAgZGVmIHNlbmQoc2VsZiwgYnl0ZXMpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChz
ZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmx1c2goYnl0ZXMpKQotICAgICAgICByZXR1cm4g
bGVuKGJ5dGVzKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmMyM2E1ZDI4Yjc1YmNkOWM0
YTVkZTBjZGM4YmQ1ZDY1Mzc4NTY5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
X3N0cmVhbV9oeWJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNp
b25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
aHR0cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L211eC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQzYTViMDQ5MjIwZWU3OTBlZmVhNTFiZGE2YTNmOTVkOGRjZjA5NzUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTIx
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5
bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0
Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2Jz
ZAotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotY2xhc3MgWEhSQmVu
Y2htYXJrSGFuZGxlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoZWFkZXJzLCBy
ZmlsZSwgd2ZpbGUpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dn
ZXIoc2VsZikKLQotICAgICAgICBzZWxmLmhlYWRlcnMgPSBoZWFkZXJzCi0gICAgICAgIHNlbGYu
cmZpbGUgPSByZmlsZQotICAgICAgICBzZWxmLndmaWxlID0gd2ZpbGUKLQotICAgIGRlZiBkb19z
ZW5kKHNlbGYpOgotICAgICAgICBjb250ZW50X2xlbmd0aCA9IGludChzZWxmLmhlYWRlcnMuZ2V0
aGVhZGVyKCdDb250ZW50LUxlbmd0aCcpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
UmVxdWVzdGVkIHRvIHJlY2VpdmUgJXMgYnl0ZXMnLCBjb250ZW50X2xlbmd0aCkKLQotICAgICAg
ICBSRUNFSVZFX0JMT0NLX1NJWkUgPSAxMDI0ICogMTAyNAotCi0gICAgICAgIGJ5dGVzX3RvX3Jl
Y2VpdmUgPSBjb250ZW50X2xlbmd0aAotICAgICAgICB3aGlsZSBieXRlc190b19yZWNlaXZlID4g
MDoKLSAgICAgICAgICAgIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wID0gYnl0ZXNfdG9f
cmVjZWl2ZQotICAgICAgICAgICAgaWYgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPiBS
RUNFSVZFX0JMT0NLX1NJWkU6Ci0gICAgICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90
aGlzX2xvb3AgPSBSRUNFSVZFX0JMT0NLX1NJWkUKLSAgICAgICAgICAgIHJlY2VpdmVkX2RhdGEg
PSBzZWxmLnJmaWxlLnJlYWQoYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3ApCi0gICAgICAg
ICAgICBpZiByZWNlaXZlZF9kYXRhICE9ICgnYScgKiBieXRlc190b19yZWNlaXZlX2luX3RoaXNf
bG9vcCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0IGJvZHkg
dmVyaWZpY2F0aW9uIGZhaWxlZCcpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAg
ICBieXRlc190b19yZWNlaXZlIC09IGxlbihyZWNlaXZlZF9kYXRhKQotICAgICAgICBpZiBieXRl
c190b19yZWNlaXZlIDwgMDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2
ZWQgJWQgbW9yZSBieXRlcyB0aGFuIGV4cGVjdGVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKC1ieXRlc190b19yZWNlaXZlKSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgICMgUmV0dXJuIHRoZSBudW1iZXIgb2YgcmVjZWl2ZWQgYnl0ZXMgYmFjayB0byB0aGUgY2xp
ZW50LgotICAgICAgICByZXNwb25zZV9ib2R5ID0gJyVkJyAlIGNvbnRlbnRfbGVuZ3RoCi0gICAg
ICAgIHNlbGYud2ZpbGUud3JpdGUoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMjAwIE9LXHJcbicK
LSAgICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICpcclxuJwotICAgICAg
ICAgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcbicKLSAgICAgICAgICAgICdDb250ZW50
LUxlbmd0aDogJWRcclxuJwotICAgICAgICAgICAgJ1xyXG4lcycgJSAobGVuKHJlc3BvbnNlX2Jv
ZHkpLCByZXNwb25zZV9ib2R5KSkKLSAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCi0KLSAgICBk
ZWYgZG9fcmVjZWl2ZV9hbmRfcGFyc2Uoc2VsZik6Ci0gICAgICAgIGNvbnRlbnRfbGVuZ3RoID0g
aW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0gICAgICAgIHJl
cXVlc3RfYm9keSA9IHNlbGYucmZpbGUucmVhZChjb250ZW50X2xlbmd0aCkKLQotICAgICAgICBy
ZXF1ZXN0X2FycmF5ID0gcmVxdWVzdF9ib2R5LnNwbGl0KCcgJykKLSAgICAgICAgaWYgbGVuKHJl
cXVlc3RfYXJyYXkpIDwgMjoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTWFsZm9y
bWVkIHJlcXVlc3QgYm9keTogJXInLCByZXF1ZXN0X2JvZHkpCi0gICAgICAgICAgICByZXR1cm4K
LQotICAgICAgICAjIFBhcnNlIHRoZSBzaXplIHBhcmFtZXRlci4KLSAgICAgICAgYnl0ZXNfdG9f
c2VuZCA9IHJlcXVlc3RfYXJyYXlbMF0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYnl0ZXNf
dG9fc2VuZCA9IGludChieXRlc190b19zZW5kKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBh
cyBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgc2l6ZSBwYXJh
bWV0ZXI6ICVyJywgYnl0ZXNfdG9fc2VuZCkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICMgUGFyc2UgdGhlIHRyYW5zZmVyIGVuY29kaW5nIHBhcmFtZXRlci4KLSAgICAgICAgY2h1bmtl
ZF9tb2RlID0gRmFsc2UKLSAgICAgICAgbW9kZV9wYXJhbWV0ZXIgPSByZXF1ZXN0X2FycmF5WzFd
Ci0gICAgICAgIGlmIG1vZGVfcGFyYW1ldGVyID09ICdjaHVua2VkJzoKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnUmVxdWVzdGVkIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcnKQot
ICAgICAgICAgICAgY2h1bmtlZF9tb2RlID0gVHJ1ZQotICAgICAgICBlbGlmIG1vZGVfcGFyYW1l
dGVyICE9ICdub25lJzoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnSW52YWxpZCBt
b2RlIHBhcmFtZXRlcjogJXInLCBtb2RlX3BhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIHNlbGYuZG9fcmVjZWl2ZShieXRlc190b19zZW5kLCBjaHVua2VkX21vZGUsIEZh
bHNlKQotCi0gICAgZGVmIGRvX3JlY2VpdmUoc2VsZiwgYnl0ZXNfdG9fc2VuZCwgY2h1bmtlZF9t
b2RlLCBlbmFibGVfY2FjaGUpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAg
ICAgICAnUmVxdWVzdGVkIHRvIHNlbmQgJXMgYnl0ZXMgKGNodW5rZWQ6ICVzLCBjYWNoZTogJXMp
JywKLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmQsIGNodW5rZWRfbW9kZSwgZW5hYmxlX2NhY2hl
KQotICAgICAgICAjIFdyaXRlIGEgaGVhZGVyCi0gICAgICAgIHJlc3BvbnNlX2hlYWRlciA9ICgK
LSAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJwotICAgICAgICAgICAgJ0FjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbjogKlxyXG4nCi0gICAgICAgICAgICAnQ29udGVudC1UeXBlOiBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cclxuJykKLSAgICAgICAgaWYgZW5hYmxlX2NhY2hlOgot
ICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBt
YXgtYWdlPTEwXHJcbicKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRl
ciArPSBcCi0gICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9y
ZSwgbXVzdC1yZXZhbGlkYXRlXHJcbicKLSAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAg
ICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICdUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxyXG5c
clxuJwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICgKLSAg
ICAgICAgICAgICAgICAnQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4nICUgYnl0ZXNfdG9fc2Vu
ZCkKLSAgICAgICAgc2VsZi53ZmlsZS53cml0ZShyZXNwb25zZV9oZWFkZXIpCi0gICAgICAgIHNl
bGYud2ZpbGUuZmx1c2goKQotCi0gICAgICAgICMgV3JpdGUgYSBib2R5Ci0gICAgICAgIFNFTkRf
QkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0Ci0KLSAgICAgICAgd2hpbGUgYnl0ZXNfdG9fc2VuZCA+
IDA6Ci0gICAgICAgICAgICBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3Nl
bmQKLSAgICAgICAgICAgIGlmIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID4gU0VORF9CTE9D
S19TSVpFOgotICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gU0VO
RF9CTE9DS19TSVpFCi0KLSAgICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAg
ICAgICBzZWxmLndmaWxlLndyaXRlKCcleFxyXG4nICUgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xv
b3ApCi0gICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCdhJyAqIGJ5dGVzX3RvX3NlbmRfaW5f
dGhpc19sb29wKQotICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgICAg
IHNlbGYud2ZpbGUud3JpdGUoJ1xyXG4nKQotICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgp
Ci0KLSAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmQgLT0gYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xv
b3AKLQotICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICBzZWxmLndmaWxlLndy
aXRlKCcwXHJcblxyXG4nKQotICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTM1ZDZiMTA1ODk5Y2ExMzQ4ZDdkNmQ2OGJiZTJiZDQ5ZTg1ZDExOC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NldHVwLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0j
IENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJTZXQgdXAgc2NyaXB0IGZvciBtb2RfcHl3ZWJzb2NrZXQu
Ci0iIiIKLQotCi1mcm9tIGRpc3R1dGlscy5jb3JlIGltcG9ydCBzZXR1cCwgRXh0ZW5zaW9uCi1p
bXBvcnQgc3lzCi0KLQotX1BBQ0tBR0VfTkFNRSA9ICdtb2RfcHl3ZWJzb2NrZXQnCi0KLSMgQnVp
bGQgYW5kIHVzZSBhIEMrKyBleHRlbnNpb24gZm9yIGZhc3RlciBtYXNraW5nLiBTV0lHIGlzIHJl
cXVpcmVkLgotX1VTRV9GQVNUX01BU0tJTkcgPSBGYWxzZQotCi1pZiBzeXMudmVyc2lvbiA8ICcy
LjMnOgotICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICclcyByZXF1aXJlcyBQeXRob24gMi4zIG9y
IGxhdGVyLicgJSBfUEFDS0FHRV9OQU1FCi0gICAgc3lzLmV4aXQoMSkKLQotaWYgX1VTRV9GQVNU
X01BU0tJTkc6Ci0gICAgc2V0dXAoZXh0X21vZHVsZXM9WwotICAgICAgICAgICAgICAgICAgRXh0
ZW5zaW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0L19mYXN0
X21hc2tpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBbJ21vZF9weXdlYnNvY2tldC9m
YXN0X21hc2tpbmcuaSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzd2lnX29wdHM9Wyct
YysrJ10pXSkKLQotc2V0dXAoYXV0aG9yPSdZdXpvIEZ1amlzaGltYScsCi0gICAgICBhdXRob3Jf
ZW1haWw9J3l1em9AY2hyb21pdW0ub3JnJywKLSAgICAgIGRlc2NyaXB0aW9uPSdXZWJTb2NrZXQg
ZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBTZXJ2ZXIuJywKLSAgICAgIGxvbmdfZGVzY3JpcHRp
b249KAotICAgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0IGlzIGFuIEFwYWNoZSBIVFRQIFNl
cnZlciBleHRlbnNpb24gZm9yICcKLSAgICAgICAgICAgICAgJ3RoZSBXZWJTb2NrZXQgUHJvdG9j
b2wgKFJGQyA2NDU1KS4gJwotICAgICAgICAgICAgICAnU2VlIG1vZF9weXdlYnNvY2tldC9fX2lu
aXRfXy5weSBmb3IgbW9yZSBkZXRhaWwuJyksCi0gICAgICBsaWNlbnNlPSdTZWUgTElDRU5TRScs
Ci0gICAgICBuYW1lPV9QQUNLQUdFX05BTUUsCi0gICAgICBwYWNrYWdlcz1bX1BBQ0tBR0VfTkFN
RSwgX1BBQ0tBR0VfTkFNRSArICcuaGFuZHNoYWtlJ10sCi0gICAgICB1cmw9J2h0dHA6Ly9jb2Rl
Lmdvb2dsZS5jb20vcC9weXdlYnNvY2tldC8nLAotICAgICAgIyBTZWUgdGhlIHNvdXJjZSBvZiBk
aXN0dXRpbHMudmVyc2lvbiwgZGlzdHV0aWxzLnZlcnNpb25wcmVkaWNhdGUgYW5kCi0gICAgICAj
IGRpc3R1dGlscy5kaXN0IHRvIHVuZGVyc3RhbmQgaG93IHRvIG5hbWUgdmVyc2lvbiBudW1iZXJz
LgotICAgICAgdmVyc2lvbj0nMC43LjknLAotICAgICAgKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09QWUlORyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL0NPUFlJTkcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OWQwMmU0Y2QwOTIzNzgwNmY3ZGY4YmVhZWNjNjkx
NTI3MzQyOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvQ09QWUlORworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLUNvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1t
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL01BTklGRVNULmluIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
TUFOSUZFU1QuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MjU2ODgyYzU2ZmVi
NzI4MTJjOTljOGE4Mzc5OTc5ZTYzZTRhMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvTUFOSUZFU1QuaW4KKysrIC9kZXYvbnVsbApAQCAt
MSw2ICswLDAgQEAKLWluY2x1ZGUgQ09QWUlORwotaW5jbHVkZSBNQU5JRkVTVC5pbgotaW5jbHVk
ZSBSRUFETUUKLXJlY3Vyc2l2ZS1pbmNsdWRlIGV4YW1wbGUgKi5weQotcmVjdXJzaXZlLWluY2x1
ZGUgbW9kX3B5d2Vic29ja2V0ICoucHkKLXJlY3Vyc2l2ZS1pbmNsdWRlIHRlc3QgKi5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvUkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvUkVBRE1FCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjOGM3NThmNWVlZjRjNzMxODkyNjQxZGUzMzNlNWQ3NWQxMGEzZTU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUlOU1RBTEwKLQotVG8gaW5z
dGFsbCB0aGlzIHBhY2thZ2UgdG8gdGhlIHN5c3RlbSwgcnVuIHRoaXM6Ci0kIHB5dGhvbiBzZXR1
cC5weSBidWlsZAotJCBzdWRvIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsCi0KLVRvIGluc3RhbGwg
dGhpcyBwYWNrYWdlIGFzIGEgbm9ybWFsIHVzZXIsIHJ1biB0aGlzIGluc3RlYWQ6Ci0kIHB5dGhv
biBzZXR1cC5weSBidWlsZAotJCBweXRob24gc2V0dXAucHkgaW5zdGFsbCAtLXVzZXIKLQotTEFV
TkNICi0KLVRvIHVzZSBweXdlYnNvY2tldCBhcyBBcGFjaGUgbW9kdWxlLCBydW4gdGhpcyB0byBy
ZWFkIHRoZSBkb2N1bWVudDoKLSQgcHlkb2MgbW9kX3B5d2Vic29ja2V0Ci0KLVRvIHVzZSBweXdl
YnNvY2tldCBhcyBzdGFuZGFsb25lIHNlcnZlciwgcnVuIHRoaXMgdG8gcmVhZCB0aGUgZG9jdW1l
bnQ6Ci0kIHB5ZG9jIG1vZF9weXdlYnNvY2tldC5zdGFuZGFsb25lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fi
b3J0X2hhbmRzaGFrZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwODAy
M2ExZmU5MWUyZjI5NzdiMTYzZjk3N2RhZTY4NTAwMDlhYTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF9oYW5kc2hh
a2Vfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAx
MiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotCi0KLWRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICByYWlzZSBoYW5kc2hha2Uu
QWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAgICAgIkFib3J0ZWQgaW4gd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9hYm9ydF93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X3dzaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJiZjAwNWY2YTM3YzYwOWUxNmFiZGU0
ZGY5NDAyNDI2OGQwZGFlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oCi0gICAgICAg
ICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSIpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFy
ay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY5Y2Q3ZTFlZTY1M2Q1OWYwNGI4MDJmZjM0Yzhk
MDgxMzE3Y2E4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMTM0ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgot
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0K
LSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRp
b24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tPgotCi08
aHRtbD4KLTxoZWFkPgotPHRpdGxlPkFycmF5QnVmZmVyIGJlbmNobWFyazwvdGl0bGU+Ci08c2Ny
aXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIFBSSU5UX1NJWkUgPSB0
cnVlOwotCi0vLyBJbml0aWFsIHNpemUgb2YgYXJyYXlzLgotdmFyIFNUQVJUX1NJWkUgPSAxMCAq
IDEwMjQ7Ci0vLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBhbiBhcnJheSBleGNl
ZWRzIHRoaXMgdGhyZXNob2xkLgotdmFyIFNUT1BfVEhSRVNIT0xEID0gMTAwMDAwICogMTAyNDsK
LS8vIElmIHRoZSBzaXplIG9mIGVhY2ggYXJyYXkgaXMgc21hbGwsIHdyaXRlL3JlYWQgdGhlIGFy
cmF5IG11bHRpcGxlIHRpbWVzCi0vLyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMgdGhp
cyB0aHJlc2hvbGQuCi12YXIgTUlOX1RPVEFMID0gMTAwMDAwICogMTAyNDsKLXZhciBNVUxUSVBM
SUVSUyA9IFs1LCAyXTsKLQotLy8gUmVwZWF0IGJlbmNobWFyayBmb3Igc2V2ZXJhbCB0aW1lcyB0
byBtZWFzdXJlIHBlcmZvcm1hbmNlIG9mIG9wdGltaXplZAotLy8gKHN1Y2ggYXMgSklUKSBydW4u
Ci12YXIgUkVQRUFUX0ZPUl9XQVJNVVAgPSAzOwotCi1mdW5jdGlvbiB3cml0ZUJlbmNobWFyayhz
aXplLCBtaW5Ub3RhbCkgewotICB2YXIgdG90YWxTaXplID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6
ZSA8IG1pblRvdGFsKSB7Ci0gICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNp
emUpOwotCi0gICAgLy8gV3JpdGUgJ2Ency4KLSAgICBmaWxsQXJyYXlCdWZmZXIoYXJyYXlCdWZm
ZXIsIDB4NjEpOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLSAgcmV0dXJuIHRvdGFs
U2l6ZTsKLX0KLQotZnVuY3Rpb24gcmVhZEJlbmNobWFyayhzaXplLCBtaW5Ub3RhbCkgewotICB2
YXIgdG90YWxTaXplID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IG1pblRvdGFsKSB7Ci0gICAg
dmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAgaWYgKCF2ZXJp
ZnlBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHgwMCkpIHsKLSAgICAgIHF1ZXVlTG9nKCdWZXJp
ZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgdG90YWxT
aXplICs9IHNpemU7Ci0gIH0KLSAgcmV0dXJuIHRvdGFsU2l6ZTsKLX0KLQotZnVuY3Rpb24gcnVu
QmVuY2htYXJrKGJlbmNobWFya0Z1bmN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIHNpemUs
Ci0gICAgICAgICAgICAgICAgICAgICAgc3RvcFRocmVzaG9sZCwKLSAgICAgICAgICAgICAgICAg
ICAgICBtaW5Ub3RhbCwKLSAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWVycywKLSAgICAg
ICAgICAgICAgICAgICAgICBtdWx0aXBsaWVySW5kZXgpIHsKLSAgd2hpbGUgKHNpemUgPD0gc3Rv
cFRocmVzaG9sZCkgewotICAgIHZhciBtYXhTcGVlZCA9IDA7Ci0KLSAgICBmb3IgKHZhciBpID0g
MDsgaSA8IFJFUEVBVF9GT1JfV0FSTVVQOyArK2kpIHsKLSAgICAgIHZhciBzdGFydFRpbWVJbk1z
ID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgICAgIHZhciB0b3RhbFNpemUgPSBiZW5jaG1hcmtGdW5j
dGlvbihzaXplLCBtaW5Ub3RhbCk7Ci0KLSAgICAgIG1heFNwZWVkID0gTWF0aC5tYXgobWF4U3Bl
ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNp
emUsIHN0YXJ0VGltZUluTXMpKTsKLSAgICB9Ci0gICAgcXVldWVMb2coZm9ybWF0UmVzdWx0SW5L
aUIoc2l6ZSwgbWF4U3BlZWQsIFBSSU5UX1NJWkUpKTsKLQotICAgIHNpemUgKj0gbXVsdGlwbGll
cnNbbXVsdGlwbGllckluZGV4XTsKLSAgICBtdWx0aXBsaWVySW5kZXggPSAobXVsdGlwbGllcklu
ZGV4ICsgMSkgJSBtdWx0aXBsaWVycy5sZW5ndGg7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcnVuQmVu
Y2htYXJrcygpIHsKLSAgcXVldWVMb2coJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFNwZWVkIGluIGtC
L3MnKTsKLQotICBxdWV1ZUxvZygnV3JpdGUgYmVuY2htYXJrJyk7Ci0gIHJ1bkJlbmNobWFyaygK
LSAgICAgIHdyaXRlQmVuY2htYXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RIUkVTSE9MRCwgTUlOX1RP
VEFMLCBNVUxUSVBMSUVSUywgMCk7Ci0gIHF1ZXVlTG9nKCdGaW5pc2hlZCcpOwotCi0gIHF1ZXVl
TG9nKCdSZWFkIGJlbmNobWFyaycpOwotICBydW5CZW5jaG1hcmsoCi0gICAgICByZWFkQmVuY2ht
YXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RIUkVTSE9MRCwgTUlOX1RPVEFMLCBNVUxUSVBMSUVSUywg
MCk7Ci0gIGFkZFRvTG9nKCdGaW5pc2hlZCcpOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewotICBs
b2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgcXVldWVMb2cod2lu
ZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0KLSAgYWRkVG9Mb2coJ1N0
YXJ0ZWQuLi4nKTsKLQotICBzZXRUaW1lb3V0KHJ1bkJlbmNobWFya3MsIDApOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJlYQotICAgIGlk
PSJsb2ciIHJvd3M9IjUwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNoX3dz
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2hfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MDY3Y2E3ZDg5NTVmYzE2M2Q1MDAxY2Q4ODEyZTZhZTIwYzE2MjkzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvYmVuY2hfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiQSBzaW1wbGUgbG9hZCB0ZXN0ZXIgZm9yIFdlYlNvY2tldCBjbGllbnRz
LgotCi1BIGNsaWVudCBwcm9ncmFtIHNlbmRzIGEgbWVzc2FnZSBmb3JtYXR0ZWQgYXMgIjx0aW1l
PiA8Y291bnQ+IDxtZXNzYWdlPiIgdG8KLXRoaXMgaGFuZGxlci4gVGhpcyBoYW5kbGVyIHN0YXJ0
cyBzZW5kaW5nIHRvdGFsIDxjb3VudD4gV2ViU29ja2V0IG1lc3NhZ2VzCi1jb250YWluaW5nIDxt
ZXNzYWdlPiBldmVyeSA8dGltZT4gc2Vjb25kcy4gPHRpbWU+IGNhbiBiZSBhIGZsb2F0aW5nIHBv
aW50Ci12YWx1ZS4gPGNvdW50PiBtdXN0IGJlIGFuIGludGVnZXIgdmFsdWUuCi0iIiIKLQotCi1p
bXBvcnQgdGltZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKLSAgICBwYXNzICAjIEFsd2F5cyBhY2NlcHQuCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKLSAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9t
ZXNzYWdlKCkKLSAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoJyAnKQotICAgIGlmIGxlbihwYXJ0cykg
IT0gMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHBhcmFtZXRlciBmb3JtYXQnKQot
ICAgIHdhaXQgPSBmbG9hdChwYXJ0c1swXSkKLSAgICBjb3VudCA9IGludChwYXJ0c1sxXSkKLSAg
ICBtZXNzYWdlID0gcGFydHNbMl0KLSAgICBmb3IgaSBpbiB4cmFuZ2UoY291bnQpOgotICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgdGltZS5z
bGVlcCh3YWl0KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMjE4MTczYTBmMWYzM2E0ZWQ0NjJlMjFm
ODZjMWI4ZDQ4YmE2MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDIwMyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08
aGVhZD4KLTx0aXRsZT5XZWJTb2NrZXQgYmVuY2htYXJrPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1
dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGFkZHJl
c3NCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0gIHJldHVybiB7Ci0gICAg
cHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6ZTogZ2V0Qm9vbEZyb21D
aGVja0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtU29ja2V0czogZ2V0SW50RnJvbUlucHV0KCdu
dW1zb2NrZXRzJyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0
ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1V
cEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAg
IHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBi
ZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQu
Ci0gICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0g
ICAgLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBtZXNzYWdlIGlzIHNtYWxsLCBzZW5kL3JlY2VpdmUg
bXVsdGlwbGUgbWVzc2FnZXMKLSAgICAvLyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMg
dGhpcyB0aHJlc2hvbGQuCi0gICAgbWluVG90YWw6IGdldEludEZyb21JbnB1dCgnbWludG90YWwn
KSwKLSAgICBtdWx0aXBsaWVyczogZ2V0SW50QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxpZXJzJyks
Ci0gICAgdmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScpCi0gIH07
Ci19Ci0KLXZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCdiZW5jaG1hcmsuanMnKTsKLXdvcmtlci5v
bm1lc3NhZ2UgPSBvbk1lc3NhZ2U7Ci0KLWZ1bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKLSAg
dmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd3
b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ3NlbmRCZW5jaG1hcmsn
LCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFk
ZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29u
ZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBzZW5kQmVuY2htYXJrKGNvbmZp
Zyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgewotICB2YXIgY29u
ZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicp
KSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAncmVjZWl2ZUJlbmNobWFyaycsIGNv
bmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9M
b2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcu
bWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHJlY2VpdmVCZW5jaG1hcmsoY29uZmln
KTsKLSAgfQotfQotCi1mdW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIgY29uZmln
ID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7
Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnYmF0Y2hCZW5jaG1hcmsnLCBjb25maWc6
IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwot
ICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1
cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBiYXRjaEJlbmNobWFyayhjb25maWcpOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwot
Ci0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0
TWVzc2FnZSh7dHlwZTogJ3N0b3AnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAg
IGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBh
ZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAg
ICBzdG9wKGNvbmZpZyk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGFkZHJlc3NCb3gg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBsb2dCb3ggPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgdmFyIHNjaGVtZSA9IHdpbmRvdy5sb2NhdGlvbi5w
cm90b2NvbCA9PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDogJ3dzOi8vJzsKLSAgdmFyIGRlZmF1bHRB
ZGRyZXNzID0gc2NoZW1lICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAnL2JlbmNobWFya19oZWxw
ZXInOwotCi0gIGFkZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRkcmVzczsKLQotICBhZGRUb0xv
Zyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1t
YXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotCi0gIGlmICgh
KCdXZWJTb2NrZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xvZygnV2ViU29ja2V0IGlzIG5v
dCBhdmFpbGFibGUnKTsKLSAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
ImluaXQoKSI+Ci0KLTxkaXYgaWQ9ImJlbmNobWFya19kaXYiPgotICB1cmwgPGlucHV0IHR5cGU9
InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZh
bHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJi
dXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5jaG1hcmsoKSI+Ci0g
IDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0ib25CYXRjaEJlbmNo
bWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3AiIG9uY2xpY2s9Im9u
U3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InByaW50
c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5QcmludCBzaXplIGFuZCB0
aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idmVy
aWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+VmVyaWZ5IGRhdGE8
L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIiPgotICA8bGFiZWwg
Zm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgotCi0gIDxici8+Ci0KLSAgUGFyYW1l
dGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtIHNv
Y2tldHM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtc29ja2V0cyIg
dmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9m
IGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRl
cmF0aW9ucyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+
TnVtYmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9
InRleHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KLSAgICA8L3Ry
PgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgotICAgIDwvdHI+
Ci0gICAgPHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAgIDx0ZD48aW5w
dXQgdHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+
Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TWluaW11bSB0b3RhbDwvdGQ+Ci0gICAg
ICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtaW50b3RhbCIgdmFsdWU9IjEwMjQwMDAwMCI+
PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0aXBsaWVyczwvdGQ+Ci0g
ICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0aXBsaWVycyIgdmFsdWU9IjUsIDIi
PjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLTwvZGl2PgotCi08ZGl2IGlkPSJsb2dfZGl2
Ij4KLSAgPHRleHRhcmVhCi0gICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAx
MDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+
Ci0gIFN1bW1hcnkKLSAgPHRleHRhcmVhCi0gICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0
eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotCi1Ob3RlOiBF
ZmZlY3Qgb2YgUlRUIGlzIG5vdCBlbGltaW5hdGVkLgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
YmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzQ3YWU5ZTEzZGUy
ZjA1ZGEwODVjNDkyMTFmNTRjMGI2ODUyYWYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMzA5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Bl
bi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLWlmICh0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0gInVu
ZGVmaW5lZCIpIHsKLSAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgotICBpbXBvcnRTY3JpcHRzKCd1
dGlsLmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7Ci19Ci0KLS8vIE5hbWVzcGFjZSBmb3IgaG9sZGlu
ZyBnbG9iYWxzLgotdmFyIGJlbmNobWFyayA9IHtzdGFydFRpbWVJbk1zOiAwfTsKLQotdmFyIHNv
Y2tldHMgPSBbXTsKLXZhciBudW1Fc3RhYmxpc2hlZFNvY2tldHMgPSAwOwotCi12YXIgdGltZXJJ
RCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lTb2NrZXQoc29ja2V0KSB7Ci0gIHNvY2tldC5v
bm9wZW4gPSBudWxsOwotICBzb2NrZXQub25tZXNzYWdlID0gbnVsbDsKLSAgc29ja2V0Lm9uZXJy
b3IgPSBudWxsOwotICBzb2NrZXQub25jbG9zZSA9IG51bGw7Ci0gIHNvY2tldC5jbG9zZSgpOwot
fQotCi1mdW5jdGlvbiBkZXN0cm95QWxsU29ja2V0cygpIHsKLSAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgZGVzdHJveVNvY2tldChzb2NrZXRzW2ldKTsK
LSAgfQotICBzb2NrZXRzID0gW107Ci19Ci0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNp
emUsIGNvbmZpZykgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2YXIgdG90YWxTaXplID0gMDsK
LSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBmdW5j
dGlvbihldmVudCkgewotICAgIGlmICghdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgZXZl
bnQuZGF0YSwgc2l6ZSkpIHsKLSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRzKCk7Ci0gICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IHNpemU7Ci0KLSAgICBpZiAodG90YWxS
ZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY2FsY3Vs
YXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMsIHRv
dGFsU2l6ZSk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9OwotCi0gIGZvciAodmFy
IGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIHZhciBzb2NrZXQgPSBzb2Nr
ZXRzW2ldOwotICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2VIYW5kbGVyOwotICB9Ci0K
LSAgdmFyIGRhdGFBcnJheSA9IFtdOwotCi0gIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWlu
VG90YWwpIHsKLSAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAg
ZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgMHg2MSk7Ci0KLSAgICBkYXRhQXJyYXkucHVzaChidWZm
ZXIpOwotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGlt
ZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICB0b3RhbFNpemUgPSAwOwotCi0gIHZhciBzb2Nr
ZXRJbmRleCA9IDA7Ci0gIHZhciBkYXRhSW5kZXggPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwg
Y29uZmlnLm1pblRvdGFsKSB7Ci0gICAgdmFyIGNvbW1hbmQgPSBbJ3NlbmQnXTsKLSAgICBjb21t
YW5kLnB1c2goY29uZmlnLnZlcmlmeURhdGEgPyAnMScgOiAnMCcpOwotICAgIHNvY2tldHNbc29j
a2V0SW5kZXhdLnNlbmQoY29tbWFuZC5qb2luKCcgJykpOwotICAgIHNvY2tldHNbc29ja2V0SW5k
ZXhdLnNlbmQoZGF0YUFycmF5W2RhdGFJbmRleF0pOwotICAgIHNvY2tldEluZGV4ID0gKHNvY2tl
dEluZGV4ICsgMSkgJSBzb2NrZXRzLmxlbmd0aDsKLQotICAgIHRvdGFsU2l6ZSArPSBzaXplOwot
ICAgICsrZGF0YUluZGV4OwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJlY2VpdmVCZW5jaG1hcmtTdGVw
KHNpemUsIGNvbmZpZykgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2YXIgdG90YWxTaXplID0g
MDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBm
dW5jdGlvbihldmVudCkgewotICAgIHZhciBieXRlc1JlY2VpdmVkID0gZXZlbnQuZGF0YS5ieXRl
TGVuZ3RoOwotICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsKLSAgICAgIGNvbmZpZy5h
ZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2ZWQgJyArCi0gICAgICAg
ICAgYnl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBkZXN0cm95QWxsU29ja2V0cygpOwotICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSAmJiAhdmVyaWZ5
QXJyYXlCdWZmZXIoZXZlbnQuZGF0YSwgMHg2MSkpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygn
UmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgZGVzdHJveUFsbFNvY2tldHMo
KTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxpZWQgKz0gYnl0ZXNSZWNl
aXZlZDsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKLSAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZp
Zyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7
Ci0gICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29ja2V0LmJpbmFyeVR5cGUgPSAn
YXJyYXlidWZmZXInOwotICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2VIYW5kbGVyOwot
ICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICB2
YXIgc29ja2V0SW5kZXggPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwgY29uZmlnLm1pblRvdGFs
KSB7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZCgncmVjZWl2ZSAnICsgc2l6ZSk7Ci0g
ICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tldHMubGVuZ3RoOwotCi0g
ICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY3JlYXRlU29ja2V0KGNv
bmZpZykgewotICAvLyBUT0RPKHR5b3NoaW5vKTogQWRkIFRDUCB3YXJtIHVwLgotICB2YXIgdXJs
ID0gY29uZmlnLnByZWZpeFVybDsKLQotICBjb25maWcuYWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVy
bCk7Ci0KLSAgdmFyIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTsKLSAgc29ja2V0Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdVbmV4cGVjdGVk
IG1lc3NhZ2UgcmVjZWl2ZWQuIEFib3J0aW5nLicpOwotICB9OwotICBzb2NrZXQub25lcnJvciA9
IGZ1bmN0aW9uKCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRXJyb3InKTsKLSAgfTsKLSAgc29j
a2V0Lm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnQ2xv
c2VkJyk7Ci0gIH07Ci0gIHJldHVybiBzb2NrZXQ7Ci19Ci0KLXZhciB0YXNrcyA9IFtdOwotCi1m
dW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xlYXJUaW1lb3V0KHRpbWVySUQp
OwotICBkZXN0cm95QWxsU29ja2V0cygpOwotCi0gIG51bUVzdGFibGlzaGVkU29ja2V0cyA9IDA7
Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtU29ja2V0czsgKytpKSB7Ci0gICAg
dmFyIHNvY2tldCA9IGNyZWF0ZVNvY2tldChjb25maWcpOwotICAgIHNvY2tldC5vbm9wZW4gPSBm
dW5jdGlvbigpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnT3BlbmVkJyk7Ci0KLSAgICAgICsr
bnVtRXN0YWJsaXNoZWRTb2NrZXRzOwotCi0gICAgICBpZiAobnVtRXN0YWJsaXNoZWRTb2NrZXRz
ID09IHNvY2tldHMubGVuZ3RoKSB7Ci0gICAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gICAg
ICB9Ci0gICAgfTsKLSAgICBzb2NrZXRzLnB1c2goc29ja2V0KTsKLSAgfQotfQotCi1mdW5jdGlv
biBydW5OZXh0VGFzayhjb25maWcpIHsKLSAgdmFyIHRhc2sgPSB0YXNrcy5zaGlmdCgpOwotICBp
ZiAodGFzayA9PSB1bmRlZmluZWQpIHsKLSAgICBjb25maWcuYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7
Ci0gICAgZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgdGltZXJJRCA9
IHNldFRpbWVvdXQodGFzaywgMCk7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxkTGVnZW5kU3RyaW5nKGNv
bmZpZykgewotICB2YXIgbGVnZW5kID0gJycKLSAgaWYgKGNvbmZpZy5wcmludFNpemUpCi0gICAg
bGVnZW5kID0gJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFRpbWUvbWVzc2FnZSBpbiBtcywgJzsKLSAg
bGVnZW5kICs9ICdTcGVlZCBpbiBrQi9zJzsKLSAgcmV0dXJuIGxlZ2VuZDsKLX0KLQotZnVuY3Rp
b24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgewotICByZXR1cm4gJyhXZWJTb2NrZXQnICsKLSAg
ICAnLCAnICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZpbmVkIiA/ICdXb3JrZXIn
IDogJ01haW4nKSArCi0gICAgJywgbnVtU29ja2V0cz0nICsgY29uZmlnLm51bVNvY2tldHMgKwot
ICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRpb25zICsKLSAgICAnLCB2
ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0gICAgJywgbWluVG90YWw9JyArIGNv
bmZpZy5taW5Ub3RhbCArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29uZmlnLm51
bVdhcm1VcEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rpb24gYWRkVGFza3MoY29u
ZmlnLCBzdGVwRnVuYykgewotICBmb3IgKHZhciBpID0gMDsKLSAgICAgIGkgPCBjb25maWcubnVt
V2FybVVwSXRlcmF0aW9ucyArIGNvbmZpZy5udW1JdGVyYXRpb25zOyArK2kpIHsKLSAgICAvLyBJ
Z25vcmUgdGhlIGZpcnN0IHxjb25maWcubnVtV2FybVVwSXRlcmF0aW9uc3wgaXRlcmF0aW9ucy4K
LSAgICBpZiAoaSA9PSBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucykKLSAgICAgIGFkZFJlc3Vs
dENsZWFyaW5nVGFzayhjb25maWcpOwotCi0gICAgdmFyIG11bHRpcGxpZXJJbmRleCA9IDA7Ci0g
ICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7Ci0gICAgICAgICBzaXplIDw9IGNv
bmZpZy5zdG9wVGhyZXNob2xkOwotICAgICAgICAgKyttdWx0aXBsaWVySW5kZXgpIHsKLSAgICAg
IHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKLSAgICAgICAgICBudWxsLAotICAgICAgICAgIHNp
emUsCi0gICAgICAgICAgY29uZmlnKTsKLSAgICAgIHRhc2tzLnB1c2godGFzayk7Ci0gICAgICBz
aXplICo9IGNvbmZpZy5tdWx0aXBsaWVyc1sKLSAgICAgICAgICBtdWx0aXBsaWVySW5kZXggJSBj
b25maWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICB9Ci0gIH0KLX0KLQotZnVuY3Rpb24gYWRk
UmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rp
b24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAgICAgY29uZmlnLmFkZFRvU3VtbWFyeSh0
aXRsZSk7Ci0gICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOwotICAgICAgY2xlYXJBdmVy
YWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfSk7Ci19Ci0KLWZ1bmN0
aW9uIGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcpIHsKLSAgdGFza3MucHVzaChmdW5jdGlv
bigpewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAgICBjbGVhckF2ZXJhZ2VEYXRhKCk7Ci0g
ICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNo
bWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdTZW5kIGJlbmNobWFyaycpOwotICBj
b25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBb
XTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHNlbmRCZW5jaG1h
cmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsICdTZW5kIEJlbmNobWFy
ayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcp
OwotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJrKGNvbmZpZykgewotICBjb25maWcuYWRk
VG9Mb2coJ1JlY2VpdmUgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2Vu
ZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVhckF2ZXJhZ2VEYXRhKCk7
Ci0gIGFkZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOwotICBhZGRSZXN1bHRS
ZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICdSZWNlaXZlIEJlbmNobWFyayAnICsgZ2V0Q29u
ZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi1mdW5j
dGlvbiBiYXRjaEJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdCYXRjaCBi
ZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykp
OwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRkVGFza3MoY29u
ZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmln
LCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgYWRkVGFz
a3MoY29uZmlnLCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rh
c2soY29uZmlnLCAnUmVjZWl2ZSBCZW5jaG1hcmsgJyArCi0gICAgICBnZXRDb25maWdTdHJpbmco
Y29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0KLWZ1bmN0aW9uIHN0b3Ao
Y29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgdGltZXJJRCA9IG51bGw7Ci0g
IGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcpOwotICBkZXN0cm95QWxsU29ja2V0cygpOwotfQot
Ci1vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobWVzc2FnZSkgewotICB2YXIgY29uZmlnID0gbWVzc2Fn
ZS5kYXRhLmNvbmZpZzsKLSAgY29uZmlnLmFkZFRvTG9nID0gd29ya2VyQWRkVG9Mb2c7Ci0gIGNv
bmZpZy5hZGRUb1N1bW1hcnkgPSB3b3JrZXJBZGRUb1N1bW1hcnk7Ci0gIGNvbmZpZy5tZWFzdXJl
VmFsdWUgPSB3b3JrZXJNZWFzdXJlVmFsdWU7Ci0gIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0g
J3NlbmRCZW5jaG1hcmsnKQotICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAo
bWVzc2FnZS5kYXRhLnR5cGUgPT09ICdyZWNlaXZlQmVuY2htYXJrJykKLSAgICByZWNlaXZlQmVu
Y2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYmF0Y2hC
ZW5jaG1hcmsnKQotICAgIGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3Nh
Z2UuZGF0YS50eXBlID09PSAnc3RvcCcpCi0gICAgc3RvcChjb25maWcpOwotfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NGFkMGJmZWVmYzZmNDQzMDU3MWI3YjUzMjMzZmI3OTUwNjE0Y2YyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVu
Y2htYXJrX2hlbHBlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0jIENv
cHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotCi0iIiJIYW5kbGVyIGZvciBiZW5jaG1hcmsuaHRtbC4iIiIKLQotCi1k
ZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIyBUdXJuIG9m
ZiBjb21wcmVzc2lvbi4KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10K
LQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIGRhdGEgPSAn
JwotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgY29tbWFuZCA9IHJlcXVlc3Qud3Nfc3RyZWFt
LnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGNvbW1hbmQgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbW1hbmQsIHVuaWNvZGUp
OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjb21tYW5kIGRhdGE6JyAr
IGNvbW1hbmQpCi0gICAgICAgIGNvbW1hbmRzID0gY29tbWFuZC5zcGxpdCgnICcpCi0gICAgICAg
IGlmIGxlbihjb21tYW5kcykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0lu
dmFsaWQgY29tbWFuZCBkYXRhOiAnICsgY29tbWFuZCkKLQotICAgICAgICBpZiBjb21tYW5kc1sw
XSA9PSAncmVjZWl2ZSc6Ci0gICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpICE9IDI6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICdJ
bGxlZ2FsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHNlbmQgY29tbWFuZCcgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgY29tbWFuZCkKLSAgICAgICAgICAgIHNpemUgPSBpbnQoY29tbWFuZHNb
MV0pCi0KLSAgICAgICAgICAgICMgUmV1c2UgZGF0YSBpZiBwb3NzaWJsZS4KLSAgICAgICAgICAg
IGlmIGxlbihkYXRhKSAhPSBzaXplOgotICAgICAgICAgICAgICAgIGRhdGEgPSAnYScgKiBzaXpl
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoZGF0YSwgYmluYXJ5
PVRydWUpCi0gICAgICAgIGVsaWYgY29tbWFuZHNbMF0gPT0gJ3NlbmQnOgotICAgICAgICAgICAg
aWYgbGVuKGNvbW1hbmRzKSAhPSAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRzIGZv
ciByZWNlaXZlIGNvbW1hbmQnICsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCi0g
ICAgICAgICAgICB2ZXJpZnlfZGF0YSA9IGNvbW1hbmRzWzFdID09ICcxJwotCi0gICAgICAgICAg
ICBkYXRhID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAg
IGlmIGRhdGEgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdQYXls
b2FkIG5vdCByZWNlaXZlZCcpCi0gICAgICAgICAgICBzaXplID0gbGVuKGRhdGEpCi0KLSAgICAg
ICAgICAgIGlmIHZlcmlmeV9kYXRhOgotICAgICAgICAgICAgICAgIGlmIGRhdGEgIT0gJ2EnICog
c2l6ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCB2ZXJp
ZmljYXRpb24gZmFpbGVkJykKLQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9t
ZXNzYWdlKHN0cihzaXplKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0ludmFsaWQgY29tbWFuZDogJyArIGNvbW1hbmRzWzBdKQotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jbG9zZV93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2Nsb3NlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjZiMDgzODQwODEyNDUzOTc5NzY1N2Q0MGQ2NDI3OGYxYTY0ODFjMC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nsb3NlX3dz
aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgc3RydWN0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHJlcXVl
c3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGxpbmUgaXMgTm9uZToK
LSAgICAgICAgICAgIHJldHVybgotICAgICAgICBjb2RlLCByZWFzb24gPSBsaW5lLnNwbGl0KCcg
JywgMSkKLSAgICAgICAgaWYgY29kZSBpcyBOb25lIG9yIHJlYXNvbiBpcyBOb25lOgotICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24o
aW50KGNvZGUpLCByZWFzb24pCi0gICAgICAgICMgY2xvc2VfY29ubmVjdGlvbigpIGluaXRpYXRl
cyBjbG9zaW5nIGhhbmRzaGFrZS4gSXQgdmFsaWRhdGVzIGNvZGUKLSAgICAgICAgIyBhbmQgcmVh
c29uLiBJZiB5b3Ugd2FudCB0byBzZW5kIGEgYnJva2VuIGNsb3NlIGZyYW1lIGZvciBhIHRlc3Qs
Ci0gICAgICAgICMgZm9sbG93aW5nIGNvZGUgd2lsbCBiZSB1c2VmdWwuCi0gICAgICAgICMgPiBk
YXRhID0gc3RydWN0LnBhY2soJyFIJywgaW50KGNvZGUpKSArIHJlYXNvbi5lbmNvZGUoJ1VURi04
JykKLSAgICAgICAgIyA+IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShzdHJlYW0uY3JlYXRlX2Ns
b3NlX2ZyYW1lKGRhdGEpKQotICAgICAgICAjID4gIyBTdXBwcmVzcyB0byByZS1yZXNwb25kIGNs
aWVudCByZXNwb25kaW5nIGNsb3NlIGZyYW1lLgotICAgICAgICAjID4gcmFpc2UgRXhjZXB0aW9u
KCJjdXN0b21pemVkIHNlcnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UiKQotCi0KLWRl
ZiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgIyBT
aW1wbHkgZWNobyBhIGNsb3NlIHN0YXR1cyBjb2RlCi0gICAgY29kZSwgcmVhc29uID0gcmVxdWVz
dC53c19jbG9zZV9jb2RlLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbgotCi0gICAgIyBweXdlYnNv
Y2tldCBzZXRzIHBzZXVkbyBjb2RlIGZvciByZWNlaXZpbmcgYW4gZW1wdHkgYm9keSBjbG9zZSBm
cmFtZS4KLSAgICBpZiBjb2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEOgot
ICAgICAgICBjb2RlID0gTm9uZQotICAgICAgICByZWFzb24gPSAnJwotICAgIHJldHVybiBjb2Rl
LCByZWFzb24KLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvY29uc29sZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZDZkOGY4MDY3NmI5OTkxZTIyZGZjN2VjODUwODM0
MTFkZGQwYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMTcgKzAs
MCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi1BbGwgcmlnaHRzIHJlc2Vy
dmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQotICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLW5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlvbi4KLSAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLWNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi1BIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTwhLS0KLUEgc2ltcGxlIGNv
bnNvbGUgZm9yIHRlc3RpbmcgV2ViU29ja2V0IHNlcnZlci4KLQotVHlwZSBhbiBhZGRyZXNzIGlu
dG8gdGhlIHRvcCB0ZXh0IGlucHV0IGFuZCBjbGljayBjb25uZWN0IHRvIGVzdGFibGlzaAotV2Vi
U29ja2V0LiBUaGVuLCB0eXBlIHNvbWUgbWVzc2FnZSBpbnRvIHRoZSBib3R0b20gdGV4dCBpbnB1
dCBhbmQgY2xpY2sgc2VuZAotdG8gc2VuZCB0aGUgbWVzc2FnZS4gUmVjZWl2ZWQvc2VudCBtZXNz
YWdlcyBhbmQgY29ubmVjdGlvbiBzdGF0ZSB3aWxsIGJlIHNob3duCi1vbiB0aGUgbWlkZGxlIHRl
eHRhcmVhLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+V2ViU29ja2V0IGNvbnNvbGU8
L3RpdGxlPgotPHNjcmlwdD4KLXZhciBzb2NrZXQgPSBudWxsOwotCi12YXIgc2hvd1RpbWVTdGFt
cCA9IGZhbHNlOwotCi12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci12YXIgcHJvdG9jb2xzQm94ID0g
bnVsbDsKLXZhciBsb2dCb3ggPSBudWxsOwotdmFyIG1lc3NhZ2VCb3ggPSBudWxsOwotdmFyIGZp
bGVCb3ggPSBudWxsOwotdmFyIGNvZGVCb3ggPSBudWxsOwotdmFyIHJlYXNvbkJveCA9IG51bGw7
Ci0KLWZ1bmN0aW9uIGdldFRpbWVTdGFtcCgpIHsKLSAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpOwotfQotCi1mdW5jdGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgaWYgKHNob3dUaW1lU3RhbXAp
IHsKLSAgICBsb2dCb3gudmFsdWUgKz0gJ1snICsgZ2V0VGltZVN0YW1wKCkgKyAnXSAnOwotICB9
Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAnXG4nCi0gIC8vIExhcmdlIGVub3VnaCB0byBrZWVw
IHNob3dpbmcgdGhlIGxhdGVzdCBtZXNzYWdlLgotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAw
MDsKLX0KLQotZnVuY3Rpb24gc2V0YmluYXJ5dHlwZShiaW5hcnlUeXBlKSB7Ci0gIGlmICghc29j
a2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0K
LQotICBzb2NrZXQuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7Ci0gIGFkZFRvTG9nKCdTZXQgYmlu
YXJ5VHlwZSB0byAnICsgYmluYXJ5VHlwZSk7Ci19Ci0KLWZ1bmN0aW9uIHNlbmQoKSB7Ci0gIGlm
ICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47
Ci0gIH0KLQotICBzb2NrZXQuc2VuZChtZXNzYWdlQm94LnZhbHVlKTsKLSAgYWRkVG9Mb2coJz4g
JyArIG1lc3NhZ2VCb3gudmFsdWUpOwotICBtZXNzYWdlQm94LnZhbHVlID0gJyc7Ci19Ci0KLWZ1
bmN0aW9uIHNlbmRmaWxlKCkgewotICBpZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3Qg
Y29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgdmFyIGZpbGVzID0gZmlsZUJveC5m
aWxlczsKLQotICBpZiAoZmlsZXMubGVuZ3RoID09IDApIHsKLSAgICBhZGRUb0xvZygnRmlsZSBu
b3Qgc2VsZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQuc2VuZChmaWxlc1sw
XSk7Ci0gIGFkZFRvTG9nKCc+IFNlbmQgJyArIGZpbGVzWzBdLm5hbWUpOwotfQotCi1mdW5jdGlv
biBwYXJzZVByb3RvY29scyhwcm90b2NvbHNUZXh0KSB7Ci0gIHZhciBwcm90b2NvbHMgPSBwcm90
b2NvbHNUZXh0LnNwbGl0KCcsJyk7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvdG9jb2xzLmxl
bmd0aDsgKytpKSB7Ci0gICAgcHJvdG9jb2xzW2ldID0gcHJvdG9jb2xzW2ldLnRyaW0oKTsKLSAg
fQotCi0gIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDApIHsKLSAgICAvLyBEb24ndCBwYXNzLgot
ICAgIHByb3RvY29scyA9IG51bGw7Ci0gIH0gZWxzZSBpZiAocHJvdG9jb2xzLmxlbmd0aCA9PSAx
KSB7Ci0gICAgaWYgKHByb3RvY29sc1swXS5sZW5ndGggPT0gMCkgewotICAgICAgLy8gRG9uJ3Qg
cGFzcy4KLSAgICAgIHByb3RvY29scyA9IG51bGw7Ci0gICAgfSBlbHNlIHsKLSAgICAgIC8vIFBh
c3MgYXMgYSBzdHJpbmcuCi0gICAgICBwcm90b2NvbHMgPSBwcm90b2NvbHNbMF07Ci0gICAgfQot
ICB9Ci0KLSAgcmV0dXJuIHByb3RvY29sczsKLX0KLQotZnVuY3Rpb24gY29ubmVjdCgpIHsKLSAg
dmFyIHVybCA9IGFkZHJlc3NCb3gudmFsdWU7Ci0gIHZhciBwcm90b2NvbHMgPSBwYXJzZVByb3Rv
Y29scyhwcm90b2NvbHNCb3gudmFsdWUpOwotCi0gIGlmICgnV2ViU29ja2V0JyBpbiB3aW5kb3cp
IHsKLSAgICBpZiAocHJvdG9jb2xzKSB7Ci0gICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVy
bCwgcHJvdG9jb2xzKTsKLSAgICB9IGVsc2UgewotICAgICAgc29ja2V0ID0gbmV3IFdlYlNvY2tl
dCh1cmwpOwotICAgIH0KLSAgfSBlbHNlIHsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQu
b25vcGVuID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBleHRyYUluZm8gPSBbXTsKLSAgICBpZiAo
KCdwcm90b2NvbCcgaW4gc29ja2V0KSAmJiBzb2NrZXQucHJvdG9jb2wpIHsKLSAgICAgIGV4dHJh
SW5mby5wdXNoKCdwcm90b2NvbCA9ICcgKyBzb2NrZXQucHJvdG9jb2wpOwotICAgIH0KLSAgICBp
ZiAoKCdleHRlbnNpb25zJyBpbiBzb2NrZXQpICYmIHNvY2tldC5leHRlbnNpb25zKSB7Ci0gICAg
ICBleHRyYUluZm8ucHVzaCgnZXh0ZW5zaW9ucyA9ICcgKyBzb2NrZXQuZXh0ZW5zaW9ucyk7Ci0g
ICAgfQotCi0gICAgdmFyIGxvZ01lc3NhZ2UgPSAnT3BlbmVkJzsKLSAgICBpZiAoZXh0cmFJbmZv
Lmxlbmd0aCA+IDApIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJyAoJyArIGV4dHJhSW5mby5qb2lu
KCcsICcpICsgJyknOwotICAgIH0KLSAgICBhZGRUb0xvZyhsb2dNZXNzYWdlKTsKLSAgfTsKLSAg
c29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkgewotICAgIGlmICgoJ0FycmF5QnVm
ZmVyJyBpbiB3aW5kb3cpICYmIChldmVudC5kYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSB7
Ci0gICAgICBhZGRUb0xvZygnPCBSZWNlaXZlZCBhbiBBcnJheUJ1ZmZlciBvZiAnICsgZXZlbnQu
ZGF0YS5ieXRlTGVuZ3RoICsKLSAgICAgICAgICAgICAgICcgYnl0ZXMnKQotICAgIH0gZWxzZSBp
ZiAoKCdCbG9iJyBpbiB3aW5kb3cpICYmIChldmVudC5kYXRhIGluc3RhbmNlb2YgQmxvYikpIHsK
LSAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGEgQmxvYiBvZiAnICsgZXZlbnQuZGF0YS5zaXpl
ICsgJyBieXRlcycpCi0gICAgfSBlbHNlIHsKLSAgICAgIGFkZFRvTG9nKCc8ICcgKyBldmVudC5k
YXRhKTsKLSAgICB9Ci0gIH07Ci0gIHNvY2tldC5vbmVycm9yID0gZnVuY3Rpb24gKCkgewotICAg
IGFkZFRvTG9nKCdFcnJvcicpOwotICB9OwotICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uIChl
dmVudCkgewotICAgIHZhciBsb2dNZXNzYWdlID0gJ0Nsb3NlZCAoJzsKLSAgICBpZiAoKGFyZ3Vt
ZW50cy5sZW5ndGggPT0gMSkgJiYgKCdDbG9zZUV2ZW50JyBpbiB3aW5kb3cpICYmCi0gICAgICAg
IChldmVudCBpbnN0YW5jZW9mIENsb3NlRXZlbnQpKSB7Ci0gICAgICBsb2dNZXNzYWdlICs9ICd3
YXNDbGVhbiA9ICcgKyBldmVudC53YXNDbGVhbjsKLSAgICAgIC8vIGNvZGUgYW5kIHJlYXNvbiBh
cmUgcHJlc2VudCBvbmx5IGZvcgotICAgICAgLy8gZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tl
dHByb3RvY29sLTA2IGFuZCBsYXRlcgotICAgICAgaWYgKCdjb2RlJyBpbiBldmVudCkgewotICAg
ICAgICBsb2dNZXNzYWdlICs9ICcsIGNvZGUgPSAnICsgZXZlbnQuY29kZTsKLSAgICAgIH0KLSAg
ICAgIGlmICgncmVhc29uJyBpbiBldmVudCkgewotICAgICAgICBsb2dNZXNzYWdlICs9ICcsIHJl
YXNvbiA9ICcgKyBldmVudC5yZWFzb247Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGxv
Z01lc3NhZ2UgKz0gJ0Nsb3NlRXZlbnQgaXMgbm90IGF2YWlsYWJsZSc7Ci0gICAgfQotICAgIGFk
ZFRvTG9nKGxvZ01lc3NhZ2UgKyAnKScpOwotICB9OwotCi0gIGlmIChwcm90b2NvbHMpIHsKLSAg
ICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsICsgJyAocHJvdG9jb2xzID0gJyArIHByb3RvY29s
cyArICcpJyk7Ci0gIH0gZWxzZSB7Ci0gICAgYWRkVG9Mb2coJ0Nvbm5lY3QgJyArIHVybCk7Ci0g
IH0KLX0KLQotZnVuY3Rpb24gY2xvc2VTb2NrZXQoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAg
YWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBpZiAoY29k
ZUJveC52YWx1ZSB8fCByZWFzb25Cb3gudmFsdWUpIHsKLSAgICBzb2NrZXQuY2xvc2UoY29kZUJv
eC52YWx1ZSwgcmVhc29uQm94LnZhbHVlKTsKLSAgfSBlbHNlIHsKLSAgICBzb2NrZXQuY2xvc2Uo
KTsKLSAgfQotfQotCi1mdW5jdGlvbiBwcmludFN0YXRlKCkgewotICBpZiAoIXNvY2tldCkgewot
ICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgYWRk
VG9Mb2coCi0gICAgICAndXJsID0gJyArIHNvY2tldC51cmwgKwotICAgICAgJywgcmVhZHlTdGF0
ZSA9ICcgKyBzb2NrZXQucmVhZHlTdGF0ZSArCi0gICAgICAnLCBidWZmZXJlZEFtb3VudCA9ICcg
KyBzb2NrZXQuYnVmZmVyZWRBbW91bnQpOwotfQotCi1mdW5jdGlvbiBpbml0KCkgewotICB2YXIg
c2NoZW1lID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09ICdodHRwczonID8gJ3dzczovLycg
OiAnd3M6Ly8nOwotICB2YXIgZGVmYXVsdEFkZHJlc3MgPSBzY2hlbWUgKyB3aW5kb3cubG9jYXRp
b24uaG9zdCArICcvZWNobyc7Ci0KLSAgYWRkcmVzc0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdhZGRyZXNzJyk7Ci0gIHByb3RvY29sc0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdwcm90b2NvbHMnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycp
OwotICBtZXNzYWdlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lc3NhZ2UnKTsKLSAg
ZmlsZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlJyk7Ci0gIGNvZGVCb3ggPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29kZScpOwotICByZWFzb25Cb3ggPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgncmVhc29uJyk7Ci0KLSAgYWRkcmVzc0JveC52YWx1ZSA9IGRlZmF1bHRB
ZGRyZXNzOwotCi0gIGlmICghKCdXZWJTb2NrZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xv
ZygnV2ViU29ja2V0IGlzIG5vdCBhdmFpbGFibGUnKTsKLSAgfQotfQotPC9zY3JpcHQ+Ci08c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgotZm9ybSB7Ci0gIG1hcmdpbjogMHB4OwotfQotCi0jY29ubmVj
dF9kaXYsICNsb2dfZGl2LCAjc2VuZF9kaXYsICNzZW5kZmlsZV9kaXYsICNjbG9zZV9kaXYsICNw
cmludHN0YXRlX2RpdiB7Ci0gIHBhZGRpbmc6IDVweDsKLSAgbWFyZ2luOiA1cHg7Ci0gIGJvcmRl
ci13aWR0aDogMHB4IDBweCAwcHggMTBweDsKLSAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKLSAgYm9y
ZGVyLWNvbG9yOiBzaWx2ZXI7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJp
bml0KCkiPgotCi08ZGl2PgotCi08ZGl2IGlkPSJjb25uZWN0X2RpdiI+Ci0gIDxmb3JtIGFjdGlv
bj0iIyIgb25zdWJtaXQ9ImNvbm5lY3QoKTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgdXJsIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0eXBlPSJz
dWJtaXQiIHZhbHVlPSJjb25uZWN0Ij4KLSAgICA8YnIvPgotICAgIHByb3RvY29scyA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InByb3RvY29scyIgc2l6ZT0iMjAiPgotICA8L2Zvcm0+Ci08L2Rpdj4K
LQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYSBpZD0ibG9nIiByb3dzPSIxMCIgY29s
cz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci0gIDxici8+Ci0gIDxpbnB1dCB0eXBlPSJjaGVj
a2JveCIKLSAgICAgICAgIG5hbWU9InNob3d0aW1lc3RhbXAiCi0gICAgICAgICB2YWx1ZT0ic2hv
d3RpbWVzdGFtcCIKLSAgICAgICAgIG9uY2xpY2s9InNob3dUaW1lU3RhbXAgPSB0aGlzLmNoZWNr
ZWQiPlNob3cgdGltZSBzdGFtcAotPC9kaXY+Ci0KLTxkaXYgaWQ9InNlbmRfZGl2Ij4KLSAgPGZv
cm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZCgpOyByZXR1cm4gZmFsc2U7Ij4KLSAgICBkYXRh
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWVzc2FnZSIgc2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0
eXBlPSJzdWJtaXQiIHZhbHVlPSJzZW5kIj4KLSAgPC9mb3JtPgotPC9kaXY+Ci0KLTxkaXYgaWQ9
InNlbmRmaWxlX2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJtaXQ9InNlbmRmaWxlKCk7
IHJldHVybiBmYWxzZTsiPgotICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZSIgc2l6ZT0i
NDAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzZW5kIGZpbGUiPgotICA8L2Zv
cm0+Ci0KLSAgU2V0IGJpbmFyeVR5cGUKLSAgPGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAg
bmFtZT0iYmluYXJ5dHlwZSIKLSAgICAgICAgIHZhbHVlPSJibG9iIgotICAgICAgICAgb25jbGlj
az0ic2V0YmluYXJ5dHlwZSgnYmxvYicpIiBjaGVja2VkPmJsb2IKLSAgPGlucHV0IHR5cGU9InJh
ZGlvIgotICAgICAgICAgbmFtZT0iYmluYXJ5dHlwZSIKLSAgICAgICAgIHZhbHVlPSJhcnJheWJ1
ZmZlciIKLSAgICAgICAgIG9uY2xpY2s9InNldGJpbmFyeXR5cGUoJ2FycmF5YnVmZmVyJykiPmFy
cmF5YnVmZmVyCi08L2Rpdj4KLQotPGRpdiBpZD0iY2xvc2VfZGl2Ij4KLSAgPGZvcm0gYWN0aW9u
PSIjIiBvbnN1Ym1pdD0iY2xvc2VTb2NrZXQoKTsgcmV0dXJuIGZhbHNlOyI+Ci0gICAgY29kZSA8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvZGUiIHNpemU9IjEwIj4KLSAgICByZWFzb24gPGlucHV0
IHR5cGU9InRleHQiIGlkPSJyZWFzb24iIHNpemU9IjIwIj4KLSAgICA8aW5wdXQgdHlwZT0ic3Vi
bWl0IiB2YWx1ZT0iY2xvc2UiPgotICA8L2Zvcm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0icHJpbnRz
dGF0ZV9kaXYiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0icHJpbnQgc3RhdGUiIG9u
Y2xpY2s9InByaW50U3RhdGUoKTsiPgotPC9kaXY+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93c2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2Nvb2tpZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhi
MzI3MTUyZTcwMWY3ZDIwMzFkN2M5Y2UwNDYyNGNmYTg0YWMxNmQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb29raWVfd3No
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5j
b20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLQotaW1wb3J0IHVybHBhcnNlCi0KLQotZGVm
IF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCB2YWx1ZSk6Ci0gICAgcmVxdWVzdC5leHRyYV9oZWFk
ZXJzLmFwcGVuZCgoJ1NldC1Db29raWUnLCB2YWx1ZSkpCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGNvbXBvbmVudHMgPSB1cmxwYXJzZS51cmxw
YXJzZShyZXF1ZXN0LnVyaSkKLSAgICBjb21tYW5kID0gY29tcG9uZW50c1s0XQotCi0gICAgT05F
X0RBWV9MSUZFID0gJ01heC1BZ2U9ODY0MDAnCi0KLSAgICBpZiBjb21tYW5kID09ICdzZXQnOgot
ICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJzsgJy5qb2luKFsnZm9vPWJhcicsIE9O
RV9EQVlfTElGRV0pKQotICAgIGVsaWYgY29tbWFuZCA9PSAnc2V0X2h0dHBvbmx5JzoKLSAgICAg
ICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsCi0gICAgICAgICAgICAnOyAnLmpvaW4oWydodHRw
T25seUZvbz1iYXInLCBPTkVfREFZX0xJRkUsICdodHRwT25seSddKSkKLSAgICBlbGlmIGNvbW1h
bmQgPT0gJ2NsZWFyJzoKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsICdmb289MDsg
TWF4LUFnZT0wJykKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsICdodHRwT25seUZv
bz0wOyBNYXgtQWdlPTAnKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk0M2NlNjRlOGI4ODY1NjJmYzY5MjA5ODM0YmY5MmIxMzk5MTQyZjcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9lY2hvX2NsaWVudC5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMjggKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJTaW1wbGUgV2ViU29j
a2V0IGNsaWVudCBuYW1lZCBlY2hvX2NsaWVudCBqdXN0IGJlY2F1c2Ugb2YgaGlzdG9yaWNhbCBy
ZWFzb24uCi0KLW1vZF9weXdlYnNvY2tldCBkaXJlY3RvcnkgbXVzdCBiZSBpbiBQWVRIT05QQVRI
LgotCi1FeGFtcGxlIFVzYWdlOgotCi0jIHNlcnZlciBzZXR1cAotICUgY2QgJHB5d2Vic29ja2V0
Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL21vZF9weXdlYnNvY2tldC9zdGFuZGFs
b25lLnB5IC1wIDg4ODAgXAotICAgIC1kICRjd2Qvc3JjL2V4YW1wbGUKLQotIyBydW4gY2xpZW50
Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL3NyYy9leGFtcGxlL2VjaG9fY2xpZW50
LnB5IC1wIDg4ODAgXAotICAgICAtcyBsb2NhbGhvc3QgXAotICAgICAtbyBodHRwOi8vbG9jYWxo
b3N0IC1yIC9lY2hvIC1tIHRlc3QKLQotb3IKLQotIyBydW4gZWNobyBjbGllbnQgdG8gdGVzdCBJ
RVRGIEh5QmkgMDAgcHJvdG9jb2wKLSBydW4gd2l0aCAtLXByb3RvY29sLXZlcnNpb249aHliaTAw
Ci0iIiIKLQotCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgY29kZWNzCi1pbXBvcnQgbG9nZ2luZwot
ZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCi1pbXBvcnQgb3MKLWltcG9ydCByYW5k
b20KLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHN5cwot
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20g
bW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5z
aW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBfUGVy
TWVzc2FnZURlZmxhdGVGcmFtZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1w
b3J0IF9wYXJzZV93aW5kb3dfYml0cwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9y
dCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3
NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1PcHRpb25zCi1mcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLV9USU1FT1VUX1NFQyA9IDEwCi1fVU5E
RUZJTkVEX1BPUlQgPSAtMQotCi1fVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0
XHJcbicKLV9VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4n
Ci1fQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0KLSMgU3Bl
Y2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3Npbmcg
aGFuZHNoYWtlCi1fR09PREJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCi0KLV9QUk9UT0NPTF9WRVJT
SU9OX0hZQkkxMyA9ICdoeWJpMTMnCi1fUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggPSAnaHliaTA4
JwotX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwID0gJ2h5YmkwMCcKLV9QUk9UT0NPTF9WRVJTSU9O
X0hJWElFNzUgPSAnaGl4aWU3NScKLQotIyBDb25zdGFudHMgZm9yIHRoZSAtLXRsc19tb2R1bGUg
ZmxhZy4KLV9UTFNfQllfU1RBTkRBUkRfTU9EVUxFID0gJ3NzbCcKLV9UTFNfQllfUFlPUEVOU1NM
ID0gJ3B5b3BlbnNzbCcKLQotIyBWYWx1ZXMgdXNlZCBieSB0aGUgLS10bHMtdmVyc2lvbiBmbGFn
LgotX1RMU19WRVJTSU9OX1NTTDIzID0gJ3NzbDIzJwotX1RMU19WRVJTSU9OX1NTTDMgPSAnc3Ns
MycKLV9UTFNfVkVSU0lPTl9UTFMxID0gJ3RsczEnCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNoYWtl
RXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCi0KLQotZGVmIF9idWlsZF9tZXRob2RfbGluZShy
ZXNvdXJjZSk6Ci0gICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291cmNlCi0K
LQotZGVmIF9vcmlnaW5faGVhZGVyKGhlYWRlciwgb3JpZ2luKToKLSAgICAjIDQuMSAxMy4gY29u
Y2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46IiwgYSBVKzAwMjAgU1BBQ0UgY2hhcmFj
dGVyLAotICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxv
d2VyY2FzZSwgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICclczogJXNcclxuJyAlIChoZWFkZXIs
IG9yaWdpbi5sb3dlcigpKQotCi0KLWRlZiBfZm9ybWF0X2hvc3RfaGVhZGVyKGhvc3QsIHBvcnQs
IHNlY3VyZSk6Ci0gICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9ydC8gYmUgYW4gZW1wdHkgc3RyaW5n
LgotICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2YWx1ZSwgY29udmVydGVkIHRvIEFT
Q0lJIGxvd2VyY2FzZSwgdG8KLSAgICAjIC9ob3N0cG9ydC8KLSAgICBob3N0cG9ydCA9IGhvc3Qu
bG93ZXIoKQotICAgICMgNC4xIDExLiBJZiAvc2VjdXJlLyBpcyBmYWxzZSwgYW5kIC9wb3J0LyBp
cyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCi0gICAgIyBpcyB0cnVlLCBhbmQgL3BvcnQvIGlzIG5v
dCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9OIGNoYXJhY3RlcgotICAgICMgKDopIGZv
bGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJlc3NlZCBhcyBhIGJhc2UtdGVuIGlu
dGVnZXIsCi0gICAgIyB0byAvaG9zdHBvcnQvCi0gICAgaWYgKChub3Qgc2VjdXJlIGFuZCBwb3J0
ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCkgb3IKLSAgICAgICAgKHNlY3VyZSBh
bmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUKSk6Ci0gICAg
ICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQotICAgICMgNC4xIDEyLiBjb25jYXRlbmF0
aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAgU1BBQ0UKLSAgICAjIGNoYXJhY3Rl
ciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnJXM6ICVzXHJcbicg
JSAoY29tbW9uLkhPU1RfSEVBREVSLCBob3N0cG9ydCkKLQotCi1kZWYgX3JlY2VpdmVfYnl0ZXMo
c29ja2V0LCBsZW5ndGgpOgotICAgIGJ5dGVzID0gW10KLSAgICByZW1haW5pbmcgPSBsZW5ndGgK
LSAgICB3aGlsZSByZW1haW5pbmcgPiAwOgotICAgICAgICByZWNlaXZlZF9ieXRlcyA9IHNvY2tl
dC5yZWN2KHJlbWFpbmluZykKLSAgICAgICAgaWYgbm90IHJlY2VpdmVkX2J5dGVzOgotICAgICAg
ICAgICAgcmFpc2UgSU9FcnJvcigKLSAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQg
YmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcKLSAgICAgICAgICAgICAgICAnKHJl
cXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2ZWQgb25seSAlZCBieXRlcyknICUKLSAgICAgICAg
ICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSByZW1haW5pbmcpKQotICAgICAgICBieXRlcy5hcHBl
bmQocmVjZWl2ZWRfYnl0ZXMpCi0gICAgICAgIHJlbWFpbmluZyAtPSBsZW4ocmVjZWl2ZWRfYnl0
ZXMpCi0gICAgcmV0dXJuICcnLmpvaW4oYnl0ZXMpCi0KLQotZGVmIF9nZXRfbWFuZGF0b3J5X2hl
YWRlcihmaWVsZHMsIG5hbWUpOgotICAgICIiIkdldHMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIg
c3BlY2lmaWVkIGJ5IG5hbWUgZnJvbSBmaWVsZHMuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIGV4cGVj
dHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZQot
ICAgIGluIGZpZWxkcy4gT3RoZXJ3aXNlLCByYWlzZXMgYW4gQ2xpZW50SGFuZHNoYWtlRXJyb3Iu
Ci0gICAgIiIiCi0KLSAgICB2YWx1ZXMgPSBmaWVsZHMuZ2V0KG5hbWUubG93ZXIoKSkKLSAgICBp
ZiB2YWx1ZXMgaXMgTm9uZSBvciBsZW4odmFsdWVzKSA9PSAwOgotICAgICAgICByYWlzZSBDbGll
bnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICclcyBoZWFkZXIgbm90IGZvdW5kOiAlcicg
JSAobmFtZSwgdmFsdWVzKSkKLSAgICBpZiBsZW4odmFsdWVzKSA+IDE6Ci0gICAgICAgIHJhaXNl
IENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgJ011bHRpcGxlICVzIGhlYWRlcnMg
Zm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQotICAgIHJldHVybiB2YWx1ZXNbMF0KLQotCi1k
ZWYgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3ZhbHVlLCBjYXNlX3NlbnNpdGl2ZT1GYWxzZSk6
Ci0gICAgIiIiR2V0cyBhbmQgdmFsaWRhdGVzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHNwZWNp
ZmllZCBieSBuYW1lIGZyb20KLSAgICBmaWVsZHMuCi0KLSAgICBJZiBleHBlY3RlZF92YWx1ZSBp
cyBzcGVjaWZpZWQsIGNvbXBhcmVzIGV4cGVjdGVkIHZhbHVlIGFuZCBhY3R1YWwgdmFsdWUKLSAg
ICBhbmQgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9yIG9uIGZhaWx1cmUuIFlvdSBjYW4g
c3BlY2lmeSBjYXNlCi0gICAgc2Vuc2l0aXZlbmVzcyBpbiB0aGlzIGNvbXBhcmlzb24gYnkgY2Fz
ZV9zZW5zaXRpdmUgcGFyYW1ldGVyLiBUaGlzIGZ1bmN0aW9uCi0gICAgZXhwZWN0cyB0aGF0IHRo
ZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGluIGZpZWxkcy4K
LSAgICBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VFcnJvci4KLSAgICAiIiIK
LQotICAgIHZhbHVlID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKGZpZWxkcywgbmFtZSkKLQotICAg
IGlmICgoY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlICE9IGV4cGVjdGVkX3ZhbHVlKSBvcgotICAg
ICAgICAobm90IGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZS5sb3dlcigpICE9IGV4cGVjdGVkX3Zh
bHVlLmxvd2VyKCkpKToKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAg
ICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlciAoZXhwZWN0ZWQpIHZzICVy
IChhY3R1YWwpJyAlCi0gICAgICAgICAgICAobmFtZSwgZXhwZWN0ZWRfdmFsdWUsIHZhbHVlKSkK
LQotCi1jbGFzcyBfVExTU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiV3JhcHBlciBmb3IgYSBUTFMg
Y29ubmVjdGlvbi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLAotICAgICAgICAgICAgICAg
ICByYXdfc29ja2V0LCB0bHNfbW9kdWxlLCB0bHNfdmVyc2lvbiwgZGlzYWJsZV90bHNfY29tcHJl
c3Npb24pOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLQotICAgICAgICBpZiB0bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgot
ICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1NTTDIzOgotICAgICAg
ICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjIzCi0gICAgICAgICAgICBlbGlm
IHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAgICAgICAgICAgIHZlcnNp
b24gPSBzc2wuUFJPVE9DT0xfU1NMdjMKLSAgICAgICAgICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0g
X1RMU19WRVJTSU9OX1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NP
TF9UTFN2MQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVy
JyAlIHRsc192ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBkaXNhYmxlX3Rsc19jb21wcmVzc2lv
bjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAnLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBzc2wgJwot
ICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJykKLQotICAgICAgICAgICAgc2VsZi5fdGxzX3Nv
Y2tldCA9IHNzbC53cmFwX3NvY2tldChyYXdfc29ja2V0LCBzc2xfdmVyc2lvbj12ZXJzaW9uKQot
Ci0gICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9u
IHdyYXBfc29ja2V0IGNhbGwuCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygiQ2lwaGVy
OiAlcyIsIHNlbGYuX3Rsc19zb2NrZXQuY2lwaGVyKCkpCi0gICAgICAgIGVsaWYgdGxzX21vZHVs
ZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIHRsc192ZXJzaW9uID09IF9U
TFNfVkVSU0lPTl9TU0wyMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNTTC5TU0wu
U1NMdjIzX01FVEhPRAotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJ
T05fU1NMMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNTTC5TU0wuU1NMdjNfTUVU
SE9ECi0gICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9UTFMxOgot
ICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5UTFN2MV9NRVRIT0QKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgJ0ludmFsaWQgLS10bHMtdmVyc2lvbiBmbGFnOiAlcicgJSB0bHNfdmVyc2lv
bikKLQotICAgICAgICAgICAgY29udGV4dCA9IE9wZW5TU0wuU1NMLkNvbnRleHQodmVyc2lvbikK
LQotICAgICAgICAgICAgaWYgZGlzYWJsZV90bHNfY29tcHJlc3Npb246Ci0gICAgICAgICAgICAg
ICAgIyBPUF9OT19DT01QUkVTU0lPTiBpcyBub3QgZGVmaW5lZCBpbiBPcGVuU1NMIG1vZHVsZS4K
LSAgICAgICAgICAgICAgICBjb250ZXh0LnNldF9vcHRpb25zKDB4MDAwMjAwMDApCi0KLSAgICAg
ICAgICAgIHNlbGYuX3Rsc19zb2NrZXQgPSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uKGNvbnRleHQs
IHJhd19zb2NrZXQpCi0gICAgICAgICAgICAjIENsaWVudCBtb2RlLgotICAgICAgICAgICAgc2Vs
Zi5fdGxzX3NvY2tldC5zZXRfY29ubmVjdF9zdGF0ZSgpCi0gICAgICAgICAgICBzZWxmLl90bHNf
c29ja2V0LnNldGJsb2NraW5nKFRydWUpCi0KLSAgICAgICAgICAgICMgRG8gaGFuZHNoYWtlIG5v
dyAobm90IG5lY2Vzc2FyeSkuCi0gICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBU
TFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykKLQotICAgIGRlZiBzZW5kKHNlbGYsIGRh
dGEpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC53cml0ZShkYXRhKQotCi0gICAg
ZGVmIHNlbmRhbGwoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0
LnNlbmRhbGwoZGF0YSkKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9LTEpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5yZWFkKHNpemUpCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBnZXRw
ZWVybmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19zb2NrZXQuZ2V0cGVlcm5h
bWUoKQotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZUJhc2Uob2JqZWN0KToKLSAgICAiIiJBIGJh
c2UgY2xhc3MgZm9yIFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3JzIGZvciBl
YWNoCi0gICAgcHJvdG9jb2wgdmVyc2lvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICBkZWYgX3JlYWRfZmllbGRzKHNlbGYpOgotICAgICAgICAjIDQuMSAzMi4gbGV0IC9m
aWVsZHMvIGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCi0g
ICAgICAgIGZpZWxkcyA9IHt9Ci0gICAgICAgIHdoaWxlIFRydWU6ICAjICJGaWVsZCIKLSAgICAg
ICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJy
YXlzCi0gICAgICAgICAgICBuYW1lID0gJycKLSAgICAgICAgICAgIHZhbHVlID0gJycKLSAgICAg
ICAgICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLwotICAgICAgICAgICAgbmFtZSA9IHNlbGYuX3Jl
YWRfbmFtZSgpCi0gICAgICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg
YnJlYWsKLSAgICAgICAgICAgICMgNC4xIDM1LiByZWFkIHNwYWNlcwotICAgICAgICAgICAgIyBU
T0RPKHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNw
ZWMuCi0gICAgICAgICAgICBjaCA9IHNlbGYuX3NraXBfc3BhY2VzKCkKLSAgICAgICAgICAgICMg
NC4xIDM2LiByZWFkIC92YWx1ZS8KLSAgICAgICAgICAgIHZhbHVlID0gc2VsZi5fcmVhZF92YWx1
ZShjaCkKLSAgICAgICAgICAgICMgNC4xIDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIK
LSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAg
ICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVu
dEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZv
dW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9yICcKLSAgICAgICAgICAgICAgICAgICAg
J2hlYWRlciAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnUmVjZWl2ZWQgJXIgaGVhZGVyJywgbmFtZSkKLSAgICAgICAgICAgICMgNC4xIDM4
LiBhcHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUK
LSAgICAgICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBvYnRhaW5lZCBieSBpbnRlcnByZXRp
bmcgdGhlIC9uYW1lLyBieXRlCi0gICAgICAgICAgICAjIGFycmF5IGFzIGEgVVRGLTggc3RyZWFt
IGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwotICAgICAgICAgICAgIyBvYnRhaW5l
ZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUK
LSAgICAgICAgICAgICMgc3RyZWFtLgotICAgICAgICAgICAgZmllbGRzLnNldGRlZmF1bHQobmFt
ZSwgW10pLmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgICAgICMgNC4xIDM5LiByZXR1cm4gdG8gdGhl
ICJGaWVsZCIgc3RlcCBhYm92ZQotICAgICAgICByZXR1cm4gZmllbGRzCi0KLSAgICBkZWYgX3Jl
YWRfbmFtZShzZWxmKToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYmUgZW1wdHkgYnl0
ZSBhcnJheXMKLSAgICAgICAgbmFtZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAg
ICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgICAgICBj
aCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIGNoID09
ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAg
ZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVh
ZGluZyBoZWFkZXIgbmFtZSAlcicgJSBuYW1lKQotICAgICAgICAgICAgZWxpZiBjaCA9PSAnOic6
ICAjIDB4M0EKLSAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQotICAgICAgICAgICAgZWxpZiBj
aCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMgUmFuZ2UgMHgzMSB0byAweDVBCi0gICAgICAgICAg
ICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCi0gICAgICAgICAgICAgICAgbmFtZSArPSBj
aAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBuYW1lICs9IGNoCi0KLSAgICBk
ZWYgX3NraXBfc3BhY2VzKHNlbGYpOgotICAgICAgICAjIDQuMSAzNS4gcmVhZCBhIGJ5dGUgZnJv
bSB0aGUgc2VydmVyCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlmIGNoID09ICcgJzogICMg
MHgyMAotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByZXR1cm4gY2gKLQot
ICAgIGRlZiBfcmVhZF92YWx1ZShzZWxmLCBjaCk6Ci0gICAgICAgICMgNC4xIDMzLiBsZXQgL3Zh
bHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICB2YWx1ZSA9ICcnCi0gICAgICAgICMg
NC4xIDM2LiByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlci4KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUKLSAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVlICVyJyAlIHZhbHVlKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB2YWx1ZSArPSBjaAotICAgICAgICAgICAgY2gg
PSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0KLQotZGVmIF9nZXRfcGVybWVzc2Fn
ZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb25fcmVzcG9uc2UpOgotICAgICIiIlZhbGlkYXRlIHRo
ZSByZXNwb25zZSBhbmQgcmV0dXJuIGEgZnJhbWVyIG9iamVjdCB1c2luZyB0aGUgcGFyYW1ldGVy
cyBpbgotICAgIHRoZSByZXNwb25zZS4gVGhpcyBtZXRob2QgZG9lc24ndCBhY2NlcHQgdGhlIHNl
cnZlcl8uKiBwYXJhbWV0ZXJzLgotICAgICIiIgotCi0gICAgY2xpZW50X21heF93aW5kb3dfYml0
cyA9IE5vbmUKLSAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IE5vbmUKLQotICAgIGNs
aWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSA9ICgKLSAgICAgICAgICAgIFBlck1lc3NhZ2VEZWZs
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgotICAgICAgICAgICAgICAgICAgICBfQ0xJRU5UX01BWF9X
SU5ET1dfQklUU19QQVJBTSkKLSAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcl9uYW1lID0g
KAotICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAg
ICAgICAgICAgICAgICAgIF9DTElFTlRfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKLQotICAg
ICMgV2UgZGlkbid0IHNlbmQgYW55IHNlcnZlcl8uKiBwYXJhbWV0ZXIuCi0gICAgIyBIYW5kbGUg
dGhvc2UgcGFyYW1ldGVycyBhcyBpbnZhbGlkIGlmIGZvdW5kIGluIHRoZSByZXNwb25zZS4KLQot
ICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNpb25fcmVzcG9uc2UuZ2V0
X3BhcmFtZXRlcnMoKToKLSAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBjbGllbnRfbWF4X3dpbmRv
d19iaXRzX25hbWU6Ci0gICAgICAgICAgICBpZiBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAlIGNsaWVudF9tYXhfd2lu
ZG93X2JpdHNfbmFtZSkKLQotICAgICAgICAgICAgcGFyc2VkX3ZhbHVlID0gX3BhcnNlX3dpbmRv
d19iaXRzKHBhcmFtX3ZhbHVlKQotICAgICAgICAgICAgaWYgcGFyc2VkX3ZhbHVlIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAnQmFkICVzOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGNs
aWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSwgcGFyYW1fdmFsdWUpKQotICAgICAgICAgICAgY2xp
ZW50X21heF93aW5kb3dfYml0cyA9IHBhcnNlZF92YWx1ZQotICAgICAgICBlbGlmIHBhcmFtX25h
bWUgPT0gY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZToKLSAgICAgICAgICAgIGlmIGNs
aWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRp
cGxlICVzIGZvdW5kJyAlIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyX25hbWUpCi0KLSAgICAg
ICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNl
IENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ0JhZCAlczog
SGFzIHZhbHVlICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAoY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXJfbmFtZSwgcGFyYW1fdmFsdWUpKQotICAgICAgICAgICAgY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXIgPSBUcnVlCi0KLSAgICBpZiBjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
ciBpcyBOb25lOgotICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCi0K
LSAgICByZXR1cm4gX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKGNsaWVudF9tYXhfd2luZG93X2Jp
dHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfbm9fY29udGV4
dF90YWtlb3ZlcikKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoQ2xpZW50SGFu
ZHNoYWtlQmFzZSk6Ci0gICAgIiIiV2ViU29ja2V0IG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nv
ciBmb3IKLSAgICBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxh
dGVyLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6
Ci0gICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvciwgc2VsZikuX19pbml0X18o
KQotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVyZm9ybXMg
b3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmllZCBzb2NrZXQuCi0KLSAgICAgICAgUmFp
c2VzOgotICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtlRXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9idWlsZF9tZXRob2RfbGlu
ZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Ns
aWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRh
bGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgIGZpZWxkcy5h
cHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2Vy
dmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZChfVVBH
UkFERV9IRUFERVIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm9yaWdpbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9I
WUJJMDg6Ci0gICAgICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcigKLSAg
ICAgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiwKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKGNvbW1vbi5P
UklHSU5fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotCi0gICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVy
YW5kb20oMTYpCi0gICAgICAgIHNlbGYuX2tleSA9IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxf
a2V5KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnJXM6ICVyICgl
cyknLAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwKLSAgICAg
ICAgICAgIHNlbGYuX2tleSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkp
Ci0gICAgICAgIGZpZWxkcy5hcHBlbmQoCi0gICAgICAgICAgICAnJXM6ICVzXHJcbicgJSAoY29t
bW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwgc2VsZi5fa2V5KSkKLQotICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyID4gMDoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBl
bmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy52
ZXJzaW9uX2hlYWRlcikpCi0gICAgICAgIGVsaWYgc2VsZi5fb3B0aW9ucy5wcm90b2NvbF92ZXJz
aW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBl
bmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlZFUlNJT05f
SFlCSTA4KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAl
ZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlZFUlNJT05fSFlCSV9MQVRF
U1QpKQotCi0gICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdCA9IFtdCi0KLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgZXh0ZW5zaW9uc190b19y
ZXF1ZXN0LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlOgotICAgICAgICAgICAgZXh0ZW5zaW9uID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgICAgICAjIEFjY2VwdCB0aGUgY2xpZW50
X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIGJ5IGRlZmF1bHQuCi0gICAgICAg
ICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAgICAgUGVyTWVz
c2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgIE5v
bmUpCi0gICAgICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QuYXBwZW5kKGV4dGVuc2lvbikK
LQotICAgICAgICBpZiBsZW4oZXh0ZW5zaW9uc190b19yZXF1ZXN0KSAhPSAwOgotICAgICAgICAg
ICAgZmllbGRzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAnJXM6ICVzXHJcbicgJQotICAgICAg
ICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKLSAgICAg
ICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKGV4dGVuc2lvbnNfdG9fcmVxdWVz
dCkpKQotCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9z
b2NrZXQuc2VuZGFsbChmaWVsZCkKLQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJc
bicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IGNsaWVudFwncyBvcGVuaW5n
IGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVs
ZHMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBTdGF0dXMtTGlu
ZScpCi0KLSAgICAgICAgc3RhdHVzX2xpbmUgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAg
ICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAg
ICBzdGF0dXNfbGluZSArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgICAgIG0gPSByZS5tYXRjaCgnSFRUUC9cXGQrXC5cXGQrIChc
XGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQotICAgICAgICBpZiBtIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAn
V3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0dXNfbGluZSkKLSAgICAgICAgc3Rh
dHVzX2NvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgIGlmIHN0YXR1c19jb2RlICE9ICcxMDEnOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmV4cGVjdGVkIHN0YXR1cyBjb2RlICVz
IHdpdGggZm9sbG93aW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVy
czogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVhZF9maWVsZHMoKSkKLSAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQ
IHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXInICUgc3RhdHVzX2NvZGUpCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2YWxpZCBTdGF0dXMtTGluZScpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBoZWFkZXJzIHVudGlsIHdlIHNlZSBh
biBlbXB0eSBsaW5lJykKLQotICAgICAgICBmaWVsZHMgPSBzZWxmLl9yZWFkX2ZpZWxkcygpCi0K
LSAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlm
IGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVy
cm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVh
ZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAgICAgICAgICAgICAgICAnbmFtZSAlcicgJSAo
Y2gsIHZhbHVlLCBuYW1lKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlY2VpdmVk
IGFuIGVtcHR5IGxpbmUnKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlcnZlclwncyBv
cGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQotICAgICAgICBfdmFsaWRh
dGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywKLSAgICAgICAgICAgIGNv
bW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFE
RV9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgX3ZhbGlkYXRlX21hbmRhdG9y
eV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAgICBjb21tb24uQ09OTkVD
VElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUs
Ci0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBhY2NlcHQgPSBfZ2V0X21hbmRhdG9yeV9o
ZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9I
RUFERVIpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBi
aW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBU
eXBlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFcnJvcigKLSAgICAgICAg
ICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlcicgJQotICAgICAgICAgICAg
ICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQotCi0gICAg
ICAgIGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAgICAgIHJhaXNlIENsaWVu
dEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdEZWNvZGVkIHZhbHVlIG9mICVzIGlz
IG5vdCAyMC1ieXRlIGxvbmcnICUKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tF
VF9BQ0NFUFRfSEVBREVSKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAg
ICAgICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIgKCVzKScsCi0gICAgICAgICAgICBhY2Nl
cHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQotCi0gICAgICAgIGJpbmFyeV9leHBlY3Rl
ZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAgICAgIHNlbGYuX2tleSArIGNvbW1v
bi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgICAgIGV4cGVjdGVkX2FjY2Vw
dCA9IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVjdGVkX2FjY2VwdCkKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0ZWQgcmVzcG9uc2UgZm9yIGNo
YWxsZW5nZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZF9hY2NlcHQsIHV0aWwuaGV4
aWZ5KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGlmIGFjY2VwdCAhPSBleHBl
Y3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAg
ICAgICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6ICVyIChleHBlY3RlZDogJXMpJyAlCi0g
ICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2Vw
dCwgZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0g
RmFsc2UKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkID0gRmFsc2UKLQotICAg
ICAgICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQoCi0gICAgICAgICAgICBjb21tb24u
U0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5sb3dlcigpKQotICAgICAgICBhY2NlcHRl
ZF9leHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgZXh0ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5v
bmUgYW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0gMDoKLSAgICAgICAgICAgIGFjY2VwdGVk
X2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucyhleHRlbnNpb25zX2hlYWRlclsw
XSkKLQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IHRoZSBuZXcgc3R5bGUgcGVyZnJh
bWUgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAgICBmb3IgZXh0ZW5zaW9uIGluIGFjY2Vw
dGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBleHRlbnNpb25fbmFtZSA9IGV4dGVuc2lvbi5u
YW1lKCkKLSAgICAgICAgICAgIGlmIChleHRlbnNpb25fbmFtZSA9PSBjb21tb24uREVGTEFURV9G
UkFNRV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kZWZsYXRl
X2ZyYW1lKToKLSAgICAgICAgICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQot
ICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3Nv
cihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgdW51c2VkX2V4dGVuc2lvbl9yZXNwb25zZSA9
IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgICAgICAgICBzZWxm
Ll9vcHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNzb3IKLSAgICAgICAgICAgICAgICBjb250
aW51ZQotICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9uX25hbWUgPT0gY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgotICAgICAgICAgICAgICAgIHBlcm1lc3NhZ2VfZGVm
bGF0ZV9hY2NlcHRlZCA9IFRydWUKLQotICAgICAgICAgICAgICAgIGZyYW1lciA9IF9nZXRfcGVy
bWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgZnJhbWVy
LnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlID0gZnJhbWVyCi0gICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5zaW9uICVyJyAlIGV4dGVuc2lvbl9uYW1l
KQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgYW5kIG5vdCBkZWZs
YXRlX2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVy
cm9yKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0aGUgc2VydmVyIHJlamVj
dGVkIGl0JyAlCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgYW5k
Ci0gICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVkKToKLSAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnUmVx
dWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBpdCcgJQotICAgICAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLQotICAgICAgICAjIFRP
RE8odHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbAotICAgICAgICAjIFRP
RE8odHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMuCi0KLQotY2xhc3MgQ2xpZW50SGFuZHNo
YWtlUHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFrZUJhc2UpOgotICAgICIiIldlYlNvY2tl
dCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yCi0gICAgZHJhZnQtaWV0Zi1oeWJpLXRo
ZXdlYnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50IHRvCi0gICAgZHJhZnQtaGl4aWUtdGhl
d2Vic29ja2V0cHJvdG9jb2wtNzYpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNvY2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVByb2Nlc3Nv
ckh5YmkwMCwgc2VsZikuX19pbml0X18oKQotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tl
dAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRp
b25zLmRlZmxhdGVfZnJhbWUgb3IKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Blcm1l
c3NhZ2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdIeUJpIDAwIGRv
ZXNuXCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQot
ICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFu
ZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAi
IiIKLQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3QgbGluZS4KLSAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2Up
KQotICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUgYW4gZW1wdHkgbGlzdCBvZiBzdHJp
bmdzLgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICAjIDQuMSA3LiBBZGQgdGhlIHN0cmlu
ZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVu
ZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAgICAgIyA0LjEgOC4gQWRkIHRoZSBzdHJp
bmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBw
ZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgIyA0LjEgOS0xMi4gQWRkIEhvc3Q6IGZp
ZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFk
ZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAotICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNl
X3RscykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2luOiBmaWVsZCB0byAvZmllbGRzLy4K
LSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3JpZ2luOgotICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1NwZWNpZnkgdGhlIG9yaWdp
biBvZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBmbGFnJykKLSAgICAgICAgZmllbGRzLmFw
cGVuZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lOX0hFQURFUiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0gICAgICAgICMg
VE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVByb3RvY29sOiBmaWVsZCB0byAvZmllbGRz
Ly4KLSAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNvb2tpZSBoZWFkZXJzIHRvIC9maWVsZHMv
LgotCi0gICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2VjLVdlYlNvY2tldC1LZXk8bj4gdG8gL2Zp
ZWxkcy8uCi0gICAgICAgIHNlbGYuX251bWJlcjEsIGtleTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNf
d2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMTogJWQn
LCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChj
b21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwga2V5MSkpCi0gICAgICAgIHNlbGYuX251
bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIyKQotICAgICAg
ICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVky
X0hFQURFUiwga2V5MikpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgnJXM6IDBcclxuJyAlIGNv
bW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikKLQotICAgICAgICAjIDQuMSAyNC4gRm9y
IGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAg
ICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5j
b2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAgIyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBj
aGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLSAg
ICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5k
YWxsKGZpZWxkKQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBE
IENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAgICMgY2hhcmFjdGVyIHBh
aXIgKENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0gICAgICAg
ICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFu
ZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGlu
dGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICBzZWxmLl9rZXkz
ID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0
byB0aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnS2V5MzogJXIgKCVzKScs
IHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCi0KLSAgICAgICAgIyA0LjEgMjguIFJlYWQgYnl0
ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUgY29ubmVjdGlvbgotICAgICAgICAj
IGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0
ZXMsIGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5dGVzLgotICAgICAgICBmaWVsZCA9
ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVz
KHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAgICAgICBp
ZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICMgaWYgL2ZpZWxk
LyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAgICAg
ICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBp
dCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRhaW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRo
ZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0
aCgnXHJcbicpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ1dyb25n
IHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAo
W14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1
cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgIyA0LjEg
MjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAvZmllbGQvIHRoYXQgc3RhcnRzIGZy
b20gdGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmlyc3QgMHgyMCBieXRlLCBhbmQgZW5k
cyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAgICAgIyBzZWNvbmQgMHgyMCBieXRlLgot
ICAgICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICAjIDQuMSAzMC4gaWYgL2NvZGUvIGlz
IG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2YgdGhlIGJ5dGVzIGluCi0gICAgICAg
ICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAgdG8gMHg5MCwgdGhlbiBmYWlsIHRo
ZSBXZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
LSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKLSAgICAg
ICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdIVFRQ
IHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTogJXInICUK
LSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICAjIDQuMSAzMS4gaWYgL2Nv
ZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4gbW92ZSB0byB0aGUKLSAg
ICAgICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAg
ICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQg
SFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1cyBsaW5lOiAnCi0gICAg
ICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkpCi0gICAgICAgICMgNC4xIDMyLTM5LiBy
ZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAgIGZpZWxkcyA9IHNlbGYuX3JlYWRfZmll
bGRzKCkKLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KLSAgICAgICAgIyBy
ZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYu
X3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBj
aCkKLSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAgICAgICMgVE9ETyh1a2Fp
KTogcHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJ1cGdyYWRlIgot
ICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmlu
ZyAiV2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVj
dGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlf
aGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVf
SEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3
NSwKLSAgICAgICAgICAgIFRydWUpCi0gICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAi
Y29ubmVjdGlvbiIKLSAgICAgICAgIyAgaWYgdGhlIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkg
bG93ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAotICAgICAgICAjICB0byB0aGUgc3RyaW5n
ICJ1cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQKLSAgICAg
ICAgIyAgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVh
ZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05f
SEVBREVSLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLAotICAg
ICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgb3JpZ2luID0gX2dldF9tYW5kYXRvcnlfaGVhZGVy
KAotICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVS
KQotCi0gICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAg
ICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9IRUFERVIpCi0KLSAgICAg
ICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0aW9uLCBjb29raWUsIC4uCi0KLSAg
ICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAv
bnVtYmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBhIGJpZyBlbmRpYW4gMzIgYml0IGlu
dGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAgICAjIGFzIGJpZyBlbmRpYW4gMzIg
Yml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2YgL2tleV8zLyBpbiB0aGUKLSAgICAg
ICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2lyZS4KLSAgICAgICAgY2hhbGxlbmdl
ID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkKLSAgICAgICAgY2hhbGxlbmdlICs9
IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0gICAgICAgIGNoYWxsZW5nZSArPSBz
ZWxmLl9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0No
YWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5oZXhpZnkoY2hhbGxlbmdlKSkKLQot
ICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUgdGhlIE1ENSBmaW5nZXJwcmludCBv
ZiAvY2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVuZGlhbiAxMjggYml0IHN0cmluZy4K
LSAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNoYWxsZW5nZSkuZGlnZXN0KCkKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5n
ZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZCwgdXRpbC5oZXhpZnko
ZXhwZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0
aGUgc2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkvIGJlIHRob3NlIGJ5dGVzLgotICAgICAg
ICByZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAl
ciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAgICAgICAjIDQuMSA0NS4g
aWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRoZW4gZmFpbAot
ICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
Ci0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50
SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6
ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoZXhwZWN0
ZWQsIHJlcGx5KSkKLSAgICAgICAgIyA0LjEgNDYuIFRoZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24g
aXMgZXN0YWJsaXNoZWQqLgotCi0gICAgZGVmIF9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleShz
ZWxmKToKLSAgICAgICAgIyA0LjEgMTYuIGxldCAvc3BhY2VzX24vIGJlIGEgcmFuZG9tIGludGVn
ZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KLSAgICAgICAgc3BhY2VzID0gcmFuZG9tLnJhbmRp
bnQoMSwgMTIpCi0gICAgICAgICMgNC4xIDE3LiBsZXQgL21heF9uLyBiZSB0aGUgbGFyZ2VzdCBp
bnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KLSAgICAgICAgIyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVk
IGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIG1heG51bSA9IDQyOTQ5NjcyOTUgLyBzcGFjZXMKLSAg
ICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAw
IHRvIC9tYXhfbi8KLSAgICAgICAgIyBpbmNsdXNpdmUuCi0gICAgICAgIG51bWJlciA9IHJhbmRv
bS5yYW5kaW50KDAsIG1heG51bSkKLSAgICAgICAgIyA0LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBi
ZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1iZXJfbi8gYW5kCi0gICAgICAgICMgL3Nw
YWNlc19uLyB0b2dldGhlci4KLSAgICAgICAgcHJvZHVjdCA9IG51bWJlciAqIHNwYWNlcwotICAg
ICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiAvcHJv
ZHVjdF9uLywgZXhwcmVzc2VkCi0gICAgICAgICMgaW4gYmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVy
YWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8KLSAgICAgICAgIyBVKzAw
MzkgRElHSVQgTklORSAoOSkuCi0gICAgICAgIGtleSA9IHN0cihwcm9kdWN0KQotICAgICAgICAj
IDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMg
ZnJvbSB0aGUKLSAgICAgICAgIyByYW5nZSBVKzAwMjEgdG8gVSswMDJGIGFuZCBVKzAwM0EgdG8g
VSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KLSAgICAgICAgIyBwb3NpdGlvbnMuCi0gICAg
ICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEsIDB4MmYgKyAxKSArIHJhbmdlKDB4M2Es
IDB4N2UgKyAxKQotICAgICAgICBuID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgIGZv
ciBfIGluIHhyYW5nZShuKToKLSAgICAgICAgICAgIGNoID0gcmFuZG9tLmNob2ljZShhdmFpbGFi
bGVfY2hhcnMpCi0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgwLCBsZW4oa2V5KSkK
LSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBjaHIoY2gpICsga2V5W3BvczpdCi0gICAg
ICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBp
bnRvIC9rZXlfbi8gYXQKLSAgICAgICAgIyByYW5kb20gcG9zaXRpb25zIG90aGVyIHRoYW4gc3Rh
cnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShzcGFjZXMp
OgotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMSwgbGVuKGtleSkgLSAxKQotICAg
ICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyArIGtleVtwb3M6XQotICAgICAgICByZXR1
cm4gbnVtYmVyLCBrZXkKLQotICAgIGRlZiBfZ2VuZXJhdGVfa2V5MyhzZWxmKToKLSAgICAgICAg
IyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGluZyBvZiBlaWdodCByYW5k
b20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50
ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAgICAgIHJldHVybiAnJy5q
b2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIF8gaW4geHJhbmdlKDgpXSkKLQot
Ci1jbGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIiQSB3cmFwcGVyIGZvciBz
b2NrZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nvbm4gaW50ZXJmYWNlLgotICAgIG1vZF9w
eXdlYnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGJlIHdvcmtpbmcgb24gQXBhY2hlIG1v
ZF9weXRob24ncwotICAgIG1wX2Nvbm4gb2JqZWN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAg
ZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChkYXRh
KQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXQu
cmVjdihuKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShn
ZXRfcmVtb3RlX2FkZHIpCi0KLQotY2xhc3MgQ2xpZW50UmVxdWVzdChvYmplY3QpOgotICAgICIi
IkEgd3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQgYWJsZSB0byBwYXNzIGEgc29ja2V0IG9i
amVjdCB0bwotICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdCBhIG1wX3JlcXVlc3Qgb2JqZWN0Lgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYu
X2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3Nv
Y2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBDbGllbnRDb25uZWN0aW9u
KHNvY2tldCkKLQotCi1kZWYgX2ltcG9ydF9zc2woKToKLSAgICBnbG9iYWwgc3NsCi0gICAgdHJ5
OgotICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IElt
cG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYgX2ltcG9ydF9weW9wZW5z
c2woKToKLSAgICBnbG9iYWwgT3BlblNTTAotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IE9wZW5T
U0wuU1NMCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAg
ICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBFY2hvQ2xpZW50KG9iamVjdCk6Ci0gICAgIiIi
V2ViU29ja2V0IGVjaG8gY2xpZW50LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlv
bnMpOgotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9zb2Nr
ZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2Vy
KHNlbGYpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAiIiJSdW4gdGhlIGNsaWVudC4K
LQotICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiByZXBlYXQgc2VuZGluZyBtZXNzYWdlIGFu
ZCByZWNlaXZpbmcgaXRzIGVjaG8uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tl
dCA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2V0dGltZW91dChzZWxm
Ll9vcHRpb25zLnNvY2tldF90aW1lb3V0KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxm
Ll9zb2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSkKLSAgICAg
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAgICAgICAgICBzZWxmLl9z
b2NrZXQgPSBfVExTU29ja2V0KAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudGxzX21vZHVsZSwKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lvbikKLQotICAgICAgICAgICAgdmVy
c2lvbiA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbgotCi0gICAgICAgICAgICBpZiAo
dmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggb3IKLSAgICAgICAgICAgICAgICB2
ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyk6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yKAotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICBlbGlmIHZlcnNp
b24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2hh
bmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCgKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52
YWxpZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXInICUgdmVyc2lvbikKLQotICAgICAgICAg
ICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCi0KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKLQotICAgICAgICAgICAgcmVxdWVzdCA9
IENsaWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQotCi0gICAgICAgICAgICB2ZXJzaW9uX21hcCA9
IHsKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6IGNvbW1vbi5WRVJT
SU9OX0hZQkkwOCwKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMTM6IGNv
bW1vbi5WRVJTSU9OX0hZQkkxMywKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9I
WUJJMDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KLSAgICAgICAgICAgIHJlcXVlc3Qud3NfdmVy
c2lvbiA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCi0KLSAgICAgICAgICAgIGlmICh2ZXJzaW9uID09
IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAgICAgICAgICAgIHZlcnNpb24gPT0g
X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAgICAgICAgICBzdHJlYW1fb3B0aW9u
ID0gU3RyZWFtT3B0aW9ucygpCi0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbi5tYXNrX3Nl
bmQgPSBUcnVlCi0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbi51bm1hc2tfcmVjZWl2ZSA9
IEZhbHNlCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUg
aXMgbm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBzZWxmLl9vcHRp
b25zLmRlZmxhdGVfZnJhbWUKLSAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0
cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMgbm90IEZhbHNlOgotICAgICAgICAgICAg
ICAgICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUKLSAg
ICAgICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRp
b24pCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJlYW0ocmVxdWVzdCwgc3Ry
ZWFtX29wdGlvbikKLSAgICAgICAgICAgIGVsaWYgdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lP
Tl9IWUJJMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtID0gU3RyZWFtSGl4aWU3NShy
ZXF1ZXN0LCBUcnVlKQotCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9vcHRpb25zLm1l
c3NhZ2Uuc3BsaXQoJywnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9tZXNz
YWdlKGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAg
ICAgICAgICAgICAgICAgICBwcmludCAnU2VuZDogJXMnICUgbGluZQotICAgICAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLl9zdHJlYW0ucmVjZWl2
ZV9tZXNzYWdlKCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJv
c2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnUmVjdjogJXMnICUgcmVjZWl2ZWQK
LSAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dCAnRXJyb3I6ICVzJyAlIGUKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLQotICAgICAgICAg
ICAgc2VsZi5fZG9fY2xvc2luZ19oYW5kc2hha2UoKQotICAgICAgICBmaW5hbGx5OgotICAgICAg
ICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBfZG9fY2xvc2luZ19oYW5kc2hh
a2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm0gY2xvc2luZyBoYW5kc2hha2UgdXNpbmcgdGhl
IHNwZWNpZmllZCBjbG9zaW5nIGZyYW1lLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
bWVzc2FnZS5zcGxpdCgnLCcpWy0xXSA9PSBfR09PREJZRV9NRVNTQUdFOgotICAgICAgICAgICAg
IyByZXF1ZXN0ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSwgc28KLSAgICAg
ICAgICAgICMgZXhwZWN0aW5nIGNsb3NpbmcgaGFuZHNoYWtlIG1lc3NhZ2UgZnJvbSBzZXJ2ZXIu
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnV2FpdCBmb3Igc2VydmVyLWluaXRpYXRl
ZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fc3RyZWFt
LnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAgICAgcHJpbnQgJ1JlY3YgY2xvc2UnCi0gICAgICAgICAgICAgICAgcHJpbnQgJ1Nl
bmQgYWNrJwotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKAotICAgICAgICAgICAg
ICAgICAgICAnUmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UgYW5kIHNlbnQgYWNrJykKLSAgICAg
ICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcHJpbnQgJ1NlbmQgY2xvc2UnCi0gICAgICAgIHNl
bGYuX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J1NlbnQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICBwcmludCAnUmVjdiBhY2snCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBhY2snKQotCi0KLWRlZiBtYWluKCk6Ci0g
ICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91dCkKLQot
ICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCi0gICAgIyBXZSBhY2NlcHQgLS1jb21tYW5kX2xp
bmVfZmxhZyBzdHlsZSBmbGFncyB3aGljaCBpcyB0aGUgc2FtZSBhcyBHb29nbGUKLSAgICAjIGdm
bGFncyBpbiBhZGRpdGlvbiB0byBjb21tb24gLS1jb21tYW5kLWxpbmUtZmxhZyBzdHlsZSBmbGFn
cy4KLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXItaG9zdCcsICctLXNlcnZl
cl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9
J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nbG9jYWxob3N0JywgaGVs
cD0nc2VydmVyIGhvc3QnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXNlcnZlci1w
b3J0JywgJy0tc2VydmVyX3BvcnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3NlcnZl
cl9wb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9VTkRF
RklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
bycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbicsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdvcmlnaW4nKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctcicsICctLXJlc291cmNlJywgZGVzdD0ncmVzb3VyY2UnLCB0eXBlPSdzdHJpbmcn
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy9lY2hvJywgaGVscD0ncmVzb3VyY2Ug
cGF0aCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0tbWVzc2FnZScsIGRlc3Q9J21l
c3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdjb21t
YS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8gc2VuZC4gJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJyVzIHdpbGwgZm9yY2UgY2xvc2UgdGhlIGNvbm5lY3Rpb24gZnJvbSBzZXJ2ZXIuJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dPT0RCWUVfTUVTU0FHRSkpCi0gICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0PSd2ZXJib3NlJywgYWN0aW9uPSdzdG9y
ZV9mYWxzZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSdzdXBw
cmVzcyBtZXNzYWdlcycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdGxzJywgZGVz
dD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKS4gQnkgZGVmYXVsdCwgJwotICAg
ICAgICAgICAgICAgICAgICAgICdpdCBsb29rcyBmb3Igc3NsIGFuZCBweU9wZW5TU0wgbW9kdWxl
IGFuZCB1c2VzIGZvdW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAnb25lLiBVc2UgLS10bHMt
bW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5IHdoaWNoIG1vZHVsZSAnCi0gICAgICAgICAgICAgICAg
ICAgICAgJ3RvIHVzZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdGxzLW1vZHVsZScsICct
LXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywKLSAgICAgICAgICAgICAgICAgICAgICB0
eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9W19UTFNfQllfU1RB
TkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQuICcKLSAgICAgICAgICAg
ICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUK
LSAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllf
UFlPUEVOU1NMKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtdmVyc2lvbicsICctLXRs
c192ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0bHNfdmVyc2lvbicsCi0g
ICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5nJywgZGVmYXVsdD1fVExTX1ZFUlNJT05f
U1NMMjMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVExTL1NTTCB2ZXJzaW9uIHRvIHVz
ZS4gT25lIG9mIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1RMU19WRVJTSU9OX1NTTDIz
ICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9yIDMpLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAg
IF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wnIChTU0wgdmVyc2lvbiAzKSwgXCcnICsKLSAgICAgICAg
ICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fVExTMSArICdcJyAoVExTIHZlcnNpb24gMSknKQot
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRpc2FibGUtdGxzLWNvbXByZXNzaW9uJywgJy0tZGlz
YWJsZV90bHNfY29tcHJlc3Npb24nLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rpc2Fi
bGVfdGxzX2NvbXByZXNzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3Jl
X3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0Rpc2Fi
bGUgVExTIGNvbXByZXNzaW9uLiBBdmFpbGFibGUgb25seSB3aGVuICcKLSAgICAgICAgICAgICAg
ICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2VkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2NrZXRfdGltZW91dCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQnLCB0eXBlPSdpbnQnLCBkZWZhdWx0
PV9USU1FT1VUX1NFQywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdUaW1lb3V0KHNlYykg
Zm9yIHNvY2tldHMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRyYWZ0NzUnLCBkZXN0PSdk
cmFmdDc1JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZh
dWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J09ic29sZXRlIG9wdGlvbi4g
RG9uXCd0IHVzZSB0aGlzLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tcHJvdG9jb2wtdmVy
c2lvbicsICctLXByb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3Byb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J3N0cmluZycs
IGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzLAotICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J1dlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCi0g
ICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzICsgJ1wnLCBcJycg
KwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCArICdcJywg
XCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDAgKyAn
XCcnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZlcnNpb24taGVhZGVyJywgJy0tdmVyc2lv
bl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZlcnNpb25faGVhZGVyJywK
LSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAotICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J1NwZWNpZnkgU2VjLVdlYlNvY2tldC1WZXJzaW9uIGhlYWRlciB2
YWx1ZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1mcmFtZScsICctLWRlZmxh
dGVfZnJhbWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2RlZmxhdGVfZnJhbWUnLAot
ICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHRoZSBkZWZsYXRlLWZyYW1lIGV4dGVu
c2lvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXVzZS1wZXJtZXNzYWdlLWRlZmxhdGUn
LCAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0
PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4nKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD0nd2FybicsCi0gICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybicsICdlcnJv
cicsICdjcml0aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbC4n
KQotCi0gICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQot
ICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5nZXRMZXZlbE5hbWUob3B0aW9u
cy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0KLSAgICBpZiBvcHRpb25zLmRyYWZ0NzU6Ci0gICAgICAg
IGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykKLSAgICAg
ICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJP
VE9DT0xfVkVSU0lPTl9ISVhJRTc1OgotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAg
ICAgICAgJ1ZhbHVlICVzIGlzIG9ic29sZXRlIGZvciAtLXByb3RvY29sX3ZlcnNpb24gb3B0aW9u
cycgJQotICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3NSkKLSAgICAgICAgc3lz
LmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAgaWYgb3B0aW9ucy50
bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgotICAgICAg
ICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCi0g
ICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCi0gICAgICAg
ICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50
bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKLSAgICAgICAgICAgICAgICBsb2dnaW5nLmRl
YnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICdUTFMg
c3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQotICAgICAgICAgICAg
ICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNf
QllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6Ci0g
ICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxh
YmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBlbGlmIG9wdGlvbnMu
dGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIG5vdCBfaW1w
b3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3Bl
blNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQo
MSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQg
LS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlm
IChvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uIGFuZAotICAgICAgICAgICAgb3B0aW9u
cy50bHNfbW9kdWxlICE9IF9UTFNfQllfUFlPUEVOU1NMKToKLSAgICAgICAgICAgIGxvZ2dpbmcu
Y3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJsZSBUTFMgY29tcHJlc3Npb24gb25seSB3aGVuICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5T3BlblNTTCBtb2R1bGUgaXMgdXNlZC4nKQot
ICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAgICBpZiBvcHRpb25zLnRs
c19tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdVc2Ug
LS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAgICAgICAgc3lzLmV4aXQo
MSkKLQotICAgICAgICBpZiBvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uOgotICAgICAg
ICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tZGlzYWJsZS10bHMtY29tcHJlc3Npb24gb25s
eSB0b2dldGhlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoIC0tdXNlLXRs
cyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAjIERlZmF1bHQgcG9y
dCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0aGVyIFRMUyBpcyB1c2VkLgotICAgIGlmIG9wdGlvbnMu
c2VydmVyX3BvcnQgPT0gX1VOREVGSU5FRF9QT1JUOgotICAgICAgICBpZiBvcHRpb25zLnVzZV90
bHM6Ci0gICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29tbW9uLkRFRkFVTFRfV0VC
X1NPQ0tFVF9TRUNVUkVfUE9SVAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVAotCi0gICAgIyBvcHRw
YXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIG5vbi1hc2NpaSBkZWZhdWx0IHZhbHVlcy4KLSAg
ICAjIFNldCBkZWZhdWx0IG1lc3NhZ2UgaGVyZS4KLSAgICBpZiBub3Qgb3B0aW9ucy5tZXNzYWdl
OgotICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSB1J0hlbGxvLFx1NjVlNVx1NjcyYycgICAjICJK
YXBhbiIgaW4gSmFwYW5lc2UKLQotICAgIEVjaG9DbGllbnQob3B0aW9ucykucnVuKCkKLQotCi1p
ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFkZjUxNTEyMjcxMTFlMTE0NDI0YzU1ODZhMTQyYTlhZGI3ZDYwNGQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9l
Y2hvX25vZXh0X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLSMgQ29weXJp
Z2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi0KLQotZGVmIHdlYl9z
b2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgICIiIlJlY2VpdmVkIFNlYy1X
ZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUgaXMgcGFyc2VkIGludG8KLSAgICByZXF1
ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zLiBweXdlYnNvY2tldCBjcmVhdGVzIGV4dGVuc2lv
bgotICAgIHByb2Nlc3NvcnMgdXNpbmcgaXQgYmVmb3JlIGRvX2V4dHJhX2hhbmRzaGFrZSBjYWxs
IGFuZCBuZXZlciBsb29rcyBhdCBpdAotICAgIGFmdGVyIHRoZSBjYWxsLgotCi0gICAgVG8gcmVq
ZWN0IHJlcXVlc3RlZCBleHRlbnNpb25zLCBjbGVhciB0aGUgcHJvY2Vzc29yIGxpc3QuCi0gICAg
IiIiCi0KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10KLQotCi1kZWYg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgICIiIkVjaG8uIFNhbWUgYXMg
ZWNob193c2gucHkuIiIiCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBsaW5lID0gcmVxdWVz
dC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbGluZSBpcyBOb25lOgot
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobGluZSwgdW5pY29kZSk6
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5
PUZhbHNlKQotICAgICAgICAgICAgaWYgbGluZSA9PSBfR09PREJZRV9NRVNTQUdFOgotICAgICAg
ICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVlKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dzaC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvZWNob193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4NjQ2
YzMyY2ViNTE1ZjE1ZGQ1NzI2MjI2ODljNzllZTYxZTU0M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dzaC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLV9HT09E
QllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgICMgVGhpcyBleGFtcGxlIGhhbmRsZXIgYWNjZXB0cyBhbnkg
cmVxdWVzdC4gU2VlIG9yaWdpbl9jaGVja193c2gucHkgZm9yIGhvdwotICAgICMgdG8gcmVqZWN0
IGFjY2VzcyBmcm9tIHVudHJ1c3RlZCBzY3JpcHRzIGJhc2VkIG9uIG9yaWdpbiB2YWx1ZS4KLQot
ICAgIHBhc3MgICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhKHJlcXVlc3QpOgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxpbmUgPSByZXF1ZXN0Lndz
X3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5lIGlzIE5vbmU6Ci0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmljb2RlKToKLSAg
ICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5lLCBiaW5hcnk9RmFs
c2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVh
bS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNlLmNnaSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ZGRkZjIzN2NmN2Q0NzY0OTczNDdkMDk1YTEyMjk5NDE3N2UxNDA5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3Vy
Y2UuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyEvdXNyL2Jpbi9weXRob24K
LQotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBDR0kgc2NyaXB0IGdlbmVyYXRlcyB0ZXh0
L2V2ZW50LXN0cmVhbSB0eXBlIGRhdGEgc3RyZWFtIGZvciB0ZXN0aW5nCi10aGUgU2VydmVyLVNl
bnQgRXZlbnRzLgotCi1JdCB3aWxsIG9ubHkgd29yayBjb3JyZWN0bHkgd2l0aCBIVFRQIHNlcnZl
cnMgdGhhdCBkbyBub3QgYnVmZmVyIHRoZSBvdXRwdXQgb2YKLUNHSSBzY3JpcHRzLgotIiIiCi0K
LQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLQotc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC10
eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbVxyXG5cclxuJykKLQotaWQgPSAwCi0KLXdoaWxlIFRydWU6
Ci0gIHN5cy5zdGRvdXQud3JpdGUoJ2RhdGE6IEhlbGxvXHJcbmlkOiAlZFxyXG5cclxuJyAlIGlk
KQotICBzeXMuc3Rkb3V0LmZsdXNoKCkKLQotICBpZCA9IGlkICsgMQotCi0gIHRpbWUuc2xlZXAo
MSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTU5OGE4ODA3ZDFmZmNjZWNmNTg1ZjFiYjY1NmZkMmQ5MDJmY2QzOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50
c291cmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi08IS0tCi1Db3B5cmln
aHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQotU2ltcGxlIGV4YW1wbGUgb2YgdGhlIFNlcnZlci1T
ZW50IEV2ZW50cwotaHR0cDovL2Rldi53My5vcmcvaHRtbDUvZXZlbnRzb3VyY2UvCi0KLUZvciBj
b21wYXJpc29uIHdpdGggdGhlIFdlYlNvY2tldCBQcm90b2NvbCAmIEFQSS4KLQotUnVuIHRoZSBw
eXdlYnNvY2tldCB3aXRoIHRoZSAtLWNnaV9wYXRoIHBhcmFtZXRlci4KLS0tPgotCi08aHRtbD4K
LTxoZWFkPgotPHRpdGxlPlNlcnZlci1TZW50IEV2ZW50cyBFeGFtcGxlPC90aXRsZT4KLTxzY3Jp
cHQ+Ci12YXIgZXZlbnRTb3VyY2UgPSBudWxsOwotCi1mdW5jdGlvbiBhZGRUb0xvZyhkYXRhKSB7
Ci0gIGxvZ0JveC52YWx1ZSArPSBkYXRhICsgJ1xuJzsKLSAgbG9nQm94LnNjcm9sbFRvcCA9IDEw
MDAwMDA7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2cnKTsKLQotICBldmVudFNvdXJjZSAgPSBuZXcgRXZlbnRTb3VyY2UoJy9l
dmVudHNvdXJjZS5jZ2knKTsKLSAgZXZlbnRTb3VyY2Uub25vcGVuID0gZnVuY3Rpb24oKSB7Ci0g
ICAgYWRkVG9Mb2coJ29ub3BlbiAocmVhZHlTdGF0ZSA9ICcgKyBldmVudFNvdXJjZS5yZWFkeVN0
YXRlICsgJyknKTsKLSAgfQotICBldmVudFNvdXJjZS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgewotICAgIGFkZFRvTG9nKGV2ZW50LmRhdGEpOwotICB9Ci0gIGV2ZW50U291cmNlLm9uZXJy
b3IgPSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRvTG9nKCdvbmVycm9yIChyZWFkeVN0YXRl
ID0gJyArIGV2ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJlYSBpZD0ibG9nIiByb3dz
PSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08cCBzdHlsZT0iZm9udC1zaXpl
OiBzbWFsbCI+Ci0gIE1ha2Ugc3VyZSB0aGF0IHB5d2Vic29ja2V0IGlzIHJ1biB3aXRoIC0tY2dp
X3BhdGggcGFyYW1ldGVyLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRsZXJf
bWFwLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFjNGMwOWFhMDA5MWQ4YmFm
MjkwODk1OTkwNTg2Nzg0MmFlYjg2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRsZXJfbWFwLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDExICswLDAgQEAKLSMgd2Vic29ja2V0IGhhbmRsZXIgbWFwIGZpbGUsIHVzZWQg
Ynkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24uCi0jIEEgbGluZSBzdGFydGluZyB3aXRoICcjJyBp
cyBhIGNvbW1lbnQgbGluZS4KLSMgRWFjaCBsaW5lIGNvbnNpc3RzIG9mICdhbGlhc19yZXNvdXJj
ZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnCi0jIHNlcGFyYXRlZCBieSBzcGFj
ZXMuCi0jIEFsaWFzaW5nIGlzIHByb2Nlc3NlZCBmcm9tIHRoZSB0b3AgdG8gdGhlIGJvdHRvbSBv
ZiB0aGUgbGluZSwgYW5kCi0jICdleGlzdGluZ19yZXNvdXJjZV9wYXRoJyBtdXN0IGV4aXN0IGJl
Zm9yZSBpdCBpcyBhbGlhc2VkLgotIyBGb3IgZXhhbXBsZSwKLSMgIC8gL2VjaG8KLSMgbWVhbnMg
dGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwgYmUgaGFuZGxlZCBieSBoYW5kbGVycyBmb3IgJy9l
Y2hvJy4KLS8gL2VjaG8KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oc3RzX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaHN0c193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGU4NjE5NDY5MjFhZjA0NTk0ZDYyMDI2YjQ2ZjA3NzU4ZGRmZTQwMmEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9o
c3RzX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBy
ZXF1ZXN0LmV4dHJhX2hlYWRlcnMuYXBwZW5kKAotICAgICAgICAoJ1N0cmljdC1UcmFuc3BvcnQt
U2VjdXJpdHknLCAnbWF4LWFnZT04NjQwMCcpKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVy
X2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdIZWxs
bycsIGJpbmFyeT1GYWxzZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9p
bnRlcm5hbF9lcnJvcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNTgx
YjU0YTY0OGMwOWEyMmYyNTQ1MTI3ZDcwZGYwNTEzNDkyMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9pbnRlcm5hbF9lcnJv
cl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDEy
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAotCi0KLWRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVmIHdlYl9z
b2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBtc2d1dGlsLkJhZE9wZXJh
dGlvbkV4Y2VwdGlvbignSW50ZW50aW9uYWwnKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlMDU3NjdhYjkzMmZiNTgyODI0YWFmMWE1N2Q5MjQ5YzMwNGJkNTFlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvb3JpZ2lu
X2NoZWNrX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0jIFRoaXMgZXhhbXBsZSBpcyBkZXJpdmVkIGZyb20gdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5LgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4
YW1wbGUuY29tJzoKLSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2Nl
cHRhYmxlIG9yaWdpbjogJXInICUgcmVxdWVzdC53c19vcmlnaW4pCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUo
J29yaWdpbl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9j
b2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9weXdlYnNvY2tldC5jb25mIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzVkMTMwYTVjODRmNjlkZTRmODFkMzU4ZmIy
Y2RiNWJkZTRhZjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgorKysgL2Rldi9udWxsCkBAIC0x
LDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jCi0jIFNhbXBsZSBjb25maWd1cmF0aW9u
IGZpbGUgZm9yIGFwYWNoZTIKLSMKLUxvZ0xldmVsIGRlYnVnCi08SWZNb2R1bGUgcHl0aG9uX21v
ZHVsZT4KLSAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWycvbW9kX3B5d2Vic29ja2V0J10iCi0gIFB5
dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IC92YXIvd3d3Ci0gIFB5dGhv
bk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuIC92YXIvd3d3L3dzCi0gICNQeXRo
b25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFsbG93X2RyYWZ0NzUgT24KLSAgPExvY2F0aW9uIC93
cz4KLSAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJw
YXJzZXJoYW5kbGVyCi0gIDwvTG9jYXRpb24+Ci08L0lmTW9kdWxlPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9zcGVj
aWFsX2hlYWRlcnMuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTUwODBmMWYx
YWVhM2EzN2E3ZTcyOWM2NzhkNmExMjMzN2JlZGI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNn
aQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLSMhL3Vzci9iaW4vcHl0aG9uCi0KLSMg
Q29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLSMgbGljZW5z
ZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0jIGh0dHBzOi8v
ZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0iIiJDR0kg
c2NyaXB0IHNhbXBsZSBmb3IgdGVzdGluZyBlZmZlY3Qgb2YgSFRUUCBoZWFkZXJzIG9uIHRoZSBv
cmlnaW4gcGFnZS4KLQotTm90ZSB0aGF0IENHSSBzY3JpcHRzIGRvbid0IHdvcmsgb24gdGhlIHN0
YW5kYWxvbmUgcHl3ZWJzb2NrZXQgcnVubmluZyBpbiBUTFMKLW1vZGUuCi0iIiIKLQotCi1wcmlu
dCAiIiJDb250ZW50LXR5cGU6IHRleHQvaHRtbAotQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IGNv
bm5lY3Qtc3JjIHNlbGYKLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT48L3RpdGxlPgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0PgotdmFyIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vZXhh
bXBsZS5jb20iKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPiIiIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWNhZDQ5NzVlZTBjZWFlYzZhODk4MmUyOTU0Y2Y5
NjRmZGU1MmU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvdXRpbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBA
Ci0vLyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLS8vIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBtZXQ6Ci0vLwotLy8gICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLS8vIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLS8v
IGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotLy8KLS8vIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0vLyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8gREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0v
LyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotLy8gVXRp
bGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIGJvdGggbWFpbiBhbmQgd29ya2Vy
IHRocmVhZCkuCi0KLXZhciByZXN1bHRzID0ge307Ci0KLWZ1bmN0aW9uIGdldFRpbWVTdGFtcCgp
IHsKLSAgcmV0dXJuIERhdGUubm93KCk7Ci19Ci0KLWZ1bmN0aW9uIGZvcm1hdFJlc3VsdEluS2lC
KHNpemUsIHRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLAotICAg
IHNwZWVkLCBwcmludFNpemUpIHsKLSAgaWYgKHByaW50U2l6ZSkgewotICAgIHJldHVybiAoc2l6
ZSAvIDEwMjQpICsKLSAgICAgICAgJ1x0JyArIHRpbWVQZXJNZXNzYWdlSW5Ncy50b0ZpeGVkKDMp
ICsKLSAgICAgICAgKHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9PSAtMSA/Ci0gICAgICAgICAg
ICAnJyA6Ci0gICAgICAgICAgICAnXHQnICsgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zLnRvRml4
ZWQoMykpICsKLSAgICAgICAgJ1x0JyArIHNwZWVkLnRvRml4ZWQoMyk7Ci0gIH0gZWxzZSB7Ci0g
ICAgcmV0dXJuIHNwZWVkLnRvU3RyaW5nKCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2xlYXJBdmVy
YWdlRGF0YSgpIHsKLSAgcmVzdWx0cyA9IHt9OwotfQotCi1mdW5jdGlvbiByZXBvcnRBdmVyYWdl
RGF0YShjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSgKLSAgICAgICdTaXplW0tpQl1c
dEF2ZXJhZ2UgdGltZVttc11cdFN0ZGRldiB0aW1lW21zXVx0U3BlZWRbS0Ivc10nKTsKLSAgZm9y
ICh2YXIgc2l6ZSBpbiByZXN1bHRzKSB7Ci0gICAgdmFyIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUlu
TXMgPSByZXN1bHRzW3NpemVdLnN1bV90IC8gcmVzdWx0c1tzaXplXS5uOwotICAgIHZhciBzcGVl
ZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQihzaXplLCBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zKTsK
LSAgICAvLyBDYWxjdWxhdGUgc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlvbgotICAgIHZhciBzdGRk
ZXZUaW1lUGVyTWVzc2FnZUluTXMgPSBNYXRoLnNxcnQoCi0gICAgICAgIChyZXN1bHRzW3NpemVd
LnN1bV90MiAvIHJlc3VsdHNbc2l6ZV0ubiAtCi0gICAgICAgICAgICBhdmVyYWdlVGltZVBlck1l
c3NhZ2VJbk1zICogYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5NcykgKgotICAgICAgICByZXN1bHRz
W3NpemVdLm4gLwotICAgICAgICAocmVzdWx0c1tzaXplXS5uIC0gMSkpOwotICAgIGNvbmZpZy5h
ZGRUb1N1bW1hcnkoZm9ybWF0UmVzdWx0SW5LaUIoCi0gICAgICAgIHNpemUsIGF2ZXJhZ2VUaW1l
UGVyTWVzc2FnZUluTXMsIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5Ncywgc3BlZWQsCi0gICAgICAg
IHRydWUpKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjYWxjdWxhdGVTcGVlZEluS0Ioc2l6ZSwgdGlt
ZVNwZW50SW5NcykgewotICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8gdGltZVNwZW50SW5NcyAq
IDEwMDApIC8gMTAwMDsKLX0KLQotZnVuY3Rpb24gY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZp
Zywgc2l6ZSwgc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKSB7Ci0gIHZhciB0aW1lU3BlbnRJbk1z
ID0gZ2V0VGltZVN0YW1wKCkgLSBzdGFydFRpbWVJbk1zOwotICB2YXIgc3BlZWQgPSBjYWxjdWxh
dGVTcGVlZEluS0IodG90YWxTaXplLCB0aW1lU3BlbnRJbk1zKTsKLSAgdmFyIHRpbWVQZXJNZXNz
YWdlSW5NcyA9IHRpbWVTcGVudEluTXMgLyAodG90YWxTaXplIC8gc2l6ZSk7Ci0gIGlmICghcmVz
dWx0c1tzaXplXSkgewotICAgIHJlc3VsdHNbc2l6ZV0gPSB7bjogMCwgc3VtX3Q6IDAsIHN1bV90
MjogMH07Ci0gIH0KLSAgY29uZmlnLm1lYXN1cmVWYWx1ZSh0aW1lUGVyTWVzc2FnZUluTXMpOwot
ICByZXN1bHRzW3NpemVdLm4gKys7Ci0gIHJlc3VsdHNbc2l6ZV0uc3VtX3QgKz0gdGltZVBlck1l
c3NhZ2VJbk1zOwotICByZXN1bHRzW3NpemVdLnN1bV90MiArPSB0aW1lUGVyTWVzc2FnZUluTXMg
KiB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gIGNvbmZpZy5hZGRUb0xvZyhmb3JtYXRSZXN1bHRJbktp
QihzaXplLCB0aW1lUGVyTWVzc2FnZUluTXMsIC0xLCBzcGVlZCwKLSAgICAgIGNvbmZpZy5wcmlu
dFNpemUpKTsKLX0KLQotZnVuY3Rpb24gZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgYykgewotICB2
YXIgaTsKLQotICB2YXIgdTMyQ29udGVudCA9IGMgKiAweDAxMDEwMTAxOwotCi0gIHZhciB1MzJC
bG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3RoIC8gNCk7Ci0gIHZhciB1MzJWaWV3
ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxvY2tzKTsKLSAgLy8gbGVuZ3RoIGF0
dHJpYnV0ZSBpcyBzbG93IG9uIENocm9tZS4gRG9uJ3QgdXNlIGl0IGZvciBsb29wIGNvbmRpdGlv
bi4KLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7Ci0gICAgdTMyVmlld1tpXSA9
IHUzMkNvbnRlbnQ7Ci0gIH0KLQotICAvLyBGcmFjdGlvbgotICB2YXIgdThCbG9ja3MgPSBidWZm
ZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZhciB1OFZpZXcgPSBuZXcgVWludDhB
cnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8
IHU4QmxvY2tzOyArK2kpIHsKLSAgICB1OFZpZXdbaV0gPSBjOwotICB9Ci19Ci0KLWZ1bmN0aW9u
IHZlcmlmeUFycmF5QnVmZmVyKGJ1ZmZlciwgZXhwZWN0ZWRDaGFyKSB7Ci0gIHZhciBpOwotCi0g
IHZhciBleHBlY3RlZFUzMlZhbHVlID0gZXhwZWN0ZWRDaGFyICogMHgwMTAxMDEwMTsKLQotICB2
YXIgdTMyQmxvY2tzID0gTWF0aC5mbG9vcihidWZmZXIuYnl0ZUxlbmd0aCAvIDQpOwotICB2YXIg
dTMyVmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmZXIsIDAsIHUzMkJsb2Nrcyk7Ci0gIGZvciAo
aSA9IDA7IGkgPCB1MzJCbG9ja3M7ICsraSkgewotICAgIGlmICh1MzJWaWV3W2ldICE9IGV4cGVj
dGVkVTMyVmFsdWUpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gIH0KLQotICB2YXIg
dThCbG9ja3MgPSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZhciB1OFZp
ZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tzKTsKLSAg
Zm9yIChpID0gMDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICBpZiAodThWaWV3W2ldICE9IGV4
cGVjdGVkQ2hhcikgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgfQotCi0gIHJldHVy
biB0cnVlOwotfQotCi1mdW5jdGlvbiB2ZXJpZnlCbG9iKGNvbmZpZywgYmxvYiwgZXhwZWN0ZWRD
aGFyLCBkb25lQ2FsbGJhY2spIHsKLSAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKGJsb2Ip
OwotICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygn
RmlsZVJlYWRlciBFcnJvcjogJyArIHJlYWRlci5lcnJvci5tZXNzYWdlKTsKLSAgICBkb25lQ2Fs
bGJhY2soYmxvYi5zaXplLCBmYWxzZSk7Ci0gIH0KLSAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0
aW9uKCkgewotICAgIHZhciByZXN1bHQgPSB2ZXJpZnlBcnJheUJ1ZmZlcihyZWFkZXIucmVzdWx0
LCBleHBlY3RlZENoYXIpOwotICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIHJlc3VsdCk7Ci0g
IH0KLSAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpOwotfQotCi1mdW5jdGlvbiB2ZXJp
ZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBtZXNzYWdlLCBzaXplKSB7Ci0gIGlmICh0eXBlb2Yg
bWVzc2FnZSAhPSAnc3RyaW5nJykgewotICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxpZCBhY2sg
dHlwZTogJyArIHR5cGVvZiBtZXNzYWdlKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgdmFy
IHBhcnNlZEFjayA9IHBhcnNlSW50KG1lc3NhZ2UpOwotICBpZiAoaXNOYU4ocGFyc2VkQWNrKSkg
ewotICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxpZCBhY2sgdmFsdWU6ICcgKyBtZXNzYWdlKTsK
LSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKHBhcnNlZEFjayAhPSBzaXplKSB7Ci0gICAg
Y29uZmlnLmFkZFRvTG9nKAotICAgICAgICAnRXhwZWN0ZWQgYWNrIGZvciAnICsgc2l6ZSArICdC
IGJ1dCByZWNlaXZlZCBvbmUgZm9yICcgKyBwYXJzZWRBY2sgKwotICAgICAgICAnQicpOwotICAg
IHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiBjbG9u
ZUNvbmZpZyhvYmopIHsKLSAgdmFyIG5ld09iaiA9IHt9OwotICBmb3IgKGtleSBpbiBvYmopIHsK
LSAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldOwotICB9Ci0gIHJldHVybiBuZXdPYmo7Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxfbWFpbi5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvdXRpbF9tYWluLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDNkMWMyYmRj
NDYyYzY1NGY2MDM1YmE5NmU0ZWI4YTJiYWE3Yjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF9tYWluLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0
aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9v
cGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotLy8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxp
Y2F0aW9ucyAoZm9yIHRoZSBtYWluIHRocmVhZCBvbmx5KS4KLQotdmFyIGxvZ0JveCA9IG51bGw7
Ci12YXIgcXVldWVkTG9nID0gJyc7Ci0KLXZhciBzdW1tYXJ5Qm94ID0gbnVsbDsKLQotZnVuY3Rp
b24gcXVldWVMb2cobG9nKSB7Ci0gIHF1ZXVlZExvZyArPSBsb2cgKyAnXG4nOwotfQotCi1mdW5j
dGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgbG9nQm94LnZhbHVlICs9IHF1ZXVlZExvZzsKLSAgcXVl
dWVkTG9nID0gJyc7Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAnXG4nOwotICBsb2dCb3guc2Ny
b2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gYWRkVG9TdW1tYXJ5KGxvZykgewotICBz
dW1tYXJ5Qm94LnZhbHVlICs9IGxvZyArICdcbic7Ci0gIHN1bW1hcnlCb3guc2Nyb2xsVG9wID0g
MTAwMDAwMDsKLX0KLQotLy8gdmFsdWU6IGV4ZWN1dGlvbiB0aW1lIGluIG1pbGxpc2Vjb25kcy4K
LS8vIGNvbmZpZy5tZWFzdXJlVmFsdWUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBQZXJmb3Jt
YW5jZSBUZXN0cy4KLS8vIERvIG5vdGhpbmcgaGVyZSBpbiBub24tUGVyZm9ybWFuY2VUZXN0Lgot
ZnVuY3Rpb24gbWVhc3VyZVZhbHVlKHZhbHVlKSB7Ci19Ci0KLWZ1bmN0aW9uIGdldEludEZyb21J
bnB1dChpZCkgewotICByZXR1cm4gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LnZhbHVlKTsKLX0KLQotZnVuY3Rpb24gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KG5hbWUpIHsKLSAg
dmFyIGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVuY2htYXJrX2Zvcm0nKVtuYW1l
XTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKQotICAgIGlmIChsaXN0
Lml0ZW0oaSkuY2hlY2tlZCkKLSAgICAgIHJldHVybiBsaXN0Lml0ZW0oaSkudmFsdWU7Ci0gIHJl
dHVybiB1bmRlZmluZWQ7Ci19Ci1mdW5jdGlvbiBnZXRCb29sRnJvbUNoZWNrQm94KGlkKSB7Ci0g
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tlZDsKLX0KLQotZnVuY3Rp
b24gZ2V0SW50QXJyYXlGcm9tSW5wdXQoaWQpIHsKLSAgdmFyIHN0ckFycmF5ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlLnNwbGl0KCcsJyk7Ci0gIHJldHVybiBzdHJBcnJheS5t
YXAoZnVuY3Rpb24oc3RyKSB7IHJldHVybiBwYXJzZUludChzdHIsIDEwKTsgfSk7Ci19Ci0KLWZ1
bmN0aW9uIG9uTWVzc2FnZShtZXNzYWdlKSB7Ci0gIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0g
J2FkZFRvTG9nJykKLSAgICBhZGRUb0xvZyhtZXNzYWdlLmRhdGEuZGF0YSk7Ci0gIGVsc2UgaWYg
KG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYWRkVG9TdW1tYXJ5JykKLSAgICBhZGRUb1N1bW1hcnko
bWVzc2FnZS5kYXRhLmRhdGEpOwotICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ21l
YXN1cmVWYWx1ZScpCi0gICAgbWVhc3VyZVZhbHVlKG1lc3NhZ2UuZGF0YS5kYXRhKTsKLX0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL3V0aWxfd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjRmNzgy
OWQ1MmQ4NTA2NDk4ODlmOWIwYWNlOTk4NWM3YjYyMTFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUu
Y29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUg
YXBwbGljYXRpb25zIChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkpLgotCi1mdW5jdGlvbiB3
b3JrZXJBZGRUb0xvZyh0ZXh0KSB7Ci0gIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9Mb2cnLCBk
YXRhOiB0ZXh0fSk7Ci19Ci0KLWZ1bmN0aW9uIHdvcmtlckFkZFRvU3VtbWFyeSh0ZXh0KSB7Ci0g
IHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9TdW1tYXJ5JywgZGF0YTogdGV4dH0pOwotfQotCi1m
dW5jdGlvbiB3b3JrZXJNZWFzdXJlVmFsdWUodmFsdWUpIHsKLSAgcG9zdE1lc3NhZ2Uoe3R5cGU6
ICdtZWFzdXJlVmFsdWUnLCBkYXRhOiB2YWx1ZX0pOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMWY3OTliYzQxYzRhYzEwYzU4NmM3MWJj
YTNjYmIzMDljMWI5YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDQzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dz
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9h
cnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2hfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVu
Y2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmtfaGVscGVyX3dzaC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvY2xvc2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Vj
aG9fY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvZWNob193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNlLmNn
aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
aGFuZGxlcl9tYXAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oc3RzX3dzaC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9vcmlnaW5f
Y2hlY2tfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsLmpz
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX21haW4uanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxf
d29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9ldmVudF9s
b2dnZXIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTg2MjI5Nzc1ZjVhYzA4MmExZmRkMzI3YTQ1OTVkZjkxZDFmYmQ1MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyMiArMCwwIEBA
Ci08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRs
ZT5YTUxIdHRwUmVxdWVzdCBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlwdCBzcmM9InV0aWxfbWFp
bi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0ieGhyX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGFkZHJlc3NC
b3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0gIHJldHVybiB7Ci0gICAgcHJl
Zml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVj
a0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtWEhSczogZ2V0SW50RnJvbUlucHV0KCdudW1YSFJz
JyksCi0gICAgYXN5bmM6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJyksCi0gICAgLy8gSW5p
dGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1
dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21J
bnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlu
cHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBv
ZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAgc3RvcFRocmVzaG9sZDogZ2V0
SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgLy8gSWYgdGhlIHNpemUgb2YgZWFj
aCBtZXNzYWdlIGlzIHNtYWxsLCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUgbWVzc2FnZXMKLSAgICAv
LyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCi0gICAgLy8g
bWluVG90YWw6IGdldEludEZyb21JbnB1dCgnbWludG90YWwnKSwKLSAgICAvLyBtaW5Ub3RhbCBp
cyBub3QgeWV0IGltcGxlbWVudGVkIG9uIFhIUiBiZW5jaG1hcmsKLSAgICBtdWx0aXBsaWVyczog
Z2V0SW50QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxpZXJzJyksCi0gICAgdmVyaWZ5RGF0YTogZ2V0
Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScpCi0gIH07Ci19Ci0KLXZhciB3b3JrZXIgPSBu
ZXcgV29ya2VyKCd4aHJfYmVuY2htYXJrLmpzJyk7Ci13b3JrZXIub25tZXNzYWdlID0gb25NZXNz
YWdlOwotCi1mdW5jdGlvbiBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRD
b25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRh
dHlwZXJhZGlvJyk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0g
ICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc2VuZEJlbmNobWFyaycsIGNvbmZpZzogY29u
ZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAg
Y29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZh
bHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgfQotfQot
Ci1mdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBjb25maWcgPSBnZXRDb25m
aWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlw
ZXJhZGlvJyk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAg
d29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAncmVjZWl2ZUJlbmNobWFyaycsIGNvbmZpZzogY29u
ZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAg
Y29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBjb25maWcubWVhc3VyZVZh
bHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHJlY2VpdmVCZW5jaG1hcmsoY29uZmlnKTsKLSAgfQot
fQotCi1mdW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29u
ZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29y
a2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnYmF0Y2hCZW5jaG1hcmsnLCBjb25maWc6IGNvbmZpZ30p
OwotICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZp
Zy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9
IG1lYXN1cmVWYWx1ZTsKLSAgICBiYXRjaEJlbmNobWFyayhjb25maWcpOwotICB9Ci19Ci0KLWZ1
bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChn
ZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7
dHlwZTogJ3N0b3AnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5h
ZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1h
cnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBzdG9wKGNv
bmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRkcmVzc0JveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3N1bW1hcnknKTsKLQotICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2YgcHl3ZWJzb2NrZXQgZm9y
IFhIUiBiZW5jaG1hcmsuCi0gIGFkZHJlc3NCb3gudmFsdWUgPSAnLzA3M2JlMDAxZTEwOTUwNjky
Y2NiZjNhMmFkMjFjMjQ1JzsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2Vu
dC50b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFn
ZW50LnRvTG93ZXJDYXNlKCkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
ImluaXQoKSI+Ci0KLTxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+Ci0gIHVybCBwcmVmaXggPGlu
cHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0eXBlPSJi
dXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1
dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVCZW5jaG1h
cmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGljaz0ib25C
YXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0b3AiIG9u
Y2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIg
aWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5QcmludCBz
aXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0YSI+VmVy
aWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3JrZXIiPgot
ICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0iYXN5bmMiPkFz
eW5jPC9sYWJlbD48YnI+Ci0gIChSZWNlaXZlICZhbXA7JmFtcDsgTm9uLVdvcmtlciAmYW1wOyZh
bXA7IFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSBzcGVjKQotCi0gIDxici8+Ci0KLSAgUGFyYW1l
dGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtIFhI
UnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtWEhScyIgdmFsdWU9
IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIGl0ZXJh
dGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRlcmF0aW9u
cyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TnVtYmVy
IG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQi
IGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KLSAgICA8L3RyPgotICAg
IDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgotICAgIDwvdHI+Ci0gICAg
PHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAgIDx0ZD48aW5wdXQgdHlw
ZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+Ci0gICAg
PC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TWluaW11bSB0b3RhbDwvdGQ+Ci0gICAgICA8dGQ+
PGlucHV0IHR5cGU9InRleHQiIGlkPSJtaW50b3RhbCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4K
LSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0aXBsaWVyczwvdGQ+Ci0gICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0aXBsaWVycyIgdmFsdWU9IjUsIDIiPjwvdGQ+
Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLQotICBTZXQgZGF0YSB0eXBlCi0gIDxpbnB1dCB0eXBl
PSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0gICAgICAgICBpZD0iZGF0
YXR5cGVyYWRpb3RleHQiCi0gICAgICAgICB2YWx1ZT0idGV4dCIKLSAgICAgICAgIGNoZWNrZWQ+
PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb3RleHQiPnRleHQ8L2xhYmVsPgotICA8aW5wdXQgdHlw
ZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRh
dGF0eXBlcmFkaW9ibG9iIgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0gICAgICAgICA+PGxhYmVs
IGZvcj0iZGF0YXR5cGVyYWRpb2Jsb2IiPmJsb2I8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0icmFk
aW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAgICAgaWQ9ImRhdGF0eXBl
cmFkaW9hcnJheWJ1ZmZlciIKLSAgICAgICAgIHZhbHVlPSJhcnJheWJ1ZmZlciIKLSAgICAgICAg
ID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIiPmFycmF5YnVmZmVyPC9sYWJl
bD4KLTwvZm9ybT4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9
ImxvZyIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4K
LTwvZGl2PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYiPgotICBTdW1tYXJ5Ci0gIDx0ZXh0YXJlYQot
ICAgICAgaWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5
PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotTm90ZTogRWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVu
dCBmb3IgQXJyYXlCdWZmZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3Qg
ZWxpbWluYXRlZC4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS94aHJfYmVuY2htYXJrLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpz
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzNjN2NiMzhjNDllMTU5ZGI1YTQxNmQ5
YWZkYTA5YjJlZjM4NmNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5qcworKysgL2Rldi9udWxsCkBA
IC0xLDM4OSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5H
IGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNl
L2xpY2Vuc2VzL2JzZAotCi12YXIgaXNXb3JrZXIgPSB0eXBlb2YgaW1wb3J0U2NyaXB0cyAhPT0g
InVuZGVmaW5lZCI7Ci0KLWlmIChpc1dvcmtlcikgewotICAvLyBSdW5uaW5nIG9uIGEgd29ya2Vy
Ci0gIGltcG9ydFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3JrZXIuanMnKTsKLX0KLQotLy8g
TmFtZXNwYWNlIGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVuY2htYXJrID0ge307Ci1iZW5j
aG1hcmsuc3RhcnRUaW1lSW5NcyA9IDA7Ci0KLXZhciB4aHJzID0gW107Ci0KLXZhciB0aW1lcklE
ID0gbnVsbDsKLQotZnVuY3Rpb24gZGVzdHJveUFsbFhIUnMoKSB7Ci0gIGZvciAodmFyIGkgPSAw
OyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHhocnNbaV0ub25yZWFkeXN0YXRlY2hhbmdl
ID0gbnVsbDsKLSAgICAvLyBBYm9ydCBYSFJzIGlmIHRoZXkgYXJlIG5vdCB5ZXQgRE9ORSBzdGF0
ZS4KLSAgICAvLyBDYWxsaW5nIGFib3J0KCkgaGVyZSAoaS5lLiBpbiBvbnJlYWR5c3RhdGVjaGFu
Z2UgaGFuZGxlcikgCi0gICAgLy8gY2F1c2VzICJOZXR3b3JrRXJyb3IiIG1lc3NhZ2VzIGluIERl
dlRvb2xzIGluIHN5bmMgbW9kZSwKLSAgICAvLyBldmVuIGlmIGl0IGlzIGFmdGVyIHRyYW5zaXRp
b24gdG8gRE9ORSBzdGF0ZS4KLSAgICBpZiAoeGhyc1tpXS5yZWFkeVN0YXRlICE9IFhNTEh0dHBS
ZXF1ZXN0LkRPTkUpCi0gICAgICB4aHJzW2ldLmFib3J0KCk7Ci0gIH0KLSAgeGhycyA9IFtdOwot
ICAvLyBnYygpIG1pZ2h0IGJlIG5lZWRlZCBmb3IgQ2hyb21lL0Jsb2IKLX0KLQotZnVuY3Rpb24g
cmVwZWF0U3RyaW5nKHN0ciwgY291bnQpIHsKLSAgdmFyIGRhdGEgPSAnJzsKLSAgdmFyIGV4cENo
dW5rID0gc3RyOwotICB2YXIgcmVtYWluID0gY291bnQ7Ci0gIHdoaWxlICh0cnVlKSB7Ci0gICAg
aWYgKHJlbWFpbiAlIDIpIHsKLSAgICAgIGRhdGEgKz0gZXhwQ2h1bms7Ci0gICAgICByZW1haW4g
PSAocmVtYWluIC0gMSkgLyAyOwotICAgIH0gZWxzZSB7Ci0gICAgICByZW1haW4gLz0gMjsKLSAg
ICB9Ci0KLSAgICBpZiAocmVtYWluID09IDApCi0gICAgICBicmVhazsKLQotICAgIGV4cENodW5r
ID0gZXhwQ2h1bmsgKyBleHBDaHVuazsKLSAgfQotICByZXR1cm4gZGF0YTsKLX0KLQotZnVuY3Rp
b24gc2VuZEJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRpbWVySUQgPSBudWxsOwot
Ci0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7
Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZhciBvblJlYWR5U3RhdGVDaGFuZ2VIYW5k
bGVyID0gZnVuY3Rpb24gKCkgewotICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhpcy5ET05F
KSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMuc3RhdHVzICE9IDIwMCkg
ewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5zdGF0dXMg
KyAnKScpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAoY29uZmlnLnZlcmlmeURhdGEgJiYKLSAgICAgICAgIXZlcmlmeUFja25vd2xlZGdl
bWVudChjb25maWcsIHRoaXMucmVzcG9uc2UsIHNpemUpKSB7Ci0gICAgICBkZXN0cm95QWxsWEhS
cygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVwbGllZCArPSBzaXplOwot
Ci0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBudWxsKSB7Ci0gICAgICBj
b25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwotICAgICAgZGVzdHJveUFs
bFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1
bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKTsKLQot
ICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9Owot
Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsraSkgewotICAgIHZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0g
b25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlcjsKLSAgICB4aHJzLnB1c2goeGhyKTsKLSAgfQotCi0g
IHZhciBkYXRhQXJyYXkgPSBbXTsKLQotICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3Ro
OyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IG51bGw7Ci0gICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9
PSAnYXJyYXlidWZmZXInIHx8Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsK
LSAgICAgIGRhdGEgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAgICAgIGZpbGxBcnJheUJ1
ZmZlcihkYXRhLCAweDYxKTsKLQotICAgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicp
IHsKLSAgICAgICAgZGF0YSA9IG5ldyBCbG9iKFtkYXRhXSk7Ci0gICAgICB9Ci0gICAgfSBlbHNl
IHsKLSAgICAgIGRhdGEgPSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsKLSAgICB9Ci0KLSAgICBk
YXRhQXJyYXkucHVzaChkYXRhKTsKLSAgfQotCi0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMg
PSBnZXRUaW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOwotCi0g
IGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciBkYXRhID0g
ZGF0YUFycmF5W2ldOwotICAgIHZhciB4aHIgPSB4aHJzW2ldOwotICAgIHhoci5vcGVuKCdQT1NU
JywgY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsIGNvbmZpZy5hc3luYyk7Ci0gICAgeGhyLnNl
bmQoZGF0YSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwg
Y29uZmlnKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1z
ID0gbnVsbDsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwot
Ci0gIHZhciBjaGVja1Jlc3VsdEFuZENvbnRpbnVlID0gZnVuY3Rpb24gKGJ5dGVzUmVjZWl2ZWQs
IHZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0KSB7Ci0g
ICAgICBjb25maWcuYWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTsKLSAg
ICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxS
ZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7Ci0KLSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxT
aXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJlbmNobWFyay5zdGFydFRp
bWVJbk1zID09IG51bGwpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBu
b3Qgc2V0Jyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFy
dFRpbWVJbk1zLCB0b3RhbFNpemUpOwotCi0gICAgZGVzdHJveUFsbFhIUnMoKTsKLQotICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0KLQotICB2YXIgb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxl
ciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhpcy5yZWFkeVN0YXRlICE9IHRoaXMuRE9ORSkg
ewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnN0YXR1cyAhPSAyMDApIHsK
LSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyArIHRoaXMuc3RhdHVzICsg
JyknKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSAtMTsKLSAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0g
J2FycmF5YnVmZmVyJykgewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2UuYnl0
ZUxlbmd0aDsKLSAgICB9IGVsc2UgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdibG9iJykgewot
ICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2Uuc2l6ZTsKLSAgICB9IGVsc2Ugewot
ICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2UubGVuZ3RoOwotICAgIH0KLSAgICBp
ZiAoYnl0ZXNSZWNlaXZlZCAhPSBzaXplKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ0V4cGVj
dGVkICcgKyBzaXplICsKLSAgICAgICAgICAnQiBidXQgcmVjZWl2ZWQgJyArIGJ5dGVzUmVjZWl2
ZWQgKyAnQicpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVmZmVyJykgewotICAgICAg
Y2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLAotICAgICAgICAgICFjb25maWcu
dmVyaWZ5RGF0YSB8fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJlc3BvbnNlLCAweDYxKSk7Ci0g
ICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKLSAgICAgIGlmIChj
b25maWcudmVyaWZ5RGF0YSkKLSAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIHRoaXMucmVzcG9u
c2UsIDB4NjEsIGNoZWNrUmVzdWx0QW5kQ29udGludWUpOwotICAgICAgZWxzZQotICAgICAgICBj
aGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRydWUpOwotICAgIH0gZWxzZSB7
Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKAotICAgICAgICAgIGJ5dGVzUmVjZWl2ZWQs
Ci0gICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAgICAgICAgICAgIHRoaXMucmVz
cG9uc2UgPT0gcmVwZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25zZS5sZW5ndGgpKTsKLSAgICB9
Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsgKytpKSB7Ci0g
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vbnJlYWR5c3RhdGVj
aGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAgIHhocnMucHVzaCh4aHIpOwot
ICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLSAgdG90
YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgeGhy
cy5sZW5ndGg7ICsraSkgewotICAgIHZhciB4aHIgPSB4aHJzW2ldOwotICAgIHhoci5vcGVuKCdQ
T1NUJywgY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZScsIGNvbmZpZy5hc3luYyk7Ci0gICAg
eGhyLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKLSAgICB4aHIuc2VuZChzaXplICsg
JyBub25lJyk7Ci0gIH0KLX0KLQotCi1mdW5jdGlvbiBnZXRDb25maWdTdHJpbmcoY29uZmlnKSB7
Ci0gIHJldHVybiAnKCcgKyBjb25maWcuZGF0YVR5cGUgKwotICAgICcsIHZlcmlmeURhdGE9JyAr
IGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAnLCAnICsgKGlzV29ya2VyID8gJ1dvcmtlcicgOiAn
TWFpbicpICsKLSAgICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdBc3luYycgOiAnU3luYycpICsK
LSAgICAnLCBudW1YSFJzPScgKyBjb25maWcubnVtWEhScyArCi0gICAgJywgbnVtSXRlcmF0aW9u
cz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKwotICAgICcsIG51bVdhcm1VcEl0ZXJhdGlvbnM9
JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAnKSc7Ci19Ci0KLWZ1bmN0aW9u
IHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQodGltZXJJRCk7Ci0gIGRl
c3Ryb3lBbGxYSFJzKCk7Ci0KLSAgcnVuTmV4dFRhc2soY29uZmlnKTsKLX0KLQotLy8gVE9ETyho
aXJvc2hpZ2UpOiB0aGUgZm9sbG93aW5nIGNvZGUgaXMgdGhlIHNhbWUgYXMgYmVuY2htYXJrLmh0
bWwKLS8vIGFuZCBzb21lIG9mIHRoZW0gc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGUuZy4gdXRpbC5q
cwotCi12YXIgdGFza3MgPSBbXTsKLQotZnVuY3Rpb24gcnVuTmV4dFRhc2soY29uZmlnKSB7Ci0g
IHZhciB0YXNrID0gdGFza3Muc2hpZnQoKTsKLSAgaWYgKHRhc2sgPT0gdW5kZWZpbmVkKSB7Ci0g
ICAgY29uZmlnLmFkZFRvTG9nKCdGaW5pc2hlZCcpOwotICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0g
ICAgcmV0dXJuOwotICB9Ci0gIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRhc2ssIDApOwotfQotCi1m
dW5jdGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKLSAgdmFyIGxlZ2VuZCA9ICcnCi0g
IGlmIChjb25maWcucHJpbnRTaXplKQotICAgIGxlZ2VuZCA9ICdNZXNzYWdlIHNpemUgaW4gS2lC
LCBUaW1lL21lc3NhZ2UgaW4gbXMsICc7Ci0gIGxlZ2VuZCArPSAnU3BlZWQgaW4ga0Ivcyc7Ci0g
IHJldHVybiBsZWdlbmQ7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRhc2tzKGNvbmZpZywgc3RlcEZ1bmMp
IHsKLSAgZm9yICh2YXIgaSA9IDA7Ci0gICAgICBpIDwgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlv
bnMgKyBjb25maWcubnVtSXRlcmF0aW9uczsgKytpKSB7Ci0gICAgLy8gSWdub3JlIHRoZSBmaXJz
dCB8Y29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnN8IGl0ZXJhdGlvbnMuCi0gICAgaWYgKGkgPT0g
Y29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMpCi0gICAgICBhZGRSZXN1bHRDbGVhcmluZ1Rhc2so
Y29uZmlnKTsKLQotICAgIHZhciBtdWx0aXBsaWVySW5kZXggPSAwOwotICAgIGZvciAodmFyIHNp
emUgPSBjb25maWcuc3RhcnRTaXplOwotICAgICAgICAgc2l6ZSA8PSBjb25maWcuc3RvcFRocmVz
aG9sZDsKLSAgICAgICAgICsrbXVsdGlwbGllckluZGV4KSB7Ci0gICAgICB2YXIgdGFzayA9IHN0
ZXBGdW5jLmJpbmQoCi0gICAgICAgICAgbnVsbCwKLSAgICAgICAgICBzaXplLAotICAgICAgICAg
IGNvbmZpZyk7Ci0gICAgICB0YXNrcy5wdXNoKHRhc2spOwotICAgICAgc2l6ZSAqPSBjb25maWcu
bXVsdGlwbGllcnNbCi0gICAgICAgICAgbXVsdGlwbGllckluZGV4ICUgY29uZmlnLm11bHRpcGxp
ZXJzLmxlbmd0aF07Ci0gICAgfQotICB9Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdFJlcG9ydGlu
Z1Rhc2soY29uZmlnLCB0aXRsZSkgewotICB0YXNrcy5wdXNoKGZ1bmN0aW9uKCl7Ci0gICAgICB0
aW1lcklEID0gbnVsbDsKLSAgICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkodGl0bGUpOwotICAgICAg
cmVwb3J0QXZlcmFnZURhdGEoY29uZmlnKTsKLSAgICAgIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAg
ICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0pOwotfQotCi1mdW5jdGlvbiBhZGRSZXN1bHRD
bGVhcmluZ1Rhc2soY29uZmlnKSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rpb24oKXsKLSAgICAgIHRp
bWVySUQgPSBudWxsOwotICAgICAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRh
c2soY29uZmlnKTsKLSAgfSk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7Ci0gIGNvbmZpZy5hZGRUb0xv
ZygnU2VuZCBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5n
KGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLSAgYWRk
VGFza3MoY29uZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9ydGluZ1Rh
c2soY29uZmlnLCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsK
LSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFy
ayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJlbmNobWFyaycpOwotICBj
b25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7Ci0KLSAgdGFza3MgPSBb
XTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5j
aG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCi0gICAgICAnUmVj
ZWl2ZSBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5j
aG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsob3JpZ2luYWxDb25m
aWcpIHsKLSAgb3JpZ2luYWxDb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOwotCi0g
IHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLQotICB2YXIgZGF0YVR5cGVzID0g
Wyd0ZXh0JywgJ2Jsb2InLCAnYXJyYXlidWZmZXInXTsKLSAgdmFyIHN0ZXBGdW5jcyA9IFtzZW5k
QmVuY2htYXJrU3RlcCwgcmVjZWl2ZUJlbmNobWFya1N0ZXBdOwotICB2YXIgbmFtZXMgPSBbJ1Nl
bmQnLCAnUmVjZWl2ZSddOwotICB2YXIgYXN5bmMgPSBbdHJ1ZSwgZmFsc2VdOwotICBmb3IgKHZh
ciBpID0gMDsgaSA8IHN0ZXBGdW5jcy5sZW5ndGg7ICsraSkgewotICAgIGZvciAodmFyIGogPSAw
OyBqIDwgZGF0YVR5cGVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICBmb3IgKHZhciBrID0gMDsgayA8
IGFzeW5jLmxlbmd0aDsgKytrKSB7Ci0gICAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhv
cmlnaW5hbENvbmZpZyk7Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9IGRhdGFUeXBlc1tqXTsK
LSAgICAgICAgY29uZmlnLmFzeW5jID0gYXN5bmNba107Ci0KLSAgICAgICAgLy8gUmVjZWl2ZSAm
JiBOb24tV29ya2VyICYmIFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc3BlYwotICAgICAg
ICBpZiAoc3RlcEZ1bmNzW2ldID09PSByZWNlaXZlQmVuY2htYXJrU3RlcCAmJiAhaXNXb3JrZXIg
JiYKLSAgICAgICAgICAgICFjb25maWcuYXN5bmMpCi0gICAgICAgICAgY29udGludWU7Ci0KLSAg
ICAgICAgYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuY3NbaV0pOwotICAgICAgICBhZGRSZXN1bHRS
ZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICAgICAgIG5hbWVzW2ldICsgJyBiZW5jaG1hcmsg
JyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLQotICBz
dGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi0KLWZ1bmN0aW9uIHN0b3AoY29uZmlnKSB7Ci0g
IGRlc3Ryb3lBbGxYSFJzKCk7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgdGltZXJJRCA9
IG51bGw7Ci0gIGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcpOwotfQotCi1vbm1lc3NhZ2UgPSBm
dW5jdGlvbiAobWVzc2FnZSkgewotICB2YXIgY29uZmlnID0gbWVzc2FnZS5kYXRhLmNvbmZpZzsK
LSAgY29uZmlnLmFkZFRvTG9nID0gd29ya2VyQWRkVG9Mb2c7Ci0gIGNvbmZpZy5hZGRUb1N1bW1h
cnkgPSB3b3JrZXJBZGRUb1N1bW1hcnk7Ci0gIGNvbmZpZy5tZWFzdXJlVmFsdWUgPSB3b3JrZXJN
ZWFzdXJlVmFsdWU7Ci0gIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ3NlbmRCZW5jaG1hcmsn
KQotICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5
cGUgPT09ICdyZWNlaXZlQmVuY2htYXJrJykKLSAgICByZWNlaXZlQmVuY2htYXJrKGNvbmZpZyk7
Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYmF0Y2hCZW5jaG1hcmsnKQotICAg
IGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09
PSAnc3RvcCcpCi0gICAgc3RvcChjb25maWcpOwotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfZXZlbnRf
bG9nZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ODM1NTNiOGFjODAz
NTllZTg1YmE5ODFlNTAwNThlY2U0MzdjOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTQgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLWxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4g
dGhlIENPUFlJTkcgZmlsZSBvciBhdAotaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Bl
bi1zb3VyY2UvbGljZW5zZXMvYnNkCi0tLT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5YSFIg
ZXZlbnQgbG9nZ2VyPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLXZhciBldmVudHMgPSBbXTsKLQotZnVuY3Rpb24gcnVuKCkgewotICBldmVu
dHMgPSBbXTsKLQotICBmdW5jdGlvbiBwdXNoVG9Mb2codHlwZSkgewotICAgIGlmIChldmVudHMu
bGVuZ3RoICE9IDAgJiYgdHlwZSA9PT0gZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS50eXBlKSB7
Ci0gICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmNvdW50ICs9IDE7Ci0gICAgfSBlbHNl
IHsKLSAgICAgIGV2ZW50cy5wdXNoKHt0eXBlOiB0eXBlLCBjb3VudDogMX0pOwotICAgIH0KLSAg
fQotCi0gIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLQotICBmdW5jdGlvbiBnZXRQ
cm9ncmVzc0V2ZW50RHVtcChlKSB7Ci0gICAgcmV0dXJuICcoJyArIGUubGVuZ3RoQ29tcHV0YWJs
ZSArICcsICcgKyBlLmxvYWRlZCArICcsICcgKyBlLnRvdGFsICsgJyknOwotICB9Ci0KLSAgdmFy
IGR1bXBQcm9ncmVzc0V2ZW50ID0gZ2V0Qm9vbEZyb21DaGVja0JveCgnZHVtcHByb2dyZXNzZXZl
bnQnKTsKLQotICBmdW5jdGlvbiBsb2coZSkgewotICAgIHZhciB0eXBlID0gZS50eXBlOwotICAg
IGlmICh0eXBlID09PSAncmVhZHlzdGF0ZWNoYW5nZScpIHsKLSAgICAgIHR5cGUgKz0gZS50YXJn
ZXQucmVhZHlTdGF0ZTsKLSAgICB9Ci0gICAgaWYgKGR1bXBQcm9ncmVzc0V2ZW50ICYmIChlIGlu
c3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsKLSAgICAgIHR5cGUgKz0gZ2V0UHJvZ3Jlc3NFdmVu
dER1bXAoZSk7Ci0gICAgfQotICAgIHB1c2hUb0xvZyh0eXBlKTsKLSAgfTsKLQotICBmdW5jdGlv
biBsb2dVcGxvYWQoZSkgewotICAgIHZhciB0eXBlID0gZS50eXBlOwotICAgIGlmIChkdW1wUHJv
Z3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7Ci0gICAgICB0eXBl
ICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOwotICAgIH0KLSAgICBwdXNoVG9Mb2coJ3VwbG9h
ZCcgKyB0eXBlKTsKLSAgfQotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd1cGxvYWQnKSkg
ewotICAgIHZhciB1cGxvYWQgPSB4aHIudXBsb2FkOwotICAgIHVwbG9hZC5vbmxvYWRzdGFydCA9
IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25wcm9ncmVzcyA9IGxvZ1VwbG9hZDsKLSAgICB1cGxv
YWQub25hYm9ydCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25lcnJvciA9IGxvZ1VwbG9hZDsK
LSAgICB1cGxvYWQub25sb2FkID0gbG9nVXBsb2FkOwotICAgIHVwbG9hZC5vbnRpbWVvdXQgPSBs
b2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ubG9hZGVuZCA9IGxvZ1VwbG9hZDsKLSAgfQotCi0gIHho
ci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBsb2c7Ci0gIHhoci5vbmxvYWRzdGFydCA9IGxvZzsKLSAg
eGhyLm9ucHJvZ3Jlc3MgPSBsb2c7Ci0gIHhoci5vbmFib3J0ID0gbG9nOwotICB4aHIub25lcnJv
ciA9IGxvZzsKLSAgeGhyLm9ubG9hZCA9IGxvZzsKLSAgeGhyLm9udGltZW91dCA9IGxvZzsKLSAg
eGhyLm9ubG9hZGVuZCA9IGxvZzsKLQotICB4aHIub3BlbignUE9TVCcsICcvMDczYmUwMDFlMTA5
NTA2OTJjY2JmM2EyYWQyMWMyNDVfcmVjZWl2ZScsCi0gICAgICAgICAgIGdldEJvb2xGcm9tQ2hl
Y2tCb3goJ2FzeW5jJykpOwotICB2YXIgc2l6ZSA9IGdldEludEZyb21JbnB1dCgnc2l6ZScpOwot
ICB2YXIgY2h1bmtlZE1vZGUgPSAnbm9uZSc7Ci0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCdj
aHVua2VkcmVzcG9uc2UnKSkgewotICAgIGNodW5rZWRNb2RlID0gJ2NodW5rZWQnOwotICB9Ci0g
IHhoci5zZW5kKHNpemUgKyAnICcgKyBjaHVua2VkTW9kZSk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50
KCkgewotICB2YXIgcmVzdWx0ID0gJyc7Ci0gIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnRzLmxl
bmd0aDsgKytpKSB7Ci0gICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwotICAgIHJlc3VsdCArPSBl
dmVudC50eXBlICsgJyAqICcgKyBldmVudC5jb3VudCArICdcbic7Ci0gIH0KLSAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvZycpLnZhbHVlID0gcmVzdWx0OwotfQotPC9zY3JpcHQ+Ci0KLTxi
b2R5PgotICA8dGV4dGFyZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9IjQwIiByZWFkb25seT48
L3RleHRhcmVhPgotICA8YnIvPgotICBTaXplOiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNpemUi
IHZhbHVlPSI2NTUzNiI+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2h1bmtl
ZHJlc3BvbnNlIj4KLSAgPGxhYmVsIGZvcj0iY2h1bmtlZHJlc3BvbnNlIj5Vc2UgQ2h1bmtlZCBU
LUUgZm9yIHJlc3BvbnNlPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlk
PSJ1cGxvYWQiPgotICA8bGFiZWwgZm9yPSJ1cGxvYWQiPlVwbG9hZCBwcm9ncmVzczwvbGFiZWw+
PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZHVtcHByb2dyZXNzZXZlbnQiPgot
ICA8bGFiZWwgZm9yPSJkdW1wcHJvZ3Jlc3NldmVudCI+Ci0gICAgRHVtcCBsZW5ndGhDb21wdXRh
YmxlL2xvYWRlZC90b3RhbDwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBp
ZD0iYXN5bmMiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9ImFzeW5jIj5Bc3luYzwvbGFiZWw+PGJy
Lz4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icnVuKCkiIHZhbHVlPSJSdW4gWEhS
Ij4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icHJpbnQoKSIgdmFsdWU9IlByaW50
IGxvZyI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOTMzYTIyMDQ1MWZhZGI2YTAxYTVjMWQ0
NWMyNTUxNDY4ZDdkODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMjI0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBleHRl
bnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlci4KLQotbW9kX3B5d2Vic29ja2V0IGlzIGEgV2Vi
U29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVyCi1pbnRlbmRlZCBmb3IgdGVz
dGluZyBvciBleHBlcmltZW50YWwgcHVycG9zZXMuIG1vZF9weXRob24gaXMgcmVxdWlyZWQuCi0K
LQotSW5zdGFsbGF0aW9uCi09PT09PT09PT09PT0KLQotMC4gUHJlcGFyZSBhbiBBcGFjaGUgSFRU
UCBTZXJ2ZXIgZm9yIHdoaWNoIG1vZF9weXRob24gaXMgZW5hYmxlZC4KLQotMS4gU3BlY2lmeSB0
aGUgZm9sbG93aW5nIEFwYWNoZSBIVFRQIFNlcnZlciBkaXJlY3RpdmVzIHRvIHN1aXQgeW91cgot
ICAgY29uZmlndXJhdGlvbi4KLQotICAgSWYgbW9kX3B5d2Vic29ja2V0IGlzIG5vdCBpbiB0aGUg
UHl0aG9uIHBhdGgsIHNwZWNpZnkgdGhlIGZvbGxvd2luZy4KLSAgIDx3ZWJzb2NrX2xpYj4gaXMg
dGhlIGRpcmVjdG9yeSB3aGVyZSBtb2RfcHl3ZWJzb2NrZXQgaXMgaW5zdGFsbGVkLgotCi0gICAg
ICAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWyc8d2Vic29ja19saWI+J10iCi0KLSAgIEFsd2F5cyBz
cGVjaWZ5IHRoZSBmb2xsb3dpbmcuIDx3ZWJzb2NrX2hhbmRsZXJzPiBpcyB0aGUgZGlyZWN0b3J5
IHdoZXJlCi0gICB1c2VyLXdyaXR0ZW4gV2ViU29ja2V0IGhhbmRsZXJzIGFyZSBwbGFjZWQuCi0K
LSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCA8d2Vic29j
a19oYW5kbGVycz4KLSAgICAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdlYnNv
Y2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0KLSAgIFRvIGxpbWl0IHRoZSBzZWFyY2ggZm9yIFdl
YlNvY2tldCBoYW5kbGVycyB0byBhIGRpcmVjdG9yeSA8c2Nhbl9kaXI+Ci0gICB1bmRlciA8d2Vi
c29ja19oYW5kbGVycz4sIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgotCi0gICAgICAgUHl0aG9uT3B0
aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3NjYW4gPHNjYW5fZGlyPgotCi0gICA8c2Nhbl9k
aXI+IGlzIHVzZWZ1bCBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gPHdlYnNvY2tfaGFuZGxlcnM+
Ci0gICBjb250YWlucyBtYW55IG5vbi1XZWJTb2NrZXQgaGFuZGxlciBmaWxlcy4KLQotICAgSWYg
eW91IHdhbnQgdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMgbm90IHVu
ZGVyIHRoZSByb290Ci0gICBkaXJlY3RvcnkgKGkuZS4gc3ltYm9saWMgbGluayBpcyBpbiByb290
IGRpcmVjdG9yeSBidXQgaXRzIHRhcmdldCBpcyBub3QpLAotICAgY29uZmlndXJlIGFzIGZvbGxv
d3M6Ci0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFsbG93X2hhbmRsZXJz
X291dHNpZGVfcm9vdF9kaXIgT24KLQotICAgRXhhbXBsZSBzbmlwcGV0IG9mIGh0dHBkLmNvbmY6
Ci0gICAobW9kX3B5d2Vic29ja2V0IGlzIGluIC93ZWJzb2NrX2xpYiwgV2ViU29ja2V0IGhhbmRs
ZXJzIGFyZSBpbgotICAgL3dlYnNvY2tfaGFuZGxlcnMsIHBvcnQgaXMgODAgZm9yIHdzLCA0NDMg
Zm9yIHdzcy4pCi0KLSAgICAgICA8SWZNb2R1bGUgcHl0aG9uX21vZHVsZT4KLSAgICAgICAgIFB5
dGhvblBhdGggInN5cy5wYXRoK1snL3dlYnNvY2tfbGliJ10iCi0gICAgICAgICBQeXRob25PcHRp
b24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCAvd2Vic29ja19oYW5kbGVycwotICAgICAg
ICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2Vy
aGFuZGxlcgotICAgICAgIDwvSWZNb2R1bGU+Ci0KLTIuIFR1bmUgQXBhY2hlIHBhcmFtZXRlcnMg
Zm9yIHNlcnZpbmcgV2ViU29ja2V0LiBXZSdkIGxpa2UgdG8gbm90ZSB0aGF0IGF0Ci0gICBsZWFz
dCBUaW1lT3V0IGRpcmVjdGl2ZSBmcm9tIGNvcmUgZmVhdHVyZXMgYW5kIFJlcXVlc3RSZWFkVGlt
ZW91dAotICAgZGlyZWN0aXZlIGZyb20gbW9kX3JlcXRpbWVvdXQgc2hvdWxkIGJlIG1vZGlmaWVk
IG5vdCB0byBraWxsIGNvbm5lY3Rpb25zCi0gICBpbiBvbmx5IGEgZmV3IHNlY29uZHMgb2YgaWRs
ZSB0aW1lLgotCi0zLiBWZXJpZnkgaW5zdGFsbGF0aW9uLiBZb3UgY2FuIHVzZSBleGFtcGxlL2Nv
bnNvbGUuaHRtbCB0byBwb2tlIHRoZSBzZXJ2ZXIuCi0KLQotV3JpdGluZyBXZWJTb2NrZXQgaGFu
ZGxlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVdoZW4gYSBXZWJTb2NrZXQgcmVx
dWVzdCBjb21lcyBpbiwgdGhlIHJlc291cmNlIG5hbWUKLXNwZWNpZmllZCBpbiB0aGUgaGFuZHNo
YWtlIGlzIGNvbnNpZGVyZWQgYXMgaWYgaXQgaXMgYSBmaWxlIHBhdGggdW5kZXIKLTx3ZWJzb2Nr
X2hhbmRsZXJzPiBhbmQgdGhlIGhhbmRsZXIgZGVmaW5lZCBpbgotPHdlYnNvY2tfaGFuZGxlcnM+
LzxyZXNvdXJjZV9uYW1lPl93c2gucHkgaXMgaW52b2tlZC4KLQotRm9yIGV4YW1wbGUsIGlmIHRo
ZSByZXNvdXJjZSBuYW1lIGlzIC9leGFtcGxlL2NoYXQsIHRoZSBoYW5kbGVyIGRlZmluZWQgaW4K
LTx3ZWJzb2NrX2hhbmRsZXJzPi9leGFtcGxlL2NoYXRfd3NoLnB5IGlzIGludm9rZWQuCi0KLUEg
V2ViU29ja2V0IGhhbmRsZXIgaXMgY29tcG9zZWQgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBmdW5j
dGlvbnM6Ci0KLSAgICB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KQotICAg
IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgIHdlYl9zb2NrZXRfcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KQotCi13aGVyZToKLSAgICByZXF1ZXN0OiBtb2Rf
cHl0aG9uIHJlcXVlc3QuCi0KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIGNhbGxl
ZCBkdXJpbmcgdGhlIGhhbmRzaGFrZSBhZnRlciB0aGUKLWhlYWRlcnMgYXJlIHN1Y2Nlc3NmdWxs
eSBwYXJzZWQgYW5kIFdlYlNvY2tldCBwcm9wZXJ0aWVzICh3c19sb2NhdGlvbiwKLXdzX29yaWdp
biwgYW5kIHdzX3Jlc291cmNlKSBhcmUgYWRkZWQgdG8gcmVxdWVzdC4gQSBoYW5kbGVyCi1jYW4g
cmVqZWN0IHRoZSByZXF1ZXN0IGJ5IHJhaXNpbmcgYW4gZXhjZXB0aW9uLgotCi1BIHJlcXVlc3Qg
b2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgdGhhdCB5b3UgY2FuIHVzZSBkdXJp
bmcgdGhlCi1leHRyYSBoYW5kc2hha2UgKHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKToK
LS0gd3NfcmVzb3VyY2UKLS0gd3Nfb3JpZ2luCi0tIHdzX3ZlcnNpb24KLS0gd3NfbG9jYXRpb24g
KEh5QmkgMDAgb25seSkKLS0gd3NfZXh0ZW5zaW9ucyAoSHlCaSAwNiBhbmQgbGF0ZXIpCi0tIHdz
X2RlZmxhdGUgKEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19wcm90b2NvbAotLSB3c19yZXF1ZXN0
ZWRfcHJvdG9jb2xzIChIeUJpIDA2IGFuZCBsYXRlcikKLQotVGhlIGxhc3QgdHdvIGFyZSBhIGJp
dCB0cmlja3kuIFNlZSB0aGUgbmV4dCBzdWJzZWN0aW9uLgotCi0KLVN1YnByb3RvY29sIE5lZ290
aWF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Gb3IgSHlCaSAwNiBhbmQgbGF0ZXIs
IHdzX3Byb3RvY29sIGlzIGFsd2F5cyBzZXQgdG8gTm9uZSB3aGVuCi13ZWJfc29ja2V0X2RvX2V4
dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQuIElmIHdzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90
Ci1Ob25lLCB5b3UgbXVzdCBjaG9vc2Ugb25lIHN1YnByb3RvY29sIGZyb20gdGhpcyBsaXN0IGFu
ZCBzZXQgaXQgdG8KLXdzX3Byb3RvY29sLgotCi1Gb3IgSHlCaSAwMCwgd2hlbiB3ZWJfc29ja2V0
X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQsCi13c19wcm90b2NvbCBpcyBzZXQgdG8gdGhl
IHZhbHVlIGdpdmVuIGJ5IHRoZSBjbGllbnQgaW4KLVNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVh
ZGVyIG9yIE5vbmUgaWYKLXN1Y2ggaGVhZGVyIHdhcyBub3QgZm91bmQgaW4gdGhlIG9wZW5pbmcg
aGFuZHNoYWtlIHJlcXVlc3QuIEZpbmlzaCBleHRyYQotaGFuZHNoYWtlIHdpdGggd3NfcHJvdG9j
b2wgdW50b3VjaGVkIHRvIGFjY2VwdCB0aGUgcmVxdWVzdCBzdWJwcm90b2NvbC4KLVRoZW4sIFNl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyIHdpbGwgYmUgc2VudCB0bwotdGhlIGNsaWVudCBp
biByZXNwb25zZSB3aXRoIHRoZSBzYW1lIHZhbHVlIGFzIHJlcXVlc3RlZC4gUmFpc2UgYW4gZXhj
ZXB0aW9uCi1pbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhlIHJl
cXVlc3RlZCBzdWJwcm90b2NvbC4KLQotCi1EYXRhIFRyYW5zZmVyCi0tLS0tLS0tLS0tLS0tCi0K
LXdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGhhbmRzaGFrZSBj
b21wbGV0ZWQKLXN1Y2Nlc3NmdWxseS4gQSBoYW5kbGVyIGNhbiByZWNlaXZlL3NlbmQgbWVzc2Fn
ZXMgZnJvbS90byB0aGUgY2xpZW50Ci11c2luZyByZXF1ZXN0LiBtb2RfcHl3ZWJzb2NrZXQubXNn
dXRpbCBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzCi1mb3IgZGF0YSB0cmFuc2Zlci4KLQotWW91
IGNhbiByZWNlaXZlIGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0YXRlbWVudC4KLQotICAg
IG1lc3NhZ2UgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotCi1UaGlzIGNh
bGwgYmxvY2tzIHVudGlsIGFueSBjb21wbGV0ZSB0ZXh0IGZyYW1lIGFycml2ZXMsIGFuZCB0aGUg
cGF5bG9hZCBkYXRhCi1vZiB0aGUgaW5jb21pbmcgZnJhbWUgd2lsbCBiZSBzdG9yZWQgaW50byBt
ZXNzYWdlLiBXaGVuIHlvdSdyZSB1c2luZyBJRVRGCi1IeUJpIDAwIG9yIGxhdGVyIHByb3RvY29s
LCByZWNlaXZlX21lc3NhZ2UoKSB3aWxsIHJldHVybiBOb25lIG9uIHJlY2VpdmluZwotY2xpZW50
LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZS4gV2hlbiBhbnkgZXJyb3Igb2NjdXJzLCByZWNl
aXZlX21lc3NhZ2UoKQotd2lsbCByYWlzZSBzb21lIGV4Y2VwdGlvbi4KLQotWW91IGNhbiBzZW5k
IGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0YXRlbWVudC4KLQotICAgIHJlcXVlc3Qud3Nf
c3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotCi0KLUNsb3NpbmcgQ29ubmVjdGlvbgotLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLUV4ZWN1dGluZyB0aGUgZm9sbG93aW5nIHN0YXRlbWVudCBvciBq
dXN0IHJldHVybi1pbmcgZnJvbQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhIGNhdXNlIGNvbm5l
Y3Rpb24gY2xvc2UuCi0KLSAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkK
LQotY2xvc2VfY29ubmVjdGlvbiB3aWxsIHdhaXQKLWZvciBjbG9zaW5nIGhhbmRzaGFrZSBhY2tu
b3dsZWRnZW1lbnQgY29taW5nIGZyb20gdGhlIGNsaWVudC4gV2hlbiBpdAotY291bGRuJ3QgcmVj
ZWl2ZSBhIHZhbGlkIGFja25vd2xlZGdlbWVudCwgcmFpc2VzIGFuIGV4Y2VwdGlvbi4KLQotd2Vi
X3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlIGlzIGNhbGxlZCBhZnRlciB0aGUgc2Vy
dmVyIHJlY2VpdmVzCi1pbmNvbWluZyBjbG9zaW5nIGZyYW1lIGZyb20gdGhlIGNsaWVudCBwZWVy
IGltbWVkaWF0ZWx5LiBZb3UgY2FuIHNwZWNpZnkKLWNvZGUgYW5kIHJlYXNvbiBieSByZXR1cm4g
dmFsdWVzLiBUaGV5IGFyZSBzZW50IGFzIGEgb3V0Z29pbmcgY2xvc2luZyBmcmFtZQotZnJvbSB0
aGUgc2VydmVyLiBBIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMg
dGhhdCB5b3UgY2FuCi11c2UgaW4gd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtl
LgotLSB3c19jbG9zZV9jb2RlCi0tIHdzX2Nsb3NlX3JlYXNvbgotCi0KLVRocmVhZGluZwotLS0t
LS0tLS0tCi0KLUEgV2ViU29ja2V0IGhhbmRsZXIgbXVzdCBiZSB0aHJlYWQtc2FmZSBpZiB0aGUg
c2VydmVyIChBcGFjaGUgb3IKLXN0YW5kYWxvbmUucHkpIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIHRo
cmVhZHMuCi0KLQotQ29uZmlndXJpbmcgV2ViU29ja2V0IEV4dGVuc2lvbiBQcm9jZXNzb3JzCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotU2VlIGV4dGVuc2lv
bnMucHkgZm9yIHN1cHBvcnRlZCBXZWJTb2NrZXQgZXh0ZW5zaW9ucy4gTm90ZSB0aGF0IHRoZXkg
YXJlCi11bnN0YWJsZSBhbmQgdGhlaXIgQVBJcyBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugc3Vic3Rh
bnRpYWxseS4KLQotQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlc2UgZXh0ZW5zaW9uIHByb2Nlc3Np
bmcgcmVsYXRlZCBhdHRyaWJ1dGVzLgotCi0tIHdzX3JlcXVlc3RlZF9leHRlbnNpb25zOgotCi0g
IEEgbGlzdCBvZiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyIGluc3RhbmNlcyByZXByZXNlbnRp
bmcgZXh0ZW5zaW9uCi0gIHBhcmFtZXRlcnMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50IGluIHRo
ZSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgWW91IHNob3VsZG4ndCBtb2RpZnkgaXQg
bWFudWFsbHkuCi0KLS0gd3NfZXh0ZW5zaW9uczoKLQotICBBIGxpc3Qgb2YgY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lvbgotICBwYXJhbWV0
ZXJzIHRvIHNlbmQgYmFjayB0byB0aGUgY2xpZW50IGluIHRoZSBzZXJ2ZXIncyBvcGVuaW5nIGhh
bmRzaGFrZS4KLSAgWW91IHNob3VsZG4ndCB0b3VjaCBpdCBkaXJlY3RseS4gSW5zdGVhZCwgY2Fs
bCBtZXRob2RzIG9uIGV4dGVuc2lvbgotICBwcm9jZXNzb3JzLgotCi0tIHdzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzOgotCi0gIEEgbGlzdCBvZiBsb2FkZWQgZXh0ZW5zaW9uIHByb2Nlc3NvcnMuIEZp
bmQgdGhlIHByb2Nlc3NvciBmb3IgdGhlCi0gIGV4dGVuc2lvbiB5b3Ugd2FudCB0byBjb25maWd1
cmUgZnJvbSBpdCwgYW5kIGNhbGwgaXRzIG1ldGhvZHMuCi0iIiIKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQgdHc9NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFt
X2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjM1NjY2YmJiMWQ1MWMxMGRiM2Y5MWJkYTRhYmNk
N2FmZWIyNjgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxODEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQmFzZSBzdHJlYW0gY2xh
c3MuCi0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1
c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotIyBtb2RfcHl0aG9uIGRvY3VtZW50IHNh
eXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgotIyBoYW5kbGVy
cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwK
LSMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0
IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3JpdGluZy9yZWFkaW5nLgotCi0KLWltcG9ydCBz
b2NrZXQKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0jIEV4Y2VwdGlv
bnMKLQotCi1jbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgot
ICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYSBjb25uZWN0aW9uIGlz
IHRlcm1pbmF0ZWQKLSAgICB1bmV4cGVjdGVkbHkuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQot
Y2xhc3MgSW52YWxpZEZyYW1lRXhjZXB0aW9uKENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmVk
IGFuIGludmFsaWQgZnJhbWUgd2UKLSAgICBjYW5ub3QgcGFyc2UuCi0gICAgIiIiCi0KLSAgICBw
YXNzCi0KLQotY2xhc3MgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIi
VGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBzZW5kX21lc3NhZ2UoKSBpcyBjYWxs
ZWQgb24KLSAgICBzZXJ2ZXItdGVybWluYXRlZCBjb25uZWN0aW9uIG9yIHJlY2VpdmVfbWVzc2Fn
ZSgpIGlzIGNhbGxlZCBvbgotICAgIGNsaWVudC10ZXJtaW5hdGVkIGNvbm5lY3Rpb24uCi0gICAg
IiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbihFeGNl
cHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gd2UgcmVj
ZWl2ZSBhIGZyYW1lIHdpdGggZmxhZywgb3Bjb2RlCi0gICAgd2UgY2Fubm90IGhhbmRsZS4gSGFu
ZGxlcnMgY2FuIGp1c3QgY2F0Y2ggYW5kIGlnbm9yZSB0aGlzIGV4Y2VwdGlvbiBhbmQKLSAgICBj
YWxsIHJlY2VpdmVfbWVzc2FnZSgpIGFnYWluIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcgdGhlIG5l
eHQgZnJhbWUuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgSW52YWxpZFVURjhFeGNl
cHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3
aGVuIHdlIHJlY2VpdmUgYSB0ZXh0IGZyYW1lIHdoaWNoCi0gICAgY29udGFpbnMgaW52YWxpZCBV
VEYtOCBzdHJpbmdzLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNsYXNzIFN0cmVhbUJhc2Uo
b2JqZWN0KToKLSAgICAiIiJCYXNlIHN0cmVhbSBjbGFzcy4iIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICBkZWYgX3Jl
YWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVhZHMgbGVuZ3RoIGJ5dGVzIGZyb20gY29u
bmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAotICAgICAgICBwcmVwZW5k
cyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWlu
LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhj
ZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlYWRfYnl0ZXMgPSBzZWxmLl9yZXF1ZXN0LmNvbm5l
Y3Rpb24ucmVhZChsZW5ndGgpCi0gICAgICAgICAgICBpZiBub3QgcmVhZF9ieXRlczoKLSAgICAg
ICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gUGVlciAoJXIpIGNsb3NlZCBj
b25uZWN0aW9uJyAlCi0gICAgICAgICAgICAgICAgICAgIChsZW5ndGgsIChzZWxmLl9yZXF1ZXN0
LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSkpCi0gICAgICAgICAgICByZXR1cm4gcmVhZF9ieXRl
cwotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yLCBlOgotICAgICAgICAgICAgIyBDYXRjaCBh
IHNvY2tldC5lcnJvci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxkIGNsYXNzIG9mIHRoZQotICAg
ICAgICAgICAgIyBJT0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYsIHdlIGNhbm5vdCBvbWl0IHRo
aXMgZXhjZXB0IGNsYXVzZS4KLSAgICAgICAgICAgICMgVXNlICVzIHJhdGhlciB0aGFuICVyIGZv
ciB0aGUgZXhjZXB0aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQotICAgICAgICAgICAgIyBmb3Jt
YXQuCi0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBzb2NrZXQuZXJyb3IgKCVz
KSBvY2N1cnJlZCcgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUpKQotICAgICAgICBleGNl
cHQgSU9FcnJvciwgZToKLSAgICAgICAgICAgICMgQWxzbyBjYXRjaCBhbiBJT0Vycm9yIGJlY2F1
c2UgbW9kX3B5dGhvbiB0aHJvd3MgaXQuCi0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFp
bGVkLiBJT0Vycm9yICglcykgb2NjdXJyZWQnICUKLSAgICAgICAgICAgICAgICAobGVuZ3RoLCBl
KSkKLQotICAgIGRlZiBfd3JpdGUoc2VsZiwgYnl0ZXNfdG9fd3JpdGUpOgotICAgICAgICAiIiJX
cml0ZXMgZ2l2ZW4gYnl0ZXMgdG8gY29ubmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhj
ZXB0aW9uLAotICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9u
IG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWluLgotICAgICAgICAiIiIKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoYnl0ZXNfdG9fd3JpdGUp
Ci0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICB1dGlsLnByZXBlbmRf
bWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gc2Vu
ZCBtZXNzYWdlIHRvICVyOiAnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5f
cmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksCi0gICAgICAgICAgICAgICAgICAgIGUp
Ci0gICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIHJlY2VpdmVfYnl0ZXMoc2VsZiwgbGVuZ3Ro
KToKLSAgICAgICAgIiIiUmVjZWl2ZXMgbXVsdGlwbGUgYnl0ZXMuIFJldHJpZXMgcmVhZCB3aGVu
IHdlIGNvdWxkbid0IHJlY2VpdmUgdGhlCi0gICAgICAgIHNwZWNpZmllZCBhbW91bnQuCi0KLSAg
ICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246
IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
cmVhZF9ieXRlcyA9IFtdCi0gICAgICAgIHdoaWxlIGxlbmd0aCA+IDA6Ci0gICAgICAgICAgICBu
ZXdfcmVhZF9ieXRlcyA9IHNlbGYuX3JlYWQobGVuZ3RoKQotICAgICAgICAgICAgcmVhZF9ieXRl
cy5hcHBlbmQobmV3X3JlYWRfYnl0ZXMpCi0gICAgICAgICAgICBsZW5ndGggLT0gbGVuKG5ld19y
ZWFkX2J5dGVzKQotICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5dGVzKQotCi0gICAgZGVm
IF9yZWFkX3VudGlsKHNlbGYsIGRlbGltX2NoYXIpOgotICAgICAgICAiIiJSZWFkcyBieXRlcyB1
bnRpbCB3ZSBlbmNvdW50ZXIgZGVsaW1fY2hhci4gVGhlIHJlc3VsdCB3aWxsIG5vdAotICAgICAg
ICBjb250YWluIGRlbGltX2NoYXIuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29u
bmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmlu
Zy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVhZF9ieXRlcyA9IFtdCi0gICAgICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICAgICBjaCA9IHNlbGYuX3JlYWQoMSkKLSAgICAgICAgICAgIGlmIGNo
ID09IGRlbGltX2NoYXI6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHJlYWRf
Ynl0ZXMuYXBwZW5kKGNoKQotICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5dGVzKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1faGl4aWU3NS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2hp
eGllNzUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0Y2Y1YjMxYmEwZmMzYzNh
MzQ3N2RlODIyOTdhMGMyNmRhMWM0OGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJUaGlzIGZpbGUgcHJvdmlkZXMgYSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMg
b2YgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwIGFuZCBIaXhpZSA3NS4K
LQotU3BlY2lmaWNhdGlvbjoKLS0gSHlCaSAwMCBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAKLS0gSGl4aWUgNzUgaHR0cDov
L3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzUK
LSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVk
RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFs
aWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9y
dCBTdHJlYW1CYXNlCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVu
c3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGls
Ci0KLQotY2xhc3MgU3RyZWFtSGl4aWU3NShTdHJlYW1CYXNlKToKLSAgICAiIiJBIGNsYXNzIGZv
ciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNp
b24KLSAgICBIeUJpIDAwIGFuZCBIaXhpZSA3NS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZXF1ZXN0LCBlbmFibGVfY2xvc2luZ19oYW5kc2hha2U9RmFsc2UpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIGVuYWJsZV9jbG9zaW5n
X2hhbmRzaGFrZTogdG8gbGV0IFN0cmVhbUhpeGllNzUgcGVyZm9ybSBjbG9zaW5nCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZSBhcyBzcGVjaWZpZWQgaW4g
SHlCaSAwMCwgc2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMg
b3B0aW9uIHRvIFRydWUuCi0gICAgICAgICIiIgotCi0gICAgICAgIFN0cmVhbUJhc2UuX19pbml0
X18oc2VsZiwgcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFz
c19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2Ug
PSBlbmFibGVfY2xvc2luZ19oYW5kc2hha2UKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNsaWVu
dF90ZXJtaW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWlu
YXRlZCA9IEZhbHNlCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1U
cnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJTZW5kIG1lc3NhZ2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHVuaWNvZGUgc3RyaW5nIHRvIHNlbmQuCi0gICAg
ICAgICAgICBiaW5hcnk6IG5vdCB1c2VkIGluIGhpeGllNzUuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIHNlcnZl
ci10ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaWYgbm90IGVuZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2VzblwndCBzdXBwb3J0IHNl
bmRfbWVzc2FnZSB3aXRoIGVuZD1GYWxzZScpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAg
ICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTdHJl
YW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdpdGggYmluYXJ5PVRydWUn
KQotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAg
ICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVl
c3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScp
Ci0KLSAgICAgICAgc2VsZi5fd3JpdGUoJycuam9pbihbJ1x4MDAnLCBtZXNzYWdlLmVuY29kZSgn
dXRmLTgnKSwgJ1x4ZmYnXSkpCi0KLSAgICBkZWYgX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3
NShzZWxmKToKLSAgICAgICAgIiIiUmVhZHMgYSBsZW5ndGggaGVhZGVyIGluIGEgSGl4aWU3NSB2
ZXJzaW9uIGZyYW1lIHdpdGggbGVuZ3RoLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAg
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBz
dHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIGxlbmd0aCA9IDAKLSAgICAgICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgICAgIGJfc3RyID0gc2VsZi5fcmVhZCgxKQotICAgICAgICAgICAgYiA9
IG9yZChiX3N0cikKLSAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCAqIDEyOCArIChiICYgMHg3
ZikKLSAgICAgICAgICAgIGlmIChiICYgMHg4MCkgPT0gMDoKLSAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICByZXR1cm4gbGVuZ3RoCi0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYp
OgotICAgICAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFuZCByZXR1cm4gaXRzIHBh
eWxvYWQgYW4gdW5pY29kZSBzdHJpbmcuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAg
IHBheWxvYWQgdW5pY29kZSBzdHJpbmcgaW4gYSBXZWJTb2NrZXQgZnJhbWUuCi0KLSAgICAgICAg
UmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4g
cmVhZCByZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5nLgotICAgICAgICAgICAg
QmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIGNsaWVudC10ZXJtaW5hdGVk
Ci0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYg
c2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIHJlY2VpdmVfbWVz
c2FnZSBhZnRlciByZWNlaXZpbmcgYSBjbG9zaW5nICcKLSAgICAgICAgICAgICAgICAnaGFuZHNo
YWtlJykKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBSZWFkIDEgYnl0ZS4K
LSAgICAgICAgICAgICMgbXBfY29ubi5yZWFkIHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMgYXJlIGF2
YWlsYWJsZS4KLSAgICAgICAgICAgICMgVGltZW91dCBpcyBjb250cm9sbGVkIGJ5IFRpbWVPdXQg
ZGlyZWN0aXZlIG9mIEFwYWNoZS4KLSAgICAgICAgICAgIGZyYW1lX3R5cGVfc3RyID0gc2VsZi5y
ZWNlaXZlX2J5dGVzKDEpCi0gICAgICAgICAgICBmcmFtZV90eXBlID0gb3JkKGZyYW1lX3R5cGVf
c3RyKQotICAgICAgICAgICAgaWYgKGZyYW1lX3R5cGUgJiAweDgwKSA9PSAweDgwOgotICAgICAg
ICAgICAgICAgICMgVGhlIHBheWxvYWQgbGVuZ3RoIGlzIHNwZWNpZmllZCBpbiB0aGUgZnJhbWUu
Ci0gICAgICAgICAgICAgICAgIyBSZWFkIGFuZCBkaXNjYXJkLgotICAgICAgICAgICAgICAgIGxl
bmd0aCA9IHNlbGYuX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgpCi0gICAgICAgICAgICAg
ICAgaWYgbGVuZ3RoID4gMDoKLSAgICAgICAgICAgICAgICAgICAgXyA9IHNlbGYucmVjZWl2ZV9i
eXRlcyhsZW5ndGgpCi0gICAgICAgICAgICAgICAgIyA1LjMgMy4gMTIuIGlmIC90eXBlLyBpcyAw
eEZGIGFuZCAvbGVuZ3RoLyBpcyAwLCB0aGVuIHNldCB0aGUKLSAgICAgICAgICAgICAgICAjIC9j
bGllbnQgdGVybWluYXRlZC8gZmxhZyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgICAg
ICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHhG
RiBhbmQgbGVuZ3RoID09IDA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xp
ZW50X3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgYWNrIGZv
ciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdoYW5kc2hha2UnKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnUmVjZWl2ZWQgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAg
ICdTZW50IGFjayBmb3IgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICMgVGhlIHBheWxvYWQgaXMgZGVsaW1pdGVkIHdpdGggXHhmZi4KLSAgICAgICAgICAg
ICAgICBieXRlcyA9IHNlbGYuX3JlYWRfdW50aWwoJ1x4ZmYnKQotICAgICAgICAgICAgICAgICMg
VGhlIFdlYlNvY2tldCBwcm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZpZXMgdGhhdCBpbnZhbGlk
Ci0gICAgICAgICAgICAgICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVwbGFjZWQgd2l0aCBVK2Zm
ZmQgUkVQTEFDRU1FTlQKLSAgICAgICAgICAgICAgICAjIENIQVJBQ1RFUi4KLSAgICAgICAgICAg
ICAgICBtZXNzYWdlID0gYnl0ZXMuZGVjb2RlKCd1dGYtOCcsICdyZXBsYWNlJykKLSAgICAgICAg
ICAgICAgICBpZiBmcmFtZV90eXBlID09IDB4MDA6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBtZXNzYWdlCi0gICAgICAgICAgICAgICAgIyBEaXNjYXJkIGRhdGEgb2Ygb3RoZXIgdHlwZXMu
Ci0KLSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIGlmIG5v
dCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAgICAgICByYWlzZSBCYWRP
cGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0Nsb3NpbmcgaGFuZHNoYWtlIGlz
IG5vdCBzdXBwb3J0ZWQgaW4gSGl4aWUgNzUgcHJvdG9jb2wnKQotCi0gICAgICAgIHNlbGYuX3Jl
cXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgIyA1LjMgdGhlIHNlcnZl
ciBtYXkgZGVjaWRlIHRvIHRlcm1pbmF0ZSB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYnkKLSAg
ICAgICAgIyBydW5uaW5nIHRocm91Z2ggdGhlIGZvbGxvd2luZyBzdGVwczoKLSAgICAgICAgIyAx
LiBzZW5kIGEgMHhGRiBieXRlIGFuZCBhIDB4MDAgYnl0ZSB0byB0aGUgY2xpZW50IHRvIGluZGlj
YXRlIHRoZQotICAgICAgICAjIHN0YXJ0IG9mIHRoZSBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICAg
ICAgc2VsZi5fd3JpdGUoJ1x4ZmZceDAwJykKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNl
bGYsIHVudXNlZF9jb2RlPScnLCB1bnVzZWRfcmVhc29uPScnKToKLSAgICAgICAgIiIiQ2xvc2Vz
IGEgV2ViU29ja2V0IGNvbm5lY3Rpb24uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gY2xvc2luZyBoYW5kc2hha2Ugd2Fz
Ci0gICAgICAgICAgICAgICAgbm90IHN1Y2Nlc3NmdWxsLgotICAgICAgICAiIiIKLQotICAgICAg
ICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgY2xvc2VfY29ubmVjdGlv
biBidXQgc2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRlZCcpCi0gICAgICAgICAgICByZXR1cm4K
LQotICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgotICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29ubmVjdGlvbiBjbG9zZWQnKQotICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZSgpCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtl
JykKLQotICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwgdGhlIC9jbGllbnQgdGVy
bWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3IgdW50aWwgYSBzZXJ2ZXIt
ZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAgICAgIyBGb3Igbm93LCB3
ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0IGFmdGVyIHNlbmRpbmcK
LSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UsIGFuZCBpZiB3ZSBjb3VsZG4ndCByZWNl
aXZlIG5vbi1oYW5kc2hha2UKLSAgICAgICAgIyBmcmFtZSwgd2UgdGFrZSBpdCBhcyBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbi4KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9t
ZXNzYWdlKCkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJh
aXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdEaWRu
XCd0IHJlY2VpdmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICMg
VE9ETzogMy4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgotICAgICAgICAjIG5vdGU6
IG1vZF9weXRob24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhv
ZC4KLQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgIHJhaXNlIEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1
cHBvcnQgc2VuZF9waW5nJykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
OGE0OWUzYzNkYzk1YmE5ZjdmZDQxMjg5MzgzZmUwN2FmZGQ1NzdmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9f
c3RyZWFtX2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4ODcgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGNsYXNzZXMgYW5kIGhlbHBlciBmdW5j
dGlvbnMgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzCi1vZiB0aGUgV2ViU29ja2V0IHByb3Rv
Y29sIChSRkMgNjQ1NSkuCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9yZmM2NDU1Ci0iIiIKLQotCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotaW1w
b3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHRpbWUKLQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkVVRGOEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBTdHJlYW1CYXNlCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLQotCi1f
Tk9PUF9NQVNLRVIgPSB1dGlsLk5vb3BNYXNrZXIoKQotCi0KLWNsYXNzIEZyYW1lKG9iamVjdCk6
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmluPTEsIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTAs
Ci0gICAgICAgICAgICAgICAgIG9wY29kZT1Ob25lLCBwYXlsb2FkPScnKToKLSAgICAgICAgc2Vs
Zi5maW4gPSBmaW4KLSAgICAgICAgc2VsZi5yc3YxID0gcnN2MQotICAgICAgICBzZWxmLnJzdjIg
PSByc3YyCi0gICAgICAgIHNlbGYucnN2MyA9IHJzdjMKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBv
cGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLSMgSGVscGVyIGZ1bmN0
aW9ucyBtYWRlIHB1YmxpYyB0byBiZSB1c2VkIGZvciB3cml0aW5nIHVuaXR0ZXN0cyBmb3IgV2Vi
U29ja2V0Ci0jIGNsaWVudHMuCi0KLQotZGVmIGNyZWF0ZV9sZW5ndGhfaGVhZGVyKGxlbmd0aCwg
bWFzayk6Ci0gICAgIiIiQ3JlYXRlcyBhIGxlbmd0aCBoZWFkZXIuCi0KLSAgICBBcmdzOgotICAg
ICAgICBsZW5ndGg6IEZyYW1lIGxlbmd0aC4gTXVzdCBiZSBsZXNzIHRoYW4gMl42My4KLSAgICAg
ICAgbWFzazogTWFzayBiaXQuIE11c3QgYmUgYm9vbGVhbi4KLQotICAgIFJhaXNlczoKLSAgICAg
ICAgVmFsdWVFcnJvcjogd2hlbiBiYWQgZGF0YSBpcyBnaXZlbi4KLSAgICAiIiIKLQotICAgIGlm
IG1hc2s6Ci0gICAgICAgIG1hc2tfYml0ID0gMSA8PCA3Ci0gICAgZWxzZToKLSAgICAgICAgbWFz
a19iaXQgPSAwCi0KLSAgICBpZiBsZW5ndGggPCAwOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdsZW5ndGggbXVzdCBiZSBub24gbmVnYXRpdmUgaW50ZWdlcicpCi0gICAgZWxpZiBsZW5ndGgg
PD0gMTI1OgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgbGVuZ3RoKQotICAgIGVsaWYg
bGVuZ3RoIDwgKDEgPDwgMTYpOgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgMTI2KSAr
IHN0cnVjdC5wYWNrKCchSCcsIGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0aCA8ICgxIDw8IDYzKToK
LSAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEnLCBs
ZW5ndGgpCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBpcyB0
b28gYmlnIGZvciBvbmUgZnJhbWUnKQotCi0KLWRlZiBjcmVhdGVfaGVhZGVyKG9wY29kZSwgcGF5
bG9hZF9sZW5ndGgsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MywgbWFzayk6Ci0gICAgIiIiQ3JlYXRl
cyBhIGZyYW1lIGhlYWRlci4KLQotICAgIFJhaXNlczoKLSAgICAgICAgRXhjZXB0aW9uOiB3aGVu
IGJhZCBkYXRhIGlzIGdpdmVuLgotICAgICIiIgotCi0gICAgaWYgb3Bjb2RlIDwgMCBvciAweGYg
PCBvcGNvZGU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ09wY29kZSBvdXQgb2YgcmFuZ2Un
KQotCi0gICAgaWYgcGF5bG9hZF9sZW5ndGggPCAwIG9yICgxIDw8IDYzKSA8PSBwYXlsb2FkX2xl
bmd0aDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncGF5bG9hZF9sZW5ndGggb3V0IG9mIHJh
bmdlJykKLQotICAgIGlmIChmaW4gfCByc3YxIHwgcnN2MiB8IHJzdjMpICYgfjE6Ci0gICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0ZJTiBiaXQgYW5kIFJlc2VydmVkIGJpdCBwYXJhbWV0ZXIgbXVz
dCBiZSAwIG9yIDEnKQotCi0gICAgaGVhZGVyID0gJycKLQotICAgIGZpcnN0X2J5dGUgPSAoKGZp
biA8PCA3KQotICAgICAgICAgICAgICAgICAgfCAocnN2MSA8PCA2KSB8IChyc3YyIDw8IDUpIHwg
KHJzdjMgPDwgNCkKLSAgICAgICAgICAgICAgICAgIHwgb3Bjb2RlKQotICAgIGhlYWRlciArPSBj
aHIoZmlyc3RfYnl0ZSkKLSAgICBoZWFkZXIgKz0gY3JlYXRlX2xlbmd0aF9oZWFkZXIocGF5bG9h
ZF9sZW5ndGgsIG1hc2spCi0KLSAgICByZXR1cm4gaGVhZGVyCi0KLQotZGVmIF9idWlsZF9mcmFt
ZShoZWFkZXIsIGJvZHksIG1hc2spOgotICAgIGlmIG5vdCBtYXNrOgotICAgICAgICByZXR1cm4g
aGVhZGVyICsgYm9keQotCi0gICAgbWFza2luZ19ub25jZSA9IG9zLnVyYW5kb20oNCkKLSAgICBt
YXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKG1hc2tpbmdfbm9uY2UpCi0KLSAgICByZXR1
cm4gaGVhZGVyICsgbWFza2luZ19ub25jZSArIG1hc2tlci5tYXNrKGJvZHkpCi0KLQotZGVmIF9m
aWx0ZXJfYW5kX2Zvcm1hdF9mcmFtZV9vYmplY3QoZnJhbWUsIG1hc2ssIGZyYW1lX2ZpbHRlcnMp
OgotICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoKLSAgICAgICAgZnJhbWVf
ZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIoCi0gICAg
ICAgIGZyYW1lLm9wY29kZSwgbGVuKGZyYW1lLnBheWxvYWQpLCBmcmFtZS5maW4sCi0gICAgICAg
IGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMsIG1hc2spCi0gICAgcmV0dXJuIF9i
dWlsZF9mcmFtZShoZWFkZXIsIGZyYW1lLnBheWxvYWQsIG1hc2spCi0KLQotZGVmIGNyZWF0ZV9i
aW5hcnlfZnJhbWUoCi0gICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfQklOQVJZLCBm
aW49MSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgIiIiQ3JlYXRlcyBhIHNp
bXBsZSBiaW5hcnkgZnJhbWUgd2l0aCBubyBleHRlbnNpb24sIHJlc2VydmVkIGJpdC4iIiIKLQot
ICAgIGZyYW1lID0gRnJhbWUoZmluPWZpbiwgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1tZXNzYWdl
KQotICAgIHJldHVybiBfZmlsdGVyX2FuZF9mb3JtYXRfZnJhbWVfb2JqZWN0KGZyYW1lLCBtYXNr
LCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfdGV4dF9mcmFtZSgKLSAgICBtZXNzYWdl
LCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULCBmaW49MSwgbWFzaz1GYWxzZSwgZnJhbWVfZmls
dGVycz1bXSk6Ci0gICAgIiIiQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0IGZyYW1lIHdpdGggbm8gZXh0
ZW5zaW9uLCByZXNlcnZlZCBiaXQuIiIiCi0KLSAgICBlbmNvZGVkX21lc3NhZ2UgPSBtZXNzYWdl
LmVuY29kZSgndXRmLTgnKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKGVuY29kZWRf
bWVzc2FnZSwgb3Bjb2RlLCBmaW4sIG1hc2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgcGFyc2VfZnJhbWUocmVjZWl2ZV9ieXRlcywgbG9n
Z2VyPU5vbmUsCi0gICAgICAgICAgICAgICAgd3NfdmVyc2lvbj1jb21tb24uVkVSU0lPTl9IWUJJ
X0xBVEVTVCwKLSAgICAgICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1UcnVlKToKLSAgICAiIiJQ
YXJzZXMgYSBmcmFtZS4gUmV0dXJucyBhIHR1cGxlIGNvbnRhaW5pbmcgZWFjaCBoZWFkZXIgZmll
bGQgYW5kCi0gICAgcGF5bG9hZC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHJlY2VpdmVfYnl0ZXM6
IGEgZnVuY3Rpb24gdGhhdCByZWFkcyBmcmFtZSBkYXRhIGZyb20gYSBzdHJlYW0gb3IKLSAgICAg
ICAgICAgIHNvbWV0aGluZyBzaW1pbGFyLiBUaGUgZnVuY3Rpb24gdGFrZXMgbGVuZ3RoIG9mIHRo
ZSBieXRlcyB0byBiZQotICAgICAgICAgICAgcmVhZC4gVGhlIGZ1bmN0aW9uIG11c3QgcmFpc2Ug
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gaWYKLSAgICAgICAgICAgIHRoZXJlIGlzIG5v
dCBlbm91Z2ggZGF0YSB0byBiZSByZWFkLgotICAgICAgICBsb2dnZXI6IGEgbG9nZ2luZyBvYmpl
Y3QuCi0gICAgICAgIHdzX3ZlcnNpb246IHRoZSB2ZXJzaW9uIG9mIFdlYlNvY2tldCBwcm90b2Nv
bC4KLSAgICAgICAgdW5tYXNrX3JlY2VpdmU6IHVubWFzayByZWNlaXZlZCBmcmFtZXMuIFdoZW4g
cmVjZWl2ZWQgdW5tYXNrZWQKLSAgICAgICAgICAgIGZyYW1lLCByYWlzZXMgSW52YWxpZEZyYW1l
RXhjZXB0aW9uLgotCi0gICAgUmFpc2VzOgotICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbjogd2hlbiByZWNlaXZlX2J5dGVzIHJhaXNlcyBpdC4KLSAgICAgICAgSW52YWxpZEZy
YW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCi0gICAg
IiIiCi0KLSAgICBpZiBub3QgbG9nZ2VyOgotICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExv
Z2dlcigpCi0KLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSB0
aGUgZmlyc3QgMiBvY3RldHMgb2YgYSBmcmFtZScpCi0KLSAgICByZWNlaXZlZCA9IHJlY2VpdmVf
Ynl0ZXMoMikKLQotICAgIGZpcnN0X2J5dGUgPSBvcmQocmVjZWl2ZWRbMF0pCi0gICAgZmluID0g
KGZpcnN0X2J5dGUgPj4gNykgJiAxCi0gICAgcnN2MSA9IChmaXJzdF9ieXRlID4+IDYpICYgMQot
ICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDEKLSAgICByc3YzID0gKGZpcnN0X2J5dGUg
Pj4gNCkgJiAxCi0gICAgb3Bjb2RlID0gZmlyc3RfYnl0ZSAmIDB4ZgotCi0gICAgc2Vjb25kX2J5
dGUgPSBvcmQocmVjZWl2ZWRbMV0pCi0gICAgbWFzayA9IChzZWNvbmRfYnl0ZSA+PiA3KSAmIDEK
LSAgICBwYXlsb2FkX2xlbmd0aCA9IHNlY29uZF9ieXRlICYgMHg3ZgotCi0gICAgbG9nZ2VyLmxv
Zyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICdGSU49JXMsIFJTVjE9JXMs
IFJTVjI9JXMsIFJTVjM9JXMsIG9wY29kZT0lcywgJwotICAgICAgICAgICAgICAgJ01hc2s9JXMs
IFBheWxvYWRfbGVuZ3RoPSVzJywKLSAgICAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2
Mywgb3Bjb2RlLCBtYXNrLCBwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIChtYXNrID09IDEpICE9
IHVubWFza19yZWNlaXZlOgotICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0g
ICAgICAgICAgICAnTWFzayBiaXQgb24gdGhlIHJlY2VpdmVkIGZyYW1lIGRpZFwnbnQgbWF0Y2gg
bWFza2luZyAnCi0gICAgICAgICAgICAnY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZWQgZnJhbWVz
JykKLQotICAgICMgVGhlIEh5QmkgYW5kIGxhdGVyIHNwZWNzIGRpc2FsbG93IHB1dHRpbmcgYSB2
YWx1ZSBpbiAweDAtMHhGRkZGCi0gICAgIyBpbnRvIHRoZSA4LW9jdGV0IGV4dGVuZGVkIHBheWxv
YWQgbGVuZ3RoIGZpZWxkIChvciAweDAtMHhGRCBpbgotICAgICMgMi1vY3RldCBmaWVsZCkuCi0g
ICAgdmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gVHJ1ZQotICAgIGxlbmd0aF9lbmNvZGluZ19ieXRl
cyA9IDEKLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjc6Ci0gICAgICAgIGxvZ2dlci5sb2co
Y29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ1JlY2VpdmUgOC1vY3Rl
dCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCcpCi0KLSAgICAgICAgZXh0ZW5kZWRfcGF5bG9hZF9s
ZW5ndGggPSByZWNlaXZlX2J5dGVzKDgpCi0gICAgICAgIHBheWxvYWRfbGVuZ3RoID0gc3RydWN0
LnVucGFjaygKLSAgICAgICAgICAgICchUScsIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoKVswXQot
ICAgICAgICBpZiBwYXlsb2FkX2xlbmd0aCA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAgICAgICAg
ICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXh0ZW5k
ZWQgcGF5bG9hZCBsZW5ndGggPj0gMl42MycpCi0gICAgICAgIGlmIHdzX3ZlcnNpb24gPj0gMTMg
YW5kIHBheWxvYWRfbGVuZ3RoIDwgMHgxMDAwMDoKLSAgICAgICAgICAgIHZhbGlkX2xlbmd0aF9l
bmNvZGluZyA9IEZhbHNlCi0gICAgICAgICAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSA4Ci0K
LSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAg
ICAgICAnRGVjb2RlZF9wYXlsb2FkX2xlbmd0aD0lcycsIHBheWxvYWRfbGVuZ3RoKQotICAgIGVs
aWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dM
RVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdSZWNlaXZlIDItb2N0ZXQgZXh0ZW5kZWQg
cGF5bG9hZCBsZW5ndGgnKQotCi0gICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVj
ZWl2ZV9ieXRlcygyKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0g
ICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAgICAgaWYg
d3NfdmVyc2lvbiA+PSAxMyBhbmQgcGF5bG9hZF9sZW5ndGggPCAxMjY6Ci0gICAgICAgICAgICB2
YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxzZQotICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5n
X2J5dGVzID0gMgotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0g
ICAgICAgICAgICAgICAgICAgJ0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9JXMnLCBwYXlsb2FkX2xl
bmd0aCkKLQotICAgIGlmIG5vdCB2YWxpZF9sZW5ndGhfZW5jb2Rpbmc6Ci0gICAgICAgIGxvZ2dl
ci53YXJuaW5nKAotICAgICAgICAgICAgJ1BheWxvYWQgbGVuZ3RoIGlzIG5vdCBlbmNvZGVkIHVz
aW5nIHRoZSBtaW5pbWFsIG51bWJlciBvZiAnCi0gICAgICAgICAgICAnYnl0ZXMgKCVkIGlzIGVu
Y29kZWQgdXNpbmcgJWQgYnl0ZXMpJywKLSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoLAotICAg
ICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzKQotCi0gICAgaWYgbWFzayA9PSAxOgotICAg
ICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVjZWl2ZSBtYXNrJykKLQot
ICAgICAgICBtYXNraW5nX25vbmNlID0gcmVjZWl2ZV9ieXRlcyg0KQotICAgICAgICBtYXNrZXIg
PSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKG1hc2tpbmdfbm9uY2UpCi0KLSAgICAgICAgbG9nZ2Vy
LmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ01hc2s9JXInLCBtYXNraW5nX25vbmNlKQotICAg
IGVsc2U6Ci0gICAgICAgIG1hc2tlciA9IF9OT09QX01BU0tFUgotCi0gICAgbG9nZ2VyLmxvZyhj
b21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgcGF5bG9hZCBkYXRhJykKLSAgICBpZiBsb2dn
ZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgcmVjZWl2ZV9z
dGFydCA9IHRpbWUudGltZSgpCi0KLSAgICByYXdfcGF5bG9hZF9ieXRlcyA9IHJlY2VpdmVfYnl0
ZXMocGF5bG9hZF9sZW5ndGgpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5M
T0dMRVZFTF9GSU5FKToKLSAgICAgICAgbG9nZ2VyLmxvZygKLSAgICAgICAgICAgIGNvbW1vbi5M
T0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgJ0RvbmUgcmVjZWl2aW5nIHBheWxvYWQgZGF0YSBh
dCAlcyBNQi9zJywKLSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoIC8gKHRpbWUudGltZSgpIC0g
cmVjZWl2ZV9zdGFydCkgLyAxMDAwIC8gMTAwMCkKLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dM
RVZFTF9GSU5FLCAnVW5tYXNrIHBheWxvYWQgZGF0YScpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFi
bGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgdW5tYXNrX3N0YXJ0ID0gdGlt
ZS50aW1lKCkKLQotICAgIHVubWFza2VkX2J5dGVzID0gbWFza2VyLm1hc2socmF3X3BheWxvYWRf
Ynl0ZXMpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5F
KToKLSAgICAgICAgbG9nZ2VyLmxvZygKLSAgICAgICAgICAgIGNvbW1vbi5MT0dMRVZFTF9GSU5F
LAotICAgICAgICAgICAgJ0RvbmUgdW5tYXNraW5nIHBheWxvYWQgZGF0YSBhdCAlcyBNQi9zJywK
LSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoIC8gKHRpbWUudGltZSgpIC0gdW5tYXNrX3N0YXJ0
KSAvIDEwMDAgLyAxMDAwKQotCi0gICAgcmV0dXJuIG9wY29kZSwgdW5tYXNrZWRfYnl0ZXMsIGZp
biwgcnN2MSwgcnN2MiwgcnN2MwotCi0KLWNsYXNzIEZyYWdtZW50ZWRGcmFtZUJ1aWxkZXIob2Jq
ZWN0KToKLSAgICAiIiJBIHN0YXRlZnVsIGNsYXNzIHRvIHNlbmQgYSBtZXNzYWdlIGFzIGZyYWdt
ZW50cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXNrLCBmcmFtZV9maWx0ZXJzPVtd
LCBlbmNvZGVfdXRmOD1UcnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4i
IiIKLQotICAgICAgICBzZWxmLl9tYXNrID0gbWFzawotICAgICAgICBzZWxmLl9mcmFtZV9maWx0
ZXJzID0gZnJhbWVfZmlsdGVycwotICAgICAgICAjIFRoaXMgaXMgZm9yIHNraXBwaW5nIFVURi04
IGVuY29kaW5nIHdoZW4gYnVpbGRpbmcgdGV4dCB0eXBlIGZyYW1lcwotICAgICAgICAjIGZyb20g
Y29tcHJlc3NlZCBkYXRhLgotICAgICAgICBzZWxmLl9lbmNvZGVfdXRmOCA9IGVuY29kZV91dGY4
Ci0KLSAgICAgICAgc2VsZi5fc3RhcnRlZCA9IEZhbHNlCi0KLSAgICAgICAgIyBIb2xkIG9wY29k
ZSBvZiB0aGUgZmlyc3QgZnJhbWUgaW4gbWVzc2FnZXMgdG8gdmVyaWZ5IHR5cGVzIG9mIG90aGVy
Ci0gICAgICAgICMgZnJhbWVzIGluIHRoZSBtZXNzYWdlIGFyZSBhbGwgdGhlIHNhbWUuCi0gICAg
ICAgIHNlbGYuX29wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAotCi0gICAgZGVmIGJ1aWxkKHNl
bGYsIHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkpOgotICAgICAgICBpZiBiaW5hcnk6Ci0gICAg
ICAgICAgICBmcmFtZV90eXBlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgaWYg
c2VsZi5fc3RhcnRlZDoKLSAgICAgICAgICAgIGlmIHNlbGYuX29wY29kZSAhPSBmcmFtZV90eXBl
OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ01lc3NhZ2UgdHlwZXMgYXJlIGRp
ZmZlcmVudCBpbiBmcmFtZXMgZm9yICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd0aGUgc2FtZSBtZXNzYWdlJykKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVf
Q09OVElOVUFUSU9OCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBmcmFtZV90
eXBlCi0gICAgICAgICAgICBzZWxmLl9vcGNvZGUgPSBmcmFtZV90eXBlCi0KLSAgICAgICAgaWYg
ZW5kOgotICAgICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IEZhbHNlCi0gICAgICAgICAgICBmaW4g
PSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdGFydGVkID0gVHJ1ZQotICAg
ICAgICAgICAgZmluID0gMAotCi0gICAgICAgIGlmIGJpbmFyeSBvciBub3Qgc2VsZi5fZW5jb2Rl
X3V0Zjg6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAg
ICAgICAgICBwYXlsb2FkX2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9mcmFt
ZV9maWx0ZXJzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZV90ZXh0
X2ZyYW1lKAotICAgICAgICAgICAgICAgIHBheWxvYWRfZGF0YSwgb3Bjb2RlLCBmaW4sIHNlbGYu
X21hc2ssIHNlbGYuX2ZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIF9jcmVhdGVfY29udHJvbF9mcmFt
ZShvcGNvZGUsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpOgotICAgIGZyYW1lID0gRnJhbWUo
b3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1ib2R5KQotCi0gICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBm
cmFtZV9maWx0ZXJzOgotICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQotCi0gICAg
aWYgbGVuKGZyYW1lLnBheWxvYWQpID4gMTI1OgotICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25F
eGNlcHRpb24oCi0gICAgICAgICAgICAnUGF5bG9hZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFt
ZXMgbXVzdCBiZSAxMjUgYnl0ZXMgb3IgbGVzcycpCi0KLSAgICBoZWFkZXIgPSBjcmVhdGVfaGVh
ZGVyKAotICAgICAgICBmcmFtZS5vcGNvZGUsIGxlbihmcmFtZS5wYXlsb2FkKSwgZnJhbWUuZmlu
LAotICAgICAgICBmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5yc3YzLCBtYXNrKQotICAg
IHJldHVybiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBmcmFtZS5wYXlsb2FkLCBtYXNrKQotCi0KLWRl
ZiBjcmVhdGVfcGluZ19mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJzPVtdKToK
LSAgICByZXR1cm4gX2NyZWF0ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5PUENPREVfUElORywgYm9k
eSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX3BvbmdfZnJhbWUoYm9keSwg
bWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJuIF9jcmVhdGVfY29udHJv
bF9mcmFtZShjb21tb24uT1BDT0RFX1BPTkcsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpCi0K
LQotZGVmIGNyZWF0ZV9jbG9zZV9mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFtZV9maWx0ZXJz
PVtdKToKLSAgICByZXR1cm4gX2NyZWF0ZV9jb250cm9sX2ZyYW1lKAotICAgICAgICBjb21tb24u
T1BDT0RFX0NMT1NFLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVf
Y2xvc2luZ19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pOgotICAgIGJvZHkgPSAnJwotICAg
IGlmIGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIChjb2RlID4gY29tbW9uLlNUQVRVU19V
U0VSX1BSSVZBVEVfTUFYIG9yCi0gICAgICAgICAgICBjb2RlIDwgY29tbW9uLlNUQVRVU19OT1JN
QUxfQ0xPU1VSRSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ1N0
YXR1cyBjb2RlIGlzIG91dCBvZiByYW5nZScpCi0gICAgICAgIGlmIChjb2RlID09IGNvbW1vbi5T
VEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEIG9yCi0gICAgICAgICAgICBjb2RlID09IGNvbW1vbi5T
VEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RB
VFVTX1RMU19IQU5EU0hBS0UpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKCdTdGF0dXMgY29kZSBpcyByZXNlcnZlZCBwc2V1ZG8gJwotICAgICAgICAgICAgICAgICdj
b2RlJykKLSAgICAgICAgZW5jb2RlZF9yZWFzb24gPSByZWFzb24uZW5jb2RlKCd1dGYtOCcpCi0g
ICAgICAgIGJvZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIGVuY29kZWRfcmVhc29uCi0g
ICAgcmV0dXJuIGJvZHkKLQotCi1jbGFzcyBTdHJlYW1PcHRpb25zKG9iamVjdCk6Ci0gICAgIiIi
SG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgU3RyZWFtIG9iamVjdHMuIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgU3RyZWFtT3B0aW9u
cy4iIiIKLQotICAgICAgICAjIEZpbHRlcnMgYXBwbGllZCB0byBmcmFtZXMuCi0gICAgICAgIHNl
bGYub3V0Z29pbmdfZnJhbWVfZmlsdGVycyA9IFtdCi0gICAgICAgIHNlbGYuaW5jb21pbmdfZnJh
bWVfZmlsdGVycyA9IFtdCi0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gbWVzc2FnZXMu
IENvbnRyb2wgZnJhbWVzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlbS4KLSAgICAgICAgc2VsZi5v
dXRnb2luZ19tZXNzYWdlX2ZpbHRlcnMgPSBbXQotICAgICAgICBzZWxmLmluY29taW5nX21lc3Nh
Z2VfZmlsdGVycyA9IFtdCi0KLSAgICAgICAgc2VsZi5lbmNvZGVfdGV4dF9tZXNzYWdlX3RvX3V0
ZjggPSBUcnVlCi0gICAgICAgIHNlbGYubWFza19zZW5kID0gRmFsc2UKLSAgICAgICAgc2VsZi51
bm1hc2tfcmVjZWl2ZSA9IFRydWUKLQotCi1jbGFzcyBTdHJlYW0oU3RyZWFtQmFzZSk6Ci0gICAg
IiIiQSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMgb2YgdGhlIFdlYlNvY2tldCBw
cm90b2NvbAotICAgIChSRkMgNjQ1NSkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdCwgb3B0aW9ucyk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVz
dC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgU3RyZWFtQmFzZS5fX2luaXRfXyhzZWxmLCByZXF1
ZXN0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdC5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2Vy
dmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAgICAgICMgSG9sZHMgYm9keSBvZiByZWNlaXZl
ZCBmcmFnbWVudHMuCi0gICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cyA9IFtdCi0gICAg
ICAgICMgSG9sZHMgdGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhZ21lbnQuCi0gICAgICAgIHNl
bGYuX29yaWdpbmFsX29wY29kZSA9IE5vbmUKLQotICAgICAgICBzZWxmLl93cml0ZXIgPSBGcmFn
bWVudGVkRnJhbWVCdWlsZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQs
IHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycywKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4KQotCi0gICAgICAgIHNlbGYuX3Bp
bmdfcXVldWUgPSBkZXF1ZSgpCi0KLSAgICBkZWYgX3JlY2VpdmVfZnJhbWUoc2VsZik6Ci0gICAg
ICAgICIiIlJlY2VpdmVzIGEgZnJhbWUgYW5kIHJldHVybiBkYXRhIGluIHRoZSBmcmFtZSBhcyBh
IHR1cGxlIGNvbnRhaW5pbmcKLSAgICAgICAgZWFjaCBoZWFkZXIgZmllbGQgYW5kIHBheWxvYWQg
c2VwYXJhdGVseS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAgICAgICAgICAgICAg
ICBzdHJpbmcuCi0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZy
YW1lIGNvbnRhaW5zIGludmFsaWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIF9y
ZWNlaXZlX2J5dGVzKGxlbmd0aCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZWNlaXZlX2J5
dGVzKGxlbmd0aCkKLQotICAgICAgICByZXR1cm4gcGFyc2VfZnJhbWUocmVjZWl2ZV9ieXRlcz1f
cmVjZWl2ZV9ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlcj1zZWxmLl9s
b2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB3c192ZXJzaW9uPXNlbGYuX3JlcXVl
c3Qud3NfdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubWFza19yZWNlaXZl
PXNlbGYuX29wdGlvbnMudW5tYXNrX3JlY2VpdmUpCi0KLSAgICBkZWYgX3JlY2VpdmVfZnJhbWVf
YXNfZnJhbWVfb2JqZWN0KHNlbGYpOgotICAgICAgICBvcGNvZGUsIHVubWFza2VkX2J5dGVzLCBm
aW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lKCkKLQotICAgICAgICBy
ZXR1cm4gRnJhbWUoZmluPWZpbiwgcnN2MT1yc3YxLCByc3YyPXJzdjIsIHJzdjM9cnN2MywKLSAg
ICAgICAgICAgICAgICAgICAgIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9dW5tYXNrZWRfYnl0ZXMp
Ci0KLSAgICBkZWYgcmVjZWl2ZV9maWx0ZXJlZF9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiUmVj
ZWl2ZXMgYSBmcmFtZSBhbmQgYXBwbGllcyBmcmFtZSBmaWx0ZXJzIGFuZCBtZXNzYWdlIGZpbHRl
cnMuCi0gICAgICAgIFRoZSBmcmFtZSB0byBiZSByZWNlaXZlZCBtdXN0IHNhdGlzZnkgZm9sbG93
aW5nIGNvbmRpdGlvbnM6Ci0gICAgICAgIC0gVGhlIGZyYW1lIGlzIG5vdCBmcmFnbWVudGVkLgot
ICAgICAgICAtIFRoZSBvcGNvZGUgb2YgdGhlIGZyYW1lIGlzIFRFWFQgb3IgQklOQVJZLgotCi0g
ICAgICAgIERPIE5PVCBVU0UgdGhpcyBtZXRob2QgZXhjZXB0IGZvciB0ZXN0aW5nIHB1cnBvc2Uu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIGZyYW1lID0gc2VsZi5fcmVjZWl2ZV9mcmFtZV9hc19m
cmFtZV9vYmplY3QoKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgcmFp
c2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdTZWdtZW50ZWQgZnJh
bWVzIG11c3Qgbm90IGJlIHJlY2VpdmVkIHZpYSAnCi0gICAgICAgICAgICAgICAgJ3JlY2VpdmVf
ZmlsdGVyZWRfZnJhbWUoKScpCi0gICAgICAgIGlmIChmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9Q
Q09ERV9URVhUIGFuZAotICAgICAgICAgICAgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVf
QklOQVJZKToKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBub3QgYmUgcmVjZWl2ZWQgdmlhICcKLSAg
ICAgICAgICAgICAgICAncmVjZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykKLQotICAgICAgICBmb3Ig
ZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVyczoKLSAg
ICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0gICAgICAgIGZvciBtZXNzYWdl
X2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAg
ICAgICAgIGZyYW1lLnBheWxvYWQgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIoZnJhbWUucGF5bG9h
ZCkKLSAgICAgICAgcmV0dXJuIGZyYW1lCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJTZW5kIG1lc3NhZ2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHRleHQgaW4gdW5pY29kZSBv
ciBiaW5hcnkgaW4gc3RyIHRvIHNlbmQuCi0gICAgICAgICAgICBiaW5hcnk6IHNlbmQgbWVzc2Fn
ZSBhcyBiaW5hcnkgZnJhbWUuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIHNlcnZlci10ZXJtaW5hdGVkCi0gICAg
ICAgICAgICAgICAgY29ubmVjdGlvbiBvciBjYWxsZWQgd2l0aCBpbmNvbnNpc3RlbnQgbWVzc2Fn
ZSB0eXBlIG9yCi0gICAgICAgICAgICAgICAgYmluYXJ5IHBhcmFtZXRlci4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAg
ICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVz
dGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykK
LQotICAgICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5pY29kZSk6Ci0g
ICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J01lc3NhZ2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0cicpCi0KLSAg
ICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfbWVzc2Fn
ZV9maWx0ZXJzOgotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlciht
ZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFNldCB0
aGlzIHRvIGFueSBwb3NpdGl2ZSBpbnRlZ2VyIHRvIGxpbWl0IG1heGltdW0gc2l6ZSBvZiBkYXRh
IGluCi0gICAgICAgICAgICAjIHBheWxvYWQgZGF0YSBvZiBlYWNoIGZyYW1lLgotICAgICAgICAg
ICAgTUFYX1BBWUxPQURfREFUQV9TSVpFID0gLTEKLQotICAgICAgICAgICAgaWYgTUFYX1BBWUxP
QURfREFUQV9TSVpFIDw9IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGUoc2VsZi5fd3Jp
dGVyLmJ1aWxkKG1lc3NhZ2UsIGVuZCwgYmluYXJ5KSkKLSAgICAgICAgICAgICAgICByZXR1cm4K
LQotICAgICAgICAgICAgYnl0ZXNfd3JpdHRlbiA9IDAKLSAgICAgICAgICAgIHdoaWxlIFRydWU6
Ci0gICAgICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lID0gZW5kCi0gICAgICAgICAgICAg
ICAgYnl0ZXNfdG9fd3JpdGUgPSBsZW4obWVzc2FnZSkgLSBieXRlc193cml0dGVuCi0gICAgICAg
ICAgICAgICAgaWYgKE1BWF9QQVlMT0FEX0RBVEFfU0laRSA+IDAgYW5kCi0gICAgICAgICAgICAg
ICAgICAgIGJ5dGVzX3RvX3dyaXRlID4gTUFYX1BBWUxPQURfREFUQV9TSVpFKToKLSAgICAgICAg
ICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lID0gRmFsc2UKLSAgICAgICAgICAgICAgICAg
ICAgYnl0ZXNfdG9fd3JpdGUgPSBNQVhfUEFZTE9BRF9EQVRBX1NJWkUKLQotICAgICAgICAgICAg
ICAgIGZyYW1lID0gc2VsZi5fd3JpdGVyLmJ1aWxkKAotICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlW2J5dGVzX3dyaXR0ZW46Ynl0ZXNfd3JpdHRlbiArIGJ5dGVzX3RvX3dyaXRlXSwKLSAgICAg
ICAgICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICBi
aW5hcnkpCi0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCi0KLSAgICAgICAgICAg
ICAgICBieXRlc193cml0dGVuICs9IGJ5dGVzX3RvX3dyaXRlCi0KLSAgICAgICAgICAgICAgICAj
IFRoaXMgaWYgbXVzdCBiZSBwbGFjZWQgaGVyZSAodGhlIGVuZCBvZiB3aGlsZSBibG9jaykgc28g
dGhhdAotICAgICAgICAgICAgICAgICMgYXQgbGVhc3Qgb25lIGZyYW1lIGlzIHNlbnQuCi0gICAg
ICAgICAgICAgICAgaWYgbGVuKG1lc3NhZ2UpIDw9IGJ5dGVzX3dyaXR0ZW46Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAg
ICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKGUpCi0KLSAgICBkZWYgX2dldF9tZXNzYWdl
X2Zyb21fZnJhbWUoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJHZXRzIGEgbWVzc2FnZSBmcm9t
IGZyYW1lLiBJZiB0aGUgbWVzc2FnZSBpcyBjb21wb3NlZCBvZiBmcmFnbWVudGVkCi0gICAgICAg
IGZyYW1lcyBhbmQgdGhlIGZyYW1lIGlzIG5vdCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lLCB0
aGlzIG1ldGhvZAotICAgICAgICByZXR1cm5zIE5vbmUuIFRoZSB3aG9sZSBtZXNzYWdlIHdpbGwg
YmUgcmV0dXJuZWQgd2hlbiB0aGUgbGFzdAotICAgICAgICBmcmFnbWVudGVkIGZyYW1lIGlzIHBh
c3NlZCB0byB0aGlzIG1ldGhvZC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZh
bGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGRvZXNuJ3QgbWF0Y2ggZGVmcmFnbWVu
dGF0aW9uCi0gICAgICAgICAgICAgICAgY29udGV4dCwgb3IgdGhlIGZyYW1lIGNvbnRhaW5zIGlu
dmFsaWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgZnJhbWUub3Bjb2RlID09IGNv
bW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3JlY2Vp
dmVkX2ZyYWdtZW50czoKLSAgICAgICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAg
ICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdSZWNlaXZlZCBhIHRlcm1pbmF0aW9uIGZyYW1lIGJ1dCBmcmFnbWVudGF0aW9uICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICdub3Qgc3RhcnRlZCcpCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBi
dXQgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gbm90IHN0YXJ0ZWQn
KQotCi0gICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAgICAgICAgIyBFbmQgb2Yg
ZnJhZ21lbnRhdGlvbiBmcmFtZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdt
ZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gJycu
am9pbihzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVj
ZWl2ZWRfZnJhZ21lbnRzID0gW10KLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEludGVybWVkaWF0ZSBmcmFtZQotICAg
ICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9h
ZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgaWYgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgotICAgICAgICAgICAgICAgIGlmIGZyYW1l
LmZpbjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIHVuZnJhZ21lbnRlZCBmcmFtZSB3
aXRob3V0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICd0ZXJtaW5hdGluZyBleGlzdGluZyBm
cmFnbWVudGF0aW9uJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAn
TmV3IGZyYWdtZW50YXRpb24gc3RhcnRlZCB3aXRob3V0IHRlcm1pbmF0aW5nICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdleGlzdGluZyBmcmFnbWVudGF0aW9uJykKLQotICAgICAgICAgICAg
aWYgZnJhbWUuZmluOgotICAgICAgICAgICAgICAgICMgVW5mcmFnbWVudGVkIGZyYW1lCi0KLSAg
ICAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZnJhbWUucGF5bG9hZAotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAjIFN0YXJ0IG9mIGZyYWdtZW50YXRpb24gZnJhbWUKLQotICAgICAgICAgICAg
ICAgIGlmIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBub3QgYmUgZnJhZ21lbnRlZCcpCi0KLSAgICAg
ICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKLSAgICAgICAg
ICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfcHJvY2Vzc19jbG9zZV9tZXNz
YWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMgY2xvc2UgbWVzc2FnZS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogY2xvc2UgbWVzc2FnZS4KLQot
ICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4g
dGhlIG1lc3NhZ2UgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVx
dWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICAjIFN0YXR1cyBjb2RlIGlz
IG9wdGlvbmFsLiBXZSBjYW4gaGF2ZSBzdGF0dXMgcmVhc29uIG9ubHkgaWYgd2UKLSAgICAgICAg
IyBoYXZlIHN0YXR1cyBjb2RlLiBTdGF0dXMgcmVhc29uIGNhbiBiZSBlbXB0eSBzdHJpbmcuIFNv
LAotICAgICAgICAjIGFsbG93ZWQgY2FzZXMgYXJlCi0gICAgICAgICMgLSBubyBhcHBsaWNhdGlv
biBkYXRhOiBubyBjb2RlIG5vIHJlYXNvbgotICAgICAgICAjIC0gMiBvY3RldCBvZiBhcHBsaWNh
dGlvbiBkYXRhOiBoYXMgY29kZSBidXQgbm8gcmVhc29uCi0gICAgICAgICMgLSAzIG9yIG1vcmUg
b2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogYm90aCBjb2RlIGFuZCByZWFzb24KLSAgICAgICAg
aWYgbGVuKG1lc3NhZ2UpID09IDA6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jl
Y2VpdmVkIGNsb3NlIGZyYW1lIChlbXB0eSBib2R5KScpCi0gICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX2Nsb3NlX2NvZGUgPSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT19T
VEFUVVNfUkVDRUlWRUQpCi0gICAgICAgIGVsaWYgbGVuKG1lc3NhZ2UpID09IDE6Ci0gICAgICAg
ICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0lmIGEg
Y2xvc2UgZnJhbWUgaGFzIHN0YXR1cyBjb2RlLCB0aGUgbGVuZ3RoIG9mICcKLSAgICAgICAgICAg
ICAgICAnc3RhdHVzIGNvZGUgbXVzdCBiZSAyIG9jdGV0JykKLSAgICAgICAgZWxpZiBsZW4obWVz
c2FnZSkgPj0gMjoKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSA9IHN0
cnVjdC51bnBhY2soCi0gICAgICAgICAgICAgICAgJyFIJywgbWVzc2FnZVswOjJdKVswXQotICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBtZXNzYWdlWzI6XS5kZWNv
ZGUoCi0gICAgICAgICAgICAgICAgJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCBjbG9zZSBmcmFtZSAo
Y29kZT0lZCwgcmVhc29uPSVyKScsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19j
bG9zZV9jb2RlLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29u
KQotCi0gICAgICAgICMgQXMgd2UndmUgcmVjZWl2ZWQgYSBjbG9zZSBmcmFtZSwgbm8gbW9yZSBk
YXRhIGlzIGNvbWluZyBvdmVyIHRoZQotICAgICAgICAjIHNvY2tldC4gV2UgY2FuIG5vdyBzYWZl
bHkgY2xvc2UgdGhlIHNvY2tldCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0Ci0gICAgICAgICMgUlNU
IHNlbmRpbmcuCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVjZWl2
ZWQgYWNrIGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAg
ICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdS
ZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICBj
b2RlID0gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRQotICAgICAgICByZWFzb24gPSAnJwot
ICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3JlcXVlc3QsICdfZGlzcGF0Y2hlcicpOgotICAgICAg
ICAgICAgZGlzcGF0Y2hlciA9IHNlbGYuX3JlcXVlc3QuX2Rpc3BhdGNoZXIKLSAgICAgICAgICAg
IGNvZGUsIHJlYXNvbiA9IGRpc3BhdGNoZXIucGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSgKLSAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAgaWYgY29kZSBpcyBOb25l
IGFuZCByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIud2FybmluZygKLSAgICAgICAgICAgICAgICAgICAgJ0hhbmRsZXIg
c3BlY2lmaWVkIHJlYXNvbiBkZXNwaXRlIGNvZGUgYmVpbmcgTm9uZScpCi0gICAgICAgICAgICAg
ICAgcmVhc29uID0gJycKLSAgICAgICAgICAgIGlmIHJlYXNvbiBpcyBOb25lOgotICAgICAgICAg
ICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIHNlbGYuX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uo
Y29kZSwgcmVhc29uKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
QWNrbm93bGVkZ2VkIGNsb3NpbmcgaGFuZHNoYWtlIGluaXRpYXRlZCBieSB0aGUgcGVlciAnCi0g
ICAgICAgICAgICAnKGNvZGU9JXIsIHJlYXNvbj0lciknLCBjb2RlLCByZWFzb24pCi0KLSAgICBk
ZWYgX3Byb2Nlc3NfcGluZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9j
ZXNzZXMgcGluZyBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdl
OiBwaW5nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGhhbmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlcgotICAgICAgICAgICAgaWYg
aGFuZGxlcjoKLSAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2Up
Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciwg
ZToKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fc2VuZF9wb25nKG1lc3NhZ2UpCi0K
LSAgICBkZWYgX3Byb2Nlc3NfcG9uZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAi
IiJQcm9jZXNzZXMgcG9uZyBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBt
ZXNzYWdlOiBwb25nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVE9ETyh0eW9z
aGlubyk6IEFkZCBwaW5nIHRpbWVvdXQgaGFuZGxpbmcuCi0KLSAgICAgICAgaW5mbGlnaHRfcGlu
Z3MgPSBkZXF1ZSgpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5ID0gc2VsZi5fcGluZ19xdWV1ZS5wb3BsZWZ0KCkK
LSAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9ib2R5ID09IG1lc3NhZ2U6Ci0gICAgICAgICAg
ICAgICAgICAgICMgaW5mbGlnaHRfcGluZ3MgY29udGFpbnMgcGluZ3MgaWdub3JlZCBieSB0aGUK
LSAgICAgICAgICAgICAgICAgICAgIyBvdGhlciBwZWVyLiBKdXN0IGZvcmdldCB0aGVtLgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAnUGluZyAlciBpcyBhY2tlZCAoJWQgcGluZ3Mgd2VyZSBpZ25vcmVkKScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5LCBsZW4oaW5mbGlnaHRfcGluZ3MpKQotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgICAgIGluZmxpZ2h0X3BpbmdzLmFwcGVuZChleHBlY3RlZF9ib2R5KQotICAgICAgICAg
ICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgIyBUaGUgcmVjZWl2ZWQg
cG9uZyB3YXMgdW5zb2xpY2l0ZWQgcG9uZy4gS2VlcCB0aGUKLSAgICAgICAgICAgICAgICAjIHBp
bmcgcXVldWUgYXMgaXMuCi0gICAgICAgICAgICAgICAgc2VsZi5fcGluZ19xdWV1ZSA9IGluZmxp
Z2h0X3BpbmdzCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBh
IHVuc29saWNpdGVkIHBvbmcnKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuX3JlcXVlc3Qub25fcG9uZ19oYW5kbGVyCi0g
ICAgICAgICAgICBpZiBoYW5kbGVyOgotICAgICAgICAgICAgICAgIGhhbmRsZXIoc2VsZi5fcmVx
dWVzdCwgbWVzc2FnZSkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yLCBlOgotICAgICAg
ICAgICAgcGFzcwotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIiIi
UmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEgdGV4
dCBpbgotICAgICAgICB1bmljb2RlIG9yIGEgYmluYXJ5IGluIHN0ci4KLQotICAgICAgICBSZXR1
cm5zOgotICAgICAgICAgICAgcGF5bG9hZCBkYXRhIG9mIHRoZSBmcmFtZQotICAgICAgICAgICAg
LSBhcyB1bmljb2RlIGluc3RhbmNlIGlmIHJlY2VpdmVkIHRleHQgZnJhbWUKLSAgICAgICAgICAg
IC0gYXMgc3RyIGluc3RhbmNlIGlmIHJlY2VpdmVkIGJpbmFyeSBmcmFtZQotICAgICAgICAgICAg
b3IgTm9uZSBpZmYgcmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIFJhaXNlczoK
LSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgb24gYSBjbGll
bnQtdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uCi0gICAgICAgICAgICBD
b25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkKLSAg
ICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246
IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQKLSAgICAgICAgICAgICAgICBkYXRhLgot
ICAgICAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbjogd2hlbiB0aGUgcmVjZWl2ZWQg
ZnJhbWUgaGFzCi0gICAgICAgICAgICAgICAgZmxhZ3MsIG9wY29kZSB3ZSBjYW5ub3QgaGFuZGxl
LiBZb3UgY2FuIGlnbm9yZSB0aGlzCi0gICAgICAgICAgICAgICAgZXhjZXB0aW9uIGFuZCBjb250
aW51ZSByZWNlaXZpbmcgdGhlIG5leHQgZnJhbWUuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlm
IHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRP
cGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCByZWNlaXZlX21l
c3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEgY2xvc2luZyAnCi0gICAgICAgICAgICAgICAgJ2hhbmRz
aGFrZScpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgbXBfY29ubi5yZWFk
IHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMgYXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICMgVGlt
ZW91dCBpcyBjb250cm9sbGVkIGJ5IFRpbWVPdXQgZGlyZWN0aXZlIG9mIEFwYWNoZS4KLQotICAg
ICAgICAgICAgZnJhbWUgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVjdCgpCi0K
LSAgICAgICAgICAgICMgQ2hlY2sgdGhlIGNvbnN0cmFpbnQgb24gdGhlIHBheWxvYWQgc2l6ZSBm
b3IgY29udHJvbCBmcmFtZXMKLSAgICAgICAgICAgICMgYmVmb3JlIGV4dGVuc2lvbiBwcm9jZXNz
ZXMgdGhlIGZyYW1lLgotICAgICAgICAgICAgIyBTZWUgYWxzbyBodHRwOi8vdG9vbHMuaWV0Zi5v
cmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24tNS41Ci0gICAgICAgICAgICBpZiAoY29tbW9uLmlzX2Nv
bnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkgYW5kCi0gICAgICAgICAgICAgICAgbGVuKGZyYW1l
LnBheWxvYWQpID4gMTI1KToKLSAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdQYXlsb2FkIGRhdGEgc2l6ZSBvZiBjb250cm9s
IGZyYW1lcyBtdXN0IGJlIDEyNSBieXRlcyBvciAnCi0gICAgICAgICAgICAgICAgICAgICdsZXNz
JykKLQotICAgICAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29t
aW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihm
cmFtZSkKLQotICAgICAgICAgICAgaWYgZnJhbWUucnN2MSBvciBmcmFtZS5yc3YyIG9yIGZyYW1l
LnJzdjM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIGZsYWcgaXMgc2V0IChyc3YgPSAlZCVk
JWQpJyAlCi0gICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFt
ZS5yc3YzKSkKLQotICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX2dldF9tZXNzYWdlX2Zyb21f
ZnJhbWUoZnJhbWUpCi0gICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgY29udGludWUKLQotICAgICAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYu
X29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSkKLQotICAgICAgICAgICAgaWYgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfVEVYVDoKLSAgICAgICAgICAgICAg
ICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgc2VjdGlvbiA0LjQgc3BlY2lmaWVzIHRoYXQgaW52
YWxpZAotICAgICAgICAgICAgICAgICMgY2hhcmFjdGVycyBtdXN0IGJlIHJlcGxhY2VkIHdpdGgg
VStmZmZkIFJFUExBQ0VNRU5UCi0gICAgICAgICAgICAgICAgIyBDSEFSQUNURVIuCi0gICAgICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZS5kZWNvZGUo
J3V0Zi04JykKLSAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yLCBlOgot
ICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkVVRGOEV4Y2VwdGlvbihlKQotICAgICAg
ICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9CSU5BUlk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5f
b3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fcHJvY2Vzc19jbG9zZV9tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1v
bi5PUENPREVfUElORzoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3BpbmdfbWVzc2Fn
ZShtZXNzYWdlKQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29t
bW9uLk9QQ09ERV9QT05HOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfcG9uZ19tZXNz
YWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFVu
c3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdPcGNvZGUgJWQg
aXMgbm90IHN1cHBvcnRlZCcgJSBzZWxmLl9vcmlnaW5hbF9vcGNvZGUpCi0KLSAgICBkZWYgX3Nl
bmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgYm9keSA9
IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUsIHJlYXNvbikKLSAgICAgICAgZnJh
bWUgPSBjcmVhdGVfY2xvc2VfZnJhbWUoCi0gICAgICAgICAgICBib2R5LCBtYXNrPXNlbGYuX29w
dGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgZnJhbWVfZmlsdGVycz1zZWxmLl9vcHRpb25z
Lm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJf
dGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAgIGRl
ZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VS
RSwgcmVhc29uPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRfcmVzcG9uc2U9VHJ1
ZSk6Ci0gICAgICAgICIiIkNsb3NlcyBhIFdlYlNvY2tldCBjb25uZWN0aW9uLgotCi0gICAgICAg
IEFyZ3M6Ci0gICAgICAgICAgICBjb2RlOiBTdGF0dXMgY29kZSBmb3IgY2xvc2UgZnJhbWUuIElm
IGNvZGUgaXMgTm9uZSwgYSBjbG9zZQotICAgICAgICAgICAgICAgIGZyYW1lIHdpdGggZW1wdHkg
Ym9keSB3aWxsIGJlIHNlbnQuCi0gICAgICAgICAgICByZWFzb246IHN0cmluZyByZXByZXNlbnRp
bmcgY2xvc2UgcmVhc29uLgotICAgICAgICAgICAgd2FpdF9yZXNwb25zZTogVHJ1ZSB3aGVuIGNh
bGxlciB3YW50IHRvIHdhaXQgdGhlIHJlc3BvbnNlLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAg
ICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gcmVhc29uIGlzIHNwZWNpZmllZCB3aXRo
IGNvZGUgTm9uZQotICAgICAgICAgICAgb3IgcmVhc29uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBi
b3RoIHN0ciBhbmQgdW5pY29kZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVx
dWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
LSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGNsb3NlX2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBp
cyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYg
Y29kZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgcmVhc29uIGlzIG5vdCBOb25lIGFuZCBsZW4o
cmVhc29uKSA+IDA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnY2xvc2UgcmVhc29uIG11c3Qgbm90IGJlIHNwZWNpZmll
ZCBpZiBjb2RlIGlzIE5vbmUnKQotICAgICAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlYXNvbiwgc3RyKSBhbmQgbm90IGlz
aW5zdGFuY2UocmVhc29uLCB1bmljb2RlKToKLSAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVy
YXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdjbG9zZSByZWFzb24gbXVzdCBi
ZSBhbiBpbnN0YW5jZSBvZiBzdHIgb3IgdW5pY29kZScpCi0KLSAgICAgICAgc2VsZi5fc2VuZF9j
bG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICdJbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hha2UgKGNvZGU9JXIsIHJl
YXNvbj0lciknLAotICAgICAgICAgICAgY29kZSwgcmVhc29uKQotCi0gICAgICAgIGlmIChjb2Rl
ID09IGNvbW1vbi5TVEFUVVNfR09JTkdfQVdBWSBvcgotICAgICAgICAgICAgY29kZSA9PSBjb21t
b24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKSBvciBub3Qgd2FpdF9yZXNwb25zZToKLSAgICAgICAg
ICAgICMgSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHdhaXQgZm9yIGEgY2xvc2UgZnJhbWUgaWYg
dGhlIHJlYXNvbiBpcwotICAgICAgICAgICAgIyBwcm90b2NvbCBlcnJvciBvciB0aGF0IHRoZSBz
ZXJ2ZXIgaXMgZ29pbmcgYXdheS4gRm9yIHNvbWUgb2YKLSAgICAgICAgICAgICMgb3RoZXIgcmVh
c29ucywgaXQgbWlnaHQgbm90IG1ha2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSwK
LSAgICAgICAgICAgICMgYnV0IGl0J3Mgbm90IGNsZWFyLCB5ZXQuCi0gICAgICAgICAgICByZXR1
cm4KLQotICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwgdGhlIC9jbGllbnQgdGVy
bWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3IgdW50aWwgYSBzZXJ2ZXIt
ZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAgICAgIyBGb3Igbm93LCB3
ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0IGFmdGVyIHNlbmRpbmcK
LSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAgIG1lc3NhZ2UgPSBzZWxm
LnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFjayBmb3IgY2xvc2luZyBoYW5kc2hha2UnKQot
ICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KLSAgICAg
ICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rpb24gKG1wX2Nvbm4pIGRvZXNuJ3QgaGF2ZSBj
bG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgotICAgICAg
ICBmcmFtZSA9IGNyZWF0ZV9waW5nX2ZyYW1lKAotICAgICAgICAgICAgYm9keSwKLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5v
dXRnb2luZ19mcmFtZV9maWx0ZXJzKQotICAgICAgICBzZWxmLl93cml0ZShmcmFtZSkKLQotICAg
ICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQotCi0gICAgZGVmIF9zZW5kX3Bvbmco
c2VsZiwgYm9keSk6Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX3BvbmdfZnJhbWUoCi0gICAgICAg
ICAgICBib2R5LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNrX3NlbmQsCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0gICAgICAgIHNlbGYu
X3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGdldF9sYXN0X3JlY2VpdmVkX29wY29kZShzZWxmKToK
LSAgICAgICAgIiIiUmV0dXJucyB0aGUgb3Bjb2RlIG9mIHRoZSBXZWJTb2NrZXQgbWVzc2FnZSB3
aGljaCB0aGUgbGFzdCByZWNlaXZlZAotICAgICAgICBmcmFtZSBiZWxvbmdzIHRvLiBUaGUgcmV0
dXJuIHZhbHVlIGlzIHZhbGlkIGlmZiBpbW1lZGlhdGVseSBhZnRlcgotICAgICAgICByZWNlaXZl
X21lc3NhZ2UgY2FsbC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX29yaWdp
bmFsX29wY29kZQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9jb21t
b24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmYzJlYWQ2NDgxYmU1N2I3YWU0
YzY2OGMyMmVjYjFlYzRiYmNiMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDMwMyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUg
bXVzdCBub3QgZGVwZW5kIG9uIGFueSBtb2R1bGUgc3BlY2lmaWMgdG8gdGhlIFdlYlNvY2tldCBw
cm90b2NvbC4KLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRl
cl91dGlsCi0KLQotIyBBZGRpdGlvbmFsIGxvZyBsZXZlbCBkZWZpbml0aW9ucy4KLUxPR0xFVkVM
X0ZJTkUgPSA5Ci0KLSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29sIHZl
cnNpb24uCi1WRVJTSU9OX0hJWElFNzUgPSAtMQotVkVSU0lPTl9IWUJJMDAgPSAwCi1WRVJTSU9O
X0hZQkkwMSA9IDEKLVZFUlNJT05fSFlCSTAyID0gMgotVkVSU0lPTl9IWUJJMDMgPSAyCi1WRVJT
SU9OX0hZQkkwNCA9IDQKLVZFUlNJT05fSFlCSTA1ID0gNQotVkVSU0lPTl9IWUJJMDYgPSA2Ci1W
RVJTSU9OX0hZQkkwNyA9IDcKLVZFUlNJT05fSFlCSTA4ID0gOAotVkVSU0lPTl9IWUJJMDkgPSA4
Ci1WRVJTSU9OX0hZQkkxMCA9IDgKLVZFUlNJT05fSFlCSTExID0gOAotVkVSU0lPTl9IWUJJMTIg
PSA4Ci1WRVJTSU9OX0hZQkkxMyA9IDEzCi1WRVJTSU9OX0hZQkkxNCA9IDEzCi1WRVJTSU9OX0hZ
QkkxNSA9IDEzCi1WRVJTSU9OX0hZQkkxNiA9IDEzCi1WRVJTSU9OX0hZQkkxNyA9IDEzCi0KLSMg
Q29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29sIGxhdGVzdCB2ZXJzaW9uLgot
VkVSU0lPTl9IWUJJX0xBVEVTVCA9IFZFUlNJT05fSFlCSTEzCi0KLSMgUG9ydCBudW1iZXJzCi1E
RUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCi1ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BP
UlQgPSA0NDMKLQotIyBTY2hlbWVzCi1XRUJfU09DS0VUX1NDSEVNRSA9ICd3cycKLVdFQl9TT0NL
RVRfU0VDVVJFX1NDSEVNRSA9ICd3c3MnCi0KLSMgRnJhbWUgb3Bjb2RlcyBkZWZpbmVkIGluIHRo
ZSBzcGVjLgotT1BDT0RFX0NPTlRJTlVBVElPTiA9IDB4MAotT1BDT0RFX1RFWFQgPSAweDEKLU9Q
Q09ERV9CSU5BUlkgPSAweDIKLU9QQ09ERV9DTE9TRSA9IDB4OAotT1BDT0RFX1BJTkcgPSAweDkK
LU9QQ09ERV9QT05HID0gMHhhCi0KLSMgVVVJRHMgdXNlZCBieSBIeUJpIDA0IGFuZCBsYXRlciBv
cGVuaW5nIGhhbmRzaGFrZSBhbmQgZnJhbWUgbWFza2luZy4KLVdFQlNPQ0tFVF9BQ0NFUFRfVVVJ
RCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCi0KLSMgT3BlbmluZyBo
YW5kc2hha2UgaGVhZGVyIG5hbWVzIGFuZCBleHBlY3RlZCB2YWx1ZXMuCi1VUEdSQURFX0hFQURF
UiA9ICdVcGdyYWRlJwotV0VCU09DS0VUX1VQR1JBREVfVFlQRSA9ICd3ZWJzb2NrZXQnCi1XRUJT
T0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUgPSAnV2ViU29ja2V0JwotQ09OTkVDVElPTl9IRUFE
RVIgPSAnQ29ubmVjdGlvbicKLVVQR1JBREVfQ09OTkVDVElPTl9UWVBFID0gJ1VwZ3JhZGUnCi1I
T1NUX0hFQURFUiA9ICdIb3N0JwotT1JJR0lOX0hFQURFUiA9ICdPcmlnaW4nCi1TRUNfV0VCU09D
S0VUX09SSUdJTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1PcmlnaW4nCi1TRUNfV0VCU09DS0VU
X0tFWV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXknCi1TRUNfV0VCU09DS0VUX0FDQ0VQVF9I
RUFERVIgPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQnCi1TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVB
REVSID0gJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbicKLVNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVB
REVSID0gJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnCi1TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNf
SEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucycKLVNFQ19XRUJTT0NLRVRfRFJBRlRf
SEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRHJhZnQnCi1TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVS
ID0gJ1NlYy1XZWJTb2NrZXQtS2V5MScKLVNFQ19XRUJTT0NLRVRfS0VZMl9IRUFERVIgPSAnU2Vj
LVdlYlNvY2tldC1LZXkyJwotU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9IRUFERVIgPSAnU2VjLVdl
YlNvY2tldC1Mb2NhdGlvbicKLQotIyBFeHRlbnNpb25zCi1ERUZMQVRFX0ZSQU1FX0VYVEVOU0lP
TiA9ICdkZWZsYXRlLWZyYW1lJwotUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04gPSAn
cGVybWVzc2FnZS1jb21wcmVzcycKLVBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gPSAncGVy
bWVzc2FnZS1kZWZsYXRlJwotWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAneC13
ZWJraXQtZGVmbGF0ZS1mcmFtZScKLVhfV0VCS0lUX1BFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhU
RU5TSU9OID0gJ3gtd2Via2l0LXBlcm1lc3NhZ2UtY29tcHJlc3MnCi1NVVhfRVhURU5TSU9OID0g
J211eF9ET19OT1RfVVNFJwotCi0jIFN0YXR1cyBjb2RlcwotIyBDb2RlIFNUQVRVU19OT19TVEFU
VVNfUkVDRUlWRUQsIFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFLCBhbmQKLSMgU1RBVFVTX1RMU19I
QU5EU0hBS0UgYXJlIHBzZXVkbyBjb2RlcyB0byBpbmRpY2F0ZSBzcGVjaWZpYyBlcnJvciBjYXNl
cy4KLSMgQ291bGQgbm90IGJlIHVzZWQgZm9yIGNvZGVzIGluIGFjdHVhbCBjbG9zaW5nIGZyYW1l
cy4KLSMgQXBwbGljYXRpb24gbGV2ZWwgZXJyb3JzIG11c3QgdXNlIGNvZGVzIGluIHRoZSByYW5n
ZQotIyBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgdG8gU1RBVFVTX1VTRVJfUFJJVkFURV9N
QVguIFRoZSBjb2RlcyBpbiB0aGUKLSMgcmFuZ2UgU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNF
IHRvIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfTUFYIGFyZSBtYW5hZ2VkCi0jIGJ5IElBTkEuIFVz
dWFsbHkgYXBwbGljYXRpb24gbXVzdCBkZWZpbmUgdXNlciBwcm90b2NvbCBsZXZlbCBlcnJvcnMg
aW4gdGhlCi0jIHJhbmdlIFNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSB0byBTVEFUVVNfVVNFUl9Q
UklWQVRFX01BWC4KLVNUQVRVU19OT1JNQUxfQ0xPU1VSRSA9IDEwMDAKLVNUQVRVU19HT0lOR19B
V0FZID0gMTAwMQotU1RBVFVTX1BST1RPQ09MX0VSUk9SID0gMTAwMgotU1RBVFVTX1VOU1VQUE9S
VEVEX0RBVEEgPSAxMDAzCi1TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEID0gMTAwNQotU1RBVFVT
X0FCTk9STUFMX0NMT1NVUkUgPSAxMDA2Ci1TVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlMT0FEX0RB
VEEgPSAxMDA3Ci1TVEFUVVNfUE9MSUNZX1ZJT0xBVElPTiA9IDEwMDgKLVNUQVRVU19NRVNTQUdF
X1RPT19CSUcgPSAxMDA5Ci1TVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lPTiA9IDEwMTAKLVNUQVRV
U19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiA9IDEwMTEKLVNUQVRVU19UTFNfSEFORFNIQUtFID0g
MTAxNQotU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNFID0gMzAwMAotU1RBVFVTX1VTRVJfUkVH
SVNURVJFRF9NQVggPSAzOTk5Ci1TVEFUVVNfVVNFUl9QUklWQVRFX0JBU0UgPSA0MDAwCi1TVEFU
VVNfVVNFUl9QUklWQVRFX01BWCA9IDQ5OTkKLSMgRm9sbG93aW5nIGRlZmluaXRpb25zIGFyZSBh
bGlhc2VzIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4gQXBwbGljYXRpb25zIG11c3QKLSMgbm90IHVz
ZSB0aGVzZSBvYnNvbGV0ZWQgZGVmaW5pdGlvbnMgYW55bW9yZS4KLVNUQVRVU19OT1JNQUwgPSBT
VEFUVVNfTk9STUFMX0NMT1NVUkUKLVNUQVRVU19VTlNVUFBPUlRFRCA9IFNUQVRVU19VTlNVUFBP
UlRFRF9EQVRBCi1TVEFUVVNfQ09ERV9OT1RfQVZBSUxBQkxFID0gU1RBVFVTX05PX1NUQVRVU19S
RUNFSVZFRAotU1RBVFVTX0FCTk9STUFMX0NMT1NFID0gU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUK
LVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQUQgPSBTVEFUVVNfSU5WQUxJRF9GUkFNRV9QQVlM
T0FEX0RBVEEKLVNUQVRVU19NQU5EQVRPUllfRVhUID0gU1RBVFVTX01BTkRBVE9SWV9FWFRFTlNJ
T04KLQotIyBIVFRQIHN0YXR1cyBjb2RlcwotSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QgPSA0MDAK
LUhUVFBfU1RBVFVTX0ZPUkJJRERFTiA9IDQwMwotSFRUUF9TVEFUVVNfTk9UX0ZPVU5EID0gNDA0
Ci0KLQotZGVmIGlzX2NvbnRyb2xfb3Bjb2RlKG9wY29kZSk6Ci0gICAgcmV0dXJuIChvcGNvZGUg
Pj4gMykgPT0gMQotCi0KLWNsYXNzIEV4dGVuc2lvblBhcmFtZXRlcihvYmplY3QpOgotICAgICIi
IkhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGFuIGV4dGVuc2lvbiB3aGljaCBpcyBleGNoYW5nZWQg
b24gZXh0ZW5zaW9uCi0gICAgbmVnb3RpYXRpb24gaW4gb3BlbmluZyBoYW5kc2hha2UuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENoYW5nZSB0aGUgZGF0YSBzdHJ1Y3R1
cmUgdG8gbW9yZSBlZmZpY2llbnQgb25lIHN1Y2gKLSAgICAgICAgIyBhcyBkaWN0IHdoZW4gdGhl
IHNwZWMgY2hhbmdlcyB0byBzYXkgbGlrZQotICAgICAgICAjIC0gUGFyYW1ldGVyIG5hbWVzIG11
c3QgYmUgdW5pcXVlCi0gICAgICAgICMgLSBUaGUgb3JkZXIgb2YgcGFyYW1ldGVycyBpcyBub3Qg
c2lnbmlmaWNhbnQKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IFtdCi0KLSAgICBkZWYgbmFt
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKLQotICAgIGRlZiBhZGRfcGFyYW1l
dGVyKHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVycy5hcHBlbmQo
KG5hbWUsIHZhbHVlKSkKLQotICAgIGRlZiBnZXRfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3BhcmFtZXRlcnMKLQotICAgIGRlZiBnZXRfcGFyYW1ldGVyX25hbWVzKHNl
bGYpOgotICAgICAgICByZXR1cm4gW25hbWUgZm9yIG5hbWUsIHVudXNlZF92YWx1ZSBpbiBzZWxm
Ll9wYXJhbWV0ZXJzXQotCi0gICAgZGVmIGhhc19wYXJhbWV0ZXIoc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBzZWxmLl9wYXJhbWV0ZXJzOgotICAg
ICAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGdldF9wYXJhbWV0ZXJfdmFsdWUo
c2VsZiwgbmFtZSk6Ci0gICAgICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBzZWxm
Ll9wYXJhbWV0ZXJzOgotICAgICAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBuYW1lOgotICAgICAg
ICAgICAgICAgIHJldHVybiBwYXJhbV92YWx1ZQotCi0KLWNsYXNzIEV4dGVuc2lvblBhcnNpbmdF
eGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHN1cGVyKEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUp
Ci0KLQotZGVmIF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGRlZmluaXRpb24pOgotICAg
IHBhcmFtX25hbWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCi0KLSAg
ICBpZiBwYXJhbV9uYW1lIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdF
eGNlcHRpb24oJ05vIHZhbGlkIHBhcmFtZXRlciBuYW1lIGZvdW5kJykKLQotICAgIGh0dHBfaGVh
ZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgIGlmIG5vdCBodHRwX2hlYWRlcl91
dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnPScpOgotICAgICAgICBkZWZpbml0aW9uLmFkZF9w
YXJhbWV0ZXIocGFyYW1fbmFtZSwgTm9uZSkKLSAgICAgICAgcmV0dXJuCi0KLSAgICBodHRwX2hl
YWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAjIFRPRE8odHlvc2hpbm8pOiBB
ZGQgY29kZSB0byB2YWxpZGF0ZSB0aGF0IHBhcnNlZCBwYXJhbV92YWx1ZSBpcyB0b2tlbgotICAg
IHBhcmFtX3ZhbHVlID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuX29yX3F1b3RlZF9z
dHJpbmcoc3RhdGUpCi0gICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKLSAgICAgICAgcmFpc2Ug
RXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICdObyB2YWxpZCBwYXJhbWV0
ZXIgdmFsdWUgZm91bmQgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiAnCi0gICAgICAgICAgICAn
cGFyYW1ldGVyICVyJyAlIHBhcmFtX25hbWUpCi0KLSAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0
ZXIocGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUpCi0KLQotZGVmIF9wYXJzZV9leHRlbnNpb24oc3Rh
dGUpOgotICAgIGV4dGVuc2lvbl90b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tl
bihzdGF0ZSkKLSAgICBpZiBleHRlbnNpb25fdG9rZW4gaXMgTm9uZToKLSAgICAgICAgcmV0dXJu
IE5vbmUKLQotICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihleHRlbnNpb25fdG9r
ZW4pCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVf
bHdzZXMoc3RhdGUpCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9z
dHJpbmcoc3RhdGUsICc7Jyk6Ci0gICAgICAgICAgICBicmVhawotCi0gICAgICAgIGh0dHBfaGVh
ZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBfcGFyc2VfZXh0ZW5zaW9uX3BhcmFtKHN0YXRlLCBleHRlbnNpb24pCi0gICAgICAgIGV4Y2Vw
dCBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmFpc2UgRXh0ZW5z
aW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIHBh
cmFtZXRlciBmb3IgJXIgKCVyKScgJQotICAgICAgICAgICAgICAgIChleHRlbnNpb25fdG9rZW4s
IGUpKQotCi0gICAgcmV0dXJuIGV4dGVuc2lvbgotCi0KLWRlZiBwYXJzZV9leHRlbnNpb25zKGRh
dGEpOgotICAgICIiIlBhcnNlcyBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIHZhbHVl
IHJldHVybnMgYSBsaXN0IG9mCi0gICAgRXh0ZW5zaW9uUGFyYW1ldGVyIG9iamVjdHMuCi0KLSAg
ICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KLSAgICAiIiIKLQotICAgIHN0YXRlID0g
aHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3RhdGUoZGF0YSkKLQotICAgIGV4dGVuc2lvbl9saXN0
ID0gW10KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBleHRlbnNpb24gPSBfcGFyc2VfZXh0ZW5z
aW9uKHN0YXRlKQotICAgICAgICBpZiBleHRlbnNpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBleHRlbnNpb25fbGlzdC5hcHBlbmQoZXh0ZW5zaW9uKQotCi0gICAgICAgIGh0dHBfaGVhZGVy
X3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBodHRwX2hlYWRlcl91dGls
LnBlZWsoc3RhdGUpIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIG5v
dCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnLCcpOgotICAgICAgICAg
ICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFp
bGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXI6ICcKLSAgICAgICAg
ICAgICAgICAnRXhwZWN0ZWQgYSBjb21tYSBidXQgZm91bmQgJXInICUKLSAgICAgICAgICAgICAg
ICBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0
aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgIGlmIGxlbihleHRlbnNpb25fbGlzdCkgPT0g
MDoKLSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAg
ICdObyB2YWxpZCBleHRlbnNpb24gZW50cnkgZm91bmQnKQotCi0gICAgcmV0dXJuIGV4dGVuc2lv
bl9saXN0Ci0KLQotZGVmIGZvcm1hdF9leHRlbnNpb24oZXh0ZW5zaW9uKToKLSAgICAiIiJGb3Jt
YXRzIGFuIEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3QuIiIiCi0KLSAgICBmb3JtYXR0ZWRfcGFy
YW1zID0gW2V4dGVuc2lvbi5uYW1lKCldCi0gICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVl
IGluIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVycygpOgotICAgICAgICBpZiBwYXJhbV92YWx1ZSBp
cyBOb25lOgotICAgICAgICAgICAgZm9ybWF0dGVkX3BhcmFtcy5hcHBlbmQocGFyYW1fbmFtZSkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHF1b3RlZF92YWx1ZSA9IGh0dHBfaGVhZGVyX3V0
aWwucXVvdGVfaWZfbmVjZXNzYXJ5KHBhcmFtX3ZhbHVlKQotICAgICAgICAgICAgZm9ybWF0dGVk
X3BhcmFtcy5hcHBlbmQoJyVzPSVzJyAlIChwYXJhbV9uYW1lLCBxdW90ZWRfdmFsdWUpKQotICAg
IHJldHVybiAnOyAnLmpvaW4oZm9ybWF0dGVkX3BhcmFtcykKLQotCi1kZWYgZm9ybWF0X2V4dGVu
c2lvbnMoZXh0ZW5zaW9uX2xpc3QpOgotICAgICIiIkZvcm1hdHMgYSBsaXN0IG9mIEV4dGVuc2lv
blBhcmFtZXRlciBvYmplY3RzLiIiIgotCi0gICAgZm9ybWF0dGVkX2V4dGVuc2lvbl9saXN0ID0g
W10KLSAgICBmb3IgZXh0ZW5zaW9uIGluIGV4dGVuc2lvbl9saXN0OgotICAgICAgICBmb3JtYXR0
ZWRfZXh0ZW5zaW9uX2xpc3QuYXBwZW5kKGZvcm1hdF9leHRlbnNpb24oZXh0ZW5zaW9uKSkKLSAg
ICByZXR1cm4gJywgJy5qb2luKGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdCkKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9kaXNwYXRj
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTZjOTFlMGM5MGU3NDI5ZDBmNzYwYzBlOWM3Yjk4MTIwNDA5MmEw
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOTMgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRGlzcGF0Y2ggV2ViU29ja2V0IHJlcXVlc3Qu
Ci0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJl
YW0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQotX1NPVVJDRV9QQVRIX1BB
VFRFUk4gPSByZS5jb21waWxlKHInKD9pKV93c2hcLnB5JCcpCi1fU09VUkNFX1NVRkZJWCA9ICdf
d3NoLnB5JwotX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUgPSAnd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UnCi1fVFJBTlNGRVJfREFUQV9IQU5ETEVSX05BTUUgPSAnd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhJwotX1BBU1NJVkVfQ0xPU0lOR19IQU5EU0hBS0VfSEFORExFUl9O
QU1FID0gKAotICAgICd3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UnKQotCi0K
LWNsYXNzIERpc3BhdGNoRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiRXhjZXB0aW9uIGlu
IGRpc3BhdGNoaW5nIFdlYlNvY2tldCByZXF1ZXN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5hbWUsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfTk9UX0ZPVU5EKToKLSAgICAgICAg
c3VwZXIoRGlzcGF0Y2hFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNl
bGYuc3RhdHVzID0gc3RhdHVzCi0KLQotZGVmIF9kZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5k
c2hha2VfaGFuZGxlcihyZXF1ZXN0KToKLSAgICAiIiJEZWZhdWx0IHdlYl9zb2NrZXRfcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZSBoYW5kbGVyLiIiIgotCi0gICAgcmV0dXJuIGNvbW1vbi5TVEFU
VVNfTk9STUFMX0NMT1NVUkUsICcnCi0KLQotZGVmIF9ub3JtYWxpemVfcGF0aChwYXRoKToKLSAg
ICAiIiJOb3JtYWxpemUgcGF0aC4KLQotICAgIEFyZ3M6Ci0gICAgICAgIHBhdGg6IHRoZSBwYXRo
IHRvIG5vcm1hbGl6ZS4KLQotICAgIFBhdGggaXMgY29udmVydGVkIHRvIHRoZSBhYnNvbHV0ZSBw
YXRoLgotICAgIFRoZSBpbnB1dCBwYXRoIGNhbiB1c2UgZWl0aGVyICdcXCcgb3IgJy8nIGFzIHRo
ZSBzZXBhcmF0b3IuCi0gICAgVGhlIG5vcm1hbGl6ZWQgcGF0aCBhbHdheXMgdXNlcyAnLycgcmVn
YXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0uCi0gICAgIiIiCi0KLSAgICBwYXRoID0gcGF0aC5yZXBs
YWNlKCdcXCcsIG9zLnBhdGguc2VwKQotICAgIHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHBhdGgp
Ci0gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAnLycpCi0gICAgcmV0dXJuIHBhdGgKLQot
Ci1kZWYgX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihiYXNlX2Rpcik6Ci0gICAg
IiIiUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIHBhdGggb2YgYSBXZWJTb2Nr
ZXQgaGFuZGxlciBzb3VyY2UKLSAgICBmaWxlIHRvIGEgcmVzb3VyY2Ugc3RyaW5nIGJ5IHJlbW92
aW5nIHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVjdG9yeSBmcm9tCi0gICAgaXRzIGhlYWQsIHJl
bW92aW5nIF9TT1VSQ0VfU1VGRklYIGZyb20gaXRzIHRhaWwsIGFuZCByZXBsYWNpbmcgcGF0aAot
ICAgIHNlcGFyYXRvcnMgaW4gaXQgd2l0aCAnLycuCi0KLSAgICBBcmdzOgotICAgICAgICBiYXNl
X2RpcjogdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5LgotICAgICIiIgotCi0gICAgYmFz
ZV9kaXIgPSBfbm9ybWFsaXplX3BhdGgoYmFzZV9kaXIpCi0KLSAgICBiYXNlX2xlbiA9IGxlbihi
YXNlX2RpcikKLSAgICBzdWZmaXhfbGVuID0gbGVuKF9TT1VSQ0VfU1VGRklYKQotCi0gICAgZGVm
IGNvbnZlcnRlcihwYXRoKToKLSAgICAgICAgaWYgbm90IHBhdGguZW5kc3dpdGgoX1NPVVJDRV9T
VUZGSVgpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgIyBfbm9ybWFsaXplX3Bh
dGggbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIHJlc29sdmluZyBzeW1saW5rIGJyZWFrcwotICAg
ICAgICAjIGZvbGxvd2luZyBwYXRoIGNoZWNrLgotICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNl
KCdcXCcsICcvJykKLSAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0aChiYXNlX2Rpcik6Ci0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gcGF0aFtiYXNlX2xlbjotc3Vm
Zml4X2xlbl0KLQotICAgIHJldHVybiBjb252ZXJ0ZXIKLQotCi1kZWYgX2VudW1lcmF0ZV9oYW5k
bGVyX2ZpbGVfcGF0aHMoZGlyZWN0b3J5KToKLSAgICAiIiJSZXR1cm5zIGEgZ2VuZXJhdG9yIHRo
YXQgZW51bWVyYXRlcyBXZWJTb2NrZXQgSGFuZGxlciBzb3VyY2UgZmlsZSBuYW1lcwotICAgIGlu
IHRoZSBnaXZlbiBkaXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBmb3Igcm9vdCwgdW51c2VkX2Rp
cnMsIGZpbGVzIGluIG9zLndhbGsoZGlyZWN0b3J5KToKLSAgICAgICAgZm9yIGJhc2UgaW4gZmls
ZXM6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHJvb3QsIGJhc2UpCi0gICAgICAg
ICAgICBpZiBfU09VUkNFX1BBVEhfUEFUVEVSTi5zZWFyY2gocGF0aCk6Ci0gICAgICAgICAgICAg
ICAgeWllbGQgcGF0aAotCi0KLWNsYXNzIF9IYW5kbGVyU3VpdGUob2JqZWN0KToKLSAgICAiIiJB
IGhhbmRsZXIgc3VpdGUgaG9sZGVyIGNsYXNzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGRvX2V4dHJhX2hhbmRzaGFrZSwgdHJhbnNmZXJfZGF0YSwKLSAgICAgICAgICAgICAgICAgcGFz
c2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtl
ID0gZG9fZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHNlbGYudHJhbnNmZXJfZGF0YSA9IHRyYW5z
ZmVyX2RhdGEKLSAgICAgICAgc2VsZi5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlID0gcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZQotCi0KLWRlZiBfc291cmNlX2hhbmRsZXJfZmlsZShoYW5kbGVy
X2RlZmluaXRpb24pOgotICAgICIiIlNvdXJjZSBhIGhhbmRsZXIgZGVmaW5pdGlvbiBzdHJpbmcu
Ci0KLSAgICBBcmdzOgotICAgICAgICBoYW5kbGVyX2RlZmluaXRpb246IGEgc3RyaW5nIGNvbnRh
aW5pbmcgUHl0aG9uIHN0YXRlbWVudHMgdGhhdCBkZWZpbmUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoYW5kbGVyIGZ1bmN0aW9ucy4KLSAgICAiIiIKLQotICAgIGdsb2JhbF9kaWMgPSB7
fQotICAgIHRyeToKLSAgICAgICAgZXhlYyBoYW5kbGVyX2RlZmluaXRpb24gaW4gZ2xvYmFsX2Rp
YwotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9u
KCdFcnJvciBpbiBzb3VyY2luZyBoYW5kbGVyOicgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgIHBhc3NpdmVfY2xvc2luZ19oYW5k
c2hha2VfaGFuZGxlciA9IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHBhc3NpdmVfY2xvc2luZ19o
YW5kc2hha2VfaGFuZGxlciA9IF9leHRyYWN0X2hhbmRsZXIoCi0gICAgICAgICAgICBnbG9iYWxf
ZGljLCBfUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUpCi0gICAgZXhjZXB0
IEV4Y2VwdGlvbjoKLSAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0g
KAotICAgICAgICAgICAgX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVy
KQotICAgIHJldHVybiBfSGFuZGxlclN1aXRlKAotICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGds
b2JhbF9kaWMsIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FKSwKLSAgICAgICAgX2V4
dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfVFJBTlNGRVJfREFUQV9IQU5ETEVSX05BTUUpLAot
ICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIpCi0KLQotZGVmIF9leHRy
YWN0X2hhbmRsZXIoZGljLCBuYW1lKToKLSAgICAiIiJFeHRyYWN0cyBhIGNhbGxhYmxlIHdpdGgg
dGhlIHNwZWNpZmllZCBuYW1lIGZyb20gdGhlIGdpdmVuIGRpY3Rpb25hcnkKLSAgICBkaWMuCi0g
ICAgIiIiCi0KLSAgICBpZiBuYW1lIG5vdCBpbiBkaWM6Ci0gICAgICAgIHJhaXNlIERpc3BhdGNo
RXhjZXB0aW9uKCclcyBpcyBub3QgZGVmaW5lZC4nICUgbmFtZSkKLSAgICBoYW5kbGVyID0gZGlj
W25hbWVdCi0gICAgaWYgbm90IGNhbGxhYmxlKGhhbmRsZXIpOgotICAgICAgICByYWlzZSBEaXNw
YXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGNhbGxhYmxlLicgJSBuYW1lKQotICAgIHJldHVybiBo
YW5kbGVyCi0KLQotY2xhc3MgRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkRpc3BhdGNoZXMg
V2ViU29ja2V0IHJlcXVlc3RzLgotCi0gICAgVGhpcyBjbGFzcyBtYWludGFpbnMgYSBtYXAgZnJv
bSByZXNvdXJjZSBuYW1lIHRvIGhhbmRsZXJzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KAotICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nhbl9kaXI9Tm9uZSwKLSAgICAgICAgYWxsb3df
aGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcj1UcnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByb290X2RpcjogVGhlIGRp
cmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRpb24gZmlsZXMgYXJlCi0gICAgICAgICAgICAg
ICAgICAgICAgcGxhY2VkLgotICAgICAgICAgICAgc2Nhbl9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hl
cmUgaGFuZGxlciBkZWZpbml0aW9uIGZpbGVzIGFyZQotICAgICAgICAgICAgICAgICAgICAgIHNl
YXJjaGVkLiBzY2FuX2RpciBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIHJvb3RfZGlyLAotICAg
ICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyByb290X2RpciBpdHNlbGYuICBJZiBzY2FuX2Rp
ciBpcyBOb25lLAotICAgICAgICAgICAgICAgICAgICAgIHJvb3RfZGlyIGlzIHVzZWQgYXMgc2Nh
bl9kaXIuIHNjYW5fZGlyIGNhbiBiZSB1c2VmdWwKLSAgICAgICAgICAgICAgICAgICAgICBpbiBz
YXZpbmcgc2NhbiB0aW1lIHdoZW4gcm9vdF9kaXIgY29udGFpbnMgbWFueQotICAgICAgICAgICAg
ICAgICAgICAgIHN1YmRpcmVjdG9yaWVzLgotICAgICAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0
c2lkZV9yb290X2RpcjogU2NhbnMgaGFuZGxlciBmaWxlcyBldmVuIGlmIHRoZWlyCi0gICAgICAg
ICAgICAgICAgICAgICAgY2Fub25pY2FsIHBhdGggaXMgbm90IHVuZGVyIHJvb3RfZGlyLgotICAg
ICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIo
c2VsZikKLQotICAgICAgICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcCA9IHt9Ci0gICAgICAgIHNl
bGYuX3NvdXJjZV93YXJuaW5ncyA9IFtdCi0gICAgICAgIGlmIHNjYW5fZGlyIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBzY2FuX2RpciA9IHJvb3RfZGlyCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLnJl
YWxwYXRoKHNjYW5fZGlyKS5zdGFydHN3aXRoKAotICAgICAgICAgICAgICAgIG9zLnBhdGgucmVh
bHBhdGgocm9vdF9kaXIpKToKLSAgICAgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdz
Y2FuX2RpcjolcyBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdyb290X2Rpcjolcy4nICUgKHNjYW5fZGlyLCByb290X2Rpcikp
Ci0gICAgICAgIHNlbGYuX3NvdXJjZV9oYW5kbGVyX2ZpbGVzX2luX2RpcigKLSAgICAgICAgICAg
IHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcikKLQot
ICAgIGRlZiBhZGRfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9wYXRoLCBleGlzdGluZ19yZXNvdXJjZV9wYXRo
KToKLSAgICAgICAgIiIiQWRkIHJlc291cmNlIHBhdGggYWxpYXMuCi0KLSAgICAgICAgT25jZSBh
ZGRlZCwgcmVxdWVzdCB0byBhbGlhc19yZXNvdXJjZV9wYXRoIHdvdWxkIGJlIGhhbmRsZWQgYnkK
LSAgICAgICAgaGFuZGxlciByZWdpc3RlcmVkIGZvciBleGlzdGluZ19yZXNvdXJjZV9wYXRoLgot
Ci0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9wYXRoOiBhbGlhcyBy
ZXNvdXJjZSBwYXRoCi0gICAgICAgICAgICBleGlzdGluZ19yZXNvdXJjZV9wYXRoOiBleGlzdGlu
ZyByZXNvdXJjZSBwYXRoCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBo
YW5kbGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbZXhpc3RpbmdfcmVzb3VyY2Vf
cGF0aF0KLSAgICAgICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwW2FsaWFzX3Jlc291cmNl
X3BhdGhdID0gaGFuZGxlcl9zdWl0ZQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAg
ICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ19yZXNvdXJjZV9wYXRoKQot
Ci0gICAgZGVmIHNvdXJjZV93YXJuaW5ncyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHdhcm5p
bmdzIGluIHNvdXJjaW5nIGhhbmRsZXJzLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9zb3Vy
Y2Vfd2FybmluZ3MKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6
Ci0gICAgICAgICIiIkRvIGV4dHJhIGNoZWNraW5nIGluIFdlYlNvY2tldCBoYW5kc2hha2UuCi0K
LSAgICAgICAgU2VsZWN0IGEgaGFuZGxlciBiYXNlZCBvbiByZXF1ZXN0LnVyaSBhbmQgY2FsbCBp
dHMKLSAgICAgICAgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgZnVuY3Rpb24uCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLQot
ICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBEaXNwYXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5k
bGVyIHdhcyBub3QgZm91bmQKLSAgICAgICAgICAgIEFib3J0ZWRCeVVzZXJFeGNlcHRpb246IHdo
ZW4gdXNlciBoYW5kbGVyIGFib3J0IGNvbm5lY3Rpb24KLSAgICAgICAgICAgIEhhbmRzaGFrZUV4
Y2VwdGlvbjogd2hlbiBvcGVuaW5nIGhhbmRzaGFrZSBmYWlsZWQKLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19y
ZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAg
cmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhhbmRsZXIgZm9yOiAlcicgJSByZXF1ZXN0Lndz
X3Jlc291cmNlKQotICAgICAgICBkb19leHRyYV9oYW5kc2hha2VfID0gaGFuZGxlcl9zdWl0ZS5k
b19leHRyYV9oYW5kc2hha2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZG9fZXh0cmFfaGFu
ZHNoYWtlXyhyZXF1ZXN0KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIFJlLXJhaXNlIHRvIHRlbGwgdGhlIGNhbGxlciBv
ZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0aGlzCi0gICAgICAgICAgICAjIGNvbm5lY3Rpb24g
d2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAgICAgcmFpc2UKLSAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdl
X3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJyVzIHJhaXNlZCBleGNlcHRpb24g
Zm9yICVzOiAnICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ET19FWFRSQV9IQU5E
U0hBS0VfSEFORExFUl9OQU1FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3NfcmVzb3VyY2UpLAotICAgICAgICAgICAgICAgICAgICBlKQotICAgICAgICAgICAgcmFpc2Ug
aGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbihlLCBjb21tb24uSFRUUF9TVEFUVVNfRk9SQklE
REVOKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIi
IkxldCBhIGhhbmRsZXIgdHJhbnNmZXJfZGF0YSB3aXRoIGEgV2ViU29ja2V0IGNsaWVudC4KLQot
ICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9uIHJlcXVlc3Qud3NfcmVzb3VyY2UgYW5k
IGNhbGwgaXRzCi0gICAgICAgIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBmdW5jdGlvbi4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0Lgot
Ci0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIERpc3BhdGNoRXhjZXB0aW9uOiB3aGVuIGhh
bmRsZXIgd2FzIG5vdCBmb3VuZAotICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbjog
d2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlvbgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIFRPRE8odHlvc2hpbm8pOiBUZXJtaW5hdGUgdW5kZXJseWluZyBUQ1AgY29ubmVjdGlvbiBp
ZiBwb3NzaWJsZS4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgbXV4LnVzZV9tdXgocmVx
dWVzdCk6Ci0gICAgICAgICAgICAgICAgbXV4LnN0YXJ0KHJlcXVlc3QsIHNlbGYpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5k
bGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgaWYgaGFuZGxl
cl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2Vw
dGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgdHJh
bnNmZXJfZGF0YV8gPSBoYW5kbGVyX3N1aXRlLnRyYW5zZmVyX2RhdGEKLSAgICAgICAgICAgICAg
ICB0cmFuc2Zlcl9kYXRhXyhyZXF1ZXN0KQotCi0gICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9z
ZV9jb25uZWN0aW9uKCkKLSAgICAgICAgIyBDYXRjaCBub24tY3JpdGljYWwgZXhjZXB0aW9ucyB0
aGUgaGFuZGxlciBkaWRuJ3QgaGFuZGxlLgotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0
ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVz
JywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4
Y2VwdCBtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xv
c2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VO
RFBPSU5UX0VSUk9SKQotICAgICAgICBleGNlcHQgbXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICAjIEludmFsaWRGcmFtZUV4Y2VwdGlvbiBtdXN0IGJlIGNhdWdo
dCBiZWZvcmUKLSAgICAgICAgICAgICMgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gdGhh
dCBjYXRjaGVzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29u
bmVjdGlvbihjb21tb24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKQotICAgICAgICBleGNlcHQgbXNn
dXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9j
b25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkKLSAgICAgICAgZXhjZXB0
IHN0cmVhbS5JbnZhbGlkVVRGOEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29u
bmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZ
TE9BRF9EQVRBKQotICAgICAgICBleGNlcHQgbXNndXRpbC5Db25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgIyBBbnkgb3RoZXIgZXhjZXB0
aW9ucyBhcmUgZm9yd2FyZGVkIHRvIHRoZSBjYWxsZXIgb2YgdGhpcwotICAgICAgICAgICAgIyBm
dW5jdGlvbi4KLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCi0gICAg
ICAgICAgICAgICAgICAgIF9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFNRSwgcmVxdWVzdC53c19y
ZXNvdXJjZSksCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHJhaXNlCi0KLSAgICBk
ZWYgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIi
UHJlcGFyZSBjb2RlIGFuZCByZWFzb24gZm9yIHJlc3BvbmRpbmcgY2xpZW50IGluaXRpYXRlZCBj
bG9zaW5nCi0gICAgICAgIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaGFuZGxl
cl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKLSAg
ICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIF9kZWZh
dWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KQotICAgICAgICBy
ZXR1cm4gaGFuZGxlcl9zdWl0ZS5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlKHJlcXVlc3QpCi0K
LSAgICBkZWYgZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZiwgcmVzb3VyY2UpOgotICAgICAgICAiIiJS
ZXRyaWV2ZXMgdHdvIGhhbmRsZXJzIChvbmUgZm9yIGV4dHJhIGhhbmRzaGFrZSBwcm9jZXNzaW5n
LCBhbmQgb25lCi0gICAgICAgIGZvciBkYXRhIHRyYW5zZmVyKSBmb3IgdGhlIGdpdmVuIHJlcXVl
c3QgYXMgYSBIYW5kbGVyU3VpdGUgb2JqZWN0LgotICAgICAgICAiIiIKLQotICAgICAgICBmcmFn
bWVudCA9IE5vbmUKLSAgICAgICAgaWYgJyMnIGluIHJlc291cmNlOgotICAgICAgICAgICAgcmVz
b3VyY2UsIGZyYWdtZW50ID0gcmVzb3VyY2Uuc3BsaXQoJyMnLCAxKQotICAgICAgICBpZiAnPycg
aW4gcmVzb3VyY2U6Ci0gICAgICAgICAgICByZXNvdXJjZSA9IHJlc291cmNlLnNwbGl0KCc/Jywg
MSlbMF0KLSAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwLmdl
dChyZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBhbmQgZnJhZ21lbnQ6Ci0gICAg
ICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignRnJhZ21lbnQgaWRlbnRpZmllcnMgTVVT
VCBOT1QgYmUgdXNlZCBvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
V2ViU29ja2V0IFVSSXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICByZXR1cm4gaGFuZGxlcl9zdWl0
ZQotCi0gICAgZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxlc19pbl9kaXIoCi0gICAgICAgIHNlbGYs
IHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcik6Ci0g
ICAgICAgICIiIlNvdXJjZSBhbGwgdGhlIGhhbmRsZXIgc291cmNlIGZpbGVzIGluIHRoZSBzY2Fu
X2RpciBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhlIHJlc291cmNlIHBhdGggaXMgZGV0ZXJtaW5l
ZCByZWxhdGl2ZSB0byByb290X2Rpci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBXZSBidWls
ZCBhIG1hcCBmcm9tIHJlc291cmNlIHRvIGhhbmRsZXIgY29kZSBhc3N1bWluZyB0aGF0IHRoZXJl
J3MKLSAgICAgICAgIyBvbmx5IG9uZSBwYXRoIGZyb20gcm9vdF9kaXIgdG8gc2Nhbl9kaXIgYW5k
IGl0IGNhbiBiZSBvYnRhaW5lZCBieQotICAgICAgICAjIGNvbXBhcmluZyByZWFscGF0aCBvZiB0
aGVtLgotCi0gICAgICAgICMgSGVyZSB3ZSBjYW5ub3QgdXNlIGFic3BhdGguIFNlZQotICAgICAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYwMwotCi0gICAg
ICAgIGNvbnZlcnQgPSBfY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKHJvb3RfZGly
KQotICAgICAgICBzY2FuX3JlYWxwYXRoID0gb3MucGF0aC5yZWFscGF0aChzY2FuX2RpcikKLSAg
ICAgICAgcm9vdF9yZWFscGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIpCi0gICAgICAg
IGZvciBwYXRoIGluIF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKHNjYW5fcmVhbHBhdGgp
OgotICAgICAgICAgICAgaWYgKG5vdCBhbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIGFu
ZAotICAgICAgICAgICAgICAgIChub3Qgb3MucGF0aC5yZWFscGF0aChwYXRoKS5zdGFydHN3aXRo
KHJvb3RfcmVhbHBhdGgpKSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAot
ICAgICAgICAgICAgICAgICAgICAnQ2Fub25pY2FsIHBhdGggb2YgJXMgaXMgbm90IHVuZGVyIHJv
b3QgZGlyZWN0b3J5JyAlCi0gICAgICAgICAgICAgICAgICAgIHBhdGgpCi0gICAgICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBoYW5kbGVyX3N1
aXRlID0gX3NvdXJjZV9oYW5kbGVyX2ZpbGUob3BlbihwYXRoKS5yZWFkKCkpCi0gICAgICAgICAg
ICBleGNlcHQgRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc291
cmNlX3dhcm5pbmdzLmFwcGVuZCgnJXM6ICVzJyAlIChwYXRoLCBlKSkKLSAgICAgICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAgICAgcmVzb3VyY2UgPSBjb252ZXJ0KHBhdGgpCi0gICAgICAg
ICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ1BhdGggdG8gcmVzb3VyY2UgY29udmVyc2lvbiBv
biAlcyBmYWlsZWQnICUgcGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbY29udmVydChwYXRoKV0gPSBoYW5kbGVyX3N1aXRlCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvZXh0ZW5zaW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWE5ZmRjZjk0Nzk4NmExYjRjYWNiZTQ2
ZjNkNTNlMDE1OGRiN2NhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsODg1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1l
dDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5odHRwX2hlYWRlcl91dGlsIGltcG9ydCBxdW90ZV9pZl9uZWNl
c3NhcnkKLQotCi0jIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBzZXJ2ZXIgc2lkZSBleHRlbnNpb24g
cHJvY2Vzc29yIGNsYXNzZXMuCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnMgPSB7fQotX2NvbXByZXNz
aW9uX2V4dGVuc2lvbl9uYW1lcyA9IFtdCi0KLQotY2xhc3MgRXh0ZW5zaW9uUHJvY2Vzc29ySW50
ZXJmYWNlKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAg
IHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2FjdGl2ZSA9IFRydWUKLQot
ICAgIGRlZiByZXF1ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdAotCi0g
ICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgY2hlY2tf
Y29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKHNlbGYsIHByb2Nlc3NvcnMpOgotICAg
ICAgICBwYXNzCi0KLSAgICBkZWYgc2V0X2FjdGl2ZShzZWxmLCBhY3RpdmUpOgotICAgICAgICBz
ZWxmLl9hY3RpdmUgPSBhY3RpdmUKLQotICAgIGRlZiBpc19hY3RpdmUoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9hY3RpdmUKLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9p
bnRlcm5hbChzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBnZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fYWN0aXZlOgotICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHRlbnNpb24gJXMgaXMgZGVhY3RpdmF0ZWQnLCBz
ZWxmLm5hbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgcmVzcG9uc2Ug
PSBzZWxmLl9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKCkKLSAgICAgICAgaWYgcmVz
cG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAg
IHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5h
bChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZXR1cF9z
dHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIGlmIHNlbGYuX2Fj
dGl2ZToKLSAgICAgICAgICAgIHNlbGYuX3NldHVwX3N0cmVhbV9vcHRpb25zX2ludGVybmFsKHN0
cmVhbV9vcHRpb25zKQotCi0KLWRlZiBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlvKAot
ICAgICAgICBsb2dnZXIsIG9yaWdpbmFsX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZlcmFnZV9y
YXRpbyk6Ci0gICAgIyBQcmludCBpbmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxlLgotICAg
IHJhdGlvID0gZmxvYXQoJ2luZicpCi0gICAgaWYgb3JpZ2luYWxfYnl0ZXMgIT0gMDoKLSAgICAg
ICAgcmF0aW8gPSBmbG9hdChmaWx0ZXJlZF9ieXRlcykgLyBvcmlnaW5hbF9ieXRlcwotCi0gICAg
bG9nZ2VyLmRlYnVnKCdPdXRnb2luZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJhZ2U6ICVm
KScgJQotICAgICAgICAgICAgKHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkKLQotCi1kZWYgX2xvZ19p
bmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgbG9nZ2VyLCByZWNlaXZlZF9ieXRl
cywgZmlsdGVyZWRfYnl0ZXMsIGF2ZXJhZ2VfcmF0aW8pOgotICAgICMgUHJpbnQgaW5mIHdoZW4g
cmF0aW8gaXMgbm90IGF2YWlsYWJsZS4KLSAgICByYXRpbyA9IGZsb2F0KCdpbmYnKQotICAgIGlm
IGZpbHRlcmVkX2J5dGVzICE9IDA6Ci0gICAgICAgIHJhdGlvID0gZmxvYXQocmVjZWl2ZWRfYnl0
ZXMpIC8gZmlsdGVyZWRfYnl0ZXMKLQotICAgIGxvZ2dlci5kZWJ1ZygnSW5jb21pbmcgY29tcHJl
c3Npb24gcmF0aW86ICVmIChhdmVyYWdlOiAlZiknICUKLSAgICAgICAgICAgIChyYXRpbywgYXZl
cmFnZV9yYXRpbykpCi0KLQotZGVmIF9wYXJzZV93aW5kb3dfYml0cyhiaXRzKToKLSAgICAiIiJS
ZXR1cm4gcGFyc2VkIGludGVnZXIgdmFsdWUgaWZmIHRoZSBnaXZlbiBzdHJpbmcgY29uZm9ybXMg
dG8gdGhlCi0gICAgZ3JhbW1hciBvZiB0aGUgd2luZG93IGJpdHMgZXh0ZW5zaW9uIHBhcmFtZXRl
cnMuCi0gICAgIiIiCi0KLSAgICBpZiBiaXRzIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ1ZhbHVlIGlzIHJlcXVpcmVkJykKLQotICAgICMgRm9yIG5vbiBpbnRlZ2VyIHZhbHVl
cyBzdWNoIGFzICIxMC4wIiwgVmFsdWVFcnJvciB3aWxsIGJlIHJhaXNlZC4KLSAgICBpbnRfYml0
cyA9IGludChiaXRzKQotCi0gICAgIyBGaXJzdCBjb25kaXRpb24gaXMgdG8gZHJvcCBsZWFkaW5n
IHplcm8gY2FzZSBlLmcuICIwOCIuCi0gICAgaWYgYml0cyAhPSBzdHIoaW50X2JpdHMpIG9yIGlu
dF9iaXRzIDwgOCBvciBpbnRfYml0cyA+IDE1OgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJ
bnZhbGlkIHZhbHVlOiAlcicgJSBiaXRzKQotCi0gICAgcmV0dXJuIGludF9iaXRzCi0KLQotY2xh
c3MgX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3Iob2JqZWN0KToKLSAgICAiIiJTdG9yZXMgdG90YWwg
Ynl0ZXMgb2Ygb3JpZ2luYWwgYW5kIHJlc3VsdCBkYXRhLCBhbmQgY2FsY3VsYXRlcyBhdmVyYWdl
Ci0gICAgcmVzdWx0IC8gb3JpZ2luYWwgcmF0aW8uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzID0gMAotICAgICAg
ICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgPSAwCi0KLSAgICBkZWYgYWRkX29yaWdpbmFsX2J5
dGVzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMgKz0g
dmFsdWUKLQotICAgIGRlZiBhZGRfcmVzdWx0X2J5dGVzKHNlbGYsIHZhbHVlKToKLSAgICAgICAg
c2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzICs9IHZhbHVlCi0KLSAgICBkZWYgZ2V0X2F2ZXJhZ2Vf
cmF0aW8oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVzICE9IDA6
Ci0gICAgICAgICAgICByZXR1cm4gKGZsb2F0KHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcykgLwot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9ieXRlcykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHJldHVybiBmbG9hdCgnaW5mJykKLQotCi1jbGFzcyBEZWZsYXRl
RnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAg
ICAiIiJkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiBwcm9jZXNzb3IuCi0KLSAgICBTcGVjaWZpY2F0
aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LXR5b3NoaW5vLWh5Ymkt
d2Vic29ja2V0LXBlcmZyYW1lLWRlZmxhdGUKLSAgICAiIiIKLQotICAgIF9XSU5ET1dfQklUU19Q
QVJBTSA9ICdtYXhfd2luZG93X2JpdHMnCi0gICAgX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0g
PSAnbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0
KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJl
cXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBz
ZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UKLSAgICAgICAgc2VsZi5f
YmZpbmFsID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAgICAgICAgIyAgICAgKFRv
dGFsIG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRoaXMgZmlsdGVyKSAvCi0gICAgICAgICMg
ICAgIChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3b3JrIGFmdGVyIGFwcGx5aW5nIHRoaXMg
ZmlsdGVyKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3Ig
PSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0gICAg
ICAgICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBmcm9tIHRoZSBuZXR3b3JrKSAvCi0gICAg
ICAgICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBvYnRhaW5lZCBhZnRlciBhcHBseWluZyB0
aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxh
dG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0g
ICAgICAgIHJldHVybiBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04KLQotICAgIGRlZiBf
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgIyBBbnkgdW5r
bm93biBwYXJhbWV0ZXIgd2lsbCBiZSBqdXN0IGlnbm9yZWQuCi0KLSAgICAgICAgd2luZG93X2Jp
dHMgPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcihzZWxmLl9X
SU5ET1dfQklUU19QQVJBTSk6Ci0gICAgICAgICAgICB3aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVl
c3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklU
U19QQVJBTSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aW5kb3dfYml0cyA9
IF9wYXJzZV93aW5kb3dfYml0cyh3aW5kb3dfYml0cykKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yLCBlOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgbm9fY29u
dGV4dF90YWtlb3ZlciA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRlcigKLSAgICAgICAgICAg
IHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pCi0gICAgICAgIGlmIChub19jb250ZXh0
X3Rha2VvdmVyIGFuZAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3Zh
bHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pIGlz
IG5vdCBOb25lKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgc2VsZi5fcmZj
MTk3OV9kZWZsYXRlciA9IHV0aWwuX1JGQzE5NzlEZWZsYXRlcigKLSAgICAgICAgICAgIHdpbmRv
d19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfaW5m
bGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2NvbXByZXNz
X291dGdvaW5nID0gVHJ1ZQotCi0gICAgICAgIHJlc3BvbnNlID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcihzZWxmLl9yZXF1ZXN0Lm5hbWUoKSkKLQotICAgICAgICBpZiBzZWxmLl9yZXNwb25z
ZV93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJh
bWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fV0lORE9XX0JJVFNfUEFSQU0sIHN0cihzZWxm
Ll9yZXNwb25zZV93aW5kb3dfYml0cykpCi0gICAgICAgIGlmIHNlbGYuX3Jlc3BvbnNlX25vX2Nv
bnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAotICAg
ICAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sIE5vbmUpCi0KLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0VuYWJsZSAlcyBleHRlbnNp
b24gKCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiB3aW5kb3dfYml0cz0lczsgbm9fY29udGV4dF90
YWtlb3Zlcj0lciwgJwotICAgICAgICAgICAgJ3Jlc3BvbnNlOiB3aW5kb3dfd2JpdHM9JXM7IG5v
X2NvbnRleHRfdGFrZW92ZXI9JXIpJyAlCi0gICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5uYW1l
KCksCi0gICAgICAgICAgICAgd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgbm9fY29udGV4dF90
YWtlb3ZlciwKLSAgICAgICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cywKLSAgICAg
ICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyKSkKLQotICAgICAgICBy
ZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwo
c2VsZiwgc3RyZWFtX29wdGlvbnMpOgotCi0gICAgICAgIGNsYXNzIF9PdXRnb2luZ0ZpbHRlcihv
YmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAgICAgZGVmIGZpbHRl
cihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50Ll9vdXRnb2luZ19m
aWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgY2xhc3MgX0luY29taW5nRmlsdGVyKG9iamVjdCk6Ci0K
LSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAg
IHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIGZy
YW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX2luY29taW5nX2ZpbHRlcihmcmFt
ZSkKLQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLmFwcGVu
ZCgKLSAgICAgICAgICAgIF9PdXRnb2luZ0ZpbHRlcihzZWxmKSkKLSAgICAgICAgc3RyZWFtX29w
dGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5pbnNlcnQoCi0gICAgICAgICAgICAwLCBfSW5j
b21pbmdGaWx0ZXIoc2VsZikpCi0KLSAgICBkZWYgc2V0X3Jlc3BvbnNlX3dpbmRvd19iaXRzKHNl
bGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgPSB2YWx1ZQot
Ci0gICAgZGVmIHNldF9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYsIHZhbHVlKToK
LSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlciA9IHZhbHVlCi0KLSAg
ICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX2JmaW5hbCA9IHZh
bHVlCi0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAg
ICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9IFRydWUKLQotICAgIGRlZiBkaXNhYmxlX291dGdv
aW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9
IEZhbHNlCi0KLSAgICBkZWYgX291dGdvaW5nX2ZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAg
ICIiIlRyYW5zZm9ybSBvdXRnb2luZyBmcmFtZXMuIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbmx5
IGJ5Ci0gICAgICAgIGFuIF9PdXRnb2luZ0ZpbHRlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1lLnBheWxvYWQpCi0gICAg
ICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxf
Ynl0ZXMoCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplKQotCi0gICAgICAg
IGlmIChub3Qgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgb3IKLSAgICAgICAgICAgIGNvbW1vbi5p
c19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpKToKLSAgICAgICAgICAgIHNlbGYuX291dGdv
aW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAotICAgICAgICAg
ICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBmcmFtZS5wYXlsb2FkID0gc2VsZi5fcmZjMTk3OV9kZWZsYXRlci5maWx0ZXIoCi0g
ICAgICAgICAgICBmcmFtZS5wYXlsb2FkLCBiZmluYWw9c2VsZi5fYmZpbmFsKQotICAgICAgICBm
cmFtZS5yc3YxID0gMQotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFt
ZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0
b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3Np
emUpCi0KLSAgICAgICAgX2xvZ19vdXRnb2luZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9z
aXplLAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAg
ICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2Vf
cmF0aW8oKSkKLQotICAgIGRlZiBfaW5jb21pbmdfZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAg
ICAgIiIiVHJhbnNmb3JtIGluY29taW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIG9u
bHkgYnkKLSAgICAgICAgYW4gX0luY29taW5nRmlsdGVyIGluc3RhbmNlLgotICAgICAgICAiIiIK
LQotICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5bG9hZCkKLSAg
ICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRf
Ynl0ZXMoCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAg
IGlmIGZyYW1lLnJzdjEgIT0gMSBvciBjb21tb24uaXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bj
b2RlKToKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRv
ci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkX3BheWxv
YWRfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZyYW1lLnBheWxvYWQgPSBz
ZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihmcmFtZS5wYXlsb2FkKQotICAgICAgICBmcmFt
ZS5yc3YxID0gMAotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5w
YXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3Iu
YWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6
ZSkKLQotICAgICAgICBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3Np
emUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAg
ICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9y
YXRpbygpKQotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uREVGTEFURV9GUkFNRV9F
WFRFTlNJT05dID0gKAotICAgIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikKLV9jb21w
cmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTl0gPSAoCi0gICAgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQot
X2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9uLlhfV0VCS0lUX0RFRkxB
VEVfRlJBTUVfRVhURU5TSU9OKQotCi0KLWRlZiBfcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKGRh
dGEpOgotICAgICIiIlBhcnNlcyB0aGUgdmFsdWUgb2YgIm1ldGhvZCIgZXh0ZW5zaW9uIHBhcmFt
ZXRlci4iIiIKLQotICAgIHJldHVybiBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucyhkYXRhKQotCi0K
LWRlZiBfY3JlYXRlX2FjY2VwdGVkX21ldGhvZF9kZXNjKG1ldGhvZF9uYW1lLCBtZXRob2RfcGFy
YW1zKToKLSAgICAiIiJDcmVhdGVzIGFjY2VwdGVkLW1ldGhvZC1kZXNjIGZyb20gZ2l2ZW4gbWV0
aG9kIG5hbWUgYW5kIHBhcmFtZXRlcnMiIiIKLQotICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIobWV0aG9kX25hbWUpCi0gICAgZm9yIG5hbWUsIHZhbHVlIGluIG1ldGhv
ZF9wYXJhbXM6Ci0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKG5hbWUsIHZhbHVlKQot
ICAgIHJldHVybiBjb21tb24uZm9ybWF0X2V4dGVuc2lvbihleHRlbnNpb24pCi0KLQotY2xhc3Mg
Q29tcHJlc3Npb25FeHRlbnNpb25Qcm9jZXNzb3JCYXNlKEV4dGVuc2lvblByb2Nlc3NvckludGVy
ZmFjZSk6Ci0gICAgIiIiQmFzZSBjbGFzcyBmb3IgcGVyZnJhbWUtY29tcHJlc3MgYW5kIHBlcm1l
c3NhZ2UtY29tcHJlc3MgZXh0ZW5zaW9uLiIiIgotCi0gICAgX01FVEhPRF9QQVJBTSA9ICdtZXRo
b2QnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgIEV4dGVuc2lv
blByb2Nlc3NvckludGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0KQotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fY29t
cHJlc3Npb25fbWV0aG9kX25hbWUgPSBOb25lCi0gICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3By
b2Nlc3NvciA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2sg
PSBOb25lCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICcnCi0KLSAgICBk
ZWYgX2xvb2t1cF9jb21wcmVzc2lvbl9wcm9jZXNzb3Ioc2VsZiwgbWV0aG9kX2Rlc2MpOgotICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIF9nZXRfY29tcHJlc3Npb25fcHJvY2Vzc29yX3Jl
c3BvbnNlKHNlbGYpOgotICAgICAgICAiIiJMb29rcyB1cCB0aGUgY29tcHJlc3Npb24gcHJvY2Vz
c29yIGJhc2VkIG9uIHRoZSBzZWxmLl9yZXF1ZXN0IGFuZAotICAgICAgICAgICByZXR1cm5zIHRo
ZSBjb21wcmVzc2lvbiBwcm9jZXNzb3IncyByZXNwb25zZS4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgbWV0aG9kX2xpc3QgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoc2VsZi5f
TUVUSE9EX1BBUkFNKQotICAgICAgICBpZiBtZXRob2RfbGlzdCBpcyBOb25lOgotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAgbWV0aG9kcyA9IF9wYXJzZV9jb21wcmVzc2lvbl9tZXRo
b2QobWV0aG9kX2xpc3QpCi0gICAgICAgIGlmIG1ldGhvZHMgaXMgTm9uZToKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIGNvbXJlc3Npb25fcHJvY2Vzc29yID0gTm9uZQotICAgICAg
ICAjIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRyaWVzIG9ubHkgdGhlIGZpcnN0IG1ldGhv
ZCB0aGF0IG1hdGNoZXMKLSAgICAgICAgIyBzdXBwb3J0ZWQgYWxnb3JpdGhtLiBGb2xsb3dpbmcg
bWV0aG9kcyBhcmVuJ3QgdHJpZWQgZXZlbiBpZiB0aGUKLSAgICAgICAgIyBmaXJzdCBvbmUgaXMg
cmVqZWN0ZWQuCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IE5lZWQgdG8gY2xhcmlmeSB0aGlzIGJl
aGF2aW9yLgotICAgICAgICBmb3IgbWV0aG9kX2Rlc2MgaW4gbWV0aG9kczoKLSAgICAgICAgICAg
IGNvbXByZXNzaW9uX3Byb2Nlc3NvciA9IHNlbGYuX2xvb2t1cF9jb21wcmVzc2lvbl9wcm9jZXNz
b3IoCi0gICAgICAgICAgICAgICAgbWV0aG9kX2Rlc2MpCi0gICAgICAgICAgICBpZiBjb21wcmVz
c2lvbl9wcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29tcHJl
c3Npb25fbWV0aG9kX25hbWUgPSBtZXRob2RfZGVzYy5uYW1lKCkKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICBpZiBjb21wcmVzc2lvbl9wcm9jZXNzb3IgaXMgTm9uZToKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29y
X2hvb2s6Ci0gICAgICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vayhjb21w
cmVzc2lvbl9wcm9jZXNzb3IpCi0KLSAgICAgICAgcHJvY2Vzc29yX3Jlc3BvbnNlID0gY29tcHJl
c3Npb25fcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBpZiBwcm9j
ZXNzb3JfcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAg
IHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3NvciA9IGNvbXByZXNzaW9uX3Byb2Nlc3NvcgotICAg
ICAgICByZXR1cm4gcHJvY2Vzc29yX3Jlc3BvbnNlCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25f
cmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIHByb2Nlc3Nvcl9yZXNwb25zZSA9IHNl
bGYuX2dldF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfcmVzcG9uc2UoKQotICAgICAgICBpZiBwcm9j
ZXNzb3JfcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAg
ICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFt
ZSgpKQotICAgICAgICBhY2NlcHRlZF9tZXRob2RfZGVzYyA9IF9jcmVhdGVfYWNjZXB0ZWRfbWV0
aG9kX2Rlc2MoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbXBy
ZXNzaW9uX21ldGhvZF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzb3JfcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLSAgICAgICAgcmVzcG9uc2UuYWRk
X3BhcmFtZXRlcihzZWxmLl9NRVRIT0RfUEFSQU0sIGFjY2VwdGVkX21ldGhvZF9kZXNjKQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRW5hYmxlICVzIGV4dGVuc2lv
biAobWV0aG9kOiAlcyknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwgc2Vs
Zi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUpKQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQot
ICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlv
bnMpOgotICAgICAgICBpZiBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3IgaXMgTm9uZToKLSAg
ICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3Iuc2V0
dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYgc2V0X2NvbXByZXNz
aW9uX3Byb2Nlc3Nvcl9ob29rKHNlbGYsIGhvb2spOgotICAgICAgICBzZWxmLl9jb21wcmVzc2lv
bl9wcm9jZXNzb3JfaG9vayA9IGhvb2sKLQotICAgIGRlZiBnZXRfY29tcHJlc3Npb25fcHJvY2Vz
c29yKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fY29tcHJlc3Npb25fcHJvY2Vzc29yCi0K
LQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJv
Y2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uIHBy
b2Nlc3Nvci4gSXQncyBhbHNvIHVzZWQgZm9yCi0gICAgcGVybWVzc2FnZS1jb21wcmVzcyBleHRl
bnNpb24gd2hlbiB0aGUgZGVmbGF0ZSBtZXRob2QgaXMgY2hvc2VuLgotCi0gICAgU3BlY2lmaWNh
dGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktcGVy
bWVzc2FnZS1jb21wcmVzc2lvbi0wOAotICAgICIiIgotCi0gICAgX1NFUlZFUl9NQVhfV0lORE9X
X0JJVFNfUEFSQU0gPSAnc2VydmVyX21heF93aW5kb3dfYml0cycKLSAgICBfU0VSVkVSX05PX0NP
TlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInCi0gICAg
X0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0gPSAnY2xpZW50X21heF93aW5kb3dfYml0cycK
LSAgICBfQ0xJRU5UX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAnY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXInCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgZHJhZnQwOD1U
cnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRyYWZ0MDg6IEZvbGxvdyB0aGUg
Y29uc3RyYWludHMgb24gdGhlIHBhcmFtZXRlcnMgdGhhdCB3ZXJlIG5vdAotICAgICAgICAgICAg
ICAgIHNwZWNpZmllZCBmb3IgcGVybWVzc2FnZS1jb21wcmVzcyBidXQgYXJlIHNwZWNpZmllZCBm
b3IKLSAgICAgICAgICAgICAgICBwZXJtZXNzYWdlLWRlZmxhdGUgYXMgb24KLSAgICAgICAgICAg
ICAgICBkcmFmdC1pZXRmLWh5YmktcGVybWVzc2FnZS1jb21wcmVzc2lvbi0wOC4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYs
IHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0g
Tm9uZQotICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCi0K
LSAgICAgICAgc2VsZi5fZHJhZnQwOCA9IGRyYWZ0MDgKLQotICAgIGRlZiBuYW1lKHNlbGYpOgot
ICAgICAgICByZXR1cm4gJ2RlZmxhdGUnCi0KLSAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9u
c2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2RyYWZ0MDg6Ci0gICAgICAgICAg
ICBmb3IgbmFtZSBpbiBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfbmFtZXMoKToKLSAgICAg
ICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBbc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19Q
QVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NP
TlRFWFRfVEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU1dOgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1Vua25vd24gcGFyYW1ldGVyOiAlcicsIG5hbWUpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIEFu
eSB1bmtub3duIHBhcmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4KLSAgICAgICAgICAgIHBh
c3MKLQotICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBpZiBz
ZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19Q
QVJBTSk6Ci0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gc2VsZi5fcmVxdWVz
dC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJf
TUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBfcGFyc2Vfd2luZG93X2JpdHMoCi0gICAgICAgICAg
ICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMpCi0gICAgICAgICAgICBleGNlcHQgVmFs
dWVFcnJvciwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0JhZCAlcyBw
YXJhbWV0ZXI6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
U0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAg
ICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pCi0gICAgICAg
IGlmIChzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciBhbmQKLSAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJf
Tk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMgbm90IE5vbmUpOgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCclcyBwYXJhbWV0ZXIgbXVzdCBub3QgaGF2ZSBhIHZhbHVlOiAlcics
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX25v
X2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICMg
Y2xpZW50X21heF93aW5kb3dfYml0cyBmcm9tIGEgY2xpZW50IGluZGljYXRlcyB3aGV0aGVyIHRo
ZSBjbGllbnQgY2FuCi0gICAgICAgICMgYWNjZXB0IGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJv
bSBhIHNlcnZlciBvciBub3QuCi0gICAgICAgIGNsaWVudF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fQ0xJRU5U
X01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgaWYgKHNlbGYuX2RyYWZ0MDggYW5kCi0g
ICAgICAgICAgICBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyBhbmQKLSAgICAgICAgICAg
IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBzZWxm
Ll9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKSBpcyBub3QgTm9uZSk6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5vdCBoYXZlIGEgdmFsdWUg
aW4gYSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudFwncyBvcGVuaW5n
IGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NM
SUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMpCi0gICAgICAgICAgICByZXR1cm4gTm9u
ZQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0
ZXIoCi0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBzZXJ2ZXJfbm9fY29udGV4
dF90YWtlb3ZlcikKLQotICAgICAgICAjIE5vdGUgdGhhdCB3ZSBwcmVwYXJlIGZvciBpbmNvbWlu
ZyBtZXNzYWdlcyBjb21wcmVzc2VkIHdpdGggd2luZG93Ci0gICAgICAgICMgYml0cyB1cHRvIDE1
IHJlZ2FyZGxlc3Mgb2YgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMgdmFsdWUgdG8gYmUKLSAg
ICAgICAgIyBzZW50IHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0
ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2ZyYW1lciA9IF9Q
ZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcigKLSAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2Jp
dHMsIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0
X2JmaW5hbChGYWxzZSkKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2lu
Z19lbmFibGVkKFRydWUpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQotCi0gICAgICAgIGlmIHNlcnZlcl9tYXhfd2lu
ZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVy
KAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0g
ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9tYXhfd2luZG93X2JpdHMpKQotCi0gICAgICAgIGlm
IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3Bh
cmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZF
Ul9QQVJBTSwgTm9uZSkKLQotICAgICAgICBpZiBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93
aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlmIHNlbGYuX2RyYWZ0MDggYW5k
IG5vdCBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0czoKLSAgICAgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1Byb2Nlc3NvciBpcyBjb25maWd1cmVkIHRvIHVzZSAlcyBidXQgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGNsaWVudCBjYW5ub3QgYWNj
ZXB0IGl0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5U
X01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAg
ICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9D
TElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAgICAgIHN0cihzZWxmLl9w
cmVmZXJyZWRfY2xpZW50X21heF93aW5kb3dfYml0cykpCi0KLSAgICAgICAgaWYgc2VsZi5fY2xp
ZW50X25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1l
dGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BB
UkFNLCBOb25lKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdF
bmFibGUgJXMgZXh0ZW5zaW9uICgnCi0gICAgICAgICAgICAncmVxdWVzdDogc2VydmVyX21heF93
aW5kb3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVy
PSVyLCAnCi0gICAgICAgICAgICAncmVzcG9uc2U6IGNsaWVudF9tYXhfd2luZG93X2JpdHM9JXM7
ICcKLSAgICAgICAgICAgICdjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKLSAgICAg
ICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dp
bmRvd19iaXRzLAotICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyLAotICAg
ICAgICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzLAotICAgICAg
ICAgICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKSkKLQotICAgICAgICByZXR1
cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2Vs
Ziwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBzZWxmLl9mcmFtZXIuc2V0dXBfc3RyZWFtX29w
dGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYgc2V0X2NsaWVudF9tYXhfd2luZG93X2Jp
dHMoc2VsZiwgdmFsdWUpOgotICAgICAgICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQs
IHRoaXMgY2xhc3MgYWRkcyB0aGUKLSAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRl
bnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hha2UgcmVzcG9uc2UsCi0gICAgICAgIGJ1dCBk
b2Vzbid0IHJlZHVjZSB0aGUgTFo3NyBzbGlkaW5nIHdpbmRvdyBzaXplIG9mIGl0cyBpbmZsYXRl
ci4KLSAgICAgICAgSS5lLiwgeW91IGNhbiB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1w
bGVtZW50YXRpb24gYnV0IGNhbm5vdAotICAgICAgICByZWR1Y2UgbWVtb3J5IHVzYWdlIG9mIHRo
aXMgY2xhc3MuCi0KLSAgICAgICAgSWYgdGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkIHdpdGgg
VHJ1ZSBhbmQgYW4gb2ZmZXIgd2l0aG91dCB0aGUKLSAgICAgICAgY2xpZW50X21heF93aW5kb3df
Yml0cyBleHRlbnNpb24gcGFyYW1ldGVyIGlzIHJlY2VpdmVkLAotICAgICAgICAtIChXaGVuIHBy
b2Nlc3NpbmcgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29y
Ci0gICAgICAgICAgZGVjbGluZXMgdGhlIHJlcXVlc3QuCi0gICAgICAgIC0gKFdoZW4gcHJvY2Vz
c2luZyB0aGUgcGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCi0g
ICAgICAgICAgYWNjZXB0cyB0aGUgcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2Vs
Zi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSB2YWx1ZQotCi0gICAgZGVmIHNl
dF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmLCB2YWx1ZSk6Ci0gICAgICAgICIiIklm
IHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQotICAgICAgICBj
bGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5k
c2hha2UKLSAgICAgICAgcmVzcG9uc2UsIGJ1dCBkb2Vzbid0IHJlc2V0IGluZmxhdGVyIGZvciBl
YWNoIG1lc3NhZ2UuIEkuZS4sIHlvdSBjYW4KLSAgICAgICAgdXNlIHRoaXMgZm9yIHRlc3Rpbmcg
Y2xpZW50IGltcGxlbWVudGF0aW9uIGJ1dCBjYW5ub3QgcmVkdWNlIG1lbW9yeQotICAgICAgICB1
c2FnZSBvZiB0aGlzIGNsYXNzLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9jbGllbnRf
bm9fY29udGV4dF90YWtlb3ZlciA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2
YWx1ZSk6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZpbmFsKHZhbHVlKQotCi0gICAgZGVm
IGVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fZnJhbWVy
LnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0KLSAgICBkZWYgZGlzYWJsZV9v
dXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21w
cmVzc19vdXRnb2luZ19lbmFibGVkKEZhbHNlKQotCi0KLWNsYXNzIF9QZXJNZXNzYWdlRGVmbGF0
ZUZyYW1lcihvYmplY3QpOgotICAgICIiIkEgZnJhbWVyIGZvciBleHRlbnNpb25zIHdpdGggcGVy
LW1lc3NhZ2UgREVGTEFURSBmZWF0dXJlLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRl
ZmxhdGVfbWF4X3dpbmRvd19iaXRzLCBkZWZsYXRlX25vX2NvbnRleHRfdGFrZW92ZXIpOgotICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAg
ICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAotICAgICAg
ICAgICAgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3Zl
cikKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxh
dGVyKCkKLQotICAgICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX2Nv
bXByZXNzX291dGdvaW5nX2VuYWJsZWQgPSBGYWxzZQotCi0gICAgICAgICMgVHJ1ZSBpZiBhIG1l
c3NhZ2UgaXMgZnJhZ21lbnRlZCBhbmQgY29tcHJlc3Npb24gaXMgb25nb2luZy4KLSAgICAgICAg
c2VsZi5fY29tcHJlc3Nfb25nb2luZyA9IEZhbHNlCi0KLSAgICAgICAgIyBDYWxjdWxhdGVzCi0g
ICAgICAgICMgICAgIChUb3RhbCBvdXRnb2luZyBieXRlcyBzdXBwbGllZCB0byB0aGlzIGZpbHRl
cikgLwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0d29yayBhZnRl
ciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9y
YXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgICAgICMg
Q2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQgZnJvbSB0aGUg
bmV0d29yaykgLwotICAgICAgICAjICAgICAoVG90YWwgaW5jb21pbmcgYnl0ZXMgb2J0YWluZWQg
YWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJh
Z2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKLQotICAgIGRl
ZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUK
LQotICAgIGRlZiBzZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChzZWxmLCB2YWx1ZSk6Ci0g
ICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQgPSB2YWx1ZQotCi0gICAgZGVm
IF9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZGVjb21wcmVzcyk6Ci0g
ICAgICAgIGlmIG5vdCBkZWNvbXByZXNzOgotICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQot
ICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2Vs
Zi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0g
ICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotCi0gICAgICAgIG1lc3NhZ2Ug
PSBzZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihtZXNzYWdlKQotCi0gICAgICAgIGZpbHRl
cmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19h
dmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAg
ICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX2luY29taW5nX2NvbXBy
ZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAg
ICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5
bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgICAgIHJldHVybiBtZXNzYWdl
Ci0KLSAgICBkZWYgX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQs
IGJpbmFyeSk6Ci0gICAgICAgIGlmIG5vdCBiaW5hcnk6Ci0gICAgICAgICAgICBtZXNzYWdlID0g
bWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nf
b3V0Z29pbmdfZW5hYmxlZDoKLSAgICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0KLSAgICAgICAg
b3JpZ2luYWxfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX291dGdv
aW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAg
ICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3Jm
YzE5NzlfZGVmbGF0ZXIuZmlsdGVyKAotICAgICAgICAgICAgbWVzc2FnZSwgZW5kPWVuZCwgYmZp
bmFsPXNlbGYuX2JmaW5hbCkKLQotICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4o
bWVzc2FnZSkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9y
LmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCi0K
LSAgICAgICAgX2xvZ19vdXRnb2luZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplLAot
ICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICBz
ZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8o
KSkKLQotICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb25nb2luZzoKLSAgICAgICAgICAg
IHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5zZXRfY29tcHJlc3Npb25fYml0KCkKLSAgICAg
ICAgc2VsZi5fY29tcHJlc3Nfb25nb2luZyA9IG5vdCBlbmQKLSAgICAgICAgcmV0dXJuIG1lc3Nh
Z2UKLQotICAgIGRlZiBfcHJvY2Vzc19pbmNvbWluZ19mcmFtZShzZWxmLCBmcmFtZSk6Ci0gICAg
ICAgIGlmIGZyYW1lLnJzdjEgPT0gMSBhbmQgbm90IGNvbW1vbi5pc19jb250cm9sX29wY29kZShm
cmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIu
ZGVjb21wcmVzc19uZXh0X21lc3NhZ2UoKQotICAgICAgICAgICAgZnJhbWUucnN2MSA9IDAKLQot
ICAgIGRlZiBfcHJvY2Vzc19vdXRnb2luZ19mcmFtZShzZWxmLCBmcmFtZSwgY29tcHJlc3Npb25f
Yml0KToKLSAgICAgICAgaWYgKG5vdCBjb21wcmVzc2lvbl9iaXQgb3IKLSAgICAgICAgICAgIGNv
bW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpKToKLSAgICAgICAgICAgIHJldHVy
bgotCi0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlv
bnMoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJDcmVhdGVzIGZpbHRlcnMgYW5k
IHNldHMgdGhlbSB0byB0aGUgU3RyZWFtT3B0aW9ucy4iIiIKLQotICAgICAgICBjbGFzcyBfT3V0
Z29pbmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0g
ICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFs
c2UpOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX3Byb2Nlc3Nfb3V0Z29p
bmdfbWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0K
LSAgICAgICAgY2xhc3MgX0luY29taW5nTWVzc2FnZUZpbHRlcihvYmplY3QpOgotCi0gICAgICAg
ICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9w
YXJlbnQgPSBwYXJlbnQKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVz
c2FnZSA9IEZhbHNlCi0KLSAgICAgICAgICAgIGRlZiBkZWNvbXByZXNzX25leHRfbWVzc2FnZShz
ZWxmKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IFRy
dWUKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgICAg
ICAgICBtZXNzYWdlID0gc2VsZi5fcGFyZW50Ll9wcm9jZXNzX2luY29taW5nX21lc3NhZ2UoCi0g
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdl
KQotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UK
LSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgICAgIHNlbGYuX291dGdvaW5n
X21lc3NhZ2VfZmlsdGVyID0gX091dGdvaW5nTWVzc2FnZUZpbHRlcihzZWxmKQotICAgICAgICBz
ZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlciA9IF9JbmNvbWluZ01lc3NhZ2VGaWx0ZXIoc2Vs
ZikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzLmFwcGVu
ZCgKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmlsdGVyKQotICAgICAgICBz
dHJlYW1fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAotICAgICAgICAg
ICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIpCi0KLSAgICAgICAgY2xhc3MgX091dGdv
aW5nRnJhbWVGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCi0KLSAgICAgICAgICAg
IGRlZiBzZXRfY29tcHJlc3Npb25fYml0KHNlbGYpOgotICAgICAgICAgICAgICAgIHNlbGYuX3Nl
dF9jb21wcmVzc2lvbl9iaXQgPSBUcnVlCi0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwg
ZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19m
cmFtZSgKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUsIHNlbGYuX3NldF9jb21wcmVzc2lvbl9i
aXQpCi0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCi0K
LSAgICAgICAgY2xhc3MgX0luY29taW5nRnJhbWVGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFy
ZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAg
ICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19pbmNvbWluZ19mcmFtZShmcmFtZSkK
LQotICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBfT3V0Z29pbmdGcmFtZUZp
bHRlcihzZWxmKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBfSW5jb21p
bmdGcmFtZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFt
ZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRl
cikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQo
Ci0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIpCi0KLSAgICAgICAgc3Ry
ZWFtX29wdGlvbnMuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gRmFsc2UKLQotCi1fYXZh
aWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT05dID0g
KAotICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKLSMgVE9ETyh0
eW9zaGlubyk6IFJlb3JnYW5pemUgY2xhc3MgbmFtZXMuCi1fY29tcHJlc3Npb25fZXh0ZW5zaW9u
X25hbWVzLmFwcGVuZCgnZGVmbGF0ZScpCi0KLQotY2xhc3MgUGVyTWVzc2FnZUNvbXByZXNzRXh0
ZW5zaW9uUHJvY2Vzc29yKAotICAgIENvbXByZXNzaW9uRXh0ZW5zaW9uUHJvY2Vzc29yQmFzZSk6
Ci0gICAgIiIicGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24gcHJvY2Vzc29yLgotCi0gICAg
U3BlY2lmaWNhdGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LWh5YmktcGVybWVzc2FnZS1jb21wcmVzc2lvbgotICAgICIiIgotCi0gICAgX0RFRkxBVEVfTUVU
SE9EID0gJ2RlZmxhdGUnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAg
ICAgIENvbXByZXNzaW9uRXh0ZW5zaW9uUHJvY2Vzc29yQmFzZS5fX2luaXRfXyhzZWxmLCByZXF1
ZXN0KQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBjb21tb24uUEVSTUVT
U0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04KLQotICAgIGRlZiBfbG9va3VwX2NvbXByZXNzaW9u
X3Byb2Nlc3NvcihzZWxmLCBtZXRob2RfZGVzYyk6Ci0gICAgICAgIGlmIG1ldGhvZF9kZXNjLm5h
bWUoKSA9PSBzZWxmLl9ERUZMQVRFX01FVEhPRDoKLSAgICAgICAgICAgIHJldHVybiBQZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihtZXRob2RfZGVzYywgRmFsc2UpCi0gICAgICAg
IHJldHVybiBOb25lCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5QRVJNRVNTQUdF
X0NPTVBSRVNTSU9OX0VYVEVOU0lPTl0gPSAoCi0gICAgUGVyTWVzc2FnZUNvbXByZXNzRXh0ZW5z
aW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9u
LlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotCi0KLWNsYXNzIE11eEV4dGVuc2lv
blByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgotICAgICIiIldlYlNvY2tl
dCBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uIHByb2Nlc3Nvci4iIiIKLQotICAgIF9RVU9UQV9QQVJB
TSA9ICdxdW90YScKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAg
RXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAg
ICAgIHNlbGYuX3F1b3RhID0gMAotICAgICAgICBzZWxmLl9leHRlbnNpb25zID0gW10KLQotICAg
IGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gY29tbW9uLk1VWF9FWFRFTlNJT04KLQot
ICAgIGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJv
Y2Vzc29ycyk6Ci0gICAgICAgIGJlZm9yZV9tdXggPSBUcnVlCi0gICAgICAgIGZvciBwcm9jZXNz
b3IgaW4gcHJvY2Vzc29yczoKLSAgICAgICAgICAgIG5hbWUgPSBwcm9jZXNzb3IubmFtZSgpCi0g
ICAgICAgICAgICBpZiBuYW1lID09IHNlbGYubmFtZSgpOgotICAgICAgICAgICAgICAgIGJlZm9y
ZV9tdXggPSBGYWxzZQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBu
b3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICBpZiBiZWZvcmVfbXV4OgotICAgICAgICAgICAgICAgICMgTXV4IGV4dGVuc2lvbiBj
YW5ub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25zCi0gICAgICAgICAgICAgICAgIyB0aGF0IGRl
cGVuZCBvbiBmcmFtZSBib3VuZGFyeSwgZXh0ZW5zaW9uIGRhdGEgZmllbGQsIG9yIGFueQotICAg
ICAgICAgICAgICAgICMgcmVzZXJ2ZWQgYml0cyB3aGljaCBhcmUgYXR0cmlidXRlZCB0byBlYWNo
IGZyYW1lLgotICAgICAgICAgICAgICAgIGlmIChuYW1lID09IGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTiBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09IGNvbW1vbi5YX1dFQktJ
VF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0
X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICMgTXV4IGV4dGVuc2lvbiBzaG91bGQgbm90IGJlIGFwcGxp
ZWQgYmVmb3JlIGFueSBoaXN0b3J5LWJhc2VkCi0gICAgICAgICAgICAgICAgIyBjb21wcmVzc2lv
biBleHRlbnNpb24uCi0gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhf
V0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5h
bWUgPT0gY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OIG9yCi0gICAgICAg
ICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX1BFUk1FU1NBR0VfQ09NUFJFU1NJ
T05fRVhURU5TSU9OKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNl
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UKLSAg
ICAgICAgcXVvdGEgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoc2VsZi5fUVVP
VEFfUEFSQU0pCi0gICAgICAgIGlmIHF1b3RhIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIHF1b3RhID0gaW50KHF1b3RhKQotICAgICAgICAgICAgZXhjZXB0
IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAg
IGlmIHF1b3RhIDwgMCBvciBxdW90YSA+PSAyICoqIDMyOgotICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCi0gICAgICAgICAgICBzZWxmLl9xdW90YSA9IHF1b3RhCi0KLSAgICAgICAgc2VsZi5f
YWN0aXZlID0gVHJ1ZQotICAgICAgICByZXR1cm4gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihj
b21tb24uTVVYX0VYVEVOU0lPTikKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50
ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2V0
X3F1b3RhKHNlbGYsIHF1b3RhKToKLSAgICAgICAgc2VsZi5fcXVvdGEgPSBxdW90YQotCi0gICAg
ZGVmIHF1b3RhKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcXVvdGEKLQotICAgIGRlZiBz
ZXRfZXh0ZW5zaW9ucyhzZWxmLCBleHRlbnNpb25zKToKLSAgICAgICAgc2VsZi5fZXh0ZW5zaW9u
cyA9IGV4dGVuc2lvbnMKLQotICAgIGRlZiBleHRlbnNpb25zKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5fZXh0ZW5zaW9ucwotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24uTVVY
X0VYVEVOU0lPTl0gPSBNdXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1kZWYgZ2V0X2V4dGVuc2lv
bl9wcm9jZXNzb3IoZXh0ZW5zaW9uX3JlcXVlc3QpOgotICAgICIiIkdpdmVuIGFuIEV4dGVuc2lv
blBhcmFtZXRlciByZXByZXNlbnRpbmcgYW4gZXh0ZW5zaW9uIG9mZmVyIHJlY2VpdmVkCi0gICAg
ZnJvbSBhIGNsaWVudCwgY29uZmlndXJlcyBhbmQgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiB0aGUg
Y29ycmVzcG9uZGluZwotICAgIGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3MuCi0gICAgIiIiCi0K
LSAgICBwcm9jZXNzb3JfY2xhc3MgPSBfYXZhaWxhYmxlX3Byb2Nlc3NvcnMuZ2V0KGV4dGVuc2lv
bl9yZXF1ZXN0Lm5hbWUoKSkKLSAgICBpZiBwcm9jZXNzb3JfY2xhc3MgaXMgTm9uZToKLSAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICByZXR1cm4gcHJvY2Vzc29yX2NsYXNzKGV4dGVuc2lvbl9yZXF1
ZXN0KQotCi0KLWRlZiBpc19jb21wcmVzc2lvbl9leHRlbnNpb24oZXh0ZW5zaW9uX25hbWUpOgot
ICAgIHJldHVybiBleHRlbnNpb25fbmFtZSBpbiBfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVz
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvZmFzdF9tYXNraW5nLmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNr
aW5nLmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYWFkMjdmNTNjNDZiZTJhNzFj
NzA0YzcwOGZiYjNmNDJmMWEzZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCisrKyAv
ZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMu
Ci0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotLy8gbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0vLyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0vLyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0vLyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotLy8gTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0v
LyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSVtb2R1bGUgZmFzdF9tYXNraW5nCi0KLSVpbmNsdWRlICJjc3Ry
aW5nLmkiCi0KLSV7Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLQotI2lmZGVmIF9fU1NFMl9fCi0jaW5j
bHVkZSA8ZW1taW50cmluLmg+Ci0jZW5kaWYKLSV9Ci0KLSVhcHBseSAoY2hhciAqU1RSSU5HLCBp
bnQgTEVOR1RIKSB7Ci0gICAgKGNvbnN0IGNoYXIqIHBheWxvYWQsIGludCBwYXlsb2FkX2xlbmd0
aCksCi0gICAgKGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19rZXlfbGVuZ3Ro
KSB9OwotJWNzdHJpbmdfb3V0cHV0X2FsbG9jYXRlX3NpemUoCi0gICAgY2hhcioqIHJlc3VsdCwg
aW50KiByZXN1bHRfbGVuZ3RoLCBkZWxldGUgW10gKiQxKTsKLQotJWlubGluZSAlewotCi12b2lk
IG1hc2soCi0gICAgY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBheWxvYWRfbGVuZ3RoLAotICAg
IGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19rZXlfbGVuZ3RoLAotICAgIGlu
dCBtYXNraW5nX2tleV9pbmRleCwKLSAgICBjaGFyKiogcmVzdWx0LCBpbnQqIHJlc3VsdF9sZW5n
dGgpIHsKLSAgKnJlc3VsdCA9IG5ldyBjaGFyW3BheWxvYWRfbGVuZ3RoXTsKLSAgKnJlc3VsdF9s
ZW5ndGggPSBwYXlsb2FkX2xlbmd0aDsKLSAgbWVtY3B5KCpyZXN1bHQsIHBheWxvYWQsIHBheWxv
YWRfbGVuZ3RoKTsKLQotICBjaGFyKiBjdXJzb3IgPSAqcmVzdWx0OwotICBjaGFyKiBjdXJzb3Jf
ZW5kID0gKnJlc3VsdCArICpyZXN1bHRfbGVuZ3RoOwotCi0jaWZkZWYgX19TU0UyX18KLSAgd2hp
bGUgKChjdXJzb3IgPCBjdXJzb3JfZW5kKSAmJgotICAgICAgICAgKHJlaW50ZXJwcmV0X2Nhc3Q8
c2l6ZV90PihjdXJzb3IpICYgMHhmKSkgewotICAgICpjdXJzb3IgXj0gbWFza2luZ19rZXlbbWFz
a2luZ19rZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1hc2tpbmdfa2V5X2luZGV4ID0g
KG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5ndGg7Ci0gIH0KLSAgaWYg
KGN1cnNvciA9PSBjdXJzb3JfZW5kKSB7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgY29uc3QgaW50
IGtCbG9ja1NpemUgPSAxNjsKLSAgX19tMTI4aSBtYXNraW5nX2tleV9ibG9jazsKLSAgZm9yIChp
bnQgaSA9IDA7IGkgPCBrQmxvY2tTaXplOyArK2kpIHsKLSAgICAqKHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KCZtYXNraW5nX2tleV9ibG9jaykgKyBpKSA9Ci0gICAgICAgIG1hc2tpbmdfa2V5W21h
c2tpbmdfa2V5X2luZGV4XTsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9p
bmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci0KLSAgd2hpbGUgKGN1cnNvciAr
IGtCbG9ja1NpemUgPD0gY3Vyc29yX2VuZCkgewotICAgIF9fbTEyOGkgcGF5bG9hZF9ibG9jayA9
Ci0gICAgICAgIF9tbV9sb2FkX3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4aSo+KGN1cnNv
cikpOwotICAgIF9tbV9zdHJlYW1fc2kxMjgocmVpbnRlcnByZXRfY2FzdDxfX20xMjhpKj4oY3Vy
c29yKSwKLSAgICAgICAgICAgICAgICAgICAgIF9tbV94b3Jfc2kxMjgocGF5bG9hZF9ibG9jaywg
bWFza2luZ19rZXlfYmxvY2spKTsKLSAgICBjdXJzb3IgKz0ga0Jsb2NrU2l6ZTsKLSAgfQotI2Vu
ZGlmCi0KLSAgd2hpbGUgKGN1cnNvciA8IGN1cnNvcl9lbmQpIHsKLSAgICAqY3Vyc29yIF49IG1h
c2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICArK2N1cnNvcjsKLSAgICBtYXNraW5n
X2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3Ro
OwotICB9Ci19Ci0KLSV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFu
ZHNoYWtlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9f
X2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk0ZjZiMzk1YWUyM2Iz
YTEzNjQxY2Q0YjkwNGY1OTM1ZDFmYTFmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5p
dF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEs
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLSIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuIFRoaXMgY2xhc3Mg
dHJ5IHRvIGFwcGx5IGF2YWlsYWJsZQotb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29ycyBmb3Ig
ZWFjaCBwcm90b2NvbCB2ZXJzaW9uIHVudGlsIGEgY29ubmVjdGlvbiBpcwotc3VjY2Vzc2Z1bGx5
IGVzdGFibGlzaGVkLgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9y
dCBoeWJpMDAKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQotIyBF
eHBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgSGFuZHNoYWtlRXhjZXB0aW9uLCBhbmQgVmVy
c2lvbkV4Y2VwdGlvbgotIyBzeW1ib2wgZnJvbSB0aGlzIG1vZHVsZS4KLWZyb20gbW9kX3B5d2Vi
c29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4
Y2VwdGlvbgotCi0KLV9MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1k
ZWYgZG9faGFuZHNoYWtlKHJlcXVlc3QsIGRpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1GYWxzZSwg
c3RyaWN0PUZhbHNlKToKLSAgICAiIiJQZXJmb3JtcyBXZWJTb2NrZXQgaGFuZHNoYWtlLgotCi0g
ICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICAgICBk
aXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgYWxs
b3dEcmFmdDc1OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLSAgICAgICAgc3RyaWN0OiBv
YnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLQotICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0
cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKLSAgICBoYW5kc2hha2Uu
Ci0gICAgIiIiCi0KLSAgICBfTE9HR0VSLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hh
a2UgcmVzb3VyY2U6ICVyJywgcmVxdWVzdC51cmkpCi0gICAgIyBUbyBwcmludCBtaW1ldG9vbHMu
TWVzc2FnZSBhcyBlc2NhcGVkIG9uZS1saW5lIHN0cmluZywgd2UgY29udmVydHMKLSAgICAjIGhl
YWRlcnNfaW4gdG8gZGljdCBvYmplY3QuIFdpdGhvdXQgY29udmVyc2lvbiwgaWYgd2UgdXNlICVy
LCBpdCBqdXN0Ci0gICAgIyBwcmludHMgdGhlIHR5cGUgYW5kIGFkZHJlc3MsIGFuZCBpZiB3ZSB1
c2UgJXMsIGl0IHByaW50cyB0aGUgb3JpZ2luYWwKLSAgICAjIGhlYWRlciBzdHJpbmcgYXMgbXVs
dGlwbGUgbGluZXMuCi0gICAgIwotICAgICMgQm90aCBtaW1ldG9vbHMuTWVzc2FnZSBhbmQgTXBU
YWJsZV9UeXBlIG9mIG1vZF9weXRob24gY2FuIGJlCi0gICAgIyBjb252ZXJ0ZWQgdG8gZGljdC4K
LSAgICAjCi0gICAgIyBtaW1ldG9vbHMuTWVzc2FnZS5fX3N0cl9fIHJldHVybnMgdGhlIG9yaWdp
bmFsIGhlYWRlciBzdHJpbmcuCi0gICAgIyBkaWN0KG1pbWV0b29scy5NZXNzYWdlIG9iamVjdCkg
cmV0dXJucyB0aGUgbWFwIGZyb20gaGVhZGVyIG5hbWVzIHRvCi0gICAgIyBoZWFkZXIgdmFsdWVz
LiBXaGlsZSBNcFRhYmxlX1R5cGUgZG9lc24ndCBoYXZlIHN1Y2ggX19zdHJfXyBidXQganVzdAot
ICAgICMgX19yZXByX18gd2hpY2ggZm9ybWF0cyBpdHNlbGYgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5
IG9iamVjdC4KLSAgICBfTE9HR0VSLmRlYnVnKAotICAgICAgICAnQ2xpZW50XCdzIG9wZW5pbmcg
aGFuZHNoYWtlIGhlYWRlcnM6ICVyJywgZGljdChyZXF1ZXN0LmhlYWRlcnNfaW4pKQotCi0gICAg
aGFuZHNoYWtlcnMgPSBbXQotICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKLSAgICAgICAgKCdSRkMg
NjQ1NScsIGh5YmkuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0gICAgaGFuZHNo
YWtlcnMuYXBwZW5kKAotICAgICAgICAoJ0h5QmkgMDAnLCBoeWJpMDAuSGFuZHNoYWtlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKSkpCi0KLSAgICBmb3IgbmFtZSwgaGFuZHNoYWtlciBpbiBoYW5kc2hh
a2VyczoKLSAgICAgICAgX0xPR0dFUi5kZWJ1ZygnVHJ5aW5nIHByb3RvY29sIHZlcnNpb24gJXMn
LCBuYW1lKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgICAgICBfTE9HR0VSLmluZm8oJ0VzdGFibGlzaGVkICglcyBwcm90b2NvbCkn
LCBuYW1lKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNl
cHRpb24sIGU6Ci0gICAgICAgICAgICBfTE9HR0VSLmRlYnVnKAotICAgICAgICAgICAgICAgICdG
YWlsZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5kc2hha2UgYXMgJXMgcHJvdG9jb2w6ICVyJywK
LSAgICAgICAgICAgICAgICBuYW1lLCBlKQotICAgICAgICAgICAgaWYgZS5zdGF0dXM6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UgZQotICAgICAgICBleGNlcHQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlv
biwgZToKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9u
LCBlOgotICAgICAgICAgICAgcmFpc2UKLQotICAgICMgVE9ETyh0b3lvc2hpbSk6IEFkZCBhIHRl
c3QgdG8gY292ZXIgdGhlIGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwuCi0gICAgcmFpc2UgSGFu
ZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFu
ZHNoYWtlIGZvciBhbGwgYXZhaWxhYmxlIHByb3RvY29scycsCi0gICAgICAgIHN0YXR1cz1jb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzk5M2E1ODRiN2IzZTUyYjYwN2I2NWJmMzhhZmRjYWRkY2EyZmU3OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTgy
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbW1vbiBmdW5jdGlvbnMgYW5kIGV4
Y2VwdGlvbnMgdXNlZCBieSBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UKLXByb2Nlc3NvcnMu
Ci0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotCi0KLWNsYXNzIEFib3J0ZWRCeVVz
ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24gZm9yIGFib3J0aW5nIGEg
Y29ubmVjdGlvbiBpbnRlbnRpb25hbGx5LgotCi0gICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFp
c2VkIGluIGRvX2V4dHJhX2hhbmRzaGFrZSBoYW5kbGVyLCB0aGUgY29ubmVjdGlvbgotICAgIHdp
bGwgYmUgYWJhbmRvbmVkLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyIHdp
bGwgYmUgaW52b2tlZC4KLQotICAgIElmIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBpbiB0cmFu
c2Zlcl9kYXRhX2hhbmRsZXIsIHRoZSBjb25uZWN0aW9uIHdpbGwKLSAgICBiZSBjbG9zZWQgd2l0
aG91dCBjbG9zaW5nIGhhbmRzaGFrZS4gTm8gb3RoZXIgV2ViU29ja2V0IG9yIEhUVFAoUykgaGFu
ZGxlcgotICAgIHdpbGwgYmUgaW52b2tlZC4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1jbGFz
cyBIYW5kc2hha2VFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3
aWxsIGJlIHJhaXNlZCB3aGVuIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcKLSAg
ICBXZWJTb2NrZXQgaW5pdGlhbCBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSwgc3RhdHVzPU5vbmUpOgotICAgICAgICBzdXBlcihIYW5kc2hha2VFeGNl
cHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVz
Ci0KLQotY2xhc3MgVmVyc2lvbkV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhj
ZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYSB2ZXJzaW9uIG9mIGNsaWVudCByZXF1ZXN0IGRv
ZXMgbm90Ci0gICAgbWF0Y2ggd2l0aCB2ZXJzaW9uIHRoZSBzZXJ2ZXIgc3VwcG9ydHMuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3VwcG9ydGVkX3ZlcnNpb25zPScn
KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbjogYSBzdHIgb2JqZWN0IHRvIHNob3cgc3VwcG9y
dGVkIGh5YmkgdmVyc2lvbnMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUuZy4g
JzgsIDEzJykKLSAgICAgICAgIiIiCi0gICAgICAgIHN1cGVyKFZlcnNpb25FeGNlcHRpb24sIHNl
bGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3VwcG9ydGVkX3ZlcnNpb25zID0gc3Vw
cG9ydGVkX3ZlcnNpb25zCi0KLQotZGVmIGdldF9kZWZhdWx0X3BvcnQoaXNfc2VjdXJlKToKLSAg
ICBpZiBpc19zZWN1cmU6Ci0gICAgICAgIHJldHVybiBjb21tb24uREVGQVVMVF9XRUJfU09DS0VU
X1NFQ1VSRV9QT1JUCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dF
Ql9TT0NLRVRfUE9SVAotCi0KLWRlZiB2YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCk6
Ci0gICAgIiIiVmFsaWRhdGUgYSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBm
aWVsZC4KLQotICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEuLCA0LjIuMi4sIGFuZCA0LjMuIG9mIFJG
QyA2NDU1LgotICAgICIiIgotCi0gICAgaWYgbm90IHN1YnByb3RvY29sOgotICAgICAgICByYWlz
ZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgc3VicHJvdG9jb2wgbmFtZTogZW1wdHknKQot
Ci0gICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJlIGVuY29kZWQgSFRUUCB0b2tlbi4KLSAgICBzdGF0
ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKHN1YnByb3RvY29sKQotICAgIHRva2Vu
ID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgIHJlc3QgPSBodHRw
X2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpCi0gICAgIyBJZiB8cmVzdHwgaXMgbm90IE5vbmUsIHxz
dWJwcm90b2NvbHwgaXMgbm90IG9uZSB0b2tlbiBvciBpbnZhbGlkLiBJZgotICAgICMgfHJlc3R8
IGlzIE5vbmUsIHx0b2tlbnwgbXVzdCBub3QgYmUgTm9uZSBiZWNhdXNlIHxzdWJwcm90b2NvbHwg
aXMKLSAgICAjIGNvbmNhdGVuYXRpb24gb2YgfHRva2VufCBhbmQgfHJlc3R8IGFuZCBpcyBub3Qg
Tm9uZS4KLSAgICBpZiByZXN0IGlzIG5vdCBOb25lOgotICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oJ0ludmFsaWQgbm9uLXRva2VuIHN0cmluZyBpbiBzdWJwcm90b2NvbCAnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZTogJXInICUgcmVzdCkKLQotCi1kZWYg
cGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCk6Ci0gICAgZmllbGRzID0gcmVxdWVzdC5oZWFkZXJz
X2luW2NvbW1vbi5IT1NUX0hFQURFUl0uc3BsaXQoJzonLCAxKQotICAgIGlmIGxlbihmaWVsZHMp
ID09IDE6Ci0gICAgICAgIHJldHVybiBmaWVsZHNbMF0sIGdldF9kZWZhdWx0X3BvcnQocmVxdWVz
dC5pc19odHRwcygpKQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGZpZWxkc1swXSwgaW50KGZp
ZWxkc1sxXSkKLSAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgcmFpc2UgSGFuZHNo
YWtlRXhjZXB0aW9uKCdJbnZhbGlkIHBvcnQgbnVtYmVyIGZvcm1hdDogJXInICUgZSkKLQotCi1k
ZWYgZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1ZSk6Ci0gICAgcmV0dXJuICclczogJXNcclxuJyAl
IChuYW1lLCB2YWx1ZSkKLQotCi1kZWYgZ2V0X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5
KToKLSAgICB2YWx1ZSA9IHJlcXVlc3QuaGVhZGVyc19pbi5nZXQoa2V5KQotICAgIGlmIHZhbHVl
IGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSGVhZGVyICVzIGlz
IG5vdCBkZWZpbmVkJyAlIGtleSkKLSAgICByZXR1cm4gdmFsdWUKLQotCi1kZWYgdmFsaWRhdGVf
bWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXksIGV4cGVjdGVkX3ZhbHVlLCBmYWlsX3N0YXR1
cz1Ob25lKToKLSAgICB2YWx1ZSA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKHJlcXVlc3QsIGtleSkK
LQotICAgIGlmIHZhbHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRfdmFsdWUubG93ZXIoKToKLSAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgJ0V4cGVjdGVkICVyIGZv
ciBoZWFkZXIgJXMgYnV0IGZvdW5kICVyIChjYXNlLWluc2Vuc2l0aXZlKScgJQotICAgICAgICAg
ICAgKGV4cGVjdGVkX3ZhbHVlLCBrZXksIHZhbHVlKSwgc3RhdHVzPWZhaWxfc3RhdHVzKQotCi0K
LWRlZiBjaGVja19yZXF1ZXN0X2xpbmUocmVxdWVzdCk6Ci0gICAgIyA1LjEgMS4gVGhlIHRocmVl
IGNoYXJhY3RlciBVVEYtOCBzdHJpbmcgIkdFVCIuCi0gICAgIyA1LjEgMi4gQSBVVEYtOC1lbmNv
ZGVkIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIgKDB4MjAgYnl0ZSkuCi0gICAgaWYgcmVxdWVzdC5t
ZXRob2QgIT0gJ0dFVCc6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTWV0aG9k
IGlzIG5vdCBHRVQ6ICVyJyAlIHJlcXVlc3QubWV0aG9kKQotCi0gICAgaWYgcmVxdWVzdC5wcm90
b2NvbCAhPSAnSFRUUC8xLjEnOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ1Zl
cnNpb24gaXMgbm90IEhUVFAvMS4xOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5wcm90b2NvbCkKLQotCi1kZWYgcGFyc2VfdG9rZW5fbGlzdChkYXRhKToK
LSAgICAiIiJQYXJzZXMgYSBoZWFkZXIgdmFsdWUgd2hpY2ggZm9sbG93cyAxI3Rva2VuIGFuZCBy
ZXR1cm5zIHBhcnNlZCBlbGVtZW50cwotICAgIGFzIGEgbGlzdCBvZiBzdHJpbmdzLgotCi0gICAg
TGVhZGluZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQuCi0gICAgIiIiCi0KLSAgICBzdGF0ZSA9IGh0
dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCi0KLSAgICB0b2tlbl9saXN0ID0gW10K
LQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHRva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5jb25z
dW1lX3Rva2VuKHN0YXRlKQotICAgICAgICBpZiB0b2tlbiBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHRva2VuX2xpc3QuYXBwZW5kKHRva2VuKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwu
Y29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBodHRwX2hlYWRlcl91dGlsLnBlZWso
c3RhdGUpIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIG5vdCBodHRw
X2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnLCcpOgotICAgICAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBhIGNvbW1h
IGJ1dCBmb3VuZCAlcicgJSBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpKQotCi0gICAgICAg
IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgIGlmIGxlbih0b2tl
bl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ05vIHZhbGlk
IHRva2VuIGZvdW5kJykKLQotICAgIHJldHVybiB0b2tlbl9saXN0Ci0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5
YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZDEwZWEzNzI4MjlkMDkzZDY2ZTZhYzYwYWNjY2Q5
YzFjYWVmYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNDIwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92
aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0Ci1w
cm90b2NvbCAoUkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvcmZjNjQ1NQotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dGUgaXMgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2ggbW9kX3B5dGhvbgotIyBkb2N1
bWVudCBzYXlzIHRoYXQgaXQgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uIGhhbmRs
ZXJzLgotIyBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9wdGlvbnMuIEZvciBleGFt
cGxlLCByZXF1ZXN0LndyaXRlIGlzIG5vdAotIyBzdWl0YWJsZSBiZWNhdXNlIGl0IGRvZXNuJ3Qg
YWxsb3cgZGlyZWN0IHJhdyBieXRlcyB3cml0aW5nLgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9y
dCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBnZXRf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBv
cnQgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuX2Jhc2UgaW1wb3J0IGNoZWNrX3JlcXVlc3RfbGluZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCBmb3JtYXRfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9tYW5kYXRvcnlfaGVhZGVyCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBwYXJzZV90b2tlbl9saXN0
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX21h
bmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBv
cnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5f
YmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFt
IGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFt
T3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi0jIFVzZWQgdG8g
dmFsaWRhdGUgdGhlIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LUtleSBoZWFkZXIgc3RyaWN0
bHkuIFJGQyA0NjQ4Ci0jIGRpc2FsbG93cyBub24temVybyBwYWRkaW5nLCBzbyB0aGUgY2hhcmFj
dGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0IGJlIGFueSBvZgotIyBBLCBRLCBnIGFuZCB3LgotX1NF
Q19XRUJTT0NLRVRfS0VZX1JFR0VYID0gcmUuY29tcGlsZSgnXlsrLzAtOUEtWmEtel17MjF9W0FR
Z3ddPT0kJykKLQotIyBEZWZpbmluZyBhbGlhc2VzIGZvciB2YWx1ZXMgdXNlZCBmcmVxdWVudGx5
LgotX1ZFUlNJT05fTEFURVNUID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QKLV9WRVJTSU9O
X0xBVEVTVF9TVFJJTkcgPSBzdHIoX1ZFUlNJT05fTEFURVNUKQotX1NVUFBPUlRFRF9WRVJTSU9O
UyA9IFsKLSAgICBfVkVSU0lPTl9MQVRFU1QsCi1dCi0KLQotZGVmIGNvbXB1dGVfYWNjZXB0KGtl
eSk6Ci0gICAgIiIiQ29tcHV0ZXMgdmFsdWUgZm9yIHRoZSBTZWMtV2ViU29ja2V0LUFjY2VwdCBo
ZWFkZXIgZnJvbSB2YWx1ZSBvZiB0aGUKLSAgICBTZWMtV2ViU29ja2V0LUtleSBoZWFkZXIuCi0g
ICAgIiIiCi0KLSAgICBhY2NlcHRfYmluYXJ5ID0gdXRpbC5zaGExX2hhc2goCi0gICAgICAgIGtl
eSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgYWNjZXB0ID0g
YmFzZTY0LmI2NGVuY29kZShhY2NlcHRfYmluYXJ5KQotCi0gICAgcmV0dXJuIChhY2NlcHQsIGFj
Y2VwdF9iaW5hcnkpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihvYmplY3QpOgotICAgICIiIk9wZW5p
bmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0
NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpOgot
ICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIGRpc3BhdGNo
ZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotCi0gICAgICAgIEhhbmRzaGFr
ZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGR1cmluZyBoYW5kc2hh
a2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAg
IHNlbGYuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBkZWYgX3ZhbGlkYXRlX2Nvbm5l
Y3Rpb25faGVhZGVyKHNlbGYpOgotICAgICAgICBjb25uZWN0aW9uID0gZ2V0X21hbmRhdG9yeV9o
ZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uQ09OTkVDVElPTl9IRUFE
RVIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29ubmVjdGlvbl90b2tlbnMgPSBwYXJz
ZV90b2tlbl9saXN0KGNvbm5lY3Rpb24pCi0gICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ZhaWxlZCB0byBwYXJzZSAlczogJXMnICUgKGNvbW1vbi5DT05ORUNUSU9OX0hFQURF
UiwgZSkpCi0KLSAgICAgICAgY29ubmVjdGlvbl9pc192YWxpZCA9IEZhbHNlCi0gICAgICAgIGZv
ciB0b2tlbiBpbiBjb25uZWN0aW9uX3Rva2VuczoKLSAgICAgICAgICAgIGlmIHRva2VuLmxvd2Vy
KCkgPT0gY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLmxvd2VyKCk6Ci0gICAgICAgICAg
ICAgICAgY29ubmVjdGlvbl9pc192YWxpZCA9IFRydWUKLSAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICBpZiBub3QgY29ubmVjdGlvbl9pc192YWxpZDoKLSAgICAgICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnJXMgaGVhZGVyIGRvZXNuXCd0IGNv
bnRhaW4gIiVzIicgJQotICAgICAgICAgICAgICAgIChjb21tb24uQ09OTkVDVElPTl9IRUFERVIs
IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0KLSAgICBkZWYgZG9faGFuZHNoYWtl
KHNlbGYpOgotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSBOb25lCi0gICAg
ICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uID0gTm9uZQotCi0gICAgICAgICMgUGFy
c2luZy4KLQotICAgICAgICBjaGVja19yZXF1ZXN0X2xpbmUoc2VsZi5fcmVxdWVzdCkKLQotICAg
ICAgICB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVz
dCwKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1v
bi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFKQotCi0gICAgICAgIHNlbGYuX3ZhbGlkYXRlX2Nvbm5l
Y3Rpb25faGVhZGVyKCkKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Jlc291cmNlID0gc2Vs
Zi5fcmVxdWVzdC51cmkKLQotICAgICAgICB1bnVzZWRfaG9zdCA9IGdldF9tYW5kYXRvcnlfaGVh
ZGVyKHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5IT1NUX0hFQURFUikKLQotICAgICAgICBzZWxmLl9y
ZXF1ZXN0LndzX3ZlcnNpb24gPSBzZWxmLl9jaGVja192ZXJzaW9uKCkKLQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBzZWxmLl9nZXRfb3JpZ2luKCkKLSAgICAgICAgICAgIHNlbGYuX3NldF9w
cm90b2NvbCgpCi0gICAgICAgICAgICBzZWxmLl9wYXJzZV9leHRlbnNpb25zKCkKLQotICAgICAg
ICAgICAgIyBLZXkgdmFsaWRhdGlvbiwgcmVzcG9uc2UgZ2VuZXJhdGlvbi4KLQotICAgICAgICAg
ICAga2V5ID0gc2VsZi5fZ2V0X2tleSgpCi0gICAgICAgICAgICAoYWNjZXB0LCBhY2NlcHRfYmlu
YXJ5KSA9IGNvbXB1dGVfYWNjZXB0KGtleSkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKLSAgICAgICAgICAgICAgICAnJXM6ICVyICglcyknLAotICAgICAgICAgICAgICAgIGNvbW1v
bi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsCi0gICAgICAgICAgICAgICAgYWNjZXB0LAot
ICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGFjY2VwdF9iaW5hcnkpKQotCi0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb3RvY29sIHZlcnNpb24gaXMgUkZDIDY0NTUnKQotCi0g
ICAgICAgICAgICAjIFNldHVwIGV4dGVuc2lvbiBwcm9jZXNzb3JzLgotCi0gICAgICAgICAgICBw
cm9jZXNzb3JzID0gW10KLSAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVk
X2V4dGVuc2lvbnMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZm9yIGV4dGVuc2lvbl9y
ZXF1ZXN0IGluIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAg
ICAgICAgICAgICAgIHByb2Nlc3NvciA9IGdldF9leHRlbnNpb25fcHJvY2Vzc29yKGV4dGVuc2lv
bl9yZXF1ZXN0KQotICAgICAgICAgICAgICAgICAgICAjIFVua25vd24gZXh0ZW5zaW9uIHJlcXVl
c3RzIGFyZSBqdXN0IGlnbm9yZWQuCi0gICAgICAgICAgICAgICAgICAgIGlmIHByb2Nlc3NvciBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMuYXBwZW5kKHBy
b2Nlc3NvcikKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnMgPSBwcm9jZXNzb3JzCi0KLSAgICAgICAgICAgICMgTGlzdCBvZiBleHRyYSBoZWFkZXJzLiBU
aGUgZXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IGFkZCBoZWFkZXIKLSAgICAgICAgICAgICMg
ZGF0YSBhcyBuYW1lL3ZhbHVlIHBhaXJzIHRvIHRoaXMgbGlzdCBhbmQgcHl3ZWJzb2NrZXQgYXBw
ZW5kcwotICAgICAgICAgICAgIyB0aGVtIHRvIHRoZSBXZWJTb2NrZXQgaGFuZHNoYWtlLgotICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC5leHRyYV9oZWFkZXJzID0gW10KLQotICAgICAgICAgICAg
IyBFeHRyYSBoYW5kc2hha2UgaGFuZGxlciBtYXkgbW9kaWZ5L3JlbW92ZSBwcm9jZXNzb3JzLgot
ICAgICAgICAgICAgc2VsZi5fZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVx
dWVzdCkKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHByb2Nlc3Nvcjog
cHJvY2Vzc29yIGlzIG5vdCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKQotCi0gICAgICAgICAgICAjIEFz
ayBlYWNoIHByb2Nlc3NvciBpZiB0aGVyZSBhcmUgZXh0ZW5zaW9ucyBvbiB0aGUgcmVxdWVzdCB3
aGljaAotICAgICAgICAgICAgIyBjYW5ub3QgY28tZXhpc3QuIFdoZW4gcHJvY2Vzc29yIGRlY2lk
ZWQgb3RoZXIgcHJvY2Vzc29ycyBjYW5ub3QKLSAgICAgICAgICAgICMgY28tZXhpc3Qgd2l0aCBp
dCwgdGhlIHByb2Nlc3NvciBtYXJrcyB0aGVtIChvciBpdHNlbGYpIGFzCi0gICAgICAgICAgICAj
ICJpbmFjdGl2ZSIuIFRoZSBmaXJzdCBleHRlbnNpb24gcHJvY2Vzc29yIGhhcyB0aGUgcmlnaHQg
dG8KLSAgICAgICAgICAgICMgbWFrZSB0aGUgZmluYWwgY2FsbC4KLSAgICAgICAgICAgIGZvciBw
cm9jZXNzb3IgaW4gcmV2ZXJzZWQocHJvY2Vzc29ycyk6Ci0gICAgICAgICAgICAgICAgaWYgcHJv
Y2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IuY2hlY2tf
Y29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKAotICAgICAgICAgICAgICAgICAgICAg
ICAgcHJvY2Vzc29ycykKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHBy
b2Nlc3NvcjogcHJvY2Vzc29yLmlzX2FjdGl2ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9jZXNzb3JzKQotCi0gICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0g
W10KLQotICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IG9mIG11eCBl
eHRlbnNpb24gaGVyZS4KLSAgICAgICAgICAgICMgSWYgbXV4IGV4dGVuc2lvbiBleGlzdHM6Ci0g
ICAgICAgICAgICAjIC0gUmVtb3ZlIHByb2Nlc3NvcnMgb2YgZXh0ZW5zaW9ucyBmb3IgbG9naWNh
bCBjaGFubmVsLAotICAgICAgICAgICAgIyAgIHdoaWNoIGFyZSBwcm9jZXNzb3JzIGxvY2F0ZWQg
YmVmb3JlIHRoZSBtdXggcHJvY2Vzc29yCi0gICAgICAgICAgICAjIC0gUGFzcyBleHRlbnNpb24g
cmVxdWVzdHMgZm9yIGxvZ2ljYWwgY2hhbm5lbCB0byBtdXggcHJvY2Vzc29yCi0gICAgICAgICAg
ICAjIC0gQXR0YWNoIHRoZSBtdXggcHJvY2Vzc29yIHRvIHRoZSByZXF1ZXN0LiBJdCB3aWxsIGJl
IHJlZmVycmVkCi0gICAgICAgICAgICAjICAgYnkgZGlzcGF0Y2hlciB0byBzZWUgd2hldGhlciB0
aGUgZGlzcGF0Y2hlciBzaG91bGQgdXNlIG11eAotICAgICAgICAgICAgIyAgIGhhbmRsZXIgb3Ig
bm90LgotICAgICAgICAgICAgbXV4X2luZGV4ID0gLTEKLSAgICAgICAgICAgIGZvciBpLCBwcm9j
ZXNzb3IgaW4gZW51bWVyYXRlKHByb2Nlc3NvcnMpOgotICAgICAgICAgICAgICAgIGlmIHByb2Nl
c3Nvci5uYW1lKCkgPT0gY29tbW9uLk1VWF9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgICAg
IG11eF9pbmRleCA9IGkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlm
IG11eF9pbmRleCA+PSAwOgotICAgICAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNp
b25zID0gW10KLSAgICAgICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHByb2Nlc3NvcnNbOm11
eF9pbmRleF06Ci0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25z
LmFwcGVuZChwcm9jZXNzb3IucmVxdWVzdCgpKQotICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3Iuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lm11eF9w
cm9jZXNzb3IgPSBwcm9jZXNzb3JzW211eF9pbmRleF0KLSAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAgICAgICAg
IGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zKQotICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMg
PSBmaWx0ZXIobGFtYmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yLmlzX2FjdGl2ZSgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKLQotICAgICAgICAgICAg
c3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKLQotICAgICAgICAgICAgZm9yIGluZGV4
LCBwcm9jZXNzb3IgaW4gZW51bWVyYXRlKHByb2Nlc3NvcnMpOgotICAgICAgICAgICAgICAgIGlm
IG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0KLSAgICAgICAgICAgICAgICBleHRlbnNpb25fcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4
dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3Jlc3BvbnNl
IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICMgUmVqZWN0ZWQuCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zLmFw
cGVuZChleHRlbnNpb25fcmVzcG9uc2UpCi0KLSAgICAgICAgICAgICAgICBwcm9jZXNzb3Iuc2V0
dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICAgICAgICAgICAgICBpZiBu
b3QgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uKHByb2Nlc3Nvci5uYW1lKCkpOgotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgIyBJbmFjdGl2YXRlIGFsbCBv
ZiB0aGUgZm9sbG93aW5nIGNvbXByZXNzaW9uIGV4dGVuc2lvbnMuCi0gICAgICAgICAgICAgICAg
Zm9yIGogaW4geHJhbmdlKGluZGV4ICsgMSwgbGVuKHByb2Nlc3NvcnMpKToKLSAgICAgICAgICAg
ICAgICAgICAgaWYgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uKHByb2Nlc3NvcnNbal0ubmFtZSgp
KToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnNbal0uc2V0X2FjdGl2ZShGYWxz
ZSkKLQotICAgICAgICAgICAgaWYgbGVuKGFjY2VwdGVkX2V4dGVuc2lvbnMpID4gMDoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgPSBhY2NlcHRlZF9leHRlbnNp
b25zCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAg
ICAgICAnRXh0ZW5zaW9ucyBhY2NlcHRlZDogJXInLAotICAgICAgICAgICAgICAgICAgICBtYXAo
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlci5uYW1lLCBhY2NlcHRlZF9leHRlbnNpb25zKSkKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25zID0gTm9uZQotCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3N0cmVhbSA9IHNlbGYu
X2NyZWF0ZV9zdHJlYW0oc3RyZWFtX29wdGlvbnMpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3Jl
cXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICdk
b19leHRyYV9oYW5kc2hha2UgbXVzdCBjaG9vc2Ugb25lIHN1YnByb3RvY29sIGZyb20gJwotICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dzX3JlcXVlc3RlZF9wcm90b2NvbHMgYW5kIHNldCBpdCB0
byB3c19wcm90b2NvbCcpCi0gICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woc2Vs
Zi5fcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ1N1YnByb3RvY29sIGFjY2VwdGVkOiAlcicsCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAgICAgICAgICd3c19wcm90b2NvbCBtdXN0IGJlIE5vbmUgd2hlbiB0
aGUgY2xpZW50IGRpZG5cJ3QgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3QgYW55
IHN1YnByb3RvY29sJykKLQotICAgICAgICAgICAgc2VsZi5fc2VuZF9oYW5kc2hha2UoYWNjZXB0
KQotICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgaWYg
bm90IGUuc3RhdHVzOgotICAgICAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gNDAwIGJhZCByZXF1
ZXN0IGJ5IGRlZmF1bHQuCi0gICAgICAgICAgICAgICAgZS5zdGF0dXMgPSBjb21tb24uSFRUUF9T
VEFUVVNfQkFEX1JFUVVFU1QKLSAgICAgICAgICAgIHJhaXNlIGUKLQotICAgIGRlZiBfZ2V0X29y
aWdpbihzZWxmKToKLSAgICAgICAgb3JpZ2luX2hlYWRlciA9IGNvbW1vbi5PUklHSU5fSEVBREVS
Ci0gICAgICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQob3JpZ2luX2hl
YWRlcikKLSAgICAgICAgaWYgb3JpZ2luIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ0NsaWVudCByZXF1ZXN0IGRvZXMgbm90IGhhdmUgb3JpZ2luIGhlYWRlcicpCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0gb3JpZ2luCi0KLSAgICBkZWYgX2NoZWNr
X3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIHZlcnNpb24gPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihz
ZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpCi0gICAgICAgIGlmIHZlcnNpb24gPT0g
X1ZFUlNJT05fTEFURVNUX1NUUklORzoKLSAgICAgICAgICAgIHJldHVybiBfVkVSU0lPTl9MQVRF
U1QKLQotICAgICAgICBpZiB2ZXJzaW9uLmZpbmQoJywnKSA+PSAwOgotICAgICAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSB2ZXJzaW9u
cyAoJXIpIGFyZSBub3QgYWxsb3dlZCBmb3IgaGVhZGVyICVzJyAlCi0gICAgICAgICAgICAgICAg
KHZlcnNpb24sIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAg
ICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICBy
YWlzZSBWZXJzaW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIHZlcnNpb24g
JXIgZm9yIGhlYWRlciAlcycgJQotICAgICAgICAgICAgKHZlcnNpb24sIGNvbW1vbi5TRUNfV0VC
U09DS0VUX1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9ucz0n
LCAnLmpvaW4obWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJTSU9OUykpKQotCi0gICAgZGVmIF9zZXRf
cHJvdG9jb2woc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgPSBOb25l
Ci0KLSAgICAgICAgcHJvdG9jb2xfaGVhZGVyID0gc2VsZi5fcmVxdWVzdC5oZWFkZXJzX2luLmdl
dCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUikKLQot
ICAgICAgICBpZiBwcm90b2NvbF9oZWFkZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3Jl
cXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IE5vbmUKLSAgICAgICAgICAgIHJldHVybgot
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IHBhcnNlX3Rv
a2VuX2xpc3QoCi0gICAgICAgICAgICBwcm90b2NvbF9oZWFkZXIpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnU3VicHJvdG9jb2xzIHJlcXVlc3RlZDogJXInLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzKQotCi0gICAg
ZGVmIF9wYXJzZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9
IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAgICBjb21tb24uU0VDX1dF
QlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUikKLSAgICAgICAgaWYgbm90IGV4dGVuc2lvbnNfaGVh
ZGVyOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucyA9
IE5vbmUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5z
aW9ucygKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zX2hlYWRlcikKLSAgICAgICAgZXhjZXB0
IGNvbW1vbi5FeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjogJXInICUgZSkKLQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXh0ZW5zaW9ucyByZXF1ZXN0ZWQ6ICVyJywKLSAg
ICAgICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5hbWUsCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucykpCi0KLSAgICBkZWYg
X3ZhbGlkYXRlX2tleShzZWxmLCBrZXkpOgotICAgICAgICBpZiBrZXkuZmluZCgnLCcpID49IDA6
Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ1JlcXVlc3QgaGFzIG11bHRp
cGxlICVzIGhlYWRlciBsaW5lcyBvciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyIFwnLFwnOiAlcicgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVB
REVSLCBrZXkpKQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAga2V5X2lzX3ZhbGlkID0g
RmFsc2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBWYWxpZGF0ZSBrZXkgYnkgcXVpY2sg
cmVnZXggbWF0Y2ggYmVmb3JlIHBhcnNpbmcgYnkgYmFzZTY0Ci0gICAgICAgICAgICAjIG1vZHVs
ZS4gQmVjYXVzZSBiYXNlNjQgbW9kdWxlIHNraXBzIGludmFsaWQgY2hhcmFjdGVycywgd2UgaGF2
ZQotICAgICAgICAgICAgIyB0byBkbyB0aGlzIGluIGFkdmFuY2UgdG8gbWFrZSB0aGlzIHNlcnZl
ciBzdHJpY3RseSByZWplY3QgaWxsZWdhbAotICAgICAgICAgICAgIyBrZXlzLgotICAgICAgICAg
ICAgaWYgX1NFQ19XRUJTT0NLRVRfS0VZX1JFR0VYLm1hdGNoKGtleSk6Ci0gICAgICAgICAgICAg
ICAgZGVjb2RlZF9rZXkgPSBiYXNlNjQuYjY0ZGVjb2RlKGtleSkKLSAgICAgICAgICAgICAgICBp
ZiBsZW4oZGVjb2RlZF9rZXkpID09IDE2OgotICAgICAgICAgICAgICAgICAgICBrZXlfaXNfdmFs
aWQgPSBUcnVlCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6Ci0gICAgICAgICAgICBwYXNz
Ci0KLSAgICAgICAgaWYgbm90IGtleV9pc192YWxpZDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVy
ICVzOiAlcicgJQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVB
REVSLCBrZXkpKQotCi0gICAgICAgIHJldHVybiBkZWNvZGVkX2tleQotCi0gICAgZGVmIF9nZXRf
a2V5KHNlbGYpOgotICAgICAgICBrZXkgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIpCi0KLSAg
ICAgICAgZGVjb2RlZF9rZXkgPSBzZWxmLl92YWxpZGF0ZV9rZXkoa2V5KQotCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogJXIgKCVzKScsCi0gICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAgICAgICAga2V5LAotICAg
ICAgICAgICAgdXRpbC5oZXhpZnkoZGVjb2RlZF9rZXkpKQotCi0gICAgICAgIHJldHVybiBrZXkK
LQotICAgIGRlZiBfY3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAg
IHJldHVybiBTdHJlYW0oc2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYg
X2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToKLSAgICAgICAgcmVzcG9u
c2UgPSBbXQotCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGlu
ZyBQcm90b2NvbHNcclxuJykKLQotICAgICAgICAjIFdlYlNvY2tldCBoZWFkZXJzCi0gICAgICAg
IHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlVQR1JB
REVfSEVBREVSLCBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkpCi0gICAgICAgIHJlc3Bv
bnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05f
SEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotICAgICAgICByZXNwb25z
ZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VU
X0FDQ0VQVF9IRUFERVIsIGFjY2VwdCkpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJv
dG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hl
YWRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9QUk9UT0NPTF9IRUFE
RVIsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkpCi0gICAgICAg
IGlmIChzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgaXMgbm90IE5vbmUgYW5kCi0gICAgICAg
ICAgICBsZW4oc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zKSAhPSAwKToKLSAgICAgICAgICAg
IHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5T
RUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAgICAgICAgIGNvbW1vbi5m
b3JtYXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKLQotICAgICAg
ICAjIEhlYWRlcnMgbm90IHNwZWNpZmljIGZvciBXZWJTb2NrZXQKLSAgICAgICAgZm9yIG5hbWUs
IHZhbHVlIGluIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVyczoKLSAgICAgICAgICAgIHJlc3Bv
bnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKG5hbWUsIHZhbHVlKSkKLQotICAgICAgICByZXNwb25z
ZS5hcHBlbmQoJ1xyXG4nKQotCi0gICAgICAgIHJldHVybiAnJy5qb2luKHJlc3BvbnNlKQotCi0g
ICAgZGVmIF9zZW5kX2hhbmRzaGFrZShzZWxmLCBhY2NlcHQpOgotICAgICAgICByYXdfcmVzcG9u
c2UgPSBzZWxmLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKGFjY2VwdCkKLSAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKHJhd19yZXNwb25zZSkKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmF3X3Jlc3BvbnNlKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJp
MDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc1NzcxN2E2MzliYWMzZGIwNWQ0Y2IzMDI3ZTA1
NWZkYmY3ZjNjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDI5MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUg
cHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tl
dAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAw
Ci0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFyZSB1c2Vk
IGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotIyBtb2RfcHl0aG9uIGRvY3VtZW50IHNheXMg
dGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgotIyBoYW5kbGVycy4g
VW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwKLSMg
cmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRvbid0IGFs
bG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3JpdGluZy9yZWFkaW5nLgotCi0KLWltcG9ydCBsb2dn
aW5nCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJ1Y3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhp
ZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVxdWVzdF9saW5lCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFkZXIKLWZy
b20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X2RlZmF1bHRfcG9y
dAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFuZGF0
b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBw
YXJzZV9ob3N0X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGlt
cG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCi0KLQotX01BTkRBVE9SWV9IRUFERVJTID0g
WwotICAgICMga2V5LCBleHBlY3RlZCB2YWx1ZSBvciBOb25lCi0gICAgW2NvbW1vbi5VUEdSQURF
X0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NV0sCi0gICAgW2Nv
bW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFXSwK
LV0KLQotCi1kZWYgX3ZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKLSAgICAiIiJD
aGVja3MgaWYgY2hhcmFjdGVycyBpbiBzdWJwcm90b2NvbCBhcmUgaW4gcmFuZ2UgYmV0d2VlbiBV
KzAwMjAgYW5kCi0gICAgVSswMDdFLiBBIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3Rv
Y29sIGZpZWxkIG5lZWQgdG8gc2F0aXNmeSB0aGlzCi0gICAgcmVxdWlyZW1lbnQuCi0KLSAgICBT
ZWUgdGhlIFNlY3Rpb24gNC4xLiBPcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgc3BlYy4KLSAgICAi
IiIKLQotICAgIGlmIG5vdCBzdWJwcm90b2NvbDoKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhj
ZXB0aW9uKCdJbnZhbGlkIHN1YnByb3RvY29sIG5hbWU6IGVtcHR5JykKLQotICAgICMgUGFyYW1l
dGVyIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgVSswMDIwIHRvIFUrMDA3RS4KLSAgICBmb3IgYyBp
biBzdWJwcm90b2NvbDoKLSAgICAgICAgaWYgbm90IDB4MjAgPD0gb3JkKGMpIDw9IDB4N2U6Ci0g
ICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0ls
bGVnYWwgY2hhcmFjdGVyIGluIHN1YnByb3RvY29sIG5hbWU6ICVyJyAlIGMpCi0KLQotZGVmIF9j
aGVja19oZWFkZXJfbGluZXMocmVxdWVzdCwgbWFuZGF0b3J5X2hlYWRlcnMpOgotICAgIGNoZWNr
X3JlcXVlc3RfbGluZShyZXF1ZXN0KQotCi0gICAgIyBUaGUgZXhwZWN0ZWQgZmllbGQgbmFtZXMs
IGFuZCB0aGUgbWVhbmluZyBvZiB0aGVpciBjb3JyZXNwb25kaW5nCi0gICAgIyB2YWx1ZXMsIGFy
ZSBhcyBmb2xsb3dzLgotICAgICMgIHxVcGdyYWRlfCBhbmQgfENvbm5lY3Rpb258Ci0gICAgZm9y
IGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gbWFuZGF0b3J5X2hlYWRlcnM6Ci0gICAgICAgIHZhbGlk
YXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5LCBleHBlY3RlZF92YWx1ZSkKLQotCi1k
ZWYgX2J1aWxkX2xvY2F0aW9uKHJlcXVlc3QpOgotICAgICIiIkJ1aWxkIFdlYlNvY2tldCBsb2Nh
dGlvbiBmb3IgcmVxdWVzdC4iIiIKLQotICAgIGxvY2F0aW9uX3BhcnRzID0gW10KLSAgICBpZiBy
ZXF1ZXN0LmlzX2h0dHBzKCk6Ci0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChjb21tb24u
V0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FKQotICAgIGVsc2U6Ci0gICAgICAgIGxvY2F0aW9uX3Bh
cnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TQ0hFTUUpCi0gICAgbG9jYXRpb25fcGFydHMu
YXBwZW5kKCc6Ly8nKQotICAgIGhvc3QsIHBvcnQgPSBwYXJzZV9ob3N0X2hlYWRlcihyZXF1ZXN0
KQotICAgIGNvbm5lY3Rpb25fcG9ydCA9IHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRyWzFd
Ci0gICAgaWYgcG9ydCAhPSBjb25uZWN0aW9uX3BvcnQ6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFr
ZUV4Y2VwdGlvbignSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaDogJWQvJWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3J0LCBjb25uZWN0aW9uX3BvcnQpKQot
ICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChob3N0KQotICAgIGlmIChwb3J0ICE9IGdldF9kZWZh
dWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKSk6Ci0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFw
cGVuZCgnOicpCi0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChzdHIocG9ydCkpCi0gICAg
bG9jYXRpb25fcGFydHMuYXBwZW5kKHJlcXVlc3QudW5wYXJzZWRfdXJpKQotICAgIHJldHVybiAn
Jy5qb2luKGxvY2F0aW9uX3BhcnRzKQotCi0KLWNsYXNzIEhhbmRzaGFrZXIob2JqZWN0KToKLSAg
ICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9j
b2wgdmVyc2lvbiBIeUJpIDAwLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3QsIGRpc3BhdGNoZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4K
LSAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIp
LgotCi0gICAgICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jl
c291cmNlIGluIHBlcmZvcm1pbmcKLSAgICAgICAgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0g
ZGlzcGF0Y2hlcgotCi0gICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgIiIiUGVy
Zm9ybSBXZWJTb2NrZXQgSGFuZHNoYWtlLgotCi0gICAgICAgIE9uIF9yZXF1ZXN0LCB3ZSBzZXQK
LSAgICAgICAgICAgIHdzX3Jlc291cmNlLCB3c19wcm90b2NvbCwgd3NfbG9jYXRpb24sIHdzX29y
aWdpbiwgd3NfY2hhbGxlbmdlLAotICAgICAgICAgICAgd3NfY2hhbGxlbmdlX21kNTogV2ViU29j
a2V0IGhhbmRzaGFrZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgICAgIHdzX3N0cmVhbTogRnJhbWUg
Z2VuZXJhdGlvbi9wYXJzaW5nIGNsYXNzLgotICAgICAgICAgICAgd3NfdmVyc2lvbjogUHJvdG9j
b2wgdmVyc2lvbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBIYW5kc2hha2VFeGNl
cHRpb246IHdoZW4gYW55IGVycm9yIGhhcHBlbmVkIGluIHBhcnNpbmcgdGhlIG9wZW5pbmcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIHJlcXVlc3QuCi0gICAgICAg
ICIiIgotCi0gICAgICAgICMgNS4xIFJlYWRpbmcgdGhlIGNsaWVudCdzIG9wZW5pbmcgaGFuZHNo
YWtlLgotICAgICAgICAjIGRpc3BhdGNoZXIgc2V0cyBpdCBpbiBzZWxmLl9yZXF1ZXN0LgotICAg
ICAgICBfY2hlY2tfaGVhZGVyX2xpbmVzKHNlbGYuX3JlcXVlc3QsIF9NQU5EQVRPUllfSEVBREVS
UykKLSAgICAgICAgc2VsZi5fc2V0X3Jlc291cmNlKCkKLSAgICAgICAgc2VsZi5fc2V0X3N1YnBy
b3RvY29sKCkKLSAgICAgICAgc2VsZi5fc2V0X2xvY2F0aW9uKCkKLSAgICAgICAgc2VsZi5fc2V0
X29yaWdpbigpCi0gICAgICAgIHNlbGYuX3NldF9jaGFsbGVuZ2VfcmVzcG9uc2UoKQotICAgICAg
ICBzZWxmLl9zZXRfcHJvdG9jb2xfdmVyc2lvbigpCi0KLSAgICAgICAgc2VsZi5fZGlzcGF0Y2hl
ci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9zZW5k
X2hhbmRzaGFrZSgpCi0KLSAgICBkZWYgX3NldF9yZXNvdXJjZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCi0KLSAgICBkZWYgX3Nl
dF9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyB8U2VjLVdlYlNvY2tldC1Qcm90b2NvbHwK
LSAgICAgICAgc3VicHJvdG9jb2wgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAotICAg
ICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSKQotICAgICAgICBp
ZiBzdWJwcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90
b2NvbChzdWJwcm90b2NvbCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCA9IHN1
YnByb3RvY29sCi0KLSAgICBkZWYgX3NldF9sb2NhdGlvbihzZWxmKToKLSAgICAgICAgIyB8SG9z
dHwKLSAgICAgICAgaG9zdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLkhP
U1RfSEVBREVSKQotICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c19sb2NhdGlvbiA9IF9idWlsZF9sb2NhdGlvbihzZWxmLl9yZXF1ZXN0KQot
ICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIGhvc3QgaXMgdGhpcyBob3N0LgotCi0gICAgZGVm
IF9zZXRfb3JpZ2luKHNlbGYpOgotICAgICAgICAjIHxPcmlnaW58Ci0gICAgICAgIG9yaWdpbiA9
IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLk9SSUdJTl9IRUFERVIpCi0gICAg
ICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
b3JpZ2luID0gb3JpZ2luCi0KLSAgICBkZWYgX3NldF9wcm90b2NvbF92ZXJzaW9uKHNlbGYpOgot
ICAgICAgICAjIHxTZWMtV2ViU29ja2V0LURyYWZ0fAotICAgICAgICBkcmFmdCA9IHNlbGYuX3Jl
cXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSKQot
ICAgICAgICBpZiBkcmFmdCBpcyBub3QgTm9uZSBhbmQgZHJhZnQgIT0gJzAnOgotICAgICAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbGxlZ2FsIHZhbHVlIGZvciAlczogJXMnICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NL
RVRfRFJBRlRfSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmFmdCkpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJzaW9uIGlz
IEh5QmkgMDAnKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24gPSBjb21tb24uVkVS
U0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW1IaXhp
ZTc1KHNlbGYuX3JlcXVlc3QsIFRydWUpCi0KLSAgICBkZWYgX3NldF9jaGFsbGVuZ2VfcmVzcG9u
c2Uoc2VsZik6Ci0gICAgICAgICMgNS4yIDQtOC4KLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19j
aGFsbGVuZ2UgPSBzZWxmLl9nZXRfY2hhbGxlbmdlKCkKLSAgICAgICAgIyA1LjIgOS4gbGV0IC9y
ZXNwb25zZS8gYmUgdGhlIE1ENSBmaW50ZXJwcmludCBvZiAvY2hhbGxlbmdlLwotICAgICAgICBz
ZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUgPSB1dGlsLm1kNV9oYXNoKAotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLAotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UsCi0gICAgICAgICAgICB1dGlsLmhleGlmeShz
ZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
LSAgICAgICAgICAgICdDaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAotICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1LAotICAgICAgICAgICAgdXRpbC5oZXhpZnko
c2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1KSkKLQotICAgIGRlZiBfZ2V0X2tleV92YWx1
ZShzZWxmLCBrZXlfZmllbGQpOgotICAgICAgICBrZXlfdmFsdWUgPSBnZXRfbWFuZGF0b3J5X2hl
YWRlcihzZWxmLl9yZXF1ZXN0LCBrZXlfZmllbGQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCclczogJXInLCBrZXlfZmllbGQsIGtleV92YWx1ZSkKLQotICAgICAgICAjIDUuMiA0LiBs
ZXQgL2tleS1udW1iZXJfbi8gYmUgdGhlIGRpZ2l0cyAoY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UK
LSAgICAgICAgIyBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8gVSswMDM5IERJR0lUIE5JTkUgKDkp
KSBpbiAva2V5X24vLAotICAgICAgICAjIGludGVycHJldGVkIGFzIGEgYmFzZSB0ZW4gaW50ZWdl
ciwgaWdub3JpbmcgYWxsIG90aGVyIGNoYXJhY3RlcnMKLSAgICAgICAgIyBpbiAva2V5X24vLgot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBrZXlfbnVtYmVyID0gaW50KHJlLnN1YigiXFxEIiwg
IiIsIGtleV92YWx1ZSkpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gZGlnaXQnICUga2V5X2ZpZWxkKQot
ICAgICAgICAjIDUuMiA1LiBsZXQgL3NwYWNlc19uLyBiZSB0aGUgbnVtYmVyIG9mIFUrMDAyMCBT
UEFDRSBjaGFyYWN0ZXJzCi0gICAgICAgICMgaW4gL2tleV9uLy4KLSAgICAgICAgc3BhY2VzID0g
cmUuc3VibigiICIsICIiLCBrZXlfdmFsdWUpWzFdCi0gICAgICAgIGlmIHNwYWNlcyA9PSAwOgot
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBmaWVsZCBjb250YWlucyBu
byBzcGFjZScgJSBrZXlfZmllbGQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJyVzOiBLZXktbnVtYmVyIGlzICVkIGFuZCBudW1iZXIgb2Ygc3BhY2VzIGlzICVk
JywKLSAgICAgICAgICAgIGtleV9maWVsZCwga2V5X251bWJlciwgc3BhY2VzKQotCi0gICAgICAg
ICMgNS4yIDYuIGlmIC9rZXktbnVtYmVyX24vIGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBv
ZiAvc3BhY2VzX24vCi0gICAgICAgICMgdGhlbiBhYm9ydCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rp
b24uCi0gICAgICAgIGlmIGtleV9udW1iZXIgJSBzcGFjZXMgIT0gMDoKLSAgICAgICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnJXM6IEtleS1udW1iZXIg
KCVkKSBpcyBub3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2Ygc3BhY2VzICcKLSAgICAgICAgICAg
ICAgICAnKCVkKScgJSAoa2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMpKQotICAgICAgICAj
IDUuMiA3LiBsZXQgL3BhcnRfbi8gYmUgL2tleS1udW1iZXJfbi8gZGl2aWRlZCBieSAvc3BhY2Vz
X24vLgotICAgICAgICBwYXJ0ID0ga2V5X251bWJlciAvIHNwYWNlcwotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJyVzOiBQYXJ0IGlzICVkJywga2V5X2ZpZWxkLCBwYXJ0KQotICAgICAgICBy
ZXR1cm4gcGFydAotCi0gICAgZGVmIF9nZXRfY2hhbGxlbmdlKHNlbGYpOgotICAgICAgICAjIDUu
MiA0LTcuCi0gICAgICAgIGtleTEgPSBzZWxmLl9nZXRfa2V5X3ZhbHVlKGNvbW1vbi5TRUNfV0VC
U09DS0VUX0tFWTFfSEVBREVSKQotICAgICAgICBrZXkyID0gc2VsZi5fZ2V0X2tleV92YWx1ZShj
b21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUikKLSAgICAgICAgIyA1LjIgOC4gbGV0IC9j
aGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9wYXJ0XzEvLAotICAgICAgICBjaGFs
bGVuZ2UgPSAnJwotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywga2V5MSkg
ICMgbmV0d29yayBieXRlb3JkZXIgaW50Ci0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFj
aygnIUknLCBrZXkyKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKLSAgICAgICAgY2hhbGxlbmdl
ICs9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKDgpCi0gICAgICAgIHJldHVybiBjaGFs
bGVuZ2UKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgIHJlc3BvbnNl
ID0gW10KLQotICAgICAgICAjIDUuMiAxMC4gc2VuZCB0aGUgZm9sbG93aW5nIGxpbmUuCi0gICAg
ICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5k
c2hha2VcclxuJykKLQotICAgICAgICAjIDUuMiAxMS4gc2VuZCB0aGUgZm9sbG93aW5nIGZpZWxk
cyB0byB0aGUgY2xpZW50LgotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigK
LSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdS
QURFX1RZUEVfSElYSUU3NSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVy
KAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9D
T05ORUNUSU9OX1RZUEUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigK
LSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURFUiwgc2VsZi5f
cmVxdWVzdC53c19sb2NhdGlvbikpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVh
ZGVyKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURFUiwgc2Vs
Zi5fcmVxdWVzdC53c19vcmlnaW4pKQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3Rv
Y29sOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCi0gICAgICAg
ICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAotICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAgICAjIDUuMiAxMi4gc2Vu
ZCB0d28gYnl0ZXMgMHgwRCAweDBBLgotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4nKQot
ICAgICAgICAjIDUuMiAxMy4gc2VuZCAvcmVzcG9uc2UvCi0gICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpCi0KLSAgICAgICAgcmF3X3Jlc3BvbnNl
ID0gJycuam9pbihyZXNwb25zZSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndy
aXRlKHJhd19yZXNwb25zZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZl
clwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmF3X3Jlc3BvbnNlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc5MGRkNzU0YTQ5MDM2OGI5ZTdhNTkzMzY1ZjJmZDBjMDQxN2QyZDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5
d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMyNDQ0MjFjZjc5YmNkZDczN2RjYjU3ZjlmNDMzNmJlMGU4NGNhNTQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vi
c29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBm
b3IgbW9kX3B5d2Vic29ja2V0LgotCi1BcGFjaGUgSFRUUCBTZXJ2ZXIgYW5kIG1vZF9weXRob24g
bXVzdCBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCB0aGlzCi1mdW5jdGlvbiBpcyBjYWxsZWQgdG8g
aGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0LgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQotZnJv
bSBtb2RfcHl0aG9uIGltcG9ydCBhcGFjaGUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
dXRpbAotCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgcm9vdCBkaXJl
Y3RvcnkuCi1fUFlPUFRfSEFORExFUl9ST09UID0gJ21vZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jv
b3QnCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRsZXIgc2NhbiBkaXJlY3Rv
cnkuCi0jIFRoaXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciB0aGUgcm9vdCBkaXJlY3Rvcnku
Ci0jIFRoZSBkZWZhdWx0IGlzIHRoZSByb290IGRpcmVjdG9yeS4KLV9QWU9QVF9IQU5ETEVSX1ND
QU4gPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbicKLQotIyBQeXRob25PcHRpb24gdG8g
YWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMKLSMgbm90IHVuZGVyIHRoZSBy
b290IGRpcmVjdG9yeS4gSXQncyBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQuCi0jIFNldCB0aGlzIG9w
dGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMnIHRvIGFsbG93LgotX1BZT1BUX0FMTE9XX0hBTkRMRVJT
X09VVFNJREVfUk9PVCA9ICgKLSAgICAnbW9kX3B5d2Vic29ja2V0LmFsbG93X2hhbmRsZXJzX291
dHNpZGVfcm9vdF9kaXInKQotIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmluZ3MuICdZ
ZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2VkIGp1c3QgZm9yCi0jIGNvbXBhdGliaWxpdHkuCi1fUFlP
UFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04gPSB7Ci0gICAgJ29mZic6
IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29uJzogVHJ1ZSwgJ3llcyc6IFRydWV9Ci0KLSMgKE9ic29s
ZXRlIG9wdGlvbi4gSWdub3JlZC4pCi0jIFB5dGhvbk9wdGlvbiB0byBzcGVjaWZ5IHRvIGFsbG93
IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhpeGllIDc1IHZlcnNpb24KLSMgcHJvdG9jb2wuIFRoZSBk
ZWZhdWx0IGlzIE5vbmUgKE9mZikKLV9QWU9QVF9BTExPV19EUkFGVDc1ID0gJ21vZF9weXdlYnNv
Y2tldC5hbGxvd19kcmFmdDc1JwotIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhlaXIgbWVhbmluZ3Mu
Ci1fUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OID0geydvZmYnOiBGYWxzZSwgJ29uJzog
VHJ1ZX0KLQotCi1jbGFzcyBBcGFjaGVMb2dIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6Ci0gICAg
IiIiV3JhcHBlciBsb2dnaW5nLkhhbmRsZXIgdG8gZW1pdCBsb2cgbWVzc2FnZSB0byBhcGFjaGUn
cyBlcnJvci5sb2cuIiIiCi0KLSAgICBfTEVWRUxTID0gewotICAgICAgICBsb2dnaW5nLkRFQlVH
OiBhcGFjaGUuQVBMT0dfREVCVUcsCi0gICAgICAgIGxvZ2dpbmcuSU5GTzogYXBhY2hlLkFQTE9H
X0lORk8sCi0gICAgICAgIGxvZ2dpbmcuV0FSTklORzogYXBhY2hlLkFQTE9HX1dBUk5JTkcsCi0g
ICAgICAgIGxvZ2dpbmcuRVJST1I6IGFwYWNoZS5BUExPR19FUlIsCi0gICAgICAgIGxvZ2dpbmcu
Q1JJVElDQUw6IGFwYWNoZS5BUExPR19DUklULAotICAgICAgICB9Ci0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVxdWVzdD1Ob25lKToKLSAgICAgICAgbG9nZ2luZy5IYW5kbGVyLl9faW5pdF9f
KHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ19lcnJvciA9IGFwYWNoZS5sb2dfZXJyb3IKLSAgICAg
ICAgaWYgcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ19lcnJvciA9
IHJlcXVlc3QubG9nX2Vycm9yCi0KLSAgICAgICAgIyBUaW1lIGFuZCBsZXZlbCB3aWxsIGJlIHBy
aW50ZWQgYnkgQXBhY2hlLgotICAgICAgICBzZWxmLl9mb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1h
dHRlcignJShuYW1lKXM6ICUobWVzc2FnZSlzJykKLQotICAgIGRlZiBlbWl0KHNlbGYsIHJlY29y
ZCk6Ci0gICAgICAgIGFwYWNoZV9sZXZlbCA9IGFwYWNoZS5BUExPR19ERUJVRwotICAgICAgICBp
ZiByZWNvcmQubGV2ZWxubyBpbiBBcGFjaGVMb2dIYW5kbGVyLl9MRVZFTFM6Ci0gICAgICAgICAg
ICBhcGFjaGVfbGV2ZWwgPSBBcGFjaGVMb2dIYW5kbGVyLl9MRVZFTFNbcmVjb3JkLmxldmVsbm9d
Ci0KLSAgICAgICAgbXNnID0gc2VsZi5fZm9ybWF0dGVyLmZvcm1hdChyZWNvcmQpCi0KLSAgICAg
ICAgIyAic2VydmVyIiBwYXJhbWV0ZXIgbXVzdCBiZSBwYXNzZWQgdG8gaGF2ZSAibGV2ZWwiIHBh
cmFtZXRlciB3b3JrLgotICAgICAgICAjIElmIG9ubHkgImxldmVsIiBwYXJhbWV0ZXIgaXMgcGFz
c2VkLCBub3RoaW5nIHNob3dzIHVwIG9uIEFwYWNoZSdzCi0gICAgICAgICMgbG9nLiBIb3dldmVy
LCBhdCB0aGlzIHBvaW50LCB3ZSBjYW5ub3QgZ2V0IHRoZSBzZXJ2ZXIgb2JqZWN0IG9mIHRoZQot
ICAgICAgICAjIHZpcnR1YWwgaG9zdCB3aGljaCB3aWxsIHByb2Nlc3MgV2ViU29ja2V0IHJlcXVl
c3RzLiBUaGUgb25seSBzZXJ2ZXIKLSAgICAgICAgIyBvYmplY3Qgd2UgY2FuIGdldCBoZXJlIGlz
IGFwYWNoZS5tYWluX3NlcnZlci4gQnV0IFdoZXJldmVyIChzZXJ2ZXIKLSAgICAgICAgIyBjb25m
aWd1cmF0aW9uIGNvbnRleHQgb3IgdmlydHVhbCBob3N0IGNvbnRleHQpIHdlIHB1dAotICAgICAg
ICAjIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgZGlyZWN0aXZlLCBhcGFjaGUubWFpbl9zZXJ2
ZXIganVzdCBwb2ludHMKLSAgICAgICAgIyB0aGUgbWFpbiBzZXJ2ZXIgaW5zdGFuY2UgKG5vdCBh
bnkgb2YgdmlydHVhbCBzZXJ2ZXIgaW5zdGFuY2UpLiBUaGVuLAotICAgICAgICAjIEFwYWNoZSBm
b2xsb3dzIExvZ0xldmVsIGRpcmVjdGl2ZSBpbiB0aGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gY29u
dGV4dAotICAgICAgICAjIHRvIGZpbHRlciBsb2dzLiBTbywgd2UgbmVlZCB0byBzcGVjaWZ5IExv
Z0xldmVsIGluIHRoZSBzZXJ2ZXIKLSAgICAgICAgIyBjb25maWd1cmF0aW9uIGNvbnRleHQuIEV2
ZW4gaWYgd2Ugc3BlY2lmeSAiTG9nTGV2ZWwgZGVidWciIGluIHRoZQotICAgICAgICAjIHZpcnR1
YWwgaG9zdCBjb250ZXh0IHdoaWNoIGFjdHVhbGx5IGhhbmRsZXMgV2ViU29ja2V0IGNvbm5lY3Rp
b25zLAotICAgICAgICAjIERFQlVHIGxldmVsIGxvZ3MgbmV2ZXIgc2hvdyB1cCB1bmxlc3MgIkxv
Z0xldmVsIGRlYnVnIiBpcyBzcGVjaWZpZWQKLSAgICAgICAgIyBpbiB0aGUgc2VydmVyIGNvbmZp
Z3VyYXRpb24gY29udGV4dC4KLSAgICAgICAgIwotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBQ
cm92aWRlIGxvZ2dpbmcgbWV0aG9kcyBvbiByZXF1ZXN0IG9iamVjdC4gV2hlbgotICAgICAgICAj
IHJlcXVlc3QgaXMgbXBfcmVxdWVzdCBvYmplY3QgKHdoZW4gdXNlZCB0b2dldGhlciB3aXRoIEFw
YWNoZSksIHRoZQotICAgICAgICAjIG1ldGhvZHMgY2FsbCByZXF1ZXN0LmxvZ19lcnJvciBpbmRp
cmVjdGx5LiBXaGVuIHJlcXVlc3QgaXMKLSAgICAgICAgIyBfU3RhbmRhbG9uZVJlcXVlc3QsIHRo
ZSBtZXRob2RzIGNhbGwgUHl0aG9uJ3MgbG9nZ2luZyBmYWNpbGl0eSB3aGljaAotICAgICAgICAj
IHdlIGNyZWF0ZSBpbiBzdGFuZGFsb25lLnB5LgotICAgICAgICBzZWxmLl9sb2dfZXJyb3IobXNn
LCBhcGFjaGVfbGV2ZWwsIGFwYWNoZS5tYWluX3NlcnZlcikKLQotCi1kZWYgX2NvbmZpZ3VyZV9s
b2dnaW5nKCk6Ci0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQotICAgICMgTG9ncyBh
cmUgZmlsdGVyZWQgYnkgQXBhY2hlIGJhc2VkIG9uIExvZ0xldmVsIGRpcmVjdGl2ZSBpbiBBcGFj
aGUKLSAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZS4gV2UgbXVzdCBqdXN0IHBhc3MgbG9ncyBmb3Ig
YWxsIGxldmVscyB0bwotICAgICMgQXBhY2hlTG9nSGFuZGxlci4KLSAgICBsb2dnZXIuc2V0TGV2
ZWwobG9nZ2luZy5ERUJVRykKLSAgICBsb2dnZXIuYWRkSGFuZGxlcihBcGFjaGVMb2dIYW5kbGVy
KCkpCi0KLQotX2NvbmZpZ3VyZV9sb2dnaW5nKCkKLQotX0xPR0dFUiA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQotCi0KLWRlZiBfcGFyc2Vfb3B0aW9uKG5hbWUsIHZhbHVlLCBkZWZpbml0
aW9uKToKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IG1lYW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1ZS5sb3dlcigpKQotICAgIGlmIG1lYW5pbmcg
aXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlIGZvciBQeXRo
b25PcHRpb24gJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAobmFtZSwgdmFsdWUp
KQotICAgIHJldHVybiBtZWFuaW5nCi0KLQotZGVmIF9jcmVhdGVfZGlzcGF0Y2hlcigpOgotICAg
IF9MT0dHRVIuaW5mbygnSW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQotCi0gICAgb3B0aW9ucyA9
IGFwYWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpCi0KLSAgICBoYW5kbGVyX3Jvb3QgPSBv
cHRpb25zLmdldChfUFlPUFRfSEFORExFUl9ST09ULCBOb25lKQotICAgIGlmIG5vdCBoYW5kbGVy
X3Jvb3Q6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0aW9uICVzIGlzIG5vdCBk
ZWZpbmVkJyAlIF9QWU9QVF9IQU5ETEVSX1JPT1QsCi0gICAgICAgICAgICAgICAgICAgICAgICBh
cGFjaGUuQVBMT0dfRVJSKQotCi0gICAgaGFuZGxlcl9zY2FuID0gb3B0aW9ucy5nZXQoX1BZT1BU
X0hBTkRMRVJfU0NBTiwgaGFuZGxlcl9yb290KQotCi0gICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lk
ZV9yb290ID0gX3BhcnNlX29wdGlvbigKLSAgICAgICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09V
VFNJREVfUk9PVCwKLSAgICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09V
VFNJREVfUk9PVCksCi0gICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1Rf
REVGSU5JVElPTikKLQotICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAotICAg
ICAgICBoYW5kbGVyX3Jvb3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9y
b290KQotCi0gICAgZm9yIHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKToK
LSAgICAgICAgYXBhY2hlLmxvZ19lcnJvcigKLSAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6
IFdhcm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcsCi0gICAgICAgICAgICBh
cGFjaGUuQVBMT0dfV0FSTklORykKLQotICAgIHJldHVybiBkaXNwYXRjaGVyCi0KLQotIyBJbml0
aWFsaXplCi1fZGlzcGF0Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigpCi0KLQotZGVmIGhlYWRl
cnBhcnNlcmhhbmRsZXIocmVxdWVzdCk6Ci0gICAgIiIiSGFuZGxlIHJlcXVlc3QuCi0KLSAgICBB
cmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLSAgICBUaGlzIGZ1
bmN0aW9uIGlzIG5hbWVkIGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVzZSBpdCBpcyB0aGUgZGVm
YXVsdAotICAgIG5hbWUgZm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlci4KLSAgICAiIiIK
LQotICAgIGhhbmRzaGFrZV9pc19kb25lID0gRmFsc2UKLSAgICB0cnk6Ci0gICAgICAgICMgRmFs
bGJhY2sgdG8gZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9yIHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNo
Ci0gICAgICAgICMgd2UgZG9uJ3QgaGF2ZSByZXF1ZXN0IGhhbmRsZXJzLgotICAgICAgICBpZiBu
b3QgX2Rpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC51cmkpOgotICAgICAgICAg
ICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDog
Tm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJyAlIHJlcXVlc3QudXJpLAotICAgICAgICAgICAg
ICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogRmFsbGJhY2sgdG8gQXBhY2hlJywgYXBh
Y2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAg
ZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgotICAgICAgICByZXF1ZXN0Lmxv
Z19lcnJvcigKLSAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IERpc3BhdGNoIGZhaWxlZCBm
b3IgZXJyb3I6ICVzJyAlIGUsCi0gICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAg
ICAgaWYgbm90IGhhbmRzaGFrZV9pc19kb25lOgotICAgICAgICAgICAgcmV0dXJuIGUuc3RhdHVz
Ci0KLSAgICB0cnk6Ci0gICAgICAgIGFsbG93X2RyYWZ0NzUgPSBfcGFyc2Vfb3B0aW9uKAotICAg
ICAgICAgICAgX1BZT1BUX0FMTE9XX0RSQUZUNzUsCi0gICAgICAgICAgICBhcGFjaGUubWFpbl9z
ZXJ2ZXIuZ2V0X29wdGlvbnMoKS5nZXQoX1BZT1BUX0FMTE9XX0RSQUZUNzUpLAotICAgICAgICAg
ICAgX1BZT1BUX0FMTE9XX0RSQUZUNzVfREVGSU5JVElPTikKLQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBoYW5kc2hha2UuZG9faGFuZHNoYWtlKAotICAgICAgICAgICAgICAgIHJlcXVlc3Qs
IF9kaXNwYXRjaGVyLCBhbGxvd0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkKLSAgICAgICAgZXhjZXB0
IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmVxdWVzdC5sb2df
ZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogSGFuZHNoYWtlIGZhaWxl
ZCBmb3IgdmVyc2lvbiBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAgICAgICBhcGFjaGUuQVBM
T0dfSU5GTykKLSAgICAgICAgICAgIHJlcXVlc3QuZXJyX2hlYWRlcnNfb3V0LmFkZChjb21tb24u
U0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlLnN1cHBvcnRlZF92ZXJzaW9ucykKLSAgICAgICAgICAgIHJldHVybiBh
cGFjaGUuSFRUUF9CQURfUkVRVUVTVAotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFr
ZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMgSGFuZHNoYWtlIGZvciB3cy93c3MgZmFpbGVk
LgotICAgICAgICAgICAgIyBTZW5kIGh0dHAgcmVzcG9uc2Ugd2l0aCBlcnJvciBzdGF0dXMuCi0g
ICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICAgICAnbW9kX3B5d2Vi
c29ja2V0OiBIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAg
ICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJldHVybiBlLnN0YXR1cwotCi0g
ICAgICAgIGhhbmRzaGFrZV9pc19kb25lID0gVHJ1ZQotICAgICAgICByZXF1ZXN0Ll9kaXNwYXRj
aGVyID0gX2Rpc3BhdGNoZXIKLSAgICAgICAgX2Rpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1
ZXN0KQotICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAg
ICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21vZF9weXdlYnNvY2tldDogQWJvcnRlZDogJXMnICUg
ZSwgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAg
IyBEaXNwYXRjaEV4Y2VwdGlvbiBjYW4gYWxzbyBiZSB0aHJvd24gaWYgc29tZXRoaW5nIGlzIHdy
b25nIGluCi0gICAgICAgICMgcHl3ZWJzb2NrZXQgY29kZS4gSXQncyBjYXVnaHQgaGVyZSwgdGhl
bi4KLQotICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vic29ja2V0OiBFeGNlcHRp
b24gb2NjdXJyZWQ6ICVzXG4lcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAoZSwgdXRp
bC5nZXRfc3RhY2tfdHJhY2UoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5B
UExPR19FUlIpCi0gICAgICAgICMgVW5rbm93biBleGNlcHRpb25zIGJlZm9yZSBoYW5kc2hha2Ug
bWVhbiBBcGFjaGUgbXVzdCBoYW5kbGUgaXRzCi0gICAgICAgICMgcmVxdWVzdCB3aXRoIGFub3Ro
ZXIgaGFuZGxlci4KLSAgICAgICAgaWYgbm90IGhhbmRzaGFrZV9pc19kb25lOgotICAgICAgICAg
ICAgcmV0dXJuIGFwYWNoZS5ERUNMSU5FRAotICAgICMgU2V0IGFzc2JhY2t3YXJkcyB0byBzdXBw
cmVzcyByZXNwb25zZSBoZWFkZXIgZ2VuZXJhdGlvbiBieSBBcGFjaGUuCi0gICAgcmVxdWVzdC5h
c3NiYWNrd2FyZHMgPSAxCi0gICAgcmV0dXJuIGFwYWNoZS5ET05FICAjIFJldHVybiBET05FIHN1
Y2ggdGhhdCBubyBvdGhlciBoYW5kbGVycyBhcmUgaW52b2tlZC4KLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRlcl91
dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzQ2NTM5MzI4NWZmMWJkNmJmOGQ5OTQwMWNj
Njc0NDIxMjVlMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwyNjMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVXRpbGl0aWVz
IGZvciBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIGhlYWRlcnMgdGhhdCBmb2xsb3cgdGhlIGdyYW1t
YXIgZGVmaW5lZAotaW4gSFRUUCBSRkMgaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjYxNi50
eHQuCi0iIiIKLQotCi1pbXBvcnQgdXJscGFyc2UKLQotCi1fU0VQQVJBVE9SUyA9ICcoKTw+QCw7
OlxcIi9bXT89e30gXHQnCi0KLQotZGVmIF9pc19jaGFyKGMpOgotICAgICIiIlJldHVybnMgdHJ1
ZSBpZmYgYyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIKLQotICAgIHJl
dHVybiBvcmQoYykgPD0gMTI3Ci0KLQotZGVmIF9pc19jdGwoYyk6Ci0gICAgIiIiUmV0dXJucyB0
cnVlIGlmZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4gSFRUUCBSRkMuIiIiCi0KLSAgICBy
ZXR1cm4gb3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcKLQotCi1jbGFzcyBQYXJzaW5nU3Rh
dGUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhKToKLSAgICAgICAgc2Vs
Zi5kYXRhID0gZGF0YQotICAgICAgICBzZWxmLmhlYWQgPSAwCi0KLQotZGVmIHBlZWsoc3RhdGUs
IHBvcz0wKToKLSAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVyIGF0IHBvcyBmcm9tIHRoZSBoZWFk
IG9mIGRhdGEuIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsgcG9zID49IGxlbihzdGF0ZS5kYXRh
KToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJldHVybiBzdGF0ZS5kYXRhW3N0YXRlLmhl
YWQgKyBwb3NdCi0KLQotZGVmIGNvbnN1bWUoc3RhdGUsIGFtb3VudD0xKToKLSAgICAiIiJDb25z
dW1lcyBzcGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20gdGhlIGhlYWQgYW5kIHJldHVybnMg
dGhlCi0gICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mgbm90IGVub3VnaCBieXRlcyB0byBj
b25zdW1lLCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsgYW1v
dW50ID4gbGVuKHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgcmVzdWx0
ID0gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQgKyBhbW91bnRdCi0gICAgc3RhdGUu
aGVhZCA9IHN0YXRlLmhlYWQgKyBhbW91bnQKLSAgICByZXR1cm4gcmVzdWx0Ci0KLQotZGVmIGNv
bnN1bWVfc3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6Ci0gICAgIiIiR2l2ZW4gYSBwYXJzaW5nIHN0
YXRlIGFuZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMgdGhlIHN0cmluZyBmcm9tCi0gICAg
dGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lz
ZSwgcmV0dXJucwotICAgIEZhbHNlLgotICAgICIiIgotCi0gICAgcG9zID0gMAotCi0gICAgZm9y
IGMgaW4gZXhwZWN0ZWQ6Ci0gICAgICAgIGlmIGMgIT0gcGVlayhzdGF0ZSwgcG9zKToKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBwb3MgKz0gMQotCi0gICAgY29uc3VtZShzdGF0
ZSwgcG9zKQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVfbHdzKHN0YXRlKToKLSAg
ICAiIiJDb25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBSZXR1cm5zIFRydWUgaWYgYW55IExX
UyBpcyBjb25zdW1lZC4KLSAgICBPdGhlcndpc2UsIHJldHVybnMgRmFsc2UuCi0KLSAgICBMV1Mg
PSBbQ1JMRl0gMSooIFNQIHwgSFQgKQotICAgICIiIgotCi0gICAgb3JpZ2luYWxfaGVhZCA9IHN0
YXRlLmhlYWQKLQotICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnXHJcbicpCi0KLSAgICBwb3Mg
PSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9zKQotICAg
ICAgICBpZiBjID09ICcgJyBvciBjID09ICdcdCc6Ci0gICAgICAgICAgICBwb3MgKz0gMQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAgICAgICAgICAgICAgc3Rh
dGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY29uc3VtZShzdGF0ZSwgcG9zKQotICAg
ICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVfbHdzZXMoc3RhdGUpOgot
ICAgICIiIkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4iIiIKLQotICAgIHdoaWxlIGNvbnN1
bWVfbHdzKHN0YXRlKToKLSAgICAgICAgcGFzcwotCi0KLWRlZiBjb25zdW1lX3Rva2VuKHN0YXRl
KToKLSAgICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhlIGhlYWQuIFJldHVybnMgdGhlIHRv
a2VuIG9yIE5vbmUgaWYgbm8gdG9rZW4KLSAgICB3YXMgZm91bmQuCi0gICAgIiIiCi0KLSAgICBw
b3MgPSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9zKQot
ICAgICAgICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9y
IG5vdCBfaXNfY2hhcihjKToKLSAgICAgICAgICAgIGlmIHBvcyA9PSAwOgotICAgICAgICAgICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgIHJldHVybiBjb25zdW1lKHN0YXRlLCBwb3Mp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3MgKz0gMQotCi0KLWRlZiBjb25zdW1lX3Rv
a2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpOgotICAgICIiIkNvbnN1bWVzIGEgdG9rZW4gb3Ig
YSBxdW90ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9rZW4gb3IgdW5xdW90ZWQKLSAgICBz
dHJpbmcuIElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcgd2FzIGZvdW5kLCByZXR1cm5zIE5v
bmUuCi0gICAgIiIiCi0KLSAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUuaGVhZAotCi0gICAgaWYg
bm90IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgotICAgICAgICByZXR1cm4gY29uc3VtZV90
b2tlbihzdGF0ZSkKLQotICAgIHJlc3VsdCA9IFtdCi0KLSAgICBleHBlY3RfcXVvdGVkX3BhaXIg
PSBGYWxzZQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgbm90IGV4cGVjdF9xdW90ZWRf
cGFpciBhbmQgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgn
ICcpCi0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGMgPSBjb25zdW1lKHN0YXRlKQot
ICAgICAgICBpZiBjIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIHF1b3RlZC1zdHJpbmcgaXMgbm90
IGVuY2xvc2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgotICAgICAgICAgICAgc3RhdGUuaGVhZCA9
IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsaWYgZXhw
ZWN0X3F1b3RlZF9wYWlyOgotICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gRmFsc2UK
LSAgICAgICAgICAgIGlmIF9pc19jaGFyKGMpOgotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoYykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBOb24gQ0hBUiBjaGFy
YWN0ZXIgZm91bmQgaW4gcXVvdGVkLXBhaXIKLSAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkID0g
b3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsaWYg
YyA9PSAnXFwnOgotICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gVHJ1ZQotICAgICAg
ICBlbGlmIGMgPT0gJyInOgotICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0KQotICAg
ICAgICBlbGlmIF9pc19jdGwoYyk6Ci0gICAgICAgICAgICAjIEludmFsaWQgY2hhcmFjdGVyICVy
IGZvdW5kIGluIHFkdGV4dAotICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1
bHQuYXBwZW5kKGMpCi0KLQotZGVmIHF1b3RlX2lmX25lY2Vzc2FyeShzKToKLSAgICAiIiJRdW90
ZXMgYXJiaXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJpbmcuIiIiCi0KLSAgICBxdW90ZSA9
IEZhbHNlCi0gICAgaWYgcyA9PSAnJzoKLSAgICAgICAgcmV0dXJuICciIicKLQotICAgIHJlc3Vs
dCA9IFtdCi0gICAgZm9yIGMgaW4gczoKLSAgICAgICAgaWYgYyA9PSAnIicgb3IgYyBpbiBfU0VQ
QVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKLSAgICAgICAgICAgIHF1
b3RlID0gVHJ1ZQotCi0gICAgICAgIGlmIGMgPT0gJyInIG9yIF9pc19jdGwoYyk6Ci0gICAgICAg
ICAgICByZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChjKQotCi0gICAgaWYgcXVvdGU6Ci0gICAgICAgIHJldHVybiAnIicgKyAn
Jy5qb2luKHJlc3VsdCkgKyAnIicKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJycuam9pbihy
ZXN1bHQpCi0KLQotZGVmIHBhcnNlX3VyaSh1cmkpOgotICAgICIiIlBhcnNlIGFic29sdXRlIFVS
SSB0aGVuIHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJjZS4iIiIKLQotICAgIHBhcnNlZCA9
IHVybHBhcnNlLnVybHNwbGl0KHVyaSkKLSAgICBpZiBwYXJzZWQuc2NoZW1lICE9ICd3c3MnIGFu
ZCBwYXJzZWQuc2NoZW1lICE9ICd3cyc6Ci0gICAgICAgICMgfHVyaXwgbXVzdCBiZSBhIHJlbGF0
aXZlIFVSSS4KLSAgICAgICAgIyBUT0RPKHRveW9zaGltKTogU2hvdWxkIHZhbGlkYXRlIHx1cml8
LgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgdXJpCi0KLSAgICBpZiBwYXJzZWQuaG9zdG5h
bWUgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKLQotICAgIHBvcnQg
PSBOb25lCi0gICAgdHJ5OgotICAgICAgICBwb3J0ID0gcGFyc2VkLnBvcnQKLSAgICBleGNlcHQg
VmFsdWVFcnJvciwgZToKLSAgICAgICAgIyBwb3J0IHByb3BlcnR5IGNhdXNlIFZhbHVlRXJyb3Ig
b24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRpb24gbGlrZQotICAgICAgICAjICd3czovL2hv
c3Q6L3BhdGgnLgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQotCi0gICAgaWYgcG9y
dCBpcyBOb25lOgotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICd3cyc6Ci0gICAgICAgICAg
ICBwb3J0ID0gODAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBvcnQgPSA0NDMKLQotICAg
IHBhdGggPSBwYXJzZWQucGF0aAotICAgIGlmIG5vdCBwYXRoOgotICAgICAgICBwYXRoICs9ICcv
JwotICAgIGlmIHBhcnNlZC5xdWVyeToKLSAgICAgICAgcGF0aCArPSAnPycgKyBwYXJzZWQucXVl
cnkKLSAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6Ci0gICAgICAgIHBhdGggKz0gJyMnICsgcGFyc2Vk
LmZyYWdtZW50Ci0KLSAgICByZXR1cm4gcGFyc2VkLmhvc3RuYW1lLCBwb3J0LCBwYXRoCi0KLQot
dHJ5OgotICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmluZGV4KCd3cycpCi1leGNlcHQgVmFsdWVF
cnJvciwgZToKLSAgICAjIHVybHBhcnNlIGluIFB5dGhvbjIuNS4xIGRvZXNuJ3QgaGF2ZSAnd3Mn
IGFuZCAnd3NzJyBlbnRyaWVzLgotICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3Mn
KQotICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3NzJykKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5n
ZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ0Y2Q5NTg1OTVhYmRmYzBjNDBkNDMwODQ4ODcw
MGI3YjkzYzZiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw5OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIk1lbW9yaXppbmcgZmlsZS4KLQotQSBtZW1vcml6aW5nIGZpbGUgd3JhcHMg
YSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KLSIiIgotCi0KLWlt
cG9ydCBzeXMKLQotCi1jbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgotICAgICIiIk1lbW9y
aXppbmdGaWxlIHdyYXBzIGEgZmlsZSBhbmQgbWVtb3JpemVzIGxpbmVzIHJlYWQgYnkgcmVhZGxp
bmUuCi0KLSAgICBOb3RlIHRoYXQgZGF0YSByZWFkIGJ5IG90aGVyIG1ldGhvZHMgYXJlIG5vdCBt
ZW1vcml6ZWQuIFRoaXMgYmVoYXZpb3IKLSAgICBpcyBnb29kIGVub3VnaCBmb3IgbWVtb3Jpemlu
ZyBsaW5lcyBTaW1wbGVIVFRQU2VydmVyIHJlYWRzIGJlZm9yZQotICAgIHRoZSBjb250cm9sIHJl
YWNoZXMgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlsZV8sIG1heF9tZW1vcml6ZWRfbGluZXM9c3lzLm1heGludCk6Ci0gICAgICAg
ICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
ZmlsZV86IHRoZSBmaWxlIG9iamVjdCB0byB3cmFwLgotICAgICAgICAgICAgbWF4X21lbW9yaXpl
ZF9saW5lczogdGhlIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIG1lbW9yaXplLgotICAgICAg
ICAgICAgICAgIE9ubHkgdGhlIGZpcnN0IG1heF9tZW1vcml6ZWRfbGluZXMgYXJlIG1lbW9yaXpl
ZC4KLSAgICAgICAgICAgICAgICBEZWZhdWx0OiBzeXMubWF4aW50LgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9maWxlID0gZmlsZV8KLSAgICAgICAgc2VsZi5fbWVtb3JpemVkX2xpbmVz
ID0gW10KLSAgICAgICAgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lcyA9IG1heF9tZW1vcml6ZWRf
bGluZXMKLSAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9idWZm
ZXJlZF9saW5lID0gTm9uZQotCi0gICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSk6
Ci0gICAgICAgIGlmIG5hbWUgaW4gKCdfZmlsZScsICdfbWVtb3JpemVkX2xpbmVzJywgJ19tYXhf
bWVtb3JpemVkX2xpbmVzJywKLSAgICAgICAgICAgICAgICAgICAgJ19idWZmZXJlZCcsICdfYnVm
ZmVyZWRfbGluZScsICdyZWFkbGluZScsCi0gICAgICAgICAgICAgICAgICAgICdnZXRfbWVtb3Jp
emVkX2xpbmVzJyk6Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18o
c2VsZiwgbmFtZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGUuX19nZXRhdHRyaWJ1dGVfXyhu
YW1lKQotCi0gICAgZGVmIHJlYWRsaW5lKHNlbGYsIHNpemU9LTEpOgotICAgICAgICAiIiJPdmVy
cmlkZSBmaWxlLnJlYWRsaW5lIGFuZCBtZW1vcml6ZSB0aGUgbGluZSByZWFkLgotCi0gICAgICAg
IE5vdGUgdGhhdCBldmVuIGlmIHNpemUgaXMgc3BlY2lmaWVkIGFuZCBzbWFsbGVyIHRoYW4gYWN0
dWFsIHNpemUsCi0gICAgICAgIHRoZSB3aG9sZSBsaW5lIHdpbGwgYmUgcmVhZCBvdXQgZnJvbSB1
bmRlcmx5aW5nIGZpbGUgb2JqZWN0IGJ5Ci0gICAgICAgIHN1YnNlcXVlbnQgcmVhZGxpbmUgY2Fs
bHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX2J1ZmZlcmVkOgotICAgICAgICAg
ICAgbGluZSA9IHNlbGYuX2J1ZmZlcmVkX2xpbmUKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlcmVk
ID0gRmFsc2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9maWxlLnJl
YWRsaW5lKCkKLSAgICAgICAgICAgIGlmIGxpbmUgYW5kIGxlbihzZWxmLl9tZW1vcml6ZWRfbGlu
ZXMpIDwgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lczoKLSAgICAgICAgICAgICAgICBzZWxmLl9t
ZW1vcml6ZWRfbGluZXMuYXBwZW5kKGxpbmUpCi0gICAgICAgIGlmIHNpemUgPj0gMCBhbmQgc2l6
ZSA8IGxlbihsaW5lKToKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlcmVkID0gVHJ1ZQotICAgICAg
ICAgICAgc2VsZi5fYnVmZmVyZWRfbGluZSA9IGxpbmVbc2l6ZTpdCi0gICAgICAgICAgICByZXR1
cm4gbGluZVs6c2l6ZV0KLSAgICAgICAgcmV0dXJuIGxpbmUKLQotICAgIGRlZiBnZXRfbWVtb3Jp
emVkX2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXQgbGluZXMgbWVtb3JpemVkIHNvIGZhci4i
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX21lbW9yaXplZF9saW5lcwotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGMxYTAxMTRiNGJjNDE4YjIwZTZhMTU1NjU5ZTkyNTdhYWI3MzZlZi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvbXNndXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIxOSArMCwwIEBACi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJNZXNzYWdlIHJlbGF0ZWQgdXRpbGl0aWVzLgotCi1Ob3Rl
OiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBpbiB0aGlzIG1vZHVsZSwg
ZXZlbiB0aG91Z2gKLW1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0IHRoZXkgc2hvdWxkIGJl
IHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi1oYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2
ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwKLXJlcXVlc3Qud3JpdGUvcmVhZCBhcmUg
bm90IHN1aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJlY3QgcmF3Ci1ieXRlcyB3
cml0aW5nL3JlYWRpbmcuCi0iIiIKLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcK
LQotCi0jIEV4cG9ydCBFeGNlcHRpb24gc3ltYm9scyBmcm9tIG1zZ3V0aWwgZm9yIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQg
Q29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCi0K
LQotIyBBbiBBUEkgZm9yIGhhbmRsZXIgdG8gc2VuZC9yZWNlaXZlIFdlYlNvY2tldCBtZXNzYWdl
cy4KLWRlZiBjbG9zZV9jb25uZWN0aW9uKHJlcXVlc3QpOgotICAgICIiIkNsb3NlIGNvbm5lY3Rp
b24uCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0g
ICAgIiIiCi0gICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0KLQotZGVm
IHNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkX2RhdGEsIGVuZD1UcnVlLCBiaW5hcnk9RmFs
c2UpOgotICAgICIiIlNlbmQgYSBtZXNzYWdlIChvciBwYXJ0IG9mIGEgbWVzc2FnZSkuCi0KLSAg
ICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgIHBh
eWxvYWRfZGF0YTogdW5pY29kZSB0ZXh0IG9yIHN0ciBiaW5hcnkgdG8gc2VuZC4KLSAgICAgICAg
ZW5kOiBUcnVlIHRvIHRlcm1pbmF0ZSBhIG1lc3NhZ2UuCi0gICAgICAgICAgICAgRmFsc2UgdG8g
c2VuZCBwYXlsb2FkX2RhdGEgYXMgcGFydCBvZiBhIG1lc3NhZ2UgdGhhdCBpcyB0byBiZQotICAg
ICAgICAgICAgIHRlcm1pbmF0ZWQgYnkgbmV4dCBvciBsYXRlciBzZW5kX21lc3NhZ2UgY2FsbCB3
aXRoIGVuZD1UcnVlLgotICAgICAgICBiaW5hcnk6IHNlbmQgcGF5bG9hZF9kYXRhIGFzIGJpbmFy
eSBmcmFtZShzKS4KLSAgICBSYWlzZXM6Ci0gICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjog
d2hlbiBzZXJ2ZXIgYWxyZWFkeSB0ZXJtaW5hdGVkLgotICAgICIiIgotICAgIHJlcXVlc3Qud3Nf
c3RyZWFtLnNlbmRfbWVzc2FnZShwYXlsb2FkX2RhdGEsIGVuZCwgYmluYXJ5KQotCi0KLWRlZiBy
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCk6Ci0gICAgIiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFt
ZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEgdGV4dCBpbgotICAgIHVuaWNvZGUgb3IgYSBi
aW5hcnkgaW4gc3RyLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiBy
ZXF1ZXN0LgotICAgIFJhaXNlczoKLSAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiAgICAg
d2hlbiBjbGllbnQgc2VuZCBpbnZhbGlkIGZyYW1lLgotICAgICAgICBVbnN1cHBvcnRlZEZyYW1l
RXhjZXB0aW9uOiB3aGVuIGNsaWVudCBzZW5kIHVuc3VwcG9ydGVkIGZyYW1lIGUuZy4gc29tZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiByZXNlcnZlZCBiaXQgaXMgc2V0
IGJ1dCBubyBleHRlbnNpb24gY2FuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlY29nbml6ZSBpdC4KLSAgICAgICAgSW52YWxpZFVURjhFeGNlcHRpb246ICAgICAgd2hlbiBj
bGllbnQgc2VuZCBhIHRleHQgZnJhbWUgY29udGFpbmluZyBhbnkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW52YWxpZCBVVEYtOCBzdHJpbmcuCi0gICAgICAgIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVkbHkuCi0gICAgICAgIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbjogICAgIHdoZW4gY2xpZW50IGFscmVhZHkgdGVybWluYXRlZC4K
LSAgICAiIiIKLSAgICByZXR1cm4gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkK
LQotCi1kZWYgc2VuZF9waW5nKHJlcXVlc3QsIGJvZHk9JycpOgotICAgIHJlcXVlc3Qud3Nfc3Ry
ZWFtLnNlbmRfcGluZyhib2R5KQotCi0KLWNsYXNzIE1lc3NhZ2VSZWNlaXZlcih0aHJlYWRpbmcu
VGhyZWFkKToKLSAgICAiIiJUaGlzIGNsYXNzIHJlY2VpdmVzIG1lc3NhZ2VzIGZyb20gdGhlIGNs
aWVudC4KLQotICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMgdGhyZWUgd2F5cyB0byByZWNlaXZlIG1l
c3NhZ2VzOiBibG9ja2luZywKLSAgICBub24tYmxvY2tpbmcsIGFuZCB2aWEgY2FsbGJhY2suIENh
bGxiYWNrIGhhcyB0aGUgaGlnaGVzdCBwcmVjZWRlbmNlLgotCi0gICAgTm90ZTogVGhpcyBjbGFz
cyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhbG9uZSBzZXJ2ZXIgZm9yIHdzcwot
ICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkgdGhlIHNlcnZlciByYWlzZXMgYSBmYXRhbCBl
cnJvciBpZiB0aGUgc29ja2V0Ci0gICAgaXMgYWNjZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRz
LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIG9ubWVzc2FnZT1O
b25lKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0gICAgICAgICAgICBv
bm1lc3NhZ2U6IGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYSBtZXNzYWdlIGlzIHJlY2Vp
dmVkLgotICAgICAgICAgICAgICAgICAgICAgICBNYXkgYmUgTm9uZS4gSWYgbm90IE5vbmUsIHRo
ZSBmdW5jdGlvbiBpcyBjYWxsZWQgb24KLSAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlciB0
aHJlYWQuIEluIHRoYXQgY2FzZSwgTWVzc2FnZVJlY2VpdmVyLnJlY2VpdmUKLSAgICAgICAgICAg
ICAgICAgICAgICAgYW5kIE1lc3NhZ2VSZWNlaXZlci5yZWNlaXZlX25vd2FpdCBhcmUgdXNlbGVz
cwotICAgICAgICAgICAgICAgICAgICAgICBiZWNhdXNlIHRoZXkgd2lsbCBuZXZlciByZXR1cm4g
YW55IG1lc3NhZ2VzLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9f
aW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNl
bGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICBzZWxmLl9vbm1lc3NhZ2UgPSBvbm1l
c3NhZ2UKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQotICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLnN0YXJ0KCkKLQotICAgIGRlZiBydW4oc2Vs
Zik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9wX3JlcXVl
c3RlZDoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVjZWl2ZV9tZXNzYWdlKHNlbGYuX3Jl
cXVlc3QpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb25tZXNzYWdlOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9vbm1lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQobWVzc2FnZSkKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZi5fcmVxdWVzdCkKLQotICAg
IGRlZiByZWNlaXZlKHNlbGYpOgotICAgICAgICAiIiIgUmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0
aGUgY2hhbm5lbCwgYmxvY2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIG1l
c3NhZ2UgYXMgYSB1bmljb2RlIHN0cmluZy4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLl9xdWV1ZS5nZXQoKQotCi0gICAgZGVmIHJlY2VpdmVfbm93YWl0KHNlbGYpOgotICAgICAg
ICAiIiIgUmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0aGUgY2hhbm5lbCwgbm9uLWJsb2NraW5nLgot
Ci0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBtZXNzYWdlIGFzIGEgdW5pY29kZSBzdHJp
bmcgaWYgYXZhaWxhYmxlLiBOb25lIG90aGVyd2lzZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9xdWV1ZS5nZXRfbm93YWl0KCkKLSAgICAg
ICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgotICAgICAgICAgICAgbWVzc2FnZSA9IE5vbmUKLSAgICAg
ICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBzdG9wKHNlbGYpOgotICAgICAgICAiIiJSZXF1
ZXN0IHRvIHN0b3AgdGhpcyBpbnN0YW5jZS4KLQotICAgICAgICBUaGUgaW5zdGFuY2Ugd2lsbCBi
ZSBzdG9wcGVkIGFmdGVyIHJlY2VpdmluZyB0aGUgbmV4dCBtZXNzYWdlLgotICAgICAgICBUaGlz
IG1ldGhvZCBtYXkgbm90IGJlIHZlcnkgdXNlZnVsLCBidXQgdGhlcmUgaXMgbm8gY2xlYW4gd2F5
Ci0gICAgICAgIGluIFB5dGhvbiB0byBmb3JjZWZ1bGx5IHN0b3AgYSBydW5uaW5nIHRocmVhZC4K
LSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gVHJ1ZQotCi0KLWNs
YXNzIE1lc3NhZ2VTZW5kZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiVGhpcyBjbGFzcyBz
ZW5kcyBtZXNzYWdlcyB0byB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBjbGFzcyBwcm92aWRlcyBi
b3RoIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgd2F5cyB0byBzZW5kCi0gICAgbWVzc2Fn
ZXMuCi0KLSAgICBOb3RlOiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIHRoZSBz
dGFuZGFsb25lIHNlcnZlciBmb3Igd3NzCi0gICAgYmVjYXVzZSBweU9wZW5TU0wgdXNlZCBieSB0
aGUgc2VydmVyIHJhaXNlcyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzb2NrZXQKLSAgICBpcyBhY2Nl
c3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAg
ICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAg
ICAgICAiIiIKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAg
ICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9xdWV1ZSA9IFF1ZXVlLlF1
ZXVlKCkKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgc2VsZi5zdGFydCgp
Ci0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
bWVzc2FnZSwgY29uZGl0aW9uID0gc2VsZi5fcXVldWUuZ2V0KCkKLSAgICAgICAgICAgIGNvbmRp
dGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHNlbmRfbWVzc2FnZShzZWxmLl9yZXF1ZXN0LCBt
ZXNzYWdlKQotICAgICAgICAgICAgY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBjb25k
aXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBtZXNzYWdlKToKLSAgICAgICAg
IiIiU2VuZCBhIG1lc3NhZ2UsIGJsb2NraW5nLiIiIgotCi0gICAgICAgIGNvbmRpdGlvbiA9IHRo
cmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBjb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
IHNlbGYuX3F1ZXVlLnB1dCgobWVzc2FnZSwgY29uZGl0aW9uKSkKLSAgICAgICAgY29uZGl0aW9u
LndhaXQoKQotCi0gICAgZGVmIHNlbmRfbm93YWl0KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAi
IiJTZW5kIGEgbWVzc2FnZSwgbm9uLWJsb2NraW5nLiIiIgotCi0gICAgICAgIHNlbGYuX3F1ZXVl
LnB1dCgobWVzc2FnZSwgdGhyZWFkaW5nLkNvbmRpdGlvbigpKSkKLQotCi0jIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tdXgucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NjMzNDY4NWIzMTEyMjVlMzg3M2I5YjgyOGVkMDMxYTdlOTA3ODAyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9tdXgucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODg5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIw
MTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25z
IGZvciBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0cDovL3Rv
b2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXdlYnNvY2tldC1tdWx0aXBsZXhpbmct
MDYKLSIiIgotCi0KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGNvcHkKLWltcG9ydCBlbWFp
bAotaW1wb3J0IGVtYWlsLnBhcnNlcgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBv
cnQgc3RydWN0Ci1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdHJhY2ViYWNrCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBo
YW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlk
RnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQg
RnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFt
ZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2lu
Z19oYW5kc2hha2VfYm9keQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9y
dCBjcmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0
IGNyZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0
IGh5YmkKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFVTFRfQ0hBTk5FTF9JRCA9
IDEKLQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKLV9NVVhfT1BDT0RFX0FE
RF9DSEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgotX01V
WF9PUENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9
IDQKLQotX01BWF9DSEFOTkVMX0lEID0gMiAqKiAyOSAtIDEKLQotX0lOSVRJQUxfTlVNQkVSX09G
X0NIQU5ORUxfU0xPVFMgPSA2NAotX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCA9IDggKiAxMDI0
Ci0KLV9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFkgPSAwCi1fSEFORFNIQUtFX0VOQ09ESU5H
X0RFTFRBID0gMQotCi0jIFdlIG5lZWQgb25seSB0aGVzZSBzdGF0dXMgY29kZSBmb3Igbm93Lgot
X0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTID0gewotICAgIGNvbW1vbi5IVFRQX1NUQVRVU19C
QURfUkVRVUVTVDogJ0JhZCBSZXF1ZXN0JywKLX0KLQotIyBEcm9wQ2hhbm5lbCByZWFzb24gY29k
ZQotIyBUT0RPKGJhc2hpKTogRGVmaW5lIGFsbCByZWFzb24gY29kZSBkZWZpbmVkIGluIC0wNSBk
cmFmdC4KLV9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi0KLV9EUk9QX0NPREVfSU5W
QUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UgPSAyMDAxCi1fRFJPUF9DT0RFX0NIQU5ORUxfSURf
VFJVTkNBVEVEID0gMjAwMgotX0RST1BfQ09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNB
VEVEID0gMjAwMwotX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUgPSAyMDA0Ci1fRFJPUF9D
T0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0sgPSAyMDA1Ci1fRFJPUF9DT0RFX0NIQU5ORUxf
QUxSRUFEWV9FWElTVFMgPSAyMDA2Ci1fRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFU
SU9OID0gMjAwNwotX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcgPSAyMDEwCi0K
LV9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04gPSAzMDA1Ci1fRFJPUF9DT0RFX1NFTkRf
UVVPVEFfT1ZFUkZMT1cgPSAzMDA2Ci1fRFJPUF9DT0RFX0FDS05PV0xFREdFRCA9IDMwMDgKLV9E
Uk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04gPSAzMDA5Ci0KLQotY2xhc3MgTXV4VW5leHBlY3Rl
ZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIkV4Y2VwdGlvbiBpbiBoYW5kbGluZyBtdWx0
aXBsZXhpbmcgZXh0ZW5zaW9uLiIiIgotICAgIHBhc3MKLQotCi0jIFRlbXBvcmFyeQotY2xhc3Mg
TXV4Tm90SW1wbGVtZW50ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJSYWlzZWQgd2hl
biBhIGZsb3cgZW50ZXJzIHVuaW1wbGVtZW50ZWQgY29kZSBwYXRoLiIiIgotICAgIHBhc3MKLQot
Ci1jbGFzcyBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAg
ICIiIlJhaXNlZCB3aGVuIGxvZ2ljYWwgY29ubmVjdGlvbiBpcyBncmFjZWZ1bGx5IGNsb3NlZC4i
IiIKLSAgICBwYXNzCi0KLQotY2xhc3MgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoRXhjZXB0aW9u
KToKLSAgICAiIiJSYWlzZWQgd2hlbiB0aGVyZSBpcyBhIHBoeXNpY2FsIGNvbm5lY3Rpb24gZXJy
b3IuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyb3BfY29kZSwgbWVzc2FnZT0nJyk6Ci0g
ICAgICAgIHN1cGVyKFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLCBzZWxmKS5fX2luaXRfXygKLSAg
ICAgICAgICAgICdjb2RlPSVkLCBtZXNzYWdlPSVyJyAlIChkcm9wX2NvZGUsIG1lc3NhZ2UpKQot
ICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRyb3BfY29kZQotICAgICAgICBzZWxmLm1lc3NhZ2Ug
PSBtZXNzYWdlCi0KLQotY2xhc3MgTG9naWNhbENoYW5uZWxFcnJvcihFeGNlcHRpb24pOgotICAg
ICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgbG9naWNhbCBjaGFubmVsIGVycm9yLiIiIgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2U9JycpOgot
ICAgICAgICBzdXBlcihMb2dpY2FsQ2hhbm5lbEVycm9yLCBzZWxmKS5fX2luaXRfXygKLSAgICAg
ICAgICAgICdjaGFubmVsX2lkPSVkLCBjb2RlPSVkLCBtZXNzYWdlPSVyJyAlICgKLSAgICAgICAg
ICAgICAgICBjaGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2UpKQotICAgICAgICBzZWxmLmNo
YW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuZHJvcF9jb2RlID0gZHJvcF9jb2Rl
Ci0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1kZWYgX2VuY29kZV9jaGFubmVs
X2lkKGNoYW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgotICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNoYW5uZWxf
aWQpCi0KLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAgICByZXR1cm4gY2hyKGNo
YW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0gICAgICAgIHJldHVybiBz
dHJ1Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQg
PCAyICoqIDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQgPj4gMTYp
KQotICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVsX2lkICYg
MHhmZmZmKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAgICAgICByZXR1cm4gc3Ry
dWN0LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0KLSAgICByYWlzZSBWYWx1
ZUVycm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQotCi0KLWRl
ZiBfZW5jb2RlX251bWJlcihudW1iZXIpOgotICAgIHJldHVybiBjcmVhdGVfbGVuZ3RoX2hlYWRl
cihudW1iZXIsIEZhbHNlKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNo
YW5uZWxfaWQsIGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW5jb2Rpbmc9MCwgcmVqZWN0ZWQ9RmFsc2UpOgotICAgIGlmIGVuY29kaW5nICE9IDAg
YW5kIGVuY29kaW5nICE9IDE6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgZW5j
b2RpbmcgJWQnICUgZW5jb2RpbmcpCi0KLSAgICBmaXJzdF9ieXRlID0gKChfTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVNQT05TRSA8PCA1KSB8Ci0gICAgICAgICAgICAgICAgICAocmVqZWN0ZWQg
PDwgNCkgfCBlbmNvZGluZykKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAg
ICAgICAgIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgX2Vu
Y29kZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKwotICAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX2Ryb3BfY2hh
bm5lbChjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgIGlmIGxlbihtZXNz
YWdlKSA+IDAgYW5kIGNvZGUgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ29k
ZSBtdXN0IGJlIHNwZWNpZmllZCBpZiBtZXNzYWdlIGlzIHNwZWNpZmllZCcpCi0KLSAgICBmaXJz
dF9ieXRlID0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMIDw8IDUKLSAgICBibG9jayA9IGNocihm
aXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKQotICAgIGlmIGNvZGUg
aXMgTm9uZToKLSAgICAgICAgYmxvY2sgKz0gX2VuY29kZV9udW1iZXIoMCkgIyBSZWFzb24gc2l6
ZQotICAgIGVsc2U6Ci0gICAgICAgIHJlYXNvbiA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsg
bWVzc2FnZQotICAgICAgICByZWFzb25fc2l6ZSA9IF9lbmNvZGVfbnVtYmVyKGxlbihyZWFzb24p
KQotICAgICAgICBibG9jayArPSByZWFzb25fc2l6ZSArIHJlYXNvbgotCi0gICAgcmV0dXJuIGJs
b2NrCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVk
X3F1b3RhKToKLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfRkxPV19DT05UUk9MIDw8IDUK
LSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfY2hh
bm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgX2VuY29kZV9udW1iZXIocmVwbGVu
aXNoZWRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX25ld19jaGFu
bmVsX3Nsb3Qoc2xvdHMsIHNlbmRfcXVvdGEpOgotICAgIGlmIHNsb3RzIDwgMCBvciBzZW5kX3F1
b3RhIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc2xvdHMgYW5kIHNlbmRfcXVvdGEg
bXVzdCBiZSBub24tbmVnYXRpdmUuJykKLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfTkVX
X0NIQU5ORUxfU0xPVCA8PCA1Ci0gICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsKLSAgICAg
ICAgICAgICBfZW5jb2RlX251bWJlcihzbG90cykgKwotICAgICAgICAgICAgIF9lbmNvZGVfbnVt
YmVyKHNlbmRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfY3JlYXRlX2ZhbGxi
YWNrX25ld19jaGFubmVsX3Nsb3QoKToKLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX05F
V19DSEFOTkVMX1NMT1QgPDwgNSkgfCAxICMgU2V0IHRoZSBGIGZsYWcKLSAgICBibG9jayA9IChj
aHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX251bWJlcigwKSArIF9lbmNvZGVfbnVtYmVyKDApKQot
ICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfcGFyc2VfcmVxdWVzdF90ZXh0KHJlcXVlc3RfdGV4
dCk6Ci0gICAgcmVxdWVzdF9saW5lLCBoZWFkZXJfbGluZXMgPSByZXF1ZXN0X3RleHQuc3BsaXQo
J1xyXG4nLCAxKQotCi0gICAgd29yZHMgPSByZXF1ZXN0X2xpbmUuc3BsaXQoJyAnKQotICAgIGlm
IGxlbih3b3JkcykgIT0gMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIFJlcXVlc3Qt
TGluZSBzeW50YXggJXInICUgcmVxdWVzdF9saW5lKQotICAgIFtjb21tYW5kLCBwYXRoLCB2ZXJz
aW9uXSA9IHdvcmRzCi0gICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdCYWQgcmVxdWVzdCB2ZXJzaW9uICVyJyAlIHZlcnNpb24pCi0KLSAgICAj
IGVtYWlsLnBhcnNlci5QYXJzZXIoKSBwYXJzZXMgUkZDIDI4MjIgKFJGQyA4MjIpIHN0eWxlIGhl
YWRlcnMuCi0gICAgIyBSRkMgNjQ1NSByZWZlcnMgUkZDIDI2MTYgZm9yIGhhbmRzaGFrZSBwYXJz
aW5nLCBhbmQgUkZDIDI2MTYgcmVmZXJzCi0gICAgIyBSRkMgODIyLgotICAgIGhlYWRlcnMgPSBl
bWFpbC5wYXJzZXIuUGFyc2VyKCkucGFyc2VzdHIoaGVhZGVyX2xpbmVzKQotICAgIHJldHVybiBj
b21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzCi0KLQotY2xhc3MgX0NvbnRyb2xCbG9jayhv
YmplY3QpOgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgcGFyc2luZyByZXN1bHQgb2Yg
bXVsdGlwbGV4aW5nIGNvbnRyb2wgYmxvY2suCi0gICAgQ29udHJvbCBibG9jayBzcGVjaWZpYyBh
dHRyaWJ1dGVzIHdpbGwgYmUgYWRkZWQgYnkgX011eEZyYW1lUGF5bG9hZFBhcnNlci4KLSAgICAo
ZS5nLiBlbmNvZGVkX2hhbmRzaGFrZSB3aWxsIGJlIGFkZGVkIGZvciBBZGRDaGFubmVsUmVxdWVz
dCBhbmQKLSAgICBBZGRDaGFubmVsUmVzcG9uc2UpCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKLQotCi1jbGFz
cyBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyB0aGF0IHBh
cnNlcyBtdWx0aXBsZXhlZCBmcmFtZSBwYXlsb2FkLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBheWxvYWQpOgotICAgICAgICBzZWxmLl9kYXRhID0gcGF5bG9hZAotICAgICAgICBzZWxm
Ll9yZWFkX3Bvc2l0aW9uID0gMAotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFz
c19sb2dnZXIoc2VsZikKLQotICAgIGRlZiByZWFkX2NoYW5uZWxfaWQoc2VsZik6Ci0gICAgICAg
ICIiIlJlYWRzIGNoYW5uZWwgaWQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgVmFs
dWVFcnJvcjogd2hlbiB0aGUgcGF5bG9hZCBkb2Vzbid0IGNvbnRhaW4KLSAgICAgICAgICAgICAg
ICB2YWxpZCBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLQotICAgICAgICByZW1haW5pbmdfbGVu
Z3RoID0gbGVuKHNlbGYuX2RhdGEpIC0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBwb3Mg
PSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPT0gMDoK
LSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQn
KQotCi0gICAgICAgIGNoYW5uZWxfaWQgPSBvcmQoc2VsZi5fZGF0YVtwb3NdKQotICAgICAgICBj
aGFubmVsX2lkX2xlbmd0aCA9IDEKLSAgICAgICAgaWYgY2hhbm5lbF9pZCAmIDB4ZTAgPT0gMHhl
MDoKLSAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCA0OgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAg
ICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcys0XSlbMF0gJiAweDFmZmZmZmZm
Ci0gICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKLSAgICAgICAgZWxpZiBjaGFubmVs
X2lkICYgMHhjMCA9PSAweGMwOgotICAgICAgICAgICAgaWYgcmVtYWluaW5nX2xlbmd0aCA8IDM6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBjaGFubmVsIGlkIGZv
cm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9pZCAmIDB4MWYpIDw8
IDE2KSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soJyFIJywgc2Vs
Zi5fZGF0YVtwb3MrMTpwb3MrM10pWzBdKQotICAgICAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGgg
PSAzCi0gICAgICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAgICAg
IGlmIHJlbWFpbmluZ19sZW5ndGggPCAyOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9
IHN0cnVjdC51bnBhY2soJyFIJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2RhdGFbcG9zOnBvcysyXSlbMF0gJiAweDNmZmYKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWRfbGVuZ3RoID0gMgotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IGNoYW5uZWxf
aWRfbGVuZ3RoCi0KLSAgICAgICAgcmV0dXJuIGNoYW5uZWxfaWQKLQotICAgIGRlZiByZWFkX2lu
bmVyX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBhbiBpbm5lciBmcmFtZS4KLQotICAg
ICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcjogd2hlbiB0
aGUgaW5uZXIgZnJhbWUgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgbGVu
KHNlbGYuX2RhdGEpID09IHNlbGYuX3JlYWRfcG9zaXRpb246Ci0gICAgICAgICAgICByYWlzZSBQ
aHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0VOQ0FQ
U1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQpCi0KLSAgICAgICAgYml0cyA9IG9yZChzZWxmLl9k
YXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9
IDEKLSAgICAgICAgZmluID0gKGJpdHMgJiAweDgwKSA9PSAweDgwCi0gICAgICAgIHJzdjEgPSAo
Yml0cyAmIDB4NDApID09IDB4NDAKLSAgICAgICAgcnN2MiA9IChiaXRzICYgMHgyMCkgPT0gMHgy
MAotICAgICAgICByc3YzID0gKGJpdHMgJiAweDEwKSA9PSAweDEwCi0gICAgICAgIG9wY29kZSA9
IGJpdHMgJiAweGYKLSAgICAgICAgcGF5bG9hZCA9IHNlbGYucmVtYWluaW5nX2RhdGEoKQotICAg
ICAgICAjIENvbnN1bWUgcmVzdCBvZiB0aGUgbWVzc2FnZSB3aGljaCBpcyBwYXlsb2FkIGRhdGEg
b2YgdGhlIG9yaWdpbmFsCi0gICAgICAgICMgZnJhbWUuCi0gICAgICAgIHNlbGYuX3JlYWRfcG9z
aXRpb24gPSBsZW4oc2VsZi5fZGF0YSkKLSAgICAgICAgcmV0dXJuIGZpbiwgcnN2MSwgcnN2Miwg
cnN2Mywgb3Bjb2RlLCBwYXlsb2FkCi0KLSAgICBkZWYgX3JlYWRfbnVtYmVyKHNlbGYpOgotICAg
ICAgICBpZiBzZWxmLl9yZWFkX3Bvc2l0aW9uICsgMSA+IGxlbihzZWxmLl9kYXRhKToKLSAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkIHRo
ZSBmaXJzdCBieXRlIG9mIG51bWJlciBmaWVsZCcpCi0KLSAgICAgICAgbnVtYmVyID0gb3JkKHNl
bGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCi0gICAgICAgIGlmIG51bWJlciAmIDB4ODAg
PT0gMHg4MDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAg
J1RoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBudW1iZXIgc2hv
dWxkICcKLSAgICAgICAgICAgICAgICAnYmUgdW5zZXQnKQotICAgICAgICBzZWxmLl9yZWFkX3Bv
c2l0aW9uICs9IDEKLSAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgotICAgICAgICBp
ZiBudW1iZXIgPT0gMTI3OgotICAgICAgICAgICAgaWYgcG9zICsgOCA+IGxlbihzZWxmLl9kYXRh
KToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51bWJlciBmaWVs
ZCcpCi0gICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDgKLSAgICAgICAgICAgIG51
bWJlciA9IHN0cnVjdC51bnBhY2soJyFRJywgc2VsZi5fZGF0YVtwb3M6cG9zKzhdKVswXQotICAg
ICAgICAgICAgaWYgbnVtYmVyID4gMHg3RkZGRkZGRkZGRkZGRkZGOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0VuY29kZWQgbnVtYmVyKCVkKSA+PSAyXjYzJyAlIG51bWJlcikK
LSAgICAgICAgICAgIGlmIG51bWJlciA8PSAweEZGRkY6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3QgYmUgZW5jb2Rl
ZCBieSA5IGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKLSAgICAgICAgICAgIHJldHVybiBudW1i
ZXIKLSAgICAgICAgaWYgbnVtYmVyID09IDEyNjoKLSAgICAgICAgICAgIGlmIHBvcyArIDIgPiBs
ZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxp
ZCBudW1iZXIgZmllbGQnKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlvbiArPSAyCi0g
ICAgICAgICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHNlbGYuX2RhdGFbcG9zOnBv
cysyXSlbMF0KLSAgICAgICAgICAgIGlmIG51bWJlciA8PSAxMjU6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3QgYmUg
ZW5jb2RlZCBieSAzIGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKLSAgICAgICAgcmV0dXJuIG51
bWJlcgotCi0gICAgZGVmIF9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgotICAgICAgICAi
IiJSZWFkcyBkYXRhIHRoYXQgY29uc2lzdHMgb2YgZm9sbG93aW5nczoKLSAgICAgICAgICAgIC0g
dGhlIHNpemUgb2YgdGhlIGNvbnRlbnRzIGVuY29kZWQgdGhlIHNhbWUgd2F5IGFzIHBheWxvYWQg
bGVuZ3RoCi0gICAgICAgICAgICAgIG9mIHRoZSBXZWJTb2NrZXQgUHJvdG9jb2wgd2l0aCAxIGJp
dCBwYWRkaW5nIGF0IHRoZSBoZWFkLgotICAgICAgICAgICAgLSB0aGUgY29udGVudHMuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNpemUgPSBzZWxmLl9yZWFkX251
bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2Ug
UGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JM
T0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGUpKQot
ICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIHBvcyArIHNpemUg
PiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxP
Q0ssCi0gICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkICVkIGJ5dGVzIGRhdGEnICUgc2l6ZSkK
LQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IHNpemUKLSAgICAgICAgcmV0dXJuIHNl
bGYuX2RhdGFbcG9zOnBvcytzaXplXQotCi0gICAgZGVmIF9yZWFkX2FkZF9jaGFubmVsX3JlcXVl
c3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0g
KGZpcnN0X2J5dGUgPj4gMikgJiAweDcKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAg
ICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9E
Uk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVz
ZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICAjIEludmFsaWQgZW5jb2Rpbmcg
d2lsbCBiZSBoYW5kbGVkIGJ5IE11eEhhbmRsZXIuCi0gICAgICAgIGVuY29kaW5nID0gZmlyc3Rf
Ynl0ZSAmIDB4MwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5u
ZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
LCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09E
RV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICBjb250cm9sX2Jsb2NrLmVuY29k
aW5nID0gZW5jb2RpbmcKLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBzZWxmLl9yZWFkX3Np
emVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVkX2hhbmRzaGFr
ZSA9IGVuY29kZWRfaGFuZHNoYWtlCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAg
ICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJv
bF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDMKLSAg
ICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVj
dGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJP
TF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykK
LQotICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVkID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAx
Ci0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYgMHgzCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9IHNlbGYucmVh
ZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NP
TlRST0xfQkxPQ0spCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RlZF9oYW5kc2hha2UgPSBz
ZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgcmV0dXJuIGNvbnRyb2xfYmxv
Y2sKLQotICAgIGRlZiBfcmVhZF9mbG93X2NvbnRyb2woc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJv
bF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWYKLSAgICAgICAg
aWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVy
cm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9D
SywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJl
YWRfY2hhbm5lbF9pZCgpCi0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRfcXVvdGEgPSBz
ZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAg
ICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01V
WF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RyKGUpKQotCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3Jl
YWRfZHJvcF9jaGFubmVsKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spOgotICAgICAg
ICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFmCi0gICAgICAgIGlmIHJlc2VydmVkICE9IDA6
Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAg
ICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAg
ICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5uZWxfaWQoKQot
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2Fs
Q29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSykKLSAg
ICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCi0gICAgICAgIGlm
IGxlbihyZWFzb24pID09IDA6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfY29kZSA9
IE5vbmUKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0gJycKLSAgICAg
ICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5kcm9w
X2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCi0gICAgICAgICAgICBj
b250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAg
IF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAn
UmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBjb25haW5zIG9ubHkgMS1ieXRlIHJlYXNvbicpCi0g
ICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfbmV3X2NoYW5uZWxf
c2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAgICAgICAgcmVzZXJ2ZWQg
PSBmaXJzdF9ieXRlICYgMHgxZQotICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgotICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1Bf
Q09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICdSZXNlcnZl
ZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotICAgICAgICBjb250cm9sX2Jsb2NrLmZhbGxiYWNrID0g
Zmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5z
bG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suc2Vu
ZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Is
IGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RF
X0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHIoZSkpCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAg
ICBkZWYgcmVhZF9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgIiIiUmVhZHMgY29udHJv
bCBibG9jayhzKS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgIFBoeXNpY2FsQ29ubmVj
dGlvbkVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGNvbnRhaW5zIGludmFsaWQgY29udHJvbAotICAg
ICAgICAgICAgICAgYmxvY2socykuCi0gICAgICAgICAgIFN0b3BJdGVyYXRpb246IHdoZW4gbm8g
Y29udHJvbCBibG9ja3MgbGVmdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgd2hpbGUgc2VsZi5f
cmVhZF9wb3NpdGlvbiA8IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgIGZpcnN0X2J5dGUg
PSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAgICAgICAgICAgIHNlbGYu
X3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4g
NSkgJiAweDcKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29k
ZT1vcGNvZGUpCi0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5O
RUxfUkVRVUVTVDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9jaGFubmVs
X3JlcXVlc3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAg
IHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0gICAgICAgICAgICAgICAg
ICAgIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9
PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAgICAgeWllbGQgc2VsZi5f
cmVhZF9mbG93X2NvbnRyb2woZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAg
IGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgICAg
ICB5aWVsZCBzZWxmLl9yZWFkX2Ryb3BfY2hhbm5lbChmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2Nr
KQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xP
VDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX25ld19jaGFubmVsX3Nsb3QoZmly
c3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9E
Uk9QX0NPREVfVU5LTk9XTl9NVVhfT1BDT0RFLAotICAgICAgICAgICAgICAgICAgICAnSW52YWxp
ZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQotCi0gICAgICAgIGFzc2VydCBzZWxmLl9yZWFkX3Bvc2l0
aW9uID09IGxlbihzZWxmLl9kYXRhKQotICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCi0KLSAg
ICBkZWYgcmVtYWluaW5nX2RhdGEoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgcmVtYWluaW5n
IGRhdGEuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlv
bjpdCi0KLQotY2xhc3MgX0xvZ2ljYWxSZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiTWltaWNzIG1v
ZF9weXRob24gcmVxdWVzdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lk
LCBjb21tYW5kLCBwYXRoLCBwcm90b2NvbCwgaGVhZGVycywKLSAgICAgICAgICAgICAgICAgY29u
bmVjdGlvbik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAg
QXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IHRoZSBjaGFubmVsIGlkIG9mIHRoZSBsb2dp
Y2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBjb21tYW5kOiBIVFRQIHJlcXVlc3QgY29tbWFuZC4K
LSAgICAgICAgICAgIHBhdGg6IEhUVFAgcmVxdWVzdCBwYXRoLgotICAgICAgICAgICAgaGVhZGVy
czogSFRUUCBoZWFkZXJzLgotICAgICAgICAgICAgY29ubmVjdGlvbjogX0xvZ2ljYWxDb25uZWN0
aW9uIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLmNoYW5uZWxfaWQgPSBj
aGFubmVsX2lkCi0gICAgICAgIHNlbGYubWV0aG9kID0gY29tbWFuZAotICAgICAgICBzZWxmLnVy
aSA9IHBhdGgKLSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNlbGYu
aGVhZGVyc19pbiA9IGhlYWRlcnMKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gY29ubmVjdGlv
bgotICAgICAgICBzZWxmLnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5j
bGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICBkZWYgaXNfaHR0cHMoc2VsZik6Ci0gICAg
ICAgICIiIk1pbWljcyByZXF1ZXN0LmlzX2h0dHBzKCkuIFJldHVybnMgRmFsc2UgYmVjYXVzZSB0
aGlzIG1ldGhvZCBpcwotICAgICAgICB1c2VkIG9ubHkgYnkgb2xkIHByb3RvY29scyAoaGl4aWUg
YW5kIGh5YmkwMCkuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNs
YXNzIF9Mb2dpY2FsQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIk1pbWljcyBtb2RfcHl0aG9u
IG1wX2Nvbm4uIiIiCi0KLSAgICAjIEZvciBkZXRhaWxzLCBzZWUgdGhlIGNvbW1lbnQgb2Ygc2V0
X3JlYWRfc3RhdGUoKS4KLSAgICBTVEFURV9BQ1RJVkUgPSAxCi0gICAgU1RBVEVfR1JBQ0VGVUxM
WV9DTE9TRUQgPSAyCi0gICAgU1RBVEVfVEVSTUlOQVRFRCA9IDMKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtdXhfaGFuZGxlciwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMg
YW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBf
TXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IGNoYW5uZWwgaWQg
b2YgdGhpcyBjb25uZWN0aW9uLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9tdXhfaGFu
ZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfaWQgPSBjaGFubmVsX2lk
Ci0gICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSAnJwotCi0gICAgICAgICMgLSBQcm90ZWN0
cyBfd2FpdGluZ193cml0ZV9jb21wbGV0aW9uCi0gICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJl
YWQgd2FpdGluZyBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSBieSBtdXggaGFuZGxlcgotICAgICAg
ICBzZWxmLl93cml0ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAg
c2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLQotICAgICAgICBzZWxmLl9y
ZWFkX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBzZWxmLl9yZWFk
X3N0YXRlID0gc2VsZi5TVEFURV9BQ1RJVkUKLQotICAgIGRlZiBnZXRfbG9jYWxfYWRkcihzZWxm
KToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9jYWxfYWRkci4iIiIKLQot
ICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5nZXRf
bG9jYWxfYWRkcigpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQot
Ci0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1p
bWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX211eF9o
YW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24uZ2V0X3JlbW90ZV9hZGRyKCkKLSAgICByZW1vdGVf
YWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotICAgIGRlZiBnZXRfbWVtb3JpemVk
X2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXRzIG1lbW9yaXplZCBsaW5lcy4gTm90IHN1cHBv
cnRlZC4iIiIKLQotICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKCdfTG9naWNh
bENvbm5lY3Rpb24gZG9lcyBub3Qgc3VwcG9ydCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ2dldF9tZW1vcml6ZWRfbGluZXMnKQotCi0gICAgZGVmIHdyaXRlKHNlbGYs
IGRhdGEpOgotICAgICAgICAiIiJXcml0ZXMgZGF0YS4gbXV4X2hhbmRsZXIgc2VuZHMgZGF0YSBh
c3luY2hyb25vdXNseS4gVGhlIGNhbGxlciB3aWxsCi0gICAgICAgIGJlIHN1c3BlbmRlZCB1bnRp
bCB3cml0ZSBkb25lLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRhOiBkYXRhIHRv
IGJlIHdyaXR0ZW4uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgTXV4VW5leHBlY3Rl
ZEV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgYmVmb3JlIGZpbmlzaGluZyB0aGUgcHJldmlvdXMKLSAg
ICAgICAgICAgICAgICB3cml0ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2Vs
Zi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgotICAgICAgICAgICAgICAgIHJhaXNlIE11eFVu
ZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rp
b24gJWQgaXMgYWxyZWFkeSB3YWl0aW5nIHRoZSBjb21wbGV0aW9uICcKLSAgICAgICAgICAgICAg
ICAgICAgJ29mIHdyaXRlJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0KLSAgICAgICAgICAgIHNlbGYu
X3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX211eF9o
YW5kbGVyLnNlbmRfZGF0YShzZWxmLl9jaGFubmVsX2lkLCBkYXRhKQotICAgICAgICAgICAgc2Vs
Zi5fd3JpdGVfY29uZGl0aW9uLndhaXQoKQotICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTog
UmFpc2UgYW4gZXhjZXB0aW9uIGlmIHdva2UgdXAgYnkgb25fd3JpdGVyX2RvbmUuCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0K
LSAgICBkZWYgd3JpdGVfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJXcml0
ZXMgZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4gRG9uJ3Qgd2FpdCBmaW5pc2hpbmcgd3Jp
dGUKLSAgICAgICAgYmVjYXVzZSB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkIGJ5IG11eCBkaXNw
YXRjaGVyLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRhOiBkYXRhIHRvIGJlIHdy
aXR0ZW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnNlbmRfY29u
dHJvbF9kYXRhKGRhdGEpCi0KLSAgICBkZWYgb25fd3JpdGVfZGF0YV9kb25lKHNlbGYpOgotICAg
ICAgICAiIiJDYWxsZWQgd2hlbiBzZW5kaW5nIGRhdGEgaXMgY29tcGxldGVkLiIiIgotCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb246Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAg
ICAgJ0ludmFsaWQgY2FsbCBvZiBvbl93cml0ZV9kYXRhX2RvbmUgZm9yIGxvZ2ljYWwgJwotICAg
ICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbiAlZCcgJSBzZWxmLl9jaGFubmVsX2lkKQotICAg
ICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLSAgICAgICAg
ICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIG9uX3dy
aXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJDYWxsZWQgYnkgdGhlIG11eCBoYW5kbGVyIHdo
ZW4gdGhlIHdyaXRlciB0aHJlYWQgaGFzIGZpbmlzaGVkLiIiIgotCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHNl
bGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCi0gICAgICAgICAgICBzZWxmLl93
cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi0gICAgZGVmIGFwcGVuZF9mcmFtZV9k
YXRhKHNlbGYsIGZyYW1lX2RhdGEpOgotICAgICAgICAiIiJBcHBlbmRzIGluY29taW5nIGZyYW1l
IGRhdGEuIENhbGxlZCB3aGVuIG11eF9oYW5kbGVyIGRpc3BhdGNoZXMKLSAgICAgICAgZnJhbWUg
ZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlvbi4KLQotICAgICAgICBBcmdzOgot
ICAgICAgICAgICAgZnJhbWVfZGF0YTogaW5jb21pbmcgZnJhbWUgZGF0YS4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYu
X2luY29taW5nX2RhdGEgKz0gZnJhbWVfZGF0YQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlv
bi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAg
IGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJlYWRzIGRhdGEuIEJsb2NrcyB1
bnRpbCBlbm91Z2ggZGF0YSBoYXMgYXJyaXZlZCB2aWEgcGh5c2ljYWwKLSAgICAgICAgY29ubmVj
dGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbGVuZ3RoOiBsZW5ndGggb2YgZGF0
YSB0byBiZSByZWFkLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBMb2dpY2FsQ29ubmVj
dGlvbkNsb3NlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBmb3IgdGhpcwotICAg
ICAgICAgICAgICAgIGxvZ2ljYWwgY2hhbm5lbCBoYXMgYmVlbiByZWNlaXZlZC4KLSAgICAgICAg
ICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBwaHlzaWNhbCBjb25u
ZWN0aW9uIGhhcwotICAgICAgICAgICAgICAgIGNsb3NlZCwgb3IgYW4gZXJyb3IgaXMgY2F1c2Vk
IG9uIHRoZSByZWFkZXIgdGhyZWFkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9yZWFk
X2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgd2hpbGUgKHNlbGYuX3JlYWRfc3RhdGUgPT0g
c2VsZi5TVEFURV9BQ1RJVkUgYW5kCi0gICAgICAgICAgICAgICBsZW4oc2VsZi5faW5jb21pbmdf
ZGF0YSkgPCBsZW5ndGgpOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ud2FpdCgp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgc2VsZi5fcmVhZF9zdGF0ZSA9PSBzZWxm
LlNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEOgotICAgICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxD
b25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBj
aGFubmVsICVkIGhhcyBjbG9zZWQuJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0gICAgICAgICAgICBl
bGlmIHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9URVJNSU5BVEVEOgotICAgICAgICAg
ICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBMb2dpY2FsIGNoYW5uZWwgKCVkKSBj
bG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCwgc2VsZi5fY2hhbm5lbF9pZCkp
Ci0KLSAgICAgICAgICAgIHZhbHVlID0gc2VsZi5faW5jb21pbmdfZGF0YVs6bGVuZ3RoXQotICAg
ICAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSA9IHNlbGYuX2luY29taW5nX2RhdGFbbGVuZ3Ro
Ol0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJl
bGVhc2UoKQotCi0gICAgICAgIHJldHVybiB2YWx1ZQotCi0gICAgZGVmIHNldF9yZWFkX3N0YXRl
KHNlbGYsIG5ld19zdGF0ZSk6Ci0gICAgICAgICIiIlNldHMgdGhlIHN0YXRlIG9mIHRoaXMgY29u
bmVjdGlvbi4gQ2FsbGVkIHdoZW4gYW4gZXZlbnQgZm9yIHRoaXMKLSAgICAgICAgY29ubmVjdGlv
biBoYXMgb2NjdXJyZWQuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG5ld19zdGF0ZTog
c3RhdGUgdG8gYmUgc2V0LiBuZXdfc3RhdGUgbXVzdCBiZSBvbmUgb2YgZm9sbG93aW5nczoKLSAg
ICAgICAgICAgIC0gU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6IHdoZW4gY2xvc2luZyBoYW5kc2hh
a2UgZm9yIHRoaXMKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGhhcyBiZWVuIHJlY2VpdmVk
LgotICAgICAgICAgICAgLSBTVEFURV9URVJNSU5BVEVEOiB3aGVuIHRoZSBwaHlzaWNhbCBjb25u
ZWN0aW9uIGhhcyBjbG9zZWQgb3IKLSAgICAgICAgICAgICAgICBEcm9wQ2hhbm5lbCBvZiB0aGlz
IGNvbm5lY3Rpb24gaGFzIHJlY2VpdmVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9y
ZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fcmVhZF9zdGF0ZSA9IG5ld19z
dGF0ZQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxm
Ll9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlKG9iamVj
dCk6Ci0gICAgIiIiSG9sZHMgdGhlIHJlc3VsdCBvZiBfSW5uZXJNZXNzYWdlQnVpbGRlci5idWls
ZCgpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSwgcGF5bG9hZCk6
Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBh
eWxvYWQKLQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlQnVpbGRlcihvYmplY3QpOgotICAgICIiIkEg
Y2xhc3MgdGhhdCBob2xkcyB0aGUgY29udGV4dCBvZiBpbm5lciBtZXNzYWdlIGZyYWdtZW50YXRp
b24gYW5kCi0gICAgYnVpbGRzIGEgbWVzc2FnZSBmcm9tIGZyYWdtZW50ZWQgaW5uZXIgZnJhbWUo
cykuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2Nv
bnRyb2xfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21l
bnRzID0gW10KLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBOb25lCi0gICAgICAgIHNl
bGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9mcmFtZV9o
YW5kbGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0KLSAgICBkZWYgX2hhbmRsZV9maXJzdChzZWxm
LCBmcmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbignU2VuZGlu
ZyBpbnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUnKQotCi0gICAgICAgIGlmIGNvbW1vbi5pc19j
b250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3By
b2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKGZyYW1lKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9tZXNzYWdlKGZy
YW1lKQotCi0gICAgZGVmIF9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBm
cmFtZSk6Ci0gICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCi0gICAg
ICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQp
Ci0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5k
bGVyID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfY29udHJvbAotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9s
KCkKLQotICAgIGRlZiBfcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZiwgZnJh
bWUpOgotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IGZyYW1lLm9wY29kZQotICAgICAg
ICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQot
ICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgc2VsZi5fZnJhbWVfaGFuZGxl
ciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2UKLSAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfbWVzc2FnZSgp
Ci0KLSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVkX2NvbnRyb2woc2VsZiwgZnJhbWUpOgotICAg
ICAgICBpZiBmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Nl
bmRpbmcgaW52YWxpZCBvcGNvZGUgJWQgd2hpbGUgc2VuZGluZyBmcmFnbWVudGVkIGNvbnRyb2wg
JwotICAgICAgICAgICAgICAgICdtZXNzYWdlJyAlIGZyYW1lLm9wY29kZSkKLSAgICAgICAgc2Vs
Zi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAg
ICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJl
dHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbCgpCi0KLSAgICBkZWYgX3Jl
YXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYpOgotICAgICAgICBvcGNvZGUgPSBzZWxm
Ll9jb250cm9sX29wY29kZQotICAgICAgICBwYXlsb2FkID0gJycuam9pbihzZWxmLl9wZW5kaW5n
X2NvbnRyb2xfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9jb250cm9sX29wY29kZSA9IE5vbmUK
LSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIGlm
IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZnJh
bWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2UKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QK
LSAgICAgICAgcmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVm
IF9oYW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIyBTZW5k
ZXIgY2FuIGludGVybGVhdmUgYSBjb250cm9sIG1lc3NhZ2Ugd2hpbGUgc2VuZGluZyBmcmFnbWVu
dGVkCi0gICAgICAgICMgbWVzc2FnZXMuCi0gICAgICAgIGlmIGNvbW1vbi5pc19jb250cm9sX29w
Y29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgaWYgc2VsZi5fY29udHJvbF9vcGNvZGUg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ1Nob3VsZCBub3QgcmVhY2ggaGVyZShCdWcgaW4gYnVp
bGRlciknKQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRl
ZF9jb250cm9sKGZyYW1lKQotCi0gICAgICAgIGlmIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BD
T0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCB3aGlsZSBzZW5k
aW5nIGZyYWdtZW50ZWQgbWVzc2FnZScgJQotICAgICAgICAgICAgICAgIGZyYW1lLm9wY29kZSkK
LSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5
bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfbWVzc2FnZSgpCi0K
LSAgICBkZWYgX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBv
cGNvZGUgPSBzZWxmLl9tZXNzYWdlX29wY29kZQotICAgICAgICBwYXlsb2FkID0gJycuam9pbihz
ZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9tZXNzYWdlX29w
Y29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cyA9IFtd
Ci0gICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5kbGVfZmlyc3QKLSAgICAg
ICAgcmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVmIGJ1aWxk
KHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiQnVpbGQgYW4gaW5uZXIgbWVzc2FnZS4gUmV0dXJu
cyBhbiBfSW5uZXJNZXNzYWdlIGluc3RhbmNlIHdoZW4KLSAgICAgICAgdGhlIGdpdmVuIGZyYW1l
IGlzIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUuIFJldHVybnMgTm9uZSBvdGhlcndpc2UuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGZyYW1lOiBhbiBpbm5lciBmcmFtZS4KLSAgICAg
ICAgUmFpc2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHJlY2Vp
dmVkIGludmFsaWQgb3Bjb2RlLiAoZS5nLgotICAgICAgICAgICAgICAgIHJlY2VpdmluZyBub24g
Y29udGludWF0aW9uIGRhdGEgb3Bjb2RlIGJ1dCB0aGUgZmluIGZsYWcgb2YKLSAgICAgICAgICAg
ICAgICB0aGUgcHJldmlvdXMgaW5uZXIgZnJhbWUgd2FzIG5vdCBzZXQuKQotICAgICAgICAiIiIK
LQotICAgICAgICByZXR1cm4gc2VsZi5fZnJhbWVfaGFuZGxlcihmcmFtZSkKLQotCi1jbGFzcyBf
TG9naWNhbFN0cmVhbShTdHJlYW0pOgotICAgICIiIk1pbWljcyB0aGUgU3RyZWFtIGNsYXNzLiBU
aGlzIGNsYXNzIGludGVycHJldHMgbXVsdGlwbGV4ZWQgV2ViU29ja2V0Ci0gICAgZnJhbWVzLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25z
LCBzZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogX0xvZ2ljYWxS
ZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgc3RyZWFtX29wdGlvbnM6IFN0cmVhbU9wdGlv
bnMgaW5zdGFuY2UuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBJbml0aWFsIHNlbmQgcXVvdGEu
Ci0gICAgICAgICAgICByZWNlaXZlX3F1b3RhOiBJbml0aWFsIHJlY2VpdmUgcXVvdGEuCi0gICAg
ICAgICIiIgotCi0gICAgICAgICMgUGh5c2ljYWwgc3RyZWFtIGlzIHJlc3BvbnNpYmxlIGZvciBt
YXNraW5nLgotICAgICAgICBzdHJlYW1fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCi0g
ICAgICAgIFN0cmVhbS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykKLQot
ICAgICAgICBzZWxmLl9zZW5kX2Nsb3NlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3NlbmRfcXVv
dGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICMgLSBQcm90ZWN0cyBfc2VuZF9jbG9zZWQgYW5kIF9z
ZW5kX3F1b3RhCi0gICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJlYWQgd2FpdGluZyBmb3Igc2Vu
ZCBxdW90YSByZXBsZW5pc2hlZAotICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbiA9IHRocmVh
ZGluZy5Db25kaXRpb24oKQotCi0gICAgICAgICMgVGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJh
bWUgaW4gbWVzc2FnZXMuCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gY29tbW9uLk9Q
Q09ERV9URVhUCi0gICAgICAgICMgVHJ1ZSB3aGVuIHRoZSBsYXN0IG1lc3NhZ2Ugd2FzIGZyYWdt
ZW50ZWQuCi0gICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZCA9IEZhbHNl
Ci0KLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSA9IHJlY2VpdmVfcXVvdGEKLSAgICAgICAg
c2VsZi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlID0gdGhyZWFkaW5nLlNlbWFwaG9yZSgp
Ci0KLSAgICAgICAgc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyID0gX0lubmVyTWVzc2FnZUJ1
aWxkZXIoKQotCi0gICAgZGVmIF9jcmVhdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXls
b2FkLCBlbmQ9VHJ1ZSk6Ci0gICAgICAgIGZyYW1lID0gRnJhbWUoZmluPWVuZCwgb3Bjb2RlPW9w
Y29kZSwgcGF5bG9hZD1wYXlsb2FkKQotICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYu
X29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lX2ZpbHRl
ci5maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgaWYgbGVuKHBheWxvYWQpICE9IGxlbihmcmFtZS5w
YXlsb2FkKToKLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ011eCBleHRlbnNpb24gbXVzdCBub3QgYmUgdXNlZCBhZnRlciBleHRlbnNp
b25zIHdoaWNoIGNoYW5nZSAnCi0gICAgICAgICAgICAgICAgJyBmcmFtZSBib3VuZGFyeScpCi0K
LSAgICAgICAgZmlyc3RfYnl0ZSA9ICgoZnJhbWUuZmluIDw8IDcpIHwgKGZyYW1lLnJzdjEgPDwg
NikgfAotICAgICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YyIDw8IDUpIHwgKGZyYW1lLnJz
djMgPDwgNCkgfCBmcmFtZS5vcGNvZGUpCi0gICAgICAgIHJldHVybiBjaHIoZmlyc3RfYnl0ZSkg
KyBmcmFtZS5wYXlsb2FkCi0KLSAgICBkZWYgX3dyaXRlX2lubmVyX2ZyYW1lKHNlbGYsIG9wY29k
ZSwgcGF5bG9hZCwgZW5kPVRydWUpOgotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXls
b2FkKQotICAgICAgICB3cml0ZV9wb3NpdGlvbiA9IDAKLQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAjIEFuIGlubmVyIGZyYW1lIHdpbGwgYmUgZnJhZ21lbnRlZCBpZiB0aGVyZSBpcyBubyBl
bm91Z2ggc2VuZAotICAgICAgICAgICAgIyBxdW90YS4gVGhpcyBzZW1hcGhvcmUgZW5zdXJlcyB0
aGF0IGZyYWdtZW50ZWQgaW5uZXIgZnJhbWVzIGFyZQotICAgICAgICAgICAgIyBzZW50IGluIG9y
ZGVyIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICAjIE5vdGUgdGhhdCBmcmFt
ZXMgdGhhdCBjb21lIGZyb20gb3RoZXIgbG9naWNhbCBjaGFubmVscyBvcgotICAgICAgICAgICAg
IyBtdWx0aXBsZXhpbmcgY29udHJvbCBibG9ja3MgY2FuIGJlIGluc2VydGVkIGJldHdlZW4gZnJh
Z21lbnRlZAotICAgICAgICAgICAgIyBpbm5lciBmcmFtZXMgb24gdGhlIHBoeXNpY2FsIGNoYW5u
ZWwuCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUuYWNxdWly
ZSgpCi0KLSAgICAgICAgICAgICMgQ29uc3VtZSBhbiBvY3RldCBxdW90YSB3aGVuIHRoaXMgaXMg
dGhlIGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUuCi0gICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29t
bW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAg
ICAgICAgd2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEg
PT0gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQo
KQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgotICAgICAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgLT0gMQotICAgICAgICAgICAgICAgIGZp
bmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2Uo
KQotCi0gICAgICAgICAgICB3aGlsZSB3cml0ZV9wb3NpdGlvbiA8IHBheWxvYWRfbGVuZ3RoOgot
ICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2Vu
ZF9jbG9zZWQpIGFuZCBzZWxmLl9zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05v
IHF1b3RhLiBXYWl0aW5nIEZsb3dDb250cm9sIG1lc3NhZ2UgZm9yICVkLicgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQotCi0gICAgICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdM
b2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZXF1ZXN0Ll9jaGFubmVsX2lkKQotCi0gICAgICAgICAgICAgICAgICAgIHJl
bWFpbmluZyA9IHBheWxvYWRfbGVuZ3RoIC0gd3JpdGVfcG9zaXRpb24KLSAgICAgICAgICAgICAg
ICAgICAgd3JpdGVfbGVuZ3RoID0gbWluKHNlbGYuX3NlbmRfcXVvdGEsIHJlbWFpbmluZykKLSAg
ICAgICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kID0gKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZW5kIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX3Bvc2l0aW9uICsg
d3JpdGVfbGVuZ3RoID09IHBheWxvYWRfbGVuZ3RoKSkKLQotICAgICAgICAgICAgICAgICAgICBp
bm5lcl9mcmFtZSA9IHNlbGYuX2NyZWF0ZV9pbm5lcl9mcmFtZSgKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG9wY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWRbd3JpdGVfcG9z
aXRpb246d3JpdGVfcG9zaXRpb24rd3JpdGVfbGVuZ3RoXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlubmVyX2ZyYW1lX2VuZCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90
YSAtPSB3cml0ZV9sZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdDb25zdW1lZCBxdW90YT0lZCwgcmVtYWluaW5nPSVkJyAlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAod3JpdGVfbGVuZ3RoLCBzZWxmLl9zZW5kX3F1b3RhKSkKLSAg
ICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAgICAgICAgICMgV3JpdGluZyBkYXRhIHdpbGwg
YmxvY2sgdGhlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKLSAgICAgICAgICAgICAgICAj
IF9zZW5kX2NvbmRpdGlvbiBiZWZvcmUgd3JpdGluZy4KLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1NlbmRpbmcgaW5uZXIgZnJhbWU6ICVyJyAlIGlubmVyX2ZyYW1lKQotICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShpbm5lcl9mcmFtZSkK
LSAgICAgICAgICAgICAgICB3cml0ZV9wb3NpdGlvbiArPSB3cml0ZV9sZW5ndGgKLQotICAgICAg
ICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0KLSAgICAgICAg
ZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNl
cHRpb24oZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVy
X2ZyYW1lX3NlbWFwaG9yZS5yZWxlYXNlKCkKLQotICAgIGRlZiByZXBsZW5pc2hfc2VuZF9xdW90
YShzZWxmLCBzZW5kX3F1b3RhKToKLSAgICAgICAgIiIiUmVwbGVuaXNoIHNlbmQgcXVvdGEuIiIi
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWly
ZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9zZW5kX3F1b3RhICsgc2VuZF9xdW90YSA+IDB4N0ZG
RkZGRkZGRkZGRkZGRjoKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gMAotICAg
ICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9TRU5EX1FVT1RBX09WRVJG
TE9XKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSArPSBzZW5kX3F1b3RhCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcGxlbmlzaGVkIHNlbmQgcXVvdGEgZm9yIGNoYW5u
ZWwgaWQgJWQ6ICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3Jl
cXVlc3QuY2hhbm5lbF9pZCwgc2VsZi5fc2VuZF9xdW90YSkpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICAgICAgc2Vs
Zi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgY29uc3VtZV9yZWNlaXZlX3F1
b3RhKHNlbGYsIGFtb3VudCk6Ci0gICAgICAgICIiIkNvbnN1bWVzIHJlY2VpdmUgcXVvdGEuIFJl
dHVybnMgRmFsc2Ugb24gZmFpbHVyZS4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWNlaXZlX3F1
b3RhIDwgYW1vdW50OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdWaW9sYXRlIHF1
b3RhIG9uIGNoYW5uZWwgaWQgJWQ6ICVkIDwgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhLCBhbW91bnQpKQotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgLT0gYW1vdW50Ci0gICAgICAg
IHJldHVybiBUcnVlCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1U
cnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0uc2VuZF9tZXNz
YWdlLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0g
ICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRz
aGFrZScpCi0KLSAgICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3RhbmNlKG1lc3NhZ2UsIHVuaWNv
ZGUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdNZXNzYWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBiZSBpbnN0YW5jZSBvZiBzdHIn
KQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENP
REVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BD
T0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQot
Ci0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX21l
c3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0
ZXIobWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgaWYgc2VsZi5fbGFzdF9tZXNzYWdl
X3dhc19mcmFnbWVudGVkOgotICAgICAgICAgICAgaWYgb3Bjb2RlICE9IHNlbGYuX21lc3NhZ2Vf
b3Bjb2RlOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignTWVz
c2FnZSB0eXBlcyBhcmUgZGlmZmVyZW50IGluICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ZyYW1lcyBmb3IgdGhlIHNhbWUgbWVzc2FnZScpCi0gICAgICAg
ICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBvcGNvZGUKLQotICAgICAgICBzZWxm
Ll93cml0ZV9pbm5lcl9mcmFtZShvcGNvZGUsIG1lc3NhZ2UsIGVuZCkKLSAgICAgICAgc2VsZi5f
bGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkID0gbm90IGVuZAotCi0gICAgZGVmIF9yZWNlaXZl
X2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLl9yZWNlaXZlX2ZyYW1l
LgotCi0gICAgICAgIEluIGFkZGl0aW9uIHRvIGNhbGwgU3RyZWFtLl9yZWNlaXZlX2ZyYW1lLCB0
aGlzIG1ldGhvZCBhZGRzIHRoZSBhbW91bnQKLSAgICAgICAgb2YgcGF5bG9hZCB0byByZWNlaXZp
bmcgcXVvdGEgYW5kIHNlbmRzIEZsb3dDb250cm9sIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIFdl
IG5lZWQgdG8gZG8gaXQgaGVyZSBiZWNhdXNlIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKSBoYW5k
bGVzCi0gICAgICAgIGNvbnRyb2wgZnJhbWVzIGludGVybmFsbHkuCi0gICAgICAgICIiIgotCi0g
ICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzID0gU3RyZWFtLl9y
ZWNlaXZlX2ZyYW1lKHNlbGYpCi0gICAgICAgIGFtb3VudCA9IGxlbihwYXlsb2FkKQotICAgICAg
ICAjIFJlcGxlbmlzaCBleHRyYSBvbmUgb2N0ZXQgd2hlbiByZWNlaXZpbmcgdGhlIGZpcnN0IGZy
YWdtZW50ZWQgZnJhbWUuCi0gICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJ
TlVBVElPTjoKLSAgICAgICAgICAgIGFtb3VudCArPSAxCi0gICAgICAgIHNlbGYuX3JlY2VpdmVf
cXVvdGEgKz0gYW1vdW50Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbW91bnQpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VuZGlu
ZyBmbG93IGNvbnRyb2wgZm9yICVkLCByZXBsZW5pc2hlZD0lZCcgJQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgYW1vdW50KSkKLSAgICAgICAg
c2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQot
ICAgICAgICByZXR1cm4gb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMKLQot
ICAgIGRlZiBfZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBmcmFtZSk6Ci0gICAgICAgICIi
Ik92ZXJyaWRlcyBTdHJlYW0uX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVyX21lc3NhZ2UgPSBzZWxmLl9pbm5lcl9t
ZXNzYWdlX2J1aWxkZXIuYnVpbGQoZnJhbWUpCi0gICAgICAgIGV4Y2VwdCBJbnZhbGlkRnJhbWVF
eGNlcHRpb246Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAotICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9CQURfRlJBR01F
TlRBVElPTikKLQotICAgICAgICBpZiBpbm5lcl9tZXNzYWdlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBpbm5lcl9tZXNz
YWdlLm9wY29kZQotICAgICAgICByZXR1cm4gaW5uZXJfbWVzc2FnZS5wYXlsb2FkCi0KLSAgICBk
ZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLnJl
Y2VpdmVfbWVzc2FnZS4iIiIKLQotICAgICAgICAjIEp1c3QgY2FsbCBTdHJlYW0ucmVjZWl2ZV9t
ZXNzYWdlKCksIGJ1dCBjYXRjaAotICAgICAgICAjIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhj
ZXB0aW9uLCB3aGljaCBpcyByYWlzZWQgd2hlbiB0aGUgbG9naWNhbAotICAgICAgICAjIGNvbm5l
Y3Rpb24gaGFzIGNsb3NlZCBncmFjZWZ1bGx5LgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBy
ZXR1cm4gU3RyZWFtLnJlY2VpdmVfbWVzc2FnZShzZWxmKQotICAgICAgICBleGNlcHQgTG9naWNh
bENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgX3NlbmRf
Y2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgIiIiT3ZlcnJp
ZGVzIFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZS4iIiIKLQotICAgICAgICBib2R5ID0g
Y3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVhc29uKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgY2xvc2luZyBoYW5kc2hha2UgZm9yICVkOiAoJXIsICVy
KScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9p
ZCwgY29kZSwgcmVhc29uKSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9u
Lk9QQ09ERV9DTE9TRSwgYm9keSwgZW5kPVRydWUpCi0KLSAgICAgICAgc2VsZi5fcmVxdWVzdC5z
ZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0n
Jyk6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uc2VuZF9waW5nIiIiCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIHBpbmcgb24gbG9naWNhbCBjaGFubmVsICVkOiAl
cicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9p
ZCwgYm9keSkpCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVf
UElORywgYm9keSwgZW5kPVRydWUpCi0KLSAgICAgICAgc2VsZi5fcGluZ19xdWV1ZS5hcHBlbmQo
Ym9keSkKLQotICAgIGRlZiBfc2VuZF9wb25nKHNlbGYsIGJvZHkpOgotICAgICAgICAiIiJPdmVy
cmlkZXMgU3RyZWFtLl9zZW5kX3BvbmciIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1NlbmRpbmcgcG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKLSAgICAgICAg
c2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QT05HLCBib2R5LCBlbmQ9VHJ1
ZSkKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9Y29tbW9uLlNUQVRVU19O
T1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5j
bG9zZV9jb25uZWN0aW9uLiIiIgotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IEltcGxlbWVudAot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9naWNhbCBjb25uZWN0aW9uICVk
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQp
Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICBk
ZWYgc3RvcF9zZW5kaW5nKHNlbGYpOgotICAgICAgICAiIiJTdG9wcyBhY2NlcHRpbmcgbmV3IHNl
bmQgb3BlcmF0aW9uIChfd3JpdGVfaW5uZXJfZnJhbWUpLiIiIgotCi0gICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NlZCA9IFRydWUK
LSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fc2Vu
ZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX091dGdvaW5nRGF0YShvYmplY3QpOgot
ICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgZGF0YSB0byBiZSBzZW50IHZpYSBwaHlzaWNh
bCBjb25uZWN0aW9uIGFuZAotICAgIG9yaWdpbiBvZiB0aGUgZGF0YS4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkYXRhKToKLSAgICAgICAgc2VsZi5jaGFu
bmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCi0KLQotY2xhc3Mg
X1BoeXNpY2FsQ29ubmVjdGlvbldyaXRlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJBIHRo
cmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIGRhdGEgdG8gcGh5c2ljYWwgY29u
bmVjdGlvbi4KLQotICAgIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gdGhyZWFk
LXNhZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRlcgotICAgIHRocmVhZCByZWFkcyBkYXRhIGZy
b20gdGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtdXhfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBp
bnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRf
XyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQotCi0gICAgICAgICMgV2hlbiBzZXQsIG1ha2UgdGhpcyB0aHJlYWQg
c3RvcCBhY2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBlbmRpbmcKLSAgICAgICAgIyBkYXRhIGFu
ZCBleGl0LgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCi0gICAgICAgICMg
VGhlIGNsb3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAgIHNlbGYu
X2Nsb3NlX2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFCi0gICAgICAgICMgRGVx
dWUgZm9yIHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBwcm90ZWN0ZWQgYnkgX2RlcXVlX2NvbmRp
dGlvbgotICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVlc3RlZCBpcyBzZXQuCi0gICAgICAgIHNl
bGYuX2RlcXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICAjIC0gUHJvdGVjdHMgX2Rl
cXVlLCBfc3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9jb2RlCi0gICAgICAgICMgLSBTaWduYWxz
IHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBhdmFpbGFibGUKLSAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0KLSAgICBkZWYgcHV0X291
dGdvaW5nX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlB1dHMgb3V0Z29pbmcgZGF0YS4K
LQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGF0YTogX091dGdvaW5nRGF0YSBpbnN0YW5j
ZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246
IHdoZW4gdGhlIHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8KLSAgICAgICAgICAgICAgICB0
ZXJtaW5hdGUuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3N0b3BfcmVx
dWVzdGVkOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignQ2Fu
bm90IHdyaXRlIGRhdGEgYW55bW9yZScpCi0KLSAgICAgICAgICAgIHNlbGYuX2RlcXVlLmFwcGVu
ZChkYXRhKQotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLSAgICBkZWYgX3dyaXRlX2RhdGEoc2VsZiwgb3V0Z29pbmdfZGF0YSk6Ci0gICAgICAgIG1l
c3NhZ2UgPSAoX2VuY29kZV9jaGFubmVsX2lkKG91dGdvaW5nX2RhdGEuY2hhbm5lbF9pZCkgKwot
ICAgICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEuZGF0YSkKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFtLnNlbmRfbWVzc2FnZSgK
LSAgICAgICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9VHJ1ZSkK
LSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9t
ZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHNlbmQgbWVz
c2FnZSB0byAlcjogJyAlCi0gICAgICAgICAgICAgICAgKHNlbGYuX211eF9oYW5kbGVyLnBoeXNp
Y2FsX2Nvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSwgZSkKLSAgICAgICAgICAgIHJhaXNlCi0KLSAg
ICAgICAgIyBUT0RPKGJhc2hpKTogSXQgd291bGQgYmUgYmV0dGVyIHRvIGJsb2NrIHRoZSB0aHJl
YWQgdGhhdCBzZW5kcwotICAgICAgICAjIGNvbnRyb2wgZGF0YSBhcyB3ZWxsLgotICAgICAgICBp
ZiBvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQgIT0gX0NPTlRST0xfQ0hBTk5FTF9JRDoKLSAgICAg
ICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0ZV9kYXRhX2RvbmUob3V0Z29pbmdf
ZGF0YS5jaGFubmVsX2lkKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgd2hp
bGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIGlmIGxlbihzZWxm
Ll9kZXF1ZSkgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9u
LndhaXQoKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAg
b3V0Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQoKQotCi0gICAgICAgICAgICAgICAg
c2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICAgICAgICAgIHNlbGYuX3dy
aXRlX2RhdGEob3V0Z29pbmdfZGF0YSkKLSAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25k
aXRpb24uYWNxdWlyZSgpCi0KLSAgICAgICAgICAgICMgRmx1c2ggZGVxdWUuCi0gICAgICAgICAg
ICAjCi0gICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHNlbGYuX2RlcXVlX2NvbmRpdGlvbiBp
cyBhbHdheXMgYWNxdWlyZWQuCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgd2hp
bGUgbGVuKHNlbGYuX2RlcXVlKSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIG91dGdvaW5nX2Rh
dGEgPSBzZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fd3Jp
dGVfZGF0YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgICAgICMgQ2xv
c2UgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICAjIERvbid0IHdhaXQgdGhlIHJlc3BvbnNlIGhlcmUuIFRoZSByZXNwb25zZSB3aWxsIGJlIHJl
YWQKLSAgICAgICAgICAgICAgICAjIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgotICAgICAgICAgICAg
ICAgIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9jb2RlLCB3YWl0X3Jlc3BvbnNlPUZhbHNl
KQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICB1dGls
LnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdGYWls
ZWQgdG8gY2xvc2UgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb246ICVyJyAlIGUpCi0gICAgICAgICAg
ICAgICAgcmFpc2UKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5k
bGVyLm5vdGlmeV93cml0ZXJfZG9uZSgpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBjbG9zZV9jb2Rl
PWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgotICAgICAgICAiIiJTdG9wcyB0aGUgd3Jp
dGVyIHRocmVhZC4iIiIKLQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gVHJ1ZQotICAgICAgICBzZWxmLl9jbG9z
ZV9jb2RlID0gY2xvc2VfY29kZQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ubm90aWZ5
KCkKLSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0KLWNsYXNzIF9Q
aHlzaWNhbENvbm5lY3Rpb25SZWFkZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiQSB0aHJl
YWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gcGh5c2ljYWwgY29u
bmVjdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlcik6
Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAg
ICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxm
Ll9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbXV4
X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotCi0g
ICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBwaHlzaWNhbF9zdHJlYW0gPSBzZWxmLl9tdXhfaGFuZGxlci5waHlz
aWNhbF9zdHJlYW0KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcGh5c2ljYWxfc3RyZWFtLnJl
Y2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICMgQmVsb3cgaGFwcGVucyBv
bmx5IHdoZW4gYSBkYXRhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCi0gICAgICAgICAgICAgICAgb3Bj
b2RlID0gcGh5c2ljYWxfc3RyZWFtLmdldF9sYXN0X3JlY2VpdmVkX29wY29kZSgpCi0gICAgICAg
ICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZOgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24oCi0gICAg
ICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19NRVNT
QUdFLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEgdGV4dCBtZXNzYWdlIG9u
IHBoeXNpY2FsIGNvbm5lY3Rpb24nKQotICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAg
ICAgICAgICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICAgICAgYnJl
YWsKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVy
LmRpc3BhdGNoX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGV4Y2VwdCBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvciwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWls
X3BoeXNpY2FsX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgIGUuZHJvcF9jb2RlLCBl
Lm1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGV4Y2VwdCBMb2dp
Y2FsQ2hhbm5lbEVycm9yLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZh
aWxfbG9naWNhbF9jaGFubmVsKAotICAgICAgICAgICAgICAgICAgICBlLmNoYW5uZWxfaWQsIGUu
ZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4Yygp
KQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90
aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfV29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgot
ICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJ1bm5pbmcgdGhlIGNvcnJl
c3BvbmRpbmcgYXBwbGljYXRpb24KLSAgICBoYW5kbGVyLgotICAgICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0
cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbXV4X2hhbmRsZXI6
IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAgICAgcmVxdWVzdDogX0xvZ2ljYWxSZXF1
ZXN0IGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9f
aW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAg
IHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0K
LSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0xvZ2ljYWwg
Y2hhbm5lbCB3b3JrZXIgc3RhcnRlZC4gKGlkPSVkKScgJQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAjIE5vbi1jcml0aWNhbCBleGNlcHRpb25zIHdpbGwgYmUgaGFuZGxlZCBieSBkaXNwYXRjaGVy
LgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRh
KHNlbGYuX3JlcXVlc3QpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVycm9yLCBlOgot
ICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9sb2dpY2FsX2NoYW5uZWwoCi0gICAg
ICAgICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRyb3BfY29kZSwgZS5tZXNzYWdlKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3dvcmtlcl9k
b25lKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLQotCi1jbGFzcyBfTXV4SGFuZHNoYWtlciho
eWJpLkhhbmRzaGFrZXIpOgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3Ig
bXVsdGlwbGV4aW5nLiIiIgotCi0gICAgX0RVTU1ZX1dFQlNPQ0tFVF9LRVkgPSAnZEdobElITmhi
WEJzWlNCdWIyNWpaUT09JwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3Bh
dGNoZXIsIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3Rz
IGFuIGluc3RhbmNlLgotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogX0xvZ2lj
YWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgZGlzcGF0Y2hlcjogRGlzcGF0Y2hlciBp
bnN0YW5jZSAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBJ
bml0aWFsIHNlbmQgcXVvdGEuCi0gICAgICAgICAgICByZWNlaXZlX3F1b3RhOiBJbml0aWFsIHJl
Y2VpdmUgcXVvdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgIGh5YmkuSGFuZHNoYWtlci5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBzZWxmLl9zZW5kX3F1b3Rh
ID0gc2VuZF9xdW90YQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90
YQotCi0gICAgICAgICMgQXBwZW5kIGhlYWRlcnMgd2hpY2ggc2hvdWxkIG5vdCBiZSBpbmNsdWRl
ZCBpbiBoYW5kc2hha2UgZmllbGQgb2YKLSAgICAgICAgIyBBZGRDaGFubmVsUmVxdWVzdC4KLSAg
ICAgICAgIyBUT0RPKGJhc2hpKTogTWFrZSBzdXJlIHdoZXRoZXIgd2Ugc2hvdWxkIHJhaXNlIGV4
Y2VwdGlvbiB3aGVuCi0gICAgICAgICMgICAgIHRoZXNlIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGFs
cmVhZHkuCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uVVBHUkFERV9IRUFERVJd
ID0gKAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCi0gICAgICAg
IHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUl0g
PSAoCi0gICAgICAgICAgICBzdHIoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQotICAgICAg
ICByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUl0gPSAo
Ci0gICAgICAgICAgICBzZWxmLl9EVU1NWV9XRUJTT0NLRVRfS0VZKQotCi0gICAgZGVmIF9jcmVh
dGVfc3RyZWFtKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgaHli
aS5IYW5kc2hha2VyLl9jcmVhdGVfc3RyZWFtLiIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQ3JlYXRpbmcgbG9naWNhbCBzdHJlYW0gZm9yICVkJyAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHJldHVybiBfTG9n
aWNhbFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIHN0cmVhbV9vcHRpb25zLCBz
ZWxmLl9zZW5kX3F1b3RhLAotICAgICAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSkKLQotICAg
IGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShzZWxmLCBhY2NlcHQpOgotICAgICAgICAi
IiJPdmVycmlkZSBoeWJpLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlLiIiIgotCi0gICAgICAg
IHJlc3BvbnNlID0gW10KLQotICAgICAgICByZXNwb25zZS5hcHBlbmQoJ0hUVFAvMS4xIDEwMSBT
d2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAgIyBVcGdyYWRlIGFuZCBTZWMtV2Vi
U29ja2V0LUFjY2VwdCBzaG91bGQgYmUgZXhjbHVkZWQuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVu
ZCgnJXM6ICVzXHJcbicgJSAoCi0gICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIs
IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAgIGlmIHNlbGYuX3JlcXVl
c3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZS5hcHBlbmQo
JyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BS
T1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29s
KSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZSBh
bmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpICE9IDApOgot
ICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAlICgKLSAgICAgICAgICAg
ICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKLSAgICAgICAgICAg
ICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25z
KSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0KLSAgICAgICAgcmV0dXJuICcn
LmpvaW4ocmVzcG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtlKHNlbGYsIGFjY2VwdCk6
Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuSGFuZHNoYWtlci5fc2VuZF9oYW5kc2hha2UuIiIi
Ci0KLSAgICAgICAgIyBEb24ndCBzZW5kIGhhbmRzaGFrZSByZXNwb25zZSBmb3IgdGhlIGRlZmF1
bHQgY2hhbm5lbAotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQgPT0gX0RFRkFV
TFRfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGhhbmRzaGFrZV9y
ZXNwb25zZSA9IHNlbGYuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQotICAgICAg
ICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgaGFuZHNoYWtlX3Jlc3BvbnNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J1NlbmRpbmcgaGFuZHNoYWtlIHJlc3BvbnNlIGZvciAlZDogJXInICUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGZyYW1lX2RhdGEpKQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2Rh
dGEpCi0KLQotY2xhc3MgX0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3QpOgotICAgICIiIkEgc3Ry
dWN0dXJlIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgbG9naWNhbCBjaGFubmVsLgotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHdvcmtlcik6Ci0gICAgICAg
IHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi53b3JrZXIgPSB3b3JrZXIKLSAg
ICAgICAgc2VsZi5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX05PUk1BTF9DTE9TVVJFCi0gICAgICAg
IHNlbGYuZHJvcF9tZXNzYWdlID0gJycKLQotCi1jbGFzcyBfSGFuZHNoYWtlRGVsdGFCYXNlKG9i
amVjdCk6Ci0gICAgIiIiQSBjbGFzcyB0aGF0IGhvbGRzIGluZm9ybWF0aW9uIGZvciBkZWx0YS1l
bmNvZGVkIGhhbmRzaGFrZS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoZWFkZXJzKToK
LSAgICAgICAgc2VsZi5faGVhZGVycyA9IGhlYWRlcnMKLQotICAgIGRlZiBjcmVhdGVfaGVhZGVy
cyhzZWxmLCBkZWx0YT1Ob25lKToKLSAgICAgICAgIiIiQ3JlYXRlcyByZXF1ZXN0IGhlYWRlcnMg
Zm9yIGFuIEFkZENoYW5uZWxSZXF1ZXN0IHRoYXQgaGFzCi0gICAgICAgIGRlbHRhLWVuY29kZWQg
aGFuZHNoYWtlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkZWx0YTogaGVhZGVycyBz
aG91bGQgYmUgb3ZlcnJpZGRlbi4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaGVhZGVycyA9IGNv
cHkuY29weShzZWxmLl9oZWFkZXJzKQotICAgICAgICBpZiBkZWx0YToKLSAgICAgICAgICAgIGZv
ciBrZXksIHZhbHVlIGluIGRlbHRhLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgIyBUaGUgc3Bl
YyByZXF1aXJlcyB0aGF0IGEgaGVhZGVyIHdpdGggYW4gZW1wdHkgdmFsdWUgaXMKLSAgICAgICAg
ICAgICAgICAjIHJlbW92ZWQgZnJvbSB0aGUgZGVsdGEgYmFzZS4KLSAgICAgICAgICAgICAgICBp
ZiBsZW4odmFsdWUpID09IDAgYW5kIGhlYWRlcnMuaGFzX2tleShrZXkpOgotICAgICAgICAgICAg
ICAgICAgICBkZWwgaGVhZGVyc1trZXldCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgaGVhZGVyc1trZXldID0gdmFsdWUKLSAgICAgICAgcmV0dXJuIGhlYWRlcnMK
LQotCi1jbGFzcyBfTXV4SGFuZGxlcihvYmplY3QpOgotICAgICIiIk11bHRpcGxleGluZyBoYW5k
bGVyLiBXaGVuIGEgaGFuZGxlciBzdGFydHMsIGl0IGxhdW5jaGVzIHRocmVlCi0gICAgdGhyZWFk
czsgdGhlIHJlYWRlciB0aHJlYWQsIHRoZSB3cml0ZXIgdGhyZWFkLCBhbmQgYSB3b3JrZXIgdGhy
ZWFkLgotCi0gICAgVGhlIHJlYWRlciB0aHJlYWQgcmVhZHMgZGF0YSBmcm9tIHRoZSBwaHlzaWNh
bCBzdHJlYW0sIGkuZS4sIHRoZQotICAgIHdzX3N0cmVhbSBvYmplY3Qgb2YgdGhlIHVuZGVybHlp
bmcgd2Vic29ja2V0IGNvbm5lY3Rpb24uIFRoZSByZWFkZXIKLSAgICB0aHJlYWQgaW50ZXJwcmV0
cyBtdWx0aXBsZXhlZCBmcmFtZXMgYW5kIGRpc3BhdGNoZXMgdGhlbSB0byBsb2dpY2FsCi0gICAg
Y2hhbm5lbHMuIE1ldGhvZHMgb2YgdGhpcyBjbGFzcyBhcmUgbW9zdGx5IGNhbGxlZCBieSB0aGUg
cmVhZGVyIHRocmVhZC4KLQotICAgIFRoZSB3cml0ZXIgdGhyZWFkIHNlbmRzIG11bHRpcGxleGVk
IGZyYW1lcyB3aGljaCBhcmUgY3JlYXRlZCBieQotICAgIGxvZ2ljYWwgY2hhbm5lbHMgdmlhIHRo
ZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVGhlIHdvcmtlciB0aHJlYWQgbGF1bmNoZWQg
YXQgdGhlIHN0YXJ0aW5nIHBvaW50IGhhbmRsZXMgdGhlCi0gICAgIkltcGxpY2l0bHkgT3BlbmVk
IENvbm5lY3Rpb24iLiBJZiBtdWx0aXBsZXhpbmcgaGFuZGxlciByZWNlaXZlcwotICAgIGFuIEFk
ZENoYW5uZWxSZXF1ZXN0IGFuZCBhY2NlcHRzIGl0LCB0aGUgaGFuZGxlciB3aWxsIGxhdW5jaCBh
IG5ldyB3b3JrZXIKLSAgICB0aHJlYWQgYW5kIGRpc3BhdGNoIHRoZSByZXF1ZXN0IHRvIGl0Lgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpOgot
ICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qgb2YgdGhlIHBoeXNpY2FsIGNvbm5l
Y3Rpb24uCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNlIChkaXNw
YXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5vcmlnaW5hbF9y
ZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0g
ICAgICAgIHNlbGYucGh5c2ljYWxfY29ubmVjdGlvbiA9IHJlcXVlc3QuY29ubmVjdGlvbgotICAg
ICAgICBzZWxmLnBoeXNpY2FsX3N0cmVhbSA9IHJlcXVlc3Qud3Nfc3RyZWFtCi0gICAgICAgIHNl
bGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzID0ge30KLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgIyBIb2xkcyBjbGllbnQncyBp
bml0aWFsIHF1b3RhCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMgPSBjb2xsZWN0aW9ucy5k
ZXF1ZSgpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gTm9uZQotICAgICAgICBzZWxm
Ll93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLl9yZWFk
ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3dyaXRlciA9IE5vbmUKLQotICAgIGRlZiBzdGFydChz
ZWxmKToKLSAgICAgICAgIiIiU3RhcnRzIHRoZSBoYW5kbGVyLgotCi0gICAgICAgIFJhaXNlczoK
LSAgICAgICAgICAgIE11eFVuZXhwZWN0ZWRFeGNlcHRpb246IHdoZW4gdGhlIGhhbmRsZXIgYWxy
ZWFkeSBzdGFydGVkLCBvciB3aGVuCi0gICAgICAgICAgICAgICAgb3BlbmluZyBoYW5kc2hha2Ug
b2YgdGhlIGRlZmF1bHQgY2hhbm5lbCBmYWlscy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYg
c2VsZi5fcmVhZGVyIG9yIHNlbGYuX3dyaXRlcjoKLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhw
ZWN0ZWRFeGNlcHRpb24oJ011eEhhbmRsZXIgYWxyZWFkeSBzdGFydGVkJykKLQotICAgICAgICBz
ZWxmLl9yZWFkZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9uUmVhZGVyKHNlbGYpCi0gICAgICAgIHNl
bGYuX3dyaXRlciA9IF9QaHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIoc2VsZikKLSAgICAgICAgc2Vs
Zi5fcmVhZGVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0YXJ0KCkKLQotICAgICAg
ICAjIENyZWF0ZSAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuCi0gICAgICAgIGxvZ2lj
YWxfY29ubmVjdGlvbiA9IF9Mb2dpY2FsQ29ubmVjdGlvbihzZWxmLCBfREVGQVVMVF9DSEFOTkVM
X0lEKQotICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYub3JpZ2luYWxfcmVxdWVzdC5o
ZWFkZXJzX2luKQotICAgICAgICAjIEFkZCBleHRlbnNpb25zIGZvciBsb2dpY2FsIGNoYW5uZWwu
Ci0gICAgICAgIGhlYWRlcnNbY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVJd
ID0gKAotICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKAotICAgICAgICAgICAg
ICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmV4dGVuc2lvbnMoKSkpCi0g
ICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gX0hhbmRzaGFrZURlbHRhQmFzZShoZWFkZXJz
KQotICAgICAgICBsb2dpY2FsX3JlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoCi0gICAgICAgICAg
ICBfREVGQVVMVF9DSEFOTkVMX0lELAotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1ZXN0
Lm1ldGhvZCwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC51cmksCi0gICAgICAg
ICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QucHJvdG9jb2wsCi0gICAgICAgICAgICBzZWxmLl9o
YW5kc2hha2VfYmFzZS5jcmVhdGVfaGVhZGVycygpLAotICAgICAgICAgICAgbG9naWNhbF9jb25u
ZWN0aW9uKQotICAgICAgICAjIENsaWVudCdzIHNlbmQgcXVvdGEgZm9yIHRoZSBpbXBsaWNpdGx5
IG9wZW5lZCBjb25uZWN0aW9uIGlzIHplcm8sCi0gICAgICAgICMgYnV0IHdlIHdpbGwgc2VuZCBG
bG93Q29udHJvbCBsYXRlciBzbyBzZXQgdGhlIGluaXRpYWwgcXVvdGEgdG8KLSAgICAgICAgIyBf
SU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5ULgotICAgICAgICBzZWxmLl9jaGFubmVsX3Nsb3RzLmFw
cGVuZChfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBzZW5kX3F1b3RhID0gc2Vs
Zi5vcmlnaW5hbF9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IucXVvdGEoKQotICAgICAgICBpZiBub3Qg
c2VsZi5fZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dp
Y2FsX3JlcXVlc3QsIHNlbmRfcXVvdGE9c2VuZF9xdW90YSk6Ci0gICAgICAgICAgICByYWlzZSBN
dXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWlsZWQgaGFuZHNoYWtl
IG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaWQnKQotICAgICAgICBzZWxmLl9hZGRfbG9naWNhbF9j
aGFubmVsKGxvZ2ljYWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgRmxvd0NvbnRyb2wgZm9y
IHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjb25uZWN0aW9uLgotICAgICAgICBmcmFtZV9kYXRhID0g
X2NyZWF0ZV9mbG93X2NvbnRyb2woX0RFRkFVTFRfQ0hBTk5FTF9JRCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0g
ICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0YShmcmFt
ZV9kYXRhKQotCi0gICAgZGVmIGFkZF9jaGFubmVsX3Nsb3RzKHNlbGYsIHNsb3RzLCBzZW5kX3F1
b3RhKToKLSAgICAgICAgIiIiQWRkcyBjaGFubmVsIHNsb3RzLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBzbG90czogbnVtYmVyIG9mIHNsb3RzIHRvIGJlIGFkZGVkLgotICAgICAgICAg
ICAgc2VuZF9xdW90YTogaW5pdGlhbCBzZW5kIHF1b3RhIGZvciBzbG90cy4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5leHRlbmQoW3NlbmRfcXVvdGFdICogc2xv
dHMpCi0gICAgICAgICMgU2VuZCBOZXdDaGFubmVsU2xvdCB0byBjbGllbnQuCi0gICAgICAgIGZy
YW1lX2RhdGEgPSBfY3JlYXRlX25ld19jaGFubmVsX3Nsb3Qoc2xvdHMsIHNlbmRfcXVvdGEpCi0g
ICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRlZiB3YWl0
X3VudGlsX2RvbmUoc2VsZiwgdGltZW91dD1Ob25lKToKLSAgICAgICAgIiIiV2FpdHMgdW50aWwg
YWxsIHdvcmtlcnMgYXJlIGRvbmUuIFJldHVybnMgRmFsc2Ugd2hlbiB0aW1lb3V0IGhhcwotICAg
ICAgICBvY2N1cnJlZC4gUmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCi0KLSAgICAgICAgQXJnczoK
LSAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdXQgaW4gc2VjLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMpID4gMDoK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgd29ya2VycyglZCku
Li4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHMpKQotICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9y
ZWNlaXZlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19j
b25kaXRpb24ud2FpdCh0aW1lb3V0KQotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl93b3Jr
ZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnV2FpdGluZyB3b3JrZXIocykgdGltZWQgb3V0JykKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAjIEZsdXNoIHBlbmRp
bmcgb3V0Z29pbmcgZGF0YQotICAgICAgICBzZWxmLl93cml0ZXIuc3RvcCgpCi0gICAgICAgIHNl
bGYuX3dyaXRlci5qb2luKCkKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIG5vdGlm
eV93cml0ZV9kYXRhX2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgICIiIkNhbGxlZCBi
eSB0aGUgd3JpdGVyIHRocmVhZCB3aGVuIGEgd3JpdGUgb3BlcmF0aW9uIGhhcyBkb25lLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBvYmplY3RpdmUgY2hhbm5lbCBp
ZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBjaGFubmVsX2lk
IGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRh
ID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAgICAgICAgICAgICAgIGNo
YW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24ub25fd3JpdGVfZGF0YV9kb25lKCkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZWVtcyB0
aGF0IGxvZ2ljYWwgY2hhbm5lbCBmb3IgJWQgaGFzIGdvbmUnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICUgY2hhbm5lbF9pZCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVm
IHNlbmRfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJTZW5kcyBkYXRhIHZp
YSB0aGUgY29udHJvbCBjaGFubmVsLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRh
OiBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3dyaXRlci5w
dXRfb3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRhKAotICAgICAgICAgICAgICAgIGNoYW5uZWxf
aWQ9X0NPTlRST0xfQ0hBTk5FTF9JRCwgZGF0YT1kYXRhKSkKLQotICAgIGRlZiBzZW5kX2RhdGEo
c2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6Ci0gICAgICAgICIiIlNlbmRzIGRhdGEgdmlhIGdpdmVu
IGxvZ2ljYWwgY2hhbm5lbC4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5Ci0gICAgICAgIHdvcmtl
ciB0aHJlYWRzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBvYmpl
Y3RpdmUgY2hhbm5lbCBpZC4KLSAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9PdXRn
b2luZ0RhdGEoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1jaGFubmVsX2lkLCBkYXRhPWRh
dGEpKQotCi0gICAgZGVmIF9zZW5kX2Ryb3BfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBjb2Rl
PU5vbmUsIG1lc3NhZ2U9JycpOgotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9kcm9wX2No
YW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ1NlbmRpbmcgZHJvcCBjaGFubmVsIGZvciBjaGFubmVsIGlkICVk
JyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVfZGF0
YSkKLQotICAgIGRlZiBfc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShzZWxmLCBjaGFu
bmVsX2lkLCBzdGF0dXM9Tm9uZSk6Ci0gICAgICAgIGlmIHN0YXR1cyBpcyBOb25lOgotICAgICAg
ICAgICAgc3RhdHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCi0KLSAgICAgICAg
aWYgc3RhdHVzIGluIF9IVFRQX0JBRF9SRVNQT05TRV9NRVNTQUdFUzoKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSBfSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVNbc3RhdHVzXQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXNwb25zZSBtZXNzYWdlIGZvciAl
ZCBpcyBub3QgZm91bmQnICUgc3RhdHVzKQotICAgICAgICAgICAgbWVzc2FnZSA9ICc/Pz8nCi0K
LSAgICAgICAgcmVzcG9uc2UgPSAnSFRUUC8xLjEgJWQgJXNcclxuXHJcbicgJSAoc3RhdHVzLCBt
ZXNzYWdlKQotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25z
ZShjaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1yZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwgcmVqZWN0ZWQ9VHJ1ZSkK
LSAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIF9j
cmVhdGVfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAgICAgaWYgYmxvY2suY2hh
bm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAgICAgIyBUT0RPKGJhc2hp
KTogUmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Igd2l0aCBjb2RlIDIwMDYKLSAgICAgICAg
ICAgICMgaW5zdGVhZCBvZiBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uLgotICAgICAgICAgICAgcmFp
c2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgdGhl
IGNvbnRyb2wgY2hhbm5lbCBpZCAoMCkgYXMgb2JqZWN0aXZlIGNoYW5uZWwgJwotICAgICAgICAg
ICAgICAgICdpZCBmb3IgQWRkQ2hhbm5lbCcpCi0KLSAgICAgICAgaWYgYmxvY2suZW5jb2Rpbmcg
PiBfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRBOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxD
b25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09ERV9VTktOT1dOX1JFUVVF
U1RfRU5DT0RJTkcpCi0KLSAgICAgICAgbWV0aG9kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzID0g
X3BhcnNlX3JlcXVlc3RfdGV4dCgKLSAgICAgICAgICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICBpZiBibG9jay5lbmNvZGluZyA9PSBfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRB
OgotICAgICAgICAgICAgaGVhZGVycyA9IHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0ZV9oZWFk
ZXJzKGhlYWRlcnMpCi0KLSAgICAgICAgY29ubmVjdGlvbiA9IF9Mb2dpY2FsQ29ubmVjdGlvbihz
ZWxmLCBibG9jay5jaGFubmVsX2lkKQotICAgICAgICByZXF1ZXN0ID0gX0xvZ2ljYWxSZXF1ZXN0
KGJsb2NrLmNoYW5uZWxfaWQsIG1ldGhvZCwgcGF0aCwgdmVyc2lvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLCBjb25uZWN0aW9uKQotICAgICAgICByZXR1cm4g
cmVxdWVzdAotCi0gICAgZGVmIF9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVzdChzZWxm
LCByZXF1ZXN0LCBzZW5kX3F1b3RhPTApOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWNl
aXZlX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKLSAgICAgICAgZXhjZXB0
IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAotICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9ORVdfQ0hBTk5FTF9T
TE9UX1ZJT0xBVElPTikKLQotICAgICAgICBoYW5kc2hha2VyID0gX011eEhhbmRzaGFrZXIocmVx
dWVzdCwgc2VsZi5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNp
b25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQot
ICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNf
QkFEX1JFUVVFU1QpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgZXhjZXB0IGhh
bmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIFRPRE8oYmFzaGkp
OiBTaG91bGQgd2UgX0ZhaWwgdGhlIExvZ2ljYWwgQ2hhbm5lbF8gd2l0aCAzMDAxCi0gICAgICAg
ICAgICAjIGluc3RlYWQ/Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQot
ICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShyZXF1ZXN0
LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXR1cz1lLnN0YXR1cykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg
ICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJv
cl9hZGRfY2hhbm5lbF9yZXNwb25zZShyZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIF9hZGRfbG9naWNh
bF9jaGFubmVsKHNlbGYsIGxvZ2ljYWxfcmVxdWVzdCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAg
ICAgaWYgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVs
czoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NoYW5uZWwgaWQgJWQgYWxy
ZWFkeSBleGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naWNh
bF9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25u
ZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfQ0hBTk5FTF9BTFJF
QURZX0VYSVNUUywKLSAgICAgICAgICAgICAgICAgICAgJ0NoYW5uZWwgaWQgJWQgYWxyZWFkeSBl
eGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQp
Ci0gICAgICAgICAgICB3b3JrZXIgPSBfV29ya2VyKHNlbGYsIGxvZ2ljYWxfcmVxdWVzdCkKLSAg
ICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEobG9naWNhbF9yZXF1
ZXN0LCB3b3JrZXIpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2xvZ2ljYWxf
cmVxdWVzdC5jaGFubmVsX2lkXSA9IGNoYW5uZWxfZGF0YQotICAgICAgICAgICAgd29ya2VyLnN0
YXJ0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNzX2FkZF9jaGFubmVsX3Jl
cXVlc3Qoc2VsZiwgYmxvY2spOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBsb2dpY2FsX3Jl
cXVlc3QgPSBzZWxmLl9jcmVhdGVfbG9naWNhbF9yZXF1ZXN0KGJsb2NrKQotICAgICAgICBleGNl
cHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGVk
IHRvIGNyZWF0ZSBsb2dpY2FsIHJlcXVlc3Q6ICVyJyAlIGUpCi0gICAgICAgICAgICBzZWxmLl9z
ZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAgICAgICAgIGJsb2NrLmNo
YW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgaWYgc2VsZi5fZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3Jl
cXVlc3QobG9naWNhbF9yZXF1ZXN0KToKLSAgICAgICAgICAgIGlmIGJsb2NrLmVuY29kaW5nID09
IF9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFk6Ci0gICAgICAgICAgICAgICAgIyBVcGRhdGUg
aGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgIyBUT0RPKGJhc2hpKTogTWFrZSBzdXJl
IHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHVwZGF0ZQotICAgICAgICAgICAgICAgICMgaGFu
ZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlX2Jhc2UgPSBfSGFu
ZHNoYWtlRGVsdGFCYXNlKAotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuaGVh
ZGVyc19pbikKLSAgICAgICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9y
ZXF1ZXN0KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRf
Y2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICBibG9jay5jaGFubmVsX2lkLCBzdGF0
dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotCi0gICAgZGVmIF9wcm9jZXNzX2Zs
b3dfY29udHJvbChzZWxmLCBibG9jayk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgbm90
IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0
LndzX3N0cmVhbS5yZXBsZW5pc2hfc2VuZF9xdW90YSgKLSAgICAgICAgICAgICAgICBibG9jay5z
ZW5kX3F1b3RhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgX3Byb2Nlc3NfZHJvcF9jaGFu
bmVsKHNlbGYsIGJsb2NrKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAg
ICAgJ0Ryb3BDaGFubmVsIHJlY2VpdmVkIGZvciAlZDogY29kZT0lciwgcmVhc29uPSVyJyAlCi0g
ICAgICAgICAgICAoYmxvY2suY2hhbm5lbF9pZCwgYmxvY2suZHJvcF9jb2RlLCBibG9jay5kcm9w
X21lc3NhZ2UpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVs
X2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNo
YW5uZWxfaWRdCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9jb2RlID0gX0RST1BfQ09E
RV9BQ0tOT1dMRURHRUQKLQotICAgICAgICAgICAgIyBDbG9zZSB0aGUgbG9naWNhbCBjaGFubmVs
Ci0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0
YXRlKAotICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVE
KQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGlu
ZygpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vzc19jb250cm9sX2Jsb2Nrcyhz
ZWxmLCBwYXJzZXIpOgotICAgICAgICBmb3IgY29udHJvbF9ibG9jayBpbiBwYXJzZXIucmVhZF9j
b250cm9sX2Jsb2NrcygpOgotICAgICAgICAgICAgb3Bjb2RlID0gY29udHJvbF9ibG9jay5vcGNv
ZGUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnY29udHJvbCBibG9jayByZWNlaXZl
ZCwgb3Bjb2RlOiAlZCcgJSBvcGNvZGUpCi0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVRVUVTVDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNz
X2FkZF9jaGFubmVsX3JlcXVlc3QoY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAg
IHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICBfRFJP
UF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICdS
ZWNlaXZlZCBBZGRDaGFubmVsUmVzcG9uc2UnKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0g
X01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3Nf
Zmxvd19jb250cm9sKGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBf
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19k
cm9wX2NoYW5uZWwoY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJ
RF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIE5ld0No
YW5uZWxTbG90JykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4
VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgb3Bj
b2RlICVyJyAlIG9wY29kZSkKLQotICAgIGRlZiBfcHJvY2Vzc19sb2dpY2FsX2ZyYW1lKHNlbGYs
IGNoYW5uZWxfaWQsIHBhcnNlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2
ZWQgYSBmcmFtZS4gY2hhbm5lbCBpZD0lZCcgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0g
ICAgICAgICAgICAgICAgIyBXZSBtdXN0IGlnbm9yZSB0aGUgbWVzc2FnZSBmb3IgYW4gaW5hY3Rp
dmUgY2hhbm5lbC4KLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkID0gcGFyc2VyLnJlYWRfaW5uZXJf
ZnJhbWUoKQotICAgICAgICAgICAgY29uc3VtaW5nX2J5dGUgPSBsZW4ocGF5bG9hZCkKLSAgICAg
ICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAg
ICAgICAgICBjb25zdW1pbmdfYnl0ZSArPSAxCi0gICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9k
YXRhLnJlcXVlc3Qud3Nfc3RyZWFtLmNvbnN1bWVfcmVjZWl2ZV9xdW90YSgKLSAgICAgICAgICAg
ICAgICBjb25zdW1pbmdfYnl0ZSk6Ci0gICAgICAgICAgICAgICAgIyBUaGUgY2xpZW50IHZpb2xh
dGVzIHF1b3RhLiBDbG9zZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICAgICAgcmFpc2Ug
TG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgX0RS
T1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTikKLSAgICAgICAgICAgIGhlYWRlciA9IGNyZWF0
ZV9oZWFkZXIob3Bjb2RlLCBsZW4ocGF5bG9hZCksIGZpbiwgcnN2MSwgcnN2MiwgcnN2MywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1GYWxzZSkKLSAgICAgICAgICAg
IGZyYW1lX2RhdGEgPSBoZWFkZXIgKyBwYXlsb2FkCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEu
cmVxdWVzdC5jb25uZWN0aW9uLmFwcGVuZF9mcmFtZV9kYXRhKGZyYW1lX2RhdGEpCi0gICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiBkaXNwYXRjaF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAg
ICAgICAiIiJEaXNwYXRjaGVzIG1lc3NhZ2UuIFRoZSByZWFkZXIgdGhyZWFkIGNhbGxzIHRoaXMg
bWV0aG9kLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNzYWdlOiBhIG1lc3NhZ2Ug
dGhhdCBjb250YWlucyBlbmNhcHN1bGF0ZWQgZnJhbWUuCi0gICAgICAgIFJhaXNlczoKLSAgICAg
ICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBw
aHlzaWNhbAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gbGV2ZWwgZXJyb3JzLgotICAgICAg
ICAgICAgTG9naWNhbENoYW5uZWxFcnJvcjogaWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgbG9naWNh
bCBjaGFubmVsCi0gICAgICAgICAgICAgICAgbGV2ZWwgZXJyb3JzLgotICAgICAgICAiIiIKLQot
ICAgICAgICBwYXJzZXIgPSBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG1lc3NhZ2UpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkK
LSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNh
bENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEKQotICAgICAg
ICBpZiBjaGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICBzZWxm
Ll9wcm9jZXNzX2NvbnRyb2xfYmxvY2tzKHBhcnNlcikKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuX3Byb2Nlc3NfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkLCBwYXJzZXIpCi0KLSAg
ICBkZWYgbm90aWZ5X3dvcmtlcl9kb25lKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICAiIiJD
YWxsZWQgd2hlbiBhIHdvcmtlciBoYXMgZmluaXNoZWQuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ6IGNoYW5uZWwgaWQgY29ycmVzcG9uZGVkIHdpdGggdGhlIHdvcmtl
ci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXb3JrZXIgZm9y
IGNoYW5uZWwgaWQgJWQgdGVybWluYXRlZCcgJSBjaGFubmVsX2lkKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAg
ICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgJ0NoYW5uZWwgaWQgJWQgbm90IGZvdW5kJyAlIGNoYW5uZWxfaWQpCi0gICAgICAg
ICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzLnBvcChjaGFubmVsX2lk
KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5
X3JlY2VpdmVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIGlmIG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC5zZXJ2
ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKAotICAg
ICAgICAgICAgICAgIGNoYW5uZWxfaWQsIGNvZGU9Y2hhbm5lbF9kYXRhLmRyb3BfY29kZSwKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlPWNoYW5uZWxfZGF0YS5kcm9wX21lc3NhZ2UpCi0KLSAgICBk
ZWYgbm90aWZ5X3JlYWRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJUaGlzIG1ldGhvZCBpcyBj
YWxsZWQgYnkgdGhlIHJlYWRlciB0aHJlYWQgd2hlbiB0aGUgcmVhZGVyIGhhcwotICAgICAgICBm
aW5pc2hlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAg
ICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlvbnMgd2FpdGluZyBmb3Ig
aW5jb21pbmcgZGF0YSAnCi0gICAgICAgICAgICAnLi4uJykKLSAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIGZvciBjaGFubmVsX2RhdGEg
aW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLnNldF9yZWFkX3N0
YXRlKAotICAgICAgICAgICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rpb24uU1RBVEVfVEVSTUlO
QVRFRCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIG5vdGlmeV93cml0
ZXJfZG9uZShzZWxmKToKLSAgICAgICAgIiIiVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSB3
cml0ZXIgdGhyZWFkIHdoZW4gdGhlIHdyaXRlciBoYXMKLSAgICAgICAgZmluaXNoZWQuCi0gICAg
ICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdUZXJt
aWF0aW5nIGFsbCBsb2dpY2FsIGNvbm5lY3Rpb25zIHdhaXRpbmcgZm9yIHdyaXRlICcKLSAgICAg
ICAgICAgICdjb21wbGV0aW9uIC4uLicpCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBmb3IgY2hhbm5lbF9kYXRhIGluIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHMudmFsdWVzKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5vbl93cml0ZXJfZG9uZSgpCi0gICAg
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBmYWlsX3BoeXNpY2FsX2Nvbm5lY3Rp
b24oc2VsZiwgY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkZhaWwgdGhlIHBoeXNpY2FsIGNv
bm5lY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNvZGU6IGRyb3AgcmVhc29u
IGNvZGUuCi0gICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3NhZ2UuCi0gICAgICAgICIiIgot
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyB0aGUgcGh5c2ljYWwgY29ubmVj
dGlvbi4uLicpCi0gICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKF9DT05UUk9MX0NIQU5O
RUxfSUQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX3dyaXRlci5zdG9wKGNvbW1vbi5T
VEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IpCi0KLSAgICBkZWYgZmFpbF9sb2dpY2FsX2No
YW5uZWwoc2VsZiwgY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkZhaWwg
YSBsb2dpY2FsIGNoYW5uZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ6IGNoYW5uZWwgaWQuCi0gICAgICAgICAgICBjb2RlOiBkcm9wIHJlYXNvbiBjb2RlLgotICAg
ICAgICAgICAgbWVzc2FnZTogZHJvcCBtZXNzYWdlLgotICAgICAgICAiIiIKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0ZhaWxpbmcgbG9naWNhbCBjaGFubmVsICVkLi4uJyAlIGNoYW5u
ZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgY2hhbm5lbF9pZCBpbiBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgICAgICAjIENsb3NlIHRoZSBs
b2dpY2FsIGNoYW5uZWwuIG5vdGlmeV93b3JrZXJfZG9uZSgpIHdpbGwgYmUKLSAgICAgICAgICAg
ICAgICAjIGNhbGxlZCBsYXRlciBhbmQgaXQgd2lsbCBzZW5kIERyb3BDaGFubmVsLgotICAgICAg
ICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBjb2RlCi0gICAgICAgICAgICAgICAg
Y2hhbm5lbF9kYXRhLmRyb3BfbWVzc2FnZSA9IG1lc3NhZ2UKLQotICAgICAgICAgICAgICAgIGNo
YW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCi0gICAgICAgICAg
ICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQotICAgICAgICAg
ICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5zdG9wX3NlbmRpbmcoKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Ryb3BfY2hhbm5lbChj
aGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotZGVmIHVzZV9t
dXgocmVxdWVzdCk6Ci0gICAgcmV0dXJuIGhhc2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3In
KSBhbmQgKAotICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IuaXNfYWN0aXZlKCkpCi0KLQot
ZGVmIHN0YXJ0KHJlcXVlc3QsIGRpc3BhdGNoZXIpOgotICAgIG11eF9oYW5kbGVyID0gX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhfSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQotCi0gICAgbXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKCkKLQotCi0j
IHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9z
dGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0YzI5OWVhZjNkZjlmYzNlMTczOGJjZmU3MDc3
MzE5Zjg3NmU4OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMTkzICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiU3RhbmRhbG9uZSBXZWJTb2NrZXQgc2VydmVyLgotCi1Vc2UgdGhpcyBmaWxl
IHRvIGxhdW5jaCBweXdlYnNvY2tldCB3aXRob3V0IEFwYWNoZSBIVFRQIFNlcnZlci4KLQotCi1C
QVNJQyBVU0FHRQotPT09PT09PT09PT0KLQotR28gdG8gdGhlIHNyYyBkaXJlY3RvcnkgYW5kIHJ1
bgotCi0gICQgcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IFstcCA8d3NfcG9y
dD5dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFstdyA8d2Vic29j
a19oYW5kbGVycz5dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFst
ZCA8ZG9jdW1lbnRfcm9vdD5dCi0KLTx3c19wb3J0PiBpcyB0aGUgcG9ydCBudW1iZXIgdG8gdXNl
IGZvciB3czovLyBjb25uZWN0aW9uLgotCi08ZG9jdW1lbnRfcm9vdD4gaXMgdGhlIHBhdGggdG8g
dGhlIHJvb3QgZGlyZWN0b3J5IG9mIEhUTUwgZmlsZXMuCi0KLTx3ZWJzb2NrX2hhbmRsZXJzPiBp
cyB0aGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgV2ViU29ja2V0IGhhbmRsZXJzLgot
SWYgbm90IHNwZWNpZmllZCwgPGRvY3VtZW50X3Jvb3Q+IHdpbGwgYmUgdXNlZC4gU2VlIF9faW5p
dF9fLnB5IChvcgotcnVuICQgcHlkb2MgbW9kX3B5d2Vic29ja2V0KSBmb3IgaG93IHRvIHdyaXRl
IFdlYlNvY2tldCBoYW5kbGVycy4KLQotRm9yIG1vcmUgZGV0YWlsIGFuZCBvdGhlciBvcHRpb25z
LCBydW4KLQotICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtLWhlbHAK
LQotb3Igc2VlIF9idWlsZF9vcHRpb25fcGFyc2VyIG1ldGhvZCBiZWxvdy4KLQotRm9yIHRyb3Vi
bGUgc2hvb3RpbmcsIGFkZGluZyAiLS1sb2dfbGV2ZWwgZGVidWciIG1pZ2h0IGhlbHAgeW91Lgot
Ci0KLVRSWSBERU1PCi09PT09PT09PQotCi1HbyB0byB0aGUgc3JjIGRpcmVjdG9yeSBhbmQgcnVu
IHN0YW5kYWxvbmUucHkgd2l0aCAtZCBvcHRpb24gdG8gc2V0IHRoZQotZG9jdW1lbnQgcm9vdCB0
byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgZXhhbXBsZSBIVE1McyBhbmQgaGFuZGxlcnMgbGlr
ZSB0aGlzOgotCi0gICQgY2Qgc3JjCi0gICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJz
b2NrZXQvc3RhbmRhbG9uZS5weSAtZCBleGFtcGxlCi0KLXRvIGxhdW5jaCBweXdlYnNvY2tldCB3
aXRoIHRoZSBzYW1wbGUgaGFuZGxlciBhbmQgaHRtbCBvbiBwb3J0IDgwLiBPcGVuCi1odHRwOi8v
bG9jYWxob3N0L2NvbnNvbGUuaHRtbCwgY2xpY2sgdGhlIGNvbm5lY3QgYnV0dG9uLCB0eXBlIHNv
bWV0aGluZyBpbnRvCi10aGUgdGV4dCBib3ggbmV4dCB0byB0aGUgc2VuZCBidXR0b24gYW5kIGNs
aWNrIHRoZSBzZW5kIGJ1dHRvbi4gSWYgZXZlcnl0aGluZwotaXMgd29ya2luZywgeW91J2xsIHNl
ZSB0aGUgbWVzc2FnZSB5b3UgdHlwZWQgZWNob2VkIGJ5IHRoZSBzZXJ2ZXIuCi0KLQotVVNJTkcg
VExTCi09PT09PT09PT0KLQotVG8gcnVuIHRoZSBzdGFuZGFsb25lIHNlcnZlciB3aXRoIFRMUyBz
dXBwb3J0LCBydW4gaXQgd2l0aCAtdCwgLWssIGFuZCAtYwotb3B0aW9ucy4gV2hlbiBUTFMgaXMg
ZW5hYmxlZCwgdGhlIHN0YW5kYWxvbmUgc2VydmVyIGFjY2VwdHMgb25seSBUTFMgY29ubmVjdGlv
bi4KLQotTm90ZSB0aGF0IHdoZW4gc3NsIG1vZHVsZSBpcyB1c2VkIGFuZCB0aGUga2V5L2NlcnQg
bG9jYXRpb24gaXMgaW5jb3JyZWN0LAotVExTIGNvbm5lY3Rpb24gc2lsZW50bHkgZmFpbHMgd2hp
bGUgcHlPcGVuU1NMIGZhaWxzIG9uIHN0YXJ0dXAuCi0KLUV4YW1wbGU6Ci0KLSAgJCBQWVRIT05Q
QVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IFwKLSAgICAgICAgLWQg
ZXhhbXBsZSBcCi0gICAgICAgIC1wIDEwNDQzIFwKLSAgICAgICAgLXQgXAotICAgICAgICAtYyAu
Li90ZXN0L2NlcnQvY2VydC5wZW0gXAotICAgICAgICAtayAuLi90ZXN0L2NlcnQva2V5LnBlbSBc
Ci0KLU5vdGUgdGhhdCB3aGVuIHBhc3NpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIC1jIGFuZCAtayBv
cHRpb24sIGl0IHdpbGwgYmUgcmVzb2x2ZWQKLXVzaW5nIHRoZSBkb2N1bWVudCByb290IGRpcmVj
dG9yeSBhcyB0aGUgYmFzZS4KLQotCi1VU0lORyBDTElFTlQgQVVUSEVOVElDQVRJT04KLT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotCi1UbyBydW4gdGhlIHN0YW5kYWxvbmUgc2VydmVyIHdp
dGggVExTIGNsaWVudCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0LCBydW4gaXQgd2l0aAotLS10bHMt
Y2xpZW50LWF1dGggYW5kIC0tdGxzLWNsaWVudC1jYSBvcHRpb25zIGluIGFkZGl0aW9uIHRvIG9u
ZXMgcmVxdWlyZWQgZm9yCi1UTFMgc3VwcG9ydC4KLQotRXhhbXBsZToKLQotICAkIFBZVEhPTlBB
VEg9LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZSAtcCAx
MDQ0MyAtdCBcCi0gICAgICAgIC1jIC4uL3Rlc3QvY2VydC9jZXJ0LnBlbSAtayAuLi90ZXN0L2Nl
cnQva2V5LnBlbSBcCi0gICAgICAgIC0tdGxzLWNsaWVudC1hdXRoIFwKLSAgICAgICAgLS10bHMt
Y2xpZW50LWNhPS4uL3Rlc3QvY2VydC9jYWNlcnQucGVtCi0KLU5vdGUgdGhhdCB3aGVuIHBhc3Np
bmcgYSByZWxhdGl2ZSBwYXRoIHRvIC0tdGxzLWNsaWVudC1jYSBvcHRpb24sIGl0IHdpbGwgYmUK
LXJlc29sdmVkIHVzaW5nIHRoZSBkb2N1bWVudCByb290IGRpcmVjdG9yeSBhcyB0aGUgYmFzZS4K
LQotCi1DT05GSUdVUkFUSU9OIEZJTEUKLT09PT09PT09PT09PT09PT09PQotCi1Zb3UgY2FuIGFs
c28gd3JpdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHVzZSBpdCBieSBzcGVjaWZ5aW5nIHRo
ZSBwYXRoIHRvCi10aGUgY29uZmlndXJhdGlvbiBmaWxlIGJ5IC0tY29uZmlnIG9wdGlvbi4gUGxl
YXNlIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlCi1mb2xsb3dpbmcgdGhlIGRvY3VtZW50YXRp
b24gb2YgdGhlIFB5dGhvbiBDb25maWdQYXJzZXIgbGlicmFyeS4gTmFtZSBvZiBlYWNoCi1lbnRy
eSBtdXN0IGJlIHRoZSBsb25nIHZlcnNpb24gYXJndW1lbnQgbmFtZS4gRS5nLiB0byBzZXQgbG9n
IGxldmVsIHRvIGRlYnVnLAotYWRkIHRoZSBmb2xsb3dpbmcgbGluZToKLQotbG9nX2xldmVsPWRl
YnVnCi0KLUZvciBvcHRpb25zIHdoaWNoIGRvZXNuJ3QgdGFrZSB2YWx1ZSwgcGxlYXNlIGFkZCBz
b21lIGZha2UgdmFsdWUuIEUuZy4gZm9yCi0tLXRscyBvcHRpb24sIGFkZCB0aGUgZm9sbG93aW5n
IGxpbmU6Ci0KLXRscz1UcnVlCi0KLU5vdGUgdGhhdCB0bHMgd2lsbCBiZSBlbmFibGVkIGV2ZW4g
aWYgeW91IHdyaXRlIHRscz1GYWxzZSBhcyB0aGUgdmFsdWUgcGFydCBpcwotZmFrZS4KLQotV2hl
biBib3RoIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IGFuZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBl
bnRyeSBhcmUgc2V0IGZvcgotdGhlIHNhbWUgY29uZmlndXJhdGlvbiBpdGVtLCB0aGUgY29tbWFu
ZCBsaW5lIHZhbHVlIHdpbGwgb3ZlcnJpZGUgb25lIGluIHRoZQotY29uZmlndXJhdGlvbiBmaWxl
LgotCi0KLVRIUkVBRElORwotPT09PT09PT09Ci0KLVRoaXMgc2VydmVyIGlzIGRlcml2ZWQgZnJv
bSBTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uIEhlbmNlIGEgdGhyZWFkIGlzCi11c2VkIGZv
ciBlYWNoIHJlcXVlc3QuCi0KLQotU0VDVVJJVFkgV0FSTklORwotPT09PT09PT09PT09PT09PQot
Ci1UaGlzIHVzZXMgQ0dJSFRUUFNlcnZlciBhbmQgQ0dJSFRUUFNlcnZlciBpcyBub3Qgc2VjdXJl
LgotSXQgbWF5IGV4ZWN1dGUgYXJiaXRyYXJ5IFB5dGhvbiBjb2RlIG9yIGV4dGVybmFsIHByb2dy
YW1zLiBJdCBzaG91bGQgbm90IGJlCi11c2VkIG91dHNpZGUgYSBmaXJld2FsbC4KLSIiIgotCi1p
bXBvcnQgQmFzZUhUVFBTZXJ2ZXIKLWltcG9ydCBDR0lIVFRQU2VydmVyCi1pbXBvcnQgU2ltcGxl
SFRUUFNlcnZlcgotaW1wb3J0IFNvY2tldFNlcnZlcgotaW1wb3J0IENvbmZpZ1BhcnNlcgotaW1w
b3J0IGJhc2U2NAotaW1wb3J0IGh0dHBsaWIKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbG9nZ2lu
Zy5oYW5kbGVycwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0
IHNlbGVjdAotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN5cwotaW1wb3J0IHRocmVhZGluZwotaW1w
b3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
aGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdmaWxlCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQueGhyX2JlbmNobWFya19o
YW5kbGVyIGltcG9ydCBYSFJCZW5jaG1hcmtIYW5kbGVyCi0KLQotX0RFRkFVTFRfTE9HX01BWF9C
WVRFUyA9IDEwMjQgKiAyNTYKLV9ERUZBVUxUX0xPR19CQUNLVVBfQ09VTlQgPSA1Ci0KLV9ERUZB
VUxUX1JFUVVFU1RfUVVFVUVfU0laRSA9IDEyOAotCi0jIDEwMjQgaXMgcHJhY3RpY2FsbHkgbGFy
Z2UgZW5vdWdoIHRvIGNvbnRhaW4gV2ViU29ja2V0IGhhbmRzaGFrZSBsaW5lcy4KLV9NQVhfTUVN
T1JJWkVEX0xJTkVTID0gMTAyNAotCi0jIENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBm
bGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUgPSAnc3NsJwotX1RMU19CWV9QWU9QRU5TU0wg
PSAncHlvcGVuc3NsJwotCi0KLWNsYXNzIF9TdGFuZGFsb25lQ29ubmVjdGlvbihvYmplY3QpOgot
ICAgICIiIk1pbWljIG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2Uu
Ci0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2Nr
ZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5kbGVyCi0KLSAgICBkZWYgZ2V0X2xvY2FsX2Fk
ZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9jb25uLmxvY2FsX2FkZHIu
IiIiCi0KLSAgICAgICAgcmV0dXJuIChzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZl
cl9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2Vy
dmVyX3BvcnQpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQotCi0g
ICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWlj
IG1wX2Nvbm4ucmVtb3RlX2FkZHIuCi0KLSAgICAgICAgU2V0dGluZyB0aGUgcHJvcGVydHkgaW4g
X19pbml0X18gd29uJ3Qgd29yayBiZWNhdXNlIHRoZSByZXF1ZXN0Ci0gICAgICAgIGhhbmRsZXIg
aXMgbm90IGluaXRpYWxpemVkIHlldCB0aGVyZS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5f
cmVxdWVzdF9oYW5kbGVyLmNsaWVudF9hZGRyZXNzCi0gICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0
eShnZXRfcmVtb3RlX2FkZHIpCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAg
ICIiIk1pbWljIG1wX2Nvbm4ud3JpdGUoKS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fcmVx
dWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGRhdGEpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5n
dGgpOgotICAgICAgICAiIiJNaW1pYyBtcF9jb25uLnJlYWQoKS4iIiIKLQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxlLnJlYWQobGVuZ3RoKQotCi0gICAgZGVmIGdl
dF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMu
IiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZmlsZS5nZXRfbWVt
b3JpemVkX2xpbmVzKCkKLQotCi1jbGFzcyBfU3RhbmRhbG9uZVJlcXVlc3Qob2JqZWN0KToKLSAg
ICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcmVxdWVzdF9oYW5kbGVyLCB1c2VfdGxzKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGlu
c3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEg
V2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNl
bGYuX3JlcXVlc3RfaGFuZGxlciA9IHJlcXVlc3RfaGFuZGxlcgotICAgICAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBfU3RhbmRhbG9uZUNvbm5lY3Rpb24ocmVxdWVzdF9oYW5kbGVyKQotICAgICAgICBz
ZWxmLl91c2VfdGxzID0gdXNlX3RscwotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSByZXF1ZXN0
X2hhbmRsZXIuaGVhZGVycwotCi0gICAgZGVmIGdldF91cmkoc2VsZik6Ci0gICAgICAgICIiIkdl
dHRlciB0byBtaW1pYyByZXF1ZXN0LnVyaS4KLQotICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5z
IHRoZSByYXcgZGF0YSBhdCB0aGUgUmVxdWVzdC1VUkkgcGFydCBvZiB0aGUKLSAgICAgICAgUmVx
dWVzdC1MaW5lLCB3aGlsZSB0aGUgdXJpIG1ldGhvZCBvbiB0aGUgcmVxdWVzdCBvYmplY3Qgb2Yg
bW9kX3B5dGhvbgotICAgICAgICByZXR1cm5zIHRoZSBwYXRoIHBvcnRpb24gYWZ0ZXIgcGFyc2lu
ZyB0aGUgcmF3IGRhdGEuIFRoaXMgYmVoYXZpb3IgaXMKLSAgICAgICAga2VwdCBmb3IgY29tcGF0
aWJpbGl0eS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFu
ZGxlci5wYXRoCi0gICAgdXJpID0gcHJvcGVydHkoZ2V0X3VyaSkKLQotICAgIGRlZiBnZXRfdW5w
YXJzZWRfdXJpKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51bnBh
cnNlZF91cmkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRo
Ci0gICAgdW5wYXJzZWRfdXJpID0gcHJvcGVydHkoZ2V0X3VucGFyc2VkX3VyaSkKLQotICAgIGRl
ZiBnZXRfbWV0aG9kKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5t
ZXRob2QuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5jb21tYW5k
Ci0gICAgbWV0aG9kID0gcHJvcGVydHkoZ2V0X21ldGhvZCkKLQotICAgIGRlZiBnZXRfcHJvdG9j
b2woc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnByb3RvY29sLiIi
IgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmVxdWVzdF92ZXJzaW9u
Ci0gICAgcHJvdG9jb2wgPSBwcm9wZXJ0eShnZXRfcHJvdG9jb2wpCi0KLSAgICBkZWYgaXNfaHR0
cHMoc2VsZik6Ci0gICAgICAgICIiIk1pbWljIHJlcXVlc3QuaXNfaHR0cHMoKS4iIiIKLQotICAg
ICAgICByZXR1cm4gc2VsZi5fdXNlX3RscwotCi0KLWRlZiBfaW1wb3J0X3NzbCgpOgotICAgIGds
b2JhbCBzc2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzc2wKLSAgICAgICAgcmV0dXJuIFRy
dWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRl
ZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBPcGVuU1NMCi0gICAgdHJ5OgotICAg
ICAgICBpbXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQg
SW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNsYXNzIF9TdGFuZGFsb25l
U1NMQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3IgT3BlblNT
TC5TU0wuQ29ubmVjdGlvbiB0bwotICAgIC0gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2Qgd2hpY2gg
aXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY2xhc3MKLSAgICAtIHR3ZWFrIHNodXRkb3duIG1ldGhv
ZCBzaW5jZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uLnNodXRkb3duIGRvZXNuJ3QKLSAgICAgIGFj
Y2VwdCB0aGUgImhvdyIgYXJndW1lbnQuCi0gICAgLSBjb252ZXJ0IFN5c0NhbGxFcnJvciBleGNl
cHRpb25zIHRoYXQgaXRzIHJlY3YgbWV0aG9kIG1heSByYWlzZSBpbnRvIGEKLSAgICAgIHJldHVy
biB2YWx1ZSBvZiAnJywgbWVhbmluZyBFT0YuIFdlIGNhbm5vdCBvdmVyd3JpdGUgdGhlIHJlY3Yg
bWV0aG9kIG9uCi0gICAgICBzZWxmLl9jb25uZWN0aW9uIHNpbmNlIGl0J3MgaW1tdXRhYmxlLgot
ICAgICIiIgotCi0gICAgX09WRVJSSURERU5fQVRUUklCVVRFUyA9IFsnX2Nvbm5lY3Rpb24nLCAn
bWFrZWZpbGUnLCAnc2h1dGRvd24nLCAncmVjdiddCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
Y29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uCi0KLSAg
ICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgaWYgbmFtZSBpbiBf
U3RhbmRhbG9uZVNTTENvbm5lY3Rpb24uX09WRVJSSURERU5fQVRUUklCVVRFUzoKLSAgICAgICAg
ICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQotICAgICAgICBy
ZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCi0KLSAgICBkZWYg
X19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBpZiBuYW1lIGluIF9TdGFu
ZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJVVEVTOgotICAgICAgICAgICAg
cmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19zZXRhdHRyX18obmFtZSwgdmFsdWUpCi0KLSAgICBkZWYg
bWFrZWZpbGUoc2VsZiwgbW9kZT0ncicsIGJ1ZnNpemU9LTEpOgotICAgICAgICByZXR1cm4gc29j
a2V0Ll9maWxlb2JqZWN0KHNlbGYsIG1vZGUsIGJ1ZnNpemUpCi0KLSAgICBkZWYgc2h1dGRvd24o
c2VsZiwgdW51c2VkX2hvdyk6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24uc2h1dGRvd24oKQot
Ci0gICAgZGVmIHJlY3Yoc2VsZiwgYnVmc2l6ZSwgZmxhZ3M9MCk6Ci0gICAgICAgIGlmIGZsYWdz
ICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdOb24temVybyBmbGFncyBub3Qg
YWxsb3dlZCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5l
Y3Rpb24ucmVjdihidWZzaXplKQotICAgICAgICBleGNlcHQgT3BlblNTTC5TU0wuU3lzQ2FsbEVy
cm9yLCAoZXJyLCBtZXNzYWdlKToKLSAgICAgICAgICAgIGlmIGVyciA9PSAtMToKLSAgICAgICAg
ICAgICAgICAjIFN1cHByZXNzICJ1bmV4cGVjdGVkIEVPRiIgZXhjZXB0aW9uLiBTZWUgdGhlIE9w
ZW5TU0wgZG9jdW1lbnQKLSAgICAgICAgICAgICAgICAjIGZvciBTU0xfZ2V0X2Vycm9yLgotICAg
ICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAgICAgcmFpc2UKLQotCi1kZWYgX2FsaWFz
X2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpOgotICAgICIi
IlNldCBhbGlhc2VzIHNwZWNpZmllZCBpbiB3ZWJzb2NrX2hhbmRsZXJfbWFwX2ZpbGUgaW4gZGlz
cGF0Y2hlci4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGRpc3BhdGNoZXI6IGRpc3BhdGNoLkRpc3Bh
dGNoZXIgaW5zdGFuY2UKLSAgICAgICAgd2Vic29ja19oYW5kbGVyX21hcF9maWxlOiBhbGlhcyBt
YXAgZmlsZQotICAgICIiIgotCi0gICAgZnAgPSBvcGVuKHdlYnNvY2tfaGFuZGxlcnNfbWFwX2Zp
bGUpCi0gICAgdHJ5OgotICAgICAgICBmb3IgbGluZSBpbiBmcDoKLSAgICAgICAgICAgIGlmIGxp
bmVbMF0gPT0gJyMnIG9yIGxpbmUuaXNzcGFjZSgpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICBtID0gcmUubWF0Y2goJyhcUyspXHMrKFxTKyknLCBsaW5lKQotICAgICAg
ICAgICAgaWYgbm90IG06Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXcm9uZyBm
b3JtYXQgaW4gbWFwIGZpbGU6JyArIGxpbmUpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLmFkZF9yZXNvdXJjZV9w
YXRoX2FsaWFzKAotICAgICAgICAgICAgICAgICAgICBtLmdyb3VwKDEpLCBtLmdyb3VwKDIpKQot
ICAgICAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgotICAgICAg
ICAgICAgICAgIGxvZ2dpbmcuZXJyb3Ioc3RyKGUpKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGZw
LmNsb3NlKCkKLQotCi1jbGFzcyBXZWJTb2NrZXRTZXJ2ZXIoU29ja2V0U2VydmVyLlRocmVhZGlu
Z01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKLSAgICAiIiJIVFRQU2VydmVyIHNw
ZWNpYWxpemVkIGZvciBXZWJTb2NrZXQuIiIiCi0KLSAgICAjIE92ZXJyaWRlcyBTb2NrZXRTZXJ2
ZXIuVGhyZWFkaW5nTWl4SW4uZGFlbW9uX3RocmVhZHMKLSAgICBkYWVtb25fdGhyZWFkcyA9IFRy
dWUKLSAgICAjIE92ZXJyaWRlcyBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyLmFsbG93X3JldXNl
X2FkZHJlc3MKLSAgICBhbGxvd19yZXVzZV9hZGRyZXNzID0gVHJ1ZQotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQ
U2VydmVyLl9faW5pdF9fIHRvIHNldCBTU0wgZW5hYmxlZAotICAgICAgICBzb2NrZXQgb2JqZWN0
IHRvIHNlbGYuc29ja2V0IGJlZm9yZSBzZXJ2ZXJfYmluZCBhbmQgc2VydmVyX2FjdGl2YXRlLAot
ICAgICAgICBpZiBuZWNlc3NhcnkuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgU2hhcmUgYSBE
aXNwYXRjaGVyIGFtb25nIHJlcXVlc3QgaGFuZGxlcnMgdG8gc2F2ZSB0aW1lIGZvcgotICAgICAg
ICAjIGluc3RhbnRpYXRpb24uICBEaXNwYXRjaGVyIGNhbiBiZSBzaGFyZWQgYmVjYXVzZSBpdCBp
cyB0aHJlYWQtc2FmZS4KLSAgICAgICAgb3B0aW9ucy5kaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlz
cGF0Y2hlcigKLSAgICAgICAgICAgIG9wdGlvbnMud2Vic29ja19oYW5kbGVycywKLSAgICAgICAg
ICAgIG9wdGlvbnMuc2Nhbl9kaXIsCi0gICAgICAgICAgICBvcHRpb25zLmFsbG93X2hhbmRsZXJz
X291dHNpZGVfcm9vdF9kaXIpCi0gICAgICAgIGlmIG9wdGlvbnMud2Vic29ja19oYW5kbGVyc19t
YXBfZmlsZToKLSAgICAgICAgICAgIF9hbGlhc19oYW5kbGVycyhvcHRpb25zLmRpc3BhdGNoZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzX21h
cF9maWxlKQotICAgICAgICB3YXJuaW5ncyA9IG9wdGlvbnMuZGlzcGF0Y2hlci5zb3VyY2Vfd2Fy
bmluZ3MoKQotICAgICAgICBpZiB3YXJuaW5nczoKLSAgICAgICAgICAgIGZvciB3YXJuaW5nIGlu
IHdhcm5pbmdzOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnV2FybmluZyBpbiBz
b3VyY2UgbG9hZGluZzogJXMnICUgd2FybmluZykKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLnJlcXVlc3RfcXVldWVf
c2l6ZSA9IG9wdGlvbnMucmVxdWVzdF9xdWV1ZV9zaXplCi0gICAgICAgIHNlbGYuX193c19pc19z
aHV0X2Rvd24gPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9
IEZhbHNlCi0KLSAgICAgICAgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIuX19pbml0X18oCi0gICAg
ICAgICAgICBzZWxmLCAob3B0aW9ucy5zZXJ2ZXJfaG9zdCwgb3B0aW9ucy5wb3J0KSwgV2ViU29j
a2V0UmVxdWVzdEhhbmRsZXIpCi0KLSAgICAgICAgIyBFeHBvc2UgdGhlIG9wdGlvbnMgb2JqZWN0
IHRvIGFsbG93IGhhbmRsZXIgb2JqZWN0cyBhY2Nlc3MgaXQuIFdlIG5hbWUKLSAgICAgICAgIyBp
dCB3aXRoIHdlYnNvY2tldF8gcHJlZml4IHRvIGF2b2lkIGNvbmZsaWN0LgotICAgICAgICBzZWxm
LndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgICAgICBzZWxmLl9jcmVh
dGVfc29ja2V0cygpCi0gICAgICAgIHNlbGYuc2VydmVyX2JpbmQoKQotICAgICAgICBzZWxmLnNl
cnZlcl9hY3RpdmF0ZSgpCi0KLSAgICBkZWYgX2NyZWF0ZV9zb2NrZXRzKHNlbGYpOgotICAgICAg
ICBzZWxmLnNlcnZlcl9uYW1lLCBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVz
cwotICAgICAgICBzZWxmLl9zb2NrZXRzID0gW10KLSAgICAgICAgaWYgbm90IHNlbGYuc2VydmVy
X25hbWU6Ci0gICAgICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBJ
UHY2LCB0aGUgZmlyc3QgYmluZCBmYWlscy4KLSAgICAgICAgICAgICMgT24gcGxhdGZvcm1zIHRo
YXQgc3VwcG9ydHMgSVB2NgotICAgICAgICAgICAgIyAtIElmIGl0IGJpbmRzIGJvdGggSVB2NCBh
bmQgSVB2NiBvbiBjYWxsIHdpdGggQUZfSU5FVDYsIHRoZQotICAgICAgICAgICAgIyAgIGZpcnN0
IGJpbmQgc3VjY2VlZHMgYW5kIHRoZSBzZWNvbmQgZmFpbHMgKHdlJ2xsIHNlZSAnQWRkcmVzcwot
ICAgICAgICAgICAgIyAgIGFscmVhZHkgaW4gdXNlJyBlcnJvcikuCi0gICAgICAgICAgICAjIC0g
SWYgaXQgYmluZHMgb25seSBJUHY2IG9uIGNhbGwgd2l0aCBBRl9JTkVUNiwgYm90aCBjYWxsIGFy
ZQotICAgICAgICAgICAgIyAgIGV4cGVjdGVkIHRvIHN1Y2NlZWQgdG8gbGlzdGVuIGJvdGggcHJv
dG9jb2wuCi0gICAgICAgICAgICBhZGRyaW5mb19hcnJheSA9IFsKLSAgICAgICAgICAgICAgICAo
c29ja2V0LkFGX0lORVQ2LCBzb2NrZXQuU09DS19TVFJFQU0sICcnLCAnJywgJycpLAotICAgICAg
ICAgICAgICAgIChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNLCAnJywgJycsICcn
KV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFkZHJpbmZvX2FycmF5ID0gc29ja2V0Lmdl
dGFkZHJpbmZvKHNlbGYuc2VydmVyX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LkFGX1VOU1BFQywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5TT0NLX1NUUkVB
TSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tl
dC5JUFBST1RPX1RDUCkKLSAgICAgICAgZm9yIGFkZHJpbmZvIGluIGFkZHJpbmZvX2FycmF5Ogot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0NyZWF0ZSBzb2NrZXQgb246ICVyJywgYWRk
cmluZm8pCi0gICAgICAgICAgICBmYW1pbHksIHNvY2t0eXBlLCBwcm90bywgY2Fub25uYW1lLCBz
b2NrYWRkciA9IGFkZHJpbmZvCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29j
a2V0XyA9IHNvY2tldC5zb2NrZXQoZmFtaWx5LCBzb2NrdHlwZSkKLSAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAg
YnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAg
ICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAg
ICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAgICAgICAgICMgRm9yIHRo
ZSBjYXNlIG9mIF9IQVNfT1BFTl9TU0wsIHdlIGRvIHdyYXBwZXIgc2V0dXAgYWZ0ZXIKLSAgICAg
ICAgICAgICAgICAjIGFjY2VwdC4KLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50
bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgICAgICAg
ICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRfT1BUSU9OQUwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2NlcnRfID0gc3NsLkNFUlRfUkVRVUlSRUQKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX05PTkUK
LSAgICAgICAgICAgICAgICAgICAgc29ja2V0XyA9IHNzbC53cmFwX3NvY2tldChzb2NrZXRfLAot
ICAgICAgICAgICAgICAgICAgICAgICAga2V5ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tl
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRmaWxlPXNlcnZlcl9vcHRpb25zLmNlcnRp
ZmljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09M
X1NTTHYyMywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRzPXNlcnZlcl9vcHRpb25z
LnRsc19jbGllbnRfY2EsCi0gICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X3JlcXM9Y2xpZW50
X2NlcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9
RmFsc2UpCi0gICAgICAgICAgICBzZWxmLl9zb2NrZXRzLmFwcGVuZCgoc29ja2V0XywgYWRkcmlu
Zm8pKQotCi0gICAgZGVmIHNlcnZlcl9iaW5kKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBT
b2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9iaW5kIHRvIGVuYWJsZSBtdWx0aXBsZQotICAg
ICAgICBzb2NrZXRzIGJpbmQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZhaWxlZF9zb2NrZXRz
ID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgotICAgICAg
ICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuaW5mbygnQmluZCBvbjogJXInLCBhZGRyaW5mbykKLSAgICAgICAgICAgIGlmIHNlbGYu
YWxsb3dfcmV1c2VfYWRkcmVzczoKLSAgICAgICAgICAgICAgICBzb2NrZXRfLnNldHNvY2tvcHQo
c29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19SRVVTRUFERFIsIDEpCi0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5iaW5kKHNlbGYuc2VydmVyX2FkZHJlc3MpCi0g
ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAgICAgICAgICAgICBzb2Nr
ZXRfLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0
aW5mbykKLSAgICAgICAgICAgIGlmIHNlbGYuc2VydmVyX2FkZHJlc3NbMV0gPT0gMDoKLSAgICAg
ICAgICAgICAgICAjIFRoZSBvcGVyYXRpbmcgc3lzdGVtIGFzc2lnbnMgdGhlIGFjdHVhbCBwb3J0
IG51bWJlciBmb3IgcG9ydAotICAgICAgICAgICAgICAgICMgbnVtYmVyIDAuIFRoaXMgY2FzZSwg
dGhlIHNlY29uZCBhbmQgbGF0ZXIgc29ja2V0cyBzaG91bGQgdXNlCi0gICAgICAgICAgICAgICAg
IyB0aGUgc2FtZSBwb3J0IG51bWJlci4gQWxzbyBzZWxmLnNlcnZlcl9wb3J0IGlzIHJld3JpdHRl
bgotICAgICAgICAgICAgICAgICMgYmVjYXVzZSBpdCBpcyBleHBvcnRlZCwgYW5kIHdpbGwgYmUg
dXNlZCBieSBleHRlcm5hbCBjb2RlLgotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2FkZHJl
c3MgPSAoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX25hbWUsIHNvY2tldF8uZ2V0
c29ja25hbWUoKVsxXSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5z
ZXJ2ZXJfYWRkcmVzc1sxXQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdQb3J0
ICVyIGlzIGFzc2lnbmVkJywgc2VsZi5zZXJ2ZXJfcG9ydCkKLQotICAgICAgICBmb3Igc29ja2V0
aW5mbyBpbiBmYWlsZWRfc29ja2V0czoKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3Zl
KHNvY2tldGluZm8pCi0KLSAgICBkZWYgc2VydmVyX2FjdGl2YXRlKHNlbGYpOgotICAgICAgICAi
IiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9hY3RpdmF0ZSB0byBlbmFi
bGUgbXVsdGlwbGUKLSAgICAgICAgc29ja2V0cyBsaXN0ZW4uCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGZhaWxlZF9zb2NrZXRzID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxm
Ll9zb2NrZXRzOgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0g
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnTGlzdGVuIG9uOiAlcicsIGFkZHJpbmZvKQot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8ubGlzdGVuKHNlbGYucmVx
dWVzdF9xdWV1ZV9zaXplKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCi0g
ICAgICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0gICAgICAgICAgICAgICAgZmFpbGVkX3Nv
Y2tldHMuYXBwZW5kKHNvY2tldGluZm8pCi0KLSAgICAgICAgZm9yIHNvY2tldGluZm8gaW4gZmFp
bGVkX3NvY2tldHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXRzLnJlbW92ZShzb2NrZXRpbmZv
KQotCi0gICAgICAgIGlmIGxlbihzZWxmLl9zb2NrZXRzKSA9PSAwOgotICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICdObyBzb2NrZXRzIGFjdGl2YXRl
ZC4gVXNlIGluZm8gbG9nIGxldmVsIHRvIHNlZSB0aGUgcmVhc29uLicpCi0KLSAgICBkZWYgc2Vy
dmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2Vy
dmVyLnNlcnZlcl9jbG9zZSB0byBlbmFibGUgbXVsdGlwbGUKLSAgICAgICAgc29ja2V0cyBjbG9z
ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZm9yIHNvY2tldGluZm8gaW4gc2VsZi5fc29ja2V0
czoKLSAgICAgICAgICAgIHNvY2tldF8sIGFkZHJpbmZvID0gc29ja2V0aW5mbwotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nsb3NlIG9uOiAlcicsIGFkZHJpbmZvKQotICAgICAgICAg
ICAgc29ja2V0Xy5jbG9zZSgpCi0KLSAgICBkZWYgZmlsZW5vKHNlbGYpOgotICAgICAgICAiIiJP
dmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLmZpbGVuby4iIiIKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuY3JpdGljYWwoJ05vdCBzdXBwb3J0ZWQ6IGZpbGVubycpCi0gICAgICAgIHJldHVy
biBzZWxmLl9zb2NrZXRzWzBdWzBdLmZpbGVubygpCi0KLSAgICBkZWYgaGFuZGxlX2Vycm9yKHNl
bGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0
U2VydmVyLmhhbmRsZV9lcnJvci4iIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZXJyb3IoCi0g
ICAgICAgICAgICAnRXhjZXB0aW9uIGluIHByb2Nlc3NpbmcgcmVxdWVzdCBmcm9tOiAlclxuJXMn
LAotICAgICAgICAgICAgY2xpZW50X2FkZHJlc3MsCi0gICAgICAgICAgICB1dGlsLmdldF9zdGFj
a190cmFjZSgpKQotICAgICAgICAjIE5vdGU6IGNsaWVudF9hZGRyZXNzIGlzIGEgdHVwbGUuCi0K
LSAgICBkZWYgZ2V0X3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIFRDUFNlcnZl
ci5nZXRfcmVxdWVzdCB0byB3cmFwIE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24KLSAgICAgICAgb2Jq
ZWN0IHdpdGggX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uIHRvIHByb3ZpZGUgbWFrZWZpbGUgbWV0
aG9kLiBXZQotICAgICAgICBjYW5ub3Qgc3Vic3RpdHV0ZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9u
Lm1ha2VmaWxlIHNpbmNlIGl0J3MgcmVhZG9ubHkKLSAgICAgICAgYXR0cmlidXRlLgotICAgICAg
ICAiIiIKLQotICAgICAgICBhY2NlcHRlZF9zb2NrZXQsIGNsaWVudF9hZGRyZXNzID0gc2VsZi5z
b2NrZXQuYWNjZXB0KCkKLQotICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0
X3NlcnZlcl9vcHRpb25zCi0gICAgICAgIGlmIHNlcnZlcl9vcHRpb25zLnVzZV90bHM6Ci0gICAg
ICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRf
TU9EVUxFOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgYWNjZXB0
ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xF
cnJvciwgZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUp
Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgICAgICAgICAjIFByaW50IGNp
cGhlciBpbiB1c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9uIGFjY2VwdC4KLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NpcGhlcjogJXMnLCBhY2NlcHRlZF9zb2NrZXQuY2lwaGVy
KCkpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydDogJXIn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZ2V0
cGVlcmNlcnQoKSkKLSAgICAgICAgICAgIGVsaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9
PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgICAgICAjIFdlIGNhbm5vdCBwcmludCB0
aGUgY2lwaGVyIGluIHVzZS4gcHlPcGVuU1NMIGRvZXNuJ3QgcHJvdmlkZQotICAgICAgICAgICAg
ICAgICMgYW55IG1ldGhvZCB0byBmZXRjaCB0aGF0LgotCi0gICAgICAgICAgICAgICAgY3R4ID0g
T3BlblNTTC5TU0wuQ29udGV4dChPcGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9EKQotICAgICAgICAg
ICAgICAgIGN0eC51c2VfcHJpdmF0ZWtleV9maWxlKHNlcnZlcl9vcHRpb25zLnByaXZhdGVfa2V5
KQotICAgICAgICAgICAgICAgIGN0eC51c2VfY2VydGlmaWNhdGVfZmlsZShzZXJ2ZXJfb3B0aW9u
cy5jZXJ0aWZpY2F0ZSkKLQotICAgICAgICAgICAgICAgIGRlZiBkZWZhdWx0X2NhbGxiYWNrKGNv
bm4sIGNlcnQsIGVycm51bSwgZXJyZGVwdGgsIG9rKToKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG9rID09IDEKLQotICAgICAgICAgICAgICAgICMgU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50
IGZvciBTU0xfQ1RYX3NldF92ZXJpZnkuCi0gICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlv
bnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSA9IE9w
ZW5TU0wuU1NMLlZFUklGWV9QRUVSCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXJf
b3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJpZnlfbW9kZSB8PSBPcGVuU1NMLlNTTC5WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQK
LSAgICAgICAgICAgICAgICAgICAgY3R4LnNldF92ZXJpZnkodmVyaWZ5X21vZGUsIGRlZmF1bHRf
Y2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMo
c2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBOb25lKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgIGN0eC5zZXRfdmVyaWZ5KE9wZW5TU0wuU1NMLlZFUklGWV9OT05FLCBkZWZh
dWx0X2NhbGxiYWNrKQotCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gT3BlblNT
TC5TU0wuQ29ubmVjdGlvbihjdHgsIGFjY2VwdGVkX3NvY2tldCkKLSAgICAgICAgICAgICAgICBh
Y2NlcHRlZF9zb2NrZXQuc2V0X2FjY2VwdF9zdGF0ZSgpCi0KLSAgICAgICAgICAgICAgICAjIENv
bnZlcnQgU1NMIHJlbGF0ZWQgZXJyb3IgaW50byBzb2NrZXQuZXJyb3Igc28gdGhhdAotICAgICAg
ICAgICAgICAgICMgU29ja2V0U2VydmVyIGlnbm9yZXMgdGhlbSBhbmQga2VlcHMgcnVubmluZy4K
LSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ29u
dmVydCBhbGwga2luZHMgb2YgZXJyb3JzLgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAg
ICAgZXhjZXB0IE9wZW5TU0wuU1NMLkVycm9yLCBlOgotICAgICAgICAgICAgICAgICAgICAjIFNl
dCBlcnJubyBwYXJ0IHRvIDEgKFNTTF9FUlJPUl9TU0wpIGxpa2UgdGhlIHNzbCBtb2R1bGUKLSAg
ICAgICAgICAgICAgICAgICAgIyBkb2VzLgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9y
KDEsICclcicgJSBlKQotICAgICAgICAgICAgICAgIGNlcnQgPSBhY2NlcHRlZF9zb2NrZXQuZ2V0
X3BlZXJfY2VydGlmaWNhdGUoKQotICAgICAgICAgICAgICAgIGlmIGNlcnQgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IGNlcnQgc3Vi
amVjdDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC5n
ZXRfc3ViamVjdCgpLmdldF9jb21wb25lbnRzKCkpCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRf
c29ja2V0ID0gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKGFjY2VwdGVkX3NvY2tldCkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gVExTIHN1
cHBvcnQgbW9kdWxlIGlzIGF2YWlsYWJsZScpCi0KLSAgICAgICAgcmV0dXJuIGFjY2VwdGVkX3Nv
Y2tldCwgY2xpZW50X2FkZHJlc3MKLQotICAgIGRlZiBzZXJ2ZV9mb3JldmVyKHNlbGYsIHBvbGxf
aW50ZXJ2YWw9MC41KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLkJhc2VTZXJ2
ZXIuc2VydmVfZm9yZXZlci4iIiIKLQotICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IFRydWUK
LSAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi5jbGVhcigpCi0gICAgICAgIGhhbmRsZV9y
ZXF1ZXN0ID0gc2VsZi5oYW5kbGVfcmVxdWVzdAotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdf
aGFuZGxlX3JlcXVlc3Rfbm9ibG9jaycpOgotICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBz
ZWxmLl9oYW5kbGVfcmVxdWVzdF9ub2Jsb2NrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLl9sb2dnZXIud2FybmluZygnRmFsbGJhY2sgdG8gYmxvY2tpbmcgcmVxdWVzdCBoYW5kbGVy
JykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgc2VsZi5fX3dzX3NlcnZpbmc6Ci0g
ICAgICAgICAgICAgICAgciwgdywgZSA9IHNlbGVjdC5zZWxlY3QoCi0gICAgICAgICAgICAgICAg
ICAgIFtzb2NrZXRfWzBdIGZvciBzb2NrZXRfIGluIHNlbGYuX3NvY2tldHNdLAotICAgICAgICAg
ICAgICAgICAgICBbXSwgW10sIHBvbGxfaW50ZXJ2YWwpCi0gICAgICAgICAgICAgICAgZm9yIHNv
Y2tldF8gaW4gcjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBzb2NrZXRfCi0g
ICAgICAgICAgICAgICAgICAgIGhhbmRsZV9yZXF1ZXN0KCkKLSAgICAgICAgICAgICAgICBzZWxm
LnNvY2tldCA9IE5vbmUKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX193c19p
c19zaHV0X2Rvd24uc2V0KCkKLQotICAgIGRlZiBzaHV0ZG93bihzZWxmKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIuc2h1dGRvd24uIiIiCi0KLSAgICAgICAg
c2VsZi5fX3dzX3NlcnZpbmcgPSBGYWxzZQotICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3du
LndhaXQoKQotCi0KLWNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXJ2ZXIu
Q0dJSFRUUFJlcXVlc3RIYW5kbGVyKToKLSAgICAiIiJDR0lIVFRQUmVxdWVzdEhhbmRsZXIgc3Bl
Y2lhbGl6ZWQgZm9yIFdlYlNvY2tldC4iIiIKLQotICAgICMgVXNlIGh0dHBsaWIuSFRUUE1lc3Nh
Z2UgaW5zdGVhZCBvZiBtaW1ldG9vbHMuTWVzc2FnZS4KLSAgICBNZXNzYWdlQ2xhc3MgPSBodHRw
bGliLkhUVFBNZXNzYWdlCi0KLSAgICBwcm90b2NvbF92ZXJzaW9uID0gIkhUVFAvMS4xIgotCi0g
ICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuU3Ry
ZWFtUmVxdWVzdEhhbmRsZXIuc2V0dXAgdG8gd3JhcCByZmlsZQotICAgICAgICB3aXRoIE1lbW9y
aXppbmdGaWxlLgotCi0gICAgICAgIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGJ5IEJhc2VS
ZXF1ZXN0SGFuZGxlcidzIGNvbnN0cnVjdG9yCi0gICAgICAgIGJlZm9yZSBjYWxsaW5nIEJhc2VI
VFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlLgotICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVy
LmhhbmRsZSB3aWxsIGNhbGwKLSAgICAgICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVf
b25lX3JlcXVlc3QgYW5kIGl0IHdpbGwgY2FsbAotICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFu
ZGxlci5wYXJzZV9yZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAgICAjIENhbGwgc3VwZXJj
bGFzcydzIHNldHVwIHRvIHByZXBhcmUgcmZpbGUsIHdmaWxlLCBldGMuIFNlZSBzZXR1cAotICAg
ICAgICAjIGRlZmluaXRpb24gb24gdGhlIHJvb3QgY2xhc3MgU29ja2V0U2VydmVyLlN0cmVhbVJl
cXVlc3RIYW5kbGVyIHRvCi0gICAgICAgICMgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZG9lcy4KLSAg
ICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIuc2V0dXAoc2VsZikKLQot
ICAgICAgICBzZWxmLnJmaWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoCi0gICAg
ICAgICAgICBzZWxmLnJmaWxlLAotICAgICAgICAgICAgbWF4X21lbW9yaXplZF9saW5lcz1fTUFY
X01FTU9SSVpFRF9MSU5FUykKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBjbGll
bnRfYWRkcmVzcywgc2VydmVyKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IHNlcnZlci53ZWJzb2Nr
ZXRfc2VydmVyX29wdGlvbnMKLQotICAgICAgICAjIE92ZXJyaWRlcyBDR0lIVFRQU2VydmVyUmVx
dWVzdEhhbmRsZXIuY2dpX2RpcmVjdG9yaWVzLgotICAgICAgICBzZWxmLmNnaV9kaXJlY3Rvcmll
cyA9IHNlbGYuX29wdGlvbnMuY2dpX2RpcmVjdG9yaWVzCi0gICAgICAgICMgUmVwbGFjZSBDR0lI
VFRQUmVxdWVzdEhhbmRsZXIuaXNfZXhlY3V0YWJsZSBtZXRob2QuCi0gICAgICAgIGlmIHNlbGYu
X29wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRob2QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBz
ZWxmLmlzX2V4ZWN1dGFibGUgPSBzZWxmLl9vcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kCi0K
LSAgICAgICAgIyBUaGlzIGFjdHVhbGx5IGNhbGxzIEJhc2VSZXF1ZXN0SGFuZGxlci5fX2luaXRf
Xy4KLSAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIuX19pbml0X18o
Ci0gICAgICAgICAgICBzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKQotCi0g
ICAgZGVmIHBhcnNlX3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQ
U2VydmVyLkJhc2VIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KLQotICAgICAgICBS
ZXR1cm4gVHJ1ZSB0byBjb250aW51ZSBwcm9jZXNzaW5nIGZvciBIVFRQKFMpLCBGYWxzZSBvdGhl
cndpc2UuCi0KLSAgICAgICAgU2VlIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9y
ZXF1ZXN0IG1ldGhvZCB3aGljaCBjYWxscwotICAgICAgICB0aGlzIG1ldGhvZCB0byB1bmRlcnN0
YW5kIGhvdyB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgaGFuZGxlZC4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgIyBXZSBob29rIHBhcnNlX3JlcXVlc3QgbWV0aG9kLCBidXQgYWxzbyBjYWxsIHRo
ZSBvcmlnaW5hbAotICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0
IHNpbmNlIHdoZW4gd2UgcmV0dXJuIEZhbHNlLAotICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFu
ZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgY29udGludWVzIHByb2Nlc3NpbmcgYW5kCi0gICAgICAg
ICMgaXQgbmVlZHMgdmFyaWFibGVzIHNldCBieSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2Vf
cmVxdWVzdC4KLSAgICAgICAgIwotICAgICAgICAjIFZhcmlhYmxlcyBzZXQgYnkgdGhpcyBtZXRo
b2Qgd2lsbCBiZSBhbHNvIHVzZWQgYnkgV2ViU29ja2V0IHJlcXVlc3QKLSAgICAgICAgIyBoYW5k
bGluZyAoc2VsZi5wYXRoLCBzZWxmLmNvbW1hbmQsIHNlbGYucmVxdWVzdGxpbmUsIGV0Yy4gU2Vl
IGFsc28KLSAgICAgICAgIyBob3cgX1N0YW5kYWxvbmVSZXF1ZXN0J3MgbWVtYmVycyBhcmUgaW1w
bGVtZW50ZWQgdXNpbmcgdGhlc2UKLSAgICAgICAgIyBhdHRyaWJ1dGVzKS4KLSAgICAgICAgaWYg
bm90IENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qoc2Vs
Zik6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBpZiBzZWxmLmNvbW1hbmQg
PT0gIkNPTk5FQ1QiOgotICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDIwMCwgIkNvbm5l
Y3RlZCIpCi0gICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCJDb25uZWN0aW9uIiwgImtlZXAt
YWxpdmUiKQotICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9iYXNpY19hdXRoOgotICAg
ICAgICAgICAgYXV0aCA9IHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0F1dGhvcml6YXRpb24nKQot
ICAgICAgICAgICAgaWYgYXV0aCAhPSBzZWxmLl9vcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlh
bDoKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNDAxKQotICAgICAgICAgICAg
ICAgIHNlbGYuc2VuZF9oZWFkZXIoJ1dXVy1BdXRoZW50aWNhdGUnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ0Jhc2ljIHJlYWxtPSJQeXdlYnNvY2tldCInKQotICAgICAgICAg
ICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdSZXF1ZXN0IGJhc2ljIGF1dGhlbnRpY2F0aW9uJykKLSAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0
aWwucGFyc2VfdXJpKHNlbGYucGF0aCkKLQotICAgICAgICAjIFNwZWNpYWwgcGF0aHMgZm9yIFhN
TEh0dHBSZXF1ZXN0IGJlbmNobWFyawotICAgICAgICB4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVm
aXggPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1JwotICAgICAgICBpZiByZXNv
dXJjZSA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsgJ19zZW5kJyk6Ci0gICAgICAg
ICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAotICAgICAg
ICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKLSAgICAgICAg
ICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19zZW5kKCkKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICBpZiByZXNvdXJjZSA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4
ICsgJ19yZWNlaXZlJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJC
ZW5jaG1hcmtIYW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmls
ZSwgc2VsZi53ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19yZWNl
aXZlKCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIHJlc291cmNlIGlz
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52YWxpZCBVUkk6ICVyJywg
c2VsZi5wYXRoKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENH
SUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBz
ZXJ2ZXJfb3B0aW9ucyA9IHNlbGYuc2VydmVyLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucwotICAg
ICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdmFsaWRhdGlvbl9ob3N0ID0g
c2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9ob3N0Ci0gICAgICAgICAgICBpZiB2YWxpZGF0aW9u
X2hvc3QgaXMgbm90IE5vbmUgYW5kIGhvc3QgIT0gdmFsaWRhdGlvbl9ob3N0OgotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIGhvc3Q6ICVyIChleHBlY3RlZDogJXIp
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25faG9zdCkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBpZiBwb3J0IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9w
b3J0Ci0gICAgICAgICAgICBpZiB2YWxpZGF0aW9uX3BvcnQgaXMgbm90IE5vbmUgYW5kIHBvcnQg
IT0gdmFsaWRhdGlvbl9wb3J0OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJ
bnZhbGlkIHBvcnQ6ICVyIChleHBlY3RlZDogJXIpJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk
YXRpb25fcG9ydCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sg
dG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQot
ICAgICAgICBzZWxmLnBhdGggPSByZXNvdXJjZQotCi0gICAgICAgIHJlcXVlc3QgPSBfU3RhbmRh
bG9uZVJlcXVlc3Qoc2VsZiwgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9yIHJlcXVl
c3QgcGF0aHMgZm9yIHdoaWNoCi0gICAgICAgICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBo
YW5kbGVycy4KLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIuZ2V0
X2hhbmRsZXJfc3VpdGUoc2VsZi5wYXRoKToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnTm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnBhdGgpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmlu
Zm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBl
OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Rpc3BhdGNoIGZhaWxlZCBmb3IgZXJy
b3I6ICVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICMgSWYgYW55IEV4Y2VwdGlvbnMgd2l0aG91
dCBleGNlcHQgY2xhdXNlIHNldHVwIChpbmNsdWRpbmcKLSAgICAgICAgIyBEaXNwYXRjaEV4Y2Vw
dGlvbikgaXMgcmFpc2VkIGJlbG93IHRoaXMgcG9pbnQsIGl0IHdpbGwgYmUgY2F1Z2h0Ci0gICAg
ICAgICMgYW5kIGxvZ2dlZCBieSBXZWJTb2NrZXRTZXJ2ZXIuCi0KLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRzaGFrZS5kb19oYW5kc2hha2UoCi0g
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMuZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAgICAgICAgYWxsb3dEcmFmdDc1PXNlbGYu
X29wdGlvbnMuYWxsb3dfZHJhZnQ3NSwKLSAgICAgICAgICAgICAgICAgICAgc3RyaWN0PXNlbGYu
X29wdGlvbnMuc3RyaWN0KQotICAgICAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhj
ZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2Ug
ZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAlcycsIGUpCi0gICAgICAgICAgICAgICAgc2VsZi5z
ZW5kX3Jlc3BvbnNlKGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKLSAgICAgICAgICAg
ICAgICBzZWxmLnNlbmRfaGVhZGVyKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVS
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMp
Ci0gICAgICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0gICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlv
biwgZToKLSAgICAgICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3MocykgZmFpbGVkLgotICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJv
cjogJXMnLCBlKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAgICAgcmVxdWVzdC5fZGlzcGF0
Y2hlciA9IHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlcgotICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cy5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgZXhjZXB0IGhhbmRz
aGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0Fib3J0ZWQ6ICVzJywgZSkKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYg
bG9nX3JlcXVlc3Qoc2VsZiwgY29kZT0nLScsIHNpemU9Jy0nKToKLSAgICAgICAgIiIiT3ZlcnJp
ZGUgQmFzZUhUVFBTZXJ2ZXIubG9nX3JlcXVlc3QuIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJyIlcyIgJXMgJXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVl
c3RsaW5lLCBzdHIoY29kZSksIHN0cihzaXplKSkKLQotICAgIGRlZiBsb2dfZXJyb3Ioc2VsZiwg
KmFyZ3MpOgotICAgICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZlci5sb2dfZXJyb3IuIiIi
Ci0KLSAgICAgICAgIyBEZXNwaXRlIHRoZSBuYW1lLCB0aGlzIG1ldGhvZCBpcyBmb3Igd2Fybmlu
Z3MgdGhhbiBmb3IgZXJyb3JzLgotICAgICAgICAjIEZvciBleGFtcGxlLCBIVFRQIHN0YXR1cyBj
b2RlIGlzIGxvZ2dlZCBieSB0aGlzIG1ldGhvZC4KLSAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5p
bmcoJyVzIC0gJXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3Nf
c3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0gJSBhcmdzWzE6
XSkKLQotICAgIGRlZiBpc19jZ2koc2VsZik6Ci0gICAgICAgICIiIlRlc3Qgd2hldGhlciBzZWxm
LnBhdGggY29ycmVzcG9uZHMgdG8gYSBDR0kgc2NyaXB0LgotCi0gICAgICAgIEFkZCBleHRyYSBj
aGVjayB0aGF0IHNlbGYucGF0aCBkb2Vzbid0IGNvbnRhaW5zIC4uCi0gICAgICAgIEFsc28gY2hl
Y2sgaWYgdGhlIGZpbGUgaXMgYSBleGVjdXRhYmxlIGZpbGUgb3Igbm90LgotICAgICAgICBJZiB0
aGUgZmlsZSBpcyBub3QgZXhlY3V0YWJsZSwgaXQgaXMgaGFuZGxlZCBhcyBzdGF0aWMgZmlsZSBv
ciBkaXIKLSAgICAgICAgcmF0aGVyIHRoYW4gYSBDR0kgc2NyaXB0LgotICAgICAgICAiIiIKLQot
ICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2Vs
Zik6Ci0gICAgICAgICAgICBpZiAnLi4nIGluIHNlbGYucGF0aDoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLSAgICAgICAgICAgICMgc3RyaXAgcXVlcnkgcGFyYW1ldGVyIGZyb20gcmVx
dWVzdCBwYXRoCi0gICAgICAgICAgICByZXNvdXJjZV9uYW1lID0gc2VsZi5wYXRoLnNwbGl0KCc/
JywgMilbMF0KLSAgICAgICAgICAgICMgY29udmVydCByZXNvdXJjZV9uYW1lIGludG8gcmVhbCBw
YXRoIG5hbWUgaW4gZmlsZXN5c3RlbS4KLSAgICAgICAgICAgIHNjcmlwdGZpbGUgPSBzZWxmLnRy
YW5zbGF0ZV9wYXRoKHJlc291cmNlX25hbWUpCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5p
c2ZpbGUoc2NyaXB0ZmlsZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAg
ICAgICBpZiBub3Qgc2VsZi5pc19leGVjdXRhYmxlKHNjcmlwdGZpbGUpOgotICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLQotZGVmIF9nZXRfbG9nZ2VyX2Zyb21fY2xhc3MoYyk6Ci0gICAgcmV0dXJuIGxv
Z2dpbmcuZ2V0TG9nZ2VyKCclcy4lcycgJSAoYy5fX21vZHVsZV9fLCBjLl9fbmFtZV9fKSkKLQot
Ci1kZWYgX2NvbmZpZ3VyZV9sb2dnaW5nKG9wdGlvbnMpOgotICAgIGxvZ2dpbmcuYWRkTGV2ZWxO
YW1lKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnRklORScpCi0KLSAgICBsb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcigpCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9w
dGlvbnMubG9nX2xldmVsLnVwcGVyKCkpKQotICAgIGlmIG9wdGlvbnMubG9nX2ZpbGU6Ci0gICAg
ICAgIGhhbmRsZXIgPSBsb2dnaW5nLmhhbmRsZXJzLlJvdGF0aW5nRmlsZUhhbmRsZXIoCi0gICAg
ICAgICAgICAgICAgb3B0aW9ucy5sb2dfZmlsZSwgJ2EnLCBvcHRpb25zLmxvZ19tYXgsIG9wdGlv
bnMubG9nX2NvdW50KQotICAgIGVsc2U6Ci0gICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVh
bUhhbmRsZXIoKQotICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAotICAgICAgICAg
ICAgJ1slKGFzY3RpbWUpc10gWyUobGV2ZWxuYW1lKXNdICUobmFtZSlzOiAlKG1lc3NhZ2Upcycp
Ci0gICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQotICAgIGxvZ2dlci5hZGRIYW5k
bGVyKGhhbmRsZXIpCi0KLSAgICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1lID0gbG9nZ2luZy5nZXRM
ZXZlbE5hbWUoCi0gICAgICAgIG9wdGlvbnMuZGVmbGF0ZV9sb2dfbGV2ZWwudXBwZXIoKSkKLSAg
ICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0aWwuX0RlZmxhdGVyKS5zZXRMZXZlbCgKLSAgICAg
ICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkKLSAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0
aWwuX0luZmxhdGVyKS5zZXRMZXZlbCgKLSAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkK
LQotCi1kZWYgX2J1aWxkX29wdGlvbl9wYXJzZXIoKToKLSAgICBwYXJzZXIgPSBvcHRwYXJzZS5P
cHRpb25QYXJzZXIoKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tY29uZmlnJywgZGVzdD0n
Y29uZmlnX2ZpbGUnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnUGF0aCB0byBjb25maWd1cmF0
aW9uIGZpbGUuIFNlZSB0aGUgZmlsZSBjb21tZW50ICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUgZm9yIHRoZSBjb25maWd1cmF0aW9uICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZSBmb3JtYXQnKSkKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLUgnLCAnLS1zZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0JywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD0nJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgaG9zdG5hbWUg
dG8gbGlzdGVuIHRvJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLVYnLCAnLS12YWxpZGF0aW9u
LWhvc3QnLCAnLS12YWxpZGF0aW9uX2hvc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
J3ZhbGlkYXRpb25faG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBob3N0bmFtZSB0byB2YWxpZGF0ZSBp
biBhYnNvbHV0ZSBwYXRoLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcs
IGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
Y29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J3BvcnQgdG8gbGlzdGVuIHRvJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLVAnLCAnLS12
YWxpZGF0aW9uLXBvcnQnLCAnLS12YWxpZGF0aW9uX3BvcnQnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J3ZhbGlkYXRpb25fcG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBw
b3J0IHRvIHZhbGlkYXRlIGluIGFic29sdXRlIHBhdGguJykKLSAgICBwYXJzZXIuYWRkX29wdGlv
bignLXcnLCAnLS13ZWJzb2NrLWhhbmRsZXJzJywgJy0td2Vic29ja19oYW5kbGVycycsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vic29ja19oYW5kbGVycycsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD0nLicsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1RoZSBy
b290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQgaGFuZGxlciBmaWxlcy4gJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdJZiB0aGUgcGF0aCBpcyByZWxhdGl2ZSwgLS1kb2N1bWVudC1yb290
IGlzIHVzZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcyB0aGUgYmFzZS4nKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxl
JywKLSAgICAgICAgICAgICAgICAgICAgICAnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ1dlYlNvY2tldCBoYW5kbGVycyBtYXAgZmlsZS4gJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdFYWNoIGxpbmUgY29uc2lzdHMgb2YgYWxpYXNfcmVzb3VyY2VfcGF0aCBh
bmQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGlzdGluZ19yZXNvdXJjZV9wYXRo
LCBzZXBhcmF0ZWQgYnkgc3BhY2VzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICct
LXNjYW4tZGlyJywgJy0tc2Nhbl9kaXInLCBkZXN0PSdzY2FuX2RpcicsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNdXN0
IGJlIGEgZGlyZWN0b3J5IHVuZGVyIC0td2Vic29jay1oYW5kbGVycy4gJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdPbmx5IGhhbmRsZXJzIHVuZGVyIHRoaXMgZGlyZWN0b3J5IGFyZSBz
Y2FubmVkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW5kIHJlZ2lzdGVyZWQgdG8g
dGhlIHNlcnZlci4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VmdWwgZm9yIHNh
dmluZyBzY2FuIHRpbWUgd2hlbiB0aGUgaGFuZGxlciAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Jvb3QgZGlyZWN0b3J5IGNvbnRhaW5zIGxvdHMgb2YgZmlsZXMgdGhhdCBhcmUgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3QgaGFuZGxlciBmaWxlIG9yIGFyZSBoYW5k
bGVyIGZpbGVzIGJ1dCB5b3UgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb25cJ3Qg
d2FudCB0aGVtIHRvIGJlIHJlZ2lzdGVyZWQuICcpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWFsbG93LWhhbmRsZXJzLW91dHNpZGUtcm9vdC1kaXInLAotICAgICAgICAgICAgICAgICAgICAg
ICctLWFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J2FsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInLAotICAgICAgICAgICAg
ICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnU2NhbnMgV2ViU29ja2V0
IGhhbmRsZXJzIGV2ZW4gaWYgdGhlaXIgY2Fub25pY2FsICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAncGF0aCBpcyBub3QgdW5kZXIgLS13ZWJzb2NrLWhhbmRsZXJzLicpKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctZCcsICctLWRvY3VtZW50LXJvb3QnLCAnLS1kb2N1bWVudF9yb290
JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkb2N1bWVudF9yb290JywgZGVmYXVsdD0n
LicsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nRG9jdW1lbnQgcm9vdCBkaXJlY3Rvcnku
JykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0
aHMnLCBkZXN0PSdjZ2lfcGF0aHMnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9u
ZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRv
Y3VtZW50X3Jvb3QuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0
ZWQuIChlLmcgLXggL2NnaSwvaHRiaW4pICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
RmlsZXMgdW5kZXIgZG9jdW1lbnRfcm9vdC9jZ2lfcGF0aCBhcmUgaGFuZGxlZCAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2FzIENHSSBwcm9ncmFtcy4gTXVzdCBiZSBleGVjdXRhYmxl
LicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMn
LCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFs
c2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLyknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRs
cy1tb2R1bGUnLCAnLS10bHNfbW9kdWxlJywgZGVzdD0ndGxzX21vZHVsZScsCi0gICAgICAgICAg
ICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2Vz
ID0gW19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCi0gICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQu
ICcKLSAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBp
cyBzcGVjaWZpZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9N
T0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAn
LS1wcml2YXRlLWtleScsICctLXByaXZhdGVfa2V5JywKLSAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdwcml2YXRlX2tleScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVs
cD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAn
LS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4nKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLXRscy1jbGllbnQtYXV0aCcsIGRlc3Q9J3Rsc19jbGllbnRfYXV0aCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZXF1ZXN0cyBUTFMgY2xpZW50IGF1dGggb24g
ZXZlcnkgY29ubmVjdGlvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQt
Y2VydC1vcHRpb25hbCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndGxzX2NsaWVudF9j
ZXJ0X29wdGlvbmFsJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUn
LCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNYWtlcyBjbGll
bnQgY2VydGlmaWNhdGUgb3B0aW9uYWwgZXZlbiB0aG91Z2ggJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdUTFMgY2xpZW50IGF1dGggaXMgZW5hYmxlZC4nKSkKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLS10bHMtY2xpZW50LWNhJywgZGVzdD0ndGxzX2NsaWVudF9jYScsIGRlZmF1bHQ9
JycsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1NwZWNpZmllcyBhIHBlbSBmaWxlIHdo
aWNoIGNvbnRhaW5zIGEgc2V0IG9mICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29u
Y2F0ZW5hdGVkIENBIGNlcnRpZmljYXRlcyB3aGljaCBhcmUgdXNlZCB0byAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3ZhbGlkYXRlIGNlcnRpZmljYXRlcyBwYXNzZWQgZnJvbSBjbGll
bnRzJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aCcsIGRlc3Q9J3VzZV9i
YXNpY19hdXRoJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBk
ZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlcXVpcmVzIEJhc2lj
IGF1dGhlbnRpY2F0aW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aC1j
cmVkZW50aWFsJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdiYXNpY19hdXRoX2NyZWRl
bnRpYWwnLCBkZWZhdWx0PSd0ZXN0OnRlc3QnLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J1NwZWNpZmllcyB0aGUgY3JlZGVudGlhbCBvZiBiYXNpYyBhdXRoZW50aWNhdGlvbiAnCi0gICAg
ICAgICAgICAgICAgICAgICAgJ2J5IHVzZXJuYW1lOnBhc3N3b3JkIHBhaXIgKGUuZy4gdGVzdDp0
ZXN0KS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9n
X2ZpbGUnLCBkZXN0PSdsb2dfZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
JywgaGVscD0nTG9nIGZpbGUuJykKLSAgICAjIEN1c3RvbSBsb2cgbGV2ZWw6Ci0gICAgIyAtIEZJ
TkU6IFByaW50cyBzdGF0dXMgb2YgZWFjaCBmcmFtZSBwcm9jZXNzaW5nIHN0ZXAKLSAgICBwYXJz
ZXIuYWRkX29wdGlvbignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2Un
LAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4n
LAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydmaW5lJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnZGVidWcnLCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJy
b3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcml0aWNhbCddLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLWRlZmxhdGUtbG9nLWxldmVsJywgJy0tZGVmbGF0ZV9sb2dfbGV2ZWwnLAotICAgICAgICAg
ICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
ZGVmbGF0ZV9sb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAgICAgICAgICAgICAgICAgICAg
ICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcml0aWNhbCddLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbCBmb3IgX0RlZmxhdGVyIGFuZCBfSW5mbGF0ZXIuJykK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10aHJlYWQtbW9uaXRvci1pbnRlcnZhbC1pbi1zZWMn
LAotICAgICAgICAgICAgICAgICAgICAgICctLXRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3Nl
YycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndGhyZWFkX21vbml0b3JfaW50ZXJ2YWxf
aW5fc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAot
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdJZiBwb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNp
ZmllZCwgcnVuIGEgdGhyZWFkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9uaXRv
ciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdwZXJpb2RpY2FsbHkgaW4gdGhlIHNwZWNpZmllZCBpbnRldmFsIGluICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kLiBJZiBub24tcG9zaXRpdmUgaW50
ZWdlciBpcyBzcGVjaWZpZWQsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJs
ZSB0aGUgdGhyZWFkIG1vbml0b3IuJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLW1h
eCcsICctLWxvZ19tYXgnLCBkZXN0PSdsb2dfbWF4JywgdHlwZT0naW50JywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX0xPR19NQVhfQllURVMsCi0gICAgICAgICAgICAg
ICAgICAgICAgaGVscD0nTG9nIG1heGltdW0gYnl0ZXMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLWxvZy1jb3VudCcsICctLWxvZ19jb3VudCcsIGRlc3Q9J2xvZ19jb3VudCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD1fREVGQVVMVF9MT0dfQkFDS1VQX0NP
VU5ULAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBiYWNrdXAgY291bnQnKQotICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93LWRyYWZ0NzUnLCBkZXN0PSdhbGxvd19kcmFmdDc1
JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3Jl
ZC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXN0cmljdCcsIGRlc3Q9J3N0cmljdCcsIGFj
dGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwg
aGVscD0nT2Jzb2xldGUgb3B0aW9uLiBJZ25vcmVkLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy1xJywgJy0tcXVldWUnLCBkZXN0PSdyZXF1ZXN0X3F1ZXVlX3NpemUnLCB0eXBlPSdpbnQnLAot
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpF
LAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3JlcXVlc3QgcXVldWUgc2l6ZScpCi0KLSAg
ICByZXR1cm4gcGFyc2VyCi0KLQotY2xhc3MgVGhyZWFkTW9uaXRvcih0aHJlYWRpbmcuVGhyZWFk
KToKLSAgICBkYWVtb24gPSBUcnVlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaW50ZXJ2YWxf
aW5fc2VjKToKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSdU
aHJlYWRNb25pdG9yJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19s
b2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9pbnRlcnZhbF9pbl9zZWMgPSBpbnRlcnZhbF9p
bl9zZWMKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAg
ICAgICB0aHJlYWRfbmFtZV9saXN0ID0gW10KLSAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhy
ZWFkaW5nLmVudW1lcmF0ZSgpOgotICAgICAgICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QuYXBw
ZW5kKHRocmVhZC5uYW1lKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0gICAgICAg
ICAgICAgICAgIiVkIGFjdGl2ZSB0aHJlYWRzOiAlcyIsCi0gICAgICAgICAgICAgICAgdGhyZWFk
aW5nLmFjdGl2ZV9jb3VudCgpLAotICAgICAgICAgICAgICAgICcsICcuam9pbih0aHJlYWRfbmFt
ZV9saXN0KSkKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoc2VsZi5faW50ZXJ2YWxfaW5fc2VjKQot
Ci0KLWRlZiBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3MpOgotICAgIHBhcnNlciA9IF9idWls
ZF9vcHRpb25fcGFyc2VyKCkKLQotICAgICMgRmlyc3QsIHBhcnNlIG9wdGlvbnMgd2l0aG91dCBj
b25maWd1cmF0aW9uIGZpbGUuCi0gICAgdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdz
ID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmdzKQotICAgIGlmIHRlbXBvcmFyeV9hcmdzOgot
ICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgJ1VucmVjb2duaXplZCBwb3Np
dGlvbmFsIGFyZ3VtZW50czogJXInLCB0ZW1wb3JhcnlfYXJncykKLSAgICAgICAgc3lzLmV4aXQo
MSkKLQotICAgIGlmIHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxlOgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBjb25maWdfZnAgPSBvcGVuKHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19m
aWxlLCAncicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotICAgICAgICAgICAgbG9nZ2lu
Zy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlv
biBmaWxlICVyOiAlcicsCi0gICAgICAgICAgICAgICAgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmln
X2ZpbGUsCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAg
ICAgICAgY29uZmlnX3BhcnNlciA9IENvbmZpZ1BhcnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKLSAg
ICAgICAgY29uZmlnX3BhcnNlci5yZWFkZnAoY29uZmlnX2ZwKQotICAgICAgICBjb25maWdfZnAu
Y2xvc2UoKQotCi0gICAgICAgIGFyZ3NfZnJvbV9jb25maWcgPSBbXQotICAgICAgICBmb3IgbmFt
ZSwgdmFsdWUgaW4gY29uZmlnX3BhcnNlci5pdGVtcygncHl3ZWJzb2NrZXQnKToKLSAgICAgICAg
ICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKCctLScgKyBuYW1lKQotICAgICAgICAgICAgYXJn
c19mcm9tX2NvbmZpZy5hcHBlbmQodmFsdWUpCi0gICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKLSAg
ICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21fY29uZmlnCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZpZyArIGFyZ3MKLSAgICAgICAgcmV0dXJuIHBhcnNl
ci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gdGVtcG9y
YXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzCi0KLQotZGVmIF9tYWluKGFyZ3M9Tm9uZSk6Ci0g
ICAgIiIiWW91IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSB5b3VyIG93biBwcm9ncmFtLCBi
dXQgcGxlYXNlIG5vdGUgdGhhdAotICAgIHRoaXMgZnVuY3Rpb24gaGFzIHNvbWUgc2lkZS1lZmZl
Y3RzIHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIgcHJvZ3JhbS4gRm9yCi0gICAgZXhhbXBsZSwgdXRp
bC53cmFwX3BvcGVuM19mb3Jfd2luIHVzZSBpbiB0aGlzIG1ldGhvZCByZXBsYWNlcyBpbXBsZW1l
bnRhdGlvbgotICAgIG9mIG9zLnBvcGVuMy4KLSAgICAiIiIKLQotICAgIG9wdGlvbnMsIGFyZ3Mg
PSBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3M9YXJncykKLQotICAgIG9zLmNoZGlyKG9wdGlv
bnMuZG9jdW1lbnRfcm9vdCkKLQotICAgIF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25zKQotCi0g
ICAgaWYgb3B0aW9ucy5hbGxvd19kcmFmdDc1OgotICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0t
YWxsb3dfZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykKLQotICAgIGlmIG9wdGlvbnMuc3Ry
aWN0OgotICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tc3RyaWN0IG9wdGlvbiBpcyBvYnNvbGV0
ZS4nKQotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTogQ2xlYW4gdXAgaW5pdGlhbGl6YXRpb24gb2Yg
Q0dJIHJlbGF0ZWQgdmFsdWVzLiBNb3ZlIHNvbWUKLSAgICAjIG9mIGNvZGUgaGVyZSB0byBXZWJT
b2NrZXRSZXF1ZXN0SGFuZGxlciBjbGFzcyBpZiBpdCdzIGJldHRlci4KLSAgICBvcHRpb25zLmNn
aV9kaXJlY3RvcmllcyA9IFtdCi0gICAgb3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCA9IE5v
bmUKLSAgICBpZiBvcHRpb25zLmNnaV9wYXRoczoKLSAgICAgICAgb3B0aW9ucy5jZ2lfZGlyZWN0
b3JpZXMgPSBvcHRpb25zLmNnaV9wYXRocy5zcGxpdCgnLCcpCi0gICAgICAgIGlmIHN5cy5wbGF0
Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAgY3lnd2luX3BhdGggPSBO
b25lCi0gICAgICAgICAgICAjIEZvciBXaW4zMiBQeXRob24sIGl0IGlzIGV4cGVjdGVkIHRoYXQg
Q1lHV0lOX1BBVEgKLSAgICAgICAgICAgICMgaXMgc2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5Z3dp
biBiaW5hcmllcy4KLSAgICAgICAgICAgICMgRm9yIGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2ZXIu
cHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5fUEFUSCB0bwotICAgICAgICAgICAgIyBmdWxsIHBh
dGggb2YgdGhpcmRfcGFydHkvY3lnd2luL2Jpbi4KLSAgICAgICAgICAgIGlmICdDWUdXSU5fUEFU
SCcgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAgICAgICBjeWd3aW5fcGF0aCA9IG9zLmVudmly
b25bJ0NZR1dJTl9QQVRIJ10KLSAgICAgICAgICAgIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbihj
eWd3aW5fcGF0aCkKLQotICAgICAgICAgICAgZGVmIF9fY2hlY2tfc2NyaXB0KHNjcmlwdHBhdGgp
OgotICAgICAgICAgICAgICAgIHJldHVybiB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdHBh
dGgsIGN5Z3dpbl9wYXRoKQotCi0gICAgICAgICAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0
aG9kID0gX19jaGVja19zY3JpcHQKLQotICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAgICAg
aWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBfaW1wb3J0X3Nz
bCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRB
UkRfTU9EVUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVs
ZScpCi0gICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAgICAg
ICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKLSAgICAgICAgICAgICAg
ICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKLSAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQot
ICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9k
dWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgbm90IF9pbXBv
cnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBp
cyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAgICBl
bGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAg
IGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAgICAg
ICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGlj
YWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQot
Ci0gICAgICAgIGlmIG5vdCBvcHRpb25zLnByaXZhdGVfa2V5IG9yIG5vdCBvcHRpb25zLmNlcnRp
ZmljYXRlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAg
ICAgJ1RvIHVzZSBUTFMsIHNwZWNpZnkgcHJpdmF0ZV9rZXkgYW5kIGNlcnRpZmljYXRlLicpCi0g
ICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIChvcHRpb25zLnRsc19jbGllbnRf
Y2VydF9vcHRpb25hbCBhbmQKLSAgICAgICAgICAgIG5vdCBvcHRpb25zLnRsc19jbGllbnRfYXV0
aCk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdDbGllbnQgYXV0aGVudGljYXRpb24g
bXVzdCBiZSBlbmFibGVkIHRvICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWNp
ZnkgdGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0g
ICAgZWxzZToKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0
b2dldGhlciB3aXRoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tdXNlLXRscyBv
cHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50
bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBi
ZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKLSAgICAgICAgICAgIHN5cy5l
eGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0g
ICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGll
bnQgYXV0aGVudGljYXRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBu
b3Qgb3B0aW9ucy5zY2FuX2RpcjoKLSAgICAgICAgb3B0aW9ucy5zY2FuX2RpciA9IG9wdGlvbnMu
d2Vic29ja19oYW5kbGVycwotCi0gICAgaWYgb3B0aW9ucy51c2VfYmFzaWNfYXV0aDoKLSAgICAg
ICAgb3B0aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRpYWwgPSAnQmFzaWMgJyArIGJhc2U2NC5iNjRl
bmNvZGUoCi0gICAgICAgICAgICBvcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbCkKLQotICAg
IHRyeToKLSAgICAgICAgaWYgb3B0aW9ucy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMg
PiAwOgotICAgICAgICAgICAgIyBSdW4gYSB0aHJlYWQgbW9uaXRvciB0byBzaG93IHRoZSBzdGF0
dXMgb2Ygc2VydmVyIHRocmVhZHMgZm9yCi0gICAgICAgICAgICAjIGRlYnVnZ2luZy4KLSAgICAg
ICAgICAgIFRocmVhZE1vbml0b3Iob3B0aW9ucy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9z
ZWMpLnN0YXJ0KCkKLQotICAgICAgICBzZXJ2ZXIgPSBXZWJTb2NrZXRTZXJ2ZXIob3B0aW9ucykK
LSAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6
Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ21vZF9weXdlYnNvY2tldDogJXMnICUgZSkKLSAg
ICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9kX3B5d2Vic29ja2V0OiAlcycgJSB1dGlsLmdldF9z
dGFja190cmFjZSgpKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgX21haW4oc3lzLmFyZ3ZbMTpdKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVkYzUzMzI3OTc0OTdiNTgwZTNiN2VmZjJmODhkMTg4ZDcwNDFmMTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L3N0cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIlRoaXMgZmlsZSBleHBvcnRzIHB1YmxpYyBzeW1ib2xzLgotIiIiCi0KLQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5f
c3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotCi0jIFRoZXNlIG1ldGhvZHMgYXJlIGludGVu
ZGVkIHRvIGJlIHVzZWQgYnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9wZXJzIHRvIGhhdmUKLSMg
dGhlaXIgaW1wbGVtZW50YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEgaW4gdGVzdHMuCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zZV9mcmFtZQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVyCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhfaGVh
ZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9waW5n
X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9w
b25nX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQg
Y3JlYXRlX3RleHRfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBv
cnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC91dGlsLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
MjRhZTM5NDJkN2ZlMmNmNzdiOTg4NDk1ZWY2ZTI4YTFiZjQ4ZGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3V0
aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MTYgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiV2ViU29ja2V0IHV0aWxpdGllcy4KLSIiIgotCi0KLWltcG9ydCBhcnJheQotaW1wb3J0
IGVycm5vCi0KLSMgSW1wb3J0IGhhc2ggY2xhc3NlcyBmcm9tIGEgbW9kdWxlIGF2YWlsYWJsZSBh
bmQgcmVjb21tZW5kZWQgZm9yIGVhY2ggUHl0aG9uCi0jIHZlcnNpb24gYW5kIHJlLWV4cG9ydCB0
aG9zZSBzeW1ib2wuIFVzZSBzaGEgYW5kIG1kNSBtb2R1bGUgaW4gUHl0aG9uIDIuNCwgYW5kCi0j
IGhhc2hsaWIgbW9kdWxlIGluIFB5dGhvbiAyLjYuCi10cnk6Ci0gICAgaW1wb3J0IGhhc2hsaWIK
LSAgICBtZDVfaGFzaCA9IGhhc2hsaWIubWQ1Ci0gICAgc2hhMV9oYXNoID0gaGFzaGxpYi5zaGEx
Ci1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgaW1wb3J0IG1kNQotICAgIGltcG9ydCBzaGEKLSAg
ICBtZDVfaGFzaCA9IG1kNS5tZDUKLSAgICBzaGExX2hhc2ggPSBzaGEuc2hhCi0KLWltcG9ydCBT
dHJpbmdJTwotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHJlCi1pbXBvcnQgc29j
a2V0Ci1pbXBvcnQgdHJhY2ViYWNrCi1pbXBvcnQgemxpYgotCi10cnk6Ci0gICAgZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGZhc3RfbWFza2luZwotZXhjZXB0IEltcG9ydEVycm9yOgotICAg
IHBhc3MKLQotCi1kZWYgZ2V0X3N0YWNrX3RyYWNlKCk6Ci0gICAgIiIiR2V0IHRoZSBjdXJyZW50
IHN0YWNrIHRyYWNlIGFzIHN0cmluZy4KLQotICAgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQg
UHl0aG9uIDIuMy4KLSAgICBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHdlIG9ubHkgc3VwcG9ydCBQ
eXRob24gMi40IGFuZCBhYm92ZS4KLSAgICAgICAgICBVc2UgdHJhY2ViYWNrLmZvcm1hdF9leGMg
aW5zdGVhZC4KLSAgICAiIiIKLQotICAgIG91dCA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKLSAgICB0
cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9b3V0KQotICAgIHJldHVybiBvdXQuZ2V0dmFsdWUoKQot
Ci0KLWRlZiBwcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKG1lc3NhZ2UsIGV4Yyk6Ci0gICAg
IiIiUHJlcGVuZCBtZXNzYWdlIHRvIHRoZSBleGNlcHRpb24uIiIiCi0KLSAgICBleGMuYXJncyA9
IChtZXNzYWdlICsgc3RyKGV4YyksKQotICAgIHJldHVybgotCi0KLWRlZiBfX3RyYW5zbGF0ZV9p
bnRlcnAoaW50ZXJwLCBjeWd3aW5fcGF0aCk6Ci0gICAgIiIiVHJhbnNsYXRlIGludGVycCBwcm9n
cmFtIHBhdGggZm9yIFdpbjMyIHB5dGhvbiB0byBydW4gY3lnd2luIHByb2dyYW0KLSAgICAoZS5n
LiBwZXJsKS4gIE5vdGUgdGhhdCBpdCBkb2Vzbid0IHN1cHBvcnQgcGF0aCB0aGF0IGNvbnRhaW5z
IHNwYWNlLAotICAgIHdoaWNoIGlzIHR5cGljYWxseSB0cnVlIGZvciBVbml4LCB3aGVyZSAjIS1z
Y3JpcHQgaXMgd3JpdHRlbi4KLSAgICBGb3IgV2luMzIgcHl0aG9uLCBjeWd3aW5fcGF0aCBpcyBh
IGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCi0KLSAgICBBcmdzOgotICAgICAgaW50ZXJw
OiBpbnRlcnAgY29tbWFuZCBsaW5lCi0gICAgICBjeWd3aW5fcGF0aDogZGlyZWN0b3J5IG5hbWUg
b2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQotICAgIFJldHVybnM6Ci0gICAgICB0cmFuc2xhdGVk
IGludGVycCBjb21tYW5kIGxpbmUuCi0gICAgIiIiCi0gICAgaWYgbm90IGN5Z3dpbl9wYXRoOgot
ICAgICAgICByZXR1cm4gaW50ZXJwCi0gICAgbSA9IHJlLm1hdGNoKCdeW14gXSovKFteIF0rKSgg
LiopPycsIGludGVycCkKLSAgICBpZiBtOgotICAgICAgICBjbWQgPSBvcy5wYXRoLmpvaW4oY3ln
d2luX3BhdGgsIG0uZ3JvdXAoMSkpCi0gICAgICAgIHJldHVybiBjbWQgKyBtLmdyb3VwKDIpCi0g
ICAgcmV0dXJuIGludGVycAotCi0KLWRlZiBnZXRfc2NyaXB0X2ludGVycChzY3JpcHRfcGF0aCwg
Y3lnd2luX3BhdGg9Tm9uZSk6Ci0gICAgIiIiR2V0cyAjIS1pbnRlcnByZXRlciBjb21tYW5kIGxp
bmUgZnJvbSB0aGUgc2NyaXB0LgotCi0gICAgSXQgYWxzbyBmaXhlcyBjb21tYW5kIHBhdGguICBX
aGVuIEN5Z3dpbiBQeXRob24gaXMgdXNlZCwgZS5nLiBpbiBXZWJLaXQsCi0gICAgaXQgY291bGQg
cnVuICIvdXNyL2Jpbi9wZXJsIC13VCBoZWxsby5wbCIuCi0gICAgV2hlbiBXaW4zMiBQeXRob24g
aXMgdXNlZCwgZS5nLiBpbiBDaHJvbWl1bSwgaXQgY291bGRuJ3QuICBTbywgZml4Ci0gICAgIi91
c3IvYmluL3BlcmwiIHRvICI8Y3lnd2luX3BhdGg+XHBlcmwuZXhlIi4KLQotICAgIEFyZ3M6Ci0g
ICAgICBzY3JpcHRfcGF0aDogcGF0aG5hbWUgb2YgdGhlIHNjcmlwdAotICAgICAgY3lnd2luX3Bh
dGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dpbiBiaW5hcnksIG9yIE5vbmUKLSAgICBSZXR1cm5z
OgotICAgICAgIyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5lLCBvciBOb25lIGlmIGl0IGlzIG5v
dCAjIS1zY3JpcHQuCi0gICAgIiIiCi0gICAgZnAgPSBvcGVuKHNjcmlwdF9wYXRoKQotICAgIGxp
bmUgPSBmcC5yZWFkbGluZSgpCi0gICAgZnAuY2xvc2UoKQotICAgIG0gPSByZS5tYXRjaCgnXiMh
KC4qKScsIGxpbmUpCi0gICAgaWYgbToKLSAgICAgICAgcmV0dXJuIF9fdHJhbnNsYXRlX2ludGVy
cChtLmdyb3VwKDEpLCBjeWd3aW5fcGF0aCkKLSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiB3cmFw
X3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRoKToKLSAgICAiIiJXcmFwIHBvcGVuMyB0byBzdXBw
b3J0ICMhLXNjcmlwdCBvbiBXaW5kb3dzLgotCi0gICAgQXJnczoKLSAgICAgIGN5Z3dpbl9wYXRo
OiAgcGF0aCBmb3IgY3lnd2luIGJpbmFyeSBpZiBjb21tYW5kIHBhdGggaXMgbmVlZGVkIHRvIGJl
Ci0gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWQuICBOb25lIGlmIG5vIHRyYW5zbGF0aW9u
IHJlcXVpcmVkLgotICAgICIiIgotCi0gICAgX19vcmlnX3BvcGVuMyA9IG9zLnBvcGVuMwotCi0g
ICAgZGVmIF9fd3JhcF9wb3BlbjMoY21kLCBtb2RlPSd0JywgYnVmc2l6ZT0tMSk6Ci0gICAgICAg
IGNtZGxpbmUgPSBjbWQuc3BsaXQoJyAnKQotICAgICAgICBpbnRlcnAgPSBnZXRfc2NyaXB0X2lu
dGVycChjbWRsaW5lWzBdLCBjeWd3aW5fcGF0aCkKLSAgICAgICAgaWYgaW50ZXJwOgotICAgICAg
ICAgICAgY21kID0gaW50ZXJwICsgJyAnICsgY21kCi0gICAgICAgIHJldHVybiBfX29yaWdfcG9w
ZW4zKGNtZCwgbW9kZSwgYnVmc2l6ZSkKLQotICAgIG9zLnBvcGVuMyA9IF9fd3JhcF9wb3BlbjMK
LQotCi1kZWYgaGV4aWZ5KHMpOgotICAgIHJldHVybiAnICcuam9pbihtYXAobGFtYmRhIHg6ICcl
MDJ4JyAlIG9yZCh4KSwgcykpCi0KLQotZGVmIGdldF9jbGFzc19sb2dnZXIobyk6Ci0gICAgcmV0
dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKAotICAgICAgICAnJXMuJXMnICUgKG8uX19jbGFzc19fLl9f
bW9kdWxlX18sIG8uX19jbGFzc19fLl9fbmFtZV9fKSkKLQotCi1jbGFzcyBOb29wTWFza2VyKG9i
amVjdCk6Ci0gICAgIiIiQSBtYXNraW5nIG9iamVjdCB0aGF0IGhhcyB0aGUgc2FtZSBpbnRlcmZh
Y2UgYXMgUmVwZWF0ZWRYb3JNYXNrZXIgYnV0Ci0gICAganVzdCByZXR1cm5zIHRoZSBzdHJpbmcg
cGFzc2VkIGluIHdpdGhvdXQgbWFraW5nIGFueSBjaGFuZ2UuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBtYXNrKHNlbGYsIHMpOgot
ICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFza2VyKG9iamVjdCk6Ci0g
ICAgIiIiQSBtYXNraW5nIG9iamVjdCB0aGF0IGFwcGxpZXMgWE9SIG9uIHRoZSBzdHJpbmcgZ2l2
ZW4gdG8gbWFzayBtZXRob2QKLSAgICB3aXRoIHRoZSBtYXNraW5nIGJ5dGVzIGdpdmVuIHRvIHRo
ZSBjb25zdHJ1Y3RvciByZXBlYXRlZGx5LiBUaGlzIG9iamVjdAotICAgIHJlbWVtYmVycyB0aGUg
cG9zaXRpb24gaW4gdGhlIG1hc2tpbmcgYnl0ZXMgdGhlIGxhc3QgbWFzayBtZXRob2QgY2FsbAot
ICAgIGVuZGVkIGFuZCByZXN1bWVzIGZyb20gdGhhdCBwb2ludCBvbiB0aGUgbmV4dCBtYXNrIG1l
dGhvZCBjYWxsLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hc2tpbmdfa2V5
KToKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXkgPSBtYXNraW5nX2tleQotICAgICAgICBzZWxm
Ll9tYXNraW5nX2tleV9pbmRleCA9IDAKLQotICAgIGRlZiBfbWFza191c2luZ19zd2lnKHNlbGYs
IHMpOgotICAgICAgICBtYXNrZWRfZGF0YSA9IGZhc3RfbWFza2luZy5tYXNrKAotICAgICAgICAg
ICAgICAgIHMsIHNlbGYuX21hc2tpbmdfa2V5LCBzZWxmLl9tYXNraW5nX2tleV9pbmRleCkKLSAg
ICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSAoCi0gICAgICAgICAgICAgICAgKHNlbGYu
X21hc2tpbmdfa2V5X2luZGV4ICsgbGVuKHMpKSAlIGxlbihzZWxmLl9tYXNraW5nX2tleSkpCi0g
ICAgICAgIHJldHVybiBtYXNrZWRfZGF0YQotCi0gICAgZGVmIF9tYXNrX3VzaW5nX2FycmF5KHNl
bGYsIHMpOgotICAgICAgICByZXN1bHQgPSBhcnJheS5hcnJheSgnQicpCi0gICAgICAgIHJlc3Vs
dC5mcm9tc3RyaW5nKHMpCi0KLSAgICAgICAgIyBVc2UgdGVtcG9yYXJ5IGxvY2FsIHZhcmlhYmxl
cyB0byBlbGltaW5hdGUgdGhlIGNvc3QgdG8gYWNjZXNzCi0gICAgICAgICMgYXR0cmlidXRlcwot
ICAgICAgICBtYXNraW5nX2tleSA9IG1hcChvcmQsIHNlbGYuX21hc2tpbmdfa2V5KQotICAgICAg
ICBtYXNraW5nX2tleV9zaXplID0gbGVuKG1hc2tpbmdfa2V5KQotICAgICAgICBtYXNraW5nX2tl
eV9pbmRleCA9IHNlbGYuX21hc2tpbmdfa2V5X2luZGV4Ci0KLSAgICAgICAgZm9yIGkgaW4geHJh
bmdlKGxlbihyZXN1bHQpKToKLSAgICAgICAgICAgIHJlc3VsdFtpXSBePSBtYXNraW5nX2tleVtt
YXNraW5nX2tleV9pbmRleF0KLSAgICAgICAgICAgIG1hc2tpbmdfa2V5X2luZGV4ID0gKG1hc2tp
bmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9zaXplCi0KLSAgICAgICAgc2VsZi5fbWFz
a2luZ19rZXlfaW5kZXggPSBtYXNraW5nX2tleV9pbmRleAotCi0gICAgICAgIHJldHVybiByZXN1
bHQudG9zdHJpbmcoKQotCi0gICAgaWYgJ2Zhc3RfbWFza2luZycgaW4gZ2xvYmFscygpOgotICAg
ICAgICBtYXNrID0gX21hc2tfdXNpbmdfc3dpZwotICAgIGVsc2U6Ci0gICAgICAgIG1hc2sgPSBf
bWFza191c2luZ19hcnJheQotCi0KLSMgQnkgbWFraW5nIHdiaXRzIG9wdGlvbiBuZWdhdGl2ZSwg
d2UgY2FuIHN1cHByZXNzIENNRi9GTEcgKDIgb2N0ZXQpIGFuZAotIyBBRExFUjMyICg0IG9jdGV0
KSBmaWVsZHMgb2YgemxpYiBzbyB0aGF0IHdlIGNhbiB1c2UgemxpYiBtb2R1bGUganVzdCBhcwot
IyBkZWZsYXRlIGxpYnJhcnkuIERJQ1RJRCB3b24ndCBiZSBhZGRlZCBhcyBmYXIgYXMgd2UgZG9u
J3Qgc2V0IGRpY3Rpb25hcnkuCi0jIExaNzcgd2luZG93IG9mIDMySyB3aWxsIGJlIHVzZWQgZm9y
IGJvdGggY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24uCi0jIEZvciBkZWNvbXByZXNzaW9u
LCB3ZSBjYW4ganVzdCB1c2UgMzJLIHRvIGNvdmVyIGFueSB3aW5kb3dzIHNpemUuIEZvcgotIyBj
b21wcmVzc2lvbiwgd2UgdXNlIDMySyBzbyByZWNlaXZlcnMgbXVzdCB1c2UgMzJLLgotIwotIyBD
b21wcmVzc2lvbiBsZXZlbCBpcyBaX0RFRkFVTFRfQ09NUFJFU1NJT04uIFdlIGRvbid0IGhhdmUg
dG8gbWF0Y2ggbGV2ZWwKLSMgdG8gZGVjb2RlLgotIwotIyBTZWUgemNvbmYuaCwgZGVmbGF0ZS5j
YywgaW5mbGF0ZS5jYyBvZiB6bGliIGxpYnJhcnksIGFuZCB6bGlibW9kdWxlLmMgb2YKLSMgUHl0
aG9uLiBTZWUgYWxzbyBSRkMxOTUwIChaTElCIDMuMykuCi0KLQotY2xhc3MgX0RlZmxhdGVyKG9i
amVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMpOgotICAgICAgICBz
ZWxmLl9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fY29t
cHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09N
UFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC13aW5kb3dfYml0cykKLQotICAgIGRlZiBjb21wcmVz
cyhzZWxmLCBieXRlcyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxmLl9jb21wcmVz
cy5jb21wcmVzcyhieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBp
bnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJl
c3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5
dGVzCi0KLSAgICBkZWYgY29tcHJlc3NfYW5kX2ZsdXNoKHNlbGYsIGJ5dGVzKToKLSAgICAgICAg
Y29tcHJlc3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAg
ICBjb21wcmVzc2VkX2J5dGVzICs9IHNlbGYuX2NvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0
ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29t
cHJlc3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRfYnl0ZXMKLQotICAgIGRl
ZiBjb21wcmVzc19hbmRfZmluaXNoKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9i
eXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAgICAgICBjb21wcmVzc2Vk
X2J5dGVzICs9IHNlbGYuX2NvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRlcykKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21wcmVzc2VkX2J5dGVzKQot
ICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcwotCi0KLWNsYXNzIF9JbmZsYXRlcihvYmpl
Y3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzKToKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl93aW5kb3df
Yml0cyA9IHdpbmRvd19iaXRzCi0KLSAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9ICcnCi0KLSAg
ICAgICAgc2VsZi5yZXNldCgpCi0KLSAgICBkZWYgZGVjb21wcmVzcyhzZWxmLCBzaXplKToKLSAg
ICAgICAgaWYgbm90IChzaXplID09IC0xIG9yIHNpemUgPiAwKToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignc2l6ZSBtdXN0IGJlIC0xIG9yIHBvc2l0aXZlJykKLQotICAgICAgICBkYXRh
ID0gJycKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgc2l6ZSA9PSAtMToK
LSAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3MuZGVjb21wcmVzcyhzZWxm
Ll91bmNvbnN1bWVkKQotICAgICAgICAgICAgICAgICMgU2VlIFB5dGhvbiBidWcgaHR0cDovL2J1
Z3MucHl0aG9uLm9yZy9pc3N1ZTEyMDUwIHRvCi0gICAgICAgICAgICAgICAgIyB1bmRlcnN0YW5k
IHdoeSB0aGUgc2FtZSBjb2RlIGNhbm5vdCBiZSB1c2VkIGZvciB1cGRhdGluZwotICAgICAgICAg
ICAgICAgICMgc2VsZi5fdW5jb25zdW1lZCBmb3IgaGVyZSBhbmQgZWxzZSBibG9jay4KLSAgICAg
ICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gJycKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRlY29tcHJlc3MoCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQsIHNpemUgLSBsZW4oZGF0YSkpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29tcHJlc3MudW5jb25zdW1lZF90
YWlsCi0gICAgICAgICAgICBpZiBzZWxmLl9kZWNvbXByZXNzLnVudXNlZF9kYXRhOgotICAgICAg
ICAgICAgICAgICMgRW5jb3VudGVyZWQgYSBsYXN0IGJsb2NrIChpLmUuIGEgYmxvY2sgd2l0aCBC
RklOQUwgPSAxKSBhbmQKLSAgICAgICAgICAgICAgICAjIGZvdW5kIGEgbmV3IHN0cmVhbSAodW51
c2VkX2RhdGEpLiBXZSBjYW5ub3QgdXNlIHRoZSBzYW1lCi0gICAgICAgICAgICAgICAgIyB6bGli
LkRlY29tcHJlc3Mgb2JqZWN0IGZvciB0aGUgbmV3IHN0cmVhbS4gQ3JlYXRlIGEgbmV3Ci0gICAg
ICAgICAgICAgICAgIyBEZWNvbXByZXNzIG9iamVjdCB0byBkZWNvbXByZXNzIHRoZSBuZXcgb25l
LgotICAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICAjIEl0J3MgZmluZSB0byBpZ25v
cmUgdW5jb25zdW1lZF90YWlsIGlmIHVudXNlZF9kYXRhIGlzIG5vdAotICAgICAgICAgICAgICAg
ICMgZW1wdHkuCi0gICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29t
cHJlc3MudW51c2VkX2RhdGEKLSAgICAgICAgICAgICAgICBzZWxmLnJlc2V0KCkKLSAgICAgICAg
ICAgICAgICBpZiBzaXplID49IDAgYW5kIGxlbihkYXRhKSA9PSBzaXplOgotICAgICAgICAgICAg
ICAgICAgICAjIGRhdGEgaXMgZmlsbGVkLiBEb24ndCBjYWxsIGRlY29tcHJlc3MgYWdhaW4uCi0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgIyBSZS1pbnZva2UgRGVjb21wcmVzcy5kZWNvbXByZXNzIHRvIHRyeSB0byBk
ZWNvbXByZXNzIGFsbAotICAgICAgICAgICAgICAgICAgICAjIGF2YWlsYWJsZSBieXRlcyBiZWZv
cmUgaW52b2tpbmcgcmVhZCB3aGljaCBibG9ja3MgdW50aWwKLSAgICAgICAgICAgICAgICAgICAg
IyBhbnkgbmV3IGJ5dGUgaXMgYXZhaWxhYmxlLgotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEhlcmUsIHNpbmNlIHVudXNl
ZF9kYXRhIGlzIGVtcHR5LCBldmVuIGlmIHVuY29uc3VtZWRfdGFpbCBpcwotICAgICAgICAgICAg
ICAgICMgbm90IGVtcHR5LCBieXRlcyBvZiByZXF1ZXN0ZWQgbGVuZ3RoIGFyZSBhbHJlYWR5IGlu
IGRhdGEuIFdlCi0gICAgICAgICAgICAgICAgIyBkb24ndCBoYXZlIHRvICJjb250aW51ZSIgaGVy
ZS4KLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGRhdGE6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0RlY29tcHJlc3NlZCAlcicsIGRhdGEpCi0gICAgICAgIHJl
dHVybiBkYXRhCi0KLSAgICBkZWYgYXBwZW5kKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ0FwcGVuZGVkICVyJywgZGF0YSkKLSAgICAgICAgc2VsZi5fdW5jb25zdW1l
ZCArPSBkYXRhCi0KLSAgICBkZWYgcmVzZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnUmVzZXQnKQotICAgICAgICBzZWxmLl9kZWNvbXByZXNzID0gemxpYi5kZWNvbXByZXNz
b2JqKC1zZWxmLl93aW5kb3dfYml0cykKLQotCi0jIENvbXByZXNzZXMvZGVjb21wcmVzc2VzIGdp
dmVuIG9jdGV0cyB1c2luZyB0aGUgbWV0aG9kIGludHJvZHVjZWQgaW4gUkZDMTk3OS4KLQotCi1j
bGFzcyBfUkZDMTk3OURlZmxhdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBjb21wcmVzc29yIGNsYXNz
IHRoYXQgYXBwbGllcyBERUZMQVRFIHRvIGdpdmVuIGJ5dGUgc2VxdWVuY2UgYW5kCi0gICAgZmx1
c2hlcyB1c2luZyB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0aGUgUkZDMTk3OSBzZWN0aW9u
IDIuMS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cywgbm9f
Y29udGV4dF90YWtlb3Zlcik6Ci0gICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotICAgICAg
ICBpZiB3aW5kb3dfYml0cyBpcyBOb25lOgotICAgICAgICAgICAgd2luZG93X2JpdHMgPSB6bGli
Lk1BWF9XQklUUwotICAgICAgICBzZWxmLl93aW5kb3dfYml0cyA9IHdpbmRvd19iaXRzCi0gICAg
ICAgIHNlbGYuX25vX2NvbnRleHRfdGFrZW92ZXIgPSBub19jb250ZXh0X3Rha2VvdmVyCi0KLSAg
ICBkZWYgZmlsdGVyKHNlbGYsIGJ5dGVzLCBlbmQ9VHJ1ZSwgYmZpbmFsPUZhbHNlKToKLSAgICAg
ICAgaWYgc2VsZi5fZGVmbGF0ZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2RlZmxhdGVy
ID0gX0RlZmxhdGVyKHNlbGYuX3dpbmRvd19iaXRzKQotCi0gICAgICAgIGlmIGJmaW5hbDoKLSAg
ICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9maW5pc2goYnl0
ZXMpCi0gICAgICAgICAgICAjIEFkZCBhIHBhZGRpbmcgYmxvY2sgd2l0aCBCRklOQUwgPSAwIGFu
ZCBCVFlQRSA9IDAuCi0gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBjaHIoMCkKLSAgICAg
ICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAot
Ci0gICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNzX2FuZF9mbHVzaChieXRl
cykKLSAgICAgICAgaWYgZW5kOgotICAgICAgICAgICAgIyBTdHJpcCBsYXN0IDQgb2N0ZXRzIHdo
aWNoIGlzIExFTiBhbmQgTkxFTiBmaWVsZCBvZiBhCi0gICAgICAgICAgICAjIG5vbi1jb21wcmVz
c2VkIGJsb2NrIGFkZGVkIGZvciBaX1NZTkNfRkxVU0guCi0gICAgICAgICAgICByZXN1bHQgPSBy
ZXN1bHRbOi00XQotCi0gICAgICAgIGlmIHNlbGYuX25vX2NvbnRleHRfdGFrZW92ZXIgYW5kIGVu
ZDoKLSAgICAgICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotCi0gICAgICAgIHJldHVybiBy
ZXN1bHQKLQotCi1jbGFzcyBfUkZDMTk3OUluZmxhdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkZWNv
bXByZXNzb3IgY2xhc3MgZm9yIGJ5dGUgc2VxdWVuY2UgY29tcHJlc3NlZCBhbmQgZmx1c2hlZCBm
b2xsb3dpbmcKLSAgICB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0aGUgUkZDMTk3OSBzZWN0
aW9uIDIuMS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cz16
bGliLk1BWF9XQklUUyk6Ci0gICAgICAgIHNlbGYuX2luZmxhdGVyID0gX0luZmxhdGVyKHdpbmRv
d19iaXRzKQotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBieXRlcyk6Ci0gICAgICAgICMgUmVzdG9y
ZSBzdHJpcHBlZCBMRU4gYW5kIE5MRU4gZmllbGQgb2YgYSBub24tY29tcHJlc3NlZCBibG9jayBh
ZGRlZAotICAgICAgICAjIGZvciBaX1NZTkNfRkxVU0guCi0gICAgICAgIHNlbGYuX2luZmxhdGVy
LmFwcGVuZChieXRlcyArICdceDAwXHgwMFx4ZmZceGZmJykKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2luZmxhdGVyLmRlY29tcHJlc3MoLTEpCi0KLQotY2xhc3MgRGVmbGF0ZVNvY2tldChvYmplY3Qp
OgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3Igc29ja2V0IG9iamVjdCB0byBpbnRlcmNlcHQg
c2VuZCBhbmQgcmVjdiB0byBwZXJmb3JtCi0gICAgZGVmbGF0ZSBjb21wcmVzc2lvbiBhbmQgZGVj
b21wcmVzc2lvbiB0cmFuc3BhcmVudGx5LgotICAgICIiIgotCi0gICAgIyBTaXplIG9mIHRoZSBi
dWZmZXIgcGFzc2VkIHRvIHJlY3YgdG8gcmVjZWl2ZSBjb21wcmVzc2VkIGRhdGEuCi0gICAgX1JF
Q1ZfU0laRSA9IDQwOTYKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrZXQpOgotICAgICAg
ICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fZGVmbGF0ZXIgPSBfRGVmbGF0ZXIoemxp
Yi5NQVhfV0JJVFMpCi0gICAgICAgIHNlbGYuX2luZmxhdGVyID0gX0luZmxhdGVyKHpsaWIuTUFY
X1dCSVRTKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZSk6Ci0gICAgICAgICIiIlJlY2VpdmVz
IGRhdGEgZnJvbSB0aGUgc29ja2V0IHNwZWNpZmllZCBvbiB0aGUgY29uc3RydWN0aW9uIHVwCi0g
ICAgICAgIHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4gT25jZSBhbnkgZGF0YSBpcyBhdmFpbGFibGUs
IHJldHVybnMgaXQgZXZlbgotICAgICAgICBpZiBpdCdzIHNtYWxsZXIgdGhhbiB0aGUgc3BlY2lm
aWVkIHNpemUuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IEFsbG93
IGNhbGwgd2l0aCBzaXplPTAuIEl0IHNob3VsZCBibG9jayB1bnRpbCBhbnkKLSAgICAgICAgIyBk
ZWNvbXByZXNzZWQgZGF0YSBpcyBhdmFpbGFibGUuCi0gICAgICAgIGlmIHNpemUgPD0gMDoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm9uLXBvc2l0aXZlIHNpemUgcGFzc2VkJykKLSAg
ICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9pbmZsYXRlci5kZWNv
bXByZXNzKHNpemUpCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gMDoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZGF0YQotCi0gICAgICAgICAgICByZWFkX2RhdGEgPSBzZWxmLl9zb2NrZXQu
cmVjdihEZWZsYXRlU29ja2V0Ll9SRUNWX1NJWkUpCi0gICAgICAgICAgICBpZiBub3QgcmVhZF9k
YXRhOgotICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAgICAgc2VsZi5faW5mbGF0
ZXIuYXBwZW5kKHJlYWRfZGF0YSkKLQotICAgIGRlZiBzZW5kYWxsKHNlbGYsIGJ5dGVzKToKLSAg
ICAgICAgc2VsZi5zZW5kKGJ5dGVzKQotCi0gICAgZGVmIHNlbmQoc2VsZiwgYnl0ZXMpOgotICAg
ICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmx1
c2goYnl0ZXMpKQotICAgICAgICByZXR1cm4gbGVuKGJ5dGVzKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1NzlkZjM1OTk4ZDExNTFiM2IwOThhMDVhMGIxYzg3OWQ0MjUyZDg3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMzICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3
ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19z
dHJlYW1faHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcu
aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
bXNndXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tdXgucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9z
dHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NzM1YzdlMmEzZGI4ZGM3YzQzZmQxNzIwMTQ5NWQ0MzVjY2U2OGNlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUg
b3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5z
ZXMvYnNkCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1jbGFzcyBY
SFJCZW5jaG1hcmtIYW5kbGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRl
cnMsIHJmaWxlLCB3ZmlsZSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNz
X2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLSAgICAgICAg
c2VsZi5yZmlsZSA9IHJmaWxlCi0gICAgICAgIHNlbGYud2ZpbGUgPSB3ZmlsZQotCi0gICAgZGVm
IGRvX3NlbmQoc2VsZik6Ci0gICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYuaGVhZGVy
cy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdSZXF1ZXN0ZWQgdG8gcmVjZWl2ZSAlcyBieXRlcycsIGNvbnRlbnRfbGVuZ3RoKQotCi0g
ICAgICAgIFJFQ0VJVkVfQkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0Ci0KLSAgICAgICAgYnl0ZXNf
dG9fcmVjZWl2ZSA9IGNvbnRlbnRfbGVuZ3RoCi0gICAgICAgIHdoaWxlIGJ5dGVzX3RvX3JlY2Vp
dmUgPiAwOgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPSBieXRl
c190b19yZWNlaXZlCi0gICAgICAgICAgICBpZiBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9v
cCA+IFJFQ0VJVkVfQkxPQ0tfU0laRToKLSAgICAgICAgICAgICAgICBieXRlc190b19yZWNlaXZl
X2luX3RoaXNfbG9vcCA9IFJFQ0VJVkVfQkxPQ0tfU0laRQotICAgICAgICAgICAgcmVjZWl2ZWRf
ZGF0YSA9IHNlbGYucmZpbGUucmVhZChieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCkKLSAg
ICAgICAgICAgIGlmIHJlY2VpdmVkX2RhdGEgIT0gKCdhJyAqIGJ5dGVzX3RvX3JlY2VpdmVfaW5f
dGhpc19sb29wKToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3Qg
Ym9keSB2ZXJpZmljYXRpb24gZmFpbGVkJykKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgICAgIGJ5dGVzX3RvX3JlY2VpdmUgLT0gbGVuKHJlY2VpdmVkX2RhdGEpCi0gICAgICAgIGlm
IGJ5dGVzX3RvX3JlY2VpdmUgPCAwOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdS
ZWNlaXZlZCAlZCBtb3JlIGJ5dGVzIHRoYW4gZXhwZWN0ZWQnICUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoLWJ5dGVzX3RvX3JlY2VpdmUpKQotICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICAgICAgIyBSZXR1cm4gdGhlIG51bWJlciBvZiByZWNlaXZlZCBieXRlcyBiYWNrIHRvIHRo
ZSBjbGllbnQuCi0gICAgICAgIHJlc3BvbnNlX2JvZHkgPSAnJWQnICUgY29udGVudF9sZW5ndGgK
LSAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgKLSAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tc
clxuJwotICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcbicKLSAgICAgICAg
ICAgICdDb250ZW50LUxlbmd0aDogJWRcclxuJwotICAgICAgICAgICAgJ1xyXG4lcycgJSAobGVu
KHJlc3BvbnNlX2JvZHkpLCByZXNwb25zZV9ib2R5KSkKLSAgICAgICAgc2VsZi53ZmlsZS5mbHVz
aCgpCi0KLSAgICBkZWYgZG9fcmVjZWl2ZShzZWxmKToKLSAgICAgICAgY29udGVudF9sZW5ndGgg
PSBpbnQoc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKLSAgICAgICAg
cmVxdWVzdF9ib2R5ID0gc2VsZi5yZmlsZS5yZWFkKGNvbnRlbnRfbGVuZ3RoKQotCi0gICAgICAg
IHJlcXVlc3RfYXJyYXkgPSByZXF1ZXN0X2JvZHkuc3BsaXQoJyAnKQotICAgICAgICBpZiBsZW4o
cmVxdWVzdF9hcnJheSkgPCAyOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxm
b3JtZWQgcmVxdWVzdCBib2R5OiAlcicsIHJlcXVlc3RfYm9keSkKLSAgICAgICAgICAgIHJldHVy
bgotCi0gICAgICAgICMgUGFyc2UgdGhlIHNpemUgcGFyYW1ldGVyLgotICAgICAgICBieXRlc190
b19zZW5kID0gcmVxdWVzdF9hcnJheVswXQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBieXRl
c190b19zZW5kID0gaW50KGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
LCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgc2l6ZSBwYXJh
bWV0ZXI6ICVyJywgYnl0ZXNfdG9fc2VuZCkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCB0byBzZW5kICVzIGJ5dGVzJywgYnl0ZXNfdG9f
c2VuZCkKLQotICAgICAgICAjIFBhcnNlIHRoZSB0cmFuc2ZlciBlbmNvZGluZyBwYXJhbWV0ZXIu
Ci0gICAgICAgIGNodW5rZWRfbW9kZSA9IEZhbHNlCi0gICAgICAgIG1vZGVfcGFyYW1ldGVyID0g
cmVxdWVzdF9hcnJheVsxXQotICAgICAgICBpZiBtb2RlX3BhcmFtZXRlciA9PSAnY2h1bmtlZCc6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCBjaHVua2VkIHRyYW5z
ZmVyIGVuY29kaW5nJykKLSAgICAgICAgICAgIGNodW5rZWRfbW9kZSA9IFRydWUKLSAgICAgICAg
ZWxpZiBtb2RlX3BhcmFtZXRlciAhPSAnbm9uZSc6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0ludmFsaWQgbW9kZSBwYXJhbWV0ZXI6ICVyJywgbW9kZV9wYXJhbWV0ZXIpCi0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFdyaXRlIGEgaGVhZGVyCi0gICAgICAgIHJlc3Bv
bnNlX2hlYWRlciA9ICgKLSAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJwotICAgICAg
ICAgICAgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXHJcbicpCi0gICAg
ICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSAnVHJh
bnNmZXItRW5jb2Rpbmc6IGNodW5rZWRcclxuXHJcbicKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJlc3BvbnNlX2hlYWRlciArPSAoCi0gICAgICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3Ro
OiAlZFxyXG5cclxuJyAlIGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIHNlbGYud2ZpbGUud3JpdGUo
cmVzcG9uc2VfaGVhZGVyKQotICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKLQotICAgICAgICAj
IFdyaXRlIGEgYm9keQotICAgICAgICBTRU5EX0JMT0NLX1NJWkUgPSAxMDI0ICogMTAyNAotCi0g
ICAgICAgIHdoaWxlIGJ5dGVzX3RvX3NlbmQgPiAwOgotICAgICAgICAgICAgYnl0ZXNfdG9fc2Vu
ZF9pbl90aGlzX2xvb3AgPSBieXRlc190b19zZW5kCi0gICAgICAgICAgICBpZiBieXRlc190b19z
ZW5kX2luX3RoaXNfbG9vcCA+IFNFTkRfQkxPQ0tfU0laRToKLSAgICAgICAgICAgICAgICBieXRl
c190b19zZW5kX2luX3RoaXNfbG9vcCA9IFNFTkRfQkxPQ0tfU0laRQotCi0gICAgICAgICAgICBp
ZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnJXhcclxu
JyAlIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wKQotICAgICAgICAgICAgc2VsZi53ZmlsZS53
cml0ZSgnYScgKiBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCkKLSAgICAgICAgICAgIGlmIGNo
dW5rZWRfbW9kZToKLSAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCdcclxuJykKLSAg
ICAgICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQotCi0gICAgICAgICAgICBieXRlc190b19zZW5k
IC09IGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wCi0KLSAgICAgICAgaWYgY2h1bmtlZF9tb2Rl
OgotICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnMFxyXG5cclxuJykKLSAgICAgICAgICAg
IHNlbGYud2ZpbGUuZmx1c2goKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvc2V0dXAucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9zZXR1cC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhOGRiM2UxMTFi
MGE1NDMxZDcxZTYxZjQ0OTEzZWM1ZGFjOTI0OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDc0ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiU2V0IHVwIHNjcmlwdCBmb3IgbW9kX3B5d2Vic29ja2V0LgotIiIiCi0KLQotZnJvbSBk
aXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAsIEV4dGVuc2lvbgotaW1wb3J0IHN5cwotCi0KLV9Q
QUNLQUdFX05BTUUgPSAnbW9kX3B5d2Vic29ja2V0JwotCi0jIEJ1aWxkIGFuZCB1c2UgYSBDKysg
ZXh0ZW5zaW9uIGZvciBmYXN0ZXIgbWFza2luZy4gU1dJRyBpcyByZXF1aXJlZC4KLV9VU0VfRkFT
VF9NQVNLSU5HID0gRmFsc2UKLQotaWYgc3lzLnZlcnNpb24gPCAnMi4zJzoKLSAgICBwcmludCA+
PiBzeXMuc3RkZXJyLCAnJXMgcmVxdWlyZXMgUHl0aG9uIDIuMyBvciBsYXRlci4nICUgX1BBQ0tB
R0VfTkFNRQotICAgIHN5cy5leGl0KDEpCi0KLWlmIF9VU0VfRkFTVF9NQVNLSU5HOgotICAgIHNl
dHVwKGV4dF9tb2R1bGVzPVsKLSAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbigKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldC9fZmFzdF9tYXNraW5nJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydtb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmknXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpZ19vcHRzPVsnLWMrKyddKV0pCi0KLXNldHVw
KGF1dGhvcj0nWXV6byBGdWppc2hpbWEnLAotICAgICAgYXV0aG9yX2VtYWlsPSd5dXpvQGNocm9t
aXVtLm9yZycsCi0gICAgICBkZXNjcmlwdGlvbj0nV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBh
Y2hlIEhUVFAgU2VydmVyLicsCi0gICAgICBsb25nX2Rlc2NyaXB0aW9uPSgKLSAgICAgICAgICAg
ICAgJ21vZF9weXdlYnNvY2tldCBpcyBhbiBBcGFjaGUgSFRUUCBTZXJ2ZXIgZXh0ZW5zaW9uIGZv
ciAnCi0gICAgICAgICAgICAgICd0aGUgV2ViU29ja2V0IFByb3RvY29sIChSRkMgNjQ1NSkuICcK
LSAgICAgICAgICAgICAgJ1NlZSBtb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkgZm9yIG1vcmUg
ZGV0YWlsLicpLAotICAgICAgbGljZW5zZT0nU2VlIENPUFlJTkcnLAotICAgICAgbmFtZT1fUEFD
S0FHRV9OQU1FLAotICAgICAgcGFja2FnZXM9W19QQUNLQUdFX05BTUUsIF9QQUNLQUdFX05BTUUg
KyAnLmhhbmRzaGFrZSddLAotICAgICAgdXJsPSdodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHl3
ZWJzb2NrZXQvJywKLSAgICAgICMgU2VlIHRoZSBzb3VyY2Ugb2YgZGlzdHV0aWxzLnZlcnNpb24s
IGRpc3R1dGlscy52ZXJzaW9ucHJlZGljYXRlIGFuZAotICAgICAgIyBkaXN0dXRpbHMuZGlzdCB0
byB1bmRlcnN0YW5kIGhvdyB0byBuYW1lIHZlcnNpb24gbnVtYmVycy4KLSAgICAgIHZlcnNpb249
JzAuNy45JywKLSAgICAgICkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19faW5pdF9fLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L2NlcnQvY2FjZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jYWNlcnQu
cGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGFkYWUxMjFiZGQzYWRiNzQ0Mzgz
Y2QzYmYwOGMyMjZmODU1NGJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jYWNlcnQucGVtCisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDdkRDQ0FpV2dB
d0lCQWdJSkFLcVZnaGtHRjFyU01BMEdDU3FHU0liM0RRRUJCUVVBTUVreEN6QUpCZ05WCi1CQVlU
QWtwUU1RNHdEQVlEVlFRSUV3VlViMnQ1YnpFVU1CSUdBMVVFQ2hNTGNIbDNaV0p6YjJOclpYUXhG
REFTCi1CZ05WQkFNVEMzQjVkMlZpYzI5amEyVjBNQjRYRFRFeU1EWXdOakEzTWpRek0xb1hEVE01
TVRBeU16QTNNalF6Ci1NMW93U1RFTE1Ba0dBMVVFQmhNQ1NsQXhEakFNQmdOVkJBZ1RCVlJ2YTNs
dk1SUXdFZ1lEVlFRS0V3dHdlWGRsCi1Zbk52WTJ0bGRERVVNQklHQTFVRUF4TUxjSGwzWldKemIy
TnJaWFF3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFECi1nWTBBTUlHSkFvR0JBS29TRVcyYmlReFZy
TU1LZG4vOFBKekRZaVNYRFBSOVdRYkxSUlExR201amtDWWlhaFhXCi11MkNiVFRoZlBQZmkyTkhB
M0krSGxUN2dPOXlSN1JWVXZONklTVXpHd1hERXE0ZjRVTnF0UU9oUWFxcUsrQ1o5Ci1MTy9CaE8v
WVlmTnJiU1BsWXpIVUthVDllc2U3eE85VnpWS0xXK3FVZjJNamg0LytTenhCRE5QN0FnTUJBQUdq
Ci1nYXN3Z2Fnd0hRWURWUjBPQkJZRUZPc1dkeENTdXlod2FaZWFiNkJvVGhvMysrYnpNSGtHQTFV
ZEl3UnlNSENBCi1GT3NXZHhDU3V5aHdhWmVhYjZCb1RobzMrK2J6b1Uya1N6QkpNUXN3Q1FZRFZR
UUdFd0pLVURFT01Bd0dBMVVFCi1DQk1GVkc5cmVXOHhGREFTQmdOVkJBb1RDM0I1ZDJWaWMyOWph
MlYwTVJRd0VnWURWUVFERXd0d2VYZGxZbk52Ci1ZMnRsZElJSkFLcVZnaGtHRjFyU01Bd0dBMVVk
RXdRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFRkJRQURnWUVBCi1nc01JMVdFWXFOdy9qaFVJZHJU
QmNDeEowWDZoSnZBOXppS0FOVm0xUnMrNFAzWURBcmtROGJDcjZ4WStLdzdzCi1acDB5RTdkTThH
TWRpK0RVNmhMM3QzRTVlTWtUUzF5WnI5V0NLNGYyUkxvK2V0OThzZWxaeWRwSGVtRjNESkozCi1n
QWo4U3g0TEJhRzhDYi9XbkVNUHYzTXhHM2ZCRTVmYXZGNlY0alUwN2hRPQotLS0tLS1FTkQgQ0VS
VElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNTM3OWE3MmIwZGFjNWY0MTk3OWM4MDJjNjYzZGY4Yjg4ZGVhODI5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jZXJ0
LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERh
dGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMSAo
MHgxKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24K
LSAgICAgICAgSXNzdWVyOiBDPUpQLCBTVD1Ub2t5bywgTz1weXdlYnNvY2tldCwgQ049cHl3ZWJz
b2NrZXQKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEp1biAgNiAw
NzoyNTowOCAyMDEyIEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogT2N0IDIzIDA3OjI1OjA4
IDIwMzkgR01UCi0gICAgICAgIFN1YmplY3Q6IEM9SlAsIFNUPVRva3lvLCBPPXB5d2Vic29ja2V0
LCBDTj1weXdlYnNvY2tldAotICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKLSAgICAg
ICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9uCi0gICAgICAgICAgICBS
U0EgUHVibGljIEtleTogKDEwMjQgYml0KQotICAgICAgICAgICAgICAgIE1vZHVsdXMgKDEwMjQg
Yml0KToKLSAgICAgICAgICAgICAgICAgICAgMDA6ZGU6MTA6Y2U6M2E6NWE6MDQ6YTQ6MWM6Mjk6
OTM6NWM6MjM6ODI6MWE6Ci0gICAgICAgICAgICAgICAgICAgIGYyOjA2OjAxOmU2OjJiOmE0OjBm
OmRkOjc3OjQ5Ojc2Ojg5OjAzOmEyOjIxOgotICAgICAgICAgICAgICAgICAgICBkZTowNDo3NTpj
NjplMjpkZDpmYjozNToyNzozYTphMjo5Mjo4ZToxMjo2MjoKLSAgICAgICAgICAgICAgICAgICAg
MmI6M2U6MWY6ZjQ6Nzg6ZGY6YjY6OTQ6Y2I6Mjc6ZDY6Y2I6ZDY6Mzc6ZDc6Ci0gICAgICAgICAg
ICAgICAgICAgIDVjOjA4OmYwOjA5OjNlOmM5OmNlOjI0OjJkOjAwOmM5OmRmOjRhOmUwOjk5Ogot
ICAgICAgICAgICAgICAgICAgICBlNTpmYjoyMzphOTplMjpkNjpjOTozZDo5NjpmYTowMTo4ODpk
ZTo1YTo4OToKLSAgICAgICAgICAgICAgICAgICAgYjA6Y2Y6MDM6Njc6NmY6MDQ6ODY6MWQ6ZWY6
NjI6MWM6NTU6YTk6MDc6OWE6Ci0gICAgICAgICAgICAgICAgICAgIDJlOjY2OjJhOjczOjViOjRj
OjYyOjAzOmY5OjgyOjgzOmRiOjY4OmJmOmI4OgotICAgICAgICAgICAgICAgICAgICA0YjowYjo4
Yjo5MzoxMTpiODo1NDo3Mzo3YgotICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgx
MDAwMSkKLSAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBYNTA5djMgQmFz
aWMgQ29uc3RyYWludHM6IAotICAgICAgICAgICAgICAgIENBOkZBTFNFCi0gICAgICAgICAgICBO
ZXRzY2FwZSBDZXJ0IFR5cGU6IAotICAgICAgICAgICAgICAgIFNTTCBTZXJ2ZXIKLSAgICAgICAg
ICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIE9wZW5TU0wgR2VuZXJhdGVk
IENlcnRpZmljYXRlCi0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjog
Ci0gICAgICAgICAgICAgICAgODI6QTE6NzM6OEI6MTY6MEM6N0M6RTQ6RDM6NDY6OTU6MTM6OTU6
MUE6MzI6QzE6ODQ6RTk6MDY6MDAKLSAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElk
ZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOkVCOjE2Ojc3OjEwOjkyOkJCOjI4Ojcw
OjY5Ojk3OjlBOjZGOkEwOjY4OjRFOjFBOjM3OkZCOkU2OkYzCi0KLSAgICBTaWduYXR1cmUgQWxn
b3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgNmI6YjM6NDY6Mjk6MDI6ZGY6
YjA6Yzg6OGU6YzQ6ZDc6N2Y6YTA6MWU6MGQ6MWE6ZWI6MmY6Ci0gICAgICAgIGRmOmQxOjQ4OjU3
OjM2OjVmOjk1OjhjOjFiOmYwOjUxOmQ2OjUyOmU3OjhkOjg0OjNiOjlmOgotICAgICAgICBkODpl
ZDoyMjo5YzphYTpiZDplZTo5Yjo5MDoxZDo4NDphMzo0YzowYjpjYjplYjo2NDo3MzoKLSAgICAg
ICAgYmE6Zjc6MTU6Y2U6ZGE6NWY6ZGI6OGI6MTU6MDc6YTY6Mjg6N2Y6Yjk6OGM6MTE6OWI6NjQ6
Ci0gICAgICAgIGQzOmYxOmJlOjUyOjRmOmMzOmQ4OjU4OmZlOmRlOjU2OjYzOjYzOjNiOjUxOmVk
OmE3OjgxOgotICAgICAgICBmOTowNTo1MTo3MDo2MzozMjowOTowZTo5NDo3ZTowNTpmZTphMTo1
NjoxODozNDo5ODpkNToKLSAgICAgICAgOTk6MWU6NGU6Mjc6Mzg6ODk6OTA6NmE6ZTU6Y2U6NjA6
MzU6MDE6ZjU6ZGU6MzQ6NjA6YjE6Ci0gICAgICAgIGNiOmFlCi0tLS0tLUJFR0lOIENFUlRJRklD
QVRFLS0tLS0KLU1JSUNtRENDQWdHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJKTVFz
d0NRWURWUVFHRXdKS1VERU8KLU1Bd0dBMVVFQ0JNRlZHOXJlVzh4RkRBU0JnTlZCQW9UQzNCNWQy
VmljMjlqYTJWME1SUXdFZ1lEVlFRREV3dHcKLWVYZGxZbk52WTJ0bGREQWVGdzB4TWpBMk1EWXdO
ekkxTURoYUZ3MHpPVEV3TWpNd056STFNRGhhTUVreEN6QUoKLUJnTlZCQVlUQWtwUU1RNHdEQVlE
VlFRSUV3VlViMnQ1YnpFVU1CSUdBMVVFQ2hNTGNIbDNaV0p6YjJOclpYUXgKLUZEQVNCZ05WQkFN
VEMzQjVkMlZpYzI5amEyVjBNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0IKLWdR
RGVFTTQ2V2dTa0hDbVRYQ09DR3ZJR0FlWXJwQS9kZDBsMmlRT2lJZDRFZGNiaTNmczFKenFpa280
U1lpcysKLUgvUjQzN2FVeXlmV3k5WTMxMXdJOEFrK3ljNGtMUURKMzByZ21lWDdJNm5pMXNrOWx2
b0JpTjVhaWJEUEEyZHYKLUJJWWQ3MkljVmFrSG1pNW1Lbk5iVEdJRCtZS0QyMmkvdUVzTGk1TVJ1
RlJ6ZXdJREFRQUJvNEdQTUlHTU1Ba0cKLUExVWRFd1FDTUFBd0VRWUpZSVpJQVliNFFnRUJCQVFE
QWdaQU1Dd0dDV0NHU0FHRytFSUJEUVFmRmgxUGNHVnUKLVUxTk1JRWRsYm1WeVlYUmxaQ0JEWlhK
MGFXWnBZMkYwWlRBZEJnTlZIUTRFRmdRVWdxRnppeFlNZk9UVFJwVVQKLWxSb3l3WVRwQmdBd0h3
WURWUjBqQkJnd0ZvQVU2eFozRUpLN0tIQnBsNXB2b0doT0dqZjc1dk13RFFZSktvWkkKLWh2Y05B
UUVGQlFBRGdZRUFhN05HS1FMZnNNaU94TmQvb0I0Tkd1c3YzOUZJVnpaZmxZd2I4RkhXVXVlTmhE
dWYKLTJPMGluS3E5N3B1UUhZU2pUQXZMNjJSenV2Y1Z6dHBmMjRzVkI2WW9mN21NRVp0azAvRytV
ay9EMkZqKzNsWmoKLVl6dFI3YWVCK1FWUmNHTXlDUTZVZmdYK29WWVlOSmpWbVI1T0p6aUprR3Js
em1BMUFmWGVOR0N4eTY0PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMiBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9j
bGllbnRfY2VydC5wMTIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0ZTEzOTkyNzk4
MmZhOTgyM2E1NzIzMWFmMTEzNDk5ZDZhNWE4YjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxp
dGVyYWwgMjU4Mgp6Y21ZK0ZYSCpqaTdLTWAjMHRCZzJxekZpdFAhZjxQSEEtKk5Mb0BWX2djZjB0
OFdCKCNJP3slWVJGeCp1YCUpeUoKejFuRyFLMzVicWhYclg3QWI5USVqZjg2dWx4JVp2LT4lSF5B
YVpwd2VrUDQyWW59ZzZ2I091WUE4R3RtdlZqU0lqCnpGcGg1VSgoWiVmQVN3U3VrWVhHcD1GKkEp
MFJmaTxgJWVPZF5GcEJpLWYjczdmaXI/PjJjVyRUIzsyKkdBUF9BZQp6MV8jbHJuMkUoZUtPTUo2
TjI2WUpuZV9AaHB9U0tQWFVCN0ZNZXJffjV8MXFnQ3tUcW5uQnV2MSRrcHA1T0J6JUAKejxteVN3
Kz9ZPl5qQVo0I1hBLX0qIVFzYnVPaFcoc084MzY2KCQ7KDFBPm1vKE8tJXgoaG4oPXlaO3l+Tkcj
UVgxCnpnSGtTaV5eOGN2NFRUU0w5dm41cVIoPl9EM2Ymb2MqandQZ0kjS0BRI0FzTClEO0JEJldi
MmQrSTFeSjduPn1ZWgp6YkNYbzlmT0BnIUBkV1lhMlYlfTspIXs8ekRjfChwdkpJYXhXN05kTyVP
NmY+ciZhT3JwSGt7b19SOW1RNDd1b2IKej9sPjl8bnxYM2BhZ3BeRztMd1hSNTwobHIrUjxjTDVq
VFEoP15EPGtSbyFIX1QjcD95M2R9XnRDWVYhOFJeTj99CnpDKiVYbTlMZWY+ajdobHItP2pIbHB8
d2ZBJl5uLXM7PCF6JHFEMXhQcSE4S1ExfX5kdXB3fkJNMWdzfkBBbztDcQp6d1JnVXwyXmR9Ti1n
VjtAYVlrdThJJX18PGw2UU0/PWR+RllwYkdGSDkmdk5nS1oqU3ljSVN8bWN1T1I/bCZDT3cKenN7
emQ1em1lbHhxTjFEUXl7fVBnQj11I2Z6SU5Qa0Iwb04qY2szdmArMXshWVhQfntFVkk3VnFoKn51
YVdfflVDCnpsUjMzUlowNUhoa0MtMWVJcCktQFleeXZjLXxSJSEqOWR3N25mVyl5amNISVlmNnI9
YUN0KFVoaS1GSm0ybntfKQp6JXt1bEJVWFJgMjw+bHh9ZUdtU21SSj41b3RrQCgrcGpzUHE7NGha
NkZJS2wje254UCFBTCEyOF9fQVlmbGBWZ3sKemxSUmFBUnxWbXkxX2BeYmJqWnJ6QXtRJGxZZWpJ
WWReQSRaPlcmanluTT1LYFRsNHdWKTN3QGQxSmNgLTUtQ0dKCnp4cV5AOF8oITxaRjJxbGhfWn19
bnI/UyY1KnorRkApdihaMUVJcztIbX0hMX5NVEwhajFAYyRaSExSfVYoPTtebwp6ZFVwZnk/bz55
em9sX3NpPDxVRUI9dChlZUJ6Z0peV1l3c0hDRzkzNHMkZClAcXFId2deeVpNe2BeakohOTt0cjYK
emVvVWF5JiQrQnlHfE5eX3pvQUhedFlJZz5oYVl3fEB8YzMxXncoblVkN2soWW1FSjc2Vlk3OSso
QyhfJDsxTXNVCnpoaU5pK0I1Z1NyRGp8OT48QD82UiY4emJtOGJyP0MtTm4xY2soKzxOSyU3KTZ2
LXdXcTQ9TV9UYnQxOTR6VSp5Rgp6aDxvdDxIQldub3hCJTFrOShNMG88TmcpUmdIUygjP2VkRVFC
IV58RmstXyhhYGJVQkxBSypofmF6fiFfeHU9VDQKejZHNUstYVhKb3RIUWxFQzhDVTV8UnlNUnVR
a1hFKT9edjYoaT1NdSk9JF5vJTAheXM1R1ZSYVhaMlMySDRJODNMCnpxKWJgfFB4eyg4OVczMnpx
NHNxekgrQkFLUDl1YURFcEQ4SUlBOUQtSDQ1QyVWVD9KSiNNYStCQGk5TVBkRi0jIwp6TnhGNVR1
fWl6X2h6JFNLWjBfXyYhWXAxeWFkVnpvY0BFeStCZWZKQ3RDU1ZkNShKeSg8QzZJY0NXfURtSHdD
OFQKelJ7a3F2UkA/M3J6TEcyJFpkY3gtNXZGUkBkJFEjREQrfntkaEBtZF9lYEJCNipVWTZSKzRe
I1UlejRsdHg5QiU7CnpOVjh6KntHY0dNO2dxMlJ0eWRqe0gwUzBwI3o8NiU3bTMhJXs/TVF1YTxg
QGU1Yk90YmQhRWM/R151eGY0Z3hjSQp6LUY3U1RZaX52RGJtdkNaM05EY2ZIajg+QzlGVjZqZDF9
KHBTd3JnR2sqUVo5UnI0KTYhc1NrVFVxYnhiYWVhMnUKendTYCR5b3NRKWViJW9fdkpPKiFBYGRS
O1k0az4mcVl6dWEtWk5FPDNGRT1JK2VTVTt4IXB0XkEzNT5vSW9QYEpxCnpabH4pckM2MEwra1N4
QWdvUEV8ckdqVkA/MkF5KlhiPSRjYGNfTDM9RXpoakJVRD1oMV80JWVCQ2ZsaiZFSFptTwp6c3sx
YnxOdXg2KztLI0tCPVRrX3xpa3x7KjAxZGskOUthNmBjUlU9TWNZaU4hay1hKTJQRDMxaDxjVHMl
a1Bob1oKek8pMndfVDktOHcyTk0mJnEycGw0XktxfUNQZT1sOWhxJFc0IXQ7SkQlfFVKKDI4dkRi
TSpMPlZGN2JXX1h7YjE0CnpHTncodz5FX1M5YDw7eFFsUGBAc2Q+Nm0zbjIpTCkwcCFYUnJEIzI1
aUlrUkRzKTF1ak4lU3N5dyM2MnZkdiZBbAp6Y2RqLVlsIzYrQGEwV3NjVTwzYGd2VyQydy0oXkhm
RVJ5eHNOc3E2bUswZDg7PzBMU2VOaCVORWUwQllKNElMKGEKeiRXWG5kKVBCVzxBVGt7eSUyUzlH
UGEycXlKVyReSkpfY29fWFAxbTlFfWopUT9ebCQjKk1EeFA1fG1ZMXpjcTN5CnpiPUB6eUNYdWd3
ZHtOang/aTI3ait6WE80KlY+fVplLXpCUXgpSHlud0xgTmooITl0KTU0ZE87elRWfi1PIztVOwp6
TXdwMFBVLXVVTD8jIzhMLSkmdm1ibkFtbiNAJmE+dj1jUH1FVVFKVndhRHc5VjwtSXdZdGlUOXco
VE1lYTIlRHkKenxBNDAkTjV1b2lRRV5fe1MxLWlgcTVsdHRwZz5TRDRwYWZoZmxCfDZQRT4hPnNo
V2tvRW1aaGcrfjBIcDwzS1RACno5amskcU1DPTAmQmJrXmZSbzRmMzhKfmlXQ3x4R1AwYHdaM0Yj
azhnKklkTlkkR0YtQXg4XjxEckJeajI4WGI2cwp6Unw7VnZhciU8fFRaS34+MzBrRDMpVyRBRCMo
dHRgI0B4N1E4T1lhcFRfSnlNMXZUP2xieC0rX0YoSkYleVMwTyQKenBTI2x9dyowaj5ifU0zZTs0
ST57cE1NPnMlYD9mU0FFX1FiYEFuPl9WIWtpfSQ5d01OOShmVTF1SkdtME1pN2hLCnpBNWwwZTF3
VmNeJHFsPzVnbT44RXZCcFNhV2Y1VElnM1pTYnVKaHA7YSUoWitrY3tjZHYxUHVYJGUyR0FOP0pm
OAp6V0tOZ1M8KE0yRk5VYFJ4ZEJHfWY9UzFyblEqZVIxMnFGX0MmJnBuQGB5JUN+TDleUV9aOWxo
Jkc9WHZHQyE0MTAKenluKTVvPSl4MmlKWSteP15FTGpudEhIYH1LKXphP0k9fHYhJGhMMG4mR3p5
cHphTHdOZGVNPU9qV3wtLT1tUl9qCnp5dD9+VnhfXzlCRXZjaEw/OWh1VW9iLTVuK3IxPzx4QGNn
fTVhfFZ8RmNGUU8qZUlwd1pFbn5WR0xlcXZTQFdrMgp6KSErRDMtO3s0QE9PKWIrYlFPIz0tRStC
ZU9AZiEzPGlUMG1iMnBiMzg4e0dJUmFyamRuVGklQD80cXd5I3E2MFkKenFpQXx7dDZvNDlFTTE4
SiZ3OERBI3dRRERzRndOJEhHKk1UTDIxQlFqKVlSYFc1TDtaZk1NPCpyTD1GSWd8MGJKCnpUOXI3
RmxCTExeclYlMVVPITN8R0RFYU0hakhQTHI/NVFCdUNDIVcpPmRyZl5SQ2BgN1lSWVooSz5pZTA+
cEpkXgp6SldfSHslKV5jITY+bHw5UDg/Yz1qKEI1N1lKejg/WHlRekU5dUdhfWRWMFBUcDMhO3Ah
U0YpfXQtaT5DPEVkSCsKek1LQVNuViMhJlNXZmR9MGRsalhzeVFmenNANmkwK2RxU0hKTH5GN35v
dHwkSHdmK0YqMGpDSyp3NVdvRkBROWhOCnpobGslU3toNkM1N0NJMl81Ujk7ZjM7cC0xPkRVbipV
XmVvR2pocW87KlIqJGtWRTAxSj5USlFSc3Y5b3omayEzegp6a1dUOyowUWUwTTNVQ0x3MEQ9Sitm
R2ZjRnZKVXxgVWRzS18zNHRUdkh7ZiYtWThXRkdoP15QIVg1O3k9Rlp1RHMKZmZyV2swJU0oT0du
VE1OPGgmcUB5TGREVV8mTWNBZj98MWtNZWpVTm8KCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L2NlcnQva2V5LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmYWU4NTgzMThmMjliYTZiNDYyM2JkNWZiYzRhMDhjZTczZDkwMzEx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvY2VydC9rZXkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLS0tLS1C
RUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQ1hnSUJBQUtCZ1FEZUVNNDZXZ1NrSENtVFhD
T0NHdklHQWVZcnBBL2RkMGwyaVFPaUlkNEVkY2JpM2ZzMQotSnpxaWtvNFNZaXMrSC9SNDM3YVV5
eWZXeTlZMzExd0k4QWsreWM0a0xRREozMHJnbWVYN0k2bmkxc2s5bHZvQgotaU41YWliRFBBMmR2
QklZZDcySWNWYWtIbWk1bUtuTmJUR0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQgotQW9H
QkFJdUN1VjFWY25iN3JtOEN3dGdaUDVYZ21ZOHZTanhUbGRhZmE2WHZhd0VZVVRQMFM3N3YvMWxs
ZzFZdgotVUlWK0krUFFnRzlvVm9ZT2wyMkxvaW1IUy9aM2UxZnNvdDV0RFlzekdlOC9Ha3N0NG9h
UmVTb3h2QlVhNldYcAotUVNvN1lGQ2FqdUh0RStXL2d6RitVSGJkenpYSURqUVozMTRMTkY1dCs0
VW5zRVBCQWtFQStnaXJJbXFXb00ydAotM1VSOGY4b2VrRVJ3c21FTWY5REg1WXBINGN2VW52SStr
d2VzQy9yMlU4U2hvKytmeUVNVU5tN2FJWEdxTkxnYQotb2dBTSs0Tlg0UUpCQU9OZFN4U2F5MjJl
Z1RHTm9JaExuZGxqV2t1T3QvOUZXajJrbGYvNFF4RDRibE1KUTVPcQotUWRPR0FoN25WUWpwUExR
NUQ3Q0JWQUtwR00yQ0QrUUpCdHNDUUVQMmt6MzVweFB5bEczdXJjQzJtZlF4QmtrVwotWkNWaUJO
UDU4R3dKMGJPYXVUT1NCRXdGWFd1THFUdzhhRHd4TDQ5VU5tcWMwTjBmcGUyZkFlaGozVUVDUVFD
bQotRkgvRGpVOEx3N3liZGRqTnRtNlhYUHVZTmFneHozY2JrQjRCM0ZjaERsZUlVRHdNb1ZGME1X
OWJJNS81NG1WMQotUURrMXRVS29ydHh2UVpKYUFENEJBa0VBaEdPSFFxUGQ2YkJCb0ZCdnBhTHpQ
Sk14d0xLckIrV3RrcS9RbEM3MgotQ2xSaU1uMmc4U0FMaUlMM0JEZ0dYS2NLRS9XeTdqby9hZi9K
Q3pRL2NQcXQvQT09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmQ3MDNkODIxZWE1
YmFlZTE1NTYxMWVlODQ3ZjI3MGNiYTI2Zjc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9j
YWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9j
ZXJ0L2NsaWVudF9jZXJ0LnAxMgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
Y2xpZW50X2Zvcl90ZXN0aW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2Y4
MDVlZTk0ZTU0OTQ2OWVkODcwZGFlN2UwY2NmMjAyNmJlYWI3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2xpZW50X2Zvcl90ZXN0
aW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEwMCArMCwwIEBACi0jIS91c3IvYmluL2VudiBw
eXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0
cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0
eSBmb3IgdGVzdGluZy4KLQotVGhpcyBtb2R1bGUgY29udGFpbnMgaGVscGVyIG1ldGhvZHMgZm9y
IHBlcmZvcm1pbmcgaGFuZHNoYWtlLCBmcmFtZQotc2VuZGluZy9yZWNlaXZpbmcgYXMgYSBXZWJT
b2NrZXQgY2xpZW50LgotCi1UaGlzIGlzIGNvZGUgZm9yIHRlc3RpbmcgbW9kX3B5d2Vic29ja2V0
LiBLZWVwIHRoaXMgY29kZSBpbmRlcGVuZGVudCBmcm9tCi1tb2RfcHl3ZWJzb2NrZXQuIERvbid0
IGltcG9ydCBlLmcuIFN0cmVhbSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBmcmFtZSBmb3IKLXRlc3Rp
bmcuIFVzaW5nIHV0aWwuaGV4aWZ5LCBldGMuIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHByb3Rv
Y29sIHByb2Nlc3NpbmcKLWlzIGFsbG93ZWQuCi0KLU5vdGU6Ci1UaGlzIGNvZGUgaXMgZmFyIGZy
b20gcm9idXN0LCBlLmcuLCB3ZSBjdXQgY29ybmVycyBpbiBoYW5kc2hha2UuCi0iIiIKLQotCi1p
bXBvcnQgYmFzZTY0Ci1pbXBvcnQgZXJybm8KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWlt
cG9ydCByYW5kb20KLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVjdAotaW1w
b3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1ERUZBVUxUX1BPUlQgPSA4MAotREVGQVVMVF9T
RUNVUkVfUE9SVCA9IDQ0MwotCi0jIE9wY29kZXMgaW50cm9kdWNlZCBpbiBJRVRGIEh5QmkgMDEg
Zm9yIHRoZSBuZXcgZnJhbWluZyBmb3JtYXQKLU9QQ09ERV9DT05USU5VQVRJT04gPSAweDAKLU9Q
Q09ERV9DTE9TRSA9IDB4OAotT1BDT0RFX1BJTkcgPSAweDkKLU9QQ09ERV9QT05HID0gMHhhCi1P
UENPREVfVEVYVCA9IDB4MQotT1BDT0RFX0JJTkFSWSA9IDB4MgotCi0jIFN0cmluZ3MgdXNlZCBm
b3IgaGFuZHNoYWtlCi1fVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicK
LV9VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi1fQ09O
TkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0KLVdFQlNPQ0tFVF9B
Q0NFUFRfVVVJRCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCi0KLSMg
U3RhdHVzIGNvZGVzCi1TVEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi1TVEFUVVNfR09JTkdf
QVdBWSA9IDEwMDEKLVNUQVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIKLVNUQVRVU19VTlNVUFBP
UlRFRF9EQVRBID0gMTAwMwotU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCA9IDEwMDUKLVNUQVRV
U19BQk5PUk1BTF9DTE9TVVJFID0gMTAwNgotU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9E
QVRBID0gMTAwNwotU1RBVFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4Ci1TVEFUVVNfTUVTU0FH
RV9UT09fQklHID0gMTAwOQotU1RBVFVTX01BTkRBVE9SWV9FWFQgPSAxMDEwCi1TVEFUVVNfSU5U
RVJOQUxfRU5EUE9JTlRfRVJST1IgPSAxMDExCi1TVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUK
LQotIyBFeHRlbnNpb24gdG9rZW5zCi1fREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0
ZS1mcmFtZScKLSMgVE9ETyhiYXNoaSk6IFVwZGF0ZSBhZnRlciBtdXggaW1wbGVtZW50YXRpb24g
ZmluaXNoZWQuCi1fTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKLV9QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKLQotZGVmIF9tZXRob2Rf
bGluZShyZXNvdXJjZSk6Ci0gICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291
cmNlCi0KLQotZGVmIF9zZWNfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgotICAgIHJldHVybiAnU2Vj
LVdlYlNvY2tldC1PcmlnaW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIoKQotCi0KLWRlZiBfb3Jp
Z2luX2hlYWRlcihvcmlnaW4pOgotICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBz
dHJpbmcgIk9yaWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCi0gICAgIyBhbmQgdGhl
IC9vcmlnaW4vIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRz
Ly4KLSAgICByZXR1cm4gJ09yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCi0KLQotZGVm
IF9mb3JtYXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKLSAgICAjIDQuMSA5LiBM
ZXQgL2hvc3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCi0gICAgIyA0LjEgMTAuIEFwcGVuZCB0
aGUgL2hvc3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bwotICAgICMg
L2hvc3Rwb3J0LwotICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCi0gICAgIyA0LjEgMTEuIElm
IC9zZWN1cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8K
LSAgICAjIGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAw
M0EgQ09MT04gY2hhcmFjdGVyCi0gICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9w
b3J0LywgZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKLSAgICAjIHRvIC9ob3N0cG9y
dC8KLSAgICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9QT1JUKSBvcgotICAg
ICAgICAoc2VjdXJlIGFuZCBwb3J0ICE9IERFRkFVTFRfU0VDVVJFX1BPUlQpKToKLSAgICAgICAg
aG9zdHBvcnQgKz0gJzonICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24g
b2YgdGhlIHN0cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAgICMgY2hhcmFjdGVyLCBh
bmQgL2hvc3Rwb3J0LywgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICdIb3N0OiAlc1xyXG4nICUg
aG9zdHBvcnQKLQotCi0jIFRPRE8odHlvc2hpbm8pOiBEZWZpbmUgYSBiYXNlIGNsYXNzIGFuZCBt
b3ZlIHRoZXNlIHNoYXJlZCBtZXRob2RzIHRvIHRoYXQuCi0KLQotZGVmIHJlY2VpdmVfYnl0ZXMo
c29ja2V0LCBsZW5ndGgpOgotICAgIHJlY2VpdmVkX2J5dGVzID0gW10KLSAgICByZW1haW5pbmcg
PSBsZW5ndGgKLSAgICB3aGlsZSByZW1haW5pbmcgPiAwOgotICAgICAgICBuZXdfcmVjZWl2ZWRf
Ynl0ZXMgPSBzb2NrZXQucmVjdihyZW1haW5pbmcpCi0gICAgICAgIGlmIG5vdCBuZXdfcmVjZWl2
ZWRfYnl0ZXM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
J0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnCi0g
ICAgICAgICAgICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9ubHkgJWQg
Ynl0ZXMpJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWluaW5nKSkK
LSAgICAgICAgcmVjZWl2ZWRfYnl0ZXMuYXBwZW5kKG5ld19yZWNlaXZlZF9ieXRlcykKLSAgICAg
ICAgcmVtYWluaW5nIC09IGxlbihuZXdfcmVjZWl2ZWRfYnl0ZXMpCi0gICAgcmV0dXJuICcnLmpv
aW4ocmVjZWl2ZWRfYnl0ZXMpCi0KLQotIyBUT0RPKHR5b3NoaW5vKTogTm93IHRoZSBXZWJTb2Nr
ZXRIYW5kc2hha2UgY2xhc3MgZGl2ZXJ0cyB0aGVzZSBtZXRob2RzLiBXZQotIyBzaG91bGQgbW92
ZSB0byBIVFRQIHBhcnNlciBhcyBzcGVjaWZpZWQgaW4gUkZDIDY0NTUuIEZvciBIeUJpIDAwIGFu
ZAotIyBIaXhpZSA3NSwgcGFjayB0aGVzZSBtZXRob2RzIGFzIHNvbWUgcGFyc2VyIGNsYXNzLgot
Ci0KLWRlZiBfcmVhZF9maWVsZHMoc29ja2V0KToKLSAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMv
IGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCi0gICAgZmll
bGRzID0ge30KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBh
bmQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICBuYW1lID0gJycKLSAgICAg
ICAgdmFsdWUgPSAnJwotICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KLSAgICAgICAgbmFt
ZSA9IF9yZWFkX25hbWUoc29ja2V0KQotICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBicmVhawotICAgICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMKLSAgICAgICAgIyBUT0RP
KHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMu
Ci0gICAgICAgIGNoID0gX3NraXBfc3BhY2VzKHNvY2tldCkKLSAgICAgICAgIyA0LjEgMzYuIHJl
YWQgL3ZhbHVlLwotICAgICAgICB2YWx1ZSA9IF9yZWFkX3ZhbHVlKHNvY2tldCwgY2gpCi0gICAg
ICAgICMgNC4xIDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgY2ggPSBy
ZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBM
RiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAgICAg
ICAgICAgICAgICAnJXInICUgKGNoLCBuYW1lLCB2YWx1ZSkpCi0gICAgICAgICMgNC4xIDM4LiBh
cHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKLSAg
ICAgICAgIyBnaXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUg
L25hbWUvIGJ5dGUKLSAgICAgICAgIyBhcnJheSBhcyBhIFVURi04IHN0cmVhbSBhbmQgdGhlIHZh
bHVlIGdpdmVuIGJ5IHRoZSBzdHJpbmcKLSAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRp
bmcgdGhlIC92YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKLSAgICAgICAgIyBzdHJl
YW0uCi0gICAgICAgIGZpZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCi0g
ICAgICAgICMgNC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQotICAgIHJl
dHVybiBmaWVsZHMKLQotCi1kZWYgX3JlYWRfbmFtZShzb2NrZXQpOgotICAgICMgNC4xIDMzLiBs
ZXQgL25hbWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgbmFtZSA9ICcnCi0gICAgd2hpbGUg
VHJ1ZToKLSAgICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAg
ICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBpZiBjaCA9PSAnXHIn
OiAgIyAweDBECi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBlbGlmIGNoID09ICdc
bic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKLSAg
ICAgICAgZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKLSAgICAgICAgICAgIHJldHVybiBuYW1lCi0g
ICAgICAgIGVsaWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIHJhbmdlIDB4MzEgdG8gMHg1
QQotICAgICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCi0gICAgICAgICAgICBuYW1l
ICs9IGNoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuYW1lICs9IGNoCi0KLQotZGVmIF9z
a2lwX3NwYWNlcyhzb2NrZXQpOgotICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBz
ZXJ2ZXIKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0
LCAxKQotICAgICAgICBpZiBjaCA9PSAnICc6ICAjIDB4MjAKLSAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgIHJldHVybiBjaAotCi0KLWRlZiBfcmVhZF92YWx1ZShzb2NrZXQsIGNoKToKLSAg
ICAjIDQuMSAzMy4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICB2YWx1ZSA9
ICcnCi0gICAgIyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgotICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZQotICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcg
aGVhZGVyIHZhbHVlICVyJyAlIHZhbHVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdmFs
dWUgKz0gY2gKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLQotCi1kZWYg
cmVhZF9mcmFtZV9oZWFkZXIoc29ja2V0KToKLSAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMo
c29ja2V0LCAyKQotCi0gICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkKLSAgICBmaW4g
PSAoZmlyc3RfYnl0ZSA+PiA3KSAmIDEKLSAgICByc3YxID0gKGZpcnN0X2J5dGUgPj4gNikgJiAx
Ci0gICAgcnN2MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQotICAgIHJzdjMgPSAoZmlyc3RfYnl0
ZSA+PiA0KSAmIDEKLSAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCi0KLSAgICBzZWNvbmRf
Ynl0ZSA9IG9yZChyZWNlaXZlZFsxXSkKLSAgICBtYXNrID0gKHNlY29uZF9ieXRlID4+IDcpICYg
MQotICAgIHBheWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCi0KLSAgICBpZiBtYXNr
ICE9IDA6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICdNYXNrIGJpdCBt
dXN0IGJlIDAgZm9yIGZyYW1lcyBjb21pbmcgZnJvbSBzZXJ2ZXInKQotCi0gICAgaWYgcGF5bG9h
ZF9sZW5ndGggPT0gMTI3OgotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2Vp
dmVfYnl0ZXMoc29ja2V0LCA4KQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBh
Y2soCi0gICAgICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KLSAgICAg
ICAgaWYgcGF5bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQotICAgIGVs
aWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgotICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0
aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAyKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0
cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClb
MF0KLQotICAgIHJldHVybiBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9s
ZW5ndGgKLQotCi1jbGFzcyBfVExTU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiV3JhcHBlciBmb3Ig
YSBUTFMgY29ubmVjdGlvbi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdfc29ja2V0
KToKLSAgICAgICAgc2VsZi5fc3NsID0gc29ja2V0LnNzbChyYXdfc29ja2V0KQotCi0gICAgZGVm
IHNlbmQoc2VsZiwgYnl0ZXMpOgotICAgICAgICByZXR1cm4gc2VsZi5fc3NsLndyaXRlKGJ5dGVz
KQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9z
c2wucmVhZChzaXplKQotCi0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICAjIE5vdGhpbmcg
dG8gZG8uCi0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBIdHRwU3RhdHVzRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB1bmV4cGVj
dGVkIGh0dHAgc3RhdHVzIGNvZGUgd2FzCi0gICAgcmVjZWl2ZWQgYXMgYSByZXN1bHQgb2YgaGFu
ZHNoYWtlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cyk6
Ci0gICAgICAgIHN1cGVyKEh0dHBTdGF0dXNFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUp
Ci0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0KLQotY2xhc3MgV2ViU29ja2V0SGFuZHNo
YWtlKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUg
V2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Ziwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dl
cihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAgICBkZWYgaGFu
ZHNoYWtlKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCi0K
LSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVk
LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAg
ICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6
ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0
X2xpbmUpCi0KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgZmllbGRzLmFwcGVuZChfVVBH
UkFERV9IRUFERVIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQot
Ci0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLQotICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb24gaXMgODoKLSAgICAgICAgICAgIGZpZWxkcy5hcHBl
bmQoX3NlY19vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9u
cy5vcmlnaW4pKQotCi0gICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCi0gICAg
ICAgIGtleSA9IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXk6ICVzICglcyknLCBr
ZXksIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1Nl
Yy1XZWJTb2NrZXQtS2V5OiAlc1xyXG4nICUga2V5KQotCi0gICAgICAgIGZpZWxkcy5hcHBlbmQo
J1NlYy1XZWJTb2NrZXQtVmVyc2lvbjogJWRcclxuJyAlIHNlbGYuX29wdGlvbnMudmVyc2lvbikK
LQotICAgICAgICAjIFNldHRpbmcgdXAgZXh0ZW5zaW9ucy4KLSAgICAgICAgaWYgbGVuKHNlbGYu
X29wdGlvbnMuZXh0ZW5zaW9ucykgPiAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zOiAlc1xyXG4nICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgJywgJy5qb2luKHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucykpCi0KLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgZmll
bGRzKQotCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9z
b2NrZXQuc2VuZGFsbChmaWVsZCkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4n
KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJl
cXVlc3QnKQotCi0gICAgICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBm
aWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICBi
cmVhawotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVz
cG9uc2UtTGluZTogJXInLCBmaWVsZCkKLQotICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBu
b3QgZmllbGQuZW5kc3dpdGgoJ1xyXG4nKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
V3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBtID0gcmUubWF0Y2goJ1te
IF0qIChbXiBdKikgLionLCBmaWVsZCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2Rl
IGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgY29kZSA9IG0uZ3Jv
dXAoMSkKLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0
dXMgY29kZSAlciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAg
ICAgICAgICAgICAgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKLSAg
ICAgICAgICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0V4
cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTog
JwotICAgICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCi0gICAg
ICAgIGZpZWxkcyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCi0gICAgICAgIGNoID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4
MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kOiAl
cicgJSBjaCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtl
IHJlc3BvbnNlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgICMgQ2hlY2sgL2ZpZWxk
cy8KLSAgICAgICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBVcGdyYWRlIGhlYWRl
cnMgZm91bmQ6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQotICAgICAgICBpZiBsZW4oZmllbGRz
Wydjb25uZWN0aW9uJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3VuZDogJXMnICUgZmll
bGRzWydjb25uZWN0aW9uJ10pCi0gICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICd3
ZWJzb2NrZXQnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUn
XVswXSkKLSAgICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBn
cmFkZSc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAgICAgICAgICAg
ZmllbGRzWydjb25uZWN0aW9uJ11bMF0pCi0KLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdl
YnNvY2tldC1hY2NlcHQnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVycyBmb3Vu
ZDogJXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10p
Ci0KLSAgICAgICAgYWNjZXB0ID0gZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddWzBdCi0K
LSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkZWNvZGVkX2Fj
Y2VwdCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9y
LCBlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBh
Y2NlcHQpCi0KLSAgICAgICAgaWYgbGVuKGRlY29kZWRfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRGVjb2RlZCB2
YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFjY2VwdCBpcyBub3QgMjAtYnl0ZSBsb25nJykKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0FjdHVhbCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIg
KCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGRl
Y29kZWRfYWNjZXB0KSkKLQotICAgICAgICBvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQgPSB1dGls
LnNoYTFfaGFzaCgKLSAgICAgICAgICAgIGtleSArIFdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGln
ZXN0KCkKLSAgICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5h
bF9leHBlY3RlZF9hY2NlcHQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHBlY3Rl
ZCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9hY2NlcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmhl
eGlmeShvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGlmIGFjY2VwdCAhPSBl
eHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0ludmFsaWQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyOiAlciAoZXhwZWN0ZWQp
ICE9ICVyICcKLSAgICAgICAgICAgICAgICAnKGFjdHVhbCknICUgKGFjY2VwdCwgZXhwZWN0ZWRf
YWNjZXB0KSkKLQotICAgICAgICBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMuZ2V0
KCdzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMnKQotICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25z
ID0gW10KLSAgICAgICAgaWYgc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25z
KAotICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVy
KSkKLQotICAgICAgICAjIFNjYW4gYWNjZXB0ZWQgZXh0ZW5zaW9uIGxpc3QgdG8gY2hlY2sgaWYg
dGhlcmUgaXMgYW55IHVucmVjb2duaXplZAotICAgICAgICAjIGV4dGVuc2lvbnMgb3IgZXh0ZW5z
aW9ucyB3ZSBkaWRuJ3QgcmVxdWVzdCBpbiBpdC4gVGhlbiwgZm9yCi0gICAgICAgICMgZXh0ZW5z
aW9ucyB3ZSByZXF1ZXN0LCBwYXJzZSB0aGVtIGFuZCBzdG9yZSBwYXJhbWV0ZXJzLiBUaGV5IHdp
bGwgYmUKLSAgICAgICAgIyB1c2VkIGxhdGVyIGJ5IGVhY2ggZXh0ZW5zaW9uLgotICAgICAgICBk
ZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgbXV4X2FjY2VwdGVkID0gRmFs
c2UKLSAgICAgICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25zOgotICAgICAg
ICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfREVGTEFURV9GUkFNRV9FWFRFTlNJT046Ci0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAg
ICAgICAgICAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX01V
WF9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfbXV4Ogot
ICAgICAgICAgICAgICAgICAgICBtdXhfYWNjZXB0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBleHRlbnNpb24ubmFtZSgpID09IF9QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGNoZWNrZXIgPSBzZWxmLl9v
cHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZQotICAgICAgICAgICAgICAgIGlmIGNoZWNr
ZXI6Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrZXIoZXh0ZW5zaW9uKQotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIHVucmVjb2duaXplZCBleHRlbnNpb246ICVzJyAlIGV4dGVuc2lv
bi5uYW1lKCkpCi0KLSAgICAgICAgIyBMZXQgYWxsIGV4dGVuc2lvbnMgY2hlY2sgdGhlIHJlc3Bv
bnNlIGZvciBleHRlbnNpb24gcmVxdWVzdC4KLQotICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51
c2VfZGVmbGF0ZV9mcmFtZSBhbmQKLSAgICAgICAgICAgIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2Vw
dGVkKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2Nl
cHRlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXggYW5kIG5vdCBtdXhfYWNj
ZXB0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGV4dGVuc2lvbiBub3QgYWNj
ZXB0ZWQnICUgX01VWF9FWFRFTlNJT04pCi0KLQotY2xhc3MgV2ViU29ja2V0SHliaTAwSGFuZHNo
YWtlKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUg
V2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBvcHRpb25zLCBkcmFmdF9maWVsZCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2RyYWZ0X2ZpZWxkID0gZHJhZnRfZmllbGQKLQotICAg
IGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNv
Y2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFr
ZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAot
Ci0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAgICAgICByZXF1ZXN0X2xp
bmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVz
dF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0gICAg
ICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCi0g
ICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdy
YWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdS
QURFX0hFQURFUl9ISVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29u
bmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NP
Tk5FQ1RJT05fSEVBREVSKQotICAgICAgICAjIDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8g
L2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9v
cHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkK
LSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAg
ICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKLSAg
ICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRv
IC9maWVsZHMvLgotICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8g
L2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxu
PiB0byAvZmllbGRzLy4KLSAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVy
YXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1i
ZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJT
b2NrZXQtS2V5MTogJXNcclxuJyAlIGtleTEpCi0gICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIg
PSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBw
ZW5kKCdTZWMtV2ViU29ja2V0LUtleTI6ICVzXHJcbicgJSBrZXkyKQotCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRHJhZnQ6ICVzXHJcbicgJSBzZWxmLl9kcmFmdF9maWVs
ZCkKLQotICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBh
IHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRG
LTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAg
IyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAg
IHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09w
ZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVsZHMpCi0gICAgICAgIGZv
ciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVs
ZCkKLQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJ
QUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENS
TEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCi0gICAgICAgICMgNC4x
IDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5
dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIg
ZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICBzZWxmLl9rZXkzID0gc2Vs
Zi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUg
c2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQotICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYu
X2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAgICAgICMgNC4xIDI4
LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24K
LSAgICAgICAgIyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJl
IHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcKLSAgICAgICAgIyB0aGUgMHgwQSBieXRlcy4KLSAgICAg
ICAgZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSByZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAg
ICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcics
IGZpZWxkKQotCi0gICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0
ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQg
YW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRh
aW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5l
Y3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihm
aWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAgIG0g
PSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAgICAgICBpZiBtIGlzIE5v
bmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNvZGUgZm91bmQgaW4gc3RhdHVz
IGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUg
c3Vic3RyaW5nIG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUKLSAgICAgICAgIyBieXRl
IGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3Jl
IHRoZQotICAgICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCi0gICAgICAgIGNvZGUgPSBtLmdyb3Vw
KDEpCi0gICAgICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcs
IG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMgaW4KLSAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0
aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldAotICAgICAgICAj
IGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBub3QgcmUubWF0
Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdp
dCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQot
ICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEw
MSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAgICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNv
ZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIg
aW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwg
aW50KGNvZGUpKQotICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRz
LwotICAgICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29ja2V0KQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczog
JXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KLSAg
ICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0
ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCi0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkK
LSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAgICAgIGlmIGxlbihmaWVsZHNb
J3VwZ3JhZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3Vw
Z3JhZGUnXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25u
ZWN0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQotICAgICAg
ICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LW9yaWdpbiddKSAhPSAxOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29j
a2V0LU9yaWdpbiBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1sn
c2VjLXNlYnNvY2tldC1vcmlnaW4nXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNv
Y2tldC1sb2NhdGlvbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUxvY2F0aW9uIGhlYWRlcnMgZm91
bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0LWxvY2F0aW9u
J10pCi0gICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50
cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4
YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBm
YWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAg
ICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICdXZWJTb2NrZXQnOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVh
ZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKLSAgICAgICAgIyBpZiB0aGUg
ZW50cnkncyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNv
bnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCi0gICAgICAg
ICMgIHRvIHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25u
ZWN0aW9uIGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgZmll
bGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6Ci0gICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBo
ZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11b
MF0pCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2ll
LCAuLgotCi0gICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVu
YXRpb24gb2YgL251bWJlcl8xLywKLSAgICAgICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFu
IDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKLSAgICAgICAgIyBhcyBiaWcg
ZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4g
dGhlCi0gICAgICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhlIHdpcmUuCi0gICAgICAg
IGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGNo
YWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIyKQotICAgICAgICBjaGFs
bGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxs
ZW5nZSkpCi0KLSAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmlu
Z2VycHJpbnQgb2YgL2NoYWxsZW5nZS8gYXMgYQotICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJp
dCBzdHJpbmcuCi0gICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRp
Z2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdFeHBlY3Rl
ZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAotICAgICAgICAgICAgZXhwZWN0ZWQsIHV0
aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQotICAgICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5
dGVzIGZyb20gdGhlIHNlcnZlci4KLSAgICAgICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRl
cy4KLSAgICAgICAgcmVwbHkgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJl
c3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAgICAgICAj
IDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRo
ZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAl
ciAoZXhwZWN0ZWQpICE9ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGV4cGVjdGVk
LCByZXBseSkpCi0gICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlz
IGVzdGFibGlzaGVkKi4KLQotICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2Vs
Zik6Ci0gICAgICAgICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2Vy
IGZyb20gMSB0byAxMiBpbmNsdXNpdmUuCi0gICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50
KDEsIDEyKQotICAgICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50
ZWdlciBub3QgZ3JlYXRlciB0aGFuCi0gICAgICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBi
eSAvc3BhY2VzX24vLgotICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCi0gICAg
ICAgICMgNC4xIDE4LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0
byAvbWF4X24vCi0gICAgICAgICMgaW5jbHVzaXZlLgotICAgICAgICBudW1iZXIgPSByYW5kb20u
cmFuZGludCgwLCBtYXhudW0pCi0gICAgICAgICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUg
dGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAotICAgICAgICAjIC9zcGFj
ZXNfbi8gdG9nZXRoZXIuCi0gICAgICAgIHByb2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKLSAgICAg
ICAgIyA0LjEgMjAuIGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1
Y3Rfbi8sIGV4cHJlc3NlZAotICAgICAgICAjIGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFs
cyBpbiB0aGUgcmFuZ2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCi0gICAgICAgICMgVSswMDM5
IERJR0lUIE5JTkUgKDkpLgotICAgICAgICBrZXkgPSBzdHIocHJvZHVjdCkKLSAgICAgICAgIyA0
LjEgMjEuIGluc2VydCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZy
b20gdGhlCi0gICAgICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUr
MDA3RSBpbnRvIC9rZXlfbi8gYXQgcmFuZG9tCi0gICAgICAgICMgcG9zaXRpb25zLgotICAgICAg
ICBhdmFpbGFibGVfY2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAw
eDdlICsgMSkKLSAgICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICBmb3Ig
XyBpbiB4cmFuZ2Uobik6Ci0gICAgICAgICAgICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxl
X2NoYXJzKQotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCi0g
ICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtleVtwb3M6XQotICAgICAg
ICAjIDQuMSAyMi4gaW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50
byAva2V5X24vIGF0Ci0gICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0
IG9yIGVuZCBvZiB0aGUgc3RyaW5nLgotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToK
LSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihrZXkpIC0gMSkKLSAgICAg
ICAgICAgIGtleSA9IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0KLSAgICAgICAgcmV0dXJu
IG51bWJlciwga2V5Ci0KLSAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2VsZik6Ci0gICAgICAgICMg
NC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9t
IGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVn
ZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICByZXR1cm4gJycuam9p
bihbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCi0KLQot
Y2xhc3MgV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIldlYlNvY2tl
dCBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciBJRVRGIEhpeGllIDc1LiIiIgotCi0gICAgX0VYUEVD
VEVEX1JFU1BPTlNFID0gKAotICAgICAgICAnSFRUUC8xLjEgMTAxIFdlYiBTb2NrZXQgUHJvdG9j
b2wgSGFuZHNoYWtlXHJcbicgKwotICAgICAgICBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArCi0g
ICAgICAgIF9DT05ORUNUSU9OX0hFQURFUikKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRp
b25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAgIGRlZiBfc2tpcF9oZWFk
ZXJzKHNlbGYpOgotICAgICAgICB0ZXJtaW5hdG9yID0gJ1xyXG5cclxuJwotICAgICAgICBwb3Mg
PSAwCi0gICAgICAgIHdoaWxlIHBvcyA8IGxlbih0ZXJtaW5hdG9yKToKLSAgICAgICAgICAgIHJl
Y2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAgICBpZiBy
ZWNlaXZlZCA9PSB0ZXJtaW5hdG9yW3Bvc106Ci0gICAgICAgICAgICAgICAgcG9zICs9IDEKLSAg
ICAgICAgICAgIGVsaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvclswXToKLSAgICAgICAgICAgICAg
ICBwb3MgPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBvcyA9IDAKLQot
ICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0g
c29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlv
bnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hh
a2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0
LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGhlYWRlcnMgPSBfVVBHUkFERV9IRUFE
RVJfSElYSUU3NSArIF9DT05ORUNUSU9OX0hFQURFUgotICAgICAgICBoZWFkZXJzICs9IF9mb3Jt
YXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMudXNlX3RscykKLSAgICAgICAgaGVhZGVycyArPSBfb3JpZ2luX2hlYWRlcihzZWxm
Ll9vcHRpb25zLm9yaWdpbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhh
bmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgaGVhZGVycykKLSAgICAgICAgc2VsZi5fc29j
a2V0LnNlbmRhbGwoaGVhZGVycykKLQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJc
bicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2Ug
cmVxdWVzdCcpCi0KLSAgICAgICAgZm9yIGV4cGVjdGVkX2NoYXIgaW4gV2ViU29ja2V0SGl4aWU3
NUhhbmRzaGFrZS5fRVhQRUNURURfUkVTUE9OU0U6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHJl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY2hh
ciAhPSByZWNlaXZlZDoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0hhbmRzaGFr
ZSBmYWlsdXJlJykKLSAgICAgICAgIyBXZSBjdXQgY29ybmVycyBhbmQgc2tpcCBvdGhlciBoZWFk
ZXJzLgotICAgICAgICBzZWxmLl9za2lwX2hlYWRlcnMoKQotCi0KLWNsYXNzIFdlYlNvY2tldFN0
cmVhbShvYmplY3QpOgotICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBw
cm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwg
aGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCi0gICAgICAg
IHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGFw
cGxpY2F0aW9uIGRhdGEgcGFydCBvZiBkYXRhIGZyYW1lcy4KLSAgICAgICAgc2VsZi5fb3V0Z29p
bmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0
ZXIgPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZs
YXRlX2ZyYW1lOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gKAot
ICAgICAgICAgICAgICAgIHV0aWwuX1JGQzE5NzlEZWZsYXRlcihOb25lLCBGYWxzZSkpCi0gICAg
ICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0
ZXIoKQotCi0gICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9tYXNr
X2h5Ymkoc2VsZiwgcyk6Ci0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IG9zLnVyYW5kb20gZG9l
cyBvcGVuL3JlYWQvY2xvc2UgZm9yIGV2ZXJ5IGNhbGwuIElmCi0gICAgICAgICMgcGVyZm9ybWFu
Y2UgbWF0dGVycywgY2hhbmdlIHRoaXMgdG8gc29tZSBsaWJyYXJ5IGNhbGwgdGhhdCBnZW5lcmF0
ZXMKLSAgICAgICAgIyBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNldWRvIHJhbmRvbSBudW1i
ZXIgc2VxdWVuY2UuCi0gICAgICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCi0gICAg
ICAgIHJlc3VsdCA9IFttYXNraW5nX25vbmNlXQotICAgICAgICBjb3VudCA9IDAKLSAgICAgICAg
Zm9yIGMgaW4gczoKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hyKG9yZChjKSBeIG9yZCht
YXNraW5nX25vbmNlW2NvdW50XSkpKQotICAgICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAl
IGxlbihtYXNraW5nX25vbmNlKQotICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCi0KLSAg
ICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToK
LSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgc2VsZi5fbWFza19oeWJpKGJv
ZHkpKQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCBmcmFtZV90eXBlLCBlbmQ9
VHJ1ZSwgbWFzaz1UcnVlLAotICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9
MCk6Ci0gICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVy
KHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2VsZi5fZnJhZ21lbnRlZDoKLSAgICAgICAgICAgIG9w
Y29kZSA9IE9QQ09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9w
Y29kZSA9IGZyYW1lX3R5cGUKLQotICAgICAgICBpZiBlbmQ6Ci0gICAgICAgICAgICBzZWxmLl9m
cmFnbWVudGVkID0gRmFsc2UKLSAgICAgICAgICAgIGZpbiA9IDEKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBUcnVlCi0gICAgICAgICAgICBmaW4gPSAwCi0K
LSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgot
ICAgICAgICAgICAgcnN2MSA9IDEKLQotICAgICAgICBpZiBtYXNrOgotICAgICAgICAgICAgbWFz
a19iaXQgPSAxIDw8IDcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1hc2tfYml0ID0gMAot
Ci0gICAgICAgIGhlYWRlciA9IGNocihmaW4gPDwgNyB8IHJzdjEgPDwgNiB8IHJzdjIgPDwgNSB8
IHJzdjMgPDwgNCB8IG9wY29kZSkKLSAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9h
ZCkKLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPD0gMTI1OgotICAgICAgICAgICAgaGVhZGVy
ICs9IGNocihtYXNrX2JpdCB8IHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBlbGlmIHBheWxvYWRf
bGVuZ3RoIDwgMSA8PCAxNjoKLSAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAx
MjYpICsgc3RydWN0LnBhY2soJyFIJywgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGVsaWYgcGF5
bG9hZF9sZW5ndGggPCAxIDw8IDYzOgotICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2Jp
dCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEnLCBwYXlsb2FkX2xlbmd0aCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVG9vIGxvbmcgcGF5bG9hZCAoJWQgYnl0
ZSknICUgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBwYXls
b2FkID0gc2VsZi5fbWFza19oeWJpKHBheWxvYWQpCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5k
YWxsKGhlYWRlciArIHBheWxvYWQpCi0KLSAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgcGF5bG9h
ZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQs
IE9QQ09ERV9CSU5BUlksIGVuZCwgbWFzaykKLQotICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5
bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxv
YWQuZW5jb2RlKCd1dGYtOCcpLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQotCi0gICAgZGVmIF9h
c3NlcnRfcmVjZWl2ZV9kYXRhKHNlbGYsIHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3Yy
LCByc3YzKToKLSAgICAgICAgKGFjdHVhbF9maW4sIGFjdHVhbF9yc3YxLCBhY3R1YWxfcnN2Miwg
YWN0dWFsX3JzdjMsIGFjdHVhbF9vcGNvZGUsCi0gICAgICAgICBwYXlsb2FkX2xlbmd0aCkgPSBy
ZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAgaWYgYWN0dWFsX29wY29k
ZSAhPSBvcGNvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1VuZXhwZWN0ZWQgb3Bjb2RlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0g
ICAgICAgICAgICAgICAgKG9wY29kZSwgYWN0dWFsX29wY29kZSkpCi0KLSAgICAgICAgaWYgYWN0
dWFsX2ZpbiAhPSBmaW46Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1VuZXhwZWN0ZWQgZmluOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0g
ICAgICAgICAgICAgICAgKGZpbiwgYWN0dWFsX2ZpbikpCi0KLSAgICAgICAgaWYgcnN2MSBpcyBO
b25lOgotICAgICAgICAgICAgcnN2MSA9IDAKLSAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFr
ZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgICAgICByc3YxID0gMQot
Ci0gICAgICAgIGlmIHJzdjIgaXMgTm9uZToKLSAgICAgICAgICAgIHJzdjIgPSAwCi0KLSAgICAg
ICAgaWYgcnN2MyBpcyBOb25lOgotICAgICAgICAgICAgcnN2MyA9IDAKLQotICAgICAgICBpZiBh
Y3R1YWxfcnN2MSAhPSByc3YxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjE6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCkn
ICUKLSAgICAgICAgICAgICAgICAocnN2MSwgYWN0dWFsX3JzdjEpKQotCi0gICAgICAgIGlmIGFj
dHVhbF9yc3YyICE9IHJzdjI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MjogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScg
JQotICAgICAgICAgICAgICAgIChyc3YyLCBhY3R1YWxfcnN2MikpCi0KLSAgICAgICAgaWYgYWN0
dWFsX3JzdjMgIT0gcnN2MzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnVW5leHBlY3RlZCByc3YzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAl
Ci0gICAgICAgICAgICAgICAgKHJzdjMsIGFjdHVhbF9yc3YzKSkKLQotICAgICAgICByZWNlaXZl
ZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKLQotICAgICAg
ICBpZiBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICByZWNlaXZlZCA9IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocmVjZWl2ZWQp
Ci0KLSAgICAgICAgaWYgbGVuKHJlY2VpdmVkKSAhPSBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZCBs
ZW5ndGg6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAo
bGVuKHBheWxvYWQpLCBsZW4ocmVjZWl2ZWQpKSkKLQotICAgICAgICBpZiBwYXlsb2FkICE9IHJl
Y2VpdmVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdV
bmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAg
ICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2ZWQpKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZl
X2JpbmFyeShzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25l
KToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXlsb2FkLCBvcGNvZGUsIGZp
biwgcnN2MSwgcnN2MiwgcnN2MykKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYs
IHBheWxvYWQsIG9wY29kZT1PUENPREVfVEVYVCwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnN2MT1Ob25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6Ci0gICAgICAgIHNlbGYu
X2Fzc2VydF9yZWNlaXZlX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04JyksIG9wY29kZSwgZmlu
LCByc3YxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjIsIHJzdjMpCi0K
LSAgICBkZWYgX2J1aWxkX2Nsb3NlX2ZyYW1lKHNlbGYsIGNvZGUsIHJlYXNvbiwgbWFzayk6Ci0g
ICAgICAgIGZyYW1lID0gY2hyKDEgPDwgNyB8IE9QQ09ERV9DTE9TRSkKLQotICAgICAgICBpZiBj
b2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNv
ZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
Ym9keSA9ICcnCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBmcmFtZSArPSBjaHIoMSA8
PCA3IHwgbGVuKGJvZHkpKSArIHNlbGYuX21hc2tfaHliaShib2R5KQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgZnJhbWUgKz0gY2hyKGxlbihib2R5KSkgKyBib2R5Ci0gICAgICAgIHJldHVy
biBmcmFtZQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoCi0gICAgICAgICAgICBzZWxmLl9idWlsZF9jbG9zZV9m
cmFtZShjb2RlLCByZWFzb24sIFRydWUpKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3Nl
KHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIGV4cGVjdGVkX2ZyYW1lID0gc2VsZi5fYnVp
bGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29uLCBGYWxzZSkKLSAgICAgICAgYWN0dWFsX2ZyYW1l
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihleHBlY3RlZF9mcmFtZSkpCi0gICAg
ICAgIGlmIGFjdHVhbF9mcmFtZSAhPSBleHBlY3RlZF9mcmFtZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBjbG9zZSBmcmFtZTogJXIg
KGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChleHBlY3RlZF9m
cmFtZSwgYWN0dWFsX2ZyYW1lKSkKLQotCi1jbGFzcyBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KG9i
amVjdCk6Ci0gICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29s
IHZlcnNpb24gSGl4aWUgNzUgYW5kIEh5QmkgMDAuCi0gICAgIiIiCi0KLSAgICBfQ0xPU0VfRlJB
TUUgPSAnXHhmZlx4MDAnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCB1bnVzZWRf
aGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICBkZWYgc2Vu
ZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKLSAgICAgICAg
c2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgYm9keSkKLQotICAgIGRlZiBzZW5kX2RhdGEo
c2VsZiwgcGF5bG9hZCwgdW51c2VkX2ZyYW1lX3R5cGVtLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFz
ayk6Ci0gICAgICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAnLCBwYXlsb2FkLCAnXHhmZiddKQot
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKLQotICAgIGRlZiBzZW5kX2JpbmFy
eShzZWxmLCB1bnVzZWRfcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIHVudXNlZF9lbmQsIHVu
dXNlZF9tYXNrKToKLSAgICAgICAgZW5jb2RlZF9wYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoJ3V0
Zi04JykKLSAgICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIGVuY29kZWRfcGF5bG9hZCwg
J1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJhbWUpCi0KLSAgICBkZWYg
YXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZ
LCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9MCwgcnN2Mj0wLCBy
c3YzPTApOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0JpbmFyeSBmcmFtZSBpcyBub3Qgc3Vw
cG9ydGVkIGluIGhpeGllNzUnKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwg
cGF5bG9hZCk6Ci0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0KLSAgICAgICAgaWYgcmVjZWl2ZWQgIT0gJ1x4MDAnOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZyYW1lIHR5cGU6ICVkIChl
eHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAoMCwgb3JkKHJlY2Vp
dmVkKSkpCi0KLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
bGVuKHBheWxvYWQpICsgMSkKLSAgICAgICAgaWYgcmVjZWl2ZWRbLTFdICE9ICdceGZmJzoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVGVybWluYXRpb24g
ZXhwZWN0ZWQ6IDB4ZmYgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAg
ICAgIHJlY2VpdmVkKQotCi0gICAgICAgIGlmIHJlY2VpdmVkWzA6LTFdICE9IHBheWxvYWQ6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQg
cGF5bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAg
IChwYXlsb2FkLCByZWNlaXZlZFswOi0xXSkpCi0KLSAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBj
b2RlLCByZWFzb24pOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9DTE9TRV9G
UkFNRSkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCB1bnVzZWRfY29kZSwg
dW51c2VkX3JlYXNvbik6Ci0gICAgICAgIGNsb3NpbmcgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgbGVuKHNlbGYuX0NMT1NFX0ZSQU1FKSkKLSAgICAgICAgaWYgY2xvc2luZyAhPSBzZWxm
Ll9DTE9TRV9GUkFNRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNl
aXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotCi1jbGFzcyBDbGllbnRPcHRpb25zKG9iamVjdCk6
Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgdGhlIENsaWVudCBvYmpl
Y3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYudmVyc2lvbiA9
IDEzCi0gICAgICAgIHNlbGYuc2VydmVyX2hvc3QgPSAnJwotICAgICAgICBzZWxmLm9yaWdpbiA9
ICcnCi0gICAgICAgIHNlbGYucmVzb3VyY2UgPSAnJwotICAgICAgICBzZWxmLnNlcnZlcl9wb3J0
ID0gLTEKLSAgICAgICAgc2VsZi5zb2NrZXRfdGltZW91dCA9IDEwMDAKLSAgICAgICAgc2VsZi51
c2VfdGxzID0gRmFsc2UKLSAgICAgICAgc2VsZi5leHRlbnNpb25zID0gW10KLSAgICAgICAgIyBF
bmFibGUgZGVmbGF0ZS1hcHBsaWNhdGlvbi1kYXRhLgotICAgICAgICBzZWxmLnVzZV9kZWZsYXRl
X2ZyYW1lID0gRmFsc2UKLSAgICAgICAgIyBFbmFibGUgbXV4Ci0gICAgICAgIHNlbGYudXNlX211
eCA9IEZhbHNlCi0KLSAgICBkZWYgZW5hYmxlX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAg
IHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBUcnVlCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5h
cHBlbmQoX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAgZGVmIGVuYWJsZV9tdXgoc2Vs
Zik6Ci0gICAgICAgIHNlbGYudXNlX211eCA9IFRydWUKLSAgICAgICAgc2VsZi5leHRlbnNpb25z
LmFwcGVuZChfTVVYX0VYVEVOU0lPTikKLQotCi1kZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRy
eShob3N0LCBwb3J0LCB0aW1lb3V0LCB1c2VfdGxzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0cnk9MTAsIHNsZWVwX3NlYz0wLjEpOgotICAgIHJldHJ5X2NvdW50ID0gMAotICAg
IHdoaWxlIHJldHJ5X2NvdW50IDwgcmV0cnk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHMg
PSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQotICAg
ICAgICAgICAgcy5jb25uZWN0KChob3N0LCBwb3J0KSkKLSAgICAgICAgICAgIGlmIHVzZV90bHM6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF9UTFNTb2NrZXQocykKLSAgICAgICAgICAgIHJldHVy
biBzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IsIGU6Ci0gICAgICAgICAgICBpZiBlLmVy
cm5vICE9IGVycm5vLkVDT05OUkVGVVNFRDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXRyeV9jb3VudCA9IHJldHJ5X2NvdW50ICsg
MQotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoc2xlZXBfc2VjKQotCi0gICAgcmV0dXJuIE5v
bmUKLQotCi1jbGFzcyBDbGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgY2xpZW50LiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIGhhbmRzaGFrZSwgc3RyZWFtX2Ns
YXNzKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
Ci0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5fc29ja2V0
ID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGhhbmRzaGFrZQotICAgICAgICBz
ZWxmLl9zdHJlYW1fY2xhc3MgPSBzdHJlYW1fY2xhc3MKLQotICAgIGRlZiBjb25uZWN0KHNlbGYp
OgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KAotICAg
ICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNvY2tldF90aW1lb3V0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykK
LQotICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3NvY2tldCkKLQotICAg
ICAgICBzZWxmLl9zdHJlYW0gPSBzZWxmLl9zdHJlYW1fY2xhc3Moc2VsZi5fc29ja2V0LCBzZWxm
Ll9oYW5kc2hha2UpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0
YWJsaXNoZWQnKQotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNlbGYs
IGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2ZyYW1lX29mX2FyYml0
cmFyeV9ieXRlcyhoZWFkZXIsIGJvZHkpCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1l
c3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UsIHJhdz1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIHNlbGYu
X3N0cmVhbS5zZW5kX2JpbmFyeShtZXNzYWdlLCBlbmQsIG1hc2spCi0gICAgICAgIGVsaWYgcmF3
OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZGF0YShtZXNzYWdlLCBPUENPREVfVEVY
VCwgZW5kLCBtYXNrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNl
bmRfdGV4dChtZXNzYWdlLCBlbmQsIG1hc2spCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmUoc2Vs
ZiwgcGF5bG9hZCwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAg
ICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeShwYXlsb2FkKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX3RleHQocGF5bG9h
ZCkKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGU9U1RBVFVTX05PUk1BTF9DTE9TVVJF
LCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZShjb2RlLCByZWFz
b24pCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9S
TUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYpOgot
ICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIGFzc2VydF9jb25uZWN0aW9u
X2Nsb3NlZChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVhZF9kYXRhID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6
Ci0gICAgICAgICAgICBpZiBzdHIoZSkuZmluZCgKLSAgICAgICAgICAgICAgICAnQ29ubmVjdGlv
biBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcpID09IDA6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZXJy
b3JfbnVtYmVyLCBtZXNzYWdlID0gZQotICAgICAgICAgICAgICAgIGZvciBlcnJvcl9uYW1lIGlu
IFsnRUNPTk5SRVNFVCcsICdXU0FFQ09OTlJFU0VUJ106Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChlcnJvcl9uYW1lIGluIGRpcihlcnJubykgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcl9udW1iZXIgPT0gZ2V0YXR0cihlcnJubywgZXJyb3JfbmFtZSkpOgotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgZQotICAgICAgICAgICAgcmFpc2UgZQotCi0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
Q29ubmVjdGlvbiBpcyBub3QgY2xvc2VkIChSZWFkOiAlciknICUgcmVhZF9kYXRhKQotCi0KLWRl
ZiBjcmVhdGVfY2xpZW50KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9w
dGlvbnMsIFdlYlNvY2tldEhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29ja2V0U3RyZWFtKQotCi0K
LWRlZiBjcmVhdGVfY2xpZW50X2h5YmkwMChvcHRpb25zKToKLSAgICByZXR1cm4gQ2xpZW50KAot
ICAgICAgICBvcHRpb25zLAotICAgICAgICBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob3B0aW9u
cywgJzAnKSwKLSAgICAgICAgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKLQotCi1kZWYgY3JlYXRl
X2NsaWVudF9oaXhpZTc1KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9w
dGlvbnMsIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVh
bUhpeGllNzUpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9lbmR0
b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDdmODZmZGI0MTYzZDRlNzM4OTUyYjNjY2I3N2YxOTIxNmJjNTkxNS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2VuZHRvZW5k
X3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgot
IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
IyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0IGZv
ciBlbmQtdG8tZW5kIHdpdGggZXh0ZXJuYWwgc2VydmVyLgotCi1UaGlzIHRlc3QgaXMgbm90IHJ1
biBieSBydW5fYWxsLnB5IGJlY2F1c2UgaXQgcmVxdWlyZXMgc29tZSBwcmVwYXJhdGlvbnMuCi1J
ZiB5b3Ugd291bGQgbGlrZSB0byBydW4gdGhpcyB0ZXN0IGNvcnJlY3RseSwgbGF1bmNoIEFwYWNo
ZSB3aXRoIG1vZF9weXRob24KLWFuZCBtb2RfcHl3ZWJzb2NrZXQgbWFudWFsbHkuIEluIGFkZGl0
aW9uLCB5b3Ugc2hvdWxkIHBhc3MgYWxsb3dfZHJhZnQ3NSBvcHRpb24KLWFuZCBleGFtcGxlIHBh
dGggYXMgaGFuZGxlcl9zY2FuIG9wdGlvbiBhbmQgQXBhY2hlJ3MgRG9jdW1lbnRSb290LgotIiIi
Ci0KLQotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGVzdC50ZXN0X2VuZHRv
ZW5kCi1pbXBvcnQgdW5pdHRlc3QKLQotCi1fREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAot
Ci0KLWNsYXNzIEVuZFRvRW5kVGVzdFdpdGhFeHRlcm5hbFNlcnZlcih0ZXN0LnRlc3RfZW5kdG9l
bmQuRW5kVG9FbmRUZXN0KToKLSAgICBwYXNzCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLXAnLCAnLS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9J2ludCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9XRUJfU09DS0VUX1BPUlQsCi0gICAgICAgICAg
ICAgICAgICAgICAgaGVscD0nZXh0ZXJuYWwgdGVzdCBzZXJ2ZXIgcG9ydC4nKQotICAgIChvcHRp
b25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIHRlc3QudGVzdF9lbmR0b2Vu
ZC5fdXNlX2V4dGVybmFsX3NlcnZlciA9IFRydWUKLSAgICB0ZXN0LnRlc3RfZW5kdG9lbmQuX2V4
dGVybmFsX3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3J0Ci0KLSAgICB1bml0dGVzdC5tYWluKGFy
Z3Y9W3N5cy5hcmd2WzBdXSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvbW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbW9jay5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmJmZmNhYzQ4ZGM0M2E1MmI5Y2NmMWJjZDAxMjk3NTQyNDA0OGQ2
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L21vY2sucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIiIiTW9ja3MgZm9yIHRlc3RpbmcuCi0iIiIKLQotCi1pbXBvcnQgUXVldWUK
LWltcG9ydCB0aHJlYWRpbmcKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci0KLQotY2xh
c3MgX01vY2tDb25uQmFzZShvYmplY3QpOgotICAgICIiIkJhc2UgY2xhc3Mgb2YgbW9ja3MgZm9y
IG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAgICBUaGlzIGVuYWJsZXMgdGVzdHMgdG8g
Y2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGEgKG1vY2spIG1wX2Nvbm4uCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3dyaXRlX2RhdGEgPSBbXQotICAg
ICAgICBzZWxmLnJlbW90ZV9hZGRyID0gJ2Zha2VfYWRkcmVzcycKLQotICAgIGRlZiB3cml0ZShz
ZWxmLCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29u
bi53cml0ZS4iIiIKLQotICAgICAgICBzZWxmLl93cml0ZV9kYXRhLmFwcGVuZChkYXRhKQotCi0g
ICAgZGVmIHdyaXR0ZW5fZGF0YShzZWxmKToKLSAgICAgICAgIiIiR2V0IGJ5dGVzIHdyaXR0ZW4g
dG8gdGhpcyBtb2NrLiIiIgotCi0gICAgICAgIHJldHVybiAnJy5qb2luKHNlbGYuX3dyaXRlX2Rh
dGEpCi0KLQotY2xhc3MgTW9ja0Nvbm4oX01vY2tDb25uQmFzZSk6Ci0gICAgIiIiTW9jayBmb3Ig
bW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBz
cGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSBhIChtb2NrKSBtcF9jb25uIGFzCi0gICAg
d2VsbCBhcyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4gdG8gaXQuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVhZF9kYXRhKToKLSAgICAgICAgIiIiQ29uc3RydWN0cyBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVhZF9kYXRhOiBieXRlcyB0
aGF0IHNob3VsZCBiZSByZXR1cm5lZCB3aGVuIHJlYWQqIG1ldGhvZHMgYXJlCi0gICAgICAgICAg
ICBjYWxsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIF9Nb2NrQ29ubkJhc2UuX19pbml0X18o
c2VsZikKLSAgICAgICAgc2VsZi5fcmVhZF9kYXRhID0gcmVhZF9kYXRhCi0gICAgICAgIHNlbGYu
X3JlYWRfcG9zID0gMAotCi0gICAgZGVmIHJlYWRsaW5lKHNlbGYpOgotICAgICAgICAiIiJPdmVy
cmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRsaW5lLiIiIgotCi0gICAgICAgIGlm
IHNlbGYuX3JlYWRfcG9zID49IGxlbihzZWxmLl9yZWFkX2RhdGEpOgotICAgICAgICAgICAgcmV0
dXJuICcnCi0gICAgICAgIGVuZF9pbmRleCA9IHNlbGYuX3JlYWRfZGF0YS5maW5kKCdcbicsIHNl
bGYuX3JlYWRfcG9zKSArIDEKLSAgICAgICAgaWYgbm90IGVuZF9pbmRleDoKLSAgICAgICAgICAg
IGVuZF9pbmRleCA9IGxlbihzZWxmLl9yZWFkX2RhdGEpCi0gICAgICAgIHJldHVybiBzZWxmLl9y
ZWFkX3VwX3RvKGVuZF9pbmRleCkKLQotICAgIGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAg
ICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZC4iIiIKLQotICAg
ICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVhZF9kYXRhKToKLSAgICAgICAg
ICAgIHJldHVybiAnJwotICAgICAgICBlbmRfaW5kZXggPSBtaW4obGVuKHNlbGYuX3JlYWRfZGF0
YSksIHNlbGYuX3JlYWRfcG9zICsgbGVuZ3RoKQotICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF91
cF90byhlbmRfaW5kZXgpCi0KLSAgICBkZWYgX3JlYWRfdXBfdG8oc2VsZiwgZW5kX2luZGV4KToK
LSAgICAgICAgbGluZSA9IHNlbGYuX3JlYWRfZGF0YVtzZWxmLl9yZWFkX3BvczplbmRfaW5kZXhd
Ci0gICAgICAgIHNlbGYuX3JlYWRfcG9zID0gZW5kX2luZGV4Ci0gICAgICAgIHJldHVybiBsaW5l
Ci0KLQotY2xhc3MgTW9ja0Jsb2NraW5nQ29ubihfTW9ja0Nvbm5CYXNlKToKLSAgICAiIiJCbG9j
a2luZyBtb2NrIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgotCi0gICAgVGhpcyBlbmFi
bGVzIHRlc3RzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgYmUgcmVhZCBmcm9tIGEgKG1vY2spIG1w
X2Nvbm4gYXMKLSAgICB3ZWxsIGFzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBpdC4KLSAg
ICBDYWxsZXJzIG9mIHJlYWQqIG1ldGhvZHMgd2lsbCBibG9jayBpZiB0aGVyZSBpcyBubyBieXRl
cyBhdmFpbGFibGUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAg
IF9Nb2NrQ29ubkJhc2UuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcXVldWUgPSBRdWV1
ZS5RdWV1ZSgpCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJyaWRl
IG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZGxpbmUuIiIiCi0gICAgICAgIGxpbmUgPSAn
JwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgYyA9IHNlbGYuX3F1ZXVlLmdldCgp
Ci0gICAgICAgICAgICBsaW5lICs9IGMKLSAgICAgICAgICAgIGlmIGMgPT0gJ1xuJzoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbGluZQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAg
ICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkLiIiIgotCi0g
ICAgICAgIGRhdGEgPSAnJwotICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdlKGxlbmd0aCk6Ci0g
ICAgICAgICAgICBkYXRhICs9IHNlbGYuX3F1ZXVlLmdldCgpCi0gICAgICAgIHJldHVybiBkYXRh
Ci0KLSAgICBkZWYgcHV0X2J5dGVzKHNlbGYsIGJ5dGVzKToKLSAgICAgICAgIiIiUHV0IGJ5dGVz
IHRvIGJlIHJlYWQgZnJvbSB0aGlzIG1vY2suCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IGJ5dGVzOiBieXRlcyB0byBiZSByZWFkLgotICAgICAgICAiIiIKLQotICAgICAgICBmb3IgYnl0
ZSBpbiBieXRlczoKLSAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChieXRlKQotCi0KLWNsYXNz
IE1vY2tUYWJsZShkaWN0KToKLSAgICAiIiJNb2NrIHRhYmxlLgotCi0gICAgVGhpcyBtaW1pY3Mg
bW9kX3B5dGhvbiBtcF90YWJsZS4gTm90ZSB0aGF0IG9ubHkgdGhlIG1ldGhvZHMgdXNlZCBieQot
ICAgIHRlc3RzIGFyZSBvdmVycmlkZGVuLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGNvcHlfZnJvbT17fSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoY29weV9mcm9tLCBkaWN0
KToKLSAgICAgICAgICAgIGNvcHlfZnJvbSA9IGNvcHlfZnJvbS5pdGVtcygpCi0gICAgICAgIGZv
ciBrZXksIHZhbHVlIGluIGNvcHlfZnJvbToKLSAgICAgICAgICAgIHNlbGYuX19zZXRpdGVtX18o
a2V5LCB2YWx1ZSkKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICBy
ZXR1cm4gc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5fX2dldGl0ZW1fXyhrZXkubG93ZXIoKSkKLQot
ICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKLSAgICAgICAgc3VwZXIoTW9j
a1RhYmxlLCBzZWxmKS5fX3NldGl0ZW1fXyhrZXkubG93ZXIoKSwgdmFsdWUpCi0KLSAgICBkZWYg
Z2V0KHNlbGYsIGtleSwgZGVmX3ZhbHVlPU5vbmUpOgotICAgICAgICByZXR1cm4gc3VwZXIoTW9j
a1RhYmxlLCBzZWxmKS5nZXQoa2V5Lmxvd2VyKCksIGRlZl92YWx1ZSkKLQotCi1jbGFzcyBNb2Nr
UmVxdWVzdChvYmplY3QpOgotICAgICIiIk1vY2sgcmVxdWVzdC4KLQotICAgIFRoaXMgbWltaWNz
IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1
cmk9Tm9uZSwgaGVhZGVyc19pbj17fSwgY29ubmVjdGlvbj1Ob25lLCBtZXRob2Q9J0dFVCcsCi0g
ICAgICAgICAgICAgICAgIHByb3RvY29sPSdIVFRQLzEuMScsIGlzX2h0dHBzPUZhbHNlKToKLSAg
ICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3VtZW50czoKLSAg
ICAgICAgICAgIHVyaTogVVJJIG9mIHRoZSByZXF1ZXN0LgotICAgICAgICAgICAgaGVhZGVyc19p
bjogUmVxdWVzdCBoZWFkZXJzLgotICAgICAgICAgICAgY29ubmVjdGlvbjogQ29ubmVjdGlvbiB1
c2VkIGZvciB0aGUgcmVxdWVzdC4KLSAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdCBtZXRob2Qu
Ci0gICAgICAgICAgICBpc19odHRwczogV2hldGhlciB0aGlzIHJlcXVlc3QgaXMgb3ZlciBTU0wu
Ci0KLSAgICAgICAgU2VlIHRoZSBkb2N1bWVudCBvZiBtb2RfcHl0aG9uIFJlcXVlc3QgZm9yIGRl
dGFpbHMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnVyaSA9IHVyaQotICAgICAgICBzZWxm
LnVucGFyc2VkX3VyaSA9IHVyaQotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBjb25uZWN0aW9u
Ci0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBw
cm90b2NvbAotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSBNb2NrVGFibGUoaGVhZGVyc19pbikK
LSAgICAgICAgIyBzZWxmLmlzX2h0dHBzXyBuZWVkcyB0byBiZSBhY2Nlc3NpYmxlIGZyb20gdGVz
dHMuICBUbyBhdm9pZCBuYW1lCi0gICAgICAgICMgY29uZmxpY3Qgd2l0aCBzZWxmLmlzX2h0dHBz
KCksIGl0IGlzIG5hbWVkIGFzIHN1Y2guCi0gICAgICAgIHNlbGYuaXNfaHR0cHNfID0gaXNfaHR0
cHMKLSAgICAgICAgc2VsZi53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1KHNlbGYsIFRydWUpCi0g
ICAgICAgIHNlbGYud3NfY2xvc2VfY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi53c19jbG9zZV9y
ZWFzb24gPSBOb25lCi0gICAgICAgIHNlbGYud3NfdmVyc2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZ
QkkwMAotICAgICAgICBzZWxmLndzX2RlZmxhdGUgPSBGYWxzZQotCi0gICAgZGVmIGlzX2h0dHBz
KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIHJlcXVlc3QgaXMgb3ZlciBT
U0wuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmlzX2h0dHBzXwotCi0KLWNsYXNzIE1vY2tEaXNw
YXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiTW9jayBmb3IgZGlzcGF0Y2guRGlzcGF0Y2hlci4iIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hh
a2VfY2FsbGVkID0gRmFsc2UKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29u
bl9jb250ZXh0KToKLSAgICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hha2VfY2FsbGVkID0gVHJ1
ZQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAg
cGFzcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9t
dXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tdXhfY2xpZW50X2Zvcl90
ZXN0aW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDU0MzVhOGNjMGUyNzU1
YzU4M2MzNmQwY2VhZjNmM2ZmNjAyMWIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQor
KysgL2Rldi9udWxsCkBAIC0xLDY5MCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3IgdGVz
dGluZyBtdXggZXh0ZW5zaW9uLgotCi1UaGlzIGNvZGUgc2hvdWxkIGJlIGluZGVwZW5kZW50IGZy
b20gbW9kX3B5d2Vic29ja2V0LiBTZWUgdGhlIGNvbW1lbnQgb2YKLWNsaWVudF9mb3JfdGVzdGlu
Zy5weS4KLQotTk9URTogVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCBsaWtlIGNsaWVudF9m
b3JfdGVzdGluZy5weS4KLSIiIgotCi0KLQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgYmFzZTY0Ci1p
bXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBlbWFpbAotaW1wb3J0IGVtYWlsLnBhcnNlcgotaW1w
b3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWltcG9y
dCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcKLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3Rp
bmcKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFVTFRfQ0hBTk5FTF9JRCA9IDEK
LQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKLV9NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgotX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9IDQK
LQotCi1jbGFzcyBfQ29udHJvbEJsb2NrOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGNvZGUp
OgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotCi0KLWRlZiBfcGFyc2VfaGFuZHNoYWtl
X3Jlc3BvbnNlKHJlc3BvbnNlKToKLSAgICBzdGF0dXNfbGluZSwgaGVhZGVyX2xpbmVzID0gcmVz
cG9uc2Uuc3BsaXQoJ1xyXG4nLCAxKQotCi0gICAgd29yZHMgPSBzdGF0dXNfbGluZS5zcGxpdCgn
ICcpCi0gICAgaWYgbGVuKHdvcmRzKSA8IDM6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Jh
ZCBTdGF0dXMtTGluZSBzeW50YXggJXInICUgc3RhdHVzX2xpbmUpCi0gICAgW3ZlcnNpb24sIHJl
c3BvbnNlX2NvZGVdID0gd29yZHNbOjJdCi0gICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgdmVyc2lvbiAlcicgJSB2ZXJz
aW9uKQotCi0gICAgaWYgcmVzcG9uc2VfY29kZSAhPSAnMTAxJzoKLSAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignQmFkIHJlc3BvbnNlIGNvZGUgJXIgJyAlIHJlc3BvbnNlX2NvZGUpCi0gICAgaGVh
ZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCi0gICAg
cmV0dXJuIGhlYWRlcnMKLQotCi1kZWYgX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgb2Zmc2V0PTAp
OgotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAgIHJlbWFpbmluZyA9IGxlbmd0aCAtIG9mZnNl
dAotCi0gICAgaWYgcmVtYWluaW5nIDw9IDA6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8g
Y2hhbm5lbCBpZCBmb3VuZCcpCi0KLSAgICBjaGFubmVsX2lkID0gb3JkKGRhdGFbb2Zmc2V0XSkK
LSAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKLSAgICBpZiBjaGFubmVsX2lkICYgMHhlMCA9PSAw
eGUwOgotICAgICAgICBpZiByZW1haW5pbmcgPCA0OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9IHN0
cnVjdC51bnBhY2soJyFMJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0
YVtvZmZzZXQ6b2Zmc2V0KzRdKVswXSAmIDB4MWZmZmZmZmYKLSAgICAgICAgY2hhbm5lbF9pZF9s
ZW5ndGggPSA0Ci0gICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgotICAgICAgICBp
ZiByZW1haW5pbmcgPCAzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGNo
YW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9ICgoKGNoYW5uZWxfaWQgJiAw
eDFmKSA8PCAxNikgKwotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soJyFIJywg
ZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdKQotICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9
IDMKLSAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6Ci0gICAgICAgIGlmIHJlbWFp
bmluZyA8IDI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5lbCBp
ZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgnLCBkYXRh
W29mZnNldDpvZmZzZXQrMl0pWzBdICYgMHgzZmZmCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3Ro
ID0gMgotCi0gICAgcmV0dXJuIGNoYW5uZWxfaWQsIGNoYW5uZWxfaWRfbGVuZ3RoCi0KLQotZGVm
IF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0PTApOgotICAgIGZpcnN0X2J5dGUgPSBvcmQoZGF0
YVtvZmZzZXRdKQotICAgIGlmIChmaXJzdF9ieXRlICYgMHg4MCkgIT0gMDoKLSAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUaGUgTVNCIG9mIG51bWJlciBmaWVsZCBtdXN0IGJlIHVuc2V0JykKLSAg
ICBmaXJzdF9ieXRlID0gZmlyc3RfYnl0ZSAmIDB4N2YKLSAgICBpZiBmaXJzdF9ieXRlID09IDEy
NzoKLSAgICAgICAgaWYgb2Zmc2V0ICsgOSA+IGxlbihkYXRhKToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAgICByZXR1cm4gc3RydWN0LnVucGFj
aygnIVEnLCBkYXRhW29mZnNldCsxOm9mZnNldCs5XSlbMF0sIDkKLSAgICBpZiBmaXJzdF9ieXRl
ID09IDEyNjoKLSAgICAgICAgaWYgb2Zmc2V0ICsgMyA+IGxlbihkYXRhKToKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAgICByZXR1cm4gc3RydWN0
LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0sIDMKLSAgICByZXR1cm4g
Zmlyc3RfYnl0ZSwgMQotCi0KLWRlZiBfcGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgb2Zm
c2V0PTApOgotICAgIHNpemUsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNldCkK
LSAgICBzdGFydF9wb3NpdGlvbiA9IG9mZnNldCArIGFkdmFuY2UKLSAgICBlbmRfcG9zaXRpb24g
PSBzdGFydF9wb3NpdGlvbiArIHNpemUKLSAgICBpZiBsZW4oZGF0YSkgPCBlbmRfcG9zaXRpb246
Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBzaXplIG9mIGNvbnRyb2wgYmxvY2sg
KCVkIDwgJWQpJyAlICgKLSAgICAgICAgICAgICAgICBsZW4oZGF0YSksIGVuZF9wb3NpdGlvbikp
Ci0gICAgcmV0dXJuIGRhdGFbc3RhcnRfcG9zaXRpb246ZW5kX3Bvc2l0aW9uXSwgc2l6ZSArIGFk
dmFuY2UKLQotCi1kZWYgX3BhcnNlX2NvbnRyb2xfYmxvY2tzKGRhdGEpOgotICAgIGJsb2NrcyA9
IFtdCi0gICAgbGVuZ3RoID0gbGVuKGRhdGEpCi0gICAgcG9zID0gMAotCi0gICAgd2hpbGUgcG9z
IDwgbGVuZ3RoOgotICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbcG9zXSkKLSAgICAgICAg
cG9zICs9IDEKLSAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAweDcKLSAgICAg
ICAgYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZSkKLQotICAgICAgICAjIFRPRE8oYmFzaGkp
OiBTdXBwb3J0IG1vcmUgb3Bjb2RlCi0gICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9B
RERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgIGJsb2NrLmVuY29kZSA9IGZpcnN0X2J5
dGUgJiAzCi0gICAgICAgICAgICBibG9jay5yZWplY3RlZCA9IChmaXJzdF9ieXRlID4+IDQpICYg
MQotCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQo
ZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAg
ICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0KLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
LCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBvcykKLSAgICAgICAg
ICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hha2UKLSAgICAgICAg
ICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAg
ICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6Ci0gICAgICAgICAg
ICBibG9jay5tdXhfZXJyb3IgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLQotICAgICAgICAgICAg
Y2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKLSAgICAg
ICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgICAgICBwb3MgKz0g
YWR2YW5jZQotCi0gICAgICAgICAgICByZWFzb24sIGFkdmFuY2UgPSBfcGFyc2Vfc2l6ZV9hbmRf
Y29udGVudHMoZGF0YSwgcG9zKQotICAgICAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoKLSAg
ICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBOb25lCi0gICAgICAgICAgICAgICAgYmxv
Y2suZHJvcF9tZXNzYWdlID0gJycKLSAgICAgICAgICAgIGVsaWYgbGVuKHJlYXNvbikgPj0gMjoK
LSAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJl
YXNvbls6Ml0pWzBdCi0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9tZXNzYWdlID0gcmVhc29u
WzI6XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0ludmFsaWQgRHJvcENoYW5uZWwnKQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAg
ICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhf
T1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBf
cGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBibG9jay5jaGFubmVsX2lk
ID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIHNl
bmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKLSAgICAgICAgICAg
IGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5j
ZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNvZGUg
PT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAgIGZhbGxiYWNrID0g
Zmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgICAgIHNsb3RzLCBhZHZhbmNlID0gX3BhcnNlX251bWJl
cihkYXRhLCBwb3MpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgc2Vu
ZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQotICAgICAgICAgICAg
cG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGlmIGZhbGxiYWNrID09IDEgYW5kIChzbG90cyAh
PSAwIG9yIHNlbmRfcXVvdGEgIT0gMCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIHplcm8gaWYgRiBiaXQgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaXMgc2V0JykKLSAgICAgICAgICAgIGJsb2NrLmZhbGxi
YWNrID0gZmFsbGJhY2sKLSAgICAgICAgICAgIGJsb2NrLnNsb3RzID0gc2xvdHMKLSAgICAgICAg
ICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICAgICBibG9ja3MuYXBw
ZW5kKGJsb2NrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBtdXggb3Bjb2RlICVkIHJlY2VpdmVkJyAlIG9w
Y29kZSkKLQotICAgIHJldHVybiBibG9ja3MKLQotCi1kZWYgX2VuY29kZV9jaGFubmVsX2lkKGNo
YW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNoYW5uZWxfaWQpCi0K
LSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAgICByZXR1cm4gY2hyKGNoYW5uZWxf
aWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0gICAgICAgIHJldHVybiBzdHJ1Y3Qu
cGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoq
IDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQgPj4gMTYpKQotICAg
ICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVsX2lkICYgMHhmZmZm
KQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAgICAgICByZXR1cm4gc3RydWN0LnBh
Y2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0KLSAgICByYWlzZSBWYWx1ZUVycm9y
KCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQotCi0KLWRlZiBfZW5j
b2RlX251bWJlcihudW1iZXIpOgotICAgIGlmIG51bWJlciA8PSAxMjU6Ci0gICAgICAgIHJldHVy
biBjaHIobnVtYmVyKQotICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgMTYpOgotICAgICAgICByZXR1
cm4gY2hyKDB4N2UpICsgc3RydWN0LnBhY2soJyFIJywgbnVtYmVyKQotICAgIGVsaWYgbnVtYmVy
IDwgKDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hyKDB4N2YpICsgc3RydWN0LnBhY2soJyFR
JywgbnVtYmVyKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBu
dW1iZXInKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3QoY2hhbm5lbF9pZCwg
ZW5jb2RlZF9oYW5kc2hha2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29k
aW5nPTApOgotICAgIGxlbmd0aCA9IGxlbihlbmNvZGVkX2hhbmRzaGFrZSkKLSAgICBoYW5kc2hh
a2VfbGVuZ3RoID0gX2VuY29kZV9udW1iZXIobGVuZ3RoKQotCi0gICAgZmlyc3RfYnl0ZSA9IChf
TVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2RpbmcKLSAgICByZXR1
cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0g
ICAgICAgICAgICBoYW5kc2hha2VfbGVuZ3RoICsgZW5jb2RlZF9oYW5kc2hha2UpCi0KLQotZGVm
IF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAg
ICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1KQotICAgIHJldHVy
biAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAg
ICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkKLQotCi1jbGFzcyBf
TXV4UmVhZGVyVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIiIk11eCByZWFkZXIgdGhy
ZWFkLgotCi0gICAgUmVhZHMgZnJhbWVzIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgbXV4IGNsaWVu
dC4gVGhpcyB0aHJlYWQgYWNjZXNzZXMKLSAgICBwcml2YXRlIGZ1bmN0aW9ucy92YXJpYWJsZXMg
b2YgdGhlIG11eCBjbGllbnQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXV4
KToKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxm
LnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLl9tdXggPSBtdXgKLSAgICAgICAgc2VsZi5f
c3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIGZpcnN0X29wY29kZSA9IE5vbmUKLSAgICAgICAgcGVuZGluZ19wYXlsb2FkID0g
W10KLSAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAg
ZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3RoID0gKAotICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5yZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9tdXgu
X3NvY2tldCkpCi0KLSAgICAgICAgICAgIGlmIG5vdCBmaXJzdF9vcGNvZGU6Ci0gICAgICAgICAg
ICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVDoKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIHRleHQgbWVzc2FnZSBv
biBwaHlzaWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVj
dGlvbicpCi0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5P
UENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gd2FzIG5vdCBzdGFydGVkJykKLSAgICAg
ICAgICAgICAgICBpZiAob3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZ
IG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX1BPTkcgb3IKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfUE9ORyBvcgotICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xpZW50
X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRSk6Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0X29w
Y29kZSA9IG9wY29kZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG9wY29kZSBmcmFtZTogJWQn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSkKLQotICAgICAg
ICAgICAgZWxpZiBvcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DT05USU5VQVRJ
T046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIG5ldyBvcGNv
ZGUgYmVmb3JlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlcm1pbmF0aW5n
IGZyYWdtZW50YXRpb24nKQotCi0gICAgICAgICAgICBwYXlsb2FkID0gY2xpZW50X2Zvcl90ZXN0
aW5nLnJlY2VpdmVfYnl0ZXMoCi0gICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9zb2NrZXQsIHBh
eWxvYWRfbGVuZ3RoKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9tdXguX2luY29taW5nX2ZyYW1l
X2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fbXV4
Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCi0KLSAgICAgICAgICAgIHBl
bmRpbmdfcGF5bG9hZC5hcHBlbmQocGF5bG9hZCkKLQotICAgICAgICAgICAgaWYgZmluOgotICAg
ICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0g
ICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotCi0gICAgICAgIG1lc3NhZ2UgPSAnJy5qb2lu
KHBlbmRpbmdfcGF5bG9hZCkKLSAgICAgICAgcmV0dXJuIGZpcnN0X29wY29kZSwgbWVzc2FnZQot
Ci0gICAgZGVmIHJlcXVlc3Rfc3RvcChzZWxmKToKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0
ZWQgPSBUcnVlCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICAgICAgIyBvcGNv
ZGUgaXMgT1BDT0RFX0JJTkFSWSBvciBjb250cm9sIG9wY29kZXMgd2hlbiBhIG1lc3NhZ2UKLSAg
ICAgICAgICAgICAgICAjIGlzIHN1Y2Nlc2Z1bGx5IHJlY2VpdmVkLgotICAgICAgICAgICAgICAg
IG9wY29kZSwgbWVzc2FnZSA9IHNlbGYuX3JlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICAg
ICAgaWYgbm90IG9wY29kZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAg
ICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZOgotICAg
ICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQo
bWVzc2FnZSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9kaXNwYXRjaF9mcmFtZShj
aGFubmVsX2lkLCBtZXNzYWdlW2FkdmFuY2U6XSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3Byb2Nlc3NfY29udHJvbF9tZXNzYWdlKG9wY29k
ZSwgbWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX211eC5fbm90
aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfSW5uZXJGcmFtZShvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCk6
Ci0gICAgICAgIHNlbGYuZmluID0gZmluCi0gICAgICAgIHNlbGYucnN2MSA9IHJzdjEKLSAgICAg
ICAgc2VsZi5yc3YyID0gcnN2MgotICAgICAgICBzZWxmLnJzdjMgPSByc3YzCi0gICAgICAgIHNl
bGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9IHBheWxvYWQKLQotCi1j
bGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBzZWxmLnF1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICBzZWxmLnNlbmRf
cXVvdGEgPSAwCi0gICAgICAgIHNlbGYucmVjZWl2ZV9xdW90YSA9IDAKLQotCi1jbGFzcyBNdXhD
bGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgbXV4IGNsaWVudC4KLQotICAgIE5vdGUg
dGhhdCB0aGlzIGNsYXNzIGlzIE5PVCB0aHJlYWQtc2FmZS4gRG8gbm90IGFjY2VzcyBhbiBpbnN0
YW5jZSBvZiB0aGlzCi0gICAgY2xhc3MgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGF0IGEgc2FtZSB0
aW1lLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9vcHRpb25zLmVuYWJsZV9tdXgo
KQotICAgICAgICBzZWxmLl9zdHJlYW0gPSBOb25lCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IE5v
bmUKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNvY2tl
dEhhbmRzaGFrZShzZWxmLl9vcHRpb25zKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9m
aWx0ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUK
LQotICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQotICAgICAgICBzZWxmLl9yZWFkX3Ro
cmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uID0gdGhy
ZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0gW10KLSAg
ICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKLSAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCk7
Ci0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQotICAgICAgICBzZWxmLl90aW1l
b3V0ID0gMgotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50ID0g
Tm9uZQotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UgPSBO
b25lCi0KLSAgICBkZWYgX3BhcnNlX2lubmVyX2ZyYW1lKHNlbGYsIGRhdGEpOgotICAgICAgICBp
ZiBsZW4oZGF0YSkgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBl
bmNhcHN1bGF0ZWQgZnJhbWUgcmVjZWl2ZWQnKQotCi0gICAgICAgIGZpcnN0X2J5dGUgPSBvcmQo
ZGF0YVswXSkKLSAgICAgICAgZmluID0gKGZpcnN0X2J5dGUgPDwgNykgJiAxCi0gICAgICAgIHJz
djEgPSAoZmlyc3RfYnl0ZSA8PCA2KSAmIDEKLSAgICAgICAgcnN2MiA9IChmaXJzdF9ieXRlIDw8
IDUpICYgMQotICAgICAgICByc3YzID0gKGZpcnN0X2J5dGUgPDwgNCkgJiAxCi0gICAgICAgIG9w
Y29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQotICAgICAgICBpZiBzZWxmLl9vdXRnb2luZ19mcmFt
ZV9maWx0ZXI6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmls
dGVyLmZpbHRlcigKLSAgICAgICAgICAgICAgICBkYXRhWzE6XSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHBheWxvYWQgPSBkYXRhWzE6XQotCi0gICAgICAgIHJldHVybiBfSW5uZXJGcmFt
ZShmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCkKLQotICAgIGRlZiBfcHJv
Y2Vzc19tdXhfY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAgICAgIGZvciBibG9jayBpbiBzZWxm
Ll9jb250cm9sX2Jsb2NrczoKLSAgICAgICAgICAgIGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09Q
Q09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAgICAjIEFkZENoYW5uZWxS
ZXNwb25zZSB3aWxsIGJlIGhhbmRsZWQgaW4gYWRkX2NoYW5uZWwoKS4KLSAgICAgICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENPREVf
RkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6
Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZmxvdyBj
b250cm9sIHJlY2VpdmVkIGZvciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgYmxvY2suY2hhbm5lbF9pZCkKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXS5zZW5kX3F1b3Rh
ICs9ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLm5vdGlmeSgpCi0g
ICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAgICBlbGlmIGJsb2NrLm9w
Y29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgICAgIHNl
bGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtibG9jay5zZW5kX3F1b3RhXSAqIGJsb2NrLnNsb3Rz
KQotCi0gICAgZGVmIF9kaXNwYXRjaF9mcmFtZShzZWxmLCBjaGFubmVsX2lkLCBwYXlsb2FkKToK
LSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyArPSBfcGFyc2Vf
Y29udHJvbF9ibG9ja3MocGF5bG9hZCkKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX211
eF9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAg
IHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9pZCBp
biBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1JlY2VpdmVkIGxvZ2ljYWwgZnJhbWUgb24gY2hhbm5lbCBpZCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnJWQsIHdoaWNoIGlzIG5vdCBlc3RhYmxpc2hlZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQotICAg
ICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fcGFyc2VfaW5uZXJfZnJhbWUocGF5bG9h
ZCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnJl
Y2VpdmVfcXVvdGEgLT0gKAotICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGlubmVyX2ZyYW1l
LnBheWxvYWQpKQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucmVjZWl2ZV9xdW90YSA8IDA6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignVGhlIHNlcnZlciB2aW9sYXRlcyBxdW90YSBvbiAnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVsX2lkKQotICAgICAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hh
bm5lbF9pZF0ucXVldWUucHV0KGlubmVyX2ZyYW1lKQotCi0gICAgZGVmIF9wcm9jZXNzX2NvbnRy
b2xfbWVzc2FnZShzZWxmLCBvcGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAjIFBpbmcvUG9uZyBh
cmUgbm90IHN1cHBvcnRlZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Ns
b3NlX21lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgICAgICBpZiBzZWxmLl9pc19hY3RpdmU6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoCi0gICAgICAgICAgICAgICAg
ICAgIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29u
PScnKQotICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnJlcXVlc3Rfc3RvcCgpCi0K
LSAgICAgICAgICAgIGlmIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQ6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5zZXQo
KQotCi0gICAgZGVmIF9ub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnUmVhZCB0aHJlYWQgdGVybWluYXRlZC4nKQotICAgICAgICBzZWxmLmNsb3Nl
X3NvY2tldCgpCi0KLSAgICBkZWYgX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZhaWxhYmxlKHNlbGYp
OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRp
b24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykgPT0g
MDoKLSAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQotICAgICAgICAgICAgICAgIHNlbGYuX2Nv
bnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAg
ICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykgPT0gMDoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2VpdmUgTmV3Q2hhbm5lbFNs
b3QnKQotCi0gICAgZGVmIF9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFibGUoc2VsZiwgY2hhbm5l
bF9pZCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICAgICAgIyBXYWl0IG9u
Y2UKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0
KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIGlmIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgotICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBGbG93Q29udHJvbCBmb3Ig
Y2hhbm5lbCBpZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQp
Ci0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gY2xpZW50
X2Zvcl90ZXN0aW5nLmNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0gICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc29ja2V0X3RpbWVv
dXQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQotCi0gICAgICAgIHNl
bGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotICAgICAgICBzZWxmLl9zdHJl
YW0gPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0U3RyZWFtKAotICAgICAgICAgICAgc2Vs
Zi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCi0KLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tfREVGQVVMVF9DSEFOTkVMX0lEXSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEoKQotCi0gICAg
ICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gX011eFJlYWRlclRocmVhZChzZWxmKQotICAgICAgICBz
ZWxmLl9yZWFkX3RocmVhZC5zdGFydCgpCi0KLSAgICAgICAgc2VsZi5fYXNzZXJ0X2NoYW5uZWxf
c2xvdF9hdmFpbGFibGUoKQotICAgICAgICBzZWxmLl9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFi
bGUoX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLQotICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBUcnVl
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKLQot
ICAgIGRlZiBhZGRfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBvcHRpb25zKToKLSAgICAgICAg
aWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTXV4
IGNsaWVudCBpcyBub3QgYWN0aXZlJykKLQotICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NoYW5uZWwg
aWQgJWQgYWxyZWFkeSBleGlzdHMnICUgY2hhbm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZW5kX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKLSAgICAg
ICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05v
IGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCi0KLSAgICAgICAgIyBDcmVhdGUgQWRkQ2hhbm5lbCBy
ZXF1ZXN0Ci0gICAgICAgIHJlcXVlc3RfbGluZSA9ICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIG9w
dGlvbnMucmVzb3VyY2UKLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgaWYgb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuREVGQVVMVF9QT1JUOgotICAgICAgICAg
ICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxuJyAlIG9wdGlvbnMuc2VydmVyX2hvc3QubG93
ZXIoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6ICVz
OiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0KSkKLSAg
ICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAlc1xyXG4nICUgb3B0aW9ucy5vcmlnaW4ubG93
ZXIoKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nKQot
Ci0gICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKLSAgICAgICAgICAgIGZp
ZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICcsICcuam9pbihvcHRpb25zLmV4dGVuc2lvbnMpKQotCi0gICAg
ICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSArICcnLmpvaW4oZmllbGRzKSArICdcclxuJwot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
KAotICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFuZHNoYWtlKQotICAgICAgICBwYXlsb2FkID0g
X2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsgYWRkX2NoYW5uZWxfcmVx
dWVzdAotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgICAg
ICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
V2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9yIHRoZSByZXF1ZXN0Li4uJykKLSAgICAgICAg
cmVzcG9uc2UgPSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xf
YmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAg
ICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgotICAgICAgICAg
ICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVT
UE9OU0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAg
ICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNoYW5uZWxfaWQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXNwb25zZSA9IGJsb2NrCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9j
b250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlOgotICAgICAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0
KHNlbGYuX3RpbWVvdXQpCi0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdBZGRDaGFubmVsUmVxdWVzdCB0
aW1lZCBvdXQnKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fY29udHJvbF9i
bG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMgVmFsaWRhdGUgQWRkQ2hhbm5l
bFJlc3BvbnNlCi0gICAgICAgIGlmIHJlc3BvbnNlLnJlamVjdGVkOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVjdGVkIEFkZENoYW5uZWxSZXF1ZXN0JykKLQot
ICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlLmVuY29k
ZWRfaGFuZHNoYWtlKQotCi0gICAgICAgICMgU2hvdWxkIHdlIHJlamVjdCB3aGVuIFVwZ3JhZGUs
IENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQtQWNjZXB0Ci0gICAgICAgICMgaGVhZGVycyBl
eGlzdD8KLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJl
KCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXSA9IF9Mb2dpY2Fs
Q2hhbm5lbERhdGEoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNh
bCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNoYW5uZWxfaWQpCi0KLSAgICBkZWYgX2NoZWNr
X2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIGlm
IG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ011eCBj
bGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4gc2Vs
Zi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTG9naWNh
bCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hlZC4nKQotCi0gICAgZGVmIGRyb3BfY2hhbm5l
bChzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0g
ICAgICAgIHBhc3MKLQotICAgIGRlZiBzZW5kX2Zsb3dfY29udHJvbChzZWxmLCBjaGFubmVsX2lk
LCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5l
bF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgICAgIHBheWxv
YWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBmbG93X2NvbnRy
b2wKLSAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2ZSBxdW90YQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAr
PSAoCi0gICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGEpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICBkZWYgc2Vu
ZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFs
c2UpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5u
ZWxfaWQpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChl
bmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRm
LTgnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVuKG1lc3NhZ2UpOgotICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2aW9sYXRpb246ICVkIDwgJWQnICUgKAotICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5z
ZW5kX3F1b3RhLAotICAgICAgICAgICAgICAgICAgICAgICAgbGVuKG1lc3NhZ2UpKSkKLQotICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIC09
IGxlbihtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2Rl
X2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBtZXNzYWdlCi0gICAg
ICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0gICAgZGVmIGFzc2VydF9y
ZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQsIGJpbmFyeT1GYWxzZSk6Ci0gICAgICAg
IHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5f
dGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcg
JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYg
YmluYXJ5OgotICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9C
SU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVAotCi0gICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBvcGNv
ZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgb3Bjb2RlIHJlY2Vp
dmVkICglciAhPSAlciknICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRf
b3Bjb2RlLCBpbm5lcl9mcmFtZS5vcGNvZGUpKQotCi0gICAgICAgIGlmIGlubmVyX2ZyYW1lLnBh
eWxvYWQgIT0gcGF5bG9hZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3Rl
ZCBwYXlsb2FkIHJlY2VpdmVkJykKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNoYW5uZWxf
aWQsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9j
aGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIGlmIGNvZGUgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFzb24u
ZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBib2R5ID0gJycKLQot
ICAgICAgICBmaXJzdF9ieXRlID0gKDEgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X0NMT1NFCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkg
KyBjaHIoZmlyc3RfYnl0ZSkgKyBib2R5Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFy
eShwYXlsb2FkKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNoYW5uZWxf
aWQpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5u
ZWxfaWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKLSAgICAgICAgICAgICAgICB0
aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSwgZToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVzc2FnZSBmcm9tIGNo
YW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQot
ICAgICAgICBpZiBpbm5lcl9mcmFtZS5vcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9DTE9TRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNs
b3NlIGZyYW1lJykKLQotICAgIGRlZiBzZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Uoc2Vs
ZiwgY29kZT1Ob25lLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0
aW9uX2Nsb3NlX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAgICAgICAgc2VsZi5fc3RyZWFt
LnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgIyBUaGlzIG1ldGhvZCBjYW4gYmUgdXNl
ZCBvbmx5IGFmdGVyIGNhbGxpbmcKLSAgICAjIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9z
ZSgpLgotICAgIGRlZiBhc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZlX2Nsb3NlKAot
ICAgICAgICBzZWxmLCBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfTk9STUFMX0NMT1NV
UkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Vf
ZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGlmIChub3Qgc2VsZi5f
cGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5pc1NldCgpIG9yCi0gICAgICAgICAgICBu
b3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlKToKLSAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKLQot
ICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9IEZh
bHNlCi0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3J1bl9hbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgwYTVkODdkODM4MjJiMDc4M2JlMTNlMzNkZGEzYWI2MWE1YWZlNDAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC9ydW5fYWxsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJSdW4gYWxsIHRlc3RzIGlu
IHRoZSBzYW1lIGRpcmVjdG9yeS4KLQotVGhpcyBzdWl0ZSBpcyBleHBlY3RlZCB0byBiZSBydW4g
dW5kZXIgcHl3ZWJzb2NrZXQncyBzcmMgZGlyZWN0b3J5LCBpLmUuIHRoZQotZGlyZWN0b3J5IGNv
bnRhaW5pbmcgbW9kX3B5d2Vic29ja2V0LCB0ZXN0LCBldGMuCi0KLVRvIGNoYW5nZSBsb2dnaW4g
bGV2ZWwsIHBsZWFzZSBzcGVjaWZ5IC0tbG9nLWxldmVsIG9wdGlvbi4KLSAgICBweXRob24gdGVz
dC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1ZwotCi1UbyBwYXNzIGFueSBvcHRpb24gdG8g
dW5pdHRlc3QgbW9kdWxlLCBwbGVhc2Ugc3BlY2lmeSBvcHRpb25zIGFmdGVyICctLScuIEZvcgot
ZXhhbXBsZSwgcnVuIHRoaXMgZm9yIG1ha2luZyB0aGUgdGVzdCBydW5uZXIgdmVyYm9zZS4KLSAg
ICBweXRob24gdGVzdC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1ZyAtLSAtdgotIiIiCi0K
LQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCi1pbXBvcnQgcmUK
LWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi0KLV9URVNUX01PRFVMRV9QQVRURVJOID0g
cmUuY29tcGlsZShyJ14odGVzdF8uKylcLnB5JCcpCi0KLQotZGVmIF9saXN0X3Rlc3RfbW9kdWxl
cyhkaXJlY3RvcnkpOgotICAgIG1vZHVsZV9uYW1lcyA9IFtdCi0gICAgZm9yIGZpbGVuYW1lIGlu
IG9zLmxpc3RkaXIoZGlyZWN0b3J5KToKLSAgICAgICAgbWF0Y2ggPSBfVEVTVF9NT0RVTEVfUEFU
VEVSTi5zZWFyY2goZmlsZW5hbWUpCi0gICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgbW9k
dWxlX25hbWVzLmFwcGVuZChtYXRjaC5ncm91cCgxKSkKLSAgICByZXR1cm4gbW9kdWxlX25hbWVz
Ci0KLQotZGVmIF9zdWl0ZSgpOgotICAgIGxvYWRlciA9IHVuaXR0ZXN0LlRlc3RMb2FkZXIoKQot
ICAgIHJldHVybiBsb2FkZXIubG9hZFRlc3RzRnJvbU5hbWVzKAotICAgICAgICAgICAgX2xpc3Rf
dGVzdF9tb2R1bGVzKG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4n
KSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBvcHRwYXJz
ZS5PcHRpb25QYXJzZXIoKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICct
LWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
bG9nX2xldmVsJywgZGVmYXVsdD0nd2FybmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgY2hv
aWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICd3YXJuJywgJ2Vycm9yJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JpdGljYWwnXSkKLSAgICBvcHRpb25zLCBhcmdz
ID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoCi0gICAgICAg
ICAgICBsZXZlbD1sb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxvZ19sZXZlbC51cHBlcigp
KSwKLSAgICAgICAgICAgIGZvcm1hdD0nJShsZXZlbG5hbWUpcyAlKGFzY3RpbWUpcyAnCi0gICAg
ICAgICAgICAgICAgICAgJyUoZmlsZW5hbWUpczolKGxpbmVubylkXSAnCi0gICAgICAgICAgICAg
ICAgICAgJyUobWVzc2FnZSlzJywKLSAgICAgICAgICAgIGRhdGVmbXQ9JyVIOiVNOiVTJykKLSAg
ICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0PSdfc3VpdGUnLCBhcmd2PVtzeXMuYXJndlswXV0g
KyBhcmdzKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9zZXRfc3lzX3BhdGgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNjNmRiOWVhNGQzODNhMzdjMjdhMDYwYTBlZjFjNTYz
YmJiMWUxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbmZpZ3VyYXRpb24gZm9yIHRlc3RpbmcuCi0K
LVRlc3QgZmlsZXMgc2hvdWxkIGltcG9ydCB0aGlzIG1vZHVsZSBiZWZvcmUgbW9kX3B5d2Vic29j
a2V0LgotIiIiCi0KLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLQotIyBBZGQgdGhlIHBhcmVu
dCBkaXJlY3RvcnkgdG8gc3lzLnBhdGggdG8gZW5hYmxlIGltcG9ydGluZyBtb2RfcHl3ZWJzb2Nr
ZXQuCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdLCAnLi4nKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9kaXNwYXRjaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWNhM2Q0ZjNhZTFkYmY1Zjk3YjI3ZDg0
ZWM2ZTY0MjJmZDBlY2FhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyODggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEx
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJUZXN0cyBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgotCi0KLWltcG9ydCBvcwotaW1w
b3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRv
IGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBp
bXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZy
b20gdGVzdCBpbXBvcnQgbW9jawotCi0KLV9URVNUX0hBTkRMRVJTX0RJUiA9IG9zLnBhdGguam9p
bigKLSAgICAgICAgb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0YScsICdoYW5k
bGVycycpCi0KLV9URVNUX0hBTkRMRVJTX1NVQl9ESVIgPSBvcy5wYXRoLmpvaW4oX1RFU1RfSEFO
RExFUlNfRElSLCAnc3ViJykKLQotCi1jbGFzcyBEaXNwYXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgotCi0gICAg
ZGVmIHRlc3Rfbm9ybWFsaXplX3BhdGgoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
b3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYicpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8n
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJ1xc
YVxcYicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicp
LnJlcGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5f
bm9ybWFsaXplX3BhdGgoJy9hL2MvLi4vYicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9z
LnBhdGguYWJzcGF0aCgnYWJjJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnYWJjJykpCi0KLSAgICBkZWYgdGVz
dF9jb252ZXJ0ZXIoc2VsZik6Ci0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVf
cGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2InKQotICAgICAgICAjIFB5dGhvbiBidWls
dCBieSBNU0MgaW5zZXJ0cyBhIGRyaXZlIG5hbWUgbGlrZSAnQzpcJyB2aWEgcmVhbHBhdGgoKS4K
LSAgICAgICAgIyBDb252ZXJ0ZXIgR2VuZXJhdG9yIGV4cGFuZHMgcHJvdmlkZWQgcGF0aCB1c2lu
ZyByZWFscGF0aCgpIGFuZCB1c2VzCi0gICAgICAgICMgdGhlIHBhdGggaW5jbHVkaW5nIGEgZHJp
dmUgbmFtZSB0byB2ZXJpZnkgdGhlIHByZWZpeC4KLSAgICAgICAgb3Nfcm9vdCA9IG9zLnBhdGgu
cmVhbHBhdGgoJy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihv
c19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvYy9o
JywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2MvaF93c2gucHknKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChOb25lLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaC5weScpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcignYS9iL2hfd3NoLnB5JykpCi0KLSAg
ICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZl
cnRlcignYS9iJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlz
cGF0Y2guX25vcm1hbGl6ZV9wYXRoKAotICAgICAgICAgICAgJ2EvYi9oX3dzaC5weScpKSkKLQot
ICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29u
dmVydGVyKCcvYS9iLy8vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0
ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
L2gnLCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAotICAgICAgICAgICAgJy9h
L2IvLi4vYi9oX3dzaC5weScpKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3Jl
YXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKAotICAgICAgICAgICAgJy9hLy4uL2EvYi8u
Li9iLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3Qg
KyAnYS9iL2hfd3NoLnB5JykpCi0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0
ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihyJ1xhXGInKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgcidhXGJcaF93c2gucHknKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArIHInYS9iL2hfd3No
LnB5JykpCi0KLSAgICBkZWYgdGVzdF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKHNlbGYp
OgotICAgICAgICBwYXRocyA9IGxpc3QoCi0gICAgICAgICAgICBkaXNwYXRjaC5fZW51bWVyYXRl
X2hhbmRsZXJfZmlsZV9wYXRocyhfVEVTVF9IQU5ETEVSU19ESVIpKQotICAgICAgICBwYXRocy5z
b3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCBsZW4ocGF0aHMpKQotICAgICAgICBl
eHBlY3RlZF9wYXRocyA9IFsKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFO
RExFUlNfRElSLCAnYWJvcnRfYnlfdXNlcl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5w
YXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5JyksCi0gICAgICAgICAg
ICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ29yaWdpbl9jaGVja193c2gu
cHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAn
c3ViJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbl9pbl90cmFuc2Zl
cl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNf
RElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5w
YXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3BsYWluX3dzaC5weScpLAotICAg
ICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHknKSwK
LSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkn
KSwKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHpp
cChleHBlY3RlZF9wYXRocywgcGF0aHMpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVmIHRlc3Rfc291cmNlX2hhbmRsZXJfZmlsZShzZWxm
KToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICBkaXNwYXRjaC5EaXNw
YXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICcnKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0
aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJ2RlZicpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGRp
c3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnMS8wJykKLSAgICAgICAgc2VsZi5mYWlsVW5s
ZXNzKGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlKAotICAgICAgICAgICAgICAgICdkZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6cGFzc1xuJwotICAgICAgICAg
ICAgICAgICdkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOnBhc3NcbicpKQot
Ci0gICAgZGVmIHRlc3Rfc291cmNlX3dhcm5pbmdzKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVy
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAg
IHdhcm5pbmdzID0gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQotICAgICAgICB3YXJuaW5n
cy5zb3J0KCkKLSAgICAgICAgZXhwZWN0ZWRfd2FybmluZ3MgPSBbCi0gICAgICAgICAgICAgICAg
KG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVT
VF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4nKSwKLSAgICAgICAg
ICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAg
ICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVfd3NoLnB5JykpICsK
LSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90
IGNhbGxhYmxlLicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGgu
am9pbigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3dy
b25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGRlZmluZWQuJyksCi0gICAgICAgICAgICAg
ICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBf
VEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weScpKSAr
Ci0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBpcyBub3QgZGVm
aW5lZC4nKSwKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQs
IGxlbih3YXJuaW5ncykpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHppcChleHBl
Y3RlZF93YXJuaW5ncywgd2FybmluZ3MpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
ZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiB0ZXN0X2RvX2V4dHJhX2hhbmRzaGFrZShzZWxm
KToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExF
UlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAg
ICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAgICAgcmVxdWVz
dC53c19vcmlnaW4gPSAnaHR0cDovL2V4YW1wbGUuY29tJwotICAgICAgICBkaXNwYXRjaGVyLmRv
X2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KSAgIyBNdXN0IG5vdCByYWlzZSBleGNlcHRpb24uCi0K
LSAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2JhZC5leGFtcGxlLmNvbScKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCkKLSAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEhhbmRzaGFrZUV4
Y2VwdGlvbiB3aXRoIDQwMyBzdGF0dXMnKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRz
aGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQwMywgZS5z
dGF0dXMpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLmZh
aWwoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcicgJSBlKQotCi0gICAgZGVmIHRlc3RfYWJvcnRf
ZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlz
cGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2Nr
Lk1vY2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvYWJvcnRfYnlf
dXNlcicKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJF
eGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuZG9fZXh0cmFf
aGFuZHNoYWtlLCByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfdHJhbnNmZXJfZGF0YShzZWxmKToK
LSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNf
RElSLCBOb25lKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AxJwot
ICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9vcmlnaW5fY2hl
Y2ssIHAxJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubign
XHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3ViL3BsYWluJwot
ICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRy
YW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWlu
X3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4sIE5vbmUnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1Jl
cXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQotICAgICAgICByZXF1
ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/JwotICAgICAgICByZXF1ZXN0LndzX3Byb3Rv
Y29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9z
dWIvcGxhaW4/LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5N
b2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvc3Vi
L3BsYWluP3E9dicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5vbmUKLSAgICAgICAg
ZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWluP3E9diwgTm9uZScK
LSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0
X3RyYW5zZmVyX2RhdGFfbm9faGFuZGxlcihzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRp
c3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICBmb3Ig
cmVzb3VyY2UgaW4gWycvYmxhbmsnLCAnL3N1Yi9ub25fY2FsbGFibGUnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICcvc3ViL25vX3dzaF9hdF90aGVfZW5kJywgJy9kb2VzL25vdC9leGlzdCdd
OgotICAgICAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2Nr
Lk1vY2tDb25uKCcnKSkKLSAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSByZXNvdXJj
ZQotICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMicKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAg
ICAgICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRp
c3BhdGNoRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyhzdHIo
ZSkuZmluZCgnTm8gaGFuZGxlcicpICE9IC0xKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQotCi0gICAgZGVmIHRlc3RfdHJhbnNmZXJf
ZGF0YV9oYW5kbGVyX2V4Y2VwdGlvbihzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3Bh
dGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0
ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycpKQotICAgICAg
ICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyJwotICAg
ICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AzJwotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgICAgIHNlbGYuZmFp
bCgpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLmZhaWxV
bmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBlKQotCi0gICAgZGVmIHRl
c3RfYWJvcnRfdHJhbnNmZXJfZGF0YShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3Bh
dGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0
ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL2Fi
b3J0X2J5X3VzZXInCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGhhbmRzaGFrZS5BYm9ydGVk
QnlVc2VyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRy
YW5zZmVyX2RhdGEsIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9zY2FuX2RpcihzZWxmKToKLSAg
ICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25l
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcv
c3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0g
ICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXIoc2VsZik6Ci0gICAgICAgIGRpc3Ag
PSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgX1RFU1RfSEFORExFUlNf
U1VCX0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAg
ICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXAp
Ci0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXJfYXNfcm9vdChzZWxmKToKLSAg
ICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfU1VCX0RJUiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfU1VCX0RJ
UikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL2V4Y2VwdGlvbl9pbl90cmFu
c2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElmKCcv
c3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWls
VW5sZXNzKCcvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvcGxhaW4nIGluIGRpc3AuX2hhbmRsZXJfc3Vp
dGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9kaXJfbXVzdF91bmRlcl9yb290KHNlbGYpOgot
ICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2InLCAnYS9iL2MnKSAgIyBPSwotICAgICAg
ICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2IvLy8nLCAnYS9iJykgICMgT0sKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIsICdhL2IvYycsICdhL2InKQotCi0gICAg
ZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3Bh
dGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICBkaXNwLmFk
ZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcvJywgJy9vcmlnaW5fY2hlY2snKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDUsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNl
bGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXAp
Ci0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9p
bl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFp
bFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAg
IHNlbGYuZmFpbFVubGVzcygnLycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzLCAnL2FsaWFzJywg
Jy9ub3QtZXhpc3QnKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRl
c3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RfZW5kdG9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlNWNmNjE1NzM5MTdkODdkMTM2NWIxNmE1OGMy
YzQxODhhOTEyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0X2VuZHRvZW5kLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzUz
ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29v
Z2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQot
IiIiRW5kLXRvLWVuZCB0ZXN0cyBmb3IgcHl3ZWJzb2NrZXQuIFRlc3RzIHN0YW5kYWxvbmUucHkg
YnkgZGVmYXVsdC4gWW91Ci1jYW4gYWxzbyB0ZXN0IG1vZF9weXdlYnNvY2tldCBob3N0ZWQgb24g
YW4gQXBhY2hlIHNlcnZlciBieSBzZXR0aW5nCi1fdXNlX2V4dGVybmFsX3NlcnZlciB0byBUcnVl
IGFuZCBtb2RpZnlpbmcgX2V4dGVybmFsX3NlcnZlcl9wb3J0IHRvIHBvaW50IHRvCi10aGUgcG9y
dCBvbiB3aGljaCB0aGUgQXBhY2hlIHNlcnZlciBpcyBydW5uaW5nLgotIiIiCi0KLQotaW1wb3J0
IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHNpZ25hbAotaW1wb3J0IHNvY2tldAotaW1wb3J0
IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBvcnQgdW5pdHRlc3QKLQot
aW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdl
YnNvY2tldCBtb2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQgY2xpZW50X2Zvcl90ZXN0aW5nCi1m
cm9tIHRlc3QgaW1wb3J0IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcKLQotCi0jIFNwZWNpYWwgbWVz
c2FnZSB0aGF0IHRlbGxzIHRoZSBlY2hvIHNlcnZlciB0byBzdGFydCBjbG9zaW5nIGhhbmRzaGFr
ZQotX0dPT0RCWUVfTUVTU0FHRSA9ICdHb29kYnllJwotCi1fU0VSVkVSX1dBUk1VUF9JTl9TRUMg
PSAwLjIKLQotIyBJZiB5b3Ugd2FudCB0byB1c2UgZXh0ZXJuYWwgc2VydmVyIHRvIHJ1biBlbmQg
dG8gZW5kIHRlc3RzLCBzZXQgZm9sbG93aW5nCi0jIHBhcmFtZXRlcnMgY29ycmVjdGx5LgotX3Vz
ZV9leHRlcm5hbF9zZXJ2ZXIgPSBGYWxzZQotX2V4dGVybmFsX3NlcnZlcl9wb3J0ID0gMAotCi0K
LSMgVGVzdCBib2R5IGZ1bmN0aW9ucwotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZShjbGllbnQp
OgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3Qn
KQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCi0gICAgY2xpZW50LnNlbmRfbWVz
c2FnZSgnaGVsbG93b3JsZCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdoZWxsb3dvcmxk
JykKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVf
Y2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVm
IF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFyeShjbGllbnQpOgotICAgIGNsaWVudC5j
b25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ2JpbmFyeScsIGJpbmFyeT1UcnVl
KQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCi0gICAg
Y2xpZW50LnNlbmRfbWVzc2FnZSgnXHgwMFx4ODBceGZlXHhmZlx4MDBceDgwJywgYmluYXJ5PVRy
dWUpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAn
LCBiaW5hcnk9VHJ1ZSkKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBjbGllbnQuYXNz
ZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3Nl
ZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUoY2xpZW50KToK
LSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JykK
LSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ3Rlc3QnKQotCi0gICAgY2xpZW50LnNlbmRfbWVz
c2FnZShfR09PREJZRV9NRVNTQUdFKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZShfR09PREJZ
RV9NRVNTQUdFKQotCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLSAgICBjbGll
bnQuc2VuZF9jbG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkK
LQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uKGNsaWVu
dCwgY29kZSwgcmVhc29uKToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2Vu
ZF9jbG9zZShjb2RlLCByZWFzb24pCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNv
ZGUsIHJlYXNvbikKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotCi0K
LWRlZiBfdW5tYXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6Ci0gICAgY2xpZW50
LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcsIG1hc2s9RmFsc2Up
Ci0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNsaWVudF9mb3JfdGVzdGluZy5TVEFU
VVNfUFJPVE9DT0xfRVJST1IsICcnKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Ns
b3NlZCgpCi0KLQotZGVmIF9tdXhfZWNob19jaGVja19wcm9jZWR1cmUobXV4X2NsaWVudCk6Ci0g
ICAgbXV4X2NsaWVudC5jb25uZWN0KCkKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9s
KDEsIDEwMjQpCi0KLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucyA9IGNsaWVudF9mb3JfdGVz
dGluZy5DbGllbnRPcHRpb25zKCkKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJf
aG9zdCA9ICdsb2NhbGhvc3QnCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMuc2VydmVyX3Bv
cnQgPSA4MAotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLm9yaWdpbiA9ICdodHRwOi8vbG9j
YWxob3N0JwotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnJlc291cmNlID0gJy9lY2hvJwot
ICAgIG11eF9jbGllbnQuYWRkX2NoYW5uZWwoMiwgbG9naWNhbF9jaGFubmVsX29wdGlvbnMpCi0g
ICAgbXV4X2NsaWVudC5zZW5kX2Zsb3dfY29udHJvbCgyLCAxMDI0KQotCi0gICAgbXV4X2NsaWVu
dC5zZW5kX21lc3NhZ2UoMiwgJ3Rlc3QnKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUo
MiwgJ3Rlc3QnKQotCi0gICAgbXV4X2NsaWVudC5hZGRfY2hhbm5lbCgzLCBsb2dpY2FsX2NoYW5u
ZWxfb3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9sKDMsIDEwMjQpCi0K
LSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAnaGVsbG8nKQotICAgIG11eF9jbGllbnQu
c2VuZF9tZXNzYWdlKDMsICd3b3JsZCcpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgy
LCAnaGVsbG8nKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUoMywgJ3dvcmxkJykKLQot
ICAgICMgRG9uJ3Qgc2VuZCBjbG9zZSBtZXNzYWdlIG9uIGNoYW5uZWwgaWQgMSBzbyB0aGF0IHNl
cnZlci1pbml0aWF0ZWQKLSAgICAjIGNsb3NpbmcgaGFuZHNoYWtlIHdvbid0IG9jY3VyLgotICAg
IG11eF9jbGllbnQuc2VuZF9jbG9zZSgyKQotICAgIG11eF9jbGllbnQuc2VuZF9jbG9zZSgzKQot
ICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoMikKLSAgICBtdXhfY2xpZW50LmFz
c2VydF9yZWNlaXZlX2Nsb3NlKDMpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfcGh5c2ljYWxfY29u
bmVjdGlvbl9jbG9zZSgpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlv
bl9yZWNlaXZlX2Nsb3NlKCkKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RCYXNlKHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJCYXNlIGNsYXNzIGZvciBlbmQtdG8tZW5kIHRlc3RzIHRoYXQgbGF1
bmNoIHB5d2Vic29ja2V0IHN0YW5kYWxvbmUKLSAgICBzZXJ2ZXIgYXMgYSBzZXBhcmF0ZSBwcm9j
ZXNzLCBjb25uZWN0IHRvIGl0IHVzaW5nIHRoZSBjbGllbnRfZm9yX3Rlc3RpbmcKLSAgICBtb2R1
bGUsIGFuZCBjaGVjayBpZiB0aGUgc2VydmVyIGJlaGF2ZXMgY29ycmVjdGx5IGJ5IGV4Y2hhbmdp
bmcgb3BlbmluZwotICAgIGhhbmRzaGFrZSBhbmQgZnJhbWVzIG92ZXIgYSBUQ1AgY29ubmVjdGlv
bi4KLSAgICAiIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zZXJ2ZXJf
c3RkZXJyID0gTm9uZQotICAgICAgICBzZWxmLnRvcF9kaXIgPSBvcy5wYXRoLmpvaW4ob3MucGF0
aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuLicpCi0gICAgICAgIG9zLnB1dGVudignUFlUSE9OUEFU
SCcsIG9zLnBhdGgucGF0aHNlcC5qb2luKHN5cy5wYXRoKSkKLSAgICAgICAgc2VsZi5zdGFuZGFs
b25lX2NvbW1hbmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBzZWxmLnRvcF9kaXIsICdt
b2RfcHl3ZWJzb2NrZXQnLCAnc3RhbmRhbG9uZS5weScpCi0gICAgICAgIHNlbGYuZG9jdW1lbnRf
cm9vdCA9IG9zLnBhdGguam9pbihzZWxmLnRvcF9kaXIsICdleGFtcGxlJykKLSAgICAgICAgcyA9
IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzLmJpbmQoKCdsb2NhbGhvc3QnLCAwKSkKLSAgICAg
ICAgKF8sIHNlbGYudGVzdF9wb3J0KSA9IHMuZ2V0c29ja25hbWUoKQotICAgICAgICBzLmNsb3Nl
KCkKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5nLkNsaWVudE9w
dGlvbnMoKQotICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0ID0gJ2xvY2FsaG9zdCcK
LSAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4gPSAnaHR0cDovL2xvY2FsaG9zdCcKLSAgICAg
ICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvZWNobycKLQotICAgICAgICAjIFRPRE8odG95
b3NoaW0pOiBFbGltaW5hdGUgbGF1bmNoaW5nIGEgc3RhbmRhbG9uZSBzZXJ2ZXIgb24gdXNpbmcK
LSAgICAgICAgIyBleHRlcm5hbCBzZXJ2ZXIuCi0KLSAgICAgICAgaWYgX3VzZV9leHRlcm5hbF9z
ZXJ2ZXI6Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0ID0gX2V4dGVybmFs
X3NlcnZlcl9wb3J0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0ID0gc2VsZi50ZXN0X3BvcnQKLQotICAgICMgVE9ETyh0eW9zaGlubyk6IFVzZSB0
ZWFyRG93biB0byBraWxsIHRoZSBzZXJ2ZXIuCi0KLSAgICBkZWYgX3J1bl9weXRob25fY29tbWFu
ZChzZWxmLCBjb21tYW5kbGluZSwgc3Rkb3V0PU5vbmUsIHN0ZGVycj1Ob25lKToKLSAgICAgICAg
cmV0dXJuIHN1YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRhYmxlXSArIGNvbW1hbmRsaW5lLCBj
bG9zZV9mZHM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN0
ZG91dCwgc3RkZXJyPXN0ZGVycikKLQotICAgIGRlZiBfcnVuX3NlcnZlcihzZWxmKToKLSAgICAg
ICAgYXJncyA9IFtzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAnLUgn
LCAnbG9jYWxob3N0JywKLSAgICAgICAgICAgICAgICAnLVYnLCAnbG9jYWxob3N0JywKLSAgICAg
ICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi50ZXN0X3BvcnQpLAotICAgICAgICAgICAgICAgICct
UCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAgICAgICAgJy1kJywgc2VsZi5kb2N1
bWVudF9yb290XQotCi0gICAgICAgICMgSW5oZXJpdCB0aGUgbGV2ZWwgc2V0IHRvIHRoZSByb290
IGxvZ2dlciBieSB0ZXN0IHJ1bm5lci4KLSAgICAgICAgcm9vdF9sb2dnZXIgPSBsb2dnaW5nLmdl
dExvZ2dlcigpCi0gICAgICAgIGxvZ19sZXZlbCA9IHJvb3RfbG9nZ2VyLmdldEVmZmVjdGl2ZUxl
dmVsKCkKLSAgICAgICAgaWYgbG9nX2xldmVsICE9IGxvZ2dpbmcuTk9UU0VUOgotICAgICAgICAg
ICAgYXJncy5hcHBlbmQoJy0tbG9nLWxldmVsJykKLSAgICAgICAgICAgIGFyZ3MuYXBwZW5kKGxv
Z2dpbmcuZ2V0TGV2ZWxOYW1lKGxvZ19sZXZlbCkubG93ZXIoKSkKLQotICAgICAgICByZXR1cm4g
c2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RkZXJyPXNlbGYuc2VydmVyX3N0ZGVycikKLQotICAgIGRlZiBfa2ls
bF9wcm9jZXNzKHNlbGYsIHBpZCk6Ci0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMy
JywgJ2N5Z3dpbicpOgotICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKAotICAgICAgICAgICAg
ICAgICgndGFza2tpbGwuZXhlJywgJy9mJywgJy9waWQnLCBzdHIocGlkKSksIGNsb3NlX2Zkcz1U
cnVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdL
SUxMKQotCi0KLWNsYXNzIEVuZFRvRW5kSHlCaVRlc3QoRW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAg
ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0K
LSAgICBkZWYgX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoc2VsZiwgdGVzdF9mdW5jdGlv
biwgb3B0aW9ucyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBhZGQgc29tZSBsb2dpYyB0byBw
b2xsIHRoZSBzZXJ2ZXIgdW50aWwgaXQKLSAgICAgICAgICAgICMgYmVjb21lcyByZWFkeQotICAg
ICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAg
IGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KG9wdGlvbnMpCi0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0gICAg
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5w
aWQpCi0KLSAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBz
ZWxmLl9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKHRlc3RfZnVuY3Rpb24sIHNlbGYuX29w
dGlvbnMpCi0KLSAgICBkZWYgX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3Qoc2VsZiwgdGVzdF9mdW5j
dGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5lbmFibGVfZGVmbGF0ZV9mcmFtZSgpCi0gICAgICAgICAgICBj
bGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChzZWxmLl9vcHRpb25zKQot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQot
ICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0
KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2
ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAg
ICAgICBzZWxmLCBvZmZlciwgcmVzcG9uc2VfY2hlY2tlciwgdGVzdF9mdW5jdGlvbik6Ci0gICAg
ICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5leHRlbnNpb25zICs9IG9mZmVyCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLmNo
ZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZSA9IHJlc3BvbnNlX2NoZWNrZXIKLSAgICAgICAgICAgIGNs
aWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0K
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAg
ICAgICAgICAgICAgICBpZiB0ZXN0X2Z1bmN0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLQotICAgICAgICAgICAgICAgIGNsaWVudC5h
c3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fY2xvc2Vf
d2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBjb2RlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFzb24pOgot
ICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNs
aWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCi0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQsIGNv
ZGUsIHJlYXNvbikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50
LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxs
X3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChz
ZWxmLCBvcHRpb25zLCBzdGF0dXMpOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVy
KCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9J
Tl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVf
Y2xpZW50KG9wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2xpZW50
LmNvbm5lY3QoKQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEh0
dHBTdGF0dXNFeGNlcHRpb24nKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudF9mb3JfdGVzdGlu
Zy5IdHRwU3RhdHVzRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdDYXRjaCB1bmV4cGVjdGVkIGV4Y2VwdGlvbicpCi0g
ICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQo
KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZl
ci5waWQpCi0KLSAgICBkZWYgX3J1bl9tdXhfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToKLSAg
ICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGll
bnQgPSBtdXhfY2xpZW50X2Zvcl90ZXN0aW5nLk11eENsaWVudChzZWxmLl9vcHRpb25zKQotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQotICAg
ICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIu
cGlkKQotCi0gICAgZGVmIHRlc3RfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3Qo
X2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19iaW5hcnkoc2VsZik6
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFy
eSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxm
Ll9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnllKQotCi0gICAgZGVm
IHRlc3RfdW5tYXNrZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF91bm1h
c2tlZF9mcmFtZV9jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVf
ZnJhbWUoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3QoX2VjaG9f
Y2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19kZWZsYXRlX2ZyYW1lX3NlcnZl
cl9jbG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVfdGVzdCgKLSAg
ICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCi0KLSAgICBkZWYg
dGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNw
ZWMuCi0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5
XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAg
ICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgIGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQot
ICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAg
ICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICBy
c3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNr
ZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdl
LWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9w
ZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVm
bGF0ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAg
ICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRl
X3R3b19mcmFtZXMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0g
ICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAg
Y2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhc
eGNkJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICBlbmQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHJz
djE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAg
ICAgICAgICAgJ1x4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRf
Zm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3Nl
cnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5
XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAg
ICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1l
dGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIu
Z2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRl
X3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAg
ICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24p
Ci0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29fbWVzc2FnZXMoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZy
b20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0u
c2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3
XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVY
VCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJl
YW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAn
LAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0g
ICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFz
c2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4
YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAg
ICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAg
ICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29k
ZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJz
djE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xp
ZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tl
cihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Bl
cm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZs
YXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAg
ICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVf
dHdvX21zZ3Nfc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGlu
IHRoZSBzcGVjLgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAg
ICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAg
ICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAg
ICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAg
IHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFy
eSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVh
bS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4
Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9m
b3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0g
ICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0
X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRl
cik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywg
cGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsoJ3NlcnZl
cl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Bl
cm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZs
YXRlOyBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAotICAgICAgICAgICAgICAgIHJlc3Bv
bnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0
ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3ByZWZlcmVuY2Uoc2VsZik6Ci0gICAgICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVz
IGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9ICdceGYyXHg0OFx4
Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRh
KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAg
IHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFy
eSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAg
ICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAg
ICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNw
b25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygn
cGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBz
ZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJt
ZXNzYWdlLWRlZmxhdGUnLCAnZGVmbGF0ZS1mcmFtZSddLAotICAgICAgICAgICAgICAgIHJlc3Bv
bnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0
ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfcGFyYW1ldGVycyhzZWxmKToKLSAgICAg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhh
bXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJc
eDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAg
ICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVf
YmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAg
ICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkK
LSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVm
IHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoWygnc2VydmVyX21heF93aW5kb3dfYml0cycsICcxMCcpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIn
LCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuZ2V0X3Bh
cmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3Qo
Ci0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93
X2JpdHM9MTA7ICcKLSAgICAgICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVy
J10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0
ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0
aF9iYWRfc2VydmVyX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAg
ICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNl
X2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBl
Y3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAgICAgc2VsZi5f
cnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2Fn
ZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTMwMDAwMDAnXSwKLSAgICAgICAgICAg
ICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0K
LSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX2JhZF9zZXJ2ZXJfbWF4
X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgot
ICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2Vy
dF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0
ZXIpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ug
b2YgcGVybWVzc2FnZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9k
ZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZl
cl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2No
ZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Vj
aG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfdW5kZWZpbmVkX3BhcmFtZXRlcihzZWxmKToKLSAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAg
ICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScp
Ci0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAg
ICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBmb289YmFyJ10sCi0gICAgICAgICAgICAgICAg
cmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAg
ZGVmIHRlc3RfZWNob19jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbihzZWxmKToKLSAgICAgICAg
c2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvY2xvc2UnCi0gICAgICAgIHNlbGYuX3J1bl9jbG9z
ZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hlY2tfcHJv
Y2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uLCAzMzMzLCAnc3Vuc3Vuc3Vuc3VuJykKLQotICAg
IGRlZiB0ZXN0X2VjaG9fY2xvc2Vfd2l0aF9lbXB0eV9ib2R5KHNlbGYpOgotICAgICAgICBzZWxm
Ll9vcHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKLSAgICAgICAgc2VsZi5fcnVuX2Nsb3NlX3dp
dGhfY29kZV9hbmRfcmVhc29uX3Rlc3QoCi0gICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1
cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24sIE5vbmUsICcnKQotCi0gICAgZGVmIHRlc3RfbXV4X2Vj
aG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl9tdXhfdGVzdChfbXV4X2VjaG9fY2hlY2tfcHJv
Y2VkdXJlKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25fcHJvdG9jb2xfZXJyb3Ioc2VsZik6Ci0g
ICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGgg
cHJvdG9jb2wgZXJyb3Igc3RhdHVzCi0gICAgICAgIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRz
IGRhdGEgd2l0aCBzb21lIHByb3RvY29sIGVycm9yLgotICAgICAgICAiIiIKLQotICAgICAgICBk
ZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQot
Ci0gICAgICAgICAgICAjIEludGVybWVkaWF0ZSBmcmFtZSB3aXRob3V0IGFueSBwcmVjZWRpbmcg
c3RhcnQgb2YgZnJhZ21lbnRhdGlvbgotICAgICAgICAgICAgIyBmcmFtZS4KLSAgICAgICAgICAg
IGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcygnXHg4MFx4ODAnLCAnJykKLSAg
ICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBj
bGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1BST1RPQ09MX0VSUk9SKQotCi0gICAgICAgIHNlbGYu
X3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl91bnN1cHBv
cnRlZF9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRz
IGEgY2xvc2UgZnJhbWUgd2l0aCB1bnN1cHBvcnRlZCBvcGVyYXRpb24KLSAgICAgICAgc3RhdHVz
IGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGRhdGEgYXNraW5nIHNvbWUgb3BlcmF0aW9uIHRo
YXQgaXMKLSAgICAgICAgbm90IHN1cHBvcnRlZCBieSB0aGUgc2VydmVyLgotICAgICAgICAiIiIK
LQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50
LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIFRleHQgZnJhbWUgd2l0aCBSU1YzIGJpdCByYWlz
ZWQuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoJ1x4
OTFceDgwJywgJycpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0g
ICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19VTlNVUFBPUlRFRF9EQVRB
KQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVz
dF9jbG9zZV9vbl9pbnZhbGlkX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRo
ZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIGludmFsaWQgZnJhbWUgcGF5bG9hZAot
ICAgICAgICBkYXRhIHN0YXR1cyBjb2RlIHdoZW4gdGhlIGNsaWVudCBzZW5kcyBhbiBpbnZhbGlk
IGZyYW1lIGxpa2UgY29udGFpbmluZwotICAgICAgICBpbnZhbGlkIFVURi04IGNoYXJhY3Rlci4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAg
ICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBUZXh0IGZyYW1lIHdpdGgg
aW52YWxpZCBVVEYtOCBzdHJpbmcuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdc
eDgwJywgcmF3PVRydWUpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
Ci0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19JTlZBTElEX0ZSQU1F
X1BBWUxPQURfREFUQSkKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQot
Ci0gICAgZGVmIHRlc3RfY2xvc2Vfb25faW50ZXJuYWxfZW5kcG9pbnRfZXJyb3Ioc2VsZik6Ci0g
ICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGgg
aW50ZXJuYWwgZW5kcG9pbnQKLSAgICAgICAgZXJyb3Igc3RhdHVzIGNvZGUgd2hlbiB0aGUgaGFu
ZGxlciBkb2VzIGJhZCBvcGVyYXRpb24uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX29w
dGlvbnMucmVzb3VyY2UgPSAnL2ludGVybmFsX2Vycm9yJwotCi0gICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0gICAgICAgICAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikKLQotICAgICAgICBzZWxm
Ll9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAgIyBUT0RPKHRveW9zaGltKTogQWRkIHRl
c3RzIHRvIHZlcmlmeSBpbnZhbGlkIGFic29sdXRlIHVyaSBoYW5kbGluZyBsaWtlCi0gICAgIyBo
b3N0IHVubWF0Y2gsIHBvcnQgdW5tYXRjaCBhbmQgaW52YWxpZCBwb3J0IGRlc2NyaXB0aW9uICgn
Oicgd2l0aG91dCBwb3J0Ci0gICAgIyBudW1iZXIpLgotCi0gICAgZGVmIHRlc3RfYWJzb2x1dGVf
dXJpKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyBhYnNvbHV0ZSB1cmkgcmVxdWVzdC4iIiIKLQot
ICAgICAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAgICBvcHRpb25zLnJlc291cmNl
ID0gJ3dzOi8vbG9jYWxob3N0OiVkL2VjaG8nICUgb3B0aW9ucy5zZXJ2ZXJfcG9ydAotICAgICAg
ICBzZWxmLl9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKF9lY2hvX2NoZWNrX3Byb2NlZHVy
ZSwgb3B0aW9ucykKLQotICAgIGRlZiB0ZXN0X29yaWdpbl9jaGVjayhzZWxmKToKLSAgICAgICAg
IiIiVGVzdHMgaHR0cCBmYWxsYmFjayBvbiBvcmlnaW4gY2hlY2sgZmFpbC4iIiIKLQotICAgICAg
ICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAgICBvcHRpb25zLnJlc291cmNlID0gJy9v
cmlnaW5fY2hlY2snCi0gICAgICAgICMgU2VydmVyIHNob3dzIHdhcm5pbmcgbWVzc2FnZSBmb3Ig
aHR0cCA0MDMgZmFsbGJhY2suIFRoaXMgd2FybmluZwotICAgICAgICAjIG1lc3NhZ2UgaXMgY29u
ZnVzaW5nLiBGb2xsb3dpbmcgcGlwZSBkaXNwb3NlcyB3YXJuaW5nIG1lc3NhZ2VzLgotICAgICAg
ICBzZWxmLnNlcnZlcl9zdGRlcnIgPSBzdWJwcm9jZXNzLlBJUEUKLSAgICAgICAgc2VsZi5fcnVu
X2h0dHBfZmFsbGJhY2tfdGVzdChvcHRpb25zLCA0MDMpCi0KLSAgICBkZWYgdGVzdF92ZXJzaW9u
X2NoZWNrKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyBodHRwIGZhbGxiYWNrIG9uIHZlcnNpb24g
Y2hlY2sgZmFpbC4iIiIKLQotICAgICAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAg
ICBvcHRpb25zLnZlcnNpb24gPSA5OQotICAgICAgICBzZWxmLl9ydW5faHR0cF9mYWxsYmFja190
ZXN0KG9wdGlvbnMsIDQwMCkKLQotCi1jbGFzcyBFbmRUb0VuZEh5QmkwMFRlc3QoRW5kVG9FbmRU
ZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNl
LnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgot
ICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNs
aWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50X2h5YmkwMChzZWxmLl9vcHRp
b25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xp
ZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vf
c29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2Vz
cyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIHRlc3RfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5f
cnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19zZXJ2
ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2Nl
ZHVyZV93aXRoX2dvb2RieWUpCi0KLQotY2xhc3MgRW5kVG9FbmRUZXN0V2l0aEVjaG9DbGllbnQo
RW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0Vu
ZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX2NoZWNrX2V4YW1wbGVfZWNob19jbGll
bnRfcmVzdWx0KAotICAgICAgICBzZWxmLCBleHBlY3RlZCwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0
YSk6Ci0gICAgICAgIGFjdHVhbCA9IHN0ZG91dGRhdGEuZGVjb2RlKCJ1dGYtOCIpCi0gICAgICAg
IGlmIGFjdHVhbCAhPSBleHBlY3RlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5l
eHBlY3RlZCByZXN1bHQgb24gZXhhbXBsZSBlY2hvIGNsaWVudDogJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICclciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkLCBhY3R1YWwpKQotICAgICAgICBpZiBzdGRlcnJk
YXRhIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVk
IGVycm9yIG1lc3NhZ2Ugb24gZXhhbXBsZSBlY2hvICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY2xpZW50OiAlcicgJSBzdGRlcnJkYXRhKQotCi0gICAgZGVmIHRlc3RfZXhhbXBsZV9l
Y2hvX2NsaWVudChzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgZWNob19jbGllbnQu
cHkgZXhhbXBsZSBjYW4gdGFsayB3aXRoIHRoZSBzZXJ2ZXIuIiIiCi0KLSAgICAgICAgc2VydmVy
ID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xl
ZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnRfY29tbWFuZCA9
IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICBzZWxmLnRvcF9kaXIsICdleGFtcGxlJywg
J2VjaG9fY2xpZW50LnB5JykKLQotICAgICAgICAgICAgIyBFeHBlY3RlZCBvdXRwdXQgZm9yIHRo
ZSBkZWZhdWx0IG1lc3NhZ2VzLgotICAgICAgICAgICAgZGVmYXVsdF9leHBlY3RhdGlvbiA9ICgn
U2VuZDogSGVsbG9cbicgJ1JlY3Y6IEhlbGxvXG4nCi0gICAgICAgICAgICAgICAgdSdTZW5kOiBc
dTY1ZTVcdTY3MmNcbicgdSdSZWN2OiBcdTY1ZTVcdTY3MmNcbicKLSAgICAgICAgICAgICAgICAn
U2VuZCBjbG9zZVxuJyAnUmVjdiBhY2tcbicpCi0KLSAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50
X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0KV0KLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29tbWFu
ZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0YSwg
c3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBzZWxmLl9jaGVj
a19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dF9leHBlY3RhdGlvbiwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLQotICAgICAgICAgICAgIyBQ
cm9jZXNzIGEgYmlnIG1lc3NhZ2UgZm9yIHdoaWNoIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGlz
IHVzZWQuCi0gICAgICAgICAgICAjIFRvIGhhbmRsZSBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCwg
d3NfdmVyc2lvbiBhdHRyaWJ1dGUgd2lsbCBiZQotICAgICAgICAgICAgIyBhY2Nlc3NlZC4gVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IHdzX3ZlcnNpb24gaXMgY29ycmVjdGx5IHNldC4KLSAgICAgICAg
ICAgIGJpZ19tZXNzYWdlID0gJ2EnICogMTAyNAotICAgICAgICAgICAgYXJncyA9IFtjbGllbnRf
Y29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2Vy
dmVyX3BvcnQpLAotICAgICAgICAgICAgICAgICAgICAnLW0nLCBiaWdfbWVzc2FnZV0KLSAgICAg
ICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLCBzdGRvdXQ9c3Vi
cHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSA9IGNsaWVu
dC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBleHBlY3RlZCA9ICgnU2VuZDogJXNcblJlY3Y6
ICVzXG5TZW5kIGNsb3NlXG5SZWN2IGFja1xuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAo
YmlnX21lc3NhZ2UsIGJpZ19tZXNzYWdlKSkKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1w
bGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAgICAgICAgIGV4cGVjdGVkLCBzdGRvdXRk
YXRhLCBzdGRlcnJkYXRhKQotCi0gICAgICAgICAgICAjIFRlc3QgdGhlIHBlcm1lc3NhZ2UtZGVm
bGF0ZSBleHRlbnNpb24uCi0gICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21tYW5kLAotICAg
ICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCksCi0g
ICAgICAgICAgICAgICAgICAgICctLXVzZV9wZXJtZXNzYWdlX2RlZmxhdGUnXQotICAgICAgICAg
ICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUpCi0gICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNv
bW11bmljYXRlKCkKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRf
cmVzdWx0KAotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uLCBzdGRvdXRk
YXRhLCBzdGRlcnJkYXRhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2ls
bF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAg
ICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4dGVu
c2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjOGIxMjYyZDg5Yjk0OTY0
OTY1YzNjMzhkNWNjNDk0NDc5YzFiNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwzNjAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHly
aWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgZXh0ZW5zaW9ucyBtb2R1bGUuIiIiCi0KLQotaW1w
b3J0IHVuaXR0ZXN0Ci1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0
ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGV4
dGVuc2lvbnMKLQotCi1jbGFzcyBFeHRlbnNpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiQSB1bml0dGVzdCBmb3Igbm9uLWNsYXNzIG1ldGhvZHMgaW4gZXh0ZW5zaW9ucy5weSIi
IgotCi0gICAgZGVmIHRlc3RfcGFyc2Vfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCBO
b25lKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9w
YXJzZV93aW5kb3dfYml0cywgJ2Zvb2JhcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnIDggJykKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2Jp
dHMsICdhOGEnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAwMDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwMDAwOCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dp
bmRvd19iaXRzLCAnMHg4JykKLQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzkuNScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOC4w
JykKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2Jp
dHMsICc4JykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRv
d19iaXRzLCAnMTUnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnLTgnKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAnKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJzcnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4
dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMTYnKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcygKLSAgICAgICAgICAgICAgICBWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJzEwMDAwMDAwJykKLQotCi1jbGFzcyBDb21wcmVzc2lvbk1ldGhvZFBhcmFtZXRl
clBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIF9w
YXJzZV9jb21wcmVzc2lvbl9tZXRob2Qgd2hpY2ggcGFyc2VzIHRoZSBjb21wcmVzc2lvbgotICAg
IG1ldGhvZCBkZXNjcmlwdGlvbiB1c2VkIGJ5IHBlcmZyYW1lLWNvbXByZXNzaW9uIGFuZCBwZXJt
ZXNzYWdlLWNvbXByZXNzaW9uCi0gICAgZXh0ZW5zaW9uIGluIHRoZWlyICJtZXRob2QiIGV4dGVu
c2lvbiBwYXJhbWV0ZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9tZXRob2Rfc2lt
cGxlKHNlbGYpOgotICAgICAgICBtZXRob2RfbGlzdCA9IGV4dGVuc2lvbnMuX3BhcnNlX2NvbXBy
ZXNzaW9uX21ldGhvZCgnZm9vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWV0
aG9kX2xpc3QpKQotICAgICAgICBtZXRob2QgPSBtZXRob2RfbGlzdFswXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdmb28nLCBtZXRob2QubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDAsIGxlbihtZXRob2QuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICBkZWYgdGVzdF9wYXJz
ZV9tZXRob2Rfd2l0aF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0gZXh0
ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb287IHg7IHk9MTAnKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdCkpCi0gICAgICAgIG1ldGhvZCA9
IG1ldGhvZF9saXN0WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2ZvbycsIG1ldGhvZC5u
YW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1ldGhvZC5nZXRfcGFyYW1l
dGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZC5oYXNfcGFyYW1ldGVyKCd4
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbWV0aG9kLmdldF9wYXJhbWV0ZXJf
dmFsdWUoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZC5oYXNfcGFyYW1ldGVy
KCd5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzEwJywgbWV0aG9kLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ3knKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhvZF93aXRoX3F1b3RlZF9w
YXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0gZXh0ZW5zaW9ucy5fcGFyc2Vf
Y29tcHJlc3Npb25fbWV0aG9kKAotICAgICAgICAgICAgJ2ZvbzsgeD0iSGVsbG8gV29ybGQiOyB5
PTEwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWV0aG9kX2xpc3QpKQotICAg
ICAgICBtZXRob2QgPSBtZXRob2RfbGlzdFswXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdm
b28nLCBtZXRob2QubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihtZXRo
b2QuZ2V0X3BhcmFtZXRlcnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtZXRob2QuaGFz
X3BhcmFtZXRlcigneCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCcs
IG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtZXRob2QuaGFzX3BhcmFtZXRlcigneScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcx
MCcsIG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd5JykpCi0KLSAgICBkZWYgdGVzdF9wYXJz
ZV9tZXRob2RfbXVsdGlwbGUoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0gZXh0ZW5zaW9u
cy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb28sIGJhcicpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMiwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
Zm9vJywgbWV0aG9kX2xpc3RbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAs
IGxlbihtZXRob2RfbGlzdFswXS5nZXRfcGFyYW1ldGVycygpKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnYmFyJywgbWV0aG9kX2xpc3RbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDAsIGxlbihtZXRob2RfbGlzdFsxXS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgIGRl
ZiB0ZXN0X3BhcnNlX21ldGhvZF9tdWx0aXBsZV9tZXRob2RzX3dpdGhfcXVvdGVkX3BhcmFtZXRl
cihzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNpb25zLl9wYXJzZV9jb21wcmVz
c2lvbl9tZXRob2QoCi0gICAgICAgICAgICAnZm9vOyB4PSJIZWxsbyBXb3JsZCIsIGJhcjsgeT0x
MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kX2xpc3RbMF0ubmFtZSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdFswXS5nZXRfcGFyYW1ldGVycygp
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZF9saXN0WzBdLmhhc19wYXJhbWV0ZXIo
J3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIG1ldGhvZF9saXN0WzBdLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3gnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnYmFyJywgbWV0aG9kX2xpc3RbMV0ubmFtZSgpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdFsxXS5nZXRfcGFyYW1l
dGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZF9saXN0WzFdLmhhc19wYXJh
bWV0ZXIoJ3knKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTAnLCBtZXRob2RfbGlzdFsx
XS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd5JykpCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfbWV0aG9k
X2Rlc2Nfc2ltcGxlKHNlbGYpOgotICAgICAgICBwYXJhbXMgPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdmb28nKQotICAgICAgICBkZXNjID0gZXh0ZW5zaW9ucy5fY3JlYXRlX2FjY2VwdGVk
X21ldGhvZF9kZXNjKCdmb28nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRfcGFyYW1ldGVycygpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdmb28nLCBkZXNjKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX21ldGhvZF9k
ZXNjX3dpdGhfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgcGFyYW1zID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcignZm9vJykKLSAgICAgICAgcGFyYW1zLmFkZF9wYXJhbWV0ZXIoJ3gnLCAn
SGVsbG8sIFdvcmxkJykKLSAgICAgICAgcGFyYW1zLmFkZF9wYXJhbWV0ZXIoJ3knLCAnMTAnKQot
ICAgICAgICBkZXNjID0gZXh0ZW5zaW9ucy5fY3JlYXRlX2FjY2VwdGVkX21ldGhvZF9kZXNjKCdm
b28nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcmFtcy5nZXRfcGFyYW1ldGVycygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdm
b287IHg9IkhlbGxvLCBXb3JsZCI7IHk9MTAnLCBkZXNjKQotCi0KLWNsYXNzIERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAi
IiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvciBwYXJzZXMgZ2l2ZW4KLSAgICBleHRlbnNpb24gcGFyYW1ldGVyIGNvcnJlY3RseS4KLSAg
ICAiIiIKLQotICAgIGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3Ig
PSBleHRlbnNpb25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ2RlZmxhdGUtZnJhbWUnKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRJc0luc3RhbmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgICAgIHBy
b2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAg
ICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScp
KQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IpCi0KLSAgICBkZWYgdGVzdF9taW5pbWFsX29mZmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNz
b3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAg
ICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKSkKLQotICAg
ICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMo
KSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6bGliLk1BWF9XQklUUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRz
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5f
bm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRv
d19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIo
J21heF93aW5kb3dfYml0cycsICcxMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNw
b25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMCwgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93
aW5kb3dfYml0cykKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfb3V0X29mX3JhbmdlX21heF93
aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1l
dGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lv
bnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0g
ICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF92YWx1ZShzZWxm
KToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJh
bWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93
X2JpdHMnLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
bmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29m
ZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBh
cmFtZXRlci5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3Io
cGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywg
cmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25z
ZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvY2Vzc29y
Ll9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rf
b2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyX3dpdGhfdmFsdWUoc2VsZik6Ci0gICAgICAg
IHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUn
KQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3Zlcics
ICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4
dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVy
X3dpdGhfdW5rbm93bl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0
ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVu
c2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAg
ICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkp
Ci0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3JQYXJzaW5nVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgY2hlY2tpbmcgdGhh
dCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvciBwYXJzZXMKLSAgICBnaXZlbiBl
eHRlbnNpb24gcGFyYW1ldGVyIGNvcnJlY3RseS4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X3Jl
Z2lzdHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNp
b25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
J3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJv
Y2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5QZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0ZXN0X21pbmltYWxfb2Zm
ZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nv
ci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVy
bWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHpsaWIuTUFYX1dCSVRTLAotICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQot
Ci0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAg
IHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0
ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19i
aXRzJywgJzEwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVm
bGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJyldLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxMCwgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0
cykKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfb3V0X29mX3JhbmdlX21heF93aW5kb3dfYml0
cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcign
cGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3Nl
cnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lv
bnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkp
Ci0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X3ZhbHVl
KHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdw
ZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2Vy
dmVyX21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lv
bnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkp
Ci0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0g
ICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJl
c3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25l
KV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9u
b19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0
X3Rha2VvdmVyX3dpdGhfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRl
ci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsICdmb29iYXInKQot
ICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9u
UHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91
bmtub3duX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFk
ZF9wYXJhbWV0ZXIoJ2ZvbycsICdiYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25z
LlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAg
ICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQot
Ci0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yQnVpbGRpbmdUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yIGJ1aWxkcwotICAgIGEgcmVzcG9u
c2UgYmFzZWQgb24gc3BlY2lmaWVkIG9wdGlvbnMgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAg
ZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBh
cmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScp
Ci0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdjbGllbnRfbWF4X3dpbmRvd19iaXRz
JywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0
ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xp
ZW50X21heF93aW5kb3dfYml0cygxMCkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5n
ZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVz
c2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCAnMTAnKV0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNl
X3dpdGhfbWF4X3dpbmRvd19iaXRzX3dpdGhvdXRfY2xpZW50X3Blcm1pc3Npb24oc2VsZik6Ci0g
ICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNz
YWdlLWRlZmxhdGUnKSkKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19i
aXRzKDEwKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVz
cG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZXNwb25zZSkKLQotICAgIGRlZiB0
ZXN0X3Jlc3BvbnNlX3dpdGhfdHJ1ZV9mb3Jfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZScpKQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRf
dGFrZW92ZXIoVHJ1ZSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ2NsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRo
X2ZhbHNlX2Zvcl9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3Ig
PSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAg
ICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0K
LSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihGYWxzZSkK
LQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2Uu
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFy
YW1ldGVycygpKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNz
b3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9yZWdpc3RyeShzZWxmKToK
LSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcigK
LSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWNv
bXByZXNzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLlBlck1lc3NhZ2VDb21wcmVzc0V4
dGVuc2lvblByb2Nlc3NvcikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVu
aXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2Uu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhNzhhYzA1ZTU4NzFkMTU5YTY3Zjdl
NDE2ZjMwMjcwMGZhMGY5MjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQorKysgL2Rldi9udWxsCkBA
IC0xLDE4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIw
MTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UuX2Jhc2UgbW9kdWxlLiIiIgotCi0KLWltcG9y
dCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBs
b2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29t
bW9uIGltcG9ydCBFeHRlbnNpb25QYXJhbWV0ZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1v
biBpbXBvcnQgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
Y29tbW9uIGltcG9ydCBmb3JtYXRfZXh0ZW5zaW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29t
bW9uIGltcG9ydCBwYXJzZV9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hh
a2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90b2NvbAotCi0KLWNsYXNzIFZh
bGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0
ZXN0IGZvciB2YWxpZGF0ZV9zdWJwcm90b2NvbCBtZXRob2QuIiIiCi0KLSAgICBkZWYgdGVzdF92
YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyBTaG91bGQgc3VjY2VlZC4KLSAg
ICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZScpCi0gICAgICAgIHZhbGlkYXRlX3N1
YnByb3RvY29sKCdTYW1wbGUnKQotICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxl
XHg3ZXByb3RvY29sJykKLQotICAgICAgICAjIFNob3VsZCBmYWlsLgotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ3NhbXBsZVx4MDlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhh
bmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3Vi
cHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wn
KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAnc2FtcGxlXHgyMHByb3RvY29sJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0
ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4N2Zwcm90
b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotICAgICAgICAgICAgICAgICAg
ICAgICAgICB1J1x1NjVlNVx1NjcyYycpCi0KLQotX1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEEg
PSBbCi0gICAgKCdmb28nLCBbKCdmb28nLCBbXSldKSwKLSAgICAoJ2ZvbzsgYmFyJywgWygnZm9v
JywgWygnYmFyJywgTm9uZSldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6JywgWygnZm9vJywgWygn
YmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPWJhejsgY2FyPWNkcicsIFsoJ2Zvbycs
IFsoJ2JhcicsICdiYXonKSwgKCdjYXInLCAnY2RyJyldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6
LCBjYXI7IGNkcicsCi0gICAgIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKV0pLCAoJ2NhcicsIFso
J2NkcicsIE5vbmUpXSldKSwKLSAgICAoJ2EsIGIsIGMsIGQnLAotICAgICBbKCdhJywgW10pLCAo
J2InLCBbXSksICgnYycsIFtdKSwgKCdkJywgW10pXSksCi0gICAgXQotCi0KLV9URVNUX1FVT1RF
RF9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbzsgYmFyPSIiJywgWygnZm9vJywgWygnYmFy
JywgJycpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSIgYmF6ICInLCBbKCdmb28nLCBbKCdiYXInLCAn
IGJheiAnKV0pXSksCi0gICAgKCdmb287IGJhcj0iLGJhejsiJywgWygnZm9vJywgWygnYmFyJywg
JyxiYXo7JyldKV0pLAotICAgICgnZm9vOyBiYXI9IlxcXHJcXFxuYmF6IicsIFsoJ2ZvbycsIFso
J2JhcicsICdcclxuYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9IlxcImJheiInLCBbKCdmb28n
LCBbKCdiYXInLCAnImJheicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSJceGJiYmF6IicsIFsoJ2Zv
bycsIFsoJ2JhcicsICdceGJiYmF6JyldKV0pLAotICAgIF0KLQotCi1fVEVTVF9SRURVTkRBTlRf
VE9LRU5fRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb28gXHQgJywgWygnZm9vJywgW10pXSks
Ci0gICAgKCdmb287IFxyXG4gYmFyJywgWygnZm9vJywgWygnYmFyJywgTm9uZSldKV0pLAotICAg
ICgnZm9vOyBiYXI9XHJcbiBcclxuIGJheicsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKV0pXSks
Ci0gICAgKCdmb28gO2JhciA9IGJheiAnLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAot
ICAgICgnZm9vLGJhciwsYmF6JywgWygnZm9vJywgW10pLCAoJ2JhcicsIFtdKSwgKCdiYXonLCBb
XSldKSwKLSAgICBdCi0KLQotX1RFU1RfUkVEVU5EQU5UX1FVT1RFRF9FWFRFTlNJT05fREFUQSA9
IFsKLSAgICAoJ2ZvbzsgYmFyPSJcclxuIFxyXG4gYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICcg
IGJheicpXSldKSwKLSAgICBdCi0KLQotY2xhc3MgRXh0ZW5zaW9uc1BhcnNlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotCi0gICAgZGVmIF92ZXJpZnlfZXh0ZW5zaW9uX2xpc3Qoc2VsZiwgZXhw
ZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAiIiJWZXJpZmllcyB0aGF0IEV4dGVu
c2lvblBhcmFtZXRlciBvYmplY3RzIGluIGFjdHVhbF9saXN0IGhhdmUgdGhlCi0gICAgICAgIHNh
bWUgbWVtYmVycyBhcyBleHRlbnNpb24gZGVmaW5pdGlvbnMgaW4gZXhwZWN0ZWRfbGlzdC4gRXh0
ZW5zaW9uCi0gICAgICAgIGRlZmluaXRpb24gdXNlZCBpbiB0aGlzIHRlc3QgaXMgYSBwYWlyIG9m
IGFuIGV4dGVuc2lvbiBuYW1lIGFuZCBhCi0gICAgICAgIHBhcmFtZXRlciBkaWN0aW9uYXJ5Lgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0
KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlw
KGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAgICAgICAgIChuYW1lLCBwYXJhbWV0
ZXJzKSA9IGV4cGVjdGVkCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIGFjdHVh
bC5fbmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW1ldGVycywgYWN0dWFs
Ll9wYXJhbWV0ZXJzKQotCi0gICAgZGVmIHRlc3RfcGFyc2Uoc2VsZik6Ci0gICAgICAgIGZvciBm
b3JtYXR0ZWRfc3RyaW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRB
OgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAg
ICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9xdW90ZWRfZGF0YShzZWxmKToKLSAgICAgICAgZm9yIGZvcm1hdHRl
ZF9zdHJpbmcsIGRlZmluaXRpb24gaW4gX1RFU1RfUVVPVEVEX0VYVEVOU0lPTl9EQVRBOgotICAg
ICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRl
ZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYg
dGVzdF9wYXJzZV9yZWR1bmRhbnRfZGF0YShzZWxmKToKLSAgICAgICAgZm9yIChmb3JtYXR0ZWRf
c3RyaW5nLAotICAgICAgICAgICAgIGRlZmluaXRpb24pIGluIF9URVNUX1JFRFVOREFOVF9UT0tF
Tl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlz
dCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRl
ZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVkdW5kYW50X3F1b3RlZF9kYXRhKHNl
bGYpOgotICAgICAgICBmb3IgKGZvcm1hdHRlZF9zdHJpbmcsCi0gICAgICAgICAgICAgZGVmaW5p
dGlvbikgaW4gX1RFU1RfUkVEVU5EQU5UX1FVT1RFRF9FWFRFTlNJT05fREFUQToKLSAgICAgICAg
ICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0
aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3Rf
cGFyc2VfYmFkX2RhdGEoc2VsZik6Ci0gICAgICAgIF9URVNUX0JBRF9FWFRFTlNJT05fREFUQSA9
IFsKLSAgICAgICAgICAgICgnZm9vOyA7ICcpLAotICAgICAgICAgICAgKCdmb287IGEgYScpLAot
ICAgICAgICAgICAgKCdmb28gZm9vJyksCi0gICAgICAgICAgICAoJywsLCcpLAotICAgICAgICAg
ICAgKCdmb287IGJhcj0nKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9ImhvZ2UnKSwKLSAgICAg
ICAgICAgICgnZm9vOyBiYXI9ImFcciInKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9IlxcXHhm
ZiInKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9XHJhJyksCi0gICAgICAgICAgICBdCi0KLSAg
ICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcgaW4gX1RFU1RfQkFEX0VYVEVOU0lPTl9EQVRBOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICAgICAgRXh0ZW5zaW9u
UGFyc2luZ0V4Y2VwdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucywgZm9ybWF0dGVkX3N0cmluZykKLQot
Ci1jbGFzcyBGb3JtYXRFeHRlbnNpb25zVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBk
ZWYgdGVzdF9mb3JtYXRfZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAgZm9yIGZvcm1hdHRlZF9z
dHJpbmcsIGRlZmluaXRpb25zIGluIF9URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgotICAgICAg
ICAgICAgZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgICAgICBmb3IgZGVmaW5pdGlvbiBpbiBkZWZp
bml0aW9uczoKLSAgICAgICAgICAgICAgICAobmFtZSwgcGFyYW1ldGVycykgPSBkZWZpbml0aW9u
Ci0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gRXh0ZW5zaW9uUGFyYW1ldGVyKG5hbWUpCi0g
ICAgICAgICAgICAgICAgZXh0ZW5zaW9uLl9wYXJhbWV0ZXJzID0gcGFyYW1ldGVycwotICAgICAg
ICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbikKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZm9ybWF0dGVkX3N0cmluZywgZm9ybWF0X2V4
dGVuc2lvbnMoZXh0ZW5zaW9ucykpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAg
ICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9o
YW5kc2hha2VfaHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM4NzEzODIz
MGIzMDNiZjM4ZGM0Y2Y4NGMxMjkwYTg4ZjdiZDhkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5Ymku
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MzQgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFuZHNoYWtlIG1vZHVsZS4i
IiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUg
c3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jh
c2UgaW1wb3J0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpIGltcG9ydCBIYW5kc2hha2VyCi0KLWltcG9ydCBtb2Nr
Ci0KLQotY2xhc3MgUmVxdWVzdERlZmluaXRpb24ob2JqZWN0KToKLSAgICAiIiJBIGNsYXNzIGZv
ciBob2xkaW5nIGRhdGEgZm9yIGNvbnN0cnVjdGluZyBvcGVuaW5nIGhhbmRzaGFrZSBzdHJpbmdz
IGZvcgotICAgIHRlc3RpbmcgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2QsIHVyaSwgaGVhZGVycyk6Ci0gICAg
ICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNlbGYudXJpID0gdXJpCi0gICAgICAg
IHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLQotCi1kZWYgX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCk6Ci0gICAgcmV0dXJuIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAgICAnR0VUJywgJy9kZW1v
JywKLSAgICAgICAgeydIb3N0JzogJ3NlcnZlci5leGFtcGxlLmNvbScsCi0gICAgICAgICAnVXBn
cmFkZSc6ICd3ZWJzb2NrZXQnLAotICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0g
ICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JywK
LSAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAotICAgICAgICAgJ09yaWdp
bic6ICdodHRwOi8vZXhhbXBsZS5jb20nfSkKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKToKLSAgICBjb25uID0gbW9jay5Nb2NrQ29ubignJykKLSAgICByZXR1cm4gbW9jay5N
b2NrUmVxdWVzdCgKLSAgICAgICAgbWV0aG9kPXJlcXVlc3RfZGVmLm1ldGhvZCwKLSAgICAgICAg
dXJpPXJlcXVlc3RfZGVmLnVyaSwKLSAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2RlZi5oZWFk
ZXJzLAotICAgICAgICBjb25uZWN0aW9uPWNvbm4pCi0KLQotZGVmIF9jcmVhdGVfaGFuZHNoYWtl
cihyZXF1ZXN0KToKLSAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1v
Y2tEaXNwYXRjaGVyKCkpCi0gICAgcmV0dXJuIGhhbmRzaGFrZXIKLQotCi1jbGFzcyBTdWJwcm90
b2NvbENob29zaW5nRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkEgZGlzcGF0Y2hlciBmb3Ig
dGVzdGluZy4gVGhpcyBkaXNwYXRjaGVyIHNldHMgdGhlIGktdGggc3VicHJvdG9jb2wKLSAgICBv
ZiByZXF1ZXN0ZWQgb25lcyB0byB3c19wcm90b2NvbCB3aGVyZSBpIGlzIGdpdmVuIG9uIGNvbnN0
cnVjdGlvbiBhcyBpbmRleAotICAgIGFyZ3VtZW50LiBJZiBpbmRleCBpcyBuZWdhdGl2ZSwgZGVm
YXVsdF92YWx1ZSB3aWxsIGJlIHNldCB0byB3c19wcm90b2NvbC4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBpbmRleCwgZGVmYXVsdF92YWx1ZT1Ob25lKToKLSAgICAgICAgc2Vs
Zi5pbmRleCA9IGluZGV4Ci0gICAgICAgIHNlbGYuZGVmYXVsdF92YWx1ZSA9IGRlZmF1bHRfdmFs
dWUKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAg
ICAgICAgaWYgc2VsZi5pbmRleCA+PSAwOgotICAgICAgICAgICAgY29ubl9jb250ZXh0LndzX3By
b3RvY29sID0gY29ubl9jb250ZXh0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNbCi0gICAgICAgICAg
ICAgICAgc2VsZi5pbmRleF0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNvbm5fY29udGV4
dC53c19wcm90b2NvbCA9IHNlbGYuZGVmYXVsdF92YWx1ZQotCi0gICAgZGVmIHRyYW5zZmVyX2Rh
dGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEhhbmRzaGFr
ZUFib3J0ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBwYXNzCi0KLQotY2xhc3MgQWJvcnRp
bmdEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBU
aGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpbgotICAgIGRvX2V4dHJhX2hhbmRz
aGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAgICBkZWYgZG9fZXh0cmFf
aGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUFi
b3J0ZWRFeGNlcHRpb24oJ0FuIGV4Y2VwdGlvbiB0byByZWplY3QgdGhlIHJlcXVlc3QnKQotCi0g
ICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwot
Ci0KLWNsYXNzIEFib3J0ZWRCeVVzZXJEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNw
YXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuCi0gICAgQWJvcnRl
ZEJ5VXNlckV4Y2VwdGlvbiBpbiBkb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1
ZXN0LgotICAgICIiIgotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2Nv
bnRleHQpOgotICAgICAgICByYWlzZSBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCdBbiBBYm9ydGVk
QnlVc2VyRXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdyZXF1ZXN0JykKLQotICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNv
bm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1fRVhQRUNURURfUkVTUE9OU0UgPSAoCi0g
ICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAnVXBncmFkZTog
d2Vic29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcblxyXG4nKQot
Ci0KLWNsYXNzIEhhbmRzaGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVu
aXR0ZXN0IGZvciBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxh
dGVyCi0gICAgaGFuZHNoYWtlIHByb2Nlc3Nvci4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X2Rv
X2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfY3Jl
YXRlX2dvb2RfcmVxdWVzdF9kZWYoKSkKLSAgICAgICAgZGlzcGF0Y2hlciA9IG1vY2suTW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCkKLQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJy9kZW1vJywgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnaHR0cDovL2V4YW1wbGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19wcm90b2NvbCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCByZXF1ZXN0LndzX2V4dGVuc2lvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsIHJlcXVlc3Qud3NfdmVyc2lvbikKLQot
ICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX2V4dHJhX2hlYWRlcnMoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgIyBB
ZGQgaGVhZGVycyBub3QgcmVsYXRlZCB0byBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UuCi0g
ICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Zvb0tleSddID0gJ0JhclZhbHVlJwotICAgICAg
ICByZXF1ZXN0X2RlZi5oZWFkZXJzWydFbXB0eUtleSddID0gJycKLQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQ
T05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
ZG9faGFuZHNoYWtlX3dpdGhfY2FwaXRhbGl6ZWRfdmFsdWUoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1sndXBncmFkZSddID0gJ1dFQlNPQ0tFVCcKLQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9o
YW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snQ29ubmVjdGlvbiddID0gJ1VQR1JBREUnCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNo
YWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFr
ZV93aXRoX211bHRpcGxlX2Nvbm5lY3Rpb25fdmFsdWVzKHNlbGYpOgotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhl
YWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdVcGdyYWRlLCBrZWVwLWFsaXZlLCAsICcKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hh
a2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBF
Q1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ZGVmIHRlc3RfYWJvcnRpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBoYW5kc2hha2VyID0g
SGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKSksCi0gICAgICAgICAgICBBYm9ydGluZ0Rpc3BhdGNoZXIoKSkKLSAgICAgICAg
IyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIGV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBpdCdz
IG5vdCBjYXVnaHQgYnkKLSAgICAgICAgIyBkb19oYW5kc2hha2UuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNo
YWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcHJvdG9jb2woc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAg
cmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1
cGVyY2hhdCcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVm
KQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBTdWJwcm90b2NvbENo
b29zaW5nRGlzcGF0Y2hlcigwKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
Ci0gICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAgICAgJ0hUVFAvMS4xIDEw
MSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAgICAgICAgICdVcGdyYWRlOiB3ZWJzb2Nr
ZXRcclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJc
bicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBjaGF0XHJcblxyXG4nKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnY2hhdCcs
IHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2VfcHJvdG9j
b2xfbm90X2luX3JlcXVlc3RfYnV0X2luX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2Vy
KAotICAgICAgICAgICAgcmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIoLTEs
ICdmb29iYXInKSkKLSAgICAgICAgIyBObyByZXF1ZXN0IGhhcyBiZWVuIG1hZGUgYnV0IHdzX3By
b3RvY29sIGlzIHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uCi0gICAgICAgICMgbXVzdCBiZSByYWlz
ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNo
YWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wcm90
b2NvbF9ub19wcm90b2NvbF9zZWxlY3Rpb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKLQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2Vy
ID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgICMgd3NfcHJvdG9jb2wgaXMg
bm90IHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uIG11c3QgYmUgcmFpc2VkLgotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0ZW5zaW9ucyhzZWxmKToKLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAg
ICAgICAgICdwZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0ZSwgdW5rbm93bicpCi0K
LSAgICAgICAgRVhQRUNURURfUkVTUE9OU0UgPSAoCi0gICAgICAgICAgICAnSFRUUC8xLjEgMTAx
IFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICAgICAgICAgJ1VwZ3JhZGU6IHdlYnNvY2tl
dFxyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6emhaUmJLK3hPbz1cclxu
JwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogcGVybWVzc2FnZS1jb21w
cmVzczsgbWV0aG9kPWRlZmxhdGVcclxuJwotICAgICAgICAgICAgJ1xyXG4nKQotCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19o
YW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVYUEVDVEVEX1JFU1BPTlNFLCBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIGV4dGVuc2lvbiA9IHJl
cXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5Q
RVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBleHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnbWV0aG9kJ10s
IGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ2RlZmxhdGUnLCBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbWV0aG9kJykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBS
RVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFr
ZV93aXRoX3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAncGVybWVzc2FnZS1j
b21wcmVzczsgbWV0aG9kPWRlZmxhdGUnKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2Vy
KHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25zWzBdLm5hbWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJv
Y2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09N
UFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNo
YWtlX3dpdGhfcXVvdGVkX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0g
X2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sn
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAncGVybWVzc2FnZS1j
b21wcmVzczsgbWV0aG9kPWRlZmxhdGUsICwgJwotICAgICAgICAgICAgJ3Vua25vd247IGUgICA9
ICAgICJtY14yIjsgbWE9IlxyXG4gICAgICBcXFxyZiAgIjsgcHY9bnJ0JykKLQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2Vy
ID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19yZXF1
ZXN0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3Nf
cmVxdWVzdGVkX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVz
c2FnZS1jb21wcmVzcycsIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydtZXRob2QnXSwgZmlyc3RfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfbmFtZXMo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21ldGhvZCcpKQot
ICAgICAgICBzZWNvbmRfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
c1sxXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd1bmtub3duJywgc2Vjb25kX2V4dGVuc2lv
bi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBbJ2UnLCAn
bWEnLCAncHYnXSwgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ21jXjInLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ2UnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIFxyZiAnLCBzZWNvbmRf
ZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21hJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ25ydCcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgncHYnKSkK
LQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX29wdGlvbmFsX2hlYWRlcnMoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRW1wdHlWYWx1ZSddID0gJycKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snQUtleSddID0gJ0FWYWx1ZScKLQotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9o
YW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICdBVmFsdWUnLCByZXF1ZXN0Lmhl
YWRlcnNfaW5bJ0FLZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICcnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKLQotICAgIGRlZiB0ZXN0X2Fi
b3J0X2V4dHJhX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIoCi0gICAgICAgICAgICBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkpLAotICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIoKSkKLSAgICAgICAgIyBk
b19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24uIENoZWNr
IHRoYXQgaXQncwotICAgICAgICAjIG5vdCBjYXVnaHQgYnkgZG9faGFuZHNoYWtlLgotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211eF9hbmRfZGVm
bGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4
dGVuc2lvbnMnXSA9ICgnJXMsICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VY
VEVOU0lPTiwKLSAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAg
ICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRz
aGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFtZSgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lP
TiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNz
b3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVGTEFURV9G
UkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRl
bnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFz
YXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNo
YWtlX3dpdGhfZGVmbGF0ZV9mcmFtZV9hbmRfbXV4KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2Rl
ZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRl
cnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICBj
b21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
cmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVx
dWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBz
aG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVl
c3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRlbnNpb24u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19l
eHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4JykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vf
d2l0aF9wZXJtZXNzYWdlX2NvbXByZXNzX2FuZF9tdXgoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAgICAnJXM7IG1l
dGhvZD1kZWZsYXRlLCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0Vf
Q09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5T
SU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAg
ICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBs
ZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4
dGVuc2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0Lm11eF9wcm9jZXNzb3IuaXNfYWN0aXZl
KCkpCi0gICAgICAgIG11eF9leHRlbnNpb25zID0gcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmV4dGVu
c2lvbnMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtdXhfZXh0ZW5zaW9ucykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05f
RVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIG11eF9leHRlbnNpb25zWzBdLm5h
bWUoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211eF9hbmRfcGVybWVzc2Fn
ZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVx
dWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4
dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICclcywgJXM7IG1ldGhvZD1kZWZsYXRlJyAlICgK
LSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBmaXJzdF9leHRl
bnNpb24gPSByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9O
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIocmVxdWVzdCwg
J211eF9wcm9jZXNzb3InKSkKLQotICAgIGRlZiB0ZXN0X2JhZF9yZXF1ZXN0cyhzZWxmKToKLSAg
ICAgICAgYmFkX2Nhc2VzID0gWwotICAgICAgICAgICAgKCdIVFRQIHJlcXVlc3QnLAotICAgICAg
ICAgICAgIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAgICAgICAgICAgICAnR0VUJywgJy9kZW1v
JywKLSAgICAgICAgICAgICAgICAgeydIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKLSAgICAgICAg
ICAgICAgICAgICdVc2VyLUFnZW50JzoKLSAgICAgICAgICAgICAgICAgICAgICAnTW96aWxsYS81
LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0gICAgICAgICAgICAgICAg
ICAgICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28vMjAwOTA4MjQgRmlyZWZveC8zLjUuMycK
LSAgICAgICAgICAgICAgICAgICAgICAnIEdUQjYgR1RCQScsCi0gICAgICAgICAgICAgICAgICAn
QWNjZXB0JzoKLSAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1sLGFwcGxpY2F0aW9uL3ho
dG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksJwotICAgICAgICAgICAgICAgICAgICAgICcq
Lyo7cT0wLjgnLAotICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdlbi11cyxl
bjtxPTAuNScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUVuY29kaW5nJzogJ2d6aXAsZGVm
bGF0ZScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUNoYXJzZXQnOiAnSVNPLTg4NTktMSx1
dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAgICAgICAgICAgICAgICdLZWVwLUFsaXZlJzogJzMw
MCcsCi0gICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdrZWVwLWFsaXZlJ30pLCBOb25l
LCBUcnVlKV0KLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLm1ldGhvZCA9ICdQT1NUJwotICAgICAgICBiYWRfY2Fz
ZXMuYXBwZW5kKCgnV3JvbmcgbWV0aG9kJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0g
ICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAg
ZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0hvc3QnXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5k
KCgnTWlzc2luZyBIb3N0JywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJl
cXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlz
c2luZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snVXBncmFkZSddID0gJ25vbndlYnNvY2tldCcKLSAgICAgICAgYmFkX2Nhc2VzLmFw
cGVuZCgoJ1dyb25nIFVwZ3JhZGUnLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwg
cmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBl
bmQoKCdNaXNzaW5nIENvbm5lY3Rpb24nLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnRG93bmdyYWRlJwotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgQ29ubmVjdGlvbicsIHJlcXVlc3RfZGVmLCBOb25lLCBU
cnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddCi0g
ICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJTb2NrZXQtS2V5JywgcmVx
dWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29j
a2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9PWdhcmJh
Z2UnKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkg
KHdpdGggZ2FyYmFnZSBvbiB0aGUgdGFpbCknLAotICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJT
b2NrZXQtS2V5J10gPSAnWVE9PScgICMgQkFTRTY0IG9mICdhJwotICAgICAgICBiYWRfY2FzZXMu
YXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAoZGVjb2RlZCB2
YWx1ZSBpcyBub3QgMTYgb2N0ZXRzIGxvbmcpJywKLSAgICAgICAgICAgICByZXF1ZXN0X2RlZiwg
NDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0
X2RlZigpCi0gICAgICAgICMgVGhlIGxhc3QgY2hhcmFjdGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0
IGJlIGFueSBvZiBBLCBRLCB3IGFuZCBnLgotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydT
ZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ0FRSURCQVVHQndnSkNnc01EUTRQ
RUM9PScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAgICAgICAoJ1dyb25nIFNl
Yy1XZWJTb2NrZXQtS2V5IChwYWRkaW5nIGJpdHMgYXJlIG5vdCB6ZXJvKScsCi0gICAgICAgICAg
ICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3Jl
YXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMt
V2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5oYlhCc1pTQnViMjVqWlE9
PSxkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKAot
ICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAobXVsdGlwbGUgdmFsdWVzKScs
Ci0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVz
dF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwgcmVxdWVzdF9k
ZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10KLSAgICAgICAgYmFkX2Nhc2VzLmFw
cGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uJywgcmVxdWVzdF9kZWYsIE5vbmUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMycKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVu
ZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVlc3RfZGVmLCBOb25lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydT
ZWMtV2ViU29ja2V0LVZlcnNpb24nXSA9ICcxMywgMTMnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBl
bmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24gKG11bHRpcGxlIHZhbHVlcyknLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAg
ICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9ICdpbGxlZ2FsXHgwOXBy
b3RvY29sJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnSWxsZWdhbCBTZWMtV2ViU29ja2V0
LVByb3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwg
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10g
PSAnJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnRW1wdHkgU2VjLVdlYlNvY2tldC1Qcm90
b2NvbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUp
KQotCi0gICAgICAgIGZvciAoY2FzZV9uYW1lLCByZXF1ZXN0X2RlZiwgZXhwZWN0ZWRfc3RhdHVz
LAotICAgICAgICAgICAgIGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKSBpbiBiYWRfY2FzZXM6
Ci0gICAgICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAg
ICAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0
Y2hlcigpKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ05vIGV4Y2VwdGlvbiB0aHJv
d24gZm9yIFwnJXNcJyBjYXNlJyAlIGNhc2VfbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBIYW5k
c2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVj
dF9oYW5kc2hha2VfZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXhwZWN0ZWRfc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhj
ZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXhwZWN0X2hhbmRz
aGFrZV9leGNlcHRpb24pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0
dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRz
aGFrZV9oeWJpMDAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczZjlmMjdjYTJk
OTQyMWIyMzAxNWY1OGM4OTNhY2YxZGMwMDlkZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MTYgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFuZHNoYWtlLmh5YmkwMCBt
b2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMg
VXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgSGFuZHNoYWtl
cgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgX3ZhbGlkYXRl
X3N1YnByb3RvY29sCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9LRVkxID0gJzQg
QDEgIDQ2NTQ2eFclMGwgMSA1JwotX1RFU1RfS0VZMiA9ICcxMjk5OCA1IFkzIDEgIC5QMDAnCi1f
VEVTVF9LRVkzID0gJ15uOmRzWzRVJwotX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFID0gJzhqS1Nc
J3k6RypDbyxXeGEtJwotCi0KLV9HT09EX1JFUVVFU1QgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcs
Ci0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAg
ICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1w
bGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBs
ZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVRVUVTVF9DQVBJVEFM
SVpFRF9IRUFERVJfVkFMVUVTID0gKAotICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycs
Ci0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0
aW9uJzogJ1VQR1JBREUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZ
MiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAg
J1VwZ3JhZGUnOiAnV0VCU09DS0VUJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9U
RVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9
LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFN
RVMgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAg
ICdoT3NUJzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ2NPbk5lQ3RJb04nOiAnVXBncmFkZScs
Ci0gICAgICAgICdzRWMtd0Vic09jS2VULWtFeTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnc0Vj
LXdFYnNPY0tlVC1wUm9Ub0NvTCc6ICdzYW1wbGUnLAotICAgICAgICAndVBnUmFEZSc6ICdXZWJT
b2NrZXQnLAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkxJzogX1RFU1RfS0VZMSwKLSAgICAg
ICAgJ29SaUdpTic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZ
MykKLQotX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JUID0gKAotICAgICdIVFRQLzEuMSAxMDEg
V2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tl
dFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0
LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0
LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90
b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQ
T05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VDVVJFID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2Vi
U29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxy
XG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxv
Y2F0aW9uOiB3c3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1P
cmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9j
b2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9O
U0UpCi0KLV9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUID0gKAotICAgIDgwODEsCi0gICAg
J0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29t
OjgwODEnLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0
dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQ
T05TRV9OT05ERUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJv
dG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAn
Q29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdz
Oi8vZXhhbXBsZS5jb206ODA4MS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46
IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNh
bXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0K
LV9HT09EX1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJT
b2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJc
bicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9j
YXRpb246IHdzczovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JF
U1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX05PX1BST1RPQ09MID0gKAotICAgIDgwLAotICAgICdH
RVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScs
Ci0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4n
OiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09E
X1JFU1BPTlNFX05PX1BST1RPQ09MID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFBy
b3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAg
J0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3
czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0
cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9S
RVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMgPSAoCi0gICAg
ODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnRW1wdHlWYWx1ZSc6ICcn
LAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAn
QUtleSc6ICdBVmFsdWUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAg
ICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdo
dHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotIyBUT0RPKHR5
b3NoaW5vKTogSW5jbHVkZSBcciBcbiBpbiBrZXkzLCBjaGFsbGVuZ2UgcmVzcG9uc2UuCi0KLV9H
T09EX1JFUVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAotICAgIDgwLAotICAgICdHRVQn
LAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0g
ICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkyJzogJ3kgIFIyIDQ4IFExTzQgIGV8QlYzIGk1IDEgIHUtIDY1JywKLSAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29j
a2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6ICczNiA3ICAgNzQgaSAgOTIgMlwn
bSA5IDBHJywKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0s
Ci0gICAgJycuam9pbihtYXAoY2hyLCBbMHgwMSwgMHhkMSwgMHhkZCwgMHgzYiwgMHhkMSwgMHg1
NiwgMHg2MywgMHhmZl0pKSkKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVfS0VZ
ID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4n
Ci0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVc
clxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9c
clxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicK
LSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwot
ICAgICcnLmpvaW4obWFwKGNociwgWzB4MGIsIDB4OTksIDB4ZmEsIDB4NTUsIDB4YmQsIDB4MDEs
IDB4MjMsIDB4N2IsCi0gICAgICAgICAgICAgICAgICAgICAgMHg0NSwgMHhhMiwgMHhmMSwgMHhk
MCwgMHg4NywgMHg4YSwgMHhlZSwgMHhlYl0pKSkKLQotX0dPT0RfUkVRVUVTVF9XSVRIX1FVRVJZ
X1BBUlQgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vP2U9bWMyJywKLSAgICB7
Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAn
VXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFk
ZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZ
MSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAg
X1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9QQVJUID0gKAotICAgICdI
VFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3Jh
ZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzJcclxuJwot
ICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9U
RVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0JBRF9SRVFVRVNUUyA9ICgKLSAgICAoICAjIEhU
VFAgcmVxdWVzdAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycs
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKLSAgICAg
ICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1h
YyBPUyBYIDEwLjU7JwotICAgICAgICAgICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjoxLjku
MS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnIEdUQjYgR1RCQScsCi0gICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCxhcHBs
aWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKLSAgICAgICAgICAgICAg
ICAgICAgICAnKi8qO3E9MC44JywKLSAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnZW4t
dXMsZW47cT0wLjUnLAotICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLGRlZmxh
dGUnLAotICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7cT0w
LjcsKjtxPTAuNycsCi0gICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAotICAgICAgICAg
ICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZScsCi0gICAgICAgIH0pLAotICAgICggICMgV3Jv
bmcgbWV0aG9kCi0gICAgICAgIDgwLAotICAgICAgICAnUE9TVCcsCi0gICAgICAgICcvZGVtbycs
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAg
ICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6
ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdp
bic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkz
KSwKLSAgICAoICAjIE1pc3NpbmcgVXBncmFkZQotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcs
Ci0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1w
bGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdl
YlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
S2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxl
LmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgV3Jvbmcg
VXBncmFkZQotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAg
ICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdz
YW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnTm9uV2ViU29ja2V0JywKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdp
bic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkz
KSwKLSAgICAoICAjIEVtcHR5IFdlYlNvY2tldC1Qcm90b2NvbAotICAgICAgICA4MCwKLSAgICAg
ICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0
JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAot
ICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICcnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAn
V2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkx
LAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9
LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIFdyb25nIHBvcnQgbnVtYmVyIGZvcm1h
dAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAg
IHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjB4NTAnLAotICAgICAgICAgICAg
J0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXky
JzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3Nh
bXBsZScsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzog
J2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAot
ICAgICggICMgSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaAotICAgICAgICA4MDgwLAot
ICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAg
J0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFk
ZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAn
VXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScs
Ci0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgSWxsZWdhbCBXZWJT
b2NrZXQtUHJvdG9jb2wKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQnLAotICAgICAgICAnL2Rl
bW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0gICAg
ICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9j
b2wnOiAnaWxsZWdhbFx4MDlwcm90b2NvbCcsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJT
b2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0g
ICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0g
ICAgICAgIF9URVNUX0tFWTMpLAotKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9k
ZWYpOgotICAgIGRhdGEgPSAnJwotICAgIGlmIGxlbihyZXF1ZXN0X2RlZikgPiA0OgotICAgICAg
ICBkYXRhID0gcmVxdWVzdF9kZWZbNF0KLSAgICBjb25uID0gbW9jay5Nb2NrQ29ubihkYXRhKQot
ICAgIGNvbm4ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIHJlcXVlc3RfZGVmWzBdKQotICAgIHJl
dHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWZbMV0sCi0g
ICAgICAgIHVyaT1yZXF1ZXN0X2RlZlsyXSwKLSAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2Rl
ZlszXSwKLSAgICAgICAgY29ubmVjdGlvbj1jb25uKQotCi0KLWRlZiBfY3JlYXRlX2dldF9tZW1v
cml6ZWRfbGluZXMobGluZXMpOgotICAgICIiIkNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVy
bnMgdGhlIGdpdmVuIHN0cmluZy4iIiIKLQotICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKCk6
Ci0gICAgICAgIHJldHVybiBsaW5lcwotICAgIHJldHVybiBnZXRfbWVtb3JpemVkX2xpbmVzCi0K
LQotZGVmIF9jcmVhdGVfcmVxdWVzdHNfd2l0aF9saW5lcyhyZXF1ZXN0X2xpbmVzX3NldCk6Ci0g
ICAgcmVxdWVzdHMgPSBbXQotICAgIGZvciBsaW5lcyBpbiByZXF1ZXN0X2xpbmVzX3NldDoKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X21lbW9yaXplZF9saW5lcyA9IF9jcmVhdGVfZ2V0X21lbW9y
aXplZF9saW5lcygKLSAgICAgICAgICAgICAgICBsaW5lcykKLSAgICAgICAgcmVxdWVzdHMuYXBw
ZW5kKHJlcXVlc3QpCi0gICAgcmV0dXJuIHJlcXVlc3RzCi0KLQotY2xhc3MgSHlCaTAwSGFuZHNo
YWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0
X2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChf
R09PRF9SRVFVRVNUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBt
b2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVlc3Qud3NfcmVzb3VyY2Up
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHJlcXVlc3Qu
d3Nfb3JpZ2luKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29tL2Rl
bW8nLCByZXF1ZXN0LndzX2xvY2F0aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1w
bGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2Nh
cGl0YWxpemVkX2hlYWRlcl92YWx1ZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJfVkFMVUVTKQotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfZ29v
ZF9yZXF1ZXN0X2Nhc2VfbWl4ZWRfaGVhZGVyX25hbWVzKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFNRVMp
Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3Bh
dGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9nb29kX3JlcXVlc3Rfc2VjdXJlX2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIDQ0MykKLSAgICAgICAgcmVxdWVzdC5p
c19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3Qs
IG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0K
LSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfbm9uZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JU
KQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAg
ICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
X0dPT0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2Rf
cmVxdWVzdF9zZWN1cmVfbm9uX2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKLSAgICAgICAg
cmVxdWVzdC5pc19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2Vy
KHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19o
YW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VS
RV9OT05ERUYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0
LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2RlZmF1bHRfbm9fcHJv
dG9jb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVR
VUVTVF9OT19QUk9UT0NPTCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVz
dCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9DT0ws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfcHJvdG9jb2wp
Ci0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfT1BUSU9O
QUxfSEVBREVSUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9j
ay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FWYWx1ZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC5oZWFkZXJzX2luWydBS2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0eVZh
bHVlJ10pCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9ub25wcmludGFibGVfa2V5
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1Rf
V0lUSF9OT05QUklOVEFCTEVfS0VZKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihy
ZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRIX05P
TlBSSU5UQUJMRV9LRVksCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCBy
ZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhfcXVl
cnlfcGFydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9S
RVFVRVNUX1dJVEhfUVVFUllfUEFSVCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIo
cmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hh
bmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfV0lUSF9R
VUVSWV9QQVJULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6Ly9leGFtcGxlLmNv
bS9kZW1vP2U9bWMyJywgcmVxdWVzdC53c19sb2NhdGlvbikKLQotICAgIGRlZiB0ZXN0X2JhZF9y
ZXF1ZXN0cyhzZWxmKToKLSAgICAgICAgZm9yIHJlcXVlc3QgaW4gbWFwKF9jcmVhdGVfcmVxdWVz
dCwgX0JBRF9SRVFVRVNUUyk6Ci0gICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihy
ZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQotCi0KLWNs
YXNzIEh5QmkwMFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg
ICBkZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyBzaG91bGQg
c3VjY2VlZC4KLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQotICAgICAg
ICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCi0gICAgICAgIF92YWxpZGF0ZV9zdWJw
cm90b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3Rv
Y29sKCdzYW1wbGVceDIwcHJvdG9jb2wnKQotCi0gICAgICAgICMgc2hvdWxkIGZhaWwuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBs
ZVx4N2Zwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2Vw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQotCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0MzZkYzU3YzM3MzEwNzFmZTI5MDE5MTllMzNmMjRjMWI1NTlmNjA1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dF9odHRwX2hlYWRlcl91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Ig
aHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotY2xhc3MgVW5pdFRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIGh0dHBfaGVhZGVy
X3V0aWwgbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVsYXRpdmVfdXJpKHNlbGYp
OgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2Vf
dXJpKCcvd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgaG9zdCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcvd3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfYWJzb2x1dGVf
dXJpKHNlbGYpOgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0
aWwucGFyc2VfdXJpKAotICAgICAgICAgICAgJ3dzOi8vbG9jYWxob3N0OjEwMDgwL3dzL3Rlc3Qn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdsb2NhbGhvc3QnLCBob3N0KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEwMDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcv
d3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0
cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9leGFtcGxlLmNvbS93
cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgwLCBwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCcvd3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNl
ID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3NzOi8vZXhhbXBs
ZS5jb20vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQ0MywgcG9ydCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnLycsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0
cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9leGFtcGxlLmNvbTo4
MDgwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5jb20nLCBob3N0KQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDgwODAsIHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJy8nLCByZXNvdXJjZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2ludmFsaWRfdXJpKHNlbGYp
OgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2Vf
dXJpKCd3czovLy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQot
Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91
cmkoJ3dzOi8vbG9jYWxob3N0OicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVz
b3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGls
LnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6L3dzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCByZXNvdXJjZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVu
aXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21lbW9y
aXppbmdmaWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjFiOGVlZjQzMzc4
YTliMDA2MjVmMjIwYzk3ZmUyMmY3NDBhOGY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtZW1vcml6aW5nZmlsZSBtb2R1bGUu
IiIiCi0KLQotaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9z
eXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1
bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtZW1vcml6aW5nZmlsZQotCi0KLWNs
YXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBt
ZW1vcml6aW5nZmlsZSBtb2R1bGUuIiIiCi0KLSAgICBkZWYgY2hlY2soc2VsZiwgbWVtb3Jpemlu
Z19maWxlLCBudW1fcmVhZCwgZXhwZWN0ZWRfbGlzdCk6Ci0gICAgICAgIGZvciB1bnVzZWQgaW4g
cmFuZ2UobnVtX3JlYWQpOgotICAgICAgICAgICAgbWVtb3JpemluZ19maWxlLnJlYWRsaW5lKCkK
LSAgICAgICAgYWN0dWFsX2xpc3QgPSBtZW1vcml6aW5nX2ZpbGUuZ2V0X21lbW9yaXplZF9saW5l
cygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0
dWFsX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBpbiB6aXAoZXhwZWN0ZWRf
bGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rl
ZCwgYWN0dWFsKQotCi0gICAgZGVmIGNoZWNrX3dpdGhfc2l6ZShzZWxmLCBtZW1vcml6aW5nX2Zp
bGUsIHJlYWRfc2l6ZSwgZXhwZWN0ZWRfbGlzdCk6Ci0gICAgICAgIHJlYWRfbGlzdCA9IFtdCi0g
ICAgICAgIHJlYWRfbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBs
aW5lID0gbWVtb3JpemluZ19maWxlLnJlYWRsaW5lKHJlYWRfc2l6ZSkKLSAgICAgICAgICAgIGxp
bmVfbGVuZ3RoID0gbGVuKGxpbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobGluZV9s
ZW5ndGggPD0gcmVhZF9zaXplKQotICAgICAgICAgICAgaWYgbGluZV9sZW5ndGggPT0gMDoKLSAg
ICAgICAgICAgICAgICBpZiByZWFkX2xpbmUgIT0gJyc6Ci0gICAgICAgICAgICAgICAgICAgIHJl
YWRfbGlzdC5hcHBlbmQocmVhZF9saW5lKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAg
ICAgICByZWFkX2xpbmUgKz0gbGluZQotICAgICAgICAgICAgaWYgbGluZVtsaW5lX2xlbmd0aCAt
IDFdID09ICdcbic6Ci0gICAgICAgICAgICAgICAgcmVhZF9saXN0LmFwcGVuZChyZWFkX2xpbmUp
Ci0gICAgICAgICAgICAgICAgcmVhZF9saW5lID0gJycKLSAgICAgICAgYWN0dWFsX2xpc3QgPSBt
ZW1vcml6aW5nX2ZpbGUuZ2V0X21lbW9yaXplZF9saW5lcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKHJlYWRfbGlzdCkpCi0gICAgICAg
IGZvciBleHBlY3RlZCwgYWN0dWFsLCByZWFkIGluIHppcChleHBlY3RlZF9saXN0LCBhY3R1YWxf
bGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfbGlz
dCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZWFkKQotCi0gICAgZGVmIHRlc3Rf
Z2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVt
b3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAg
ICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9y
aXppbmdfZmlsZSwgMywgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSddKQotCi0gICAg
ZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lc19saW1pdF9tZW1vcml6ZWRfbGluZXMoc2VsZik6
Ci0gICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxl
KFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNv
bWUnKSwgMikKLSAgICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9c
bicsICdXb3JsZFxuJ10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX2VtcHR5
X2ZpbGUoc2VsZik6Ci0gICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1l
bW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICcnKSkKLSAg
ICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDEwLCBbXSkKLQotICAgIGRlZiB0ZXN0
X2dldF9tZW1vcml6ZWRfbGluZXNfd2l0aF9zaXplKHNlbGYpOgotICAgICAgICBmb3Igc2l6ZSBp
biByYW5nZSgxLCAxMCk6Ci0gICAgICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6aW5n
ZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAgICAgICAgICAgICAgICAn
SGVsbG9cbldvcmxkXG5XZWxjb21lJykpCi0gICAgICAgICAgICBzZWxmLmNoZWNrX3dpdGhfc2l6
ZShtZW1vcml6aW5nX2ZpbGUsIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbJ0hlbGxvXG4nLCAnV29ybGRcbicsICdXZWxjb21lJ10pCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dF9tb2NrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGMyM2E3M2Q4ZmIxYTA3
YWViM2U1YWU5NDAyY2M4NmI4ZmNjMzY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tb2NrLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTQ1ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiVGVzdHMgZm9yIG1vY2sgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBRdWV1ZQot
aW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGgg
ICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1m
cm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1jbGFzcyBNb2NrQ29ublRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tDb25uIGNsYXNzLiIiIgotCi0gICAg
ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLl9jb25uID0gbW9jay5Nb2NrQ29ubignQUJD
XHJcbkRFRkdcclxuXHJcbkhJSksnKQotCi0gICAgZGVmIHRlc3RfcmVhZGxpbmUoc2VsZik6Ci0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0RFRkdcclxuJywgc2VsZi5fY29ubi5yZWFkbGlu
ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuJywgc2VsZi5fY29ubi5yZWFkbGlu
ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdISUpLJywgc2VsZi5fY29ubi5yZWFkbGlu
ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWRsaW5lKCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdB
QkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
RUZHXHJcblxyXG5ISScsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSksnLCBzZWxmLl9jb25uLnJlYWQoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcnLCBzZWxmLl9jb25uLnJlYWQoMTApKQotCi0gICAgZGVmIHRlc3RfcmVhZF9hbmRfcmVhZGxp
bmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG5EJywgc2VsZi5fY29u
bi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFRkdcclxuJywgc2VsZi5fY29u
bi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuSElKSycsIHNlbGYu
X2Nvbm4ucmVhZCg5KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3Rfd3JpdGUoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Nv
bm4ud3JpdGUoJ0hlbGxvXHJcbicpCi0gICAgICAgIHNlbGYuX2Nvbm4ud3JpdGUoJ1dvcmxkXHJc
bicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvXHJcbldvcmxkXHJcbicsIHNlbGYu
X2Nvbm4ud3JpdHRlbl9kYXRhKCkpCi0KLQotY2xhc3MgTW9ja0Jsb2NraW5nQ29ublRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tCbG9ja2luZ0Nvbm4g
Y2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0
aGF0IGRhdGEgcHV0IHRvIE1vY2tCbG9ja2luZ0Nvbm4gYnkgcHV0X2J5dGVzIG1ldGhvZCBjYW4g
YmUKLSAgICAgICAgcmVhZCBmcm9tIGl0LgotICAgICAgICAiIiIKLQotICAgICAgICBjbGFzcyBM
aW5lUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICAgICAgICAgIiIiQSB0ZXN0IGNsYXNz
IHRoYXQgbGF1bmNoZXMgYSB0aHJlYWQsIGNhbGxzIHJlYWRsaW5lIG9uIHRoZQotICAgICAgICAg
ICAgc3BlY2lmaWVkIGNvbm4gcmVwZWF0ZWRseSBhbmQgcHV0cyB0aGUgcmVhZCBkYXRhIHRvIHRo
ZSBzcGVjaWZpZWQKLSAgICAgICAgICAgIHF1ZXVlLgotICAgICAgICAgICAgIiIiCi0KLSAgICAg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uLCBxdWV1ZSk6Ci0gICAgICAgICAgICAgICAg
dGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICAgICAgICAgIHNlbGYuX3F1
ZXVlID0gcXVldWUKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25uID0gY29ubgotICAgICAgICAg
ICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFydCgp
Ci0KLSAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Nvbm4ucmVhZGxpbmUoKQotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoZGF0YSkKLQotICAgICAgICBjb25uID0g
bW9jay5Nb2NrQmxvY2tpbmdDb25uKCkKLSAgICAgICAgcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0g
ICAgICAgIHJlYWRlciA9IExpbmVSZWFkZXIoY29ubiwgcXVldWUpCi0gICAgICAgIHNlbGYuZmFp
bFVubGVzcyhxdWV1ZS5lbXB0eSgpKQotICAgICAgICBjb25uLnB1dF9ieXRlcygnRm9vIGJhclxy
XG4nKQotICAgICAgICByZWFkID0gcXVldWUuZ2V0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnRm9vIGJhclxyXG4nLCByZWFkKQotCi0KLWNsYXNzIE1vY2tUYWJsZVRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tUYWJsZSBjbGFzcy4iIiIKLQot
ICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2RpY3Qoc2VsZik6Ci0gICAgICAgIHRhYmxlID0gbW9j
ay5Nb2NrVGFibGUoeydLZXknOiAnVmFsdWUnfSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
VmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1
ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2xpc3Qoc2VsZik6
Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoWygnS2V5JywgJ1ZhbHVlJyldKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQotCi0gICAgZGVmIHRlc3Rf
Y3JlYXRlX2Zyb21fdHVwbGUoc2VsZik6Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUo
KCgnS2V5JywgJ1ZhbHVlJyksKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0
YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxl
WydrZXknXSkKLQotICAgIGRlZiB0ZXN0X3NldF9hbmRfZ2V0KHNlbGYpOgotICAgICAgICB0YWJs
ZSA9IG1vY2suTW9ja1RhYmxlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0YWJs
ZS5nZXQoJ0tleScpKQotICAgICAgICB0YWJsZVsnS2V5J10gPSAnVmFsdWUnCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLZXknKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ2tleScpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1ZhbHVlJywgdGFibGVbJ0tleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1
ZScsIHRhYmxlWydrZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJs
ZVsnS0VZJ10pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5t
YWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21zZ3V0aWwucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmZWRjZjkyZjYxZmU4Y2Q5ZTU2MGYyNzRhODlhMDNiNDNh
NzJiZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0X21zZ3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMzU2ICswLDAg
QEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVz
dHMgZm9yIG1zZ3V0aWwgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBhcnJheQotaW1wb3J0IFF1ZXVl
Ci1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB6
bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBt
b2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0
IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IK
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5zdHJlYW0gaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9y
dCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVh
bU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIHRlc3QgaW1w
b3J0IG1vY2sKLQotCi0jIFdlIHVzZSBvbmUgZml4ZWQgbm9uY2UgZm9yIHRlc3RpbmcgaW5zdGVh
ZCBvZiBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUFJORy4KLV9NQVNLSU5HX05PTkNFID0gJ0FC
Q0QnCi0KLQotZGVmIF9tYXNrX2h5YmkoZnJhbWUpOgotICAgIGZyYW1lX2tleSA9IG1hcChvcmQs
IF9NQVNLSU5HX05PTkNFKQotICAgIGZyYW1lX2tleV9sZW4gPSBsZW4oZnJhbWVfa2V5KQotICAg
IHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAgICByZXN1bHQuZnJvbXN0cmluZyhmcmFtZSkK
LSAgICBjb3VudCA9IDAKLSAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKHJlc3VsdCkpOgotICAgICAg
ICByZXN1bHRbaV0gXj0gZnJhbWVfa2V5W2NvdW50XQotICAgICAgICBjb3VudCA9IChjb3VudCAr
IDEpICUgZnJhbWVfa2V5X2xlbgotICAgIHJldHVybiBfTUFTS0lOR19OT05DRSArIHJlc3VsdC50
b3N0cmluZygpCi0KLQotZGVmIF9pbnN0YWxsX2V4dGVuc2lvbl9wcm9jZXNzb3IocHJvY2Vzc29y
LCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgaWYgcmVzcG9uc2UgaXMgbm90IE5vbmU6Ci0gICAg
ICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykKLSAgICAg
ICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vzc29yKQotCi0K
LWRlZiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICByZWFkX2RhdGEsCi0g
ICAgICAgIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1Ob25lLAotICAgICAgICBwZXJtZXNzYWdlX2Nv
bXByZXNzaW9uX3JlcXVlc3Q9Tm9uZSwKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVl
c3Q9Tm9uZSk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9j
a0Nvbm4oJycuam9pbihyZWFkX2RhdGEpKSkKLSAgICByZXEud3NfdmVyc2lvbiA9IGNvbW1vbi5W
RVJTSU9OX0hZQklfTEFURVNUCi0gICAgcmVxLndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gW10K
LQotICAgIHByb2Nlc3NvciA9IE5vbmUKLSAgICBpZiBkZWZsYXRlX2ZyYW1lX3JlcXVlc3QgaXMg
bm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcihkZWZsYXRlX2ZyYW1lX3JlcXVlc3QpCi0gICAgZWxpZiBwZXJtZXNzYWdlX2NvbXByZXNz
aW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VD
b21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBwZXJtZXNzYWdlX2Nv
bXByZXNzaW9uX3JlcXVlc3QpCi0gICAgZWxpZiBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCBp
cyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Qp
Ci0KLSAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQotICAgIGlmIHByb2Nlc3Nv
ciBpcyBub3QgTm9uZToKLSAgICAgICAgX2luc3RhbGxfZXh0ZW5zaW9uX3Byb2Nlc3Nvcihwcm9j
ZXNzb3IsIHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbShy
ZXEsIHN0cmVhbV9vcHRpb25zKQotCi0gICAgcmV0dXJuIHJlcQotCi0KLWRlZiBfY3JlYXRlX3Jl
cXVlc3QoKmZyYW1lcyk6Ci0gICAgIiIiQ3JlYXRlcyBNb2NrUmVxdWVzdCB1c2luZyBkYXRhIGdp
dmVuIGFzIGZyYW1lcy4KLQotICAgIGZyYW1lcyB3aWxsIGJlIHJldHVybmVkIG9uIGNhbGxpbmcg
cmVxdWVzdC5jb25uZWN0aW9uLnJlYWQoKSB3aGVyZSByZXF1ZXN0Ci0gICAgaXMgTW9ja1JlcXVl
c3QgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbi4KLSAgICAiIiIKLQotICAgIHJlYWRfZGF0YSA9
IFtdCi0gICAgZm9yIChoZWFkZXIsIGJvZHkpIGluIGZyYW1lczoKLSAgICAgICAgcmVhZF9kYXRh
LmFwcGVuZChoZWFkZXIgKyBfbWFza19oeWJpKGJvZHkpKQotCi0gICAgcmV0dXJuIF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEocmVhZF9kYXRhKQotCi0KLWRlZiBfY3JlYXRlX2Jsb2NraW5n
X3JlcXVlc3QoKToKLSAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0LgotCi0gICAgRGF0YSB3cml0
dGVuIHRvIGEgTW9ja1JlcXVlc3QgY2FuIGJlIHJlYWQgb3V0IGJ5IGNhbGxpbmcKLSAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkuCi0gICAgIiIiCi0KLSAgICByZXEgPSBtb2Nr
Lk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdDb25uKCkpCi0gICAgcmVx
LndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAotICAgIHN0cmVhbV9vcHRp
b25zID0gU3RyZWFtT3B0aW9ucygpCi0gICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbShyZXEsIHN0
cmVhbV9vcHRpb25zKQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hp
eGllNzUocmVhZF9kYXRhPScnKToKLSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubihyZWFkX2RhdGEpKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW1I
aXhpZTc1KHJlcSkKLSAgICByZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVx
dWVzdF9oaXhpZTc1KCk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1v
Y2suTW9ja0Jsb2NraW5nQ29ubigpKQotICAgIHJlcS53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1
KHJlcSkKLSAgICByZXR1cm4gcmVxCi0KLQotY2xhc3MgQmFzaWNNZXNzYWdlVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiQmFzaWMgdGVzdHMgZm9yIFN0cmVhbS4iIiIKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3Nh
Z2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2Qn
ICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lZGl1bV9tZXNzYWdlKHNlbGYp
OgotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI2Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2Fk
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZVx4MDBceDdlJyArIHBheWxvYWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoKDEgPDwgMTYpIC0gMSkKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdl
KHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdlXHhm
Zlx4ZmYnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2xhcmdlX21lc3NhZ2Uo
c2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdmXHgwMFx4MDBc
eDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykK
LSAgICAgICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwM1x4ZTZceDk3XHhhNScsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVm
IHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdI
ZWxsbycsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnICcs
IEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnLCBG
YWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJyEnLCBUcnVlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwNUhlbGxvXHgwMFx4MDEgXHgwMFx4MDVX
b3JsZFx4ODBceDAxIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9mcmFnbWVudHNfaW1tZWRp
YXRlX3plcm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8gV29y
bGQhJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnLCBU
cnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwY0hlbGxvIFdvcmxkIVx4ODBc
eDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceDg1JywgJ0hl
bGxvJyksICgnXHg4MVx4ODYnLCAnV29ybGQhJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjUKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgoJ1x4ODFceGZkJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX21lZGl1bV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICog
MTI2Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4MDBceDdl
JywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqICgoMSA8
PCAxNikgLSAxKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmVc
eGZmXHhmZicsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9s
YXJnZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICogKDEgPDwgMTYpCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceGZm
XHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnLCBwYXlsb2FkKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbGVuZ3RoX25vdF9lbmNvZGVkX3VzaW5nX21pbmltYWxf
bnVtYmVyX29mX2J5dGVzKHNlbGYpOgotICAgICAgICAjIExvZyB3YXJuaW5nIG9uIHJlY2Vpdmlu
ZyBiYWQgcGF5bG9hZCBsZW5ndGggZmllbGQgdGhhdCBkb2Vzbid0IHVzZQotICAgICAgICAjIG1p
bmltYWwgbnVtYmVyIG9mIGJ5dGVzIGJ1dCBjb250aW51ZSBwcm9jZXNzaW5nLgotCi0gICAgICAg
IHBheWxvYWQgPSAnYScKLSAgICAgICAgIyAxIGJ5dGUgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGhv
dXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQuCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceGZmXHgwMFx4MDBceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDEnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2Fk
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KCgnXHg4MVx4ODMnLCAnXHhlNlx4OWNceGFjJykpCi0gICAgICAgICMgVSs2NzJjIGlzIGVu
Y29kZWQgYXMgZTYsOWMsYWMgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1
NjcyYycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9tZXNzYWdlX2Vycm9uZW91c191bmljb2RlKHNlbGYpOgotICAgICAgICAjIFx4ODAg
YW5kIFx4ODEgYXJlIGludmFsaWQgYXMgVVRGLTguCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoKCdceDgxXHg4MicsICdceDgwXHg4MScpKQotICAgICAgICAjIEludmFsaWQgY2hh
cmFjdGVycyBzaG91bGQgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24KLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoSW52YWxpZFVURjhFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHMoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDg1JywgJ0hl
bGxvJyksCi0gICAgICAgICAgICAoJ1x4MDBceDgxJywgJyAnKSwKLSAgICAgICAgICAgICgnXHgw
MFx4ODUnLCAnV29ybGQnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODEnLCAnIScpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX3VuaWNvZGUoc2Vs
Zik6Ci0gICAgICAgICMgVVRGLTggZW5jb2RlcyBVKzZmMjIgaW50byBlNmJjYTIgYW5kIFUrNWI1
NyBpbnRvIGU1YWQ5Ny4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAg
ICAgICAgICgnXHgwMVx4ODInLCAnXHhlNlx4YmMnKSwKLSAgICAgICAgICAgICgnXHgwMFx4ODIn
LCAnXHhhMlx4ZTUnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODInLCAnXHhhZFx4OTcnKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1NmYyMlx1NWI1NycsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfaW1tZWRp
YXRlX3plcm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDhjJywgJ0hlbGxvIFdvcmxkIScpLCAoJ1x4ODBc
eDgwJywgJycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJh
Z21lbnRzX2R1cGxpY2F0ZV9zdGFydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwgKCdceDAxXHg4NScs
ICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFt
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX2ZyYWdtZW50c19pbnRlcm1lZGlhdGVfYnV0X25vdF9zdGFydGVkKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwMFx4ODUnLCAnSGVsbG8nKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9m
cmFnbWVudHNfZW5kX2J1dF9ub3Rfc3RhcnRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdCgoJ1x4ODBceDg1JywgJ0hlbGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kaXNjYXJkKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhm
XHg4NicsICdJR05PUkUnKSwgKCdceDgxXHg4NScsICdIZWxsbycpLAotICAgICAgICAgICAgKCdc
eDhmXHg4OScsICdESVNSRUdBUkQnKSwgKCdceDgxXHg4NicsICdXb3JsZCEnKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwgcmVxdWVzdCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5VbnN1cHBvcnRl
ZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZSwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X2Nsb3NlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAg
ICAgICAgKCdceDg4XHg4YScsIHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwMCwgcmVxdWVzdC53c19jbG9z
ZV9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdHb29kIGJ5ZScsIHJlcXVlc3Qud3Nf
Y2xvc2VfcmVhc29uKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0X2Nsb3NlKHNlbGYpOgot
ICAgICAgICByZWFzb24gPSAnYScgKiAxMjMKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgKLSAgICAgICAgICAgICgnXHg4OFx4ZmQnLAotICAgICAgICAgICAgIHN0cnVjdC5wYWNr
KCchSCcsIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpICsgcmVhc29uKSkKLSAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX05PUk1BTF9D
TE9TVVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNv
bikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3NlX2NvZGUsIGNvbW1v
bi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVz
dC53c19jbG9zZV9yZWFzb24sIHJlYXNvbikKLQotICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfdG9v
X2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAnYScgKiAxMjQpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Nsb3NlX2luY29uc2lzdGVudF9j
b2RlX2FuZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
KQotICAgICAgICAjIHJlYXNvbiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIHdoZW4g
Y29kZSBpcyBOb25lLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJh
dGlvbkV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtLmNsb3NlX2Nv
bm5lY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAnYScpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAn
SGVsbG8gV29ybGQhJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MGNIZWxsbyBX
b3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbG9uZ2VzdF9waW5nKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX3Bp
bmcocmVxdWVzdCwgJ2EnICogMTI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHg3
ZCcgKyAnYScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nX3Rvb19sb25nKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAnYScgKiAxMjYpCi0KLSAgICBk
ZWYgdGVzdF9yZWNlaXZlX3Bpbmcoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHJlY2VpdmluZyBh
IHBpbmcgY29udHJvbCBmcmFtZS4iIiIKLQotICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCBt
ZXNzYWdlKToKLSAgICAgICAgICAgIHJlcXVlc3QuY2FsbGVkID0gVHJ1ZQotCi0gICAgICAgICMg
U3RyZWFtIGF1dG9tYXRpY2FsbHkgcmVzcG9uZCB0byBwaW5nIHdpdGggcG9uZyB3aXRob3V0IGFu
eSBhY3Rpb24KLSAgICAgICAgIyBieSBhcHBsaWNhdGlvbiBsYXllci4KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4ODUnLCAnSGVsbG8nKSwg
KCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdceDhhXHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdX
b3JsZCcpKQotICAgICAgICByZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlciA9IGhhbmRsZXIKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QuY2FsbGVkKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9sb25nZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceGZkJywgJ2EnICogMTI1KSwgKCdceDgx
XHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eDhhXHg3ZCcgKyAnYScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9waW5nX3Rv
b19sb25nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4OVx4
ZmVceDAwXHg3ZScsICdhJyAqIDEyNikpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0
aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkK
LQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcG9uZyhzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgcmVj
ZWl2aW5nIGEgcG9uZyBjb250cm9sIGZyYW1lLiIiIgotCi0gICAgICAgIGRlZiBoYW5kbGVyKHJl
cXVlc3QsIG1lc3NhZ2UpOgotICAgICAgICAgICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCi0KLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4YVx4ODUn
LCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0Lm9uX3Bv
bmdfaGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwg
J0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MDVIZWxsbycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
ICAgICAgICAjIFZhbGlkIHBvbmcgaXMgcmVjZWl2ZWQsIGJ1dCByZWNlaXZlX21lc3NhZ2Ugd29u
J3QgcmV0dXJuIGZvciBpdC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgIyBDaGVjayB0aGF0IG5vdGhp
bmcgd2FzIHdyaXR0ZW4gYWZ0ZXIgcmVjZWl2ZV9tZXNzYWdlIGNhbGwuCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4ODlceDA1SGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmVxdWVzdC5jYWxsZWQpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3Vuc29saWNpdGVkX3Bv
bmcoc2VsZik6Ci0gICAgICAgICMgVW5zb2xpY2l0ZWQgcG9uZyBpcyBhbGxvd2VkIGZyb20gSHlC
aSAwNy4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgn
XHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODUn
LCAnV29ybGQnKSkKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ0p1bWJvJykK
LSAgICAgICAgIyBCb2R5IG1pc21hdGNoLgotICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcGluZ19jYW5ub3RfYmVfZnJhZ21lbnRlZChzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4MDlceDg1JywgJ0hlbGxv
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3Bpbmdf
d2l0aF90b29fbG9uZ19wYXlsb2FkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCgnXHg4OVx4ZmVceDAxXHgwMCcsICdhJyAqIDI1NikpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdCkKLQotCi1jbGFzcyBEZWZsYXRlRnJhbWVUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKLSAgICAiIiJUZXN0cyBmb3IgY2hlY2tpbmcgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24u
IiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNvbXByZXNz
ID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNT
SU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJ
T04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAg
ICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgZXhwZWN0ZWQgPSAnJwotCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNI
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAg
ICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAg
IGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxk
ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVj
JyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2Vk
X3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2JmaW5h
bChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihj
b21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVx
dWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNz
b3IgPSByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdCi0gICAgICAgIGRlZmxhdGVf
ZnJhbWVfcHJvY2Vzc29yLnNldF9iZmluYWwoVHJ1ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJl
c3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG8gKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0g
J1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29t
cHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVz
cygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxk
ICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRf
d29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfY29tcF9iaXQoc2VsZik6Ci0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFN
RV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9j
ZXNzb3JzKSkKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IgPSByZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzWzBdCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdIZWxsbycpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmRpc2FibGVfb3V0
Z29pbmdfY29tcHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnSGVsbG8nKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nvci5lbmFibGVfb3V0Z29p
bmdfY29tcHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAn
SGVsbG8nKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hl
bGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHhj
MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVz
c2VkX2hlbGxvCi0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODFceDA1SGVsbG8nCi0KLSAgICAg
ICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAg
ICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxs
b1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfMm5k
X2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkXzJuZF9oZWxsbwotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9ub19jb250ZXh0X3Rha2VvdmVy
X3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAot
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9u
LmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKQotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgICcnLCBkZWZs
YXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6
Ci0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0g
ICAgICAgIGNvbXByZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0g
ICAgICAgIGNvbXByZXNzZWRfbWVzc2FnZSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29tcHJlc3NlZF9tZXNzYWdlWzot
NF0KLSAgICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX21lc3NhZ2Up
Ci0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfbWVzc2FnZQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0ZWQs
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2JhZF9y
ZXF1ZXN0X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgaWYgdGhlcmUn
cyBhbnl0aGluZyB3cm9uZyB3aXRoIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uCi0gICAgICAgIHJl
cXVlc3QsIGRlZmxhdGUtZnJhbWUgaXMgcmVqZWN0ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJB
TUVfRVhURU5TSU9OKQotICAgICAgICAjIG1heF93aW5kb3dfYml0cyBsZXNzIHRoYW4gOCBpcyBp
bGxlZ2FsLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRz
JywgJzcnKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5n
ZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAg
ICMgbWF4X3dpbmRvd19iaXRzIGdyZWF0ZXIgdGhhbiAxNSBpcyBpbGxlZ2FsLgotICAgICAgICBl
eHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzE2JykKLSAgICAgICAg
cHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNw
b25zZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Y29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIE5vbiBpbnRlZ2VyIG1h
eF93aW5kb3dfYml0cyBpcyBpbGxlZ2FsLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRl
cignbWF4X3dpbmRvd19iaXRzJywgJ2Zvb2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IERlZmxh
dGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBub19jb250ZXh0X3Rha2VvdmVyIG11c3Qgbm90IGhh
dmUgYW55IHZhbHVlLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbm9fY29udGV4
dF90YWtlb3ZlcicsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9y
ZXNwb25zZV9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAg
cHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLSAg
ICAgICAgcHJvY2Vzc29yLnNldF9yZXNwb25zZV93aW5kb3dfYml0cyg4KQotICAgICAgICByZXNw
b25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCc4JywgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgn
bWF4X3dpbmRvd19iaXRzJykpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHByb2Nl
c3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAg
IHByb2Nlc3Nvci5zZXRfcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotICAgICAg
ICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92
ZXInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAgICAgcmVzcG9uc2UuZ2V0
X3BhcmFtZXRlcl92YWx1ZSgnbm9fY29udGV4dF90YWtlb3ZlcicpIGlzIE5vbmUpCi0KLSAgICBk
ZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAg
ICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBjb21wcmVz
c2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2NrZXQnKQotICAgICAgICBj
b21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAg
ICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAgICAgZGF0YSArPSAnXHhj
MSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSAr
PSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNz
ZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVj
JyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNr
X2h5YmkoY29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAg
IGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkg
KyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVf
ZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfY2xpZW50
X3VzaW5nX3NtYWxsZXJfd2luZG93KHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgZnJhbWVz
IGNvbWluZyBmcm9tIGEgY2xpZW50IHdoaWNoIGlzIHVzaW5nIHNtYWxsZXIgd2luZG93Ci0gICAg
ICAgIHNpemUgdGhhdCB0aGUgc2VydmVyIGFyZSBjb3JyZWN0bHkgcmVjZWl2ZWQuCi0gICAgICAg
ICIiIgotCi0gICAgICAgICMgVXNpbmcgdGhlIHNtYWxsZXN0IHdpbmRvdyBiaXRzIG9mIDggZm9y
IGdlbmVyYXRpbmcgaW5wdXQgZnJhbWVzLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZM
QVRFRCwgLTgpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAgIyBVc2UgYSBmcmFtZSB3
aG9zZSBjb250ZW50IGlzIGJpZ2dlciB0aGFuIHRoZSBjbGllbnRzJyBERUZMQVRFIHdpbmRvdwot
ICAgICAgICAjIHNpemUgYmVmb3JlIGNvbXByZXNzaW9uLiBUaGUgY29udGVudCBtYWlubHkgY29u
c2lzdHMgb2YgJ2EnIGJ1dAotICAgICAgICAjIHJlcGV0aXRpb24gb2YgJ2InIGlzIHB1dCBhdCB0
aGUgaGVhZCBhbmQgdGFpbCBzbyB0aGF0IGlmIHRoZSB3aW5kb3cKLSAgICAgICAgIyBzaXplIGlz
IGJpZywgdGhlIGhlYWQgaXMgYmFjay1yZWZlcmVuY2VkIGJ1dCBpZiBzbWFsbCwgbm90LgotICAg
ICAgICBwYXlsb2FkID0gJ2InICogNjQgKyAnYScgKiAxMDI0ICsgJ2InICogNjQKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKHBheWxvYWQpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0
YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAgICBk
YXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICAjIENsb3NlIGZy
YW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2so
JyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRh
dGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jb21wX2JpdChzZWxmKToKLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAg
ICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJl
c3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRf
aGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hl
bGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxv
KQotCi0gICAgICAgIGRhdGEgKz0gJ1x4ODFceDg1JyArIF9tYXNrX2h5YmkoJ0hlbGxvJykKLQot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykK
LSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3NlZF8ybmRf
aGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkXzJu
ZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF8y
bmRfaGVsbG8pCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFt
ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKDMpOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV92YXJpb3VzX2J0eXBlKHNl
bGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNv
bXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXBy
ZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgPSBjb21wcmVzcy5j
b21wcmVzcygnV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2NrZXQg
Kz0gJ1x4MDAnCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd2Vi
c29ja2V0KSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dl
YnNvY2tldCkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFY
X1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygn
V29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3Js
ZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfd29ybGQp
IHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd29ybGQpCi0K
LSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFz
a19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXZWJTb2NrZXQnLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29y
bGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0KLWNs
YXNzIFBlck1lc3NhZ2VEZWZsYXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVz
dHMgZm9yIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uIiIiCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRF
TlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAot
ICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24p
Ci0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQot
ICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAg
IGV4cGVjdGVkID0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVj
dGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX2VtcHR5X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhbiBlbXB0eSBt
ZXNzYWdlIGlzIGNvbXByZXNzZWQgY29ycmVjdGx5LiIiIgotCi0gICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVf
cmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJycpCi0KLSAgICAgICAgIyBQYXlsb2FkIGluIGJpbmFyeTogMGIwMDAwMDAxMCAwYjAwMDAw
MDAwCi0gICAgICAgICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDAp
Ci0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUgKDAxIHRoYXQgbWVhbnMgZml4ZWQgSHVmZm1h
bikKLSAgICAgICAgIyAtIDcgYml0cyBvZiB0aGUgZmlyc3QgY29kZSAoMDAwMDAwMCB0aGF0IGlz
IHRoZSBjb2RlIGZvciB0aGUKLSAgICAgICAgIyAgIGVuZC1vZi1ibG9jaykKLSAgICAgICAgIyAt
IDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAobm8gY29t
cHJlc3Npb24pCi0gICAgICAgICMgLSAzIGJpdHMgb2YgcGFkZGluZwotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceGMxXHgwMlx4MDJceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21l
c3NhZ2Vfd2l0aF9udWxsX2NoYXJhY3RlcihzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEg
c2ltcGxlIHBheWxvYWQgKG9uZSBudWxsKSBpcyBmcmFtZWQgY29ycmVjdGx5LiIiIgotCi0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ1x4MDAnKQotCi0gICAgICAgICMgUGF5bG9hZCBpbiBiaW5hcnk6
IDBiMDExMDAwMTAgMGIwMDAwMDAwMCAwYjAwMDAwMDAwCi0gICAgICAgICMgRnJvbSBMU0IsCi0g
ICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZ
UEUgKDAxIHRoYXQgbWVhbnMgZml4ZWQgSHVmZm1hbikKLSAgICAgICAgIyAtIDggYml0cyBvZiB0
aGUgZmlyc3QgY29kZSAoMDAxMTAwMDAgdGhhdCBpcyB0aGUgY29kZSBmb3IgdGhlIGxpdGVyYWwK
LSAgICAgICAgIyAgIGFscGhhYmV0IDB4MDApCi0gICAgICAgICMgLSA3IGJpdHMgb2YgdGhlIHNl
Y29uZCBjb2RlICgwMDAwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZQotICAgICAgICAjICAg
ZW5kLW9mLWJsb2NrKQotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQotICAgICAgICAj
IC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAgICAgIyAtIDIgYml0cyBv
ZiBwYWRkaW5nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFceDAzXHg2Mlx4MDBceDAw
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9k
YXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3R3b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3Nh
Z2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3Nh
Z2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJ1dvcmxkJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAg
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQg
Kz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0g
Y29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5j
b21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJl
c3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZChzZWxmKToK
LSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAg
ICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycs
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnR29vZGJ5ZScsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVj
dGVkID0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQg
Kz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2dvb2RieWUgPSBjb21wcmVz
cy5jb21wcmVzcygnR29vZGJ5ZScpCi0gICAgICAgIGNvbXByZXNzZWRfZ29vZGJ5ZSArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4MDAl
YycgJSBsZW4oY29tcHJlc3NlZF9nb29kYnllKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVz
c2VkX2dvb2RieWUKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNz
KCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dv
cmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF93
b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkp
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9lbXB0eV9maXJzdF9mcmFt
ZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigK
LSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAg
ICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9
ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNv
bXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzc2Vk
X2VtcHR5WzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3Nl
ZF9lbXB0eSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQotICAgICAgICBw
cmludCAnJXInICUgZXhwZWN0ZWQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfbGFzdF9mcmFtZShzZWxmKToKLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVm
bGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCAnJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAg
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oY29t
cHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAg
ICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3MuY29tcHJlc3MoJycpCi0gICAgICAgIGNv
bXByZXNzZWRfZW1wdHkgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0KLSAgICAgICAgZXhw
ZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKLSAgICAgICAgZXhwZWN0
ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVk
LCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5k
X21lc3NhZ2VfdXNpbmdfc21hbGxfd2luZG93KHNlbGYpOgotICAgICAgICBjb21tb25fcGFydCA9
ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLSAgICAgICAgdGVzdF9tZXNzYWdlID0gY29t
bW9uX3BhcnQgKyAnLScgKiAzMDAwMCArIGNvbW1vbl9wYXJ0Ci0KLSAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVS
TUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0
ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnOCcpCi0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdl
X2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdl
KHJlcXVlc3QsIHRlc3RfbWVzc2FnZSkKLQotICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfaGVh
ZGVyX3NpemUgPSAyCi0gICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUgPSA5
MQotCi0gICAgICAgIGFjdHVhbF9mcmFtZSA9IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3dlYnNvY2tldF9oZWFkZXJf
c2l6ZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxv
YWRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oYWN0dWFsX2ZyYW1lKSkKLSAg
ICAgICAgYWN0dWFsX2hlYWRlciA9IGFjdHVhbF9mcmFtZVswOmV4cGVjdGVkX3dlYnNvY2tldF9o
ZWFkZXJfc2l6ZV0KLSAgICAgICAgYWN0dWFsX3BheWxvYWQgPSBhY3R1YWxfZnJhbWVbZXhwZWN0
ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplOl0KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgICdceGMxJWMnICUgZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxvYWRfc2l6
ZSwgYWN0dWFsX2hlYWRlcikKLSAgICAgICAgZGVjb21wcmVzcyA9IHpsaWIuZGVjb21wcmVzc29i
aigtOCkKLSAgICAgICAgZGVjb21wcmVzc2VkX21lc3NhZ2UgPSBkZWNvbXByZXNzLmRlY29tcHJl
c3MoCi0gICAgICAgICAgICAgICAgYWN0dWFsX3BheWxvYWQgKyAnXHgwMFx4MDBceGZmXHhmZicp
Ci0gICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlICs9IGRlY29tcHJlc3MuZmx1c2goKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3RfbWVzc2FnZSwgZGVjb21wcmVzc2VkX21lc3NhZ2Up
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGRlY29tcHJlc3MudW51c2VkX2RhdGEp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXByZXNzLnVuY29uc3VtZWRf
dGFpbCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vfbm9fY29udGV4dF90YWtlb3Zlcl9w
YXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJ
T04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90
YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9y
YXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1UcnVlKQotCi0gICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpf
REVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0g
ICAgICAgIGZpcnN0X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Zmlyc3RfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oZmlyc3RfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVk
ICs9IGZpcnN0X2hlbGxvCi0gICAgICAgIHNlY29uZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNz
KCdIZWxsbycpCi0gICAgICAgIHNlY29uZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpf
U1lOQ19GTFVTSCkKLSAgICAgICAgc2Vjb25kX2hlbGxvID0gc2Vjb25kX2hlbGxvWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oc2Vjb25kX2hlbGxvKQotICAgICAgICBl
eHBlY3RlZCArPSBzZWNvbmRfaGVsbG8KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwKLSAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9iZmluYWwoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVf
cmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1
ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgcmVxdWVzdC53c19leHRlbnNp
b25fcHJvY2Vzc29yc1swXS5zZXRfYmZpbmFsKFRydWUpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJywgZW5kPVRydWUpCi0KLSAgICAgICAgZXhwZWN0ZWQg
PSAnJwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAg
IHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJ
VFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5J
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvICsgY2hyKDAp
Ci0gICAgICAgIGV4cGVjdGVkICs9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0g
ICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBjb21wcmVzcyA9
IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lP
TiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX3dv
cmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3Js
ZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX3dv
cmxkID0gY29tcHJlc3NlZF93b3JsZCArIGNocigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHg4
MCVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVz
c2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
X2RlZmxhdGUoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSA9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hl
bGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxv
KQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsg
X21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAg
ICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAg
ICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgZGF0YSwgcGVy
bWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfcmFuZG9tX3NlY3Rpb24oc2VsZik6Ci0g
ICAgICAgICIiIlRlc3QgdGhhdCBhIGNvbXByZXNzZWQgbWVzc2FnZSBmcmFnbWVudGVkIGludG8g
bG90cyBvZiBjaHVua3MgaXMKLSAgICAgICAgY29ycmVjdGx5IHJlY2VpdmVkLgotICAgICAgICAi
IiIKLQotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHBheWxvYWQgPSAnJy5qb2lu
KAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgaSBpbiB4cmFu
Z2UoMTAwMCldKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5N
QVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzLmNvbXByZXNz
KHBheWxvYWQpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6
bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3Nl
ZF9wYXlsb2FkWzotNF0KLQotICAgICAgICAjIEZyYWdtZW50IHRoZSBjb21wcmVzc2VkIHBheWxv
YWQgaW50byBsb3RzIG9mIGZyYW1lcy4KLSAgICAgICAgYnl0ZXNfY2h1bmtlZCA9IDAKLSAgICAg
ICAgZGF0YSA9ICcnCi0gICAgICAgIGZyYW1lX2NvdW50ID0gMAotCi0gICAgICAgIGNodW5rX3Np
emVzID0gW10KLQotICAgICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwgbGVuKGNvbXByZXNzZWRf
cGF5bG9hZCk6Ci0gICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0Ci0gICAgICAgICAgICAjIC0g
dGhlIGxlbmd0aCBvZiBjaHVua3MgYXJlIGVxdWFsIG9yIGxlc3MgdGhhbiAxMjUgc28gdGhhdCB3
ZSBjYW4KLSAgICAgICAgICAgICMgICB1c2UgMSBvY3RldCBsZW5ndGggaGVhZGVyIGZvcm1hdCBm
b3IgYWxsIGZyYW1lcy4KLSAgICAgICAgICAgICMgLSBhdCBsZWFzdCAxMCBjaHVua3MgYXJlIGNy
ZWF0ZWQuCi0gICAgICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCi0gICAgICAg
ICAgICAgICAgMSwgbWluKDEyNSwKLSAgICAgICAgICAgICAgICAgICAgICAgbGVuKGNvbXByZXNz
ZWRfcGF5bG9hZCkgLyAxMCwKLSAgICAgICAgICAgICAgICAgICAgICAgbGVuKGNvbXByZXNzZWRf
cGF5bG9hZCkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgICAgIGNodW5rX3NpemVzLmFwcGVu
ZChjaHVua19zaXplKQotICAgICAgICAgICAgY2h1bmsgPSBjb21wcmVzc2VkX3BheWxvYWRbCi0g
ICAgICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2VkICsgY2h1bmtfc2l6ZV0K
LSAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgICAgICAgICBm
aXJzdF9vY3RldCA9IDB4MDAKLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSA9PSAwOgotICAgICAg
ICAgICAgICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDQyCi0gICAgICAgICAgICBp
ZiBieXRlc19jaHVua2VkID09IGxlbihjb21wcmVzc2VkX3BheWxvYWQpOgotICAgICAgICAgICAg
ICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDgwCi0KLSAgICAgICAgICAgIGRhdGEg
Kz0gJyVjJWMnICUgKGZpcnN0X29jdGV0LCBjaHVua19zaXplIHwgMHg4MCkKLSAgICAgICAgICAg
IGRhdGEgKz0gX21hc2tfaHliaShjaHVuaykKLQotICAgICAgICAgICAgZnJhbWVfY291bnQgKz0g
MQotCi0gICAgICAgIHByaW50ICJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXplcykgPiAxMCkKLQotICAgICAgICAjIENs
b3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0
LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9E
RUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9t
X3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1l
eHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVf
dHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvV2ViU29ja2V0JykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAg
ICBzcGxpdF9wb3NpdGlvbiA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAvIDIKLSAgICAgICAgZGF0
YSArPSAnXHg0MSVjJyAlIChzcGxpdF9wb3NpdGlvbiB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0g
X21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvWzpzcGxpdF9wb3NpdGlvbl0pCi0KLSAgICAgICAg
ZGF0YSArPSAnXHg4MCVjJyAlICgobGVuKGNvbXByZXNzZWRfaGVsbG8pIC0gc3BsaXRfcG9zaXRp
b24pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG9b
c3BsaXRfcG9zaXRpb246XSkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFU
RUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJl
c3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21w
cmVzc2VkX3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVz
c2VkX3dvcmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4
OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScp
Ci0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAg
ICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAg
ZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsb1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21l
c3NhZ2VfbWl4ZWRfYnR5cGUoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIG1lc3NhZ2Ug
Y29tcHJlc3NlZCB1c2luZyBsb3RzIG9mIERFRkxBVEUgYmxvY2tzIHdpdGgKLSAgICAgICAgdmFy
aW91cyBmbHVzaCBtb2RlIGlzIGNvcnJlY3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBwYXlsb2FkID0gJycuam9pbigKLSAgICAg
ICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMDAp
XSkKLQotICAgICAgICBjb21wcmVzcyA9IE5vbmUKLQotICAgICAgICAjIEZyYWdtZW50IHRoZSBj
b21wcmVzc2VkIHBheWxvYWQgaW50byBsb3RzIG9mIGZyYW1lcy4KLSAgICAgICAgYnl0ZXNfY2h1
bmtlZCA9IDAKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gJycKLQotICAgICAgICBjaHVu
a19zaXplcyA9IFtdCi0gICAgICAgIG1ldGhvZHMgPSBbXQotICAgICAgICBzeW5jX3VzZWQgPSBG
YWxzZQotICAgICAgICBmaW5pc2hfdXNlZCA9IEZhbHNlCi0KLSAgICAgICAgd2hpbGUgYnl0ZXNf
Y2h1bmtlZCA8IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgICMgTWFrZSBzdXJlIGF0IGxlYXN0
IDEwIGNodW5rcyBhcmUgY3JlYXRlZC4KLSAgICAgICAgICAgIGNodW5rX3NpemUgPSByYW5kb20u
cmFuZGludCgKLSAgICAgICAgICAgICAgICAxLCBtaW4oMTAwLCBsZW4ocGF5bG9hZCkgLSBieXRl
c19jaHVua2VkKSkKLSAgICAgICAgICAgIGNodW5rX3NpemVzLmFwcGVuZChjaHVua19zaXplKQot
ICAgICAgICAgICAgY2h1bmsgPSBwYXlsb2FkW2J5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCAr
IGNodW5rX3NpemVdCi0KLSAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQot
Ci0gICAgICAgICAgICBpZiBjb21wcmVzcyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGNvbXBy
ZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sCi0gICAgICAgICAgICAgICAgICAgIHpsaWIuREVGTEFURUQsCi0gICAg
ICAgICAgICAgICAgICAgIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICAgICAgaWYgYnl0ZXNf
Y2h1bmtlZCA9PSBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXls
b2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNodW5rKQotICAgICAgICAgICAgICAgIGNvbXByZXNz
ZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAg
ICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzc2VkX3BheWxvYWRbOi00XQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtZXRob2QgPSByYW5kb20ucmFuZGludCgw
LCAxKQotICAgICAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKG1ldGhvZCkKLSAgICAgICAgICAg
ICAgICBpZiBtZXRob2QgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXls
b2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNodW5rKQotICAgICAgICAgICAgICAgICAgICBjb21w
cmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAg
ICAgICAgICAgICAgICAgIHN5bmNfdXNlZCA9IFRydWUKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJl
c3MoY2h1bmspCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICAgICAgICAgICAgICBjb21wcmVzcyA9
IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgZmluaXNoX3VzZWQgPSBUcnVlCi0KLSAgICAgICAg
cHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcwotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBwcmludCAiTWV0aG9kczogJXIi
ICUgbWV0aG9kcwotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3luY191c2VkKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZmluaXNoX3VzZWQpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDEy
NSA8IGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVu
KGNvbXByZXNzZWRfcGF5bG9hZCkgPCA2NTUzNikKLSAgICAgICAgZGF0YSA9ICdceGMyXHhmZScg
KyBzdHJ1Y3QucGFjaygnIUgnLCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKLSAgICAgICAgZGF0
YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfcGF5bG9hZCkKLQotICAgICAgICAjIENsb3NlIGZy
YW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2so
JyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRF
X0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNp
b24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlQ29tcHJlc3NU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgY2hlY2tpbmcgcGVybWVz
c2FnZS1jb21wcmVzc2lvbiBleHRlbnNpb24uIiIiCi0KLSAgICBkZWYgdGVzdF9kZWZsYXRlX3Jl
c3BvbnNlX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lP
Tl9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtZXRob2QnLCAn
ZGVmbGF0ZScpCi0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lv
blByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9l
eHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdt
ZXRob2QnKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQot
ICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWV0aG9kJywgJ2RlZmxhdGUnKQotICAg
ICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNpb25Qcm9jZXNzb3IoZXh0
ZW5zaW9uKQotCi0gICAgICAgIGRlZiBfY29tcHJlc3Npb25fcHJvY2Vzc29yX2hvb2soY29tcHJl
c3Npb25fcHJvY2Vzc29yKToKLSAgICAgICAgICAgIGNvbXByZXNzaW9uX3Byb2Nlc3Nvci5zZXRf
Y2xpZW50X21heF93aW5kb3dfYml0cyg4KQotICAgICAgICAgICAgY29tcHJlc3Npb25fcHJvY2Vz
c29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotICAgICAgICBwcm9jZXNz
b3Iuc2V0X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rKAotICAgICAgICAgICAgX2NvbXByZXNz
aW9uX3Byb2Nlc3Nvcl9ob29rKQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICdkZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTg7IGNsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyJywKLSAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21ldGhv
ZCcpKQotCi0KLWNsYXNzIE1lc3NhZ2VUZXN0SGl4aWU3NSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0g
ICAgIiIiVGVzdHMgZm9yIGRyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3RvY29sLTc2IHN0cmVh
bSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgw
MEhlbGxvXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCB1J1x1NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlzIGVuY29kZWQgYXMgZTYsOTcsYTUg
aW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4ZTZceDk3XHhhNVx4ZmYn
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwSGVsbG9ceGZmXHgwMFdvcmxkIVx4
ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVz
c2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hp
eGllNzUoJ1x4MDBceGU2XHg5Y1x4YWNceGZmJykKLSAgICAgICAgIyBVKzY3MmMgaXMgZW5jb2Rl
ZCBhcyBlNiw5YyxhYyBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2NzJj
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNl
aXZlX21lc3NhZ2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgICMgXHg4MCBhbmQg
XHg4MSBhcmUgaW52YWxpZCBhcyBVVEYtOC4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdF9oaXhpZTc1KCdceDAwXHg4MFx4ODFceGZmJykKLSAgICAgICAgIyBJbnZhbGlkIGNoYXJh
Y3RlcnMgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgKLSAgICAgICAgIyBVK2ZmZmQgUkVQTEFDRU1F
TlQgQ0hBUkFDVEVSCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdWZmZmRcdWZmZmQnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVf
bWVzc2FnZV9kaXNjYXJkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2hpeGllNzUoJ1x4ODBceDA2SUdOT1JFXHgwMEhlbGxvXHhmZicKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdceDAxRElTUkVHQVJEXHhmZlx4MDBXb3JsZCFceGZm
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhlIFN0cmVhbSBjbGFzcyB1c2lu
ZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1ZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHJlY2VpdmVy
ID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIHJlY2VpdmVyLnJlY2VpdmVfbm93YWl0KCkpCi0KLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHg4MVx4ODYnICsgX21hc2tfaHliaSgnSGVsbG8hJykp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2VpdmVyLnJlY2VpdmUoKSkK
LQotICAgIGRlZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAgb25tZXNzYWdlX3F1ZXVl
ID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2VfaGFuZGxlcihtZXNzYWdl
KToKLSAgICAgICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2FnZSkKLQotICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBt
c2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0LCBvbm1lc3NhZ2VfaGFuZGxlcikKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBfbWFza19oeWJp
KCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgb25tZXNzYWdl
X3F1ZXVlLmdldCgpKQotCi0KLWNsYXNzIE1lc3NhZ2VSZWNlaXZlckhpeGllNzVUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtSGl4aWU3NSBjbGFzcyB1c2lu
ZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1ZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAg
cmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDAwSGVsbG8hXHhmZicpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2VpdmVyLnJlY2VpdmUoKSkKLQotICAgIGRl
ZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAgb25tZXNzYWdlX3F1ZXVlID0gUXVldWUu
UXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2VfaGFuZGxlcihtZXNzYWdlKToKLSAgICAg
ICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2FnZSkKLQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZWNlaXZlciA9IG1z
Z3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9oYW5kbGVyKQotCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFceGZmJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgb25tZXNzYWdlX3F1ZXVlLmdldCgpKQotCi0K
LWNsYXNzIE1lc3NhZ2VTZW5kZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0
cyB0aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBkZWYgdGVz
dF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0
KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0KLSAg
ICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4
MVx4MDVXb3JsZCcsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBhIHF1ZXVlIHRvIGNoZWNr
IHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgICAgICMgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgYmVjYXVzZQotICAg
ICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRocmVhZC4KLSAgICAgICAg
c2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgd3JpdGUoYnl0ZXMpOgot
ICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
ZSA9IHdyaXRlCi0KLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVl
c3QpCi0KLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdIZWxsbycpCi0gICAgICAgIHNlbmRl
ci5zZW5kX25vd2FpdCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgw
NUhlbGxvJywgc2VuZF9xdWV1ZS5nZXQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4
MVx4MDVXb3JsZCcsIHNlbmRfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRlckhp
eGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtSGl4
aWU3NSBjbGFzcyB1c2luZyBNZXNzYWdlU2VuZGVyLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZChz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1
KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0KLSAg
ICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgw
MFdvcmxkXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBhIHF1ZXVlIHRvIGNoZWNr
IHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgICAgICMgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgYmVjYXVzZQotICAg
ICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRocmVhZC4KLSAgICAgICAg
c2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgd3JpdGUoYnl0ZXMpOgot
ICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VTZW5k
ZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykKLSAgICAg
ICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1x4MDBIZWxsb1x4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdceDAwV29ybGRceGZmJywgc2VuZF9xdWV1ZS5nZXQoKSkKLQotCi1pZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NTk4OTQ0ZTA4N2Ni
ZDJjMmIyY2UyYTRiMDg5YWFmZDdhMzM0YzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDIwODkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdo
dCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbXV4IG1vZHVsZS4iIiIKLQotaW1wb3J0IFF1ZXVlCi1p
bXBvcnQgY29weQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IHN0cnVj
dAotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgdGltZQotaW1wb3J0IHpsaWIK
LQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9w
eXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vi
c29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zZV9mcmFtZQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hh
a2VfYm9keQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBwYXJzZV9m
cmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgTXV4RXh0ZW5zaW9u
UHJvY2Vzc29yCi0KLQotaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9IRUFERVJTID0geydIb3N0Jzog
J3NlcnZlci5leGFtcGxlLmNvbScsCi0gICAgICAgICAgICAgICAgICdVcGdyYWRlJzogJ3dlYnNv
Y2tldCcsCi0gICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAg
ICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09
JywKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbic6ICcxMycsCi0gICAg
ICAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJ30KLQotCi1jbGFzcyBf
T3V0Z29pbmdDaGFubmVsRGF0YShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAg
ICAgICAgc2VsZi5tZXNzYWdlcyA9IFtdCi0gICAgICAgIHNlbGYuY29udHJvbF9tZXNzYWdlcyA9
IFtdCi0KLSAgICAgICAgc2VsZi5idWlsZGVyID0gbXV4Ll9Jbm5lck1lc3NhZ2VCdWlsZGVyKCkK
LQotY2xhc3MgX01vY2tNdXhDb25uZWN0aW9uKG1vY2suTW9ja0Jsb2NraW5nQ29ubik6Ci0gICAg
IiIiTW9jayBjbGFzcyBvZiBtb2RfcHl0aG9uIGNvbm5lY3Rpb24gZm9yIG11eC4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgbW9jay5Nb2NrQmxvY2tpbmdDb25uLl9faW5p
dF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0gW10KLSAgICAgICAgc2Vs
Zi5fY2hhbm5lbF9kYXRhID0ge30KLQotICAgICAgICBzZWxmLl9jdXJyZW50X29wY29kZSA9IE5v
bmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMgPSBbXQotCi0gICAgICAgIHNlbGYu
c2VydmVyX2Nsb3NlX2NvZGUgPSBOb25lCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0g
ICAgICAgICIiIk92ZXJyaWRlIE1vY2tCbG9ja2luZ0Nvbm4ud3JpdGUuIiIiCi0KLSAgICAgICAg
c2VsZi5fY3VycmVudF9kYXRhID0gZGF0YQotICAgICAgICBzZWxmLl9wb3NpdGlvbiA9IDAKLQot
ICAgICAgICBkZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3RoKToKLSAgICAgICAgICAgIGlmIHNlbGYu
X3Bvc2l0aW9uICsgbGVuZ3RoID4gbGVuKHNlbGYuX2N1cnJlbnRfZGF0YSk6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgICAgICdGYWlsZWQgdG8gcmVjZWl2ZSAlZCBieXRlcyBmcm9tIGVuY2Fwc3VsYXRlZCAnCi0g
ICAgICAgICAgICAgICAgICAgICdmcmFtZScgJSBsZW5ndGgpCi0gICAgICAgICAgICBkYXRhID0g
c2VsZi5fY3VycmVudF9kYXRhW3NlbGYuX3Bvc2l0aW9uOnNlbGYuX3Bvc2l0aW9uK2xlbmd0aF0K
LSAgICAgICAgICAgIHNlbGYuX3Bvc2l0aW9uICs9IGxlbmd0aAotICAgICAgICAgICAgcmV0dXJu
IGRhdGEKLQotICAgICAgICAjIFBhcnNlIHBoeXNpY2FsIGZyYW1lcyBhbmQgYXNzZW1ibGUgYSBt
ZXNzYWdlIGlmIHRoZSBtZXNzYWdlIGlzCi0gICAgICAgICMgZnJhZ21lbnRlZC4KLSAgICAgICAg
b3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSAoCi0gICAgICAgICAgICBw
YXJzZV9mcmFtZShfcmVjZWl2ZV9ieXRlcywgdW5tYXNrX3JlY2VpdmU9RmFsc2UpKQotCi0gICAg
ICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzLmFwcGVuZChwYXlsb2FkKQotCi0gICAgICAgIGlm
IHNlbGYuX2N1cnJlbnRfb3Bjb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgPT0g
Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGludWF0aW9uIG9wY29kZScpCi0gICAgICAgICAgICBz
ZWxmLl9jdXJyZW50X29wY29kZSA9IG9wY29kZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
aWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCcgJSBvcGNvZGUpCi0g
ICAgICAgIGlmIG5vdCBmaW46Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpbm5lcl9m
cmFtZV9kYXRhID0gJycuam9pbihzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cykKLSAgICAgICAgc2Vs
Zi5fcGVuZGluZ19mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9jdXJyZW50X29wY29kZSA9
IE5vbmUKLQotICAgICAgICAjIEhhbmRsZSBhIGNvbnRyb2wgbWVzc2FnZSBvbiB0aGUgcGh5c2lj
YWwgY2hhbm5lbC4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3VwcG9ydCBvdGhlciBvcGNvZGVz
IGlmIG5lZWRlZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ0xPU0U6Ci0g
ICAgICAgICAgICBpZiBsZW4ocGF5bG9hZCkgPj0gMjoKLSAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9jbG9zZV9jb2RlID0gc3RydWN0LnVucGFjaygnIUgnLCBwYXlsb2FkWzoyXSlbMF0KLSAg
ICAgICAgICAgIGNsb3NlX2JvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keSgKLSAg
ICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCAnJykKLSAgICAgICAg
ICAgIGNsb3NlX2ZyYW1lID0gY3JlYXRlX2Nsb3NlX2ZyYW1lKGNsb3NlX2JvZHksIG1hc2s9VHJ1
ZSkKLSAgICAgICAgICAgIHNlbGYucHV0X2J5dGVzKGNsb3NlX2ZyYW1lKQotICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgcGF5bG9hZCBvZiB0aGUgbWVzc2FnZSBvbiBw
aHlzaWNhbCBjaGFubmVsLgotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBh
cnNlcihpbm5lcl9mcmFtZV9kYXRhKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRf
Y2hhbm5lbF9pZCgpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gbXV4Ll9DT05UUk9MX0NIQU5O
RUxfSUQ6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrcy5leHRlbmQobGlzdChwYXJz
ZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
IGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2NoYW5uZWxfZGF0YToKLSAgICAgICAgICAgIHNl
bGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXSA9IF9PdXRnb2luZ0NoYW5uZWxEYXRhKCkKLSAg
ICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdCi0KLSAg
ICAgICAgIyBQYXJzZSBsb2dpY2FsIGZyYW1lcyBhbmQgYXNzZW1ibGUgYW4gaW5uZXIgKGxvZ2lj
YWwpIG1lc3NhZ2UuCi0gICAgICAgIChpbm5lcl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIs
IGlubmVyX3JzdjMsIGlubmVyX29wY29kZSwKLSAgICAgICAgIGlubmVyX3BheWxvYWQpID0gcGFy
c2VyLnJlYWRfaW5uZXJfZnJhbWUoKQotICAgICAgICBpbm5lcl9mcmFtZSA9IEZyYW1lKGlubmVy
X2ZpbiwgaW5uZXJfcnN2MSwgaW5uZXJfcnN2MiwgaW5uZXJfcnN2MywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbm5lcl9vcGNvZGUsIGlubmVyX3BheWxvYWQpCi0gICAgICAgIG1lc3Nh
Z2UgPSBjaGFubmVsX2RhdGEuYnVpbGRlci5idWlsZChpbm5lcl9mcmFtZSkKLSAgICAgICAgaWYg
bWVzc2FnZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgKG1lc3Nh
Z2Uub3Bjb2RlID09IGNvbW1vbi5PUENPREVfVEVYVCBvcgotICAgICAgICAgICAgbWVzc2FnZS5v
cGNvZGUgPT0gY29tbW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAgICAgY2hhbm5lbF9kYXRh
Lm1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlLnBheWxvYWQpCi0KLSAgICAgICAgICAgIHNlbGYub25f
ZGF0YV9tZXNzYWdlKG1lc3NhZ2UucGF5bG9hZCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGNoYW5uZWxfZGF0YS5jb250cm9sX21lc3NhZ2VzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICB7
J29wY29kZSc6IG1lc3NhZ2Uub3Bjb2RlLAotICAgICAgICAgICAgICAgICAnbWVzc2FnZSc6IG1l
c3NhZ2UucGF5bG9hZH0pCi0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2Up
OgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3Moc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jb250cm9sX2Jsb2NrcwotCi0gICAgZGVmIGdldF93
cml0dGVuX21lc3NhZ2VzKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi5f
Y2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdLm1lc3NhZ2VzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5f
Y29udHJvbF9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5jb250cm9sX21lc3NhZ2VzCi0KLQotY2xhc3MgX0Zh
aWxPbldyaXRlQ29ubmVjdGlvbihfTW9ja011eENvbm5lY3Rpb24pOgotICAgICIiIlNwZWNpY2lh
bGl6ZWQgdmVyc2lvbiBvZiBfTW9ja011eENvbm5lY3Rpb24uIEl0cyB3cml0ZSgpIG1ldGhvZCBy
YWlzZXMKLSAgICBhbiBleGNlcHRpb24gZm9yIHRlc3Rpbmcgd2hlbiBhIGRhdGEgbWVzc2FnZSBp
cyB3cml0dGVuLgotICAgICIiIgotCi0gICAgZGVmIG9uX2RhdGFfbWVzc2FnZShzZWxmLCBtZXNz
YWdlKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgdG8gcmFpc2UgYW4gZXhjZXB0aW9uLiIiIgotCi0g
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW50ZW50aW9uYWwgZmFpbHVyZScpCi0KLQotY2xhc3Mg
X0NoYW5uZWxFdmVudChvYmplY3QpOgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgcmVjb3JkcyBj
aGFubmVsIGV2ZW50cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5yZXF1ZXN0ID0gTm9uZQotICAgICAgICBzZWxmLm1lc3NhZ2VzID0gW10KLSAgICAgICAgc2Vs
Zi5leGNlcHRpb24gPSBOb25lCi0gICAgICAgIHNlbGYuY2xpZW50X2luaXRpYXRlZF9jbG9zaW5n
ID0gRmFsc2UKLQotCi1jbGFzcyBfTXV4TW9ja0Rpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJN
b2NrIGNsYXNzIG9mIGRpc3BhdGNoLkRpc3BhdGNoZXIgZm9yIG11eC4iIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50cyA9IHt9Ci0KLSAgICBk
ZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBpZiByZXF1ZXN0
LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXF1ZXN0
LndzX3Byb3RvY29sID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzWzBdCi0KLSAgICBk
ZWYgX2RvX2VjaG8oc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgbWVzc2FnZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVf
bWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBtZXNzYWdlID09IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgY2hhbm5lbF9ldmVudHMuY2xpZW50X2luaXRpYXRlZF9jbG9zaW5nID0gVHJ1ZQotICAgICAg
ICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgaWYgbWVzc2FnZSA9PSAnR29vZGJ5ZSc6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVsX2V2ZW50cy5tZXNzYWdl
cy5hcHBlbmQobWVzc2FnZSkKLSAgICAgICAgICAgICMgZWNobyBiYWNrCi0gICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQotICAgIGRlZiBfZG9fcGlu
ZyhzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3Ry
ZWFtLnNlbmRfcGluZygnUGluZyEnKQotCi0gICAgZGVmIF9kb19waW5nX3doaWxlX2hlbGxvX3dv
cmxkKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uc2VuZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfcGluZygnUGluZyEnKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5z
ZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVlKQotCi0gICAgZGVmIF9kb190d29fcGluZ193
aGlsZV9oZWxsb193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5kPUZhbHNlKQotICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLSAgICAgICAgcmVxdWVz
dC53c19zdHJlYW0uc2VuZF9waW5nKCdQb25nIScpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFt
LnNlbmRfbWVzc2FnZSgnV29ybGQhJywgZW5kPVRydWUpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0
YShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNo
YW5uZWxfaWRdID0gX0NoYW5uZWxFdmVudCgpCi0gICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNb
cmVxdWVzdC5jaGFubmVsX2lkXS5yZXF1ZXN0ID0gcmVxdWVzdAotCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgICMgTm90ZTogbW9yZSBoYW5kbGVyIHdpbGwgYmUgYWRkZWQuCi0gICAgICAgICAg
ICBpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgnZWNobycpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2RvX2VjaG8ocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hh
bm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVz
dC51cmkuZW5kc3dpdGgoJ3BpbmcnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19waW5nKHJl
cXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRz
W3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3
aXRoKCd0d29fcGluZ193aGlsZV9oZWxsb193b3JsZCcpOgotICAgICAgICAgICAgICAgIHNlbGYu
X2RvX3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LCBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAg
ICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nX3doaWxlX2hlbGxvX3dvcmxkJyk6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fZG9fcGluZ193aGlsZV9oZWxsb193b3JsZCgKLSAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxf
aWRdKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCdDYW5ub3QgaGFuZGxlIHBhdGggJXInICUgcmVxdWVzdC5wYXRoKQotICAgICAgICAgICAgaWYg
bm90IHJlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC53
c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0gICAgICAgIGV4Y2VwdCBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVx
dWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24s
IGU6Ci0gICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0u
ZXhjZXB0aW9uID0gZQotICAgICAgICAgICAgcmFpc2UKLQotCi1kZWYgX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoY29ubmVjdGlvbj1Ob25lLCBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1Ob25lKToK
LSAgICBpZiBjb25uZWN0aW9uIGlzIE5vbmU6Ci0gICAgICAgIGNvbm5lY3Rpb24gPSBfTW9ja011
eENvbm5lY3Rpb24oKQotCi0gICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QodXJpPScvZWNo
bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyc19pbj1fVEVTVF9IRUFE
RVJTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb249Y29ubmVjdGlv
bikKLSAgICByZXF1ZXN0LndzX3N0cmVhbSA9IFN0cmVhbShyZXF1ZXN0LCBvcHRpb25zPVN0cmVh
bU9wdGlvbnMoKSkKLSAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IgPSBNdXhFeHRlbnNpb25Qcm9j
ZXNzb3IoCi0gICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLk1VWF9FWFRF
TlNJT04pKQotICAgIGlmIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgot
ICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X2V4dGVuc2lvbnMobG9naWNhbF9jaGFu
bmVsX2V4dGVuc2lvbnMpCi0gICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9xdW90YSg4ICog
MTAyNCkKLSAgICByZXR1cm4gcmVxdWVzdAotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoY2hhbm5lbF9pZCwgZW5jb2RpbmcsIGVuY29kZWRfaGFuZHNoYWtlKToKLSAg
ICAjIEFsbG93IGludmFsaWQgZW5jb2RpbmcgZm9yIHRlc3RpbmcuCi0gICAgZmlyc3RfYnl0ZSA9
ICgobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNvZGluZykK
LSAgICBwYXlsb2FkID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAgICAgICAgICBtdXguX2Vu
Y29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgICAgIG11eC5fZW5jb2Rl
X251bWJlcihsZW4oZW5jb2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgKG11
eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCks
IG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9p
ZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICBwYXlsb2FkID0gbXV4Ll9jcmVhdGVfZHJv
cF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgcmV0dXJuIGNyZWF0ZV9i
aW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJP
TF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQotZGVmIF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAgICBwYXls
b2FkID0gbXV4Ll9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1
b3RhKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNv
ZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1U
cnVlKQotCi0KLWRlZiBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZCwgbWVzc2FnZSwg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQklOQVJZLAotICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwgcnN2MT1GYWxzZSwgcnN2Mj1GYWxzZSwgcnN2Mz1GYWxzZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWFzaz1UcnVlKToKLSAgICBiaXRzID0gY2hyKChmaW4gPDwgNykgfCAo
cnN2MSA8PCA2KSB8IChyc3YyIDw8IDUpIHwgKHJzdjMgPDwgNCkgfCBvcGNvZGUpCi0gICAgcGF5
bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBiaXRzICsgbWVzc2Fn
ZQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKHBheWxvYWQsIG1hc2s9VHJ1ZSkKLQot
Ci1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycsIGV4dGVuc2lvbnM9Tm9u
ZSk6Ci0gICAgaGVhZGVycyA9ICgKLSAgICAgICAgJ0dFVCAlcyBIVFRQLzEuMVxyXG4nCi0gICAg
ICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAgICAnQ29ubmVjdGlvbjog
VXBncmFkZVxyXG4nCi0gICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nKSAl
IHBhdGgKLSAgICBpZiBleHRlbnNpb25zOgotICAgICAgICBoZWFkZXJzICs9ICclczogJXMnICUg
KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIsIGV4
dGVuc2lvbnMpCi0gICAgcmV0dXJuIGhlYWRlcnMKLQotCi1jbGFzcyBNdXhUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBtdXggbW9kdWxlLiIiIgotCi0gICAg
ZGVmIHRlc3RfY2hhbm5lbF9pZF9kZWNvZGUoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHgwMFx4
MDFceGJmXHhmZlx4ZGZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBw
YXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBjaGFu
bmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9p
ZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIg
KiogMTQgLSAxLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRf
Y2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyMSAtIDEsIGNoYW5u
ZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDI5IC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBhcnNlci5fcmVhZF9wb3NpdGlvbikKLQotICAg
IGRlZiB0ZXN0X2NoYW5uZWxfaWRfZW5jb2RlKHNlbGYpOgotICAgICAgICBlbmNvZGVkID0gbXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZCgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAwJywg
ZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAx
NCAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YmZceGZmJywgZW5jb2RlZCkKLSAg
ICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAxNCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnXHhjMEBceDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9
IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyMSAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4ZGZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2Vu
Y29kZV9jaGFubmVsX2lkKDIgKiogMjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZTAg
XHgwMFx4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5l
bF9pZCgyICoqIDI5IC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhmZlx4ZmZceGZm
XHhmZicsIGVuY29kZWQpCi0gICAgICAgICMgY2hhbm5lbF9pZCBpcyB0b28gbGFyZ2UKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgMiAq
KiAyOSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfbXVsdGlwbGVfY29udHJvbF9ibG9ja3Moc2VsZik6
Ci0gICAgICAgICMgVXNlIEFkZENoYW5uZWxSZXF1ZXN0IGJlY2F1c2UgaXQgY2FuIGNvbnRhaW4g
YXJiaXRyYXJ5IGxlbmd0aCBvZiBkYXRhCi0gICAgICAgIGRhdGEgPSAoJ1x4MDBceDAxXHgwMWEn
Ci0gICAgICAgICAgICAgICAgJ1x4MDBceDAyXHg3ZCVzJwotICAgICAgICAgICAgICAgICdceDAw
XHgwM1x4N2VceGZmXHhmZiVzJwotICAgICAgICAgICAgICAgICdceDAwXHgwNFx4N2ZceDAwXHgw
MFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCVzJykgJSAoCi0gICAgICAgICAgICAnYScgKiAweDdk
LCAnYicgKiAweGZmZmYsICdjJyAqIDB4MTAwMDApCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4
RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJl
YWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBsZW4oYmxv
Y2tzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hB
Tk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1sxXS5vcGNvZGUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzFdLmNoYW5uZWxfaWQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHg3ZCwgbGVuKGJsb2Nrc1sxXS5lbmNvZGVkX2hhbmRzaGFr
ZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5O
RUxfUkVRVUVTVCwgYmxvY2tzWzJdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgz
LCBibG9ja3NbMl0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweGZmZmYs
IGxlbihibG9ja3NbMl0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1szXS5vcGNv
ZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgYmxvY2tzWzNdLmNoYW5uZWxfaWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHgxMDAwMCwgbGVuKGJsb2Nrc1szXS5lbmNvZGVkX2hh
bmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBhcnNlci5f
cmVhZF9wb3NpdGlvbikKLQotICAgIGRlZiB0ZXN0X3JlYWRfYWRkX2NoYW5uZWxfcmVxdWVzdChz
ZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDAwXHgwMVx4MDFhJwotICAgICAgICBwYXJzZXIgPSBt
dXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBh
cnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4
Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAg
ICBkZWYgdGVzdF9yZWFkX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDYw
XHgwMVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRh
dGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3NbMF0ub3Bjb2RlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGJsb2Nrc1swXS5kcm9wX2NvZGUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpKQotCi0gICAg
ICAgIGRhdGEgPSAnXHg2MFx4MDJceDA5XHgwM1x4ZThTdWNjZXNzJwotICAgICAgICBwYXJzZXIg
PSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0
KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgbGVuKGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzBdLmNo
YW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0RST1Bf
Q0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDAw
LCBibG9ja3NbMF0uZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdTdWNjZXNz
JywgYmxvY2tzWzBdLmRyb3BfbWVzc2FnZSkKLQotICAgICAgICAjIFJlYXNvbiBpcyB0b28gc2hv
cnQuCi0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDFceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0g
bXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0KLSAgICBkZWYg
dGVzdF9yZWFkX2Zsb3dfY29udHJvbChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDQwXHgwMVx4
MDInCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0g
ICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCht
dXguX01VWF9PUENPREVfRkxPV19DT05UUk9MLCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1swXS5zZW5kX3F1b3RhKQotCi0gICAgZGVmIHRlc3Rf
cmVhZF9uZXdfY2hhbm5lbF9zbG90KHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4ODBceDAxXHgw
Mlx4MDJceDAzJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihk
YXRhKQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCi0KLSAg
ICBkZWYgdGVzdF9yZWFkX2ludmFsaWRfbnVtYmVyX2ZpZWxkX2luX2NvbnRyb2xfYmxvY2soc2Vs
Zik6Ci0gICAgICAgICMgTm8gbnVtYmVyIGZpZWxkLgotICAgICAgICBkYXRhID0gJycKLSAgICAg
ICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAg
ICAjIFRoZSBsYXN0IHR3byBieXRlcyBhcmUgbWlzc2luZy4KLSAgICAgICAgZGF0YSA9ICdceDdl
JwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQot
Ci0gICAgICAgICMgTWlzc2luZyB0aGUgbGFzdCBvbmUgYnl0ZS4KLSAgICAgICAgZGF0YSA9ICdc
eDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9N
dXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFRoZSBsZW5ndGggb2Yg
bnVtYmVyIGZpZWxkIGlzIHRvbyBsYXJnZS4KLSAgICAgICAgZGF0YSA9ICdceDdmXHhmZlx4ZmZc
eGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQ
YXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Is
IHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBUaGUgbXNiIG9mIHRoZSBmaXJzdCBi
eXRlIGlzIHNldC4KLSAgICAgICAgZGF0YSA9ICdceDgwJwotICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVXNpbmcgMyBieXRl
cyBlbmNvZGluZyBmb3IgMTI1LgotICAgICAgICBkYXRhID0gJ1x4N2VceDAwXHg3ZCcKLSAgICAg
ICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAg
ICAjIFVzaW5nIDkgYnl0ZXMgZW5jb2RpbmcgZm9yIDB4ZmZmZgotICAgICAgICBkYXRhID0gJ1x4
N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGZmXHhmZicKLSAgICAgICAgcGFyc2VyID0gbXV4
Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgIGRlZiB0ZXN0X3JlYWRfaW52
YWxpZF9zaXplX2FuZF9jb250ZW50cyhzZWxmKToKLSAgICAgICAgIyBPbmx5IGNvbnRhaW4gbnVt
YmVyIGZpZWxkLgotICAgICAgICBkYXRhID0gJ1x4MDEnCi0gICAgICAgIHBhcnNlciA9IG11eC5f
TXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG11
eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
c2VyLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2FkZF9j
aGFubmVsX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBkYXRhID0gbXV4Ll9jcmVhdGVfYWRkX2No
YW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9J0Zvb0JhcicsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWQ9RmFs
c2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MjBceDAxXHgwNkZvb0JhcicsIGRhdGEp
Ci0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0xLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWQ9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHgzMVx4MDJceDA1SGVsbG8nLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfY3JlYXRl
X2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ryb3BfY2hh
bm5lbChjaGFubmVsX2lkPTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBceDAxXHgw
MCcsIGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFu
bmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT0y
MDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J2Vy
cm9yJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg2MFx4MDFceDA3XHgwN1x4ZDBlcnJv
cicsIGRhdGEpCi0KLSAgICAgICAgIyByZWFzb24gbXVzdCBiZSBlbXB0eSBpZiBjb2RlIGlzIE5v
bmUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAxLCBOb25lLCAnRm9vQmFyJykKLQotICAgIGRlZiB0ZXN0X3BhcnNlX3JlcXVlc3Rf
dGV4dChzZWxmKToKLSAgICAgICAgcmVxdWVzdF90ZXh0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cigpCi0gICAgICAgIGNvbW1hbmQsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBtdXguX3BhcnNl
X3JlcXVlc3RfdGV4dChyZXF1ZXN0X3RleHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0dF
VCcsIGNvbW1hbmQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9lY2hvJywgcGF0aCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSFRUUC8xLjEnLCB2ZXJzaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDMsIGxlbihoZWFkZXJzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
c2VydmVyLmV4YW1wbGUuY29tJywgaGVhZGVyc1snSG9zdCddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCBoZWFkZXJzWydPcmlnaW4nXSkKLQotCi1jbGFz
cyBNdXhIYW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9hZGRf
Y2hhbm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkK
LSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9o
YW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11
eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMo
bXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2Vj
aG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNz
YWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxf
ZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwg
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbM10ubWVzc2FnZXMp
Ci0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdl
c1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1l
c3NhZ2VzWzBdKQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICMgVGhlcmUgc2hvdWxkIGJlIDgg
Y29udHJvbCBibG9ja3M6Ci0gICAgICAgICMgICAtIDEgTmV3Q2hhbm5lbFNsb3QKLSAgICAgICAg
IyAgIC0gMiBBZGRDaGFubmVsUmVzcG9uc2VzIGZvciBjaGFubmVsIGlkIDIgYW5kIDMKLSAgICAg
ICAgIyAgIC0gNiBGbG93Q29udHJvbHMgZm9yIGNoYW5uZWwgaWQgMSAoaW5pdGlhbGl6ZSksICdI
ZWxsbycsICdXb3JsZCcsCi0gICAgICAgICMgICAgIGFuZCAzICdHb29kYnllJ3MKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCg5LCBsZW4oY29udHJvbF9ibG9ja3MpKQotCi0gICAgZGVmIHRlc3Rf
cGh5c2ljYWxfY29ubmVjdGlvbl93cml0ZV9mYWlsdXJlKHNlbGYpOgotICAgICAgICAjIFVzZSBf
RmFpbE9uV3JpdGVDb25uZWN0aW9uLgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoY29ubmVjdGlvbj1fRmFpbE9uV3JpdGVDb25uZWN0aW9uKCkpCi0KLSAgICAgICAgZGlz
cGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4
Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0
YXJ0KCkKLQotICAgICAgICAjIExldCB0aGUgd29ya2VyIGVjaG8gYmFjayAnSGVsbG8nLiBJdCBj
YXVzZXMgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbgotICAgICAgICAjIHJhaXNpbmcgYW4gZXhjZXB0
aW9uLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nSGVsbG8nKSkKLQot
ICAgICAgICAjIExldCB0aGUgd29ya2VyIGV4aXQuIFRoaXMgd2lsbCBiZSB1bm5lY2Vzc2FyeSB3
aGVuCi0gICAgICAgICMgX0xvZ2ljYWxDb25uZWN0aW9uLndyaXRlKCkgaXMgY2hhbmdlZCB0byB0
aHJvdyBhbiBleGNlcHRpb24gaWYKLSAgICAgICAgIyB3b2tlIHVwIGJ5IG9uX3dyaXRlcl9kb25l
LgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0g
ICAgICAgICMgQWxsIHRocmVhZHMgc2hvdWxkIGJlIGRvbmUuCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgIGRlZiB0
ZXN0X3NlbmRfYmxvY2tlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQotCi0gICAgICAgICMgT24gcmVjZWl2aW5nIHRoaXMgJ0hlbGxvJywgdGhlIHNlcnZlciB0cmll
cyB0byBlY2hvIGJhY2sgJ0hlbGxvJywKLSAgICAgICAgIyBidXQgaXQgd2lsbCBiZSBibG9ja2Vk
IHNpbmNlIHRoZXJlJ3Mgbm8gc2VuZCBxdW90YSBhdmFpbGFibGUgZm9yIHRoZQotICAgICAgICAj
IGNoYW5uZWwgMi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxv
JykpCi0KLSAgICAgICAgIyBXYWl0IHVudGlsIHRoZSB3b3JrZXIgaXMgYmxvY2tlZCBkdWUgdG8g
c2VuZCBxdW90YSBzaG9ydGFnZS4KLSAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMg
Q2xvc2UgdGhlIGNoYW5uZWwgMi4gVGhlIHdvcmtlciBzaG91bGQgYmUgbm90aWZpZWQgb2YgdGhl
IGVuZCBvZgotICAgICAgICAjIHdyaXRlciB0aHJlYWQgYW5kIHN0b3Agd2FpdGluZyBmb3Igc2Vu
ZCBxdW90YSB0byBiZSByZXBsZW5pc2hlZC4KLSAgICAgICAgZHJvcF9jaGFubmVsID0gX2NyZWF0
ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAgICMgTWFrZSBzdXJlIHRo
ZSBjaGFubmVsIDEgaXMgYWxzbyBjbG9zZWQuCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVh
dGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBBbGwgdGhyZWFkcyBz
aG91bGQgYmUgZG9uZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFf
ZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRh
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRp
c3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8nLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2Vu
Y29kaW5nX292ZXJyaWRlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5l
bF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5U
KQotCi0gICAgICAgICMgT3ZlcnJpZGUgU2VjLVdlYlNvY2tldC1Qcm90b2NvbC4KLSAgICAgICAg
ZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAgICAgICdTZWMt
V2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAgICAgICdcclxuJykK
LSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVz
dF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9o
YW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRk
X2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3df
Y29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAg
ICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCd4LWZvbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5u
ZWxfZGVsdGFfYWZ0ZXJfaWRlbnRpdHkoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0gICAgICAgICMgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBpcyBkaWZmZXJlbnQg
ZnJvbSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZQotICAgICAgICAjIG9mIHRoZSBwaHlzaWNh
bCBjb25uZWN0aW9uLgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBSZW1vdmUgVXBncmFkZSwgQ29u
bmVjdGlvbiwgU2VjLVdlYlNvY2tldC1LZXkgYW5kCi0gICAgICAgICMgU2VjLVdlYlNvY2tldC1W
ZXJzaW9uLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9ICgKLSAgICAgICAgICAgICdHRVQg
L2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgJ0hvc3Q6IHNlcnZlci5leGFtcGxlLmNv
bVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJwot
ICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICAgICAgICAgJ09yaWdp
bjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdcclxuJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9s
ID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQot
ICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVs
dGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2Fn
ZT0nV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRp
c3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQot
ICAgICAgICAjIENoYW5uZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNb
MF0pCi0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNz
YWdlc1swXSkKLSAgICAgICAgIyBIYW5kc2hha2UgYmFzZSBzaG91bGQgYmUgdXBkYXRlZC4KLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZvbycsCi0gICAgICAgICAg
ICBtdXhfaGFuZGxlci5faGFuZHNoYWtlX2Jhc2UuX2hlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJv
dG9jb2wnXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX3JlbW92ZV9oZWFkZXIo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAgICMgT3Zl
cnJpZGUgaGFuZHNoYWtlIGRlbHRhIGJhc2UuCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
KAotICAgICAgICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAgICAgICAnSG9z
dDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4n
Ci0gICAgICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICAgICAg
ICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgUmVtb3ZlIFNlYy1XZWJTb2NrZXQtUHJvdG9j
b2wgaGVhZGVyLgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKLSAg
ICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6JwotICAgICAgICAgICAgICAg
ICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTEs
IGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNz
YWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndh
aXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10s
IGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2Vz
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5uZWwgMwotICAgICAgICBt
ZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAneC1mb28nLAotICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
M10ucmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRh
X2VuY29kaW5nX3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAgICAgICMgRW5hYmxlIHBl
cm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5zaW9uIG9uIHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjaGFu
bmVsLgotICAgICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAg
ICAgICAgICAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNT
SU9OX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KAot
ICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9ZXh0ZW5zaW9ucykKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9J
TklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBk
ZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAgICAgYWRkX2NoYW5uZWxf
cmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAg
IGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG8nIG9u
IGxvZ2ljYWwgY2hhbm5lbCAxIGFuZCAyLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZM
QVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNv
bXByZXNzZWRfaGVsbG9bOi00XQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNz
YWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnN2MT1UcnVlKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9Y29tcHJl
c3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUp
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5u
ZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8n
XSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAgICAgICAgIyBXcml0
dGVuICdIZWxsbydzIHNob3VsZCBiZSBjb21wcmVzc2VkLgotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
cHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2Vk
X2hlbGxvLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2Vu
Y29kaW5nX3JlbW92ZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICAjIEVuYWJsZSBwZXJtZXNz
YWdlIGNvbXByZXNzIGV4dGVuc2lvbiBvbiB0aGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5lbC4K
LSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAotICAgICAgICAg
ICAgJyVzOyBtZXRob2Q9ZGVmbGF0ZScgJSBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9F
WFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgKLSAgICAg
ICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lvbnMpCi0gICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBSZW1v
dmUgcGVybWVzc2FnZSBjb21wcmVzcyBleHRlbnNpb24uCi0gICAgICAgIGRlbHRhID0gKCdHRVQg
L2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1FeHRl
bnNpb25zOlxyXG4nCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCBtZXNzYWdl
IG9uIGxvZ2ljYWwgY2hhbm5lbCAyLiBUaGUgbWVzc2FnZSBzaG91bGQKLSAgICAgICAgIyBiZSBy
ZWplY3RlZCAoc2luY2UgcnN2MSBpcyBzZXQpLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5E
RUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAg
ICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
YmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9Q
X0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfTk9STUFM
X0NMT1NVUkUsIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgICMgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbiBzaG91bGQgYmUgcmFpc2VkIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJd
LmV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5zdXBwb3J0
ZWRGcmFtZUV4Y2VwdGlvbikpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9pbnZhbGlkX2Vu
Y29kaW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNo
bycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTMsCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkK
LQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAg
ICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9S
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xv
c2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2luY29tcGxldGVfaGFuZHNoYWtl
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGlu
Y29tcGxldGVfZW5jb2RlZF9oYW5kc2hha2UgPSAnR0VUIC9lY2hvIEhUVFAvMS4xJwotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9aW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgMiBpbiBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
KQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZHVwbGljYXRlX2NoYW5uZWxfaWQoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9O
VU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
LSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3Bf
Y2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9
PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVs
X2ZyYW1lKGNoYW5uZWxfaWQ9MikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBUZXJtaW5hdGUgaW1wbGljaXRseSBvcGVuZWQg
Y2hhbm5lbC4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZXhjZXB0aW9uID0gZGlzcGF0Y2hlci5jaGFubmVsX2V2
ZW50c1syXS5leGNlcHRpb24KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4Y2VwdGlvbi5fX2Ns
YXNzX18gPT0gQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pCi0KLSAgICBkZWYgdGVzdF9y
ZWNlaXZlX3BpbmdfZnJhbWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xMykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcGluZ19mcmFtZSA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2FnZXNb
MF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBt
ZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudGVk
X3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hv
JykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0xMykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgcGluZyB3aXRoIG1lc3NhZ2UgJ0hlbGxvIHdv
cmxkIScgaW4gdHdvIGZyYWdtZW50ZWQgZnJhbWVzLgotICAgICAgICBwaW5nX2ZyYW1lMSA9IF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMSkKLSAgICAgICAg
cGluZ19mcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KHBpbmdfZnJhbWUyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnll
JykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uT1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nX3doaWxlX3JlY2VpdmluZ19mcmFnbWVu
dGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
LSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBmcmFtZSBvZiBt
ZXNzYWdlICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1G
YWxzZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxsbykKLQotICAg
ICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1l
c3NhZ2UsIHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAgcGluZzEg
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLSAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNv
bW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKHBpbmcyKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1l
IG9mIHRoZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1U
cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9u
Lk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMod29ybGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxk
ISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydt
ZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19waW5nX3doaWxlX3JlY2Vpdmlu
Z19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yNSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBm
cmFtZSBvZiBtZXNzYWdlICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbj1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxs
bykKLQotICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUg
b2YgdGhlIG1lc3NhZ2UsIHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50ZWQgcGluZyBhbmQgYSBu
b24tZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9u
Lk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcx
KQotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJ
T04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0gICAgICAg
IHBpbmczID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUG9uZyEnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMykKLQotICAgICAgICAjIFNlbmQgdGhlIGxh
c3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgd29ybGQgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNz
YWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29u
dHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSdd
KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3doaWxlX3JlY2VpdmluZ19mcmFnbWVu
dGVkX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBhIGZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAg
cGluZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLQotICAgICAgICAjIEJlZm9yZSBzZW5kaW5n
IHRoZSBsYXN0IGZyYWdtZW50ZWQgcGluZywgc2VuZCBhIG1lc3NhZ2UuCi0gICAgICAgICMgVGhl
IGxvZ2ljYWwgY2hhbm5lbCAoMikgc2hvdWxkIGJlIGRyb3BwZWQuCi0gICAgICAgIG1lc3NhZ2Ug
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIHdvcmxkIScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMobWVzc2FnZSkKLQotICAgICAgICAjIFNlbmQgdGhlIGxhc3Qg
ZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgcGluZzIgPSBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKHBpbmcyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5l
eHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hh
bm5lbC5jaGFubmVsX2lkKQotICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24g
Y2hhbm5lbCAyLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2Vz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhLZXlFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IDIpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRy
b2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSht
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsn
b3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1b
J21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0g
ICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgUmVwbGVuaXNoIDMg
Ynl0ZXMuIFRoaXMgaXNuJ3QgZW5vdWdoIHRvIHNlbmQgdGhlIHdob2xlIHBpbmcgZnJhbWUKLSAg
ICAgICAgIyBiZWNhdXNlIHRoZSBmcmFtZSB3aWxsIGhhdmUgNSBieXRlcyBtZXNzYWdlKCdQaW5n
IScpLiBUaGUgZnJhbWUKLSAgICAgICAgIyBzaG91bGQgYmUgZnJhZ21lbnRlZC4KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9ja2VkIGR1
ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAg
ICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDIgKyAxIGJ5dGVzIChpbmNsdWRpbmcgZXh0cmEgY29z
dCkuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10p
Ci0KLSAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdt
ZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCi0g
ICAgICAgICAgICBwYXRoPScvcGluZ193aGlsZV9oZWxsb193b3JsZCcpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgQXBwbGljYXRpb24gd2ls
bCBzZW5kOgotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAKLSAg
ICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHRleHQgbWVz
c2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAo
MiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIHBpbmcgd2lsbCBiZQotICAgICAgICAjIGZyYWdtZW50
ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0
ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAg
dGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgNiBieXRl
cy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT05KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBjb250cm9sX21lc3NhZ2Vz
ID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVzc2Fn
ZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRy
b2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRl
ZF90d29fcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9
IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5k
bGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9P
Rl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCi0gICAgICAgICAgICBwYXRoPScvdHdvX3Bpbmdf
d2hpbGVfaGVsbG9fd29ybGQnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKLSAgICAgICAgIyAtIHRl
eHQgbWVzc2FnZSAnSGVsbG8gJyB3aXRoIGZpbj0wCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1Bp
bmchJyBtZXNzYWdlCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1BvbmchJyBtZXNzYWdlCi0gICAg
ICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQotICAgICAgICAjIFJlcGxl
bmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBmaXJzdCBwaW5nIHdpbGwg
YmUKLSAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxlbmlz
aCByZW1haW5pbmcgMyArICg1ICsgMSkgKyA2IGJ5dGVzLiBUaGUgc2Vjb25kIHBpbmcgd29uJ3QK
LSAgICAgICAgIyBiZSBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9MTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxs
byBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bj
b2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdl
c1swXVsnbWVzc2FnZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVf
UElORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSddKQotCi0gICAgZGVm
IHRlc3Rfc2VuZF9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBEcm9wQ2hhbm5l
bCBmb3IgY2hhbm5lbCBpZCAxIHdoaWNoIGRvZXNuJ3QgaGF2ZSByZWFzb24uCi0gICAgICAgIGZy
YW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0K
LSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAg
IGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQUNLTk9XTEVER0VELAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0KLSAgICBkZWYgdGVzdF90d29fZmxv
d19jb250cm9sKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
KQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4
X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90
cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0g
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0g
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAg
ICAgICMgUmVwbGVuaXNoIDUgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBT
ZW5kIDEwIGJ5dGVzLiBUaGUgc2VydmVyIHdpbGwgdHJ5IGVjaG8gYmFjayAxMCBieXRlcy4KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKLQotICAg
ICAgICAjIFJlcGxlbmlzaCA1ICsgMSAocGVyLW1lc3NhZ2UgZXh0cmEgY29zdCkgYnl0ZXMuCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24u
Z2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
V29ybGQnXSwgbWVzc2FnZXMpCi0gICAgICAgIHJlY2VpdmVkX2Zsb3dfY29udHJvbHMgPSBbCi0g
ICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVf
RkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KLSAgICAgICAgIyBSZXBsZW5pc2ht
ZW50IGZvciAnSGVsbG9Xb3JsZCcgKyAxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTEsIHJl
Y2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKLSAgICAgICAgIyBSZXBsZW5pc2ht
ZW50IGZvciAnR29vZGJ5ZScgKyAxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgcmVjZWl2
ZWRfZmxvd19jb250cm9sc1sxXS5zZW5kX3F1b3RhKQotCi0gICAgZGVmIHRlc3Rfbm9fc2VuZF9x
dW90YV9vbl9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAg
ICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMgdG8g
ZWNobyBiYWNrCi0gICAgICAgICMgJ0hlbGxvV29ybGQnLgotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQotCi0gICAgICAgICMg
Tm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IDIpCi0KLSAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcl9mb3JfcGVybWVzc2Fn
ZV9leHRyYV9jb3N0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQot
Ci0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAs
Ci0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdI
ZWxsbycpKQotICAgICAgICAjIFJlcGxlbmlzaCBvbmx5IGxlbignV29ybGQnKSBieXRlcy4KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT01KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLSAgICAgICAgIyBTZXJ2ZXIgc2hvdWxkIG5vdCBjYWxsYmFjayBmb3Ig
dGhpcyBtZXNzYWdlLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nV29y
bGQnKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0
ZW1wdHMgdG8gZWNobyBiYWNrCi0gICAgICAgICMgJ1dvcmxkJy4KLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0xKSkKLQotICAgICAg
ICAjIE9ubHkgb25lIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5lbCAyLgotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCi0KLSAgICBkZWYg
dGVzdF9xdW90YV92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsIDApCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQn
KSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAg
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGlt
ZW91dD0yKSkKLQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwg
bGVuKGNvbnRyb2xfYmxvY2tzKSkKLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAg
ICAgICAgIGIgZm9yIGIgaW4gY29udHJvbF9ibG9ja3MKLSAgICAgICAgICAgIGlmIGIub3Bjb2Rl
ID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2NvbnN1bWVf
cXVvdGFfZW1wdHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgIyBDbGllbnQgaGFzIDEgYnl0
ZSBxdW90YS4KLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklU
SUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAg
ICMgU2VuZCBhbiBlbXB0eSBtZXNzYWdlLiBQeXdlYnNvY2tldCBhbHdheXMgcmVwbGVuaXNoZXMg
MSBieXRlIHF1b3RhCi0gICAgICAgICMgZm9yIGVtcHR5IG1lc3NhZ2UKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9JycpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgICMgVGhpcyBtZXNzYWdlIHZpb2xhdGVz
IHF1b3RhIG9uIGNoYW5uZWwgaWQgMi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBsZW4oZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXNb
MF0pCi0KLSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKLSAgICAgICAgICAgIGIg
Zm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkK
LSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wg
YW5kIGIuY2hhbm5lbF9pZCA9PSAyXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihy
ZWNlaXZlZF9mbG93X2NvbnRyb2xzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCByZWNl
aXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCi0KLSAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJv
cF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9Q
X0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJv
cF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2NvbnN1bWVfcXVvdGFfZnJhZ21l
bnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVudCBoYXMgbGVuKCdIZWxsbycp
ICsgbGVuKCdHb29kYnllJykgKyAyIGJ5dGVzIHF1b3RhLgotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDE0
KQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihw
YXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5n
PTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQot
Ci0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdIZScsIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1l
c3NhZ2U9J2xsbycsIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMg
PSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIG1lc3NhZ2VzKQotCi0gICAgZGVmIHRlc3RfZnJhZ21l
bnRlZF9jb250cm9sX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggdG90YWwgNiBieXRlcyBpbiAzIEZsb3dDb250cm9s
cy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT0xKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1v
bi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9j
aGFubmVsX3Nsb3RfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
SGVsbG8nKSkKLQotICAgICAgICAjIFRoaXMgcmVxdWVzdCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0g
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCi0g
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAg
ICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxl
bmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxv
d19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdIZWxs
bycpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9l
dmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMuaGFzX2tleSgzKSkKLSAgICAgICAgZHJv
cF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2Rl
ID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMywgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X3F1b3Rh
X292ZXJmbG93X2J5X2NsaWVudChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMoc2xvdHM9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQot
ICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLSAgICAgICAgIyBSZXBs
ZW5pc2ggMHg3RkZGRkZGRkZGRkZGRkZGIGJ5dGVzIHR3aWNlLgotICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTB4N0ZGRkZGRkZGRkZGRkZGRikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBi
Lm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1csCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2ludmFs
aWRfZW5jYXBzdWxhdGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9
IChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KQotICAgICAgICBibG9j
ayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFu
bmVsX2lkKDEpICsKLSAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKDApKQotICAg
ICAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5F
TF9JRCkgKyBibG9jawotICAgICAgICB0ZXh0X2ZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZShw
YXlsb2FkLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXModGV4dF9mcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9E
Uk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRl
ZiB0ZXN0X2NoYW5uZWxfaWRfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgVGhlIGxh
c3QgYnl0ZSBvZiB0aGUgY2hhbm5lbCBpZCBpcyBtaXNzaW5nLgotICAgICAgICBmcmFtZSA9IGNy
ZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4ODAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5l
bCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXgu
X01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5f
RFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVELAotICAgICAgICAgICAgICAgICAgICAgICAg
IGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9p
bm5lcl9mcmFtZV90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBKdXN0IGNvbnRhaW4g
Y2hhbm5lbCBpZCAxLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDEn
LCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBi
IGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcygp
Ci0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9G
UkFNRV9JU19UUlVOQ0FURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVs
LmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVS
TkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X3Vua25vd25fbXV4X29w
Y29kZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAg
ICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5k
bGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9o
YW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIFVuZGVmaW5lZCBvcGNvZGUgNQotICAgICAgICBm
cmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceGEwJywgbWFzaz1UcnVlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAg
ICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5v
cGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAg
IGRlZiB0ZXN0X2ludmFsaWRfbXV4X2NvbnRyb2xfYmxvY2soc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAg
IyBEcm9wQ2hhbm5lbCBjb250YWlucyAxIGJ5dGUgcmVhc29uCi0gICAgICAgIGZyYW1lID0gY3Jl
YXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAwXHgwMVx4MDAnLCBtYXNrPVRydWUpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBi
Lm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29k
ZSkKLQotICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBFbmFibGUgcGVybWVzc2FnZSBj
b21wcmVzcyBleHRlbnNpb24gb24gbG9naWNhbCBjaGFubmVsIDIuCi0gICAgICAgIGV4dGVuc2lv
bnMgPSAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlICgKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNT
QUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBf
Y3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM9ZXh0ZW5zaW9ucykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0yMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyB0d2ljZS4KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvMSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzc2VkX2hlbGxvMVs6LTRdCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8xLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8yID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbzIgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8yID0gY29tcHJlc3NlZF9oZWxsbzJbOi00XQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvMiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydIZWxsbycsICdIZWxsbyddLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIu
Y2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgICMgV3JpdHRlbiAnSGVsbG8ncyBz
aG91bGQgYmUgY29tcHJlc3NlZC4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBs
ZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8x
LCBtZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxv
MiwgbWVzc2FnZXNbMV0pCi0KLQotICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfY29tcHJlc3NfZnJh
Z21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNl
X2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlIGNvbW1vbi5Q
RVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9
ZXh0ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG9IZWxsb0hlbGxvJyBhcyBm
cmFnbWVudGVkIG1lc3NhZ2UuCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigK
LSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21w
cmVzcygnSGVsbG9IZWxsb0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzZWRfaGVsbG9bOi00XQotCi0gICAgICAgIG0gPSBsZW4oY29tcHJlc3NlZF9oZWxs
bykgLyAyCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1s6bV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLCByc3YxPVRydWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1ttOl0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmluPVRydWUsIHJzdjE9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG9IZWxsb0hlbGxvJ10sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAg
ICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMo
MSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9iYWRfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1v
Y2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVx
dWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBt
dXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5O
RUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5J
VElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3Jl
cXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBj
aGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1l
bmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhh
ZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggZmluPUZh
bHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUgd2l0aAotICAgICAgICAjIG9wY29kZT1URVhUIChu
b3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDIgc2hvdWxkIGJlIGRyb3BwZWQuCi0g
ICAgICAgIGZyYW1lMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbyAnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTEpCi0gICAgICAgIGZy
YW1lMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMikKLQotICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAot
ICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQgYSBmcmFt
ZSB3aXRoIG9wY29kZT1DT05USU5VQVRJT04gd2l0aG91dCBhIHByZWNlZGluZyBmcmFtZQotICAg
ICAgICAjIHRoZSBmaW4gb2Ygd2hpY2ggaXMgbm90IHNldC4gTG9naWNhbCBjaGFubmVsIDMgc2hv
dWxkIGJlIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lMyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49
VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21t
b24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmcmFtZTMpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
NCwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBvcGNvZGU9UElORyBhbmQg
ZmluPUZhbHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUKLSAgICAgICAgIyB3aXRoIG9wY29kZT1U
RVhUIChub3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDQgc2hvdWxkIGJlCi0gICAg
ICAgICMgZHJvcHBlZC4KLSAgICAgICAgZnJhbWU0ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J1BpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFt
ZTQpCi0gICAgICAgIGZyYW1lNSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdIZWxsbycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RF
WFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWU1KQotCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgICAgIGRyb3BfY2hhbm5lbHMgPSBbCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDMsIGxlbihkcm9wX2NoYW5uZWxzKSkKLSAgICAgICAgZm9yIGQgaW4gZHJv
cF9jaGFubmVsczoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVf
QkFEX0ZSQUdNRU5UQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuZHJvcF9j
b2RlKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigp
Ci0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rf
c3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbS5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODFhY2ZlYjA0OGQzYjIwMzJhNzk0OGNmYTJhZGVhN2NlNjRmOTVhZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3Rfc3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Igc3Ry
ZWFtIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0
aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBzdHJlYW0KLQotCi1jbGFzcyBTdHJlYW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJBIHVuaXR0ZXN0IGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3Rf
Y3JlYXRlX2hlYWRlcihzZWxmKToKLSAgICAgICAgIyBtb3JlLCByc3YxLCAuLi4sIHJzdjQgYXJl
IGFsbCB0cnVlCi0gICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVyKGNvbW1vbi5P
UENPREVfVEVYVCwgMSwgMSwgMSwgMSwgMSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHhmMVx4ODEnLCBoZWFkZXIpCi0KLSAgICAgICAgIyBNYXhpbXVtIHBheWxvYWQgc2l6ZQotICAg
ICAgICBoZWFkZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5P
UENPREVfVEVYVCwgKDEgPDwgNjMpIC0gMSwgMCwgMCwgMCwgMCwgMCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgwMVx4N2ZceDdmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZicsIGhl
YWRlcikKLQotICAgICAgICAjIEludmFsaWQgb3Bjb2RlIDB4MTAKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNy
ZWF0ZV9oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDAsIDAsIDAsIDAs
IDAsIDApCi0KLSAgICAgICAgIyBJbnZhbGlkIHZhbHVlIDB4ZiBwYXNzZWQgdG8gbW9yZSBwYXJh
bWV0ZXIKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbW1vbi5PUENPREVfVEVYVCwgMCwgMHhmLCAwLCAwLCAwLCAwKQotCi0gICAgICAg
ICMgVG9vIGxvbmcgcGF5bG9hZF9sZW5ndGgKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5PUENPREVfVEVYVCwgMSA8PCA2Mywg
MCwgMCwgMCwgMCwgMCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0
ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbV9o
aXhpZTc1LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTlhYzcxMzBiNzMwNGVi
OTJkYmJiYzE1MzNhYTQxNTQ1ZTAyNDZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCi0KLQotaW1w
b3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRv
IGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5z
dHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gdGVzdC50ZXN0X21zZ3V0aWwgaW1wb3J0
IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1Ci0KLQotY2xhc3MgU3RyZWFtSGl4aWU3NVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIFN0cmVhbUhpeGllNzUgY2xh
c3MuIiIiCi0KLSAgICBkZWYgdGVzdF9wYXlsb2FkX2xlbmd0aChzZWxmKToKLSAgICAgICAgZm9y
IGxlbmd0aCwgYnl0ZXMgaW4gKCgwLCAnXHgwMCcpLCAoMHg3ZiwgJ1x4N2YnKSwgKDB4ODAsICdc
eDgxXHgwMCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MTIzNCwgJ1x4ODBc
eGE0XHgzNCcpKToKLSAgICAgICAgICAgIHRlc3Rfc3RyZWFtID0gU3RyZWFtSGl4aWU3NShfY3Jl
YXRlX3JlcXVlc3RfaGl4aWU3NShieXRlcykpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgICAgIGxlbmd0aCwgdGVzdF9zdHJlYW0uX3JlYWRfcGF5bG9hZF9sZW5n
dGhfaGl4aWU3NSgpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRl
c3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF91dGlsLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyMGY0YWIwNTk2NTJjNTg2OWVjMjA1YTEyOGRmOTM5MTRjYThj
NzFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMg
bWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9y
IHV0aWwgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHN5
cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5w
YXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgdXRpbAotCi0KLV9URVNUX0RBVEFfRElSID0gb3MucGF0aC5qb2luKG9zLnBh
dGguc3BsaXQoX19maWxlX18pWzBdLCAndGVzdGRhdGEnKQotCi0KLWNsYXNzIFV0aWxUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciB1dGlsIG1vZHVsZS4iIiIK
LQotICAgIGRlZiB0ZXN0X2dldF9zdGFja190cmFjZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnTm9uZVxuJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgYSA9IDEgLyAwICAjIEludGVudGlvbmFsbHkgcmFpc2UgZXhjZXB0aW9uLgot
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgdHJhY2UgPSB1dGlsLmdldF9z
dGFja190cmFjZSgpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3ModHJhY2Uuc3RhcnRzd2l0
aCgnVHJhY2ViYWNrJykpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3ModHJhY2UuZmluZCgn
WmVyb0RpdmlzaW9uRXJyb3InKSAhPSAtMSkKLQotICAgIGRlZiB0ZXN0X3ByZXBlbmRfbWVzc2Fn
ZV90b19leGNlcHRpb24oc2VsZik6Ci0gICAgICAgIGV4YyA9IEV4Y2VwdGlvbignV29ybGQnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIHN0cihleGMpKQotICAgICAgICB1dGls
LnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oJ0hlbGxvICcsIGV4YykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQnLCBzdHIoZXhjKSkKLQotICAgIGRlZiB0ZXN0X2dl
dF9zY3JpcHRfaW50ZXJwKHNlbGYpOgotICAgICAgICBjeWd3aW5fcGF0aCA9ICdjOlxcY3lnd2lu
XFxiaW4nCi0gICAgICAgIGN5Z3dpbl9wZXJsID0gb3MucGF0aC5qb2luKGN5Z3dpbl9wYXRoLCAn
cGVybCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRpbC5nZXRfc2NyaXB0X2lu
dGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRBX0RJUiwgJ1JFQURNRScp
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJw
KAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJyksIGN5
Z3dpbl9wYXRoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3Vzci9iaW4vcGVybCAtd1Qn
LCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNU
X0RBVEFfRElSLCAnaGVsbG8ucGwnKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3lnd2lu
X3BlcmwgKyAnIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5w
YXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5wbCcpLCBjeWd3aW5fcGF0aCkpCi0KLSAg
ICBkZWYgdGVzdF9oZXhpZnkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzYxIDdh
IDQxIDVhIDMwIDM5IDIwIDA5IDBkIDBhIDAwIGZmJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICB1dGlsLmhleGlmeSgnYXpBWjA5IFx0XHJcblx4MDBceGZmJykpCi0KLQotY2xhc3MgUmVwZWF0
ZWRYb3JNYXNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZv
ciBSZXBlYXRlZFhvck1hc2tlciBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X21hc2soc2VsZik6
Ci0gICAgICAgICMgU2FtcGxlIGlucHV0IGU2LDk3LGE1IGlzIFUrNjVlNSBpbiBVVEYtOAotICAg
ICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceGZmXHhmZlx4ZmZceGZmJykK
LSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MTlceDY4XHg1YScsIHJlc3VsdCkKLQotICAgICAgICBtYXNrZXIg
PSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceDAwXHgwMFx4MDBceDAwJykKLSAgICAgICAgcmVz
dWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ZTZceDk3XHhhNScsIHJlc3VsdCkKLQotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVh
dGVkWG9yTWFza2VyKCdceGU2XHg5N1x4YTVceDIwJykKLSAgICAgICAgcmVzdWx0ID0gbWFza2Vy
Lm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBceDAw
XHgwMCcsIHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21hc2tfdHdpY2Uoc2VsZik6Ci0gICAgICAg
IG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDdmXHhmZlx4MjAnKQotICAg
ICAgICAjIG1hc2tbMF0sIG1hc2tbMV0sIC4uLiB3aWxsIGJlIHVzZWQuCi0gICAgICAgIHJlc3Vs
dCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgwMCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4MDBceDdmXHhmZlx4MjBceDAwJywgcmVzdWx0KQotICAgICAgICAjIG1hc2tb
Ml0sIG1hc2tbMF0sIC4uLiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBuZXh0IGNhbGwuCi0gICAgICAg
IHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgwMCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4N2ZceGZmXHgyMFx4MDBceDdmJywgcmVzdWx0KQotCi0gICAgZGVm
IHRlc3RfbWFza19sYXJnZV9kYXRhKHNlbGYpOgotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVh
dGVkWG9yTWFza2VyKCdtQVNrJykKLSAgICAgICAgb3JpZ2luYWwgPSAnJy5qb2luKFtjaHIoaSAl
IDI1NikgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1h
c2sob3JpZ2luYWwpCi0gICAgICAgIGV4cGVjdGVkID0gJycuam9pbigKLSAgICAgICAgICAgICAg
ICBbY2hyKChpICUgMjU2KSBeIG9yZCgnbUFTaydbaSAlIDRdKSkgZm9yIGkgaW4geHJhbmdlKDEw
MDApXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVzdWx0KQotCi0gICAg
ICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ01hU2snKQotICAgICAgICBmaXJz
dF9wYXJ0ID0gJ1RoZSBXZWJTb2NrZXQgUHJvdG9jb2wgZW5hYmxlcyB0d28td2F5IGNvbW11bmlj
YXRpb24uJwotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhmaXJzdF9wYXJ0KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICdceDE5XHQ2S1x4MWFceDA0MTgi
XHgwMjhceDBlOUFceDAzXHgxOSJceDE1PFx4MDgiXHJzXHgwZSMnCi0gICAgICAgICAgICAgICAg
J1x4MDAxXHgwNyhceDEyc1x4MWY6XHgwZX5ceDFjLFx4MThzXHgwOCJceDBjPlx4MWUjXHgwODBc
bjknCi0gICAgICAgICAgICAgICAgJ1x4MDg8XHgwNWMnLAotICAgICAgICAgICAgICAgIHJlc3Vs
dCkKLSAgICAgICAgc2Vjb25kX3BhcnQgPSAnSXQgaGFzIHR3byBwYXJ0czogYSBoYW5kc2hha2Ug
YW5kIHRoZSBkYXRhIHRyYW5zZmVyLicKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soc2Vj
b25kX3BhcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgIign
SyVceDAwIEs5XHgxNjxLPVx4MDAhXHgxZj5bc1xubVx0Mlx4MDUpXHgxMjtcbiZceDA0c1xuIyIK
LSAgICAgICAgICAgICAgICAiXHgwNXNceDFmJVx4MDRzXHgwZixceDE1Mks5XHgxMzJceDA1Plx4
MDc2XHgxOWMiLAotICAgICAgICAgICAgICAgIHJlc3VsdCkKLQotCi1kZWYgZ2V0X3JhbmRvbV9z
ZWN0aW9uKHNvdXJjZSwgbWluX251bV9jaHVua3MpOgotICAgIGNodW5rcyA9IFtdCi0gICAgYnl0
ZXNfY2h1bmtlZCA9IDAKLQotICAgIHdoaWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4oc291cmNlKToK
LSAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAgICAgICAgICAgMSwKLSAg
ICAgICAgICAgIG1pbihsZW4oc291cmNlKSAvIG1pbl9udW1fY2h1bmtzLCBsZW4oc291cmNlKSAt
IGJ5dGVzX2NodW5rZWQpKQotICAgICAgICBjaHVuayA9IHNvdXJjZVtieXRlc19jaHVua2VkOmJ5
dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotICAgICAgICBjaHVua3MuYXBwZW5kKGNodW5rKQot
ICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKLQotICAgIHJldHVybiBjaHVua3MK
LQotCi1jbGFzcyBJbmZsYXRlckRlZmxhdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAg
IiIiQSB1bml0dGVzdCBmb3IgX0luZmxhdGVyIGFuZCBfRGVmbGF0ZXIgY2xhc3MuIiIiCi0KLSAg
ICBkZWYgdGVzdF9pbmZsYXRlX2RlZmxhdGVfZGVmYXVsdChzZWxmKToKLSAgICAgICAgaW5wdXQg
PSBiJ2hlbGxvJyArICctJyAqIDMwMDAwICsgYidoZWxsbycKLSAgICAgICAgaW5mbGF0ZXIxNSA9
IHV0aWwuX0luZmxhdGVyKDE1KQotICAgICAgICBkZWZsYXRlcjE1ID0gdXRpbC5fRGVmbGF0ZXIo
MTUpCi0gICAgICAgIGluZmxhdGVyOCA9IHV0aWwuX0luZmxhdGVyKDgpCi0gICAgICAgIGRlZmxh
dGVyOCA9IHV0aWwuX0RlZmxhdGVyKDgpCi0KLSAgICAgICAgY29tcHJlc3NlZDE1ID0gZGVmbGF0
ZXIxNS5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotICAgICAgICBjb21wcmVzc2VkOCA9IGRl
ZmxhdGVyOC5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotCi0gICAgICAgIGluZmxhdGVyMTUu
YXBwZW5kKGNvbXByZXNzZWQxNSkKLSAgICAgICAgaW5mbGF0ZXI4LmFwcGVuZChjb21wcmVzc2Vk
OCkKLQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGNvbXByZXNzZWQxNSwgY29tcHJlc3Nl
ZDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGluZmxhdGVyMTUuZGVjb21wcmVz
cygtMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGluZmxhdGVyOC5kZWNvbXBy
ZXNzKC0xKSkKLQotICAgIGRlZiB0ZXN0X3JhbmRvbV9zZWN0aW9uKHNlbGYpOgotICAgICAgICBy
YW5kb20uc2VlZChhPTApCi0gICAgICAgIHNvdXJjZSA9ICcnLmpvaW4oCi0gICAgICAgICAgICBb
Y2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAgKiAxMDI0KV0p
Ci0KLSAgICAgICAgY2h1bmtlZF9pbnB1dCA9IGdldF9yYW5kb21fc2VjdGlvbihzb3VyY2UsIDEw
KQotICAgICAgICBwcmludCAiSW5wdXQgY2h1bmsgc2l6ZXM6ICVyIiAlIFtsZW4oYykgZm9yIGMg
aW4gY2h1bmtlZF9pbnB1dF0KLQotICAgICAgICBkZWZsYXRlciA9IHV0aWwuX0RlZmxhdGVyKDE1
KQotICAgICAgICBjb21wcmVzc2VkID0gW10KLSAgICAgICAgZm9yIGNodW5rIGluIGNodW5rZWRf
aW5wdXQ6Ci0gICAgICAgICAgICBjb21wcmVzc2VkLmFwcGVuZChkZWZsYXRlci5jb21wcmVzcyhj
aHVuaykpCi0gICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzX2FuZF9m
aW5pc2goJycpKQotCi0gICAgICAgIGNodW5rZWRfZXhwZWN0YXRpb24gPSBnZXRfcmFuZG9tX3Nl
Y3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQgKCJFeHBlY3RhdGlvbiBjaHVuayBzaXpl
czogJXIiICUKLSAgICAgICAgICAgICAgIFtsZW4oYykgZm9yIGMgaW4gY2h1bmtlZF9leHBlY3Rh
dGlvbl0pCi0KLSAgICAgICAgaW5mbGF0ZXIgPSB1dGlsLl9JbmZsYXRlcigxNSkKLSAgICAgICAg
aW5mbGF0ZXIuYXBwZW5kKCcnLmpvaW4oY29tcHJlc3NlZCkpCi0gICAgICAgIGZvciBjaHVuayBp
biBjaHVua2VkX2V4cGVjdGF0aW9uOgotICAgICAgICAgICAgZGVjb21wcmVzc2VkID0gaW5mbGF0
ZXIuZGVjb21wcmVzcyhsZW4oY2h1bmspKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
aHVuaywgZGVjb21wcmVzc2VkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGluZmxh
dGVyLmRlY29tcHJlc3MoLTEpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAg
dW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RkYXRhL1JFQURNRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvUkVBRE1F
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDAxYWE1NTk1Y2RkMTM0MDdmNTcyOGVj
ZDUzMmE1ZDEyMjYzZWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotVGVzdCBkYXRhIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM2N2Y5OTMwZjc4MjRjM2E1MzU5MTRhNWIzNzc5ZjZiNmZiYTI0M2YuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oImFib3J0
IGZvciB0ZXN0IikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgot
ICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCJhYm9ydCBmb3IgdGVz
dCIpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvYmxhbmtfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Zjg3YzZh
ZjIzZGYwOGVmZTM1NzVjYWUyMDhkZTUwMjJjYmFhNjYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
Ymxhbmtfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBDb3B5cmlnaHQg
MjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmMxMzlmYTE3NmNjMzQxN2JlOTZkZTc5OGU2YTgxZWQxNDliMTk5Mi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgaWYgcmVxdWVzdC53c19vcmlnaW4gPT0gJ2h0
dHA6Ly9leGFtcGxlLmNvbSc6Ci0gICAgICAgIHJldHVybgotICAgIHJhaXNlIFZhbHVlRXJyb3Io
J1VuYWNjZXB0YWJsZSBvcmlnaW46ICVyJyAlIHJlcXVlc3Qud3Nfb3JpZ2luKQotCi0KLWRlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0Lndz
X3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNm
ZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTgyZDAyMzFlZjAwZjAy
ZTBkOTBkZjY3OGViODA0YmE0Mzg2MmQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2Vw
dGlvbl9pbl90cmFuc2Zlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0j
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJFeGNlcHRpb24gaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhKCkuCi0iIiIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6
Ci0gICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRlbnRpb25hbCBFeGNlcHRpb24gZm9yICVzLCAlcycg
JQotICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19w
cm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2U3YmUxODAyZTNjNjZjNjM4NDk4NzVlYTM1ZTI0MDZh
MzgxZTYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQ29y
cmVjdCBzaWduYXR1cmVzLCB3cm9uZyBmaWxlIG5hbWUuCi0iIiIKLQotCi1kZWYgd2ViX3NvY2tl
dF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29j
a2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRl
KAotICAgICAgICAgICAgJ3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weSBpcyBjYWxsZWQgZm9yICVz
LCAlcycgJQotICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJv
dG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI2MzUyZWI0Y2EyMzg5NTIyMzllMzU0MjcyOGNlM2IzOGQ4M2Rk
NmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0j
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk5vbi1jYWxs
YWJsZSBoYW5kbGVycy4KLSIiIgotCi0KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlID0g
VHJ1ZQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhID0gMQotCi0KLSMgdmk6c3RzPTQgc3c9NCBl
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5f
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjNmZjY5MzAyNTZiYzFiMTNlMmM0YzJk
MWM4NDNjNGI3YzgwYWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVm
IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3Nf
cHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGFkM2YyZTg1OTEwY2I2N2NhMjM2YjE0M2ZkMTBhNWEyNzdlZGVkOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEv
aGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRs
ZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtl
X3NpZ193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiZjY1OWJjOWFmMDFj
MTA3ZWYzNTA4YjJiNWQwMTczZGNmNTkwMDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3Jv
bmdfaGFuZHNoYWtlX3NpZ193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0j
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJXcm9uZyB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZSBzaWduYXR1cmUuCi0iIiIKLQotCi1kZWYgbm9fd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEo
cmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1
Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAg
ICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEv
aGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlMGUyZTU1MDc5NGI3Yjk5MGUwYjQ0YjMzY2ZjMmQ0ZDE1MmU2
YzA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJX
cm9uZyB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKSBzaWduYXR1cmUuCi0iIiIKLQotCi1kZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRl
ZiBub193ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5
IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJj
ZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTQwMjhhZTQ3NzZjZDY3OWRmM2I0MzQ2OGM3MTYzMWExNWFmMGIx
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9h
Ym9ydF9ieV91c2VyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxh
bmtfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tf
d3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWU1MzFmOTEzNDFmODZmYWFlNDgxMGE3YzAyMzRmNjc0MDdiMzJhMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWU3MjQwZGEyODk5MjIzYzZjMjI0OTk3
MzZhY2JkYzYzYWZkNTgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwz
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2VuZHRvZW5kX3dpdGhf
ZXh0ZXJuYWxfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9ydW5fYWxsLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9zZXRfc3lzX3BhdGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZGlzcGF0
Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rl
c3RfZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFu
ZHNoYWtlX2h5YmkwMC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90
ZXN0X21vY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdF9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3V0aWwucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMzJhNmI2YmJiZjg2Y2U4OGNl
NjlhYmMzZGU1YTUzNDAwMTZjNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9DT1BZSU5HCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvTUFOSUZFU1Qu
aW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVz
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0
L2NhY2VydC5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jYWNlcnQucGVtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZGFkYWUxMjFiZGQzYWRiNzQ0MzgzY2QzYmYwOGMyMjZmODU1NGJhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9j
ZXJ0L2NhY2VydC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lO
IENFUlRJRklDQVRFLS0tLS0KLU1JSUN2RENDQWlXZ0F3SUJBZ0lKQUtxVmdoa0dGMXJTTUEwR0NT
cUdTSWIzRFFFQkJRVUFNRWt4Q3pBSkJnTlYKLUJBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDVi
ekVVTUJJR0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReEZEQVMKLUJnTlZCQU1UQzNCNWQyVmljMjlq
YTJWME1CNFhEVEV5TURZd05qQTNNalF6TTFvWERUTTVNVEF5TXpBM01qUXoKLU0xb3dTVEVMTUFr
R0ExVUVCaE1DU2xBeERqQU1CZ05WQkFnVEJWUnZhM2x2TVJRd0VnWURWUVFLRXd0d2VYZGwKLVlu
TnZZMnRsZERFVU1CSUdBMVVFQXhNTGNIbDNaV0p6YjJOclpYUXdnWjh3RFFZSktvWklodmNOQVFF
QkJRQUQKLWdZMEFNSUdKQW9HQkFLb1NFVzJiaVF4VnJNTUtkbi84UEp6RFlpU1hEUFI5V1FiTFJS
UTFHbTVqa0NZaWFoWFcKLXUyQ2JUVGhmUFBmaTJOSEEzSStIbFQ3Z085eVI3UlZVdk42SVNVekd3
WERFcTRmNFVOcXRRT2hRYXFxSytDWjkKLUxPL0JoTy9ZWWZOcmJTUGxZekhVS2FUOWVzZTd4TzlW
elZLTFcrcVVmMk1qaDQvK1N6eEJETlA3QWdNQkFBR2oKLWdhc3dnYWd3SFFZRFZSME9CQllFRk9z
V2R4Q1N1eWh3YVplYWI2Qm9UaG8zKytiek1Ia0dBMVVkSXdSeU1IQ0EKLUZPc1dkeENTdXlod2Fa
ZWFiNkJvVGhvMysrYnpvVTJrU3pCSk1Rc3dDUVlEVlFRR0V3SktVREVPTUF3R0ExVUUKLUNCTUZW
RzlyZVc4eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3ZVhkbFlu
TnYKLVkydGxkSUlKQUtxVmdoa0dGMXJTTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05B
UUVGQlFBRGdZRUEKLWdzTUkxV0VZcU53L2poVUlkclRCY0N4SjBYNmhKdkE5emlLQU5WbTFScys0
UDNZREFya1E4YkNyNnhZK0t3N3MKLVpwMHlFN2RNOEdNZGkrRFU2aEwzdDNFNWVNa1RTMXlacjlX
Q0s0ZjJSTG8rZXQ5OHNlbFp5ZHBIZW1GM0RKSjMKLWdBajhTeDRMQmFHOENiL1duRU1QdjNNeEcz
ZkJFNWZhdkY2VjRqVTA3aFE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvY2VydC9jZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTM3OWE3MmIwZGFjNWY0MTk3OWM4MDJjNjYzZGY4
Yjg4ZGVhODI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAot
Q2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAg
ICBTZXJpYWwgTnVtYmVyOiAxICgweDEpCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNo
YTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9SlAsIFNUPVRva3lvLCBPPXB5
d2Vic29ja2V0LCBDTj1weXdlYnNvY2tldAotICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAg
Tm90IEJlZm9yZTogSnVuICA2IDA3OjI1OjA4IDIwMTIgR01UCi0gICAgICAgICAgICBOb3QgQWZ0
ZXIgOiBPY3QgMjMgMDc6MjU6MDggMjAzOSBHTVQKLSAgICAgICAgU3ViamVjdDogQz1KUCwgU1Q9
VG9reW8sIE89cHl3ZWJzb2NrZXQsIENOPXB5d2Vic29ja2V0Ci0gICAgICAgIFN1YmplY3QgUHVi
bGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5
cHRpb24KLSAgICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMTAyNCBiaXQpCi0gICAgICAgICAg
ICAgICAgTW9kdWx1cyAoMTAyNCBiaXQpOgotICAgICAgICAgICAgICAgICAgICAwMDpkZToxMDpj
ZTozYTo1YTowNDphNDoxYzoyOTo5Mzo1YzoyMzo4MjoxYToKLSAgICAgICAgICAgICAgICAgICAg
ZjI6MDY6MDE6ZTY6MmI6YTQ6MGY6ZGQ6Nzc6NDk6NzY6ODk6MDM6YTI6MjE6Ci0gICAgICAgICAg
ICAgICAgICAgIGRlOjA0Ojc1OmM2OmUyOmRkOmZiOjM1OjI3OjNhOmEyOjkyOjhlOjEyOjYyOgot
ICAgICAgICAgICAgICAgICAgICAyYjozZToxZjpmNDo3ODpkZjpiNjo5NDpjYjoyNzpkNjpjYjpk
NjozNzpkNzoKLSAgICAgICAgICAgICAgICAgICAgNWM6MDg6ZjA6MDk6M2U6Yzk6Y2U6MjQ6MmQ6
MDA6Yzk6ZGY6NGE6ZTA6OTk6Ci0gICAgICAgICAgICAgICAgICAgIGU1OmZiOjIzOmE5OmUyOmQ2
OmM5OjNkOjk2OmZhOjAxOjg4OmRlOjVhOjg5OgotICAgICAgICAgICAgICAgICAgICBiMDpjZjow
Mzo2Nzo2ZjowNDo4NjoxZDplZjo2MjoxYzo1NTphOTowNzo5YToKLSAgICAgICAgICAgICAgICAg
ICAgMmU6NjY6MmE6NzM6NWI6NGM6NjI6MDM6Zjk6ODI6ODM6ZGI6Njg6YmY6Yjg6Ci0gICAgICAg
ICAgICAgICAgICAgIDRiOjBiOjhiOjkzOjExOmI4OjU0OjczOjdiCi0gICAgICAgICAgICAgICAg
RXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAg
ICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCi0gICAgICAgICAgICAgICAgQ0E6
RkFMU0UKLSAgICAgICAgICAgIE5ldHNjYXBlIENlcnQgVHlwZTogCi0gICAgICAgICAgICAgICAg
U1NMIFNlcnZlcgotICAgICAgICAgICAgTmV0c2NhcGUgQ29tbWVudDogCi0gICAgICAgICAgICAg
ICAgT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUKLSAgICAgICAgICAgIFg1MDl2MyBTdWJq
ZWN0IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICA4MjpBMTo3Mzo4QjoxNjowQzo3
QzpFNDpEMzo0Njo5NToxMzo5NToxQTozMjpDMTo4NDpFOTowNjowMAotICAgICAgICAgICAgWDUw
OXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAgICAgICAga2V5aWQ6RUI6
MTY6Nzc6MTA6OTI6QkI6Mjg6NzA6Njk6OTc6OUE6NkY6QTA6Njg6NEU6MUE6Mzc6RkI6RTY6RjMK
LQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAg
ICA2YjpiMzo0NjoyOTowMjpkZjpiMDpjODo4ZTpjNDpkNzo3ZjphMDoxZTowZDoxYTplYjoyZjoK
LSAgICAgICAgZGY6ZDE6NDg6NTc6MzY6NWY6OTU6OGM6MWI6ZjA6NTE6ZDY6NTI6ZTc6OGQ6ODQ6
M2I6OWY6Ci0gICAgICAgIGQ4OmVkOjIyOjljOmFhOmJkOmVlOjliOjkwOjFkOjg0OmEzOjRjOjBi
OmNiOmViOjY0OjczOgotICAgICAgICBiYTpmNzoxNTpjZTpkYTo1ZjpkYjo4YjoxNTowNzphNjoy
ODo3ZjpiOTo4YzoxMTo5Yjo2NDoKLSAgICAgICAgZDM6ZjE6YmU6NTI6NGY6YzM6ZDg6NTg6ZmU6
ZGU6NTY6NjM6NjM6M2I6NTE6ZWQ6YTc6ODE6Ci0gICAgICAgIGY5OjA1OjUxOjcwOjYzOjMyOjA5
OjBlOjk0OjdlOjA1OmZlOmExOjU2OjE4OjM0Ojk4OmQ1OgotICAgICAgICA5OToxZTo0ZToyNzoz
ODo4OTo5MDo2YTplNTpjZTo2MDozNTowMTpmNTpkZTozNDo2MDpiMToKLSAgICAgICAgY2I6YWUK
LS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ21EQ0NBZ0dnQXdJQkFnSUJBVEFOQmdr
cWhraUc5dzBCQVFVRkFEQkpNUXN3Q1FZRFZRUUdFd0pLVURFTwotTUF3R0ExVUVDQk1GVkc5cmVX
OHhGREFTQmdOVkJBb1RDM0I1ZDJWaWMyOWphMlYwTVJRd0VnWURWUVFERXd0dwotZVhkbFluTnZZ
MnRsZERBZUZ3MHhNakEyTURZd056STFNRGhhRncwek9URXdNak13TnpJMU1EaGFNRWt4Q3pBSgot
QmdOVkJBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVVTUJJR0ExVUVDaE1MY0hsM1pXSnpi
Mk5yWlhReAotRkRBU0JnTlZCQU1UQzNCNWQyVmljMjlqYTJWME1JR2ZNQTBHQ1NxR1NJYjNEUUVC
QVFVQUE0R05BRENCaVFLQgotZ1FEZUVNNDZXZ1NrSENtVFhDT0NHdklHQWVZcnBBL2RkMGwyaVFP
aUlkNEVkY2JpM2ZzMUp6cWlrbzRTWWlzKwotSC9SNDM3YVV5eWZXeTlZMzExd0k4QWsreWM0a0xR
REozMHJnbWVYN0k2bmkxc2s5bHZvQmlONWFpYkRQQTJkdgotQklZZDcySWNWYWtIbWk1bUtuTmJU
R0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQm80R1BNSUdNTUFrRwotQTFVZEV3UUNNQUF3
RVFZSllJWklBWWI0UWdFQkJBUURBZ1pBTUN3R0NXQ0dTQUdHK0VJQkRRUWZGaDFQY0dWdQotVTFO
TUlFZGxibVZ5WVhSbFpDQkRaWEowYVdacFkyRjBaVEFkQmdOVkhRNEVGZ1FVZ3FGeml4WU1mT1RU
UnBVVAotbFJveXdZVHBCZ0F3SHdZRFZSMGpCQmd3Rm9BVTZ4WjNFSks3S0hCcGw1cHZvR2hPR2pm
NzV2TXdEUVlKS29aSQotaHZjTkFRRUZCUUFEZ1lFQWE3TkdLUUxmc01pT3hOZC9vQjROR3VzdjM5
RklWelpmbFl3YjhGSFdVdWVOaER1ZgotMk8waW5LcTk3cHVRSFlTalRBdkw2MlJ6dXZjVnp0cGYy
NHNWQjZZb2Y3bU1FWnRrMC9HK1VrL0QyRmorM2xaagotWXp0UjdhZUIrUVZSY0dNeUNRNlVmZ1gr
b1ZZWU5KalZtUjVPSnppSmtHcmx6bUExQWZYZU5HQ3h5NjQ9Ci0tLS0tLUVORCBDRVJUSUZJQ0FU
RS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jbGllbnRfY2VydC5wMTIgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvY2VydC9jbGllbnRfY2VydC5wMTIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE0ZTEzOTkyNzk4MmZhOTgyM2E1NzIzMWFmMTEzNDk5ZDZhNWE4YjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgMjU4Mgp6Y21ZK0ZYSCpqaTdLTWAjMHRCZzJxekZpdFAhZjxQSEEt
Kk5Mb0BWX2djZjB0OFdCKCNJP3slWVJGeCp1YCUpeUoKejFuRyFLMzVicWhYclg3QWI5USVqZjg2
dWx4JVp2LT4lSF5BYVpwd2VrUDQyWW59ZzZ2I091WUE4R3RtdlZqU0lqCnpGcGg1VSgoWiVmQVN3
U3VrWVhHcD1GKkEpMFJmaTxgJWVPZF5GcEJpLWYjczdmaXI/PjJjVyRUIzsyKkdBUF9BZQp6MV8j
bHJuMkUoZUtPTUo2TjI2WUpuZV9AaHB9U0tQWFVCN0ZNZXJffjV8MXFnQ3tUcW5uQnV2MSRrcHA1
T0J6JUAKejxteVN3Kz9ZPl5qQVo0I1hBLX0qIVFzYnVPaFcoc084MzY2KCQ7KDFBPm1vKE8tJXgo
aG4oPXlaO3l+TkcjUVgxCnpnSGtTaV5eOGN2NFRUU0w5dm41cVIoPl9EM2Ymb2MqandQZ0kjS0BR
I0FzTClEO0JEJldiMmQrSTFeSjduPn1ZWgp6YkNYbzlmT0BnIUBkV1lhMlYlfTspIXs8ekRjfChw
dkpJYXhXN05kTyVPNmY+ciZhT3JwSGt7b19SOW1RNDd1b2IKej9sPjl8bnxYM2BhZ3BeRztMd1hS
NTwobHIrUjxjTDVqVFEoP15EPGtSbyFIX1QjcD95M2R9XnRDWVYhOFJeTj99CnpDKiVYbTlMZWY+
ajdobHItP2pIbHB8d2ZBJl5uLXM7PCF6JHFEMXhQcSE4S1ExfX5kdXB3fkJNMWdzfkBBbztDcQp6
d1JnVXwyXmR9Ti1nVjtAYVlrdThJJX18PGw2UU0/PWR+RllwYkdGSDkmdk5nS1oqU3ljSVN8bWN1
T1I/bCZDT3cKenN7emQ1em1lbHhxTjFEUXl7fVBnQj11I2Z6SU5Qa0Iwb04qY2szdmArMXshWVhQ
fntFVkk3VnFoKn51YVdfflVDCnpsUjMzUlowNUhoa0MtMWVJcCktQFleeXZjLXxSJSEqOWR3N25m
Vyl5amNISVlmNnI9YUN0KFVoaS1GSm0ybntfKQp6JXt1bEJVWFJgMjw+bHh9ZUdtU21SSj41b3Rr
QCgrcGpzUHE7NGhaNkZJS2wje254UCFBTCEyOF9fQVlmbGBWZ3sKemxSUmFBUnxWbXkxX2BeYmJq
WnJ6QXtRJGxZZWpJWWReQSRaPlcmanluTT1LYFRsNHdWKTN3QGQxSmNgLTUtQ0dKCnp4cV5AOF8o
ITxaRjJxbGhfWn19bnI/UyY1KnorRkApdihaMUVJcztIbX0hMX5NVEwhajFAYyRaSExSfVYoPTte
bwp6ZFVwZnk/bz55em9sX3NpPDxVRUI9dChlZUJ6Z0peV1l3c0hDRzkzNHMkZClAcXFId2deeVpN
e2BeakohOTt0cjYKemVvVWF5JiQrQnlHfE5eX3pvQUhedFlJZz5oYVl3fEB8YzMxXncoblVkN2so
WW1FSjc2Vlk3OSsoQyhfJDsxTXNVCnpoaU5pK0I1Z1NyRGp8OT48QD82UiY4emJtOGJyP0MtTm4x
Y2soKzxOSyU3KTZ2LXdXcTQ9TV9UYnQxOTR6VSp5Rgp6aDxvdDxIQldub3hCJTFrOShNMG88Tmcp
UmdIUygjP2VkRVFCIV58RmstXyhhYGJVQkxBSypofmF6fiFfeHU9VDQKejZHNUstYVhKb3RIUWxF
QzhDVTV8UnlNUnVRa1hFKT9edjYoaT1NdSk9JF5vJTAheXM1R1ZSYVhaMlMySDRJODNMCnpxKWJg
fFB4eyg4OVczMnpxNHNxekgrQkFLUDl1YURFcEQ4SUlBOUQtSDQ1QyVWVD9KSiNNYStCQGk5TVBk
Ri0jIwp6TnhGNVR1fWl6X2h6JFNLWjBfXyYhWXAxeWFkVnpvY0BFeStCZWZKQ3RDU1ZkNShKeSg8
QzZJY0NXfURtSHdDOFQKelJ7a3F2UkA/M3J6TEcyJFpkY3gtNXZGUkBkJFEjREQrfntkaEBtZF9l
YEJCNipVWTZSKzReI1UlejRsdHg5QiU7CnpOVjh6KntHY0dNO2dxMlJ0eWRqe0gwUzBwI3o8NiU3
bTMhJXs/TVF1YTxgQGU1Yk90YmQhRWM/R151eGY0Z3hjSQp6LUY3U1RZaX52RGJtdkNaM05EY2ZI
ajg+QzlGVjZqZDF9KHBTd3JnR2sqUVo5UnI0KTYhc1NrVFVxYnhiYWVhMnUKendTYCR5b3NRKWVi
JW9fdkpPKiFBYGRSO1k0az4mcVl6dWEtWk5FPDNGRT1JK2VTVTt4IXB0XkEzNT5vSW9QYEpxCnpa
bH4pckM2MEwra1N4QWdvUEV8ckdqVkA/MkF5KlhiPSRjYGNfTDM9RXpoakJVRD1oMV80JWVCQ2Zs
aiZFSFptTwp6c3sxYnxOdXg2KztLI0tCPVRrX3xpa3x7KjAxZGskOUthNmBjUlU9TWNZaU4hay1h
KTJQRDMxaDxjVHMla1Bob1oKek8pMndfVDktOHcyTk0mJnEycGw0XktxfUNQZT1sOWhxJFc0IXQ7
SkQlfFVKKDI4dkRiTSpMPlZGN2JXX1h7YjE0CnpHTncodz5FX1M5YDw7eFFsUGBAc2Q+Nm0zbjIp
TCkwcCFYUnJEIzI1aUlrUkRzKTF1ak4lU3N5dyM2MnZkdiZBbAp6Y2RqLVlsIzYrQGEwV3NjVTwz
YGd2VyQydy0oXkhmRVJ5eHNOc3E2bUswZDg7PzBMU2VOaCVORWUwQllKNElMKGEKeiRXWG5kKVBC
VzxBVGt7eSUyUzlHUGEycXlKVyReSkpfY29fWFAxbTlFfWopUT9ebCQjKk1EeFA1fG1ZMXpjcTN5
CnpiPUB6eUNYdWd3ZHtOang/aTI3ait6WE80KlY+fVplLXpCUXgpSHlud0xgTmooITl0KTU0ZE87
elRWfi1PIztVOwp6TXdwMFBVLXVVTD8jIzhMLSkmdm1ibkFtbiNAJmE+dj1jUH1FVVFKVndhRHc5
VjwtSXdZdGlUOXcoVE1lYTIlRHkKenxBNDAkTjV1b2lRRV5fe1MxLWlgcTVsdHRwZz5TRDRwYWZo
ZmxCfDZQRT4hPnNoV2tvRW1aaGcrfjBIcDwzS1RACno5amskcU1DPTAmQmJrXmZSbzRmMzhKfmlX
Q3x4R1AwYHdaM0YjazhnKklkTlkkR0YtQXg4XjxEckJeajI4WGI2cwp6Unw7VnZhciU8fFRaS34+
MzBrRDMpVyRBRCModHRgI0B4N1E4T1lhcFRfSnlNMXZUP2xieC0rX0YoSkYleVMwTyQKenBTI2x9
dyowaj5ifU0zZTs0ST57cE1NPnMlYD9mU0FFX1FiYEFuPl9WIWtpfSQ5d01OOShmVTF1SkdtME1p
N2hLCnpBNWwwZTF3VmNeJHFsPzVnbT44RXZCcFNhV2Y1VElnM1pTYnVKaHA7YSUoWitrY3tjZHYx
UHVYJGUyR0FOP0pmOAp6V0tOZ1M8KE0yRk5VYFJ4ZEJHfWY9UzFyblEqZVIxMnFGX0MmJnBuQGB5
JUN+TDleUV9aOWxoJkc9WHZHQyE0MTAKenluKTVvPSl4MmlKWSteP15FTGpudEhIYH1LKXphP0k9
fHYhJGhMMG4mR3p5cHphTHdOZGVNPU9qV3wtLT1tUl9qCnp5dD9+VnhfXzlCRXZjaEw/OWh1VW9i
LTVuK3IxPzx4QGNnfTVhfFZ8RmNGUU8qZUlwd1pFbn5WR0xlcXZTQFdrMgp6KSErRDMtO3s0QE9P
KWIrYlFPIz0tRStCZU9AZiEzPGlUMG1iMnBiMzg4e0dJUmFyamRuVGklQD80cXd5I3E2MFkKenFp
QXx7dDZvNDlFTTE4SiZ3OERBI3dRRERzRndOJEhHKk1UTDIxQlFqKVlSYFc1TDtaZk1NPCpyTD1G
SWd8MGJKCnpUOXI3RmxCTExeclYlMVVPITN8R0RFYU0hakhQTHI/NVFCdUNDIVcpPmRyZl5SQ2Bg
N1lSWVooSz5pZTA+cEpkXgp6SldfSHslKV5jITY+bHw5UDg/Yz1qKEI1N1lKejg/WHlRekU5dUdh
fWRWMFBUcDMhO3AhU0YpfXQtaT5DPEVkSCsKek1LQVNuViMhJlNXZmR9MGRsalhzeVFmenNANmkw
K2RxU0hKTH5GN35vdHwkSHdmK0YqMGpDSyp3NVdvRkBROWhOCnpobGslU3toNkM1N0NJMl81Ujk7
ZjM7cC0xPkRVbipVXmVvR2pocW87KlIqJGtWRTAxSj5USlFSc3Y5b3omayEzegp6a1dUOyowUWUw
TTNVQ0x3MEQ9SitmR2ZjRnZKVXxgVWRzS18zNHRUdkh7ZiYtWThXRkdoP15QIVg1O3k9Rlp1RHMK
ZmZyV2swJU0oT0duVE1OPGgmcUB5TGREVV8mTWNBZj98MWtNZWpVTm8KCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvY2VydC9rZXkucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBlbQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmFlODU4MzE4ZjI5YmE2YjQ2MjNiZDVmYmM0YTA4Y2U3M2Q5
MDMxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvY2VydC9rZXkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLS0tLS1C
RUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQ1hnSUJBQUtCZ1FEZUVNNDZXZ1NrSENtVFhD
T0NHdklHQWVZcnBBL2RkMGwyaVFPaUlkNEVkY2JpM2ZzMQotSnpxaWtvNFNZaXMrSC9SNDM3YVV5
eWZXeTlZMzExd0k4QWsreWM0a0xRREozMHJnbWVYN0k2bmkxc2s5bHZvQgotaU41YWliRFBBMmR2
QklZZDcySWNWYWtIbWk1bUtuTmJUR0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQgotQW9H
QkFJdUN1VjFWY25iN3JtOEN3dGdaUDVYZ21ZOHZTanhUbGRhZmE2WHZhd0VZVVRQMFM3N3YvMWxs
ZzFZdgotVUlWK0krUFFnRzlvVm9ZT2wyMkxvaW1IUy9aM2UxZnNvdDV0RFlzekdlOC9Ha3N0NG9h
UmVTb3h2QlVhNldYcAotUVNvN1lGQ2FqdUh0RStXL2d6RitVSGJkenpYSURqUVozMTRMTkY1dCs0
VW5zRVBCQWtFQStnaXJJbXFXb00ydAotM1VSOGY4b2VrRVJ3c21FTWY5REg1WXBINGN2VW52SStr
d2VzQy9yMlU4U2hvKytmeUVNVU5tN2FJWEdxTkxnYQotb2dBTSs0Tlg0UUpCQU9OZFN4U2F5MjJl
Z1RHTm9JaExuZGxqV2t1T3QvOUZXajJrbGYvNFF4RDRibE1KUTVPcQotUWRPR0FoN25WUWpwUExR
NUQ3Q0JWQUtwR00yQ0QrUUpCdHNDUUVQMmt6MzVweFB5bEczdXJjQzJtZlF4QmtrVwotWkNWaUJO
UDU4R3dKMGJPYXVUT1NCRXdGWFd1THFUdzhhRHd4TDQ5VU5tcWMwTjBmcGUyZkFlaGozVUVDUVFD
bQotRkgvRGpVOEx3N3liZGRqTnRtNlhYUHVZTmFneHozY2JrQjRCM0ZjaERsZUlVRHdNb1ZGME1X
OWJJNS81NG1WMQotUURrMXRVS29ydHh2UVpKYUFENEJBa0VBaEdPSFFxUGQ2YkJCb0ZCdnBhTHpQ
Sk14d0xLckIrV3RrcS9RbEM3MgotQ2xSaU1uMmc4U0FMaUlMM0JEZ0dYS2NLRS9XeTdqby9hZi9K
Q3pRL2NQcXQvQT09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgxMjQxNmI4NmI1ZTU4ZmRmNTJl
MWU1OTZjNzFkYmViMWI0NDUxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NhY2VydC5wZW0KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvY2VydC9jZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC9jZXJ0L2tleS5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rl
c3RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxOGQxODU3MTJlZWE0MDhhMjNkMjRmYmNjZTFhYWY0OTNhNWFhN2Uz
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAwICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4K
LSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0j
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29j
a2V0IGNsaWVudCB1dGlsaXR5IGZvciB0ZXN0aW5nLgotCi1UaGlzIG1vZHVsZSBjb250YWlucyBo
ZWxwZXIgbWV0aG9kcyBmb3IgcGVyZm9ybWluZyBoYW5kc2hha2UsIGZyYW1lCi1zZW5kaW5nL3Jl
Y2VpdmluZyBhcyBhIFdlYlNvY2tldCBjbGllbnQuCi0KLVRoaXMgaXMgY29kZSBmb3IgdGVzdGlu
ZyBtb2RfcHl3ZWJzb2NrZXQuIEtlZXAgdGhpcyBjb2RlIGluZGVwZW5kZW50IGZyb20KLW1vZF9w
eXdlYnNvY2tldC4gRG9uJ3QgaW1wb3J0IGUuZy4gU3RyZWFtIGNsYXNzIGZvciBnZW5lcmF0aW5n
IGZyYW1lIGZvcgotdGVzdGluZy4gVXNpbmcgdXRpbC5oZXhpZnksIGV0Yy4gdGhhdCBhcmUgbm90
IHJlbGF0ZWQgdG8gcHJvdG9jb2wgcHJvY2Vzc2luZwotaXMgYWxsb3dlZC4KLQotTm90ZToKLVRo
aXMgY29kZSBpcyBmYXIgZnJvbSByb2J1c3QsIGUuZy4sIHdlIGN1dCBjb3JuZXJzIGluIGhhbmRz
aGFrZS4KLSIiIgotCi0KLWltcG9ydCBiYXNlNjQKLWltcG9ydCBlcnJubwotaW1wb3J0IGxvZ2dp
bmcKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHJlCi1pbXBvcnQgc29ja2V0Ci1p
bXBvcnQgc3RydWN0Ci1pbXBvcnQgdGltZQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
Y29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLURFRkFVTFRfUE9S
VCA9IDgwCi1ERUZBVUxUX1NFQ1VSRV9QT1JUID0gNDQzCi0KLSMgT3Bjb2RlcyBpbnRyb2R1Y2Vk
IGluIElFVEYgSHlCaSAwMSBmb3IgdGhlIG5ldyBmcmFtaW5nIGZvcm1hdAotT1BDT0RFX0NPTlRJ
TlVBVElPTiA9IDB4MAotT1BDT0RFX0NMT1NFID0gMHg4Ci1PUENPREVfUElORyA9IDB4OQotT1BD
T0RFX1BPTkcgPSAweGEKLU9QQ09ERV9URVhUID0gMHgxCi1PUENPREVfQklOQVJZID0gMHgyCi0K
LSMgU3RyaW5ncyB1c2VkIGZvciBoYW5kc2hha2UKLV9VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRl
OiB3ZWJzb2NrZXRcclxuJwotX1VQR1JBREVfSEVBREVSX0hJWElFNzUgPSAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKLV9DT05ORUNUSU9OX0hFQURFUiA9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKLQotV0VCU09DS0VUX0FDQ0VQVF9VVUlEID0gJzI1OEVBRkE1LUU5MTQtNDdEQS05NUNBLUM1
QUIwREM4NUIxMScKLQotIyBTdGF0dXMgY29kZXMKLVNUQVRVU19OT1JNQUxfQ0xPU1VSRSA9IDEw
MDAKLVNUQVRVU19HT0lOR19BV0FZID0gMTAwMQotU1RBVFVTX1BST1RPQ09MX0VSUk9SID0gMTAw
MgotU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEgPSAxMDAzCi1TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJ
VkVEID0gMTAwNQotU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgPSAxMDA2Ci1TVEFUVVNfSU5WQUxJ
RF9GUkFNRV9QQVlMT0FEX0RBVEEgPSAxMDA3Ci1TVEFUVVNfUE9MSUNZX1ZJT0xBVElPTiA9IDEw
MDgKLVNUQVRVU19NRVNTQUdFX1RPT19CSUcgPSAxMDA5Ci1TVEFUVVNfTUFOREFUT1JZX0VYVCA9
IDEwMTAKLVNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiA9IDEwMTEKLVNUQVRVU19UTFNf
SEFORFNIQUtFID0gMTAxNQotCi0jIEV4dGVuc2lvbiB0b2tlbnMKLV9ERUZMQVRFX0ZSQU1FX0VY
VEVOU0lPTiA9ICdkZWZsYXRlLWZyYW1lJwotIyBUT0RPKGJhc2hpKTogVXBkYXRlIGFmdGVyIG11
eCBpbXBsZW1lbnRhdGlvbiBmaW5pc2hlZC4KLV9NVVhfRVhURU5TSU9OID0gJ211eF9ET19OT1Rf
VVNFJwotX1BFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gPSAncGVybWVzc2FnZS1kZWZsYXRl
JwotCi1kZWYgX21ldGhvZF9saW5lKHJlc291cmNlKToKLSAgICByZXR1cm4gJ0dFVCAlcyBIVFRQ
LzEuMVxyXG4nICUgcmVzb3VyY2UKLQotCi1kZWYgX3NlY19vcmlnaW5faGVhZGVyKG9yaWdpbik6
Ci0gICAgcmV0dXJuICdTZWMtV2ViU29ja2V0LU9yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dl
cigpCi0KLQotZGVmIF9vcmlnaW5faGVhZGVyKG9yaWdpbik6Ci0gICAgIyA0LjEgMTMuIGNvbmNh
dGVuYXRpb24gb2YgdGhlIHN0cmluZyAiT3JpZ2luOiIsIGEgVSswMDIwIFNQQUNFIGNoYXJhY3Rl
ciwKLSAgICAjIGFuZCB0aGUgL29yaWdpbi8gdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dl
cmNhc2UsIHRvIC9maWVsZHMvLgotICAgIHJldHVybiAnT3JpZ2luOiAlc1xyXG4nICUgb3JpZ2lu
Lmxvd2VyKCkKLQotCi1kZWYgX2Zvcm1hdF9ob3N0X2hlYWRlcihob3N0LCBwb3J0LCBzZWN1cmUp
OgotICAgICMgNC4xIDkuIExldCAvaG9zdHBvcnQvIGJlIGFuIGVtcHR5IHN0cmluZy4KLSAgICAj
IDQuMSAxMC4gQXBwZW5kIHRoZSAvaG9zdC8gdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dl
cmNhc2UsIHRvCi0gICAgIyAvaG9zdHBvcnQvCi0gICAgaG9zdHBvcnQgPSBob3N0Lmxvd2VyKCkK
LSAgICAjIDQuMSAxMS4gSWYgL3NlY3VyZS8gaXMgZmFsc2UsIGFuZCAvcG9ydC8gaXMgbm90IDgw
LCBvciBpZiAvc2VjdXJlLwotICAgICMgaXMgdHJ1ZSwgYW5kIC9wb3J0LyBpcyBub3QgNDQzLCB0
aGVuIGFwcGVuZCBhIFUrMDAzQSBDT0xPTiBjaGFyYWN0ZXIKLSAgICAjICg6KSBmb2xsb3dlZCBi
eSB0aGUgdmFsdWUgb2YgL3BvcnQvLCBleHByZXNzZWQgYXMgYSBiYXNlLXRlbiBpbnRlZ2VyLAot
ICAgICMgdG8gL2hvc3Rwb3J0LwotICAgIGlmICgobm90IHNlY3VyZSBhbmQgcG9ydCAhPSBERUZB
VUxUX1BPUlQpIG9yCi0gICAgICAgIChzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9TRUNVUkVf
UE9SVCkpOgotICAgICAgICBob3N0cG9ydCArPSAnOicgKyBzdHIocG9ydCkKLSAgICAjIDQuMSAx
Mi4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJIb3N0OiIsIGEgVSswMDIwIFNQQUNFCi0g
ICAgIyBjaGFyYWN0ZXIsIGFuZCAvaG9zdHBvcnQvLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4g
J0hvc3Q6ICVzXHJcbicgJSBob3N0cG9ydAotCi0KLSMgVE9ETyh0eW9zaGlubyk6IERlZmluZSBh
IGJhc2UgY2xhc3MgYW5kIG1vdmUgdGhlc2Ugc2hhcmVkIG1ldGhvZHMgdG8gdGhhdC4KLQotCi1k
ZWYgcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIGxlbmd0aCk6Ci0gICAgcmVjZWl2ZWRfYnl0ZXMgPSBb
XQotICAgIHJlbWFpbmluZyA9IGxlbmd0aAotICAgIHdoaWxlIHJlbWFpbmluZyA+IDA6Ci0gICAg
ICAgIG5ld19yZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFpbmluZykKLSAgICAgICAg
aWYgbm90IG5ld19yZWNlaXZlZF9ieXRlczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1
ZXN0ZWQgbGVuZ3RoICcKLSAgICAgICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBieXRlcyBidXQg
cmVjZWl2ZWQgb25seSAlZCBieXRlcyknICUKLSAgICAgICAgICAgICAgICAobGVuZ3RoLCBsZW5n
dGggLSByZW1haW5pbmcpKQotICAgICAgICByZWNlaXZlZF9ieXRlcy5hcHBlbmQobmV3X3JlY2Vp
dmVkX2J5dGVzKQotICAgICAgICByZW1haW5pbmcgLT0gbGVuKG5ld19yZWNlaXZlZF9ieXRlcykK
LSAgICByZXR1cm4gJycuam9pbihyZWNlaXZlZF9ieXRlcykKLQotCi0jIFRPRE8odHlvc2hpbm8p
OiBOb3cgdGhlIFdlYlNvY2tldEhhbmRzaGFrZSBjbGFzcyBkaXZlcnRzIHRoZXNlIG1ldGhvZHMu
IFdlCi0jIHNob3VsZCBtb3ZlIHRvIEhUVFAgcGFyc2VyIGFzIHNwZWNpZmllZCBpbiBSRkMgNjQ1
NS4gRm9yIEh5QmkgMDAgYW5kCi0jIEhpeGllIDc1LCBwYWNrIHRoZXNlIG1ldGhvZHMgYXMgc29t
ZSBwYXJzZXIgY2xhc3MuCi0KLQotZGVmIF9yZWFkX2ZpZWxkcyhzb2NrZXQpOgotICAgICMgNC4x
IDMyLiBsZXQgL2ZpZWxkcy8gYmUgYSBsaXN0IG9mIG5hbWUtdmFsdWUgcGFpcnMsIGluaXRpYWxs
eSBlbXB0eS4KLSAgICBmaWVsZHMgPSB7fQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICMgNC4x
IDMzLiBsZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAg
IG5hbWUgPSAnJwotICAgICAgICB2YWx1ZSA9ICcnCi0gICAgICAgICMgNC4xIDM0LiByZWFkIC9u
YW1lLwotICAgICAgICBuYW1lID0gX3JlYWRfbmFtZShzb2NrZXQpCi0gICAgICAgIGlmIG5hbWUg
aXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICMgNC4xIDM1LiByZWFkIHNwYWNl
cwotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBTa2lwIG9ubHkgb25lIHNwYWNlIGFzIGRlc2Ny
aWJlZCBpbiB0aGUgc3BlYy4KLSAgICAgICAgY2ggPSBfc2tpcF9zcGFjZXMoc29ja2V0KQotICAg
ICAgICAjIDQuMSAzNi4gcmVhZCAvdmFsdWUvCi0gICAgICAgIHZhbHVlID0gX3JlYWRfdmFsdWUo
c29ja2V0LCBjaCkKLSAgICAgICAgIyA0LjEgMzcuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZl
cgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAh
PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlciB3aGlsZSByZWFkaW5nIHZhbHVlICVyIGZv
ciBoZWFkZXIgJwotICAgICAgICAgICAgICAgICclcicgJSAoY2gsIG5hbWUsIHZhbHVlKSkKLSAg
ICAgICAgIyA0LjEgMzguIGFwcGVuZCBhbiBlbnRyeSB0byB0aGUgL2ZpZWxkcy8gbGlzdCB0aGF0
IGhhcyB0aGUgbmFtZQotICAgICAgICAjIGdpdmVuIGJ5IHRoZSBzdHJpbmcgb2J0YWluZWQgYnkg
aW50ZXJwcmV0aW5nIHRoZSAvbmFtZS8gYnl0ZQotICAgICAgICAjIGFycmF5IGFzIGEgVVRGLTgg
c3RyZWFtIGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwotICAgICAgICAjIG9idGFp
bmVkIGJ5IGludGVycHJldGluZyB0aGUgL3ZhbHVlLyBieXRlIGFycmF5IGFzIGEgVVRGLTggYnl0
ZQotICAgICAgICAjIHN0cmVhbS4KLSAgICAgICAgZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10p
LmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgIyA0LjEgMzkuIHJldHVybiB0byB0aGUgIkZpZWxkIiBz
dGVwIGFib3ZlCi0gICAgcmV0dXJuIGZpZWxkcwotCi0KLWRlZiBfcmVhZF9uYW1lKHNvY2tldCk6
Ci0gICAgIyA0LjEgMzMuIGxldCAvbmFtZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICBuYW1l
ID0gJycKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJv
bSB0aGUgc2VydmVyCi0gICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAg
ICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAg
ICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgbmFt
ZSAlcicgJSBuYW1lKQotICAgICAgICBlbGlmIGNoID09ICc6JzogICMgMHgzQQotICAgICAgICAg
ICAgcmV0dXJuIG5hbWUKLSAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMg
cmFuZ2UgMHgzMSB0byAweDVBCi0gICAgICAgICAgICBjaCA9IGNocihvcmQoY2gpICsgMHgyMCkK
LSAgICAgICAgICAgIG5hbWUgKz0gY2gKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5hbWUg
Kz0gY2gKLQotCi1kZWYgX3NraXBfc3BhY2VzKHNvY2tldCk6Ci0gICAgIyA0LjEgMzUuIHJlYWQg
YSBieXRlIGZyb20gdGhlIHNlcnZlcgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGNoID0gcmVj
ZWl2ZV9ieXRlcyhzb2NrZXQsIDEpCi0gICAgICAgIGlmIGNoID09ICcgJzogICMgMHgyMAotICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgcmV0dXJuIGNoCi0KLQotZGVmIF9yZWFkX3ZhbHVl
KHNvY2tldCwgY2gpOgotICAgICMgNC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFy
cmF5cwotICAgIHZhbHVlID0gJycKLSAgICAjIDQuMSAzNi4gcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2
ZXIuCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgY2ggPT0gJ1xyJzogICMgMHgwRAotICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlCi0gICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgwQQot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVk
IExGIHdoZW4gcmVhZGluZyBoZWFkZXIgdmFsdWUgJXInICUgdmFsdWUpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICB2YWx1ZSArPSBjaAotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29j
a2V0LCAxKQotCi0KLWRlZiByZWFkX2ZyYW1lX2hlYWRlcihzb2NrZXQpOgotICAgIHJlY2VpdmVk
ID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDIpCi0KLSAgICBmaXJzdF9ieXRlID0gb3JkKHJlY2Vp
dmVkWzBdKQotICAgIGZpbiA9IChmaXJzdF9ieXRlID4+IDcpICYgMQotICAgIHJzdjEgPSAoZmly
c3RfYnl0ZSA+PiA2KSAmIDEKLSAgICByc3YyID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAxCi0gICAg
cnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotICAgIG9wY29kZSA9IGZpcnN0X2J5dGUgJiAw
eGYKLQotICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2VpdmVkWzFdKQotICAgIG1hc2sgPSAoc2Vj
b25kX2J5dGUgPj4gNykgJiAxCi0gICAgcGF5bG9hZF9sZW5ndGggPSBzZWNvbmRfYnl0ZSAmIDB4
N2YKLQotICAgIGlmIG1hc2sgIT0gMDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAg
ICAgICAgJ01hc2sgYml0IG11c3QgYmUgMCBmb3IgZnJhbWVzIGNvbWluZyBmcm9tIHNlcnZlcicp
Ci0KLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjc6Ci0gICAgICAgIGV4dGVuZGVkX3BheWxv
YWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDgpCi0gICAgICAgIHBheWxvYWRfbGVu
Z3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchUScsIGV4dGVuZGVkX3BheWxvYWRf
bGVuZ3RoKVswXQotICAgICAgICBpZiBwYXlsb2FkX2xlbmd0aCA+IDB4N0ZGRkZGRkZGRkZGRkZG
RjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgg
Pj0gMl42MycpCi0gICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjY6Ci0gICAgICAgIGV4dGVu
ZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcyhzb2NrZXQsIDIpCi0gICAgICAgIHBh
eWxvYWRfbGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchSCcsIGV4dGVuZGVk
X3BheWxvYWRfbGVuZ3RoKVswXQotCi0gICAgcmV0dXJuIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywg
b3Bjb2RlLCBwYXlsb2FkX2xlbmd0aAotCi0KLWNsYXNzIF9UTFNTb2NrZXQob2JqZWN0KToKLSAg
ICAiIiJXcmFwcGVyIGZvciBhIFRMUyBjb25uZWN0aW9uLiIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJhd19zb2NrZXQpOgotICAgICAgICBzZWxmLl9zc2wgPSBzb2NrZXQuc3NsKHJhd19z
b2NrZXQpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBieXRlcyk6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9zc2wud3JpdGUoYnl0ZXMpCi0KLSAgICBkZWYgcmVjdihzZWxmLCBzaXplPS0xKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3NzbC5yZWFkKHNpemUpCi0KLSAgICBkZWYgY2xvc2Uoc2VsZik6Ci0g
ICAgICAgICMgTm90aGluZyB0byBkby4KLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEh0dHBTdGF0
dXNFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJh
aXNlZCB3aGVuIHVuZXhwZWN0ZWQgaHR0cCBzdGF0dXMgY29kZSB3YXMKLSAgICByZWNlaXZlZCBh
cyBhIHJlc3VsdCBvZiBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgc3RhdHVzKToKLSAgICAgICAgc3VwZXIoSHR0cFN0YXR1c0V4Y2VwdGlvbiwgc2Vs
ZikuX19pbml0X18obmFtZSkKLSAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKLQotCi1jbGFz
cyBXZWJTb2NrZXRIYW5kc2hha2Uob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBw
cm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlv
bnMKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgIiIiSGFuZHNo
YWtlIFdlYlNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBFeGNlcHRpb246
IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9
IHNvY2tldAotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9tZXRob2RfbGluZShzZWxmLl9vcHRp
b25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNo
YWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUpCi0gICAgICAgIHNlbGYuX3NvY2tl
dC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICBm
aWVsZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUikKLSAgICAgICAgZmllbGRzLmFwcGVuZChfQ09O
TkVDVElPTl9IRUFERVIpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZChfZm9ybWF0X2hvc3RfaGVh
ZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVz
ZV90bHMpKQotCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lvbiA9PSA4OgotICAgICAg
ICAgICAgZmllbGRzLmFwcGVuZChfc2VjX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmln
aW4pKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hl
YWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikpCi0KLSAgICAgICAgb3JpZ2luYWxfa2V5ID0gb3Mu
dXJhbmRvbSgxNikKLSAgICAgICAga2V5ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9rZXkp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUtleTogJXMgKCVzKScsIGtleSwgdXRpbC5oZXhpZnkob3JpZ2luYWxfa2V5KSkKLSAgICAgICAg
ZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXk6ICVzXHJcbicgJSBrZXkpCi0KLSAgICAg
ICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1WZXJzaW9uOiAlZFxyXG4nICUgc2VsZi5f
b3B0aW9ucy52ZXJzaW9uKQotCi0gICAgICAgICMgU2V0dGluZyB1cCBleHRlbnNpb25zLgotICAg
ICAgICBpZiBsZW4oc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICBm
aWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6ICVzXHJcbicgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zKSkK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3Qg
aGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAg
ICAgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3Bl
bmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
MSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgot
ICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVu
aW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZpZWxkKQotCi0gICAgICAgIGlmIGxl
bihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCi0gICAgICAg
IG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAgICAgICBpZiBtIGlz
IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ05v
IEhUVFAgc3RhdHVzIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAg
ICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAt
OV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMg
bGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICBpZiBj
b2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgSHR0cFN0YXR1c0V4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVy
IGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCks
IGludChjb2RlKSkKLSAgICAgICAgZmllbGRzID0gX3JlYWRfZmllbGRzKHNlbGYuX3NvY2tldCkK
LSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYg
Y2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHBlY3Rl
ZCBMRiBidXQgZm91bmQ6ICVyJyAlIGNoKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
T3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAg
ICAgIyBDaGVjayAvZmllbGRzLwotICAgICAgICBpZiBsZW4oZmllbGRzWyd1cGdyYWRlJ10pICE9
IDE6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRp
cGxlIFVwZ3JhZGUgaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWyd1cGdyYWRlJ10pCi0gICAg
ICAgIGlmIGxlbihmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgQ29ubmVjdGlvbiBoZWFkZXJz
IGZvdW5kOiAlcycgJSBmaWVsZHNbJ2Nvbm5lY3Rpb24nXSkKLSAgICAgICAgaWYgZmllbGRzWyd1
cGdyYWRlJ11bMF0gIT0gJ3dlYnNvY2tldCc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgVXBncmFkZSBoZWFkZXIgdmFsdWU6ICVzJyAl
IGZpZWxkc1sndXBncmFkZSddWzBdKQotICAgICAgICBpZiBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVsw
XS5sb3dlcigpICE9ICd1cGdyYWRlJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAnVW5leHBlY3RlZCBDb25uZWN0aW9uIGhlYWRlciB2YWx1ZTogJXMnICUK
LSAgICAgICAgICAgICAgICBmaWVsZHNbJ2Nvbm5lY3Rpb24nXVswXSkKLQotICAgICAgICBpZiBs
ZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddKSAhPSAxOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUFj
Y2VwdCBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snc2VjLXdl
YnNvY2tldC1hY2NlcHQnXSkKLQotICAgICAgICBhY2NlcHQgPSBmaWVsZHNbJ3NlYy13ZWJzb2Nr
ZXQtYWNjZXB0J11bMF0KLQotICAgICAgICAjIFZhbGlkYXRlCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGRlY29kZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAg
IGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyIFNlYy1XZWJT
b2NrZXQtQWNjZXB0OiAnICsgYWNjZXB0KQotCi0gICAgICAgIGlmIGxlbihkZWNvZGVkX2FjY2Vw
dCkgIT0gMjA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ0RlY29kZWQgdmFsdWUgb2YgU2VjLVdlYlNvY2tldC1BY2NlcHQgaXMgbm90IDIw
LWJ5dGUgbG9uZycpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdBY3R1YWwgU2VjLVdl
YlNvY2tldC1BY2NlcHQ6ICVyICglcyknLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNj
ZXB0LCB1dGlsLmhleGlmeShkZWNvZGVkX2FjY2VwdCkpCi0KLSAgICAgICAgb3JpZ2luYWxfZXhw
ZWN0ZWRfYWNjZXB0ID0gdXRpbC5zaGExX2hhc2goCi0gICAgICAgICAgICBrZXkgKyBXRUJTT0NL
RVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9IGJhc2U2
NC5iNjRlbmNvZGUob3JpZ2luYWxfZXhwZWN0ZWRfYWNjZXB0KQotCi0gICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnRXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVyICglcyknLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfYWNjZXB0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXRpbC5oZXhpZnkob3JpZ2luYWxfZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAg
ICAgICBpZiBhY2NlcHQgIT0gZXhwZWN0ZWRfYWNjZXB0OgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdJbnZhbGlkIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhl
YWRlcjogJXIgKGV4cGVjdGVkKSAhPSAlciAnCi0gICAgICAgICAgICAgICAgJyhhY3R1YWwpJyAl
IChhY2NlcHQsIGV4cGVjdGVkX2FjY2VwdCkpCi0KLSAgICAgICAgc2VydmVyX2V4dGVuc2lvbnNf
aGVhZGVyID0gZmllbGRzLmdldCgnc2VjLXdlYnNvY2tldC1leHRlbnNpb25zJykKLSAgICAgICAg
YWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgIGlmIHNlcnZlcl9leHRlbnNpb25zX2hl
YWRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBjb21t
b24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKHNlcnZl
cl9leHRlbnNpb25zX2hlYWRlcikpCi0KLSAgICAgICAgIyBTY2FuIGFjY2VwdGVkIGV4dGVuc2lv
biBsaXN0IHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFueSB1bnJlY29nbml6ZWQKLSAgICAgICAgIyBl
eHRlbnNpb25zIG9yIGV4dGVuc2lvbnMgd2UgZGlkbid0IHJlcXVlc3QgaW4gaXQuIFRoZW4sIGZv
cgotICAgICAgICAjIGV4dGVuc2lvbnMgd2UgcmVxdWVzdCwgcGFyc2UgdGhlbSBhbmQgc3RvcmUg
cGFyYW1ldGVycy4gVGhleSB3aWxsIGJlCi0gICAgICAgICMgdXNlZCBsYXRlciBieSBlYWNoIGV4
dGVuc2lvbi4KLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAg
IG11eF9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAgIGZvciBleHRlbnNpb24gaW4gYWNjZXB0ZWRf
ZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX0RFRkxBVEVf
RlJBTUVfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX2Rl
ZmxhdGVfZnJhbWU6Ci0gICAgICAgICAgICAgICAgICAgIGRlZmxhdGVfZnJhbWVfYWNjZXB0ZWQg
PSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBleHRl
bnNpb24ubmFtZSgpID09IF9NVVhfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMudXNlX211eDoKLSAgICAgICAgICAgICAgICAgICAgbXV4X2FjY2VwdGVkID0gVHJ1
ZQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9u
Lm5hbWUoKSA9PSBfUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTjoKLSAgICAgICAgICAgICAg
ICBjaGVja2VyID0gc2VsZi5fb3B0aW9ucy5jaGVja19wZXJtZXNzYWdlX2RlZmxhdGUKLSAgICAg
ICAgICAgICAgICBpZiBjaGVja2VyOgotICAgICAgICAgICAgICAgICAgICBjaGVja2VyKGV4dGVu
c2lvbikKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdSZWNlaXZlZCB1bnJlY29nbml6ZWQgZXh0ZW5z
aW9uOiAlcycgJSBleHRlbnNpb24ubmFtZSgpKQotCi0gICAgICAgICMgTGV0IGFsbCBleHRlbnNp
b25zIGNoZWNrIHRoZSByZXNwb25zZSBmb3IgZXh0ZW5zaW9uIHJlcXVlc3QuCi0KLSAgICAgICAg
aWYgKHNlbGYuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWUgYW5kCi0gICAgICAgICAgICBub3Qg
ZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVz
IGV4dGVuc2lvbiBub3QgYWNjZXB0ZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
REVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2Vf
bXV4IGFuZCBub3QgbXV4X2FjY2VwdGVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCcl
cyBleHRlbnNpb24gbm90IGFjY2VwdGVkJyAlIF9NVVhfRVhURU5TSU9OKQotCi0KLWNsYXNzIFdl
YlNvY2tldEh5YmkwMEhhbmRzaGFrZShvYmplY3QpOgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtl
IHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgZHJhZnRfZmllbGQpOgot
ICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAg
ICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9kcmFmdF9maWVsZCA9
IGRyYWZ0X2ZpZWxkCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNvY2tldCk6Ci0gICAgICAg
ICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAg
RXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxm
Ll9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3QgbGluZS4K
LSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVzb3Vy
Y2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVxdWVz
dC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwo
cmVxdWVzdF9saW5lKQotICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUgYW4gZW1wdHkg
bGlzdCBvZiBzdHJpbmdzLgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICAjIDQuMSA3LiBB
ZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4KLSAgICAgICAg
ZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAgICAgIyA0LjEgOC4g
QWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMvLgotICAgICAg
ICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgIyA0LjEgOS0xMi4g
QWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9mb3Jt
YXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAot
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMudXNlX3RscykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2luOiBmaWVsZCB0
byAvZmllbGRzLy4KLSAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihzZWxmLl9v
cHRpb25zLm9yaWdpbikpCi0gICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0
LVByb3RvY29sOiBmaWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRk
IGNvb2tpZSBoZWFkZXJzIHRvIC9maWVsZHMvLgotCi0gICAgICAgICMgNC4xIDE2LTIzLiBBZGQg
U2VjLVdlYlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxkcy8uCi0gICAgICAgIHNlbGYuX251bWJlcjEs
IGtleTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVs
ZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTE6ICVzXHJcbicgJSBrZXkxKQotICAgICAgICBz
ZWxmLl9udW1iZXIyLCBrZXkyID0gc2VsZi5fZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ051bWJlcjI6ICVkJywgc2VsZi5fbnVtYmVyMSkK
LSAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1LZXkyOiAlc1xyXG4nICUga2V5
MikKLQotICAgICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LURyYWZ0OiAlc1xyXG4n
ICUgc2VsZi5fZHJhZnRfZmllbGQpCi0KLSAgICAgICAgIyA0LjEgMjQuIEZvciBlYWNoIHN0cmlu
ZyBpbiAvZmllbGRzLywgaW4gYSByYW5kb20gb3JkZXI6IHNlbmQgdGhlCi0gICAgICAgICMgc3Ry
aW5nLCBlbmNvZGVkIGFzIFVURi04LCBmb2xsb3dlZCBieSBhIFVURi04IGVuY29kZWQgVSswMDBE
IENBUlJJQUdFCi0gICAgICAgICMgUkVUVVJOIFUrMDAwQSBMSU5FIEZFRUQgY2hhcmFjdGVyIHBh
aXIgKENSTEYpLgotICAgICAgICByYW5kb20uc2h1ZmZsZShmaWVsZHMpCi0KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywg
ZmllbGRzKQotICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzOgotICAgICAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoZmllbGQpCi0KLSAgICAgICAgIyA0LjEgMjUuIHNlbmQgYSBVVEYtOC1l
bmNvZGVkIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gVSswMDBBIExJTkUgRkVFRAotICAgICAgICAj
IGNoYXJhY3RlciBwYWlyIChDUkxGKS4KLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xy
XG4nKQotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBjb25zaXN0aW5n
IG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50bHksIGEgcmFu
ZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVyKS4KLSAgICAg
ICAgc2VsZi5fa2V5MyA9IHNlbGYuX2dlbmVyYXRlX2tleTMoKQotICAgICAgICAjIDQuMSAyNy4g
c2VuZCAva2V5My8gdG8gdGhlIHNlcnZlci4KLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwo
c2VsZi5fa2V5MykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0tl
eTM6ICVyICglcyknLCBzZWxmLl9rZXkzLCB1dGlsLmhleGlmeShzZWxmLl9rZXkzKSkKLQotICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2VudCBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0JykK
LQotICAgICAgICAjIDQuMSAyOC4gUmVhZCBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIgdW50aWwgZWl0
aGVyIHRoZSBjb25uZWN0aW9uCi0gICAgICAgICMgY2xvc2VzLCBvciBhIDB4MEEgYnl0ZSBpcyBy
ZWFkLiBsZXQgL2ZpZWxkLyBiZSB0aGVzZSBieXRlcywgaW5jbHVkaW5nCi0gICAgICAgICMgdGhl
IDB4MEEgYnl0ZXMuCi0gICAgICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgICAg
ICBmaWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAgICAgICAgICAgICAg
ICBicmVhawotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2Ug
UmVzcG9uc2UtTGluZTogJXInLCBmaWVsZCkKLQotICAgICAgICAjIGlmIC9maWVsZC8gaXMgbm90
IGF0IGxlYXN0IHNldmVuIGJ5dGVzIGxvbmcsIG9yIGlmIHRoZSBsYXN0Ci0gICAgICAgICMgdHdv
IGJ5dGVzIGFyZW4ndCAweDBEIGFuZCAweDBBIHJlc3BlY3RpdmVseSwgb3IgaWYgaXQgZG9lcyBu
b3QKLSAgICAgICAgIyBjb250YWluIGF0IGxlYXN0IHR3byAweDIwIGJ5dGVzLCB0aGVuIGZhaWwg
dGhlIFdlYlNvY2tldCBjb25uZWN0aW9uCi0gICAgICAgICMgYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgotICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmllbGQuZW5kc3dpdGgoJ1xyXG4n
KToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAl
IGZpZWxkKQotICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChbXiBdKikgLionLCBmaWVsZCkK
LSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBj
b2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgIyA0LjEgMjku
IGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAvZmllbGQvIHRoYXQgc3RhcnRzIGZyb20g
dGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmlyc3QgMHgyMCBieXRlLCBhbmQgZW5kcyB3
aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAgICAgIyBzZWNvbmQgMHgyMCBieXRlLgotICAg
ICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICAjIDQuMSAzMC4gaWYgL2NvZGUvIGlzIG5v
dCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2YgdGhlIGJ5dGVzIGluCi0gICAgICAgICMg
L2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAgdG8gMHg5MCwgdGhlbiBmYWlsIHRoZSBX
ZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KLSAg
ICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKLSAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29kZSAl
ciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgIyA0LjEgMzEuIGlmIC9jb2RlLywgaW50ZXJwcmV0
ZWQgYXMgVVRGLTgsIGlzICIxMDEiLCB0aGVuIG1vdmUgdG8gdGhlCi0gICAgICAgICMgbmV4dCBz
dGVwLgotICAgICAgICBpZiBjb2RlICE9ICcxMDEnOgotICAgICAgICAgICAgcmFpc2UgSHR0cFN0
YXR1c0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29k
ZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAgJyVy
JyAlIChjb2RlLCBmaWVsZCksIGludChjb2RlKSkKLSAgICAgICAgIyA0LjEgMzItMzkuIHJlYWQg
ZmllbGRzIGludG8gL2ZpZWxkcy8KLSAgICAgICAgZmllbGRzID0gX3JlYWRfZmllbGRzKHNlbGYu
X3NvY2tldCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtl
IHJlc3BvbnNlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgICMgNC4xIDQwLiBfRmll
bGRzIHByb2Nlc3NpbmdfCi0gICAgICAgICMgcmVhZCBhIGJ5dGUgZnJvbSBzZXJ2ZXIKLSAgICAg
ICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0g
J1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFeHBlY3RlZCBMRiBi
dXQgZm91bmQgJXInICUgY2gpCi0gICAgICAgICMgNC4xIDQxLiBjaGVjayAvZmllbGRzLwotICAg
ICAgICBpZiBsZW4oZmllbGRzWyd1cGdyYWRlJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIFVwZ3JhZGUgaGVhZGVycyBmb3Vu
ZDogJXMnICUgZmllbGRzWyd1cGdyYWRlJ10pCi0gICAgICAgIGlmIGxlbihmaWVsZHNbJ2Nvbm5l
Y3Rpb24nXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgQ29ubmVjdGlvbiBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ2Nv
bm5lY3Rpb24nXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1vcmlnaW4n
XSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
TXVsdGlwbGUgU2VjLVdlYlNvY2tldC1PcmlnaW4gaGVhZGVycyBmb3VuZDogJXMnICUKLSAgICAg
ICAgICAgICAgICBmaWVsZHNbJ3NlYy1zZWJzb2NrZXQtb3JpZ2luJ10pCi0gICAgICAgIGlmIGxl
bihmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtbG9jYXRpb24nXSkgIT0gMToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1M
b2NhdGlvbiBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAgICAgICAgIGZpZWxkc1snc2Vj
LXNlYnNvY2tldC1sb2NhdGlvbiddKQotICAgICAgICAjIFRPRE8odWthaSk6IHByb3RvY29sCi0g
ICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAidXBncmFkZSIKLSAgICAgICAgIyAgaWYg
dGhlIHZhbHVlIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBzdHJpbmcgIldlYlNvY2tldCIs
Ci0gICAgICAgICMgIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBmaWVsZHNbJ3VwZ3JhZGUnXVswXSAhPSAnV2ViU29j
a2V0JzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBVcGdyYWRlIGhlYWRlciB2YWx1ZTogJXMnICUgZmllbGRzWyd1cGdyYWRlJ11bMF0p
Ci0gICAgICAgICMgaWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKLSAgICAgICAg
IyAgaWYgdGhlIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBub3QgZXhh
Y3RseSBlcXVhbAotICAgICAgICAjICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhlbiBmYWls
IHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQKLSAgICAgICAgIyAgYWJvcnQgdGhlc2Ugc3Rl
cHMuCi0gICAgICAgIGlmIGZpZWxkc1snY29ubmVjdGlvbiddWzBdLmxvd2VyKCkgIT0gJ3VwZ3Jh
ZGUnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIENvbm5lY3Rpb24gaGVhZGVyIHZhbHVlOiAlcycgJQotICAgICAgICAgICAgICAgIGZp
ZWxkc1snY29ubmVjdGlvbiddWzBdKQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIG9yaWdp
biwgbG9jYXRpb24sIGNvb2tpZSwgLi4KLQotICAgICAgICAjIDQuMSA0Mi4gbGV0IC9jaGFsbGVu
Z2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9udW1iZXJfMS8sCi0gICAgICAgICMgZXhwcmVz
c2VkIGFzIGEgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgL251bWJlcl8yLywgZXhwcmVzc2Vk
Ci0gICAgICAgICMgYXMgYmlnIGVuZGlhbiAzMiBiaXQgaW50ZWdlciwgYW5kIHRoZSBlaWdodCBi
eXRlcyBvZiAva2V5XzMvIGluIHRoZQotICAgICAgICAjIG9yZGVyIHRoZXkgd2VyZSBzZW50IG9u
IHRoZSB3aXJlLgotICAgICAgICBjaGFsbGVuZ2UgPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9u
dW1iZXIxKQotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVt
YmVyMikKLSAgICAgICAgY2hhbGxlbmdlICs9IHNlbGYuX2tleTMKLQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnQ2hhbGxlbmdlOiAlciAoJXMpJywgY2hhbGxlbmdl
LCB1dGlsLmhleGlmeShjaGFsbGVuZ2UpKQotCi0gICAgICAgICMgNC4xIDQzLiBsZXQgL2V4cGVj
dGVkLyBiZSB0aGUgTUQ1IGZpbmdlcnByaW50IG9mIC9jaGFsbGVuZ2UvIGFzIGEKLSAgICAgICAg
IyBiaWctZW5kaWFuIDEyOCBiaXQgc3RyaW5nLgotICAgICAgICBleHBlY3RlZCA9IHV0aWwubWQ1
X2hhc2goY2hhbGxlbmdlKS5kaWdlc3QoKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0g
ICAgICAgICAgICAnRXhwZWN0ZWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywKLSAgICAg
ICAgICAgIGV4cGVjdGVkLCB1dGlsLmhleGlmeShleHBlY3RlZCkpCi0KLSAgICAgICAgIyA0LjEg
NDQuIHJlYWQgc2l4dGVlbiBieXRlcyBmcm9tIHRoZSBzZXJ2ZXIuCi0gICAgICAgICMgbGV0IC9y
ZXBseS8gYmUgdGhvc2UgYnl0ZXMuCi0gICAgICAgIHJlcGx5ID0gcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDE2KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
QWN0dWFsIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsIHJlcGx5LCB1dGlsLmhleGlmeShy
ZXBseSkpCi0KLSAgICAgICAgIyA0LjEgNDUuIGlmIC9yZXBseS8gZG9lcyBub3QgZXhhY3RseSBl
cXVhbCAvZXhwZWN0ZWQvLCB0aGVuIGZhaWwKLSAgICAgICAgIyB0aGUgV2ViU29ja2V0IGNvbm5l
Y3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAgICBpZiBleHBlY3RlZCAhPSByZXBs
eToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnQmFkIGNo
YWxsZW5nZSByZXNwb25zZTogJXIgKGV4cGVjdGVkKSAhPSAlciAoYWN0dWFsKScgJQotICAgICAg
ICAgICAgICAgIChleHBlY3RlZCwgcmVwbHkpKQotICAgICAgICAjIDQuMSA0Ni4gVGhlICpXZWJT
b2NrZXQgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZCouCi0KLSAgICBkZWYgX2dlbmVyYXRlX3Nl
Y193ZWJzb2NrZXRfa2V5KHNlbGYpOgotICAgICAgICAjIDQuMSAxNi4gbGV0IC9zcGFjZXNfbi8g
YmUgYSByYW5kb20gaW50ZWdlciBmcm9tIDEgdG8gMTIgaW5jbHVzaXZlLgotICAgICAgICBzcGFj
ZXMgPSByYW5kb20ucmFuZGludCgxLCAxMikKLSAgICAgICAgIyA0LjEgMTcuIGxldCAvbWF4X24v
IGJlIHRoZSBsYXJnZXN0IGludGVnZXIgbm90IGdyZWF0ZXIgdGhhbgotICAgICAgICAjICA0LDI5
NCw5NjcsMjk1IGRpdmlkZWQgYnkgL3NwYWNlc19uLy4KLSAgICAgICAgbWF4bnVtID0gNDI5NDk2
NzI5NSAvIHNwYWNlcwotICAgICAgICAjIDQuMSAxOC4gbGV0IC9udW1iZXJfbi8gYmUgYSByYW5k
b20gaW50ZWdlciBmcm9tIDAgdG8gL21heF9uLwotICAgICAgICAjIGluY2x1c2l2ZS4KLSAgICAg
ICAgbnVtYmVyID0gcmFuZG9tLnJhbmRpbnQoMCwgbWF4bnVtKQotICAgICAgICAjIDQuMSAxOS4g
bGV0IC9wcm9kdWN0X24vIGJlIHRoZSByZXN1bHQgb2YgbXVsdGlwbHlpbmcgL251bWJlcl9uLyBh
bmQKLSAgICAgICAgIyAvc3BhY2VzX24vIHRvZ2V0aGVyLgotICAgICAgICBwcm9kdWN0ID0gbnVt
YmVyICogc3BhY2VzCi0gICAgICAgICMgNC4xIDIwLiBsZXQgL2tleV9uLyBiZSBhIHN0cmluZyBj
b25zaXN0aW5nIG9mIC9wcm9kdWN0X24vLCBleHByZXNzZWQKLSAgICAgICAgIyBpbiBiYXNlIHRl
biB1c2luZyB0aGUgbnVtZXJhbHMgaW4gdGhlIHJhbmdlIFUrMDAzMCBESUdJVCBaRVJPICgwKSB0
bwotICAgICAgICAjIFUrMDAzOSBESUdJVCBOSU5FICg5KS4KLSAgICAgICAga2V5ID0gc3RyKHBy
b2R1Y3QpCi0gICAgICAgICMgNC4xIDIxLiBpbnNlcnQgYmV0d2VlbiBvbmUgYW5kIHR3ZWx2ZSBy
YW5kb20gY2hhcmFjdGVycyBmcm9tIHRoZQotICAgICAgICAjIHJhbmdlIFUrMDAyMSB0byBVKzAw
MkYgYW5kIFUrMDAzQSB0byBVKzAwN0UgaW50byAva2V5X24vIGF0IHJhbmRvbQotICAgICAgICAj
IHBvc2l0aW9ucy4KLSAgICAgICAgYXZhaWxhYmxlX2NoYXJzID0gcmFuZ2UoMHgyMSwgMHgyZiAr
IDEpICsgcmFuZ2UoMHgzYSwgMHg3ZSArIDEpCi0gICAgICAgIG4gPSByYW5kb20ucmFuZGludCgx
LCAxMikKLSAgICAgICAgZm9yIF8gaW4geHJhbmdlKG4pOgotICAgICAgICAgICAgY2ggPSByYW5k
b20uY2hvaWNlKGF2YWlsYWJsZV9jaGFycykKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5k
aW50KDAsIGxlbihrZXkpKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArIGNocihjaCkg
KyBrZXlbcG9zOl0KLSAgICAgICAgIyA0LjEgMjIuIGluc2VydCAvc3BhY2VzX24vIFUrMDAyMCBT
UEFDRSBjaGFyYWN0ZXJzIGludG8gL2tleV9uLyBhdAotICAgICAgICAjIHJhbmRvbSBwb3NpdGlv
bnMgb3RoZXIgdGhhbiBzdGFydCBvciBlbmQgb2YgdGhlIHN0cmluZy4KLSAgICAgICAgZm9yIF8g
aW4geHJhbmdlKHNwYWNlcyk6Ci0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGludCgxLCBs
ZW4oa2V5KSAtIDEpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgJyAnICsga2V5W3Bv
czpdCi0gICAgICAgIHJldHVybiBudW1iZXIsIGtleQotCi0gICAgZGVmIF9nZW5lcmF0ZV9rZXkz
KHNlbGYpOgotICAgICAgICAjIDQuMSAyNi4gbGV0IC9rZXkzLyBiZSBhIHN0cmluZyBjb25zaXN0
aW5nIG9mIGVpZ2h0IHJhbmRvbSBieXRlcyAob3IKLSAgICAgICAgIyBlcXVpdmFsZW50bHksIGEg
cmFuZG9tIDY0IGJpdCBpbnRlZ2VyIGVuY29kZWQgaW4gYSBiaWctZW5kaWFuIG9yZGVyKS4KLSAg
ICAgICAgcmV0dXJuICcnLmpvaW4oW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3IgXyBp
biB4cmFuZ2UoOCldKQotCi0KLWNsYXNzIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2Uob2JqZWN0
KToKLSAgICAiIiJXZWJTb2NrZXQgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgSUVURiBIaXhpZSA3
NS4iIiIKLQotICAgIF9FWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAgICAgJ0hUVFAvMS4xIDEw
MSBXZWIgU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nICsKLSAgICAgICAgX1VQR1JBREVf
SEVBREVSX0hJWElFNzUgKwotICAgICAgICBfQ09OTkVDVElPTl9IRUFERVIpCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0K
LSAgICBkZWYgX3NraXBfaGVhZGVycyhzZWxmKToKLSAgICAgICAgdGVybWluYXRvciA9ICdcclxu
XHJcbicKLSAgICAgICAgcG9zID0gMAotICAgICAgICB3aGlsZSBwb3MgPCBsZW4odGVybWluYXRv
cik6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAx
KQotICAgICAgICAgICAgaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvcltwb3NdOgotICAgICAgICAg
ICAgICAgIHBvcyArPSAxCi0gICAgICAgICAgICBlbGlmIHJlY2VpdmVkID09IHRlcm1pbmF0b3Jb
MF06Ci0gICAgICAgICAgICAgICAgcG9zID0gMQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBwb3MgPSAwCi0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNvY2tldCk6Ci0gICAg
ICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9tZXRo
b2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ09wZW5pbmcgaGFuZHNoYWtlIFJlcXVlc3QtTGluZTogJXInLCByZXF1ZXN0X2xpbmUpCi0g
ICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKHJlcXVlc3RfbGluZSkKLQotICAgICAgICBoZWFk
ZXJzID0gX1VQR1JBREVfSEVBREVSX0hJWElFNzUgKyBfQ09OTkVDVElPTl9IRUFERVIKLSAgICAg
ICAgaGVhZGVycyArPSBfZm9ybWF0X2hvc3RfaGVhZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQs
Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0gICAgICAgIGhlYWRlcnMgKz0g
X29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVxdWVzdCBoZWFkZXJzOiAlcicsIGhlYWRlcnMp
Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlcnMpCi0KLSAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50
IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAgICAgIGZvciBleHBlY3RlZF9jaGFy
IGluIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2UuX0VYUEVDVEVEX1JFU1BPTlNFOgotICAgICAg
ICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAg
ICAgIGlmIGV4cGVjdGVkX2NoYXIgIT0gcmVjZWl2ZWQ6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdIYW5kc2hha2UgZmFpbHVyZScpCi0gICAgICAgICMgV2UgY3V0IGNvcm5lcnMg
YW5kIHNraXAgb3RoZXIgaGVhZGVycy4KLSAgICAgICAgc2VsZi5fc2tpcF9oZWFkZXJzKCkKLQot
Ci1jbGFzcyBXZWJTb2NrZXRTdHJlYW0ob2JqZWN0KToKLSAgICAiIiJGcmFtZSBwcm9jZXNzb3Ig
Zm9yIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBzb2NrZXQsIGhhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9
IGhhbmRzaGFrZQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICAjIEZp
bHRlcnMgYXBwbGllZCB0byBhcHBsaWNhdGlvbiBkYXRhIHBhcnQgb2YgZGF0YSBmcmFtZXMuCi0g
ICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUKLSAgICAgICAgc2VsZi5f
aW5jb21pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotCi0gICAgICAgIGlmIHNlbGYuX2hhbmRzaGFr
ZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5n
X2ZyYW1lX2ZpbHRlciA9ICgKLSAgICAgICAgICAgICAgICB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIo
Tm9uZSwgRmFsc2UpKQotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyID0g
dXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKLQotICAgICAgICBzZWxmLl9mcmFnbWVudGVkID0gRmFs
c2UKLQotICAgIGRlZiBfbWFza19oeWJpKHNlbGYsIHMpOgotICAgICAgICAjIFRPRE8odHlvc2hp
bm8pOiBvcy51cmFuZG9tIGRvZXMgb3Blbi9yZWFkL2Nsb3NlIGZvciBldmVyeSBjYWxsLiBJZgot
ICAgICAgICAjIHBlcmZvcm1hbmNlIG1hdHRlcnMsIGNoYW5nZSB0aGlzIHRvIHNvbWUgbGlicmFy
eSBjYWxsIHRoYXQgZ2VuZXJhdGVzCi0gICAgICAgICMgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJl
IHBzZXVkbyByYW5kb20gbnVtYmVyIHNlcXVlbmNlLgotICAgICAgICBtYXNraW5nX25vbmNlID0g
b3MudXJhbmRvbSg0KQotICAgICAgICByZXN1bHQgPSBbbWFza2luZ19ub25jZV0KLSAgICAgICAg
Y291bnQgPSAwCi0gICAgICAgIGZvciBjIGluIHM6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5k
KGNocihvcmQoYykgXiBvcmQobWFza2luZ19ub25jZVtjb3VudF0pKSkKLSAgICAgICAgICAgIGNv
dW50ID0gKGNvdW50ICsgMSkgJSBsZW4obWFza2luZ19ub25jZSkKLSAgICAgICAgcmV0dXJuICcn
LmpvaW4ocmVzdWx0KQotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNl
bGYsIGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlciAr
IHNlbGYuX21hc2tfaHliaShib2R5KSkKLQotICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwgcGF5bG9h
ZCwgZnJhbWVfdHlwZSwgZW5kPVRydWUsIG1hc2s9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgIHJz
djE9MCwgcnN2Mj0wLCByc3YzPTApOgotICAgICAgICBpZiBzZWxmLl9vdXRnb2luZ19mcmFtZV9m
aWx0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0Z29pbmdf
ZnJhbWVfZmlsdGVyLmZpbHRlcihwYXlsb2FkKQotCi0gICAgICAgIGlmIHNlbGYuX2ZyYWdtZW50
ZWQ6Ci0gICAgICAgICAgICBvcGNvZGUgPSBPUENPREVfQ09OVElOVUFUSU9OCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBvcGNvZGUgPSBmcmFtZV90eXBlCi0KLSAgICAgICAgaWYgZW5kOgot
ICAgICAgICAgICAgc2VsZi5fZnJhZ21lbnRlZCA9IEZhbHNlCi0gICAgICAgICAgICBmaW4gPSAx
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9mcmFnbWVudGVkID0gVHJ1ZQotICAg
ICAgICAgICAgZmluID0gMAotCi0gICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZS5fb3B0aW9ucy51
c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAgIHJzdjEgPSAxCi0KLSAgICAgICAgaWYgbWFz
azoKLSAgICAgICAgICAgIG1hc2tfYml0ID0gMSA8PCA3Ci0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBtYXNrX2JpdCA9IDAKLQotICAgICAgICBoZWFkZXIgPSBjaHIoZmluIDw8IDcgfCByc3Yx
IDw8IDYgfCByc3YyIDw8IDUgfCByc3YzIDw8IDQgfCBvcGNvZGUpCi0gICAgICAgIHBheWxvYWRf
bGVuZ3RoID0gbGVuKHBheWxvYWQpCi0gICAgICAgIGlmIHBheWxvYWRfbGVuZ3RoIDw9IDEyNToK
LSAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCBwYXlsb2FkX2xlbmd0aCkKLSAg
ICAgICAgZWxpZiBwYXlsb2FkX2xlbmd0aCA8IDEgPDwgMTY6Ci0gICAgICAgICAgICBoZWFkZXIg
Kz0gY2hyKG1hc2tfYml0IHwgMTI2KSArIHN0cnVjdC5wYWNrKCchSCcsIHBheWxvYWRfbGVuZ3Ro
KQotICAgICAgICBlbGlmIHBheWxvYWRfbGVuZ3RoIDwgMSA8PCA2MzoKLSAgICAgICAgICAgIGhl
YWRlciArPSBjaHIobWFza19iaXQgfCAxMjcpICsgc3RydWN0LnBhY2soJyFRJywgcGF5bG9hZF9s
ZW5ndGgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1RvbyBs
b25nIHBheWxvYWQgKCVkIGJ5dGUpJyAlIHBheWxvYWRfbGVuZ3RoKQotICAgICAgICBpZiBtYXNr
OgotICAgICAgICAgICAgcGF5bG9hZCA9IHNlbGYuX21hc2tfaHliaShwYXlsb2FkKQotICAgICAg
ICBzZWxmLl9zb2NrZXQuc2VuZGFsbChoZWFkZXIgKyBwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRf
YmluYXJ5KHNlbGYsIHBheWxvYWQsIGVuZD1UcnVlLCBtYXNrPVRydWUpOgotICAgICAgICBzZWxm
LnNlbmRfZGF0YShwYXlsb2FkLCBPUENPREVfQklOQVJZLCBlbmQsIG1hc2spCi0KLSAgICBkZWYg
c2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIGVuZD1UcnVlLCBtYXNrPVRydWUpOgotICAgICAgICBz
ZWxmLnNlbmRfZGF0YShwYXlsb2FkLmVuY29kZSgndXRmLTgnKSwgT1BDT0RFX1RFWFQsIGVuZCwg
bWFzaykKLQotICAgIGRlZiBfYXNzZXJ0X3JlY2VpdmVfZGF0YShzZWxmLCBwYXlsb2FkLCBvcGNv
ZGUsIGZpbiwgcnN2MSwgcnN2MiwgcnN2Myk6Ci0gICAgICAgIChhY3R1YWxfZmluLCBhY3R1YWxf
cnN2MSwgYWN0dWFsX3JzdjIsIGFjdHVhbF9yc3YzLCBhY3R1YWxfb3Bjb2RlLAotICAgICAgICAg
cGF5bG9hZF9sZW5ndGgpID0gcmVhZF9mcmFtZV9oZWFkZXIoc2VsZi5fc29ja2V0KQotCi0gICAg
ICAgIGlmIGFjdHVhbF9vcGNvZGUgIT0gb3Bjb2RlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIG9wY29kZTogJWQgKGV4cGVjdGVkKSB2
cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChvcGNvZGUsIGFjdHVhbF9vcGNvZGUp
KQotCi0gICAgICAgIGlmIGFjdHVhbF9maW4gIT0gZmluOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZpbjogJWQgKGV4cGVjdGVkKSB2
cyAlZCAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChmaW4sIGFjdHVhbF9maW4pKQotCi0g
ICAgICAgIGlmIHJzdjEgaXMgTm9uZToKLSAgICAgICAgICAgIHJzdjEgPSAwCi0gICAgICAgICAg
ICBpZiBzZWxmLl9oYW5kc2hha2UuX29wdGlvbnMudXNlX2RlZmxhdGVfZnJhbWU6Ci0gICAgICAg
ICAgICAgICAgcnN2MSA9IDEKLQotICAgICAgICBpZiByc3YyIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByc3YyID0gMAotCi0gICAgICAgIGlmIHJzdjMgaXMgTm9uZToKLSAgICAgICAgICAgIHJzdjMg
PSAwCi0KLSAgICAgICAgaWYgYWN0dWFsX3JzdjEgIT0gcnN2MToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCByc3YxOiAlciAoZXhwZWN0
ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHJzdjEsIGFjdHVhbF9yc3Yx
KSkKLQotICAgICAgICBpZiBhY3R1YWxfcnN2MiAhPSByc3YyOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjI6ICVyIChleHBlY3Rl
ZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocnN2MiwgYWN0dWFsX3JzdjIp
KQotCi0gICAgICAgIGlmIGFjdHVhbF9yc3YzICE9IHJzdjM6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MzogJXIgKGV4cGVjdGVk
KSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChyc3YzLCBhY3R1YWxfcnN2Mykp
Ci0KLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgcGF5bG9h
ZF9sZW5ndGgpCi0KLSAgICAgICAgaWYgc2VsZi5faW5jb21pbmdfZnJhbWVfZmlsdGVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0
ZXIuZmlsdGVyKHJlY2VpdmVkKQotCi0gICAgICAgIGlmIGxlbihyZWNlaXZlZCkgIT0gbGVuKHBh
eWxvYWQpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdV
bmV4cGVjdGVkIHBheWxvYWQgbGVuZ3RoOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAl
Ci0gICAgICAgICAgICAgICAgKGxlbihwYXlsb2FkKSwgbGVuKHJlY2VpdmVkKSkpCi0KLSAgICAg
ICAgaWYgcGF5bG9hZCAhPSByZWNlaXZlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBwYXlsb2FkOiAlciAoZXhwZWN0ZWQpIHZzICVy
IChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHBheWxvYWQsIHJlY2VpdmVkKSkKLQotICAg
IGRlZiBhc3NlcnRfcmVjZWl2ZV9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgb3Bjb2RlPU9QQ09ERV9C
SU5BUlksIGZpbj0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1Ob25lLCBy
c3YyPU5vbmUsIHJzdjM9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9yZWNlaXZlX2RhdGEo
cGF5bG9hZCwgb3Bjb2RlLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMpCi0KLSAgICBkZWYgYXNzZXJ0
X3JlY2VpdmVfdGV4dChzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX1RFWFQsIGZpbj0xLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9Tm9uZSwgcnN2Mj1Ob25lLCByc3YzPU5v
bmUpOgotICAgICAgICBzZWxmLl9hc3NlcnRfcmVjZWl2ZV9kYXRhKHBheWxvYWQuZW5jb2RlKCd1
dGYtOCcpLCBvcGNvZGUsIGZpbiwgcnN2MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByc3YyLCByc3YzKQotCi0gICAgZGVmIF9idWlsZF9jbG9zZV9mcmFtZShzZWxmLCBjb2Rl
LCByZWFzb24sIG1hc2spOgotICAgICAgICBmcmFtZSA9IGNocigxIDw8IDcgfCBPUENPREVfQ0xP
U0UpCi0KLSAgICAgICAgaWYgY29kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJvZHkgPSBz
dHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIHJlYXNvbi5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGJvZHkgPSAnJwotICAgICAgICBpZiBtYXNrOgotICAgICAgICAg
ICAgZnJhbWUgKz0gY2hyKDEgPDwgNyB8IGxlbihib2R5KSkgKyBzZWxmLl9tYXNrX2h5YmkoYm9k
eSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZyYW1lICs9IGNocihsZW4oYm9keSkpICsg
Ym9keQotICAgICAgICByZXR1cm4gZnJhbWUKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNv
ZGUsIHJlYXNvbik6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKAotICAgICAgICAgICAg
c2VsZi5fYnVpbGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29uLCBUcnVlKSkKLQotICAgIGRlZiBh
c3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBleHBlY3Rl
ZF9mcmFtZSA9IHNlbGYuX2J1aWxkX2Nsb3NlX2ZyYW1lKGNvZGUsIHJlYXNvbiwgRmFsc2UpCi0g
ICAgICAgIGFjdHVhbF9mcmFtZSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBsZW4oZXhw
ZWN0ZWRfZnJhbWUpKQotICAgICAgICBpZiBhY3R1YWxfZnJhbWUgIT0gZXhwZWN0ZWRfZnJhbWU6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0
ZWQgY2xvc2UgZnJhbWU6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAg
ICAgICAgICAoZXhwZWN0ZWRfZnJhbWUsIGFjdHVhbF9mcmFtZSkpCi0KLQotY2xhc3MgV2ViU29j
a2V0U3RyZWFtSGl4aWU3NShvYmplY3QpOgotICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3IgdGhl
IFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIEhpeGllIDc1IGFuZCBIeUJpIDAwLgotICAgICIi
IgotCi0gICAgX0NMT1NFX0ZSQU1FID0gJ1x4ZmZceDAwJwotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHNvY2tldCwgdW51c2VkX2hhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNv
Y2tldAotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNlbGYsIGhlYWRl
ciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlciArIGJvZHkpCi0K
LSAgICBkZWYgc2VuZF9kYXRhKHNlbGYsIHBheWxvYWQsIHVudXNlZF9mcmFtZV90eXBlbSwgdW51
c2VkX2VuZCwgdW51c2VkX21hc2spOgotICAgICAgICBmcmFtZSA9ICcnLmpvaW4oWydceDAwJywg
cGF5bG9hZCwgJ1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJhbWUpCi0K
LSAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgdW51c2VkX3BheWxvYWQsIHVudXNlZF9lbmQsIHVu
dXNlZF9tYXNrKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHNlbmRfdGV4dChzZWxmLCBwYXls
b2FkLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIGVuY29kZWRfcGF5bG9hZCA9
IHBheWxvYWQuZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAn
LCBlbmNvZGVkX3BheWxvYWQsICdceGZmJ10pCi0gICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxs
KGZyYW1lKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2JpbmFyeShzZWxmLCBwYXlsb2FkLCBv
cGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wKToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdCaW5h
cnkgZnJhbWUgaXMgbm90IHN1cHBvcnRlZCBpbiBoaXhpZTc1JykKLQotICAgIGRlZiBhc3NlcnRf
cmVjZWl2ZV90ZXh0KHNlbGYsIHBheWxvYWQpOgotICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVf
Ynl0ZXMoc2VsZi5fc29ja2V0LCAxKQotCi0gICAgICAgIGlmIHJlY2VpdmVkICE9ICdceDAwJzoK
LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3Rl
ZCBmcmFtZSB0eXBlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCi0gICAgICAgICAg
ICAgICAgKDAsIG9yZChyZWNlaXZlZCkpKQotCi0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9i
eXRlcyhzZWxmLl9zb2NrZXQsIGxlbihwYXlsb2FkKSArIDEpCi0gICAgICAgIGlmIHJlY2VpdmVk
Wy0xXSAhPSAnXHhmZic6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgJ1Rlcm1pbmF0aW9uIGV4cGVjdGVkOiAweGZmIChleHBlY3RlZCkgdnMgJXIgKGFjdHVh
bCknICUKLSAgICAgICAgICAgICAgICByZWNlaXZlZCkKLQotICAgICAgICBpZiByZWNlaXZlZFsw
Oi0xXSAhPSBwYXlsb2FkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAg
ICAgICAgICdVbmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCkn
ICUKLSAgICAgICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2ZWRbMDotMV0pKQotCi0gICAgZGVm
IHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNl
bmRhbGwoc2VsZi5fQ0xPU0VfRlJBTUUpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
c2VsZiwgdW51c2VkX2NvZGUsIHVudXNlZF9yZWFzb24pOgotICAgICAgICBjbG9zaW5nID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihzZWxmLl9DTE9TRV9GUkFNRSkpCi0gICAgICAg
IGlmIGNsb3NpbmcgIT0gc2VsZi5fQ0xPU0VfRlJBTUU6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0RpZG5cJ3QgcmVjZWl2ZSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLQotY2xhc3MgQ2xp
ZW50T3B0aW9ucyhvYmplY3QpOgotICAgICIiIkhvbGRzIG9wdGlvbiB2YWx1ZXMgdG8gY29uZmln
dXJlIHRoZSBDbGllbnQgb2JqZWN0LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAg
ICAgICBzZWxmLnZlcnNpb24gPSAxMwotICAgICAgICBzZWxmLnNlcnZlcl9ob3N0ID0gJycKLSAg
ICAgICAgc2VsZi5vcmlnaW4gPSAnJwotICAgICAgICBzZWxmLnJlc291cmNlID0gJycKLSAgICAg
ICAgc2VsZi5zZXJ2ZXJfcG9ydCA9IC0xCi0gICAgICAgIHNlbGYuc29ja2V0X3RpbWVvdXQgPSAx
MDAwCi0gICAgICAgIHNlbGYudXNlX3RscyA9IEZhbHNlCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9u
cyA9IFtdCi0gICAgICAgICMgRW5hYmxlIGRlZmxhdGUtYXBwbGljYXRpb24tZGF0YS4KLSAgICAg
ICAgc2VsZi51c2VfZGVmbGF0ZV9mcmFtZSA9IEZhbHNlCi0gICAgICAgICMgRW5hYmxlIG11eAot
ICAgICAgICBzZWxmLnVzZV9tdXggPSBGYWxzZQotCi0gICAgZGVmIGVuYWJsZV9kZWZsYXRlX2Zy
YW1lKHNlbGYpOgotICAgICAgICBzZWxmLnVzZV9kZWZsYXRlX2ZyYW1lID0gVHJ1ZQotICAgICAg
ICBzZWxmLmV4dGVuc2lvbnMuYXBwZW5kKF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotICAg
IGRlZiBlbmFibGVfbXV4KHNlbGYpOgotICAgICAgICBzZWxmLnVzZV9tdXggPSBUcnVlCi0gICAg
ICAgIHNlbGYuZXh0ZW5zaW9ucy5hcHBlbmQoX01VWF9FWFRFTlNJT04pCi0KLQotZGVmIGNvbm5l
Y3Rfc29ja2V0X3dpdGhfcmV0cnkoaG9zdCwgcG9ydCwgdGltZW91dCwgdXNlX3RscywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5PTEwLCBzbGVlcF9zZWM9MC4xKToKLSAgICBy
ZXRyeV9jb3VudCA9IDAKLSAgICB3aGlsZSByZXRyeV9jb3VudCA8IHJldHJ5OgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgICAgICBzLnNldHRp
bWVvdXQodGltZW91dCkKLSAgICAgICAgICAgIHMuY29ubmVjdCgoaG9zdCwgcG9ydCkpCi0gICAg
ICAgICAgICBpZiB1c2VfdGxzOgotICAgICAgICAgICAgICAgIHJldHVybiBfVExTU29ja2V0KHMp
Ci0gICAgICAgICAgICByZXR1cm4gcwotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6
Ci0gICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVDT05OUkVGVVNFRDoKLSAgICAgICAg
ICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXRyeV9j
b3VudCA9IHJldHJ5X2NvdW50ICsgMQotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoc2xlZXBf
c2VjKQotCi0gICAgcmV0dXJuIE5vbmUKLQotCi1jbGFzcyBDbGllbnQob2JqZWN0KToKLSAgICAi
IiJXZWJTb2NrZXQgY2xpZW50LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMs
IGhhbmRzaGFrZSwgc3RyZWFtX2NsYXNzKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMK
LSAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9
IGhhbmRzaGFrZQotICAgICAgICBzZWxmLl9zdHJlYW1fY2xhc3MgPSBzdHJlYW1fY2xhc3MKLQot
ICAgIGRlZiBjb25uZWN0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBjb25uZWN0X3Nv
Y2tldF93aXRoX3JldHJ5KAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hv
c3QsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0LAotICAgICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudXNlX3RscykKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtl
KHNlbGYuX3NvY2tldCkKLQotICAgICAgICBzZWxmLl9zdHJlYW0gPSBzZWxmLl9zdHJlYW1fY2xh
c3Moc2VsZi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2Zf
YXJiaXRyYXJ5X2J5dGVzKHNlbGYsIGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3N0cmVh
bS5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcyhoZWFkZXIsIGJvZHkpCi0KLSAgICBkZWYg
c2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UsIHJhdz1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIGlmIGJpbmFy
eToKLSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShtZXNzYWdlLCBlbmQsIG1h
c2spCi0gICAgICAgIGVsaWYgcmF3OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZGF0
YShtZXNzYWdlLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfdGV4dChtZXNzYWdlLCBlbmQsIG1hc2spCi0KLSAgICBk
ZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgcGF5bG9hZCwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAg
aWYgYmluYXJ5OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFy
eShwYXlsb2FkKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX3RleHQocGF5bG9hZCkKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGU9
U1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9zdHJlYW0u
c2VuZF9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uo
c2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNl
bGYuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBkZWYg
Y2xvc2Vfc29ja2V0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQotCi0gICAg
ZGVmIGFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgcmVhZF9kYXRhID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIGlmIHN0cihlKS5maW5kKAotICAg
ICAgICAgICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3Rl
ZCBsZW5ndGggJykgPT0gMDoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBlcnJvcl9udW1iZXIsIG1lc3NhZ2UgPSBlCi0gICAgICAgICAg
ICAgICAgZm9yIGVycm9yX25hbWUgaW4gWydFQ09OTlJFU0VUJywgJ1dTQUVDT05OUkVTRVQnXToK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yX25hbWUgaW4gZGlyKGVycm5vKSBhbmQKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGVycm9yX251bWJlciA9PSBnZXRhdHRyKGVycm5vLCBlcnJv
cl9uYW1lKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGV4
Y2VwdDoKLSAgICAgICAgICAgICAgICByYWlzZSBlCi0gICAgICAgICAgICByYWlzZSBlCi0KLSAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb25uZWN0aW9uIGlzIG5vdCBjbG9zZWQgKFJlYWQ6ICVy
KScgJSByZWFkX2RhdGEpCi0KLQotZGVmIGNyZWF0ZV9jbGllbnQob3B0aW9ucyk6Ci0gICAgcmV0
dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGFuZHNoYWtlKG9wdGlvbnMp
LCBXZWJTb2NrZXRTdHJlYW0pCi0KLQotZGVmIGNyZWF0ZV9jbGllbnRfaHliaTAwKG9wdGlvbnMp
OgotICAgIHJldHVybiBDbGllbnQoCi0gICAgICAgIG9wdGlvbnMsCi0gICAgICAgIFdlYlNvY2tl
dEh5YmkwMEhhbmRzaGFrZShvcHRpb25zLCAnMCcpLAotICAgICAgICBXZWJTb2NrZXRTdHJlYW1I
aXhpZTc1KQotCi0KLWRlZiBjcmVhdGVfY2xpZW50X2hpeGllNzUob3B0aW9ucyk6Ci0gICAgcmV0
dXJuIENsaWVudCgKLSAgICAgICAgb3B0aW9ucywgV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShv
cHRpb25zKSwgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDdmODZmZGI0MTYzZDRlNzM4OTUyYjNjY2I3N2YxOTIxNmJjNTkx
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2
NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIlRlc3QgZm9yIGVuZC10by1lbmQgd2l0aCBleHRlcm5hbCBzZXJ2ZXIuCi0KLVRoaXMgdGVz
dCBpcyBub3QgcnVuIGJ5IHJ1bl9hbGwucHkgYmVjYXVzZSBpdCByZXF1aXJlcyBzb21lIHByZXBh
cmF0aW9ucy4KLUlmIHlvdSB3b3VsZCBsaWtlIHRvIHJ1biB0aGlzIHRlc3QgY29ycmVjdGx5LCBs
YXVuY2ggQXBhY2hlIHdpdGggbW9kX3B5dGhvbgotYW5kIG1vZF9weXdlYnNvY2tldCBtYW51YWxs
eS4gSW4gYWRkaXRpb24sIHlvdSBzaG91bGQgcGFzcyBhbGxvd19kcmFmdDc1IG9wdGlvbgotYW5k
IGV4YW1wbGUgcGF0aCBhcyBoYW5kbGVyX3NjYW4gb3B0aW9uIGFuZCBBcGFjaGUncyBEb2N1bWVu
dFJvb3QuCi0iIiIKLQotCi1pbXBvcnQgb3B0cGFyc2UKLWltcG9ydCBzeXMKLWltcG9ydCB0ZXN0
LnRlc3RfZW5kdG9lbmQKLWltcG9ydCB1bml0dGVzdAotCi0KLV9ERUZBVUxUX1dFQl9TT0NLRVRf
UE9SVCA9IDgwCi0KLQotY2xhc3MgRW5kVG9FbmRUZXN0V2l0aEV4dGVybmFsU2VydmVyKHRlc3Qu
dGVzdF9lbmR0b2VuZC5FbmRUb0VuZFRlc3QpOgotICAgIHBhc3MKLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBkZXN0PSdwb3J0JywgdHlwZT0naW50JywK
LSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdleHRlcm5hbCB0ZXN0IHNlcnZlciBwb3J0Licp
Ci0gICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgdGVzdC50
ZXN0X2VuZHRvZW5kLl91c2VfZXh0ZXJuYWxfc2VydmVyID0gVHJ1ZQotICAgIHRlc3QudGVzdF9l
bmR0b2VuZC5fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSBvcHRpb25zLnBvcnQKLQotICAgIHVuaXR0
ZXN0Lm1haW4oYXJndj1bc3lzLmFyZ3ZbMF1dKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbW9jay5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmJmZmNhYzQ4ZGM0M2E1MmI5Y2NmMWJjZDAxMjk3NTQyNDA0
OGQ2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvbW9jay5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyMSArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi0iIiJNb2NrcyBmb3IgdGVzdGluZy4KLSIiIgotCi0KLWltcG9ydCBRdWV1ZQot
aW1wb3J0IHRocmVhZGluZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLQotCi1jbGFz
cyBfTW9ja0Nvbm5CYXNlKG9iamVjdCk6Ci0gICAgIiIiQmFzZSBjbGFzcyBvZiBtb2NrcyBmb3Ig
bW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBj
aGVjayB3aGF0IGlzIHdyaXR0ZW4gdG8gYSAobW9jaykgbXBfY29ubi4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fd3JpdGVfZGF0YSA9IFtdCi0gICAg
ICAgIHNlbGYucmVtb3RlX2FkZHIgPSAnZmFrZV9hZGRyZXNzJwotCi0gICAgZGVmIHdyaXRlKHNl
bGYsIGRhdGEpOgotICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25u
LndyaXRlLiIiIgotCi0gICAgICAgIHNlbGYuX3dyaXRlX2RhdGEuYXBwZW5kKGRhdGEpCi0KLSAg
ICBkZWYgd3JpdHRlbl9kYXRhKHNlbGYpOgotICAgICAgICAiIiJHZXQgYnl0ZXMgd3JpdHRlbiB0
byB0aGlzIG1vY2suIiIiCi0KLSAgICAgICAgcmV0dXJuICcnLmpvaW4oc2VsZi5fd3JpdGVfZGF0
YSkKLQotCi1jbGFzcyBNb2NrQ29ubihfTW9ja0Nvbm5CYXNlKToKLSAgICAiIiJNb2NrIGZvciBt
b2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgotCi0gICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIHNw
ZWNpZnkgd2hhdCBzaG91bGQgYmUgcmVhZCBmcm9tIGEgKG1vY2spIG1wX2Nvbm4gYXMKLSAgICB3
ZWxsIGFzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBpdC4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZWFkX2RhdGEpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGlu
c3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZWFkX2RhdGE6IGJ5dGVzIHRo
YXQgc2hvdWxkIGJlIHJldHVybmVkIHdoZW4gcmVhZCogbWV0aG9kcyBhcmUKLSAgICAgICAgICAg
IGNhbGxlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgX01vY2tDb25uQmFzZS5fX2luaXRfXyhz
ZWxmKQotICAgICAgICBzZWxmLl9yZWFkX2RhdGEgPSByZWFkX2RhdGEKLSAgICAgICAgc2VsZi5f
cmVhZF9wb3MgPSAwCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgICIiIk92ZXJy
aWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZGxpbmUuIiIiCi0KLSAgICAgICAgaWYg
c2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNlbGYuX3JlYWRfZGF0YSk6Ci0gICAgICAgICAgICByZXR1
cm4gJycKLSAgICAgICAgZW5kX2luZGV4ID0gc2VsZi5fcmVhZF9kYXRhLmZpbmQoJ1xuJywgc2Vs
Zi5fcmVhZF9wb3MpICsgMQotICAgICAgICBpZiBub3QgZW5kX2luZGV4OgotICAgICAgICAgICAg
ZW5kX2luZGV4ID0gbGVuKHNlbGYuX3JlYWRfZGF0YSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
YWRfdXBfdG8oZW5kX2luZGV4KQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAg
ICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkLiIiIgotCi0gICAg
ICAgIGlmIHNlbGYuX3JlYWRfcG9zID49IGxlbihzZWxmLl9yZWFkX2RhdGEpOgotICAgICAgICAg
ICAgcmV0dXJuICcnCi0gICAgICAgIGVuZF9pbmRleCA9IG1pbihsZW4oc2VsZi5fcmVhZF9kYXRh
KSwgc2VsZi5fcmVhZF9wb3MgKyBsZW5ndGgpCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFkX3Vw
X3RvKGVuZF9pbmRleCkKLQotICAgIGRlZiBfcmVhZF91cF90byhzZWxmLCBlbmRfaW5kZXgpOgot
ICAgICAgICBsaW5lID0gc2VsZi5fcmVhZF9kYXRhW3NlbGYuX3JlYWRfcG9zOmVuZF9pbmRleF0K
LSAgICAgICAgc2VsZi5fcmVhZF9wb3MgPSBlbmRfaW5kZXgKLSAgICAgICAgcmV0dXJuIGxpbmUK
LQotCi1jbGFzcyBNb2NrQmxvY2tpbmdDb25uKF9Nb2NrQ29ubkJhc2UpOgotICAgICIiIkJsb2Nr
aW5nIG1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAgICBUaGlzIGVuYWJs
ZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20gYSAobW9jaykgbXBf
Y29ubiBhcwotICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGl0LgotICAg
IENhbGxlcnMgb2YgcmVhZCogbWV0aG9kcyB3aWxsIGJsb2NrIGlmIHRoZXJlIGlzIG5vIGJ5dGVz
IGF2YWlsYWJsZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAg
X01vY2tDb25uQmFzZS5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9xdWV1ZSA9IFF1ZXVl
LlF1ZXVlKCkKLQotICAgIGRlZiByZWFkbGluZShzZWxmKToKLSAgICAgICAgIiIiT3ZlcnJpZGUg
bW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkbGluZS4iIiIKLSAgICAgICAgbGluZSA9ICcn
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjID0gc2VsZi5fcXVldWUuZ2V0KCkK
LSAgICAgICAgICAgIGxpbmUgKz0gYwotICAgICAgICAgICAgaWYgYyA9PSAnXG4nOgotICAgICAg
ICAgICAgICAgIHJldHVybiBsaW5lCi0KLSAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgotICAg
ICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWQuIiIiCi0KLSAg
ICAgICAgZGF0YSA9ICcnCi0gICAgICAgIGZvciB1bnVzZWQgaW4gcmFuZ2UobGVuZ3RoKToKLSAg
ICAgICAgICAgIGRhdGEgKz0gc2VsZi5fcXVldWUuZ2V0KCkKLSAgICAgICAgcmV0dXJuIGRhdGEK
LQotICAgIGRlZiBwdXRfYnl0ZXMoc2VsZiwgYnl0ZXMpOgotICAgICAgICAiIiJQdXQgYnl0ZXMg
dG8gYmUgcmVhZCBmcm9tIHRoaXMgbW9jay4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
Ynl0ZXM6IGJ5dGVzIHRvIGJlIHJlYWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZvciBieXRl
IGluIGJ5dGVzOgotICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KGJ5dGUpCi0KLQotY2xhc3Mg
TW9ja1RhYmxlKGRpY3QpOgotICAgICIiIk1vY2sgdGFibGUuCi0KLSAgICBUaGlzIG1pbWljcyBt
b2RfcHl0aG9uIG1wX3RhYmxlLiBOb3RlIHRoYXQgb25seSB0aGUgbWV0aG9kcyB1c2VkIGJ5Ci0g
ICAgdGVzdHMgYXJlIG92ZXJyaWRkZW4uCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgY29weV9mcm9tPXt9KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShjb3B5X2Zyb20sIGRpY3Qp
OgotICAgICAgICAgICAgY29weV9mcm9tID0gY29weV9mcm9tLml0ZW1zKCkKLSAgICAgICAgZm9y
IGtleSwgdmFsdWUgaW4gY29weV9mcm9tOgotICAgICAgICAgICAgc2VsZi5fX3NldGl0ZW1fXyhr
ZXksIHZhbHVlKQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHJl
dHVybiBzdXBlcihNb2NrVGFibGUsIHNlbGYpLl9fZ2V0aXRlbV9fKGtleS5sb3dlcigpKQotCi0g
ICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgotICAgICAgICBzdXBlcihNb2Nr
VGFibGUsIHNlbGYpLl9fc2V0aXRlbV9fKGtleS5sb3dlcigpLCB2YWx1ZSkKLQotICAgIGRlZiBn
ZXQoc2VsZiwga2V5LCBkZWZfdmFsdWU9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBzdXBlcihNb2Nr
VGFibGUsIHNlbGYpLmdldChrZXkubG93ZXIoKSwgZGVmX3ZhbHVlKQotCi0KLWNsYXNzIE1vY2tS
ZXF1ZXN0KG9iamVjdCk6Ci0gICAgIiIiTW9jayByZXF1ZXN0LgotCi0gICAgVGhpcyBtaW1pY3Mg
bW9kX3B5dGhvbiByZXF1ZXN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHVy
aT1Ob25lLCBoZWFkZXJzX2luPXt9LCBjb25uZWN0aW9uPU5vbmUsIG1ldGhvZD0nR0VUJywKLSAg
ICAgICAgICAgICAgICAgcHJvdG9jb2w9J0hUVFAvMS4xJywgaXNfaHR0cHM9RmFsc2UpOgotICAg
ICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJndW1lbnRzOgotICAg
ICAgICAgICAgdXJpOiBVUkkgb2YgdGhlIHJlcXVlc3QuCi0gICAgICAgICAgICBoZWFkZXJzX2lu
OiBSZXF1ZXN0IGhlYWRlcnMuCi0gICAgICAgICAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uIHVz
ZWQgZm9yIHRoZSByZXF1ZXN0LgotICAgICAgICAgICAgbWV0aG9kOiByZXF1ZXN0IG1ldGhvZC4K
LSAgICAgICAgICAgIGlzX2h0dHBzOiBXaGV0aGVyIHRoaXMgcmVxdWVzdCBpcyBvdmVyIFNTTC4K
LQotICAgICAgICBTZWUgdGhlIGRvY3VtZW50IG9mIG1vZF9weXRob24gUmVxdWVzdCBmb3IgZGV0
YWlscy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYudXJpID0gdXJpCi0gICAgICAgIHNlbGYu
dW5wYXJzZWRfdXJpID0gdXJpCi0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IGNvbm5lY3Rpb24K
LSAgICAgICAgc2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHBy
b3RvY29sCi0gICAgICAgIHNlbGYuaGVhZGVyc19pbiA9IE1vY2tUYWJsZShoZWFkZXJzX2luKQot
ICAgICAgICAjIHNlbGYuaXNfaHR0cHNfIG5lZWRzIHRvIGJlIGFjY2Vzc2libGUgZnJvbSB0ZXN0
cy4gIFRvIGF2b2lkIG5hbWUKLSAgICAgICAgIyBjb25mbGljdCB3aXRoIHNlbGYuaXNfaHR0cHMo
KSwgaXQgaXMgbmFtZWQgYXMgc3VjaC4KLSAgICAgICAgc2VsZi5pc19odHRwc18gPSBpc19odHRw
cwotICAgICAgICBzZWxmLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUoc2VsZiwgVHJ1ZSkKLSAg
ICAgICAgc2VsZi53c19jbG9zZV9jb2RlID0gTm9uZQotICAgICAgICBzZWxmLndzX2Nsb3NlX3Jl
YXNvbiA9IE5vbmUKLSAgICAgICAgc2VsZi53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlC
STAwCi0gICAgICAgIHNlbGYud3NfZGVmbGF0ZSA9IEZhbHNlCi0KLSAgICBkZWYgaXNfaHR0cHMo
c2VsZik6Ci0gICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoaXMgcmVxdWVzdCBpcyBvdmVyIFNT
TC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuaXNfaHR0cHNfCi0KLQotY2xhc3MgTW9ja0Rpc3Bh
dGNoZXIob2JqZWN0KToKLSAgICAiIiJNb2NrIGZvciBkaXNwYXRjaC5EaXNwYXRjaGVyLiIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFr
ZV9jYWxsZWQgPSBGYWxzZQotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25u
X2NvbnRleHQpOgotICAgICAgICBzZWxmLmRvX2V4dHJhX2hhbmRzaGFrZV9jYWxsZWQgPSBUcnVl
Ci0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICBw
YXNzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbXV4X2Ns
aWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDRlN2ZjOTVkM2ZjNWIzZWUyZDllNTRm
MjA3ODJhZGRhZTIwNDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNjkwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiV2ViU29ja2V0IGNsaWVudCB1dGlsaXR5IGZvciB0ZXN0aW5nIG11eCBleHRl
bnNpb24uCi0KLVRoaXMgY29kZSBzaG91bGQgYmUgaW5kZXBlbmRlbnQgZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuIFNlZSB0aGUgY29tbWVudCBvZgotY2xpZW50X2Zvcl90ZXN0aW5nLnB5LgotCi1OT1RF
OiBUaGlzIGNvZGUgaXMgZmFyIGZyb20gcm9idXN0IGxpa2UgY2xpZW50X2Zvcl90ZXN0aW5nLnB5
LgotIiIiCi0KLQotCi1pbXBvcnQgUXVldWUKLWltcG9ydCBiYXNlNjQKLWltcG9ydCBjb2xsZWN0
aW9ucwotaW1wb3J0IGVtYWlsCi1pbXBvcnQgZW1haWwucGFyc2VyCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IG1hdGgKLWltcG9ydCBvcwotaW1wb3J0IHJhbmRvbQotaW1wb3J0IHNvY2tldAotaW1w
b3J0IHN0cnVjdAotaW1wb3J0IHRocmVhZGluZwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBv
cnQgdXRpbAotCi1mcm9tIHRlc3QgaW1wb3J0IGNsaWVudF9mb3JfdGVzdGluZwotCi0KLV9DT05U
Uk9MX0NIQU5ORUxfSUQgPSAwCi1fREVGQVVMVF9DSEFOTkVMX0lEID0gMQotCi1fTVVYX09QQ09E
RV9BRERfQ0hBTk5FTF9SRVFVRVNUID0gMAotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVTUE9O
U0UgPSAxCi1fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgPSAyCi1fTVVYX09QQ09ERV9EUk9QX0NI
QU5ORUwgPSAzCi1fTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UID0gNAotCi0KLWNsYXNzIF9D
b250cm9sQmxvY2s6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSk6Ci0gICAgICAgIHNl
bGYub3Bjb2RlID0gb3Bjb2RlCi0KLQotZGVmIF9wYXJzZV9oYW5kc2hha2VfcmVzcG9uc2UocmVz
cG9uc2UpOgotICAgIHN0YXR1c19saW5lLCBoZWFkZXJfbGluZXMgPSByZXNwb25zZS5zcGxpdCgn
XHJcbicsIDEpCi0KLSAgICB3b3JkcyA9IHN0YXR1c19saW5lLnNwbGl0KCcgJykKLSAgICBpZiBs
ZW4od29yZHMpIDwgMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIFN0YXR1cy1MaW5l
IHN5bnRheCAlcicgJSBzdGF0dXNfbGluZSkKLSAgICBbdmVyc2lvbiwgcmVzcG9uc2VfY29kZV0g
PSB3b3Jkc1s6Ml0KLSAgICBpZiB2ZXJzaW9uICE9ICdIVFRQLzEuMSc6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0JhZCByZXNwb25zZSB2ZXJzaW9uICVyJyAlIHZlcnNpb24pCi0KLSAgICBp
ZiByZXNwb25zZV9jb2RlICE9ICcxMDEnOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQg
cmVzcG9uc2UgY29kZSAlciAnICUgcmVzcG9uc2VfY29kZSkKLSAgICBoZWFkZXJzID0gZW1haWwu
cGFyc2VyLlBhcnNlcigpLnBhcnNlc3RyKGhlYWRlcl9saW5lcykKLSAgICByZXR1cm4gaGVhZGVy
cwotCi0KLWRlZiBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgbGVuZ3Ro
ID0gbGVuKGRhdGEpCi0gICAgcmVtYWluaW5nID0gbGVuZ3RoIC0gb2Zmc2V0Ci0KLSAgICBpZiBy
ZW1haW5pbmcgPD0gMDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBjaGFubmVsIGlkIGZv
dW5kJykKLQotICAgIGNoYW5uZWxfaWQgPSBvcmQoZGF0YVtvZmZzZXRdKQotICAgIGNoYW5uZWxf
aWRfbGVuZ3RoID0gMQotICAgIGlmIGNoYW5uZWxfaWQgJiAweGUwID09IDB4ZTA6Ci0gICAgICAg
IGlmIHJlbWFpbmluZyA8IDQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQg
Y2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygn
IUwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW29mZnNldDpvZmZz
ZXQrNF0pWzBdICYgMHgxZmZmZmZmZgotICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKLSAg
ICBlbGlmIGNoYW5uZWxfaWQgJiAweGMwID09IDB4YzA6Ci0gICAgICAgIGlmIHJlbWFpbmluZyA8
IDM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3Jt
YXQnKQotICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9pZCAmIDB4MWYpIDw8IDE2KSAr
Ci0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsx
Om9mZnNldCszXSlbMF0pCi0gICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMwotICAgIGVsaWYg
Y2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAgaWYgcmVtYWluaW5nIDwgMjoKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0g
ICAgICAgIGNoYW5uZWxfaWQgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIGRhdGFbb2Zmc2V0Om9mZnNl
dCsyXSlbMF0gJiAweDNmZmYKLSAgICAgICAgY2hhbm5lbF9pZF9sZW5ndGggPSAyCi0KLSAgICBy
ZXR1cm4gY2hhbm5lbF9pZCwgY2hhbm5lbF9pZF9sZW5ndGgKLQotCi1kZWYgX3BhcnNlX251bWJl
cihkYXRhLCBvZmZzZXQ9MCk6Ci0gICAgZmlyc3RfYnl0ZSA9IG9yZChkYXRhW29mZnNldF0pCi0g
ICAgaWYgKGZpcnN0X2J5dGUgJiAweDgwKSAhPSAwOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o
J1RoZSBNU0Igb2YgbnVtYmVyIGZpZWxkIG11c3QgYmUgdW5zZXQnKQotICAgIGZpcnN0X2J5dGUg
PSBmaXJzdF9ieXRlICYgMHg3ZgotICAgIGlmIGZpcnN0X2J5dGUgPT0gMTI3OgotICAgICAgICBp
ZiBvZmZzZXQgKyA5ID4gbGVuKGRhdGEpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJ
bnZhbGlkIG51bWJlcicpCi0gICAgICAgIHJldHVybiBzdHJ1Y3QudW5wYWNrKCchUScsIGRhdGFb
b2Zmc2V0KzE6b2Zmc2V0KzldKVswXSwgOQotICAgIGlmIGZpcnN0X2J5dGUgPT0gMTI2OgotICAg
ICAgICBpZiBvZmZzZXQgKyAzID4gbGVuKGRhdGEpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnZhbGlkIG51bWJlcicpCi0gICAgICAgIHJldHVybiBzdHJ1Y3QudW5wYWNrKCchSCcs
IGRhdGFbb2Zmc2V0KzE6b2Zmc2V0KzNdKVswXSwgMwotICAgIHJldHVybiBmaXJzdF9ieXRlLCAx
Ci0KLQotZGVmIF9wYXJzZV9zaXplX2FuZF9jb250ZW50cyhkYXRhLCBvZmZzZXQ9MCk6Ci0gICAg
c2l6ZSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0KQotICAgIHN0YXJ0X3Bv
c2l0aW9uID0gb2Zmc2V0ICsgYWR2YW5jZQotICAgIGVuZF9wb3NpdGlvbiA9IHN0YXJ0X3Bvc2l0
aW9uICsgc2l6ZQotICAgIGlmIGxlbihkYXRhKSA8IGVuZF9wb3NpdGlvbjoKLSAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdJbnZhbGlkIHNpemUgb2YgY29udHJvbCBibG9jayAoJWQgPCAlZCknICUg
KAotICAgICAgICAgICAgICAgIGxlbihkYXRhKSwgZW5kX3Bvc2l0aW9uKSkKLSAgICByZXR1cm4g
ZGF0YVtzdGFydF9wb3NpdGlvbjplbmRfcG9zaXRpb25dLCBzaXplICsgYWR2YW5jZQotCi0KLWRl
ZiBfcGFyc2VfY29udHJvbF9ibG9ja3MoZGF0YSk6Ci0gICAgYmxvY2tzID0gW10KLSAgICBsZW5n
dGggPSBsZW4oZGF0YSkKLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBwb3MgPCBsZW5ndGg6Ci0g
ICAgICAgIGZpcnN0X2J5dGUgPSBvcmQoZGF0YVtwb3NdKQotICAgICAgICBwb3MgKz0gMQotICAg
ICAgICBvcGNvZGUgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDB4NwotICAgICAgICBibG9jayA9IF9D
b250cm9sQmxvY2sob3Bjb2RlKQotCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgbW9y
ZSBvcGNvZGUKLSAgICAgICAgaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JF
U1BPTlNFOgotICAgICAgICAgICAgYmxvY2suZW5jb2RlID0gZmlyc3RfYnl0ZSAmIDMKLSAgICAg
ICAgICAgIGJsb2NrLnJlamVjdGVkID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0KLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0g
ICAgICAgICAgICBibG9jay5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9z
ICs9IGFkdmFuY2UKLQotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UsIGFkdmFuY2UgPSBf
cGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suZW5j
b2RlZF9oYW5kc2hha2UgPSBlbmNvZGVkX2hhbmRzaGFrZQotICAgICAgICAgICAgcG9zICs9IGFk
dmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYgb3Bj
b2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKLSAgICAgICAgICAgIGJsb2NrLm11eF9l
cnJvciA9IChmaXJzdF9ieXRlID4+IDQpICYgMQotCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBh
ZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2su
Y2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0KLSAg
ICAgICAgICAgIHJlYXNvbiwgYWR2YW5jZSA9IF9wYXJzZV9zaXplX2FuZF9jb250ZW50cyhkYXRh
LCBwb3MpCi0gICAgICAgICAgICBpZiBsZW4ocmVhc29uKSA9PSAwOgotICAgICAgICAgICAgICAg
IGJsb2NrLmRyb3BfY29kZSA9IE5vbmUKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX21lc3Nh
Z2UgPSAnJwotICAgICAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgotICAgICAgICAgICAg
ICAgIGJsb2NrLmRyb3BfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcmVhc29uWzoyXSlbMF0K
LSAgICAgICAgICAgICAgICBibG9jay5kcm9wX21lc3NhZ2UgPSByZWFzb25bMjpdCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBEcm9w
Q2hhbm5lbCcpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgYmxvY2tz
LmFwcGVuZChibG9jaykKLSAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19D
T05UUk9MOgotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVs
X2lkKGRhdGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lk
Ci0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgc2VuZF9xdW90YSwgYWR2
YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suc2VuZF9x
dW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAg
ICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09E
RV9ORVdfQ0hBTk5FTF9TTE9UOgotICAgICAgICAgICAgZmFsbGJhY2sgPSBmaXJzdF9ieXRlICYg
MQotICAgICAgICAgICAgc2xvdHMsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykK
LSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBzZW5kX3F1b3RhLCBhZHZh
bmNlID0gX3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5j
ZQotICAgICAgICAgICAgaWYgZmFsbGJhY2sgPT0gMSBhbmQgKHNsb3RzICE9IDAgb3Igc2VuZF9x
dW90YSAhPSAwKToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3Nsb3RzIGFuZCBz
ZW5kX3F1b3RhIG11c3QgYmUgemVybyBpZiBGIGJpdCAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdpcyBzZXQnKQotICAgICAgICAgICAgYmxvY2suZmFsbGJhY2sgPSBmYWxsYmFj
awotICAgICAgICAgICAgYmxvY2suc2xvdHMgPSBzbG90cwotICAgICAgICAgICAgYmxvY2suc2Vu
ZF9xdW90YSA9IHNlbmRfcXVvdGEKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1Vuc3VwcG9ydGVkIG11eCBvcGNvZGUgJWQgcmVjZWl2ZWQnICUgb3Bjb2RlKQotCi0gICAg
cmV0dXJuIGJsb2NrcwotCi0KLWRlZiBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCk6Ci0g
ICAgaWYgY2hhbm5lbF9pZCA8IDA6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwg
aWQgJWQgbXVzdCBub3QgYmUgbmVnYXRpdmUnICUgY2hhbm5lbF9pZCkKLQotICAgIGlmIGNoYW5u
ZWxfaWQgPCAyICoqIDc6Ci0gICAgICAgIHJldHVybiBjaHIoY2hhbm5lbF9pZCkKLSAgICBpZiBj
aGFubmVsX2lkIDwgMiAqKiAxNDoKLSAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCchSCcsIDB4
ODAwMCArIGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMjE6Ci0gICAgICAg
IGZpcnN0ID0gY2hyKDB4YzAgKyAoY2hhbm5lbF9pZCA+PiAxNikpCi0gICAgICAgIHJldHVybiBm
aXJzdCArIHN0cnVjdC5wYWNrKCchSCcsIGNoYW5uZWxfaWQgJiAweGZmZmYpCi0gICAgaWYgY2hh
bm5lbF9pZCA8IDIgKiogMjk6Ci0gICAgICAgIHJldHVybiBzdHJ1Y3QucGFjaygnIUwnLCAweGUw
MDAwMDAwICsgY2hhbm5lbF9pZCkKLQotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0NoYW5uZWwgaWQg
JWQgaXMgdG9vIGxhcmdlJyAlIGNoYW5uZWxfaWQpCi0KLQotZGVmIF9lbmNvZGVfbnVtYmVyKG51
bWJlcik6Ci0gICAgaWYgbnVtYmVyIDw9IDEyNToKLSAgICAgICAgcmV0dXJuIGNocihudW1iZXIp
Ci0gICAgZWxpZiBudW1iZXIgPCAoMSA8PCAxNik6Ci0gICAgICAgIHJldHVybiBjaHIoMHg3ZSkg
KyBzdHJ1Y3QucGFjaygnIUgnLCBudW1iZXIpCi0gICAgZWxpZiBudW1iZXIgPCAoMSA8PCA2Myk6
Ci0gICAgICAgIHJldHVybiBjaHIoMHg3ZikgKyBzdHJ1Y3QucGFjaygnIVEnLCBudW1iZXIpCi0g
ICAgZWxzZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIG51bWJlcicpCi0KLQot
ZGVmIF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdChjaGFubmVsX2lkLCBlbmNvZGVkX2hhbmRz
aGFrZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCk6Ci0gICAg
bGVuZ3RoID0gbGVuKGVuY29kZWRfaGFuZHNoYWtlKQotICAgIGhhbmRzaGFrZV9sZW5ndGggPSBf
ZW5jb2RlX251bWJlcihsZW5ndGgpCi0KLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0FE
RF9DSEFOTkVMX1JFUVVFU1QgPDwgNSkgfCBlbmNvZGluZwotICAgIHJldHVybiAoY2hyKGZpcnN0
X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAgIGhh
bmRzaGFrZV9sZW5ndGggKyBlbmNvZGVkX2hhbmRzaGFrZSkKLQotCi1kZWYgX2NyZWF0ZV9mbG93
X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpOgotICAgIGZpcnN0X2J5dGUg
PSAoX01VWF9PUENPREVfRkxPV19DT05UUk9MIDw8IDUpCi0gICAgcmV0dXJuIChjaHIoZmlyc3Rf
Ynl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgX2Vu
Y29kZV9udW1iZXIocmVwbGVuaXNoZWRfcXVvdGEpKQotCi0KLWNsYXNzIF9NdXhSZWFkZXJUaHJl
YWQodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgIiIiTXV4IHJlYWRlciB0aHJlYWQuCi0KLSAgICBS
ZWFkcyBmcmFtZXMgYW5kIHBhc3NlcyB0aGVtIHRvIHRoZSBtdXggY2xpZW50LiBUaGlzIHRocmVh
ZCBhY2Nlc3NlcwotICAgIHByaXZhdGUgZnVuY3Rpb25zL3ZhcmlhYmxlcyBvZiB0aGUgbXV4IGNs
aWVudC4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXgpOgotICAgICAgICB0
aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuc2V0RGFlbW9uKFRy
dWUpCi0gICAgICAgIHNlbGYuX211eCA9IG11eAotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3Rl
ZCA9IEZhbHNlCi0KLSAgICBkZWYgX3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgZmly
c3Rfb3Bjb2RlID0gTm9uZQotICAgICAgICBwZW5kaW5nX3BheWxvYWQgPSBbXQotICAgICAgICB3
aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICBmaW4sIHJzdjEsIHJz
djIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGggPSAoCi0gICAgICAgICAgICAgICAgY2xp
ZW50X2Zvcl90ZXN0aW5nLnJlYWRfZnJhbWVfaGVhZGVyKHNlbGYuX211eC5fc29ja2V0KSkKLQot
ICAgICAgICAgICAgaWYgbm90IGZpcnN0X29wY29kZToKLSAgICAgICAgICAgICAgICBpZiBvcGNv
ZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhUOgotICAgICAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGEgdGV4dCBtZXNzYWdlIG9uIHBoeXNpY2FsICcK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uJykKLSAgICAg
ICAgICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DT05USU5V
QVRJT046Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4g
aW50ZXJtZWRpYXRlIGZyYW1lIGJ1dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnZnJhZ21lbnRhdGlvbiB3YXMgbm90IHN0YXJ0ZWQnKQotICAgICAgICAgICAgICAgIGlm
IChvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlkgb3IKLSAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfUE9ORyBvcgot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9Q
T05HIG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX0NMT1NFKToKLSAgICAgICAgICAgICAgICAgICAgZmlyc3Rfb3Bjb2RlID0gb3Bjb2Rl
Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdSZWNlaXZlZCBhbiB1bmRlZmluZWQgb3Bjb2RlIGZyYW1lOiAlZCcgJQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlKQotCi0gICAgICAgICAgICBlbGlmIG9w
Y29kZSAhPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGEgbmV3IG9wY29kZSBiZWZvcmUgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVybWluYXRpbmcgZnJhZ21lbnRhdGlv
bicpCi0KLSAgICAgICAgICAgIHBheWxvYWQgPSBjbGllbnRfZm9yX3Rlc3RpbmcucmVjZWl2ZV9i
eXRlcygKLSAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3NvY2tldCwgcGF5bG9hZF9sZW5ndGgp
Ci0KLSAgICAgICAgICAgIGlmIHNlbGYuX211eC5faW5jb21pbmdfZnJhbWVfZmlsdGVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9tdXguX2luY29taW5nX2Zy
YW1lX2ZpbHRlci5maWx0ZXIocGF5bG9hZCkKLQotICAgICAgICAgICAgcGVuZGluZ19wYXlsb2Fk
LmFwcGVuZChwYXlsb2FkKQotCi0gICAgICAgICAgICBpZiBmaW46Ci0gICAgICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgIHJl
dHVybiBOb25lLCBOb25lCi0KLSAgICAgICAgbWVzc2FnZSA9ICcnLmpvaW4ocGVuZGluZ19wYXls
b2FkKQotICAgICAgICByZXR1cm4gZmlyc3Rfb3Bjb2RlLCBtZXNzYWdlCi0KLSAgICBkZWYgcmVx
dWVzdF9zdG9wKHNlbGYpOgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKLQot
ICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBz
ZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICAjIG9wY29kZSBpcyBPUENPREVf
QklOQVJZIG9yIGNvbnRyb2wgb3Bjb2RlcyB3aGVuIGEgbWVzc2FnZQotICAgICAgICAgICAgICAg
ICMgaXMgc3VjY2VzZnVsbHkgcmVjZWl2ZWQuCi0gICAgICAgICAgICAgICAgb3Bjb2RlLCBtZXNz
YWdlID0gc2VsZi5fcmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgICAgICAgICBpZiBub3Qgb3Bj
b2RlOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBpZiBvcGNv
ZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAg
ICAgIGNoYW5uZWxfaWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChtZXNzYWdlKQotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX2Rpc3BhdGNoX2ZyYW1lKGNoYW5uZWxfaWQsIG1l
c3NhZ2VbYWR2YW5jZTpdKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX211eC5fcHJvY2Vzc19jb250cm9sX21lc3NhZ2Uob3Bjb2RlLCBtZXNzYWdlKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4Ll9ub3RpZnlfcmVhZGVyX2Rv
bmUoKQotCi0KLWNsYXNzIF9Jbm5lckZyYW1lKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkKToKLSAgICAgICAgc2Vs
Zi5maW4gPSBmaW4KLSAgICAgICAgc2VsZi5yc3YxID0gcnN2MQotICAgICAgICBzZWxmLnJzdjIg
PSByc3YyCi0gICAgICAgIHNlbGYucnN2MyA9IHJzdjMKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBv
cGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0KLWNsYXNzIF9Mb2dpY2Fs
Q2hhbm5lbERhdGEob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNl
bGYucXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAgIHNlbGYuc2VuZF9xdW90YSA9IDAKLSAg
ICAgICAgc2VsZi5yZWNlaXZlX3F1b3RhID0gMAotCi0KLWNsYXNzIE11eENsaWVudChvYmplY3Qp
OgotICAgICIiIldlYlNvY2tldCBtdXggY2xpZW50LgotCi0gICAgTm90ZSB0aGF0IHRoaXMgY2xh
c3MgaXMgTk9UIHRocmVhZC1zYWZlLiBEbyBub3QgYWNjZXNzIGFuIGluc3RhbmNlIG9mIHRoaXMK
LSAgICBjbGFzcyBmcm9tIG11bHRpcGxlIHRocmVhZHMgYXQgYSBzYW1lIHRpbWUuCi0gICAgIiIi
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMg
PSBvcHRpb25zCi0gICAgICAgIHNlbGYuX29wdGlvbnMuZW5hYmxlX211eCgpCi0gICAgICAgIHNl
bGYuX3N0cmVhbSA9IE5vbmUKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9uZQotICAgICAgICBz
ZWxmLl9oYW5kc2hha2UgPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0SGFuZHNoYWtlKHNl
bGYuX29wdGlvbnMpCi0gICAgICAgIHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlciA9IE5vbmUK
LSAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotCi0gICAgICAgIHNl
bGYuX2lzX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gTm9uZQot
ICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0
aW9uKCkKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MgPSBbXQotICAgICAgICBzZWxmLl9j
aGFubmVsX3Nsb3RzID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKTsKLSAgICAgICAgc2Vs
Zi5fbG9naWNhbF9jaGFubmVscyA9IHt9Ci0gICAgICAgIHNlbGYuX3RpbWVvdXQgPSAyCi0gICAg
ICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQgPSBOb25lCi0gICAgICAg
IHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfbWVzc2FnZSA9IE5vbmUKLQotICAgIGRl
ZiBfcGFyc2VfaW5uZXJfZnJhbWUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIGlmIGxlbihkYXRhKSA9
PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGVuY2Fwc3VsYXRlZCBm
cmFtZSByZWNlaXZlZCcpCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9IG9yZChkYXRhWzBdKQotICAg
ICAgICBmaW4gPSAoZmlyc3RfYnl0ZSA8PCA3KSAmIDEKLSAgICAgICAgcnN2MSA9IChmaXJzdF9i
eXRlIDw8IDYpICYgMQotICAgICAgICByc3YyID0gKGZpcnN0X2J5dGUgPDwgNSkgJiAxCi0gICAg
ICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA8PCA0KSAmIDEKLSAgICAgICAgb3Bjb2RlID0gZmlyc3Rf
Ynl0ZSAmIDB4ZgotCi0gICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlcjoKLSAg
ICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVyKAot
ICAgICAgICAgICAgICAgIGRhdGFbMTpdKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcGF5
bG9hZCA9IGRhdGFbMTpdCi0KLSAgICAgICAgcmV0dXJuIF9Jbm5lckZyYW1lKGZpbiwgcnN2MSwg
cnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkKQotCi0gICAgZGVmIF9wcm9jZXNzX211eF9jb250
cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzOgotICAgICAgICAgICAgaWYgYmxvY2sub3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFO
TkVMX1JFU1BPTlNFOgotICAgICAgICAgICAgICAgICMgQWRkQ2hhbm5lbFJlc3BvbnNlIHdpbGwg
YmUgaGFuZGxlZCBpbiBhZGRfY2hhbm5lbCgpLgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICBlbGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6
Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2Fs
X2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90
IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBmbG93IGNvbnRyb2wgcmVjZWl2
ZWQgZm9yICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5l
bCBpZCAlZCcgJSBibG9jay5jaGFubmVsX2lkKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRdLnNlbmRfcXVvdGEgKz0gKAotICAgICAg
ICAgICAgICAgICAgICAgICAgYmxvY2suc2VuZF9xdW90YSkKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgIGVsaWYgYmxvY2sub3Bjb2RlID09IF9NVVhf
T1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY2hhbm5lbF9z
bG90cy5leHRlbmQoW2Jsb2NrLnNlbmRfcXVvdGFdICogYmxvY2suc2xvdHMpCi0KLSAgICBkZWYg
X2Rpc3BhdGNoX2ZyYW1lKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQpOgotICAgICAgICBpZiBj
aGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzICs9IF9wYXJzZV9jb250cm9sX2Jsb2Nr
cyhwYXlsb2FkKQotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfbXV4X2NvbnRyb2xfYmxv
Y2tzKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ubm90
aWZ5KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJv
bF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFj
cXVpcmUoKQotICAgICAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2
ZWQgbG9naWNhbCBmcmFtZSBvbiBjaGFubmVsIGlkICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICclZCwgd2hpY2ggaXMgbm90IGVzdGFibGlzaGVkJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQotCi0gICAgICAgICAgICAgICAg
aW5uZXJfZnJhbWUgPSBzZWxmLl9wYXJzZV9pbm5lcl9mcmFtZShwYXlsb2FkKQotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSAt
PSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBsZW4oaW5uZXJfZnJhbWUucGF5bG9hZCkpCi0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5yZWNl
aXZlX3F1b3RhIDwgMDoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUg
c2VydmVyIHZpb2xhdGVzIHF1b3RhIG9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjaGFubmVsIGlkICVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVh
c2UoKQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1
ZS5wdXQoaW5uZXJfZnJhbWUpCi0KLSAgICBkZWYgX3Byb2Nlc3NfY29udHJvbF9tZXNzYWdlKHNl
bGYsIG9wY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICMgUGluZy9Qb25nIGFyZSBub3Qgc3VwcG9y
dGVkLgotICAgICAgICBpZiBvcGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9T
RToKLSAgICAgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfbWVzc2FnZSA9
IG1lc3NhZ2UKLSAgICAgICAgICAgIGlmIHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZSgKLSAgICAgICAgICAgICAgICAgICAgY29kZT1jbGll
bnRfZm9yX3Rlc3RpbmcuU1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcmVhZF90aHJlYWQucmVxdWVzdF9zdG9wKCkKLQotICAgICAgICAgICAg
aWYgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LnNldCgpCi0KLSAgICBkZWYg
X25vdGlmeV9yZWFkZXJfZG9uZShzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdS
ZWFkIHRocmVhZCB0ZXJtaW5hdGVkLicpCi0gICAgICAgIHNlbGYuY2xvc2Vfc29ja2V0KCkKLQot
ICAgIGRlZiBfYXNzZXJ0X2NoYW5uZWxfc2xvdF9hdmFpbGFibGUoc2VsZik6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgICAgIGlmIGxlbihzZWxmLl9jaGFubmVsX3Nsb3RzKSA9PSAwOgotICAgICAgICAg
ICAgICAgICMgV2FpdCBvbmNlCi0gICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uLndhaXQodGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0g
ICAgICAgIGlmIGxlbihzZWxmLl9jaGFubmVsX3Nsb3RzKSA9PSAwOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBOZXdDaGFubmVsU2xvdCcpCi0KLSAgICBk
ZWYgX2Fzc2VydF9zZW5kX3F1b3RhX2F2YWlsYWJsZShzZWxmLCBjaGFubmVsX2lkKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNx
dWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnNlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLndhaXQodGltZW91dD1zZWxm
Ll90aW1lb3V0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ0ZhaWxlZCB0byByZWNlaXZlIEZsb3dDb250cm9sIGZvciBjaGFubmVsIGlkICVk
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKLQotICAgIGRlZiBj
b25uZWN0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBjbGllbnRfZm9yX3Rlc3Rpbmcu
Y29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeSgKLSAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQs
Ci0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zb2NrZXRfdGltZW91dCwKLSAgICAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV90bHMpCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtl
LmhhbmRzaGFrZShzZWxmLl9zb2NrZXQpCi0gICAgICAgIHNlbGYuX3N0cmVhbSA9IGNsaWVudF9m
b3JfdGVzdGluZy5XZWJTb2NrZXRTdHJlYW0oCi0gICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNl
bGYuX2hhbmRzaGFrZSkKLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW19ERUZBVUxU
X0NIQU5ORUxfSURdID0gX0xvZ2ljYWxDaGFubmVsRGF0YSgpCi0KLSAgICAgICAgc2VsZi5fcmVh
ZF90aHJlYWQgPSBfTXV4UmVhZGVyVGhyZWFkKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlYWRfdGhy
ZWFkLnN0YXJ0KCkKLQotICAgICAgICBzZWxmLl9hc3NlcnRfY2hhbm5lbF9zbG90X2F2YWlsYWJs
ZSgpCi0gICAgICAgIHNlbGYuX2Fzc2VydF9zZW5kX3F1b3RhX2F2YWlsYWJsZShfREVGQVVMVF9D
SEFOTkVMX0lEKQotCi0gICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9IFRydWUKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgZGVmIGFkZF9j
aGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIG9wdGlvbnMpOgotICAgICAgICBpZiBub3Qgc2VsZi5f
aXNfYWN0aXZlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdNdXggY2xpZW50IGlzIG5v
dCBhY3RpdmUnKQotCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFu
bmVsczoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2hhbm5lbCBpZCAlZCBhbHJlYWR5
IGV4aXN0cycgJSBjaGFubmVsX2lkKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbmRf
cXVvdGEgPSBzZWxmLl9jaGFubmVsX3Nsb3RzLnBvcGxlZnQoKQotICAgICAgICBleGNlcHQgSW5k
ZXhFcnJvciBhcyBlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBjaGFubmVsIHNs
b3RzOiAlcicgJSBlKQotCi0gICAgICAgICMgQ3JlYXRlIEFkZENoYW5uZWwgcmVxdWVzdAotICAg
ICAgICByZXF1ZXN0X2xpbmUgPSAnR0VUICVzIEhUVFAvMS4xXHJcbicgJSBvcHRpb25zLnJlc291
cmNlCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQg
PT0gY2xpZW50X2Zvcl90ZXN0aW5nLkRFRkFVTFRfUE9SVDoKLSAgICAgICAgICAgIGZpZWxkcy5h
cHBlbmQoJ0hvc3Q6ICVzXHJcbicgJSBvcHRpb25zLnNlcnZlcl9ob3N0Lmxvd2VyKCkpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCdIb3N0OiAlczolZFxyXG4nICUg
KG9wdGlvbnMuc2VydmVyX2hvc3QubG93ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCkpCi0gICAgICAgIGZpZWxk
cy5hcHBlbmQoJ09yaWdpbjogJXNcclxuJyAlIG9wdGlvbnMub3JpZ2luLmxvd2VyKCkpCi0gICAg
ICAgIGZpZWxkcy5hcHBlbmQoJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJykKLQotICAgICAgICBp
ZiBsZW4ob3B0aW9ucy5leHRlbnNpb25zKSA+IDA6Ci0gICAgICAgICAgICBmaWVsZHMuYXBwZW5k
KCdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6ICVzXHJcbicgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnLCAnLmpvaW4ob3B0aW9ucy5leHRlbnNpb25zKSkKLQotICAgICAgICBoYW5kc2hh
a2UgPSByZXF1ZXN0X2xpbmUgKyAnJy5qb2luKGZpZWxkcykgKyAnXHJcbicKLSAgICAgICAgYWRk
X2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdCgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQsIGhhbmRzaGFrZSkKLSAgICAgICAgcGF5bG9hZCA9IF9lbmNvZGVfY2hh
bm5lbF9pZChfQ09OVFJPTF9DSEFOTkVMX0lEKSArIGFkZF9jaGFubmVsX3JlcXVlc3QKLSAgICAg
ICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCi0KLSAgICAgICAgIyBXYWl0IEFk
ZENoYW5uZWxSZXNwb25zZQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRpbmcgQWRk
Q2hhbm5lbFJlc3BvbnNlIGZvciB0aGUgcmVxdWVzdC4uLicpCi0gICAgICAgIHJlc3BvbnNlID0g
Tm9uZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAg
IGZvciBibG9jayBpbiBzZWxmLl9jb250cm9sX2Jsb2NrczoKLSAgICAgICAgICAgICAgICAgICAg
aWYgYmxvY2sub3Bjb2RlICE9IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgotICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgaWYgYmxv
Y2suY2hhbm5lbF9pZCA9PSBjaGFubmVsX2lkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVz
cG9uc2UgPSBibG9jawotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9j
a3MucmVtb3ZlKHJlc3BvbnNlKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgICAgICBpZiByZXNwb25zZToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25kaXRpb24ud2FpdChzZWxmLl90aW1l
b3V0KQotICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQWRkQ2hhbm5lbFJlcXVlc3QgdGltZWQgb3V0JykK
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAjIFZhbGlkYXRlIEFkZENoYW5uZWxSZXNwb25zZQot
ICAgICAgICBpZiByZXNwb25zZS5yZWplY3RlZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignVGhlIHNlcnZlciByZWplY3RlZCBBZGRDaGFubmVsUmVxdWVzdCcpCi0KLSAgICAgICAgZmll
bGRzID0gX3BhcnNlX2hhbmRzaGFrZV9yZXNwb25zZShyZXNwb25zZS5lbmNvZGVkX2hhbmRzaGFr
ZSkKLQotICAgICAgICAjIFNob3VsZCB3ZSByZWplY3Qgd2hlbiBVcGdyYWRlLCBDb25uZWN0aW9u
LCBvciBTZWMtV2ViU29ja2V0LUFjY2VwdAotICAgICAgICAjIGhlYWRlcnMgZXhpc3Q/Ci0KLSAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0gPSBfTG9naWNhbENoYW5uZWxEYXRh
KCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3Rh
ID0gc2VuZF9xdW90YQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0xvZ2ljYWwgY2hhbm5lbCAl
ZCBlc3RhYmxpc2hlZCcgJSBjaGFubmVsX2lkKQotCi0gICAgZGVmIF9jaGVja19sb2dpY2FsX2No
YW5uZWxfaXNfb3BlbmVkKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICBpZiBub3Qgc2VsZi5f
aXNfYWN0aXZlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdNdXggY2xpZW50IGlzIG5v
dCBhY3RpdmUnKQotCi0gICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0xvZ2ljYWwgY2hhbm5lbCAl
ZCBpcyBub3QgZXN0YWJsaXNoZWQuJykKLQotICAgIGRlZiBkcm9wX2NoYW5uZWwoc2VsZiwgY2hh
bm5lbF9pZCk6Ci0gICAgICAgICMgVE9ETyhiYXNoaSk6IEltcGxlbWVudAotICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgc2VuZF9mbG93X2NvbnRyb2woc2VsZiwgY2hhbm5lbF9pZCwgcmVwbGVuaXNo
ZWRfcXVvdGEpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVk
KGNoYW5uZWxfaWQpCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
KGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKQotICAgICAgICBwYXlsb2FkID0gX2VuY29k
ZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsgZmxvd19jb250cm9sCi0gICAgICAg
ICMgUmVwbGVuaXNoIHJlY2VpdmUgcXVvdGEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2Vs
Zi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgKz0gKAotICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIHNl
bGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0gICAgZGVmIHNlbmRfbWVzc2FnZShz
ZWxmLCBjaGFubmVsX2lkLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZhbHNlKToKLSAgICAg
ICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0g
ICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIGZpcnN0X2J5dGUgPSAoZW5kIDw8IDcpIHwg
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGZpcnN0X2J5dGUgPSAoZW5kIDw8IDcpIHwgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9U
RVhUCi0gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKLSAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9p
ZF0uc2VuZF9xdW90YSA8IGxlbihtZXNzYWdlKToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ1NlbmQgcXVvdGEgdmlvbGF0aW9uOiAlZCA8ICVkJyAlICgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGxlbihtZXNzYWdlKSkpCi0KLSAgICAgICAgICAgIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSAtPSBsZW4obWVzc2Fn
ZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNf
Y29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVsX2lk
KGNoYW5uZWxfaWQpICsgY2hyKGZpcnN0X2J5dGUpICsgbWVzc2FnZQotICAgICAgICBzZWxmLl9z
dHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZShzZWxm
LCBjaGFubmVsX2lkLCBwYXlsb2FkLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBzZWxmLl9jaGVj
a19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxf
aWRdLnF1ZXVlLmdldCgKLSAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0g
ICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSBhcyBlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYgYmluYXJ5Ogot
ICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9CSU5BUlkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9IGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfVEVYVAotCi0gICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBvcGNvZGU6Ci0gICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgb3Bjb2RlIHJlY2VpdmVkICglciAh
PSAlciknICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRfb3Bjb2RlLCBp
bm5lcl9mcmFtZS5vcGNvZGUpKQotCi0gICAgICAgIGlmIGlubmVyX2ZyYW1lLnBheWxvYWQgIT0g
cGF5bG9hZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBwYXlsb2Fk
IHJlY2VpdmVkJykKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9
Tm9uZSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNhbF9jaGFubmVsX2lz
X29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIGlmIGNvZGUgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFzb24uZW5jb2RlKCd1
dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBib2R5ID0gJycKLQotICAgICAgICBm
aXJzdF9ieXRlID0gKDEgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFCi0g
ICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmly
c3RfYnl0ZSkgKyBib2R5Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2Fk
KQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNoYW5uZWxfaWQpOgotICAg
ICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0K
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKLSAgICAgICAgICAgICAgICB0aW1lb3V0PXNl
bGYuX3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSBhcyBlOgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBp
ZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCi0gICAgICAg
IGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NF
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2UgZnJh
bWUnKQotCi0gICAgZGVmIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZShzZWxmLCBjb2Rl
PU5vbmUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xv
c2VfZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9j
bG9zZShjb2RlLCByZWFzb24pCi0KLSAgICAjIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIG9ubHkg
YWZ0ZXIgY2FsbGluZwotICAgICMgc2VuZF9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlKCkuCi0g
ICAgZGVmIGFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3JlY2VpdmVfY2xvc2UoCi0gICAgICAg
IHNlbGYsIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVh
c29uPScnKToKLSAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC53
YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgaWYgKG5vdCBzZWxmLl9waHlzaWNh
bF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50LmlzU2V0KCkgb3IKLSAgICAgICAgICAgIG5vdCBzZWxm
Ll9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UpOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdEaWRuXCd0IHJlY2VpdmUgY2xvc2luZyBoYW5kc2hha2UnKQotCi0gICAgZGVm
IGNsb3NlX3NvY2tldChzZWxmKToKLSAgICAgICAgc2VsZi5faXNfYWN0aXZlID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxs
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDgwYTVkODdkODM4MjJiMDc4M2JlMTNlMzNkZGEzYWI2MWE1YWZlNDAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlJ1biBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5
LgotCi1UaGlzIHN1aXRlIGlzIGV4cGVjdGVkIHRvIGJlIHJ1biB1bmRlciBweXdlYnNvY2tldCdz
IHNyYyBkaXJlY3RvcnksIGkuZS4gdGhlCi1kaXJlY3RvcnkgY29udGFpbmluZyBtb2RfcHl3ZWJz
b2NrZXQsIHRlc3QsIGV0Yy4KLQotVG8gY2hhbmdlIGxvZ2dpbiBsZXZlbCwgcGxlYXNlIHNwZWNp
ZnkgLS1sb2ctbGV2ZWwgb3B0aW9uLgotICAgIHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5IC0tbG9n
LWxldmVsIGRlYnVnCi0KLVRvIHBhc3MgYW55IG9wdGlvbiB0byB1bml0dGVzdCBtb2R1bGUsIHBs
ZWFzZSBzcGVjaWZ5IG9wdGlvbnMgYWZ0ZXIgJy0tJy4gRm9yCi1leGFtcGxlLCBydW4gdGhpcyBm
b3IgbWFraW5nIHRoZSB0ZXN0IHJ1bm5lciB2ZXJib3NlLgotICAgIHB5dGhvbiB0ZXN0L3J1bl90
ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnIC0tIC12Ci0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0
IHVuaXR0ZXN0Ci0KLQotX1RFU1RfTU9EVUxFX1BBVFRFUk4gPSByZS5jb21waWxlKHInXih0ZXN0
Xy4rKVwucHkkJykKLQotCi1kZWYgX2xpc3RfdGVzdF9tb2R1bGVzKGRpcmVjdG9yeSk6Ci0gICAg
bW9kdWxlX25hbWVzID0gW10KLSAgICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihkaXJlY3Rv
cnkpOgotICAgICAgICBtYXRjaCA9IF9URVNUX01PRFVMRV9QQVRURVJOLnNlYXJjaChmaWxlbmFt
ZSkKLSAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICBtb2R1bGVfbmFtZXMuYXBwZW5kKG1h
dGNoLmdyb3VwKDEpKQotICAgIHJldHVybiBtb2R1bGVfbmFtZXMKLQotCi1kZWYgX3N1aXRlKCk6
Ci0gICAgbG9hZGVyID0gdW5pdHRlc3QuVGVzdExvYWRlcigpCi0gICAgcmV0dXJuIGxvYWRlci5s
b2FkVGVzdHNGcm9tTmFtZXMoCi0gICAgICAgICAgICBfbGlzdF90ZXN0X21vZHVsZXMob3MucGF0
aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLicpKSkKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0g
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywgdHlwZT0n
Y2hvaWNlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBkZWZhdWx0
PSd3YXJuaW5nJywKLSAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5m
bycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjcml0aWNhbCddKQotICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJn
cygpCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgICAgIGxldmVsPWxvZ2dpbmcu
Z2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpLAotICAgICAgICAgICAgZm9y
bWF0PSclKGxldmVsbmFtZSlzICUoYXNjdGltZSlzICcKLSAgICAgICAgICAgICAgICAgICAnJShm
aWxlbmFtZSlzOiUobGluZW5vKWRdICcKLSAgICAgICAgICAgICAgICAgICAnJShtZXNzYWdlKXMn
LAotICAgICAgICAgICAgZGF0ZWZtdD0nJUg6JU06JVMnKQotICAgIHVuaXR0ZXN0Lm1haW4oZGVm
YXVsdFRlc3Q9J19zdWl0ZScsIGFyZ3Y9W3N5cy5hcmd2WzBdXSArIGFyZ3MpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRoLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3NldF9zeXNfcGF0aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNj
NmRiOWVhNGQzODNhMzdjMjdhMDYwYTBlZjFjNTYzYmJiMWUxNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRoLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIElu
Yy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQ29u
ZmlndXJhdGlvbiBmb3IgdGVzdGluZy4KLQotVGVzdCBmaWxlcyBzaG91bGQgaW1wb3J0IHRoaXMg
bW9kdWxlIGJlZm9yZSBtb2RfcHl3ZWJzb2NrZXQuCi0iIiIKLQotCi1pbXBvcnQgb3MKLWltcG9y
dCBzeXMKLQotCi0jIEFkZCB0aGUgcGFyZW50IGRpcmVjdG9yeSB0byBzeXMucGF0aCB0byBlbmFi
bGUgaW1wb3J0aW5nIG1vZF9weXdlYnNvY2tldC4KLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRo
LmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuLicpKQotCi0KLSMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9kaXNwYXRjaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE2ZDYw
NTYwOWM4YWI3YjMwZDcyMDYzODMwZmY0MzRjMWM1NmRjMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDI4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMg
Q29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBkaXNwYXRjaCBtb2R1bGUuIiIiCi0KLQot
aW1wb3J0IG9zCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRh
dGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBkaXNwYXRjaAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGhhbmRzaGFrZQotZnJvbSB0ZXN0IGltcG9ydCBtb2NrCi0KLQotX1RFU1RfSEFORExFUlNfRElS
ID0gb3MucGF0aC5qb2luKAotICAgICAgICBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJ3Rl
c3RkYXRhJywgJ2hhbmRsZXJzJykKLQotX1RFU1RfSEFORExFUlNfU1VCX0RJUiA9IG9zLnBhdGgu
am9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInKQotCi0KLWNsYXNzIERpc3BhdGNoZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBkaXNwYXRjaCBtb2R1
bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9ub3JtYWxpemVfcGF0aChzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChvcy5wYXRoLmFic3BhdGgoJy9hL2InKS5yZXBsYWNlKCdcXCcsICcvJyks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCcvYS9i
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVw
bGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3Jt
YWxpemVfcGF0aCgnXFxhXFxiJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5h
YnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYy8uLi9iJykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCdhYmMnKS5yZXBsYWNlKCdcXCcsICcvJyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKCdhYmMnKSkK
LQotICAgIGRlZiB0ZXN0X2NvbnZlcnRlcihzZWxmKToKLSAgICAgICAgY29udmVydGVyID0gZGlz
cGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcignL2EvYicpCi0gICAgICAg
ICMgUHl0aG9uIGJ1aWx0IGJ5IE1TQyBpbnNlcnRzIGEgZHJpdmUgbmFtZSBsaWtlICdDOlwnIHZp
YSByZWFscGF0aCgpLgotICAgICAgICAjIENvbnZlcnRlciBHZW5lcmF0b3IgZXhwYW5kcyBwcm92
aWRlZCBwYXRoIHVzaW5nIHJlYWxwYXRoKCkgYW5kIHVzZXMKLSAgICAgICAgIyB0aGUgcGF0aCBp
bmNsdWRpbmcgYSBkcml2ZSBuYW1lIHRvIHZlcmlmeSB0aGUgcHJlZml4LgotICAgICAgICBvc19y
b290ID0gb3MucGF0aC5yZWFscGF0aCgnLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9o
JywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJy9jL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvYy9oX3dzaC5weScpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9o
LnB5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgY29udmVydGVyKCdhL2IvaF93
c2gucHknKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9f
cmVzb3VyY2VfY29udmVydGVyKCdhL2InKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcs
IGNvbnZlcnRlcihkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoCi0gICAgICAgICAgICAnYS9iL2hf
d3NoLnB5JykpKQotCi0gICAgICAgIGNvbnZlcnRlciA9IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90
b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2IvLy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoCi0g
ICAgICAgICAgICAnL2EvYi8uLi9iL2hfd3NoLnB5JykpKQotCi0gICAgICAgIGNvbnZlcnRlciA9
IGRpc3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoCi0gICAgICAgICAg
ICAnL2EvLi4vYS9iLy4uL2IvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252
ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBk
aXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKHInXGFcYicpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyByJ2FcYlxoX3dz
aC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290
ICsgcidhL2IvaF93c2gucHknKSkKLQotICAgIGRlZiB0ZXN0X2VudW1lcmF0ZV9oYW5kbGVyX2Zp
bGVfcGF0aHMoc2VsZik6Ci0gICAgICAgIHBhdGhzID0gbGlzdCgKLSAgICAgICAgICAgIGRpc3Bh
dGNoLl9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhzKF9URVNUX0hBTkRMRVJTX0RJUikpCi0g
ICAgICAgIHBhdGhzLnNvcnQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgsIGxlbihwYXRo
cykpCi0gICAgICAgIGV4cGVjdGVkX3BhdGhzID0gWwotICAgICAgICAgICAgICAgIG9zLnBhdGgu
am9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdhYm9ydF9ieV91c2VyX3dzaC5weScpLAotICAgICAg
ICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHkn
KSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnb3Jp
Z2luX2NoZWNrX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9I
QU5ETEVSU19ESVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhjZXB0
aW9uX2luX3RyYW5zZmVyX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihf
VEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnbm9uX2NhbGxhYmxlX3dzaC5weScpLAotICAgICAg
ICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAncGxhaW5f
d3NoLnB5JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJ
UiwgJ3N1YicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3cm9uZ19oYW5kc2hha2Vf
c2lnX3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVS
U19ESVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfdHJhbnNm
ZXJfc2lnX3dzaC5weScpLAotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgZm9yIGV4cGVjdGVk
LCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX3BhdGhzLCBwYXRocyk6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgdGVzdF9zb3VyY2VfaGFu
ZGxlcl9maWxlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAg
IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmls
ZSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgZGlzcGF0Y2gu
RGlzcGF0Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnZGVmJykK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRj
aEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUsICcxLzAnKQotICAgICAg
ICBzZWxmLmZhaWxVbmxlc3MoZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUoCi0gICAgICAg
ICAgICAgICAgJ2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KTpwYXNz
XG4nCi0gICAgICAgICAgICAgICAgJ2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6cGFzc1xuJykpCi0KLSAgICBkZWYgdGVzdF9zb3VyY2Vfd2FybmluZ3Moc2VsZik6Ci0gICAg
ICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwg
Tm9uZSkKLSAgICAgICAgd2FybmluZ3MgPSBkaXNwYXRjaGVyLnNvdXJjZV93YXJuaW5ncygpCi0g
ICAgICAgIHdhcm5pbmdzLnNvcnQoKQotICAgICAgICBleHBlY3RlZF93YXJuaW5ncyA9IFsKLSAg
ICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAgICAg
ICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ2JsYW5rX3dzaC5weScpKSArCi0gICAgICAg
ICAgICAgICAgICc6IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIGlzIG5vdCBkZWZpbmVk
LicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxwYXRoKG9zLnBhdGguam9pbigKLSAg
ICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9jYWxsYWJs
ZV93c2gucHknKSkgKwotICAgICAgICAgICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZSBpcyBub3QgY2FsbGFibGUuJyksCi0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVh
bHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19E
SVIsICdzdWInLCAnd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHknKSkgKwotICAgICAgICAgICAg
ICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4nKSwK
LSAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0gICAgICAg
ICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICd3cm9uZ190cmFuc2Zlcl9z
aWdfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhIGlzIG5vdCBkZWZpbmVkLicpLAotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoNCwgbGVuKHdhcm5pbmdzKSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1
YWwgaW4gemlwKGV4cGVjdGVkX3dhcm5pbmdzLCB3YXJuaW5ncyk6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhleHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVmIHRlc3RfZG9fZXh0cmFf
aGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hl
cihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tS
ZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwot
ICAgICAgICByZXF1ZXN0LndzX29yaWdpbiA9ICdodHRwOi8vZXhhbXBsZS5jb20nCi0gICAgICAg
IGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpICAjIE11c3Qgbm90IHJhaXNl
IGV4Y2VwdGlvbi4KLQotICAgICAgICByZXF1ZXN0LndzX29yaWdpbiA9ICdodHRwOi8vYmFkLmV4
YW1wbGUuY29tJwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVyLmRvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KQotICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0
Y2ggSGFuZHNoYWtlRXhjZXB0aW9uIHdpdGggNDAzIHN0YXR1cycpCi0gICAgICAgIGV4Y2VwdCBo
YW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyg0MDMsIGUuc3RhdHVzKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0g
ICAgICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcicgJSBlKQotCi0g
ICAgZGVmIHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRj
aGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAg
ICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNv
dXJjZSA9ICcvYWJvcnRfYnlfdXNlcicKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNo
YWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRp
c3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlLCByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfdHJh
bnNmZXJfZGF0YShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNo
ZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1v
Y2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAg
cmVxdWVzdC53c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICByZXF1ZXN0Lndz
X3Byb3RvY29sID0gJ3AxJwotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVz
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxs
ZWQgZm9yIC9vcmlnaW5fY2hlY2ssIHAxJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZm
XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rp
b249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9ICcvc3ViL3BsYWluJwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAg
ICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4sIE5vbmUn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVx
dWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgw
MCcpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/JwotICAgICAg
ICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVy
X2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5w
eSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4/LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICdceGZmXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0
KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53
c19yZXNvdXJjZSA9ICcvc3ViL3BsYWluP3E9dicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2Nv
bCA9IE5vbmUKLSAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3Vi
L3BsYWluP3E9diwgTm9uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEo
KSkKLQotICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfbm9faGFuZGxlcihzZWxmKToKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBO
b25lKQotICAgICAgICBmb3IgcmVzb3VyY2UgaW4gWycvYmxhbmsnLCAnL3N1Yi9ub25fY2FsbGFi
bGUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICcvc3ViL25vX3dzaF9hdF90aGVfZW5kJywg
Jy9kb2VzL25vdC9leGlzdCddOgotICAgICAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVl
c3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nf
cmVzb3VyY2UgPSByZXNvdXJjZQotICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdw
MicKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVy
X2RhdGEocmVxdWVzdCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICAgICAg
ZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5kKCdObyBoYW5kbGVyJykgIT0gLTEpCi0gICAgICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0KLSAg
ICBkZWYgdGVzdF90cmFuc2Zlcl9kYXRhX2hhbmRsZXJfZXhjZXB0aW9uKHNlbGYpOgotICAgICAg
ICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5v
bmUpCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5N
b2NrQ29ubignJykpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL3N1Yi9leGNlcHRp
b25faW5fdHJhbnNmZXInCi0gICAgICAgIHJlcXVlc3Qud3NfcHJvdG9jb2wgPSAncDMnCi0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQot
ICAgICAgICAgICAgc2VsZi5mYWlsKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5kKCdJbnRlbnRpb25hbCcpICE9
IC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGV4Y2VwdGlvbjog
JXMnICUgZSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0X3RyYW5zZmVyX2RhdGEoc2VsZik6Ci0gICAg
ICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwg
Tm9uZSkKLSAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoKQotICAgICAgICByZXF1
ZXN0LndzX3Jlc291cmNlID0gJy9hYm9ydF9ieV91c2VyJwotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhLCByZXF1ZXN0KQotCi0gICAgZGVmIHRl
c3Rfc2Nhbl9kaXIoc2VsZik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9U
RVNUX0hBTkRMRVJTX0RJUiwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBsZW4o
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9vcmln
aW5fY2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxV
bmxlc3MoCi0gICAgICAgICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3Au
X2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIvcGxhaW4n
IGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9zdWJfZGly
KHNlbGYpOgotICAgICAgICBkaXNwID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVS
U19ESVIsIF9URVNUX0hBTkRMRVJTX1NVQl9ESVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MiwgbGVuKGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9v
cmlnaW5fY2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZh
aWxVbmxlc3MoCi0gICAgICAgICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRp
c3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIvcGxh
aW4nIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9zdWJf
ZGlyX2FzX3Jvb3Qoc2VsZik6Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9U
RVNUX0hBTkRMRVJTX1NVQl9ESVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9URVNUX0hBTkRMRVJTX1NVQl9ESVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVu
KGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKSkKLSAgICAgICAgc2VsZi5mYWlsSWYoJy9vcmlnaW5f
Y2hlY2snIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxJZign
L3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVfbWFwKQot
ICAgICAgICBzZWxmLmZhaWxJZignL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3BsYWlu
JyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLQotICAgIGRlZiB0ZXN0X3NjYW5fZGlyX211
c3RfdW5kZXJfcm9vdChzZWxmKToKLSAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hlcignYS9iJywg
J2EvYi9jJykgICMgT0sKLSAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hlcignYS9iLy8vJywgJ2Ev
YicpICAjIE9LCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhj
ZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyLCAn
YS9iL2MnLCAnYS9iJykKLQotICAgIGRlZiB0ZXN0X3Jlc291cmNlX3BhdGhfYWxpYXMoc2VsZik6
Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwg
Tm9uZSkKLSAgICAgICAgZGlzcC5hZGRfcmVzb3VyY2VfcGF0aF9hbGlhcygnLycsICcvb3JpZ2lu
X2NoZWNrJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1LCBsZW4oZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9vcmlnaW5fY2hlY2snIGluIGRp
c3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoCi0gICAgICAg
ICAgICAnL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXInIGluIGRpc3AuX2hhbmRsZXJfc3VpdGVf
bWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy9zdWIvcGxhaW4nIGluIGRpc3AuX2hhbmRs
ZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmZhaWxVbmxlc3MoJy8nIGluIGRpc3AuX2hhbmRs
ZXJfc3VpdGVfbWFwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhkaXNwYXRjaC5EaXNwYXRj
aEV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcC5hZGRfcmVzb3VyY2Vf
cGF0aF9hbGlhcywgJy9hbGlhcycsICcvbm90LWV4aXN0JykKLQotCi1pZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZW5kdG9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9l
bmR0b2VuZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY4MGVjMmViYTY3MjRh
NzQ5MDViZTRmMTU4MWYzNmE3YTdmNzcxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDc1MyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIkVuZC10by1lbmQgdGVzdHMgZm9yIHB5d2Vic29ja2V0LiBUZXN0cyBzdGFu
ZGFsb25lLnB5IGJ5IGRlZmF1bHQuIFlvdQotY2FuIGFsc28gdGVzdCBtb2RfcHl3ZWJzb2NrZXQg
aG9zdGVkIG9uIGFuIEFwYWNoZSBzZXJ2ZXIgYnkgc2V0dGluZwotX3VzZV9leHRlcm5hbF9zZXJ2
ZXIgdG8gVHJ1ZSBhbmQgbW9kaWZ5aW5nIF9leHRlcm5hbF9zZXJ2ZXJfcG9ydCB0byBwb2ludCB0
bwotdGhlIHBvcnQgb24gd2hpY2ggdGhlIEFwYWNoZSBzZXJ2ZXIgaXMgcnVubmluZy4KLSIiIgot
Ci0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzaWduYWwKLWltcG9ydCBzb2Nr
ZXQKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIHRlc3QgaW1wb3J0IGNsaWVudF9mb3Jf
dGVzdGluZwotZnJvbSB0ZXN0IGltcG9ydCBtdXhfY2xpZW50X2Zvcl90ZXN0aW5nCi0KLQotIyBT
cGVjaWFsIG1lc3NhZ2UgdGhhdCB0ZWxscyB0aGUgZWNobyBzZXJ2ZXIgdG8gc3RhcnQgY2xvc2lu
ZyBoYW5kc2hha2UKLV9HT09EQllFX01FU1NBR0UgPSAnR29vZGJ5ZScKLQotX1NFUlZFUl9XQVJN
VVBfSU5fU0VDID0gMC4yCi0KLSMgSWYgeW91IHdhbnQgdG8gdXNlIGV4dGVybmFsIHNlcnZlciB0
byBydW4gZW5kIHRvIGVuZCB0ZXN0cywgc2V0IGZvbGxvd2luZwotIyBwYXJhbWV0ZXJzIGNvcnJl
Y3RseS4KLV91c2VfZXh0ZXJuYWxfc2VydmVyID0gRmFsc2UKLV9leHRlcm5hbF9zZXJ2ZXJfcG9y
dCA9IDAKLQotCi0jIFRlc3QgYm9keSBmdW5jdGlvbnMKLWRlZiBfZWNob19jaGVja19wcm9jZWR1
cmUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNz
YWdlKCd0ZXN0JykKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ3Rlc3QnKQotICAgIGNsaWVu
dC5zZW5kX21lc3NhZ2UoJ2hlbGxvd29ybGQnKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgn
aGVsbG93b3JsZCcpCi0KLSAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgY2xpZW50LmFzc2Vy
dF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQo
KQotCi0KLWRlZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9iaW5hcnkoY2xpZW50KToKLSAg
ICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCdiaW5hcnknLCBi
aW5hcnk9VHJ1ZSkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2JpbmFyeScsIGJpbmFyeT1U
cnVlKQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ1x4MDBceDgwXHhmZVx4ZmZceDAwXHg4MCcs
IGJpbmFyeT1UcnVlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgnXHgwMFx4ODBceGZlXHhm
Zlx4MDBceDgwJywgYmluYXJ5PVRydWUpCi0KLSAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAg
Y2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVj
dGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29kYnll
KGNsaWVudCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2Fn
ZSgndGVzdCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCd0ZXN0JykKLQotICAgIGNsaWVu
dC5zZW5kX21lc3NhZ2UoX0dPT0RCWUVfTUVTU0FHRSkKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2Vp
dmUoX0dPT0RCWUVfTUVTU0FHRSkKLQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgp
Ci0gICAgY2xpZW50LnNlbmRfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9u
X2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3Jl
YXNvbihjbGllbnQsIGNvZGUsIHJlYXNvbik6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAg
Y2xpZW50LnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2
ZV9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xv
c2VkKCkKLQotCi1kZWYgX3VubWFza2VkX2ZyYW1lX2NoZWNrX3Byb2NlZHVyZShjbGllbnQpOgot
ICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnLCBt
YXNrPUZhbHNlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZShjbGllbnRfZm9yX3Rl
c3RpbmcuU1RBVFVTX1BST1RPQ09MX0VSUk9SLCAnJykKLQotICAgIGNsaWVudC5hc3NlcnRfY29u
bmVjdGlvbl9jbG9zZWQoKQotCi0KLWRlZiBfbXV4X2VjaG9fY2hlY2tfcHJvY2VkdXJlKG11eF9j
bGllbnQpOgotICAgIG11eF9jbGllbnQuY29ubmVjdCgpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Zs
b3dfY29udHJvbCgxLCAxMDI0KQotCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMgPSBjbGll
bnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9ucygpCi0gICAgbG9naWNhbF9jaGFubmVsX29wdGlv
bnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JwotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25z
LnNlcnZlcl9wb3J0ID0gODAKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5vcmlnaW4gPSAn
aHR0cDovL2xvY2FsaG9zdCcKLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5yZXNvdXJjZSA9
ICcvZWNobycKLSAgICBtdXhfY2xpZW50LmFkZF9jaGFubmVsKDIsIGxvZ2ljYWxfY2hhbm5lbF9v
cHRpb25zKQotICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMiwgMTAyNCkKLQotICAg
IG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDIsICd0ZXN0JykKLSAgICBtdXhfY2xpZW50LmFzc2Vy
dF9yZWNlaXZlKDIsICd0ZXN0JykKLQotICAgIG11eF9jbGllbnQuYWRkX2NoYW5uZWwoMywgbG9n
aWNhbF9jaGFubmVsX29wdGlvbnMpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Zsb3dfY29udHJvbCgz
LCAxMDI0KQotCi0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMiwgJ2hlbGxvJykKLSAgICBt
dXhfY2xpZW50LnNlbmRfbWVzc2FnZSgzLCAnd29ybGQnKQotICAgIG11eF9jbGllbnQuYXNzZXJ0
X3JlY2VpdmUoMiwgJ2hlbGxvJykKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDMsICd3
b3JsZCcpCi0KLSAgICAjIERvbid0IHNlbmQgY2xvc2UgbWVzc2FnZSBvbiBjaGFubmVsIGlkIDEg
c28gdGhhdCBzZXJ2ZXItaW5pdGlhdGVkCi0gICAgIyBjbG9zaW5nIGhhbmRzaGFrZSB3b24ndCBv
Y2N1ci4KLSAgICBtdXhfY2xpZW50LnNlbmRfY2xvc2UoMikKLSAgICBtdXhfY2xpZW50LnNlbmRf
Y2xvc2UoMykKLSAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKDIpCi0gICAgbXV4
X2NsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgzKQotCi0gICAgbXV4X2NsaWVudC5zZW5kX3Bo
eXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2UoKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3BoeXNpY2Fs
X2Nvbm5lY3Rpb25fcmVjZWl2ZV9jbG9zZSgpCi0KLQotY2xhc3MgRW5kVG9FbmRUZXN0QmFzZSh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQmFzZSBjbGFzcyBmb3IgZW5kLXRvLWVuZCB0ZXN0
cyB0aGF0IGxhdW5jaCBweXdlYnNvY2tldCBzdGFuZGFsb25lCi0gICAgc2VydmVyIGFzIGEgc2Vw
YXJhdGUgcHJvY2VzcywgY29ubmVjdCB0byBpdCB1c2luZyB0aGUgY2xpZW50X2Zvcl90ZXN0aW5n
Ci0gICAgbW9kdWxlLCBhbmQgY2hlY2sgaWYgdGhlIHNlcnZlciBiZWhhdmVzIGNvcnJlY3RseSBi
eSBleGNoYW5naW5nIG9wZW5pbmcKLSAgICBoYW5kc2hha2UgYW5kIGZyYW1lcyBvdmVyIGEgVENQ
IGNvbm5lY3Rpb24uCi0gICAgIiIiCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNl
bGYuc2VydmVyX3N0ZGVyciA9IE5vbmUKLSAgICAgICAgc2VsZi50b3BfZGlyID0gb3MucGF0aC5q
b2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLi4nKQotICAgICAgICBvcy5wdXRlbnYo
J1BZVEhPTlBBVEgnLCBvcy5wYXRoLnBhdGhzZXAuam9pbihzeXMucGF0aCkpCi0gICAgICAgIHNl
bGYuc3RhbmRhbG9uZV9jb21tYW5kID0gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgc2VsZi50
b3BfZGlyLCAnbW9kX3B5d2Vic29ja2V0JywgJ3N0YW5kYWxvbmUucHknKQotICAgICAgICBzZWxm
LmRvY3VtZW50X3Jvb3QgPSBvcy5wYXRoLmpvaW4oc2VsZi50b3BfZGlyLCAnZXhhbXBsZScpCi0g
ICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgcy5iaW5kKCgnbG9jYWxob3N0Jywg
MCkpCi0gICAgICAgIChfLCBzZWxmLnRlc3RfcG9ydCkgPSBzLmdldHNvY2tuYW1lKCkKLSAgICAg
ICAgcy5jbG9zZSgpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IGNsaWVudF9mb3JfdGVzdGlu
Zy5DbGllbnRPcHRpb25zKCkKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCA9ICds
b2NhbGhvc3QnCi0gICAgICAgIHNlbGYuX29wdGlvbnMub3JpZ2luID0gJ2h0dHA6Ly9sb2NhbGhv
c3QnCi0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2VjaG8nCi0KLSAgICAgICAg
IyBUT0RPKHRveW9zaGltKTogRWxpbWluYXRlIGxhdW5jaGluZyBhIHN0YW5kYWxvbmUgc2VydmVy
IG9uIHVzaW5nCi0gICAgICAgICMgZXh0ZXJuYWwgc2VydmVyLgotCi0gICAgICAgIGlmIF91c2Vf
ZXh0ZXJuYWxfc2VydmVyOgotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9
IF9leHRlcm5hbF9zZXJ2ZXJfcG9ydAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IHNlbGYudGVzdF9wb3J0Ci0KLSAgICAjIFRPRE8odHlvc2hp
bm8pOiBVc2UgdGVhckRvd24gdG8ga2lsbCB0aGUgc2VydmVyLgotCi0gICAgZGVmIF9ydW5fcHl0
aG9uX2NvbW1hbmQoc2VsZiwgY29tbWFuZGxpbmUsIHN0ZG91dD1Ob25lLCBzdGRlcnI9Tm9uZSk6
Ci0gICAgICAgIHJldHVybiBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZV0gKyBjb21t
YW5kbGluZSwgY2xvc2VfZmRzPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZG91dD1zdGRvdXQsIHN0ZGVycj1zdGRlcnIpCi0KLSAgICBkZWYgX3J1bl9zZXJ2ZXIoc2Vs
Zik6Ci0gICAgICAgIGFyZ3MgPSBbc2VsZi5zdGFuZGFsb25lX2NvbW1hbmQsCi0gICAgICAgICAg
ICAgICAgJy1IJywgJ2xvY2FsaG9zdCcsCi0gICAgICAgICAgICAgICAgJy1WJywgJ2xvY2FsaG9z
dCcsCi0gICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYudGVzdF9wb3J0KSwKLSAgICAgICAg
ICAgICAgICAnLVAnLCBzdHIoc2VsZi50ZXN0X3BvcnQpLAotICAgICAgICAgICAgICAgICctZCcs
IHNlbGYuZG9jdW1lbnRfcm9vdF0KLQotICAgICAgICAjIEluaGVyaXQgdGhlIGxldmVsIHNldCB0
byB0aGUgcm9vdCBsb2dnZXIgYnkgdGVzdCBydW5uZXIuCi0gICAgICAgIHJvb3RfbG9nZ2VyID0g
bG9nZ2luZy5nZXRMb2dnZXIoKQotICAgICAgICBsb2dfbGV2ZWwgPSByb290X2xvZ2dlci5nZXRF
ZmZlY3RpdmVMZXZlbCgpCi0gICAgICAgIGlmIGxvZ19sZXZlbCAhPSBsb2dnaW5nLk5PVFNFVDoK
LSAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctLWxvZy1sZXZlbCcpCi0gICAgICAgICAgICBhcmdz
LmFwcGVuZChsb2dnaW5nLmdldExldmVsTmFtZShsb2dfbGV2ZWwpLmxvd2VyKCkpCi0KLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3J1bl9weXRob25fY29tbWFuZChhcmdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zZWxmLnNlcnZlcl9zdGRlcnIpCi0KLSAg
ICBkZWYgX2tpbGxfcHJvY2VzcyhzZWxmLCBwaWQpOgotICAgICAgICBpZiBzeXMucGxhdGZvcm0g
aW4gKCd3aW4zMicsICdjeWd3aW4nKToKLSAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbCgKLSAg
ICAgICAgICAgICAgICAoJ3Rhc2traWxsLmV4ZScsICcvZicsICcvcGlkJywgc3RyKHBpZCkpLCBj
bG9zZV9mZHM9VHJ1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9zLmtpbGwocGlkLCBz
aWduYWwuU0lHS0lMTCkKLQotCi1jbGFzcyBFbmRUb0VuZEh5QmlUZXN0KEVuZFRvRW5kVGVzdEJh
c2UpOgotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgRW5kVG9FbmRUZXN0QmFzZS5zZXRV
cChzZWxmKQotCi0gICAgZGVmIF9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKHNlbGYsIHRl
c3RfZnVuY3Rpb24sIG9wdGlvbnMpOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVy
KCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogYWRkIHNvbWUg
bG9naWMgdG8gcG9sbCB0aGUgc2VydmVyIHVudGlsIGl0Ci0gICAgICAgICAgICAjIGJlY29tZXMg
cmVhZHkKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0g
ICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChvcHRp
b25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24oY2xp
ZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vf
c29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2Vz
cyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9uKToK
LSAgICAgICAgc2VsZi5fcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9ucyh0ZXN0X2Z1bmN0aW9u
LCBzZWxmLl9vcHRpb25zKQotCi0gICAgZGVmIF9ydW5fZGVmbGF0ZV9mcmFtZV90ZXN0KHNlbGYs
IHRlc3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMp
Ci0KLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZW5hYmxlX2RlZmxhdGVfZnJhbWUoKQotICAg
ICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5f
b3B0aW9ucykKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9u
KGNsaWVudCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNs
b3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3By
b2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0
KAotICAgICAgICAgICAgc2VsZiwgb2ZmZXIsIHJlc3BvbnNlX2NoZWNrZXIsIHRlc3RfZnVuY3Rp
b24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucyArPSBvZmZlcgotICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5jaGVja19wZXJtZXNzYWdlX2RlZmxhdGUgPSByZXNwb25zZV9jaGVja2VyCi0gICAg
ICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChzZWxmLl9v
cHRpb25zKQotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNvbm5l
Y3QoKQotCi0gICAgICAgICAgICAgICAgaWYgdGVzdF9mdW5jdGlvbiBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCi0KLSAgICAgICAgICAgICAg
ICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKLSAgICAgICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBf
cnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbiwg
Y29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVhc29uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAg
ICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChzZWxmLl9v
cHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24o
Y2xpZW50LCBjb2RlLCByZWFzb24pCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
ICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl9odHRwX2ZhbGxi
YWNrX3Rlc3Qoc2VsZiwgb3B0aW9ucywgc3RhdHVzKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5f
cnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZF
Ul9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3Rp
bmcuY3JlYXRlX2NsaWVudChvcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIGNsaWVudC5jb25uZWN0KCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0NvdWxkIG5v
dCBjYXRjaCBIdHRwU3RhdHVzRXhjZXB0aW9uJykKLSAgICAgICAgICAgIGV4Y2VwdCBjbGllbnRf
Zm9yX3Rlc3RpbmcuSHR0cFN0YXR1c0V4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQg
ZXhjZXB0aW9uJykKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY2xpZW50
LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9raWxs
X3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX211eF90ZXN0KHNlbGYsIHRlc3Rf
ZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAg
ICAgICAgICAgIGNsaWVudCA9IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcuTXV4Q2xpZW50KHNlbGYu
X29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlv
bihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5j
bG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9w
cm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgotICAgICAgICBz
ZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hv
X2JpbmFyeShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2Vk
dXJlX3dpdGhfYmluYXJ5KQotCi0gICAgZGVmIHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2Ri
eWUpCi0KLSAgICBkZWYgdGVzdF91bm1hc2tlZF9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5f
cnVuX3Rlc3QoX3VubWFza2VkX2ZyYW1lX2NoZWNrX3Byb2NlZHVyZSkKLQotICAgIGRlZiB0ZXN0
X2VjaG9fZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJh
bWVfdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX2RlZmxh
dGVfZnJhbWVfc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9m
cmFtZV90ZXN0KAotICAgICAgICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5
ZSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgotICAgICAg
ICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFt
cGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4
NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRf
ZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAg
ICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAg
ICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9i
aW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAg
ICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQot
ICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYg
cmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAg
ICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsn
cGVybWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwK
LSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJt
ZXNzYWdlX2RlZmxhdGVfdHdvX2ZyYW1lcyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rp
b24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMu
Ci0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAg
ICAgICdceGYyXHg0OFx4Y2QnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIGVuZD1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRh
KAotICAgICAgICAgICAgICAgICAgICAnXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAg
ICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCkKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4
ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9
Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3Yx
PTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVu
dC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIo
cGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRl
ZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
W10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJt
ZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0
ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAg
dGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3
b19tZXNzYWdlcyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAg
ICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBj
bGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4
Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0
aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAg
ICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHgw
MFx4MTFceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5P
UENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xp
ZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAn
XHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29k
ZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJz
djE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgK
LSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKLSAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAg
ICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0g
ICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiBy
ZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAg
ICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydw
ZXJtZXNzYWdlLWRlZmxhdGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAot
ICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1l
c3NhZ2VfZGVmbGF0ZV90d29fbXNnc19zZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToK
LSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0
aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAw
JywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAot
ICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5z
ZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCi0g
ICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAg
ICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0
X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4
YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAg
IGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAg
ICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAg
ICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAg
IGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2No
ZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNz
YWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoWygnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAg
ICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydw
ZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAg
ICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9u
KQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfcHJlZmVyZW5jZShzZWxm
KToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJv
bSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0
cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0g
ICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAg
ICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0
X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAot
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhU
LAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5k
X2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAg
ICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygp
KQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAg
ICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsICdkZWZsYXRlLWZyYW1lJ10sCi0gICAgICAg
ICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9u
KQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9wYXJhbWV0ZXJz
KHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAg
IyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4KLSAgICAgICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcKLSAgICAgICAgICAgIGNsaWVu
dC5fc3RyZWFtLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxs
bywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAot
ICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5h
c3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVs
bG8sCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RF
X1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50
LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkK
LQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
JywgJzEwJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdzZXJ2ZXJfbm9fY29u
dGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
cmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdl
X2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2Vy
dmVyX21heF93aW5kb3dfYml0cz0xMDsgJwotICAgICAgICAgICAgICAgICAnc2VydmVyX25vX2Nv
bnRleHRfdGFrZW92ZXInXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAg
ICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3Nh
Z2VfZGVmbGF0ZV93aXRoX2JhZF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAg
ICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xv
c2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAg
ICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKLQot
ICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAg
ICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCdd
LAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVz
dF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhf
YmFkX3NlcnZlcl9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9j
aGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0
ZWQgYWNjZXB0YW5jZSBvZiBwZXJtZXNzYWdlLWRlZmxhdGUnKQotCi0gICAgICAgIHNlbGYuX3J1
bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0zMDAwMDAwJ10sCi0gICAgICAgICAgICAg
ICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0g
ICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF91bmRlZmluZWRfcGFyYW1l
dGVyKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAg
ICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZl
X2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVz
c2FnZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rl
c3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IGZvbz1iYXInXSwKLSAg
ICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRlc3RfZnVu
Y3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uKHNl
bGYpOgotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKLSAgICAgICAg
c2VsZi5fcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uX3Rlc3QoCi0gICAgICAgICAgICBf
ZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24sIDMzMzMsICdzdW5zdW5z
dW5zdW4nKQotCi0gICAgZGVmIHRlc3RfZWNob19jbG9zZV93aXRoX2VtcHR5X2JvZHkoc2VsZik6
Ci0gICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2Nsb3NlJwotICAgICAgICBzZWxm
Ll9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdCgKLSAgICAgICAgICAgIF9lY2hv
X2NoZWNrX3Byb2NlZHVyZV93aXRoX2NvZGVfYW5kX3JlYXNvbiwgTm9uZSwgJycpCi0KLSAgICBk
ZWYgdGVzdF9tdXhfZWNobyhzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX211eF90ZXN0KF9tdXhf
ZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9wcm90b2NvbF9l
cnJvcihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xv
c2UgZnJhbWUgd2l0aCBwcm90b2NvbCBlcnJvciBzdGF0dXMKLSAgICAgICAgY29kZSB3aGVuIHRo
ZSBjbGllbnQgc2VuZHMgZGF0YSB3aXRoIHNvbWUgcHJvdG9jb2wgZXJyb3IuCi0gICAgICAgICIi
IgotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGll
bnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lIHdpdGhvdXQg
YW55IHByZWNlZGluZyBzdGFydCBvZiBmcmFnbWVudGF0aW9uCi0gICAgICAgICAgICAjIGZyYW1l
LgotICAgICAgICAgICAgY2xpZW50LnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDgw
XHg4MCcsICcnKQotICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAotICAg
ICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCi0K
LSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2Ns
b3NlX29uX3Vuc3VwcG9ydGVkX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRo
ZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIHVuc3VwcG9ydGVkIG9wZXJhdGlvbgot
ICAgICAgICBzdGF0dXMgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSBhc2tpbmcgc29t
ZSBvcGVyYXRpb24gdGhhdCBpcwotICAgICAgICBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAg
ICAgICAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICAgICAgICAgICMgVGV4dCBmcmFtZSB3aXRo
IFJTVjMgYml0IHJhaXNlZC4KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0
cmFyeV9ieXRlcygnXHg5MVx4ODAnLCAnJykKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1VO
U1VQUE9SVEVEX0RBVEEpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikK
LQotICAgIGRlZiB0ZXN0X2Nsb3NlX29uX2ludmFsaWRfZnJhbWUoc2VsZik6Ci0gICAgICAgICIi
IlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggaW52YWxpZCBm
cmFtZSBwYXlsb2FkCi0gICAgICAgIGRhdGEgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNl
bmRzIGFuIGludmFsaWQgZnJhbWUgbGlrZSBjb250YWluaW5nCi0gICAgICAgIGludmFsaWQgVVRG
LTggY2hhcmFjdGVyLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihj
bGllbnQpOgotICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIFRl
eHQgZnJhbWUgd2l0aCBpbnZhbGlkIFVURi04IHN0cmluZy4KLSAgICAgICAgICAgIGNsaWVudC5z
ZW5kX21lc3NhZ2UoJ1x4ODAnLCByYXc9VHJ1ZSkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVT
X0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9pbnRlcm5hbF9lbmRwb2ludF9l
cnJvcihzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xv
c2UgZnJhbWUgd2l0aCBpbnRlcm5hbCBlbmRwb2ludAotICAgICAgICBlcnJvciBzdGF0dXMgY29k
ZSB3aGVuIHRoZSBoYW5kbGVyIGRvZXMgYmFkIG9wZXJhdGlvbi4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvaW50ZXJuYWxfZXJyb3InCi0KLSAgICAg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0
KCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAgICAgICAgICAg
ICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQot
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICAjIFRPRE8odG95
b3NoaW0pOiBBZGQgdGVzdHMgdG8gdmVyaWZ5IGludmFsaWQgYWJzb2x1dGUgdXJpIGhhbmRsaW5n
IGxpa2UKLSAgICAjIGhvc3QgdW5tYXRjaCwgcG9ydCB1bm1hdGNoIGFuZCBpbnZhbGlkIHBvcnQg
ZGVzY3JpcHRpb24gKCc6JyB3aXRob3V0IHBvcnQKLSAgICAjIG51bWJlcikuCi0KLSAgICBkZWYg
dGVzdF9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGFic29sdXRlIHVyaSBy
ZXF1ZXN0LiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgIG9w
dGlvbnMucmVzb3VyY2UgPSAnd3M6Ly9sb2NhbGhvc3Q6JWQvZWNobycgJSBvcHRpb25zLnNlcnZl
cl9wb3J0Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoX2VjaG9f
Y2hlY2tfcHJvY2VkdXJlLCBvcHRpb25zKQotCi0gICAgZGVmIHRlc3Rfb3JpZ2luX2NoZWNrKHNl
bGYpOgotICAgICAgICAiIiJUZXN0cyBodHRwIGZhbGxiYWNrIG9uIG9yaWdpbiBjaGVjayBmYWls
LiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgIG9wdGlvbnMu
cmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKLSAgICAgICAgIyBTZXJ2ZXIgc2hvd3Mgd2Fybmlu
ZyBtZXNzYWdlIGZvciBodHRwIDQwMyBmYWxsYmFjay4gVGhpcyB3YXJuaW5nCi0gICAgICAgICMg
bWVzc2FnZSBpcyBjb25mdXNpbmcuIEZvbGxvd2luZyBwaXBlIGRpc3Bvc2VzIHdhcm5pbmcgbWVz
c2FnZXMuCi0gICAgICAgIHNlbGYuc2VydmVyX3N0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQotICAg
ICAgICBzZWxmLl9ydW5faHR0cF9mYWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMykKLQotICAgIGRl
ZiB0ZXN0X3ZlcnNpb25fY2hlY2soc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJh
Y2sgb24gdmVyc2lvbiBjaGVjayBmYWlsLiIiIgotCi0gICAgICAgIG9wdGlvbnMgPSBzZWxmLl9v
cHRpb25zCi0gICAgICAgIG9wdGlvbnMudmVyc2lvbiA9IDk5Ci0gICAgICAgIHNlbGYuX3J1bl9o
dHRwX2ZhbGxiYWNrX3Rlc3Qob3B0aW9ucywgNDAwKQotCi0KLWNsYXNzIEVuZFRvRW5kSHlCaTAw
VGVzdChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIEVu
ZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVz
dF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQot
ICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnRfaHli
aTAwKHNlbGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVz
dF9mdW5jdGlvbihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAg
IGNsaWVudC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2Vs
Zi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgot
ICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYg
dGVzdF9lY2hvX3NlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2Vj
aG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RX
aXRoRWNob0NsaWVudChFbmRUb0VuZFRlc3RCYXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g
ICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKLQotICAgIGRlZiBfY2hlY2tfZXhh
bXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgIHNlbGYsIGV4cGVjdGVkLCBzdGRvdXRk
YXRhLCBzdGRlcnJkYXRhKToKLSAgICAgICAgYWN0dWFsID0gc3Rkb3V0ZGF0YS5kZWNvZGUoInV0
Zi04IikKLSAgICAgICAgaWYgYWN0dWFsICE9IGV4cGVjdGVkOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdVbmV4cGVjdGVkIHJlc3VsdCBvbiBleGFtcGxlIGVjaG8gY2xpZW50OiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCkn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIGFjdHVhbCkpCi0gICAg
ICAgIGlmIHN0ZGVycmRhdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ1VuZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZSBvbiBleGFtcGxlIGVjaG8gJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdjbGllbnQ6ICVyJyAlIHN0ZGVycmRhdGEpCi0KLSAgICBkZWYg
dGVzdF9leGFtcGxlX2VjaG9fY2xpZW50KHNlbGYpOgotICAgICAgICAiIiJUZXN0cyB0aGF0IHRo
ZSBlY2hvX2NsaWVudC5weSBleGFtcGxlIGNhbiB0YWxrIHdpdGggdGhlIHNlcnZlci4iIiIKLQot
ICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNs
aWVudF9jb21tYW5kID0gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgIHNlbGYudG9wX2Rp
ciwgJ2V4YW1wbGUnLCAnZWNob19jbGllbnQucHknKQotCi0gICAgICAgICAgICAjIEV4cGVjdGVk
IG91dHB1dCBmb3IgdGhlIGRlZmF1bHQgbWVzc2FnZXMuCi0gICAgICAgICAgICBkZWZhdWx0X2V4
cGVjdGF0aW9uID0gKCdTZW5kOiBIZWxsb1xuJyAnUmVjdjogSGVsbG9cbicKLSAgICAgICAgICAg
ICAgICB1J1NlbmQ6IFx1NjVlNVx1NjcyY1xuJyB1J1JlY3Y6IFx1NjVlNVx1NjcyY1xuJwotICAg
ICAgICAgICAgICAgICdTZW5kIGNsb3NlXG4nICdSZWN2IGFja1xuJykKLQotICAgICAgICAgICAg
YXJncyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNl
bGYuX29wdGlvbnMuc2VydmVyX3BvcnQpXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVu
X3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAg
ICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAgICAg
ICAgIHNlbGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQotCi0g
ICAgICAgICAgICAjIFByb2Nlc3MgYSBiaWcgbWVzc2FnZSBmb3Igd2hpY2ggZXh0ZW5kZWQgcGF5
bG9hZCBsZW5ndGggaXMgdXNlZC4KLSAgICAgICAgICAgICMgVG8gaGFuZGxlIGV4dGVuZGVkIHBh
eWxvYWQgbGVuZ3RoLCB3c192ZXJzaW9uIGF0dHJpYnV0ZSB3aWxsIGJlCi0gICAgICAgICAgICAj
IGFjY2Vzc2VkLiBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgd3NfdmVyc2lvbiBpcyBjb3JyZWN0bHkg
c2V0LgotICAgICAgICAgICAgYmlnX21lc3NhZ2UgPSAnYScgKiAxMDI0Ci0gICAgICAgICAgICBh
cmdzID0gW2NsaWVudF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2Vs
Zi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCksCi0gICAgICAgICAgICAgICAgICAgICctbScsIGJpZ19t
ZXNzYWdlXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFy
Z3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRl
cnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIGV4cGVjdGVkID0gKCdT
ZW5kOiAlc1xuUmVjdjogJXNcblNlbmQgY2xvc2VcblJlY3YgYWNrXG4nICUKLSAgICAgICAgICAg
ICAgICAgICAgICAgIChiaWdfbWVzc2FnZSwgYmlnX21lc3NhZ2UpKQotICAgICAgICAgICAgc2Vs
Zi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAgICAgICAgZXhw
ZWN0ZWQsIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0KLSAgICAgICAgICAgICMgVGVzdCB0aGUg
cGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4KLSAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50
X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNl
cnZlcl9wb3J0KSwKLSAgICAgICAgICAgICAgICAgICAgJy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0
ZSddCi0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywg
c3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLSAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRh
dGEgPSBjbGllbnQuY29tbXVuaWNhdGUoKQotICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBs
ZV9lY2hvX2NsaWVudF9yZXN1bHQoCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0
YXRpb24sIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotCi1pZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X2V4dGVuc2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YTQzODQ3OTJi
ZmZkMGEyMGQyZTc1NDMzZGMyOTA5Y2Y5M2RlNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQorKysgL2Rl
di9udWxsCkBAIC0xLDI3OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29w
eXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBleHRlbnNpb25zIG1vZHVsZS4iIiIKLQotCi1p
bXBvcnQgdW5pdHRlc3QKLWltcG9ydCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBk
YXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
ZXh0ZW5zaW9ucwotCi0KLWNsYXNzIEV4dGVuc2lvbnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJBIHVuaXR0ZXN0IGZvciBub24tY2xhc3MgbWV0aG9kcyBpbiBleHRlbnNpb25zLnB5
IiIiCi0KLSAgICBkZWYgdGVzdF9wYXJzZV93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMs
IE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMu
X3BhcnNlX3dpbmRvd19iaXRzLCAnZm9vYmFyJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcgOCAnKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3df
Yml0cywgJ2E4YScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVu
c2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMDAwMDAnKQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAwMDA4JykK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vf
d2luZG93X2JpdHMsICcweDgnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOS41JykKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc4
LjAnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3df
Yml0cywgJzgnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXh0ZW5zaW9ucy5fcGFyc2Vfd2lu
ZG93X2JpdHMsICcxNScpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICctOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dp
bmRvd19iaXRzLCAnNycpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwg
ZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxNicpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKAotICAgICAgICAgICAgICAgIFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dp
bmRvd19iaXRzLCAnMTAwMDAwMDAnKQotCi0KLWNsYXNzIERlZmxhdGVGcmFtZUV4dGVuc2lvblBy
b2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0
IGZvciBjaGVja2luZyB0aGF0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvciBwYXJzZXMg
Z2l2ZW4KLSAgICBleHRlbnNpb24gcGFyYW1ldGVyIGNvcnJlY3RseS4KLSAgICAiIiIKLQotICAg
IGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25z
LmdldF9leHRlbnNpb25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNp
b25QYXJhbWV0ZXIoJ2RlZmxhdGUtZnJhbWUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3Rh
bmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMu
RGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKQotCi0gICAgICAgIHByb2Nlc3NvciA9IGV4
dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScpKQotICAgICAgICBz
ZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IpCi0KLSAgICBk
ZWYgdGVzdF9taW5pbWFsX29mZmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNp
b25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5F
eHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKSkKLQotICAgICAgICByZXNwb25z
ZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh6bGliLk1BWF9XQklUUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fbm9fY29udGV4dF90
YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dpbmRvd19iaXRzKHNlbGYp
OgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFt
ZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3df
Yml0cycsICcxMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1l
RXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nl
c3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
cGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxMCwgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykK
LQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfb3V0X29mX3JhbmdlX21heF93aW5kb3dfYml0cyhz
ZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVy
ZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdtYXhfd2lu
ZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZy
YW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rf
b2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF92YWx1ZShzZWxmKToKLSAgICAgICAg
cGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScp
Ci0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCBOb25l
KQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblBy
b2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9f
Y29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRf
cGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29y
ID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQot
Ci0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFt
ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1l
dGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvY2Vzc29yLl9yZmMxOTc5X2Rl
ZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9u
b19jb250ZXh0X3Rha2VvdmVyX3dpdGhfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBw
YXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicsICdmb29iYXInKQot
ICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfdW5rbm93
bl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFt
ZXRlcignZm9vJywgJ2JhcicpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0
ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICByZXNwb25zZSA9
IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLQotY2xhc3Mg
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3JQYXJzaW5nVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgY2hlY2tpbmcgdGhhdCBQZXJNZXNzYWdl
RGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvciBwYXJzZXMKLSAgICBnaXZlbiBleHRlbnNpb24gcGFy
YW1ldGVyIGNvcnJlY3RseS4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYp
OgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29y
KAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2Ut
ZGVmbGF0ZScpKQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4
dGVuc2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0ZXN0X21pbmltYWxfb2ZmZXIoc2VsZik6Ci0g
ICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNz
YWdlLWRlZmxhdGUnKSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihy
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHps
aWIuTUFYX1dCSVRTLAotICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3
OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vz
c29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRl
c3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAg
IHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJykK
LSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lv
blByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
KCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJyldLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxMCwgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykKLQotICAgIGRl
ZiB0ZXN0X29mZmVyX3dpdGhfb3V0X29mX3JhbmdlX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAg
ICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1k
ZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2lu
ZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2Fn
ZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYg
dGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0c193aXRob3V0X3ZhbHVlKHNlbGYpOgotICAg
ICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRl
ZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5k
b3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2Fn
ZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYg
dGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6Ci0gICAgICAgIHBhcmFt
ZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0g
ICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3Zl
cicsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJv
Y2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWygnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rh
a2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyX3dp
dGhfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1l
dGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsICdmb29iYXInKQotICAgICAgICBwcm9j
ZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBh
cmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFt
ZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIo
J2ZvbycsICdiYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VE
ZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0KLWNsYXNzIFBl
ck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yQnVpbGRpbmdUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VE
ZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yIGJ1aWxkcwotICAgIGEgcmVzcG9uc2UgYmFzZWQgb24g
c3BlY2lmaWVkIG9wdGlvbnMgY29ycmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVz
cG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBh
cmFtZXRlci5hZGRfcGFyYW1ldGVyKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcihwYXJhbWV0ZXIpCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X21heF93aW5k
b3dfYml0cygxMCkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9u
X3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRl
JywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ2NsaWVudF9t
YXhfd2luZG93X2JpdHMnLCAnMTAnKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9u
c2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfbWF4X3dp
bmRvd19iaXRzX3dpdGhvdXRfY2xpZW50X3Blcm1pc3Npb24oc2VsZik6Ci0gICAgICAgIHByb2Nl
c3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0g
ICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUn
KSkKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDEwKQotCi0g
ICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAg
ICAgICBzZWxmLmFzc2VydElzTm9uZShyZXNwb25zZSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNl
X3dpdGhfdHJ1ZV9mb3Jfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAgICAgcHJvY2Vz
c29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAg
ICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScp
KQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1
ZSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9u
c2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ2NsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdl
dF9wYXJhbWV0ZXJzKCkpCi0KLSAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX2ZhbHNlX2Zvcl9u
b19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25z
LlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgICAgICAgICAgY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcHJv
Y2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihGYWxzZSkKLQotICAgICAgICBy
ZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkK
LQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYTc4YWMwNWU1ODcxZDE1OWE2N2Y3ZTQxNmYzMDI3MDBmYTBmOTI2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hh
bmRzaGFrZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4OCArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBk
aXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0j
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0j
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2Uu
X2Jhc2UgbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19w
YXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4K
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25QYXJhbWV0ZXIK
LWZyb20gbW9kX3B5d2Vic29ja2V0LmNvbW1vbiBpbXBvcnQgRXh0ZW5zaW9uUGFyc2luZ0V4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBmb3JtYXRfZXh0ZW5zaW9u
cwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBwYXJzZV9leHRlbnNpb25zCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2Vw
dGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0
ZV9zdWJwcm90b2NvbAotCi0KLWNsYXNzIFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciB2YWxpZGF0ZV9zdWJwcm90b2NvbCBt
ZXRob2QuIiIiCi0KLSAgICBkZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAg
ICAgICAgIyBTaG91bGQgc3VjY2VlZC4KLSAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3Nh
bXBsZScpCi0gICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdTYW1wbGUnKQotICAgICAgICB2
YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKLQotICAgICAgICAjIFNo
b3VsZCBmYWlsLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNo
YWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90
b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MDlwcm90b2NvbCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhI
YW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1
YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgyMHByb3RvY29s
JykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NhbXBsZVx4N2Zwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRh
dGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICMgIkphcGFuIiBpbiBK
YXBhbmVzZQotICAgICAgICAgICAgICAgICAgICAgICAgICB1J1x1NjVlNVx1NjcyYycpCi0KLQot
X1RFU1RfVE9LRU5fRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb28nLCBbKCdmb28nLCBbXSld
KSwKLSAgICAoJ2ZvbzsgYmFyJywgWygnZm9vJywgWygnYmFyJywgTm9uZSldKV0pLAotICAgICgn
Zm9vOyBiYXI9YmF6JywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2Zvbzsg
YmFyPWJhejsgY2FyPWNkcicsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKSwgKCdjYXInLCAnY2Ry
JyldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6LCBjYXI7IGNkcicsCi0gICAgIFsoJ2ZvbycsIFso
J2JhcicsICdiYXonKV0pLCAoJ2NhcicsIFsoJ2NkcicsIE5vbmUpXSldKSwKLSAgICAoJ2EsIGIs
IGMsIGQnLAotICAgICBbKCdhJywgW10pLCAoJ2InLCBbXSksICgnYycsIFtdKSwgKCdkJywgW10p
XSksCi0gICAgXQotCi0KLV9URVNUX1FVT1RFRF9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2Zv
bzsgYmFyPSIiJywgWygnZm9vJywgWygnYmFyJywgJycpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSIg
YmF6ICInLCBbKCdmb28nLCBbKCdiYXInLCAnIGJheiAnKV0pXSksCi0gICAgKCdmb287IGJhcj0i
LGJhejsiJywgWygnZm9vJywgWygnYmFyJywgJyxiYXo7JyldKV0pLAotICAgICgnZm9vOyBiYXI9
IlxcXHJcXFxuYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICdcclxuYmF6JyldKV0pLAotICAgICgn
Zm9vOyBiYXI9IlxcImJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnImJheicpXSldKSwKLSAgICAo
J2ZvbzsgYmFyPSJceGJiYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICdceGJiYmF6JyldKV0pLAot
ICAgIF0KLQotCi1fVEVTVF9SRURVTkRBTlRfVE9LRU5fRVhURU5TSU9OX0RBVEEgPSBbCi0gICAg
KCdmb28gXHQgJywgWygnZm9vJywgW10pXSksCi0gICAgKCdmb287IFxyXG4gYmFyJywgWygnZm9v
JywgWygnYmFyJywgTm9uZSldKV0pLAotICAgICgnZm9vOyBiYXI9XHJcbiBcclxuIGJheicsIFso
J2ZvbycsIFsoJ2JhcicsICdiYXonKV0pXSksCi0gICAgKCdmb28gO2JhciA9IGJheiAnLCBbKCdm
b28nLCBbKCdiYXInLCAnYmF6JyldKV0pLAotICAgICgnZm9vLGJhciwsYmF6JywgWygnZm9vJywg
W10pLCAoJ2JhcicsIFtdKSwgKCdiYXonLCBbXSldKSwKLSAgICBdCi0KLQotX1RFU1RfUkVEVU5E
QU5UX1FVT1RFRF9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbzsgYmFyPSJcclxuIFxyXG4g
YmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICcgIGJheicpXSldKSwKLSAgICBdCi0KLQotY2xhc3Mg
RXh0ZW5zaW9uc1BhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIF92ZXJp
ZnlfZXh0ZW5zaW9uX2xpc3Qoc2VsZiwgZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAg
ICAgICAiIiJWZXJpZmllcyB0aGF0IEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3RzIGluIGFjdHVh
bF9saXN0IGhhdmUgdGhlCi0gICAgICAgIHNhbWUgbWVtYmVycyBhcyBleHRlbnNpb24gZGVmaW5p
dGlvbnMgaW4gZXhwZWN0ZWRfbGlzdC4gRXh0ZW5zaW9uCi0gICAgICAgIGRlZmluaXRpb24gdXNl
ZCBpbiB0aGlzIHRlc3QgaXMgYSBwYWlyIG9mIGFuIGV4dGVuc2lvbiBuYW1lIGFuZCBhCi0gICAg
ICAgIHBhcmFtZXRlciBkaWN0aW9uYXJ5LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAg
Zm9yIGV4cGVjdGVkLCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToK
LSAgICAgICAgICAgIChuYW1lLCBwYXJhbWV0ZXJzKSA9IGV4cGVjdGVkCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG5hbWUsIGFjdHVhbC5fbmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocGFyYW1ldGVycywgYWN0dWFsLl9wYXJhbWV0ZXJzKQotCi0gICAgZGVmIHRlc3Rf
cGFyc2Uoc2VsZik6Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nLCBkZWZpbml0aW9uIGlu
IF9URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4
dGVuc2lvbl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lv
bnMoZm9ybWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9xdW90ZWRfZGF0YShz
ZWxmKToKLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb24gaW4gX1RFU1Rf
UVVPVEVEX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lv
bl9saXN0KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9y
bWF0dGVkX3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfZGF0YShzZWxm
KToKLSAgICAgICAgZm9yIChmb3JtYXR0ZWRfc3RyaW5nLAotICAgICAgICAgICAgIGRlZmluaXRp
b24pIGluIF9URVNUX1JFRFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAg
IHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9u
LCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFy
c2VfcmVkdW5kYW50X3F1b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgKGZvcm1hdHRlZF9z
dHJpbmcsCi0gICAgICAgICAgICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVEVU5EQU5UX1FVT1RF
RF9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlz
dCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRl
ZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfYmFkX2RhdGEoc2VsZik6Ci0gICAgICAg
IF9URVNUX0JBRF9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAgICAgICAgICgnZm9vOyA7ICcpLAot
ICAgICAgICAgICAgKCdmb287IGEgYScpLAotICAgICAgICAgICAgKCdmb28gZm9vJyksCi0gICAg
ICAgICAgICAoJywsLCcpLAotICAgICAgICAgICAgKCdmb287IGJhcj0nKSwKLSAgICAgICAgICAg
ICgnZm9vOyBiYXI9ImhvZ2UnKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9ImFcciInKSwKLSAg
ICAgICAgICAgICgnZm9vOyBiYXI9IlxcXHhmZiInKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9
XHJhJyksCi0gICAgICAgICAgICBdCi0KLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcgaW4g
X1RFU1RfQkFEX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
Ci0gICAgICAgICAgICAgICAgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgcGFyc2VfZXh0ZW5z
aW9ucywgZm9ybWF0dGVkX3N0cmluZykKLQotCi1jbGFzcyBGb3JtYXRFeHRlbnNpb25zVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9mb3JtYXRfZXh0ZW5zaW9ucyhzZWxm
KToKLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb25zIGluIF9URVNUX1RP
S0VOX0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAg
ICAgICBmb3IgZGVmaW5pdGlvbiBpbiBkZWZpbml0aW9uczoKLSAgICAgICAgICAgICAgICAobmFt
ZSwgcGFyYW1ldGVycykgPSBkZWZpbml0aW9uCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0g
RXh0ZW5zaW9uUGFyYW1ldGVyKG5hbWUpCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uLl9wYXJh
bWV0ZXJzID0gcGFyYW1ldGVycwotICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4
dGVuc2lvbikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
Zm9ybWF0dGVkX3N0cmluZywgZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9ucykpCi0KLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQwYWFmNjQwYTU4OGUyYjA0MmYzMmE5YzY2YTM2OTdhZDRkZDEwYmUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
aGFuZHNoYWtlX2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MjEgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFu
ZHNoYWtlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNf
cGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUu
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpIGltcG9ydCBIYW5kc2hha2Vy
Ci0KLWltcG9ydCBtb2NrCi0KLQotY2xhc3MgUmVxdWVzdERlZmluaXRpb24ob2JqZWN0KToKLSAg
ICAiIiJBIGNsYXNzIGZvciBob2xkaW5nIGRhdGEgZm9yIGNvbnN0cnVjdGluZyBvcGVuaW5nIGhh
bmRzaGFrZSBzdHJpbmdzIGZvcgotICAgIHRlc3RpbmcgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHBy
b2Nlc3Nvci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2QsIHVyaSwg
aGVhZGVycyk6Ci0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNlbGYudXJp
ID0gdXJpCi0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLQotCi1kZWYgX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCk6Ci0gICAgcmV0dXJuIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAg
ICAnR0VUJywgJy9kZW1vJywKLSAgICAgICAgeydIb3N0JzogJ3NlcnZlci5leGFtcGxlLmNvbScs
Ci0gICAgICAgICAnVXBncmFkZSc6ICd3ZWJzb2NrZXQnLAotICAgICAgICAgJ0Nvbm5lY3Rpb24n
OiAnVXBncmFkZScsCi0gICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhiWEJz
WlNCdWIyNWpaUT09JywKLSAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAot
ICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nfSkKLQotCi1kZWYgX2NyZWF0
ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKLSAgICBjb25uID0gbW9jay5Nb2NrQ29ubignJykKLSAg
ICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKLSAgICAgICAgbWV0aG9kPXJlcXVlc3RfZGVmLm1l
dGhvZCwKLSAgICAgICAgdXJpPXJlcXVlc3RfZGVmLnVyaSwKLSAgICAgICAgaGVhZGVyc19pbj1y
ZXF1ZXN0X2RlZi5oZWFkZXJzLAotICAgICAgICBjb25uZWN0aW9uPWNvbm4pCi0KLQotZGVmIF9j
cmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KToKLSAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihy
ZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgcmV0dXJuIGhhbmRzaGFrZXIKLQot
Ci1jbGFzcyBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkEg
ZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNwYXRjaGVyIHNldHMgdGhlIGktdGggc3Vi
cHJvdG9jb2wKLSAgICBvZiByZXF1ZXN0ZWQgb25lcyB0byB3c19wcm90b2NvbCB3aGVyZSBpIGlz
IGdpdmVuIG9uIGNvbnN0cnVjdGlvbiBhcyBpbmRleAotICAgIGFyZ3VtZW50LiBJZiBpbmRleCBp
cyBuZWdhdGl2ZSwgZGVmYXVsdF92YWx1ZSB3aWxsIGJlIHNldCB0byB3c19wcm90b2NvbC4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbmRleCwgZGVmYXVsdF92YWx1ZT1Ob25l
KToKLSAgICAgICAgc2VsZi5pbmRleCA9IGluZGV4Ci0gICAgICAgIHNlbGYuZGVmYXVsdF92YWx1
ZSA9IGRlZmF1bHRfdmFsdWUKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29u
bl9jb250ZXh0KToKLSAgICAgICAgaWYgc2VsZi5pbmRleCA+PSAwOgotICAgICAgICAgICAgY29u
bl9jb250ZXh0LndzX3Byb3RvY29sID0gY29ubl9jb250ZXh0LndzX3JlcXVlc3RlZF9wcm90b2Nv
bHNbCi0gICAgICAgICAgICAgICAgc2VsZi5pbmRleF0KLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9IHNlbGYuZGVmYXVsdF92YWx1ZQotCi0gICAg
ZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0K
LWNsYXNzIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBwYXNzCi0K
LQotY2xhc3MgQWJvcnRpbmdEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNwYXRjaGVy
IGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpbgotICAg
IGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAg
ICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJh
aXNlIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24oJ0FuIGV4Y2VwdGlvbiB0byByZWplY3QgdGhl
IHJlcXVlc3QnKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToK
LSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEFib3J0ZWRCeVVzZXJEaXNwYXRjaGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2Vz
IGFuCi0gICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBpbiBkb19leHRyYV9oYW5kc2hha2UgdG8g
cmVqZWN0IHRoZSByZXF1ZXN0LgotICAgICIiIgotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICByYWlzZSBBYm9ydGVkQnlVc2VyRXhjZXB0
aW9uKCdBbiBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXF1ZXN0JykKLQotICAgIGRlZiB0cmFuc2Zl
cl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1fRVhQRUNURURf
UkVTUE9OU0UgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicK
LSAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4
T289XHJcblxyXG4nKQotCi0KLWNsYXNzIEhhbmRzaGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJv
dG9jb2wtMDYgYW5kIGxhdGVyCi0gICAgaGFuZHNoYWtlIHByb2Nlc3Nvci4KLSAgICAiIiIKLQot
ICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IG1vY2suTW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtl
X2NhbGxlZCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVD
VEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJy9kZW1vJywgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19wcm90b2NvbCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1ZXN0LndzX2V4dGVuc2lvbnMpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsIHJlcXVlc3Qu
d3NfdmVyc2lvbikKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX2V4dHJhX2hlYWRl
cnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgIyBBZGQgaGVhZGVycyBub3QgcmVsYXRlZCB0byBXZWJTb2NrZXQgb3Blbmlu
ZyBoYW5kc2hha2UuCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Zvb0tleSddID0gJ0Jh
clZhbHVlJwotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydFbXB0eUtleSddID0gJycKLQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBo
YW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfY2FwaXRhbGl6ZWRfdmFsdWUoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sndXBncmFkZSddID0gJ1dFQlNPQ0tFVCcKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hh
a2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBF
Q1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ1VQR1JBREUnCi0KLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9
IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURf
UkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211bHRpcGxlX2Nvbm5lY3Rpb25fdmFsdWVzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdVcGdyYWRlLCBrZWVwLWFsaXZl
LCAsICcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQot
ICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfYWJvcnRpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCi0gICAgICAgICAgICBBYm9ydGluZ0Rpc3BhdGNo
ZXIoKSkKLSAgICAgICAgIyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIGV4Y2VwdGlvbi4g
Q2hlY2sgdGhhdCBpdCdzIG5vdCBjYXVnaHQgYnkKLSAgICAgICAgIyBkb19oYW5kc2hha2UuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24sIGhhbmRz
aGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcHJv
dG9jb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3Rf
ZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcigwKSkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotCi0gICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAg
ICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAgICAgICAgICdV
cGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVc
clxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lH
enpoWlJiSyt4T289XHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBj
aGF0XHJcblxyXG4nKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9O
U0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnY2hhdCcsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2VfcHJvdG9jb2xfbm90X2luX3JlcXVlc3RfYnV0X2luX3Jlc3BvbnNlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKAotICAgICAgICAgICAgcmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2lu
Z0Rpc3BhdGNoZXIoLTEsICdmb29iYXInKSkKLSAgICAgICAgIyBObyByZXF1ZXN0IGhhcyBiZWVu
IG1hZGUgYnV0IHdzX3Byb3RvY29sIGlzIHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uCi0gICAgICAg
ICMgbXVzdCBiZSByYWlzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4
Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5k
c2hha2Vfd2l0aF9wcm90b2NvbF9ub19wcm90b2NvbF9zZWxlY3Rpb24oc2VsZik6Ci0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hh
dCcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAg
ICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgICMg
d3NfcHJvdG9jb2wgaXMgbm90IHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uIG11c3QgYmUgcmFpc2Vk
LgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0ZW5z
aW9ucyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMnXSA9ICgKLSAgICAgICAgICAgICdwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyJykKLQotICAgICAgICBFWFBFQ1RFRF9SRVNQT05TRSA9ICgKLSAgICAgICAg
ICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCi0gICAgICAgICAgICAn
VXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRl
XHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUFjY2VwdDogczNwUExNQmlUeGFROWtZ
R3p6aFpSYksreE9vPVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25z
OiAnCi0gICAgICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRl
eHRfdGFrZW92ZXJcclxuJwotICAgICAgICAgICAgJ1xyXG4nKQotCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3Jl
YXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu
KHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIGV4dGVuc2lvbiA9IHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5u
YW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydzZXJ2ZXJfbm9fY29udGV4dF90YWtl
b3ZlciddLAotICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVy
X25hbWVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLQotICAgIGRl
ZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3F1b3RlZF9leHRlbnNpb25zKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKAotICAgICAgICAg
ICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZSwgLCAnCi0gICAgICAgICAgICAndW5rbm93bjsgZSAgID0g
ICAgIm1jXjIiOyBtYT0iXHJcbiAgICAgIFxcXHJmICAiOyBwdj1ucnQnKQotCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX3JlcXVl
c3RlZF9leHRlbnNpb25zKSkKLSAgICAgICAgZmlyc3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19y
ZXF1ZXN0ZWRfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNz
YWdlLWRlZmxhdGUnLCBmaXJzdF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWNvbmRfZXh0
ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uc1sxXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCd1bmtub3duJywgc2Vjb25kX2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBbJ2UnLCAnbWEnLCAncHYnXSwgc2Vjb25k
X2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ21jXjInLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ2UnKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIFxyZiAnLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJh
bWV0ZXJfdmFsdWUoJ21hJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ25ydCcsIHNlY29u
ZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1ZSgncHYnKSkKLQotICAgIGRlZiB0ZXN0X2Rv
X2hhbmRzaGFrZV93aXRoX29wdGlvbmFsX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snRW1wdHlWYWx1ZSddID0gJycKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQUtl
eSddID0gJ0FWYWx1ZScKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3Qp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgICdBVmFsdWUnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0FLZXknXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICcnLCByZXF1ZXN0LmhlYWRl
cnNfaW5bJ0VtcHR5VmFsdWUnXSkKLQotICAgIGRlZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFr
ZShzZWxmKToKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICBf
Y3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkpLAotICAgICAgICAgICAg
QWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIoKSkKLSAgICAgICAgIyBkb19leHRyYV9oYW5kc2hha2Ug
cmFpc2VzIGFuIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24uIENoZWNrIHRoYXQgaXQncwotICAgICAg
ICAjIG5vdCBjYXVnaHQgYnkgZG9faGFuZHNoYWtlLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAg
IGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211eF9hbmRfZGVmbGF0ZV9mcmFtZShzZWxmKToK
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgnJXMs
ICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAg
ICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sx
XS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4
X3Byb2Nlc3NvcicpKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZGVmbGF0ZV9m
cmFtZV9hbmRfbXV4KHNlbGYpOgotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQt
RXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lP
TikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAg
ICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQu
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykp
Ci0gICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
c1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJ
T04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0
LCAnbXV4JykpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wZXJtZXNzYWdlX2Rl
ZmxhdGVfYW5kX211eChzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0
LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICclcywgJXMnICUgKAotICAgICAgICAgICAg
ICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OLAotICAgICAgICAgICAgICAg
IGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihy
ZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0Lm11eF9wcm9jZXNzb3IuaXNfYWN0aXZlKCkpCi0gICAgICAg
IG11eF9leHRlbnNpb25zID0gcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmV4dGVuc2lvbnMoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtdXhfZXh0ZW5zaW9ucykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4X2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotCi0gICAgZGVm
IHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2FuZF9wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0g
ICAgICAgICAgICAnJXMsICVzJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVO
U0lPTiwKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lP
TikpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAg
ICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFu
ZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQu
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykp
Ci0gICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9O
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3Nv
cnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5NVVhfRVhURU5TSU9OLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZsYXRlJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29y
JykpCi0KLSAgICBkZWYgdGVzdF9iYWRfcmVxdWVzdHMoc2VsZik6Ci0gICAgICAgIGJhZF9jYXNl
cyA9IFsKLSAgICAgICAgICAgICgnSFRUUCByZXF1ZXN0JywKLSAgICAgICAgICAgICBSZXF1ZXN0
RGVmaW5pdGlvbigKLSAgICAgICAgICAgICAgICAgJ0dFVCcsICcvZGVtbycsCi0gICAgICAgICAg
ICAgICAgIHsnSG9zdCc6ICd3d3cuZ29vZ2xlLmNvbScsCi0gICAgICAgICAgICAgICAgICAnVXNl
ci1BZ2VudCc6Ci0gICAgICAgICAgICAgICAgICAgICAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7
IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7JwotICAgICAgICAgICAgICAgICAgICAgICcgZW4tVVM7
IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0IEZpcmVmb3gvMy41LjMnCi0gICAgICAgICAgICAg
ICAgICAgICAgJyBHVEI2IEdUQkEnLAotICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6Ci0gICAg
ICAgICAgICAgICAgICAgICAgJ3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGlj
YXRpb24veG1sO3E9MC45LCcKLSAgICAgICAgICAgICAgICAgICAgICAnKi8qO3E9MC44JywKLSAg
ICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnZW4tdXMsZW47cT0wLjUnLAotICAg
ICAgICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLGRlZmxhdGUnLAotICAgICAg
ICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtx
PTAuNycsCi0gICAgICAgICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAotICAgICAgICAg
ICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZSd9KSwgTm9uZSwgVHJ1ZSldCi0KLSAg
ICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBy
ZXF1ZXN0X2RlZi5tZXRob2QgPSAnUE9TVCcKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dy
b25nIG1ldGhvZCcsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydIb3N0J10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgSG9z
dCcsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9j
cmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJz
WydVcGdyYWRlJ10KLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgVXBncmFkZScs
IHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVh
dGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3Jh
ZGUnXSA9ICdub253ZWJzb2NrZXQnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBV
cGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhl
YWRlcnNbJ0Nvbm5lY3Rpb24nXQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBD
b25uZWN0aW9uJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snQ29ubmVjdGlvbiddID0gJ0Rvd25ncmFkZScKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVu
ZCgoJ1dyb25nIENvbm5lY3Rpb24nLCByZXF1ZXN0X2RlZiwgTm9uZSwgVHJ1ZSkpCi0KLSAgICAg
ICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICBkZWwg
cmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXQotICAgICAgICBiYWRfY2Fz
ZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMtV2ViU29ja2V0LUtleScsIHJlcXVlc3RfZGVmLCA0MDAs
IFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgK
LSAgICAgICAgICAgICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT1nYXJiYWdlJykKLSAgICAgICAg
YmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5ICh3aXRoIGdhcmJhZ2Ug
b24gdGhlIHRhaWwpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQw
MCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0g
J1lRPT0nICAjIEJBU0U2NCBvZiAnYScKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAg
ICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKGRlY29kZWQgdmFsdWUgaXMgbm90IDE2
IG9jdGV0cyBsb25nKScsCi0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0K
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICAjIFRoZSBsYXN0IGNoYXJhY3RlciByaWdodCBiZWZvcmUgPT0gbXVzdCBiZSBhbnkgb2YgQSwg
USwgdyBhbmQgZy4KLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1L
ZXknXSA9ICgKLSAgICAgICAgICAgICdBUUlEQkFVR0J3Z0pDZ3NNRFE0UEVDPT0nKQotICAgICAg
ICBiYWRfY2FzZXMuYXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtl
eSAocGFkZGluZyBiaXRzIGFyZSBub3QgemVybyknLAotICAgICAgICAgICAgIHJlcXVlc3RfZGVm
LCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVl
c3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXkn
XSA9ICgKLSAgICAgICAgICAgICdkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0sZEdobElITmhiWEJz
WlNCdWIyNWpaUT09JykKLSAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgKLSAgICAgICAgICAgICgn
V3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKG11bHRpcGxlIHZhbHVlcyknLAotICAgICAgICAgICAg
IHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0
ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1Nl
Yy1XZWJTb2NrZXQtVmVyc2lvbiddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5n
IFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVlc3RfZGVmLCBOb25lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2Nr
ZXQtVmVyc2lvbiddID0gJzMnCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMt
V2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0X2RlZiwgTm9uZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgRmFsc2UpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1W
ZXJzaW9uJ10gPSAnMTMsIDEzJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2Vj
LVdlYlNvY2tldC1WZXJzaW9uIChtdWx0aXBsZSB2YWx1ZXMpJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYg
PSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJz
WydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAnaWxsZWdhbFx4MDlwcm90b2NvbCcKLSAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ0lsbGVnYWwgU2VjLVdlYlNvY2tldC1Qcm90b2NvbCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJycKLSAgICAgICAg
YmFkX2Nhc2VzLmFwcGVuZCgoJ0VtcHR5IFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICBm
b3IgKGNhc2VfbmFtZSwgcmVxdWVzdF9kZWYsIGV4cGVjdGVkX3N0YXR1cywKLSAgICAgICAgICAg
ICBleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikgaW4gYmFkX2Nhc2VzOgotICAgICAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgICAgIGhhbmRz
aGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0g
ICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdObyBleGNlcHRpb24gdGhyb3duIGZvciBcJyVzXCcg
Y2FzZScgJSBjYXNlX25hbWUpCi0gICAgICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdF9oYW5kc2hha2Vf
ZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfc3Rh
dHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9uIGFzIGU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleHBlY3RfaGFuZHNoYWtlX2V4Y2Vw
dGlvbikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4o
KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFu
ZHNoYWtlX2h5YmkwMC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczZjlmMjdjYTJkOTQyMWIyMzAxNWY1OGM4OTNh
Y2YxZGMwMDlkZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDUxNiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEs
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UuaHliaTAwIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQg
dW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9j
YXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuaHliaTAwIGltcG9ydCBIYW5kc2hha2VyCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuaHliaTAwIGltcG9ydCBfdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20gdGVz
dCBpbXBvcnQgbW9jawotCi0KLV9URVNUX0tFWTEgPSAnNCBAMSAgNDY1NDZ4VyUwbCAxIDUnCi1f
VEVTVF9LRVkyID0gJzEyOTk4IDUgWTMgMSAgLlAwMCcKLV9URVNUX0tFWTMgPSAnXm46ZHNbNFUn
Ci1fVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UgPSAnOGpLU1wneTpHKkNvLFd4YS0nCi0KLQotX0dP
T0RfUkVRVUVTVCA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsK
LSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdV
cGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAg
ICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRl
JzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkx
LAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBf
VEVTVF9LRVkzKQotCi1fR09PRF9SRVFVRVNUX0NBUElUQUxJWkVEX0hFQURFUl9WQUxVRVMgPSAo
Ci0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0
JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVVBHUkFERScsCi0gICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXRUJTT0NLRVQn
LAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09y
aWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQot
X0dPT0RfUkVRVUVTVF9DQVNFX01JWEVEX0hFQURFUl9OQU1FUyA9ICgKLSAgICA4MCwKLSAgICAn
R0VUJywKLSAgICAnL2RlbW8nLAotICAgIHsKLSAgICAgICAgJ2hPc1QnOiAnZXhhbXBsZS5jb20n
LAotICAgICAgICAnY09uTmVDdElvTic6ICdVcGdyYWRlJywKLSAgICAgICAgJ3NFYy13RWJzT2NL
ZVQta0V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdzRWMtd0Vic09jS2VULXBSb1RvQ29MJzog
J3NhbXBsZScsCi0gICAgICAgICd1UGdSYURlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdzRWMt
d0Vic09jS2VULWtFeTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnb1JpR2lOJzogJ2h0dHA6Ly9l
eGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9SRVNQT05TRV9E
RUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFu
ZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBs
ZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBs
ZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAg
ICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVNQT05T
RV9TRUNVUkUgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNo
YWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjog
VXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzczovL2V4YW1wbGUu
Y29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUu
Y29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAn
XHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9O
T05ERUZBVUxUX1BPUlQgPSAoCi0gICAgODA4MSwKLSAgICAnR0VUJywKLSAgICAnL2RlbW8nLAot
ICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb206ODA4MScsCi0gICAgICAgICdDb25u
ZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1Rf
S0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAg
ICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAg
ICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX05PTkRFRkFVTFRfUE9SVCA9
ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwot
ICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3M6Ly9leGFtcGxlLmNvbTo4MDgxL2Rl
bW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJc
bicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicg
KwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VDVVJF
X05PTkRFRiA9ICgKLSAgICAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hh
a2VcclxuJwotICAgICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJwotICAgICdDb25uZWN0aW9uOiBV
cGdyYWRlXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogd3NzOi8vZXhhbXBsZS5j
b206ODA4MS9kZW1vXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFt
cGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0g
ICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFUVVF
U1RfTk9fUFJPVE9DT0wgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAg
ICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24n
OiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAot
ICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20n
LAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9DT0wg
PSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicK
LSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtb1xy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwot
ICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVFV
RVNUX1dJVEhfT1BUSU9OQUxfSEVBREVSUyA9ICgKLSAgICA4MCwKLSAgICAnR0VUJywKLSAgICAn
L2RlbW8nLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAn
Q29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9U
RVNUX0tFWTIsCi0gICAgICAgICdFbXB0eVZhbHVlJzogJycsCi0gICAgICAgICdTZWMtV2ViU29j
a2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdBS2V5JzogJ0FWYWx1ZScsCi0gICAg
ICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEn
OiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0g
ICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi0jIFRPRE8odHlvc2hpbm8pOiBJbmNsdWRlIFxyIFxu
IGluIGtleTMsIGNoYWxsZW5nZSByZXNwb25zZS4KLQotX0dPT0RfUkVRVUVTVF9XSVRIX05PTlBS
SU5UQUJMRV9LRVkgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7
Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAn
VXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiAneSAgUjIgNDggUTFPNCAg
ZXxCVjMgaTUgMSAgdS0gNjUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdz
YW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXkxJzogJzM2IDcgICA3NCBpICA5MiAyXCdtIDkgMEcnLAotICAgICAgICAnT3Jp
Z2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICAnJy5qb2luKG1hcChjaHIs
IFsweDAxLCAweGQxLCAweGRkLCAweDNiLCAweGQxLCAweDU2LCAweDYzLCAweGZmXSkpKQotCi1f
R09PRF9SRVNQT05TRV9XSVRIX05PTlBSSU5UQUJMRV9LRVkgPSAoCi0gICAgJ0hUVFAvMS4xIDEw
MSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29j
a2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb20vZGVtb1xyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgJycuam9pbihtYXAoY2hyLCBb
MHgwYiwgMHg5OSwgMHhmYSwgMHg1NSwgMHhiZCwgMHgwMSwgMHgyMywgMHg3YiwKLSAgICAgICAg
ICAgICAgICAgICAgICAweDQ1LCAweGEyLCAweGYxLCAweGQwLCAweDg3LCAweDhhLCAweGVlLCAw
eGViXSkpKQotCi1fR09PRF9SRVFVRVNUX1dJVEhfUVVFUllfUEFSVCA9ICgKLSAgICA4MCwKLSAg
ICAnR0VUJywKLSAgICAnL2RlbW8/ZT1tYzInLAotICAgIHsKLSAgICAgICAgJ0hvc3QnOiAnZXhh
bXBsZS5jb20nLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LVBy
b3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAnT3JpZ2luJzog
J2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkzKQotCi1fR09PRF9S
RVNQT05TRV9XSVRIX1FVRVJZX1BBUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQg
UHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKLSAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246
IHdzOi8vZXhhbXBsZS5jb20vZGVtbz9lPW1jMlxyXG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtT3Jp
Z2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29s
OiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNF
KQotCi1fQkFEX1JFUVVFU1RTID0gKAotICAgICggICMgSFRUUCByZXF1ZXN0Ci0gICAgICAgIDgw
LAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAg
ICAgJ0hvc3QnOiAnd3d3Lmdvb2dsZS5jb20nLAotICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiAn
TW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICcgZW4tVVM7IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0IEZp
cmVmb3gvMy41LjMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcgR1RCNiBHVEJBJywKLSAg
ICAgICAgICAgICdBY2NlcHQnOiAndGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBs
aWNhdGlvbi94bWw7cT0wLjksJwotICAgICAgICAgICAgICAgICAgICAgICcqLyo7cT0wLjgnLAot
ICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6ICdlbi11cyxlbjtxPTAuNScsCi0gICAgICAg
ICAgICAnQWNjZXB0LUVuY29kaW5nJzogJ2d6aXAsZGVmbGF0ZScsCi0gICAgICAgICAgICAnQWNj
ZXB0LUNoYXJzZXQnOiAnSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAgICAg
ICAgICdLZWVwLUFsaXZlJzogJzMwMCcsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdrZWVw
LWFsaXZlJywKLSAgICAgICAgfSksCi0gICAgKCAgIyBXcm9uZyBtZXRob2QKLSAgICAgICAgODAs
Ci0gICAgICAgICdQT1NUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAg
ICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBn
cmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAg
ICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgTWlzc2luZyBV
cGdyYWRlCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAg
ICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAg
J0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXky
JzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3Nh
bXBsZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAg
ICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAg
ICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBXcm9uZyBVcGdyYWRlCi0gICAgICAgIDgwLAot
ICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAg
J0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFk
ZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAg
ICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAn
VXBncmFkZSc6ICdOb25XZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICggICMgRW1wdHkgV2Vi
U29ja2V0LVByb3RvY29sCi0gICAgICAgIDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9k
ZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAg
ICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sJzogJycsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2lu
JzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMp
LAotICAgICggICMgV3JvbmcgcG9ydCBudW1iZXIgZm9ybWF0Ci0gICAgICAgIDgwLAotICAgICAg
ICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAgewotICAgICAgICAgICAgJ0hvc3Qn
OiAnZXhhbXBsZS5jb206MHg1MCcsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRl
JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAg
ICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdV
cGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzog
X1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywK
LSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0gICAgKCAgIyBIZWFkZXIvY29ubmVj
dGlvbiBwb3J0IG1pc21hdGNoCi0gICAgICAgIDgwODAsCi0gICAgICAgICdHRVQnLAotICAgICAg
ICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScs
Ci0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQt
UHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcs
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAg
ICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAg
X1RFU1RfS0VZMyksCi0gICAgKCAgIyBJbGxlZ2FsIFdlYlNvY2tldC1Qcm90b2NvbAotICAgICAg
ICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAg
ICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzog
J1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIs
Ci0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdpbGxlZ2FsXHgwOXByb3Rv
Y29sJywKLSAgICAgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCi0gICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgICAgICdPcmlnaW4nOiAn
aHR0cDovL2V4YW1wbGUuY29tJywKLSAgICAgICAgfSwKLSAgICAgICAgX1RFU1RfS0VZMyksCi0p
Ci0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZik6Ci0gICAgZGF0YSA9ICcnCi0g
ICAgaWYgbGVuKHJlcXVlc3RfZGVmKSA+IDQ6Ci0gICAgICAgIGRhdGEgPSByZXF1ZXN0X2RlZls0
XQotICAgIGNvbm4gPSBtb2NrLk1vY2tDb25uKGRhdGEpCi0gICAgY29ubi5sb2NhbF9hZGRyID0g
KCcwLjAuMC4wJywgcmVxdWVzdF9kZWZbMF0pCi0gICAgcmV0dXJuIG1vY2suTW9ja1JlcXVlc3Qo
Ci0gICAgICAgIG1ldGhvZD1yZXF1ZXN0X2RlZlsxXSwKLSAgICAgICAgdXJpPXJlcXVlc3RfZGVm
WzJdLAotICAgICAgICBoZWFkZXJzX2luPXJlcXVlc3RfZGVmWzNdLAotICAgICAgICBjb25uZWN0
aW9uPWNvbm4pCi0KLQotZGVmIF9jcmVhdGVfZ2V0X21lbW9yaXplZF9saW5lcyhsaW5lcyk6Ci0g
ICAgIiIiQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5nLiIi
IgotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoKToKLSAgICAgICAgcmV0dXJuIGxpbmVz
Ci0gICAgcmV0dXJuIGdldF9tZW1vcml6ZWRfbGluZXMKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0
c193aXRoX2xpbmVzKHJlcXVlc3RfbGluZXNfc2V0KToKLSAgICByZXF1ZXN0cyA9IFtdCi0gICAg
Zm9yIGxpbmVzIGluIHJlcXVlc3RfbGluZXNfc2V0OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
bWVtb3JpemVkX2xpbmVzID0gX2NyZWF0ZV9nZXRfbWVtb3JpemVkX2xpbmVzKAotICAgICAgICAg
ICAgICAgIGxpbmVzKQotICAgICAgICByZXF1ZXN0cy5hcHBlbmQocmVxdWVzdCkKLSAgICByZXR1
cm4gcmVxdWVzdHMKLQotCi1jbGFzcyBIeUJpMDBIYW5kc2hha2VyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfZGVmYXVsdF9wb3J0KHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1QpCi0gICAgICAg
IGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkK
LSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJy9kZW1vJywgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ3dzOi8vZXhhbXBsZS5jb20vZGVtbycsIHJlcXVlc3Qud3NfbG9jYXRp
b24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9j
b2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfY2FwaXRhbGl6ZWRfaGVhZGVyX3ZhbHVl
cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNU
X0NBUElUQUxJWkVEX0hFQURFUl9WQUxVRVMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hh
a2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RF
RkFVTFRfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3RfY2FzZV9taXhlZF9o
ZWFkZXJfbmFtZXMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dP
T0RfUkVRVUVTVF9DQVNFX01JWEVEX0hFQURFUl9OQU1FUykKLSAgICAgICAgaGFuZHNoYWtlciA9
IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVT
UE9OU0VfREVGQVVMVF9QT1JULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9zZWN1
cmVfZGVmYXVsdF9wb3J0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KF9HT09EX1JFUVVFU1QpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9hZGRyID0g
KCcwLjAuMC4wJywgNDQzKQotICAgICAgICByZXF1ZXN0LmlzX2h0dHBzXyA9IFRydWUKLSAgICAg
ICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigp
KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoX0dPT0RfUkVTUE9OU0VfU0VDVVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2RfcmVx
dWVzdF9ub25kZWZhdWx0X3BvcnQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoX0dPT0RfUkVRVUVTVF9OT05ERUZBVUxUX1BPUlQpCi0gICAgICAgIGhhbmRzaGFrZXIg
PSBIYW5kc2hha2VyKHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9OT05ERUZB
VUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0
LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3NlY3VyZV9ub25fZGVm
YXVsdF9wb3J0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09E
X1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUKQotICAgICAgICByZXF1ZXN0LmlzX2h0dHBzXyA9IFRy
dWUKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlz
cGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfU0VDVVJFX05PTkRFRiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBk
ZWYgdGVzdF9nb29kX3JlcXVlc3RfZGVmYXVsdF9ub19wcm90b2NvbChzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PX1BST1RPQ09MKQotICAg
ICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVy
KCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChfR09PRF9SRVNQT05TRV9OT19QUk9UT0NPTCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2dvb2Rf
cmVxdWVzdF9vcHRpb25hbF9oZWFkZXJzKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9PUFRJT05BTF9IRUFERVJTKQotICAgICAgICBo
YW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0g
ICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnQVZhbHVlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5b
J0FLZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKLQotICAgIGRlZiB0ZXN0
X2dvb2RfcmVxdWVzdF93aXRoX25vbnByaW50YWJsZV9rZXkoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9XSVRIX05PTlBSSU5UQUJMRV9LRVkp
Ci0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3Bh
dGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1dJVEhfTk9OUFJJTlRBQkxFX0tFWSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0K
LSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9xdWVyeV9wYXJ0KHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lUSF9RVUVSWV9QQVJU
KQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNw
YXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRIX1FVRVJZX1BBUlQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzInLCByZXF1ZXN0
LndzX2xvY2F0aW9uKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RzKHNlbGYpOgotICAgICAg
ICBmb3IgcmVxdWVzdCBpbiBtYXAoX2NyZWF0ZV9yZXF1ZXN0LCBfQkFEX1JFUVVFU1RTKToKLSAg
ICAgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3Bh
dGNoZXIoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlv
biwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLQotY2xhc3MgSHlCaTAwVmFsaWRhdGVTdWJw
cm90b2NvbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3ZhbGlkYXRlX3N1
YnByb3RvY29sKHNlbGYpOgotICAgICAgICAjIHNob3VsZCBzdWNjZWVkLgotICAgICAgICBfdmFs
aWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZScpCi0gICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2Nv
bCgnU2FtcGxlJykKLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDdlcHJv
dG9jb2wnKQotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZVx4MjBwcm90b2Nv
bCcpCi0KLSAgICAgICAgIyBzaG91bGQgZmFpbC4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
SGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVf
c3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcnKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nh
bXBsZVx4MTlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29s
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHg3ZnByb3RvY29sJykKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotICAgICAgICAgICAgICAgICAgICAgICAgICB1J1x1
NjVlNVx1NjcyYycpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVz
dC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGls
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzZkYzU3YzM3MzEwNzFmZTI5MDE5
MTllMzNmMjRjMWI1NTlmNjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2h0dHBfaGVhZGVyX3V0aWwucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw5MCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLSIiIlRlc3RzIGZvciBodHRwX2hlYWRlcl91dGlsIG1vZHVsZS4iIiIKLQotCi1p
bXBvcnQgdW5pdHRlc3QKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGh0dHBfaGVhZGVy
X3V0aWwKLQotCi1jbGFzcyBVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1
bml0dGVzdCBmb3IgaHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9w
YXJzZV9yZWxhdGl2ZV91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0g
aHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJy93cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBvcnQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICBk
ZWYgdGVzdF9wYXJzZV9hYnNvbHV0ZV91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJl
c291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6Ly9s
b2NhbGhvc3Q6MTAwODAvd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2xvY2Fs
aG9zdCcsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwODAsIHBvcnQpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9z
dCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAg
ICAgICd3czovL2V4YW1wbGUuY29tL3dzL3Rlc3QnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdleGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODAsIHBvcnQp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2UpCi0KLSAgICAg
ICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAg
ICAgICAgICAgICd3c3M6Ly9leGFtcGxlLmNvbS8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdleGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNDQzLCBwb3J0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9z
dCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgKLSAgICAgICAg
ICAgICd3czovL2V4YW1wbGUuY29tOjgwODAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdl
eGFtcGxlLmNvbScsIGhvc3QpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoODA4MCwgcG9ydCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQotCi0gICAgZGVmIHRlc3Rf
cGFyc2VfaW52YWxpZF91cmkoc2VsZik6Ci0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0g
aHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBo
dHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6JykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNv
dXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xvY2FsaG9zdDovd3MnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQotCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZjFiOGVlZjQzMzc4YTliMDA2MjVmMjIwYzk3ZmUyMmY3NDBhOGY3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXpp
bmdmaWxlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52
IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG1lbW9yaXppbmdm
aWxlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgU3RyaW5nSU8KLWltcG9ydCB1bml0dGVzdAotCi1p
bXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vi
c29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdm
aWxlCi0KLQotY2xhc3MgVXRpbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5p
dHRlc3QgZm9yIG1lbW9yaXppbmdmaWxlIG1vZHVsZS4iIiIKLQotICAgIGRlZiBjaGVjayhzZWxm
LCBtZW1vcml6aW5nX2ZpbGUsIG51bV9yZWFkLCBleHBlY3RlZF9saXN0KToKLSAgICAgICAgZm9y
IHVudXNlZCBpbiByYW5nZShudW1fcmVhZCk6Ci0gICAgICAgICAgICBtZW1vcml6aW5nX2ZpbGUu
cmVhZGxpbmUoKQotICAgICAgICBhY3R1YWxfbGlzdCA9IG1lbW9yaXppbmdfZmlsZS5nZXRfbWVt
b3JpemVkX2xpbmVzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlz
dCksIGxlbihhY3R1YWxfbGlzdCkpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHpp
cChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGVkLCBhY3R1YWwpCi0KLSAgICBkZWYgY2hlY2tfd2l0aF9zaXplKHNlbGYsIG1l
bW9yaXppbmdfZmlsZSwgcmVhZF9zaXplLCBleHBlY3RlZF9saXN0KToKLSAgICAgICAgcmVhZF9s
aXN0ID0gW10KLSAgICAgICAgcmVhZF9saW5lID0gJycKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIGxpbmUgPSBtZW1vcml6aW5nX2ZpbGUucmVhZGxpbmUocmVhZF9zaXplKQotICAg
ICAgICAgICAgbGluZV9sZW5ndGggPSBsZW4obGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShsaW5lX2xlbmd0aCA8PSByZWFkX3NpemUpCi0gICAgICAgICAgICBpZiBsaW5lX2xlbmd0
aCA9PSAwOgotICAgICAgICAgICAgICAgIGlmIHJlYWRfbGluZSAhPSAnJzoKLSAgICAgICAgICAg
ICAgICAgICAgcmVhZF9saXN0LmFwcGVuZChyZWFkX2xpbmUpCi0gICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIHJlYWRfbGluZSArPSBsaW5lCi0gICAgICAgICAgICBpZiBsaW5lW2xp
bmVfbGVuZ3RoIC0gMV0gPT0gJ1xuJzoKLSAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5k
KHJlYWRfbGluZSkKLSAgICAgICAgICAgICAgICByZWFkX2xpbmUgPSAnJwotICAgICAgICBhY3R1
YWxfbGlzdCA9IG1lbW9yaXppbmdfZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxlbihhY3R1YWxfbGlzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4ocmVhZF9saXN0
KSkKLSAgICAgICAgZm9yIGV4cGVjdGVkLCBhY3R1YWwsIHJlYWQgaW4gemlwKGV4cGVjdGVkX2xp
c3QsIGFjdHVhbF9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVhZF9saXN0KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFj
dHVhbCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlYWQpCi0KLSAg
ICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICBtZW1vcml6aW5n
X2ZpbGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygK
LSAgICAgICAgICAgICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJykpCi0gICAgICAgIHNlbGYu
Y2hlY2sobWVtb3JpemluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbicsICdXZWxjb21l
J10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX2xpbWl0X21lbW9yaXplZF9s
aW5lcyhzZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVt
b3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5X
b3JsZFxuV2VsY29tZScpLCAyKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwg
MywgWydIZWxsb1xuJywgJ1dvcmxkXG4nXSkKLQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRf
bGluZXNfZW1wdHlfZmlsZShzZWxmKToKLSAgICAgICAgbWVtb3JpemluZ19maWxlID0gbWVtb3Jp
emluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5nSU8oCi0gICAgICAgICAgICAg
ICAgJycpKQotICAgICAgICBzZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwgMTAsIFtdKQotCi0g
ICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lc193aXRoX3NpemUoc2VsZik6Ci0gICAgICAg
IGZvciBzaXplIGluIHJhbmdlKDEsIDEwKToKLSAgICAgICAgICAgIG1lbW9yaXppbmdfZmlsZSA9
IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAg
ICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKLSAgICAgICAgICAgIHNlbGYuY2hl
Y2tfd2l0aF9zaXplKG1lbW9yaXppbmdfZmlsZSwgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsnSGVsbG9cbicsICdXb3JsZFxuJywgJ1dlbGNvbWUnXSkKLQotaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00
IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2sucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF9tb2NrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGMyM2E3M2Q4ZmIx
YTA3YWViM2U1YWU5NDAyY2M4NmI4ZmNjMzY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2sucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDUgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0j
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotCi0iIiJUZXN0cyBmb3IgbW9jayBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IFF1ZXVlCi1p
bXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAg
IyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZy
b20gdGVzdCBpbXBvcnQgbW9jawotCi0KLWNsYXNzIE1vY2tDb25uVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja0Nvbm4gY2xhc3MuIiIiCi0KLSAgICBk
ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Nvbm4gPSBtb2NrLk1vY2tDb25uKCdBQkNc
clxuREVGR1xyXG5cclxuSElKSycpCi0KLSAgICBkZWYgdGVzdF9yZWFkbGluZShzZWxmKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbicsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnREVGR1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xyXG4nLCBzZWxmLl9jb25uLnJlYWRsaW5l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hJSksnLCBzZWxmLl9jb25uLnJlYWRsaW5l
KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNlbGYuX2Nvbm4ucmVhZGxpbmUoKSkK
LQotICAgIGRlZiB0ZXN0X3JlYWQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FC
Q1xyXG5EJywgc2VsZi5fY29ubi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdF
RkdcclxuXHJcbkhJJywgc2VsZi5fY29ubi5yZWFkKDkpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdKSycsIHNlbGYuX2Nvbm4ucmVhZCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
JycsIHNlbGYuX2Nvbm4ucmVhZCgxMCkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2FuZF9yZWFkbGlu
ZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQUJDXHJcbkQnLCBzZWxmLl9jb25u
LnJlYWQoNikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0VGR1xyXG4nLCBzZWxmLl9jb25u
LnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xyXG5ISUpLJywgc2VsZi5f
Y29ubi5yZWFkKDkpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJl
YWRsaW5lKCkpCi0KLSAgICBkZWYgdGVzdF93cml0ZShzZWxmKToKLSAgICAgICAgc2VsZi5fY29u
bi53cml0ZSgnSGVsbG9cclxuJykKLSAgICAgICAgc2VsZi5fY29ubi53cml0ZSgnV29ybGRcclxu
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG9cclxuV29ybGRcclxuJywgc2VsZi5f
Y29ubi53cml0dGVuX2RhdGEoKSkKLQotCi1jbGFzcyBNb2NrQmxvY2tpbmdDb25uVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja0Jsb2NraW5nQ29ubiBj
bGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3JlYWQoc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRo
YXQgZGF0YSBwdXQgdG8gTW9ja0Jsb2NraW5nQ29ubiBieSBwdXRfYnl0ZXMgbWV0aG9kIGNhbiBi
ZQotICAgICAgICByZWFkIGZyb20gaXQuCi0gICAgICAgICIiIgotCi0gICAgICAgIGNsYXNzIExp
bmVSZWFkZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgICAgICAgICAiIiJBIHRlc3QgY2xhc3Mg
dGhhdCBsYXVuY2hlcyBhIHRocmVhZCwgY2FsbHMgcmVhZGxpbmUgb24gdGhlCi0gICAgICAgICAg
ICBzcGVjaWZpZWQgY29ubiByZXBlYXRlZGx5IGFuZCBwdXRzIHRoZSByZWFkIGRhdGEgdG8gdGhl
IHNwZWNpZmllZAotICAgICAgICAgICAgcXVldWUuCi0gICAgICAgICAgICAiIiIKLQotICAgICAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbm4sIHF1ZXVlKToKLSAgICAgICAgICAgICAgICB0
aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVl
dWUgPSBxdWV1ZQotICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm4gPSBjb25uCi0gICAgICAgICAg
ICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXJ0KCkK
LQotICAgICAgICAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgICAgICAgICB3aGlsZSBUcnVl
OgotICAgICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fY29ubi5yZWFkbGluZSgpCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChkYXRhKQotCi0gICAgICAgIGNvbm4gPSBt
b2NrLk1vY2tCbG9ja2luZ0Nvbm4oKQotICAgICAgICBxdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAg
ICAgICAgcmVhZGVyID0gTGluZVJlYWRlcihjb25uLCBxdWV1ZSkKLSAgICAgICAgc2VsZi5mYWls
VW5sZXNzKHF1ZXVlLmVtcHR5KCkpCi0gICAgICAgIGNvbm4ucHV0X2J5dGVzKCdGb28gYmFyXHJc
bicpCi0gICAgICAgIHJlYWQgPSBxdWV1ZS5nZXQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdGb28gYmFyXHJcbicsIHJlYWQpCi0KLQotY2xhc3MgTW9ja1RhYmxlVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgTW9ja1RhYmxlIGNsYXNzLiIiIgotCi0g
ICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fZGljdChzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2Nr
Lk1vY2tUYWJsZSh7J0tleSc6ICdWYWx1ZSd9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdW
YWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVl
JywgdGFibGVbJ2tleSddKQotCi0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fbGlzdChzZWxmKToK
LSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZShbKCdLZXknLCAnVmFsdWUnKV0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZVsna2V5J10pCi0KLSAgICBkZWYgdGVzdF9j
cmVhdGVfZnJvbV90dXBsZShzZWxmKToKLSAgICAgICAgdGFibGUgPSBtb2NrLk1vY2tUYWJsZSgo
KCdLZXknLCAnVmFsdWUnKSwpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRh
YmxlLmdldCgnS0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVb
J2tleSddKQotCi0gICAgZGVmIHRlc3Rfc2V0X2FuZF9nZXQoc2VsZik6Ci0gICAgICAgIHRhYmxl
ID0gbW9jay5Nb2NrVGFibGUoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRhYmxl
LmdldCgnS2V5JykpCi0gICAgICAgIHRhYmxlWydLZXknXSA9ICdWYWx1ZScKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tleScpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgna2V5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLRVknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnVmFsdWUnLCB0YWJsZVsnS2V5J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVl
JywgdGFibGVbJ2tleSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxl
WydLRVknXSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1h
aW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
bXNndXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDIzNDczNWM2MzA0N2QyZWRiMjM4Y2I1MjU1YWQ0NzRhMmU0ZDBhODMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfbXNndXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzNDcgKzAsMCBAQAotIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmln
aHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0j
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbXNndXRp
bCBtb2R1bGUuIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KLQot
aW1wb3J0IGFycmF5Ci1pbXBvcnQgUXVldWUKLWltcG9ydCByYW5kb20KLWltcG9ydCBzdHJ1Y3QK
LWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHpsaWIKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBV
cGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVu
c2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5zdHJlYW0gaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFt
IGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0
IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi1mcm9tIHRl
c3QgaW1wb3J0IG1vY2sKLQotCi0jIFdlIHVzZSBvbmUgZml4ZWQgbm9uY2UgZm9yIHRlc3Rpbmcg
aW5zdGVhZCBvZiBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUFJORy4KLV9NQVNLSU5HX05PTkNF
ID0gJ0FCQ0QnCi0KLQotZGVmIF9tYXNrX2h5YmkoZnJhbWUpOgotICAgIGZyYW1lX2tleSA9IG1h
cChvcmQsIF9NQVNLSU5HX05PTkNFKQotICAgIGZyYW1lX2tleV9sZW4gPSBsZW4oZnJhbWVfa2V5
KQotICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAgICByZXN1bHQuZnJvbXN0cmluZyhm
cmFtZSkKLSAgICBjb3VudCA9IDAKLSAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKHJlc3VsdCkpOgot
ICAgICAgICByZXN1bHRbaV0gXj0gZnJhbWVfa2V5W2NvdW50XQotICAgICAgICBjb3VudCA9IChj
b3VudCArIDEpICUgZnJhbWVfa2V5X2xlbgotICAgIHJldHVybiBfTUFTS0lOR19OT05DRSArIHJl
c3VsdC50b3N0cmluZygpCi0KLQotZGVmIF9pbnN0YWxsX2V4dGVuc2lvbl9wcm9jZXNzb3IocHJv
Y2Vzc29yLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgcmVzcG9uc2UgPSBwcm9jZXNz
b3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgaWYgcmVzcG9uc2UgaXMgbm90IE5vbmU6
Ci0gICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1fb3B0aW9ucykK
LSAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycy5hcHBlbmQocHJvY2Vzc29y
KQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICByZWFkX2Rh
dGEsCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1Ob25lLAotICAgICAgICBwZXJtZXNz
YWdlX2RlZmxhdGVfcmVxdWVzdD1Ob25lKToKLSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNv
bm5lY3Rpb249bW9jay5Nb2NrQ29ubignJy5qb2luKHJlYWRfZGF0YSkpKQotICAgIHJlcS53c192
ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QKLSAgICByZXEud3NfZXh0ZW5zaW9u
X3Byb2Nlc3NvcnMgPSBbXQotCi0gICAgcHJvY2Vzc29yID0gTm9uZQotICAgIGlmIGRlZmxhdGVf
ZnJhbWVfcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZy
YW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGRlZmxhdGVfZnJhbWVfcmVxdWVzdCkKLSAgICBlbGlmIHBl
cm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICBwcm9jZXNzb3Ig
PSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBw
ZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCkKLQotICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFt
T3B0aW9ucygpCi0gICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBOb25lOgotICAgICAgICBfaW5zdGFs
bF9leHRlbnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVxLCBzdHJlYW1fb3B0aW9ucykKLSAg
ICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMpCi0KLSAgICByZXR1
cm4gcmVxCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdCgqZnJhbWVzKToKLSAgICAiIiJDcmVhdGVz
IE1vY2tSZXF1ZXN0IHVzaW5nIGRhdGEgZ2l2ZW4gYXMgZnJhbWVzLgotCi0gICAgZnJhbWVzIHdp
bGwgYmUgcmV0dXJuZWQgb24gY2FsbGluZyByZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZCgpIHdoZXJl
IHJlcXVlc3QKLSAgICBpcyBNb2NrUmVxdWVzdCByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uLgot
ICAgICIiIgotCi0gICAgcmVhZF9kYXRhID0gW10KLSAgICBmb3IgKGhlYWRlciwgYm9keSkgaW4g
ZnJhbWVzOgotICAgICAgICByZWFkX2RhdGEuYXBwZW5kKGhlYWRlciArIF9tYXNrX2h5YmkoYm9k
eSkpCi0KLSAgICByZXR1cm4gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YShyZWFkX2RhdGEp
Ci0KLQotZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpOgotICAgICIiIkNyZWF0ZXMgTW9j
a1JlcXVlc3QuCi0KLSAgICBEYXRhIHdyaXR0ZW4gdG8gYSBNb2NrUmVxdWVzdCBjYW4gYmUgcmVh
ZCBvdXQgYnkgY2FsbGluZwotICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKS4K
LSAgICAiIiIKLQotICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1v
Y2tCbG9ja2luZ0Nvbm4oKSkKLSAgICByZXEud3NfdmVyc2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZ
QklfTEFURVNUCi0gICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKLSAgICByZXEu
d3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAgcmV0dXJuIHJlcQot
Ci0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShyZWFkX2RhdGE9JycpOgotICAgIHJlcSA9
IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKHJlYWRfZGF0YSkpCi0g
ICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQotICAgIHJldHVybiByZXEKLQot
Ci1kZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKToKLSAgICByZXEgPSBtb2Nr
Lk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdDb25uKCkpCi0gICAgcmVx
LndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQotICAgIHJldHVybiByZXEKLQotCi1jbGFz
cyBCYXNpY01lc3NhZ2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJCYXNpYyB0ZXN0
cyBmb3IgU3RyZWFtLiIiIgotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4
MDVIZWxsbycsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAgICBw
YXlsb2FkID0gJ2EnICogMTI1Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQot
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZCcgKyBwYXlsb2FkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfbWVkaXVtX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4
ODFceDdlXHgwMFx4N2UnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAq
ICgoMSA8PCAxNikgLSAxKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHg4MVx4N2VceGZmXHhmZicgKyBwYXlsb2FkLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRl
ZiB0ZXN0X3NlbmRfbGFyZ2VfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcGF5bG9hZCA9ICdhJyAq
ICgxIDw8IDE2KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnXHg4MVx4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCcgKyBwYXls
b2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQotICAgICAgICAjIFUrNjVlNSBpcyBlbmNvZGVkIGFz
IGU2LDk3LGE1IGluIFVURi04Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDAzXHhl
Nlx4OTdceGE1JywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRzKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNndXRp
bC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsICcgJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnIScsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFc
eDA1SGVsbG9ceDAwXHgwMSBceDAwXHgwNVdvcmxkXHg4MFx4MDEhJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9zZW5kX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlvbihzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIFRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1x4MDFceDBjSGVsbG8gV29ybGQhXHg4MFx4MDAnLAotICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAg
ICAgICAgICAgICgnXHg4MVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NicsICdXb3JsZCEnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJyAqIDEyNQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ZmQnLCBwYXlsb2FkKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVkaXVtX21lc3NhZ2Uoc2VsZik6
Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgoJ1x4ODFceGZlXHgwMFx4N2UnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAg
ICAgICBwYXlsb2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEpCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4ZmZceGZmJywgcGF5bG9hZCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xhcmdlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBh
eWxvYWQgPSAnYScgKiAoMSA8PCAxNikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgKLSAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgw
MCcsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9sZW5ndGhf
bm90X2VuY29kZWRfdXNpbmdfbWluaW1hbF9udW1iZXJfb2ZfYnl0ZXMoc2VsZik6Ci0gICAgICAg
ICMgTG9nIHdhcm5pbmcgb24gcmVjZWl2aW5nIGJhZCBwYXlsb2FkIGxlbmd0aCBmaWVsZCB0aGF0
IGRvZXNuJ3QgdXNlCi0gICAgICAgICMgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgYnV0IGNvbnRp
bnVlIHByb2Nlc3NpbmcuCi0KLSAgICAgICAgcGF5bG9hZCA9ICdhJwotICAgICAgICAjIDEgYnl0
ZSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aG91dCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVs
ZC4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4
MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMScsIHBheWxvYWQpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHg4MycsICdceGU2XHg5Y1x4YWMn
KSkKLSAgICAgICAgIyBVKzY3MmMgaXMgZW5jb2RlZCBhcyBlNiw5YyxhYyBpbiBVVEYtOAotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2NzJjJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZXJyb25lb3VzX3VuaWNv
ZGUoc2VsZik6Ci0gICAgICAgICMgXHg4MCBhbmQgXHg4MSBhcmUgaW52YWxpZCBhcyBVVEYtOC4K
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceDgyJywgJ1x4ODBceDgx
JykpCi0gICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNob3VsZCByYWlzZSBJbnZhbGlkVVRG
OEV4Y2VwdGlvbgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkVVRGOEV4Y2VwdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X2ZyYWdtZW50cyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAg
ICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwKLSAgICAgICAgICAgICgnXHgwMFx4ODEn
LCAnICcpLAotICAgICAgICAgICAgKCdceDAwXHg4NScsICdXb3JsZCcpLAotICAgICAgICAgICAg
KCdceDgwXHg4MScsICchJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxk
IScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZV9mcmFnbWVudHNfdW5pY29kZShzZWxmKToKLSAgICAgICAgIyBVVEYtOCBlbmNvZGVzIFUr
NmYyMiBpbnRvIGU2YmNhMiBhbmQgVSs1YjU3IGludG8gZTVhZDk3LgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4MicsICdceGU2XHhiYycp
LAotICAgICAgICAgICAgKCdceDAwXHg4MicsICdceGEyXHhlNScpLAotICAgICAgICAgICAgKCdc
eDgwXHg4MicsICdceGFkXHg5NycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2ZjIy
XHU1YjU3JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVz
dF9yZWNlaXZlX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190ZXJtaW5hdGlvbihzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4OGMn
LCAnSGVsbG8gV29ybGQhJyksICgnXHg4MFx4ODAnLCAnJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfZHVwbGljYXRlX3N0YXJ0KHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDAxXHg4
NScsICdIZWxsbycpLCAoJ1x4MDFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2ludGVybWVkaWF0
ZV9idXRfbm90X3N0YXJ0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVl
c3QoKCdceDAwXHg4NScsICdIZWxsbycpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1
dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19lbmRfYnV0X25vdF9zdGFydGVkKHNl
bGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MFx4ODUnLCAnSGVs
bG8nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGZceDg2JywgJ0lHTk9SRScpLCAoJ1x4ODFceDg1Jywg
J0hlbGxvJyksCi0gICAgICAgICAgICAoJ1x4OGZceDg5JywgJ0RJU1JFR0FSRCcpLCAoJ1x4ODFc
eDg2JywgJ1dvcmxkIScpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLlVuc3Vw
cG9ydGVkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
bycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0
KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODhceDhhJywgc3RydWN0LnBhY2so
JyFIJywgMTAwMCkgKyAnR29vZCBieWUnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxMDAwLCByZXF1ZXN0LndzX2Nsb3NlX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0dvb2QgYnllJywgcmVxdWVzdC53c19jbG9zZV9yZWFzb24pCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX2xvbmdlc3RfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJlYXNvbiA9ICdhJyAqIDEyMwotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg4XHhmZCcs
Ci0gICAgICAgICAgICAgc3RydWN0LnBhY2soJyFIJywgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xP
U1VSRSkgKyByZWFzb24pKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0
aW9uKGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhc29uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
cXVlc3Qud3NfY2xvc2VfY29kZSwgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiwgcmVhc29uKQotCi0g
ICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV90b29fbG9uZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFk
T3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0uY2xv
c2VfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NV
UkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEyNCkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfY2xvc2VfaW5jb25zaXN0ZW50X2NvZGVfYW5kX3JlYXNvbihzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgICMgcmVhc29uIHBhcmFtZXRlciBt
dXN0IG5vdCBiZSBzcGVjaWZpZWQgd2hlbiBjb2RlIGlzIE5vbmUuCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICdhJykKLQotICAgIGRlZiB0ZXN0X3NlbmRfcGlu
ZyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceDg5XHgwY0hlbGxvIFdvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9sb25nZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Qo
KQotICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnYScgKiAxMjUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDdkJyArICdhJyAqIDEyNSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYg
dGVzdF9zZW5kX3BpbmdfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlv
bkV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRpbC5zZW5kX3Bpbmcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICdhJyAqIDEyNikKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcGluZyhzZWxmKToKLSAg
ICAgICAgIiIiVGVzdHMgcmVjZWl2aW5nIGEgcGluZyBjb250cm9sIGZyYW1lLiIiIgotCi0gICAg
ICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIG1lc3NhZ2UpOgotICAgICAgICAgICAgcmVxdWVzdC5j
YWxsZWQgPSBUcnVlCi0KLSAgICAgICAgIyBTdHJlYW0gYXV0b21hdGljYWxseSByZXNwb25kIHRv
IHBpbmcgd2l0aCBwb25nIHdpdGhvdXQgYW55IGFjdGlvbgotICAgICAgICAjIGJ5IGFwcGxpY2F0
aW9uIGxheWVyLgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAg
ICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVz
dCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDA1SGVsbG8nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg5XHg4NScs
ICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHJlcXVlc3Qub25fcGlu
Z19oYW5kbGVyID0gaGFuZGxlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
cmVxdWVzdC5jYWxsZWQpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2xvbmdlc3RfcGluZyhzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4
OVx4ZmQnLCAnYScgKiAxMjUpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDdkJyArICdhJyAqIDEyNSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAg
ICBkZWYgdGVzdF9yZWNlaXZlX3BpbmdfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDBceDdlJywgJ2EnICogMTI2KSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9wb25nKHNl
bGYpOgotICAgICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBwb25nIGNvbnRyb2wgZnJhbWUuIiIi
Ci0KLSAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVzc2FnZSk6Ci0gICAgICAgICAgICBy
ZXF1ZXN0LmNhbGxlZCA9IFRydWUKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KAotICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxk
JykpCi0gICAgICAgIHJlcXVlc3Qub25fcG9uZ19oYW5kbGVyID0gaGFuZGxlcgotICAgICAgICBt
c2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdceDg5XHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAgICMgVmFsaWQgcG9uZyBpcyByZWNlaXZl
ZCwgYnV0IHJlY2VpdmVfbWVzc2FnZSB3b24ndCByZXR1cm4gZm9yIGl0LgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
ICAgICAgICAjIENoZWNrIHRoYXQgbm90aGluZyB3YXMgd3JpdHRlbiBhZnRlciByZWNlaXZlX21l
c3NhZ2UgY2FsbC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4MDVIZWxsbycsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0LmNhbGxlZCkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfdW5zb2xpY2l0ZWRfcG9uZyhzZWxmKToKLSAgICAgICAgIyBVbnNvbGljaXRl
ZCBwb25nIGlzIGFsbG93ZWQgZnJvbSBIeUJpIDA3LgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KAotICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1
JywgJ1dvcmxkJykpCi0gICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCi0K
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4YVx4
ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBtc2d1dGlsLnNl
bmRfcGluZyhyZXF1ZXN0LCAnSnVtYm8nKQotICAgICAgICAjIEJvZHkgbWlzbWF0Y2guCi0gICAg
ICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9waW5n
X2Nhbm5vdF9iZV9mcmFnbWVudGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCgnXHgwOVx4ODUnLCAnSGVsbG8nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
bXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0KQotCi0gICAgZGVmIHRlc3RfcGluZ193aXRoX3Rvb19sb25nX3BheWxvYWQoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDFceDAwJywgJ2En
ICogMjU2KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVF
eGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0KLWNsYXNzIERlZmxh
dGVGcmFtZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIlRlc3RzIGZvciBjaGVja2lu
ZyBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAg
ICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9X
QklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1
ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hl
bGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQot
ICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXBy
ZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBj
b21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4o
Y29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwot
Ci0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQot
ICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZM
VVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0g
ICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAg
ICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9zZW5kX21lc3NhZ2VfYmZpbmFsKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAg
ICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAg
ICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnNbMF0KLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3Iuc2V0X2JmaW5hbChUcnVl
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAg
ICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29ybGQnKQotCi0gICAgICAgIGV4cGVj
dGVkID0gJycKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFY
X1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hl
bGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpf
RklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsbyArIGNo
cigwKQotICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxv
KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgY29tcHJl
c3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3Nl
ZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRf
d29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0g
J1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29t
cHJlc3NlZF93b3JsZAotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2Fn
ZV9jb21wX2JpdChzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAot
ICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16
bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAnJywgZGVmbGF0ZV9m
cmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVu
KHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBkZWZsYXRlX2ZyYW1l
X3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgZGVmbGF0ZV9m
cmFtZV9wcm9jZXNzb3IuZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCi0gICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIGRlZmxhdGVfZnJh
bWVfcHJvY2Vzc29yLmVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCi0gICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAgICAgZXhwZWN0ZWQgPSAn
JwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRd
Ci0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0g
ICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBleHBlY3RlZCAr
PSAnXHg4MVx4MDVIZWxsbycKLQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXBy
ZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9o
ZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4
YzElYycgJSBsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNv
bXByZXNzZWRfMm5kX2hlbGxvCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVyKHNlbGYpOgotICAgICAgICBjb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtl
b3ZlcicsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0g
ICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdIZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29t
cHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX21lc3Nh
Z2UgPSBjb21wcmVzc2VkX21lc3NhZ2VbOi00XQotICAgICAgICBleHBlY3RlZCA9ICdceGMxJWMn
ICUgbGVuKGNvbXByZXNzZWRfbWVzc2FnZSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3Nl
ZF9tZXNzYWdlCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4cGVj
dGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RfcGFyYW1ldGVycyhzZWxmKToKLSAgICAg
ICAgIiIiVGVzdHMgdGhhdCBpZiB0aGVyZSdzIGFueXRoaW5nIHdyb25nIHdpdGggZGVmbGF0ZS1m
cmFtZSBleHRlbnNpb24KLSAgICAgICAgcmVxdWVzdCwgZGVmbGF0ZS1mcmFtZSBpcyByZWplY3Rl
ZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgICMgbWF4X3dp
bmRvd19iaXRzIGxlc3MgdGhhbiA4IGlzIGlsbGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRf
cGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnNycpCi0gICAgICAgIHByb2Nlc3NvciA9IERl
ZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAg
ICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBtYXhfd2luZG93X2JpdHMgZ3JlYXRlciB0aGFu
IDE1IGlzIGlsbGVnYWwuCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2lu
ZG93X2JpdHMnLCAnMTYnKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
Ci0gICAgICAgICMgTm9uIGludGVnZXIgbWF4X3dpbmRvd19iaXRzIGlzIGlsbGVnYWwuCi0gICAg
ICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnZm9vYmFyJykK
LSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVu
c2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25Q
YXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIG5vX2Nv
bnRleHRfdGFrZW92ZXIgbXVzdCBub3QgaGF2ZSBhbnkgdmFsdWUuCi0gICAgICAgIGV4dGVuc2lv
bi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCi0gICAgICAg
IHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVz
cG9uc2UoKSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVFeHRlbnNp
b25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBwcm9jZXNzb3Iuc2V0X3Jlc3BvbnNlX3dp
bmRvd19iaXRzKDgpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25f
cmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2UuaGFzX3BhcmFtZXRl
cignbWF4X3dpbmRvd19iaXRzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzgnLCByZXNw
b25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtYXhfd2luZG93X2JpdHMnKSkKLQotICAgICAgICBl
eHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1F
X0VYVEVOU0lPTikKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJv
Y2Vzc29yKGV4dGVuc2lvbikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9yZXNwb25zZV9ub19jb250
ZXh0X3Rha2VvdmVyKFRydWUpCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRl
bnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2UuaGFzX3Bh
cmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
Ci0gICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdub19jb250ZXh0X3Rh
a2VvdmVyJykgaXMgTm9uZSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToK
LSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQot
ICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXBy
ZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVz
c2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2Vk
X2hlbGxvKQotCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ID0gY29tcHJlc3MuY29tcHJl
c3MoJ1dlYlNvY2tldCcpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9IGNvbXByZXNz
LmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd2Vic29ja2V0ICs9ICdc
eDAwJwotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dlYnNvY2tl
dCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93ZWJzb2Nr
ZXQpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKLQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxk
JykKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00
XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4
ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAg
ICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHli
aShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAot
ICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV2ViU29ja2V0JywgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfbWVzc2FnZV9jbGllbnRfdXNpbmdfc21hbGxlcl93aW5kb3coc2VsZik6Ci0g
ICAgICAgICIiIlRlc3QgdGhhdCBmcmFtZXMgY29taW5nIGZyb20gYSBjbGllbnQgd2hpY2ggaXMg
dXNpbmcgc21hbGxlciB3aW5kb3cKLSAgICAgICAgc2l6ZSB0aGF0IHRoZSBzZXJ2ZXIgYXJlIGNv
cnJlY3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBVc2luZyB0aGUgc21h
bGxlc3Qgd2luZG93IGJpdHMgb2YgOCBmb3IgZ2VuZXJhdGluZyBpbnB1dCBmcmFtZXMuCi0gICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZB
VUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtOCkKLQotICAgICAgICBkYXRhID0gJycK
LQotICAgICAgICAjIFVzZSBhIGZyYW1lIHdob3NlIGNvbnRlbnQgaXMgYmlnZ2VyIHRoYW4gdGhl
IGNsaWVudHMnIERFRkxBVEUgd2luZG93Ci0gICAgICAgICMgc2l6ZSBiZWZvcmUgY29tcHJlc3Np
b24uIFRoZSBjb250ZW50IG1haW5seSBjb25zaXN0cyBvZiAnYScgYnV0Ci0gICAgICAgICMgcmVw
ZXRpdGlvbiBvZiAnYicgaXMgcHV0IGF0IHRoZSBoZWFkIGFuZCB0YWlsIHNvIHRoYXQgaWYgdGhl
IHdpbmRvdwotICAgICAgICAjIHNpemUgaXMgYmlnLCB0aGUgaGVhZCBpcyBiYWNrLXJlZmVyZW5j
ZWQgYnV0IGlmIHNtYWxsLCBub3QuCi0gICAgICAgIHBheWxvYWQgPSAnYicgKiA2NCArICdhJyAq
IDEwMjQgKyAnYicgKiA2NAotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29t
cHJlc3MocGF5bG9hZCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNz
ZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2Vk
X2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hl
bGxvKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEn
ICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNz
YWdlX2NvbXBfYml0KHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwg
LXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4
YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBf
bWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgZGF0YSArPSAnXHg4MVx4ODUn
ICsgX21hc2tfaHliaSgnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVz
c29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxB
VEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBj
b21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF8y
bmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4
YzElYycgJSAobGVuKGNvbXByZXNzZWRfMm5kX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEg
Kz0gX21hc2tfaHliaShjb21wcmVzc2VkXzJuZF9oZWxsbykKLQotICAgICAgICBleHRlbnNpb24g
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lP
TikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAg
ICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBm
b3IgaSBpbiB4cmFuZ2UoMyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2
ZV9tZXNzYWdlX3ZhcmlvdXNfYnR5cGUoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAweDgwKQotICAgICAg
ICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAgICAgICBjb21wcmVz
c2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2NrZXQnKQotICAgICAgICBj
b21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAg
ICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAgICAgZGF0YSArPSAnXHhj
MSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSAr
PSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAgICAgIGNvbXByZXNzID0g
emxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9O
LCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNz
ZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVj
JyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNr
X2h5YmkoY29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAg
IGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkg
KyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVf
ZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVu
c2lvbi4iIiIKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBj
b21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9uLmFk
ZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAgICAg
cHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9u
KQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAgICAgcmVzcG9uc2UuaGFzX3BhcmFt
ZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIE5vbmUsIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3Nl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9u
LkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignY2xpZW50X21h
eF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VEZWZs
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKLQotICAgICAgICBwcm9jZXNzb3Iuc2V0
X2NsaWVudF9tYXhfd2luZG93X2JpdHMoOCkKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRf
bm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5n
ZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICc4JywgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnY2xpZW50X21heF93aW5k
b3dfYml0cycpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoCi0gICAgICAgICAgICByZXNwb25z
ZS5oYXNfcGFyYW1ldGVyKCdjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcicpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgIHJlc3BvbnNl
LmdldF9wYXJhbWV0ZXJfdmFsdWUoJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyJykpCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVz
dD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxs
bycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
ICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhf
V0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVs
bG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9T
WU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6
LTRdCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykK
LSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2VtcHR5X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhh
dCBhbiBlbXB0eSBtZXNzYWdlIGlzIGNvbXByZXNzZWQgY29ycmVjdGx5LiIiIgotCi0gICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAg
Y29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNz
YWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAgICAgbXNndXRpbC5zZW5kX21l
c3NhZ2UocmVxdWVzdCwgJycpCi0KLSAgICAgICAgIyBQYXlsb2FkIGluIGJpbmFyeTogMGIwMDAw
MDAwMAotICAgICAgICAjIEZyb20gTFNCLAotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgw
KQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAgICAg
IyAtIDUgYml0cyBvZiBwYWRkaW5nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFceDAx
XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3dpdGhfbnVsbF9jaGFyYWN0
ZXIoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIHNpbXBsZSBwYXlsb2FkIChvbmUgbnVs
bCkgaXMgZnJhbWVkIGNvcnJlY3RseS4iIiIKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21f
cmF3ZGF0YSgKLSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9
ZXh0ZW5zaW9uKQotCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdceDAw
JykKLQotICAgICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAwYjAxMTAwMDEwIDBiMDAwMDAwMDAg
MGIwMDAwMDAwMAotICAgICAgICAjIEZyb20gTFNCLAotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJ
TkFMICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFICgwMSB0aGF0IG1lYW5zIGZpeGVk
IEh1ZmZtYW4pCi0gICAgICAgICMgLSA4IGJpdHMgb2YgdGhlIGZpcnN0IGNvZGUgKDAwMTEwMDAw
IHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZSBsaXRlcmFsCi0gICAgICAgICMgICBhbHBoYWJldCAw
eDAwKQotICAgICAgICAjIC0gNyBiaXRzIG9mIHRoZSBzZWNvbmQgY29kZSAoMDAwMDAwMCB0aGF0
IGlzIHRoZSBjb2RlIGZvciB0aGUKLSAgICAgICAgIyAgIGVuZC1vZi1ibG9jaykKLSAgICAgICAg
IyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBvZiBCVFlQRSAobm8g
Y29tcHJlc3Npb24pCi0gICAgICAgICMgLSAyIGJpdHMgb2YgcGFkZGluZwotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceGMxXHgwM1x4NjJceDAwXHgwMCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF90d29fbWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRl
bnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0g
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZB
VUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAg
ICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAg
ICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAg
ICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBl
eHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWQoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Rf
ZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVx
dWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdI
ZWxsbycsIGVuZD1GYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
J0dvb2RieWUnLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdXb3JsZCcpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAg
ICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21w
cmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNv
bXByZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAg
ICAgICAgY29tcHJlc3NlZF9nb29kYnllID0gY29tcHJlc3MuY29tcHJlc3MoJ0dvb2RieWUnKQot
ICAgICAgICBjb21wcmVzc2VkX2dvb2RieWUgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDAwJWMnICUgbGVuKGNvbXByZXNzZWRfZ29v
ZGJ5ZSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9nb29kYnllCi0gICAgICAgIGNv
bXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21w
cmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVj
dGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfd29ybGQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfZmlyc3RfZnJhbWUoc2VsZik6Ci0gICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9u
LlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJl
cXVlc3QsICcnLCBlbmQ9RmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdIZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAg
ICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAt
emxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21w
cmVzcygnJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGli
LlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVz
c2VkX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAg
IGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBj
b21wcmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAg
ICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6LTRdCi0gICAgICAgIGV4
cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkpCi0gICAgICAgIGV4cGVj
dGVkICs9IGNvbXByZXNzZWRfZW1wdHkKLSAgICAgICAgcHJpbnQoJyVyJyAlIGV4cGVjdGVkKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9lbXB0
eV9sYXN0X2ZyYW1lKHNlbGYpOgotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9u
UGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFs
c2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnKQotCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAg
ICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkg
PSBjb21wcmVzcy5jb21wcmVzcygnJykKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9
IGNvbXByZXNzZWRfZW1wdHlbOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAlIGxl
bihjb21wcmVzc2VkX2VtcHR5KQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2VtcHR5
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91c2luZ19zbWFsbF93
aW5kb3coc2VsZik6Ci0gICAgICAgIGNvbW1vbl9wYXJ0ID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6JwotICAgICAgICB0ZXN0X21lc3NhZ2UgPSBjb21tb25fcGFydCArICctJyAqIDMwMDAw
ICsgY29tbW9uX3BhcnQKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5T
SU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3df
Yml0cycsICc4JykKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdGVzdF9tZXNzYWdl
KQotCi0gICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9oZWFkZXJfc2l6ZSA9IDIKLSAgICAgICAg
ZXhwZWN0ZWRfd2Vic29ja2V0X3BheWxvYWRfc2l6ZSA9IDkxCi0KLSAgICAgICAgYWN0dWFsX2Zy
YW1lID0gcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplICsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGxlbihhY3R1YWxfZnJhbWUpKQotICAgICAgICBhY3R1YWxfaGVhZGVyID0g
YWN0dWFsX2ZyYW1lWzA6ZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplXQotICAgICAgICBh
Y3R1YWxfcGF5bG9hZCA9IGFjdHVhbF9mcmFtZVtleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3Np
emU6XQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgJ1x4YzEl
YycgJSBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplLCBhY3R1YWxfaGVhZGVyKQotICAg
ICAgICBkZWNvbXByZXNzID0gemxpYi5kZWNvbXByZXNzb2JqKC04KQotICAgICAgICBkZWNvbXBy
ZXNzZWRfbWVzc2FnZSA9IGRlY29tcHJlc3MuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAgICBh
Y3R1YWxfcGF5bG9hZCArICdceDAwXHgwMFx4ZmZceGZmJykKLSAgICAgICAgZGVjb21wcmVzc2Vk
X21lc3NhZ2UgKz0gZGVjb21wcmVzcy5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dGVzdF9tZXNzYWdlLCBkZWNvbXByZXNzZWRfbWVzc2FnZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgwLCBsZW4oZGVjb21wcmVzcy51bnVzZWRfZGF0YSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMCwgbGVuKGRlY29tcHJlc3MudW5jb25zdW1lZF90YWlsKSkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfbWVzc2FnZV9ub19jb250ZXh0X3Rha2VvdmVyX3BhcmFtZXRlcihzZWxmKToKLSAgICAg
ICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAg
ICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5zaW9u
LmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAg
ICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9y
IGkgaW4geHJhbmdlKDMpOgotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ0hlbGxvJywgZW5kPVRydWUpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAotICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZmlyc3RfaGVsbG8gPSBj
b21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBmaXJzdF9oZWxsbyArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhwZWN0ZWQgPSAnXHg0MSVjJyAl
IGxlbihmaXJzdF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gZmlyc3RfaGVsbG8KLSAgICAg
ICAgc2Vjb25kX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgc2Vj
b25kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBz
ZWNvbmRfaGVsbG8gPSBzZWNvbmRfaGVsbG9bOi00XQotICAgICAgICBleHBlY3RlZCArPSAnXHg4
MCVjJyAlIGxlbihzZWNvbmRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IHNlY29uZF9oZWxs
bwotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWQg
KyBleHBlY3RlZCArIGV4cGVjdGVkLAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFnbWVudGVk
X2JmaW5hbChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lP
TikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAg
ICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nl
c3NvcnMpKQotICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLnNldF9i
ZmluYWwoVHJ1ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxv
JywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29y
bGQnLCBlbmQ9VHJ1ZSkKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0KLSAgICAgICAgY29tcHJl
c3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJF
U1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG8gKyBjaHIoMCkKLSAgICAgICAgZXhwZWN0ZWQgKz0g
J1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29t
cHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVz
cygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxk
ICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRf
d29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAg
ICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFV
TFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBk
YXRhID0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAg
ZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgIyBDbG9zZSBm
cmFtZQotICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNr
KCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21f
cmF3ZGF0YSgKLSAgICAgICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVz
dD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfbWVzc2FnZV9yYW5kb21fc2VjdGlvbihzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGEg
Y29tcHJlc3NlZCBtZXNzYWdlIGZyYWdtZW50ZWQgaW50byBsb3RzIG9mIGNodW5rcyBpcwotICAg
ICAgICBjb3JyZWN0bHkgcmVjZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJhbmRvbS5z
ZWVkKGE9MCkKLSAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oCi0gICAgICAgICAgICBbY2hyKHJh
bmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0pCi0KLSAgICAgICAg
Y29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRf
Q09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29t
cHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkKLSAgICAgICAgY29t
cHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAg
ICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzc2VkX3BheWxvYWRbOi00XQotCi0gICAg
ICAgICMgRnJhZ21lbnQgdGhlIGNvbXByZXNzZWQgcGF5bG9hZCBpbnRvIGxvdHMgb2YgZnJhbWVz
LgotICAgICAgICBieXRlc19jaHVua2VkID0gMAotICAgICAgICBkYXRhID0gJycKLSAgICAgICAg
ZnJhbWVfY291bnQgPSAwCi0KLSAgICAgICAgY2h1bmtfc2l6ZXMgPSBbXQotCi0gICAgICAgIHdo
aWxlIGJ5dGVzX2NodW5rZWQgPCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKToKLSAgICAgICAgICAg
ICMgTWFrZSBzdXJlIHRoYXQKLSAgICAgICAgICAgICMgLSB0aGUgbGVuZ3RoIG9mIGNodW5rcyBh
cmUgZXF1YWwgb3IgbGVzcyB0aGFuIDEyNSBzbyB0aGF0IHdlIGNhbgotICAgICAgICAgICAgIyAg
IHVzZSAxIG9jdGV0IGxlbmd0aCBoZWFkZXIgZm9ybWF0IGZvciBhbGwgZnJhbWVzLgotICAgICAg
ICAgICAgIyAtIGF0IGxlYXN0IDEwIGNodW5rcyBhcmUgY3JlYXRlZC4KLSAgICAgICAgICAgIGNo
dW5rX3NpemUgPSByYW5kb20ucmFuZGludCgKLSAgICAgICAgICAgICAgICAxLCBtaW4oMTI1LAot
ICAgICAgICAgICAgICAgICAgICAgICBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSAvIDEwLAotICAg
ICAgICAgICAgICAgICAgICAgICBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSAtIGJ5dGVzX2NodW5r
ZWQpKQotICAgICAgICAgICAgY2h1bmtfc2l6ZXMuYXBwZW5kKGNodW5rX3NpemUpCi0gICAgICAg
ICAgICBjaHVuayA9IGNvbXByZXNzZWRfcGF5bG9hZFsKLSAgICAgICAgICAgICAgICBieXRlc19j
aHVua2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotICAgICAgICAgICAgYnl0ZXNfY2h1
bmtlZCArPSBjaHVua19zaXplCi0KLSAgICAgICAgICAgIGZpcnN0X29jdGV0ID0gMHgwMAotICAg
ICAgICAgICAgaWYgbGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfb2N0ZXQg
PSBmaXJzdF9vY3RldCB8IDB4NDIKLSAgICAgICAgICAgIGlmIGJ5dGVzX2NodW5rZWQgPT0gbGVu
KGNvbXByZXNzZWRfcGF5bG9hZCk6Ci0gICAgICAgICAgICAgICAgZmlyc3Rfb2N0ZXQgPSBmaXJz
dF9vY3RldCB8IDB4ODAKLQotICAgICAgICAgICAgZGF0YSArPSAnJWMlYycgJSAoZmlyc3Rfb2N0
ZXQsIGNodW5rX3NpemUgfCAweDgwKQotICAgICAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNo
dW5rKQotCi0gICAgICAgICAgICBmcmFtZV9jb3VudCArPSAxCi0KLSAgICAgICAgcHJpbnQoIkNo
dW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxl
bihjaHVua19zaXplcykgPiAxMCkKLQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRh
dGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAn
R29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAg
ICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2Fn
ZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfdHdvX21lc3NhZ2VzKHNlbGYpOgot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
LQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJl
c3MuY29tcHJlc3MoJ0hlbGxvV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBzcGxpdF9wb3NpdGlvbiA9IGxl
bihjb21wcmVzc2VkX2hlbGxvKSAvIDIKLSAgICAgICAgZGF0YSArPSAnXHg0MSVjJyAlIChzcGxp
dF9wb3NpdGlvbiB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2Vk
X2hlbGxvWzpzcGxpdF9wb3NpdGlvbl0pCi0KLSAgICAgICAgZGF0YSArPSAnXHg4MCVjJyAlICgo
bGVuKGNvbXByZXNzZWRfaGVsbG8pIC0gc3BsaXRfcG9zaXRpb24pIHwgMHg4MCkKLSAgICAgICAg
ZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG9bc3BsaXRfcG9zaXRpb246XSkKLQot
ICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykK
LQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykK
LSAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQot
ICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4ODAp
Ci0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAgICAg
ICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShz
dHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVS
TUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZs
YXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsb1dl
YlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2Uo
cmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfbWl4ZWRfYnR5cGUoc2Vs
Zik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIG1lc3NhZ2UgY29tcHJlc3NlZCB1c2luZyBsb3Rz
IG9mIERFRkxBVEUgYmxvY2tzIHdpdGgKLSAgICAgICAgdmFyaW91cyBmbHVzaCBtb2RlIGlzIGNv
cnJlY3RseSByZWNlaXZlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmFuZG9tLnNlZWQoYT0w
KQotICAgICAgICBwYXlsb2FkID0gJycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJh
bmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLQotICAgICAgICBjb21wcmVz
cyA9IE5vbmUKLQotICAgICAgICAjIEZyYWdtZW50IHRoZSBjb21wcmVzc2VkIHBheWxvYWQgaW50
byBsb3RzIG9mIGZyYW1lcy4KLSAgICAgICAgYnl0ZXNfY2h1bmtlZCA9IDAKLSAgICAgICAgY29t
cHJlc3NlZF9wYXlsb2FkID0gJycKLQotICAgICAgICBjaHVua19zaXplcyA9IFtdCi0gICAgICAg
IG1ldGhvZHMgPSBbXQotICAgICAgICBzeW5jX3VzZWQgPSBGYWxzZQotICAgICAgICBmaW5pc2hf
dXNlZCA9IEZhbHNlCi0KLSAgICAgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihwYXlsb2Fk
KToKLSAgICAgICAgICAgICMgTWFrZSBzdXJlIGF0IGxlYXN0IDEwIGNodW5rcyBhcmUgY3JlYXRl
ZC4KLSAgICAgICAgICAgIGNodW5rX3NpemUgPSByYW5kb20ucmFuZGludCgKLSAgICAgICAgICAg
ICAgICAxLCBtaW4oMTAwLCBsZW4ocGF5bG9hZCkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAg
ICAgIGNodW5rX3NpemVzLmFwcGVuZChjaHVua19zaXplKQotICAgICAgICAgICAgY2h1bmsgPSBw
YXlsb2FkW2J5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCi0KLSAgICAg
ICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgICAgICAgICBpZiBjb21w
cmVzcyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sCi0gICAg
ICAgICAgICAgICAgICAgIHpsaWIuREVGTEFURUQsCi0gICAgICAgICAgICAgICAgICAgIC16bGli
Lk1BWF9XQklUUykKLQotICAgICAgICAgICAgaWYgYnl0ZXNfY2h1bmtlZCA9PSBsZW4ocGF5bG9h
ZCk6Ci0gICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXBy
ZXNzKGNodW5rKQotICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3Bh
eWxvYWQgPSBjb21wcmVzc2VkX3BheWxvYWRbOi00XQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBtZXRob2QgPSByYW5kb20ucmFuZGludCgwLCAxKQotICAgICAgICAgICAgICAg
IG1ldGhvZHMuYXBwZW5kKG1ldGhvZCkKLSAgICAgICAgICAgICAgICBpZiBtZXRob2QgPT0gMDoK
LSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXBy
ZXNzKGNodW5rKQotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgICAgICAgICAgICAgIHN5bmNf
dXNlZCA9IFRydWUKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBj
b21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklO
SVNIKQotICAgICAgICAgICAgICAgICAgICBjb21wcmVzcyA9IE5vbmUKLSAgICAgICAgICAgICAg
ICAgICAgZmluaXNoX3VzZWQgPSBUcnVlCi0KLSAgICAgICAgcHJpbnQoIkNodW5rIHNpemVzOiAl
ciIgJSBjaHVua19zaXplcykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXpl
cykgPiAxMCkKLSAgICAgICAgcHJpbnQoIk1ldGhvZHM6ICVyIiAlIG1ldGhvZHMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShzeW5jX3VzZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaW5p
c2hfdXNlZCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoMTI1IDwgbGVuKGNvbXByZXNzZWRf
cGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY29tcHJlc3NlZF9wYXlsb2Fk
KSA8IDY1NTM2KQotICAgICAgICBkYXRhID0gJ1x4YzJceGZlJyArIHN0cnVjdC5wYWNrKCchSCcs
IGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29t
cHJlc3NlZF9wYXlsb2FkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSAr
PSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29k
IGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigK
LSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAgIGRh
dGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0KLWNsYXNzIE1lc3NhZ2VUZXN0SGl4aWU3NSh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0gICAgIiIiVGVzdHMgZm9yIGRyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHByb3RvY29sLTc2IHN0
cmVhbSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHgwMEhlbGxvXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCB1J1x1NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlzIGVuY29kZWQgYXMgZTYsOTcs
YTUgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4ZTZceDk3XHhhNVx4
ZmYnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwSGVsbG9ceGZmXHgwMFdvcmxk
IVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVf
bWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2hpeGllNzUoJ1x4MDBceGU2XHg5Y1x4YWNceGZmJykKLSAgICAgICAgIyBVKzY3MmMgaXMgZW5j
b2RlZCBhcyBlNiw5YyxhYyBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2
NzJjJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9y
ZWNlaXZlX21lc3NhZ2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgICMgXHg4MCBh
bmQgXHg4MSBhcmUgaW52YWxpZCBhcyBVVEYtOC4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdF9oaXhpZTc1KCdceDAwXHg4MFx4ODFceGZmJykKLSAgICAgICAgIyBJbnZhbGlkIGNo
YXJhY3RlcnMgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgKLSAgICAgICAgIyBVK2ZmZmQgUkVQTEFD
RU1FTlQgQ0hBUkFDVEVSCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdcdWZmZmRcdWZmZmQn
LCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2Vp
dmVfbWVzc2FnZV9kaXNjYXJkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0X2hpeGllNzUoJ1x4ODBceDA2SUdOT1JFXHgwMEhlbGxvXHhmZicKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdceDAxRElTUkVHQVJEXHhmZlx4MDBXb3JsZCFc
eGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQhJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgTWVzc2FnZVJlY2VpdmVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhlIFN0cmVhbSBjbGFzcyB1
c2luZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1ZShzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHJlY2Vp
dmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCkKLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIHJlY2VpdmVyLnJlY2VpdmVfbm93YWl0KCkpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHg4MVx4ODYnICsgX21hc2tfaHliaSgnSGVsbG8h
JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2VpdmVyLnJlY2VpdmUo
KSkKLQotICAgIGRlZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAgb25tZXNzYWdlX3F1
ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2VfaGFuZGxlcihtZXNz
YWdlKToKLSAgICAgICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2FnZSkKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgcmVjZWl2ZXIg
PSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0LCBvbm1lc3NhZ2VfaGFuZGxlcikKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBfbWFza19o
eWJpKCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgb25tZXNz
YWdlX3F1ZXVlLmdldCgpKQotCi0KLWNsYXNzIE1lc3NhZ2VSZWNlaXZlckhpeGllNzVUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtSGl4aWU3NSBjbGFzcyB1
c2luZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1ZShzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAg
ICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQoKSkKLQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDAwSGVsbG8hXHhmZicpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2VpdmVyLnJlY2VpdmUoKSkKLQotICAg
IGRlZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAgb25tZXNzYWdlX3F1ZXVlID0gUXVl
dWUuUXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2VfaGFuZGxlcihtZXNzYWdlKToKLSAg
ICAgICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2FnZSkKLQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICByZWNlaXZlciA9
IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9oYW5kbGVyKQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxsbyFceGZmJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgb25tZXNzYWdlX3F1ZXVlLmdldCgpKQot
Ci0KLWNsYXNzIE1lc3NhZ2VTZW5kZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJU
ZXN0cyB0aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCi0KLSAgICBkZWYg
dGVzdF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1
ZXN0KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0K
LSAgICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4MVx4MDVXb3JsZCcsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBhIHF1ZXVlIHRvIGNo
ZWNrIHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgICAgICMgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgYmVjYXVzZQot
ICAgICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRocmVhZC4KLSAgICAg
ICAgc2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgd3JpdGUoYnl0ZXMp
OgotICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0ZSA9IHdyaXRlCi0KLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJl
cXVlc3QpCi0KLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdIZWxsbycpCi0gICAgICAgIHNl
bmRlci5zZW5kX25vd2FpdCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgx
XHgwNUhlbGxvJywgc2VuZF9xdWV1ZS5nZXQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4MVx4MDVXb3JsZCcsIHNlbmRfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3MgTWVzc2FnZVNlbmRl
ckhpeGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFt
SGl4aWU3NSBjbGFzcyB1c2luZyBNZXNzYWdlU2VuZGVyLiIiIgotCi0gICAgZGVmIHRlc3Rfc2Vu
ZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhp
ZTc1KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVyKHJlcXVlc3QpCi0K
LSAgICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHgwMFdvcmxkXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBhIHF1ZXVlIHRvIGNo
ZWNrIHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAgICAgICMgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgYmVjYXVzZQot
ICAgICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRocmVhZC4KLSAgICAg
ICAgc2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYgd3JpdGUoYnl0ZXMp
OgotICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VT
ZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hlbGxvJykKLSAg
ICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4MDBIZWxsb1x4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDAwV29ybGRceGZmJywgc2VuZF9xdWV1ZS5nZXQoKSkKLQotCi1pZiBfX25hbWVf
XyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9
NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXV4LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
bXV4LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzczZGVjYmZkNjZkMGRmZmVm
MGI0Mjg3YmFkODc0NTNmYzFkNjQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIw
ODggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJUZXN0cyBmb3IgbXV4IG1vZHVsZS4iIiIKLQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgY29w
eQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IHN0cnVjdAotaW1wb3J0
IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgdGltZQotaW1wb3J0IHpsaWIKLQotaW1wb3J0
IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tl
dCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9zZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBwYXJzZV9mcmFtZQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgTXV4RXh0ZW5zaW9uUHJvY2Vzc29y
Ci0KLQotaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9IRUFERVJTID0geydIb3N0JzogJ3NlcnZlci5l
eGFtcGxlLmNvbScsCi0gICAgICAgICAgICAgICAgICdVcGdyYWRlJzogJ3dlYnNvY2tldCcsCi0g
ICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JywKLSAgICAg
ICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbic6ICcxMycsCi0gICAgICAgICAgICAg
ICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJ30KLQotCi1jbGFzcyBfT3V0Z29pbmdD
aGFubmVsRGF0YShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5tZXNzYWdlcyA9IFtdCi0gICAgICAgIHNlbGYuY29udHJvbF9tZXNzYWdlcyA9IFtdCi0KLSAg
ICAgICAgc2VsZi5idWlsZGVyID0gbXV4Ll9Jbm5lck1lc3NhZ2VCdWlsZGVyKCkKLQotY2xhc3Mg
X01vY2tNdXhDb25uZWN0aW9uKG1vY2suTW9ja0Jsb2NraW5nQ29ubik6Ci0gICAgIiIiTW9jayBj
bGFzcyBvZiBtb2RfcHl0aG9uIGNvbm5lY3Rpb24gZm9yIG11eC4iIiIKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKLSAgICAgICAgbW9jay5Nb2NrQmxvY2tpbmdDb25uLl9faW5pdF9fKHNlbGYp
Ci0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0gW10KLSAgICAgICAgc2VsZi5fY2hhbm5l
bF9kYXRhID0ge30KLQotICAgICAgICBzZWxmLl9jdXJyZW50X29wY29kZSA9IE5vbmUKLSAgICAg
ICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMgPSBbXQotCi0gICAgICAgIHNlbGYuc2VydmVyX2Ns
b3NlX2NvZGUgPSBOb25lCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIi
Ik92ZXJyaWRlIE1vY2tCbG9ja2luZ0Nvbm4ud3JpdGUuIiIiCi0KLSAgICAgICAgc2VsZi5fY3Vy
cmVudF9kYXRhID0gZGF0YQotICAgICAgICBzZWxmLl9wb3NpdGlvbiA9IDAKLQotICAgICAgICBk
ZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3RoKToKLSAgICAgICAgICAgIGlmIHNlbGYuX3Bvc2l0aW9u
ICsgbGVuZ3RoID4gbGVuKHNlbGYuX2N1cnJlbnRfZGF0YSk6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdG
YWlsZWQgdG8gcmVjZWl2ZSAlZCBieXRlcyBmcm9tIGVuY2Fwc3VsYXRlZCAnCi0gICAgICAgICAg
ICAgICAgICAgICdmcmFtZScgJSBsZW5ndGgpCi0gICAgICAgICAgICBkYXRhID0gc2VsZi5fY3Vy
cmVudF9kYXRhW3NlbGYuX3Bvc2l0aW9uOnNlbGYuX3Bvc2l0aW9uK2xlbmd0aF0KLSAgICAgICAg
ICAgIHNlbGYuX3Bvc2l0aW9uICs9IGxlbmd0aAotICAgICAgICAgICAgcmV0dXJuIGRhdGEKLQot
ICAgICAgICAjIFBhcnNlIHBoeXNpY2FsIGZyYW1lcyBhbmQgYXNzZW1ibGUgYSBtZXNzYWdlIGlm
IHRoZSBtZXNzYWdlIGlzCi0gICAgICAgICMgZnJhZ21lbnRlZC4KLSAgICAgICAgb3Bjb2RlLCBw
YXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSAoCi0gICAgICAgICAgICBwYXJzZV9mcmFt
ZShfcmVjZWl2ZV9ieXRlcywgdW5tYXNrX3JlY2VpdmU9RmFsc2UpKQotCi0gICAgICAgIHNlbGYu
X3BlbmRpbmdfZnJhZ21lbnRzLmFwcGVuZChwYXlsb2FkKQotCi0gICAgICAgIGlmIHNlbGYuX2N1
cnJlbnRfb3Bjb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gY29tbW9uLk9Q
Q09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5k
aW5nIGludmFsaWQgY29udGludWF0aW9uIG9wY29kZScpCi0gICAgICAgICAgICBzZWxmLl9jdXJy
ZW50X29wY29kZSA9IG9wY29kZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgb3Bjb2Rl
ICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIG9wY29kZSAlZCcgJSBvcGNvZGUpCi0gICAgICAgIGlm
IG5vdCBmaW46Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpbm5lcl9mcmFtZV9kYXRh
ID0gJycuam9pbihzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cykKLSAgICAgICAgc2VsZi5fcGVuZGlu
Z19mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9jdXJyZW50X29wY29kZSA9IE5vbmUKLQot
ICAgICAgICAjIEhhbmRsZSBhIGNvbnRyb2wgbWVzc2FnZSBvbiB0aGUgcGh5c2ljYWwgY2hhbm5l
bC4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3VwcG9ydCBvdGhlciBvcGNvZGVzIGlmIG5lZWRl
ZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAg
ICBpZiBsZW4ocGF5bG9hZCkgPj0gMjoKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9jbG9z
ZV9jb2RlID0gc3RydWN0LnVucGFjaygnIUgnLCBwYXlsb2FkWzoyXSlbMF0KLSAgICAgICAgICAg
IGNsb3NlX2JvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keSgKLSAgICAgICAgICAg
ICAgICBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLCAnJykKLSAgICAgICAgICAgIGNsb3Nl
X2ZyYW1lID0gY3JlYXRlX2Nsb3NlX2ZyYW1lKGNsb3NlX2JvZHksIG1hc2s9VHJ1ZSkKLSAgICAg
ICAgICAgIHNlbGYucHV0X2J5dGVzKGNsb3NlX2ZyYW1lKQotICAgICAgICAgICAgcmV0dXJuCi0K
LSAgICAgICAgIyBQYXJzZSB0aGUgcGF5bG9hZCBvZiB0aGUgbWVzc2FnZSBvbiBwaHlzaWNhbCBj
aGFubmVsLgotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihpbm5l
cl9mcmFtZV9kYXRhKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9p
ZCgpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gbXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0g
ICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrcy5leHRlbmQobGlzdChwYXJzZXIucmVhZF9j
b250cm9sX2Jsb2NrcygpKSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBj
aGFubmVsX2lkIGluIHNlbGYuX2NoYW5uZWxfZGF0YToKLSAgICAgICAgICAgIHNlbGYuX2NoYW5u
ZWxfZGF0YVtjaGFubmVsX2lkXSA9IF9PdXRnb2luZ0NoYW5uZWxEYXRhKCkKLSAgICAgICAgY2hh
bm5lbF9kYXRhID0gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdCi0KLSAgICAgICAgIyBQ
YXJzZSBsb2dpY2FsIGZyYW1lcyBhbmQgYXNzZW1ibGUgYW4gaW5uZXIgKGxvZ2ljYWwpIG1lc3Nh
Z2UuCi0gICAgICAgIChpbm5lcl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIsIGlubmVyX3Jz
djMsIGlubmVyX29wY29kZSwKLSAgICAgICAgIGlubmVyX3BheWxvYWQpID0gcGFyc2VyLnJlYWRf
aW5uZXJfZnJhbWUoKQotICAgICAgICBpbm5lcl9mcmFtZSA9IEZyYW1lKGlubmVyX2ZpbiwgaW5u
ZXJfcnN2MSwgaW5uZXJfcnN2MiwgaW5uZXJfcnN2MywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbm5lcl9vcGNvZGUsIGlubmVyX3BheWxvYWQpCi0gICAgICAgIG1lc3NhZ2UgPSBjaGFu
bmVsX2RhdGEuYnVpbGRlci5idWlsZChpbm5lcl9mcmFtZSkKLSAgICAgICAgaWYgbWVzc2FnZSBp
cyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgKG1lc3NhZ2Uub3Bjb2Rl
ID09IGNvbW1vbi5PUENPREVfVEVYVCBvcgotICAgICAgICAgICAgbWVzc2FnZS5vcGNvZGUgPT0g
Y29tbW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLm1lc3NhZ2Vz
LmFwcGVuZChtZXNzYWdlLnBheWxvYWQpCi0KLSAgICAgICAgICAgIHNlbGYub25fZGF0YV9tZXNz
YWdlKG1lc3NhZ2UucGF5bG9hZCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YS5jb250cm9sX21lc3NhZ2VzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICB7J29wY29kZSc6
IG1lc3NhZ2Uub3Bjb2RlLAotICAgICAgICAgICAgICAgICAnbWVzc2FnZSc6IG1lc3NhZ2UucGF5
bG9hZH0pCi0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9jb250cm9sX2Jsb2NrcwotCi0gICAgZGVmIGdldF93cml0dGVuX21l
c3NhZ2VzKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi5fY2hhbm5lbF9k
YXRhW2NoYW5uZWxfaWRdLm1lc3NhZ2VzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fY29udHJvbF9t
ZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NoYW5uZWxf
ZGF0YVtjaGFubmVsX2lkXS5jb250cm9sX21lc3NhZ2VzCi0KLQotY2xhc3MgX0ZhaWxPbldyaXRl
Q29ubmVjdGlvbihfTW9ja011eENvbm5lY3Rpb24pOgotICAgICIiIlNwZWNpY2lhbGl6ZWQgdmVy
c2lvbiBvZiBfTW9ja011eENvbm5lY3Rpb24uIEl0cyB3cml0ZSgpIG1ldGhvZCByYWlzZXMKLSAg
ICBhbiBleGNlcHRpb24gZm9yIHRlc3Rpbmcgd2hlbiBhIGRhdGEgbWVzc2FnZSBpcyB3cml0dGVu
LgotICAgICIiIgotCi0gICAgZGVmIG9uX2RhdGFfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKLSAg
ICAgICAgIiIiT3ZlcnJpZGUgdG8gcmFpc2UgYW4gZXhjZXB0aW9uLiIiIgotCi0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignSW50ZW50aW9uYWwgZmFpbHVyZScpCi0KLQotY2xhc3MgX0NoYW5uZWxF
dmVudChvYmplY3QpOgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgcmVjb3JkcyBjaGFubmVsIGV2
ZW50cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5yZXF1ZXN0
ID0gTm9uZQotICAgICAgICBzZWxmLm1lc3NhZ2VzID0gW10KLSAgICAgICAgc2VsZi5leGNlcHRp
b24gPSBOb25lCi0gICAgICAgIHNlbGYuY2xpZW50X2luaXRpYXRlZF9jbG9zaW5nID0gRmFsc2UK
LQotCi1jbGFzcyBfTXV4TW9ja0Rpc3BhdGNoZXIob2JqZWN0KToKLSAgICAiIiJNb2NrIGNsYXNz
IG9mIGRpc3BhdGNoLkRpc3BhdGNoZXIgZm9yIG11eC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50cyA9IHt9Ci0KLSAgICBkZWYgZG9fZXh0
cmFfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBpZiByZXF1ZXN0LndzX3JlcXVl
c3RlZF9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3Byb3Rv
Y29sID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzWzBdCi0KLSAgICBkZWYgX2RvX2Vj
aG8oc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgotICAgICAgICB3aGlsZSBUcnVlOgot
ICAgICAgICAgICAgbWVzc2FnZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgp
Ci0gICAgICAgICAgICBpZiBtZXNzYWdlID09IE5vbmU6Ci0gICAgICAgICAgICAgICAgY2hhbm5l
bF9ldmVudHMuY2xpZW50X2luaXRpYXRlZF9jbG9zaW5nID0gVHJ1ZQotICAgICAgICAgICAgICAg
IHJldHVybgotICAgICAgICAgICAgaWYgbWVzc2FnZSA9PSAnR29vZGJ5ZSc6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVsX2V2ZW50cy5tZXNzYWdlcy5hcHBlbmQo
bWVzc2FnZSkKLSAgICAgICAgICAgICMgZWNobyBiYWNrCi0gICAgICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQotICAgIGRlZiBfZG9fcGluZyhzZWxmLCBy
ZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRf
cGluZygnUGluZyEnKQotCi0gICAgZGVmIF9kb19waW5nX3doaWxlX2hlbGxvX3dvcmxkKHNlbGYs
IHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2Vu
ZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFt
LnNlbmRfcGluZygnUGluZyEnKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3Nh
Z2UoJ1dvcmxkIScsIGVuZD1UcnVlKQotCi0gICAgZGVmIF9kb190d29fcGluZ193aGlsZV9oZWxs
b193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5kPUZhbHNlKQotICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKLSAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uc2VuZF9waW5nKCdQb25nIScpCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVz
c2FnZSgnV29ybGQhJywgZW5kPVRydWUpCi0KLSAgICBkZWYgdHJhbnNmZXJfZGF0YShzZWxmLCBy
ZXF1ZXN0KToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRd
ID0gX0NoYW5uZWxFdmVudCgpCi0gICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5j
aGFubmVsX2lkXS5yZXF1ZXN0ID0gcmVxdWVzdAotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
ICMgTm90ZTogbW9yZSBoYW5kbGVyIHdpbGwgYmUgYWRkZWQuCi0gICAgICAgICAgICBpZiByZXF1
ZXN0LnVyaS5lbmRzd2l0aCgnZWNobycpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX2VjaG8o
cmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVu
dHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAgICAgIGVsaWYgcmVxdWVzdC51cmkuZW5k
c3dpdGgoJ3BpbmcnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19waW5nKHJlcXVlc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3Qu
Y2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCd0d29f
cGluZ193aGlsZV9oZWxsb193b3JsZCcpOgotICAgICAgICAgICAgICAgIHNlbGYuX2RvX3R3b19w
aW5nX3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LCBzZWxm
LmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbGlmIHJl
cXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nX3doaWxlX2hlbGxvX3dvcmxkJyk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fZG9fcGluZ193aGlsZV9oZWxsb193b3JsZCgKLSAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDYW5ub3Qg
aGFuZGxlIHBhdGggJXInICUgcmVxdWVzdC5wYXRoKQotICAgICAgICAgICAgaWYgbm90IHJlcXVl
c3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
Y2xvc2VfY29ubmVjdGlvbigpCi0gICAgICAgIGV4Y2VwdCBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNo
YW5uZWxfaWRdLmV4Y2VwdGlvbiA9IGUKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2Vw
dGlvbiA9IGUKLSAgICAgICAgICAgIHJhaXNlCi0KLQotZGVmIF9jcmVhdGVfbW9ja19yZXF1ZXN0
KGNvbm5lY3Rpb249Tm9uZSwgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9Tm9uZSk6Ci0gICAg
aWYgY29ubmVjdGlvbiBpcyBOb25lOgotICAgICAgICBjb25uZWN0aW9uID0gX01vY2tNdXhDb25u
ZWN0aW9uKCkKLQotICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KHVyaT0nL2VjaG8nLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNfaW49X1RFU1RfSEVBREVSUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uPWNvbm5lY3Rpb24pCi0g
ICAgcmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW0ocmVxdWVzdCwgb3B0aW9ucz1TdHJlYW1PcHRp
b25zKCkpCi0gICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gTXV4RXh0ZW5zaW9uUHJvY2Vzc29y
KAotICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9O
KSkKLSAgICBpZiBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyBpcyBub3QgTm9uZToKLSAgICAg
ICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25zKGxvZ2ljYWxfY2hhbm5lbF9l
eHRlbnNpb25zKQotICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfcXVvdGEoOCAqIDEwMjQp
Ci0gICAgcmV0dXJuIHJlcXVlc3QKLQotCi1kZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0
X2ZyYW1lKGNoYW5uZWxfaWQsIGVuY29kaW5nLCBlbmNvZGVkX2hhbmRzaGFrZSk6Ci0gICAgIyBB
bGxvdyBpbnZhbGlkIGVuY29kaW5nIGZvciB0ZXN0aW5nLgotICAgIGZpcnN0X2J5dGUgPSAoKG11
eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2RpbmcpCi0gICAg
cGF5bG9hZCA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVf
Y2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgICBtdXguX2VuY29kZV9udW1i
ZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKwotICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5k
c2hha2UpCi0gICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2Vu
Y29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNr
PVRydWUpCi0KLQotZGVmIF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQsIGNv
ZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Ci0gICAgcGF5bG9hZCA9IG11eC5fY3JlYXRlX2Ryb3BfY2hh
bm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5
X2ZyYW1lKAotICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hB
Tk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgcGF5bG9hZCA9
IG11eC5fY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSkK
LSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2No
YW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkK
LQotCi1kZWYgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIG1lc3NhZ2UsIG9wY29k
ZT1jb21tb24uT1BDT0RFX0JJTkFSWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRy
dWUsIHJzdjE9RmFsc2UsIHJzdjI9RmFsc2UsIHJzdjM9RmFsc2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hc2s9VHJ1ZSk6Ci0gICAgYml0cyA9IGNocigoZmluIDw8IDcpIHwgKHJzdjEg
PDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpIHwgb3Bjb2RlKQotICAgIHBheWxvYWQg
PSBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsgYml0cyArIG1lc3NhZ2UKLSAg
ICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShwYXlsb2FkLCBtYXNrPVRydWUpCi0KLQotZGVm
IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nLCBleHRlbnNpb25zPU5vbmUpOgot
ICAgIGhlYWRlcnMgPSAoCi0gICAgICAgICdHRVQgJXMgSFRUUC8xLjFcclxuJwotICAgICAgICAn
SG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3Jh
ZGVcclxuJwotICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJykgJSBwYXRo
Ci0gICAgaWYgZXh0ZW5zaW9uczoKLSAgICAgICAgaGVhZGVycyArPSAnJXM6ICVzJyAlICgKLSAg
ICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLCBleHRlbnNp
b25zKQotICAgIHJldHVybiBoZWFkZXJzCi0KLQotY2xhc3MgTXV4VGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgbXV4IG1vZHVsZS4iIiIKLQotICAgIGRlZiB0
ZXN0X2NoYW5uZWxfaWRfZGVjb2RlKHNlbGYpOgotICAgICAgICBkYXRhID0gJ1x4MDBceDAxXHhi
Zlx4ZmZceGRmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJwotICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2Vy
LnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgY2hhbm5lbF9p
ZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBw
YXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDE0
IC0gMSwgY2hhbm5lbF9pZCkKLSAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5u
ZWxfaWQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMjEgLSAxLCBjaGFubmVsX2lk
KQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyOSAtIDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIuX3JlYWRfcG9zaXRpb24pCi0KLSAgICBkZWYg
dGVzdF9jaGFubmVsX2lkX2VuY29kZShzZWxmKToKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5j
b2RlX2NoYW5uZWxfaWQoMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMCcsIGVuY29k
ZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMTQgLSAx
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGJmXHhmZicsIGVuY29kZWQpCi0gICAgICAg
IGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMTQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4YzBAXHgwMCcsIGVuY29kZWQpCi0gICAgICAgIGVuY29kZWQgPSBtdXgu
X2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEgLSAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdceGRmXHhmZlx4ZmYnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVf
Y2hhbm5lbF9pZCgyICoqIDIxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGUwIFx4MDBc
eDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQo
MiAqKiAyOSAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZmZceGZmXHhmZlx4ZmYn
LCBlbmNvZGVkKQotICAgICAgICAjIGNoYW5uZWxfaWQgaXMgdG9vIGxhcmdlCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG11
eC5fZW5jb2RlX2NoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiogMjkp
Ci0KLSAgICBkZWYgdGVzdF9yZWFkX211bHRpcGxlX2NvbnRyb2xfYmxvY2tzKHNlbGYpOgotICAg
ICAgICAjIFVzZSBBZGRDaGFubmVsUmVxdWVzdCBiZWNhdXNlIGl0IGNhbiBjb250YWluIGFyYml0
cmFyeSBsZW5ndGggb2YgZGF0YQotICAgICAgICBkYXRhID0gKCdceDAwXHgwMVx4MDFhJwotICAg
ICAgICAgICAgICAgICdceDAwXHgwMlx4N2QlcycKLSAgICAgICAgICAgICAgICAnXHgwMFx4MDNc
eDdlXHhmZlx4ZmYlcycKLSAgICAgICAgICAgICAgICAnXHgwMFx4MDRceDdmXHgwMFx4MDBceDAw
XHgwMFx4MDBceDAxXHgwMFx4MDAlcycpICUgKAotICAgICAgICAgICAgJ2EnICogMHg3ZCwgJ2In
ICogMHhmZmZmLCAnYycgKiAweDEwMDAwKQotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1l
UGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2Nv
bnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgbGVuKGJsb2Nrcykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxf
UkVRVUVTVCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBi
bG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxv
Y2tzWzBdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11
eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMV0ub3Bjb2RlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1sxXS5jaGFubmVsX2lkKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDB4N2QsIGxlbihibG9ja3NbMV0uZW5jb2RlZF9oYW5kc2hha2UpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JF
UVVFU1QsIGJsb2Nrc1syXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgYmxv
Y2tzWzJdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHhmZmZmLCBsZW4o
YmxvY2tzWzJdLmVuY29kZWRfaGFuZHNoYWtlKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbM10ub3Bjb2RlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGJsb2Nrc1szXS5jaGFubmVsX2lkKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDB4MTAwMDAsIGxlbihibG9ja3NbM10uZW5jb2RlZF9oYW5kc2hh
a2UpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIuX3JlYWRf
cG9zaXRpb24pCi0KLSAgICBkZWYgdGVzdF9yZWFkX2FkZF9jaGFubmVsX3JlcXVlc3Qoc2VsZik6
Ci0gICAgICAgIGRhdGEgPSAnXHgwMFx4MDFceDAxYScKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9N
dXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJzZXIu
cmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVY
X09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgZGVm
IHRlc3RfcmVhZF9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDFc
eDAwJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQot
ICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBibG9ja3NbMF0uZHJvcF9jb2RlKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIGxlbihibG9ja3NbMF0uZHJvcF9tZXNzYWdlKSkKLQotICAgICAgICBk
YXRhID0gJ1x4NjBceDAyXHgwOVx4MDNceGU4U3VjY2VzcycKLSAgICAgICAgcGFyc2VyID0gbXV4
Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgYmxvY2tzID0gbGlzdChwYXJz
ZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihibG9ja3MpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1swXS5jaGFubmVs
X2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5O
RUwsIGJsb2Nrc1swXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwMCwgYmxv
Y2tzWzBdLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnU3VjY2VzcycsIGJs
b2Nrc1swXS5kcm9wX21lc3NhZ2UpCi0KLSAgICAgICAgIyBSZWFzb24gaXMgdG9vIHNob3J0Lgot
ICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgwMVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5f
TXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG11
eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGFt
YmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQotCi0gICAgZGVmIHRlc3Rf
cmVhZF9mbG93X2NvbnRyb2woc2VsZik6Ci0gICAgICAgIGRhdGEgPSAnXHg0MFx4MDFceDAyJwot
ICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAg
ICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9N
VVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBibG9ja3NbMF0uc2VuZF9xdW90YSkKLQotICAgIGRlZiB0ZXN0X3JlYWRf
bmV3X2NoYW5uZWxfc2xvdChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDgwXHgwMVx4MDJceDAy
XHgwMycKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkK
LSAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQotCi0gICAgZGVm
IHRlc3RfcmVhZF9pbnZhbGlkX251bWJlcl9maWVsZF9pbl9jb250cm9sX2Jsb2NrKHNlbGYpOgot
ICAgICAgICAjIE5vIG51bWJlciBmaWVsZC4KLSAgICAgICAgZGF0YSA9ICcnCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBU
aGUgbGFzdCB0d28gYnl0ZXMgYXJlIG1pc3NpbmcuCi0gICAgICAgIGRhdGEgPSAnXHg3ZScKLSAg
ICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAg
ICAgICAjIE1pc3NpbmcgdGhlIGxhc3Qgb25lIGJ5dGUuCi0gICAgICAgIGRhdGEgPSAnXHg3Zlx4
MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJh
bWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJy
b3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBUaGUgbGVuZ3RoIG9mIG51bWJl
ciBmaWVsZCBpcyB0b28gbGFyZ2UuCi0gICAgICAgIGRhdGEgPSAnXHg3Zlx4ZmZceGZmXHhmZlx4
ZmZceGZmXHhmZlx4ZmZceGZmJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9h
ZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJz
ZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgVGhlIG1zYiBvZiB0aGUgZmlyc3QgYnl0ZSBp
cyBzZXQuCi0gICAgICAgIGRhdGEgPSAnXHg4MCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhG
cmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVF
cnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAjIFVzaW5nIDMgYnl0ZXMgZW5j
b2RpbmcgZm9yIDEyNS4KLSAgICAgICAgZGF0YSA9ICdceDdlXHgwMFx4N2QnCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBV
c2luZyA5IGJ5dGVzIGVuY29kaW5nIGZvciAweGZmZmYKLSAgICAgICAgZGF0YSA9ICdceDdmXHgw
MFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4
RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVl
RXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2ludmFsaWRf
c2l6ZV9hbmRfY29udGVudHMoc2VsZik6Ci0gICAgICAgICMgT25seSBjb250YWluIG51bWJlciBm
aWVsZC4KLSAgICAgICAgZGF0YSA9ICdceDAxJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZy
YW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtdXguUGh5
c2ljYWxDb25uZWN0aW9uRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5f
cmVhZF9zaXplX2FuZF9jb250ZW50cykKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXNwb25zZShzZWxmKToKLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9jaGFubmVs
X3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdGb29CYXInLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVkPUZhbHNlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDIwXHgwMVx4MDZGb29CYXInLCBkYXRhKQotCi0g
ICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT0nSGVsbG8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW5jb2Rpbmc9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlamVjdGVkPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4MzFceDAyXHgwNUhlbGxvJywgZGF0YSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9kcm9w
X2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwo
Y2hhbm5lbF9pZD0xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDYwXHgwMVx4MDAnLCBk
YXRhKQotCi0gICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9p
ZD0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9MjAwMCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdlcnJvcicp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBceDAxXHgwN1x4MDdceGQwZXJyb3InLCBk
YXRhKQotCi0gICAgICAgICMgcmVhc29uIG11c3QgYmUgZW1wdHkgaWYgY29kZSBpcyBOb25lCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgMSwgTm9uZSwgJ0Zvb0JhcicpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZXF1ZXN0X3RleHQo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3RfdGV4dCA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoKQot
ICAgICAgICBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzID0gbXV4Ll9wYXJzZV9yZXF1
ZXN0X3RleHQocmVxdWVzdF90ZXh0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdHRVQnLCBj
b21tYW5kKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZWNobycsIHBhdGgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ0hUVFAvMS4xJywgdmVyc2lvbikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgzLCBsZW4oaGVhZGVycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NlcnZl
ci5leGFtcGxlLmNvbScsIGhlYWRlcnNbJ0hvc3QnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnaHR0cDovL2V4YW1wbGUuY29tJywgaGVhZGVyc1snT3JpZ2luJ10pCi0KLQotY2xhc3MgTXV4
SGFuZGxlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5u
ZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5f
SU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykK
LSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVz
dF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxv
d19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hl
ZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29u
dHJvbCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFk
ZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNv
ZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2Up
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShj
aGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0n
V29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9Mikp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50
c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIGRpc3Bh
dGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3NhZ2VzKQotICAg
ICAgICAjIENoYW5uZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbiht
ZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0p
Ci0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtZXNzYWdl
c1swXSkKLSAgICAgICAgY29udHJvbF9ibG9ja3MgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAjIFRoZXJlIHNob3VsZCBiZSA4IGNvbnRy
b2wgYmxvY2tzOgotICAgICAgICAjICAgLSAxIE5ld0NoYW5uZWxTbG90Ci0gICAgICAgICMgICAt
IDIgQWRkQ2hhbm5lbFJlc3BvbnNlcyBmb3IgY2hhbm5lbCBpZCAyIGFuZCAzCi0gICAgICAgICMg
ICAtIDYgRmxvd0NvbnRyb2xzIGZvciBjaGFubmVsIGlkIDEgKGluaXRpYWxpemUpLCAnSGVsbG8n
LCAnV29ybGQnLAotICAgICAgICAjICAgICBhbmQgMyAnR29vZGJ5ZSdzCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoOSwgbGVuKGNvbnRyb2xfYmxvY2tzKSkKLQotICAgIGRlZiB0ZXN0X3BoeXNp
Y2FsX2Nvbm5lY3Rpb25fd3JpdGVfZmFpbHVyZShzZWxmKToKLSAgICAgICAgIyBVc2UgX0ZhaWxP
bldyaXRlQ29ubmVjdGlvbi4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KGNvbm5lY3Rpb249X0ZhaWxPbldyaXRlQ29ubmVjdGlvbigpKQotCi0gICAgICAgIGRpc3BhdGNo
ZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4
SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgp
Ci0KLSAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBlY2hvIGJhY2sgJ0hlbGxvJy4gSXQgY2F1c2Vz
IF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24KLSAgICAgICAgIyByYWlzaW5nIGFuIGV4Y2VwdGlvbi4K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAg
ICAgIyBMZXQgdGhlIHdvcmtlciBleGl0LiBUaGlzIHdpbGwgYmUgdW5uZWNlc3Nhcnkgd2hlbgot
ICAgICAgICAjIF9Mb2dpY2FsQ29ubmVjdGlvbi53cml0ZSgpIGlzIGNoYW5nZWQgdG8gdGhyb3cg
YW4gZXhjZXB0aW9uIGlmCi0gICAgICAgICMgd29rZSB1cCBieSBvbl93cml0ZXJfZG9uZS4KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAg
ICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICBkZWYgdGVzdF9z
ZW5kX2Jsb2NrZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkK
LQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0w
LAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQot
ICAgICAgICAjIE9uIHJlY2VpdmluZyB0aGlzICdIZWxsbycsIHRoZSBzZXJ2ZXIgdHJpZXMgdG8g
ZWNobyBiYWNrICdIZWxsbycsCi0gICAgICAgICMgYnV0IGl0IHdpbGwgYmUgYmxvY2tlZCBzaW5j
ZSB0aGVyZSdzIG5vIHNlbmQgcXVvdGEgYXZhaWxhYmxlIGZvciB0aGUKLSAgICAgICAgIyBjaGFu
bmVsIDIuCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQot
Ci0gICAgICAgICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2NrZWQgZHVlIHRvIHNlbmQg
cXVvdGEgc2hvcnRhZ2UuCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIENsb3Nl
IHRoZSBjaGFubmVsIDIuIFRoZSB3b3JrZXIgc2hvdWxkIGJlIG5vdGlmaWVkIG9mIHRoZSBlbmQg
b2YKLSAgICAgICAgIyB3cml0ZXIgdGhyZWFkIGFuZCBzdG9wIHdhaXRpbmcgZm9yIHNlbmQgcXVv
dGEgdG8gYmUgcmVwbGVuaXNoZWQuCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJv
cF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MikKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKLQotICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2hh
bm5lbCAxIGlzIGFsc28gY2xvc2VkLgotICAgICAgICBkcm9wX2NoYW5uZWwgPSBfY3JlYXRlX2Ry
b3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAgICMgQWxsIHRocmVhZHMgc2hvdWxk
IGJlIGRvbmUuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGls
X2RvbmUodGltZW91dD0yKSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRhX2VuY29k
aW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAg
IGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJwotICAgICAgICBhZGRfY2hhbm5l
bF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAg
ICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQot
Ci0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29k
YnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNvZGlu
Z19vdmVycmlkZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0
KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xv
dHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQot
ICAgICAgICAjIE92ZXJyaWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wuCi0gICAgICAgIGRlbHRh
ID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbDogeC1mb29cclxuJwotICAgICAgICAgICAgICAgICAnXHJcbicpCi0gICAg
ICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJh
bWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNo
YWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRy
b2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hl
bGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
eC1mb28nLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2Rl
bHRhX2FmdGVyX2lkZW50aXR5KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2Nr
X3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAg
ICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikK
LSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJ
RU5UKQotICAgICAgICAjIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaXMgZGlmZmVyZW50IGZyb20g
Y2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UKLSAgICAgICAgIyBvZiB0aGUgcGh5c2ljYWwgY29u
bmVjdGlvbi4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogUmVtb3ZlIFVwZ3JhZGUsIENvbm5lY3Rp
b24sIFNlYy1XZWJTb2NrZXQtS2V5IGFuZAotICAgICAgICAjIFNlYy1XZWJTb2NrZXQtVmVyc2lv
bi4KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSAoCi0gICAgICAgICAgICAnR0VUIC9lY2hv
IEhUVFAvMS4xXHJcbicKLSAgICAgICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxu
JwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJcbicKLSAgICAg
ICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICAgICAgICAgICdPcmlnaW46IGh0
dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9j
aGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAg
ICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hh
bmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAg
ICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
Ci0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dv
cmxkJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
MV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAg
ICAgIyBDaGFubmVsIDIKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVz
c2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQot
ICAgICAgICAjIENoYW5uZWwgMwotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNb
MF0pCi0gICAgICAgICMgSGFuZHNoYWtlIGJhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQuCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAneC1mb28nLAotICAgICAgICAgICAgbXV4
X2hhbmRsZXIuX2hhbmRzaGFrZV9iYXNlLl9oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29s
J10pCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9yZW1vdmVfaGVhZGVyKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICAjIE92ZXJyaWRl
IGhhbmRzaGFrZSBkZWx0YSBiYXNlLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9ICgKLSAg
ICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgJ0hvc3Q6IHNl
cnZlci5leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bDogeC1mb29cclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAg
ICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdc
clxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
ZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZs
b3dfY29udHJvbCkKLQotICAgICAgICAjIFJlbW92ZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhl
YWRlci4KLSAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOicKLSAgICAgICAgICAgICAgICAgJ1xy
XG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0xLCBlbmNv
ZGVkX2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNw
YXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgJ3gtZm9vJywKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
Ml0ucmVxdWVzdC53c19wcm90b2NvbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgIE5vbmUsCi0gICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLnJl
cXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9lbmNv
ZGluZ19wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6Ci0gICAgICAgICMgRW5hYmxlIHBlcm1lc3Nh
Z2UgZGVmbGF0ZSBleHRlbnNpb24gb24gdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0g
ICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5z
aW9ucz1leHRlbnNpb25zKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxu
JwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVk
X2hhbmRzaGFrZT1kZWx0YSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhh
ZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxv
d19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2Vu
ZCBjb21wcmVzc2VkICdIZWxsbycgb24gbG9naWNhbCBjaGFubmVsIDEgYW5kIDIuCi0gICAgICAg
IGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNv
bXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hl
bGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1l
c3NhZ2VzKQotICAgICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNvbXByZXNzZWQu
Ci0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzKDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1swXSkKLSAgICAg
ICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQotCi0gICAgZGVmIHRl
c3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcmVtb3ZlX2V4dGVuc2lvbnMoc2VsZik6Ci0g
ICAgICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24gdGhlIGltcGxp
Y2l0bHkgb3BlbmVkIGNoYW5uZWwuCi0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2Vf
ZXh0ZW5zaW9ucygKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5T
SU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAgICAgICAg
ICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBkaXNwYXRj
aGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011
eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQo
KQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVN
QkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgUmVtb3ZlIHBl
cm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24uCi0gICAgICAgIGRlbHRhID0gKCdHRVQgL2VjaG8g
SFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25z
OlxyXG4nCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCBtZXNzYWdlIG9uIGxv
Z2ljYWwgY2hhbm5lbCAyLiBUaGUgbWVzc2FnZSBzaG91bGQKLSAgICAgICAgIyBiZSByZWplY3Rl
ZCAoc2luY2UgcnN2MSBpcyBzZXQpLgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3Nv
YmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRF
RCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5m
bHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXBy
ZXNzZWRfaGVsbG9bOi00XQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1j
b21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAg
IGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tz
KCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5O
RUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfTk9STUFMX0NMT1NV
UkUsIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
ZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgICMgVW5zdXBwb3J0ZWRGcmFtZUV4Y2Vw
dGlvbiBzaG91bGQgYmUgcmFpc2VkIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgotICAgICAgICBzZWxm
LmFzc2VydFRydWUoaXNpbnN0YW5jZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLmV4Y2Vw
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbikpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9pbnZhbGlkX2VuY29kaW5n
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0g
ICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3Rf
ZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTMsCi0gICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAg
ICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYg
Yi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29k
ZSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2luY29tcGxldGVfaGFuZHNoYWtlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGluY29tcGxl
dGVfZW5jb2RlZF9oYW5kc2hha2UgPSAnR0VUIC9lY2hvIEhUVFAvMS4xJwotICAgICAgICBhZGRf
Y2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAg
ICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2U9aW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZSgxIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShub3QgMiBpbiBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzKQotCi0g
ICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZHVwbGljYXRlX2NoYW5uZWxfaWQoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJf
T0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2Ug
PSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5l
bCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRf
d3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXgu
X01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5f
RFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0
X3JlY2VpdmVfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkK
LSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hl
cikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRf
Y2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1Jf
Q0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hl
YWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRl
X2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVu
Y29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFr
ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1
ZXN0KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1l
KGNoYW5uZWxfaWQ9MikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9w
X2NoYW5uZWwpCi0KLSAgICAgICAgIyBUZXJtaW5hdGUgaW1wbGljaXRseSBvcGVuZWQgY2hhbm5l
bC4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVv
dXQ9MikpCi0KLSAgICAgICAgZXhjZXB0aW9uID0gZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sy
XS5leGNlcHRpb24KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4Y2VwdGlvbi5fX2NsYXNzX18g
PT0gQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X3BpbmdfZnJhbWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
LSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xMykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcGluZ19mcmFtZSA9IF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWVzc2FnZT0nSGVsbG8gV29ybGQhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMg
PSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2FnZXNbMF1bJ29w
Y29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtZXNzYWdl
c1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudGVkX3Bpbmco
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5J
VElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0xMykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCi0KLSAgICAgICAgIyBTZW5kIGEgcGluZyB3aXRoIG1lc3NhZ2UgJ0hlbGxvIHdvcmxkIScg
aW4gdHdvIGZyYWdtZW50ZWQgZnJhbWVzLgotICAgICAgICBwaW5nX2ZyYW1lMSA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMSkKLSAgICAgICAgcGluZ19m
cmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVf
Q09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdf
ZnJhbWUyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
T1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nX3doaWxlX3JlY2VpdmluZ19mcmFnbWVudGVkX21l
c3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0g
ICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFu
ZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhf
aGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11
eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hv
JykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0xOSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBmcmFtZSBvZiBtZXNzYWdl
ICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hl
bGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxsbykKLQotICAgICAgICAj
IEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2Us
IHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAgcGluZzEgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhwaW5nMSkKLSAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5P
UENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KHBpbmcyKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZyYW1lIG9mIHRo
ZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1dv
cmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMod29y
bGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5f
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdvcmxkISddLCBt
ZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUnXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBdWydtZXNzYWdl
J10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19waW5nX3doaWxlX3JlY2VpdmluZ19mcmFn
bWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT0yNSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBmcmFtZSBv
ZiBtZXNzYWdlICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bj1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxsbykKLQot
ICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhl
IG1lc3NhZ2UsIHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50ZWQgcGluZyBhbmQgYSBub24tZnJh
Z21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcxKQotICAg
ICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCi0gICAgICAgIHBpbmcz
ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUG9uZyEnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMykKLQotICAgICAgICAjIFNlbmQgdGhlIGxhc3QgZnJh
Z21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgd29ybGQgPSBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKHdvcmxkKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sw
XVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9t
ZXNzYWdlc1swXVsnbWVzc2FnZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5P
UENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSddKQotCi0g
ICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3doaWxlX3JlY2VpdmluZ19mcmFnbWVudGVkX3Bp
bmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAg
ICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxl
ciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFu
ZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5f
SU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykK
LSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVz
dF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxv
d19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9MTkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgICMgU2VuZCBhIGZyYWdtZW50ZWQgcGluZy4KLSAgICAgICAgcGluZzEg
PSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLQotICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBs
YXN0IGZyYWdtZW50ZWQgcGluZywgc2VuZCBhIG1lc3NhZ2UuCi0gICAgICAgICMgVGhlIGxvZ2lj
YWwgY2hhbm5lbCAoMikgc2hvdWxkIGJlIGRyb3BwZWQuCi0gICAgICAgIG1lc3NhZ2UgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIHdvcmxkIScsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMobWVzc2FnZSkKLQotICAgICAgICAjIFNlbmQgdGhlIGxhc3QgZnJhZ21l
bnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2Rl
PWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKHBpbmcyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdl
PSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRf
dW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0g
ICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250
cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVf
RFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5j
aGFubmVsX2lkKQotICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5l
bCAyLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlF
cnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFu
ZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1swXVsnb3Bjb2Rl
J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNbMF1bJ21lc3Nh
Z2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAg
ICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09G
X0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11
eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgUmVwbGVuaXNoIDMgYnl0ZXMu
IFRoaXMgaXNuJ3QgZW5vdWdoIHRvIHNlbmQgdGhlIHdob2xlIHBpbmcgZnJhbWUKLSAgICAgICAg
IyBiZWNhdXNlIHRoZSBmcmFtZSB3aWxsIGhhdmUgNSBieXRlcyBtZXNzYWdlKCdQaW5nIScpLiBU
aGUgZnJhbWUKLSAgICAgICAgIyBzaG91bGQgYmUgZnJhZ21lbnRlZC4KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJv
bCkKLQotICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9ja2VkIGR1ZSB0byBz
ZW5kIHF1b3RhIHNob3J0YWdlLgotICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICAgICAgIyBS
ZXBsZW5pc2ggcmVtYWluaW5nIDIgKyAxIGJ5dGVzIChpbmNsdWRpbmcgZXh0cmEgY29zdCkuCi0g
ICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRf
bWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkK
LSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9o
YW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11
eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMo
bXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCi0gICAgICAg
ICAgICBwYXRoPScvcGluZ193aGlsZV9oZWxsb193b3JsZCcpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgQXBwbGljYXRpb24gd2lsbCBzZW5k
OgotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAKLSAgICAgICAg
IyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAn
V29ybGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkgKyAoMiArIDEp
IGJ5dGVzIHNvIHRoYXQgdGhlIHBpbmcgd2lsbCBiZQotICAgICAgICAjIGZyYWdtZW50ZWQgb24g
dGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgdGltZS5z
bGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgNiBieXRlcy4KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT05KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsn
SGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBjb250cm9sX21lc3NhZ2VzID0gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVzc2FnZXNbMF1b
J29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNvbnRyb2xfbWVz
c2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF90d29f
cGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhN
b2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJl
cXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAg
bXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFO
TkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lO
SVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9j
cmVhdGVfcmVxdWVzdF9oZWFkZXIoCi0gICAgICAgICAgICBwYXRoPScvdHdvX3Bpbmdfd2hpbGVf
aGVsbG9fd29ybGQnKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LQotICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKLSAgICAgICAgIyAtIHRleHQgbWVz
c2FnZSAnSGVsbG8gJyB3aXRoIGZpbj0wCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1BpbmchJyBt
ZXNzYWdlCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1BvbmchJyBtZXNzYWdlCi0gICAgICAgICMg
LSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQotICAgICAgICAjIFJlcGxlbmlzaCAo
NiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBmaXJzdCBwaW5nIHdpbGwgYmUKLSAg
ICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9MTApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgICAgICAjIFJlcGxlbmlzaCByZW1h
aW5pbmcgMyArICg1ICsgMSkgKyA2IGJ5dGVzLiBUaGUgc2Vjb25kIHBpbmcgd29uJ3QKLSAgICAg
ICAgIyBiZSBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgIGZsb3df
Y29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRf
cXVvdGE9MTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyBXb3Js
ZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdlc1swXVsn
bWVzc2FnZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywg
Y29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3Rf
c2VuZF9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBEcm9wQ2hhbm5lbCBmb3Ig
Y2hhbm5lbCBpZCAxIHdoaWNoIGRvZXNuJ3QgaGF2ZSByZWFzb24uCi0gICAgICAgIGZyYW1lID0g
Y3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAxXHgwMCcsIG1hc2s9VHJ1ZSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAg
ICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIu
b3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQUNLTk9XTEVER0VELAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MSwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0KLSAgICBkZWYgdGVzdF90d29fZmxvd19jb250
cm9sKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMg
UmVwbGVuaXNoIDUgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIDEw
IGJ5dGVzLiBUaGUgc2VydmVyIHdpbGwgdHJ5IGVjaG8gYmFjayAxMCBieXRlcy4KLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKLQotICAgICAgICAj
IFJlcGxlbmlzaCA1ICsgMSAocGVyLW1lc3NhZ2UgZXh0cmEgY29zdCkgYnl0ZXMuCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
LQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvV29ybGQn
XSwgbWVzc2FnZXMpCi0gICAgICAgIHJlY2VpdmVkX2Zsb3dfY29udHJvbHMgPSBbCi0gICAgICAg
ICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Js
b2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRkxPV19D
T05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KLSAgICAgICAgIyBSZXBsZW5pc2htZW50IGZv
ciAnSGVsbG9Xb3JsZCcgKyAxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTEsIHJlY2VpdmVk
X2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKLSAgICAgICAgIyBSZXBsZW5pc2htZW50IGZv
ciAnR29vZGJ5ZScgKyAxCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgcmVjZWl2ZWRfZmxv
d19jb250cm9sc1sxXS5zZW5kX3F1b3RhKQotCi0gICAgZGVmIHRlc3Rfbm9fc2VuZF9xdW90YV9v
bl9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgICMg
SnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMgdG8gZWNobyBi
YWNrCi0gICAgICAgICMgJ0hlbGxvV29ybGQnLgotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQotCi0gICAgICAgICMgTm8gbWVz
c2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDIpCi0K
LSAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcl9mb3JfcGVybWVzc2FnZV9leHRy
YV9jb3N0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNo
bycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAg
IGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVu
aXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycp
KQotICAgICAgICAjIFJlcGxlbmlzaCBvbmx5IGxlbignV29ybGQnKSBieXRlcy4KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT01KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLSAgICAgICAgIyBTZXJ2ZXIgc2hvdWxkIG5vdCBjYWxsYmFjayBmb3IgdGhpcyBt
ZXNzYWdlLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nV29ybGQnKSkK
LQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0g
ICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMg
dG8gZWNobyBiYWNrCi0gICAgICAgICMgJ1dvcmxkJy4KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0xKSkKLQotICAgICAgICAjIE9u
bHkgb25lIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5lbCAyLgotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCi0KLSAgICBkZWYgdGVzdF9x
dW90YV92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDAp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKLQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3Jp
dHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwgbGVuKGNv
bnRyb2xfYmxvY2tzKSkKLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAg
IGIgZm9yIGIgaW4gY29udHJvbF9ibG9ja3MKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11
eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4
Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2NvbnN1bWVfcXVvdGFf
ZW1wdHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgIyBDbGllbnQgaGFzIDEgYnl0ZSBxdW90
YS4KLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05V
TUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgICMgU2Vu
ZCBhbiBlbXB0eSBtZXNzYWdlLiBQeXdlYnNvY2tldCBhbHdheXMgcmVwbGVuaXNoZXMgMSBieXRl
IHF1b3RhCi0gICAgICAgICMgZm9yIGVtcHR5IG1lc3NhZ2UKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9JycpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgICMgVGhpcyBtZXNzYWdlIHZpb2xhdGVzIHF1b3Rh
IG9uIGNoYW5uZWwgaWQgMi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4o
ZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJycsIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXNbMF0pCi0K
LSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIg
aW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAg
ICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRST0wgYW5kIGIu
Y2hhbm5lbF9pZCA9PSAyXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZWNlaXZl
ZF9mbG93X2NvbnRyb2xzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCByZWNlaXZlZF9m
bG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4
dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09Q
Q09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFu
bmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVf
U0VORF9RVU9UQV9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFu
bmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2NvbnN1bWVfcXVvdGFfZnJhZ21lbnRlZF9t
ZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVudCBoYXMgbGVuKCdIZWxsbycpICsgbGVu
KCdHb29kYnllJykgKyAyIGJ5dGVzIHF1b3RhLgotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hh
bm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsIDE0KQotCi0g
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0g
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAg
ICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
bG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZScs
IGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9URVhUKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
LSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9
J2xsbycsIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29k
ZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbJ0hlbGxvJ10sIG1lc3NhZ2VzKQotCi0gICAgZGVmIHRlc3RfZnJhZ21lbnRlZF9j
b250cm9sX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgIyBSZXBsZW5pc2ggdG90YWwgNiBieXRlcyBpbiAzIEZsb3dDb250cm9scy4KLSAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT0xKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGZsb3dfY29udHJv
bCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9
MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9
MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5f
Y29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENP
REVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9jaGFubmVs
X3Nsb3RfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hl
cigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3Bh
dGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIu
YWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2Vj
aG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3df
Y29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8n
KSkKLQotICAgICAgICAjIFRoaXMgcmVxdWVzdCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotICAgICAgICBmbG93
X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVk
X3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250
cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdIZWxsbycpKQot
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNb
MV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMuaGFzX2tleSgzKSkKLSAgICAgICAgZHJvcF9jaGFu
bmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11
eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywg
ZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9E
Uk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X3F1b3RhX292ZXJm
bG93X2J5X2NsaWVudChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1
ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAg
IG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAg
ICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMoc2xvdHM9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vu
ZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAg
ICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1l
KAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLSAgICAgICAgIyBSZXBsZW5pc2gg
MHg3RkZGRkZGRkZGRkZGRkZGIGJ5dGVzIHR3aWNlLgotICAgICAgICBmbG93X2NvbnRyb2wgPSBf
Y3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTB4N0ZGRkZGRkZGRkZGRkZGRikKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29k
ZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1csCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWRfZW5j
YXBzdWxhdGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQot
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9IChtdXgu
X01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KQotICAgICAgICBibG9jayA9IChj
aHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9jaGFubmVsX2lk
KDEpICsKLSAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKDApKQotICAgICAgICBw
YXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkg
KyBibG9jawotICAgICAgICB0ZXh0X2ZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZShwYXlsb2Fk
LCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXModGV4dF9mcmFtZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4
dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVu
X2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09Q
Q09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NP
REVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0
X2NoYW5uZWxfaWRfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkK
LSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hl
cikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0gICAgICAgICMgVGhlIGxhc3QgYnl0
ZSBvZiB0aGUgY2hhbm5lbCBpZCBpcyBtaXNzaW5nLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9i
aW5hcnlfZnJhbWUoJ1x4ODAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5l
eHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9P
UENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9D
T0RFX0NIQU5ORUxfSURfVFJVTkNBVEVELAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3Bf
Y2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlNUQVRV
U19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0KLSAgICBkZWYgdGVzdF9pbm5lcl9m
cmFtZV90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBKdXN0IGNvbnRhaW4gY2hhbm5l
bCBpZCAxLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDEnLCBtYXNr
PVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0
PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBi
IGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAg
ICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9J
U19UUlVOQ0FURUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3Bf
Y29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VO
RFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X3Vua25vd25fbXV4X29wY29kZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0g
bXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVy
LnN0YXJ0KCkKLQotICAgICAgICAjIFVuZGVmaW5lZCBvcGNvZGUgNQotICAgICAgICBmcmFtZSA9
IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceGEwJywgbWFzaz1UcnVlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9w
X2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUg
PT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChtdXguX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0
ZXN0X2ludmFsaWRfbXV4X2NvbnRyb2xfYmxvY2soc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAgIyBEcm9w
Q2hhbm5lbCBjb250YWlucyAxIGJ5dGUgcmVhc29uCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2Jp
bmFyeV9mcmFtZSgnXHgwMFx4NjBceDAwXHgwMVx4MDAnLCBtYXNrPVRydWUpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29k
ZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQot
ICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hh
bmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NM
T1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxf
UVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdlIGRlZmxhdGUg
ZXh0ZW5zaW9uIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgotICAgICAgICBleHRlbnNpb25zID0gY29t
bW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM9ZXh0ZW5zaW9u
cykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAg
Zmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5p
c2hlZF9xdW90YT0yMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93
X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyB0d2ljZS4KLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvMSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzc2VkX2hlbGxvMVs6LTRdCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8xLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0gICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8yID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbzIgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAg
IGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3NlZF9oZWxsbzJbOi00XQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvMiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9o
YW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydIZWxsbycsICdIZWxsbyddLAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Bh
dGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgICMgV3JpdHRlbiAnSGVs
bG8ncyBzaG91bGQgYmUgY29tcHJlc3NlZC4KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRf
aGVsbG8xLCBtZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2Vk
X2hlbGxvMiwgbWVzc2FnZXNbMV0pCi0KLQotICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfZGVmbGF0
ZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24u
cGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVf
RVhURU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCi0gICAg
ICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQotICAgICAgICBk
aXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBt
dXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIu
c3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJ
QUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgU2Vu
ZCBjb21wcmVzc2VkICdIZWxsb0hlbGxvSGVsbG8nIGFzIGZyYWdtZW50ZWQgbWVzc2FnZS4KLSAg
ICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb0hlbGxvSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRd
Ci0KLSAgICAgICAgbSA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAvIDIKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT1jb21wcmVzc2VkX2hlbGxvWzptXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW49RmFsc2UsIHJzdjE9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21wcmVzc2Vk
X2hlbGxvW206XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwg
cnN2MT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9DT05USU5VQVRJT04pKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0x
LCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydIZWxsb0hlbGxvSGVsbG8nXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRj
aGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJl
c3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2JhZF9mcmFn
bWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBmaW49RmFsc2UsIGFuZCB0aGVuIHNlbmQgYSBm
cmFtZSB3aXRoCi0gICAgICAgICMgb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04pLiBMb2dp
Y2FsIGNoYW5uZWwgMiBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAgICAgZnJhbWUxID0gX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZyYW1lMSkKLSAgICAgICAgZnJhbWUyID0gX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZT1jb21tb24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoZnJhbWUyKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTMsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggb3Bjb2RlPUNPTlRJTlVB
VElPTiB3aXRob3V0IGEgcHJlY2VkaW5nIGZyYW1lCi0gICAgICAgICMgdGhlIGZpbiBvZiB3aGlj
aCBpcyBub3Qgc2V0LiBMb2dpY2FsIGNoYW5uZWwgMyBzaG91bGQgYmUgZHJvcHBlZC4KLSAgICAg
ICAgZnJhbWUzID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9O
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMykKLQotICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8n
KQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD00LCBlbmNvZGluZz0wLAotICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAj
IFNlbmQgYSBmcmFtZSB3aXRoIG9wY29kZT1QSU5HIGFuZCBmaW49RmFsc2UsIGFuZCB0aGVuIHNl
bmQgYSBmcmFtZQotICAgICAgICAjIHdpdGggb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJT04p
LiBMb2dpY2FsIGNoYW5uZWwgNCBzaG91bGQgYmUKLSAgICAgICAgIyBkcm9wcGVkLgotICAgICAg
ICBmcmFtZTQgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGluZycsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lNCkKLSAgICAgICAgZnJhbWU1ID0g
X2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTUpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVs
cyA9IFsKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVY
X09QQ09ERV9EUk9QX0NIQU5ORUxdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMywgbGVuKGRy
b3BfY2hhbm5lbHMpKQotICAgICAgICBmb3IgZCBpbiBkcm9wX2NoYW5uZWxzOgotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9CQURfRlJBR01FTlRBVElPTiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5kcm9wX2NvZGUpCi0KLQotaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQg
ZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X3N0cmVhbS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFhY2ZlYjA0OGQzYjIw
MzJhNzk0OGNmYTJhZGVhN2NlNjRmOTVhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW0ucHkKKysrIC9kZXYvbnVsbApA
QCAtMSw3NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIw
MTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0j
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0KLSIiIlRlc3RzIGZvciBzdHJlYW0gbW9kdWxlLiIiIgotCi0KLWltcG9ydCB1bml0dGVz
dAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9k
X3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1v
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0cmVhbQotCi0KLWNsYXNzIFN0cmVhbVRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIHN0cmVhbSBtb2R1
bGUuIiIiCi0KLSAgICBkZWYgdGVzdF9jcmVhdGVfaGVhZGVyKHNlbGYpOgotICAgICAgICAjIG1v
cmUsIHJzdjEsIC4uLiwgcnN2NCBhcmUgYWxsIHRydWUKLSAgICAgICAgaGVhZGVyID0gc3RyZWFt
LmNyZWF0ZV9oZWFkZXIoY29tbW9uLk9QQ09ERV9URVhULCAxLCAxLCAxLCAxLCAxLCAxKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGYxXHg4MScsIGhlYWRlcikKLQotICAgICAgICAjIE1h
eGltdW0gcGF5bG9hZCBzaXplCi0gICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVfaGVhZGVy
KAotICAgICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhULCAoMSA8PCA2MykgLSAxLCAwLCAwLCAw
LCAwLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHg3Zlx4N2ZceGZmXHhmZlx4
ZmZceGZmXHhmZlx4ZmZceGZmJywgaGVhZGVyKQotCi0gICAgICAgICMgSW52YWxpZCBvcGNvZGUg
MHgxMAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHgxMCwgMCwgMCwgMCwgMCwgMCwgMCkKLQotICAgICAgICAjIEludmFsaWQgdmFsdWUg
MHhmIHBhc3NlZCB0byBtb3JlIHBhcmFtZXRlcgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uY3JlYXRlX2hlYWRl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLk9QQ09ERV9URVhULCAwLCAweGYs
IDAsIDAsIDAsIDApCi0KLSAgICAgICAgIyBUb28gbG9uZyBwYXlsb2FkX2xlbmd0aAotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJlYW0uY3JlYXRlX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9u
Lk9QQ09ERV9URVhULCAxIDw8IDYzLCAwLCAwLCAwLCAwLCAwKQotCi0KLWlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
YTlhYzcxMzBiNzMwNGViOTJkYmJiYzE1MzNhYTQxNTQ1ZTAyNDZkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhp
ZTc1LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Igc3RyZWFtIG1vZHVsZS4i
IiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUg
c3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5
d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQotZnJvbSB0ZXN0LnRlc3RfbXNn
dXRpbCBpbXBvcnQgX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUKLQotCi1jbGFzcyBTdHJlYW1IaXhp
ZTc1VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgU3RyZWFt
SGl4aWU3NSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3BheWxvYWRfbGVuZ3RoKHNlbGYpOgot
ICAgICAgICBmb3IgbGVuZ3RoLCBieXRlcyBpbiAoKDAsICdceDAwJyksICgweDdmLCAnXHg3Zicp
LCAoMHg4MCwgJ1x4ODFceDAwJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgx
MjM0LCAnXHg4MFx4YTRceDM0JykpOgotICAgICAgICAgICAgdGVzdF9zdHJlYW0gPSBTdHJlYW1I
aXhpZTc1KF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KGJ5dGVzKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgbGVuZ3RoLCB0ZXN0X3N0cmVhbS5fcmVhZF9w
YXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGJhM2Y0NzczN2EzMzFlZjAzOTBjYzZiMGM4MWMyZDM0
YTQyODMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDEgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0j
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3Ig
dXRpbCBtb2R1bGUuIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0K
LQotaW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QK
LQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9w
eXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0K
LQotX1RFU1RfREFUQV9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylb
MF0sICd0ZXN0ZGF0YScpCi0KLQotY2xhc3MgVXRpbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
ICAgICIiIkEgdW5pdHRlc3QgZm9yIHV0aWwgbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfZ2V0
X3N0YWNrX3RyYWNlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdOb25lXG4nLCB1
dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhID0gMSAv
IDAgICMgSW50ZW50aW9uYWxseSByYWlzZSBleGNlcHRpb24uCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICAgICB0cmFjZSA9IHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkKLSAgICAg
ICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5zdGFydHN3aXRoKCdUcmFjZWJhY2snKSkKLSAg
ICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5maW5kKCdaZXJvRGl2aXNpb25FcnJvcicp
ICE9IC0xKQotCi0gICAgZGVmIHRlc3RfcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihzZWxm
KToKLSAgICAgICAgZXhjID0gRXhjZXB0aW9uKCdXb3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dvcmxkJywgc3RyKGV4YykpCi0gICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3Rv
X2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
byBXb3JsZCcsIHN0cihleGMpKQotCi0gICAgZGVmIHRlc3RfZ2V0X3NjcmlwdF9pbnRlcnAoc2Vs
Zik6Ci0gICAgICAgIGN5Z3dpbl9wYXRoID0gJ2M6XFxjeWd3aW5cXGJpbicKLSAgICAgICAgY3ln
d2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsICdwZXJsJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAg
b3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJykpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0gICAgICAgICAgICBvcy5w
YXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSwgY3lnd2luX3BhdGgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jpbi9wZXJsIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9p
bnRlcnAoCi0gICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5w
bCcpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjeWd3aW5fcGVybCArICcgLXdUJywgdXRp
bC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRB
X0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9wYXRoKSkKLQotICAgIGRlZiB0ZXN0X2hleGlmeShz
ZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNjEgN2EgNDEgNWEgMzAgMzkgMjAgMDkg
MGQgMGEgMDAgZmYnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KCdhekFa
MDkgXHRcclxuXHgwMFx4ZmYnKSkKLQotCi1jbGFzcyBSZXBlYXRlZFhvck1hc2tlclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIFJlcGVhdGVkWG9yTWFza2Vy
IGNsYXNzLiIiIgotCi0gICAgZGVmIHRlc3RfbWFzayhzZWxmKToKLSAgICAgICAgIyBTYW1wbGUg
aW5wdXQgZTYsOTcsYTUgaXMgVSs2NWU1IGluIFVURi04Ci0gICAgICAgIG1hc2tlciA9IHV0aWwu
UmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZmZceGZmXHhmZlx4ZmYnKQotICAgICAgICByZXN1bHQgPSBt
YXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgx
OVx4NjhceDVhJywgcmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JN
YXNrZXIoJ1x4MDBceDAwXHgwMFx4MDAnKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygn
XHhlNlx4OTdceGE1JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhlNlx4OTdceGE1Jywg
cmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZTZc
eDk3XHhhNVx4MjAnKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4MDBceDAwJywgcmVzdWx0KQotCi0g
ICAgZGVmIHRlc3RfbWFza190d2ljZShzZWxmKToKLSAgICAgICAgbWFza2VyID0gdXRpbC5SZXBl
YXRlZFhvck1hc2tlcignXHgwMFx4N2ZceGZmXHgyMCcpCi0gICAgICAgICMgbWFza1swXSwgbWFz
a1sxXSwgLi4uIHdpbGwgYmUgdXNlZC4KLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4
MDBceDAwXHgwMFx4MDBceDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4N2Zc
eGZmXHgyMFx4MDAnLCByZXN1bHQpCi0gICAgICAgICMgbWFza1syXSwgbWFza1swXSwgLi4uIHdp
bGwgYmUgdXNlZCBmb3IgdGhlIG5leHQgY2FsbC4KLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1h
c2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg3
Zlx4ZmZceDIwXHgwMFx4N2YnLCByZXN1bHQpCi0KLSAgICBkZWYgdGVzdF9tYXNrX2xhcmdlX2Rh
dGEoc2VsZik6Ci0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ21BU2sn
KQotICAgICAgICBvcmlnaW5hbCA9ICcnLmpvaW4oW2NocihpICUgMjU2KSBmb3IgaSBpbiB4cmFu
Z2UoMTAwMCldKQotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhvcmlnaW5hbCkKLSAgICAg
ICAgZXhwZWN0ZWQgPSAnJy5qb2luKAotICAgICAgICAgICAgICAgIFtjaHIoKGkgJSAyNTYpIF4g
b3JkKCdtQVNrJ1tpICUgNF0pKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1bHQpCi0KLSAgICAgICAgbWFza2VyID0gdXRpbC5S
ZXBlYXRlZFhvck1hc2tlcignTWFTaycpCi0gICAgICAgIGZpcnN0X3BhcnQgPSAnVGhlIFdlYlNv
Y2tldCBQcm90b2NvbCBlbmFibGVzIHR3by13YXkgY29tbXVuaWNhdGlvbi4nCi0gICAgICAgIHJl
c3VsdCA9IG1hc2tlci5tYXNrKGZpcnN0X3BhcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgJ1x4MTlcdDZLXHgxYVx4MDQxOCJceDAyOFx4MGU5QVx4MDNceDE5
Ilx4MTU8XHgwOCJccnNceDBlIycKLSAgICAgICAgICAgICAgICAnXHgwMDFceDA3KFx4MTJzXHgx
ZjpceDBlflx4MWMsXHgxOHNceDA4Ilx4MGM+XHgxZSNceDA4MFxuOScKLSAgICAgICAgICAgICAg
ICAnXHgwODxceDA1YycsCi0gICAgICAgICAgICAgICAgcmVzdWx0KQotICAgICAgICBzZWNvbmRf
cGFydCA9ICdJdCBoYXMgdHdvIHBhcnRzOiBhIGhhbmRzaGFrZSBhbmQgdGhlIGRhdGEgdHJhbnNm
ZXIuJwotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhzZWNvbmRfcGFydCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAiKCdLJVx4MDAgSzlceDE2PEs9XHgw
MCFceDFmPltzXG5tXHQyXHgwNSlceDEyO1xuJlx4MDRzXG4jIgotICAgICAgICAgICAgICAgICJc
eDA1c1x4MWYlXHgwNHNceDBmLFx4MTUySzlceDEzMlx4MDU+XHgwNzZceDE5YyIsCi0gICAgICAg
ICAgICAgICAgcmVzdWx0KQotCi0KLWRlZiBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCBtaW5f
bnVtX2NodW5rcyk6Ci0gICAgY2h1bmtzID0gW10KLSAgICBieXRlc19jaHVua2VkID0gMAotCi0g
ICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihzb3VyY2UpOgotICAgICAgICBjaHVua19zaXpl
ID0gcmFuZG9tLnJhbmRpbnQoCi0gICAgICAgICAgICAxLAotICAgICAgICAgICAgbWluKGxlbihz
b3VyY2UpIC8gbWluX251bV9jaHVua3MsIGxlbihzb3VyY2UpIC0gYnl0ZXNfY2h1bmtlZCkpCi0g
ICAgICAgIGNodW5rID0gc291cmNlW2J5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5r
X3NpemVdCi0gICAgICAgIGNodW5rcy5hcHBlbmQoY2h1bmspCi0gICAgICAgIGJ5dGVzX2NodW5r
ZWQgKz0gY2h1bmtfc2l6ZQotCi0gICAgcmV0dXJuIGNodW5rcwotCi0KLWNsYXNzIEluZmxhdGVy
RGVmbGF0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBf
SW5mbGF0ZXIgYW5kIF9EZWZsYXRlciBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X2luZmxhdGVf
ZGVmbGF0ZV9kZWZhdWx0KHNlbGYpOgotICAgICAgICBpbnB1dCA9IGInaGVsbG8nICsgJy0nICog
MzAwMDAgKyBiJ2hlbGxvJwotICAgICAgICBpbmZsYXRlcjE1ID0gdXRpbC5fSW5mbGF0ZXIoMTUp
Ci0gICAgICAgIGRlZmxhdGVyMTUgPSB1dGlsLl9EZWZsYXRlcigxNSkKLSAgICAgICAgaW5mbGF0
ZXI4ID0gdXRpbC5fSW5mbGF0ZXIoOCkKLSAgICAgICAgZGVmbGF0ZXI4ID0gdXRpbC5fRGVmbGF0
ZXIoOCkKLQotICAgICAgICBjb21wcmVzc2VkMTUgPSBkZWZsYXRlcjE1LmNvbXByZXNzX2FuZF9m
aW5pc2goaW5wdXQpCi0gICAgICAgIGNvbXByZXNzZWQ4ID0gZGVmbGF0ZXI4LmNvbXByZXNzX2Fu
ZF9maW5pc2goaW5wdXQpCi0KLSAgICAgICAgaW5mbGF0ZXIxNS5hcHBlbmQoY29tcHJlc3NlZDE1
KQotICAgICAgICBpbmZsYXRlcjguYXBwZW5kKGNvbXByZXNzZWQ4KQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWwoY29tcHJlc3NlZDE1LCBjb21wcmVzc2VkOCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXIxNS5kZWNvbXByZXNzKC0xKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXI4LmRlY29tcHJlc3MoLTEpKQotCi0gICAgZGVm
IHRlc3RfcmFuZG9tX3NlY3Rpb24oc2VsZik6Ci0gICAgICAgIHJhbmRvbS5zZWVkKGE9MCkKLSAg
ICAgICAgc291cmNlID0gJycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQo
MCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMCAqIDEwMjQpXSkKLQotICAgICAgICBjaHVua2Vk
X2lucHV0ID0gZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50KCJJ
bnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2lucHV0XSkK
LQotICAgICAgICBkZWZsYXRlciA9IHV0aWwuX0RlZmxhdGVyKDE1KQotICAgICAgICBjb21wcmVz
c2VkID0gW10KLSAgICAgICAgZm9yIGNodW5rIGluIGNodW5rZWRfaW5wdXQ6Ci0gICAgICAgICAg
ICBjb21wcmVzc2VkLmFwcGVuZChkZWZsYXRlci5jb21wcmVzcyhjaHVuaykpCi0gICAgICAgIGNv
bXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzX2FuZF9maW5pc2goJycpKQotCi0gICAg
ICAgIGNodW5rZWRfZXhwZWN0YXRpb24gPSBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkK
LSAgICAgICAgcHJpbnQgKCJFeHBlY3RhdGlvbiBjaHVuayBzaXplczogJXIiICUKLSAgICAgICAg
ICAgICAgIFtsZW4oYykgZm9yIGMgaW4gY2h1bmtlZF9leHBlY3RhdGlvbl0pCi0KLSAgICAgICAg
aW5mbGF0ZXIgPSB1dGlsLl9JbmZsYXRlcigxNSkKLSAgICAgICAgaW5mbGF0ZXIuYXBwZW5kKCcn
LmpvaW4oY29tcHJlc3NlZCkpCi0gICAgICAgIGZvciBjaHVuayBpbiBjaHVua2VkX2V4cGVjdGF0
aW9uOgotICAgICAgICAgICAgZGVjb21wcmVzc2VkID0gaW5mbGF0ZXIuZGVjb21wcmVzcyhsZW4o
Y2h1bmspKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaHVuaywgZGVjb21wcmVzc2Vk
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGluZmxhdGVyLmRlY29tcHJlc3MoLTEp
KQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVB
RE1FIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzAwMWFhNTU5NWNkZDEzNDA3ZjU3MjhlY2Q1MzJhNWQxMjI2M2VmYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEv
UkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotVGVzdCBkYXRhIGRpcmVjdG9yeQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjdmOTkzMGY3ODI0YzNhNTM1OTE0YTViMzc3
OWY2YjZmYmEyNDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJF
eGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9u
KCJhYm9ydCBmb3IgdGVzdCIpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2Y4N2M2YWYyM2RmMDhlZmUzNTc1Y2FlMjA4ZGU1MDIyY2JhYTY2MC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxl
cnMvYmxhbmtfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBDb3B5cmln
aHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0KLQotIyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJjMTM5ZmExNzZjYzM0MTdiZTk2ZGU3OThlNmE4MWVkMTQ5YjE5OTIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rk
YXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6Ci0gICAgaWYgcmVxdWVzdC53c19vcmlnaW4gPT0gJ2h0dHA6Ly9leGFt
cGxlLmNvbSc6Ci0gICAgICAgIHJldHVybgotICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1VuYWNjZXB0
YWJsZSBvcmlnaW46ICVyJyAlIHJlcXVlc3Qud3Nfb3JpZ2luKQotCi0KLWRlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKCdv
cmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3RvY29s
KSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5zZmVyX3dzaC5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjk4MmQwMjMxZWYwMGYwMmUwZDkwZGY2NzhlYjgwNGJh
NDM4NjJkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJFeGNlcHRpb24gaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKCkuCi0iIiIKLQotCi1kZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgRXhjZXB0aW9u
KCdJbnRlbnRpb25hbCBFeGNlcHRpb24gZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAg
ICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L25vX3dzaF9hdF90aGVfZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9u
b193c2hfYXRfdGhlX2VuZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdlN2Jl
MTgwMmUzYzY2YzYzODQ5ODc1ZWEzNWUyNDA2YTM4MWU2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L25vX3dzaF9hdF90aGVfZW5kLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiQ29ycmVjdCBzaWduYXR1cmVzLCB3cm9uZyBmaWxlIG5hbWUu
Ci0iIiIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0g
ICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1Yi9ub193c2hfYXRfdGhl
X2VuZC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgKHJlcXVlc3Qud3Nf
cmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVf
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3No
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjM1MmViNGNhMjM4OTUyMjM5ZTM1
NDI3MjhjZTNiMzhkODNkZDZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dz
aC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LSIiIk5vbi1jYWxsYWJsZSBoYW5kbGVycy4KLSIiIgotCi0KLXdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlID0gVHJ1ZQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhID0gMQotCi0KLSMgdmk6
c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1
Yi9wbGFpbl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dz
aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIzZmY2OTMwMjU2YmMxYjEzZTJj
NGMyZDFjODQzYzRiN2M4MGFhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weQor
KysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJ
bmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
LSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzCi0KLQotZGVm
IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3Nf
cHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYwOWEzNjE0MjY4MmExNmM4MjRhNTJiNmFlMmEzYzZhMWM1YjYwOTAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3Ry
YW5zZmVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9fd3NoX2F0
X3RoZV9lbmQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJs
ZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3BsYWluX3dzaC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193
c2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3Jvbmdf
aGFuZHNoYWtlX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dy
b25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
YmY2NTliYzlhZjAxYzEwN2VmMzUwOGIyYjVkMDE3M2RjZjU5MDA5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSAr
MCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXcm9uZyB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZSBzaWduYXR1cmUuCi0iIiIKLQotCi1kZWYgbm9fd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAotICAgICAg
ICAgICAgJ3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAl
cycgJQotICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0LndzX3Byb3Rv
Y29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTBlMmU1NTA3OTRiN2I5OTBlMGI0NGIzM2NmYzJkNGQxNTJl
NmMwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0j
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0j
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXcm9u
ZyB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKSBzaWduYXR1cmUuCi0iIiIKLQotCi1kZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiBu
b193ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5IGlz
IGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwg
cmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU1ZmM3YmVmNDI5MTg5MjMxM2MwZjY2MzlkZTExODI2MWJiMjQyZTIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRh
L2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJfd3NoLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4Y2NhM2VkZTY4YzNjMTQ4MGYx
Y2VmNjhhNGU1ZWRmNjkwODY1NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL1JFQURNRQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmI1ZTQxNTgwMDFjMTVmZjg1
ZTMxMWJjYzZjZjI1MWZiYjFjZDNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDM3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRlcm5hbF9z
ZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvbW9jay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90
ZXN0aW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRo
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2Vu
ZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5k
c2hha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGls
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9t
b2NrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhp
ZTc1LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdiYjJlZDUyM2IzYjIyMmJhMTc1ODdhNGZlNjcwYTY2ODlkZDNkMDcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvQ09OVFJJQlVUSU5H
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9S
RUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvUkVBRE1FLm1kIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL1JFQURNRS5tZApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYxZDY2ZTMyMjAyODVmOGIxZWIwZTBhN2Qx
ODhhMDkzNTBjM2ZkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1
aWMvUkVBRE1FLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhpcyBkaXJlY3Rv
cnkgY29udGFpbnMKLVtRVUlDXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0
Zi1xdWljLXRyYW5zcG9ydCkgcmVsYXRlZCB0b29scy4KLQotIyBRdWljVHJhbnNwb3J0Ci1bcXVp
Y190cmFuc3BvcnRfc2VydmVyLnB5XSguL3F1aWNfdHJhbnNwb3J0X3NlcnZlci5weSkgaW1wbGVt
ZW50cyBhIHNpbXBsZQotW1F1aWNUcmFuc3BvcnRdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRt
bC9kcmFmdC12dnYtd2VidHJhbnNwb3J0LXF1aWMpIHNlcnZlcgotZm9yIHRlc3RpbmcuIEl0IHVz
ZXMgW2Fpb3F1aWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlvcXVpYy8pLCBhbmQgdGVz
dAotYXV0aG9ycyBjYW4gaW1wbGVtZW50IGN1c3RvbSBoYW5kbGVycyBieSBwdXR0aW5nIHB5dGhv
biBzY3JpcHRzIGluCi1bd3B0L3dlYnRyYW5zcG9ydC9xdWljL2hhbmRsZXJzL10oLi4vLi4vd2Vi
dHJhbnNwb3J0L3F1aWMvaGFuZGxlcnMvKS4KLQotIyMgQ3VzdG9tIEhhbmRsZXJzCi1UaGUgUXVp
Y1RyYW5zcG9ydFNlcnZlciBjYWxscyBmdW5jdGlvbnMgZGVmaW5lZCBpbiBlYWNoIGhhbmRsZXIg
c2NyaXB0LgotCi0gLSBgaGFuZGxlX2NsaWVudF9pbmRpY2F0aW9uYCBpcyBjYWxsZWQgZHVyaW5n
IHRoZSBjbGllbnQgaW5kaWNhdGlvbiBwcm9jZXNzLgotICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgd2l0aCB0aHJlZSBhcmd1bWVudHM6Ci0gICAKLSAgIC0gYGNvbm5lY3Rpb25gOiBbYGFpb3F1
aWMuYXN5bmNpby5RdWljQ29ubmVjdGlvblByb3RvY29sYF0ocHJvdG9jb2wpCi0gICAtIGBvcmln
aW5gOiBgc3RyYCBUaGUgb3JpZ2luIG9mIHRoZSBpbml0aWF0b3IuCi0gICAtIGBxdWVyeWA6IGBE
aWN0W3N0ciwgc3RyXWAgVGhlIGRpY3Rpb25hcnkgb2YgcXVlcnkgcGFyYW1ldGVycyBvZiB0aGUg
VVJMIG9mIHRoZQotICAgICBjb25uZWN0aW9uLgotCi0gICBBIGhhbmRsZXIgY2FuIGFib3J0IHRo
ZSBjbGllbnQgaW5kaWNhdGlvbiBwcm9jZXNzIGVpdGhlciBieSByYWlzaW5nIGFuCi0gICBleGNl
cHRpb24gb3IgY2xvc2luZyB0aGUgY29ubmVjdGlvbi4KLQkgICAgCi0gLSBgaGFuZGxlX2V2ZW50
YCBpcyBjYWxsZWQgd2hlbiBhIFtgUXVpY0V2ZW50YF0oZXZlbnQpIGFycml2ZXMuCi0gICAtIGBj
b25uZWN0aW9uYDogW2BhaW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbGBdKHBy
b3RvY29sKQotICAgLSBgZXZlbnRgOiBbYGFpb3F1aWMucXVpYy5ldmVudHMuUXVpY0V2ZW50YF0o
ZXZlbnQpCi0KLSAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCB1bnRpbCB0aGUgY2xpZW50
IGluZGljYXRpb24gcHJvY2VzcyBmaW5pc2hlcwotICAgc3VjY2Vzc2Z1bGx5LgotCi1bcHJvdG9j
b2xdOiBodHRwczovL2Fpb3F1aWMucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2FzeW5jaW8uaHRt
bCNhaW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbAotW2V2ZW50XTogaHR0cHM6
Ly9haW9xdWljLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9xdWljLmh0bWwjbW9kdWxlLWFpb3F1
aWMucXVpYy5ldmVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9fX2luaXRfXy5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYy
ZjhiYzIwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvX19p
bml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMvUkVBRE1FLm1kIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRz
L1JFQURNRS5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE2Y2YxM2ZmZmMxYmJh
ODdkNjEwZTIyY2Y2MGUxMTA0M2Y1MzkxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3F1aWMvY2VydHMvUkVBRE1FLm1kCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs
MCBAQAotVG8gZ2VuZXJhdGUgY2VydC5rZXkgYW5kIGNlcnQucGVtOgotCi0gMS4gUmVtb3ZlIHdl
Yi1wbGF0Zm9ybS50ZXN0LmtleSBhbmQgd2ViLXBsYXRmb3JtLnRlc3QucGVtIGluIC4uLy4uL2Nl
cnRzLgotIDEuIEZyb20gdGhlIHJvb3QsIHJ1bgotICAgIGAuL3dwdCBzZXJ2ZSAtLWNvbmZpZyB0
b29scy9xdWljL2NlcnRzL2NvbmZpZy5qc29uYCBhbmQgdGVybWluYXRlIGl0Ci0gICAgYWZ0ZXIg
aXQgaGFzIHN0YXJ0ZWQgdXAuCi0gMS4gTW92ZSB0b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVz
dC5rZXkgdG8gdG9vbHMvcXVpYy9jZXJ0cy9jZXJ0LmtleS4KLSAxLiBNb3ZlIHRvb2xzL2NlcnRz
L3dlYi1wbGF0Zm9ybS50ZXN0LnBlbSB0byB0b29scy9xdWljL2NlcnRzL2NlcnQucGVtLgotIDEu
IFJlY292ZXIgdGhlIG9yaWdpbmFsIHdlYi1wbGF0Zm9ybS50ZXN0LmtleSBhbmQgd2ViLXBsYXRm
b3JtLnRlc3QucGVtIGluCi0gICAgLi4vLi4vY2VydHMuCi0KLVNlZSBhbHNvOiAuLi8uLi9jZXJ0
cy9SRUFETUUubWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMv
Y2VydC5rZXkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvY2VydHMvY2VydC5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5
M2NkZmE1NDM3MjhiNjM2OWIwNWVlZmUyMDgxMWNkNjY2MmI3MTcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQua2V5CisrKyAvZGV2L251bGwK
QEAgLTEsMjggKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFd0FJQkFE
QU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLb3dnZ1NtQWdFQUFvSUJBUURieVB1aUJHcHhoYXZGCi0z
ajdwSTZnK0EwZ0M0QlRMVHFNT2JLU1RrUVdzanExR09kMkxBMWx3VFBMT2J3cnZoSVVGemJ3b0li
T3dvUE1lCi1Na2pzc0ZDSEczRk1qNTZjS2lBUTJERkk2ZEs1UGpHVVZOU1J4ay9GNEhoMlp4OURU
RU5sL0ViL2NSVDJ5dXUrCi1XOUhDdS9CV2ZiV3dsd3dONXZ4eW5lQ29oNWNCQi9qZDFLVE9SZ3VZ
cHVhdEhiODVBRDVCUmhZTFh3SEY3eVZICi1OVnhIZXVHbEszMXl1WUNITkt2QkhEZ1pGNVRwOEZx
S1huVlUrUGxLWENTVTU2MDJjMlU1eEhJRnZLVHlpWmxNCi1jWVhOU1VwMGxjTncvaVRTVnRzUEU0
azFzdHU2cWtXZFQ3SC91VStHVUIrYUxxTytzdkEvczlHR1g4SFpndCtyCi12U0ZFOGxJSkFnTUJB
QUVDZ2dFQkFKQTk2RDlkaklveWd4aGFFb21wbUNvU3R6a0QzVUhNdXlDbFZxRnVSUDRKCi1xVmgw
YzV4Zk4xeUhjN2JkazV5OEtSMDA5NjZTNTc0YzgxRzNDTHNsdjhQYjA5QytWUWNDY29iN2krVGhh
Q1dnCi0xcU1WeFdoaWNVcFpWbFhHdWZMTjQxSFVicmdJZkF5NEFsMnRIdzRoajhzRHQ3Rk1nR0hE
WFp6UFZuamtlOHIxCi1POVlpSmwxUXg0TDd2TVdydUdhOVFXakZnSG5HK3VoYUtqc0wydjdKUU9H
eTV0OGFib1Z5YjdoOHJHZy9tQytlCi1ISVlPdWNWMWFFTWdZVmFBbmhHc0tNSGt4NUExeFdwWEJT
cnVHK0dSQngva1hXWitrQ05ja0xYdVZkcmhxNEhJCi1BZGJ4SXpxUVRQTVhwTzNSQXVqeXJ4a0hh
YkVOTVBBL0ZHSDRzem1kTG9FQ2dZRUE5ejhwZTcvdlNsV2dmaHNGCi16NVFud1dIeUZqcnVoZ0Qv
MnNhNExCL2Ntd1RRZEd3OEU1VE5IRGJDZ21TNDk5RFpVWEladUJPVGVrZEVWRFFhCi1uZzhWeUwz
bzdEbXMrNWlQaTVjcXNjcDFLa2pMRU15UHBxczRKVHVpeFJwam1NZnljZHhWVHBYaGN1cW5KcFRM
Ci1RQzlwUjVOL3paY0FNRGxCdjBGemM4VDc4WGtDZ1lFQTQ1RHVlV0dIVmYydTR1TVl5V3h5Wmhh
TkRhZ2wxM3l4Ci0vb1NTVVR6b0x2U3BHUXhLa3YrZnhTTnFMM251NUlhNnVENEd1NU51YlA0SHIv
VmVTS1JmbWtUMWx1dkZjVmZDCi1rbjhyOGJzc1pxODU1QVZKeFhhNUsxYXVXakN1RkhqMHBZZjU2
c2Zoa1B4cFkwUlFFZ2t2dUUzaW9zUTEyZ0ZYCi12dzE0N0Z0UVVSRUNnWUVBODVScFZQNDVTMzFp
T1BwOFZnMTZ3Unl5ZUU0a3NTWUk2a3IrSkpKYkx1bW1TQnhkCi1iMWtZWFNSaHFqNTZyOEkwWnZY
RytyOW1lbi85aEFzMDhlU2dySHpVSE8yUlN1ajQraWU2S3gvdkgvSkpCRXJUCi1kdnFWdkxDczRn
dm1kUnorOEVlR1QzNS9ka3hRMGtTaW5LQlkwdWd3YjZYRXpMMkwxVlV3M2F3Q0hka0NnWUVBCi1x
dFFJZ092NnVVMm5kRURBUWF4OE1EQ3JrRjN5a2xIVUdGa1NzWk5FUk1ON0VRZU9EODErOVhGQmJB
UmZsZ09oCi10Vjh5bEtyM0VUQ2RPclM2STFQcFJKaVJ0OHFqdkJNQ1NCRFpQeXlnQnpGeEJzQUZn
Z3Mrczg3dE1WMHJ3TWlQCi05cGNkditadWFQVmljNWM3ZUY2WENRYkdwQ01ndmRlV05DQjc3d29a
UDlFQ2dZRUFsb2JrUEdEWUN5L1JhVmlVCi1GYnE1R282dzBwTVZuTHpZYm40R2gxQUpQZVFLSVNx
WHRKWjd0cXBkVytpN3F6a0x3NzRFTGFZQ0JSMlpFbHJqCi1FVmU1YVJPeDZURk45Um5qa0ZueXY5
TGV5WUwrWVBjOEFJd1ZVQ2VTUGlrU0dMRnBKZmEvandEbVdoM3ZIbW1BCi1OUlVQNDB3YnRCaTQy
QzJ1ZHJUeFVXc0h4cWM9Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2Vy
dHMvY2VydC5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3F1aWMvY2VydHMvY2VydC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDdlNzBmMWIwODJhY2IzMDUzMjEzYmM3ZWU3NGY1ZTM2N2M4OWZmMjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL2NlcnQucGVtCisrKyAvZGV2L251
bGwKQEAgLTEsMjQwICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZl
cnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogOTE5NDkyICgweGUwN2M0KQot
ICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAg
ICAgICBJc3N1ZXI6IENOPXdlYi1wbGF0Zm9ybS10ZXN0cwotICAgICAgICBWYWxpZGl0eQotICAg
ICAgICAgICAgTm90IEJlZm9yZTogQXByIDIwIDExOjIwOjU2IDIwMjAgR01UCi0gICAgICAgICAg
ICBOb3QgQWZ0ZXIgOiBBcHIgMTggMTE6MjA6NTYgMjAzMCBHTVQKLSAgICAgICAgU3ViamVjdDog
Q049d2ViLXBsYXRmb3JtLnRlc3QKLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0g
ICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAg
ICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCi0gICAgICAgICAgICAgICAgTW9kdWx1
czoKLSAgICAgICAgICAgICAgICAgICAgMDA6ZGI6Yzg6ZmI6YTI6MDQ6NmE6NzE6ODU6YWI6YzU6
ZGU6M2U6ZTk6MjM6Ci0gICAgICAgICAgICAgICAgICAgIGE4OjNlOjAzOjQ4OjAyOmUwOjE0OmNi
OjRlOmEzOjBlOjZjOmE0OjkzOjkxOgotICAgICAgICAgICAgICAgICAgICAwNTphYzo4ZTphZDo0
NjozOTpkZDo4YjowMzo1OTo3MDo0YzpmMjpjZTo2ZjoKLSAgICAgICAgICAgICAgICAgICAgMGE6
ZWY6ODQ6ODU6MDU6Y2Q6YmM6Mjg6MjE6YjM6YjA6YTA6ZjM6MWU6MzI6Ci0gICAgICAgICAgICAg
ICAgICAgIDQ4OmVjOmIwOjUwOjg3OjFiOjcxOjRjOjhmOjllOjljOjJhOjIwOjEwOmQ4OgotICAg
ICAgICAgICAgICAgICAgICAzMTo0ODplOTpkMjpiOTozZTozMTo5NDo1NDpkNDo5MTpjNjo0Zjpj
NTplMDoKLSAgICAgICAgICAgICAgICAgICAgNzg6NzY6Njc6MWY6NDM6NGM6NDM6NjU6ZmM6NDY6
ZmY6NzE6MTQ6ZjY6Y2E6Ci0gICAgICAgICAgICAgICAgICAgIGViOmJlOjViOmQxOmMyOmJiOmYw
OjU2OjdkOmI1OmIwOjk3OjBjOjBkOmU2OgotICAgICAgICAgICAgICAgICAgICBmYzo3Mjo5ZDpl
MDphODo4Nzo5NzowMTowNzpmODpkZDpkNDphNDpjZTo0NjoKLSAgICAgICAgICAgICAgICAgICAg
MGI6OTg6YTY6ZTY6YWQ6MWQ6YmY6Mzk6MDA6M2U6NDE6NDY6MTY6MGI6NWY6Ci0gICAgICAgICAg
ICAgICAgICAgIDAxOmM1OmVmOjI1OjQ3OjM1OjVjOjQ3OjdhOmUxOmE1OjJiOjdkOjcyOmI5Ogot
ICAgICAgICAgICAgICAgICAgICA4MDo4NzozNDphYjpjMToxYzozODoxOToxNzo5NDplOTpmMDo1
YTo4YTo1ZToKLSAgICAgICAgICAgICAgICAgICAgNzU6NTQ6Zjg6Zjk6NGE6NWM6MjQ6OTQ6ZTc6
YWQ6MzY6NzM6NjU6Mzk6YzQ6Ci0gICAgICAgICAgICAgICAgICAgIDcyOjA1OmJjOmE0OmYyOjg5
Ojk5OjRjOjcxOjg1OmNkOjQ5OjRhOjc0Ojk1OgotICAgICAgICAgICAgICAgICAgICBjMzo3MDpm
ZToyNDpkMjo1NjpkYjowZjoxMzo4OTozNTpiMjpkYjpiYTphYToKLSAgICAgICAgICAgICAgICAg
ICAgNDU6OWQ6NGY6YjE6ZmY6Yjk6NGY6ODY6NTA6MWY6OWE6MmU6YTM6YmU6YjI6Ci0gICAgICAg
ICAgICAgICAgICAgIGYwOjNmOmIzOmQxOjg2OjVmOmMxOmQ5OjgyOmRmOmFiOmJkOjIxOjQ0OmYy
OgotICAgICAgICAgICAgICAgICAgICA1MjowOQotICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2
NTUzNyAoMHgxMDAwMSkKLSAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAgICAgICBY
NTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAotICAgICAgICAgICAgICAgIENBOkZBTFNFCi0gICAg
ICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAgICAgICAg
Nzk6OTY6RTE6OTY6RjM6N0M6NDE6MkI6M0I6OUY6MUI6MEQ6RDY6QTk6Qjg6Qjc6NEY6RTY6NjE6
NUMKLSAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAotICAgICAg
ICAgICAgICAgIGtleWlkOkY2OkI5OkRBOjE2OjA3OjA1OkJCOjZGOkM5OjYzOjMwOkM2OjY3OjQw
OkNCOjAzOkQzOjFFOjkwOkVDCi0KLSAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAotICAg
ICAgICAgICAgICAgIERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNp
cGhlcm1lbnQKLSAgICAgICAgICAgIFg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2U6IAotICAgICAg
ICAgICAgICAgIFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uCi0gICAgICAgICAgICBYNTA5
djMgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lOiAKLSAgICAgICAgICAgICAgICBETlM6d2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDIud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A5OC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDg5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Ni53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
NzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0
MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkx
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzku
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDYwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1OC53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjgud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjkud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDQwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3NC53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wMzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDE4LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A3My53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzcud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDEyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1NC53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNjMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcxLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A5NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTYud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDM2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNy53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMjkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk0LndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A0NC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzMud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDg0LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMi53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNjEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDcwLndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6d3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDMud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDc4LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNi53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wNzYud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDUyLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A5OS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODYud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDQ2LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNy53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wOTAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkzLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3AxMC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTUud2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDQ3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1MS53ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wNDUud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A2OC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDkud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDU3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
Njcud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDkyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3Ax
NS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc1
LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2NC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTcu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1Ni53
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgyLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTEud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDUwLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzOC53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wODMud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDgxLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3AyMC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjEud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDIzLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0Mi53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wMjIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY1LndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A5Ni53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODcud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDE5LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1My53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wMzAud2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ4LndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3AzNC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNi5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyLm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNi5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDUzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTAubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMx
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A4My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNzMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxOS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDIxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDc4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDAubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3AyNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY1Lm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4MC5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDUyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNjgu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A0NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDcxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzIubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3A5MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg5Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wNDkubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A3Ny5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDc5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
ODIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzpvcDEyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMzkubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A0NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wNTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxNC5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wNjIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2MS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpvcDkyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjkubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6b3A5OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDY0Lm5vdC13
ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3Ay
Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk0Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOm9wMzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzMy5ub3Qtd2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzpvcDIzLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNTcubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6b3A1NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDg1Lm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
b3A5Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDMyLm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOm9wNjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A5Ni5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzpvcDUxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDEubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDk5
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNDIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6b3A2Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDM3Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm9wNDgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A1NS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzpvcDU2Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wODQubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AzNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpv
cDY5Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wMTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6b3A5My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dy53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOm9wODYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AxMy5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzpvcDIwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzYu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3AyNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
UzpvcDE3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wNzUubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6b3AxNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDQ3Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOm9wMTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2My5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDI4Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9w
NDMubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A2Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cyLnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOm9wOTEubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6b3A3NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDU5Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOm9wODgubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6b3A4Ny5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzpvcDEwLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Om9wMTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3
dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp3d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3Mi5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIERO
Uzp3d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzIubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dzIubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhu
LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4tLWx2ZS02bGFkLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp4bi0tbHZlLTZsYWQud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxh
ZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
Ond3dy54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFk
Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54bi0tbHZlLTZsYWQubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4t
LW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQu
eG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3LnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhu
LS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRz
NTNsd3drcnFodjI4YS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEueG4tLW44
ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54bi0tbjhq
NmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNs
d3drcnFodjI4YS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3
d2tycWh2MjhhLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxh
ZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4
bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNs
d3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QKLSAgICBTaWduYXR1cmUgQWxnb3JpdGht
OiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICAgMGI6OGI6NTU6NmE6YjQ6NjU6YTg6
MmE6M2I6YzA6NjI6MGU6ODU6ZDU6ZGM6OTk6OWY6M2Y6Ci0gICAgICAgICBkMDpiNzpmZjpjYjpi
Njo2ODplNTphZTpkMzphMjo0ZTpjODpkNDphYTozNDo5NTplNDo5ZToKLSAgICAgICAgIDRiOmU0
Ojc0OmU0OmM0OmVjOjExOjMxOjY3OmU1OmE2OmRhOjg1OjZiOjBmOmQ3OjY0OmI3OgotICAgICAg
ICAgZTc6ZWI6ZmU6MDk6YjY6ODg6ZTE6NzQ6MWQ6MGM6MTU6YTM6MmU6MDE6MDM6ZmM6Njc6OWM6
Ci0gICAgICAgICA3YzpiYTplNjpmYjo1MjoxZDo1ODpjZDo2ODphMzo1NTo4Yzo5Yjo1NzpiYjo4
OTozMjoxMDoKLSAgICAgICAgIDQxOjcxOjk5OmEzOjFhOmRjOjI1OjJkOmQwOmI5OjFhOmFmOmU2
Ojc2OjQwOmQ3OmY1OjIzOgotICAgICAgICAgYTk6ZDg6NTk6NDU6OGE6YWI6NTM6NTM6ODc6Y2M6
MTQ6YjM6ODc6ZGU6MWQ6MDE6OTk6N2E6Ci0gICAgICAgICA0Zjo3Mjo0Nzo2OTo5Yzo5ODo3Mzo5
NDo3OTo5MDoyNTo3MDowMjplYzo3NTpiMjo3NzoxMToKLSAgICAgICAgIDI4Ojk3OmNkOjQzOjNk
OmQ1OjY4OjM4OjczOjcxOmZkOmE5OjBiOmEyOmVkOjJkOjFjOjZlOgotICAgICAgICAgZTE6MDU6
ZDQ6MzA6YTY6NjQ6MDQ6MTA6Y2E6ZTg6ZTY6ZTA6N2E6YTk6ZjQ6MjY6OTQ6NmI6Ci0gICAgICAg
ICBhNDoyODphYTowYzplYjozZTplMDplZjpkMjpiZTowYjo3MDplNDpkZDo0YzpmYzphMjo4NzoK
LSAgICAgICAgIDBjOjI0OjgzOjcyOmUyOmU0OjZmOjI1OmE4OmVlOmM1OjEyOjg5OmQ5OmRkOjhm
OjgyOjE0OgotICAgICAgICAgYzM6ZDY6MDY6YWU6MWQ6YmI6N2I6M2M6ZmM6OWI6Mjc6NTY6NTA6
YjQ6Mjg6NDQ6NjA6ODA6Ci0gICAgICAgICAxNzo4NzoxYzpiMTpjZTo2ZDo3NzpiNDpkMToyYjoz
MjplODpkMDpiYTowNjo2Zjo0ZDowNDoKLSAgICAgICAgIGZmOjYwOmZlOmUzCi0tLS0tLUJFR0lO
IENFUlRJRklDQVRFLS0tLS0KLU1JSWd2RENDSDZTZ0F3SUJBZ0lERGdmRU1BMEdDU3FHU0liM0RR
RUJDd1VBTUIweEd6QVpCZ05WQkFNTUVuZGwKLVlpMXdiR0YwWm05eWJTMTBaWE4wY3pBZUZ3MHlN
REEwTWpBeE1USXdOVFphRncwek1EQTBNVGd4TVRJd05UWmEKLU1Cd3hHakFZQmdOVkJBTU1FWGRs
WWkxd2JHRjBabTl5YlM1MFpYTjBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUYKLUFBT0NBUThBTUlJ
QkNnS0NBUUVBMjhqN29nUnFjWVdyeGQ0KzZTT29QZ05JQXVBVXkwNmpEbXlrazVFRnJJNnQKLVJq
bmRpd05aY0V6eXptOEs3NFNGQmMyOEtDR3pzS0R6SGpKSTdMQlFoeHR4VEkrZW5Db2dFTmd4U09u
U3VUNHgKLWxGVFVrY1pQeGVCNGRtY2ZRMHhEWmZ4Ry8zRVU5c3Jydmx2UndydndWbjIxc0pjTURl
YjhjcDNncUllWEFRZjQKLTNkU2t6a1lMbUtibXJSMi9PUUErUVVZV0MxOEJ4ZThsUnpWY1Izcmhw
U3Q5Y3JtQWh6U3J3Unc0R1JlVTZmQmEKLWlsNTFWUGo1U2x3a2xPZXRObk5sT2NSeUJieWs4b21a
VEhHRnpVbEtkSlhEY1A0azBsYmJEeE9KTmJMYnVxcEYKLW5VK3gvN2xQaGxBZm1pNmp2ckx3UDdQ
UmhsL0IyWUxmcTcwaFJQSlNDUUlEQVFBQm80SWVCRENDSGdBd0NRWUQKLVZSMFRCQUl3QURBZEJn
TlZIUTRFRmdRVWVaYmhsdk44UVNzN254c04xcW00dDAvbVlWd3dId1lEVlIwakJCZ3cKLUZvQVU5
cm5hRmdjRnUyL0pZekRHWjBETEE5TWVrT3d3Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1B
b0cKLUNDc0dBUVVGQndNQk1JSWRqd1lEVlIwUkJJSWRoakNDSFlLQ0VYZGxZaTF3YkdGMFptOXli
UzUwWlhOMGdoVnYKLWNEZ3VkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NGVzl3Tnk1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJVmIzQTUKLUxuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoVnZjRFF1ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDRlc1dmRDMTMKLVpXSXRjR3hoZEdadmNtMHVkR1Z6ZElJVmIz
QTJMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFZ2Y0RNdWQyVmkKLUxYQnNZWFJtYjNKdExuUmxj
M1NDRlc5d01pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVZiM0F4TG5kbFlpMXcKLWJHRjBabTl5
YlM1MFpYTjBnaFYzZDNjdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ZXOXdOUzUzWldJdGNHeGgK
LWRHWnZjbTB1ZEdWemRJSVdiM0E0T0M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVPQzUz
WldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0E0TlM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJ
V2IzQTRPUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EyTmk1M1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJV2IzQTNNaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F5TkM1M1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJV2IzQTBNUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0Ez
T1M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVNUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdW
emRJSVdiM0ExT1M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXpPUzUzWldJdGNHeGgKLWRH
WnZjbTB1ZEdWemRJSVdiM0EyTUM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTFPQzUzWldJ
dGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F5T0M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2Qz
ZDNNUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F4TkM1M1pXSXRjR3hoZEdadmNtMHVk
R1Z6ZElJV2IzQTJPUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EwTUM1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJV2IzQTNOQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F6TVM1
M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXhPQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJ
SVdiM0EzTXk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTNOeTUzWldJdGNHeGgKLWRHWnZj
bTB1ZEdWemRJSVdiM0F4TWk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTFOQzUzWldJdGNH
eGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EyTXk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTNN
UzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0E1TlM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6
ZElJV2IzQXhOaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F6Tmk1M1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZElJV2IzQXlOeTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F5T1M1M1pX
SXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVOQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdi
M0EwTkM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXpNeTUzWldJdGNHeGgKLWRHWnZjbTB1
ZEdWemRJSVdiM0E0TkM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXpNaTUzWldJdGNHeGgK
LWRHWnZjbTB1ZEdWemRJSVdiM0EyTVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTNNQzUz
WldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdkM2QzTWk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJ
V2IzQTBNeTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EzT0M1M1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJV2IzQXlOaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EzTmk1M1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJV2IzQTFNaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0E1
T1M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTROaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdW
emRJSVdiM0EwTmk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXhOeTUzWldJdGNHeGgKLWRH
WnZjbTB1ZEdWemRJSVdiM0E1TUM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVNeTUzWldJ
dGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F4TUM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2Iz
QTFOUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EwTnk1M1pXSXRjR3hoZEdadmNtMHVk
R1Z6ZElJV2IzQTFNUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EwTlM1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJV2IzQTRNQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EyT0M1
M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTBPUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJ
SVdiM0ExTnk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXpOUzUzWldJdGNHeGgKLWRHWnZj
bTB1ZEdWemRJSVdiM0EyTnk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVNaTUzWldJdGNH
eGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F4TlM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXhN
eTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EzTlM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6
ZElJV2IzQTJOQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0E1Tnk1M1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZElJV2IzQXpOeTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0ExTmk1M1pX
SXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTJNaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdi
M0E0TWk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXlOUzUzWldJdGNHeGgKLWRHWnZjbTB1
ZEdWemRJSVdiM0F4TVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTFNQzUzWldJdGNHeGgK
LWRHWnZjbTB1ZEdWemRJSVdiM0F6T0M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTRNeTUz
WldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0E0TVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJ
V2IzQXlNQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0F5TVM1M1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJV2IzQXlNeTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EwTWk1M1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJV2IzQXlNaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0Ey
TlM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQTVOaTUzWldJdGNHeGgKLWRHWnZjbTB1ZEdW
emRJSVdiM0E0Tnk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXhPUzUzWldJdGNHeGgKLWRH
WnZjbTB1ZEdWemRJSVdiM0ExTXk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2IzQXpNQzUzWldJ
dGNHeGgKLWRHWnZjbTB1ZEdWemRJSVdiM0EwT0M1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2Iz
QXpOQzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSVpiM0EyTG01dmRDMTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSVpiM0F6TG01dmRDMTMKLVpXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmIzQXlMbTV2
ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmIzQTEKLUxtNXZkQzEzWldJdGNHeGhkR1p2Y20w
dWRHVnpkSUlaZDNkM0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnoKLWRJSVpkM2QzTG5kM2R5
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVpiM0EzTG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNtMHVk
R1Z6ZElJWmIzQTBMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmIzQTRMbTV2ZEMxM1pX
SXQKLWNHeGhkR1p2Y20wdWRHVnpkSUlaYjNBNUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpk
SUlaYjNBeExtNXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0F6Tmk1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdOVE11Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhO
MGdocHZjRFV3TG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNtMHVkR1Z6ZElJYWIzQXlOQzV1YjNRdGQy
VmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdNekV1Ym05MExYZGwKLVlpMXdiR0YwWm05eWJTNTBa
WE4wZ2hwdmNEazFMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQTQKLU15NXViM1F0
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR25kM2R6SXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTAK
LVpYTjBnaHB2Y0RjekxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBeE9TNXViM1F0
ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NHbTl3TWpFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1
MFpYTjBnaHB2Y0RneExtNXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0EzTUM1dWIz
UXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdOemd1Ym05MExYZGxZaTF3YkdGMFptOXli
UzUwWlhOMGdocHZjRFF3TG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNtMHVkR1Z6ZElJYWIzQXlOUzV1
YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdOalV1Ym05MExYZGwKLVlpMXdiR0YwWm05
eWJTNTBaWE4wZ2hwM2QzY3VkM2QzTWk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQTQKLU1D
NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR205d05USXVibTkwTFhkbFlpMXdiR0YwWm05
eWJTNTAKLVpYTjBnaHB2Y0RZNExtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBME5T
NXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NHbTl3TnpFdWJtOTBMWGRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBnaHB2Y0RjeUxtNXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0E1
TUM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdPRGt1Ym05MExYZGxZaTF3YkdG
MFptOXliUzUwWlhOMGdocHZjRFE1TG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNtMHVkR1Z6ZElJYWIz
QTNOeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdOemt1Ym05MExYZGwKLVlpMXdi
R0YwWm05eWJTNTBaWE4wZ2hwdmNEZ3lMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWQz
ZDMKLUxuZDNkekV1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR205d01USXVibTkwTFhkbFlpMXdi
R0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RNNUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlh
YjNBME5DNXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NHbmQzZHpFdWJtOTBMWGRsWWkx
d2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RVNExtNXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJ
SWFiM0F4TkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdNekF1Ym05MExYZGxZ
aTF3YkdGMFptOXliUzUwWlhOMGdocHZjRFl5TG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNtMHVkR1Z6
ZElJYWIzQTJNUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdPVEl1Ym05MExYZGwK
LVlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNESTVMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6
ZElJYWIzQTUKLU9DNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR205d05qUXVibTkwTFhk
bFlpMXdiR0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RJMkxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRH
VnpkSUlhYjNBeU1pNXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NHbTl3T1RRdWJtOTBM
WGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RNNExtNXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSWFiM0F6TXk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdNak11Ym05
MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRFUzTG01dmRDMTNaV0l0Y0d4aGRHWnYKLWNt
MHVkR1Z6ZElJYWIzQTFOQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdPRFV1Ym05
MExYZGwKLVlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEUTJMbTV2ZEMxM1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJYWIzQTUKLU55NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR205d016SXVi
bTkwTFhkbFlpMXdiR0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RZd0xtNXZkQzEzWldJdGNHeGhkR1p2
Y20wdWRHVnpkSUlhYjNBNU5pNXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NHbTl3TlRF
dWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RReExtNXYKLWRDMTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSWFiM0F6TlM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKLUdtOXdP
VGt1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRFF5TG01dmRDMTNaV0l0Y0d4aGRH
WnYKLWNtMHVkR1Z6ZElJYWIzQTJOeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0dtOXdN
emN1Ym05MExYZGwKLVlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEUTRMbTV2ZEMxM1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJYWIzQTEKLU5TNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR205
d05UWXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RnMExtNXZkQzEzWldJdGNH
eGhkR1p2Y20wdWRHVnpkSUlhYjNBek5DNXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5SbGMzU0NH
bTl3TmprdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RFeExtNXYKLWRDMTNaV0l0
Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0E1TXk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MK
LUduZDNkekV1ZDNkM0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRGcyTG01dmRDMTNaV0l0
Y0d4aGRHWnYKLWNtMHVkR1Z6ZElJYWIzQXhNeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNT
Q0dtOXdNakF1Ym05MExYZGwKLVlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEYzJMbTV2ZEMxM1pX
SXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQXkKLU55NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxj
M1NDR205d01UY3VibTkwTFhkbFlpMXdiR0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RjMUxtNXZkQzEz
WldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBeE5TNXViM1F0ZDJWaUxYQnMKLVlYUm1iM0p0TG5S
bGMzU0NHbTl3TkRjdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RFNExtNXYKLWRD
MTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFiM0EyTXk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5S
bGMzU0MKLUdtOXdNamd1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocHZjRFF6TG01dmRD
MTNaV0l0Y0d4aGRHWnYKLWNtMHVkR1Z6ZElJYWIzQTJOaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRM
blJsYzNTQ0duZDNkekl1ZDNkM0xuZGwKLVlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwdmNEa3hMbTV2
ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYWIzQTMKLU5DNXViM1F0ZDJWaUxYQnNZWFJtYjNK
dExuUmxjM1NDR205d05Ua3VibTkwTFhkbFlpMXdiR0YwWm05eWJTNTAKLVpYTjBnaHB2Y0RnNExt
NXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlhYjNBNE55NXViM1F0ZDJWaUxYQnMKLVlYUm1i
M0p0TG5SbGMzU0NHbTl3TVRBdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHB2Y0RFMkxt
NXYKLWRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWJkM2QzTVM1M2QzY3lMbmRsWWkxd2JHRjBa
bTl5YlM1MFpYTjAKLWdodDNkM2N5TG5kM2R6SXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHM2Qz
ZHpJdWQzZDNNUzUzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJSWJkM2QzTVM1M2QzY3hMbmRsWWkx
d2JHRjBabTl5YlM1MFpYTjBnaDEzZDNjdWQzZDMKLUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRH
VnpkSUllZUc0dExXeDJaUzAyYkdGa0xuZGxZaTF3YkdGMFptOXkKLWJTNTBaWE4wZ2g1M2QzY3hM
bmQzZHk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIbmQzZHk1M2QzY3kKLUxtNXZkQzEz
WldJdGNHeGhkR1p2Y20wdWRHVnpkSUllZDNkM01pNTNkM2N1Ym05MExYZGxZaTF3YkdGMFptOXkK
LWJTNTBaWE4wZ2g1M2QzY3VkM2QzTVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2Qz
ZHpJdWQzZDMKLU1pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6SXVkM2QzTVM1
dWIzUXRkMlZpTFhCc1lYUm0KLWIzSnRMblJsYzNTQ0gzZDNkekV1ZDNkM01TNXViM1F0ZDJWaUxY
QnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6RXUKLWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRM
blJsYzNTQ0luaHVMUzFzZG1VdE5teGhaQzUzZDNjdWQyVmkKLUxYQnNZWFJtYjNKdExuUmxjM1ND
SW5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKLWMzU0NJbmQzZHk1
NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJM2QzZHpJdWVHNHQKLUxX
eDJaUzAyYkdGa0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpTjRiaTB0YkhabExUWnNZV1F1ZDNk
M01pNTMKLVpXSXRjR3hoZEdadmNtMHVkR1Z6ZElJamVHNHRMV3gyWlMwMmJHRmtMbmQzZHpFdWQy
VmlMWEJzWVhSbWIzSnQKLUxuUmxjM1NDSTNkM2R6RXVlRzR0TFd4MlpTMDJiR0ZrTG5kbFlpMXdi
R0YwWm05eWJTNTBaWE4wZ2laNGJpMHQKLWJIWmxMVFpzWVdRdWQzZDNMbTV2ZEMxM1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJbWQzZDNMbmh1TFMxc2RtVXQKLU5teGhaQzV1YjNRdGQyVmlMWEJzWVhS
bWIzSnRMblJsYzNTQ0ozaHVMUzFzZG1VdE5teGhaQzUzZDNjeExtNXYKLWRDMTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSW5kM2QzTWk1NGJpMHRiSFpsTFRac1lXUXVibTkwTFhkbFlpMXcKLWJHRjBa
bTl5YlM1MFpYTjBnaWQzZDNjeExuaHVMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzWVhSbWIz
SnQKLUxuUmxjM1NDSjNodUxTMXNkbVV0Tm14aFpDNTNkM2N5TG01dmRDMTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSXAKLWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDSzNodUxTMXMKLWRtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhC
c1lYUm1iM0p0TG5SbGMzU0NMWGQzZHk1NGJpMHQKLWJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlT
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSXRlRzR0TFc0NGFqWmsKLWN6VXpiSGQzYTNKeGFIWXlP
R0V1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpMTRiaTB0YmpocU5tUnoKLU5UTnNkM2Ry
Y25Gb2RqSTRZUzUzZDNjdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xuZDNkekV1ZUc0dExXNDQK
LWFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xuaHVMUzF1
T0dvMlpITTEKLU0yeDNkMnR5Y1doMk1qaGhMbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNT
Q0xuaHVMUzF1T0dvMlpITTEKLU0yeDNkMnR5Y1doMk1qaGhMbmQzZHpFdWQyVmlMWEJzWVhSbWIz
SnRMblJsYzNTQ0xuZDNkekl1ZUc0dExXNDQKLWFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ0wzaHVMUzFzZG1VdE5teGgKLVpDNTRiaTB0YkhabExUWnNZV1F1
Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqRjNkM2N1ZUc0dExXNDQKLWFqWmtjelV6Ykhk
M2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnakY0YmkwdGJqaHEKLU5t
UnpOVE5zZDNkcmNuRm9kakk0WVM1M2QzY3VibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2pK
NGJpMHQKLWJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTNkM2N5TG01dmRDMTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemRJSXkKLWQzZDNNUzU0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNXVi
M1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKLWMzU0NNbmQzZHpJdWVHNHRMVzQ0YWpaa2N6VXpiSGQz
YTNKeGFIWXlPR0V1Ym05MExYZGxZaTF3YkdGMFptOXkKLWJTNTBaWE4wZ2pKNGJpMHRiamhxTm1S
ek5UTnNkM2RyY25Gb2RqSTRZUzUzZDNjeExtNXZkQzEzWldJdGNHeGgKLWRHWnZjbTB1ZEdWemRJ
STJlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWVHNHRMV3gyWlMwMmJHRmsKLUxuZGxZ
aTF3YkdGMFptOXliUzUwWlhOMGdqWjRiaTB0YkhabExUWnNZV1F1ZUc0dExXNDRhalprY3pVemJI
ZDMKLWEzSnhhSFl5T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ09uaHVMUzF1T0dvMlpITTFN
MngzZDJ0eWNXaDIKLU1qaGhMbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NPbmh1TFMxc2RtVXQKLU5teGhaQzU0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJ
NFlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKLWMzU0NRWGh1TFMxdU9HbzJaSE0xTTJ4M2Qy
dHljV2gyTWpoaExuaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDIKLU1qaGhMbmRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBna1Y0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTQKLWJpMHRiamhx
Tm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0RRWUoK
LUtvWklodmNOQVFFTEJRQURnZ0VCQUF1TFZXcTBaYWdxTzhCaURvWFYzSm1mUDlDMy84dTJhT1d1
MDZKT3lOU3EKLU5KWGtua3ZrZE9URTdCRXhaK1dtMm9WckQ5ZGt0K2ZyL2dtMmlPRjBIUXdWb3k0
QkEveG5uSHk2NXZ0U0hWak4KLWFLTlZqSnRYdTRreUVFRnhtYU1hM0NVdDBMa2FyK1oyUU5mMUk2
bllXVVdLcTFOVGg4d1VzNGZlSFFHWmVrOXkKLVIybWNtSE9VZVpBbGNBTHNkYkozRVNpWHpVTTkx
V2c0YzNIOXFRdWk3UzBjYnVFRjFEQ21aQVFReXVqbTRIcXAKLTlDYVVhNlFvcWd6clB1RHYwcjRM
Y09UZFRQeWlod3drZzNMaTVHOGxxTzdGRW9uWjNZK0NGTVBXQnE0ZHUzczgKLS9Kc25WbEMwS0VS
Z2dCZUhITEhPYlhlMDBTc3k2TkM2Qm05TkJQOWcvdU09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0t
LS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3F1aWMvY2VydHMvY29uZmlnLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMvY29uZmlnLmpzb24KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyYTZkMDUyOWZiOTQ0OWM0YmZiMGM5MzU0NmE3OTYy
YTVhYmQyMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2Nl
cnRzL2NvbmZpZy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotewotICAgICJw
b3J0cyI6IHsKLSAgICAgICAgImh0dHAiOiBbXSwKLSAgICAgICAgImh0dHBzIjogWyJhdXRvIl0s
Ci0gICAgICAgICJ3cyI6IFtdLAotICAgICAgICAid3NzIjogW10KLSAgICB9LAotICAgICJjaGVj
a19zdWJkb21haW5zIjogZmFsc2UsCi0gICAgInNzbCI6IHsKLSAgICAgICAgInR5cGUiOiAib3Bl
bnNzbCIsCi0gICAgICAgICJvcGVuc3NsIjogewotICAgICAgICAgICAgImR1cmF0aW9uIjogMzY1
MCwKLSAgICAgICAgICAgICJmb3JjZV9yZWdlbmVyYXRlIjogZmFsc2UsCi0gICAgICAgICAgICAi
YmFzZV9wYXRoIjogInRvb2xzL2NlcnRzIgotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWlj
L2NlcnRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9xdWljL2NlcnRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3OWZjNWExOWYzY2I5ZDY0MzNhZTQzNDM1MTNlODQ0NWRlODQ4ODkx
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9jZXJ0cy9S
RUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvY2VydHMvY2VydC5rZXkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMvY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMvY2VydHMvY29uZmlnLmpzb24K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcXVpYy9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NvbW1hbmRzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ0OTZmNDgzNmZmOTBkZDI1MzU1OWMwYjYxZjI5YTNjZDQ2N2RkNTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL2NvbW1hbmRzLmpzb24K
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi17Ci0gICJzZXJ2ZS1xdWljLXRyYW5zcG9y
dCI6IHsKLSAgICAicGF0aCI6ICJzZXJ2ZS5weSIsCi0gICAgInNjcmlwdCI6ICJydW4iLAotICAg
ICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCi0gICAgImhlbHAiOiAiU3RhcnQgdGhlIFFVSUMgc2Vy
dmVyIGZvciBXZWJUcmFuc3BvcnQiLAotICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwKLSAgICAicmVx
dWlyZW1lbnRzIjogWwotICAgICAgInJlcXVpcmVtZW50cy50eHQiCi0gICAgXQotICB9Ci19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvcXVpY190cmFuc3BvcnRfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3F1aWNfdHJhbnNwb3J0X3NlcnZlci5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA2MjYwZTc5NGJkZmNlMTc3MDdhNjll
NGNlNjIzM2IxZjk3MTI3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3F1aWMvcXVpY190cmFuc3BvcnRfc2VydmVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjA0ICsw
LDAgQEAKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQgaW8KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQg
b3MKLWltcG9ydCByZQotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHVybGxpYi5wYXJzZQotaW1wb3J0
IHRyYWNlYmFjawotZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgRGljdCwgSXRlcmF0b3IsIExpc3Qs
IE9wdGlvbmFsLCBUdXBsZQotCi1mcm9tIGFpb3F1aWMuYXN5bmNpbyBpbXBvcnQgUXVpY0Nvbm5l
Y3Rpb25Qcm90b2NvbCwgc2VydmUKLWZyb20gYWlvcXVpYy5xdWljLmNvbmZpZ3VyYXRpb24gaW1w
b3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVpYy5jb25uZWN0aW9uIGltcG9y
dCBFTkRfU1RBVEVTCi1mcm9tIGFpb3F1aWMucXVpYy5ldmVudHMgaW1wb3J0IFN0cmVhbURhdGFS
ZWNlaXZlZCwgUXVpY0V2ZW50Ci1mcm9tIGFpb3F1aWMudGxzIGltcG9ydCBTZXNzaW9uVGlja2V0
Ci0KLVNFUlZFUl9OQU1FID0gJ2Fpb3F1aWMtdHJhbnNwb3J0JwotbG9nZ2VyID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCi0KLWhhbmRsZXJzX3BhdGggPSAnJwotCi0KLWNsYXNzIEV2ZW50
SGFuZGxlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubmVjdGlvbjogUXVpY0Nvbm5lY3Rp
b25Qcm90b2NvbCwgZ2xvYmFsX2RpY3Q6IERpY3Rbc3RyLCBBbnldKToKLSAgICAgICAgc2VsZi5j
b25uZWN0aW9uID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLmdsb2JhbF9kaWN0ID0gZ2xvYmFs
X2RpY3QKLQotICAgIGRlZiBoYW5kbGVfY2xpZW50X2luZGljYXRpb24oCi0gICAgICAgICAgICBz
ZWxmLAotICAgICAgICAgICAgb3JpZ2luOiBzdHIsCi0gICAgICAgICAgICBxdWVyeTogRGljdFtz
dHIsIHN0cl0pIC0+IE5vbmU6Ci0gICAgICAgIG5hbWUgPSAnaGFuZGxlX2NsaWVudF9pbmRpY2F0
aW9uJwotICAgICAgICBpZiBuYW1lIGluIHNlbGYuZ2xvYmFsX2RpY3Q6Ci0gICAgICAgICAgICBz
ZWxmLmdsb2JhbF9kaWN0W25hbWVdKHNlbGYuY29ubmVjdGlvbiwgb3JpZ2luLCBxdWVyeSkKLQot
ICAgIGRlZiBoYW5kbGVfZXZlbnQoc2VsZiwgZXZlbnQ6IFF1aWNFdmVudCkgLT4gTm9uZToKLSAg
ICAgICAgbmFtZSA9ICdoYW5kbGVfZXZlbnQnCi0gICAgICAgIGlmIG5hbWUgaW4gc2VsZi5nbG9i
YWxfZGljdDoKLSAgICAgICAgICAgIHNlbGYuZ2xvYmFsX2RpY3RbbmFtZV0oc2VsZi5jb25uZWN0
aW9uLCBldmVudCkKLQotCi1jbGFzcyBRdWljVHJhbnNwb3J0UHJvdG9jb2woUXVpY0Nvbm5lY3Rp
b25Qcm90b2NvbCk6ICAjIHR5cGU6IGlnbm9yZQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
czogQW55LCAqKmt3YXJnczogQW55KSAtPiBOb25lOgotICAgICAgICBzdXBlcigpLl9faW5pdF9f
KCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5wZW5kaW5nX2V2ZW50czogTGlzdFtRdWlj
RXZlbnRdID0gW10KLSAgICAgICAgc2VsZi5jbGllbnRfaW5kaWNhdGlvbl9maW5pc2hlZCA9IEZh
bHNlCi0gICAgICAgIHNlbGYuY2xpZW50X2luZGljYXRpb25fZGF0YSA9IGInJwotICAgICAgICBz
ZWxmLmhhbmRsZXI6IE9wdGlvbmFsW0V2ZW50SGFuZGxlcl0gPSBOb25lCi0KLSAgICBkZWYgcXVp
Y19ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogUXVpY0V2ZW50KSAtPiBOb25lOgotICAgICAg
ICBwcmVmaXggPSAnISEnCi0gICAgICAgIGxvZ2dlci5pbmZvKCdRVUlDIGV2ZW50OiAlcycsIHR5
cGUoZXZlbnQpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiAobm90IHNlbGYuY2xpZW50
X2luZGljYXRpb25fZmluaXNoZWQgYW5kCi0gICAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2Uo
ZXZlbnQsIFN0cmVhbURhdGFSZWNlaXZlZCkgYW5kCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50
LnN0cmVhbV9pZCA9PSAyKToKLSAgICAgICAgICAgICAgICAjIGNsaWVudCBpbmRpY2F0aW9uIHBy
b2Nlc3MKLSAgICAgICAgICAgICAgICBwcmVmaXggPSAnQ2xpZW50IGluZGljYXRpb24gZXJyb3I6
ICcKLSAgICAgICAgICAgICAgICBzZWxmLmNsaWVudF9pbmRpY2F0aW9uX2RhdGEgKz0gZXZlbnQu
ZGF0YQotICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmLmNsaWVudF9pbmRpY2F0aW9uX2RhdGEp
ID4gNjU1MzU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigndG9vIGxhcmdl
IGRhdGEgZm9yIGNsaWVudCBpbmRpY2F0aW9uJykKLSAgICAgICAgICAgICAgICBpZiBldmVudC5l
bmRfc3RyZWFtOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3NfY2xpZW50X2luZGlj
YXRpb24oKQotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5oYW5kbGVyIGlzIG5vdCBO
b25lCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfY2xvc2luZ19vcl9jbG9zZWQoKToK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgICAgICBwcmVm
aXggPSAnRXZlbnQgaGFuZGxpbmcgRXJyb3I6ICcKLSAgICAgICAgICAgICAgICAgICAgZm9yIGUg
aW4gc2VsZi5wZW5kaW5nX2V2ZW50czoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFu
ZGxlci5oYW5kbGVfZXZlbnQoZSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wZW5kaW5nX2V2
ZW50cy5jbGVhcigpCi0gICAgICAgICAgICBlbGlmIG5vdCBzZWxmLmNsaWVudF9pbmRpY2F0aW9u
X2ZpbmlzaGVkOgotICAgICAgICAgICAgICAgIHNlbGYucGVuZGluZ19ldmVudHMuYXBwZW5kKGV2
ZW50KQotICAgICAgICAgICAgZWxpZiBzZWxmLmhhbmRsZXIgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgcHJlZml4ID0gJ0V2ZW50IGhhbmRsaW5nIEVycm9yOiAnCi0gICAgICAgICAgICAg
ICAgc2VsZi5oYW5kbGVyLmhhbmRsZV9ldmVudChldmVudCkKLSAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5oYW5kbGVyID0gTm9uZQotICAgICAgICAgICAg
bG9nZ2VyLndhcm4ocHJlZml4ICsgc3RyKGUpKQotICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50
X2V4YygpCi0gICAgICAgICAgICBzZWxmLmNsb3NlKCkKLQotICAgIGRlZiBwYXJzZV9jbGllbnRf
aW5kaWNhdGlvbihzZWxmLCBiczogaW8uQnl0ZXNJTykgLT4gSXRlcmF0b3JbVHVwbGVbaW50LCBi
eXRlc11dOgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAga2V5X2IgPSBicy5yZWFk
KDIpCi0gICAgICAgICAgICBpZiBsZW4oa2V5X2IpID09IDA6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgICAgICBsZW5ndGhfYiA9IGJzLnJlYWQoMikKLSAgICAgICAgICAgIGlmIGxl
bihrZXlfYikgIT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ2ZhaWxlZCB0
byBnZXQgIktleSIgZmllbGQnKQotICAgICAgICAgICAgaWYgbGVuKGxlbmd0aF9iKSAhPSAyOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignZmFpbGVkIHRvIGdldCAiTGVuZ3RoIiBm
aWVsZCcpCi0gICAgICAgICAgICBrZXkgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIGtleV9iKVswXQot
ICAgICAgICAgICAgbGVuZ3RoID0gc3RydWN0LnVucGFjaygnIUgnLCBsZW5ndGhfYilbMF0KLSAg
ICAgICAgICAgIHZhbHVlID0gYnMucmVhZChsZW5ndGgpCi0gICAgICAgICAgICBpZiBsZW4odmFs
dWUpICE9IGxlbmd0aDoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ3RydW5jYXRl
ZCAiVmFsdWUiIGZpZWxkJykKLSAgICAgICAgICAgIHlpZWxkIChrZXksIHZhbHVlKQotCi0gICAg
ZGVmIHByb2Nlc3NfY2xpZW50X2luZGljYXRpb24oc2VsZikgLT4gTm9uZToKLSAgICAgICAgb3Jp
Z2luID0gTm9uZQotICAgICAgICBvcmlnaW5fc3RyaW5nID0gTm9uZQotICAgICAgICBwYXRoID0g
Tm9uZQotICAgICAgICBwYXRoX3N0cmluZyA9IE5vbmUKLSAgICAgICAgS0VZX09SSUdJTiA9IDAK
LSAgICAgICAgS0VZX1BBVEggPSAxCi0gICAgICAgIGZvciAoa2V5LCB2YWx1ZSkgaW4gc2VsZi5w
YXJzZV9jbGllbnRfaW5kaWNhdGlvbigKLSAgICAgICAgICAgICAgICBpby5CeXRlc0lPKHNlbGYu
Y2xpZW50X2luZGljYXRpb25fZGF0YSkpOgotICAgICAgICAgICAgaWYga2V5ID09IEtFWV9PUklH
SU46Ci0gICAgICAgICAgICAgICAgb3JpZ2luX3N0cmluZyA9IHZhbHVlLmRlY29kZSgpCi0gICAg
ICAgICAgICAgICAgb3JpZ2luID0gdXJsbGliLnBhcnNlLnVybHBhcnNlKG9yaWdpbl9zdHJpbmcp
Ci0gICAgICAgICAgICBlbGlmIGtleSA9PSBLRVlfUEFUSDoKLSAgICAgICAgICAgICAgICBwYXRo
X3N0cmluZyA9IHZhbHVlLmRlY29kZSgpCi0gICAgICAgICAgICAgICAgcGF0aCA9IHVybGxpYi5w
YXJzZS51cmxwYXJzZShwYXRoX3N0cmluZykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgIyBXZSBtdXN0IGlnbm9yZSB1bnJlY29nbml6ZWQgZmllbGRzLgotICAgICAgICAgICAg
ICAgIHBhc3MKLSAgICAgICAgbG9nZ2VyLmluZm8oJ29yaWdpbiA9ICVzLCBwYXRoID0gJXMnLCBv
cmlnaW5fc3RyaW5nLCBwYXRoX3N0cmluZykKLSAgICAgICAgaWYgb3JpZ2luIGlzIE5vbmU6Ci0g
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIG9yaWdpbiBpcyBnaXZlbicpCi0gICAgICAg
IGFzc2VydCBvcmlnaW5fc3RyaW5nIGlzIG5vdCBOb25lCi0gICAgICAgIGlmIHBhdGggaXMgTm9u
ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gcGF0aCBpcyBnaXZlbicpCi0gICAg
ICAgIGFzc2VydCBwYXRoX3N0cmluZyBpcyBub3QgTm9uZQotICAgICAgICBpZiBvcmlnaW4uc2No
ZW1lICE9ICdodHRwcycgYW5kIG9yaWdpbi5zY2hlbWUgIT0gJ2h0dHAnOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIG9yaWdpbjogJXMnICUgb3JpZ2luX3N0cmluZykKLSAg
ICAgICAgaWYgb3JpZ2luLm5ldGxvYyA9PSAnJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignSW52YWxpZCBvcmlnaW46ICVzJyAlIG9yaWdpbl9zdHJpbmcpCi0KLSAgICAgICAgIyBUbyBt
YWtlIHRoZSBzaXR1YXRpb24gc2ltcGxlIHdlIGFjY2VwdCBvbmx5IHNpbXBsZSBwYXRoIHN0cmlu
Z3MuCi0gICAgICAgIG0gPSByZS5jb21waWxlKHInXi8oW2EtekEtWjAtOVwuX1wtXSspJCcpLm1h
dGNoKHBhdGgucGF0aCkKLSAgICAgICAgaWYgbSBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdJbnZhbGlkIHBhdGg6ICVzJyAlIHBhdGhfc3RyaW5nKQotCi0gICAgICAgIGhh
bmRsZXJfbmFtZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgcXVlcnkgPSBkaWN0KHVybGxpYi5wYXJz
ZS5wYXJzZV9xc2wocGF0aC5xdWVyeSkpCi0gICAgICAgIHNlbGYuaGFuZGxlciA9IHNlbGYuY3Jl
YXRlX2V2ZW50X2hhbmRsZXIoaGFuZGxlcl9uYW1lKQotICAgICAgICBzZWxmLmhhbmRsZXIuaGFu
ZGxlX2NsaWVudF9pbmRpY2F0aW9uKG9yaWdpbl9zdHJpbmcsIHF1ZXJ5KQotICAgICAgICBpZiBz
ZWxmLmlzX2Nsb3Npbmdfb3JfY2xvc2VkKCk6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAg
c2VsZi5jbGllbnRfaW5kaWNhdGlvbl9maW5pc2hlZCA9IFRydWUKLSAgICAgICAgbG9nZ2VyLmlu
Zm8oJ0NsaWVudCBpbmRpY2F0aW9uIGZpbmlzaGVkJykKLQotICAgIGRlZiBjcmVhdGVfZXZlbnRf
aGFuZGxlcihzZWxmLCBoYW5kbGVyX25hbWU6IHN0cikgLT4gRXZlbnRIYW5kbGVyOgotICAgICAg
ICBnbG9iYWxfZGljdDogRGljdFtzdHIsIEFueV0gPSB7fQotICAgICAgICB3aXRoIG9wZW4oaGFu
ZGxlcnNfcGF0aCArICcvJyArIGhhbmRsZXJfbmFtZSkgYXMgZjoKLSAgICAgICAgICAgIGV4ZWMo
Zi5yZWFkKCksIGdsb2JhbF9kaWN0KQotICAgICAgICByZXR1cm4gRXZlbnRIYW5kbGVyKHNlbGYs
IGdsb2JhbF9kaWN0KQotCi0gICAgZGVmIGlzX2Nsb3Npbmdfb3JfY2xvc2VkKHNlbGYpIC0+IGJv
b2w6Ci0gICAgICAgIGlmIHNlbGYuX3F1aWMuX2Nsb3NlX3BlbmRpbmc6Ci0gICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQotICAgICAgICBpZiBzZWxmLl9xdWljLl9zdGF0ZSBpbiBFTkRfU1RBVEVTOgot
ICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3Mg
U2Vzc2lvblRpY2tldFN0b3JlOgotICAgICcnJwotICAgIFNpbXBsZSBpbi1tZW1vcnkgc3RvcmUg
Zm9yIHNlc3Npb24gdGlja2V0cy4KLSAgICAnJycKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAt
PiBOb25lOgotICAgICAgICBzZWxmLnRpY2tldHM6IERpY3RbYnl0ZXMsIFNlc3Npb25UaWNrZXRd
ID0ge30KLQotICAgIGRlZiBhZGQoc2VsZiwgdGlja2V0OiBTZXNzaW9uVGlja2V0KSAtPiBOb25l
OgotICAgICAgICBzZWxmLnRpY2tldHNbdGlja2V0LnRpY2tldF0gPSB0aWNrZXQKLQotICAgIGRl
ZiBwb3Aoc2VsZiwgbGFiZWw6IGJ5dGVzKSAtPiBPcHRpb25hbFtTZXNzaW9uVGlja2V0XToKLSAg
ICAgICAgcmV0dXJuIHNlbGYudGlja2V0cy5wb3AobGFiZWwsIE5vbmUpCi0KLQotZGVmIHN0YXJ0
KCoqa3dhcmdzOiBBbnkpIC0+IE5vbmU6Ci0gICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1
cmF0aW9uKAotICAgICAgICBhbHBuX3Byb3RvY29scz1bJ3dxLXZ2di0wMSddICsgWydzaWR1Y2sn
XSwKLSAgICAgICAgaXNfY2xpZW50PUZhbHNlLAotICAgICAgICBtYXhfZGF0YWdyYW1fZnJhbWVf
c2l6ZT02NTUzNiwKLSAgICApCi0KLSAgICBnbG9iYWwgaGFuZGxlcnNfcGF0aAotICAgIGhhbmRs
ZXJzX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKAotICAgICAgICBr
d2FyZ3NbJ2hhbmRsZXJzX3BhdGgnXSkpCi0gICAgbG9nZ2VyLmluZm8oJ3BvcnQgPSAlcycsIGt3
YXJnc1sncG9ydCddKQotICAgIGxvZ2dlci5pbmZvKCdoYW5kbGVycyBwYXRoID0gJXMnLCBoYW5k
bGVyc19wYXRoKQotCi0gICAgIyBsb2FkIFNTTCBjZXJ0aWZpY2F0ZSBhbmQga2V5Ci0gICAgY29u
ZmlndXJhdGlvbi5sb2FkX2NlcnRfY2hhaW4oa3dhcmdzWydjZXJ0aWZpY2F0ZSddLCBrd2FyZ3Nb
J3ByaXZhdGVfa2V5J10pCi0KLSAgICB0aWNrZXRfc3RvcmUgPSBTZXNzaW9uVGlja2V0U3RvcmUo
KQotCi0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQotICAgIGxvb3AucnVuX3Vu
dGlsX2NvbXBsZXRlKAotICAgICAgICBzZXJ2ZSgKLSAgICAgICAgICAgIGt3YXJnc1snaG9zdCdd
LAotICAgICAgICAgICAga3dhcmdzWydwb3J0J10sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9u
PWNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICBjcmVhdGVfcHJvdG9jb2w9UXVpY1RyYW5zcG9y
dFByb3RvY29sLAotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXRfZmV0Y2hlcj10aWNrZXRfc3Rv
cmUucG9wLAotICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXRfaGFuZGxlcj10aWNrZXRfc3RvcmUu
YWRkLAotICAgICAgICApCi0gICAgKQotICAgIHRyeToKLSAgICAgICAgbG9vcC5ydW5fZm9yZXZl
cigpCi0gICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICBwYXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1
aWMvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcXVpYy9yZXF1aXJlbWVudHMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiNWI2NGNiOTA5ZGIzYjNkMTk2ZDJiNjNmMGE0ZjFlMzlmZTBiNWVhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9yZXF1aXJlbWVudHMudHh0
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYWlvcXVpYz09MC45LjExCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3F1aWMv
c2VydmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3F1aWMvc2VydmUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5YWU3NWJj
NGU4MmM1MDQ3NWFlZmQ4MWQ0MTc4MTE2MzExN2RjYmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9xdWljL3NlcnZlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAs
MCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBs
b2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWZyb20gdHlwaW5nIGltcG9ydCBBbnkKLQot
X2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKLQotCi1kZWYgZ2V0X3BhcnNlcigpIC0+
IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyOgotICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKGRlc2NyaXB0aW9uPSdRVUlDIHNlcnZlcicpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgKLSAgICAgICAgJy1jJywKLSAgICAgICAgJy0tY2VydGlmaWNhdGUnLAotICAgICAgICB0eXBl
PXN0ciwKLSAgICAgICAgZGVmYXVsdD1vcy5wYXRoLmpvaW4oX2RpciwgJ2NlcnRzJywgJ2NlcnQu
cGVtJyksCi0gICAgICAgIGhlbHA9J2xvYWQgdGhlIFRMUyBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBz
cGVjaWZpZWQgZmlsZScsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAg
ICctLWhvc3QnLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgZGVmYXVsdD0nOjonLAotICAg
ICAgICBoZWxwPSdsaXN0ZW4gb24gdGhlIHNwZWNpZmllZCBhZGRyZXNzIChkZWZhdWx0cyB0byA6
OiknLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAnLS1wb3J0JywK
LSAgICAgICAgdHlwZT1pbnQsCi0gICAgICAgIGRlZmF1bHQ9NDQzMywKLSAgICAgICAgaGVscD0n
bGlzdGVuIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCAoZGVmYXVsdHMgdG8gNDQzMyknLAotICAgICkK
LSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAnLWsnLAotICAgICAgICAnLS1wcml2
YXRlLWtleScsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBkZWZhdWx0PW9zLnBhdGguam9p
bihfZGlyLCAnY2VydHMnLCAnY2VydC5rZXknKSwKLSAgICAgICAgaGVscD0nbG9hZCB0aGUgVExT
IHByaXZhdGUga2V5IGZyb20gdGhlIHNwZWNpZmllZCBmaWxlJywKLSAgICApCi0gICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgKLSAgICAgICAgJy0taGFuZGxlcnMtcGF0aCcsCi0gICAgICAgIHR5cGU9
c3RyLAotICAgICAgICBkZWZhdWx0PW9zLnBhdGguam9pbigKLSAgICAgICAgICAgIF9kaXIsICcu
LicsICcuLicsICd3ZWJ0cmFuc3BvcnQnLCAncXVpYycsICdoYW5kbGVycycpLAotICAgICAgICBo
ZWxwPSd0aGUgZGlyZWN0b3J5IHBhdGggb2YgUXVpY1RyYW5zcG9ydCBldmVudCBoYW5kbGVycycs
Ci0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICctdicsCi0gICAgICAg
ICctLXZlcmJvc2UnLAotICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICBoZWxw
PSdpbmNyZWFzZSBsb2dnaW5nIHZlcmJvc2l0eScKLSAgICApCi0gICAgcmV0dXJuIHBhcnNlcgot
Ci0KLWRlZiBydW4odmVudjogQW55LCAqKmt3YXJnczogQW55KSAtPiBOb25lOgotICAgICMgVGhl
IHZlbnYgYXJndW1lbnQgaXMgcGFzc2VkIHdpdGggYHdwdCBzZXJ2ZS1xdWljLXRyYW5zcG9ydGAg
YnV0IGlzIHVudXNlZC4KLSAgICBhc3NlcnQgc3lzLnZlcnNpb25faW5mby5tYWpvciA9PSAzLCAn
UVVJQyBzZXJ2ZXIgb25seSBydW5zIGluIFB5dGhvbiAzJwotICAgIGxvZ2dpbmcuYmFzaWNDb25m
aWcoCi0gICAgICAgIGZvcm1hdD0nJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG5hbWUpcyAl
KG1lc3NhZ2UpcycsCi0gICAgICAgIGxldmVsPWxvZ2dpbmcuREVCVUcgaWYga3dhcmdzLmdldCgn
dmVyYm9zZScpIGVsc2UgbG9nZ2luZy5JTkZPLAotICAgICkKLQotICAgICMgRGVsYXkgaW1wb3J0
IGFmdGVyIHZlcnNpb24gY2hlY2sgdG8gbWFrZSB0aGUgZXJyb3IgZWFzaWVyIHRvIHVuZGVyc3Rh
bmQuCi0gICAgZnJvbSAucXVpY190cmFuc3BvcnRfc2VydmVyIGltcG9ydCBzdGFydAotICAgIHN0
YXJ0KCoqa3dhcmdzKQotCi0KLWRlZiBtYWluKCkgLT4gTm9uZToKLSAgICAjIFRoaXMgaXMgb25s
eSB1c2VkIHdoZW4gZXhlY3V0aW5nIHRoZSBzY3JpcHQgZGlyZWN0bHkuIFVzZXJzIGFyZQotICAg
ICMgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHZlbnYgdGhlbXNlbHZlcy4gYHdwdCBzZXJ2ZS1x
dWljLXRyYW5zcG9ydGAgZG9lcwotICAgICMgTk9UIHVzZSB0aGlzIGNvZGUgcGF0aC4KLSAgICBr
d2FyZ3MgPSB2YXJzKGdldF9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpCi0gICAgcnVuKE5vbmUsICoq
a3dhcmdzKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgbWFpbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3F1aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3F1aWMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM3ZDU0NTllMTUxZjJlNDI5MzlkZTk5NTdiNTE1MzNhYmE2YTBkZmYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWljL1JFQURNRS5tZAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9fX2luaXRfXy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVp
Yy9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9xdWljL3F1aWNfdHJhbnNwb3J0X3NlcnZlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcXVpYy9yZXF1aXJlbWVudHMudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9xdWlj
L3NlcnZlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19weXRlc3QudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4
dAppbmRleCA0MmViNDU3MzkxNDhiOTM4ZjFmOWU0OGY4MzlhMTkyYWZjOWQ3Y2IwLi43YzBjY2Fi
NjM1MTAxMjZhYjkyYzFiNGRhYWFjYWEyNjhmZDg2MjM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19weXRl
c3QudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKQEAgLTEsMyArMSwzIEBACiBweXRlc3Q9PTYu
Mi41Ci1weXRlc3QtY292PT0yLjEyLjEKLWh5cG90aGVzaXM9PTYuMjMuMQorcHl0ZXN0LWNvdj09
My4wLjAKK2h5cG90aGVzaXM9PTYuMzEuMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfdGVzdHMudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJl
bWVudHNfdGVzdHMudHh0CmluZGV4IDI4MGYzOTU3ZjdlZTc0MTc3OTBlZGFiZjZkMmVlYjcxZWY5
MmJkYzguLjA0ZTExZWIxMGU4ZDFlYTViMGEyZjA3MmIzZGRiZmIwMTFiOWIxZGMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVx
dWlyZW1lbnRzX3Rlc3RzLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c190ZXN0cy50eHQKQEAgLTEsNSArMSw1IEBA
Ci1qc29uLWU9PTQuNC4xCitqc29uLWU9PTQuNC4zCiBqc29uc2NoZW1hPT0zLjIuMAogcHl5YW1s
PT01LjQuMQotcmVxdWVzdHM9PTIuMjYuMAorcmVxdWVzdHM9PTIuMjcuMQogdGFza2NsdXN0ZXI9
PTQ0LjIuMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9ydW5uZXIvY3NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTBjMTgxNTJkZDQyOTEyOGUyMTI1
NDEzZjJhYjhiNzJhYzIxZDZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL2Nzcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL2Nzcy9ib290c3RyYXAtdGhlbWUubWluLmNzcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy9ib290c3RyYXAu
bWluLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGRhZjI3MjEzYmM2MzgyY2Ji
Y2FjODkzNzQ1Yzg2ZjViYjNlNTcyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIw
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5u
ZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGlj
b25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJl
Z3VsYXIud29mZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ0YjJhNTc1MWMzZjk4ZTQ3NDA2YzdlOGNm
ODg4ZmVjZDdjYTA3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1
bm5lci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVu
bmVyL2luZGV4Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQuY3NzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmNzcwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1
bm5lci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL3VwZGF0ZV9tYW5pZmVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMv
aWQycGF0aC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzliOGQ2NDRiYzUzM2Jk
NDgwNGU5YTQ3ODQ5ZDdmODBjNDZkZWNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLQotdmFyIGZzID0gcmVxdWlyZSgiZnMiKQotLCAgIHB0aCA9IHJlcXVpcmUoInBhdGgiKQot
LCAgIGlkID0gcHJvY2Vzcy5hcmd2WzJdCi07Ci0KLWlmICghaWQpIHsKLSAgICBjb25zb2xlLmxv
ZygiTWlzc2luZyBJRCIpOwotICAgIHByb2Nlc3MuZXhpdCgxKTsKLX0KLQotY29uc29sZS5sb2co
SlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocHRoLmpvaW4oX19kaXJuYW1lLCAiaWQycGF0aC5q
c29uIiksICJ1dGY4IikpW2lkXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qc29uIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBh
dGguanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkxYmQ4Njk0YzU3ZWM4YjNk
ZTZiOGIyMTdlNDAwMDIzZTc4NWE0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsODIyICswLDAg
QEAKLXsKLSAgICAiaW50cm9kdWN0aW9uIjogIm1pY3JvZGF0YS9pbnRyb2R1Y3Rpb24iLAotICAg
ICJiYWNrZ3JvdW5kIjogImh0bWwvaW50cm9kdWN0aW9uL2JhY2tncm91bmQiLAotICAgICJhdWRp
ZW5jZSI6ICJodG1sL2ludHJvZHVjdGlvbi9hdWRpZW5jZSIsCi0gICAgInNjb3BlIjogImh0bWwv
aW50cm9kdWN0aW9uL3Njb3BlIiwKLSAgICAiaGlzdG9yeS0wIjogImh0bWwvaW50cm9kdWN0aW9u
L2hpc3RvcnktMCIsCi0gICAgImRlc2lnbi1ub3RlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9kZXNp
Z24tbm90ZXMiLAotICAgICJzZXJpYWxpemFiaWxpdHktb2Ytc2NyaXB0LWV4ZWN1dGlvbiI6ICJo
dG1sL2ludHJvZHVjdGlvbi9kZXNpZ24tbm90ZXMvc2VyaWFsaXphYmlsaXR5LW9mLXNjcmlwdC1l
eGVjdXRpb24iLAotICAgICJjb21wbGlhbmNlLXdpdGgtb3RoZXItc3BlY2lmaWNhdGlvbnMiOiAi
aHRtbC9pbnRyb2R1Y3Rpb24vZGVzaWduLW5vdGVzL2NvbXBsaWFuY2Utd2l0aC1vdGhlci1zcGVj
aWZpY2F0aW9ucyIsCi0gICAgImh0bWwtdnMteGh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vaHRt
bC12cy14aHRtbCIsCi0gICAgInN0cnVjdHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24iOiAiaHRt
bC9pbnRyb2R1Y3Rpb24vc3RydWN0dXJlLW9mLXRoaXMtc3BlY2lmaWNhdGlvbiIsCi0gICAgImhv
dy10by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiI6ICJodG1sL2ludHJvZHVjdGlvbi9zdHJ1Y3R1
cmUtb2YtdGhpcy1zcGVjaWZpY2F0aW9uL2hvdy10by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiIs
Ci0gICAgInR5cG9ncmFwaGljLWNvbnZlbnRpb25zIjogImh0bWwvaW50cm9kdWN0aW9uL3N0cnVj
dHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24vdHlwb2dyYXBoaWMtY29udmVudGlvbnMiLAotICAg
ICJmaW5nZXJwcmludCI6ICJodG1sL2ludHJvZHVjdGlvbi9maW5nZXJwcmludCIsCi0gICAgImEt
cXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1p
bnRyb2R1Y3Rpb24tdG8taHRtbCIsCi0gICAgIndyaXRpbmctc2VjdXJlLWFwcGxpY2F0aW9ucy13
aXRoLWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1pbnRyb2R1Y3Rpb24tdG8taHRt
bC93cml0aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIiwKLSAgICAiY29tbW9uLXBp
dGZhbGxzLXRvLWF2b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIjogImh0bWwvaW50
cm9kdWN0aW9uL2EtcXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwvY29tbW9uLXBpdGZhbGxzLXRv
LWF2b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIiwKLSAgICAiY29uZm9ybWFuY2Ut
cmVxdWlyZW1lbnRzLWZvci1hdXRob3JzIjogImh0bWwvaW50cm9kdWN0aW9uL2NvbmZvcm1hbmNl
LXJlcXVpcmVtZW50cy1mb3ItYXV0aG9ycyIsCi0gICAgInByZXNlbnRhdGlvbmFsLW1hcmt1cCI6
ICJodG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMv
cHJlc2VudGF0aW9uYWwtbWFya3VwIiwKLSAgICAic3ludGF4LWVycm9ycyI6ICJodG1sL2ludHJv
ZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMvc3ludGF4LWVycm9y
cyIsCi0gICAgInJlc3RyaWN0aW9ucy1vbi1jb250ZW50LW1vZGVscy1hbmQtb24tYXR0cmlidXRl
LXZhbHVlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9y
LWF1dGhvcnMvcmVzdHJpY3Rpb25zLW9uLWNvbnRlbnQtbW9kZWxzLWFuZC1vbi1hdHRyaWJ1dGUt
dmFsdWVzIiwKLSAgICAic3VnZ2VzdGVkLXJlYWRpbmciOiAiaHRtbC9pbnRyb2R1Y3Rpb24vc3Vn
Z2VzdGVkLXJlYWRpbmciLAotICAgICJpbmZyYXN0cnVjdHVyZSI6ICJodG1sL2luZnJhc3RydWN0
dXJlIiwKLSAgICAidGVybWlub2xvZ3kiOiAibWljcm9kYXRhL3Rlcm1pbm9sb2d5IiwKLSAgICAi
cmVzb3VyY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvcmVzb3VyY2VzIiwK
LSAgICAieG1sIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kveG1sIiwKLSAgICAi
ZG9tLXRyZWVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvZG9tLXRyZWVzIiwK
LSAgICAic2NyaXB0aW5nLTAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9neS9zY3Jp
cHRpbmctMCIsCi0gICAgInBsdWdpbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9n
eS9wbHVnaW5zIiwKLSAgICAiY2hhcmFjdGVyLWVuY29kaW5ncyI6ICJodG1sL2luZnJhc3RydWN0
dXJlL3Rlcm1pbm9sb2d5L2NoYXJhY3Rlci1lbmNvZGluZ3MiLAotICAgICJjb25mb3JtYW5jZS1y
ZXF1aXJlbWVudHMiOiAibWljcm9kYXRhL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCi0gICAg
ImNvbmZvcm1hbmNlLWNsYXNzZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb25mb3JtYW5jZS1y
ZXF1aXJlbWVudHMvY29uZm9ybWFuY2UtY2xhc3NlcyIsCi0gICAgImRlcGVuZGVuY2llcyI6ICJt
aWNyb2RhdGEvZGVwZW5kZW5jaWVzIiwKLSAgICAiZXh0ZW5zaWJpbGl0eSI6ICJodG1sL2luZnJh
c3RydWN0dXJlL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy9leHRlbnNpYmlsaXR5IiwKLSAgICAi
Y2FzZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5nLWNvbXBhcmlzb24iOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jYXNlLXNlbnNpdGl2aXR5LWFuZC1zdHJpbmctY29tcGFyaXNvbiIsCi0gICAgInV0Zi04
IjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXRmLTgiLAotICAgICJjb21tb24tbWljcm9zeW50YXhl
cyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzIiwKLSAgICAiY29t
bW9uLXBhcnNlci1pZGlvbXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50
YXhlcy9jb21tb24tcGFyc2VyLWlkaW9tcyIsCi0gICAgImJvb2xlYW4tYXR0cmlidXRlcyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2Jvb2xlYW4tYXR0cmlidXRl
cyIsCi0gICAgImtleXdvcmRzLWFuZC1lbnVtZXJhdGVkLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9rZXl3b3Jkcy1hbmQtZW51bWVyYXRlZC1h
dHRyaWJ1dGVzIiwKLSAgICAibnVtYmVycyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1t
aWNyb3N5bnRheGVzL251bWJlcnMiLAotICAgICJzaWduZWQtaW50ZWdlcnMiOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKLSAgICAibm9uLW5lZ2F0
aXZlLWludGVnZXJzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMv
bnVtYmVycyIsCi0gICAgImZsb2F0aW5nLXBvaW50LW51bWJlcnMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKLSAgICAicGVyY2VudGFnZXMtYW5k
LWRpbWVuc2lvbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9u
dW1iZXJzIiwKLSAgICAibGlzdHMtb2YtaW50ZWdlcnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9j
b21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKLSAgICAibGlzdHMtb2YtZGltZW5zaW9ucyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL251bWJlcnMiLAotICAg
ICJkYXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50
YXhlcy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJtb250aHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJkYXRlcyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIs
Ci0gICAgInllYXJsZXNzLWRhdGVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jv
c3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKLSAgICAidGltZXMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJsb2NhbC1k
YXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9kYXRlcy1hbmQtdGltZXMiLAotICAgICJ0aW1lLXpvbmVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1
cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKLSAgICAiZ2xvYmFsLWRh
dGVzLWFuZC10aW1lcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVz
L2RhdGVzLWFuZC10aW1lcyIsCi0gICAgIndlZWtzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29t
bW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKLSAgICAiZHVyYXRpb25zIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwK
LSAgICAidmFndWVyLW1vbWVudHMtaW4tdGltZSI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1v
bi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCi0gICAgImNvbG9ycyI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbG9ycyIsCi0gICAgInNwYWNlLXNl
cGFyYXRlZC10b2tlbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zIiwKLSAgICAiY29tbWEtc2VwYXJhdGVkLXRva2VucyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbW1hLXNlcGFyYXRl
ZC10b2tlbnMiLAotICAgICJzeW50YXgtcmVmZXJlbmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJl
L2NvbW1vbi1taWNyb3N5bnRheGVzL3N5bnRheC1yZWZlcmVuY2VzIiwKLSAgICAibXEiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9tcSIsCi0gICAgInVybHMiOiAi
aHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzIiwKLSAgICAidGVybWlub2xvZ3ktMCI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL3VybHMvdGVybWlub2xvZ3ktMCIsCi0gICAgInBhcnNpbmctdXJscyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL3VybHMvcGFyc2luZy11cmxzIiwKLSAgICAiYmFzZS11cmxzIjog
Imh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9iYXNlLXVybHMiLAotICAgICJyZXNvbHZpbmctdXJs
cyI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMiLAotICAgICJ1cmwt
bWFuaXB1bGF0aW9uLWFuZC1jcmVhdGlvbiI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvdXJs
LW1hbmlwdWxhdGlvbi1hbmQtY3JlYXRpb24iLAotICAgICJkeW5hbWljLWNoYW5nZXMtdG8tYmFz
ZS11cmxzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9keW5hbWljLWNoYW5nZXMtdG8tYmFz
ZS11cmxzIiwKLSAgICAiaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL3VybHMvaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiIsCi0gICAg
ImZldGNoaW5nLXJlc291cmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291
cmNlcyIsCi0gICAgInRlcm1pbm9sb2d5LTEiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGlu
Zy1yZXNvdXJjZXMvdGVybWlub2xvZ3ktMSIsCi0gICAgInByb2Nlc3NpbmctbW9kZWwiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvcHJvY2Vzc2luZy1tb2RlbCIsCi0g
ICAgImVuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVkLXNlY3VyaXR5LWNvbmNlcm5zIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2VuY3J5cHRlZC1odHRwLWFuZC1yZWxh
dGVkLXNlY3VyaXR5LWNvbmNlcm5zIiwKLSAgICAiY29udGVudC10eXBlLXNuaWZmaW5nIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2NvbnRlbnQtdHlwZS1zbmlmZmlu
ZyIsCi0gICAgImV4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxlbWVu
dHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvZXh0cmFjdGluZy1j
aGFyYWN0ZXItZW5jb2RpbmdzLWZyb20tbWV0YS1lbGVtZW50cyIsCi0gICAgImNvcnMtc2V0dGlu
Z3MtYXR0cmlidXRlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291cmNlcy9j
b3JzLXNldHRpbmdzLWF0dHJpYnV0ZXMiLAotICAgICJjb3JzLWVuYWJsZWQtZmV0Y2giOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvY29ycy1lbmFibGVkLWZldGNoIiwK
LSAgICAiY29tbW9uLWRvbS1pbnRlcmZhY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9u
LWRvbS1pbnRlcmZhY2VzIiwKLSAgICAicmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4t
aWRsLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFj
ZXMvcmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4taWRsLWF0dHJpYnV0ZXMiLAotICAg
ICJjb2xsZWN0aW9ucyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNl
cy9jb2xsZWN0aW9ucyIsCi0gICAgImh0bWxhbGxjb2xsZWN0aW9uIjogImh0bWwvaW5mcmFzdHJ1
Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25zIiwKLSAgICAiaHRtbGZvcm1j
b250cm9sc2NvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVy
ZmFjZXMvY29sbGVjdGlvbnMiLAotICAgICJodG1sb3B0aW9uc2NvbGxlY3Rpb24iOiAiaHRtbC9p
bmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMiLAotICAgICJk
b21zdHJpbmdtYXAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMv
ZG9tc3RyaW5nbWFwIiwKLSAgICAidHJhbnNmZXJhYmxlLW9iamVjdHMiOiAiaHRtbC9pbmZyYXN0
cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvdHJhbnNmZXJhYmxlLW9iamVjdHMiLAotICAg
ICJzYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUv
Y29tbW9uLWRvbS1pbnRlcmZhY2VzL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEiLAot
ICAgICJnYXJiYWdlLWNvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9t
LWludGVyZmFjZXMvZ2FyYmFnZS1jb2xsZWN0aW9uIiwKLSAgICAibmFtZXNwYWNlcyI6ICJodG1s
L2luZnJhc3RydWN0dXJlL25hbWVzcGFjZXMiLAotICAgICJkb20iOiAiaHRtbC9kb20iLAotICAg
ICJkb2N1bWVudHMiOiAiaHRtbC9kb20vZG9jdW1lbnRzIiwKLSAgICAidGhlLWRvY3VtZW50LW9i
amVjdCI6ICJodG1sL2RvbS9kb2N1bWVudHMvdGhlLWRvY3VtZW50LW9iamVjdCIsCi0gICAgInNl
Y3VyaXR5LWRvY3VtZW50IjogImh0bWwvZG9tL2RvY3VtZW50cy9zZWN1cml0eS1kb2N1bWVudCIs
Ci0gICAgInJlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiOiAiaHRtbC9kb20vZG9jdW1lbnRz
L3Jlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiLAotICAgICJkb20tdHJlZS1hY2Nlc3NvcnMi
OiAiaHRtbC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycyIsCi0gICAgImxvYWRpbmct
eG1sLWRvY3VtZW50cyI6ICJodG1sL2RvbS9kb2N1bWVudHMvbG9hZGluZy14bWwtZG9jdW1lbnRz
IiwKLSAgICAiZWxlbWVudHMiOiAiaHRtbC9kb20vZWxlbWVudHMiLAotICAgICJzZW1hbnRpY3Mt
MCI6ICJodG1sL2RvbS9lbGVtZW50cy9zZW1hbnRpY3MtMCIsCi0gICAgImVsZW1lbnRzLWluLXRo
ZS1kb20iOiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudHMtaW4tdGhlLWRvbSIsCi0gICAgImds
b2JhbC1hdHRyaWJ1dGVzIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwK
LSAgICAidGhlLWlkLWF0dHJpYnV0ZSI6ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmli
dXRlcyIsCi0gICAgInRoZS10aXRsZS1hdHRyaWJ1dGUiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xv
YmFsLWF0dHJpYnV0ZXMiLAotICAgICJ0aGUtbGFuZy1hbmQteG1sOmxhbmctYXR0cmlidXRlcyI6
ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgInRoZS10cmFuc2xh
dGUtYXR0cmlidXRlIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKLSAg
ICAidGhlLXhtbDpiYXNlLWF0dHJpYnV0ZS0oeG1sLW9ubHkpIjogImh0bWwvZG9tL2VsZW1lbnRz
L2dsb2JhbC1hdHRyaWJ1dGVzIiwKLSAgICAidGhlLWRpci1hdHRyaWJ1dGUiOiAiaHRtbC9kb20v
ZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMiLAotICAgICJjbGFzc2VzIjogImh0bWwvZG9tL2Vs
ZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKLSAgICAidGhlLXN0eWxlLWF0dHJpYnV0ZSI6ICJo
dG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgImVtYmVkZGluZy1jdXN0
b20tbm9uLXZpc2libGUtZGF0YS13aXRoLXRoZS1kYXRhLSotYXR0cmlidXRlcyI6ICJodG1sL2Rv
bS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCi0gICAgImVsZW1lbnQtZGVmaW5pdGlvbnMi
OiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCi0gICAgImF0dHJpYnV0
ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCi0gICAgImNvbnRl
bnQtbW9kZWxzIjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAia2lu
ZHMtb2YtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1vZGVscyIsCi0gICAg
Im1ldGFkYXRhLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAot
ICAgICJmbG93LWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAot
ICAgICJzZWN0aW9uaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2Rl
bHMiLAotICAgICJoZWFkaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1t
b2RlbHMiLAotICAgICJwaHJhc2luZy1jb250ZW50IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRl
bnQtbW9kZWxzIiwKLSAgICAiZW1iZWRkZWQtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9j
b250ZW50LW1vZGVscyIsCi0gICAgImludGVyYWN0aXZlLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxl
bWVudHMvY29udGVudC1tb2RlbHMiLAotICAgICJwYWxwYWJsZS1jb250ZW50IjogImh0bWwvZG9t
L2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAidHJhbnNwYXJlbnQtY29udGVudC1tb2Rl
bHMiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAotICAgICJwYXJhZ3JhcGhz
IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKLSAgICAicmVxdWlyZW1lbnRz
LXJlbGF0aW5nLXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZvcm1hdHRpbmctY2hhcmFjdGVy
cyI6ICJodG1sL2RvbS9lbGVtZW50cy9yZXF1aXJlbWVudHMtcmVsYXRpbmctdG8tYmlkaXJlY3Rp
b25hbC1hbGdvcml0aG0tZm9ybWF0dGluZy1jaGFyYWN0ZXJzIiwKLSAgICAid2FpLWFyaWEiOiAi
aHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAotICAgICJhcmlhLXJvbGUtYXR0cmlidXRlIjog
Imh0bWwvZG9tL2VsZW1lbnRzL3dhaS1hcmlhIiwKLSAgICAic3RhdGUtYW5kLXByb3BlcnR5LWF0
dHJpYnV0ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAotICAgICJzZWMtc3Ryb25n
LW5hdGl2ZS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAotICAgICJz
ZWMtaW1wbGljaXQtYXJpYS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEi
LAotICAgICJpbnRlcmFjdGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCI6ICJodG1sL2RvbS9pbnRl
cmFjdGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCIsCi0gICAgImR5bmFtaWMtbWFya3VwLWluc2Vy
dGlvbiI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24iLAotICAgICJvcGVuaW5n
LXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL29w
ZW5pbmctdGhlLWlucHV0LXN0cmVhbSIsCi0gICAgImNsb3NpbmctdGhlLWlucHV0LXN0cmVhbSI6
ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vY2xvc2luZy10aGUtaW5wdXQtc3Ry
ZWFtIiwKLSAgICAiZG9jdW1lbnQud3JpdGUoKSI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1p
bnNlcnRpb24vZG9jdW1lbnQtd3JpdGUiLAotICAgICJkb2N1bWVudC53cml0ZWxuKCkiOiAiaHRt
bC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL2RvY3VtZW50LXdyaXRlbG4iLAotICAgICJz
ZW1hbnRpY3MiOiAiaHRtbC9zZW1hbnRpY3MiLAotICAgICJ0aGUtcm9vdC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQiLAotICAgICJ0aGUtaHRtbC1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQvdGhlLWh0bWwtZWxlbWVudCIsCi0gICAg
ImRvY3VtZW50LW1ldGFkYXRhIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhIiwK
LSAgICAidGhlLWhlYWQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0
YS90aGUtaGVhZC1lbGVtZW50IiwKLSAgICAidGhlLXRpdGxlLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLXRpdGxlLWVsZW1lbnQiLAotICAgICJ0aGUtYmFz
ZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1iYXNlLWVs
ZW1lbnQiLAotICAgICJ0aGUtbGluay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50
LW1ldGFkYXRhL3RoZS1saW5rLWVsZW1lbnQiLAotICAgICJ0aGUtbWV0YS1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQiLAotICAgICJz
dGFuZGFyZC1tZXRhZGF0YS1uYW1lcyI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0
YS90aGUtbWV0YS1lbGVtZW50IiwKLSAgICAib3RoZXItbWV0YWRhdGEtbmFtZXMiOiAiaHRtbC9z
ZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudCIsCi0gICAgInByYWdt
YS1kaXJlY3RpdmVzIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRh
LWVsZW1lbnQiLAotICAgICJvdGhlci1wcmFnbWEtZGlyZWN0aXZlcyI6ICJodG1sL3NlbWFudGlj
cy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKLSAgICAiY2hhcnNldCI6ICJo
dG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKLSAgICAi
dGhlLXN0eWxlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhl
LXN0eWxlLWVsZW1lbnQiLAotICAgICJzdHlsaW5nIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50
LW1ldGFkYXRhL3N0eWxpbmciLAotICAgICJzY3JpcHRpbmctMSI6ICJodG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMSIsCi0gICAgInRoZS1zY3JpcHQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAotICAgICJzY3JpcHRpbmdMYW5ndWFnZXMi
OiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKLSAgICAi
cmVzdHJpY3Rpb25zLWZvci1jb250ZW50cy1vZi1zY3JpcHQtZWxlbWVudHMiOiAiaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKLSAgICAiaW5saW5lLWRvY3Vt
ZW50YXRpb24tZm9yLWV4dGVybmFsLXNjcmlwdHMiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKLSAgICAic2NyaXB0VGFnWFNMVCI6ICJodG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAotICAgICJ0aGUtbm9zY3JpcHQt
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtbm9zY3JpcHQtZWxlbWVu
dCIsCi0gICAgInNlY3Rpb25zIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zIiwKLSAgICAidGhl
LWJvZHktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtYm9keS1lbGVtZW50
IiwKLSAgICAidGhlLWFydGljbGUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90
aGUtYXJ0aWNsZS1lbGVtZW50IiwKLSAgICAidGhlLXNlY3Rpb24tZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9zZWN0aW9ucy90aGUtc2VjdGlvbi1lbGVtZW50IiwKLSAgICAidGhlLW5hdi1lbGVt
ZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1uYXYtZWxlbWVudCIsCi0gICAgInRo
ZS1hc2lkZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hc2lkZS1lbGVt
ZW50IiwKLSAgICAidGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzIjogImh0
bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1oMS1oMi1oMy1oNC1oNS1hbmQtaDYtZWxlbWVudHMi
LAotICAgICJ0aGUtaGdyb3VwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhl
LWhncm91cC1lbGVtZW50IiwKLSAgICAidGhlLWhlYWRlci1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL3NlY3Rpb25zL3RoZS1oZWFkZXItZWxlbWVudCIsCi0gICAgInRoZS1mb290ZXItZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtZm9vdGVyLWVsZW1lbnQiLAotICAgICJ0
aGUtYWRkcmVzcy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hZGRyZXNz
LWVsZW1lbnQiLAotICAgICJoZWFkaW5ncy1hbmQtc2VjdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3Mv
c2VjdGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKLSAgICAib3V0bGluZXMiOiAiaHRtbC9z
ZW1hbnRpY3Mvc2VjdGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKLSAgICAidXNhZ2Utc3Vt
bWFyeS0wIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3VzYWdlLXN1bW1hcnktMCIsCi0gICAg
Imdyb3VwaW5nLWNvbnRlbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudCIsCi0g
ICAgInRoZS1wLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUt
cC1lbGVtZW50IiwKLSAgICAidGhlLWhyLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtaHItZWxlbWVudCIsCi0gICAgInRoZS1wcmUtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1wcmUtZWxlbWVudCIsCi0gICAgInRoZS1i
bG9ja3F1b3RlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUt
YmxvY2txdW90ZS1lbGVtZW50IiwKLSAgICAidGhlLW9sLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudCIsCi0gICAgInRoZS11bC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLXVsLWVsZW1lbnQiLAotICAg
ICJ0aGUtbGktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1s
aS1lbGVtZW50IiwKLSAgICAidGhlLWRsLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtZGwtZWxlbWVudCIsCi0gICAgInRoZS1kdC1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQiLAotICAgICJ0aGUtZGQt
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kZC1lbGVtZW50
IiwKLSAgICAidGhlLWZpZ3VyZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNv
bnRlbnQvdGhlLWZpZ3VyZS1lbGVtZW50IiwKLSAgICAidGhlLWZpZ2NhcHRpb24tZWxlbWVudCI6
ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQi
LAotICAgICJ0aGUtZGl2LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVu
dC90aGUtZGl2LWVsZW1lbnQiLAotICAgICJ0ZXh0LWxldmVsLXNlbWFudGljcyI6ICJodG1sL3Nl
bWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcyIsCi0gICAgInRoZS1hLWVsZW1lbnQiOiAiaHRt
bC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxlbWVudCIsCi0gICAgInRo
ZS1lbS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1l
bS1lbGVtZW50IiwKLSAgICAidGhlLXN0cm9uZy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3Rl
eHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zdHJvbmctZWxlbWVudCIsCi0gICAgInRoZS1zbWFsbC1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zbWFsbC1l
bGVtZW50IiwKLSAgICAidGhlLXMtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVs
LXNlbWFudGljcy90aGUtcy1lbGVtZW50IiwKLSAgICAidGhlLWNpdGUtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtY2l0ZS1lbGVtZW50IiwKLSAgICAi
dGhlLXEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
cS1lbGVtZW50IiwKLSAgICAidGhlLWRmbi1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1kZm4tZWxlbWVudCIsCi0gICAgInRoZS1hYmJyLWVsZW1lbnQi
OiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWFiYnItZWxlbWVudCIs
Ci0gICAgInRoZS10aW1lLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLXRpbWUtZWxlbWVudCIsCi0gICAgInRoZS1jb2RlLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWNvZGUtZWxlbWVudCIsCi0gICAgInRo
ZS12YXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
dmFyLWVsZW1lbnQiLAotICAgICJ0aGUtc2FtcC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3Rl
eHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zYW1wLWVsZW1lbnQiLAotICAgICJ0aGUta2JkLWVsZW1l
bnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWtiZC1lbGVtZW50
IiwKLSAgICAidGhlLXN1Yi1hbmQtc3VwLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1zdWItYW5kLXN1cC1lbGVtZW50cyIsCi0gICAgInRoZS1pLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWktZWxlbWVu
dCIsCi0gICAgInRoZS1iLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLWItZWxlbWVudCIsCi0gICAgInRoZS11LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXUtZWxlbWVudCIsCi0gICAgInRoZS1tYXJrLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLW1hcmstZWxl
bWVudCIsCi0gICAgInRoZS1ydWJ5LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZl
bC1zZW1hbnRpY3MvdGhlLXJ1YnktZWxlbWVudCIsCi0gICAgInRoZS1ydC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ydC1lbGVtZW50IiwKLSAgICAi
dGhlLXJwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhl
LXJwLWVsZW1lbnQiLAotICAgICJ0aGUtYmRpLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4
dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWJkaS1lbGVtZW50IiwKLSAgICAidGhlLWJkby1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1iZG8tZWxlbWVudCIs
Ci0gICAgInRoZS1zcGFuLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLXNwYW4tZWxlbWVudCIsCi0gICAgInRoZS1ici1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ici1lbGVtZW50IiwKLSAgICAidGhlLXdi
ci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS13YnIt
ZWxlbWVudCIsCi0gICAgInVzYWdlLXN1bW1hcnkiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZl
bC1zZW1hbnRpY3MvdXNhZ2Utc3VtbWFyeSIsCi0gICAgImVkaXRzIjogImh0bWwvc2VtYW50aWNz
L2VkaXRzIiwKLSAgICAidGhlLWlucy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VkaXRzL3Ro
ZS1pbnMtZWxlbWVudCIsCi0gICAgInRoZS1kZWwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
ZGl0cy90aGUtZGVsLWVsZW1lbnQiLAotICAgICJhdHRyaWJ1dGVzLWNvbW1vbi10by1pbnMtYW5k
LWRlbC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lZGl0cy9hdHRyaWJ1dGVzLWNvbW1vbi10
by1pbnMtYW5kLWRlbC1lbGVtZW50cyIsCi0gICAgImVkaXRzLWFuZC1wYXJhZ3JhcGhzIjogImh0
bWwvc2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1wYXJhZ3JhcGhzIiwKLSAgICAiZWRpdHMtYW5k
LWxpc3RzIjogImh0bWwvc2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1saXN0cyIsCi0gICAgImVk
aXRzLWFuZC10YWJsZXMiOiAiaHRtbC9zZW1hbnRpY3MvZWRpdHMvZWRpdHMtYW5kLXRhYmxlcyIs
Ci0gICAgImVtYmVkZGVkLWNvbnRlbnQtMCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAiLAotICAgICJ0aGUtaW1nLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAgImFsdCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiZ2VuZXJhbC1ndWlkZWxp
bmVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQi
LAotICAgICJhLWxpbmstb3ItYnV0dG9uLWNvbnRhaW5pbmctbm90aGluZy1idXQtdGhlLWltYWdl
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAot
ICAgICJhLXBocmFzZS1vci1wYXJhZ3JhcGgtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFwaGljYWwt
cmVwcmVzZW50YXRpb246LWNoYXJ0cywtZGlhZ3JhbXMsLWdyYXBocywtbWFwcywtaWxsdXN0cmF0
aW9ucyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50
IiwKLSAgICAiYS1zaG9ydC1waHJhc2Utb3ItbGFiZWwtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFw
aGljYWwtcmVwcmVzZW50YXRpb246LWljb25zLC1sb2dvcyI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAidGV4dC10aGF0LWhhcy1iZWVu
LXJlbmRlcmVkLXRvLWEtZ3JhcGhpYy1mb3ItdHlwb2dyYXBoaWNhbC1lZmZlY3QiOiAiaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAgImEtZ3Jh
cGhpY2FsLXJlcHJlc2VudGF0aW9uLW9mLXNvbWUtb2YtdGhlLXN1cnJvdW5kaW5nLXRleHQiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAg
ImEtcHVyZWx5LWRlY29yYXRpdmUtaW1hZ2UtdGhhdC1kb2Vzbid0LWFkZC1hbnktaW5mb3JtYXRp
b24iOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIs
Ci0gICAgImEtZ3JvdXAtb2YtaW1hZ2VzLXRoYXQtZm9ybS1hLXNpbmdsZS1sYXJnZXItcGljdHVy
ZS13aXRoLW5vLWxpbmtzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUt
aW1nLWVsZW1lbnQiLAotICAgICJhLWdyb3VwLW9mLWltYWdlcy10aGF0LWZvcm0tYS1zaW5nbGUt
bGFyZ2VyLXBpY3R1cmUtd2l0aC1saW5rcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiYS1rZXktcGFydC1vZi10aGUtY29udGVudCI6
ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAg
ICAiYW4taW1hZ2Utbm90LWludGVuZGVkLWZvci10aGUtdXNlciI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKLSAgICAiZ3VpZGFuY2UtZm9yLW1h
cmt1cC1nZW5lcmF0b3JzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUt
aW1nLWVsZW1lbnQiLAotICAgICJndWlkYW5jZS1mb3ItY29uZm9ybWFuY2UtY2hlY2tlcnMiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCi0gICAg
InRoZS1pZnJhbWUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
dGhlLWlmcmFtZS1lbGVtZW50IiwKLSAgICAidGhlLWVtYmVkLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1lbWJlZC1lbGVtZW50IiwKLSAgICAidGhlLW9i
amVjdC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtb2Jq
ZWN0LWVsZW1lbnQiLAotICAgICJ0aGUtcGFyYW0tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLXBhcmFtLWVsZW1lbnQiLAotICAgICJ0aGUtdmlkZW8tZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLXZpZGVvLWVsZW1l
bnQiLAotICAgICJ0aGUtYXVkaW8tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50LTAvdGhlLWF1ZGlvLWVsZW1lbnQiLAotICAgICJ0aGUtc291cmNlLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1zb3VyY2UtZWxlbWVudCIsCi0g
ICAgInRoZS10cmFjay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtdHJhY2stZWxlbWVudCIsCi0gICAgIm1lZGlhLWVsZW1lbnRzIjogImh0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgImVycm9yLWNvZGVz
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0g
ICAgImxvY2F0aW9uLW9mLXRoZS1tZWRpYS1yZXNvdXJjZSI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJtaW1lLXR5cGVzIjogImh0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgIm5ldHdv
cmstc3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVt
ZW50cyIsCi0gICAgImxvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlIjogImh0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgIm9mZnNldHMtaW50by10
aGUtbWVkaWEtcmVzb3VyY2UiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKLSAgICAicmVhZHktc3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInBsYXlpbmctdGhlLW1lZGlhLXJl
c291cmNlIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCi0gICAgInNlZWtpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKLSAgICAibWVkaWEtcmVzb3VyY2VzLXdpdGgtbXVsdGlwbGUtbWVkaWEt
dHJhY2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCi0gICAgImF1ZGlvdHJhY2tsaXN0LWFuZC12aWRlb3RyYWNrbGlzdC1vYmplY3RzIjogImh0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInNl
bGVjdGluZy1zcGVjaWZpYy1hdWRpby1hbmQtdmlkZW8tdHJhY2tzLWRlY2xhcmF0aXZlbHkiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAi
c3luY2hyb25pc2luZy1tdWx0aXBsZS1tZWRpYS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJpbnRyb2R1Y3Rpb24tMCI6
ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAg
ICJtZWRpYS1jb250cm9sbGVycyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
bWVkaWEtZWxlbWVudHMiLAotICAgICJhc3NpZ25pbmctYS1tZWRpYS1jb250cm9sbGVyLWRlY2xh
cmF0aXZlbHkiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1l
bnRzIiwKLSAgICAidGltZWQtdGV4dC10cmFja3MiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAidGV4dC10cmFjay1tb2RlbCI6ICJodG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJzb3Vy
Y2luZy1pbi1iYW5kLXRleHQtdHJhY2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQtMC9tZWRpYS1lbGVtZW50cyIsCi0gICAgInNvdXJjaW5nLW91dC1vZi1iYW5kLXRleHQtdHJh
Y2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIs
Ci0gICAgImd1aWRlbGluZXMtZm9yLWV4cG9zaW5nLWN1ZXMtaW4tdmFyaW91cy1mb3JtYXRzLWFz
LXRleHQtdHJhY2stY3VlcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVk
aWEtZWxlbWVudHMiLAotICAgICJ0ZXh0LXRyYWNrLWFwaSI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAotICAgICJ0ZXh0LXRyYWNrcy1kZXNjcmli
aW5nLWNoYXB0ZXJzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1l
bGVtZW50cyIsCi0gICAgImN1ZS1ldmVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAidXNlci1pbnRlcmZhY2UiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAidGltZS1yYW5n
ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwK
LSAgICAiZXZlbnQtZGVmaW5pdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAibWVkaWFldmVudHMiOiAiaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKLSAgICAic2VjdXJpdHktYW5kLXBy
aXZhY3ktY29uc2lkZXJhdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0w
L21lZGlhLWVsZW1lbnRzIiwKLSAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWF1dGhvcnMtdXNpbmct
bWVkaWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlh
LWVsZW1lbnRzIiwKLSAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWltcGxlbWVudG9ycy1vZi1tZWRp
YS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxl
bWVudHMiLAotICAgICJ0aGUtY2FudmFzLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCi0gICAgImNvbG9yLXNwYWNlcy1hbmQt
Y29sb3ItY29ycmVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhl
LWNhbnZhcy1lbGVtZW50IiwKLSAgICAic2VjdXJpdHktd2l0aC1jYW52YXMtZWxlbWVudHMiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCi0g
ICAgInRoZS1tYXAtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
dGhlLW1hcC1lbGVtZW50IiwKLSAgICAidGhlLWFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWFyZWEtZWxlbWVudCIsCi0gICAgImltYWdlLW1hcHMi
OiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMiLAotICAgICJh
dXRob3JpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMi
LAotICAgICJwcm9jZXNzaW5nLW1vZGVsLTAiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL2ltYWdlLW1hcHMiLAotICAgICJtYXRobWwiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC0wL21hdGhtbCIsCi0gICAgInN2ZyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvc3ZnIiwKLSAgICAiZGltZW5zaW9uLWF0dHJpYnV0ZXMiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2RpbWVuc2lvbi1hdHRyaWJ1dGVzIiwKLSAgICAidGFi
dWxhci1kYXRhIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YSIsCi0gICAgInRoZS10YWJs
ZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVu
dCIsCi0gICAgInRhYmxlLWRlc2NyaXB0aW9ucy10ZWNobmlxdWVzIjogImh0bWwvc2VtYW50aWNz
L3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIsCi0gICAgInRhYmxlLWxheW91dC10ZWNo
bmlxdWVzIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIs
Ci0gICAgInRoZS1jYXB0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3RoZS1jYXB0aW9uLWVsZW1lbnQiLAotICAgICJ0aGUtY29sZ3JvdXAtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLWNvbGdyb3VwLWVsZW1lbnQiLAotICAgICJ0aGUt
Y29sLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS1jb2wtZWxlbWVu
dCIsCi0gICAgInRoZS10Ym9keS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0
YS90aGUtdGJvZHktZWxlbWVudCIsCi0gICAgInRoZS10aGVhZC1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGhlYWQtZWxlbWVudCIsCi0gICAgInRoZS10Zm9vdC1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3QtZWxlbWVudCIs
Ci0gICAgInRoZS10ci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUt
dHItZWxlbWVudCIsCi0gICAgInRoZS10ZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVs
YXItZGF0YS90aGUtdGQtZWxlbWVudCIsCi0gICAgInRoZS10aC1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGgtZWxlbWVudCIsCi0gICAgImF0dHJpYnV0ZXMtY29t
bW9uLXRvLXRkLWFuZC10aC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEv
YXR0cmlidXRlcy1jb21tb24tdG8tdGQtYW5kLXRoLWVsZW1lbnRzIiwKLSAgICAicHJvY2Vzc2lu
Zy1tb2RlbC0xIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9wcm9jZXNzaW5nLW1vZGVs
LTEiLAotICAgICJmb3JtaW5nLWEtdGFibGUiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3Byb2Nlc3NpbmctbW9kZWwtMSIsCi0gICAgImhlYWRlci1hbmQtZGF0YS1jZWxsLXNlbWFudGlj
cyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvcHJvY2Vzc2luZy1tb2RlbC0xIiwKLSAg
ICAiZXhhbXBsZXMiOiAiY2FudmFzMmQvZXhhbXBsZXMiLAotICAgICJmb3JtcyI6ICJodG1sL3Nl
bWFudGljcy9mb3JtcyIsCi0gICAgImludHJvZHVjdGlvbi0xIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL2ludHJvZHVjdGlvbi0xIiwKLSAgICAid3JpdGluZy1hLWZvcm0ncy11c2VyLWludGVyZmFj
ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCi0gICAgImltcGxlbWVu
dGluZy10aGUtc2VydmVyLXNpZGUtcHJvY2Vzc2luZy1mb3ItYS1mb3JtIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2ludHJvZHVjdGlvbi0xIiwKLSAgICAiY29uZmlndXJpbmctYS1mb3JtLXRvLWNv
bW11bmljYXRlLXdpdGgtYS1zZXJ2ZXIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0
aW9uLTEiLAotICAgICJjbGllbnQtc2lkZS1mb3JtLXZhbGlkYXRpb24iOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAotICAgICJlbmFibGluZy1jbGllbnQtc2lkZS1hdXRv
bWF0aWMtZmlsbGluZy1vZi1mb3JtLWNvbnRyb2xzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2lu
dHJvZHVjdGlvbi0xIiwKLSAgICAiaW1wcm92aW5nLXRoZS11c2VyLWV4cGVyaWVuY2Utb24tbW9i
aWxlLWRldmljZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAotICAg
ICJ0aGUtZGlmZmVyZW5jZS1iZXR3ZWVuLXRoZS1maWVsZC10eXBlLC10aGUtYXV0b2ZpbGwtZmll
bGQtbmFtZSwtYW5kLXRoZS1pbnB1dC1tb2RhbGl0eSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9p
bnRyb2R1Y3Rpb24tMSIsCi0gICAgImlucHV0LWF1dGhvci1ub3RlcyI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCi0gICAgImNhdGVnb3JpZXMiOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvY2F0ZWdvcmllcyIsCi0gICAgInRoZS1mb3JtLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudCIsCi0gICAgInRoZS1maWVsZHNldC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1maWVsZHNldC1lbGVtZW50IiwKLSAgICAidGhl
LWxlZ2VuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1sZWdlbmQtZWxlbWVu
dCIsCi0gICAgInRoZS1sYWJlbC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1s
YWJlbC1lbGVtZW50IiwKLSAgICAidGhlLWlucHV0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmli
dXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiaGlk
ZGVuLXN0YXRlLSh0eXBlPWhpZGRlbikiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0
LWVsZW1lbnQiLAotICAgICJ0ZXh0LSh0eXBlPXRleHQpLXN0YXRlLWFuZC1zZWFyY2gtc3RhdGUt
KHR5cGU9c2VhcmNoKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIs
Ci0gICAgInRlbGVwaG9uZS1zdGF0ZS0odHlwZT10ZWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAidXJsLXN0YXRlLSh0eXBlPXVybCkiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJlLW1haWwtc3RhdGUtKHR5
cGU9ZW1haWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAg
ICAicGFzc3dvcmQtc3RhdGUtKHR5cGU9cGFzc3dvcmQpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiZGF0ZS1hbmQtdGltZS1zdGF0ZS0odHlwZT1kYXRl
dGltZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJk
YXRlLXN0YXRlLSh0eXBlPWRhdGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50IiwKLSAgICAibW9udGgtc3RhdGUtKHR5cGU9bW9udGgpIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAid2Vlay1zdGF0ZS0odHlwZT13ZWVrKSI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRpbWUtc3Rh
dGUtKHR5cGU9dGltZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQi
LAotICAgICJsb2NhbC1kYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lLWxvY2FsKSI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgIm51bWJlci1z
dGF0ZS0odHlwZT1udW1iZXIpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKLSAgICAicmFuZ2Utc3RhdGUtKHR5cGU9cmFuZ2UpIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiY29sb3Itc3RhdGUtKHR5cGU9Y29sb3IpIjog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiY2hlY2tib3gt
c3RhdGUtKHR5cGU9Y2hlY2tib3gpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50IiwKLSAgICAicmFkaW8tYnV0dG9uLXN0YXRlLSh0eXBlPXJhZGlvKSI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgImZpbGUtdXBsb2FkLXN0YXRl
LSh0eXBlPWZpbGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwK
LSAgICAic3VibWl0LWJ1dHRvbi1zdGF0ZS0odHlwZT1zdWJtaXQpIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiaW1hZ2UtYnV0dG9uLXN0YXRlLSh0eXBl
PWltYWdlKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAg
InJlc2V0LWJ1dHRvbi1zdGF0ZS0odHlwZT1yZXNldCkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJidXR0b24tc3RhdGUtKHR5cGU9YnV0dG9uKSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgImlucHV0LWltcGwt
bm90ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJj
b21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKLSAgICAidGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0aGUtc2l6ZS1hdHRyaWJ1
dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0aGUt
cmVhZG9ubHktYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKLSAgICAidGhlLXJlcXVpcmVkLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1tdWx0aXBsZS1hdHRyaWJ1dGUiOiAiaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAgICJ0aGUtcGF0dGVybi1h
dHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAotICAg
ICJ0aGUtbWluLWFuZC1tYXgtYXR0cmlidXRlcyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUt
aW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1zdGVwLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1saXN0LWF0dHJpYnV0ZSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1wbGFjZWhv
bGRlci1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQi
LAotICAgICJjb21tb24taW5wdXQtZWxlbWVudC1hcGlzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKLSAgICAiY29tbW9uLWV2ZW50LWJlaGF2aW9ycyI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCi0gICAgInRoZS1idXR0b24tZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtYnV0dG9uLWVsZW1lbnQiLAotICAgICJ0
aGUtc2VsZWN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXNlbGVjdC1lbGVt
ZW50IiwKLSAgICAidGhlLWRhdGFsaXN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWRhdGFsaXN0LWVsZW1lbnQiLAotICAgICJ0aGUtb3B0Z3JvdXAtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtb3B0Z3JvdXAtZWxlbWVudCIsCi0gICAgInRoZS1vcHRpb24t
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtb3B0aW9uLWVsZW1lbnQiLAotICAg
ICJ0aGUtdGV4dGFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtdGV4dGFy
ZWEtZWxlbWVudCIsCi0gICAgInRoZS1rZXlnZW4tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy90aGUta2V5Z2VuLWVsZW1lbnQiLAotICAgICJ0aGUtb3V0cHV0LWVsZW1lbnQiOiAiaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLW91dHB1dC1lbGVtZW50IiwKLSAgICAidGhlLXByb2dyZXNz
LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXByb2dyZXNzLWVsZW1lbnQiLAot
ICAgICJ0aGUtbWV0ZXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtbWV0ZXIt
ZWxlbWVudCIsCi0gICAgImZvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZSI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUiLAotICAgICJhLWZvcm0tY29u
dHJvbCdzLXZhbHVlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0
cnVjdHVyZSIsCi0gICAgIm11dGFiaWxpdHkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1j
b250cm9sLWluZnJhc3RydWN0dXJlIiwKLSAgICAiYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5k
LWZvcm1zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVy
ZSIsCi0gICAgImF0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCi0gICAgIm5h
bWluZy1mb3JtLWNvbnRyb2xzOi10aGUtbmFtZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCi0gICAgInN1Ym1pdHRp
bmctZWxlbWVudC1kaXJlY3Rpb25hbGl0eTotdGhlLWRpcm5hbWUtYXR0cmlidXRlIjogImh0bWwv
c2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAotICAg
ICJsaW1pdGluZy11c2VyLWlucHV0LWxlbmd0aDotdGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAi
aHRtbC9zZW1hbnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIs
Ci0gICAgImVuYWJsaW5nLWFuZC1kaXNhYmxpbmctZm9ybS1jb250cm9sczotdGhlLWRpc2FibGVk
LWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1m
b3JtLWNvbnRyb2xzIiwKLSAgICAiZm9ybS1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAotICAgICJhdXRvZm9jdXNp
bmctYS1mb3JtLWNvbnRyb2w6LXRoZS1hdXRvZm9jdXMtYXR0cmlidXRlIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAotICAgICJpbnB1
dC1tb2RhbGl0aWVzOi10aGUtaW5wdXRtb2RlLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNvbnRyb2xzIiwKLSAgICAiYXV0b2ZpbGxp
bmctZm9ybS1jb250cm9sczotdGhlLWF1dG9jb21wbGV0ZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCi0gICAgInRl
eHRGaWVsZFNlbGVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rp
b24iLAotICAgICJjb25zdHJhaW50cyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50
cyIsCi0gICAgImRlZmluaXRpb25zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRz
IiwKLSAgICAiY29uc3RyYWludC12YWxpZGF0aW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Nv
bnN0cmFpbnRzIiwKLSAgICAidGhlLWNvbnN0cmFpbnQtdmFsaWRhdGlvbi1hcGkiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMiLAotICAgICJzZWN1cml0eS1mb3JtcyI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIsCi0gICAgImZvcm0tc3VibWlzc2lvbi0wIjog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKLSAgICAiaW50cm9kdWN0
aW9uLTIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAiLAotICAgICJp
bXBsaWNpdC1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lv
bi0wIiwKLSAgICAiZm9ybS1zdWJtaXNzaW9uLWFsZ29yaXRobSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9mb3JtLXN1Ym1pc3Npb24tMCIsCi0gICAgImNvbnN0cnVjdGluZy1mb3JtLWRhdGEtc2V0
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKLSAgICAidXJsLWVu
Y29kZWQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0w
IiwKLSAgICAibXVsdGlwYXJ0LWZvcm0tZGF0YSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3Jt
LXN1Ym1pc3Npb24tMCIsCi0gICAgInBsYWluLXRleHQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKLSAgICAicmVzZXR0aW5nLWEtZm9ybSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy9yZXNldHRpbmctYS1mb3JtIiwKLSAgICAiaW50ZXJhY3RpdmUt
ZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMiLAotICAgICJ0
aGUtZGV0YWlscy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRz
L3RoZS1kZXRhaWxzLWVsZW1lbnQiLAotICAgICJ0aGUtc3VtbWFyeS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5LWVsZW1lbnQiLAotICAg
ICJ0aGUtY29tbWFuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1l
bnRzL3RoZS1jb21tYW5kLWVsZW1lbnQiLAotICAgICJ0aGUtbWVudS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAotICAgICJt
ZW51cy1pbnRybyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtbWVu
dS1lbGVtZW50IiwKLSAgICAiYnVpbGRpbmctbWVudXMtYW5kLXRvb2xiYXJzIjogImh0bWwvc2Vt
YW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAotICAgICJjb250
ZXh0LW1lbnVzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51
LWVsZW1lbnQiLAotICAgICJ0b29sYmFycyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1l
bGVtZW50cy90aGUtbWVudS1lbGVtZW50IiwKLSAgICAiY29tbWFuZHMiOiAiaHRtbC9zZW1hbnRp
Y3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAotICAgICJ1c2luZy10aGUtYS1lbGVt
ZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxl
bWVudHMvY29tbWFuZHMiLAotICAgICJ1c2luZy10aGUtYnV0dG9uLWVsZW1lbnQtdG8tZGVmaW5l
LWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5k
cyIsCi0gICAgInVzaW5nLXRoZS1pbnB1dC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAi
aHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAotICAgICJ1c2lu
Zy10aGUtb3B0aW9uLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGlj
cy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCi0gICAgInVzaW5nLXRoZS1jb21tYW5k
LWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2
ZS1lbGVtZW50cy9jb21tYW5kcyIsCi0gICAgInVzaW5nLXRoZS1jb21tYW5kLWF0dHJpYnV0ZS1v
bi1jb21tYW5kLWVsZW1lbnRzLXRvLWRlZmluZS1hLWNvbW1hbmQtaW5kaXJlY3RseSI6ICJodG1s
L3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCi0gICAgInVzaW5nLXRo
ZS1hY2Nlc3NrZXktYXR0cmlidXRlLW9uLWEtbGFiZWwtZWxlbWVudC10by1kZWZpbmUtYS1jb21t
YW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1hbmRzIiwKLSAg
ICAidXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtb24tYS1sZWdlbmQtZWxlbWVudC10by1k
ZWZpbmUtYS1jb21tYW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2Nv
bW1hbmRzIiwKLSAgICAidXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtdG8tZGVmaW5lLWEt
Y29tbWFuZC1vbi1vdGhlci1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1l
bGVtZW50cy9jb21tYW5kcyIsCi0gICAgInRoZS1kaWFsb2ctZWxlbWVudCI6ICJodG1sL3NlbWFu
dGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQiLAotICAgICJhbmNo
b3ItcG9pbnRzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1kaWFs
b2ctZWxlbWVudCIsCi0gICAgImxpbmtzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzIiwKLSAgICAi
aW50cm9kdWN0aW9uLTMiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvaW50cm9kdWN0aW9uLTMiLAot
ICAgICJsaW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRp
Y3MvbGlua3MvbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIiwKLSAgICAiZm9s
bG93aW5nLWh5cGVybGlua3MiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvZm9sbG93aW5nLWh5cGVy
bGlua3MiLAotICAgICJkb3dubG9hZGluZy1yZXNvdXJjZXMiOiAiaHRtbC9zZW1hbnRpY3MvbGlu
a3MvZG93bmxvYWRpbmctcmVzb3VyY2VzIiwKLSAgICAiaHlwZXJsaW5rLWF1ZGl0aW5nIjogImh0
bWwvc2VtYW50aWNzL2xpbmtzL2Rvd25sb2FkaW5nLXJlc291cmNlcyIsCi0gICAgImxpbmtUeXBl
cyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAotICAgICJyZWwtYWx0ZXJuYXRl
IjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgImxpbmstdHlwZS1hdXRo
b3IiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAgICAibGluay10eXBlLWJv
b2ttYXJrIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgImxpbmstdHlw
ZS1oZWxwIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgInJlbC1pY29u
IjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgImxpbmstdHlwZS1saWNl
bnNlIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCi0gICAgImxpbmstdHlwZS1u
b2ZvbGxvdyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAotICAgICJsaW5rLXR5
cGUtbm9yZWZlcnJlciI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAotICAgICJs
aW5rLXR5cGUtcHJlZmV0Y2giOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKLSAg
ICAibGluay10eXBlLXNlYXJjaCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAot
ICAgICJsaW5rLXR5cGUtc3R5bGVzaGVldCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlw
ZXMiLAotICAgICJsaW5rLXR5cGUtdGFnIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBl
cyIsCi0gICAgInNlcXVlbnRpYWwtbGluay10eXBlcyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAotICAgICJsaW5rLXR5cGUtbmV4dCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAotICAgICJsaW5rLXR5cGUtcHJldiI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAotICAgICJvdGhlci1saW5rLXR5cGVzIjogImh0bWwvc2VtYW50aWNzL2xpbmtz
L2xpbmt0eXBlcyIsCi0gICAgImNvbW1vbi1pZGlvbXMiOiAiaHRtbC9zZW1hbnRpY3MvY29tbW9u
LWlkaW9tcyIsCi0gICAgInRoZS1tYWluLXBhcnQtb2YtdGhlLWNvbnRlbnQiOiAiaHRtbC9zZW1h
bnRpY3MvY29tbW9uLWlkaW9tcy90aGUtbWFpbi1wYXJ0LW9mLXRoZS1jb250ZW50IiwKLSAgICAi
cmVsLXVwIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvcmVsLXVwIiwKLSAgICAidGFn
LWNsb3VkcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL3RhZy1jbG91ZHMiLAotICAg
ICJjb252ZXJzYXRpb25zIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvY29udmVyc2F0
aW9ucyIsCi0gICAgImZvb3Rub3RlcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL2Zv
b3Rub3RlcyIsCi0gICAgImRpc2FibGVkLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2Rpc2Fi
bGVkLWVsZW1lbnRzIiwKLSAgICAic2VsZWN0b3JzIjogImh0bWwvc2VtYW50aWNzL3NlbGVjdG9y
cyIsCi0gICAgImNhc2Utc2Vuc2l0aXZpdHkiOiAiaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL2Nh
c2Utc2Vuc2l0aXZpdHkiLAotICAgICJwc2V1ZG8tY2xhc3NlcyI6ICJodG1sL3NlbWFudGljcy9z
ZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMiLAotICAgICJicm93c2VycyI6ICJodG1sL2Jyb3dzZXJz
IiwKLSAgICAid2luZG93cyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MiLAotICAgICJuZXN0ZWQt
YnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2lu
Zy1jb250ZXh0cyIsCi0gICAgIm5hdmlnYXRpbmctbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzLWlu
LXRoZS1kb20iOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0
cyIsCi0gICAgImF1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3dp
bmRvd3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAibmF2aWdhdGluZy1hdXhp
bGlhcnktYnJvd3NpbmctY29udGV4dHMtaW4tdGhlLWRvbSI6ICJodG1sL2Jyb3dzZXJzL3dpbmRv
d3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAic2Vjb25kYXJ5LWJyb3dzaW5n
LWNvbnRleHRzIjogImh0bWwvYnJvd3NlcnMvd2luZG93cy9zZWNvbmRhcnktYnJvd3NpbmctY29u
dGV4dHMiLAotICAgICJzZWN1cml0eS1uYXYiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL3NlY3Vy
aXR5LW5hdiIsCi0gICAgImdyb3VwaW5ncy1vZi1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jy
b3dzZXJzL3dpbmRvd3MvZ3JvdXBpbmdzLW9mLWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAiYnJv
d3NpbmctY29udGV4dC1uYW1lcyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29u
dGV4dC1uYW1lcyIsCi0gICAgInRoZS13aW5kb3ctb2JqZWN0IjogImh0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3QiLAotICAgICJzZWN1cml0eS13aW5kb3ciOiAiaHRtbC9icm93c2Vycy90
aGUtd2luZG93LW9iamVjdC9zZWN1cml0eS13aW5kb3ciLAotICAgICJhcGlzLWZvci1jcmVhdGlu
Zy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lIjogImh0bWwvYnJvd3Nl
cnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJv
d3NpbmctY29udGV4dHMtYnktbmFtZSIsCi0gICAgImFjY2Vzc2luZy1vdGhlci1icm93c2luZy1j
b250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FjY2Vzc2luZy1vdGhl
ci1icm93c2luZy1jb250ZXh0cyIsCi0gICAgIm5hbWVkLWFjY2Vzcy1vbi10aGUtd2luZG93LW9i
amVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L25hbWVkLWFjY2Vzcy1vbi10
aGUtd2luZG93LW9iamVjdCIsCi0gICAgImdhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3Npbmct
Y29udGV4dHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxl
Y3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzIiwKLSAgICAiY2xvc2luZy1icm93c2luZy1jb250
ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2Nsb3NpbmctYnJvd3Npbmct
Y29udGV4dHMiLAotICAgICJicm93c2VyLWludGVyZmFjZS1lbGVtZW50cyI6ICJodG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L2Jyb3dzZXItaW50ZXJmYWNlLWVsZW1lbnRzIiwKLSAgICAi
dGhlLXdpbmRvd3Byb3h5LW9iamVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L3RoZS13aW5kb3dwcm94eS1vYmplY3QiLAotICAgICJvcmlnaW4iOiAiaHRtbC9icm93c2Vycy9v
cmlnaW4iLAotICAgICJyZWxheGluZy10aGUtc2FtZS1vcmlnaW4tcmVzdHJpY3Rpb24iOiAiaHRt
bC9icm93c2Vycy9vcmlnaW4vcmVsYXhpbmctdGhlLXNhbWUtb3JpZ2luLXJlc3RyaWN0aW9uIiwK
LSAgICAic2FuZGJveGluZyI6ICJodG1sL2Jyb3dzZXJzL3NhbmRib3hpbmciLAotICAgICJoaXN0
b3J5IjogImh0bWwvYnJvd3NlcnMvaGlzdG9yeSIsCi0gICAgInRoZS1zZXNzaW9uLWhpc3Rvcnkt
b2YtYnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1zZXNzaW9u
LWhpc3Rvcnktb2YtYnJvd3NpbmctY29udGV4dHMiLAotICAgICJ0aGUtaGlzdG9yeS1pbnRlcmZh
Y2UiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZSIsCi0gICAg
InRoZS1sb2NhdGlvbi1pbnRlcmZhY2UiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2Nh
dGlvbi1pbnRlcmZhY2UiLAotICAgICJzZWN1cml0eS1sb2NhdGlvbiI6ICJodG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZSIsCi0gICAgImhpc3Rvcnktbm90ZXMiOiAi
aHRtbC9icm93c2Vycy9oaXN0b3J5L2hpc3Rvcnktbm90ZXMiLAotICAgICJicm93c2luZy10aGUt
d2ViIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYiIsCi0gICAgIm5hdmlnYXRpbmct
YWNyb3NzLWRvY3VtZW50cyI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdh
dGluZy1hY3Jvc3MtZG9jdW1lbnRzIiwKLSAgICAicmVhZC1odG1sIjogImh0bWwvYnJvd3NlcnMv
YnJvd3NpbmctdGhlLXdlYi9yZWFkLWh0bWwiLAotICAgICJyZWFkLXhtbCI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC14bWwiLAotICAgICJyZWFkLXRleHQiOiAiaHRtbC9i
cm93c2Vycy9icm93c2luZy10aGUtd2ViL3JlYWQtdGV4dCIsCi0gICAgInJlYWQtbXVsdGlwYXJ0
LXgtbWl4ZWQtcmVwbGFjZSI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1t
dWx0aXBhcnQteC1taXhlZC1yZXBsYWNlIiwKLSAgICAicmVhZC1tZWRpYSI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1tZWRpYSIsCi0gICAgInJlYWQtcGx1Z2luIjogImh0
bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXBsdWdpbiIsCi0gICAgInJlYWQtdWEt
aW5saW5lIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXVhLWlubGluZSIs
Ci0gICAgInNjcm9sbC10by1mcmFnaWQiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2Vi
L3Njcm9sbC10by1mcmFnaWQiLAotICAgICJoaXN0b3J5LXRyYXZlcnNhbCI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwiLAotICAgICJldmVudC1kZWZp
bml0aW9ucy0wIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZl
cnNhbCIsCi0gICAgInVubG9hZGluZy1kb2N1bWVudHMiOiAiaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMiLAotICAgICJldmVudC1kZWZpbml0aW9uIjog
Imh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzIiwKLSAg
ICAiYWJvcnRpbmctYS1kb2N1bWVudC1sb2FkIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhl
LXdlYi9hYm9ydGluZy1hLWRvY3VtZW50LWxvYWQiLAotICAgICJvZmZsaW5lIjogImh0bWwvYnJv
d3NlcnMvb2ZmbGluZSIsCi0gICAgImludHJvZHVjdGlvbi00IjogImh0bWwvYnJvd3NlcnMvb2Zm
bGluZS9pbnRyb2R1Y3Rpb24tNCIsCi0gICAgInN1cHBvcnRpbmctb2ZmbGluZS1jYWNoaW5nLWZv
ci1sZWdhY3ktYXBwbGljYXRpb25zIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRyb2R1Y3Rp
b24tNCIsCi0gICAgImFwcGNhY2hlZXZlbnRzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRy
b2R1Y3Rpb24tNCIsCi0gICAgImFwcGNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBj
YWNoZSIsCi0gICAgIm1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvbWFuaWZlc3Rz
IiwKLSAgICAic29tZS1zYW1wbGUtbWFuaWZlc3RzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9t
YW5pZmVzdHMiLAotICAgICJ3cml0aW5nLWNhY2hlLW1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJz
L29mZmxpbmUvbWFuaWZlc3RzIiwKLSAgICAicGFyc2luZy1jYWNoZS1tYW5pZmVzdHMiOiAiaHRt
bC9icm93c2Vycy9vZmZsaW5lL21hbmlmZXN0cyIsCi0gICAgImRvd25sb2FkaW5nLW9yLXVwZGF0
aW5nLWFuLWFwcGxpY2F0aW9uLWNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kb3dubG9h
ZGluZy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSIsCi0gICAgInRoZS1hcHBsaWNh
dGlvbi1jYWNoZS1zZWxlY3Rpb24tYWxnb3JpdGhtIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS90
aGUtYXBwbGljYXRpb24tY2FjaGUtc2VsZWN0aW9uLWFsZ29yaXRobSIsCi0gICAgImNoYW5nZXNU
b05ldHdvcmtpbmdNb2RlbCI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvY2hhbmdlc3RvbmV0d29y
a2luZ21vZGVsIiwKLSAgICAiZXhwaXJpbmctYXBwbGljYXRpb24tY2FjaGVzIjogImh0bWwvYnJv
d3NlcnMvb2ZmbGluZS9leHBpcmluZy1hcHBsaWNhdGlvbi1jYWNoZXMiLAotICAgICJkaXNrLXNw
YWNlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kaXNrLXNwYWNlIiwKLSAgICAiYXBwbGljYXRp
b24tY2FjaGUtYXBpIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBsaWNhdGlvbi1jYWNoZS1h
cGkiLAotICAgICJicm93c2VyLXN0YXRlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9icm93c2Vy
LXN0YXRlIiwKLSAgICAid2ViYXBwYXBpcyI6ICJodG1sL3dlYmFwcGFwaXMiLAotICAgICJzY3Jp
cHRpbmciOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZyIsCi0gICAgImludHJvZHVjdGlvbi01
IjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvaW50cm9kdWN0aW9uLTUiLAotICAgICJlbmFi
bGluZy1hbmQtZGlzYWJsaW5nLXNjcmlwdGluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L2VuYWJsaW5nLWFuZC1kaXNhYmxpbmctc2NyaXB0aW5nIiwKLSAgICAicHJvY2Vzc2luZy1tb2Rl
bC0yIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKLSAg
ICAiZGVmaW5pdGlvbnMtMCI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMiIsCi0gICAgImNhbGxpbmctc2NyaXB0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL3Byb2Nlc3NpbmctbW9kZWwtMiIsCi0gICAgImNyZWF0aW5nLXNjcmlwdHMiOiAiaHRtbC93
ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAotICAgICJraWxsaW5nLXNj
cmlwdHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAot
ICAgICJydW50aW1lLXNjcmlwdC1lcnJvcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9w
cm9jZXNzaW5nLW1vZGVsLTIiLAotICAgICJydW50aW1lLXNjcmlwdC1lcnJvcnMtaW4tZG9jdW1l
bnRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKLSAg
ICAiZXZlbnQtbG9vcHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIs
Ci0gICAgImRlZmluaXRpb25zLTEiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1s
b29wcyIsCi0gICAgInByb2Nlc3NpbmctbW9kZWwtMyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL2V2ZW50LWxvb3BzIiwKLSAgICAiZ2VuZXJpYy10YXNrLXNvdXJjZXMiOiAiaHRtbC93ZWJh
cHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIsCi0gICAgImphdmFzY3JpcHQtcHJvdG9jb2wi
OiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9qYXZhc2NyaXB0LXByb3RvY29sIiwKLSAgICAi
ZXZlbnRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwKLSAgICAiZXZlbnQt
aGFuZGxlci1hdHRyaWJ1dGVzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwK
LSAgICAiZXZlbnQtaGFuZGxlcnMtb24tZWxlbWVudHMsLWRvY3VtZW50LW9iamVjdHMsLWFuZC13
aW5kb3ctb2JqZWN0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCi0gICAg
ImV2ZW50LWZpcmluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCi0gICAg
ImV2ZW50cy1hbmQtdGhlLXdpbmRvdy1vYmplY3QiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGlu
Zy9ldmVudHMiLAotICAgICJhdG9iIjogImh0bWwvd2ViYXBwYXBpcy9hdG9iIiwKLSAgICAidGlt
ZXJzIjogImh0bWwvd2ViYXBwYXBpcy90aW1lcnMiLAotICAgICJ1c2VyLXByb21wdHMiOiAiaHRt
bC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cyIsCi0gICAgInNpbXBsZS1kaWFsb2dzIjogImh0bWwv
d2ViYXBwYXBpcy91c2VyLXByb21wdHMvc2ltcGxlLWRpYWxvZ3MiLAotICAgICJwcmludGluZyI6
ICJodG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL3ByaW50aW5nIiwKLSAgICAiZGlhbG9ncy1p
bXBsZW1lbnRlZC11c2luZy1zZXBhcmF0ZS1kb2N1bWVudHMiOiAiaHRtbC93ZWJhcHBhcGlzL3Vz
ZXItcHJvbXB0cy9kaWFsb2dzLWltcGxlbWVudGVkLXVzaW5nLXNlcGFyYXRlLWRvY3VtZW50cyIs
Ci0gICAgInN5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzIjogImh0bWwvd2ViYXBwYXBpcy9z
eXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcyIsCi0gICAgInRoZS1uYXZpZ2F0b3Itb2JqZWN0
IjogImh0bWwvd2ViYXBwYXBpcy9zeXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcy90aGUtbmF2
aWdhdG9yLW9iamVjdCIsCi0gICAgImNsaWVudC1pZGVudGlmaWNhdGlvbiI6ICJodG1sL3dlYmFw
cGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1vYmplY3Qi
LAotICAgICJjdXN0b20taGFuZGxlcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1h
bmQtY2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKLSAgICAic2VjdXJpdHktYW5k
LXByaXZhY3kiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVz
L3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKLSAgICAic2FtcGxlLWhhbmRsZXItaW1wbCI6ICJodG1s
L3dlYmFwcGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1v
YmplY3QiLAotICAgICJtYW51YWxseS1yZWxlYXNpbmctdGhlLXN0b3JhZ2UtbXV0ZXgiOiAiaHRt
bC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3It
b2JqZWN0IiwKLSAgICAidGhlLWV4dGVybmFsLWludGVyZmFjZSI6ICJodG1sL3dlYmFwcGFwaXMv
c3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLWV4dGVybmFsLWludGVyZmFjZSIsCi0g
ICAgImVkaXRpbmciOiAiaHRtbC9lZGl0aW5nIiwKLSAgICAidGhlLWhpZGRlbi1hdHRyaWJ1dGUi
OiAiaHRtbC9lZGl0aW5nL3RoZS1oaWRkZW4tYXR0cmlidXRlIiwKLSAgICAiaW5lcnQtc3VidHJl
ZXMiOiAiaHRtbC9lZGl0aW5nL2luZXJ0LXN1YnRyZWVzIiwKLSAgICAidGhlLWluZXJ0LWF0dHJp
YnV0ZSI6ICJodG1sL2VkaXRpbmcvaW5lcnQtc3VidHJlZXMvdGhlLWluZXJ0LWF0dHJpYnV0ZSIs
Ci0gICAgImFjdGl2YXRpb24iOiAiaHRtbC9lZGl0aW5nL2FjdGl2YXRpb24iLAotICAgICJmb2N1
cyI6ICJodG1sL2VkaXRpbmcvZm9jdXMiLAotICAgICJzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRp
b24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGUiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL3NlcXVl
bnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZSIsCi0gICAg
ImZvY3VzLW1hbmFnZW1lbnQiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL2ZvY3VzLW1hbmFnZW1lbnQi
LAotICAgICJkb2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIjogImh0bWwvZWRpdGluZy9mb2N1cy9k
b2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIiwKLSAgICAiZWxlbWVudC1sZXZlbC1mb2N1cy1hcGlz
IjogImh0bWwvZWRpdGluZy9mb2N1cy9lbGVtZW50LWxldmVsLWZvY3VzLWFwaXMiLAotICAgICJh
c3NpZ25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzIjogImh0bWwvZWRpdGluZy9hc3NpZ25pbmcta2V5
Ym9hcmQtc2hvcnRjdXRzIiwKLSAgICAiaW50cm9kdWN0aW9uLTYiOiAiaHRtbC9lZGl0aW5nL2Fz
c2lnbmluZy1rZXlib2FyZC1zaG9ydGN1dHMvaW50cm9kdWN0aW9uLTYiLAotICAgICJ0aGUtYWNj
ZXNza2V5LWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0
Y3V0cy90aGUtYWNjZXNza2V5LWF0dHJpYnV0ZSIsCi0gICAgInByb2Nlc3NpbmctbW9kZWwtNCI6
ICJodG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0cy9wcm9jZXNzaW5nLW1v
ZGVsLTQiLAotICAgICJlZGl0aW5nLTAiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMCIsCi0gICAg
ImNvbnRlbnRlZGl0YWJsZSI6ICJodG1sL2VkaXRpbmcvZWRpdGluZy0wL2NvbnRlbnRlZGl0YWJs
ZSIsCi0gICAgIm1ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlOi10aGUtZGVzaWdubW9k
ZS1pZGwtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvbWFraW5nLWVudGlyZS1k
b2N1bWVudHMtZWRpdGFibGUtdGhlLWRlc2lnbm1vZGUtaWRsLWF0dHJpYnV0ZSIsCi0gICAgImJl
c3QtcHJhY3RpY2VzLWZvci1pbi1wYWdlLWVkaXRvcnMiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmct
MC9iZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3JzIiwKLSAgICAiZWRpdGluZy1hcGlz
IjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvZWRpdGluZy1hcGlzIiwKLSAgICAic3BlbGxpbmct
YW5kLWdyYW1tYXItY2hlY2tpbmciOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMC9zcGVsbGluZy1h
bmQtZ3JhbW1hci1jaGVja2luZyIsCi0gICAgImRuZCI6ICJodG1sL2VkaXRpbmcvZG5kIiwKLSAg
ICAiaW50cm9kdWN0aW9uLTciOiAiaHRtbC9lZGl0aW5nL2RuZC9pbnRyb2R1Y3Rpb24tNyIsCi0g
ICAgInRoZS1kcmFnLWRhdGEtc3RvcmUiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZy1kYXRh
LXN0b3JlIiwKLSAgICAidGhlLWRhdGF0cmFuc2Zlci1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5n
L2RuZC90aGUtZGF0YXRyYW5zZmVyLWludGVyZmFjZSIsCi0gICAgInRoZS1kYXRhdHJhbnNmZXJp
dGVtbGlzdC1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZGF0YXRyYW5zZmVyLWlu
dGVyZmFjZSIsCi0gICAgInRoZS1kYXRhdHJhbnNmZXJpdGVtLWludGVyZmFjZSI6ICJodG1sL2Vk
aXRpbmcvZG5kL3RoZS1kYXRhdHJhbnNmZXItaW50ZXJmYWNlIiwKLSAgICAidGhlLWRyYWdldmVu
dC1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZ2V2ZW50LWludGVyZmFjZSIs
Ci0gICAgImRyYWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCI6ICJodG1sL2VkaXRpbmcvZG5k
L2RyYWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCIsCi0gICAgImRuZGV2ZW50cyI6ICJodG1s
L2VkaXRpbmcvZG5kL2RuZGV2ZW50cyIsCi0gICAgInRoZS1kcmFnZ2FibGUtYXR0cmlidXRlIjog
Imh0bWwvZWRpdGluZy9kbmQvdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUiLAotICAgICJ0aGUtZHJv
cHpvbmUtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9kbmQvdGhlLWRyb3B6b25lLWF0dHJpYnV0
ZSIsCi0gICAgInNlY3VyaXR5LXJpc2tzLWluLXRoZS1kcmFnLWFuZC1kcm9wLW1vZGVsIjogImh0
bWwvZWRpdGluZy9kbmQvc2VjdXJpdHktcmlza3MtaW4tdGhlLWRyYWctYW5kLWRyb3AtbW9kZWwi
LAotICAgICJzeW50YXgiOiAiaHRtbC9zeW50YXgiLAotICAgICJ3cml0aW5nIjogImh0bWwvc3lu
dGF4L3dyaXRpbmciLAotICAgICJ0aGUtZG9jdHlwZSI6ICJodG1sL3N5bnRheC93cml0aW5nL3Ro
ZS1kb2N0eXBlIiwKLSAgICAiZWxlbWVudHMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1l
bnRzLTAiLAotICAgICJzdGFydC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMt
MCIsCi0gICAgImVuZC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCi0g
ICAgImF0dHJpYnV0ZXMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1lbnRzLTAiLAotICAg
ICJvcHRpb25hbC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCi0gICAg
ImVsZW1lbnQtcmVzdHJpY3Rpb25zIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIs
Ci0gICAgImNkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9l
bGVtZW50cy0wIiwKLSAgICAidGV4dCI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAotICAg
ICJuZXdsaW5lcyI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAotICAgICJjaGFyYWN0ZXIt
cmVmZXJlbmNlcyI6ICJodG1sL3N5bnRheC93cml0aW5nL2NoYXJhY3Rlci1yZWZlcmVuY2VzIiwK
LSAgICAiY2RhdGEtc2VjdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9jZGF0YS1zZWN0aW9u
cyIsCi0gICAgImNvbW1lbnRzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvY29tbWVudHMiLAotICAg
ICJwYXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJvdmVydmlldy1vZi10aGUt
cGFyc2luZy1tb2RlbCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAidGhlLWlucHV0LWJ5
dGUtc3RyZWFtIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJkZXRlcm1pbmluZy10aGUt
Y2hhcmFjdGVyLWVuY29kaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjaGFyYWN0
ZXItZW5jb2RpbmdzLTAiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNoYW5naW5nLXRo
ZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJw
cmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgInBhcnNlLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUtaW5zZXJ0
aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRoZS1zdGFjay1vZi1vcGVu
LWVsZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUtbGlzdC1vZi1hY3Rp
dmUtZm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAidGhl
LWVsZW1lbnQtcG9pbnRlcnMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgIm90aGVyLXBh
cnNpbmctc3RhdGUtZmxhZ3MiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRva2VuaXph
dGlvbiI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiZGF0YS1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAiY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1kYXRhLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyY2RhdGEtc3RhdGUiOiAiaHRtbC9zeW50YXgv
cGFyc2luZyIsCi0gICAgImNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tcmNkYXRhLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyYXd0ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAotICAgICJzY3JpcHQtZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAicGxhaW50ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0YWct
b3Blbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiZW5kLXRhZy1vcGVuLXN0
YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0YWctbmFtZS1zdGF0ZSI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyYXd0ZXh0LWxlc3MtdGhhbi1zaWduLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWdu
LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJzY3JpcHQtZGF0YS1lbmQtdGFn
LW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1kYXRhLWVu
ZC10YWctbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRh
dGEtZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJzY3Jp
cHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAotICAgICJzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1l
bmQtdGFnLW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInNjcmlwdC1k
YXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAot
ICAgICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZSI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVz
Y2FwZWQtZGFzaC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJzY3Jp
cHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYXR0cmlidXRlLW5hbWUtc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCi0gICAgImFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90
ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhdHRyaWJ1dGUtdmFsdWUt
KHNpbmdsZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhdHRy
aWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAg
ICAiY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUiOiAiaHRtbC9z
eW50YXgvcGFyc2luZyIsCi0gICAgImFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0
ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAic2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYm9ndXMtY29tbWVudC1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAibWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3Rh
dGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNvbW1lbnQtc3RhcnQtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiY29tbWVudC1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAiY29tbWVudC1lbmQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKLSAgICAiY29tbWVudC1lbmQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgImNvbW1lbnQtZW5kLWJhbmctc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAg
ImRvY3R5cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImJlZm9yZS1kb2N0
eXBlLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImRvY3R5cGUtbmFt
ZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAiYWZ0ZXItZG9jdHlwZS1uYW1l
LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhZnRlci1kb2N0eXBlLXB1Ymxp
Yy1rZXl3b3JkLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJiZWZvcmUtZG9j
dHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAg
ICAiZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCi0gICAgImRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmds
ZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJhZnRlci1kb2N0
eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAg
ICJiZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQt
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImJlZm9yZS1kb2N0eXBlLXN5c3Rl
bS1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJkb2N0eXBl
LXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAiZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCkt
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImFmdGVyLWRvY3R5cGUtc3lzdGVt
LWlkZW50aWZpZXItc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImJvZ3VzLWRv
Y3R5cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgImNkYXRhLXNlY3Rpb24t
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRva2VuaXppbmctY2hhcmFjdGVy
LXJlZmVyZW5jZXMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRyZWUtY29uc3RydWN0
aW9uIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjcmVhdGluZy1hbmQtaW5zZXJ0aW5n
LWVsZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJjbG9zaW5nLWVsZW1lbnRz
LXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAg
ICJmb3N0ZXItcGFyZW50aW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5n
LW1haW4taW5odG1sIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUtaW5pdGlhbC1p
bnNlcnRpb24tbW9kZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAidGhlLWJlZm9yZS1o
dG1sLWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJ0aGUtYmVm
b3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBh
cnNpbmctbWFpbi1pbmhlYWQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmct
bWFpbi1pbmhlYWRub3NjcmlwdCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAidGhlLWFm
dGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBh
cnNpbmctbWFpbi1pbmJvZHkiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmct
bWFpbi1pbmNkYXRhIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4t
aW50YWJsZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWludGFi
bGV0ZXh0IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5jYXB0
aW9uIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW5jb2xncm91
cCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKLSAgICAicGFyc2luZy1tYWluLWludGJvZHkiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmctbWFpbi1pbnRyIjogImh0bWwvc3lu
dGF4L3BhcnNpbmciLAotICAgICJwYXJzaW5nLW1haW4taW50ZCI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKLSAgICAicGFyc2luZy1tYWluLWluc2VsZWN0IjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAotICAgICJwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAotICAgICJwYXJzaW5nLW1haW4tYWZ0ZXJib2R5IjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAotICAgICJwYXJzaW5nLW1haW4taW5mcmFtZXNldCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAicGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIs
Ci0gICAgInRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAotICAgICJ0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInBhcnNpbmctbWFpbi1pbmZvcmVpZ24iOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRoZS1lbmQiOiAiaHRtbC9zeW50YXgvcGFyc2lu
ZyIsCi0gICAgImNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldCI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKLSAgICAiYW4taW50cm9kdWN0aW9uLXRvLWVycm9yLWhhbmRsaW5nLWFu
ZC1zdHJhbmdlLWNhc2VzLWluLXRoZS1wYXJzZXIiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgIm1pc25lc3RlZC10YWdzOi1iLWktL2ItL2kiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgIm1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3AiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0g
ICAgInVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlcyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
LSAgICAic2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCi0gICAgInRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10
aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50cyI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKLSAgICAidW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKLSAgICAic2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiOiAiaHRtbC9zeW50
YXgvc2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiLAotICAgICJwYXJzaW5nLWh0bWwtZnJhZ21l
bnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmctaHRtbC1mcmFnbWVudHMiLAotICAgICJuYW1lZC1j
aGFyYWN0ZXItcmVmZXJlbmNlcyI6ICJodG1sL3N5bnRheC9uYW1lZC1jaGFyYWN0ZXItcmVmZXJl
bmNlcyIsCi0gICAgInRoZS14aHRtbC1zeW50YXgiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4IiwK
LSAgICAid3JpdGluZy14aHRtbC1kb2N1bWVudHMiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4L3dy
aXRpbmcteGh0bWwtZG9jdW1lbnRzIiwKLSAgICAicGFyc2luZy14aHRtbC1kb2N1bWVudHMiOiAi
aHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzIiwKLSAgICAic2Vy
aWFsaXppbmcteGh0bWwtZnJhZ21lbnRzIjogImh0bWwvdGhlLXhodG1sLXN5bnRheC9zZXJpYWxp
emluZy14aHRtbC1mcmFnbWVudHMiLAotICAgICJwYXJzaW5nLXhodG1sLWZyYWdtZW50cyI6ICJo
dG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1mcmFnbWVudHMiLAotICAgICJyZW5k
ZXJpbmciOiAiaHRtbC9yZW5kZXJpbmciLAotICAgICJpbnRyb2R1Y3Rpb24tOCI6ICJodG1sL3Jl
bmRlcmluZy9pbnRyb2R1Y3Rpb24tOCIsCi0gICAgInRoZS1jc3MtdXNlci1hZ2VudC1zdHlsZS1z
aGVldC1hbmQtcHJlc2VudGF0aW9uYWwtaGludHMiOiAiaHRtbC9yZW5kZXJpbmcvdGhlLWNzcy11
c2VyLWFnZW50LXN0eWxlLXNoZWV0LWFuZC1wcmVzZW50YXRpb25hbC1oaW50cyIsCi0gICAgIm5v
bi1yZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxlbWVu
dHMiLAotICAgICJoaWRkZW4tZWxlbWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2Vk
LWVsZW1lbnRzL2hpZGRlbi1lbGVtZW50cyIsCi0gICAgInRoZS1wYWdlIjogImh0bWwvcmVuZGVy
aW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy90aGUtcGFnZSIsCi0gICAgImZsb3ctY29udGVudC0w
IjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mbG93LWNvbnRlbnQtMCIs
Ci0gICAgInBocmFzaW5nLWNvbnRlbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQt
ZWxlbWVudHMvcGhyYXNpbmctY29udGVudC0wIiwKLSAgICAiYmlkaXJlY3Rpb25hbC10ZXh0Ijog
Imh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9iaWRpcmVjdGlvbmFsLXRleHQi
LAotICAgICJxdW90ZXMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3F1
b3RlcyIsCi0gICAgInNlY3Rpb25zLWFuZC1oZWFkaW5ncyI6ICJodG1sL3JlbmRlcmluZy9ub24t
cmVwbGFjZWQtZWxlbWVudHMvc2VjdGlvbnMtYW5kLWhlYWRpbmdzIiwKLSAgICAibGlzdHMiOiAi
aHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL2xpc3RzIiwKLSAgICAidGFibGVz
IjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy90YWJsZXMiLAotICAgICJm
b3JtLWNvbnRyb2xzIjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mb3Jt
LWNvbnRyb2xzIiwKLSAgICAidGhlLWhyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24t
cmVwbGFjZWQtZWxlbWVudHMvdGhlLWhyLWVsZW1lbnQtMCIsCi0gICAgInRoZS1maWVsZHNldC1l
bGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3RoZS1maWVs
ZHNldC1lbGVtZW50LTAiLAotICAgICJyZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmlu
Zy9yZXBsYWNlZC1lbGVtZW50cyIsCi0gICAgImVtYmVkZGVkLWNvbnRlbnQtMSI6ICJodG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJlZGRlZC1jb250ZW50LTEiLAotICAgICJpbWFn
ZXMiOiAiaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvaW1hZ2VzIiwKLSAgICAiYXR0
cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzIjogImh0bWwvcmVuZGVyaW5n
L3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWlt
YWdlcyIsCi0gICAgImltYWdlLW1hcHMtMCI6ICJodG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9pbWFnZS1tYXBzLTAiLAotICAgICJ0b29sYmFycy0wIjogImh0bWwvcmVuZGVyaW5nL3Jl
cGxhY2VkLWVsZW1lbnRzL3Rvb2xiYXJzLTAiLAotICAgICJiaW5kaW5ncyI6ICJodG1sL3JlbmRl
cmluZy9iaW5kaW5ncyIsCi0gICAgImludHJvZHVjdGlvbi05IjogImh0bWwvcmVuZGVyaW5nL2Jp
bmRpbmdzL2ludHJvZHVjdGlvbi05IiwKLSAgICAidGhlLWJ1dHRvbi1lbGVtZW50LTAiOiAiaHRt
bC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWJ1dHRvbi1lbGVtZW50LTAiLAotICAgICJ0aGUtZGV0
YWlscy1lbGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWRldGFpbHMtZWxl
bWVudC0wIiwKLSAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCI6
ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLXRleHQtZW50
cnktd2lkZ2V0IiwKLSAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWluLXNwZWNpZmljLXdp
ZGdldHMiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMtZG9t
YWluLXNwZWNpZmljLXdpZGdldHMiLAotICAgICJ0aGUtaW5wdXQtZWxlbWVudC1hcy1hLXJhbmdl
LWNvbnRyb2wiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMt
YS1yYW5nZS1jb250cm9sIiwKLSAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS1jb2xvci13ZWxs
IjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtY29sb3It
d2VsbCIsCi0gICAgInRoZS1pbnB1dC1lbGVtZW50LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1
dHRvbi13aWRnZXRzIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50
LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRvbi13aWRnZXRzIiwKLSAgICAidGhlLWlucHV0
LWVsZW1lbnQtYXMtYS1maWxlLXVwbG9hZC1jb250cm9sIjogImh0bWwvcmVuZGVyaW5nL2JpbmRp
bmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtZmlsZS11cGxvYWQtY29udHJvbCIsCi0gICAgInRo
ZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3Ro
ZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIiwKLSAgICAidGhlLW1hcnF1ZWUtZWxlbWVudCI6
ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWFycXVlZS1lbGVtZW50IiwKLSAgICAidGhl
LW1ldGVyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWV0ZXItZWxl
bWVudC0wIiwKLSAgICAidGhlLXByb2dyZXNzLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9i
aW5kaW5ncy90aGUtcHJvZ3Jlc3MtZWxlbWVudC0wIiwKLSAgICAidGhlLXNlbGVjdC1lbGVtZW50
LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLXNlbGVjdC1lbGVtZW50LTAiLAotICAg
ICJ0aGUtdGV4dGFyZWEtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS10
ZXh0YXJlYS1lbGVtZW50LTAiLAotICAgICJ0aGUta2V5Z2VuLWVsZW1lbnQtMCI6ICJodG1sL3Jl
bmRlcmluZy9iaW5kaW5ncy90aGUta2V5Z2VuLWVsZW1lbnQtMCIsCi0gICAgImZyYW1lcy1hbmQt
ZnJhbWVzZXRzIjogImh0bWwvcmVuZGVyaW5nL2ZyYW1lcy1hbmQtZnJhbWVzZXRzIiwKLSAgICAi
aW50ZXJhY3RpdmUtbWVkaWEiOiAiaHRtbC9yZW5kZXJpbmcvaW50ZXJhY3RpdmUtbWVkaWEiLAot
ICAgICJsaW5rcywtZm9ybXMsLWFuZC1uYXZpZ2F0aW9uIjogImh0bWwvcmVuZGVyaW5nL2ludGVy
YWN0aXZlLW1lZGlhL2xpbmtzLWZvcm1zLWFuZC1uYXZpZ2F0aW9uIiwKLSAgICAidGhlLXRpdGxl
LWF0dHJpYnV0ZS0wIjogImh0bWwvcmVuZGVyaW5nL2ludGVyYWN0aXZlLW1lZGlhL3RoZS10aXRs
ZS1hdHRyaWJ1dGUtMCIsCi0gICAgImVkaXRpbmctaG9zdHMiOiAiaHRtbC9yZW5kZXJpbmcvaW50
ZXJhY3RpdmUtbWVkaWEvZWRpdGluZy1ob3N0cyIsCi0gICAgInRleHQtcmVuZGVyZWQtaW4tbmF0
aXZlLXVzZXItaW50ZXJmYWNlcyI6ICJodG1sL3JlbmRlcmluZy9pbnRlcmFjdGl2ZS1tZWRpYS90
ZXh0LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiLAotICAgICJwcmludC1tZWRp
YSI6ICJodG1sL3JlbmRlcmluZy9wcmludC1tZWRpYSIsCi0gICAgInVuc3R5bGVkLXhtbC1kb2N1
bWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvdW5zdHlsZWQteG1sLWRvY3VtZW50cyIsCi0gICAgIm9i
c29sZXRlIjogImh0bWwvb2Jzb2xldGUiLAotICAgICJvYnNvbGV0ZS1idXQtY29uZm9ybWluZy1m
ZWF0dXJlcyI6ICJodG1sL29ic29sZXRlL29ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVz
IiwKLSAgICAid2FybmluZ3MtZm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIjog
Imh0bWwvb2Jzb2xldGUvb2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMvd2FybmluZ3Mt
Zm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIiwKLSAgICAibm9uLWNvbmZvcm1p
bmctZmVhdHVyZXMiOiAiaHRtbC9vYnNvbGV0ZS9ub24tY29uZm9ybWluZy1mZWF0dXJlcyIsCi0g
ICAgInJlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIjogImh0bWwvb2Jzb2xldGUvcmVx
dWlyZW1lbnRzLWZvci1pbXBsZW1lbnRhdGlvbnMiLAotICAgICJ0aGUtYXBwbGV0LWVsZW1lbnQi
OiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtYXBw
bGV0LWVsZW1lbnQiLAotICAgICJ0aGUtbWFycXVlZS1lbGVtZW50LTAiOiAiaHRtbC9vYnNvbGV0
ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtbWFycXVlZS1lbGVtZW50LTAi
LAotICAgICJmcmFtZXMiOiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVu
dGF0aW9ucy9mcmFtZXMiLAotICAgICJvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBp
cyI6ICJodG1sL29ic29sZXRlL3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zL290aGVy
LWVsZW1lbnRzLWF0dHJpYnV0ZXMtYW5kLWFwaXMiLAotICAgICJpYW5hIjogIm1pY3JvZGF0YS9p
YW5hIiwKLSAgICAidGV4dC9odG1sIjogImh0bWwvaWFuYS90ZXh0LWh0bWwiLAotICAgICJtdWx0
aXBhcnQveC1taXhlZC1yZXBsYWNlIjogImh0bWwvaWFuYS9tdWx0aXBhcnQteC1taXhlZC1yZXBs
YWNlIiwKLSAgICAiYXBwbGljYXRpb24veGh0bWwreG1sIjogImh0bWwvaWFuYS9hcHBsaWNhdGlv
bi14aHRtbC14bWwiLAotICAgICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOiAi
aHRtbC9pYW5hL2FwcGxpY2F0aW9uLXgtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCi0gICAgInRleHQv
Y2FjaGUtbWFuaWZlc3QiOiAiaHRtbC9pYW5hL3RleHQtY2FjaGUtbWFuaWZlc3QiLAotICAgICJw
aW5nLXRvIjogImh0bWwvaWFuYS9waW5nLXRvIiwKLSAgICAid2ViKy1zY2hlbWUtcHJlZml4Ijog
Imh0bWwvaWFuYS93ZWItc2NoZW1lLXByZWZpeCIsCi0gICAgInRoZS1jYW52YXMtc3RhdGUiOiAi
Y2FudmFzMmQvdGhlLWNhbnZhcy1zdGF0ZSIsCi0gICAgImRyYXdpbmdzdHlsZS1vYmplY3RzIjog
ImNhbnZhczJkL2RyYXdpbmdzdHlsZS1vYmplY3RzIiwKLSAgICAibGluZS1zdHlsZXMiOiAiY2Fu
dmFzMmQvbGluZS1zdHlsZXMiLAotICAgICJ0ZXh0LXN0eWxlcyI6ICJjYW52YXMyZC90ZXh0LXN0
eWxlcyIsCi0gICAgImJ1aWxkaW5nLXBhdGhzIjogImNhbnZhczJkL2J1aWxkaW5nLXBhdGhzIiwK
LSAgICAicGF0aC1vYmplY3RzIjogImNhbnZhczJkL3BhdGgtb2JqZWN0cyIsCi0gICAgInRyYW5z
Zm9ybWF0aW9ucyI6ICJjYW52YXMyZC90cmFuc2Zvcm1hdGlvbnMiLAotICAgICJmaWxsLWFuZC1z
dHJva2Utc3R5bGVzIjogImNhbnZhczJkL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMiLAotICAgICJk
cmF3aW5nLXJlY3RhbmdsZXMtdG8tdGhlLWNhbnZhcyI6ICJjYW52YXMyZC9kcmF3aW5nLXJlY3Rh
bmdsZXMtdG8tdGhlLWNhbnZhcyIsCi0gICAgImRyYXdpbmctdGV4dC10by10aGUtY2FudmFzIjog
ImNhbnZhczJkL2RyYXdpbmctdGV4dC10by10aGUtY2FudmFzIiwKLSAgICAiZHJhd2luZy1wYXRo
cy10by10aGUtY2FudmFzIjogImNhbnZhczJkL2RyYXdpbmctcGF0aHMtdG8tdGhlLWNhbnZhcyIs
Ci0gICAgImRyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMiOiAiY2FudmFzMmQvZHJhd2luZy1p
bWFnZXMtdG8tdGhlLWNhbnZhcyIsCi0gICAgImhpdC1yZWdpb25zIjogImNhbnZhczJkL2hpdC1y
ZWdpb25zIiwKLSAgICAicGl4ZWwtbWFuaXB1bGF0aW9uIjogImNhbnZhczJkL3BpeGVsLW1hbmlw
dWxhdGlvbiIsCi0gICAgImNvbXBvc2l0aW5nIjogImNhbnZhczJkL2NvbXBvc2l0aW5nIiwKLSAg
ICAic2hhZG93cyI6ICJjYW52YXMyZC9zaGFkb3dzIiwKLSAgICAiZHJhd2luZy1tb2RlbCI6ICJj
YW52YXMyZC9kcmF3aW5nLW1vZGVsIiwKLSAgICAiYmVzdC1wcmFjdGljZXMiOiAiY2FudmFzMmQv
YmVzdC1wcmFjdGljZXMiLAotICAgICJvdmVydmlldyI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9u
L292ZXJ2aWV3IiwKLSAgICAidGhlLWJhc2ljLXN5bnRheCI6ICJtaWNyb2RhdGEvaW50cm9kdWN0
aW9uL3RoZS1iYXNpYy1zeW50YXgiLAotICAgICJ0eXBlZC1pdGVtcyI6ICJtaWNyb2RhdGEvaW50
cm9kdWN0aW9uL3R5cGVkLWl0ZW1zIiwKLSAgICAiZ2xvYmFsLWlkZW50aWZpZXJzLWZvci1pdGVt
cyI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9uL2dsb2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMi
LAotICAgICJzZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJpZXMiOiAibWlj
cm9kYXRhL2ludHJvZHVjdGlvbi9zZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVs
YXJpZXMiLAotICAgICJ1c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL2lu
dHJvZHVjdGlvbi91c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiLAotICAgICJlbmNvZGluZy1t
aWNyb2RhdGEiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YSIsCi0gICAgInRoZS1taWNy
b2RhdGEtbW9kZWwiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS90aGUtbWljcm9kYXRh
LW1vZGVsIiwKLSAgICAiaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9pdGVt
cyIsCi0gICAgIm5hbWVzOi10aGUtaXRlbXByb3AtYXR0cmlidXRlIjogIm1pY3JvZGF0YS9lbmNv
ZGluZy1taWNyb2RhdGEvbmFtZXMtdGhlLWl0ZW1wcm9wLWF0dHJpYnV0ZSIsCi0gICAgInZhbHVl
cyI6ICJtaWNyb2RhdGEvZW5jb2RpbmctbWljcm9kYXRhL3ZhbHVlcyIsCi0gICAgImFzc29jaWF0
aW5nLW5hbWVzLXdpdGgtaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9hc3Nv
Y2lhdGluZy1uYW1lcy13aXRoLWl0ZW1zIiwKLSAgICAibWljcm9kYXRhLWFuZC1vdGhlci1uYW1l
c3BhY2VzIjogIm1pY3JvZGF0YS9lbmNvZGluZy1taWNyb2RhdGEvbWljcm9kYXRhLWFuZC1vdGhl
ci1uYW1lc3BhY2VzIiwKLSAgICAibWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL21pY3Jv
ZGF0YS1kb20tYXBpIiwKLSAgICAiaHRtbHByb3BlcnRpZXNjb2xsZWN0aW9uIjogIm1pY3JvZGF0
YS9taWNyb2RhdGEtZG9tLWFwaS9odG1scHJvcGVydGllc2NvbGxlY3Rpb24iLAotICAgICJjb252
ZXJ0aW5nLWh0bWwtdG8tb3RoZXItZm9ybWF0cyI6ICJtaWNyb2RhdGEvY29udmVydGluZy1odG1s
LXRvLW90aGVyLWZvcm1hdHMiLAotICAgICJqc29uIjogIm1pY3JvZGF0YS9jb252ZXJ0aW5nLWh0
bWwtdG8tb3RoZXItZm9ybWF0cy9qc29uIgotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTllMzcxN2FiNTY0NDYzNzNiN2I3MWMwNTJiZWFmNzJjMDFlMzE4Zi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3Qu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotLy8gZ3JhYiB0ZXN0IG1ldGFkYXRh
IGZyb20gYSB0ZXN0IGZpbGUKLWZ1bmN0aW9uIF9fcmVzdWx0X2hhbmRsZXIoKSB7Ci0KLSAgICBm
dW5jdGlvbiBfX2dldF9tZXRhZGF0YSgpIHsKLSAgICAgICAgdmFyIG9iaiA9IG5ldyBPYmplY3Qo
KTsKLSAgICAgICAgdmFyIGF1dGhvciA9IFtdOwotICAgICAgICB2YXIgYXNzZXJ0ID0gW107Ci0g
ICAgICAgIHZhciBoZWxwID0gW107Ci0gICAgICAgIHZhciBtYXRjaCA9IFtdOwotICAgICAgICB2
YXIgbWlzbWF0Y2ggPSBbXTsKLSAgICAgICAgdmFyIGZsYWdzID0gW107Ci0gICAgICAgIHZhciBu
b2RlczsKLQotICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtb
cmVsPSJhdXRob3IiXScpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgaHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgi
aHJlZiIpOwotICAgICAgICAgICAgdmFyIHRpdGxlID0gbm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJ0
aXRsZSIpOwotICAgICAgICAgICAgdmFyIHMgPSB0aXRsZTsKLSAgICAgICAgICAgIGlmIChocmVm
ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBzICs9ICIgPCIgKyBocmVmICsgIj4iOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgYXV0aG9yLnB1c2gocyk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5hdXRob3IgPSBhdXRob3I7Ci0gICAgICAgIG5v
ZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWV0YVtuYW1lPSJhc3NlcnQiXScpOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgICBhc3NlcnQucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5hc3NlcnQgPSBhc3NlcnQ7
Ci0gICAgICAgIG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Imhl
bHAiXScpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgICBoZWxwLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouaGVscCA9IGhlbHA7
Ci0gICAgICAgIG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1h
dGNoIl0nKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykg
ewotICAgICAgICAgICAgbWF0Y2gucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1h
dGNoOwotICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVs
PSJtaXNtYXRjaCJdJyk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgIG1pc21hdGNoLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRl
KCJocmVmIikpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmou
bWF0Y2ggPSBtaXNtYXRjaDsKLSAgICAgICAgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdtZXRhW25hbWU9ImZsYWdzIl0nKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBu
b2Rlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgZmxhZ3MucHVzaChub2Rlc1tpXS5nZXRB
dHRyaWJ1dGUoImNvbnRlbnQiKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGVzLmxlbmd0
aCA+IDApIG9iai5mbGFncyA9IGZsYWdzOwotCi0gICAgICAgIHJldHVybiBvYmo7Ci0gICAgfQot
Ci0gICAgdmFyIG1ldGEgPSBfX2dldF9tZXRhZGF0YSgpOwotICAgIHZhciBub2RlczsKLQotICAg
IGZ1bmN0aW9uIGNvcHkob2JqLCBwcm9wLCBhcnIpIHsKLSAgICAgICAgaWYgKHR5cGVvZiBhcnIg
IT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICB2YXIgYSA9IFtdOwotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGk8YXJyLmxlbmd0aDtpKyspIHsKLSAgICAgICAgICAgICAgICBhW2ld
ID0gYXJyW2ldOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgb2JqW3Byb3BdID0gYTsKLSAg
ICAgICAgfQotICAgIH0KLQotCi0gICAgdmFyIHJldCA9IG5ldyBPYmplY3QoKTsKLSAgICByZXQu
bG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOwotICAgIHJldC50eXBlICA9ICJtYW51
YWwiOwotICAgIHJldC50ZXN0cyA9IG5ldyBPYmplY3QoKTsKLQotICAgIHZhciBub2RlID0gZG9j
dW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyQ9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiXScpOwotICAgIGlmIChub2RlICE9PSBudWxsKSB7Ci0gICAgICAgIHJldC50eXBlID0gInNj
cmlwdCI7Ci0gICAgfQotCi0gICAgaWYgKHJldC50eXBlID09PSAic2NyaXB0IikgewotICAgICAg
ICBpZiAodHlwZW9mIG1ldGFkYXRhX2dlbmVyYXRvciA9PT0gInVuZGVmaW5lZCIKLSAgICAgICAg
ICAgIHx8IE9iamVjdC5rZXlzKG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGEpLmxl
bmd0aCA9PT0gMCkKLSAgICAgICAgICAgIHJldHVybiAiV1JBUFBFUjpUUllfQUdBSU4iOwotICAg
ICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBtZXRhZGF0YV9nZW5lcmF0
b3IuY3VycmVudE1ldGFkYXRhKSB7Ci0gICAgICAgICAgICAgICAgdmFyIG9iaiA9IG1ldGFkYXRh
X2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGFba2V5XTsKLSAgICAgICAgICAgICAgICB2YXIgbmV3
dGVzdCA9IG5ldyBPYmplY3QoKTsKLSAgICAgICAgICAgICAgICByZXQudGVzdHNba2V5XT0gbmV3
dGVzdDsKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5oZWxwID09PSAidW5kZWZpbmVk
IikgewotICAgICAgICAgICAgICAgICAgICBjb3B5KG5ld3Rlc3QsICJoZWxwIiwgbWV0YS5oZWxw
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmouaGVscCA9PT0gInN0cmlu
ZyIpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3dGVzdC5oZWxwID0gWyBvYmouaGVscCBdOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5hdXRob3Ig
PT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvcHkobmV3dGVzdCwgImF1
dGhvciIsIG1ldGEuYXV0aG9yKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBv
YmouYXV0aG9yID09PSAic3RyaW5nIikgewotICAgICAgICAgICAgICAgICAgICBuZXd0ZXN0LmF1
dGhvciA9IFsgb2JqLmF1dGhvciBdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGNvcHkobmV3dGVzdCwgImFzc2VydCIsIG1ldGEuYXNzZXJ0KTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmouYXNzZXJ0ID09PSAic3RyaW5nIikgewotICAgICAg
ICAgICAgICAgICAgICBuZXd0ZXN0LmFzc2VydCA9IFsgb2JqLmFzc2VydCBdOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb3B5KG5ld3Rlc3QsICJtYXRjaCIsIG1ldGEubWF0
Y2gpOwotICAgICAgICAgICAgICAgIGNvcHkobmV3dGVzdCwgIm1pc21hdGNoIiwgbWV0YS5taXNt
YXRjaCk7Ci0gICAgICAgICAgICAgICAgY29weShuZXd0ZXN0LCAiZmxhZ3MiLCBtZXRhLmZsYWdz
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2UgewotICAgICAgICB2YXIgbmV3dGVzdCA9IG1ldGE7Ci0gICAgICAgIHJldC50ZXN0
c1tkb2N1bWVudC50aXRsZV09IG5ld3Rlc3Q7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiBuZXd0ZXN0
Lm1hdGNoICE9PSAidW5kZWZpbmVkIgotICAgICAgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlz
bWF0Y2ggIT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICByZXQudHlwZSA9ICJyZWZ0ZXN0
IjsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi19Ci0KLWZ1bmN0
aW9uIF9fZ2l2ZV91cCgpIHsKLSAgICB2YXIgcmV0ID0gbmV3IE9iamVjdCgpOwotICAgIHJldC5s
b2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7Ci0gICAgcmV0LnR5cGUgID0gIm1hbnVh
bCI7Ci0gICAgcmV0LnRlc3RzID0gbmV3IE9iamVjdCgpOwotCi0gICAgdmFyIG5vZGUgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjJD0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyJdJyk7Ci0gICAgaWYgKG5vZGUgIT09IG51bGwpIHsKLSAgICAgICAgcmV0LnR5cGUgPSAic2Ny
aXB0IjsKLSAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXd0ZXN0Lm1hdGNoICE9PSAidW5kZWZpbmVk
IgotICAgICAgICAgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlzbWF0Y2ggIT09ICJ1bmRlZmlu
ZWQiKSB7Ci0gICAgICAgIHJldC50eXBlID0gInJlZnRlc3QiOwotICAgIH0KLQotICAgIHZhciBu
ZXd0ZXN0ID0gX19nZXRfbWV0YWRhdGEoKTsKLSAgICByZXQudGVzdHNbZG9jdW1lbnQudGl0bGVd
PSBuZXd0ZXN0OwotCi0gICAgcmV0dXJuIHJldDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9wYWNrYWdlLmpz
b24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nj
cmlwdHMvcGFja2FnZS5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjE4ZjY2
OTFmNWZmMmVlMWEzZGY2ZTA4ZWMzOGIyM2NjMjk0ZmNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9wYWNrYWdlLmpzb24KKysrIC9kZXYvbnVsbApAQCAt
MSwxMSArMCwwIEBACi17Ci0gICAgIm5hbWUiOiAgICAgImNvbnZlcnQiCi0sICAgInZlcnNpb24i
OiAgIjAuMC4xIgotLCAgICJwcml2YXRlIjogIHRydWUKLSwgICAiZGVwZW5kZW5jaWVzIjogewot
ICAgICAgICAibWtkaXJwIjogICAgICAgIioiCi0gICAgLCAgICJ3cmVuY2giOiAgICAgICAiKiIK
LSAgICAsICAgInVuZGVyc2NvcmUiOiAgICIqIgotICAgICwgICAianNkb20iOiAgICAgICAgIioi
Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI5N2I3MTgxNDNmOTMxMzIwMDc3NzY4NmUyMzYzYzkzNmU2NDlkNzAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi0vLyBncmFiIHRoZSB0YWJsZSBvZiBjb250
ZW50cyBmaWxsZWQgd2l0aCBhbGwgdGhlIGFuY2hvcnMKLWZ1bmN0aW9uIF9fcmVzdWx0X2hhbmRs
ZXIoKSB7Ci0gICAgZnVuY3Rpb24gZ2V0TWFwKCkgewotICAgICAgICB2YXIgdG9jX2VsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudHMiKS5uZXh0RWxlbWVudFNpYmxpbmc7
Ci0KLSAgICAgICAgZnVuY3Rpb24gZ2V0U2VjdGlvbigpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9u
IGdldElkcyhub2RlKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGEgPSBbXTsKLQotICAgICAgICAg
ICAgICAgIHZhciBub2RlcyA9IG5vZGUucXVlcnlTZWxlY3RvckFsbCgnKltpZF0nKTsKLSAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGEucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VE9DSWRzKCkgewotICAgICAgICAgICAgICAgIHZh
ciBhID0gW107Ci0KLSAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSB0b2NfZWxlbWVudC5xdWVy
eVNlbGVjdG9yQWxsKCdsaScpOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGhyZWYgPSBub2Rl
c1tpXS5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKLSAgICAgICAgICAg
ICAgICAgICAgYS5wdXNoKGhyZWYuc3Vic3RyaW5nKDEpKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZh
ciBvYmogPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgICAgICB2YXIgaWRzID0gZ2V0SWRzKGRvY3Vt
ZW50KTsKLSAgICAgICAgICAgIHZhciB0b2MgPSBnZXRUT0NJZHMoKTsKLQotICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDE7IGkgPCB0b2MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICB2
YXIga2V5MSA9IHRvY1tpLTFdOwotICAgICAgICAgICAgICAgIHZhciBrZXkyID0gdG9jW2ldOwot
ICAgICAgICAgICAgICAgIHZhciBtYXAgPSBbXTsKLQotICAgICAgICAgICAgICAgIHZhciBpbmRl
eDEgPSBpZHMuaW5kZXhPZihrZXkxKTsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXgyID0gaWRz
LmluZGV4T2Yoa2V5Mik7Ci0KLSAgICAgICAgICAgICAgICBpZiAoKGluZGV4Mi1pbmRleDEpID4g
MSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gaW5kZXgxKzE7IGogPCBpbmRl
eDI7aisrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtYXAucHVzaChpZHNbal0pOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
b2JqW2tleTFdID0gbWFwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHZhciBrZXkgPSB0b2NbdG9jLmxlbmd0aC0xXTsKLSAgICAgICAgICAgICAgICB2YXIg
aW5kZXggPSBpZHMuaW5kZXhPZihrZXkpOwotICAgICAgICAgICAgICAgIHZhciBtYXAgPSBbXTsK
LQotICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtq
KyspIHsKLSAgICAgICAgICAgICAgICAgICAgbWFwLnB1c2goaWRzW2pdKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBtYXA7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHJldHVybiBvYmo7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBz
ZWN0aW9uKGlkKSB7Ci0gICAgICAgICAgICB0aGlzLmlkID0gaWQ7Ci0gICAgICAgIH0KLSAgICAg
ICAgZnVuY3Rpb24gYWRkU3ViU2VjdGlvbihzZWN0aW9uLCBzdWIpIHsKLSAgICAgICAgICAgIGlm
ICh0eXBlb2Ygc2VjdGlvbi5zZWN0aW9ucyA9PT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAg
ICAgICBzZWN0aW9uLnNlY3Rpb25zID0gW107Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
ZWN0aW9uLnNlY3Rpb25zLnB1c2goc3ViKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9u
IGxpKGVsLCBtYXApIHsKLSAgICAgICAgICAgIHZhciBvYmogPSBuZXcgc2VjdGlvbihlbC5maXJz
dEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKS5zdWJzdHJpbmcoMSkpOwotICAgICAg
ICAgICAgb2JqLnRpdGxlID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQudGV4dENvbnRlbnQ7Ci0gICAg
ICAgICAgICB2YXIgY2hpbGQgPSBlbC5maXJzdEVsZW1lbnRDaGlsZDsKLQotICAgICAgICAgICAg
dmFyIG0gPSBtYXBbb2JqLmlkXTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5s
ZW5ndGg7IGkrKykgIHsKLSAgICAgICAgICAgICAgICB2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtp
XSk7Ci0gICAgICAgICAgICAgICAgYWRkU3ViU2VjdGlvbihvYmosIHN1Yik7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoY2hpbGQubm9kZU5hbWUgPT09ICJPTCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7Ci0gICAg
ICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICByZXR1cm4gb2JqOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rp
b24gb2woZWwsIHNlY3Rpb24sIG1hcCkgewotICAgICAgICAgICAgdmFyIGNoaWxkID0gZWwuZmly
c3RFbGVtZW50Q2hpbGQ7Ci0gICAgICAgICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKLSAg
ICAgICAgICAgICAgICBhZGRTdWJTZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKLSAg
ICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHZhciBtYXAgPSBnZXRTZWN0aW9uKCk7Ci0gICAg
ICAgIHZhciBtYWluID0gbmV3IHNlY3Rpb24oIl9fX21haW5fX18iKTsKLSAgICAgICAgbWFpbi50
aXRsZSA9IGRvY3VtZW50LnRpdGxlOwotCi0gICAgICAgIG9sKHRvY19lbGVtZW50LCBtYWluLCBt
YXApOwotCi0gICAgICAgIHJldHVybiBtYWluOwotICAgIH0KLQotICAgIHJldHVybiBnZXRNYXAo
KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2NyaXB0cy91cGRhdGUtZGlyZWN0b3J5LXN0cnVjdHVyZS5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy91cGRh
dGUtZGlyZWN0b3J5LXN0cnVjdHVyZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
N2Q3M2Q5M2FjOTZiMTlmZWEzZDBmNzhkNjFkZjE1MDViOGEwNmUzYi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBkYXRlLWRpcmVjdG9yeS1zdHJ1Y3R1
cmUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotCi0vLyBjb252ZXJ0IGZyb20g
b2xkLXN0eWxlIHRlc3Qgc3RydWN0dXJlIHRvIG5ldyBzdHlsZQotCi12YXIgZnMgPSByZXF1aXJl
KCJmcyIpCi0sICAgcHRoID0gcmVxdWlyZSgicGF0aCIpCi0sICAganNkb20gPSByZXF1aXJlKCJq
c2RvbSIpCi0sICAgbWtkaXJwID0gcmVxdWlyZSgibWtkaXJwIikuc3luYwotLCAgIHRlc3REaXIg
PSBwdGguam9pbihfX2Rpcm5hbWUsICIuLi8uLiIpCi0sICAgTUFYX0RFUFRIID0gMwotLCAgIGlk
MnBhdGggPSB7fQotLCAgIGxpbWl0RGVwdGggPSB7Ci0gICAgICAgIHBhcnNpbmc6ICAgIHRydWUK
LSAgICB9Ci07Ci0KLXZhciBzZWN0aW9ucyA9IHsKLSAgICBodG1sOiAgICAgICAiaHR0cDovL3d3
dy53My5vcmcvaHRtbC93Zy9kcmFmdHMvaHRtbC9tYXN0ZXIvT3ZlcnZpZXcuaHRtbCIKLSwgICBj
YW52YXMyZDogICAiaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy9kcmFmdHMvMmRjb250ZXh0L2h0
bWw1X2NhbnZhcy9PdmVydmlldy5odG1sIgotLCAgIG1pY3JvZGF0YTogICJodHRwOi8vd3d3Lncz
Lm9yZy9odG1sL3dnL2RyYWZ0cy9taWNyb2RhdGEvbWFzdGVyL092ZXJ2aWV3Lmh0bWwiCi19Owot
Ci1mdW5jdGlvbiB3YWxrVHJlZSAoJCwgJGVsLCBsaXN0KSB7Ci0gICAgJGVsLmZpbmQoIj4gbGki
KS5lYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgdmFyICRsaSA9ICQodGhpcykKLSAgICAgICAg
LCAgICRhID0gJGxpLmZpbmQoIj4gYSIpLmZpcnN0KCkKLSAgICAgICAgOwotICAgICAgICAvLyBz
a2lwIHNlY3Rpb25zIHRoYXQgZG9uJ3QgaGF2ZSBhIG51bWJlcgotICAgICAgICBpZiAoIS9eXHMq
XGQrLy50ZXN0KCRhLnRleHQoKSkpIHJldHVybjsKLSAgICAgICAgdmFyIGhyZWYgPSAkYS5hdHRy
KCJocmVmIikucmVwbGFjZSgvXi4qIy8sICIiKQotICAgICAgICAsICAgZGVmID0gewotICAgICAg
ICAgICAgICAgIGlkOiBocmVmLnRvTG93ZXJDYXNlKCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IC5yZXBsYWNlKC9bXmEtejAtOVwtXS9nLCAiLSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAu
cmVwbGFjZSgvXC17Mix9L2csICItIikKLSAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNl
KC8oPzpeXC18XC0kKS9nLCAiIikKLSAgICAgICAgICAgICwgICBvcmlnaW5hbF9pZDogaHJlZgot
ICAgICAgICAgICAgfQotICAgICAgICAsICAgJG9sID0gJGxpLmZpbmQoIj4gb2wiKS5maXJzdCgp
Ci0gICAgICAgIDsKLSAgICAgICAgaWYgKCRvbC5sZW5ndGgpIHsKLSAgICAgICAgICAgIGRlZi5j
aGlsZHJlbiA9IFtdOwotICAgICAgICAgICAgd2Fsa1RyZWUoJCwgJG9sLCBkZWYuY2hpbGRyZW4p
OwotICAgICAgICB9Ci0gICAgICAgIGxpc3QucHVzaChkZWYpOwotICAgIH0pOwotfQotCi1mdW5j
dGlvbiBleHRyYWN0U2VjdGlvbnMgKHNlYywgc2VjRGlyLCBzcGVjLCBjYikgewotICAgIGpzZG9t
LmVudigKLSAgICAgICAgc3BlYwotICAgICwgICBmdW5jdGlvbiAoZXJyLCB3aW5kb3cpIHsKLSAg
ICAgICAgICAgIGlmIChlcnIpIHJldHVybiBjYihlcnIpOwotICAgICAgICAgICAganNkb20ualF1
ZXJ5aWZ5KHdpbmRvdywgImh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1
ZXJ5LzEuOC4zL2pxdWVyeS5taW4uanMiLCBmdW5jdGlvbiAod2luZG93LCAkKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCEkKSByZXR1cm4gY2IoIiQgd2FzIG5vdCBkZWZpbmVkIik7Ci0gICAgICAg
ICAgICAgICAgdmFyICRyb290ID0gJCgiYm9keSA+IG9sLnRvYyIpLmZpcnN0KCkKLSAgICAgICAg
ICAgICAgICAsICAgdHJlZSA9IFtdCi0gICAgICAgICAgICAgICAgOwotICAgICAgICAgICAgICAg
IHdhbGtUcmVlKCQsICRyb290LCB0cmVlKTsKLSAgICAgICAgICAgICAgICBjYihudWxsLCB0cmVl
LCBzZWMsIHNlY0Rpcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgfSk7Ci19Ci0K
LWZ1bmN0aW9uIG1ha2VJRDJQYXRoIChiYXNlLCB0cmVlKSB7Ci0gICAgZm9yICh2YXIgaSA9IDAs
IG4gPSB0cmVlLmxlbmd0aDsgaSA8IG47IGkrKykgewotICAgICAgICB2YXIgc2VjID0gdHJlZVtp
XTsKLSAgICAgICAgaWQycGF0aFtzZWMub3JpZ2luYWxfaWRdID0gYmFzZTsKLSAgICAgICAgaWYg
KHNlYy5jaGlsZHJlbiAmJiBzZWMuY2hpbGRyZW4ubGVuZ3RoKSBtYWtlSUQyUGF0aChiYXNlLCBz
ZWMuY2hpbGRyZW4pOwotICAgIH0KLX0KLQotZnVuY3Rpb24gbWFrZURpcnMgKGJhc2UsIHRyZWUs
IGRlcHRoKSB7Ci0gICAgY29uc29sZS5sb2coIk1ha2luZyAiICsgYmFzZSArICIgYXQgZGVwdGgg
IiArIGRlcHRoKTsKLSAgICBmb3IgKHZhciBpID0gMCwgbiA9IHRyZWUubGVuZ3RoOyBpIDwgbjsg
aSsrKSB7Ci0gICAgICAgIHZhciBzZWMgPSB0cmVlW2ldCi0gICAgICAgICwgICBwYXRoID0gcHRo
LmpvaW4oYmFzZSwgc2VjLmlkKQotICAgICAgICA7Ci0gICAgICAgIG1rZGlycChwYXRoKTsKLSAg
ICAgICAgZnMud3JpdGVGaWxlU3luYyhwdGguam9pbihwYXRoLCAiLmdpdGtlZXAiKSwgIiIsICJ1
dGY4Iik7Ci0gICAgICAgIGlkMnBhdGhbc2VjLm9yaWdpbmFsX2lkXSA9IHBhdGg7Ci0gICAgICAg
IGlmIChzZWMuaWQgIT09IHNlYy5vcmlnaW5hbF9pZCkgewotICAgICAgICAgICAgZnMud3JpdGVG
aWxlU3luYyhwdGguam9pbihwYXRoLCAib3JpZ2luYWwtaWQuanNvbiIpLCBKU09OLnN0cmluZ2lm
eSh7IG9yaWdpbmFsX2lkOiBzZWMub3JpZ2luYWxfaWR9KSwgInV0ZjgiKTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoc2VjLmNoaWxkcmVuICYmIHNlYy5jaGlsZHJlbi5sZW5ndGgpIHsKLSAgICAg
ICAgICAgIGlmIChkZXB0aCA9PT0gTUFYX0RFUFRIIHx8IGxpbWl0RGVwdGhbc2VjLmlkXSkgewot
ICAgICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRoLmpvaW4ocGF0aCwgImNvbnRhaW5z
Lmpzb24iKSwgSlNPTi5zdHJpbmdpZnkoc2VjLmNoaWxkcmVuLCBudWxsLCA0KSwgInV0ZjgiKTsK
LSAgICAgICAgICAgICAgICBtYWtlSUQyUGF0aChwYXRoLCBzZWMuY2hpbGRyZW4pOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWFrZURpcnMocGF0
aCwgc2VjLmNoaWxkcmVuLCBkZXB0aCArIDEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgfQotfQotCi1mb3IgKHZhciBzZWMgaW4gc2VjdGlvbnMpIHsKLSAgICB2YXIgc2VjRGlyID0g
cHRoLmpvaW4odGVzdERpciwgc2VjKTsKLSAgICBta2RpcnAoc2VjRGlyKTsKLSAgICBjb25zb2xl
LmxvZygiTGF1bmNoaW5nIGV4dHJhY3Rpb24gZm9yICIgKyBzZWMpOwotICAgIGV4dHJhY3RTZWN0
aW9ucyhzZWMsIHNlY0Rpciwgc2VjdGlvbnNbc2VjXSwgZnVuY3Rpb24gKGVyciwgdG9jLCBzZWMs
IHNlY0RpcikgewotICAgICAgICBpZiAoZXJyKSByZXR1cm4gY29uc29sZS5sb2coIkVSUk9SOiAi
ICsgZXJyKTsKLSAgICAgICAgbWFrZURpcnMoc2VjRGlyLCB0b2MsIDEpOwotICAgICAgICBmb3Ig
KHZhciBrIGluIGlkMnBhdGgpIGlkMnBhdGhba10gPSBpZDJwYXRoW2tdLnJlcGxhY2UodGVzdERp
ciArICIvIiwgIiIpOwotICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHB0aC5qb2luKF9fZGlybmFt
ZSwgImlkMnBhdGguanNvbiIpLCBKU09OLnN0cmluZ2lmeShpZDJwYXRoLCBudWxsLCA0KSwgInV0
ZjgiKTsKLSAgICB9KTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmViOWIyNjI3M2UyZmM2ZWQ5
ZjQ0NjE4ZjRkOWI1MGJlYjMzNDY4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJwYXRoLmpzb24KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Njcmlw
dHMvcGFja2FnZS5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy91cGRhdGUtZGlyZWN0b3J5LXN0cnVjdHVyZS5q
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQ5YjM1NmU5ZTZjYTE0ZWM3NGE5ZThkNzMwZTk1NjIzNDZlMTQ5
OWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nl
cnZlL2NvbW1hbmRzLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NlcnZlL3NlcnZlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rfc2Vy
dmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NlcnZlL3dhdmUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0
aW9uL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWJhZmNkNmQ2MGYx
MjljYjVjNjI2ZmIyZTA0ZDQwZjc4ZTM3NWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzAgKzAsMCBAQAotIyBNYWtlZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRpb24KLSMKLQot
IyBZb3UgY2FuIHNldCB0aGVzZSB2YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotU1BI
SU5YT1BUUyAgICA9Ci1TUEhJTlhCVUlMRCAgID0gc3BoaW54LWJ1aWxkCi1QQVBFUiAgICAgICAg
ID0KLUJVSUxERElSICAgICAgPSBfYnVpbGQKLQotIyBJbnRlcm5hbCB2YXJpYWJsZXMuCi1QQVBF
Uk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBlcl9zaXplPWE0Ci1QQVBFUk9QVF9sZXR0ZXIgPSAt
RCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgotQUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlMRERJ
UikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCi0KLS5QSE9O
WTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUganNvbiBodG1saGVs
cCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFuIGNoYW5nZXMgbGlu
a2NoZWNrIGRvY3Rlc3QKLQotaGVscDoKLQlAZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRhcmdl
dD4nIHdoZXJlIDx0YXJnZXQ+IGlzIG9uZSBvZiIKLQlAZWNobyAiICBodG1sICAgICAgIHRvIG1h
a2Ugc3RhbmRhbG9uZSBIVE1MIGZpbGVzIgotCUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFrZSBI
VE1MIGZpbGVzIG5hbWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMiCi0JQGVjaG8gIiAgc2lu
Z2xlaHRtbCB0byBtYWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmlsZSIKLQlAZWNobyAiICBwaWNr
bGUgICAgIHRvIG1ha2UgcGlja2xlIGZpbGVzIgotCUBlY2hvICIgIGpzb24gICAgICAgdG8gbWFr
ZSBKU09OIGZpbGVzIgotCUBlY2hvICIgIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFu
ZCBhIEhUTUwgaGVscCBwcm9qZWN0IgotCUBlY2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBIVE1M
IGZpbGVzIGFuZCBhIHF0aGVscCBwcm9qZWN0IgotCUBlY2hvICIgIGRldmhlbHAgICAgdG8gbWFr
ZSBIVE1MIGZpbGVzIGFuZCBhIERldmhlbHAgcHJvamVjdCIKLQlAZWNobyAiICBlcHViICAgICAg
IHRvIG1ha2UgYW4gZXB1YiIKLQlAZWNobyAiICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmls
ZXMsIHlvdSBjYW4gc2V0IFBBUEVSPWE0IG9yIFBBUEVSPWxldHRlciIKLQlAZWNobyAiICBsYXRl
eHBkZiAgIHRvIG1ha2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgi
Ci0JQGVjaG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCi0JQGVjaG8gIiAgbWFu
ICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKLQlAZWNobyAiICBjaGFuZ2VzICAgIHRvIG1h
a2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIKLQlA
ZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdy
aXR5IgotCUBlY2hvICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBp
biB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5hYmxlZCkiCi0KLWNsZWFuOgotCS1ybSAtcmYgJChC
VUlMRERJUikvKgotCi1odG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIGh0bWwgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9odG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9odG1sLiIKLQotZGlyaHRtbDoKLQkkKFNQ
SElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGlyaHRt
bAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4g
JChCVUlMRERJUikvZGlyaHRtbC4iCi0KLXNpbmdsZWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIg
c2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3NpbmdsZWh0bWwKLQlAZWNo
bwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJVSUxERElS
KS9zaW5nbGVodG1sLiIKLQotcGlja2xlOgotCSQoU1BISU5YQlVJTEQpIC1iIHBpY2tsZSAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BpY2tsZQotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgotCi1qc29uOgot
CSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9qc29u
Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhl
IEpTT04gZmlsZXMuIgotCi1odG1saGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBodG1saGVscCAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWxoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVp
bGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUi
IFwKLQkgICAgICAiLmhocCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvaHRtbGhlbHAuIgot
Ci1xdGhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgcXRoZWxwICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvcXRoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3Ug
Y2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIiBcCi0JICAgICAgIi5xaGNw
IHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9xdGhlbHAsIGxpa2UgdGhpczoiCi0JQGVjaG8g
IiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChCVUlMRERJUikvcXRoZWxwL3NpeC5xaGNwIgotCUBl
Y2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIGFzc2lzdGFudCAtY29sbGVj
dGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL3NpeC5xaGMiCi0KLWRldmhlbHA6Ci0JJChTUEhJ
TlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RldmhlbHAK
LQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4iCi0JQGVjaG8gIlRvIHZpZXcgdGhlIGhl
bHAgZmlsZToiCi0JQGVjaG8gIiMgbWtkaXIgLXAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxw
L3NpeCIKLQlAZWNobyAiIyBsbiAtcyAkKEJVSUxERElSKS9kZXZoZWxwICQkSE9NRS8ubG9jYWwv
c2hhcmUvZGV2aGVscC9zaXgiCi0JQGVjaG8gIiMgZGV2aGVscCIKLQotZXB1YjoKLQkkKFNQSElO
WEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZXB1YgotCUBlY2hv
Ci0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGluICQoQlVJTERESVIp
L2VwdWIuIgotCi1sYXRleDoKLQkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRo
ZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgotCUBlY2hvICJSdW4gXGBt
YWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhlc2UgdGhyb3VnaCAocGRmKWxhdGV4IiBc
Ci0JICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGlj
YWxseSkuIgotCi1sYXRleHBkZjoKLQkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhy
b3VnaCBwZGZsYXRleC4uLiIKLQltYWtlIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYKLQlA
ZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L2xhdGV4LiIKLQotdGV4dDoKLQkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvdGV4dAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUg
dGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCi0KLW1hbjoKLQkkKFNQSElOWEJV
SUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KLQlAZWNobwotCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikv
bWFuLiIKLQotY2hhbmdlczoKLQkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvY2hhbmdlcwotCUBlY2hvCi0JQGVjaG8gIlRoZSBvdmVydmlldyBm
aWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgotCi1saW5rY2hlY2s6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlua2NoZWNr
Ci0JQGVjaG8KLQlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9y
cyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAotCSAgICAgICJvciBpbiAkKEJVSUxERElSKS9saW5r
Y2hlY2svb3V0cHV0LnR4dC4iCi0KLWRvY3Rlc3Q6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZG9jdGVz
dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKLQlAZWNobyAiVGVzdGluZyBv
ZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCi0JICAg
ICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4
L2RvY3VtZW50YXRpb24vY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vY29uZi5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2U1NDI4N2E2OWUwNDcwN2IxYTUwZWY2YjY2ZmFhNmJkMmQxODgx
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0
aW9uL2NvbmYucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KLSMKLSMgc2l4IGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlvbiBm
aWxlCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi0jIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVs
ZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCi0j
IGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5
IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFi
c3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlrZSBzaG93biBoZXJlLgotI3N5cy5wYXRoLmFw
cGVuZChvcy5wYXRoLmFic3BhdGgoJy4nKSkKLQotIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
IyBJZiB5b3VyIGRvY3VtZW50YXRpb24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBz
dGF0ZSBpdCBoZXJlLgotbmVlZHNfc3BoaW54ID0gIjEuMCIKLQotIyBBZGQgYW55IFNwaGlueCBl
eHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlIGV4dGVu
c2lvbnMKLSMgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91
ciBjdXN0b20gb25lcy4KLWV4dGVuc2lvbnMgPSBbInNwaGlueC5leHQuaW50ZXJzcGhpbngiXQot
Ci0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0
byB0aGlzIGRpcmVjdG9yeS4KLXRlbXBsYXRlc19wYXRoID0gWyJfdGVtcGxhdGVzIl0KLQotIyBU
aGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCi1zb3VyY2Vfc3VmZml4ID0gIi5yc3QiCi0K
LSMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlcy4KLSNzb3VyY2VfZW5jb2RpbmcgPSAidXRm
LTgtc2lnIgotCi0jIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1bWVudC4KLW1hc3Rlcl9kb2MgPSAi
aW5kZXgiCi0KLSMgR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KLXByb2pl
Y3QgPSB1InNpeCIKLWNvcHlyaWdodCA9IHUiMjAxMC0yMDE0LCBCZW5qYW1pbiBQZXRlcnNvbiIK
LQotc3lzLnBhdGguYXBwZW5kKG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oIi4iLCAiLi4i
KSkpCi1mcm9tIHNpeCBpbXBvcnQgX192ZXJzaW9uX18gYXMgc2l4X3ZlcnNpb24KLXN5cy5wYXRo
LnBvcCgpCi0KLSMgVGhlIHZlcnNpb24gaW5mbyBmb3IgdGhlIHByb2plY3QgeW91J3JlIGRvY3Vt
ZW50aW5nLCBhY3RzIGFzIHJlcGxhY2VtZW50IGZvcgotIyB8dmVyc2lvbnwgYW5kIHxyZWxlYXNl
fCwgYWxzbyB1c2VkIGluIHZhcmlvdXMgb3RoZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlCi0jIGJ1
aWx0IGRvY3VtZW50cy4KLSMKLSMgVGhlIHNob3J0IFguWSB2ZXJzaW9uLgotdmVyc2lvbiA9IHNp
eF92ZXJzaW9uWzotMl0KLSMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEv
cmMgdGFncy4KLXJlbGVhc2UgPSBzaXhfdmVyc2lvbgotCi0jIFRoZSBsYW5ndWFnZSBmb3IgY29u
dGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgotIyBm
b3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCi0jbGFuZ3VhZ2UgPSBOb25lCi0KLSMg
VGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5b3Ug
c2V0IHRvZGF5IHRvIHNvbWUKLSMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6Ci0j
dG9kYXkgPSAnJwotIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZvciBh
IHN0cmZ0aW1lIGNhbGwuCi0jdG9kYXlfZm10ID0gJyVCICVkLCAlWScKLQotIyBMaXN0IG9mIHBh
dHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFu
ZAotIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMu
Ci1leGNsdWRlX3BhdHRlcm5zID0gWyJfYnVpbGQiXQotCi0jIFRoZSByZVNUIGRlZmF1bHQgcm9s
ZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwgZG9jdW1lbnRz
LgotI2RlZmF1bHRfcm9sZSA9IE5vbmUKLQotIyBJZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5k
ZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCi0jYWRkX2Z1bmN0aW9uX3Bh
cmVudGhlc2VzID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdp
bGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgotIyB1bml0IHRpdGxlcyAoc3VjaCBh
cyAuLiBmdW5jdGlvbjo6KS4KLSNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQotCi0jIElmIHRydWUs
IHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hvd24g
aW4gdGhlCi0jIG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0LgotI3Nob3dfYXV0
aG9ycyA9IEZhbHNlCi0KLSMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGlnaGxp
Z2h0aW5nKSBzdHlsZSB0byB1c2UuCi1weWdtZW50c19zdHlsZSA9ICJzcGhpbngiCi0KLSMgQSBs
aXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5nLgotI21vZGlu
ZGV4X2NvbW1vbl9wcmVmaXggPSBbXQotCi0KLSMgLS0gT3B0aW9ucyBmb3IgSFRNTCBvdXRwdXQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMg
VGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRoZSBk
b2N1bWVudGF0aW9uIGZvcgotIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCi1odG1sX3RoZW1l
ID0gImRlZmF1bHQiCi0KLSMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMgYW5kIGN1
c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCi0jIGZ1cnRoZXIuICBGb3IgYSBs
aXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhlCi0jIGRvY3Vt
ZW50YXRpb24uCi0jaHRtbF90aGVtZV9vcHRpb25zID0ge30KLQotIyBBZGQgYW55IHBhdGhzIHRo
YXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5
LgotI2h0bWxfdGhlbWVfcGF0aCA9IFtdCi0KLSMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0IG9mIFNw
aGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bwotIyAiPHByb2plY3Q+IHY8
cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCi0jaHRtbF90aXRsZSA9IE5vbmUKLQotIyBBIHNob3J0
ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUgYXMg
aHRtbF90aXRsZS4KLSNodG1sX3Nob3J0X3RpdGxlID0gTm9uZQotCi0jIFRoZSBuYW1lIG9mIGFu
IGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUg
dG9wCi0jIG9mIHRoZSBzaWRlYmFyLgotI2h0bWxfbG9nbyA9IE5vbmUKLQotIyBUaGUgbmFtZSBv
ZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2aWNv
biBvZiB0aGUKLSMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24gZmls
ZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKLSMgcGl4ZWxzIGxhcmdlLgotI2h0bWxfZmF2
aWNvbiA9IE5vbmUKLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGlj
IGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKLSMgcmVsYXRpdmUgdG8gdGhpcyBk
aXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMs
Ci0jIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWls
dGluICJkZWZhdWx0LmNzcyIuCi1odG1sX3N0YXRpY19wYXRoID0gWyJfc3RhdGljIl0KLQotIyBJ
ZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBl
dmVyeSBwYWdlIGJvdHRvbSwKLSMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0aW1lIGZvcm1hdC4KLSNo
dG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZJwotCi0jIElmIHRydWUsIFNtYXJ0eVBh
bnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3RlcyBhbmQgZGFzaGVzIHRvCi0jIHR5cG9n
cmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgotI2h0bWxfdXNlX3NtYXJ0eXBhbnRzID0gVHJ1
ZQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1bWVudCBuYW1lcyB0byB0
ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX3NpZGViYXJzID0ge30KLQotIyBBZGRpdGlvbmFsIHRlbXBs
YXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBwYWdlcywgbWFwcyBwYWdlIG5hbWVzIHRv
Ci0jIHRlbXBsYXRlIG5hbWVzLgotI2h0bWxfYWRkaXRpb25hbF9wYWdlcyA9IHt9Ci0KLSMgSWYg
ZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jaHRtbF9kb21haW5faW5kaWNl
cyA9IFRydWUKLQotIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMgZ2VuZXJhdGVkLgotI2h0bWxfdXNl
X2luZGV4ID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBpbmRleCBpcyBzcGxpdCBpbnRvIGluZGl2
aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgotI2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQot
Ci0jIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBw
YWdlcy4KLSNodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUKLQotIyBJZiB0cnVlLCAiQ3JlYXRl
ZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBU
cnVlLgotI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgIihDKSBDb3B5cmln
aHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNo
dG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQotCi0jIElmIHRydWUsIGFuIE9wZW5TZWFyY2ggZGVz
Y3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFsbCBwYWdlcyB3aWxsCi0jIGNvbnRh
aW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlv
biBtdXN0IGJlIHRoZQotIyBiYXNlIFVSTCBmcm9tIHdoaWNoIHRoZSBmaW5pc2hlZCBIVE1MIGlz
IHNlcnZlZC4KLSNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycKLQotIyBJZiBub25lbXB0eSwgdGhp
cyBpcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxlcyAoZS5nLiAiLnhodG1sIiku
Ci0jaHRtbF9maWxlX3N1ZmZpeCA9ICcnCi0KLSMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBI
VE1MIGhlbHAgYnVpbGRlci4KLWh0bWxoZWxwX2Jhc2VuYW1lID0gJ3NpeGRvYycKLQotCi0jIC0t
IE9wdGlvbnMgZm9yIExhVGVYIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRoZSBwYXBlciBzaXplICgnbGV0dGVyJyBvciAnYTQn
KS4KLSNsYXRleF9wYXBlcl9zaXplID0gJ2xldHRlcicKLQotIyBUaGUgZm9udCBzaXplICgnMTBw
dCcsICcxMXB0JyBvciAnMTJwdCcpLgotI2xhdGV4X2ZvbnRfc2l6ZSA9ICcxMHB0JwotCi0jIEdy
b3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVz
Ci0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsIGRvY3Vt
ZW50Y2xhc3MgW2hvd3RvL21hbnVhbF0pLgotbGF0ZXhfZG9jdW1lbnRzID0gWwotICAoImluZGV4
IiwgInNpeC50ZXgiLCB1InNpeCBEb2N1bWVudGF0aW9uIiwKLSAgIHUiQmVuamFtaW4gUGV0ZXJz
b24iLCAibWFudWFsIiksCi1dCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRp
dmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3Agb2YKLSMgdGhlIHRpdGxl
IHBhZ2UuCi0jbGF0ZXhfbG9nbyA9IE5vbmUKLQotIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBp
ZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAotIyBub3Qg
Y2hhcHRlcnMuCi0jbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93IHBh
Z2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KLSNsYXRleF9zaG93X3BhZ2VyZWZz
ID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwg
bGlua3MuCi0jbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKLQotIyBBZGRpdGlvbmFsIHN0dWZmIGZv
ciB0aGUgTGFUZVggcHJlYW1ibGUuCi0jbGF0ZXhfcHJlYW1ibGUgPSAnJwotCi0jIERvY3VtZW50
cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5kaXggdG8gYWxsIG1hbnVhbHMuCi0jbGF0ZXhfYXBwZW5k
aWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0j
bGF0ZXhfZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLQotIyAtLSBPcHRpb25zIGZvciBtYW51YWwg
cGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNl
IHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBhdXRob3JzLCBtYW51YWwgc2VjdGlvbiku
Ci1tYW5fcGFnZXMgPSBbCi0gICAgKCJpbmRleCIsICJzaXgiLCB1InNpeCBEb2N1bWVudGF0aW9u
IiwKLSAgICAgW3UiQmVuamFtaW4gUGV0ZXJzb24iXSwgMSkKLV0KLQotIyAtLSBJbnRlcnNwaGlu
eCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsicHkyIiA6ICgiaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvMi8iLCBOb25lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgInB5MyIgOiAo
Imh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvIiwgTm9uZSl9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0
aW9uL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5ODI3ZTY2OTViNTkzMWU1NTE0NGM4NTg3NmI3ZDZmMjU1Y2YzNDQyLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vaW5k
ZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNzg1ICswLDAgQEAKLVNpeDogUHl0aG9uIDIgYW5k
IDMgQ29tcGF0aWJpbGl0eSBMaWJyYXJ5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotCi0uLiBtb2R1bGU6OiBzaXgKLSAgIDpzeW5vcHNpczogUHl0aG9uIDIgYW5k
IDMgY29tcGF0aWJpbGl0eQotCi0uLiBtb2R1bGVhdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbiA8
YmVuamFtaW5AcHl0aG9uLm9yZz4KLS4uIHNlY3Rpb25hdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNv
biA8YmVuamFtaW5AcHl0aG9uLm9yZz4KLQotCi1TaXggcHJvdmlkZXMgc2ltcGxlIHV0aWxpdGll
cyBmb3Igd3JhcHBpbmcgb3ZlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFB5dGhvbiAyIGFuZAotUHl0
aG9uIDMuICBJdCBpcyBpbnRlbmRlZCB0byBzdXBwb3J0IGNvZGViYXNlcyB0aGF0IHdvcmsgb24g
Ym90aCBQeXRob24gMiBhbmQgMwotd2l0aG91dCBtb2RpZmljYXRpb24uICBzaXggY29uc2lzdHMg
b2Ygb25seSBvbmUgUHl0aG9uIGZpbGUsIHNvIGl0IGlzIHBhaW5sZXNzCi10byBjb3B5IGludG8g
YSBwcm9qZWN0LgotCi1TaXggY2FuIGJlIGRvd25sb2FkZWQgb24gYFB5UGkgPGh0dHA6Ly9weXBp
LnB5dGhvbi5vcmcvcHlwaS9zaXgvPmBfLiAgSXRzIGJ1ZwotdHJhY2tlciBhbmQgY29kZSBob3N0
aW5nIGlzIG9uIGBCaXRCdWNrZXQgPGh0dHA6Ly9iaXRidWNrZXQub3JnL2d1dHdvcnRoL3NpeD5g
Xy4KLQotVGhlIG5hbWUsICJzaXgiLCBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgMiozIGVxdWFs
cyA2LiAgV2h5IG5vdCBhZGRpdGlvbj8KLU11bHRpcGxpY2F0aW9uIGlzIG1vcmUgcG93ZXJmdWws
IGFuZCwgYW55d2F5LCAiZml2ZSIgaGFzIGFscmVhZHkgYmVlbiBzbmF0Y2hlZAotYXdheSBieSB0
aGUgWm9wZSBGaXZlIHByb2plY3QuCi0KLQotSW5kaWNlcyBhbmQgdGFibGVzCi0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotKiA6cmVmOmBnZW5pbmRleGAKLSogOnJlZjpgc2VhcmNoYAotCi0KLVBhY2th
Z2UgY29udGVudHMKLS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gZGF0YTo6IFBZMgotCi0gICBBIGJv
b2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgY29kZSBpcyBydW5uaW5nIG9uIFB5dGhvbiAyLgotCi0u
LiBkYXRhOjogUFkzCi0KLSAgIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBjb2RlIGlzIHJ1
bm5pbmcgb24gUHl0aG9uIDMuCi0KLQotQ29uc3RhbnRzCi0+Pj4+Pj4+Pj4KLQotU2l4IHByb3Zp
ZGVzIGNvbnN0YW50cyB0aGF0IG1heSBkaWZmZXIgYmV0d2VlbiBQeXRob24gdmVyc2lvbnMuICBP
bmVzIGVuZGluZwotYGBfdHlwZXNgYCBhcmUgbW9zdGx5IHVzZWZ1bCBhcyB0aGUgc2Vjb25kIGFy
Z3VtZW50IHRvIGBgaXNpbnN0YW5jZWBgIG9yCi1gYGlzc3ViY2xhc3NgYC4KLQotCi0uLiBkYXRh
OjogY2xhc3NfdHlwZXMKLQotICAgUG9zc2libGUgY2xhc3MgdHlwZXMuICBJbiBQeXRob24gMiwg
dGhpcyBlbmNvbXBhc3NlcyBvbGQtc3R5bGUgYW5kIG5ldy1zdHlsZQotICAgY2xhc3Nlcy4gIElu
IFB5dGhvbiAzLCB0aGlzIGlzIGp1c3QgbmV3LXN0eWxlcy4KLQotCi0uLiBkYXRhOjogaW50ZWdl
cl90eXBlcwotCi0gICBQb3NzaWJsZSBpbnRlZ2VyIHR5cGVzLiAgSW4gUHl0aG9uIDIsIHRoaXMg
aXMgOmZ1bmM6YHB5Mjpsb25nYCBhbmQKLSAgIDpmdW5jOmBweTI6aW50YCwgYW5kIGluIFB5dGhv
biAzLCBqdXN0IDpmdW5jOmBweTM6aW50YC4KLQotCi0uLiBkYXRhOjogc3RyaW5nX3R5cGVzCi0K
LSAgIFBvc3NpYmxlIHR5cGVzIGZvciB0ZXh0IGRhdGEuICBUaGlzIGlzIDpmdW5jOmBweTI6YmFz
ZXN0cmluZ2AgaW4gUHl0aG9uIDIgYW5kCi0gICA6ZnVuYzpgcHkzOnN0cmAgaW4gUHl0aG9uIDMu
Ci0KLQotLi4gZGF0YTo6IHRleHRfdHlwZQotCi0gICBUeXBlIGZvciByZXByZXNlbnRpbmcgKFVu
aWNvZGUpIHRleHR1YWwgZGF0YS4gIFRoaXMgaXMgOmZ1bmM6YHB5Mjp1bmljb2RlYCBpbgotICAg
UHl0aG9uIDIgYW5kIDpmdW5jOmBweTM6c3RyYCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRhOjog
YmluYXJ5X3R5cGUKLQotICAgVHlwZSBmb3IgcmVwcmVzZW50aW5nIGJpbmFyeSBkYXRhLiAgVGhp
cyBpcyA6ZnVuYzpgcHkyOnN0cmAgaW4gUHl0aG9uIDIgYW5kCi0gICA6ZnVuYzpgcHkzOmJ5dGVz
YCBpbiBQeXRob24gMy4KLQotCi0uLiBkYXRhOjogTUFYU0laRQotCi0gICBUaGUgbWF4aW11bSAg
c2l6ZSBvZiBhICBjb250YWluZXIgbGlrZSA6ZnVuYzpgcHkzOmxpc3RgICBvciA6ZnVuYzpgcHkz
OmRpY3RgLgotICAgVGhpcyAgaXMgIGVxdWl2YWxlbnQgIHRvICA6ZGF0YTpgcHkzOnN5cy5tYXhz
aXplYCBpbiAgUHl0aG9uICAyLjYgIGFuZCAgbGF0ZXIKLSAgIChpbmNsdWRpbmcgMy54KS4gICBO
b3RlLCB0aGlzIGlzIHRlbXB0aW5nbHkgIHNpbWlsYXIgdG8sIGJ1dCBub3QgIHRoZSBzYW1lIGFz
Ci0gICA6ZGF0YTpgcHkyOnN5cy5tYXhpbnRgICBpbiAgUHl0aG9uICAyLiAgIFRoZXJlIGlzICBu
byAgZGlyZWN0ICBlcXVpdmFsZW50ICB0bwotICAgOmRhdGE6YHB5MjpzeXMubWF4aW50YCBpbiAg
UHl0aG9uIDMgIGJlY2F1c2UgaXRzIGludGVnZXIgIHR5cGUgaGFzICBubyBsaW1pdHMKLSAgIGFz
aWRlIGZyb20gbWVtb3J5LgotCi0KLUhlcmUncyBleGFtcGxlIHVzYWdlIG9mIHRoZSBtb2R1bGU6
OgotCi0gICBpbXBvcnQgc2l4Ci0KLSAgIGRlZiBkaXNwYXRjaF90eXBlcyh2YWx1ZSk6Ci0gICAg
ICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc2l4LmludGVnZXJfdHlwZXMpOgotICAgICAgICAgICBo
YW5kbGVfaW50ZWdlcih2YWx1ZSkKLSAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5j
bGFzc190eXBlcyk6Ci0gICAgICAgICAgIGhhbmRsZV9jbGFzcyh2YWx1ZSkKLSAgICAgICBlbGlm
IGlzaW5zdGFuY2UodmFsdWUsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICBoYW5kbGVf
c3RyaW5nKHZhbHVlKQotCi0KLU9iamVjdCBtb2RlbCBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1QeXRob24gMyByZW5hbWVkIHRoZSBhdHRyaWJ1dGVzIG9mIHNl
dmVyYWwgaW50ZXJwcmV0ZXIgZGF0YSBzdHJ1Y3R1cmVzLiAgVGhlCi1mb2xsb3dpbmcgYWNjZXNz
b3JzIGFyZSBhdmFpbGFibGUuICBOb3RlIHRoYXQgdGhlIHJlY29tbWVuZGVkIHdheSB0byBpbnNw
ZWN0Ci1mdW5jdGlvbnMgYW5kIG1ldGhvZHMgaXMgdGhlIHN0ZGxpYiA6bW9kOmBweTM6aW5zcGVj
dGAgbW9kdWxlLgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X3VuYm91bmRfZnVuY3Rpb24obWV0aCkK
LQotICAgR2V0IHRoZSBmdW5jdGlvbiBvdXQgb2YgdW5ib3VuZCBtZXRob2QgKm1ldGgqLiAgSW4g
UHl0aG9uIDMsIHVuYm91bmQgbWV0aG9kcwotICAgZG9uJ3QgZXhpc3QsIHNvIHRoaXMgZnVuY3Rp
b24ganVzdCByZXR1cm5zICptZXRoKiB1bmNoYW5nZWQuICBFeGFtcGxlCi0gICB1c2FnZTo6Ci0K
LSAgICAgIGZyb20gc2l4IGltcG9ydCBnZXRfdW5ib3VuZF9mdW5jdGlvbgotCi0gICAgICBjbGFz
cyBYKG9iamVjdCk6Ci0gICAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKLSAgICAgICAgICAgICAg
cGFzcwotICAgICAgbWV0aG9kX2Z1bmN0aW9uID0gZ2V0X3VuYm91bmRfZnVuY3Rpb24oWC5tZXRo
b2QpCi0KLQotLi4gZnVuY3Rpb246OiBnZXRfbWV0aG9kX2Z1bmN0aW9uKG1ldGgpCi0KLSAgIEdl
dCB0aGUgZnVuY3Rpb24gb3V0IG9mIG1ldGhvZCBvYmplY3QgKm1ldGgqLgotCi0KLS4uIGZ1bmN0
aW9uOjogZ2V0X21ldGhvZF9zZWxmKG1ldGgpCi0KLSAgIEdldCB0aGUgYGBzZWxmYGAgb2YgYm91
bmQgbWV0aG9kICptZXRoKi4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9jbG9zdXJl
KGZ1bmMpCi0KLSAgIEdldCB0aGUgY2xvc3VyZSAobGlzdCBvZiBjZWxscykgYXNzb2NpYXRlZCB3
aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudAotICAgdG8gYGBmdW5jLl9fY2xvc3VyZV9f
YGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2Nsb3N1cmVgYCBvbiBQeXRob24KLSAg
IDIuNS4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9jb2RlKGZ1bmMpCi0KLSAgIEdl
dCB0aGUgY29kZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZh
bGVudCB0bwotICAgYGBmdW5jLl9fY29kZV9fYGAgb24gUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5m
dW5jX2NvZGVgYCBvbiBQeXRob24gMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X2Z1bmN0aW9u
X2RlZmF1bHRzKGZ1bmMpCi0KLSAgIEdldCB0aGUgZGVmYXVsdHMgdHVwbGUgYXNzb2NpYXRlZCB3
aXRoICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgYGBmdW5jLl9fZGVmYXVsdHNf
X2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19kZWZhdWx0c2BgIG9uIFB5dGhvbgot
ICAgMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X2Z1bmN0aW9uX2dsb2JhbHMoZnVuYykKLQot
ICAgR2V0IHRoZSBnbG9iYWxzIG9mICpmdW5jKi4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgYGZ1
bmMuX19nbG9iYWxzX19gYCBvbgotICAgUHl0aG9uIDIuNisgYW5kIGBgZnVuYy5mdW5jX2dsb2Jh
bHNgYCBvbiBQeXRob24gMi41LgotCi0KLS4uIGZ1bmN0aW9uOjogbmV4dChpdCkKLSAgICAgICAg
ICAgICAgYWR2YW5jZV9pdGVyYXRvcihpdCkKLQotICAgR2V0IHRoZSBuZXh0IGl0ZW0gb2YgaXRl
cmF0b3IgKml0Ki4gIDpleGM6YHB5MzpTdG9wSXRlcmF0aW9uYCBpcyByYWlzZWQgaWYKLSAgIHRo
ZSBpdGVyYXRvciBpcyBleGhhdXN0ZWQuICBUaGlzIGlzIGEgcmVwbGFjZW1lbnQgZm9yIGNhbGxp
bmcgYGBpdC5uZXh0KClgYAotICAgaW4gUHl0aG9uIDIgYW5kIGBgbmV4dChpdClgYCBpbiBQeXRo
b24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGNhbGxhYmxlKG9iaikKLQotICAgQ2hlY2sgaWYgKm9i
aiogY2FuIGJlIGNhbGxlZC4gIE5vdGUgYGBjYWxsYWJsZWBgIGhhcyByZXR1cm5lZCBpbiBQeXRo
b24gMy4yLAotICAgc28gdXNpbmcgc2l4J3MgdmVyc2lvbiBpcyBvbmx5IG5lY2Vzc2FyeSB3aGVu
IHN1cHBvcnRpbmcgUHl0aG9uIDMuMCBvciAzLjEuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVya2V5
cyhkaWN0aW9uYXJ5LCAqKmt3YXJncykKLQotICAgUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyICpk
aWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcmtl
eXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkua2V5cygpYGAgb24KLSAgIFB5dGhv
biAzLiAgKmt3YXJncyogYXJlIHBhc3NlZCB0aHJvdWdoIHRvIHRoZSB1bmRlcmx5aW5nIG1ldGhv
ZC4KLQotCi0uLiBmdW5jdGlvbjo6IGl0ZXJ2YWx1ZXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0K
LSAgIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3MgdmFsdWVzLiBUaGlz
IHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcnZhbHVlcygpYGAgb24gUHl0aG9uIDIgYW5k
IGBgZGljdGlvbmFyeS52YWx1ZXMoKWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBw
YXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246
OiBpdGVyaXRlbXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAgIFJldHVybnMgYW4gaXRlcmF0
b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRlbXMuIFRoaXMgcmVwbGFjZXMKLSAgIGBgZGljdGlv
bmFyeS5pdGVyaXRlbXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkuaXRlbXMoKWBg
IG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5k
ZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVybGlzdHMoZGljdGlvbmFyeSwg
Kiprd2FyZ3MpCi0KLSAgIENhbGxzIGBgZGljdGlvbmFyeS5pdGVybGlzdHMoKWBgIG9uIFB5dGhv
biAyIGFuZCBgYGRpY3Rpb25hcnkubGlzdHMoKWBgIG9uCi0gICBQeXRob24gMy4gIE5vIGJ1aWx0
aW4gUHl0aG9uIG1hcHBpbmcgdHlwZSBoYXMgc3VjaCBhIG1ldGhvZDsgdGhpcyBtZXRob2QgaXMK
LSAgIGludGVuZGVkIGZvciB1c2Ugd2l0aCBtdWx0aS12YWx1ZWQgZGljdGlvbmFyaWVzIGxpa2Ug
YFdlcmt6ZXVnJ3MKLSAgIDxodHRwOi8vd2Vya3pldWcucG9jb28ub3JnL2RvY3MvZGF0YXN0cnVj
dHVyZXMvI3dlcmt6ZXVnLmRhdGFzdHJ1Y3R1cmVzLk11bHRpRGljdD5gXy4KLSAgICprd2FyZ3Mq
IGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVu
Y3Rpb246OiB2aWV3a2V5cyhkaWN0aW9uYXJ5KQotCi0gICBSZXR1cm4gYSB2aWV3IG92ZXIgKmRp
Y3Rpb25hcnkqXCdzIGtleXMuIFRoaXMgcmVwbGFjZXMKLSAgIDptZXRoOmBweTI6ZGljdC52aWV3
a2V5c2Agb24gUHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0LmtleXNgIG9uCi0gICBQeXRo
b24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IHZpZXd2YWx1ZXMoZGljdGlvbmFyeSkKLQotICAgUmV0
dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyB2YWx1ZXMuIFRoaXMgcmVwbGFjZXMKLSAg
IDptZXRoOmBweTI6ZGljdC52aWV3dmFsdWVzYCBvbiBQeXRob24gMi43IGFuZCA6bWV0aDpgcHkz
OmRpY3QudmFsdWVzYCBvbgotICAgUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3aXRl
bXMoZGljdGlvbmFyeSkKLQotICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyBp
dGVtcy4gVGhpcyByZXBsYWNlcwotICAgOm1ldGg6YHB5MjpkaWN0LnZpZXdpdGVtc2Agb24gUHl0
aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0Lml0ZW1zYCBvbgotICAgUHl0aG9uIDMuCi0KLQot
Li4gZnVuY3Rpb246OiBjcmVhdGVfYm91bmRfbWV0aG9kKGZ1bmMsIG9iaikKLQotICAgUmV0dXJu
IGEgbWV0aG9kIG9iamVjdCB3cmFwcGluZyAqZnVuYyogYW5kIGJvdW5kIHRvICpvYmoqLiAgT24g
Ym90aCBQeXRob24gMgotICAgYW5kIDMsIHRoaXMgd2lsbCByZXR1cm4gYSA6ZnVuYzpgcHkzOnR5
cGVzLk1ldGhvZFR5cGVgIG9iamVjdC4gIFRoZSByZWFzb24KLSAgIHRoaXMgd3JhcHBlciBleGlz
dHMgaXMgdGhhdCBvbiBQeXRob24gMiwgdGhlIGBgTWV0aG9kVHlwZWBgIGNvbnN0cnVjdG9yCi0g
ICByZXF1aXJlcyB0aGUgKm9iaioncyBjbGFzcyB0byBiZSBwYXNzZWQuCi0KLQotLi4gY2xhc3M6
OiBJdGVyYXRvcgotCi0gICBBIGNsYXNzIGZvciBtYWtpbmcgcG9ydGFibGUgaXRlcmF0b3JzLiBU
aGUgaW50ZW50aW9uIGlzIHRoYXQgaXQgYmUgc3ViY2xhc3NlZAotICAgYW5kIHN1YmNsYXNzZXMg
cHJvdmlkZSBhIGBgX19uZXh0X19gYCBtZXRob2QuIEluIFB5dGhvbiAyLCA6Y2xhc3M6YEl0ZXJh
dG9yYAotICAgaGFzIG9uZSBtZXRob2Q6IGBgbmV4dGBgLiBJdCBzaW1wbHkgZGVsZWdhdGVzIHRv
IGBgX19uZXh0X19gYC4gQW4gYWx0ZXJuYXRlCi0gICB3YXkgdG8gZG8gdGhpcyB3b3VsZCBiZSB0
byBzaW1wbHkgYWxpYXMgYGBuZXh0YGAgdG8gYGBfX25leHRfX2BgLiBIb3dldmVyLAotICAgdGhp
cyBpbnRlcmFjdHMgYmFkbHkgd2l0aCBzdWJjbGFzc2VzIHRoYXQgb3ZlcnJpZGUKLSAgIGBgX19u
ZXh0X19gYC4gOmNsYXNzOmBJdGVyYXRvcmAgaXMgZW1wdHkgb24gUHl0aG9uIDMuIChJbiBmYWN0
LCBpdCBpcyBqdXN0Ci0gICBhbGlhc2VkIHRvIDpjbGFzczpgcHkzOm9iamVjdGAuKQotCi0KLS4u
IGZ1bmN0aW9uOjogd3JhcHMod3JhcHBlZCwgYXNzaWduZWQ9ZnVuY3Rvb2xzLldSQVBQRVJfQVNT
SUdOTUVOVFMsIHVwZGF0ZWQ9ZnVuY3Rvb2xzLldSQVBQRVJfVVBEQVRFUykKLQotICAgVGhpcyBp
cyBleGFjdGx5IHRoZSA6ZnVuYzpgcHkzOmZ1bmN0b29scy53cmFwc2AgZGVjb3JhdG9yLCBidXQg
aXQgc2V0cyB0aGUKLSAgIGBgX193cmFwcGVkX19gYCBhdHRyaWJ1dGUgb24gd2hhdCBpdCBkZWNv
cmF0ZXMgYXMgOmZ1bmM6YHB5MzpmdW5jdG9vbHMud3JhcHNgCi0gICBkb2VzIG9uIFB5dGhvbiB2
ZXJzaW9ucyBhZnRlciAzLjIuCi0KLQotU3ludGF4IGNvbXBhdGliaWxpdHkKLT4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+Ci0KLVRoZXNlIGZ1bmN0aW9ucyBzbW9vdGggb3ZlciBvcGVyYXRpb25zIHdoaWNo
IGhhdmUgZGlmZmVyZW50IHN5bnRheGVzIGJldHdlZW4KLVB5dGhvbiAyIGFuZCAzLgotCi0KLS4u
IGZ1bmN0aW9uOjogZXhlY18oY29kZSwgZ2xvYmFscz1Ob25lLCBsb2NhbHM9Tm9uZSkKLQotICAg
RXhlY3V0ZSAqY29kZSogaW4gdGhlIHNjb3BlIG9mICpnbG9iYWxzKiBhbmQgKmxvY2FscyouICAq
Y29kZSogY2FuIGJlIGEKLSAgIHN0cmluZyBvciBhIGNvZGUgb2JqZWN0LiAgSWYgKmdsb2JhbHMq
IG9yICpsb2NhbHMqIGFyZSBub3QgZ2l2ZW4sIHRoZXkgd2lsbAotICAgZGVmYXVsdCB0byB0aGUg
c2NvcGUgb2YgdGhlIGNhbGxlci4gIElmIGp1c3QgKmdsb2JhbHMqIGlzIGdpdmVuLCBpdCB3aWxs
IGFsc28KLSAgIGJlIHVzZWQgYXMgKmxvY2FscyouCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBQ
eXRob24gMydzIDpmdW5jOmBweTM6ZXhlY2AgZG9lc24ndCB0YWtlIGtleXdvcmQgYXJndW1lbnRz
LCBzbyBjYWxsaW5nCi0gICAgICA6ZnVuYzpgZXhlY2Agd2l0aCB0aGVtIHNob3VsZCBiZSBhdm9p
ZGVkLgotCi0KLS4uIGZ1bmN0aW9uOjogcHJpbnRfKCphcmdzLCAqLCBmaWxlPXN5cy5zdGRvdXQs
IGVuZD0iXFxuIiwgc2VwPSIgIikKLQotICAgUHJpbnQgKmFyZ3MqIGludG8gKmZpbGUqLiAgRWFj
aCBhcmd1bWVudCB3aWxsIGJlIHNlcGFyYXRlZCB3aXRoICpzZXAqIGFuZAotICAgKmVuZCogd2ls
bCBiZSB3cml0dGVuIHRvIHRoZSBmaWxlIGFmdGVyIHRoZSBsYXN0IGFyZ3VtZW50IGlzIHByaW50
ZWQuCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBJbiBQeXRob24gMiwgdGhpcyBmdW5jdGlvbiBp
bWl0YXRlcyBQeXRob24gMydzIDpmdW5jOmBweTM6cHJpbnRgIGJ5IG5vdAotICAgICAgaGF2aW5n
IHNvZnRzcGFjZSBzdXBwb3J0LiAgSWYgeW91IGRvbid0IGtub3cgd2hhdCB0aGF0IGlzLCB5b3Un
cmUgcHJvYmFibHkKLSAgICAgIG9rLiA6KQotCi0KLS4uIGZ1bmN0aW9uOjogcmFpc2VfZnJvbShl
eGNfdmFsdWUsIGV4Y192YWx1ZV9mcm9tKQotCi0gICBSYWlzZSBhbiBleGNlcHRpb24gZnJvbSBh
IGNvbnRleHQuICBPbiBQeXRob24gMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvCi0gICBgYHJhaXNl
IGV4Y192YWx1ZSBmcm9tIGV4Y192YWx1ZV9mcm9tYGAuICBPbiBQeXRob24gMiwgd2hpY2ggZG9l
cyBub3Qgc3VwcG9ydAotICAgZXhjZXB0aW9uIGNoYWluaW5nLCBpdCBpcyBlcXVpdmFsZW50IHRv
IGBgcmFpc2UgZXhjX3ZhbHVlYGAuCi0KLQotLi4gZnVuY3Rpb246OiByZXJhaXNlKGV4Y190eXBl
LCBleGNfdmFsdWUsIGV4Y190cmFjZWJhY2s9Tm9uZSkKLQotICAgUmVyYWlzZSBhbiBleGNlcHRp
b24sIHBvc3NpYmx5IHdpdGggYSBkaWZmZXJlbnQgdHJhY2ViYWNrLiAgSW4gdGhlIHNpbXBsZQot
ICAgY2FzZSwgYGByZXJhaXNlKCpzeXMuZXhjX2luZm8oKSlgYCB3aXRoIGFuIGFjdGl2ZSBleGNl
cHRpb24gKGluIGFuIGV4Y2VwdAotICAgYmxvY2spIHJlcmFpc2VzIHRoZSBjdXJyZW50IGV4Y2Vw
dGlvbiB3aXRoIHRoZSBsYXN0IHRyYWNlYmFjay4gIEEgZGlmZmVyZW50Ci0gICB0cmFjZWJhY2sg
Y2FuIGJlIHNwZWNpZmllZCB3aXRoIHRoZSAqZXhjX3RyYWNlYmFjayogcGFyYW1ldGVyLiAgTm90
ZSB0aGF0Ci0gICBzaW5jZSB0aGUgZXhjZXB0aW9uIHJlcmFpc2luZyBpcyBkb25lIHdpdGhpbiB0
aGUgOmZ1bmM6YHJlcmFpc2VgIGZ1bmN0aW9uLAotICAgUHl0aG9uIHdpbGwgYXR0YWNoIHRoZSBj
YWxsIGZyYW1lIG9mIDpmdW5jOmByZXJhaXNlYCB0byB3aGF0ZXZlciB0cmFjZWJhY2sgaXMKLSAg
IHJhaXNlZC4KLQotCi0uLiBmdW5jdGlvbjo6IHdpdGhfbWV0YWNsYXNzKG1ldGFjbGFzcywgKmJh
c2VzKQotCi0gICBDcmVhdGUgYSBuZXcgY2xhc3Mgd2l0aCBiYXNlIGNsYXNzZXMgKmJhc2VzKiBh
bmQgbWV0YWNsYXNzICptZXRhY2xhc3MqLiAgVGhpcwotICAgaXMgZGVzaWduZWQgdG8gYmUgdXNl
ZCBpbiBjbGFzcyBkZWNsYXJhdGlvbnMgbGlrZSB0aGlzOiA6OgotCi0gICAgICBmcm9tIHNpeCBp
bXBvcnQgd2l0aF9tZXRhY2xhc3MKLQotICAgICAgY2xhc3MgTWV0YSh0eXBlKToKLSAgICAgICAg
ICBwYXNzCi0KLSAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKLSAgICAgICAgICBwYXNzCi0KLSAg
ICAgIGNsYXNzIE15Q2xhc3Mod2l0aF9tZXRhY2xhc3MoTWV0YSwgQmFzZSkpOgotICAgICAgICAg
IHBhc3MKLQotICAgQW5vdGhlciB3YXkgdG8gc2V0IGEgbWV0YWNsYXNzIG9uIGEgY2xhc3MgaXMg
d2l0aCB0aGUgOmZ1bmM6YGFkZF9tZXRhY2xhc3NgCi0gICBkZWNvcmF0b3IuCi0KLQotLi4gZnVu
Y3Rpb246OiBhZGRfbWV0YWNsYXNzKG1ldGFjbGFzcykKLQotICAgQ2xhc3MgZGVjb3JhdG9yIHRo
YXQgcmVwbGFjZXMgYSBub3JtYWxseS1jb25zdHJ1Y3RlZCBjbGFzcyB3aXRoIGEKLSAgIG1ldGFj
bGFzcy1jb25zdHJ1Y3RlZCBvbmUuICBFeGFtcGxlIHVzYWdlOiA6OgotCi0gICAgICAgQGFkZF9t
ZXRhY2xhc3MoTWV0YSkKLSAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6Ci0gICAgICAgICAg
IHBhc3MKLQotICAgVGhhdCBjb2RlIHByb2R1Y2VzIGEgY2xhc3MgZXF1aXZhbGVudCB0byA6Ogot
Ci0gICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QsIG1ldGFjbGFzcz1NZXRhKToKLSAgICAgICAg
ICAgcGFzcwotCi0gICBvbiBQeXRob24gMyBvciA6OgotCi0gICAgICAgY2xhc3MgTXlDbGFzcyhv
YmplY3QpOgotICAgICAgICAgICBfX21ldGFjbGFzc19fID0gTXlNZXRhCi0KLSAgIG9uIFB5dGhv
biAyLgotCi0gICBOb3RlIHRoYXQgY2xhc3MgZGVjb3JhdG9ycyByZXF1aXJlIFB5dGhvbiAyLjYu
IEhvd2V2ZXIsIHRoZSBlZmZlY3Qgb2YgdGhlCi0gICBkZWNvcmF0b3IgY2FuIGJlIGVtdWxhdGVk
IG9uIFB5dGhvbiAyLjUgbGlrZSBzbzo6Ci0KLSAgICAgICBjbGFzcyBNeUNsYXNzKG9iamVjdCk6
Ci0gICAgICAgICAgIHBhc3MKLSAgICAgICBNeUNsYXNzID0gYWRkX21ldGFjbGFzcyhNZXRhKShN
eUNsYXNzKQotCi0KLUJpbmFyeSBhbmQgdGV4dCBkYXRhCi0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgot
Ci1QeXRob24gMyBlbmZvcmNlcyB0aGUgZGlzdGluY3Rpb24gYmV0d2VlbiBieXRlIHN0cmluZ3Mg
YW5kIHRleHQgc3RyaW5ncyBmYXIgbW9yZQotcmlnb3Jpb3VzbHkgdGhhbiBQeXRob24gMiBkb2Vz
OyBiaW5hcnkgZGF0YSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb2VyY2VkIHRvCi1vciBmcm9t
IHRleHQgZGF0YS4gIHNpeCBwcm92aWRlcyBzZXZlcmFsIGZ1bmN0aW9ucyB0byBhc3Npc3QgaW4g
Y2xhc3NpZnlpbmcKLXN0cmluZyBkYXRhIGluIGFsbCBQeXRob24gdmVyc2lvbnMuCi0KLQotLi4g
ZnVuY3Rpb246OiBiKGRhdGEpCi0KLSAgIEEgImZha2UiIGJ5dGVzIGxpdGVyYWwuICAqZGF0YSog
c2hvdWxkIGFsd2F5cyBiZSBhIG5vcm1hbCBzdHJpbmcgbGl0ZXJhbC4gIEluCi0gICBQeXRob24g
MiwgOmZ1bmM6YGJgIHJldHVybnMgYSA4LWJpdCBzdHJpbmcuICBJbiBQeXRob24gMywgKmRhdGEq
IGlzIGVuY29kZWQKLSAgIHdpdGggdGhlIGxhdGluLTEgZW5jb2RpbmcgdG8gYnl0ZXMuCi0KLQot
ICAgLi4gbm90ZTo6Ci0KLSAgICAgIFNpbmNlIGFsbCBQeXRob24gdmVyc2lvbnMgMi42IGFuZCBh
ZnRlciBzdXBwb3J0IHRoZSBgYGJgYCBwcmVmaXgsCi0gICAgICA6ZnVuYzpgYmAsIGNvZGUgd2l0
aG91dCAyLjUgc3VwcG9ydCBkb2Vzbid0IG5lZWQgOmZ1bmM6YGJgLgotCi0KLS4uIGZ1bmN0aW9u
OjogdSh0ZXh0KQotCi0gICBBICJmYWtlIiB1bmljb2RlIGxpdGVyYWwuICAqdGV4dCogc2hvdWxk
IGFsd2F5cyBiZSBhIG5vcm1hbCBzdHJpbmcgbGl0ZXJhbC4KLSAgIEluIFB5dGhvbiAyLCA6ZnVu
YzpgdWAgcmV0dXJucyB1bmljb2RlLCBhbmQgaW4gUHl0aG9uIDMsIGEgc3RyaW5nLiAgQWxzbywg
aW4KLSAgIFB5dGhvbiAyLCB0aGUgc3RyaW5nIGlzIGRlY29kZWQgd2l0aCB0aGUgYGB1bmljb2Rl
LWVzY2FwZWBgIGNvZGVjLCB3aGljaAotICAgYWxsb3dzIHVuaWNvZGUgZXNjYXBlcyB0byBiZSB1
c2VkIGluIGl0LgotCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBJbiBQeXRob24gMy4zLCB0aGUg
YGB1YGAgcHJlZml4IGhhcyBiZWVuIHJlaW50cm9kdWNlZC4gQ29kZSB0aGF0IG9ubHkKLSAgICAg
IHN1cHBvcnRzIFB5dGhvbiAzIHZlcnNpb25zIGdyZWF0ZXIgdGhhbiAzLjMgdGh1cyBkb2VzIG5v
dCBuZWVkCi0gICAgICA6ZnVuYzpgdWAuCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBPbiBQeXRo
b24gMiwgOmZ1bmM6YHVgIGRvZXNuJ3Qga25vdyB3aGF0IHRoZSBlbmNvZGluZyBvZiB0aGUgbGl0
ZXJhbAotICAgICAgaXMuIEVhY2ggYnl0ZSBpcyBjb252ZXJ0ZWQgZGlyZWN0bHkgdG8gdGhlIHVu
aWNvZGUgY29kZXBvaW50IG9mIHRoZSBzYW1lCi0gICAgICB2YWx1ZS4gQmVjYXVzZSBvZiB0aGlz
LCBpdCdzIG9ubHkgc2FmZSB0byB1c2UgOmZ1bmM6YHVgIHdpdGggc3RyaW5ncyBvZgotICAgICAg
QVNDSUkgZGF0YS4KLQotCi0uLiBmdW5jdGlvbjo6IHVuaWNocihjKQotCi0gICBSZXR1cm4gdGhl
IChVbmljb2RlKSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb2RlcG9pbnQgKmMqLiAgVGhpcyBp
cwotICAgZXF1aXZhbGVudCB0byA6ZnVuYzpgcHkyOnVuaWNocmAgb24gUHl0aG9uIDIgYW5kIDpm
dW5jOmBweTM6Y2hyYCBvbiBQeXRob24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGludDJieXRlKGkp
Ci0KLSAgIENvbnZlcnRzICppKiB0byBhIGJ5dGUuICAqaSogbXVzdCBiZSBpbiBgYHJhbmdlKDAs
IDI1NilgYC4gIFRoaXMgaXMKLSAgIGVxdWl2YWxlbnQgdG8gOmZ1bmM6YHB5MjpjaHJgIGluIFB5
dGhvbiAyIGFuZCBgYGJ5dGVzKChpLCkpYGAgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246
OiBieXRlMmludChicykKLQotICAgQ29udmVydHMgdGhlIGZpcnN0IGJ5dGUgb2YgKmJzKiB0byBh
biBpbnRlZ2VyLiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCi0gICBgYG9yZChic1swXSlgYCBvbiBQ
eXRob24gMiBhbmQgYGBic1swXWBgIG9uIFB5dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogaW5k
ZXhieXRlcyhidWYsIGkpCi0KLSAgIFJldHVybiB0aGUgYnl0ZSBhdCBpbmRleCAqaSogb2YgKmJ1
ZiogYXMgYW4gaW50ZWdlci4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgaW5kZXhpbmcgYSBi
eXRlcyBvYmplY3QgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVyYnl0ZXMoYnVm
KQotCi0gICBSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciBieXRlcyBpbiAqYnVmKiBhcyBpbnRlZ2Vy
cy4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bwotICAgYSBieXRlcyBvYmplY3QgaXRlcmF0b3IgaW4g
UHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IFN0cmluZ0lPCi0KLSAgIFRoaXMgaXMgYW4gZmFrZSBm
aWxlIG9iamVjdCBmb3IgdGV4dHVhbCBkYXRhLiAgSXQncyBhbiBhbGlhcyBmb3IKLSAgIDpjbGFz
czpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCBpbiBQeXRob24gMiBhbmQgOmNsYXNzOmBweTM6aW8u
U3RyaW5nSU9gIGluCi0gICBQeXRob24gMy4KLQotCi0uLiBkYXRhOjogQnl0ZXNJTwotCi0gICBU
aGlzIGlzIGEgZmFrZSBmaWxlIG9iamVjdCBmb3IgYmluYXJ5IGRhdGEuICBJbiBQeXRob24gMiwg
aXQncyBhbiBhbGlhcyBmb3IKLSAgIDpjbGFzczpgcHkyOlN0cmluZ0lPLlN0cmluZ0lPYCwgYnV0
IGluIFB5dGhvbiAzLCBpdCdzIGFuIGFsaWFzIGZvcgotICAgOmNsYXNzOmBweTM6aW8uQnl0ZXNJ
T2AuCi0KLQotUmVuYW1lZCBtb2R1bGVzIGFuZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkKLT4+
Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ci0KLS4uIG1vZHVsZTo6
IHNpeC5tb3ZlcwotICAgOnN5bm9wc2lzOiBSZW5hbWVkIG1vZHVsZXMgYW5kIGF0dHJpYnV0ZXMg
Y29tcGF0aWJpbGl0eQotCi1QeXRob24gMyByZW9yZ2FuaXplZCB0aGUgc3RhbmRhcmQgbGlicmFy
eSBhbmQgbW92ZWQgc2V2ZXJhbCBmdW5jdGlvbnMgdG8KLWRpZmZlcmVudCBtb2R1bGVzLiAgU2l4
IHByb3ZpZGVzIGEgY29uc2lzdGVudCBpbnRlcmZhY2UgdG8gdGhlbSB0aHJvdWdoIHRoZSBmYWtl
Ci06bW9kOmBzaXgubW92ZXNgIG1vZHVsZS4gIEZvciBleGFtcGxlLCB0byBsb2FkIHRoZSBtb2R1
bGUgZm9yIHBhcnNpbmcgSFRNTCBvbgotUHl0aG9uIDIgb3IgMywgd3JpdGU6OgotCi0gICBmcm9t
IHNpeC5tb3ZlcyBpbXBvcnQgaHRtbF9wYXJzZXIKLQotU2ltaWxhcmx5LCB0byBnZXQgdGhlIGZ1
bmN0aW9uIHRvIHJlbG9hZCBtb2R1bGVzLCB3aGljaCB3YXMgbW92ZWQgZnJvbSB0aGUKLWJ1aWx0
aW4gbW9kdWxlIHRvIHRoZSBgYGltcGBgIG1vZHVsZSwgdXNlOjoKLQotICAgZnJvbSBzaXgubW92
ZXMgaW1wb3J0IHJlbG9hZF9tb2R1bGUKLQotRm9yIHRoZSBtb3N0IHBhcnQsIDptb2Q6YHNpeC5t
b3Zlc2AgYWxpYXNlcyBhcmUgdGhlIG5hbWVzIG9mIHRoZSBtb2R1bGVzIGluCi1QeXRob24gMy4g
IFdoZW4gdGhlIG5ldyBQeXRob24gMyBuYW1lIGlzIGEgcGFja2FnZSwgdGhlIGNvbXBvbmVudHMg
b2YgdGhlIG5hbWUKLWFyZSBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZXMuICBGb3IgZXhhbXBsZSwg
YGBodG1sLnBhcnNlcmBgIGJlY29tZXMKLWBgaHRtbF9wYXJzZXJgYC4gIEluIHNvbWUgY2FzZXMg
d2hlcmUgc2V2ZXJhbCBtb2R1bGVzIGhhdmUgYmVlbiBjb21iaW5lZCwgdGhlCi1QeXRob24gMiBu
YW1lIGlzIHJldGFpbmVkLiAgVGhpcyBpcyBzbyB0aGUgYXBwcm9wcmlhdGUgbW9kdWxlcyBjYW4g
YmUgZm91bmQgd2hlbgotcnVubmluZyBvbiBQeXRob24gMi4gIEZvciBleGFtcGxlLCBgYEJhc2VI
VFRQU2VydmVyYGAgd2hpY2ggaXMgaW4KLWBgaHR0cC5zZXJ2ZXJgYCBpbiBQeXRob24gMyBpcyBh
bGlhc2VkIGFzIGBgQmFzZUhUVFBTZXJ2ZXJgYC4KLQotU29tZSBtb2R1bGVzIHdoaWNoIGhhZCB0
d28gaW1wbGVtZW50YXRpb25zIGhhdmUgYmVlbiBtZXJnZWQgaW4gUHl0aG9uIDMuICBGb3IKLWV4
YW1wbGUsIGBgY1BpY2tsZWBgIG5vIGxvbmdlciBleGlzdHMgaW4gUHl0aG9uIDM7IGl0IHdhcyBt
ZXJnZWQgd2l0aAotYGBwaWNrbGVgYC4gIEluIHRoZXNlIGNhc2VzLCBmZXRjaGluZyB0aGUgZmFz
dCB2ZXJzaW9uIHdpbGwgbG9hZCB0aGUgZmFzdCBvbmUgb24KLVB5dGhvbiAyIGFuZCB0aGUgbWVy
Z2VkIG1vZHVsZSBpbiBQeXRob24gMy4KLQotVGhlIDptb2Q6YHB5Mjp1cmxsaWJgLCA6bW9kOmBw
eTI6dXJsbGliMmAsIGFuZCA6bW9kOmBweTI6dXJscGFyc2VgIG1vZHVsZXMgaGF2ZQotYmVlbiBj
b21iaW5lZCBpbiB0aGUgOm1vZDpgcHkzOnVybGxpYmAgcGFja2FnZSBpbiBQeXRob24gMy4gIFRo
ZQotOm1vZDpgc2l4Lm1vdmVzLnVybGxpYmAgcGFja2FnZSBpcyBhIHZlcnNpb24taW5kZXBlbmRl
bnQgbG9jYXRpb24gZm9yIHRoaXMKLWZ1bmN0aW9uYWxpdHk7IGl0cyBzdHJ1Y3R1cmUgbWltaWNz
IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFB5dGhvbiAzCi06bW9kOmBweTM6dXJsbGliYCBwYWNrYWdl
LgotCi0uLiBub3RlOjoKLQotICAgSW4gb3JkZXIgdG8gbWFrZSBpbXBvcnRzIG9mIHRoZSBmb3Jt
OjoKLQotICAgICBmcm9tIHNpeC5tb3Zlcy5jUGlja2xlIGltcG9ydCBsb2FkcwotCi0gICB3b3Jr
LCBzaXggcGxhY2VzIHNwZWNpYWwgcHJveHkgb2JqZWN0cyBpbiBpbiA6ZGF0YTpgcHkzOnN5cy5t
b2R1bGVzYC4gVGhlc2UKLSAgIHByb3hpZXMgbGF6aWx5IGxvYWQgdGhlIHVuZGVybHlpbmcgbW9k
dWxlIHdoZW4gYW4gYXR0cmlidXRlIGlzIGZldGNoZWQuIFRoaXMKLSAgIHdpbGwgZmFpbCBpZiB0
aGUgdW5kZXJseWluZyBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgUHl0aG9uCi0gICBp
bnRlcnByZXRlci4gRm9yIGV4YW1wbGUsIGBgc3lzLm1vZHVsZXNbInNpeC5tb3Zlcy53aW5yZWci
XS5Mb2FkS2V5YGAgd291bGQKLSAgIGZhaWwgb24gYW55IG5vbi1XaW5kb3dzIHBsYXRmb3JtLiBV
bmZvcnR1bmF0ZWx5LCBzb21lIGFwcGxpY2F0aW9ucyB0cnkgdG8KLSAgIGxvYWQgYXR0cmlidXRl
cyBvbiBldmVyeSBtb2R1bGUgaW4gOmRhdGE6YHB5MzpzeXMubW9kdWxlc2AuIHNpeCBtaXRpZ2F0
ZXMKLSAgIHRoaXMgcHJvYmxlbSBmb3Igc29tZSBhcHBsaWNhdGlvbnMgYnkgcHJldGVuZGluZyBh
dHRyaWJ1dGVzIG9uIHVuaW1wb3J0YWJsZQotICAgbW9kdWxlcyBkb24ndCBleGlzdC4gVGhpcyBo
YWNrIGRvZXNuJ3Qgd29yayBpbiBldmVyeSBjYXNlLCB0aG91Z2guIElmIHlvdSBhcmUKLSAgIGVu
Y291bnRlcmluZyBwcm9ibGVtcyB3aXRoIHRoZSBsYXp5IG1vZHVsZXMgYW5kIGRvbid0IHVzZSBh
bnkgZnJvbSBpbXBvcnRzCi0gICBkaXJlY3RseSBmcm9tIGBgc2l4Lm1vdmVzYGAgbW9kdWxlcywg
eW91IGNhbiB3b3JrYXJvdW5kIHRoZSBpc3N1ZSBieSByZW1vdmluZwotICAgdGhlIHNpeCBwcm94
eSBtb2R1bGVzOjoKLQotICAgICBkID0gW25hbWUgZm9yIG5hbWUgaW4gc3lzLm1vZHVsZXMgaWYg
bmFtZS5zdGFydHN3aXRoKCJzaXgubW92ZXMuIildCi0gICAgIGZvciBuYW1lIGluIGQ6Ci0gICAg
ICAgICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0KLQotU3VwcG9ydGVkIHJlbmFtZXM6Ci0KLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBOYW1lICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgUHl0aG9uIDIgbmFtZSAgICAgICAgICAgICAgICAgICAg
ICAgfCBQeXRob24gMyBuYW1lICAgICAgICAgICAgICAgICAgICAgICB8Ci0rPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0r
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKLXwgYGBidWlsdGluc2BgICAg
ICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpfX2J1aWx0aW5fX2AgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkzOmJ1aWx0aW5zYCAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgY29uZmlncGFyc2VyYGAgICAgICAg
ICAgICAgfCA6bW9kOmBweTI6Q29uZmlnUGFyc2VyYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzpj
b25maWdwYXJzZXJgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGNvcHlyZWdgYCAgICAgICAgICAgICAgICAgIHwg
Om1vZDpgcHkyOmNvcHlfcmVnYCAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6Y29weXJlZ2Ag
ICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGBjUGlja2xlYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5
MjpjUGlja2xlYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnBpY2tsZWAgICAgICAgICAg
ICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgY1N0cmluZ0lPYGAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOmNTdHJp
bmdJTy5TdHJpbmdJT2AgICAgICB8IDpjbGFzczpgcHkzOmlvLlN0cmluZ0lPYCAgICAgICAgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYGRibV9nbnVgYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpnZGJtYCAgICAgICAg
ICAgICAgICAgICAgfCA6Y2xhc3M6YHB5MzpkYm0uZ251YCAgICAgICAgICAgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBfZHVt
bXlfdGhyZWFkYGAgICAgICAgICAgICB8IDptb2Q6YHB5MjpkdW1teV90aHJlYWRgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkzOl9kdW1teV90aHJlYWRgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZW1haWxfbWltZV9t
dWx0aXBhcnRgYCAgICAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRU11bHRpcGFydGAgICAgICB8IDpt
b2Q6YHB5MzplbWFpbC5taW1lLm11bHRpcGFydGAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGVtYWlsX21pbWVfbm9ubXVsdGlw
YXJ0YGAgIHwgOm1vZDpgcHkyOmVtYWlsLk1JTUVOb25NdWx0aXBhcnRgICAgfCA6bW9kOmBweTM6
ZW1haWwubWltZS5ub25tdWx0aXBhcnRgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBlbWFpbF9taW1lX3RleHRgYCAgICAgICAgICB8
IDptb2Q6YHB5MjplbWFpbC5NSU1FVGV4dGAgICAgICAgICAgIHwgOm1vZDpgcHkzOmVtYWlsLm1p
bWUudGV4dGAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCi18IGBgZW1haWxfbWltZV9iYXNlYGAgICAgICAgICAgfCA6bW9kOmBw
eTI6ZW1haWwuTUlNRUJhc2VgICAgICAgICAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLmJhc2Vg
ICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKwotfCBgYGZpbHRlcmBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVy
dG9vbHMuaWZpbHRlcmAgICAgICAgfCA6ZnVuYzpgcHkzOmZpbHRlcmAgICAgICAgICAgICAgICAg
ICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
LXwgYGBmaWx0ZXJmYWxzZWBgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmlm
aWx0ZXJmYWxzZWAgIHwgOmZ1bmM6YHB5MzppdGVydG9vbHMuZmlsdGVyZmFsc2VgICAgfAotKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaHR0
cF9jb29raWVqYXJgYCAgICAgICAgICAgfCA6bW9kOmBweTI6Y29va2llbGliYCAgICAgICAgICAg
ICAgICB8IDptb2Q6YHB5MzpodHRwLmNvb2tpZWphcmAgICAgICAgICAgIHwKLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY29va2ll
c2BgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkNvb2tpZWAgICAgICAgICAgICAgICAgICAgfCA6
bW9kOmBweTM6aHR0cC5jb29raWVzYCAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBodG1sX2VudGl0aWVzYGAgICAg
ICAgICAgICB8IDptb2Q6YHB5MjpodG1sZW50aXR5ZGVmc2AgICAgICAgICAgIHwgOm1vZDpgcHkz
Omh0bWwuZW50aXRpZXNgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaHRtbF9wYXJzZXJgYCAgICAgICAgICAgICAg
fCA6bW9kOmBweTI6SFRNTFBhcnNlcmAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodG1sLnBh
cnNlcmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY2xpZW50YGAgICAgICAgICAgICAgIHwgOm1vZDpg
cHkyOmh0dHBsaWJgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5jbGllbnRgICAg
ICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKLXwgYGBCYXNlSFRUUFNlcnZlcmBgICAgICAgICAgICB8IDptb2Q6YHB5MjpCYXNl
SFRUUFNlcnZlcmAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuc2VydmVyYCAgICAgICAgICAg
ICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci18IGBgQ0dJSFRUUFNlcnZlcmBgICAgICAgICAgICAgfCA6bW9kOmBweTI6Q0dJSFRUUFNlcnZl
cmAgICAgICAgICAgICB8IDptb2Q6YHB5MzpodHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwKLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFNp
bXBsZUhUVFBTZXJ2ZXJgYCAgICAgICAgIHwgOm1vZDpgcHkyOlNpbXBsZUhUVFBTZXJ2ZXJgICAg
ICAgICAgfCA6bW9kOmBweTM6aHR0cC5zZXJ2ZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBpbnB1dGBgICAg
ICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6cmF3X2lucHV0YCAgICAgICAgICAgICAgIHwg
OmZ1bmM6YHB5MzppbnB1dGAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgaW50ZXJuYGAgICAgICAgICAg
ICAgICAgICAgfCA6ZnVuYzpgcHkyOmludGVybmAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBw
eTM6c3lzLmludGVybmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYG1hcGBgICAgICAgICAgICAgICAgICAgICAg
IHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaW1hcGAgICAgICAgICAgfCA6ZnVuYzpgcHkzOm1hcGAg
ICAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBxdWV1ZWBgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6
YHB5MjpRdWV1ZWAgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnF1ZXVlYCAgICAgICAg
ICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgcmFuZ2VgYCAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOnhy
YW5nZWAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6cmFuZ2VgICAgICAgICAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYHJlZHVjZWBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjpyZWR1Y2VgICAg
ICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOmZ1bmN0b29scy5yZWR1Y2VgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBy
ZWxvYWRfbW9kdWxlYGAgICAgICAgICAgICB8IDpmdW5jOmBweTI6cmVsb2FkYCAgICAgICAgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MzppbXAucmVsb2FkYCAgICAgICAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcmVwcmxpYmBg
ICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6cmVwcmAgICAgICAgICAgICAgICAgICAgICB8
IDptb2Q6YHB5MzpyZXBybGliYCAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHNobGV4X3F1b3RlYGAgICAg
ICAgICAgICAgIHwgOm1vZDpgcHkyOnBpcGVzLnF1b3RlYCAgICAgICAgICAgICAgfCA6bW9kOmBw
eTM6c2hsZXgucXVvdGVgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBzb2NrZXRzZXJ2ZXJgYCAgICAgICAgICAg
ICB8IDptb2Q6YHB5MjpTb2NrZXRTZXJ2ZXJgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnNvY2tl
dHNlcnZlcmAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgX3RocmVhZGBgICAgICAgICAgICAgICAgICAgfCA6bW9k
OmBweTI6dGhyZWFkYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpfdGhyZWFkYCAgICAg
ICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKwotfCBgYHRraW50ZXJgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOlRr
aW50ZXJgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlcmAgICAgICAgICAgICAg
ICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKLXwgYGB0a2ludGVyX2RpYWxvZ2BgICAgICAgICAgICB8IDptb2Q6YHB5MjpEaWFsb2dgICAg
ICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZGlhbG9nYCAgICAgICAgICAgfAot
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBg
dGtpbnRlcl9maWxlZGlhbG9nYGAgICAgICAgfCA6bW9kOmBweTI6RmlsZURpYWxvZ2AgICAgICAg
ICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLkZpbGVEaWFsb2dgICAgICAgIHwKLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJf
c2Nyb2xsZWR0ZXh0YGAgICAgIHwgOm1vZDpgcHkyOlNjcm9sbGVkVGV4dGAgICAgICAgICAgICAg
fCA6bW9kOmBweTM6dGtpbnRlci5zY3JvbGxlZHRleHRgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX3NpbXBsZWRp
YWxvZ2BgICAgICB8IDptb2Q6YHB5MjpTaW1wbGVEaWFsb2dgICAgICAgICAgICAgIHwgOm1vZDpg
cHkzOnRraW50ZXIuc2ltcGxlZGlhbG9nYCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90dGtgYCAgICAgICAgICAg
ICAgfCA6bW9kOmBweTI6dHRrYCAgICAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2lu
dGVyLnR0a2AgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfdGl4YGAgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkyOlRpeGAgICAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci50aXhg
ICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2NvbnN0YW50c2BgICAgICAgICB8IDptb2Q6YHB5MjpU
a2NvbnN0YW50c2AgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuY29uc3RhbnRzYCAg
ICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgdGtpbnRlcl9kbmRgYCAgICAgICAgICAgICAgfCA6bW9kOmBweTI6VGtkbmRgICAg
ICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmRuZGAgICAgICAgICAgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YHRraW50ZXJfY29sb3JjaG9vc2VyYGAgICAgIHwgOm1vZDpgcHkyOnRrQ29sb3JDaG9vc2VyYCAg
ICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5jb2xvcmNob29zZXJgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVy
X2NvbW1vbmRpYWxvZ2BgICAgICB8IDptb2Q6YHB5Mjp0a0NvbW1vbkRpYWxvZ2AgICAgICAgICAg
IHwgOm1vZDpgcHkzOnRraW50ZXIuY29tbW9uZGlhbG9nYCAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90a2ZpbGVk
aWFsb2dgYCAgICAgfCA6bW9kOmBweTI6dGtGaWxlRGlhbG9nYCAgICAgICAgICAgICB8IDptb2Q6
YHB5Mzp0a2ludGVyLmZpbGVkaWFsb2dgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZm9udGBgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkyOnRrRm9udGAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtp
bnRlci5mb250YCAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX21lc3NhZ2Vib3hgYCAgICAgICB8IDpt
b2Q6YHB5Mjp0a01lc3NhZ2VCb3hgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIubWVz
c2FnZWJveGAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl90a3NpbXBsZWRpYWxvZ2BgICAgfCA6bW9kOmBweTI6
dGtTaW1wbGVEaWFsb2dgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnNpbXBsZWRpYWxv
Z2AgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotfCBgYHVybGxpYi5wYXJzZWBgICAgICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5tb3Zl
cy51cmxsaWIucGFyc2VgICAgfCA6bW9kOmBweTM6dXJsbGliLnBhcnNlYCAgICAgICAgICAgICB8
Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwg
YGB1cmxsaWIuZXJyb3JgYCAgICAgICAgICAgICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJsbGli
LmVycm9yYCAgIHwgOm1vZDpgcHkzOnVybGxpYi5lcnJvcmAgICAgICAgICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGli
LnJlcXVlc3RgYCAgICAgICAgICAgfCBTZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5yZXF1ZXN0
YCB8IDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVzdGAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHVybGxpYi5yZXNwb25z
ZWBgICAgICAgICAgIHwgU2VlIDptb2Q6YHNpeC5tb3Zlcy51cmxsaWIucmVzcG9uc2VgfCA6bW9k
OmBweTM6dXJsbGliLnJlc3BvbnNlYCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB1cmxsaWIucm9ib3RwYXJzZXJgYCAg
ICAgICB8IDptb2Q6YHB5Mjpyb2JvdHBhcnNlcmAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnVy
bGxpYi5yb2JvdHBhcnNlcmAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGliX3JvYm90cGFyc2VyYGAgICAgICAgfCA6
bW9kOmBweTI6cm9ib3RwYXJzZXJgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp1cmxsaWIucm9i
b3RwYXJzZXJgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKwotfCBgYFVzZXJEaWN0YGAgICAgICAgICAgICAgICAgIHwgOmNsYXNzOmBw
eTI6VXNlckRpY3QuVXNlckRpY3RgICAgICAgfCA6Y2xhc3M6YHB5Mzpjb2xsZWN0aW9ucy5Vc2Vy
RGljdGAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKLXwgYGBVc2VyTGlzdGBgICAgICAgICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVzZXJM
aXN0LlVzZXJMaXN0YCAgICAgIHwgOmNsYXNzOmBweTM6Y29sbGVjdGlvbnMuVXNlckxpc3RgICAg
fAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18
IGBgVXNlclN0cmluZ2BgICAgICAgICAgICAgICAgfCA6Y2xhc3M6YHB5MjpVc2VyU3RyaW5nLlVz
ZXJTdHJpbmdgICB8IDpjbGFzczpgcHkzOmNvbGxlY3Rpb25zLlVzZXJTdHJpbmdgIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHdpbnJl
Z2BgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOl93aW5yZWdgICAgICAgICAgICAgICAg
ICAgfCA6bW9kOmBweTM6d2lucmVnYCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB4bWxycGNfY2xpZW50
YGAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp4bWxycGNsaWJgICAgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkzOnhtbHJwYy5jbGllbnRgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgeG1scnBjX3NlcnZlcmBgICAgICAg
ICAgICAgfCA6bW9kOmBweTI6U2ltcGxlWE1MUlBDU2VydmVyYCAgICAgICB8IDptb2Q6YHB5Mzp4
bWxycGMuc2VydmVyYCAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHhyYW5nZWBgICAgICAgICAgICAgICAgICAgIHwg
OmZ1bmM6YHB5Mjp4cmFuZ2VgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOnJhbmdlYCAg
ICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGB6aXBgYCAgICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBw
eTI6aXRlcnRvb2xzLml6aXBgICAgICAgICAgIHwgOmZ1bmM6YHB5Mzp6aXBgICAgICAgICAgICAg
ICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgemlwX2xvbmdlc3RgYCAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0
b29scy5pemlwX2xvbmdlc3RgICB8IDpmdW5jOmBweTM6aXRlcnRvb2xzLnppcF9sb25nZXN0YCAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
Ci11cmxsaWIgcGFyc2UKLTw8PDw8PDw8PDw8PAotCi0uLiBtb2R1bGU6OiBzaXgubW92ZXMudXJs
bGliLnBhcnNlCi0gICA6c3lub3BzaXM6IFN0dWZmIGZyb20gOm1vZDpgcHkyOnVybHBhcnNlYCBh
bmQgOm1vZDpgcHkyOnVybGxpYmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIucGFy
c2VgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGZ1bmN0aW9ucyBmcm9tIFB5dGhvbiAzJ3MgOm1v
ZDpgcHkzOnVybGxpYi5wYXJzZWAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxwYXJz
ZWA6Ci0KLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5QYXJzZVJlc3VsdGAKLSogOmZ1bmM6YHB5Mjp1
cmxwYXJzZS5TcGxpdFJlc3VsdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmxwYXJzZWAKLSog
OmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1bnBhcnNlYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnBh
cnNlX3FzYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnBhcnNlX3FzbGAKLSogOmZ1bmM6YHB5Mjp1
cmxwYXJzZS51cmxqb2luYAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVybGRlZnJhZ2AKLSogOmZ1
bmM6YHB5Mjp1cmxwYXJzZS51cmxzcGxpdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51cmx1bnNw
bGl0YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnNwbGl0cXVlcnlgCi0qIDpmdW5jOmBweTI6dXJs
cGFyc2UudXNlc19mcmFnbWVudGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX25ldGxvY2AK
LSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS51c2VzX3BhcmFtc2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJz
ZS51c2VzX3F1ZXJ5YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfcmVsYXRpdmVgCi0KLWFu
ZCA6bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZnVuYzpgcHkyOnVybGxpYi5xdW90ZWAKLSogOmZ1
bmM6YHB5Mjp1cmxsaWIucXVvdGVfcGx1c2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIuc3BsaXR0YWdg
Ci0qIDpmdW5jOmBweTI6dXJsbGliLnNwbGl0dXNlcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudW5x
dW90ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudW5xdW90ZV9wbHVzYAotKiA6ZnVuYzpgcHkyOnVy
bGxpYi51cmxlbmNvZGVgCi0KLQotdXJsbGliIGVycm9yCi08PDw8PDw8PDw8PDwKLQotLi4gbW9k
dWxlOjogc2l4Lm1vdmVzLnVybGxpYi5lcnJvcgotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9tIDpt
b2Q6YHB5Mjp1cmxsaWJgIGFuZCA6bW9kOmBweTI6dXJsbGliMmAgaW4gUHl0aG9uIDIgYW5kIDpt
b2Q6YHB5Mzp1cmxsaWIuZXJyb3JgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGV4Y2VwdGlvbnMg
ZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIuZXJyb3JgIGFuZCBQeXRob24gMidzOgot
Ci06bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZXhjOmBweTI6dXJsbGliLkNvbnRlbnRUb29TaG9y
dEVycm9yYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYjJgOgotCi0qIDpleGM6YHB5Mjp1cmxsaWIy
LlVSTEVycm9yYAotKiA6ZXhjOmBweTI6dXJsbGliMi5IVFRQRXJyb3JgCi0KLQotdXJsbGliIHJl
cXVlc3QKLTw8PDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIucmVx
dWVzdAotICAgOnN5bm9wc2lzOiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGFuZCA6bW9k
OmBweTI6dXJsbGliMmAgaW4gUHl0aG9uIDIgYW5kIDptb2Q6YHB5Mzp1cmxsaWIucmVxdWVzdGAg
aW4gUHl0aG9uIDMKLQotQ29udGFpbnMgaXRlbXMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1
cmxsaWIucmVxdWVzdGAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxsaWJgOgotCi0q
IDpmdW5jOmBweTI6dXJsbGliLnBhdGhuYW1lMnVybGAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJs
MnBhdGhuYW1lYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5nZXRwcm94aWVzYAotKiA6ZnVuYzpgcHky
OnVybGxpYi51cmxyZXRyaWV2ZWAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJsY2xlYW51cGAKLSog
OmNsYXNzOmBweTI6dXJsbGliLlVSTG9wZW5lcmAKLSogOmNsYXNzOmBweTI6dXJsbGliLkZhbmN5
VVJMb3BlbmVyYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5wcm94eV9ieXBhc3NgCi0KLWFuZCA6bW9k
OmBweTI6dXJsbGliMmA6Ci0KLSogOmZ1bmM6YHB5Mjp1cmxsaWIyLnVybG9wZW5gCi0qIDpmdW5j
OmBweTI6dXJsbGliMi5pbnN0YWxsX29wZW5lcmAKLSogOmZ1bmM6YHB5Mjp1cmxsaWIyLmJ1aWxk
X29wZW5lcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5SZXF1ZXN0YAotKiA6Y2xhc3M6YHB5Mjp1
cmxsaWIyLk9wZW5lckRpcmVjdG9yYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBEZWZhdWx0
RXJyb3JIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBSZWRpcmVjdEhhbmRsZXJg
Ci0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUENvb2tpZVByb2Nlc3NvcmAKLSogOmNsYXNzOmBw
eTI6dXJsbGliMi5Qcm94eUhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuQmFzZUhhbmRs
ZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUFBhc3N3b3JkTWdyYAotKiA6Y2xhc3M6YHB5
Mjp1cmxsaWIyLkhUVFBQYXNzd29yZE1ncldpdGhEZWZhdWx0UmVhbG1gCi0qIDpjbGFzczpgcHky
OnVybGxpYjIuQWJzdHJhY3RCYXNpY0F1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIy
LkhUVFBCYXNpY0F1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLlByb3h5QmFzaWNB
dXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5BYnN0cmFjdERpZ2VzdEF1dGhIYW5k
bGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBEaWdlc3RBdXRoSGFuZGxlcmAKLSogOmNs
YXNzOmBweTI6dXJsbGliMi5Qcm94eURpZ2VzdEF1dGhIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1
cmxsaWIyLkhUVFBIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBTSGFuZGxlcmAK
LSogOmNsYXNzOmBweTI6dXJsbGliMi5GaWxlSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGli
Mi5GVFBIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkNhY2hlRlRQSGFuZGxlcmAKLSog
OmNsYXNzOmBweTI6dXJsbGliMi5Vbmtub3duSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGli
Mi5IVFRQRXJyb3JQcm9jZXNzb3JgCi0KLQotdXJsbGliIHJlc3BvbnNlCi08PDw8PDw8PDw8PDw8
PDwKLQotLi4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5yZXNwb25zZQotICAgOnN5bm9wc2lz
OiBTdHVmZiBmcm9tIDptb2Q6YHB5Mjp1cmxsaWJgIGluIFB5dGhvbiAyIGFuZCA6bW9kOmBweTM6
dXJsbGliLnJlc3BvbnNlYCBpbiBQeXRob24gMwotCi1Db250YWlucyBjbGFzc2VzIGZyb20gUHl0
aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnJlc3BvbnNlYCBhbmQgUHl0aG9uIDInczoKLQotOm1v
ZDpgcHkyOnVybGxpYmA6Ci0KLSogOmNsYXNzOmBweTI6dXJsbGliLmFkZGJhc2VgCi0qIDpjbGFz
czpgcHkyOnVybGxpYi5hZGRjbG9zZWhvb2tgCi0qIDpjbGFzczpgcHkyOnVybGxpYi5hZGRpbmZv
YAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkaW5mb3VybGAKLQotCi1BZHZhbmNlZCAtIEN1c3Rv
bWl6aW5nIHJlbmFtZXMKLTw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PAotCi0uLiBjdXJy
ZW50bW9kdWxlOjogc2l4Ci0KLUl0IGlzIHBvc3NpYmxlIHRvIGFkZCBhZGRpdGlvbmFsIG5hbWVz
IHRvIHRoZSA6bW9kOmBzaXgubW92ZXNgIG5hbWVzcGFjZS4KLQotCi0uLiBmdW5jdGlvbjo6IGFk
ZF9tb3ZlKGl0ZW0pCi0KLSAgIEFkZCAqaXRlbSogdG8gdGhlIDptb2Q6YHNpeC5tb3Zlc2AgbWFw
cGluZy4gICppdGVtKiBzaG91bGQgYmUgYQotICAgOmNsYXNzOmBNb3ZlZEF0dHJpYnV0ZWAgb3Ig
OmNsYXNzOmBNb3ZlZE1vZHVsZWAgaW5zdGFuY2UuCi0KLQotLi4gZnVuY3Rpb246OiByZW1vdmVf
bW92ZShuYW1lKQotCi0gICBSZW1vdmUgdGhlIDptb2Q6YHNpeC5tb3Zlc2AgbWFwcGluZyBjYWxs
ZWQgKm5hbWUqLiAgKm5hbWUqIHNob3VsZCBiZSBhCi0gICBzdHJpbmcuCi0KLQotSW5zdGFuY2Vz
IG9mIHRoZSBmb2xsb3dpbmcgY2xhc3NlcyBjYW4gYmUgcGFzc2VkIHRvIDpmdW5jOmBhZGRfbW92
ZWAuICBOZWl0aGVyCi1oYXZlIGFueSBwdWJsaWMgbWVtYmVycy4KLQotCi0uLiBjbGFzczo6IE1v
dmVkTW9kdWxlKG5hbWUsIG9sZF9tb2QsIG5ld19tb2QpCi0KLSAgIENyZWF0ZSBhIG1hcHBpbmcg
Zm9yIDptb2Q6YHNpeC5tb3Zlc2AgY2FsbGVkICpuYW1lKiB0aGF0IHJlZmVyZW5jZXMgZGlmZmVy
ZW50Ci0gICBtb2R1bGVzIGluIFB5dGhvbiAyIGFuZCAzLiAgKm9sZF9tb2QqIGlzIHRoZSBuYW1l
IG9mIHRoZSBQeXRob24gMiBtb2R1bGUuCi0gICAqbmV3X21vZCogaXMgdGhlIG5hbWUgb2YgdGhl
IFB5dGhvbiAzIG1vZHVsZS4KLQotCi0uLiBjbGFzczo6IE1vdmVkQXR0cmlidXRlKG5hbWUsIG9s
ZF9tb2QsIG5ld19tb2QsIG9sZF9hdHRyPU5vbmUsIG5ld19hdHRyPU5vbmUpCi0KLSAgIENyZWF0
ZSBhIG1hcHBpbmcgZm9yIDptb2Q6YHNpeC5tb3Zlc2AgY2FsbGVkICpuYW1lKiB0aGF0IHJlZmVy
ZW5jZXMgZGlmZmVyZW50Ci0gICBhdHRyaWJ1dGVzIGluIFB5dGhvbiAyIGFuZCAzLiAgKm9sZF9t
b2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMiBtb2R1bGUuCi0gICAqbmV3X21vZCogaXMg
dGhlIG5hbWUgb2YgdGhlIFB5dGhvbiAzIG1vZHVsZS4gIElmICpuZXdfYXR0ciogaXMgbm90IGdp
dmVuLCBpdAotICAgZGVmYXVsdHMgdG8gKm9sZF9hdHRyKi4gIElmIG5laXRoZXIgaXMgZ2l2ZW4s
IHRoZXkgYm90aCBkZWZhdWx0IHRvICpuYW1lKi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24vdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMGQ3Yjc4ZmI1MTYwODVjYTBhNzNiMDQ1NDgwMDZlN2E1MjFlZjMxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRpb24v
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1
bWVudGF0aW9uL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9pbmRl
eC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvc2l4L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYxOTg2NTNlZDBmZTJmYWVlOGFmZjY3YTRjYjNlZmQ5N2VhMzA3
YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9zaXgucHljCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NzbHV0aWxzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTQ2YmU4NTFkNjRmYjA5N2MyODdiODZmYjUxYTE5Nzg0NmY0MmMzNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9fLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1pbXBvcnQgb3BlbnNzbAotaW1wb3J0IHBy
ZWdlbmVyYXRlZAotZnJvbSBiYXNlIGltcG9ydCBOb1NTTEVudmlyb25tZW50Ci1mcm9tIG9wZW5z
c2wgaW1wb3J0IE9wZW5TU0xFbnZpcm9ubWVudAotZnJvbSBwcmVnZW5lcmF0ZWQgaW1wb3J0IFBy
ZWdlbmVyYXRlZFNTTEVudmlyb25tZW50Ci0KLWVudmlyb25tZW50cyA9IHsibm9uZSI6IE5vU1NM
RW52aXJvbm1lbnQsCi0gICAgICAgICAgICAgICAgIm9wZW5zc2wiOiBPcGVuU1NMRW52aXJvbm1l
bnQsCi0gICAgICAgICAgICAgICAgInByZWdlbmVyYXRlZCI6IFByZWdlbmVyYXRlZFNTTEVudmly
b25tZW50fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyMzdhZTVmMjNjY2YxZmE5OGNkMzk2YWY4ODY5YjI3NGZjOWUzNDY1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWNsYXNzIE5vU1NMRW52aXJvbm1lbnQo
b2JqZWN0KToKLSAgICBzc2xfZW5hYmxlZCA9IEZhbHNlCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9fZW50ZXJfXyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2Vs
ZiwgaG9zdCk6Ci0gICAgICAgIHJldHVybiBOb25lLCBOb25lCi0KLSAgICBkZWYgY2FfY2VydF9w
YXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9vcGVuc3NsLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1
dGlscy9vcGVuc3NsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWMyNDcxYWFl
ZTM5OWU1N2QwNDI1YWIxZjM2M2U3MDE1ZDQ1YTFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQy
MiArMCwwIEBACi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWlt
cG9ydCBzaHV0aWwKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGVtcGZpbGUKLWZyb20gZGF0
ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLQotIyBBbW91bnQgb2YgdGltZSBiZXlv
bmQgdGhlIHByZXNlbnQgdG8gY29uc2lkZXIgY2VydGlmaWNhdGVzICJleHBpcmVkLiIgVGhpcwot
IyBhbGxvd3MgY2VydGlmaWNhdGVzIHRvIGJlIHByb2FjdGl2ZWx5IHJlLWdlbmVyYXRlZCBpbiB0
aGUgImJ1ZmZlciIgcGVyaW9kCi0jIHByaW9yIHRvIHRoZWlyIGV4YWN0IGV4cGlyYXRpb24gdGlt
ZS4KLUNFUlRfRVhQSVJZX0JVRkZFUiA9IGRpY3QoaG91cnM9NikKLQotY2xhc3MgT3BlblNTTChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9wYXRo
LCBjb25mX3BhdGgsIGhvc3RzLCBkdXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgYmFzZV9jb25m
X3BhdGg9Tm9uZSk6Ci0gICAgICAgICIiIkNvbnRleHQgbWFuYWdlciBmb3IgaW50ZXJhY3Rpbmcg
d2l0aCBPcGVuU1NMLgotICAgICAgICBDcmVhdGVzIGEgY29uZmlnIGZpbGUgZm9yIHRoZSBkdXJh
dGlvbiBvZiB0aGUgY29udGV4dC4KLQotICAgICAgICA6cGFyYW0gbG9nZ2VyOiBzdGRsaWIgbG9n
Z2VyIG9yIHB5dGhvbiBzdHJ1Y3R1cmVkIGxvZ2dlcgotICAgICAgICA6cGFyYW0gYmluYXJ5OiBw
YXRoIHRvIG9wZW5zc2wgYmluYXJ5Ci0gICAgICAgIDpwYXJhbSBiYXNlX3BhdGg6IHBhdGggdG8g
ZGlyZWN0b3J5IGZvciBzdG9yaW5nIGNlcnRpZmljYXRlcwotICAgICAgICA6cGFyYW0gY29uZl9w
YXRoOiBwYXRoIGZvciBjb25maWd1cmF0aW9uIGZpbGUgc3RvcmluZyBjb25maWd1cmF0aW9uIGRh
dGEKLSAgICAgICAgOnBhcmFtIGhvc3RzOiBsaXN0IG9mIGhvc3RzIHRvIGluY2x1ZGUgaW4gY29u
ZmlndXJhdGlvbiAob3IgTm9uZSBpZiBub3QKLSAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
aW5nIGhvc3QgY2VydGlmaWNhdGVzKQotICAgICAgICA6cGFyYW0gZHVyYXRpb246IENlcnRpZmlj
YXRlIGR1cmF0aW9uIGluIGRheXMiIiIKLQotICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2Vf
cGF0aAotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQotICAgICAgICBzZWxmLmNvbmZfcGF0
aCA9IGNvbmZfcGF0aAotICAgICAgICBzZWxmLmJhc2VfY29uZl9wYXRoID0gYmFzZV9jb25mX3Bh
dGgKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLSAgICAgICAgc2VsZi5wcm9jID0gTm9u
ZQotICAgICAgICBzZWxmLmNtZCA9IFtdCi0gICAgICAgIHNlbGYuaG9zdHMgPSBob3N0cwotICAg
ICAgICBzZWxmLmR1cmF0aW9uID0gZHVyYXRpb24KLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6
Ci0gICAgICAgIHdpdGggb3BlbihzZWxmLmNvbmZfcGF0aCwgInciKSBhcyBmOgotICAgICAgICAg
ICAgZi53cml0ZShnZXRfY29uZmlnKHNlbGYuYmFzZV9wYXRoLCBzZWxmLmhvc3RzLCBzZWxmLmR1
cmF0aW9uKSkKLSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgotICAgICAgICBvcy51bmxpbmsoc2VsZi5jb25mX3BhdGgpCi0KLSAg
ICBkZWYgbG9nKHNlbGYsIGxpbmUpOgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYubG9nZ2VyLCAi
cHJvY2Vzc19vdXRwdXQiKToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0
KHNlbGYucHJvYy5waWQgaWYgc2VsZi5wcm9jIGlzIG5vdCBOb25lIGVsc2UgTm9uZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJl
cGxhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9
IiAiLmpvaW4oc2VsZi5jbWQpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcobGluZSkKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBjbWQsICphcmdzLCAqKmt3
YXJncyk6Ci0gICAgICAgICIiIlJ1biBhIGNvbW1hbmQgdXNpbmcgT3BlblNTTCBpbiB0aGUgY3Vy
cmVudCBjb250ZXh0LgotCi0gICAgICAgIDpwYXJhbSBjbWQ6IFRoZSBvcGVuc3NsIHN1YmNvbW1h
bmQgdG8gcnVuCi0gICAgICAgIDpwYXJhbSAqYXJnczogQWRkaXRpb25hbCBhcmd1bWVudHMgdG8g
cGFzcyB0byB0aGUgY29tbWFuZAotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jbWQgPSBbc2Vs
Zi5iaW5hcnksIGNtZF0KLSAgICAgICAgaWYgY21kICE9ICJ4NTA5IjoKLSAgICAgICAgICAgIHNl
bGYuY21kICs9IFsiLWNvbmZpZyIsIHNlbGYuY29uZl9wYXRoXQotICAgICAgICBzZWxmLmNtZCAr
PSBsaXN0KGFyZ3MpCi0KLSAgICAgICAgIyBDb3B5IHRoZSBlbnZpcm9ubWVudCwgY29udmVydGlu
ZyB0byBwbGFpbiBzdHJpbmdzLiBXaW5kb3dzCi0gICAgICAgICMgU3RhcnRQcm9jZXNzIGlzIHBp
Y2t5IGFib3V0IGFsbCB0aGUga2V5cy92YWx1ZXMgYmVpbmcgcGxhaW4gc3RyaW5ncywKLSAgICAg
ICAgIyBidXQgYXQgbGVhc3QgaW4gTVNZUyBzaGVsbHMsIHRoZSBvcy5lbnZpcm9uIGRpY3Rpb25h
cnkgY2FuIGJlIG1peGVkLgotICAgICAgICBlbnYgPSB7fQotICAgICAgICBmb3IgaywgdiBpbiBv
cy5lbnZpcm9uLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGVudltrLmVuY29kZSgidXRmOCIpXSA9IHYuZW5jb2RlKCJ1dGY4IikKLSAgICAgICAgICAgIGV4
Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAg
IGlmIHNlbGYuYmFzZV9jb25mX3BhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBlbnZbIk9Q
RU5TU0xfQ09ORiJdID0gc2VsZi5iYXNlX2NvbmZfcGF0aC5lbmNvZGUoInV0ZjgiKQotCi0gICAg
ICAgIHNlbGYucHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jbWQsIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnY9ZW52KQotICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHNlbGYu
cHJvYy5jb21tdW5pY2F0ZSgpCi0gICAgICAgIHNlbGYubG9nKHN0ZG91dCkKLSAgICAgICAgaWYg
c2VsZi5wcm9jLnJldHVybmNvZGUgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIHN1YnByb2Nlc3Mu
Q2FsbGVkUHJvY2Vzc0Vycm9yKHNlbGYucHJvYy5yZXR1cm5jb2RlLCBzZWxmLmNtZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dD1zdGRvdXQp
Ci0KLSAgICAgICAgc2VsZi5jbWQgPSBbXQotICAgICAgICBzZWxmLnByb2MgPSBOb25lCi0gICAg
ICAgIHJldHVybiBzdGRvdXQKLQotCi1kZWYgbWFrZV9zdWJqZWN0KGNvbW1vbl9uYW1lLAotICAg
ICAgICAgICAgICAgICBjb3VudHJ5PU5vbmUsCi0gICAgICAgICAgICAgICAgIHN0YXRlPU5vbmUs
Ci0gICAgICAgICAgICAgICAgIGxvY2FsaXR5PU5vbmUsCi0gICAgICAgICAgICAgICAgIG9yZ2Fu
aXphdGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25fdW5pdD1Ob25lKToK
LSAgICBhcmdzID0gWygiY291bnRyeSIsICJDIiksCi0gICAgICAgICAgICAoInN0YXRlIiwgIlNU
IiksCi0gICAgICAgICAgICAoImxvY2FsaXR5IiwgIkwiKSwKLSAgICAgICAgICAgICgib3JnYW5p
emF0aW9uIiwgIk8iKSwKLSAgICAgICAgICAgICgib3JnYW5pemF0aW9uX3VuaXQiLCAiT1UiKSwK
LSAgICAgICAgICAgICgiY29tbW9uX25hbWUiLCAiQ04iKV0KLQotICAgIHJ2ID0gW10KLQotICAg
IGZvciB2YXIsIGtleSBpbiBhcmdzOgotICAgICAgICB2YWx1ZSA9IGxvY2FscygpW3Zhcl0KLSAg
ICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBydi5hcHBlbmQoIi8lcz0l
cyIgJSAoa2V5LCB2YWx1ZS5yZXBsYWNlKCIvIiwgIlxcLyIpKSkKLQotICAgIHJldHVybiAiIi5q
b2luKHJ2KQotCi1kZWYgbWFrZV9hbHRfbmFtZXMoaG9zdHMpOgotICAgIHJ2ID0gW10KLSAgICBm
b3IgbmFtZSBpbiBob3N0czoKLSAgICAgICAgcnYuYXBwZW5kKCJETlM6JXMiICUgbmFtZSkKLSAg
ICByZXR1cm4gIiwiLmpvaW4ocnYpCi0KLWRlZiBnZXRfY29uZmlnKHJvb3RfZGlyLCBob3N0cywg
ZHVyYXRpb249MzApOgotICAgIGlmIGhvc3RzIGlzIE5vbmU6Ci0gICAgICAgIHNhbl9saW5lID0g
IiIKLSAgICBlbHNlOgotICAgICAgICBzYW5fbGluZSA9ICJzdWJqZWN0QWx0TmFtZSA9ICVzIiAl
IG1ha2VfYWx0X25hbWVzKGhvc3RzKQotCi0gICAgaWYgb3MucGF0aC5zZXAgPT0gIlxcIjoKLSAg
ICAgICAgIyBUaGlzIHNlZW1zIHRvIGJlIG5lZWRlZCBmb3IgdGhlIFNoaW5pbmcgTGlnaHQgT3Bl
blNTTCBvbgotICAgICAgICAjIFdpbmRvd3MsIGF0IGxlYXN0LgotICAgICAgICByb290X2RpciA9
IHJvb3RfZGlyLnJlcGxhY2UoIlxcIiwgIlxcXFwiKQotCi0gICAgcnYgPSAiIiJbIGNhIF0KLWRl
ZmF1bHRfY2EgPSBDQV9kZWZhdWx0Ci0KLVsgQ0FfZGVmYXVsdCBdCi1kaXIgPSAlKHJvb3RfZGly
KXMKLWNlcnRzID0gJGRpcgotbmV3X2NlcnRzX2RpciA9ICRjZXJ0cwotY3JsX2RpciA9ICRkaXIl
KHNlcClzY3JsCi1kYXRhYmFzZSA9ICRkaXIlKHNlcClzaW5kZXgudHh0Ci1wcml2YXRlX2tleSA9
ICRkaXIlKHNlcClzY2FrZXkucGVtCi1jZXJ0aWZpY2F0ZSA9ICRkaXIlKHNlcClzY2FjZXJ0LnBl
bQotc2VyaWFsID0gJGRpciUoc2VwKXNzZXJpYWwKLWNybGRpciA9ICRkaXIlKHNlcClzY3JsCi1j
cmxudW1iZXIgPSAkZGlyJShzZXApc2NybG51bWJlcgotY3JsID0gJGNybGRpciUoc2VwKXNjcmwu
cGVtCi1SQU5ERklMRSA9ICRkaXIlKHNlcClzcHJpdmF0ZSUoc2VwKXMucmFuZAoteDUwOV9leHRl
bnNpb25zID0gdXNyX2NlcnQKLW5hbWVfb3B0ICAgICAgICA9IGNhX2RlZmF1bHQKLWNlcnRfb3B0
ICAgICAgICA9IGNhX2RlZmF1bHQKLWRlZmF1bHRfZGF5cyA9ICUoZHVyYXRpb24pZAotZGVmYXVs
dF9jcmxfZGF5cyA9ICUoZHVyYXRpb24pZAotZGVmYXVsdF9tZCA9IHNoYTI1NgotcHJlc2VydmUg
PSBubwotcG9saWN5ID0gcG9saWN5X2FueXRoaW5nCi1jb3B5X2V4dGVuc2lvbnMgPSBjb3B5Ci0K
LVsgcG9saWN5X2FueXRoaW5nIF0KLWNvdW50cnlOYW1lID0gb3B0aW9uYWwKLXN0YXRlT3JQcm92
aW5jZU5hbWUgPSBvcHRpb25hbAotbG9jYWxpdHlOYW1lID0gb3B0aW9uYWwKLW9yZ2FuaXphdGlv
bk5hbWUgPSBvcHRpb25hbAotb3JnYW5pemF0aW9uYWxVbml0TmFtZSA9IG9wdGlvbmFsCi1jb21t
b25OYW1lID0gc3VwcGxpZWQKLWVtYWlsQWRkcmVzcyA9IG9wdGlvbmFsCi0KLVsgcmVxIF0KLWRl
ZmF1bHRfYml0cyA9IDIwNDgKLWRlZmF1bHRfa2V5ZmlsZSAgPSBwcml2a2V5LnBlbQotZGlzdGlu
Z3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQotYXR0cmlidXRlcyA9IHJlcV9h
dHRyaWJ1dGVzCi14NTA5X2V4dGVuc2lvbnMgPSB2M19jYQotCi0jIFBhc3N3b3JkcyBmb3IgcHJp
dmF0ZSBrZXlzIGlmIG5vdCBwcmVzZW50IHRoZXkgd2lsbCBiZSBwcm9tcHRlZCBmb3IKLSMgaW5w
dXRfcGFzc3dvcmQgPSBzZWNyZXQKLSMgb3V0cHV0X3Bhc3N3b3JkID0gc2VjcmV0Ci1zdHJpbmdf
bWFzayA9IHV0Zjhvbmx5Ci1yZXFfZXh0ZW5zaW9ucyA9IHYzX3JlcQotCi1bIHJlcV9kaXN0aW5n
dWlzaGVkX25hbWUgXQotY291bnRyeU5hbWUgPSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUp
Ci1jb3VudHJ5TmFtZV9kZWZhdWx0ID0gQVUKLWNvdW50cnlOYW1lX21pbiA9IDIKLWNvdW50cnlO
YW1lX21heCA9IDIKLXN0YXRlT3JQcm92aW5jZU5hbWUgPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1l
IChmdWxsIG5hbWUpCi1zdGF0ZU9yUHJvdmluY2VOYW1lX2RlZmF1bHQgPQotbG9jYWxpdHlOYW1l
ID0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpCi0wLm9yZ2FuaXphdGlvbk5hbWUgPSBPcmdhbml6
YXRpb24gTmFtZQotMC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQgPSBXZWIgUGxhdGZvcm0gVGVz
dHMKLW9yZ2FuaXphdGlvbmFsVW5pdE5hbWUgPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVn
LCBzZWN0aW9uKQotI29yZ2FuaXphdGlvbmFsVW5pdE5hbWVfZGVmYXVsdCA9Ci1jb21tb25OYW1l
ID0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVyIEZRRE4gb3IgWU9VUiBuYW1lKQotY29tbW9uTmFt
ZV9tYXggPSA2NAotZW1haWxBZGRyZXNzID0gRW1haWwgQWRkcmVzcwotZW1haWxBZGRyZXNzX21h
eCA9IDY0Ci0KLVsgcmVxX2F0dHJpYnV0ZXMgXQotCi1bIHVzcl9jZXJ0IF0KLWJhc2ljQ29uc3Ry
YWludHM9Q0E6ZmFsc2UKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlk
ZW50aWZpZXI9a2V5aWQsaXNzdWVyCi0KLVsgdjNfcmVxIF0KLWJhc2ljQ29uc3RyYWludHMgPSBD
QTpGQUxTRQota2V5VXNhZ2UgPSBub25SZXB1ZGlhdGlvbiwgZGlnaXRhbFNpZ25hdHVyZSwga2V5
RW5jaXBoZXJtZW50Ci1leHRlbmRlZEtleVVzYWdlID0gc2VydmVyQXV0aAotJShzYW5fbGluZSlz
Ci0KLVsgdjNfY2EgXQotYmFzaWNDb25zdHJhaW50cyA9IENBOnRydWUKLXN1YmplY3RLZXlJZGVu
dGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3Vlcjph
bHdheXMKLWtleVVzYWdlID0ga2V5Q2VydFNpZ24KLSIiIiAlIHsicm9vdF9kaXIiOiByb290X2Rp
ciwKLSAgICAgICAic2FuX2xpbmUiOiBzYW5fbGluZSwKLSAgICAgICAiZHVyYXRpb24iOiBkdXJh
dGlvbiwKLSAgICAgICAic2VwIjogb3MucGF0aC5zZXAucmVwbGFjZSgiXFwiLCAiXFxcXCIpfQot
Ci0gICAgcmV0dXJuIHJ2Ci0KLWNsYXNzIE9wZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgotICAg
IHNzbF9lbmFibGVkID0gVHJ1ZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgb3Bl
bnNzbF9iaW5hcnk9Im9wZW5zc2wiLCBiYXNlX3BhdGg9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
cGFzc3dvcmQ9IndlYi1wbGF0Zm9ybS10ZXN0cyIsIGZvcmNlX3JlZ2VuZXJhdGU9RmFsc2UsCi0g
ICAgICAgICAgICAgICAgIGR1cmF0aW9uPTMwLCBiYXNlX2NvbmZfcGF0aD1Ob25lKToKLSAgICAg
ICAgIiIiU1NMIGVudmlyb25tZW50IHRoYXQgY3JlYXRlcyBhIGxvY2FsIENBIGFuZCBob3N0IGNl
cnRpZmljYXRlIHVzaW5nIE9wZW5TU0wuCi0KLSAgICAgICAgQnkgZGVmYXVsdCB0aGlzIHdpbGwg
bG9vayBpbiBiYXNlX3BhdGggZm9yIGV4aXN0aW5nIGNlcnRpZmljYXRlcyB0aGF0IGFyZSBzdGls
bAotICAgICAgICB2YWxpZCBhbmQgb25seSBjcmVhdGUgbmV3IGNlcnRpZmljYXRlcyBpZiB0aGVy
ZSBhcmVuJ3QgYW55LiBUaGlzIGJlaGF2aW91ciBjYW4KLSAgICAgICAgYmUgYWRqdXN0ZWQgdXNp
bmcgdGhlIGZvcmNlX3JlZ2VuZXJhdGUgb3B0aW9uLgotCi0gICAgICAgIDpwYXJhbSBsb2dnZXI6
IGEgc3RkbGliIGxvZ2dpbmcgY29tcGF0aWJsZSBsb2dnZXIgb3IgbW96bG9nIHN0cnVjdHVyZWQg
bG9nZ2VyCi0gICAgICAgIDpwYXJhbSBvcGVuc3NsX2JpbmFyeTogUGF0aCB0byB0aGUgT3BlblNT
TCBiaW5hcnkKLSAgICAgICAgOnBhcmFtIGJhc2VfcGF0aDogUGF0aCBpbiB3aGljaCBjZXJ0aWZp
Y2F0ZXMgd2lsbCBiZSBzdG9yZWQuIElmIE5vbmUsIGEgdGVtcG9yYXJ5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQgYW5kIHJlbW92ZWQgd2hlbiB0aGUg
c2VydmVyIHNodXRzIGRvd24KLSAgICAgICAgOnBhcmFtIHBhc3N3b3JkOiBQYXNzd29yZCB0byB1
c2UKLSAgICAgICAgOnBhcmFtIGZvcmNlX3JlZ2VuZXJhdGU6IEFsd2F5cyBjcmVhdGUgYSBuZXcg
Y2VydGlmaWNhdGUgZXZlbiBpZiBvbmUgYWxyZWFkeSBleGlzdHMuCi0gICAgICAgICIiIgotICAg
ICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgotCi0gICAgICAgIHNlbGYudGVtcG9yYXJ5ID0gRmFs
c2UKLSAgICAgICAgaWYgYmFzZV9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBiYXNlX3BhdGgg
PSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIHNlbGYudGVtcG9yYXJ5ID0gVHJ1ZQot
Ci0gICAgICAgIHNlbGYuYmFzZV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKGJhc2VfcGF0aCkKLSAg
ICAgICAgc2VsZi5wYXNzd29yZCA9IHBhc3N3b3JkCi0gICAgICAgIHNlbGYuZm9yY2VfcmVnZW5l
cmF0ZSA9IGZvcmNlX3JlZ2VuZXJhdGUKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9u
Ci0gICAgICAgIHNlbGYuYmFzZV9jb25mX3BhdGggPSBiYXNlX2NvbmZfcGF0aAotCi0gICAgICAg
IHNlbGYucGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBvcGVuc3NsX2JpbmFyeQot
ICAgICAgICBzZWxmLm9wZW5zc2wgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fY2FfY2VydF9wYXRo
ID0gTm9uZQotICAgICAgICBzZWxmLl9jYV9rZXlfcGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5o
b3N0X2NlcnRpZmljYXRlcyA9IHt9Ci0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAg
ICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5iYXNlX3BhdGgpOgotICAgICAgICAgICAgb3Mu
bWFrZWRpcnMoc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAgcGF0aCA9IGZ1bmN0b29scy5wYXJ0
aWFsKG9zLnBhdGguam9pbiwgc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAgd2l0aCBvcGVuKHBh
dGgoImluZGV4LnR4dCIpLCAidyIpOgotICAgICAgICAgICAgcGFzcwotICAgICAgICB3aXRoIG9w
ZW4ocGF0aCgic2VyaWFsIiksICJ3IikgYXMgZjoKLSAgICAgICAgICAgIHNlcmlhbCA9ICIleCIg
JSByYW5kb20ucmFuZGludCgwLCAxMDAwMDAwKQotICAgICAgICAgICAgaWYgbGVuKHNlcmlhbCkg
JSAyOgotICAgICAgICAgICAgICAgIHNlcmlhbCA9ICIwIiArIHNlcmlhbAotICAgICAgICAgICAg
Zi53cml0ZShzZXJpYWwpCi0KLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotCi0gICAgICAgIHJl
dHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAg
ICAgICAgaWYgc2VsZi50ZW1wb3Jhcnk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYu
YmFzZV9wYXRoKQotCi0gICAgZGVmIF9jb25maWdfb3BlbnNzbChzZWxmLCBob3N0cyk6Ci0gICAg
ICAgIGNvbmZfcGF0aCA9IHNlbGYucGF0aCgib3BlbnNzbC5jZmciKQotICAgICAgICByZXR1cm4g
T3BlblNTTChzZWxmLmxvZ2dlciwgc2VsZi5iaW5hcnksIHNlbGYuYmFzZV9wYXRoLCBjb25mX3Bh
dGgsIGhvc3RzLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmR1cmF0aW9uLCBzZWxmLmJh
c2VfY29uZl9wYXRoKQotCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKLSAgICAgICAgIiIi
R2V0IHRoZSBwYXRoIHRvIHRoZSBDQSBjZXJ0aWZpY2F0ZSBmaWxlLCBnZW5lcmF0aW5nIGEKLSAg
ICAgICAgbmV3IG9uZSBpZiBuZWVkZWQiIiIKLSAgICAgICAgaWYgc2VsZi5fY2FfY2VydF9wYXRo
IGlzIE5vbmUgYW5kIG5vdCBzZWxmLmZvcmNlX3JlZ2VuZXJhdGU6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2FkX2NhX2NlcnQoKQotICAgICAgICBpZiBzZWxmLl9jYV9jZXJ0X3BhdGggaXMgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRlX2NhKCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nh
X2NlcnRfcGF0aAotCi0gICAgZGVmIF9sb2FkX2NhX2NlcnQoc2VsZik6Ci0gICAgICAgIGtleV9w
YXRoID0gc2VsZi5wYXRoKCJjYWtleS5wZW0iKQotICAgICAgICBjZXJ0X3BhdGggPSBzZWxmLnBh
dGgoImNhY2VydC5wZW0iKQotCi0gICAgICAgIGlmIHNlbGYuY2hlY2tfa2V5X2NlcnQoa2V5X3Bh
dGgsIGNlcnRfcGF0aCwgTm9uZSk6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVc2lu
ZyBleGlzdGluZyBDQSBjZXJ0IikKLSAgICAgICAgICAgIHNlbGYuX2NhX2tleV9wYXRoLCBzZWxm
Ll9jYV9jZXJ0X3BhdGggPSBrZXlfcGF0aCwgY2VydF9wYXRoCi0KLSAgICBkZWYgY2hlY2tfa2V5
X2NlcnQoc2VsZiwga2V5X3BhdGgsIGNlcnRfcGF0aCwgaG9zdHMpOgotICAgICAgICAiIiJDaGVj
ayB0aGF0IGEga2V5IGFuZCBjZXJ0IGZpbGUgZXhpc3QgYW5kIGFyZSB2YWxpZCIiIgotICAgICAg
ICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa2V5X3BhdGgpIG9yIG5vdCBvcy5wYXRoLmV4aXN0cyhj
ZXJ0X3BhdGgpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgd2l0aCBzZWxm
Ll9jb25maWdfb3BlbnNzbChob3N0cykgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIGVuZF9kYXRl
X3N0ciA9IG9wZW5zc2woIng1MDkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLW5vb3V0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1lbmRkYXRl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1pbiIsIGNlcnRfcGF0aCku
c3BsaXQoIj0iLCAxKVsxXS5zdHJpcCgpCi0gICAgICAgICAgICAjIE5vdCBzdXJlIGlmIHRoaXMg
d29ya3MgaW4gb3RoZXIgbG9jYWxlcwotICAgICAgICAgICAgZW5kX2RhdGUgPSBkYXRldGltZS5z
dHJwdGltZShlbmRfZGF0ZV9zdHIsICIlYiAlZCAlSDolTTolUyAlWSAlWiIpCi0gICAgICAgICAg
ICB0aW1lX2J1ZmZlciA9IHRpbWVkZWx0YSgqKkNFUlRfRVhQSVJZX0JVRkZFUikKLSAgICAgICAg
ICAgICMgQmVjYXVzZSBgc3RycHRpbWVgIGRvZXMgbm90IGFjY291bnQgZm9yIHRpbWUgem9uZSBv
ZmZzZXRzLCBpdCBpcwotICAgICAgICAgICAgIyBhbHdheXMgaW4gdGVybXMgb2YgVVRDLCBzbyB0
aGUgY3VycmVudCB0aW1lIHNob3VsZCBiZSBjYWxjdWxhdGVkCi0gICAgICAgICAgICAjIGFjY29y
ZGluZ2x5LgotICAgICAgICAgICAgaWYgZW5kX2RhdGUgPCBkYXRldGltZS51dGNub3coKSArIHRp
bWVfYnVmZmVyOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICNUT0RP
OiBjaGVjayB0aGUga2V5IGFjdHVhbGx5IHNpZ25lZCB0aGUgY2VydC4KLSAgICAgICAgcmV0dXJu
IFRydWUKLQotICAgIGRlZiBfZ2VuZXJhdGVfY2Eoc2VsZik6Ci0gICAgICAgIHBhdGggPSBzZWxm
LnBhdGgKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBuZXcgQ0EgaW4gJXMi
ICUgc2VsZi5iYXNlX3BhdGgpCi0KLSAgICAgICAga2V5X3BhdGggPSBwYXRoKCJjYWtleS5wZW0i
KQotICAgICAgICByZXFfcGF0aCA9IHBhdGgoImNhcmVxLnBlbSIpCi0gICAgICAgIGNlcnRfcGF0
aCA9IHBhdGgoImNhY2VydC5wZW0iKQotCi0gICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5z
c2woTm9uZSkgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIG9wZW5zc2woInJlcSIsCi0gICAgICAg
ICAgICAgICAgICAgICItYmF0Y2giLAotICAgICAgICAgICAgICAgICAgICAiLW5ldyIsCi0gICAg
ICAgICAgICAgICAgICAgICItbmV3a2V5IiwgInJzYToyMDQ4IiwKLSAgICAgICAgICAgICAgICAg
ICAgIi1rZXlvdXQiLCBrZXlfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCByZXFf
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgIi1zdWJqIiwgbWFrZV9zdWJqZWN0KCJ3ZWItcGxh
dGZvcm0tdGVzdHMiKSwKLSAgICAgICAgICAgICAgICAgICAgIi1wYXNzb3V0IiwgInBhc3M6JXMi
ICUgc2VsZi5wYXNzd29yZCkKLQotICAgICAgICAgICAgb3BlbnNzbCgiY2EiLAotICAgICAgICAg
ICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAgICAgICAgICAgICAgICAgIi1jcmVhdGVfc2VyaWFs
IiwKLSAgICAgICAgICAgICAgICAgICAgIi1rZXlmaWxlIiwga2V5X3BhdGgsCi0gICAgICAgICAg
ICAgICAgICAgICItcGFzc2luIiwgInBhc3M6JXMiICUgc2VsZi5wYXNzd29yZCwKLSAgICAgICAg
ICAgICAgICAgICAgIi1zZWxmc2lnbiIsCi0gICAgICAgICAgICAgICAgICAgICItZXh0ZW5zaW9u
cyIsICJ2M19jYSIsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCByZXFfcGF0aCwKLSAgICAg
ICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgpCi0KLSAgICAgICAgb3MudW5saW5rKHJl
cV9wYXRoKQotCi0gICAgICAgIHNlbGYuX2NhX2tleV9wYXRoLCBzZWxmLl9jYV9jZXJ0X3BhdGgg
PSBrZXlfcGF0aCwgY2VydF9wYXRoCi0KLSAgICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwgaG9z
dHMpOgotICAgICAgICAiIiJHZXQgYSB0dXBsZSBvZiAocHJpdmF0ZSBrZXkgcGF0aCwgY2VydGlm
aWNhdGUgcGF0aCkgZm9yIGEgaG9zdCwKLSAgICAgICAgZ2VuZXJhdGluZyBuZXcgb25lcyBpZiBu
ZWNlc3NhcnkuCi0KLSAgICAgICAgaG9zdHMgbXVzdCBiZSBhIGxpc3Qgb2YgYWxsIGhvc3RzIHRv
IGFwcGVhciBvbiB0aGUgY2VydGlmaWNhdGUsIHdpdGgKLSAgICAgICAgdGhlIHByaW1hcnkgaG9z
dG5hbWUgZmlyc3QuIiIiCi0gICAgICAgIGhvc3RzID0gdHVwbGUoaG9zdHMpCi0gICAgICAgIGlm
IGhvc3RzIG5vdCBpbiBzZWxmLmhvc3RfY2VydGlmaWNhdGVzOgotICAgICAgICAgICAgaWYgbm90
IHNlbGYuZm9yY2VfcmVnZW5lcmF0ZToKLSAgICAgICAgICAgICAgICBrZXlfY2VydCA9IHNlbGYu
X2xvYWRfaG9zdF9jZXJ0KGhvc3RzKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBrZXlfY2VydCA9IE5vbmUKLSAgICAgICAgICAgIGlmIGtleV9jZXJ0IGlzIE5vbmU6Ci0gICAg
ICAgICAgICAgICAga2V5LCBjZXJ0ID0gc2VsZi5fZ2VuZXJhdGVfaG9zdF9jZXJ0KGhvc3RzKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBrZXksIGNlcnQgPSBrZXlfY2VydAot
ICAgICAgICAgICAgc2VsZi5ob3N0X2NlcnRpZmljYXRlc1tob3N0c10gPSBrZXksIGNlcnQKLQot
ICAgICAgICByZXR1cm4gc2VsZi5ob3N0X2NlcnRpZmljYXRlc1tob3N0c10KLQotICAgIGRlZiBf
bG9hZF9ob3N0X2NlcnQoc2VsZiwgaG9zdHMpOgotICAgICAgICBob3N0ID0gaG9zdHNbMF0KLSAg
ICAgICAga2V5X3BhdGggPSBzZWxmLnBhdGgoIiVzLmtleSIgJSBob3N0KQotICAgICAgICBjZXJ0
X3BhdGggPSBzZWxmLnBhdGgoIiVzLnBlbSIgJSBob3N0KQotCi0gICAgICAgICMgVE9ETzogY2hl
Y2sgdGhhdCB0aGlzIGNlcnQgd2FzIHNpZ25lZCBieSB0aGUgQ0EgY2VydAotICAgICAgICBpZiBz
ZWxmLmNoZWNrX2tleV9jZXJ0KGtleV9wYXRoLCBjZXJ0X3BhdGgsIGhvc3RzKToKLSAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oIlVzaW5nIGV4aXN0aW5nIGhvc3QgY2VydCIpCi0gICAgICAg
ICAgICByZXR1cm4ga2V5X3BhdGgsIGNlcnRfcGF0aAotCi0gICAgZGVmIF9nZW5lcmF0ZV9ob3N0
X2NlcnQoc2VsZiwgaG9zdHMpOgotICAgICAgICBob3N0ID0gaG9zdHNbMF0KLSAgICAgICAgaWYg
c2VsZi5fY2Ffa2V5X3BhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2dlbmVyYXRlX2Nh
KCkKLSAgICAgICAgY2Ffa2V5X3BhdGggPSBzZWxmLl9jYV9rZXlfcGF0aAotCi0gICAgICAgIGFz
c2VydCBvcy5wYXRoLmV4aXN0cyhjYV9rZXlfcGF0aCkKLQotICAgICAgICBwYXRoID0gc2VsZi5w
YXRoCi0KLSAgICAgICAgcmVxX3BhdGggPSBwYXRoKCJ3cHQucmVxIikKLSAgICAgICAgY2VydF9w
YXRoID0gcGF0aCgiJXMucGVtIiAlIGhvc3QpCi0gICAgICAgIGtleV9wYXRoID0gcGF0aCgiJXMu
a2V5IiAlIGhvc3QpCi0KLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBuZXcg
aG9zdCBjZXJ0IikKLQotICAgICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKGhvc3RzKSBh
cyBvcGVuc3NsOgotICAgICAgICAgICAgb3BlbnNzbCgicmVxIiwKLSAgICAgICAgICAgICAgICAg
ICAgIi1iYXRjaCIsCi0gICAgICAgICAgICAgICAgICAgICItbmV3a2V5IiwgInJzYToyMDQ4IiwK
LSAgICAgICAgICAgICAgICAgICAgIi1rZXlvdXQiLCBrZXlfcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgIi1pbiIsIGNhX2tleV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLW5vZGVzIiwK
LSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCByZXFfcGF0aCkKLQotICAgICAgICAgICAgb3Bl
bnNzbCgiY2EiLAotICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAgICAgICAgICAg
ICAgICAgIi1pbiIsIHJlcV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLXBhc3NpbiIsICJw
YXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICItc3ViaiIsIG1h
a2Vfc3ViamVjdChob3N0KSwKLSAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgp
Ci0KLSAgICAgICAgb3MudW5saW5rKHJlcV9wYXRoKQotCi0gICAgICAgIHJldHVybiBrZXlfcGF0
aCwgY2VydF9wYXRoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvcHJlZ2VuZXJh
dGVkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzQ4N2RmM2FkZDAzOTFjM2Vm
NzFiNjllZDlmMzc3MzRmMTQyODkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc3NsdXRpbHMvcHJlZ2VuZXJhdGVkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAs
MCBAQAotY2xhc3MgUHJlZ2VuZXJhdGVkU1NMRW52aXJvbm1lbnQob2JqZWN0KToKLSAgICAiIiJT
U0wgZW52aXJvbm1lbnQgdG8gdXNlIHdpdGggZXhpc3Rpbmcga2V5L2NlcnRpZmljYXRlIGZpbGVz
Ci0gICAgZS5nLiB3aGVuIHJ1bm5pbmcgb24gYSBzZXJ2ZXIgd2l0aCBhIHB1YmxpYyBkb21haW4g
bmFtZQotICAgICIiIgotICAgIHNzbF9lbmFibGVkID0gVHJ1ZQotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgaG9zdF9rZXlfcGF0aCwgaG9zdF9jZXJ0X3BhdGgsCi0gICAgICAgICAg
ICAgICAgIGNhX2NlcnRfcGF0aD1Ob25lKToKLSAgICAgICAgc2VsZi5fY2FfY2VydF9wYXRoID0g
Y2FfY2VydF9wYXRoCi0gICAgICAgIHNlbGYuX2hvc3Rfa2V5X3BhdGggPSBob3N0X2tleV9wYXRo
Ci0gICAgICAgIHNlbGYuX2hvc3RfY2VydF9wYXRoID0gaG9zdF9jZXJ0X3BhdGgKLQotICAgIGRl
ZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0
X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGhvc3Rf
Y2VydF9wYXRoKHNlbGYsIGhvc3RzKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBrZXkgYW5kIGNl
cnRpZmljYXRlIHBhdGhzIGZvciB0aGUgaG9zdCIiIgotICAgICAgICByZXR1cm4gc2VsZi5faG9z
dF9rZXlfcGF0aCwgc2VsZi5faG9zdF9jZXJ0X3BhdGgKLQotICAgIGRlZiBjYV9jZXJ0X3BhdGgo
c2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgY2VydGlmaWNhdGUgcGF0aCBvZiB0aGUgQ0Eg
dGhhdCBzaWduZWQgdGhlCi0gICAgICAgIGhvc3QgY2VydGlmaWNhdGVzLCBvciBOb25lIGlmIHRo
YXQgaXNuJ3Qga25vd24iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zc2x1dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg2YzAxNzlmODc0ZTkzMGZkZTg0MzQ4NTA5NjVkYWY5MDkyYmQy
NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NzbHV0aWxzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL29wZW5zc2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljLy5naXRodWIvd29ya2Zsb3dzL3Rlc3RzLnltbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy8uZ2l0aHViL3dvcmtmbG93cy90ZXN0cy55bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGMyNDRkZTkzNTY5Yjc3ODQwMDU2NDFhNjU4MTcxZDljN2FhNTI2YTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
Ly5naXRodWIvd29ya2Zsb3dzL3Rlc3RzLnltbAorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCww
IEBACi1uYW1lOiB0ZXN0cwotCi1vbjogW3B1c2gsIHB1bGxfcmVxdWVzdF0KLQotam9iczoKLQot
ICBsaW50OgotICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKLSAgICBzdGVwczoKLSAgICAgIC0g
dXNlczogYWN0aW9ucy9jaGVja291dEB2MgotICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLXB5
dGhvbkB2MQotICAgICAgICB3aXRoOgotICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjcKLSAg
ICAgIC0gbmFtZTogSW5zdGFsbCBwYWNrYWdlcwotICAgICAgICBydW46IHBpcCBpbnN0YWxsIGJs
YWNrIGZsYWtlOCBpc29ydCBteXB5Ci0gICAgICAtIG5hbWU6IFJ1biBsaW50ZXJzCi0gICAgICAg
IHJ1bjogfAotICAgICAgICAgIGZsYWtlOCBleGFtcGxlcyBzcmMgdGVzdHMKLSAgICAgICAgICBp
c29ydCAtYyAtZGYgLXJjIGV4YW1wbGVzIHNyYyB0ZXN0cwotICAgICAgICAgIGJsYWNrIC0tY2hl
Y2sgLS1kaWZmIGV4YW1wbGVzIHNyYyB0ZXN0cwotICAgICAgICAgIG15cHkgZXhhbXBsZXMgc3Jj
Ci0KLSAgdGVzdDoKLSAgICBydW5zLW9uOiAke3sgbWF0cml4Lm9zIH19Ci0gICAgc3RyYXRlZ3k6
Ci0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0gICAgICBtYXRyaXg6Ci0gICAgICAgIG9zOiBbdWJ1
bnR1LWxhdGVzdCwgbWFjb3MtbGF0ZXN0LCB3aW5kb3dzLWxhdGVzdF0KLSAgICAgICAgcHl0aG9u
OiBbMy44LCAzLjcsIDMuNl0KLSAgICBzdGVwczoKLSAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVj
a291dEB2MgotICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MQotICAgICAgICB3
aXRoOgotICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAke3sgbWF0cml4LnB5dGhvbiB9fQotICAg
ICAgLSBuYW1lOiBEaXNhYmxlIGZpcmV3YWxsIGFuZCBjb25maWd1cmUgY29tcGlsZXIKLSAgICAg
ICAgaWY6IG1hdHJpeC5vcyA9PSAnbWFjb3MtbGF0ZXN0JwotICAgICAgICBydW46IHwKLSAgICAg
ICAgICBzdWRvIC91c3IvbGliZXhlYy9BcHBsaWNhdGlvbkZpcmV3YWxsL3NvY2tldGZpbHRlcmZ3
IC0tc2V0Z2xvYmFsc3RhdGUgb2ZmCi0gICAgICAgICAgZWNobyAiOjpzZXQtZW52IG5hbWU9QUlP
UVVJQ19TS0lQX1RFU1RTOjpjaGFjaGEyMCIKLSAgICAgICAgICBlY2hvICI6OnNldC1lbnYgbmFt
ZT1DRkxBR1M6Oi1JL3Vzci9sb2NhbC9vcHQvb3BlbnNzbC9pbmNsdWRlIgotICAgICAgICAgIGVj
aG8gIjo6c2V0LWVudiBuYW1lPUxERkxBR1M6Oi1ML3Vzci9sb2NhbC9vcHQvb3BlbnNzbC9saWIi
Ci0gICAgICAtIG5hbWU6IEluc3RhbGwgT3BlblNTTAotICAgICAgICBpZjogbWF0cml4Lm9zID09
ICd3aW5kb3dzLWxhdGVzdCcKLSAgICAgICAgcnVuOiB8Ci0gICAgICAgICAgY2hvY28gaW5zdGFs
bCBvcGVuc3NsIC0tbm8tcHJvZ3Jlc3MKLSAgICAgICAgICBlY2hvICI6OnNldC1lbnYgbmFtZT1D
TDo6L0lDOlxQcm9ncmF+MVxPcGVuU1NMLVdpbjY0XGluY2x1ZGUiCi0gICAgICAgICAgZWNobyAi
OjpzZXQtZW52IG5hbWU9TElOSzo6L0xJQlBBVEg6QzpcUHJvZ3JhfjFcT3BlblNTTC1XaW42NFxs
aWIiCi0gICAgICAtIG5hbWU6IFJ1biB0ZXN0cwotICAgICAgICBydW46IHwKLSAgICAgICAgICBw
eXRob24gLW0gcGlwIGluc3RhbGwgLVUgcGlwIHNldHVwdG9vbHMgd2hlZWwKLSAgICAgICAgICBw
aXAgaW5zdGFsbCBjb3ZlcmFnZQotICAgICAgICAgIHBpcCBpbnN0YWxsIC4KLSAgICAgICAgICBj
b3ZlcmFnZSBydW4gLW0gdW5pdHRlc3QgZGlzY292ZXIgLXYKLSAgICAgICAgICBjb3ZlcmFnZSB4
bWwKLSAgICAgICAgc2hlbGw6IGJhc2gKLSAgICAgIC0gbmFtZTogVXBsb2FkIGNvdmVyYWdlIHJl
cG9ydAotICAgICAgICB1c2VzOiBjb2RlY292L2NvZGVjb3YtYWN0aW9uQHYxCi0gICAgICAgIGlm
OiBtYXRyaXgucHl0aG9uICE9ICdweXB5MycKLSAgICAgICAgd2l0aDoKLSAgICAgICAgICB0b2tl
bjogJHt7IHNlY3JldHMuQ09ERUNPVl9UT0tFTiB9fQotCi0gIHBhY2thZ2Utc291cmNlOgotICAg
IHJ1bnMtb246IHVidW50dS1sYXRlc3QKLSAgICBzdGVwczoKLSAgICAgIC0gdXNlczogYWN0aW9u
cy9jaGVja291dEB2MgotICAgICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLXB5dGhvbkB2MQotICAg
ICAgICB3aXRoOgotICAgICAgICAgIHB5dGhvbi12ZXJzaW9uOiAzLjcKLSAgICAgIC0gbmFtZTog
QnVpbGQgc291cmNlIHBhY2thZ2UKLSAgICAgICAgcnVuOiBweXRob24gc2V0dXAucHkgc2Rpc3QK
LSAgICAgIC0gbmFtZTogVXBsb2FkIHNvdXJjZSBwYWNrYWdlCi0gICAgICAgIHVzZXM6IGFjdGlv
bnMvdXBsb2FkLWFydGlmYWN0QHYxCi0gICAgICAgIHdpdGg6Ci0gICAgICAgICAgbmFtZTogZGlz
dAotICAgICAgICAgIHBhdGg6IGRpc3QvCi0KLSAgcGFja2FnZS13aGVlbDoKLSAgICBydW5zLW9u
OiAke3sgbWF0cml4Lm9zIH19Ci0gICAgc3RyYXRlZ3k6Ci0gICAgICBtYXRyaXg6Ci0gICAgICAg
IG9zOiBbdWJ1bnR1LWxhdGVzdCwgbWFjb3MtbGF0ZXN0LCB3aW5kb3dzLWxhdGVzdF0KLSAgICBz
dGVwczoKLSAgICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2MgotICAgICAgLSB1c2VzOiBh
Y3Rpb25zL3NldHVwLXB5dGhvbkB2MQotICAgICAgICB3aXRoOgotICAgICAgICAgIHB5dGhvbi12
ZXJzaW9uOiAzLjcKLSAgICAgIC0gbmFtZTogQnVpbGQgd2hlZWxzCi0gICAgICAgIGVudjoKLSAg
ICAgICAgICBDSUJXX0JFRk9SRV9CVUlMRDogcHl0aG9uIHNjcmlwdHMvZmV0Y2gtdmVuZG9yIC90
bXAvdmVuZG9yCi0gICAgICAgICAgQ0lCV19CRUZPUkVfQlVJTERfV0lORE9XUzogcHl0aG9uIHNj
cmlwdHNcZmV0Y2gtdmVuZG9yIEM6XGNpYndcdmVuZG9yCi0gICAgICAgICAgQ0lCV19FTlZJUk9O
TUVOVDogQUlPUVVJQ19TS0lQX1RFU1RTPWlwdjYsbG9zcyBDRkxBR1M9LUkvdG1wL3ZlbmRvci9p
bmNsdWRlIExERkxBR1M9LUwvdG1wL3ZlbmRvci9saWIKLSAgICAgICAgICBDSUJXX0VOVklST05N
RU5UX1dJTkRPV1M6IEFJT1FVSUNfU0tJUF9URVNUUz1pcHY2LGxvc3MgQ0w9Ii9JQzpcY2lid1x2
ZW5kb3JcaW5jbHVkZSIgTElOSz0iL0xJQlBBVEg6QzpcY2lid1x2ZW5kb3JcbGliIgotICAgICAg
ICAgIENJQldfU0tJUDogY3AyNy0qIGNwMzMtKiBjcDM0LSogY3AzNS0qIHBwMjctKgotICAgICAg
ICAgIENJQldfVEVTVF9DT01NQU5EOiBweXRob24gLW0gdW5pdHRlc3QgZGlzY292ZXIgLXQge3By
b2plY3R9IC1zIHtwcm9qZWN0fS90ZXN0cwotICAgICAgICBydW46IHwKLSAgICAgICAgICBwaXAg
aW5zdGFsbCBjaWJ1aWxkd2hlZWwKLSAgICAgICAgICBjaWJ1aWxkd2hlZWwgLS1vdXRwdXQtZGly
IGRpc3QKLSAgICAgIC0gbmFtZTogVXBsb2FkIHdoZWVscwotICAgICAgICB1c2VzOiBhY3Rpb25z
L3VwbG9hZC1hcnRpZmFjdEB2MQotICAgICAgICB3aXRoOgotICAgICAgICAgIG5hbWU6IGRpc3QK
LSAgICAgICAgICBwYXRoOiBkaXN0LwotCi0gIHB1Ymxpc2g6Ci0gICAgcnVucy1vbjogdWJ1bnR1
LWxhdGVzdAotICAgIG5lZWRzOiBbbGludCwgdGVzdCwgcGFja2FnZS1zb3VyY2UsIHBhY2thZ2Ut
d2hlZWxdCi0gICAgc3RlcHM6Ci0gICAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLSAg
ICAgIC0gdXNlczogYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2MQotICAgICAgICB3aXRoOgot
ICAgICAgICAgIG5hbWU6IGRpc3QKLSAgICAgICAgICBwYXRoOiBkaXN0LwotICAgICAgLSBuYW1l
OiBQdWJsaXNoIHRvIFB5UEkKLSAgICAgICAgaWY6IGdpdGh1Yi5ldmVudF9uYW1lID09ICdwdXNo
JyAmJiBzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5yZWYsICdyZWZzL3RhZ3MvJykKLSAgICAgICAg
dXNlczogcHlwYS9naC1hY3Rpb24tcHlwaS1wdWJsaXNoQG1hc3RlcgotICAgICAgICB3aXRoOgot
ICAgICAgICAgIHVzZXI6IF9fdG9rZW5fXwotICAgICAgICAgIHBhc3N3b3JkOiAke3sgc2VjcmV0
cy5QWVBJX1RPS0VOIH19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvLmdpdGh1Yi93b3JrZmxv
d3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvLmdpdGh1Yi93b3JrZmxvd3MvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiYzBhZTk5YjIwZjQ4OWVl
NzdhODU1OWU1MmFjNzk0NTM0ZGFlMDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
Ly5naXRodWIvd29ya2Zsb3dzL3Rlc3RzLnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL0xJ
Q0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDQ5OTI0YTVhYTA4Mzk4NmQwYmQ3MDY5ZWRjNmVkZGVhYjdjZTBhZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvTElDRU5TRQor
KysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUNvcHlyaWdodCAoYykgMjAxOSBKZXJlbXkg
TGFpbsOpLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
LSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAgICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBh
aW9xdWljIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKLSAgICAgIGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQKLSAgICAgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQot
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLUZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi1EQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgotU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLUNBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi1PUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9NQU5JRkVT
VC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9NQU5JRkVTVC5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTVlMDkwM2FmOTk0ZTM0YzM1ZDhiMmVlZTIwYjRiYjNiNzY5ZGUyMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvTUFOSUZF
U1QuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWluY2x1ZGUgTElDRU5TRQotcmVj
dXJzaXZlLWluY2x1ZGUgZG9jcyAqLnB5ICoucnN0IE1ha2VmaWxlCi1yZWN1cnNpdmUtaW5jbHVk
ZSBleGFtcGxlcyAqLmh0bWwgKi5weQotcmVjdXJzaXZlLWluY2x1ZGUgdGVzdHMgKi5iaW4gKi5w
ZW0gKi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvUkVBRE1FLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBkNTAyYTc3MDBi
YTc5ZDU3YjQyNjc5OTEyNDE3ODFkZDlhNzQ2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvUkVBRE1FLnJzdAorKysgL2Rldi9udWxs
CkBAIC0xLDEzMSArMCwwIEBACi1haW9xdWljCi09PT09PT09Ci0KLXxydGR8IHxweXBpLXZ8IHxw
eXBpLXB5dmVyc2lvbnN8IHxweXBpLWx8IHx0ZXN0c3wgfGNvZGVjb3Z8IHxibGFja3wKLQotLi4g
fHJ0ZHwgaW1hZ2U6OiBodHRwczovL3JlYWR0aGVkb2NzLm9yZy9wcm9qZWN0cy9haW9xdWljL2Jh
ZGdlLz92ZXJzaW9uPWxhdGVzdAotICAgIDp0YXJnZXQ6IGh0dHBzOi8vYWlvcXVpYy5yZWFkdGhl
ZG9jcy5pby8KLQotLi4gfHB5cGktdnwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5
cGkvdi9haW9xdWljLnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5
cGkvYWlvcXVpYwotCi0uLiB8cHlwaS1weXZlcnNpb25zfCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNo
aWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL2Fpb3F1aWMuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6
Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9haW9xdWljCi0KLS4uIHxweXBpLWx8IGltYWdlOjogaHR0
cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL2wvYWlvcXVpYy5zdmcKLSAgICA6dGFyZ2V0OiBodHRw
czovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Fpb3F1aWMKLQotLi4gfHRlc3RzfCBpbWFnZTo6IGh0
dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlvcXVpYy93b3JrZmxvd3MvdGVzdHMvYmFkZ2Uuc3Zn
Ci0gICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2Fpb3J0Yy9haW9xdWljL2FjdGlvbnMK
LQotLi4gfGNvZGVjb3Z8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jb2RlY292L2Mv
Z2l0aHViL2Fpb3J0Yy9haW9xdWljLnN2ZwotICAgIDp0YXJnZXQ6IGh0dHBzOi8vY29kZWNvdi5p
by9naC9haW9ydGMvYWlvcXVpYwotCi0uLiB8YmxhY2t8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hp
ZWxkcy5pby9iYWRnZS9jb2RlJTIwc3R5bGUtYmxhY2stMDAwMDAwLnN2ZwotICAgIDp0YXJnZXQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vYmxhY2sKLQotV2hhdCBpcyBgYGFpb3F1aWNgYD8K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWBgYWlvcXVpY2BgIGlzIGEgbGlicmFyeSBmb3IgdGhl
IFFVSUMgbmV0d29yayBwcm90b2NvbCBpbiBQeXRob24uIEl0IGZlYXR1cmVzCi1hIG1pbmltYWwg
VExTIDEuMyBpbXBsZW1lbnRhdGlvbiwgYSBRVUlDIHN0YWNrIGFuZCBhbiBIVFRQLzMgc3RhY2su
Ci0KLVFVSUMgc3RhbmRhcmRpc2F0aW9uIGlzIG5vdCBmaW5hbGlzZWQgeWV0LCBidXQgYGBhaW9x
dWljYGAgY2xvc2VseSB0cmFja3MgdGhlCi1zcGVjaWZpY2F0aW9uIGRyYWZ0cyBhbmQgaXMgcmVn
dWxhcmx5IHRlc3RlZCBmb3IgaW50ZXJvcGVyYWJpbGl0eSBhZ2FpbnN0IG90aGVyCi1gUVVJQyBp
bXBsZW1lbnRhdGlvbnNgXy4KLQotVG8gbGVhcm4gbW9yZSBhYm91dCBgYGFpb3F1aWNgYCBwbGVh
c2UgYHJlYWQgdGhlIGRvY3VtZW50YXRpb25gXy4KLQotV2h5IHNob3VsZCBJIHVzZSBgYGFpb3F1
aWNgYD8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWBgYWlvcXVpY2BgIGhhcyBi
ZWVuIGRlc2lnbmVkIHRvIGJlIGVtYmVkZGVkIGludG8gUHl0aG9uIGNsaWVudCBhbmQgc2VydmVy
Ci1saWJyYXJpZXMgd2lzaGluZyB0byBzdXBwb3J0IFFVSUMgYW5kIC8gb3IgSFRUUC8zLiBUaGUg
Z29hbCBpcyB0byBwcm92aWRlIGEKLWNvbW1vbiBjb2RlYmFzZSBmb3IgUHl0aG9uIGxpYnJhcmll
cyBpbiB0aGUgaG9wZSBvZiBhdm9pZGluZyBkdXBsaWNhdGVkIGVmZm9ydC4KLQotQm90aCB0aGUg
UVVJQyBhbmQgdGhlIEhUVFAvMyBBUElzIGZvbGxvdyB0aGUgImJyaW5nIHlvdXIgb3duIEkvTyIg
cGF0dGVybiwKLWxlYXZpbmcgYWN0dWFsIEkvTyBvcGVyYXRpb25zIHRvIHRoZSBBUEkgdXNlci4g
VGhpcyBhcHByb2FjaCBoYXMgYSBudW1iZXIgb2YKLWFkdmFudGFnZXMgaW5jbHVkaW5nIG1ha2lu
ZyB0aGUgY29kZSB0ZXN0YWJsZSBhbmQgYWxsb3dpbmcgaW50ZWdyYXRpb24gd2l0aAotZGlmZmVy
ZW50IGNvbmN1cnJlbmN5IG1vZGVscy4KLQotRmVhdHVyZXMKLS0tLS0tLS0tCi0KLS0gUVVJQyBz
dGFjayBjb25mb3JtaW5nIHdpdGggZHJhZnQtMjcKLS0gSFRUUC8zIHN0YWNrIGNvbmZvcm1pbmcg
d2l0aCBkcmFmdC0yNwotLSBtaW5pbWFsIFRMUyAxLjMgaW1wbGVtZW50YXRpb24KLS0gSVB2NCBh
bmQgSVB2NiBzdXBwb3J0Ci0tIGNvbm5lY3Rpb24gbWlncmF0aW9uIGFuZCBOQVQgcmViaW5kaW5n
Ci0tIGxvZ2dpbmcgVExTIHRyYWZmaWMgc2VjcmV0cwotLSBsb2dnaW5nIFFVSUMgZXZlbnRzIGlu
IFFMT0cgZm9ybWF0Ci0tIEhUVFAvMyBzZXJ2ZXIgcHVzaCBzdXBwb3J0Ci0KLVJlcXVpcmVtZW50
cwotLS0tLS0tLS0tLS0tCi0KLWBgYWlvcXVpY2BgIHJlcXVpcmVzIFB5dGhvbiAzLjYgb3IgYmV0
dGVyLCBhbmQgdGhlIE9wZW5TU0wgZGV2ZWxvcG1lbnQgaGVhZGVycy4KLQotTGludXgKLS4uLi4u
Ci0KLU9uIERlYmlhbi9VYnVudHUgcnVuOgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29sZQotCi0g
ICAkIHN1ZG8gYXB0IGluc3RhbGwgbGlic3NsLWRldiBweXRob24zLWRldgotCi1PbiBBbHBpbmUg
TGludXggeW91IHdpbGwgYWxzbyBuZWVkIHRoZSBmb2xsb3dpbmc6Ci0KLS4uIGNvZGUtYmxvY2s6
OiBjb25zb2xlCi0KLSAgICQgc3VkbyBhcHQgaW5zdGFsbCBic2QtY29tcGF0LWhlYWRlcnMgbGli
ZmZpLWRldgotCi1PUyBYCi0uLi4uCi0KLU9uIE9TIFggcnVuOgotCi0uLiBjb2RlLWJsb2NrOjog
Y29uc29sZQotCi0gICAkIGJyZXcgaW5zdGFsbCBvcGVuc3NsCi0KLVlvdSB3aWxsIG5lZWQgdG8g
c2V0IHNvbWUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGxpbmsgYWdhaW5zdCBPcGVuU1NMOgot
Ci0uLiBjb2RlLWJsb2NrOjogY29uc29sZQotCi0gICAkIGV4cG9ydCBDRkxBR1M9LUkvdXNyL2xv
Y2FsL29wdC9vcGVuc3NsL2luY2x1ZGUKLSAgICQgZXhwb3J0IExERkxBR1M9LUwvdXNyL2xvY2Fs
L29wdC9vcGVuc3NsL2xpYgotCi1XaW5kb3dzCi0uLi4uLi4uCi0KLU9uIFdpbmRvd3MgdGhlIGVh
c2llc3Qgd2F5IHRvIGluc3RhbGwgT3BlblNTTCBpcyB0byB1c2UgYENob2NvbGF0ZXlgXy4KLQot
Li4gY29kZS1ibG9jazo6IGNvbnNvbGUKLQotICAgPiBjaG9jbyBpbnN0YWxsIG9wZW5zc2wKLQot
WW91IHdpbGwgbmVlZCB0byBzZXQgc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gbGluayBh
Z2FpbnN0IE9wZW5TU0w6Ci0KLS4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCi0KLSAgPiAkRW52OkNM
ID0gIi9JQzpcUHJvZ3JhfjFcT3BlblNTTC1XaW42NFxpbmNsdWRlIgotICA+ICRFbnY6TElOSyA9
ICIvTElCUEFUSDpDOlxQcm9ncmF+MVxPcGVuU1NMLVdpbjY0XGxpYiIKLQotUnVubmluZyB0aGUg
ZXhhbXBsZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWBhaW9xdWljYCBjb21lcyB3aXRoIGEg
bnVtYmVyIG9mIGV4YW1wbGVzIGlsbHVzdHJhdGluZyB2YXJpb3VzIFFVSUMgdXNlY2FzZXMuCi0K
LVlvdSBjYW4gYnJvd3NlIHRoZXNlIGV4YW1wbGVzIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9h
aW9ydGMvYWlvcXVpYy90cmVlL21hc3Rlci9leGFtcGxlcwotCi1MaWNlbnNlCi0tLS0tLS0tCi0K
LWBgYWlvcXVpY2BgIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBgQlNEIGxpY2Vuc2VgXy4KLQotLi4g
X3JlYWQgdGhlIGRvY3VtZW50YXRpb246IGh0dHBzOi8vYWlvcXVpYy5yZWFkdGhlZG9jcy5pby9l
bi9sYXRlc3QvCi0uLiBfUVVJQyBpbXBsZW1lbnRhdGlvbnM6IGh0dHBzOi8vZ2l0aHViLmNvbS9x
dWljd2cvYmFzZS1kcmFmdHMvd2lraS9JbXBsZW1lbnRhdGlvbnMKLS4uIF9jcnlwdG9ncmFwaHk6
IGh0dHBzOi8vY3J5cHRvZ3JhcGh5LmlvLwotLi4gX0Nob2NvbGF0ZXk6IGh0dHBzOi8vY2hvY29s
YXRleS5vcmcvCi0uLiBfQlNEIGxpY2Vuc2U6IGh0dHBzOi8vYWlvcXVpYy5yZWFkdGhlZG9jcy5p
by9lbi9sYXRlc3QvbGljZW5zZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9N
YWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzY2I3MzhiOTYxN2ZiMmQ5ZGQwNjY4NGJkMjI0ZjBhZDAzZTA2YTA1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9k
b2NzL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyBNaW5pbWFsIG1h
a2VmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbgotIwotCi0jIFlvdSBjYW4gc2V0IHRoZXNl
IHZhcmlhYmxlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCi1TUEhJTlhPUFRTICAgID0KLVNQSElO
WEJVSUxEICAgPSBzcGhpbngtYnVpbGQKLVNQSElOWFBST0ogICAgPSBhaW9xdWljCi1TT1VSQ0VE
SVIgICAgID0gLgotQlVJTERESVIgICAgICA9IF9idWlsZAotCi0jIFB1dCBpdCBmaXJzdCBzbyB0
aGF0ICJtYWtlIiB3aXRob3V0IGFyZ3VtZW50IGlzIGxpa2UgIm1ha2UgaGVscCIuCi1oZWxwOgot
CUAkKFNQSElOWEJVSUxEKSAtTSBoZWxwICIkKFNPVVJDRURJUikiICIkKEJVSUxERElSKSIgJChT
UEhJTlhPUFRTKSAkKE8pCi0KLS5QSE9OWTogaGVscCBNYWtlZmlsZQotCi0jIENhdGNoLWFsbCB0
YXJnZXQ6IHJvdXRlIGFsbCB1bmtub3duIHRhcmdldHMgdG8gU3BoaW54IHVzaW5nIHRoZSBuZXcK
LSMgIm1ha2UgbW9kZSIgb3B0aW9uLiAgJChPKSBpcyBtZWFudCBhcyBhIHNob3J0Y3V0IGZvciAk
KFNQSElOWE9QVFMpLgotJTogTWFrZWZpbGUKLQlAJChTUEhJTlhCVUlMRCkgLU0gJEAgIiQoU09V
UkNFRElSKSIgIiQoQlVJTERESVIpIiAkKFNQSElOWE9QVFMpICQoTykKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9hc3luY2lvLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9kb2NzL2FzeW5jaW8ucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAyZWM1NjgwOTAxNDYwYjAzMjgzYTRhYzZjZjY1NGU4YzJhYWM2MGZiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2Fz
eW5jaW8ucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotYXN5bmNpbyBBUEkKLT09
PT09PT09PT09Ci0KLVRoZSBhc3luY2lvIEFQSSBwcm92aWRlcyBhIGhpZ2gtbGV2ZWwgUVVJQyBB
UEkgYnVpbHQgb24gdG9wIG9mIDptb2Q6YGFzeW5jaW9gLAotUHl0aG9uJ3Mgc3RhbmRhcmQgYXN5
bmNocm9ub3VzIEkvTyBmcmFtZXdvcmsuCi0KLWBgYWlvcXVpY2BgIGNvbWVzIHdpdGggYSBzZWxl
Y3Rpb24gb2YgZXhhbXBsZXMsIGluY2x1ZGluZzoKLQotLSBhbiBIVFRQLzMgY2xpZW50Ci0tIGFu
IEhUVFAvMyBzZXJ2ZXIKLQotVGhlIGV4YW1wbGVzIGNhbiBiZSBicm93c2VkIG9uIEdpdEh1YjoK
LQotaHR0cHM6Ly9naXRodWIuY29tL2Fpb3J0Yy9haW9xdWljL3RyZWUvbWFzdGVyL2V4YW1wbGVz
Ci0KLS4uIGF1dG9tb2R1bGU6OiBhaW9xdWljLmFzeW5jaW8KLQotQ2xpZW50Ci0tLS0tLS0KLQot
ICAgIC4uIGF1dG9mdW5jdGlvbjo6IGNvbm5lY3QKLQotU2VydmVyCi0tLS0tLS0KLQotICAgIC4u
IGF1dG9mdW5jdGlvbjo6IHNlcnZlCi0KLUNvbW1vbgotLS0tLS0tCi0KLSAgICAuLiBhdXRvY2xh
c3M6OiBRdWljQ29ubmVjdGlvblByb3RvY29sCi0gICAgICAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2NvbmYucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4OTA2MmFjOTc1MzI2YTQ3Zjg4ZWRhZTRk
OGQzNDNjZmU3NjBjMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvY29uZi5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwNSAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24zCi0jIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQot
IwotIyBhaW9xdWljIGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlvbiBmaWxlLCBjcmVh
dGVkIGJ5Ci0jIHNwaGlueC1xdWlja3N0YXJ0IG9uIFRodSBGZWIgIDggMTc6MjI6MTQgMjAxOC4K
LSMKLSMgVGhpcyBmaWxlIGlzIGV4ZWNmaWxlKClkIHdpdGggdGhlIGN1cnJlbnQgZGlyZWN0b3J5
IHNldCB0byBpdHMKLSMgY29udGFpbmluZyBkaXIuCi0jCi0jIE5vdGUgdGhhdCBub3QgYWxsIHBv
c3NpYmxlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZSBwcmVzZW50IGluIHRoaXMKLSMgYXV0b2dl
bmVyYXRlZCBmaWxlLgotIwotIyBBbGwgY29uZmlndXJhdGlvbiB2YWx1ZXMgaGF2ZSBhIGRlZmF1
bHQ7IHZhbHVlcyB0aGF0IGFyZSBjb21tZW50ZWQgb3V0Ci0jIHNlcnZlIHRvIHNob3cgdGhlIGRl
ZmF1bHQuCi0KLWltcG9ydCBzeXMsIG9zCi0KLSMgSWYgZXh0ZW5zaW9ucyAob3IgbW9kdWxlcyB0
byBkb2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBpbiBhbm90aGVyIGRpcmVjdG9yeSwKLSMgYWRk
IHRoZXNlIGRpcmVjdG9yaWVzIHRvIHN5cy5wYXRoIGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMg
cmVsYXRpdmUgdG8gdGhlCi0jIGRvY3VtZW50YXRpb24gcm9vdCwgdXNlIG9zLnBhdGguYWJzcGF0
aCB0byBtYWtlIGl0IGFic29sdXRlLCBsaWtlIHNob3duIGhlcmUuCi1zeXMucGF0aC5pbnNlcnQo
MCwgb3MucGF0aC5hYnNwYXRoKCcuLicpKQotCi0KLWNsYXNzIE1vY2tCdWZmZXI6Ci0gICAgQnVm
ZmVyID0gTm9uZQotICAgIEJ1ZmZlclJlYWRFcnJvciA9IE5vbmUKLSAgICBCdWZmZXJXcml0ZUVy
cm9yID0gTm9uZQotCi0KLWNsYXNzIE1vY2tDcnlwdG86Ci0gICAgQUVBRCA9IE5vbmUKLSAgICBD
cnlwdG9FcnJvciA9IFZhbHVlRXJyb3IKLSAgICBIZWFkZXJQcm90ZWN0aW9uID0gTm9uZQotCi0K
LWNsYXNzIE1vY2tQeWxzcXBhY2s6Ci0gICAgRGVjb2RlciA9IE5vbmUKLSAgICBFbmNvZGVyID0g
Tm9uZQotICAgIFN0cmVhbUJsb2NrZWQgPSBOb25lCi0KLQotc3lzLm1vZHVsZXMudXBkYXRlKHsK
LSAgICAiYWlvcXVpYy5fYnVmZmVyIjogTW9ja0J1ZmZlcigpLAotICAgICJhaW9xdWljLl9jcnlw
dG8iOiBNb2NrQ3J5cHRvKCksCi0gICAgInB5bHNxcGFjayI6IE1vY2tQeWxzcXBhY2soKSwKLX0p
Ci0KLSMgLS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIElmIHlvdXIgZG9jdW1lbnRhdGlvbiBuZWVkcyBh
IG1pbmltYWwgU3BoaW54IHZlcnNpb24sIHN0YXRlIGl0IGhlcmUuCi0jCi0jIG5lZWRzX3NwaGlu
eCA9ICcxLjAnCi0KLSMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJl
LCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZQotIyBleHRlbnNpb25zIGNvbWluZyB3aXRoIFNwaGlu
eCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tCi0jIG9uZXMuCi1leHRlbnNp
b25zID0gWwotICAgICdzcGhpbnguZXh0LmF1dG9kb2MnLAotICAgICdzcGhpbnguZXh0LmludGVy
c3BoaW54JywKLSAgICAnc3BoaW54X2F1dG9kb2NfdHlwZWhpbnRzJywKLSAgICAnc3BoaW54Y29u
dHJpYi5hc3luY2lvJywKLV0KLWludGVyc3BoaW54X21hcHBpbmcgPSB7Ci0gICAgJ2NyeXB0b2dy
YXBoeSc6ICgnaHR0cHM6Ly9jcnlwdG9ncmFwaHkuaW8vZW4vbGF0ZXN0JywgTm9uZSksCi0gICAg
J3B5dGhvbic6ICgnaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMycsIE5vbmUpLAotfQotCi0jIEFk
ZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlz
IGRpcmVjdG9yeS4KLXRlbXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KLQotIyBUaGUgc3Vm
Zml4KGVzKSBvZiBzb3VyY2UgZmlsZW5hbWVzLgotIyBZb3UgY2FuIHNwZWNpZnkgbXVsdGlwbGUg
c3VmZml4IGFzIGEgbGlzdCBvZiBzdHJpbmc6Ci0jCi0jIHNvdXJjZV9zdWZmaXggPSBbJy5yc3Qn
LCAnLm1kJ10KLXNvdXJjZV9zdWZmaXggPSAnLnJzdCcKLQotIyBUaGUgbWFzdGVyIHRvY3RyZWUg
ZG9jdW1lbnQuCi1tYXN0ZXJfZG9jID0gJ2luZGV4JwotCi0jIEdlbmVyYWwgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHByb2plY3QuCi1wcm9qZWN0ID0gJ2Fpb3F1aWMnCi1jb3B5cmlnaHQgPSB1JzIw
MTksIEplcmVteSBMYWluw6knCi1hdXRob3IgPSB1J0plcmVteSBMYWluw6knCi0KLSMgVGhlIHZl
cnNpb24gaW5mbyBmb3IgdGhlIHByb2plY3QgeW91J3JlIGRvY3VtZW50aW5nLCBhY3RzIGFzIHJl
cGxhY2VtZW50IGZvcgotIyB8dmVyc2lvbnwgYW5kIHxyZWxlYXNlfCwgYWxzbyB1c2VkIGluIHZh
cmlvdXMgb3RoZXIgcGxhY2VzIHRocm91Z2hvdXQgdGhlCi0jIGJ1aWx0IGRvY3VtZW50cy4KLSMK
LSMgVGhlIHNob3J0IFguWSB2ZXJzaW9uLgotdmVyc2lvbiA9ICcnCi0jIFRoZSBmdWxsIHZlcnNp
b24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCi1yZWxlYXNlID0gJycKLQotIyBUaGUg
bGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhpbnguIFJlZmVyIHRvIGRv
Y3VtZW50YXRpb24KLSMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLgotIwotIyBU
aGlzIGlzIGFsc28gdXNlZCBpZiB5b3UgZG8gY29udGVudCB0cmFuc2xhdGlvbiB2aWEgZ2V0dGV4
dCBjYXRhbG9ncy4KLSMgVXN1YWxseSB5b3Ugc2V0ICJsYW5ndWFnZSIgZnJvbSB0aGUgY29tbWFu
ZCBsaW5lIGZvciB0aGVzZSBjYXNlcy4KLWxhbmd1YWdlID0gTm9uZQotCi0jIExpc3Qgb2YgcGF0
dGVybnMsIHJlbGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5k
Ci0jIGRpcmVjdG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4K
LSMgVGhpcyBwYXR0ZXJucyBhbHNvIGVmZmVjdCB0byBodG1sX3N0YXRpY19wYXRoIGFuZCBodG1s
X2V4dHJhX3BhdGgKLWV4Y2x1ZGVfcGF0dGVybnMgPSBbJ19idWlsZCcsICdUaHVtYnMuZGInLCAn
LkRTX1N0b3JlJ10KLQotIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGln
aHRpbmcpIHN0eWxlIHRvIHVzZS4KLXB5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKLQotIyBJZiB0
cnVlLCBgdG9kb2AgYW5kIGB0b2RvTGlzdGAgcHJvZHVjZSBvdXRwdXQsIGVsc2UgdGhleSBwcm9k
dWNlIG5vdGhpbmcuCi10b2RvX2luY2x1ZGVfdG9kb3MgPSBGYWxzZQotCi0KLSMgLS0gT3B0aW9u
cyBmb3IgSFRNTCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0jIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBwYWdl
cy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKLSMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVz
LgotIwotaHRtbF90aGVtZSA9ICdhbGFiYXN0ZXInCi0KLSMgVGhlbWUgb3B0aW9ucyBhcmUgdGhl
bWUtc3BlY2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCi0j
IGZ1cnRoZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1l
LCBzZWUgdGhlCi0jIGRvY3VtZW50YXRpb24uCi0jCi1odG1sX3RoZW1lX29wdGlvbnMgPSB7Ci0g
ICAgJ2Rlc2NyaXB0aW9uJzogJ0EgbGlicmFyeSBmb3IgUVVJQyBpbiBQeXRob24uJywKLSAgICAn
Z2l0aHViX2J1dHRvbic6IFRydWUsCi0gICAgJ2dpdGh1Yl91c2VyJzogJ2Fpb3J0YycsCi0gICAg
J2dpdGh1Yl9yZXBvJzogJ2Fpb3F1aWMnLAotfQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250
YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5bGUgc2hlZXRzKSBoZXJlLAotIyBy
ZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUgY29waWVkIGFmdGVyIHRoZSBidWls
dGluIHN0YXRpYyBmaWxlcywKLSMgc28gYSBmaWxlIG5hbWVkICJkZWZhdWx0LmNzcyIgd2lsbCBv
dmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4KLWh0bWxfc3RhdGljX3BhdGggPSBb
J19zdGF0aWMnXQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbXVzdCBiZSBhIGRpY3Rp
b25hcnkgdGhhdCBtYXBzIGRvY3VtZW50IG5hbWVzCi0jIHRvIHRlbXBsYXRlIG5hbWVzLgotIwot
IyBUaGlzIGlzIHJlcXVpcmVkIGZvciB0aGUgYWxhYmFzdGVyIHRoZW1lCi0jIHJlZnM6IGh0dHA6
Ly9hbGFiYXN0ZXIucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2luc3RhbGxhdGlvbi5odG1sI3Np
ZGViYXJzCi1odG1sX3NpZGViYXJzID0gewotICAgICcqKic6IFsKLSAgICAgICAgJ2Fib3V0Lmh0
bWwnLAotICAgICAgICAnbmF2aWdhdGlvbi5odG1sJywKLSAgICAgICAgJ3JlbGF0aW9ucy5odG1s
JywKLSAgICAgICAgJ3NlYXJjaGJveC5odG1sJywKLSAgICBdCi19Ci0KLQotIyAtLSBPcHRpb25z
IGZvciBIVE1MSGVscCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLSMgT3V0cHV0IGZpbGUgYmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRlci4K
LWh0bWxoZWxwX2Jhc2VuYW1lID0gJ2Fpb3F1aWNkb2MnCi0KLQotIyAtLSBPcHRpb25zIGZvciBM
YVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLWxhdGV4X2VsZW1lbnRzID0gewotICAgICMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXJwYXBl
cicgb3IgJ2E0cGFwZXInKS4KLSAgICAjCi0gICAgIyAncGFwZXJzaXplJzogJ2xldHRlcnBhcGVy
JywKLQotICAgICMgVGhlIGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KLSAg
ICAjCi0gICAgIyAncG9pbnRzaXplJzogJzEwcHQnLAotCi0gICAgIyBBZGRpdGlvbmFsIHN0dWZm
IGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCi0gICAgIwotICAgICMgJ3ByZWFtYmxlJzogJycsCi0K
LSAgICAjIExhdGV4IGZpZ3VyZSAoZmxvYXQpIGFsaWdubWVudAotICAgICMKLSAgICAjICdmaWd1
cmVfYWxpZ24nOiAnaHRicCcsCi19Ci0KLSMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50
byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJn
ZXQgbmFtZSwgdGl0bGUsCi0jICBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvLCBtYW51YWws
IG9yIG93biBjbGFzc10pLgotbGF0ZXhfZG9jdW1lbnRzID0gWwotICAgIChtYXN0ZXJfZG9jLCAn
YWlvcXVpYy50ZXgnLCAnYWlvcXVpYyBEb2N1bWVudGF0aW9uJywKLSAgICAgYXV0aG9yLCAnbWFu
dWFsJyksCi1dCi0KLQotIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgT25lIGVudHJ5IHBlciBtYW51
YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNj
cmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgotbWFuX3BhZ2VzID0gWwotICAgICht
YXN0ZXJfZG9jLCAnYWlvcXVpYycsICdhaW9xdWljIERvY3VtZW50YXRpb24nLAotICAgICBbYXV0
aG9yXSwgMSkKLV0KLQotCi0jIC0tIE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBHcm91cGluZyB0aGUgZG9j
dW1lbnQgdHJlZSBpbnRvIFRleGluZm8gZmlsZXMuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3VyY2Ug
c3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsCi0jICBkaXIgbWVudSBlbnRy
eSwgZGVzY3JpcHRpb24sIGNhdGVnb3J5KQotdGV4aW5mb19kb2N1bWVudHMgPSBbCi0gICAgKG1h
c3Rlcl9kb2MsICdhaW9xdWljJywgJ2Fpb3F1aWMgRG9jdW1lbnRhdGlvbicsCi0gICAgIGF1dGhv
ciwgJ2Fpb3F1aWMnLCAnT25lIGxpbmUgZGVzY3JpcHRpb24gb2YgcHJvamVjdC4nLAotICAgICAn
TWlzY2VsbGFuZW91cycpLAotXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvZGVzaWdu
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2Rlc2lnbi5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc1MjllNzYyZjVhNjM0ZTJhMzU3OTFlNDY1YjkwNDliYTRiZTYyMTguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2Rv
Y3MvZGVzaWduLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLURlc2lnbgotPT09
PT09Ci0KLVNhbnMtSU8gQVBJcwotLi4uLi4uLi4uLi4uCi0KLUJvdGggdGhlIFFVSUMgYW5kIHRo
ZSBIVFRQLzMgQVBJcyBmb2xsb3cgdGhlIGBzYW5zIEkvT2BfIHBhdHRlcm4sIGxlYXZpbmcKLWFj
dHVhbCBJL08gb3BlcmF0aW9ucyB0byB0aGUgQVBJIHVzZXIuIFRoaXMgYXBwcm9hY2ggaGFzIGEg
bnVtYmVyIG9mCi1hZHZhbnRhZ2VzIGluY2x1ZGluZyBtYWtpbmcgdGhlIGNvZGUgdGVzdGFibGUg
YW5kIGFsbG93aW5nIGludGVncmF0aW9uIHdpdGgKLWRpZmZlcmVudCBjb25jdXJyZW5jeSBtb2Rl
bHMuCi0KLVRMUyBhbmQgZW5jcnlwdGlvbgotLi4uLi4uLi4uLi4uLi4uLi4uCi0KLVRMUyAxLjMK
LSsrKysrKysKLQotYGBhaW9xdWljYGAgZmVhdHVyZXMgYSBtaW5pbWFsIFRMUyAxLjMgaW1wbGVt
ZW50YXRpb24gYnVpbHQgdXBvbiB0aGUKLWBjcnlwdG9ncmFwaHlgXyBsaWJyYXJ5LiBUaGlzIGlz
IGJlY2F1c2UgUVVJQyByZXF1aXJlcyBzb21lIEFQSXMgd2hpY2ggYXJlCi1jdXJyZW50bHkgdW5h
dmFpbGFibGUgaW4gbWFpbnN0cmVhbSBUTFMgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgT3BlblNT
TDoKLQotLSB0aGUgYWJpbGl0eSB0byBleHRyYWN0IHRyYWZmaWMgc2VjcmV0cwotCi0tIHRoZSBh
YmlsaXR5IHRvIG9wZXJhdGUgZGlyZWN0bHkgb24gVExTIG1lc3NhZ2VzLCB3aXRob3V0IHVzaW5n
IHRoZSBUTFMKLSAgcmVjb3JkIGxheWVyCi0KLUhlYWRlciBwcm90ZWN0aW9uIGFuZCBwYXlsb2Fk
IGVuY3J5cHRpb24KLSsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLQot
UVVJQyBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB0byBw
cm90ZWN0IFFVSUMgcGFja2V0Ci1oZWFkZXJzIGFuZCBlbmNyeXB0IHBhY2tldCBwYXlsb2Fkcy4g
VGhlc2Ugb3BlcmF0aW9ucyBvY2N1ciBmb3IgZXZlcnkgc2luZ2xlCi1wYWNrZXQgYW5kIGFyZSBh
IGRldGVybWluaW5nIGZhY3RvciBmb3IgcGVyZm9ybWFuY2UuIEZvciB0aGlzIHJlYXNvbiwgdGhl
eQotYXJlIGltcGxlbWVudGVkIGFzIGEgQyBleHRlbnNpb24gbGlua2VkIHRvIGBPcGVuU1NMYF8u
Ci0KLS4uIF9zYW5zIEkvTzogaHR0cHM6Ly9zYW5zLWlvLnJlYWR0aGVkb2NzLmlvLwotLi4gX2Ny
eXB0b2dyYXBoeTogaHR0cHM6Ly9jcnlwdG9ncmFwaHkuaW8vCi0uLiBfT3BlblNTTDogaHR0cHM6
Ly93d3cub3BlbnNzbC5vcmcvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9oMy5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvZG9jcy9oMy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMwZTIyMDFjNDNkNDZiMGNiYjJiYWMyOGRmY2Y1OTIwYTAxMjkxNWYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvaDMucnN0
CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotSFRUUC8zIEFQSQotPT09PT09PT09PQot
Ci1UaGUgSFRUUC8zIEFQSSBwZXJmb3JtcyBubyBJL08gb24gaXRzIG93biwgbGVhdmluZyB0aGlz
IHRvIHRoZSBBUEkgdXNlci4KLVRoaXMgYWxsb3dzIHlvdSB0byBpbnRlZ3JhdGUgSFRUUC8zIGlu
IGFueSBQeXRob24gYXBwbGljYXRpb24sIHJlZ2FyZGxlc3Mgb2YKLXRoZSBjb25jdXJyZW5jeSBt
b2RlbCB5b3UgYXJlIHVzaW5nLgotCi1Db25uZWN0aW9uCi0tLS0tLS0tLS0tCi0KLS4uIGF1dG9t
b2R1bGU6OiBhaW9xdWljLmgzLmNvbm5lY3Rpb24KLQotICAgIC4uIGF1dG9jbGFzczo6IEgzQ29u
bmVjdGlvbgotICAgICAgICA6bWVtYmVyczoKLQotCi1FdmVudHMKLS0tLS0tLQotCi0uLiBhdXRv
bW9kdWxlOjogYWlvcXVpYy5oMy5ldmVudHMKLQotICAgIC4uIGF1dG9jbGFzczo6IEgzRXZlbnQK
LSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBEYXRhUmVjZWl2ZWQKLSAg
ICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBIZWFkZXJzUmVjZWl2ZWQKLSAg
ICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBQdXNoUHJvbWlzZVJlY2VpdmVk
Ci0gICAgICAgIDptZW1iZXJzOgotCi0KLUV4Y2VwdGlvbnMKLS0tLS0tLS0tLS0KLQotLi4gYXV0
b21vZHVsZTo6IGFpb3F1aWMuaDMuZXhjZXB0aW9ucwotCi0gICAgLi4gYXV0b2NsYXNzOjogSDNF
cnJvcgotICAgICAgICA6bWVtYmVyczoKLQotICAgIC4uIGF1dG9jbGFzczo6IE5vQXZhaWxhYmxl
UHVzaElERXJyb3IKLSAgICAgICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
ZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9pbmRleC5yc3QKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDI4NDE1NjFhMjI0MDQwYmMxYThhY2UyNjZhZDAxNTY4ZjY4NDE3
YTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2RvY3MvaW5kZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotYWlv
cXVpYwotPT09PT09PQotCi18cHlwaS12fCB8cHlwaS1weXZlcnNpb25zfCB8cHlwaS1sfCB8dGVz
dHN8IHxjb2RlY292fAotCi0uLiB8cHlwaS12fCBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMu
aW8vcHlwaS92L2Fpb3F1aWMuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9weXBpLnB5dGhvbi5v
cmcvcHlwaS9haW9xdWljCi0KLS4uIHxweXBpLXB5dmVyc2lvbnN8IGltYWdlOjogaHR0cHM6Ly9p
bWcuc2hpZWxkcy5pby9weXBpL3B5dmVyc2lvbnMvYWlvcXVpYy5zdmcKLSAgICA6dGFyZ2V0OiBo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL2Fpb3F1aWMKLQotLi4gfHB5cGktbHwgaW1hZ2U6
OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3B5cGkvbC9haW9xdWljLnN2ZwotICAgIDp0YXJnZXQ6
IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvYWlvcXVpYwotCi0uLiB8dGVzdHN8IGltYWdl
OjogaHR0cHM6Ly9naXRodWIuY29tL2Fpb3J0Yy9haW9xdWljL3dvcmtmbG93cy90ZXN0cy9iYWRn
ZS5zdmcKLSAgICA6dGFyZ2V0OiBodHRwczovL2dpdGh1Yi5jb20vYWlvcnRjL2Fpb3F1aWMvYWN0
aW9ucwotCi0uLiB8Y29kZWNvdnwgaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NvZGVj
b3YvYy9naXRodWIvYWlvcnRjL2Fpb3F1aWMuc3ZnCi0gICAgOnRhcmdldDogaHR0cHM6Ly9jb2Rl
Y292LmlvL2doL2Fpb3J0Yy9haW9xdWljCi0KLWBgYWlvcXVpY2BgIGlzIGEgbGlicmFyeSBmb3Ig
dGhlIFFVSUMgbmV0d29yayBwcm90b2NvbCBpbiBQeXRob24uIEl0IGZlYXR1cmVzIHNldmVyYWwK
LUFQSXM6Ci0KLS0gYSBRVUlDIEFQSSBmb2xsb3dpbmcgdGhlICJicmluZyB5b3VyIG93biBJL08i
IHBhdHRlcm4sIHN1aXRhYmxlIGZvcgotICBlbWJlZGRpbmcgaW4gYW55IGZyYW1ld29yaywKLQot
LSBhbiBIVFRQLzMgQVBJIHdoaWNoIGFsc28gZm9sbG93cyB0aGUgImJyaW5nIHlvdXIgb3duIEkv
TyIgcGF0dGVybiwKLQotLSBhIFFVSUMgY29udmVuaWVuY2UgQVBJIGJ1aWx0IG9uIHRvcCBvZiA6
bW9kOmBhc3luY2lvYCwgUHl0aG9uJ3Mgc3RhbmRhcmQgYXN5bmNocm9ub3VzCi0gIEkvTyBmcmFt
ZXdvcmsuCi0KLS4uIHRvY3RyZWU6OgotICAgOm1heGRlcHRoOiAyCi0KLSAgIGRlc2lnbgotICAg
cXVpYwotICAgaDMKLSAgIGFzeW5jaW8KLSAgIGxpY2Vuc2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9kb2NzL2xpY2Vuc2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvbGljZW5zZS5yc3QKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0MmQzYjA3ZmM5M2Y2NDdmM2ZkMDhlNjViNGI0
ZmFkZGNmMzNhZmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL2RvY3MvbGljZW5zZS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0ICsw
LDAgQEAKLUxpY2Vuc2UKLS0tLS0tLS0KLQotLi4gbGl0ZXJhbGluY2x1ZGU6OiAuLi9MSUNFTlNF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9xdWljLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9k
b2NzL3F1aWMucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGViZWZiNDlkNTE0
YTQ1MTVjMjIzY2RjODQzNjljZDE2YTEyYjczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL3F1aWMucnN0CisrKyAvZGV2L251
bGwKQEAgLTEsNTEgKzAsMCBAQAotUVVJQyBBUEkKLT09PT09PT09Ci0KLVRoZSBRVUlDIEFQSSBw
ZXJmb3JtcyBubyBJL08gb24gaXRzIG93biwgbGVhdmluZyB0aGlzIHRvIHRoZSBBUEkgdXNlci4K
LVRoaXMgYWxsb3dzIHlvdSB0byBpbnRlZ3JhdGUgUVVJQyBpbiBhbnkgUHl0aG9uIGFwcGxpY2F0
aW9uLCByZWdhcmRsZXNzIG9mCi10aGUgY29uY3VycmVuY3kgbW9kZWwgeW91IGFyZSB1c2luZy4K
LQotQ29ubmVjdGlvbgotLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogYWlvcXVpYy5xdWlj
LmNvbm5lY3Rpb24KLQotICAgIC4uIGF1dG9jbGFzczo6IFF1aWNDb25uZWN0aW9uCi0gICAgICAg
IDptZW1iZXJzOgotCi0KLUNvbmZpZ3VyYXRpb24KLS0tLS0tLS0tLS0tLS0KLQotLi4gYXV0b21v
ZHVsZTo6IGFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uCi0KLSAgICAuLiBhdXRvY2xhc3M6OiBR
dWljQ29uZmlndXJhdGlvbgotICAgICAgICA6bWVtYmVyczoKLQotLi4gYXV0b21vZHVsZTo6IGFp
b3F1aWMucXVpYy5sb2dnZXIKLQotICAgIC4uIGF1dG9jbGFzczo6IFF1aWNMb2dnZXIKLSAgICAg
ICAgOm1lbWJlcnM6Ci0KLUV2ZW50cwotLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBhaW9xdWlj
LnF1aWMuZXZlbnRzCi0KLSAgICAuLiBhdXRvY2xhc3M6OiBRdWljRXZlbnQKLSAgICAgICAgOm1l
bWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBDb25uZWN0aW9uVGVybWluYXRlZAotICAgICAg
ICA6bWVtYmVyczoKLQotICAgIC4uIGF1dG9jbGFzczo6IEhhbmRzaGFrZUNvbXBsZXRlZAotICAg
ICAgICA6bWVtYmVyczoKLQotICAgIC4uIGF1dG9jbGFzczo6IFBpbmdBY2tub3dsZWRnZWQKLSAg
ICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBTdHJlYW1EYXRhUmVjZWl2ZWQK
LSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBhdXRvY2xhc3M6OiBTdHJlYW1SZXNldAotICAg
ICAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA4MGU3OTk5MDQzZDI5NzQxYTEzNDkxNjY3OGQ1NDA0OTkyYTk3NWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2FzeW5j
aW8ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9kb2NzL2Rl
c2lnbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9oMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9p
bmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZG9jcy9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9k
b2NzL3F1aWMucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvUkVBRE1FLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9SRUFETUUucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1ZDRhZjU3ZDUxNDRhZjEzZTQyZDc5N2JhMzA5Zjk3NGM2MzU3NThiLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9l
eGFtcGxlcy9SRUFETUUucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotRXhhbXBs
ZXMKLT09PT09PT09Ci0KLUFmdGVyIGNoZWNraW5nIG91dCB0aGUgY29kZSB1c2luZyBnaXQgeW91
IGNhbiBydW46Ci0KLS4uIGNvZGUtYmxvY2s6OiBjb25zb2xlCi0KLSAgICQgcGlwIGluc3RhbGwg
LWUgLgotICAgJCBwaXAgaW5zdGFsbCBhaW9maWxlcyBhc2dpcmVmIGRuc2xpYiBodHRwYmluIHN0
YXJsZXR0ZSB3c3Byb3RvCi0KLQotSFRUUC8zCi0tLS0tLS0KLQotSFRUUC8zIHNlcnZlcgotLi4u
Li4uLi4uLi4uLgotCi1Zb3UgY2FuIHJ1biB0aGUgZXhhbXBsZSBzZXJ2ZXIsIHdoaWNoIGhhbmRs
ZXMgYm90aCBIVFRQLzAuOSBhbmQgSFRUUC8zOgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29sZQot
Ci0gICAkIHB5dGhvbiBleGFtcGxlcy9odHRwM19zZXJ2ZXIucHkgLS1jZXJ0aWZpY2F0ZSB0ZXN0
cy9zc2xfY2VydC5wZW0gLS1wcml2YXRlLWtleSB0ZXN0cy9zc2xfa2V5LnBlbQotCi1IVFRQLzMg
Y2xpZW50Ci0uLi4uLi4uLi4uLi4uCi0KLVlvdSBjYW4gcnVuIHRoZSBleGFtcGxlIGNsaWVudCB0
byBwZXJmb3JtIGFuIEhUVFAvMyByZXF1ZXN0OgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29sZQot
Ci0gICQgcHl0aG9uIGV4YW1wbGVzL2h0dHAzX2NsaWVudC5weSAtLWNhLWNlcnRzIHRlc3RzL3B5
Y2FjZXJ0LnBlbSBodHRwczovL2xvY2FsaG9zdDo0NDMzLwotCi1BbHRlcm5hdGl2ZWx5IHlvdSBj
YW4gcGVyZm9ybSBhbiBIVFRQLzAuOSByZXF1ZXN0OgotCi0uLiBjb2RlLWJsb2NrOjogY29uc29s
ZQotCi0gICQgcHl0aG9uIGV4YW1wbGVzL2h0dHAzX2NsaWVudC5weSAtLWNhLWNlcnRzIHRlc3Rz
L3B5Y2FjZXJ0LnBlbSAtLWxlZ2FjeS1odHRwIGh0dHBzOi8vbG9jYWxob3N0OjQ0MzMvCi0KLVlv
dSBjYW4gYWxzbyBvcGVuIGEgV2ViU29ja2V0IG92ZXIgSFRUUC8zOgotCi0uLiBjb2RlLWJsb2Nr
OjogY29uc29sZQotCi0gICQgcHl0aG9uIGV4YW1wbGVzL2h0dHAzX2NsaWVudC5weSAtLWNhLWNl
cnRzIHRlc3RzL3B5Y2FjZXJ0LnBlbSB3c3M6Ly9sb2NhbGhvc3Q6NDQzMy93cwotCi0KLUROUyBv
dmVyIFFVSUMKLS0tLS0tLS0tLS0tLS0KLQotQnkgZGVmYXVsdCB0aGUgc2VydmVyIHdpbGwgdXNl
IHRoZSBgR29vZ2xlIFB1YmxpYyBETlNgXyBzZXJ2aWNlLCB5b3UgY2FuCi1vdmVycmlkZSB0aGlz
IHdpdGggdGhlIGBgLS1yZXNvbHZlcmBgIGFyZ3VtZW50LgotCi0uLiBjb2RlLWJsb2NrOjogY29u
c29sZQotCi0gICAgJCBweXRob24gZXhhbXBsZXMvZG9xX3NlcnZlci5weSAtLWNlcnRpZmljYXRl
IHRlc3RzL3NzbF9jZXJ0LnBlbSAtLXByaXZhdGUta2V5IHRlc3RzL3NzbF9rZXkucGVtCi0KLVlv
dSBjYW4gdGhlbiBydW4gdGhlIGNsaWVudCB3aXRoIGEgc3BlY2lmaWMgcXVlcnk6Ci0KLS4uIGNv
ZGUtYmxvY2s6OiBjb25zb2xlCi0KLSAgICAkIHB5dGhvbiBleGFtcGxlcy9kb3FfY2xpZW50LnB5
IC0tY2EtY2VydHMgdGVzdHMvcHljYWNlcnQucGVtIC0tZG5zX3R5cGUgIkEiIC0tcXVlcnkgInF1
aWMuYWlvcnRjLm9yZyIgLS1wb3J0IDQ3ODQKLQotLi4gX0dvb2dsZSBQdWJsaWMgRE5TOiBodHRw
czovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zcGVlZC9wdWJsaWMtZG5zCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvZXhhbXBsZXMvZGVtby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9kZW1v
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDRmOTc1MmYxNGM3OTdmNDI5Mjc3
Mzc5ZDA3NmRkNTZhY2U5MjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9kZW1vLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMTA5ICswLDAgQEAKLSMKLSMgZGVtbyBhcHBsaWNhdGlvbiBmb3IgaHR0cDNfc2VydmVyLnB5
Ci0jCi0KLWltcG9ydCBkYXRldGltZQotaW1wb3J0IG9zCi1mcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsZW5jb2RlCi0KLWltcG9ydCBodHRwYmluCi1mcm9tIGFzZ2lyZWYud3NnaSBpbXBvcnQg
V3NnaVRvQXNnaQotZnJvbSBzdGFybGV0dGUuYXBwbGljYXRpb25zIGltcG9ydCBTdGFybGV0dGUK
LWZyb20gc3RhcmxldHRlLnJlc3BvbnNlcyBpbXBvcnQgUGxhaW5UZXh0UmVzcG9uc2UsIFJlc3Bv
bnNlCi1mcm9tIHN0YXJsZXR0ZS5zdGF0aWNmaWxlcyBpbXBvcnQgU3RhdGljRmlsZXMKLWZyb20g
c3RhcmxldHRlLnRlbXBsYXRpbmcgaW1wb3J0IEppbmphMlRlbXBsYXRlcwotZnJvbSBzdGFybGV0
dGUud2Vic29ja2V0cyBpbXBvcnQgV2ViU29ja2V0RGlzY29ubmVjdAotCi1ST09UID0gb3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKQotU1RBVElDX1JPT1QgPSBvcy5lbnZpcm9uLmdldCgiU1RBVElD
X1JPT1QiLCBvcy5wYXRoLmpvaW4oUk9PVCwgImh0ZG9jcyIpKQotU1RBVElDX1VSTCA9ICIvIgot
TE9HU19QQVRIID0gb3MucGF0aC5qb2luKFNUQVRJQ19ST09ULCAibG9ncyIpCi1RVklTX1VSTCA9
ICJodHRwczovL3F2aXMuZWRtLnVoYXNzZWx0LmJlLyIKLQotdGVtcGxhdGVzID0gSmluamEyVGVt
cGxhdGVzKGRpcmVjdG9yeT1vcy5wYXRoLmpvaW4oUk9PVCwgInRlbXBsYXRlcyIpKQotYXBwID0g
U3RhcmxldHRlKCkKLQotCi1AYXBwLnJvdXRlKCIvIikKLWFzeW5jIGRlZiBob21lcGFnZShyZXF1
ZXN0KToKLSAgICAiIiIKLSAgICBTaW1wbGUgaG9tZXBhZ2UuCi0gICAgIiIiCi0gICAgYXdhaXQg
cmVxdWVzdC5zZW5kX3B1c2hfcHJvbWlzZSgiL3N0eWxlLmNzcyIpCi0gICAgcmV0dXJuIHRlbXBs
YXRlcy5UZW1wbGF0ZVJlc3BvbnNlKCJpbmRleC5odG1sIiwgeyJyZXF1ZXN0IjogcmVxdWVzdH0p
Ci0KLQotQGFwcC5yb3V0ZSgiL2VjaG8iLCBtZXRob2RzPVsiUE9TVCJdKQotYXN5bmMgZGVmIGVj
aG8ocmVxdWVzdCk6Ci0gICAgIiIiCi0gICAgSFRUUCBlY2hvIGVuZHBvaW50LgotICAgICIiIgot
ICAgIGNvbnRlbnQgPSBhd2FpdCByZXF1ZXN0LmJvZHkoKQotICAgIG1lZGlhX3R5cGUgPSByZXF1
ZXN0LmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKQotICAgIHJldHVybiBSZXNwb25zZShjb250
ZW50LCBtZWRpYV90eXBlPW1lZGlhX3R5cGUpCi0KLQotQGFwcC5yb3V0ZSgiL2xvZ3MvPyIpCi1h
c3luYyBkZWYgbG9ncyhyZXF1ZXN0KToKLSAgICAiIiIKLSAgICBCcm93c2FibGUgbGlzdCBvZiBR
TE9HIGZpbGVzLgotICAgICIiIgotICAgIGxvZ3MgPSBbXQotICAgIGZvciBuYW1lIGluIG9zLmxp
c3RkaXIoTE9HU19QQVRIKToKLSAgICAgICAgaWYgbmFtZS5lbmRzd2l0aCgiLnFsb2ciKToKLSAg
ICAgICAgICAgIHMgPSBvcy5zdGF0KG9zLnBhdGguam9pbihMT0dTX1BBVEgsIG5hbWUpKQotICAg
ICAgICAgICAgZmlsZV91cmwgPSAiaHR0cHM6Ly8iICsgcmVxdWVzdC5oZWFkZXJzWyJob3N0Il0g
KyAiL2xvZ3MvIiArIG5hbWUKLSAgICAgICAgICAgIGxvZ3MuYXBwZW5kKAotICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgImRhdGUiOiBkYXRldGltZS5kYXRldGltZS51dGNm
cm9tdGltZXN0YW1wKHMuc3RfbXRpbWUpLnN0cmZ0aW1lKAotICAgICAgICAgICAgICAgICAgICAg
ICAgIiVZLSVtLSVkICVIOiVNOiVTIgotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAg
ICAgICAgICAgICAiZmlsZV91cmwiOiBmaWxlX3VybCwKLSAgICAgICAgICAgICAgICAgICAgIm5h
bWUiOiBuYW1lWzotNV0sCi0gICAgICAgICAgICAgICAgICAgICJxdmlzX3VybCI6IFFWSVNfVVJM
Ci0gICAgICAgICAgICAgICAgICAgICsgIj8iCi0gICAgICAgICAgICAgICAgICAgICsgdXJsZW5j
b2RlKHsiZmlsZSI6IGZpbGVfdXJsfSkKLSAgICAgICAgICAgICAgICAgICAgKyAiIy9zZXF1ZW5j
ZSIsCi0gICAgICAgICAgICAgICAgICAgICJzaXplIjogcy5zdF9zaXplLAotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICkKLSAgICByZXR1cm4gdGVtcGxhdGVzLlRlbXBsYXRlUmVzcG9u
c2UoCi0gICAgICAgICJsb2dzLmh0bWwiLAotICAgICAgICB7Ci0gICAgICAgICAgICAibG9ncyI6
IHNvcnRlZChsb2dzLCBrZXk9bGFtYmRhIHg6IHhbImRhdGUiXSwgcmV2ZXJzZT1UcnVlKSwKLSAg
ICAgICAgICAgICJyZXF1ZXN0IjogcmVxdWVzdCwKLSAgICAgICAgfSwKLSAgICApCi0KLQotQGFw
cC5yb3V0ZSgiL3tzaXplOmludH0iKQotZGVmIHBhZGRpbmcocmVxdWVzdCk6Ci0gICAgIiIiCi0g
ICAgRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGRhdGEsIG1heGltdW0gNTBNQi4KLSAgICAiIiIKLSAg
ICBzaXplID0gbWluKDUwMDAwMDAwLCByZXF1ZXN0LnBhdGhfcGFyYW1zWyJzaXplIl0pCi0gICAg
cmV0dXJuIFBsYWluVGV4dFJlc3BvbnNlKCJaIiAqIHNpemUpCi0KLQotQGFwcC53ZWJzb2NrZXRf
cm91dGUoIi93cyIpCi1hc3luYyBkZWYgd3Mod2Vic29ja2V0KToKLSAgICAiIiIKLSAgICBXZWJT
b2NrZXQgZWNobyBlbmRwb2ludC4KLSAgICAiIiIKLSAgICBpZiAiY2hhdCIgaW4gd2Vic29ja2V0
LnNjb3BlWyJzdWJwcm90b2NvbHMiXToKLSAgICAgICAgc3VicHJvdG9jb2wgPSAiY2hhdCIKLSAg
ICBlbHNlOgotICAgICAgICBzdWJwcm90b2NvbCA9IE5vbmUKLSAgICBhd2FpdCB3ZWJzb2NrZXQu
YWNjZXB0KHN1YnByb3RvY29sPXN1YnByb3RvY29sKQotCi0gICAgdHJ5OgotICAgICAgICB3aGls
ZSBUcnVlOgotICAgICAgICAgICAgbWVzc2FnZSA9IGF3YWl0IHdlYnNvY2tldC5yZWNlaXZlX3Rl
eHQoKQotICAgICAgICAgICAgYXdhaXQgd2Vic29ja2V0LnNlbmRfdGV4dChtZXNzYWdlKQotICAg
IGV4Y2VwdCBXZWJTb2NrZXREaXNjb25uZWN0OgotICAgICAgICBwYXNzCi0KLQotYXBwLm1vdW50
KCIvaHR0cGJpbiIsIFdzZ2lUb0FzZ2koaHR0cGJpbi5hcHApKQotCi1hcHAubW91bnQoU1RBVElD
X1VSTCwgU3RhdGljRmlsZXMoZGlyZWN0b3J5PVNUQVRJQ19ST09ULCBodG1sPVRydWUpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RvcV9jbGllbnQucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvZXhhbXBsZXMvZG9xX2NsaWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDZjMWE0NGYwMjhjYjU5NjkyYzk0MDcxOTUxN2YxM2RjYjRmMTBhMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvZG9x
X2NsaWVudC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi1pbXBvcnQgYXJncGFy
c2UKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQganNvbgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBw
aWNrbGUKLWltcG9ydCBzc2wKLWZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbCwgY2FzdAotCi1m
cm9tIGRuc2xpYi5kbnMgaW1wb3J0IFFUWVBFLCBETlNRdWVzdGlvbiwgRE5TUmVjb3JkCi0KLWZy
b20gYWlvcXVpYy5hc3luY2lvLmNsaWVudCBpbXBvcnQgY29ubmVjdAotZnJvbSBhaW9xdWljLmFz
eW5jaW8ucHJvdG9jb2wgaW1wb3J0IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wKLWZyb20gYWlvcXVp
Yy5xdWljLmNvbmZpZ3VyYXRpb24gaW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1
aWMucXVpYy5ldmVudHMgaW1wb3J0IFF1aWNFdmVudCwgU3RyZWFtRGF0YVJlY2VpdmVkCi1mcm9t
IGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXIKLQotbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoImNsaWVudCIpCi0KLQotY2xhc3MgRG9RQ2xpZW50KFF1aWNDb25uZWN0aW9u
UHJvdG9jb2wpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAg
ICAgICBzdXBlcigpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5fYWNr
X3dhaXRlcjogT3B0aW9uYWxbYXN5bmNpby5GdXR1cmVbTm9uZV1dID0gTm9uZQotCi0gICAgYXN5
bmMgZGVmIHF1ZXJ5KHNlbGYsIHF1ZXJ5X3R5cGU6IHN0ciwgZG5zX3F1ZXJ5OiBzdHIpIC0+IE5v
bmU6Ci0gICAgICAgIHF1ZXJ5ID0gRE5TUmVjb3JkKHE9RE5TUXVlc3Rpb24oZG5zX3F1ZXJ5LCBn
ZXRhdHRyKFFUWVBFLCBxdWVyeV90eXBlKSkpCi0gICAgICAgIHN0cmVhbV9pZCA9IHNlbGYuX3F1
aWMuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgIGxvZ2dlci5kZWJ1Zyhm
IlN0cmVhbSBJRDoge3N0cmVhbV9pZH0iKQotICAgICAgICBlbmRfc3RyZWFtID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYnl0ZXMocXVlcnku
cGFjaygpKSwgZW5kX3N0cmVhbSkKLSAgICAgICAgd2FpdGVyID0gc2VsZi5fbG9vcC5jcmVhdGVf
ZnV0dXJlKCkKLSAgICAgICAgc2VsZi5fYWNrX3dhaXRlciA9IHdhaXRlcgotICAgICAgICBzZWxm
LnRyYW5zbWl0KCkKLQotICAgICAgICByZXR1cm4gYXdhaXQgYXN5bmNpby5zaGllbGQod2FpdGVy
KQotCi0gICAgZGVmIHF1aWNfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IFF1aWNFdmVudCkg
LT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5fYWNrX3dhaXRlciBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIFN0cmVhbURhdGFSZWNlaXZlZCk6Ci0gICAgICAg
ICAgICAgICAgYW5zd2VyID0gRE5TUmVjb3JkLnBhcnNlKGV2ZW50LmRhdGEpCi0gICAgICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oYW5zd2VyKQotICAgICAgICAgICAgICAgIHdhaXRlciA9IHNlbGYu
X2Fja193YWl0ZXIKLSAgICAgICAgICAgICAgICBzZWxmLl9hY2tfd2FpdGVyID0gTm9uZQotICAg
ICAgICAgICAgICAgIHdhaXRlci5zZXRfcmVzdWx0KE5vbmUpCi0KLQotZGVmIHNhdmVfc2Vzc2lv
bl90aWNrZXQodGlja2V0KToKLSAgICAiIiIKLSAgICBDYWxsYmFjayB3aGljaCBpcyBpbnZva2Vk
IGJ5IHRoZSBUTFMgZW5naW5lIHdoZW4gYSBuZXcgc2Vzc2lvbiB0aWNrZXQKLSAgICBpcyByZWNl
aXZlZC4KLSAgICAiIiIKLSAgICBsb2dnZXIuaW5mbygiTmV3IHNlc3Npb24gdGlja2V0IHJlY2Vp
dmVkIikKLSAgICBpZiBhcmdzLnNlc3Npb25fdGlja2V0OgotICAgICAgICB3aXRoIG9wZW4oYXJn
cy5zZXNzaW9uX3RpY2tldCwgIndiIikgYXMgZnA6Ci0gICAgICAgICAgICBwaWNrbGUuZHVtcCh0
aWNrZXQsIGZwKQotCi0KLWFzeW5jIGRlZiBydW4oCi0gICAgY29uZmlndXJhdGlvbjogUXVpY0Nv
bmZpZ3VyYXRpb24sCi0gICAgaG9zdDogc3RyLAotICAgIHBvcnQ6IGludCwKLSAgICBxdWVyeV90
eXBlOiBzdHIsCi0gICAgZG5zX3F1ZXJ5OiBzdHIsCi0pIC0+IE5vbmU6Ci0gICAgbG9nZ2VyLmRl
YnVnKGYiQ29ubmVjdGluZyB0byB7aG9zdH06e3BvcnR9IikKLSAgICBhc3luYyB3aXRoIGNvbm5l
Y3QoCi0gICAgICAgIGhvc3QsCi0gICAgICAgIHBvcnQsCi0gICAgICAgIGNvbmZpZ3VyYXRpb249
Y29uZmlndXJhdGlvbiwKLSAgICAgICAgc2Vzc2lvbl90aWNrZXRfaGFuZGxlcj1zYXZlX3Nlc3Np
b25fdGlja2V0LAotICAgICAgICBjcmVhdGVfcHJvdG9jb2w9RG9RQ2xpZW50LAotICAgICkgYXMg
Y2xpZW50OgotICAgICAgICBjbGllbnQgPSBjYXN0KERvUUNsaWVudCwgY2xpZW50KQotICAgICAg
ICBsb2dnZXIuZGVidWcoIlNlbmRpbmcgRE5TIHF1ZXJ5IikKLSAgICAgICAgYXdhaXQgY2xpZW50
LnF1ZXJ5KHF1ZXJ5X3R5cGUsIGRuc19xdWVyeSkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWlu
X18iOgotICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSJE
TlMgb3ZlciBRVUlDIGNsaWVudCIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLXQiLCAiLS10
eXBlIiwgdHlwZT1zdHIsIGhlbHA9IlR5cGUgb2YgcmVjb3JkIHRvICIpCi0gICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgKLSAgICAgICAgIi0taG9zdCIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAg
ICBkZWZhdWx0PSJsb2NhbGhvc3QiLAotICAgICAgICBoZWxwPSJUaGUgcmVtb3RlIHBlZXIncyBo
b3N0IG5hbWUgb3IgSVAgYWRkcmVzcyIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ci0gICAgICAgICItLXBvcnQiLCB0eXBlPWludCwgZGVmYXVsdD03ODQsIGhlbHA9IlRoZSByZW1v
dGUgcGVlcidzIHBvcnQgbnVtYmVyIgotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAot
ICAgICAgICAiLWsiLAotICAgICAgICAiLS1pbnNlY3VyZSIsCi0gICAgICAgIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsCi0gICAgICAgIGhlbHA9ImRvIG5vdCB2YWxpZGF0ZSBzZXJ2ZXIgY2VydGlmaWNh
dGUiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLS1jYS1jZXJ0
cyIsIHR5cGU9c3RyLCBoZWxwPSJsb2FkIENBIGNlcnRpZmljYXRlcyBmcm9tIHRoZSBzcGVjaWZp
ZWQgZmlsZSIKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1kbnNfdHlwZSIsIGhl
bHA9IlRoZSBETlMgcXVlcnkgdHlwZSB0byBzZW5kIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLXF1ZXJ5IiwgaGVscD0iRG9tYWluIHRvIHF1ZXJ5IikKLSAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KAotICAgICAgICAiLXEiLCAiLS1xdWljLWxvZyIsIHR5cGU9c3RyLCBoZWxwPSJsb2cgUVVJ
QyBldmVudHMgdG8gYSBmaWxlIGluIFFMT0cgZm9ybWF0IgotICAgICkKLSAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KAotICAgICAgICAiLWwiLAotICAgICAgICAiLS1zZWNyZXRzLWxvZyIsCi0gICAg
ICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJsb2cgc2VjcmV0cyB0byBhIGZpbGUsIGZvciB1
c2Ugd2l0aCBXaXJlc2hhcmsiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLXMiLAotICAgICAgICAiLS1zZXNzaW9uLXRpY2tldCIsCi0gICAgICAgIHR5cGU9c3Ry
LAotICAgICAgICBoZWxwPSJyZWFkIGFuZCB3cml0ZSBzZXNzaW9uIHRpY2tldCBmcm9tIHRoZSBz
cGVjaWZpZWQgZmlsZSIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAg
ICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJpbmNyZWFzZSBs
b2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0KLSAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3Mo
KQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgZm9ybWF0PSIlKGFzY3RpbWUp
cyAlKGxldmVsbmFtZSlzICUobmFtZSlzICUobWVzc2FnZSlzIiwKLSAgICAgICAgbGV2ZWw9bG9n
Z2luZy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxzZSBsb2dnaW5nLklORk8sCi0gICAgKQotCi0g
ICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICBhbHBuX3Byb3Rv
Y29scz1bImRxIl0sIGlzX2NsaWVudD1UcnVlLCBtYXhfZGF0YWdyYW1fZnJhbWVfc2l6ZT02NTUz
NgotICAgICkKLSAgICBpZiBhcmdzLmNhX2NlcnRzOgotICAgICAgICBjb25maWd1cmF0aW9uLmxv
YWRfdmVyaWZ5X2xvY2F0aW9ucyhhcmdzLmNhX2NlcnRzKQotICAgIGlmIGFyZ3MuaW5zZWN1cmU6
Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24udmVyaWZ5X21vZGUgPSBzc2wuQ0VSVF9OT05FCi0gICAg
aWYgYXJncy5xdWljX2xvZzoKLSAgICAgICAgY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlciA9IFF1
aWNMb2dnZXIoKQotICAgIGlmIGFyZ3Muc2VjcmV0c19sb2c6Ci0gICAgICAgIGNvbmZpZ3VyYXRp
b24uc2VjcmV0c19sb2dfZmlsZSA9IG9wZW4oYXJncy5zZWNyZXRzX2xvZywgImEiKQotICAgIGlm
IGFyZ3Muc2Vzc2lvbl90aWNrZXQ6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdpdGggb3Bl
bihhcmdzLnNlc3Npb25fdGlja2V0LCAicmIiKSBhcyBmcDoKLSAgICAgICAgICAgICAgICBjb25m
aWd1cmF0aW9uLnNlc3Npb25fdGlja2V0ID0gcGlja2xlLmxvYWQoZnApCi0gICAgICAgIGV4Y2Vw
dCBGaWxlTm90Rm91bmRFcnJvcjoKLSAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhmIlVuYWJsZSB0
byByZWFkIHthcmdzLnNlc3Npb25fdGlja2V0fSIpCi0gICAgICAgICAgICBwYXNzCi0gICAgZWxz
ZToKLSAgICAgICAgbG9nZ2VyLmRlYnVnKCJObyBzZXNzaW9uIHRpY2tldCBkZWZpbmVkLi4uIikK
LQotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVudF9sb29wKCkKLSAgICB0cnk6Ci0gICAgICAg
IGxvb3AucnVuX3VudGlsX2NvbXBsZXRlKAotICAgICAgICAgICAgcnVuKAotICAgICAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgICAgICBob3N0PWFy
Z3MuaG9zdCwKLSAgICAgICAgICAgICAgICBwb3J0PWFyZ3MucG9ydCwKLSAgICAgICAgICAgICAg
ICBxdWVyeV90eXBlPWFyZ3MuZG5zX3R5cGUsCi0gICAgICAgICAgICAgICAgZG5zX3F1ZXJ5PWFy
Z3MucXVlcnksCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICBmaW5hbGx5OgotICAgICAg
ICBpZiBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
d2l0aCBvcGVuKGFyZ3MucXVpY19sb2csICJ3IikgYXMgbG9nZ2VyX2ZwOgotICAgICAgICAgICAg
ICAgIGpzb24uZHVtcChjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2RpY3QoKSwgbG9nZ2Vy
X2ZwLCBpbmRlbnQ9NCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9kb3Ffc2Vy
dmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RvcV9zZXJ2ZXIucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGYzMzQ3ZmU2YzE4OTYzZTA1OTZhODY4OGE1ZWM2ZWJhMjg0ZDAy
NTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2V4YW1wbGVzL2RvcV9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAs
MCBAQAotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGpzb24KLWltcG9y
dCBsb2dnaW5nCi1mcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgT3B0aW9uYWwKLQotZnJvbSBkbnNs
aWIuZG5zIGltcG9ydCBETlNSZWNvcmQKLQotZnJvbSBhaW9xdWljLmFzeW5jaW8gaW1wb3J0IFF1
aWNDb25uZWN0aW9uUHJvdG9jb2wsIHNlcnZlCi1mcm9tIGFpb3F1aWMucXVpYy5jb25maWd1cmF0
aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbgotZnJvbSBhaW9xdWljLnF1aWMuY29ubmVjdGlv
biBpbXBvcnQgUXVpY0Nvbm5lY3Rpb24KLWZyb20gYWlvcXVpYy5xdWljLmV2ZW50cyBpbXBvcnQg
UHJvdG9jb2xOZWdvdGlhdGVkLCBRdWljRXZlbnQsIFN0cmVhbURhdGFSZWNlaXZlZAotZnJvbSBh
aW9xdWljLnF1aWMubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi1mcm9tIGFpb3F1aWMudGxzIGlt
cG9ydCBTZXNzaW9uVGlja2V0Ci0KLXRyeToKLSAgICBpbXBvcnQgdXZsb29wCi1leGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgdXZsb29wID0gTm9uZQotCi0KLWNsYXNzIERuc0Nvbm5lY3Rpb246Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1aWM6IFF1aWNDb25uZWN0aW9uKToKLSAgICAgICAgc2Vs
Zi5fcXVpYyA9IHF1aWMKLQotICAgIGRlZiBkb19xdWVyeShzZWxmLCBwYXlsb2FkKSAtPiBieXRl
czoKLSAgICAgICAgcSA9IEROU1JlY29yZC5wYXJzZShwYXlsb2FkKQotICAgICAgICByZXR1cm4g
cS5zZW5kKHNlbGYucmVzb2x2ZXIoKSwgNTMpCi0KLSAgICBkZWYgcmVzb2x2ZXIoc2VsZikgLT4g
c3RyOgotICAgICAgICByZXR1cm4gYXJncy5yZXNvbHZlcgotCi0gICAgZGVmIGhhbmRsZV9ldmVu
dChzZWxmLCBldmVudDogUXVpY0V2ZW50KSAtPiBOb25lOgotICAgICAgICBpZiBpc2luc3RhbmNl
KGV2ZW50LCBTdHJlYW1EYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuZG9f
cXVlcnkoZXZlbnQuZGF0YSkKLSAgICAgICAgICAgIGVuZF9zdHJlYW0gPSBGYWxzZQotICAgICAg
ICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKGV2ZW50LnN0cmVhbV9pZCwgZGF0YSwg
ZW5kX3N0cmVhbSkKLQotCi1jbGFzcyBEbnNTZXJ2ZXJQcm90b2NvbChRdWljQ29ubmVjdGlvblBy
b3RvY29sKToKLQotICAgICMgLTAwIHNwZWNpZmllcyAnZHEnLCAnZG9xJywgYW5kICdkb3EtaDAw
JyAodGhlIGxhdHRlciBvYnZpb3VzbHkgdHlpbmcgdG8KLSAgICAjIHRoZSB2ZXJzaW9uIG9mIHRo
ZSBkcmFmdCBpdCBtYXRjaGVzKS4gVGhpcyBpcyBjb25mdXNpbmcsIHNvIHdlJ2xsIGp1c3QKLSAg
ICAjIHN1cHBvcnQgdGhlbSBhbGwsIHVudGlsIGZ1dHVyZSBkcmFmdHMgZGVmaW5lIGNvbmZsaWN0
aW5nIGJlaGF2aW91ci4KLSAgICBTVVBQT1JURURfQUxQTlMgPSBbImRxIiwgImRvcSIsICJkb3Et
aDAwIl0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAg
ICBzdXBlcigpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5fZG5zOiBP
cHRpb25hbFtEbnNDb25uZWN0aW9uXSA9IE5vbmUKLQotICAgIGRlZiBxdWljX2V2ZW50X3JlY2Vp
dmVkKHNlbGYsIGV2ZW50OiBRdWljRXZlbnQpOgotICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50
LCBQcm90b2NvbE5lZ290aWF0ZWQpOgotICAgICAgICAgICAgaWYgZXZlbnQuYWxwbl9wcm90b2Nv
bCBpbiBEbnNTZXJ2ZXJQcm90b2NvbC5TVVBQT1JURURfQUxQTlM6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fZG5zID0gRG5zQ29ubmVjdGlvbihzZWxmLl9xdWljKQotICAgICAgICBpZiBzZWxmLl9k
bnMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9kbnMuaGFuZGxlX2V2ZW50KGV2ZW50
KQotCi0KLWNsYXNzIFNlc3Npb25UaWNrZXRTdG9yZToKLSAgICAiIiIKLSAgICBTaW1wbGUgaW4t
bWVtb3J5IHN0b3JlIGZvciBzZXNzaW9uIHRpY2tldHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzOiBEaWN0W2J5dGVzLCBT
ZXNzaW9uVGlja2V0XSA9IHt9Ci0KLSAgICBkZWYgYWRkKHNlbGYsIHRpY2tldDogU2Vzc2lvblRp
Y2tldCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi50aWNrZXRzW3RpY2tldC50aWNrZXRdID0gdGlj
a2V0Ci0KLSAgICBkZWYgcG9wKHNlbGYsIGxhYmVsOiBieXRlcykgLT4gT3B0aW9uYWxbU2Vzc2lv
blRpY2tldF06Ci0gICAgICAgIHJldHVybiBzZWxmLnRpY2tldHMucG9wKGxhYmVsLCBOb25lKQot
Ci0KLWlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0KLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5B
cmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iRE5TIG92ZXIgUVVJQyBzZXJ2ZXIiKQotICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLWhvc3QiLAotICAgICAgICB0eXBlPXN0ciwK
LSAgICAgICAgZGVmYXVsdD0iOjoiLAotICAgICAgICBoZWxwPSJsaXN0ZW4gb24gdGhlIHNwZWNp
ZmllZCBhZGRyZXNzIChkZWZhdWx0cyB0byA6OikiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAiLS1wb3J0IiwKLSAgICAgICAgdHlwZT1pbnQsCi0gICAgICAgIGRl
ZmF1bHQ9NDc4NCwKLSAgICAgICAgaGVscD0ibGlzdGVuIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCAo
ZGVmYXVsdHMgdG8gNDc4NCkiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLWsiLAotICAgICAgICAiLS1wcml2YXRlLWtleSIsCi0gICAgICAgIHR5cGU9c3RyLAot
ICAgICAgICByZXF1aXJlZD1UcnVlLAotICAgICAgICBoZWxwPSJsb2FkIHRoZSBUTFMgcHJpdmF0
ZSBrZXkgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAiLWMiLAotICAgICAgICAiLS1jZXJ0aWZpY2F0ZSIsCi0gICAgICAg
IHR5cGU9c3RyLAotICAgICAgICByZXF1aXJlZD1UcnVlLAotICAgICAgICBoZWxwPSJsb2FkIHRo
ZSBUTFMgY2VydGlmaWNhdGUgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiLAotICAgICkKLSAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXIiLAotICAgICAgICAiLS1yZXNvbHZlciIs
Ci0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBkZWZhdWx0PSI4LjguOC44IiwKLSAgICAgICAg
aGVscD0iVXBzdHJlYW0gQ2xhc3NpYyBETlMgcmVzb2x2ZXIgdG8gdXNlIiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1zIiwKLSAgICAgICAgIi0tc3RhdGVsZXNz
LXJldHJ5IiwKLSAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgaGVscD0ic2Vu
ZCBhIHN0YXRlbGVzcyByZXRyeSBmb3IgbmV3IGNvbm5lY3Rpb25zIiwKLSAgICApCi0gICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1xIiwgIi0tcXVpYy1sb2ciLCB0eXBlPXN0ciwg
aGVscD0ibG9nIFFVSUMgZXZlbnRzIHRvIGEgZmlsZSBpbiBRTE9HIGZvcm1hdCIKLSAgICApCi0g
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGhlbHA9ImluY3JlYXNlIGxvZ2dpbmcgdmVyYm9zaXR5IgotICAgICkK
LQotICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBsb2dnaW5nLmJhc2ljQ29u
ZmlnKAotICAgICAgICBmb3JtYXQ9IiUoYXNjdGltZSlzICUobGV2ZWxuYW1lKXMgJShuYW1lKXMg
JShtZXNzYWdlKXMiLAotICAgICAgICBsZXZlbD1sb2dnaW5nLkRFQlVHIGlmIGFyZ3MudmVyYm9z
ZSBlbHNlIGxvZ2dpbmcuSU5GTywKLSAgICApCi0KLSAgICBpZiBhcmdzLnF1aWNfbG9nOgotICAg
ICAgICBxdWljX2xvZ2dlciA9IFF1aWNMb2dnZXIoKQotICAgIGVsc2U6Ci0gICAgICAgIHF1aWNf
bG9nZ2VyID0gTm9uZQotCi0gICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKAot
ICAgICAgICBhbHBuX3Byb3RvY29scz1bImRxIl0sCi0gICAgICAgIGlzX2NsaWVudD1GYWxzZSwK
LSAgICAgICAgbWF4X2RhdGFncmFtX2ZyYW1lX3NpemU9NjU1MzYsCi0gICAgICAgIHF1aWNfbG9n
Z2VyPXF1aWNfbG9nZ2VyLAotICAgICkKLQotICAgIGNvbmZpZ3VyYXRpb24ubG9hZF9jZXJ0X2No
YWluKGFyZ3MuY2VydGlmaWNhdGUsIGFyZ3MucHJpdmF0ZV9rZXkpCi0KLSAgICB0aWNrZXRfc3Rv
cmUgPSBTZXNzaW9uVGlja2V0U3RvcmUoKQotCi0gICAgaWYgdXZsb29wIGlzIG5vdCBOb25lOgot
ICAgICAgICB1dmxvb3AuaW5zdGFsbCgpCi0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xv
b3AoKQotICAgIGxvb3AucnVuX3VudGlsX2NvbXBsZXRlKAotICAgICAgICBzZXJ2ZSgKLSAgICAg
ICAgICAgIGFyZ3MuaG9zdCwKLSAgICAgICAgICAgIGFyZ3MucG9ydCwKLSAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgIGNyZWF0ZV9wcm90b2NvbD1E
bnNTZXJ2ZXJQcm90b2NvbCwKLSAgICAgICAgICAgIHNlc3Npb25fdGlja2V0X2ZldGNoZXI9dGlj
a2V0X3N0b3JlLnBvcCwKLSAgICAgICAgICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI9dGlja2V0
X3N0b3JlLmFkZCwKLSAgICAgICAgICAgIHN0YXRlbGVzc19yZXRyeT1hcmdzLnN0YXRlbGVzc19y
ZXRyeSwKLSAgICAgICAgKQotICAgICkKLSAgICB0cnk6Ci0gICAgICAgIGxvb3AucnVuX2ZvcmV2
ZXIoKQotICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgcGFzcwotICAgIGZp
bmFsbHk6Ci0gICAgICAgIGlmIGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICB3aXRoIG9wZW4oYXJncy5xdWljX2xvZywgInciKSBhcyBsb2dnZXJfZnA6
Ci0gICAgICAgICAgICAgICAganNvbi5kdW1wKGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIudG9f
ZGljdCgpLCBsb2dnZXJfZnAsIGluZGVudD00KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL2h0ZG9jcy9yb2JvdHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0ZG9jcy9y
b2JvdHMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWFhMGJkZWFhY2U2Mzcy
YTdlYjEzMDEwZmQxNjY2YzY1NTQ2ODY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvcm9ib3RzLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotVXNlci1hZ2VudDogKgotRGlzYWxsb3c6IC9s
b2dzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHRkb2NzL3N0eWxlLmNzcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9leGFtcGxlcy9odGRvY3Mvc3R5bGUuY3NzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMTUyM2RiOGFkOGQxNmY3NTI2MGM1ODE3YWI0OGU4OWUyMWViYmQ1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9leGFtcGxlcy9odGRvY3Mvc3R5bGUuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBA
QAotYm9keSB7Ci0gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwotICAgIGZvbnQt
c2l6ZTogMTZweDsKLSAgICBtYXJnaW46IDAgYXV0bzsKLSAgICB3aWR0aDogNDBlbTsKLX0KLQot
dGFibGUubG9ncyB7Ci0gICAgd2lkdGg6IDEwMCU7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvZXhhbXBsZXMvaHRkb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVz
L2h0ZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2
ODIwZGYwZGY4MDljN2M5ODk5MjdhOGI4YjMyOGUwNDk1NmZmNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHRkb2Nz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0ZG9jcy9yb2JvdHMudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL2h0ZG9jcy9zdHlsZS5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxl
cy9odHRwM19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0cDNfY2xpZW50LnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTg4OGEzNmVhN2ViYTI3ZjM2YTVkZDQw
YjBjNzZhMDQyNDlkYzI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odHRwM19jbGllbnQucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw0NTUgKzAsMCBAQAotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgYXN5bmNpbwotaW1w
b3J0IGpzb24KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBwaWNrbGUKLWltcG9y
dCBzc2wKLWltcG9ydCB0aW1lCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQotZnJvbSB0
eXBpbmcgaW1wb3J0IENhbGxhYmxlLCBEZXF1ZSwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFVuaW9u
LCBjYXN0Ci1mcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UKLQotaW1wb3J0IHdzcHJv
dG8KLWltcG9ydCB3c3Byb3RvLmV2ZW50cwotCi1pbXBvcnQgYWlvcXVpYwotZnJvbSBhaW9xdWlj
LmFzeW5jaW8uY2xpZW50IGltcG9ydCBjb25uZWN0Ci1mcm9tIGFpb3F1aWMuYXN5bmNpby5wcm90
b2NvbCBpbXBvcnQgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbAotZnJvbSBhaW9xdWljLmgwLmNvbm5l
Y3Rpb24gaW1wb3J0IEgwX0FMUE4sIEgwQ29ubmVjdGlvbgotZnJvbSBhaW9xdWljLmgzLmNvbm5l
Y3Rpb24gaW1wb3J0IEgzX0FMUE4sIEgzQ29ubmVjdGlvbgotZnJvbSBhaW9xdWljLmgzLmV2ZW50
cyBpbXBvcnQgKAotICAgIERhdGFSZWNlaXZlZCwKLSAgICBIM0V2ZW50LAotICAgIEhlYWRlcnNS
ZWNlaXZlZCwKLSAgICBQdXNoUHJvbWlzZVJlY2VpdmVkLAotKQotZnJvbSBhaW9xdWljLnF1aWMu
Y29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24KLWZyb20gYWlvcXVpYy5xdWlj
LmV2ZW50cyBpbXBvcnQgUXVpY0V2ZW50Ci1mcm9tIGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0
IFF1aWNMb2dnZXIKLWZyb20gYWlvcXVpYy50bHMgaW1wb3J0IFNlc3Npb25UaWNrZXQKLQotdHJ5
OgotICAgIGltcG9ydCB1dmxvb3AKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICB1dmxvb3AgPSBO
b25lCi0KLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJjbGllbnQiKQotCi1IdHRwQ29ubmVj
dGlvbiA9IFVuaW9uW0gwQ29ubmVjdGlvbiwgSDNDb25uZWN0aW9uXQotCi1VU0VSX0FHRU5UID0g
ImFpb3F1aWMvIiArIGFpb3F1aWMuX192ZXJzaW9uX18KLQotCi1jbGFzcyBVUkw6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHVybDogc3RyKSAtPiBOb25lOgotICAgICAgICBwYXJzZWQgPSB1cmxw
YXJzZSh1cmwpCi0KLSAgICAgICAgc2VsZi5hdXRob3JpdHkgPSBwYXJzZWQubmV0bG9jCi0gICAg
ICAgIHNlbGYuZnVsbF9wYXRoID0gcGFyc2VkLnBhdGgKLSAgICAgICAgaWYgcGFyc2VkLnF1ZXJ5
OgotICAgICAgICAgICAgc2VsZi5mdWxsX3BhdGggKz0gIj8iICsgcGFyc2VkLnF1ZXJ5Ci0gICAg
ICAgIHNlbGYuc2NoZW1lID0gcGFyc2VkLnNjaGVtZQotCi0KLWNsYXNzIEh0dHBSZXF1ZXN0Ogot
ICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2VsZiwgbWV0aG9kOiBzdHIsIHVybDogVVJMLCBj
b250ZW50OiBieXRlcyA9IGIiIiwgaGVhZGVyczogRGljdCA9IHt9Ci0gICAgKSAtPiBOb25lOgot
ICAgICAgICBzZWxmLmNvbnRlbnQgPSBjb250ZW50Ci0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhl
YWRlcnMKLSAgICAgICAgc2VsZi5tZXRob2QgPSBtZXRob2QKLSAgICAgICAgc2VsZi51cmwgPSB1
cmwKLQotCi1jbGFzcyBXZWJTb2NrZXQ6Ci0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxm
LCBodHRwOiBIdHRwQ29ubmVjdGlvbiwgc3RyZWFtX2lkOiBpbnQsIHRyYW5zbWl0OiBDYWxsYWJs
ZVtbXSwgTm9uZV0KLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuaHR0cCA9IGh0dHAKLSAg
ICAgICAgc2VsZi5xdWV1ZTogYXN5bmNpby5RdWV1ZVtzdHJdID0gYXN5bmNpby5RdWV1ZSgpCi0g
ICAgICAgIHNlbGYuc3RyZWFtX2lkID0gc3RyZWFtX2lkCi0gICAgICAgIHNlbGYuc3VicHJvdG9j
b2w6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAgICAgIHNlbGYudHJhbnNtaXQgPSB0cmFuc21p
dAotICAgICAgICBzZWxmLndlYnNvY2tldCA9IHdzcHJvdG8uQ29ubmVjdGlvbih3c3Byb3RvLkNv
bm5lY3Rpb25UeXBlLkNMSUVOVCkKLQotICAgIGFzeW5jIGRlZiBjbG9zZShzZWxmLCBjb2RlPTEw
MDAsIHJlYXNvbj0iIikgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFBlcmZvcm0gdGhl
IGNsb3NpbmcgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLSAgICAgICAgZGF0YSA9IHNlbGYud2Vi
c29ja2V0LnNlbmQoCi0gICAgICAgICAgICB3c3Byb3RvLmV2ZW50cy5DbG9zZUNvbm5lY3Rpb24o
Y29kZT1jb2RlLCByZWFzb249cmVhc29uKQotICAgICAgICApCi0gICAgICAgIHNlbGYuaHR0cC5z
ZW5kX2RhdGEoc3RyZWFtX2lkPXNlbGYuc3RyZWFtX2lkLCBkYXRhPWRhdGEsIGVuZF9zdHJlYW09
VHJ1ZSkKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICBhc3luYyBkZWYgcmVjdihzZWxm
KSAtPiBzdHI6Ci0gICAgICAgICIiIgotICAgICAgICBSZWNlaXZlIHRoZSBuZXh0IG1lc3NhZ2Uu
Ci0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gYXdhaXQgc2VsZi5xdWV1ZS5nZXQoKQotCi0g
ICAgYXN5bmMgZGVmIHNlbmQoc2VsZiwgbWVzc2FnZTogc3RyKSAtPiBOb25lOgotICAgICAgICAi
IiIKLSAgICAgICAgU2VuZCBhIG1lc3NhZ2UuCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShtZXNzYWdlLCBzdHIpCi0KLSAgICAgICAgZGF0YSA9IHNlbGYud2Vic29ja2V0
LnNlbmQod3Nwcm90by5ldmVudHMuVGV4dE1lc3NhZ2UoZGF0YT1tZXNzYWdlKSkKLSAgICAgICAg
c2VsZi5odHRwLnNlbmRfZGF0YShzdHJlYW1faWQ9c2VsZi5zdHJlYW1faWQsIGRhdGE9ZGF0YSwg
ZW5kX3N0cmVhbT1GYWxzZSkKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICBkZWYgaHR0
cF9ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogSDNFdmVudCkgLT4gTm9uZToKLSAgICAgICAg
aWYgaXNpbnN0YW5jZShldmVudCwgSGVhZGVyc1JlY2VpdmVkKToKLSAgICAgICAgICAgIGZvciBo
ZWFkZXIsIHZhbHVlIGluIGV2ZW50LmhlYWRlcnM6Ci0gICAgICAgICAgICAgICAgaWYgaGVhZGVy
ID09IGIic2VjLXdlYnNvY2tldC1wcm90b2NvbCI6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
c3VicHJvdG9jb2wgPSB2YWx1ZS5kZWNvZGUoKQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZl
bnQsIERhdGFSZWNlaXZlZCk6Ci0gICAgICAgICAgICBzZWxmLndlYnNvY2tldC5yZWNlaXZlX2Rh
dGEoZXZlbnQuZGF0YSkKLQotICAgICAgICBmb3Igd3NfZXZlbnQgaW4gc2VsZi53ZWJzb2NrZXQu
ZXZlbnRzKCk6Ci0gICAgICAgICAgICBzZWxmLndlYnNvY2tldF9ldmVudF9yZWNlaXZlZCh3c19l
dmVudCkKLQotICAgIGRlZiB3ZWJzb2NrZXRfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IHdz
cHJvdG8uZXZlbnRzLkV2ZW50KSAtPiBOb25lOgotICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50
LCB3c3Byb3RvLmV2ZW50cy5UZXh0TWVzc2FnZSk6Ci0gICAgICAgICAgICBzZWxmLnF1ZXVlLnB1
dF9ub3dhaXQoZXZlbnQuZGF0YSkKLQotCi1jbGFzcyBIdHRwQ2xpZW50KFF1aWNDb25uZWN0aW9u
UHJvdG9jb2wpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpIC0+IE5v
bmU6Ci0gICAgICAgIHN1cGVyKCkuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAg
IHNlbGYucHVzaGVzOiBEaWN0W2ludCwgRGVxdWVbSDNFdmVudF1dID0ge30KLSAgICAgICAgc2Vs
Zi5faHR0cDogT3B0aW9uYWxbSHR0cENvbm5lY3Rpb25dID0gTm9uZQotICAgICAgICBzZWxmLl9y
ZXF1ZXN0X2V2ZW50czogRGljdFtpbnQsIERlcXVlW0gzRXZlbnRdXSA9IHt9Ci0gICAgICAgIHNl
bGYuX3JlcXVlc3Rfd2FpdGVyOiBEaWN0W2ludCwgYXN5bmNpby5GdXR1cmVbRGVxdWVbSDNFdmVu
dF1dXSA9IHt9Ci0gICAgICAgIHNlbGYuX3dlYnNvY2tldHM6IERpY3RbaW50LCBXZWJTb2NrZXRd
ID0ge30KLQotICAgICAgICBpZiBzZWxmLl9xdWljLmNvbmZpZ3VyYXRpb24uYWxwbl9wcm90b2Nv
bHNbMF0uc3RhcnRzd2l0aCgiaHEtIik6Ci0gICAgICAgICAgICBzZWxmLl9odHRwID0gSDBDb25u
ZWN0aW9uKHNlbGYuX3F1aWMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9odHRw
ID0gSDNDb25uZWN0aW9uKHNlbGYuX3F1aWMpCi0KLSAgICBhc3luYyBkZWYgZ2V0KHNlbGYsIHVy
bDogc3RyLCBoZWFkZXJzOiBEaWN0ID0ge30pIC0+IERlcXVlW0gzRXZlbnRdOgotICAgICAgICAi
IiIKLSAgICAgICAgUGVyZm9ybSBhIEdFVCByZXF1ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIGF3YWl0IHNlbGYuX3JlcXVlc3QoCi0gICAgICAgICAgICBIdHRwUmVxdWVzdChtZXRo
b2Q9IkdFVCIsIHVybD1VUkwodXJsKSwgaGVhZGVycz1oZWFkZXJzKQotICAgICAgICApCi0KLSAg
ICBhc3luYyBkZWYgcG9zdChzZWxmLCB1cmw6IHN0ciwgZGF0YTogYnl0ZXMsIGhlYWRlcnM6IERp
Y3QgPSB7fSkgLT4gRGVxdWVbSDNFdmVudF06Ci0gICAgICAgICIiIgotICAgICAgICBQZXJmb3Jt
IGEgUE9TVCByZXF1ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIGF3YWl0IHNlbGYu
X3JlcXVlc3QoCi0gICAgICAgICAgICBIdHRwUmVxdWVzdChtZXRob2Q9IlBPU1QiLCB1cmw9VVJM
KHVybCksIGNvbnRlbnQ9ZGF0YSwgaGVhZGVycz1oZWFkZXJzKQotICAgICAgICApCi0KLSAgICBh
c3luYyBkZWYgd2Vic29ja2V0KHNlbGYsIHVybDogc3RyLCBzdWJwcm90b2NvbHM6IExpc3Rbc3Ry
XSA9IFtdKSAtPiBXZWJTb2NrZXQ6Ci0gICAgICAgICIiIgotICAgICAgICBPcGVuIGEgV2ViU29j
a2V0LgotICAgICAgICAiIiIKLSAgICAgICAgcmVxdWVzdCA9IEh0dHBSZXF1ZXN0KG1ldGhvZD0i
Q09OTkVDVCIsIHVybD1VUkwodXJsKSkKLSAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5fcXVpYy5n
ZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgd2Vic29ja2V0ID0gV2ViU29j
a2V0KAotICAgICAgICAgICAgaHR0cD1zZWxmLl9odHRwLCBzdHJlYW1faWQ9c3RyZWFtX2lkLCB0
cmFuc21pdD1zZWxmLnRyYW5zbWl0Ci0gICAgICAgICkKLQotICAgICAgICBzZWxmLl93ZWJzb2Nr
ZXRzW3N0cmVhbV9pZF0gPSB3ZWJzb2NrZXQKLQotICAgICAgICBoZWFkZXJzID0gWwotICAgICAg
ICAgICAgKGIiOm1ldGhvZCIsIGIiQ09OTkVDVCIpLAotICAgICAgICAgICAgKGIiOnNjaGVtZSIs
IGIiaHR0cHMiKSwKLSAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCByZXF1ZXN0LnVybC5hdXRo
b3JpdHkuZW5jb2RlKCkpLAotICAgICAgICAgICAgKGIiOnBhdGgiLCByZXF1ZXN0LnVybC5mdWxs
X3BhdGguZW5jb2RlKCkpLAotICAgICAgICAgICAgKGIiOnByb3RvY29sIiwgYiJ3ZWJzb2NrZXQi
KSwKLSAgICAgICAgICAgIChiInVzZXItYWdlbnQiLCBVU0VSX0FHRU5ULmVuY29kZSgpKSwKLSAg
ICAgICAgICAgIChiInNlYy13ZWJzb2NrZXQtdmVyc2lvbiIsIGIiMTMiKSwKLSAgICAgICAgXQot
ICAgICAgICBpZiBzdWJwcm90b2NvbHM6Ci0gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgKLSAg
ICAgICAgICAgICAgICAoYiJzZWMtd2Vic29ja2V0LXByb3RvY29sIiwgIiwgIi5qb2luKHN1YnBy
b3RvY29scykuZW5jb2RlKCkpCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuX2h0dHAuc2Vu
ZF9oZWFkZXJzKHN0cmVhbV9pZD1zdHJlYW1faWQsIGhlYWRlcnM9aGVhZGVycykKLQotICAgICAg
ICBzZWxmLnRyYW5zbWl0KCkKLQotICAgICAgICByZXR1cm4gd2Vic29ja2V0Ci0KLSAgICBkZWYg
aHR0cF9ldmVudF9yZWNlaXZlZChzZWxmLCBldmVudDogSDNFdmVudCkgLT4gTm9uZToKLSAgICAg
ICAgaWYgaXNpbnN0YW5jZShldmVudCwgKEhlYWRlcnNSZWNlaXZlZCwgRGF0YVJlY2VpdmVkKSk6
Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBldmVudC5zdHJlYW1faWQKLSAgICAgICAgICAgIGlm
IHN0cmVhbV9pZCBpbiBzZWxmLl9yZXF1ZXN0X2V2ZW50czoKLSAgICAgICAgICAgICAgICAjIGh0
dHAKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0X2V2ZW50c1tldmVudC5zdHJlYW1faWRd
LmFwcGVuZChldmVudCkKLSAgICAgICAgICAgICAgICBpZiBldmVudC5zdHJlYW1fZW5kZWQ6Ci0g
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3Rfd2FpdGVyID0gc2VsZi5fcmVxdWVzdF93YWl0ZXIu
cG9wKHN0cmVhbV9pZCkKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF93YWl0ZXIuc2V0X3Jl
c3VsdChzZWxmLl9yZXF1ZXN0X2V2ZW50cy5wb3Aoc3RyZWFtX2lkKSkKLQotICAgICAgICAgICAg
ZWxpZiBzdHJlYW1faWQgaW4gc2VsZi5fd2Vic29ja2V0czoKLSAgICAgICAgICAgICAgICAjIHdl
YnNvY2tldAotICAgICAgICAgICAgICAgIHdlYnNvY2tldCA9IHNlbGYuX3dlYnNvY2tldHNbc3Ry
ZWFtX2lkXQotICAgICAgICAgICAgICAgIHdlYnNvY2tldC5odHRwX2V2ZW50X3JlY2VpdmVkKGV2
ZW50KQotCi0gICAgICAgICAgICBlbGlmIGV2ZW50LnB1c2hfaWQgaW4gc2VsZi5wdXNoZXM6Ci0g
ICAgICAgICAgICAgICAgIyBwdXNoCi0gICAgICAgICAgICAgICAgc2VsZi5wdXNoZXNbZXZlbnQu
cHVzaF9pZF0uYXBwZW5kKGV2ZW50KQotCi0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwg
UHVzaFByb21pc2VSZWNlaXZlZCk6Ci0gICAgICAgICAgICBzZWxmLnB1c2hlc1tldmVudC5wdXNo
X2lkXSA9IGRlcXVlKCkKLSAgICAgICAgICAgIHNlbGYucHVzaGVzW2V2ZW50LnB1c2hfaWRdLmFw
cGVuZChldmVudCkKLQotICAgIGRlZiBxdWljX2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBR
dWljRXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgICMgwqBwYXNzIGV2ZW50IHRvIHRoZSBIVFRQIGxh
eWVyCi0gICAgICAgIGlmIHNlbGYuX2h0dHAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3Ig
aHR0cF9ldmVudCBpbiBzZWxmLl9odHRwLmhhbmRsZV9ldmVudChldmVudCk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5odHRwX2V2ZW50X3JlY2VpdmVkKGh0dHBfZXZlbnQpCi0KLSAgICBhc3luYyBk
ZWYgX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdDogSHR0cFJlcXVlc3QpOgotICAgICAgICBzdHJlYW1f
aWQgPSBzZWxmLl9xdWljLmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICBz
ZWxmLl9odHRwLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQs
Ci0gICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgcmVx
dWVzdC5tZXRob2QuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCByZXF1
ZXN0LnVybC5zY2hlbWUuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHki
LCByZXF1ZXN0LnVybC5hdXRob3JpdHkuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIChiIjpw
YXRoIiwgcmVxdWVzdC51cmwuZnVsbF9wYXRoLmVuY29kZSgpKSwKLSAgICAgICAgICAgICAgICAo
YiJ1c2VyLWFnZW50IiwgVVNFUl9BR0VOVC5lbmNvZGUoKSksCi0gICAgICAgICAgICBdCi0gICAg
ICAgICAgICArIFsoay5lbmNvZGUoKSwgdi5lbmNvZGUoKSkgZm9yIChrLCB2KSBpbiByZXF1ZXN0
LmhlYWRlcnMuaXRlbXMoKV0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5faHR0cC5zZW5kX2Rh
dGEoc3RyZWFtX2lkPXN0cmVhbV9pZCwgZGF0YT1yZXF1ZXN0LmNvbnRlbnQsIGVuZF9zdHJlYW09
VHJ1ZSkKLQotICAgICAgICB3YWl0ZXIgPSBzZWxmLl9sb29wLmNyZWF0ZV9mdXR1cmUoKQotICAg
ICAgICBzZWxmLl9yZXF1ZXN0X2V2ZW50c1tzdHJlYW1faWRdID0gZGVxdWUoKQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0X3dhaXRlcltzdHJlYW1faWRdID0gd2FpdGVyCi0gICAgICAgIHNlbGYudHJh
bnNtaXQoKQotCi0gICAgICAgIHJldHVybiBhd2FpdCBhc3luY2lvLnNoaWVsZCh3YWl0ZXIpCi0K
LQotYXN5bmMgZGVmIHBlcmZvcm1faHR0cF9yZXF1ZXN0KAotICAgIGNsaWVudDogSHR0cENsaWVu
dCwgdXJsOiBzdHIsIGRhdGE6IHN0ciwgaW5jbHVkZTogYm9vbCwgb3V0cHV0X2RpcjogT3B0aW9u
YWxbc3RyXSwKLSkgLT4gTm9uZToKLSAgICAjIHBlcmZvcm0gcmVxdWVzdAotICAgIHN0YXJ0ID0g
dGltZS50aW1lKCkKLSAgICBpZiBkYXRhIGlzIG5vdCBOb25lOgotICAgICAgICBodHRwX2V2ZW50
cyA9IGF3YWl0IGNsaWVudC5wb3N0KAotICAgICAgICAgICAgdXJsLAotICAgICAgICAgICAgZGF0
YT1kYXRhLmVuY29kZSgpLAotICAgICAgICAgICAgaGVhZGVycz17ImNvbnRlbnQtdHlwZSI6ICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifSwKLSAgICAgICAgKQotICAgIGVsc2U6
Ci0gICAgICAgIGh0dHBfZXZlbnRzID0gYXdhaXQgY2xpZW50LmdldCh1cmwpCi0gICAgZWxhcHNl
ZCA9IHRpbWUudGltZSgpIC0gc3RhcnQKLQotICAgICMgcHJpbnQgc3BlZWQKLSAgICBvY3RldHMg
PSAwCi0gICAgZm9yIGh0dHBfZXZlbnQgaW4gaHR0cF9ldmVudHM6Ci0gICAgICAgIGlmIGlzaW5z
dGFuY2UoaHR0cF9ldmVudCwgRGF0YVJlY2VpdmVkKToKLSAgICAgICAgICAgIG9jdGV0cyArPSBs
ZW4oaHR0cF9ldmVudC5kYXRhKQotICAgIGxvZ2dlci5pbmZvKAotICAgICAgICAiUmVjZWl2ZWQg
JWQgYnl0ZXMgaW4gJS4xZiBzICglLjNmIE1icHMpIgotICAgICAgICAlIChvY3RldHMsIGVsYXBz
ZWQsIG9jdGV0cyAqIDggLyBlbGFwc2VkIC8gMTAwMDAwMCkKLSAgICApCi0KLSAgICAjIG91dHB1
dCByZXNwb25zZQotICAgIGlmIG91dHB1dF9kaXIgaXMgbm90IE5vbmU6Ci0gICAgICAgIG91dHB1
dF9wYXRoID0gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgb3V0cHV0X2Rpciwgb3MucGF0aC5i
YXNlbmFtZSh1cmxwYXJzZSh1cmwpLnBhdGgpIG9yICJpbmRleC5odG1sIgotICAgICAgICApCi0g
ICAgICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgIndiIikgYXMgb3V0cHV0X2ZpbGU6Ci0gICAg
ICAgICAgICBmb3IgaHR0cF9ldmVudCBpbiBodHRwX2V2ZW50czoKLSAgICAgICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGh0dHBfZXZlbnQsIEhlYWRlcnNSZWNlaXZlZCkgYW5kIGluY2x1ZGU6Ci0g
ICAgICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBiIiIKLSAgICAgICAgICAgICAgICAgICAgZm9y
IGssIHYgaW4gaHR0cF9ldmVudC5oZWFkZXJzOgotICAgICAgICAgICAgICAgICAgICAgICAgaGVh
ZGVycyArPSBrICsgYiI6ICIgKyB2ICsgYiJcclxuIgotICAgICAgICAgICAgICAgICAgICBpZiBo
ZWFkZXJzOgotICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoaGVhZGVy
cyArIGIiXHJcbiIpCi0gICAgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGh0dHBfZXZlbnQs
IERhdGFSZWNlaXZlZCk6Ci0gICAgICAgICAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRlKGh0
dHBfZXZlbnQuZGF0YSkKLQotCi1kZWYgc2F2ZV9zZXNzaW9uX3RpY2tldCh0aWNrZXQ6IFNlc3Np
b25UaWNrZXQpIC0+IE5vbmU6Ci0gICAgIiIiCi0gICAgQ2FsbGJhY2sgd2hpY2ggaXMgaW52b2tl
ZCBieSB0aGUgVExTIGVuZ2luZSB3aGVuIGEgbmV3IHNlc3Npb24gdGlja2V0Ci0gICAgaXMgcmVj
ZWl2ZWQuCi0gICAgIiIiCi0gICAgbG9nZ2VyLmluZm8oIk5ldyBzZXNzaW9uIHRpY2tldCByZWNl
aXZlZCIpCi0gICAgaWYgYXJncy5zZXNzaW9uX3RpY2tldDoKLSAgICAgICAgd2l0aCBvcGVuKGFy
Z3Muc2Vzc2lvbl90aWNrZXQsICJ3YiIpIGFzIGZwOgotICAgICAgICAgICAgcGlja2xlLmR1bXAo
dGlja2V0LCBmcCkKLQotCi1hc3luYyBkZWYgcnVuKAotICAgIGNvbmZpZ3VyYXRpb246IFF1aWND
b25maWd1cmF0aW9uLAotICAgIHVybHM6IExpc3Rbc3RyXSwKLSAgICBkYXRhOiBzdHIsCi0gICAg
aW5jbHVkZTogYm9vbCwKLSAgICBvdXRwdXRfZGlyOiBPcHRpb25hbFtzdHJdLAotICAgIGxvY2Fs
X3BvcnQ6IGludCwKLSkgLT4gTm9uZToKLSAgICAjIHBhcnNlIFVSTAotICAgIHBhcnNlZCA9IHVy
bHBhcnNlKHVybHNbMF0pCi0gICAgYXNzZXJ0IHBhcnNlZC5zY2hlbWUgaW4gKAotICAgICAgICAi
aHR0cHMiLAotICAgICAgICAid3NzIiwKLSAgICApLCAiT25seSBodHRwczovLyBvciB3c3M6Ly8g
VVJMcyBhcmUgc3VwcG9ydGVkLiIKLSAgICBpZiAiOiIgaW4gcGFyc2VkLm5ldGxvYzoKLSAgICAg
ICAgaG9zdCwgcG9ydF9zdHIgPSBwYXJzZWQubmV0bG9jLnNwbGl0KCI6IikKLSAgICAgICAgcG9y
dCA9IGludChwb3J0X3N0cikKLSAgICBlbHNlOgotICAgICAgICBob3N0ID0gcGFyc2VkLm5ldGxv
YwotICAgICAgICBwb3J0ID0gNDQzCi0KLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAg
IGhvc3QsCi0gICAgICAgIHBvcnQsCi0gICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlv
biwKLSAgICAgICAgY3JlYXRlX3Byb3RvY29sPUh0dHBDbGllbnQsCi0gICAgICAgIHNlc3Npb25f
dGlja2V0X2hhbmRsZXI9c2F2ZV9zZXNzaW9uX3RpY2tldCwKLSAgICAgICAgbG9jYWxfcG9ydD1s
b2NhbF9wb3J0LAotICAgICkgYXMgY2xpZW50OgotICAgICAgICBjbGllbnQgPSBjYXN0KEh0dHBD
bGllbnQsIGNsaWVudCkKLQotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICJ3c3MiOgotICAg
ICAgICAgICAgd3MgPSBhd2FpdCBjbGllbnQud2Vic29ja2V0KHVybHNbMF0sIHN1YnByb3RvY29s
cz1bImNoYXQiLCAic3VwZXJjaGF0Il0pCi0KLSAgICAgICAgICAgICMgc2VuZCBzb21lIG1lc3Nh
Z2VzIGFuZCByZWNlaXZlIHJlcGx5Ci0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgyKToKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gIkhlbGxvIHt9LCBXZWJTb2NrZXQhIi5mb3JtYXQoaSkK
LSAgICAgICAgICAgICAgICBwcmludCgiPiAiICsgbWVzc2FnZSkKLSAgICAgICAgICAgICAgICBh
d2FpdCB3cy5zZW5kKG1lc3NhZ2UpCi0KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gYXdhaXQg
d3MucmVjdigpCi0gICAgICAgICAgICAgICAgcHJpbnQoIjwgIiArIG1lc3NhZ2UpCi0KLSAgICAg
ICAgICAgIGF3YWl0IHdzLmNsb3NlKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgcGVy
Zm9ybSByZXF1ZXN0Ci0gICAgICAgICAgICBjb3JvcyA9IFsKLSAgICAgICAgICAgICAgICBwZXJm
b3JtX2h0dHBfcmVxdWVzdCgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50PWNsaWVudCwKLSAg
ICAgICAgICAgICAgICAgICAgdXJsPXVybCwKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRh
LAotICAgICAgICAgICAgICAgICAgICBpbmNsdWRlPWluY2x1ZGUsCi0gICAgICAgICAgICAgICAg
ICAgIG91dHB1dF9kaXI9b3V0cHV0X2RpciwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICAgICAgZm9yIHVybCBpbiB1cmxzCi0gICAgICAgICAgICBdCi0gICAgICAgICAgICBhd2FpdCBh
c3luY2lvLmdhdGhlcigqY29yb3MpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAg
ICBkZWZhdWx0cyA9IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotCi0gICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249IkhUVFAvMyBjbGllbnQi
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICJ1cmwiLCB0eXBlPXN0ciwgbmFy
Z3M9IisiLCBoZWxwPSJ0aGUgVVJMIHRvIHF1ZXJ5IChtdXN0IGJlIEhUVFBTKSIKLSAgICApCi0g
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0tY2EtY2VydHMiLCB0eXBlPXN0ciwg
aGVscD0ibG9hZCBDQSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUiCi0gICAg
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItZCIsICItLWRhdGEiLCB0eXBl
PXN0ciwgaGVscD0ic2VuZCB0aGUgc3BlY2lmaWVkIGRhdGEgaW4gYSBQT1NUIHJlcXVlc3QiCi0g
ICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItaSIsCi0gICAgICAgICIt
LWluY2x1ZGUiLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJp
bmNsdWRlIHRoZSBIVFRQIHJlc3BvbnNlIGhlYWRlcnMgaW4gdGhlIG91dHB1dCIsCi0gICAgKQot
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLW1heC1kYXRhIiwKLSAgICAgICAg
dHlwZT1pbnQsCi0gICAgICAgIGhlbHA9ImNvbm5lY3Rpb24td2lkZSBmbG93IGNvbnRyb2wgbGlt
aXQgKGRlZmF1bHQ6ICVkKSIgJSBkZWZhdWx0cy5tYXhfZGF0YSwKLSAgICApCi0gICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0tbWF4LXN0cmVhbS1kYXRhIiwKLSAgICAgICAgdHlw
ZT1pbnQsCi0gICAgICAgIGhlbHA9InBlci1zdHJlYW0gZmxvdyBjb250cm9sIGxpbWl0IChkZWZh
dWx0OiAlZCkiICUgZGVmYXVsdHMubWF4X3N0cmVhbV9kYXRhLAotICAgICkKLSAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KAotICAgICAgICAiLWsiLAotICAgICAgICAiLS1pbnNlY3VyZSIsCi0gICAg
ICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgIGhlbHA9ImRvIG5vdCB2YWxpZGF0ZSBz
ZXJ2ZXIgY2VydGlmaWNhdGUiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWxl
Z2FjeS1odHRwIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0idXNlIEhUVFAvMC45IikKLSAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLS1vdXRwdXQtZGlyIiwgdHlwZT1zdHIs
IGhlbHA9IndyaXRlIGRvd25sb2FkZWQgZmlsZXMgdG8gdGhpcyBkaXJlY3RvcnkiLAotICAgICkK
LSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXEiLCAiLS1xdWljLWxvZyIsIHR5
cGU9c3RyLCBoZWxwPSJsb2cgUVVJQyBldmVudHMgdG8gYSBmaWxlIGluIFFMT0cgZm9ybWF0Igot
ICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLWwiLAotICAgICAgICAi
LS1zZWNyZXRzLWxvZyIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJsb2cgc2Vj
cmV0cyB0byBhIGZpbGUsIGZvciB1c2Ugd2l0aCBXaXJlc2hhcmsiLAotICAgICkKLSAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLXMiLAotICAgICAgICAiLS1zZXNzaW9uLXRpY2tl
dCIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBoZWxwPSJyZWFkIGFuZCB3cml0ZSBzZXNz
aW9uIHRpY2tldCBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZSIsCi0gICAgKQotICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCi0gICAgICAgICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBoZWxwPSJpbmNyZWFzZSBsb2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0gICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0tbG9jYWwtcG9ydCIsIHR5cGU9aW50LCBkZWZhdWx0
PTAsIGhlbHA9ImxvY2FsIHBvcnQgdG8gYmluZCBmb3IgY29ubmVjdGlvbnMiLAotICAgICkKLQot
ICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBsb2dnaW5nLmJhc2ljQ29uZmln
KAotICAgICAgICBmb3JtYXQ9IiUoYXNjdGltZSlzICUobGV2ZWxuYW1lKXMgJShuYW1lKXMgJSht
ZXNzYWdlKXMiLAotICAgICAgICBsZXZlbD1sb2dnaW5nLkRFQlVHIGlmIGFyZ3MudmVyYm9zZSBl
bHNlIGxvZ2dpbmcuSU5GTywKLSAgICApCi0KLSAgICBpZiBhcmdzLm91dHB1dF9kaXIgaXMgbm90
IE5vbmUgYW5kIG5vdCBvcy5wYXRoLmlzZGlyKGFyZ3Mub3V0cHV0X2Rpcik6Ci0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigiJXMgaXMgbm90IGEgZGlyZWN0b3J5IiAlIGFyZ3Mub3V0cHV0X2RpcikK
LQotICAgICMgcHJlcGFyZSBjb25maWd1cmF0aW9uCi0gICAgY29uZmlndXJhdGlvbiA9IFF1aWND
b25maWd1cmF0aW9uKAotICAgICAgICBpc19jbGllbnQ9VHJ1ZSwgYWxwbl9wcm90b2NvbHM9SDBf
QUxQTiBpZiBhcmdzLmxlZ2FjeV9odHRwIGVsc2UgSDNfQUxQTgotICAgICkKLSAgICBpZiBhcmdz
LmNhX2NlcnRzOgotICAgICAgICBjb25maWd1cmF0aW9uLmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhh
cmdzLmNhX2NlcnRzKQotICAgIGlmIGFyZ3MuaW5zZWN1cmU6Ci0gICAgICAgIGNvbmZpZ3VyYXRp
b24udmVyaWZ5X21vZGUgPSBzc2wuQ0VSVF9OT05FCi0gICAgaWYgYXJncy5tYXhfZGF0YToKLSAg
ICAgICAgY29uZmlndXJhdGlvbi5tYXhfZGF0YSA9IGFyZ3MubWF4X2RhdGEKLSAgICBpZiBhcmdz
Lm1heF9zdHJlYW1fZGF0YToKLSAgICAgICAgY29uZmlndXJhdGlvbi5tYXhfc3RyZWFtX2RhdGEg
PSBhcmdzLm1heF9zdHJlYW1fZGF0YQotICAgIGlmIGFyZ3MucXVpY19sb2c6Ci0gICAgICAgIGNv
bmZpZ3VyYXRpb24ucXVpY19sb2dnZXIgPSBRdWljTG9nZ2VyKCkKLSAgICBpZiBhcmdzLnNlY3Jl
dHNfbG9nOgotICAgICAgICBjb25maWd1cmF0aW9uLnNlY3JldHNfbG9nX2ZpbGUgPSBvcGVuKGFy
Z3Muc2VjcmV0c19sb2csICJhIikKLSAgICBpZiBhcmdzLnNlc3Npb25fdGlja2V0OgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oYXJncy5zZXNzaW9uX3RpY2tldCwgInJiIikg
YXMgZnA6Ci0gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi5zZXNzaW9uX3RpY2tldCA9IHBp
Y2tsZS5sb2FkKGZwKQotICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6Ci0gICAgICAg
ICAgICBwYXNzCi0KLSAgICBpZiB1dmxvb3AgaXMgbm90IE5vbmU6Ci0gICAgICAgIHV2bG9vcC5p
bnN0YWxsKCkKLSAgICBsb29wID0gYXN5bmNpby5nZXRfZXZlbnRfbG9vcCgpCi0gICAgdHJ5Ogot
ICAgICAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgKLSAgICAgICAgICAgIHJ1bigKLSAgICAg
ICAgICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgICAgICAgICAg
dXJscz1hcmdzLnVybCwKLSAgICAgICAgICAgICAgICBkYXRhPWFyZ3MuZGF0YSwKLSAgICAgICAg
ICAgICAgICBpbmNsdWRlPWFyZ3MuaW5jbHVkZSwKLSAgICAgICAgICAgICAgICBvdXRwdXRfZGly
PWFyZ3Mub3V0cHV0X2RpciwKLSAgICAgICAgICAgICAgICBsb2NhbF9wb3J0PWFyZ3MubG9jYWxf
cG9ydCwKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGlm
IGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB3aXRo
IG9wZW4oYXJncy5xdWljX2xvZywgInciKSBhcyBsb2dnZXJfZnA6Ci0gICAgICAgICAgICAgICAg
anNvbi5kdW1wKGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIudG9fZGljdCgpLCBsb2dnZXJfZnAs
IGluZGVudD00KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0dHAzX3NlcnZl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odHRwM19zZXJ2ZXIucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYxNWIwNGIwM2MxNTQzZjM2MGQwNDY4ODY5ODM1MzZjZTI1ZWFh
N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL2V4YW1wbGVzL2h0dHAzX3NlcnZlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ4NCAr
MCwwIEBACi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQgaW1wb3J0bGli
Ci1pbXBvcnQganNvbgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHRpbWUKLWZy
b20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi1mcm9tIGVtYWlsLnV0aWxzIGltcG9ydCBmb3Jt
YXRkYXRlCi1mcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUsIERlcXVlLCBEaWN0LCBMaXN0LCBP
cHRpb25hbCwgVW5pb24sIGNhc3QKLQotaW1wb3J0IHdzcHJvdG8KLWltcG9ydCB3c3Byb3RvLmV2
ZW50cwotCi1pbXBvcnQgYWlvcXVpYwotZnJvbSBhaW9xdWljLmFzeW5jaW8gaW1wb3J0IFF1aWND
b25uZWN0aW9uUHJvdG9jb2wsIHNlcnZlCi1mcm9tIGFpb3F1aWMuaDAuY29ubmVjdGlvbiBpbXBv
cnQgSDBfQUxQTiwgSDBDb25uZWN0aW9uCi1mcm9tIGFpb3F1aWMuaDMuY29ubmVjdGlvbiBpbXBv
cnQgSDNfQUxQTiwgSDNDb25uZWN0aW9uCi1mcm9tIGFpb3F1aWMuaDMuZXZlbnRzIGltcG9ydCBE
YXRhUmVjZWl2ZWQsIEgzRXZlbnQsIEhlYWRlcnNSZWNlaXZlZAotZnJvbSBhaW9xdWljLmgzLmV4
Y2VwdGlvbnMgaW1wb3J0IE5vQXZhaWxhYmxlUHVzaElERXJyb3IKLWZyb20gYWlvcXVpYy5xdWlj
LmNvbmZpZ3VyYXRpb24gaW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVp
Yy5ldmVudHMgaW1wb3J0IERhdGFncmFtRnJhbWVSZWNlaXZlZCwgUHJvdG9jb2xOZWdvdGlhdGVk
LCBRdWljRXZlbnQKLWZyb20gYWlvcXVpYy5xdWljLmxvZ2dlciBpbXBvcnQgUXVpY0xvZ2dlciwg
UXVpY0xvZ2dlclRyYWNlCi1mcm9tIGFpb3F1aWMudGxzIGltcG9ydCBTZXNzaW9uVGlja2V0Ci0K
LXRyeToKLSAgICBpbXBvcnQgdXZsb29wCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgdXZsb29w
ID0gTm9uZQotCi1Bc2dpQXBwbGljYXRpb24gPSBDYWxsYWJsZQotSHR0cENvbm5lY3Rpb24gPSBV
bmlvbltIMENvbm5lY3Rpb24sIEgzQ29ubmVjdGlvbl0KLQotU0VSVkVSX05BTUUgPSAiYWlvcXVp
Yy8iICsgYWlvcXVpYy5fX3ZlcnNpb25fXwotCi0KLWNsYXNzIEh0dHBSZXF1ZXN0SGFuZGxlcjoK
LSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsCi0gICAgICAgICosCi0gICAgICAgIGF1
dGhvcml0eTogYnl0ZXMsCi0gICAgICAgIGNvbm5lY3Rpb246IEh0dHBDb25uZWN0aW9uLAotICAg
ICAgICBwcm90b2NvbDogUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCwKLSAgICAgICAgc2NvcGU6IERp
Y3QsCi0gICAgICAgIHN0cmVhbV9lbmRlZDogYm9vbCwKLSAgICAgICAgc3RyZWFtX2lkOiBpbnQs
Ci0gICAgICAgIHRyYW5zbWl0OiBDYWxsYWJsZVtbXSwgTm9uZV0sCi0gICAgKSAtPiBOb25lOgot
ICAgICAgICBzZWxmLmF1dGhvcml0eSA9IGF1dGhvcml0eQotICAgICAgICBzZWxmLmNvbm5lY3Rp
b24gPSBjb25uZWN0aW9uCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAg
ICBzZWxmLnF1ZXVlOiBhc3luY2lvLlF1ZXVlW0RpY3RdID0gYXN5bmNpby5RdWV1ZSgpCi0gICAg
ICAgIHNlbGYuc2NvcGUgPSBzY29wZQotICAgICAgICBzZWxmLnN0cmVhbV9pZCA9IHN0cmVhbV9p
ZAotICAgICAgICBzZWxmLnRyYW5zbWl0ID0gdHJhbnNtaXQKLQotICAgICAgICBpZiBzdHJlYW1f
ZW5kZWQ6Ci0gICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dF9ub3dhaXQoeyJ0eXBlIjogImh0dHAu
cmVxdWVzdCJ9KQotCi0gICAgZGVmIGh0dHBfZXZlbnRfcmVjZWl2ZWQoc2VsZiwgZXZlbnQ6IEgz
RXZlbnQpIC0+IE5vbmU6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIERhdGFSZWNlaXZl
ZCk6Ci0gICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dF9ub3dhaXQoCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJodHRwLnJlcXVlc3QiLAotICAgICAgICAg
ICAgICAgICAgICAiYm9keSI6IGV2ZW50LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICJtb3Jl
X2JvZHkiOiBub3QgZXZlbnQuc3RyZWFtX2VuZGVkLAotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICkKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBIZWFkZXJzUmVjZWl2ZWQp
IGFuZCBldmVudC5zdHJlYW1fZW5kZWQ6Ci0gICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dF9ub3dh
aXQoCi0gICAgICAgICAgICAgICAgeyJ0eXBlIjogImh0dHAucmVxdWVzdCIsICJib2R5IjogYiIi
LCAibW9yZV9ib2R5IjogRmFsc2V9Ci0gICAgICAgICAgICApCi0KLSAgICBhc3luYyBkZWYgcnVu
X2FzZ2koc2VsZiwgYXBwOiBBc2dpQXBwbGljYXRpb24pIC0+IE5vbmU6Ci0gICAgICAgIGF3YWl0
IGFwcGxpY2F0aW9uKHNlbGYuc2NvcGUsIHNlbGYucmVjZWl2ZSwgc2VsZi5zZW5kKQotCi0gICAg
YXN5bmMgZGVmIHJlY2VpdmUoc2VsZikgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIGF3YWl0IHNl
bGYucXVldWUuZ2V0KCkKLQotICAgIGFzeW5jIGRlZiBzZW5kKHNlbGYsIG1lc3NhZ2U6IERpY3Qp
IC0+IE5vbmU6Ci0gICAgICAgIGlmIG1lc3NhZ2VbInR5cGUiXSA9PSAiaHR0cC5yZXNwb25zZS5z
dGFydCI6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uc2VuZF9oZWFkZXJzKAotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD1zZWxmLnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIHN0cihtZXNzYWdlWyJzdGF0
dXMiXSkuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgICAgICAoYiJzZXJ2ZXIiLCBTRVJWRVJf
TkFNRS5lbmNvZGUoKSksCi0gICAgICAgICAgICAgICAgICAgIChiImRhdGUiLCBmb3JtYXRkYXRl
KHRpbWUudGltZSgpLCB1c2VnbXQ9VHJ1ZSkuZW5jb2RlKCkpLAotICAgICAgICAgICAgICAgIF0K
LSAgICAgICAgICAgICAgICArIFsoaywgdikgZm9yIGssIHYgaW4gbWVzc2FnZVsiaGVhZGVycyJd
XSwKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxpZiBtZXNzYWdlWyJ0eXBlIl0gPT0gImh0dHAu
cmVzcG9uc2UuYm9keSI6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uc2VuZF9kYXRhKAot
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zZWxmLnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAg
ICBkYXRhPW1lc3NhZ2UuZ2V0KCJib2R5IiwgYiIiKSwKLSAgICAgICAgICAgICAgICBlbmRfc3Ry
ZWFtPW5vdCBtZXNzYWdlLmdldCgibW9yZV9ib2R5IiwgRmFsc2UpLAotICAgICAgICAgICAgKQot
ICAgICAgICBlbGlmIG1lc3NhZ2VbInR5cGUiXSA9PSAiaHR0cC5yZXNwb25zZS5wdXNoIiBhbmQg
aXNpbnN0YW5jZSgKLSAgICAgICAgICAgIHNlbGYuY29ubmVjdGlvbiwgSDNDb25uZWN0aW9uCi0g
ICAgICAgICk6Ci0gICAgICAgICAgICByZXF1ZXN0X2hlYWRlcnMgPSBbCi0gICAgICAgICAgICAg
ICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIi
aHR0cHMiKSwKLSAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5Iiwgc2VsZi5hdXRob3JpdHkp
LAotICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgbWVzc2FnZVsicGF0aCJdLmVuY29kZSgpKSwK
LSAgICAgICAgICAgIF0gKyBbKGssIHYpIGZvciBrLCB2IGluIG1lc3NhZ2VbImhlYWRlcnMiXV0K
LQotICAgICAgICAgICAgIyBzZW5kIHB1c2ggcHJvbWlzZQotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHB1c2hfc3RyZWFtX2lkID0gc2VsZi5jb25uZWN0aW9uLnNlbmRfcHVzaF9w
cm9taXNlKAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c2VsZi5zdHJlYW1faWQsIGhl
YWRlcnM9cmVxdWVzdF9oZWFkZXJzCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgZXhj
ZXB0IE5vQXZhaWxhYmxlUHVzaElERXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgICAgICMgZmFrZSByZXF1ZXN0Ci0gICAgICAgICAgICBjYXN0KEh0dHBTZXJ2ZXJQcm90
b2NvbCwgc2VsZi5wcm90b2NvbCkuaHR0cF9ldmVudF9yZWNlaXZlZCgKLSAgICAgICAgICAgICAg
ICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9cmVxdWVzdF9o
ZWFkZXJzLCBzdHJlYW1fZW5kZWQ9VHJ1ZSwgc3RyZWFtX2lkPXB1c2hfc3RyZWFtX2lkCi0gICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLnRyYW5zbWl0KCkKLQot
Ci1jbGFzcyBXZWJTb2NrZXRIYW5kbGVyOgotICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2Vs
ZiwKLSAgICAgICAgKiwKLSAgICAgICAgY29ubmVjdGlvbjogSHR0cENvbm5lY3Rpb24sCi0gICAg
ICAgIHNjb3BlOiBEaWN0LAotICAgICAgICBzdHJlYW1faWQ6IGludCwKLSAgICAgICAgdHJhbnNt
aXQ6IENhbGxhYmxlW1tdLCBOb25lXSwKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuY2xv
c2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5jb25uZWN0aW9uID0gY29ubmVjdGlvbgotICAgICAg
ICBzZWxmLmh0dHBfZXZlbnRfcXVldWU6IERlcXVlW0RhdGFSZWNlaXZlZF0gPSBkZXF1ZSgpCi0g
ICAgICAgIHNlbGYucXVldWU6IGFzeW5jaW8uUXVldWVbRGljdF0gPSBhc3luY2lvLlF1ZXVlKCkK
LSAgICAgICAgc2VsZi5zY29wZSA9IHNjb3BlCi0gICAgICAgIHNlbGYuc3RyZWFtX2lkID0gc3Ry
ZWFtX2lkCi0gICAgICAgIHNlbGYudHJhbnNtaXQgPSB0cmFuc21pdAotICAgICAgICBzZWxmLndl
YnNvY2tldDogT3B0aW9uYWxbd3Nwcm90by5Db25uZWN0aW9uXSA9IE5vbmUKLQotICAgIGRlZiBo
dHRwX2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBIM0V2ZW50KSAtPiBOb25lOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKGV2ZW50LCBEYXRhUmVjZWl2ZWQpIGFuZCBub3Qgc2VsZi5jbG9zZWQ6
Ci0gICAgICAgICAgICBpZiBzZWxmLndlYnNvY2tldCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICBzZWxmLndlYnNvY2tldC5yZWNlaXZlX2RhdGEoZXZlbnQuZGF0YSkKLQotICAgICAgICAg
ICAgICAgIGZvciB3c19ldmVudCBpbiBzZWxmLndlYnNvY2tldC5ldmVudHMoKToKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi53ZWJzb2NrZXRfZXZlbnRfcmVjZWl2ZWQod3NfZXZlbnQpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgZGVsYXkgZXZlbnQgcHJvY2Vzc2luZyB1
bnRpbCB3ZSBnZXQgYHdlYnNvY2tldC5hY2NlcHRgCi0gICAgICAgICAgICAgICAgIyBmcm9tIHRo
ZSBBU0dJIGFwcGxpY2F0aW9uCi0gICAgICAgICAgICAgICAgc2VsZi5odHRwX2V2ZW50X3F1ZXVl
LmFwcGVuZChldmVudCkKLQotICAgIGRlZiB3ZWJzb2NrZXRfZXZlbnRfcmVjZWl2ZWQoc2VsZiwg
ZXZlbnQ6IHdzcHJvdG8uZXZlbnRzLkV2ZW50KSAtPiBOb25lOgotICAgICAgICBpZiBpc2luc3Rh
bmNlKGV2ZW50LCB3c3Byb3RvLmV2ZW50cy5UZXh0TWVzc2FnZSk6Ci0gICAgICAgICAgICBzZWxm
LnF1ZXVlLnB1dF9ub3dhaXQoeyJ0eXBlIjogIndlYnNvY2tldC5yZWNlaXZlIiwgInRleHQiOiBl
dmVudC5kYXRhfSkKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCB3c3Byb3RvLmV2ZW50
cy5NZXNzYWdlKToKLSAgICAgICAgICAgIHNlbGYucXVldWUucHV0X25vd2FpdCh7InR5cGUiOiAi
d2Vic29ja2V0LnJlY2VpdmUiLCAiYnl0ZXMiOiBldmVudC5kYXRhfSkKLSAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGV2ZW50LCB3c3Byb3RvLmV2ZW50cy5DbG9zZUNvbm5lY3Rpb24pOgotICAgICAg
ICAgICAgc2VsZi5xdWV1ZS5wdXRfbm93YWl0KHsidHlwZSI6ICJ3ZWJzb2NrZXQuZGlzY29ubmVj
dCIsICJjb2RlIjogZXZlbnQuY29kZX0pCi0KLSAgICBhc3luYyBkZWYgcnVuX2FzZ2koc2VsZiwg
YXBwOiBBc2dpQXBwbGljYXRpb24pIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYucXVldWUucHV0X25v
d2FpdCh7InR5cGUiOiAid2Vic29ja2V0LmNvbm5lY3QifSkKLQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBhd2FpdCBhcHBsaWNhdGlvbihzZWxmLnNjb3BlLCBzZWxmLnJlY2VpdmUsIHNlbGYu
c2VuZCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNsb3NlZDoK
LSAgICAgICAgICAgICAgICBhd2FpdCBzZWxmLnNlbmQoeyJ0eXBlIjogIndlYnNvY2tldC5jbG9z
ZSIsICJjb2RlIjogMTAwMH0pCi0KLSAgICBhc3luYyBkZWYgcmVjZWl2ZShzZWxmKSAtPiBEaWN0
OgotICAgICAgICByZXR1cm4gYXdhaXQgc2VsZi5xdWV1ZS5nZXQoKQotCi0gICAgYXN5bmMgZGVm
IHNlbmQoc2VsZiwgbWVzc2FnZTogRGljdCkgLT4gTm9uZToKLSAgICAgICAgZGF0YSA9IGIiIgot
ICAgICAgICBlbmRfc3RyZWFtID0gRmFsc2UKLSAgICAgICAgaWYgbWVzc2FnZVsidHlwZSJdID09
ICJ3ZWJzb2NrZXQuYWNjZXB0IjoKLSAgICAgICAgICAgIHN1YnByb3RvY29sID0gbWVzc2FnZS5n
ZXQoInN1YnByb3RvY29sIikKLQotICAgICAgICAgICAgc2VsZi53ZWJzb2NrZXQgPSB3c3Byb3Rv
LkNvbm5lY3Rpb24od3Nwcm90by5Db25uZWN0aW9uVHlwZS5TRVJWRVIpCi0KLSAgICAgICAgICAg
IGhlYWRlcnMgPSBbCi0gICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAg
ICAgICAgICAgICAgKGIic2VydmVyIiwgU0VSVkVSX05BTUUuZW5jb2RlKCkpLAotICAgICAgICAg
ICAgICAgIChiImRhdGUiLCBmb3JtYXRkYXRlKHRpbWUudGltZSgpLCB1c2VnbXQ9VHJ1ZSkuZW5j
b2RlKCkpLAotICAgICAgICAgICAgXQotICAgICAgICAgICAgaWYgc3VicHJvdG9jb2wgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKGIic2VjLXdlYnNvY2tldC1w
cm90b2NvbCIsIHN1YnByb3RvY29sLmVuY29kZSgpKSkKLSAgICAgICAgICAgIHNlbGYuY29ubmVj
dGlvbi5zZW5kX2hlYWRlcnMoc3RyZWFtX2lkPXNlbGYuc3RyZWFtX2lkLCBoZWFkZXJzPWhlYWRl
cnMpCi0KLSAgICAgICAgICAgICMgY29uc3VtZSBiYWNrbG9nCi0gICAgICAgICAgICB3aGlsZSBz
ZWxmLmh0dHBfZXZlbnRfcXVldWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5odHRwX2V2ZW50X3Jl
Y2VpdmVkKHNlbGYuaHR0cF9ldmVudF9xdWV1ZS5wb3BsZWZ0KCkpCi0KLSAgICAgICAgZWxpZiBt
ZXNzYWdlWyJ0eXBlIl0gPT0gIndlYnNvY2tldC5jbG9zZSI6Ci0gICAgICAgICAgICBpZiBzZWxm
LndlYnNvY2tldCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi53ZWJz
b2NrZXQuc2VuZCgKLSAgICAgICAgICAgICAgICAgICAgd3Nwcm90by5ldmVudHMuQ2xvc2VDb25u
ZWN0aW9uKGNvZGU9bWVzc2FnZVsiY29kZSJdKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLnNlbmRfaGVhZGVycygK
LSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXNlbGYuc3RyZWFtX2lkLCBoZWFkZXJzPVso
YiI6c3RhdHVzIiwgYiI0MDMiKV0KLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbmRf
c3RyZWFtID0gVHJ1ZQotICAgICAgICBlbGlmIG1lc3NhZ2VbInR5cGUiXSA9PSAid2Vic29ja2V0
LnNlbmQiOgotICAgICAgICAgICAgaWYgbWVzc2FnZS5nZXQoInRleHQiKSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi53ZWJzb2NrZXQuc2VuZCgKLSAgICAgICAgICAg
ICAgICAgICAgd3Nwcm90by5ldmVudHMuVGV4dE1lc3NhZ2UoZGF0YT1tZXNzYWdlWyJ0ZXh0Il0p
Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgZWxpZiBtZXNzYWdlLmdldCgiYnl0ZXMi
KSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi53ZWJzb2NrZXQuc2Vu
ZCgKLSAgICAgICAgICAgICAgICAgICAgd3Nwcm90by5ldmVudHMuTWVzc2FnZShkYXRhPW1lc3Nh
Z2VbImJ5dGVzIl0pCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgIGlmIGRhdGE6Ci0gICAg
ICAgICAgICBzZWxmLmNvbm5lY3Rpb24uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1zZWxmLnN0cmVhbV9pZCwgZGF0YT1kYXRhLCBlbmRfc3RyZWFtPWVuZF9zdHJlYW0KLSAg
ICAgICAgICAgICkKLSAgICAgICAgaWYgZW5kX3N0cmVhbToKLSAgICAgICAgICAgIHNlbGYuY2xv
c2VkID0gVHJ1ZQotICAgICAgICBzZWxmLnRyYW5zbWl0KCkKLQotCi1IYW5kbGVyID0gVW5pb25b
SHR0cFJlcXVlc3RIYW5kbGVyLCBXZWJTb2NrZXRIYW5kbGVyXQotCi0KLWNsYXNzIEh0dHBTZXJ2
ZXJQcm90b2NvbChRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKSAtPiBOb25lOgotICAgICAgICBzdXBlcigpLl9faW5pdF9fKCph
cmdzLCAqKmt3YXJncykKLSAgICAgICAgc2VsZi5faGFuZGxlcnM6IERpY3RbaW50LCBIYW5kbGVy
XSA9IHt9Ci0gICAgICAgIHNlbGYuX2h0dHA6IE9wdGlvbmFsW0h0dHBDb25uZWN0aW9uXSA9IE5v
bmUKLQotICAgIGRlZiBodHRwX2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBIM0V2ZW50KSAt
PiBOb25lOgotICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBIZWFkZXJzUmVjZWl2ZWQpIGFu
ZCBldmVudC5zdHJlYW1faWQgbm90IGluIHNlbGYuX2hhbmRsZXJzOgotICAgICAgICAgICAgYXV0
aG9yaXR5ID0gTm9uZQotICAgICAgICAgICAgaGVhZGVycyA9IFtdCi0gICAgICAgICAgICBodHRw
X3ZlcnNpb24gPSAiMC45IiBpZiBpc2luc3RhbmNlKHNlbGYuX2h0dHAsIEgwQ29ubmVjdGlvbikg
ZWxzZSAiMyIKLSAgICAgICAgICAgIHJhd19wYXRoID0gYiIiCi0gICAgICAgICAgICBtZXRob2Qg
PSAiIgotICAgICAgICAgICAgcHJvdG9jb2wgPSBOb25lCi0gICAgICAgICAgICBmb3IgaGVhZGVy
LCB2YWx1ZSBpbiBldmVudC5oZWFkZXJzOgotICAgICAgICAgICAgICAgIGlmIGhlYWRlciA9PSBi
IjphdXRob3JpdHkiOgotICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkgPSB2YWx1ZQotICAg
ICAgICAgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoYiJob3N0IiwgdmFsdWUpKQotICAgICAg
ICAgICAgICAgIGVsaWYgaGVhZGVyID09IGIiOm1ldGhvZCI6Ci0gICAgICAgICAgICAgICAgICAg
IG1ldGhvZCA9IHZhbHVlLmRlY29kZSgpCi0gICAgICAgICAgICAgICAgZWxpZiBoZWFkZXIgPT0g
YiI6cGF0aCI6Ci0gICAgICAgICAgICAgICAgICAgIHJhd19wYXRoID0gdmFsdWUKLSAgICAgICAg
ICAgICAgICBlbGlmIGhlYWRlciA9PSBiIjpwcm90b2NvbCI6Ci0gICAgICAgICAgICAgICAgICAg
IHByb3RvY29sID0gdmFsdWUuZGVjb2RlKCkKLSAgICAgICAgICAgICAgICBlbGlmIGhlYWRlciBh
bmQgbm90IGhlYWRlci5zdGFydHN3aXRoKGIiOiIpOgotICAgICAgICAgICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoaGVhZGVyLCB2YWx1ZSkpCi0KLSAgICAgICAgICAgIGlmIGIiPyIgaW4gcmF3
X3BhdGg6Ci0gICAgICAgICAgICAgICAgcGF0aF9ieXRlcywgcXVlcnlfc3RyaW5nID0gcmF3X3Bh
dGguc3BsaXQoYiI/IiwgbWF4c3BsaXQ9MSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcGF0aF9ieXRlcywgcXVlcnlfc3RyaW5nID0gcmF3X3BhdGgsIGIiIgotICAgICAgICAg
ICAgcGF0aCA9IHBhdGhfYnl0ZXMuZGVjb2RlKCkKLQotICAgICAgICAgICAgIyBGSVhNRTogYWRk
IGEgcHVibGljIEFQSSB0byByZXRyaWV2ZSBwZWVyIGFkZHJlc3MKLSAgICAgICAgICAgIGNsaWVu
dF9hZGRyID0gc2VsZi5faHR0cC5fcXVpYy5fbmV0d29ya19wYXRoc1swXS5hZGRyCi0gICAgICAg
ICAgICBjbGllbnQgPSAoY2xpZW50X2FkZHJbMF0sIGNsaWVudF9hZGRyWzFdKQotCi0gICAgICAg
ICAgICBoYW5kbGVyOiBIYW5kbGVyCi0gICAgICAgICAgICBzY29wZTogRGljdAotICAgICAgICAg
ICAgaWYgbWV0aG9kID09ICJDT05ORUNUIiBhbmQgcHJvdG9jb2wgPT0gIndlYnNvY2tldCI6Ci0g
ICAgICAgICAgICAgICAgc3VicHJvdG9jb2xzOiBMaXN0W3N0cl0gPSBbXQotICAgICAgICAgICAg
ICAgIGZvciBoZWFkZXIsIHZhbHVlIGluIGV2ZW50LmhlYWRlcnM6Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIGhlYWRlciA9PSBiInNlYy13ZWJzb2NrZXQtcHJvdG9jb2wiOgotICAgICAgICAgICAg
ICAgICAgICAgICAgc3VicHJvdG9jb2xzID0gW3guc3RyaXAoKSBmb3IgeCBpbiB2YWx1ZS5kZWNv
ZGUoKS5zcGxpdCgiLCIpXQotICAgICAgICAgICAgICAgIHNjb3BlID0gewotICAgICAgICAgICAg
ICAgICAgICAiY2xpZW50IjogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyI6
IGhlYWRlcnMsCi0gICAgICAgICAgICAgICAgICAgICJodHRwX3ZlcnNpb24iOiBodHRwX3ZlcnNp
b24sCi0gICAgICAgICAgICAgICAgICAgICJtZXRob2QiOiBtZXRob2QsCi0gICAgICAgICAgICAg
ICAgICAgICJwYXRoIjogcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgInF1ZXJ5X3N0cmluZyI6
IHF1ZXJ5X3N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgInJhd19wYXRoIjogcmF3X3BhdGgs
Ci0gICAgICAgICAgICAgICAgICAgICJyb290X3BhdGgiOiAiIiwKLSAgICAgICAgICAgICAgICAg
ICAgInNjaGVtZSI6ICJ3c3MiLAotICAgICAgICAgICAgICAgICAgICAic3VicHJvdG9jb2xzIjog
c3VicHJvdG9jb2xzLAotICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJ3ZWJzb2NrZXQiLAot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBoYW5kbGVyID0gV2ViU29ja2V0SGFu
ZGxlcigKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbj1zZWxmLl9odHRwLAotICAgICAg
ICAgICAgICAgICAgICBzY29wZT1zY29wZSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lk
PWV2ZW50LnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtaXQ9c2VsZi50cmFu
c21pdCwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIGV4dGVuc2lvbnM6IERpY3Rbc3RyLCBEaWN0XSA9IHt9Ci0gICAgICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZShzZWxmLl9odHRwLCBIM0Nvbm5lY3Rpb24pOgotICAgICAgICAgICAgICAgICAg
ICBleHRlbnNpb25zWyJodHRwLnJlc3BvbnNlLnB1c2giXSA9IHt9Ci0gICAgICAgICAgICAgICAg
c2NvcGUgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJjbGllbnQiOiBjbGllbnQsCi0gICAgICAg
ICAgICAgICAgICAgICJleHRlbnNpb25zIjogZXh0ZW5zaW9ucywKLSAgICAgICAgICAgICAgICAg
ICAgImhlYWRlcnMiOiBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAiaHR0cF92ZXJzaW9u
IjogaHR0cF92ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAot
ICAgICAgICAgICAgICAgICAgICAicGF0aCI6IHBhdGgsCi0gICAgICAgICAgICAgICAgICAgICJx
dWVyeV9zdHJpbmciOiBxdWVyeV9zdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICJyYXdfcGF0
aCI6IHJhd19wYXRoLAotICAgICAgICAgICAgICAgICAgICAicm9vdF9wYXRoIjogIiIsCi0gICAg
ICAgICAgICAgICAgICAgICJzY2hlbWUiOiAiaHR0cHMiLAotICAgICAgICAgICAgICAgICAgICAi
dHlwZSI6ICJodHRwIiwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaGFuZGxl
ciA9IEh0dHBSZXF1ZXN0SGFuZGxlcigKLSAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5PWF1
dGhvcml0eSwKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbj1zZWxmLl9odHRwLAotICAg
ICAgICAgICAgICAgICAgICBwcm90b2NvbD1zZWxmLAotICAgICAgICAgICAgICAgICAgICBzY29w
ZT1zY29wZSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPWV2ZW50LnN0cmVhbV9l
bmRlZCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPWV2ZW50LnN0cmVhbV9pZCwKLSAg
ICAgICAgICAgICAgICAgICAgdHJhbnNtaXQ9c2VsZi50cmFuc21pdCwKLSAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICBzZWxmLl9oYW5kbGVyc1tldmVudC5zdHJlYW1faWRdID0gaGFuZGxl
cgotICAgICAgICAgICAgYXN5bmNpby5lbnN1cmVfZnV0dXJlKGhhbmRsZXIucnVuX2FzZ2koYXBw
bGljYXRpb24pKQotICAgICAgICBlbGlmICgKLSAgICAgICAgICAgIGlzaW5zdGFuY2UoZXZlbnQs
IChEYXRhUmVjZWl2ZWQsIEhlYWRlcnNSZWNlaXZlZCkpCi0gICAgICAgICAgICBhbmQgZXZlbnQu
c3RyZWFtX2lkIGluIHNlbGYuX2hhbmRsZXJzCi0gICAgICAgICk6Ci0gICAgICAgICAgICBoYW5k
bGVyID0gc2VsZi5faGFuZGxlcnNbZXZlbnQuc3RyZWFtX2lkXQotICAgICAgICAgICAgaGFuZGxl
ci5odHRwX2V2ZW50X3JlY2VpdmVkKGV2ZW50KQotCi0gICAgZGVmIHF1aWNfZXZlbnRfcmVjZWl2
ZWQoc2VsZiwgZXZlbnQ6IFF1aWNFdmVudCkgLT4gTm9uZToKLSAgICAgICAgaWYgaXNpbnN0YW5j
ZShldmVudCwgUHJvdG9jb2xOZWdvdGlhdGVkKToKLSAgICAgICAgICAgIGlmIGV2ZW50LmFscG5f
cHJvdG9jb2wuc3RhcnRzd2l0aCgiaDMtIik6Ci0gICAgICAgICAgICAgICAgc2VsZi5faHR0cCA9
IEgzQ29ubmVjdGlvbihzZWxmLl9xdWljKQotICAgICAgICAgICAgZWxpZiBldmVudC5hbHBuX3By
b3RvY29sLnN0YXJ0c3dpdGgoImhxLSIpOgotICAgICAgICAgICAgICAgIHNlbGYuX2h0dHAgPSBI
MENvbm5lY3Rpb24oc2VsZi5fcXVpYykKLSAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBE
YXRhZ3JhbUZyYW1lUmVjZWl2ZWQpOgotICAgICAgICAgICAgaWYgZXZlbnQuZGF0YSA9PSBiInF1
YWNrIjoKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljLnNlbmRfZGF0YWdyYW1fZnJhbWUoYiJx
dWFjay1hY2siKQotCi0gICAgICAgICMgwqBwYXNzIGV2ZW50IHRvIHRoZSBIVFRQIGxheWVyCi0g
ICAgICAgIGlmIHNlbGYuX2h0dHAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3IgaHR0cF9l
dmVudCBpbiBzZWxmLl9odHRwLmhhbmRsZV9ldmVudChldmVudCk6Ci0gICAgICAgICAgICAgICAg
c2VsZi5odHRwX2V2ZW50X3JlY2VpdmVkKGh0dHBfZXZlbnQpCi0KLQotY2xhc3MgU2Vzc2lvblRp
Y2tldFN0b3JlOgotICAgICIiIgotICAgIFNpbXBsZSBpbi1tZW1vcnkgc3RvcmUgZm9yIHNlc3Np
b24gdGlja2V0cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgot
ICAgICAgICBzZWxmLnRpY2tldHM6IERpY3RbYnl0ZXMsIFNlc3Npb25UaWNrZXRdID0ge30KLQot
ICAgIGRlZiBhZGQoc2VsZiwgdGlja2V0OiBTZXNzaW9uVGlja2V0KSAtPiBOb25lOgotICAgICAg
ICBzZWxmLnRpY2tldHNbdGlja2V0LnRpY2tldF0gPSB0aWNrZXQKLQotICAgIGRlZiBwb3Aoc2Vs
ZiwgbGFiZWw6IGJ5dGVzKSAtPiBPcHRpb25hbFtTZXNzaW9uVGlja2V0XToKLSAgICAgICAgcmV0
dXJuIHNlbGYudGlja2V0cy5wb3AobGFiZWwsIE5vbmUpCi0KLQotY2xhc3MgUXVpY0xvZ2dlckN1
c3RvbShRdWljTG9nZ2VyKToKLSAgICAiIiIKLSAgICBDdXN0b20gUVVJQyBsb2dnZXIgd2hpY2gg
d3JpdGVzIG9uZSB0cmFjZSBwZXIgZmlsZS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXRoOiBzdHIpIC0+IE5vbmU6Ci0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHBh
dGgpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUVVJQyBsb2cgb3V0cHV0IGRpcmVj
dG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IiAlIHBhdGgpCi0gICAgICAgIHNlbGYucGF0aCA9IHBh
dGgKLSAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCi0KLSAgICBkZWYgZW5kX3RyYWNlKHNlbGYs
IHRyYWNlOiBRdWljTG9nZ2VyVHJhY2UpIC0+IE5vbmU6Ci0gICAgICAgIHRyYWNlX2RpY3QgPSB0
cmFjZS50b19kaWN0KCkKLSAgICAgICAgdHJhY2VfcGF0aCA9IG9zLnBhdGguam9pbigKLSAgICAg
ICAgICAgIHNlbGYucGF0aCwgdHJhY2VfZGljdFsiY29tbW9uX2ZpZWxkcyJdWyJPRENJRCJdICsg
Ii5xbG9nIgotICAgICAgICApCi0gICAgICAgIHdpdGggb3Blbih0cmFjZV9wYXRoLCAidyIpIGFz
IGxvZ2dlcl9mcDoKLSAgICAgICAgICAgIGpzb24uZHVtcCh7InFsb2dfdmVyc2lvbiI6ICJkcmFm
dC0wMSIsICJ0cmFjZXMiOiBbdHJhY2VfZGljdF19LCBsb2dnZXJfZnApCi0gICAgICAgIHNlbGYu
X3RyYWNlcy5yZW1vdmUodHJhY2UpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAg
ICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iUVVJQyBzZXJ2
ZXIiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICJhcHAiLAotICAgICAgICB0
eXBlPXN0ciwKLSAgICAgICAgbmFyZ3M9Ij8iLAotICAgICAgICBkZWZhdWx0PSJkZW1vOmFwcCIs
Ci0gICAgICAgIGhlbHA9InRoZSBBU0dJIGFwcGxpY2F0aW9uIGFzIDxtb2R1bGU+OjxhdHRyaWJ1
dGU+IiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi1jIiwKLSAg
ICAgICAgIi0tY2VydGlmaWNhdGUiLAotICAgICAgICB0eXBlPXN0ciwKLSAgICAgICAgcmVxdWly
ZWQ9VHJ1ZSwKLSAgICAgICAgaGVscD0ibG9hZCB0aGUgVExTIGNlcnRpZmljYXRlIGZyb20gdGhl
IHNwZWNpZmllZCBmaWxlIiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAg
ICAgIi0taG9zdCIsCi0gICAgICAgIHR5cGU9c3RyLAotICAgICAgICBkZWZhdWx0PSI6OiIsCi0g
ICAgICAgIGhlbHA9Imxpc3RlbiBvbiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgKGRlZmF1bHRzIHRv
IDo6KSIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItLXBvcnQi
LAotICAgICAgICB0eXBlPWludCwKLSAgICAgICAgZGVmYXVsdD00NDMzLAotICAgICAgICBoZWxw
PSJsaXN0ZW4gb24gdGhlIHNwZWNpZmllZCBwb3J0IChkZWZhdWx0cyB0byA0NDMzKSIsCi0gICAg
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItayIsCi0gICAgICAgICItLXBy
aXZhdGUta2V5IiwKLSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIHJlcXVpcmVkPVRydWUsCi0g
ICAgICAgIGhlbHA9ImxvYWQgdGhlIFRMUyBwcml2YXRlIGtleSBmcm9tIHRoZSBzcGVjaWZpZWQg
ZmlsZSIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItbCIsCi0g
ICAgICAgICItLXNlY3JldHMtbG9nIiwKLSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIGhlbHA9
ImxvZyBzZWNyZXRzIHRvIGEgZmlsZSwgZm9yIHVzZSB3aXRoIFdpcmVzaGFyayIsCi0gICAgKQot
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItcSIsICItLXF1aWMtbG9nIiwgdHlw
ZT1zdHIsIGhlbHA9ImxvZyBRVUlDIGV2ZW50cyB0byBhIGZpbGUgaW4gUUxPRyBmb3JtYXQiCi0g
ICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItciIsCi0gICAgICAgICIt
LXN0YXRlbGVzcy1yZXRyeSIsCi0gICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAg
IGhlbHA9InNlbmQgYSBzdGF0ZWxlc3MgcmV0cnkgZm9yIG5ldyBjb25uZWN0aW9ucyIsCi0gICAg
KQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItdiIsICItLXZlcmJvc2UiLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJpbmNyZWFzZSBsb2dnaW5nIHZlcmJvc2l0eSIKLSAg
ICApCi0gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWND
b25maWcoCi0gICAgICAgIGZvcm1hdD0iJShhc2N0aW1lKXMgJShsZXZlbG5hbWUpcyAlKG5hbWUp
cyAlKG1lc3NhZ2UpcyIsCi0gICAgICAgIGxldmVsPWxvZ2dpbmcuREVCVUcgaWYgYXJncy52ZXJi
b3NlIGVsc2UgbG9nZ2luZy5JTkZPLAotICAgICkKLQotICAgICMgaW1wb3J0IEFTR0kgYXBwbGlj
YXRpb24KLSAgICBtb2R1bGVfc3RyLCBhdHRyX3N0ciA9IGFyZ3MuYXBwLnNwbGl0KCI6IiwgbWF4
c3BsaXQ9MSkKLSAgICBtb2R1bGUgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZShtb2R1bGVfc3Ry
KQotICAgIGFwcGxpY2F0aW9uID0gZ2V0YXR0cihtb2R1bGUsIGF0dHJfc3RyKQotCi0gICAgIyBj
cmVhdGUgUVVJQyBsb2dnZXIKLSAgICBpZiBhcmdzLnF1aWNfbG9nOgotICAgICAgICBxdWljX2xv
Z2dlciA9IFF1aWNMb2dnZXJDdXN0b20oYXJncy5xdWljX2xvZykKLSAgICBlbHNlOgotICAgICAg
ICBxdWljX2xvZ2dlciA9IE5vbmUKLQotICAgICMgb3BlbiBTU0wgbG9nIGZpbGUKLSAgICBpZiBh
cmdzLnNlY3JldHNfbG9nOgotICAgICAgICBzZWNyZXRzX2xvZ19maWxlID0gb3BlbihhcmdzLnNl
Y3JldHNfbG9nLCAiYSIpCi0gICAgZWxzZToKLSAgICAgICAgc2VjcmV0c19sb2dfZmlsZSA9IE5v
bmUKLQotICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgYWxw
bl9wcm90b2NvbHM9SDNfQUxQTiArIEgwX0FMUE4gKyBbInNpZHVjayJdLAotICAgICAgICBpc19j
bGllbnQ9RmFsc2UsCi0gICAgICAgIG1heF9kYXRhZ3JhbV9mcmFtZV9zaXplPTY1NTM2LAotICAg
ICAgICBxdWljX2xvZ2dlcj1xdWljX2xvZ2dlciwKLSAgICAgICAgc2VjcmV0c19sb2dfZmlsZT1z
ZWNyZXRzX2xvZ19maWxlLAotICAgICkKLQotICAgICMgbG9hZCBTU0wgY2VydGlmaWNhdGUgYW5k
IGtleQotICAgIGNvbmZpZ3VyYXRpb24ubG9hZF9jZXJ0X2NoYWluKGFyZ3MuY2VydGlmaWNhdGUs
IGFyZ3MucHJpdmF0ZV9rZXkpCi0KLSAgICB0aWNrZXRfc3RvcmUgPSBTZXNzaW9uVGlja2V0U3Rv
cmUoKQotCi0gICAgaWYgdXZsb29wIGlzIG5vdCBOb25lOgotICAgICAgICB1dmxvb3AuaW5zdGFs
bCgpCi0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQotICAgIGxvb3AucnVuX3Vu
dGlsX2NvbXBsZXRlKAotICAgICAgICBzZXJ2ZSgKLSAgICAgICAgICAgIGFyZ3MuaG9zdCwKLSAg
ICAgICAgICAgIGFyZ3MucG9ydCwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJh
dGlvbiwKLSAgICAgICAgICAgIGNyZWF0ZV9wcm90b2NvbD1IdHRwU2VydmVyUHJvdG9jb2wsCi0g
ICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9mZXRjaGVyPXRpY2tldF9zdG9yZS5wb3AsCi0gICAg
ICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXRpY2tldF9zdG9yZS5hZGQsCi0gICAgICAg
ICAgICBzdGF0ZWxlc3NfcmV0cnk9YXJncy5zdGF0ZWxlc3NfcmV0cnksCi0gICAgICAgICkKLSAg
ICApCi0gICAgdHJ5OgotICAgICAgICBsb29wLnJ1bl9mb3JldmVyKCkKLSAgICBleGNlcHQgS2V5
Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9l
eGFtcGxlcy9odHRweF9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaHR0cHhfY2xp
ZW50LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDFlMzg0ZTM1NGIyMjUyNDNk
NGQ2MGI3NTk4NTVkNTAyYzI5OTllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odHRweF9jbGllbnQucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMTMgKzAsMCBAQAotaW1wb3J0IGFyZ3BhcnNlCi1pbXBvcnQgYXN5bmNp
bwotaW1wb3J0IGpzb24KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcGlja2xlCi1pbXBvcnQgc3lz
Ci1pbXBvcnQgdGltZQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKLWZyb20gdHlwaW5n
IGltcG9ydCBEZXF1ZSwgRGljdCwgY2FzdAotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBh
cnNlCi0KLWZyb20gaHR0cHggaW1wb3J0IEFzeW5jQ2xpZW50Ci1mcm9tIGh0dHB4LmNvbmZpZyBp
bXBvcnQgVGltZW91dAotZnJvbSBodHRweC5kaXNwYXRjaC5iYXNlIGltcG9ydCBBc3luY0Rpc3Bh
dGNoZXIKLWZyb20gaHR0cHgubW9kZWxzIGltcG9ydCBSZXF1ZXN0LCBSZXNwb25zZQotCi1mcm9t
IGFpb3F1aWMuYXN5bmNpby5jbGllbnQgaW1wb3J0IGNvbm5lY3QKLWZyb20gYWlvcXVpYy5hc3lu
Y2lvLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3RvY29sCi1mcm9tIGFpb3F1aWMu
aDMuY29ubmVjdGlvbiBpbXBvcnQgSDNfQUxQTiwgSDNDb25uZWN0aW9uCi1mcm9tIGFpb3F1aWMu
aDMuZXZlbnRzIGltcG9ydCBEYXRhUmVjZWl2ZWQsIEgzRXZlbnQsIEhlYWRlcnNSZWNlaXZlZAot
ZnJvbSBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZpZ3VyYXRpb24K
LWZyb20gYWlvcXVpYy5xdWljLmV2ZW50cyBpbXBvcnQgUXVpY0V2ZW50Ci1mcm9tIGFpb3F1aWMu
cXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dnZXIKLQotbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dn
ZXIoImNsaWVudCIpCi0KLQotY2xhc3MgSDNEaXNwYXRjaGVyKFF1aWNDb25uZWN0aW9uUHJvdG9j
b2wsIEFzeW5jRGlzcGF0Y2hlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6Ci0gICAgICAgIHN1cGVyKCkuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQotCi0gICAg
ICAgIHNlbGYuX2h0dHAgPSBIM0Nvbm5lY3Rpb24oc2VsZi5fcXVpYykKLSAgICAgICAgc2VsZi5f
cmVxdWVzdF9ldmVudHM6IERpY3RbaW50LCBEZXF1ZVtIM0V2ZW50XV0gPSB7fQotICAgICAgICBz
ZWxmLl9yZXF1ZXN0X3dhaXRlcjogRGljdFtpbnQsIGFzeW5jaW8uRnV0dXJlW0RlcXVlW0gzRXZl
bnRdXV0gPSB7fQotCi0gICAgYXN5bmMgZGVmIHNlbmQoc2VsZiwgcmVxdWVzdDogUmVxdWVzdCwg
dGltZW91dDogVGltZW91dCA9IE5vbmUpIC0+IFJlc3BvbnNlOgotICAgICAgICBzdHJlYW1faWQg
PSBzZWxmLl9xdWljLmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotCi0gICAgICAgICMg
cHJlcGFyZSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2h0dHAuc2VuZF9oZWFkZXJzKAotICAgICAg
ICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAg
ICAgICAgICAgIChiIjptZXRob2QiLCByZXF1ZXN0Lm1ldGhvZC5lbmNvZGUoKSksCi0gICAgICAg
ICAgICAgICAgKGIiOnNjaGVtZSIsIHJlcXVlc3QudXJsLnNjaGVtZS5lbmNvZGUoKSksCi0gICAg
ICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIHN0cihyZXF1ZXN0LnVybC5hdXRob3JpdHkpLmVu
Y29kZSgpKSwKLSAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIHJlcXVlc3QudXJsLmZ1bGxfcGF0
aC5lbmNvZGUoKSksCi0gICAgICAgICAgICBdCi0gICAgICAgICAgICArIFsKLSAgICAgICAgICAg
ICAgICAoay5lbmNvZGUoKSwgdi5lbmNvZGUoKSkKLSAgICAgICAgICAgICAgICBmb3IgKGssIHYp
IGluIHJlcXVlc3QuaGVhZGVycy5pdGVtcygpCi0gICAgICAgICAgICAgICAgaWYgayBub3QgaW4g
KCJjb25uZWN0aW9uIiwgImhvc3QiKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLl9odHRwLnNlbmRfZGF0YShzdHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPXJlcXVlc3Qu
cmVhZCgpLCBlbmRfc3RyZWFtPVRydWUpCi0KLSAgICAgICAgIyB0cmFuc21pdCByZXF1ZXN0Ci0g
ICAgICAgIHdhaXRlciA9IHNlbGYuX2xvb3AuY3JlYXRlX2Z1dHVyZSgpCi0gICAgICAgIHNlbGYu
X3JlcXVlc3RfZXZlbnRzW3N0cmVhbV9pZF0gPSBkZXF1ZSgpCi0gICAgICAgIHNlbGYuX3JlcXVl
c3Rfd2FpdGVyW3N0cmVhbV9pZF0gPSB3YWl0ZXIKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0K
LSAgICAgICAgIyBwcm9jZXNzIHJlc3BvbnNlCi0gICAgICAgIGV2ZW50czogRGVxdWVbSDNFdmVu
dF0gPSBhd2FpdCBhc3luY2lvLnNoaWVsZCh3YWl0ZXIpCi0gICAgICAgIGNvbnRlbnQgPSBiIiIK
LSAgICAgICAgaGVhZGVycyA9IFtdCi0gICAgICAgIHN0YXR1c19jb2RlID0gTm9uZQotICAgICAg
ICBmb3IgZXZlbnQgaW4gZXZlbnRzOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwg
SGVhZGVyc1JlY2VpdmVkKToKLSAgICAgICAgICAgICAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiBl
dmVudC5oZWFkZXJzOgotICAgICAgICAgICAgICAgICAgICBpZiBoZWFkZXIgPT0gYiI6c3RhdHVz
IjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19jb2RlID0gaW50KHZhbHVlLmRlY29k
ZSgpKQotICAgICAgICAgICAgICAgICAgICBlbGlmIGhlYWRlclswOjFdICE9IGIiOiI6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoaGVhZGVyLmRlY29kZSgpLCB2YWx1
ZS5kZWNvZGUoKSkpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIERhdGFSZWNl
aXZlZCk6Ci0gICAgICAgICAgICAgICAgY29udGVudCArPSBldmVudC5kYXRhCi0KLSAgICAgICAg
cmV0dXJuIFJlc3BvbnNlKAotICAgICAgICAgICAgc3RhdHVzX2NvZGU9c3RhdHVzX2NvZGUsCi0g
ICAgICAgICAgICBodHRwX3ZlcnNpb249IkhUVFAvMyIsCi0gICAgICAgICAgICBoZWFkZXJzPWhl
YWRlcnMsCi0gICAgICAgICAgICBjb250ZW50PWNvbnRlbnQsCi0gICAgICAgICAgICByZXF1ZXN0
PXJlcXVlc3QsCi0gICAgICAgICkKLQotICAgIGRlZiBodHRwX2V2ZW50X3JlY2VpdmVkKHNlbGYs
IGV2ZW50OiBIM0V2ZW50KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShldmVudCwgKEhlYWRlcnNS
ZWNlaXZlZCwgRGF0YVJlY2VpdmVkKSk6Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBldmVudC5z
dHJlYW1faWQKLSAgICAgICAgICAgIGlmIHN0cmVhbV9pZCBpbiBzZWxmLl9yZXF1ZXN0X2V2ZW50
czoKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0X2V2ZW50c1tldmVudC5zdHJlYW1faWRd
LmFwcGVuZChldmVudCkKLSAgICAgICAgICAgICAgICBpZiBldmVudC5zdHJlYW1fZW5kZWQ6Ci0g
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3Rfd2FpdGVyID0gc2VsZi5fcmVxdWVzdF93YWl0ZXIu
cG9wKHN0cmVhbV9pZCkKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF93YWl0ZXIuc2V0X3Jl
c3VsdChzZWxmLl9yZXF1ZXN0X2V2ZW50cy5wb3Aoc3RyZWFtX2lkKSkKLQotICAgIGRlZiBxdWlj
X2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBRdWljRXZlbnQpOgotICAgICAgICAjIMKgcGFz
cyBldmVudCB0byB0aGUgSFRUUCBsYXllcgotICAgICAgICBpZiBzZWxmLl9odHRwIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgZm9yIGh0dHBfZXZlbnQgaW4gc2VsZi5faHR0cC5oYW5kbGVfZXZl
bnQoZXZlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuaHR0cF9ldmVudF9yZWNlaXZlZChodHRw
X2V2ZW50KQotCi0KLWRlZiBzYXZlX3Nlc3Npb25fdGlja2V0KHRpY2tldCk6Ci0gICAgIiIiCi0g
ICAgQ2FsbGJhY2sgd2hpY2ggaXMgaW52b2tlZCBieSB0aGUgVExTIGVuZ2luZSB3aGVuIGEgbmV3
IHNlc3Npb24gdGlja2V0Ci0gICAgaXMgcmVjZWl2ZWQuCi0gICAgIiIiCi0gICAgbG9nZ2VyLmlu
Zm8oIk5ldyBzZXNzaW9uIHRpY2tldCByZWNlaXZlZCIpCi0gICAgaWYgYXJncy5zZXNzaW9uX3Rp
Y2tldDoKLSAgICAgICAgd2l0aCBvcGVuKGFyZ3Muc2Vzc2lvbl90aWNrZXQsICJ3YiIpIGFzIGZw
OgotICAgICAgICAgICAgcGlja2xlLmR1bXAodGlja2V0LCBmcCkKLQotCi1hc3luYyBkZWYgcnVu
KGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uLCB1cmw6IHN0ciwgZGF0YTogc3RyKSAt
PiBOb25lOgotICAgICMgcGFyc2UgVVJMCi0gICAgcGFyc2VkID0gdXJscGFyc2UodXJsKQotICAg
IGFzc2VydCBwYXJzZWQuc2NoZW1lID09ICJodHRwcyIsICJPbmx5IGh0dHBzOi8vIFVSTHMgYXJl
IHN1cHBvcnRlZC4iCi0gICAgaWYgIjoiIGluIHBhcnNlZC5uZXRsb2M6Ci0gICAgICAgIGhvc3Qs
IHBvcnRfc3RyID0gcGFyc2VkLm5ldGxvYy5zcGxpdCgiOiIpCi0gICAgICAgIHBvcnQgPSBpbnQo
cG9ydF9zdHIpCi0gICAgZWxzZToKLSAgICAgICAgaG9zdCA9IHBhcnNlZC5uZXRsb2MKLSAgICAg
ICAgcG9ydCA9IDQ0MwotCi0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBob3N0LAot
ICAgICAgICBwb3J0LAotICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAg
ICAgIGNyZWF0ZV9wcm90b2NvbD1IM0Rpc3BhdGNoZXIsCi0gICAgICAgIHNlc3Npb25fdGlja2V0
X2hhbmRsZXI9c2F2ZV9zZXNzaW9uX3RpY2tldCwKLSAgICApIGFzIGRpc3BhdGNoOgotICAgICAg
ICBjbGllbnQgPSBBc3luY0NsaWVudChkaXNwYXRjaD1jYXN0KEFzeW5jRGlzcGF0Y2hlciwgZGlz
cGF0Y2gpKQotCi0gICAgICAgICMgcGVyZm9ybSByZXF1ZXN0Ci0gICAgICAgIHN0YXJ0ID0gdGlt
ZS50aW1lKCkKLSAgICAgICAgaWYgZGF0YSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlc3Bv
bnNlID0gYXdhaXQgY2xpZW50LnBvc3QoCi0gICAgICAgICAgICAgICAgdXJsLAotICAgICAgICAg
ICAgICAgIGRhdGE9ZGF0YS5lbmNvZGUoKSwKLSAgICAgICAgICAgICAgICBoZWFkZXJzPXsiY29u
dGVudC10eXBlIjogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJ9LAotICAgICAg
ICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBjbGll
bnQuZ2V0KHVybCkKLQotICAgICAgICBlbGFwc2VkID0gdGltZS50aW1lKCkgLSBzdGFydAotCi0g
ICAgICAgICMgcHJpbnQgc3BlZWQKLSAgICAgICAgb2N0ZXRzID0gbGVuKHJlc3BvbnNlLmNvbnRl
bnQpCi0gICAgICAgIGxvZ2dlci5pbmZvKAotICAgICAgICAgICAgIlJlY2VpdmVkICVkIGJ5dGVz
IGluICUuMWYgcyAoJS4zZiBNYnBzKSIKLSAgICAgICAgICAgICUgKG9jdGV0cywgZWxhcHNlZCwg
b2N0ZXRzICogOCAvIGVsYXBzZWQgLyAxMDAwMDAwKQotICAgICAgICApCi0KLSAgICAgICAgIyBw
cmludCByZXNwb25zZQotICAgICAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiByZXNwb25zZS5oZWFk
ZXJzLml0ZW1zKCk6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGhlYWRlciArICI6ICIg
KyB2YWx1ZSArICJcclxuIikKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiXHJcbiIpCi0gICAg
ICAgIHN5cy5zdGRvdXQuYnVmZmVyLndyaXRlKHJlc3BvbnNlLmNvbnRlbnQpCi0gICAgICAgIHN5
cy5zdGRvdXQuYnVmZmVyLmZsdXNoKCkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgot
ICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSJIVFRQLzMg
Y2xpZW50IikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ1cmwiLCB0eXBlPXN0ciwgaGVscD0i
dGhlIFVSTCB0byBxdWVyeSAobXVzdCBiZSBIVFRQUykiKQotICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoCi0gICAgICAgICItZCIsICItLWRhdGEiLCB0eXBlPXN0ciwgaGVscD0ic2VuZCB0aGUgc3Bl
Y2lmaWVkIGRhdGEgaW4gYSBQT1NUIHJlcXVlc3QiCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoCi0gICAgICAgICItcSIsICItLXF1aWMtbG9nIiwgdHlwZT1zdHIsIGhlbHA9ImxvZyBR
VUlDIGV2ZW50cyB0byBhIGZpbGUgaW4gUUxPRyBmb3JtYXQiCi0gICAgKQotICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCi0gICAgICAgICItbCIsCi0gICAgICAgICItLXNlY3JldHMtbG9nIiwKLSAg
ICAgICAgdHlwZT1zdHIsCi0gICAgICAgIGhlbHA9ImxvZyBzZWNyZXRzIHRvIGEgZmlsZSwgZm9y
IHVzZSB3aXRoIFdpcmVzaGFyayIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0g
ICAgICAgICItcyIsCi0gICAgICAgICItLXNlc3Npb24tdGlja2V0IiwKLSAgICAgICAgdHlwZT1z
dHIsCi0gICAgICAgIGhlbHA9InJlYWQgYW5kIHdyaXRlIHNlc3Npb24gdGlja2V0IGZyb20gdGhl
IHNwZWNpZmllZCBmaWxlIiwKLSAgICApCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAg
ICAgIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9ImluY3JlYXNl
IGxvZ2dpbmcgdmVyYm9zaXR5IgotICAgICkKLQotICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJn
cygpCi0KLSAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKAotICAgICAgICBmb3JtYXQ9IiUoYXNjdGlt
ZSlzICUobGV2ZWxuYW1lKXMgJShuYW1lKXMgJShtZXNzYWdlKXMiLAotICAgICAgICBsZXZlbD1s
b2dnaW5nLkRFQlVHIGlmIGFyZ3MudmVyYm9zZSBlbHNlIGxvZ2dpbmcuSU5GTywKLSAgICApCi0K
LSAgICAjIHByZXBhcmUgY29uZmlndXJhdGlvbgotICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29u
ZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSwgYWxwbl9wcm90b2NvbHM9SDNfQUxQTikKLSAgICBp
ZiBhcmdzLnF1aWNfbG9nOgotICAgICAgICBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyID0gUXVp
Y0xvZ2dlcigpCi0gICAgaWYgYXJncy5zZWNyZXRzX2xvZzoKLSAgICAgICAgY29uZmlndXJhdGlv
bi5zZWNyZXRzX2xvZ19maWxlID0gb3BlbihhcmdzLnNlY3JldHNfbG9nLCAiYSIpCi0gICAgaWYg
YXJncy5zZXNzaW9uX3RpY2tldDoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVu
KGFyZ3Muc2Vzc2lvbl90aWNrZXQsICJyYiIpIGFzIGZwOgotICAgICAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb24uc2Vzc2lvbl90aWNrZXQgPSBwaWNrbGUubG9hZChmcCkKLSAgICAgICAgZXhjZXB0
IEZpbGVOb3RGb3VuZEVycm9yOgotICAgICAgICAgICAgcGFzcwotCi0gICAgbG9vcCA9IGFzeW5j
aW8uZ2V0X2V2ZW50X2xvb3AoKQotICAgIHRyeToKLSAgICAgICAgbG9vcC5ydW5fdW50aWxfY29t
cGxldGUoCi0gICAgICAgICAgICBydW4oY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uLCB1cmw9
YXJncy51cmwsIGRhdGE9YXJncy5kYXRhKQotICAgICAgICApCi0gICAgZmluYWxseToKLSAgICAg
ICAgaWYgY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHdpdGggb3BlbihhcmdzLnF1aWNfbG9nLCAidyIpIGFzIGxvZ2dlcl9mcDoKLSAgICAgICAgICAg
ICAgICBqc29uLmR1bXAoY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19kaWN0KCksIGxvZ2dl
cl9mcCwgaW5kZW50PTQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvaW50ZXJv
cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9pbnRlcm9wLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkNmFkMjBiNjZiNGI3NTEzZWNlYTZiYTMzZDM3NGE0OTVlNGU1MmFhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9leGFtcGxlcy9pbnRlcm9wLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTMyICswLDAgQEAKLSMK
LSMgISEhIFdBUk5JTkcgISEhCi0jCi0jIFRoaXMgZXhhbXBsZSB1c2VzIHNvbWUgcHJpdmF0ZSBB
UElzLgotIwotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQganNvbgot
aW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBzc2wKLWltcG9ydCB0aW1lCi1mcm9tIGRhdGFjbGFzc2Vz
IGltcG9ydCBkYXRhY2xhc3MsIGZpZWxkCi1mcm9tIGVudW0gaW1wb3J0IEZsYWcKLWZyb20gdHlw
aW5nIGltcG9ydCBPcHRpb25hbCwgY2FzdAotCi1pbXBvcnQgcmVxdWVzdHMKLWltcG9ydCB1cmxs
aWIzCi1mcm9tIGh0dHAzX2NsaWVudCBpbXBvcnQgSHR0cENsaWVudAotCi1mcm9tIGFpb3F1aWMu
YXN5bmNpbyBpbXBvcnQgY29ubmVjdAotZnJvbSBhaW9xdWljLmgwLmNvbm5lY3Rpb24gaW1wb3J0
IEgwX0FMUE4KLWZyb20gYWlvcXVpYy5oMy5jb25uZWN0aW9uIGltcG9ydCBIM19BTFBOLCBIM0Nv
bm5lY3Rpb24KLWZyb20gYWlvcXVpYy5oMy5ldmVudHMgaW1wb3J0IERhdGFSZWNlaXZlZCwgSGVh
ZGVyc1JlY2VpdmVkLCBQdXNoUHJvbWlzZVJlY2VpdmVkCi1mcm9tIGFpb3F1aWMucXVpYy5jb25m
aWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbgotZnJvbSBhaW9xdWljLnF1aWMubG9n
Z2VyIGltcG9ydCBRdWljTG9nZ2VyCi0KLQotY2xhc3MgUmVzdWx0KEZsYWcpOgotICAgIFYgPSAw
eDAwMDAwMQotICAgIEggPSAweDAwMDAwMgotICAgIEQgPSAweDAwMDAwNAotICAgIEMgPSAweDAw
MDAwOAotICAgIFIgPSAweDAwMDAxMAotICAgIFogPSAweDAwMDAyMAotICAgIFMgPSAweDAwMDA0
MAotICAgIFEgPSAweDAwMDA4MAotCi0gICAgTSA9IDB4MDAwMTAwCi0gICAgQiA9IDB4MDAwMjAw
Ci0gICAgQSA9IDB4MDAwNDAwCi0gICAgVSA9IDB4MDAwODAwCi0gICAgUCA9IDB4MDAxMDAwCi0g
ICAgRSA9IDB4MDAyMDAwCi0gICAgTCA9IDB4MDA0MDAwCi0gICAgVCA9IDB4MDA4MDAwCi0KLSAg
ICB0aHJlZSA9IDB4MDEwMDAwCi0gICAgZCA9IDB4MDIwMDAwCi0gICAgcCA9IDB4MDQwMDAwCi0K
LSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgZmxhZ3MgPSBzb3J0ZWQoCi0gICAgICAg
ICAgICBtYXAoCi0gICAgICAgICAgICAgICAgbGFtYmRhIHg6IGdldGF0dHIoUmVzdWx0LCB4KSwK
LSAgICAgICAgICAgICAgICBmaWx0ZXIobGFtYmRhIHg6IG5vdCB4LnN0YXJ0c3dpdGgoIl8iKSwg
ZGlyKFJlc3VsdCkpLAotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGtleT1sYW1iZGEgeDog
eC52YWx1ZSwKLSAgICAgICAgKQotICAgICAgICByZXN1bHRfc3RyID0gIiIKLSAgICAgICAgZm9y
IGZsYWcgaW4gZmxhZ3M6Ci0gICAgICAgICAgICBpZiBzZWxmICYgZmxhZzoKLSAgICAgICAgICAg
ICAgICByZXN1bHRfc3RyICs9IGZsYWcubmFtZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZXN1bHRfc3RyICs9ICItIgotICAgICAgICByZXR1cm4gcmVzdWx0X3N0cgotCi0K
LUBkYXRhY2xhc3MKLWNsYXNzIFNlcnZlcjoKLSAgICBuYW1lOiBzdHIKLSAgICBob3N0OiBzdHIK
LSAgICBwb3J0OiBpbnQgPSA0NDMzCi0gICAgaHR0cDM6IGJvb2wgPSBUcnVlCi0gICAgcmV0cnlf
cG9ydDogT3B0aW9uYWxbaW50XSA9IDQ0MzQKLSAgICBwYXRoOiBzdHIgPSAiLyIKLSAgICBwdXNo
X3BhdGg6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAgcmVzdWx0OiBSZXN1bHQgPSBmaWVsZChk
ZWZhdWx0X2ZhY3Rvcnk9bGFtYmRhOiBSZXN1bHQoMCkpCi0gICAgc2Vzc2lvbl9yZXN1bXB0aW9u
X3BvcnQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgc3RydWN0dXJlZF9sb2dnaW5nOiBib29s
ID0gRmFsc2UKLSAgICB0aHJvdWdocHV0X2ZpbGVfc3VmZml4OiBzdHIgPSAiIgotICAgIHZlcmlm
eV9tb2RlOiBPcHRpb25hbFtpbnRdID0gTm9uZQotCi0KLVNFUlZFUlMgPSBbCi0gICAgU2VydmVy
KCJha2FtYWlxdWljIiwgImlldGYuYWthcXVpYy5jb20iLCBwb3J0PTQ0MywgdmVyaWZ5X21vZGU9
c3NsLkNFUlRfTk9ORSksCi0gICAgU2VydmVyKAotICAgICAgICAiYWlvcXVpYyIsICJxdWljLmFp
b3J0Yy5vcmciLCBwb3J0PTQ0MywgcHVzaF9wYXRoPSIvIiwgc3RydWN0dXJlZF9sb2dnaW5nPVRy
dWUKLSAgICApLAotICAgIFNlcnZlcigiYXRzIiwgInF1aWMub2dyZS5jb20iKSwKLSAgICBTZXJ2
ZXIoImY1IiwgImY1cXVpYy5jb20iLCByZXRyeV9wb3J0PTQ0MzMpLAotICAgIFNlcnZlcigiaGFz
a2VsbCIsICJtZXcub3JnIiwgcmV0cnlfcG9ydD00NDMzKSwKLSAgICBTZXJ2ZXIoImdxdWljIiwg
InF1aWMucm9ja3MiLCByZXRyeV9wb3J0PU5vbmUpLAotICAgIFNlcnZlcigibHNxdWljIiwgImh0
dHAzLXRlc3QubGl0ZXNwZWVkdGVjaC5jb20iLCBwdXNoX3BhdGg9Ii8yMDA/cHVzaD0vMTAwIiks
Ci0gICAgU2VydmVyKAotICAgICAgICAibXNxdWljIiwKLSAgICAgICAgInF1aWMud2VzdHVzLmNs
b3VkYXBwLmF6dXJlLmNvbSIsCi0gICAgICAgIHBvcnQ9NDQzMywKLSAgICAgICAgc2Vzc2lvbl9y
ZXN1bXB0aW9uX3BvcnQ9NDQzMywKLSAgICAgICAgc3RydWN0dXJlZF9sb2dnaW5nPVRydWUsCi0g
ICAgICAgIHRocm91Z2hwdXRfZmlsZV9zdWZmaXg9Ii50eHQiLAotICAgICAgICB2ZXJpZnlfbW9k
ZT1zc2wuQ0VSVF9OT05FLAotICAgICksCi0gICAgU2VydmVyKAotICAgICAgICAibXZmc3QiLCAi
ZmIubXZmc3QubmV0IiwgcG9ydD00NDMsIHB1c2hfcGF0aD0iL3B1c2giLCBzdHJ1Y3R1cmVkX2xv
Z2dpbmc9VHJ1ZQotICAgICksCi0gICAgU2VydmVyKCJuZ3RjcDIiLCAibmdodHRwMi5vcmciLCBw
dXNoX3BhdGg9Ii8/cHVzaD0vMTAwIiksCi0gICAgU2VydmVyKCJuZ3hfcXVpYyIsICJjbG91ZGZs
YXJlLXF1aWMuY29tIiwgcG9ydD00NDMsIHJldHJ5X3BvcnQ9NDQzKSwKLSAgICBTZXJ2ZXIoInBh
bmRvcmEiLCAicGFuZG9yYS5jbS5pbi50dW0uZGUiLCB2ZXJpZnlfbW9kZT1zc2wuQ0VSVF9OT05F
KSwKLSAgICBTZXJ2ZXIoInBpY29xdWljIiwgInRlc3QucHJpdmF0ZW9jdG9wdXMuY29tIiwgc3Ry
dWN0dXJlZF9sb2dnaW5nPVRydWUpLAotICAgIFNlcnZlcigicXVhbnQiLCAicXVhbnQuZWdnZXJ0
Lm9yZyIsIGh0dHAzPUZhbHNlKSwKLSAgICBTZXJ2ZXIoInF1aWMtZ28iLCAicXVpYy5zZWVtYW5u
LmlvIiwgcG9ydD00NDMsIHJldHJ5X3BvcnQ9NDQzKSwKLSAgICBTZXJ2ZXIoInF1aWNoZSIsICJx
dWljLnRlY2giLCBwb3J0PTg0NDMsIHJldHJ5X3BvcnQ9ODQ0NCksCi0gICAgU2VydmVyKCJxdWlj
bHkiLCAicXVpYy5leGFtcDFlLm5ldCIpLAotICAgIFNlcnZlcigicXVpbm4iLCAicmFsaXRoLmNv
bSIpLAotXQotCi0KLWFzeW5jIGRlZiB0ZXN0X3ZlcnNpb25fbmVnb3RpYXRpb24oc2VydmVyOiBT
ZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uKToKLSAgICAjIGZvcmNlIHZl
cnNpb24gbmVnb3RpYXRpb24KLSAgICBjb25maWd1cmF0aW9uLnN1cHBvcnRlZF92ZXJzaW9ucy5p
bnNlcnQoMCwgMHgxQTJBM0E0QSkKLQotICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAg
c2VydmVyLmhvc3QsIHNlcnZlci5wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAg
ICApIGFzIHByb3RvY29sOgotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAg
ICAjIGNoZWNrIGxvZwotICAgICAgICBmb3Igc3RhbXAsIGNhdGVnb3J5LCBldmVudCwgZGF0YSBp
biBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2RpY3QoKVsKLSAgICAgICAgICAgICJ0cmFj
ZXMiCi0gICAgICAgIF1bMF1bImV2ZW50cyJdOgotICAgICAgICAgICAgaWYgKAotICAgICAgICAg
ICAgICAgIGNhdGVnb3J5ID09ICJ0cmFuc3BvcnQiCi0gICAgICAgICAgICAgICAgYW5kIGV2ZW50
ID09ICJwYWNrZXRfcmVjZWl2ZWQiCi0gICAgICAgICAgICAgICAgYW5kIGRhdGFbInBhY2tldF90
eXBlIl0gPT0gInZlcnNpb25fbmVnb3RpYXRpb24iCi0gICAgICAgICAgICApOgotICAgICAgICAg
ICAgICAgIHNlcnZlci5yZXN1bHQgfD0gUmVzdWx0LlYKLQotCi1hc3luYyBkZWYgdGVzdF9oYW5k
c2hha2VfYW5kX2Nsb3NlKHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBRdWljQ29uZmln
dXJhdGlvbik6Ci0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICBzZXJ2ZXIuaG9zdCwg
c2VydmVyLnBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbgotICAgICkgYXMgcHJvdG9j
b2w6Ci0gICAgICAgIGF3YWl0IHByb3RvY29sLnBpbmcoKQotICAgICAgICBzZXJ2ZXIucmVzdWx0
IHw9IFJlc3VsdC5ICi0gICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuQwotCi0KLWFzeW5jIGRl
ZiB0ZXN0X3N0YXRlbGVzc19yZXRyeShzZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVp
Y0NvbmZpZ3VyYXRpb24pOgotICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgc2VydmVy
Lmhvc3QsIHNlcnZlci5yZXRyeV9wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAg
ICApIGFzIHByb3RvY29sOgotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAg
ICAjIGNoZWNrIGxvZwotICAgICAgICBmb3Igc3RhbXAsIGNhdGVnb3J5LCBldmVudCwgZGF0YSBp
biBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2RpY3QoKVsKLSAgICAgICAgICAgICJ0cmFj
ZXMiCi0gICAgICAgIF1bMF1bImV2ZW50cyJdOgotICAgICAgICAgICAgaWYgKAotICAgICAgICAg
ICAgICAgIGNhdGVnb3J5ID09ICJ0cmFuc3BvcnQiCi0gICAgICAgICAgICAgICAgYW5kIGV2ZW50
ID09ICJwYWNrZXRfcmVjZWl2ZWQiCi0gICAgICAgICAgICAgICAgYW5kIGRhdGFbInBhY2tldF90
eXBlIl0gPT0gInJldHJ5IgotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBzZXJ2ZXIu
cmVzdWx0IHw9IFJlc3VsdC5TCi0KLQotYXN5bmMgZGVmIHRlc3RfcXVhbnR1bV9yZWFkaW5lc3Mo
c2VydmVyOiBTZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uKToKLSAgICBj
b25maWd1cmF0aW9uLnF1YW50dW1fcmVhZGluZXNzX3Rlc3QgPSBUcnVlCi0gICAgYXN5bmMgd2l0
aCBjb25uZWN0KAotICAgICAgICBzZXJ2ZXIuaG9zdCwgc2VydmVyLnBvcnQsIGNvbmZpZ3VyYXRp
b249Y29uZmlndXJhdGlvbgotICAgICkgYXMgcHJvdG9jb2w6Ci0gICAgICAgIGF3YWl0IHByb3Rv
Y29sLnBpbmcoKQotICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC5RCi0KLQotYXN5bmMg
ZGVmIHRlc3RfaHR0cF8wKHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBRdWljQ29uZmln
dXJhdGlvbik6Ci0gICAgaWYgc2VydmVyLnBhdGggaXMgTm9uZToKLSAgICAgICAgcmV0dXJuCi0K
LSAgICBjb25maWd1cmF0aW9uLmFscG5fcHJvdG9jb2xzID0gSDBfQUxQTgotICAgIGFzeW5jIHdp
dGggY29ubmVjdCgKLSAgICAgICAgc2VydmVyLmhvc3QsCi0gICAgICAgIHNlcnZlci5wb3J0LAot
ICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgIGNyZWF0ZV9wcm90
b2NvbD1IdHRwQ2xpZW50LAotICAgICkgYXMgcHJvdG9jb2w6Ci0gICAgICAgIHByb3RvY29sID0g
Y2FzdChIdHRwQ2xpZW50LCBwcm90b2NvbCkKLQotICAgICAgICAjIHBlcmZvcm0gSFRUUCByZXF1
ZXN0Ci0gICAgICAgIGV2ZW50cyA9IGF3YWl0IHByb3RvY29sLmdldCgKLSAgICAgICAgICAgICJo
dHRwczovL3t9Ont9e30iLmZvcm1hdChzZXJ2ZXIuaG9zdCwgc2VydmVyLnBvcnQsIHNlcnZlci5w
YXRoKQotICAgICAgICApCi0gICAgICAgIGlmIGV2ZW50cyBhbmQgaXNpbnN0YW5jZShldmVudHNb
MF0sIEhlYWRlcnNSZWNlaXZlZCk6Ci0gICAgICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3Vs
dC5ECi0KLQotYXN5bmMgZGVmIHRlc3RfaHR0cF8zKHNlcnZlcjogU2VydmVyLCBjb25maWd1cmF0
aW9uOiBRdWljQ29uZmlndXJhdGlvbik6Ci0gICAgaWYgc2VydmVyLnBhdGggaXMgTm9uZToKLSAg
ICAgICAgcmV0dXJuCi0KLSAgICBjb25maWd1cmF0aW9uLmFscG5fcHJvdG9jb2xzID0gSDNfQUxQ
TgotICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgc2VydmVyLmhvc3QsCi0gICAgICAg
IHNlcnZlci5wb3J0LAotICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAg
ICAgIGNyZWF0ZV9wcm90b2NvbD1IdHRwQ2xpZW50LAotICAgICkgYXMgcHJvdG9jb2w6Ci0gICAg
ICAgIHByb3RvY29sID0gY2FzdChIdHRwQ2xpZW50LCBwcm90b2NvbCkKLQotICAgICAgICAjIHBl
cmZvcm0gSFRUUCByZXF1ZXN0Ci0gICAgICAgIGV2ZW50cyA9IGF3YWl0IHByb3RvY29sLmdldCgK
LSAgICAgICAgICAgICJodHRwczovL3t9Ont9e30iLmZvcm1hdChzZXJ2ZXIuaG9zdCwgc2VydmVy
LnBvcnQsIHNlcnZlci5wYXRoKQotICAgICAgICApCi0gICAgICAgIGlmIGV2ZW50cyBhbmQgaXNp
bnN0YW5jZShldmVudHNbMF0sIEhlYWRlcnNSZWNlaXZlZCk6Ci0gICAgICAgICAgICBzZXJ2ZXIu
cmVzdWx0IHw9IFJlc3VsdC5ECi0gICAgICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC50
aHJlZQotCi0gICAgICAgICMgcGVyZm9ybSBtb3JlIEhUVFAgcmVxdWVzdHMgdG8gdXNlIFFQQUNL
IGR5bmFtaWMgdGFibGVzCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDIpOgotICAgICAgICAgICAg
ZXZlbnRzID0gYXdhaXQgcHJvdG9jb2wuZ2V0KAotICAgICAgICAgICAgICAgICJodHRwczovL3t9
Ont9e30iLmZvcm1hdChzZXJ2ZXIuaG9zdCwgc2VydmVyLnBvcnQsIHNlcnZlci5wYXRoKQotICAg
ICAgICAgICAgKQotICAgICAgICBpZiBldmVudHMgYW5kIGlzaW5zdGFuY2UoZXZlbnRzWzBdLCBI
ZWFkZXJzUmVjZWl2ZWQpOgotICAgICAgICAgICAgaHR0cCA9IGNhc3QoSDNDb25uZWN0aW9uLCBw
cm90b2NvbC5faHR0cCkKLSAgICAgICAgICAgIHByb3RvY29sLl9xdWljLl9sb2dnZXIuaW5mbygK
LSAgICAgICAgICAgICAgICAiUVBBQ0sgZGVjb2RlciBieXRlcyBSWCAlZCBUWCAlZCIsCi0gICAg
ICAgICAgICAgICAgaHR0cC5fZGVjb2Rlcl9ieXRlc19yZWNlaXZlZCwKLSAgICAgICAgICAgICAg
ICBodHRwLl9kZWNvZGVyX2J5dGVzX3NlbnQsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBw
cm90b2NvbC5fcXVpYy5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgIlFQQUNLIGVuY29k
ZXIgYnl0ZXMgUlggJWQgVFggJWQiLAotICAgICAgICAgICAgICAgIGh0dHAuX2VuY29kZXJfYnl0
ZXNfcmVjZWl2ZWQsCi0gICAgICAgICAgICAgICAgaHR0cC5fZW5jb2Rlcl9ieXRlc19zZW50LAot
ICAgICAgICAgICAgKQotICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIGh0dHAuX2Rl
Y29kZXJfYnl0ZXNfcmVjZWl2ZWQKLSAgICAgICAgICAgICAgICBhbmQgaHR0cC5fZGVjb2Rlcl9i
eXRlc19zZW50Ci0gICAgICAgICAgICAgICAgYW5kIGh0dHAuX2VuY29kZXJfYnl0ZXNfcmVjZWl2
ZWQKLSAgICAgICAgICAgICAgICBhbmQgaHR0cC5fZW5jb2Rlcl9ieXRlc19zZW50Ci0gICAgICAg
ICAgICApOgotICAgICAgICAgICAgICAgIHNlcnZlci5yZXN1bHQgfD0gUmVzdWx0LmQKLQotICAg
ICAgICAjIGNoZWNrIHB1c2ggc3VwcG9ydAotICAgICAgICBpZiBzZXJ2ZXIucHVzaF9wYXRoIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgcHJvdG9jb2wucHVzaGVzLmNsZWFyKCkKLSAgICAgICAg
ICAgIGF3YWl0IHByb3RvY29sLmdldCgKLSAgICAgICAgICAgICAgICAiaHR0cHM6Ly97fTp7fXt9
Ii5mb3JtYXQoc2VydmVyLmhvc3QsIHNlcnZlci5wb3J0LCBzZXJ2ZXIucHVzaF9wYXRoKQotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwLjUpCi0gICAgICAg
ICAgICBmb3IgcHVzaF9pZCwgZXZlbnRzIGluIHByb3RvY29sLnB1c2hlcy5pdGVtcygpOgotICAg
ICAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICAgICAgbGVuKGV2ZW50cykgPj0gMwot
ICAgICAgICAgICAgICAgICAgICBhbmQgaXNpbnN0YW5jZShldmVudHNbMF0sIFB1c2hQcm9taXNl
UmVjZWl2ZWQpCi0gICAgICAgICAgICAgICAgICAgIGFuZCBpc2luc3RhbmNlKGV2ZW50c1sxXSwg
SGVhZGVyc1JlY2VpdmVkKQotICAgICAgICAgICAgICAgICAgICBhbmQgaXNpbnN0YW5jZShldmVu
dHNbMl0sIERhdGFSZWNlaXZlZCkKLSAgICAgICAgICAgICAgICApOgotICAgICAgICAgICAgICAg
ICAgICBwcm90b2NvbC5fcXVpYy5fbG9nZ2VyLmluZm8oCi0gICAgICAgICAgICAgICAgICAgICAg
ICAiUHVzaCBwcm9taXNlICVkIGZvciAlcyByZWNlaXZlZCAoc3RhdHVzICVzKSIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgZGljdChl
dmVudHNbMF0uaGVhZGVycylbYiI6cGF0aCJdLmRlY29kZSgiYXNjaWkiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGludChkaWN0KGV2ZW50c1sxXS5oZWFkZXJzKVtiIjpzdGF0dXMiXSksCi0g
ICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVzdWx0
IHw9IFJlc3VsdC5wCi0KLQotYXN5bmMgZGVmIHRlc3Rfc2Vzc2lvbl9yZXN1bXB0aW9uKHNlcnZl
cjogU2VydmVyLCBjb25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlvbik6Ci0gICAgcG9ydCA9
IHNlcnZlci5zZXNzaW9uX3Jlc3VtcHRpb25fcG9ydCBvciBzZXJ2ZXIucG9ydAotICAgIHNhdmVk
X3RpY2tldCA9IE5vbmUKLQotICAgIGRlZiBzZXNzaW9uX3RpY2tldF9oYW5kbGVyKHRpY2tldCk6
Ci0gICAgICAgIG5vbmxvY2FsIHNhdmVkX3RpY2tldAotICAgICAgICBzYXZlZF90aWNrZXQgPSB0
aWNrZXQKLQotICAgICMgY29ubmVjdCBhIGZpcnN0IHRpbWUsIHJlY2VpdmUgYSB0aWNrZXQKLSAg
ICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0LAotICAgICAgICBwb3J0
LAotICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0gICAgICAgIHNlc3Npb25f
dGlja2V0X2hhbmRsZXI9c2Vzc2lvbl90aWNrZXRfaGFuZGxlciwKLSAgICApIGFzIHByb3RvY29s
OgotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAgICAjIHNvbWUgc2VydmVy
cyBkb24ndCBzZW5kIHRoZSB0aWNrZXQgaW1tZWRpYXRlbHkKLSAgICAgICAgYXdhaXQgYXN5bmNp
by5zbGVlcCgxKQotCi0gICAgIyBjb25uZWN0IGEgc2Vjb25kIHRpbWUsIHdpdGggdGhlIHRpY2tl
dAotICAgIGlmIHNhdmVkX3RpY2tldCBpcyBub3QgTm9uZToKLSAgICAgICAgY29uZmlndXJhdGlv
bi5zZXNzaW9uX3RpY2tldCA9IHNhdmVkX3RpY2tldAotICAgICAgICBhc3luYyB3aXRoIGNvbm5l
Y3Qoc2VydmVyLmhvc3QsIHBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbikgYXMgcHJv
dG9jb2w6Ci0gICAgICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAgICAgICAg
IyBjaGVjayBzZXNzaW9uIHdhcyByZXN1bWVkCi0gICAgICAgICAgICBpZiBwcm90b2NvbC5fcXVp
Yy50bHMuc2Vzc2lvbl9yZXN1bWVkOgotICAgICAgICAgICAgICAgIHNlcnZlci5yZXN1bHQgfD0g
UmVzdWx0LlIKLQotICAgICAgICAgICAgIyBjaGVjayBlYXJseSBkYXRhIHdhcyBhY2NlcHRlZAot
ICAgICAgICAgICAgaWYgcHJvdG9jb2wuX3F1aWMudGxzLmVhcmx5X2RhdGFfYWNjZXB0ZWQ6Ci0g
ICAgICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuWgotCi0KLWFzeW5jIGRlZiB0
ZXN0X2tleV91cGRhdGUoc2VydmVyOiBTZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1
cmF0aW9uKToKLSAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0LCBz
ZXJ2ZXIucG9ydCwgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgKSBhcyBwcm90b2Nv
bDoKLSAgICAgICAgIyBjYXVzZSBzb21lIHRyYWZmaWMKLSAgICAgICAgYXdhaXQgcHJvdG9jb2wu
cGluZygpCi0KLSAgICAgICAgIyByZXF1ZXN0IGtleSB1cGRhdGUKLSAgICAgICAgcHJvdG9jb2wu
cmVxdWVzdF9rZXlfdXBkYXRlKCkKLQotICAgICAgICAjIGNhdXNlIG1vcmUgdHJhZmZpYwotICAg
ICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAgICBzZXJ2ZXIucmVzdWx0IHw9IFJl
c3VsdC5VCi0KLQotYXN5bmMgZGVmIHRlc3RfbWlncmF0aW9uKHNlcnZlcjogU2VydmVyLCBjb25m
aWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlvbik6Ci0gICAgYXN5bmMgd2l0aCBjb25uZWN0KAot
ICAgICAgICBzZXJ2ZXIuaG9zdCwgc2VydmVyLnBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJh
dGlvbgotICAgICkgYXMgcHJvdG9jb2w6Ci0gICAgICAgICMgY2F1c2Ugc29tZSB0cmFmZmljCi0g
ICAgICAgIGF3YWl0IHByb3RvY29sLnBpbmcoKQotCi0gICAgICAgICMgY2hhbmdlIGNvbm5lY3Rp
b24gSUQgYW5kIHJlcGxhY2UgdHJhbnNwb3J0Ci0gICAgICAgIHByb3RvY29sLmNoYW5nZV9jb25u
ZWN0aW9uX2lkKCkKLSAgICAgICAgcHJvdG9jb2wuX3RyYW5zcG9ydC5jbG9zZSgpCi0gICAgICAg
IGF3YWl0IGxvb3AuY3JlYXRlX2RhdGFncmFtX2VuZHBvaW50KGxhbWJkYTogcHJvdG9jb2wsIGxv
Y2FsX2FkZHI9KCI6OiIsIDApKQotCi0gICAgICAgICMgY2F1c2UgbW9yZSB0cmFmZmljCi0gICAg
ICAgIGF3YWl0IHByb3RvY29sLnBpbmcoKQotCi0gICAgICAgICMgY2hlY2sgbG9nCi0gICAgICAg
IGRjaWRzID0gc2V0KCkKLSAgICAgICAgZm9yIHN0YW1wLCBjYXRlZ29yeSwgZXZlbnQsIGRhdGEg
aW4gY29uZmlndXJhdGlvbi5xdWljX2xvZ2dlci50b19kaWN0KClbCi0gICAgICAgICAgICAidHJh
Y2VzIgotICAgICAgICBdWzBdWyJldmVudHMiXToKLSAgICAgICAgICAgIGlmICgKLSAgICAgICAg
ICAgICAgICBjYXRlZ29yeSA9PSAidHJhbnNwb3J0IgotICAgICAgICAgICAgICAgIGFuZCBldmVu
dCA9PSAicGFja2V0X3JlY2VpdmVkIgotICAgICAgICAgICAgICAgIGFuZCBkYXRhWyJwYWNrZXRf
dHlwZSJdID09ICIxUlRUIgotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBkY2lkcy5h
ZGQoZGF0YVsiaGVhZGVyIl1bImRjaWQiXSkKLSAgICAgICAgaWYgbGVuKGRjaWRzKSA9PSAyOgot
ICAgICAgICAgICAgc2VydmVyLnJlc3VsdCB8PSBSZXN1bHQuTQotCi0KLWFzeW5jIGRlZiB0ZXN0
X3JlYmluZGluZyhzZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRp
b24pOgotICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgc2VydmVyLmhvc3QsIHNlcnZl
ci5wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24KLSAgICApIGFzIHByb3RvY29sOgot
ICAgICAgICAjIGNhdXNlIHNvbWUgdHJhZmZpYwotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5n
KCkKLQotICAgICAgICAjIHJlcGxhY2UgdHJhbnNwb3J0Ci0gICAgICAgIHByb3RvY29sLl90cmFu
c3BvcnQuY2xvc2UoKQotICAgICAgICBhd2FpdCBsb29wLmNyZWF0ZV9kYXRhZ3JhbV9lbmRwb2lu
dChsYW1iZGE6IHByb3RvY29sLCBsb2NhbF9hZGRyPSgiOjoiLCAwKSkKLQotICAgICAgICAjIGNh
dXNlIG1vcmUgdHJhZmZpYwotICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAgICAg
ICBzZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC5CCi0KLQotYXN5bmMgZGVmIHRlc3Rfc3Bpbl9iaXQo
c2VydmVyOiBTZXJ2ZXIsIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uKToKLSAgICBh
c3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAgIHNlcnZlci5ob3N0LCBzZXJ2ZXIucG9ydCwgY29u
ZmlndXJhdGlvbj1jb25maWd1cmF0aW9uCi0gICAgKSBhcyBwcm90b2NvbDoKLSAgICAgICAgZm9y
IGkgaW4gcmFuZ2UoNSk6Ci0gICAgICAgICAgICBhd2FpdCBwcm90b2NvbC5waW5nKCkKLQotICAg
ICAgICAjIGNoZWNrIGxvZwotICAgICAgICBzcGluX2JpdHMgPSBzZXQoKQotICAgICAgICBmb3Ig
c3RhbXAsIGNhdGVnb3J5LCBldmVudCwgZGF0YSBpbiBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2Vy
LnRvX2RpY3QoKVsKLSAgICAgICAgICAgICJ0cmFjZXMiCi0gICAgICAgIF1bMF1bImV2ZW50cyJd
OgotICAgICAgICAgICAgaWYgY2F0ZWdvcnkgPT0gImNvbm5lY3Rpdml0eSIgYW5kIGV2ZW50ID09
ICJzcGluX2JpdF91cGRhdGVkIjoKLSAgICAgICAgICAgICAgICBzcGluX2JpdHMuYWRkKGRhdGFb
InN0YXRlIl0pCi0gICAgICAgIGlmIGxlbihzcGluX2JpdHMpID09IDI6Ci0gICAgICAgICAgICBz
ZXJ2ZXIucmVzdWx0IHw9IFJlc3VsdC5QCi0KLQotYXN5bmMgZGVmIHRlc3RfdGhyb3VnaHB1dChz
ZXJ2ZXI6IFNlcnZlciwgY29uZmlndXJhdGlvbjogUXVpY0NvbmZpZ3VyYXRpb24pOgotICAgIGZh
aWx1cmVzID0gMAotCi0gICAgZm9yIHNpemUgaW4gWzUwMDAwMDAsIDEwMDAwMDAwXToKLSAgICAg
ICAgcHJpbnQoIlRlc3RpbmcgJWQgYnl0ZXMgZG93bmxvYWQiICUgc2l6ZSkKLSAgICAgICAgcGF0
aCA9ICIvJWQlcyIgJSAoc2l6ZSwgc2VydmVyLnRocm91Z2hwdXRfZmlsZV9zdWZmaXgpCi0KLSAg
ICAgICAgIyBwZXJmb3JtIEhUVFAgcmVxdWVzdCBvdmVyIFRDUAotICAgICAgICBzdGFydCA9IHRp
bWUudGltZSgpCi0gICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KCJodHRwczovLyIgKyBz
ZXJ2ZXIuaG9zdCArIHBhdGgsIHZlcmlmeT1GYWxzZSkKLSAgICAgICAgdGNwX29jdGV0cyA9IGxl
bihyZXNwb25zZS5jb250ZW50KQotICAgICAgICB0Y3BfZWxhcHNlZCA9IHRpbWUudGltZSgpIC0g
c3RhcnQKLSAgICAgICAgYXNzZXJ0IHRjcF9vY3RldHMgPT0gc2l6ZSwgIkhUVFAvVENQIHJlc3Bv
bnNlIHNpemUgbWlzbWF0Y2giCi0KLSAgICAgICAgIyBwZXJmb3JtIEhUVFAgcmVxdWVzdCBvdmVy
IFFVSUMKLSAgICAgICAgaWYgc2VydmVyLmh0dHAzOgotICAgICAgICAgICAgY29uZmlndXJhdGlv
bi5hbHBuX3Byb3RvY29scyA9IEgzX0FMUE4KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb24uYWxwbl9wcm90b2NvbHMgPSBIMF9BTFBOCi0gICAgICAgIHN0YXJ0ID0gdGlt
ZS50aW1lKCkKLSAgICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICAgICAgc2VydmVy
Lmhvc3QsCi0gICAgICAgICAgICBzZXJ2ZXIucG9ydCwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRp
b249Y29uZmlndXJhdGlvbiwKLSAgICAgICAgICAgIGNyZWF0ZV9wcm90b2NvbD1IdHRwQ2xpZW50
LAotICAgICAgICApIGFzIHByb3RvY29sOgotICAgICAgICAgICAgcHJvdG9jb2wgPSBjYXN0KEh0
dHBDbGllbnQsIHByb3RvY29sKQotCi0gICAgICAgICAgICBodHRwX2V2ZW50cyA9IGF3YWl0IHBy
b3RvY29sLmdldCgKLSAgICAgICAgICAgICAgICAiaHR0cHM6Ly97fTp7fXt9Ii5mb3JtYXQoc2Vy
dmVyLmhvc3QsIHNlcnZlci5wb3J0LCBwYXRoKQotICAgICAgICAgICAgKQotICAgICAgICAgICAg
cXVpY19lbGFwc2VkID0gdGltZS50aW1lKCkgLSBzdGFydAotICAgICAgICAgICAgcXVpY19vY3Rl
dHMgPSAwCi0gICAgICAgICAgICBmb3IgaHR0cF9ldmVudCBpbiBodHRwX2V2ZW50czoKLSAgICAg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGh0dHBfZXZlbnQsIERhdGFSZWNlaXZlZCk6Ci0gICAg
ICAgICAgICAgICAgICAgIHF1aWNfb2N0ZXRzICs9IGxlbihodHRwX2V2ZW50LmRhdGEpCi0gICAg
ICAgIGFzc2VydCBxdWljX29jdGV0cyA9PSBzaXplLCAiSFRUUC9RVUlDIHJlc3BvbnNlIHNpemUg
bWlzbWF0Y2giCi0KLSAgICAgICAgcHJpbnQoIiAtIEhUVFAvVENQICBjb21wbGV0ZWQgaW4gJS4z
ZiBzIiAlIHRjcF9lbGFwc2VkKQotICAgICAgICBwcmludCgiIC0gSFRUUC9RVUlDIGNvbXBsZXRl
ZCBpbiAlLjNmIHMiICUgcXVpY19lbGFwc2VkKQotCi0gICAgICAgIGlmIHF1aWNfZWxhcHNlZCA+
IDEuMSAqIHRjcF9lbGFwc2VkOgotICAgICAgICAgICAgZmFpbHVyZXMgKz0gMQotICAgICAgICAg
ICAgcHJpbnQoIiA9PiBGQUlMIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50KCIg
PT4gUEFTUyIpCi0KLSAgICBpZiBmYWlsdXJlcyA9PSAwOgotICAgICAgICBzZXJ2ZXIucmVzdWx0
IHw9IFJlc3VsdC5UCi0KLQotZGVmIHByaW50X3Jlc3VsdChzZXJ2ZXI6IFNlcnZlcikgLT4gTm9u
ZToKLSAgICByZXN1bHQgPSBzdHIoc2VydmVyLnJlc3VsdCkucmVwbGFjZSgidGhyZWUiLCAiMyIp
Ci0gICAgcmVzdWx0ID0gcmVzdWx0WzA6OF0gKyAiICIgKyByZXN1bHRbODoxNl0gKyAiICIgKyBy
ZXN1bHRbMTY6XQotICAgIHByaW50KCIlcyVzJXMiICUgKHNlcnZlci5uYW1lLCAiICIgKiAoMjAg
LSBsZW4oc2VydmVyLm5hbWUpKSwgcmVzdWx0KSkKLQotCi1hc3luYyBkZWYgcnVuKHNlcnZlcnMs
IHRlc3RzLCBxdWljX2xvZz1GYWxzZSwgc2VjcmV0c19sb2dfZmlsZT1Ob25lKSAtPiBOb25lOgot
ICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyczoKLSAgICAgICAgaWYgc2VydmVyLnN0cnVjdHVyZWRf
bG9nZ2luZzoKLSAgICAgICAgICAgIHNlcnZlci5yZXN1bHQgfD0gUmVzdWx0LkwKLSAgICAgICAg
Zm9yIHRlc3RfbmFtZSwgdGVzdF9mdW5jIGluIHRlc3RzOgotICAgICAgICAgICAgcHJpbnQoIlxu
PT09ICVzICVzID09PVxuIiAlIChzZXJ2ZXIubmFtZSwgdGVzdF9uYW1lKSkKLSAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgICAgICAgICBhbHBu
X3Byb3RvY29scz1IM19BTFBOICsgSDBfQUxQTiwKLSAgICAgICAgICAgICAgICBpc19jbGllbnQ9
VHJ1ZSwKLSAgICAgICAgICAgICAgICBxdWljX2xvZ2dlcj1RdWljTG9nZ2VyKCksCi0gICAgICAg
ICAgICAgICAgc2VjcmV0c19sb2dfZmlsZT1zZWNyZXRzX2xvZ19maWxlLAotICAgICAgICAgICAg
ICAgIHZlcmlmeV9tb2RlPXNlcnZlci52ZXJpZnlfbW9kZSwKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIGlmIHRlc3RfbmFtZSA9PSAidGVzdF90aHJvdWdocHV0IjoKLSAgICAgICAgICAgICAg
ICB0aW1lb3V0ID0gNjAKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdGltZW91
dCA9IDEwCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgYXdhaXQgYXN5bmNpby53
YWl0X2ZvcigKLSAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jKHNlcnZlciwgY29uZmlndXJh
dGlvbiksIHRpbWVvdXQ9dGltZW91dAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgotICAgICAgICAgICAgICAgIHByaW50KGV4YykKLQotICAg
ICAgICAgICAgaWYgcXVpY19sb2c6Ci0gICAgICAgICAgICAgICAgd2l0aCBvcGVuKCIlcy0lcy5x
bG9nIiAlIChzZXJ2ZXIubmFtZSwgdGVzdF9uYW1lKSwgInciKSBhcyBsb2dnZXJfZnA6Ci0gICAg
ICAgICAgICAgICAgICAgIGpzb24uZHVtcChjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2Rp
Y3QoKSwgbG9nZ2VyX2ZwLCBpbmRlbnQ9NCkKLQotICAgICAgICBwcmludCgiIikKLSAgICAgICAg
cHJpbnRfcmVzdWx0KHNlcnZlcikKLQotICAgICMgcHJpbnQgc3VtbWFyeQotICAgIGlmIGxlbihz
ZXJ2ZXJzKSA+IDE6Ci0gICAgICAgIHByaW50KCJTVU1NQVJZIikKLSAgICAgICAgZm9yIHNlcnZl
ciBpbiBzZXJ2ZXJzOgotICAgICAgICAgICAgcHJpbnRfcmVzdWx0KHNlcnZlcikKLQotCi1pZiBf
X25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyKGRlc2NyaXB0aW9uPSJRVUlDIGludGVyb3AgY2xpZW50IikKLSAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAiLXEiLAotICAgICAgICAiLS1xdWljLWxvZyIsCi0gICAgICAgIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgIGhlbHA9ImxvZyBRVUlDIGV2ZW50cyB0byBhIGZp
bGUgaW4gUUxPRyBmb3JtYXQiLAotICAgICkKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAg
ICAgICAiLS1zZXJ2ZXIiLCB0eXBlPXN0ciwgaGVscD0ib25seSBydW4gYWdhaW5zdCB0aGUgc3Bl
Y2lmaWVkIHNlcnZlci4iCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tdGVzdCIs
IHR5cGU9c3RyLCBoZWxwPSJvbmx5IHJ1biB0aGUgc3BlY2lmZWQgdGVzdC4iKQotICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItbCIsCi0gICAgICAgICItLXNlY3JldHMtbG9nIiwK
LSAgICAgICAgdHlwZT1zdHIsCi0gICAgICAgIGhlbHA9ImxvZyBzZWNyZXRzIHRvIGEgZmlsZSwg
Zm9yIHVzZSB3aXRoIFdpcmVzaGFyayIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ci0gICAgICAgICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJp
bmNyZWFzZSBsb2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0KLSAgICBhcmdzID0gcGFyc2VyLnBh
cnNlX2FyZ3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgZm9ybWF0PSIl
KGFzY3RpbWUpcyAlKGxldmVsbmFtZSlzICUobmFtZSlzICUobWVzc2FnZSlzIiwKLSAgICAgICAg
bGV2ZWw9bG9nZ2luZy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxzZSBsb2dnaW5nLklORk8sCi0g
ICAgKQotCi0gICAgIyBvcGVuIFNTTCBsb2cgZmlsZQotICAgIGlmIGFyZ3Muc2VjcmV0c19sb2c6
Ci0gICAgICAgIHNlY3JldHNfbG9nX2ZpbGUgPSBvcGVuKGFyZ3Muc2VjcmV0c19sb2csICJhIikK
LSAgICBlbHNlOgotICAgICAgICBzZWNyZXRzX2xvZ19maWxlID0gTm9uZQotCi0gICAgIyBkZXRl
cm1pbmUgd2hhdCB0byBydW4KLSAgICBzZXJ2ZXJzID0gU0VSVkVSUwotICAgIHRlc3RzID0gbGlz
dChmaWx0ZXIobGFtYmRhIHg6IHhbMF0uc3RhcnRzd2l0aCgidGVzdF8iKSwgZ2xvYmFscygpLml0
ZW1zKCkpKQotICAgIGlmIGFyZ3Muc2VydmVyOgotICAgICAgICBzZXJ2ZXJzID0gbGlzdChmaWx0
ZXIobGFtYmRhIHg6IHgubmFtZSA9PSBhcmdzLnNlcnZlciwgc2VydmVycykpCi0gICAgaWYgYXJn
cy50ZXN0OgotICAgICAgICB0ZXN0cyA9IGxpc3QoZmlsdGVyKGxhbWJkYSB4OiB4WzBdID09IGFy
Z3MudGVzdCwgdGVzdHMpKQotCi0gICAgIyBkaXNhYmxlIHJlcXVlc3RzIFNTTCB3YXJuaW5ncwot
ICAgIHVybGxpYjMuZGlzYWJsZV93YXJuaW5ncyh1cmxsaWIzLmV4Y2VwdGlvbnMuSW5zZWN1cmVS
ZXF1ZXN0V2FybmluZykKLQotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVudF9sb29wKCkKLSAg
ICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgKLSAgICAgICAgcnVuKAotICAgICAgICAgICAgc2Vy
dmVycz1zZXJ2ZXJzLAotICAgICAgICAgICAgdGVzdHM9dGVzdHMsCi0gICAgICAgICAgICBxdWlj
X2xvZz1hcmdzLnF1aWNfbG9nLAotICAgICAgICAgICAgc2VjcmV0c19sb2dfZmlsZT1zZWNyZXRz
X2xvZ19maWxlLAotICAgICAgICApCi0gICAgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL3NpZHVja19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvc2lkdWNrX2Ns
aWVudC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI2YTViNzZlMGU3MDE4Mjgy
NjdjMzMzZjMzODQ3NmQ1YjBlNzIyYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvc2lkdWNrX2NsaWVudC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBhc3lu
Y2lvCi1pbXBvcnQganNvbgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBzc2wKLWZyb20gdHlwaW5n
IGltcG9ydCBPcHRpb25hbCwgY2FzdAotCi1mcm9tIGFpb3F1aWMuYXN5bmNpby5jbGllbnQgaW1w
b3J0IGNvbm5lY3QKLWZyb20gYWlvcXVpYy5hc3luY2lvLnByb3RvY29sIGltcG9ydCBRdWljQ29u
bmVjdGlvblByb3RvY29sCi1mcm9tIGFpb3F1aWMucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBR
dWljQ29uZmlndXJhdGlvbgotZnJvbSBhaW9xdWljLnF1aWMuZXZlbnRzIGltcG9ydCBEYXRhZ3Jh
bUZyYW1lUmVjZWl2ZWQsIFF1aWNFdmVudAotZnJvbSBhaW9xdWljLnF1aWMubG9nZ2VyIGltcG9y
dCBRdWljTG9nZ2VyCi0KLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJjbGllbnQiKQotCi0K
LWNsYXNzIFNpZHVja0NsaWVudChRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgc3VwZXIoKS5fX2luaXRfXygq
YXJncywgKiprd2FyZ3MpCi0gICAgICAgIHNlbGYuX2Fja193YWl0ZXI6IE9wdGlvbmFsW2FzeW5j
aW8uRnV0dXJlW05vbmVdXSA9IE5vbmUKLQotICAgIGFzeW5jIGRlZiBxdWFjayhzZWxmKSAtPiBO
b25lOgotICAgICAgICBhc3NlcnQgc2VsZi5fYWNrX3dhaXRlciBpcyBOb25lLCAiT25seSBvbmUg
cXVhY2sgYXQgYSB0aW1lLiIKLSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX2RhdGFncmFtX2ZyYW1l
KGIicXVhY2siKQotCi0gICAgICAgIHdhaXRlciA9IHNlbGYuX2xvb3AuY3JlYXRlX2Z1dHVyZSgp
Ci0gICAgICAgIHNlbGYuX2Fja193YWl0ZXIgPSB3YWl0ZXIKLSAgICAgICAgc2VsZi50cmFuc21p
dCgpCi0KLSAgICAgICAgcmV0dXJuIGF3YWl0IGFzeW5jaW8uc2hpZWxkKHdhaXRlcikKLQotICAg
IGRlZiBxdWljX2V2ZW50X3JlY2VpdmVkKHNlbGYsIGV2ZW50OiBRdWljRXZlbnQpIC0+IE5vbmU6
Ci0gICAgICAgIGlmIHNlbGYuX2Fja193YWl0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGV2ZW50LCBEYXRhZ3JhbUZyYW1lUmVjZWl2ZWQpIGFuZCBldmVudC5kYXRh
ID09IGIicXVhY2stYWNrIjoKLSAgICAgICAgICAgICAgICB3YWl0ZXIgPSBzZWxmLl9hY2tfd2Fp
dGVyCi0gICAgICAgICAgICAgICAgc2VsZi5fYWNrX3dhaXRlciA9IE5vbmUKLSAgICAgICAgICAg
ICAgICB3YWl0ZXIuc2V0X3Jlc3VsdChOb25lKQotCi0KLWFzeW5jIGRlZiBydW4oY29uZmlndXJh
dGlvbjogUXVpY0NvbmZpZ3VyYXRpb24sIGhvc3Q6IHN0ciwgcG9ydDogaW50KSAtPiBOb25lOgot
ICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgaG9zdCwgcG9ydCwgY29uZmlndXJhdGlv
bj1jb25maWd1cmF0aW9uLCBjcmVhdGVfcHJvdG9jb2w9U2lkdWNrQ2xpZW50Ci0gICAgKSBhcyBj
bGllbnQ6Ci0gICAgICAgIGNsaWVudCA9IGNhc3QoU2lkdWNrQ2xpZW50LCBjbGllbnQpCi0gICAg
ICAgIGxvZ2dlci5pbmZvKCJzZW5kaW5nIHF1YWNrIikKLSAgICAgICAgYXdhaXQgY2xpZW50LnF1
YWNrKCkKLSAgICAgICAgbG9nZ2VyLmluZm8oInJlY2VpdmVkIHF1YWNrLWFjayIpCi0KLQotaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcihkZXNjcmlwdGlvbj0iU2lEVUNLIGNsaWVudCIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgKLSAgICAgICAgImhvc3QiLCB0eXBlPXN0ciwgaGVscD0iVGhlIHJlbW90ZSBwZWVyJ3MgaG9z
dCBuYW1lIG9yIElQIGFkZHJlc3MiCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInBv
cnQiLCB0eXBlPWludCwgaGVscD0iVGhlIHJlbW90ZSBwZWVyJ3MgcG9ydCBudW1iZXIiKQotICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICItayIsCi0gICAgICAgICItLWluc2VjdXJl
IiwKLSAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgaGVscD0iZG8gbm90IHZh
bGlkYXRlIHNlcnZlciBjZXJ0aWZpY2F0ZSIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoCi0gICAgICAgICItcSIsICItLXF1aWMtbG9nIiwgdHlwZT1zdHIsIGhlbHA9ImxvZyBRVUlD
IGV2ZW50cyB0byBhIGZpbGUgaW4gUUxPRyBmb3JtYXQiCi0gICAgKQotICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoCi0gICAgICAgICItbCIsCi0gICAgICAgICItLXNlY3JldHMtbG9nIiwKLSAgICAg
ICAgdHlwZT1zdHIsCi0gICAgICAgIGhlbHA9ImxvZyBzZWNyZXRzIHRvIGEgZmlsZSwgZm9yIHVz
ZSB3aXRoIFdpcmVzaGFyayIsCi0gICAgKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAg
ICAgICItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJpbmNyZWFz
ZSBsb2dnaW5nIHZlcmJvc2l0eSIKLSAgICApCi0KLSAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2Fy
Z3MoKQotCi0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKLSAgICAgICAgZm9ybWF0PSIlKGFzY3Rp
bWUpcyAlKGxldmVsbmFtZSlzICUobmFtZSlzICUobWVzc2FnZSlzIiwKLSAgICAgICAgbGV2ZWw9
bG9nZ2luZy5ERUJVRyBpZiBhcmdzLnZlcmJvc2UgZWxzZSBsb2dnaW5nLklORk8sCi0gICAgKQot
Ci0gICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICBhbHBuX3By
b3RvY29scz1bInNpZHVjayJdLCBpc19jbGllbnQ9VHJ1ZSwgbWF4X2RhdGFncmFtX2ZyYW1lX3Np
emU9NjU1MzYKLSAgICApCi0gICAgaWYgYXJncy5pbnNlY3VyZToKLSAgICAgICAgY29uZmlndXJh
dGlvbi52ZXJpZnlfbW9kZSA9IHNzbC5DRVJUX05PTkUKLSAgICBpZiBhcmdzLnF1aWNfbG9nOgot
ICAgICAgICBjb25maWd1cmF0aW9uLnF1aWNfbG9nZ2VyID0gUXVpY0xvZ2dlcigpCi0gICAgaWYg
YXJncy5zZWNyZXRzX2xvZzoKLSAgICAgICAgY29uZmlndXJhdGlvbi5zZWNyZXRzX2xvZ19maWxl
ID0gb3BlbihhcmdzLnNlY3JldHNfbG9nLCAiYSIpCi0KLSAgICBsb29wID0gYXN5bmNpby5nZXRf
ZXZlbnRfbG9vcCgpCi0gICAgdHJ5OgotICAgICAgICBsb29wLnJ1bl91bnRpbF9jb21wbGV0ZSgK
LSAgICAgICAgICAgIHJ1bihjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sIGhvc3Q9YXJncy5o
b3N0LCBwb3J0PWFyZ3MucG9ydCkKLSAgICAgICAgKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGlm
IGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB3aXRo
IG9wZW4oYXJncy5xdWljX2xvZywgInciKSBhcyBsb2dnZXJfZnA6Ci0gICAgICAgICAgICAgICAg
anNvbi5kdW1wKGNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIudG9fZGljdCgpLCBsb2dnZXJfZnAs
IGluZGVudD00KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3RlbXBsYXRlcy9p
bmRleC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3RlbXBsYXRlcy9pbmRleC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDg1NDg3ZTg0MDgxMDM3NjUzNGJjNDI4ZDUx
MDJiNGVlOGE2MmU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy90ZW1wbGF0ZXMvaW5kZXguaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+
Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+Ci0gICAgICAgIDx0aXRsZT5haW9xdWlj
PC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3R5bGUuY3Nz
Ii8+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8aDE+V2VsY29tZSB0byBhaW9x
dWljPC9oMT4KLSAgICAgICAgPHA+Ci0gICAgICAgICAgICBUaGlzIGlzIGEgdGVzdCBwYWdlIGZv
ciA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vYWlvcnRjL2Fpb3F1aWMvIj5haW9xdWljPC9h
PiwKLSAgICAgICAgICAgIGEgUVVJQyBhbmQgSFRUUC8zIGltcGxlbWVudGF0aW9uIHdyaXR0ZW4g
aW4gUHl0aG9uLgotICAgICAgICA8L3A+Ci17JSBpZiByZXF1ZXN0LnNjb3BlWyJodHRwX3ZlcnNp
b24iXSA9PSAiMyIgJX0KLSAgICAgICAgPHA+Ci0gICAgICAgICAgICBDb25ncmF0dWxhdGlvbnMs
IHlvdSBsb2FkZWQgdGhpcyBwYWdlIHVzaW5nIEhUVFAvMyEKLSAgICAgICAgPC9wPgoteyUgZW5k
aWYgJX0KLSAgICAgICAgPGgyPkF2YWlsYWJsZSBlbmRwb2ludHM8L2gyPgotICAgICAgICA8dWw+
Ci0gICAgICAgICAgICA8bGk+PHN0cm9uZz5HRVQgLzwvc3Ryb25nPiByZXR1cm5zIHRoZSBob21l
cGFnZTwvbGk+Ci0gICAgICAgICAgICA8bGk+PHN0cm9uZz5HRVQgL05OTk5OPC9zdHJvbmc+IHJl
dHVybnMgTk5OTk4gYnl0ZXMgb2YgcGxhaW4gdGV4dDwvbGk+Ci0gICAgICAgICAgICA8bGk+PHN0
cm9uZz5QT1NUIC9lY2hvPC9zdHJvbmc+IHJldHVybnMgdGhlIHJlcXVlc3QgZGF0YTwvbGk+Ci0g
ICAgICAgICAgICA8bGk+Ci0gICAgICAgICAgICAgICAgPHN0cm9uZz5DT05ORUNUIC93czwvc3Ry
b25nPiBydW5zIGEgV2ViU29ja2V0IGVjaG8gc2VydmljZS4KLSAgICAgICAgICAgICAgICBZb3Ug
bXVzdCBzZXQgdGhlIDxlbT46cHJvdG9jb2w8L2VtPiBwc2V1ZG8taGVhZGVyIHRvIDxlbT4id2Vi
c29ja2V0IjwvZW0+LgotICAgICAgICAgICAgPC9saT4KLSAgICAgICAgICAgIDxsaT5UaGVyZSBp
cyBhbHNvIGFuIDxhIGhyZWY9Ii9odHRwYmluLyI+aHR0cGJpbiBpbnN0YW5jZTwvYT4uPC9saT4K
LSAgICAgICAgPC91bD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL2xvZ3MuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxl
cy90ZW1wbGF0ZXMvbG9ncy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDk5
ZjY3ZGNhMjJjNTdmYmM5MWQ4ZDE5YTBkNmE4OGYzYzFiOWY0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy90ZW1wbGF0
ZXMvbG9ncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4K
LSAgICAgICAgPHRpdGxlPmFpb3F1aWMgLSBsb2dzPC90aXRsZT4KLSAgICAgICAgPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIvc3R5bGUuY3NzIi8+Ci0gICAgPC9oZWFkPgotICAgIDxib2R5
PgotICAgICAgICA8aDE+UUxPRyBmaWxlczwvaDE+Ci0gICAgICAgIDx0YWJsZSBjbGFzcz0ibG9n
cyI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICAgIDx0aD5uYW1lPC90aD4KLSAgICAgICAgICAg
IDx0aD5kYXRlIChVVEMpPC90aD4KLSAgICAgICAgICAgIDx0aD5zaXplPC90aD4KLSAgICAgICAg
PC90cj4KLXslIGZvciBsb2cgaW4gbG9ncyAlfQotICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8
dGQgY2xhc3M9Im5hbWUiPgotICAgICAgICAgICAgICAgIDxhIGhyZWY9Int7IGxvZy5maWxlX3Vy
bCB9fSI+e3sgbG9nLm5hbWUgfX08L2E+Ci0gICAgICAgICAgICAgICAgPGEgaHJlZj0ie3sgbG9n
LnF2aXNfdXJsIH19Ij5bcXZpc108L2E+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgICAg
PHRkIGNsYXNzPSJkYXRlIj57eyBsb2cuZGF0ZSB9fTwvdGQ+Ci0gICAgICAgICAgICA8dGQgY2xh
c3M9InNpemUiPnt7IGxvZy5zaXplIH19PC90ZD4KLSAgICAgICAgPC90cj4KLXslIGVuZGZvciAl
fQotICAgICAgICA8L3RhYmxlPgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9leGFtcGxlcy90ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvZXhhbXBsZXMvdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjNmJiOWQzNjRkN2NkYzAyZjI2NDNlM2Q3YmRkNzQ4MjFiZjQ0NjgzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9l
eGFtcGxlcy90ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL2luZGV4Lmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvdGVtcGxhdGVzL2xvZ3MuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4
YW1wbGVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGJh
NmQxMjRjYmI5OGU4MGY3OTRmZWNhNWU2ZDliM2E1MmYzODVlLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9leGFtcGxlcy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2RlbW8ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvZG9xX2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9leGFt
cGxlcy9kb3Ffc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2h0dHAzX2NsaWVudC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9leGFtcGxlcy9odHRwM19zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
ZXhhbXBsZXMvaHR0cHhfY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL2V4YW1wbGVzL2ludGVyb3Au
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvZXhhbXBsZXMvc2lkdWNrX2NsaWVudC5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3JlcXVpcmVtZW50cy9kb2MudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3JlcXVpcmVt
ZW50cy9kb2MudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzMzYTM5Nzg3NGM2
NTNjOTFhMjBhMGI5MjU2NzNkNWM0OWM3Yjg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9yZXF1aXJlbWVudHMvZG9jLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotY3J5cHRvZ3JhcGh5Ci1zcGhpbnhfYXV0b2RvY190
eXBlaGludHMKLXNwaGlueGNvbnRyaWItYXN5bmNpbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3JlcXVpcmVtZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9yZXF1aXJlbWVudHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllZTIyZTc0YmQy
MWE5NDY3Y2YxNjZkOTQwNGM2MjY5YTA5ZDVhMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3JlcXVpcmVtZW50cy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9yZXF1aXJlbWVudHMvZG9jLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NjcmlwdHMv
ZmV0Y2gtdmVuZG9yIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NjcmlwdHMvZmV0Y2gtdmVuZG9yCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDZkNjIzNzE0NzhkNDI3Yzk1ZjUyMjVkYjQzMDBmN2Ex
YTg1ODIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zY3JpcHRzL2ZldGNoLXZlbmRvcgorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBs
b2dnaW5nCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgc3Ry
dWN0Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwotCi0KLWRlZiBnZXRfcGxhdGZvcm0o
KToKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0gImxpbnV4IjoKLSAgICAgICAgcmV0dXJuICJtYW55
bGludXhfJXMiICUgb3MudW5hbWUoKS5tYWNoaW5lCi0gICAgZWxpZiBzeXMucGxhdGZvcm0gPT0g
ImRhcndpbiI6Ci0gICAgICAgIHJldHVybiAibWFjb3N4XyVzIiAlIG9zLnVuYW1lKCkubWFjaGlu
ZQotICAgIGVsaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAgIHJldHVybiAid2lu
JXMiICUgKHN0cnVjdC5jYWxjc2l6ZSgiUCIpICogOCkKLSAgICBlbHNlOgotICAgICAgICByYWlz
ZSBFeGNlcHRpb24oIlVuc3VwcG9ydGVkIHBsYXRmb20gJXMiICUgc3lzLnBsYXRmb3JtKQotCi0K
LXBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSJGZXRjaCBhbmQg
ZXh0cmFjdCB0YXJiYWxscyIpCi1wYXJzZXIuYWRkX2FyZ3VtZW50KCJkZXN0aW5hdGlvbl9kaXIi
KQotcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jYWNoZS1kaXIiLCBkZWZhdWx0PSJ0YXJiYWxscyIp
Ci1wYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNvbmZpZy1maWxlIiwgZGVmYXVsdD1fX2ZpbGVfXyAr
ICIuanNvbiIpCi1hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotbG9nZ2luZy5iYXNpY0NvbmZp
ZyhsZXZlbD1sb2dnaW5nLklORk8pCi0KLSMgd29yayBhcm91bmQgYnVnZ3kgJ3RhcicgZXhlY3V0
YWJsZSBvbiBXaW5kb3dzCi1pZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICBvcy5lbnZp
cm9uWyJQQVRIIl0gPSAiQzpcXFByb2dyYW0gRmlsZXNcXEdpdFxcdXNyXFxiaW47IiArIG9zLmVu
dmlyb25bIlBBVEgiXQotCi0jIHJlYWQgY29uZmlnIGZpbGUKLXdpdGggb3BlbihhcmdzLmNvbmZp
Z19maWxlLCAiciIpIGFzIGZwOgotICAgIGNvbmZpZyA9IGpzb24ubG9hZChmcCkKLQotIyBjcmVh
dGUgZnJlc2ggZGVzdGluYXRpb24gZGlyZWN0b3J5Ci1sb2dnaW5nLmluZm8oIkNyZWF0aW5nIGRp
cmVjdG9yeSAlcyIgJSBhcmdzLmRlc3RpbmF0aW9uX2RpcikKLWlmIG9zLnBhdGguZXhpc3RzKGFy
Z3MuZGVzdGluYXRpb25fZGlyKToKLSAgICBzaHV0aWwucm10cmVlKGFyZ3MuZGVzdGluYXRpb25f
ZGlyKQotb3MubWtkaXIoYXJncy5kZXN0aW5hdGlvbl9kaXIpCi0KLWZvciB1cmxfdGVtcGxhdGUg
aW4gY29uZmlnWyJ1cmxzIl06Ci0gICAgdGFyYmFsbF91cmwgPSB1cmxfdGVtcGxhdGUucmVwbGFj
ZSgie3BsYXRmb3JtfSIsIGdldF9wbGF0Zm9ybSgpKQotCi0gICAgIyBkb3dubG9hZCB0YXJiYWxs
Ci0gICAgdGFyYmFsbF9uYW1lID0gdGFyYmFsbF91cmwuc3BsaXQoIi8iKVstMV0KLSAgICB0YXJi
YWxsX2ZpbGUgPSBvcy5wYXRoLmpvaW4oYXJncy5jYWNoZV9kaXIsIHRhcmJhbGxfbmFtZSkKLSAg
ICBpZiBub3Qgb3MucGF0aC5leGlzdHModGFyYmFsbF9maWxlKToKLSAgICAgICAgbG9nZ2luZy5p
bmZvKCJEb3dubG9hZGluZyAlcyIgJSB0YXJiYWxsX3VybCkKLSAgICAgICAgaWYgbm90IG9zLnBh
dGguZXhpc3RzKGFyZ3MuY2FjaGVfZGlyKToKLSAgICAgICAgICAgIG9zLm1rZGlyKGFyZ3MuY2Fj
aGVfZGlyKQotICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCi0gICAgICAgICAgICBbImN1
cmwiLCAiLS1sb2NhdGlvbiIsICItLW91dHB1dCIsIHRhcmJhbGxfZmlsZSwgIi0tc2lsZW50Iiwg
dGFyYmFsbF91cmxdCi0gICAgICAgICkKLQotICAgICMgZXh0cmFjdCB0YXJiYWxsCi0gICAgbG9n
Z2luZy5pbmZvKCJFeHRyYWN0aW5nICVzIiAlIHRhcmJhbGxfbmFtZSkKLSAgICBzdWJwcm9jZXNz
LmNoZWNrX2NhbGwoWyJ0YXIiLCAiLUMiLCBhcmdzLmRlc3RpbmF0aW9uX2RpciwgIi14ZiIsIHRh
cmJhbGxfZmlsZV0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2NyaXB0cy9mZXRjaC12ZW5k
b3IuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zY3JpcHRzL2ZldGNoLXZlbmRvci5qc29uCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjgwMjM1YmViMDM4NDhhMzQ4NmFhOTdiMWMzOWY0NmY5
YjkyN2NmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zY3JpcHRzL2ZldGNoLXZlbmRvci5qc29uCisrKyAvZGV2L251bGwKQEAgLTEs
MyArMCwwIEBACi17Ci0gICAgInVybHMiOiBbImh0dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlv
cXVpYy1vcGVuc3NsL3JlbGVhc2VzL2Rvd25sb2FkLzEuMS4xZi0xL29wZW5zc2wte3BsYXRmb3Jt
fS50YXIuYnoyIl0KLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zY3JpcHRzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNiYTlhOWQ0MDQ2MzBlZmIxYmE4Y2E0OTVhOWIzM2JkZDY3YTVm
N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2NyaXB0cy9mZXRjaC12ZW5kb3IKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvc2NyaXB0cy9mZXRjaC12ZW5kb3IuanNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NldHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5jZmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg5YzAyNWFkMGY3MzNiMzhiYjk0ZjhiYjhlYjA0Nzg1ZGEzYjRmNDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Nl
dHVwLmNmZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVtjb3ZlcmFnZTpydW5dCi1z
b3VyY2UgPSBhaW9xdWljCi0KLVtmbGFrZThdCi1pZ25vcmU9RTIwMyxXNTAzCi1tYXgtbGluZS1s
ZW5ndGg9MTUwCi0KLVtpc29ydF0KLWRlZmF1bHRfc2VjdGlvbiA9IFRISVJEUEFSVFkKLWluY2x1
ZGVfdHJhaWxpbmdfY29tbWEgPSBUcnVlCi1rbm93bl9maXJzdF9wYXJ0eSA9IGFpb3F1aWMKLWxp
bmVfbGVuZ3RoID0gODgKLW11bHRpX2xpbmVfb3V0cHV0ID0gMwotCi1bbXlweV0KLWRpc2FsbG93
X3VudHlwZWRfY2FsbHMgPSBUcnVlCi1kaXNhbGxvd191bnR5cGVkX2RlY29yYXRvcnMgPSBUcnVl
Ci1pZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQotc3RyaWN0X29wdGlvbmFsID0gRmFsc2UK
LXdhcm5fcmVkdW5kYW50X2Nhc3RzID0gVHJ1ZQotd2Fybl91bnVzZWRfaWdub3JlcyA9IFRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVjNWVhM2M0NDNmMGQxYmNkYmJlZjFh
MjkyZWQwNDc0NGViOTZiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc2V0dXAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCww
IEBACi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHN5cwotCi1pbXBvcnQgc2V0dXB0b29scwotCi1y
b290X2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQotCi1h
Ym91dCA9IHt9Ci1hYm91dF9maWxlID0gb3MucGF0aC5qb2luKHJvb3RfZGlyLCAic3JjIiwgImFp
b3F1aWMiLCAiYWJvdXQucHkiKQotd2l0aCBvcGVuKGFib3V0X2ZpbGUsIGVuY29kaW5nPSJ1dGYt
OCIpIGFzIGZwOgotICAgIGV4ZWMoZnAucmVhZCgpLCBhYm91dCkKLQotcmVhZG1lX2ZpbGUgPSBv
cy5wYXRoLmpvaW4ocm9vdF9kaXIsICJSRUFETUUucnN0IikKLXdpdGggb3BlbihyZWFkbWVfZmls
ZSwgZW5jb2Rpbmc9InV0Zi04IikgYXMgZjoKLSAgICBsb25nX2Rlc2NyaXB0aW9uID0gZi5yZWFk
KCkKLQotaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgZXh0cmFfY29tcGlsZV9hcmdz
ID0gW10KLSAgICBsaWJyYXJpZXMgPSBbImxpYmNyeXB0byIsICJhZHZhcGkzMiIsICJjcnlwdDMy
IiwgImdkaTMyIiwgInVzZXIzMiIsICJ3czJfMzIiXQotZWxzZToKLSAgICBleHRyYV9jb21waWxl
X2FyZ3MgPSBbIi1zdGQ9Yzk5Il0KLSAgICBsaWJyYXJpZXMgPSBbImNyeXB0byJdCi0KLXNldHVw
dG9vbHMuc2V0dXAoCi0gICAgbmFtZT1hYm91dFsiX190aXRsZV9fIl0sCi0gICAgdmVyc2lvbj1h
Ym91dFsiX192ZXJzaW9uX18iXSwKLSAgICBkZXNjcmlwdGlvbj1hYm91dFsiX19zdW1tYXJ5X18i
XSwKLSAgICBsb25nX2Rlc2NyaXB0aW9uPWxvbmdfZGVzY3JpcHRpb24sCi0gICAgdXJsPWFib3V0
WyJfX3VyaV9fIl0sCi0gICAgYXV0aG9yPWFib3V0WyJfX2F1dGhvcl9fIl0sCi0gICAgYXV0aG9y
X2VtYWlsPWFib3V0WyJfX2VtYWlsX18iXSwKLSAgICBsaWNlbnNlPWFib3V0WyJfX2xpY2Vuc2Vf
XyJdLAotICAgIGluY2x1ZGVfcGFja2FnZV9kYXRhPVRydWUsCi0gICAgY2xhc3NpZmllcnM9Wwot
ICAgICAgICAiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhIiwKLSAgICAgICAgIkVudmly
b25tZW50IDo6IFdlYiBFbnZpcm9ubWVudCIsCi0gICAgICAgICJJbnRlbmRlZCBBdWRpZW5jZSA6
OiBEZXZlbG9wZXJzIiwKLSAgICAgICAgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IEJTRCBM
aWNlbnNlIiwKLSAgICAgICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQiLAot
ICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIiwKLSAgICAgICAgIlByb2dy
YW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzIiwKLSAgICAgICAgIlByb2dyYW1taW5nIExh
bmd1YWdlIDo6IFB5dGhvbiA6OiAzLjYiLAotICAgICAgICAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ug
OjogUHl0aG9uIDo6IDMuNyIsCi0gICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRo
b24gOjogMy44IiwKLSAgICAgICAgIlRvcGljIDo6IEludGVybmV0IDo6IFdXVy9IVFRQIiwKLSAg
ICBdLAotICAgIGV4dF9tb2R1bGVzPVsKLSAgICAgICAgc2V0dXB0b29scy5FeHRlbnNpb24oCi0g
ICAgICAgICAgICAiYWlvcXVpYy5fYnVmZmVyIiwKLSAgICAgICAgICAgIGV4dHJhX2NvbXBpbGVf
YXJncz1leHRyYV9jb21waWxlX2FyZ3MsCi0gICAgICAgICAgICBzb3VyY2VzPVsic3JjL2Fpb3F1
aWMvX2J1ZmZlci5jIl0sCi0gICAgICAgICksCi0gICAgICAgIHNldHVwdG9vbHMuRXh0ZW5zaW9u
KAotICAgICAgICAgICAgImFpb3F1aWMuX2NyeXB0byIsCi0gICAgICAgICAgICBleHRyYV9jb21w
aWxlX2FyZ3M9ZXh0cmFfY29tcGlsZV9hcmdzLAotICAgICAgICAgICAgbGlicmFyaWVzPWxpYnJh
cmllcywKLSAgICAgICAgICAgIHNvdXJjZXM9WyJzcmMvYWlvcXVpYy9fY3J5cHRvLmMiXSwKLSAg
ICAgICAgKSwKLSAgICBdLAotICAgIHBhY2thZ2VfZGlyPXsiIjogInNyYyJ9LAotICAgIHBhY2th
Z2VfZGF0YT17ImFpb3F1aWMiOiBbInB5LnR5cGVkIiwgIl9idWZmZXIucHlpIiwgIl9jcnlwdG8u
cHlpIl19LAotICAgIHBhY2thZ2VzPVsiYWlvcXVpYyIsICJhaW9xdWljLmFzeW5jaW8iLCAiYWlv
cXVpYy5oMCIsICJhaW9xdWljLmgzIiwgImFpb3F1aWMucXVpYyJdLAotICAgIGluc3RhbGxfcmVx
dWlyZXM9WwotICAgICAgICAiY2VydGlmaSIsCi0gICAgICAgICJjcnlwdG9ncmFwaHkgPj0gMi41
IiwKLSAgICAgICAgJ2RhdGFjbGFzc2VzOyBweXRob25fdmVyc2lvbiA8ICIzLjciJywKLSAgICAg
ICAgInB5bHNxcGFjayA+PSAwLjMuMywgPCAwLjQuMCIsCi0gICAgXSwKLSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMv
YWlvcXVpYy9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRhY2Vi
ZWVmODNlYTQxODliZmFlNGNhOWYwODBkMjNkODc3YThiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX19pbml0
X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLSMgZmxha2U4OiBub3FhCi0KLWZy
b20gLmFib3V0IGltcG9ydCBfX3ZlcnNpb25fXwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL19idWZmZXIuYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9fYnVmZmVyLmMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlZmM0ZGI4MTc1OTBiZThkNzM2YjMyNjQ2
ZDRjZmY0MWM5ZjY0NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19idWZmZXIuYworKysgL2Rldi9udWxsCkBA
IC0xLDQ0MCArMCwwIEBACi0jZGVmaW5lIFBZX1NTSVpFX1RfQ0xFQU4KLQotI2luY2x1ZGUgPFB5
dGhvbi5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jZGVmaW5lIE1PRFVMRV9OQU1FICJhaW9x
dWljLl9idWZmZXIiCi0KLXN0YXRpYyBQeU9iamVjdCAqQnVmZmVyUmVhZEVycm9yOwotc3RhdGlj
IFB5T2JqZWN0ICpCdWZmZXJXcml0ZUVycm9yOwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgUHlP
YmplY3RfSEVBRAotICAgIHVpbnQ4X3QgKmJhc2U7Ci0gICAgdWludDhfdCAqZW5kOwotICAgIHVp
bnQ4X3QgKnBvczsKLX0gQnVmZmVyT2JqZWN0OwotCi0jZGVmaW5lIENIRUNLX1JFQURfQk9VTkRT
KHNlbGYsIGxlbikgXAotICAgIGlmIChsZW4gPCAwIHx8IHNlbGYtPnBvcyArIGxlbiA+IHNlbGYt
PmVuZCkgeyBcCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhCdWZmZXJSZWFkRXJyb3IsICJSZWFk
IG91dCBvZiBib3VuZHMiKTsgXAotICAgICAgICByZXR1cm4gTlVMTDsgXAotICAgIH0KLQotI2Rl
ZmluZSBDSEVDS19XUklURV9CT1VORFMoc2VsZiwgbGVuKSBcCi0gICAgaWYgKHNlbGYtPnBvcyAr
IGxlbiA+IHNlbGYtPmVuZCkgeyBcCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhCdWZmZXJXcml0
ZUVycm9yLCAiV3JpdGUgb3V0IG9mIGJvdW5kcyIpOyBcCi0gICAgICAgIHJldHVybiBOVUxMOyBc
Ci0gICAgfQotCi1zdGF0aWMgaW50Ci1CdWZmZXJfaW5pdChCdWZmZXJPYmplY3QgKnNlbGYsIFB5
T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQotewotICAgIGNvbnN0IGNoYXIgKmt3bGlz
dFtdID0geyJjYXBhY2l0eSIsICJkYXRhIiwgTlVMTH07Ci0gICAgaW50IGNhcGFjaXR5ID0gMDsK
LSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gTlVMTDsKLSAgICBQeV9zc2l6ZV90IGRh
dGFfbGVuID0gMDsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3Ms
IGt3YXJncywgInxpeSMiLCAoY2hhcioqKWt3bGlzdCwgJmNhcGFjaXR5LCAmZGF0YSwgJmRhdGFf
bGVuKSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKGRhdGEgIT0gTlVMTCkgewotICAg
ICAgICBzZWxmLT5iYXNlID0gbWFsbG9jKGRhdGFfbGVuKTsKLSAgICAgICAgc2VsZi0+ZW5kID0g
c2VsZi0+YmFzZSArIGRhdGFfbGVuOwotICAgICAgICBtZW1jcHkoc2VsZi0+YmFzZSwgZGF0YSwg
ZGF0YV9sZW4pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlbGYtPmJhc2UgPSBtYWxsb2MoY2Fw
YWNpdHkpOwotICAgICAgICBzZWxmLT5lbmQgPSBzZWxmLT5iYXNlICsgY2FwYWNpdHk7Ci0gICAg
fQotICAgIHNlbGYtPnBvcyA9IHNlbGYtPmJhc2U7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRp
YyB2b2lkCi1CdWZmZXJfZGVhbGxvYyhCdWZmZXJPYmplY3QgKnNlbGYpCi17Ci0gICAgZnJlZShz
ZWxmLT5iYXNlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9kYXRhX3NsaWNlKEJ1
ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgaW50IHN0YXJ0LCBzdG9w
OwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaWkiLCAmc3RhcnQsICZzdG9wKSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAoc3RhcnQgPCAwIHx8IHNlbGYtPmJhc2Ug
KyBzdGFydCA+IHNlbGYtPmVuZCB8fAotICAgICAgICBzdG9wIDwgMCB8fCBzZWxmLT5iYXNlICsg
c3RvcCA+IHNlbGYtPmVuZCB8fAotICAgICAgICBzdG9wIDwgc3RhcnQpIHsKLSAgICAgICAgUHlF
cnJfU2V0U3RyaW5nKEJ1ZmZlclJlYWRFcnJvciwgIlJlYWQgb3V0IG9mIGJvdW5kcyIpOwotICAg
ICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5n
QW5kU2l6ZSgoY29uc3QgY2hhciopKHNlbGYtPmJhc2UgKyBzdGFydCksIChzdG9wIC0gc3RhcnQp
KTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9lb2YoQnVmZmVyT2JqZWN0ICpzZWxm
LCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBpZiAoc2VsZi0+cG9zID09IHNlbGYtPmVuZCkKLSAg
ICAgICAgUHlfUkVUVVJOX1RSVUU7Ci0gICAgUHlfUkVUVVJOX0ZBTFNFOwotfQotCi1zdGF0aWMg
UHlPYmplY3QgKgotQnVmZmVyX3B1bGxfYnl0ZXMoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVj
dCAqYXJncykKLXsKLSAgICBpbnQgbGVuOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdz
LCAiaSIsICZsZW4pKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIENIRUNLX1JFQURfQk9V
TkRTKHNlbGYsIGxlbik7Ci0KLSAgICBQeU9iamVjdCAqbyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0Fu
ZFNpemUoKGNvbnN0IGNoYXIqKXNlbGYtPnBvcywgbGVuKTsKLSAgICBzZWxmLT5wb3MgKz0gbGVu
OwotICAgIHJldHVybiBvOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1bGxfdWlu
dDgoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBDSEVDS19SRUFE
X0JPVU5EUyhzZWxmLCAxKQotCi0gICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKAot
ICAgICAgICAodWludDhfdCkoKihzZWxmLT5wb3MrKykpCi0gICAgKTsKLX0KLQotc3RhdGljIFB5
T2JqZWN0ICoKLUJ1ZmZlcl9wdWxsX3VpbnQxNihCdWZmZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0
ICphcmdzKQotewotICAgIENIRUNLX1JFQURfQk9VTkRTKHNlbGYsIDIpCi0KLSAgICB1aW50MTZf
dCB2YWx1ZSA9ICh1aW50MTZfdCkoKihzZWxmLT5wb3MpKSA8PCA4IHwKLSAgICAgICAgICAgICAg
ICAgICAgICh1aW50MTZfdCkoKihzZWxmLT5wb3MgKyAxKSk7Ci0gICAgc2VsZi0+cG9zICs9IDI7
Ci0gICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKHZhbHVlKTsKLX0KLQotc3RhdGlj
IFB5T2JqZWN0ICoKLUJ1ZmZlcl9wdWxsX3VpbnQzMihCdWZmZXJPYmplY3QgKnNlbGYsIFB5T2Jq
ZWN0ICphcmdzKQotewotICAgIENIRUNLX1JFQURfQk9VTkRTKHNlbGYsIDQpCi0KLSAgICB1aW50
MzJfdCB2YWx1ZSA9ICh1aW50MzJfdCkoKihzZWxmLT5wb3MpKSA8PCAyNCB8Ci0gICAgICAgICAg
ICAgICAgICAgICAodWludDMyX3QpKCooc2VsZi0+cG9zICsgMSkpIDw8IDE2IHwKLSAgICAgICAg
ICAgICAgICAgICAgICh1aW50MzJfdCkoKihzZWxmLT5wb3MgKyAyKSkgPDwgOCB8Ci0gICAgICAg
ICAgICAgICAgICAgICAodWludDMyX3QpKCooc2VsZi0+cG9zICsgMykpOwotICAgIHNlbGYtPnBv
cyArPSA0OwotICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZyh2YWx1ZSk7Ci19Ci0K
LXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfcHVsbF91aW50NjQoQnVmZmVyT2JqZWN0ICpzZWxm
LCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCA4KQotCi0g
ICAgdWludDY0X3QgdmFsdWUgPSAodWludDY0X3QpKCooc2VsZi0+cG9zKSkgPDwgNTYgfAotICAg
ICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDEpKSA8PCA0OCB8Ci0g
ICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpKCooc2VsZi0+cG9zICsgMikpIDw8IDQwIHwK
LSAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5wb3MgKyAzKSkgPDwgMzIg
fAotICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDQpKSA8PCAy
NCB8Ci0gICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpKCooc2VsZi0+cG9zICsgNSkpIDw8
IDE2IHwKLSAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCkoKihzZWxmLT5wb3MgKyA2KSkg
PDwgOCB8Ci0gICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpKCooc2VsZi0+cG9zICsgNykp
OwotICAgIHNlbGYtPnBvcyArPSA4OwotICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9u
Z0xvbmcodmFsdWUpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1bGxfdWludF92
YXIoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICB1aW50NjRfdCB2
YWx1ZTsKLSAgICBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCAxKQotICAgIHN3aXRjaCAoKihzZWxm
LT5wb3MpID4+IDYpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHZhbHVlID0gKihzZWxmLT5wb3Mr
KykgJiAweDNGOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIENIRUNLX1JF
QURfQk9VTkRTKHNlbGYsIDIpCi0gICAgICAgIHZhbHVlID0gKHVpbnQxNl90KSgqKHNlbGYtPnBv
cykgJiAweDNGKSA8PCA4IHwKLSAgICAgICAgICAgICAgICAodWludDE2X3QpKCooc2VsZi0+cG9z
ICsgMSkpOwotICAgICAgICBzZWxmLT5wb3MgKz0gMjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSAyOgotICAgICAgICBDSEVDS19SRUFEX0JPVU5EUyhzZWxmLCA0KQotICAgICAgICB2YWx1ZSA9
ICh1aW50MzJfdCkoKihzZWxmLT5wb3MpICYgMHgzRikgPDwgMjQgfAotICAgICAgICAgICAgICAg
ICh1aW50MzJfdCkoKihzZWxmLT5wb3MgKyAxKSkgPDwgMTYgfAotICAgICAgICAgICAgICAgICh1
aW50MzJfdCkoKihzZWxmLT5wb3MgKyAyKSkgPDwgOCB8Ci0gICAgICAgICAgICAgICAgKHVpbnQz
Ml90KSgqKHNlbGYtPnBvcyArIDMpKTsKLSAgICAgICAgc2VsZi0+cG9zICs9IDQ7Ci0gICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIENIRUNLX1JFQURfQk9VTkRTKHNlbGYsIDgp
Ci0gICAgICAgIHZhbHVlID0gKHVpbnQ2NF90KSgqKHNlbGYtPnBvcykgJiAweDNGKSA8PCA1NiB8
Ci0gICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDEpKSA8PCA0OCB8Ci0g
ICAgICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDIpKSA8PCA0MCB8Ci0gICAg
ICAgICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDMpKSA8PCAzMiB8Ci0gICAgICAg
ICAgICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDQpKSA8PCAyNCB8Ci0gICAgICAgICAg
ICAgICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDUpKSA8PCAxNiB8Ci0gICAgICAgICAgICAg
ICAgKHVpbnQ2NF90KSgqKHNlbGYtPnBvcyArIDYpKSA8PCA4IHwKLSAgICAgICAgICAgICAgICAo
dWludDY0X3QpKCooc2VsZi0+cG9zICsgNykpOwotICAgICAgICBzZWxmLT5wb3MgKz0gODsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xv
bmcodmFsdWUpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotQnVmZmVyX3B1c2hfYnl0ZXMoQnVm
ZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBj
aGFyICpkYXRhOwotICAgIFB5X3NzaXplX3QgZGF0YV9sZW47Ci0gICAgaWYgKCFQeUFyZ19QYXJz
ZVR1cGxlKGFyZ3MsICJ5IyIsICZkYXRhLCAmZGF0YV9sZW4pKQotICAgICAgICByZXR1cm4gTlVM
TDsKLQotICAgIENIRUNLX1dSSVRFX0JPVU5EUyhzZWxmLCBkYXRhX2xlbikKLQotICAgIG1lbWNw
eShzZWxmLT5wb3MsIGRhdGEsIGRhdGFfbGVuKTsKLSAgICBzZWxmLT5wb3MgKz0gZGF0YV9sZW47
Ci0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfcHVz
aF91aW50OChCdWZmZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIHVpbnQ4
X3QgdmFsdWU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJCIiwgJnZhbHVlKSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBDSEVDS19XUklURV9CT1VORFMoc2VsZiwgMSkK
LQotICAgICooc2VsZi0+cG9zKyspID0gdmFsdWU7Ci0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0K
LXN0YXRpYyBQeU9iamVjdCAqCi1CdWZmZXJfcHVzaF91aW50MTYoQnVmZmVyT2JqZWN0ICpzZWxm
LCBQeU9iamVjdCAqYXJncykKLXsKLSAgICB1aW50MTZfdCB2YWx1ZTsKLSAgICBpZiAoIVB5QXJn
X1BhcnNlVHVwbGUoYXJncywgIkgiLCAmdmFsdWUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQot
ICAgIENIRUNLX1dSSVRFX0JPVU5EUyhzZWxmLCAyKQotCi0gICAgKihzZWxmLT5wb3MrKykgPSAo
dmFsdWUgPj4gOCk7Ci0gICAgKihzZWxmLT5wb3MrKykgPSB2YWx1ZTsKLSAgICBQeV9SRVRVUk5f
Tk9ORTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl9wdXNoX3VpbnQzMihCdWZmZXJP
YmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIHVpbnQzMl90IHZhbHVlOwotICAg
IGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSSIsICZ2YWx1ZSkpCi0gICAgICAgIHJldHVy
biBOVUxMOwotCi0gICAgQ0hFQ0tfV1JJVEVfQk9VTkRTKHNlbGYsIDQpCi0gICAgKihzZWxmLT5w
b3MrKykgPSAodmFsdWUgPj4gMjQpOwotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDE2
KTsKLSAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA4KTsKLSAgICAqKHNlbGYtPnBvcysr
KSA9IHZhbHVlOwotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgot
QnVmZmVyX3B1c2hfdWludDY0KEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17
Ci0gICAgdWludDY0X3QgdmFsdWU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJL
IiwgJnZhbHVlKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBDSEVDS19XUklURV9CT1VO
RFMoc2VsZiwgOCkKLSAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA1Nik7Ci0gICAgKihz
ZWxmLT5wb3MrKykgPSAodmFsdWUgPj4gNDgpOwotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVl
ID4+IDQwKTsKLSAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiAzMik7Ci0gICAgKihzZWxm
LT5wb3MrKykgPSAodmFsdWUgPj4gMjQpOwotICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+
IDE2KTsKLSAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA4KTsKLSAgICAqKHNlbGYtPnBv
cysrKSA9IHZhbHVlOwotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlPYmplY3Qg
KgotQnVmZmVyX3B1c2hfdWludF92YXIoQnVmZmVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn
cykKLXsKLSAgICB1aW50NjRfdCB2YWx1ZTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJn
cywgIksiLCAmdmFsdWUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICh2YWx1ZSA8
PSAweDNGKSB7Ci0gICAgICAgIENIRUNLX1dSSVRFX0JPVU5EUyhzZWxmLCAxKQotICAgICAgICAq
KHNlbGYtPnBvcysrKSA9IHZhbHVlOwotICAgICAgICBQeV9SRVRVUk5fTk9ORTsKLSAgICB9IGVs
c2UgaWYgKHZhbHVlIDw9IDB4M0ZGRikgewotICAgICAgICBDSEVDS19XUklURV9CT1VORFMoc2Vs
ZiwgMikKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFsdWUgPj4gOCkgfCAweDQwOwotICAg
ICAgICAqKHNlbGYtPnBvcysrKSA9IHZhbHVlOwotICAgICAgICBQeV9SRVRVUk5fTk9ORTsKLSAg
ICB9IGVsc2UgaWYgKHZhbHVlIDw9IDB4M0ZGRkZGRkYpIHsKLSAgICAgICAgQ0hFQ0tfV1JJVEVf
Qk9VTkRTKHNlbGYsIDQpCi0gICAgICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDI0KSB8
IDB4ODA7Ci0gICAgICAgICooc2VsZi0+cG9zKyspID0gKHZhbHVlID4+IDE2KTsKLSAgICAgICAg
KihzZWxmLT5wb3MrKykgPSAodmFsdWUgPj4gOCk7Ci0gICAgICAgICooc2VsZi0+cG9zKyspID0g
dmFsdWU7Ci0gICAgICAgIFB5X1JFVFVSTl9OT05FOwotICAgIH0gZWxzZSBpZiAodmFsdWUgPD0g
MHgzRkZGRkZGRkZGRkZGRkZGKSB7Ci0gICAgICAgIENIRUNLX1dSSVRFX0JPVU5EUyhzZWxmLCA4
KQotICAgICAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA1NikgfCAweEMwOwotICAgICAg
ICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiA0OCk7Ci0gICAgICAgICooc2VsZi0+cG9zKysp
ID0gKHZhbHVlID4+IDQwKTsKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFsdWUgPj4gMzIp
OwotICAgICAgICAqKHNlbGYtPnBvcysrKSA9ICh2YWx1ZSA+PiAyNCk7Ci0gICAgICAgICooc2Vs
Zi0+cG9zKyspID0gKHZhbHVlID4+IDE2KTsKLSAgICAgICAgKihzZWxmLT5wb3MrKykgPSAodmFs
dWUgPj4gOCk7Ci0gICAgICAgICooc2VsZi0+cG9zKyspID0gdmFsdWU7Ci0gICAgICAgIFB5X1JF
VFVSTl9OT05FOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19W
YWx1ZUVycm9yLCAiSW50ZWdlciBpcyB0b28gYmlnIGZvciBhIHZhcmlhYmxlLWxlbmd0aCBpbnRl
Z2VyIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLX0KLQotc3RhdGljIFB5T2JqZWN0
ICoKLUJ1ZmZlcl9zZWVrKEJ1ZmZlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0g
ICAgaW50IHBvczsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImkiLCAmcG9zKSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAocG9zIDwgMCB8fCBzZWxmLT5iYXNlICsg
cG9zID4gc2VsZi0+ZW5kKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhCdWZmZXJSZWFkRXJy
b3IsICJTZWVrIG91dCBvZiBib3VuZHMiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQot
Ci0gICAgc2VsZi0+cG9zID0gc2VsZi0+YmFzZSArIHBvczsKLSAgICBQeV9SRVRVUk5fTk9ORTsK
LX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLUJ1ZmZlcl90ZWxsKEJ1ZmZlck9iamVjdCAqc2VsZiwg
UHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChzZWxmLT5w
b3MgLSBzZWxmLT5iYXNlKTsKLX0KLQotc3RhdGljIFB5TWV0aG9kRGVmIEJ1ZmZlcl9tZXRob2Rz
W10gPSB7Ci0gICAgeyJkYXRhX3NsaWNlIiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9kYXRhX3NsaWNl
LCBNRVRIX1ZBUkFSR1MsICIifSwKLSAgICB7ImVvZiIsIChQeUNGdW5jdGlvbilCdWZmZXJfZW9m
LCBNRVRIX1ZBUkFSR1MsICIifSwKLSAgICB7InB1bGxfYnl0ZXMiLCAoUHlDRnVuY3Rpb24pQnVm
ZmVyX3B1bGxfYnl0ZXMsIE1FVEhfVkFSQVJHUywgIlB1bGwgYnl0ZXMuIn0sCi0gICAgeyJwdWxs
X3VpbnQ4IiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdWxsX3VpbnQ4LCBNRVRIX1ZBUkFSR1MsICJQ
dWxsIGFuIDgtYml0IHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJwdWxsX3VpbnQxNiIsIChQ
eUNGdW5jdGlvbilCdWZmZXJfcHVsbF91aW50MTYsIE1FVEhfVkFSQVJHUywgIlB1bGwgYSAxNi1i
aXQgdW5zaWduZWQgaW50ZWdlci4ifSwKLSAgICB7InB1bGxfdWludDMyIiwgKFB5Q0Z1bmN0aW9u
KUJ1ZmZlcl9wdWxsX3VpbnQzMiwgTUVUSF9WQVJBUkdTLCAiUHVsbCBhIDMyLWJpdCB1bnNpZ25l
ZCBpbnRlZ2VyLiJ9LAotICAgIHsicHVsbF91aW50NjQiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3B1
bGxfdWludDY0LCBNRVRIX1ZBUkFSR1MsICJQdWxsIGEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIu
In0sCi0gICAgeyJwdWxsX3VpbnRfdmFyIiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdWxsX3VpbnRf
dmFyLCBNRVRIX1ZBUkFSR1MsICJQdWxsIGEgUVVJQyB2YXJpYWJsZS1sZW5ndGggdW5zaWduZWQg
aW50ZWdlci4ifSwKLSAgICB7InB1c2hfYnl0ZXMiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3B1c2hf
Ynl0ZXMsIE1FVEhfVkFSQVJHUywgIlB1c2ggYnl0ZXMuIn0sCi0gICAgeyJwdXNoX3VpbnQ4Iiwg
KFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdXNoX3VpbnQ4LCBNRVRIX1ZBUkFSR1MsICJQdXNoIGFuIDgt
Yml0IHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAgeyJwdXNoX3VpbnQxNiIsIChQeUNGdW5jdGlv
bilCdWZmZXJfcHVzaF91aW50MTYsIE1FVEhfVkFSQVJHUywgIlB1c2ggYSAxNi1iaXQgdW5zaWdu
ZWQgaW50ZWdlci4ifSwKLSAgICB7InB1c2hfdWludDMyIiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9w
dXNoX3VpbnQzMiwgTUVUSF9WQVJBUkdTLCAiUHVzaCBhIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2Vy
LiJ9LAotICAgIHsicHVzaF91aW50NjQiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3B1c2hfdWludDY0
LCBNRVRIX1ZBUkFSR1MsICJQdXNoIGEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIuIn0sCi0gICAg
eyJwdXNoX3VpbnRfdmFyIiwgKFB5Q0Z1bmN0aW9uKUJ1ZmZlcl9wdXNoX3VpbnRfdmFyLCBNRVRI
X1ZBUkFSR1MsICJQdXNoIGEgUVVJQyB2YXJpYWJsZS1sZW5ndGggdW5zaWduZWQgaW50ZWdlci4i
fSwKLSAgICB7InNlZWsiLCAoUHlDRnVuY3Rpb24pQnVmZmVyX3NlZWssIE1FVEhfVkFSQVJHUywg
IiJ9LAotICAgIHsidGVsbCIsIChQeUNGdW5jdGlvbilCdWZmZXJfdGVsbCwgTUVUSF9WQVJBUkdT
LCAiIn0sCi0gICAge05VTEx9Ci19OwotCi1zdGF0aWMgUHlPYmplY3QqCi1CdWZmZXJfY2FwYWNp
dHlfZ2V0dGVyKEJ1ZmZlck9iamVjdCogc2VsZiwgdm9pZCAqY2xvc3VyZSkgewotICAgIHJldHVy
biBQeUxvbmdfRnJvbVNzaXplX3Qoc2VsZi0+ZW5kIC0gc2VsZi0+YmFzZSk7Ci19Ci0KLXN0YXRp
YyBQeU9iamVjdCoKLUJ1ZmZlcl9kYXRhX2dldHRlcihCdWZmZXJPYmplY3QqIHNlbGYsIHZvaWQg
KmNsb3N1cmUpIHsKLSAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY29uc3Qg
Y2hhciopc2VsZi0+YmFzZSwgc2VsZi0+cG9zIC0gc2VsZi0+YmFzZSk7Ci19Ci0KLXN0YXRpYyBQ
eUdldFNldERlZiBCdWZmZXJfZ2V0c2V0W10gPSB7Ci0gICAgeyJjYXBhY2l0eSIsIChnZXR0ZXIp
IEJ1ZmZlcl9jYXBhY2l0eV9nZXR0ZXIsIE5VTEwsICIiLCBOVUxMIH0sCi0gICAgeyJkYXRhIiwg
KGdldHRlcikgQnVmZmVyX2RhdGFfZ2V0dGVyLCBOVUxMLCAiIiwgTlVMTCB9LAotICAgIHtOVUxM
fQotfTsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBCdWZmZXJUeXBlID0gewotICAgIFB5VmFyT2Jq
ZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgIE1PRFVMRV9OQU1FICIuQnVmZmVyIiwgICAgICAg
ICAgICAgIC8qIHRwX25hbWUgKi8KLSAgICBzaXplb2YoQnVmZmVyT2JqZWN0KSwgICAgICAgICAg
ICAgICAvKiB0cF9iYXNpY3NpemUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwotICAgIChkZXN0cnVjdG9yKUJ1ZmZlcl9kZWFsbG9j
LCAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9wcmludCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9yZXByICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAwLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCi0gICAgMCwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAgKi8KLSAgICAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCi0gICAgMCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCi0gICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KLSAgICAwLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLwotICAgIDAsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwotICAgIFB5X1RQRkxBR1Nf
REVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCi0gICAgIkJ1ZmZlciBvYmpl
Y3RzIiwgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCi0gICAgMCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLwotICAgIDAsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAw
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCi0gICAgMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KLSAgICBC
dWZmZXJfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwotICAg
IEJ1ZmZlcl9nZXRzZXQsICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwotICAg
IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KLSAgICAw
LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCi0gICAgMCwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCi0gICAg
MCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCi0g
ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAq
LwotICAgIChpbml0cHJvYylCdWZmZXJfaW5pdCwgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8K
LSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLwot
fTsKLQotCi1zdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIG1vZHVsZWRlZiA9IHsKLSAgICBQeU1v
ZHVsZURlZl9IRUFEX0lOSVQsCi0gICAgTU9EVUxFX05BTUUsICAgICAgICAgICAgICAgICAgICAg
ICAgLyogbV9uYW1lICovCi0gICAgIkEgZmFzdGVyIGJ1ZmZlci4iLCAgICAgICAgICAgICAgICAg
LyogbV9kb2MgKi8KLSAgICAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBt
X3NpemUgKi8KLSAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtX21l
dGhvZHMgKi8KLSAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtX3Jl
bG9hZCAqLwotICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1fdHJh
dmVyc2UgKi8KLSAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtX2Ns
ZWFyICovCi0gICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbV9mcmVl
ICovCi19OwotCi0KLVB5TU9ESU5JVF9GVU5DCi1QeUluaXRfX2J1ZmZlcih2b2lkKQotewotICAg
IFB5T2JqZWN0KiBtOwotCi0gICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmbW9kdWxlZGVmKTsKLSAg
ICBpZiAobSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIEJ1ZmZlclJlYWRF
cnJvciA9IFB5RXJyX05ld0V4Y2VwdGlvbihNT0RVTEVfTkFNRSAiLkJ1ZmZlclJlYWRFcnJvciIs
IFB5RXhjX1ZhbHVlRXJyb3IsIE5VTEwpOwotICAgIFB5X0lOQ1JFRihCdWZmZXJSZWFkRXJyb3Ip
OwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQnVmZmVyUmVhZEVycm9yIiwgQnVmZmVyUmVh
ZEVycm9yKTsKLQotICAgIEJ1ZmZlcldyaXRlRXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oTU9E
VUxFX05BTUUgIi5CdWZmZXJXcml0ZUVycm9yIiwgUHlFeGNfVmFsdWVFcnJvciwgTlVMTCk7Ci0g
ICAgUHlfSU5DUkVGKEJ1ZmZlcldyaXRlRXJyb3IpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdCht
LCAiQnVmZmVyV3JpdGVFcnJvciIsIEJ1ZmZlcldyaXRlRXJyb3IpOwotCi0gICAgQnVmZmVyVHlw
ZS50cF9uZXcgPSBQeVR5cGVfR2VuZXJpY05ldzsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZCdWZm
ZXJUeXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5X0lOQ1JFRigmQnVmZmVy
VHlwZSk7Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJCdWZmZXIiLCAoUHlPYmplY3QgKikm
QnVmZmVyVHlwZSk7Ci0KLSAgICByZXR1cm4gbTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9fYnVmZmVyLnB5aSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9fYnVm
ZmVyLnB5aQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZlNDNjY2EzYTUxOGZmNzVl
MjEzZDNkZWRmNThiMWIwYzc3YzYwZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2J1ZmZlci5weWkKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKLQot
Y2xhc3MgQnVmZmVyUmVhZEVycm9yKFZhbHVlRXJyb3IpOiAuLi4KLWNsYXNzIEJ1ZmZlcldyaXRl
RXJyb3IoVmFsdWVFcnJvcik6IC4uLgotCi1jbGFzcyBCdWZmZXI6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGNhcGFjaXR5OiBPcHRpb25hbFtpbnRdID0gMCwgZGF0YTogT3B0aW9uYWxbYnl0ZXNd
ID0gTm9uZSk6IC4uLgotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjYXBhY2l0eShzZWxmKSAtPiBp
bnQ6IC4uLgotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBkYXRhKHNlbGYpIC0+IGJ5dGVzOiAuLi4K
LSAgICBkZWYgZGF0YV9zbGljZShzZWxmLCBzdGFydDogaW50LCBlbmQ6IGludCkgLT4gYnl0ZXM6
IC4uLgotICAgIGRlZiBlb2Yoc2VsZikgLT4gYm9vbDogLi4uCi0gICAgZGVmIHNlZWsoc2VsZiwg
cG9zOiBpbnQpIC0+IE5vbmU6IC4uLgotICAgIGRlZiB0ZWxsKHNlbGYpIC0+IGludDogLi4uCi0g
ICAgZGVmIHB1bGxfYnl0ZXMoc2VsZiwgbGVuZ3RoOiBpbnQpIC0+IGJ5dGVzOiAuLi4KLSAgICBk
ZWYgcHVsbF91aW50OChzZWxmKSAtPiBpbnQ6IC4uLgotICAgIGRlZiBwdWxsX3VpbnQxNihzZWxm
KSAtPiBpbnQ6IC4uLgotICAgIGRlZiBwdWxsX3VpbnQzMihzZWxmKSAtPiBpbnQ6IC4uLgotICAg
IGRlZiBwdWxsX3VpbnQ2NChzZWxmKSAtPiBpbnQ6IC4uLgotICAgIGRlZiBwdWxsX3VpbnRfdmFy
KHNlbGYpIC0+IGludDogLi4uCi0gICAgZGVmIHB1c2hfYnl0ZXMoc2VsZiwgdmFsdWU6IGJ5dGVz
KSAtPiBOb25lOiAuLi4KLSAgICBkZWYgcHVzaF91aW50OChzZWxmLCB2YWx1ZTogaW50KSAtPiBO
b25lOiAuLi4KLSAgICBkZWYgcHVzaF91aW50MTYoc2VsZiwgdmFsdWU6IGludCkgLT4gTm9uZTog
Li4uCi0gICAgZGVmIHB1c2hfdWludDMyKHNlbGYsIHY6IGludCkgLT4gTm9uZTogLi4uCi0gICAg
ZGVmIHB1c2hfdWludDY0KHNlbGYsIHY6IGludCkgLT4gTm9uZTogLi4uCi0gICAgZGVmIHB1c2hf
dWludF92YXIoc2VsZiwgdmFsdWU6IGludCkgLT4gTm9uZTogLi4uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2NyeXB0by5jIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L19jcnlwdG8uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUxNTU0ZDRiMjEzY2Qw
N2ZjZWRmOGEzOTMwNGNkNjIwMDQ0ZjE2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX2NyeXB0by5jCisrKyAv
ZGV2L251bGwKQEAgLTEsNDU1ICswLDAgQEAKLSNkZWZpbmUgUFlfU1NJWkVfVF9DTEVBTgotCi0j
aW5jbHVkZSA8UHl0aG9uLmg+Ci0jaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KLSNpbmNsdWRlIDxv
cGVuc3NsL2V2cC5oPgotCi0jZGVmaW5lIE1PRFVMRV9OQU1FICJhaW9xdWljLl9jcnlwdG8iCi0K
LSNkZWZpbmUgQUVBRF9LRVlfTEVOR1RIX01BWCAzMgotI2RlZmluZSBBRUFEX05PTkNFX0xFTkdU
SCAxMgotI2RlZmluZSBBRUFEX1RBR19MRU5HVEggMTYKLQotI2RlZmluZSBQQUNLRVRfTEVOR1RI
X01BWCAxNTAwCi0jZGVmaW5lIFBBQ0tFVF9OVU1CRVJfTEVOR1RIX01BWCA0Ci0jZGVmaW5lIFNB
TVBMRV9MRU5HVEggMTYKLQotI2RlZmluZSBDSEVDS19SRVNVTFQoZXhwcikgXAotICAgIGlmICgh
KGV4cHIpKSB7IFwKLSAgICAgICAgRVJSX2NsZWFyX2Vycm9yKCk7IFwKLSAgICAgICAgUHlFcnJf
U2V0U3RyaW5nKENyeXB0b0Vycm9yLCAiT3BlblNTTCBjYWxsIGZhaWxlZCIpOyBcCi0gICAgICAg
IHJldHVybiBOVUxMOyBcCi0gICAgfQotCi0jZGVmaW5lIENIRUNLX1JFU1VMVF9DVE9SKGV4cHIp
IFwKLSAgICBpZiAoIShleHByKSkgeyBcCi0gICAgICAgIEVSUl9jbGVhcl9lcnJvcigpOyBcCi0g
ICAgICAgIFB5RXJyX1NldFN0cmluZyhDcnlwdG9FcnJvciwgIk9wZW5TU0wgY2FsbCBmYWlsZWQi
KTsgXAotICAgICAgICByZXR1cm4gLTE7IFwKLSAgICB9Ci0KLXN0YXRpYyBQeU9iamVjdCAqQ3J5
cHRvRXJyb3I7Ci0KLS8qIEFFQUQgKi8KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIFB5T2JqZWN0
X0hFQUQKLSAgICBFVlBfQ0lQSEVSX0NUWCAqZGVjcnlwdF9jdHg7Ci0gICAgRVZQX0NJUEhFUl9D
VFggKmVuY3J5cHRfY3R4OwotICAgIHVuc2lnbmVkIGNoYXIgYnVmZmVyW1BBQ0tFVF9MRU5HVEhf
TUFYXTsKLSAgICB1bnNpZ25lZCBjaGFyIGtleVtBRUFEX0tFWV9MRU5HVEhfTUFYXTsKLSAgICB1
bnNpZ25lZCBjaGFyIGl2W0FFQURfTk9OQ0VfTEVOR1RIXTsKLSAgICB1bnNpZ25lZCBjaGFyIG5v
bmNlW0FFQURfTk9OQ0VfTEVOR1RIXTsKLX0gQUVBRE9iamVjdDsKLQotc3RhdGljIEVWUF9DSVBI
RVJfQ1RYICoKLWNyZWF0ZV9jdHgoY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyLCBpbnQga2V5X2xl
bmd0aCwgaW50IG9wZXJhdGlvbikKLXsKLSAgICBFVlBfQ0lQSEVSX0NUWCAqY3R4OwotICAgIGlu
dCByZXM7Ci0KLSAgICBjdHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKLSAgICBDSEVDS19SRVNV
TFQoY3R4ICE9IDApOwotCi0gICAgcmVzID0gRVZQX0NpcGhlckluaXRfZXgoY3R4LCBjaXBoZXIs
IE5VTEwsIE5VTEwsIE5VTEwsIG9wZXJhdGlvbik7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAw
KTsKLQotICAgIHJlcyA9IEVWUF9DSVBIRVJfQ1RYX3NldF9rZXlfbGVuZ3RoKGN0eCwga2V5X2xl
bmd0aCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DSVBI
RVJfQ1RYX2N0cmwoY3R4LCBFVlBfQ1RSTF9DQ01fU0VUX0lWTEVOLCBBRUFEX05PTkNFX0xFTkdU
SCwgTlVMTCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQotICAgIHJldHVybiBjdHg7
Ci19Ci0KLXN0YXRpYyBpbnQKLUFFQURfaW5pdChBRUFET2JqZWN0ICpzZWxmLCBQeU9iamVjdCAq
YXJncywgUHlPYmplY3QgKmt3YXJncykKLXsKLSAgICBjb25zdCBjaGFyICpjaXBoZXJfbmFtZTsK
LSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksICppdjsKLSAgICBQeV9zc2l6ZV90IGNpcGhl
cl9uYW1lX2xlbiwga2V5X2xlbiwgaXZfbGVuOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxl
KGFyZ3MsICJ5I3kjeSMiLCAmY2lwaGVyX25hbWUsICZjaXBoZXJfbmFtZV9sZW4sICZrZXksICZr
ZXlfbGVuLCAmaXYsICZpdl9sZW4pKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBjb25zdCBF
VlBfQ0lQSEVSICpldnBfY2lwaGVyID0gRVZQX2dldF9jaXBoZXJieW5hbWUoY2lwaGVyX25hbWUp
OwotICAgIGlmIChldnBfY2lwaGVyID09IDApIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KENyeXB0
b0Vycm9yLCAiSW52YWxpZCBjaXBoZXIgbmFtZTogJXMiLCBjaXBoZXJfbmFtZSk7Ci0gICAgICAg
IHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKGtleV9sZW4gPiBBRUFEX0tFWV9MRU5HVEhfTUFY
KSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhDcnlwdG9FcnJvciwgIkludmFsaWQga2V5IGxl
bmd0aCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmIChpdl9sZW4gPiBBRUFE
X05PTkNFX0xFTkdUSCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoQ3J5cHRvRXJyb3IsICJJ
bnZhbGlkIGl2IGxlbmd0aCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgbWVt
Y3B5KHNlbGYtPmtleSwga2V5LCBrZXlfbGVuKTsKLSAgICBtZW1jcHkoc2VsZi0+aXYsIGl2LCBp
dl9sZW4pOwotCi0gICAgc2VsZi0+ZGVjcnlwdF9jdHggPSBjcmVhdGVfY3R4KGV2cF9jaXBoZXIs
IGtleV9sZW4sIDApOwotICAgIENIRUNLX1JFU1VMVF9DVE9SKHNlbGYtPmRlY3J5cHRfY3R4ICE9
IDApOwotCi0gICAgc2VsZi0+ZW5jcnlwdF9jdHggPSBjcmVhdGVfY3R4KGV2cF9jaXBoZXIsIGtl
eV9sZW4sIDEpOwotICAgIENIRUNLX1JFU1VMVF9DVE9SKHNlbGYtPmVuY3J5cHRfY3R4ICE9IDAp
OwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkCi1BRUFEX2RlYWxsb2MoQUVBRE9i
amVjdCAqc2VsZikKLXsKLSAgICBFVlBfQ0lQSEVSX0NUWF9mcmVlKHNlbGYtPmRlY3J5cHRfY3R4
KTsKLSAgICBFVlBfQ0lQSEVSX0NUWF9mcmVlKHNlbGYtPmVuY3J5cHRfY3R4KTsKLX0KLQotc3Rh
dGljIFB5T2JqZWN0KgotQUVBRF9kZWNyeXB0KEFFQURPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph
cmdzKQotewotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsICphc3NvY2lhdGVkOwotICAg
IFB5X3NzaXplX3QgZGF0YV9sZW4sIGFzc29jaWF0ZWRfbGVuOwotICAgIGludCBvdXRsZW4sIG91
dGxlbjIsIHJlczsKLSAgICB1aW50NjRfdCBwbjsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBs
ZShhcmdzLCAieSN5I0siLCAmZGF0YSwgJmRhdGFfbGVuLCAmYXNzb2NpYXRlZCwgJmFzc29jaWF0
ZWRfbGVuLCAmcG4pKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChkYXRhX2xlbiA8
IEFFQURfVEFHX0xFTkdUSCB8fCBkYXRhX2xlbiA+IFBBQ0tFVF9MRU5HVEhfTUFYKSB7Ci0gICAg
ICAgIFB5RXJyX1NldFN0cmluZyhDcnlwdG9FcnJvciwgIkludmFsaWQgcGF5bG9hZCBsZW5ndGgi
KTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgbWVtY3B5KHNlbGYtPm5vbmNl
LCBzZWxmLT5pdiwgQUVBRF9OT05DRV9MRU5HVEgpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
ODsgKytpKSB7Ci0gICAgICAgIHNlbGYtPm5vbmNlW0FFQURfTk9OQ0VfTEVOR1RIIC0gMSAtIGld
IF49ICh1aW50OF90KShwbiA+PiA4ICogaSk7Ci0gICAgfQotCi0gICAgcmVzID0gRVZQX0NJUEhF
Ul9DVFhfY3RybChzZWxmLT5kZWNyeXB0X2N0eCwgRVZQX0NUUkxfQ0NNX1NFVF9UQUcsIEFFQURf
VEFHX0xFTkdUSCwgKHZvaWQqKShkYXRhICsgKGRhdGFfbGVuIC0gQUVBRF9UQUdfTEVOR1RIKSkp
OwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVySW5p
dF9leChzZWxmLT5kZWNyeXB0X2N0eCwgTlVMTCwgTlVMTCwgc2VsZi0+a2V5LCBzZWxmLT5ub25j
ZSwgMCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DaXBo
ZXJVcGRhdGUoc2VsZi0+ZGVjcnlwdF9jdHgsIE5VTEwsICZvdXRsZW4sIGFzc29jaWF0ZWQsIGFz
c29jaWF0ZWRfbGVuKTsKLSAgICBDSEVDS19SRVNVTFQocmVzICE9IDApOwotCi0gICAgcmVzID0g
RVZQX0NpcGhlclVwZGF0ZShzZWxmLT5kZWNyeXB0X2N0eCwgc2VsZi0+YnVmZmVyLCAmb3V0bGVu
LCBkYXRhLCBkYXRhX2xlbiAtIEFFQURfVEFHX0xFTkdUSCk7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJl
cyAhPSAwKTsKLQotICAgIHJlcyA9IEVWUF9DaXBoZXJGaW5hbF9leChzZWxmLT5kZWNyeXB0X2N0
eCwgTlVMTCwgJm91dGxlbjIpOwotICAgIGlmIChyZXMgPT0gMCkgewotICAgICAgICBQeUVycl9T
ZXRTdHJpbmcoQ3J5cHRvRXJyb3IsICJQYXlsb2FkIGRlY3J5cHRpb24gZmFpbGVkIik7Ci0gICAg
ICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmdB
bmRTaXplKChjb25zdCBjaGFyKilzZWxmLT5idWZmZXIsIG91dGxlbik7Ci19Ci0KLXN0YXRpYyBQ
eU9iamVjdCoKLUFFQURfZW5jcnlwdChBRUFET2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykK
LXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCAqYXNzb2NpYXRlZDsKLSAgICBQeV9z
c2l6ZV90IGRhdGFfbGVuLCBhc3NvY2lhdGVkX2xlbjsKLSAgICBpbnQgb3V0bGVuLCBvdXRsZW4y
LCByZXM7Ci0gICAgdWludDY0X3QgcG47Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJn
cywgInkjeSNLIiwgJmRhdGEsICZkYXRhX2xlbiwgJmFzc29jaWF0ZWQsICZhc3NvY2lhdGVkX2xl
biwgJnBuKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAoZGF0YV9sZW4gPiBQQUNL
RVRfTEVOR1RIX01BWCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoQ3J5cHRvRXJyb3IsICJJ
bnZhbGlkIHBheWxvYWQgbGVuZ3RoIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQot
ICAgIG1lbWNweShzZWxmLT5ub25jZSwgc2VsZi0+aXYsIEFFQURfTk9OQ0VfTEVOR1RIKTsKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgewotICAgICAgICBzZWxmLT5ub25jZVtBRUFE
X05PTkNFX0xFTkdUSCAtIDEgLSBpXSBePSAodWludDhfdCkocG4gPj4gOCAqIGkpOwotICAgIH0K
LQotICAgIHJlcyA9IEVWUF9DaXBoZXJJbml0X2V4KHNlbGYtPmVuY3J5cHRfY3R4LCBOVUxMLCBO
VUxMLCBzZWxmLT5rZXksIHNlbGYtPm5vbmNlLCAxKTsKLSAgICBDSEVDS19SRVNVTFQocmVzICE9
IDApOwotCi0gICAgcmVzID0gRVZQX0NpcGhlclVwZGF0ZShzZWxmLT5lbmNyeXB0X2N0eCwgTlVM
TCwgJm91dGxlbiwgYXNzb2NpYXRlZCwgYXNzb2NpYXRlZF9sZW4pOwotICAgIENIRUNLX1JFU1VM
VChyZXMgIT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVyVXBkYXRlKHNlbGYtPmVuY3J5cHRf
Y3R4LCBzZWxmLT5idWZmZXIsICZvdXRsZW4sIGRhdGEsIGRhdGFfbGVuKTsKLSAgICBDSEVDS19S
RVNVTFQocmVzICE9IDApOwotCi0gICAgcmVzID0gRVZQX0NpcGhlckZpbmFsX2V4KHNlbGYtPmVu
Y3J5cHRfY3R4LCBOVUxMLCAmb3V0bGVuMik7Ci0gICAgQ0hFQ0tfUkVTVUxUKHJlcyAhPSAwICYm
IG91dGxlbjIgPT0gMCk7Ci0KLSAgICByZXMgPSBFVlBfQ0lQSEVSX0NUWF9jdHJsKHNlbGYtPmVu
Y3J5cHRfY3R4LCBFVlBfQ1RSTF9DQ01fR0VUX1RBRywgQUVBRF9UQUdfTEVOR1RILCBzZWxmLT5i
dWZmZXIgKyBvdXRsZW4pOwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0gMCk7Ci0KLSAgICByZXR1
cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY29uc3QgY2hhciopc2VsZi0+YnVmZmVyLCBv
dXRsZW4gKyBBRUFEX1RBR19MRU5HVEgpOwotfQotCi1zdGF0aWMgUHlNZXRob2REZWYgQUVBRF9t
ZXRob2RzW10gPSB7Ci0gICAgeyJkZWNyeXB0IiwgKFB5Q0Z1bmN0aW9uKUFFQURfZGVjcnlwdCwg
TUVUSF9WQVJBUkdTLCAiIn0sCi0gICAgeyJlbmNyeXB0IiwgKFB5Q0Z1bmN0aW9uKUFFQURfZW5j
cnlwdCwgTUVUSF9WQVJBUkdTLCAiIn0sCi0KLSAgICB7TlVMTH0KLX07Ci0KLXN0YXRpYyBQeVR5
cGVPYmplY3QgQUVBRFR5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDAp
Ci0gICAgTU9EVUxFX05BTUUgIi5BRUFEIiwgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLwot
ICAgIHNpemVvZihBRUFET2JqZWN0KSwgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXpl
ICovCi0gICAgKGRlc3RydWN0b3IpQUVBRF9kZWFsbG9jLCAgICAgICAgICAgLyogdHBfZGVhbGxv
YyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50
ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0
ciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0
dHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNl
cnZlZCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jl
cHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19u
dW1iZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9h
c19zZXF1ZW5jZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IHRwX2FzX21hcHBpbmcgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiB0cF9oYXNoICAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIHRwX2NhbGwgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiB0cF9zdHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0
cF9nZXRhdHRybyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IHRwX3NldGF0dHJvICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogdHBfYXNfYnVmZmVyICovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAg
ICAgLyogdHBfZmxhZ3MgKi8KLSAgICAiQUVBRCBvYmplY3RzIiwgICAgICAgICAgICAgICAgICAg
ICAvKiB0cF9kb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiB0cF90cmF2ZXJzZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIHRwX2NsZWFyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogdHBfcmljaGNvbXBhcmUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIEFFQURfbWV0aG9kcywgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCi0gICAgKGluaXRwcm9jKUFFQURf
aW5pdCwgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLwotICAgIDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCi19OwotCi0vKiBIZWFkZXJQcm90ZWN0
aW9uICovCi0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBQeU9iamVjdF9IRUFECi0gICAgRVZQX0NJ
UEhFUl9DVFggKmN0eDsKLSAgICBpbnQgaXNfY2hhY2hhMjA7Ci0gICAgdW5zaWduZWQgY2hhciBi
dWZmZXJbUEFDS0VUX0xFTkdUSF9NQVhdOwotICAgIHVuc2lnbmVkIGNoYXIgbWFza1szMV07Ci0g
ICAgdW5zaWduZWQgY2hhciB6ZXJvWzVdOwotfSBIZWFkZXJQcm90ZWN0aW9uT2JqZWN0OwotCi1z
dGF0aWMgaW50Ci1IZWFkZXJQcm90ZWN0aW9uX2luaXQoSGVhZGVyUHJvdGVjdGlvbk9iamVjdCAq
c2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCi17Ci0gICAgY29uc3QgY2hh
ciAqY2lwaGVyX25hbWU7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5OwotICAgIFB5X3Nz
aXplX3QgY2lwaGVyX25hbWVfbGVuLCBrZXlfbGVuOwotICAgIGludCByZXM7Ci0KLSAgICBpZiAo
IVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkjeSMiLCAmY2lwaGVyX25hbWUsICZjaXBoZXJfbmFt
ZV9sZW4sICZrZXksICZrZXlfbGVuKSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgY29uc3Qg
RVZQX0NJUEhFUiAqZXZwX2NpcGhlciA9IEVWUF9nZXRfY2lwaGVyYnluYW1lKGNpcGhlcl9uYW1l
KTsKLSAgICBpZiAoZXZwX2NpcGhlciA9PSAwKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChDcnlw
dG9FcnJvciwgIkludmFsaWQgY2lwaGVyIG5hbWU6ICVzIiwgY2lwaGVyX25hbWUpOwotICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgbWVtc2V0KHNlbGYtPm1hc2ssIDAsIHNpemVvZihz
ZWxmLT5tYXNrKSk7Ci0gICAgbWVtc2V0KHNlbGYtPnplcm8sIDAsIHNpemVvZihzZWxmLT56ZXJv
KSk7Ci0gICAgc2VsZi0+aXNfY2hhY2hhMjAgPSBjaXBoZXJfbmFtZV9sZW4gPT0gOCAmJiBtZW1j
bXAoY2lwaGVyX25hbWUsICJjaGFjaGEyMCIsIDgpID09IDA7Ci0KLSAgICBzZWxmLT5jdHggPSBF
VlBfQ0lQSEVSX0NUWF9uZXcoKTsKLSAgICBDSEVDS19SRVNVTFRfQ1RPUihzZWxmLT5jdHggIT0g
MCk7Ci0KLSAgICByZXMgPSBFVlBfQ2lwaGVySW5pdF9leChzZWxmLT5jdHgsIGV2cF9jaXBoZXIs
IE5VTEwsIE5VTEwsIE5VTEwsIDEpOwotICAgIENIRUNLX1JFU1VMVF9DVE9SKHJlcyAhPSAwKTsK
LQotICAgIHJlcyA9IEVWUF9DSVBIRVJfQ1RYX3NldF9rZXlfbGVuZ3RoKHNlbGYtPmN0eCwga2V5
X2xlbik7Ci0gICAgQ0hFQ0tfUkVTVUxUX0NUT1IocmVzICE9IDApOwotCi0gICAgcmVzID0gRVZQ
X0NpcGhlckluaXRfZXgoc2VsZi0+Y3R4LCBOVUxMLCBOVUxMLCBrZXksIE5VTEwsIDEpOwotICAg
IENIRUNLX1JFU1VMVF9DVE9SKHJlcyAhPSAwKTsKLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0
aWMgdm9pZAotSGVhZGVyUHJvdGVjdGlvbl9kZWFsbG9jKEhlYWRlclByb3RlY3Rpb25PYmplY3Qg
KnNlbGYpCi17Ci0gICAgRVZQX0NJUEhFUl9DVFhfZnJlZShzZWxmLT5jdHgpOwotfQotCi1zdGF0
aWMgaW50IEhlYWRlclByb3RlY3Rpb25fbWFzayhIZWFkZXJQcm90ZWN0aW9uT2JqZWN0ICpzZWxm
LCBjb25zdCB1bnNpZ25lZCBjaGFyKiBzYW1wbGUpCi17Ci0gICAgaW50IG91dGxlbjsKLSAgICBp
ZiAoc2VsZi0+aXNfY2hhY2hhMjApIHsKLSAgICAgICAgcmV0dXJuIEVWUF9DaXBoZXJJbml0X2V4
KHNlbGYtPmN0eCwgTlVMTCwgTlVMTCwgTlVMTCwgc2FtcGxlLCAxKSAmJgotICAgICAgICAgICAg
ICAgRVZQX0NpcGhlclVwZGF0ZShzZWxmLT5jdHgsIHNlbGYtPm1hc2ssICZvdXRsZW4sIHNlbGYt
Pnplcm8sIHNpemVvZihzZWxmLT56ZXJvKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJu
IEVWUF9DaXBoZXJVcGRhdGUoc2VsZi0+Y3R4LCBzZWxmLT5tYXNrLCAmb3V0bGVuLCBzYW1wbGUs
IFNBTVBMRV9MRU5HVEgpOwotICAgIH0KLX0KLQotc3RhdGljIFB5T2JqZWN0KgotSGVhZGVyUHJv
dGVjdGlvbl9hcHBseShIZWFkZXJQcm90ZWN0aW9uT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn
cykKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoZWFkZXIsICpwYXlsb2FkOwotICAgIFB5
X3NzaXplX3QgaGVhZGVyX2xlbiwgcGF5bG9hZF9sZW47Ci0gICAgaW50IHJlczsKLQotICAgIGlm
ICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSN5IyIsICZoZWFkZXIsICZoZWFkZXJfbGVuLCAm
cGF5bG9hZCwgJnBheWxvYWRfbGVuKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpbnQg
cG5fbGVuZ3RoID0gKGhlYWRlclswXSAmIDB4MDMpICsgMTsKLSAgICBpbnQgcG5fb2Zmc2V0ID0g
aGVhZGVyX2xlbiAtIHBuX2xlbmd0aDsKLQotICAgIHJlcyA9IEhlYWRlclByb3RlY3Rpb25fbWFz
ayhzZWxmLCBwYXlsb2FkICsgUEFDS0VUX05VTUJFUl9MRU5HVEhfTUFYIC0gcG5fbGVuZ3RoKTsK
LSAgICBDSEVDS19SRVNVTFQocmVzICE9IDApOwotCi0gICAgbWVtY3B5KHNlbGYtPmJ1ZmZlciwg
aGVhZGVyLCBoZWFkZXJfbGVuKTsKLSAgICBtZW1jcHkoc2VsZi0+YnVmZmVyICsgaGVhZGVyX2xl
biwgcGF5bG9hZCwgcGF5bG9hZF9sZW4pOwotCi0gICAgaWYgKHNlbGYtPmJ1ZmZlclswXSAmIDB4
ODApIHsKLSAgICAgICAgc2VsZi0+YnVmZmVyWzBdIF49IHNlbGYtPm1hc2tbMF0gJiAweDBGOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlbGYtPmJ1ZmZlclswXSBePSBzZWxmLT5tYXNrWzBdICYg
MHgxRjsKLSAgICB9Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHBuX2xlbmd0aDsgKytpKSB7
Ci0gICAgICAgIHNlbGYtPmJ1ZmZlcltwbl9vZmZzZXQgKyBpXSBePSBzZWxmLT5tYXNrWzEgKyBp
XTsKLSAgICB9Ci0KLSAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY29uc3Qg
Y2hhciopc2VsZi0+YnVmZmVyLCBoZWFkZXJfbGVuICsgcGF5bG9hZF9sZW4pOwotfQotCi1zdGF0
aWMgUHlPYmplY3QqCi1IZWFkZXJQcm90ZWN0aW9uX3JlbW92ZShIZWFkZXJQcm90ZWN0aW9uT2Jq
ZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpw
YWNrZXQ7Ci0gICAgUHlfc3NpemVfdCBwYWNrZXRfbGVuOwotICAgIGludCBwbl9vZmZzZXQsIHJl
czsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSNJIiwgJnBhY2tldCwgJnBh
Y2tldF9sZW4sICZwbl9vZmZzZXQpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHJlcyA9
IEhlYWRlclByb3RlY3Rpb25fbWFzayhzZWxmLCBwYWNrZXQgKyBwbl9vZmZzZXQgKyBQQUNLRVRf
TlVNQkVSX0xFTkdUSF9NQVgpOwotICAgIENIRUNLX1JFU1VMVChyZXMgIT0gMCk7Ci0KLSAgICBt
ZW1jcHkoc2VsZi0+YnVmZmVyLCBwYWNrZXQsIHBuX29mZnNldCArIFBBQ0tFVF9OVU1CRVJfTEVO
R1RIX01BWCk7Ci0KLSAgICBpZiAoc2VsZi0+YnVmZmVyWzBdICYgMHg4MCkgewotICAgICAgICBz
ZWxmLT5idWZmZXJbMF0gXj0gc2VsZi0+bWFza1swXSAmIDB4MEY7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgc2VsZi0+YnVmZmVyWzBdIF49IHNlbGYtPm1hc2tbMF0gJiAweDFGOwotICAgIH0KLQot
ICAgIGludCBwbl9sZW5ndGggPSAoc2VsZi0+YnVmZmVyWzBdICYgMHgwMykgKyAxOwotICAgIHVp
bnQzMl90IHBuX3RydW5jYXRlZCA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwbl9sZW5n
dGg7ICsraSkgewotICAgICAgICBzZWxmLT5idWZmZXJbcG5fb2Zmc2V0ICsgaV0gXj0gc2VsZi0+
bWFza1sxICsgaV07Ci0gICAgICAgIHBuX3RydW5jYXRlZCA9IHNlbGYtPmJ1ZmZlcltwbl9vZmZz
ZXQgKyBpXSB8IChwbl90cnVuY2F0ZWQgPDwgOCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFB5X0J1
aWxkVmFsdWUoInkjaSIsIHNlbGYtPmJ1ZmZlciwgcG5fb2Zmc2V0ICsgcG5fbGVuZ3RoLCBwbl90
cnVuY2F0ZWQpOwotfQotCi1zdGF0aWMgUHlNZXRob2REZWYgSGVhZGVyUHJvdGVjdGlvbl9tZXRo
b2RzW10gPSB7Ci0gICAgeyJhcHBseSIsIChQeUNGdW5jdGlvbilIZWFkZXJQcm90ZWN0aW9uX2Fw
cGx5LCBNRVRIX1ZBUkFSR1MsICIifSwKLSAgICB7InJlbW92ZSIsIChQeUNGdW5jdGlvbilIZWFk
ZXJQcm90ZWN0aW9uX3JlbW92ZSwgTUVUSF9WQVJBUkdTLCAiIn0sCi0gICAge05VTEx9Ci19Owot
Ci1zdGF0aWMgUHlUeXBlT2JqZWN0IEhlYWRlclByb3RlY3Rpb25UeXBlID0gewotICAgIFB5VmFy
T2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgIE1PRFVMRV9OQU1FICIuSGVhZGVyUHJvdGVj
dGlvbiIsICAgIC8qIHRwX25hbWUgKi8KLSAgICBzaXplb2YoSGVhZGVyUHJvdGVjdGlvbk9iamVj
dCksICAgICAvKiB0cF9iYXNpY3NpemUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwotICAgIChkZXN0cnVjdG9yKUhlYWRlclByb3Rl
Y3Rpb25fZGVhbGxvYywgICAvKiB0cF9kZWFsbG9jICovCi0gICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLwotICAgIDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCi0gICAgMCwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLwotICAgIDAsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLwotICAgIDAsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCi0gICAgMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLwotICAgIDAsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggICovCi0gICAgMCwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwotICAgIDAsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLwotICAgIDAsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCi0gICAgMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9U
UEZMQUdTX0RFRkFVTFQsICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLwotICAgICJIZWFk
ZXJQcm90ZWN0aW9uIG9iamVjdHMiLCAgICAgICAgIC8qIHRwX2RvYyAqLwotICAgIDAsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAwLCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLwotICAgIDAs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICov
Ci0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwot
ICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICov
Ci0gICAgSGVhZGVyUHJvdGVjdGlvbl9tZXRob2RzLCAgICAgICAgICAgLyogdHBfbWV0aG9kcyAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMg
Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQg
Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICov
Ci0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLwot
ICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAq
LwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3Nl
dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3Rv
ZmZzZXQgKi8KLSAgICAoaW5pdHByb2MpSGVhZGVyUHJvdGVjdGlvbl9pbml0LCAgICAvKiB0cF9p
bml0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxs
b2MgKi8KLX07Ci0KLQotc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBtb2R1bGVkZWYgPSB7Ci0g
ICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAotICAgIE1PRFVMRV9OQU1FLCAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIG1fbmFtZSAqLwotICAgICJBIGZhc3RlciBidWZmZXIuIiwgICAgICAgICAg
ICAgICAgIC8qIG1fZG9jICovCi0gICAgLTEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogbV9zaXplICovCi0gICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogbV9tZXRob2RzICovCi0gICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogbV9yZWxvYWQgKi8KLSAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiBtX3RyYXZlcnNlICovCi0gICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogbV9jbGVhciAqLwotICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IG1fZnJlZSAqLwotfTsKLQotUHlNT0RJTklUX0ZVTkMKLVB5SW5pdF9fY3J5cHRvKHZvaWQpCi17
Ci0gICAgUHlPYmplY3QqIG07Ci0KLSAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZtb2R1bGVkZWYp
OwotICAgIGlmIChtID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQ3J5cHRv
RXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oTU9EVUxFX05BTUUgIi5DcnlwdG9FcnJvciIsIFB5
RXhjX1ZhbHVlRXJyb3IsIE5VTEwpOwotICAgIFB5X0lOQ1JFRihDcnlwdG9FcnJvcik7Ci0gICAg
UHlNb2R1bGVfQWRkT2JqZWN0KG0sICJDcnlwdG9FcnJvciIsIENyeXB0b0Vycm9yKTsKLQotICAg
IEFFQURUeXBlLnRwX25ldyA9IFB5VHlwZV9HZW5lcmljTmV3OwotICAgIGlmIChQeVR5cGVfUmVh
ZHkoJkFFQURUeXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5X0lOQ1JFRigm
QUVBRFR5cGUpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQUVBRCIsIChQeU9iamVjdCAq
KSZBRUFEVHlwZSk7Ci0KLSAgICBIZWFkZXJQcm90ZWN0aW9uVHlwZS50cF9uZXcgPSBQeVR5cGVf
R2VuZXJpY05ldzsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZIZWFkZXJQcm90ZWN0aW9uVHlwZSkg
PCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBQeV9JTkNSRUYoJkhlYWRlclByb3RlY3Rp
b25UeXBlKTsKLSAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIkhlYWRlclByb3RlY3Rpb24iLCAo
UHlPYmplY3QgKikmSGVhZGVyUHJvdGVjdGlvblR5cGUpOwotCi0gICAgLy8gZW5zdXJlIHJlcXVp
cmVkIGNpcGhlcnMgYXJlIGluaXRpYWxpc2VkCi0gICAgRVZQX2FkZF9jaXBoZXIoRVZQX2Flc18x
MjhfZWNiKCkpOwotICAgIEVWUF9hZGRfY2lwaGVyKEVWUF9hZXNfMTI4X2djbSgpKTsKLSAgICBF
VlBfYWRkX2NpcGhlcihFVlBfYWVzXzI1Nl9lY2IoKSk7Ci0gICAgRVZQX2FkZF9jaXBoZXIoRVZQ
X2Flc18yNTZfZ2NtKCkpOwotCi0gICAgcmV0dXJuIG07Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvc3JjL2Fpb3F1aWMvX2NyeXB0by5weWkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
X2NyeXB0by5weWkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyYzUyMzBkOTkyZTdm
MjE5YzkzYmVjM2NiNDU3MjE0YzI1MThjNzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19jcnlwdG8ucHlpCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotZnJvbSB0eXBpbmcgaW1wb3J0IFR1cGxlCi0K
LWNsYXNzIEFFQUQ6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNpcGhlcl9uYW1lOiBieXRlcywg
a2V5OiBieXRlcywgaXY6IGJ5dGVzKTogLi4uCi0gICAgZGVmIGRlY3J5cHQoCi0gICAgICAgIHNl
bGYsIGRhdGE6IGJ5dGVzLCBhc3NvY2lhdGVkX2RhdGE6IGJ5dGVzLCBwYWNrZXRfbnVtYmVyOiBp
bnQKLSAgICApIC0+IGJ5dGVzOiAuLi4KLSAgICBkZWYgZW5jcnlwdCgKLSAgICAgICAgc2VsZiwg
ZGF0YTogYnl0ZXMsIGFzc29jaWF0ZWRfZGF0YTogYnl0ZXMsIHBhY2tldF9udW1iZXI6IGludAot
ICAgICkgLT4gYnl0ZXM6IC4uLgotCi1jbGFzcyBDcnlwdG9FcnJvcihWYWx1ZUVycm9yKTogLi4u
Ci0KLWNsYXNzIEhlYWRlclByb3RlY3Rpb246Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNpcGhl
cl9uYW1lOiBieXRlcywga2V5OiBieXRlcyk6IC4uLgotICAgIGRlZiBhcHBseShzZWxmLCBwbGFp
bl9oZWFkZXI6IGJ5dGVzLCBwcm90ZWN0ZWRfcGF5bG9hZDogYnl0ZXMpIC0+IGJ5dGVzOiAuLi4K
LSAgICBkZWYgcmVtb3ZlKHNlbGYsIHBhY2tldDogYnl0ZXMsIGVuY3J5cHRlZF9vZmZzZXQ6IGlu
dCkgLT4gVHVwbGVbYnl0ZXMsIGludF06IC4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL2Fib3V0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2Fib3V0LnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGVlZDhkNmJjYzNlYjM1N2E3YjAwYWM1NDY5
NDJkNTFjYzNkZjY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hYm91dC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDcgKzAsMCBAQAotX19hdXRob3JfXyA9ICJKZXJlbXkgTGFpbsOpIgotX19lbWFpbF9fID0gImpl
cmVteS5sYWluZUBtNHgub3JnIgotX19saWNlbnNlX18gPSAiQlNEIgotX19zdW1tYXJ5X18gPSAi
QW4gaW1wbGVtZW50YXRpb24gb2YgUVVJQyBhbmQgSFRUUC8zIgotX190aXRsZV9fID0gImFpb3F1
aWMiCi1fX3VyaV9fID0gImh0dHBzOi8vZ2l0aHViLmNvbS9haW9ydGMvYWlvcXVpYyIKLV9fdmVy
c2lvbl9fID0gIjAuOC44IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2Fz
eW5jaW8vX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9fX2lu
aXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZkYTY5ZDg5OTM0ZThmODdh
MjFjNWI5OGU5N2ExMTQ5MTJiZThjYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9fX2luaXRfXy5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotZnJvbSAuY2xpZW50IGltcG9ydCBjb25u
ZWN0ICAjIG5vcWEKLWZyb20gLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3RvY29s
ICAjIG5vcWEKLWZyb20gLnNlcnZlciBpbXBvcnQgc2VydmUgICMgbm9xYQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2FzeW5jaW8vY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2FzeW5jaW8vY2xpZW50LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0MjkzN2U5ZTg5MmJmZTc2Y2QyYzJmYzdjYjNhNmU0ZmY3MzkzM2RiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlv
cXVpYy9hc3luY2lvL2NsaWVudC5weQorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLWlt
cG9ydCBhc3luY2lvCi1pbXBvcnQgaXBhZGRyZXNzCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgc3lz
Ci1mcm9tIHR5cGluZyBpbXBvcnQgQXN5bmNHZW5lcmF0b3IsIENhbGxhYmxlLCBPcHRpb25hbCwg
Y2FzdAotCi1mcm9tIC4ucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlv
bgotZnJvbSAuLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgUXVpY0Nvbm5lY3Rpb24KLWZyb20gLi50
bHMgaW1wb3J0IFNlc3Npb25UaWNrZXRIYW5kbGVyCi1mcm9tIC5jb21wYXQgaW1wb3J0IGFzeW5j
Y29udGV4dG1hbmFnZXIKLWZyb20gLnByb3RvY29sIGltcG9ydCBRdWljQ29ubmVjdGlvblByb3Rv
Y29sLCBRdWljU3RyZWFtSGFuZGxlcgotCi1fX2FsbF9fID0gWyJjb25uZWN0Il0KLQotCi1AYXN5
bmNjb250ZXh0bWFuYWdlcgotYXN5bmMgZGVmIGNvbm5lY3QoCi0gICAgaG9zdDogc3RyLAotICAg
IHBvcnQ6IGludCwKLSAgICAqLAotICAgIGNvbmZpZ3VyYXRpb246IE9wdGlvbmFsW1F1aWNDb25m
aWd1cmF0aW9uXSA9IE5vbmUsCi0gICAgY3JlYXRlX3Byb3RvY29sOiBPcHRpb25hbFtDYWxsYWJs
ZV0gPSBRdWljQ29ubmVjdGlvblByb3RvY29sLAotICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI6
IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRIYW5kbGVyXSA9IE5vbmUsCi0gICAgc3RyZWFtX2hhbmRs
ZXI6IE9wdGlvbmFsW1F1aWNTdHJlYW1IYW5kbGVyXSA9IE5vbmUsCi0gICAgd2FpdF9jb25uZWN0
ZWQ6IGJvb2wgPSBUcnVlLAotICAgIGxvY2FsX3BvcnQ6IGludCA9IDAsCi0pIC0+IEFzeW5jR2Vu
ZXJhdG9yW1F1aWNDb25uZWN0aW9uUHJvdG9jb2wsIE5vbmVdOgotICAgICIiIgotICAgIENvbm5l
Y3QgdG8gYSBRVUlDIHNlcnZlciBhdCB0aGUgZ2l2ZW4gYGhvc3RgIGFuZCBgcG9ydGAuCi0KLSAg
ICA6bWV0aDpgY29ubmVjdCgpYCByZXR1cm5zIGFuIGF3YWl0YWJsZS4gQXdhaXRpbmcgaXQgeWll
bGRzIGEKLSAgICA6Y2xhc3M6YH5haW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2Nv
bGAgd2hpY2ggY2FuIGJlIHVzZWQgdG8KLSAgICBjcmVhdGUgc3RyZWFtcy4KLQotICAgIDpmdW5j
OmBjb25uZWN0YCBhbHNvIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25hbCBhcmd1bWVudHM6
Ci0KLSAgICAqIGBgY29uZmlndXJhdGlvbmBgIGlzIGEgOmNsYXNzOmB+YWlvcXVpYy5xdWljLmNv
bmZpZ3VyYXRpb24uUXVpY0NvbmZpZ3VyYXRpb25gCi0gICAgICBjb25maWd1cmF0aW9uIG9iamVj
dC4KLSAgICAqIGBgY3JlYXRlX3Byb3RvY29sYGAgYWxsb3dzIGN1c3RvbWl6aW5nIHRoZSA6Y2xh
c3M6YH5hc3luY2lvLlByb3RvY29sYCB0aGF0Ci0gICAgICBtYW5hZ2VzIHRoZSBjb25uZWN0aW9u
LiBJdCBzaG91bGQgYmUgYSBjYWxsYWJsZSBvciBjbGFzcyBhY2NlcHRpbmcgdGhlIHNhbWUKLSAg
ICAgIGFyZ3VtZW50cyBhcyA6Y2xhc3M6YH5haW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Q
cm90b2NvbGAgYW5kIHJldHVybmluZwotICAgICAgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmB+YWlv
cXVpYy5hc3luY2lvLlF1aWNDb25uZWN0aW9uUHJvdG9jb2xgIG9yIGEgc3ViY2xhc3MuCi0gICAg
KiBgYHNlc3Npb25fdGlja2V0X2hhbmRsZXJgYCBpcyBhIGNhbGxiYWNrIHdoaWNoIGlzIGludm9r
ZWQgYnkgdGhlIFRMUwotICAgICAgZW5naW5lIHdoZW4gYSBuZXcgc2Vzc2lvbiB0aWNrZXQgaXMg
cmVjZWl2ZWQuCi0gICAgKiBgYHN0cmVhbV9oYW5kbGVyYGAgaXMgYSBjYWxsYmFjayB3aGljaCBp
cyBpbnZva2VkIHdoZW5ldmVyIGEgc3RyZWFtIGlzCi0gICAgICBjcmVhdGVkLiBJdCBtdXN0IGFj
Y2VwdCB0d28gYXJndW1lbnRzOiBhIDpjbGFzczpgYXN5bmNpby5TdHJlYW1SZWFkZXJgCi0gICAg
ICBhbmQgYSA6Y2xhc3M6YGFzeW5jaW8uU3RyZWFtV3JpdGVyYC4KLSAgICAqIGBgbG9jYWxfcG9y
dGBgIGlzIHRoZSBVRFAgcG9ydCBudW1iZXIgdGhhdCB0aGlzIGNsaWVudCB3YW50cyB0byBiaW5k
LgotICAgICIiIgotICAgIGxvb3AgPSBhc3luY2lvLmdldF9ldmVudF9sb29wKCkKLSAgICBsb2Nh
bF9ob3N0ID0gIjo6IgotCi0gICAgIyBpZiBob3N0IGlzIG5vdCBhbiBJUCBhZGRyZXNzLCBwYXNz
IGl0IHRvIGVuYWJsZSBTTkkKLSAgICB0cnk6Ci0gICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNz
KGhvc3QpCi0gICAgICAgIHNlcnZlcl9uYW1lID0gTm9uZQotICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgotICAgICAgICBzZXJ2ZXJfbmFtZSA9IGhvc3QKLQotICAgICMgbG9va3VwIHJlbW90ZSBhZGRy
ZXNzCi0gICAgaW5mb3MgPSBhd2FpdCBsb29wLmdldGFkZHJpbmZvKGhvc3QsIHBvcnQsIHR5cGU9
c29ja2V0LlNPQ0tfREdSQU0pCi0gICAgYWRkciA9IGluZm9zWzBdWzRdCi0gICAgaWYgbGVuKGFk
ZHIpID09IDI6Ci0gICAgICAgICMgZGV0ZXJtaW5lIGJlaGF2aW91ciBmb3IgSVB2NAotICAgICAg
ICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICAgICAgICAgICMgb24gV2luZG93cywg
d2UgbXVzdCB1c2UgYW4gSVB2NCBzb2NrZXQgdG8gcmVhY2ggYW4gSVB2NCBob3N0Ci0gICAgICAg
ICAgICBsb2NhbF9ob3N0ID0gIjAuMC4wLjAiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAj
IG90aGVyIHBsYXRmb3JtcyBzdXBwb3J0IGR1YWwtc3RhY2sgc29ja2V0cwotICAgICAgICAgICAg
YWRkciA9ICgiOjpmZmZmOiIgKyBhZGRyWzBdLCBhZGRyWzFdLCAwLCAwKQotCi0gICAgIyBwcmVw
YXJlIFFVSUMgY29ubmVjdGlvbgotICAgIGlmIGNvbmZpZ3VyYXRpb24gaXMgTm9uZToKLSAgICAg
ICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAg
IGlmIHNlcnZlcl9uYW1lIGlzIG5vdCBOb25lOgotICAgICAgICBjb25maWd1cmF0aW9uLnNlcnZl
cl9uYW1lID0gc2VydmVyX25hbWUKLSAgICBjb25uZWN0aW9uID0gUXVpY0Nvbm5lY3Rpb24oCi0g
ICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwgc2Vzc2lvbl90aWNrZXRfaGFuZGxl
cj1zZXNzaW9uX3RpY2tldF9oYW5kbGVyCi0gICAgKQotCi0gICAgIyBjb25uZWN0Ci0gICAgXywg
cHJvdG9jb2wgPSBhd2FpdCBsb29wLmNyZWF0ZV9kYXRhZ3JhbV9lbmRwb2ludCgKLSAgICAgICAg
bGFtYmRhOiBjcmVhdGVfcHJvdG9jb2woY29ubmVjdGlvbiwgc3RyZWFtX2hhbmRsZXI9c3RyZWFt
X2hhbmRsZXIpLAotICAgICAgICBsb2NhbF9hZGRyPShsb2NhbF9ob3N0LCBsb2NhbF9wb3J0KSwK
LSAgICApCi0gICAgcHJvdG9jb2wgPSBjYXN0KFF1aWNDb25uZWN0aW9uUHJvdG9jb2wsIHByb3Rv
Y29sKQotICAgIHByb3RvY29sLmNvbm5lY3QoYWRkcikKLSAgICBpZiB3YWl0X2Nvbm5lY3RlZDoK
LSAgICAgICAgYXdhaXQgcHJvdG9jb2wud2FpdF9jb25uZWN0ZWQoKQotICAgIHRyeToKLSAgICAg
ICAgeWllbGQgcHJvdG9jb2wKLSAgICBmaW5hbGx5OgotICAgICAgICBwcm90b2NvbC5jbG9zZSgp
Ci0gICAgYXdhaXQgcHJvdG9jb2wud2FpdF9jbG9zZWQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3NyYy9haW9xdWljL2FzeW5jaW8vY29tcGF0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9x
dWljL2FzeW5jaW8vY29tcGF0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDFl
NjJmNmQ5NDI5NjE5MzNmYjZmZTA3MmFlMGYyN2U2NDNiNGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3lu
Y2lvL2NvbXBhdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWZyb20gY29udGV4
dGxpYiBpbXBvcnQgQ29udGV4dERlY29yYXRvcgotZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBz
Ci0KLXRyeToKLSAgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGFzeW5jY29udGV4dG1hbmFnZXIK
LWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBhc3luY2NvbnRleHRtYW5hZ2VyID0gTm9uZQotCi0K
LWNsYXNzIF9Bc3luY0dlbmVyYXRvckNvbnRleHRNYW5hZ2VyKENvbnRleHREZWNvcmF0b3IpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBhcmdzLCBrd2RzKToKLSAgICAgICAgc2VsZi5n
ZW4gPSBmdW5jKCphcmdzLCAqKmt3ZHMpCi0gICAgICAgIHNlbGYuZnVuYywgc2VsZi5hcmdzLCBz
ZWxmLmt3ZHMgPSBmdW5jLCBhcmdzLCBrd2RzCi0gICAgICAgIHNlbGYuX19kb2NfXyA9IGZ1bmMu
X19kb2NfXwotCi0gICAgYXN5bmMgZGVmIF9fYWVudGVyX18oc2VsZik6Ci0gICAgICAgIHJldHVy
biBhd2FpdCBzZWxmLmdlbi5fX2FuZXh0X18oKQotCi0gICAgYXN5bmMgZGVmIF9fYWV4aXRfXyhz
ZWxmLCB0eXAsIHZhbHVlLCB0cmFjZWJhY2spOgotICAgICAgICBpZiB0eXAgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBhd2FpdCBzZWxmLmdlbi5hdGhyb3codHlwLCB2YWx1ZSwgdHJhY2ViYWNr
KQotCi0KLWRlZiBfYXN5bmNjb250ZXh0bWFuYWdlcihmdW5jKToKLSAgICBAd3JhcHMoZnVuYykK
LSAgICBkZWYgaGVscGVyKCphcmdzLCAqKmt3ZHMpOgotICAgICAgICByZXR1cm4gX0FzeW5jR2Vu
ZXJhdG9yQ29udGV4dE1hbmFnZXIoZnVuYywgYXJncywga3dkcykKLQotICAgIHJldHVybiBoZWxw
ZXIKLQotCi1pZiBhc3luY2NvbnRleHRtYW5hZ2VyIGlzIE5vbmU6Ci0gICAgYXN5bmNjb250ZXh0
bWFuYWdlciA9IF9hc3luY2NvbnRleHRtYW5hZ2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
c3JjL2Fpb3F1aWMvYXN5bmNpby9wcm90b2NvbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVp
Yy9hc3luY2lvL3Byb3RvY29sLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTAw
NDMzNWI4ZmZmZjlkNzAyNWQzNjVlY2FhOTMxZjc3NDcyMjkzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3lu
Y2lvL3Byb3RvY29sLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjQwICswLDAgQEAKLWltcG9ydCBh
c3luY2lvCi1mcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgRGljdCwgT3B0aW9uYWws
IFRleHQsIFR1cGxlLCBVbmlvbiwgY2FzdAotCi1mcm9tIC4ucXVpYyBpbXBvcnQgZXZlbnRzCi1m
cm9tIC4ucXVpYy5jb25uZWN0aW9uIGltcG9ydCBOZXR3b3JrQWRkcmVzcywgUXVpY0Nvbm5lY3Rp
b24KLQotUXVpY0Nvbm5lY3Rpb25JZEhhbmRsZXIgPSBDYWxsYWJsZVtbYnl0ZXNdLCBOb25lXQot
UXVpY1N0cmVhbUhhbmRsZXIgPSBDYWxsYWJsZVtbYXN5bmNpby5TdHJlYW1SZWFkZXIsIGFzeW5j
aW8uU3RyZWFtV3JpdGVyXSwgTm9uZV0KLQotCi1jbGFzcyBRdWljQ29ubmVjdGlvblByb3RvY29s
KGFzeW5jaW8uRGF0YWdyYW1Qcm90b2NvbCk6Ci0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBz
ZWxmLCBxdWljOiBRdWljQ29ubmVjdGlvbiwgc3RyZWFtX2hhbmRsZXI6IE9wdGlvbmFsW1F1aWNT
dHJlYW1IYW5kbGVyXSA9IE5vbmUKLSAgICApOgotICAgICAgICBsb29wID0gYXN5bmNpby5nZXRf
ZXZlbnRfbG9vcCgpCi0KLSAgICAgICAgc2VsZi5fY2xvc2VkID0gYXN5bmNpby5FdmVudCgpCi0g
ICAgICAgIHNlbGYuX2Nvbm5lY3RlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2Nvbm5lY3RlZF93
YWl0ZXI6IE9wdGlvbmFsW2FzeW5jaW8uRnV0dXJlW05vbmVdXSA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fbG9vcCA9IGxvb3AKLSAgICAgICAgc2VsZi5fcGluZ193YWl0ZXJzOiBEaWN0W2ludCwgYXN5
bmNpby5GdXR1cmVbTm9uZV1dID0ge30KLSAgICAgICAgc2VsZi5fcXVpYyA9IHF1aWMKLSAgICAg
ICAgc2VsZi5fc3RyZWFtX3JlYWRlcnM6IERpY3RbaW50LCBhc3luY2lvLlN0cmVhbVJlYWRlcl0g
PSB7fQotICAgICAgICBzZWxmLl90aW1lcjogT3B0aW9uYWxbYXN5bmNpby5UaW1lckhhbmRsZV0g
PSBOb25lCi0gICAgICAgIHNlbGYuX3RpbWVyX2F0OiBPcHRpb25hbFtmbG9hdF0gPSBOb25lCi0g
ICAgICAgIHNlbGYuX3RyYW5zbWl0X3Rhc2s6IE9wdGlvbmFsW2FzeW5jaW8uSGFuZGxlXSA9IE5v
bmUKLSAgICAgICAgc2VsZi5fdHJhbnNwb3J0OiBPcHRpb25hbFthc3luY2lvLkRhdGFncmFtVHJh
bnNwb3J0XSA9IE5vbmUKLQotICAgICAgICAjIGNhbGxiYWNrcwotICAgICAgICBzZWxmLl9jb25u
ZWN0aW9uX2lkX2lzc3VlZF9oYW5kbGVyOiBRdWljQ29ubmVjdGlvbklkSGFuZGxlciA9IGxhbWJk
YSBjOiBOb25lCi0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb25faWRfcmV0aXJlZF9oYW5kbGVyOiBR
dWljQ29ubmVjdGlvbklkSGFuZGxlciA9IGxhbWJkYSBjOiBOb25lCi0gICAgICAgIHNlbGYuX2Nv
bm5lY3Rpb25fdGVybWluYXRlZF9oYW5kbGVyOiBDYWxsYWJsZVtbXSwgTm9uZV0gPSBsYW1iZGE6
IE5vbmUKLSAgICAgICAgaWYgc3RyZWFtX2hhbmRsZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLl9zdHJlYW1faGFuZGxlciA9IHN0cmVhbV9oYW5kbGVyCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBzZWxmLl9zdHJlYW1faGFuZGxlciA9IGxhbWJkYSByLCB3OiBOb25lCi0KLSAg
ICBkZWYgY2hhbmdlX2Nvbm5lY3Rpb25faWQoc2VsZikgLT4gTm9uZToKLSAgICAgICAgIiIiCi0g
ICAgICAgIENoYW5nZSB0aGUgY29ubmVjdGlvbiBJRCB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGgg
dGhlIHBlZXIuCi0KLSAgICAgICAgVGhlIHByZXZpb3VzIGNvbm5lY3Rpb24gSUQgd2lsbCBiZSBy
ZXRpcmVkLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcXVpYy5jaGFuZ2VfY29ubmVjdGlv
bl9pZCgpCi0gICAgICAgIHNlbGYudHJhbnNtaXQoKQotCi0gICAgZGVmIGNsb3NlKHNlbGYpIC0+
IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBDbG9zZSB0aGUgY29ubmVjdGlvbi4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHNlbGYuX3F1aWMuY2xvc2UoKQotICAgICAgICBzZWxmLnRyYW5zbWl0
KCkKLQotICAgIGRlZiBjb25uZWN0KHNlbGYsIGFkZHI6IE5ldHdvcmtBZGRyZXNzKSAtPiBOb25l
OgotICAgICAgICAiIiIKLSAgICAgICAgSW5pdGlhdGUgdGhlIFRMUyBoYW5kc2hha2UuCi0KLSAg
ICAgICAgVGhpcyBtZXRob2QgY2FuIG9ubHkgYmUgY2FsbGVkIGZvciBjbGllbnRzIGFuZCBhIHNp
bmdsZSB0aW1lLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcXVpYy5jb25uZWN0KGFkZHIs
IG5vdz1zZWxmLl9sb29wLnRpbWUoKSkKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0KLSAgICBh
c3luYyBkZWYgY3JlYXRlX3N0cmVhbSgKLSAgICAgICAgc2VsZiwgaXNfdW5pZGlyZWN0aW9uYWw6
IGJvb2wgPSBGYWxzZQotICAgICkgLT4gVHVwbGVbYXN5bmNpby5TdHJlYW1SZWFkZXIsIGFzeW5j
aW8uU3RyZWFtV3JpdGVyXToKLSAgICAgICAgIiIiCi0gICAgICAgIENyZWF0ZSBhIFFVSUMgc3Ry
ZWFtIGFuZCByZXR1cm4gYSBwYWlyIG9mIChyZWFkZXIsIHdyaXRlcikgb2JqZWN0cy4KLQotICAg
ICAgICBUaGUgcmV0dXJuZWQgcmVhZGVyIGFuZCB3cml0ZXIgb2JqZWN0cyBhcmUgaW5zdGFuY2Vz
IG9mIDpjbGFzczpgYXN5bmNpby5TdHJlYW1SZWFkZXJgCi0gICAgICAgIGFuZCA6Y2xhc3M6YGFz
eW5jaW8uU3RyZWFtV3JpdGVyYCBjbGFzc2VzLgotICAgICAgICAiIiIKLSAgICAgICAgc3RyZWFt
X2lkID0gc2VsZi5fcXVpYy5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKAotICAgICAgICAg
ICAgaXNfdW5pZGlyZWN0aW9uYWw9aXNfdW5pZGlyZWN0aW9uYWwKLSAgICAgICAgKQotICAgICAg
ICByZXR1cm4gc2VsZi5fY3JlYXRlX3N0cmVhbShzdHJlYW1faWQpCi0KLSAgICBkZWYgcmVxdWVz
dF9rZXlfdXBkYXRlKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBSZXF1ZXN0
IGFuIHVwZGF0ZSBvZiB0aGUgZW5jcnlwdGlvbiBrZXlzLgotICAgICAgICAiIiIKLSAgICAgICAg
c2VsZi5fcXVpYy5yZXF1ZXN0X2tleV91cGRhdGUoKQotICAgICAgICBzZWxmLnRyYW5zbWl0KCkK
LQotICAgIGFzeW5jIGRlZiBwaW5nKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAg
ICBQaW5nIHRoZSBwZWVyIGFuZCB3YWl0IGZvciB0aGUgcmVzcG9uc2UuCi0gICAgICAgICIiIgot
ICAgICAgICB3YWl0ZXIgPSBzZWxmLl9sb29wLmNyZWF0ZV9mdXR1cmUoKQotICAgICAgICB1aWQg
PSBpZCh3YWl0ZXIpCi0gICAgICAgIHNlbGYuX3Bpbmdfd2FpdGVyc1t1aWRdID0gd2FpdGVyCi0g
ICAgICAgIHNlbGYuX3F1aWMuc2VuZF9waW5nKHVpZCkKLSAgICAgICAgc2VsZi50cmFuc21pdCgp
Ci0gICAgICAgIGF3YWl0IGFzeW5jaW8uc2hpZWxkKHdhaXRlcikKLQotICAgIGRlZiB0cmFuc21p
dChzZWxmKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgU2VuZCBwZW5kaW5nIGRhdGFn
cmFtcyB0byB0aGUgcGVlciBhbmQgYXJtIHRoZSB0aW1lciBpZiBuZWVkZWQuCi0gICAgICAgICIi
IgotICAgICAgICBzZWxmLl90cmFuc21pdF90YXNrID0gTm9uZQotCi0gICAgICAgICMgc2VuZCBk
YXRhZ3JhbXMKLSAgICAgICAgZm9yIGRhdGEsIGFkZHIgaW4gc2VsZi5fcXVpYy5kYXRhZ3JhbXNf
dG9fc2VuZChub3c9c2VsZi5fbG9vcC50aW1lKCkpOgotICAgICAgICAgICAgc2VsZi5fdHJhbnNw
b3J0LnNlbmR0byhkYXRhLCBhZGRyKQotCi0gICAgICAgICMgcmUtYXJtIHRpbWVyCi0gICAgICAg
IHRpbWVyX2F0ID0gc2VsZi5fcXVpYy5nZXRfdGltZXIoKQotICAgICAgICBpZiBzZWxmLl90aW1l
ciBpcyBub3QgTm9uZSBhbmQgc2VsZi5fdGltZXJfYXQgIT0gdGltZXJfYXQ6Ci0gICAgICAgICAg
ICBzZWxmLl90aW1lci5jYW5jZWwoKQotICAgICAgICAgICAgc2VsZi5fdGltZXIgPSBOb25lCi0g
ICAgICAgIGlmIHNlbGYuX3RpbWVyIGlzIE5vbmUgYW5kIHRpbWVyX2F0IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fdGltZXIgPSBzZWxmLl9sb29wLmNhbGxfYXQodGltZXJfYXQsIHNl
bGYuX2hhbmRsZV90aW1lcikKLSAgICAgICAgc2VsZi5fdGltZXJfYXQgPSB0aW1lcl9hdAotCi0g
ICAgYXN5bmMgZGVmIHdhaXRfY2xvc2VkKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAg
ICAgICBXYWl0IGZvciB0aGUgY29ubmVjdGlvbiB0byBiZSBjbG9zZWQuCi0gICAgICAgICIiIgot
ICAgICAgICBhd2FpdCBzZWxmLl9jbG9zZWQud2FpdCgpCi0KLSAgICBhc3luYyBkZWYgd2FpdF9j
b25uZWN0ZWQoc2VsZikgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFdhaXQgZm9yIHRo
ZSBUTFMgaGFuZHNoYWtlIHRvIGNvbXBsZXRlLgotICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0
IHNlbGYuX2Nvbm5lY3RlZF93YWl0ZXIgaXMgTm9uZSwgImFscmVhZHkgYXdhaXRpbmcgY29ubmVj
dGVkIgotICAgICAgICBpZiBub3Qgc2VsZi5fY29ubmVjdGVkOgotICAgICAgICAgICAgc2VsZi5f
Y29ubmVjdGVkX3dhaXRlciA9IHNlbGYuX2xvb3AuY3JlYXRlX2Z1dHVyZSgpCi0gICAgICAgICAg
ICBhd2FpdCBhc3luY2lvLnNoaWVsZChzZWxmLl9jb25uZWN0ZWRfd2FpdGVyKQotCi0gICAgIyBh
c3luY2lvLlRyYW5zcG9ydAotCi0gICAgZGVmIGNvbm5lY3Rpb25fbWFkZShzZWxmLCB0cmFuc3Bv
cnQ6IGFzeW5jaW8uQmFzZVRyYW5zcG9ydCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5fdHJhbnNw
b3J0ID0gY2FzdChhc3luY2lvLkRhdGFncmFtVHJhbnNwb3J0LCB0cmFuc3BvcnQpCi0KLSAgICBk
ZWYgZGF0YWdyYW1fcmVjZWl2ZWQoc2VsZiwgZGF0YTogVW5pb25bYnl0ZXMsIFRleHRdLCBhZGRy
OiBOZXR3b3JrQWRkcmVzcykgLT4gTm9uZToKLSAgICAgICAgc2VsZi5fcXVpYy5yZWNlaXZlX2Rh
dGFncmFtKGNhc3QoYnl0ZXMsIGRhdGEpLCBhZGRyLCBub3c9c2VsZi5fbG9vcC50aW1lKCkpCi0g
ICAgICAgIHNlbGYuX3Byb2Nlc3NfZXZlbnRzKCkKLSAgICAgICAgc2VsZi50cmFuc21pdCgpCi0K
LSAgICAjIG92ZXJyaWRhYmxlCi0KLSAgICBkZWYgcXVpY19ldmVudF9yZWNlaXZlZChzZWxmLCBl
dmVudDogZXZlbnRzLlF1aWNFdmVudCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENh
bGxlZCB3aGVuIGEgUVVJQyBldmVudCBpcyByZWNlaXZlZC4KLQotICAgICAgICBSZWltcGxlbWVu
dCB0aGlzIGluIHlvdXIgc3ViY2xhc3MgdG8gaGFuZGxlIHRoZSBldmVudHMuCi0gICAgICAgICIi
IgotICAgICAgICAjIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYSBzdWJjbGFzcwotICAgICAgICBpZiBp
c2luc3RhbmNlKGV2ZW50LCBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQpOgotICAgICAgICAg
ICAgZm9yIHJlYWRlciBpbiBzZWxmLl9zdHJlYW1fcmVhZGVycy52YWx1ZXMoKToKLSAgICAgICAg
ICAgICAgICByZWFkZXIuZmVlZF9lb2YoKQotICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQs
IGV2ZW50cy5TdHJlYW1EYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgcmVhZGVyID0gc2VsZi5f
c3RyZWFtX3JlYWRlcnMuZ2V0KGV2ZW50LnN0cmVhbV9pZCwgTm9uZSkKLSAgICAgICAgICAgIGlm
IHJlYWRlciBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJlYWRlciwgd3JpdGVyID0gc2VsZi5f
Y3JlYXRlX3N0cmVhbShldmVudC5zdHJlYW1faWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fc3Ry
ZWFtX2hhbmRsZXIocmVhZGVyLCB3cml0ZXIpCi0gICAgICAgICAgICByZWFkZXIuZmVlZF9kYXRh
KGV2ZW50LmRhdGEpCi0gICAgICAgICAgICBpZiBldmVudC5lbmRfc3RyZWFtOgotICAgICAgICAg
ICAgICAgIHJlYWRlci5mZWVkX2VvZigpCi0KLSAgICAjIHByaXZhdGUKLQotICAgIGRlZiBfY3Jl
YXRlX3N0cmVhbSgKLSAgICAgICAgc2VsZiwgc3RyZWFtX2lkOiBpbnQKLSAgICApIC0+IFR1cGxl
W2FzeW5jaW8uU3RyZWFtUmVhZGVyLCBhc3luY2lvLlN0cmVhbVdyaXRlcl06Ci0gICAgICAgIGFk
YXB0ZXIgPSBRdWljU3RyZWFtQWRhcHRlcihzZWxmLCBzdHJlYW1faWQpCi0gICAgICAgIHJlYWRl
ciA9IGFzeW5jaW8uU3RyZWFtUmVhZGVyKCkKLSAgICAgICAgd3JpdGVyID0gYXN5bmNpby5TdHJl
YW1Xcml0ZXIoYWRhcHRlciwgTm9uZSwgcmVhZGVyLCBzZWxmLl9sb29wKQotICAgICAgICBzZWxm
Ll9zdHJlYW1fcmVhZGVyc1tzdHJlYW1faWRdID0gcmVhZGVyCi0gICAgICAgIHJldHVybiByZWFk
ZXIsIHdyaXRlcgotCi0gICAgZGVmIF9oYW5kbGVfdGltZXIoc2VsZikgLT4gTm9uZToKLSAgICAg
ICAgbm93ID0gbWF4KHNlbGYuX3RpbWVyX2F0LCBzZWxmLl9sb29wLnRpbWUoKSkKLSAgICAgICAg
c2VsZi5fdGltZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3RpbWVyX2F0ID0gTm9uZQotICAgICAg
ICBzZWxmLl9xdWljLmhhbmRsZV90aW1lcihub3c9bm93KQotICAgICAgICBzZWxmLl9wcm9jZXNz
X2V2ZW50cygpCi0gICAgICAgIHNlbGYudHJhbnNtaXQoKQotCi0gICAgZGVmIF9wcm9jZXNzX2V2
ZW50cyhzZWxmKSAtPiBOb25lOgotICAgICAgICBldmVudCA9IHNlbGYuX3F1aWMubmV4dF9ldmVu
dCgpCi0gICAgICAgIHdoaWxlIGV2ZW50IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgaXNp
bnN0YW5jZShldmVudCwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fY29ubmVjdGlvbl9pZF9pc3N1ZWRfaGFuZGxlcihldmVudC5jb25uZWN0aW9uX2lk
KQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBldmVudHMuQ29ubmVjdGlvbklk
UmV0aXJlZCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdGlvbl9pZF9yZXRpcmVkX2hh
bmRsZXIoZXZlbnQuY29ubmVjdGlvbl9pZCkKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShl
dmVudCwgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9jb25uZWN0aW9uX3Rlcm1pbmF0ZWRfaGFuZGxlcigpCi0KLSAgICAgICAgICAgICAgICAjIGFi
b3J0IGNvbm5lY3Rpb24gd2FpdGVyCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fY29ubmVjdGVk
X3dhaXRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgd2FpdGVyID0gc2VsZi5f
Y29ubmVjdGVkX3dhaXRlcgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb25uZWN0ZWRfd2Fp
dGVyID0gTm9uZQotICAgICAgICAgICAgICAgICAgICB3YWl0ZXIuc2V0X2V4Y2VwdGlvbihDb25u
ZWN0aW9uRXJyb3IpCi0KLSAgICAgICAgICAgICAgICAjIGFib3J0IHBpbmcgd2FpdGVycwotICAg
ICAgICAgICAgICAgIGZvciB3YWl0ZXIgaW4gc2VsZi5fcGluZ193YWl0ZXJzLnZhbHVlcygpOgot
ICAgICAgICAgICAgICAgICAgICB3YWl0ZXIuc2V0X2V4Y2VwdGlvbihDb25uZWN0aW9uRXJyb3Ip
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGluZ193YWl0ZXJzLmNsZWFyKCkKLQotICAgICAgICAg
ICAgICAgIHNlbGYuX2Nsb3NlZC5zZXQoKQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2
ZW50LCBldmVudHMuSGFuZHNoYWtlQ29tcGxldGVkKToKLSAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9jb25uZWN0ZWRfd2FpdGVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICB3YWl0
ZXIgPSBzZWxmLl9jb25uZWN0ZWRfd2FpdGVyCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nv
bm5lY3RlZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdGVkX3dhaXRl
ciA9IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgd2FpdGVyLnNldF9yZXN1bHQoTm9uZSkKLSAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgZXZlbnRzLlBpbmdBY2tub3dsZWRnZWQp
OgotICAgICAgICAgICAgICAgIHdhaXRlciA9IHNlbGYuX3Bpbmdfd2FpdGVycy5wb3AoZXZlbnQu
dWlkLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIHdhaXRlciBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgd2FpdGVyLnNldF9yZXN1bHQoTm9uZSkKLSAgICAgICAgICAgIHNlbGYu
cXVpY19ldmVudF9yZWNlaXZlZChldmVudCkKLSAgICAgICAgICAgIGV2ZW50ID0gc2VsZi5fcXVp
Yy5uZXh0X2V2ZW50KCkKLQotICAgIGRlZiBfdHJhbnNtaXRfc29vbihzZWxmKSAtPiBOb25lOgot
ICAgICAgICBpZiBzZWxmLl90cmFuc21pdF90YXNrIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxm
Ll90cmFuc21pdF90YXNrID0gc2VsZi5fbG9vcC5jYWxsX3Nvb24oc2VsZi50cmFuc21pdCkKLQot
Ci1jbGFzcyBRdWljU3RyZWFtQWRhcHRlcihhc3luY2lvLlRyYW5zcG9ydCk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHByb3RvY29sOiBRdWljQ29ubmVjdGlvblByb3RvY29sLCBzdHJlYW1faWQ6
IGludCk6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLnN0
cmVhbV9pZCA9IHN0cmVhbV9pZAotCi0gICAgZGVmIGNhbl93cml0ZV9lb2Yoc2VsZikgLT4gYm9v
bDoKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBnZXRfZXh0cmFfaW5mbyhzZWxmLCBu
YW1lOiBzdHIsIGRlZmF1bHQ6IEFueSA9IE5vbmUpIC0+IEFueToKLSAgICAgICAgIiIiCi0gICAg
ICAgIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdW5kZXJseWluZyBRVUlDIHN0cmVhbS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIG5hbWUgPT0gInN0cmVhbV9pZCI6Ci0gICAgICAgICAgICBy
ZXR1cm4gc2VsZi5zdHJlYW1faWQKLQotICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAg
ICAgc2VsZi5wcm90b2NvbC5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKHNlbGYuc3RyZWFtX2lkLCBk
YXRhKQotICAgICAgICBzZWxmLnByb3RvY29sLl90cmFuc21pdF9zb29uKCkKLQotICAgIGRlZiB3
cml0ZV9lb2Yoc2VsZik6Ci0gICAgICAgIHNlbGYucHJvdG9jb2wuX3F1aWMuc2VuZF9zdHJlYW1f
ZGF0YShzZWxmLnN0cmVhbV9pZCwgYiIiLCBlbmRfc3RyZWFtPVRydWUpCi0gICAgICAgIHNlbGYu
cHJvdG9jb2wuX3RyYW5zbWl0X3Nvb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9h
aW9xdWljL2FzeW5jaW8vc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2FzeW5j
aW8vc2VydmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDBlZTQ2MGI2ZWQ2
NmUwOTQ1Mzg1ZjFmNTQ4NThjYzBlZjkxODg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL3NlcnZl
ci5weQorKysgL2Rldi9udWxsCkBAIC0xLDIxMCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1w
b3J0IG9zCi1mcm9tIGZ1bmN0b29scyBpbXBvcnQgcGFydGlhbAotZnJvbSB0eXBpbmcgaW1wb3J0
IENhbGxhYmxlLCBEaWN0LCBPcHRpb25hbCwgVGV4dCwgVW5pb24sIGNhc3QKLQotZnJvbSAuLmJ1
ZmZlciBpbXBvcnQgQnVmZmVyCi1mcm9tIC4ucXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWlj
Q29uZmlndXJhdGlvbgotZnJvbSAuLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgTmV0d29ya0FkZHJl
c3MsIFF1aWNDb25uZWN0aW9uCi1mcm9tIC4ucXVpYy5wYWNrZXQgaW1wb3J0ICgKLSAgICBQQUNL
RVRfVFlQRV9JTklUSUFMLAotICAgIGVuY29kZV9xdWljX3JldHJ5LAotICAgIGVuY29kZV9xdWlj
X3ZlcnNpb25fbmVnb3RpYXRpb24sCi0gICAgcHVsbF9xdWljX2hlYWRlciwKLSkKLWZyb20gLi5x
dWljLnJldHJ5IGltcG9ydCBRdWljUmV0cnlUb2tlbkhhbmRsZXIKLWZyb20gLi50bHMgaW1wb3J0
IFNlc3Npb25UaWNrZXRGZXRjaGVyLCBTZXNzaW9uVGlja2V0SGFuZGxlcgotZnJvbSAucHJvdG9j
b2wgaW1wb3J0IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wsIFF1aWNTdHJlYW1IYW5kbGVyCi0KLV9f
YWxsX18gPSBbInNlcnZlIl0KLQotCi1jbGFzcyBRdWljU2VydmVyKGFzeW5jaW8uRGF0YWdyYW1Q
cm90b2NvbCk6Ci0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxmLAotICAgICAgICAqLAot
ICAgICAgICBjb25maWd1cmF0aW9uOiBRdWljQ29uZmlndXJhdGlvbiwKLSAgICAgICAgY3JlYXRl
X3Byb3RvY29sOiBDYWxsYWJsZSA9IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wsCi0gICAgICAgIHNl
c3Npb25fdGlja2V0X2ZldGNoZXI6IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRGZXRjaGVyXSA9IE5v
bmUsCi0gICAgICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI6IE9wdGlvbmFsW1Nlc3Npb25UaWNr
ZXRIYW5kbGVyXSA9IE5vbmUsCi0gICAgICAgIHN0YXRlbGVzc19yZXRyeTogYm9vbCA9IEZhbHNl
LAotICAgICAgICBzdHJlYW1faGFuZGxlcjogT3B0aW9uYWxbUXVpY1N0cmVhbUhhbmRsZXJdID0g
Tm9uZSwKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX2NvbmZpZ3VyYXRpb24gPSBjb25m
aWd1cmF0aW9uCi0gICAgICAgIHNlbGYuX2NyZWF0ZV9wcm90b2NvbCA9IGNyZWF0ZV9wcm90b2Nv
bAotICAgICAgICBzZWxmLl9sb29wID0gYXN5bmNpby5nZXRfZXZlbnRfbG9vcCgpCi0gICAgICAg
IHNlbGYuX3Byb3RvY29sczogRGljdFtieXRlcywgUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbF0gPSB7
fQotICAgICAgICBzZWxmLl9zZXNzaW9uX3RpY2tldF9mZXRjaGVyID0gc2Vzc2lvbl90aWNrZXRf
ZmV0Y2hlcgotICAgICAgICBzZWxmLl9zZXNzaW9uX3RpY2tldF9oYW5kbGVyID0gc2Vzc2lvbl90
aWNrZXRfaGFuZGxlcgotICAgICAgICBzZWxmLl90cmFuc3BvcnQ6IE9wdGlvbmFsW2FzeW5jaW8u
RGF0YWdyYW1UcmFuc3BvcnRdID0gTm9uZQotCi0gICAgICAgIHNlbGYuX3N0cmVhbV9oYW5kbGVy
ID0gc3RyZWFtX2hhbmRsZXIKLQotICAgICAgICBpZiBzdGF0ZWxlc3NfcmV0cnk6Ci0gICAgICAg
ICAgICBzZWxmLl9yZXRyeSA9IFF1aWNSZXRyeVRva2VuSGFuZGxlcigpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl9yZXRyeSA9IE5vbmUKLQotICAgIGRlZiBjbG9zZShzZWxmKToK
LSAgICAgICAgZm9yIHByb3RvY29sIGluIHNldChzZWxmLl9wcm90b2NvbHMudmFsdWVzKCkpOgot
ICAgICAgICAgICAgcHJvdG9jb2wuY2xvc2UoKQotICAgICAgICBzZWxmLl9wcm90b2NvbHMuY2xl
YXIoKQotICAgICAgICBzZWxmLl90cmFuc3BvcnQuY2xvc2UoKQotCi0gICAgZGVmIGNvbm5lY3Rp
b25fbWFkZShzZWxmLCB0cmFuc3BvcnQ6IGFzeW5jaW8uQmFzZVRyYW5zcG9ydCkgLT4gTm9uZToK
LSAgICAgICAgc2VsZi5fdHJhbnNwb3J0ID0gY2FzdChhc3luY2lvLkRhdGFncmFtVHJhbnNwb3J0
LCB0cmFuc3BvcnQpCi0KLSAgICBkZWYgZGF0YWdyYW1fcmVjZWl2ZWQoc2VsZiwgZGF0YTogVW5p
b25bYnl0ZXMsIFRleHRdLCBhZGRyOiBOZXR3b3JrQWRkcmVzcykgLT4gTm9uZToKLSAgICAgICAg
ZGF0YSA9IGNhc3QoYnl0ZXMsIGRhdGEpCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGVhZGVyID0gcHVsbF9xdWljX2hlYWRlcigK
LSAgICAgICAgICAgICAgICBidWYsIGhvc3RfY2lkX2xlbmd0aD1zZWxmLl9jb25maWd1cmF0aW9u
LmNvbm5lY3Rpb25faWRfbGVuZ3RoCi0gICAgICAgICAgICApCi0gICAgICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyB2ZXJzaW9uIG5lZ290aWF0
aW9uCi0gICAgICAgIGlmICgKLSAgICAgICAgICAgIGhlYWRlci52ZXJzaW9uIGlzIG5vdCBOb25l
Ci0gICAgICAgICAgICBhbmQgaGVhZGVyLnZlcnNpb24gbm90IGluIHNlbGYuX2NvbmZpZ3VyYXRp
b24uc3VwcG9ydGVkX3ZlcnNpb25zCi0gICAgICAgICk6Ci0gICAgICAgICAgICBzZWxmLl90cmFu
c3BvcnQuc2VuZHRvKAotICAgICAgICAgICAgICAgIGVuY29kZV9xdWljX3ZlcnNpb25fbmVnb3Rp
YXRpb24oCi0gICAgICAgICAgICAgICAgICAgIHNvdXJjZV9jaWQ9aGVhZGVyLmRlc3RpbmF0aW9u
X2NpZCwKLSAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fY2lkPWhlYWRlci5zb3VyY2Vf
Y2lkLAotICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbnM9c2VsZi5fY29uZmln
dXJhdGlvbi5zdXBwb3J0ZWRfdmVyc2lvbnMsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICAgICBhZGRyLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAg
ICAgcHJvdG9jb2wgPSBzZWxmLl9wcm90b2NvbHMuZ2V0KGhlYWRlci5kZXN0aW5hdGlvbl9jaWQs
IE5vbmUpCi0gICAgICAgIG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQ6IE9wdGlvbmFsW2J5dGVzXSA9
IE5vbmUKLSAgICAgICAgaWYgKAotICAgICAgICAgICAgcHJvdG9jb2wgaXMgTm9uZQotICAgICAg
ICAgICAgYW5kIGxlbihkYXRhKSA+PSAxMjAwCi0gICAgICAgICAgICBhbmQgaGVhZGVyLnBhY2tl
dF90eXBlID09IFBBQ0tFVF9UWVBFX0lOSVRJQUwKLSAgICAgICAgKToKLSAgICAgICAgICAgICMg
c3RhdGVsZXNzIHJldHJ5Ci0gICAgICAgICAgICBpZiBzZWxmLl9yZXRyeSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICBpZiBub3QgaGVhZGVyLnRva2VuOgotICAgICAgICAgICAgICAgICAg
ICAjIGNyZWF0ZSBhIHJldHJ5IHRva2VuCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3RyYW5z
cG9ydC5zZW5kdG8oCi0gICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVfcXVpY19yZXRyeSgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPWhlYWRlci52ZXJzaW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9jaWQ9b3MudXJhbmRvbSg4KSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl9jaWQ9aGVhZGVyLnNvdXJjZV9jaWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGVzdGluYXRpb25fY2lkPWhl
YWRlci5kZXN0aW5hdGlvbl9jaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnlf
dG9rZW49c2VsZi5fcmV0cnkuY3JlYXRlX3Rva2VuKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhZGRyLCBoZWFkZXIuZGVzdGluYXRpb25fY2lkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAg
ICAgICAgICBhZGRyLAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybgotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgdmFs
aWRhdGUgcmV0cnkgdG9rZW4KLSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgICAgICAgICAgb3JpZ2luYWxfY29ubmVjdGlvbl9pZCA9IHNlbGYuX3JldHJ5LnZhbGlkYXRl
X3Rva2VuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIsIGhlYWRlci50b2tlbgot
ICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFs
dWVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAj
IGNyZWF0ZSBuZXcgY29ubmVjdGlvbgotICAgICAgICAgICAgY29ubmVjdGlvbiA9IFF1aWNDb25u
ZWN0aW9uKAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249c2VsZi5fY29uZmlndXJhdGlv
biwKLSAgICAgICAgICAgICAgICBsb2dnZXJfY29ubmVjdGlvbl9pZD1vcmlnaW5hbF9jb25uZWN0
aW9uX2lkIG9yIGhlYWRlci5kZXN0aW5hdGlvbl9jaWQsCi0gICAgICAgICAgICAgICAgb3JpZ2lu
YWxfY29ubmVjdGlvbl9pZD1vcmlnaW5hbF9jb25uZWN0aW9uX2lkLAotICAgICAgICAgICAgICAg
IHNlc3Npb25fdGlja2V0X2ZldGNoZXI9c2VsZi5fc2Vzc2lvbl90aWNrZXRfZmV0Y2hlciwKLSAg
ICAgICAgICAgICAgICBzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXNlbGYuX3Nlc3Npb25fdGlja2V0
X2hhbmRsZXIsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBwcm90b2NvbCA9IHNlbGYuX2Ny
ZWF0ZV9wcm90b2NvbCgKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uLCBzdHJlYW1faGFuZGxl
cj1zZWxmLl9zdHJlYW1faGFuZGxlcgotICAgICAgICAgICAgKQotICAgICAgICAgICAgcHJvdG9j
b2wuY29ubmVjdGlvbl9tYWRlKHNlbGYuX3RyYW5zcG9ydCkKLQotICAgICAgICAgICAgIyByZWdp
c3RlciBjYWxsYmFja3MKLSAgICAgICAgICAgIHByb3RvY29sLl9jb25uZWN0aW9uX2lkX2lzc3Vl
ZF9oYW5kbGVyID0gcGFydGlhbCgKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25uZWN0aW9uX2lk
X2lzc3VlZCwgcHJvdG9jb2w9cHJvdG9jb2wKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHBy
b3RvY29sLl9jb25uZWN0aW9uX2lkX3JldGlyZWRfaGFuZGxlciA9IHBhcnRpYWwoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fY29ubmVjdGlvbl9pZF9yZXRpcmVkLCBwcm90b2NvbD1wcm90b2NvbAot
ICAgICAgICAgICAgKQotICAgICAgICAgICAgcHJvdG9jb2wuX2Nvbm5lY3Rpb25fdGVybWluYXRl
ZF9oYW5kbGVyID0gcGFydGlhbCgKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25uZWN0aW9uX3Rl
cm1pbmF0ZWQsIHByb3RvY29sPXByb3RvY29sCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAg
IHNlbGYuX3Byb3RvY29sc1toZWFkZXIuZGVzdGluYXRpb25fY2lkXSA9IHByb3RvY29sCi0gICAg
ICAgICAgICBzZWxmLl9wcm90b2NvbHNbY29ubmVjdGlvbi5ob3N0X2NpZF0gPSBwcm90b2NvbAot
Ci0gICAgICAgIGlmIHByb3RvY29sIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcHJvdG9jb2wu
ZGF0YWdyYW1fcmVjZWl2ZWQoZGF0YSwgYWRkcikKLQotICAgIGRlZiBfY29ubmVjdGlvbl9pZF9p
c3N1ZWQoc2VsZiwgY2lkOiBieXRlcywgcHJvdG9jb2w6IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wp
OgotICAgICAgICBzZWxmLl9wcm90b2NvbHNbY2lkXSA9IHByb3RvY29sCi0KLSAgICBkZWYgX2Nv
bm5lY3Rpb25faWRfcmV0aXJlZCgKLSAgICAgICAgc2VsZiwgY2lkOiBieXRlcywgcHJvdG9jb2w6
IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIGFzc2VydCBz
ZWxmLl9wcm90b2NvbHNbY2lkXSA9PSBwcm90b2NvbAotICAgICAgICBkZWwgc2VsZi5fcHJvdG9j
b2xzW2NpZF0KLQotICAgIGRlZiBfY29ubmVjdGlvbl90ZXJtaW5hdGVkKHNlbGYsIHByb3RvY29s
OiBRdWljQ29ubmVjdGlvblByb3RvY29sKToKLSAgICAgICAgZm9yIGNpZCwgcHJvdG8gaW4gbGlz
dChzZWxmLl9wcm90b2NvbHMuaXRlbXMoKSk6Ci0gICAgICAgICAgICBpZiBwcm90byA9PSBwcm90
b2NvbDoKLSAgICAgICAgICAgICAgICBkZWwgc2VsZi5fcHJvdG9jb2xzW2NpZF0KLQotCi1hc3lu
YyBkZWYgc2VydmUoCi0gICAgaG9zdDogc3RyLAotICAgIHBvcnQ6IGludCwKLSAgICAqLAotICAg
IGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uLAotICAgIGNyZWF0ZV9wcm90b2NvbDog
Q2FsbGFibGUgPSBRdWljQ29ubmVjdGlvblByb3RvY29sLAotICAgIHNlc3Npb25fdGlja2V0X2Zl
dGNoZXI6IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRGZXRjaGVyXSA9IE5vbmUsCi0gICAgc2Vzc2lv
bl90aWNrZXRfaGFuZGxlcjogT3B0aW9uYWxbU2Vzc2lvblRpY2tldEhhbmRsZXJdID0gTm9uZSwK
LSAgICBzdGF0ZWxlc3NfcmV0cnk6IGJvb2wgPSBGYWxzZSwKLSAgICBzdHJlYW1faGFuZGxlcjog
UXVpY1N0cmVhbUhhbmRsZXIgPSBOb25lLAotKSAtPiBRdWljU2VydmVyOgotICAgICIiIgotICAg
IFN0YXJ0IGEgUVVJQyBzZXJ2ZXIgYXQgdGhlIGdpdmVuIGBob3N0YCBhbmQgYHBvcnRgLgotCi0g
ICAgOmZ1bmM6YHNlcnZlYCByZXF1aXJlcyBhIDpjbGFzczpgfmFpb3F1aWMucXVpYy5jb25maWd1
cmF0aW9uLlF1aWNDb25maWd1cmF0aW9uYAotICAgIGNvbnRhaW5pbmcgVExTIGNlcnRpZmljYXRl
IGFuZCBwcml2YXRlIGtleSBhcyB0aGUgYGBjb25maWd1cmF0aW9uYGAgYXJndW1lbnQuCi0KLSAg
ICA6ZnVuYzpgc2VydmVgIGFsc28gYWNjZXB0cyB0aGUgZm9sbG93aW5nIG9wdGlvbmFsIGFyZ3Vt
ZW50czoKLQotICAgICogYGBjcmVhdGVfcHJvdG9jb2xgYCBhbGxvd3MgY3VzdG9taXppbmcgdGhl
IDpjbGFzczpgfmFzeW5jaW8uUHJvdG9jb2xgIHRoYXQKLSAgICAgIG1hbmFnZXMgdGhlIGNvbm5l
Y3Rpb24uIEl0IHNob3VsZCBiZSBhIGNhbGxhYmxlIG9yIGNsYXNzIGFjY2VwdGluZyB0aGUgc2Ft
ZQotICAgICAgYXJndW1lbnRzIGFzIDpjbGFzczpgfmFpb3F1aWMuYXN5bmNpby5RdWljQ29ubmVj
dGlvblByb3RvY29sYCBhbmQgcmV0dXJuaW5nCi0gICAgICBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6
YH5haW9xdWljLmFzeW5jaW8uUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbGAgb3IgYSBzdWJjbGFzcy4K
LSAgICAqIGBgc2Vzc2lvbl90aWNrZXRfZmV0Y2hlcmBgIGlzIGEgY2FsbGJhY2sgd2hpY2ggaXMg
aW52b2tlZCBieSB0aGUgVExTCi0gICAgICBlbmdpbmUgd2hlbiBhIHNlc3Npb24gdGlja2V0IGlz
IHByZXNlbnRlZCBieSB0aGUgcGVlci4gSXQgc2hvdWxkIHJldHVybgotICAgICAgdGhlIHNlc3Np
b24gdGlja2V0IHdpdGggdGhlIHNwZWNpZmllZCBJRCBvciBgTm9uZWAgaWYgaXQgaXMgbm90IGZv
dW5kLgotICAgICogYGBzZXNzaW9uX3RpY2tldF9oYW5kbGVyYGAgaXMgYSBjYWxsYmFjayB3aGlj
aCBpcyBpbnZva2VkIGJ5IHRoZSBUTFMKLSAgICAgIGVuZ2luZSB3aGVuIGEgbmV3IHNlc3Npb24g
dGlja2V0IGlzIGlzc3VlZC4gSXQgc2hvdWxkIHN0b3JlIHRoZSBzZXNzaW9uCi0gICAgICB0aWNr
ZXQgZm9yIGZ1dHVyZSBsb29rdXAuCi0gICAgKiBgYHN0YXRlbGVzc19yZXRyeWBgIHNwZWNpZmll
cyB3aGV0aGVyIGEgc3RhdGVsZXNzIHJldHJ5IHNob3VsZCBiZQotICAgICAgcGVyZm9ybWVkIHBy
aW9yIHRvIGhhbmRsaW5nIG5ldyBjb25uZWN0aW9ucy4KLSAgICAqIGBgc3RyZWFtX2hhbmRsZXJg
YCBpcyBhIGNhbGxiYWNrIHdoaWNoIGlzIGludm9rZWQgd2hlbmV2ZXIgYSBzdHJlYW0gaXMKLSAg
ICAgIGNyZWF0ZWQuIEl0IG11c3QgYWNjZXB0IHR3byBhcmd1bWVudHM6IGEgOmNsYXNzOmBhc3lu
Y2lvLlN0cmVhbVJlYWRlcmAKLSAgICAgIGFuZCBhIDpjbGFzczpgYXN5bmNpby5TdHJlYW1Xcml0
ZXJgLgotICAgICIiIgotCi0gICAgbG9vcCA9IGFzeW5jaW8uZ2V0X2V2ZW50X2xvb3AoKQotCi0g
ICAgXywgcHJvdG9jb2wgPSBhd2FpdCBsb29wLmNyZWF0ZV9kYXRhZ3JhbV9lbmRwb2ludCgKLSAg
ICAgICAgbGFtYmRhOiBRdWljU2VydmVyKAotICAgICAgICAgICAgY29uZmlndXJhdGlvbj1jb25m
aWd1cmF0aW9uLAotICAgICAgICAgICAgY3JlYXRlX3Byb3RvY29sPWNyZWF0ZV9wcm90b2NvbCwK
LSAgICAgICAgICAgIHNlc3Npb25fdGlja2V0X2ZldGNoZXI9c2Vzc2lvbl90aWNrZXRfZmV0Y2hl
ciwKLSAgICAgICAgICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI9c2Vzc2lvbl90aWNrZXRfaGFu
ZGxlciwKLSAgICAgICAgICAgIHN0YXRlbGVzc19yZXRyeT1zdGF0ZWxlc3NfcmV0cnksCi0gICAg
ICAgICAgICBzdHJlYW1faGFuZGxlcj1zdHJlYW1faGFuZGxlciwKLSAgICAgICAgKSwKLSAgICAg
ICAgbG9jYWxfYWRkcj0oaG9zdCwgcG9ydCksCi0gICAgKQotICAgIHJldHVybiBjYXN0KFF1aWNT
ZXJ2ZXIsIHByb3RvY29sKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2Fz
eW5jaW8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI4MzQ1ZTBjZThm
NWM0M2Q0NjcxY2JiY2RhZDg4ZjFlYjE1OTJhNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy9hc3luY2lvL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL2FzeW5jaW8vY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2Fz
eW5jaW8vY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2FzeW5jaW8vcHJvdG9j
b2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvYXN5bmNpby9zZXJ2ZXIucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9idWZmZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
c3JjL2Fpb3F1aWMvYnVmZmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2E0
Mjk4Zjk1NGMyMmU1Mzg5YTEyOWExZWU2NzVlOGVmZWQ4N2VjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9idWZm
ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1mcm9tIC5fYnVmZmVyIGltcG9y
dCBCdWZmZXIsIEJ1ZmZlclJlYWRFcnJvciwgQnVmZmVyV3JpdGVFcnJvciAgIyBub3FhCi0KLVVJ
TlRfVkFSX01BWCA9IDB4M0ZGRkZGRkZGRkZGRkZGRgotCi0KLWRlZiBlbmNvZGVfdWludF92YXIo
dmFsdWU6IGludCkgLT4gYnl0ZXM6Ci0gICAgIiIiCi0gICAgRW5jb2RlIGEgdmFyaWFibGUtbGVu
Z3RoIHVuc2lnbmVkIGludGVnZXIuCi0gICAgIiIiCi0gICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5
PTgpCi0gICAgYnVmLnB1c2hfdWludF92YXIodmFsdWUpCi0gICAgcmV0dXJuIGJ1Zi5kYXRhCi0K
LQotZGVmIHNpemVfdWludF92YXIodmFsdWU6IGludCkgLT4gaW50OgotICAgICIiIgotICAgIFJl
dHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIHRvIGVuY29kZSB0aGUgZ2l2ZW4gdmFs
dWUKLSAgICBhcyBhIFFVSUMgdmFyaWFibGUtbGVuZ3RoIHVuc2lnbmVkIGludGVnZXIuCi0gICAg
IiIiCi0gICAgaWYgdmFsdWUgPD0gMHgzRjoKLSAgICAgICAgcmV0dXJuIDEKLSAgICBlbGlmIHZh
bHVlIDw9IDB4M0ZGRjoKLSAgICAgICAgcmV0dXJuIDIKLSAgICBlbGlmIHZhbHVlIDw9IDB4M0ZG
RkZGRkY6Ci0gICAgICAgIHJldHVybiA0Ci0gICAgZWxpZiB2YWx1ZSA8PSAweDNGRkZGRkZGRkZG
RkZGRkY6Ci0gICAgICAgIHJldHVybiA4Ci0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiSW50ZWdlciBpcyB0b28gYmlnIGZvciBhIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMC9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
c3JjL2Fpb3F1aWMvaDAvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDAvY29ubmVjdGlvbi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9oMC9jb25uZWN0aW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyYzhkZGNlYzZiMzkzMGFhZmYzYzFjZDE1YjFlZTRlN2Q2YjE4ZDhkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVp
Yy9oMC9jb25uZWN0aW9uLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotZnJvbSB0
eXBpbmcgaW1wb3J0IERpY3QsIExpc3QKLQotZnJvbSBhaW9xdWljLmgzLmV2ZW50cyBpbXBvcnQg
RGF0YVJlY2VpdmVkLCBIM0V2ZW50LCBIZWFkZXJzLCBIZWFkZXJzUmVjZWl2ZWQKLWZyb20gYWlv
cXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0IFF1aWNDb25uZWN0aW9uCi1mcm9tIGFpb3F1aWMu
cXVpYy5ldmVudHMgaW1wb3J0IFF1aWNFdmVudCwgU3RyZWFtRGF0YVJlY2VpdmVkCi0KLUgwX0FM
UE4gPSBbImhxLTI3IiwgImhxLTI2IiwgImhxLTI1Il0KLQotCi1jbGFzcyBIMENvbm5lY3Rpb246
Ci0gICAgIiIiCi0gICAgQW4gSFRUUC8wLjkgY29ubmVjdGlvbiBvYmplY3QuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcXVpYzogUXVpY0Nvbm5lY3Rpb24pOgotICAgICAgICBz
ZWxmLl9oZWFkZXJzX3JlY2VpdmVkOiBEaWN0W2ludCwgYm9vbF0gPSB7fQotICAgICAgICBzZWxm
Ll9pc19jbGllbnQgPSBxdWljLmNvbmZpZ3VyYXRpb24uaXNfY2xpZW50Ci0gICAgICAgIHNlbGYu
X3F1aWMgPSBxdWljCi0KLSAgICBkZWYgaGFuZGxlX2V2ZW50KHNlbGYsIGV2ZW50OiBRdWljRXZl
bnQpIC0+IExpc3RbSDNFdmVudF06Ci0gICAgICAgIGh0dHBfZXZlbnRzOiBMaXN0W0gzRXZlbnRd
ID0gW10KLQotICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBTdHJlYW1EYXRhUmVjZWl2ZWQp
IGFuZCAoZXZlbnQuc3RyZWFtX2lkICUgNCkgPT0gMDoKLSAgICAgICAgICAgIGRhdGEgPSBldmVu
dC5kYXRhCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5faGVhZGVyc19yZWNlaXZlZC5nZXQoZXZl
bnQuc3RyZWFtX2lkLCBGYWxzZSk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5faXNfY2xpZW50
OgotICAgICAgICAgICAgICAgICAgICBodHRwX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVycz1bXSwgc3RyZWFtX2VuZGVkPUZhbHNlLCBzdHJlYW1faWQ9ZXZlbnQuc3RyZWFtX2lk
Ci0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBtZXRob2QsIHBhdGggPSBkYXRh
LnJzdHJpcCgpLnNwbGl0KGIiICIsIDEpCi0gICAgICAgICAgICAgICAgICAgIGh0dHBfZXZlbnRz
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsoYiI6bWV0aG9kIiwgbWV0aG9kKSwgKGIi
OnBhdGgiLCBwYXRoKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVk
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1ldmVudC5zdHJl
YW1faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGIiIgotICAgICAgICAgICAgICAgIHNlbGYuX2hl
YWRlcnNfcmVjZWl2ZWRbZXZlbnQuc3RyZWFtX2lkXSA9IFRydWUKLQotICAgICAgICAgICAgaHR0
cF9ldmVudHMuYXBwZW5kKAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZCgKLSAgICAgICAg
ICAgICAgICAgICAgZGF0YT1kYXRhLCBzdHJlYW1fZW5kZWQ9ZXZlbnQuZW5kX3N0cmVhbSwgc3Ry
ZWFtX2lkPWV2ZW50LnN0cmVhbV9pZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkK
LQotICAgICAgICByZXR1cm4gaHR0cF9ldmVudHMKLQotICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwg
c3RyZWFtX2lkOiBpbnQsIGRhdGE6IGJ5dGVzLCBlbmRfc3RyZWFtOiBib29sKSAtPiBOb25lOgot
ICAgICAgICBzZWxmLl9xdWljLnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBkYXRhLCBlbmRf
c3RyZWFtKQotCi0gICAgZGVmIHNlbmRfaGVhZGVycygKLSAgICAgICAgc2VsZiwgc3RyZWFtX2lk
OiBpbnQsIGhlYWRlcnM6IEhlYWRlcnMsIGVuZF9zdHJlYW06IGJvb2wgPSBGYWxzZQotICAgICkg
LT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgaGVhZGVy
c19kaWN0ID0gZGljdChoZWFkZXJzKQotICAgICAgICAgICAgZGF0YSA9IGhlYWRlcnNfZGljdFti
IjptZXRob2QiXSArIGIiICIgKyBoZWFkZXJzX2RpY3RbYiI6cGF0aCJdICsgYiJcclxuIgotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZGF0YSA9IGIiIgotICAgICAgICBzZWxmLl9xdWljLnNl
bmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBkYXRhLCBlbmRfc3RyZWFtKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL2gwL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4ZjM2MWVhNDA1NTFiNjI4NmIzZTFlZTVmMjlhNzc3NGFlNjA3MGI1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlv
cXVpYy9oMC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMC9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9zcmMvYWlvcXVpYy9oMC9jb25uZWN0aW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvaDMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMv
aDMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0YjgyODVh
NTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL19faW5pdF9f
LnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L2gzL2Nvbm5lY3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvY29ubmVjdGlv
bi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRmOGM1NDI4M2NkNzdjN2Y5ZDNl
ZGRlOGQ3OTBjMDJhMDUzMDhkNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvY29ubmVjdGlvbi5weQorKysg
L2Rldi9udWxsCkBAIC0xLDc3NiArMCwwIEBACi1pbXBvcnQgbG9nZ2luZwotZnJvbSBlbnVtIGlt
cG9ydCBFbnVtLCBJbnRFbnVtCi1mcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgTGlzdCwgT3B0aW9u
YWwsIFNldAotCi1pbXBvcnQgcHlsc3FwYWNrCi0KLWZyb20gYWlvcXVpYy5idWZmZXIgaW1wb3J0
IEJ1ZmZlciwgQnVmZmVyUmVhZEVycm9yLCBlbmNvZGVfdWludF92YXIKLWZyb20gYWlvcXVpYy5o
My5ldmVudHMgaW1wb3J0ICgKLSAgICBEYXRhUmVjZWl2ZWQsCi0gICAgSDNFdmVudCwKLSAgICBI
ZWFkZXJzLAotICAgIEhlYWRlcnNSZWNlaXZlZCwKLSAgICBQdXNoUHJvbWlzZVJlY2VpdmVkLAot
KQotZnJvbSBhaW9xdWljLmgzLmV4Y2VwdGlvbnMgaW1wb3J0IE5vQXZhaWxhYmxlUHVzaElERXJy
b3IKLWZyb20gYWlvcXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0IFF1aWNDb25uZWN0aW9uLCBz
dHJlYW1faXNfdW5pZGlyZWN0aW9uYWwKLWZyb20gYWlvcXVpYy5xdWljLmV2ZW50cyBpbXBvcnQg
UXVpY0V2ZW50LCBTdHJlYW1EYXRhUmVjZWl2ZWQKLWZyb20gYWlvcXVpYy5xdWljLmxvZ2dlciBp
bXBvcnQgUXVpY0xvZ2dlclRyYWNlCi0KLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJodHRw
MyIpCi0KLUgzX0FMUE4gPSBbImgzLTI3IiwgImgzLTI2IiwgImgzLTI1Il0KLQotCi1jbGFzcyBF
cnJvckNvZGUoSW50RW51bSk6Ci0gICAgSFRUUF9OT19FUlJPUiA9IDB4MTAwCi0gICAgSFRUUF9H
RU5FUkFMX1BST1RPQ09MX0VSUk9SID0gMHgxMDEKLSAgICBIVFRQX0lOVEVSTkFMX0VSUk9SID0g
MHgxMDIKLSAgICBIVFRQX1NUUkVBTV9DUkVBVElPTl9FUlJPUiA9IDB4MTAzCi0gICAgSFRUUF9D
TE9TRURfQ1JJVElDQUxfU1RSRUFNID0gMHgxMDQKLSAgICBIVFRQX0ZSQU1FX1VORVhQRUNURUQg
PSAweDEwNQotICAgIEhUVFBfRlJBTUVfRVJST1IgPSAweDEwNgotICAgIEhUVFBfRVhDRVNTSVZF
X0xPQUQgPSAweDEwNwotICAgIEhUVFBfSURfRVJST1IgPSAweDEwOAotICAgIEhUVFBfU0VUVElO
R1NfRVJST1IgPSAweDEwOQotICAgIEhUVFBfTUlTU0lOR19TRVRUSU5HUyA9IDB4MTBBCi0gICAg
SFRUUF9SRVFVRVNUX1JFSkVDVEVEID0gMHgxMEIKLSAgICBIVFRQX1JFUVVFU1RfQ0FOQ0VMTEVE
ID0gMHgxMEMKLSAgICBIVFRQX1JFUVVFU1RfSU5DT01QTEVURSA9IDB4MTBECi0gICAgSFRUUF9F
QVJMWV9SRVNQT05TRSA9IDB4MTBFCi0gICAgSFRUUF9DT05ORUNUX0VSUk9SID0gMHgxMEYKLSAg
ICBIVFRQX1ZFUlNJT05fRkFMTEJBQ0sgPSAweDExMAotICAgIEhUVFBfUVBBQ0tfREVDT01QUkVT
U0lPTl9GQUlMRUQgPSAweDIwMAotICAgIEhUVFBfUVBBQ0tfRU5DT0RFUl9TVFJFQU1fRVJST1Ig
PSAweDIwMQotICAgIEhUVFBfUVBBQ0tfREVDT0RFUl9TVFJFQU1fRVJST1IgPSAweDIwMgotCi0K
LWNsYXNzIEZyYW1lVHlwZShJbnRFbnVtKToKLSAgICBEQVRBID0gMHgwCi0gICAgSEVBREVSUyA9
IDB4MQotICAgIFBSSU9SSVRZID0gMHgyCi0gICAgQ0FOQ0VMX1BVU0ggPSAweDMKLSAgICBTRVRU
SU5HUyA9IDB4NAotICAgIFBVU0hfUFJPTUlTRSA9IDB4NQotICAgIEdPQVdBWSA9IDB4NwotICAg
IE1BWF9QVVNIX0lEID0gMHhECi0gICAgRFVQTElDQVRFX1BVU0ggPSAweEUKLQotCi1jbGFzcyBI
ZWFkZXJzU3RhdGUoRW51bSk6Ci0gICAgSU5JVElBTCA9IDAKLSAgICBBRlRFUl9IRUFERVJTID0g
MQotICAgIEFGVEVSX1RSQUlMRVJTID0gMgotCi0KLWNsYXNzIFNldHRpbmcoSW50RW51bSk6Ci0g
ICAgUVBBQ0tfTUFYX1RBQkxFX0NBUEFDSVRZID0gMQotICAgIFNFVFRJTkdTX01BWF9IRUFERVJf
TElTVF9TSVpFID0gNgotICAgIFFQQUNLX0JMT0NLRURfU1RSRUFNUyA9IDcKLSAgICBTRVRUSU5H
U19OVU1fUExBQ0VIT0xERVJTID0gOQotCi0KLWNsYXNzIFN0cmVhbVR5cGUoSW50RW51bSk6Ci0g
ICAgQ09OVFJPTCA9IDAKLSAgICBQVVNIID0gMQotICAgIFFQQUNLX0VOQ09ERVIgPSAyCi0gICAg
UVBBQ0tfREVDT0RFUiA9IDMKLQotCi1jbGFzcyBQcm90b2NvbEVycm9yKEV4Y2VwdGlvbik6Ci0g
ICAgIiIiCi0gICAgQmFzZSBjbGFzcyBmb3IgcHJvdG9jb2wgZXJyb3JzLgotCi0gICAgVGhlc2Ug
ZXJyb3JzIGFyZSBub3QgZXhwb3NlZCB0byB0aGUgQVBJIHVzZXIsIHRoZXkgYXJlIGhhbmRsZWQK
LSAgICBpbiA6bWV0aDpgSDNDb25uZWN0aW9uLmhhbmRsZV9ldmVudGAuCi0gICAgIiIiCi0KLSAg
ICBlcnJvcl9jb2RlID0gRXJyb3JDb2RlLkhUVFBfR0VORVJBTF9QUk9UT0NPTF9FUlJPUgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYXNvbl9waHJhc2U6IHN0ciA9ICIiKToKLSAgICAgICAg
c2VsZi5yZWFzb25fcGhyYXNlID0gcmVhc29uX3BocmFzZQotCi0KLWNsYXNzIFFwYWNrRGVjb21w
cmVzc2lvbkZhaWxlZChQcm90b2NvbEVycm9yKToKLSAgICBlcnJvcl9jb2RlID0gRXJyb3JDb2Rl
LkhUVFBfUVBBQ0tfREVDT01QUkVTU0lPTl9GQUlMRUQKLQotCi1jbGFzcyBRcGFja0RlY29kZXJT
dHJlYW1FcnJvcihQcm90b2NvbEVycm9yKToKLSAgICBlcnJvcl9jb2RlID0gRXJyb3JDb2RlLkhU
VFBfUVBBQ0tfREVDT0RFUl9TVFJFQU1fRVJST1IKLQotCi1jbGFzcyBRcGFja0VuY29kZXJTdHJl
YW1FcnJvcihQcm90b2NvbEVycm9yKToKLSAgICBlcnJvcl9jb2RlID0gRXJyb3JDb2RlLkhUVFBf
UVBBQ0tfRU5DT0RFUl9TVFJFQU1fRVJST1IKLQotCi1jbGFzcyBTdHJlYW1DcmVhdGlvbkVycm9y
KFByb3RvY29sRXJyb3IpOgotICAgIGVycm9yX2NvZGUgPSBFcnJvckNvZGUuSFRUUF9TVFJFQU1f
Q1JFQVRJT05fRVJST1IKLQotCi1jbGFzcyBGcmFtZVVuZXhwZWN0ZWQoUHJvdG9jb2xFcnJvcik6
Ci0gICAgZXJyb3JfY29kZSA9IEVycm9yQ29kZS5IVFRQX0ZSQU1FX1VORVhQRUNURUQKLQotCi1k
ZWYgZW5jb2RlX2ZyYW1lKGZyYW1lX3R5cGU6IGludCwgZnJhbWVfZGF0YTogYnl0ZXMpIC0+IGJ5
dGVzOgotICAgIGZyYW1lX2xlbmd0aCA9IGxlbihmcmFtZV9kYXRhKQotICAgIGJ1ZiA9IEJ1ZmZl
cihjYXBhY2l0eT1mcmFtZV9sZW5ndGggKyAxNikKLSAgICBidWYucHVzaF91aW50X3ZhcihmcmFt
ZV90eXBlKQotICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKGZyYW1lX2xlbmd0aCkKLSAgICBidWYucHVz
aF9ieXRlcyhmcmFtZV9kYXRhKQotICAgIHJldHVybiBidWYuZGF0YQotCi0KLWRlZiBlbmNvZGVf
c2V0dGluZ3Moc2V0dGluZ3M6IERpY3RbaW50LCBpbnRdKSAtPiBieXRlczoKLSAgICBidWYgPSBC
dWZmZXIoY2FwYWNpdHk9MTAyNCkKLSAgICBmb3Igc2V0dGluZywgdmFsdWUgaW4gc2V0dGluZ3Mu
aXRlbXMoKToKLSAgICAgICAgYnVmLnB1c2hfdWludF92YXIoc2V0dGluZykKLSAgICAgICAgYnVm
LnB1c2hfdWludF92YXIodmFsdWUpCi0gICAgcmV0dXJuIGJ1Zi5kYXRhCi0KLQotZGVmIHBhcnNl
X21heF9wdXNoX2lkKGRhdGE6IGJ5dGVzKSAtPiBpbnQ6Ci0gICAgYnVmID0gQnVmZmVyKGRhdGE9
ZGF0YSkKLSAgICBtYXhfcHVzaF9pZCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICBhc3NlcnQg
YnVmLmVvZigpCi0gICAgcmV0dXJuIG1heF9wdXNoX2lkCi0KLQotZGVmIHBhcnNlX3NldHRpbmdz
KGRhdGE6IGJ5dGVzKSAtPiBEaWN0W2ludCwgaW50XToKLSAgICBidWYgPSBCdWZmZXIoZGF0YT1k
YXRhKQotICAgIHNldHRpbmdzID0gW10KLSAgICB3aGlsZSBub3QgYnVmLmVvZigpOgotICAgICAg
ICBzZXR0aW5nID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICB2YWx1ZSA9IGJ1Zi5wdWxs
X3VpbnRfdmFyKCkKLSAgICAgICAgc2V0dGluZ3MuYXBwZW5kKChzZXR0aW5nLCB2YWx1ZSkpCi0g
ICAgcmV0dXJuIGRpY3Qoc2V0dGluZ3MpCi0KLQotZGVmIHFsb2dfZW5jb2RlX2RhdGFfZnJhbWUo
Ynl0ZV9sZW5ndGg6IGludCwgc3RyZWFtX2lkOiBpbnQpIC0+IERpY3Q6Ci0gICAgcmV0dXJuIHsK
LSAgICAgICAgImJ5dGVfbGVuZ3RoIjogc3RyKGJ5dGVfbGVuZ3RoKSwKLSAgICAgICAgImZyYW1l
IjogeyJmcmFtZV90eXBlIjogImRhdGEifSwKLSAgICAgICAgInN0cmVhbV9pZCI6IHN0cihzdHJl
YW1faWQpLAotICAgIH0KLQotCi1kZWYgcWxvZ19lbmNvZGVfaGVhZGVycyhoZWFkZXJzOiBIZWFk
ZXJzKSAtPiBMaXN0W0RpY3RdOgotICAgIHJldHVybiBbCi0gICAgICAgIHsibmFtZSI6IGhbMF0u
ZGVjb2RlKCJ1dGY4IiksICJ2YWx1ZSI6IGhbMV0uZGVjb2RlKCJ1dGY4Iil9IGZvciBoIGluIGhl
YWRlcnMKLSAgICBdCi0KLQotZGVmIHFsb2dfZW5jb2RlX2hlYWRlcnNfZnJhbWUoCi0gICAgYnl0
ZV9sZW5ndGg6IGludCwgaGVhZGVyczogSGVhZGVycywgc3RyZWFtX2lkOiBpbnQKLSkgLT4gRGlj
dDoKLSAgICByZXR1cm4gewotICAgICAgICAiYnl0ZV9sZW5ndGgiOiBzdHIoYnl0ZV9sZW5ndGgp
LAotICAgICAgICAiZnJhbWUiOiB7ImZyYW1lX3R5cGUiOiAiaGVhZGVycyIsICJoZWFkZXJzIjog
cWxvZ19lbmNvZGVfaGVhZGVycyhoZWFkZXJzKX0sCi0gICAgICAgICJzdHJlYW1faWQiOiBzdHIo
c3RyZWFtX2lkKSwKLSAgICB9Ci0KLQotZGVmIHFsb2dfZW5jb2RlX3B1c2hfcHJvbWlzZV9mcmFt
ZSgKLSAgICBieXRlX2xlbmd0aDogaW50LCBoZWFkZXJzOiBIZWFkZXJzLCBwdXNoX2lkOiBpbnQs
IHN0cmVhbV9pZDogaW50Ci0pIC0+IERpY3Q6Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgImJ5dGVf
bGVuZ3RoIjogc3RyKGJ5dGVfbGVuZ3RoKSwKLSAgICAgICAgImZyYW1lIjogewotICAgICAgICAg
ICAgImZyYW1lX3R5cGUiOiAicHVzaF9wcm9taXNlIiwKLSAgICAgICAgICAgICJoZWFkZXJzIjog
cWxvZ19lbmNvZGVfaGVhZGVycyhoZWFkZXJzKSwKLSAgICAgICAgICAgICJwdXNoX2lkIjogc3Ry
KHB1c2hfaWQpLAotICAgICAgICB9LAotICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVhbV9p
ZCksCi0gICAgfQotCi0KLWNsYXNzIEgzU3RyZWFtOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBz
dHJlYW1faWQ6IGludCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5ibG9ja2VkID0gRmFsc2UKLSAg
ICAgICAgc2VsZi5ibG9ja2VkX2ZyYW1lX3NpemU6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAg
ICAgIHNlbGYuYnVmZmVyID0gYiIiCi0gICAgICAgIHNlbGYuZW5kZWQgPSBGYWxzZQotICAgICAg
ICBzZWxmLmZyYW1lX3NpemU6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYuZnJh
bWVfdHlwZTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5oZWFkZXJzX3JlY3Zf
c3RhdGU6IEhlYWRlcnNTdGF0ZSA9IEhlYWRlcnNTdGF0ZS5JTklUSUFMCi0gICAgICAgIHNlbGYu
aGVhZGVyc19zZW5kX3N0YXRlOiBIZWFkZXJzU3RhdGUgPSBIZWFkZXJzU3RhdGUuSU5JVElBTAot
ICAgICAgICBzZWxmLnB1c2hfaWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYu
c3RyZWFtX2lkID0gc3RyZWFtX2lkCi0gICAgICAgIHNlbGYuc3RyZWFtX3R5cGU6IE9wdGlvbmFs
W2ludF0gPSBOb25lCi0KLQotY2xhc3MgSDNDb25uZWN0aW9uOgotICAgICIiIgotICAgIEEgbG93
LWxldmVsIEhUVFAvMyBjb25uZWN0aW9uIG9iamVjdC4KLQotICAgIDpwYXJhbSBxdWljOiBBIDpj
bGFzczpgfmFpb3F1aWMuY29ubmVjdGlvbi5RdWljQ29ubmVjdGlvbmAgaW5zdGFuY2UuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcXVpYzogUXVpY0Nvbm5lY3Rpb24pOgotICAg
ICAgICBzZWxmLl9tYXhfdGFibGVfY2FwYWNpdHkgPSA0MDk2Ci0gICAgICAgIHNlbGYuX2Jsb2Nr
ZWRfc3RyZWFtcyA9IDE2Ci0KLSAgICAgICAgc2VsZi5faXNfY2xpZW50ID0gcXVpYy5jb25maWd1
cmF0aW9uLmlzX2NsaWVudAotICAgICAgICBzZWxmLl9pc19kb25lID0gRmFsc2UKLSAgICAgICAg
c2VsZi5fcXVpYyA9IHF1aWMKLSAgICAgICAgc2VsZi5fcXVpY19sb2dnZXI6IE9wdGlvbmFsW1F1
aWNMb2dnZXJUcmFjZV0gPSBxdWljLl9xdWljX2xvZ2dlcgotICAgICAgICBzZWxmLl9kZWNvZGVy
ID0gcHlsc3FwYWNrLkRlY29kZXIoCi0gICAgICAgICAgICBzZWxmLl9tYXhfdGFibGVfY2FwYWNp
dHksIHNlbGYuX2Jsb2NrZWRfc3RyZWFtcwotICAgICAgICApCi0gICAgICAgIHNlbGYuX2RlY29k
ZXJfYnl0ZXNfcmVjZWl2ZWQgPSAwCi0gICAgICAgIHNlbGYuX2RlY29kZXJfYnl0ZXNfc2VudCA9
IDAKLSAgICAgICAgc2VsZi5fZW5jb2RlciA9IHB5bHNxcGFjay5FbmNvZGVyKCkKLSAgICAgICAg
c2VsZi5fZW5jb2Rlcl9ieXRlc19yZWNlaXZlZCA9IDAKLSAgICAgICAgc2VsZi5fZW5jb2Rlcl9i
eXRlc19zZW50ID0gMAotICAgICAgICBzZWxmLl9zdHJlYW06IERpY3RbaW50LCBIM1N0cmVhbV0g
PSB7fQotCi0gICAgICAgIHNlbGYuX21heF9wdXNoX2lkOiBPcHRpb25hbFtpbnRdID0gOCBpZiBz
ZWxmLl9pc19jbGllbnQgZWxzZSBOb25lCi0gICAgICAgIHNlbGYuX25leHRfcHVzaF9pZDogaW50
ID0gMAotCi0gICAgICAgIHNlbGYuX2xvY2FsX2NvbnRyb2xfc3RyZWFtX2lkOiBPcHRpb25hbFtp
bnRdID0gTm9uZQotICAgICAgICBzZWxmLl9sb2NhbF9kZWNvZGVyX3N0cmVhbV9pZDogT3B0aW9u
YWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fbG9jYWxfZW5jb2Rlcl9zdHJlYW1faWQ6IE9w
dGlvbmFsW2ludF0gPSBOb25lCi0KLSAgICAgICAgc2VsZi5fcGVlcl9jb250cm9sX3N0cmVhbV9p
ZDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVlcl9kZWNvZGVyX3N0cmVh
bV9pZDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVlcl9lbmNvZGVyX3N0
cmVhbV9pZDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLQotICAgICAgICBzZWxmLl9pbml0X2Nvbm5l
Y3Rpb24oKQotCi0gICAgZGVmIGhhbmRsZV9ldmVudChzZWxmLCBldmVudDogUXVpY0V2ZW50KSAt
PiBMaXN0W0gzRXZlbnRdOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgUVVJQyBldmVu
dCBhbmQgcmV0dXJuIGEgbGlzdCBvZiBIVFRQIGV2ZW50cy4KLQotICAgICAgICA6cGFyYW0gZXZl
bnQ6IFRoZSBRVUlDIGV2ZW50IHRvIGhhbmRsZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlz
aW5zdGFuY2UoZXZlbnQsIFN0cmVhbURhdGFSZWNlaXZlZCkgYW5kIG5vdCBzZWxmLl9pc19kb25l
OgotICAgICAgICAgICAgc3RyZWFtX2lkID0gZXZlbnQuc3RyZWFtX2lkCi0gICAgICAgICAgICBz
dHJlYW0gPSBzZWxmLl9nZXRfb3JfY3JlYXRlX3N0cmVhbShzdHJlYW1faWQpCi0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgaWYgc3RyZWFtX2lkICUgNCA9PSAwOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVjZWl2ZV9yZXF1ZXN0X29yX3B1c2hfZGF0YSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSwgZXZlbnQuZGF0YSwgZXZlbnQuZW5kX3N0cmVh
bQotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgZWxpZiBzdHJlYW1faXNf
dW5pZGlyZWN0aW9uYWwoc3RyZWFtX2lkKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX3JlY2VpdmVfc3RyZWFtX2RhdGFfdW5pKAotICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtLCBldmVudC5kYXRhLCBldmVudC5lbmRfc3RyZWFtCi0gICAgICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgIGV4Y2VwdCBQcm90b2NvbEVycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9pc19kb25lID0gVHJ1ZQotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWMuY2xvc2Uo
Ci0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9ZXhjLmVycm9yX2NvZGUsIHJlYXNvbl9w
aHJhc2U9ZXhjLnJlYXNvbl9waHJhc2UKLSAgICAgICAgICAgICAgICApCi0gICAgICAgIHJldHVy
biBbXQotCi0gICAgZGVmIHNlbmRfcHVzaF9wcm9taXNlKHNlbGYsIHN0cmVhbV9pZDogaW50LCBo
ZWFkZXJzOiBIZWFkZXJzKSAtPiBpbnQ6Ci0gICAgICAgICIiIgotICAgICAgICBTZW5kIGEgcHVz
aCBwcm9taXNlIHJlbGF0ZWQgdG8gdGhlIHNwZWNpZmllZCBzdHJlYW0uCi0KLSAgICAgICAgUmV0
dXJucyB0aGUgc3RyZWFtIElEIG9uIHdoaWNoIGhlYWRlcnMgYW5kIGRhdGEgY2FuIGJlIHNlbnQu
Ci0KLSAgICAgICAgOnBhcmFtIHN0cmVhbV9pZDogVGhlIHN0cmVhbSBJRCBvbiB3aGljaCB0byBz
ZW5kIHRoZSBkYXRhLgotICAgICAgICA6cGFyYW0gaGVhZGVyczogVGhlIEhUVFAgcmVxdWVzdCBo
ZWFkZXJzIGZvciB0aGlzIHB1c2guCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgbm90IHNl
bGYuX2lzX2NsaWVudCwgIk9ubHkgc2VydmVycyBtYXkgc2VuZCBhIHB1c2ggcHJvbWlzZS4iCi0g
ICAgICAgIGlmIHNlbGYuX21heF9wdXNoX2lkIGlzIE5vbmUgb3Igc2VsZi5fbmV4dF9wdXNoX2lk
ID49IHNlbGYuX21heF9wdXNoX2lkOgotICAgICAgICAgICAgcmFpc2UgTm9BdmFpbGFibGVQdXNo
SURFcnJvcgotCi0gICAgICAgICMgc2VuZCBwdXNoIHByb21pc2UKLSAgICAgICAgcHVzaF9pZCA9
IHNlbGYuX25leHRfcHVzaF9pZAotICAgICAgICBzZWxmLl9uZXh0X3B1c2hfaWQgKz0gMQotICAg
ICAgICBzZWxmLl9xdWljLnNlbmRfc3RyZWFtX2RhdGEoCi0gICAgICAgICAgICBzdHJlYW1faWQs
Ci0gICAgICAgICAgICBlbmNvZGVfZnJhbWUoCi0gICAgICAgICAgICAgICAgRnJhbWVUeXBlLlBV
U0hfUFJPTUlTRSwKLSAgICAgICAgICAgICAgICBlbmNvZGVfdWludF92YXIocHVzaF9pZCkgKyBz
ZWxmLl9lbmNvZGVfaGVhZGVycyhzdHJlYW1faWQsIGhlYWRlcnMpLAotICAgICAgICAgICAgKSwK
LSAgICAgICAgKQotCi0gICAgICAgICMgwqBjcmVhdGUgcHVzaCBzdHJlYW0KLSAgICAgICAgcHVz
aF9zdHJlYW1faWQgPSBzZWxmLl9jcmVhdGVfdW5pX3N0cmVhbShTdHJlYW1UeXBlLlBVU0gpCi0g
ICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0YShwdXNoX3N0cmVhbV9pZCwgZW5jb2Rl
X3VpbnRfdmFyKHB1c2hfaWQpKQotCi0gICAgICAgIHJldHVybiBwdXNoX3N0cmVhbV9pZAotCi0g
ICAgZGVmIHNlbmRfZGF0YShzZWxmLCBzdHJlYW1faWQ6IGludCwgZGF0YTogYnl0ZXMsIGVuZF9z
dHJlYW06IGJvb2wpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBTZW5kIGRhdGEgb24g
dGhlIGdpdmVuIHN0cmVhbS4KLQotICAgICAgICBUbyByZXRyaWV2ZSBkYXRhZ3JhbSB3aGljaCBu
ZWVkIHRvIGJlIHNlbnQgb3ZlciB0aGUgbmV0d29yayBjYWxsIHRoZSBRVUlDCi0gICAgICAgIGNv
bm5lY3Rpb24ncyA6bWV0aDpgfmFpb3F1aWMuY29ubmVjdGlvbi5RdWljQ29ubmVjdGlvbi5kYXRh
Z3JhbXNfdG9fc2VuZGAKLSAgICAgICAgbWV0aG9kLgotCi0gICAgICAgIDpwYXJhbSBzdHJlYW1f
aWQ6IFRoZSBzdHJlYW0gSUQgb24gd2hpY2ggdG8gc2VuZCB0aGUgZGF0YS4KLSAgICAgICAgOnBh
cmFtIGRhdGE6IFRoZSBkYXRhIHRvIHNlbmQuCi0gICAgICAgIDpwYXJhbSBlbmRfc3RyZWFtOiBX
aGV0aGVyIHRvIGVuZCB0aGUgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgIyBjaGVjayBE
QVRBIGZyYW1lIGlzIGFsbG93ZWQKLSAgICAgICAgc3RyZWFtID0gc2VsZi5fZ2V0X29yX2NyZWF0
ZV9zdHJlYW0oc3RyZWFtX2lkKQotICAgICAgICBpZiBzdHJlYW0uaGVhZGVyc19zZW5kX3N0YXRl
ICE9IEhlYWRlcnNTdGF0ZS5BRlRFUl9IRUFERVJTOgotICAgICAgICAgICAgcmFpc2UgRnJhbWVV
bmV4cGVjdGVkKCJEQVRBIGZyYW1lIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc3RhdGUiKQotCi0g
ICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAg
ICAgICAgIGNhdGVnb3J5PSJodHRwIiwKLSAgICAgICAgICAgICAgICBldmVudD0iZnJhbWVfY3Jl
YXRlZCIsCi0gICAgICAgICAgICAgICAgZGF0YT1xbG9nX2VuY29kZV9kYXRhX2ZyYW1lKGJ5dGVf
bGVuZ3RoPWxlbihkYXRhKSwgc3RyZWFtX2lkPXN0cmVhbV9pZCksCi0gICAgICAgICAgICApCi0K
LSAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKAotICAgICAgICAgICAgc3RyZWFt
X2lkLCBlbmNvZGVfZnJhbWUoRnJhbWVUeXBlLkRBVEEsIGRhdGEpLCBlbmRfc3RyZWFtCi0gICAg
ICAgICkKLQotICAgIGRlZiBzZW5kX2hlYWRlcnMoCi0gICAgICAgIHNlbGYsIHN0cmVhbV9pZDog
aW50LCBoZWFkZXJzOiBIZWFkZXJzLCBlbmRfc3RyZWFtOiBib29sID0gRmFsc2UKLSAgICApIC0+
IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBTZW5kIGhlYWRlcnMgb24gdGhlIGdpdmVuIHN0
cmVhbS4KLQotICAgICAgICBUbyByZXRyaWV2ZSBkYXRhZ3JhbSB3aGljaCBuZWVkIHRvIGJlIHNl
bnQgb3ZlciB0aGUgbmV0d29yayBjYWxsIHRoZSBRVUlDCi0gICAgICAgIGNvbm5lY3Rpb24ncyA6
bWV0aDpgfmFpb3F1aWMuY29ubmVjdGlvbi5RdWljQ29ubmVjdGlvbi5kYXRhZ3JhbXNfdG9fc2Vu
ZGAKLSAgICAgICAgbWV0aG9kLgotCi0gICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IFRoZSBzdHJl
YW0gSUQgb24gd2hpY2ggdG8gc2VuZCB0aGUgaGVhZGVycy4KLSAgICAgICAgOnBhcmFtIGhlYWRl
cnM6IFRoZSBIVFRQIGhlYWRlcnMgdG8gc2VuZC4KLSAgICAgICAgOnBhcmFtIGVuZF9zdHJlYW06
IFdoZXRoZXIgdG8gZW5kIHRoZSBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICAjIGNoZWNr
IEhFQURFUlMgZnJhbWUgaXMgYWxsb3dlZAotICAgICAgICBzdHJlYW0gPSBzZWxmLl9nZXRfb3Jf
Y3JlYXRlX3N0cmVhbShzdHJlYW1faWQpCi0gICAgICAgIGlmIHN0cmVhbS5oZWFkZXJzX3NlbmRf
c3RhdGUgPT0gSGVhZGVyc1N0YXRlLkFGVEVSX1RSQUlMRVJTOgotICAgICAgICAgICAgcmFpc2Ug
RnJhbWVVbmV4cGVjdGVkKCJIRUFERVJTIGZyYW1lIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc3Rh
dGUiKQotCi0gICAgICAgIGZyYW1lX2RhdGEgPSBzZWxmLl9lbmNvZGVfaGVhZGVycyhzdHJlYW1f
aWQsIGhlYWRlcnMpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVp
Y19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2df
ZXZlbnQoCi0gICAgICAgICAgICAgICAgY2F0ZWdvcnk9Imh0dHAiLAotICAgICAgICAgICAgICAg
IGV2ZW50PSJmcmFtZV9jcmVhdGVkIiwKLSAgICAgICAgICAgICAgICBkYXRhPXFsb2dfZW5jb2Rl
X2hlYWRlcnNfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVfbGVuZ3RoPWxlbihmcmFt
ZV9kYXRhKSwgaGVhZGVycz1oZWFkZXJzLCBzdHJlYW1faWQ9c3RyZWFtX2lkCi0gICAgICAgICAg
ICAgICAgKSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAjIHVwZGF0ZSBzdGF0ZSBhbmQgc2Vu
ZCBoZWFkZXJzCi0gICAgICAgIGlmIHN0cmVhbS5oZWFkZXJzX3NlbmRfc3RhdGUgPT0gSGVhZGVy
c1N0YXRlLklOSVRJQUw6Ci0gICAgICAgICAgICBzdHJlYW0uaGVhZGVyc19zZW5kX3N0YXRlID0g
SGVhZGVyc1N0YXRlLkFGVEVSX0hFQURFUlMKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN0
cmVhbS5oZWFkZXJzX3NlbmRfc3RhdGUgPSBIZWFkZXJzU3RhdGUuQUZURVJfVFJBSUxFUlMKLSAg
ICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKAotICAgICAgICAgICAgc3RyZWFtX2lk
LCBlbmNvZGVfZnJhbWUoRnJhbWVUeXBlLkhFQURFUlMsIGZyYW1lX2RhdGEpLCBlbmRfc3RyZWFt
Ci0gICAgICAgICkKLQotICAgIGRlZiBfY3JlYXRlX3VuaV9zdHJlYW0oc2VsZiwgc3RyZWFtX3R5
cGU6IGludCkgLT4gaW50OgotICAgICAgICAiIiIKLSAgICAgICAgQ3JlYXRlIGFuIHVuaWRpcmVj
dGlvbmFsIHN0cmVhbSBvZiB0aGUgZ2l2ZW4gdHlwZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0
cmVhbV9pZCA9IHNlbGYuX3F1aWMuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChpc191bmlk
aXJlY3Rpb25hbD1UcnVlKQotICAgICAgICBzZWxmLl9xdWljLnNlbmRfc3RyZWFtX2RhdGEoc3Ry
ZWFtX2lkLCBlbmNvZGVfdWludF92YXIoc3RyZWFtX3R5cGUpKQotICAgICAgICByZXR1cm4gc3Ry
ZWFtX2lkCi0KLSAgICBkZWYgX2RlY29kZV9oZWFkZXJzKHNlbGYsIHN0cmVhbV9pZDogaW50LCBm
cmFtZV9kYXRhOiBPcHRpb25hbFtieXRlc10pIC0+IEhlYWRlcnM6Ci0gICAgICAgICIiIgotICAg
ICAgICBEZWNvZGUgYSBIRUFERVJTIGJsb2NrIGFuZCBzZW5kIGRlY29kZXIgdXBkYXRlcyBvbiB0
aGUgZGVjb2RlciBzdHJlYW0uCi0KLSAgICAgICAgVGhpcyBpcyBjYWxsZWQgd2l0aCBmcmFtZV9k
YXRhPU5vbmUgd2hlbiBhIHN0cmVhbSBiZWNvbWVzIHVuYmxvY2tlZC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIGZyYW1lX2RhdGEgaXMgTm9uZToKLSAgICAgICAg
ICAgICAgICBkZWNvZGVyLCBoZWFkZXJzID0gc2VsZi5fZGVjb2Rlci5yZXN1bWVfaGVhZGVyKHN0
cmVhbV9pZCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGVjb2RlciwgaGVh
ZGVycyA9IHNlbGYuX2RlY29kZXIuZmVlZF9oZWFkZXIoc3RyZWFtX2lkLCBmcmFtZV9kYXRhKQot
ICAgICAgICAgICAgc2VsZi5fZGVjb2Rlcl9ieXRlc19zZW50ICs9IGxlbihkZWNvZGVyKQotICAg
ICAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0cmVhbV9kYXRhKHNlbGYuX2xvY2FsX2RlY29kZXJf
c3RyZWFtX2lkLCBkZWNvZGVyKQotICAgICAgICBleGNlcHQgcHlsc3FwYWNrLkRlY29tcHJlc3Np
b25GYWlsZWQgYXMgZXhjOgotICAgICAgICAgICAgcmFpc2UgUXBhY2tEZWNvbXByZXNzaW9uRmFp
bGVkKCkgZnJvbSBleGMKLQotICAgICAgICByZXR1cm4gaGVhZGVycwotCi0gICAgZGVmIF9lbmNv
ZGVfaGVhZGVycyhzZWxmLCBzdHJlYW1faWQ6IGludCwgaGVhZGVyczogSGVhZGVycykgLT4gYnl0
ZXM6Ci0gICAgICAgICIiIgotICAgICAgICBFbmNvZGUgYSBIRUFERVJTIGJsb2NrIGFuZCBzZW5k
IGVuY29kZXIgdXBkYXRlcyBvbiB0aGUgZW5jb2RlciBzdHJlYW0uCi0gICAgICAgICIiIgotICAg
ICAgICBlbmNvZGVyLCBmcmFtZV9kYXRhID0gc2VsZi5fZW5jb2Rlci5lbmNvZGUoc3RyZWFtX2lk
LCBoZWFkZXJzKQotICAgICAgICBzZWxmLl9lbmNvZGVyX2J5dGVzX3NlbnQgKz0gbGVuKGVuY29k
ZXIpCi0gICAgICAgIHNlbGYuX3F1aWMuc2VuZF9zdHJlYW1fZGF0YShzZWxmLl9sb2NhbF9lbmNv
ZGVyX3N0cmVhbV9pZCwgZW5jb2RlcikKLSAgICAgICAgcmV0dXJuIGZyYW1lX2RhdGEKLQotICAg
IGRlZiBfZ2V0X29yX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3RyZWFtX2lkOiBpbnQpIC0+IEgzU3Ry
ZWFtOgotICAgICAgICBpZiBzdHJlYW1faWQgbm90IGluIHNlbGYuX3N0cmVhbToKLSAgICAgICAg
ICAgIHNlbGYuX3N0cmVhbVtzdHJlYW1faWRdID0gSDNTdHJlYW0oc3RyZWFtX2lkKQotICAgICAg
ICByZXR1cm4gc2VsZi5fc3RyZWFtW3N0cmVhbV9pZF0KLQotICAgIGRlZiBfaGFuZGxlX2NvbnRy
b2xfZnJhbWUoc2VsZiwgZnJhbWVfdHlwZTogaW50LCBmcmFtZV9kYXRhOiBieXRlcykgLT4gTm9u
ZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIGZyYW1lIHJlY2VpdmVkIG9uIHRoZSBw
ZWVyJ3MgY29udHJvbCBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICBpZiBmcmFtZV90eXBl
ID09IEZyYW1lVHlwZS5TRVRUSU5HUzoKLSAgICAgICAgICAgIHNldHRpbmdzID0gcGFyc2Vfc2V0
dGluZ3MoZnJhbWVfZGF0YSkKLSAgICAgICAgICAgIGVuY29kZXIgPSBzZWxmLl9lbmNvZGVyLmFw
cGx5X3NldHRpbmdzKAotICAgICAgICAgICAgICAgIG1heF90YWJsZV9jYXBhY2l0eT1zZXR0aW5n
cy5nZXQoU2V0dGluZy5RUEFDS19NQVhfVEFCTEVfQ0FQQUNJVFksIDApLAotICAgICAgICAgICAg
ICAgIGJsb2NrZWRfc3RyZWFtcz1zZXR0aW5ncy5nZXQoU2V0dGluZy5RUEFDS19CTE9DS0VEX1NU
UkVBTVMsIDApLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5fcXVpYy5zZW5kX3N0
cmVhbV9kYXRhKHNlbGYuX2xvY2FsX2VuY29kZXJfc3RyZWFtX2lkLCBlbmNvZGVyKQotICAgICAg
ICBlbGlmIGZyYW1lX3R5cGUgPT0gRnJhbWVUeXBlLk1BWF9QVVNIX0lEOgotICAgICAgICAgICAg
aWYgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3Rl
ZCgiU2VydmVycyBtdXN0IG5vdCBzZW5kIE1BWF9QVVNIX0lEIikKLSAgICAgICAgICAgIHNlbGYu
X21heF9wdXNoX2lkID0gcGFyc2VfbWF4X3B1c2hfaWQoZnJhbWVfZGF0YSkKLSAgICAgICAgZWxp
ZiBmcmFtZV90eXBlIGluICgKLSAgICAgICAgICAgIEZyYW1lVHlwZS5EQVRBLAotICAgICAgICAg
ICAgRnJhbWVUeXBlLkhFQURFUlMsCi0gICAgICAgICAgICBGcmFtZVR5cGUuUFVTSF9QUk9NSVNF
LAotICAgICAgICAgICAgRnJhbWVUeXBlLkRVUExJQ0FURV9QVVNILAotICAgICAgICApOgotICAg
ICAgICAgICAgcmFpc2UgRnJhbWVVbmV4cGVjdGVkKCJJbnZhbGlkIGZyYW1lIHR5cGUgb24gY29u
dHJvbCBzdHJlYW0iKQotCi0gICAgZGVmIF9oYW5kbGVfcmVxdWVzdF9vcl9wdXNoX2ZyYW1lKAot
ICAgICAgICBzZWxmLAotICAgICAgICBmcmFtZV90eXBlOiBpbnQsCi0gICAgICAgIGZyYW1lX2Rh
dGE6IE9wdGlvbmFsW2J5dGVzXSwKLSAgICAgICAgc3RyZWFtOiBIM1N0cmVhbSwKLSAgICAgICAg
c3RyZWFtX2VuZGVkOiBib29sLAotICAgICkgLT4gTGlzdFtIM0V2ZW50XToKLSAgICAgICAgIiIi
Ci0gICAgICAgIEhhbmRsZSBhIGZyYW1lIHJlY2VpdmVkIG9uIGEgcmVxdWVzdCBvciBwdXNoIHN0
cmVhbS4KLSAgICAgICAgIiIiCi0gICAgICAgIGh0dHBfZXZlbnRzOiBMaXN0W0gzRXZlbnRdID0g
W10KLQotICAgICAgICBpZiBmcmFtZV90eXBlID09IEZyYW1lVHlwZS5EQVRBOgotICAgICAgICAg
ICAgIyBjaGVjayBEQVRBIGZyYW1lIGlzIGFsbG93ZWQKLSAgICAgICAgICAgIGlmIHN0cmVhbS5o
ZWFkZXJzX3JlY3Zfc3RhdGUgIT0gSGVhZGVyc1N0YXRlLkFGVEVSX0hFQURFUlM6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgRnJhbWVVbmV4cGVjdGVkKCJEQVRBIGZyYW1lIGlzIG5vdCBhbGxvd2Vk
IGluIHRoaXMgc3RhdGUiKQotCi0gICAgICAgICAgICBpZiBzdHJlYW1fZW5kZWQgb3IgZnJhbWVf
ZGF0YToKLSAgICAgICAgICAgICAgICBodHRwX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAg
ICAgICAgIERhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZnJhbWVf
ZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hfaWQ9c3RyZWFtLnB1c2hfaWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9c3RyZWFtX2VuZGVkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbS5zdHJlYW1faWQsCi0gICAgICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgICAgICApCi0gICAgICAgIGVsaWYgZnJhbWVfdHlwZSA9
PSBGcmFtZVR5cGUuSEVBREVSUzoKLSAgICAgICAgICAgICMgY2hlY2sgSEVBREVSUyBmcmFtZSBp
cyBhbGxvd2VkCi0gICAgICAgICAgICBpZiBzdHJlYW0uaGVhZGVyc19yZWN2X3N0YXRlID09IEhl
YWRlcnNTdGF0ZS5BRlRFUl9UUkFJTEVSUzoKLSAgICAgICAgICAgICAgICByYWlzZSBGcmFtZVVu
ZXhwZWN0ZWQoIkhFQURFUlMgZnJhbWUgaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBzdGF0ZSIpCi0K
LSAgICAgICAgICAgICMgdHJ5IHRvIGRlY29kZSBIRUFERVJTLCBtYXkgcmFpc2UgcHlsc3FwYWNr
LlN0cmVhbUJsb2NrZWQKLSAgICAgICAgICAgIGhlYWRlcnMgPSBzZWxmLl9kZWNvZGVfaGVhZGVy
cyhzdHJlYW0uc3RyZWFtX2lkLCBmcmFtZV9kYXRhKQotCi0gICAgICAgICAgICAjIGxvZyBmcmFt
ZQotICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAg
ICBjYXRlZ29yeT0iaHR0cCIsCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50PSJmcmFtZV9wYXJz
ZWQiLAotICAgICAgICAgICAgICAgICAgICBkYXRhPXFsb2dfZW5jb2RlX2hlYWRlcnNfZnJhbWUo
Ci0gICAgICAgICAgICAgICAgICAgICAgICBieXRlX2xlbmd0aD1zdHJlYW0uYmxvY2tlZF9mcmFt
ZV9zaXplCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBmcmFtZV9kYXRhIGlzIE5vbmUKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgbGVuKGZyYW1lX2RhdGEpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtX2lkPXN0cmVhbS5zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAg
ICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHVwZGF0ZSBzdGF0ZSBhbmQgZW1pdCBoZWFkZXJz
Ci0gICAgICAgICAgICBpZiBzdHJlYW0uaGVhZGVyc19yZWN2X3N0YXRlID09IEhlYWRlcnNTdGF0
ZS5JTklUSUFMOgotICAgICAgICAgICAgICAgIHN0cmVhbS5oZWFkZXJzX3JlY3Zfc3RhdGUgPSBI
ZWFkZXJzU3RhdGUuQUZURVJfSEVBREVSUwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBzdHJlYW0uaGVhZGVyc19yZWN2X3N0YXRlID0gSGVhZGVyc1N0YXRlLkFGVEVSX1RSQUlM
RVJTCi0gICAgICAgICAgICBodHRwX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgSGVh
ZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPWhlYWRlcnMsCi0gICAg
ICAgICAgICAgICAgICAgIHB1c2hfaWQ9c3RyZWFtLnB1c2hfaWQsCi0gICAgICAgICAgICAgICAg
ICAgIHN0cmVhbV9pZD1zdHJlYW0uc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICBzdHJl
YW1fZW5kZWQ9c3RyZWFtX2VuZGVkLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkK
LSAgICAgICAgZWxpZiBzdHJlYW0uZnJhbWVfdHlwZSA9PSBGcmFtZVR5cGUuUFVTSF9QUk9NSVNF
IGFuZCBzdHJlYW0ucHVzaF9pZCBpcyBOb25lOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lz
X2NsaWVudDoKLSAgICAgICAgICAgICAgICByYWlzZSBGcmFtZVVuZXhwZWN0ZWQoIkNsaWVudHMg
bXVzdCBub3Qgc2VuZCBQVVNIX1BST01JU0UiKQotICAgICAgICAgICAgZnJhbWVfYnVmID0gQnVm
ZmVyKGRhdGE9ZnJhbWVfZGF0YSkKLSAgICAgICAgICAgIHB1c2hfaWQgPSBmcmFtZV9idWYucHVs
bF91aW50X3ZhcigpCi0gICAgICAgICAgICBoZWFkZXJzID0gc2VsZi5fZGVjb2RlX2hlYWRlcnMo
Ci0gICAgICAgICAgICAgICAgc3RyZWFtLnN0cmVhbV9pZCwgZnJhbWVfZGF0YVtmcmFtZV9idWYu
dGVsbCgpIDpdCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgbG9nIGZyYW1lCi0gICAg
ICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAgICAgICAgIGNhdGVn
b3J5PSJodHRwIiwKLSAgICAgICAgICAgICAgICAgICAgZXZlbnQ9ImZyYW1lX3BhcnNlZCIsCi0g
ICAgICAgICAgICAgICAgICAgIGRhdGE9cWxvZ19lbmNvZGVfcHVzaF9wcm9taXNlX2ZyYW1lKAot
ICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZV9sZW5ndGg9bGVuKGZyYW1lX2RhdGEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaF9pZD1wdXNoX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lk
PXN0cmVhbS5zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg
ICAgKQotCi0gICAgICAgICAgICAjIGVtaXQgZXZlbnQKLSAgICAgICAgICAgIGh0dHBfZXZlbnRz
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBQdXNoUHJvbWlzZVJlY2VpdmVkKAotICAgICAgICAg
ICAgICAgICAgICBoZWFkZXJzPWhlYWRlcnMsIHB1c2hfaWQ9cHVzaF9pZCwgc3RyZWFtX2lkPXN0
cmVhbS5zdHJlYW1faWQKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgICAg
IGVsaWYgZnJhbWVfdHlwZSBpbiAoCi0gICAgICAgICAgICBGcmFtZVR5cGUuUFJJT1JJVFksCi0g
ICAgICAgICAgICBGcmFtZVR5cGUuQ0FOQ0VMX1BVU0gsCi0gICAgICAgICAgICBGcmFtZVR5cGUu
U0VUVElOR1MsCi0gICAgICAgICAgICBGcmFtZVR5cGUuUFVTSF9QUk9NSVNFLAotICAgICAgICAg
ICAgRnJhbWVUeXBlLkdPQVdBWSwKLSAgICAgICAgICAgIEZyYW1lVHlwZS5NQVhfUFVTSF9JRCwK
LSAgICAgICAgICAgIEZyYW1lVHlwZS5EVVBMSUNBVEVfUFVTSCwKLSAgICAgICAgKToKLSAgICAg
ICAgICAgIHJhaXNlIEZyYW1lVW5leHBlY3RlZCgKLSAgICAgICAgICAgICAgICAiSW52YWxpZCBm
cmFtZSB0eXBlIG9uIHJlcXVlc3Qgc3RyZWFtIgotICAgICAgICAgICAgICAgIGlmIHN0cmVhbS5w
dXNoX2lkIGlzIE5vbmUKLSAgICAgICAgICAgICAgICBlbHNlICJJbnZhbGlkIGZyYW1lIHR5cGUg
b24gcHVzaCBzdHJlYW0iCi0gICAgICAgICAgICApCi0KLSAgICAgICAgcmV0dXJuIGh0dHBfZXZl
bnRzCi0KLSAgICBkZWYgX2luaXRfY29ubmVjdGlvbihzZWxmKSAtPiBOb25lOgotICAgICAgICAj
IHNlbmQgb3VyIHNldHRpbmdzCi0gICAgICAgIHNlbGYuX2xvY2FsX2NvbnRyb2xfc3RyZWFtX2lk
ID0gc2VsZi5fY3JlYXRlX3VuaV9zdHJlYW0oU3RyZWFtVHlwZS5DT05UUk9MKQotICAgICAgICBz
ZWxmLl9xdWljLnNlbmRfc3RyZWFtX2RhdGEoCi0gICAgICAgICAgICBzZWxmLl9sb2NhbF9jb250
cm9sX3N0cmVhbV9pZCwKLSAgICAgICAgICAgIGVuY29kZV9mcmFtZSgKLSAgICAgICAgICAgICAg
ICBGcmFtZVR5cGUuU0VUVElOR1MsCi0gICAgICAgICAgICAgICAgZW5jb2RlX3NldHRpbmdzKAot
ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5nLlFQ
QUNLX01BWF9UQUJMRV9DQVBBQ0lUWTogc2VsZi5fbWF4X3RhYmxlX2NhcGFjaXR5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgU2V0dGluZy5RUEFDS19CTE9DS0VEX1NUUkVBTVM6IHNlbGYuX2Js
b2NrZWRfc3RyZWFtcywKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICks
Ci0gICAgICAgICAgICApLAotICAgICAgICApCi0gICAgICAgIGlmIHNlbGYuX2lzX2NsaWVudCBh
bmQgc2VsZi5fbWF4X3B1c2hfaWQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9xdWlj
LnNlbmRfc3RyZWFtX2RhdGEoCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9jYWxfY29udHJvbF9z
dHJlYW1faWQsCi0gICAgICAgICAgICAgICAgZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5NQVhfUFVT
SF9JRCwgZW5jb2RlX3VpbnRfdmFyKHNlbGYuX21heF9wdXNoX2lkKSksCi0gICAgICAgICAgICAp
Ci0KLSAgICAgICAgIyBjcmVhdGUgZW5jb2RlciBhbmQgZGVjb2RlciBzdHJlYW1zCi0gICAgICAg
IHNlbGYuX2xvY2FsX2VuY29kZXJfc3RyZWFtX2lkID0gc2VsZi5fY3JlYXRlX3VuaV9zdHJlYW0o
Ci0gICAgICAgICAgICBTdHJlYW1UeXBlLlFQQUNLX0VOQ09ERVIKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLl9sb2NhbF9kZWNvZGVyX3N0cmVhbV9pZCA9IHNlbGYuX2NyZWF0ZV91bmlfc3RyZWFt
KAotICAgICAgICAgICAgU3RyZWFtVHlwZS5RUEFDS19ERUNPREVSCi0gICAgICAgICkKLQotICAg
IGRlZiBfcmVjZWl2ZV9yZXF1ZXN0X29yX3B1c2hfZGF0YSgKLSAgICAgICAgc2VsZiwgc3RyZWFt
OiBIM1N0cmVhbSwgZGF0YTogYnl0ZXMsIHN0cmVhbV9lbmRlZDogYm9vbAotICAgICkgLT4gTGlz
dFtIM0V2ZW50XToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBkYXRhIHJlY2VpdmVkIG9u
IGEgcmVxdWVzdCBvciBwdXNoIHN0cmVhbS4KLSAgICAgICAgIiIiCi0gICAgICAgIGh0dHBfZXZl
bnRzOiBMaXN0W0gzRXZlbnRdID0gW10KLQotICAgICAgICBzdHJlYW0uYnVmZmVyICs9IGRhdGEK
LSAgICAgICAgaWYgc3RyZWFtX2VuZGVkOgotICAgICAgICAgICAgc3RyZWFtLmVuZGVkID0gVHJ1
ZQotICAgICAgICBpZiBzdHJlYW0uYmxvY2tlZDoKLSAgICAgICAgICAgIHJldHVybiBodHRwX2V2
ZW50cwotCi0gICAgICAgICMgc2hvcnRjdXQgZm9yIERBVEEgZnJhbWUgZnJhZ21lbnRzCi0gICAg
ICAgIGlmICgKLSAgICAgICAgICAgIHN0cmVhbS5mcmFtZV90eXBlID09IEZyYW1lVHlwZS5EQVRB
Ci0gICAgICAgICAgICBhbmQgc3RyZWFtLmZyYW1lX3NpemUgaXMgbm90IE5vbmUKLSAgICAgICAg
ICAgIGFuZCBsZW4oc3RyZWFtLmJ1ZmZlcikgPCBzdHJlYW0uZnJhbWVfc2l6ZQotICAgICAgICAp
OgotICAgICAgICAgICAgaHR0cF9ldmVudHMuYXBwZW5kKAotICAgICAgICAgICAgICAgIERhdGFS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1zdHJlYW0uYnVmZmVyLAotICAgICAg
ICAgICAgICAgICAgICBwdXNoX2lkPXN0cmVhbS5wdXNoX2lkLAotICAgICAgICAgICAgICAgICAg
ICBzdHJlYW1faWQ9c3RyZWFtLnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIHN0cmVhbS5mcmFtZV9zaXplIC09IGxlbihzdHJlYW0uYnVmZmVyKQotICAgICAgICAgICAg
c3RyZWFtLmJ1ZmZlciA9IGIiIgotICAgICAgICAgICAgcmV0dXJuIGh0dHBfZXZlbnRzCi0KLSAg
ICAgICAgIyBoYW5kbGUgbG9uZSBGSU4KLSAgICAgICAgaWYgc3RyZWFtX2VuZGVkIGFuZCBub3Qg
c3RyZWFtLmJ1ZmZlcjoKLSAgICAgICAgICAgIGh0dHBfZXZlbnRzLmFwcGVuZCgKLSAgICAgICAg
ICAgICAgICBEYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9YiIiLAotICAg
ICAgICAgICAgICAgICAgICBwdXNoX2lkPXN0cmVhbS5wdXNoX2lkLAotICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtLnN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgc3Ry
ZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgcmV0dXJuIGh0dHBfZXZlbnRzCi0KLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9c3Ry
ZWFtLmJ1ZmZlcikKLSAgICAgICAgY29uc3VtZWQgPSAwCi0KLSAgICAgICAgd2hpbGUgbm90IGJ1
Zi5lb2YoKToKLSAgICAgICAgICAgICMgZmV0Y2ggbmV4dCBmcmFtZSBoZWFkZXIKLSAgICAgICAg
ICAgIGlmIHN0cmVhbS5mcmFtZV9zaXplIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgICAgICBzdHJlYW0uZnJhbWVfdHlwZSA9IGJ1Zi5wdWxsX3VpbnRfdmFy
KCkKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmZyYW1lX3NpemUgPSBidWYucHVsbF91aW50
X3ZhcigpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEJ1ZmZlclJlYWRFcnJvcjoKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBjb25zdW1lZCA9IGJ1Zi50ZWxsKCkK
LQotICAgICAgICAgICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgICAgICAgICAgaWYgKAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZQotICAgICAgICAg
ICAgICAgICAgICBhbmQgc3RyZWFtLmZyYW1lX3R5cGUgPT0gRnJhbWVUeXBlLkRBVEEKLSAgICAg
ICAgICAgICAgICApOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2df
ZXZlbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT0iaHR0cCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBldmVudD0iZnJhbWVfcGFyc2VkIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGE9cWxvZ19lbmNvZGVfZGF0YV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBieXRlX2xlbmd0aD1zdHJlYW0uZnJhbWVfc2l6ZSwgc3RyZWFtX2lkPXN0cmVhbS5z
dHJlYW1faWQKLSAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgIyBjaGVjayBob3cgbXVjaCBkYXRhIGlzIGF2YWlsYWJsZQotICAg
ICAgICAgICAgY2h1bmtfc2l6ZSA9IG1pbihzdHJlYW0uZnJhbWVfc2l6ZSwgYnVmLmNhcGFjaXR5
IC0gY29uc3VtZWQpCi0gICAgICAgICAgICBpZiBzdHJlYW0uZnJhbWVfdHlwZSAhPSBGcmFtZVR5
cGUuREFUQSBhbmQgY2h1bmtfc2l6ZSA8IHN0cmVhbS5mcmFtZV9zaXplOgotICAgICAgICAgICAg
ICAgIGJyZWFrCi0KLSAgICAgICAgICAgICMgcmVhZCBhdmFpbGFibGUgZGF0YQotICAgICAgICAg
ICAgZnJhbWVfZGF0YSA9IGJ1Zi5wdWxsX2J5dGVzKGNodW5rX3NpemUpCi0gICAgICAgICAgICBj
b25zdW1lZCA9IGJ1Zi50ZWxsKCkKLQotICAgICAgICAgICAgIyBkZXRlY3QgZW5kIG9mIGZyYW1l
Ci0gICAgICAgICAgICBzdHJlYW0uZnJhbWVfc2l6ZSAtPSBjaHVua19zaXplCi0gICAgICAgICAg
ICBpZiBub3Qgc3RyZWFtLmZyYW1lX3NpemU6Ci0gICAgICAgICAgICAgICAgc3RyZWFtLmZyYW1l
X3NpemUgPSBOb25lCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBodHRwX2V2
ZW50cy5leHRlbmQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9yZXF1ZXN0X29y
X3B1c2hfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPXN0cmVhbS5m
cmFtZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfZGF0YT1mcmFtZV9kYXRh
LAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtPXN0cmVhbSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cmVhbV9lbmRlZD1zdHJlYW0uZW5kZWQgYW5kIGJ1Zi5lb2YoKSwKLSAgICAg
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGV4Y2VwdCBw
eWxzcXBhY2suU3RyZWFtQmxvY2tlZDoKLSAgICAgICAgICAgICAgICBzdHJlYW0uYmxvY2tlZCA9
IFRydWUKLSAgICAgICAgICAgICAgICBzdHJlYW0uYmxvY2tlZF9mcmFtZV9zaXplID0gbGVuKGZy
YW1lX2RhdGEpCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAjIHJlbW92ZSBwcm9j
ZXNzZWQgZGF0YSBmcm9tIGJ1ZmZlcgotICAgICAgICBzdHJlYW0uYnVmZmVyID0gc3RyZWFtLmJ1
ZmZlcltjb25zdW1lZDpdCi0KLSAgICAgICAgcmV0dXJuIGh0dHBfZXZlbnRzCi0KLSAgICBkZWYg
X3JlY2VpdmVfc3RyZWFtX2RhdGFfdW5pKAotICAgICAgICBzZWxmLCBzdHJlYW06IEgzU3RyZWFt
LCBkYXRhOiBieXRlcywgc3RyZWFtX2VuZGVkOiBib29sCi0gICAgKSAtPiBMaXN0W0gzRXZlbnRd
OgotICAgICAgICBodHRwX2V2ZW50czogTGlzdFtIM0V2ZW50XSA9IFtdCi0KLSAgICAgICAgc3Ry
ZWFtLmJ1ZmZlciArPSBkYXRhCi0gICAgICAgIGlmIHN0cmVhbV9lbmRlZDoKLSAgICAgICAgICAg
IHN0cmVhbS5lbmRlZCA9IFRydWUKLQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1zdHJlYW0u
YnVmZmVyKQotICAgICAgICBjb25zdW1lZCA9IDAKLSAgICAgICAgdW5ibG9ja2VkX3N0cmVhbXM6
IFNldFtpbnRdID0gc2V0KCkKLQotICAgICAgICB3aGlsZSBzdHJlYW0uc3RyZWFtX3R5cGUgPT0g
U3RyZWFtVHlwZS5QVVNIIG9yIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICAjIGZldGNoIHN0
cmVhbSB0eXBlIGZvciB1bmlkaXJlY3Rpb25hbCBzdHJlYW1zCi0gICAgICAgICAgICBpZiBzdHJl
YW0uc3RyZWFtX3R5cGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgICAgIHN0cmVhbS5zdHJlYW1fdHlwZSA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAg
ICAgICAgICAgICBleGNlcHQgQnVmZmVyUmVhZEVycm9yOgotICAgICAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICAgICAgICAgIGNvbnN1bWVkID0gYnVmLnRlbGwoKQotCi0gICAgICAgICAg
ICAgICAgIyBjaGVjayB1bmljaXR5Ci0gICAgICAgICAgICAgICAgaWYgc3RyZWFtLnN0cmVhbV90
eXBlID09IFN0cmVhbVR5cGUuQ09OVFJPTDoKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5f
cGVlcl9jb250cm9sX3N0cmVhbV9pZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJhaXNlIFN0cmVhbUNyZWF0aW9uRXJyb3IoIk9ubHkgb25lIGNvbnRyb2wgc3RyZWFtIGlz
IGFsbG93ZWQiKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9wZWVyX2NvbnRyb2xfc3RyZWFt
X2lkID0gc3RyZWFtLnN0cmVhbV9pZAotICAgICAgICAgICAgICAgIGVsaWYgc3RyZWFtLnN0cmVh
bV90eXBlID09IFN0cmVhbVR5cGUuUVBBQ0tfREVDT0RFUjoKLSAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5fcGVlcl9kZWNvZGVyX3N0cmVhbV9pZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIFN0cmVhbUNyZWF0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIk9ubHkgb25lIFFQQUNLIGRlY29kZXIgc3RyZWFtIGlzIGFsbG93ZWQiCi0g
ICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BlZXJf
ZGVjb2Rlcl9zdHJlYW1faWQgPSBzdHJlYW0uc3RyZWFtX2lkCi0gICAgICAgICAgICAgICAgZWxp
ZiBzdHJlYW0uc3RyZWFtX3R5cGUgPT0gU3RyZWFtVHlwZS5RUEFDS19FTkNPREVSOgotICAgICAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9wZWVyX2VuY29kZXJfc3RyZWFtX2lkIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgU3RyZWFtQ3JlYXRpb25FcnJvcigKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiT25seSBvbmUgUVBBQ0sgZW5jb2RlciBzdHJlYW0g
aXMgYWxsb3dlZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fcGVlcl9lbmNvZGVyX3N0cmVhbV9pZCA9IHN0cmVhbS5zdHJlYW1faWQKLQotICAg
ICAgICAgICAgaWYgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5cGUuQ09OVFJPTDoKLSAg
ICAgICAgICAgICAgICAjIGZldGNoIG5leHQgZnJhbWUKLSAgICAgICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAg
ICAgICAgICAgICAgICAgIGZyYW1lX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAg
ICAgICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGJ1Zi5wdWxsX2J5dGVzKGZyYW1lX2xlbmd0aCkK
LSAgICAgICAgICAgICAgICBleGNlcHQgQnVmZmVyUmVhZEVycm9yOgotICAgICAgICAgICAgICAg
ICAgICBicmVhawotICAgICAgICAgICAgICAgIGNvbnN1bWVkID0gYnVmLnRlbGwoKQotCi0gICAg
ICAgICAgICAgICAgc2VsZi5faGFuZGxlX2NvbnRyb2xfZnJhbWUoZnJhbWVfdHlwZSwgZnJhbWVf
ZGF0YSkKLSAgICAgICAgICAgIGVsaWYgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5cGUu
UFVTSDoKLSAgICAgICAgICAgICAgICAjIGZldGNoIHB1c2ggaWQKLSAgICAgICAgICAgICAgICBp
ZiBzdHJlYW0ucHVzaF9pZCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBzdHJlYW0ucHVzaF9pZCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkK
LSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJ1ZmZlclJlYWRFcnJvcjoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgIGNvbnN1bWVkID0gYnVmLnRl
bGwoKQotCi0gICAgICAgICAgICAgICAgIyByZW1vdmUgcHJvY2Vzc2VkIGRhdGEgZnJvbSBidWZm
ZXIKLSAgICAgICAgICAgICAgICBzdHJlYW0uYnVmZmVyID0gc3RyZWFtLmJ1ZmZlcltjb25zdW1l
ZDpdCi0KLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVjZWl2ZV9yZXF1ZXN0X29yX3B1
c2hfZGF0YShzdHJlYW0sIGIiIiwgc3RyZWFtX2VuZGVkKQotICAgICAgICAgICAgZWxpZiBzdHJl
YW0uc3RyZWFtX3R5cGUgPT0gU3RyZWFtVHlwZS5RUEFDS19ERUNPREVSOgotICAgICAgICAgICAg
ICAgICMgZmVlZCB1bmZyYW1lZCBkYXRhIHRvIGRlY29kZXIKLSAgICAgICAgICAgICAgICBkYXRh
ID0gYnVmLnB1bGxfYnl0ZXMoYnVmLmNhcGFjaXR5IC0gYnVmLnRlbGwoKSkKLSAgICAgICAgICAg
ICAgICBjb25zdW1lZCA9IGJ1Zi50ZWxsKCkKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2VuY29kZXIuZmVlZF9kZWNvZGVyKGRhdGEpCi0gICAgICAgICAg
ICAgICAgZXhjZXB0IHB5bHNxcGFjay5EZWNvZGVyU3RyZWFtRXJyb3IgYXMgZXhjOgotICAgICAg
ICAgICAgICAgICAgICByYWlzZSBRcGFja0RlY29kZXJTdHJlYW1FcnJvcigpIGZyb20gZXhjCi0g
ICAgICAgICAgICAgICAgc2VsZi5fZGVjb2Rlcl9ieXRlc19yZWNlaXZlZCArPSBsZW4oZGF0YSkK
LSAgICAgICAgICAgIGVsaWYgc3RyZWFtLnN0cmVhbV90eXBlID09IFN0cmVhbVR5cGUuUVBBQ0tf
RU5DT0RFUjoKLSAgICAgICAgICAgICAgICAjIGZlZWQgdW5mcmFtZWQgZGF0YSB0byBlbmNvZGVy
Ci0gICAgICAgICAgICAgICAgZGF0YSA9IGJ1Zi5wdWxsX2J5dGVzKGJ1Zi5jYXBhY2l0eSAtIGJ1
Zi50ZWxsKCkpCi0gICAgICAgICAgICAgICAgY29uc3VtZWQgPSBidWYudGVsbCgpCi0gICAgICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICB1bmJsb2NrZWRfc3RyZWFtcy51cGRh
dGUoc2VsZi5fZGVjb2Rlci5mZWVkX2VuY29kZXIoZGF0YSkpCi0gICAgICAgICAgICAgICAgZXhj
ZXB0IHB5bHNxcGFjay5FbmNvZGVyU3RyZWFtRXJyb3IgYXMgZXhjOgotICAgICAgICAgICAgICAg
ICAgICByYWlzZSBRcGFja0VuY29kZXJTdHJlYW1FcnJvcigpIGZyb20gZXhjCi0gICAgICAgICAg
ICAgICAgc2VsZi5fZW5jb2Rlcl9ieXRlc19yZWNlaXZlZCArPSBsZW4oZGF0YSkKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyB1bmtub3duIHN0cmVhbSB0eXBlLCBkaXNjYXJk
IGRhdGEKLSAgICAgICAgICAgICAgICBidWYuc2VlayhidWYuY2FwYWNpdHkpCi0gICAgICAgICAg
ICAgICAgY29uc3VtZWQgPSBidWYudGVsbCgpCi0KLSAgICAgICAgIyByZW1vdmUgcHJvY2Vzc2Vk
IGRhdGEgZnJvbSBidWZmZXIKLSAgICAgICAgc3RyZWFtLmJ1ZmZlciA9IHN0cmVhbS5idWZmZXJb
Y29uc3VtZWQ6XQotCi0gICAgICAgICMgcHJvY2VzcyB1bmJsb2NrZWQgc3RyZWFtcwotICAgICAg
ICBmb3Igc3RyZWFtX2lkIGluIHVuYmxvY2tlZF9zdHJlYW1zOgotICAgICAgICAgICAgc3RyZWFt
ID0gc2VsZi5fc3RyZWFtW3N0cmVhbV9pZF0KLQotICAgICAgICAgICAgIyByZXN1bWUgaGVhZGVy
cwotICAgICAgICAgICAgaHR0cF9ldmVudHMuZXh0ZW5kKAotICAgICAgICAgICAgICAgIHNlbGYu
X2hhbmRsZV9yZXF1ZXN0X29yX3B1c2hfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGZyYW1l
X3R5cGU9RnJhbWVUeXBlLkhFQURFUlMsCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX2RhdGE9
Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtPXN0cmVhbSwKLSAgICAgICAgICAgICAg
ICAgICAgc3RyZWFtX2VuZGVkPXN0cmVhbS5lbmRlZCBhbmQgbm90IHN0cmVhbS5idWZmZXIsCi0g
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotICAgICAgICAgICAgc3RyZWFtLmJsb2Nr
ZWQgPSBGYWxzZQotICAgICAgICAgICAgc3RyZWFtLmJsb2NrZWRfZnJhbWVfc2l6ZSA9IE5vbmUK
LQotICAgICAgICAgICAgIyByZXN1bWUgcHJvY2Vzc2luZwotICAgICAgICAgICAgaWYgc3RyZWFt
LmJ1ZmZlcjoKLSAgICAgICAgICAgICAgICBodHRwX2V2ZW50cy5leHRlbmQoCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcmVxdWVzdF9vcl9wdXNoX2RhdGEoc3RyZWFtLCBiIiIs
IHN0cmVhbS5lbmRlZCkKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgcmV0dXJuIGh0dHBf
ZXZlbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvZXZlbnRzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V2ZW50cy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2QyMWM1YWJjNDI3MGMyZThmMWJlNThhMDA5YWU3NTI4MTJkMWExNC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvaDMvZXZlbnRzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBA
QAotZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzCi1mcm9tIHR5cGluZyBpbXBvcnQg
TGlzdCwgT3B0aW9uYWwsIFR1cGxlCi0KLUhlYWRlcnMgPSBMaXN0W1R1cGxlW2J5dGVzLCBieXRl
c11dCi0KLQotY2xhc3MgSDNFdmVudDoKLSAgICAiIiIKLSAgICBCYXNlIGNsYXNzIGZvciBIVFRQ
LzMgZXZlbnRzLgotICAgICIiIgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIERhdGFSZWNlaXZlZChI
M0V2ZW50KToKLSAgICAiIiIKLSAgICBUaGUgRGF0YVJlY2VpdmVkIGV2ZW50IGlzIGZpcmVkIHdo
ZW5ldmVyIGRhdGEgaXMgcmVjZWl2ZWQgb24gYSBzdHJlYW0gZnJvbQotICAgIHRoZSByZW1vdGUg
cGVlci4KLSAgICAiIiIKLQotICAgIGRhdGE6IGJ5dGVzCi0gICAgIlRoZSBkYXRhIHdoaWNoIHdh
cyByZWNlaXZlZC4iCi0KLSAgICBzdHJlYW1faWQ6IGludAotICAgICJUaGUgSUQgb2YgdGhlIHN0
cmVhbSB0aGUgZGF0YSB3YXMgcmVjZWl2ZWQgZm9yLiIKLQotICAgIHN0cmVhbV9lbmRlZDogYm9v
bAotICAgICJXaGV0aGVyIHRoZSBTVFJFQU0gZnJhbWUgaGFkIHRoZSBGSU4gYml0IHNldC4iCi0K
LSAgICBwdXNoX2lkOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgICJUaGUgUHVzaCBJRCBvciBg
Tm9uZWAgaWYgdGhpcyBpcyBub3QgYSBwdXNoLiIKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBIZWFk
ZXJzUmVjZWl2ZWQoSDNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhlIEhlYWRlcnNSZWNlaXZlZCBl
dmVudCBpcyBmaXJlZCB3aGVuZXZlciBoZWFkZXJzIGFyZSByZWNlaXZlZC4KLSAgICAiIiIKLQot
ICAgIGhlYWRlcnM6IEhlYWRlcnMKLSAgICAiVGhlIGhlYWRlcnMuIgotCi0gICAgc3RyZWFtX2lk
OiBpbnQKLSAgICAiVGhlIElEIG9mIHRoZSBzdHJlYW0gdGhlIGhlYWRlcnMgd2VyZSByZWNlaXZl
ZCBmb3IuIgotCi0gICAgc3RyZWFtX2VuZGVkOiBib29sCi0gICAgIldoZXRoZXIgdGhlIFNUUkVB
TSBmcmFtZSBoYWQgdGhlIEZJTiBiaXQgc2V0LiIKLQotICAgIHB1c2hfaWQ6IE9wdGlvbmFsW2lu
dF0gPSBOb25lCi0gICAgIlRoZSBQdXNoIElEIG9yIGBOb25lYCBpZiB0aGlzIGlzIG5vdCBhIHB1
c2guIgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIFB1c2hQcm9taXNlUmVjZWl2ZWQoSDNFdmVudCk6
Ci0gICAgIiIiCi0gICAgVGhlIFB1c2hlZFN0cmVhbVJlY2VpdmVkIGV2ZW50IGlzIGZpcmVkIHdo
ZW5ldmVyIGEgcHVzaGVkIHN0cmVhbSBoYXMgYmVlbgotICAgIHJlY2VpdmVkIGZyb20gdGhlIHJl
bW90ZSBwZWVyLgotICAgICIiIgotCi0gICAgaGVhZGVyczogSGVhZGVycwotICAgICJUaGUgcmVx
dWVzdCBoZWFkZXJzLiIKLQotICAgIHB1c2hfaWQ6IGludAotICAgICJUaGUgUHVzaCBJRCBvZiB0
aGUgcHVzaCBwcm9taXNlLiIKLQotICAgIHN0cmVhbV9pZDogaW50Ci0gICAgIlRoZSBTdHJlYW0g
SUQgb2YgdGhlIHN0cmVhbSB0aGF0IHRoZSBwdXNoIGlzIHJlbGF0ZWQgdG8uIgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL2gzL2V4Y2VwdGlvbnMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvaDMvZXhjZXB0aW9ucy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDUyMDBjMWQ2MWZhNWIzYTExNWI0MzQ2NGQ1NjdlYTNhYTI4NTc2Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvaDMvZXhjZXB0aW9ucy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWNs
YXNzIEgzRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiIKLSAgICBCYXNlIGNsYXNzIGZvciBIVFRQ
LzMgZXhjZXB0aW9ucy4KLSAgICAiIiIKLQotCi1jbGFzcyBOb0F2YWlsYWJsZVB1c2hJREVycm9y
KEgzRXJyb3IpOgotICAgICIiIgotICAgIFRoZXJlIGFyZSBubyBhdmFpbGFibGUgcHVzaCBJRHMg
bGVmdC4KLSAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIzNjNlOWI2MDgwYjBlZjNlOGJkNjhh
YTUzMzAyNDlkZmYxMjIzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1
aWMvaDMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvaDMvY29ubmVjdGlv
bi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9oMy9ldmVudHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvaDMvZXhjZXB0aW9ucy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3NyYy9haW9xdWljL3B5LnR5cGVkIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3B5LnR5cGVk
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTY0MmY3OWYyMWQ4NzJmMDEwOTc5ZGNm
NmYwYzRhNDE1YWNjMTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9weS50eXBlZAorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLU1hcmtlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWlj
L3F1aWMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9fX2luaXRf
Xy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0
M2ZkOTAxYzdlNmYyZjhiYzIwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9fX2luaXRfXy5weQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRo
b24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2Nv
bmZpZ3VyYXRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jb25maWd1cmF0
aW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODYxZjgyOTc5ZTk5NzZkMjll
N2M1OGFmMjdmM2VhNjFkMGRhMDdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2NvbmZpZ3VyYXRpb24u
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotZnJvbSBkYXRhY2xhc3NlcyBpbXBv
cnQgZGF0YWNsYXNzLCBmaWVsZAotZnJvbSBvcyBpbXBvcnQgUGF0aExpa2UKLWZyb20gdHlwaW5n
IGltcG9ydCBBbnksIExpc3QsIE9wdGlvbmFsLCBUZXh0SU8sIFVuaW9uCi0KLWZyb20gLi50bHMg
aW1wb3J0IFNlc3Npb25UaWNrZXQsIGxvYWRfcGVtX3ByaXZhdGVfa2V5LCBsb2FkX3BlbV94NTA5
X2NlcnRpZmljYXRlcwotZnJvbSAubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyCi1mcm9tIC5wYWNr
ZXQgaW1wb3J0IFF1aWNQcm90b2NvbFZlcnNpb24KLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBRdWlj
Q29uZmlndXJhdGlvbjoKLSAgICAiIiIKLSAgICBBIFFVSUMgY29uZmlndXJhdGlvbi4KLSAgICAi
IiIKLQotICAgIGFscG5fcHJvdG9jb2xzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZQotICAg
ICIiIgotICAgIEEgbGlzdCBvZiBzdXBwb3J0ZWQgQUxQTiBwcm90b2NvbHMuCi0gICAgIiIiCi0K
LSAgICBjb25uZWN0aW9uX2lkX2xlbmd0aDogaW50ID0gOAotICAgICIiIgotICAgIFRoZSBsZW5n
dGggaW4gYnl0ZXMgb2YgbG9jYWwgY29ubmVjdGlvbiBJRHMuCi0gICAgIiIiCi0KLSAgICBpZGxl
X3RpbWVvdXQ6IGZsb2F0ID0gNjAuMAotICAgICIiIgotICAgIFRoZSBpZGxlIHRpbWVvdXQgaW4g
c2Vjb25kcy4KLQotICAgIFRoZSBjb25uZWN0aW9uIGlzIHRlcm1pbmF0ZWQgaWYgbm90aGluZyBp
cyByZWNlaXZlZCBmb3IgdGhlIGdpdmVuIGR1cmF0aW9uLgotICAgICIiIgotCi0gICAgaXNfY2xp
ZW50OiBib29sID0gVHJ1ZQotICAgICIiIgotICAgIFdoZXRoZXIgdGhpcyBpcyB0aGUgY2xpZW50
IHNpZGUgb2YgdGhlIFFVSUMgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIG1heF9kYXRhOiBp
bnQgPSAxMDQ4NTc2Ci0gICAgIiIiCi0gICAgQ29ubmVjdGlvbi13aWRlIGZsb3cgY29udHJvbCBs
aW1pdC4KLSAgICAiIiIKLQotICAgIG1heF9zdHJlYW1fZGF0YTogaW50ID0gMTA0ODU3NgotICAg
ICIiIgotICAgIFBlci1zdHJlYW0gZmxvdyBjb250cm9sIGxpbWl0LgotICAgICIiIgotCi0gICAg
cXVpY19sb2dnZXI6IE9wdGlvbmFsW1F1aWNMb2dnZXJdID0gTm9uZQotICAgICIiIgotICAgIFRo
ZSA6Y2xhc3M6YH5haW9xdWljLnF1aWMubG9nZ2VyLlF1aWNMb2dnZXJgIGluc3RhbmNlIHRvIGxv
ZyBldmVudHMgdG8uCi0gICAgIiIiCi0KLSAgICBzZWNyZXRzX2xvZ19maWxlOiBUZXh0SU8gPSBO
b25lCi0gICAgIiIiCi0gICAgQSBmaWxlLWxpa2Ugb2JqZWN0IGluIHdoaWNoIHRvIGxvZyB0cmFm
ZmljIHNlY3JldHMuCi0KLSAgICBUaGlzIGlzIHVzZWZ1bCB0byBhbmFseXplIHRyYWZmaWMgY2Fw
dHVyZXMgd2l0aCBXaXJlc2hhcmsuCi0gICAgIiIiCi0KLSAgICBzZXJ2ZXJfbmFtZTogT3B0aW9u
YWxbc3RyXSA9IE5vbmUKLSAgICAiIiIKLSAgICBUaGUgc2VydmVyIG5hbWUgdG8gc2VuZCBkdXJp
bmcgdGhlIFRMUyBoYW5kc2hha2UgdGhlIFNlcnZlciBOYW1lIEluZGljYXRpb24uCi0KLSAgICAu
LiBub3RlOjogVGhpcyBpcyBvbmx5IHVzZWQgYnkgY2xpZW50cy4KLSAgICAiIiIKLQotICAgIHNl
c3Npb25fdGlja2V0OiBPcHRpb25hbFtTZXNzaW9uVGlja2V0XSA9IE5vbmUKLSAgICAiIiIKLSAg
ICBUaGUgVExTIHNlc3Npb24gdGlja2V0IHdoaWNoIHNob3VsZCBiZSB1c2VkIGZvciBzZXNzaW9u
IHJlc3VtcHRpb24uCi0gICAgIiIiCi0KLSAgICBjYWRhdGE6IE9wdGlvbmFsW2J5dGVzXSA9IE5v
bmUKLSAgICBjYWZpbGU6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAgY2FwYXRoOiBPcHRpb25h
bFtzdHJdID0gTm9uZQotICAgIGNlcnRpZmljYXRlOiBBbnkgPSBOb25lCi0gICAgY2VydGlmaWNh
dGVfY2hhaW46IExpc3RbQW55XSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotICAgIG1h
eF9kYXRhZ3JhbV9mcmFtZV9zaXplOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIHByaXZhdGVf
a2V5OiBBbnkgPSBOb25lCi0gICAgcXVhbnR1bV9yZWFkaW5lc3NfdGVzdDogYm9vbCA9IEZhbHNl
Ci0gICAgc3VwcG9ydGVkX3ZlcnNpb25zOiBMaXN0W2ludF0gPSBmaWVsZCgKLSAgICAgICAgZGVm
YXVsdF9mYWN0b3J5PWxhbWJkYTogWwotICAgICAgICAgICAgUXVpY1Byb3RvY29sVmVyc2lvbi5E
UkFGVF8yNywKLSAgICAgICAgICAgIFF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjYsCi0gICAg
ICAgICAgICBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1LAotICAgICAgICBdCi0gICAgKQot
ICAgIHZlcmlmeV9tb2RlOiBPcHRpb25hbFtpbnRdID0gTm9uZQotCi0gICAgZGVmIGxvYWRfY2Vy
dF9jaGFpbigKLSAgICAgICAgc2VsZiwKLSAgICAgICAgY2VydGZpbGU6IFBhdGhMaWtlLAotICAg
ICAgICBrZXlmaWxlOiBPcHRpb25hbFtQYXRoTGlrZV0gPSBOb25lLAotICAgICAgICBwYXNzd29y
ZDogT3B0aW9uYWxbVW5pb25bYnl0ZXMsIHN0cl1dID0gTm9uZSwKLSAgICApIC0+IE5vbmU6Ci0g
ICAgICAgICIiIgotICAgICAgICBMb2FkIGEgcHJpdmF0ZSBrZXkgYW5kIHRoZSBjb3JyZXNwb25k
aW5nIGNlcnRpZmljYXRlLgotICAgICAgICAiIiIKLSAgICAgICAgd2l0aCBvcGVuKGNlcnRmaWxl
LCAicmIiKSBhcyBmcDoKLSAgICAgICAgICAgIGNlcnRpZmljYXRlcyA9IGxvYWRfcGVtX3g1MDlf
Y2VydGlmaWNhdGVzKGZwLnJlYWQoKSkKLSAgICAgICAgc2VsZi5jZXJ0aWZpY2F0ZSA9IGNlcnRp
ZmljYXRlc1swXQotICAgICAgICBzZWxmLmNlcnRpZmljYXRlX2NoYWluID0gY2VydGlmaWNhdGVz
WzE6XQotCi0gICAgICAgIGlmIGtleWZpbGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB3aXRo
IG9wZW4oa2V5ZmlsZSwgInJiIikgYXMgZnA6Ci0gICAgICAgICAgICAgICAgc2VsZi5wcml2YXRl
X2tleSA9IGxvYWRfcGVtX3ByaXZhdGVfa2V5KAotICAgICAgICAgICAgICAgICAgICBmcC5yZWFk
KCksCi0gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPXBhc3N3b3JkLmVuY29kZSgidXRmOCIp
Ci0gICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGFzc3dvcmQsIHN0cikKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZSBwYXNzd29yZCwKLSAgICAgICAgICAgICAgICApCi0KLSAgICBk
ZWYgbG9hZF92ZXJpZnlfbG9jYXRpb25zKAotICAgICAgICBzZWxmLAotICAgICAgICBjYWZpbGU6
IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotICAgICAgICBjYXBhdGg6IE9wdGlvbmFsW3N0cl0gPSBO
b25lLAotICAgICAgICBjYWRhdGE6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUsCi0gICAgKSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgTG9hZCBhIHNldCBvZiAiY2VydGlmaWNhdGlvbiBh
dXRob3JpdHkiIChDQSkgY2VydGlmaWNhdGVzIHVzZWQgdG8KLSAgICAgICAgdmFsaWRhdGUgb3Ro
ZXIgcGVlcnMnIGNlcnRpZmljYXRlcy4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuY2FmaWxl
ID0gY2FmaWxlCi0gICAgICAgIHNlbGYuY2FwYXRoID0gY2FwYXRoCi0gICAgICAgIHNlbGYuY2Fk
YXRhID0gY2FkYXRhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9j
b25uZWN0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvY29ubmVjdGlvbi5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxMzcyY2MwOGJhMDNkY2I0NzNkMDJh
ZDM0OWRjYjliMzRkMDk5MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jb25uZWN0aW9uLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMjY1MyArMCwwIEBACi1pbXBvcnQgYmluYXNjaWkKLWltcG9ydCBsb2dn
aW5nCi1pbXBvcnQgb3MKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi1mcm9tIGRhdGFj
bGFzc2VzIGltcG9ydCBkYXRhY2xhc3MKLWZyb20gZW51bSBpbXBvcnQgRW51bQotZnJvbSB0eXBp
bmcgaW1wb3J0IEFueSwgRGVxdWUsIERpY3QsIEZyb3plblNldCwgTGlzdCwgT3B0aW9uYWwsIFNl
cXVlbmNlLCBUdXBsZQotCi1mcm9tIC4uIGltcG9ydCB0bHMKLWZyb20gLi5idWZmZXIgaW1wb3J0
IFVJTlRfVkFSX01BWCwgQnVmZmVyLCBCdWZmZXJSZWFkRXJyb3IsIHNpemVfdWludF92YXIKLWZy
b20gLiBpbXBvcnQgZXZlbnRzCi1mcm9tIC5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmln
dXJhdGlvbgotZnJvbSAuY3J5cHRvIGltcG9ydCBDcnlwdG9FcnJvciwgQ3J5cHRvUGFpciwgS2V5
VW5hdmFpbGFibGVFcnJvcgotZnJvbSAubG9nZ2VyIGltcG9ydCBRdWljTG9nZ2VyVHJhY2UKLWZy
b20gLnBhY2tldCBpbXBvcnQgKAotICAgIE5PTl9BQ0tfRUxJQ0lUSU5HX0ZSQU1FX1RZUEVTLAot
ICAgIFBBQ0tFVF9UWVBFX0hBTkRTSEFLRSwKLSAgICBQQUNLRVRfVFlQRV9JTklUSUFMLAotICAg
IFBBQ0tFVF9UWVBFX09ORV9SVFQsCi0gICAgUEFDS0VUX1RZUEVfUkVUUlksCi0gICAgUEFDS0VU
X1RZUEVfWkVST19SVFQsCi0gICAgUFJPQklOR19GUkFNRV9UWVBFUywKLSAgICBSRVRSWV9JTlRF
R1JJVFlfVEFHX1NJWkUsCi0gICAgUXVpY0Vycm9yQ29kZSwKLSAgICBRdWljRnJhbWVUeXBlLAot
ICAgIFF1aWNQcm90b2NvbFZlcnNpb24sCi0gICAgUXVpY1N0cmVhbUZyYW1lLAotICAgIFF1aWNU
cmFuc3BvcnRQYXJhbWV0ZXJzLAotICAgIGdldF9yZXRyeV9pbnRlZ3JpdHlfdGFnLAotICAgIGdl
dF9zcGluX2JpdCwKLSAgICBpc19sb25nX2hlYWRlciwKLSAgICBwdWxsX2Fja19mcmFtZSwKLSAg
ICBwdWxsX3F1aWNfaGVhZGVyLAotICAgIHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycywK
LSAgICBwdXNoX2Fja19mcmFtZSwKLSAgICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMs
Ci0pCi1mcm9tIC5wYWNrZXRfYnVpbGRlciBpbXBvcnQgKAotICAgIFBBQ0tFVF9NQVhfU0laRSwK
LSAgICBRdWljRGVsaXZlcnlTdGF0ZSwKLSAgICBRdWljUGFja2V0QnVpbGRlciwKLSAgICBRdWlj
UGFja2V0QnVpbGRlclN0b3AsCi0pCi1mcm9tIC5yZWNvdmVyeSBpbXBvcnQgS19HUkFOVUxBUklU
WSwgUXVpY1BhY2tldFJlY292ZXJ5LCBRdWljUGFja2V0U3BhY2UKLWZyb20gLnN0cmVhbSBpbXBv
cnQgUXVpY1N0cmVhbQotCi1sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigicXVpYyIpCi0KLUNS
WVBUT19CVUZGRVJfU0laRSA9IDE2Mzg0Ci1FUE9DSF9TSE9SVENVVFMgPSB7Ci0gICAgIkkiOiB0
bHMuRXBvY2guSU5JVElBTCwKLSAgICAiSCI6IHRscy5FcG9jaC5IQU5EU0hBS0UsCi0gICAgIjAi
OiB0bHMuRXBvY2guWkVST19SVFQsCi0gICAgIjEiOiB0bHMuRXBvY2guT05FX1JUVCwKLX0KLU1B
WF9FQVJMWV9EQVRBID0gMHhGRkZGRkZGRgotU0VDUkVUU19MQUJFTFMgPSBbCi0gICAgWwotICAg
ICAgICBOb25lLAotICAgICAgICAiUVVJQ19DTElFTlRfRUFSTFlfVFJBRkZJQ19TRUNSRVQiLAot
ICAgICAgICAiUVVJQ19DTElFTlRfSEFORFNIQUtFX1RSQUZGSUNfU0VDUkVUIiwKLSAgICAgICAg
IlFVSUNfQ0xJRU5UX1RSQUZGSUNfU0VDUkVUXzAiLAotICAgIF0sCi0gICAgWwotICAgICAgICBO
b25lLAotICAgICAgICBOb25lLAotICAgICAgICAiUVVJQ19TRVJWRVJfSEFORFNIQUtFX1RSQUZG
SUNfU0VDUkVUIiwKLSAgICAgICAgIlFVSUNfU0VSVkVSX1RSQUZGSUNfU0VDUkVUXzAiLAotICAg
IF0sCi1dCi1TVFJFQU1fRkxBR1MgPSAweDA3Ci0KLU5ldHdvcmtBZGRyZXNzID0gQW55Ci0KLSMg
ZnJhbWUgc2l6ZXMKLUFDS19GUkFNRV9DQVBBQ0lUWSA9IDY0ICAjIEZJWE1FOiB0aGlzIGlzIGFy
Yml0cmFyeSEKLUFQUExJQ0FUSU9OX0NMT1NFX0ZSQU1FX0NBUEFDSVRZID0gMSArIDggKyA4ICAj
ICsgcmVhc29uIGxlbmd0aAotSEFORFNIQUtFX0RPTkVfRlJBTUVfQ0FQQUNJVFkgPSAxCi1NQVhf
REFUQV9GUkFNRV9DQVBBQ0lUWSA9IDEgKyA4Ci1NQVhfU1RSRUFNX0RBVEFfRlJBTUVfQ0FQQUNJ
VFkgPSAxICsgOCArIDgKLU5FV19DT05ORUNUSU9OX0lEX0ZSQU1FX0NBUEFDSVRZID0gMSArIDgg
KyA4ICsgMSArIDIwICsgMTYKLVBBVEhfQ0hBTExFTkdFX0ZSQU1FX0NBUEFDSVRZID0gMSArIDgK
LVBBVEhfUkVTUE9OU0VfRlJBTUVfQ0FQQUNJVFkgPSAxICsgOAotUElOR19GUkFNRV9DQVBBQ0lU
WSA9IDEKLVJFVElSRV9DT05ORUNUSU9OX0lEX0NBUEFDSVRZID0gMSArIDgKLVNUUkVBTVNfQkxP
Q0tFRF9DQVBBQ0lUWSA9IDEgKyA4Ci1UUkFOU1BPUlRfQ0xPU0VfRlJBTUVfQ0FQQUNJVFkgPSAx
ICsgOCArIDggKyA4ICAjICsgcmVhc29uIGxlbmd0aAotCi0KLWRlZiBFUE9DSFMoc2hvcnRjdXQ6
IHN0cikgLT4gRnJvemVuU2V0W3Rscy5FcG9jaF06Ci0gICAgcmV0dXJuIGZyb3plbnNldChFUE9D
SF9TSE9SVENVVFNbaV0gZm9yIGkgaW4gc2hvcnRjdXQpCi0KLQotZGVmIGR1bXBfY2lkKGNpZDog
Ynl0ZXMpIC0+IHN0cjoKLSAgICByZXR1cm4gYmluYXNjaWkuaGV4bGlmeShjaWQpLmRlY29kZSgi
YXNjaWkiKQotCi0KLWRlZiBnZXRfZXBvY2gocGFja2V0X3R5cGU6IGludCkgLT4gdGxzLkVwb2No
OgotICAgIGlmIHBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX0lOSVRJQUw6Ci0gICAgICAgIHJl
dHVybiB0bHMuRXBvY2guSU5JVElBTAotICAgIGVsaWYgcGFja2V0X3R5cGUgPT0gUEFDS0VUX1RZ
UEVfWkVST19SVFQ6Ci0gICAgICAgIHJldHVybiB0bHMuRXBvY2guWkVST19SVFQKLSAgICBlbGlm
IHBhY2tldF90eXBlID09IFBBQ0tFVF9UWVBFX0hBTkRTSEFLRToKLSAgICAgICAgcmV0dXJuIHRs
cy5FcG9jaC5IQU5EU0hBS0UKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gdGxzLkVwb2NoLk9O
RV9SVFQKLQotCi1kZWYgc3RyZWFtX2lzX2NsaWVudF9pbml0aWF0ZWQoc3RyZWFtX2lkOiBpbnQp
IC0+IGJvb2w6Ci0gICAgIiIiCi0gICAgUmV0dXJucyBUcnVlIGlmIHRoZSBzdHJlYW0gaXMgY2xp
ZW50IGluaXRpYXRlZC4KLSAgICAiIiIKLSAgICByZXR1cm4gbm90IChzdHJlYW1faWQgJiAxKQot
Ci0KLWRlZiBzdHJlYW1faXNfdW5pZGlyZWN0aW9uYWwoc3RyZWFtX2lkOiBpbnQpIC0+IGJvb2w6
Ci0gICAgIiIiCi0gICAgUmV0dXJucyBUcnVlIGlmIHRoZSBzdHJlYW0gaXMgdW5pZGlyZWN0aW9u
YWwuCi0gICAgIiIiCi0gICAgcmV0dXJuIGJvb2woc3RyZWFtX2lkICYgMikKLQotCi1jbGFzcyBR
dWljQ29ubmVjdGlvbkVycm9yKEV4Y2VwdGlvbik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGVy
cm9yX2NvZGU6IGludCwgZnJhbWVfdHlwZTogaW50LCByZWFzb25fcGhyYXNlOiBzdHIpOgotICAg
ICAgICBzZWxmLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlCi0gICAgICAgIHNlbGYuZnJhbWVfdHlw
ZSA9IGZyYW1lX3R5cGUKLSAgICAgICAgc2VsZi5yZWFzb25fcGhyYXNlID0gcmVhc29uX3BocmFz
ZQotCi0gICAgZGVmIF9fc3RyX18oc2VsZikgLT4gc3RyOgotICAgICAgICBzID0gIkVycm9yOiAl
ZCwgcmVhc29uOiAlcyIgJSAoc2VsZi5lcnJvcl9jb2RlLCBzZWxmLnJlYXNvbl9waHJhc2UpCi0g
ICAgICAgIGlmIHNlbGYuZnJhbWVfdHlwZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHMgKz0g
IiwgZnJhbWVfdHlwZTogJXMiICUgc2VsZi5mcmFtZV90eXBlCi0gICAgICAgIHJldHVybiBzCi0K
LQotY2xhc3MgUXVpY0Nvbm5lY3Rpb25BZGFwdGVyKGxvZ2dpbmcuTG9nZ2VyQWRhcHRlcik6Ci0g
ICAgZGVmIHByb2Nlc3Moc2VsZiwgbXNnOiBzdHIsIGt3YXJnczogQW55KSAtPiBUdXBsZVtzdHIs
IEFueV06Ci0gICAgICAgIHJldHVybiAiWyVzXSAlcyIgJSAoc2VsZi5leHRyYVsiaWQiXSwgbXNn
KSwga3dhcmdzCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY0Nvbm5lY3Rpb25JZDoKLSAgICBj
aWQ6IGJ5dGVzCi0gICAgc2VxdWVuY2VfbnVtYmVyOiBpbnQKLSAgICBzdGF0ZWxlc3NfcmVzZXRf
dG9rZW46IGJ5dGVzID0gYiIiCi0gICAgd2FzX3NlbnQ6IGJvb2wgPSBGYWxzZQotCi0KLWNsYXNz
IFF1aWNDb25uZWN0aW9uU3RhdGUoRW51bSk6Ci0gICAgRklSU1RGTElHSFQgPSAwCi0gICAgQ09O
TkVDVEVEID0gMQotICAgIENMT1NJTkcgPSAyCi0gICAgRFJBSU5JTkcgPSAzCi0gICAgVEVSTUlO
QVRFRCA9IDQKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBRdWljTmV0d29ya1BhdGg6Ci0gICAgYWRk
cjogTmV0d29ya0FkZHJlc3MKLSAgICBieXRlc19yZWNlaXZlZDogaW50ID0gMAotICAgIGJ5dGVz
X3NlbnQ6IGludCA9IDAKLSAgICBpc192YWxpZGF0ZWQ6IGJvb2wgPSBGYWxzZQotICAgIGxvY2Fs
X2NoYWxsZW5nZTogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQotICAgIHJlbW90ZV9jaGFsbGVuZ2U6
IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKLQotICAgIGRlZiBjYW5fc2VuZChzZWxmLCBzaXplOiBp
bnQpIC0+IGJvb2w6Ci0gICAgICAgIHJldHVybiBzZWxmLmlzX3ZhbGlkYXRlZCBvciAoc2VsZi5i
eXRlc19zZW50ICsgc2l6ZSkgPD0gMyAqIHNlbGYuYnl0ZXNfcmVjZWl2ZWQKLQotCi1AZGF0YWNs
YXNzCi1jbGFzcyBRdWljUmVjZWl2ZUNvbnRleHQ6Ci0gICAgZXBvY2g6IHRscy5FcG9jaAotICAg
IGhvc3RfY2lkOiBieXRlcwotICAgIG5ldHdvcmtfcGF0aDogUXVpY05ldHdvcmtQYXRoCi0gICAg
cXVpY19sb2dnZXJfZnJhbWVzOiBPcHRpb25hbFtMaXN0W0FueV1dCi0gICAgdGltZTogZmxvYXQK
LQotCi1FTkRfU1RBVEVTID0gZnJvemVuc2V0KAotICAgIFsKLSAgICAgICAgUXVpY0Nvbm5lY3Rp
b25TdGF0ZS5DTE9TSU5HLAotICAgICAgICBRdWljQ29ubmVjdGlvblN0YXRlLkRSQUlOSU5HLAot
ICAgICAgICBRdWljQ29ubmVjdGlvblN0YXRlLlRFUk1JTkFURUQsCi0gICAgXQotKQotCi0KLWNs
YXNzIFF1aWNDb25uZWN0aW9uOgotICAgICIiIgotICAgIEEgUVVJQyBjb25uZWN0aW9uLgotCi0g
ICAgVGhlIHN0YXRlIG1hY2hpbmUgaXMgZHJpdmVuIGJ5IHRocmVlIGtpbmRzIG9mIHNvdXJjZXM6
Ci0KLSAgICAtIHRoZSBBUEkgdXNlciByZXF1ZXN0aW5nIGRhdGEgdG8gYmUgc2VuZCBvdXQgKHNl
ZSA6bWV0aDpgY29ubmVjdGAsCi0gICAgICA6bWV0aDpgc2VuZF9waW5nYCwgOm1ldGg6YHNlbmRf
ZGF0YWdyYW1fZGF0YWAgYW5kIDptZXRoOmBzZW5kX3N0cmVhbV9kYXRhYCkKLSAgICAtIGRhdGEg
YmVpbmcgcmVjZWl2ZWQgZnJvbSB0aGUgbmV0d29yayAoc2VlIDptZXRoOmByZWNlaXZlX2RhdGFn
cmFtYCkKLSAgICAtIGEgdGltZXIgZmlyaW5nIChzZWUgOm1ldGg6YGhhbmRsZV90aW1lcmApCi0K
LSAgICA6cGFyYW0gY29uZmlndXJhdGlvbjogVGhlIFFVSUMgY29uZmlndXJhdGlvbiB0byB1c2Uu
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oCi0gICAgICAgIHNlbGYsCi0gICAgICAgICos
Ci0gICAgICAgIGNvbmZpZ3VyYXRpb246IFF1aWNDb25maWd1cmF0aW9uLAotICAgICAgICBsb2dn
ZXJfY29ubmVjdGlvbl9pZDogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZSwKLSAgICAgICAgb3JpZ2lu
YWxfY29ubmVjdGlvbl9pZDogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZSwKLSAgICAgICAgc2Vzc2lv
bl90aWNrZXRfZmV0Y2hlcjogT3B0aW9uYWxbdGxzLlNlc3Npb25UaWNrZXRGZXRjaGVyXSA9IE5v
bmUsCi0gICAgICAgIHNlc3Npb25fdGlja2V0X2hhbmRsZXI6IE9wdGlvbmFsW3Rscy5TZXNzaW9u
VGlja2V0SGFuZGxlcl0gPSBOb25lLAotICAgICkgLT4gTm9uZToKLSAgICAgICAgaWYgY29uZmln
dXJhdGlvbi5pc19jbGllbnQ6Ci0gICAgICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgICAg
IG9yaWdpbmFsX2Nvbm5lY3Rpb25faWQgaXMgTm9uZQotICAgICAgICAgICAgKSwgIkNhbm5vdCBz
ZXQgb3JpZ2luYWxfY29ubmVjdGlvbl9pZCBmb3IgYSBjbGllbnQiCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY2VydGlm
aWNhdGUgaXMgbm90IE5vbmUKLSAgICAgICAgICAgICksICJTU0wgY2VydGlmaWNhdGUgaXMgcmVx
dWlyZWQgZm9yIGEgc2VydmVyIgotICAgICAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAgICAg
ICBjb25maWd1cmF0aW9uLnByaXZhdGVfa2V5IGlzIG5vdCBOb25lCi0gICAgICAgICAgICApLCAi
U1NMIHByaXZhdGUga2V5IGlzIHJlcXVpcmVkIGZvciBhIHNlcnZlciIKLQotICAgICAgICAjIGNv
bmZpZ3VyYXRpb24KLSAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24K
LSAgICAgICAgc2VsZi5faXNfY2xpZW50ID0gY29uZmlndXJhdGlvbi5pc19jbGllbnQKLQotICAg
ICAgICBzZWxmLl9hY2tfZGVsYXkgPSBLX0dSQU5VTEFSSVRZCi0gICAgICAgIHNlbGYuX2Nsb3Nl
X2F0OiBPcHRpb25hbFtmbG9hdF0gPSBOb25lCi0gICAgICAgIHNlbGYuX2Nsb3NlX2V2ZW50OiBP
cHRpb25hbFtldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWRdID0gTm9uZQotICAgICAgICBzZWxm
Ll9jb25uZWN0X2NhbGxlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2NyeXB0b3M6IERpY3RbdGxz
LkVwb2NoLCBDcnlwdG9QYWlyXSA9IHt9Ci0gICAgICAgIHNlbGYuX2NyeXB0b19idWZmZXJzOiBE
aWN0W3Rscy5FcG9jaCwgQnVmZmVyXSA9IHt9Ci0gICAgICAgIHNlbGYuX2NyeXB0b19zdHJlYW1z
OiBEaWN0W3Rscy5FcG9jaCwgUXVpY1N0cmVhbV0gPSB7fQotICAgICAgICBzZWxmLl9ldmVudHM6
IERlcXVlW2V2ZW50cy5RdWljRXZlbnRdID0gZGVxdWUoKQotICAgICAgICBzZWxmLl9oYW5kc2hh
a2VfY29tcGxldGUgPSBGYWxzZQotICAgICAgICBzZWxmLl9oYW5kc2hha2VfY29uZmlybWVkID0g
RmFsc2UKLSAgICAgICAgc2VsZi5faG9zdF9jaWRzID0gWwotICAgICAgICAgICAgUXVpY0Nvbm5l
Y3Rpb25JZCgKLSAgICAgICAgICAgICAgICBjaWQ9b3MudXJhbmRvbShjb25maWd1cmF0aW9uLmNv
bm5lY3Rpb25faWRfbGVuZ3RoKSwKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXI9MCwK
LSAgICAgICAgICAgICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW49b3MudXJhbmRvbSgxNiksCi0g
ICAgICAgICAgICAgICAgd2FzX3NlbnQ9VHJ1ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgXQot
ICAgICAgICBzZWxmLmhvc3RfY2lkID0gc2VsZi5faG9zdF9jaWRzWzBdLmNpZAotICAgICAgICBz
ZWxmLl9ob3N0X2NpZF9zZXEgPSAxCi0gICAgICAgIHNlbGYuX2xvY2FsX2Fja19kZWxheV9leHBv
bmVudCA9IDMKLSAgICAgICAgc2VsZi5fbG9jYWxfYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQg
PSA4Ci0gICAgICAgIHNlbGYuX2xvY2FsX21heF9kYXRhID0gY29uZmlndXJhdGlvbi5tYXhfZGF0
YQotICAgICAgICBzZWxmLl9sb2NhbF9tYXhfZGF0YV9zZW50ID0gY29uZmlndXJhdGlvbi5tYXhf
ZGF0YQotICAgICAgICBzZWxmLl9sb2NhbF9tYXhfZGF0YV91c2VkID0gMAotICAgICAgICBzZWxm
Ll9sb2NhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9sb2NhbCA9IGNvbmZpZ3VyYXRpb24ubWF4X3N0
cmVhbV9kYXRhCi0gICAgICAgIHNlbGYuX2xvY2FsX21heF9zdHJlYW1fZGF0YV9iaWRpX3JlbW90
ZSA9IGNvbmZpZ3VyYXRpb24ubWF4X3N0cmVhbV9kYXRhCi0gICAgICAgIHNlbGYuX2xvY2FsX21h
eF9zdHJlYW1fZGF0YV91bmkgPSBjb25maWd1cmF0aW9uLm1heF9zdHJlYW1fZGF0YQotICAgICAg
ICBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtc19iaWRpID0gMTI4Ci0gICAgICAgIHNlbGYuX2xvY2Fs
X21heF9zdHJlYW1zX3VuaSA9IDEyOAotICAgICAgICBzZWxmLl9sb3NzX2F0OiBPcHRpb25hbFtm
bG9hdF0gPSBOb25lCi0gICAgICAgIHNlbGYuX25ldHdvcmtfcGF0aHM6IExpc3RbUXVpY05ldHdv
cmtQYXRoXSA9IFtdCi0gICAgICAgIHNlbGYuX29yaWdpbmFsX2Nvbm5lY3Rpb25faWQgPSBvcmln
aW5hbF9jb25uZWN0aW9uX2lkCi0gICAgICAgIHNlbGYuX3BhY2luZ19hdDogT3B0aW9uYWxbZmxv
YXRdID0gTm9uZQotICAgICAgICBzZWxmLl9wYWNrZXRfbnVtYmVyID0gMAotICAgICAgICBzZWxm
Ll9wYXJhbWV0ZXJzX3JlY2VpdmVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcGVlcl9jaWQgPSBv
cy51cmFuZG9tKGNvbmZpZ3VyYXRpb24uY29ubmVjdGlvbl9pZF9sZW5ndGgpCi0gICAgICAgIHNl
bGYuX3BlZXJfY2lkX3NlcTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVl
cl9jaWRfYXZhaWxhYmxlOiBMaXN0W1F1aWNDb25uZWN0aW9uSWRdID0gW10KLSAgICAgICAgc2Vs
Zi5fcGVlcl90b2tlbiA9IGIiIgotICAgICAgICBzZWxmLl9xdWljX2xvZ2dlcjogT3B0aW9uYWxb
UXVpY0xvZ2dlclRyYWNlXSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcmVtb3RlX2Fja19kZWxheV9l
eHBvbmVudCA9IDMKLSAgICAgICAgc2VsZi5fcmVtb3RlX2FjdGl2ZV9jb25uZWN0aW9uX2lkX2xp
bWl0ID0gMAotICAgICAgICBzZWxmLl9yZW1vdGVfaWRsZV90aW1lb3V0ID0gMC4wICAjIHNlY29u
ZHMKLSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9kYXRhID0gMAotICAgICAgICBzZWxmLl9yZW1v
dGVfbWF4X2RhdGFfdXNlZCA9IDAKLSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9kYXRhZ3JhbV9m
cmFtZV9zaXplOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgICAgICBzZWxmLl9yZW1vdGVfbWF4
X3N0cmVhbV9kYXRhX2JpZGlfbG9jYWwgPSAwCi0gICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfc3Ry
ZWFtX2RhdGFfYmlkaV9yZW1vdGUgPSAwCi0gICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFt
X2RhdGFfdW5pID0gMAotICAgICAgICBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbXNfYmlkaSA9IDAK
LSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX3VuaSA9IDAKLSAgICAgICAgc2VsZi5f
c3BhY2VzOiBEaWN0W3Rscy5FcG9jaCwgUXVpY1BhY2tldFNwYWNlXSA9IHt9Ci0gICAgICAgIHNl
bGYuX3NwaW5fYml0ID0gRmFsc2UKLSAgICAgICAgc2VsZi5fc3Bpbl9oaWdoZXN0X3BuID0gMAot
ICAgICAgICBzZWxmLl9zdGF0ZSA9IFF1aWNDb25uZWN0aW9uU3RhdGUuRklSU1RGTElHSFQKLSAg
ICAgICAgc2VsZi5fc3RhdGVsZXNzX3JldHJ5X2NvdW50ID0gMAotICAgICAgICBzZWxmLl9zdHJl
YW1zOiBEaWN0W2ludCwgUXVpY1N0cmVhbV0gPSB7fQotICAgICAgICBzZWxmLl9zdHJlYW1zX2Js
b2NrZWRfYmlkaTogTGlzdFtRdWljU3RyZWFtXSA9IFtdCi0gICAgICAgIHNlbGYuX3N0cmVhbXNf
YmxvY2tlZF91bmk6IExpc3RbUXVpY1N0cmVhbV0gPSBbXQotICAgICAgICBzZWxmLl92ZXJzaW9u
OiBPcHRpb25hbFtpbnRdID0gTm9uZQotCi0gICAgICAgICMgbG9nZ2luZwotICAgICAgICBpZiBs
b2dnZXJfY29ubmVjdGlvbl9pZCBpcyBOb25lOgotICAgICAgICAgICAgbG9nZ2VyX2Nvbm5lY3Rp
b25faWQgPSBzZWxmLl9wZWVyX2NpZAotICAgICAgICBzZWxmLl9sb2dnZXIgPSBRdWljQ29ubmVj
dGlvbkFkYXB0ZXIoCi0gICAgICAgICAgICBsb2dnZXIsIHsiaWQiOiBkdW1wX2NpZChsb2dnZXJf
Y29ubmVjdGlvbl9pZCl9Ci0gICAgICAgICkKLSAgICAgICAgaWYgY29uZmlndXJhdGlvbi5xdWlj
X2xvZ2dlcjoKLSAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyID0gY29uZmlndXJhdGlvbi5x
dWljX2xvZ2dlci5zdGFydF90cmFjZSgKLSAgICAgICAgICAgICAgICBpc19jbGllbnQ9Y29uZmln
dXJhdGlvbi5pc19jbGllbnQsIG9kY2lkPWxvZ2dlcl9jb25uZWN0aW9uX2lkCi0gICAgICAgICAg
ICApCi0KLSAgICAgICAgIyBsb3NzIHJlY292ZXJ5Ci0gICAgICAgIHNlbGYuX2xvc3MgPSBRdWlj
UGFja2V0UmVjb3ZlcnkoCi0gICAgICAgICAgICBpc19jbGllbnRfd2l0aG91dF8xcnR0PXNlbGYu
X2lzX2NsaWVudCwKLSAgICAgICAgICAgIHF1aWNfbG9nZ2VyPXNlbGYuX3F1aWNfbG9nZ2VyLAot
ICAgICAgICAgICAgc2VuZF9wcm9iZT1zZWxmLl9zZW5kX3Byb2JlLAotICAgICAgICApCi0KLSAg
ICAgICAgIyB0aGluZ3MgdG8gc2VuZAotICAgICAgICBzZWxmLl9jbG9zZV9wZW5kaW5nID0gRmFs
c2UKLSAgICAgICAgc2VsZi5fZGF0YWdyYW1zX3BlbmRpbmc6IERlcXVlW2J5dGVzXSA9IGRlcXVl
KCkKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlX2RvbmVfcGVuZGluZyA9IEZhbHNlCi0gICAgICAg
IHNlbGYuX3BpbmdfcGVuZGluZzogTGlzdFtpbnRdID0gW10KLSAgICAgICAgc2VsZi5fcHJvYmVf
cGVuZGluZyA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3JldGlyZV9jb25uZWN0aW9uX2lkczogTGlz
dFtpbnRdID0gW10KLSAgICAgICAgc2VsZi5fc3RyZWFtc19ibG9ja2VkX3BlbmRpbmcgPSBGYWxz
ZQotCi0gICAgICAgICMgY2FsbGJhY2tzCi0gICAgICAgIHNlbGYuX3Nlc3Npb25fdGlja2V0X2Zl
dGNoZXIgPSBzZXNzaW9uX3RpY2tldF9mZXRjaGVyCi0gICAgICAgIHNlbGYuX3Nlc3Npb25fdGlj
a2V0X2hhbmRsZXIgPSBzZXNzaW9uX3RpY2tldF9oYW5kbGVyCi0KLSAgICAgICAgIyBmcmFtZSBo
YW5kbGVycwotICAgICAgICBzZWxmLl9fZnJhbWVfaGFuZGxlcnMgPSB7Ci0gICAgICAgICAgICAw
eDAwOiAoc2VsZi5faGFuZGxlX3BhZGRpbmdfZnJhbWUsIEVQT0NIUygiSUgwMSIpKSwKLSAgICAg
ICAgICAgIDB4MDE6IChzZWxmLl9oYW5kbGVfcGluZ19mcmFtZSwgRVBPQ0hTKCJJSDAxIikpLAot
ICAgICAgICAgICAgMHgwMjogKHNlbGYuX2hhbmRsZV9hY2tfZnJhbWUsIEVQT0NIUygiSUgxIikp
LAotICAgICAgICAgICAgMHgwMzogKHNlbGYuX2hhbmRsZV9hY2tfZnJhbWUsIEVQT0NIUygiSUgx
IikpLAotICAgICAgICAgICAgMHgwNDogKHNlbGYuX2hhbmRsZV9yZXNldF9zdHJlYW1fZnJhbWUs
IEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDA1OiAoc2VsZi5faGFuZGxlX3N0b3Bfc2Vu
ZGluZ19mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MDY6IChzZWxmLl9oYW5k
bGVfY3J5cHRvX2ZyYW1lLCBFUE9DSFMoIklIMSIpKSwKLSAgICAgICAgICAgIDB4MDc6IChzZWxm
Ll9oYW5kbGVfbmV3X3Rva2VuX2ZyYW1lLCBFUE9DSFMoIjEiKSksCi0gICAgICAgICAgICAweDA4
OiAoc2VsZi5faGFuZGxlX3N0cmVhbV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAg
IDB4MDk6IChzZWxmLl9oYW5kbGVfc3RyZWFtX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAg
ICAgICAgMHgwQTogKHNlbGYuX2hhbmRsZV9zdHJlYW1fZnJhbWUsIEVQT0NIUygiMDEiKSksCi0g
ICAgICAgICAgICAweDBCOiAoc2VsZi5faGFuZGxlX3N0cmVhbV9mcmFtZSwgRVBPQ0hTKCIwMSIp
KSwKLSAgICAgICAgICAgIDB4MEM6IChzZWxmLl9oYW5kbGVfc3RyZWFtX2ZyYW1lLCBFUE9DSFMo
IjAxIikpLAotICAgICAgICAgICAgMHgwRDogKHNlbGYuX2hhbmRsZV9zdHJlYW1fZnJhbWUsIEVQ
T0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDBFOiAoc2VsZi5faGFuZGxlX3N0cmVhbV9mcmFt
ZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MEY6IChzZWxmLl9oYW5kbGVfc3RyZWFt
X2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgxMDogKHNlbGYuX2hhbmRsZV9t
YXhfZGF0YV9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MTE6IChzZWxmLl9o
YW5kbGVfbWF4X3N0cmVhbV9kYXRhX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAg
MHgxMjogKHNlbGYuX2hhbmRsZV9tYXhfc3RyZWFtc19iaWRpX2ZyYW1lLCBFUE9DSFMoIjAxIikp
LAotICAgICAgICAgICAgMHgxMzogKHNlbGYuX2hhbmRsZV9tYXhfc3RyZWFtc191bmlfZnJhbWUs
IEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDE0OiAoc2VsZi5faGFuZGxlX2RhdGFfYmxv
Y2tlZF9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAgIDB4MTU6IChzZWxmLl9oYW5k
bGVfc3RyZWFtX2RhdGFfYmxvY2tlZF9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgICAg
IDB4MTY6IChzZWxmLl9oYW5kbGVfc3RyZWFtc19ibG9ja2VkX2ZyYW1lLCBFUE9DSFMoIjAxIikp
LAotICAgICAgICAgICAgMHgxNzogKHNlbGYuX2hhbmRsZV9zdHJlYW1zX2Jsb2NrZWRfZnJhbWUs
IEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDE4OiAoc2VsZi5faGFuZGxlX25ld19jb25u
ZWN0aW9uX2lkX2ZyYW1lLCBFUE9DSFMoIjAxIikpLAotICAgICAgICAgICAgMHgxOTogKHNlbGYu
X2hhbmRsZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAg
ICAgICAgIDB4MUE6IChzZWxmLl9oYW5kbGVfcGF0aF9jaGFsbGVuZ2VfZnJhbWUsIEVQT0NIUygi
MDEiKSksCi0gICAgICAgICAgICAweDFCOiAoc2VsZi5faGFuZGxlX3BhdGhfcmVzcG9uc2VfZnJh
bWUsIEVQT0NIUygiMDEiKSksCi0gICAgICAgICAgICAweDFDOiAoc2VsZi5faGFuZGxlX2Nvbm5l
Y3Rpb25fY2xvc2VfZnJhbWUsIEVQT0NIUygiSUgxIikpLAotICAgICAgICAgICAgMHgxRDogKHNl
bGYuX2hhbmRsZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lLCBFUE9DSFMoIjEiKSksCi0gICAgICAg
ICAgICAweDFFOiAoc2VsZi5faGFuZGxlX2hhbmRzaGFrZV9kb25lX2ZyYW1lLCBFUE9DSFMoIjEi
KSksCi0gICAgICAgICAgICAweDMwOiAoc2VsZi5faGFuZGxlX2RhdGFncmFtX2ZyYW1lLCBFUE9D
SFMoIjAxIikpLAotICAgICAgICAgICAgMHgzMTogKHNlbGYuX2hhbmRsZV9kYXRhZ3JhbV9mcmFt
ZSwgRVBPQ0hTKCIwMSIpKSwKLSAgICAgICAgfQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGNv
bmZpZ3VyYXRpb24oc2VsZikgLT4gUXVpY0NvbmZpZ3VyYXRpb246Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9jb25maWd1cmF0aW9uCi0KLSAgICBkZWYgY2hhbmdlX2Nvbm5lY3Rpb25faWQoc2VsZikg
LT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFN3aXRjaCB0byB0aGUgbmV4dCBhdmFpbGFi
bGUgY29ubmVjdGlvbiBJRCBhbmQgcmV0aXJlCi0gICAgICAgIHRoZSBwcmV2aW91cyBvbmUuCi0K
LSAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBjYWxsIDptZXRoOmBkYXRhZ3JhbXNf
dG9fc2VuZGAgdG8gcmV0cmlldmUgZGF0YQotICAgICAgICB3aGljaCBuZWVkcyB0byBiZSBzZW50
LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fcGVlcl9jaWRfYXZhaWxhYmxlOgotICAg
ICAgICAgICAgIyByZXRpcmUgcHJldmlvdXMgQ0lECi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAgICAgIlJldGlyaW5nIENJRCAlcyAoJWQpIiwgZHVtcF9jaWQo
c2VsZi5fcGVlcl9jaWQpLCBzZWxmLl9wZWVyX2NpZF9zZXEKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHNlbGYuX3JldGlyZV9jb25uZWN0aW9uX2lkcy5hcHBlbmQoc2VsZi5fcGVlcl9jaWRf
c2VxKQotCi0gICAgICAgICAgICAjIGFzc2lnbiBuZXcgQ0lECi0gICAgICAgICAgICBjb25uZWN0
aW9uX2lkID0gc2VsZi5fcGVlcl9jaWRfYXZhaWxhYmxlLnBvcCgwKQotICAgICAgICAgICAgc2Vs
Zi5fcGVlcl9jaWRfc2VxID0gY29ubmVjdGlvbl9pZC5zZXF1ZW5jZV9udW1iZXIKLSAgICAgICAg
ICAgIHNlbGYuX3BlZXJfY2lkID0gY29ubmVjdGlvbl9pZC5jaWQKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAiU3dpdGNoaW5nIHRvIENJRCAlcyAoJWQp
IiwgZHVtcF9jaWQoc2VsZi5fcGVlcl9jaWQpLCBzZWxmLl9wZWVyX2NpZF9zZXEKLSAgICAgICAg
ICAgICkKLQotICAgIGRlZiBjbG9zZSgKLSAgICAgICAgc2VsZiwKLSAgICAgICAgZXJyb3JfY29k
ZTogaW50ID0gUXVpY0Vycm9yQ29kZS5OT19FUlJPUiwKLSAgICAgICAgZnJhbWVfdHlwZTogT3B0
aW9uYWxbaW50XSA9IE5vbmUsCi0gICAgICAgIHJlYXNvbl9waHJhc2U6IHN0ciA9ICIiLAotICAg
ICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENsb3NlIHRoZSBjb25uZWN0aW9uLgot
Ci0gICAgICAgIDpwYXJhbSBlcnJvcl9jb2RlOiBBbiBlcnJvciBjb2RlIGluZGljYXRpbmcgd2h5
IHRoZSBjb25uZWN0aW9uIGlzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBjbG9z
ZWQuCi0gICAgICAgIDpwYXJhbSByZWFzb25fcGhyYXNlOiBBIGh1bWFuLXJlYWRhYmxlIGV4cGxh
bmF0aW9uIG9mIHdoeSB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rp
b24gaXMgYmVpbmcgY2xvc2VkLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fc3RhdGUg
bm90IGluIEVORF9TVEFURVM6Ci0gICAgICAgICAgICBzZWxmLl9jbG9zZV9ldmVudCA9IGV2ZW50
cy5Db25uZWN0aW9uVGVybWluYXRlZCgKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPWVycm9y
X2NvZGUsCi0gICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAg
ICAgICAgIHJlYXNvbl9waHJhc2U9cmVhc29uX3BocmFzZSwKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHNlbGYuX2Nsb3NlX3BlbmRpbmcgPSBUcnVlCi0KLSAgICBkZWYgY29ubmVjdChzZWxm
LCBhZGRyOiBOZXR3b3JrQWRkcmVzcywgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIiIi
Ci0gICAgICAgIEluaXRpYXRlIHRoZSBUTFMgaGFuZHNoYWtlLgotCi0gICAgICAgIFRoaXMgbWV0
aG9kIGNhbiBvbmx5IGJlIGNhbGxlZCBmb3IgY2xpZW50cyBhbmQgYSBzaW5nbGUgdGltZS4KLQot
ICAgICAgICBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIGNhbGwgOm1ldGg6YGRhdGFncmFtc190
b19zZW5kYCB0byByZXRyaWV2ZSBkYXRhCi0gICAgICAgIHdoaWNoIG5lZWRzIHRvIGJlIHNlbnQu
Ci0KLSAgICAgICAgOnBhcmFtIGFkZHI6IFRoZSBuZXR3b3JrIGFkZHJlc3Mgb2YgdGhlIHJlbW90
ZSBwZWVyLgotICAgICAgICA6cGFyYW0gbm93OiBUaGUgY3VycmVudCB0aW1lLgotICAgICAgICAi
IiIKLSAgICAgICAgYXNzZXJ0ICgKLSAgICAgICAgICAgIHNlbGYuX2lzX2NsaWVudCBhbmQgbm90
IHNlbGYuX2Nvbm5lY3RfY2FsbGVkCi0gICAgICAgICksICJjb25uZWN0KCkgY2FuIG9ubHkgYmUg
Y2FsbGVkIGZvciBjbGllbnRzIGFuZCBhIHNpbmdsZSB0aW1lIgotICAgICAgICBzZWxmLl9jb25u
ZWN0X2NhbGxlZCA9IFRydWUKLQotICAgICAgICBzZWxmLl9uZXR3b3JrX3BhdGhzID0gW1F1aWNO
ZXR3b3JrUGF0aChhZGRyLCBpc192YWxpZGF0ZWQ9VHJ1ZSldCi0gICAgICAgIHNlbGYuX3ZlcnNp
b24gPSBzZWxmLl9jb25maWd1cmF0aW9uLnN1cHBvcnRlZF92ZXJzaW9uc1swXQotICAgICAgICBz
ZWxmLl9jb25uZWN0KG5vdz1ub3cpCi0KLSAgICBkZWYgZGF0YWdyYW1zX3RvX3NlbmQoc2VsZiwg
bm93OiBmbG9hdCkgLT4gTGlzdFtUdXBsZVtieXRlcywgTmV0d29ya0FkZHJlc3NdXToKLSAgICAg
ICAgIiIiCi0gICAgICAgIFJldHVybiBhIGxpc3Qgb2YgYChkYXRhLCBhZGRyKWAgdHVwbGVzIG9m
IGRhdGFncmFtcyB3aGljaCBuZWVkIHRvIGJlCi0gICAgICAgIHNlbnQsIGFuZCB0aGUgbmV0d29y
ayBhZGRyZXNzIHRvIHdoaWNoIHRoZXkgbmVlZCB0byBiZSBzZW50LgotCi0gICAgICAgIEFmdGVy
IGNhbGxpbmcgdGhpcyBtZXRob2QgY2FsbCA6bWV0aDpgZ2V0X3RpbWVyYCB0byBrbm93IHdoZW4g
dGhlIG5leHQKLSAgICAgICAgdGltZXIgbmVlZHMgdG8gYmUgc2V0LgotCi0gICAgICAgIDpwYXJh
bSBub3c6IFRoZSBjdXJyZW50IHRpbWUuCi0gICAgICAgICIiIgotICAgICAgICBuZXR3b3JrX3Bh
dGggPSBzZWxmLl9uZXR3b3JrX3BhdGhzWzBdCi0KLSAgICAgICAgaWYgc2VsZi5fc3RhdGUgaW4g
RU5EX1NUQVRFUzoKLSAgICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAgICMgYnVpbGQgZGF0
YWdyYW1zCi0gICAgICAgIGJ1aWxkZXIgPSBRdWljUGFja2V0QnVpbGRlcigKLSAgICAgICAgICAg
IGhvc3RfY2lkPXNlbGYuaG9zdF9jaWQsCi0gICAgICAgICAgICBpc19jbGllbnQ9c2VsZi5faXNf
Y2xpZW50LAotICAgICAgICAgICAgcGFja2V0X251bWJlcj1zZWxmLl9wYWNrZXRfbnVtYmVyLAot
ICAgICAgICAgICAgcGVlcl9jaWQ9c2VsZi5fcGVlcl9jaWQsCi0gICAgICAgICAgICBwZWVyX3Rv
a2VuPXNlbGYuX3BlZXJfdG9rZW4sCi0gICAgICAgICAgICBxdWljX2xvZ2dlcj1zZWxmLl9xdWlj
X2xvZ2dlciwKLSAgICAgICAgICAgIHNwaW5fYml0PXNlbGYuX3NwaW5fYml0LAotICAgICAgICAg
ICAgdmVyc2lvbj1zZWxmLl92ZXJzaW9uLAotICAgICAgICApCi0gICAgICAgIGlmIHNlbGYuX2Ns
b3NlX3BlbmRpbmc6Ci0gICAgICAgICAgICBmb3IgZXBvY2gsIHBhY2tldF90eXBlIGluICgKLSAg
ICAgICAgICAgICAgICAodGxzLkVwb2NoLk9ORV9SVFQsIFBBQ0tFVF9UWVBFX09ORV9SVFQpLAot
ICAgICAgICAgICAgICAgICh0bHMuRXBvY2guSEFORFNIQUtFLCBQQUNLRVRfVFlQRV9IQU5EU0hB
S0UpLAotICAgICAgICAgICAgICAgICh0bHMuRXBvY2guSU5JVElBTCwgUEFDS0VUX1RZUEVfSU5J
VElBTCksCi0gICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIGNyeXB0byA9IHNlbGYuX2Ny
eXB0b3NbZXBvY2hdCi0gICAgICAgICAgICAgICAgaWYgY3J5cHRvLnNlbmQuaXNfdmFsaWQoKToK
LSAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQocGFja2V0X3R5cGUsIGNy
eXB0bykKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29ubmVjdGlvbl9jbG9zZV9m
cmFtZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXI9YnVpbGRlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9c2VsZi5fY2xvc2VfZXZlbnQuZXJyb3JfY29kZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9c2VsZi5fY2xvc2VfZXZlbnQuZnJh
bWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9c2VsZi5fY2xv
c2VfZXZlbnQucmVhc29uX3BocmFzZSwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9jbG9zZV9wZW5kaW5nID0gRmFsc2UKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2JlZ2luKGlzX2luaXRpYXRvcj1UcnVl
LCBub3c9bm93KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBjb25nZXN0aW9uIGNvbnRy
b2wKLSAgICAgICAgICAgIGJ1aWxkZXIubWF4X2ZsaWdodF9ieXRlcyA9ICgKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb3NzLmNvbmdlc3Rpb25fd2luZG93IC0gc2VsZi5fbG9zcy5ieXRlc19pbl9m
bGlnaHQKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGlmIHNlbGYuX3Byb2JlX3BlbmRpbmcg
YW5kIGJ1aWxkZXIubWF4X2ZsaWdodF9ieXRlcyA8IFBBQ0tFVF9NQVhfU0laRToKLSAgICAgICAg
ICAgICAgICBidWlsZGVyLm1heF9mbGlnaHRfYnl0ZXMgPSBQQUNLRVRfTUFYX1NJWkUKLQotICAg
ICAgICAgICAgIyBsaW1pdCBkYXRhIG9uIHVuLXZhbGlkYXRlZCBuZXR3b3JrIHBhdGhzCi0gICAg
ICAgICAgICBpZiBub3QgbmV0d29ya19wYXRoLmlzX3ZhbGlkYXRlZDoKLSAgICAgICAgICAgICAg
ICBidWlsZGVyLm1heF90b3RhbF9ieXRlcyA9ICgKLSAgICAgICAgICAgICAgICAgICAgbmV0d29y
a19wYXRoLmJ5dGVzX3JlY2VpdmVkICogMyAtIG5ldHdvcmtfcGF0aC5ieXRlc19zZW50Ci0gICAg
ICAgICAgICAgICAgKQotCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaWYgbm90
IHNlbGYuX2hhbmRzaGFrZV9jb25maXJtZWQ6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBlcG9j
aCBpbiBbdGxzLkVwb2NoLklOSVRJQUwsIHRscy5FcG9jaC5IQU5EU0hBS0VdOgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfaGFuZHNoYWtlKGJ1aWxkZXIsIGVwb2NoLCBub3cp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfYXBwbGljYXRpb24oYnVpbGRlciwgbmV0d29y
a19wYXRoLCBub3cpCi0gICAgICAgICAgICBleGNlcHQgUXVpY1BhY2tldEJ1aWxkZXJTdG9wOgot
ICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBkYXRhZ3JhbXMsIHBhY2tldHMgPSBidWls
ZGVyLmZsdXNoKCkKLQotICAgICAgICBpZiBkYXRhZ3JhbXM6Ci0gICAgICAgICAgICBzZWxmLl9w
YWNrZXRfbnVtYmVyID0gYnVpbGRlci5wYWNrZXRfbnVtYmVyCi0KLSAgICAgICAgICAgICMgcmVn
aXN0ZXIgcGFja2V0cwotICAgICAgICAgICAgc2VudF9oYW5kc2hha2UgPSBGYWxzZQotICAgICAg
ICAgICAgZm9yIHBhY2tldCBpbiBwYWNrZXRzOgotICAgICAgICAgICAgICAgIHBhY2tldC5zZW50
X3RpbWUgPSBub3cKLSAgICAgICAgICAgICAgICBzZWxmLl9sb3NzLm9uX3BhY2tldF9zZW50KAot
ICAgICAgICAgICAgICAgICAgICBwYWNrZXQ9cGFja2V0LCBzcGFjZT1zZWxmLl9zcGFjZXNbcGFj
a2V0LmVwb2NoXQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBpZiBwYWNrZXQu
ZXBvY2ggPT0gdGxzLkVwb2NoLkhBTkRTSEFLRToKLSAgICAgICAgICAgICAgICAgICAgc2VudF9o
YW5kc2hha2UgPSBUcnVlCi0KLSAgICAgICAgICAgICAgICAjIGxvZyBwYWNrZXQKLSAgICAgICAg
ICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAgICAg
ICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBldmVudD0i
cGFja2V0X3NlbnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT17Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInBhY2tldF90eXBlIjogc2VsZi5fcXVpY19sb2dnZXIucGFja2V0
X3R5cGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldC5wYWNrZXRfdHlw
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImhlYWRlciI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhY2tl
dF9udW1iZXIiOiBzdHIocGFja2V0LnBhY2tldF9udW1iZXIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGFja2V0X3NpemUiOiBwYWNrZXQuc2VudF9ieXRlcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNjaWQiOiBkdW1wX2NpZChzZWxmLmhvc3RfY2lkKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpc19sb25nX2hlYWRlcihwYWNrZXQu
cGFja2V0X3R5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgIiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkY2lkIjogZHVtcF9jaWQoc2VsZi5fcGVl
cl9jaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZyYW1lcyI6IHBhY2tldC5xdWljX2xvZ2dlcl9mcmFtZXMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAg
ICMgY2hlY2sgaWYgd2UgY2FuIGRpc2NhcmQgaW5pdGlhbCBrZXlzCi0gICAgICAgICAgICBpZiBz
ZW50X2hhbmRzaGFrZSBhbmQgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgICAgIHNlbGYu
X2Rpc2NhcmRfZXBvY2godGxzLkVwb2NoLklOSVRJQUwpCi0KLSAgICAgICAgIyByZXR1cm4gZGF0
YWdyYW1zIHRvIHNlbmQgYW5kIHRoZSBkZXN0aW5hdGlvbiBuZXR3b3JrIGFkZHJlc3MKLSAgICAg
ICAgcmV0ID0gW10KLSAgICAgICAgZm9yIGRhdGFncmFtIGluIGRhdGFncmFtczoKLSAgICAgICAg
ICAgIGJ5dGVfbGVuZ3RoID0gbGVuKGRhdGFncmFtKQotICAgICAgICAgICAgbmV0d29ya19wYXRo
LmJ5dGVzX3NlbnQgKz0gYnl0ZV9sZW5ndGgKLSAgICAgICAgICAgIHJldC5hcHBlbmQoKGRhdGFn
cmFtLCBuZXR3b3JrX3BhdGguYWRkcikpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9n
Z2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19l
dmVudCgKLSAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAg
ICAgICAgICAgICAgIGV2ZW50PSJkYXRhZ3JhbXNfc2VudCIsCi0gICAgICAgICAgICAgICAgICAg
IGRhdGE9eyJieXRlX2xlbmd0aCI6IGJ5dGVfbGVuZ3RoLCAiY291bnQiOiAxfSwKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgIHJldHVybiByZXQKLQotICAgIGRlZiBnZXRfbmV4dF9hdmFpbGFi
bGVfc3RyZWFtX2lkKHNlbGYsIGlzX3VuaWRpcmVjdGlvbmFsPUZhbHNlKSAtPiBpbnQ6Ci0gICAg
ICAgICIiIgotICAgICAgICBSZXR1cm4gdGhlIHN0cmVhbSBJRCBmb3IgdGhlIG5leHQgc3RyZWFt
IGNyZWF0ZWQgYnkgdGhpcyBlbmRwb2ludC4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0cmVhbV9p
ZCA9IChpbnQoaXNfdW5pZGlyZWN0aW9uYWwpIDw8IDEpIHwgaW50KG5vdCBzZWxmLl9pc19jbGll
bnQpCi0gICAgICAgIHdoaWxlIHN0cmVhbV9pZCBpbiBzZWxmLl9zdHJlYW1zOgotICAgICAgICAg
ICAgc3RyZWFtX2lkICs9IDQKLSAgICAgICAgcmV0dXJuIHN0cmVhbV9pZAotCi0gICAgZGVmIGdl
dF90aW1lcihzZWxmKSAtPiBPcHRpb25hbFtmbG9hdF06Ci0gICAgICAgICIiIgotICAgICAgICBS
ZXR1cm4gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHRpbWVyIHNob3VsZCBmaXJlIG9yIE5vbmUgaWYg
bm8gdGltZXIgaXMgbmVlZGVkLgotICAgICAgICAiIiIKLSAgICAgICAgdGltZXJfYXQgPSBzZWxm
Ll9jbG9zZV9hdAotICAgICAgICBpZiBzZWxmLl9zdGF0ZSBub3QgaW4gRU5EX1NUQVRFUzoKLSAg
ICAgICAgICAgICMgYWNrIHRpbWVyCi0gICAgICAgICAgICBmb3Igc3BhY2UgaW4gc2VsZi5fbG9z
cy5zcGFjZXM6Ci0gICAgICAgICAgICAgICAgaWYgc3BhY2UuYWNrX2F0IGlzIG5vdCBOb25lIGFu
ZCBzcGFjZS5hY2tfYXQgPCB0aW1lcl9hdDoKLSAgICAgICAgICAgICAgICAgICAgdGltZXJfYXQg
PSBzcGFjZS5hY2tfYXQKLQotICAgICAgICAgICAgIyBsb3NzIGRldGVjdGlvbiB0aW1lcgotICAg
ICAgICAgICAgc2VsZi5fbG9zc19hdCA9IHNlbGYuX2xvc3MuZ2V0X2xvc3NfZGV0ZWN0aW9uX3Rp
bWUoKQotICAgICAgICAgICAgaWYgc2VsZi5fbG9zc19hdCBpcyBub3QgTm9uZSBhbmQgc2VsZi5f
bG9zc19hdCA8IHRpbWVyX2F0OgotICAgICAgICAgICAgICAgIHRpbWVyX2F0ID0gc2VsZi5fbG9z
c19hdAotCi0gICAgICAgICAgICAjIHBhY2luZyB0aW1lcgotICAgICAgICAgICAgaWYgc2VsZi5f
cGFjaW5nX2F0IGlzIG5vdCBOb25lIGFuZCBzZWxmLl9wYWNpbmdfYXQgPCB0aW1lcl9hdDoKLSAg
ICAgICAgICAgICAgICB0aW1lcl9hdCA9IHNlbGYuX3BhY2luZ19hdAotCi0gICAgICAgIHJldHVy
biB0aW1lcl9hdAotCi0gICAgZGVmIGhhbmRsZV90aW1lcihzZWxmLCBub3c6IGZsb2F0KSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIHRoZSB0aW1lci4KLQotICAgICAgICBB
ZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIGNhbGwgOm1ldGg6YGRhdGFncmFtc190b19zZW5kYCB0
byByZXRyaWV2ZSBkYXRhCi0gICAgICAgIHdoaWNoIG5lZWRzIHRvIGJlIHNlbnQuCi0KLSAgICAg
ICAgOnBhcmFtIG5vdzogVGhlIGN1cnJlbnQgdGltZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMg
ZW5kIG9mIGNsb3NpbmcgcGVyaW9kIG9yIGlkbGUgdGltZW91dAotICAgICAgICBpZiBub3cgPj0g
c2VsZi5fY2xvc2VfYXQ6Ci0gICAgICAgICAgICBpZiBzZWxmLl9jbG9zZV9ldmVudCBpcyBOb25l
OgotICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2V2ZW50ID0gZXZlbnRzLkNvbm5lY3Rpb25U
ZXJtaW5hdGVkKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUu
SU5URVJOQUxfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9Tm9uZSwKLSAg
ICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iSWRsZSB0aW1lb3V0IiwKLSAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9jbG9zZV9lbmQoKQotICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgIyBsb3NzIGRldGVjdGlvbiB0aW1lb3V0Ci0gICAgICAgIGlmIHNlbGYu
X2xvc3NfYXQgaXMgbm90IE5vbmUgYW5kIG5vdyA+PSBzZWxmLl9sb3NzX2F0OgotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCJMb3NzIGRldGVjdGlvbiB0cmlnZ2VyZWQiKQotICAgICAg
ICAgICAgc2VsZi5fbG9zcy5vbl9sb3NzX2RldGVjdGlvbl90aW1lb3V0KG5vdz1ub3cpCi0KLSAg
ICBkZWYgbmV4dF9ldmVudChzZWxmKSAtPiBPcHRpb25hbFtldmVudHMuUXVpY0V2ZW50XToKLSAg
ICAgICAgIiIiCi0gICAgICAgIFJldHJpZXZlIHRoZSBuZXh0IGV2ZW50IGZyb20gdGhlIGV2ZW50
IGJ1ZmZlci4KLQotICAgICAgICBSZXR1cm5zIGBOb25lYCBpZiB0aGVyZSBhcmUgbm8gYnVmZmVy
ZWQgZXZlbnRzLgotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2V2ZW50cy5wb3BsZWZ0KCkKLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAg
ICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIHJlY2VpdmVfZGF0YWdyYW0oc2VsZiwgZGF0
YTogYnl0ZXMsIGFkZHI6IE5ldHdvcmtBZGRyZXNzLCBub3c6IGZsb2F0KSAtPiBOb25lOgotICAg
ICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGFuIGluY29taW5nIGRhdGFncmFtLgotCi0gICAgICAg
IEFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgY2FsbCA6bWV0aDpgZGF0YWdyYW1zX3RvX3NlbmRg
IHRvIHJldHJpZXZlIGRhdGEKLSAgICAgICAgd2hpY2ggbmVlZHMgdG8gYmUgc2VudC4KLQotICAg
ICAgICA6cGFyYW0gZGF0YTogVGhlIGRhdGFncmFtIHdoaWNoIHdhcyByZWNlaXZlZC4KLSAgICAg
ICAgOnBhcmFtIGFkZHI6IFRoZSBuZXR3b3JrIGFkZHJlc3MgZnJvbSB3aGljaCB0aGUgZGF0YWdy
YW0gd2FzIHJlY2VpdmVkLgotICAgICAgICA6cGFyYW0gbm93OiBUaGUgY3VycmVudCB0aW1lLgot
ICAgICAgICAiIiIKLSAgICAgICAgIyBzdG9wIGhhbmRsaW5nIHBhY2tldHMgd2hlbiBjbG9zaW5n
Ci0gICAgICAgIGlmIHNlbGYuX3N0YXRlIGluIEVORF9TVEFURVM6Ci0gICAgICAgICAgICByZXR1
cm4KLQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICBjYXRlZ29y
eT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAgICAgICBldmVudD0iZGF0YWdyYW1zX3JlY2VpdmVk
IiwKLSAgICAgICAgICAgICAgICBkYXRhPXsiYnl0ZV9sZW5ndGgiOiBsZW4oZGF0YSksICJjb3Vu
dCI6IDF9LAotICAgICAgICAgICAgKQotCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEp
Ci0gICAgICAgIHdoaWxlIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICBzdGFydF9vZmYgPSBi
dWYudGVsbCgpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaGVhZGVyID0gcHVs
bF9xdWljX2hlYWRlcigKLSAgICAgICAgICAgICAgICAgICAgYnVmLCBob3N0X2NpZF9sZW5ndGg9
c2VsZi5fY29uZmlndXJhdGlvbi5jb25uZWN0aW9uX2lkX2xlbmd0aAotICAgICAgICAgICAgICAg
ICkKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVy
bgotCi0gICAgICAgICAgICAjIGNoZWNrIGRlc3RpbmF0aW9uIENJRCBtYXRjaGVzCi0gICAgICAg
ICAgICBkZXN0aW5hdGlvbl9jaWRfc2VxOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgICAgICAg
ICAgZm9yIGNvbm5lY3Rpb25faWQgaW4gc2VsZi5faG9zdF9jaWRzOgotICAgICAgICAgICAgICAg
IGlmIGhlYWRlci5kZXN0aW5hdGlvbl9jaWQgPT0gY29ubmVjdGlvbl9pZC5jaWQ6Ci0gICAgICAg
ICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2NpZF9zZXEgPSBjb25uZWN0aW9uX2lkLnNlcXVlbmNl
X251bWJlcgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgaWYgc2VsZi5f
aXNfY2xpZW50IGFuZCBkZXN0aW5hdGlvbl9jaWRfc2VxIGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3F1aWNfbG9nZ2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGNh
dGVnb3J5PSJ0cmFuc3BvcnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tl
dF9kcm9wcGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9eyJ0cmlnZ2VyIjogInVu
a25vd25fY29ubmVjdGlvbl9pZCJ9LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgICMgY2hlY2sgcHJvdG9jb2wgdmVyc2lvbgotICAg
ICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIHNlbGYuX2lzX2NsaWVudAotICAgICAgICAg
ICAgICAgIGFuZCBzZWxmLl9zdGF0ZSA9PSBRdWljQ29ubmVjdGlvblN0YXRlLkZJUlNURkxJR0hU
Ci0gICAgICAgICAgICAgICAgYW5kIGhlYWRlci52ZXJzaW9uID09IFF1aWNQcm90b2NvbFZlcnNp
b24uTkVHT1RJQVRJT04KLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgIyB2ZXJzaW9u
IG5lZ290aWF0aW9uCi0gICAgICAgICAgICAgICAgdmVyc2lvbnMgPSBbXQotICAgICAgICAgICAg
ICAgIHdoaWxlIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICAgICAgICAgIHZlcnNpb25zLmFw
cGVuZChidWYucHVsbF91aW50MzIoKSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xv
Z2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIu
bG9nX2V2ZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBldmVudD0icGFja2V0X3JlY2VpdmVkIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YWNrZXRfdHlwZSI6ICJ2ZXJzaW9uX25lZ290aWF0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaGVhZGVyIjogewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Np
ZCI6IGR1bXBfY2lkKGhlYWRlci5zb3VyY2VfY2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRjaWQiOiBkdW1wX2NpZChoZWFkZXIuZGVzdGluYXRpb25fY2lkKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJm
cmFtZXMiOiBbXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICAgICkKLSAgICAgICAgICAgICAgICBjb21tb24gPSBzZXQoc2VsZi5fY29uZmlndXJhdGlvbi5z
dXBwb3J0ZWRfdmVyc2lvbnMpLmludGVyc2VjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgdmVy
c2lvbnMKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgaWYgbm90IGNvbW1vbjoK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmVycm9yKCJDb3VsZCBub3QgZmluZCBh
IGNvbW1vbiBwcm90b2NvbCB2ZXJzaW9uIikKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xv
c2VfZXZlbnQgPSBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQoCi0gICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuSU5URVJOQUxfRVJST1IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICByZWFzb25fcGhyYXNlPSJDb3VsZCBub3QgZmluZCBhIGNvbW1vbiBwcm90b2NvbCB2ZXJzaW9u
IiwKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbG9z
ZV9lbmQoKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gUXVpY1Byb3RvY29sVmVyc2lvbihtYXgoY29tbW9uKSkKLSAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygiUmV0cnlpbmcgd2l0aCAlcyIsIHNlbGYuX3ZlcnNpb24p
Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdChub3c9bm93KQotICAgICAgICAgICAgICAg
IHJldHVybgotICAgICAgICAgICAgZWxpZiAoCi0gICAgICAgICAgICAgICAgaGVhZGVyLnZlcnNp
b24gaXMgbm90IE5vbmUKLSAgICAgICAgICAgICAgICBhbmQgaGVhZGVyLnZlcnNpb24gbm90IGlu
IHNlbGYuX2NvbmZpZ3VyYXRpb24uc3VwcG9ydGVkX3ZlcnNpb25zCi0gICAgICAgICAgICApOgot
ICAgICAgICAgICAgICAgICMgdW5zdXBwb3J0ZWQgdmVyc2lvbgotICAgICAgICAgICAgICAgIGlm
IHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29y
eT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50PSJwYWNrZXRfZHJv
cHBlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXsidHJpZ2dlciI6ICJ1bnN1cHBv
cnRlZF92ZXJzaW9uIn0sCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4KLQotICAgICAgICAgICAgaWYgc2VsZi5faXNfY2xpZW50IGFuZCBoZWFkZXIucGFja2V0
X3R5cGUgPT0gUEFDS0VUX1RZUEVfUkVUUlk6Ci0gICAgICAgICAgICAgICAgIyBjYWxjdWxhdGUg
c3RhdGVsZXNzIHJldHJ5IGludGVncml0eSB0YWcKLSAgICAgICAgICAgICAgICBpbnRlZ3JpdHlf
dGFnID0gZ2V0X3JldHJ5X2ludGVncml0eV90YWcoCi0gICAgICAgICAgICAgICAgICAgIGJ1Zi5k
YXRhX3NsaWNlKHN0YXJ0X29mZiwgYnVmLnRlbGwoKSAtIFJFVFJZX0lOVEVHUklUWV9UQUdfU0la
RSksCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BlZXJfY2lkLAotICAgICAgICAgICAgICAg
ICkKLQotICAgICAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVyLmRl
c3RpbmF0aW9uX2NpZCA9PSBzZWxmLmhvc3RfY2lkCi0gICAgICAgICAgICAgICAgICAgIGFuZCBo
ZWFkZXIuaW50ZWdyaXR5X3RhZyA9PSBpbnRlZ3JpdHlfdGFnCi0gICAgICAgICAgICAgICAgICAg
IGFuZCBub3Qgc2VsZi5fc3RhdGVsZXNzX3JldHJ5X2NvdW50Ci0gICAgICAgICAgICAgICAgKToK
LSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tldF9yZWNlaXZlZCIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YT17Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YWNrZXRfdHlwZSI6ICJyZXRyeSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
ZWFkZXIiOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NpZCI6IGR1
bXBfY2lkKGhlYWRlci5zb3VyY2VfY2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkY2lkIjogZHVtcF9jaWQoaGVhZGVyLmRlc3RpbmF0aW9uX2NpZCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJmcmFtZXMiOiBbXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29yaWdpbmFs
X2Nvbm5lY3Rpb25faWQgPSBzZWxmLl9wZWVyX2NpZAotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9wZWVyX2NpZCA9IGhlYWRlci5zb3VyY2VfY2lkCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
X3BlZXJfdG9rZW4gPSBoZWFkZXIudG9rZW4KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3Rh
dGVsZXNzX3JldHJ5X2NvdW50ICs9IDEKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oIlBlcmZvcm1pbmcgc3RhdGVsZXNzIHJldHJ5IikKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fY29ubmVjdChub3c9bm93KQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAg
ICAgICBuZXR3b3JrX3BhdGggPSBzZWxmLl9maW5kX25ldHdvcmtfcGF0aChhZGRyKQotCi0gICAg
ICAgICAgICAjIHNlcnZlciBpbml0aWFsaXphdGlvbgotICAgICAgICAgICAgaWYgbm90IHNlbGYu
X2lzX2NsaWVudCBhbmQgc2VsZi5fc3RhdGUgPT0gUXVpY0Nvbm5lY3Rpb25TdGF0ZS5GSVJTVEZM
SUdIVDoKLSAgICAgICAgICAgICAgICBhc3NlcnQgKAotICAgICAgICAgICAgICAgICAgICBoZWFk
ZXIucGFja2V0X3R5cGUgPT0gUEFDS0VUX1RZUEVfSU5JVElBTAotICAgICAgICAgICAgICAgICks
ICJmaXJzdCBwYWNrZXQgbXVzdCBiZSBJTklUSUFMIgotICAgICAgICAgICAgICAgIHNlbGYuX25l
dHdvcmtfcGF0aHMgPSBbbmV0d29ya19wYXRoXQotICAgICAgICAgICAgICAgIHNlbGYuX3ZlcnNp
b24gPSBRdWljUHJvdG9jb2xWZXJzaW9uKGhlYWRlci52ZXJzaW9uKQotICAgICAgICAgICAgICAg
IHNlbGYuX2luaXRpYWxpemUoaGVhZGVyLmRlc3RpbmF0aW9uX2NpZCkKLQotICAgICAgICAgICAg
IyBkZXRlcm1pbmUgY3J5cHRvIGFuZCBwYWNrZXQgc3BhY2UKLSAgICAgICAgICAgIGVwb2NoID0g
Z2V0X2Vwb2NoKGhlYWRlci5wYWNrZXRfdHlwZSkKLSAgICAgICAgICAgIGNyeXB0byA9IHNlbGYu
X2NyeXB0b3NbZXBvY2hdCi0gICAgICAgICAgICBpZiBlcG9jaCA9PSB0bHMuRXBvY2guWkVST19S
VFQ6Ci0gICAgICAgICAgICAgICAgc3BhY2UgPSBzZWxmLl9zcGFjZXNbdGxzLkVwb2NoLk9ORV9S
VFRdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNwYWNlID0gc2VsZi5fc3Bh
Y2VzW2Vwb2NoXQotCi0gICAgICAgICAgICAjIGRlY3J5cHQgcGFja2V0Ci0gICAgICAgICAgICBl
bmNyeXB0ZWRfb2ZmID0gYnVmLnRlbGwoKSAtIHN0YXJ0X29mZgotICAgICAgICAgICAgZW5kX29m
ZiA9IGJ1Zi50ZWxsKCkgKyBoZWFkZXIucmVzdF9sZW5ndGgKLSAgICAgICAgICAgIGJ1Zi5zZWVr
KGVuZF9vZmYpCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwbGFpbl9oZWFk
ZXIsIHBsYWluX3BheWxvYWQsIHBhY2tldF9udW1iZXIgPSBjcnlwdG8uZGVjcnlwdF9wYWNrZXQo
Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFbc3RhcnRfb2ZmOmVuZF9vZmZdLCBlbmNyeXB0ZWRf
b2ZmLCBzcGFjZS5leHBlY3RlZF9wYWNrZXRfbnVtYmVyCi0gICAgICAgICAgICAgICAgKQotICAg
ICAgICAgICAgZXhjZXB0IEtleVVuYXZhaWxhYmxlRXJyb3IgYXMgZXhjOgotICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZyhleGMpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fcXVp
Y19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9n
Z2VyLmxvZ19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJ0cmFuc3Bv
cnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tldF9kcm9wcGVkIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9eyJ0cmlnZ2VyIjogImtleV91bmF2YWlsYWJsZSJ9
LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgICAgIGV4Y2VwdCBDcnlwdG9FcnJvciBhcyBleGM6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKGV4YykKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2
ZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBldmVudD0icGFja2V0X2Ryb3BwZWQiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YT17InRyaWdnZXIiOiAicGF5bG9hZF9kZWNyeXB0X2Vycm9yIn0sCi0g
ICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAg
ICAgICAjIGNoZWNrIHJlc2VydmVkIGJpdHMKLSAgICAgICAgICAgIGlmIGhlYWRlci5pc19sb25n
X2hlYWRlcjoKLSAgICAgICAgICAgICAgICByZXNlcnZlZF9tYXNrID0gMHgwQwotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXNlcnZlZF9tYXNrID0gMHgxOAotICAgICAgICAg
ICAgaWYgcGxhaW5faGVhZGVyWzBdICYgcmVzZXJ2ZWRfbWFzazoKLSAgICAgICAgICAgICAgICBz
ZWxmLmNsb3NlKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUu
UFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPU5vbmUs
Ci0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IlJlc2VydmVkIGJpdHMgbXVzdCBi
ZSB6ZXJvIiwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgICAgICMgcmFpc2UgZXhwZWN0ZWQgcGFja2V0IG51bWJlcgotICAgICAgICAgICAgaWYg
cGFja2V0X251bWJlciA+IHNwYWNlLmV4cGVjdGVkX3BhY2tldF9udW1iZXI6Ci0gICAgICAgICAg
ICAgICAgc3BhY2UuZXhwZWN0ZWRfcGFja2V0X251bWJlciA9IHBhY2tldF9udW1iZXIgKyAxCi0K
LSAgICAgICAgICAgICMgbG9nIHBhY2tldAotICAgICAgICAgICAgcXVpY19sb2dnZXJfZnJhbWVz
OiBPcHRpb25hbFtMaXN0W0RpY3RdXSA9IE5vbmUKLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNf
bG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHF1aWNfbG9nZ2VyX2ZyYW1lcyA9
IFtdCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAg
ICAgICAgICAgICAgICBjYXRlZ29yeT0idHJhbnNwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAg
ZXZlbnQ9InBhY2tldF9yZWNlaXZlZCIsCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9ewotICAg
ICAgICAgICAgICAgICAgICAgICAgInBhY2tldF90eXBlIjogc2VsZi5fcXVpY19sb2dnZXIucGFj
a2V0X3R5cGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLnBhY2tldF90eXBl
Ci0gICAgICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICAgICAgImhl
YWRlciI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0X251bWJlciI6IHN0
cihwYWNrZXRfbnVtYmVyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0X3Np
emUiOiBlbmRfb2ZmIC0gc3RhcnRfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
Y2lkIjogZHVtcF9jaWQoaGVhZGVyLmRlc3RpbmF0aW9uX2NpZCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNjaWQiOiBkdW1wX2NpZChoZWFkZXIuc291cmNlX2NpZCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgImZyYW1lcyI6IHF1
aWNfbG9nZ2VyX2ZyYW1lcywKLSAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgICMgZGlzY2FyZCBpbml0aWFsIGtleXMgYW5kIHBhY2tldCBzcGFj
ZQotICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lzX2NsaWVudCBhbmQgZXBvY2ggPT0gdGxzLkVw
b2NoLkhBTkRTSEFLRToKLSAgICAgICAgICAgICAgICBzZWxmLl9kaXNjYXJkX2Vwb2NoKHRscy5F
cG9jaC5JTklUSUFMKQotCi0gICAgICAgICAgICAjIHVwZGF0ZSBzdGF0ZQotICAgICAgICAgICAg
aWYgc2VsZi5fcGVlcl9jaWRfc2VxIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGVl
cl9jaWQgPSBoZWFkZXIuc291cmNlX2NpZAotICAgICAgICAgICAgICAgIHNlbGYuX3BlZXJfY2lk
X3NlcSA9IDAKLQotICAgICAgICAgICAgaWYgc2VsZi5fc3RhdGUgPT0gUXVpY0Nvbm5lY3Rpb25T
dGF0ZS5GSVJTVEZMSUdIVDoKLSAgICAgICAgICAgICAgICBzZWxmLl9zZXRfc3RhdGUoUXVpY0Nv
bm5lY3Rpb25TdGF0ZS5DT05ORUNURUQpCi0KLSAgICAgICAgICAgICMgdXBkYXRlIHNwaW4gYml0
Ci0gICAgICAgICAgICBpZiBub3QgaGVhZGVyLmlzX2xvbmdfaGVhZGVyIGFuZCBwYWNrZXRfbnVt
YmVyID4gc2VsZi5fc3Bpbl9oaWdoZXN0X3BuOgotICAgICAgICAgICAgICAgIHNwaW5fYml0ID0g
Z2V0X3NwaW5fYml0KHBsYWluX2hlYWRlclswXSkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9p
c19jbGllbnQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NwaW5fYml0ID0gbm90IHNwaW5f
Yml0Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3Bp
bl9iaXQgPSBzcGluX2JpdAotICAgICAgICAgICAgICAgIHNlbGYuX3NwaW5faGlnaGVzdF9wbiA9
IHBhY2tldF9udW1iZXIKLQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZl
bnQoCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT0iY29ubmVjdGl2aXR5IiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50PSJzcGluX2JpdF91cGRhdGVkIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGE9eyJzdGF0ZSI6IHNlbGYuX3NwaW5fYml0fSwKLSAgICAgICAg
ICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGhhbmRsZSBwYXlsb2FkCi0gICAgICAgICAg
ICBjb250ZXh0ID0gUXVpY1JlY2VpdmVDb250ZXh0KAotICAgICAgICAgICAgICAgIGVwb2NoPWVw
b2NoLAotICAgICAgICAgICAgICAgIGhvc3RfY2lkPWhlYWRlci5kZXN0aW5hdGlvbl9jaWQsCi0g
ICAgICAgICAgICAgICAgbmV0d29ya19wYXRoPW5ldHdvcmtfcGF0aCwKLSAgICAgICAgICAgICAg
ICBxdWljX2xvZ2dlcl9mcmFtZXM9cXVpY19sb2dnZXJfZnJhbWVzLAotICAgICAgICAgICAgICAg
IHRpbWU9bm93LAotICAgICAgICAgICAgKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIGlzX2Fja19lbGljaXRpbmcsIGlzX3Byb2JpbmcgPSBzZWxmLl9wYXlsb2FkX3JlY2VpdmVk
KAotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LCBwbGFpbl9wYXlsb2FkCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgZXhjZXB0IFF1aWNDb25uZWN0aW9uRXJyb3IgYXMgZXhjOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci53YXJuaW5nKGV4YykKLSAgICAgICAgICAgICAg
ICBzZWxmLmNsb3NlKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPWV4Yy5lcnJvcl9j
b2RlLAotICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPWV4Yy5mcmFtZV90eXBlLAotICAg
ICAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPWV4Yy5yZWFzb25fcGhyYXNlLAotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIGlmIHNlbGYuX3N0YXRlIGluIEVORF9TVEFURVMgb3Ig
c2VsZi5fY2xvc2VfcGVuZGluZzoKLSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAg
ICAgIyB1cGRhdGUgaWRsZSB0aW1lb3V0Ci0gICAgICAgICAgICBzZWxmLl9jbG9zZV9hdCA9IG5v
dyArIHNlbGYuX2NvbmZpZ3VyYXRpb24uaWRsZV90aW1lb3V0Ci0KLSAgICAgICAgICAgICMgaGFu
ZGxlIG1pZ3JhdGlvbgotICAgICAgICAgICAgaWYgKAotICAgICAgICAgICAgICAgIG5vdCBzZWxm
Ll9pc19jbGllbnQKLSAgICAgICAgICAgICAgICBhbmQgY29udGV4dC5ob3N0X2NpZCAhPSBzZWxm
Lmhvc3RfY2lkCi0gICAgICAgICAgICAgICAgYW5kIGVwb2NoID09IHRscy5FcG9jaC5PTkVfUlRU
Ci0gICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICAgICAgICAgIlBlZXIgc3dpdGNoaW5nIHRvIENJRCAlcyAoJWQpIiwKLSAgICAg
ICAgICAgICAgICAgICAgZHVtcF9jaWQoY29udGV4dC5ob3N0X2NpZCksCi0gICAgICAgICAgICAg
ICAgICAgIGRlc3RpbmF0aW9uX2NpZF9zZXEsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgIHNlbGYuaG9zdF9jaWQgPSBjb250ZXh0Lmhvc3RfY2lkCi0gICAgICAgICAgICAgICAg
c2VsZi5jaGFuZ2VfY29ubmVjdGlvbl9pZCgpCi0KLSAgICAgICAgICAgICMgdXBkYXRlIG5ldHdv
cmsgcGF0aAotICAgICAgICAgICAgaWYgbm90IG5ldHdvcmtfcGF0aC5pc192YWxpZGF0ZWQgYW5k
IGVwb2NoID09IHRscy5FcG9jaC5IQU5EU0hBS0U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAiTmV0d29yayBwYXRoICVzIHZhbGlkYXRl
ZCBieSBoYW5kc2hha2UiLCBuZXR3b3JrX3BhdGguYWRkcgotICAgICAgICAgICAgICAgICkKLSAg
ICAgICAgICAgICAgICBuZXR3b3JrX3BhdGguaXNfdmFsaWRhdGVkID0gVHJ1ZQotICAgICAgICAg
ICAgbmV0d29ya19wYXRoLmJ5dGVzX3JlY2VpdmVkICs9IGVuZF9vZmYgLSBzdGFydF9vZmYKLSAg
ICAgICAgICAgIGlmIG5ldHdvcmtfcGF0aCBub3QgaW4gc2VsZi5fbmV0d29ya19wYXRoczoKLSAg
ICAgICAgICAgICAgICBzZWxmLl9uZXR3b3JrX3BhdGhzLmFwcGVuZChuZXR3b3JrX3BhdGgpCi0g
ICAgICAgICAgICBpZHggPSBzZWxmLl9uZXR3b3JrX3BhdGhzLmluZGV4KG5ldHdvcmtfcGF0aCkK
LSAgICAgICAgICAgIGlmIGlkeCBhbmQgbm90IGlzX3Byb2JpbmcgYW5kIHBhY2tldF9udW1iZXIg
PiBzcGFjZS5sYXJnZXN0X3JlY2VpdmVkX3BhY2tldDoKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoIk5ldHdvcmsgcGF0aCAlcyBwcm9tb3RlZCIsIG5ldHdvcmtfcGF0aC5hZGRy
KQotICAgICAgICAgICAgICAgIHNlbGYuX25ldHdvcmtfcGF0aHMucG9wKGlkeCkKLSAgICAgICAg
ICAgICAgICBzZWxmLl9uZXR3b3JrX3BhdGhzLmluc2VydCgwLCBuZXR3b3JrX3BhdGgpCi0KLSAg
ICAgICAgICAgICMgcmVjb3JkIHBhY2tldCBhcyByZWNlaXZlZAotICAgICAgICAgICAgaWYgbm90
IHNwYWNlLmRpc2NhcmRlZDoKLSAgICAgICAgICAgICAgICBpZiBwYWNrZXRfbnVtYmVyID4gc3Bh
Y2UubGFyZ2VzdF9yZWNlaXZlZF9wYWNrZXQ6Ci0gICAgICAgICAgICAgICAgICAgIHNwYWNlLmxh
cmdlc3RfcmVjZWl2ZWRfcGFja2V0ID0gcGFja2V0X251bWJlcgotICAgICAgICAgICAgICAgICAg
ICBzcGFjZS5sYXJnZXN0X3JlY2VpdmVkX3RpbWUgPSBub3cKLSAgICAgICAgICAgICAgICBzcGFj
ZS5hY2tfcXVldWUuYWRkKHBhY2tldF9udW1iZXIpCi0gICAgICAgICAgICAgICAgaWYgaXNfYWNr
X2VsaWNpdGluZyBhbmQgc3BhY2UuYWNrX2F0IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
IHNwYWNlLmFja19hdCA9IG5vdyArIHNlbGYuX2Fja19kZWxheQotCi0gICAgZGVmIHJlcXVlc3Rf
a2V5X3VwZGF0ZShzZWxmKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgUmVxdWVzdCBh
biB1cGRhdGUgb2YgdGhlIGVuY3J5cHRpb24ga2V5cy4KLSAgICAgICAgIiIiCi0gICAgICAgIGFz
c2VydCBzZWxmLl9oYW5kc2hha2VfY29tcGxldGUsICJjYW5ub3QgY2hhbmdlIGtleSBiZWZvcmUg
aGFuZHNoYWtlIGNvbXBsZXRlcyIKLSAgICAgICAgc2VsZi5fY3J5cHRvc1t0bHMuRXBvY2guT05F
X1JUVF0udXBkYXRlX2tleSgpCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIHVpZDogaW50KSAt
PiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgU2VuZCBhIFBJTkcgZnJhbWUgdG8gdGhlIHBl
ZXIuCi0KLSAgICAgICAgOnBhcmFtIHVpZDogQSB1bmlxdWUgSUQgZm9yIHRoaXMgUElORy4KLSAg
ICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3BpbmdfcGVuZGluZy5hcHBlbmQodWlkKQotCi0gICAg
ZGVmIHNlbmRfZGF0YWdyYW1fZnJhbWUoc2VsZiwgZGF0YTogYnl0ZXMpIC0+IE5vbmU6Ci0gICAg
ICAgICIiIgotICAgICAgICBTZW5kIGEgREFUQUdSQU0gZnJhbWUuCi0KLSAgICAgICAgOnBhcmFt
IGRhdGE6IFRoZSBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9k
YXRhZ3JhbXNfcGVuZGluZy5hcHBlbmQoZGF0YSkKLQotICAgIGRlZiBzZW5kX3N0cmVhbV9kYXRh
KAotICAgICAgICBzZWxmLCBzdHJlYW1faWQ6IGludCwgZGF0YTogYnl0ZXMsIGVuZF9zdHJlYW06
IGJvb2wgPSBGYWxzZQotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFNlbmQg
ZGF0YSBvbiB0aGUgc3BlY2lmaWMgc3RyZWFtLgotCi0gICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6
IFRoZSBzdHJlYW0ncyBJRC4KLSAgICAgICAgOnBhcmFtIGRhdGE6IFRoZSBkYXRhIHRvIGJlIHNl
bnQuCi0gICAgICAgIDpwYXJhbSBlbmRfc3RyZWFtOiBJZiBzZXQgdG8gYFRydWVgLCB0aGUgRklO
IGJpdCB3aWxsIGJlIHNldC4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHN0cmVhbV9pc19jbGll
bnRfaW5pdGlhdGVkKHN0cmVhbV9pZCkgIT0gc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAg
aWYgc3RyZWFtX2lkIG5vdCBpbiBzZWxmLl9zdHJlYW1zOgotICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIkNhbm5vdCBzZW5kIGRhdGEgb24gdW5rbm93biBwZWVyLWluaXRpYXRlZCBz
dHJlYW0iKQotICAgICAgICAgICAgaWYgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsKHN0cmVhbV9p
ZCk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAg
ICAgIkNhbm5vdCBzZW5kIGRhdGEgb24gcGVlci1pbml0aWF0ZWQgdW5pZGlyZWN0aW9uYWwgc3Ry
ZWFtIgotICAgICAgICAgICAgICAgICkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzdHJl
YW0gPSBzZWxmLl9zdHJlYW1zW3N0cmVhbV9pZF0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgot
ICAgICAgICAgICAgc2VsZi5fY3JlYXRlX3N0cmVhbShzdHJlYW1faWQ9c3RyZWFtX2lkKQotICAg
ICAgICAgICAgc3RyZWFtID0gc2VsZi5fc3RyZWFtc1tzdHJlYW1faWRdCi0gICAgICAgIHN0cmVh
bS53cml0ZShkYXRhLCBlbmRfc3RyZWFtPWVuZF9zdHJlYW0pCi0KLSAgICAjIFByaXZhdGUKLQot
ICAgIGRlZiBfYWxwbl9oYW5kbGVyKHNlbGYsIGFscG5fcHJvdG9jb2w6IHN0cikgLT4gTm9uZToK
LSAgICAgICAgIiIiCi0gICAgICAgIENhbGxiYWNrIHdoaWNoIGlzIGludm9rZWQgYnkgdGhlIFRM
UyBlbmdpbmUgd2hlbiBBTFBOIG5lZ290aWF0aW9uIGNvbXBsZXRlcy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoZXZlbnRzLlByb3RvY29sTmVnb3RpYXRlZChhbHBu
X3Byb3RvY29sPWFscG5fcHJvdG9jb2wpKQotCi0gICAgZGVmIF9hc3NlcnRfc3RyZWFtX2Nhbl9y
ZWNlaXZlKHNlbGYsIGZyYW1lX3R5cGU6IGludCwgc3RyZWFtX2lkOiBpbnQpIC0+IE5vbmU6Ci0g
ICAgICAgICIiIgotICAgICAgICBDaGVjayB0aGUgc3BlY2lmaWVkIHN0cmVhbSBjYW4gcmVjZWl2
ZSBkYXRhIG9yIHJhaXNlcyBhIFF1aWNDb25uZWN0aW9uRXJyb3IuCi0gICAgICAgICIiIgotICAg
ICAgICBpZiBub3Qgc2VsZi5fc3RyZWFtX2Nhbl9yZWNlaXZlKHN0cmVhbV9pZCk6Ci0gICAgICAg
ICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIGVycm9yX2Nv
ZGU9UXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1IsCi0gICAgICAgICAgICAgICAgZnJh
bWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IlN0cmVh
bSBpcyBzZW5kLW9ubHkiLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIF9hc3NlcnRfc3RyZWFt
X2Nhbl9zZW5kKHNlbGYsIGZyYW1lX3R5cGU6IGludCwgc3RyZWFtX2lkOiBpbnQpIC0+IE5vbmU6
Ci0gICAgICAgICIiIgotICAgICAgICBDaGVjayB0aGUgc3BlY2lmaWVkIHN0cmVhbSBjYW4gc2Vu
ZCBkYXRhIG9yIHJhaXNlcyBhIFF1aWNDb25uZWN0aW9uRXJyb3IuCi0gICAgICAgICIiIgotICAg
ICAgICBpZiBub3Qgc2VsZi5fc3RyZWFtX2Nhbl9zZW5kKHN0cmVhbV9pZCk6Ci0gICAgICAgICAg
ICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9
UXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1IsCi0gICAgICAgICAgICAgICAgZnJhbWVf
dHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IlN0cmVhbSBp
cyByZWNlaXZlLW9ubHkiLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIF9jbG9zZV9iZWdpbihz
ZWxmLCBpc19pbml0aWF0b3I6IGJvb2wsIG5vdzogZmxvYXQpIC0+IE5vbmU6Ci0gICAgICAgICIi
IgotICAgICAgICBCZWdpbiB0aGUgY2xvc2UgcHJvY2VkdXJlLgotICAgICAgICAiIiIKLSAgICAg
ICAgc2VsZi5fY2xvc2VfYXQgPSBub3cgKyAzICogc2VsZi5fbG9zcy5nZXRfcHJvYmVfdGltZW91
dCgpCi0gICAgICAgIGlmIGlzX2luaXRpYXRvcjoKLSAgICAgICAgICAgIHNlbGYuX3NldF9zdGF0
ZShRdWljQ29ubmVjdGlvblN0YXRlLkNMT1NJTkcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmLl9zZXRfc3RhdGUoUXVpY0Nvbm5lY3Rpb25TdGF0ZS5EUkFJTklORykKLQotICAgIGRl
ZiBfY2xvc2VfZW5kKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBFbmQgdGhl
IGNsb3NlIHByb2NlZHVyZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2Nsb3NlX2F0ID0g
Tm9uZQotICAgICAgICBmb3IgZXBvY2ggaW4gc2VsZi5fc3BhY2VzLmtleXMoKToKLSAgICAgICAg
ICAgIHNlbGYuX2Rpc2NhcmRfZXBvY2goZXBvY2gpCi0gICAgICAgIHNlbGYuX2V2ZW50cy5hcHBl
bmQoc2VsZi5fY2xvc2VfZXZlbnQpCi0gICAgICAgIHNlbGYuX3NldF9zdGF0ZShRdWljQ29ubmVj
dGlvblN0YXRlLlRFUk1JTkFURUQpCi0KLSAgICAgICAgIyBzaWduYWwgbG9nIGVuZAotICAgICAg
ICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2Nv
bmZpZ3VyYXRpb24ucXVpY19sb2dnZXIuZW5kX3RyYWNlKHNlbGYuX3F1aWNfbG9nZ2VyKQotICAg
ICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIgPSBOb25lCi0KLSAgICBkZWYgX2Nvbm5lY3Qoc2Vs
Ziwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFN0YXJ0IHRoZSBj
bGllbnQgaGFuZHNoYWtlLgotICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0IHNlbGYuX2lzX2Ns
aWVudAotCi0gICAgICAgIHNlbGYuX2Nsb3NlX2F0ID0gbm93ICsgc2VsZi5fY29uZmlndXJhdGlv
bi5pZGxlX3RpbWVvdXQKLSAgICAgICAgc2VsZi5faW5pdGlhbGl6ZShzZWxmLl9wZWVyX2NpZCkK
LQotICAgICAgICBzZWxmLnRscy5oYW5kbGVfbWVzc2FnZShiIiIsIHNlbGYuX2NyeXB0b19idWZm
ZXJzKQotICAgICAgICBzZWxmLl9wdXNoX2NyeXB0b19kYXRhKCkKLQotICAgIGRlZiBfY3JlYXRl
X3N0cmVhbShzZWxmLCBzdHJlYW1faWQ6IGludCkgLT4gUXVpY1N0cmVhbToKLSAgICAgICAgIiIi
Ci0gICAgICAgIENyZWF0ZSBhIFFVSUMgc3RyZWFtIGluIG9yZGVyIHRvIHNlbmQgZGF0YSB0byB0
aGUgcGVlci4KLSAgICAgICAgIiIiCi0gICAgICAgICMgZGV0ZXJtaW5lIGxpbWl0cwotICAgICAg
ICBpZiBzdHJlYW1faXNfdW5pZGlyZWN0aW9uYWwoc3RyZWFtX2lkKToKLSAgICAgICAgICAgIG1h
eF9zdHJlYW1fZGF0YV9sb2NhbCA9IDAKLSAgICAgICAgICAgIG1heF9zdHJlYW1fZGF0YV9yZW1v
dGUgPSBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbV9kYXRhX3VuaQotICAgICAgICAgICAgbWF4X3N0
cmVhbXMgPSBzZWxmLl9yZW1vdGVfbWF4X3N0cmVhbXNfdW5pCi0gICAgICAgICAgICBzdHJlYW1z
X2Jsb2NrZWQgPSBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfdW5pCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBtYXhfc3RyZWFtX2RhdGFfbG9jYWwgPSBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtX2Rh
dGFfYmlkaV9sb2NhbAotICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9IHNlbGYu
X3JlbW90ZV9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUKLSAgICAgICAgICAgIG1heF9zdHJl
YW1zID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGkKLSAgICAgICAgICAgIHN0cmVhbXNf
YmxvY2tlZCA9IHNlbGYuX3N0cmVhbXNfYmxvY2tlZF9iaWRpCi0KLSAgICAgICAgIyBjcmVhdGUg
c3RyZWFtCi0gICAgICAgIHN0cmVhbSA9IHNlbGYuX3N0cmVhbXNbc3RyZWFtX2lkXSA9IFF1aWNT
dHJlYW0oCi0gICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgbWF4
X3N0cmVhbV9kYXRhX2xvY2FsPW1heF9zdHJlYW1fZGF0YV9sb2NhbCwKLSAgICAgICAgICAgIG1h
eF9zdHJlYW1fZGF0YV9yZW1vdGU9bWF4X3N0cmVhbV9kYXRhX3JlbW90ZSwKLSAgICAgICAgKQot
Ci0gICAgICAgICMgbWFyayBzdHJlYW0gYXMgYmxvY2tlZCBpZiBuZWVkZWQKLSAgICAgICAgaWYg
c3RyZWFtX2lkIC8vIDQgPj0gbWF4X3N0cmVhbXM6Ci0gICAgICAgICAgICBzdHJlYW0uaXNfYmxv
Y2tlZCA9IFRydWUKLSAgICAgICAgICAgIHN0cmVhbXNfYmxvY2tlZC5hcHBlbmQoc3RyZWFtKQot
ICAgICAgICAgICAgc2VsZi5fc3RyZWFtc19ibG9ja2VkX3BlbmRpbmcgPSBUcnVlCi0KLSAgICAg
ICAgcmV0dXJuIHN0cmVhbQotCi0gICAgZGVmIF9kaXNjYXJkX2Vwb2NoKHNlbGYsIGVwb2NoOiB0
bHMuRXBvY2gpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygiRGlzY2FyZGlu
ZyBlcG9jaCAlcyIsIGVwb2NoKQotICAgICAgICBzZWxmLl9jcnlwdG9zW2Vwb2NoXS50ZWFyZG93
bigpCi0gICAgICAgIHNlbGYuX2xvc3MuZGlzY2FyZF9zcGFjZShzZWxmLl9zcGFjZXNbZXBvY2hd
KQotICAgICAgICBzZWxmLl9zcGFjZXNbZXBvY2hdLmRpc2NhcmRlZCA9IFRydWUKLQotICAgIGRl
ZiBfZmluZF9uZXR3b3JrX3BhdGgoc2VsZiwgYWRkcjogTmV0d29ya0FkZHJlc3MpIC0+IFF1aWNO
ZXR3b3JrUGF0aDoKLSAgICAgICAgIyBjaGVjayBleGlzdGluZyBuZXR3b3JrIHBhdGhzCi0gICAg
ICAgIGZvciBpZHgsIG5ldHdvcmtfcGF0aCBpbiBlbnVtZXJhdGUoc2VsZi5fbmV0d29ya19wYXRo
cyk6Ci0gICAgICAgICAgICBpZiBuZXR3b3JrX3BhdGguYWRkciA9PSBhZGRyOgotICAgICAgICAg
ICAgICAgIHJldHVybiBuZXR3b3JrX3BhdGgKLQotICAgICAgICAjIG5ldyBuZXR3b3JrIHBhdGgK
LSAgICAgICAgbmV0d29ya19wYXRoID0gUXVpY05ldHdvcmtQYXRoKGFkZHIpCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygiTmV0d29yayBwYXRoICVzIGRpc2NvdmVyZWQiLCBuZXR3b3JrX3Bh
dGguYWRkcikKLSAgICAgICAgcmV0dXJuIG5ldHdvcmtfcGF0aAotCi0gICAgZGVmIF9nZXRfb3Jf
Y3JlYXRlX3N0cmVhbShzZWxmLCBmcmFtZV90eXBlOiBpbnQsIHN0cmVhbV9pZDogaW50KSAtPiBR
dWljU3RyZWFtOgotICAgICAgICAiIiIKLSAgICAgICAgR2V0IG9yIGNyZWF0ZSBhIHN0cmVhbSBp
biByZXNwb25zZSB0byBhIHJlY2VpdmVkIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgc3Ry
ZWFtID0gc2VsZi5fc3RyZWFtcy5nZXQoc3RyZWFtX2lkLCBOb25lKQotICAgICAgICBpZiBzdHJl
YW0gaXMgTm9uZToKLSAgICAgICAgICAgICMgY2hlY2sgaW5pdGlhdG9yCi0gICAgICAgICAgICBp
ZiBzdHJlYW1faXNfY2xpZW50X2luaXRpYXRlZChzdHJlYW1faWQpID09IHNlbGYuX2lzX2NsaWVu
dDoKLSAgICAgICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAg
ICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuU1RSRUFNX1NUQVRFX0VSUk9SLAot
ICAgICAgICAgICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAg
ICAgICAgIHJlYXNvbl9waHJhc2U9Ildyb25nIHN0cmVhbSBpbml0aWF0b3IiLAotICAgICAgICAg
ICAgICAgICkKLQotICAgICAgICAgICAgIyBkZXRlcm1pbmUgbGltaXRzCi0gICAgICAgICAgICBp
ZiBzdHJlYW1faXNfdW5pZGlyZWN0aW9uYWwoc3RyZWFtX2lkKToKLSAgICAgICAgICAgICAgICBt
YXhfc3RyZWFtX2RhdGFfbG9jYWwgPSBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtX2RhdGFfdW5pCi0g
ICAgICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9IDAKLSAgICAgICAgICAgICAg
ICBtYXhfc3RyZWFtcyA9IHNlbGYuX2xvY2FsX21heF9zdHJlYW1zX3VuaQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBtYXhfc3RyZWFtX2RhdGFfbG9jYWwgPSBzZWxmLl9sb2Nh
bF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUKLSAgICAgICAgICAgICAgICBtYXhfc3RyZWFt
X2RhdGFfcmVtb3RlID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsCi0g
ICAgICAgICAgICAgICAgbWF4X3N0cmVhbXMgPSBzZWxmLl9sb2NhbF9tYXhfc3RyZWFtc19iaWRp
Ci0KLSAgICAgICAgICAgICMgY2hlY2sgbWF4IHN0cmVhbXMKLSAgICAgICAgICAgIGlmIHN0cmVh
bV9pZCAvLyA0ID49IG1heF9zdHJlYW1zOgotICAgICAgICAgICAgICAgIHJhaXNlIFF1aWNDb25u
ZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29k
ZS5TVFJFQU1fTElNSVRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJh
bWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iVG9vIG1hbnkgc3Ry
ZWFtcyBvcGVuIiwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgY3JlYXRlIHN0
cmVhbQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCJTdHJlYW0gJWQgY3JlYXRlZCBi
eSBwZWVyIiAlIHN0cmVhbV9pZCkKLSAgICAgICAgICAgIHN0cmVhbSA9IHNlbGYuX3N0cmVhbXNb
c3RyZWFtX2lkXSA9IFF1aWNTdHJlYW0oCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVh
bV9pZCwKLSAgICAgICAgICAgICAgICBtYXhfc3RyZWFtX2RhdGFfbG9jYWw9bWF4X3N0cmVhbV9k
YXRhX2xvY2FsLAotICAgICAgICAgICAgICAgIG1heF9zdHJlYW1fZGF0YV9yZW1vdGU9bWF4X3N0
cmVhbV9kYXRhX3JlbW90ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgcmV0dXJuIHN0cmVhbQot
Ci0gICAgZGVmIF9oYW5kbGVfc2Vzc2lvbl90aWNrZXQoc2VsZiwgc2Vzc2lvbl90aWNrZXQ6IHRs
cy5TZXNzaW9uVGlja2V0KSAtPiBOb25lOgotICAgICAgICBpZiAoCi0gICAgICAgICAgICBzZXNz
aW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXplIGlzIG5vdCBOb25lCi0gICAgICAgICAgICBh
bmQgc2Vzc2lvbl90aWNrZXQubWF4X2Vhcmx5X2RhdGFfc2l6ZSAhPSBNQVhfRUFSTFlfREFUQQot
ICAgICAgICApOgotICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAg
ICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAot
ICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9UXVpY0ZyYW1lVHlwZS5DUllQVE8sCi0gICAgICAg
ICAgICAgICAgcmVhc29uX3BocmFzZT0iSW52YWxpZCBtYXhfZWFybHlfZGF0YSB2YWx1ZSAlcyIK
LSAgICAgICAgICAgICAgICAlIHNlc3Npb25fdGlja2V0Lm1heF9lYXJseV9kYXRhX3NpemUsCi0g
ICAgICAgICAgICApCi0gICAgICAgIHNlbGYuX3Nlc3Npb25fdGlja2V0X2hhbmRsZXIoc2Vzc2lv
bl90aWNrZXQpCi0KLSAgICBkZWYgX2luaXRpYWxpemUoc2VsZiwgcGVlcl9jaWQ6IGJ5dGVzKSAt
PiBOb25lOgotICAgICAgICAjIFRMUwotICAgICAgICBzZWxmLnRscyA9IHRscy5Db250ZXh0KAot
ICAgICAgICAgICAgYWxwbl9wcm90b2NvbHM9c2VsZi5fY29uZmlndXJhdGlvbi5hbHBuX3Byb3Rv
Y29scywKLSAgICAgICAgICAgIGNhZGF0YT1zZWxmLl9jb25maWd1cmF0aW9uLmNhZGF0YSwKLSAg
ICAgICAgICAgIGNhZmlsZT1zZWxmLl9jb25maWd1cmF0aW9uLmNhZmlsZSwKLSAgICAgICAgICAg
IGNhcGF0aD1zZWxmLl9jb25maWd1cmF0aW9uLmNhcGF0aCwKLSAgICAgICAgICAgIGlzX2NsaWVu
dD1zZWxmLl9pc19jbGllbnQsCi0gICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2VyLAotICAg
ICAgICAgICAgbWF4X2Vhcmx5X2RhdGE9Tm9uZSBpZiBzZWxmLl9pc19jbGllbnQgZWxzZSBNQVhf
RUFSTFlfREFUQSwKLSAgICAgICAgICAgIHNlcnZlcl9uYW1lPXNlbGYuX2NvbmZpZ3VyYXRpb24u
c2VydmVyX25hbWUsCi0gICAgICAgICAgICB2ZXJpZnlfbW9kZT1zZWxmLl9jb25maWd1cmF0aW9u
LnZlcmlmeV9tb2RlLAotICAgICAgICApCi0gICAgICAgIHNlbGYudGxzLmNlcnRpZmljYXRlID0g
c2VsZi5fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZQotICAgICAgICBzZWxmLnRscy5jZXJ0aWZp
Y2F0ZV9jaGFpbiA9IHNlbGYuX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVfY2hhaW4KLSAgICAg
ICAgc2VsZi50bHMuY2VydGlmaWNhdGVfcHJpdmF0ZV9rZXkgPSBzZWxmLl9jb25maWd1cmF0aW9u
LnByaXZhdGVfa2V5Ci0gICAgICAgIHNlbGYudGxzLmhhbmRzaGFrZV9leHRlbnNpb25zID0gWwot
ICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJB
TlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICAgICAgc2VsZi5fc2VyaWFsaXplX3RyYW5z
cG9ydF9wYXJhbWV0ZXJzKCksCi0gICAgICAgICAgICApCi0gICAgICAgIF0KLQotICAgICAgICAj
IFRMUyBzZXNzaW9uIHJlc3VtcHRpb24KLSAgICAgICAgc2Vzc2lvbl90aWNrZXQgPSBzZWxmLl9j
b25maWd1cmF0aW9uLnNlc3Npb25fdGlja2V0Ci0gICAgICAgIGlmICgKLSAgICAgICAgICAgIHNl
bGYuX2lzX2NsaWVudAotICAgICAgICAgICAgYW5kIHNlc3Npb25fdGlja2V0IGlzIG5vdCBOb25l
Ci0gICAgICAgICAgICBhbmQgc2Vzc2lvbl90aWNrZXQuaXNfdmFsaWQKLSAgICAgICAgICAgIGFu
ZCBzZXNzaW9uX3RpY2tldC5zZXJ2ZXJfbmFtZSA9PSBzZWxmLl9jb25maWd1cmF0aW9uLnNlcnZl
cl9uYW1lCi0gICAgICAgICk6Ci0gICAgICAgICAgICBzZWxmLnRscy5zZXNzaW9uX3RpY2tldCA9
IHNlbGYuX2NvbmZpZ3VyYXRpb24uc2Vzc2lvbl90aWNrZXQKLQotICAgICAgICAgICAgIyBwYXJz
ZSBzYXZlZCBRVUlDIHRyYW5zcG9ydCBwYXJhbWV0ZXJzIC0gZm9yIDAtUlRUCi0gICAgICAgICAg
ICBpZiBzZXNzaW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXplID09IE1BWF9FQVJMWV9EQVRB
OgotICAgICAgICAgICAgICAgIGZvciBleHRfdHlwZSwgZXh0X2RhdGEgaW4gc2Vzc2lvbl90aWNr
ZXQub3RoZXJfZXh0ZW5zaW9uczoKLSAgICAgICAgICAgICAgICAgICAgaWYgZXh0X3R5cGUgPT0g
dGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUzoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3BhcnNlX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4dF9kYXRhLCBmcm9tX3Nlc3Npb25fdGlja2V0PVRydWUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0K
LSAgICAgICAgIyBUTFMgY2FsbGJhY2tzCi0gICAgICAgIHNlbGYudGxzLmFscG5fY2IgPSBzZWxm
Ll9hbHBuX2hhbmRsZXIKLSAgICAgICAgaWYgc2VsZi5fc2Vzc2lvbl90aWNrZXRfZmV0Y2hlciBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYudGxzLmdldF9zZXNzaW9uX3RpY2tldF9jYiA9
IHNlbGYuX3Nlc3Npb25fdGlja2V0X2ZldGNoZXIKLSAgICAgICAgaWYgc2VsZi5fc2Vzc2lvbl90
aWNrZXRfaGFuZGxlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYudGxzLm5ld19zZXNz
aW9uX3RpY2tldF9jYiA9IHNlbGYuX2hhbmRsZV9zZXNzaW9uX3RpY2tldAotICAgICAgICBzZWxm
LnRscy51cGRhdGVfdHJhZmZpY19rZXlfY2IgPSBzZWxmLl91cGRhdGVfdHJhZmZpY19rZXkKLQot
ICAgICAgICAjIHBhY2tldCBzcGFjZXMKLSAgICAgICAgc2VsZi5fY3J5cHRvcyA9IHsKLSAgICAg
ICAgICAgIHRscy5FcG9jaC5JTklUSUFMOiBDcnlwdG9QYWlyKCksCi0gICAgICAgICAgICB0bHMu
RXBvY2guWkVST19SVFQ6IENyeXB0b1BhaXIoKSwKLSAgICAgICAgICAgIHRscy5FcG9jaC5IQU5E
U0hBS0U6IENyeXB0b1BhaXIoKSwKLSAgICAgICAgICAgIHRscy5FcG9jaC5PTkVfUlRUOiBDcnlw
dG9QYWlyKCksCi0gICAgICAgIH0KLSAgICAgICAgc2VsZi5fY3J5cHRvX2J1ZmZlcnMgPSB7Ci0g
ICAgICAgICAgICB0bHMuRXBvY2guSU5JVElBTDogQnVmZmVyKGNhcGFjaXR5PUNSWVBUT19CVUZG
RVJfU0laRSksCi0gICAgICAgICAgICB0bHMuRXBvY2guSEFORFNIQUtFOiBCdWZmZXIoY2FwYWNp
dHk9Q1JZUFRPX0JVRkZFUl9TSVpFKSwKLSAgICAgICAgICAgIHRscy5FcG9jaC5PTkVfUlRUOiBC
dWZmZXIoY2FwYWNpdHk9Q1JZUFRPX0JVRkZFUl9TSVpFKSwKLSAgICAgICAgfQotICAgICAgICBz
ZWxmLl9jcnlwdG9fc3RyZWFtcyA9IHsKLSAgICAgICAgICAgIHRscy5FcG9jaC5JTklUSUFMOiBR
dWljU3RyZWFtKCksCi0gICAgICAgICAgICB0bHMuRXBvY2guSEFORFNIQUtFOiBRdWljU3RyZWFt
KCksCi0gICAgICAgICAgICB0bHMuRXBvY2guT05FX1JUVDogUXVpY1N0cmVhbSgpLAotICAgICAg
ICB9Ci0gICAgICAgIHNlbGYuX3NwYWNlcyA9IHsKLSAgICAgICAgICAgIHRscy5FcG9jaC5JTklU
SUFMOiBRdWljUGFja2V0U3BhY2UoKSwKLSAgICAgICAgICAgIHRscy5FcG9jaC5IQU5EU0hBS0U6
IFF1aWNQYWNrZXRTcGFjZSgpLAotICAgICAgICAgICAgdGxzLkVwb2NoLk9ORV9SVFQ6IFF1aWNQ
YWNrZXRTcGFjZSgpLAotICAgICAgICB9Ci0KLSAgICAgICAgc2VsZi5fY3J5cHRvc1t0bHMuRXBv
Y2guSU5JVElBTF0uc2V0dXBfaW5pdGlhbCgKLSAgICAgICAgICAgIGNpZD1wZWVyX2NpZCwgaXNf
Y2xpZW50PXNlbGYuX2lzX2NsaWVudCwgdmVyc2lvbj1zZWxmLl92ZXJzaW9uCi0gICAgICAgICkK
LQotICAgICAgICBzZWxmLl9sb3NzLnNwYWNlcyA9IGxpc3Qoc2VsZi5fc3BhY2VzLnZhbHVlcygp
KQotICAgICAgICBzZWxmLl9wYWNrZXRfbnVtYmVyID0gMAotCi0gICAgZGVmIF9oYW5kbGVfYWNr
X2ZyYW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1l
X3R5cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAg
ICAgICBIYW5kbGUgYW4gQUNLIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgYWNrX3Jhbmdl
c2V0LCBhY2tfZGVsYXlfZW5jb2RlZCA9IHB1bGxfYWNrX2ZyYW1lKGJ1ZikKLSAgICAgICAgaWYg
ZnJhbWVfdHlwZSA9PSBRdWljRnJhbWVUeXBlLkFDS19FQ046Ci0gICAgICAgICAgICBidWYucHVs
bF91aW50X3ZhcigpCi0gICAgICAgICAgICBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgICAg
ICBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIGFja19kZWxheSA9IChhY2tfZGVsYXlfZW5j
b2RlZCA8PCBzZWxmLl9yZW1vdGVfYWNrX2RlbGF5X2V4cG9uZW50KSAvIDEwMDAwMDAKLQotICAg
ICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfYWNrX2ZyYW1lKGFja19yYW5nZXNl
dCwgYWNrX2RlbGF5KQotICAgICAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX2xvc3Mub25fYWNr
X3JlY2VpdmVkKAotICAgICAgICAgICAgc3BhY2U9c2VsZi5fc3BhY2VzW2NvbnRleHQuZXBvY2hd
LAotICAgICAgICAgICAgYWNrX3Jhbmdlc2V0PWFja19yYW5nZXNldCwKLSAgICAgICAgICAgIGFj
a19kZWxheT1hY2tfZGVsYXksCi0gICAgICAgICAgICBub3c9Y29udGV4dC50aW1lLAotICAgICAg
ICApCi0KLSAgICBkZWYgX2hhbmRsZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lKAotICAgICAgICBz
ZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBC
dWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBDT05O
RUNUSU9OX0NMT1NFIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgZXJyb3JfY29kZSA9IGJ1
Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSBRdWljRnJhbWVUeXBl
LlRSQU5TUE9SVF9DTE9TRToKLSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBidWYucHVsbF91aW50
X3ZhcigpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmcmFtZV90eXBlID0gTm9uZQotICAg
ICAgICByZWFzb25fbGVuZ3RoID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZWFzb25fcGhyYXNlID0gYnVmLnB1bGxfYnl0ZXMocmVhc29uX2xlbmd0aCku
ZGVjb2RlKCJ1dGY4IikKLSAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAg
ICAgICAgIHJlYXNvbl9waHJhc2UgPSAiIgotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAg
IGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5x
dWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9n
Z2VyLmVuY29kZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBl
cnJvcl9jb2RlPWVycm9yX2NvZGUsCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJh
bWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT1yZWFzb25fcGhyYXNl
LAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLQotICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygKLSAgICAgICAgICAgICJDb25uZWN0aW9uIGNsb3NlIGNvZGUgMHglWCwgcmVhc29u
ICVzIiwgZXJyb3JfY29kZSwgcmVhc29uX3BocmFzZQotICAgICAgICApCi0gICAgICAgIHNlbGYu
X2Nsb3NlX2V2ZW50ID0gZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKAotICAgICAgICAgICAg
ZXJyb3JfY29kZT1lcnJvcl9jb2RlLCBmcmFtZV90eXBlPWZyYW1lX3R5cGUsIHJlYXNvbl9waHJh
c2U9cmVhc29uX3BocmFzZQotICAgICAgICApCi0gICAgICAgIHNlbGYuX2Nsb3NlX2JlZ2luKGlz
X2luaXRpYXRvcj1GYWxzZSwgbm93PWNvbnRleHQudGltZSkKLQotICAgIGRlZiBfaGFuZGxlX2Ny
eXB0b19mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBm
cmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIK
LSAgICAgICAgSGFuZGxlIGEgQ1JZUFRPIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgb2Zm
c2V0ID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBsZW5ndGggPSBidWYucHVsbF91aW50
X3ZhcigpCi0gICAgICAgIGlmIG9mZnNldCArIGxlbmd0aCA+IFVJTlRfVkFSX01BWDoKLSAgICAg
ICAgICAgIHJhaXNlIFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgZXJyb3Jf
Y29kZT1RdWljRXJyb3JDb2RlLkZSQU1FX0VOQ09ESU5HX0VSUk9SLAotICAgICAgICAgICAgICAg
IGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJv
ZmZzZXQgKyBsZW5ndGggY2Fubm90IGV4Y2VlZCAyXjYyIC0gMSIsCi0gICAgICAgICAgICApCi0g
ICAgICAgIGZyYW1lID0gUXVpY1N0cmVhbUZyYW1lKG9mZnNldD1vZmZzZXQsIGRhdGE9YnVmLnB1
bGxfYnl0ZXMobGVuZ3RoKSkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxm
Ll9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dn
ZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNv
ZGVfY3J5cHRvX2ZyYW1lKGZyYW1lKQotICAgICAgICAgICAgKQotCi0gICAgICAgIHN0cmVhbSA9
IHNlbGYuX2NyeXB0b19zdHJlYW1zW2NvbnRleHQuZXBvY2hdCi0gICAgICAgIGV2ZW50ID0gc3Ry
ZWFtLmFkZF9mcmFtZShmcmFtZSkKLSAgICAgICAgaWYgZXZlbnQgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAjIHBhc3MgZGF0YSB0byBUTFMgbGF5ZXIKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICBzZWxmLnRscy5oYW5kbGVfbWVzc2FnZShldmVudC5kYXRhLCBzZWxmLl9jcnlw
dG9fYnVmZmVycykKLSAgICAgICAgICAgICAgICBzZWxmLl9wdXNoX2NyeXB0b19kYXRhKCkKLSAg
ICAgICAgICAgIGV4Y2VwdCB0bHMuQWxlcnQgYXMgZXhjOgotICAgICAgICAgICAgICAgIHJhaXNl
IFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVp
Y0Vycm9yQ29kZS5DUllQVE9fRVJST1IgKyBpbnQoZXhjLmRlc2NyaXB0aW9uKSwKLSAgICAgICAg
ICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAgICAgICBy
ZWFzb25fcGhyYXNlPXN0cihleGMpLAotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAg
IyBwYXJzZSB0cmFuc3BvcnQgcGFyYW1ldGVycwotICAgICAgICAgICAgaWYgKAotICAgICAgICAg
ICAgICAgIG5vdCBzZWxmLl9wYXJhbWV0ZXJzX3JlY2VpdmVkCi0gICAgICAgICAgICAgICAgYW5k
IHNlbGYudGxzLnJlY2VpdmVkX2V4dGVuc2lvbnMgaXMgbm90IE5vbmUKLSAgICAgICAgICAgICk6
Ci0gICAgICAgICAgICAgICAgZm9yIGV4dF90eXBlLCBleHRfZGF0YSBpbiBzZWxmLnRscy5yZWNl
aXZlZF9leHRlbnNpb25zOgotICAgICAgICAgICAgICAgICAgICBpZiBleHRfdHlwZSA9PSB0bHMu
RXh0ZW5zaW9uVHlwZS5RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTOgotICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fcGFyc2VfdHJhbnNwb3J0X3BhcmFtZXRlcnMoZXh0X2RhdGEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJhbWV0ZXJzX3JlY2VpdmVkID0gVHJ1ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBhc3NlcnQgKAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9wYXJhbWV0ZXJzX3JlY2VpdmVkCi0gICAgICAgICAgICAg
ICAgKSwgIk5vIFFVSUMgdHJhbnNwb3J0IHBhcmFtZXRlcnMgcmVjZWl2ZWQiCi0KLSAgICAgICAg
ICAgICMgdXBkYXRlIGN1cnJlbnQgZXBvY2gKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9oYW5k
c2hha2VfY29tcGxldGUgYW5kIHNlbGYudGxzLnN0YXRlIGluIFsKLSAgICAgICAgICAgICAgICB0
bHMuU3RhdGUuQ0xJRU5UX1BPU1RfSEFORFNIQUtFLAotICAgICAgICAgICAgICAgIHRscy5TdGF0
ZS5TRVJWRVJfUE9TVF9IQU5EU0hBS0UsCi0gICAgICAgICAgICBdOgotICAgICAgICAgICAgICAg
IHNlbGYuX2hhbmRzaGFrZV9jb21wbGV0ZSA9IFRydWUKLQotICAgICAgICAgICAgICAgICMgZm9y
IHNlcnZlcnMsIHRoZSBoYW5kc2hha2UgaXMgbm93IGNvbmZpcm1lZAotICAgICAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9pc19jbGllbnQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2Rpc2Nh
cmRfZXBvY2godGxzLkVwb2NoLkhBTkRTSEFLRSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
aGFuZHNoYWtlX2NvbmZpcm1lZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFu
ZHNoYWtlX2RvbmVfcGVuZGluZyA9IFRydWUKLQotICAgICAgICAgICAgICAgIHNlbGYuX2xvc3Mu
aXNfY2xpZW50X3dpdGhvdXRfMXJ0dCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVw
bGVuaXNoX2Nvbm5lY3Rpb25faWRzKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9ldmVudHMuYXBw
ZW5kKAotICAgICAgICAgICAgICAgICAgICBldmVudHMuSGFuZHNoYWtlQ29tcGxldGVkKAotICAg
ICAgICAgICAgICAgICAgICAgICAgYWxwbl9wcm90b2NvbD1zZWxmLnRscy5hbHBuX25lZ290aWF0
ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBlYXJseV9kYXRhX2FjY2VwdGVkPXNlbGYudGxz
LmVhcmx5X2RhdGFfYWNjZXB0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX3Jl
c3VtZWQ9c2VsZi50bHMuc2Vzc2lvbl9yZXN1bWVkLAotICAgICAgICAgICAgICAgICAgICApCi0g
ICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHNlbGYuX3VuYmxvY2tfc3RyZWFtcyhp
c191bmlkaXJlY3Rpb25hbD1GYWxzZSkKLSAgICAgICAgICAgICAgICBzZWxmLl91bmJsb2NrX3N0
cmVhbXMoaXNfdW5pZGlyZWN0aW9uYWw9VHJ1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygKLSAgICAgICAgICAgICAgICAgICAgIkFMUE4gbmVnb3RpYXRlZCBwcm90b2NvbCAl
cyIsIHNlbGYudGxzLmFscG5fbmVnb3RpYXRlZAotICAgICAgICAgICAgICAgICkKLQotICAgIGRl
ZiBfaGFuZGxlX2RhdGFfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVp
Y1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgREFUQV9CTE9DS0VEIGZyYW1lLgot
ICAgICAgICAiIiIKLSAgICAgICAgbGltaXQgPSBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICAg
ICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2RhdGFfYmxvY2tlZF9mcmFtZShsaW1p
dD1saW1pdCkKLSAgICAgICAgICAgICkKLQotICAgIGRlZiBfaGFuZGxlX2RhdGFncmFtX2ZyYW1l
KAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6
IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBI
YW5kbGUgYSBEQVRBR1JBTSBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0YXJ0ID0gYnVm
LnRlbGwoKQotICAgICAgICBpZiBmcmFtZV90eXBlID09IFF1aWNGcmFtZVR5cGUuREFUQUdSQU1f
V0lUSF9MRU5HVEg6Ci0gICAgICAgICAgICBsZW5ndGggPSBidWYucHVsbF91aW50X3ZhcigpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsZW5ndGggPSBidWYuY2FwYWNpdHkgLSBzdGFydAot
ICAgICAgICBkYXRhID0gYnVmLnB1bGxfYnl0ZXMobGVuZ3RoKQotCi0gICAgICAgICMgbG9nIGZy
YW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNl
bGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9kYXRhZ3JhbV9mcmFtZShsZW5ndGg9bGVuZ3RoKQotICAg
ICAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgZnJhbWUgaXMgYWxsb3dlZAotICAgICAgICBp
ZiAoCi0gICAgICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uLm1heF9kYXRhZ3JhbV9mcmFtZV9z
aXplIGlzIE5vbmUKLSAgICAgICAgICAgIG9yIGJ1Zi50ZWxsKCkgLSBzdGFydCA+PSBzZWxmLl9j
b25maWd1cmF0aW9uLm1heF9kYXRhZ3JhbV9mcmFtZV9zaXplCi0gICAgICAgICk6Ci0gICAgICAg
ICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIGVycm9yX2Nv
ZGU9UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgZnJh
bWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IlVuZXhw
ZWN0ZWQgREFUQUdSQU0gZnJhbWUiLAotICAgICAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX2V2
ZW50cy5hcHBlbmQoZXZlbnRzLkRhdGFncmFtRnJhbWVSZWNlaXZlZChkYXRhPWRhdGEpKQotCi0g
ICAgZGVmIF9oYW5kbGVfaGFuZHNoYWtlX2RvbmVfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRl
eHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAg
ICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIEhBTkRTSEFLRV9ET05F
IGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2Vs
Zi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9n
Z2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5j
b2RlX2hhbmRzaGFrZV9kb25lX2ZyYW1lKCkKLSAgICAgICAgICAgICkKLQotICAgICAgICBpZiBu
b3Qgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgcmFpc2UgUXVpY0Nvbm5lY3Rpb25FcnJv
cigKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklP
TEFUSU9OLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAg
ICAgICAgICByZWFzb25fcGhyYXNlPSJDbGllbnRzIG11c3Qgbm90IHNlbmQgSEFORFNIQUtFX0RP
TkUgZnJhbWVzIiwKLSAgICAgICAgICAgICkKLQotICAgICAgICAjIMKgZm9yIGNsaWVudHMsIHRo
ZSBoYW5kc2hha2UgaXMgbm93IGNvbmZpcm1lZAotICAgICAgICBpZiBub3Qgc2VsZi5faGFuZHNo
YWtlX2NvbmZpcm1lZDoKLSAgICAgICAgICAgIHNlbGYuX2Rpc2NhcmRfZXBvY2godGxzLkVwb2No
LkhBTkRTSEFLRSkKLSAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9jb25maXJtZWQgPSBUcnVl
Ci0KLSAgICBkZWYgX2hhbmRsZV9tYXhfZGF0YV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4
dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAg
KSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgTUFYX0RBVEEgZnJhbWUu
Ci0KLSAgICAgICAgVGhpcyBhZGp1c3RzIHRoZSB0b3RhbCBhbW91bnQgb2Ygd2UgY2FuIHNlbmQg
dG8gdGhlIHBlZXIuCi0gICAgICAgICIiIgotICAgICAgICBtYXhfZGF0YSA9IGJ1Zi5wdWxsX3Vp
bnRfdmFyKCkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xv
Z2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVz
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfbWF4X2Rh
dGFfZnJhbWUobWF4aW11bT1tYXhfZGF0YSkKLSAgICAgICAgICAgICkKLQotICAgICAgICBpZiBt
YXhfZGF0YSA+IHNlbGYuX3JlbW90ZV9tYXhfZGF0YToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygiUmVtb3RlIG1heF9kYXRhIHJhaXNlZCB0byAlZCIsIG1heF9kYXRhKQotICAgICAg
ICAgICAgc2VsZi5fcmVtb3RlX21heF9kYXRhID0gbWF4X2RhdGEKLQotICAgIGRlZiBfaGFuZGxl
X21heF9zdHJlYW1fZGF0YV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2Vp
dmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgot
ICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgTUFYX1NUUkVBTV9EQVRBIGZyYW1lLgotCi0g
ICAgICAgIFRoaXMgYWRqdXN0cyB0aGUgYW1vdW50IG9mIGRhdGEgd2UgY2FuIHNlbmQgb24gYSBz
cGVjaWZpYyBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAgICBzdHJlYW1faWQgPSBidWYucHVs
bF91aW50X3ZhcigpCi0gICAgICAgIG1heF9zdHJlYW1fZGF0YSA9IGJ1Zi5wdWxsX3VpbnRfdmFy
KCkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVu
ZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfbWF4X3N0cmVhbV9k
YXRhX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBtYXhpbXVtPW1heF9zdHJlYW1fZGF0YSwg
c3RyZWFtX2lkPXN0cmVhbV9pZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLQot
ICAgICAgICAjIGNoZWNrIHN0cmVhbSBkaXJlY3Rpb24KLSAgICAgICAgc2VsZi5fYXNzZXJ0X3N0
cmVhbV9jYW5fc2VuZChmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0KLSAgICAgICAgc3RyZWFtID0g
c2VsZi5fZ2V0X29yX2NyZWF0ZV9zdHJlYW0oZnJhbWVfdHlwZSwgc3RyZWFtX2lkKQotICAgICAg
ICBpZiBtYXhfc3RyZWFtX2RhdGEgPiBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX3JlbW90ZToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAiU3RyZWFtICVk
IHJlbW90ZSBtYXhfc3RyZWFtX2RhdGEgcmFpc2VkIHRvICVkIiwKLSAgICAgICAgICAgICAgICBz
dHJlYW1faWQsCi0gICAgICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhLAotICAgICAgICAgICAg
KQotICAgICAgICAgICAgc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9yZW1vdGUgPSBtYXhfc3RyZWFt
X2RhdGEKLQotICAgIGRlZiBfaGFuZGxlX21heF9zdHJlYW1zX2JpZGlfZnJhbWUoCi0gICAgICAg
IHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6
IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIE1B
WF9TVFJFQU1TX0JJREkgZnJhbWUuCi0KLSAgICAgICAgVGhpcyByYWlzZXMgbnVtYmVyIG9mIGJp
ZGlyZWN0aW9uYWwgc3RyZWFtcyB3ZSBjYW4gaW5pdGlhdGUgdG8gdGhlIHBlZXIuCi0gICAgICAg
ICIiIgotICAgICAgICBtYXhfc3RyZWFtcyA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLQotICAgICAg
ICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAg
ICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfbWF4X3N0cmVhbXNfZnJhbWUoCi0gICAg
ICAgICAgICAgICAgICAgIGlzX3VuaWRpcmVjdGlvbmFsPUZhbHNlLCBtYXhpbXVtPW1heF9zdHJl
YW1zCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgICAgIGlmIG1heF9z
dHJlYW1zID4gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoIlJlbW90ZSBtYXhfc3RyZWFtc19iaWRpIHJhaXNlZCB0byAlZCIsIG1h
eF9zdHJlYW1zKQotICAgICAgICAgICAgc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGkgPSBt
YXhfc3RyZWFtcwotICAgICAgICAgICAgc2VsZi5fdW5ibG9ja19zdHJlYW1zKGlzX3VuaWRpcmVj
dGlvbmFsPUZhbHNlKQotCi0gICAgZGVmIF9oYW5kbGVfbWF4X3N0cmVhbXNfdW5pX2ZyYW1lKAot
ICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGlu
dCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5k
bGUgYSBNQVhfU1RSRUFNU19VTkkgZnJhbWUuCi0KLSAgICAgICAgVGhpcyByYWlzZXMgbnVtYmVy
IG9mIHVuaWRpcmVjdGlvbmFsIHN0cmVhbXMgd2UgY2FuIGluaXRpYXRlIHRvIHRoZSBwZWVyLgot
ICAgICAgICAiIiIKLSAgICAgICAgbWF4X3N0cmVhbXMgPSBidWYucHVsbF91aW50X3ZhcigpCi0K
LSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX21heF9zdHJlYW1zX2ZyYW1l
KAotICAgICAgICAgICAgICAgICAgICBpc191bmlkaXJlY3Rpb25hbD1UcnVlLCBtYXhpbXVtPW1h
eF9zdHJlYW1zCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgICAgIGlm
IG1heF9zdHJlYW1zID4gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX3VuaToKLSAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygiUmVtb3RlIG1heF9zdHJlYW1zX3VuaSByYWlzZWQgdG8gJWQi
LCBtYXhfc3RyZWFtcykKLSAgICAgICAgICAgIHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFtc191bmkg
PSBtYXhfc3RyZWFtcwotICAgICAgICAgICAgc2VsZi5fdW5ibG9ja19zdHJlYW1zKGlzX3VuaWRp
cmVjdGlvbmFsPVRydWUpCi0KLSAgICBkZWYgX2hhbmRsZV9uZXdfY29ubmVjdGlvbl9pZF9mcmFt
ZSgKLSAgICAgICAgc2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBl
OiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAg
SGFuZGxlIGEgTkVXX0NPTk5FQ1RJT05fSUQgZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBz
ZXF1ZW5jZV9udW1iZXIgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIHJldGlyZV9wcmlv
cl90byA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgbGVuZ3RoID0gYnVmLnB1bGxfdWlu
dDgoKQotICAgICAgICBjb25uZWN0aW9uX2lkID0gYnVmLnB1bGxfYnl0ZXMobGVuZ3RoKQotICAg
ICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW4gPSBidWYucHVsbF9ieXRlcygxNikKLQotICAgICAg
ICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAg
ICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfbmV3X2Nvbm5lY3Rpb25faWRfZnJhbWUo
Ci0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgcmV0aXJlX3ByaW9yX3RvPXJldGlyZV9wcmlvcl90bywKLSAgICAgICAg
ICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVyPXNlcXVlbmNlX251bWJlciwKLSAgICAgICAgICAg
ICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPXN0YXRlbGVzc19yZXNldF90b2tlbiwKLSAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAgICAgICAgc2VsZi5fcGVlcl9jaWRf
YXZhaWxhYmxlLmFwcGVuZCgKLSAgICAgICAgICAgIFF1aWNDb25uZWN0aW9uSWQoCi0gICAgICAg
ICAgICAgICAgY2lkPWNvbm5lY3Rpb25faWQsCi0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVt
YmVyPXNlcXVlbmNlX251bWJlciwKLSAgICAgICAgICAgICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9r
ZW49c3RhdGVsZXNzX3Jlc2V0X3Rva2VuLAotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAg
ICBkZWYgX2hhbmRsZV9uZXdfdG9rZW5fZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1
aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4g
Tm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIE5FV19UT0tFTiBmcmFtZS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGxlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAg
dG9rZW4gPSBidWYucHVsbF9ieXRlcyhsZW5ndGgpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAg
ICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250
ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVp
Y19sb2dnZXIuZW5jb2RlX25ld190b2tlbl9mcmFtZSh0b2tlbj10b2tlbikKLSAgICAgICAgICAg
ICkKLQotICAgICAgICBpZiBub3Qgc2VsZi5faXNfY2xpZW50OgotICAgICAgICAgICAgcmFpc2Ug
UXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJv
ckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJh
bWVfdHlwZSwKLSAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJDbGllbnRzIG11c3Qgbm90
IHNlbmQgTkVXX1RPS0VOIGZyYW1lcyIsCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgX2hhbmRs
ZV9wYWRkaW5nX2ZyYW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRl
eHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAg
ICIiIgotICAgICAgICBIYW5kbGUgYSBQQURESU5HIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAg
ICAgIyBjb25zdW1lIHBhZGRpbmcKLSAgICAgICAgcG9zID0gYnVmLnRlbGwoKQotICAgICAgICBm
b3IgYnl0ZSBpbiBidWYuZGF0YV9zbGljZShwb3MsIGJ1Zi5jYXBhY2l0eSk6Ci0gICAgICAgICAg
ICBpZiBieXRlOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBwb3MgKz0gMQot
ICAgICAgICBidWYuc2Vlayhwb3MpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYg
c2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNf
bG9nZ2VyX2ZyYW1lcy5hcHBlbmQoc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3BhZGRpbmdfZnJh
bWUoKSkKLQotICAgIGRlZiBfaGFuZGxlX3BhdGhfY2hhbGxlbmdlX2ZyYW1lKAotICAgICAgICBz
ZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBC
dWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBQQVRI
X0NIQUxMRU5HRSBmcmFtZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGRhdGEgPSBidWYucHVsbF9i
eXRlcyg4KQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9n
Z2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFtZXMu
YXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9wYXRoX2No
YWxsZW5nZV9mcmFtZShkYXRhPWRhdGEpCi0gICAgICAgICAgICApCi0KLSAgICAgICAgY29udGV4
dC5uZXR3b3JrX3BhdGgucmVtb3RlX2NoYWxsZW5nZSA9IGRhdGEKLQotICAgIGRlZiBfaGFuZGxl
X3BhdGhfcmVzcG9uc2VfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6IFF1aWNSZWNlaXZl
Q29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkgLT4gTm9uZToKLSAg
ICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIFBBVEhfUkVTUE9OU0UgZnJhbWUuCi0gICAgICAg
ICIiIgotICAgICAgICBkYXRhID0gYnVmLnB1bGxfYnl0ZXMoOCkKLQotICAgICAgICAjIGxvZyBm
cmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIGNvbnRleHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBz
ZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfcGF0aF9yZXNwb25zZV9mcmFtZShkYXRhPWRhdGEpCi0g
ICAgICAgICAgICApCi0KLSAgICAgICAgaWYgZGF0YSAhPSBjb250ZXh0Lm5ldHdvcmtfcGF0aC5s
b2NhbF9jaGFsbGVuZ2U6Ci0gICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAot
ICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJ
T04sCi0gICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1mcmFtZV90eXBlLAotICAgICAgICAgICAg
ICAgIHJlYXNvbl9waHJhc2U9IlJlc3BvbnNlIGRvZXMgbm90IG1hdGNoIGNoYWxsZW5nZSIsCi0g
ICAgICAgICAgICApCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICJO
ZXR3b3JrIHBhdGggJXMgdmFsaWRhdGVkIGJ5IGNoYWxsZW5nZSIsIGNvbnRleHQubmV0d29ya19w
YXRoLmFkZHIKLSAgICAgICAgKQotICAgICAgICBjb250ZXh0Lm5ldHdvcmtfcGF0aC5pc192YWxp
ZGF0ZWQgPSBUcnVlCi0KLSAgICBkZWYgX2hhbmRsZV9waW5nX2ZyYW1lKAotICAgICAgICBzZWxm
LCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBCdWZm
ZXIKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBQSU5HIGZy
YW1lLgotICAgICAgICAiIiIKLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5f
cXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2Vy
X2ZyYW1lcy5hcHBlbmQoc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3BpbmdfZnJhbWUoKSkKLQot
ICAgIGRlZiBfaGFuZGxlX3Jlc2V0X3N0cmVhbV9mcmFtZSgKLSAgICAgICAgc2VsZiwgY29udGV4
dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1ZjogQnVmZmVyCi0gICAg
KSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgUkVTRVRfU1RSRUFNIGZy
YW1lLgotICAgICAgICAiIiIKLSAgICAgICAgc3RyZWFtX2lkID0gYnVmLnB1bGxfdWludF92YXIo
KQotICAgICAgICBlcnJvcl9jb2RlID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAgICBmaW5h
bF9zaXplID0gYnVmLnB1bGxfdWludF92YXIoKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAg
ICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4
dC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNf
bG9nZ2VyLmVuY29kZV9yZXNldF9zdHJlYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGVy
cm9yX2NvZGU9ZXJyb3JfY29kZSwgZmluYWxfc2l6ZT1maW5hbF9zaXplLCBzdHJlYW1faWQ9c3Ry
ZWFtX2lkCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgICAgICMgY2hl
Y2sgc3RyZWFtIGRpcmVjdGlvbgotICAgICAgICBzZWxmLl9hc3NlcnRfc3RyZWFtX2Nhbl9yZWNl
aXZlKGZyYW1lX3R5cGUsIHN0cmVhbV9pZCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygK
LSAgICAgICAgICAgICJTdHJlYW0gJWQgcmVzZXQgYnkgcGVlciAoZXJyb3IgY29kZSAlZCwgZmlu
YWwgc2l6ZSAlZCkiLAotICAgICAgICAgICAgc3RyZWFtX2lkLAotICAgICAgICAgICAgZXJyb3Jf
Y29kZSwKLSAgICAgICAgICAgIGZpbmFsX3NpemUsCi0gICAgICAgICkKLSAgICAgICAgIyBzdHJl
YW0gPSBzZWxmLl9nZXRfb3JfY3JlYXRlX3N0cmVhbShmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0g
ICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICBldmVudHMuU3RyZWFtUmVz
ZXQoZXJyb3JfY29kZT1lcnJvcl9jb2RlLCBzdHJlYW1faWQ9c3RyZWFtX2lkKQotICAgICAgICAp
Ci0KLSAgICBkZWYgX2hhbmRsZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZSgKLSAgICAgICAg
c2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1Zjog
QnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgUkVU
SVJFX0NPTk5FQ1RJT05fSUQgZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBzZXF1ZW5jZV9u
dW1iZXIgPSBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAg
ICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0
LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19s
b2dnZXIuZW5jb2RlX3JldGlyZV9jb25uZWN0aW9uX2lkX2ZyYW1lKHNlcXVlbmNlX251bWJlcikK
LSAgICAgICAgICAgICkKLQotICAgICAgICAjIGZpbmQgdGhlIGNvbm5lY3Rpb24gSUQgYnkgc2Vx
dWVuY2UgbnVtYmVyCi0gICAgICAgIGZvciBpbmRleCwgY29ubmVjdGlvbl9pZCBpbiBlbnVtZXJh
dGUoc2VsZi5faG9zdF9jaWRzKToKLSAgICAgICAgICAgIGlmIGNvbm5lY3Rpb25faWQuc2VxdWVu
Y2VfbnVtYmVyID09IHNlcXVlbmNlX251bWJlcjoKLSAgICAgICAgICAgICAgICBpZiBjb25uZWN0
aW9uX2lkLmNpZCA9PSBjb250ZXh0Lmhvc3RfY2lkOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29k
ZT1RdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNv
bl9waHJhc2U9IkNhbm5vdCByZXRpcmUgY3VycmVudCBjb25uZWN0aW9uIElEIiwKLSAgICAgICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICAgICAgICAgIlBlZXIgcmV0aXJpbmcgQ0lEICVzICglZCkiLAotICAgICAgICAgICAg
ICAgICAgICBkdW1wX2NpZChjb25uZWN0aW9uX2lkLmNpZCksCi0gICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb25faWQuc2VxdWVuY2VfbnVtYmVyLAotICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICBkZWwgc2VsZi5faG9zdF9jaWRzW2luZGV4XQotICAgICAgICAgICAgICAgIHNl
bGYuX2V2ZW50cy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50cy5Db25uZWN0aW9u
SWRSZXRpcmVkKGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZC5jaWQpCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgIyBpc3N1ZSBhIG5ldyBjb25u
ZWN0aW9uIElECi0gICAgICAgIHNlbGYuX3JlcGxlbmlzaF9jb25uZWN0aW9uX2lkcygpCi0KLSAg
ICBkZWYgX2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWUoCi0gICAgICAgIHNlbGYsIGNvbnRleHQ6
IFF1aWNSZWNlaXZlQ29udGV4dCwgZnJhbWVfdHlwZTogaW50LCBidWY6IEJ1ZmZlcgotICAgICkg
LT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIEhhbmRsZSBhIFNUT1BfU0VORElORyBmcmFt
ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIHN0cmVhbV9pZCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkK
LSAgICAgICAgZXJyb3JfY29kZSA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkgICMgYXBwbGljYXRpb24g
ZXJyb3IgY29kZQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNf
bG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29udGV4dC5xdWljX2xvZ2dlcl9mcmFt
ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9zdG9w
X3NlbmRpbmdfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9ZXJyb3JfY29k
ZSwgc3RyZWFtX2lkPXN0cmVhbV9pZAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkK
LQotICAgICAgICAjIGNoZWNrIHN0cmVhbSBkaXJlY3Rpb24KLSAgICAgICAgc2VsZi5fYXNzZXJ0
X3N0cmVhbV9jYW5fc2VuZChmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0KLSAgICAgICAgc2VsZi5f
Z2V0X29yX2NyZWF0ZV9zdHJlYW0oZnJhbWVfdHlwZSwgc3RyZWFtX2lkKQotCi0gICAgZGVmIF9o
YW5kbGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNv
bnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAg
ICAgICIiIgotICAgICAgICBIYW5kbGUgYSBTVFJFQU0gZnJhbWUuCi0gICAgICAgICIiIgotICAg
ICAgICBzdHJlYW1faWQgPSBidWYucHVsbF91aW50X3ZhcigpCi0gICAgICAgIGlmIGZyYW1lX3R5
cGUgJiA0OgotICAgICAgICAgICAgb2Zmc2V0ID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgb2Zmc2V0ID0gMAotICAgICAgICBpZiBmcmFtZV90eXBlICYg
MjoKLSAgICAgICAgICAgIGxlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGxlbmd0aCA9IGJ1Zi5jYXBhY2l0eSAtIGJ1Zi50ZWxsKCkKLSAgICAg
ICAgaWYgb2Zmc2V0ICsgbGVuZ3RoID4gVUlOVF9WQVJfTUFYOgotICAgICAgICAgICAgcmFpc2Ug
UXVpY0Nvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJv
ckNvZGUuRlJBTUVfRU5DT0RJTkdfRVJST1IsCi0gICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1m
cmFtZV90eXBlLAotICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9Im9mZnNldCArIGxlbmd0
aCBjYW5ub3QgZXhjZWVkIDJeNjIgLSAxIiwKLSAgICAgICAgICAgICkKLSAgICAgICAgZnJhbWUg
PSBRdWljU3RyZWFtRnJhbWUoCi0gICAgICAgICAgICBvZmZzZXQ9b2Zmc2V0LCBkYXRhPWJ1Zi5w
dWxsX2J5dGVzKGxlbmd0aCksIGZpbj1ib29sKGZyYW1lX3R5cGUgJiAxKQotICAgICAgICApCi0K
LSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3N0cmVhbV9mcmFtZShmcmFt
ZSwgc3RyZWFtX2lkPXN0cmVhbV9pZCkKLSAgICAgICAgICAgICkKLQotICAgICAgICAjIGNoZWNr
IHN0cmVhbSBkaXJlY3Rpb24KLSAgICAgICAgc2VsZi5fYXNzZXJ0X3N0cmVhbV9jYW5fcmVjZWl2
ZShmcmFtZV90eXBlLCBzdHJlYW1faWQpCi0KLSAgICAgICAgIyBjaGVjayBmbG93LWNvbnRyb2wg
bGltaXRzCi0gICAgICAgIHN0cmVhbSA9IHNlbGYuX2dldF9vcl9jcmVhdGVfc3RyZWFtKGZyYW1l
X3R5cGUsIHN0cmVhbV9pZCkKLSAgICAgICAgaWYgb2Zmc2V0ICsgbGVuZ3RoID4gc3RyZWFtLm1h
eF9zdHJlYW1fZGF0YV9sb2NhbDoKLSAgICAgICAgICAgIHJhaXNlIFF1aWNDb25uZWN0aW9uRXJy
b3IoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLkZMT1dfQ09OVFJP
TF9FUlJPUiwKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAg
ICAgICAgICAgcmVhc29uX3BocmFzZT0iT3ZlciBzdHJlYW0gZGF0YSBsaW1pdCIsCi0gICAgICAg
ICAgICApCi0gICAgICAgIG5ld2x5X3JlY2VpdmVkID0gbWF4KDAsIG9mZnNldCArIGxlbmd0aCAt
IHN0cmVhbS5fcmVjdl9oaWdoZXN0KQotICAgICAgICBpZiBzZWxmLl9sb2NhbF9tYXhfZGF0YV91
c2VkICsgbmV3bHlfcmVjZWl2ZWQgPiBzZWxmLl9sb2NhbF9tYXhfZGF0YToKLSAgICAgICAgICAg
IHJhaXNlIFF1aWNDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1R
dWljRXJyb3JDb2RlLkZMT1dfQ09OVFJPTF9FUlJPUiwKLSAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iT3ZlciBjb25u
ZWN0aW9uIGRhdGEgbGltaXQiLAotICAgICAgICAgICAgKQotCi0gICAgICAgIGV2ZW50ID0gc3Ry
ZWFtLmFkZF9mcmFtZShmcmFtZSkKLSAgICAgICAgaWYgZXZlbnQgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKGV2ZW50KQotICAgICAgICBzZWxmLl9sb2NhbF9t
YXhfZGF0YV91c2VkICs9IG5ld2x5X3JlY2VpdmVkCi0KLSAgICBkZWYgX2hhbmRsZV9zdHJlYW1f
ZGF0YV9ibG9ja2VkX2ZyYW1lKAotICAgICAgICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNv
bnRleHQsIGZyYW1lX3R5cGU6IGludCwgYnVmOiBCdWZmZXIKLSAgICApIC0+IE5vbmU6Ci0gICAg
ICAgICIiIgotICAgICAgICBIYW5kbGUgYSBTVFJFQU1fREFUQV9CTE9DS0VEIGZyYW1lLgotICAg
ICAgICAiIiIKLSAgICAgICAgc3RyZWFtX2lkID0gYnVmLnB1bGxfdWludF92YXIoKQotICAgICAg
ICBsaW1pdCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAg
ICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbnRl
eHQucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWlj
X2xvZ2dlci5lbmNvZGVfc3RyZWFtX2RhdGFfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgICAgICAg
ICAgICAgbGltaXQ9bGltaXQsIHN0cmVhbV9pZD1zdHJlYW1faWQKLSAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBzdHJlYW0gZGlyZWN0aW9uCi0gICAg
ICAgIHNlbGYuX2Fzc2VydF9zdHJlYW1fY2FuX3JlY2VpdmUoZnJhbWVfdHlwZSwgc3RyZWFtX2lk
KQotCi0gICAgICAgIHNlbGYuX2dldF9vcl9jcmVhdGVfc3RyZWFtKGZyYW1lX3R5cGUsIHN0cmVh
bV9pZCkKLQotICAgIGRlZiBfaGFuZGxlX3N0cmVhbXNfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAg
c2VsZiwgY29udGV4dDogUXVpY1JlY2VpdmVDb250ZXh0LCBmcmFtZV90eXBlOiBpbnQsIGJ1Zjog
QnVmZmVyCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgSGFuZGxlIGEgU1RS
RUFNU19CTE9DS0VEIGZyYW1lLgotICAgICAgICAiIiIKLSAgICAgICAgbGltaXQgPSBidWYucHVs
bF91aW50X3ZhcigpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVp
Y19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb250ZXh0LnF1aWNfbG9nZ2VyX2Zy
YW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3N0
cmVhbXNfYmxvY2tlZF9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgaXNfdW5pZGlyZWN0aW9u
YWw9ZnJhbWVfdHlwZSA9PSBRdWljRnJhbWVUeXBlLlNUUkVBTVNfQkxPQ0tFRF9VTkksCi0gICAg
ICAgICAgICAgICAgICAgIGxpbWl0PWxpbWl0LAotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICkKLQotICAgIGRlZiBfb25fYWNrX2RlbGl2ZXJ5KAotICAgICAgICBzZWxmLCBkZWxpdmVy
eTogUXVpY0RlbGl2ZXJ5U3RhdGUsIHNwYWNlOiBRdWljUGFja2V0U3BhY2UsIGhpZ2hlc3RfYWNr
ZWQ6IGludAotICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENhbGxiYWNrIHdo
ZW4gYW4gQUNLIGZyYW1lIGlzIGFja25vd2xlZGdlZCBvciBsb3N0LgotICAgICAgICAiIiIKLSAg
ICAgICAgaWYgZGVsaXZlcnkgPT0gUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAgICAg
ICBzcGFjZS5hY2tfcXVldWUuc3VidHJhY3QoMCwgaGlnaGVzdF9hY2tlZCArIDEpCi0KLSAgICBk
ZWYgX29uX2hhbmRzaGFrZV9kb25lX2RlbGl2ZXJ5KHNlbGYsIGRlbGl2ZXJ5OiBRdWljRGVsaXZl
cnlTdGF0ZSkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIENhbGxiYWNrIHdoZW4gYSBI
QU5EU0hBS0VfRE9ORSBmcmFtZSBpcyBhY2tub3dsZWRnZWQgb3IgbG9zdC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGlmIGRlbGl2ZXJ5ICE9IFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VEOgotICAgICAg
ICAgICAgc2VsZi5faGFuZHNoYWtlX2RvbmVfcGVuZGluZyA9IFRydWUKLQotICAgIGRlZiBfb25f
bWF4X2RhdGFfZGVsaXZlcnkoc2VsZiwgZGVsaXZlcnk6IFF1aWNEZWxpdmVyeVN0YXRlKSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sgd2hlbiBhIE1BWF9EQVRBIGZyYW1l
IGlzIGFja25vd2xlZGdlZCBvciBsb3N0LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgZGVsaXZl
cnkgIT0gUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAgICAgICBzZWxmLl9sb2NhbF9t
YXhfZGF0YV9zZW50ID0gMAotCi0gICAgZGVmIF9vbl9tYXhfc3RyZWFtX2RhdGFfZGVsaXZlcnko
Ci0gICAgICAgIHNlbGYsIGRlbGl2ZXJ5OiBRdWljRGVsaXZlcnlTdGF0ZSwgc3RyZWFtOiBRdWlj
U3RyZWFtCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sgd2hl
biBhIE1BWF9TVFJFQU1fREFUQSBmcmFtZSBpcyBhY2tub3dsZWRnZWQgb3IgbG9zdC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGlmIGRlbGl2ZXJ5ICE9IFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VEOgot
ICAgICAgICAgICAgc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbF9zZW50ID0gMAotCi0gICAg
ZGVmIF9vbl9uZXdfY29ubmVjdGlvbl9pZF9kZWxpdmVyeSgKLSAgICAgICAgc2VsZiwgZGVsaXZl
cnk6IFF1aWNEZWxpdmVyeVN0YXRlLCBjb25uZWN0aW9uX2lkOiBRdWljQ29ubmVjdGlvbklkCi0g
ICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sgd2hlbiBhIE5FV19D
T05ORUNUSU9OX0lEIGZyYW1lIGlzIGFja25vd2xlZGdlZCBvciBsb3N0LgotICAgICAgICAiIiIK
LSAgICAgICAgaWYgZGVsaXZlcnkgIT0gUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAg
ICAgICBjb25uZWN0aW9uX2lkLndhc19zZW50ID0gRmFsc2UKLQotICAgIGRlZiBfb25fcGluZ19k
ZWxpdmVyeSgKLSAgICAgICAgc2VsZiwgZGVsaXZlcnk6IFF1aWNEZWxpdmVyeVN0YXRlLCB1aWRz
OiBTZXF1ZW5jZVtpbnRdCi0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2Fs
bGJhY2sgd2hlbiBhIFBJTkcgZnJhbWUgaXMgYWNrbm93bGVkZ2VkIG9yIGxvc3QuCi0gICAgICAg
ICIiIgotICAgICAgICBpZiBkZWxpdmVyeSA9PSBRdWljRGVsaXZlcnlTdGF0ZS5BQ0tFRDoKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygiUmVjZWl2ZWQgUElORyVzIHJlc3BvbnNlIiwg
IiIgaWYgdWlkcyBlbHNlICIgKHByb2JlKSIpCi0gICAgICAgICAgICBmb3IgdWlkIGluIHVpZHM6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVuZChldmVudHMuUGluZ0Fja25vd2xl
ZGdlZCh1aWQ9dWlkKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3BpbmdfcGVu
ZGluZy5leHRlbmQodWlkcykKLQotICAgIGRlZiBfb25fcmV0aXJlX2Nvbm5lY3Rpb25faWRfZGVs
aXZlcnkoCi0gICAgICAgIHNlbGYsIGRlbGl2ZXJ5OiBRdWljRGVsaXZlcnlTdGF0ZSwgc2VxdWVu
Y2VfbnVtYmVyOiBpbnQKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBDYWxs
YmFjayB3aGVuIGEgUkVUSVJFX0NPTk5FQ1RJT05fSUQgZnJhbWUgaXMgYWNrbm93bGVkZ2VkIG9y
IGxvc3QuCi0gICAgICAgICIiIgotICAgICAgICBpZiBkZWxpdmVyeSAhPSBRdWljRGVsaXZlcnlT
dGF0ZS5BQ0tFRDoKLSAgICAgICAgICAgIHNlbGYuX3JldGlyZV9jb25uZWN0aW9uX2lkcy5hcHBl
bmQoc2VxdWVuY2VfbnVtYmVyKQotCi0gICAgZGVmIF9wYXlsb2FkX3JlY2VpdmVkKAotICAgICAg
ICBzZWxmLCBjb250ZXh0OiBRdWljUmVjZWl2ZUNvbnRleHQsIHBsYWluOiBieXRlcwotICAgICkg
LT4gVHVwbGVbYm9vbCwgYm9vbF06Ci0gICAgICAgICIiIgotICAgICAgICBIYW5kbGUgYSBRVUlD
IHBhY2tldCBwYXlsb2FkLgotICAgICAgICAiIiIKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9
cGxhaW4pCi0KLSAgICAgICAgaXNfYWNrX2VsaWNpdGluZyA9IEZhbHNlCi0gICAgICAgIGlzX3By
b2JpbmcgPSBOb25lCi0gICAgICAgIHdoaWxlIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICBm
cmFtZV90eXBlID0gYnVmLnB1bGxfdWludF92YXIoKQotCi0gICAgICAgICAgICAjIGNoZWNrIGZy
YW1lIHR5cGUgaXMga25vd24KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmcmFt
ZV9oYW5kbGVyLCBmcmFtZV9lcG9jaHMgPSBzZWxmLl9fZnJhbWVfaGFuZGxlcnNbZnJhbWVfdHlw
ZV0KLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlzZSBR
dWljQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNF
cnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9IlVua25v
d24gZnJhbWUgdHlwZSIsCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGNoZWNr
IGZyYW1lIGlzIGFsbG93ZWQgZm9yIHRoZSBlcG9jaAotICAgICAgICAgICAgaWYgY29udGV4dC5l
cG9jaCBub3QgaW4gZnJhbWVfZXBvY2hzOgotICAgICAgICAgICAgICAgIHJhaXNlIFF1aWNDb25u
ZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29k
ZS5QUk9UT0NPTF9WSU9MQVRJT04sCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJh
bWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iVW5leHBlY3RlZCBm
cmFtZSB0eXBlIiwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgaGFuZGxlIHRo
ZSBmcmFtZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZyYW1lX2hhbmRsZXIo
Y29udGV4dCwgZnJhbWVfdHlwZSwgYnVmKQotICAgICAgICAgICAgZXhjZXB0IEJ1ZmZlclJlYWRF
cnJvcjoKLSAgICAgICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAotICAgICAg
ICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuRlJBTUVfRU5DT0RJTkdfRVJS
T1IsCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9ZnJhbWVfdHlwZSwKLSAgICAgICAg
ICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iRmFpbGVkIHRvIHBhcnNlIGZyYW1lIiwKLSAgICAg
ICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgdXBkYXRlIEFDSyBvbmx5IC8gcHJvYmluZyBm
bGFncwotICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSBub3QgaW4gTk9OX0FDS19FTElDSVRJTkdf
RlJBTUVfVFlQRVM6Ci0gICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZyA9IFRydWUKLQot
ICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSBub3QgaW4gUFJPQklOR19GUkFNRV9UWVBFUzoKLSAg
ICAgICAgICAgICAgICBpc19wcm9iaW5nID0gRmFsc2UKLSAgICAgICAgICAgIGVsaWYgaXNfcHJv
YmluZyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGlzX3Byb2JpbmcgPSBUcnVlCi0KLSAgICAg
ICAgcmV0dXJuIGlzX2Fja19lbGljaXRpbmcsIGJvb2woaXNfcHJvYmluZykKLQotICAgIGRlZiBf
cmVwbGVuaXNoX2Nvbm5lY3Rpb25faWRzKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAg
ICAgICBHZW5lcmF0ZSBuZXcgY29ubmVjdGlvbiBJRHMuCi0gICAgICAgICIiIgotICAgICAgICB3
aGlsZSBsZW4oc2VsZi5faG9zdF9jaWRzKSA8IG1pbig4LCBzZWxmLl9yZW1vdGVfYWN0aXZlX2Nv
bm5lY3Rpb25faWRfbGltaXQpOgotICAgICAgICAgICAgc2VsZi5faG9zdF9jaWRzLmFwcGVuZCgK
LSAgICAgICAgICAgICAgICBRdWljQ29ubmVjdGlvbklkKAotICAgICAgICAgICAgICAgICAgICBj
aWQ9b3MudXJhbmRvbShzZWxmLl9jb25maWd1cmF0aW9uLmNvbm5lY3Rpb25faWRfbGVuZ3RoKSwK
LSAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVyPXNlbGYuX2hvc3RfY2lkX3NlcSwK
LSAgICAgICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPW9zLnVyYW5kb20oMTYp
LAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuX2hv
c3RfY2lkX3NlcSArPSAxCi0KLSAgICBkZWYgX3B1c2hfY3J5cHRvX2RhdGEoc2VsZikgLT4gTm9u
ZToKLSAgICAgICAgZm9yIGVwb2NoLCBidWYgaW4gc2VsZi5fY3J5cHRvX2J1ZmZlcnMuaXRlbXMo
KToKLSAgICAgICAgICAgIHNlbGYuX2NyeXB0b19zdHJlYW1zW2Vwb2NoXS53cml0ZShidWYuZGF0
YSkKLSAgICAgICAgICAgIGJ1Zi5zZWVrKDApCi0KLSAgICBkZWYgX3NlbmRfcHJvYmUoc2VsZikg
LT4gTm9uZToKLSAgICAgICAgc2VsZi5fcHJvYmVfcGVuZGluZyA9IFRydWUKLQotICAgIGRlZiBf
cGFyc2VfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgIHNlbGYsIGRhdGE6IGJ5dGVzLCBm
cm9tX3Nlc3Npb25fdGlja2V0OiBib29sID0gRmFsc2UKLSAgICApIC0+IE5vbmU6Ci0gICAgICAg
IHF1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMgPSBwdWxsX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRl
cnMoCi0gICAgICAgICAgICBCdWZmZXIoZGF0YT1kYXRhKSwgcHJvdG9jb2xfdmVyc2lvbj1zZWxm
Ll92ZXJzaW9uCi0gICAgICAgICkKLQotICAgICAgICAjIGxvZyBldmVudAotICAgICAgICBpZiBz
ZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZSBhbmQgbm90IGZyb21fc2Vzc2lvbl90aWNrZXQ6
Ci0gICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5sb2dfZXZlbnQoCi0gICAgICAgICAgICAg
ICAgY2F0ZWdvcnk9InRyYW5zcG9ydCIsCi0gICAgICAgICAgICAgICAgZXZlbnQ9InBhcmFtZXRl
cnNfc2V0IiwKLSAgICAgICAgICAgICAgICBkYXRhPXNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV90
cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgICAgICAgICAgb3duZXI9InJlbW90ZSIs
IHBhcmFtZXRlcnM9cXVpY190cmFuc3BvcnRfcGFyYW1ldGVycwotICAgICAgICAgICAgICAgICks
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgIyB2YWxpZGF0ZSByZW1vdGUgcGFyYW1ldGVycwot
ICAgICAgICBpZiAoCi0gICAgICAgICAgICBzZWxmLl9pc19jbGllbnQKLSAgICAgICAgICAgIGFu
ZCBub3QgZnJvbV9zZXNzaW9uX3RpY2tldAotICAgICAgICAgICAgYW5kICgKLSAgICAgICAgICAg
ICAgICBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLm9yaWdpbmFsX2Nvbm5lY3Rpb25faWQKLSAg
ICAgICAgICAgICAgICAhPSBzZWxmLl9vcmlnaW5hbF9jb25uZWN0aW9uX2lkCi0gICAgICAgICAg
ICApCi0gICAgICAgICk6Ci0gICAgICAgICAgICByYWlzZSBRdWljQ29ubmVjdGlvbkVycm9yKAot
ICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5UUkFOU1BPUlRfUEFSQU1F
VEVSX0VSUk9SLAotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9UXVpY0ZyYW1lVHlwZS5DUllQ
VE8sCi0gICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0ib3JpZ2luYWxfY29ubmVjdGlvbl9p
ZCBkb2VzIG5vdCBtYXRjaCIsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgIyBzdG9yZSByZW1v
dGUgcGFyYW1ldGVycwotICAgICAgICBpZiBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLmFja19k
ZWxheV9leHBvbmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3JlbW90ZV9hY2tf
ZGVsYXlfZXhwb25lbnQgPSBzZWxmLl9yZW1vdGVfYWNrX2RlbGF5X2V4cG9uZW50Ci0gICAgICAg
IGlmIHF1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMuYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9yZW1vdGVfYWN0aXZlX2Nvbm5lY3Rpb25f
aWRfbGltaXQgPSAoCi0gICAgICAgICAgICAgICAgcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5h
Y3RpdmVfY29ubmVjdGlvbl9pZF9saW1pdAotICAgICAgICAgICAgKQotICAgICAgICBpZiBxdWlj
X3RyYW5zcG9ydF9wYXJhbWV0ZXJzLmlkbGVfdGltZW91dCBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIHNlbGYuX3JlbW90ZV9pZGxlX3RpbWVvdXQgPSBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJz
LmlkbGVfdGltZW91dCAvIDEwMDAuMAotICAgICAgICBpZiBxdWljX3RyYW5zcG9ydF9wYXJhbWV0
ZXJzLm1heF9hY2tfZGVsYXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb3NzLm1h
eF9hY2tfZGVsYXkgPSBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLm1heF9hY2tfZGVsYXkgLyAx
MDAwLjAKLSAgICAgICAgc2VsZi5fcmVtb3RlX21heF9kYXRhZ3JhbV9mcmFtZV9zaXplID0gKAot
ICAgICAgICAgICAgcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycy5tYXhfZGF0YWdyYW1fZnJhbWVf
c2l6ZQotICAgICAgICApCi0gICAgICAgIGZvciBwYXJhbSBpbiBbCi0gICAgICAgICAgICAibWF4
X2RhdGEiLAotICAgICAgICAgICAgIm1heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsIiwKLSAgICAg
ICAgICAgICJtYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUiLAotICAgICAgICAgICAgIm1heF9z
dHJlYW1fZGF0YV91bmkiLAotICAgICAgICAgICAgIm1heF9zdHJlYW1zX2JpZGkiLAotICAgICAg
ICAgICAgIm1heF9zdHJlYW1zX3VuaSIsCi0gICAgICAgIF06Ci0gICAgICAgICAgICB2YWx1ZSA9
IGdldGF0dHIocXVpY190cmFuc3BvcnRfcGFyYW1ldGVycywgImluaXRpYWxfIiArIHBhcmFtKQot
ICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2V0YXR0
cihzZWxmLCAiX3JlbW90ZV8iICsgcGFyYW0sIHZhbHVlKQotCi0gICAgZGVmIF9zZXJpYWxpemVf
dHJhbnNwb3J0X3BhcmFtZXRlcnMoc2VsZikgLT4gYnl0ZXM6Ci0gICAgICAgIHF1aWNfdHJhbnNw
b3J0X3BhcmFtZXRlcnMgPSBRdWljVHJhbnNwb3J0UGFyYW1ldGVycygKLSAgICAgICAgICAgIGFj
a19kZWxheV9leHBvbmVudD1zZWxmLl9sb2NhbF9hY2tfZGVsYXlfZXhwb25lbnQsCi0gICAgICAg
ICAgICBhY3RpdmVfY29ubmVjdGlvbl9pZF9saW1pdD1zZWxmLl9sb2NhbF9hY3RpdmVfY29ubmVj
dGlvbl9pZF9saW1pdCwKLSAgICAgICAgICAgIGlkbGVfdGltZW91dD1pbnQoc2VsZi5fY29uZmln
dXJhdGlvbi5pZGxlX3RpbWVvdXQgKiAxMDAwKSwKLSAgICAgICAgICAgIGluaXRpYWxfbWF4X2Rh
dGE9c2VsZi5fbG9jYWxfbWF4X2RhdGEsCi0gICAgICAgICAgICBpbml0aWFsX21heF9zdHJlYW1f
ZGF0YV9iaWRpX2xvY2FsPXNlbGYuX2xvY2FsX21heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsLAot
ICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGU9c2VsZi5fbG9j
YWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlLAotICAgICAgICAgICAgaW5pdGlhbF9tYXhf
c3RyZWFtX2RhdGFfdW5pPXNlbGYuX2xvY2FsX21heF9zdHJlYW1fZGF0YV91bmksCi0gICAgICAg
ICAgICBpbml0aWFsX21heF9zdHJlYW1zX2JpZGk9c2VsZi5fbG9jYWxfbWF4X3N0cmVhbXNfYmlk
aSwKLSAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbXNfdW5pPXNlbGYuX2xvY2FsX21heF9z
dHJlYW1zX3VuaSwKLSAgICAgICAgICAgIG1heF9hY2tfZGVsYXk9MjUsCi0gICAgICAgICAgICBt
YXhfZGF0YWdyYW1fZnJhbWVfc2l6ZT1zZWxmLl9jb25maWd1cmF0aW9uLm1heF9kYXRhZ3JhbV9m
cmFtZV9zaXplLAotICAgICAgICAgICAgcXVhbnR1bV9yZWFkaW5lc3M9YiJRIiAqIDEyMDAKLSAg
ICAgICAgICAgIGlmIHNlbGYuX2NvbmZpZ3VyYXRpb24ucXVhbnR1bV9yZWFkaW5lc3NfdGVzdAot
ICAgICAgICAgICAgZWxzZSBOb25lLAotICAgICAgICApCi0gICAgICAgIGlmIG5vdCBzZWxmLl9p
c19jbGllbnQ6Ci0gICAgICAgICAgICBxdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzLm9yaWdpbmFs
X2Nvbm5lY3Rpb25faWQgPSAoCi0gICAgICAgICAgICAgICAgc2VsZi5fb3JpZ2luYWxfY29ubmVj
dGlvbl9pZAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgbG9nIGV2ZW50Ci0gICAgICAgIGlm
IHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fcXVpY19s
b2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJ0cmFuc3BvcnQiLAot
ICAgICAgICAgICAgICAgIGV2ZW50PSJwYXJhbWV0ZXJzX3NldCIsCi0gICAgICAgICAgICAgICAg
ZGF0YT1zZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAg
ICAgICAgICAgICAgICAgIG93bmVyPSJsb2NhbCIsIHBhcmFtZXRlcnM9cXVpY190cmFuc3BvcnRf
cGFyYW1ldGVycwotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICApCi0KLSAgICAgICAg
YnVmID0gQnVmZmVyKGNhcGFjaXR5PTMgKiBQQUNLRVRfTUFYX1NJWkUpCi0gICAgICAgIHB1c2hf
cXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcXVpY190cmFuc3Bv
cnRfcGFyYW1ldGVycywgcHJvdG9jb2xfdmVyc2lvbj1zZWxmLl92ZXJzaW9uCi0gICAgICAgICkK
LSAgICAgICAgcmV0dXJuIGJ1Zi5kYXRhCi0KLSAgICBkZWYgX3NldF9zdGF0ZShzZWxmLCBzdGF0
ZTogUXVpY0Nvbm5lY3Rpb25TdGF0ZSkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCIlcyAtPiAlcyIsIHNlbGYuX3N0YXRlLCBzdGF0ZSkKLSAgICAgICAgc2VsZi5fc3RhdGUg
PSBzdGF0ZQotCi0gICAgZGVmIF9zdHJlYW1fY2FuX3JlY2VpdmUoc2VsZiwgc3RyZWFtX2lkOiBp
bnQpIC0+IGJvb2w6Ci0gICAgICAgIHJldHVybiBzdHJlYW1faXNfY2xpZW50X2luaXRpYXRlZCgK
LSAgICAgICAgICAgIHN0cmVhbV9pZAotICAgICAgICApICE9IHNlbGYuX2lzX2NsaWVudCBvciBu
b3Qgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsKHN0cmVhbV9pZCkKLQotICAgIGRlZiBfc3RyZWFt
X2Nhbl9zZW5kKHNlbGYsIHN0cmVhbV9pZDogaW50KSAtPiBib29sOgotICAgICAgICByZXR1cm4g
c3RyZWFtX2lzX2NsaWVudF9pbml0aWF0ZWQoCi0gICAgICAgICAgICBzdHJlYW1faWQKLSAgICAg
ICAgKSA9PSBzZWxmLl9pc19jbGllbnQgb3Igbm90IHN0cmVhbV9pc191bmlkaXJlY3Rpb25hbChz
dHJlYW1faWQpCi0KLSAgICBkZWYgX3VuYmxvY2tfc3RyZWFtcyhzZWxmLCBpc191bmlkaXJlY3Rp
b25hbDogYm9vbCkgLT4gTm9uZToKLSAgICAgICAgaWYgaXNfdW5pZGlyZWN0aW9uYWw6Ci0gICAg
ICAgICAgICBtYXhfc3RyZWFtX2RhdGFfcmVtb3RlID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1f
ZGF0YV91bmkKLSAgICAgICAgICAgIG1heF9zdHJlYW1zID0gc2VsZi5fcmVtb3RlX21heF9zdHJl
YW1zX3VuaQotICAgICAgICAgICAgc3RyZWFtc19ibG9ja2VkID0gc2VsZi5fc3RyZWFtc19ibG9j
a2VkX3VuaQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWF4X3N0cmVhbV9kYXRhX3JlbW90
ZSA9IHNlbGYuX3JlbW90ZV9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUKLSAgICAgICAgICAg
IG1heF9zdHJlYW1zID0gc2VsZi5fcmVtb3RlX21heF9zdHJlYW1zX2JpZGkKLSAgICAgICAgICAg
IHN0cmVhbXNfYmxvY2tlZCA9IHNlbGYuX3N0cmVhbXNfYmxvY2tlZF9iaWRpCi0KLSAgICAgICAg
d2hpbGUgc3RyZWFtc19ibG9ja2VkIGFuZCBzdHJlYW1zX2Jsb2NrZWRbMF0uc3RyZWFtX2lkIC8v
IDQgPCBtYXhfc3RyZWFtczoKLSAgICAgICAgICAgIHN0cmVhbSA9IHN0cmVhbXNfYmxvY2tlZC5w
b3AoMCkKLSAgICAgICAgICAgIHN0cmVhbS5pc19ibG9ja2VkID0gRmFsc2UKLSAgICAgICAgICAg
IHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfcmVtb3RlID0gbWF4X3N0cmVhbV9kYXRhX3JlbW90ZQot
Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfYmlkaSBhbmQgbm90IHNlbGYu
X3N0cmVhbXNfYmxvY2tlZF91bmk6Ci0gICAgICAgICAgICBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRf
cGVuZGluZyA9IEZhbHNlCi0KLSAgICBkZWYgX3VwZGF0ZV90cmFmZmljX2tleSgKLSAgICAgICAg
c2VsZiwKLSAgICAgICAgZGlyZWN0aW9uOiB0bHMuRGlyZWN0aW9uLAotICAgICAgICBlcG9jaDog
dGxzLkVwb2NoLAotICAgICAgICBjaXBoZXJfc3VpdGU6IHRscy5DaXBoZXJTdWl0ZSwKLSAgICAg
ICAgc2VjcmV0OiBieXRlcywKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBD
YWxsYmFjayB3aGljaCBpcyBpbnZva2VkIGJ5IHRoZSBUTFMgZW5naW5lIHdoZW4gbmV3IHRyYWZm
aWMga2V5cyBhcmUKLSAgICAgICAgYXZhaWxhYmxlLgotICAgICAgICAiIiIKLSAgICAgICAgc2Vj
cmV0c19sb2dfZmlsZSA9IHNlbGYuX2NvbmZpZ3VyYXRpb24uc2VjcmV0c19sb2dfZmlsZQotICAg
ICAgICBpZiBzZWNyZXRzX2xvZ19maWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgbGFiZWxf
cm93ID0gc2VsZi5faXNfY2xpZW50ID09IChkaXJlY3Rpb24gPT0gdGxzLkRpcmVjdGlvbi5ERUNS
WVBUKQotICAgICAgICAgICAgbGFiZWwgPSBTRUNSRVRTX0xBQkVMU1tsYWJlbF9yb3ddW2Vwb2No
LnZhbHVlXQotICAgICAgICAgICAgc2VjcmV0c19sb2dfZmlsZS53cml0ZSgKLSAgICAgICAgICAg
ICAgICAiJXMgJXMgJXNcbiIgJSAobGFiZWwsIHNlbGYudGxzLmNsaWVudF9yYW5kb20uaGV4KCks
IHNlY3JldC5oZXgoKSkKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlY3JldHNfbG9nX2Zp
bGUuZmx1c2goKQotCi0gICAgICAgIGNyeXB0byA9IHNlbGYuX2NyeXB0b3NbZXBvY2hdCi0gICAg
ICAgIGlmIGRpcmVjdGlvbiA9PSB0bHMuRGlyZWN0aW9uLkVOQ1JZUFQ6Ci0gICAgICAgICAgICBj
cnlwdG8uc2VuZC5zZXR1cCgKLSAgICAgICAgICAgICAgICBjaXBoZXJfc3VpdGU9Y2lwaGVyX3N1
aXRlLCBzZWNyZXQ9c2VjcmV0LCB2ZXJzaW9uPXNlbGYuX3ZlcnNpb24KLSAgICAgICAgICAgICkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGNyeXB0by5yZWN2LnNldHVwKAotICAgICAgICAg
ICAgICAgIGNpcGhlcl9zdWl0ZT1jaXBoZXJfc3VpdGUsIHNlY3JldD1zZWNyZXQsIHZlcnNpb249
c2VsZi5fdmVyc2lvbgotICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9hcHBsaWNhdGlv
bigKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsIG5ldHdvcmtfcGF0
aDogUXVpY05ldHdvcmtQYXRoLCBub3c6IGZsb2F0Ci0gICAgKSAtPiBOb25lOgotICAgICAgICBj
cnlwdG9fc3RyZWFtOiBPcHRpb25hbFtRdWljU3RyZWFtXSA9IE5vbmUKLSAgICAgICAgaWYgc2Vs
Zi5fY3J5cHRvc1t0bHMuRXBvY2guT05FX1JUVF0uc2VuZC5pc192YWxpZCgpOgotICAgICAgICAg
ICAgY3J5cHRvID0gc2VsZi5fY3J5cHRvc1t0bHMuRXBvY2guT05FX1JUVF0KLSAgICAgICAgICAg
IGNyeXB0b19zdHJlYW0gPSBzZWxmLl9jcnlwdG9fc3RyZWFtc1t0bHMuRXBvY2guT05FX1JUVF0K
LSAgICAgICAgICAgIHBhY2tldF90eXBlID0gUEFDS0VUX1RZUEVfT05FX1JUVAotICAgICAgICBl
bGlmIHNlbGYuX2NyeXB0b3NbdGxzLkVwb2NoLlpFUk9fUlRUXS5zZW5kLmlzX3ZhbGlkKCk6Ci0g
ICAgICAgICAgICBjcnlwdG8gPSBzZWxmLl9jcnlwdG9zW3Rscy5FcG9jaC5aRVJPX1JUVF0KLSAg
ICAgICAgICAgIHBhY2tldF90eXBlID0gUEFDS0VUX1RZUEVfWkVST19SVFQKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzcGFjZSA9IHNlbGYuX3NwYWNlc1t0bHMu
RXBvY2guT05FX1JUVF0KLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBhcHBs
eSBwYWNpbmcsIGV4Y2VwdCBpZiB3ZSBoYXZlIEFDS3MgdG8gc2VuZAotICAgICAgICAgICAgaWYg
c3BhY2UuYWNrX2F0IGlzIE5vbmUgb3Igc3BhY2UuYWNrX2F0ID49IG5vdzoKLSAgICAgICAgICAg
ICAgICBzZWxmLl9wYWNpbmdfYXQgPSBzZWxmLl9sb3NzLl9wYWNlci5uZXh0X3NlbmRfdGltZShu
b3c9bm93KQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BhY2luZ19hdCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFj
a2V0KHBhY2tldF90eXBlLCBjcnlwdG8pCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFr
ZV9jb21wbGV0ZToKLSAgICAgICAgICAgICAgICAjIEFDSwotICAgICAgICAgICAgICAgIGlmIHNw
YWNlLmFja19hdCBpcyBub3QgTm9uZSBhbmQgc3BhY2UuYWNrX2F0IDw9IG5vdzoKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fd3JpdGVfYWNrX2ZyYW1lKGJ1aWxkZXI9YnVpbGRlciwgc3BhY2U9
c3BhY2UsIG5vdz1ub3cpCi0KLSAgICAgICAgICAgICAgICAjIEhBTkRTSEFLRV9ET05FCi0gICAg
ICAgICAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlX2RvbmVfcGVuZGluZzoKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfaGFuZHNoYWtlX2RvbmVfZnJhbWUoYnVpbGRlcj1idWlsZGVy
KQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9oYW5kc2hha2VfZG9uZV9wZW5kaW5nID0gRmFs
c2UKLQotICAgICAgICAgICAgICAgICMgUEFUSCBDSEFMTEVOR0UKLSAgICAgICAgICAgICAgICBp
ZiAoCi0gICAgICAgICAgICAgICAgICAgIG5vdCBuZXR3b3JrX3BhdGguaXNfdmFsaWRhdGVkCi0g
ICAgICAgICAgICAgICAgICAgIGFuZCBuZXR3b3JrX3BhdGgubG9jYWxfY2hhbGxlbmdlIGlzIE5v
bmUKLSAgICAgICAgICAgICAgICApOgotICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2UgPSBv
cy51cmFuZG9tKDgpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3BhdGhfY2hhbGxl
bmdlX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcj1idWlsZGVyLCBjaGFs
bGVuZ2U9Y2hhbGxlbmdlCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAg
ICAgbmV0d29ya19wYXRoLmxvY2FsX2NoYWxsZW5nZSA9IGNoYWxsZW5nZQotCi0gICAgICAgICAg
ICAgICAgIyBQQVRIIFJFU1BPTlNFCi0gICAgICAgICAgICAgICAgaWYgbmV0d29ya19wYXRoLnJl
bW90ZV9jaGFsbGVuZ2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3dy
aXRlX3BhdGhfcmVzcG9uc2VfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVy
PWJ1aWxkZXIsIGNoYWxsZW5nZT1uZXR3b3JrX3BhdGgucmVtb3RlX2NoYWxsZW5nZQotICAgICAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfcGF0aC5yZW1vdGVf
Y2hhbGxlbmdlID0gTm9uZQotCi0gICAgICAgICAgICAgICAgIyBORVdfQ09OTkVDVElPTl9JRAot
ICAgICAgICAgICAgICAgIGZvciBjb25uZWN0aW9uX2lkIGluIHNlbGYuX2hvc3RfY2lkczoKLSAg
ICAgICAgICAgICAgICAgICAgaWYgbm90IGNvbm5lY3Rpb25faWQud2FzX3NlbnQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9uZXdfY29ubmVjdGlvbl9pZF9mcmFtZSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIsIGNvbm5lY3Rpb25faWQ9
Y29ubmVjdGlvbl9pZAotICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAg
ICAgIyBSRVRJUkVfQ09OTkVDVElPTl9JRAotICAgICAgICAgICAgICAgIHdoaWxlIHNlbGYuX3Jl
dGlyZV9jb25uZWN0aW9uX2lkczoKLSAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVy
ID0gc2VsZi5fcmV0aXJlX2Nvbm5lY3Rpb25faWRzLnBvcCgwKQotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl93cml0ZV9yZXRpcmVfY29ubmVjdGlvbl9pZF9mcmFtZSgKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkZXI9YnVpbGRlciwgc2VxdWVuY2VfbnVtYmVyPXNlcXVlbmNlX251bWJl
cgotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICAjIFNUUkVBTVNfQkxP
Q0tFRAotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3N0cmVhbXNfYmxvY2tlZF9wZW5kaW5nOgot
ICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfYmlkaToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3N0cmVhbXNfYmxvY2tlZF9mcmFtZSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1RdWljRnJhbWVUeXBlLlNUUkVBTVNfQkxPQ0tFRF9C
SURJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PXNlbGYuX3JlbW90ZV9tYXhf
c3RyZWFtc19iaWRpLAotICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9zdHJlYW1zX2Jsb2NrZWRfdW5pOgotICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfc3RyZWFtc19ibG9ja2VkX2ZyYW1lKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJ1aWxkZXI9YnVpbGRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cmFtZV90eXBlPVF1aWNGcmFtZVR5cGUuU1RSRUFNU19CTE9DS0VEX1VOSSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW1pdD1zZWxmLl9yZW1vdGVfbWF4X3N0cmVhbXNfdW5pLAotICAg
ICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW1z
X2Jsb2NrZWRfcGVuZGluZyA9IEZhbHNlCi0KLSAgICAgICAgICAgICAgICAjIE1BWF9EQVRBCi0g
ICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29ubmVjdGlvbl9saW1pdHMoYnVpbGRlcj1idWls
ZGVyLCBzcGFjZT1zcGFjZSkKLQotICAgICAgICAgICAgIyBzdHJlYW0tbGV2ZWwgbGltaXRzCi0g
ICAgICAgICAgICBmb3Igc3RyZWFtIGluIHNlbGYuX3N0cmVhbXMudmFsdWVzKCk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfc3RyZWFtX2xpbWl0cyhidWlsZGVyPWJ1aWxkZXIsIHNwYWNl
PXNwYWNlLCBzdHJlYW09c3RyZWFtKQotCi0gICAgICAgICAgICAjIFBJTkcgKHVzZXItcmVxdWVz
dCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3BpbmdfcGVuZGluZzoKLSAgICAgICAgICAgICAgICBz
ZWxmLl93cml0ZV9waW5nX2ZyYW1lKGJ1aWxkZXIsIHNlbGYuX3BpbmdfcGVuZGluZykKLSAgICAg
ICAgICAgICAgICBzZWxmLl9waW5nX3BlbmRpbmcuY2xlYXIoKQotCi0gICAgICAgICAgICAjIFBJ
TkcgKHByb2JlKQotICAgICAgICAgICAgaWYgc2VsZi5fcHJvYmVfcGVuZGluZzoKLSAgICAgICAg
ICAgICAgICBzZWxmLl93cml0ZV9waW5nX2ZyYW1lKGJ1aWxkZXIsIGNvbW1lbnQ9InByb2JlIikK
LSAgICAgICAgICAgICAgICBzZWxmLl9wcm9iZV9wZW5kaW5nID0gRmFsc2UKLQotICAgICAgICAg
ICAgIyBDUllQVE8KLSAgICAgICAgICAgIGlmIGNyeXB0b19zdHJlYW0gaXMgbm90IE5vbmUgYW5k
IG5vdCBjcnlwdG9fc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5OgotICAgICAgICAgICAgICAg
IHNlbGYuX3dyaXRlX2NyeXB0b19mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgYnVpbGRlcj1i
dWlsZGVyLCBzcGFjZT1zcGFjZSwgc3RyZWFtPWNyeXB0b19zdHJlYW0KLSAgICAgICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgICMgREFUQUdSQU0KLSAgICAgICAgICAgIHdoaWxlIHNlbGYuX2Rh
dGFncmFtc19wZW5kaW5nOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfZGF0YWdyYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBi
dWlsZGVyPWJ1aWxkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXNlbGYuX2RhdGFn
cmFtc19wZW5kaW5nWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1RdWlj
RnJhbWVUeXBlLkRBVEFHUkFNX1dJVEhfTEVOR1RILAotICAgICAgICAgICAgICAgICAgICApCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFncmFtc19wZW5kaW5nLnBvcGxlZnQoKQotICAg
ICAgICAgICAgICAgIGV4Y2VwdCBRdWljUGFja2V0QnVpbGRlclN0b3A6Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgICMgU1RSRUFNCi0gICAgICAgICAgICBmb3Igc3Ry
ZWFtIGluIHNlbGYuX3N0cmVhbXMudmFsdWVzKCk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHN0
cmVhbS5pc19ibG9ja2VkIGFuZCBub3Qgc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5OgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9yZW1vdGVfbWF4X2RhdGFfdXNlZCArPSBzZWxmLl93cml0
ZV9zdHJlYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyPWJ1aWxkZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcGFjZT1zcGFjZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmVhbT1zdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICBtYXhfb2Zmc2V0
PW1pbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0uX3NlbmRfaGlnaGVzdAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2VsZi5fcmVtb3RlX21heF9kYXRhCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLSBzZWxmLl9yZW1vdGVfbWF4X2RhdGFfdXNlZCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX3JlbW90ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgICkKLQotICAg
ICAgICAgICAgaWYgYnVpbGRlci5wYWNrZXRfaXNfZW1wdHk6Ci0gICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9zcy5fcGFjZXIu
dXBkYXRlX2FmdGVyX3NlbmQobm93PW5vdykKLQotICAgIGRlZiBfd3JpdGVfaGFuZHNoYWtlKAot
ICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwgZXBvY2g6IHRscy5FcG9j
aCwgbm93OiBmbG9hdAotICAgICkgLT4gTm9uZToKLSAgICAgICAgY3J5cHRvID0gc2VsZi5fY3J5
cHRvc1tlcG9jaF0KLSAgICAgICAgaWYgbm90IGNyeXB0by5zZW5kLmlzX3ZhbGlkKCk6Ci0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICBjcnlwdG9fc3RyZWFtID0gc2VsZi5fY3J5cHRvX3N0
cmVhbXNbZXBvY2hdCi0gICAgICAgIHNwYWNlID0gc2VsZi5fc3BhY2VzW2Vwb2NoXQotCi0gICAg
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBlcG9jaCA9PSB0bHMuRXBvY2guSU5JVElB
TDoKLSAgICAgICAgICAgICAgICBwYWNrZXRfdHlwZSA9IFBBQ0tFVF9UWVBFX0lOSVRJQUwKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFja2V0X3R5cGUgPSBQQUNLRVRfVFlQ
RV9IQU5EU0hBS0UKLSAgICAgICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KHBhY2tldF90eXBl
LCBjcnlwdG8pCi0KLSAgICAgICAgICAgICMgQUNLCi0gICAgICAgICAgICBpZiBzcGFjZS5hY2tf
YXQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfYWNrX2ZyYW1lKGJ1
aWxkZXI9YnVpbGRlciwgc3BhY2U9c3BhY2UsIG5vdz1ub3cpCi0KLSAgICAgICAgICAgICMgQ1JZ
UFRPCi0gICAgICAgICAgICBpZiBub3QgY3J5cHRvX3N0cmVhbS5zZW5kX2J1ZmZlcl9pc19lbXB0
eToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl93cml0ZV9jcnlwdG9fZnJhbWUoCi0gICAgICAg
ICAgICAgICAgICAgIGJ1aWxkZXI9YnVpbGRlciwgc3BhY2U9c3BhY2UsIHN0cmVhbT1jcnlwdG9f
c3RyZWFtCi0gICAgICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJv
YmVfcGVuZGluZyA9IEZhbHNlCi0KLSAgICAgICAgICAgICMgUElORyAocHJvYmUpCi0gICAgICAg
ICAgICBpZiAoCi0gICAgICAgICAgICAgICAgc2VsZi5fcHJvYmVfcGVuZGluZwotICAgICAgICAg
ICAgICAgIGFuZCBlcG9jaCA9PSB0bHMuRXBvY2guSEFORFNIQUtFCi0gICAgICAgICAgICAgICAg
YW5kIG5vdCBzZWxmLl9oYW5kc2hha2VfY29tcGxldGUKLSAgICAgICAgICAgICk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fd3JpdGVfcGluZ19mcmFtZShidWlsZGVyLCBjb21tZW50PSJwcm9iZSIp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJvYmVfcGVuZGluZyA9IEZhbHNlCi0KLSAgICAgICAg
ICAgIGlmIGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5OgotICAgICAgICAgICAgICAgIGJyZWFrCi0K
LSAgICBkZWYgX3dyaXRlX2Fja19mcmFtZSgKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1Bh
Y2tldEJ1aWxkZXIsIHNwYWNlOiBRdWljUGFja2V0U3BhY2UsIG5vdzogZmxvYXQKLSAgICApIC0+
IE5vbmU6Ci0gICAgICAgICMgY2FsY3VsYXRlIEFDSyBkZWxheQotICAgICAgICBhY2tfZGVsYXkg
PSBub3cgLSBzcGFjZS5sYXJnZXN0X3JlY2VpdmVkX3RpbWUKLSAgICAgICAgYWNrX2RlbGF5X2Vu
Y29kZWQgPSBpbnQoYWNrX2RlbGF5ICogMTAwMDAwMCkgPj4gc2VsZi5fbG9jYWxfYWNrX2RlbGF5
X2V4cG9uZW50Ci0KLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAg
ICAgIFF1aWNGcmFtZVR5cGUuQUNLLAotICAgICAgICAgICAgY2FwYWNpdHk9QUNLX0ZSQU1FX0NB
UEFDSVRZLAotICAgICAgICAgICAgaGFuZGxlcj1zZWxmLl9vbl9hY2tfZGVsaXZlcnksCi0gICAg
ICAgICAgICBoYW5kbGVyX2FyZ3M9KHNwYWNlLCBzcGFjZS5sYXJnZXN0X3JlY2VpdmVkX3BhY2tl
dCksCi0gICAgICAgICkKLSAgICAgICAgcmFuZ2VzID0gcHVzaF9hY2tfZnJhbWUoYnVmLCBzcGFj
ZS5hY2tfcXVldWUsIGFja19kZWxheV9lbmNvZGVkKQotICAgICAgICBzcGFjZS5hY2tfYXQgPSBO
b25lCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBl
bmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2Fja19mcmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgcmFuZ2VzPXNwYWNlLmFja19xdWV1ZSwgZGVsYXk9YWNrX2Rl
bGF5Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sg
aWYgd2UgbmVlZCB0byB0cmlnZ2VyIGFuIEFDSy1vZi1BQ0sKLSAgICAgICAgaWYgcmFuZ2VzID4g
MSBhbmQgYnVpbGRlci5wYWNrZXRfbnVtYmVyICUgOCA9PSAwOgotICAgICAgICAgICAgc2VsZi5f
d3JpdGVfcGluZ19mcmFtZShidWlsZGVyLCBjb21tZW50PSJBQ0stb2YtQUNLIHRyaWdnZXIiKQot
Ci0gICAgZGVmIF93cml0ZV9jb25uZWN0aW9uX2Nsb3NlX2ZyYW1lKAotICAgICAgICBzZWxmLAot
ICAgICAgICBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwKLSAgICAgICAgZXJyb3JfY29kZTog
aW50LAotICAgICAgICBmcmFtZV90eXBlOiBPcHRpb25hbFtpbnRdLAotICAgICAgICByZWFzb25f
cGhyYXNlOiBzdHIsCi0gICAgKSAtPiBOb25lOgotICAgICAgICByZWFzb25fYnl0ZXMgPSByZWFz
b25fcGhyYXNlLmVuY29kZSgidXRmOCIpCi0gICAgICAgIHJlYXNvbl9sZW5ndGggPSBsZW4ocmVh
c29uX2J5dGVzKQotCi0gICAgICAgIGlmIGZyYW1lX3R5cGUgaXMgTm9uZToKLSAgICAgICAgICAg
IGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlw
ZS5BUFBMSUNBVElPTl9DTE9TRSwKLSAgICAgICAgICAgICAgICBjYXBhY2l0eT1BUFBMSUNBVElP
Tl9DTE9TRV9GUkFNRV9DQVBBQ0lUWSArIHJlYXNvbl9sZW5ndGgsCi0gICAgICAgICAgICApCi0g
ICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihlcnJvcl9jb2RlKQotICAgICAgICAgICAgYnVm
LnB1c2hfdWludF92YXIocmVhc29uX2xlbmd0aCkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVz
KHJlYXNvbl9ieXRlcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJ1ZiA9IGJ1aWxkZXIu
c3RhcnRfZnJhbWUoCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5UUkFOU1BPUlRfQ0xP
U0UsCi0gICAgICAgICAgICAgICAgY2FwYWNpdHk9VFJBTlNQT1JUX0NMT1NFX0ZSQU1FX0NBUEFD
SVRZICsgcmVhc29uX2xlbmd0aCwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGJ1Zi5wdXNo
X3VpbnRfdmFyKGVycm9yX2NvZGUpCi0gICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihmcmFt
ZV90eXBlKQotICAgICAgICAgICAgYnVmLnB1c2hfdWludF92YXIocmVhc29uX2xlbmd0aCkKLSAg
ICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKHJlYXNvbl9ieXRlcykKLQotICAgICAgICAjIGxvZyBm
cmFtZQotICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgIGJ1aWxkZXIucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBz
ZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfY29ubmVjdGlvbl9jbG9zZV9mcmFtZSgKLSAgICAgICAg
ICAgICAgICAgICAgZXJyb3JfY29kZT1lcnJvcl9jb2RlLAotICAgICAgICAgICAgICAgICAgICBm
cmFtZV90eXBlPWZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9
cmVhc29uX3BocmFzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAgICBk
ZWYgX3dyaXRlX2Nvbm5lY3Rpb25fbGltaXRzKAotICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWlj
UGFja2V0QnVpbGRlciwgc3BhY2U6IFF1aWNQYWNrZXRTcGFjZQotICAgICkgLT4gTm9uZToKLSAg
ICAgICAgIiIiCi0gICAgICAgIFJhaXNlIE1BWF9EQVRBIGlmIG5lZWRlZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGlmIHNlbGYuX2xvY2FsX21heF9kYXRhX3VzZWQgKiAyID4gc2VsZi5fbG9jYWxf
bWF4X2RhdGE6Ci0gICAgICAgICAgICBzZWxmLl9sb2NhbF9tYXhfZGF0YSAqPSAyCi0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoIkxvY2FsIG1heF9kYXRhIHJhaXNlZCB0byAlZCIsIHNl
bGYuX2xvY2FsX21heF9kYXRhKQotICAgICAgICBpZiBzZWxmLl9sb2NhbF9tYXhfZGF0YV9zZW50
ICE9IHNlbGYuX2xvY2FsX21heF9kYXRhOgotICAgICAgICAgICAgYnVmID0gYnVpbGRlci5zdGFy
dF9mcmFtZSgKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1BWF9EQVRBLAotICAgICAg
ICAgICAgICAgIGNhcGFjaXR5PU1BWF9EQVRBX0ZSQU1FX0NBUEFDSVRZLAotICAgICAgICAgICAg
ICAgIGhhbmRsZXI9c2VsZi5fb25fbWF4X2RhdGFfZGVsaXZlcnksCi0gICAgICAgICAgICApCi0g
ICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihzZWxmLl9sb2NhbF9tYXhfZGF0YSkKLSAgICAg
ICAgICAgIHNlbGYuX2xvY2FsX21heF9kYXRhX3NlbnQgPSBzZWxmLl9sb2NhbF9tYXhfZGF0YQot
Ci0gICAgICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFt
ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVf
bWF4X2RhdGFfZnJhbWUoc2VsZi5fbG9jYWxfbWF4X2RhdGEpCi0gICAgICAgICAgICAgICAgKQot
Ci0gICAgZGVmIF93cml0ZV9jcnlwdG9fZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6IFF1
aWNQYWNrZXRCdWlsZGVyLCBzcGFjZTogUXVpY1BhY2tldFNwYWNlLCBzdHJlYW06IFF1aWNTdHJl
YW0KLSAgICApIC0+IGJvb2w6Ci0gICAgICAgIGZyYW1lX292ZXJoZWFkID0gMyArIHNpemVfdWlu
dF92YXIoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQpCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdl
dF9mcmFtZShidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRfc3BhY2UgLSBmcmFtZV9vdmVyaGVhZCkK
LSAgICAgICAgaWYgZnJhbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBidWYgPSBidWlsZGVy
LnN0YXJ0X2ZyYW1lKAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuQ1JZUFRPLAotICAg
ICAgICAgICAgICAgIGNhcGFjaXR5PWZyYW1lX292ZXJoZWFkLAotICAgICAgICAgICAgICAgIGhh
bmRsZXI9c3RyZWFtLm9uX2RhdGFfZGVsaXZlcnksCi0gICAgICAgICAgICAgICAgaGFuZGxlcl9h
cmdzPShmcmFtZS5vZmZzZXQsIGZyYW1lLm9mZnNldCArIGxlbihmcmFtZS5kYXRhKSksCi0gICAg
ICAgICAgICApCi0gICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihmcmFtZS5vZmZzZXQpCi0g
ICAgICAgICAgICBidWYucHVzaF91aW50MTYobGVuKGZyYW1lLmRhdGEpIHwgMHg0MDAwKQotICAg
ICAgICAgICAgYnVmLnB1c2hfYnl0ZXMoZnJhbWUuZGF0YSkKLQotICAgICAgICAgICAgIyBsb2cg
ZnJhbWUKLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIGJ1aWxkZXIucXVpY19sb2dnZXJfZnJhbWVzLmFwcGVuZCgKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2NyeXB0b19mcmFtZShmcmFtZSkK
LSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgIHJl
dHVybiBGYWxzZQotCi0gICAgZGVmIF93cml0ZV9kYXRhZ3JhbV9mcmFtZSgKLSAgICAgICAgc2Vs
ZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsIGRhdGE6IGJ5dGVzLCBmcmFtZV90eXBlOiBR
dWljRnJhbWVUeXBlCi0gICAgKSAtPiBib29sOgotICAgICAgICAiIiIKLSAgICAgICAgV3JpdGUg
YSBEQVRBR1JBTSBmcmFtZS4KLQotICAgICAgICBSZXR1cm5zIFRydWUgaWYgdGhlIGZyYW1lIHdh
cyBwcm9jZXNzZWQsIEZhbHNlIG90aGVyd2lzZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGFzc2Vy
dCBmcmFtZV90eXBlID09IFF1aWNGcmFtZVR5cGUuREFUQUdSQU1fV0lUSF9MRU5HVEgKLSAgICAg
ICAgbGVuZ3RoID0gbGVuKGRhdGEpCi0gICAgICAgIGZyYW1lX3NpemUgPSAxICsgc2l6ZV91aW50
X3ZhcihsZW5ndGgpICsgbGVuZ3RoCi0KLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFt
ZShmcmFtZV90eXBlLCBjYXBhY2l0eT1mcmFtZV9zaXplKQotICAgICAgICBidWYucHVzaF91aW50
X3ZhcihsZW5ndGgpCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGRhdGEpCi0KLSAgICAgICAgIyBs
b2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX2RhdGFncmFtX2ZyYW1lKGxlbmd0aD1sZW5ndGgp
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfd3JpdGVf
aGFuZHNoYWtlX2RvbmVfZnJhbWUoc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIpIC0+
IE5vbmU6Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAgICBRdWljRnJh
bWVUeXBlLkhBTkRTSEFLRV9ET05FLAotICAgICAgICAgICAgY2FwYWNpdHk9SEFORFNIQUtFX0RP
TkVfRlJBTUVfQ0FQQUNJVFksCi0gICAgICAgICAgICBoYW5kbGVyPXNlbGYuX29uX2hhbmRzaGFr
ZV9kb25lX2RlbGl2ZXJ5LAotICAgICAgICApCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAg
ICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBidWlsZGVy
LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19s
b2dnZXIuZW5jb2RlX2hhbmRzaGFrZV9kb25lX2ZyYW1lKCkKLSAgICAgICAgICAgICkKLQotICAg
IGRlZiBfd3JpdGVfbmV3X2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxk
ZXI6IFF1aWNQYWNrZXRCdWlsZGVyLCBjb25uZWN0aW9uX2lkOiBRdWljQ29ubmVjdGlvbklkCi0g
ICAgKSAtPiBOb25lOgotICAgICAgICByZXRpcmVfcHJpb3JfdG8gPSAwICAjIEZJWE1FCi0KLSAg
ICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAgICAgIFF1aWNGcmFtZVR5
cGUuTkVXX0NPTk5FQ1RJT05fSUQsCi0gICAgICAgICAgICBjYXBhY2l0eT1ORVdfQ09OTkVDVElP
Tl9JRF9GUkFNRV9DQVBBQ0lUWSwKLSAgICAgICAgICAgIGhhbmRsZXI9c2VsZi5fb25fbmV3X2Nv
bm5lY3Rpb25faWRfZGVsaXZlcnksCi0gICAgICAgICAgICBoYW5kbGVyX2FyZ3M9KGNvbm5lY3Rp
b25faWQsKSwKLSAgICAgICAgKQotICAgICAgICBidWYucHVzaF91aW50X3Zhcihjb25uZWN0aW9u
X2lkLnNlcXVlbmNlX251bWJlcikKLSAgICAgICAgYnVmLnB1c2hfdWludF92YXIocmV0aXJlX3By
aW9yX3RvKQotICAgICAgICBidWYucHVzaF91aW50OChsZW4oY29ubmVjdGlvbl9pZC5jaWQpKQot
ICAgICAgICBidWYucHVzaF9ieXRlcyhjb25uZWN0aW9uX2lkLmNpZCkKLSAgICAgICAgYnVmLnB1
c2hfYnl0ZXMoY29ubmVjdGlvbl9pZC5zdGF0ZWxlc3NfcmVzZXRfdG9rZW4pCi0KLSAgICAgICAg
Y29ubmVjdGlvbl9pZC53YXNfc2VudCA9IFRydWUKLSAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVu
ZChldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKGNvbm5lY3Rpb25faWQ9Y29ubmVjdGlvbl9pZC5j
aWQpKQotCi0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2Vy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBw
ZW5kKAotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9uZXdfY29ubmVj
dGlvbl9pZF9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbl9pZD1jb25uZWN0
aW9uX2lkLmNpZCwKLSAgICAgICAgICAgICAgICAgICAgcmV0aXJlX3ByaW9yX3RvPXJldGlyZV9w
cmlvcl90bywKLSAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVyPWNvbm5lY3Rpb25f
aWQuc2VxdWVuY2VfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgICBzdGF0ZWxlc3NfcmVzZXRf
dG9rZW49Y29ubmVjdGlvbl9pZC5zdGF0ZWxlc3NfcmVzZXRfdG9rZW4sCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9wYXRoX2NoYWxsZW5nZV9mcmFt
ZSgKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1BhY2tldEJ1aWxkZXIsIGNoYWxsZW5nZTog
Ynl0ZXMKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUo
Ci0gICAgICAgICAgICBRdWljRnJhbWVUeXBlLlBBVEhfQ0hBTExFTkdFLCBjYXBhY2l0eT1QQVRI
X0NIQUxMRU5HRV9GUkFNRV9DQVBBQ0lUWQotICAgICAgICApCi0gICAgICAgIGJ1Zi5wdXNoX2J5
dGVzKGNoYWxsZW5nZSkKLQotICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICBpZiBzZWxmLl9x
dWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGJ1aWxkZXIucXVpY19sb2dnZXJf
ZnJhbWVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVf
cGF0aF9jaGFsbGVuZ2VfZnJhbWUoZGF0YT1jaGFsbGVuZ2UpCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgX3dyaXRlX3BhdGhfcmVzcG9uc2VfZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6
IFF1aWNQYWNrZXRCdWlsZGVyLCBjaGFsbGVuZ2U6IGJ5dGVzCi0gICAgKSAtPiBOb25lOgotICAg
ICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlw
ZS5QQVRIX1JFU1BPTlNFLCBjYXBhY2l0eT1QQVRIX1JFU1BPTlNFX0ZSQU1FX0NBUEFDSVRZCi0g
ICAgICAgICkKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoY2hhbGxlbmdlKQotCi0gICAgICAgICMg
bG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAgICAgICAg
ICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9wYXRoX3Jlc3BvbnNlX2ZyYW1lKGRhdGE9Y2hh
bGxlbmdlKQotICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9waW5nX2ZyYW1lKAotICAg
ICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFja2V0QnVpbGRlciwgdWlkczogTGlzdFtpbnRdID0g
W10sIGNvbW1lbnQ9IiIKLSAgICApOgotICAgICAgICBidWlsZGVyLnN0YXJ0X2ZyYW1lKAotICAg
ICAgICAgICAgUXVpY0ZyYW1lVHlwZS5QSU5HLAotICAgICAgICAgICAgY2FwYWNpdHk9UElOR19G
UkFNRV9DQVBBQ0lUWSwKLSAgICAgICAgICAgIGhhbmRsZXI9c2VsZi5fb25fcGluZ19kZWxpdmVy
eSwKLSAgICAgICAgICAgIGhhbmRsZXJfYXJncz0odHVwbGUodWlkcyksKSwKLSAgICAgICAgKQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAiU2VuZGluZyBQSU5HJXMg
aW4gcGFja2V0ICVkIiwKLSAgICAgICAgICAgICIgKCVzKSIgJSBjb21tZW50IGlmIGNvbW1lbnQg
ZWxzZSAiIiwKLSAgICAgICAgICAgIGJ1aWxkZXIucGFja2V0X251bWJlciwKLSAgICAgICAgKQot
Ci0gICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKHNl
bGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9waW5nX2ZyYW1lKCkpCi0KLSAgICBkZWYgX3dyaXRlX3Jl
dGlyZV9jb25uZWN0aW9uX2lkX2ZyYW1lKAotICAgICAgICBzZWxmLCBidWlsZGVyOiBRdWljUGFj
a2V0QnVpbGRlciwgc2VxdWVuY2VfbnVtYmVyOiBpbnQKLSAgICApIC0+IE5vbmU6Ci0gICAgICAg
IGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoCi0gICAgICAgICAgICBRdWljRnJhbWVUeXBlLlJF
VElSRV9DT05ORUNUSU9OX0lELAotICAgICAgICAgICAgY2FwYWNpdHk9UkVUSVJFX0NPTk5FQ1RJ
T05fSURfQ0FQQUNJVFksCi0gICAgICAgICAgICBoYW5kbGVyPXNlbGYuX29uX3JldGlyZV9jb25u
ZWN0aW9uX2lkX2RlbGl2ZXJ5LAotICAgICAgICAgICAgaGFuZGxlcl9hcmdzPShzZXF1ZW5jZV9u
dW1iZXIsKSwKLSAgICAgICAgKQotICAgICAgICBidWYucHVzaF91aW50X3ZhcihzZXF1ZW5jZV9u
dW1iZXIpCi0KLSAgICAgICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dn
ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5h
cHBlbmQoCi0gICAgICAgICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3JldGlyZV9j
b25uZWN0aW9uX2lkX2ZyYW1lKHNlcXVlbmNlX251bWJlcikKLSAgICAgICAgICAgICkKLQotICAg
IGRlZiBfd3JpdGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICBzZWxmLAotICAgICAgICBidWlsZGVy
OiBRdWljUGFja2V0QnVpbGRlciwKLSAgICAgICAgc3BhY2U6IFF1aWNQYWNrZXRTcGFjZSwKLSAg
ICAgICAgc3RyZWFtOiBRdWljU3RyZWFtLAotICAgICAgICBtYXhfb2Zmc2V0OiBpbnQsCi0gICAg
KSAtPiBpbnQ6Ci0gICAgICAgICMgdGhlIGZyYW1lIGRhdGEgc2l6ZSBpcyBjb25zdHJhaW5lZCBi
eSBvdXIgcGVlcidzIE1BWF9EQVRBIGFuZAotICAgICAgICAjIHRoZSBzcGFjZSBhdmFpbGFibGUg
aW4gdGhlIGN1cnJlbnQgcGFja2V0Ci0gICAgICAgIGZyYW1lX292ZXJoZWFkID0gKAotICAgICAg
ICAgICAgMwotICAgICAgICAgICAgKyBzaXplX3VpbnRfdmFyKHN0cmVhbS5zdHJlYW1faWQpCi0g
ICAgICAgICAgICArIChzaXplX3VpbnRfdmFyKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0KSBpZiBz
dHJlYW0ubmV4dF9zZW5kX29mZnNldCBlbHNlIDApCi0gICAgICAgICkKLSAgICAgICAgcHJldmlv
dXNfc2VuZF9oaWdoZXN0ID0gc3RyZWFtLl9zZW5kX2hpZ2hlc3QKLSAgICAgICAgZnJhbWUgPSBz
dHJlYW0uZ2V0X2ZyYW1lKAotICAgICAgICAgICAgYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3Nw
YWNlIC0gZnJhbWVfb3ZlcmhlYWQsIG1heF9vZmZzZXQKLSAgICAgICAgKQotCi0gICAgICAgIGlm
IGZyYW1lIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZnJhbWVfdHlwZSA9IFF1aWNGcmFtZVR5
cGUuU1RSRUFNX0JBU0UgfCAyICAjIGxlbmd0aAotICAgICAgICAgICAgaWYgZnJhbWUub2Zmc2V0
OgotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGUgfD0gNAotICAgICAgICAgICAgaWYgZnJhbWUu
ZmluOgotICAgICAgICAgICAgICAgIGZyYW1lX3R5cGUgfD0gMQotICAgICAgICAgICAgYnVmID0g
YnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAgICAgICAgICBmcmFtZV90eXBlLAotICAgICAg
ICAgICAgICAgIGNhcGFjaXR5PWZyYW1lX292ZXJoZWFkLAotICAgICAgICAgICAgICAgIGhhbmRs
ZXI9c3RyZWFtLm9uX2RhdGFfZGVsaXZlcnksCi0gICAgICAgICAgICAgICAgaGFuZGxlcl9hcmdz
PShmcmFtZS5vZmZzZXQsIGZyYW1lLm9mZnNldCArIGxlbihmcmFtZS5kYXRhKSksCi0gICAgICAg
ICAgICApCi0gICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihzdHJlYW0uc3RyZWFtX2lkKQot
ICAgICAgICAgICAgaWYgZnJhbWUub2Zmc2V0OgotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3Vp
bnRfdmFyKGZyYW1lLm9mZnNldCkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQxNihsZW4oZnJh
bWUuZGF0YSkgfCAweDQwMDApCi0gICAgICAgICAgICBidWYucHVzaF9ieXRlcyhmcmFtZS5kYXRh
KQotCi0gICAgICAgICAgICAjIGxvZyBmcmFtZQotICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19s
b2dnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9m
cmFtZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNv
ZGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUsIHN0cmVhbV9p
ZD1zdHJlYW0uc3RyZWFtX2lkCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgIHJldHVybiBzdHJlYW0uX3NlbmRfaGlnaGVzdCAtIHByZXZpb3Vz
X3NlbmRfaGlnaGVzdAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIDAKLQotICAg
IGRlZiBfd3JpdGVfc3RyZWFtX2xpbWl0cygKLSAgICAgICAgc2VsZiwgYnVpbGRlcjogUXVpY1Bh
Y2tldEJ1aWxkZXIsIHNwYWNlOiBRdWljUGFja2V0U3BhY2UsIHN0cmVhbTogUXVpY1N0cmVhbQot
ICAgICkgLT4gTm9uZToKLSAgICAgICAgIiIiCi0gICAgICAgIFJhaXNlIE1BWF9TVFJFQU1fREFU
QSBpZiBuZWVkZWQuCi0KLSAgICAgICAgVGhlIG9ubHkgY2FzZSB3aGVyZSBgc3RyZWFtLm1heF9z
dHJlYW1fZGF0YV9sb2NhbGAgaXMgemVybyBpcyBmb3IKLSAgICAgICAgbG9jYWxseSBjcmVhdGVk
IHVuaWRpcmVjdGlvbmFsIHN0cmVhbXMuIFdlIHNraXAgc3VjaCBzdHJlYW1zIHRvIGF2b2lkCi0g
ICAgICAgIHNwdXJpb3VzIGxvZ2dpbmcuCi0gICAgICAgICIiIgotICAgICAgICBpZiAoCi0gICAg
ICAgICAgICBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsCi0gICAgICAgICAgICBhbmQgc3Ry
ZWFtLl9yZWN2X2hpZ2hlc3QgKiAyID4gc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbAotICAg
ICAgICApOgotICAgICAgICAgICAgc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbCAqPSAyCi0g
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgIlN0cmVhbSAl
ZCBsb2NhbCBtYXhfc3RyZWFtX2RhdGEgcmFpc2VkIHRvICVkIiwKLSAgICAgICAgICAgICAgICBz
dHJlYW0uc3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFf
bG9jYWwsCi0gICAgICAgICAgICApCi0gICAgICAgIGlmIHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFf
bG9jYWxfc2VudCAhPSBzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsOgotICAgICAgICAgICAg
YnVmID0gYnVpbGRlci5zdGFydF9mcmFtZSgKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBl
Lk1BWF9TVFJFQU1fREFUQSwKLSAgICAgICAgICAgICAgICBjYXBhY2l0eT1NQVhfU1RSRUFNX0RB
VEFfRlJBTUVfQ0FQQUNJVFksCi0gICAgICAgICAgICAgICAgaGFuZGxlcj1zZWxmLl9vbl9tYXhf
c3RyZWFtX2RhdGFfZGVsaXZlcnksCi0gICAgICAgICAgICAgICAgaGFuZGxlcl9hcmdzPShzdHJl
YW0sKSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHN0cmVh
bS5zdHJlYW1faWQpCi0gICAgICAgICAgICBidWYucHVzaF91aW50X3ZhcihzdHJlYW0ubWF4X3N0
cmVhbV9kYXRhX2xvY2FsKQotICAgICAgICAgICAgc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2Nh
bF9zZW50ID0gc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbAotCi0gICAgICAgICAgICAjIGxv
ZyBmcmFtZQotICAgICAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICAgICAgYnVpbGRlci5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5kKAotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9xdWljX2xvZ2dlci5lbmNvZGVfbWF4X3N0cmVhbV9kYXRhX2Zy
YW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bT1zdHJlYW0ubWF4X3N0cmVhbV9k
YXRhX2xvY2FsLCBzdHJlYW1faWQ9c3RyZWFtLnN0cmVhbV9pZAotICAgICAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAgZGVmIF93cml0ZV9zdHJlYW1zX2Jsb2NrZWRf
ZnJhbWUoCi0gICAgICAgIHNlbGYsIGJ1aWxkZXI6IFF1aWNQYWNrZXRCdWlsZGVyLCBmcmFtZV90
eXBlOiBRdWljRnJhbWVUeXBlLCBsaW1pdDogaW50Ci0gICAgKSAtPiBOb25lOgotICAgICAgICBi
dWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKGZyYW1lX3R5cGUsIGNhcGFjaXR5PVNUUkVBTVNfQkxP
Q0tFRF9DQVBBQ0lUWSkKLSAgICAgICAgYnVmLnB1c2hfdWludF92YXIobGltaXQpCi0KLSAgICAg
ICAgIyBsb2cgZnJhbWUKLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBidWlsZGVyLnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAg
ICAgICAgICAgc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3N0cmVhbXNfYmxvY2tlZF9mcmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgaXNfdW5pZGlyZWN0aW9uYWw9ZnJhbWVfdHlwZSA9PSBRdWlj
RnJhbWVUeXBlLlNUUkVBTVNfQkxPQ0tFRF9VTkksCi0gICAgICAgICAgICAgICAgICAgIGxpbWl0
PWxpbWl0LAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2NyeXB0by5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMv
YWlvcXVpYy9xdWljL2NyeXB0by5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFj
YjMwZWVkYThmMWM3YzYwNmI5MDRiYTc3MjcxM2QzNTg3MzRiMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVp
Yy9jcnlwdG8ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxOTYgKzAsMCBAQAotaW1wb3J0IGJpbmFz
Y2lpCi1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFR1cGxlCi0KLWZyb20gLi5fY3J5cHRv
IGltcG9ydCBBRUFELCBDcnlwdG9FcnJvciwgSGVhZGVyUHJvdGVjdGlvbgotZnJvbSAuLnRscyBp
bXBvcnQgQ2lwaGVyU3VpdGUsIGNpcGhlcl9zdWl0ZV9oYXNoLCBoa2RmX2V4cGFuZF9sYWJlbCwg
aGtkZl9leHRyYWN0Ci1mcm9tIC5wYWNrZXQgaW1wb3J0IGRlY29kZV9wYWNrZXRfbnVtYmVyLCBp
c19sb25nX2hlYWRlcgotCi1DSVBIRVJfU1VJVEVTID0gewotICAgIENpcGhlclN1aXRlLkFFU18x
MjhfR0NNX1NIQTI1NjogKGIiYWVzLTEyOC1lY2IiLCBiImFlcy0xMjgtZ2NtIiksCi0gICAgQ2lw
aGVyU3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0OiAoYiJhZXMtMjU2LWVjYiIsIGIiYWVzLTI1Ni1n
Y20iKSwKLSAgICBDaXBoZXJTdWl0ZS5DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTY6IChiImNoYWNo
YTIwIiwgYiJjaGFjaGEyMC1wb2x5MTMwNSIpLAotfQotSU5JVElBTF9DSVBIRVJfU1VJVEUgPSBD
aXBoZXJTdWl0ZS5BRVNfMTI4X0dDTV9TSEEyNTYKLUlOSVRJQUxfU0FMVCA9IGJpbmFzY2lpLnVu
aGV4bGlmeSgiYzNlZWY3MTJjNzJlYmI1YTExYTdkMjQzMmJiNDYzNjViZWY5ZjUwMiIpCi1TQU1Q
TEVfU0laRSA9IDE2Ci0KLQotY2xhc3MgS2V5VW5hdmFpbGFibGVFcnJvcihDcnlwdG9FcnJvcik6
Ci0gICAgcGFzcwotCi0KLWRlZiBkZXJpdmVfa2V5X2l2X2hwKAotICAgIGNpcGhlcl9zdWl0ZTog
Q2lwaGVyU3VpdGUsIHNlY3JldDogYnl0ZXMKLSkgLT4gVHVwbGVbYnl0ZXMsIGJ5dGVzLCBieXRl
c106Ci0gICAgYWxnb3JpdGhtID0gY2lwaGVyX3N1aXRlX2hhc2goY2lwaGVyX3N1aXRlKQotICAg
IGlmIGNpcGhlcl9zdWl0ZSBpbiBbCi0gICAgICAgIENpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NI
QTM4NCwKLSAgICAgICAgQ2lwaGVyU3VpdGUuQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LAotICAg
IF06Ci0gICAgICAgIGtleV9zaXplID0gMzIKLSAgICBlbHNlOgotICAgICAgICBrZXlfc2l6ZSA9
IDE2Ci0gICAgcmV0dXJuICgKLSAgICAgICAgaGtkZl9leHBhbmRfbGFiZWwoYWxnb3JpdGhtLCBz
ZWNyZXQsIGIicXVpYyBrZXkiLCBiIiIsIGtleV9zaXplKSwKLSAgICAgICAgaGtkZl9leHBhbmRf
bGFiZWwoYWxnb3JpdGhtLCBzZWNyZXQsIGIicXVpYyBpdiIsIGIiIiwgMTIpLAotICAgICAgICBo
a2RmX2V4cGFuZF9sYWJlbChhbGdvcml0aG0sIHNlY3JldCwgYiJxdWljIGhwIiwgYiIiLCBrZXlf
c2l6ZSksCi0gICAgKQotCi0KLWNsYXNzIENyeXB0b0NvbnRleHQ6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGtleV9waGFzZTogaW50ID0gMCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5hZWFkOiBP
cHRpb25hbFtBRUFEXSA9IE5vbmUKLSAgICAgICAgc2VsZi5jaXBoZXJfc3VpdGU6IE9wdGlvbmFs
W0NpcGhlclN1aXRlXSA9IE5vbmUKLSAgICAgICAgc2VsZi5ocDogT3B0aW9uYWxbSGVhZGVyUHJv
dGVjdGlvbl0gPSBOb25lCi0gICAgICAgIHNlbGYua2V5X3BoYXNlID0ga2V5X3BoYXNlCi0gICAg
ICAgIHNlbGYuc2VjcmV0OiBPcHRpb25hbFtieXRlc10gPSBOb25lCi0gICAgICAgIHNlbGYudmVy
c2lvbjogT3B0aW9uYWxbaW50XSA9IE5vbmUKLQotICAgIGRlZiBkZWNyeXB0X3BhY2tldCgKLSAg
ICAgICAgc2VsZiwgcGFja2V0OiBieXRlcywgZW5jcnlwdGVkX29mZnNldDogaW50LCBleHBlY3Rl
ZF9wYWNrZXRfbnVtYmVyOiBpbnQKLSAgICApIC0+IFR1cGxlW2J5dGVzLCBieXRlcywgaW50LCBi
b29sXToKLSAgICAgICAgaWYgc2VsZi5hZWFkIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBL
ZXlVbmF2YWlsYWJsZUVycm9yKCJEZWNyeXB0aW9uIGtleSBpcyBub3QgYXZhaWxhYmxlIikKLQot
ICAgICAgICAjIGhlYWRlciBwcm90ZWN0aW9uCi0gICAgICAgIHBsYWluX2hlYWRlciwgcGFja2V0
X251bWJlciA9IHNlbGYuaHAucmVtb3ZlKHBhY2tldCwgZW5jcnlwdGVkX29mZnNldCkKLSAgICAg
ICAgZmlyc3RfYnl0ZSA9IHBsYWluX2hlYWRlclswXQotCi0gICAgICAgICMgcGFja2V0IG51bWJl
cgotICAgICAgICBwbl9sZW5ndGggPSAoZmlyc3RfYnl0ZSAmIDB4MDMpICsgMQotICAgICAgICBw
YWNrZXRfbnVtYmVyID0gZGVjb2RlX3BhY2tldF9udW1iZXIoCi0gICAgICAgICAgICBwYWNrZXRf
bnVtYmVyLCBwbl9sZW5ndGggKiA4LCBleHBlY3RlZF9wYWNrZXRfbnVtYmVyCi0gICAgICAgICkK
LQotICAgICAgICAjIGRldGVjdCBrZXkgcGhhc2UgY2hhbmdlCi0gICAgICAgIGNyeXB0byA9IHNl
bGYKLSAgICAgICAgaWYgbm90IGlzX2xvbmdfaGVhZGVyKGZpcnN0X2J5dGUpOgotICAgICAgICAg
ICAga2V5X3BoYXNlID0gKGZpcnN0X2J5dGUgJiA0KSA+PiAyCi0gICAgICAgICAgICBpZiBrZXlf
cGhhc2UgIT0gc2VsZi5rZXlfcGhhc2U6Ci0gICAgICAgICAgICAgICAgY3J5cHRvID0gbmV4dF9r
ZXlfcGhhc2Uoc2VsZikKLQotICAgICAgICAjIHBheWxvYWQgcHJvdGVjdGlvbgotICAgICAgICBw
YXlsb2FkID0gY3J5cHRvLmFlYWQuZGVjcnlwdCgKLSAgICAgICAgICAgIHBhY2tldFtsZW4ocGxh
aW5faGVhZGVyKSA6XSwgcGxhaW5faGVhZGVyLCBwYWNrZXRfbnVtYmVyCi0gICAgICAgICkKLQot
ICAgICAgICByZXR1cm4gcGxhaW5faGVhZGVyLCBwYXlsb2FkLCBwYWNrZXRfbnVtYmVyLCBjcnlw
dG8gIT0gc2VsZgotCi0gICAgZGVmIGVuY3J5cHRfcGFja2V0KAotICAgICAgICBzZWxmLCBwbGFp
bl9oZWFkZXI6IGJ5dGVzLCBwbGFpbl9wYXlsb2FkOiBieXRlcywgcGFja2V0X251bWJlcjogaW50
Ci0gICAgKSAtPiBieXRlczoKLSAgICAgICAgYXNzZXJ0IHNlbGYuaXNfdmFsaWQoKSwgIkVuY3J5
cHRpb24ga2V5IGlzIG5vdCBhdmFpbGFibGUiCi0KLSAgICAgICAgIyBwYXlsb2FkIHByb3RlY3Rp
b24KLSAgICAgICAgcHJvdGVjdGVkX3BheWxvYWQgPSBzZWxmLmFlYWQuZW5jcnlwdCgKLSAgICAg
ICAgICAgIHBsYWluX3BheWxvYWQsIHBsYWluX2hlYWRlciwgcGFja2V0X251bWJlcgotICAgICAg
ICApCi0KLSAgICAgICAgIyBoZWFkZXIgcHJvdGVjdGlvbgotICAgICAgICByZXR1cm4gc2VsZi5o
cC5hcHBseShwbGFpbl9oZWFkZXIsIHByb3RlY3RlZF9wYXlsb2FkKQotCi0gICAgZGVmIGlzX3Zh
bGlkKHNlbGYpIC0+IGJvb2w6Ci0gICAgICAgIHJldHVybiBzZWxmLmFlYWQgaXMgbm90IE5vbmUK
LQotICAgIGRlZiBzZXR1cChzZWxmLCBjaXBoZXJfc3VpdGU6IENpcGhlclN1aXRlLCBzZWNyZXQ6
IGJ5dGVzLCB2ZXJzaW9uOiBpbnQpIC0+IE5vbmU6Ci0gICAgICAgIGhwX2NpcGhlcl9uYW1lLCBh
ZWFkX2NpcGhlcl9uYW1lID0gQ0lQSEVSX1NVSVRFU1tjaXBoZXJfc3VpdGVdCi0KLSAgICAgICAg
a2V5LCBpdiwgaHAgPSBkZXJpdmVfa2V5X2l2X2hwKGNpcGhlcl9zdWl0ZSwgc2VjcmV0KQotICAg
ICAgICBzZWxmLmFlYWQgPSBBRUFEKGFlYWRfY2lwaGVyX25hbWUsIGtleSwgaXYpCi0gICAgICAg
IHNlbGYuY2lwaGVyX3N1aXRlID0gY2lwaGVyX3N1aXRlCi0gICAgICAgIHNlbGYuaHAgPSBIZWFk
ZXJQcm90ZWN0aW9uKGhwX2NpcGhlcl9uYW1lLCBocCkKLSAgICAgICAgc2VsZi5zZWNyZXQgPSBz
ZWNyZXQKLSAgICAgICAgc2VsZi52ZXJzaW9uID0gdmVyc2lvbgotCi0gICAgZGVmIHRlYXJkb3du
KHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuYWVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5j
aXBoZXJfc3VpdGUgPSBOb25lCi0gICAgICAgIHNlbGYuaHAgPSBOb25lCi0gICAgICAgIHNlbGYu
c2VjcmV0ID0gTm9uZQotCi0KLWRlZiBhcHBseV9rZXlfcGhhc2Uoc2VsZjogQ3J5cHRvQ29udGV4
dCwgY3J5cHRvOiBDcnlwdG9Db250ZXh0KSAtPiBOb25lOgotICAgIHNlbGYuYWVhZCA9IGNyeXB0
by5hZWFkCi0gICAgc2VsZi5rZXlfcGhhc2UgPSBjcnlwdG8ua2V5X3BoYXNlCi0gICAgc2VsZi5z
ZWNyZXQgPSBjcnlwdG8uc2VjcmV0Ci0KLQotZGVmIG5leHRfa2V5X3BoYXNlKHNlbGY6IENyeXB0
b0NvbnRleHQpIC0+IENyeXB0b0NvbnRleHQ6Ci0gICAgYWxnb3JpdGhtID0gY2lwaGVyX3N1aXRl
X2hhc2goc2VsZi5jaXBoZXJfc3VpdGUpCi0KLSAgICBjcnlwdG8gPSBDcnlwdG9Db250ZXh0KGtl
eV9waGFzZT1pbnQobm90IHNlbGYua2V5X3BoYXNlKSkKLSAgICBjcnlwdG8uc2V0dXAoCi0gICAg
ICAgIGNpcGhlcl9zdWl0ZT1zZWxmLmNpcGhlcl9zdWl0ZSwKLSAgICAgICAgc2VjcmV0PWhrZGZf
ZXhwYW5kX2xhYmVsKAotICAgICAgICAgICAgYWxnb3JpdGhtLCBzZWxmLnNlY3JldCwgYiJxdWlj
IGt1IiwgYiIiLCBhbGdvcml0aG0uZGlnZXN0X3NpemUKLSAgICAgICAgKSwKLSAgICAgICAgdmVy
c2lvbj1zZWxmLnZlcnNpb24sCi0gICAgKQotICAgIHJldHVybiBjcnlwdG8KLQotCi1jbGFzcyBD
cnlwdG9QYWlyOgotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxm
LmFlYWRfdGFnX3NpemUgPSAxNgotICAgICAgICBzZWxmLnJlY3YgPSBDcnlwdG9Db250ZXh0KCkK
LSAgICAgICAgc2VsZi5zZW5kID0gQ3J5cHRvQ29udGV4dCgpCi0gICAgICAgIHNlbGYuX3VwZGF0
ZV9rZXlfcmVxdWVzdGVkID0gRmFsc2UKLQotICAgIGRlZiBkZWNyeXB0X3BhY2tldCgKLSAgICAg
ICAgc2VsZiwgcGFja2V0OiBieXRlcywgZW5jcnlwdGVkX29mZnNldDogaW50LCBleHBlY3RlZF9w
YWNrZXRfbnVtYmVyOiBpbnQKLSAgICApIC0+IFR1cGxlW2J5dGVzLCBieXRlcywgaW50XToKLSAg
ICAgICAgcGxhaW5faGVhZGVyLCBwYXlsb2FkLCBwYWNrZXRfbnVtYmVyLCB1cGRhdGVfa2V5ID0g
c2VsZi5yZWN2LmRlY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgcGFja2V0LCBlbmNyeXB0ZWRf
b2Zmc2V0LCBleHBlY3RlZF9wYWNrZXRfbnVtYmVyCi0gICAgICAgICkKLSAgICAgICAgaWYgdXBk
YXRlX2tleToKLSAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9rZXkoKQotICAgICAgICByZXR1cm4g
cGxhaW5faGVhZGVyLCBwYXlsb2FkLCBwYWNrZXRfbnVtYmVyCi0KLSAgICBkZWYgZW5jcnlwdF9w
YWNrZXQoCi0gICAgICAgIHNlbGYsIHBsYWluX2hlYWRlcjogYnl0ZXMsIHBsYWluX3BheWxvYWQ6
IGJ5dGVzLCBwYWNrZXRfbnVtYmVyOiBpbnQKLSAgICApIC0+IGJ5dGVzOgotICAgICAgICBpZiBz
ZWxmLl91cGRhdGVfa2V5X3JlcXVlc3RlZDoKLSAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9rZXko
KQotICAgICAgICByZXR1cm4gc2VsZi5zZW5kLmVuY3J5cHRfcGFja2V0KHBsYWluX2hlYWRlciwg
cGxhaW5fcGF5bG9hZCwgcGFja2V0X251bWJlcikKLQotICAgIGRlZiBzZXR1cF9pbml0aWFsKHNl
bGYsIGNpZDogYnl0ZXMsIGlzX2NsaWVudDogYm9vbCwgdmVyc2lvbjogaW50KSAtPiBOb25lOgot
ICAgICAgICBpZiBpc19jbGllbnQ6Ci0gICAgICAgICAgICByZWN2X2xhYmVsLCBzZW5kX2xhYmVs
ID0gYiJzZXJ2ZXIgaW4iLCBiImNsaWVudCBpbiIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJlY3ZfbGFiZWwsIHNlbmRfbGFiZWwgPSBiImNsaWVudCBpbiIsIGIic2VydmVyIGluIgotCi0g
ICAgICAgIGFsZ29yaXRobSA9IGNpcGhlcl9zdWl0ZV9oYXNoKElOSVRJQUxfQ0lQSEVSX1NVSVRF
KQotICAgICAgICBpbml0aWFsX3NlY3JldCA9IGhrZGZfZXh0cmFjdChhbGdvcml0aG0sIElOSVRJ
QUxfU0FMVCwgY2lkKQotICAgICAgICBzZWxmLnJlY3Yuc2V0dXAoCi0gICAgICAgICAgICBjaXBo
ZXJfc3VpdGU9SU5JVElBTF9DSVBIRVJfU1VJVEUsCi0gICAgICAgICAgICBzZWNyZXQ9aGtkZl9l
eHBhbmRfbGFiZWwoCi0gICAgICAgICAgICAgICAgYWxnb3JpdGhtLCBpbml0aWFsX3NlY3JldCwg
cmVjdl9sYWJlbCwgYiIiLCBhbGdvcml0aG0uZGlnZXN0X3NpemUKLSAgICAgICAgICAgICksCi0g
ICAgICAgICAgICB2ZXJzaW9uPXZlcnNpb24sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5zZW5k
LnNldHVwKAotICAgICAgICAgICAgY2lwaGVyX3N1aXRlPUlOSVRJQUxfQ0lQSEVSX1NVSVRFLAot
ICAgICAgICAgICAgc2VjcmV0PWhrZGZfZXhwYW5kX2xhYmVsKAotICAgICAgICAgICAgICAgIGFs
Z29yaXRobSwgaW5pdGlhbF9zZWNyZXQsIHNlbmRfbGFiZWwsIGIiIiwgYWxnb3JpdGhtLmRpZ2Vz
dF9zaXplCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgdmVyc2lvbj12ZXJzaW9uLAotICAg
ICAgICApCi0KLSAgICBkZWYgdGVhcmRvd24oc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2VsZi5y
ZWN2LnRlYXJkb3duKCkKLSAgICAgICAgc2VsZi5zZW5kLnRlYXJkb3duKCkKLQotICAgIGRlZiB1
cGRhdGVfa2V5KHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuX3VwZGF0ZV9rZXlfcmVxdWVz
dGVkID0gVHJ1ZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGtleV9waGFzZShzZWxmKSAtPiBp
bnQ6Ci0gICAgICAgIGlmIHNlbGYuX3VwZGF0ZV9rZXlfcmVxdWVzdGVkOgotICAgICAgICAgICAg
cmV0dXJuIGludChub3Qgc2VsZi5yZWN2LmtleV9waGFzZSkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmLnJlY3Yua2V5X3BoYXNlCi0KLSAgICBkZWYgX3VwZGF0ZV9rZXko
c2VsZikgLT4gTm9uZToKLSAgICAgICAgYXBwbHlfa2V5X3BoYXNlKHNlbGYucmVjdiwgbmV4dF9r
ZXlfcGhhc2Uoc2VsZi5yZWN2KSkKLSAgICAgICAgYXBwbHlfa2V5X3BoYXNlKHNlbGYuc2VuZCwg
bmV4dF9rZXlfcGhhc2Uoc2VsZi5zZW5kKSkKLSAgICAgICAgc2VsZi5fdXBkYXRlX2tleV9yZXF1
ZXN0ZWQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMv
ZXZlbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvZXZlbnRzLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDMwNjkzOTM2YzE4ODE2YWUxMTgzMjZkMmEyMjUx
Mjk1MjQ1ZTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2V2ZW50cy5weQorKysgL2Rldi9udWxsCkBA
IC0xLDExMiArMCwwIEBACi1mcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBkYXRhY2xhc3MKLWZyb20g
dHlwaW5nIGltcG9ydCBPcHRpb25hbAotCi0KLWNsYXNzIFF1aWNFdmVudDoKLSAgICAiIiIKLSAg
ICBCYXNlIGNsYXNzIGZvciBRVUlDIGV2ZW50cy4KLSAgICAiIiIKLQotICAgIHBhc3MKLQotCi1A
ZGF0YWNsYXNzCi1jbGFzcyBDb25uZWN0aW9uSWRJc3N1ZWQoUXVpY0V2ZW50KToKLSAgICBjb25u
ZWN0aW9uX2lkOiBieXRlcwotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIENvbm5lY3Rpb25JZFJldGly
ZWQoUXVpY0V2ZW50KToKLSAgICBjb25uZWN0aW9uX2lkOiBieXRlcwotCi0KLUBkYXRhY2xhc3MK
LWNsYXNzIENvbm5lY3Rpb25UZXJtaW5hdGVkKFF1aWNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhl
IENvbm5lY3Rpb25UZXJtaW5hdGVkIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIFFVSUMgY29ubmVj
dGlvbiBpcyB0ZXJtaW5hdGVkLgotICAgICIiIgotCi0gICAgZXJyb3JfY29kZTogaW50Ci0gICAg
IlRoZSBlcnJvciBjb2RlIHdoaWNoIHdhcyBzcGVjaWZpZWQgd2hlbiBjbG9zaW5nIHRoZSBjb25u
ZWN0aW9uLiIKLQotICAgIGZyYW1lX3R5cGU6IE9wdGlvbmFsW2ludF0KLSAgICAiVGhlIGZyYW1l
IHR5cGUgd2hpY2ggY2F1c2VkIHRoZSBjb25uZWN0aW9uIHRvIGJlIGNsb3NlZCwgb3IgYE5vbmVg
LiIKLQotICAgIHJlYXNvbl9waHJhc2U6IHN0cgotICAgICJUaGUgaHVtYW4tcmVhZGFibGUgcmVh
c29uIGZvciB3aGljaCB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkLiIKLQotCi1AZGF0YWNsYXNz
Ci1jbGFzcyBEYXRhZ3JhbUZyYW1lUmVjZWl2ZWQoUXVpY0V2ZW50KToKLSAgICAiIiIKLSAgICBU
aGUgRGF0YWdyYW1GcmFtZVJlY2VpdmVkIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBEQVRBR1JBTSBm
cmFtZSBpcyByZWNlaXZlZC4KLSAgICAiIiIKLQotICAgIGRhdGE6IGJ5dGVzCi0gICAgIlRoZSBk
YXRhIHdoaWNoIHdhcyByZWNlaXZlZC4iCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgSGFuZHNoYWtl
Q29tcGxldGVkKFF1aWNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhlIEhhbmRzaGFrZUNvbXBsZXRl
ZCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBUTFMgaGFuZHNoYWtlIGNvbXBsZXRlcy4KLSAgICAi
IiIKLQotICAgIGFscG5fcHJvdG9jb2w6IE9wdGlvbmFsW3N0cl0KLSAgICAiVGhlIHByb3RvY29s
IHdoaWNoIHdhcyBuZWdvdGlhdGVkIHVzaW5nIEFMUE4sIG9yIGBOb25lYC4iCi0KLSAgICBlYXJs
eV9kYXRhX2FjY2VwdGVkOiBib29sCi0gICAgIldoZXRoZXIgZWFybHkgKDAtUlRUKSBkYXRhIHdh
cyBhY2NlcHRlZCBieSB0aGUgcmVtb3RlIHBlZXIuIgotCi0gICAgc2Vzc2lvbl9yZXN1bWVkOiBi
b29sCi0gICAgIldoZXRoZXIgYSBUTFMgc2Vzc2lvbiB3YXMgcmVzdW1lZC4iCi0KLQotQGRhdGFj
bGFzcwotY2xhc3MgUGluZ0Fja25vd2xlZGdlZChRdWljRXZlbnQpOgotICAgICIiIgotICAgIFRo
ZSBQaW5nQWNrbm93bGVkZ2VkIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBQSU5HIGZyYW1lIGlzIGFj
a25vd2xlZGdlZC4KLSAgICAiIiIKLQotICAgIHVpZDogaW50Ci0gICAgIlRoZSB1bmlxdWUgSUQg
b2YgdGhlIFBJTkcuIgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIFByb3RvY29sTmVnb3RpYXRlZChR
dWljRXZlbnQpOgotICAgICIiIgotICAgIFRoZSBQcm90b2NvbE5lZ290aWF0ZWQgZXZlbnQgaXMg
ZmlyZWQgd2hlbiBBTFBOIG5lZ290aWF0aW9uIGNvbXBsZXRlcy4KLSAgICAiIiIKLQotICAgIGFs
cG5fcHJvdG9jb2w6IE9wdGlvbmFsW3N0cl0KLSAgICAiVGhlIHByb3RvY29sIHdoaWNoIHdhcyBu
ZWdvdGlhdGVkIHVzaW5nIEFMUE4sIG9yIGBOb25lYC4iCi0KLQotQGRhdGFjbGFzcwotY2xhc3Mg
U3RyZWFtRGF0YVJlY2VpdmVkKFF1aWNFdmVudCk6Ci0gICAgIiIiCi0gICAgVGhlIFN0cmVhbURh
dGFSZWNlaXZlZCBldmVudCBpcyBmaXJlZCB3aGVuZXZlciBkYXRhIGlzIHJlY2VpdmVkIG9uIGEK
LSAgICBzdHJlYW0uCi0gICAgIiIiCi0KLSAgICBkYXRhOiBieXRlcwotICAgICJUaGUgZGF0YSB3
aGljaCB3YXMgcmVjZWl2ZWQuIgotCi0gICAgZW5kX3N0cmVhbTogYm9vbAotICAgICJXaGV0aGVy
IHRoZSBTVFJFQU0gZnJhbWUgaGFkIHRoZSBGSU4gYml0IHNldC4iCi0KLSAgICBzdHJlYW1faWQ6
IGludAotICAgICJUaGUgSUQgb2YgdGhlIHN0cmVhbSB0aGUgZGF0YSB3YXMgcmVjZWl2ZWQgZm9y
LiIKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBTdHJlYW1SZXNldChRdWljRXZlbnQpOgotICAgICIi
IgotICAgIFRoZSBTdHJlYW1SZXNldCBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSByZW1vdGUgcGVl
ciByZXNldHMgYSBzdHJlYW0uCi0gICAgIiIiCi0KLSAgICBlcnJvcl9jb2RlOiBpbnQKLSAgICAi
VGhlIGVycm9yIGNvZGUgdGhhdCB0cmlnZ2VyZWQgdGhlIHJlc2V0LiIKLQotICAgIHN0cmVhbV9p
ZDogaW50Ci0gICAgIlRoZSBJRCBvZiB0aGUgc3RyZWFtIHRoYXQgd2FzIHJlc2V0LiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2xvZ2dlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9zcmMvYWlvcXVpYy9xdWljL2xvZ2dlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYzQ5NzViZDU5MmUxYzA4NzgyNWNkOTVjNjAzYzY5MDZhNzQzZGI4MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvcXVpYy9sb2dnZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjYgKzAsMCBAQAotaW1w
b3J0IGJpbmFzY2lpCi1pbXBvcnQgdGltZQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUK
LWZyb20gdHlwaW5nIGltcG9ydCBBbnksIERlcXVlLCBEaWN0LCBMaXN0LCBPcHRpb25hbCwgVHVw
bGUKLQotZnJvbSAucGFja2V0IGltcG9ydCAoCi0gICAgUEFDS0VUX1RZUEVfSEFORFNIQUtFLAot
ICAgIFBBQ0tFVF9UWVBFX0lOSVRJQUwsCi0gICAgUEFDS0VUX1RZUEVfTUFTSywKLSAgICBQQUNL
RVRfVFlQRV9PTkVfUlRULAotICAgIFBBQ0tFVF9UWVBFX1JFVFJZLAotICAgIFBBQ0tFVF9UWVBF
X1pFUk9fUlRULAotICAgIFF1aWNTdHJlYW1GcmFtZSwKLSAgICBRdWljVHJhbnNwb3J0UGFyYW1l
dGVycywKLSkKLWZyb20gLnJhbmdlc2V0IGltcG9ydCBSYW5nZVNldAotCi1QQUNLRVRfVFlQRV9O
QU1FUyA9IHsKLSAgICBQQUNLRVRfVFlQRV9JTklUSUFMOiAiaW5pdGlhbCIsCi0gICAgUEFDS0VU
X1RZUEVfSEFORFNIQUtFOiAiaGFuZHNoYWtlIiwKLSAgICBQQUNLRVRfVFlQRV9aRVJPX1JUVDog
IjBSVFQiLAotICAgIFBBQ0tFVF9UWVBFX09ORV9SVFQ6ICIxUlRUIiwKLSAgICBQQUNLRVRfVFlQ
RV9SRVRSWTogInJldHJ5IiwKLX0KLQotCi1kZWYgaGV4ZHVtcChkYXRhOiBieXRlcykgLT4gc3Ry
OgotICAgIHJldHVybiBiaW5hc2NpaS5oZXhsaWZ5KGRhdGEpLmRlY29kZSgiYXNjaWkiKQotCi0K
LWNsYXNzIFF1aWNMb2dnZXJUcmFjZToKLSAgICAiIiIKLSAgICBBIFFVSUMgZXZlbnQgdHJhY2Uu
Ci0KLSAgICBFdmVudHMgYXJlIGxvZ2dlZCBpbiB0aGUgZm9ybWF0IGRlZmluZWQgYnkgcWxvZyBk
cmFmdC0wMS4KLQotICAgIFNlZTogaHR0cHM6Ly9xdWljbG9nLmdpdGh1Yi5pby9pbnRlcm5ldC1k
cmFmdHMvZHJhZnQtbWFyeC1xbG9nLWV2ZW50LWRlZmluaXRpb25zLXF1aWMtaDMuaHRtbAotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICosIGlzX2NsaWVudDogYm9vbCwgb2RjaWQ6
IGJ5dGVzKSAtPiBOb25lOgotICAgICAgICBzZWxmLl9vZGNpZCA9IG9kY2lkCi0gICAgICAgIHNl
bGYuX2V2ZW50czogRGVxdWVbVHVwbGVbZmxvYXQsIHN0ciwgc3RyLCBEaWN0W3N0ciwgQW55XV1d
ID0gZGVxdWUoKQotICAgICAgICBzZWxmLl92YW50YWdlX3BvaW50ID0gewotICAgICAgICAgICAg
Im5hbWUiOiAiYWlvcXVpYyIsCi0gICAgICAgICAgICAidHlwZSI6ICJjbGllbnQiIGlmIGlzX2Ns
aWVudCBlbHNlICJzZXJ2ZXIiLAotICAgICAgICB9Ci0KLSAgICBkZWYgZW5jb2RlX2Fja19mcmFt
ZShzZWxmLCByYW5nZXM6IFJhbmdlU2V0LCBkZWxheTogZmxvYXQpIC0+IERpY3Q6Ci0gICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAiYWNrX2RlbGF5Ijogc3RyKHNlbGYuZW5jb2RlX3RpbWUo
ZGVsYXkpKSwKLSAgICAgICAgICAgICJhY2tlZF9yYW5nZXMiOiBbW3N0cih4LnN0YXJ0KSwgc3Ry
KHguc3RvcCAtIDEpXSBmb3IgeCBpbiByYW5nZXNdLAotICAgICAgICAgICAgImZyYW1lX3R5cGUi
OiAiYWNrIiwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV9jb25uZWN0aW9uX2Nsb3NlX2Zy
YW1lKAotICAgICAgICBzZWxmLCBlcnJvcl9jb2RlOiBpbnQsIGZyYW1lX3R5cGU6IE9wdGlvbmFs
W2ludF0sIHJlYXNvbl9waHJhc2U6IHN0cgotICAgICkgLT4gRGljdDoKLSAgICAgICAgYXR0cnMg
PSB7Ci0gICAgICAgICAgICAiZXJyb3JfY29kZSI6IGVycm9yX2NvZGUsCi0gICAgICAgICAgICAi
ZXJyb3Jfc3BhY2UiOiAiYXBwbGljYXRpb24iIGlmIGZyYW1lX3R5cGUgaXMgTm9uZSBlbHNlICJ0
cmFuc3BvcnQiLAotICAgICAgICAgICAgImZyYW1lX3R5cGUiOiAiY29ubmVjdGlvbl9jbG9zZSIs
Ci0gICAgICAgICAgICAicmF3X2Vycm9yX2NvZGUiOiBlcnJvcl9jb2RlLAotICAgICAgICAgICAg
InJlYXNvbiI6IHJlYXNvbl9waHJhc2UsCi0gICAgICAgIH0KLSAgICAgICAgaWYgZnJhbWVfdHlw
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGF0dHJzWyJ0cmlnZ2VyX2ZyYW1lX3R5cGUiXSA9
IGZyYW1lX3R5cGUKLQotICAgICAgICByZXR1cm4gYXR0cnMKLQotICAgIGRlZiBlbmNvZGVfY3J5
cHRvX2ZyYW1lKHNlbGYsIGZyYW1lOiBRdWljU3RyZWFtRnJhbWUpIC0+IERpY3Q6Ci0gICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAiZnJhbWVfdHlwZSI6ICJjcnlwdG8iLAotICAgICAgICAg
ICAgImxlbmd0aCI6IGxlbihmcmFtZS5kYXRhKSwKLSAgICAgICAgICAgICJvZmZzZXQiOiBzdHIo
ZnJhbWUub2Zmc2V0KSwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV9kYXRhX2Jsb2NrZWRf
ZnJhbWUoc2VsZiwgbGltaXQ6IGludCkgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIHsiZnJhbWVf
dHlwZSI6ICJkYXRhX2Jsb2NrZWQiLCAibGltaXQiOiBzdHIobGltaXQpfQotCi0gICAgZGVmIGVu
Y29kZV9kYXRhZ3JhbV9mcmFtZShzZWxmLCBsZW5ndGg6IGludCkgLT4gRGljdDoKLSAgICAgICAg
cmV0dXJuIHsiZnJhbWVfdHlwZSI6ICJkYXRhZ3JhbSIsICJsZW5ndGgiOiBsZW5ndGh9Ci0KLSAg
ICBkZWYgZW5jb2RlX2hhbmRzaGFrZV9kb25lX2ZyYW1lKHNlbGYpIC0+IERpY3Q6Ci0gICAgICAg
IHJldHVybiB7ImZyYW1lX3R5cGUiOiAiaGFuZHNoYWtlX2RvbmUifQotCi0gICAgZGVmIGVuY29k
ZV9tYXhfZGF0YV9mcmFtZShzZWxmLCBtYXhpbXVtOiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJl
dHVybiB7ImZyYW1lX3R5cGUiOiAibWF4X2RhdGEiLCAibWF4aW11bSI6IHN0cihtYXhpbXVtKX0K
LQotICAgIGRlZiBlbmNvZGVfbWF4X3N0cmVhbV9kYXRhX2ZyYW1lKHNlbGYsIG1heGltdW06IGlu
dCwgc3RyZWFtX2lkOiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAg
ICAiZnJhbWVfdHlwZSI6ICJtYXhfc3RyZWFtX2RhdGEiLAotICAgICAgICAgICAgIm1heGltdW0i
OiBzdHIobWF4aW11bSksCi0gICAgICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVhbV9pZCks
Ci0gICAgICAgIH0KLQotICAgIGRlZiBlbmNvZGVfbWF4X3N0cmVhbXNfZnJhbWUoc2VsZiwgaXNf
dW5pZGlyZWN0aW9uYWw6IGJvb2wsIG1heGltdW06IGludCkgLT4gRGljdDoKLSAgICAgICAgcmV0
dXJuIHsKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogIm1heF9zdHJlYW1zIiwKLSAgICAgICAg
ICAgICJtYXhpbXVtIjogc3RyKG1heGltdW0pLAotICAgICAgICAgICAgInN0cmVhbV90eXBlIjog
InVuaWRpcmVjdGlvbmFsIiBpZiBpc191bmlkaXJlY3Rpb25hbCBlbHNlICJiaWRpcmVjdGlvbmFs
IiwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV9uZXdfY29ubmVjdGlvbl9pZF9mcmFtZSgK
LSAgICAgICAgc2VsZiwKLSAgICAgICAgY29ubmVjdGlvbl9pZDogYnl0ZXMsCi0gICAgICAgIHJl
dGlyZV9wcmlvcl90bzogaW50LAotICAgICAgICBzZXF1ZW5jZV9udW1iZXI6IGludCwKLSAgICAg
ICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuOiBieXRlcywKLSAgICApIC0+IERpY3Q6Ci0gICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAiY29ubmVjdGlvbl9pZCI6IGhleGR1bXAoY29ubmVjdGlv
bl9pZCksCi0gICAgICAgICAgICAiZnJhbWVfdHlwZSI6ICJuZXdfY29ubmVjdGlvbl9pZCIsCi0g
ICAgICAgICAgICAibGVuZ3RoIjogbGVuKGNvbm5lY3Rpb25faWQpLAotICAgICAgICAgICAgInJl
c2V0X3Rva2VuIjogaGV4ZHVtcChzdGF0ZWxlc3NfcmVzZXRfdG9rZW4pLAotICAgICAgICAgICAg
InJldGlyZV9wcmlvcl90byI6IHN0cihyZXRpcmVfcHJpb3JfdG8pLAotICAgICAgICAgICAgInNl
cXVlbmNlX251bWJlciI6IHN0cihzZXF1ZW5jZV9udW1iZXIpLAotICAgICAgICB9Ci0KLSAgICBk
ZWYgZW5jb2RlX25ld190b2tlbl9mcmFtZShzZWxmLCB0b2tlbjogYnl0ZXMpIC0+IERpY3Q6Ci0g
ICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiZnJhbWVfdHlwZSI6ICJuZXdfdG9rZW4iLAot
ICAgICAgICAgICAgImxlbmd0aCI6IGxlbih0b2tlbiksCi0gICAgICAgICAgICAidG9rZW4iOiBo
ZXhkdW1wKHRva2VuKSwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV9wYWRkaW5nX2ZyYW1l
KHNlbGYpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7ImZyYW1lX3R5cGUiOiAicGFkZGluZyJ9
Ci0KLSAgICBkZWYgZW5jb2RlX3BhdGhfY2hhbGxlbmdlX2ZyYW1lKHNlbGYsIGRhdGE6IGJ5dGVz
KSAtPiBEaWN0OgotICAgICAgICByZXR1cm4geyJkYXRhIjogaGV4ZHVtcChkYXRhKSwgImZyYW1l
X3R5cGUiOiAicGF0aF9jaGFsbGVuZ2UifQotCi0gICAgZGVmIGVuY29kZV9wYXRoX3Jlc3BvbnNl
X2ZyYW1lKHNlbGYsIGRhdGE6IGJ5dGVzKSAtPiBEaWN0OgotICAgICAgICByZXR1cm4geyJkYXRh
IjogaGV4ZHVtcChkYXRhKSwgImZyYW1lX3R5cGUiOiAicGF0aF9yZXNwb25zZSJ9Ci0KLSAgICBk
ZWYgZW5jb2RlX3BpbmdfZnJhbWUoc2VsZikgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIHsiZnJh
bWVfdHlwZSI6ICJwaW5nIn0KLQotICAgIGRlZiBlbmNvZGVfcmVzZXRfc3RyZWFtX2ZyYW1lKAot
ICAgICAgICBzZWxmLCBlcnJvcl9jb2RlOiBpbnQsIGZpbmFsX3NpemU6IGludCwgc3RyZWFtX2lk
OiBpbnQKLSAgICApIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiZXJy
b3JfY29kZSI6IGVycm9yX2NvZGUsCi0gICAgICAgICAgICAiZmluYWxfc2l6ZSI6IHN0cihmaW5h
bF9zaXplKSwKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogInJlc2V0X3N0cmVhbSIsCi0gICAg
ICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVhbV9pZCksCi0gICAgICAgIH0KLQotICAgIGRl
ZiBlbmNvZGVfcmV0aXJlX2Nvbm5lY3Rpb25faWRfZnJhbWUoc2VsZiwgc2VxdWVuY2VfbnVtYmVy
OiBpbnQpIC0+IERpY3Q6Ci0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiZnJhbWVfdHlw
ZSI6ICJyZXRpcmVfY29ubmVjdGlvbl9pZCIsCi0gICAgICAgICAgICAic2VxdWVuY2VfbnVtYmVy
Ijogc3RyKHNlcXVlbmNlX251bWJlciksCi0gICAgICAgIH0KLQotICAgIGRlZiBlbmNvZGVfc3Ry
ZWFtX2RhdGFfYmxvY2tlZF9mcmFtZShzZWxmLCBsaW1pdDogaW50LCBzdHJlYW1faWQ6IGludCkg
LT4gRGljdDoKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogInN0
cmVhbV9kYXRhX2Jsb2NrZWQiLAotICAgICAgICAgICAgImxpbWl0Ijogc3RyKGxpbWl0KSwKLSAg
ICAgICAgICAgICJzdHJlYW1faWQiOiBzdHIoc3RyZWFtX2lkKSwKLSAgICAgICAgfQotCi0gICAg
ZGVmIGVuY29kZV9zdG9wX3NlbmRpbmdfZnJhbWUoc2VsZiwgZXJyb3JfY29kZTogaW50LCBzdHJl
YW1faWQ6IGludCkgLT4gRGljdDoKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJmcmFt
ZV90eXBlIjogInN0b3Bfc2VuZGluZyIsCi0gICAgICAgICAgICAiZXJyb3JfY29kZSI6IGVycm9y
X2NvZGUsCi0gICAgICAgICAgICAic3RyZWFtX2lkIjogc3RyKHN0cmVhbV9pZCksCi0gICAgICAg
IH0KLQotICAgIGRlZiBlbmNvZGVfc3RyZWFtX2ZyYW1lKHNlbGYsIGZyYW1lOiBRdWljU3RyZWFt
RnJhbWUsIHN0cmVhbV9pZDogaW50KSAtPiBEaWN0OgotICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICAgImZpbiI6IGZyYW1lLmZpbiwKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogInN0cmVh
bSIsCi0gICAgICAgICAgICAibGVuZ3RoIjogbGVuKGZyYW1lLmRhdGEpLAotICAgICAgICAgICAg
Im9mZnNldCI6IHN0cihmcmFtZS5vZmZzZXQpLAotICAgICAgICAgICAgInN0cmVhbV9pZCI6IHN0
cihzdHJlYW1faWQpLAotICAgICAgICB9Ci0KLSAgICBkZWYgZW5jb2RlX3N0cmVhbXNfYmxvY2tl
ZF9mcmFtZShzZWxmLCBpc191bmlkaXJlY3Rpb25hbDogYm9vbCwgbGltaXQ6IGludCkgLT4gRGlj
dDoKLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJmcmFtZV90eXBlIjogInN0cmVhbXNf
YmxvY2tlZCIsCi0gICAgICAgICAgICAibGltaXQiOiBzdHIobGltaXQpLAotICAgICAgICAgICAg
InN0cmVhbV90eXBlIjogInVuaWRpcmVjdGlvbmFsIiBpZiBpc191bmlkaXJlY3Rpb25hbCBlbHNl
ICJiaWRpcmVjdGlvbmFsIiwKLSAgICAgICAgfQotCi0gICAgZGVmIGVuY29kZV90aW1lKHNlbGYs
IHNlY29uZHM6IGZsb2F0KSAtPiBpbnQ6Ci0gICAgICAgICIiIgotICAgICAgICBDb252ZXJ0IGEg
dGltZSB0byBpbnRlZ2VyIG1pY3Jvc2Vjb25kcy4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVy
biBpbnQoc2Vjb25kcyAqIDEwMDAwMDApCi0KLSAgICBkZWYgZW5jb2RlX3RyYW5zcG9ydF9wYXJh
bWV0ZXJzKAotICAgICAgICBzZWxmLCBvd25lcjogc3RyLCBwYXJhbWV0ZXJzOiBRdWljVHJhbnNw
b3J0UGFyYW1ldGVycwotICAgICkgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICAgIGRhdGE6IERp
Y3Rbc3RyLCBBbnldID0geyJvd25lciI6IG93bmVyfQotICAgICAgICBmb3IgcGFyYW1fbmFtZSwg
cGFyYW1fdmFsdWUgaW4gcGFyYW1ldGVycy5fX2RpY3RfXy5pdGVtcygpOgotICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShwYXJhbV92YWx1ZSwgYm9vbCk6Ci0gICAgICAgICAgICAgICAgZGF0YVtw
YXJhbV9uYW1lXSA9IHBhcmFtX3ZhbHVlCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGFy
YW1fdmFsdWUsIGJ5dGVzKToKLSAgICAgICAgICAgICAgICBkYXRhW3BhcmFtX25hbWVdID0gaGV4
ZHVtcChwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXJhbV92YWx1
ZSwgaW50KToKLSAgICAgICAgICAgICAgICBkYXRhW3BhcmFtX25hbWVdID0gcGFyYW1fdmFsdWUK
LSAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgIGRlZiBsb2dfZXZlbnQoc2VsZiwgKiwgY2F0ZWdv
cnk6IHN0ciwgZXZlbnQ6IHN0ciwgZGF0YTogRGljdCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5f
ZXZlbnRzLmFwcGVuZCgodGltZS50aW1lKCksIGNhdGVnb3J5LCBldmVudCwgZGF0YSkpCi0KLSAg
ICBkZWYgcGFja2V0X3R5cGUoc2VsZiwgcGFja2V0X3R5cGU6IGludCkgLT4gc3RyOgotICAgICAg
ICByZXR1cm4gUEFDS0VUX1RZUEVfTkFNRVMuZ2V0KHBhY2tldF90eXBlICYgUEFDS0VUX1RZUEVf
TUFTSywgIjFSVFQiKQotCi0gICAgZGVmIHRvX2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06
Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gdGhlIHRyYWNlIGFzIGEgZGljdGlvbmFyeSB3
aGljaCBjYW4gYmUgd3JpdHRlbiBhcyBKU09OLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2Vs
Zi5fZXZlbnRzOgotICAgICAgICAgICAgcmVmZXJlbmNlX3RpbWUgPSBzZWxmLl9ldmVudHNbMF1b
MF0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlZmVyZW5jZV90aW1lID0gMC4wCi0gICAg
ICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiY29uZmlndXJhdGlvbiI6IHsidGltZV91bml0cyI6
ICJ1cyJ9LAotICAgICAgICAgICAgImNvbW1vbl9maWVsZHMiOiB7Ci0gICAgICAgICAgICAgICAg
Ik9EQ0lEIjogaGV4ZHVtcChzZWxmLl9vZGNpZCksCi0gICAgICAgICAgICAgICAgInJlZmVyZW5j
ZV90aW1lIjogc3RyKHNlbGYuZW5jb2RlX3RpbWUocmVmZXJlbmNlX3RpbWUpKSwKLSAgICAgICAg
ICAgIH0sCi0gICAgICAgICAgICAiZXZlbnRfZmllbGRzIjogWyJyZWxhdGl2ZV90aW1lIiwgImNh
dGVnb3J5IiwgImV2ZW50X3R5cGUiLCAiZGF0YSJdLAotICAgICAgICAgICAgImV2ZW50cyI6IGxp
c3QoCi0gICAgICAgICAgICAgICAgbWFwKAotICAgICAgICAgICAgICAgICAgICBsYW1iZGEgZXZl
bnQ6ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmVuY29kZV90aW1lKGV2ZW50
WzBdIC0gcmVmZXJlbmNlX3RpbWUpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50WzFd
LAotICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRbMl0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBldmVudFszXSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fZXZlbnRzLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICAidmFudGFnZV9wb2ludCI6IHNlbGYuX3ZhbnRhZ2VfcG9pbnQsCi0gICAgICAgIH0K
LQotCi1jbGFzcyBRdWljTG9nZ2VyOgotICAgICIiIgotICAgIEEgUVVJQyBldmVudCBsb2dnZXIu
Ci0KLSAgICBTZXJ2ZXMgYXMgYSBjb250YWluZXIgZm9yIHRyYWNlcyBpbiB0aGUgZm9ybWF0IGRl
ZmluZWQgYnkgcWxvZyBkcmFmdC0wMS4KLQotICAgIFNlZTogaHR0cHM6Ly9xdWljbG9nLmdpdGh1
Yi5pby9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtbWFyeC1xbG9nLW1haW4tc2NoZW1hLmh0bWwKLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxmLl90
cmFjZXM6IExpc3RbUXVpY0xvZ2dlclRyYWNlXSA9IFtdCi0KLSAgICBkZWYgc3RhcnRfdHJhY2Uo
c2VsZiwgaXNfY2xpZW50OiBib29sLCBvZGNpZDogYnl0ZXMpIC0+IFF1aWNMb2dnZXJUcmFjZToK
LSAgICAgICAgdHJhY2UgPSBRdWljTG9nZ2VyVHJhY2UoaXNfY2xpZW50PWlzX2NsaWVudCwgb2Rj
aWQ9b2RjaWQpCi0gICAgICAgIHNlbGYuX3RyYWNlcy5hcHBlbmQodHJhY2UpCi0gICAgICAgIHJl
dHVybiB0cmFjZQotCi0gICAgZGVmIGVuZF90cmFjZShzZWxmLCB0cmFjZTogUXVpY0xvZ2dlclRy
YWNlKSAtPiBOb25lOgotICAgICAgICBhc3NlcnQgdHJhY2UgaW4gc2VsZi5fdHJhY2VzLCAiUXVp
Y0xvZ2dlclRyYWNlIGRvZXMgbm90IGJlbG9uZyB0byBRdWljTG9nZ2VyIgotCi0gICAgZGVmIHRv
X2RpY3Qoc2VsZikgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1
cm4gdGhlIHRyYWNlcyBhcyBhIGRpY3Rpb25hcnkgd2hpY2ggY2FuIGJlIHdyaXR0ZW4gYXMgSlNP
Ti4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAicWxvZ192ZXJz
aW9uIjogImRyYWZ0LTAxIiwKLSAgICAgICAgICAgICJ0cmFjZXMiOiBbdHJhY2UudG9fZGljdCgp
IGZvciB0cmFjZSBpbiBzZWxmLl90cmFjZXNdLAotICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9wYWNrZXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fp
b3F1aWMvcXVpYy9wYWNrZXQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5OTQ0
NTk5MDg1ZGUwZGQ4ZGM2YTliZmUzYmNhNmFiYmEzNjBiY2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMv
cGFja2V0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNTA4ICswLDAgQEAKLWltcG9ydCBiaW5hc2Np
aQotaW1wb3J0IGlwYWRkcmVzcwotaW1wb3J0IG9zCi1mcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBk
YXRhY2xhc3MKLWZyb20gZW51bSBpbXBvcnQgSW50RW51bQotZnJvbSB0eXBpbmcgaW1wb3J0IExp
c3QsIE9wdGlvbmFsLCBUdXBsZQotCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZl
cy5jaXBoZXJzLmFlYWQgaW1wb3J0IEFFU0dDTQotCi1mcm9tIC4uYnVmZmVyIGltcG9ydCBCdWZm
ZXIKLWZyb20gLi50bHMgaW1wb3J0IHB1bGxfYmxvY2ssIHB1c2hfYmxvY2sKLWZyb20gLnJhbmdl
c2V0IGltcG9ydCBSYW5nZVNldAotCi1QQUNLRVRfTE9OR19IRUFERVIgPSAweDgwCi1QQUNLRVRf
RklYRURfQklUID0gMHg0MAotUEFDS0VUX1NQSU5fQklUID0gMHgyMAotCi1QQUNLRVRfVFlQRV9J
TklUSUFMID0gUEFDS0VUX0xPTkdfSEVBREVSIHwgUEFDS0VUX0ZJWEVEX0JJVCB8IDB4MDAKLVBB
Q0tFVF9UWVBFX1pFUk9fUlRUID0gUEFDS0VUX0xPTkdfSEVBREVSIHwgUEFDS0VUX0ZJWEVEX0JJ
VCB8IDB4MTAKLVBBQ0tFVF9UWVBFX0hBTkRTSEFLRSA9IFBBQ0tFVF9MT05HX0hFQURFUiB8IFBB
Q0tFVF9GSVhFRF9CSVQgfCAweDIwCi1QQUNLRVRfVFlQRV9SRVRSWSA9IFBBQ0tFVF9MT05HX0hF
QURFUiB8IFBBQ0tFVF9GSVhFRF9CSVQgfCAweDMwCi1QQUNLRVRfVFlQRV9PTkVfUlRUID0gUEFD
S0VUX0ZJWEVEX0JJVAotUEFDS0VUX1RZUEVfTUFTSyA9IDB4RjAKLQotQ09OTkVDVElPTl9JRF9N
QVhfU0laRSA9IDIwCi1QQUNLRVRfTlVNQkVSX01BWF9TSVpFID0gNAotUkVUUllfQUVBRF9LRVkg
PSBiaW5hc2NpaS51bmhleGxpZnkoIjRkMzJlY2RiMmEyMTMzYzg0MWU0MDQzZGYyN2Q0NDMwIikK
LVJFVFJZX0FFQURfTk9OQ0UgPSBiaW5hc2NpaS51bmhleGxpZnkoIjRkMTYxMWQwNTUxM2E1NTJj
NTg3ZDU3NSIpCi1SRVRSWV9JTlRFR1JJVFlfVEFHX1NJWkUgPSAxNgotCi0KLWNsYXNzIFF1aWNF
cnJvckNvZGUoSW50RW51bSk6Ci0gICAgTk9fRVJST1IgPSAweDAKLSAgICBJTlRFUk5BTF9FUlJP
UiA9IDB4MQotICAgIFNFUlZFUl9CVVNZID0gMHgyCi0gICAgRkxPV19DT05UUk9MX0VSUk9SID0g
MHgzCi0gICAgU1RSRUFNX0xJTUlUX0VSUk9SID0gMHg0Ci0gICAgU1RSRUFNX1NUQVRFX0VSUk9S
ID0gMHg1Ci0gICAgRklOQUxfU0laRV9FUlJPUiA9IDB4NgotICAgIEZSQU1FX0VOQ09ESU5HX0VS
Uk9SID0gMHg3Ci0gICAgVFJBTlNQT1JUX1BBUkFNRVRFUl9FUlJPUiA9IDB4OAotICAgIENPTk5F
Q1RJT05fSURfTElNSVRfRVJST1IgPSAweDkKLSAgICBQUk9UT0NPTF9WSU9MQVRJT04gPSAweEEK
LSAgICBJTlZBTElEX1RPS0VOID0gMHhCCi0gICAgQ1JZUFRPX0JVRkZFUl9FWENFRURFRCA9IDB4
RAotICAgIENSWVBUT19FUlJPUiA9IDB4MTAwCi0KLQotY2xhc3MgUXVpY1Byb3RvY29sVmVyc2lv
bihJbnRFbnVtKToKLSAgICBORUdPVElBVElPTiA9IDAKLSAgICBEUkFGVF8yNSA9IDB4RkYwMDAw
MTkKLSAgICBEUkFGVF8yNiA9IDB4RkYwMDAwMUEKLSAgICBEUkFGVF8yNyA9IDB4RkYwMDAwMUIK
LQotCi1AZGF0YWNsYXNzCi1jbGFzcyBRdWljSGVhZGVyOgotICAgIGlzX2xvbmdfaGVhZGVyOiBi
b29sCi0gICAgdmVyc2lvbjogT3B0aW9uYWxbaW50XQotICAgIHBhY2tldF90eXBlOiBpbnQKLSAg
ICBkZXN0aW5hdGlvbl9jaWQ6IGJ5dGVzCi0gICAgc291cmNlX2NpZDogYnl0ZXMKLSAgICB0b2tl
bjogYnl0ZXMgPSBiIiIKLSAgICBpbnRlZ3JpdHlfdGFnOiBieXRlcyA9IGIiIgotICAgIHJlc3Rf
bGVuZ3RoOiBpbnQgPSAwCi0KLQotZGVmIGRlY29kZV9wYWNrZXRfbnVtYmVyKHRydW5jYXRlZDog
aW50LCBudW1fYml0czogaW50LCBleHBlY3RlZDogaW50KSAtPiBpbnQ6Ci0gICAgIiIiCi0gICAg
UmVjb3ZlciBhIHBhY2tldCBudW1iZXIgZnJvbSBhIHRydW5jYXRlZCBwYWNrZXQgbnVtYmVyLgot
Ci0gICAgU2VlOiBBcHBlbmRpeCBBIC0gU2FtcGxlIFBhY2tldCBOdW1iZXIgRGVjb2RpbmcgQWxn
b3JpdGhtCi0gICAgIiIiCi0gICAgd2luZG93ID0gMSA8PCBudW1fYml0cwotICAgIGhhbGZfd2lu
ZG93ID0gd2luZG93IC8vIDIKLSAgICBjYW5kaWRhdGUgPSAoZXhwZWN0ZWQgJiB+KHdpbmRvdyAt
IDEpKSB8IHRydW5jYXRlZAotICAgIGlmIGNhbmRpZGF0ZSA8PSBleHBlY3RlZCAtIGhhbGZfd2lu
ZG93IGFuZCBjYW5kaWRhdGUgPCAoMSA8PCA2MikgLSB3aW5kb3c6Ci0gICAgICAgIHJldHVybiBj
YW5kaWRhdGUgKyB3aW5kb3cKLSAgICBlbGlmIGNhbmRpZGF0ZSA+IGV4cGVjdGVkICsgaGFsZl93
aW5kb3cgYW5kIGNhbmRpZGF0ZSA+PSB3aW5kb3c6Ci0gICAgICAgIHJldHVybiBjYW5kaWRhdGUg
LSB3aW5kb3cKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gY2FuZGlkYXRlCi0KLQotZGVmIGdl
dF9yZXRyeV9pbnRlZ3JpdHlfdGFnKAotICAgIHBhY2tldF93aXRob3V0X3RhZzogYnl0ZXMsIG9y
aWdpbmFsX2Rlc3RpbmF0aW9uX2NpZDogYnl0ZXMKLSkgLT4gYnl0ZXM6Ci0gICAgIiIiCi0gICAg
Q2FsY3VsYXRlIHRoZSBpbnRlZ3JpdHkgdGFnIGZvciBhIFJFVFJZIHBhY2tldC4KLSAgICAiIiIK
LSAgICAjIGJ1aWxkIFJldHJ5IHBzZXVkbyBwYWNrZXQKLSAgICBidWYgPSBCdWZmZXIoY2FwYWNp
dHk9MSArIGxlbihvcmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQpICsgbGVuKHBhY2tldF93aXRob3V0
X3RhZykpCi0gICAgYnVmLnB1c2hfdWludDgobGVuKG9yaWdpbmFsX2Rlc3RpbmF0aW9uX2NpZCkp
Ci0gICAgYnVmLnB1c2hfYnl0ZXMob3JpZ2luYWxfZGVzdGluYXRpb25fY2lkKQotICAgIGJ1Zi5w
dXNoX2J5dGVzKHBhY2tldF93aXRob3V0X3RhZykKLSAgICBhc3NlcnQgYnVmLmVvZigpCi0KLSAg
ICAjIHJ1biBBRVMtMTI4LUdDTQotICAgIGFlYWQgPSBBRVNHQ00oUkVUUllfQUVBRF9LRVkpCi0g
ICAgaW50ZWdyaXR5X3RhZyA9IGFlYWQuZW5jcnlwdChSRVRSWV9BRUFEX05PTkNFLCBiIiIsIGJ1
Zi5kYXRhKQotICAgIGFzc2VydCBsZW4oaW50ZWdyaXR5X3RhZykgPT0gUkVUUllfSU5URUdSSVRZ
X1RBR19TSVpFCi0gICAgcmV0dXJuIGludGVncml0eV90YWcKLQotCi1kZWYgZ2V0X3NwaW5fYml0
KGZpcnN0X2J5dGU6IGludCkgLT4gYm9vbDoKLSAgICByZXR1cm4gYm9vbChmaXJzdF9ieXRlICYg
UEFDS0VUX1NQSU5fQklUKQotCi0KLWRlZiBpc19sb25nX2hlYWRlcihmaXJzdF9ieXRlOiBpbnQp
IC0+IGJvb2w6Ci0gICAgcmV0dXJuIGJvb2woZmlyc3RfYnl0ZSAmIFBBQ0tFVF9MT05HX0hFQURF
UikKLQotCi1kZWYgcHVsbF9xdWljX2hlYWRlcihidWY6IEJ1ZmZlciwgaG9zdF9jaWRfbGVuZ3Ro
OiBPcHRpb25hbFtpbnRdID0gTm9uZSkgLT4gUXVpY0hlYWRlcjoKLSAgICBmaXJzdF9ieXRlID0g
YnVmLnB1bGxfdWludDgoKQotCi0gICAgaW50ZWdyaXR5X3RhZyA9IGIiIgotICAgIHRva2VuID0g
YiIiCi0gICAgaWYgaXNfbG9uZ19oZWFkZXIoZmlyc3RfYnl0ZSk6Ci0gICAgICAgICMgbG9uZyBo
ZWFkZXIgcGFja2V0Ci0gICAgICAgIHZlcnNpb24gPSBidWYucHVsbF91aW50MzIoKQotCi0gICAg
ICAgIGRlc3RpbmF0aW9uX2NpZF9sZW5ndGggPSBidWYucHVsbF91aW50OCgpCi0gICAgICAgIGlm
IGRlc3RpbmF0aW9uX2NpZF9sZW5ndGggPiBDT05ORUNUSU9OX0lEX01BWF9TSVpFOgotICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAiRGVzdGluYXRpb24gQ0lE
IGlzIHRvbyBsb25nICglZCBieXRlcykiICUgZGVzdGluYXRpb25fY2lkX2xlbmd0aAotICAgICAg
ICAgICAgKQotICAgICAgICBkZXN0aW5hdGlvbl9jaWQgPSBidWYucHVsbF9ieXRlcyhkZXN0aW5h
dGlvbl9jaWRfbGVuZ3RoKQotCi0gICAgICAgIHNvdXJjZV9jaWRfbGVuZ3RoID0gYnVmLnB1bGxf
dWludDgoKQotICAgICAgICBpZiBzb3VyY2VfY2lkX2xlbmd0aCA+IENPTk5FQ1RJT05fSURfTUFY
X1NJWkU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTb3VyY2UgQ0lEIGlzIHRvbyBs
b25nICglZCBieXRlcykiICUgc291cmNlX2NpZF9sZW5ndGgpCi0gICAgICAgIHNvdXJjZV9jaWQg
PSBidWYucHVsbF9ieXRlcyhzb3VyY2VfY2lkX2xlbmd0aCkKLQotICAgICAgICBpZiB2ZXJzaW9u
ID09IFF1aWNQcm90b2NvbFZlcnNpb24uTkVHT1RJQVRJT046Ci0gICAgICAgICAgICAjIHZlcnNp
b24gbmVnb3RpYXRpb24KLSAgICAgICAgICAgIHBhY2tldF90eXBlID0gTm9uZQotICAgICAgICAg
ICAgcmVzdF9sZW5ndGggPSBidWYuY2FwYWNpdHkgLSBidWYudGVsbCgpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBpZiBub3QgKGZpcnN0X2J5dGUgJiBQQUNLRVRfRklYRURfQklUKToKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQYWNrZXQgZml4ZWQgYml0IGlzIHplcm8i
KQotCi0gICAgICAgICAgICBwYWNrZXRfdHlwZSA9IGZpcnN0X2J5dGUgJiBQQUNLRVRfVFlQRV9N
QVNLCi0gICAgICAgICAgICBpZiBwYWNrZXRfdHlwZSA9PSBQQUNLRVRfVFlQRV9JTklUSUFMOgot
ICAgICAgICAgICAgICAgIHRva2VuX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAg
ICAgICAgICAgICB0b2tlbiA9IGJ1Zi5wdWxsX2J5dGVzKHRva2VuX2xlbmd0aCkKLSAgICAgICAg
ICAgICAgICByZXN0X2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgICAgIGVs
aWYgcGFja2V0X3R5cGUgPT0gUEFDS0VUX1RZUEVfUkVUUlk6Ci0gICAgICAgICAgICAgICAgdG9r
ZW5fbGVuZ3RoID0gYnVmLmNhcGFjaXR5IC0gYnVmLnRlbGwoKSAtIFJFVFJZX0lOVEVHUklUWV9U
QUdfU0laRQotICAgICAgICAgICAgICAgIHRva2VuID0gYnVmLnB1bGxfYnl0ZXModG9rZW5fbGVu
Z3RoKQotICAgICAgICAgICAgICAgIGludGVncml0eV90YWcgPSBidWYucHVsbF9ieXRlcyhSRVRS
WV9JTlRFR1JJVFlfVEFHX1NJWkUpCi0gICAgICAgICAgICAgICAgcmVzdF9sZW5ndGggPSAwCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlc3RfbGVuZ3RoID0gYnVmLnB1bGxf
dWludF92YXIoKQotCi0gICAgICAgIHJldHVybiBRdWljSGVhZGVyKAotICAgICAgICAgICAgaXNf
bG9uZ19oZWFkZXI9VHJ1ZSwKLSAgICAgICAgICAgIHZlcnNpb249dmVyc2lvbiwKLSAgICAgICAg
ICAgIHBhY2tldF90eXBlPXBhY2tldF90eXBlLAotICAgICAgICAgICAgZGVzdGluYXRpb25fY2lk
PWRlc3RpbmF0aW9uX2NpZCwKLSAgICAgICAgICAgIHNvdXJjZV9jaWQ9c291cmNlX2NpZCwKLSAg
ICAgICAgICAgIHRva2VuPXRva2VuLAotICAgICAgICAgICAgaW50ZWdyaXR5X3RhZz1pbnRlZ3Jp
dHlfdGFnLAotICAgICAgICAgICAgcmVzdF9sZW5ndGg9cmVzdF9sZW5ndGgsCi0gICAgICAgICkK
LSAgICBlbHNlOgotICAgICAgICAjIHNob3J0IGhlYWRlciBwYWNrZXQKLSAgICAgICAgaWYgbm90
IChmaXJzdF9ieXRlICYgUEFDS0VUX0ZJWEVEX0JJVCk6Ci0gICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJQYWNrZXQgZml4ZWQgYml0IGlzIHplcm8iKQotCi0gICAgICAgIHBhY2tldF90eXBl
ID0gZmlyc3RfYnl0ZSAmIFBBQ0tFVF9UWVBFX01BU0sKLSAgICAgICAgZGVzdGluYXRpb25fY2lk
ID0gYnVmLnB1bGxfYnl0ZXMoaG9zdF9jaWRfbGVuZ3RoKQotICAgICAgICByZXR1cm4gUXVpY0hl
YWRlcigKLSAgICAgICAgICAgIGlzX2xvbmdfaGVhZGVyPUZhbHNlLAotICAgICAgICAgICAgdmVy
c2lvbj1Ob25lLAotICAgICAgICAgICAgcGFja2V0X3R5cGU9cGFja2V0X3R5cGUsCi0gICAgICAg
ICAgICBkZXN0aW5hdGlvbl9jaWQ9ZGVzdGluYXRpb25fY2lkLAotICAgICAgICAgICAgc291cmNl
X2NpZD1iIiIsCi0gICAgICAgICAgICB0b2tlbj1iIiIsCi0gICAgICAgICAgICByZXN0X2xlbmd0
aD1idWYuY2FwYWNpdHkgLSBidWYudGVsbCgpLAotICAgICAgICApCi0KLQotZGVmIGVuY29kZV9x
dWljX3JldHJ5KAotICAgIHZlcnNpb246IGludCwKLSAgICBzb3VyY2VfY2lkOiBieXRlcywKLSAg
ICBkZXN0aW5hdGlvbl9jaWQ6IGJ5dGVzLAotICAgIG9yaWdpbmFsX2Rlc3RpbmF0aW9uX2NpZDog
Ynl0ZXMsCi0gICAgcmV0cnlfdG9rZW46IGJ5dGVzLAotKSAtPiBieXRlczoKLSAgICBidWYgPSBC
dWZmZXIoCi0gICAgICAgIGNhcGFjaXR5PTcKLSAgICAgICAgKyBsZW4oZGVzdGluYXRpb25fY2lk
KQotICAgICAgICArIGxlbihzb3VyY2VfY2lkKQotICAgICAgICArIGxlbihyZXRyeV90b2tlbikK
LSAgICAgICAgKyBSRVRSWV9JTlRFR1JJVFlfVEFHX1NJWkUKLSAgICApCi0gICAgYnVmLnB1c2hf
dWludDgoUEFDS0VUX1RZUEVfUkVUUlkpCi0gICAgYnVmLnB1c2hfdWludDMyKHZlcnNpb24pCi0g
ICAgYnVmLnB1c2hfdWludDgobGVuKGRlc3RpbmF0aW9uX2NpZCkpCi0gICAgYnVmLnB1c2hfYnl0
ZXMoZGVzdGluYXRpb25fY2lkKQotICAgIGJ1Zi5wdXNoX3VpbnQ4KGxlbihzb3VyY2VfY2lkKSkK
LSAgICBidWYucHVzaF9ieXRlcyhzb3VyY2VfY2lkKQotICAgIGJ1Zi5wdXNoX2J5dGVzKHJldHJ5
X3Rva2VuKQotICAgIGJ1Zi5wdXNoX2J5dGVzKGdldF9yZXRyeV9pbnRlZ3JpdHlfdGFnKGJ1Zi5k
YXRhLCBvcmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQpKQotICAgIGFzc2VydCBidWYuZW9mKCkKLSAg
ICByZXR1cm4gYnVmLmRhdGEKLQotCi1kZWYgZW5jb2RlX3F1aWNfdmVyc2lvbl9uZWdvdGlhdGlv
bigKLSAgICBzb3VyY2VfY2lkOiBieXRlcywgZGVzdGluYXRpb25fY2lkOiBieXRlcywgc3VwcG9y
dGVkX3ZlcnNpb25zOiBMaXN0W2ludF0KLSkgLT4gYnl0ZXM6Ci0gICAgYnVmID0gQnVmZmVyKAot
ICAgICAgICBjYXBhY2l0eT03Ci0gICAgICAgICsgbGVuKGRlc3RpbmF0aW9uX2NpZCkKLSAgICAg
ICAgKyBsZW4oc291cmNlX2NpZCkKLSAgICAgICAgKyA0ICogbGVuKHN1cHBvcnRlZF92ZXJzaW9u
cykKLSAgICApCi0gICAgYnVmLnB1c2hfdWludDgob3MudXJhbmRvbSgxKVswXSB8IFBBQ0tFVF9M
T05HX0hFQURFUikKLSAgICBidWYucHVzaF91aW50MzIoUXVpY1Byb3RvY29sVmVyc2lvbi5ORUdP
VElBVElPTikKLSAgICBidWYucHVzaF91aW50OChsZW4oZGVzdGluYXRpb25fY2lkKSkKLSAgICBi
dWYucHVzaF9ieXRlcyhkZXN0aW5hdGlvbl9jaWQpCi0gICAgYnVmLnB1c2hfdWludDgobGVuKHNv
dXJjZV9jaWQpKQotICAgIGJ1Zi5wdXNoX2J5dGVzKHNvdXJjZV9jaWQpCi0gICAgZm9yIHZlcnNp
b24gaW4gc3VwcG9ydGVkX3ZlcnNpb25zOgotICAgICAgICBidWYucHVzaF91aW50MzIodmVyc2lv
bikKLSAgICByZXR1cm4gYnVmLmRhdGEKLQotCi0jIFRMUyBFWFRFTlNJT04KLQotCi1AZGF0YWNs
YXNzCi1jbGFzcyBRdWljUHJlZmVycmVkQWRkcmVzczoKLSAgICBpcHY0X2FkZHJlc3M6IE9wdGlv
bmFsW1R1cGxlW3N0ciwgaW50XV0KLSAgICBpcHY2X2FkZHJlc3M6IE9wdGlvbmFsW1R1cGxlW3N0
ciwgaW50XV0KLSAgICBjb25uZWN0aW9uX2lkOiBieXRlcwotICAgIHN0YXRlbGVzc19yZXNldF90
b2tlbjogYnl0ZXMKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBRdWljVHJhbnNwb3J0UGFyYW1ldGVy
czoKLSAgICBvcmlnaW5hbF9jb25uZWN0aW9uX2lkOiBPcHRpb25hbFtieXRlc10gPSBOb25lCi0g
ICAgaWRsZV90aW1lb3V0OiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIHN0YXRlbGVzc19yZXNl
dF90b2tlbjogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQotICAgIG1heF9wYWNrZXRfc2l6ZTogT3B0
aW9uYWxbaW50XSA9IE5vbmUKLSAgICBpbml0aWFsX21heF9kYXRhOiBPcHRpb25hbFtpbnRdID0g
Tm9uZQotICAgIGluaXRpYWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfbG9jYWw6IE9wdGlvbmFsW2lu
dF0gPSBOb25lCi0gICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGU6IE9wdGlv
bmFsW2ludF0gPSBOb25lCi0gICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfdW5pOiBPcHRpb25h
bFtpbnRdID0gTm9uZQotICAgIGluaXRpYWxfbWF4X3N0cmVhbXNfYmlkaTogT3B0aW9uYWxbaW50
XSA9IE5vbmUKLSAgICBpbml0aWFsX21heF9zdHJlYW1zX3VuaTogT3B0aW9uYWxbaW50XSA9IE5v
bmUKLSAgICBhY2tfZGVsYXlfZXhwb25lbnQ6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgbWF4
X2Fja19kZWxheTogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBkaXNhYmxlX2FjdGl2ZV9taWdy
YXRpb246IE9wdGlvbmFsW2Jvb2xdID0gRmFsc2UKLSAgICBwcmVmZXJyZWRfYWRkcmVzczogT3B0
aW9uYWxbUXVpY1ByZWZlcnJlZEFkZHJlc3NdID0gTm9uZQotICAgIGFjdGl2ZV9jb25uZWN0aW9u
X2lkX2xpbWl0OiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIG1heF9kYXRhZ3JhbV9mcmFtZV9z
aXplOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIHF1YW50dW1fcmVhZGluZXNzOiBPcHRpb25h
bFtieXRlc10gPSBOb25lCi0KLQotUEFSQU1TID0gewotICAgIDA6ICgib3JpZ2luYWxfY29ubmVj
dGlvbl9pZCIsIGJ5dGVzKSwKLSAgICAxOiAoImlkbGVfdGltZW91dCIsIGludCksCi0gICAgMjog
KCJzdGF0ZWxlc3NfcmVzZXRfdG9rZW4iLCBieXRlcyksCi0gICAgMzogKCJtYXhfcGFja2V0X3Np
emUiLCBpbnQpLAotICAgIDQ6ICgiaW5pdGlhbF9tYXhfZGF0YSIsIGludCksCi0gICAgNTogKCJp
bml0aWFsX21heF9zdHJlYW1fZGF0YV9iaWRpX2xvY2FsIiwgaW50KSwKLSAgICA2OiAoImluaXRp
YWxfbWF4X3N0cmVhbV9kYXRhX2JpZGlfcmVtb3RlIiwgaW50KSwKLSAgICA3OiAoImluaXRpYWxf
bWF4X3N0cmVhbV9kYXRhX3VuaSIsIGludCksCi0gICAgODogKCJpbml0aWFsX21heF9zdHJlYW1z
X2JpZGkiLCBpbnQpLAotICAgIDk6ICgiaW5pdGlhbF9tYXhfc3RyZWFtc191bmkiLCBpbnQpLAot
ICAgIDEwOiAoImFja19kZWxheV9leHBvbmVudCIsIGludCksCi0gICAgMTE6ICgibWF4X2Fja19k
ZWxheSIsIGludCksCi0gICAgMTI6ICgiZGlzYWJsZV9hY3RpdmVfbWlncmF0aW9uIiwgYm9vbCks
Ci0gICAgMTM6ICgicHJlZmVycmVkX2FkZHJlc3MiLCBRdWljUHJlZmVycmVkQWRkcmVzcyksCi0g
ICAgMTQ6ICgiYWN0aXZlX2Nvbm5lY3Rpb25faWRfbGltaXQiLCBpbnQpLAotICAgIDMyOiAoIm1h
eF9kYXRhZ3JhbV9mcmFtZV9zaXplIiwgaW50KSwKLSAgICAzMTI3OiAoInF1YW50dW1fcmVhZGlu
ZXNzIiwgYnl0ZXMpLAotfQotCi0KLWRlZiBwdWxsX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MoYnVm
OiBCdWZmZXIpIC0+IFF1aWNQcmVmZXJyZWRBZGRyZXNzOgotICAgIGlwdjRfYWRkcmVzcyA9IE5v
bmUKLSAgICBpcHY0X2hvc3QgPSBidWYucHVsbF9ieXRlcyg0KQotICAgIGlwdjRfcG9ydCA9IGJ1
Zi5wdWxsX3VpbnQxNigpCi0gICAgaWYgaXB2NF9ob3N0ICE9IGJ5dGVzKDQpOgotICAgICAgICBp
cHY0X2FkZHJlc3MgPSAoc3RyKGlwYWRkcmVzcy5JUHY0QWRkcmVzcyhpcHY0X2hvc3QpKSwgaXB2
NF9wb3J0KQotCi0gICAgaXB2Nl9hZGRyZXNzID0gTm9uZQotICAgIGlwdjZfaG9zdCA9IGJ1Zi5w
dWxsX2J5dGVzKDE2KQotICAgIGlwdjZfcG9ydCA9IGJ1Zi5wdWxsX3VpbnQxNigpCi0gICAgaWYg
aXB2Nl9ob3N0ICE9IGJ5dGVzKDE2KToKLSAgICAgICAgaXB2Nl9hZGRyZXNzID0gKHN0cihpcGFk
ZHJlc3MuSVB2NkFkZHJlc3MoaXB2Nl9ob3N0KSksIGlwdjZfcG9ydCkKLQotICAgIGNvbm5lY3Rp
b25faWRfbGVuZ3RoID0gYnVmLnB1bGxfdWludDgoKQotICAgIGNvbm5lY3Rpb25faWQgPSBidWYu
cHVsbF9ieXRlcyhjb25uZWN0aW9uX2lkX2xlbmd0aCkKLSAgICBzdGF0ZWxlc3NfcmVzZXRfdG9r
ZW4gPSBidWYucHVsbF9ieXRlcygxNikKLQotICAgIHJldHVybiBRdWljUHJlZmVycmVkQWRkcmVz
cygKLSAgICAgICAgaXB2NF9hZGRyZXNzPWlwdjRfYWRkcmVzcywKLSAgICAgICAgaXB2Nl9hZGRy
ZXNzPWlwdjZfYWRkcmVzcywKLSAgICAgICAgY29ubmVjdGlvbl9pZD1jb25uZWN0aW9uX2lkLAot
ICAgICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW49c3RhdGVsZXNzX3Jlc2V0X3Rva2VuLAotICAg
ICkKLQotCi1kZWYgcHVzaF9xdWljX3ByZWZlcnJlZF9hZGRyZXNzKAotICAgIGJ1ZjogQnVmZmVy
LCBwcmVmZXJyZWRfYWRkcmVzczogUXVpY1ByZWZlcnJlZEFkZHJlc3MKLSkgLT4gTm9uZToKLSAg
ICBpZiBwcmVmZXJyZWRfYWRkcmVzcy5pcHY0X2FkZHJlc3MgaXMgbm90IE5vbmU6Ci0gICAgICAg
IGJ1Zi5wdXNoX2J5dGVzKGlwYWRkcmVzcy5JUHY0QWRkcmVzcyhwcmVmZXJyZWRfYWRkcmVzcy5p
cHY0X2FkZHJlc3NbMF0pLnBhY2tlZCkKLSAgICAgICAgYnVmLnB1c2hfdWludDE2KHByZWZlcnJl
ZF9hZGRyZXNzLmlwdjRfYWRkcmVzc1sxXSkKLSAgICBlbHNlOgotICAgICAgICBidWYucHVzaF9i
eXRlcyhieXRlcyg2KSkKLQotICAgIGlmIHByZWZlcnJlZF9hZGRyZXNzLmlwdjZfYWRkcmVzcyBp
cyBub3QgTm9uZToKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoaXBhZGRyZXNzLklQdjZBZGRyZXNz
KHByZWZlcnJlZF9hZGRyZXNzLmlwdjZfYWRkcmVzc1swXSkucGFja2VkKQotICAgICAgICBidWYu
cHVzaF91aW50MTYocHJlZmVycmVkX2FkZHJlc3MuaXB2Nl9hZGRyZXNzWzFdKQotICAgIGVsc2U6
Ci0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKDE4KSkKLQotICAgIGJ1Zi5wdXNoX3VpbnQ4
KGxlbihwcmVmZXJyZWRfYWRkcmVzcy5jb25uZWN0aW9uX2lkKSkKLSAgICBidWYucHVzaF9ieXRl
cyhwcmVmZXJyZWRfYWRkcmVzcy5jb25uZWN0aW9uX2lkKQotICAgIGJ1Zi5wdXNoX2J5dGVzKHBy
ZWZlcnJlZF9hZGRyZXNzLnN0YXRlbGVzc19yZXNldF90b2tlbikKLQotCi1kZWYgcHVsbF9xdWlj
X3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgIGJ1ZjogQnVmZmVyLCBwcm90b2NvbF92ZXJzaW9u
OiBpbnQKLSkgLT4gUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnM6Ci0gICAgcGFyYW1zID0gUXVpY1Ry
YW5zcG9ydFBhcmFtZXRlcnMoKQotCi0gICAgaWYgcHJvdG9jb2xfdmVyc2lvbiA8IFF1aWNQcm90
b2NvbFZlcnNpb24uRFJBRlRfMjc6Ci0gICAgICAgIHdpdGggcHVsbF9ibG9jayhidWYsIDIpIGFz
IGxlbmd0aDoKLSAgICAgICAgICAgIGVuZCA9IGJ1Zi50ZWxsKCkgKyBsZW5ndGgKLSAgICAgICAg
ICAgIHdoaWxlIGJ1Zi50ZWxsKCkgPCBlbmQ6Ci0gICAgICAgICAgICAgICAgcGFyYW1faWQgPSBi
dWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgICAgIHBhcmFtX2xlbiA9IGJ1Zi5wdWxsX3Vp
bnQxNigpCi0gICAgICAgICAgICAgICAgcGFyYW1fc3RhcnQgPSBidWYudGVsbCgpCi0gICAgICAg
ICAgICAgICAgaWYgcGFyYW1faWQgaW4gUEFSQU1TOgotICAgICAgICAgICAgICAgICAgICAjIHBh
cnNlIGtub3duIHBhcmFtZXRlcgotICAgICAgICAgICAgICAgICAgICBwYXJhbV9uYW1lLCBwYXJh
bV90eXBlID0gUEFSQU1TW3BhcmFtX2lkXQotICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbV90
eXBlID09IGludDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldGF0dHIocGFyYW1zLCBwYXJh
bV9uYW1lLCBidWYucHVsbF91aW50X3ZhcigpKQotICAgICAgICAgICAgICAgICAgICBlbGlmIHBh
cmFtX3R5cGUgPT0gYnl0ZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHBhcmFt
cywgcGFyYW1fbmFtZSwgYnVmLnB1bGxfYnl0ZXMocGFyYW1fbGVuKSkKLSAgICAgICAgICAgICAg
ICAgICAgZWxpZiBwYXJhbV90eXBlID09IFF1aWNQcmVmZXJyZWRBZGRyZXNzOgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUsIHB1bGxfcXVpY19wcmVm
ZXJyZWRfYWRkcmVzcyhidWYpKQotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUsIFRydWUpCi0gICAgICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBza2lwIHVua25vd24gcGFyYW1l
dGVyCi0gICAgICAgICAgICAgICAgICAgIGJ1Zi5wdWxsX2J5dGVzKHBhcmFtX2xlbikKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgYnVmLnRlbGwoKSA9PSBwYXJhbV9zdGFydCArIHBhcmFtX2xlbgot
ICAgIGVsc2U6Ci0gICAgICAgIHdoaWxlIG5vdCBidWYuZW9mKCk6Ci0gICAgICAgICAgICBwYXJh
bV9pZCA9IGJ1Zi5wdWxsX3VpbnRfdmFyKCkKLSAgICAgICAgICAgIHBhcmFtX2xlbiA9IGJ1Zi5w
dWxsX3VpbnRfdmFyKCkKLSAgICAgICAgICAgIHBhcmFtX3N0YXJ0ID0gYnVmLnRlbGwoKQotICAg
ICAgICAgICAgaWYgcGFyYW1faWQgaW4gUEFSQU1TOgotICAgICAgICAgICAgICAgICMgcGFyc2Ug
a25vd24gcGFyYW1ldGVyCi0gICAgICAgICAgICAgICAgcGFyYW1fbmFtZSwgcGFyYW1fdHlwZSA9
IFBBUkFNU1twYXJhbV9pZF0KLSAgICAgICAgICAgICAgICBpZiBwYXJhbV90eXBlID09IGludDoK
LSAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUsIGJ1Zi5wdWxs
X3VpbnRfdmFyKCkpCi0gICAgICAgICAgICAgICAgZWxpZiBwYXJhbV90eXBlID09IGJ5dGVzOgot
ICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHBhcmFtcywgcGFyYW1fbmFtZSwgYnVmLnB1bGxf
Ynl0ZXMocGFyYW1fbGVuKSkKLSAgICAgICAgICAgICAgICBlbGlmIHBhcmFtX3R5cGUgPT0gUXVp
Y1ByZWZlcnJlZEFkZHJlc3M6Ci0gICAgICAgICAgICAgICAgICAgIHNldGF0dHIocGFyYW1zLCBw
YXJhbV9uYW1lLCBwdWxsX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MoYnVmKSkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHBhcmFtcywgcGFyYW1fbmFt
ZSwgVHJ1ZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBza2lwIHVua25v
d24gcGFyYW1ldGVyCi0gICAgICAgICAgICAgICAgYnVmLnB1bGxfYnl0ZXMocGFyYW1fbGVuKQot
ICAgICAgICAgICAgYXNzZXJ0IGJ1Zi50ZWxsKCkgPT0gcGFyYW1fc3RhcnQgKyBwYXJhbV9sZW4K
LQotICAgIHJldHVybiBwYXJhbXMKLQotCi1kZWYgcHVzaF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0
ZXJzKAotICAgIGJ1ZjogQnVmZmVyLCBwYXJhbXM6IFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJzLCBw
cm90b2NvbF92ZXJzaW9uOiBpbnQKLSkgLT4gTm9uZToKLSAgICBpZiBwcm90b2NvbF92ZXJzaW9u
IDwgUXVpY1Byb3RvY29sVmVyc2lvbi5EUkFGVF8yNzoKLSAgICAgICAgd2l0aCBwdXNoX2Jsb2Nr
KGJ1ZiwgMik6Ci0gICAgICAgICAgICBmb3IgcGFyYW1faWQsIChwYXJhbV9uYW1lLCBwYXJhbV90
eXBlKSBpbiBQQVJBTVMuaXRlbXMoKToKLSAgICAgICAgICAgICAgICBwYXJhbV92YWx1ZSA9IGdl
dGF0dHIocGFyYW1zLCBwYXJhbV9uYW1lKQotICAgICAgICAgICAgICAgIGlmIHBhcmFtX3ZhbHVl
IGlzIG5vdCBOb25lIGFuZCBwYXJhbV92YWx1ZSBpcyBub3QgRmFsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgIGJ1Zi5wdXNoX3VpbnQxNihwYXJhbV9pZCkKLSAgICAgICAgICAgICAgICAgICAgd2l0
aCBwdXNoX2Jsb2NrKGJ1ZiwgMik6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbV90
eXBlID09IGludDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucHVzaF91aW50X3Zh
cihwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgcGFyYW1fdHlwZSA9
PSBieXRlczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucHVzaF9ieXRlcyhwYXJh
bV92YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgcGFyYW1fdHlwZSA9PSBRdWlj
UHJlZmVycmVkQWRkcmVzczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoX3F1aWNf
cHJlZmVycmVkX2FkZHJlc3MoYnVmLCBwYXJhbV92YWx1ZSkKLSAgICBlbHNlOgotICAgICAgICBm
b3IgcGFyYW1faWQsIChwYXJhbV9uYW1lLCBwYXJhbV90eXBlKSBpbiBQQVJBTVMuaXRlbXMoKToK
LSAgICAgICAgICAgIHBhcmFtX3ZhbHVlID0gZ2V0YXR0cihwYXJhbXMsIHBhcmFtX25hbWUpCi0g
ICAgICAgICAgICBpZiBwYXJhbV92YWx1ZSBpcyBub3QgTm9uZSBhbmQgcGFyYW1fdmFsdWUgaXMg
bm90IEZhbHNlOgotICAgICAgICAgICAgICAgIHBhcmFtX2J1ZiA9IEJ1ZmZlcihjYXBhY2l0eT02
NTUzNikKLSAgICAgICAgICAgICAgICBpZiBwYXJhbV90eXBlID09IGludDoKLSAgICAgICAgICAg
ICAgICAgICAgcGFyYW1fYnVmLnB1c2hfdWludF92YXIocGFyYW1fdmFsdWUpCi0gICAgICAgICAg
ICAgICAgZWxpZiBwYXJhbV90eXBlID09IGJ5dGVzOgotICAgICAgICAgICAgICAgICAgICBwYXJh
bV9idWYucHVzaF9ieXRlcyhwYXJhbV92YWx1ZSkKLSAgICAgICAgICAgICAgICBlbGlmIHBhcmFt
X3R5cGUgPT0gUXVpY1ByZWZlcnJlZEFkZHJlc3M6Ci0gICAgICAgICAgICAgICAgICAgIHB1c2hf
cXVpY19wcmVmZXJyZWRfYWRkcmVzcyhwYXJhbV9idWYsIHBhcmFtX3ZhbHVlKQotICAgICAgICAg
ICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHBhcmFtX2lkKQotICAgICAgICAgICAgICAgIGJ1Zi5w
dXNoX3VpbnRfdmFyKHBhcmFtX2J1Zi50ZWxsKCkpCi0gICAgICAgICAgICAgICAgYnVmLnB1c2hf
Ynl0ZXMocGFyYW1fYnVmLmRhdGEpCi0KLQotIyBGUkFNRVMKLQotCi1jbGFzcyBRdWljRnJhbWVU
eXBlKEludEVudW0pOgotICAgIFBBRERJTkcgPSAweDAwCi0gICAgUElORyA9IDB4MDEKLSAgICBB
Q0sgPSAweDAyCi0gICAgQUNLX0VDTiA9IDB4MDMKLSAgICBSRVNFVF9TVFJFQU0gPSAweDA0Ci0g
ICAgU1RPUF9TRU5ESU5HID0gMHgwNQotICAgIENSWVBUTyA9IDB4MDYKLSAgICBORVdfVE9LRU4g
PSAweDA3Ci0gICAgU1RSRUFNX0JBU0UgPSAweDA4Ci0gICAgTUFYX0RBVEEgPSAweDEwCi0gICAg
TUFYX1NUUkVBTV9EQVRBID0gMHgxMQotICAgIE1BWF9TVFJFQU1TX0JJREkgPSAweDEyCi0gICAg
TUFYX1NUUkVBTVNfVU5JID0gMHgxMwotICAgIERBVEFfQkxPQ0tFRCA9IDB4MTQKLSAgICBTVFJF
QU1fREFUQV9CTE9DS0VEID0gMHgxNQotICAgIFNUUkVBTVNfQkxPQ0tFRF9CSURJID0gMHgxNgot
ICAgIFNUUkVBTVNfQkxPQ0tFRF9VTkkgPSAweDE3Ci0gICAgTkVXX0NPTk5FQ1RJT05fSUQgPSAw
eDE4Ci0gICAgUkVUSVJFX0NPTk5FQ1RJT05fSUQgPSAweDE5Ci0gICAgUEFUSF9DSEFMTEVOR0Ug
PSAweDFBCi0gICAgUEFUSF9SRVNQT05TRSA9IDB4MUIKLSAgICBUUkFOU1BPUlRfQ0xPU0UgPSAw
eDFDCi0gICAgQVBQTElDQVRJT05fQ0xPU0UgPSAweDFECi0gICAgSEFORFNIQUtFX0RPTkUgPSAw
eDFFCi0gICAgREFUQUdSQU0gPSAweDMwCi0gICAgREFUQUdSQU1fV0lUSF9MRU5HVEggPSAweDMx
Ci0KLQotTk9OX0FDS19FTElDSVRJTkdfRlJBTUVfVFlQRVMgPSBmcm96ZW5zZXQoCi0gICAgWwot
ICAgICAgICBRdWljRnJhbWVUeXBlLkFDSywKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5BQ0tfRUNO
LAotICAgICAgICBRdWljRnJhbWVUeXBlLlBBRERJTkcsCi0gICAgICAgIFF1aWNGcmFtZVR5cGUu
VFJBTlNQT1JUX0NMT1NFLAotICAgICAgICBRdWljRnJhbWVUeXBlLkFQUExJQ0FUSU9OX0NMT1NF
LAotICAgIF0KLSkKLU5PTl9JTl9GTElHSFRfRlJBTUVfVFlQRVMgPSBmcm96ZW5zZXQoCi0gICAg
WwotICAgICAgICBRdWljRnJhbWVUeXBlLkFDSywKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5BQ0tf
RUNOLAotICAgICAgICBRdWljRnJhbWVUeXBlLlRSQU5TUE9SVF9DTE9TRSwKLSAgICAgICAgUXVp
Y0ZyYW1lVHlwZS5BUFBMSUNBVElPTl9DTE9TRSwKLSAgICBdCi0pCi0KLVBST0JJTkdfRlJBTUVf
VFlQRVMgPSBmcm96ZW5zZXQoCi0gICAgWwotICAgICAgICBRdWljRnJhbWVUeXBlLlBBVEhfQ0hB
TExFTkdFLAotICAgICAgICBRdWljRnJhbWVUeXBlLlBBVEhfUkVTUE9OU0UsCi0gICAgICAgIFF1
aWNGcmFtZVR5cGUuUEFERElORywKLSAgICAgICAgUXVpY0ZyYW1lVHlwZS5ORVdfQ09OTkVDVElP
Tl9JRCwKLSAgICBdCi0pCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgUXVpY1N0cmVhbUZyYW1lOgot
ICAgIGRhdGE6IGJ5dGVzID0gYiIiCi0gICAgZmluOiBib29sID0gRmFsc2UKLSAgICBvZmZzZXQ6
IGludCA9IDAKLQotCi1kZWYgcHVsbF9hY2tfZnJhbWUoYnVmOiBCdWZmZXIpIC0+IFR1cGxlW1Jh
bmdlU2V0LCBpbnRdOgotICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotICAgIGVuZCA9IGJ1Zi5w
dWxsX3VpbnRfdmFyKCkgICMgbGFyZ2VzdCBhY2tub3dsZWRnZWQKLSAgICBkZWxheSA9IGJ1Zi5w
dWxsX3VpbnRfdmFyKCkKLSAgICBhY2tfcmFuZ2VfY291bnQgPSBidWYucHVsbF91aW50X3Zhcigp
Ci0gICAgYWNrX2NvdW50ID0gYnVmLnB1bGxfdWludF92YXIoKSAgIyBmaXJzdCBhY2sgcmFuZ2UK
LSAgICByYW5nZXNldC5hZGQoZW5kIC0gYWNrX2NvdW50LCBlbmQgKyAxKQotICAgIGVuZCAtPSBh
Y2tfY291bnQKLSAgICBmb3IgXyBpbiByYW5nZShhY2tfcmFuZ2VfY291bnQpOgotICAgICAgICBl
bmQgLT0gYnVmLnB1bGxfdWludF92YXIoKSArIDIKLSAgICAgICAgYWNrX2NvdW50ID0gYnVmLnB1
bGxfdWludF92YXIoKQotICAgICAgICByYW5nZXNldC5hZGQoZW5kIC0gYWNrX2NvdW50LCBlbmQg
KyAxKQotICAgICAgICBlbmQgLT0gYWNrX2NvdW50Ci0gICAgcmV0dXJuIHJhbmdlc2V0LCBkZWxh
eQotCi0KLWRlZiBwdXNoX2Fja19mcmFtZShidWY6IEJ1ZmZlciwgcmFuZ2VzZXQ6IFJhbmdlU2V0
LCBkZWxheTogaW50KSAtPiBpbnQ6Ci0gICAgcmFuZ2VzID0gbGVuKHJhbmdlc2V0KQotICAgIGlu
ZGV4ID0gcmFuZ2VzIC0gMQotICAgIHIgPSByYW5nZXNldFtpbmRleF0KLSAgICBidWYucHVzaF91
aW50X3ZhcihyLnN0b3AgLSAxKQotICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKGRlbGF5KQotICAgIGJ1
Zi5wdXNoX3VpbnRfdmFyKGluZGV4KQotICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHIuc3RvcCAtIDEg
LSByLnN0YXJ0KQotICAgIHN0YXJ0ID0gci5zdGFydAotICAgIHdoaWxlIGluZGV4ID4gMDoKLSAg
ICAgICAgaW5kZXggLT0gMQotICAgICAgICByID0gcmFuZ2VzZXRbaW5kZXhdCi0gICAgICAgIGJ1
Zi5wdXNoX3VpbnRfdmFyKHN0YXJ0IC0gci5zdG9wIC0gMSkKLSAgICAgICAgYnVmLnB1c2hfdWlu
dF92YXIoci5zdG9wIC0gci5zdGFydCAtIDEpCi0gICAgICAgIHN0YXJ0ID0gci5zdGFydAotICAg
IHJldHVybiByYW5nZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWlj
L3BhY2tldF9idWlsZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0
X2J1aWxkZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4ODM3YzJjMzMwNDky
MDY0NDVmYzlmYjgxNDczYWNmY2JmNGI2NWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0X2J1
aWxkZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNjYgKzAsMCBAQAotZnJvbSBkYXRhY2xhc3Nl
cyBpbXBvcnQgZGF0YWNsYXNzLCBmaWVsZAotZnJvbSBlbnVtIGltcG9ydCBFbnVtCi1mcm9tIHR5
cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgRGljdCwgTGlzdCwgT3B0aW9uYWwsIFNlcXVlbmNl
LCBUdXBsZQotCi1mcm9tIC4uYnVmZmVyIGltcG9ydCBCdWZmZXIsIHNpemVfdWludF92YXIKLWZy
b20gLi50bHMgaW1wb3J0IEVwb2NoCi1mcm9tIC5jcnlwdG8gaW1wb3J0IENyeXB0b1BhaXIKLWZy
b20gLmxvZ2dlciBpbXBvcnQgUXVpY0xvZ2dlclRyYWNlCi1mcm9tIC5wYWNrZXQgaW1wb3J0ICgK
LSAgICBOT05fQUNLX0VMSUNJVElOR19GUkFNRV9UWVBFUywKLSAgICBOT05fSU5fRkxJR0hUX0ZS
QU1FX1RZUEVTLAotICAgIFBBQ0tFVF9OVU1CRVJfTUFYX1NJWkUsCi0gICAgUEFDS0VUX1RZUEVf
SEFORFNIQUtFLAotICAgIFBBQ0tFVF9UWVBFX0lOSVRJQUwsCi0gICAgUEFDS0VUX1RZUEVfTUFT
SywKLSAgICBRdWljRnJhbWVUeXBlLAotICAgIGlzX2xvbmdfaGVhZGVyLAotKQotCi1QQUNLRVRf
TUFYX1NJWkUgPSAxMjgwCi1QQUNLRVRfTEVOR1RIX1NFTkRfU0laRSA9IDIKLVBBQ0tFVF9OVU1C
RVJfU0VORF9TSVpFID0gMgotCi0KLVF1aWNEZWxpdmVyeUhhbmRsZXIgPSBDYWxsYWJsZVsuLi4s
IE5vbmVdCi0KLQotY2xhc3MgUXVpY0RlbGl2ZXJ5U3RhdGUoRW51bSk6Ci0gICAgQUNLRUQgPSAw
Ci0gICAgTE9TVCA9IDEKLSAgICBFWFBJUkVEID0gMgotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIFF1
aWNTZW50UGFja2V0OgotICAgIGVwb2NoOiBFcG9jaAotICAgIGluX2ZsaWdodDogYm9vbAotICAg
IGlzX2Fja19lbGljaXRpbmc6IGJvb2wKLSAgICBpc19jcnlwdG9fcGFja2V0OiBib29sCi0gICAg
cGFja2V0X251bWJlcjogaW50Ci0gICAgcGFja2V0X3R5cGU6IGludAotICAgIHNlbnRfdGltZTog
T3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgIHNlbnRfYnl0ZXM6IGludCA9IDAKLQotICAgIGRl
bGl2ZXJ5X2hhbmRsZXJzOiBMaXN0W1R1cGxlW1F1aWNEZWxpdmVyeUhhbmRsZXIsIEFueV1dID0g
ZmllbGQoCi0gICAgICAgIGRlZmF1bHRfZmFjdG9yeT1saXN0Ci0gICAgKQotICAgIHF1aWNfbG9n
Z2VyX2ZyYW1lczogTGlzdFtEaWN0XSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0K
LWNsYXNzIFF1aWNQYWNrZXRCdWlsZGVyU3RvcChFeGNlcHRpb24pOgotICAgIHBhc3MKLQotCi1j
bGFzcyBRdWljUGFja2V0QnVpbGRlcjoKLSAgICAiIiIKLSAgICBIZWxwZXIgZm9yIGJ1aWxkaW5n
IFFVSUMgcGFja2V0cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXygKLSAgICAgICAgc2Vs
ZiwKLSAgICAgICAgKiwKLSAgICAgICAgaG9zdF9jaWQ6IGJ5dGVzLAotICAgICAgICBwZWVyX2Np
ZDogYnl0ZXMsCi0gICAgICAgIHZlcnNpb246IGludCwKLSAgICAgICAgaXNfY2xpZW50OiBib29s
LAotICAgICAgICBwYWNrZXRfbnVtYmVyOiBpbnQgPSAwLAotICAgICAgICBwZWVyX3Rva2VuOiBi
eXRlcyA9IGIiIiwKLSAgICAgICAgcXVpY19sb2dnZXI6IE9wdGlvbmFsW1F1aWNMb2dnZXJUcmFj
ZV0gPSBOb25lLAotICAgICAgICBzcGluX2JpdDogYm9vbCA9IEZhbHNlLAotICAgICk6Ci0gICAg
ICAgIHNlbGYubWF4X2ZsaWdodF9ieXRlczogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAg
c2VsZi5tYXhfdG90YWxfYnl0ZXM6IE9wdGlvbmFsW2ludF0gPSBOb25lCi0gICAgICAgIHNlbGYu
cXVpY19sb2dnZXJfZnJhbWVzOiBPcHRpb25hbFtMaXN0W0RpY3RdXSA9IE5vbmUKLQotICAgICAg
ICBzZWxmLl9ob3N0X2NpZCA9IGhvc3RfY2lkCi0gICAgICAgIHNlbGYuX2lzX2NsaWVudCA9IGlz
X2NsaWVudAotICAgICAgICBzZWxmLl9wZWVyX2NpZCA9IHBlZXJfY2lkCi0gICAgICAgIHNlbGYu
X3BlZXJfdG9rZW4gPSBwZWVyX3Rva2VuCi0gICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyID0gcXVp
Y19sb2dnZXIKLSAgICAgICAgc2VsZi5fc3Bpbl9iaXQgPSBzcGluX2JpdAotICAgICAgICBzZWxm
Ll92ZXJzaW9uID0gdmVyc2lvbgotCi0gICAgICAgICMgYXNzZW1ibGVkIGRhdGFncmFtcyBhbmQg
cGFja2V0cwotICAgICAgICBzZWxmLl9kYXRhZ3JhbXM6IExpc3RbYnl0ZXNdID0gW10KLSAgICAg
ICAgc2VsZi5fZGF0YWdyYW1fZmxpZ2h0X2J5dGVzID0gMAotICAgICAgICBzZWxmLl9kYXRhZ3Jh
bV9pbml0ID0gVHJ1ZQotICAgICAgICBzZWxmLl9wYWNrZXRzOiBMaXN0W1F1aWNTZW50UGFja2V0
XSA9IFtdCi0gICAgICAgIHNlbGYuX2ZsaWdodF9ieXRlcyA9IDAKLSAgICAgICAgc2VsZi5fdG90
YWxfYnl0ZXMgPSAwCi0KLSAgICAgICAgIyBjdXJyZW50IHBhY2tldAotICAgICAgICBzZWxmLl9o
ZWFkZXJfc2l6ZSA9IDAKLSAgICAgICAgc2VsZi5fcGFja2V0OiBPcHRpb25hbFtRdWljU2VudFBh
Y2tldF0gPSBOb25lCi0gICAgICAgIHNlbGYuX3BhY2tldF9jcnlwdG86IE9wdGlvbmFsW0NyeXB0
b1BhaXJdID0gTm9uZQotICAgICAgICBzZWxmLl9wYWNrZXRfbG9uZ19oZWFkZXIgPSBGYWxzZQot
ICAgICAgICBzZWxmLl9wYWNrZXRfbnVtYmVyID0gcGFja2V0X251bWJlcgotICAgICAgICBzZWxm
Ll9wYWNrZXRfc3RhcnQgPSAwCi0gICAgICAgIHNlbGYuX3BhY2tldF90eXBlID0gMAotCi0gICAg
ICAgIHNlbGYuX2J1ZmZlciA9IEJ1ZmZlcihQQUNLRVRfTUFYX1NJWkUpCi0gICAgICAgIHNlbGYu
X2J1ZmZlcl9jYXBhY2l0eSA9IFBBQ0tFVF9NQVhfU0laRQotICAgICAgICBzZWxmLl9mbGlnaHRf
Y2FwYWNpdHkgPSBQQUNLRVRfTUFYX1NJWkUKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBwYWNr
ZXRfaXNfZW1wdHkoc2VsZikgLT4gYm9vbDoKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMg
YFRydWVgIGlmIHRoZSBjdXJyZW50IHBhY2tldCBpcyBlbXB0eS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGFzc2VydCBzZWxmLl9wYWNrZXQgaXMgbm90IE5vbmUKLSAgICAgICAgcGFja2V0X3NpemUg
PSBzZWxmLl9idWZmZXIudGVsbCgpIC0gc2VsZi5fcGFja2V0X3N0YXJ0Ci0gICAgICAgIHJldHVy
biBwYWNrZXRfc2l6ZSA8PSBzZWxmLl9oZWFkZXJfc2l6ZQotCi0gICAgQHByb3BlcnR5Ci0gICAg
ZGVmIHBhY2tldF9udW1iZXIoc2VsZikgLT4gaW50OgotICAgICAgICAiIiIKLSAgICAgICAgUmV0
dXJucyB0aGUgcGFja2V0IG51bWJlciBmb3IgdGhlIG5leHQgcGFja2V0LgotICAgICAgICAiIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3BhY2tldF9udW1iZXIKLQotICAgIEBwcm9wZXJ0eQotICAg
IGRlZiByZW1haW5pbmdfYnVmZmVyX3NwYWNlKHNlbGYpIC0+IGludDoKLSAgICAgICAgIiIiCi0g
ICAgICAgIFJldHVybnMgdGhlIHJlbWFpbmluZyBudW1iZXIgb2YgYnl0ZXMgd2hpY2ggY2FuIGJl
IHVzZWQgaW4KLSAgICAgICAgdGhlIGN1cnJlbnQgcGFja2V0LgotICAgICAgICAiIiIKLSAgICAg
ICAgcmV0dXJuICgKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlcl9jYXBhY2l0eQotICAgICAgICAg
ICAgLSBzZWxmLl9idWZmZXIudGVsbCgpCi0gICAgICAgICAgICAtIHNlbGYuX3BhY2tldF9jcnlw
dG8uYWVhZF90YWdfc2l6ZQotICAgICAgICApCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVt
YWluaW5nX2ZsaWdodF9zcGFjZShzZWxmKSAtPiBpbnQ6Ci0gICAgICAgICIiIgotICAgICAgICBS
ZXR1cm5zIHRoZSByZW1haW5pbmcgbnVtYmVyIG9mIGJ5dGVzIHdoaWNoIGNhbiBiZSB1c2VkIGlu
Ci0gICAgICAgIHRoZSBjdXJyZW50IHBhY2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVy
biAoCi0gICAgICAgICAgICBzZWxmLl9mbGlnaHRfY2FwYWNpdHkKLSAgICAgICAgICAgIC0gc2Vs
Zi5fYnVmZmVyLnRlbGwoKQotICAgICAgICAgICAgLSBzZWxmLl9wYWNrZXRfY3J5cHRvLmFlYWRf
dGFnX3NpemUKLSAgICAgICAgKQotCi0gICAgZGVmIGZsdXNoKHNlbGYpIC0+IFR1cGxlW0xpc3Rb
Ynl0ZXNdLCBMaXN0W1F1aWNTZW50UGFja2V0XV06Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1
cm5zIHRoZSBhc3NlbWJsZWQgZGF0YWdyYW1zLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2Vs
Zi5fcGFja2V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZW5kX3BhY2tldCgpCi0g
ICAgICAgIHNlbGYuX2ZsdXNoX2N1cnJlbnRfZGF0YWdyYW0oKQotCi0gICAgICAgIGRhdGFncmFt
cyA9IHNlbGYuX2RhdGFncmFtcwotICAgICAgICBwYWNrZXRzID0gc2VsZi5fcGFja2V0cwotICAg
ICAgICBzZWxmLl9kYXRhZ3JhbXMgPSBbXQotICAgICAgICBzZWxmLl9wYWNrZXRzID0gW10KLSAg
ICAgICAgcmV0dXJuIGRhdGFncmFtcywgcGFja2V0cwotCi0gICAgZGVmIHN0YXJ0X2ZyYW1lKAot
ICAgICAgICBzZWxmLAotICAgICAgICBmcmFtZV90eXBlOiBpbnQsCi0gICAgICAgIGNhcGFjaXR5
OiBpbnQgPSAxLAotICAgICAgICBoYW5kbGVyOiBPcHRpb25hbFtRdWljRGVsaXZlcnlIYW5kbGVy
XSA9IE5vbmUsCi0gICAgICAgIGhhbmRsZXJfYXJnczogU2VxdWVuY2VbQW55XSA9IFtdLAotICAg
ICkgLT4gQnVmZmVyOgotICAgICAgICAiIiIKLSAgICAgICAgU3RhcnRzIGEgbmV3IGZyYW1lLgot
ICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5yZW1haW5pbmdfYnVmZmVyX3NwYWNlIDwgY2Fw
YWNpdHkgb3IgKAotICAgICAgICAgICAgZnJhbWVfdHlwZSBub3QgaW4gTk9OX0lOX0ZMSUdIVF9G
UkFNRV9UWVBFUwotICAgICAgICAgICAgYW5kIHNlbGYucmVtYWluaW5nX2ZsaWdodF9zcGFjZSA8
IGNhcGFjaXR5Ci0gICAgICAgICk6Ci0gICAgICAgICAgICByYWlzZSBRdWljUGFja2V0QnVpbGRl
clN0b3AKLQotICAgICAgICBzZWxmLl9idWZmZXIucHVzaF91aW50X3ZhcihmcmFtZV90eXBlKQot
ICAgICAgICBpZiBmcmFtZV90eXBlIG5vdCBpbiBOT05fQUNLX0VMSUNJVElOR19GUkFNRV9UWVBF
UzoKLSAgICAgICAgICAgIHNlbGYuX3BhY2tldC5pc19hY2tfZWxpY2l0aW5nID0gVHJ1ZQotICAg
ICAgICBpZiBmcmFtZV90eXBlIG5vdCBpbiBOT05fSU5fRkxJR0hUX0ZSQU1FX1RZUEVTOgotICAg
ICAgICAgICAgc2VsZi5fcGFja2V0LmluX2ZsaWdodCA9IFRydWUKLSAgICAgICAgaWYgZnJhbWVf
dHlwZSA9PSBRdWljRnJhbWVUeXBlLkNSWVBUTzoKLSAgICAgICAgICAgIHNlbGYuX3BhY2tldC5p
c19jcnlwdG9fcGFja2V0ID0gVHJ1ZQotICAgICAgICBpZiBoYW5kbGVyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fcGFja2V0LmRlbGl2ZXJ5X2hhbmRsZXJzLmFwcGVuZCgoaGFuZGxl
ciwgaGFuZGxlcl9hcmdzKSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2J1ZmZlcgotCi0gICAgZGVm
IHN0YXJ0X3BhY2tldChzZWxmLCBwYWNrZXRfdHlwZTogaW50LCBjcnlwdG86IENyeXB0b1BhaXIp
IC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBTdGFydHMgYSBuZXcgcGFja2V0LgotICAg
ICAgICAiIiIKLSAgICAgICAgYnVmID0gc2VsZi5fYnVmZmVyCi0KLSAgICAgICAgIyBmaW5pc2gg
cHJldmlvdXMgZGF0YWdyYW0KLSAgICAgICAgaWYgc2VsZi5fcGFja2V0IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fZW5kX3BhY2tldCgpCi0KLSAgICAgICAgIyBpZiB0aGVyZSBpcyB0
b28gbGl0dGxlIHNwYWNlIHJlbWFpbmluZywgc3RhcnQgYSBuZXcgZGF0YWdyYW0KLSAgICAgICAg
IyBGSVhNRTogdGhlIGxpbWl0IGlzIGFyYml0cmFyeSEKLSAgICAgICAgcGFja2V0X3N0YXJ0ID0g
YnVmLnRlbGwoKQotICAgICAgICBpZiBzZWxmLl9idWZmZXJfY2FwYWNpdHkgLSBwYWNrZXRfc3Rh
cnQgPCAxMjg6Ci0gICAgICAgICAgICBzZWxmLl9mbHVzaF9jdXJyZW50X2RhdGFncmFtKCkKLSAg
ICAgICAgICAgIHBhY2tldF9zdGFydCA9IDAKLQotICAgICAgICAjIGluaXRpYWxpemUgZGF0YWdy
YW0gaWYgbmVlZGVkCi0gICAgICAgIGlmIHNlbGYuX2RhdGFncmFtX2luaXQ6Ci0gICAgICAgICAg
ICBpZiBzZWxmLm1heF90b3RhbF9ieXRlcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBy
ZW1haW5pbmdfdG90YWxfYnl0ZXMgPSBzZWxmLm1heF90b3RhbF9ieXRlcyAtIHNlbGYuX3RvdGFs
X2J5dGVzCi0gICAgICAgICAgICAgICAgaWYgcmVtYWluaW5nX3RvdGFsX2J5dGVzIDwgc2VsZi5f
YnVmZmVyX2NhcGFjaXR5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXJfY2FwYWNp
dHkgPSByZW1haW5pbmdfdG90YWxfYnl0ZXMKLQotICAgICAgICAgICAgc2VsZi5fZmxpZ2h0X2Nh
cGFjaXR5ID0gc2VsZi5fYnVmZmVyX2NhcGFjaXR5Ci0gICAgICAgICAgICBpZiBzZWxmLm1heF9m
bGlnaHRfYnl0ZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmVtYWluaW5nX2ZsaWdo
dF9ieXRlcyA9IHNlbGYubWF4X2ZsaWdodF9ieXRlcyAtIHNlbGYuX2ZsaWdodF9ieXRlcwotICAg
ICAgICAgICAgICAgIGlmIHJlbWFpbmluZ19mbGlnaHRfYnl0ZXMgPCBzZWxmLl9mbGlnaHRfY2Fw
YWNpdHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZsaWdodF9jYXBhY2l0eSA9IHJlbWFp
bmluZ19mbGlnaHRfYnl0ZXMKLSAgICAgICAgICAgIHNlbGYuX2RhdGFncmFtX2ZsaWdodF9ieXRl
cyA9IDAKLSAgICAgICAgICAgIHNlbGYuX2RhdGFncmFtX2luaXQgPSBGYWxzZQotCi0gICAgICAg
ICMgY2FsY3VsYXRlIGhlYWRlciBzaXplCi0gICAgICAgIHBhY2tldF9sb25nX2hlYWRlciA9IGlz
X2xvbmdfaGVhZGVyKHBhY2tldF90eXBlKQotICAgICAgICBpZiBwYWNrZXRfbG9uZ19oZWFkZXI6
Ci0gICAgICAgICAgICBoZWFkZXJfc2l6ZSA9IDExICsgbGVuKHNlbGYuX3BlZXJfY2lkKSArIGxl
bihzZWxmLl9ob3N0X2NpZCkKLSAgICAgICAgICAgIGlmIChwYWNrZXRfdHlwZSAmIFBBQ0tFVF9U
WVBFX01BU0spID09IFBBQ0tFVF9UWVBFX0lOSVRJQUw6Ci0gICAgICAgICAgICAgICAgdG9rZW5f
bGVuZ3RoID0gbGVuKHNlbGYuX3BlZXJfdG9rZW4pCi0gICAgICAgICAgICAgICAgaGVhZGVyX3Np
emUgKz0gc2l6ZV91aW50X3Zhcih0b2tlbl9sZW5ndGgpICsgdG9rZW5fbGVuZ3RoCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBoZWFkZXJfc2l6ZSA9IDMgKyBsZW4oc2VsZi5fcGVlcl9jaWQp
Ci0KLSAgICAgICAgIyBjaGVjayB3ZSBoYXZlIGVub3VnaCBzcGFjZQotICAgICAgICBpZiBwYWNr
ZXRfc3RhcnQgKyBoZWFkZXJfc2l6ZSA+PSBzZWxmLl9idWZmZXJfY2FwYWNpdHk6Ci0gICAgICAg
ICAgICByYWlzZSBRdWljUGFja2V0QnVpbGRlclN0b3AKLQotICAgICAgICAjIGRldGVybWluZSBh
Y2sgZXBvY2gKLSAgICAgICAgaWYgcGFja2V0X3R5cGUgPT0gUEFDS0VUX1RZUEVfSU5JVElBTDoK
LSAgICAgICAgICAgIGVwb2NoID0gRXBvY2guSU5JVElBTAotICAgICAgICBlbGlmIHBhY2tldF90
eXBlID09IFBBQ0tFVF9UWVBFX0hBTkRTSEFLRToKLSAgICAgICAgICAgIGVwb2NoID0gRXBvY2gu
SEFORFNIQUtFCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBlcG9jaCA9IEVwb2NoLk9ORV9S
VFQKLQotICAgICAgICBzZWxmLl9oZWFkZXJfc2l6ZSA9IGhlYWRlcl9zaXplCi0gICAgICAgIHNl
bGYuX3BhY2tldCA9IFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgZXBvY2g9ZXBvY2gsCi0g
ICAgICAgICAgICBpbl9mbGlnaHQ9RmFsc2UsCi0gICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5n
PUZhbHNlLAotICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1GYWxzZSwKLSAgICAgICAgICAg
IHBhY2tldF9udW1iZXI9c2VsZi5fcGFja2V0X251bWJlciwKLSAgICAgICAgICAgIHBhY2tldF90
eXBlPXBhY2tldF90eXBlLAotICAgICAgICApCi0gICAgICAgIHNlbGYuX3BhY2tldF9jcnlwdG8g
PSBjcnlwdG8KLSAgICAgICAgc2VsZi5fcGFja2V0X2xvbmdfaGVhZGVyID0gcGFja2V0X2xvbmdf
aGVhZGVyCi0gICAgICAgIHNlbGYuX3BhY2tldF9zdGFydCA9IHBhY2tldF9zdGFydAotICAgICAg
ICBzZWxmLl9wYWNrZXRfdHlwZSA9IHBhY2tldF90eXBlCi0gICAgICAgIHNlbGYucXVpY19sb2dn
ZXJfZnJhbWVzID0gc2VsZi5fcGFja2V0LnF1aWNfbG9nZ2VyX2ZyYW1lcwotCi0gICAgICAgIGJ1
Zi5zZWVrKHNlbGYuX3BhY2tldF9zdGFydCArIHNlbGYuX2hlYWRlcl9zaXplKQotCi0gICAgZGVm
IF9lbmRfcGFja2V0KHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICIiIgotICAgICAgICBFbmRzIHRo
ZSBjdXJyZW50IHBhY2tldC4KLSAgICAgICAgIiIiCi0gICAgICAgIGJ1ZiA9IHNlbGYuX2J1ZmZl
cgotICAgICAgICBwYWNrZXRfc2l6ZSA9IGJ1Zi50ZWxsKCkgLSBzZWxmLl9wYWNrZXRfc3RhcnQK
LSAgICAgICAgaWYgcGFja2V0X3NpemUgPiBzZWxmLl9oZWFkZXJfc2l6ZToKLSAgICAgICAgICAg
ICMgcGFkIGluaXRpYWwgZGF0YWdyYW0KLSAgICAgICAgICAgIGlmICgKLSAgICAgICAgICAgICAg
ICBzZWxmLl9pc19jbGllbnQKLSAgICAgICAgICAgICAgICBhbmQgc2VsZi5fcGFja2V0X3R5cGUg
PT0gUEFDS0VUX1RZUEVfSU5JVElBTAotICAgICAgICAgICAgICAgIGFuZCBzZWxmLl9wYWNrZXQu
aXNfY3J5cHRvX3BhY2tldAotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBpZiBzZWxm
LnJlbWFpbmluZ19mbGlnaHRfc3BhY2U6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5
dGVzKGJ5dGVzKHNlbGYucmVtYWluaW5nX2ZsaWdodF9zcGFjZSkpCi0gICAgICAgICAgICAgICAg
ICAgIHBhY2tldF9zaXplID0gYnVmLnRlbGwoKSAtIHNlbGYuX3BhY2tldF9zdGFydAotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9wYWNrZXQuaW5fZmxpZ2h0ID0gVHJ1ZQotCi0gICAgICAgICAg
ICAgICAgICAgICMgbG9nIGZyYW1lCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNf
bG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFja2V0
LnF1aWNfbG9nZ2VyX2ZyYW1lcy5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3BhZGRpbmdfZnJhbWUoKQotICAgICAgICAgICAgICAg
ICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHdyaXRlIGhlYWRlcgotICAgICAgICAgICAgaWYg
c2VsZi5fcGFja2V0X2xvbmdfaGVhZGVyOgotICAgICAgICAgICAgICAgIGxlbmd0aCA9ICgKLSAg
ICAgICAgICAgICAgICAgICAgcGFja2V0X3NpemUKLSAgICAgICAgICAgICAgICAgICAgLSBzZWxm
Ll9oZWFkZXJfc2l6ZQotICAgICAgICAgICAgICAgICAgICArIFBBQ0tFVF9OVU1CRVJfU0VORF9T
SVpFCi0gICAgICAgICAgICAgICAgICAgICsgc2VsZi5fcGFja2V0X2NyeXB0by5hZWFkX3RhZ19z
aXplCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgYnVmLnNlZWsoc2VsZi5f
cGFja2V0X3N0YXJ0KQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQ4KHNlbGYuX3BhY2tl
dF90eXBlIHwgKFBBQ0tFVF9OVU1CRVJfU0VORF9TSVpFIC0gMSkpCi0gICAgICAgICAgICAgICAg
YnVmLnB1c2hfdWludDMyKHNlbGYuX3ZlcnNpb24pCi0gICAgICAgICAgICAgICAgYnVmLnB1c2hf
dWludDgobGVuKHNlbGYuX3BlZXJfY2lkKSkKLSAgICAgICAgICAgICAgICBidWYucHVzaF9ieXRl
cyhzZWxmLl9wZWVyX2NpZCkKLSAgICAgICAgICAgICAgICBidWYucHVzaF91aW50OChsZW4oc2Vs
Zi5faG9zdF9jaWQpKQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKHNlbGYuX2hvc3Rf
Y2lkKQotICAgICAgICAgICAgICAgIGlmIChzZWxmLl9wYWNrZXRfdHlwZSAmIFBBQ0tFVF9UWVBF
X01BU0spID09IFBBQ0tFVF9UWVBFX0lOSVRJQUw6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5w
dXNoX3VpbnRfdmFyKGxlbihzZWxmLl9wZWVyX3Rva2VuKSkKLSAgICAgICAgICAgICAgICAgICAg
YnVmLnB1c2hfYnl0ZXMoc2VsZi5fcGVlcl90b2tlbikKLSAgICAgICAgICAgICAgICBidWYucHVz
aF91aW50MTYobGVuZ3RoIHwgMHg0MDAwKQotICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX3VpbnQx
NihzZWxmLl9wYWNrZXRfbnVtYmVyICYgMHhGRkZGKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBidWYuc2VlayhzZWxmLl9wYWNrZXRfc3RhcnQpCi0gICAgICAgICAgICAgICAg
YnVmLnB1c2hfdWludDgoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhY2tldF90eXBlCi0g
ICAgICAgICAgICAgICAgICAgIHwgKHNlbGYuX3NwaW5fYml0IDw8IDUpCi0gICAgICAgICAgICAg
ICAgICAgIHwgKHNlbGYuX3BhY2tldF9jcnlwdG8ua2V5X3BoYXNlIDw8IDIpCi0gICAgICAgICAg
ICAgICAgICAgIHwgKFBBQ0tFVF9OVU1CRVJfU0VORF9TSVpFIC0gMSkKLSAgICAgICAgICAgICAg
ICApCi0gICAgICAgICAgICAgICAgYnVmLnB1c2hfYnl0ZXMoc2VsZi5fcGVlcl9jaWQpCi0gICAg
ICAgICAgICAgICAgYnVmLnB1c2hfdWludDE2KHNlbGYuX3BhY2tldF9udW1iZXIgJiAweEZGRkYp
Ci0KLSAgICAgICAgICAgICAgICAjIGNoZWNrIHdoZXRoZXIgd2UgbmVlZCBwYWRkaW5nCi0gICAg
ICAgICAgICAgICAgcGFkZGluZ19zaXplID0gKAotICAgICAgICAgICAgICAgICAgICBQQUNLRVRf
TlVNQkVSX01BWF9TSVpFCi0gICAgICAgICAgICAgICAgICAgIC0gUEFDS0VUX05VTUJFUl9TRU5E
X1NJWkUKLSAgICAgICAgICAgICAgICAgICAgKyBzZWxmLl9oZWFkZXJfc2l6ZQotICAgICAgICAg
ICAgICAgICAgICAtIHBhY2tldF9zaXplCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
ICAgIGlmIHBhZGRpbmdfc2l6ZSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5zZWVrKHNl
bGYuX3BhY2tldF9zdGFydCArIHBhY2tldF9zaXplKQotICAgICAgICAgICAgICAgICAgICBidWYu
cHVzaF9ieXRlcyhieXRlcyhwYWRkaW5nX3NpemUpKQotICAgICAgICAgICAgICAgICAgICBwYWNr
ZXRfc2l6ZSArPSBwYWRkaW5nX3NpemUKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFja2V0
LmluX2ZsaWdodCA9IFRydWUKLQotICAgICAgICAgICAgICAgICAgICAjIGxvZyBmcmFtZQotICAg
ICAgICAgICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhY2tldC5xdWljX2xvZ2dlcl9mcmFtZXMuYXBwZW5k
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmVuY29kZV9w
YWRkaW5nX2ZyYW1lKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAg
IyBlbmNyeXB0IGluIHBsYWNlCi0gICAgICAgICAgICBwbGFpbiA9IGJ1Zi5kYXRhX3NsaWNlKHNl
bGYuX3BhY2tldF9zdGFydCwgc2VsZi5fcGFja2V0X3N0YXJ0ICsgcGFja2V0X3NpemUpCi0gICAg
ICAgICAgICBidWYuc2VlayhzZWxmLl9wYWNrZXRfc3RhcnQpCi0gICAgICAgICAgICBidWYucHVz
aF9ieXRlcygKLSAgICAgICAgICAgICAgICBzZWxmLl9wYWNrZXRfY3J5cHRvLmVuY3J5cHRfcGFj
a2V0KAotICAgICAgICAgICAgICAgICAgICBwbGFpblswIDogc2VsZi5faGVhZGVyX3NpemVdLAot
ICAgICAgICAgICAgICAgICAgICBwbGFpbltzZWxmLl9oZWFkZXJfc2l6ZSA6IHBhY2tldF9zaXpl
XSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFja2V0X251bWJlciwKLSAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9wYWNrZXQuc2VudF9ieXRl
cyA9IGJ1Zi50ZWxsKCkgLSBzZWxmLl9wYWNrZXRfc3RhcnQKLSAgICAgICAgICAgIHNlbGYuX3Bh
Y2tldHMuYXBwZW5kKHNlbGYuX3BhY2tldCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3BhY2tldC5p
bl9mbGlnaHQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZGF0YWdyYW1fZmxpZ2h0X2J5dGVzICs9
IHNlbGYuX3BhY2tldC5zZW50X2J5dGVzCi0KLSAgICAgICAgICAgICMgc2hvcnQgaGVhZGVyIHBh
Y2tldHMgY2Fubm90IGJlIGNvYWxsZXNjZWQsIHdlIG5lZWQgYSBuZXcgZGF0YWdyYW0KLSAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl9wYWNrZXRfbG9uZ19oZWFkZXI6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fZmx1c2hfY3VycmVudF9kYXRhZ3JhbSgpCi0KLSAgICAgICAgICAgIHNlbGYuX3BhY2tl
dF9udW1iZXIgKz0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyAiY2FuY2VsIiB0aGUg
cGFja2V0Ci0gICAgICAgICAgICBidWYuc2VlayhzZWxmLl9wYWNrZXRfc3RhcnQpCi0KLSAgICAg
ICAgc2VsZi5fcGFja2V0ID0gTm9uZQotICAgICAgICBzZWxmLnF1aWNfbG9nZ2VyX2ZyYW1lcyA9
IE5vbmUKLQotICAgIGRlZiBfZmx1c2hfY3VycmVudF9kYXRhZ3JhbShzZWxmKSAtPiBOb25lOgot
ICAgICAgICBkYXRhZ3JhbV9ieXRlcyA9IHNlbGYuX2J1ZmZlci50ZWxsKCkKLSAgICAgICAgaWYg
ZGF0YWdyYW1fYnl0ZXM6Ci0gICAgICAgICAgICBzZWxmLl9kYXRhZ3JhbXMuYXBwZW5kKHNlbGYu
X2J1ZmZlci5kYXRhKQotICAgICAgICAgICAgc2VsZi5fZmxpZ2h0X2J5dGVzICs9IHNlbGYuX2Rh
dGFncmFtX2ZsaWdodF9ieXRlcwotICAgICAgICAgICAgc2VsZi5fdG90YWxfYnl0ZXMgKz0gZGF0
YWdyYW1fYnl0ZXMKLSAgICAgICAgICAgIHNlbGYuX2RhdGFncmFtX2luaXQgPSBUcnVlCi0gICAg
ICAgICAgICBzZWxmLl9idWZmZXIuc2VlaygwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Ny
Yy9haW9xdWljL3F1aWMvcmFuZ2VzZXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVp
Yy9yYW5nZXNldC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODYwODZjOWM3NGY3
NzU2MDMyMDg2OTAwNzZiZWU5NjM4MTQ2MTFiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yYW5nZXNl
dC5weQorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLWZyb20gY29sbGVjdGlvbnMuYWJj
IGltcG9ydCBTZXF1ZW5jZQotZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgSXRlcmFibGUsIExpc3Qs
IE9wdGlvbmFsCi0KLQotY2xhc3MgUmFuZ2VTZXQoU2VxdWVuY2UpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByYW5nZXM6IEl0ZXJhYmxlW3JhbmdlXSA9IFtdKToKLSAgICAgICAgc2VsZi5fX3Jh
bmdlczogTGlzdFtyYW5nZV0gPSBbXQotICAgICAgICBmb3IgciBpbiByYW5nZXM6Ci0gICAgICAg
ICAgICBhc3NlcnQgci5zdGVwID09IDEKLSAgICAgICAgICAgIHNlbGYuYWRkKHIuc3RhcnQsIHIu
c3RvcCkKLQotICAgIGRlZiBhZGQoc2VsZiwgc3RhcnQ6IGludCwgc3RvcDogT3B0aW9uYWxbaW50
XSA9IE5vbmUpIC0+IE5vbmU6Ci0gICAgICAgIGlmIHN0b3AgaXMgTm9uZToKLSAgICAgICAgICAg
IHN0b3AgPSBzdGFydCArIDEKLSAgICAgICAgYXNzZXJ0IHN0b3AgPiBzdGFydAotCi0gICAgICAg
IGZvciBpLCByIGluIGVudW1lcmF0ZShzZWxmLl9fcmFuZ2VzKToKLSAgICAgICAgICAgICMgdGhl
IGFkZGVkIHJhbmdlIGlzIGVudGlyZWx5IGJlZm9yZSBjdXJyZW50IGl0ZW0sIGluc2VydCBoZXJl
Ci0gICAgICAgICAgICBpZiBzdG9wIDwgci5zdGFydDoKLSAgICAgICAgICAgICAgICBzZWxmLl9f
cmFuZ2VzLmluc2VydChpLCByYW5nZShzdGFydCwgc3RvcCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuCi0KLSAgICAgICAgICAgICMgdGhlIGFkZGVkIHJhbmdlIGlzIGVudGlyZWx5IGFmdGVyIGN1
cnJlbnQgaXRlbSwga2VlcCBsb29raW5nCi0gICAgICAgICAgICBpZiBzdGFydCA+IHIuc3RvcDoK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAjIHRoZSBhZGRlZCByYW5n
ZSB0b3VjaGVzIHRoZSBjdXJyZW50IGl0ZW0sIG1lcmdlIGl0Ci0gICAgICAgICAgICBzdGFydCA9
IG1pbihzdGFydCwgci5zdGFydCkKLSAgICAgICAgICAgIHN0b3AgPSBtYXgoc3RvcCwgci5zdG9w
KQotICAgICAgICAgICAgd2hpbGUgaSA8IGxlbihzZWxmLl9fcmFuZ2VzKSAtIDEgYW5kIHNlbGYu
X19yYW5nZXNbaSArIDFdLnN0YXJ0IDw9IHN0b3A6Ci0gICAgICAgICAgICAgICAgc3RvcCA9IG1h
eChzZWxmLl9fcmFuZ2VzW2kgKyAxXS5zdG9wLCBzdG9wKQotICAgICAgICAgICAgICAgIHNlbGYu
X19yYW5nZXMucG9wKGkgKyAxKQotICAgICAgICAgICAgc2VsZi5fX3Jhbmdlc1tpXSA9IHJhbmdl
KHN0YXJ0LCBzdG9wKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyB0aGUgYWRkZWQg
cmFuZ2UgaXMgZW50aXJlbHkgYWZ0ZXIgYWxsIGV4aXN0aW5nIGl0ZW1zLCBhcHBlbmQgaXQKLSAg
ICAgICAgc2VsZi5fX3Jhbmdlcy5hcHBlbmQocmFuZ2Uoc3RhcnQsIHN0b3ApKQotCi0gICAgZGVm
IGJvdW5kcyhzZWxmKSAtPiByYW5nZToKLSAgICAgICAgcmV0dXJuIHJhbmdlKHNlbGYuX19yYW5n
ZXNbMF0uc3RhcnQsIHNlbGYuX19yYW5nZXNbLTFdLnN0b3ApCi0KLSAgICBkZWYgc2hpZnQoc2Vs
ZikgLT4gcmFuZ2U6Ci0gICAgICAgIHJldHVybiBzZWxmLl9fcmFuZ2VzLnBvcCgwKQotCi0gICAg
ZGVmIHN1YnRyYWN0KHNlbGYsIHN0YXJ0OiBpbnQsIHN0b3A6IGludCkgLT4gTm9uZToKLSAgICAg
ICAgYXNzZXJ0IHN0b3AgPiBzdGFydAotCi0gICAgICAgIGkgPSAwCi0gICAgICAgIHdoaWxlIGkg
PCBsZW4oc2VsZi5fX3Jhbmdlcyk6Ci0gICAgICAgICAgICByID0gc2VsZi5fX3Jhbmdlc1tpXQot
Ci0gICAgICAgICAgICAjIHRoZSByZW1vdmVkIHJhbmdlIGlzIGVudGlyZWx5IGJlZm9yZSBjdXJy
ZW50IGl0ZW0sIHN0b3AgaGVyZQotICAgICAgICAgICAgaWYgc3RvcCA8PSByLnN0YXJ0OgotICAg
ICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICAgICAjIHRoZSByZW1vdmVkIHJhbmdlIGlz
IGVudGlyZWx5IGFmdGVyIGN1cnJlbnQgaXRlbSwga2VlcCBsb29raW5nCi0gICAgICAgICAgICBp
ZiBzdGFydCA+PSByLnN0b3A6Ci0gICAgICAgICAgICAgICAgaSArPSAxCi0gICAgICAgICAgICAg
ICAgY29udGludWUKLQotICAgICAgICAgICAgIyB0aGUgcmVtb3ZlZCByYW5nZSBjb21wbGV0ZWx5
IGNvdmVycyB0aGUgY3VycmVudCBpdGVtLCByZW1vdmUgaXQKLSAgICAgICAgICAgIGlmIHN0YXJ0
IDw9IHIuc3RhcnQgYW5kIHN0b3AgPj0gci5zdG9wOgotICAgICAgICAgICAgICAgIHNlbGYuX19y
YW5nZXMucG9wKGkpCi0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgIyB0
aGUgcmVtb3ZlZCByYW5nZSB0b3VjaGVzIHRoZSBjdXJyZW50IGl0ZW0KLSAgICAgICAgICAgIGlm
IHN0YXJ0ID4gci5zdGFydDoKLSAgICAgICAgICAgICAgICBzZWxmLl9fcmFuZ2VzW2ldID0gcmFu
Z2Uoci5zdGFydCwgc3RhcnQpCi0gICAgICAgICAgICAgICAgaWYgc3RvcCA8IHIuc3RvcDoKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fX3Jhbmdlcy5pbnNlcnQoaSArIDEsIHJhbmdlKHN0b3As
IHIuc3RvcCkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX19yYW5n
ZXNbaV0gPSByYW5nZShzdG9wLCByLnN0b3ApCi0KLSAgICAgICAgICAgIGkgKz0gMQotCi0gICAg
ZGVmIF9fYm9vbF9fKHNlbGYpIC0+IGJvb2w6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKLQotICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgdmFsOiBBbnkpIC0+IGJvb2w6Ci0g
ICAgICAgIGZvciByIGluIHNlbGYuX19yYW5nZXM6Ci0gICAgICAgICAgICBpZiB2YWwgaW4gcjoK
LSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IGRlZiBfX2VxX18oc2VsZiwgb3RoZXI6IG9iamVjdCkgLT4gYm9vbDoKLSAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2Uob3RoZXIsIFJhbmdlU2V0KToKLSAgICAgICAgICAgIHJldHVybiBOb3RJbXBs
ZW1lbnRlZAotCi0gICAgICAgIHJldHVybiBzZWxmLl9fcmFuZ2VzID09IG90aGVyLl9fcmFuZ2Vz
Ci0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5OiBBbnkpIC0+IHJhbmdlOgotICAgICAg
ICByZXR1cm4gc2VsZi5fX3Jhbmdlc1trZXldCi0KLSAgICBkZWYgX19sZW5fXyhzZWxmKSAtPiBp
bnQ6Ci0gICAgICAgIHJldHVybiBsZW4oc2VsZi5fX3JhbmdlcykKLQotICAgIGRlZiBfX3JlcHJf
XyhzZWxmKSAtPiBzdHI6Ci0gICAgICAgIHJldHVybiAiUmFuZ2VTZXQoe30pIi5mb3JtYXQocmVw
cihzZWxmLl9fcmFuZ2VzKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9x
dWljL3JlY292ZXJ5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcmVjb3Zlcnku
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhYmViMWVjZjU2NjFmNzFjOTNlNzdi
ZjdmYTYyYTcxNjJmMzg3MGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcmVjb3ZlcnkucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OTcgKzAsMCBAQAotaW1wb3J0IG1hdGgKLWZyb20gdHlwaW5nIGltcG9y
dCBDYWxsYWJsZSwgRGljdCwgSXRlcmFibGUsIExpc3QsIE9wdGlvbmFsCi0KLWZyb20gLmxvZ2dl
ciBpbXBvcnQgUXVpY0xvZ2dlclRyYWNlCi1mcm9tIC5wYWNrZXRfYnVpbGRlciBpbXBvcnQgUXVp
Y0RlbGl2ZXJ5U3RhdGUsIFF1aWNTZW50UGFja2V0Ci1mcm9tIC5yYW5nZXNldCBpbXBvcnQgUmFu
Z2VTZXQKLQotIyBsb3NzIGRldGVjdGlvbgotS19QQUNLRVRfVEhSRVNIT0xEID0gMwotS19JTklU
SUFMX1JUVCA9IDAuNSAgIyBzZWNvbmRzCi1LX0dSQU5VTEFSSVRZID0gMC4wMDEgICMgc2Vjb25k
cwotS19USU1FX1RIUkVTSE9MRCA9IDkgLyA4Ci1LX01JQ1JPX1NFQ09ORCA9IDAuMDAwMDAxCi1L
X1NFQ09ORCA9IDEuMAotCi0jIGNvbmdlc3Rpb24gY29udHJvbAotS19NQVhfREFUQUdSQU1fU0la
RSA9IDEyODAKLUtfSU5JVElBTF9XSU5ET1cgPSAxMCAqIEtfTUFYX0RBVEFHUkFNX1NJWkUKLUtf
TUlOSU1VTV9XSU5ET1cgPSAyICogS19NQVhfREFUQUdSQU1fU0laRQotS19MT1NTX1JFRFVDVElP
Tl9GQUNUT1IgPSAwLjUKLQotCi1jbGFzcyBRdWljUGFja2V0U3BhY2U6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYuYWNrX2F0OiBPcHRpb25hbFtmbG9hdF0g
PSBOb25lCi0gICAgICAgIHNlbGYuYWNrX3F1ZXVlID0gUmFuZ2VTZXQoKQotICAgICAgICBzZWxm
LmRpc2NhcmRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYuZXhwZWN0ZWRfcGFja2V0X251bWJlciA9
IDAKLSAgICAgICAgc2VsZi5sYXJnZXN0X3JlY2VpdmVkX3BhY2tldCA9IC0xCi0gICAgICAgIHNl
bGYubGFyZ2VzdF9yZWNlaXZlZF90aW1lOiBPcHRpb25hbFtmbG9hdF0gPSBOb25lCi0KLSAgICAg
ICAgIyBzZW50IHBhY2tldHMgYW5kIGxvc3MKLSAgICAgICAgc2VsZi5hY2tfZWxpY2l0aW5nX2lu
X2ZsaWdodCA9IDAKLSAgICAgICAgc2VsZi5sYXJnZXN0X2Fja2VkX3BhY2tldCA9IDAKLSAgICAg
ICAgc2VsZi5sb3NzX3RpbWU6IE9wdGlvbmFsW2Zsb2F0XSA9IE5vbmUKLSAgICAgICAgc2VsZi5z
ZW50X3BhY2tldHM6IERpY3RbaW50LCBRdWljU2VudFBhY2tldF0gPSB7fQotCi0KLWNsYXNzIFF1
aWNQYWNrZXRQYWNlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZikgLT4gTm9uZToKLSAgICAgICAg
c2VsZi5idWNrZXRfbWF4OiBmbG9hdCA9IDAuMAotICAgICAgICBzZWxmLmJ1Y2tldF90aW1lOiBm
bG9hdCA9IDAuMAotICAgICAgICBzZWxmLmV2YWx1YXRpb25fdGltZTogZmxvYXQgPSAwLjAKLSAg
ICAgICAgc2VsZi5wYWNrZXRfdGltZTogT3B0aW9uYWxbZmxvYXRdID0gTm9uZQotCi0gICAgZGVm
IG5leHRfc2VuZF90aW1lKHNlbGYsIG5vdzogZmxvYXQpIC0+IGZsb2F0OgotICAgICAgICBpZiBz
ZWxmLnBhY2tldF90aW1lIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi51cGRhdGVfYnVj
a2V0KG5vdz1ub3cpCi0gICAgICAgICAgICBpZiBzZWxmLmJ1Y2tldF90aW1lIDw9IDA6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIG5vdyArIHNlbGYucGFja2V0X3RpbWUKLSAgICAgICAgcmV0dXJu
IE5vbmUKLQotICAgIGRlZiB1cGRhdGVfYWZ0ZXJfc2VuZChzZWxmLCBub3c6IGZsb2F0KSAtPiBO
b25lOgotICAgICAgICBpZiBzZWxmLnBhY2tldF90aW1lIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgc2VsZi51cGRhdGVfYnVja2V0KG5vdz1ub3cpCi0gICAgICAgICAgICBpZiBzZWxmLmJ1Y2tl
dF90aW1lIDwgc2VsZi5wYWNrZXRfdGltZToKLSAgICAgICAgICAgICAgICBzZWxmLmJ1Y2tldF90
aW1lID0gMC4wCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuYnVja2V0
X3RpbWUgLT0gc2VsZi5wYWNrZXRfdGltZQotCi0gICAgZGVmIHVwZGF0ZV9idWNrZXQoc2VsZiwg
bm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgaWYgbm93ID4gc2VsZi5ldmFsdWF0aW9uX3Rp
bWU6Ci0gICAgICAgICAgICBzZWxmLmJ1Y2tldF90aW1lID0gbWluKAotICAgICAgICAgICAgICAg
IHNlbGYuYnVja2V0X3RpbWUgKyAobm93IC0gc2VsZi5ldmFsdWF0aW9uX3RpbWUpLCBzZWxmLmJ1
Y2tldF9tYXgKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuZXZhbHVhdGlvbl90aW1l
ID0gbm93Ci0KLSAgICBkZWYgdXBkYXRlX3JhdGUoc2VsZiwgY29uZ2VzdGlvbl93aW5kb3c6IGlu
dCwgc21vb3RoZWRfcnR0OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgcGFjaW5nX3JhdGUgPSBj
b25nZXN0aW9uX3dpbmRvdyAvIG1heChzbW9vdGhlZF9ydHQsIEtfTUlDUk9fU0VDT05EKQotICAg
ICAgICBzZWxmLnBhY2tldF90aW1lID0gbWF4KAotICAgICAgICAgICAgS19NSUNST19TRUNPTkQs
IG1pbihLX01BWF9EQVRBR1JBTV9TSVpFIC8gcGFjaW5nX3JhdGUsIEtfU0VDT05EKQotICAgICAg
ICApCi0KLSAgICAgICAgc2VsZi5idWNrZXRfbWF4ID0gKAotICAgICAgICAgICAgbWF4KAotICAg
ICAgICAgICAgICAgIDIgKiBLX01BWF9EQVRBR1JBTV9TSVpFLAotICAgICAgICAgICAgICAgIG1p
bihjb25nZXN0aW9uX3dpbmRvdyAvLyA0LCAxNiAqIEtfTUFYX0RBVEFHUkFNX1NJWkUpLAotICAg
ICAgICAgICAgKQotICAgICAgICAgICAgLyBwYWNpbmdfcmF0ZQotICAgICAgICApCi0gICAgICAg
IGlmIHNlbGYuYnVja2V0X3RpbWUgPiBzZWxmLmJ1Y2tldF9tYXg6Ci0gICAgICAgICAgICBzZWxm
LmJ1Y2tldF90aW1lID0gc2VsZi5idWNrZXRfbWF4Ci0KLQotY2xhc3MgUXVpY0Nvbmdlc3Rpb25D
b250cm9sOgotICAgICIiIgotICAgIE5ldyBSZW5vIGNvbmdlc3Rpb24gY29udHJvbC4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxmLmJ5dGVz
X2luX2ZsaWdodCA9IDAKLSAgICAgICAgc2VsZi5jb25nZXN0aW9uX3dpbmRvdyA9IEtfSU5JVElB
TF9XSU5ET1cKLSAgICAgICAgc2VsZi5fY29uZ2VzdGlvbl9yZWNvdmVyeV9zdGFydF90aW1lID0g
MC4wCi0gICAgICAgIHNlbGYuX2Nvbmdlc3Rpb25fc3Rhc2ggPSAwCi0gICAgICAgIHNlbGYuX3J0
dF9tb25pdG9yID0gUXVpY1J0dE1vbml0b3IoKQotICAgICAgICBzZWxmLnNzdGhyZXNoOiBPcHRp
b25hbFtpbnRdID0gTm9uZQotCi0gICAgZGVmIG9uX3BhY2tldF9hY2tlZChzZWxmLCBwYWNrZXQ6
IFF1aWNTZW50UGFja2V0KSAtPiBOb25lOgotICAgICAgICBzZWxmLmJ5dGVzX2luX2ZsaWdodCAt
PSBwYWNrZXQuc2VudF9ieXRlcwotCi0gICAgICAgICMgZG9uJ3QgaW5jcmVhc2Ugd2luZG93IGlu
IGNvbmdlc3Rpb24gcmVjb3ZlcnkKLSAgICAgICAgaWYgcGFja2V0LnNlbnRfdGltZSA8PSBzZWxm
Ll9jb25nZXN0aW9uX3JlY292ZXJ5X3N0YXJ0X3RpbWU6Ci0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBpZiBzZWxmLnNzdGhyZXNoIGlzIE5vbmUgb3Igc2VsZi5jb25nZXN0aW9uX3dpbmRv
dyA8IHNlbGYuc3N0aHJlc2g6Ci0gICAgICAgICAgICAjIHNsb3cgc3RhcnQKLSAgICAgICAgICAg
IHNlbGYuY29uZ2VzdGlvbl93aW5kb3cgKz0gcGFja2V0LnNlbnRfYnl0ZXMKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICMgY29uZ2VzdGlvbiBhdm9pZGFuY2UKLSAgICAgICAgICAgIHNlbGYu
X2Nvbmdlc3Rpb25fc3Rhc2ggKz0gcGFja2V0LnNlbnRfYnl0ZXMKLSAgICAgICAgICAgIGNvdW50
ID0gc2VsZi5fY29uZ2VzdGlvbl9zdGFzaCAvLyBzZWxmLmNvbmdlc3Rpb25fd2luZG93Ci0gICAg
ICAgICAgICBpZiBjb3VudDoKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25nZXN0aW9uX3N0YXNo
IC09IGNvdW50ICogc2VsZi5jb25nZXN0aW9uX3dpbmRvdwotICAgICAgICAgICAgICAgIHNlbGYu
Y29uZ2VzdGlvbl93aW5kb3cgKz0gY291bnQgKiBLX01BWF9EQVRBR1JBTV9TSVpFCi0KLSAgICBk
ZWYgb25fcGFja2V0X3NlbnQoc2VsZiwgcGFja2V0OiBRdWljU2VudFBhY2tldCkgLT4gTm9uZToK
LSAgICAgICAgc2VsZi5ieXRlc19pbl9mbGlnaHQgKz0gcGFja2V0LnNlbnRfYnl0ZXMKLQotICAg
IGRlZiBvbl9wYWNrZXRzX2V4cGlyZWQoc2VsZiwgcGFja2V0czogSXRlcmFibGVbUXVpY1NlbnRQ
YWNrZXRdKSAtPiBOb25lOgotICAgICAgICBmb3IgcGFja2V0IGluIHBhY2tldHM6Ci0gICAgICAg
ICAgICBzZWxmLmJ5dGVzX2luX2ZsaWdodCAtPSBwYWNrZXQuc2VudF9ieXRlcwotCi0gICAgZGVm
IG9uX3BhY2tldHNfbG9zdChzZWxmLCBwYWNrZXRzOiBJdGVyYWJsZVtRdWljU2VudFBhY2tldF0s
IG5vdzogZmxvYXQpIC0+IE5vbmU6Ci0gICAgICAgIGxvc3RfbGFyZ2VzdF90aW1lID0gMC4wCi0g
ICAgICAgIGZvciBwYWNrZXQgaW4gcGFja2V0czoKLSAgICAgICAgICAgIHNlbGYuYnl0ZXNfaW5f
ZmxpZ2h0IC09IHBhY2tldC5zZW50X2J5dGVzCi0gICAgICAgICAgICBsb3N0X2xhcmdlc3RfdGlt
ZSA9IHBhY2tldC5zZW50X3RpbWUKLQotICAgICAgICAjIHN0YXJ0IGEgbmV3IGNvbmdlc3Rpb24g
ZXZlbnQgaWYgcGFja2V0IHdhcyBzZW50IGFmdGVyIHRoZQotICAgICAgICAjIHN0YXJ0IG9mIHRo
ZSBwcmV2aW91cyBjb25nZXN0aW9uIHJlY292ZXJ5IHBlcmlvZC4KLSAgICAgICAgaWYgbG9zdF9s
YXJnZXN0X3RpbWUgPiBzZWxmLl9jb25nZXN0aW9uX3JlY292ZXJ5X3N0YXJ0X3RpbWU6Ci0gICAg
ICAgICAgICBzZWxmLl9jb25nZXN0aW9uX3JlY292ZXJ5X3N0YXJ0X3RpbWUgPSBub3cKLSAgICAg
ICAgICAgIHNlbGYuY29uZ2VzdGlvbl93aW5kb3cgPSBtYXgoCi0gICAgICAgICAgICAgICAgaW50
KHNlbGYuY29uZ2VzdGlvbl93aW5kb3cgKiBLX0xPU1NfUkVEVUNUSU9OX0ZBQ1RPUiksIEtfTUlO
SU1VTV9XSU5ET1cKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuc3N0aHJlc2ggPSBz
ZWxmLmNvbmdlc3Rpb25fd2luZG93Ci0KLSAgICAgICAgIyBUT0RPIDogY29sbGFwc2UgY29uZ2Vz
dGlvbiB3aW5kb3cgaWYgcGVyc2lzdGVudCBjb25nZXN0aW9uCi0KLSAgICBkZWYgb25fcnR0X21l
YXN1cmVtZW50KHNlbGYsIGxhdGVzdF9ydHQ6IGZsb2F0LCBub3c6IGZsb2F0KSAtPiBOb25lOgot
ICAgICAgICAjIGNoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIGV4aXQgc2xvdyBzdGFydAotICAgICAg
ICBpZiBzZWxmLnNzdGhyZXNoIGlzIE5vbmUgYW5kIHNlbGYuX3J0dF9tb25pdG9yLmlzX3J0dF9p
bmNyZWFzaW5nKAotICAgICAgICAgICAgbGF0ZXN0X3J0dCwgbm93Ci0gICAgICAgICk6Ci0gICAg
ICAgICAgICBzZWxmLnNzdGhyZXNoID0gc2VsZi5jb25nZXN0aW9uX3dpbmRvdwotCi0KLWNsYXNz
IFF1aWNQYWNrZXRSZWNvdmVyeToKLSAgICAiIiIKLSAgICBQYWNrZXQgbG9zcyBhbmQgY29uZ2Vz
dGlvbiBjb250cm9sbGVyLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBz
ZWxmLAotICAgICAgICBpc19jbGllbnRfd2l0aG91dF8xcnR0OiBib29sLAotICAgICAgICBzZW5k
X3Byb2JlOiBDYWxsYWJsZVtbXSwgTm9uZV0sCi0gICAgICAgIHF1aWNfbG9nZ2VyOiBPcHRpb25h
bFtRdWljTG9nZ2VyVHJhY2VdID0gTm9uZSwKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIHNlbGYu
aXNfY2xpZW50X3dpdGhvdXRfMXJ0dCA9IGlzX2NsaWVudF93aXRob3V0XzFydHQKLSAgICAgICAg
c2VsZi5tYXhfYWNrX2RlbGF5ID0gMC4wMjUKLSAgICAgICAgc2VsZi5zcGFjZXM6IExpc3RbUXVp
Y1BhY2tldFNwYWNlXSA9IFtdCi0KLSAgICAgICAgIyBjYWxsYmFja3MKLSAgICAgICAgc2VsZi5f
cXVpY19sb2dnZXIgPSBxdWljX2xvZ2dlcgotICAgICAgICBzZWxmLl9zZW5kX3Byb2JlID0gc2Vu
ZF9wcm9iZQotCi0gICAgICAgICMgbG9zcyBkZXRlY3Rpb24KLSAgICAgICAgc2VsZi5fcHRvX2Nv
dW50ID0gMAotICAgICAgICBzZWxmLl9ydHRfaW5pdGlhbGl6ZWQgPSBGYWxzZQotICAgICAgICBz
ZWxmLl9ydHRfbGF0ZXN0ID0gMC4wCi0gICAgICAgIHNlbGYuX3J0dF9taW4gPSBtYXRoLmluZgot
ICAgICAgICBzZWxmLl9ydHRfc21vb3RoZWQgPSAwLjAKLSAgICAgICAgc2VsZi5fcnR0X3Zhcmlh
bmNlID0gMC4wCi0gICAgICAgIHNlbGYuX3RpbWVfb2ZfbGFzdF9zZW50X2Fja19lbGljaXRpbmdf
cGFja2V0ID0gMC4wCi0KLSAgICAgICAgIyBjb25nZXN0aW9uIGNvbnRyb2wKLSAgICAgICAgc2Vs
Zi5fY2MgPSBRdWljQ29uZ2VzdGlvbkNvbnRyb2woKQotICAgICAgICBzZWxmLl9wYWNlciA9IFF1
aWNQYWNrZXRQYWNlcigpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgYnl0ZXNfaW5fZmxpZ2h0
KHNlbGYpIC0+IGludDoKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NjLmJ5dGVzX2luX2ZsaWdodAot
Ci0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGNvbmdlc3Rpb25fd2luZG93KHNlbGYpIC0+IGludDoK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2NjLmNvbmdlc3Rpb25fd2luZG93Ci0KLSAgICBkZWYgZGlz
Y2FyZF9zcGFjZShzZWxmLCBzcGFjZTogUXVpY1BhY2tldFNwYWNlKSAtPiBOb25lOgotICAgICAg
ICBhc3NlcnQgc3BhY2UgaW4gc2VsZi5zcGFjZXMKLQotICAgICAgICBzZWxmLl9jYy5vbl9wYWNr
ZXRzX2V4cGlyZWQoCi0gICAgICAgICAgICBmaWx0ZXIobGFtYmRhIHg6IHguaW5fZmxpZ2h0LCBz
cGFjZS5zZW50X3BhY2tldHMudmFsdWVzKCkpCi0gICAgICAgICkKLSAgICAgICAgc3BhY2Uuc2Vu
dF9wYWNrZXRzLmNsZWFyKCkKLQotICAgICAgICBzcGFjZS5hY2tfYXQgPSBOb25lCi0gICAgICAg
IHNwYWNlLmFja19lbGljaXRpbmdfaW5fZmxpZ2h0ID0gMAotICAgICAgICBzcGFjZS5sb3NzX3Rp
bWUgPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5fcXVpY19sb2dnZXIgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLl9sb2dfbWV0cmljc191cGRhdGVkKCkKLQotICAgIGRlZiBnZXRfZWFy
bGllc3RfbG9zc19zcGFjZShzZWxmKSAtPiBPcHRpb25hbFtRdWljUGFja2V0U3BhY2VdOgotICAg
ICAgICBsb3NzX3NwYWNlID0gTm9uZQotICAgICAgICBmb3Igc3BhY2UgaW4gc2VsZi5zcGFjZXM6
Ci0gICAgICAgICAgICBpZiBzcGFjZS5sb3NzX3RpbWUgaXMgbm90IE5vbmUgYW5kICgKLSAgICAg
ICAgICAgICAgICBsb3NzX3NwYWNlIGlzIE5vbmUgb3Igc3BhY2UubG9zc190aW1lIDwgbG9zc19z
cGFjZS5sb3NzX3RpbWUKLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgbG9zc19zcGFj
ZSA9IHNwYWNlCi0gICAgICAgIHJldHVybiBsb3NzX3NwYWNlCi0KLSAgICBkZWYgZ2V0X2xvc3Nf
ZGV0ZWN0aW9uX3RpbWUoc2VsZikgLT4gZmxvYXQ6Ci0gICAgICAgICMgbG9zcyB0aW1lcgotICAg
ICAgICBsb3NzX3NwYWNlID0gc2VsZi5nZXRfZWFybGllc3RfbG9zc19zcGFjZSgpCi0gICAgICAg
IGlmIGxvc3Nfc3BhY2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gbG9zc19zcGFj
ZS5sb3NzX3RpbWUKLQotICAgICAgICAjIHBhY2tldCB0aW1lcgotICAgICAgICBpZiAoCi0gICAg
ICAgICAgICBzZWxmLmlzX2NsaWVudF93aXRob3V0XzFydHQKLSAgICAgICAgICAgIG9yIHN1bShz
cGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCBmb3Igc3BhY2UgaW4gc2VsZi5zcGFjZXMpID4g
MAotICAgICAgICApOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3J0dF9pbml0aWFsaXplZDoK
LSAgICAgICAgICAgICAgICB0aW1lb3V0ID0gMiAqIEtfSU5JVElBTF9SVFQgKiAoMiAqKiBzZWxm
Ll9wdG9fY291bnQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHRpbWVvdXQg
PSBzZWxmLmdldF9wcm9iZV90aW1lb3V0KCkgKiAoMiAqKiBzZWxmLl9wdG9fY291bnQpCi0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5fdGltZV9vZl9sYXN0X3NlbnRfYWNrX2VsaWNpdGluZ19wYWNr
ZXQgKyB0aW1lb3V0Ci0KLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBnZXRfcHJvYmVf
dGltZW91dChzZWxmKSAtPiBmbG9hdDoKLSAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAgIHNl
bGYuX3J0dF9zbW9vdGhlZAotICAgICAgICAgICAgKyBtYXgoNCAqIHNlbGYuX3J0dF92YXJpYW5j
ZSwgS19HUkFOVUxBUklUWSkKLSAgICAgICAgICAgICsgc2VsZi5tYXhfYWNrX2RlbGF5Ci0gICAg
ICAgICkKLQotICAgIGRlZiBvbl9hY2tfcmVjZWl2ZWQoCi0gICAgICAgIHNlbGYsCi0gICAgICAg
IHNwYWNlOiBRdWljUGFja2V0U3BhY2UsCi0gICAgICAgIGFja19yYW5nZXNldDogUmFuZ2VTZXQs
Ci0gICAgICAgIGFja19kZWxheTogZmxvYXQsCi0gICAgICAgIG5vdzogZmxvYXQsCi0gICAgKSAt
PiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgVXBkYXRlIG1ldHJpY3MgYXMgdGhlIHJlc3Vs
dCBvZiBhbiBBQ0sgYmVpbmcgcmVjZWl2ZWQuCi0gICAgICAgICIiIgotICAgICAgICBpc19hY2tf
ZWxpY2l0aW5nID0gRmFsc2UKLSAgICAgICAgbGFyZ2VzdF9hY2tlZCA9IGFja19yYW5nZXNldC5i
b3VuZHMoKS5zdG9wIC0gMQotICAgICAgICBsYXJnZXN0X25ld2x5X2Fja2VkID0gTm9uZQotICAg
ICAgICBsYXJnZXN0X3NlbnRfdGltZSA9IE5vbmUKLQotICAgICAgICBpZiBsYXJnZXN0X2Fja2Vk
ID4gc3BhY2UubGFyZ2VzdF9hY2tlZF9wYWNrZXQ6Ci0gICAgICAgICAgICBzcGFjZS5sYXJnZXN0
X2Fja2VkX3BhY2tldCA9IGxhcmdlc3RfYWNrZWQKLQotICAgICAgICBmb3IgcGFja2V0X251bWJl
ciBpbiBzb3J0ZWQoc3BhY2Uuc2VudF9wYWNrZXRzLmtleXMoKSk6Ci0gICAgICAgICAgICBpZiBw
YWNrZXRfbnVtYmVyID4gbGFyZ2VzdF9hY2tlZDoKLSAgICAgICAgICAgICAgICBicmVhawotICAg
ICAgICAgICAgaWYgcGFja2V0X251bWJlciBpbiBhY2tfcmFuZ2VzZXQ6Ci0gICAgICAgICAgICAg
ICAgIyByZW1vdmUgcGFja2V0IGFuZCB1cGRhdGUgY291bnRlcnMKLSAgICAgICAgICAgICAgICBw
YWNrZXQgPSBzcGFjZS5zZW50X3BhY2tldHMucG9wKHBhY2tldF9udW1iZXIpCi0gICAgICAgICAg
ICAgICAgaWYgcGFja2V0LmlzX2Fja19lbGljaXRpbmc6Ci0gICAgICAgICAgICAgICAgICAgIGlz
X2Fja19lbGljaXRpbmcgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHNwYWNlLmFja19lbGlj
aXRpbmdfaW5fZmxpZ2h0IC09IDEKLSAgICAgICAgICAgICAgICBpZiBwYWNrZXQuaW5fZmxpZ2h0
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYy5vbl9wYWNrZXRfYWNrZWQocGFja2V0KQot
ICAgICAgICAgICAgICAgIGxhcmdlc3RfbmV3bHlfYWNrZWQgPSBwYWNrZXRfbnVtYmVyCi0gICAg
ICAgICAgICAgICAgbGFyZ2VzdF9zZW50X3RpbWUgPSBwYWNrZXQuc2VudF90aW1lCi0KLSAgICAg
ICAgICAgICAgICAjIHRyaWdnZXIgY2FsbGJhY2tzCi0gICAgICAgICAgICAgICAgZm9yIGhhbmRs
ZXIsIGFyZ3MgaW4gcGFja2V0LmRlbGl2ZXJ5X2hhbmRsZXJzOgotICAgICAgICAgICAgICAgICAg
ICBoYW5kbGVyKFF1aWNEZWxpdmVyeVN0YXRlLkFDS0VELCAqYXJncykKLQotICAgICAgICAjIG5v
dGhpbmcgdG8gZG8gaWYgdGhlcmUgYXJlIG5vIG5ld2x5IGFja2VkIHBhY2tldHMKLSAgICAgICAg
aWYgbGFyZ2VzdF9uZXdseV9hY2tlZCBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgaWYgbGFyZ2VzdF9hY2tlZCA9PSBsYXJnZXN0X25ld2x5X2Fja2VkIGFuZCBpc19hY2tf
ZWxpY2l0aW5nOgotICAgICAgICAgICAgbGF0ZXN0X3J0dCA9IG5vdyAtIGxhcmdlc3Rfc2VudF90
aW1lCi0gICAgICAgICAgICBsb2dfcnR0ID0gVHJ1ZQotCi0gICAgICAgICAgICAjIGxpbWl0IEFD
SyBkZWxheSB0byBtYXhfYWNrX2RlbGF5Ci0gICAgICAgICAgICBhY2tfZGVsYXkgPSBtaW4oYWNr
X2RlbGF5LCBzZWxmLm1heF9hY2tfZGVsYXkpCi0KLSAgICAgICAgICAgICMgdXBkYXRlIFJUVCBl
c3RpbWF0ZSwgd2hpY2ggY2Fubm90IGJlIDwgMSBtcwotICAgICAgICAgICAgc2VsZi5fcnR0X2xh
dGVzdCA9IG1heChsYXRlc3RfcnR0LCAwLjAwMSkKLSAgICAgICAgICAgIGlmIHNlbGYuX3J0dF9s
YXRlc3QgPCBzZWxmLl9ydHRfbWluOgotICAgICAgICAgICAgICAgIHNlbGYuX3J0dF9taW4gPSBz
ZWxmLl9ydHRfbGF0ZXN0Ci0gICAgICAgICAgICBpZiBzZWxmLl9ydHRfbGF0ZXN0ID4gc2VsZi5f
cnR0X21pbiArIGFja19kZWxheToKLSAgICAgICAgICAgICAgICBzZWxmLl9ydHRfbGF0ZXN0IC09
IGFja19kZWxheQotCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5fcnR0X2luaXRpYWxpemVkOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3J0dF9pbml0aWFsaXplZCA9IFRydWUKLSAgICAgICAgICAg
ICAgICBzZWxmLl9ydHRfdmFyaWFuY2UgPSBsYXRlc3RfcnR0IC8gMgotICAgICAgICAgICAgICAg
IHNlbGYuX3J0dF9zbW9vdGhlZCA9IGxhdGVzdF9ydHQKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fcnR0X3ZhcmlhbmNlID0gMyAvIDQgKiBzZWxmLl9ydHRfdmFyaWFu
Y2UgKyAxIC8gNCAqIGFicygKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcnR0X21pbiAtIHNl
bGYuX3J0dF9sYXRlc3QKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgc2VsZi5f
cnR0X3Ntb290aGVkID0gKAotICAgICAgICAgICAgICAgICAgICA3IC8gOCAqIHNlbGYuX3J0dF9z
bW9vdGhlZCArIDEgLyA4ICogc2VsZi5fcnR0X2xhdGVzdAotICAgICAgICAgICAgICAgICkKLQot
ICAgICAgICAgICAgIyBpbmZvcm0gY29uZ2VzdGlvbiBjb250cm9sbGVyCi0gICAgICAgICAgICBz
ZWxmLl9jYy5vbl9ydHRfbWVhc3VyZW1lbnQobGF0ZXN0X3J0dCwgbm93PW5vdykKLSAgICAgICAg
ICAgIHNlbGYuX3BhY2VyLnVwZGF0ZV9yYXRlKAotICAgICAgICAgICAgICAgIGNvbmdlc3Rpb25f
d2luZG93PXNlbGYuX2NjLmNvbmdlc3Rpb25fd2luZG93LAotICAgICAgICAgICAgICAgIHNtb290
aGVkX3J0dD1zZWxmLl9ydHRfc21vb3RoZWQsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGxvZ19ydHQgPSBGYWxzZQotCi0gICAgICAgIHNlbGYuX2RldGVjdF9s
b3NzKHNwYWNlLCBub3c9bm93KQotCi0gICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgc2VsZi5fbG9nX21ldHJpY3NfdXBkYXRlZChsb2dfcnR0PWxv
Z19ydHQpCi0KLSAgICAgICAgc2VsZi5fcHRvX2NvdW50ID0gMAotCi0gICAgZGVmIG9uX2xvc3Nf
ZGV0ZWN0aW9uX3RpbWVvdXQoc2VsZiwgbm93OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgbG9z
c19zcGFjZSA9IHNlbGYuZ2V0X2VhcmxpZXN0X2xvc3Nfc3BhY2UoKQotICAgICAgICBpZiBsb3Nz
X3NwYWNlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fZGV0ZWN0X2xvc3MobG9zc19z
cGFjZSwgbm93PW5vdykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3B0b19jb3Vu
dCArPSAxCi0KLSAgICAgICAgICAgICMgcmVzY2hlZHVsZSBzb21lIGRhdGEKLSAgICAgICAgICAg
IGZvciBzcGFjZSBpbiBzZWxmLnNwYWNlczoKLSAgICAgICAgICAgICAgICBzZWxmLl9vbl9wYWNr
ZXRzX2xvc3QoCi0gICAgICAgICAgICAgICAgICAgIHR1cGxlKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsdGVyKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBpOiBpLmlz
X2NyeXB0b19wYWNrZXQsIHNwYWNlLnNlbnRfcGFja2V0cy52YWx1ZXMoKQotICAgICAgICAgICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAg
ICBzcGFjZT1zcGFjZSwKLSAgICAgICAgICAgICAgICAgICAgbm93PW5vdywKLSAgICAgICAgICAg
ICAgICApCi0KLSAgICAgICAgICAgIHNlbGYuX3NlbmRfcHJvYmUoKQotCi0gICAgZGVmIG9uX3Bh
Y2tldF9zZW50KHNlbGYsIHBhY2tldDogUXVpY1NlbnRQYWNrZXQsIHNwYWNlOiBRdWljUGFja2V0
U3BhY2UpIC0+IE5vbmU6Ci0gICAgICAgIHNwYWNlLnNlbnRfcGFja2V0c1twYWNrZXQucGFja2V0
X251bWJlcl0gPSBwYWNrZXQKLQotICAgICAgICBpZiBwYWNrZXQuaXNfYWNrX2VsaWNpdGluZzoK
LSAgICAgICAgICAgIHNwYWNlLmFja19lbGljaXRpbmdfaW5fZmxpZ2h0ICs9IDEKLSAgICAgICAg
aWYgcGFja2V0LmluX2ZsaWdodDoKLSAgICAgICAgICAgIGlmIHBhY2tldC5pc19hY2tfZWxpY2l0
aW5nOgotICAgICAgICAgICAgICAgIHNlbGYuX3RpbWVfb2ZfbGFzdF9zZW50X2Fja19lbGljaXRp
bmdfcGFja2V0ID0gcGFja2V0LnNlbnRfdGltZQotCi0gICAgICAgICAgICAjIGFkZCBwYWNrZXQg
dG8gYnl0ZXMgaW4gZmxpZ2h0Ci0gICAgICAgICAgICBzZWxmLl9jYy5vbl9wYWNrZXRfc2VudChw
YWNrZXQpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNfbG9nZ2VyIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ19tZXRyaWNzX3VwZGF0ZWQoKQotCi0gICAgZGVmIF9k
ZXRlY3RfbG9zcyhzZWxmLCBzcGFjZTogUXVpY1BhY2tldFNwYWNlLCBub3c6IGZsb2F0KSAtPiBO
b25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2hlY2sgd2hldGhlciBhbnkgcGFja2V0cyBzaG91
bGQgYmUgZGVjbGFyZWQgbG9zdC4KLSAgICAgICAgIiIiCi0gICAgICAgIGxvc3NfZGVsYXkgPSBL
X1RJTUVfVEhSRVNIT0xEICogKAotICAgICAgICAgICAgbWF4KHNlbGYuX3J0dF9sYXRlc3QsIHNl
bGYuX3J0dF9zbW9vdGhlZCkKLSAgICAgICAgICAgIGlmIHNlbGYuX3J0dF9pbml0aWFsaXplZAot
ICAgICAgICAgICAgZWxzZSBLX0lOSVRJQUxfUlRUCi0gICAgICAgICkKLSAgICAgICAgcGFja2V0
X3RocmVzaG9sZCA9IHNwYWNlLmxhcmdlc3RfYWNrZWRfcGFja2V0IC0gS19QQUNLRVRfVEhSRVNI
T0xECi0gICAgICAgIHRpbWVfdGhyZXNob2xkID0gbm93IC0gbG9zc19kZWxheQotCi0gICAgICAg
IGxvc3RfcGFja2V0cyA9IFtdCi0gICAgICAgIHNwYWNlLmxvc3NfdGltZSA9IE5vbmUKLSAgICAg
ICAgZm9yIHBhY2tldF9udW1iZXIsIHBhY2tldCBpbiBzcGFjZS5zZW50X3BhY2tldHMuaXRlbXMo
KToKLSAgICAgICAgICAgIGlmIHBhY2tldF9udW1iZXIgPiBzcGFjZS5sYXJnZXN0X2Fja2VkX3Bh
Y2tldDoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICBpZiBwYWNrZXRfbnVt
YmVyIDw9IHBhY2tldF90aHJlc2hvbGQgb3IgcGFja2V0LnNlbnRfdGltZSA8PSB0aW1lX3RocmVz
aG9sZDoKLSAgICAgICAgICAgICAgICBsb3N0X3BhY2tldHMuYXBwZW5kKHBhY2tldCkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcGFja2V0X2xvc3NfdGltZSA9IHBhY2tldC5z
ZW50X3RpbWUgKyBsb3NzX2RlbGF5Ci0gICAgICAgICAgICAgICAgaWYgc3BhY2UubG9zc190aW1l
IGlzIE5vbmUgb3Igc3BhY2UubG9zc190aW1lID4gcGFja2V0X2xvc3NfdGltZToKLSAgICAgICAg
ICAgICAgICAgICAgc3BhY2UubG9zc190aW1lID0gcGFja2V0X2xvc3NfdGltZQotCi0gICAgICAg
IHNlbGYuX29uX3BhY2tldHNfbG9zdChsb3N0X3BhY2tldHMsIHNwYWNlPXNwYWNlLCBub3c9bm93
KQotCi0gICAgZGVmIF9sb2dfbWV0cmljc191cGRhdGVkKHNlbGYsIGxvZ19ydHQ9RmFsc2UpIC0+
IE5vbmU6Ci0gICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAiYnl0ZXNfaW5fZmxpZ2h0Ijog
c2VsZi5fY2MuYnl0ZXNfaW5fZmxpZ2h0LAotICAgICAgICAgICAgImN3bmQiOiBzZWxmLl9jYy5j
b25nZXN0aW9uX3dpbmRvdywKLSAgICAgICAgfQotICAgICAgICBpZiBzZWxmLl9jYy5zc3RocmVz
aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGRhdGFbInNzdGhyZXNoIl0gPSBzZWxmLl9jYy5z
c3RocmVzaAotCi0gICAgICAgIGlmIGxvZ19ydHQ6Ci0gICAgICAgICAgICBkYXRhLnVwZGF0ZSgK
LSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICJsYXRlc3RfcnR0Ijogc2Vs
Zi5fcXVpY19sb2dnZXIuZW5jb2RlX3RpbWUoc2VsZi5fcnR0X2xhdGVzdCksCi0gICAgICAgICAg
ICAgICAgICAgICJtaW5fcnR0Ijogc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3RpbWUoc2VsZi5f
cnR0X21pbiksCi0gICAgICAgICAgICAgICAgICAgICJzbW9vdGhlZF9ydHQiOiBzZWxmLl9xdWlj
X2xvZ2dlci5lbmNvZGVfdGltZShzZWxmLl9ydHRfc21vb3RoZWQpLAotICAgICAgICAgICAgICAg
ICAgICAicnR0X3ZhcmlhbmNlIjogc2VsZi5fcXVpY19sb2dnZXIuZW5jb2RlX3RpbWUoc2VsZi5f
cnR0X3ZhcmlhbmNlKSwKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICApCi0KLSAgICAg
ICAgc2VsZi5fcXVpY19sb2dnZXIubG9nX2V2ZW50KAotICAgICAgICAgICAgY2F0ZWdvcnk9InJl
Y292ZXJ5IiwgZXZlbnQ9Im1ldHJpY3NfdXBkYXRlZCIsIGRhdGE9ZGF0YQotICAgICAgICApCi0K
LSAgICBkZWYgX29uX3BhY2tldHNfbG9zdCgKLSAgICAgICAgc2VsZiwgcGFja2V0czogSXRlcmFi
bGVbUXVpY1NlbnRQYWNrZXRdLCBzcGFjZTogUXVpY1BhY2tldFNwYWNlLCBub3c6IGZsb2F0Ci0g
ICAgKSAtPiBOb25lOgotICAgICAgICBsb3N0X3BhY2tldHNfY2MgPSBbXQotICAgICAgICBmb3Ig
cGFja2V0IGluIHBhY2tldHM6Ci0gICAgICAgICAgICBkZWwgc3BhY2Uuc2VudF9wYWNrZXRzW3Bh
Y2tldC5wYWNrZXRfbnVtYmVyXQotCi0gICAgICAgICAgICBpZiBwYWNrZXQuaW5fZmxpZ2h0Ogot
ICAgICAgICAgICAgICAgIGxvc3RfcGFja2V0c19jYy5hcHBlbmQocGFja2V0KQotCi0gICAgICAg
ICAgICBpZiBwYWNrZXQuaXNfYWNrX2VsaWNpdGluZzoKLSAgICAgICAgICAgICAgICBzcGFjZS5h
Y2tfZWxpY2l0aW5nX2luX2ZsaWdodCAtPSAxCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3F1aWNf
bG9nZ2VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyLmxv
Z19ldmVudCgKLSAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9InJlY292ZXJ5IiwKLSAgICAg
ICAgICAgICAgICAgICAgZXZlbnQ9InBhY2tldF9sb3N0IiwKLSAgICAgICAgICAgICAgICAgICAg
ZGF0YT17Ci0gICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6IHNlbGYuX3F1aWNfbG9nZ2Vy
LnBhY2tldF90eXBlKHBhY2tldC5wYWNrZXRfdHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAicGFja2V0X251bWJlciI6IHN0cihwYWNrZXQucGFja2V0X251bWJlciksCi0gICAgICAgICAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z19tZXRyaWNzX3VwZGF0ZWQoKQotCi0gICAgICAgICAgICAjIHRyaWdnZXIgY2FsbGJhY2tzCi0g
ICAgICAgICAgICBmb3IgaGFuZGxlciwgYXJncyBpbiBwYWNrZXQuZGVsaXZlcnlfaGFuZGxlcnM6
Ci0gICAgICAgICAgICAgICAgaGFuZGxlcihRdWljRGVsaXZlcnlTdGF0ZS5MT1NULCAqYXJncykK
LQotICAgICAgICAjIGluZm9ybSBjb25nZXN0aW9uIGNvbnRyb2xsZXIKLSAgICAgICAgaWYgbG9z
dF9wYWNrZXRzX2NjOgotICAgICAgICAgICAgc2VsZi5fY2Mub25fcGFja2V0c19sb3N0KGxvc3Rf
cGFja2V0c19jYywgbm93PW5vdykKLSAgICAgICAgICAgIHNlbGYuX3BhY2VyLnVwZGF0ZV9yYXRl
KAotICAgICAgICAgICAgICAgIGNvbmdlc3Rpb25fd2luZG93PXNlbGYuX2NjLmNvbmdlc3Rpb25f
d2luZG93LAotICAgICAgICAgICAgICAgIHNtb290aGVkX3J0dD1zZWxmLl9ydHRfc21vb3RoZWQs
Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBpZiBzZWxmLl9xdWljX2xvZ2dlciBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dfbWV0cmljc191cGRhdGVkKCkKLQotCi1j
bGFzcyBRdWljUnR0TW9uaXRvcjoKLSAgICAiIiIKLSAgICBSb3VuZHRyaXAgdGltZSBtb25pdG9y
IGZvciBIeVN0YXJ0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6
Ci0gICAgICAgIHNlbGYuX2luY3JlYXNlcyA9IDAKLSAgICAgICAgc2VsZi5fbGFzdF90aW1lID0g
Tm9uZQotICAgICAgICBzZWxmLl9yZWFkeSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3NpemUgPSA1
Ci0KLSAgICAgICAgc2VsZi5fZmlsdGVyZWRfbWluOiBPcHRpb25hbFtmbG9hdF0gPSBOb25lCi0K
LSAgICAgICAgc2VsZi5fc2FtcGxlX2lkeCA9IDAKLSAgICAgICAgc2VsZi5fc2FtcGxlX21heDog
T3B0aW9uYWxbZmxvYXRdID0gTm9uZQotICAgICAgICBzZWxmLl9zYW1wbGVfbWluOiBPcHRpb25h
bFtmbG9hdF0gPSBOb25lCi0gICAgICAgIHNlbGYuX3NhbXBsZV90aW1lID0gMC4wCi0gICAgICAg
IHNlbGYuX3NhbXBsZXMgPSBbMC4wIGZvciBpIGluIHJhbmdlKHNlbGYuX3NpemUpXQotCi0gICAg
ZGVmIGFkZF9ydHQoc2VsZiwgcnR0OiBmbG9hdCkgLT4gTm9uZToKLSAgICAgICAgc2VsZi5fc2Ft
cGxlc1tzZWxmLl9zYW1wbGVfaWR4XSA9IHJ0dAotICAgICAgICBzZWxmLl9zYW1wbGVfaWR4ICs9
IDEKLQotICAgICAgICBpZiBzZWxmLl9zYW1wbGVfaWR4ID49IHNlbGYuX3NpemU6Ci0gICAgICAg
ICAgICBzZWxmLl9zYW1wbGVfaWR4ID0gMAotICAgICAgICAgICAgc2VsZi5fcmVhZHkgPSBUcnVl
Ci0KLSAgICAgICAgaWYgc2VsZi5fcmVhZHk6Ci0gICAgICAgICAgICBzZWxmLl9zYW1wbGVfbWF4
ID0gc2VsZi5fc2FtcGxlc1swXQotICAgICAgICAgICAgc2VsZi5fc2FtcGxlX21pbiA9IHNlbGYu
X3NhbXBsZXNbMF0KLSAgICAgICAgICAgIGZvciBzYW1wbGUgaW4gc2VsZi5fc2FtcGxlc1sxOl06
Ci0gICAgICAgICAgICAgICAgaWYgc2FtcGxlIDwgc2VsZi5fc2FtcGxlX21pbjoKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fc2FtcGxlX21pbiA9IHNhbXBsZQotICAgICAgICAgICAgICAgIGVs
aWYgc2FtcGxlID4gc2VsZi5fc2FtcGxlX21heDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2FtcGxlX21heCA9IHNhbXBsZQotCi0gICAgZGVmIGlzX3J0dF9pbmNyZWFzaW5nKHNlbGYsIHJ0
dDogZmxvYXQsIG5vdzogZmxvYXQpIC0+IGJvb2w6Ci0gICAgICAgIGlmIG5vdyA+IHNlbGYuX3Nh
bXBsZV90aW1lICsgS19HUkFOVUxBUklUWToKLSAgICAgICAgICAgIHNlbGYuYWRkX3J0dChydHQp
Ci0gICAgICAgICAgICBzZWxmLl9zYW1wbGVfdGltZSA9IG5vdwotCi0gICAgICAgICAgICBpZiBz
ZWxmLl9yZWFkeToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9maWx0ZXJlZF9taW4gaXMgTm9u
ZSBvciBzZWxmLl9maWx0ZXJlZF9taW4gPiBzZWxmLl9zYW1wbGVfbWF4OgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9maWx0ZXJlZF9taW4gPSBzZWxmLl9zYW1wbGVfbWF4Ci0KLSAgICAgICAg
ICAgICAgICBkZWx0YSA9IHNlbGYuX3NhbXBsZV9taW4gLSBzZWxmLl9maWx0ZXJlZF9taW4KLSAg
ICAgICAgICAgICAgICBpZiBkZWx0YSAqIDQgPj0gc2VsZi5fZmlsdGVyZWRfbWluOgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9pbmNyZWFzZXMgKz0gMQotICAgICAgICAgICAgICAgICAgICBp
ZiBzZWxmLl9pbmNyZWFzZXMgPj0gc2VsZi5fc2l6ZToKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCi0gICAgICAgICAgICAgICAgZWxpZiBkZWx0YSA+IDA6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX2luY3JlYXNlcyA9IDAKLSAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9yZXRyeS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy9zcmMvYWlvcXVpYy9xdWljL3JldHJ5LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjNDVjM2E1YzU1YzlhMzk1ODkzOThjOTdjZWU5NjVjMmIzNzA2NjU2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlv
cXVpYy9xdWljL3JldHJ5LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotaW1wb3J0
IGlwYWRkcmVzcwotCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMgaW1wb3J0IGRl
ZmF1bHRfYmFja2VuZAotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMgaW1wb3J0
IGhhc2hlcwotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuYXN5bW1ldHJpYyBp
bXBvcnQgcGFkZGluZywgcnNhCi0KLWZyb20gLmNvbm5lY3Rpb24gaW1wb3J0IE5ldHdvcmtBZGRy
ZXNzCi0KLQotZGVmIGVuY29kZV9hZGRyZXNzKGFkZHI6IE5ldHdvcmtBZGRyZXNzKSAtPiBieXRl
czoKLSAgICByZXR1cm4gaXBhZGRyZXNzLmlwX2FkZHJlc3MoYWRkclswXSkucGFja2VkICsgYnl0
ZXMoW2FkZHJbMV0gPj4gOCwgYWRkclsxXSAmIDB4RkZdKQotCi0KLWNsYXNzIFF1aWNSZXRyeVRv
a2VuSGFuZGxlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZikgLT4gTm9uZToKLSAgICAgICAgc2Vs
Zi5fa2V5ID0gcnNhLmdlbmVyYXRlX3ByaXZhdGVfa2V5KAotICAgICAgICAgICAgcHVibGljX2V4
cG9uZW50PTY1NTM3LCBrZXlfc2l6ZT0xMDI0LCBiYWNrZW5kPWRlZmF1bHRfYmFja2VuZCgpCi0g
ICAgICAgICkKLQotICAgIGRlZiBjcmVhdGVfdG9rZW4oc2VsZiwgYWRkcjogTmV0d29ya0FkZHJl
c3MsIGRlc3RpbmF0aW9uX2NpZDogYnl0ZXMpIC0+IGJ5dGVzOgotICAgICAgICByZXRyeV9tZXNz
YWdlID0gZW5jb2RlX2FkZHJlc3MoYWRkcikgKyBiInwiICsgZGVzdGluYXRpb25fY2lkCi0gICAg
ICAgIHJldHVybiBzZWxmLl9rZXkucHVibGljX2tleSgpLmVuY3J5cHQoCi0gICAgICAgICAgICBy
ZXRyeV9tZXNzYWdlLAotICAgICAgICAgICAgcGFkZGluZy5PQUVQKAotICAgICAgICAgICAgICAg
IG1nZj1wYWRkaW5nLk1HRjEoaGFzaGVzLlNIQTI1NigpKSwgYWxnb3JpdGhtPWhhc2hlcy5TSEEy
NTYoKSwgbGFiZWw9Tm9uZQotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgZGVmIHZh
bGlkYXRlX3Rva2VuKHNlbGYsIGFkZHI6IE5ldHdvcmtBZGRyZXNzLCB0b2tlbjogYnl0ZXMpIC0+
IGJ5dGVzOgotICAgICAgICByZXRyeV9tZXNzYWdlID0gc2VsZi5fa2V5LmRlY3J5cHQoCi0gICAg
ICAgICAgICB0b2tlbiwKLSAgICAgICAgICAgIHBhZGRpbmcuT0FFUCgKLSAgICAgICAgICAgICAg
ICBtZ2Y9cGFkZGluZy5NR0YxKGhhc2hlcy5TSEEyNTYoKSksIGFsZ29yaXRobT1oYXNoZXMuU0hB
MjU2KCksIGxhYmVsPU5vbmUKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLSAgICAgICAgZW5j
b2RlZF9hZGRyLCBvcmlnaW5hbF9jb25uZWN0aW9uX2lkID0gcmV0cnlfbWVzc2FnZS5zcGxpdChi
InwiLCBtYXhzcGxpdD0xKQotICAgICAgICBpZiBlbmNvZGVkX2FkZHIgIT0gZW5jb2RlX2FkZHJl
c3MoYWRkcik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJSZW1vdGUgYWRkcmVzcyBk
b2VzIG5vdCBtYXRjaC4iKQotICAgICAgICByZXR1cm4gb3JpZ2luYWxfY29ubmVjdGlvbl9pZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvc3RyZWFtLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvc3RyZWFtLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhNjIzNjg2ZjVkNmJjZDZmOTBiNGU1M2YzNzE0ZjNiZjliNmY2MTY3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9z
cmMvYWlvcXVpYy9xdWljL3N0cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDIxNCArMCwwIEBA
Ci1mcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKLQotZnJvbSAuIGltcG9ydCBldmVudHMKLWZy
b20gLnBhY2tldCBpbXBvcnQgUXVpY1N0cmVhbUZyYW1lCi1mcm9tIC5wYWNrZXRfYnVpbGRlciBp
bXBvcnQgUXVpY0RlbGl2ZXJ5U3RhdGUKLWZyb20gLnJhbmdlc2V0IGltcG9ydCBSYW5nZVNldAot
Ci0KLWNsYXNzIFF1aWNTdHJlYW06Ci0gICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxmLAot
ICAgICAgICBzdHJlYW1faWQ6IE9wdGlvbmFsW2ludF0gPSBOb25lLAotICAgICAgICBtYXhfc3Ry
ZWFtX2RhdGFfbG9jYWw6IGludCA9IDAsCi0gICAgICAgIG1heF9zdHJlYW1fZGF0YV9yZW1vdGU6
IGludCA9IDAsCi0gICAgKSAtPiBOb25lOgotICAgICAgICBzZWxmLmlzX2Jsb2NrZWQgPSBGYWxz
ZQotICAgICAgICBzZWxmLm1heF9zdHJlYW1fZGF0YV9sb2NhbCA9IG1heF9zdHJlYW1fZGF0YV9s
b2NhbAotICAgICAgICBzZWxmLm1heF9zdHJlYW1fZGF0YV9sb2NhbF9zZW50ID0gbWF4X3N0cmVh
bV9kYXRhX2xvY2FsCi0gICAgICAgIHNlbGYubWF4X3N0cmVhbV9kYXRhX3JlbW90ZSA9IG1heF9z
dHJlYW1fZGF0YV9yZW1vdGUKLSAgICAgICAgc2VsZi5zZW5kX2J1ZmZlcl9pc19lbXB0eSA9IFRy
dWUKLQotICAgICAgICBzZWxmLl9yZWN2X2J1ZmZlciA9IGJ5dGVhcnJheSgpCi0gICAgICAgIHNl
bGYuX3JlY3ZfYnVmZmVyX2ZpbjogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5f
cmVjdl9idWZmZXJfc3RhcnQgPSAwICAjIHRoZSBvZmZzZXQgZm9yIHRoZSBzdGFydCBvZiB0aGUg
YnVmZmVyCi0gICAgICAgIHNlbGYuX3JlY3ZfaGlnaGVzdCA9IDAgICMgdGhlIGhpZ2hlc3Qgb2Zm
c2V0IGV2ZXIgc2VlbgotICAgICAgICBzZWxmLl9yZWN2X3JhbmdlcyA9IFJhbmdlU2V0KCkKLQot
ICAgICAgICBzZWxmLl9zZW5kX2Fja2VkID0gUmFuZ2VTZXQoKQotICAgICAgICBzZWxmLl9zZW5k
X2J1ZmZlciA9IGJ5dGVhcnJheSgpCi0gICAgICAgIHNlbGYuX3NlbmRfYnVmZmVyX2ZpbjogT3B0
aW9uYWxbaW50XSA9IE5vbmUKLSAgICAgICAgc2VsZi5fc2VuZF9idWZmZXJfc3RhcnQgPSAwICAj
IHRoZSBvZmZzZXQgZm9yIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyCi0gICAgICAgIHNlbGYuX3Nl
bmRfYnVmZmVyX3N0b3AgPSAwICAjIHRoZSBvZmZzZXQgZm9yIHRoZSBzdG9wIG9mIHRoZSBidWZm
ZXIKLSAgICAgICAgc2VsZi5fc2VuZF9oaWdoZXN0ID0gMAotICAgICAgICBzZWxmLl9zZW5kX3Bl
bmRpbmcgPSBSYW5nZVNldCgpCi0gICAgICAgIHNlbGYuX3NlbmRfcGVuZGluZ19lb2YgPSBGYWxz
ZQotCi0gICAgICAgIHNlbGYuX19zdHJlYW1faWQgPSBzdHJlYW1faWQKLQotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBzdHJlYW1faWQoc2VsZikgLT4gT3B0aW9uYWxbaW50XToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX19zdHJlYW1faWQKLQotICAgICMgcmVhZGVyCi0KLSAgICBkZWYgYWRkX2ZyYW1l
KHNlbGYsIGZyYW1lOiBRdWljU3RyZWFtRnJhbWUpIC0+IE9wdGlvbmFsW2V2ZW50cy5TdHJlYW1E
YXRhUmVjZWl2ZWRdOgotICAgICAgICAiIiIKLSAgICAgICAgQWRkIGEgZnJhbWUgb2YgcmVjZWl2
ZWQgZGF0YS4KLSAgICAgICAgIiIiCi0gICAgICAgIHBvcyA9IGZyYW1lLm9mZnNldCAtIHNlbGYu
X3JlY3ZfYnVmZmVyX3N0YXJ0Ci0gICAgICAgIGNvdW50ID0gbGVuKGZyYW1lLmRhdGEpCi0gICAg
ICAgIGZyYW1lX2VuZCA9IGZyYW1lLm9mZnNldCArIGNvdW50Ci0KLSAgICAgICAgIyB3ZSBzaG91
bGQgcmVjZWl2ZSBubyBtb3JlIGRhdGEgYmV5b25kIEZJTiEKLSAgICAgICAgaWYgc2VsZi5fcmVj
dl9idWZmZXJfZmluIGlzIG5vdCBOb25lIGFuZCBmcmFtZV9lbmQgPiBzZWxmLl9yZWN2X2J1ZmZl
cl9maW46Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkRhdGEgcmVjZWl2ZWQgYmV5b25k
IEZJTiIpCi0gICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHNlbGYuX3JlY3ZfYnVm
ZmVyX2ZpbiA9IGZyYW1lX2VuZAotICAgICAgICBpZiBmcmFtZV9lbmQgPiBzZWxmLl9yZWN2X2hp
Z2hlc3Q6Ci0gICAgICAgICAgICBzZWxmLl9yZWN2X2hpZ2hlc3QgPSBmcmFtZV9lbmQKLQotICAg
ICAgICAjIGZhc3QgcGF0aDogbmV3IGluLW9yZGVyIGNodW5rCi0gICAgICAgIGlmIHBvcyA9PSAw
IGFuZCBjb3VudCBhbmQgbm90IHNlbGYuX3JlY3ZfYnVmZmVyOgotICAgICAgICAgICAgc2VsZi5f
cmVjdl9idWZmZXJfc3RhcnQgKz0gY291bnQKLSAgICAgICAgICAgIHJldHVybiBldmVudHMuU3Ry
ZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIGRhdGE9ZnJhbWUuZGF0YSwgZW5kX3N0
cmVhbT1mcmFtZS5maW4sIHN0cmVhbV9pZD1zZWxmLl9fc3RyZWFtX2lkCi0gICAgICAgICAgICAp
Ci0KLSAgICAgICAgIyBkaXNjYXJkIGR1cGxpY2F0ZSBkYXRhCi0gICAgICAgIGlmIHBvcyA8IDA6
Ci0gICAgICAgICAgICBmcmFtZS5kYXRhID0gZnJhbWUuZGF0YVstcG9zOl0KLSAgICAgICAgICAg
IGZyYW1lLm9mZnNldCAtPSBwb3MKLSAgICAgICAgICAgIHBvcyA9IDAKLQotICAgICAgICAjIG1h
cmtlZCByZWNlaXZlZCByYW5nZQotICAgICAgICBpZiBmcmFtZV9lbmQgPiBmcmFtZS5vZmZzZXQ6
Ci0gICAgICAgICAgICBzZWxmLl9yZWN2X3Jhbmdlcy5hZGQoZnJhbWUub2Zmc2V0LCBmcmFtZV9l
bmQpCi0KLSAgICAgICAgIyBhZGQgbmV3IGRhdGEKLSAgICAgICAgZ2FwID0gcG9zIC0gbGVuKHNl
bGYuX3JlY3ZfYnVmZmVyKQotICAgICAgICBpZiBnYXAgPiAwOgotICAgICAgICAgICAgc2VsZi5f
cmVjdl9idWZmZXIgKz0gYnl0ZWFycmF5KGdhcCkKLSAgICAgICAgc2VsZi5fcmVjdl9idWZmZXJb
cG9zIDogcG9zICsgY291bnRdID0gZnJhbWUuZGF0YQotCi0gICAgICAgICMgcmV0dXJuIGRhdGEg
ZnJvbSB0aGUgZnJvbnQgb2YgdGhlIGJ1ZmZlcgotICAgICAgICBkYXRhID0gc2VsZi5fcHVsbF9k
YXRhKCkKLSAgICAgICAgZW5kX3N0cmVhbSA9IHNlbGYuX3JlY3ZfYnVmZmVyX3N0YXJ0ID09IHNl
bGYuX3JlY3ZfYnVmZmVyX2ZpbgotICAgICAgICBpZiBkYXRhIG9yIGVuZF9zdHJlYW06Ci0gICAg
ICAgICAgICByZXR1cm4gZXZlbnRzLlN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAg
ICBkYXRhPWRhdGEsIGVuZF9zdHJlYW09ZW5kX3N0cmVhbSwgc3RyZWFtX2lkPXNlbGYuX19zdHJl
YW1faWQKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBO
b25lCi0KLSAgICBkZWYgX3B1bGxfZGF0YShzZWxmKSAtPiBieXRlczoKLSAgICAgICAgIiIiCi0g
ICAgICAgIFJlbW92ZSBkYXRhIGZyb20gdGhlIGZyb250IG9mIHRoZSBidWZmZXIuCi0gICAgICAg
ICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYXNfZGF0YV90b19yZWFkID0gc2VsZi5f
cmVjdl9yYW5nZXNbMF0uc3RhcnQgPT0gc2VsZi5fcmVjdl9idWZmZXJfc3RhcnQKLSAgICAgICAg
ZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICBoYXNfZGF0YV90b19yZWFkID0gRmFsc2UK
LSAgICAgICAgaWYgbm90IGhhc19kYXRhX3RvX3JlYWQ6Ci0gICAgICAgICAgICByZXR1cm4gYiIi
Ci0KLSAgICAgICAgciA9IHNlbGYuX3JlY3ZfcmFuZ2VzLnNoaWZ0KCkKLSAgICAgICAgcG9zID0g
ci5zdG9wIC0gci5zdGFydAotICAgICAgICBkYXRhID0gYnl0ZXMoc2VsZi5fcmVjdl9idWZmZXJb
OnBvc10pCi0gICAgICAgIGRlbCBzZWxmLl9yZWN2X2J1ZmZlcls6cG9zXQotICAgICAgICBzZWxm
Ll9yZWN2X2J1ZmZlcl9zdGFydCA9IHIuc3RvcAotICAgICAgICByZXR1cm4gZGF0YQotCi0gICAg
IyB3cml0ZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBuZXh0X3NlbmRfb2Zmc2V0KHNlbGYp
IC0+IGludDoKLSAgICAgICAgIiIiCi0gICAgICAgIFRoZSBvZmZzZXQgZm9yIHRoZSBuZXh0IGZy
YW1lIHRvIHNlbmQuCi0KLSAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc3Bh
Y2UgbmVlZGVkIGZvciB0aGUgZnJhbWUncyBgb2Zmc2V0YCBmaWVsZC4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9zZW5kX3BlbmRpbmdbMF0uc3Rh
cnQKLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5f
c2VuZF9idWZmZXJfc3RvcAotCi0gICAgZGVmIGdldF9mcmFtZSgKLSAgICAgICAgc2VsZiwgbWF4
X3NpemU6IGludCwgbWF4X29mZnNldDogT3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICApIC0+IE9w
dGlvbmFsW1F1aWNTdHJlYW1GcmFtZV06Ci0gICAgICAgICIiIgotICAgICAgICBHZXQgYSBmcmFt
ZSBvZiBkYXRhIHRvIHNlbmQuCi0gICAgICAgICIiIgotICAgICAgICAjIGdldCB0aGUgZmlyc3Qg
cGVuZGluZyBkYXRhIHJhbmdlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHIgPSBzZWxmLl9z
ZW5kX3BlbmRpbmdbMF0KLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICBp
ZiBzZWxmLl9zZW5kX3BlbmRpbmdfZW9mOgotICAgICAgICAgICAgICAgICMgRklOIG9ubHkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9zZW5kX3BlbmRpbmdfZW9mID0gRmFsc2UKLSAgICAgICAgICAg
ICAgICByZXR1cm4gUXVpY1N0cmVhbUZyYW1lKGZpbj1UcnVlLCBvZmZzZXQ9c2VsZi5fc2VuZF9i
dWZmZXJfZmluKQotCi0gICAgICAgICAgICBzZWxmLnNlbmRfYnVmZmVyX2lzX2VtcHR5ID0gVHJ1
ZQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICAjIGFwcGx5IGZsb3cgY29udHJv
bAotICAgICAgICBzdGFydCA9IHIuc3RhcnQKLSAgICAgICAgc3RvcCA9IG1pbihyLnN0b3AsIHN0
YXJ0ICsgbWF4X3NpemUpCi0gICAgICAgIGlmIG1heF9vZmZzZXQgaXMgbm90IE5vbmUgYW5kIHN0
b3AgPiBtYXhfb2Zmc2V0OgotICAgICAgICAgICAgc3RvcCA9IG1heF9vZmZzZXQKLSAgICAgICAg
aWYgc3RvcCA8PSBzdGFydDoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgIyBj
cmVhdGUgZnJhbWUKLSAgICAgICAgZnJhbWUgPSBRdWljU3RyZWFtRnJhbWUoCi0gICAgICAgICAg
ICBkYXRhPWJ5dGVzKAotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfYnVmZmVyWwotICAgICAg
ICAgICAgICAgICAgICBzdGFydCAtIHNlbGYuX3NlbmRfYnVmZmVyX3N0YXJ0IDogc3RvcCAtIHNl
bGYuX3NlbmRfYnVmZmVyX3N0YXJ0Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgKSwK
LSAgICAgICAgICAgIG9mZnNldD1zdGFydCwKLSAgICAgICAgKQotICAgICAgICBzZWxmLl9zZW5k
X3BlbmRpbmcuc3VidHJhY3Qoc3RhcnQsIHN0b3ApCi0KLSAgICAgICAgIyB0cmFjayB0aGUgaGln
aGVzdCBvZmZzZXQgZXZlciBzZW50Ci0gICAgICAgIGlmIHN0b3AgPiBzZWxmLl9zZW5kX2hpZ2hl
c3Q6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2hpZ2hlc3QgPSBzdG9wCi0KLSAgICAgICAgIyBp
ZiB0aGUgYnVmZmVyIGlzIGVtcHR5IGFuZCBFT0Ygd2FzIHdyaXR0ZW4sIHNldCB0aGUgRklOIGJp
dAotICAgICAgICBpZiBzZWxmLl9zZW5kX2J1ZmZlcl9maW4gPT0gc3RvcDoKLSAgICAgICAgICAg
IGZyYW1lLmZpbiA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfcGVuZGluZ19lb2YgPSBG
YWxzZQotCi0gICAgICAgIHJldHVybiBmcmFtZQotCi0gICAgZGVmIG9uX2RhdGFfZGVsaXZlcnko
Ci0gICAgICAgIHNlbGYsIGRlbGl2ZXJ5OiBRdWljRGVsaXZlcnlTdGF0ZSwgc3RhcnQ6IGludCwg
c3RvcDogaW50Ci0gICAgKSAtPiBOb25lOgotICAgICAgICAiIiIKLSAgICAgICAgQ2FsbGJhY2sg
d2hlbiBzZW50IGRhdGEgaXMgQUNLJ2QuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnNlbmRf
YnVmZmVyX2lzX2VtcHR5ID0gRmFsc2UKLSAgICAgICAgaWYgZGVsaXZlcnkgPT0gUXVpY0RlbGl2
ZXJ5U3RhdGUuQUNLRUQ6Ci0gICAgICAgICAgICBpZiBzdG9wID4gc3RhcnQ6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fc2VuZF9hY2tlZC5hZGQoc3RhcnQsIHN0b3ApCi0gICAgICAgICAgICAgICAg
Zmlyc3RfcmFuZ2UgPSBzZWxmLl9zZW5kX2Fja2VkWzBdCi0gICAgICAgICAgICAgICAgaWYgZmly
c3RfcmFuZ2Uuc3RhcnQgPT0gc2VsZi5fc2VuZF9idWZmZXJfc3RhcnQ6Ci0gICAgICAgICAgICAg
ICAgICAgIHNpemUgPSBmaXJzdF9yYW5nZS5zdG9wIC0gZmlyc3RfcmFuZ2Uuc3RhcnQKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9hY2tlZC5zaGlmdCgpCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3NlbmRfYnVmZmVyX3N0YXJ0ICs9IHNpemUKLSAgICAgICAgICAgICAgICAgICAg
ZGVsIHNlbGYuX3NlbmRfYnVmZmVyWzpzaXplXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
aWYgc3RvcCA+IHN0YXJ0OgotICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfcGVuZGluZy5hZGQo
c3RhcnQsIHN0b3ApCi0gICAgICAgICAgICBpZiBzdG9wID09IHNlbGYuX3NlbmRfYnVmZmVyX2Zp
bjoKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfYnVmZmVyX2VtcHR5ID0gRmFsc2UKLSAgICAg
ICAgICAgICAgICBzZWxmLl9zZW5kX3BlbmRpbmdfZW9mID0gVHJ1ZQotCi0gICAgZGVmIHdyaXRl
KHNlbGYsIGRhdGE6IGJ5dGVzLCBlbmRfc3RyZWFtOiBib29sID0gRmFsc2UpIC0+IE5vbmU6Ci0g
ICAgICAgICIiIgotICAgICAgICBXcml0ZSBzb21lIGRhdGEgYnl0ZXMgdG8gdGhlIFFVSUMgc3Ry
ZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgYXNzZXJ0IHNlbGYuX3NlbmRfYnVmZmVyX2ZpbiBp
cyBOb25lLCAiY2Fubm90IGNhbGwgd3JpdGUoKSBhZnRlciBGSU4iCi0gICAgICAgIHNpemUgPSBs
ZW4oZGF0YSkKLQotICAgICAgICBpZiBzaXplOgotICAgICAgICAgICAgc2VsZi5zZW5kX2J1ZmZl
cl9pc19lbXB0eSA9IEZhbHNlCi0gICAgICAgICAgICBzZWxmLl9zZW5kX3BlbmRpbmcuYWRkKAot
ICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfYnVmZmVyX3N0b3AsIHNlbGYuX3NlbmRfYnVmZmVy
X3N0b3AgKyBzaXplCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2J1ZmZl
ciArPSBkYXRhCi0gICAgICAgICAgICBzZWxmLl9zZW5kX2J1ZmZlcl9zdG9wICs9IHNpemUKLSAg
ICAgICAgaWYgZW5kX3N0cmVhbToKLSAgICAgICAgICAgIHNlbGYuc2VuZF9idWZmZXJfaXNfZW1w
dHkgPSBGYWxzZQotICAgICAgICAgICAgc2VsZi5fc2VuZF9idWZmZXJfZmluID0gc2VsZi5fc2Vu
ZF9idWZmZXJfc3RvcAotICAgICAgICAgICAgc2VsZi5fc2VuZF9wZW5kaW5nX2VvZiA9IFRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YjhjMjZmYTRjNjA2ZTFkYWEwMDQ0ZjBiZmVkZGQyZGYy
MmIyNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWljL2NvbmZpZ3VyYXRpb24u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9jb25uZWN0aW9uLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3NyYy9haW9xdWljL3F1aWMvY3J5cHRvLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9x
dWljL3F1aWMvZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvbG9nZ2Vy
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0LnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3NyYy9haW9xdWljL3F1aWMvcGFja2V0X2J1aWxkZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3Jj
L2Fpb3F1aWMvcXVpYy9yYW5nZXNldC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9xdWlj
L3JlY292ZXJ5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL3F1aWMvcmV0cnkucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvcXVpYy9zdHJlYW0ucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy90bHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvdGxz
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGIxMGNiYmE1ZDkwZWIyY2ZlOWUy
YmEzMTZhNDM3ZmQ3Nzg0ZjQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy90bHMucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxOTI2ICswLDAgQEAKLWltcG9ydCBkYXRldGltZQotaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCBvcwotaW1wb3J0IHNzbAotaW1wb3J0IHN0cnVjdAotZnJvbSBjb250ZXh0bGliIGltcG9ydCBj
b250ZXh0bWFuYWdlcgotZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzLCBmaWVsZAot
ZnJvbSBlbnVtIGltcG9ydCBFbnVtLCBJbnRFbnVtCi1mcm9tIGZ1bmN0b29scyBpbXBvcnQgcGFy
dGlhbAotZnJvbSB0eXBpbmcgaW1wb3J0ICgKLSAgICBBbnksCi0gICAgQ2FsbGFibGUsCi0gICAg
RGljdCwKLSAgICBHZW5lcmF0b3IsCi0gICAgTGlzdCwKLSAgICBPcHRpb25hbCwKLSAgICBTZXF1
ZW5jZSwKLSAgICBUdXBsZSwKLSAgICBUeXBlVmFyLAotICAgIFVuaW9uLAotKQotCi1pbXBvcnQg
Y2VydGlmaQotZnJvbSBjcnlwdG9ncmFwaHkgaW1wb3J0IHg1MDkKLWZyb20gY3J5cHRvZ3JhcGh5
LmV4Y2VwdGlvbnMgaW1wb3J0IEludmFsaWRTaWduYXR1cmUKLWZyb20gY3J5cHRvZ3JhcGh5Lmhh
em1hdC5iYWNrZW5kcyBpbXBvcnQgZGVmYXVsdF9iYWNrZW5kCi1mcm9tIGNyeXB0b2dyYXBoeS5o
YXptYXQuYmluZGluZ3Mub3BlbnNzbC5iaW5kaW5nIGltcG9ydCBCaW5kaW5nCi1mcm9tIGNyeXB0
b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgaGFzaGVzLCBobWFjLCBzZXJpYWxpemF0
aW9uCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5hc3ltbWV0cmljIGltcG9y
dCAoCi0gICAgZHNhLAotICAgIGVjLAotICAgIHBhZGRpbmcsCi0gICAgcnNhLAotICAgIHg0NDgs
Ci0gICAgeDI1NTE5LAotKQotZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMua2Rm
LmhrZGYgaW1wb3J0IEhLREZFeHBhbmQKLWZyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRp
dmVzLnNlcmlhbGl6YXRpb24gaW1wb3J0IEVuY29kaW5nLCBQdWJsaWNGb3JtYXQKLQotZnJvbSAu
YnVmZmVyIGltcG9ydCBCdWZmZXIKLQotYmluZGluZyA9IEJpbmRpbmcoKQotYmluZGluZy5pbml0
X3N0YXRpY19sb2NrcygpCi1mZmkgPSBiaW5kaW5nLmZmaQotbGliID0gYmluZGluZy5saWIKLQot
VExTX1ZFUlNJT05fMV8yID0gMHgwMzAzCi1UTFNfVkVSU0lPTl8xXzMgPSAweDAzMDQKLVRMU19W
RVJTSU9OXzFfM19EUkFGVF8yOCA9IDB4N0YxQwotVExTX1ZFUlNJT05fMV8zX0RSQUZUXzI3ID0g
MHg3RjFCCi1UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjYgPSAweDdGMUEKLQotVCA9IFR5cGVWYXIo
IlQiKQotCi0jIGZhY2lsaXRhdGUgbW9ja2luZyBmb3IgdGhlIHRlc3Qgc3VpdGUKLXV0Y25vdyA9
IGRhdGV0aW1lLmRhdGV0aW1lLnV0Y25vdwotCi0KLWNsYXNzIEFsZXJ0RGVzY3JpcHRpb24oSW50
RW51bSk6Ci0gICAgY2xvc2Vfbm90aWZ5ID0gMAotICAgIHVuZXhwZWN0ZWRfbWVzc2FnZSA9IDEw
Ci0gICAgYmFkX3JlY29yZF9tYWMgPSAyMAotICAgIHJlY29yZF9vdmVyZmxvdyA9IDIyCi0gICAg
aGFuZHNoYWtlX2ZhaWx1cmUgPSA0MAotICAgIGJhZF9jZXJ0aWZpY2F0ZSA9IDQyCi0gICAgdW5z
dXBwb3J0ZWRfY2VydGlmaWNhdGUgPSA0MwotICAgIGNlcnRpZmljYXRlX3Jldm9rZWQgPSA0NAot
ICAgIGNlcnRpZmljYXRlX2V4cGlyZWQgPSA0NQotICAgIGNlcnRpZmljYXRlX3Vua25vd24gPSA0
NgotICAgIGlsbGVnYWxfcGFyYW1ldGVyID0gNDcKLSAgICB1bmtub3duX2NhID0gNDgKLSAgICBh
Y2Nlc3NfZGVuaWVkID0gNDkKLSAgICBkZWNvZGVfZXJyb3IgPSA1MAotICAgIGRlY3J5cHRfZXJy
b3IgPSA1MQotICAgIHByb3RvY29sX3ZlcnNpb24gPSA3MAotICAgIGluc3VmZmljaWVudF9zZWN1
cml0eSA9IDcxCi0gICAgaW50ZXJuYWxfZXJyb3IgPSA4MAotICAgIGluYXBwcm9wcmlhdGVfZmFs
bGJhY2sgPSA4NgotICAgIHVzZXJfY2FuY2VsZWQgPSA5MAotICAgIG1pc3NpbmdfZXh0ZW5zaW9u
ID0gMTA5Ci0gICAgdW5zdXBwb3J0ZWRfZXh0ZW5zaW9uID0gMTEwCi0gICAgdW5yZWNvZ25pemVk
X25hbWUgPSAxMTIKLSAgICBiYWRfY2VydGlmaWNhdGVfc3RhdHVzX3Jlc3BvbnNlID0gMTEzCi0g
ICAgdW5rbm93bl9wc2tfaWRlbnRpdHkgPSAxMTUKLSAgICBjZXJ0aWZpY2F0ZV9yZXF1aXJlZCA9
IDExNgotICAgIG5vX2FwcGxpY2F0aW9uX3Byb3RvY29sID0gMTIwCi0KLQotY2xhc3MgQWxlcnQo
RXhjZXB0aW9uKToKLSAgICBkZXNjcmlwdGlvbjogQWxlcnREZXNjcmlwdGlvbgotCi0KLWNsYXNz
IEFsZXJ0QmFkQ2VydGlmaWNhdGUoQWxlcnQpOgotICAgIGRlc2NyaXB0aW9uID0gQWxlcnREZXNj
cmlwdGlvbi5iYWRfY2VydGlmaWNhdGUKLQotCi1jbGFzcyBBbGVydENlcnRpZmljYXRlRXhwaXJl
ZChBbGVydCk6Ci0gICAgZGVzY3JpcHRpb24gPSBBbGVydERlc2NyaXB0aW9uLmNlcnRpZmljYXRl
X2V4cGlyZWQKLQotCi1jbGFzcyBBbGVydERlY3J5cHRFcnJvcihBbGVydCk6Ci0gICAgZGVzY3Jp
cHRpb24gPSBBbGVydERlc2NyaXB0aW9uLmRlY3J5cHRfZXJyb3IKLQotCi1jbGFzcyBBbGVydEhh
bmRzaGFrZUZhaWx1cmUoQWxlcnQpOgotICAgIGRlc2NyaXB0aW9uID0gQWxlcnREZXNjcmlwdGlv
bi5oYW5kc2hha2VfZmFpbHVyZQotCi0KLWNsYXNzIEFsZXJ0SWxsZWdhbFBhcmFtZXRlcihBbGVy
dCk6Ci0gICAgZGVzY3JpcHRpb24gPSBBbGVydERlc2NyaXB0aW9uLmlsbGVnYWxfcGFyYW1ldGVy
Ci0KLQotY2xhc3MgQWxlcnRJbnRlcm5hbEVycm9yKEFsZXJ0KToKLSAgICBkZXNjcmlwdGlvbiA9
IEFsZXJ0RGVzY3JpcHRpb24uaW50ZXJuYWxfZXJyb3IKLQotCi1jbGFzcyBBbGVydFByb3RvY29s
VmVyc2lvbihBbGVydCk6Ci0gICAgZGVzY3JpcHRpb24gPSBBbGVydERlc2NyaXB0aW9uLnByb3Rv
Y29sX3ZlcnNpb24KLQotCi1jbGFzcyBBbGVydFVuZXhwZWN0ZWRNZXNzYWdlKEFsZXJ0KToKLSAg
ICBkZXNjcmlwdGlvbiA9IEFsZXJ0RGVzY3JpcHRpb24udW5leHBlY3RlZF9tZXNzYWdlCi0KLQot
Y2xhc3MgRGlyZWN0aW9uKEVudW0pOgotICAgIERFQ1JZUFQgPSAwCi0gICAgRU5DUllQVCA9IDEK
LQotCi1jbGFzcyBFcG9jaChFbnVtKToKLSAgICBJTklUSUFMID0gMAotICAgIFpFUk9fUlRUID0g
MQotICAgIEhBTkRTSEFLRSA9IDIKLSAgICBPTkVfUlRUID0gMwotCi0KLWNsYXNzIFN0YXRlKEVu
dW0pOgotICAgIENMSUVOVF9IQU5EU0hBS0VfU1RBUlQgPSAwCi0gICAgQ0xJRU5UX0VYUEVDVF9T
RVJWRVJfSEVMTE8gPSAxCi0gICAgQ0xJRU5UX0VYUEVDVF9FTkNSWVBURURfRVhURU5TSU9OUyA9
IDIKLSAgICBDTElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1JFUVVFU1RfT1JfQ0VSVElGSUNBVEUg
PSAzCi0gICAgQ0xJRU5UX0VYUEVDVF9DRVJUSUZJQ0FURV9DRVJUSUZJQ0FURSA9IDQKLSAgICBD
TElFTlRfRVhQRUNUX0NFUlRJRklDQVRFX1ZFUklGWSA9IDUKLSAgICBDTElFTlRfRVhQRUNUX0ZJ
TklTSEVEID0gNgotICAgIENMSUVOVF9QT1NUX0hBTkRTSEFLRSA9IDcKLQotICAgIFNFUlZFUl9F
WFBFQ1RfQ0xJRU5UX0hFTExPID0gOAotICAgIFNFUlZFUl9FWFBFQ1RfRklOSVNIRUQgPSA5Ci0g
ICAgU0VSVkVSX1BPU1RfSEFORFNIQUtFID0gMTAKLQotCi1kZWYgaGtkZl9sYWJlbChsYWJlbDog
Ynl0ZXMsIGhhc2hfdmFsdWU6IGJ5dGVzLCBsZW5ndGg6IGludCkgLT4gYnl0ZXM6Ci0gICAgZnVs
bF9sYWJlbCA9IGIidGxzMTMgIiArIGxhYmVsCi0gICAgcmV0dXJuICgKLSAgICAgICAgc3RydWN0
LnBhY2soIiFIQiIsIGxlbmd0aCwgbGVuKGZ1bGxfbGFiZWwpKQotICAgICAgICArIGZ1bGxfbGFi
ZWwKLSAgICAgICAgKyBzdHJ1Y3QucGFjaygiIUIiLCBsZW4oaGFzaF92YWx1ZSkpCi0gICAgICAg
ICsgaGFzaF92YWx1ZQotICAgICkKLQotCi1kZWYgaGtkZl9leHBhbmRfbGFiZWwoCi0gICAgYWxn
b3JpdGhtOiBoYXNoZXMuSGFzaEFsZ29yaXRobSwKLSAgICBzZWNyZXQ6IGJ5dGVzLAotICAgIGxh
YmVsOiBieXRlcywKLSAgICBoYXNoX3ZhbHVlOiBieXRlcywKLSAgICBsZW5ndGg6IGludCwKLSkg
LT4gYnl0ZXM6Ci0gICAgcmV0dXJuIEhLREZFeHBhbmQoCi0gICAgICAgIGFsZ29yaXRobT1hbGdv
cml0aG0sCi0gICAgICAgIGxlbmd0aD1sZW5ndGgsCi0gICAgICAgIGluZm89aGtkZl9sYWJlbChs
YWJlbCwgaGFzaF92YWx1ZSwgbGVuZ3RoKSwKLSAgICAgICAgYmFja2VuZD1kZWZhdWx0X2JhY2tl
bmQoKSwKLSAgICApLmRlcml2ZShzZWNyZXQpCi0KLQotZGVmIGhrZGZfZXh0cmFjdCgKLSAgICBh
bGdvcml0aG06IGhhc2hlcy5IYXNoQWxnb3JpdGhtLCBzYWx0OiBieXRlcywga2V5X21hdGVyaWFs
OiBieXRlcwotKSAtPiBieXRlczoKLSAgICBoID0gaG1hYy5ITUFDKHNhbHQsIGFsZ29yaXRobSwg
YmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKSkKLSAgICBoLnVwZGF0ZShrZXlfbWF0ZXJpYWwpCi0g
ICAgcmV0dXJuIGguZmluYWxpemUoKQotCi0KLWRlZiBsb2FkX3BlbV9wcml2YXRlX2tleSgKLSAg
ICBkYXRhOiBieXRlcywgcGFzc3dvcmQ6IE9wdGlvbmFsW2J5dGVzXQotKSAtPiBVbmlvbltkc2Eu
RFNBUHJpdmF0ZUtleSwgZWMuRWxsaXB0aWNDdXJ2ZVByaXZhdGVLZXksIHJzYS5SU0FQcml2YXRl
S2V5XToKLSAgICAiIiIKLSAgICBMb2FkIGEgUEVNLWVuY29kZWQgcHJpdmF0ZSBrZXkuCi0gICAg
IiIiCi0gICAgcmV0dXJuIHNlcmlhbGl6YXRpb24ubG9hZF9wZW1fcHJpdmF0ZV9rZXkoCi0gICAg
ICAgIGRhdGEsIHBhc3N3b3JkPXBhc3N3b3JkLCBiYWNrZW5kPWRlZmF1bHRfYmFja2VuZCgpCi0g
ICAgKQotCi0KLWRlZiBsb2FkX3BlbV94NTA5X2NlcnRpZmljYXRlcyhkYXRhOiBieXRlcykgLT4g
TGlzdFt4NTA5LkNlcnRpZmljYXRlXToKLSAgICAiIiIKLSAgICBMb2FkIGEgY2hhaW4gb2YgUEVN
LWVuY29kZWQgWDUwOSBjZXJ0aWZpY2F0ZXMuCi0gICAgIiIiCi0gICAgYm91bmRhcnkgPSBiIi0t
LS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiIKLSAgICBjZXJ0aWZpY2F0ZXMgPSBbXQotICAgIGZv
ciBjaHVuayBpbiBkYXRhLnNwbGl0KGJvdW5kYXJ5KToKLSAgICAgICAgaWYgY2h1bms6Ci0gICAg
ICAgICAgICBjZXJ0aWZpY2F0ZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgIHg1MDkubG9hZF9w
ZW1feDUwOV9jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgY2h1bmsgKyBib3VuZGFy
eSwgYmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICkKLSAgICByZXR1cm4gY2VydGlmaWNhdGVzCi0KLQotZGVmIG9wZW5zc2xfYXNzZXJ0KG9r
OiBib29sLCBmdW5jOiBzdHIpIC0+IE5vbmU6Ci0gICAgaWYgbm90IG9rOgotICAgICAgICBsaWIu
RVJSX2NsZWFyX2Vycm9yKCkKLSAgICAgICAgcmFpc2UgQWxlcnRJbnRlcm5hbEVycm9yKCJPcGVu
U1NMIGNhbGwgdG8gJXMgZmFpbGVkIiAlIGZ1bmMpCi0KLQotZGVmIG9wZW5zc2xfZGVjb2RlX3N0
cmluZyhjaGFycCkgLT4gc3RyOgotICAgIHJldHVybiBmZmkuc3RyaW5nKGNoYXJwKS5kZWNvZGUo
InV0Zi04IikgaWYgY2hhcnAgZWxzZSAiIgotCi0KLWRlZiBvcGVuc3NsX2VuY29kZV9wYXRoKHM6
IE9wdGlvbmFsW3N0cl0pIC0+IEFueToKLSAgICBpZiBzIGlzIG5vdCBOb25lOgotICAgICAgICBy
ZXR1cm4gb3MuZnNlbmNvZGUocykKLSAgICByZXR1cm4gZmZpLk5VTEwKLQotCi1kZWYgY2VydF94
NTA5X3B0cihjZXJ0aWZpY2F0ZTogeDUwOS5DZXJ0aWZpY2F0ZSkgLT4gQW55OgotICAgICIiIgot
ICAgIEFjY2Vzc29yIGZvciBwcml2YXRlIGF0dHJpYnV0ZS4KLSAgICAiIiIKLSAgICByZXR1cm4g
Z2V0YXR0cihjZXJ0aWZpY2F0ZSwgIl94NTA5IikKLQotCi1kZWYgdmVyaWZ5X2NlcnRpZmljYXRl
KAotICAgIGNlcnRpZmljYXRlOiB4NTA5LkNlcnRpZmljYXRlLAotICAgIGNoYWluOiBMaXN0W3g1
MDkuQ2VydGlmaWNhdGVdID0gW10sCi0gICAgc2VydmVyX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBO
b25lLAotICAgIGNhZGF0YTogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZSwKLSAgICBjYWZpbGU6IE9w
dGlvbmFsW3N0cl0gPSBOb25lLAotICAgIGNhcGF0aDogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCi0p
IC0+IE5vbmU6Ci0gICAgIyB2ZXJpZnkgZGF0ZXMKLSAgICBub3cgPSB1dGNub3coKQotICAgIGlm
IG5vdyA8IGNlcnRpZmljYXRlLm5vdF92YWxpZF9iZWZvcmU6Ci0gICAgICAgIHJhaXNlIEFsZXJ0
Q2VydGlmaWNhdGVFeHBpcmVkKCJDZXJ0aWZpY2F0ZSBpcyBub3QgdmFsaWQgeWV0IikKLSAgICBp
ZiBub3cgPiBjZXJ0aWZpY2F0ZS5ub3RfdmFsaWRfYWZ0ZXI6Ci0gICAgICAgIHJhaXNlIEFsZXJ0
Q2VydGlmaWNhdGVFeHBpcmVkKCJDZXJ0aWZpY2F0ZSBpcyBubyBsb25nZXIgdmFsaWQiKQotCi0g
ICAgIyB2ZXJpZnkgc3ViamVjdAotICAgIGlmIHNlcnZlcl9uYW1lIGlzIG5vdCBOb25lOgotICAg
ICAgICBzdWJqZWN0ID0gW10KLSAgICAgICAgc3ViamVjdEFsdE5hbWU6IExpc3RbVHVwbGVbc3Ry
LCBzdHJdXSA9IFtdCi0gICAgICAgIGZvciBhdHRyIGluIGNlcnRpZmljYXRlLnN1YmplY3Q6Ci0g
ICAgICAgICAgICBpZiBhdHRyLm9pZCA9PSB4NTA5Lk5hbWVPSUQuQ09NTU9OX05BTUU6Ci0gICAg
ICAgICAgICAgICAgc3ViamVjdC5hcHBlbmQoKCgiY29tbW9uTmFtZSIsIGF0dHIudmFsdWUpLCkp
Ci0gICAgICAgIGZvciBleHQgaW4gY2VydGlmaWNhdGUuZXh0ZW5zaW9uczoKLSAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXh0LnZhbHVlLCB4NTA5LlN1YmplY3RBbHRlcm5hdGl2ZU5hbWUpOgot
ICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIGV4dC52YWx1ZToKLSAgICAgICAgICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShuYW1lLCB4NTA5LkROU05hbWUpOgotICAgICAgICAgICAgICAgICAg
ICAgICAgc3ViamVjdEFsdE5hbWUuYXBwZW5kKCgiRE5TIiwgbmFtZS52YWx1ZSkpCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc3NsLm1hdGNoX2hvc3RuYW1lKAotICAgICAgICAgICAgICAg
IHsic3ViamVjdCI6IHR1cGxlKHN1YmplY3QpLCAic3ViamVjdEFsdE5hbWUiOiB0dXBsZShzdWJq
ZWN0QWx0TmFtZSl9LAotICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lLAotICAgICAgICAgICAg
KQotICAgICAgICBleGNlcHQgc3NsLkNlcnRpZmljYXRlRXJyb3IgYXMgZXhjOgotICAgICAgICAg
ICAgcmFpc2UgQWxlcnRCYWRDZXJ0aWZpY2F0ZSgiXG4iLmpvaW4oZXhjLmFyZ3MpKSBmcm9tIGV4
YwotCi0gICAgIyB2ZXJpZnkgY2VydGlmaWNhdGUgY2hhaW4KLSAgICBzdG9yZSA9IGxpYi5YNTA5
X1NUT1JFX25ldygpCi0gICAgb3BlbnNzbF9hc3NlcnQoc3RvcmUgIT0gZmZpLk5VTEwsICJYNTA5
X3N0b3JlX25ldyIpCi0gICAgc3RvcmUgPSBmZmkuZ2Moc3RvcmUsIGxpYi5YNTA5X1NUT1JFX2Zy
ZWUpCi0KLSAgICAjIGxvYWQgZGVmYXVsdCBDQXMKLSAgICBvcGVuc3NsX2Fzc2VydCgKLSAgICAg
ICAgbGliLlg1MDlfU1RPUkVfc2V0X2RlZmF1bHRfcGF0aHMoc3RvcmUpLCAiWDUwOV9TVE9SRV9z
ZXRfZGVmYXVsdF9wYXRocyIKLSAgICApCi0gICAgb3BlbnNzbF9hc3NlcnQoCi0gICAgICAgIGxp
Yi5YNTA5X1NUT1JFX2xvYWRfbG9jYXRpb25zKAotICAgICAgICAgICAgc3RvcmUsIG9wZW5zc2xf
ZW5jb2RlX3BhdGgoY2VydGlmaS53aGVyZSgpKSwgb3BlbnNzbF9lbmNvZGVfcGF0aChOb25lKSwK
LSAgICAgICAgKSwKLSAgICAgICAgIlg1MDlfU1RPUkVfbG9hZF9sb2NhdGlvbnMiLAotICAgICkK
LQotICAgICMgbG9hZCBleHRyYSBDQXMKLSAgICBpZiBjYWRhdGEgaXMgbm90IE5vbmU6Ci0gICAg
ICAgIGZvciBjZXJ0IGluIGxvYWRfcGVtX3g1MDlfY2VydGlmaWNhdGVzKGNhZGF0YSk6Ci0gICAg
ICAgICAgICBvcGVuc3NsX2Fzc2VydCgKLSAgICAgICAgICAgICAgICBsaWIuWDUwOV9TVE9SRV9h
ZGRfY2VydChzdG9yZSwgY2VydF94NTA5X3B0cihjZXJ0KSksCi0gICAgICAgICAgICAgICAgIlg1
MDlfU1RPUkVfYWRkX2NlcnQiLAotICAgICAgICAgICAgKQotCi0gICAgaWYgY2FmaWxlIGlzIG5v
dCBOb25lIG9yIGNhcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgb3BlbnNzbF9hc3NlcnQoCi0g
ICAgICAgICAgICBsaWIuWDUwOV9TVE9SRV9sb2FkX2xvY2F0aW9ucygKLSAgICAgICAgICAgICAg
ICBzdG9yZSwgb3BlbnNzbF9lbmNvZGVfcGF0aChjYWZpbGUpLCBvcGVuc3NsX2VuY29kZV9wYXRo
KGNhcGF0aCkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICAiWDUwOV9TVE9SRV9sb2FkX2xv
Y2F0aW9ucyIsCi0gICAgICAgICkKLQotICAgIGNoYWluX3N0YWNrID0gbGliLnNrX1g1MDlfbmV3
X251bGwoKQotICAgIG9wZW5zc2xfYXNzZXJ0KGNoYWluX3N0YWNrICE9IGZmaS5OVUxMLCAic2tf
WDUwOV9uZXdfbnVsbCIpCi0gICAgY2hhaW5fc3RhY2sgPSBmZmkuZ2MoY2hhaW5fc3RhY2ssIGxp
Yi5za19YNTA5X2ZyZWUpCi0gICAgZm9yIGNlcnQgaW4gY2hhaW46Ci0gICAgICAgIG9wZW5zc2xf
YXNzZXJ0KAotICAgICAgICAgICAgbGliLnNrX1g1MDlfcHVzaChjaGFpbl9zdGFjaywgY2VydF94
NTA5X3B0cihjZXJ0KSksICJza19YNTA5X3B1c2giCi0gICAgICAgICkKLQotICAgIHN0b3JlX2N0
eCA9IGxpYi5YNTA5X1NUT1JFX0NUWF9uZXcoKQotICAgIG9wZW5zc2xfYXNzZXJ0KHN0b3JlX2N0
eCAhPSBmZmkuTlVMTCwgIlg1MDlfU1RPUkVfQ1RYX25ldyIpCi0gICAgc3RvcmVfY3R4ID0gZmZp
LmdjKHN0b3JlX2N0eCwgbGliLlg1MDlfU1RPUkVfQ1RYX2ZyZWUpCi0gICAgb3BlbnNzbF9hc3Nl
cnQoCi0gICAgICAgIGxpYi5YNTA5X1NUT1JFX0NUWF9pbml0KAotICAgICAgICAgICAgc3RvcmVf
Y3R4LCBzdG9yZSwgY2VydF94NTA5X3B0cihjZXJ0aWZpY2F0ZSksIGNoYWluX3N0YWNrCi0gICAg
ICAgICksCi0gICAgICAgICJYNTA5X1NUT1JFX0NUWF9pbml0IiwKLSAgICApCi0KLSAgICByZXMg
PSBsaWIuWDUwOV92ZXJpZnlfY2VydChzdG9yZV9jdHgpCi0gICAgaWYgbm90IHJlczoKLSAgICAg
ICAgZXJyID0gbGliLlg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcihzdG9yZV9jdHgpCi0gICAgICAg
IGVycl9zdHIgPSBvcGVuc3NsX2RlY29kZV9zdHJpbmcobGliLlg1MDlfdmVyaWZ5X2NlcnRfZXJy
b3Jfc3RyaW5nKGVycikpCi0gICAgICAgIHJhaXNlIEFsZXJ0QmFkQ2VydGlmaWNhdGUoZXJyX3N0
cikKLQotCi1jbGFzcyBDaXBoZXJTdWl0ZShJbnRFbnVtKToKLSAgICBBRVNfMTI4X0dDTV9TSEEy
NTYgPSAweDEzMDEKLSAgICBBRVNfMjU2X0dDTV9TSEEzODQgPSAweDEzMDIKLSAgICBDSEFDSEEy
MF9QT0xZMTMwNV9TSEEyNTYgPSAweDEzMDMKLSAgICBFTVBUWV9SRU5FR09USUFUSU9OX0lORk9f
U0NTViA9IDB4MDBGRgotCi0KLWNsYXNzIENvbXByZXNzaW9uTWV0aG9kKEludEVudW0pOgotICAg
IE5VTEwgPSAwCi0KLQotY2xhc3MgRXh0ZW5zaW9uVHlwZShJbnRFbnVtKToKLSAgICBTRVJWRVJf
TkFNRSA9IDAKLSAgICBTVEFUVVNfUkVRVUVTVCA9IDUKLSAgICBTVVBQT1JURURfR1JPVVBTID0g
MTAKLSAgICBTSUdOQVRVUkVfQUxHT1JJVEhNUyA9IDEzCi0gICAgQUxQTiA9IDE2Ci0gICAgQ09N
UFJFU1NfQ0VSVElGSUNBVEUgPSAyNwotICAgIFBSRV9TSEFSRURfS0VZID0gNDEKLSAgICBFQVJM
WV9EQVRBID0gNDIKLSAgICBTVVBQT1JURURfVkVSU0lPTlMgPSA0MwotICAgIENPT0tJRSA9IDQ0
Ci0gICAgUFNLX0tFWV9FWENIQU5HRV9NT0RFUyA9IDQ1Ci0gICAgS0VZX1NIQVJFID0gNTEKLSAg
ICBRVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTID0gNjU0NDUKLSAgICBFTkNSWVBURURfU0VSVkVS
X05BTUUgPSA2NTQ4NgotCi0KLWNsYXNzIEdyb3VwKEludEVudW0pOgotICAgIFNFQ1AyNTZSMSA9
IDB4MDAxNwotICAgIFNFQ1AzODRSMSA9IDB4MDAxOAotICAgIFNFQ1A1MjFSMSA9IDB4MDAxOQot
ICAgIFgyNTUxOSA9IDB4MDAxRAotICAgIFg0NDggPSAweDAwMUUKLSAgICBHUkVBU0UgPSAweEFB
QUEKLQotCi1jbGFzcyBIYW5kc2hha2VUeXBlKEludEVudW0pOgotICAgIENMSUVOVF9IRUxMTyA9
IDEKLSAgICBTRVJWRVJfSEVMTE8gPSAyCi0gICAgTkVXX1NFU1NJT05fVElDS0VUID0gNAotICAg
IEVORF9PRl9FQVJMWV9EQVRBID0gNQotICAgIEVOQ1JZUFRFRF9FWFRFTlNJT05TID0gOAotICAg
IENFUlRJRklDQVRFID0gMTEKLSAgICBDRVJUSUZJQ0FURV9SRVFVRVNUID0gMTMKLSAgICBDRVJU
SUZJQ0FURV9WRVJJRlkgPSAxNQotICAgIEZJTklTSEVEID0gMjAKLSAgICBLRVlfVVBEQVRFID0g
MjQKLSAgICBDT01QUkVTU0VEX0NFUlRJRklDQVRFID0gMjUKLSAgICBNRVNTQUdFX0hBU0ggPSAy
NTQKLQotCi1jbGFzcyBQc2tLZXlFeGNoYW5nZU1vZGUoSW50RW51bSk6Ci0gICAgUFNLX0tFID0g
MAotICAgIFBTS19ESEVfS0UgPSAxCi0KLQotY2xhc3MgU2lnbmF0dXJlQWxnb3JpdGhtKEludEVu
dW0pOgotICAgIEVDRFNBX1NFQ1AyNTZSMV9TSEEyNTYgPSAweDA0MDMKLSAgICBFQ0RTQV9TRUNQ
Mzg0UjFfU0hBMzg0ID0gMHgwNTAzCi0gICAgRUNEU0FfU0VDUDUyMVIxX1NIQTUxMiA9IDB4MDYw
MwotICAgIEVEMjU1MTkgPSAweDA4MDcKLSAgICBFRDQ0OCA9IDB4MDgwOAotICAgIFJTQV9QS0NT
MV9TSEEyNTYgPSAweDA0MDEKLSAgICBSU0FfUEtDUzFfU0hBMzg0ID0gMHgwNTAxCi0gICAgUlNB
X1BLQ1MxX1NIQTUxMiA9IDB4MDYwMQotICAgIFJTQV9QU1NfUFNTX1NIQTI1NiA9IDB4MDgwOQot
ICAgIFJTQV9QU1NfUFNTX1NIQTM4NCA9IDB4MDgwQQotICAgIFJTQV9QU1NfUFNTX1NIQTUxMiA9
IDB4MDgwQgotICAgIFJTQV9QU1NfUlNBRV9TSEEyNTYgPSAweDA4MDQKLSAgICBSU0FfUFNTX1JT
QUVfU0hBMzg0ID0gMHgwODA1Ci0gICAgUlNBX1BTU19SU0FFX1NIQTUxMiA9IDB4MDgwNgotCi0g
ICAgIyBsZWdhY3kKLSAgICBSU0FfUEtDUzFfU0hBMSA9IDB4MDIwMQotICAgIFNIQTFfRFNBID0g
MHgwMjAyCi0gICAgRUNEU0FfU0hBMSA9IDB4MDIwMwotCi0KLSMgQkxPQ0tTCi0KLQotQGNvbnRl
eHRtYW5hZ2VyCi1kZWYgcHVsbF9ibG9jayhidWY6IEJ1ZmZlciwgY2FwYWNpdHk6IGludCkgLT4g
R2VuZXJhdG9yOgotICAgIGxlbmd0aCA9IDAKLSAgICBmb3IgYiBpbiBidWYucHVsbF9ieXRlcyhj
YXBhY2l0eSk6Ci0gICAgICAgIGxlbmd0aCA9IChsZW5ndGggPDwgOCkgfCBiCi0gICAgZW5kID0g
YnVmLnRlbGwoKSArIGxlbmd0aAotICAgIHlpZWxkIGxlbmd0aAotICAgIGFzc2VydCBidWYudGVs
bCgpID09IGVuZAotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVmIHB1c2hfYmxvY2soYnVmOiBCdWZm
ZXIsIGNhcGFjaXR5OiBpbnQpIC0+IEdlbmVyYXRvcjoKLSAgICAiIiIKLSAgICBDb250ZXh0IG1h
bmFnZXIgdG8gcHVzaCBhIHZhcmlhYmxlLWxlbmd0aCBibG9jaywgd2l0aCBgY2FwYWNpdHlgIGJ5
dGVzCi0gICAgdG8gd3JpdGUgdGhlIGxlbmd0aC4KLSAgICAiIiIKLSAgICBzdGFydCA9IGJ1Zi50
ZWxsKCkgKyBjYXBhY2l0eQotICAgIGJ1Zi5zZWVrKHN0YXJ0KQotICAgIHlpZWxkCi0gICAgZW5k
ID0gYnVmLnRlbGwoKQotICAgIGxlbmd0aCA9IGVuZCAtIHN0YXJ0Ci0gICAgd2hpbGUgY2FwYWNp
dHk6Ci0gICAgICAgIGJ1Zi5zZWVrKHN0YXJ0IC0gY2FwYWNpdHkpCi0gICAgICAgIGJ1Zi5wdXNo
X3VpbnQ4KChsZW5ndGggPj4gKDggKiAoY2FwYWNpdHkgLSAxKSkpICYgMHhGRikKLSAgICAgICAg
Y2FwYWNpdHkgLT0gMQotICAgIGJ1Zi5zZWVrKGVuZCkKLQotCi0jIExJU1RTCi0KLQotZGVmIHB1
bGxfbGlzdChidWY6IEJ1ZmZlciwgY2FwYWNpdHk6IGludCwgZnVuYzogQ2FsbGFibGVbW10sIFRd
KSAtPiBMaXN0W1RdOgotICAgICIiIgotICAgIFB1bGwgYSBsaXN0IG9mIGl0ZW1zLgotICAgICIi
IgotICAgIGl0ZW1zID0gW10KLSAgICB3aXRoIHB1bGxfYmxvY2soYnVmLCBjYXBhY2l0eSkgYXMg
bGVuZ3RoOgotICAgICAgICBlbmQgPSBidWYudGVsbCgpICsgbGVuZ3RoCi0gICAgICAgIHdoaWxl
IGJ1Zi50ZWxsKCkgPCBlbmQ6Ci0gICAgICAgICAgICBpdGVtcy5hcHBlbmQoZnVuYygpKQotICAg
IHJldHVybiBpdGVtcwotCi0KLWRlZiBwdXNoX2xpc3QoCi0gICAgYnVmOiBCdWZmZXIsIGNhcGFj
aXR5OiBpbnQsIGZ1bmM6IENhbGxhYmxlW1tUXSwgTm9uZV0sIHZhbHVlczogU2VxdWVuY2VbVF0K
LSkgLT4gTm9uZToKLSAgICAiIiIKLSAgICBQdXNoIGEgbGlzdCBvZiBpdGVtcy4KLSAgICAiIiIK
LSAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCBjYXBhY2l0eSk6Ci0gICAgICAgIGZvciB2YWx1ZSBp
biB2YWx1ZXM6Ci0gICAgICAgICAgICBmdW5jKHZhbHVlKQotCi0KLWRlZiBwdWxsX29wYXF1ZShi
dWY6IEJ1ZmZlciwgY2FwYWNpdHk6IGludCkgLT4gYnl0ZXM6Ci0gICAgIiIiCi0gICAgUHVsbCBh
biBvcGFxdWUgdmFsdWUgcHJlZml4ZWQgYnkgYSBsZW5ndGguCi0gICAgIiIiCi0gICAgd2l0aCBw
dWxsX2Jsb2NrKGJ1ZiwgY2FwYWNpdHkpIGFzIGxlbmd0aDoKLSAgICAgICAgcmV0dXJuIGJ1Zi5w
dWxsX2J5dGVzKGxlbmd0aCkKLQotCi1kZWYgcHVzaF9vcGFxdWUoYnVmOiBCdWZmZXIsIGNhcGFj
aXR5OiBpbnQsIHZhbHVlOiBieXRlcykgLT4gTm9uZToKLSAgICAiIiIKLSAgICBQdXNoIGFuIG9w
YXF1ZSB2YWx1ZSBwcmVmaXggYnkgYSBsZW5ndGguCi0gICAgIiIiCi0gICAgd2l0aCBwdXNoX2Js
b2NrKGJ1ZiwgY2FwYWNpdHkpOgotICAgICAgICBidWYucHVzaF9ieXRlcyh2YWx1ZSkKLQotCi1A
Y29udGV4dG1hbmFnZXIKLWRlZiBwdXNoX2V4dGVuc2lvbihidWY6IEJ1ZmZlciwgZXh0ZW5zaW9u
X3R5cGU6IGludCkgLT4gR2VuZXJhdG9yOgotICAgIGJ1Zi5wdXNoX3VpbnQxNihleHRlbnNpb25f
dHlwZSkKLSAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCAyKToKLSAgICAgICAgeWllbGQKLQotCi0j
IEtleVNoYXJlRW50cnkKLQotCi1LZXlTaGFyZUVudHJ5ID0gVHVwbGVbaW50LCBieXRlc10KLQot
Ci1kZWYgcHVsbF9rZXlfc2hhcmUoYnVmOiBCdWZmZXIpIC0+IEtleVNoYXJlRW50cnk6Ci0gICAg
Z3JvdXAgPSBidWYucHVsbF91aW50MTYoKQotICAgIGRhdGEgPSBwdWxsX29wYXF1ZShidWYsIDIp
Ci0gICAgcmV0dXJuIChncm91cCwgZGF0YSkKLQotCi1kZWYgcHVzaF9rZXlfc2hhcmUoYnVmOiBC
dWZmZXIsIHZhbHVlOiBLZXlTaGFyZUVudHJ5KSAtPiBOb25lOgotICAgIGJ1Zi5wdXNoX3VpbnQx
Nih2YWx1ZVswXSkKLSAgICBwdXNoX29wYXF1ZShidWYsIDIsIHZhbHVlWzFdKQotCi0KLSMgQUxQ
TgotCi0KLWRlZiBwdWxsX2FscG5fcHJvdG9jb2woYnVmOiBCdWZmZXIpIC0+IHN0cjoKLSAgICBy
ZXR1cm4gcHVsbF9vcGFxdWUoYnVmLCAxKS5kZWNvZGUoImFzY2lpIikKLQotCi1kZWYgcHVzaF9h
bHBuX3Byb3RvY29sKGJ1ZjogQnVmZmVyLCBwcm90b2NvbDogc3RyKSAtPiBOb25lOgotICAgIHB1
c2hfb3BhcXVlKGJ1ZiwgMSwgcHJvdG9jb2wuZW5jb2RlKCJhc2NpaSIpKQotCi0KLSMgUFJFIFNI
QVJFRCBLRVkKLQotUHNrSWRlbnRpdHkgPSBUdXBsZVtieXRlcywgaW50XQotCi0KLWRlZiBwdWxs
X3Bza19pZGVudGl0eShidWY6IEJ1ZmZlcikgLT4gUHNrSWRlbnRpdHk6Ci0gICAgaWRlbnRpdHkg
PSBwdWxsX29wYXF1ZShidWYsIDIpCi0gICAgb2JmdXNjYXRlZF90aWNrZXRfYWdlID0gYnVmLnB1
bGxfdWludDMyKCkKLSAgICByZXR1cm4gKGlkZW50aXR5LCBvYmZ1c2NhdGVkX3RpY2tldF9hZ2Up
Ci0KLQotZGVmIHB1c2hfcHNrX2lkZW50aXR5KGJ1ZjogQnVmZmVyLCBlbnRyeTogUHNrSWRlbnRp
dHkpIC0+IE5vbmU6Ci0gICAgcHVzaF9vcGFxdWUoYnVmLCAyLCBlbnRyeVswXSkKLSAgICBidWYu
cHVzaF91aW50MzIoZW50cnlbMV0pCi0KLQotZGVmIHB1bGxfcHNrX2JpbmRlcihidWY6IEJ1ZmZl
cikgLT4gYnl0ZXM6Ci0gICAgcmV0dXJuIHB1bGxfb3BhcXVlKGJ1ZiwgMSkKLQotCi1kZWYgcHVz
aF9wc2tfYmluZGVyKGJ1ZjogQnVmZmVyLCBiaW5kZXI6IGJ5dGVzKSAtPiBOb25lOgotICAgIHB1
c2hfb3BhcXVlKGJ1ZiwgMSwgYmluZGVyKQotCi0KLSMgTUVTU0FHRVMKLQotRXh0ZW5zaW9uID0g
VHVwbGVbaW50LCBieXRlc10KLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBPZmZlcmVkUHNrczoKLSAg
ICBpZGVudGl0aWVzOiBMaXN0W1Bza0lkZW50aXR5XQotICAgIGJpbmRlcnM6IExpc3RbYnl0ZXNd
Ci0KLQotQGRhdGFjbGFzcwotY2xhc3MgQ2xpZW50SGVsbG86Ci0gICAgcmFuZG9tOiBieXRlcwot
ICAgIGxlZ2FjeV9zZXNzaW9uX2lkOiBieXRlcwotICAgIGNpcGhlcl9zdWl0ZXM6IExpc3RbaW50
XQotICAgIGxlZ2FjeV9jb21wcmVzc2lvbl9tZXRob2RzOiBMaXN0W2ludF0KLQotICAgICMgZXh0
ZW5zaW9ucwotICAgIGFscG5fcHJvdG9jb2xzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZQot
ICAgIGVhcmx5X2RhdGE6IGJvb2wgPSBGYWxzZQotICAgIGtleV9zaGFyZTogT3B0aW9uYWxbTGlz
dFtLZXlTaGFyZUVudHJ5XV0gPSBOb25lCi0gICAgcHJlX3NoYXJlZF9rZXk6IE9wdGlvbmFsW09m
ZmVyZWRQc2tzXSA9IE5vbmUKLSAgICBwc2tfa2V5X2V4Y2hhbmdlX21vZGVzOiBPcHRpb25hbFtM
aXN0W2ludF1dID0gTm9uZQotICAgIHNlcnZlcl9uYW1lOiBPcHRpb25hbFtzdHJdID0gTm9uZQot
ICAgIHNpZ25hdHVyZV9hbGdvcml0aG1zOiBPcHRpb25hbFtMaXN0W2ludF1dID0gTm9uZQotICAg
IHN1cHBvcnRlZF9ncm91cHM6IE9wdGlvbmFsW0xpc3RbaW50XV0gPSBOb25lCi0gICAgc3VwcG9y
dGVkX3ZlcnNpb25zOiBPcHRpb25hbFtMaXN0W2ludF1dID0gTm9uZQotCi0gICAgb3RoZXJfZXh0
ZW5zaW9uczogTGlzdFtFeHRlbnNpb25dID0gZmllbGQoZGVmYXVsdF9mYWN0b3J5PWxpc3QpCi0K
LQotZGVmIHB1bGxfY2xpZW50X2hlbGxvKGJ1ZjogQnVmZmVyKSAtPiBDbGllbnRIZWxsbzoKLSAg
ICBhc3NlcnQgYnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLkNMSUVOVF9IRUxMTwot
ICAgIHdpdGggcHVsbF9ibG9jayhidWYsIDMpOgotICAgICAgICBhc3NlcnQgYnVmLnB1bGxfdWlu
dDE2KCkgPT0gVExTX1ZFUlNJT05fMV8yCi0KLSAgICAgICAgaGVsbG8gPSBDbGllbnRIZWxsbygK
LSAgICAgICAgICAgIHJhbmRvbT1idWYucHVsbF9ieXRlcygzMiksCi0gICAgICAgICAgICBsZWdh
Y3lfc2Vzc2lvbl9pZD1wdWxsX29wYXF1ZShidWYsIDEpLAotICAgICAgICAgICAgY2lwaGVyX3N1
aXRlcz1wdWxsX2xpc3QoYnVmLCAyLCBidWYucHVsbF91aW50MTYpLAotICAgICAgICAgICAgbGVn
YWN5X2NvbXByZXNzaW9uX21ldGhvZHM9cHVsbF9saXN0KGJ1ZiwgMSwgYnVmLnB1bGxfdWludDgp
LAotICAgICAgICApCi0KLSAgICAgICAgIyBleHRlbnNpb25zCi0gICAgICAgIGFmdGVyX3BzayA9
IEZhbHNlCi0KLSAgICAgICAgZGVmIHB1bGxfZXh0ZW5zaW9uKCkgLT4gTm9uZToKLSAgICAgICAg
ICAgICMgcHJlX3NoYXJlZF9rZXkgTVVTVCBiZSBsYXN0Ci0gICAgICAgICAgICBub25sb2NhbCBh
ZnRlcl9wc2sKLSAgICAgICAgICAgIGFzc2VydCBub3QgYWZ0ZXJfcHNrCi0KLSAgICAgICAgICAg
IGV4dGVuc2lvbl90eXBlID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICAgICAgICAgIGV4dGVuc2lv
bl9sZW5ndGggPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3R5
cGUgPT0gRXh0ZW5zaW9uVHlwZS5LRVlfU0hBUkU6Ci0gICAgICAgICAgICAgICAgaGVsbG8ua2V5
X3NoYXJlID0gcHVsbF9saXN0KGJ1ZiwgMiwgcGFydGlhbChwdWxsX2tleV9zaGFyZSwgYnVmKSkK
LSAgICAgICAgICAgIGVsaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5TVVBQT1JU
RURfVkVSU0lPTlM6Ci0gICAgICAgICAgICAgICAgaGVsbG8uc3VwcG9ydGVkX3ZlcnNpb25zID0g
cHVsbF9saXN0KGJ1ZiwgMSwgYnVmLnB1bGxfdWludDE2KQotICAgICAgICAgICAgZWxpZiBleHRl
bnNpb25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLlNJR05BVFVSRV9BTEdPUklUSE1TOgotICAgICAg
ICAgICAgICAgIGhlbGxvLnNpZ25hdHVyZV9hbGdvcml0aG1zID0gcHVsbF9saXN0KGJ1ZiwgMiwg
YnVmLnB1bGxfdWludDE2KQotICAgICAgICAgICAgZWxpZiBleHRlbnNpb25fdHlwZSA9PSBFeHRl
bnNpb25UeXBlLlNVUFBPUlRFRF9HUk9VUFM6Ci0gICAgICAgICAgICAgICAgaGVsbG8uc3VwcG9y
dGVkX2dyb3VwcyA9IHB1bGxfbGlzdChidWYsIDIsIGJ1Zi5wdWxsX3VpbnQxNikKLSAgICAgICAg
ICAgIGVsaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5QU0tfS0VZX0VYQ0hBTkdF
X01PREVTOgotICAgICAgICAgICAgICAgIGhlbGxvLnBza19rZXlfZXhjaGFuZ2VfbW9kZXMgPSBw
dWxsX2xpc3QoYnVmLCAxLCBidWYucHVsbF91aW50OCkKLSAgICAgICAgICAgIGVsaWYgZXh0ZW5z
aW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5TRVJWRVJfTkFNRToKLSAgICAgICAgICAgICAgICB3
aXRoIHB1bGxfYmxvY2soYnVmLCAyKToKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGJ1Zi5w
dWxsX3VpbnQ4KCkgPT0gMAotICAgICAgICAgICAgICAgICAgICBoZWxsby5zZXJ2ZXJfbmFtZSA9
IHB1bGxfb3BhcXVlKGJ1ZiwgMikuZGVjb2RlKCJhc2NpaSIpCi0gICAgICAgICAgICBlbGlmIGV4
dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuQUxQTjoKLSAgICAgICAgICAgICAgICBoZWxs
by5hbHBuX3Byb3RvY29scyA9IHB1bGxfbGlzdCgKLSAgICAgICAgICAgICAgICAgICAgYnVmLCAy
LCBwYXJ0aWFsKHB1bGxfYWxwbl9wcm90b2NvbCwgYnVmKQotICAgICAgICAgICAgICAgICkKLSAg
ICAgICAgICAgIGVsaWYgZXh0ZW5zaW9uX3R5cGUgPT0gRXh0ZW5zaW9uVHlwZS5FQVJMWV9EQVRB
OgotICAgICAgICAgICAgICAgIGhlbGxvLmVhcmx5X2RhdGEgPSBUcnVlCi0gICAgICAgICAgICBl
bGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuUFJFX1NIQVJFRF9LRVk6Ci0gICAg
ICAgICAgICAgICAgaGVsbG8ucHJlX3NoYXJlZF9rZXkgPSBPZmZlcmVkUHNrcygKLSAgICAgICAg
ICAgICAgICAgICAgaWRlbnRpdGllcz1wdWxsX2xpc3QoYnVmLCAyLCBwYXJ0aWFsKHB1bGxfcHNr
X2lkZW50aXR5LCBidWYpKSwKLSAgICAgICAgICAgICAgICAgICAgYmluZGVycz1wdWxsX2xpc3Qo
YnVmLCAyLCBwYXJ0aWFsKHB1bGxfcHNrX2JpbmRlciwgYnVmKSksCi0gICAgICAgICAgICAgICAg
KQotICAgICAgICAgICAgICAgIGFmdGVyX3BzayA9IFRydWUKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgaGVsbG8ub3RoZXJfZXh0ZW5zaW9ucy5hcHBlbmQoCi0gICAgICAgICAg
ICAgICAgICAgIChleHRlbnNpb25fdHlwZSwgYnVmLnB1bGxfYnl0ZXMoZXh0ZW5zaW9uX2xlbmd0
aCkpCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgIHB1bGxfbGlzdChidWYsIDIsIHB1bGxf
ZXh0ZW5zaW9uKQotCi0gICAgcmV0dXJuIGhlbGxvCi0KLQotZGVmIHB1c2hfY2xpZW50X2hlbGxv
KGJ1ZjogQnVmZmVyLCBoZWxsbzogQ2xpZW50SGVsbG8pIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hf
dWludDgoSGFuZHNoYWtlVHlwZS5DTElFTlRfSEVMTE8pCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1
ZiwgMyk6Ci0gICAgICAgIGJ1Zi5wdXNoX3VpbnQxNihUTFNfVkVSU0lPTl8xXzIpCi0gICAgICAg
IGJ1Zi5wdXNoX2J5dGVzKGhlbGxvLnJhbmRvbSkKLSAgICAgICAgcHVzaF9vcGFxdWUoYnVmLCAx
LCBoZWxsby5sZWdhY3lfc2Vzc2lvbl9pZCkKLSAgICAgICAgcHVzaF9saXN0KGJ1ZiwgMiwgYnVm
LnB1c2hfdWludDE2LCBoZWxsby5jaXBoZXJfc3VpdGVzKQotICAgICAgICBwdXNoX2xpc3QoYnVm
LCAxLCBidWYucHVzaF91aW50OCwgaGVsbG8ubGVnYWN5X2NvbXByZXNzaW9uX21ldGhvZHMpCi0K
LSAgICAgICAgIyBleHRlbnNpb25zCi0gICAgICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDIpOgot
ICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuS0VZX1NI
QVJFKToKLSAgICAgICAgICAgICAgICBwdXNoX2xpc3QoYnVmLCAyLCBwYXJ0aWFsKHB1c2hfa2V5
X3NoYXJlLCBidWYpLCBoZWxsby5rZXlfc2hhcmUpCi0KLSAgICAgICAgICAgIHdpdGggcHVzaF9l
eHRlbnNpb24oYnVmLCBFeHRlbnNpb25UeXBlLlNVUFBPUlRFRF9WRVJTSU9OUyk6Ci0gICAgICAg
ICAgICAgICAgcHVzaF9saXN0KGJ1ZiwgMSwgYnVmLnB1c2hfdWludDE2LCBoZWxsby5zdXBwb3J0
ZWRfdmVyc2lvbnMpCi0KLSAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBFeHRl
bnNpb25UeXBlLlNJR05BVFVSRV9BTEdPUklUSE1TKToKLSAgICAgICAgICAgICAgICBwdXNoX2xp
c3QoYnVmLCAyLCBidWYucHVzaF91aW50MTYsIGhlbGxvLnNpZ25hdHVyZV9hbGdvcml0aG1zKQot
Ci0gICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5TVVBQ
T1JURURfR1JPVVBTKToKLSAgICAgICAgICAgICAgICBwdXNoX2xpc3QoYnVmLCAyLCBidWYucHVz
aF91aW50MTYsIGhlbGxvLnN1cHBvcnRlZF9ncm91cHMpCi0KLSAgICAgICAgICAgIGlmIGhlbGxv
LnBza19rZXlfZXhjaGFuZ2VfbW9kZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgd2l0
aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuUFNLX0tFWV9FWENIQU5HRV9NT0RF
Uyk6Ci0gICAgICAgICAgICAgICAgICAgIHB1c2hfbGlzdChidWYsIDEsIGJ1Zi5wdXNoX3VpbnQ4
LCBoZWxsby5wc2tfa2V5X2V4Y2hhbmdlX21vZGVzKQotCi0gICAgICAgICAgICBpZiBoZWxsby5z
ZXJ2ZXJfbmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5z
aW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5TRVJWRVJfTkFNRSk6Ci0gICAgICAgICAgICAgICAgICAg
IHdpdGggcHVzaF9ibG9jayhidWYsIDIpOgotICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnB1
c2hfdWludDgoMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMiwg
aGVsbG8uc2VydmVyX25hbWUuZW5jb2RlKCJhc2NpaSIpKQotCi0gICAgICAgICAgICBpZiBoZWxs
by5hbHBuX3Byb3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hf
ZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5BTFBOKToKLSAgICAgICAgICAgICAgICAgICAg
cHVzaF9saXN0KAotICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCAyLCBwYXJ0aWFsKHB1c2hf
YWxwbl9wcm90b2NvbCwgYnVmKSwgaGVsbG8uYWxwbl9wcm90b2NvbHMKLSAgICAgICAgICAgICAg
ICAgICAgKQotCi0gICAgICAgICAgICBmb3IgZXh0ZW5zaW9uX3R5cGUsIGV4dGVuc2lvbl92YWx1
ZSBpbiBoZWxsby5vdGhlcl9leHRlbnNpb25zOgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9l
eHRlbnNpb24oYnVmLCBleHRlbnNpb25fdHlwZSk6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5w
dXNoX2J5dGVzKGV4dGVuc2lvbl92YWx1ZSkKLQotICAgICAgICAgICAgaWYgaGVsbG8uZWFybHlf
ZGF0YToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9u
VHlwZS5FQVJMWV9EQVRBKToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotCi0gICAgICAgICAg
ICAjIHByZV9zaGFyZWRfa2V5IE1VU1QgYmUgbGFzdAotICAgICAgICAgICAgaWYgaGVsbG8ucHJl
X3NoYXJlZF9rZXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgd2l0aCBwdXNoX2V4dGVu
c2lvbihidWYsIEV4dGVuc2lvblR5cGUuUFJFX1NIQVJFRF9LRVkpOgotICAgICAgICAgICAgICAg
ICAgICBwdXNoX2xpc3QoCi0gICAgICAgICAgICAgICAgICAgICAgICBidWYsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAyLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbChwdXNoX3Bz
a19pZGVudGl0eSwgYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlbGxvLnByZV9zaGFy
ZWRfa2V5LmlkZW50aXRpZXMsCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg
ICAgICAgcHVzaF9saXN0KAotICAgICAgICAgICAgICAgICAgICAgICAgYnVmLAotICAgICAgICAg
ICAgICAgICAgICAgICAgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWwocHVzaF9w
c2tfYmluZGVyLCBidWYpLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVsbG8ucHJlX3NoYXJl
ZF9rZXkuYmluZGVycywKLSAgICAgICAgICAgICAgICAgICAgKQotCi0KLUBkYXRhY2xhc3MKLWNs
YXNzIFNlcnZlckhlbGxvOgotICAgIHJhbmRvbTogYnl0ZXMKLSAgICBsZWdhY3lfc2Vzc2lvbl9p
ZDogYnl0ZXMKLSAgICBjaXBoZXJfc3VpdGU6IGludAotICAgIGNvbXByZXNzaW9uX21ldGhvZDog
aW50Ci0KLSAgICAjIGV4dGVuc2lvbnMKLSAgICBrZXlfc2hhcmU6IE9wdGlvbmFsW0tleVNoYXJl
RW50cnldID0gTm9uZQotICAgIHByZV9zaGFyZWRfa2V5OiBPcHRpb25hbFtpbnRdID0gTm9uZQot
ICAgIHN1cHBvcnRlZF92ZXJzaW9uOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIG90aGVyX2V4
dGVuc2lvbnM6IExpc3RbVHVwbGVbaW50LCBieXRlc11dID0gZmllbGQoZGVmYXVsdF9mYWN0b3J5
PWxpc3QpCi0KLQotZGVmIHB1bGxfc2VydmVyX2hlbGxvKGJ1ZjogQnVmZmVyKSAtPiBTZXJ2ZXJI
ZWxsbzoKLSAgICBhc3NlcnQgYnVmLnB1bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLlNFUlZF
Ul9IRUxMTwotICAgIHdpdGggcHVsbF9ibG9jayhidWYsIDMpOgotICAgICAgICBhc3NlcnQgYnVm
LnB1bGxfdWludDE2KCkgPT0gVExTX1ZFUlNJT05fMV8yCi0KLSAgICAgICAgaGVsbG8gPSBTZXJ2
ZXJIZWxsbygKLSAgICAgICAgICAgIHJhbmRvbT1idWYucHVsbF9ieXRlcygzMiksCi0gICAgICAg
ICAgICBsZWdhY3lfc2Vzc2lvbl9pZD1wdWxsX29wYXF1ZShidWYsIDEpLAotICAgICAgICAgICAg
Y2lwaGVyX3N1aXRlPWJ1Zi5wdWxsX3VpbnQxNigpLAotICAgICAgICAgICAgY29tcHJlc3Npb25f
bWV0aG9kPWJ1Zi5wdWxsX3VpbnQ4KCksCi0gICAgICAgICkKLQotICAgICAgICAjIGV4dGVuc2lv
bnMKLSAgICAgICAgZGVmIHB1bGxfZXh0ZW5zaW9uKCkgLT4gTm9uZToKLSAgICAgICAgICAgIGV4
dGVuc2lvbl90eXBlID0gYnVmLnB1bGxfdWludDE2KCkKLSAgICAgICAgICAgIGV4dGVuc2lvbl9s
ZW5ndGggPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uX3R5cGUg
PT0gRXh0ZW5zaW9uVHlwZS5TVVBQT1JURURfVkVSU0lPTlM6Ci0gICAgICAgICAgICAgICAgaGVs
bG8uc3VwcG9ydGVkX3ZlcnNpb24gPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAgICAgZWxp
ZiBleHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLktFWV9TSEFSRToKLSAgICAgICAgICAg
ICAgICBoZWxsby5rZXlfc2hhcmUgPSBwdWxsX2tleV9zaGFyZShidWYpCi0gICAgICAgICAgICBl
bGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUuUFJFX1NIQVJFRF9LRVk6Ci0gICAg
ICAgICAgICAgICAgaGVsbG8ucHJlX3NoYXJlZF9rZXkgPSBidWYucHVsbF91aW50MTYoKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBoZWxsby5vdGhlcl9leHRlbnNpb25zLmFw
cGVuZCgKLSAgICAgICAgICAgICAgICAgICAgKGV4dGVuc2lvbl90eXBlLCBidWYucHVsbF9ieXRl
cyhleHRlbnNpb25fbGVuZ3RoKSkKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgcHVsbF9s
aXN0KGJ1ZiwgMiwgcHVsbF9leHRlbnNpb24pCi0KLSAgICByZXR1cm4gaGVsbG8KLQotCi1kZWYg
cHVzaF9zZXJ2ZXJfaGVsbG8oYnVmOiBCdWZmZXIsIGhlbGxvOiBTZXJ2ZXJIZWxsbykgLT4gTm9u
ZToKLSAgICBidWYucHVzaF91aW50OChIYW5kc2hha2VUeXBlLlNFUlZFUl9IRUxMTykKLSAgICB3
aXRoIHB1c2hfYmxvY2soYnVmLCAzKToKLSAgICAgICAgYnVmLnB1c2hfdWludDE2KFRMU19WRVJT
SU9OXzFfMikKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoaGVsbG8ucmFuZG9tKQotCi0gICAgICAg
IHB1c2hfb3BhcXVlKGJ1ZiwgMSwgaGVsbG8ubGVnYWN5X3Nlc3Npb25faWQpCi0gICAgICAgIGJ1
Zi5wdXNoX3VpbnQxNihoZWxsby5jaXBoZXJfc3VpdGUpCi0gICAgICAgIGJ1Zi5wdXNoX3VpbnQ4
KGhlbGxvLmNvbXByZXNzaW9uX21ldGhvZCkKLQotICAgICAgICAjIGV4dGVuc2lvbnMKLSAgICAg
ICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgMik6Ci0gICAgICAgICAgICBpZiBoZWxsby5zdXBwb3J0
ZWRfdmVyc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0ZW5z
aW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5TVVBQT1JURURfVkVSU0lPTlMpOgotICAgICAgICAgICAg
ICAgICAgICBidWYucHVzaF91aW50MTYoaGVsbG8uc3VwcG9ydGVkX3ZlcnNpb24pCi0KLSAgICAg
ICAgICAgIGlmIGhlbGxvLmtleV9zaGFyZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICB3
aXRoIHB1c2hfZXh0ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5LRVlfU0hBUkUpOgotICAgICAg
ICAgICAgICAgICAgICBwdXNoX2tleV9zaGFyZShidWYsIGhlbGxvLmtleV9zaGFyZSkKLQotICAg
ICAgICAgICAgaWYgaGVsbG8ucHJlX3NoYXJlZF9rZXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgd2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuUFJFX1NIQVJFRF9L
RVkpOgotICAgICAgICAgICAgICAgICAgICBidWYucHVzaF91aW50MTYoaGVsbG8ucHJlX3NoYXJl
ZF9rZXkpCi0KLSAgICAgICAgICAgIGZvciBleHRlbnNpb25fdHlwZSwgZXh0ZW5zaW9uX3ZhbHVl
IGluIGhlbGxvLm90aGVyX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICAgICAgd2l0aCBwdXNoX2V4
dGVuc2lvbihidWYsIGV4dGVuc2lvbl90eXBlKToKLSAgICAgICAgICAgICAgICAgICAgYnVmLnB1
c2hfYnl0ZXMoZXh0ZW5zaW9uX3ZhbHVlKQotCi0KLUBkYXRhY2xhc3MKLWNsYXNzIE5ld1Nlc3Np
b25UaWNrZXQ6Ci0gICAgdGlja2V0X2xpZmV0aW1lOiBpbnQgPSAwCi0gICAgdGlja2V0X2FnZV9h
ZGQ6IGludCA9IDAKLSAgICB0aWNrZXRfbm9uY2U6IGJ5dGVzID0gYiIiCi0gICAgdGlja2V0OiBi
eXRlcyA9IGIiIgotCi0gICAgIyBleHRlbnNpb25zCi0gICAgbWF4X2Vhcmx5X2RhdGFfc2l6ZTog
T3B0aW9uYWxbaW50XSA9IE5vbmUKLSAgICBvdGhlcl9leHRlbnNpb25zOiBMaXN0W1R1cGxlW2lu
dCwgYnl0ZXNdXSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0KLWRlZiBwdWxsX25l
d19zZXNzaW9uX3RpY2tldChidWY6IEJ1ZmZlcikgLT4gTmV3U2Vzc2lvblRpY2tldDoKLSAgICBu
ZXdfc2Vzc2lvbl90aWNrZXQgPSBOZXdTZXNzaW9uVGlja2V0KCkKLQotICAgIGFzc2VydCBidWYu
cHVsbF91aW50OCgpID09IEhhbmRzaGFrZVR5cGUuTkVXX1NFU1NJT05fVElDS0VUCi0gICAgd2l0
aCBwdWxsX2Jsb2NrKGJ1ZiwgMyk6Ci0gICAgICAgIG5ld19zZXNzaW9uX3RpY2tldC50aWNrZXRf
bGlmZXRpbWUgPSBidWYucHVsbF91aW50MzIoKQotICAgICAgICBuZXdfc2Vzc2lvbl90aWNrZXQu
dGlja2V0X2FnZV9hZGQgPSBidWYucHVsbF91aW50MzIoKQotICAgICAgICBuZXdfc2Vzc2lvbl90
aWNrZXQudGlja2V0X25vbmNlID0gcHVsbF9vcGFxdWUoYnVmLCAxKQotICAgICAgICBuZXdfc2Vz
c2lvbl90aWNrZXQudGlja2V0ID0gcHVsbF9vcGFxdWUoYnVmLCAyKQotCi0gICAgICAgIGRlZiBw
dWxsX2V4dGVuc2lvbigpIC0+IE5vbmU6Ci0gICAgICAgICAgICBleHRlbnNpb25fdHlwZSA9IGJ1
Zi5wdWxsX3VpbnQxNigpCi0gICAgICAgICAgICBleHRlbnNpb25fbGVuZ3RoID0gYnVmLnB1bGxf
dWludDE2KCkKLSAgICAgICAgICAgIGlmIGV4dGVuc2lvbl90eXBlID09IEV4dGVuc2lvblR5cGUu
RUFSTFlfREFUQToKLSAgICAgICAgICAgICAgICBuZXdfc2Vzc2lvbl90aWNrZXQubWF4X2Vhcmx5
X2RhdGFfc2l6ZSA9IGJ1Zi5wdWxsX3VpbnQzMigpCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIG5ld19zZXNzaW9uX3RpY2tldC5vdGhlcl9leHRlbnNpb25zLmFwcGVuZCgKLSAg
ICAgICAgICAgICAgICAgICAgKGV4dGVuc2lvbl90eXBlLCBidWYucHVsbF9ieXRlcyhleHRlbnNp
b25fbGVuZ3RoKSkKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgcHVsbF9saXN0KGJ1Ziwg
MiwgcHVsbF9leHRlbnNpb24pCi0KLSAgICByZXR1cm4gbmV3X3Nlc3Npb25fdGlja2V0Ci0KLQot
ZGVmIHB1c2hfbmV3X3Nlc3Npb25fdGlja2V0KGJ1ZjogQnVmZmVyLCBuZXdfc2Vzc2lvbl90aWNr
ZXQ6IE5ld1Nlc3Npb25UaWNrZXQpIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hfdWludDgoSGFuZHNo
YWtlVHlwZS5ORVdfU0VTU0lPTl9USUNLRVQpCi0gICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgMyk6
Ci0gICAgICAgIGJ1Zi5wdXNoX3VpbnQzMihuZXdfc2Vzc2lvbl90aWNrZXQudGlja2V0X2xpZmV0
aW1lKQotICAgICAgICBidWYucHVzaF91aW50MzIobmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldF9h
Z2VfYWRkKQotICAgICAgICBwdXNoX29wYXF1ZShidWYsIDEsIG5ld19zZXNzaW9uX3RpY2tldC50
aWNrZXRfbm9uY2UpCi0gICAgICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMiwgbmV3X3Nlc3Npb25fdGlj
a2V0LnRpY2tldCkKLQotICAgICAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCAyKToKLSAgICAgICAg
ICAgIGlmIG5ld19zZXNzaW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXplIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBFeHRlbnNpb25UeXBl
LkVBUkxZX0RBVEEpOgotICAgICAgICAgICAgICAgICAgICBidWYucHVzaF91aW50MzIobmV3X3Nl
c3Npb25fdGlja2V0Lm1heF9lYXJseV9kYXRhX3NpemUpCi0KLSAgICAgICAgICAgIGZvciBleHRl
bnNpb25fdHlwZSwgZXh0ZW5zaW9uX3ZhbHVlIGluIG5ld19zZXNzaW9uX3RpY2tldC5vdGhlcl9l
eHRlbnNpb25zOgotICAgICAgICAgICAgICAgIHdpdGggcHVzaF9leHRlbnNpb24oYnVmLCBleHRl
bnNpb25fdHlwZSk6Ci0gICAgICAgICAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGV4dGVuc2lv
bl92YWx1ZSkKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBFbmNyeXB0ZWRFeHRlbnNpb25zOgotICAg
IGFscG5fcHJvdG9jb2w6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAgZWFybHlfZGF0YTogYm9v
bCA9IEZhbHNlCi0KLSAgICBvdGhlcl9leHRlbnNpb25zOiBMaXN0W1R1cGxlW2ludCwgYnl0ZXNd
XSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0KLWRlZiBwdWxsX2VuY3J5cHRlZF9l
eHRlbnNpb25zKGJ1ZjogQnVmZmVyKSAtPiBFbmNyeXB0ZWRFeHRlbnNpb25zOgotICAgIGV4dGVu
c2lvbnMgPSBFbmNyeXB0ZWRFeHRlbnNpb25zKCkKLQotICAgIGFzc2VydCBidWYucHVsbF91aW50
OCgpID09IEhhbmRzaGFrZVR5cGUuRU5DUllQVEVEX0VYVEVOU0lPTlMKLSAgICB3aXRoIHB1bGxf
YmxvY2soYnVmLCAzKToKLQotICAgICAgICBkZWYgcHVsbF9leHRlbnNpb24oKSAtPiBOb25lOgot
ICAgICAgICAgICAgZXh0ZW5zaW9uX3R5cGUgPSBidWYucHVsbF91aW50MTYoKQotICAgICAgICAg
ICAgZXh0ZW5zaW9uX2xlbmd0aCA9IGJ1Zi5wdWxsX3VpbnQxNigpCi0gICAgICAgICAgICBpZiBl
eHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLkFMUE46Ci0gICAgICAgICAgICAgICAgZXh0
ZW5zaW9ucy5hbHBuX3Byb3RvY29sID0gcHVsbF9saXN0KAotICAgICAgICAgICAgICAgICAgICBi
dWYsIDIsIHBhcnRpYWwocHVsbF9hbHBuX3Byb3RvY29sLCBidWYpCi0gICAgICAgICAgICAgICAg
KVswXQotICAgICAgICAgICAgZWxpZiBleHRlbnNpb25fdHlwZSA9PSBFeHRlbnNpb25UeXBlLkVB
UkxZX0RBVEE6Ci0gICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5lYXJseV9kYXRhID0gVHJ1ZQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zLm90aGVyX2V4dGVu
c2lvbnMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAoZXh0ZW5zaW9uX3R5cGUsIGJ1Zi5w
dWxsX2J5dGVzKGV4dGVuc2lvbl9sZW5ndGgpKQotICAgICAgICAgICAgICAgICkKLQotICAgICAg
ICBwdWxsX2xpc3QoYnVmLCAyLCBwdWxsX2V4dGVuc2lvbikKLQotICAgIHJldHVybiBleHRlbnNp
b25zCi0KLQotZGVmIHB1c2hfZW5jcnlwdGVkX2V4dGVuc2lvbnMoYnVmOiBCdWZmZXIsIGV4dGVu
c2lvbnM6IEVuY3J5cHRlZEV4dGVuc2lvbnMpIC0+IE5vbmU6Ci0gICAgYnVmLnB1c2hfdWludDgo
SGFuZHNoYWtlVHlwZS5FTkNSWVBURURfRVhURU5TSU9OUykKLSAgICB3aXRoIHB1c2hfYmxvY2so
YnVmLCAzKToKLSAgICAgICAgd2l0aCBwdXNoX2Jsb2NrKGJ1ZiwgMik6Ci0gICAgICAgICAgICBp
ZiBleHRlbnNpb25zLmFscG5fcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
d2l0aCBwdXNoX2V4dGVuc2lvbihidWYsIEV4dGVuc2lvblR5cGUuQUxQTik6Ci0gICAgICAgICAg
ICAgICAgICAgIHB1c2hfbGlzdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsKHB1
c2hfYWxwbl9wcm90b2NvbCwgYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNp
b25zLmFscG5fcHJvdG9jb2xdLAotICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAg
IGlmIGV4dGVuc2lvbnMuZWFybHlfZGF0YToKLSAgICAgICAgICAgICAgICB3aXRoIHB1c2hfZXh0
ZW5zaW9uKGJ1ZiwgRXh0ZW5zaW9uVHlwZS5FQVJMWV9EQVRBKToKLSAgICAgICAgICAgICAgICAg
ICAgcGFzcwotCi0gICAgICAgICAgICBmb3IgZXh0ZW5zaW9uX3R5cGUsIGV4dGVuc2lvbl92YWx1
ZSBpbiBleHRlbnNpb25zLm90aGVyX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICAgICAgd2l0aCBw
dXNoX2V4dGVuc2lvbihidWYsIGV4dGVuc2lvbl90eXBlKToKLSAgICAgICAgICAgICAgICAgICAg
YnVmLnB1c2hfYnl0ZXMoZXh0ZW5zaW9uX3ZhbHVlKQotCi0KLUNlcnRpZmljYXRlRW50cnkgPSBU
dXBsZVtieXRlcywgYnl0ZXNdCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgQ2VydGlmaWNhdGU6Ci0g
ICAgcmVxdWVzdF9jb250ZXh0OiBieXRlcyA9IGIiIgotICAgIGNlcnRpZmljYXRlczogTGlzdFtD
ZXJ0aWZpY2F0ZUVudHJ5XSA9IGZpZWxkKGRlZmF1bHRfZmFjdG9yeT1saXN0KQotCi0KLWRlZiBw
dWxsX2NlcnRpZmljYXRlKGJ1ZjogQnVmZmVyKSAtPiBDZXJ0aWZpY2F0ZToKLSAgICBjZXJ0aWZp
Y2F0ZSA9IENlcnRpZmljYXRlKCkKLQotICAgIGFzc2VydCBidWYucHVsbF91aW50OCgpID09IEhh
bmRzaGFrZVR5cGUuQ0VSVElGSUNBVEUKLSAgICB3aXRoIHB1bGxfYmxvY2soYnVmLCAzKToKLSAg
ICAgICAgY2VydGlmaWNhdGUucmVxdWVzdF9jb250ZXh0ID0gcHVsbF9vcGFxdWUoYnVmLCAxKQot
Ci0gICAgICAgIGRlZiBwdWxsX2NlcnRpZmljYXRlX2VudHJ5KGJ1ZjogQnVmZmVyKSAtPiBDZXJ0
aWZpY2F0ZUVudHJ5OgotICAgICAgICAgICAgZGF0YSA9IHB1bGxfb3BhcXVlKGJ1ZiwgMykKLSAg
ICAgICAgICAgIGV4dGVuc2lvbnMgPSBwdWxsX29wYXF1ZShidWYsIDIpCi0gICAgICAgICAgICBy
ZXR1cm4gKGRhdGEsIGV4dGVuc2lvbnMpCi0KLSAgICAgICAgY2VydGlmaWNhdGUuY2VydGlmaWNh
dGVzID0gcHVsbF9saXN0KAotICAgICAgICAgICAgYnVmLCAzLCBwYXJ0aWFsKHB1bGxfY2VydGlm
aWNhdGVfZW50cnksIGJ1ZikKLSAgICAgICAgKQotCi0gICAgcmV0dXJuIGNlcnRpZmljYXRlCi0K
LQotZGVmIHB1c2hfY2VydGlmaWNhdGUoYnVmOiBCdWZmZXIsIGNlcnRpZmljYXRlOiBDZXJ0aWZp
Y2F0ZSkgLT4gTm9uZToKLSAgICBidWYucHVzaF91aW50OChIYW5kc2hha2VUeXBlLkNFUlRJRklD
QVRFKQotICAgIHdpdGggcHVzaF9ibG9jayhidWYsIDMpOgotICAgICAgICBwdXNoX29wYXF1ZShi
dWYsIDEsIGNlcnRpZmljYXRlLnJlcXVlc3RfY29udGV4dCkKLQotICAgICAgICBkZWYgcHVzaF9j
ZXJ0aWZpY2F0ZV9lbnRyeShidWY6IEJ1ZmZlciwgZW50cnk6IENlcnRpZmljYXRlRW50cnkpIC0+
IE5vbmU6Ci0gICAgICAgICAgICBwdXNoX29wYXF1ZShidWYsIDMsIGVudHJ5WzBdKQotICAgICAg
ICAgICAgcHVzaF9vcGFxdWUoYnVmLCAyLCBlbnRyeVsxXSkKLQotICAgICAgICBwdXNoX2xpc3Qo
Ci0gICAgICAgICAgICBidWYsIDMsIHBhcnRpYWwocHVzaF9jZXJ0aWZpY2F0ZV9lbnRyeSwgYnVm
KSwgY2VydGlmaWNhdGUuY2VydGlmaWNhdGVzCi0gICAgICAgICkKLQotCi1AZGF0YWNsYXNzCi1j
bGFzcyBDZXJ0aWZpY2F0ZVZlcmlmeToKLSAgICBhbGdvcml0aG06IGludAotICAgIHNpZ25hdHVy
ZTogYnl0ZXMKLQotCi1kZWYgcHVsbF9jZXJ0aWZpY2F0ZV92ZXJpZnkoYnVmOiBCdWZmZXIpIC0+
IENlcnRpZmljYXRlVmVyaWZ5OgotICAgIGFzc2VydCBidWYucHVsbF91aW50OCgpID09IEhhbmRz
aGFrZVR5cGUuQ0VSVElGSUNBVEVfVkVSSUZZCi0gICAgd2l0aCBwdWxsX2Jsb2NrKGJ1ZiwgMyk6
Ci0gICAgICAgIGFsZ29yaXRobSA9IGJ1Zi5wdWxsX3VpbnQxNigpCi0gICAgICAgIHNpZ25hdHVy
ZSA9IHB1bGxfb3BhcXVlKGJ1ZiwgMikKLQotICAgIHJldHVybiBDZXJ0aWZpY2F0ZVZlcmlmeShh
bGdvcml0aG09YWxnb3JpdGhtLCBzaWduYXR1cmU9c2lnbmF0dXJlKQotCi0KLWRlZiBwdXNoX2Nl
cnRpZmljYXRlX3ZlcmlmeShidWY6IEJ1ZmZlciwgdmVyaWZ5OiBDZXJ0aWZpY2F0ZVZlcmlmeSkg
LT4gTm9uZToKLSAgICBidWYucHVzaF91aW50OChIYW5kc2hha2VUeXBlLkNFUlRJRklDQVRFX1ZF
UklGWSkKLSAgICB3aXRoIHB1c2hfYmxvY2soYnVmLCAzKToKLSAgICAgICAgYnVmLnB1c2hfdWlu
dDE2KHZlcmlmeS5hbGdvcml0aG0pCi0gICAgICAgIHB1c2hfb3BhcXVlKGJ1ZiwgMiwgdmVyaWZ5
LnNpZ25hdHVyZSkKLQotCi1AZGF0YWNsYXNzCi1jbGFzcyBGaW5pc2hlZDoKLSAgICB2ZXJpZnlf
ZGF0YTogYnl0ZXMgPSBiIiIKLQotCi1kZWYgcHVsbF9maW5pc2hlZChidWY6IEJ1ZmZlcikgLT4g
RmluaXNoZWQ6Ci0gICAgZmluaXNoZWQgPSBGaW5pc2hlZCgpCi0KLSAgICBhc3NlcnQgYnVmLnB1
bGxfdWludDgoKSA9PSBIYW5kc2hha2VUeXBlLkZJTklTSEVECi0gICAgZmluaXNoZWQudmVyaWZ5
X2RhdGEgPSBwdWxsX29wYXF1ZShidWYsIDMpCi0KLSAgICByZXR1cm4gZmluaXNoZWQKLQotCi1k
ZWYgcHVzaF9maW5pc2hlZChidWY6IEJ1ZmZlciwgZmluaXNoZWQ6IEZpbmlzaGVkKSAtPiBOb25l
OgotICAgIGJ1Zi5wdXNoX3VpbnQ4KEhhbmRzaGFrZVR5cGUuRklOSVNIRUQpCi0gICAgcHVzaF9v
cGFxdWUoYnVmLCAzLCBmaW5pc2hlZC52ZXJpZnlfZGF0YSkKLQotCi0jIENPTlRFWFQKLQotCi1j
bGFzcyBLZXlTY2hlZHVsZToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2lwaGVyX3N1aXRlOiBD
aXBoZXJTdWl0ZSk6Ci0gICAgICAgIHNlbGYuYWxnb3JpdGhtID0gY2lwaGVyX3N1aXRlX2hhc2go
Y2lwaGVyX3N1aXRlKQotICAgICAgICBzZWxmLmNpcGhlcl9zdWl0ZSA9IGNpcGhlcl9zdWl0ZQot
ICAgICAgICBzZWxmLmdlbmVyYXRpb24gPSAwCi0gICAgICAgIHNlbGYuaGFzaCA9IGhhc2hlcy5I
YXNoKHNlbGYuYWxnb3JpdGhtLCBkZWZhdWx0X2JhY2tlbmQoKSkKLSAgICAgICAgc2VsZi5oYXNo
X2VtcHR5X3ZhbHVlID0gc2VsZi5oYXNoLmNvcHkoKS5maW5hbGl6ZSgpCi0gICAgICAgIHNlbGYu
c2VjcmV0ID0gYnl0ZXMoc2VsZi5hbGdvcml0aG0uZGlnZXN0X3NpemUpCi0KLSAgICBkZWYgY2Vy
dGlmaWNhdGVfdmVyaWZ5X2RhdGEoc2VsZiwgY29udGV4dF9zdHJpbmc6IGJ5dGVzKSAtPiBieXRl
czoKLSAgICAgICAgcmV0dXJuIGIiICIgKiA2NCArIGNvbnRleHRfc3RyaW5nICsgYiJceDAwIiAr
IHNlbGYuaGFzaC5jb3B5KCkuZmluYWxpemUoKQotCi0gICAgZGVmIGZpbmlzaGVkX3ZlcmlmeV9k
YXRhKHNlbGYsIHNlY3JldDogYnl0ZXMpIC0+IGJ5dGVzOgotICAgICAgICBobWFjX2tleSA9IGhr
ZGZfZXhwYW5kX2xhYmVsKAotICAgICAgICAgICAgYWxnb3JpdGhtPXNlbGYuYWxnb3JpdGhtLAot
ICAgICAgICAgICAgc2VjcmV0PXNlY3JldCwKLSAgICAgICAgICAgIGxhYmVsPWIiZmluaXNoZWQi
LAotICAgICAgICAgICAgaGFzaF92YWx1ZT1iIiIsCi0gICAgICAgICAgICBsZW5ndGg9c2VsZi5h
bGdvcml0aG0uZGlnZXN0X3NpemUsCi0gICAgICAgICkKLQotICAgICAgICBoID0gaG1hYy5ITUFD
KGhtYWNfa2V5LCBhbGdvcml0aG09c2VsZi5hbGdvcml0aG0sIGJhY2tlbmQ9ZGVmYXVsdF9iYWNr
ZW5kKCkpCi0gICAgICAgIGgudXBkYXRlKHNlbGYuaGFzaC5jb3B5KCkuZmluYWxpemUoKSkKLSAg
ICAgICAgcmV0dXJuIGguZmluYWxpemUoKQotCi0gICAgZGVmIGRlcml2ZV9zZWNyZXQoc2VsZiwg
bGFiZWw6IGJ5dGVzKSAtPiBieXRlczoKLSAgICAgICAgcmV0dXJuIGhrZGZfZXhwYW5kX2xhYmVs
KAotICAgICAgICAgICAgYWxnb3JpdGhtPXNlbGYuYWxnb3JpdGhtLAotICAgICAgICAgICAgc2Vj
cmV0PXNlbGYuc2VjcmV0LAotICAgICAgICAgICAgbGFiZWw9bGFiZWwsCi0gICAgICAgICAgICBo
YXNoX3ZhbHVlPXNlbGYuaGFzaC5jb3B5KCkuZmluYWxpemUoKSwKLSAgICAgICAgICAgIGxlbmd0
aD1zZWxmLmFsZ29yaXRobS5kaWdlc3Rfc2l6ZSwKLSAgICAgICAgKQotCi0gICAgZGVmIGV4dHJh
Y3Qoc2VsZiwga2V5X21hdGVyaWFsOiBPcHRpb25hbFtieXRlc10gPSBOb25lKSAtPiBOb25lOgot
ICAgICAgICBpZiBrZXlfbWF0ZXJpYWwgaXMgTm9uZToKLSAgICAgICAgICAgIGtleV9tYXRlcmlh
bCA9IGJ5dGVzKHNlbGYuYWxnb3JpdGhtLmRpZ2VzdF9zaXplKQotCi0gICAgICAgIGlmIHNlbGYu
Z2VuZXJhdGlvbjoKLSAgICAgICAgICAgIHNlbGYuc2VjcmV0ID0gaGtkZl9leHBhbmRfbGFiZWwo
Ci0gICAgICAgICAgICAgICAgYWxnb3JpdGhtPXNlbGYuYWxnb3JpdGhtLAotICAgICAgICAgICAg
ICAgIHNlY3JldD1zZWxmLnNlY3JldCwKLSAgICAgICAgICAgICAgICBsYWJlbD1iImRlcml2ZWQi
LAotICAgICAgICAgICAgICAgIGhhc2hfdmFsdWU9c2VsZi5oYXNoX2VtcHR5X3ZhbHVlLAotICAg
ICAgICAgICAgICAgIGxlbmd0aD1zZWxmLmFsZ29yaXRobS5kaWdlc3Rfc2l6ZSwKLSAgICAgICAg
ICAgICkKLQotICAgICAgICBzZWxmLmdlbmVyYXRpb24gKz0gMQotICAgICAgICBzZWxmLnNlY3Jl
dCA9IGhrZGZfZXh0cmFjdCgKLSAgICAgICAgICAgIGFsZ29yaXRobT1zZWxmLmFsZ29yaXRobSwg
c2FsdD1zZWxmLnNlY3JldCwga2V5X21hdGVyaWFsPWtleV9tYXRlcmlhbAotICAgICAgICApCi0K
LSAgICBkZWYgdXBkYXRlX2hhc2goc2VsZiwgZGF0YTogYnl0ZXMpIC0+IE5vbmU6Ci0gICAgICAg
IHNlbGYuaGFzaC51cGRhdGUoZGF0YSkKLQotCi1jbGFzcyBLZXlTY2hlZHVsZVByb3h5OgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjaXBoZXJfc3VpdGVzOiBMaXN0W0NpcGhlclN1aXRlXSk6Ci0g
ICAgICAgIHNlbGYuX19zY2hlZHVsZXMgPSBkaWN0KG1hcChsYW1iZGEgYzogKGMsIEtleVNjaGVk
dWxlKGMpKSwgY2lwaGVyX3N1aXRlcykpCi0KLSAgICBkZWYgZXh0cmFjdChzZWxmLCBrZXlfbWF0
ZXJpYWw6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUpIC0+IE5vbmU6Ci0gICAgICAgIGZvciBrIGlu
IHNlbGYuX19zY2hlZHVsZXMudmFsdWVzKCk6Ci0gICAgICAgICAgICBrLmV4dHJhY3Qoa2V5X21h
dGVyaWFsKQotCi0gICAgZGVmIHNlbGVjdChzZWxmLCBjaXBoZXJfc3VpdGU6IENpcGhlclN1aXRl
KSAtPiBLZXlTY2hlZHVsZToKLSAgICAgICAgcmV0dXJuIHNlbGYuX19zY2hlZHVsZXNbY2lwaGVy
X3N1aXRlXQotCi0gICAgZGVmIHVwZGF0ZV9oYXNoKHNlbGYsIGRhdGE6IGJ5dGVzKSAtPiBOb25l
OgotICAgICAgICBmb3IgayBpbiBzZWxmLl9fc2NoZWR1bGVzLnZhbHVlcygpOgotICAgICAgICAg
ICAgay51cGRhdGVfaGFzaChkYXRhKQotCi0KLUNJUEhFUl9TVUlURVMgPSB7Ci0gICAgQ2lwaGVy
U3VpdGUuQUVTXzEyOF9HQ01fU0hBMjU2OiBoYXNoZXMuU0hBMjU2LAotICAgIENpcGhlclN1aXRl
LkFFU18yNTZfR0NNX1NIQTM4NDogaGFzaGVzLlNIQTM4NCwKLSAgICBDaXBoZXJTdWl0ZS5DSEFD
SEEyMF9QT0xZMTMwNV9TSEEyNTY6IGhhc2hlcy5TSEEyNTYsCi19Ci0KLVNJR05BVFVSRV9BTEdP
UklUSE1TOiBEaWN0ID0gewotICAgIFNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMjU2UjFf
U0hBMjU2OiAoTm9uZSwgaGFzaGVzLlNIQTI1NiksCi0gICAgU2lnbmF0dXJlQWxnb3JpdGhtLkVD
RFNBX1NFQ1AzODRSMV9TSEEzODQ6IChOb25lLCBoYXNoZXMuU0hBMzg0KSwKLSAgICBTaWduYXR1
cmVBbGdvcml0aG0uRUNEU0FfU0VDUDUyMVIxX1NIQTUxMjogKE5vbmUsIGhhc2hlcy5TSEE1MTIp
LAotICAgIFNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hBMTogKHBhZGRpbmcuUEtDUzF2
MTUsIGhhc2hlcy5TSEExKSwKLSAgICBTaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTI1
NjogKHBhZGRpbmcuUEtDUzF2MTUsIGhhc2hlcy5TSEEyNTYpLAotICAgIFNpZ25hdHVyZUFsZ29y
aXRobS5SU0FfUEtDUzFfU0hBMzg0OiAocGFkZGluZy5QS0NTMXYxNSwgaGFzaGVzLlNIQTM4NCks
Ci0gICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEE1MTI6IChwYWRkaW5nLlBLQ1Mx
djE1LCBoYXNoZXMuU0hBNTEyKSwKLSAgICBTaWduYXR1cmVBbGdvcml0aG0uUlNBX1BTU19SU0FF
X1NIQTI1NjogKHBhZGRpbmcuUFNTLCBoYXNoZXMuU0hBMjU2KSwKLSAgICBTaWduYXR1cmVBbGdv
cml0aG0uUlNBX1BTU19SU0FFX1NIQTM4NDogKHBhZGRpbmcuUFNTLCBoYXNoZXMuU0hBMzg0KSwK
LSAgICBTaWduYXR1cmVBbGdvcml0aG0uUlNBX1BTU19SU0FFX1NIQTUxMjogKHBhZGRpbmcuUFNT
LCBoYXNoZXMuU0hBNTEyKSwKLX0KLQotR1JPVVBfVE9fQ1VSVkU6IERpY3QgPSB7Ci0gICAgR3Jv
dXAuU0VDUDI1NlIxOiBlYy5TRUNQMjU2UjEsCi0gICAgR3JvdXAuU0VDUDM4NFIxOiBlYy5TRUNQ
Mzg0UjEsCi0gICAgR3JvdXAuU0VDUDUyMVIxOiBlYy5TRUNQNTIxUjEsCi19Ci1DVVJWRV9UT19H
Uk9VUCA9IGRpY3QoKHYsIGspIGZvciBrLCB2IGluIEdST1VQX1RPX0NVUlZFLml0ZW1zKCkpCi0K
LQotZGVmIGNpcGhlcl9zdWl0ZV9oYXNoKGNpcGhlcl9zdWl0ZTogQ2lwaGVyU3VpdGUpIC0+IGhh
c2hlcy5IYXNoQWxnb3JpdGhtOgotICAgIHJldHVybiBDSVBIRVJfU1VJVEVTW2NpcGhlcl9zdWl0
ZV0oKQotCi0KLWRlZiBkZWNvZGVfcHVibGljX2tleSgKLSAgICBrZXlfc2hhcmU6IEtleVNoYXJl
RW50cnksCi0pIC0+IFVuaW9uW2VjLkVsbGlwdGljQ3VydmVQdWJsaWNLZXksIHgyNTUxOS5YMjU1
MTlQdWJsaWNLZXksIHg0NDguWDQ0OFB1YmxpY0tleSwgTm9uZV06Ci0gICAgaWYga2V5X3NoYXJl
WzBdID09IEdyb3VwLlgyNTUxOToKLSAgICAgICAgcmV0dXJuIHgyNTUxOS5YMjU1MTlQdWJsaWNL
ZXkuZnJvbV9wdWJsaWNfYnl0ZXMoa2V5X3NoYXJlWzFdKQotICAgIGVsaWYga2V5X3NoYXJlWzBd
ID09IEdyb3VwLlg0NDg6Ci0gICAgICAgIHJldHVybiB4NDQ4Llg0NDhQdWJsaWNLZXkuZnJvbV9w
dWJsaWNfYnl0ZXMoa2V5X3NoYXJlWzFdKQotICAgIGVsaWYga2V5X3NoYXJlWzBdIGluIEdST1VQ
X1RPX0NVUlZFOgotICAgICAgICByZXR1cm4gZWMuRWxsaXB0aWNDdXJ2ZVB1YmxpY0tleS5mcm9t
X2VuY29kZWRfcG9pbnQoCi0gICAgICAgICAgICBHUk9VUF9UT19DVVJWRVtrZXlfc2hhcmVbMF1d
KCksIGtleV9zaGFyZVsxXQotICAgICAgICApCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIE5v
bmUKLQotCi1kZWYgZW5jb2RlX3B1YmxpY19rZXkoCi0gICAgcHVibGljX2tleTogVW5pb25bCi0g
ICAgICAgIGVjLkVsbGlwdGljQ3VydmVQdWJsaWNLZXksIHgyNTUxOS5YMjU1MTlQdWJsaWNLZXks
IHg0NDguWDQ0OFB1YmxpY0tleQotICAgIF0KLSkgLT4gS2V5U2hhcmVFbnRyeToKLSAgICBpZiBp
c2luc3RhbmNlKHB1YmxpY19rZXksIHgyNTUxOS5YMjU1MTlQdWJsaWNLZXkpOgotICAgICAgICBy
ZXR1cm4gKEdyb3VwLlgyNTUxOSwgcHVibGljX2tleS5wdWJsaWNfYnl0ZXMoRW5jb2RpbmcuUmF3
LCBQdWJsaWNGb3JtYXQuUmF3KSkKLSAgICBlbGlmIGlzaW5zdGFuY2UocHVibGljX2tleSwgeDQ0
OC5YNDQ4UHVibGljS2V5KToKLSAgICAgICAgcmV0dXJuIChHcm91cC5YNDQ4LCBwdWJsaWNfa2V5
LnB1YmxpY19ieXRlcyhFbmNvZGluZy5SYXcsIFB1YmxpY0Zvcm1hdC5SYXcpKQotICAgIHJldHVy
biAoCi0gICAgICAgIENVUlZFX1RPX0dST1VQW3B1YmxpY19rZXkuY3VydmUuX19jbGFzc19fXSwK
LSAgICAgICAgcHVibGljX2tleS5wdWJsaWNfYnl0ZXMoRW5jb2RpbmcuWDk2MiwgUHVibGljRm9y
bWF0LlVuY29tcHJlc3NlZFBvaW50KSwKLSAgICApCi0KLQotZGVmIG5lZ290aWF0ZSgKLSAgICBz
dXBwb3J0ZWQ6IExpc3RbVF0sIG9mZmVyZWQ6IE9wdGlvbmFsW0xpc3RbQW55XV0sIGV4YzogT3B0
aW9uYWxbQWxlcnRdID0gTm9uZQotKSAtPiBUOgotICAgIGlmIG9mZmVyZWQgaXMgbm90IE5vbmU6
Ci0gICAgICAgIGZvciBjIGluIHN1cHBvcnRlZDoKLSAgICAgICAgICAgIGlmIGMgaW4gb2ZmZXJl
ZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gYwotCi0gICAgaWYgZXhjIGlzIG5vdCBOb25lOgot
ICAgICAgICByYWlzZSBleGMKLSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiBzaWduYXR1cmVfYWxn
b3JpdGhtX3BhcmFtcygKLSAgICBzaWduYXR1cmVfYWxnb3JpdGhtOiBpbnQsCi0pIC0+IFVuaW9u
W1R1cGxlW2VjLkVDRFNBXSwgVHVwbGVbcGFkZGluZy5Bc3ltbWV0cmljUGFkZGluZywgaGFzaGVz
Lkhhc2hBbGdvcml0aG1dXToKLSAgICBwYWRkaW5nX2NscywgYWxnb3JpdGhtX2NscyA9IFNJR05B
VFVSRV9BTEdPUklUSE1TW3NpZ25hdHVyZV9hbGdvcml0aG1dCi0gICAgYWxnb3JpdGhtID0gYWxn
b3JpdGhtX2NscygpCi0gICAgaWYgcGFkZGluZ19jbHMgaXMgTm9uZToKLSAgICAgICAgcmV0dXJu
IChlYy5FQ0RTQShhbGdvcml0aG0pLCkKLSAgICBlbGlmIHBhZGRpbmdfY2xzID09IHBhZGRpbmcu
UFNTOgotICAgICAgICBwYWRkaW5nX29iaiA9IHBhZGRpbmdfY2xzKAotICAgICAgICAgICAgbWdm
PXBhZGRpbmcuTUdGMShhbGdvcml0aG0pLCBzYWx0X2xlbmd0aD1hbGdvcml0aG0uZGlnZXN0X3Np
emUKLSAgICAgICAgKQotICAgIGVsc2U6Ci0gICAgICAgIHBhZGRpbmdfb2JqID0gcGFkZGluZ19j
bHMoKQotICAgIHJldHVybiBwYWRkaW5nX29iaiwgYWxnb3JpdGhtCi0KLQotQGNvbnRleHRtYW5h
Z2VyCi1kZWYgcHVzaF9tZXNzYWdlKAotICAgIGtleV9zY2hlZHVsZTogVW5pb25bS2V5U2NoZWR1
bGUsIEtleVNjaGVkdWxlUHJveHldLCBidWY6IEJ1ZmZlcgotKSAtPiBHZW5lcmF0b3I6Ci0gICAg
aGFzaF9zdGFydCA9IGJ1Zi50ZWxsKCkKLSAgICB5aWVsZAotICAgIGtleV9zY2hlZHVsZS51cGRh
dGVfaGFzaChidWYuZGF0YV9zbGljZShoYXNoX3N0YXJ0LCBidWYudGVsbCgpKSkKLQotCi0jIGNh
bGxiYWNrIHR5cGVzCi0KLQotQGRhdGFjbGFzcwotY2xhc3MgU2Vzc2lvblRpY2tldDoKLSAgICAi
IiIKLSAgICBBIFRMUyBzZXNzaW9uIHRpY2tldCBmb3Igc2Vzc2lvbiByZXN1bXB0aW9uLgotICAg
ICIiIgotCi0gICAgYWdlX2FkZDogaW50Ci0gICAgY2lwaGVyX3N1aXRlOiBDaXBoZXJTdWl0ZQot
ICAgIG5vdF92YWxpZF9hZnRlcjogZGF0ZXRpbWUuZGF0ZXRpbWUKLSAgICBub3RfdmFsaWRfYmVm
b3JlOiBkYXRldGltZS5kYXRldGltZQotICAgIHJlc3VtcHRpb25fc2VjcmV0OiBieXRlcwotICAg
IHNlcnZlcl9uYW1lOiBzdHIKLSAgICB0aWNrZXQ6IGJ5dGVzCi0KLSAgICBtYXhfZWFybHlfZGF0
YV9zaXplOiBPcHRpb25hbFtpbnRdID0gTm9uZQotICAgIG90aGVyX2V4dGVuc2lvbnM6IExpc3Rb
VHVwbGVbaW50LCBieXRlc11dID0gZmllbGQoZGVmYXVsdF9mYWN0b3J5PWxpc3QpCi0KLSAgICBA
cHJvcGVydHkKLSAgICBkZWYgaXNfdmFsaWQoc2VsZikgLT4gYm9vbDoKLSAgICAgICAgbm93ID0g
dXRjbm93KCkKLSAgICAgICAgcmV0dXJuIG5vdyA+PSBzZWxmLm5vdF92YWxpZF9iZWZvcmUgYW5k
IG5vdyA8PSBzZWxmLm5vdF92YWxpZF9hZnRlcgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG9i
ZnVzY2F0ZWRfYWdlKHNlbGYpIC0+IGludDoKLSAgICAgICAgYWdlID0gaW50KCh1dGNub3coKSAt
IHNlbGYubm90X3ZhbGlkX2JlZm9yZSkudG90YWxfc2Vjb25kcygpKQotICAgICAgICByZXR1cm4g
KGFnZSArIHNlbGYuYWdlX2FkZCkgJSAoMSA8PCAzMikKLQotCi1BbHBuSGFuZGxlciA9IENhbGxh
YmxlW1tzdHJdLCBOb25lXQotU2Vzc2lvblRpY2tldEZldGNoZXIgPSBDYWxsYWJsZVtbYnl0ZXNd
LCBPcHRpb25hbFtTZXNzaW9uVGlja2V0XV0KLVNlc3Npb25UaWNrZXRIYW5kbGVyID0gQ2FsbGFi
bGVbW1Nlc3Npb25UaWNrZXRdLCBOb25lXQotCi0KLWNsYXNzIENvbnRleHQ6Ci0gICAgZGVmIF9f
aW5pdF9fKAotICAgICAgICBzZWxmLAotICAgICAgICBpc19jbGllbnQ6IGJvb2wsCi0gICAgICAg
IGFscG5fcHJvdG9jb2xzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKLSAgICAgICAgY2Fk
YXRhOiBPcHRpb25hbFtieXRlc10gPSBOb25lLAotICAgICAgICBjYWZpbGU6IE9wdGlvbmFsW3N0
cl0gPSBOb25lLAotICAgICAgICBjYXBhdGg6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotICAgICAg
ICBsb2dnZXI6IE9wdGlvbmFsW1VuaW9uW2xvZ2dpbmcuTG9nZ2VyLCBsb2dnaW5nLkxvZ2dlckFk
YXB0ZXJdXSA9IE5vbmUsCi0gICAgICAgIG1heF9lYXJseV9kYXRhOiBPcHRpb25hbFtpbnRdID0g
Tm9uZSwKLSAgICAgICAgc2VydmVyX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotICAgICAg
ICB2ZXJpZnlfbW9kZTogT3B0aW9uYWxbaW50XSA9IE5vbmUsCi0gICAgKToKLSAgICAgICAgIyBj
b25maWd1cmF0aW9uCi0gICAgICAgIHNlbGYuX2FscG5fcHJvdG9jb2xzID0gYWxwbl9wcm90b2Nv
bHMKLSAgICAgICAgc2VsZi5fY2FkYXRhID0gY2FkYXRhCi0gICAgICAgIHNlbGYuX2NhZmlsZSA9
IGNhZmlsZQotICAgICAgICBzZWxmLl9jYXBhdGggPSBjYXBhdGgKLSAgICAgICAgc2VsZi5jZXJ0
aWZpY2F0ZTogT3B0aW9uYWxbeDUwOS5DZXJ0aWZpY2F0ZV0gPSBOb25lCi0gICAgICAgIHNlbGYu
Y2VydGlmaWNhdGVfY2hhaW46IExpc3RbeDUwOS5DZXJ0aWZpY2F0ZV0gPSBbXQotICAgICAgICBz
ZWxmLmNlcnRpZmljYXRlX3ByaXZhdGVfa2V5OiBPcHRpb25hbFsKLSAgICAgICAgICAgIFVuaW9u
W2RzYS5EU0FQcml2YXRlS2V5LCBlYy5FbGxpcHRpY0N1cnZlUHJpdmF0ZUtleSwgcnNhLlJTQVBy
aXZhdGVLZXldCi0gICAgICAgIF0gPSBOb25lCi0gICAgICAgIHNlbGYuaGFuZHNoYWtlX2V4dGVu
c2lvbnM6IExpc3RbRXh0ZW5zaW9uXSA9IFtdCi0gICAgICAgIHNlbGYuX21heF9lYXJseV9kYXRh
ID0gbWF4X2Vhcmx5X2RhdGEKLSAgICAgICAgc2VsZi5zZXNzaW9uX3RpY2tldDogT3B0aW9uYWxb
U2Vzc2lvblRpY2tldF0gPSBOb25lCi0gICAgICAgIHNlbGYuX3NlcnZlcl9uYW1lID0gc2VydmVy
X25hbWUKLSAgICAgICAgaWYgdmVyaWZ5X21vZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBz
ZWxmLl92ZXJpZnlfbW9kZSA9IHZlcmlmeV9tb2RlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmLl92ZXJpZnlfbW9kZSA9IHNzbC5DRVJUX1JFUVVJUkVEIGlmIGlzX2NsaWVudCBlbHNl
IHNzbC5DRVJUX05PTkUKLQotICAgICAgICAjIGNhbGxiYWNrcwotICAgICAgICBzZWxmLmFscG5f
Y2I6IE9wdGlvbmFsW0FscG5IYW5kbGVyXSA9IE5vbmUKLSAgICAgICAgc2VsZi5nZXRfc2Vzc2lv
bl90aWNrZXRfY2I6IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRGZXRjaGVyXSA9IE5vbmUKLSAgICAg
ICAgc2VsZi5uZXdfc2Vzc2lvbl90aWNrZXRfY2I6IE9wdGlvbmFsW1Nlc3Npb25UaWNrZXRIYW5k
bGVyXSA9IE5vbmUKLSAgICAgICAgc2VsZi51cGRhdGVfdHJhZmZpY19rZXlfY2I6IENhbGxhYmxl
WwotICAgICAgICAgICAgW0RpcmVjdGlvbiwgRXBvY2gsIENpcGhlclN1aXRlLCBieXRlc10sIE5v
bmUKLSAgICAgICAgXSA9IGxhbWJkYSBkLCBlLCBjLCBzOiBOb25lCi0KLSAgICAgICAgIyBzdXBw
b3J0ZWQgcGFyYW1ldGVycwotICAgICAgICBzZWxmLl9jaXBoZXJfc3VpdGVzID0gWwotICAgICAg
ICAgICAgQ2lwaGVyU3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0LAotICAgICAgICAgICAgQ2lwaGVy
U3VpdGUuQUVTXzEyOF9HQ01fU0hBMjU2LAotICAgICAgICAgICAgQ2lwaGVyU3VpdGUuQ0hBQ0hB
MjBfUE9MWTEzMDVfU0hBMjU2LAotICAgICAgICBdCi0gICAgICAgIHNlbGYuX2xlZ2FjeV9jb21w
cmVzc2lvbl9tZXRob2RzOiBMaXN0W2ludF0gPSBbQ29tcHJlc3Npb25NZXRob2QuTlVMTF0KLSAg
ICAgICAgc2VsZi5fcHNrX2tleV9leGNoYW5nZV9tb2RlczogTGlzdFtpbnRdID0gW1Bza0tleUV4
Y2hhbmdlTW9kZS5QU0tfREhFX0tFXQotICAgICAgICBzZWxmLl9zaWduYXR1cmVfYWxnb3JpdGht
czogTGlzdFtpbnRdID0gWwotICAgICAgICAgICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1Nf
UlNBRV9TSEEyNTYsCi0gICAgICAgICAgICBTaWduYXR1cmVBbGdvcml0aG0uRUNEU0FfU0VDUDI1
NlIxX1NIQTI1NiwKLSAgICAgICAgICAgIFNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hB
MjU2LAotICAgICAgICAgICAgU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEExLAotICAg
ICAgICBdCi0gICAgICAgIHNlbGYuX3N1cHBvcnRlZF9ncm91cHMgPSBbR3JvdXAuU0VDUDI1NlIx
XQotICAgICAgICBpZiBkZWZhdWx0X2JhY2tlbmQoKS54MjU1MTlfc3VwcG9ydGVkKCk6Ci0gICAg
ICAgICAgICBzZWxmLl9zdXBwb3J0ZWRfZ3JvdXBzLmFwcGVuZChHcm91cC5YMjU1MTkpCi0gICAg
ICAgIGlmIGRlZmF1bHRfYmFja2VuZCgpLng0NDhfc3VwcG9ydGVkKCk6Ci0gICAgICAgICAgICBz
ZWxmLl9zdXBwb3J0ZWRfZ3JvdXBzLmFwcGVuZChHcm91cC5YNDQ4KQotICAgICAgICBzZWxmLl9z
dXBwb3J0ZWRfdmVyc2lvbnMgPSBbVExTX1ZFUlNJT05fMV8zXQotCi0gICAgICAgICMgc3RhdGUK
LSAgICAgICAgc2VsZi5hbHBuX25lZ290aWF0ZWQ6IE9wdGlvbmFsW3N0cl0gPSBOb25lCi0gICAg
ICAgIHNlbGYuZWFybHlfZGF0YV9hY2NlcHRlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYua2V5X3Nj
aGVkdWxlOiBPcHRpb25hbFtLZXlTY2hlZHVsZV0gPSBOb25lCi0gICAgICAgIHNlbGYucmVjZWl2
ZWRfZXh0ZW5zaW9uczogT3B0aW9uYWxbTGlzdFtFeHRlbnNpb25dXSA9IE5vbmUKLSAgICAgICAg
c2VsZi5fa2V5X3NjaGVkdWxlX3BzazogT3B0aW9uYWxbS2V5U2NoZWR1bGVdID0gTm9uZQotICAg
ICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHJveHk6IE9wdGlvbmFsW0tleVNjaGVkdWxlUHJveHld
ID0gTm9uZQotICAgICAgICBzZWxmLl9uZXdfc2Vzc2lvbl90aWNrZXQ6IE9wdGlvbmFsW05ld1Nl
c3Npb25UaWNrZXRdID0gTm9uZQotICAgICAgICBzZWxmLl9wZWVyX2NlcnRpZmljYXRlOiBPcHRp
b25hbFt4NTA5LkNlcnRpZmljYXRlXSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVlcl9jZXJ0aWZp
Y2F0ZV9jaGFpbjogTGlzdFt4NTA5LkNlcnRpZmljYXRlXSA9IFtdCi0gICAgICAgIHNlbGYuX3Jl
Y2VpdmVfYnVmZmVyID0gYiIiCi0gICAgICAgIHNlbGYuX3Nlc3Npb25fcmVzdW1lZCA9IEZhbHNl
Ci0gICAgICAgIHNlbGYuX2VuY19rZXk6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKLSAgICAgICAg
c2VsZi5fZGVjX2tleTogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQotICAgICAgICBzZWxmLl9fbG9n
Z2VyID0gbG9nZ2VyCi0KLSAgICAgICAgc2VsZi5fZWNfcHJpdmF0ZV9rZXk6IE9wdGlvbmFsW2Vj
LkVsbGlwdGljQ3VydmVQcml2YXRlS2V5XSA9IE5vbmUKLSAgICAgICAgc2VsZi5feDI1NTE5X3By
aXZhdGVfa2V5OiBPcHRpb25hbFt4MjU1MTkuWDI1NTE5UHJpdmF0ZUtleV0gPSBOb25lCi0gICAg
ICAgIHNlbGYuX3g0NDhfcHJpdmF0ZV9rZXk6IE9wdGlvbmFsW3g0NDguWDQ0OFByaXZhdGVLZXld
ID0gTm9uZQotCi0gICAgICAgIGlmIGlzX2NsaWVudDoKLSAgICAgICAgICAgIHNlbGYuY2xpZW50
X3JhbmRvbSA9IG9zLnVyYW5kb20oMzIpCi0gICAgICAgICAgICBzZWxmLmxlZ2FjeV9zZXNzaW9u
X2lkID0gYiIiCi0gICAgICAgICAgICBzZWxmLnN0YXRlID0gU3RhdGUuQ0xJRU5UX0hBTkRTSEFL
RV9TVEFSVAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5jbGllbnRfcmFuZG9tID0g
Tm9uZQotICAgICAgICAgICAgc2VsZi5sZWdhY3lfc2Vzc2lvbl9pZCA9IE5vbmUKLSAgICAgICAg
ICAgIHNlbGYuc3RhdGUgPSBTdGF0ZS5TRVJWRVJfRVhQRUNUX0NMSUVOVF9IRUxMTwotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIHNlc3Npb25fcmVzdW1lZChzZWxmKSAtPiBib29sOgotICAgICAg
ICAiIiIKLSAgICAgICAgUmV0dXJucyBUcnVlIGlmIHNlc3Npb24gcmVzdW1wdGlvbiB3YXMgc3Vj
Y2Vzc2Z1bGx5IHVzZWQuCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fc2Vzc2lv
bl9yZXN1bWVkCi0KLSAgICBkZWYgaGFuZGxlX21lc3NhZ2UoCi0gICAgICAgIHNlbGYsIGlucHV0
X2RhdGE6IGJ5dGVzLCBvdXRwdXRfYnVmOiBEaWN0W0Vwb2NoLCBCdWZmZXJdCi0gICAgKSAtPiBO
b25lOgotICAgICAgICBpZiBzZWxmLnN0YXRlID09IFN0YXRlLkNMSUVOVF9IQU5EU0hBS0VfU1RB
UlQ6Ci0gICAgICAgICAgICBzZWxmLl9jbGllbnRfc2VuZF9oZWxsbyhvdXRwdXRfYnVmW0Vwb2No
LklOSVRJQUxdKQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9i
dWZmZXIgKz0gaW5wdXRfZGF0YQotICAgICAgICB3aGlsZSBsZW4oc2VsZi5fcmVjZWl2ZV9idWZm
ZXIpID49IDQ6Ci0gICAgICAgICAgICAjIGRldGVybWluZSBtZXNzYWdlIGxlbmd0aAotICAgICAg
ICAgICAgbWVzc2FnZV90eXBlID0gc2VsZi5fcmVjZWl2ZV9idWZmZXJbMF0KLSAgICAgICAgICAg
IG1lc3NhZ2VfbGVuZ3RoID0gMAotICAgICAgICAgICAgZm9yIGIgaW4gc2VsZi5fcmVjZWl2ZV9i
dWZmZXJbMTo0XToKLSAgICAgICAgICAgICAgICBtZXNzYWdlX2xlbmd0aCA9IChtZXNzYWdlX2xl
bmd0aCA8PCA4KSB8IGIKLSAgICAgICAgICAgIG1lc3NhZ2VfbGVuZ3RoICs9IDQKLQotICAgICAg
ICAgICAgIyBjaGVjayBtZXNzYWdlIGlzIGNvbXBsZXRlCi0gICAgICAgICAgICBpZiBsZW4oc2Vs
Zi5fcmVjZWl2ZV9idWZmZXIpIDwgbWVzc2FnZV9sZW5ndGg6Ci0gICAgICAgICAgICAgICAgYnJl
YWsKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9yZWNlaXZlX2J1ZmZlcls6bWVzc2FnZV9s
ZW5ndGhdCi0gICAgICAgICAgICBzZWxmLl9yZWNlaXZlX2J1ZmZlciA9IHNlbGYuX3JlY2VpdmVf
YnVmZmVyW21lc3NhZ2VfbGVuZ3RoOl0KLQotICAgICAgICAgICAgaW5wdXRfYnVmID0gQnVmZmVy
KGRhdGE9bWVzc2FnZSkKLQotICAgICAgICAgICAgIyBjbGllbnQgc3RhdGVzCi0KLSAgICAgICAg
ICAgIGlmIHNlbGYuc3RhdGUgPT0gU3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE86Ci0g
ICAgICAgICAgICAgICAgaWYgbWVzc2FnZV90eXBlID09IEhhbmRzaGFrZVR5cGUuU0VSVkVSX0hF
TExPOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbGllbnRfaGFuZGxlX2hlbGxvKGlucHV0
X2J1Ziwgb3V0cHV0X2J1ZltFcG9jaC5JTklUSUFMXSkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICByYWlzZSBBbGVydFVuZXhwZWN0ZWRNZXNzYWdlCi0gICAgICAg
ICAgICBlbGlmIHNlbGYuc3RhdGUgPT0gU3RhdGUuQ0xJRU5UX0VYUEVDVF9FTkNSWVBURURfRVhU
RU5TSU9OUzoKLSAgICAgICAgICAgICAgICBpZiBtZXNzYWdlX3R5cGUgPT0gSGFuZHNoYWtlVHlw
ZS5FTkNSWVBURURfRVhURU5TSU9OUzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xpZW50
X2hhbmRsZV9lbmNyeXB0ZWRfZXh0ZW5zaW9ucyhpbnB1dF9idWYpCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWxlcnRVbmV4cGVjdGVkTWVzc2FnZQot
ICAgICAgICAgICAgZWxpZiBzZWxmLnN0YXRlID09IFN0YXRlLkNMSUVOVF9FWFBFQ1RfQ0VSVElG
SUNBVEVfUkVRVUVTVF9PUl9DRVJUSUZJQ0FURToKLSAgICAgICAgICAgICAgICBpZiBtZXNzYWdl
X3R5cGUgPT0gSGFuZHNoYWtlVHlwZS5DRVJUSUZJQ0FURToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fY2xpZW50X2hhbmRsZV9jZXJ0aWZpY2F0ZShpbnB1dF9idWYpCi0gICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogaGFuZGxlIGNlcnRpZmljYXRl
IHJlcXVlc3QKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWxlcnRVbmV4cGVjdGVkTWVzc2Fn
ZQotICAgICAgICAgICAgZWxpZiBzZWxmLnN0YXRlID09IFN0YXRlLkNMSUVOVF9FWFBFQ1RfQ0VS
VElGSUNBVEVfVkVSSUZZOgotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2VfdHlwZSA9PSBIYW5k
c2hha2VUeXBlLkNFUlRJRklDQVRFX1ZFUklGWToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
Y2xpZW50X2hhbmRsZV9jZXJ0aWZpY2F0ZV92ZXJpZnkoaW5wdXRfYnVmKQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0VW5leHBlY3RlZE1lc3Nh
Z2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9PSBTdGF0ZS5DTElFTlRfRVhQRUNUX0ZJ
TklTSEVEOgotICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2VfdHlwZSA9PSBIYW5kc2hha2VUeXBl
LkZJTklTSEVEOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbGllbnRfaGFuZGxlX2Zpbmlz
aGVkKGlucHV0X2J1Ziwgb3V0cHV0X2J1ZltFcG9jaC5IQU5EU0hBS0VdKQotICAgICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0VW5leHBlY3RlZE1lc3Nh
Z2UKLSAgICAgICAgICAgIGVsaWYgc2VsZi5zdGF0ZSA9PSBTdGF0ZS5DTElFTlRfUE9TVF9IQU5E
U0hBS0U6Ci0gICAgICAgICAgICAgICAgaWYgbWVzc2FnZV90eXBlID09IEhhbmRzaGFrZVR5cGUu
TkVXX1NFU1NJT05fVElDS0VUOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbGllbnRfaGFu
ZGxlX25ld19zZXNzaW9uX3RpY2tldChpbnB1dF9idWYpCi0gICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWxlcnRVbmV4cGVjdGVkTWVzc2FnZQotCi0gICAg
ICAgICAgICAjIHNlcnZlciBzdGF0ZXMKLQotICAgICAgICAgICAgZWxpZiBzZWxmLnN0YXRlID09
IFN0YXRlLlNFUlZFUl9FWFBFQ1RfQ0xJRU5UX0hFTExPOgotICAgICAgICAgICAgICAgIGlmIG1l
c3NhZ2VfdHlwZSA9PSBIYW5kc2hha2VUeXBlLkNMSUVOVF9IRUxMTzoKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fc2VydmVyX2hhbmRsZV9oZWxsbygKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0X2J1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9idWZbRXBvY2guSU5J
VElBTF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfYnVmW0Vwb2NoLkhBTkRTSEFL
RV0sCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfYnVmW0Vwb2NoLk9ORV9SVFRdLAot
ICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgcmFpc2UgQWxlcnRVbmV4cGVjdGVkTWVzc2FnZQotICAgICAgICAgICAgZWxpZiBz
ZWxmLnN0YXRlID09IFN0YXRlLlNFUlZFUl9FWFBFQ1RfRklOSVNIRUQ6Ci0gICAgICAgICAgICAg
ICAgaWYgbWVzc2FnZV90eXBlID09IEhhbmRzaGFrZVR5cGUuRklOSVNIRUQ6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlcnZlcl9oYW5kbGVfZmluaXNoZWQoaW5wdXRfYnVmLCBvdXRwdXRf
YnVmW0Vwb2NoLk9ORV9SVFRdKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UKLSAgICAgICAgICAgIGVsaWYgc2Vs
Zi5zdGF0ZSA9PSBTdGF0ZS5TRVJWRVJfUE9TVF9IQU5EU0hBS0U6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgQWxlcnRVbmV4cGVjdGVkTWVzc2FnZQotCi0gICAgICAgICAgICBhc3NlcnQgaW5wdXRf
YnVmLmVvZigpCi0KLSAgICBkZWYgX2J1aWxkX3Nlc3Npb25fdGlja2V0KAotICAgICAgICBzZWxm
LCBuZXdfc2Vzc2lvbl90aWNrZXQ6IE5ld1Nlc3Npb25UaWNrZXQKLSAgICApIC0+IFNlc3Npb25U
aWNrZXQ6Ci0gICAgICAgIHJlc3VtcHRpb25fbWFzdGVyX3NlY3JldCA9IHNlbGYua2V5X3NjaGVk
dWxlLmRlcml2ZV9zZWNyZXQoYiJyZXMgbWFzdGVyIikKLSAgICAgICAgcmVzdW1wdGlvbl9zZWNy
ZXQgPSBoa2RmX2V4cGFuZF9sYWJlbCgKLSAgICAgICAgICAgIGFsZ29yaXRobT1zZWxmLmtleV9z
Y2hlZHVsZS5hbGdvcml0aG0sCi0gICAgICAgICAgICBzZWNyZXQ9cmVzdW1wdGlvbl9tYXN0ZXJf
c2VjcmV0LAotICAgICAgICAgICAgbGFiZWw9YiJyZXN1bXB0aW9uIiwKLSAgICAgICAgICAgIGhh
c2hfdmFsdWU9bmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldF9ub25jZSwKLSAgICAgICAgICAgIGxl
bmd0aD1zZWxmLmtleV9zY2hlZHVsZS5hbGdvcml0aG0uZGlnZXN0X3NpemUsCi0gICAgICAgICkK
LQotICAgICAgICB0aW1lc3RhbXAgPSB1dGNub3coKQotICAgICAgICByZXR1cm4gU2Vzc2lvblRp
Y2tldCgKLSAgICAgICAgICAgIGFnZV9hZGQ9bmV3X3Nlc3Npb25fdGlja2V0LnRpY2tldF9hZ2Vf
YWRkLAotICAgICAgICAgICAgY2lwaGVyX3N1aXRlPXNlbGYua2V5X3NjaGVkdWxlLmNpcGhlcl9z
dWl0ZSwKLSAgICAgICAgICAgIG1heF9lYXJseV9kYXRhX3NpemU9bmV3X3Nlc3Npb25fdGlja2V0
Lm1heF9lYXJseV9kYXRhX3NpemUsCi0gICAgICAgICAgICBub3RfdmFsaWRfYWZ0ZXI9dGltZXN0
YW1wCi0gICAgICAgICAgICArIGRhdGV0aW1lLnRpbWVkZWx0YShzZWNvbmRzPW5ld19zZXNzaW9u
X3RpY2tldC50aWNrZXRfbGlmZXRpbWUpLAotICAgICAgICAgICAgbm90X3ZhbGlkX2JlZm9yZT10
aW1lc3RhbXAsCi0gICAgICAgICAgICBvdGhlcl9leHRlbnNpb25zPXNlbGYuaGFuZHNoYWtlX2V4
dGVuc2lvbnMsCi0gICAgICAgICAgICByZXN1bXB0aW9uX3NlY3JldD1yZXN1bXB0aW9uX3NlY3Jl
dCwKLSAgICAgICAgICAgIHNlcnZlcl9uYW1lPXNlbGYuX3NlcnZlcl9uYW1lLAotICAgICAgICAg
ICAgdGlja2V0PW5ld19zZXNzaW9uX3RpY2tldC50aWNrZXQsCi0gICAgICAgICkKLQotICAgIGRl
ZiBfY2xpZW50X3NlbmRfaGVsbG8oc2VsZiwgb3V0cHV0X2J1ZjogQnVmZmVyKSAtPiBOb25lOgot
ICAgICAgICBrZXlfc2hhcmU6IExpc3RbS2V5U2hhcmVFbnRyeV0gPSBbXQotICAgICAgICBzdXBw
b3J0ZWRfZ3JvdXBzOiBMaXN0W2ludF0gPSBbXQotCi0gICAgICAgIGZvciBncm91cCBpbiBzZWxm
Ll9zdXBwb3J0ZWRfZ3JvdXBzOgotICAgICAgICAgICAgaWYgZ3JvdXAgPT0gR3JvdXAuU0VDUDI1
NlIxOgotICAgICAgICAgICAgICAgIHNlbGYuX2VjX3ByaXZhdGVfa2V5ID0gZWMuZ2VuZXJhdGVf
cHJpdmF0ZV9rZXkoCi0gICAgICAgICAgICAgICAgICAgIEdST1VQX1RPX0NVUlZFW0dyb3VwLlNF
Q1AyNTZSMV0oKSwgZGVmYXVsdF9iYWNrZW5kKCkKLSAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICAgICAga2V5X3NoYXJlLmFwcGVuZChlbmNvZGVfcHVibGljX2tleShzZWxmLl9lY19wcml2
YXRlX2tleS5wdWJsaWNfa2V5KCkpKQotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9ncm91cHMu
YXBwZW5kKEdyb3VwLlNFQ1AyNTZSMSkKLSAgICAgICAgICAgIGVsaWYgZ3JvdXAgPT0gR3JvdXAu
WDI1NTE5OgotICAgICAgICAgICAgICAgIHNlbGYuX3gyNTUxOV9wcml2YXRlX2tleSA9IHgyNTUx
OS5YMjU1MTlQcml2YXRlS2V5LmdlbmVyYXRlKCkKLSAgICAgICAgICAgICAgICBrZXlfc2hhcmUu
YXBwZW5kKAotICAgICAgICAgICAgICAgICAgICBlbmNvZGVfcHVibGljX2tleShzZWxmLl94MjU1
MTlfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpKQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgICAgICBzdXBwb3J0ZWRfZ3JvdXBzLmFwcGVuZChHcm91cC5YMjU1MTkpCi0gICAgICAgICAg
ICBlbGlmIGdyb3VwID09IEdyb3VwLlg0NDg6Ci0gICAgICAgICAgICAgICAgc2VsZi5feDQ0OF9w
cml2YXRlX2tleSA9IHg0NDguWDQ0OFByaXZhdGVLZXkuZ2VuZXJhdGUoKQotICAgICAgICAgICAg
ICAgIGtleV9zaGFyZS5hcHBlbmQoZW5jb2RlX3B1YmxpY19rZXkoc2VsZi5feDQ0OF9wcml2YXRl
X2tleS5wdWJsaWNfa2V5KCkpKQotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9ncm91cHMuYXBw
ZW5kKEdyb3VwLlg0NDgpCi0gICAgICAgICAgICBlbGlmIGdyb3VwID09IEdyb3VwLkdSRUFTRToK
LSAgICAgICAgICAgICAgICBrZXlfc2hhcmUuYXBwZW5kKChHcm91cC5HUkVBU0UsIGIiXHgwMCIp
KQotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9ncm91cHMuYXBwZW5kKEdyb3VwLkdSRUFTRSkK
LQotICAgICAgICBhc3NlcnQgbGVuKGtleV9zaGFyZSksICJubyBrZXkgc2hhcmUgZW50cmllcyIK
LQotICAgICAgICBoZWxsbyA9IENsaWVudEhlbGxvKAotICAgICAgICAgICAgcmFuZG9tPXNlbGYu
Y2xpZW50X3JhbmRvbSwKLSAgICAgICAgICAgIGxlZ2FjeV9zZXNzaW9uX2lkPXNlbGYubGVnYWN5
X3Nlc3Npb25faWQsCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGVzPVtpbnQoeCkgZm9yIHggaW4g
c2VsZi5fY2lwaGVyX3N1aXRlc10sCi0gICAgICAgICAgICBsZWdhY3lfY29tcHJlc3Npb25fbWV0
aG9kcz1zZWxmLl9sZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kcywKLSAgICAgICAgICAgIGFscG5f
cHJvdG9jb2xzPXNlbGYuX2FscG5fcHJvdG9jb2xzLAotICAgICAgICAgICAga2V5X3NoYXJlPWtl
eV9zaGFyZSwKLSAgICAgICAgICAgIHBza19rZXlfZXhjaGFuZ2VfbW9kZXM9c2VsZi5fcHNrX2tl
eV9leGNoYW5nZV9tb2RlcwotICAgICAgICAgICAgaWYgKHNlbGYuc2Vzc2lvbl90aWNrZXQgb3Ig
c2VsZi5uZXdfc2Vzc2lvbl90aWNrZXRfY2IgaXMgbm90IE5vbmUpCi0gICAgICAgICAgICBlbHNl
IE5vbmUsCi0gICAgICAgICAgICBzZXJ2ZXJfbmFtZT1zZWxmLl9zZXJ2ZXJfbmFtZSwKLSAgICAg
ICAgICAgIHNpZ25hdHVyZV9hbGdvcml0aG1zPXNlbGYuX3NpZ25hdHVyZV9hbGdvcml0aG1zLAot
ICAgICAgICAgICAgc3VwcG9ydGVkX2dyb3Vwcz1zdXBwb3J0ZWRfZ3JvdXBzLAotICAgICAgICAg
ICAgc3VwcG9ydGVkX3ZlcnNpb25zPXNlbGYuX3N1cHBvcnRlZF92ZXJzaW9ucywKLSAgICAgICAg
ICAgIG90aGVyX2V4dGVuc2lvbnM9c2VsZi5oYW5kc2hha2VfZXh0ZW5zaW9ucywKLSAgICAgICAg
KQotCi0gICAgICAgICMgUFNLCi0gICAgICAgIGlmIHNlbGYuc2Vzc2lvbl90aWNrZXQgYW5kIHNl
bGYuc2Vzc2lvbl90aWNrZXQuaXNfdmFsaWQ6Ci0gICAgICAgICAgICBzZWxmLl9rZXlfc2NoZWR1
bGVfcHNrID0gS2V5U2NoZWR1bGUoc2VsZi5zZXNzaW9uX3RpY2tldC5jaXBoZXJfc3VpdGUpCi0g
ICAgICAgICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmV4dHJhY3Qoc2VsZi5zZXNzaW9uX3Rp
Y2tldC5yZXN1bXB0aW9uX3NlY3JldCkKLSAgICAgICAgICAgIGJpbmRlcl9rZXkgPSBzZWxmLl9r
ZXlfc2NoZWR1bGVfcHNrLmRlcml2ZV9zZWNyZXQoYiJyZXMgYmluZGVyIikKLSAgICAgICAgICAg
IGJpbmRlcl9sZW5ndGggPSBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmFsZ29yaXRobS5kaWdlc3Rf
c2l6ZQotCi0gICAgICAgICAgICAjIHVwZGF0ZSBoZWxsbwotICAgICAgICAgICAgaWYgc2VsZi5z
ZXNzaW9uX3RpY2tldC5tYXhfZWFybHlfZGF0YV9zaXplIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIGhlbGxvLmVhcmx5X2RhdGEgPSBUcnVlCi0gICAgICAgICAgICBoZWxsby5wcmVfc2hh
cmVkX2tleSA9IE9mZmVyZWRQc2tzKAotICAgICAgICAgICAgICAgIGlkZW50aXRpZXM9WwotICAg
ICAgICAgICAgICAgICAgICAoc2VsZi5zZXNzaW9uX3RpY2tldC50aWNrZXQsIHNlbGYuc2Vzc2lv
bl90aWNrZXQub2JmdXNjYXRlZF9hZ2UpCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICAgICBiaW5kZXJzPVtieXRlcyhiaW5kZXJfbGVuZ3RoKV0sCi0gICAgICAgICAgICApCi0KLSAg
ICAgICAgICAgICMgc2VyaWFsaXplIGhlbGxvIHdpdGhvdXQgYmluZGVyCi0gICAgICAgICAgICB0
bXBfYnVmID0gQnVmZmVyKGNhcGFjaXR5PTEwMjQpCi0gICAgICAgICAgICBwdXNoX2NsaWVudF9o
ZWxsbyh0bXBfYnVmLCBoZWxsbykKLQotICAgICAgICAgICAgIyBjYWxjdWxhdGUgYmluZGVyCi0g
ICAgICAgICAgICBoYXNoX29mZnNldCA9IHRtcF9idWYudGVsbCgpIC0gYmluZGVyX2xlbmd0aCAt
IDMKLSAgICAgICAgICAgIHNlbGYuX2tleV9zY2hlZHVsZV9wc2sudXBkYXRlX2hhc2godG1wX2J1
Zi5kYXRhX3NsaWNlKDAsIGhhc2hfb2Zmc2V0KSkKLSAgICAgICAgICAgIGJpbmRlciA9IHNlbGYu
X2tleV9zY2hlZHVsZV9wc2suZmluaXNoZWRfdmVyaWZ5X2RhdGEoYmluZGVyX2tleSkKLSAgICAg
ICAgICAgIGhlbGxvLnByZV9zaGFyZWRfa2V5LmJpbmRlcnNbMF0gPSBiaW5kZXIKLSAgICAgICAg
ICAgIHNlbGYuX2tleV9zY2hlZHVsZV9wc2sudXBkYXRlX2hhc2goCi0gICAgICAgICAgICAgICAg
dG1wX2J1Zi5kYXRhX3NsaWNlKGhhc2hfb2Zmc2V0LCBoYXNoX29mZnNldCArIDMpICsgYmluZGVy
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgY2FsY3VsYXRlIGVhcmx5IGRhdGEga2V5
Ci0gICAgICAgICAgICBpZiBoZWxsby5lYXJseV9kYXRhOgotICAgICAgICAgICAgICAgIGVhcmx5
X2tleSA9IHNlbGYuX2tleV9zY2hlZHVsZV9wc2suZGVyaXZlX3NlY3JldChiImMgZSB0cmFmZmlj
IikKLSAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZV90cmFmZmljX2tleV9jYigKLSAgICAgICAg
ICAgICAgICAgICAgRGlyZWN0aW9uLkVOQ1JZUFQsCi0gICAgICAgICAgICAgICAgICAgIEVwb2No
LlpFUk9fUlRULAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrLmNp
cGhlcl9zdWl0ZSwKLSAgICAgICAgICAgICAgICAgICAgZWFybHlfa2V5LAotICAgICAgICAgICAg
ICAgICkKLQotICAgICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHJveHkgPSBLZXlTY2hlZHVsZVBy
b3h5KHNlbGYuX2NpcGhlcl9zdWl0ZXMpCi0gICAgICAgIHNlbGYuX2tleV9zY2hlZHVsZV9wcm94
eS5leHRyYWN0KE5vbmUpCi0KLSAgICAgICAgd2l0aCBwdXNoX21lc3NhZ2Uoc2VsZi5fa2V5X3Nj
aGVkdWxlX3Byb3h5LCBvdXRwdXRfYnVmKToKLSAgICAgICAgICAgIHB1c2hfY2xpZW50X2hlbGxv
KG91dHB1dF9idWYsIGhlbGxvKQotCi0gICAgICAgIHNlbGYuX3NldF9zdGF0ZShTdGF0ZS5DTElF
TlRfRVhQRUNUX1NFUlZFUl9IRUxMTykKLQotICAgIGRlZiBfY2xpZW50X2hhbmRsZV9oZWxsbyhz
ZWxmLCBpbnB1dF9idWY6IEJ1ZmZlciwgb3V0cHV0X2J1ZjogQnVmZmVyKSAtPiBOb25lOgotICAg
ICAgICBwZWVyX2hlbGxvID0gcHVsbF9zZXJ2ZXJfaGVsbG8oaW5wdXRfYnVmKQotCi0gICAgICAg
IGNpcGhlcl9zdWl0ZSA9IG5lZ290aWF0ZSgKLSAgICAgICAgICAgIHNlbGYuX2NpcGhlcl9zdWl0
ZXMsCi0gICAgICAgICAgICBbcGVlcl9oZWxsby5jaXBoZXJfc3VpdGVdLAotICAgICAgICAgICAg
QWxlcnRIYW5kc2hha2VGYWlsdXJlKCJVbnN1cHBvcnRlZCBjaXBoZXIgc3VpdGUiKSwKLSAgICAg
ICAgKQotICAgICAgICBhc3NlcnQgcGVlcl9oZWxsby5jb21wcmVzc2lvbl9tZXRob2QgaW4gc2Vs
Zi5fbGVnYWN5X2NvbXByZXNzaW9uX21ldGhvZHMKLSAgICAgICAgYXNzZXJ0IHBlZXJfaGVsbG8u
c3VwcG9ydGVkX3ZlcnNpb24gaW4gc2VsZi5fc3VwcG9ydGVkX3ZlcnNpb25zCi0KLSAgICAgICAg
IyBzZWxlY3Qga2V5IHNjaGVkdWxlCi0gICAgICAgIGlmIHBlZXJfaGVsbG8ucHJlX3NoYXJlZF9r
ZXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiAoCi0gICAgICAgICAgICAgICAgc2VsZi5f
a2V5X3NjaGVkdWxlX3BzayBpcyBOb25lCi0gICAgICAgICAgICAgICAgb3IgcGVlcl9oZWxsby5w
cmVfc2hhcmVkX2tleSAhPSAwCi0gICAgICAgICAgICAgICAgb3IgY2lwaGVyX3N1aXRlICE9IHNl
bGYuX2tleV9zY2hlZHVsZV9wc2suY2lwaGVyX3N1aXRlCi0gICAgICAgICAgICApOgotICAgICAg
ICAgICAgICAgIHJhaXNlIEFsZXJ0SWxsZWdhbFBhcmFtZXRlcgotICAgICAgICAgICAgc2VsZi5r
ZXlfc2NoZWR1bGUgPSBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrCi0gICAgICAgICAgICBzZWxmLl9z
ZXNzaW9uX3Jlc3VtZWQgPSBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmtl
eV9zY2hlZHVsZSA9IHNlbGYuX2tleV9zY2hlZHVsZV9wcm94eS5zZWxlY3QoY2lwaGVyX3N1aXRl
KQotICAgICAgICBzZWxmLl9rZXlfc2NoZWR1bGVfcHNrID0gTm9uZQotICAgICAgICBzZWxmLl9r
ZXlfc2NoZWR1bGVfcHJveHkgPSBOb25lCi0KLSAgICAgICAgIyBwZXJmb3JtIGtleSBleGNoYW5n
ZQotICAgICAgICBwZWVyX3B1YmxpY19rZXkgPSBkZWNvZGVfcHVibGljX2tleShwZWVyX2hlbGxv
LmtleV9zaGFyZSkKLSAgICAgICAgc2hhcmVkX2tleTogT3B0aW9uYWxbYnl0ZXNdID0gTm9uZQot
ICAgICAgICBpZiAoCi0gICAgICAgICAgICBpc2luc3RhbmNlKHBlZXJfcHVibGljX2tleSwgeDI1
NTE5LlgyNTUxOVB1YmxpY0tleSkKLSAgICAgICAgICAgIGFuZCBzZWxmLl94MjU1MTlfcHJpdmF0
ZV9rZXkgaXMgbm90IE5vbmUKLSAgICAgICAgKToKLSAgICAgICAgICAgIHNoYXJlZF9rZXkgPSBz
ZWxmLl94MjU1MTlfcHJpdmF0ZV9rZXkuZXhjaGFuZ2UocGVlcl9wdWJsaWNfa2V5KQotICAgICAg
ICBlbGlmICgKLSAgICAgICAgICAgIGlzaW5zdGFuY2UocGVlcl9wdWJsaWNfa2V5LCB4NDQ4Llg0
NDhQdWJsaWNLZXkpCi0gICAgICAgICAgICBhbmQgc2VsZi5feDQ0OF9wcml2YXRlX2tleSBpcyBu
b3QgTm9uZQotICAgICAgICApOgotICAgICAgICAgICAgc2hhcmVkX2tleSA9IHNlbGYuX3g0NDhf
cHJpdmF0ZV9rZXkuZXhjaGFuZ2UocGVlcl9wdWJsaWNfa2V5KQotICAgICAgICBlbGlmICgKLSAg
ICAgICAgICAgIGlzaW5zdGFuY2UocGVlcl9wdWJsaWNfa2V5LCBlYy5FbGxpcHRpY0N1cnZlUHVi
bGljS2V5KQotICAgICAgICAgICAgYW5kIHNlbGYuX2VjX3ByaXZhdGVfa2V5IGlzIG5vdCBOb25l
Ci0gICAgICAgICAgICBhbmQgc2VsZi5fZWNfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpLmN1cnZl
Ll9fY2xhc3NfXwotICAgICAgICAgICAgPT0gcGVlcl9wdWJsaWNfa2V5LmN1cnZlLl9fY2xhc3Nf
XwotICAgICAgICApOgotICAgICAgICAgICAgc2hhcmVkX2tleSA9IHNlbGYuX2VjX3ByaXZhdGVf
a2V5LmV4Y2hhbmdlKGVjLkVDREgoKSwgcGVlcl9wdWJsaWNfa2V5KQotICAgICAgICBhc3NlcnQg
c2hhcmVkX2tleSBpcyBub3QgTm9uZQotCi0gICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLnVwZGF0
ZV9oYXNoKGlucHV0X2J1Zi5kYXRhKQotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS5leHRyYWN0
KHNoYXJlZF9rZXkpCi0KLSAgICAgICAgc2VsZi5fc2V0dXBfdHJhZmZpY19wcm90ZWN0aW9uKAot
ICAgICAgICAgICAgRGlyZWN0aW9uLkRFQ1JZUFQsIEVwb2NoLkhBTkRTSEFLRSwgYiJzIGhzIHRy
YWZmaWMiCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLl9zZXRfc3RhdGUoU3RhdGUuQ0xJRU5U
X0VYUEVDVF9FTkNSWVBURURfRVhURU5TSU9OUykKLQotICAgIGRlZiBfY2xpZW50X2hhbmRsZV9l
bmNyeXB0ZWRfZXh0ZW5zaW9ucyhzZWxmLCBpbnB1dF9idWY6IEJ1ZmZlcikgLT4gTm9uZToKLSAg
ICAgICAgZW5jcnlwdGVkX2V4dGVuc2lvbnMgPSBwdWxsX2VuY3J5cHRlZF9leHRlbnNpb25zKGlu
cHV0X2J1ZikKLQotICAgICAgICBzZWxmLmFscG5fbmVnb3RpYXRlZCA9IGVuY3J5cHRlZF9leHRl
bnNpb25zLmFscG5fcHJvdG9jb2wKLSAgICAgICAgc2VsZi5lYXJseV9kYXRhX2FjY2VwdGVkID0g
ZW5jcnlwdGVkX2V4dGVuc2lvbnMuZWFybHlfZGF0YQotICAgICAgICBzZWxmLnJlY2VpdmVkX2V4
dGVuc2lvbnMgPSBlbmNyeXB0ZWRfZXh0ZW5zaW9ucy5vdGhlcl9leHRlbnNpb25zCi0gICAgICAg
IGlmIHNlbGYuYWxwbl9jYjoKLSAgICAgICAgICAgIHNlbGYuYWxwbl9jYihzZWxmLmFscG5fbmVn
b3RpYXRlZCkKLQotICAgICAgICBzZWxmLl9zZXR1cF90cmFmZmljX3Byb3RlY3Rpb24oCi0gICAg
ICAgICAgICBEaXJlY3Rpb24uRU5DUllQVCwgRXBvY2guSEFORFNIQUtFLCBiImMgaHMgdHJhZmZp
YyIKLSAgICAgICAgKQotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS51cGRhdGVfaGFzaChpbnB1
dF9idWYuZGF0YSkKLQotICAgICAgICAjIGlmIHRoZSBzZXJ2ZXIgYWNjZXB0ZWQgb3VyIFBTSyB3
ZSBhcmUgZG9uZSwgb3RoZXIgd2Ugd2FudCBpdHMgY2VydGlmaWNhdGUKLSAgICAgICAgaWYgc2Vs
Zi5fc2Vzc2lvbl9yZXN1bWVkOgotICAgICAgICAgICAgc2VsZi5fc2V0X3N0YXRlKFN0YXRlLkNM
SUVOVF9FWFBFQ1RfRklOSVNIRUQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9z
ZXRfc3RhdGUoU3RhdGUuQ0xJRU5UX0VYUEVDVF9DRVJUSUZJQ0FURV9SRVFVRVNUX09SX0NFUlRJ
RklDQVRFKQotCi0gICAgZGVmIF9jbGllbnRfaGFuZGxlX2NlcnRpZmljYXRlKHNlbGYsIGlucHV0
X2J1ZjogQnVmZmVyKSAtPiBOb25lOgotICAgICAgICBjZXJ0aWZpY2F0ZSA9IHB1bGxfY2VydGlm
aWNhdGUoaW5wdXRfYnVmKQotCi0gICAgICAgIHNlbGYuX3BlZXJfY2VydGlmaWNhdGUgPSB4NTA5
LmxvYWRfZGVyX3g1MDlfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICBjZXJ0aWZpY2F0ZS5jZXJ0
aWZpY2F0ZXNbMF1bMF0sIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCkKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLl9wZWVyX2NlcnRpZmljYXRlX2NoYWluID0gWwotICAgICAgICAgICAgeDUwOS5s
b2FkX2Rlcl94NTA5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlLmNl
cnRpZmljYXRlc1tpXVswXSwgYmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotICAgICAgICAgICAg
KQotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbGVuKGNlcnRpZmljYXRlLmNlcnRpZmlj
YXRlcykpCi0gICAgICAgIF0KLQotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS51cGRhdGVfaGFz
aChpbnB1dF9idWYuZGF0YSkKLQotICAgICAgICBzZWxmLl9zZXRfc3RhdGUoU3RhdGUuQ0xJRU5U
X0VYUEVDVF9DRVJUSUZJQ0FURV9WRVJJRlkpCi0KLSAgICBkZWYgX2NsaWVudF9oYW5kbGVfY2Vy
dGlmaWNhdGVfdmVyaWZ5KHNlbGYsIGlucHV0X2J1ZjogQnVmZmVyKSAtPiBOb25lOgotICAgICAg
ICB2ZXJpZnkgPSBwdWxsX2NlcnRpZmljYXRlX3ZlcmlmeShpbnB1dF9idWYpCi0KLSAgICAgICAg
YXNzZXJ0IHZlcmlmeS5hbGdvcml0aG0gaW4gc2VsZi5fc2lnbmF0dXJlX2FsZ29yaXRobXMKLQot
ICAgICAgICAjIGNoZWNrIHNpZ25hdHVyZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxm
Ll9wZWVyX2NlcnRpZmljYXRlLnB1YmxpY19rZXkoKS52ZXJpZnkoCi0gICAgICAgICAgICAgICAg
dmVyaWZ5LnNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS5jZXJ0
aWZpY2F0ZV92ZXJpZnlfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgYiJUTFMgMS4zLCBzZXJ2
ZXIgQ2VydGlmaWNhdGVWZXJpZnkiCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAg
ICAqc2lnbmF0dXJlX2FsZ29yaXRobV9wYXJhbXModmVyaWZ5LmFsZ29yaXRobSksCi0gICAgICAg
ICAgICApCi0gICAgICAgIGV4Y2VwdCBJbnZhbGlkU2lnbmF0dXJlOgotICAgICAgICAgICAgcmFp
c2UgQWxlcnREZWNyeXB0RXJyb3IKLQotICAgICAgICAjIGNoZWNrIGNlcnRpZmljYXRlCi0gICAg
ICAgIGlmIHNlbGYuX3ZlcmlmeV9tb2RlICE9IHNzbC5DRVJUX05PTkU6Ci0gICAgICAgICAgICB2
ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICAgICAgY2FkYXRhPXNlbGYuX2NhZGF0YSwK
LSAgICAgICAgICAgICAgICBjYWZpbGU9c2VsZi5fY2FmaWxlLAotICAgICAgICAgICAgICAgIGNh
cGF0aD1zZWxmLl9jYXBhdGgsCi0gICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9c2VsZi5fcGVl
cl9jZXJ0aWZpY2F0ZSwKLSAgICAgICAgICAgICAgICBjaGFpbj1zZWxmLl9wZWVyX2NlcnRpZmlj
YXRlX2NoYWluLAotICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lPXNlbGYuX3NlcnZlcl9uYW1l
LAotICAgICAgICAgICAgKQotCi0gICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLnVwZGF0ZV9oYXNo
KGlucHV0X2J1Zi5kYXRhKQotCi0gICAgICAgIHNlbGYuX3NldF9zdGF0ZShTdGF0ZS5DTElFTlRf
RVhQRUNUX0ZJTklTSEVEKQotCi0gICAgZGVmIF9jbGllbnRfaGFuZGxlX2ZpbmlzaGVkKHNlbGYs
IGlucHV0X2J1ZjogQnVmZmVyLCBvdXRwdXRfYnVmOiBCdWZmZXIpIC0+IE5vbmU6Ci0gICAgICAg
IGZpbmlzaGVkID0gcHVsbF9maW5pc2hlZChpbnB1dF9idWYpCi0KLSAgICAgICAgIyBjaGVjayB2
ZXJpZnkgZGF0YQotICAgICAgICBleHBlY3RlZF92ZXJpZnlfZGF0YSA9IHNlbGYua2V5X3NjaGVk
dWxlLmZpbmlzaGVkX3ZlcmlmeV9kYXRhKHNlbGYuX2RlY19rZXkpCi0gICAgICAgIGlmIGZpbmlz
aGVkLnZlcmlmeV9kYXRhICE9IGV4cGVjdGVkX3ZlcmlmeV9kYXRhOgotICAgICAgICAgICAgcmFp
c2UgQWxlcnREZWNyeXB0RXJyb3IKLSAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUudXBkYXRlX2hh
c2goaW5wdXRfYnVmLmRhdGEpCi0KLSAgICAgICAgIyBwcmVwYXJlIHRyYWZmaWMga2V5cwotICAg
ICAgICBhc3NlcnQgc2VsZi5rZXlfc2NoZWR1bGUuZ2VuZXJhdGlvbiA9PSAyCi0gICAgICAgIHNl
bGYua2V5X3NjaGVkdWxlLmV4dHJhY3QoTm9uZSkKLSAgICAgICAgc2VsZi5fc2V0dXBfdHJhZmZp
Y19wcm90ZWN0aW9uKAotICAgICAgICAgICAgRGlyZWN0aW9uLkRFQ1JZUFQsIEVwb2NoLk9ORV9S
VFQsIGIicyBhcCB0cmFmZmljIgotICAgICAgICApCi0gICAgICAgIG5leHRfZW5jX2tleSA9IHNl
bGYua2V5X3NjaGVkdWxlLmRlcml2ZV9zZWNyZXQoYiJjIGFwIHRyYWZmaWMiKQotCi0gICAgICAg
ICMgc2VuZCBmaW5pc2hlZAotICAgICAgICB3aXRoIHB1c2hfbWVzc2FnZShzZWxmLmtleV9zY2hl
ZHVsZSwgb3V0cHV0X2J1Zik6Ci0gICAgICAgICAgICBwdXNoX2ZpbmlzaGVkKAotICAgICAgICAg
ICAgICAgIG91dHB1dF9idWYsCi0gICAgICAgICAgICAgICAgRmluaXNoZWQoCi0gICAgICAgICAg
ICAgICAgICAgIHZlcmlmeV9kYXRhPXNlbGYua2V5X3NjaGVkdWxlLmZpbmlzaGVkX3ZlcmlmeV9k
YXRhKHNlbGYuX2VuY19rZXkpCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICkKLQot
ICAgICAgICAjIGNvbW1pdCB0cmFmZmljIGtleQotICAgICAgICBzZWxmLl9lbmNfa2V5ID0gbmV4
dF9lbmNfa2V5Ci0gICAgICAgIHNlbGYudXBkYXRlX3RyYWZmaWNfa2V5X2NiKAotICAgICAgICAg
ICAgRGlyZWN0aW9uLkVOQ1JZUFQsCi0gICAgICAgICAgICBFcG9jaC5PTkVfUlRULAotICAgICAg
ICAgICAgc2VsZi5rZXlfc2NoZWR1bGUuY2lwaGVyX3N1aXRlLAotICAgICAgICAgICAgc2VsZi5f
ZW5jX2tleSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX3NldF9zdGF0ZShTdGF0ZS5DTElF
TlRfUE9TVF9IQU5EU0hBS0UpCi0KLSAgICBkZWYgX2NsaWVudF9oYW5kbGVfbmV3X3Nlc3Npb25f
dGlja2V0KHNlbGYsIGlucHV0X2J1ZjogQnVmZmVyKSAtPiBOb25lOgotICAgICAgICBuZXdfc2Vz
c2lvbl90aWNrZXQgPSBwdWxsX25ld19zZXNzaW9uX3RpY2tldChpbnB1dF9idWYpCi0KLSAgICAg
ICAgIyBub3RpZnkgYXBwbGljYXRpb24KLSAgICAgICAgaWYgc2VsZi5uZXdfc2Vzc2lvbl90aWNr
ZXRfY2IgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0aWNrZXQgPSBzZWxmLl9idWlsZF9zZXNz
aW9uX3RpY2tldChuZXdfc2Vzc2lvbl90aWNrZXQpCi0gICAgICAgICAgICBzZWxmLm5ld19zZXNz
aW9uX3RpY2tldF9jYih0aWNrZXQpCi0KLSAgICBkZWYgX3NlcnZlcl9oYW5kbGVfaGVsbG8oCi0g
ICAgICAgIHNlbGYsCi0gICAgICAgIGlucHV0X2J1ZjogQnVmZmVyLAotICAgICAgICBpbml0aWFs
X2J1ZjogQnVmZmVyLAotICAgICAgICBoYW5kc2hha2VfYnVmOiBCdWZmZXIsCi0gICAgICAgIG9u
ZXJ0dF9idWY6IEJ1ZmZlciwKLSAgICApIC0+IE5vbmU6Ci0gICAgICAgIHBlZXJfaGVsbG8gPSBw
dWxsX2NsaWVudF9oZWxsbyhpbnB1dF9idWYpCi0KLSAgICAgICAgIyBkZXRlcm1pbmUgYXBwbGlj
YWJsZSBzaWduYXR1cmUgYWxnb3JpdGhtcwotICAgICAgICBzaWduYXR1cmVfYWxnb3JpdGhtczog
TGlzdFtTaWduYXR1cmVBbGdvcml0aG1dID0gW10KLSAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxm
LmNlcnRpZmljYXRlX3ByaXZhdGVfa2V5LCByc2EuUlNBUHJpdmF0ZUtleSk6Ci0gICAgICAgICAg
ICBzaWduYXR1cmVfYWxnb3JpdGhtcyA9IFsKLSAgICAgICAgICAgICAgICBTaWduYXR1cmVBbGdv
cml0aG0uUlNBX1BTU19SU0FFX1NIQTI1NiwKLSAgICAgICAgICAgICAgICBTaWduYXR1cmVBbGdv
cml0aG0uUlNBX1BLQ1MxX1NIQTI1NiwKLSAgICAgICAgICAgICAgICBTaWduYXR1cmVBbGdvcml0
aG0uUlNBX1BLQ1MxX1NIQTEsCi0gICAgICAgICAgICBdCi0gICAgICAgIGVsaWYgaXNpbnN0YW5j
ZSgKLSAgICAgICAgICAgIHNlbGYuY2VydGlmaWNhdGVfcHJpdmF0ZV9rZXksIGVjLkVsbGlwdGlj
Q3VydmVQcml2YXRlS2V5Ci0gICAgICAgICkgYW5kIGlzaW5zdGFuY2Uoc2VsZi5jZXJ0aWZpY2F0
ZV9wcml2YXRlX2tleS5jdXJ2ZSwgZWMuU0VDUDI1NlIxKToKLSAgICAgICAgICAgIHNpZ25hdHVy
ZV9hbGdvcml0aG1zID0gW1NpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMjU2UjFfU0hBMjU2
XQotCi0gICAgICAgICMgbmVnb3RpYXRlIHBhcmFtZXRlcnMKLSAgICAgICAgY2lwaGVyX3N1aXRl
ID0gbmVnb3RpYXRlKAotICAgICAgICAgICAgc2VsZi5fY2lwaGVyX3N1aXRlcywKLSAgICAgICAg
ICAgIHBlZXJfaGVsbG8uY2lwaGVyX3N1aXRlcywKLSAgICAgICAgICAgIEFsZXJ0SGFuZHNoYWtl
RmFpbHVyZSgiTm8gc3VwcG9ydGVkIGNpcGhlciBzdWl0ZSIpLAotICAgICAgICApCi0gICAgICAg
IGNvbXByZXNzaW9uX21ldGhvZCA9IG5lZ290aWF0ZSgKLSAgICAgICAgICAgIHNlbGYuX2xlZ2Fj
eV9jb21wcmVzc2lvbl9tZXRob2RzLAotICAgICAgICAgICAgcGVlcl9oZWxsby5sZWdhY3lfY29t
cHJlc3Npb25fbWV0aG9kcywKLSAgICAgICAgICAgIEFsZXJ0SGFuZHNoYWtlRmFpbHVyZSgiTm8g
c3VwcG9ydGVkIGNvbXByZXNzaW9uIG1ldGhvZCIpLAotICAgICAgICApCi0gICAgICAgIHBza19r
ZXlfZXhjaGFuZ2VfbW9kZSA9IG5lZ290aWF0ZSgKLSAgICAgICAgICAgIHNlbGYuX3Bza19rZXlf
ZXhjaGFuZ2VfbW9kZXMsIHBlZXJfaGVsbG8ucHNrX2tleV9leGNoYW5nZV9tb2RlcwotICAgICAg
ICApCi0gICAgICAgIHNpZ25hdHVyZV9hbGdvcml0aG0gPSBuZWdvdGlhdGUoCi0gICAgICAgICAg
ICBzaWduYXR1cmVfYWxnb3JpdGhtcywKLSAgICAgICAgICAgIHBlZXJfaGVsbG8uc2lnbmF0dXJl
X2FsZ29yaXRobXMsCi0gICAgICAgICAgICBBbGVydEhhbmRzaGFrZUZhaWx1cmUoIk5vIHN1cHBv
cnRlZCBzaWduYXR1cmUgYWxnb3JpdGhtIiksCi0gICAgICAgICkKLSAgICAgICAgc3VwcG9ydGVk
X3ZlcnNpb24gPSBuZWdvdGlhdGUoCi0gICAgICAgICAgICBzZWxmLl9zdXBwb3J0ZWRfdmVyc2lv
bnMsCi0gICAgICAgICAgICBwZWVyX2hlbGxvLnN1cHBvcnRlZF92ZXJzaW9ucywKLSAgICAgICAg
ICAgIEFsZXJ0UHJvdG9jb2xWZXJzaW9uKCJObyBzdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvbiIp
LAotICAgICAgICApCi0KLSAgICAgICAgIyBuZWdvdGlhdGUgQUxQTgotICAgICAgICBpZiBzZWxm
Ll9hbHBuX3Byb3RvY29scyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuYWxwbl9uZWdv
dGlhdGVkID0gbmVnb3RpYXRlKAotICAgICAgICAgICAgICAgIHNlbGYuX2FscG5fcHJvdG9jb2xz
LAotICAgICAgICAgICAgICAgIHBlZXJfaGVsbG8uYWxwbl9wcm90b2NvbHMsCi0gICAgICAgICAg
ICAgICAgQWxlcnRIYW5kc2hha2VGYWlsdXJlKCJObyBjb21tb24gQUxQTiBwcm90b2NvbHMiKSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgaWYgc2VsZi5hbHBuX2NiOgotICAgICAgICAgICAgc2Vs
Zi5hbHBuX2NiKHNlbGYuYWxwbl9uZWdvdGlhdGVkKQotCi0gICAgICAgIHNlbGYuY2xpZW50X3Jh
bmRvbSA9IHBlZXJfaGVsbG8ucmFuZG9tCi0gICAgICAgIHNlbGYuc2VydmVyX3JhbmRvbSA9IG9z
LnVyYW5kb20oMzIpCi0gICAgICAgIHNlbGYubGVnYWN5X3Nlc3Npb25faWQgPSBwZWVyX2hlbGxv
LmxlZ2FjeV9zZXNzaW9uX2lkCi0gICAgICAgIHNlbGYucmVjZWl2ZWRfZXh0ZW5zaW9ucyA9IHBl
ZXJfaGVsbG8ub3RoZXJfZXh0ZW5zaW9ucwotCi0gICAgICAgICMgc2VsZWN0IGtleSBzY2hlZHVs
ZQotICAgICAgICBwcmVfc2hhcmVkX2tleSA9IE5vbmUKLSAgICAgICAgaWYgKAotICAgICAgICAg
ICAgc2VsZi5nZXRfc2Vzc2lvbl90aWNrZXRfY2IgaXMgbm90IE5vbmUKLSAgICAgICAgICAgIGFu
ZCBwc2tfa2V5X2V4Y2hhbmdlX21vZGUgaXMgbm90IE5vbmUKLSAgICAgICAgICAgIGFuZCBwZWVy
X2hlbGxvLnByZV9zaGFyZWRfa2V5IGlzIG5vdCBOb25lCi0gICAgICAgICAgICBhbmQgbGVuKHBl
ZXJfaGVsbG8ucHJlX3NoYXJlZF9rZXkuaWRlbnRpdGllcykgPT0gMQotICAgICAgICAgICAgYW5k
IGxlbihwZWVyX2hlbGxvLnByZV9zaGFyZWRfa2V5LmJpbmRlcnMpID09IDEKLSAgICAgICAgKToK
LSAgICAgICAgICAgICMgYXNrIGFwcGxpY2F0aW9uIHRvIGZpbmQgc2Vzc2lvbiB0aWNrZXQKLSAg
ICAgICAgICAgIGlkZW50aXR5ID0gcGVlcl9oZWxsby5wcmVfc2hhcmVkX2tleS5pZGVudGl0aWVz
WzBdCi0gICAgICAgICAgICBzZXNzaW9uX3RpY2tldCA9IHNlbGYuZ2V0X3Nlc3Npb25fdGlja2V0
X2NiKGlkZW50aXR5WzBdKQotCi0gICAgICAgICAgICAjIHZhbGlkYXRlIHNlc3Npb24gdGlja2V0
Ci0gICAgICAgICAgICBpZiAoCi0gICAgICAgICAgICAgICAgc2Vzc2lvbl90aWNrZXQgaXMgbm90
IE5vbmUKLSAgICAgICAgICAgICAgICBhbmQgc2Vzc2lvbl90aWNrZXQuaXNfdmFsaWQKLSAgICAg
ICAgICAgICAgICBhbmQgc2Vzc2lvbl90aWNrZXQuY2lwaGVyX3N1aXRlID09IGNpcGhlcl9zdWl0
ZQotICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBzZWxmLmtleV9zY2hlZHVsZSA9IEtl
eVNjaGVkdWxlKGNpcGhlcl9zdWl0ZSkKLSAgICAgICAgICAgICAgICBzZWxmLmtleV9zY2hlZHVs
ZS5leHRyYWN0KHNlc3Npb25fdGlja2V0LnJlc3VtcHRpb25fc2VjcmV0KQotCi0gICAgICAgICAg
ICAgICAgYmluZGVyX2tleSA9IHNlbGYua2V5X3NjaGVkdWxlLmRlcml2ZV9zZWNyZXQoYiJyZXMg
YmluZGVyIikKLSAgICAgICAgICAgICAgICBiaW5kZXJfbGVuZ3RoID0gc2VsZi5rZXlfc2NoZWR1
bGUuYWxnb3JpdGhtLmRpZ2VzdF9zaXplCi0KLSAgICAgICAgICAgICAgICBoYXNoX29mZnNldCA9
IGlucHV0X2J1Zi50ZWxsKCkgLSBiaW5kZXJfbGVuZ3RoIC0gMwotICAgICAgICAgICAgICAgIGJp
bmRlciA9IGlucHV0X2J1Zi5kYXRhX3NsaWNlKAotICAgICAgICAgICAgICAgICAgICBoYXNoX29m
ZnNldCArIDMsIGhhc2hfb2Zmc2V0ICsgMyArIGJpbmRlcl9sZW5ndGgKLSAgICAgICAgICAgICAg
ICApCi0KLSAgICAgICAgICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS51cGRhdGVfaGFzaChpbnB1
dF9idWYuZGF0YV9zbGljZSgwLCBoYXNoX29mZnNldCkpCi0gICAgICAgICAgICAgICAgZXhwZWN0
ZWRfYmluZGVyID0gc2VsZi5rZXlfc2NoZWR1bGUuZmluaXNoZWRfdmVyaWZ5X2RhdGEoYmluZGVy
X2tleSkKLQotICAgICAgICAgICAgICAgIGlmIGJpbmRlciAhPSBleHBlY3RlZF9iaW5kZXI6Ci0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlIEFsZXJ0SGFuZHNoYWtlRmFpbHVyZSgiUFNLIHZhbGlk
YXRpb24gZmFpbGVkIikKLQotICAgICAgICAgICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLnVwZGF0
ZV9oYXNoKAotICAgICAgICAgICAgICAgICAgICBpbnB1dF9idWYuZGF0YV9zbGljZShoYXNoX29m
ZnNldCwgaGFzaF9vZmZzZXQgKyAzICsgYmluZGVyX2xlbmd0aCkKLSAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2Vzc2lvbl9yZXN1bWVkID0gVHJ1ZQotCi0gICAgICAg
ICAgICAgICAgIyBjYWxjdWxhdGUgZWFybHkgZGF0YSBrZXkKLSAgICAgICAgICAgICAgICBpZiBw
ZWVyX2hlbGxvLmVhcmx5X2RhdGE6Ci0gICAgICAgICAgICAgICAgICAgIGVhcmx5X2tleSA9IHNl
bGYua2V5X3NjaGVkdWxlLmRlcml2ZV9zZWNyZXQoYiJjIGUgdHJhZmZpYyIpCi0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuZWFybHlfZGF0YV9hY2NlcHRlZCA9IFRydWUKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi51cGRhdGVfdHJhZmZpY19rZXlfY2IoCi0gICAgICAgICAgICAgICAgICAgICAg
ICBEaXJlY3Rpb24uREVDUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIEVwb2NoLlpFUk9f
UlRULAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUuY2lwaGVyX3N1
aXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgZWFybHlfa2V5LAotICAgICAgICAgICAgICAg
ICAgICApCi0KLSAgICAgICAgICAgICAgICBwcmVfc2hhcmVkX2tleSA9IDAKLQotICAgICAgICAj
IGlmIFBTSyBpcyBub3QgdXNlZCwgaW5pdGlhbGl6ZSBrZXkgc2NoZWR1bGUKLSAgICAgICAgaWYg
cHJlX3NoYXJlZF9rZXkgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYua2V5X3NjaGVkdWxlID0g
S2V5U2NoZWR1bGUoY2lwaGVyX3N1aXRlKQotICAgICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUu
ZXh0cmFjdChOb25lKQotICAgICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUudXBkYXRlX2hhc2go
aW5wdXRfYnVmLmRhdGEpCi0KLSAgICAgICAgIyBwZXJmb3JtIGtleSBleGNoYW5nZQotICAgICAg
ICBwdWJsaWNfa2V5OiBVbmlvblsKLSAgICAgICAgICAgIGVjLkVsbGlwdGljQ3VydmVQdWJsaWNL
ZXksIHgyNTUxOS5YMjU1MTlQdWJsaWNLZXksIHg0NDguWDQ0OFB1YmxpY0tleQotICAgICAgICBd
Ci0gICAgICAgIHNoYXJlZF9rZXk6IE9wdGlvbmFsW2J5dGVzXSA9IE5vbmUKLSAgICAgICAgZm9y
IGtleV9zaGFyZSBpbiBwZWVyX2hlbGxvLmtleV9zaGFyZToKLSAgICAgICAgICAgIHBlZXJfcHVi
bGljX2tleSA9IGRlY29kZV9wdWJsaWNfa2V5KGtleV9zaGFyZSkKLSAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UocGVlcl9wdWJsaWNfa2V5LCB4MjU1MTkuWDI1NTE5UHVibGljS2V5KToKLSAgICAg
ICAgICAgICAgICBzZWxmLl94MjU1MTlfcHJpdmF0ZV9rZXkgPSB4MjU1MTkuWDI1NTE5UHJpdmF0
ZUtleS5nZW5lcmF0ZSgpCi0gICAgICAgICAgICAgICAgcHVibGljX2tleSA9IHNlbGYuX3gyNTUx
OV9wcml2YXRlX2tleS5wdWJsaWNfa2V5KCkKLSAgICAgICAgICAgICAgICBzaGFyZWRfa2V5ID0g
c2VsZi5feDI1NTE5X3ByaXZhdGVfa2V5LmV4Y2hhbmdlKHBlZXJfcHVibGljX2tleSkKLSAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBlZXJfcHVibGlj
X2tleSwgeDQ0OC5YNDQ4UHVibGljS2V5KToKLSAgICAgICAgICAgICAgICBzZWxmLl94NDQ4X3By
aXZhdGVfa2V5ID0geDQ0OC5YNDQ4UHJpdmF0ZUtleS5nZW5lcmF0ZSgpCi0gICAgICAgICAgICAg
ICAgcHVibGljX2tleSA9IHNlbGYuX3g0NDhfcHJpdmF0ZV9rZXkucHVibGljX2tleSgpCi0gICAg
ICAgICAgICAgICAgc2hhcmVkX2tleSA9IHNlbGYuX3g0NDhfcHJpdmF0ZV9rZXkuZXhjaGFuZ2Uo
cGVlcl9wdWJsaWNfa2V5KQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBlbGlm
IGlzaW5zdGFuY2UocGVlcl9wdWJsaWNfa2V5LCBlYy5FbGxpcHRpY0N1cnZlUHVibGljS2V5KToK
LSAgICAgICAgICAgICAgICBzZWxmLl9lY19wcml2YXRlX2tleSA9IGVjLmdlbmVyYXRlX3ByaXZh
dGVfa2V5KAotICAgICAgICAgICAgICAgICAgICBHUk9VUF9UT19DVVJWRVtrZXlfc2hhcmVbMF1d
KCksIGRlZmF1bHRfYmFja2VuZCgpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAg
IHB1YmxpY19rZXkgPSBzZWxmLl9lY19wcml2YXRlX2tleS5wdWJsaWNfa2V5KCkKLSAgICAgICAg
ICAgICAgICBzaGFyZWRfa2V5ID0gc2VsZi5fZWNfcHJpdmF0ZV9rZXkuZXhjaGFuZ2UoZWMuRUNE
SCgpLCBwZWVyX3B1YmxpY19rZXkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgYXNz
ZXJ0IHNoYXJlZF9rZXkgaXMgbm90IE5vbmUKLQotICAgICAgICAjIHNlbmQgaGVsbG8KLSAgICAg
ICAgaGVsbG8gPSBTZXJ2ZXJIZWxsbygKLSAgICAgICAgICAgIHJhbmRvbT1zZWxmLnNlcnZlcl9y
YW5kb20sCi0gICAgICAgICAgICBsZWdhY3lfc2Vzc2lvbl9pZD1zZWxmLmxlZ2FjeV9zZXNzaW9u
X2lkLAotICAgICAgICAgICAgY2lwaGVyX3N1aXRlPWNpcGhlcl9zdWl0ZSwKLSAgICAgICAgICAg
IGNvbXByZXNzaW9uX21ldGhvZD1jb21wcmVzc2lvbl9tZXRob2QsCi0gICAgICAgICAgICBrZXlf
c2hhcmU9ZW5jb2RlX3B1YmxpY19rZXkocHVibGljX2tleSksCi0gICAgICAgICAgICBwcmVfc2hh
cmVkX2tleT1wcmVfc2hhcmVkX2tleSwKLSAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9uPXN1
cHBvcnRlZF92ZXJzaW9uLAotICAgICAgICApCi0gICAgICAgIHdpdGggcHVzaF9tZXNzYWdlKHNl
bGYua2V5X3NjaGVkdWxlLCBpbml0aWFsX2J1Zik6Ci0gICAgICAgICAgICBwdXNoX3NlcnZlcl9o
ZWxsbyhpbml0aWFsX2J1ZiwgaGVsbG8pCi0gICAgICAgIHNlbGYua2V5X3NjaGVkdWxlLmV4dHJh
Y3Qoc2hhcmVkX2tleSkKLQotICAgICAgICBzZWxmLl9zZXR1cF90cmFmZmljX3Byb3RlY3Rpb24o
Ci0gICAgICAgICAgICBEaXJlY3Rpb24uRU5DUllQVCwgRXBvY2guSEFORFNIQUtFLCBiInMgaHMg
dHJhZmZpYyIKLSAgICAgICAgKQotICAgICAgICBzZWxmLl9zZXR1cF90cmFmZmljX3Byb3RlY3Rp
b24oCi0gICAgICAgICAgICBEaXJlY3Rpb24uREVDUllQVCwgRXBvY2guSEFORFNIQUtFLCBiImMg
aHMgdHJhZmZpYyIKLSAgICAgICAgKQotCi0gICAgICAgICMgc2VuZCBlbmNyeXB0ZWQgZXh0ZW5z
aW9ucwotICAgICAgICB3aXRoIHB1c2hfbWVzc2FnZShzZWxmLmtleV9zY2hlZHVsZSwgaGFuZHNo
YWtlX2J1Zik6Ci0gICAgICAgICAgICBwdXNoX2VuY3J5cHRlZF9leHRlbnNpb25zKAotICAgICAg
ICAgICAgICAgIGhhbmRzaGFrZV9idWYsCi0gICAgICAgICAgICAgICAgRW5jcnlwdGVkRXh0ZW5z
aW9ucygKLSAgICAgICAgICAgICAgICAgICAgYWxwbl9wcm90b2NvbD1zZWxmLmFscG5fbmVnb3Rp
YXRlZCwKLSAgICAgICAgICAgICAgICAgICAgZWFybHlfZGF0YT1zZWxmLmVhcmx5X2RhdGFfYWNj
ZXB0ZWQsCi0gICAgICAgICAgICAgICAgICAgIG90aGVyX2V4dGVuc2lvbnM9c2VsZi5oYW5kc2hh
a2VfZXh0ZW5zaW9ucywKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKQotCi0gICAg
ICAgIGlmIHByZV9zaGFyZWRfa2V5IGlzIE5vbmU6Ci0gICAgICAgICAgICAjIHNlbmQgY2VydGlm
aWNhdGUKLSAgICAgICAgICAgIHdpdGggcHVzaF9tZXNzYWdlKHNlbGYua2V5X3NjaGVkdWxlLCBo
YW5kc2hha2VfYnVmKToKLSAgICAgICAgICAgICAgICBwdXNoX2NlcnRpZmljYXRlKAotICAgICAg
ICAgICAgICAgICAgICBoYW5kc2hha2VfYnVmLAotICAgICAgICAgICAgICAgICAgICBDZXJ0aWZp
Y2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfY29udGV4dD1iIiIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZXM9WwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICh4LnB1YmxpY19ieXRlcyhFbmNvZGluZy5ERVIpLCBiIiIpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIHggaW4gW3NlbGYuY2VydGlmaWNhdGVdICsgc2VsZi5jZXJ0aWZp
Y2F0ZV9jaGFpbgotICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAg
ICAgKSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgc2VuZCBjZXJ0aWZpY2F0
ZSB2ZXJpZnkKLSAgICAgICAgICAgIHNpZ25hdHVyZSA9IHNlbGYuY2VydGlmaWNhdGVfcHJpdmF0
ZV9rZXkuc2lnbigKLSAgICAgICAgICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS5jZXJ0aWZpY2F0
ZV92ZXJpZnlfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgYiJUTFMgMS4zLCBzZXJ2ZXIgQ2Vy
dGlmaWNhdGVWZXJpZnkiCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAqc2ln
bmF0dXJlX2FsZ29yaXRobV9wYXJhbXMoc2lnbmF0dXJlX2FsZ29yaXRobSksCi0gICAgICAgICAg
ICApCi0gICAgICAgICAgICB3aXRoIHB1c2hfbWVzc2FnZShzZWxmLmtleV9zY2hlZHVsZSwgaGFu
ZHNoYWtlX2J1Zik6Ci0gICAgICAgICAgICAgICAgcHVzaF9jZXJ0aWZpY2F0ZV92ZXJpZnkoCi0g
ICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZV9idWYsCi0gICAgICAgICAgICAgICAgICAgIENl
cnRpZmljYXRlVmVyaWZ5KAotICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtPXNpZ25h
dHVyZV9hbGdvcml0aG0sIHNpZ25hdHVyZT1zaWduYXR1cmUKLSAgICAgICAgICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgIyBzZW5kIGZpbmlzaGVkCi0gICAgICAg
IHdpdGggcHVzaF9tZXNzYWdlKHNlbGYua2V5X3NjaGVkdWxlLCBoYW5kc2hha2VfYnVmKToKLSAg
ICAgICAgICAgIHB1c2hfZmluaXNoZWQoCi0gICAgICAgICAgICAgICAgaGFuZHNoYWtlX2J1ZiwK
LSAgICAgICAgICAgICAgICBGaW5pc2hlZCgKLSAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2Rh
dGE9c2VsZi5rZXlfc2NoZWR1bGUuZmluaXNoZWRfdmVyaWZ5X2RhdGEoc2VsZi5fZW5jX2tleSkK
LSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKQotCi0gICAgICAgICMgcHJlcGFyZSB0
cmFmZmljIGtleXMKLSAgICAgICAgYXNzZXJ0IHNlbGYua2V5X3NjaGVkdWxlLmdlbmVyYXRpb24g
PT0gMgotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS5leHRyYWN0KE5vbmUpCi0gICAgICAgIHNl
bGYuX3NldHVwX3RyYWZmaWNfcHJvdGVjdGlvbigKLSAgICAgICAgICAgIERpcmVjdGlvbi5FTkNS
WVBULCBFcG9jaC5PTkVfUlRULCBiInMgYXAgdHJhZmZpYyIKLSAgICAgICAgKQotICAgICAgICBz
ZWxmLl9uZXh0X2RlY19rZXkgPSBzZWxmLmtleV9zY2hlZHVsZS5kZXJpdmVfc2VjcmV0KGIiYyBh
cCB0cmFmZmljIikKLQotICAgICAgICAjIGFudGljaXBhdGUgY2xpZW50J3MgRklOSVNIRUQgYXMg
d2UgZG9uJ3QgdXNlIGNsaWVudCBhdXRoCi0gICAgICAgIHNlbGYuX2V4cGVjdGVkX3ZlcmlmeV9k
YXRhID0gc2VsZi5rZXlfc2NoZWR1bGUuZmluaXNoZWRfdmVyaWZ5X2RhdGEoCi0gICAgICAgICAg
ICBzZWxmLl9kZWNfa2V5Ci0gICAgICAgICkKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5
PTY0KQotICAgICAgICBwdXNoX2ZpbmlzaGVkKGJ1ZiwgRmluaXNoZWQodmVyaWZ5X2RhdGE9c2Vs
Zi5fZXhwZWN0ZWRfdmVyaWZ5X2RhdGEpKQotICAgICAgICBzZWxmLmtleV9zY2hlZHVsZS51cGRh
dGVfaGFzaChidWYuZGF0YSkKLQotICAgICAgICAjIGNyZWF0ZSBhIG5ldyBzZXNzaW9uIHRpY2tl
dAotICAgICAgICBpZiBzZWxmLm5ld19zZXNzaW9uX3RpY2tldF9jYiBpcyBub3QgTm9uZSBhbmQg
cHNrX2tleV9leGNoYW5nZV9tb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fbmV3
X3Nlc3Npb25fdGlja2V0ID0gTmV3U2Vzc2lvblRpY2tldCgKLSAgICAgICAgICAgICAgICB0aWNr
ZXRfbGlmZXRpbWU9ODY0MDAsCi0gICAgICAgICAgICAgICAgdGlja2V0X2FnZV9hZGQ9c3RydWN0
LnVucGFjaygiSSIsIG9zLnVyYW5kb20oNCkpWzBdLAotICAgICAgICAgICAgICAgIHRpY2tldF9u
b25jZT1iIiIsCi0gICAgICAgICAgICAgICAgdGlja2V0PW9zLnVyYW5kb20oNjQpLAotICAgICAg
ICAgICAgICAgIG1heF9lYXJseV9kYXRhX3NpemU9c2VsZi5fbWF4X2Vhcmx5X2RhdGEsCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgc2VuZCBtZXNzc2FnZQotICAgICAgICAgICAgcHVz
aF9uZXdfc2Vzc2lvbl90aWNrZXQob25lcnR0X2J1Ziwgc2VsZi5fbmV3X3Nlc3Npb25fdGlja2V0
KQotCi0gICAgICAgICAgICAjIG5vdGlmeSBhcHBsaWNhdGlvbgotICAgICAgICAgICAgdGlja2V0
ID0gc2VsZi5fYnVpbGRfc2Vzc2lvbl90aWNrZXQoc2VsZi5fbmV3X3Nlc3Npb25fdGlja2V0KQot
ICAgICAgICAgICAgc2VsZi5uZXdfc2Vzc2lvbl90aWNrZXRfY2IodGlja2V0KQotCi0gICAgICAg
IHNlbGYuX3NldF9zdGF0ZShTdGF0ZS5TRVJWRVJfRVhQRUNUX0ZJTklTSEVEKQotCi0gICAgZGVm
IF9zZXJ2ZXJfaGFuZGxlX2ZpbmlzaGVkKHNlbGYsIGlucHV0X2J1ZjogQnVmZmVyLCBvdXRwdXRf
YnVmOiBCdWZmZXIpIC0+IE5vbmU6Ci0gICAgICAgIGZpbmlzaGVkID0gcHVsbF9maW5pc2hlZChp
bnB1dF9idWYpCi0KLSAgICAgICAgIyBjaGVjayB2ZXJpZnkgZGF0YQotICAgICAgICBpZiBmaW5p
c2hlZC52ZXJpZnlfZGF0YSAhPSBzZWxmLl9leHBlY3RlZF92ZXJpZnlfZGF0YToKLSAgICAgICAg
ICAgIHJhaXNlIEFsZXJ0RGVjcnlwdEVycm9yCi0KLSAgICAgICAgIyBjb21taXQgdHJhZmZpYyBr
ZXkKLSAgICAgICAgc2VsZi5fZGVjX2tleSA9IHNlbGYuX25leHRfZGVjX2tleQotICAgICAgICBz
ZWxmLl9uZXh0X2RlY19rZXkgPSBOb25lCi0gICAgICAgIHNlbGYudXBkYXRlX3RyYWZmaWNfa2V5
X2NiKAotICAgICAgICAgICAgRGlyZWN0aW9uLkRFQ1JZUFQsCi0gICAgICAgICAgICBFcG9jaC5P
TkVfUlRULAotICAgICAgICAgICAgc2VsZi5rZXlfc2NoZWR1bGUuY2lwaGVyX3N1aXRlLAotICAg
ICAgICAgICAgc2VsZi5fZGVjX2tleSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuX3NldF9z
dGF0ZShTdGF0ZS5TRVJWRVJfUE9TVF9IQU5EU0hBS0UpCi0KLSAgICBkZWYgX3NldHVwX3RyYWZm
aWNfcHJvdGVjdGlvbigKLSAgICAgICAgc2VsZiwgZGlyZWN0aW9uOiBEaXJlY3Rpb24sIGVwb2No
OiBFcG9jaCwgbGFiZWw6IGJ5dGVzCi0gICAgKSAtPiBOb25lOgotICAgICAgICBrZXkgPSBzZWxm
LmtleV9zY2hlZHVsZS5kZXJpdmVfc2VjcmV0KGxhYmVsKQotCi0gICAgICAgIGlmIGRpcmVjdGlv
biA9PSBEaXJlY3Rpb24uRU5DUllQVDoKLSAgICAgICAgICAgIHNlbGYuX2VuY19rZXkgPSBrZXkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2RlY19rZXkgPSBrZXkKLQotICAgICAg
ICBzZWxmLnVwZGF0ZV90cmFmZmljX2tleV9jYigKLSAgICAgICAgICAgIGRpcmVjdGlvbiwgZXBv
Y2gsIHNlbGYua2V5X3NjaGVkdWxlLmNpcGhlcl9zdWl0ZSwga2V5Ci0gICAgICAgICkKLQotICAg
IGRlZiBfc2V0X3N0YXRlKHNlbGYsIHN0YXRlOiBTdGF0ZSkgLT4gTm9uZToKLSAgICAgICAgaWYg
c2VsZi5fX2xvZ2dlcjoKLSAgICAgICAgICAgIHNlbGYuX19sb2dnZXIuZGVidWcoIlRMUyAlcyAt
PiAlcyIsIHNlbGYuc3RhdGUsIHN0YXRlKQotICAgICAgICBzZWxmLnN0YXRlID0gc3RhdGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy9zcmMvYWlvcXVpYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmQ0YjBjZWU0NjYxMzQyZmVlNGVjMDMxYzA2MmY5MzU3NDcwYzVlMi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3Jj
L2Fpb3F1aWMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvc3JjL2Fpb3F1aWMvX2J1ZmZlci5jCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19idWZm
ZXIucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3NyYy9haW9xdWljL19jcnlwdG8uYwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy9zcmMvYWlvcXVpYy9fY3J5cHRvLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9hYm91
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9zcmMvYWlvcXVpYy9idWZmZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
c3JjL2Fpb3F1aWMvcHkudHlwZWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvc3JjL2Fpb3F1aWMvdGxzLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL19faW5pdF9fLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5
dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL2luaXRpYWxfY2xp
ZW50LmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9pbml0aWFsX2NsaWVudC5iaW4KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkN2I3MDU1Y2RhYWNhOTVlZmZiOTNlNTE5ZWNlNWUzZWQ1
M2NkNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTI4MAp6Y21WK2IxXkBjWXt7
UjNQMiEpRnxIajlvdFpVNnY4PyM0OGlCQG4jPlgtXmw7S2g9OXU9aSVrQiRFJS1FWWJnd2MKem82
blhwLVhjUzRtPntaJE9fcSZlUG5sT3ItXm1MWEloeTVFPUVXMlMwYzJlZ09FWU5RckhSJEcjTVMm
TlM7WiVfCnpYc2lkOHhCWlFWeWYwMmlwO0BJNlp0Yj5aeklvI2YxVj1Pcj1EczYyV2hBQkdRYV5C
Wl9ibkpaQXhpe2pZeGEqTAp6dX11KUI/dF56RDF1djBRPFQ7NlF6cjh7biV6KWctMD5AV3s8ZEEm
cCZXdWtHcXd3JWA2e2E9KytpYihrKzlSKmUKeipPNnx1SyF9djJwXnh+TXhAfFQ/MmdzcGQ2cl5+
WkkqWjZsX3BUd1NPVUxvVHIhX2E/bUhGLWdJaGBAd0AqbiV+CnpZJmtZTzJyfUJzKXxVcjxpMiM2
TSZxJGxkZypCOUtAX0dtQytEaTduWndMbEAlOGwoZUpzWU03KTIwJnU0ejc/Ugp6czwkO1J0diNM
PVh9TX0kOF8rKThUfkpEWDwoUWo5YFRzaFI3NHk7aGhQSnVUVHBsVCsqP2B3Nj5zWmpzZXRzUzcK
ejBicDY3Sy00a2RDY1c2cExVQFpCQ2Vge3MwQ1J0JGZvU1pgSHlUaSM7cVhUYSt0UkB8Q1IkbU9i
QVlaeXhoQnF0CnpEM29ZKDVpcGFXJU0jQlk3cXZZVzVaQCsjbnd4LU03KmZweSNvKjc8bSshY2xq
PkhYUD1OUX42JmlyZGIrTEt2Nwp6ZWdkMEVCfXRQJF5WTTs3eH50ZjVmJF94KjNOJHdYYWVDSXFH
VVR+UXtHYl54Y3dRP2UxJGo+OVdUUWMzVT0pQncKentKfEleJXw9VkJPcXBscmZ3ZlZENzhJYG03
PGVeRiYjZl4ybT9LdFp0d2F4ME1QYDdBbGFwTitVOz8jQUomaXpOCnpyWiNTRThBQUgjJUp1cCk3
dG9GZmA+LWhkZTtqcVhnTEo4dmA+SXl6SUh9MSVxcjtWaj82WEVCWm0pVTU8RlNBTAp6PWFuMlkk
MFJDTVdSP0BhNkxaSElFcHFRfnJxd1hXdig5fW52MWk8PWIheFN+SyV4a1lMYHNmUE1sbnw5OHk9
Y2oKej92Z1ZCYV8wUm9HdWEtQE5xTiRvb2hXeTt6UkZyXkxWUVBHVF5wbzQ7ViY0OyNNaENgWVE4
aG53MW82TldmKjheCnolUX4tWll4ZypPaVZCV0kmN0h0NSU2X1MpdEY5VWo3TyNBMlNPSmVHRWZj
Qjc2S0FMS0xkJDFpUzd4UVM7KEA1Wgp6ZEBlYlBzTldxS0dgRDxmLXxqcUYoJVFJTns2MSVyMCtK
flglM2VXbUNTfGhoTFJ8JGNYcns/QzxXVHs8PzE8Tl4KelZ2SSpQX0t4YFl2aVR8eFFgSXd6cCtH
QWU4WXhVZVZ0WiRjP25lTTlROylAS05fZVM4X2ZsNEtyRVVTeGhffWxoCnp1SD9id0ZWJTY5eyF7
SXJCQi1uMXpqUkF2U3EkYHowJUptYkU/JDV0ITw2b1IpI3B6I0lLLVZfR0N8Jl5OfWduSQp6dG5K
cyYmdnl2bVdiYyZVR0NOV3BfeEJDKHlnM1NoOX1QUWpkUihLcz57a30/YSZ8Jl8xXjsoSmVATT5e
dXZoM1YKemZLNHs9cGM5Z01oPmx9PGt6a2VQWENIZDtIWSlUfiRzU2BlJFRfLVpASncpMXh+aTJy
UiRsUmAoJWFoflZEOCo2Cnp0b2opUnhubSZtaCN5ZipGLTx4MWhuSUE2KX1tYklsYUJYbWlUdE8o
akgpNHpjSHQzWUVTSUg7fDFQeDt0PW84aQp6KDhyPCVUd2w1TlM5aSZZfDlAPUcpb01wJWxqK2RR
bUgkK2Zna0V8O0dBPnVfMnl1QDxsWjZkXm52bUdsSG83PCMKenY3bSR9cFFhZGdGe0cpQyoqclNv
N2hWS3F3NTRfWC1IazcjYm9fZHlIWEh2emdDeWoySHpNfUdvKz8oMio5bjErCnpFSHB6OXlge3tk
UTw/XyRFZ19Te2llRzQxQ2M/U157R0JuWSFEZj91VldUITNJfCpANFVJP3cmdD9IQGNDc3g2ZQpx
KXleWjUzYGFCYlUlKEtWbTJkJW55P24yYW16Yih8VUMqOVJjVmNOT3k3TCNJPEFiNjN6SHxvdwoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9pbml0aWFsX3NlcnZlci5iaW4gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvaW5pdGlhbF9zZXJ2ZXIuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3NWJiYjljMGFmZjg5NDc0ZmQ3MDIxZjZlMWI0NGUwNWJhMWExYzQ3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDIwMgp6Y21WOyowNSQpP3t7UjNQMDA8ZGVYZiNlSilP
aTN2eFZxWVBxdDxHPWVzV0tQbnxBdVNWSz82eXdSNWUwVT11PDMKekZyI0VVOXV7bjxXQlAoT0U/
ZXlObDcmRm5MQ1dhZlUwcGBHS29WTTtPV1RLc1l+IzJ9OWZDZnJEZXRGUDk8SEl8CnplYzREfmtj
elJnJFV2PWdZPX56UjliYE9VWD90X2hBeyVBZzxGVyZIKCE4ITYmP15fdXF3bElBeGZaN1Y2P0sm
egp6KVBKSlI0dnxGPDdpVyp0Z0tyPTB1XkhTTlVPT0Yjdn1LUW9nJCglbkZFMXRYcn44JEl1b0Uq
NFF2dkcjRmVHPmIKRWNlNzdsSk9CVXkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
cHljYWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3B5Y2FjZXJ0LnBlbQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzMxNTBjOTYwZjM1ODE0ZGVmMmMyYmM1ZmFmN2JkZmViOGRh
YjMwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvcHljYWNlcnQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBA
QAotQ2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAg
ICAgICBTZXJpYWwgTnVtYmVyOgotICAgICAgICAgICAgY2I6MmQ6ODA6OTk6NWE6Njk6NTI6NWIK
LSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAgICAg
ICBJc3N1ZXI6IEM9WFksIE89UHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24gQ0EsIENOPW91ci1j
YS1zZXJ2ZXIKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEF1ZyAy
OSAxNDoyMzoxNiAyMDE4IEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogQXVnIDI2IDE0OjIz
OjE2IDIwMjggR01UCi0gICAgICAgIFN1YmplY3Q6IEM9WFksIE89UHl0aG9uIFNvZnR3YXJlIEZv
dW5kYXRpb24gQ0EsIENOPW91ci1jYS1zZXJ2ZXIKLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5
IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgot
ICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgzMDcyIGJpdCkKLSAgICAgICAgICAgICAgICBN
b2R1bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDo5NzplZDo1NTo0MTpiYTozNjoxNzo5NTpk
Yjo3MToxYzpkMzplMTo2MToKLSAgICAgICAgICAgICAgICAgICAgYWM6NTg6NzM6ZTM6YzY6OTY6
Y2Y6MmI6MWY6Yjg6MDg6ZjU6OWQ6NGI6NGI6Ci0gICAgICAgICAgICAgICAgICAgIGM3OjMwOmY2
OmI4OjBiOmIzOjUyOjcyOmEwOmJiOmM5OjRkOjNiOjhlOmRmOgotICAgICAgICAgICAgICAgICAg
ICAyMjo4ZTowMTo1Nzo4MTpjOTo5Mjo3MzpjYzowMDpjNjplYzo3MDpiMDozYToKLSAgICAgICAg
ICAgICAgICAgICAgMTc6NDA6YzE6ZGY6ZjI6OGM6MzY6NGM6YzQ6YTc6ODE6ZTc6YjY6MjQ6Njg6
Ci0gICAgICAgICAgICAgICAgICAgIGUyOmEwOjdlOjM1OjA3OjJmOmEwOjViOmY5OjQ1OjQ2OmY3
OjFlOmYwOjQ2OgotICAgICAgICAgICAgICAgICAgICAxMTpmZTpjYToxYTozYzo1MDpmMToyNjph
OTo1Zjo5YzoyMjo5YzpmODo0MToKLSAgICAgICAgICAgICAgICAgICAgZTE6ZGY6NGY6MTI6OTU6
MTk6MmY6NWM6OTA6MDE6MTc6NmU6N2U6M2U6N2Q6Ci0gICAgICAgICAgICAgICAgICAgIGNmOmU5
OjA5OmFmOjI1OmY4OmY4OjQyOjc3OjJkOjZkOjVmOjM2OmYyOjc4OgotICAgICAgICAgICAgICAg
ICAgICAxZTo3ZDo0YTo4Nzo2ODo2Mzo2YzowNjo3MToxYjo4ZDpmYToyNTpmZTpkNDoKLSAgICAg
ICAgICAgICAgICAgICAgZDM6ZjU6YTU6MTc6YjE6ZWY6ZWE6MTc6Y2I6NTQ6Yzg6Mjc6OTk6ODA6
Y2I6Ci0gICAgICAgICAgICAgICAgICAgIDNjOjQ1OmYxOjJjOjUyOjFjOmRkOjFmOjUxOjQ1OjIw
OjUwOjFlOjVlOmFiOgotICAgICAgICAgICAgICAgICAgICA1Nzo3MzoxYjo0MTo3ODo5NjpkZTo4
NDphNDo3YTpkZDo4ZjozMDo4NTozNjoKLSAgICAgICAgICAgICAgICAgICAgNTg6Nzk6NzY6YTA6
ZDI6NjE6Yzg6MWI6YTk6OTQ6OTk6NjM6YzY6ZWU6Zjg6Ci0gICAgICAgICAgICAgICAgICAgIDE0
OmJmOmI0OjUyOjU2OjMxOjk3OmZhOmViOmFjOjUzOjllOjk1OmNlOjRjOgotICAgICAgICAgICAg
ICAgICAgICBjNDo1YTo0YTpiNzpjYTowMzoyNzo1YjozNTo1NzpjZTowMjpkYzplYzpjYToKLSAg
ICAgICAgICAgICAgICAgICAgNjk6Zjg6OGE6NWE6Mzk6Y2I6MTY6MjA6MTU6MDM6MjQ6NjE6NmM6
ZjQ6N2E6Ci0gICAgICAgICAgICAgICAgICAgIGZjOmI2OjQ4OmU1OjU5OjEwOjVjOjQ5OmQwOjIz
OjlmOmZiOjcxOjVlOjNhOgotICAgICAgICAgICAgICAgICAgICBlOTo2ODo5ZjozNDo3Mjo4MDoy
NzpiNjozZjo0YzpiMTpkOTpkYjo2Mzo3ZjoKLSAgICAgICAgICAgICAgICAgICAgNjc6Njg6NGE6
NmU6MTE6Zjg6ZTg6YzA6ZjQ6NWE6MTY6Mzk6NTM6MGI6Njg6Ci0gICAgICAgICAgICAgICAgICAg
IGRlOjc3OmZhOjQ1OmU3OmY4OjkxOmNkOjc4OmNkOjI4Ojk0Ojk3OjcxOjU0OgotICAgICAgICAg
ICAgICAgICAgICBmYjpjZjpmMDozNzpkZTpjOToyNjpjNTpkYzoxYjo5ZTo4OTo2ZDowOTphYzoK
LSAgICAgICAgICAgICAgICAgICAgYzg6NDQ6NzE6Y2I6NmQ6ZjE6OTc6MzE6ZDU6NGM6MjA6MzM6
YmY6NzU6NGE6Ci0gICAgICAgICAgICAgICAgICAgIGEwOmUwOmRjOjY5OjExOmVkOjJhOmI0OjY0
OjEwOjExOjMwOjhiOjBlOmIwOgotICAgICAgICAgICAgICAgICAgICBhNzoxMDpkODo4YTpjNTph
YToxYjpjODoyNjo4YToyNTplNzo2Njo5ZjphNToKLSAgICAgICAgICAgICAgICAgICAgNmE6MWE6
MmY6N2M6NWY6ODM6YzY6Nzg6NGY6MWYKLSAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1Mzcg
KDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgotICAgICAgICAgICAgWDUwOXYz
IFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIEREOkJGOkNBOkRBOkU2
OkQxOjM0OkJBOjM3Ojc1OjIxOkNBOjZGOjlBOjA4OjI4OkYyOjM1OkI2OjQ4Ci0gICAgICAgICAg
ICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlp
ZDpERDpCRjpDQTpEQTpFNjpEMTozNDpCQTozNzo3NToyMTpDQTo2Rjo5QTowODoyODpGMjozNTpC
Njo0OAotCi0gICAgICAgICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAotICAgICAgICAg
ICAgICAgIENBOlRSVUUKLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5j
cnlwdGlvbgotICAgICAgICAgMzM6NmE6NTQ6ZDM6NmI6YzA6ZDc6MDE6NWY6OWQ6ZjQ6MDU6YzE6
OTM6NjY6OTA6NTA6ZDA6Ci0gICAgICAgICBiNzoxODplOTpiMDoxZTo0YTphMDpiNjpkYTo3Njo5
MzphZjo4NDpkYjphZDoxNTo1NDozMToKLSAgICAgICAgIDE1OjEzOmU0OmRlOjdlOjRlOjBjOmQ1
OjA5OjFjOjM0OjM1OmI2OmU1OjRjOmQ2OjZmOjY1OgotICAgICAgICAgN2Q6MzI6NWY6ZWI6ZmM6
YTk6NmI6MDc6Zjc6NDk6ODI6ZTU6ODE6N2U6MDc6ODA6OWE6NjM6Ci0gICAgICAgICBmODoyYzpj
Mzo0MDpiYzo4ZjpkNDoyYTpkYTozZTpkMTplZTowODpiNzo0ZDphNzo4NDpjYToKLSAgICAgICAg
IGY0OjNmOmExOjk4OjQ1OmJlOmIxOjA1OjY5OmU3OmRmOmQ3Ojk5OmFiOjFiOmVlOjhiOjMwOgot
ICAgICAgICAgY2M6Zjc6ZmM6ZTc6ZDQ6MGI6MTc6YWU6OTc6YmY6ZTQ6N2I6ZmQ6MGY6YTc6YjQ6
ODU6Nzk6Ci0gICAgICAgICBlMzo1OTplMjoxNjo4NzpiZjoxZjoyOTo0NToyYzoyMzo5Mzo3Njpi
ZTpjMDo4NzoxZDpkZToKLSAgICAgICAgIGVjOjJiOjQyOjZhOmU1OmJiOmM4OmY0OjBhOjRhOjA4
OjBhOjhjOjVjOmQ4OjdkOjRkOmQxOgotICAgICAgICAgYjg6YmY6ZDU6Zjc6Mjk6ZWQ6OTI6ZDE6
OTQ6MDQ6ZTg6MzU6MDY6NTc6N2Y6MmM6MjM6OTc6Ci0gICAgICAgICA4NzphNTozNTo4ZDoyNjpk
MzoxYTo0NzpmMjoxNjpkNzpkOTpjNjpkNDoxZjoyMzo0MzpkMzoKLSAgICAgICAgIDI2Ojk5OjM5
OmNhOjIwOmY0OjcxOjIzOjZmOjBjOjRhOjc2Ojc2OmY3Ojc2OjFmOmIzOmZlOgotICAgICAgICAg
YmY6NDc6YjA6ZmM6MmE6NTY6ODE6ZTE6ZDI6ZGQ6ZWU6MDg6ZDg6ZjQ6ZmY6NWE6ZGM6MjU6Ci0g
ICAgICAgICA2MTo4YTo5MTowMjpiOTo4NjoxYzpmMjo1MDo3Mzo3NjoyNTozNTpmYzpiNjoyNToy
NjoxNToKLSAgICAgICAgIGNiOmViOmM0OjJiOjYxOjBjOjFjOmU3OmVlOjJmOjE3OjliOmVjOmYw
OmQ0OmExOjg0OmU3OgotICAgICAgICAgZDI6YWY6ZGU6ZTQ6MWI6MjQ6MTQ6YTc6MDE6ODc6ZTM6
YWI6Mjk6NTg6NDY6YTA6ZDk6YzA6Ci0gICAgICAgICAwYTplMDo4ZDpkNzo1OTpkMzoxYjpmODo1
NDoyMDozZTo3ODphNTphNTpjODo0Zjo4YjowMzoKLSAgICAgICAgIGM0Ojk2OjlmOmVjOmZiOjQ3
OmNmOjc2OjJkOjhkOjY1OjM0OjI3OmJmOmZhOmFlOjAxOjA1OgotICAgICAgICAgOGE6ZjM6OTI6
MGE6ZGQ6ODk6NmM6OTc6YTE6Yzc6ZTc6NjA6NTE6ZTc6YWM6ZWI6NGI6N2Q6Ci0gICAgICAgICAy
YzpiODo2NTpjOTpmZTo1ZDo2YTo0ODo1NTo4ZTplNDpjNzpmOTo2YTo0MDplMTpiODo2NDoKLSAg
ICAgICAgIDQ1OmU5OmI1OjU5OjI5OmE1OjVmOmNmOjdkOjU4OjdkOjY0Ojc5OmU1OmE0OjA5OmFj
OjFlOgotICAgICAgICAgNzY6NjU6M2Q6OTQ6YzQ6NjgKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUt
LS0tLQotTUlJRWJUQ0NBdFdnQXdJQkFnSUpBTXN0Z0psYWFWSmJNQTBHQ1NxR1NJYjNEUUVCQ3dV
QU1FMHhDekFKQmdOVgotQkFZVEFsaFpNU1l3SkFZRFZRUUtEQjFRZVhSb2IyNGdVMjltZEhkaGNt
VWdSbTkxYm1SaGRHbHZiaUJEUVRFVwotTUJRR0ExVUVBd3dOYjNWeUxXTmhMWE5sY25abGNqQWVG
dzB4T0RBNE1qa3hOREl6TVRaYUZ3MHlPREE0TWpZeAotTkRJek1UWmFNRTB4Q3pBSkJnTlZCQVlU
QWxoWk1TWXdKQVlEVlFRS0RCMVFlWFJvYjI0Z1UyOW1kSGRoY21VZwotUm05MWJtUmhkR2x2YmlC
RFFURVdNQlFHQTFVRUF3d05iM1Z5TFdOaExYTmxjblpsY2pDQ0FhSXdEUVlKS29aSQotaHZjTkFR
RUJCUUFEZ2dHUEFEQ0NBWW9DZ2dHQkFKZnRWVUc2TmhlVjIzRWMwK0ZockZoejQ4YVd6eXNmdUFq
MQotblV0THh6RDJ1QXV6VW5LZ3U4bE5PNDdmSW80QlY0SEprblBNQU1ic2NMQTZGMERCMy9LTU5r
ekVwNEhudGlSbwotNHFCK05RY3ZvRnY1UlViM0h2QkdFZjdLR2p4UThTYXBYNXdpblBoQjRkOVBF
cFVaTDF5UUFSZHVmajU5eitrSgotcnlYNCtFSjNMVzFmTnZKNEhuMUtoMmhqYkFaeEc0MzZKZjdV
MC9XbEY3SHY2aGZMVk1nbm1ZRExQRVh4TEZJYwotM1I5UlJTQlFIbDZyVjNNYlFYaVczb1NrZXQy
UE1JVTJXSGwyb05KaHlCdXBsSmxqeHU3NEZMKzBVbFl4bC9ycgotckZPZWxjNU14RnBLdDhvREox
czFWODRDM096S2FmaUtXam5MRmlBVkF5UmhiUFI2L0xaSTVWa1FYRW5RSTUvNwotY1Y0NjZXaWZO
SEtBSjdZL1RMSFoyMk4vWjJoS2JoSDQ2TUQwV2hZNVV3dG8zbmY2UmVmNGtjMTR6U2lVbDNGVQot
Kzgvd045N0pKc1hjRzU2SmJRbXN5RVJ4eTIzeGx6SFZUQ0F6djNWS29PRGNhUkh0S3JSa0VCRXdp
dzZ3cHhEWQotaXNXcUc4Z21paVhuWnArbGFob3ZmRitEeG5oUEh3SURBUUFCbzFBd1RqQWRCZ05W
SFE0RUZnUVUzYi9LMnViUgotTkxvM2RTSEtiNW9JS1BJMXRrZ3dId1lEVlIwakJCZ3dGb0FVM2Iv
SzJ1YlJOTG8zZFNIS2I1b0lLUEkxdGtndwotREFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3
MEJBUXNGQUFPQ0FZRUFNMnBVMDJ2QTF3RmZuZlFGd1pObQota0ZEUXR4anBzQjVLb0xiYWRwT3Zo
TnV0RlZReEZSUGszbjVPRE5VSkhEUTF0dVZNMW05bGZUSmY2L3lwYXdmMwotU1lMbGdYNEhnSnBq
K0N6RFFMeVAxQ3JhUHRIdUNMZE5wNFRLOUQraG1FVytzUVZwNTkvWG1hc2I3b3N3elBmOAotNTlR
TEY2Nlh2K1I3L1ErbnRJVjU0MW5pRm9lL0h5bEZMQ09UZHI3QWh4M2U3Q3RDYXVXN3lQUUtTZ2dL
akZ6WQotZlUzUnVML1Y5eW50a3RHVUJPZzFCbGQvTENPWGg2VTFqU2JUR2tmeUZ0Zlp4dFFmSTBQ
VEpwazV5aUQwY1NOdgotREVwMmR2ZDJIN1ArdjBldy9DcFdnZUhTM2U0STJQVC9XdHdsWVlxUkFy
bUdIUEpRYzNZbE5meTJKU1lWeSt2RQotSzJFTUhPZnVMeGViN1BEVW9ZVG4wcS9lNUJza0ZLY0Jo
K09yS1ZoR29ObkFDdUNOMTFuVEcvaFVJRDU0cGFYSQotVDRzRHhKYWY3UHRIejNZdGpXVTBKNy82
cmdFRml2T1NDdDJKYkplaHgrZGdVZWVzNjB0OUxMaGx5ZjVkYWtoVgotanVUSCtXcEE0YmhrUmVt
MVdTbWxYODk5V0gxa2VlV2tDYXdlZG1VOWxNUm8KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9yZXRyeS5iaW4gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvcmV0cnkuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjNiZDQ5ODFh
NGE2NTk2YjUwZWM2NWVkYmQ1MWIwYjRjYTNiZWU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgps
aXRlcmFsIDEyNQp6Y21WLUAwRH1NVXt7UjNQMjxnI0Eqd0lYfmp1SHpCQVg7UlAmd3wpcjV7cVpN
O0RBJStMXiptail8ZmR3Nkg1ckcKekdJTXhZXmhWUkYtMm0tQFIxQSVjO2N9MnxLNigpd1AoUE9g
eFJRPV9ERVgqck1TPVAydzk3a0YhaD5jV2cpbnApCmZuSGV0U1gleGpgWF8pS307aUplNWQ0OGs7
ej5tcXBMWmFDWDl9aFo/CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Nob3J0X2hl
YWRlci5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvc2hvcnRfaGVhZGVyLmJpbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjgzNjgzZDJkNWI1NTVkOWIwMjMxOTk5MDJmY2VlNTdkMWI1
OTM3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvc2hvcnRfaGVhZGVyLmJpbgorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLV30Wqe1nA4a1uZo9TBM1P0fs3mTJwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xfY2VydC5wZW0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvc3NsX2NlcnQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjcxMjdh
NGIwMjVhYTIzMzIzMTkzZjA2Y2YxNzczYTU2MGUzODEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xfY2VydC5wZW0K
KysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0t
LS0KLU1JSUY4VENDQkZtZ0F3SUJBZ0lKQU1zdGdKbGFhVkpjTUEwR0NTcUdTSWIzRFFFQkN3VUFN
RTB4Q3pBSkJnTlYKLUJBWVRBbGhaTVNZd0pBWURWUVFLREIxUWVYUm9iMjRnVTI5bWRIZGhjbVVn
Um05MWJtUmhkR2x2YmlCRFFURVcKLU1CUUdBMVVFQXd3TmIzVnlMV05oTFhObGNuWmxjakFlRncw
eE9EQTRNamt4TkRJek1UWmFGdzB5T0RBM01EY3gKLU5ESXpNVFphTUY4eEN6QUpCZ05WQkFZVEFs
aFpNUmN3RlFZRFZRUUhEQTVEWVhOMGJHVWdRVzUwYUhKaGVERWoKLU1DRUdBMVVFQ2d3YVVIbDBh
Rzl1SUZOdlpuUjNZWEpsSUVadmRXNWtZWFJwYjI0eEVqQVFCZ05WQkFNTUNXeHYKLVkyRnNhRzl6
ZERDQ0FhSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnR1BBRENDQVlvQ2dnR0JBSjhvTHpkQjczOWsK
LVl4WmlGdWtCRkdJcHlqcVlrajBJMDE1cC9zRHoxTVQ3RGxqY1pMQkx5N09xbmtMcEI1dG5NODI1
NkR3ZGloUEEKLTN6bG5mRXpUZnI5REQwcUZCVzJINWNNQ296N1gxN2tvZVJoekdEZDNka2pVZUJq
WHZSNXFSb3NHOHdNM2xRdWcKLVU3QWl6WSszQXphajF5TjNtWjlLNWEyMGpyNThLcWlueitYeHg2
c2IySmZZWWZmMm5lSmJCYWhObTVpZDBBRDIKLXBpL1R0aFpxTzVEVVJKWW8rTWRnWk9jeSs3akVq
T0pzTFdaZDNZenE3OGlNMDdxRGpicElvVnBFTlpDVEhUV0EKLWhYOExJcXowT0JtaDR3ZVFwbTQr
cGxVN0U0cjREODJ1YXVvY1d3OGl5dXpuQ1R0QUJXTzduOWZXeVNtZjlRWkMKLVdZeEhBRnBCUXM2
elVWcUFEN25oRmRUcXBROWJSaWFFbmpFNEhpQWNjUFcrTUFvU3hGbnYvck56RXpJNmI0elUKLU5z
cEZNZmcxYU5WYW1kanhkcFVaMUdHMU9rZjB5UEp5a3FFWDRQWmwzTGExQmUycTdZWjF3eWRSNTIz
WGQrZjMKLUVPNC9nK2ltRVRTS244Z3lDZjZSdmliMTc1TDRyMldWMUNYUUg3Z0Z3WllDb2Q2V0hZ
cTVUUUlEQVFBQm80SUIKLXdEQ0NBYnd3RkFZRFZSMFJCQTB3QzRJSmJHOWpZV3hvYjNOME1BNEdB
MVVkRHdFQi93UUVBd0lGb0RBZEJnTlYKLUhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVI
QXdJd0RBWURWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEUKLUZnUVVqK29kNHpOY0FCYXppMjlyYjlO
TXk3WExmRlV3ZlFZRFZSMGpCSFl3ZElBVTNiL0sydWJSTkxvM2RTSEsKLWI1b0lLUEkxdGtpaFVh
UlBNRTB4Q3pBSkJnTlZCQVlUQWxoWk1TWXdKQVlEVlFRS0RCMVFlWFJvYjI0Z1UyOW0KLWRIZGhj
bVVnUm05MWJtUmhkR2x2YmlCRFFURVdNQlFHQTFVRUF3d05iM1Z5TFdOaExYTmxjblpsY29JSkFN
c3QKLWdKbGFhVkpiTUlHREJnZ3JCZ0VGQlFjQkFRUjNNSFV3UEFZSUt3WUJCUVVITUFLR01HaDBk
SEE2THk5MFpYTjAKLVkyRXVjSGwwYUc5dWRHVnpkQzV1WlhRdmRHVnpkR05oTDNCNVkyRmpaWEow
TG1ObGNqQTFCZ2dyQmdFRkJRY3cKLUFZWXBhSFIwY0RvdkwzUmxjM1JqWVM1d2VYUm9iMjUwWlhO
MExtNWxkQzkwWlhOMFkyRXZiMk56Y0M4d1F3WUQKLVZSMGZCRHd3T2pBNG9EYWdOSVl5YUhSMGNE
b3ZMM1JsYzNSallTNXdlWFJvYjI1MFpYTjBMbTVsZEM5MFpYTjAKLVkyRXZjbVYyYjJOaGRHbHZi
aTVqY213d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dHQkFDZjFqRmtROU1ibktBQy8KLXVvMTdFd1B4
SEtaZnN3WlZwQ0s1MjdMVlJyMzNETjFEYnJSNVpXY2hEQ3BWN2tDT2haK2ZSN3NLS2syMlpIU1kK
LW9IK3UzUEV1MjBKM0dPQjFpeVkxYU1OQjdXdklkM0p2YXBwZFZXa0MvVnBVeUZmTHNHVURGdUlQ
QURtWlpxQ2IKLWlKTVg0bG90ZVRWZmwxZDR4Sy8xbVY2R3E5TVJyUnFpRGZwU0VMbit2NTNPTTlt
R3Nwd1crTloxQ0lyYkN1VzAKLUt4Wi90UGtxbjhQU2Q5Zk5aUjcwYkI3cldibndybCtrSDh4S3hM
bDZxZGxyTW1nNzRXV3doTGVReEs3KzlEZFAKLUlhRGVuenF4NWN3V0JHWS9DMEhjUWowZ1B1eTNs
U3MxVi9xK2Y3WTZ1c3BQV1A1MVBnaUpMSXl3WFM3NWlSQXIKLStVRkdUendBdHlmVFpTUW9GeU1t
TVVMcWZrNlQ1SHRvVk1xZlJ2UHZLK21GRExXRXN0VTFOSUIxSy9DUkk3Z0kKLUFZNjVDbFRVK3pS
Uy90bEY4SUE3dHNGdmd0RWY4anNJOWthbWxpZGhTMWd5ZWc0ZFdjVkVyVjRhZVRQQjFBVXYKLVN0
UFlRa0tOTStOanl0V0hsNXROdUJvRE5Mc2MwZ0kvV1NQaUk0Q0lZOEx3b21Pb2l3PT0KLS0tLS0t
RU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xf
Y2VydF93aXRoX2NoYWluLnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xfY2VydF93aXRoX2No
YWluLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjYwYWQ0MTY4N2UyYWZkN2Ew
Zjk0ZDE1NjFhYmRlYTFlNWRkNDM2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2NlcnRfd2l0aF9jaGFpbi5wZW0K
KysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0t
LS0KLU1JSUY4VENDQkZtZ0F3SUJBZ0lKQU1zdGdKbGFhVkpjTUEwR0NTcUdTSWIzRFFFQkN3VUFN
RTB4Q3pBSkJnTlYKLUJBWVRBbGhaTVNZd0pBWURWUVFLREIxUWVYUm9iMjRnVTI5bWRIZGhjbVVn
Um05MWJtUmhkR2x2YmlCRFFURVcKLU1CUUdBMVVFQXd3TmIzVnlMV05oTFhObGNuWmxjakFlRncw
eE9EQTRNamt4TkRJek1UWmFGdzB5T0RBM01EY3gKLU5ESXpNVFphTUY4eEN6QUpCZ05WQkFZVEFs
aFpNUmN3RlFZRFZRUUhEQTVEWVhOMGJHVWdRVzUwYUhKaGVERWoKLU1DRUdBMVVFQ2d3YVVIbDBh
Rzl1SUZOdlpuUjNZWEpsSUVadmRXNWtZWFJwYjI0eEVqQVFCZ05WQkFNTUNXeHYKLVkyRnNhRzl6
ZERDQ0FhSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnR1BBRENDQVlvQ2dnR0JBSjhvTHpkQjczOWsK
LVl4WmlGdWtCRkdJcHlqcVlrajBJMDE1cC9zRHoxTVQ3RGxqY1pMQkx5N09xbmtMcEI1dG5NODI1
NkR3ZGloUEEKLTN6bG5mRXpUZnI5REQwcUZCVzJINWNNQ296N1gxN2tvZVJoekdEZDNka2pVZUJq
WHZSNXFSb3NHOHdNM2xRdWcKLVU3QWl6WSszQXphajF5TjNtWjlLNWEyMGpyNThLcWlueitYeHg2
c2IySmZZWWZmMm5lSmJCYWhObTVpZDBBRDIKLXBpL1R0aFpxTzVEVVJKWW8rTWRnWk9jeSs3akVq
T0pzTFdaZDNZenE3OGlNMDdxRGpicElvVnBFTlpDVEhUV0EKLWhYOExJcXowT0JtaDR3ZVFwbTQr
cGxVN0U0cjREODJ1YXVvY1d3OGl5dXpuQ1R0QUJXTzduOWZXeVNtZjlRWkMKLVdZeEhBRnBCUXM2
elVWcUFEN25oRmRUcXBROWJSaWFFbmpFNEhpQWNjUFcrTUFvU3hGbnYvck56RXpJNmI0elUKLU5z
cEZNZmcxYU5WYW1kanhkcFVaMUdHMU9rZjB5UEp5a3FFWDRQWmwzTGExQmUycTdZWjF3eWRSNTIz
WGQrZjMKLUVPNC9nK2ltRVRTS244Z3lDZjZSdmliMTc1TDRyMldWMUNYUUg3Z0Z3WllDb2Q2V0hZ
cTVUUUlEQVFBQm80SUIKLXdEQ0NBYnd3RkFZRFZSMFJCQTB3QzRJSmJHOWpZV3hvYjNOME1BNEdB
MVVkRHdFQi93UUVBd0lGb0RBZEJnTlYKLUhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVI
QXdJd0RBWURWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEUKLUZnUVVqK29kNHpOY0FCYXppMjlyYjlO
TXk3WExmRlV3ZlFZRFZSMGpCSFl3ZElBVTNiL0sydWJSTkxvM2RTSEsKLWI1b0lLUEkxdGtpaFVh
UlBNRTB4Q3pBSkJnTlZCQVlUQWxoWk1TWXdKQVlEVlFRS0RCMVFlWFJvYjI0Z1UyOW0KLWRIZGhj
bVVnUm05MWJtUmhkR2x2YmlCRFFURVdNQlFHQTFVRUF3d05iM1Z5TFdOaExYTmxjblpsY29JSkFN
c3QKLWdKbGFhVkpiTUlHREJnZ3JCZ0VGQlFjQkFRUjNNSFV3UEFZSUt3WUJCUVVITUFLR01HaDBk
SEE2THk5MFpYTjAKLVkyRXVjSGwwYUc5dWRHVnpkQzV1WlhRdmRHVnpkR05oTDNCNVkyRmpaWEow
TG1ObGNqQTFCZ2dyQmdFRkJRY3cKLUFZWXBhSFIwY0RvdkwzUmxjM1JqWVM1d2VYUm9iMjUwWlhO
MExtNWxkQzkwWlhOMFkyRXZiMk56Y0M4d1F3WUQKLVZSMGZCRHd3T2pBNG9EYWdOSVl5YUhSMGNE
b3ZMM1JsYzNSallTNXdlWFJvYjI1MFpYTjBMbTVsZEM5MFpYTjAKLVkyRXZjbVYyYjJOaGRHbHZi
aTVqY213d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dHQkFDZjFqRmtROU1ibktBQy8KLXVvMTdFd1B4
SEtaZnN3WlZwQ0s1MjdMVlJyMzNETjFEYnJSNVpXY2hEQ3BWN2tDT2haK2ZSN3NLS2syMlpIU1kK
LW9IK3UzUEV1MjBKM0dPQjFpeVkxYU1OQjdXdklkM0p2YXBwZFZXa0MvVnBVeUZmTHNHVURGdUlQ
QURtWlpxQ2IKLWlKTVg0bG90ZVRWZmwxZDR4Sy8xbVY2R3E5TVJyUnFpRGZwU0VMbit2NTNPTTlt
R3Nwd1crTloxQ0lyYkN1VzAKLUt4Wi90UGtxbjhQU2Q5Zk5aUjcwYkI3cldibndybCtrSDh4S3hM
bDZxZGxyTW1nNzRXV3doTGVReEs3KzlEZFAKLUlhRGVuenF4NWN3V0JHWS9DMEhjUWowZ1B1eTNs
U3MxVi9xK2Y3WTZ1c3BQV1A1MVBnaUpMSXl3WFM3NWlSQXIKLStVRkdUendBdHlmVFpTUW9GeU1t
TVVMcWZrNlQ1SHRvVk1xZlJ2UHZLK21GRExXRXN0VTFOSUIxSy9DUkk3Z0kKLUFZNjVDbFRVK3pS
Uy90bEY4SUE3dHNGdmd0RWY4anNJOWthbWxpZGhTMWd5ZWc0ZFdjVkVyVjRhZVRQQjFBVXYKLVN0
UFlRa0tOTStOanl0V0hsNXROdUJvRE5Mc2MwZ0kvV1NQaUk0Q0lZOEx3b21Pb2l3PT0KLS0tLS0t
RU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRWJU
Q0NBdFdnQXdJQkFnSUpBTXN0Z0psYWFWSmJNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1FMHhDekFKQmdO
VgotQkFZVEFsaFpNU1l3SkFZRFZRUUtEQjFRZVhSb2IyNGdVMjltZEhkaGNtVWdSbTkxYm1SaGRH
bHZiaUJEUVRFVwotTUJRR0ExVUVBd3dOYjNWeUxXTmhMWE5sY25abGNqQWVGdzB4T0RBNE1qa3hO
REl6TVRaYUZ3MHlPREE0TWpZeAotTkRJek1UWmFNRTB4Q3pBSkJnTlZCQVlUQWxoWk1TWXdKQVlE
VlFRS0RCMVFlWFJvYjI0Z1UyOW1kSGRoY21VZwotUm05MWJtUmhkR2x2YmlCRFFURVdNQlFHQTFV
RUF3d05iM1Z5TFdOaExYTmxjblpsY2pDQ0FhSXdEUVlKS29aSQotaHZjTkFRRUJCUUFEZ2dHUEFE
Q0NBWW9DZ2dHQkFKZnRWVUc2TmhlVjIzRWMwK0ZockZoejQ4YVd6eXNmdUFqMQotblV0THh6RDJ1
QXV6VW5LZ3U4bE5PNDdmSW80QlY0SEprblBNQU1ic2NMQTZGMERCMy9LTU5rekVwNEhudGlSbwot
NHFCK05RY3ZvRnY1UlViM0h2QkdFZjdLR2p4UThTYXBYNXdpblBoQjRkOVBFcFVaTDF5UUFSZHVm
ajU5eitrSgotcnlYNCtFSjNMVzFmTnZKNEhuMUtoMmhqYkFaeEc0MzZKZjdVMC9XbEY3SHY2aGZM
Vk1nbm1ZRExQRVh4TEZJYwotM1I5UlJTQlFIbDZyVjNNYlFYaVczb1NrZXQyUE1JVTJXSGwyb05K
aHlCdXBsSmxqeHU3NEZMKzBVbFl4bC9ycgotckZPZWxjNU14RnBLdDhvREoxczFWODRDM096S2Fm
aUtXam5MRmlBVkF5UmhiUFI2L0xaSTVWa1FYRW5RSTUvNwotY1Y0NjZXaWZOSEtBSjdZL1RMSFoy
Mk4vWjJoS2JoSDQ2TUQwV2hZNVV3dG8zbmY2UmVmNGtjMTR6U2lVbDNGVQotKzgvd045N0pKc1hj
RzU2SmJRbXN5RVJ4eTIzeGx6SFZUQ0F6djNWS29PRGNhUkh0S3JSa0VCRXdpdzZ3cHhEWQotaXNX
cUc4Z21paVhuWnArbGFob3ZmRitEeG5oUEh3SURBUUFCbzFBd1RqQWRCZ05WSFE0RUZnUVUzYi9L
MnViUgotTkxvM2RTSEtiNW9JS1BJMXRrZ3dId1lEVlIwakJCZ3dGb0FVM2IvSzJ1YlJOTG8zZFNI
S2I1b0lLUEkxdGtndwotREFZRFZSMFRCQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FZ
RUFNMnBVMDJ2QTF3RmZuZlFGd1pObQota0ZEUXR4anBzQjVLb0xiYWRwT3ZoTnV0RlZReEZSUGsz
bjVPRE5VSkhEUTF0dVZNMW05bGZUSmY2L3lwYXdmMwotU1lMbGdYNEhnSnBqK0N6RFFMeVAxQ3Jh
UHRIdUNMZE5wNFRLOUQraG1FVytzUVZwNTkvWG1hc2I3b3N3elBmOAotNTlRTEY2Nlh2K1I3L1Er
bnRJVjU0MW5pRm9lL0h5bEZMQ09UZHI3QWh4M2U3Q3RDYXVXN3lQUUtTZ2dLakZ6WQotZlUzUnVM
L1Y5eW50a3RHVUJPZzFCbGQvTENPWGg2VTFqU2JUR2tmeUZ0Zlp4dFFmSTBQVEpwazV5aUQwY1NO
dgotREVwMmR2ZDJIN1ArdjBldy9DcFdnZUhTM2U0STJQVC9XdHdsWVlxUkFybUdIUEpRYzNZbE5m
eTJKU1lWeSt2RQotSzJFTUhPZnVMeGViN1BEVW9ZVG4wcS9lNUJza0ZLY0JoK09yS1ZoR29ObkFD
dUNOMTFuVEcvaFVJRDU0cGFYSQotVDRzRHhKYWY3UHRIejNZdGpXVTBKNy82cmdFRml2T1NDdDJK
YkplaHgrZGdVZWVzNjB0OUxMaGx5ZjVkYWtoVgotanVUSCtXcEE0YmhrUmVtMVdTbWxYODk5V0gx
a2VlV2tDYXdlZG1VOWxNUm8KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy90ZXN0cy9zc2xfa2V5LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xf
a2V5LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhmZGVjMTAxYzhkNjc0YzUy
MDdkMTAwZjc0YjZhNzI0MjRjYjUyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2tleS5wZW0KKysrIC9kZXYvbnVs
bApAQCAtMSw0MCArMCwwIEBACi0tLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUcvUUlC
QURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQnVjd2dnYmpBZ0VBQW9JQmdRQ2ZLQzgzUWU5L1pHTVcK
LVloYnBBUlJpS2NvNm1KSTlDTk5lYWY3QTg5VEUrdzVZM0dTd1M4dXpxcDVDNlFlYlp6UE51ZWc4
SFlvVHdOODUKLVozeE0wMzYvUXc5S2hRVnRoK1hEQXFNKzE5ZTVLSGtZY3hnM2QzWkkxSGdZMTcw
ZWFrYUxCdk1ETjVVTG9GT3cKLUlzMlB0d00ybzljamQ1bWZTdVd0dEk2K2ZDcW9wOC9sOGNlckc5
aVgyR0gzOXAzaVd3V29UWnVZbmRBQTlxWXYKLTA3WVdhanVRMUVTV0tQakhZR1RuTXZ1NHhJemli
QzFtWGQyTTZ1L0lqTk82ZzQyNlNLRmFSRFdRa3gwMWdJVi8KLUN5S3M5RGdab2VNSGtLWnVQcVpW
T3hPSytBL05ybXJxSEZzUElzcnM1d2s3UUFWanU1L1gxc2twbi9VR1FsbU0KLVJ3QmFRVUxPczFG
YWdBKzU0UlhVNnFVUFcwWW1oSjR4T0I0Z0hIRDF2akFLRXNSWjcvNnpjeE15T20rTTFEYksKLVJU
SDROV2pWV3BuWThYYVZHZFJodFRwSDlNanljcEtoRitEMlpkeTJ0UVh0cXUyR2RjTW5VZWR0MTNm
bjl4RHUKLVA0UG9waEUwaXAvSU1nbitrYjRtOWUrUytLOWxsZFFsMEIrNEJjR1dBcUhlbGgyS3VV
MENBd0VBQVFLQ0FZRUEKLWxLaVdJWWpteVJqZExLVUdQVEVTOXZXTnZObVJqb3pWMFJRMExjb1Ni
TU1MRFprZU8wVXd5V3FPVkhVUTgraWIKLWpJY2ZFamVOSnhJNTdvWm9wZUhPTzV2SmhwTmxGSCtn
N2x0aVcycUVScUExSzg4bFNYbTk5Qnp3NkZOcWhDUkUKLUs4dWI1TjlmeWZKQStQNG8veG0wV0s4
RVhrNXlJVVYxN3AvOXpKSnh6Z0tndjJqc1ZUaTNRRzJPWkd2bjRPdWcKLUJ5b21NWkVHSGtCRHpk
eHo4Yy9jUDFUbGsxUkZ1d1NnZXdzMTc4azJ4cTdBWVNNL3MwWW1IaTdiL1JTdnB0WDYKLTF2OFA4
a1hOVWU0QXdUYU55cmx2RjJsd0lhZFo4aDFoQTd0Q0UybjQ0YjdhN0tmaEFrd2NicjFUNTlpb1lo
NlAKLXp4c3lQVDY3OHVENTFkYnREL0RYSkNjb2VlRk9iOHV6a1IyS05jcm5RelpwQ0puUnE0R3A1
eWJ4d3N4eHV6cHIKLWd6MGdiTmxodVd0RTdFb1N6bUlLOXQrV1RTN0lNMkN2WnltZDYvT0FoMUZ1
dzZBUWhTcDY0WFJwM09mTU1BQUMKLUllMkVQdEtqNGlzbFdHVDhWb1VqdVJZR21kUmg0ZHVBSDFk
a2lBWE9XQTNSN3k1YTEveS9pRThLRThCdHhvY0IKLUFvSEJBTThhaVVSZ3B1MUZzME9xejZpemVj
N0tTTEwzbDhobVcrTUtVT2ZrL1libmc2RnJURnNMNVl0elIrQXAKLXdXNHd3V25uSUtFYzFKTGla
N2c4YWdSRVRLOGhyNVB3RlhVbi9HU1dDMFNNc2F6TEpUb3lTUVM1TE9WMHRMeksKLWtKM2p0TlU3
dG5sREdOa0NIVEhTb1ZMMlQvOHQrSWtaSS9oNVo2d2psWVB2VTJJdTBuVklYdGlHK2FsdjRBNk0K
LUhyaDlsNW9yNG1qQjZyR25WWGVZb2hMa0NtNnMvVzk3YWhWeExNY0VkYnNCbzFwcm0ySnFHblNv
aVIvdEVGQy8KLVFIUW5iUUtCd1FERXU3a1cwWWc5c1o4OVF0WXRWUTFZcGl4RlpPUmFVZVJJUkxu
cEVzMXc3TDFtQ2JPWjJMajkKLUpIeHNIMDVjWUFjN0hKZlB3d3h2MyszYUdBSUMvZGZ1NFZTd0VG
dGF0QXpVcHpsaHpLUzUrSFFDV0I0SlVOTlUKLU1RMytGd0syeFFYNFBoOHQrT3pyRmlZY0syZzBB
bjVVeFdNYTJIV0lBV1VPaG5UT3lkQVZzb0g2eVAzMWNWbTQKLTBoeG9BQkN3ZmxhTkxOR2pSVXlm
QnBMVEFjTnUvWXRjRStLUkV5N1lBQWdYWHJoUlNPNFhwTHNTWHdMbkxUNy8KLVlPa29CV0RjVFdF
Q2djQlBXblNVRFpDSVEzZWZpdGhNWkpCY2lxZDJZMlgxOURwcThPMzFISW1ENGp0T1kwVjcKLWNV
Qi93U2tlSEFHd2pkL2VDeUEyZTB4OEIySUVkcW1NZnZyKzg2Skp4ZWtDM2RKWVhDRnZINVdJaHNI
NTNZQ2EKLTNiVDFLbFdDTFA5aWIvZys1OFZRQzBSL0NjOVQ0c2ZMZVBOSDdENVprWmQxd2xiVjMw
Q1ByK2k4S3dLYXk2TUQKLXhodnRMeCtqazA3R0UrRTl3bWpiQ01vN1RjbHlyTG9WRU9scVpNQXFz
aGdBcFQrcDlleUNQZXR3WHVESHdhM24KLVd4aEhjbGNaQ1Y3UjRyVUNnY0FrZEdTbnhjdnBJckRQ
T1VOV3d4dm1BV1RTdHc5WmJUTlA4T3hDTkNtOWN5RGwKLWQ0YkFTMWg4RC9hK1VrN0M3MGhudTdT
bDJ3N0M3RXUyemh3UlVkaGhlMytsNEdJTlBLL2o5OWk2TnFHUGxHcHEKLXhNbE1FSjRZUzc2OEJx
ZUtGcGcwbDg1UFJvRWdUc3BoRGVvUk9TVVBzRVBkQlo5QnhJQmxZS1RrYktFU1pER1IKLXR3ellI
bGp4MW4xTkNEWVBmbG1yYjFLcFhuNEVPY09iTmdodzJLcXFOVVVXZk9lQlB3QkExRnh6TTRCckFT
dHAKLURCSU5wR1M0RGMwbWpWaVZlZ0VDZ2NBM2hUdG04MlhkeFFYajlMUW1iL0UzbEt4LzdIODdY
SU9lTk1tdmpZdVoKLWlTOXdLcmtGK3U0MnZ5b0R4Y0tNQ254UDUwNTZ3cGRTVDRwNTZyK1NCd1ZU
SGNjM2xHQlNHY01USWZ3UlhyajMKLXRoT0Eyb3VyMm40b3VOSXNZeVRsY3NRU3ppZndtcFJtVk1S
UHhsOWZZVmRFV1VnQjgzRmdIVDBEOWF2dlpuRjkKLXQ5T2NjbkdKWFNoQUlaSUJBRGhWai9Kd0c0
RmJhWDQyTmlqRDVQTnBWTGsxWTE3T1YwSTU3NlQ5U2ZhUW9CakoKLWFIMU0vekM0YVZhUzBEWUIv
R3hxN3Y4PQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rlc3RfYXN5bmNpby5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5j
aW8ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZmNiZjM4MDNkYzg0MjhjMDc1
OTY5NGNmNDZjY2Y0OWVjZDVmNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfYXN5bmNpby5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDM3NCArMCwwIEBACi1pbXBvcnQgYXN5bmNpbwotaW1wb3J0IGJpbmFzY2lpCi1p
bXBvcnQgcmFuZG9tCi1pbXBvcnQgc29ja2V0Ci1mcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2Fz
ZSwgc2tpcElmCi1mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCi0KLWZyb20gY3J5cHRv
Z3JhcGh5Lmhhem1hdC5wcmltaXRpdmVzIGltcG9ydCBzZXJpYWxpemF0aW9uCi0KLWZyb20gYWlv
cXVpYy5hc3luY2lvLmNsaWVudCBpbXBvcnQgY29ubmVjdAotZnJvbSBhaW9xdWljLmFzeW5jaW8u
cHJvdG9jb2wgaW1wb3J0IFF1aWNDb25uZWN0aW9uUHJvdG9jb2wKLWZyb20gYWlvcXVpYy5hc3lu
Y2lvLnNlcnZlciBpbXBvcnQgc2VydmUKLWZyb20gYWlvcXVpYy5xdWljLmNvbmZpZ3VyYXRpb24g
aW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0
IFF1aWNMb2dnZXIKLQotZnJvbSAudXRpbHMgaW1wb3J0ICgKLSAgICBTRVJWRVJfQ0FDRVJURklM
RSwKLSAgICBTRVJWRVJfQ0VSVEZJTEUsCi0gICAgU0VSVkVSX0tFWUZJTEUsCi0gICAgU0tJUF9U
RVNUUywKLSAgICBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSwKLSAgICBydW4sCi0pCi0KLXJlYWxf
c2VuZHRvID0gc29ja2V0LnNvY2tldC5zZW5kdG8KLQotCi1kZWYgc2VuZHRvX3dpdGhfbG9zcyhz
ZWxmLCBkYXRhLCBhZGRyPU5vbmUpOgotICAgICIiIgotICAgIFNpbXVsYXRlIDI1JSBwYWNrZXQg
bG9zcy4KLSAgICAiIiIKLSAgICBpZiByYW5kb20ucmFuZG9tKCkgPiAwLjI1OgotICAgICAgICBy
ZWFsX3NlbmR0byhzZWxmLCBkYXRhLCBhZGRyKQotCi0KLWNsYXNzIFNlc3Npb25UaWNrZXRTdG9y
ZToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYudGlja2V0cyA9IHt9Ci0K
LSAgICBkZWYgYWRkKHNlbGYsIHRpY2tldCk6Ci0gICAgICAgIHNlbGYudGlja2V0c1t0aWNrZXQu
dGlja2V0XSA9IHRpY2tldAotCi0gICAgZGVmIHBvcChzZWxmLCBsYWJlbCk6Ci0gICAgICAgIHJl
dHVybiBzZWxmLnRpY2tldHMucG9wKGxhYmVsLCBOb25lKQotCi0KLWRlZiBoYW5kbGVfc3RyZWFt
KHJlYWRlciwgd3JpdGVyKToKLSAgICBhc3luYyBkZWYgc2VydmUoKToKLSAgICAgICAgZGF0YSA9
IGF3YWl0IHJlYWRlci5yZWFkKCkKLSAgICAgICAgd3JpdGVyLndyaXRlKGJ5dGVzKHJldmVyc2Vk
KGRhdGEpKSkKLSAgICAgICAgd3JpdGVyLndyaXRlX2VvZigpCi0KLSAgICBhc3luY2lvLmVuc3Vy
ZV9mdXR1cmUoc2VydmUoKSkKLQotCi1jbGFzcyBIaWdoTGV2ZWxUZXN0KFRlc3RDYXNlKToKLSAg
ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQotICAgICAgICBz
ZWxmLnNlcnZlcl9ob3N0ID0gImxvY2FsaG9zdCIKLSAgICAgICAgc2VsZi5zZXJ2ZXJfcG9ydCA9
IDQ0MzMKLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgaWYgc2VsZi5zZXJ2ZXIg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLnNlcnZlci5jbG9zZSgpCi0KLSAgICBhc3lu
YyBkZWYgcnVuX2NsaWVudCgKLSAgICAgICAgc2VsZiwKLSAgICAgICAgaG9zdD1Ob25lLAotICAg
ICAgICBwb3J0PU5vbmUsCi0gICAgICAgIGNhZGF0YT1Ob25lLAotICAgICAgICBjYWZpbGU9U0VS
VkVSX0NBQ0VSVEZJTEUsCi0gICAgICAgIGNvbmZpZ3VyYXRpb249Tm9uZSwKLSAgICAgICAgcmVx
dWVzdD1iInBpbmciLAotICAgICAgICAqKmt3YXJncwotICAgICk6Ci0gICAgICAgIGlmIGhvc3Qg
aXMgTm9uZToKLSAgICAgICAgICAgIGhvc3QgPSBzZWxmLnNlcnZlcl9ob3N0Ci0gICAgICAgIGlm
IHBvcnQgaXMgTm9uZToKLSAgICAgICAgICAgIHBvcnQgPSBzZWxmLnNlcnZlcl9wb3J0Ci0gICAg
ICAgIGlmIGNvbmZpZ3VyYXRpb24gaXMgTm9uZToKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24g
PSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgY29uZmlndXJhdGlv
bi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FkYXRhPWNhZGF0YSwgY2FmaWxlPWNhZmlsZSkKLSAg
ICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KGhvc3QsIHBvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmln
dXJhdGlvbiwgKiprd2FyZ3MpIGFzIGNsaWVudDoKLSAgICAgICAgICAgICMgd2FpdGluZyBmb3Ig
Y29ubmVjdGVkIHdoZW4gY29ubmVjdGVkIHJldHVybnMgaW1tZWRpYXRlbHkKLSAgICAgICAgICAg
IGF3YWl0IGNsaWVudC53YWl0X2Nvbm5lY3RlZCgpCi0KLSAgICAgICAgICAgIHJlYWRlciwgd3Jp
dGVyID0gYXdhaXQgY2xpZW50LmNyZWF0ZV9zdHJlYW0oKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh3cml0ZXIuY2FuX3dyaXRlX2VvZigpLCBUcnVlKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh3cml0ZXIuZ2V0X2V4dHJhX2luZm8oInN0cmVhbV9pZCIpLCAwKQotCi0gICAg
ICAgICAgICB3cml0ZXIud3JpdGUocmVxdWVzdCkKLSAgICAgICAgICAgIHdyaXRlci53cml0ZV9l
b2YoKQotCi0gICAgICAgICAgICByZXNwb25zZSA9IGF3YWl0IHJlYWRlci5yZWFkKCkKLQotICAg
ICAgICAjIHdhaXRpbmcgZm9yIGNsb3NlZCB3aGVuIGNsb3NlZCByZXR1cm5zIGltbWVkaWF0ZWx5
Ci0gICAgICAgIGF3YWl0IGNsaWVudC53YWl0X2Nsb3NlZCgpCi0KLSAgICAgICAgcmV0dXJuIHJl
c3BvbnNlCi0KLSAgICBhc3luYyBkZWYgcnVuX3NlcnZlcihzZWxmLCBjb25maWd1cmF0aW9uPU5v
bmUsIGhvc3Q9Ijo6IiwgKiprd2FyZ3MpOgotICAgICAgICBpZiBjb25maWd1cmF0aW9uIGlzIE5v
bmU6Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xp
ZW50PUZhbHNlKQotICAgICAgICAgICAgY29uZmlndXJhdGlvbi5sb2FkX2NlcnRfY2hhaW4oU0VS
VkVSX0NFUlRGSUxFLCBTRVJWRVJfS0VZRklMRSkKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBhd2Fp
dCBzZXJ2ZSgKLSAgICAgICAgICAgIGhvc3Q9aG9zdCwKLSAgICAgICAgICAgIHBvcnQ9c2VsZi5z
ZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKLSAg
ICAgICAgICAgIHN0cmVhbV9oYW5kbGVyPWhhbmRsZV9zdHJlYW0sCi0gICAgICAgICAgICAqKmt3
YXJncwotICAgICAgICApCi0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlcgotCi0gICAgZGVmIHRl
c3RfY29ubmVjdF9hbmRfc2VydmUoc2VsZik6Ci0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIo
KSkKLSAgICAgICAgcmVzcG9uc2UgPSBydW4oc2VsZi5ydW5fY2xpZW50KCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVzcG9uc2UsIGIiZ25pcCIpCi0KLSAgICBkZWYgdGVzdF9jb25uZWN0
X2FuZF9zZXJ2ZV9pcHY0KHNlbGYpOgotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKGhvc3Q9
IjAuMC4wLjAiKSkKLSAgICAgICAgcmVzcG9uc2UgPSBydW4oc2VsZi5ydW5fY2xpZW50KGhvc3Q9
IjEyNy4wLjAuMSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBiImduaXAi
KQotCi0gICAgQHNraXBJZigiaXB2NiIgaW4gU0tJUF9URVNUUywgIlNraXBwaW5nIElQdjYgdGVz
dHMiKQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX2lwdjYoc2VsZik6Ci0gICAgICAg
IHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoaG9zdD0iOjoiKSkKLSAgICAgICAgcmVzcG9uc2UgPSBydW4o
c2VsZi5ydW5fY2xpZW50KGhvc3Q9Ijo6MSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
c3BvbnNlLCBiImduaXAiKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVfZWNfY2Vy
dGlmaWNhdGUoc2VsZik6Ci0gICAgICAgIGNlcnRpZmljYXRlLCBwcml2YXRlX2tleSA9IGdlbmVy
YXRlX2VjX2NlcnRpZmljYXRlKGNvbW1vbl9uYW1lPSJsb2NhbGhvc3QiKQotCi0gICAgICAgIHJ1
bigKLSAgICAgICAgICAgIHNlbGYucnVuX3NlcnZlcigKLSAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0
ZT1jZXJ0aWZpY2F0ZSwgcHJpdmF0ZV9rZXk9cHJpdmF0ZV9rZXksIGlzX2NsaWVudD1GYWxzZSwK
LSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAgICAgICBy
ZXNwb25zZSA9IHJ1bigKLSAgICAgICAgICAgIHNlbGYucnVuX2NsaWVudCgKLSAgICAgICAgICAg
ICAgICBjYWRhdGE9Y2VydGlmaWNhdGUucHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2Rp
bmcuUEVNKSwKLSAgICAgICAgICAgICAgICBjYWZpbGU9Tm9uZSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2UsIGIiZ25pcCIpCi0K
LSAgICBkZWYgdGVzdF9jb25uZWN0X2FuZF9zZXJ2ZV9sYXJnZShzZWxmKToKLSAgICAgICAgIiIi
Ci0gICAgICAgIFRyYW5zZmVyIGVub3VnaCBkYXRhIHRvIHJlcXVpcmUgcmFpc2luZyBNQVhfREFU
QSBhbmQgTUFYX1NUUkVBTV9EQVRBLgotICAgICAgICAiIiIKLSAgICAgICAgZGF0YSA9IGIiWiIg
KiAyMDk3MTUyCi0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoKSkKLSAgICAgICAgcmVzcG9u
c2UgPSBydW4oc2VsZi5ydW5fY2xpZW50KHJlcXVlc3Q9ZGF0YSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcG9uc2UsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9jb25uZWN0X2FuZF9zZXJ2
ZV93aXRob3V0X2NsaWVudF9jb25maWd1cmF0aW9uKHNlbGYpOgotICAgICAgICBhc3luYyBkZWYg
cnVuX2NsaWVudF93aXRob3V0X2NvbmZpZygpOgotICAgICAgICAgICAgYXN5bmMgd2l0aCBjb25u
ZWN0KHNlbGYuc2VydmVyX2hvc3QsIHNlbGYuc2VydmVyX3BvcnQpIGFzIGNsaWVudDoKLSAgICAg
ICAgICAgICAgICBhd2FpdCBjbGllbnQucGluZygpCi0KLSAgICAgICAgcnVuKHNlbGYucnVuX3Nl
cnZlcigpKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKENvbm5lY3Rpb25FcnJvcik6
Ci0gICAgICAgICAgICBydW4ocnVuX2NsaWVudF93aXRob3V0X2NvbmZpZygpKQotCi0gICAgZGVm
IHRlc3RfY29ubmVjdF9hbmRfc2VydmVfd3JpdGVsaW5lcyhzZWxmKToKLSAgICAgICAgYXN5bmMg
ZGVmIHJ1bl9jbGllbnRfd3JpdGVsaW5lcygpOgotICAgICAgICAgICAgY29uZmlndXJhdGlvbiA9
IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICAgICAgY29uZmlndXJh
dGlvbi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlPVNFUlZFUl9DQUNFUlRGSUxFKQotICAg
ICAgICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy
X2hvc3QsIHNlbGYuc2VydmVyX3BvcnQsIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbgotICAg
ICAgICAgICAgKSBhcyBjbGllbnQ6Ci0gICAgICAgICAgICAgICAgcmVhZGVyLCB3cml0ZXIgPSBh
d2FpdCBjbGllbnQuY3JlYXRlX3N0cmVhbSgpCi0gICAgICAgICAgICAgICAgYXNzZXJ0IHdyaXRl
ci5jYW5fd3JpdGVfZW9mKCkgaXMgVHJ1ZQotCi0gICAgICAgICAgICAgICAgd3JpdGVyLndyaXRl
bGluZXMoW2IiMDEyMzQ1NjciLCBiIjg5MDEyMzQ1Il0pCi0gICAgICAgICAgICAgICAgd3JpdGVy
LndyaXRlX2VvZigpCi0KLSAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVhZGVyLnJlYWQo
KQotCi0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoKSkKLSAgICAgICAgcmVzcG9uc2UgPSBy
dW4ocnVuX2NsaWVudF93cml0ZWxpbmVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
cG9uc2UsIGIiNTQzMjEwOTg3NjU0MzIxMCIpCi0KLSAgICBAc2tpcElmKCJsb3NzIiBpbiBTS0lQ
X1RFU1RTLCAiU2tpcHBpbmcgbG9zcyB0ZXN0cyIpCi0gICAgQHBhdGNoKCJzb2NrZXQuc29ja2V0
LnNlbmR0byIsIG5ld19jYWxsYWJsZT1sYW1iZGE6IHNlbmR0b193aXRoX2xvc3MpCi0gICAgZGVm
IHRlc3RfY29ubmVjdF9hbmRfc2VydmVfd2l0aF9wYWNrZXRfbG9zcyhzZWxmLCBtb2NrX3NlbmR0
byk6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIHRlc3QgZW5zdXJlcyBoYW5kc2hha2Ugc3Vj
Y2VzcyBhbmQgc3RyZWFtIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IHNlbnQKLSAgICAgICAgYW5kIHJl
Y2VpdmVkIGluIHRoZSBwcmVzZW5jZSBvZiBwYWNrZXQgbG9zcyAocmFuZG9taXplZCAyNSUgaW4g
ZWFjaCBkaXJlY3Rpb24pLgotICAgICAgICAiIiIKLSAgICAgICAgZGF0YSA9IGIiWiIgKiA2NTUz
NgotCi0gICAgICAgIHNlcnZlcl9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oCi0g
ICAgICAgICAgICBpc19jbGllbnQ9RmFsc2UsIHF1aWNfbG9nZ2VyPVF1aWNMb2dnZXIoKQotICAg
ICAgICApCi0gICAgICAgIHNlcnZlcl9jb25maWd1cmF0aW9uLmxvYWRfY2VydF9jaGFpbihTRVJW
RVJfQ0VSVEZJTEUsIFNFUlZFUl9LRVlGSUxFKQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVy
KGNvbmZpZ3VyYXRpb249c2VydmVyX2NvbmZpZ3VyYXRpb24pKQotCi0gICAgICAgIHJlc3BvbnNl
ID0gcnVuKAotICAgICAgICAgICAgc2VsZi5ydW5fY2xpZW50KAotICAgICAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgIGlzX2Ns
aWVudD1UcnVlLCBxdWljX2xvZ2dlcj1RdWljTG9nZ2VyKCkKLSAgICAgICAgICAgICAgICApLAot
ICAgICAgICAgICAgICAgIHJlcXVlc3Q9ZGF0YSwKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBkYXRhKQotCi0gICAgZGVmIHRlc3Rf
Y29ubmVjdF9hbmRfc2VydmVfd2l0aF9zZXNzaW9uX3RpY2tldChzZWxmKToKLSAgICAgICAgIyBz
dGFydCBzZXJ2ZXIKLSAgICAgICAgY2xpZW50X3RpY2tldCA9IE5vbmUKLSAgICAgICAgc3RvcmUg
PSBTZXNzaW9uVGlja2V0U3RvcmUoKQotCi0gICAgICAgIGRlZiBzYXZlX3RpY2tldCh0KToKLSAg
ICAgICAgICAgIG5vbmxvY2FsIGNsaWVudF90aWNrZXQKLSAgICAgICAgICAgIGNsaWVudF90aWNr
ZXQgPSB0Ci0KLSAgICAgICAgcnVuKAotICAgICAgICAgICAgc2VsZi5ydW5fc2VydmVyKAotICAg
ICAgICAgICAgICAgIHNlc3Npb25fdGlja2V0X2ZldGNoZXI9c3RvcmUucG9wLCBzZXNzaW9uX3Rp
Y2tldF9oYW5kbGVyPXN0b3JlLmFkZAotICAgICAgICAgICAgKQotICAgICAgICApCi0KLSAgICAg
ICAgIyBmaXJzdCByZXF1ZXN0Ci0gICAgICAgIHJlc3BvbnNlID0gcnVuKHNlbGYucnVuX2NsaWVu
dChzZXNzaW9uX3RpY2tldF9oYW5kbGVyPXNhdmVfdGlja2V0KSwpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcG9uc2UsIGIiZ25pcCIpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5v
bmUoY2xpZW50X3RpY2tldCkKLQotICAgICAgICAjIHNlY29uZCByZXF1ZXN0Ci0gICAgICAgIHJ1
bigKLSAgICAgICAgICAgIHNlbGYucnVuX2NsaWVudCgKLSAgICAgICAgICAgICAgICBjb25maWd1
cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICAgICAgICAgICAgICBpc19jbGllbnQ9
VHJ1ZSwgc2Vzc2lvbl90aWNrZXQ9Y2xpZW50X3RpY2tldAotICAgICAgICAgICAgICAgICksCi0g
ICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25z
ZSwgYiJnbmlwIikKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3RfYW5kX3NlcnZlX3dpdGhfc3RhdGVs
ZXNzX3JldHJ5KHNlbGYpOgotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAg
IHJlc3BvbnNlID0gcnVuKHNlbGYucnVuX2NsaWVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlc3BvbnNlLCBiImduaXAiKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF9hbmRfc2VydmVf
d2l0aF9zdGF0ZWxlc3NfcmV0cnlfYmFkX29yaWdpbmFsX2Nvbm5lY3Rpb25faWQoc2VsZik6Ci0g
ICAgICAgICIiIgotICAgICAgICBJZiB0aGUgc2VydmVyJ3MgdHJhbnNwb3J0IHBhcmFtZXRlcnMg
ZG8gbm90IGhhdmUgdGhlIGNvcnJlY3QKLSAgICAgICAgb3JpZ2luYWxfY29ubmVjdGlvbl9pZCB0
aGUgY29ubmVjdGlvbiBmYWlsLgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgY3JlYXRlX3By
b3RvY29sKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICBwcm90b2NvbCA9IFF1aWNDb25u
ZWN0aW9uUHJvdG9jb2woKmFyZ3MsICoqa3dhcmdzKQotICAgICAgICAgICAgcHJvdG9jb2wuX3F1
aWMuX29yaWdpbmFsX2Nvbm5lY3Rpb25faWQgPSBOb25lCi0gICAgICAgICAgICByZXR1cm4gcHJv
dG9jb2wKLQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKGNyZWF0ZV9wcm90b2NvbD1jcmVh
dGVfcHJvdG9jb2wsIHN0YXRlbGVzc19yZXRyeT1UcnVlKSkKLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhDb25uZWN0aW9uRXJyb3IpOgotICAgICAgICAgICAgcnVuKHNlbGYucnVuX2Ns
aWVudCgpKQotCi0gICAgQHBhdGNoKCJhaW9xdWljLnF1aWMucmV0cnkuUXVpY1JldHJ5VG9rZW5I
YW5kbGVyLnZhbGlkYXRlX3Rva2VuIikKLSAgICBkZWYgdGVzdF9jb25uZWN0X2FuZF9zZXJ2ZV93
aXRoX3N0YXRlbGVzc19yZXRyeV9iYWQoc2VsZiwgbW9ja192YWxpZGF0ZSk6Ci0gICAgICAgIG1v
Y2tfdmFsaWRhdGUuc2lkZV9lZmZlY3QgPSBWYWx1ZUVycm9yKCJEZWNyeXB0aW9uIGZhaWxlZC4i
KQotCi0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoc3RhdGVsZXNzX3JldHJ5PVRydWUpKQot
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKENvbm5lY3Rpb25FcnJvcik6Ci0gICAgICAg
ICAgICBydW4oCi0gICAgICAgICAgICAgICAgc2VsZi5ydW5fY2xpZW50KAotICAgICAgICAgICAg
ICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlLCBp
ZGxlX3RpbWVvdXQ9NC4wKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF9jb25uZWN0X2FuZF9zZXJ2ZV93aXRoX3ZlcnNpb25fbmVnb3RpYXRpb24oc2Vs
Zik6Ci0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2ZXIoKSkKLQotICAgICAgICAjIGZvcmNlIHZl
cnNpb24gbmVnb3RpYXRpb24KLSAgICAgICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0
aW9uKGlzX2NsaWVudD1UcnVlLCBxdWljX2xvZ2dlcj1RdWljTG9nZ2VyKCkpCi0gICAgICAgIGNv
bmZpZ3VyYXRpb24uc3VwcG9ydGVkX3ZlcnNpb25zLmluc2VydCgwLCAweDFBMkEzQTRBKQotCi0g
ICAgICAgIHJlc3BvbnNlID0gcnVuKHNlbGYucnVuX2NsaWVudChjb25maWd1cmF0aW9uPWNvbmZp
Z3VyYXRpb24pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLCBiImduaXAiKQot
Ci0gICAgZGVmIHRlc3RfY29ubmVjdF90aW1lb3V0KHNlbGYpOgotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKENvbm5lY3Rpb25FcnJvcik6Ci0gICAgICAgICAgICBydW4oCi0gICAgICAg
ICAgICAgICAgc2VsZi5ydW5fY2xpZW50KAotICAgICAgICAgICAgICAgICAgICBwb3J0PTQ0MDAs
Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNf
Y2xpZW50PVRydWUsIGlkbGVfdGltZW91dD01KSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICApCi0KLSAgICBkZWYgdGVzdF9jb25uZWN0X3RpbWVvdXRfbm9fd2FpdF9jb25uZWN0ZWQo
c2VsZik6Ci0gICAgICAgIGFzeW5jIGRlZiBydW5fY2xpZW50X25vX3dhaXRfY29ubmVjdGVkKGNv
bmZpZ3VyYXRpb24pOgotICAgICAgICAgICAgY29uZmlndXJhdGlvbi5sb2FkX3ZlcmlmeV9sb2Nh
dGlvbnMoY2FmaWxlPVNFUlZFUl9DQUNFUlRGSUxFKQotICAgICAgICAgICAgYXN5bmMgd2l0aCBj
b25uZWN0KAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICAg
ICAgNDQwMCwKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24sCi0g
ICAgICAgICAgICAgICAgd2FpdF9jb25uZWN0ZWQ9RmFsc2UsCi0gICAgICAgICAgICApIGFzIGNs
aWVudDoKLSAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQucGluZygpCi0KLSAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhDb25uZWN0aW9uRXJyb3IpOgotICAgICAgICAgICAgcnVuKAot
ICAgICAgICAgICAgICAgIHJ1bl9jbGllbnRfbm9fd2FpdF9jb25uZWN0ZWQoCi0gICAgICAgICAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUs
IGlkbGVfdGltZW91dD01KSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgdGVzdF9jb25uZWN0X2xvY2FsX3BvcnQoc2VsZik6Ci0gICAgICAgIHJ1bihzZWxmLnJ1
bl9zZXJ2ZXIoKSkKLSAgICAgICAgcmVzcG9uc2UgPSBydW4oc2VsZi5ydW5fY2xpZW50KGxvY2Fs
X3BvcnQ9MzQ1NikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2UsIGIiZ25pcCIp
Ci0KLSAgICBkZWYgdGVzdF9jaGFuZ2VfY29ubmVjdGlvbl9pZChzZWxmKToKLSAgICAgICAgYXN5
bmMgZGVmIHJ1bl9jbGllbnRfY2hhbmdlX2Nvbm5lY3Rpb25faWQoKToKLSAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZmlsZT1TRVJWRVJfQ0FD
RVJURklMRSkKLSAgICAgICAgICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgICAgICAg
ICBzZWxmLnNlcnZlcl9ob3N0LCBzZWxmLnNlcnZlcl9wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZp
Z3VyYXRpb24KLSAgICAgICAgICAgICkgYXMgY2xpZW50OgotICAgICAgICAgICAgICAgIGF3YWl0
IGNsaWVudC5waW5nKCkKLSAgICAgICAgICAgICAgICBjbGllbnQuY2hhbmdlX2Nvbm5lY3Rpb25f
aWQoKQotICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5waW5nKCkKLQotICAgICAgICBydW4o
c2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAgIHJ1bihydW5fY2xpZW50X2NoYW5nZV9jb25uZWN0
aW9uX2lkKCkpCi0KLSAgICBkZWYgdGVzdF9rZXlfdXBkYXRlKHNlbGYpOgotICAgICAgICBhc3lu
YyBkZWYgcnVuX2NsaWVudF9rZXlfdXBkYXRlKCk6Ci0gICAgICAgICAgICBjb25maWd1cmF0aW9u
ID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUpCi0gICAgICAgICAgICBjb25maWd1
cmF0aW9uLmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhjYWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUpCi0g
ICAgICAgICAgICBhc3luYyB3aXRoIGNvbm5lY3QoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2
ZXJfaG9zdCwgc2VsZi5zZXJ2ZXJfcG9ydCwgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9uCi0g
ICAgICAgICAgICApIGFzIGNsaWVudDoKLSAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQucGlu
ZygpCi0gICAgICAgICAgICAgICAgY2xpZW50LnJlcXVlc3Rfa2V5X3VwZGF0ZSgpCi0gICAgICAg
ICAgICAgICAgYXdhaXQgY2xpZW50LnBpbmcoKQotCi0gICAgICAgIHJ1bihzZWxmLnJ1bl9zZXJ2
ZXIoKSkKLSAgICAgICAgcnVuKHJ1bl9jbGllbnRfa2V5X3VwZGF0ZSgpKQotCi0gICAgZGVmIHRl
c3RfcGluZyhzZWxmKToKLSAgICAgICAgYXN5bmMgZGVmIHJ1bl9jbGllbnRfcGluZygpOgotICAg
ICAgICAgICAgY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVl
KQotICAgICAgICAgICAgY29uZmlndXJhdGlvbi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxl
PVNFUlZFUl9DQUNFUlRGSUxFKQotICAgICAgICAgICAgYXN5bmMgd2l0aCBjb25uZWN0KAotICAg
ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2hvc3QsIHNlbGYuc2VydmVyX3BvcnQsIGNvbmZpZ3Vy
YXRpb249Y29uZmlndXJhdGlvbgotICAgICAgICAgICAgKSBhcyBjbGllbnQ6Ci0gICAgICAgICAg
ICAgICAgYXdhaXQgY2xpZW50LnBpbmcoKQotICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5w
aW5nKCkKLQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAgICAgIHJ1bihydW5f
Y2xpZW50X3BpbmcoKSkKLQotICAgIGRlZiB0ZXN0X3BpbmdfcGFyYWxsZWwoc2VsZik6Ci0gICAg
ICAgIGFzeW5jIGRlZiBydW5fY2xpZW50X3BpbmcoKToKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRp
b24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgICAgIGNvbmZp
Z3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZmlsZT1TRVJWRVJfQ0FDRVJURklMRSkK
LSAgICAgICAgICAgIGFzeW5jIHdpdGggY29ubmVjdCgKLSAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9ob3N0LCBzZWxmLnNlcnZlcl9wb3J0LCBjb25maWd1cmF0aW9uPWNvbmZpZ3VyYXRpb24K
LSAgICAgICAgICAgICkgYXMgY2xpZW50OgotICAgICAgICAgICAgICAgIGNvcm9zID0gW2NsaWVu
dC5waW5nKCkgZm9yIHggaW4gcmFuZ2UoMTYpXQotICAgICAgICAgICAgICAgIGF3YWl0IGFzeW5j
aW8uZ2F0aGVyKCpjb3JvcykKLQotICAgICAgICBydW4oc2VsZi5ydW5fc2VydmVyKCkpCi0gICAg
ICAgIHJ1bihydW5fY2xpZW50X3BpbmcoKSkKLQotICAgIGRlZiB0ZXN0X3NlcnZlcl9yZWNlaXZl
c19nYXJiYWdlKHNlbGYpOgotICAgICAgICBzZXJ2ZXIgPSBydW4oc2VsZi5ydW5fc2VydmVyKCkp
Ci0gICAgICAgIHNlcnZlci5kYXRhZ3JhbV9yZWNlaXZlZChiaW5hc2NpaS51bmhleGxpZnkoImMw
MDAwMDAwMDA4MCIpLCAoIjEuMi4zLjQiLCAxMjM0KSkKLSAgICAgICAgc2VydmVyLmNsb3NlKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2FzeW5jaW9fY29tcGF0LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfYXN5bmNpb19jb21wYXQucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDkwNmRiZjUxMTI0Y2RiNjMyYWRhMzBiNjZjM2YyZTQ0NmVmYmMyY2Mu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rlc3RfYXN5bmNpb19jb21wYXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi1pbXBvcnQgYXN5bmNpbwotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQot
ZnJvbSBhaW9xdWljLmFzeW5jaW8uY29tcGF0IGltcG9ydCBfYXN5bmNjb250ZXh0bWFuYWdlcgot
Ci1mcm9tIC51dGlscyBpbXBvcnQgcnVuCi0KLQotQF9hc3luY2NvbnRleHRtYW5hZ2VyCi1hc3lu
YyBkZWYgc29tZV9jb250ZXh0KCk6Ci0gICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwKQotICAgIHlp
ZWxkCi0gICAgYXdhaXQgYXN5bmNpby5zbGVlcCgwKQotCi0KLWNsYXNzIEFzeW5jaW9Db21wYXRU
ZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9vayhzZWxmKToKLSAgICAgICAgYXN5bmMgZGVm
IHRlc3QoKToKLSAgICAgICAgICAgIGFzeW5jIHdpdGggc29tZV9jb250ZXh0KCk6Ci0gICAgICAg
ICAgICAgICAgcGFzcwotCi0gICAgICAgIHJ1bih0ZXN0KCkpCi0KLSAgICBkZWYgdGVzdF9yYWlz
ZV9leGNlcHRpb24oc2VsZik6Ci0gICAgICAgIGFzeW5jIGRlZiB0ZXN0KCk6Ci0gICAgICAgICAg
ICBhc3luYyB3aXRoIHNvbWVfY29udGV4dCgpOgotICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRp
bWVFcnJvcigic29tZSByZWFzb24iKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
UnVudGltZUVycm9yKToKLSAgICAgICAgICAgIHJ1bih0ZXN0KCkpCi0KLSAgICBkZWYgdGVzdF9y
YWlzZV9leGNlcHRpb25fdHlwZShzZWxmKToKLSAgICAgICAgYXN5bmMgZGVmIHRlc3QoKToKLSAg
ICAgICAgICAgIGFzeW5jIHdpdGggc29tZV9jb250ZXh0KCk6Ci0gICAgICAgICAgICAgICAgcmFp
c2UgUnVudGltZUVycm9yCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1l
RXJyb3IpOgotICAgICAgICAgICAgcnVuKHRlc3QoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy90ZXN0cy90ZXN0X2J1ZmZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2J1ZmZlci5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFkYmM0NGQwZGQyNmYxZWY2ODU2ODI0
ZDU1YmI4ODA5OTI4ODc1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9idWZmZXIucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwyMDEgKzAsMCBAQAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBh
aW9xdWljLmJ1ZmZlciBpbXBvcnQgQnVmZmVyLCBCdWZmZXJSZWFkRXJyb3IsIEJ1ZmZlcldyaXRl
RXJyb3IsIHNpemVfdWludF92YXIKLQotCi1jbGFzcyBCdWZmZXJUZXN0KFRlc3RDYXNlKToKLSAg
ICBkZWYgdGVzdF9kYXRhX3NsaWNlKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1i
Ilx4MDhceDA3XHgwNlx4MDVceDA0XHgwM1x4MDJceDAxIikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChidWYuZGF0YV9zbGljZSgwLCA4KSwgYiJceDA4XHgwN1x4MDZceDA1XHgwNFx4MDNceDAy
XHgwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGFfc2xpY2UoMSwgMyksIGIi
XHgwN1x4MDYiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyUmVhZEVy
cm9yKToKLSAgICAgICAgICAgIGJ1Zi5kYXRhX3NsaWNlKC0xLCAzKQotICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYuZGF0YV9z
bGljZSgwLCA5KQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJv
cik6Ci0gICAgICAgICAgICBidWYuZGF0YV9zbGljZSgxLCAwKQotCi0gICAgZGVmIHRlc3RfcHVs
bF9ieXRlcyhzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceDA4XHgwN1x4MDZc
eDA1XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnB1bGxf
Ynl0ZXMoMyksIGIiXHgwOFx4MDdceDA2IikKLQotICAgIGRlZiB0ZXN0X3B1bGxfYnl0ZXNfbmVn
YXRpdmUoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWIiXHgwOFx4MDdceDA2XHgw
NVx4MDRceDAzXHgwMlx4MDEiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZl
clJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYucHVsbF9ieXRlcygtMSkKLQotICAgIGRlZiB0
ZXN0X3B1bGxfYnl0ZXNfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2Fw
YWNpdHk9MCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3Ip
OgotICAgICAgICAgICAgYnVmLnB1bGxfYnl0ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChidWYudGVsbCgpLCAwKQotCi0gICAgZGVmIHRlc3RfcHVsbF9ieXRlc196ZXJvKHNlbGYpOgot
ICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4MDhceDA3XHgwNlx4MDVceDA0XHgwM1x4MDJc
eDAxIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYucHVsbF9ieXRlcygwKSwgYiIiKQot
Ci0gICAgZGVmIHRlc3RfcHVsbF91aW50OChzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRh
dGE9YiJceDA4XHgwN1x4MDZceDA1XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoYnVmLnB1bGxfdWludDgoKSwgMHgwOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChidWYudGVsbCgpLCAxKQotCi0gICAgZGVmIHRlc3RfcHVsbF91aW50OF90cnVuY2F0ZWQoc2Vs
Zik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0wKQotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYucHVsbF91aW50
OCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMCkKLQotICAgIGRlZiB0
ZXN0X3B1bGxfdWludDE2KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4MDhc
eDA3XHgwNlx4MDVceDA0XHgwM1x4MDJceDAxIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
dWYucHVsbF91aW50MTYoKSwgMHgwODA3KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50
ZWxsKCksIDIpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3VpbnQxNl90cnVuY2F0ZWQoc2VsZik6Ci0g
ICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0xKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYucHVsbF91aW50MTYoKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDApCi0KLSAgICBkZWYgdGVzdF9w
dWxsX3VpbnQzMihzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceDA4XHgwN1x4
MDZceDA1XHgwNFx4MDNceDAyXHgwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnB1
bGxfdWludDMyKCksIDB4MDgwNzA2MDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRl
bGwoKSwgNCkKLQotICAgIGRlZiB0ZXN0X3B1bGxfdWludDMyX3RydW5jYXRlZChzZWxmKToKLSAg
ICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTMpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoQnVmZmVyUmVhZEVycm9yKToKLSAgICAgICAgICAgIGJ1Zi5wdWxsX3VpbnQzMigpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMCkKLQotICAgIGRlZiB0ZXN0X3B1
bGxfdWludDY0KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4MDhceDA3XHgw
Nlx4MDVceDA0XHgwM1x4MDJceDAxIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYucHVs
bF91aW50NjQoKSwgMHgwODA3MDYwNTA0MDMwMjAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGJ1Zi50ZWxsKCksIDgpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3VpbnQ2NF90cnVuY2F0ZWQoc2Vs
Zik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT03KQotICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICBidWYucHVsbF91aW50
NjQoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDApCi0KLSAgICBkZWYg
dGVzdF9wdXNoX2J5dGVzKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MykK
LSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYiJceDA4XHgwN1x4MDYiKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1Zi5kYXRhLCBiIlx4MDhceDA3XHgwNiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYnVmLnRlbGwoKSwgMykKLQotICAgIGRlZiB0ZXN0X3B1c2hfYnl0ZXNfdHJ1bmNhdGVk
KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MykKLSAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJXcml0ZUVycm9yKToKLSAgICAgICAgICAgIGJ1Zi5wdXNo
X2J5dGVzKGIiXHgwOFx4MDdceDA2XHgwNSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVm
LnRlbGwoKSwgMCkKLQotICAgIGRlZiB0ZXN0X3B1c2hfYnl0ZXNfemVybyhzZWxmKToKLSAgICAg
ICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTMpCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGIiIikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiIiKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1Zi50ZWxsKCksIDApCi0KLSAgICBkZWYgdGVzdF9wdXNoX3VpbnQ4KHNlbGYp
OgotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MSkKLSAgICAgICAgYnVmLnB1c2hfdWlu
dDgoMHgwOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiJceDA4IikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAxKQotCi0gICAgZGVmIHRlc3RfcHVz
aF91aW50MTYoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0yKQotICAgICAg
ICBidWYucHVzaF91aW50MTYoMHgwODA3KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5k
YXRhLCBiIlx4MDhceDA3IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCAy
KQotCi0gICAgZGVmIHRlc3RfcHVzaF91aW50MzIoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cihjYXBhY2l0eT00KQotICAgICAgICBidWYucHVzaF91aW50MzIoMHgwODA3MDYwNSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgYiJceDA4XHgwN1x4MDZceDA1IikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCA0KQotCi0gICAgZGVmIHRlc3RfcHVzaF91
aW50NjQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT04KQotICAgICAgICBi
dWYucHVzaF91aW50NjQoMHgwODA3MDYwNTA0MDMwMjAxKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJ1Zi5kYXRhLCBiIlx4MDhceDA3XHgwNlx4MDVceDA0XHgwM1x4MDJceDAxIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCA4KQotCi0gICAgZGVmIHRlc3Rfc2Vlayhz
ZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiIwMTIzNDU2NyIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoYnVmLmVvZigpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50
ZWxsKCksIDApCi0KLSAgICAgICAgYnVmLnNlZWsoNCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShidWYuZW9mKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgNCkKLQot
ICAgICAgICBidWYuc2Vlayg4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVmLmVvZigpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDgpCi0KLSAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAgYnVmLnNlZWso
LTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgOCkKLSAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3IpOgotICAgICAgICAgICAgYnVmLnNl
ZWsoOSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVsbCgpLCA4KQotCi0KLWNsYXNz
IFVpbnRWYXJUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgcm91bmR0cmlwKHNlbGYsIGRhdGEsIHZh
bHVlKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChidWYucHVsbF91aW50X3ZhcigpLCB2YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChidWYudGVsbCgpLCBsZW4oZGF0YSkpCi0KLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFj
aXR5PTgpCi0gICAgICAgIGJ1Zi5wdXNoX3VpbnRfdmFyKHZhbHVlKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfdWludF92YXIoc2VsZik6
Ci0gICAgICAgICMgMSBieXRlCi0gICAgICAgIHNlbGYucm91bmR0cmlwKGIiXHgwMCIsIDApCi0g
ICAgICAgIHNlbGYucm91bmR0cmlwKGIiXHgwMSIsIDEpCi0gICAgICAgIHNlbGYucm91bmR0cmlw
KGIiXHgyNSIsIDM3KQotICAgICAgICBzZWxmLnJvdW5kdHJpcChiIlx4M2YiLCA2MykKLQotICAg
ICAgICAjIDIgYnl0ZXMKLSAgICAgICAgc2VsZi5yb3VuZHRyaXAoYiJceDdiXHhiZCIsIDE1Mjkz
KQotICAgICAgICBzZWxmLnJvdW5kdHJpcChiIlx4N2ZceGZmIiwgMTYzODMpCi0KLSAgICAgICAg
IyA0IGJ5dGVzCi0gICAgICAgIHNlbGYucm91bmR0cmlwKGIiXHg5ZFx4N2ZceDNlXHg3ZCIsIDQ5
NDg3ODMzMykKLSAgICAgICAgc2VsZi5yb3VuZHRyaXAoYiJceGJmXHhmZlx4ZmZceGZmIiwgMTA3
Mzc0MTgyMykKLQotICAgICAgICAjIDggYnl0ZXMKLSAgICAgICAgc2VsZi5yb3VuZHRyaXAoYiJc
eGMyXHgxOVx4N2NceDVlXHhmZlx4MTRceGU4XHg4YyIsIDE1MTI4ODgwOTk0MTk1MjY1MikKLSAg
ICAgICAgc2VsZi5yb3VuZHRyaXAoYiJceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZiIs
IDQ2MTE2ODYwMTg0MjczODc5MDMpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3VpbnRfdmFyX3RydW5j
YXRlZChzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PTApCi0gICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyUmVhZEVycm9yKToKLSAgICAgICAgICAgIGJ1Zi5w
dWxsX3VpbnRfdmFyKCkKLQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4ZmYiKQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAg
ICBidWYucHVsbF91aW50X3ZhcigpCi0KLSAgICBkZWYgdGVzdF9wdXNoX3VpbnRfdmFyX3Rvb19i
aWcoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT04KQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgYnVmLnB1
c2hfdWludF92YXIoNDYxMTY4NjAxODQyNzM4NzkwNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIHN0cihjbS5leGNlcHRpb24pLCAiSW50ZWdlciBpcyB0b28gYmlnIGZv
ciBhIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIgotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9z
aXplX3VpbnRfdmFyKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpemVfdWludF92
YXIoNjMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpemVfdWludF92YXIoMTYzODMp
LCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpemVfdWludF92YXIoMTA3Mzc0MTgyMyks
IDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2l6ZV91aW50X3Zhcig0NjExNjg2MDE4NDI3
Mzg3OTAzKSwgOCkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Ip
IGFzIGNtOgotICAgICAgICAgICAgc2l6ZV91aW50X3Zhcig0NjExNjg2MDE4NDI3Mzg3OTA0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyKGNtLmV4Y2VwdGlvbiks
ICJJbnRlZ2VyIGlzIHRvbyBiaWcgZm9yIGEgdmFyaWFibGUtbGVuZ3RoIGludGVnZXIiCi0gICAg
ICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2Nvbm5lY3Rpb24ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9jb25uZWN0aW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MjdlMWMwNDU3NDlmNmY4ZmUxYzM1MTgwMGE0MmQ5YzgyYWQ4Njc3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVp
Yy90ZXN0cy90ZXN0X2Nvbm5lY3Rpb24ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODAwICswLDAg
QEAKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQgYmluYXNjaWkKLWltcG9ydCBjb250ZXh0bGliCi1p
bXBvcnQgaW8KLWltcG9ydCB0aW1lCi1mcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQotCi1m
cm9tIGFpb3F1aWMgaW1wb3J0IHRscwotZnJvbSBhaW9xdWljLmJ1ZmZlciBpbXBvcnQgVUlOVF9W
QVJfTUFYLCBCdWZmZXIsIGVuY29kZV91aW50X3ZhcgotZnJvbSBhaW9xdWljLnF1aWMgaW1wb3J0
IGV2ZW50cwotZnJvbSBhaW9xdWljLnF1aWMuY29uZmlndXJhdGlvbiBpbXBvcnQgUXVpY0NvbmZp
Z3VyYXRpb24KLWZyb20gYWlvcXVpYy5xdWljLmNvbm5lY3Rpb24gaW1wb3J0ICgKLSAgICBRdWlj
Q29ubmVjdGlvbiwKLSAgICBRdWljQ29ubmVjdGlvbkVycm9yLAotICAgIFF1aWNOZXR3b3JrUGF0
aCwKLSAgICBRdWljUmVjZWl2ZUNvbnRleHQsCi0pCi1mcm9tIGFpb3F1aWMucXVpYy5jcnlwdG8g
aW1wb3J0IENyeXB0b1BhaXIKLWZyb20gYWlvcXVpYy5xdWljLmxvZ2dlciBpbXBvcnQgUXVpY0xv
Z2dlcgotZnJvbSBhaW9xdWljLnF1aWMucGFja2V0IGltcG9ydCAoCi0gICAgUEFDS0VUX1RZUEVf
SU5JVElBTCwKLSAgICBRdWljRXJyb3JDb2RlLAotICAgIFF1aWNGcmFtZVR5cGUsCi0gICAgZW5j
b2RlX3F1aWNfcmV0cnksCi0gICAgZW5jb2RlX3F1aWNfdmVyc2lvbl9uZWdvdGlhdGlvbiwKLSkK
LWZyb20gYWlvcXVpYy5xdWljLnBhY2tldF9idWlsZGVyIGltcG9ydCBRdWljRGVsaXZlcnlTdGF0
ZSwgUXVpY1BhY2tldEJ1aWxkZXIKLWZyb20gYWlvcXVpYy5xdWljLnJlY292ZXJ5IGltcG9ydCBR
dWljUGFja2V0UGFjZXIKLQotZnJvbSAudXRpbHMgaW1wb3J0ICgKLSAgICBTRVJWRVJfQ0FDRVJU
RklMRSwKLSAgICBTRVJWRVJfQ0VSVEZJTEUsCi0gICAgU0VSVkVSX0NFUlRGSUxFX1dJVEhfQ0hB
SU4sCi0gICAgU0VSVkVSX0tFWUZJTEUsCi0pCi0KLUNMSUVOVF9BRERSID0gKCIxLjIuMy40Iiwg
MTIzNCkKLQotU0VSVkVSX0FERFIgPSAoIjIuMy40LjUiLCA0NDMzKQotCi0KLWNsYXNzIFNlc3Np
b25UaWNrZXRTdG9yZToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYudGlj
a2V0cyA9IHt9Ci0KLSAgICBkZWYgYWRkKHNlbGYsIHRpY2tldCk6Ci0gICAgICAgIHNlbGYudGlj
a2V0c1t0aWNrZXQudGlja2V0XSA9IHRpY2tldAotCi0gICAgZGVmIHBvcChzZWxmLCBsYWJlbCk6
Ci0gICAgICAgIHJldHVybiBzZWxmLnRpY2tldHMucG9wKGxhYmVsLCBOb25lKQotCi0KLWRlZiBj
bGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCwgZXBvY2g9dGxzLkVwb2NoLk9ORV9SVFQpOgot
ICAgIHJldHVybiBRdWljUmVjZWl2ZUNvbnRleHQoCi0gICAgICAgIGVwb2NoPWVwb2NoLAotICAg
ICAgICBob3N0X2NpZD1jbGllbnQuaG9zdF9jaWQsCi0gICAgICAgIG5ldHdvcmtfcGF0aD1jbGll
bnQuX25ldHdvcmtfcGF0aHNbMF0sCi0gICAgICAgIHF1aWNfbG9nZ2VyX2ZyYW1lcz1bXSwKLSAg
ICAgICAgdGltZT1hc3luY2lvLmdldF9ldmVudF9sb29wKCkudGltZSgpLAotICAgICkKLQotCi1k
ZWYgY29uc3VtZV9ldmVudHMoY29ubmVjdGlvbik6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
ZXZlbnQgPSBjb25uZWN0aW9uLm5leHRfZXZlbnQoKQotICAgICAgICBpZiBldmVudCBpcyBOb25l
OgotICAgICAgICAgICAgYnJlYWsKLQotCi1kZWYgY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNl
bGYsICoqY2xpZW50X29wdGlvbnMpOgotICAgIGNsaWVudCA9IFF1aWNDb25uZWN0aW9uKAotICAg
ICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKAotICAgICAgICAgICAgaXNfY2xp
ZW50PVRydWUsIHF1aWNfbG9nZ2VyPVF1aWNMb2dnZXIoKSwgKipjbGllbnRfb3B0aW9ucwotICAg
ICAgICApCi0gICAgKQotICAgIGNsaWVudC5fYWNrX2RlbGF5ID0gMAotCi0gICAgIyBraWNrLW9m
ZiBoYW5kc2hha2UKLSAgICBjbGllbnQuY29ubmVjdChTRVJWRVJfQUREUiwgbm93PXRpbWUudGlt
ZSgpKQotICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAxKQotCi0gICAgcmV0dXJu
IGNsaWVudAotCi0KLUBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCi1kZWYgY2xpZW50X2FuZF9z
ZXJ2ZXIoCi0gICAgY2xpZW50X2t3YXJncz17fSwKLSAgICBjbGllbnRfb3B0aW9ucz17fSwKLSAg
ICBjbGllbnRfcGF0Y2g9bGFtYmRhIHg6IE5vbmUsCi0gICAgaGFuZHNoYWtlPVRydWUsCi0gICAg
c2VydmVyX2t3YXJncz17fSwKLSAgICBzZXJ2ZXJfY2VydGZpbGU9U0VSVkVSX0NFUlRGSUxFLAot
ICAgIHNlcnZlcl9rZXlmaWxlPVNFUlZFUl9LRVlGSUxFLAotICAgIHNlcnZlcl9vcHRpb25zPXt9
LAotICAgIHNlcnZlcl9wYXRjaD1sYW1iZGEgeDogTm9uZSwKLSk6Ci0gICAgY2xpZW50X2NvbmZp
Z3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbigKLSAgICAgICAgaXNfY2xpZW50PVRydWUsIHF1
aWNfbG9nZ2VyPVF1aWNMb2dnZXIoKSwgKipjbGllbnRfb3B0aW9ucwotICAgICkKLSAgICBjbGll
bnRfY29uZmlndXJhdGlvbi5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlPVNFUlZFUl9DQUNF
UlRGSUxFKQotCi0gICAgY2xpZW50ID0gUXVpY0Nvbm5lY3Rpb24oY29uZmlndXJhdGlvbj1jbGll
bnRfY29uZmlndXJhdGlvbiwgKipjbGllbnRfa3dhcmdzKQotICAgIGNsaWVudC5fYWNrX2RlbGF5
ID0gMAotICAgIGRpc2FibGVfcGFja2V0X3BhY2luZyhjbGllbnQpCi0gICAgY2xpZW50X3BhdGNo
KGNsaWVudCkKLQotICAgIHNlcnZlcl9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24o
Ci0gICAgICAgIGlzX2NsaWVudD1GYWxzZSwgcXVpY19sb2dnZXI9UXVpY0xvZ2dlcigpLCAqKnNl
cnZlcl9vcHRpb25zCi0gICAgKQotICAgIHNlcnZlcl9jb25maWd1cmF0aW9uLmxvYWRfY2VydF9j
aGFpbihzZXJ2ZXJfY2VydGZpbGUsIHNlcnZlcl9rZXlmaWxlKQotCi0gICAgc2VydmVyID0gUXVp
Y0Nvbm5lY3Rpb24oY29uZmlndXJhdGlvbj1zZXJ2ZXJfY29uZmlndXJhdGlvbiwgKipzZXJ2ZXJf
a3dhcmdzKQotICAgIHNlcnZlci5fYWNrX2RlbGF5ID0gMAotICAgIGRpc2FibGVfcGFja2V0X3Bh
Y2luZyhzZXJ2ZXIpCi0gICAgc2VydmVyX3BhdGNoKHNlcnZlcikKLQotICAgICMgcGVyZm9ybSBo
YW5kc2hha2UKLSAgICBpZiBoYW5kc2hha2U6Ci0gICAgICAgIGNsaWVudC5jb25uZWN0KFNFUlZF
Ul9BRERSLCBub3c9dGltZS50aW1lKCkpCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDMpOgotICAg
ICAgICAgICAgcm91bmR0cmlwKGNsaWVudCwgc2VydmVyKQotCi0gICAgeWllbGQgY2xpZW50LCBz
ZXJ2ZXIKLQotICAgICMgY2xvc2UKLSAgICBjbGllbnQuY2xvc2UoKQotICAgIHNlcnZlci5jbG9z
ZSgpCi0KLQotZGVmIGRpc2FibGVfcGFja2V0X3BhY2luZyhjb25uZWN0aW9uKToKLSAgICBjbGFz
cyBEdW1teVBhY2tldFBhY2VyKFF1aWNQYWNrZXRQYWNlcik6Ci0gICAgICAgIGRlZiBuZXh0X3Nl
bmRfdGltZShzZWxmLCBub3cpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGNvbm5l
Y3Rpb24uX2xvc3MuX3BhY2VyID0gRHVtbXlQYWNrZXRQYWNlcigpCi0KLQotZGVmIHNlcXVlbmNl
X251bWJlcnMoY29ubmVjdGlvbl9pZHMpOgotICAgIHJldHVybiBsaXN0KG1hcChsYW1iZGEgeDog
eC5zZXF1ZW5jZV9udW1iZXIsIGNvbm5lY3Rpb25faWRzKSkKLQotCi1kZWYgZHJvcChzZW5kZXIp
OgotICAgICIiIgotICAgIERyb3AgZGF0YWdyYW1zIGZyb20gYHNlbmRlcmAuCi0gICAgIiIiCi0g
ICAgcmV0dXJuIGxlbihzZW5kZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PXRpbWUudGltZSgpKSkK
LQotCi1kZWYgcm91bmR0cmlwKHNlbmRlciwgcmVjZWl2ZXIpOgotICAgICIiIgotICAgIFNlbmQg
ZGF0YWdyYW1zIGZyb20gYHNlbmRlcmAgdG8gYHJlY2VpdmVyYCBhbmQgYmFjay4KLSAgICAiIiIK
LSAgICByZXR1cm4gKHRyYW5zZmVyKHNlbmRlciwgcmVjZWl2ZXIpLCB0cmFuc2ZlcihyZWNlaXZl
ciwgc2VuZGVyKSkKLQotCi1kZWYgdHJhbnNmZXIoc2VuZGVyLCByZWNlaXZlcik6Ci0gICAgIiIi
Ci0gICAgU2VuZCBkYXRhZ3JhbXMgZnJvbSBgc2VuZGVyYCB0byBgcmVjZWl2ZXJgLgotICAgICIi
IgotICAgIGRhdGFncmFtcyA9IDAKLSAgICBmcm9tX2FkZHIgPSBDTElFTlRfQUREUiBpZiBzZW5k
ZXIuX2lzX2NsaWVudCBlbHNlIFNFUlZFUl9BRERSCi0gICAgZm9yIGRhdGEsIGFkZHIgaW4gc2Vu
ZGVyLmRhdGFncmFtc190b19zZW5kKG5vdz10aW1lLnRpbWUoKSk6Ci0gICAgICAgIGRhdGFncmFt
cyArPSAxCi0gICAgICAgIHJlY2VpdmVyLnJlY2VpdmVfZGF0YWdyYW0oZGF0YSwgZnJvbV9hZGRy
LCBub3c9dGltZS50aW1lKCkpCi0gICAgcmV0dXJuIGRhdGFncmFtcwotCi0KLWNsYXNzIFF1aWND
b25uZWN0aW9uVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIGNoZWNrX2hhbmRzaGFrZShzZWxmLCBj
bGllbnQsIHNlcnZlciwgYWxwbl9wcm90b2NvbD1Ob25lKToKLSAgICAgICAgIiIiCi0gICAgICAg
IENoZWNrIGhhbmRzaGFrZSBjb21wbGV0ZWQuCi0gICAgICAgICIiIgotICAgICAgICBldmVudCA9
IGNsaWVudC5uZXh0X2V2ZW50KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50
KSwgZXZlbnRzLlByb3RvY29sTmVnb3RpYXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
dmVudC5hbHBuX3Byb3RvY29sLCBhbHBuX3Byb3RvY29sKQotICAgICAgICBldmVudCA9IGNsaWVu
dC5uZXh0X2V2ZW50KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50KSwgZXZl
bnRzLkhhbmRzaGFrZUNvbXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5h
bHBuX3Byb3RvY29sLCBhbHBuX3Byb3RvY29sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2
ZW50LmVhcmx5X2RhdGFfYWNjZXB0ZWQsIEZhbHNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV2ZW50LnNlc3Npb25fcmVzdW1lZCwgRmFsc2UpCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDcp
OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVudC5uZXh0X2V2ZW50KCkp
LCBldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShj
bGllbnQubmV4dF9ldmVudCgpKQotCi0gICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZlbnQo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVudHMuUHJvdG9jb2xO
ZWdvdGlhdGVkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmFscG5fcHJvdG9jb2ws
IGFscG5fcHJvdG9jb2wpCi0gICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVudHMuSGFuZHNoYWtlQ29tcGxl
dGVkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmFscG5fcHJvdG9jb2wsIGFscG5f
cHJvdG9jb2wpCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDcpOgotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0eXBlKHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuQ29ubmVjdGlvbklk
SXNzdWVkKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZXJ2ZXIubmV4dF9ldmVudCgpKQot
Ci0gICAgZGVmIHRlc3RfY29ubmVjdChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3Nl
cnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNoZWNrIGhhbmRzaGFr
ZSBjb21wbGV0ZWQKLSAgICAgICAgICAgIHNlbGYuY2hlY2tfaGFuZHNoYWtlKGNsaWVudD1jbGll
bnQsIHNlcnZlcj1zZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgY2hlY2sgZWFjaCBlbmRwb2ludCBo
YXMgYXZhaWxhYmxlIGNvbm5lY3Rpb24gSURzIGZvciB0aGUgcGVlcgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXJzKGNsaWVudC5f
cGVlcl9jaWRfYXZhaWxhYmxlKSwgWzEsIDIsIDMsIDQsIDUsIDYsIDddCi0gICAgICAgICAgICAp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNl
X251bWJlcnMoc2VydmVyLl9wZWVyX2NpZF9hdmFpbGFibGUpLCBbMSwgMiwgMywgNCwgNSwgNiwg
N10KLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBjbGllbnQgY2xvc2VzIHRoZSBjb25u
ZWN0aW9uCi0gICAgICAgICAgICBjbGllbnQuY2xvc2UoKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0cmFuc2ZlcihjbGllbnQsIHNlcnZlciksIDEpCi0KLSAgICAgICAgICAgICMgY2hl
Y2sgY29ubmVjdGlvbiBjbG9zZXMgb24gdGhlIGNsaWVudCBzaWRlCi0gICAgICAgICAgICBjbGll
bnQuaGFuZGxlX3RpbWVyKGNsaWVudC5nZXRfdGltZXIoKSkKLSAgICAgICAgICAgIGV2ZW50ID0g
Y2xpZW50Lm5leHRfZXZlbnQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2
ZW50KSwgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChldmVudC5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLk5PX0VSUk9SKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5mcmFtZV90eXBlLCBOb25lKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5yZWFzb25fcGhyYXNlLCAiIikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0SXNOb25lKGNsaWVudC5uZXh0X2V2ZW50KCkpCi0KLSAgICAgICAgICAgICMg
Y2hlY2sgY29ubmVjdGlvbiBjbG9zZXMgb24gdGhlIHNlcnZlciBzaWRlCi0gICAgICAgICAgICBz
ZXJ2ZXIuaGFuZGxlX3RpbWVyKHNlcnZlci5nZXRfdGltZXIoKSkKLSAgICAgICAgICAgIGV2ZW50
ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBl
KGV2ZW50KSwgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChldmVudC5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLk5PX0VSUk9SKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5mcmFtZV90eXBlLCBOb25lKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5yZWFzb25fcGhyYXNlLCAiIikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlcnZlci5uZXh0X2V2ZW50KCkpCi0KLSAgICAgICAgICAg
ICMgY2hlY2sgY2xpZW50IGxvZwotICAgICAgICAgICAgY2xpZW50X2xvZyA9IGNsaWVudC5jb25m
aWd1cmF0aW9uLnF1aWNfbG9nZ2VyLnRvX2RpY3QoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRH
cmVhdGVyKGxlbihjbGllbnRfbG9nWyJ0cmFjZXMiXVswXVsiZXZlbnRzIl0pLCAyMCkKLQotICAg
ICAgICAgICAgIyBjaGVjayBzZXJ2ZXIgbG9nCi0gICAgICAgICAgICBzZXJ2ZXJfbG9nID0gc2Vy
dmVyLmNvbmZpZ3VyYXRpb24ucXVpY19sb2dnZXIudG9fZGljdCgpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEdyZWF0ZXIobGVuKHNlcnZlcl9sb2dbInRyYWNlcyJdWzBdWyJldmVudHMiXSksIDIw
KQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF93aXRoX2FscG4oc2VsZik6Ci0gICAgICAgIHdpdGgg
Y2xpZW50X2FuZF9zZXJ2ZXIoCi0gICAgICAgICAgICBjbGllbnRfb3B0aW9ucz17ImFscG5fcHJv
dG9jb2xzIjogWyJoMy0yNSIsICJocS0yNSJdfSwKLSAgICAgICAgICAgIHNlcnZlcl9vcHRpb25z
PXsiYWxwbl9wcm90b2NvbHMiOiBbImhxLTI1Il19LAotICAgICAgICApIGFzIChjbGllbnQsIHNl
cnZlcik6Ci0gICAgICAgICAgICAjIGNoZWNrIGhhbmRzaGFrZSBjb21wbGV0ZWQKLSAgICAgICAg
ICAgIHNlbGYuY2hlY2tfaGFuZHNoYWtlKGNsaWVudD1jbGllbnQsIHNlcnZlcj1zZXJ2ZXIsIGFs
cG5fcHJvdG9jb2w9ImhxLTI1IikKLQotICAgIGRlZiB0ZXN0X2Nvbm5lY3Rfd2l0aF9zZWNyZXRz
X2xvZyhzZWxmKToKLSAgICAgICAgY2xpZW50X2xvZ19maWxlID0gaW8uU3RyaW5nSU8oKQotICAg
ICAgICBzZXJ2ZXJfbG9nX2ZpbGUgPSBpby5TdHJpbmdJTygpCi0gICAgICAgIHdpdGggY2xpZW50
X2FuZF9zZXJ2ZXIoCi0gICAgICAgICAgICBjbGllbnRfb3B0aW9ucz17InNlY3JldHNfbG9nX2Zp
bGUiOiBjbGllbnRfbG9nX2ZpbGV9LAotICAgICAgICAgICAgc2VydmVyX29wdGlvbnM9eyJzZWNy
ZXRzX2xvZ19maWxlIjogc2VydmVyX2xvZ19maWxlfSwKLSAgICAgICAgKSBhcyAoY2xpZW50LCBz
ZXJ2ZXIpOgotICAgICAgICAgICAgIyBjaGVjayBoYW5kc2hha2UgY29tcGxldGVkCi0gICAgICAg
ICAgICBzZWxmLmNoZWNrX2hhbmRzaGFrZShjbGllbnQ9Y2xpZW50LCBzZXJ2ZXI9c2VydmVyKQot
Ci0gICAgICAgICAgICAjIGNoZWNrIHNlY3JldHMgd2VyZSBsb2dnZWQKLSAgICAgICAgICAgIGNs
aWVudF9sb2cgPSBjbGllbnRfbG9nX2ZpbGUuZ2V0dmFsdWUoKQotICAgICAgICAgICAgc2VydmVy
X2xvZyA9IHNlcnZlcl9sb2dfZmlsZS5nZXR2YWx1ZSgpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNsaWVudF9sb2csIHNlcnZlcl9sb2cpCi0gICAgICAgICAgICBsYWJlbHMgPSBbXQot
ICAgICAgICAgICAgZm9yIGxpbmUgaW4gY2xpZW50X2xvZy5zcGxpdGxpbmVzKCk6Ci0gICAgICAg
ICAgICAgICAgbGFiZWxzLmFwcGVuZChsaW5lLnNwbGl0KClbMF0pCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGxhYmVscywKLSAgICAgICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgICAgICJRVUlDX1NFUlZFUl9IQU5EU0hBS0VfVFJBRkZJQ19TRUNS
RVQiLAotICAgICAgICAgICAgICAgICAgICAiUVVJQ19DTElFTlRfSEFORFNIQUtFX1RSQUZGSUNf
U0VDUkVUIiwKLSAgICAgICAgICAgICAgICAgICAgIlFVSUNfU0VSVkVSX1RSQUZGSUNfU0VDUkVU
XzAiLAotICAgICAgICAgICAgICAgICAgICAiUVVJQ19DTElFTlRfVFJBRkZJQ19TRUNSRVRfMCIs
Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2Nvbm5l
Y3Rfd2l0aF9jZXJ0X2NoYWluKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVy
KHNlcnZlcl9jZXJ0ZmlsZT1TRVJWRVJfQ0VSVEZJTEVfV0lUSF9DSEFJTikgYXMgKAotICAgICAg
ICAgICAgY2xpZW50LAotICAgICAgICAgICAgc2VydmVyLAotICAgICAgICApOgotICAgICAgICAg
ICAgIyBjaGVjayBoYW5kc2hha2UgY29tcGxldGVkCi0gICAgICAgICAgICBzZWxmLmNoZWNrX2hh
bmRzaGFrZShjbGllbnQ9Y2xpZW50LCBzZXJ2ZXI9c2VydmVyKQotCi0gICAgZGVmIHRlc3RfY29u
bmVjdF93aXRoX2xvc3NfMShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIENoZWNrIGNvbm5l
Y3Rpb24gaXMgZXN0YWJsaXNoZWQgZXZlbiBpbiB0aGUgY2xpZW50J3MgSU5JVElBTCBpcyBsb3N0
LgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgZGF0YWdyYW1fc2l6ZXMoaXRlbXMpOgotICAg
ICAgICAgICAgcmV0dXJuIFtsZW4oeFswXSkgZm9yIHggaW4gaXRlbXNdCi0KLSAgICAgICAgY2xp
ZW50X2NvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAg
ICAgICAgY2xpZW50X2NvbmZpZ3VyYXRpb24ubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhZmlsZT1T
RVJWRVJfQ0FDRVJURklMRSkKLQotICAgICAgICBjbGllbnQgPSBRdWljQ29ubmVjdGlvbihjb25m
aWd1cmF0aW9uPWNsaWVudF9jb25maWd1cmF0aW9uKQotICAgICAgICBjbGllbnQuX2Fja19kZWxh
eSA9IDAKLQotICAgICAgICBzZXJ2ZXJfY29uZmlndXJhdGlvbiA9IFF1aWNDb25maWd1cmF0aW9u
KGlzX2NsaWVudD1GYWxzZSkKLSAgICAgICAgc2VydmVyX2NvbmZpZ3VyYXRpb24ubG9hZF9jZXJ0
X2NoYWluKFNFUlZFUl9DRVJURklMRSwgU0VSVkVSX0tFWUZJTEUpCi0KLSAgICAgICAgc2VydmVy
ID0gUXVpY0Nvbm5lY3Rpb24oY29uZmlndXJhdGlvbj1zZXJ2ZXJfY29uZmlndXJhdGlvbikKLSAg
ICAgICAgc2VydmVyLl9hY2tfZGVsYXkgPSAwCi0KLSAgICAgICAgIyBjbGllbnQgc2VuZHMgSU5J
VElBTAotICAgICAgICBub3cgPSAwLjAKLSAgICAgICAgY2xpZW50LmNvbm5lY3QoU0VSVkVSX0FE
RFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gY2xpZW50LmRhdGFncmFtc190b19zZW5kKG5v
dz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBb
MTI4MF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LmdldF90aW1lcigpLCAxLjAp
Ci0KLSAgICAgICAgIyBJTklUSUFMIGlzIGxvc3QKLSAgICAgICAgbm93ID0gMS4wCi0gICAgICAg
IGNsaWVudC5oYW5kbGVfdGltZXIobm93PW5vdykKLSAgICAgICAgaXRlbXMgPSBjbGllbnQuZGF0
YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3Jh
bV9zaXplcyhpdGVtcyksIFsxMjgwXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQu
Z2V0X3RpbWVyKCksIDMuMCkKLQotICAgICAgICAjIHNlcnZlciByZWNlaXZlcyBJTklUSUFMLCBz
ZW5kcyBJTklUSUFMICsgSEFORFNIQUtFCi0gICAgICAgIG5vdyA9IDEuMQotICAgICAgICBzZXJ2
ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FERFIsIG5vdz1ub3cpCi0g
ICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMTI4MCwgMTAzMF0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLmdldF90aW1lcigpLCAyLjEpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMF0uc2VudF9wYWNrZXRz
KSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyLl9sb3NzLnNwYWNlc1sx
XS5zZW50X3BhY2tldHMpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVy
Lm5leHRfZXZlbnQoKSksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKHNlcnZlci5uZXh0X2V2ZW50KCkpCi0KLSAgICAgICAgIyBoYW5kc2hha2Ug
Y29udGludWVzIG5vcm1hbGx5Ci0gICAgICAgIG5vdyA9IDEuMgotICAgICAgICBjbGllbnQucmVj
ZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgU0VSVkVSX0FERFIsIG5vdz1ub3cpCi0gICAgICAg
IGNsaWVudC5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzFdWzBdLCBTRVJWRVJfQUREUiwgbm93PW5v
dykKLSAgICAgICAgaXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFszNzZdKQotICAg
ICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKGNsaWVudC5nZXRfdGltZXIoKSwgMS44MjUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRz
LlByb3RvY29sTmVnb3RpYXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVu
dC5uZXh0X2V2ZW50KCkpLCBldmVudHMuSGFuZHNoYWtlQ29tcGxldGVkKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHR5cGUoY2xpZW50Lm5leHRfZXZlbnQoKSksIGV2ZW50cy5Db25uZWN0aW9u
SWRJc3N1ZWQpCi0KLSAgICAgICAgbm93ID0gMS4zCi0gICAgICAgIHNlcnZlci5yZWNlaXZlX2Rh
dGFncmFtKGl0ZW1zWzBdWzBdLCBDTElFTlRfQUREUiwgbm93PW5vdykKLSAgICAgICAgaXRlbXMg
PSBzZXJ2ZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsyMjldKQotICAgICAgICBzZWxmLmFzc2VydEFs
bW9zdEVxdWFsKHNlcnZlci5nZXRfdGltZXIoKSwgMS44MjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMF0uc2VudF9wYWNrZXRzKSwgMCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyLl9sb3NzLnNwYWNlc1sxXS5zZW50X3BhY2tl
dHMpLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVyLm5leHRfZXZlbnQo
KSksIGV2ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dHlwZShzZXJ2ZXIubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCkKLQot
ICAgICAgICBub3cgPSAxLjQKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNb
MF1bMF0sIFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRh
Z3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFt
X3NpemVzKGl0ZW1zKSwgWzMyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChjbGll
bnQuZ2V0X3RpbWVyKCksIDYxLjQpICAjIGlkbGUgdGltZW91dAotCi0gICAgZGVmIHRlc3RfY29u
bmVjdF93aXRoX2xvc3NfMihzZWxmKToKLSAgICAgICAgZGVmIGRhdGFncmFtX3NpemVzKGl0ZW1z
KToKLSAgICAgICAgICAgIHJldHVybiBbbGVuKHhbMF0pIGZvciB4IGluIGl0ZW1zXQotCi0gICAg
ICAgIGNsaWVudF9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRy
dWUpCi0gICAgICAgIGNsaWVudF9jb25maWd1cmF0aW9uLmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhj
YWZpbGU9U0VSVkVSX0NBQ0VSVEZJTEUpCi0KLSAgICAgICAgY2xpZW50ID0gUXVpY0Nvbm5lY3Rp
b24oY29uZmlndXJhdGlvbj1jbGllbnRfY29uZmlndXJhdGlvbikKLSAgICAgICAgY2xpZW50Ll9h
Y2tfZGVsYXkgPSAwCi0KLSAgICAgICAgc2VydmVyX2NvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmln
dXJhdGlvbihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgIHNlcnZlcl9jb25maWd1cmF0aW9uLmxv
YWRfY2VydF9jaGFpbihTRVJWRVJfQ0VSVEZJTEUsIFNFUlZFUl9LRVlGSUxFKQotCi0gICAgICAg
IHNlcnZlciA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249c2VydmVyX2NvbmZpZ3VyYXRp
b24pCi0gICAgICAgIHNlcnZlci5fYWNrX2RlbGF5ID0gMAotCi0gICAgICAgICMgY2xpZW50IHNl
bmRzIElOSVRJQUwKLSAgICAgICAgbm93ID0gMC4wCi0gICAgICAgIGNsaWVudC5jb25uZWN0KFNF
UlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRhZ3JhbXNfdG9f
c2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0
ZW1zKSwgWzEyODBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5nZXRfdGltZXIo
KSwgMS4wKQotCi0gICAgICAgICMgc2VydmVyIHJlY2VpdmVzIElOSVRJQUwsIHNlbmRzIElOSVRJ
QUwgKyBIQU5EU0hBS0UgYnV0IHNlY29uZCBkYXRhZ3JhbSBpcyBsb3N0Ci0gICAgICAgIG5vdyA9
IDAuMQotICAgICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5U
X0FERFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5k
KG5vdz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMp
LCBbMTI4MCwgMTAzMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLmdldF90aW1l
cigpLCAxLjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFj
ZXNbMF0uc2VudF9wYWNrZXRzKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2Vy
dmVyLl9sb3NzLnNwYWNlc1sxXS5zZW50X3BhY2tldHMpLCAyKQotCi0gICAgICAgICMgY2xpZW50
IG9ubHkgcmVjZWl2ZXMgZmlyc3QgZGF0YWdyYW0gYW5kIHNlbmRzIEFDS1MKLSAgICAgICAgbm93
ID0gMC4yCi0gICAgICAgIGNsaWVudC5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBTRVJW
RVJfQUREUiwgbm93PW5vdykKLSAgICAgICAgaXRlbXMgPSBjbGllbnQuZGF0YWdyYW1zX3RvX3Nl
bmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVt
cyksIFs5N10pCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoY2xpZW50LmdldF90aW1l
cigpLCAwLjYyNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVudC5uZXh0X2V2
ZW50KCkpLCBldmVudHMuUHJvdG9jb2xOZWdvdGlhdGVkKQotICAgICAgICBzZWxmLmFzc2VydElz
Tm9uZShjbGllbnQubmV4dF9ldmVudCgpKQotCi0gICAgICAgICMgY2xpZW50IFBUTyAtIEhBTkRT
SEFLRSBQSU5HCi0gICAgICAgIG5vdyA9IGNsaWVudC5nZXRfdGltZXIoKSAgIyB+MC42MjUKLSAg
ICAgICAgY2xpZW50LmhhbmRsZV90aW1lcihub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVu
dC5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRh
dGFncmFtX3NpemVzKGl0ZW1zKSwgWzQ0XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVh
bChjbGllbnQuZ2V0X3RpbWVyKCksIDEuODc1KQotCi0gICAgICAgICMgc2VydmVyIHJlY2VpdmVz
IFBJTkcsIGRpc2NhcmRzIElOSVRJQUwgYW5kIHNlbmRzIEFDSwotICAgICAgICBub3cgPSAwLjcy
NQotICAgICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FE
RFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5v
dz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBb
NDhdKQotICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHNlcnZlci5nZXRfdGltZXIoKSwg
MS4xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzBd
LnNlbnRfcGFja2V0cyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5f
bG9zcy5zcGFjZXNbMV0uc2VudF9wYWNrZXRzKSwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0eXBlKHNlcnZlci5uZXh0X2V2ZW50KCkpLCBldmVudHMuUHJvdG9jb2xOZWdvdGlhdGVkKQot
ICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZXJ2ZXIubmV4dF9ldmVudCgpKQotCi0gICAgICAg
ICMgQUNLcyBhcmUgbG9zdCwgc2VydmVyIHJldHJhbnNtaXRzIEhBTkRTSEFLRQotICAgICAgICBu
b3cgPSBzZXJ2ZXIuZ2V0X3RpbWVyKCkKLSAgICAgICAgc2VydmVyLmhhbmRsZV90aW1lcihub3c9
bm93KQotICAgICAgICBpdGVtcyA9IHNlcnZlci5kYXRhZ3JhbXNfdG9fc2VuZChub3c9bm93KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzEyODAsIDg1
NF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoc2VydmVyLmdldF90aW1lcigpLCAz
LjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMF0u
c2VudF9wYWNrZXRzKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyLl9s
b3NzLnNwYWNlc1sxXS5zZW50X3BhY2tldHMpLCAzKQotICAgICAgICBzZWxmLmFzc2VydElzTm9u
ZShzZXJ2ZXIubmV4dF9ldmVudCgpKQotCi0gICAgICAgICMgaGFuZHNoYWtlIGNvbnRpbnVlcyBu
b3JtYWxseQotICAgICAgICBub3cgPSAxLjIKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdy
YW0oaXRlbXNbMF1bMF0sIFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBjbGllbnQucmVj
ZWl2ZV9kYXRhZ3JhbShpdGVtc1sxXVswXSwgU0VSVkVSX0FERFIsIG5vdz1ub3cpCi0gICAgICAg
IGl0ZW1zID0gY2xpZW50LmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMzI5XSkKLSAgICAgICAgc2VsZi5h
c3NlcnRBbG1vc3RFcXVhbChjbGllbnQuZ2V0X3RpbWVyKCksIDIuNDUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRzLkhhbmRzaGFrZUNv
bXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVudC5uZXh0X2V2ZW50
KCkpLCBldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKQotCi0gICAgICAgIG5vdyA9IDEuMwotICAg
ICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FERFIsIG5v
dz1ub3cpCi0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMjI5XSkK
LSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChzZXJ2ZXIuZ2V0X3RpbWVyKCksIDEuOTI1
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2VydmVyLm5leHRfZXZlbnQoKSksIGV2
ZW50cy5IYW5kc2hha2VDb21wbGV0ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShz
ZXJ2ZXIubmV4dF9ldmVudCgpKSwgZXZlbnRzLkNvbm5lY3Rpb25JZElzc3VlZCkKLQotICAgICAg
ICBub3cgPSAxLjQKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMF1bMF0s
IFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRhZ3JhbXNf
dG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVz
KGl0ZW1zKSwgWzMyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChjbGllbnQuZ2V0
X3RpbWVyKCksIDYxLjQpICAjIGlkbGUgdGltZW91dAotCi0gICAgZGVmIHRlc3RfY29ubmVjdF93
aXRoX2xvc3NfMyhzZWxmKToKLSAgICAgICAgZGVmIGRhdGFncmFtX3NpemVzKGl0ZW1zKToKLSAg
ICAgICAgICAgIHJldHVybiBbbGVuKHhbMF0pIGZvciB4IGluIGl0ZW1zXQotCi0gICAgICAgIGNs
aWVudF9jb25maWd1cmF0aW9uID0gUXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUpCi0g
ICAgICAgIGNsaWVudF9jb25maWd1cmF0aW9uLmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhjYWZpbGU9
U0VSVkVSX0NBQ0VSVEZJTEUpCi0KLSAgICAgICAgY2xpZW50ID0gUXVpY0Nvbm5lY3Rpb24oY29u
ZmlndXJhdGlvbj1jbGllbnRfY29uZmlndXJhdGlvbikKLSAgICAgICAgY2xpZW50Ll9hY2tfZGVs
YXkgPSAwCi0KLSAgICAgICAgc2VydmVyX2NvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlv
bihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgIHNlcnZlcl9jb25maWd1cmF0aW9uLmxvYWRfY2Vy
dF9jaGFpbihTRVJWRVJfQ0VSVEZJTEUsIFNFUlZFUl9LRVlGSUxFKQotCi0gICAgICAgIHNlcnZl
ciA9IFF1aWNDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb249c2VydmVyX2NvbmZpZ3VyYXRpb24pCi0g
ICAgICAgIHNlcnZlci5fYWNrX2RlbGF5ID0gMAotCi0gICAgICAgICMgY2xpZW50IHNlbmRzIElO
SVRJQUwKLSAgICAgICAgbm93ID0gMC4wCi0gICAgICAgIGNsaWVudC5jb25uZWN0KFNFUlZFUl9B
RERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRhZ3JhbXNfdG9fc2VuZChu
b3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1zKSwg
WzEyODBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5nZXRfdGltZXIoKSwgMS4w
KQotCi0gICAgICAgICMgc2VydmVyIHJlY2VpdmVzIElOSVRJQUwsIHNlbmRzIElOSVRJQUwgKyBI
QU5EU0hBS0UKLSAgICAgICAgbm93ID0gMC4xCi0gICAgICAgIHNlcnZlci5yZWNlaXZlX2RhdGFn
cmFtKGl0ZW1zWzBdWzBdLCBDTElFTlRfQUREUiwgbm93PW5vdykKLSAgICAgICAgaXRlbXMgPSBz
ZXJ2ZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsxMjgwLCAxMDMwXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZXJ2ZXIuZ2V0X3RpbWVyKCksIDEuMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsZW4oc2VydmVyLl9sb3NzLnNwYWNlc1swXS5zZW50X3BhY2tldHMpLCAxKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXIuX2xvc3Muc3BhY2VzWzFdLnNlbnRfcGFja2V0cyks
IDIpCi0KLSAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgSU5JVElBTCArIEhBTkRTSEFLRQotICAg
ICAgICBub3cgPSAwLjIKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNbMF1b
MF0sIFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3Jh
bShpdGVtc1sxXVswXSwgU0VSVkVSX0FERFIsIG5vdz1ub3cpCi0gICAgICAgIGl0ZW1zID0gY2xp
ZW50LmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZGF0YWdyYW1fc2l6ZXMoaXRlbXMpLCBbMzc2XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RF
cXVhbChjbGllbnQuZ2V0X3RpbWVyKCksIDAuODI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHR5cGUoY2xpZW50Lm5leHRfZXZlbnQoKSksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShjbGllbnQubmV4dF9ldmVudCgpKSwgZXZlbnRz
LkhhbmRzaGFrZUNvbXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGNsaWVu
dC5uZXh0X2V2ZW50KCkpLCBldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKQotCi0gICAgICAgICMg
c2VydmVyIGNvbXBsZXRlcyBoYW5kc2hha2UKLSAgICAgICAgbm93ID0gMC4zCi0gICAgICAgIHNl
cnZlci5yZWNlaXZlX2RhdGFncmFtKGl0ZW1zWzBdWzBdLCBDTElFTlRfQUREUiwgbm93PW5vdykK
LSAgICAgICAgaXRlbXMgPSBzZXJ2ZXIuZGF0YWdyYW1zX3RvX3NlbmQobm93PW5vdykKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhZ3JhbV9zaXplcyhpdGVtcyksIFsyMjldKQotICAgICAg
ICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHNlcnZlci5nZXRfdGltZXIoKSwgMC44MjUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcnZlci5fbG9zcy5zcGFjZXNbMF0uc2VudF9wYWNr
ZXRzKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyLl9sb3NzLnNwYWNl
c1sxXS5zZW50X3BhY2tldHMpLCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc2Vy
dmVyLm5leHRfZXZlbnQoKSksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShzZXJ2ZXIubmV4dF9ldmVudCgpKSwgZXZlbnRzLkhhbmRzaGFr
ZUNvbXBsZXRlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNlcnZlci5uZXh0X2V2
ZW50KCkpLCBldmVudHMuQ29ubmVjdGlvbklkSXNzdWVkKQotCi0gICAgICAgICMgc2VydmVyIFBU
TyAtIDEtUlRUIFBJTkcKLSAgICAgICAgbm93ID0gMC44MjUKLSAgICAgICAgc2VydmVyLmhhbmRs
ZV90aW1lcihub3c9bm93KQotICAgICAgICBpdGVtcyA9IHNlcnZlci5kYXRhZ3JhbXNfdG9fc2Vu
ZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1z
KSwgWzI5XSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChzZXJ2ZXIuZ2V0X3RpbWVy
KCksIDEuODc1KQotCi0gICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFBJTkcsIHNlbmRzIEFDSwot
ICAgICAgICBub3cgPSAwLjkKLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oaXRlbXNb
MF1bMF0sIFNFUlZFUl9BRERSLCBub3c9bm93KQotICAgICAgICBpdGVtcyA9IGNsaWVudC5kYXRh
Z3JhbXNfdG9fc2VuZChub3c9bm93KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFt
X3NpemVzKGl0ZW1zKSwgWzMyXSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChjbGll
bnQuZ2V0X3RpbWVyKCksIDAuODI1KQotCi0gICAgICAgICMgc2VydmVyIHJlY2VpdmVzIEFDSywg
cmV0cmFuc21pdHMgSEFORFNIQUtFX0RPTkUKLSAgICAgICAgbm93ID0gMS4wCi0gICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2Uoc2VydmVyLl9oYW5kc2hha2VfZG9uZV9wZW5kaW5nKQotICAgICAgICBz
ZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShpdGVtc1swXVswXSwgQ0xJRU5UX0FERFIsIG5vdz1ub3cp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuX2hhbmRzaGFrZV9kb25lX3BlbmRpbmcp
Ci0gICAgICAgIGl0ZW1zID0gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz1ub3cpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VydmVyLl9oYW5kc2hha2VfZG9uZV9wZW5kaW5nKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGFncmFtX3NpemVzKGl0ZW1zKSwgWzIyNF0pCi0KLSAg
ICBkZWYgdGVzdF9jb25uZWN0X3dpdGhfcXVhbnR1bV9yZWFkaW5lc3Moc2VsZik6Ci0gICAgICAg
IHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoY2xpZW50X29wdGlvbnM9eyJxdWFudHVtX3JlYWRpbmVz
c190ZXN0IjogVHJ1ZX0sKSBhcyAoCi0gICAgICAgICAgICBjbGllbnQsCi0gICAgICAgICAgICBz
ZXJ2ZXIsCi0gICAgICAgICk6Ci0gICAgICAgICAgICBzdHJlYW1faWQgPSBjbGllbnQuZ2V0X25l
eHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1f
ZGF0YShzdHJlYW1faWQsIGIiaGVsbG8iKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAxKSkKLQotICAgICAgICAgICAgcmVjZWl2
ZWQgPSBOb25lCi0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgIGV2ZW50
ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXZl
bnQsIGV2ZW50cy5TdHJlYW1EYXRhUmVjZWl2ZWQpOgotICAgICAgICAgICAgICAgICAgICByZWNl
aXZlZCA9IGV2ZW50LmRhdGEKLSAgICAgICAgICAgICAgICBlbGlmIGV2ZW50IGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVjZWl2ZWQsIGIiaGVsbG8iKQotCi0gICAgZGVmIHRlc3RfY29ubmVjdF93aXRoXzBydHQoc2Vs
Zik6Ci0gICAgICAgIGNsaWVudF90aWNrZXQgPSBOb25lCi0gICAgICAgIHRpY2tldF9zdG9yZSA9
IFNlc3Npb25UaWNrZXRTdG9yZSgpCi0KLSAgICAgICAgZGVmIHNhdmVfc2Vzc2lvbl90aWNrZXQo
dGlja2V0KToKLSAgICAgICAgICAgIG5vbmxvY2FsIGNsaWVudF90aWNrZXQKLSAgICAgICAgICAg
IGNsaWVudF90aWNrZXQgPSB0aWNrZXQKLQotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVy
KAotICAgICAgICAgICAgY2xpZW50X2t3YXJncz17InNlc3Npb25fdGlja2V0X2hhbmRsZXIiOiBz
YXZlX3Nlc3Npb25fdGlja2V0fSwKLSAgICAgICAgICAgIHNlcnZlcl9rd2FyZ3M9eyJzZXNzaW9u
X3RpY2tldF9oYW5kbGVyIjogdGlja2V0X3N0b3JlLmFkZH0sCi0gICAgICAgICkgYXMgKGNsaWVu
dCwgc2VydmVyKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICB3aXRoIGNsaWVudF9hbmRf
c2VydmVyKAotICAgICAgICAgICAgY2xpZW50X29wdGlvbnM9eyJzZXNzaW9uX3RpY2tldCI6IGNs
aWVudF90aWNrZXR9LAotICAgICAgICAgICAgc2VydmVyX2t3YXJncz17InNlc3Npb25fdGlja2V0
X2ZldGNoZXIiOiB0aWNrZXRfc3RvcmUucG9wfSwKLSAgICAgICAgICAgIGhhbmRzaGFrZT1GYWxz
ZSwKLSAgICAgICAgKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgY2xpZW50LmNv
bm5lY3QoU0VSVkVSX0FERFIsIG5vdz10aW1lLnRpbWUoKSkKLSAgICAgICAgICAgIHN0cmVhbV9p
ZCA9IGNsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgICAgIGNs
aWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJoZWxsbyIpCi0KLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDIsIDEpKQotCi0g
ICAgICAgICAgICBldmVudCA9IHNlcnZlci5uZXh0X2V2ZW50KCkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5Qcm90b2NvbE5lZ290aWF0ZWQpCi0KLSAg
ICAgICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0eXBlKGV2ZW50KSwgZXZlbnRzLlN0cmVhbURhdGFSZWNlaXZlZCkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZGF0YSwgYiJoZWxsbyIpCi0KLSAgICBkZWYg
dGVzdF9jb25uZWN0X3dpdGhfMHJ0dF9iYWRfbWF4X2Vhcmx5X2RhdGEoc2VsZik6Ci0gICAgICAg
IGNsaWVudF90aWNrZXQgPSBOb25lCi0gICAgICAgIHRpY2tldF9zdG9yZSA9IFNlc3Npb25UaWNr
ZXRTdG9yZSgpCi0KLSAgICAgICAgZGVmIHBhdGNoKHNlcnZlcik6Ci0gICAgICAgICAgICAiIiIK
LSAgICAgICAgICAgIFBhdGNoIHNlcnZlcidzIFRMUyBpbml0aWFsaXphdGlvbiB0byBzZXQgYW4g
aW52YWxpZAotICAgICAgICAgICAgbWF4X2Vhcmx5X2RhdGEgdmFsdWUuCi0gICAgICAgICAgICAi
IiIKLSAgICAgICAgICAgIHJlYWxfaW5pdGlhbGl6ZSA9IHNlcnZlci5faW5pdGlhbGl6ZQotCi0g
ICAgICAgICAgICBkZWYgcGF0Y2hlZF9pbml0aWFsaXplKHBlZXJfY2lkOiBieXRlcyk6Ci0gICAg
ICAgICAgICAgICAgcmVhbF9pbml0aWFsaXplKHBlZXJfY2lkKQotICAgICAgICAgICAgICAgIHNl
cnZlci50bHMuX21heF9lYXJseV9kYXRhID0gMTIzNDUKLQotICAgICAgICAgICAgc2VydmVyLl9p
bml0aWFsaXplID0gcGF0Y2hlZF9pbml0aWFsaXplCi0KLSAgICAgICAgZGVmIHNhdmVfc2Vzc2lv
bl90aWNrZXQodGlja2V0KToKLSAgICAgICAgICAgIG5vbmxvY2FsIGNsaWVudF90aWNrZXQKLSAg
ICAgICAgICAgIGNsaWVudF90aWNrZXQgPSB0aWNrZXQKLQotICAgICAgICB3aXRoIGNsaWVudF9h
bmRfc2VydmVyKAotICAgICAgICAgICAgY2xpZW50X2t3YXJncz17InNlc3Npb25fdGlja2V0X2hh
bmRsZXIiOiBzYXZlX3Nlc3Npb25fdGlja2V0fSwKLSAgICAgICAgICAgIHNlcnZlcl9rd2FyZ3M9
eyJzZXNzaW9uX3RpY2tldF9oYW5kbGVyIjogdGlja2V0X3N0b3JlLmFkZH0sCi0gICAgICAgICAg
ICBzZXJ2ZXJfcGF0Y2g9cGF0Y2gsCi0gICAgICAgICkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAg
ICAgICAgICAgICMgY2hlY2sgaGFuZHNoYWtlIGZhaWxlZAotICAgICAgICAgICAgZXZlbnQgPSBj
bGllbnQubmV4dF9ldmVudCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShldmVudCkK
LQotICAgIGRlZiB0ZXN0X2NoYW5nZV9jb25uZWN0aW9uX2lkKHNlbGYpOgotICAgICAgICB3aXRo
IGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQu
X3BlZXJfY2lkX2F2YWlsYWJsZSksIFsxLCAyLCAzLCA0LCA1LCA2LCA3XQotICAgICAgICAgICAg
KQotCi0gICAgICAgICAgICAjIHRoZSBjbGllbnQgY2hhbmdlcyBjb25uZWN0aW9uIElECi0gICAg
ICAgICAgICBjbGllbnQuY2hhbmdlX2Nvbm5lY3Rpb25faWQoKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0cmFuc2ZlcihjbGllbnQsIHNlcnZlciksIDEpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9w
ZWVyX2NpZF9hdmFpbGFibGUpLCBbMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQot
ICAgICAgICAgICAgIyB0aGUgc2VydmVyIHByb3ZpZGVzIGEgbmV3IGNvbm5lY3Rpb24gSUQKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmZXIoc2VydmVyLCBjbGllbnQpLCAxKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9u
dW1iZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYsIDcsIDhd
Ci0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9jaGFuZ2VfY29ubmVjdGlvbl9pZF9yZXRy
YW5zbWl0X25ld19jb25uZWN0aW9uX2lkKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRf
c2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2
YWlsYWJsZSksIFsxLCAyLCAzLCA0LCA1LCA2LCA3XQotICAgICAgICAgICAgKQotCi0gICAgICAg
ICAgICAjIHRoZSBjbGllbnQgY2hhbmdlcyBjb25uZWN0aW9uIElECi0gICAgICAgICAgICBjbGll
bnQuY2hhbmdlX2Nvbm5lY3Rpb25faWQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
cmFuc2ZlcihjbGllbnQsIHNlcnZlciksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9wZWVyX2NpZF9hdmFp
bGFibGUpLCBbMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAg
IyB0aGUgc2VydmVyIHByb3ZpZGVzIGEgbmV3IGNvbm5lY3Rpb24gSUQsIE5FV19DT05ORUNUSU9O
X0lEIGlzIGxvc3QKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChzZXJ2ZXIpLCAx
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5j
ZV9udW1iZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYsIDdd
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgTkVXX0NPTk5FQ1RJT05fSUQgaXMgcmV0
cmFuc21pdHRlZAotICAgICAgICAgICAgc2VydmVyLl9vbl9uZXdfY29ubmVjdGlvbl9pZF9kZWxp
dmVyeSgKLSAgICAgICAgICAgICAgICBRdWljRGVsaXZlcnlTdGF0ZS5MT1NULCBzZXJ2ZXIuX2hv
c3RfY2lkc1stMV0KLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dHJhbnNmZXIoc2VydmVyLCBjbGllbnQpLCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZh
aWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYsIDcsIDhdCi0gICAgICAgICAgICApCi0KLSAgICBkZWYg
dGVzdF9jaGFuZ2VfY29ubmVjdGlvbl9pZF9yZXRyYW5zbWl0X3JldGlyZV9jb25uZWN0aW9uX2lk
KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2Vy
dmVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc2Vx
dWVuY2VfbnVtYmVycyhjbGllbnQuX3BlZXJfY2lkX2F2YWlsYWJsZSksIFsxLCAyLCAzLCA0LCA1
LCA2LCA3XQotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHRoZSBjbGllbnQgY2hhbmdl
cyBjb25uZWN0aW9uIElELCBSRVRJUkVfQ09OTkVDVElPTl9JRCBpcyBsb3N0Ci0gICAgICAgICAg
ICBjbGllbnQuY2hhbmdlX2Nvbm5lY3Rpb25faWQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkcm9wKGNsaWVudCksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9wZWVyX2NpZF9hdmFpbGFibGUp
LCBbMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBSRVRJ
UkVfQ09OTkVDVElPTl9JRCBpcyByZXRyYW5zbWl0dGVkCi0gICAgICAgICAgICBjbGllbnQuX29u
X3JldGlyZV9jb25uZWN0aW9uX2lkX2RlbGl2ZXJ5KFF1aWNEZWxpdmVyeVN0YXRlLkxPU1QsIDAp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZmVyKGNsaWVudCwgc2VydmVyKSwg
MSkKLQotICAgICAgICAgICAgIyB0aGUgc2VydmVyIHByb3ZpZGVzIGEgbmV3IGNvbm5lY3Rpb24g
SUQKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmZXIoc2VydmVyLCBjbGllbnQp
LCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZXF1
ZW5jZV9udW1iZXJzKGNsaWVudC5fcGVlcl9jaWRfYXZhaWxhYmxlKSwgWzIsIDMsIDQsIDUsIDYs
IDcsIDhdCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9nZXRfbmV4dF9hdmFpbGFibGVf
c3RyZWFtX2lkKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNs
aWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50Ci0gICAgICAgICAgICBzdHJlYW1f
aWQgPSBjbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0cmVhbV9pZCwgMCkKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0
cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiJoZWxsbyIpCi0KLSAgICAgICAgICAgIHN0cmVhbV9pZCA9
IGNsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyZWFtX2lkLCA0KQotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFt
X2RhdGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAgICAgICAgICAgc3RyZWFtX2lkID0gY2xp
ZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoaXNfdW5pZGlyZWN0aW9uYWw9VHJ1ZSkK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtX2lkLCAyKQotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAgICAgICAg
ICAgc3RyZWFtX2lkID0gY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoaXNfdW5p
ZGlyZWN0aW9uYWw9VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtX2lk
LCA2KQotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkLCBiImhl
bGxvIikKLQotICAgICAgICAgICAgIyBzZXJ2ZXIKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9IHNl
cnZlci5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyZWFtX2lkLCAxKQotICAgICAgICAgICAgc2VydmVyLnNlbmRfc3RyZWFtX2Rh
dGEoc3RyZWFtX2lkLCBiImhlbGxvIikKLQotICAgICAgICAgICAgc3RyZWFtX2lkID0gc2VydmVy
LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHJlYW1faWQsIDUpCi0gICAgICAgICAgICBzZXJ2ZXIuc2VuZF9zdHJlYW1fZGF0YShz
dHJlYW1faWQsIGIiaGVsbG8iKQotCi0gICAgICAgICAgICBzdHJlYW1faWQgPSBzZXJ2ZXIuZ2V0
X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChpc191bmlkaXJlY3Rpb25hbD1UcnVlKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW1faWQsIDMpCi0gICAgICAgICAgICBzZXJ2ZXIu
c2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiaGVsbG8iKQotCi0gICAgICAgICAgICBzdHJl
YW1faWQgPSBzZXJ2ZXIuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZChpc191bmlkaXJlY3Rp
b25hbD1UcnVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW1faWQsIDcpCi0g
ICAgICAgICAgICBzZXJ2ZXIuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiaGVsbG8iKQot
Ci0gICAgZGVmIHRlc3RfZGF0YWdyYW1fZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50
X2FuZF9zZXJ2ZXIoCi0gICAgICAgICAgICBjbGllbnRfb3B0aW9ucz17Im1heF9kYXRhZ3JhbV9m
cmFtZV9zaXplIjogNjU1MzZ9LAotICAgICAgICAgICAgc2VydmVyX29wdGlvbnM9eyJtYXhfZGF0
YWdyYW1fZnJhbWVfc2l6ZSI6IDY1NTM2fSwKLSAgICAgICAgKSBhcyAoY2xpZW50LCBzZXJ2ZXIp
OgotICAgICAgICAgICAgIyBjaGVjayBoYW5kc2hha2UgY29tcGxldGVkCi0gICAgICAgICAgICBz
ZWxmLmNoZWNrX2hhbmRzaGFrZShjbGllbnQ9Y2xpZW50LCBzZXJ2ZXI9c2VydmVyLCBhbHBuX3By
b3RvY29sPU5vbmUpCi0KLSAgICAgICAgICAgICMgc2VuZCBkYXRhZ3JhbQotICAgICAgICAgICAg
Y2xpZW50LnNlbmRfZGF0YWdyYW1fZnJhbWUoYiJoZWxsbyIpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRyYW5zZmVyKGNsaWVudCwgc2VydmVyKSwgMSkKLQotICAgICAgICAgICAgZXZl
bnQgPSBzZXJ2ZXIubmV4dF9ldmVudCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5
cGUoZXZlbnQpLCBldmVudHMuRGF0YWdyYW1GcmFtZVJlY2VpdmVkKQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChldmVudC5kYXRhLCBiImhlbGxvIikKLQotICAgIGRlZiB0ZXN0X2RhdGFn
cmFtX2ZyYW1lXzIoc2VsZik6Ci0gICAgICAgICMgcGF5bG9hZCB3aGljaCBleGFjdGx5IGZpbGxz
IGFuIGVudGlyZSBwYWNrZXQKLSAgICAgICAgcGF5bG9hZCA9IGIiWiIgKiAxMjUwCi0KLSAgICAg
ICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigKLSAgICAgICAgICAgIGNsaWVudF9vcHRpb25zPXsi
bWF4X2RhdGFncmFtX2ZyYW1lX3NpemUiOiA2NTUzNn0sCi0gICAgICAgICAgICBzZXJ2ZXJfb3B0
aW9ucz17Im1heF9kYXRhZ3JhbV9mcmFtZV9zaXplIjogNjU1MzZ9LAotICAgICAgICApIGFzIChj
bGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNoZWNrIGhhbmRzaGFrZSBjb21wbGV0ZWQK
LSAgICAgICAgICAgIHNlbGYuY2hlY2tfaGFuZHNoYWtlKGNsaWVudD1jbGllbnQsIHNlcnZlcj1z
ZXJ2ZXIsIGFscG5fcHJvdG9jb2w9Tm9uZSkKLQotICAgICAgICAgICAgIyBxdWV1ZSAyMCBkYXRh
Z3JhbXMKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDIwKToKLSAgICAgICAgICAgICAgICBj
bGllbnQuc2VuZF9kYXRhZ3JhbV9mcmFtZShwYXlsb2FkKQotCi0gICAgICAgICAgICAjIGNsaWVu
dCBjYW4gb25seSAxMSBkYXRhZ3JhbXMgYXJlIHNlbnQgZHVlIHRvIGNvbmdlc3Rpb24gY29udHJv
bAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFuc2ZlcihjbGllbnQsIHNlcnZlciks
IDExKQotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTEpOgotICAgICAgICAgICAgICAgIGV2
ZW50ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodHlwZShldmVudCksIGV2ZW50cy5EYXRhZ3JhbUZyYW1lUmVjZWl2ZWQpCi0gICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5kYXRhLCBwYXlsb2FkKQotCi0gICAgICAgICAg
ICAjIHNlcnZlciBzZW5kcyBBQ0sKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNm
ZXIoc2VydmVyLCBjbGllbnQpLCAxKQotCi0gICAgICAgICAgICAjIGNsaWVudCBzZW5kcyByZW1h
aW5pbmcgZGF0YWdyYW1zCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZmVyKGNs
aWVudCwgc2VydmVyKSwgOSkKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDkpOgotICAgICAg
ICAgICAgICAgIGV2ZW50ID0gc2VydmVyLm5leHRfZXZlbnQoKQotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5EYXRhZ3JhbUZyYW1lUmVjZWl2ZWQp
Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC5kYXRhLCBwYXlsb2FkKQot
Ci0gICAgZGVmIHRlc3RfZGVjcnlwdGlvbl9lcnJvcihzZWxmKToKLSAgICAgICAgd2l0aCBjbGll
bnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIG1lc3Mg
d2l0aCBlbmNyeXB0aW9uIGtleQotICAgICAgICAgICAgc2VydmVyLl9jcnlwdG9zW3Rscy5FcG9j
aC5PTkVfUlRUXS5zZW5kLnNldHVwKAotICAgICAgICAgICAgICAgIGNpcGhlcl9zdWl0ZT10bHMu
Q2lwaGVyU3VpdGUuQUVTXzEyOF9HQ01fU0hBMjU2LAotICAgICAgICAgICAgICAgIHNlY3JldD1i
eXRlcyg0OCksCi0gICAgICAgICAgICAgICAgdmVyc2lvbj1zZXJ2ZXIuX3ZlcnNpb24sCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgc2VydmVyIHNlbmRzIGNsb3NlCi0gICAgICAgICAg
ICBzZXJ2ZXIuY2xvc2UoZXJyb3JfY29kZT1RdWljRXJyb3JDb2RlLk5PX0VSUk9SKQotICAgICAg
ICAgICAgZm9yIGRhdGEsIGFkZHIgaW4gc2VydmVyLmRhdGFncmFtc190b19zZW5kKG5vdz10aW1l
LnRpbWUoKSk6Ci0gICAgICAgICAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oZGF0YSwg
U0VSVkVSX0FERFIsIG5vdz10aW1lLnRpbWUoKSkKLQotICAgIGRlZiB0ZXN0X3Rsc19lcnJvcihz
ZWxmKToKLSAgICAgICAgZGVmIHBhdGNoKGNsaWVudCk6Ci0gICAgICAgICAgICByZWFsX2luaXRp
YWxpemUgPSBjbGllbnQuX2luaXRpYWxpemUKLQotICAgICAgICAgICAgZGVmIHBhdGNoZWRfaW5p
dGlhbGl6ZShwZWVyX2NpZDogYnl0ZXMpOgotICAgICAgICAgICAgICAgIHJlYWxfaW5pdGlhbGl6
ZShwZWVyX2NpZCkKLSAgICAgICAgICAgICAgICBjbGllbnQudGxzLl9zdXBwb3J0ZWRfdmVyc2lv
bnMgPSBbdGxzLlRMU19WRVJTSU9OXzFfM19EUkFGVF8yOF0KLQotICAgICAgICAgICAgY2xpZW50
Ll9pbml0aWFsaXplID0gcGF0Y2hlZF9pbml0aWFsaXplCi0KLSAgICAgICAgIyBoYW5kc2hha2Ug
ZmFpbHMKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcihjbGllbnRfcGF0Y2g9cGF0Y2gp
IGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICB0aW1lcl9hdCA9IHNlcnZlci5nZXRf
dGltZXIoKQotICAgICAgICAgICAgc2VydmVyLmhhbmRsZV90aW1lcih0aW1lcl9hdCkKLQotICAg
ICAgICAgICAgZXZlbnQgPSBzZXJ2ZXIubmV4dF9ldmVudCgpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHR5cGUoZXZlbnQpLCBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LmVycm9yX2NvZGUsIDMyNikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5DUllQ
VE8pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LnJlYXNvbl9waHJhc2UsICJO
byBzdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvbiIpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2Rh
dGFncmFtX2dhcmJhZ2Uoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25l
X2NsaWVudChzZWxmKQotCi0gICAgICAgIGRhdGFncmFtID0gYmluYXNjaWkudW5oZXhsaWZ5KCJj
MDAwMDAwMDAwODAiKQotICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbShkYXRhZ3JhbSwg
U0VSVkVSX0FERFIsIG5vdz10aW1lLnRpbWUoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZGF0
YWdyYW1fcmVzZXJ2ZWRfYml0c19ub25femVybyhzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3Jl
YXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYpCi0KLSAgICAgICAgYnVpbGRlciA9IFF1aWNQYWNr
ZXRCdWlsZGVyKAotICAgICAgICAgICAgaG9zdF9jaWQ9Y2xpZW50Ll9wZWVyX2NpZCwKLSAgICAg
ICAgICAgIGlzX2NsaWVudD1GYWxzZSwKLSAgICAgICAgICAgIHBlZXJfY2lkPWNsaWVudC5ob3N0
X2NpZCwKLSAgICAgICAgICAgIHZlcnNpb249Y2xpZW50Ll92ZXJzaW9uLAotICAgICAgICApCi0g
ICAgICAgIGNyeXB0byA9IENyeXB0b1BhaXIoKQotICAgICAgICBjcnlwdG8uc2V0dXBfaW5pdGlh
bChjbGllbnQuX3BlZXJfY2lkLCBpc19jbGllbnQ9RmFsc2UsIHZlcnNpb249Y2xpZW50Ll92ZXJz
aW9uKQotICAgICAgICBjcnlwdG8uZW5jcnlwdF9wYWNrZXRfcmVhbCA9IGNyeXB0by5lbmNyeXB0
X3BhY2tldAotCi0gICAgICAgIGRlZiBlbmNyeXB0X3BhY2tldChwbGFpbl9oZWFkZXIsIHBsYWlu
X3BheWxvYWQsIHBhY2tldF9udW1iZXIpOgotICAgICAgICAgICAgIyBtZXNzIHdpdGggcmVzZXJ2
ZWQgYml0cwotICAgICAgICAgICAgcGxhaW5faGVhZGVyID0gYnl0ZXMoW3BsYWluX2hlYWRlclsw
XSB8IDB4MENdKSArIHBsYWluX2hlYWRlclsxOl0KLSAgICAgICAgICAgIHJldHVybiBjcnlwdG8u
ZW5jcnlwdF9wYWNrZXRfcmVhbCgKLSAgICAgICAgICAgICAgICBwbGFpbl9oZWFkZXIsIHBsYWlu
X3BheWxvYWQsIHBhY2tldF9udW1iZXIKLSAgICAgICAgICAgICkKLQotICAgICAgICBjcnlwdG8u
ZW5jcnlwdF9wYWNrZXQgPSBlbmNyeXB0X3BhY2tldAotCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRf
cGFja2V0KFBBQ0tFVF9UWVBFX0lOSVRJQUwsIGNyeXB0bykKLSAgICAgICAgYnVmID0gYnVpbGRl
ci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLlBBRERJTkcpCi0gICAgICAgIGJ1Zi5wdXNoX2J5
dGVzKGJ5dGVzKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSkpCi0KLSAgICAgICAgZm9y
IGRhdGFncmFtIGluIGJ1aWxkZXIuZmx1c2goKVswXToKLSAgICAgICAgICAgIGNsaWVudC5yZWNl
aXZlX2RhdGFncmFtKGRhdGFncmFtLCBTRVJWRVJfQUREUiwgbm93PXRpbWUudGltZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGRyb3AoY2xpZW50KSwgMSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgKLSAgICAgICAgICAgIGNsaWVudC5fY2xvc2VfZXZlbnQsCi0gICAgICAgICAgICBl
dmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQoCi0gICAgICAgICAgICAgICAgZXJyb3JfY29kZT1R
dWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTiwKLSAgICAgICAgICAgICAgICBmcmFtZV90
eXBlPU5vbmUsCi0gICAgICAgICAgICAgICAgcmVhc29uX3BocmFzZT0iUmVzZXJ2ZWQgYml0cyBt
dXN0IGJlIHplcm8iLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9kYXRhZ3JhbV93cm9uZ192ZXJzaW9uKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBj
cmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICBidWlsZGVyID0gUXVpY1Bh
Y2tldEJ1aWxkZXIoCi0gICAgICAgICAgICBob3N0X2NpZD1jbGllbnQuX3BlZXJfY2lkLAotICAg
ICAgICAgICAgaXNfY2xpZW50PUZhbHNlLAotICAgICAgICAgICAgcGVlcl9jaWQ9Y2xpZW50Lmhv
c3RfY2lkLAotICAgICAgICAgICAgdmVyc2lvbj0weEZGMDAwMDExLCAgIyBEUkFGVF8xNgotICAg
ICAgICApCi0gICAgICAgIGNyeXB0byA9IENyeXB0b1BhaXIoKQotICAgICAgICBjcnlwdG8uc2V0
dXBfaW5pdGlhbChjbGllbnQuX3BlZXJfY2lkLCBpc19jbGllbnQ9RmFsc2UsIHZlcnNpb249Y2xp
ZW50Ll92ZXJzaW9uKQotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9J
TklUSUFMLCBjcnlwdG8pCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0Zy
YW1lVHlwZS5QQURESU5HKQotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhidWlsZGVyLnJl
bWFpbmluZ19mbGlnaHRfc3BhY2UpKQotCi0gICAgICAgIGZvciBkYXRhZ3JhbSBpbiBidWlsZGVy
LmZsdXNoKClbMF06Ci0gICAgICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbShkYXRhZ3Jh
bSwgU0VSVkVSX0FERFIsIG5vdz10aW1lLnRpbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkcm9wKGNsaWVudCksIDApCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2RhdGFncmFtX3JldHJ5
KHNlbGYpOgotICAgICAgICBjbGllbnQgPSBjcmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikK
LQotICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbSgKLSAgICAgICAgICAgIGVuY29kZV9x
dWljX3JldHJ5KAotICAgICAgICAgICAgICAgIHZlcnNpb249Y2xpZW50Ll92ZXJzaW9uLAotICAg
ICAgICAgICAgICAgIHNvdXJjZV9jaWQ9YmluYXNjaWkudW5oZXhsaWZ5KCI4NWFiYjU0N2JmMjhi
ZTk3IiksCi0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25fY2lkPWNsaWVudC5ob3N0X2NpZCwK
LSAgICAgICAgICAgICAgICBvcmlnaW5hbF9kZXN0aW5hdGlvbl9jaWQ9Y2xpZW50Ll9wZWVyX2Np
ZCwKLSAgICAgICAgICAgICAgICByZXRyeV90b2tlbj1ieXRlcygxNiksCi0gICAgICAgICAgICAp
LAotICAgICAgICAgICAgU0VSVkVSX0FERFIsCi0gICAgICAgICAgICBub3c9dGltZS50aW1lKCks
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcm9wKGNsaWVudCksIDEpCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX2RhdGFncmFtX3JldHJ5X3dyb25nX2Rlc3RpbmF0aW9uX2Np
ZChzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYp
Ci0KLSAgICAgICAgY2xpZW50LnJlY2VpdmVfZGF0YWdyYW0oCi0gICAgICAgICAgICBlbmNvZGVf
cXVpY19yZXRyeSgKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPWNsaWVudC5fdmVyc2lvbiwKLSAg
ICAgICAgICAgICAgICBzb3VyY2VfY2lkPWJpbmFzY2lpLnVuaGV4bGlmeSgiODVhYmI1NDdiZjI4
YmU5NyIpLAotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uX2NpZD1iaW5hc2NpaS51bmhleGxp
ZnkoImM5ODM0M2ZlOGY1ZjBmZjQiKSwKLSAgICAgICAgICAgICAgICBvcmlnaW5hbF9kZXN0aW5h
dGlvbl9jaWQ9Y2xpZW50Ll9wZWVyX2NpZCwKLSAgICAgICAgICAgICAgICByZXRyeV90b2tlbj1i
eXRlcygxNiksCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgU0VSVkVSX0FERFIsCi0gICAg
ICAgICAgICBub3c9dGltZS50aW1lKCksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkcm9wKGNsaWVudCksIDApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfYWNrX2ZyYW1lX2Vj
bihzZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYp
Ci0KLSAgICAgICAgY2xpZW50Ll9oYW5kbGVfYWNrX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50
X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5BQ0tf
RUNOLAotICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAwXHgwMlx4MDBceDAwXHgwMFx4MDBc
eDAwIiksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9jb25uZWN0aW9uX2Nsb3Nl
X2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVu
dCwgc2VydmVyKToKLSAgICAgICAgICAgIHNlcnZlci5jbG9zZSgKLSAgICAgICAgICAgICAgICBl
cnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OLAotICAgICAgICAgICAg
ICAgIGZyYW1lX3R5cGU9UXVpY0ZyYW1lVHlwZS5BQ0ssCi0gICAgICAgICAgICAgICAgcmVhc29u
X3BocmFzZT0iaWxsZWdhbCBBQ0sgZnJhbWUiLAotICAgICAgICAgICAgKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoc2VydmVyLCBjbGllbnQpLCAoMSwgMCkpCi0KLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY2xpZW50Ll9jbG9z
ZV9ldmVudCwKLSAgICAgICAgICAgICAgICBldmVudHMuQ29ubmVjdGlvblRlcm1pbmF0ZWQoCi0g
ICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9M
QVRJT04sCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGU9UXVpY0ZyYW1lVHlwZS5BQ0ss
Ci0gICAgICAgICAgICAgICAgICAgIHJlYXNvbl9waHJhc2U9ImlsbGVnYWwgQUNLIGZyYW1lIiwK
LSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxl
X2Nvbm5lY3Rpb25fY2xvc2VfZnJhbWVfYXBwKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9h
bmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIHNlcnZlci5jbG9z
ZShlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuTk9fRVJST1IsIHJlYXNvbl9waHJhc2U9Imdvb2Ri
eWUiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoc2VydmVyLCBjbGll
bnQpLCAoMSwgMCkpCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICAgICAgY2xpZW50Ll9jbG9zZV9ldmVudCwKLSAgICAgICAgICAgICAgICBldmVudHMuQ29ubmVj
dGlvblRlcm1pbmF0ZWQoCi0gICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGU9UXVpY0Vycm9y
Q29kZS5OT19FUlJPUiwKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVfdHlwZT1Ob25lLAotICAg
ICAgICAgICAgICAgICAgICByZWFzb25fcGhyYXNlPSJnb29kYnllIiwKLSAgICAgICAgICAgICAg
ICApLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX2Nvbm5lY3Rpb25fY2xv
c2VfZnJhbWVfYXBwX25vdF91dGY4KHNlbGYpOgotICAgICAgICBjbGllbnQgPSBjcmVhdGVfc3Rh
bmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICBjbGllbnQuX2hhbmRsZV9jb25uZWN0aW9u
X2Nsb3NlX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQp
LAotICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5BUFBMSUNBVElPTl9DTE9TRSwKLSAgICAgICAg
ICAgIEJ1ZmZlcihkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgiMDAwODY3NmY2ZjY0NjI3OTgyMDAi
KSksCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
Y2xpZW50Ll9jbG9zZV9ldmVudCwKLSAgICAgICAgICAgIGV2ZW50cy5Db25uZWN0aW9uVGVybWlu
YXRlZCgKLSAgICAgICAgICAgICAgICBlcnJvcl9jb2RlPVF1aWNFcnJvckNvZGUuTk9fRVJST1Is
IGZyYW1lX3R5cGU9Tm9uZSwgcmVhc29uX3BocmFzZT0iIiwKLSAgICAgICAgICAgICksCi0gICAg
ICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9jcnlwdG9fZnJhbWVfb3Zlcl9sYXJnZXN0X29m
ZnNldChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQs
IHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBvZmZzZXQgKyBsZW5ndGgg
PiAyXjYyIC0gMQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVj
dGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9jcnlwdG9f
ZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50
KSwKLSAgICAgICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5DUllQVE8sCi0gICAgICAgICAg
ICAgICAgICAgIEJ1ZmZlcihkYXRhPWVuY29kZV91aW50X3ZhcihVSU5UX1ZBUl9NQVgpICsgZW5j
b2RlX3VpbnRfdmFyKDEpKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWlj
RXJyb3JDb2RlLkZSQU1FX0VOQ09ESU5HX0VSUk9SCi0gICAgICAgICAgICApCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBl
LkNSWVBUTykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
Y20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJvZmZzZXQgKyBsZW5ndGggY2Fubm90IGV4Y2Vl
ZCAyXjYyIC0gMSIKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9kYXRhX2Js
b2NrZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAo
Y2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgREFUQV9CTE9D
S0VEOiAxMjM0NQotICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfZGF0YV9ibG9ja2VkX2ZyYW1l
KAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAg
ICAgICAgICAgICBRdWljRnJhbWVUeXBlLkRBVEFfQkxPQ0tFRCwKLSAgICAgICAgICAgICAgICBC
dWZmZXIoZGF0YT1lbmNvZGVfdWludF92YXIoMTIzNDUpKSwKLSAgICAgICAgICAgICkKLQotICAg
IGRlZiB0ZXN0X2hhbmRsZV9kYXRhZ3JhbV9mcmFtZShzZWxmKToKLSAgICAgICAgY2xpZW50ID0g
Y3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYsIG1heF9kYXRhZ3JhbV9mcmFtZV9zaXplPTYp
Ci0KLSAgICAgICAgY2xpZW50Ll9oYW5kbGVfZGF0YWdyYW1fZnJhbWUoCi0gICAgICAgICAgICBj
bGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICBRdWljRnJhbWVUeXBl
LkRBVEFHUkFNLAotICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJoZWxsbyIpLAotICAgICAgICAp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNsaWVudC5uZXh0X2V2
ZW50KCksIGV2ZW50cy5EYXRhZ3JhbUZyYW1lUmVjZWl2ZWQoZGF0YT1iImhlbGxvIikKLSAgICAg
ICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX2RhdGFncmFtX2ZyYW1lX25vdF9hbGxvd2VkKHNl
bGYpOgotICAgICAgICBjbGllbnQgPSBjcmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZiwgbWF4
X2RhdGFncmFtX2ZyYW1lX3NpemU9Tm9uZSkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKFF1aWNDb25uZWN0aW9uRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgY2xpZW50Ll9oYW5k
bGVfZGF0YWdyYW1fZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4
dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuREFUQUdSQU0sCi0gICAg
ICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJoZWxsbyIpLAotICAgICAgICAgICAgKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2Rl
LlBST1RPQ09MX1ZJT0xBVElPTikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRp
b24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5EQVRBR1JBTSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIlVuZXhwZWN0ZWQgREFUQUdSQU0g
ZnJhbWUiKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX2RhdGFncmFtX2ZyYW1lX3Rvb19sYXJnZShz
ZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYsIG1h
eF9kYXRhZ3JhbV9mcmFtZV9zaXplPTUpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxl
X2RhdGFncmFtX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQo
Y2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLkRBVEFHUkFNLAotICAgICAg
ICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiaGVsbG8iKSwKLSAgICAgICAgICAgICkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5Q
Uk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9u
LmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuREFUQUdSQU0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJVbmV4cGVjdGVkIERBVEFHUkFNIGZy
YW1lIikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9kYXRhZ3JhbV9mcmFtZV93aXRoX2xlbmd0aChz
ZWxmKToKLSAgICAgICAgY2xpZW50ID0gY3JlYXRlX3N0YW5kYWxvbmVfY2xpZW50KHNlbGYsIG1h
eF9kYXRhZ3JhbV9mcmFtZV9zaXplPTcpCi0KLSAgICAgICAgY2xpZW50Ll9oYW5kbGVfZGF0YWdy
YW1fZnJhbWUoCi0gICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0g
ICAgICAgICAgICBRdWljRnJhbWVUeXBlLkRBVEFHUkFNX1dJVEhfTEVOR1RILAotICAgICAgICAg
ICAgQnVmZmVyKGRhdGE9YiJceDA1aGVsbG9qdW5rIiksCi0gICAgICAgICkKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgY2xpZW50Lm5leHRfZXZlbnQoKSwgZXZlbnRz
LkRhdGFncmFtRnJhbWVSZWNlaXZlZChkYXRhPWIiaGVsbG8iKQotICAgICAgICApCi0KLSAgICBk
ZWYgdGVzdF9oYW5kbGVfZGF0YWdyYW1fZnJhbWVfd2l0aF9sZW5ndGhfbm90X2FsbG93ZWQoc2Vs
Zik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmLCBtYXhf
ZGF0YWdyYW1fZnJhbWVfc2l6ZT1Ob25lKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICBjbGllbnQuX2hhbmRs
ZV9kYXRhZ3JhbV9mcmFtZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0
KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5EQVRBR1JBTV9XSVRIX0xF
TkdUSCwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDVoZWxsb2p1bmsiKSwKLSAg
ICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3Jf
Y29kZSwgUXVpY0Vycm9yQ29kZS5QUk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuREFUQUdSQU1f
V0lUSF9MRU5HVEgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNv
bl9waHJhc2UsICJVbmV4cGVjdGVkIERBVEFHUkFNIGZyYW1lIikKLQotICAgIGRlZiB0ZXN0X2hh
bmRsZV9kYXRhZ3JhbV9mcmFtZV93aXRoX2xlbmd0aF90b29fbGFyZ2Uoc2VsZik6Ci0gICAgICAg
IGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25lX2NsaWVudChzZWxmLCBtYXhfZGF0YWdyYW1fZnJh
bWVfc2l6ZT02KQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rp
b25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9kYXRhZ3JhbV9mcmFt
ZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAg
ICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5EQVRBR1JBTV9XSVRIX0xFTkdUSCwKLSAgICAgICAg
ICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDVoZWxsb2p1bmsiKSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9y
Q29kZS5QUk9UT0NPTF9WSU9MQVRJT04pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhj
ZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuREFUQUdSQU1fV0lUSF9MRU5HVEgpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJVbmV4
cGVjdGVkIERBVEFHUkFNIGZyYW1lIikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9oYW5kc2hha2Vf
ZG9uZV9ub3RfYWxsb3dlZChzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigp
IGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIHNlcnZlciByZWNlaXZlcyBIQU5E
U0hBS0VfRE9ORSBmcmFtZQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWlj
Q29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBzZXJ2ZXIuX2hhbmRsZV9o
YW5kc2hha2VfZG9uZV9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVf
Y29udGV4dChzZXJ2ZXIpLAotICAgICAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLkhBTkRT
SEFLRV9ET05FLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIiIpLAotICAgICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVy
cm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5I
QU5EU0hBS0VfRE9ORSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICAgICAgY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsCi0gICAgICAgICAgICAgICAgIkNsaWVu
dHMgbXVzdCBub3Qgc2VuZCBIQU5EU0hBS0VfRE9ORSBmcmFtZXMiLAotICAgICAgICAgICAgKQot
Ci0gICAgZGVmIHRlc3RfaGFuZGxlX21heF9kYXRhX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRo
IGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9yZW1vdGVfbWF4X2RhdGEsIDEwNDg1NzYpCi0KLSAgICAg
ICAgICAgICMgY2xpZW50IHJlY2VpdmVzIE1BWF9EQVRBIHJhaXNpbmcgbGltaXQKLSAgICAgICAg
ICAgIGNsaWVudC5faGFuZGxlX21heF9kYXRhX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVu
dF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBl
Lk1BWF9EQVRBLAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWVuY29kZV91aW50X3Zhcigx
MDQ4NTc3KSksCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNs
aWVudC5fcmVtb3RlX21heF9kYXRhLCAxMDQ4NTc3KQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX21h
eF9zdHJlYW1fZGF0YV9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZl
cigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVhdGVzIGJp
ZGlyZWN0aW9uYWwgc3RyZWFtIDAKLSAgICAgICAgICAgIHN0cmVhbSA9IGNsaWVudC5fY3JlYXRl
X3N0cmVhbShzdHJlYW1faWQ9MCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFt
Lm1heF9zdHJlYW1fZGF0YV9yZW1vdGUsIDEwNDg1NzYpCi0KLSAgICAgICAgICAgICMgY2xpZW50
IHJlY2VpdmVzIE1BWF9TVFJFQU1fREFUQSByYWlzaW5nIGxpbWl0Ci0gICAgICAgICAgICBjbGll
bnQuX2hhbmRsZV9tYXhfc3RyZWFtX2RhdGFfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50
X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUu
TUFYX1NUUkVBTV9EQVRBLAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWIiXHgwMCIgKyBl
bmNvZGVfdWludF92YXIoMTA0ODU3NykpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX3JlbW90ZSwgMTA0ODU3NykKLQot
ICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgTUFYX1NUUkVBTV9EQVRBIGxvd2VyaW5nIGxp
bWl0Ci0gICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9tYXhfc3RyZWFtX2RhdGFfZnJhbWUoCi0g
ICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAg
ICAgICAgIFF1aWNGcmFtZVR5cGUuTUFYX1NUUkVBTV9EQVRBLAotICAgICAgICAgICAgICAgIEJ1
ZmZlcihkYXRhPWIiXHgwMCIgKyBlbmNvZGVfdWludF92YXIoMTA0ODU3NSkpLAotICAgICAgICAg
ICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRh
X3JlbW90ZSwgMTA0ODU3NykKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9tYXhfc3RyZWFtX2RhdGFf
ZnJhbWVfcmVjZWl2ZV9vbmx5KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVy
KCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgc2VydmVyIGNyZWF0ZXMgdW5p
ZGlyZWN0aW9uYWwgc3RyZWFtIDMKLSAgICAgICAgICAgIHNlcnZlci5zZW5kX3N0cmVhbV9kYXRh
KHN0cmVhbV9pZD0zLCBkYXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNl
aXZlcyBNQVhfU1RSRUFNX0RBVEE6IDMsIDEKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xpZW50
Ll9oYW5kbGVfbWF4X3N0cmVhbV9kYXRhX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGll
bnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFt
ZVR5cGUuTUFYX1NUUkVBTV9EQVRBLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1i
Ilx4MDNceDAxIiksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVf
RVJST1IpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90
eXBlLCBRdWljRnJhbWVUeXBlLk1BWF9TVFJFQU1fREFUQSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJTdHJlYW0gaXMgcmVjZWl2ZS1v
bmx5IikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9tYXhfc3RyZWFtc19iaWRpX2ZyYW1lKHNlbGYp
OgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9yZW1vdGVfbWF4X3N0cmVhbXNf
YmlkaSwgMTI4KQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBNQVhfU1RSRUFNU19C
SURJIHJhaXNpbmcgbGltaXQKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1z
X2JpZGlfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGll
bnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuTUFYX1NUUkVBTVNfQklESSwKLSAg
ICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWludF92YXIoMTI5KSksCi0gICAgICAg
ICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5fcmVtb3RlX21heF9z
dHJlYW1zX2JpZGksIDEyOSkKLQotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgTUFYX1NU
UkVBTVNfQklESSBsb3dlcmluZyBsaW1pdAotICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfbWF4
X3N0cmVhbXNfYmlkaV9mcmFtZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250
ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5NQVhfU1RSRUFNU19C
SURJLAotICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRhPWVuY29kZV91aW50X3ZhcigxMjcpKSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50Ll9yZW1v
dGVfbWF4X3N0cmVhbXNfYmlkaSwgMTI5KQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX21heF9zdHJl
YW1zX3VuaV9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFz
IChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5f
cmVtb3RlX21heF9zdHJlYW1zX3VuaSwgMTI4KQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNl
aXZlcyBNQVhfU1RSRUFNU19VTkkgcmFpc2luZyBsaW1pdAotICAgICAgICAgICAgY2xpZW50Ll9o
YW5kbGVfbWF4X3N0cmVhbXNfdW5pX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNl
aXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1BWF9T
VFJFQU1TX1VOSSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWludF92YXIo
MTI5KSksCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVu
dC5fcmVtb3RlX21heF9zdHJlYW1zX3VuaSwgMTI5KQotCi0gICAgICAgICAgICAjIGNsaWVudCBy
ZWNlaXZlcyBNQVhfU1RSRUFNU19VTkkgcmFpc2luZyBsaW1pdAotICAgICAgICAgICAgY2xpZW50
Ll9oYW5kbGVfbWF4X3N0cmVhbXNfdW5pX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9y
ZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLk1B
WF9TVFJFQU1TX1VOSSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWludF92
YXIoMTI3KSksCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNs
aWVudC5fcmVtb3RlX21heF9zdHJlYW1zX3VuaSwgMTI5KQotCi0gICAgZGVmIHRlc3RfaGFuZGxl
X25ld190b2tlbl9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigp
IGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBORVdf
VE9LRU4KLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX25ld190b2tlbl9mcmFtZSgKLSAgICAg
ICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAg
ICAgUXVpY0ZyYW1lVHlwZS5ORVdfVE9LRU4sCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9
YmluYXNjaWkudW5oZXhsaWZ5KCIwODAxMDIwMzA0MDUwNjA3MDgiKSksCi0gICAgICAgICAgICAp
Ci0KLSAgICBkZWYgdGVzdF9oYW5kbGVfbmV3X3Rva2VuX2ZyYW1lX2Zyb21fY2xpZW50KHNlbGYp
OgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToK
LSAgICAgICAgICAgICMgc2VydmVyIHJlY2VpdmVzIE5FV19UT0tFTgotICAgICAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAg
ICAgICAgICBzZXJ2ZXIuX2hhbmRsZV9uZXdfdG9rZW5fZnJhbWUoCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICAgICAg
UXVpY0ZyYW1lVHlwZS5ORVdfVE9LRU4sCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcihkYXRh
PWJpbmFzY2lpLnVuaGV4bGlmeSgiMDgwMTAyMDMwNDA1MDYwNzA4IikpLAotICAgICAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm9yX2Nv
ZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5ORVdfVE9L
RU4pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGNtLmV4
Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiQ2xpZW50cyBtdXN0IG5vdCBzZW5kIE5FV19UT0tFTiBm
cmFtZXMiCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfcGF0aF9jaGFsbGVu
Z2VfZnJhbWUoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xp
ZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgY2hhbmdlcyBhZGRyZXNzIGFuZCBz
ZW5kcyBzb21lIGRhdGEKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKDAsIGIi
MDEyMzQ1NjciKQotICAgICAgICAgICAgZm9yIGRhdGEsIGFkZHIgaW4gY2xpZW50LmRhdGFncmFt
c190b19zZW5kKG5vdz10aW1lLnRpbWUoKSk6Ci0gICAgICAgICAgICAgICAgc2VydmVyLnJlY2Vp
dmVfZGF0YWdyYW0oZGF0YSwgKCIxLjIuMy40IiwgMjM0NSksIG5vdz10aW1lLnRpbWUoKSkKLQot
ICAgICAgICAgICAgIyBjaGVjayBwYXRocwotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oc2VydmVyLl9uZXR3b3JrX3BhdGhzKSwgMikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzBdLmFkZHIsICgiMS4yLjMuNCIsIDIzNDUpKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZXJ2ZXIuX25ldHdvcmtfcGF0aHNbMF0uaXNfdmFs
aWRhdGVkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuX25ldHdvcmtfcGF0
aHNbMV0uYWRkciwgKCIxLjIuMy40IiwgMTIzNCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRy
dWUoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzFdLmlzX3ZhbGlkYXRlZCkKLQotICAgICAgICAgICAg
IyBzZXJ2ZXIgc2VuZHMgUEFUSF9DSEFMTEVOR0UgYW5kIHJlY2VpdmVzIFBBVEhfUkVTUE9OU0UK
LSAgICAgICAgICAgIGZvciBkYXRhLCBhZGRyIGluIHNlcnZlci5kYXRhZ3JhbXNfdG9fc2VuZChu
b3c9dGltZS50aW1lKCkpOgotICAgICAgICAgICAgICAgIGNsaWVudC5yZWNlaXZlX2RhdGFncmFt
KGRhdGEsIFNFUlZFUl9BRERSLCBub3c9dGltZS50aW1lKCkpCi0gICAgICAgICAgICBmb3IgZGF0
YSwgYWRkciBpbiBjbGllbnQuZGF0YWdyYW1zX3RvX3NlbmQobm93PXRpbWUudGltZSgpKToKLSAg
ICAgICAgICAgICAgICBzZXJ2ZXIucmVjZWl2ZV9kYXRhZ3JhbShkYXRhLCAoIjEuMi4zLjQiLCAy
MzQ1KSwgbm93PXRpbWUudGltZSgpKQotCi0gICAgICAgICAgICAjIGNoZWNrIHBhdGhzCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5fbmV0d29ya19wYXRoc1swXS5hZGRyLCAo
IjEuMi4zLjQiLCAyMzQ1KSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuX25l
dHdvcmtfcGF0aHNbMF0uaXNfdmFsaWRhdGVkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZXJ2ZXIuX25ldHdvcmtfcGF0aHNbMV0uYWRkciwgKCIxLjIuMy40IiwgMTIzNCkpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLl9uZXR3b3JrX3BhdGhzWzFdLmlzX3ZhbGlk
YXRlZCkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9wYXRoX3Jlc3BvbnNlX2ZyYW1lX2JhZChzZWxm
KToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6
Ci0gICAgICAgICAgICAjIHNlcnZlciByZWNlaXZlcyB1bnNvbGxpY2l0ZWQgUEFUSF9SRVNQT05T
RQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9y
KSBhcyBjbToKLSAgICAgICAgICAgICAgICBzZXJ2ZXIuX2hhbmRsZV9wYXRoX3Jlc3BvbnNlX2Zy
YW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCks
Ci0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuUEFUSF9SRVNQT05TRSwKLSAgICAg
ICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDExXHgyMlx4MzNceDQ0XHg1NVx4NjZceDc3
XHg4OCIpLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9O
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwg
UXVpY0ZyYW1lVHlwZS5QQVRIX1JFU1BPTlNFKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3BhZGRp
bmdfZnJhbWUoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IGNyZWF0ZV9zdGFuZGFsb25lX2NsaWVu
dChzZWxmKQotCi0gICAgICAgICMgbm8gbW9yZSBwYWRkaW5nCi0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cihkYXRhPWIiIikKLSAgICAgICAgY2xpZW50Ll9oYW5kbGVfcGFkZGluZ19mcmFtZSgKLSAgICAg
ICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwgUXVpY0ZyYW1lVHlwZS5QQURE
SU5HLCBidWYKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCks
IDApCi0KLSAgICAgICAgIyBwYWRkaW5nIHVudGlsIGVuZAotICAgICAgICBidWYgPSBCdWZmZXIo
ZGF0YT1ieXRlcygxMCkpCi0gICAgICAgIGNsaWVudC5faGFuZGxlX3BhZGRpbmdfZnJhbWUoCi0g
ICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksIFF1aWNGcmFtZVR5cGUu
UEFERElORywgYnVmCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYudGVs
bCgpLCAxMCkKLQotICAgICAgICAjIHBhZGRpbmcgdGhlbiBzb21ldGhpbmcgZWxzZQotICAgICAg
ICBidWYgPSBCdWZmZXIoZGF0YT1ieXRlcygxMCkgKyBiIlx4MDEiKQotICAgICAgICBjbGllbnQu
X2hhbmRsZV9wYWRkaW5nX2ZyYW1lKAotICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4
dChjbGllbnQpLCBRdWljRnJhbWVUeXBlLlBBRERJTkcsIGJ1ZgotICAgICAgICApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMTApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVf
cmVzZXRfc3RyZWFtX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVy
KCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IGNyZWF0ZXMgYmlk
aXJlY3Rpb25hbCBzdHJlYW0gMAotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEo
c3RyZWFtX2lkPTAsIGRhdGE9YiJoZWxsbyIpCi0gICAgICAgICAgICBjb25zdW1lX2V2ZW50cyhj
bGllbnQpCi0KLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFJFU0VUX1NUUkVBTQotICAg
ICAgICAgICAgY2xpZW50Ll9oYW5kbGVfcmVzZXRfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAg
ICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICBRdWlj
RnJhbWVUeXBlLlJFU0VUX1NUUkVBTSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iaW5h
c2NpaS51bmhleGxpZnkoIjAwMDEwMCIpKSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAg
ZXZlbnQgPSBjbGllbnQubmV4dF9ldmVudCgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHR5cGUoZXZlbnQpLCBldmVudHMuU3RyZWFtUmVzZXQpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV2ZW50LmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuSU5URVJOQUxfRVJST1IpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50LnN0cmVhbV9pZCwgMCkKLQotICAgIGRl
ZiB0ZXN0X2hhbmRsZV9yZXNldF9zdHJlYW1fZnJhbWVfc2VuZF9vbmx5KHNlbGYpOgotICAgICAg
ICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAg
ICAgICMgY2xpZW50IGNyZWF0ZXMgdW5pZGlyZWN0aW9uYWwgc3RyZWFtIDIKLSAgICAgICAgICAg
IGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZD0yLCBkYXRhPWIiaGVsbG8iKQotCi0g
ICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBSRVNFVF9TVFJFQU0KLSAgICAgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAg
ICAgICAgICAgY2xpZW50Ll9oYW5kbGVfcmVzZXRfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAg
ICAgIFF1aWNGcmFtZVR5cGUuUkVTRVRfU1RSRUFNLAotICAgICAgICAgICAgICAgICAgICBCdWZm
ZXIoZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoIjAyMTEwMCIpKSwKLSAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBR
dWljRXJyb3JDb2RlLlNUUkVBTV9TVEFURV9FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuUkVTRVRfU1RSRUFN
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFz
ZSwgIlN0cmVhbSBpcyBzZW5kLW9ubHkiKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3JldGlyZV9j
b25uZWN0aW9uX2lkX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVy
KCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX2hvc3RfY2lkcyksIFswLCAx
LCAyLCAzLCA0LCA1LCA2LCA3XQotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGNsaWVu
dCByZWNlaXZlcyBSRVRJUkVfQ09OTkVDVElPTl9JRAotICAgICAgICAgICAgY2xpZW50Ll9oYW5k
bGVfcmV0aXJlX2Nvbm5lY3Rpb25faWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3Jl
Y2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuUkVU
SVJFX0NPTk5FQ1RJT05fSUQsCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAyIiks
Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9ob3N0X2NpZHMpLCBbMCwgMSwgMywgNCwg
NSwgNiwgNywgOF0KLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9yZXRpcmVf
Y29ubmVjdGlvbl9pZF9mcmFtZV9jdXJyZW50X2NpZChzZWxmKToKLSAgICAgICAgd2l0aCBjbGll
bnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcnMoY2xpZW50Ll9ob3N0
X2NpZHMpLCBbMCwgMSwgMiwgMywgNCwgNSwgNiwgN10KLSAgICAgICAgICAgICkKLQotICAgICAg
ICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgUkVUSVJFX0NPTk5FQ1RJT05fSUQgZm9yIHRoZSBjdXJy
ZW50IENJRAotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlv
bkVycm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9yZXRpcmVfY29u
bmVjdGlvbl9pZF9mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29u
dGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLlJFVElSRV9D
T05ORUNUSU9OX0lELAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDAiKSwK
LSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2Vw
dGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJT0xBVElPTikKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY20uZXhjZXB0aW9uLmZy
YW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuUkVUSVJFX0NPTk5FQ1RJT05fSUQKLSAgICAgICAgICAg
ICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY20uZXhj
ZXB0aW9uLnJlYXNvbl9waHJhc2UsICJDYW5ub3QgcmV0aXJlIGN1cnJlbnQgY29ubmVjdGlvbiBJ
RCIKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAgICAgc2VxdWVuY2VfbnVtYmVycyhjbGllbnQuX2hvc3RfY2lkcyksIFswLCAxLCAyLCAz
LCA0LCA1LCA2LCA3XQotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0b3Bf
c2VuZGluZ19mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFz
IChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVhdGVzIGJpZGlyZWN0
aW9uYWwgc3RyZWFtIDAKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVh
bV9pZD0wLCBkYXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBT
VE9QX1NFTkRJTkcKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3N0b3Bfc2VuZGluZ19mcmFt
ZSgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAg
ICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5TVE9QX1NFTkRJTkcsCi0gICAgICAgICAgICAgICAg
QnVmZmVyKGRhdGE9YiJceDAwXHgxMSIpLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
aGFuZGxlX3N0b3Bfc2VuZGluZ19mcmFtZV9yZWNlaXZlX29ubHkoc2VsZik6Ci0gICAgICAgIHdp
dGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAg
IyBzZXJ2ZXIgY3JlYXRlcyB1bmlkaXJlY3Rpb25hbCBzdHJlYW0gMwotICAgICAgICAgICAgc2Vy
dmVyLnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkPTMsIGRhdGE9YiJoZWxsbyIpCi0KLSAgICAg
ICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFNUT1BfU0VORElORwotICAgICAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9yKSBhcyBjbToKLSAgICAgICAgICAg
ICAgICBjbGllbnQuX2hhbmRsZV9zdG9wX3NlbmRpbmdfZnJhbWUoCi0gICAgICAgICAgICAgICAg
ICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICAgICAg
UXVpY0ZyYW1lVHlwZS5TVE9QX1NFTkRJTkcsCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcihk
YXRhPWIiXHgwM1x4MTEiKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlNUUkVBTV9T
VEFURV9FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZy
YW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuU1RPUF9TRU5ESU5HKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIlN0cmVhbSBpcyByZWNlaXZl
LW9ubHkiKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0cmVhbV9mcmFtZV9vdmVyX2xhcmdlc3Rf
b2Zmc2V0KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVu
dCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIG9mZnNldCArIGxlbmd0
aCA+IDJeNjIgLSAxCi0gICAgICAgICAgICBmcmFtZV90eXBlID0gUXVpY0ZyYW1lVHlwZS5TVFJF
QU1fQkFTRSB8IDYKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9IDEKLSAgICAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAg
ICAgICAgY2xpZW50Ll9oYW5kbGVfc3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBj
bGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIGZyYW1l
X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcigKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGE9ZW5jb2RlX3VpbnRfdmFyKHN0cmVhbV9pZCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICsgZW5jb2RlX3VpbnRfdmFyKFVJTlRfVkFSX01BWCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICsgZW5jb2RlX3VpbnRfdmFyKDEpCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAg
ICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5GUkFNRV9FTkNPRElOR19F
UlJPUgotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNl
cHRpb24uZnJhbWVfdHlwZSwgZnJhbWVfdHlwZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICAgICAgY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJvZmZzZXQg
KyBsZW5ndGggY2Fubm90IGV4Y2VlZCAyXjYyIC0gMSIKLSAgICAgICAgICAgICkKLQotICAgIGRl
ZiB0ZXN0X2hhbmRsZV9zdHJlYW1fZnJhbWVfb3Zlcl9tYXhfZGF0YShzZWxmKToKLSAgICAgICAg
d2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAg
ICAjIGFydGlmaWNpYWxseSByYWlzZSByZWNlaXZlZCBkYXRhIGNvdW50ZXIKLSAgICAgICAgICAg
IGNsaWVudC5fbG9jYWxfbWF4X2RhdGFfdXNlZCA9IGNsaWVudC5fbG9jYWxfbWF4X2RhdGEKLQot
ICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFNIGZyYW1lCi0gICAgICAgICAgICBm
cmFtZV90eXBlID0gUXVpY0ZyYW1lVHlwZS5TVFJFQU1fQkFTRSB8IDQKLSAgICAgICAgICAgIHN0
cmVhbV9pZCA9IDEKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5l
Y3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVfc3RyZWFt
X2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVu
dCksCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAg
IEJ1ZmZlcihkYXRhPWVuY29kZV91aW50X3ZhcihzdHJlYW1faWQpICsgZW5jb2RlX3VpbnRfdmFy
KDEpKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNt
LmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLkZMT1dfQ09OVFJPTF9FUlJPUikK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1lX3R5cGUsIGZy
YW1lX3R5cGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFz
b25fcGhyYXNlLCAiT3ZlciBjb25uZWN0aW9uIGRhdGEgbGltaXQiKQotCi0gICAgZGVmIHRlc3Rf
aGFuZGxlX3N0cmVhbV9mcmFtZV9vdmVyX21heF9zdHJlYW1fZGF0YShzZWxmKToKLSAgICAgICAg
d2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAg
ICAjIGNsaWVudCByZWNlaXZlcyBTVFJFQU0gZnJhbWUKLSAgICAgICAgICAgIGZyYW1lX3R5cGUg
PSBRdWljRnJhbWVUeXBlLlNUUkVBTV9CQVNFIHwgNAotICAgICAgICAgICAgc3RyZWFtX2lkID0g
MQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVycm9y
KSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9zdHJlYW1fZnJhbWUoCi0g
ICAgICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAgICAg
ICAgICAgICAgICAgICAgZnJhbWVfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKAot
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1lbmNvZGVfdWludF92YXIoc3RyZWFtX2lkKQot
ICAgICAgICAgICAgICAgICAgICAgICAgKyBlbmNvZGVfdWludF92YXIoY2xpZW50Ll9sb2NhbF9t
YXhfc3RyZWFtX2RhdGFfYmlkaV9yZW1vdGUgKyAxKQotICAgICAgICAgICAgICAgICAgICApLAot
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0
aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuRkxPV19DT05UUk9MX0VSUk9SKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgZnJhbWVfdHlw
ZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJh
c2UsICJPdmVyIHN0cmVhbSBkYXRhIGxpbWl0IikKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9zdHJl
YW1fZnJhbWVfb3Zlcl9tYXhfc3RyZWFtcyhzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5k
X3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCByZWNl
aXZlcyBTVFJFQU0gZnJhbWUKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVp
Y0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xpZW50Ll9oYW5kbGVf
c3RyZWFtX2ZyYW1lKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0
KGNsaWVudCksCi0gICAgICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuU1RSRUFNX0JBU0Us
Ci0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGE9ZW5jb2RlX3VpbnRfdmFyKGNsaWVudC5fbG9jYWxfbWF4X3N0cmVhbV9kYXRhX3VuaSAqIDQg
KyAzKQotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNv
ZGUuU1RSRUFNX0xJTUlUX0VSUk9SKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5l
eGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlwZS5TVFJFQU1fQkFTRSkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbl9waHJhc2UsICJUb28gbWFu
eSBzdHJlYW1zIG9wZW4iKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0cmVhbV9mcmFtZV9zZW5k
X29ubHkoc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50
LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgY3JlYXRlcyB1bmlkaXJlY3Rpb25hbCBz
dHJlYW0gMgotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lkPTIs
IGRhdGE9YiJoZWxsbyIpCi0KLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIFNUUkVBTSBm
cmFtZQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljQ29ubmVjdGlvbkVy
cm9yKSBhcyBjbToKLSAgICAgICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9zdHJlYW1fZnJhbWUo
Ci0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xpZW50KSwKLSAg
ICAgICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5TVFJFQU1fQkFTRSwKLSAgICAgICAgICAg
ICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAyIiksCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9y
Q29kZS5TVFJFQU1fU1RBVEVfRVJST1IpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNt
LmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWljRnJhbWVUeXBlLlNUUkVBTV9CQVNFKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uX3BocmFzZSwgIlN0cmVh
bSBpcyBzZW5kLW9ubHkiKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0cmVhbV9mcmFtZV93cm9u
Z19pbml0aWF0b3Ioc2VsZik6Ci0gICAgICAgIHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAo
Y2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAgICAgIyBjbGllbnQgcmVjZWl2ZXMgU1RSRUFNIGZy
YW1lCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJy
b3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3N0cmVhbV9mcmFtZSgK
LSAgICAgICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAg
ICAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLlNUUkVBTV9CQVNFLAotICAgICAgICAgICAg
ICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDAiKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JD
b2RlLlNUUkVBTV9TVEFURV9FUlJPUikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20u
ZXhjZXB0aW9uLmZyYW1lX3R5cGUsIFF1aWNGcmFtZVR5cGUuU1RSRUFNX0JBU0UpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiV3Jvbmcg
c3RyZWFtIGluaXRpYXRvciIpCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfc3RyZWFtX2RhdGFfYmxv
Y2tlZF9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChj
bGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVhdGVzIGJpZGlyZWN0aW9u
YWwgc3RyZWFtIDAKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9p
ZD0wLCBkYXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBTVFJF
QU1fREFUQV9CTE9DS0VECi0gICAgICAgICAgICBjbGllbnQuX2hhbmRsZV9zdHJlYW1fZGF0YV9i
bG9ja2VkX2ZyYW1lKAotICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2NvbnRleHQoY2xp
ZW50KSwKLSAgICAgICAgICAgICAgICBRdWljRnJhbWVUeXBlLlNUUkVBTV9EQVRBX0JMT0NLRUQs
Ci0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9YiJceDAwXHgwMSIpLAotICAgICAgICAgICAg
KQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3N0cmVhbV9kYXRhX2Jsb2NrZWRfZnJhbWVfc2VuZF9v
bmx5KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwg
c2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IGNyZWF0ZXMgdW5pZGlyZWN0aW9uYWwgc3Ry
ZWFtIDIKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZD0yLCBk
YXRhPWIiaGVsbG8iKQotCi0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBTVFJFQU1fREFU
QV9CTE9DS0VECi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0
aW9uRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX3N0cmVhbV9k
YXRhX2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9yZWNlaXZlX2Nv
bnRleHQoY2xpZW50KSwKLSAgICAgICAgICAgICAgICAgICAgUXVpY0ZyYW1lVHlwZS5TVFJFQU1f
REFUQV9CTE9DS0VELAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIoZGF0YT1iIlx4MDJceDAx
IiksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5l
eGNlcHRpb24uZXJyb3JfY29kZSwgUXVpY0Vycm9yQ29kZS5TVFJFQU1fU1RBVEVfRVJST1IpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5mcmFtZV90eXBlLCBRdWlj
RnJhbWVUeXBlLlNUUkVBTV9EQVRBX0JMT0NLRUQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNtLmV4Y2VwdGlvbi5yZWFzb25fcGhyYXNlLCAiU3RyZWFtIGlzIHNlbmQtb25seSIpCi0K
LSAgICBkZWYgdGVzdF9oYW5kbGVfc3RyZWFtc19ibG9ja2VkX3VuaV9mcmFtZShzZWxmKToKLSAg
ICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAg
ICAgICAgICAjIGNsaWVudCByZWNlaXZlcyBTVFJFQU1TX0JMT0NLRURfVU5JOiAwCi0gICAgICAg
ICAgICBjbGllbnQuX2hhbmRsZV9zdHJlYW1zX2Jsb2NrZWRfZnJhbWUoCi0gICAgICAgICAgICAg
ICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQpLAotICAgICAgICAgICAgICAgIFF1aWNG
cmFtZVR5cGUuU1RSRUFNU19CTE9DS0VEX1VOSSwKLSAgICAgICAgICAgICAgICBCdWZmZXIoZGF0
YT1iIlx4MDAiKSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3BheWxvYWRfcmVjZWl2
ZWRfcGFkZGluZ19vbmx5KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkg
YXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IHJlY2VpdmVzIHBhZGRp
bmcgb25seQotICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZywgaXNfcHJvYmluZyA9IGNsaWVu
dC5fcGF5bG9hZF9yZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2ZV9jb250
ZXh0KGNsaWVudCksIGIiXHgwMCIgKiAxMjAwCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGlzX2Fja19lbGljaXRpbmcpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoaXNfcHJvYmluZykKLQotICAgIGRlZiB0ZXN0X3BheWxvYWRfcmVjZWl2ZWRfdW5rbm93
bl9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGll
bnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCByZWNlaXZlcyB1bmtub3duIGZyYW1l
Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNDb25uZWN0aW9uRXJyb3Ip
IGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5fcGF5bG9hZF9yZWNlaXZlZChjbGllbnRf
cmVjZWl2ZV9jb250ZXh0KGNsaWVudCksIGIiXHgxZiIpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJvcl9jb2RlLCBRdWljRXJyb3JDb2RlLlBST1RPQ09MX1ZJ
T0xBVElPTikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmZyYW1l
X3R5cGUsIDB4MUYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5y
ZWFzb25fcGhyYXNlLCAiVW5rbm93biBmcmFtZSB0eXBlIikKLQotICAgIGRlZiB0ZXN0X3BheWxv
YWRfcmVjZWl2ZWRfdW5leHBlY3RlZF9mcmFtZShzZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRf
YW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNsaWVudCBy
ZWNlaXZlcyBDUllQVE8gZnJhbWUgaW4gMC1SVFQKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAgICAgICAgY2xp
ZW50Ll9wYXlsb2FkX3JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfcmVjZWl2
ZV9jb250ZXh0KGNsaWVudCwgZXBvY2g9dGxzLkVwb2NoLlpFUk9fUlRUKSwgYiJceDA2IgotICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9u
LmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuUFJPVE9DT0xfVklPTEFUSU9OKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZnJhbWVfdHlwZSwgUXVpY0ZyYW1lVHlw
ZS5DUllQVE8pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5yZWFz
b25fcGhyYXNlLCAiVW5leHBlY3RlZCBmcmFtZSB0eXBlIikKLQotICAgIGRlZiB0ZXN0X3BheWxv
YWRfcmVjZWl2ZWRfbWFsZm9ybWVkX2ZyYW1lKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9h
bmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IHJl
Y2VpdmVzIG1hbGZvcm1lZCBUUkFOU1BPUlRfQ0xPU0UgZnJhbWUKLSAgICAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoUXVpY0Nvbm5lY3Rpb25FcnJvcikgYXMgY206Ci0gICAgICAgICAg
ICAgICAgY2xpZW50Ll9wYXlsb2FkX3JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBjbGll
bnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksIGIiXHgxY1x4MDBceDAxIgotICAgICAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgY20u
ZXhjZXB0aW9uLmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuRlJBTUVfRU5DT0RJTkdfRVJST1IK
LSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9u
LmZyYW1lX3R5cGUsIDB4MUMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2Vw
dGlvbi5yZWFzb25fcGhyYXNlLCAiRmFpbGVkIHRvIHBhcnNlIGZyYW1lIikKLQotICAgIGRlZiB0
ZXN0X3NlbmRfbWF4X2RhdGFfYmxvY2tlZF9ieV9jYyhzZWxmKToKLSAgICAgICAgd2l0aCBjbGll
bnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAgICAjIGNoZWNr
IGNvbmdlc3Rpb24gY29udHJvbAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQu
X2xvc3MuYnl0ZXNfaW5fZmxpZ2h0LCAwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
bGllbnQuX2xvc3MuY29uZ2VzdGlvbl93aW5kb3csIDE0MzAzKQotCi0gICAgICAgICAgICAjIGFy
dGlmaWNpYWxseSByYWlzZSByZWNlaXZlZCBkYXRhIGNvdW50ZXIKLSAgICAgICAgICAgIGNsaWVu
dC5fbG9jYWxfbWF4X2RhdGFfdXNlZCA9IGNsaWVudC5fbG9jYWxfbWF4X2RhdGEKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLl9yZW1vdGVfbWF4X2RhdGEsIDEwNDg1NzYpCi0K
LSAgICAgICAgICAgICMgYXJ0aWZpY2lhbGx5IHJhaXNlIGJ5dGVzIGluIGZsaWdodAotICAgICAg
ICAgICAgY2xpZW50Ll9sb3NzLl9jYy5ieXRlc19pbl9mbGlnaHQgPSAxNDMwMwotCi0gICAgICAg
ICAgICAjIE1BWF9EQVRBIGlzIG5vdCBzZW50IGR1ZSB0byBjb25nZXN0aW9uIGNvbnRyb2wKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJvcChjbGllbnQpLCAwKQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9tYXhfZGF0YV9yZXRyYW5zbWl0KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9h
bmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgYXJ0aWZpY2lh
bGx5IHJhaXNlIHJlY2VpdmVkIGRhdGEgY291bnRlcgotICAgICAgICAgICAgY2xpZW50Ll9sb2Nh
bF9tYXhfZGF0YV91c2VkID0gY2xpZW50Ll9sb2NhbF9tYXhfZGF0YQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZXJ2ZXIuX3JlbW90ZV9tYXhfZGF0YSwgMTA0ODU3NikKLQotICAgICAg
ICAgICAgIyBNQVhfREFUQSBpcyBzZW50IGFuZCBsb3N0Ci0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGRyb3AoY2xpZW50KSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xp
ZW50Ll9sb2NhbF9tYXhfZGF0YV9zZW50LCAyMDk3MTUyKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZXJ2ZXIuX3JlbW90ZV9tYXhfZGF0YSwgMTA0ODU3NikKLQotICAgICAgICAgICAg
IyBNQVhfREFUQSBpcyByZXRyYW5zbWl0dGVkIGFuZCBhY2tlZAotICAgICAgICAgICAgY2xpZW50
Ll9vbl9tYXhfZGF0YV9kZWxpdmVyeShRdWljRGVsaXZlcnlTdGF0ZS5MT1NUKQotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQuX2xvY2FsX21heF9kYXRhX3NlbnQsIDApCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAx
KSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLl9yZW1vdGVfbWF4X2RhdGEs
IDIwOTcxNTIpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21heF9zdHJlYW1fZGF0YV9yZXRyYW5zbWl0
KHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2Vy
dmVyKToKLSAgICAgICAgICAgICMgY2xpZW50IGNyZWF0ZXMgYmlkaXJlY3Rpb25hbCBzdHJlYW0g
MAotICAgICAgICAgICAgc3RyZWFtID0gY2xpZW50Ll9jcmVhdGVfc3RyZWFtKHN0cmVhbV9pZD0w
KQotICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoMCwgYiJoZWxsbyIpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWwsIDEw
NDg1NzYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3RyZWFtX2Rh
dGFfbG9jYWxfc2VudCwgMTA0ODU3NikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91
bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQotCi0gICAgICAgICAgICAjIHNlcnZlciBz
ZW5kcyBkYXRhLCBqdXN0IGJlZm9yZSByYWlzaW5nIE1BWF9TVFJFQU1fREFUQQotICAgICAgICAg
ICAgc2VydmVyLnNlbmRfc3RyZWFtX2RhdGEoMCwgYiJaIiAqIDUyNDI4OCkgICMgMTA0ODU3NiAv
LyAyCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6Ci0gICAgICAgICAgICAgICAgcm91
bmR0cmlwKHNlcnZlciwgY2xpZW50KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJl
YW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsLCAxMDQ4NTc2KQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHJlYW0ubWF4X3N0cmVhbV9kYXRhX2xvY2FsX3NlbnQsIDEwNDg1NzYpCi0KLSAg
ICAgICAgICAgICMgc2VydmVyIHNlbmRzIG9uZSBtb3JlIGJ5dGUKLSAgICAgICAgICAgIHNlcnZl
ci5zZW5kX3N0cmVhbV9kYXRhKDAsIGIiWiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRyYW5zZmVyKHNlcnZlciwgY2xpZW50KSwgMSkKLQotICAgICAgICAgICAgIyBNQVhfU1RSRUFN
X0RBVEEgaXMgc2VudCBhbmQgbG9zdAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcm9w
KGNsaWVudCksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5tYXhfc3Ry
ZWFtX2RhdGFfbG9jYWwsIDIwOTcxNTIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cmVhbS5tYXhfc3RyZWFtX2RhdGFfbG9jYWxfc2VudCwgMjA5NzE1MikKLSAgICAgICAgICAgIGNs
aWVudC5fb25fbWF4X3N0cmVhbV9kYXRhX2RlbGl2ZXJ5KFF1aWNEZWxpdmVyeVN0YXRlLkxPU1Qs
IHN0cmVhbSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1f
ZGF0YV9sb2NhbCwgMjA5NzE1MikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFt
Lm1heF9zdHJlYW1fZGF0YV9sb2NhbF9zZW50LCAwKQotCi0gICAgICAgICAgICAjIE1BWF9EQVRB
IGlzIHJldHJhbnNtaXR0ZWQgYW5kIGFja2VkCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAxKSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbCwgMjA5NzE1MikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm1heF9zdHJlYW1fZGF0YV9sb2NhbF9zZW50LCAy
MDk3MTUyKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9waW5nKHNlbGYpOgotICAgICAgICB3aXRoIGNs
aWVudF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIGNvbnN1
bWVfZXZlbnRzKGNsaWVudCkKLQotICAgICAgICAgICAgIyBjbGllbnQgc2VuZHMgcGluZywgc2Vy
dmVyIEFDS3MgaXQKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX3BpbmcodWlkPTEyMzQ1KQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwg
MSkpCi0KLSAgICAgICAgICAgICMgY2hlY2sgZXZlbnQKLSAgICAgICAgICAgIGV2ZW50ID0gY2xp
ZW50Lm5leHRfZXZlbnQoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGV2ZW50
KSwgZXZlbnRzLlBpbmdBY2tub3dsZWRnZWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV2ZW50LnVpZCwgMTIzNDUpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3BpbmdfcmV0cmFuc21pdChz
ZWxmKToKLSAgICAgICAgd2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZl
cik6Ci0gICAgICAgICAgICBjb25zdW1lX2V2ZW50cyhjbGllbnQpCi0KLSAgICAgICAgICAgICMg
Y2xpZW50IHNlbmRzIGFub3RoZXIgcGluZywgUElORyBpcyBsb3N0Ci0gICAgICAgICAgICBjbGll
bnQuc2VuZF9waW5nKHVpZD0xMjM0NSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJv
cChjbGllbnQpLCAxKQotCi0gICAgICAgICAgICAjIFBJTkcgaXMgcmV0cmFuc21pdHRlZCBhbmQg
YWNrZWQKLSAgICAgICAgICAgIGNsaWVudC5fb25fcGluZ19kZWxpdmVyeShRdWljRGVsaXZlcnlT
dGF0ZS5MT1NULCAoMTIzNDUsKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0
cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQotCi0gICAgICAgICAgICAjIGNoZWNrIGV2ZW50
Ci0gICAgICAgICAgICBldmVudCA9IGNsaWVudC5uZXh0X2V2ZW50KCkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodHlwZShldmVudCksIGV2ZW50cy5QaW5nQWNrbm93bGVkZ2VkKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudC51aWQsIDEyMzQ1KQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9zdHJlYW1fZGF0YV9vdmVyX21heF9zdHJlYW1zX2JpZGkoc2VsZik6Ci0gICAgICAg
IHdpdGggY2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAoY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAg
ICAgIyBjcmVhdGUgc3RyZWFtcwotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTI4KToKLSAg
ICAgICAgICAgICAgICBzdHJlYW1faWQgPSBpICogNAotICAgICAgICAgICAgICAgIGNsaWVudC5z
ZW5kX3N0cmVhbV9kYXRhKHN0cmVhbV9pZCwgYiIiKQotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UoY2xpZW50Ll9zdHJlYW1zW3N0cmVhbV9pZF0uaXNfYmxvY2tlZCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudC5fc3RyZWFtc19ibG9ja2VkX2JpZGkpLCAw
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xpZW50Ll9zdHJlYW1zX2Jsb2Nr
ZWRfdW5pKSwgMCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVu
dCwgc2VydmVyKSwgKDAsIDApKQotCi0gICAgICAgICAgICAjIGNyZWF0ZSBvbmUgdG9vIG1hbnkg
LT4gU1RSRUFNU19CTE9DS0VECi0gICAgICAgICAgICBzdHJlYW1faWQgPSAxMjggKiA0Ci0gICAg
ICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiIikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbXNbc3RyZWFtX2lkXS5pc19ibG9ja2Vk
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xpZW50Ll9zdHJlYW1zX2Jsb2Nr
ZWRfYmlkaSksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbGllbnQuX3N0
cmVhbXNfYmxvY2tlZF91bmkpLCAwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3Vu
ZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMSwgMSkpCi0KLSAgICAgICAgICAgICMgcGVlciByYWlz
ZXMgbWF4IHN0cmVhbXMKLSAgICAgICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1zX2Jp
ZGlfZnJhbWUoCi0gICAgICAgICAgICAgICAgY2xpZW50X3JlY2VpdmVfY29udGV4dChjbGllbnQp
LAotICAgICAgICAgICAgICAgIFF1aWNGcmFtZVR5cGUuTUFYX1NUUkVBTVNfQklESSwKLSAgICAg
ICAgICAgICAgICBCdWZmZXIoZGF0YT1lbmNvZGVfdWludF92YXIoMTI5KSksCi0gICAgICAgICAg
ICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNsaWVudC5fc3RyZWFtc1tzdHJlYW1f
aWRdLmlzX2Jsb2NrZWQpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3N0cmVhbV9kYXRhX292ZXJfbWF4
X3N0cmVhbXNfdW5pKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVudF9hbmRfc2VydmVyKCkgYXMg
KGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgICMgY3JlYXRlIHN0cmVhbXMKLSAgICAgICAg
ICAgIGZvciBpIGluIHJhbmdlKDEyOCk6Ci0gICAgICAgICAgICAgICAgc3RyZWFtX2lkID0gaSAq
IDQgKyAyCi0gICAgICAgICAgICAgICAgY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEoc3RyZWFtX2lk
LCBiIiIpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjbGllbnQuX3N0cmVhbXNb
c3RyZWFtX2lkXS5pc19ibG9ja2VkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4o
Y2xpZW50Ll9zdHJlYW1zX2Jsb2NrZWRfYmlkaSksIDApCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihjbGllbnQuX3N0cmVhbXNfYmxvY2tlZF91bmkpLCAwKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIpLCAoMCwgMCkpCi0KLSAg
ICAgICAgICAgICMgY3JlYXRlIG9uZSB0b28gbWFueSAtPiBTVFJFQU1TX0JMT0NLRUQKLSAgICAg
ICAgICAgIHN0cmVhbV9pZCA9IDEyOCAqIDQgKyAyCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9z
dHJlYW1fZGF0YShzdHJlYW1faWQsIGIiIikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShj
bGllbnQuX3N0cmVhbXNbc3RyZWFtX2lkXS5pc19ibG9ja2VkKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oY2xpZW50Ll9zdHJlYW1zX2Jsb2NrZWRfYmlkaSksIDApCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbGllbnQuX3N0cmVhbXNfYmxvY2tlZF91bmkpLCAx
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3VuZHRyaXAoY2xpZW50LCBzZXJ2ZXIp
LCAoMSwgMSkpCi0KLSAgICAgICAgICAgICMgcGVlciByYWlzZXMgbWF4IHN0cmVhbXMKLSAgICAg
ICAgICAgIGNsaWVudC5faGFuZGxlX21heF9zdHJlYW1zX3VuaV9mcmFtZSgKLSAgICAgICAgICAg
ICAgICBjbGllbnRfcmVjZWl2ZV9jb250ZXh0KGNsaWVudCksCi0gICAgICAgICAgICAgICAgUXVp
Y0ZyYW1lVHlwZS5NQVhfU1RSRUFNU19VTkksCi0gICAgICAgICAgICAgICAgQnVmZmVyKGRhdGE9
ZW5jb2RlX3VpbnRfdmFyKDEyOSkpLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShjbGllbnQuX3N0cmVhbXNbc3RyZWFtX2lkXS5pc19ibG9ja2VkKQotCi0gICAg
ZGVmIHRlc3Rfc2VuZF9zdHJlYW1fZGF0YV9wZWVyX2luaXRpYXRlZChzZWxmKToKLSAgICAgICAg
d2l0aCBjbGllbnRfYW5kX3NlcnZlcigpIGFzIChjbGllbnQsIHNlcnZlcik6Ci0gICAgICAgICAg
ICAjIHNlcnZlciBjcmVhdGVzIGJpZGlyZWN0aW9uYWwgc3RyZWFtCi0gICAgICAgICAgICBzZXJ2
ZXIuc2VuZF9zdHJlYW1fZGF0YSgxLCBiImhlbGxvIikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocm91bmR0cmlwKHNlcnZlciwgY2xpZW50KSwgKDEsIDEpKQotCi0gICAgICAgICAgICAj
IHNlcnZlciBjcmVhdGVzIHVuaWRpcmVjdGlvbmFsIHN0cmVhbQotICAgICAgICAgICAgc2VydmVy
LnNlbmRfc3RyZWFtX2RhdGEoMywgYiJoZWxsbyIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJvdW5kdHJpcChzZXJ2ZXIsIGNsaWVudCksICgxLCAxKSkKLQotICAgICAgICAgICAgIyBj
bGllbnQgY3JlYXRlcyBiaWRpcmVjdGlvbmFsIHN0cmVhbQotICAgICAgICAgICAgY2xpZW50LnNl
bmRfc3RyZWFtX2RhdGEoMCwgYiJoZWxsbyIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJvdW5kdHJpcChjbGllbnQsIHNlcnZlciksICgxLCAxKSkKLQotICAgICAgICAgICAgIyBjbGll
bnQgc2VuZHMgZGF0YSBvbiBzZXJ2ZXItaW5pdGlhdGVkIGJpZGlyZWN0aW9uYWwgc3RyZWFtCi0g
ICAgICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YSgxLCBiImhlbGxvIikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQot
Ci0gICAgICAgICAgICAjIGNsaWVudCBjcmVhdGUgdW5pZGlyZWN0aW9uYWwgc3RyZWFtCi0gICAg
ICAgICAgICBjbGllbnQuc2VuZF9zdHJlYW1fZGF0YSgyLCBiImhlbGxvIikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocm91bmR0cmlwKGNsaWVudCwgc2VydmVyKSwgKDEsIDEpKQotCi0g
ICAgICAgICAgICAjIGNsaWVudCB0cmllcyB0byBzZW5kIGRhdGEgb24gc2VydmVyLWluaXRpYWwg
dW5pZGlyZWN0aW9uYWwgc3RyZWFtCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNsaWVudC5zZW5kX3N0cmVhbV9k
YXRhKDMsIGIiaGVsbG8iKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgICAgICBzdHIoY20uZXhjZXB0aW9uKSwKLSAgICAgICAgICAgICAgICAiQ2Fubm90IHNlbmQg
ZGF0YSBvbiBwZWVyLWluaXRpYXRlZCB1bmlkaXJlY3Rpb25hbCBzdHJlYW0iLAotICAgICAgICAg
ICAgKQotCi0gICAgICAgICAgICAjIGNsaWVudCB0cmllcyB0byBzZW5kIGRhdGEgb24gdW5rbm93
biBzZXJ2ZXItaW5pdGlhdGVkIGJpZGlyZWN0aW9uYWwgc3RyZWFtCi0gICAgICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgICAgIGNs
aWVudC5zZW5kX3N0cmVhbV9kYXRhKDUsIGIiaGVsbG8iKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzdHIoY20uZXhjZXB0aW9uKSwgIkNhbm5vdCBzZW5k
IGRhdGEgb24gdW5rbm93biBwZWVyLWluaXRpYXRlZCBzdHJlYW0iCi0gICAgICAgICAgICApCi0K
LSAgICBkZWYgdGVzdF9zdHJlYW1fZGlyZWN0aW9uKHNlbGYpOgotICAgICAgICB3aXRoIGNsaWVu
dF9hbmRfc2VydmVyKCkgYXMgKGNsaWVudCwgc2VydmVyKToKLSAgICAgICAgICAgIGZvciBvZmYg
aW4gWzAsIDQsIDhdOgotICAgICAgICAgICAgICAgICMgQ2xpZW50LUluaXRpYXRlZCwgQmlkaXJl
Y3Rpb25hbAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbV9j
YW5fcmVjZWl2ZShvZmYpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQu
X3N0cmVhbV9jYW5fc2VuZChvZmYpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShz
ZXJ2ZXIuX3N0cmVhbV9jYW5fcmVjZWl2ZShvZmYpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShzZXJ2ZXIuX3N0cmVhbV9jYW5fc2VuZChvZmYpKQotCi0gICAgICAgICAgICAgICAg
IyBTZXJ2ZXItSW5pdGlhdGVkLCBCaWRpcmVjdGlvbmFsCi0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNsaWVudC5fc3RyZWFtX2Nhbl9yZWNlaXZlKG9mZiArIDEpKQotICAgICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbV9jYW5fc2VuZChvZmYgKyAxKSkK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLl9zdHJlYW1fY2FuX3JlY2Vp
dmUob2ZmICsgMSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlci5fc3Ry
ZWFtX2Nhbl9zZW5kKG9mZiArIDEpKQotCi0gICAgICAgICAgICAgICAgIyBDbGllbnQtSW5pdGlh
dGVkLCBVbmlkaXJlY3Rpb25hbAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2xp
ZW50Ll9zdHJlYW1fY2FuX3JlY2VpdmUob2ZmICsgMikpCi0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNsaWVudC5fc3RyZWFtX2Nhbl9zZW5kKG9mZiArIDIpKQotICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZXJ2ZXIuX3N0cmVhbV9jYW5fcmVjZWl2ZShvZmYgKyAyKSkK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5fc3RyZWFtX2Nhbl9zZW5k
KG9mZiArIDIpKQotCi0gICAgICAgICAgICAgICAgIyBTZXJ2ZXItSW5pdGlhdGVkLCBVbmlkaXJl
Y3Rpb25hbAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGllbnQuX3N0cmVhbV9j
YW5fcmVjZWl2ZShvZmYgKyAzKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNs
aWVudC5fc3RyZWFtX2Nhbl9zZW5kKG9mZiArIDMpKQotICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2Uoc2VydmVyLl9zdHJlYW1fY2FuX3JlY2VpdmUob2ZmICsgMykpCi0gICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlcnZlci5fc3RyZWFtX2Nhbl9zZW5kKG9mZiArIDMpKQot
Ci0gICAgZGVmIHRlc3RfdmVyc2lvbl9uZWdvdGlhdGlvbl9mYWlsKHNlbGYpOgotICAgICAgICBj
bGllbnQgPSBjcmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICAjIG5vIGNv
bW1vbiB2ZXJzaW9uLCBubyByZXRyeQotICAgICAgICBjbGllbnQucmVjZWl2ZV9kYXRhZ3JhbSgK
LSAgICAgICAgICAgIGVuY29kZV9xdWljX3ZlcnNpb25fbmVnb3RpYXRpb24oCi0gICAgICAgICAg
ICAgICAgc291cmNlX2NpZD1jbGllbnQuX3BlZXJfY2lkLAotICAgICAgICAgICAgICAgIGRlc3Rp
bmF0aW9uX2NpZD1jbGllbnQuaG9zdF9jaWQsCi0gICAgICAgICAgICAgICAgc3VwcG9ydGVkX3Zl
cnNpb25zPVsweEZGMDAwMDExXSwgICMgRFJBRlRfMTYKLSAgICAgICAgICAgICksCi0gICAgICAg
ICAgICBTRVJWRVJfQUREUiwKLSAgICAgICAgICAgIG5vdz10aW1lLnRpbWUoKSwKLSAgICAgICAg
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRyb3AoY2xpZW50KSwgMCkKLQotICAgICAgICBl
dmVudCA9IGNsaWVudC5uZXh0X2V2ZW50KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBl
KGV2ZW50KSwgZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV2ZW50LmVycm9yX2NvZGUsIFF1aWNFcnJvckNvZGUuSU5URVJOQUxfRVJST1IpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnQuZnJhbWVfdHlwZSwgTm9uZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV2ZW50LnJlYXNvbl9waHJhc2UsICJDb3Vs
ZCBub3QgZmluZCBhIGNvbW1vbiBwcm90b2NvbCB2ZXJzaW9uIgotICAgICAgICApCi0KLSAgICBk
ZWYgdGVzdF92ZXJzaW9uX25lZ290aWF0aW9uX29rKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBj
cmVhdGVfc3RhbmRhbG9uZV9jbGllbnQoc2VsZikKLQotICAgICAgICAjIGZvdW5kIGEgY29tbW9u
IHZlcnNpb24sIHJldHJ5Ci0gICAgICAgIGNsaWVudC5yZWNlaXZlX2RhdGFncmFtKAotICAgICAg
ICAgICAgZW5jb2RlX3F1aWNfdmVyc2lvbl9uZWdvdGlhdGlvbigKLSAgICAgICAgICAgICAgICBz
b3VyY2VfY2lkPWNsaWVudC5fcGVlcl9jaWQsCi0gICAgICAgICAgICAgICAgZGVzdGluYXRpb25f
Y2lkPWNsaWVudC5ob3N0X2NpZCwKLSAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbnM9
W2NsaWVudC5fdmVyc2lvbl0sCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgU0VSVkVSX0FE
RFIsCi0gICAgICAgICAgICBub3c9dGltZS50aW1lKCksCi0gICAgICAgICkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChkcm9wKGNsaWVudCksIDEpCi0KLQotY2xhc3MgUXVpY05ldHdvcmtQYXRo
VGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfY2FuX3NlbmQoc2VsZik6Ci0gICAgICAgIHBh
dGggPSBRdWljTmV0d29ya1BhdGgoKCIxLjIuMy40IiwgMTIzNCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UocGF0aC5pc192YWxpZGF0ZWQpCi0KLSAgICAgICAgIyBpbml0aWFsbHksIGNhbm5v
dCBzZW5kIGFueSBkYXRhCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYXRoLmNhbl9zZW5kKDAp
KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBhdGguY2FuX3NlbmQoMSkpCi0KLSAgICAgICAg
IyByZWNlaXZlIHNvbWUgZGF0YQotICAgICAgICBwYXRoLmJ5dGVzX3JlY2VpdmVkICs9IDEKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhdGguY2FuX3NlbmQoMCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwYXRoLmNhbl9zZW5kKDEpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocGF0aC5j
YW5fc2VuZCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhdGguY2FuX3NlbmQoMykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocGF0aC5jYW5fc2VuZCg0KSkKLQotICAgICAgICAjIHNl
bmQgc29tZSBkYXRhCi0gICAgICAgIHBhdGguYnl0ZXNfc2VudCArPSAzCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShwYXRoLmNhbl9zZW5kKDApKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBh
dGguY2FuX3NlbmQoMSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9jcnlw
dG8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9jcnlwdG8ucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQyNGU0ZGNmNWUxOGU0NzAyNDUwZDFiZWJmNDlkZmZjMjEzZTYyZDUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rlc3RfY3J5cHRvLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzE5ICswLDAgQEAK
LWltcG9ydCBiaW5hc2NpaQotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UsIHNraXBJZgot
Ci1mcm9tIGFpb3F1aWMuYnVmZmVyIGltcG9ydCBCdWZmZXIKLWZyb20gYWlvcXVpYy5xdWljLmNy
eXB0byBpbXBvcnQgKAotICAgIElOSVRJQUxfQ0lQSEVSX1NVSVRFLAotICAgIENyeXB0b0Vycm9y
LAotICAgIENyeXB0b1BhaXIsCi0gICAgZGVyaXZlX2tleV9pdl9ocCwKLSkKLWZyb20gYWlvcXVp
Yy5xdWljLnBhY2tldCBpbXBvcnQgUEFDS0VUX0ZJWEVEX0JJVCwgUXVpY1Byb3RvY29sVmVyc2lv
bgotZnJvbSBhaW9xdWljLnRscyBpbXBvcnQgQ2lwaGVyU3VpdGUKLQotZnJvbSAudXRpbHMgaW1w
b3J0IFNLSVBfVEVTVFMKLQotUFJPVE9DT0xfVkVSU0lPTiA9IFF1aWNQcm90b2NvbFZlcnNpb24u
RFJBRlRfMjUKLQotQ0hBQ0hBMjBfQ0xJRU5UX1BBQ0tFVF9OVU1CRVIgPSAyCi1DSEFDSEEyMF9D
TElFTlRfUExBSU5fSEVBREVSID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICJlMWZmMDAwMDE2
MDg4MGI1N2M3YjcwZDg1MjRiMDg1MGZjMmEyOGUyNDBmZDc2NDAxNzAwMDIiCi0pCi1DSEFDSEEy
MF9DTElFTlRfUExBSU5fUEFZTE9BRCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgiMDIwMTAwMDAwMCIp
Ci1DSEFDSEEyMF9DTElFTlRfRU5DUllQVEVEX1BBQ0tFVCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgK
LSAgICAiZThmZjAwMDAxNjA4ODBiNTdjN2I3MGQ4NTI0YjA4NTBmYzJhMjhlMjQwZmQ3NjQwMTc4
MzEzYjA0YmU5ODQ0OSIKLSAgICAiZWIxMDU2N2UyNWNlOTMwMzgxZjJhNWI3ZGEyZGI4ZGIiCi0p
Ci0KLUxPTkdfQ0xJRU5UX1BBQ0tFVF9OVU1CRVIgPSAyCi1MT05HX0NMSUVOVF9QTEFJTl9IRUFE
RVIgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgImMzZmYwMDAwMTcwODgzOTRjOGYwM2U1MTU3
MDgwMDAwNDQ5ZTAwMDAwMDAyIgotKQotTE9OR19DTElFTlRfUExBSU5fUEFZTE9BRCA9IGJpbmFz
Y2lpLnVuaGV4bGlmeSgKLSAgICAiMDYwMDQwYzQwMTAwMDBjMDAzMDM2NjYwMjYxZmY5NDdjZWE0
OWNjZTZjZmFkNjg3ZjQ1N2NmMWIxNDUzMWJhMSIKLSAgICAiNDEzMWEwZThmMzA5YTFkMGI5YzQw
MDAwMDYxMzAxMTMwMzEzMDIwMTAwMDA5MTAwMDAwMDBiMDAwOTAwMDAwNiIKLSAgICAiNzM2NTcy
NzY2NTcyZmYwMTAwMDEwMDAwMGEwMDE0MDAxMjAwMWQwMDE3MDAxODAwMTkwMTAwMDEwMTAxMDIw
MSIKLSAgICAiMDMwMTA0MDAyMzAwMDAwMDMzMDAyNjAwMjQwMDFkMDAyMDRjZmRmY2QxNzhiNzg0
YmYzMjhjYWU3OTNiMTM2ZiIKLSAgICAiMmFlZGNlMDA1ZmYxODNkN2JiMTQ5NTIwNzIzNjY0NzAz
NzAwMmIwMDAzMDIwMzA0MDAwZDAwMjAwMDFlMDQwMyIKLSAgICAiMDUwMzA2MDMwMjAzMDgwNDA4
MDUwODA2MDQwMTA1MDEwNjAxMDIwMTA0MDIwNTAyMDYwMjAyMDIwMDJkMDAwMiIKLSAgICAiMDEw
MTAwMWMwMDAyNDAwMSIKLSkgKyBieXRlcyg5NjIpCi1MT05HX0NMSUVOVF9FTkNSWVBURURfUEFD
S0VUID0gYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICJjMGZmMDAwMDE3MDg4Mzk0YzhmMDNlNTE1
NzA4MDAwMDQ0OWUzYjM0M2FhODUzNTA2NGE0MjY4YTBkOWQ3YjFjIgotICAgICI5ZDI1MGFlMzU1
MTYyMjc2ZTliMWUzMDExZWY2YmJjMGFiNDhhZDViY2MyNjgxZTk1Mzg1N2NhNjJiZWNkNzUyIgot
ICAgICI0ZGFhYzQ3M2U2OGQ3NDA1ZmJiYTRlOWVlNjE2Yzg3MDM4YmRiZTkwOGMwNmQ5NjA1ZDlh
YzQ5MDMwMzU5ZWVjIgotICAgICJiMWQwNWExNGUxMTdkYjhjZWRlMmJiMDlkMGRiYmZlZTI3MWNi
Mzc0ZDhmMTBhYmVjODJkMGY1OWExZGVlMjlmIgotICAgICJlOTU2MzhlZDhkZDQxZGEwNzQ4NzQ2
ODc5MWI3MTljNTVjNDY5NjhlYjNiNTQ2ODAwMzcxMDJhMjhlNTNkYzFkIgotICAgICIxMjkwM2Ri
MGFmNTgyMTc5NGI0MWM0YTkzMzU3ZmE1OWNlNjljZmU3ZjZiZGZhNjI5ZWVmNzg2MTY0NDdlMWQ2
IgotICAgICIxMWM0YmFmNzFiZjMzZmViY2IwMzEzN2MyYzc1ZDI1MzE3ZDNlMTNiNjg0MzcwZjY2
ODQxMWMwZjAwMzA0YjUwIgotICAgICIxYzhmZDQyMmJkOWI5YWQ4MWQ2NDNiMjBkYTg5Y2EwNTI1
ZDI0ZDJiMTQyMDQxY2FlMGFmMjA1MDkyZTQzMDA4IgotICAgICIwY2Q4NTU5ZWE0YzVjNmU0ZmEz
ZjY2MDgyYjdkMzAzZTUyY2UwMTYyYmFhOTU4NTMyYjBiYmMyYmM3ODU2ODFmIgotICAgICJjZjM3
NDg1ZGZmNjU5NWUwMWU3MzljOGFjOWVmYmEzMWI5ODVkNWY2NTZjYzA5MjQzMmQ3ODFkYjk1MjIx
NzI0IgotICAgICI4NzY0MWM0ZDNhYjhlY2UwMWUzOWJjODViMTU0MzY2MTQ3NzVhOThiYThmYTEy
ZDQ2ZjliMzVlMmE1NWViNzJkIgotICAgICI3Zjg1MTgxYTM2NjY2MzM4N2RkYzIwNTUxODA3ZTAw
NzY3M2JkN2UyNmJmOWIyOWI1YWIxMGExY2E4N2NiYjdhIgotICAgICJkOTdlOTllYjY2OTU5YzJh
OWJjM2NiZGU0NzA3ZmY3NzIwYjExMGZhOTUzNTQ2NzRlMzk1ODEyZTQ3YTBhZTUzIgotICAgICJi
NDY0ZGNiMmQxZjM0NWRmMzYwZGMyMjcyNzBjNzUwNjc2ZjY3MjRlYjQ3OWYwZDJmYmI2MTI0NDI5
OTkwNDU3IgotICAgICJhYzZjOTE2N2Y0MGFhYjczOTk5OGYzOGI5ZWNjYjI0ZmQ0N2M4NDEwMTMx
YmY2NWE1MmFmODQxMjc1ZDViM2QxIgotICAgICI4ODBiMTk3ZGYyYjVkZWEzZTZkZTU2ZWJjZTNm
ZmI2ZTkyNzdhODIwODJmOGQ5Njc3YTY3NjcwODliNjcxZWJkIgotICAgICIyNDRjMjE0ZjBiZGU5
NWMyYmViMDJjZDExNzJkNThiZGYzOWRjZTU2ZmY2OGViMzVhYjM5YjQ5YjRlYWM3YzgxIgotICAg
ICI1ZWE2MDQ1MWQ2ZTZhYjgyMTE5MTE4ZGYwMmE1ODY4NDRhOWZmZTE2MmJhMDA2ZDA2NjllZjU3
NjY4Y2FiMzhiIgotICAgICI2MmY3MWEyNTIzYTA4NDg1MmNkMWQwNzliMzY1OGRjMmYzZTg3OTQ5
YjU1MGJhYjNlMTc3Y2ZjNDllZDE5MGRmIgotICAgICJmMDYzMGU0MzA3N2MzMGRlOGY2YWUwODE1
MzdmMWU4M2RhNTM3ZGE5ODBhZmE2NjhlN2I3ZmIyNTMwMWNmNzQxIgotICAgICI1MjRiZTNjNDk4
ODRiNDI4MjFmMTc1NTJmYmQxOTMxYTgxMzAxN2I2YjY1OTBhNDFlYTE4YjZiYTQ5Y2Q0OGE0Igot
ICAgICI0MGJkOWEzMzQ2YTc2MjNmYjRiYTM0YTNlZTU3MWUzYzczMWYzNWE3YTNjZjI1YjU1MWE2
ODBmYTY4NzYzNTA3IgotICAgICJiN2ZkZTNhYWYwMjNjNTBiOWQyMmRhNjg3NmJhMzM3ZWI1ZTlk
ZDllYzNkYWY5NzAyNDJiNmM1YWFiM2FhNGIyIgotICAgICI5NmFkOGI5ZjY4MzJmNjg2ZWY3MGZh
OTM4YjMxYjRlNWRkZDczNjQ0NDJkM2VhNzJlNzNkNjY4ZmIwOTM3Nzk2IgotICAgICJmNDYyOTIz
YTgxYTQ3ZTFjZWU3NDI2ZmY2ZDkyMjEyNjliNWE2MmVjMDNkNmVjOTRkMTI2MDZjYjQ4NTU2MGJh
IgotICAgICJiNTc0ODE2MDA5ZTk2NTA0MjQ5Mzg1YmI2MWE4MTliZTA0ZjYyYzIwNjYyMTRkODM2
MGEyMDIyYmViMzE2MjQwIgotICAgICJiNmM3ZDc4YmJlNTZjMTMwODJlMGNhMjcyNjYxMjEwYWJm
MDIwYmYzYjU3ODNmMTQyNjQzNmNmOWZmNDE4NDA1IgotICAgICI5M2E1ZDA2MzhkMzJmYzUxYzVj
NjVmZjI5MWEzYTdhNTJmZDY3NzVlNjIzYTQ0MzljYzA4ZGQyNTU4MmZlYmM5IgotICAgICI0NGVm
OTJkOGRiZDMyOWM5MWRlM2U5Yzk1ODJlNDFmMTdmM2QxODZmMTA0YWQzZjkwOTk1MTE2YzY4MmEy
YTE0IgotICAgICJhM2I0YjFmNTQ3YzMzNWYwYmU3MTBmYzlmYzAzZTBlNTg3YjhjZGEzMWNlNjVi
OTY5ODc4YTRhZDQyODNlNmQ1IgotICAgICJiMDM3M2Y0M2RhODZlOWUwZmZlMWFlMGZkZGQzNTE2
MjU1YmQ3NDU2NmYzNmEzODcwM2Q1ZjM0MjQ5ZGVkMWY2IgotICAgICI2YjNkOWI0NWI5YWYyY2Nm
ZWZlOTg0ZTEzMzc2YjFiMmM2NDA0YWE0OGM4MDI2MTMyMzQzZGEzZjNhMzM2NTllIgotICAgICJj
MWIzZTk1MDgwNTQwYjI4YjdmM2ZjZDM1ZmE1ZDg0M2I1NzlhODRjMDg5MTIxYTYwZDhjMTc1NDkx
NWMzNDRlIgotICAgICJlYWY0NWE5YmYyN2RjMGMxZTc4NDE2MTY5MTIyMDkxMzEzZWIwZTg3NTU1
YWJkNzA2NjI2ZTU1N2ZjMzZhMDRmIgotICAgICJjZDE5MWE1ODgyOTEwNGQ2MDc1YzU1OTRmNjI3
Y2E1MDZiZjE4MWRhZWM5NDBmNGE0ZjNhZjAwNzRlZWU4OWRhIgotICAgICJhY2RlNjc1ODMxMjYy
MmQ0ZmE2NzViMzlmNzI4ZTA2MmQyYmVlNjgwZDhmNDFhNTk3YzI2MjY0OGJiMThiY2ZjIgotICAg
ICIxM2M4YjNkOTdiMWE3N2IyYWMzYWY3NDVkNjFhMzRjYzQ3MDk4NjViYWM4MjRhOTRiYjE5MDU4
MDE1ZTRlNDJkIgotICAgICJjOWJlNmM3ODAzNTY3MzIxODI5ZGQ4NTg1MzM5NjI2OSIKLSkKLQot
TE9OR19TRVJWRVJfUEFDS0VUX05VTUJFUiA9IDEKLUxPTkdfU0VSVkVSX1BMQUlOX0hFQURFUiA9
IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAiYzFmZjAwMDAxNzAwMDhmMDY3YTU1MDJhNDI2MmI1
MDA0MDc0MDAwMSIKLSkKLUxPTkdfU0VSVkVSX1BMQUlOX1BBWUxPQUQgPSBiaW5hc2NpaS51bmhl
eGxpZnkoCi0gICAgIjBkMDAwMDAwMDAxODQxMGEwMjAwMDA1NjAzMDNlZWZjZTdmN2IzN2JhMWQx
NjMyZTk2Njc3ODI1ZGRmNzM5ODgiCi0gICAgImNmYzc5ODI1ZGY1NjZkYzU0MzBiOWEwNDVhMTIw
MDEzMDEwMDAwMmUwMDMzMDAyNDAwMWQwMDIwOWQzYzk0MGQiCi0gICAgIjg5NjkwYjg0ZDA4YTYw
OTkzYzE0NGVjYTY4NGQxMDgxMjg3YzgzNGQ1MzExYmNmMzJiYjlkYTFhMDAyYjAwMDIiCi0gICAg
IjAzMDQiCi0pCi1MT05HX1NFUlZFUl9FTkNSWVBURURfUEFDS0VUID0gYmluYXNjaWkudW5oZXhs
aWZ5KAotICAgICJjOWZmMDAwMDE3MDAwOGYwNjdhNTUwMmE0MjYyYjUwMDQwNzQxNjhiZjIyYjcw
MDI1OTZmOTlhZTY3YWJmNjVhIgotICAgICI1ODUyZjU0ZjU4YzM3YzgwODY4MmUyZTQwNDkyZDhh
Mzg5OWZiMDRmYzBhZmU5YWFiYzg3NjdiMThhMGFhNDkzIgotICAgICI1Mzc0MjYzNzNiNDhkNTAy
MjE0ZGQ4NTZkNjNiNzhjZWUzN2JjNjY0YjNmZTg2ZDQ4N2FjN2E3N2M1MzAzOGEzIgotICAgICJj
ZDMyZjBiNTAwNGQ5ZjU3NTRjNGY3ZjJkMWYzNWNmM2Y3MTE2MzUxYzkyYjljZjliYjZkMDkxZGRm
YzhiMzJkIgotICAgICI0MzIzNDhhMmM0MTMiCi0pCi0KLVNIT1JUX1NFUlZFUl9QQUNLRVRfTlVN
QkVSID0gMwotU0hPUlRfU0VSVkVSX1BMQUlOX0hFQURFUiA9IGJpbmFzY2lpLnVuaGV4bGlmeSgi
NDFiMDFmZDI0YTU4NmE5Y2YzMDAwMyIpCi1TSE9SVF9TRVJWRVJfUExBSU5fUEFZTE9BRCA9IGJp
bmFzY2lpLnVuaGV4bGlmeSgKLSAgICAiMDYwMDM5MDQwMDAwMzUwMDAxNTE4MDVhNGJlYmY1MDAw
MDIwYjA5OGM4ZGM0MTgzZTRjMTgyNTcyZTEwYWMzZSIKLSAgICAiMmI4ODg5N2UwNTI0Yzg0NjE4
NDc1NDhiZDJkZmZhMmMwYWU2MDAwODAwMmEwMDA0ZmZmZmZmZmYiCi0pCi1TSE9SVF9TRVJWRVJf
RU5DUllQVEVEX1BBQ0tFVCA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAiNWRiMDFmZDI0YTU4
NmE5Y2YzM2RlYzA5NGFhZWM2ZDZiNGI3YTVlMTVmNWEzZjA1ZDA2Y2YxYWQwMzU1YzE5ZCIKLSAg
ICAiY2NlMDgwN2VlY2Y3YmYxYzg0NGE2NmUxZWNkMWY3NGIyYTJkNjliZmQyNWQyMTc4MzNlZGQ5
NzMyNDY1OTdiZCIKLSAgICAiNTEwN2VhMTVjYjFlMjEwMDQ1Mzk2YWZhNjAyZmUyMzQzMmY0YWIy
NGNlMjUxYiIKLSkKLQotCi1jbGFzcyBDcnlwdG9UZXN0KFRlc3RDYXNlKToKLSAgICAiIiIKLSAg
ICBUZXN0IHZlY3RvcnMgZnJvbToKLQotICAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9k
cmFmdC1pZXRmLXF1aWMtdGxzLTE4I2FwcGVuZGl4LUEKLSAgICAiIiIKLQotICAgIGRlZiBjcmVh
dGVfY3J5cHRvKHNlbGYsIGlzX2NsaWVudCk6Ci0gICAgICAgIHBhaXIgPSBDcnlwdG9QYWlyKCkK
LSAgICAgICAgcGFpci5zZXR1cF9pbml0aWFsKAotICAgICAgICAgICAgY2lkPWJpbmFzY2lpLnVu
aGV4bGlmeSgiODM5NGM4ZjAzZTUxNTcwOCIpLAotICAgICAgICAgICAgaXNfY2xpZW50PWlzX2Ns
aWVudCwKLSAgICAgICAgICAgIHZlcnNpb249UFJPVE9DT0xfVkVSU0lPTiwKLSAgICAgICAgKQot
ICAgICAgICByZXR1cm4gcGFpcgotCi0gICAgZGVmIHRlc3RfZGVyaXZlX2tleV9pdl9ocChzZWxm
KToKLSAgICAgICAgIyBjbGllbnQKLSAgICAgICAgc2VjcmV0ID0gYmluYXNjaWkudW5oZXhsaWZ5
KAotICAgICAgICAgICAgIjhhMzUxNWExNGFlM2MzMWI5YzJkNmQ1YmM1ODUzOGNhNWNkMmJhYTEx
OTA4NzE0M2U2MDg4NzQyOGRjYjUyZjYiCi0gICAgICAgICkKLSAgICAgICAga2V5LCBpdiwgaHAg
PSBkZXJpdmVfa2V5X2l2X2hwKElOSVRJQUxfQ0lQSEVSX1NVSVRFLCBzZWNyZXQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoa2V5LCBiaW5hc2NpaS51bmhleGxpZnkoIjk4YjBkN2U1ZTdhNDAy
YzY3YzMzZjM1MGZhNjVlYTU0IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXYsIGJpbmFz
Y2lpLnVuaGV4bGlmeSgiMTllOTQzODc4MDVlYjBiNDZjMDNhNzg4IikpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoaHAsIGJpbmFzY2lpLnVuaGV4bGlmeSgiMGVkZDk4MmE2YWM1MjdmMmVkZGNi
YjczNDhkZWE1ZDciKSkKLQotICAgICAgICAjIHNlcnZlcgotICAgICAgICBzZWNyZXQgPSBiaW5h
c2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAiNDdiMmVhZWE2YzI2NmUzMmMwNjk3YTllMmE4
OThiZGY1YzRmYjNlNWFjMzRmMGU1NDliZjJjNTg1ODFhMzgxMSIKLSAgICAgICAgKQotICAgICAg
ICBrZXksIGl2LCBocCA9IGRlcml2ZV9rZXlfaXZfaHAoSU5JVElBTF9DSVBIRVJfU1VJVEUsIHNl
Y3JldCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrZXksIGJpbmFzY2lpLnVuaGV4bGlmeSgi
OWE4YmU5MDJhOWJkZDkxZDE2MDY0Y2ExMTgwNDVmYjQiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChpdiwgYmluYXNjaWkudW5oZXhsaWZ5KCIwYTgyMDg2ZDMyMjA1YmEyMjI0MWQ4ZGMiKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChocCwgYmluYXNjaWkudW5oZXhsaWZ5KCI5NGI5NDUy
ZDJiM2M3YzdmNmRhN2ZkZDg1OTM1MzdmZCIpKQotCi0gICAgQHNraXBJZigiY2hhY2hhMjAiIGlu
IFNLSVBfVEVTVFMsICJTa2lwcGluZyBjaGFjaGEyMCB0ZXN0cyIpCi0gICAgZGVmIHRlc3RfZGVj
cnlwdF9jaGFjaGEyMChzZWxmKToKLSAgICAgICAgcGFpciA9IENyeXB0b1BhaXIoKQotICAgICAg
ICBwYWlyLnJlY3Yuc2V0dXAoCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGU9Q2lwaGVyU3VpdGUu
Q0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LAotICAgICAgICAgICAgc2VjcmV0PWJpbmFzY2lpLnVu
aGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiYjQyNzcyZGYzM2M5NzE5YTMyODIwZDMwMmFhNjY0
ZDA4MGQ3ZjVlYTdhNzFhMzMwZjg3ODY0Y2IyODlhZThjMCIKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICB2ZXJzaW9uPVBST1RPQ09MX1ZFUlNJT04sCi0gICAgICAgICkKLQotICAgICAgICBw
bGFpbl9oZWFkZXIsIHBsYWluX3BheWxvYWQsIHBhY2tldF9udW1iZXIgPSBwYWlyLmRlY3J5cHRf
cGFja2V0KAotICAgICAgICAgICAgQ0hBQ0hBMjBfQ0xJRU5UX0VOQ1JZUFRFRF9QQUNLRVQsIDI1
LCAwCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwbGFpbl9oZWFkZXIsIENI
QUNIQTIwX0NMSUVOVF9QTEFJTl9IRUFERVIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGxh
aW5fcGF5bG9hZCwgQ0hBQ0hBMjBfQ0xJRU5UX1BMQUlOX1BBWUxPQUQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocGFja2V0X251bWJlciwgQ0hBQ0hBMjBfQ0xJRU5UX1BBQ0tFVF9OVU1CRVIp
Ci0KLSAgICBkZWYgdGVzdF9kZWNyeXB0X2xvbmdfY2xpZW50KHNlbGYpOgotICAgICAgICBwYWly
ID0gc2VsZi5jcmVhdGVfY3J5cHRvKGlzX2NsaWVudD1GYWxzZSkKLQotICAgICAgICBwbGFpbl9o
ZWFkZXIsIHBsYWluX3BheWxvYWQsIHBhY2tldF9udW1iZXIgPSBwYWlyLmRlY3J5cHRfcGFja2V0
KAotICAgICAgICAgICAgTE9OR19DTElFTlRfRU5DUllQVEVEX1BBQ0tFVCwgMTgsIDAKLSAgICAg
ICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBsYWluX2hlYWRlciwgTE9OR19DTElFTlRf
UExBSU5fSEVBREVSKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBsYWluX3BheWxvYWQsIExP
TkdfQ0xJRU5UX1BMQUlOX1BBWUxPQUQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2V0
X251bWJlciwgTE9OR19DTElFTlRfUEFDS0VUX05VTUJFUikKLQotICAgIGRlZiB0ZXN0X2RlY3J5
cHRfbG9uZ19zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHBhaXIgPSBzZWxmLmNyZWF0ZV9jcnlwdG8o
aXNfY2xpZW50PVRydWUpCi0KLSAgICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkLCBw
YWNrZXRfbnVtYmVyID0gcGFpci5kZWNyeXB0X3BhY2tldCgKLSAgICAgICAgICAgIExPTkdfU0VS
VkVSX0VOQ1JZUFRFRF9QQUNLRVQsIDE4LCAwCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwbGFpbl9oZWFkZXIsIExPTkdfU0VSVkVSX1BMQUlOX0hFQURFUikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwbGFpbl9wYXlsb2FkLCBMT05HX1NFUlZFUl9QTEFJTl9QQVlMT0FE
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhY2tldF9udW1iZXIsIExPTkdfU0VSVkVSX1BB
Q0tFVF9OVU1CRVIpCi0KLSAgICBkZWYgdGVzdF9kZWNyeXB0X25vX2tleShzZWxmKToKLSAgICAg
ICAgcGFpciA9IENyeXB0b1BhaXIoKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKENy
eXB0b0Vycm9yKToKLSAgICAgICAgICAgIHBhaXIuZGVjcnlwdF9wYWNrZXQoTE9OR19TRVJWRVJf
RU5DUllQVEVEX1BBQ0tFVCwgMTgsIDApCi0KLSAgICBkZWYgdGVzdF9kZWNyeXB0X3Nob3J0X3Nl
cnZlcihzZWxmKToKLSAgICAgICAgcGFpciA9IENyeXB0b1BhaXIoKQotICAgICAgICBwYWlyLnJl
Y3Yuc2V0dXAoCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGU9SU5JVElBTF9DSVBIRVJfU1VJVEUs
Ci0gICAgICAgICAgICBzZWNyZXQ9YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAg
ICIzMTAyODE5NzdjYjhjMWMxYzEyMTJkNzg0YjJkMjllNWE2NDg5ZTIzZGU4NDhkMzcwYTVhMmY5
NTM3ZjNhMTAwIgotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIHZlcnNpb249UFJPVE9DT0xf
VkVSU0lPTiwKLSAgICAgICAgKQotCi0gICAgICAgIHBsYWluX2hlYWRlciwgcGxhaW5fcGF5bG9h
ZCwgcGFja2V0X251bWJlciA9IHBhaXIuZGVjcnlwdF9wYWNrZXQoCi0gICAgICAgICAgICBTSE9S
VF9TRVJWRVJfRU5DUllQVEVEX1BBQ0tFVCwgOSwgMAotICAgICAgICApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocGxhaW5faGVhZGVyLCBTSE9SVF9TRVJWRVJfUExBSU5fSEVBREVSKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBsYWluX3BheWxvYWQsIFNIT1JUX1NFUlZFUl9QTEFJTl9Q
QVlMT0FEKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhY2tldF9udW1iZXIsIFNIT1JUX1NF
UlZFUl9QQUNLRVRfTlVNQkVSKQotCi0gICAgQHNraXBJZigiY2hhY2hhMjAiIGluIFNLSVBfVEVT
VFMsICJTa2lwcGluZyBjaGFjaGEyMCB0ZXN0cyIpCi0gICAgZGVmIHRlc3RfZW5jcnlwdF9jaGFj
aGEyMChzZWxmKToKLSAgICAgICAgcGFpciA9IENyeXB0b1BhaXIoKQotICAgICAgICBwYWlyLnNl
bmQuc2V0dXAoCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGU9Q2lwaGVyU3VpdGUuQ0hBQ0hBMjBf
UE9MWTEzMDVfU0hBMjU2LAotICAgICAgICAgICAgc2VjcmV0PWJpbmFzY2lpLnVuaGV4bGlmeSgK
LSAgICAgICAgICAgICAgICAiYjQyNzcyZGYzM2M5NzE5YTMyODIwZDMwMmFhNjY0ZDA4MGQ3ZjVl
YTdhNzFhMzMwZjg3ODY0Y2IyODlhZThjMCIKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICB2
ZXJzaW9uPVBST1RPQ09MX1ZFUlNJT04sCi0gICAgICAgICkKLQotICAgICAgICBwYWNrZXQgPSBw
YWlyLmVuY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgQ0hBQ0hBMjBfQ0xJRU5UX1BMQUlOX0hF
QURFUiwKLSAgICAgICAgICAgIENIQUNIQTIwX0NMSUVOVF9QTEFJTl9QQVlMT0FELAotICAgICAg
ICAgICAgQ0hBQ0hBMjBfQ0xJRU5UX1BBQ0tFVF9OVU1CRVIsCi0gICAgICAgICkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwYWNrZXQsIENIQUNIQTIwX0NMSUVOVF9FTkNSWVBURURfUEFDS0VU
KQotCi0gICAgZGVmIHRlc3RfZW5jcnlwdF9sb25nX2NsaWVudChzZWxmKToKLSAgICAgICAgcGFp
ciA9IHNlbGYuY3JlYXRlX2NyeXB0byhpc19jbGllbnQ9VHJ1ZSkKLQotICAgICAgICBwYWNrZXQg
PSBwYWlyLmVuY3J5cHRfcGFja2V0KAotICAgICAgICAgICAgTE9OR19DTElFTlRfUExBSU5fSEVB
REVSLAotICAgICAgICAgICAgTE9OR19DTElFTlRfUExBSU5fUEFZTE9BRCwKLSAgICAgICAgICAg
IExPTkdfQ0xJRU5UX1BBQ0tFVF9OVU1CRVIsCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYWNrZXQsIExPTkdfQ0xJRU5UX0VOQ1JZUFRFRF9QQUNLRVQpCi0KLSAgICBkZWYg
dGVzdF9lbmNyeXB0X2xvbmdfc2VydmVyKHNlbGYpOgotICAgICAgICBwYWlyID0gc2VsZi5jcmVh
dGVfY3J5cHRvKGlzX2NsaWVudD1GYWxzZSkKLQotICAgICAgICBwYWNrZXQgPSBwYWlyLmVuY3J5
cHRfcGFja2V0KAotICAgICAgICAgICAgTE9OR19TRVJWRVJfUExBSU5fSEVBREVSLAotICAgICAg
ICAgICAgTE9OR19TRVJWRVJfUExBSU5fUEFZTE9BRCwKLSAgICAgICAgICAgIExPTkdfU0VSVkVS
X1BBQ0tFVF9OVU1CRVIsCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWNr
ZXQsIExPTkdfU0VSVkVSX0VOQ1JZUFRFRF9QQUNLRVQpCi0KLSAgICBkZWYgdGVzdF9lbmNyeXB0
X3Nob3J0X3NlcnZlcihzZWxmKToKLSAgICAgICAgcGFpciA9IENyeXB0b1BhaXIoKQotICAgICAg
ICBwYWlyLnNlbmQuc2V0dXAoCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGU9SU5JVElBTF9DSVBI
RVJfU1VJVEUsCi0gICAgICAgICAgICBzZWNyZXQ9YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAg
ICAgICAgICAgICIzMTAyODE5NzdjYjhjMWMxYzEyMTJkNzg0YjJkMjllNWE2NDg5ZTIzZGU4NDhk
MzcwYTVhMmY5NTM3ZjNhMTAwIgotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIHZlcnNpb249
UFJPVE9DT0xfVkVSU0lPTiwKLSAgICAgICAgKQotCi0gICAgICAgIHBhY2tldCA9IHBhaXIuZW5j
cnlwdF9wYWNrZXQoCi0gICAgICAgICAgICBTSE9SVF9TRVJWRVJfUExBSU5fSEVBREVSLAotICAg
ICAgICAgICAgU0hPUlRfU0VSVkVSX1BMQUlOX1BBWUxPQUQsCi0gICAgICAgICAgICBTSE9SVF9T
RVJWRVJfUEFDS0VUX05VTUJFUiwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBhY2tldCwgU0hPUlRfU0VSVkVSX0VOQ1JZUFRFRF9QQUNLRVQpCi0KLSAgICBkZWYgdGVzdF9r
ZXlfdXBkYXRlKHNlbGYpOgotICAgICAgICBwYWlyMSA9IHNlbGYuY3JlYXRlX2NyeXB0byhpc19j
bGllbnQ9VHJ1ZSkKLSAgICAgICAgcGFpcjIgPSBzZWxmLmNyZWF0ZV9jcnlwdG8oaXNfY2xpZW50
PUZhbHNlKQotCi0gICAgICAgIGRlZiBjcmVhdGVfcGFja2V0KGtleV9waGFzZSwgcGFja2V0X251
bWJlcik6Ci0gICAgICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9MTAwKQotICAgICAgICAg
ICAgYnVmLnB1c2hfdWludDgoUEFDS0VUX0ZJWEVEX0JJVCB8IGtleV9waGFzZSA8PCAyIHwgMSkK
LSAgICAgICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJpbmFzY2lpLnVuaGV4bGlmeSgiODM5NGM4ZjAz
ZTUxNTcwOCIpKQotICAgICAgICAgICAgYnVmLnB1c2hfdWludDE2KHBhY2tldF9udW1iZXIpCi0g
ICAgICAgICAgICByZXR1cm4gYnVmLmRhdGEsIGIiXHgwMFx4MDFceDAyXHgwMyIKLQotICAgICAg
ICBkZWYgc2VuZChzZW5kZXIsIHJlY2VpdmVyLCBwYWNrZXRfbnVtYmVyPTApOgotICAgICAgICAg
ICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2FkID0gY3JlYXRlX3BhY2tldCgKLSAgICAgICAg
ICAgICAgICBrZXlfcGhhc2U9c2VuZGVyLmtleV9waGFzZSwgcGFja2V0X251bWJlcj1wYWNrZXRf
bnVtYmVyCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBlbmNyeXB0ZWQgPSBzZW5kZXIuZW5j
cnlwdF9wYWNrZXQoCi0gICAgICAgICAgICAgICAgcGxhaW5faGVhZGVyLCBwbGFpbl9wYXlsb2Fk
LCBwYWNrZXRfbnVtYmVyCi0gICAgICAgICAgICApCi0gICAgICAgICAgICByZWNvdl9oZWFkZXIs
IHJlY292X3BheWxvYWQsIHJlY292X3BhY2tldF9udW1iZXIgPSByZWNlaXZlci5kZWNyeXB0X3Bh
Y2tldCgKLSAgICAgICAgICAgICAgICBlbmNyeXB0ZWQsIGxlbihwbGFpbl9oZWFkZXIpIC0gMiwg
MAotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvdl9oZWFk
ZXIsIHBsYWluX2hlYWRlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3ZfcGF5
bG9hZCwgcGxhaW5fcGF5bG9hZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3Zf
cGFja2V0X251bWJlciwgcGFja2V0X251bWJlcikKLQotICAgICAgICAjIHJvdW5kdHJpcAotICAg
ICAgICBzZW5kKHBhaXIxLCBwYWlyMiwgMCkKLSAgICAgICAgc2VuZChwYWlyMiwgcGFpcjEsIDAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFpcjEua2V5X3BoYXNlLCAwKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBhaXIyLmtleV9waGFzZSwgMCkKLQotICAgICAgICAjIHBhaXIgMSBr
ZXkgdXBkYXRlCi0gICAgICAgIHBhaXIxLnVwZGF0ZV9rZXkoKQotCi0gICAgICAgICMgcm91bmR0
cmlwCi0gICAgICAgIHNlbmQocGFpcjEsIHBhaXIyLCAxKQotICAgICAgICBzZW5kKHBhaXIyLCBw
YWlyMSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWlyMS5rZXlfcGhhc2UsIDEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFpcjIua2V5X3BoYXNlLCAxKQotCi0gICAgICAgICMg
cGFpciAyIGtleSB1cGRhdGUKLSAgICAgICAgcGFpcjIudXBkYXRlX2tleSgpCi0KLSAgICAgICAg
IyByb3VuZHRyaXAKLSAgICAgICAgc2VuZChwYWlyMiwgcGFpcjEsIDIpCi0gICAgICAgIHNlbmQo
cGFpcjEsIHBhaXIyLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhaXIxLmtleV9waGFz
ZSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWlyMi5rZXlfcGhhc2UsIDApCi0KLSAg
ICAgICAgIyBwYWlyIDEga2V5IC0gdXBkYXRlLCBidXQgbm90IG5leHQgdG8gc2VuZAotICAgICAg
ICBwYWlyMS51cGRhdGVfa2V5KCkKLQotICAgICAgICAjIHJvdW5kdHJpcAotICAgICAgICBzZW5k
KHBhaXIyLCBwYWlyMSwgMykKLSAgICAgICAgc2VuZChwYWlyMSwgcGFpcjIsIDMpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocGFpcjEua2V5X3BoYXNlLCAxKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBhaXIyLmtleV9waGFzZSwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0
cy90ZXN0X2gwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfaDAucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgxY2NmNjVlMTE3NDk4Y2ZkZDViMDdiZWRlMWYwNzYzZDFjYTIw
ZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3Rlc3RzL3Rlc3RfaDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNDggKzAsMCBAQAot
ZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBhaW9xdWljLmgwLmNvbm5lY3Rp
b24gaW1wb3J0IEgwX0FMUE4sIEgwQ29ubmVjdGlvbgotZnJvbSBhaW9xdWljLmgzLmV2ZW50cyBp
bXBvcnQgRGF0YVJlY2VpdmVkLCBIZWFkZXJzUmVjZWl2ZWQKLQotZnJvbSAudGVzdF9jb25uZWN0
aW9uIGltcG9ydCBjbGllbnRfYW5kX3NlcnZlciwgdHJhbnNmZXIKLQotCi1kZWYgaDBfY2xpZW50
X2FuZF9zZXJ2ZXIoKToKLSAgICByZXR1cm4gY2xpZW50X2FuZF9zZXJ2ZXIoCi0gICAgICAgIGNs
aWVudF9vcHRpb25zPXsiYWxwbl9wcm90b2NvbHMiOiBIMF9BTFBOfSwKLSAgICAgICAgc2VydmVy
X29wdGlvbnM9eyJhbHBuX3Byb3RvY29scyI6IEgwX0FMUE59LAotICAgICkKLQotCi1kZWYgaDBf
dHJhbnNmZXIocXVpY19zZW5kZXIsIGgwX3JlY2VpdmVyKToKLSAgICBxdWljX3JlY2VpdmVyID0g
aDBfcmVjZWl2ZXIuX3F1aWMKLSAgICB0cmFuc2ZlcihxdWljX3NlbmRlciwgcXVpY19yZWNlaXZl
cikKLQotICAgICMgcHJvY2VzcyBRVUlDIGV2ZW50cwotICAgIGh0dHBfZXZlbnRzID0gW10KLSAg
ICBldmVudCA9IHF1aWNfcmVjZWl2ZXIubmV4dF9ldmVudCgpCi0gICAgd2hpbGUgZXZlbnQgaXMg
bm90IE5vbmU6Ci0gICAgICAgIGh0dHBfZXZlbnRzLmV4dGVuZChoMF9yZWNlaXZlci5oYW5kbGVf
ZXZlbnQoZXZlbnQpKQotICAgICAgICBldmVudCA9IHF1aWNfcmVjZWl2ZXIubmV4dF9ldmVudCgp
Ci0gICAgcmV0dXJuIGh0dHBfZXZlbnRzCi0KLQotY2xhc3MgSDBDb25uZWN0aW9uVGVzdChUZXN0
Q2FzZSk6Ci0gICAgZGVmIHRlc3RfY29ubmVjdChzZWxmKToKLSAgICAgICAgd2l0aCBoMF9jbGll
bnRfYW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2ZXIpOgotICAgICAgICAg
ICAgaDBfY2xpZW50ID0gSDBDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotICAgICAgICAgICAgaDBf
c2VydmVyID0gSDBDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgICAgICAjIHNlbmQg
cmVxdWVzdAotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRfYXZh
aWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBoMF9jbGllbnQuc2VuZF9oZWFkZXJzKAot
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgaGVh
ZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAg
ICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAg
ICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIi
OnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKQotICAgICAg
ICAgICAgaDBfY2xpZW50LnNlbmRfZGF0YShzdHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPWIiIiwg
ZW5kX3N0cmVhbT1UcnVlKQotCi0gICAgICAgICAgICAjIHJlY2VpdmUgcmVxdWVzdAotICAgICAg
ICAgICAgZXZlbnRzID0gaDBfdHJhbnNmZXIocXVpY19jbGllbnQsIGgwX3NlcnZlcikKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV2ZW50cyksIDIpCi0KLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1swXSwgSGVhZGVyc1JlY2VpdmVkKSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXZlbnRzWzBdLmhl
YWRlcnMsIFsoYiI6bWV0aG9kIiwgYiJHRVQiKSwgKGIiOnBhdGgiLCBiIi8iKV0KLSAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzBdLnN0cmVhbV9pZCwg
c3RyZWFtX2lkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMF0uc3RyZWFt
X2VuZGVkLCBGYWxzZSkKLQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2Uo
ZXZlbnRzWzFdLCBEYXRhUmVjZWl2ZWQpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
dmVudHNbMV0uZGF0YSwgYiIiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNb
MV0uc3RyZWFtX2lkLCBzdHJlYW1faWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2
ZW50c1sxXS5zdHJlYW1fZW5kZWQsIFRydWUpCi0KLSAgICAgICAgICAgICMgc2VuZCByZXNwb25z
ZQotICAgICAgICAgICAgaDBfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBz
dHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAg
ICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIi
Y29udGVudC10eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKSwKLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgKQotICAgICAgICAgICAgaDBfc2VydmVyLnNlbmRfZGF0YSgK
LSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGRh
dGE9YiI8aHRtbD48Ym9keT5oZWxsbzwvYm9keT48L2h0bWw+IiwKLSAgICAgICAgICAgICAgICBl
bmRfc3RyZWFtPVRydWUsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgcmVjZWl2ZSBy
ZXNwb25zZQotICAgICAgICAgICAgZXZlbnRzID0gaDBfdHJhbnNmZXIocXVpY19zZXJ2ZXIsIGgw
X2NsaWVudCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV2ZW50cyksIDIpCi0K
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1swXSwgSGVhZGVy
c1JlY2VpdmVkKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzBdLmhlYWRl
cnMsIFtdKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMF0uc3RyZWFtX2lk
LCBzdHJlYW1faWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1swXS5zdHJl
YW1fZW5kZWQsIEZhbHNlKQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5j
ZShldmVudHNbMV0sIERhdGFSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV2ZW50c1sxXS5kYXRhLCBiIjxodG1sPjxib2R5PmhlbGxvPC9ib2R5PjwvaHRtbD4iKQotICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMV0uc3RyZWFtX2lkLCBzdHJlYW1faWQp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1sxXS5zdHJlYW1fZW5kZWQsIFRy
dWUpCi0KLSAgICBkZWYgdGVzdF9oZWFkZXJzX29ubHkoc2VsZik6Ci0gICAgICAgIHdpdGggaDBf
Y2xpZW50X2FuZF9zZXJ2ZXIoKSBhcyAocXVpY19jbGllbnQsIHF1aWNfc2VydmVyKToKLSAgICAg
ICAgICAgIGgwX2NsaWVudCA9IEgwQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLSAgICAgICAgICAg
IGgwX3NlcnZlciA9IEgwQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICAgICAgIyBz
ZW5kIHJlcXVlc3QKLSAgICAgICAgICAgIHN0cmVhbV9pZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0
X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAgICAgICAgICAgaDBfY2xpZW50LnNlbmRfaGVhZGVy
cygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAg
IGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJIRUFEIiksCi0g
ICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAg
ICAgICAgIChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgICAg
ICAoYiI6cGF0aCIsIGIiLyIpLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
ZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHJlY2VpdmUg
cmVxdWVzdAotICAgICAgICAgICAgZXZlbnRzID0gaDBfdHJhbnNmZXIocXVpY19jbGllbnQsIGgw
X3NlcnZlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV2ZW50cyksIDIpCi0K
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1swXSwgSGVhZGVy
c1JlY2VpdmVkKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg
ICAgZXZlbnRzWzBdLmhlYWRlcnMsIFsoYiI6bWV0aG9kIiwgYiJIRUFEIiksIChiIjpwYXRoIiwg
YiIvIildCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50
c1swXS5zdHJlYW1faWQsIHN0cmVhbV9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
ZXZlbnRzWzBdLnN0cmVhbV9lbmRlZCwgRmFsc2UpCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1sxXSwgRGF0YVJlY2VpdmVkKSkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzFdLmRhdGEsIGIiIikKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXZlbnRzWzFdLnN0cmVhbV9pZCwgc3RyZWFtX2lkKQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChldmVudHNbMV0uc3RyZWFtX2VuZGVkLCBUcnVlKQotCi0gICAgICAgICAg
ICAjIHNlbmQgcmVzcG9uc2UKLSAgICAgICAgICAgIGgwX3NlcnZlci5zZW5kX2hlYWRlcnMoCi0g
ICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBoZWFk
ZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAgICAg
ICAgICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IiksCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPVRydWUs
Ci0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgcmVjZWl2ZSByZXNwb25zZQotICAgICAg
ICAgICAgZXZlbnRzID0gaDBfdHJhbnNmZXIocXVpY19zZXJ2ZXIsIGgwX2NsaWVudCkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV2ZW50cyksIDIpCi0KLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGV2ZW50c1swXSwgSGVhZGVyc1JlY2VpdmVkKSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzBdLmhlYWRlcnMsIFtdKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHNbMF0uc3RyZWFtX2lkLCBzdHJlYW1faWQpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1swXS5zdHJlYW1fZW5kZWQsIEZhbHNl
KQotCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShldmVudHNbMV0sIERh
dGFSZWNlaXZlZCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1sxXS5kYXRh
LCBiIiIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50c1sxXS5zdHJlYW1faWQs
IHN0cmVhbV9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzWzFdLnN0cmVh
bV9lbmRlZCwgVHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2gzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfaDMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFlNTUwMzk5YjRhMzAwNmZkYjA4NmUyMzA5NGZlOTg5OGM1NDMxNzUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3Rz
L3Rlc3RfaDMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkyICswLDAgQEAKLWltcG9ydCBiaW5h
c2NpaQotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBhaW9xdWljLmJ1ZmZl
ciBpbXBvcnQgZW5jb2RlX3VpbnRfdmFyCi1mcm9tIGFpb3F1aWMuaDMuY29ubmVjdGlvbiBpbXBv
cnQgKAotICAgIEgzX0FMUE4sCi0gICAgRXJyb3JDb2RlLAotICAgIEZyYW1lVHlwZSwKLSAgICBG
cmFtZVVuZXhwZWN0ZWQsCi0gICAgSDNDb25uZWN0aW9uLAotICAgIFN0cmVhbVR5cGUsCi0gICAg
ZW5jb2RlX2ZyYW1lLAotKQotZnJvbSBhaW9xdWljLmgzLmV2ZW50cyBpbXBvcnQgRGF0YVJlY2Vp
dmVkLCBIZWFkZXJzUmVjZWl2ZWQsIFB1c2hQcm9taXNlUmVjZWl2ZWQKLWZyb20gYWlvcXVpYy5o
My5leGNlcHRpb25zIGltcG9ydCBOb0F2YWlsYWJsZVB1c2hJREVycm9yCi1mcm9tIGFpb3F1aWMu
cXVpYy5jb25maWd1cmF0aW9uIGltcG9ydCBRdWljQ29uZmlndXJhdGlvbgotZnJvbSBhaW9xdWlj
LnF1aWMuZXZlbnRzIGltcG9ydCBTdHJlYW1EYXRhUmVjZWl2ZWQKLWZyb20gYWlvcXVpYy5xdWlj
LmxvZ2dlciBpbXBvcnQgUXVpY0xvZ2dlcgotCi1mcm9tIC50ZXN0X2Nvbm5lY3Rpb24gaW1wb3J0
IGNsaWVudF9hbmRfc2VydmVyLCB0cmFuc2ZlcgotCi0KLWRlZiBoM19jbGllbnRfYW5kX3NlcnZl
cigpOgotICAgIHJldHVybiBjbGllbnRfYW5kX3NlcnZlcigKLSAgICAgICAgY2xpZW50X29wdGlv
bnM9eyJhbHBuX3Byb3RvY29scyI6IEgzX0FMUE59LAotICAgICAgICBzZXJ2ZXJfb3B0aW9ucz17
ImFscG5fcHJvdG9jb2xzIjogSDNfQUxQTn0sCi0gICAgKQotCi0KLWRlZiBoM190cmFuc2Zlcihx
dWljX3NlbmRlciwgaDNfcmVjZWl2ZXIpOgotICAgIHF1aWNfcmVjZWl2ZXIgPSBoM19yZWNlaXZl
ci5fcXVpYwotICAgIGlmIGhhc2F0dHIocXVpY19zZW5kZXIsICJzdHJlYW1fcXVldWUiKToKLSAg
ICAgICAgcXVpY19yZWNlaXZlci5fZXZlbnRzLmV4dGVuZChxdWljX3NlbmRlci5zdHJlYW1fcXVl
dWUpCi0gICAgICAgIHF1aWNfc2VuZGVyLnN0cmVhbV9xdWV1ZS5jbGVhcigpCi0gICAgZWxzZToK
LSAgICAgICAgdHJhbnNmZXIocXVpY19zZW5kZXIsIHF1aWNfcmVjZWl2ZXIpCi0KLSAgICAjIHBy
b2Nlc3MgUVVJQyBldmVudHMKLSAgICBodHRwX2V2ZW50cyA9IFtdCi0gICAgZXZlbnQgPSBxdWlj
X3JlY2VpdmVyLm5leHRfZXZlbnQoKQotICAgIHdoaWxlIGV2ZW50IGlzIG5vdCBOb25lOgotICAg
ICAgICBodHRwX2V2ZW50cy5leHRlbmQoaDNfcmVjZWl2ZXIuaGFuZGxlX2V2ZW50KGV2ZW50KSkK
LSAgICAgICAgZXZlbnQgPSBxdWljX3JlY2VpdmVyLm5leHRfZXZlbnQoKQotICAgIHJldHVybiBo
dHRwX2V2ZW50cwotCi0KLWNsYXNzIEZha2VRdWljQ29ubmVjdGlvbjoKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgY29uZmlndXJhdGlvbik6Ci0gICAgICAgIHNlbGYuY2xvc2VkID0gTm9uZQotICAg
ICAgICBzZWxmLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uCi0gICAgICAgIHNlbGYuc3Ry
ZWFtX3F1ZXVlID0gW10KLSAgICAgICAgc2VsZi5fZXZlbnRzID0gW10KLSAgICAgICAgc2VsZi5f
bmV4dF9zdHJlYW1fYmlkaSA9IDAgaWYgY29uZmlndXJhdGlvbi5pc19jbGllbnQgZWxzZSAxCi0g
ICAgICAgIHNlbGYuX25leHRfc3RyZWFtX3VuaSA9IDIgaWYgY29uZmlndXJhdGlvbi5pc19jbGll
bnQgZWxzZSAzCi0gICAgICAgIHNlbGYuX3F1aWNfbG9nZ2VyID0gUXVpY0xvZ2dlcigpLnN0YXJ0
X3RyYWNlKAotICAgICAgICAgICAgaXNfY2xpZW50PWNvbmZpZ3VyYXRpb24uaXNfY2xpZW50LCBv
ZGNpZD1iIiIKLSAgICAgICAgKQotCi0gICAgZGVmIGNsb3NlKHNlbGYsIGVycm9yX2NvZGUsIHJl
YXNvbl9waHJhc2UpOgotICAgICAgICBzZWxmLmNsb3NlZCA9IChlcnJvcl9jb2RlLCByZWFzb25f
cGhyYXNlKQotCi0gICAgZGVmIGdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoc2VsZiwgaXNf
dW5pZGlyZWN0aW9uYWw9RmFsc2UpOgotICAgICAgICBpZiBpc191bmlkaXJlY3Rpb25hbDoKLSAg
ICAgICAgICAgIHN0cmVhbV9pZCA9IHNlbGYuX25leHRfc3RyZWFtX3VuaQotICAgICAgICAgICAg
c2VsZi5fbmV4dF9zdHJlYW1fdW5pICs9IDQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN0
cmVhbV9pZCA9IHNlbGYuX25leHRfc3RyZWFtX2JpZGkKLSAgICAgICAgICAgIHNlbGYuX25leHRf
c3RyZWFtX2JpZGkgKz0gNAotICAgICAgICByZXR1cm4gc3RyZWFtX2lkCi0KLSAgICBkZWYgbmV4
dF9ldmVudChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V2
ZW50cy5wb3AoMCkKLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgZGVmIHNlbmRfc3RyZWFtX2RhdGEoc2VsZiwgc3RyZWFtX2lkLCBkYXRh
LCBlbmRfc3RyZWFtPUZhbHNlKToKLSAgICAgICAgIyBjaG9wIHVwIGRhdGEgaW50byBpbmRpdmlk
dWFsIGJ5dGVzCi0gICAgICAgIGZvciBjIGluIGRhdGE6Ci0gICAgICAgICAgICBzZWxmLnN0cmVh
bV9xdWV1ZS5hcHBlbmQoCi0gICAgICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAg
ICAgICAgICAgICAgICAgICBkYXRhPWJ5dGVzKFtjXSksIGVuZF9zdHJlYW09RmFsc2UsIHN0cmVh
bV9pZD1zdHJlYW1faWQKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgICAg
IGlmIGVuZF9zdHJlYW06Ci0gICAgICAgICAgICBzZWxmLnN0cmVhbV9xdWV1ZS5hcHBlbmQoCi0g
ICAgICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIiLCBlbmRfc3RyZWFtPWVu
ZF9zdHJlYW0sIHN0cmVhbV9pZD1zdHJlYW1faWQpCi0gICAgICAgICAgICApCi0KLQotY2xhc3Mg
SDNDb25uZWN0aW9uVGVzdChUZXN0Q2FzZSk6Ci0gICAgbWF4RGlmZiA9IE5vbmUKLQotICAgIGRl
ZiBfbWFrZV9yZXF1ZXN0KHNlbGYsIGgzX2NsaWVudCwgaDNfc2VydmVyKToKLSAgICAgICAgcXVp
Y19jbGllbnQgPSBoM19jbGllbnQuX3F1aWMKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBoM19zZXJ2
ZXIuX3F1aWMKLQotICAgICAgICAjIHNlbmQgcmVxdWVzdAotICAgICAgICBzdHJlYW1faWQgPSBx
dWljX2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgaDNfY2xp
ZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAg
ICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwK
LSAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAg
IChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgIChiIjpwYXRo
IiwgYiIvIiksCi0gICAgICAgICAgICAgICAgKGIieC1mb28iLCBiImNsaWVudCIpLAotICAgICAg
ICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQuc2VuZF9kYXRhKHN0cmVhbV9p
ZD1zdHJlYW1faWQsIGRhdGE9YiIiLCBlbmRfc3RyZWFtPVRydWUpCi0KLSAgICAgICAgIyByZWNl
aXZlIHJlcXVlc3QKLSAgICAgICAgZXZlbnRzID0gaDNfdHJhbnNmZXIocXVpY19jbGllbnQsIGgz
X3NlcnZlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV2ZW50cywK
LSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAg
ICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1ldGhv
ZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRw
cyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiLyIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgKGIieC1mb28iLCBiImNsaWVudCIpLAotICAgICAgICAgICAgICAgICAg
ICBdLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAg
ICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAg
ICAgICAgICAgICBEYXRhUmVjZWl2ZWQoZGF0YT1iIiIsIHN0cmVhbV9pZD1zdHJlYW1faWQsIHN0
cmVhbV9lbmRlZD1UcnVlKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICAj
IHNlbmQgcmVzcG9uc2UKLSAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAg
ICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAg
ICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAoYiJjb250ZW50
LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgICAgIChi
IngtZm9vIiwgYiJzZXJ2ZXIiKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAg
aDNfc2VydmVyLnNlbmRfZGF0YSgKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0g
ICAgICAgICAgICBkYXRhPWIiPGh0bWw+PGJvZHk+aGVsbG88L2JvZHk+PC9odG1sPiIsCi0gICAg
ICAgICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAgICAgICkKLQotICAgICAgICAjIHJlY2VpdmUg
cmVzcG9uc2UKLSAgICAgICAgZXZlbnRzID0gaDNfdHJhbnNmZXIocXVpY19zZXJ2ZXIsIGgzX2Ns
aWVudCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV2ZW50cywKLSAg
ICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBIZWFkZXJzUmVjZWl2ZWQoCi0gICAgICAgICAg
ICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnN0YXR1cyIs
IGIiMjAwIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBiInRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIieC1m
b28iLCBiInNlcnZlciIpLAotICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5k
ZWQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2
ZWQoCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9YiI8aHRtbD48Ym9keT5oZWxsbzwvYm9keT48
L2h0bWw+IiwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9jb250cm9sX2Zy
YW1lX2hlYWRlcnMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBXZSBzaG91bGQgbm90IHJl
Y2VpdmUgSEVBREVSUyBvbiB0aGUgY29udHJvbCBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAg
ICBxdWljX3NlcnZlciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0gICAg
ICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICBoM19z
ZXJ2ZXIuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAg
ICAgICAgICAgICAgIHN0cmVhbV9pZD0yLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2RlX3Vp
bnRfdmFyKFN0cmVhbVR5cGUuQ09OVFJPTCkKLSAgICAgICAgICAgICAgICArIGVuY29kZV9mcmFt
ZShGcmFtZVR5cGUuSEVBREVSUywgYiIiKSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZh
bHNlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBxdWljX3NlcnZlci5jbG9zZWQsCi0gICAgICAgICAgICAoRXJyb3JDb2Rl
LkhUVFBfRlJBTUVfVU5FWFBFQ1RFRCwgIkludmFsaWQgZnJhbWUgdHlwZSBvbiBjb250cm9sIHN0
cmVhbSIpLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9oYW5kbGVfY29udHJvbF9mcmFtZV9t
YXhfcHVzaF9pZF9mcm9tX3NlcnZlcihzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIEEgY2xp
ZW50IHNob3VsZCBub3QgcmVjZWl2ZSBNQVhfUFVTSF9JRCBvbiB0aGUgY29udHJvbCBzdHJlYW0u
Ci0gICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigK
LSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRy
dWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xp
ZW50KQotCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJl
YW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPTMsCi0gICAgICAgICAg
ICAgICAgZGF0YT1lbmNvZGVfdWludF92YXIoU3RyZWFtVHlwZS5DT05UUk9MKQotICAgICAgICAg
ICAgICAgICsgZW5jb2RlX2ZyYW1lKEZyYW1lVHlwZS5NQVhfUFVTSF9JRCwgYiIiKSwKLSAgICAg
ICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5jbG9zZWQs
Ci0gICAgICAgICAgICAoRXJyb3JDb2RlLkhUVFBfRlJBTUVfVU5FWFBFQ1RFRCwgIlNlcnZlcnMg
bXVzdCBub3Qgc2VuZCBNQVhfUFVTSF9JRCIpLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9o
YW5kbGVfY29udHJvbF9zdHJlYW1fZHVwbGljYXRlKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAg
ICAgV2UgbXVzdCBvbmx5IHJlY2VpdmUgYSBzaW5nbGUgY29udHJvbCBzdHJlYW0uCi0gICAgICAg
ICIiIgotICAgICAgICBxdWljX3NlcnZlciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAg
ICAgICApCi0gICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQot
ICAgICAgICAjIHJlY2VpdmUgYSBmaXJzdCBjb250cm9sIHN0cmVhbQotICAgICAgICBoM19zZXJ2
ZXIuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD0yLCBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLkNP
TlRST0wpLCBlbmRfc3RyZWFtPUZhbHNlCi0gICAgICAgICAgICApCi0gICAgICAgICkKLQotICAg
ICAgICAjIHJlY2VpdmUgYSBzZWNvbmQgY29udHJvbCBzdHJlYW0KLSAgICAgICAgaDNfc2VydmVy
LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAg
ICAgICAgICBzdHJlYW1faWQ9NiwgZGF0YT1lbmNvZGVfdWludF92YXIoU3RyZWFtVHlwZS5DT05U
Uk9MKSwgZW5kX3N0cmVhbT1GYWxzZQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX3NlcnZlci5jbG9zZWQsCi0gICAg
ICAgICAgICAoCi0gICAgICAgICAgICAgICAgRXJyb3JDb2RlLkhUVFBfU1RSRUFNX0NSRUFUSU9O
X0VSUk9SLAotICAgICAgICAgICAgICAgICJPbmx5IG9uZSBjb250cm9sIHN0cmVhbSBpcyBhbGxv
d2VkIiwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9w
dXNoX2ZyYW1lX3dyb25nX2ZyYW1lX3R5cGUoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBX
ZSBzaG91bGQgbm90IHJlY2VpdmVkIFNFVFRJTkdTIG9uIGEgcHVzaCBzdHJlYW0uCi0gICAgICAg
ICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUpCi0gICAg
ICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotCi0g
ICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVj
ZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPTE1LAotICAgICAgICAgICAgICAgIGRh
dGE9ZW5jb2RlX3VpbnRfdmFyKFN0cmVhbVR5cGUuUFVTSCkKLSAgICAgICAgICAgICAgICArIGVu
Y29kZV91aW50X3ZhcigwKSAgIyBwdXNoIElECi0gICAgICAgICAgICAgICAgKyBlbmNvZGVfZnJh
bWUoRnJhbWVUeXBlLlNFVFRJTkdTLCBiIiIpLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09
RmFsc2UsCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIHF1aWNfY2xpZW50LmNsb3NlZCwKLSAgICAgICAgICAgIChFcnJvckNv
ZGUuSFRUUF9GUkFNRV9VTkVYUEVDVEVELCAiSW52YWxpZCBmcmFtZSB0eXBlIG9uIHB1c2ggc3Ry
ZWFtIiksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9xcGFja19kZWNvZGVyX2R1
cGxpY2F0ZShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIG11c3Qgb25seSByZWNlaXZl
IGEgc2luZ2xlIFFQQUNLIGRlY29kZXIgc3RyZWFtLgotICAgICAgICAiIiIKLSAgICAgICAgcXVp
Y19jbGllbnQgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9u
PVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgz
X2NsaWVudCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICAjIHJlY2VpdmUg
YSBmaXJzdCBkZWNvZGVyIHN0cmVhbQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAot
ICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD0xMSwKLSAgICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLlFQ
QUNLX0RFQ09ERVIpLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAg
ICAgICApCi0gICAgICAgICkKLQotICAgICAgICAjIHJlY2VpdmUgYSBzZWNvbmQgZGVjb2RlciBz
dHJlYW0KLSAgICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVh
bURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MTUsCi0gICAgICAgICAg
ICAgICAgZGF0YT1lbmNvZGVfdWludF92YXIoU3RyZWFtVHlwZS5RUEFDS19ERUNPREVSKSwKLSAg
ICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5jbG9z
ZWQsCi0gICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgRXJyb3JDb2RlLkhUVFBfU1RSRUFN
X0NSRUFUSU9OX0VSUk9SLAotICAgICAgICAgICAgICAgICJPbmx5IG9uZSBRUEFDSyBkZWNvZGVy
IHN0cmVhbSBpcyBhbGxvd2VkIiwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgIGRl
ZiB0ZXN0X2hhbmRsZV9xcGFja19kZWNvZGVyX3N0cmVhbV9lcnJvcihzZWxmKToKLSAgICAgICAg
IiIiCi0gICAgICAgIFJlY2VpdmluZyBnYXJiYWdlIG9uIHRoZSBRUEFDSyBkZWNvZGVyIHN0cmVh
bSB0cmlnZ2VycyBhbiBleGNlcHRpb24uCi0gICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVu
dCA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0Nv
bmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50
ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVf
ZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAg
c3RyZWFtX2lkPTExLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2RlX3VpbnRfdmFyKFN0cmVh
bVR5cGUuUVBBQ0tfREVDT0RFUikgKyBiIlx4MDAiLAotICAgICAgICAgICAgICAgIGVuZF9zdHJl
YW09RmFsc2UsCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIHF1aWNfY2xpZW50LmNsb3NlZCwgKEVycm9yQ29kZS5IVFRQX1FQ
QUNLX0RFQ09ERVJfU1RSRUFNX0VSUk9SLCAiIikKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
aGFuZGxlX3FwYWNrX2VuY29kZXJfZHVwbGljYXRlKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAg
ICAgV2UgbXVzdCBvbmx5IHJlY2VpdmUgYSBzaW5nbGUgUVBBQ0sgZW5jb2RlciBzdHJlYW0uCi0g
ICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUp
Ci0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50
KQotCi0gICAgICAgICMgcmVjZWl2ZSBhIGZpcnN0IGVuY29kZXIgc3RyZWFtCi0gICAgICAgIGgz
X2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0g
ICAgICAgICAgICAgICAgc3RyZWFtX2lkPTExLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2Rl
X3VpbnRfdmFyKFN0cmVhbVR5cGUuUVBBQ0tfRU5DT0RFUiksCi0gICAgICAgICAgICAgICAgZW5k
X3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotCi0gICAgICAgICMgcmVj
ZWl2ZSBhIHNlY29uZCBlbmNvZGVyIHN0cmVhbQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2
ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIHN0
cmVhbV9pZD0xNSwKLSAgICAgICAgICAgICAgICBkYXRhPWVuY29kZV91aW50X3ZhcihTdHJlYW1U
eXBlLlFQQUNLX0VOQ09ERVIpLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0g
ICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgIHF1aWNfY2xpZW50LmNsb3NlZCwKLSAgICAgICAgICAgICgKLSAgICAgICAgICAgICAg
ICBFcnJvckNvZGUuSFRUUF9TVFJFQU1fQ1JFQVRJT05fRVJST1IsCi0gICAgICAgICAgICAgICAg
Ik9ubHkgb25lIFFQQUNLIGVuY29kZXIgc3RyZWFtIGlzIGFsbG93ZWQiLAotICAgICAgICAgICAg
KSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfaGFuZGxlX3FwYWNrX2VuY29kZXJfc3RyZWFt
X2Vycm9yKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmVjZWl2aW5nIGdhcmJhZ2Ugb24g
dGhlIFFQQUNLIGVuY29kZXIgc3RyZWFtIHRyaWdnZXJzIGFuIGV4Y2VwdGlvbi4KLSAgICAgICAg
IiIiCi0gICAgICAgIHF1aWNfY2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAotICAgICAgICAg
ICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAg
ICAgKQotICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0KLSAg
ICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNl
aXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9NywKLSAgICAgICAgICAgICAgICBkYXRh
PWVuY29kZV91aW50X3ZhcihTdHJlYW1UeXBlLlFQQUNLX0VOQ09ERVIpICsgYiJceDAwIiwKLSAg
ICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX2NsaWVudC5jbG9z
ZWQsIChFcnJvckNvZGUuSFRUUF9RUEFDS19FTkNPREVSX1NUUkVBTV9FUlJPUiwgIiIpCi0gICAg
ICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9yZXF1ZXN0X2ZyYW1lX2JhZF9oZWFkZXJzKHNl
bGYpOgotICAgICAgICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5vdCByZWNlaXZlIEhFQURFUlMg
d2hpY2ggY2Fubm90IGJlIGRlY29kZWQuCi0gICAgICAgICIiIgotICAgICAgICBxdWljX3NlcnZl
ciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0Nv
bmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0gICAgICAgIGgzX3NlcnZl
ciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICBoM19zZXJ2ZXIuaGFuZGxl
X2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAg
IHN0cmVhbV9pZD0wLCBkYXRhPWVuY29kZV9mcmFtZShGcmFtZVR5cGUuSEVBREVSUywgYiIiKSwg
ZW5kX3N0cmVhbT1GYWxzZQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBxdWljX3NlcnZlci5jbG9zZWQsIChFcnJvckNvZGUu
SFRUUF9RUEFDS19ERUNPTVBSRVNTSU9OX0ZBSUxFRCwgIiIpCi0gICAgICAgICkKLQotICAgIGRl
ZiB0ZXN0X2hhbmRsZV9yZXF1ZXN0X2ZyYW1lX2RhdGFfYmVmb3JlX2hlYWRlcnMoc2VsZik6Ci0g
ICAgICAgICIiIgotICAgICAgICBXZSBzaG91bGQgbm90IHJlY2VpdmUgREFUQSBiZWZvcmUgcmVj
ZWl2aW5nIGhlYWRlcnMuCi0gICAgICAgICIiIgotICAgICAgICBxdWljX3NlcnZlciA9IEZha2VR
dWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRp
b24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0gICAgICAgIGgzX3NlcnZlciA9IEgzQ29u
bmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICBoM19zZXJ2ZXIuaGFuZGxlX2V2ZW50KAot
ICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD0wLCBkYXRhPWVuY29kZV9mcmFtZShGcmFtZVR5cGUuREFUQSwgYiIiKSwgZW5kX3N0cmVhbT1G
YWxzZQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICBxdWljX3NlcnZlci5jbG9zZWQsCi0gICAgICAgICAgICAoCi0gICAgICAg
ICAgICAgICAgRXJyb3JDb2RlLkhUVFBfRlJBTUVfVU5FWFBFQ1RFRCwKLSAgICAgICAgICAgICAg
ICAiREFUQSBmcmFtZSBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHN0YXRlIiwKLSAgICAgICAgICAg
ICksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9yZXF1ZXN0X2ZyYW1lX2hlYWRl
cnNfYWZ0ZXJfdHJhaWxlcnMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBXZSBzaG91bGQg
bm90IHJlY2VpdmUgSEVBREVSUyBhZnRlciByZWNlaXZpbmcgdHJhaWxlcnMuCi0gICAgICAgICIi
IgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAg
IGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRydWUpCi0gICAgICAg
ICkKLSAgICAgICAgcXVpY19zZXJ2ZXIgPSBGYWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAg
ICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9uKGlzX2NsaWVudD1GYWxzZSkKLSAgICAg
ICAgKQotCi0gICAgICAgIGgzX2NsaWVudCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLSAg
ICAgICAgaDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgIHN0
cmVhbV9pZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJsZV9zdHJlYW1faWQoKQotICAg
ICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVh
bV9pZCwKLSAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgIChiIjptZXRob2Qi
LCBiIkdFVCIpLAotICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAg
ICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAg
ICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAg
aDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQs
IGhlYWRlcnM9WyhiIngtc29tZS10cmFpbGVyIiwgYiJmb28iKV0sIGVuZF9zdHJlYW09VHJ1ZQot
ICAgICAgICApCi0gICAgICAgIGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19zZXJ2ZXIpCi0K
LSAgICAgICAgaDNfc2VydmVyLmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFS
ZWNlaXZlZCgKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwgZGF0YT1lbmNvZGVfZnJhbWUo
RnJhbWVUeXBlLkhFQURFUlMsIGIiIiksIGVuZF9zdHJlYW09RmFsc2UKLSAgICAgICAgICAgICkK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcXVpY19z
ZXJ2ZXIuY2xvc2VkLAotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAgIEVycm9yQ29kZS5I
VFRQX0ZSQU1FX1VORVhQRUNURUQsCi0gICAgICAgICAgICAgICAgIkhFQURFUlMgZnJhbWUgaXMg
bm90IGFsbG93ZWQgaW4gdGhpcyBzdGF0ZSIsCi0gICAgICAgICAgICApLAotICAgICAgICApCi0K
LSAgICBkZWYgdGVzdF9oYW5kbGVfcmVxdWVzdF9mcmFtZV9wdXNoX3Byb21pc2VfZnJvbV9jbGll
bnQoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBBIHNlcnZlciBzaG91bGQgbm90IHJlY2Vp
dmUgUFVTSF9QUk9NSVNFIG9uIGEgcmVxdWVzdCBzdHJlYW0uCi0gICAgICAgICIiIgotICAgICAg
ICBxdWljX3NlcnZlciA9IEZha2VRdWljQ29ubmVjdGlvbigKLSAgICAgICAgICAgIGNvbmZpZ3Vy
YXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PUZhbHNlKQotICAgICAgICApCi0gICAg
ICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICBoM19z
ZXJ2ZXIuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAg
ICAgICAgICAgICAgIHN0cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgIGRhdGE9ZW5jb2RlX2Zy
YW1lKEZyYW1lVHlwZS5QVVNIX1BST01JU0UsIGIiIiksCi0gICAgICAgICAgICAgICAgZW5kX3N0
cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgcXVpY19zZXJ2ZXIuY2xvc2VkLAotICAgICAgICAgICAgKEVy
cm9yQ29kZS5IVFRQX0ZSQU1FX1VORVhQRUNURUQsICJDbGllbnRzIG11c3Qgbm90IHNlbmQgUFVT
SF9QUk9NSVNFIiksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRsZV9yZXF1ZXN0X2Zy
YW1lX3dyb25nX2ZyYW1lX3R5cGUoc2VsZik6Ci0gICAgICAgIHF1aWNfc2VydmVyID0gRmFrZVF1
aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlv
bihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgICkKLSAgICAgICAgaDNfc2VydmVyID0gSDNDb25u
ZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgIGgzX3NlcnZlci5oYW5kbGVfZXZlbnQoCi0g
ICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lk
PTAsCi0gICAgICAgICAgICAgICAgZGF0YT1lbmNvZGVfZnJhbWUoRnJhbWVUeXBlLlNFVFRJTkdT
LCBiIiIpLAotICAgICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICAp
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHF1aWNf
c2VydmVyLmNsb3NlZCwKLSAgICAgICAgICAgIChFcnJvckNvZGUuSFRUUF9GUkFNRV9VTkVYUEVD
VEVELCAiSW52YWxpZCBmcmFtZSB0eXBlIG9uIHJlcXVlc3Qgc3RyZWFtIiksCi0gICAgICAgICkK
LQotICAgIGRlZiB0ZXN0X3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgIHdpdGggaDNfY2xpZW50X2Fu
ZF9zZXJ2ZXIoKSBhcyAocXVpY19jbGllbnQsIHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgz
X2NsaWVudCA9IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLSAgICAgICAgICAgIGgzX3NlcnZl
ciA9IEgzQ29ubmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICAgICAgIyBtYWtlIGZpcnN0
IHJlcXVlc3QKLSAgICAgICAgICAgIHNlbGYuX21ha2VfcmVxdWVzdChoM19jbGllbnQsIGgzX3Nl
cnZlcikKLQotICAgICAgICAgICAgIyBtYWtlIHNlY29uZCByZXF1ZXN0Ci0gICAgICAgICAgICBz
ZWxmLl9tYWtlX3JlcXVlc3QoaDNfY2xpZW50LCBoM19zZXJ2ZXIpCi0KLSAgICAgICAgICAgICMg
bWFrZSB0aGlyZCByZXF1ZXN0IC0+IGR5bmFtaWMgdGFibGUKLSAgICAgICAgICAgIHNlbGYuX21h
a2VfcmVxdWVzdChoM19jbGllbnQsIGgzX3NlcnZlcikKLQotICAgIGRlZiB0ZXN0X3JlcXVlc3Rf
aGVhZGVyc19vbmx5KHNlbGYpOgotICAgICAgICB3aXRoIGgzX2NsaWVudF9hbmRfc2VydmVyKCkg
YXMgKHF1aWNfY2xpZW50LCBxdWljX3NlcnZlcik6Ci0gICAgICAgICAgICBoM19jbGllbnQgPSBI
M0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0gICAgICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5l
Y3Rpb24ocXVpY19zZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgc2VuZCByZXF1ZXN0Ci0gICAgICAg
ICAgICBzdHJlYW1faWQgPSBxdWljX2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lk
KCkKLSAgICAgICAgICAgIGgzX2NsaWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAgICAg
c3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAg
ICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiSEVBRCIpLAotICAgICAgICAgICAgICAgICAgICAo
YiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5
IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwK
LSAgICAgICAgICAgICAgICAgICAgKGIieC1mb28iLCBiImNsaWVudCIpLAotICAgICAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQot
Ci0gICAgICAgICAgICAjIHJlY2VpdmUgcmVxdWVzdAotICAgICAgICAgICAgZXZlbnRzID0gaDNf
dHJhbnNmZXIocXVpY19jbGllbnQsIGgzX3NlcnZlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICAgICAgZXZlbnRzLAotICAgICAgICAgICAgICAgIFsKLSAgICAg
ICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiSEVB
RCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYiJ4LWZvbyIsIGIiY2xpZW50IiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVh
bV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAotICAgICAg
ICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAg
ICAgICAgICAgIyBzZW5kIHJlc3BvbnNlCi0gICAgICAgICAgICBoM19zZXJ2ZXIuc2VuZF9oZWFk
ZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAg
ICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAot
ICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIpLAotICAgICAgICAgICAgICAgICAgICAoYiJ4LWZvbyIsIGIic2VydmVyIiksCi0g
ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAg
ICAgICAgICApCi0KLSAgICAgICAgICAgICMgcmVjZWl2ZSByZXNwb25zZQotICAgICAgICAgICAg
ZXZlbnRzID0gaDNfdHJhbnNmZXIocXVpY19zZXJ2ZXIsIGgzX2NsaWVudCkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZXZlbnRzLAotICAgICAgICAgICAg
ICAgIFsKLSAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAg
ICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnN0
YXR1cyIsIGIiMjAwIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiY29udGVudC10
eXBlIiwgYiJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYiJ4LWZvbyIsIGIic2VydmVyIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1UcnVlLAotICAgICAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3JlcXVl
c3RfZnJhZ21lbnRlZF9mcmFtZShzZWxmKToKLSAgICAgICAgcXVpY19jbGllbnQgPSBGYWtlUXVp
Y0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1cmF0aW9u
KGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIHF1aWNfc2VydmVyID0gRmFrZVF1
aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29uZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlv
bihpc19jbGllbnQ9RmFsc2UpCi0gICAgICAgICkKLQotICAgICAgICBoM19jbGllbnQgPSBIM0Nv
bm5lY3Rpb24ocXVpY19jbGllbnQpCi0gICAgICAgIGgzX3NlcnZlciA9IEgzQ29ubmVjdGlvbihx
dWljX3NlcnZlcikKLQotICAgICAgICAjIHNlbmQgcmVxdWVzdAotICAgICAgICBzdHJlYW1faWQg
PSBxdWljX2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgaDNf
Y2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0g
ICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQi
KSwKLSAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAg
ICAgIChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgIChiIjpw
YXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAgKGIieC1mb28iLCBiImNsaWVudCIpLAotICAg
ICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQuc2VuZF9kYXRhKHN0cmVh
bV9pZD1zdHJlYW1faWQsIGRhdGE9YiJoZWxsbyIsIGVuZF9zdHJlYW09VHJ1ZSkKLQotICAgICAg
ICAjIHJlY2VpdmUgcmVxdWVzdAotICAgICAgICBldmVudHMgPSBoM190cmFuc2ZlcihxdWljX2Ns
aWVudCwgaDNfc2VydmVyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ZXZlbnRzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAo
YiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUi
LCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJs
b2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoYiJ4LWZvbyIsIGIiY2xpZW50IiksCi0gICAgICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0g
ICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIiaCIsIHN0cmVhbV9pZD0wLCBz
dHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIi
ZSIsIHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERh
dGFSZWNlaXZlZChkYXRhPWIibCIsIHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2UpLAot
ICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIibCIsIHN0cmVhbV9pZD0wLCBzdHJl
YW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIibyIs
IHN0cmVhbV9pZD0wLCBzdHJlYW1fZW5kZWQ9RmFsc2UpLAotICAgICAgICAgICAgICAgIERhdGFS
ZWNlaXZlZChkYXRhPWIiIiwgc3RyZWFtX2lkPTAsIHN0cmVhbV9lbmRlZD1UcnVlKSwKLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICAjIHNlbmQgcHVzaCBwcm9taXNlCi0gICAg
ICAgIHB1c2hfc3RyZWFtX2lkID0gaDNfc2VydmVyLnNlbmRfcHVzaF9wcm9taXNlKAotICAgICAg
ICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAg
ICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgIChiIjpzY2hl
bWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxo
b3N0IiksCi0gICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi9hcHAudHh0IiksCi0gICAgICAg
ICAgICBdLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVzaF9zdHJlYW1f
aWQsIDE1KQotCi0gICAgICAgICMgc2VuZCByZXNwb25zZQotICAgICAgICBoM19zZXJ2ZXIuc2Vu
ZF9oZWFkZXJzKAotICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAg
IGhlYWRlcnM9WwotICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAg
ICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Iiks
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAg
KQotICAgICAgICBoM19zZXJ2ZXIuc2VuZF9kYXRhKHN0cmVhbV9pZD1zdHJlYW1faWQsIGRhdGE9
YiJodG1sIiwgZW5kX3N0cmVhbT1UcnVlKQotCi0gICAgICAgICMgwqBmdWxmaWxsIHB1c2ggcHJv
bWlzZQotICAgICAgICBoM19zZXJ2ZXIuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgc3RyZWFt
X2lkPXB1c2hfc3RyZWFtX2lkLAotICAgICAgICAgICAgaGVhZGVycz1bKGIiOnN0YXR1cyIsIGIi
MjAwIiksIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9wbGFpbiIpXSwKLSAgICAgICAgICAgIGVu
ZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICkKLSAgICAgICAgaDNfc2VydmVyLnNlbmRfZGF0YShz
dHJlYW1faWQ9cHVzaF9zdHJlYW1faWQsIGRhdGE9YiJ0ZXh0IiwgZW5kX3N0cmVhbT1UcnVlKQot
Ci0gICAgICAgICMgcmVjZWl2ZSBwdXNoIHByb21pc2UgLyByZXBvbnNlCi0gICAgICAgIGV2ZW50
cyA9IGgzX3RyYW5zZmVyKHF1aWNfc2VydmVyLCBoM19jbGllbnQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICBbCi0gICAgICAgICAg
ICAgICAgUHVzaFByb21pc2VSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1b
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIChiIjpwYXRoIiwgYiIvYXBwLnR4dCIpLAotICAgICAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTAsCi0gICAgICAgICAgICAgICAgICAgIHN0cmVh
bV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBIZWFk
ZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAg
ICAgICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAoYiJjb250ZW50LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAg
ICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKGRhdGE9YiJoIiwgc3RyZWFtX2lkPTAsIHN0cmVh
bV9lbmRlZD1GYWxzZSksCi0gICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKGRhdGE9YiJ0Iiwg
c3RyZWFtX2lkPTAsIHN0cmVhbV9lbmRlZD1GYWxzZSksCi0gICAgICAgICAgICAgICAgRGF0YVJl
Y2VpdmVkKGRhdGE9YiJtIiwgc3RyZWFtX2lkPTAsIHN0cmVhbV9lbmRlZD1GYWxzZSksCi0gICAg
ICAgICAgICAgICAgRGF0YVJlY2VpdmVkKGRhdGE9YiJsIiwgc3RyZWFtX2lkPTAsIHN0cmVhbV9l
bmRlZD1GYWxzZSksCi0gICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKGRhdGE9YiIiLCBzdHJl
YW1faWQ9MCwgc3RyZWFtX2VuZGVkPVRydWUpLAotICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNl
aXZlZCgKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1bKGIiOnN0YXR1cyIsIGIiMjAwIiks
IChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9wbGFpbiIpXSwKLSAgICAgICAgICAgICAgICAgICAg
c3RyZWFtX2lkPTE1LAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgIHB1c2hfaWQ9MCwKLSAgICAgICAgICAgICAgICApLAotICAgICAg
ICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIidCIsIHN0cmVhbV9pZD0xNSwgc3RyZWFtX2Vu
ZGVkPUZhbHNlLCBwdXNoX2lkPTApLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRh
PWIiZSIsIHN0cmVhbV9pZD0xNSwgc3RyZWFtX2VuZGVkPUZhbHNlLCBwdXNoX2lkPTApLAotICAg
ICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIieCIsIHN0cmVhbV9pZD0xNSwgc3RyZWFt
X2VuZGVkPUZhbHNlLCBwdXNoX2lkPTApLAotICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChk
YXRhPWIidCIsIHN0cmVhbV9pZD0xNSwgc3RyZWFtX2VuZGVkPUZhbHNlLCBwdXNoX2lkPTApLAot
ICAgICAgICAgICAgICAgIERhdGFSZWNlaXZlZChkYXRhPWIiIiwgc3RyZWFtX2lkPTE1LCBzdHJl
YW1fZW5kZWQ9VHJ1ZSwgcHVzaF9pZD0wKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQot
ICAgIGRlZiB0ZXN0X3JlcXVlc3Rfd2l0aF9zZXJ2ZXJfcHVzaChzZWxmKToKLSAgICAgICAgd2l0
aCBoM19jbGllbnRfYW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2ZXIpOgot
ICAgICAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotICAgICAg
ICAgICAgaDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgICAg
ICAjIHNlbmQgcmVxdWVzdAotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0
X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9o
ZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAg
ICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIp
LAotICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAg
ICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAg
ICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAg
ICAgIGVuZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyByZWNl
aXZlIHJlcXVlc3QKLSAgICAgICAgICAgIGV2ZW50cyA9IGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50
LCBoM19zZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ICAgIGV2ZW50cywKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEhlYWRl
cnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICkK
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlbmQg
cHVzaCBwcm9taXNlcwotICAgICAgICAgICAgcHVzaF9zdHJlYW1faWRfY3NzID0gaDNfc2VydmVy
LnNlbmRfcHVzaF9wcm9taXNlKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQs
Ci0gICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRo
b2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIp
LAotICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAg
ICAgICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi9hcHAuY3NzIiksCi0gICAgICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVzaF9z
dHJlYW1faWRfY3NzLCAxNSkKLQotICAgICAgICAgICAgcHVzaF9zdHJlYW1faWRfanMgPSBoM19z
ZXJ2ZXIuc2VuZF9wdXNoX3Byb21pc2UoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVh
bV9pZCwKLSAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgKGIi
Om1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0
dHBzIiksCi0gICAgICAgICAgICAgICAgICAgIChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIp
LAotICAgICAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiL2FwcC5qcyIpLAotICAgICAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1
c2hfc3RyZWFtX2lkX2pzLCAxOSkKLQotICAgICAgICAgICAgIyBzZW5kIHJlc3BvbnNlCi0gICAg
ICAgICAgICBoM19zZXJ2ZXIuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAg
ICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50
LXR5cGUiLCBiInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIpLAotICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIGgzX3NlcnZlci5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0
cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBkYXRhPWIiPGh0bWw+PGJvZHk+aGVsbG88L2JvZHk+
PC9odG1sPiIsCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVlLAotICAgICAgICAgICAg
KQotCi0gICAgICAgICAgICAjIMKgZnVsZmlsbCBwdXNoIHByb21pc2VzCi0gICAgICAgICAgICBo
M19zZXJ2ZXIuc2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1wdXNoX3N0
cmVhbV9pZF9jc3MsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1bKGIiOnN0YXR1cyIsIGIiMjAw
IiksIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9jc3MiKV0sCi0gICAgICAgICAgICAgICAgZW5k
X3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGgzX3NlcnZlci5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPXB1c2hfc3RyZWFtX2lkX2NzcywKLSAg
ICAgICAgICAgICAgICBkYXRhPWIiYm9keSB7IGNvbG9yOiBwaW5rIH0iLAotICAgICAgICAgICAg
ICAgIGVuZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgaDNfc2Vy
dmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1f
aWRfanMsCi0gICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChi
IjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAoYiJjb250ZW50LXR5cGUi
LCBiImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAg
ICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBo
M19zZXJ2ZXIuc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1wdXNoX3N0cmVh
bV9pZF9qcywgZGF0YT1iImFsZXJ0KCdob3dkZWUnKTsiLCBlbmRfc3RyZWFtPVRydWUKLSAgICAg
ICAgICAgICkKLQotICAgICAgICAgICAgIyByZWNlaXZlIHB1c2ggcHJvbWlzZXMsIHJlc3BvbnNl
IGFuZCBwdXNoIHJlc3BvbnNlcwotCi0gICAgICAgICAgICBldmVudHMgPSBoM190cmFuc2Zlcihx
dWljX3NlcnZlciwgaDNfY2xpZW50KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgICAgICBldmVudHMsCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAg
ICAgICBQdXNoUHJvbWlzZVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVy
cz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6cGF0aCIsIGIiL2FwcC5jc3MiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTAs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAg
ICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBQdXNoUHJvbWlzZVJlY2VpdmVkKAot
ICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiI6
YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YiI6cGF0aCIsIGIiL2FwcC5qcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2hfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg
ICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9
WwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04IiksCi0gICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAg
ICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1iIjxo
dG1sPjxib2R5PmhlbGxvPC9ib2R5PjwvaHRtbD4iLAotICAgICAgICAgICAgICAgICAgICAgICAg
c3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRl
ZD1UcnVlLAotICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICBIZWFk
ZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsoYiI6c3RhdHVz
IiwgYiIyMDAiKSwgKGIiY29udGVudC10eXBlIiwgYiJ0ZXh0L2NzcyIpXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2hfaWQ9MCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9p
ZD1wdXNoX3N0cmVhbV9pZF9jc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5k
ZWQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgIERh
dGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9YiJib2R5IHsgY29sb3I6
IHBpbmsgfSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2lkPTAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzdHJlYW1faWQ9cHVzaF9zdHJlYW1faWRfY3NzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICksCi0g
ICAgICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzdGF0dXMiLCBi
IjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiImNvbnRlbnQtdHlwZSIsIGIi
YXBwbGljYXRpb24vamF2YXNjcmlwdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2hfaWQ9MSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN0cmVhbV9pZD1wdXNoX3N0cmVhbV9pZF9qcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAg
ICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1iImFsZXJ0
KCdob3dkZWUnKTsiLAotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaF9pZD0xLAotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXB1c2hfc3RyZWFtX2lkX2pzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICks
Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X3JlcXVl
c3Rfd2l0aF9zZXJ2ZXJfcHVzaF9tYXhfcHVzaF9pZChzZWxmKToKLSAgICAgICAgd2l0aCBoM19j
bGllbnRfYW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2ZXIpOgotICAgICAg
ICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xpZW50KQotICAgICAgICAgICAg
aDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQotCi0gICAgICAgICAgICAjIHNl
bmQgcmVxdWVzdAotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRf
YXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJz
KAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAg
aGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAg
ICAgICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAg
ICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAg
KGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIGVu
ZF9zdHJlYW09VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyByZWNlaXZlIHJl
cXVlc3QKLSAgICAgICAgICAgIGV2ZW50cyA9IGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19z
ZXJ2ZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGV2
ZW50cywKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNl
aXZlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0IiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAg
ICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg
ICAgICAgICAgICBdLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlbmQgcHVzaCBw
cm9taXNlcwotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgOCk6Ci0gICAgICAgICAgICAg
ICAgaDNfc2VydmVyLnNlbmRfcHVzaF9wcm9taXNlKAotICAgICAgICAgICAgICAgICAgICBzdHJl
YW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChi
IjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgKGIi
OnBhdGgiLCAiL3t9LmNzcyIuZm9ybWF0KGkpLmVuY29kZSgiYXNjaWkiKSksCi0gICAgICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlbmQgb25l
IHRvbyBtYW55Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE5vQXZhaWxhYmxl
UHVzaElERXJyb3IpOgotICAgICAgICAgICAgICAgIGgzX3NlcnZlci5zZW5kX3B1c2hfcHJvbWlz
ZSgKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAg
ICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwg
YiJHRVQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpzY2hlbWUiLCBiImh0dHBzIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvOC5jc3MiKSwKLSAgICAgICAg
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Rh
dGFfYWZ0ZXJfdHJhaWxlcnMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBXZSBzaG91bGQg
bm90IHNlbmQgREFUQSBhZnRlciB0cmFpbGVycy4KLSAgICAgICAgIiIiCi0gICAgICAgIHF1aWNf
Y2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29uZmlndXJhdGlvbj1R
dWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgKQotICAgICAgICBoM19j
bGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0KLSAgICAgICAgc3RyZWFtX2lkID0g
cXVpY19jbGllbnQuZ2V0X25leHRfYXZhaWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgIGgzX2Ns
aWVudC5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAg
ICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgKGIiOm1ldGhvZCIsIGIiR0VUIiks
Ci0gICAgICAgICAgICAgICAgKGIiOnNjaGVtZSIsIGIiaHR0cHMiKSwKLSAgICAgICAgICAgICAg
ICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAoYiI6cGF0
aCIsIGIiLyIpLAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQu
c2VuZF9oZWFkZXJzKAotICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwgaGVhZGVycz1b
KGIieC1zb21lLXRyYWlsZXIiLCBiImZvbyIpXSwgZW5kX3N0cmVhbT1GYWxzZQotICAgICAgICAp
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRnJhbWVVbmV4cGVjdGVkKToKLSAgICAg
ICAgICAgIGgzX2NsaWVudC5zZW5kX2RhdGEoc3RyZWFtX2lkPXN0cmVhbV9pZCwgZGF0YT1iImhl
bGxvIiwgZW5kX3N0cmVhbT1GYWxzZSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZGF0YV9iZWZvcmVf
aGVhZGVycyhzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdlIHNob3VsZCBub3Qgc2VuZCBE
QVRBIGJlZm9yZSBoZWFkZXJzLgotICAgICAgICAiIiIKLSAgICAgICAgcXVpY19jbGllbnQgPSBG
YWtlUXVpY0Nvbm5lY3Rpb24oCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPVF1aWNDb25maWd1
cmF0aW9uKGlzX2NsaWVudD1UcnVlKQotICAgICAgICApCi0gICAgICAgIGgzX2NsaWVudCA9IEgz
Q29ubmVjdGlvbihxdWljX2NsaWVudCkKLQotICAgICAgICBzdHJlYW1faWQgPSBxdWljX2NsaWVu
dC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFtX2lkKCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhGcmFtZVVuZXhwZWN0ZWQpOgotICAgICAgICAgICAgaDNfY2xpZW50LnNlbmRfZGF0
YShzdHJlYW1faWQ9c3RyZWFtX2lkLCBkYXRhPWIiaGVsbG8iLCBlbmRfc3RyZWFtPUZhbHNlKQot
Ci0gICAgZGVmIHRlc3Rfc2VuZF9oZWFkZXJzX2FmdGVyX3RyYWlsZXJzKHNlbGYpOgotICAgICAg
ICAiIiIKLSAgICAgICAgV2Ugc2hvdWxkIG5vdCBzZW5kIEhFQURFUlMgYWZ0ZXIgdHJhaWxlcnMu
Ci0gICAgICAgICIiIgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigK
LSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRy
dWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xp
ZW50KQotCi0gICAgICAgIHN0cmVhbV9pZCA9IHF1aWNfY2xpZW50LmdldF9uZXh0X2F2YWlsYWJs
ZV9zdHJlYW1faWQoKQotICAgICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJzKAotICAgICAgICAg
ICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAg
ICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAgICAgICAgICAgIChiIjpzY2hlbWUi
LCBiImh0dHBzIiksCi0gICAgICAgICAgICAgICAgKGIiOmF1dGhvcml0eSIsIGIibG9jYWxob3N0
IiksCi0gICAgICAgICAgICAgICAgKGIiOnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50LnNlbmRfaGVhZGVycygKLSAgICAgICAgICAgIHN0
cmVhbV9pZD1zdHJlYW1faWQsIGhlYWRlcnM9WyhiIngtc29tZS10cmFpbGVyIiwgYiJmb28iKV0s
IGVuZF9zdHJlYW09RmFsc2UKLSAgICAgICAgKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKEZyYW1lVW5leHBlY3RlZCk6Ci0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJz
KAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAg
aGVhZGVycz1bKGIieC1vdGhlci10cmFpbGVyIiwgYiJmb28iKV0sCi0gICAgICAgICAgICAgICAg
ZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2Jsb2NrZWRf
c3RyZWFtKHNlbGYpOgotICAgICAgICBxdWljX2NsaWVudCA9IEZha2VRdWljQ29ubmVjdGlvbigK
LSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249UXVpY0NvbmZpZ3VyYXRpb24oaXNfY2xpZW50PVRy
dWUpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50ID0gSDNDb25uZWN0aW9uKHF1aWNfY2xp
ZW50KQotCi0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJl
YW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgc3RyZWFtX2lkPTMsCi0gICAgICAgICAg
ICAgICAgZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICIwMDA0
MTcwMTUwMDAwNjgwMDIwMDAwMDc0MDY0MDkxMDQwYmNjMDAwMDAwMGZhY2ViMDBjIgotICAgICAg
ICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAg
ICAgICkKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAg
ICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKHN0cmVhbV9pZD03LCBkYXRhPWIiXHgwMiIsIGVuZF9z
dHJlYW09RmFsc2UpCi0gICAgICAgICkKLSAgICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgK
LSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChzdHJlYW1faWQ9MTEsIGRhdGE9YiJceDAz
IiwgZW5kX3N0cmVhbT1GYWxzZSkKLSAgICAgICAgKQotICAgICAgICBoM19jbGllbnQuaGFuZGxl
X2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAgICAgICAgICAg
IHN0cmVhbV9pZD0wLCBkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgiMDEwNDAyODBkOTEwIiksIGVu
ZF9zdHJlYW09RmFsc2UKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgICAgICBoM19jbGll
bnQuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKAotICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgIGRhdGE9YmluYXNjaWkudW5o
ZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAiMDA0MDhkNzk2Zjc1MjA3MjY1NjE2MzY4NjU2
NDIwNmQ3NjY2NzM3NDJlNmU2NTc0MmMyMDcyNjU2MTYzNjgyMCIKLSAgICAgICAgICAgICAgICAg
ICAgIjc0Njg2NTIwMmY2NTYzNjg2ZjIwNjU2ZTY0NzA2ZjY5NmU3NDIwNjY2ZjcyMjA2MTZlMjA2
NTYzNjg2ZjIwNzIiCi0gICAgICAgICAgICAgICAgICAgICI2NTczNzA2ZjZlNzM2NTIwNzE3NTY1
NzI3OTIwMmYzYzZlNzU2ZDYyNjU3MjNlMjA2NTZlNjQ3MDZmNjk2ZTc0IgotICAgICAgICAgICAg
ICAgICAgICAiNzMyMDY2NmY3MjIwNjEyMDc2NjE3MjY5NjE2MjZjNjUyMDczNjk3YTY1MjA3MjY1
NzM3MDZmNmU3MzY1MjA3NyIKLSAgICAgICAgICAgICAgICAgICAgIjY5NzQ2ODIwNzI2MTZlNjQ2
ZjZkMjA2Mjc5NzQ2NTczIgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZW5k
X3N0cmVhbT1UcnVlLAotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAgICAg
ICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lk
PTcsCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAg
ICAgICAgICAgICAgICAgICAgIjNmZTEwMWM2OTZkMDdhYmU5NDEwOTRjYjZkMGEwODAxN2Q0MDM5
NzE5NjZlMzJjYTk4YjQ2ZiIKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAg
ICAgICAgZW5kX3N0cmVhbT1GYWxzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAp
LAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAg
ICAgICAgICAgICAgICAgaGVhZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6c3Rh
dHVzIiwgYiIyMDAiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChiImRhdGUiLCBiIk1vbiwg
MjIgSnVsIDIwMTkgMDY6MzM6MzMgR01UIiksCi0gICAgICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1f
ZW5kZWQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBEYXRhUmVj
ZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9KAotICAgICAgICAgICAgICAgICAgICAg
ICAgYiJ5b3UgcmVhY2hlZCBtdmZzdC5uZXQsIHJlYWNoIHRoZSAvZWNobyBlbmRwb2ludCBmb3Ig
YW4gIgotICAgICAgICAgICAgICAgICAgICAgICAgYiJlY2hvIHJlc3BvbnNlIHF1ZXJ5IC88bnVt
YmVyPiBlbmRwb2ludHMgZm9yIGEgdmFyaWFibGUgIgotICAgICAgICAgICAgICAgICAgICAgICAg
YiJzaXplIHJlc3BvbnNlIHdpdGggcmFuZG9tIGJ5dGVzIgotICAgICAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAgICAgICAgICAgICAgICAg
c3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2Jsb2NrZWRfc3RyZWFtX3RyYWlsZXIoc2VsZik6Ci0g
ICAgICAgIHF1aWNfY2xpZW50ID0gRmFrZVF1aWNDb25uZWN0aW9uKAotICAgICAgICAgICAgY29u
ZmlndXJhdGlvbj1RdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9VHJ1ZSkKLSAgICAgICAgKQot
ICAgICAgICBoM19jbGllbnQgPSBIM0Nvbm5lY3Rpb24ocXVpY19jbGllbnQpCi0KLSAgICAgICAg
aDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgK
LSAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MywKLSAgICAgICAgICAgICAgICBkYXRhPWJpbmFz
Y2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgIjAwMDQxNzAxNTAwMDA2ODAwMjAw
MDAwNzQwNjQwOTEwNDBiY2MwMDAwMDAwZmFjZWIwMGMiCi0gICAgICAgICAgICAgICAgKSwKLSAg
ICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQotICAgICAgICAp
Ci0gICAgICAgIGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICBTdHJlYW1EYXRh
UmVjZWl2ZWQoc3RyZWFtX2lkPTcsIGRhdGE9YiJceDAyIiwgZW5kX3N0cmVhbT1GYWxzZSkKLSAg
ICAgICAgKQotICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAgICAgICAgU3Ry
ZWFtRGF0YVJlY2VpdmVkKHN0cmVhbV9pZD0xMSwgZGF0YT1iIlx4MDMiLCBlbmRfc3RyZWFtPUZh
bHNlKQotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IGgzX2NsaWVudC5oYW5kbGVfZXZlbnQoCi0gICAgICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2Vp
dmVkKAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAgICAgICAgICAgICAg
ICAgZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAiMDEx
YjAwMDBkOTU2OTZkMDdhYmU5NDEwOTRjYjZkMGEwODAxN2Q0MDM5NzE5NjZlMzJjYTk4YjQ2ZiIK
LSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1G
YWxzZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgaGVh
ZGVycz1bCi0gICAgICAgICAgICAgICAgICAgICAgICAoYiI6c3RhdHVzIiwgYiIyMDAiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChiImRhdGUiLCBiIk1vbiwgMjIgSnVsIDIwMTkgMDY6MzM6
MzMgR01UIiksCi0gICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgIHN0
cmVhbV9pZD0wLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1fZW5kZWQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoM19jbGllbnQuaGFuZGxlX2V2ZW50KAotICAgICAg
ICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZCgKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFt
X2lkPTAsCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9YmluYXNjaWkudW5oZXhsaWZ5KAotICAg
ICAgICAgICAgICAgICAgICAgICAgIjAwNDA4ZDc5NmY3NTIwNzI2NTYxNjM2ODY1NjQyMDZkNzY2
NjczNzQyZTZlNjU3NDJjMjA3MjY1NjE2MzY4MjAiCi0gICAgICAgICAgICAgICAgICAgICAgICAi
NzQ2ODY1MjAyZjY1NjM2ODZmMjA2NTZlNjQ3MDZmNjk2ZTc0MjA2NjZmNzIyMDYxNmUyMDY1NjM2
ODZmMjA3MiIKLSAgICAgICAgICAgICAgICAgICAgICAgICI2NTczNzA2ZjZlNzM2NTIwNzE3NTY1
NzI3OTIwMmYzYzZlNzU2ZDYyNjU3MjNlMjA2NTZlNjQ3MDZmNjk2ZTc0IgotICAgICAgICAgICAg
ICAgICAgICAgICAgIjczMjA2NjZmNzIyMDYxMjA3NjYxNzI2OTYxNjI2YzY1MjA3MzY5N2E2NTIw
NzI2NTczNzA2ZjZlNzM2NTIwNzciCi0gICAgICAgICAgICAgICAgICAgICAgICAiNjk3NDY4MjA3
MjYxNmU2NDZmNmQyMDYyNzk3NDY1NzMiCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAg
ICAgICAgICAgICAgIGVuZF9zdHJlYW09RmFsc2UsCi0gICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgKSwKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBEYXRhUmVjZWl2ZWQoCi0g
ICAgICAgICAgICAgICAgICAgIGRhdGE9KAotICAgICAgICAgICAgICAgICAgICAgICAgYiJ5b3Ug
cmVhY2hlZCBtdmZzdC5uZXQsIHJlYWNoIHRoZSAvZWNobyBlbmRwb2ludCBmb3IgYW4gIgotICAg
ICAgICAgICAgICAgICAgICAgICAgYiJlY2hvIHJlc3BvbnNlIHF1ZXJ5IC88bnVtYmVyPiBlbmRw
b2ludHMgZm9yIGEgdmFyaWFibGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgYiJzaXplIHJl
c3BvbnNlIHdpdGggcmFuZG9tIGJ5dGVzIgotICAgICAgICAgICAgICAgICAgICApLAotICAgICAg
ICAgICAgICAgICAgICBzdHJlYW1faWQ9MCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2Vu
ZGVkPUZhbHNlLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaDNfY2xpZW50LmhhbmRs
ZV9ldmVudCgKLSAgICAgICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAg
ICAgICAgICAgIHN0cmVhbV9pZD0wLCBkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgiMDEwMzAyODAx
MCIpLCBlbmRfc3RyZWFtPVRydWUKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAot
ICAgICAgICAgICAgW10sCi0gICAgICAgICkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgaDNfY2xpZW50LmhhbmRsZV9ldmVudCgKLSAgICAgICAgICAgICAgICBTdHJl
YW1EYXRhUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgIHN0cmVhbV9pZD03LAotICAgICAg
ICAgICAgICAgICAgICBkYXRhPWJpbmFzY2lpLnVuaGV4bGlmeSgiNmFmMmIyMGY0OTU2NGQ4MzM1
MDViMzgyOTRlNyIpLAotICAgICAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBbCi0gICAgICAgICAg
ICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsoYiJ4
LXNvbWUtdHJhaWxlciIsIGIiZm9vIildLAotICAgICAgICAgICAgICAgICAgICBzdHJlYW1faWQ9
MCwKLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2VuZGVkPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIHB1c2hfaWQ9Tm9uZSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBdLAot
ICAgICAgICApCi0KLSAgICBkZWYgdGVzdF91bmlfc3RyZWFtX2dyZWFzZShzZWxmKToKLSAgICAg
ICAgd2l0aCBoM19jbGllbnRfYW5kX3NlcnZlcigpIGFzIChxdWljX2NsaWVudCwgcXVpY19zZXJ2
ZXIpOgotICAgICAgICAgICAgaDNfc2VydmVyID0gSDNDb25uZWN0aW9uKHF1aWNfc2VydmVyKQot
Ci0gICAgICAgICAgICBxdWljX2NsaWVudC5zZW5kX3N0cmVhbV9kYXRhKAotICAgICAgICAgICAg
ICAgIDE0LCBiIlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZlR1JFQVNFIGlzIHRoZSB3
b3JkIgotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM190cmFu
c2ZlcihxdWljX2NsaWVudCwgaDNfc2VydmVyKSwgW10pCi0KLSAgICBkZWYgdGVzdF9yZXF1ZXN0
X3dpdGhfdHJhaWxlcnMoc2VsZik6Ci0gICAgICAgIHdpdGggaDNfY2xpZW50X2FuZF9zZXJ2ZXIo
KSBhcyAocXVpY19jbGllbnQsIHF1aWNfc2VydmVyKToKLSAgICAgICAgICAgIGgzX2NsaWVudCA9
IEgzQ29ubmVjdGlvbihxdWljX2NsaWVudCkKLSAgICAgICAgICAgIGgzX3NlcnZlciA9IEgzQ29u
bmVjdGlvbihxdWljX3NlcnZlcikKLQotICAgICAgICAgICAgIyBzZW5kIHJlcXVlc3Qgd2l0aCB0
cmFpbGVycwotICAgICAgICAgICAgc3RyZWFtX2lkID0gcXVpY19jbGllbnQuZ2V0X25leHRfYXZh
aWxhYmxlX3N0cmVhbV9pZCgpCi0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9oZWFkZXJzKAot
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgaGVh
ZGVycz1bCi0gICAgICAgICAgICAgICAgICAgIChiIjptZXRob2QiLCBiIkdFVCIpLAotICAgICAg
ICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAg
ICAoYiI6YXV0aG9yaXR5IiwgYiJsb2NhbGhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgKGIi
OnBhdGgiLCBiIi8iKSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIGVuZF9z
dHJlYW09RmFsc2UsCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBoM19jbGllbnQuc2VuZF9o
ZWFkZXJzKAotICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAg
ICAgICAgaGVhZGVycz1bKGIieC1zb21lLXRyYWlsZXIiLCBiImZvbyIpXSwKLSAgICAgICAgICAg
ICAgICBlbmRfc3RyZWFtPVRydWUsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgcmVj
ZWl2ZSByZXF1ZXN0Ci0gICAgICAgICAgICBldmVudHMgPSBoM190cmFuc2ZlcihxdWljX2NsaWVu
dCwgaDNfc2VydmVyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICAgICBldmVudHMsCi0gICAgICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICAgICBIZWFk
ZXJzUmVjZWl2ZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoYiI6bWV0aG9kIiwgYiJHRVQiKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYiI6c2NoZW1lIiwgYiJodHRwcyIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChiIjphdXRob3JpdHkiLCBiImxvY2FsaG9zdCIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChiIjpwYXRoIiwgYiIvIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAg
ICAgICAgICAgaGVhZGVycz1bKGIieC1zb21lLXRyYWlsZXIiLCBiImZvbyIpXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1fZW5kZWQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHNlbmQgcmVzcG9uc2UK
LSAgICAgICAgICAgIGgzX3NlcnZlci5zZW5kX2hlYWRlcnMoCi0gICAgICAgICAgICAgICAgc3Ry
ZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAgICAgICAgICBoZWFkZXJzPVsKLSAgICAgICAgICAg
ICAgICAgICAgKGIiOnN0YXR1cyIsIGIiMjAwIiksCi0gICAgICAgICAgICAgICAgICAgIChiImNv
bnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiksCi0gICAgICAgICAgICAg
ICAgXSwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAgICAgICAgKQot
ICAgICAgICAgICAgaDNfc2VydmVyLnNlbmRfZGF0YSgKLSAgICAgICAgICAgICAgICBzdHJlYW1f
aWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGRhdGE9YiI8aHRtbD48Ym9keT5oZWxsbzwv
Ym9keT48L2h0bWw+IiwKLSAgICAgICAgICAgICAgICBlbmRfc3RyZWFtPUZhbHNlLAotICAgICAg
ICAgICAgKQotICAgICAgICAgICAgaDNfc2VydmVyLnNlbmRfaGVhZGVycygKLSAgICAgICAgICAg
ICAgICBzdHJlYW1faWQ9c3RyZWFtX2lkLAotICAgICAgICAgICAgICAgIGhlYWRlcnM9WyhiIngt
c29tZS10cmFpbGVyIiwgYiJiYXIiKV0sCi0gICAgICAgICAgICAgICAgZW5kX3N0cmVhbT1UcnVl
LAotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIHJlY2VpdmUgcmVzcG9uc2UKLSAgICAg
ICAgICAgIGV2ZW50cyA9IGgzX3RyYW5zZmVyKHF1aWNfc2VydmVyLCBoM19jbGllbnQpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGV2ZW50cywKLSAgICAg
ICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEhlYWRlcnNSZWNlaXZlZCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGhlYWRlcnM9WwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChiIjpzdGF0dXMiLCBiIjIwMCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiImNv
bnRlbnQtdHlwZSIsIGIidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9p
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAgICAgRGF0YVJlY2VpdmVkKAotICAgICAg
ICAgICAgICAgICAgICAgICAgZGF0YT1iIjxodG1sPjxib2R5PmhlbGxvPC9ib2R5PjwvaHRtbD4i
LAotICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2lkPXN0cmVhbV9pZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9lbmRlZD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICAgICAgICAgSGVhZGVyc1JlY2VpdmVkKAotICAgICAgICAgICAgICAg
ICAgICAgICAgaGVhZGVycz1bKGIieC1zb21lLXRyYWlsZXIiLCBiImJhciIpXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cmVhbV9pZD1zdHJlYW1faWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzdHJlYW1fZW5kZWQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgICAgICBdLAotICAgICAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfdW5pX3N0cmVhbV90eXBl
KHNlbGYpOgotICAgICAgICB3aXRoIGgzX2NsaWVudF9hbmRfc2VydmVyKCkgYXMgKHF1aWNfY2xp
ZW50LCBxdWljX3NlcnZlcik6Ci0gICAgICAgICAgICBoM19zZXJ2ZXIgPSBIM0Nvbm5lY3Rpb24o
cXVpY19zZXJ2ZXIpCi0KLSAgICAgICAgICAgICMgdW5rbm93biBzdHJlYW0gdHlwZSA5Ci0gICAg
ICAgICAgICBzdHJlYW1faWQgPSBxdWljX2NsaWVudC5nZXRfbmV4dF9hdmFpbGFibGVfc3RyZWFt
X2lkKGlzX3VuaWRpcmVjdGlvbmFsPVRydWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cmVhbV9pZCwgMikKLSAgICAgICAgICAgIHF1aWNfY2xpZW50LnNlbmRfc3RyZWFtX2RhdGEo
c3RyZWFtX2lkLCBiIlx4MDkiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM190cmFu
c2ZlcihxdWljX2NsaWVudCwgaDNfc2VydmVyKSwgW10pCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3QoaDNfc2VydmVyLl9zdHJlYW0ua2V5cygpKSwgWzJdKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChoM19zZXJ2ZXIuX3N0cmVhbVsyXS5idWZmZXIsIGIiIikKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJlYW1bMl0uc3RyZWFtX3R5cGUs
IDkpCi0KLSAgICAgICAgICAgICMgdW5rbm93biBzdHJlYW0gdHlwZSA2NCwgb25lIGJ5dGUgYXQg
YSB0aW1lCi0gICAgICAgICAgICBzdHJlYW1faWQgPSBxdWljX2NsaWVudC5nZXRfbmV4dF9hdmFp
bGFibGVfc3RyZWFtX2lkKGlzX3VuaWRpcmVjdGlvbmFsPVRydWUpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHN0cmVhbV9pZCwgNikKLQotICAgICAgICAgICAgcXVpY19jbGllbnQuc2Vu
ZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiXHg0MCIpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19zZXJ2ZXIpLCBbXSkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChoM19zZXJ2ZXIuX3N0cmVhbS5rZXlzKCkpLCBbMiwg
Nl0pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzX3NlcnZlci5fc3RyZWFtWzJdLmJ1
ZmZlciwgYiIiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoM19zZXJ2ZXIuX3N0cmVh
bVsyXS5zdHJlYW1fdHlwZSwgOSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDNfc2Vy
dmVyLl9zdHJlYW1bNl0uYnVmZmVyLCBiIlx4NDAiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoM19zZXJ2ZXIuX3N0cmVhbVs2XS5zdHJlYW1fdHlwZSwgTm9uZSkKLQotICAgICAgICAg
ICAgcXVpY19jbGllbnQuc2VuZF9zdHJlYW1fZGF0YShzdHJlYW1faWQsIGIiXHg0MCIpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzX3RyYW5zZmVyKHF1aWNfY2xpZW50LCBoM19zZXJ2
ZXIpLCBbXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChoM19zZXJ2ZXIuX3N0
cmVhbS5rZXlzKCkpLCBbMiwgNl0pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzX3Nl
cnZlci5fc3RyZWFtWzJdLmJ1ZmZlciwgYiIiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChoM19zZXJ2ZXIuX3N0cmVhbVsyXS5zdHJlYW1fdHlwZSwgOSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoaDNfc2VydmVyLl9zdHJlYW1bNl0uYnVmZmVyLCBiIiIpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGgzX3NlcnZlci5fc3RyZWFtWzZdLnN0cmVhbV90eXBlLCA2NCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X2xvZ2dlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy90ZXN0X2xvZ2dlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmI3YzUyMDkzOGUyY2YyNGFlYjc2YjkxOWQ5NjdhZmJjNmM2ZWVlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9s
b2dnZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1mcm9tIHVuaXR0ZXN0IGlt
cG9ydCBUZXN0Q2FzZQotCi1mcm9tIGFpb3F1aWMucXVpYy5sb2dnZXIgaW1wb3J0IFF1aWNMb2dn
ZXIKLQotCi1jbGFzcyBRdWljTG9nZ2VyVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfZW1w
dHkoc2VsZik6Ci0gICAgICAgIGxvZ2dlciA9IFF1aWNMb2dnZXIoKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxvZ2dlci50b19kaWN0KCksIHsicWxvZ192ZXJzaW9uIjogImRyYWZ0LTAxIiwg
InRyYWNlcyI6IFtdfSkKLQotICAgIGRlZiB0ZXN0X2VtcHR5X3RyYWNlKHNlbGYpOgotICAgICAg
ICBsb2dnZXIgPSBRdWljTG9nZ2VyKCkKLSAgICAgICAgdHJhY2UgPSBsb2dnZXIuc3RhcnRfdHJh
Y2UoaXNfY2xpZW50PVRydWUsIG9kY2lkPWJ5dGVzKDgpKQotICAgICAgICBsb2dnZXIuZW5kX3Ry
YWNlKHRyYWNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgbG9nZ2Vy
LnRvX2RpY3QoKSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAicWxvZ192ZXJzaW9u
IjogImRyYWZ0LTAxIiwKLSAgICAgICAgICAgICAgICAidHJhY2VzIjogWwotICAgICAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAiY29tbW9uX2ZpZWxkcyI6IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiT0RDSUQiOiAiMDAwMDAwMDAwMDAwMDAwMCIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZV90aW1lIjogIjAiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJjb25maWd1cmF0
aW9uIjogeyJ0aW1lX3VuaXRzIjogInVzIn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAiZXZl
bnRfZmllbGRzIjogWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWxhdGl2ZV90aW1l
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2F0ZWdvcnkiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJldmVudF90eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGF0YSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgImV2ZW50cyI6IFtdLAotICAgICAgICAgICAgICAgICAgICAgICAgInZhbnRhZ2VfcG9p
bnQiOiB7Im5hbWUiOiAiYWlvcXVpYyIsICJ0eXBlIjogImNsaWVudCJ9LAotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3BhY2tldC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy90ZXN0X3BhY2tldC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjY5YjdhYTlhNjE5NzY3YTdmNWMwMzVmNzczMGZmMzcxZDdkNWY3OS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9w
YWNrZXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MTMgKzAsMCBAQAotaW1wb3J0IGJpbmFzY2lp
Ci1mcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQotCi1mcm9tIGFpb3F1aWMuYnVmZmVyIGlt
cG9ydCBCdWZmZXIsIEJ1ZmZlclJlYWRFcnJvcgotZnJvbSBhaW9xdWljLnF1aWMgaW1wb3J0IHBh
Y2tldAotZnJvbSBhaW9xdWljLnF1aWMucGFja2V0IGltcG9ydCAoCi0gICAgUEFDS0VUX1RZUEVf
SU5JVElBTCwKLSAgICBQQUNLRVRfVFlQRV9SRVRSWSwKLSAgICBRdWljUHJlZmVycmVkQWRkcmVz
cywKLSAgICBRdWljUHJvdG9jb2xWZXJzaW9uLAotICAgIFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJz
LAotICAgIGRlY29kZV9wYWNrZXRfbnVtYmVyLAotICAgIGVuY29kZV9xdWljX3ZlcnNpb25fbmVn
b3RpYXRpb24sCi0gICAgZ2V0X3JldHJ5X2ludGVncml0eV90YWcsCi0gICAgcHVsbF9xdWljX2hl
YWRlciwKLSAgICBwdWxsX3F1aWNfcHJlZmVycmVkX2FkZHJlc3MsCi0gICAgcHVsbF9xdWljX3Ry
YW5zcG9ydF9wYXJhbWV0ZXJzLAotICAgIHB1c2hfcXVpY19wcmVmZXJyZWRfYWRkcmVzcywKLSAg
ICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMsCi0pCi0KLWZyb20gLnV0aWxzIGltcG9y
dCBsb2FkCi0KLQotY2xhc3MgUGFja2V0VGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfZGVj
b2RlX3BhY2tldF9udW1iZXIoc2VsZik6Ci0gICAgICAgICMgZXhwZWN0ZWQgPSAwCi0gICAgICAg
IGZvciBpIGluIHJhbmdlKDAsIDI1Nik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRl
Y29kZV9wYWNrZXRfbnVtYmVyKGksIDgsIGV4cGVjdGVkPTApLCBpKQotCi0gICAgICAgICMgZXhw
ZWN0ZWQgPSAxMjgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfcGFja2V0X251bWJl
cigwLCA4LCBleHBlY3RlZD0xMjgpLCAyNTYpCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDI1
Nik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZV9wYWNrZXRfbnVtYmVyKGks
IDgsIGV4cGVjdGVkPTEyOCksIGkpCi0KLSAgICAgICAgIyBleHBlY3RlZCA9IDEyOQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZV9wYWNrZXRfbnVtYmVyKDAsIDgsIGV4cGVjdGVkPTEy
OSksIDI1NikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfcGFja2V0X251bWJlcigx
LCA4LCBleHBlY3RlZD0xMjkpLCAyNTcpCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDIsIDI1Nik6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZV9wYWNrZXRfbnVtYmVyKGksIDgs
IGV4cGVjdGVkPTEyOSksIGkpCi0KLSAgICAgICAgIyBleHBlY3RlZCA9IDI1NgotICAgICAgICBm
b3IgaSBpbiByYW5nZSgwLCAxMjgpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNv
ZGVfcGFja2V0X251bWJlcihpLCA4LCBleHBlY3RlZD0yNTYpLCAyNTYgKyBpKQotICAgICAgICBm
b3IgaSBpbiByYW5nZSgxMjksIDI1Nik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRl
Y29kZV9wYWNrZXRfbnVtYmVyKGksIDgsIGV4cGVjdGVkPTI1NiksIGkpCi0KLSAgICBkZWYgdGVz
dF9wdWxsX2VtcHR5KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIiIpCi0gICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyUmVhZEVycm9yKToKLSAgICAgICAgICAg
IHB1bGxfcXVpY19oZWFkZXIoYnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLQotICAgIGRlZiB0ZXN0
X3B1bGxfaW5pdGlhbF9jbGllbnQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxv
YWQoImluaXRpYWxfY2xpZW50LmJpbiIpKQotICAgICAgICBoZWFkZXIgPSBwdWxsX3F1aWNfaGVh
ZGVyKGJ1ZiwgaG9zdF9jaWRfbGVuZ3RoPTgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoZWFk
ZXIuaXNfbG9uZ19oZWFkZXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnZlcnNp
b24sIFF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaGVhZGVyLnBhY2tldF90eXBlLCBQQUNLRVRfVFlQRV9JTklUSUFMKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGhlYWRlci5kZXN0aW5hdGlvbl9jaWQsIGJpbmFzY2lpLnVuaGV4bGlmeSgi
ODU4YjM5MzY4YjhlM2M2ZSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5zb3Vy
Y2VfY2lkLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnRva2VuLCBiIiIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmludGVncml0eV90YWcsIGIiIikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIucmVzdF9sZW5ndGgsIDEyNjIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMTgpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2lu
aXRpYWxfc2VydmVyKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJpbml0
aWFsX3NlcnZlci5iaW4iKSkKLSAgICAgICAgaGVhZGVyID0gcHVsbF9xdWljX2hlYWRlcihidWYs
IGhvc3RfY2lkX2xlbmd0aD04KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaGVhZGVyLmlzX2xv
bmdfaGVhZGVyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci52ZXJzaW9uLCBRdWlj
UHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRl
ci5wYWNrZXRfdHlwZSwgUEFDS0VUX1RZUEVfSU5JVElBTCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoZWFkZXIuZGVzdGluYXRpb25fY2lkLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaGVhZGVyLnNvdXJjZV9jaWQsIGJpbmFzY2lpLnVuaGV4bGlmeSgiMTk1YzY4MzQ0ZTI4ZDQ3
OSIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci50b2tlbiwgYiIiKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5pbnRlZ3JpdHlfdGFnLCBiIiIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnJlc3RfbGVuZ3RoLCAxODQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoYnVmLnRlbGwoKSwgMTgpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3JldHJ5KHNlbGYp
OgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJyZXRyeS5iaW4iKSkKLSAgICAgICAg
aGVhZGVyID0gcHVsbF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04KQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaGVhZGVyLmlzX2xvbmdfaGVhZGVyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGhlYWRlci52ZXJzaW9uLCBRdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5wYWNrZXRfdHlwZSwgUEFDS0VUX1RZUEVf
UkVUUlkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmRlc3RpbmF0aW9uX2NpZCwg
YmluYXNjaWkudW5oZXhsaWZ5KCJlOWQxNDZkOGQxNGNiMjhlIikpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWFkZXIuc291cmNlX2NpZCwKLSAgICAgICAgICAgIGJp
bmFzY2lpLnVuaGV4bGlmeSgiMGIwYTIwNWE2NDhmY2Y4MmQ4NWYxMjhiNjdiYmUwODA1M2U2Iiks
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlYWRl
ci50b2tlbiwKLSAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAg
ICAiNDQzOTdhMzVkNjk4MzkzYzEzNGIwOGE5MzI3Mzc4NTlmNDQ2ZDNhYWRkMDBlZDgxNTQwYzhk
OGRlMTcyIgotICAgICAgICAgICAgICAgICI5MDZkM2U3YTExMWI1MDNmOTcyOWI4OTI4ZTc1Mjhm
OWE4NmE0NTgxZjllYmI0Y2IzYjUzYzI4MzY2MWUiCi0gICAgICAgICAgICAgICAgIjg1MzA3NDFh
OTkxOTJlZTU2OTE0YzU2MjY5OThlYzBmIgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVhZGVyLmludGVncml0eV90YWcs
IGJpbmFzY2lpLnVuaGV4bGlmeSgiZTFhM2M4MGM3OTdlYTQwMWMwOGZjOWMzNDJhMmQ5MGQiKQot
ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnJlc3RfbGVuZ3RoLCAw
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi50ZWxsKCksIDEyNSkKLQotICAgICAgICAj
IGNoZWNrIGludGVncml0eQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
Z2V0X3JldHJ5X2ludGVncml0eV90YWcoCi0gICAgICAgICAgICAgICAgYnVmLmRhdGFfc2xpY2Uo
MCwgMTA5KSwgYmluYXNjaWkudW5oZXhsaWZ5KCJmYmJkMjE5YjczNjNiNjRiIiksCi0gICAgICAg
ICAgICApLAotICAgICAgICAgICAgaGVhZGVyLmludGVncml0eV90YWcsCi0gICAgICAgICkKLQot
ICAgIGRlZiB0ZXN0X3B1bGxfdmVyc2lvbl9uZWdvdGlhdGlvbihzZWxmKToKLSAgICAgICAgYnVm
ID0gQnVmZmVyKGRhdGE9bG9hZCgidmVyc2lvbl9uZWdvdGlhdGlvbi5iaW4iKSkKLSAgICAgICAg
aGVhZGVyID0gcHVsbF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04KQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoaGVhZGVyLmlzX2xvbmdfaGVhZGVyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGhlYWRlci52ZXJzaW9uLCBRdWljUHJvdG9jb2xWZXJzaW9uLk5FR09USUFUSU9O
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlci5wYWNrZXRfdHlwZSwgTm9uZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIuZGVzdGluYXRpb25fY2lkLCBiaW5hc2NpaS51
bmhleGxpZnkoIjlhYWM1YTQ5YmE4N2E4NDkiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCho
ZWFkZXIuc291cmNlX2NpZCwgYmluYXNjaWkudW5oZXhsaWZ5KCJmOTJmNDMzNmZhOTUxYmExIikp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnRva2VuLCBiIiIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmludGVncml0eV90YWcsIGIiIikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChoZWFkZXIucmVzdF9sZW5ndGgsIDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYnVmLnRlbGwoKSwgMjMpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2xvbmdfaGVhZGVyX2RjaWRf
dG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigKLSAgICAgICAgICAgIGRhdGE9
YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICJjNmZmMDAwMDE2MTUwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNCIKLSAgICAgICAgICAgICAg
ICAiMDFjNTE0Zjk5ZWM0YmJmMWY3YTMwZjliMGM5NGZlZjcxN2YxYzFkMDdmZWMyNGM5OWE4NjRk
YTdlZGUiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIHB1bGxfcXVpY19oZWFkZXIo
YnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoY20u
ZXhjZXB0aW9uKSwgIkRlc3RpbmF0aW9uIENJRCBpcyB0b28gbG9uZyAoMjEgYnl0ZXMpIikKLQot
ICAgIGRlZiB0ZXN0X3B1bGxfbG9uZ19oZWFkZXJfc2NpZF90b29fbG9uZyhzZWxmKToKLSAgICAg
ICAgYnVmID0gQnVmZmVyKAotICAgICAgICAgICAgZGF0YT1iaW5hc2NpaS51bmhleGxpZnkoCi0g
ICAgICAgICAgICAgICAgImMyZmYwMDAwMTYwMDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDA0IgotICAgICAgICAgICAgICAgICIwMWNmY2VlOTllYzRiYmYxZjdh
MzBmOWIwYzk0MTdiOGMyNjNjZGQ4Y2M5NzJhNDQzOWQ2OGE0NjMyMCIKLSAgICAgICAgICAgICkK
LSAgICAgICAgKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFz
IGNtOgotICAgICAgICAgICAgcHVsbF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAiU291cmNlIENJ
RCBpcyB0b28gbG9uZyAoMjEgYnl0ZXMpIikKLQotICAgIGRlZiB0ZXN0X3B1bGxfbG9uZ19oZWFk
ZXJfbm9fZml4ZWRfYml0KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4ODBc
eGZmXHgwMFx4MDBceDExXHgwMFx4MDAiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgcHVsbF9xdWljX2hlYWRlcihidWYsIGhv
c3RfY2lkX2xlbmd0aD04KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRp
b24pLCAiUGFja2V0IGZpeGVkIGJpdCBpcyB6ZXJvIikKLQotICAgIGRlZiB0ZXN0X3B1bGxfbG9u
Z19oZWFkZXJfdG9vX3Nob3J0KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1iIlx4
YzBceDAwIikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJSZWFkRXJyb3Ip
OgotICAgICAgICAgICAgcHVsbF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04KQot
Ci0gICAgZGVmIHRlc3RfcHVsbF9zaG9ydF9oZWFkZXIoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1
ZmZlcihkYXRhPWxvYWQoInNob3J0X2hlYWRlci5iaW4iKSkKLSAgICAgICAgaGVhZGVyID0gcHVs
bF9xdWljX2hlYWRlcihidWYsIGhvc3RfY2lkX2xlbmd0aD04KQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGhlYWRlci5pc19sb25nX2hlYWRlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCho
ZWFkZXIudmVyc2lvbiwgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXIucGFj
a2V0X3R5cGUsIDB4NTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLmRlc3RpbmF0
aW9uX2NpZCwgYmluYXNjaWkudW5oZXhsaWZ5KCJmNDVhYTdiNTljMGUxYWQ2IikpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyLnNvdXJjZV9jaWQsIGIiIikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChoZWFkZXIudG9rZW4sIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCho
ZWFkZXIuaW50ZWdyaXR5X3RhZywgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRl
ci5yZXN0X2xlbmd0aCwgMTIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRlbGwoKSwg
OSkKLQotICAgIGRlZiB0ZXN0X3B1bGxfc2hvcnRfaGVhZGVyX25vX2ZpeGVkX2JpdChzZWxmKToK
LSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9YiJceDAwIikKLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIHB1bGxfcXVpY19oZWFk
ZXIoYnVmLCBob3N0X2NpZF9sZW5ndGg9OCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIo
Y20uZXhjZXB0aW9uKSwgIlBhY2tldCBmaXhlZCBiaXQgaXMgemVybyIpCi0KLSAgICBkZWYgdGVz
dF9lbmNvZGVfcXVpY192ZXJzaW9uX25lZ290aWF0aW9uKHNlbGYpOgotICAgICAgICBkYXRhID0g
ZW5jb2RlX3F1aWNfdmVyc2lvbl9uZWdvdGlhdGlvbigKLSAgICAgICAgICAgIGRlc3RpbmF0aW9u
X2NpZD1iaW5hc2NpaS51bmhleGxpZnkoIjlhYWM1YTQ5YmE4N2E4NDkiKSwKLSAgICAgICAgICAg
IHNvdXJjZV9jaWQ9YmluYXNjaWkudW5oZXhsaWZ5KCJmOTJmNDMzNmZhOTUxYmExIiksCi0gICAg
ICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbnM9WzB4NDU0NzQ3MTYsIFF1aWNQcm90b2NvbFZlcnNp
b24uRFJBRlRfMjVdLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YVsx
Ol0sIGxvYWQoInZlcnNpb25fbmVnb3RpYXRpb24uYmluIilbMTpdKQotCi0KLWNsYXNzIFBhcmFt
c1Rlc3QoVGVzdENhc2UpOgotICAgIG1heERpZmYgPSBOb25lCi0KLSAgICBkZWYgdGVzdF9wYXJh
bXMoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAg
ICAiMDEwMjY3MTAwMjEwY2MyZmQ2ZTdkOTdhNTNhYjViZTg1YjI4ZDc1YzgwMDgwMzAyNDdlNDA0
MDQ4MDA1ZmZmIgotICAgICAgICAgICAgImEwNTA0ODAwMGZmZmYwNjA0ODAwMGZmZmYwODAxMDYw
YTAxMDMwYjAxMTkiCi0gICAgICAgICkKLQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9
IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAgIHBhcmFtcyA9IHB1bGxfcXVpY190cmFuc3BvcnRf
cGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9j
b2xWZXJzaW9uLkRSQUZUXzI3Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIHBhcmFtcywKLSAgICAgICAgICAgIFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJz
KAotICAgICAgICAgICAgICAgIGlkbGVfdGltZW91dD0xMDAwMCwKLSAgICAgICAgICAgICAgICBz
dGF0ZWxlc3NfcmVzZXRfdG9rZW49YiJceGNjL1x4ZDZceGU3XHhkOXpTXHhhYltceGU4WyhceGQ3
XFxceDgwXHgwOCIsCi0gICAgICAgICAgICAgICAgbWF4X3BhY2tldF9zaXplPTIwMjAsCi0gICAg
ICAgICAgICAgICAgaW5pdGlhbF9tYXhfZGF0YT0zOTMyMTAsCi0gICAgICAgICAgICAgICAgaW5p
dGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9sb2NhbD02NTUzNSwKLSAgICAgICAgICAgICAgICBp
bml0aWFsX21heF9zdHJlYW1fZGF0YV9iaWRpX3JlbW90ZT02NTUzNSwKLSAgICAgICAgICAgICAg
ICBpbml0aWFsX21heF9zdHJlYW1fZGF0YV91bmk9Tm9uZSwKLSAgICAgICAgICAgICAgICBpbml0
aWFsX21heF9zdHJlYW1zX2JpZGk9NiwKLSAgICAgICAgICAgICAgICBpbml0aWFsX21heF9zdHJl
YW1zX3VuaT1Ob25lLAotICAgICAgICAgICAgICAgIGFja19kZWxheV9leHBvbmVudD0zLAotICAg
ICAgICAgICAgICAgIG1heF9hY2tfZGVsYXk9MjUsCi0gICAgICAgICAgICApLAotICAgICAgICAp
Ci0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PWxl
bihkYXRhKSkKLSAgICAgICAgcHVzaF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAg
ICAgICAgYnVmLCBwYXJhbXMsIHByb3RvY29sX3ZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lvbi5E
UkFGVF8yNwotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zi5kYXRh
KSwgbGVuKGRhdGEpKQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX2xlZ2FjeShzZWxmKToKLSAgICAg
ICAgZGF0YSA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICIwMDQ3MDAwMjAwMTBj
YzJmZDZlN2Q5N2E1M2FiNWJlODViMjhkNzVjODAwODAwMDgwMDAxMDYwMDAxMDAwMjYiCi0gICAg
ICAgICAgICAiNzEwMDAwNjAwMDQ4MDAwZmZmZjAwMDUwMDA0ODAwMGZmZmYwMDA0MDAwNDgwMDVm
ZmZhMDAwYTAwMDEwMzAwIgotICAgICAgICAgICAgIjBiMDAwMTE5MDAwMzAwMDI0N2U0IgotICAg
ICAgICApCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1kYXRh
KQotICAgICAgICBwYXJhbXMgPSBwdWxsX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAg
ICAgICAgICBidWYsIHByb3RvY29sX3ZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lvbi5EUkFGVF8y
NQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBwYXJh
bXMsCi0gICAgICAgICAgICBRdWljVHJhbnNwb3J0UGFyYW1ldGVycygKLSAgICAgICAgICAgICAg
ICBpZGxlX3RpbWVvdXQ9MTAwMDAsCi0gICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rv
a2VuPWIiXHhjYy9ceGQ2XHhlN1x4ZDl6U1x4YWJbXHhlOFsoXHhkN1xcXHg4MFx4MDgiLAotICAg
ICAgICAgICAgICAgIG1heF9wYWNrZXRfc2l6ZT0yMDIwLAotICAgICAgICAgICAgICAgIGluaXRp
YWxfbWF4X2RhdGE9MzkzMjEwLAotICAgICAgICAgICAgICAgIGluaXRpYWxfbWF4X3N0cmVhbV9k
YXRhX2JpZGlfbG9jYWw9NjU1MzUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFt
X2RhdGFfYmlkaV9yZW1vdGU9NjU1MzUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3Ry
ZWFtX2RhdGFfdW5pPU5vbmUsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtc19i
aWRpPTYsCi0gICAgICAgICAgICAgICAgaW5pdGlhbF9tYXhfc3RyZWFtc191bmk9Tm9uZSwKLSAg
ICAgICAgICAgICAgICBhY2tfZGVsYXlfZXhwb25lbnQ9MywKLSAgICAgICAgICAgICAgICBtYXhf
YWNrX2RlbGF5PTI1LAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2Vy
aWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAg
IHB1c2hfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcGFyYW1z
LCBwcm90b2NvbF92ZXJzaW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjUKLSAgICAgICAg
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihidWYuZGF0YSksIGxlbihkYXRhKSkKLQot
ICAgIGRlZiB0ZXN0X3BhcmFtc19kaXNhYmxlX2FjdGl2ZV9taWdyYXRpb24oc2VsZik6Ci0gICAg
ICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoIjBjMDAiKQotCi0gICAgICAgICMgcGFyc2UK
LSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcGFyYW1zID0gcHVsbF9x
dWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgYnVmLCBwcm90b2NvbF92ZXJz
aW9uPVF1aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjcKLSAgICAgICAgKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBhcmFtcywgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMoZGlzYWJsZV9hY3Rp
dmVfbWlncmF0aW9uPVRydWUpKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9
IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAgIHB1c2hfcXVpY190cmFuc3BvcnRf
cGFyYW1ldGVycygKLSAgICAgICAgICAgIGJ1ZiwgcGFyYW1zLCBwcm90b2NvbF92ZXJzaW9uPVF1
aWNQcm90b2NvbFZlcnNpb24uRFJBRlRfMjcKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX2Rpc2FibGVfYWN0
aXZlX21pZ3JhdGlvbl9sZWdhY3koc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhl
eGxpZnkoIjAwMDQwMDBjMDAwMCIpCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBidWYgPSBC
dWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwYXJhbXMgPSBwdWxsX3F1aWNfdHJhbnNwb3J0X3Bh
cmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHByb3RvY29sX3ZlcnNpb249UXVpY1Byb3RvY29s
VmVyc2lvbi5EUkFGVF8yNQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFy
YW1zLCBRdWljVHJhbnNwb3J0UGFyYW1ldGVycyhkaXNhYmxlX2FjdGl2ZV9taWdyYXRpb249VHJ1
ZSkpCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5
PWxlbihkYXRhKSkKLSAgICAgICAgcHVzaF9xdWljX3RyYW5zcG9ydF9wYXJhbWV0ZXJzKAotICAg
ICAgICAgICAgYnVmLCBwYXJhbXMsIHByb3RvY29sX3ZlcnNpb249UXVpY1Byb3RvY29sVmVyc2lv
bi5EUkFGVF8yNQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEs
IGRhdGEpCi0KLSAgICBkZWYgdGVzdF9wYXJhbXNfcHJlZmVycmVkX2FkZHJlc3Moc2VsZik6Ci0g
ICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAiMGQzYjhiYTI3
Yjg2MTE1MzI0MDA4OTAyMDAwMDAwMDBmMDNjOTFmZmZlNjlhNDU0MTE1MzEyNjJjNDUxOGQ2Igot
ICAgICAgICAgICAgIjMwMTNmMGMyODdlZDM1NzNlZmE5MDk1NjAzNzQ2YjJlMDJkNDU0ODBiYTY2
NDNlNWM2ZTdkNDhlY2I0IgotICAgICAgICApCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBi
dWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBwYXJhbXMgPSBwdWxsX3F1aWNfdHJhbnNw
b3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYsIHByb3RvY29sX3ZlcnNpb249UXVpY1By
b3RvY29sVmVyc2lvbi5EUkFGVF8yNwotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBwYXJhbXMsCi0gICAgICAgICAgICBRdWljVHJhbnNwb3J0UGFyYW1l
dGVycygKLSAgICAgICAgICAgICAgICBwcmVmZXJyZWRfYWRkcmVzcz1RdWljUHJlZmVycmVkQWRk
cmVzcygKLSAgICAgICAgICAgICAgICAgICAgaXB2NF9hZGRyZXNzPSgiMTM5LjE2Mi4xMjMuMTM0
IiwgNDQzNSksCi0gICAgICAgICAgICAgICAgICAgIGlwdjZfYWRkcmVzcz0oIjI0MDA6ODkwMjo6
ZjAzYzo5MWZmOmZlNjk6YTQ1NCIsIDQ0MzUpLAotICAgICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uX2lkPWIiYlx4YzRRXHg4ZGNceDAxP1x4MGMoflx4ZDNXPlx4ZmFceDkwXHg5NWA3IiwKLSAg
ICAgICAgICAgICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiRlx4YjJceGUwLUVIXHgw
Ylx4YTZkPlxcbn1IXHhlY1x4YjQiLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAp
LAotICAgICAgICApCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVy
KGNhcGFjaXR5PTEwMDApCi0gICAgICAgIHB1c2hfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygK
LSAgICAgICAgICAgIGJ1ZiwgcGFyYW1zLCBwcm90b2NvbF92ZXJzaW9uPVF1aWNQcm90b2NvbFZl
cnNpb24uRFJBRlRfMjcKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5k
YXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfcGFyYW1zX3ByZWZlcnJlZF9hZGRyZXNzX2xlZ2Fj
eShzZWxmKToKLSAgICAgICAgZGF0YSA9IGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAg
ICIwMDNmMDAwZDAwM2I4YmEyN2I4NjExNTMyNDAwODkwMjAwMDAwMDAwZjAzYzkxZmZmZTY5YTQ1
NDExNTMxMjYiCi0gICAgICAgICAgICAiMmM0NTE4ZDYzMDEzZjBjMjg3ZWQzNTczZWZhOTA5NTYw
Mzc0NmIyZTAyZDQ1NDgwYmE2NjQzZTVjNmU3ZDQ4IgotICAgICAgICAgICAgImVjYjQiCi0gICAg
ICAgICkKLQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEp
Ci0gICAgICAgIHBhcmFtcyA9IHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAg
ICAgICAgIGJ1ZiwgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHBhcmFt
cywKLSAgICAgICAgICAgIFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJzKAotICAgICAgICAgICAgICAg
IHByZWZlcnJlZF9hZGRyZXNzPVF1aWNQcmVmZXJyZWRBZGRyZXNzKAotICAgICAgICAgICAgICAg
ICAgICBpcHY0X2FkZHJlc3M9KCIxMzkuMTYyLjEyMy4xMzQiLCA0NDM1KSwKLSAgICAgICAgICAg
ICAgICAgICAgaXB2Nl9hZGRyZXNzPSgiMjQwMDo4OTAyOjpmMDNjOjkxZmY6ZmU2OTphNDU0Iiwg
NDQzNSksCi0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faWQ9YiJiXHhjNFFceDhkY1x4
MDE/XHgwYyh+XHhkM1c+XHhmYVx4OTBceDk1YDciLAotICAgICAgICAgICAgICAgICAgICBzdGF0
ZWxlc3NfcmVzZXRfdG9rZW49YiJGXHhiMlx4ZTAtRUhceDBiXHhhNmQ+XFxufUhceGVjXHhiNCIs
Ci0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAg
ICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9bGVuKGRhdGEpKQot
ICAgICAgICBwdXNoX3F1aWNfdHJhbnNwb3J0X3BhcmFtZXRlcnMoCi0gICAgICAgICAgICBidWYs
IHBhcmFtcywgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1Ci0g
ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAg
IGRlZiB0ZXN0X3BhcmFtc191bmtub3duKHNlbGYpOgotICAgICAgICBkYXRhID0gYmluYXNjaWku
dW5oZXhsaWZ5KCI4MDAwZmYwMDAxMDAiKQotCi0gICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVm
ID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcGFyYW1zID0gcHVsbF9xdWljX3RyYW5zcG9y
dF9wYXJhbWV0ZXJzKAotICAgICAgICAgICAgYnVmLCBwcm90b2NvbF92ZXJzaW9uPVF1aWNQcm90
b2NvbFZlcnNpb24uRFJBRlRfMjcKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBhcmFtcywgUXVpY1RyYW5zcG9ydFBhcmFtZXRlcnMoKSkKLQotICAgIGRlZiB0ZXN0X3BhcmFt
c191bmtub3duX2xlZ2FjeShzZWxmKToKLSAgICAgICAgIyBmYi5tdmZzdC5uZXQgc2VuZHMgYSBw
cm9wcmlldGFyeSBwYXJhbWV0ZXIgNjUyODAKLSAgICAgICAgZGF0YSA9IGJpbmFzY2lpLnVuaGV4
bGlmeSgKLSAgICAgICAgICAgICIwMDY0MDAwNTAwMDQ4MDAxMDQwMDAwMDYwMDA0ODAwMTA0MDAw
MDA3MDAwNDgwMDEwNDAwMDAwNDAwMDQ4MDEiCi0gICAgICAgICAgICAiMDAwMDAwMDA4MDAwOGMw
MDAwMDAwZmZmZmZmZmYwMDA5MDAwOGMwMDAwMDAwZmZmZmZmZmYwMDAxMDAwNDgwIgotICAgICAg
ICAgICAgIjAwZWE2MDAwMGEwMDAxMDMwMDAzMDAwMjUwMDAwMDAyMDAxMDYxNjE2MTYxNjI2MjYy
NjI2MzYzNjM2MzY0NiIKLSAgICAgICAgICAgICI0NjQ2NGZmMDAwMDAxMDAiCi0gICAgICAgICkK
LQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAg
ICAgIHBhcmFtcyA9IHB1bGxfcXVpY190cmFuc3BvcnRfcGFyYW1ldGVycygKLSAgICAgICAgICAg
IGJ1ZiwgcHJvdG9jb2xfdmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1Ci0gICAg
ICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHBhcmFtcywKLSAg
ICAgICAgICAgIFF1aWNUcmFuc3BvcnRQYXJhbWV0ZXJzKAotICAgICAgICAgICAgICAgIGlkbGVf
dGltZW91dD02MDAwMCwKLSAgICAgICAgICAgICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW49YiJh
YWFhYmJiYmNjY2NkZGRkIiwKLSAgICAgICAgICAgICAgICBtYXhfcGFja2V0X3NpemU9NDA5NiwK
LSAgICAgICAgICAgICAgICBpbml0aWFsX21heF9kYXRhPTEwNDg1NzYsCi0gICAgICAgICAgICAg
ICAgaW5pdGlhbF9tYXhfc3RyZWFtX2RhdGFfYmlkaV9sb2NhbD02NjU2MCwKLSAgICAgICAgICAg
ICAgICBpbml0aWFsX21heF9zdHJlYW1fZGF0YV9iaWRpX3JlbW90ZT02NjU2MCwKLSAgICAgICAg
ICAgICAgICBpbml0aWFsX21heF9zdHJlYW1fZGF0YV91bmk9NjY1NjAsCi0gICAgICAgICAgICAg
ICAgaW5pdGlhbF9tYXhfc3RyZWFtc19iaWRpPTQyOTQ5NjcyOTUsCi0gICAgICAgICAgICAgICAg
aW5pdGlhbF9tYXhfc3RyZWFtc191bmk9NDI5NDk2NzI5NSwKLSAgICAgICAgICAgICAgICBhY2tf
ZGVsYXlfZXhwb25lbnQ9MywKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X3ByZWZlcnJlZF9hZGRyZXNzX2lwdjRfb25seShzZWxmKToKLSAgICAgICAgZGF0YSA9IGJp
bmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICI4YmEyN2I4NjExNTMwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjYyYzQ1MThkNjMwMTMiCi0gICAgICAgICAgICAiZjBj
Mjg3ZWQzNTczZWZhOTA5NTYwMzc0NmIyZTAyZDQ1NDgwYmE2NjQzZTVjNmU3ZDQ4ZWNiNCIKLSAg
ICAgICAgKQotCi0gICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0
YSkKLSAgICAgICAgcHJlZmVycmVkX2FkZHJlc3MgPSBwdWxsX3F1aWNfcHJlZmVycmVkX2FkZHJl
c3MoYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcHJlZmVycmVk
X2FkZHJlc3MsCi0gICAgICAgICAgICBRdWljUHJlZmVycmVkQWRkcmVzcygKLSAgICAgICAgICAg
ICAgICBpcHY0X2FkZHJlc3M9KCIxMzkuMTYyLjEyMy4xMzQiLCA0NDM1KSwKLSAgICAgICAgICAg
ICAgICBpcHY2X2FkZHJlc3M9Tm9uZSwKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX2lkPWIi
Ylx4YzRRXHg4ZGNceDAxP1x4MGMoflx4ZDNXPlx4ZmFceDkwXHg5NWA3IiwKLSAgICAgICAgICAg
ICAgICBzdGF0ZWxlc3NfcmVzZXRfdG9rZW49YiJGXHhiMlx4ZTAtRUhceDBiXHhhNmQ+XFxufUhc
eGVjXHhiNCIsCi0gICAgICAgICAgICApLAotICAgICAgICApCi0KLSAgICAgICAgIyBzZXJpYWxp
emUKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PWxlbihkYXRhKSkKLSAgICAgICAgcHVz
aF9xdWljX3ByZWZlcnJlZF9hZGRyZXNzKGJ1ZiwgcHJlZmVycmVkX2FkZHJlc3MpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9wcmVmZXJy
ZWRfYWRkcmVzc19pcHY2X29ubHkoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiaW5hc2NpaS51bmhl
eGxpZnkoCi0gICAgICAgICAgICAiMDAwMDAwMDAwMDAwMjQwMDg5MDIwMDAwMDAwMGYwM2M5MWZm
ZmU2OWE0NTQxMTUzMTI2MmM0NTE4ZDYzMDEzIgotICAgICAgICAgICAgImYwYzI4N2VkMzU3M2Vm
YTkwOTU2MDM3NDZiMmUwMmQ0NTQ4MGJhNjY0M2U1YzZlN2Q0OGVjYjQiCi0gICAgICAgICkKLQot
ICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWRhdGEpCi0gICAgICAg
IHByZWZlcnJlZF9hZGRyZXNzID0gcHVsbF9xdWljX3ByZWZlcnJlZF9hZGRyZXNzKGJ1ZikKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHByZWZlcnJlZF9hZGRyZXNzLAot
ICAgICAgICAgICAgUXVpY1ByZWZlcnJlZEFkZHJlc3MoCi0gICAgICAgICAgICAgICAgaXB2NF9h
ZGRyZXNzPU5vbmUsCi0gICAgICAgICAgICAgICAgaXB2Nl9hZGRyZXNzPSgiMjQwMDo4OTAyOjpm
MDNjOjkxZmY6ZmU2OTphNDU0IiwgNDQzNSksCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbl9p
ZD1iImJceGM0UVx4OGRjXHgwMT9ceDBjKH5ceGQzVz5ceGZhXHg5MFx4OTVgNyIsCi0gICAgICAg
ICAgICAgICAgc3RhdGVsZXNzX3Jlc2V0X3Rva2VuPWIiRlx4YjJceGUwLUVIXHgwYlx4YTZkPlxc
bn1IXHhlY1x4YjQiLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2Vy
aWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1sZW4oZGF0YSkpCi0gICAgICAg
IHB1c2hfcXVpY19wcmVmZXJyZWRfYWRkcmVzcyhidWYsIHByZWZlcnJlZF9hZGRyZXNzKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQotCi0KLWNsYXNzIEZyYW1lVGVz
dChUZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfYWNrX2ZyYW1lKHNlbGYpOgotICAgICAgICBkYXRh
ID0gYiJceDAwXHgwMlx4MDBceDAwIgotCi0gICAgICAgICMgcGFyc2UKLSAgICAgICAgYnVmID0g
QnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcmFuZ2VzZXQsIGRlbGF5ID0gcGFja2V0LnB1bGxf
YWNrX2ZyYW1lKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwg
W3JhbmdlKDAsIDEpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWxheSwgMikKLQotICAg
ICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoY2FwYWNpdHk9bGVuKGRhdGEp
KQotICAgICAgICBwYWNrZXQucHVzaF9hY2tfZnJhbWUoYnVmLCByYW5nZXNldCwgZGVsYXkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGRhdGEpCi0KLSAgICBkZWYgdGVzdF9h
Y2tfZnJhbWVfd2l0aF9vbmVfcmFuZ2Uoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBiIlx4MDJceDAy
XHgwMVx4MDBceDAwXHgwMCIKLQotICAgICAgICAjIHBhcnNlCi0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cihkYXRhPWRhdGEpCi0gICAgICAgIHJhbmdlc2V0LCBkZWxheSA9IHBhY2tldC5wdWxsX2Fja19m
cmFtZShidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5n
ZSgwLCAxKSwgcmFuZ2UoMiwgMyldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlbGF5LCAy
KQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT1s
ZW4oZGF0YSkpCi0gICAgICAgIHBhY2tldC5wdXNoX2Fja19mcmFtZShidWYsIHJhbmdlc2V0LCBk
ZWxheSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgZGF0YSkKLQotICAgIGRl
ZiB0ZXN0X2Fja19mcmFtZV93aXRoX29uZV9yYW5nZV8yKHNlbGYpOgotICAgICAgICBkYXRhID0g
YiJceDA1XHgwMlx4MDFceDAwXHgwMFx4MDMiCi0KLSAgICAgICAgIyBwYXJzZQotICAgICAgICBi
dWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICByYW5nZXNldCwgZGVsYXkgPSBwYWNrZXQu
cHVsbF9hY2tfZnJhbWUoYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2Vz
ZXQpLCBbcmFuZ2UoMCwgNCksIHJhbmdlKDUsIDYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChkZWxheSwgMikKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIo
Y2FwYWNpdHk9bGVuKGRhdGEpKQotICAgICAgICBwYWNrZXQucHVzaF9hY2tfZnJhbWUoYnVmLCBy
YW5nZXNldCwgZGVsYXkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGRhdGEp
Ci0KLSAgICBkZWYgdGVzdF9hY2tfZnJhbWVfd2l0aF9vbmVfcmFuZ2VfMyhzZWxmKToKLSAgICAg
ICAgZGF0YSA9IGIiXHgwNVx4MDJceDAxXHgwMFx4MDFceDAyIgotCi0gICAgICAgICMgcGFyc2UK
LSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkKLSAgICAgICAgcmFuZ2VzZXQsIGRlbGF5
ID0gcGFja2V0LnB1bGxfYWNrX2ZyYW1lKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
aXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDMpLCByYW5nZSg1LCA2KV0pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoZGVsYXksIDIpCi0KLSAgICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVm
ID0gQnVmZmVyKGNhcGFjaXR5PWxlbihkYXRhKSkKLSAgICAgICAgcGFja2V0LnB1c2hfYWNrX2Zy
YW1lKGJ1ZiwgcmFuZ2VzZXQsIGRlbGF5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5k
YXRhLCBkYXRhKQotCi0gICAgZGVmIHRlc3RfYWNrX2ZyYW1lX3dpdGhfdHdvX3JhbmdlcyhzZWxm
KToKLSAgICAgICAgZGF0YSA9IGIiXHgwNFx4MDJceDAyXHgwMFx4MDBceDAwXHgwMFx4MDAiCi0K
LSAgICAgICAgIyBwYXJzZQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAg
ICByYW5nZXNldCwgZGVsYXkgPSBwYWNrZXQucHVsbF9hY2tfZnJhbWUoYnVmKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMSksIHJhbmdlKDIsIDMp
LCByYW5nZSg0LCA1KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVsYXksIDIpCi0KLSAg
ICAgICAgIyBzZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKGNhcGFjaXR5PWxlbihkYXRh
KSkKLSAgICAgICAgcGFja2V0LnB1c2hfYWNrX2ZyYW1lKGJ1ZiwgcmFuZ2VzZXQsIGRlbGF5KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRhKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rlc3RfcGFja2V0X2J1aWxkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVz
dHMvdGVzdF9wYWNrZXRfYnVpbGRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDNlMjMxMWQ5OTEyMGYxZTdiNGE0MjBiYTVkMWM0ZWM2ZjdjYWQ4OS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9w
YWNrZXRfYnVpbGRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDU2OSArMCwwIEBACi1mcm9tIHVu
aXR0ZXN0IGltcG9ydCBUZXN0Q2FzZQotCi1mcm9tIGFpb3F1aWMucXVpYy5jcnlwdG8gaW1wb3J0
IENyeXB0b1BhaXIKLWZyb20gYWlvcXVpYy5xdWljLnBhY2tldCBpbXBvcnQgKAotICAgIFBBQ0tF
VF9UWVBFX0hBTkRTSEFLRSwKLSAgICBQQUNLRVRfVFlQRV9JTklUSUFMLAotICAgIFBBQ0tFVF9U
WVBFX09ORV9SVFQsCi0gICAgUXVpY0ZyYW1lVHlwZSwKLSAgICBRdWljUHJvdG9jb2xWZXJzaW9u
LAotKQotZnJvbSBhaW9xdWljLnF1aWMucGFja2V0X2J1aWxkZXIgaW1wb3J0ICgKLSAgICBRdWlj
UGFja2V0QnVpbGRlciwKLSAgICBRdWljUGFja2V0QnVpbGRlclN0b3AsCi0gICAgUXVpY1NlbnRQ
YWNrZXQsCi0pCi1mcm9tIGFpb3F1aWMudGxzIGltcG9ydCBFcG9jaAotCi0KLWRlZiBjcmVhdGVf
YnVpbGRlcihpc19jbGllbnQ9RmFsc2UpOgotICAgIHJldHVybiBRdWljUGFja2V0QnVpbGRlcigK
LSAgICAgICAgaG9zdF9jaWQ9Ynl0ZXMoOCksCi0gICAgICAgIGlzX2NsaWVudD1pc19jbGllbnQs
Ci0gICAgICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgcGVlcl9jaWQ9Ynl0ZXMoOCksCi0g
ICAgICAgIHBlZXJfdG9rZW49YiIiLAotICAgICAgICBzcGluX2JpdD1GYWxzZSwKLSAgICAgICAg
dmVyc2lvbj1RdWljUHJvdG9jb2xWZXJzaW9uLkRSQUZUXzI1LAotICAgICkKLQotCi1kZWYgY3Jl
YXRlX2NyeXB0bygpOgotICAgIGNyeXB0byA9IENyeXB0b1BhaXIoKQotICAgIGNyeXB0by5zZXR1
cF9pbml0aWFsKGJ5dGVzKDgpLCBpc19jbGllbnQ9VHJ1ZSwgdmVyc2lvbj1RdWljUHJvdG9jb2xW
ZXJzaW9uLkRSQUZUXzI1KQotICAgIHJldHVybiBjcnlwdG8KLQotCi1jbGFzcyBRdWljUGFja2V0
QnVpbGRlclRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X2xvbmdfaGVhZGVyX2VtcHR5KHNl
bGYpOgotICAgICAgICBidWlsZGVyID0gY3JlYXRlX2J1aWxkZXIoKQotICAgICAgICBjcnlwdG8g
PSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRf
VFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5y
ZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCAxMjM2KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVp
bGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAg
ICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFj
a2V0cywgW10pCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAwKQotCi0gICAgZGVmIHRlc3RfbG9uZ19oZWFk
ZXJfcGFkZGluZyhzZWxmKToKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKGlzX2Ns
aWVudD1UcnVlKQotICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICAj
IElOSVRJQUwsIGZ1bGx5IHBhZGRlZAotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNL
RVRfVFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRl
ci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCAxMjM2KQotICAgICAgICBidWYgPSBidWlsZGVyLnN0
YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICBidWYucHVzaF9ieXRlcyhi
eXRlcygxMDApKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxkZXIucGFja2V0X2lzX2Vt
cHR5KQotCi0gICAgICAgICMgSU5JVElBTCwgZW1wdHkKLSAgICAgICAgYnVpbGRlci5zdGFydF9w
YWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMK
LSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGVuKGRhdGFncmFtc1swXSksIDEyODApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBwYWNrZXRzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIFF1aWNT
ZW50UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5JTklUSUFMLAotICAg
ICAgICAgICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNf
YWNrX2VsaWNpdGluZz1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0
PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgICAg
ICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICAgICAgICAgICAg
ICAgICAgc2VudF9ieXRlcz0xMjgwLAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxkZXIKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChidWlsZGVyLnBhY2tldF9udW1iZXIsIDEpCi0KLSAgICBkZWYgdGVzdF9sb25nX2hl
YWRlcl9pbml0aWFsX2NsaWVudF8yKHNlbGYpOgotICAgICAgICBidWlsZGVyID0gY3JlYXRlX2J1
aWxkZXIoaXNfY2xpZW50PVRydWUpCi0gICAgICAgIGNyeXB0byA9IGNyZWF0ZV9jcnlwdG8oKQot
Ci0gICAgICAgICMgSU5JVElBTCwgZnVsbCBsZW5ndGgKLSAgICAgICAgYnVpbGRlci5zdGFydF9w
YWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTIzNikKLSAgICAgICAgYnVmID0g
YnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLkNSWVBUTykKLSAgICAgICAgYnVmLnB1
c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAjIElO
SVRJQUwKLSAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwg
Y3J5cHRvKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdo
dF9zcGFjZSwgMTIzNikKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJh
bWVUeXBlLkNSWVBUTykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoMTAwKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAgICAgICAj
IElOSVRJQUwsIGVtcHR5Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBF
X0lOSVRJQUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIucGFja2V0
X2lzX2VtcHR5KQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFt
cywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihkYXRhZ3JhbXMpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNb
MF0pLCAxMjgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNbMV0pLCAx
MjgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAg
ICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAg
ICAgICAgICAgZXBvY2g9RXBvY2guSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxp
Z2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICBwYWNrZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBB
Q0tFVF9UWVBFX0lOSVRJQUwsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MTI4MCwK
LSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAotICAg
ICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5JTklUSUFMLAotICAgICAgICAgICAgICAgICAg
ICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1U
cnVlLAotICAgICAgICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAgICAg
ICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0
X3R5cGU9UEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9ieXRl
cz0xMjgwLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0K
LSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRl
ci5wYWNrZXRfbnVtYmVyLCAyKQotCi0gICAgZGVmIHRlc3RfbG9uZ19oZWFkZXJfaW5pdGlhbF9z
ZXJ2ZXIoc2VsZik6Ci0gICAgICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAg
IGNyeXB0byA9IGNyZWF0ZV9jcnlwdG8oKQotCi0gICAgICAgICMgSU5JVElBTAotICAgICAgICBi
dWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9JTklUSUFMLCBjcnlwdG8pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCAxMjM2KQot
ICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQot
ICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcygxMDApKQotICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgSU5JVElBTCwgZW1wdHkK
LSAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRv
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAg
ICAgICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVp
bGRlci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtc1swXSksIDE0NSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHBhY2tldHMsCi0gICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgUXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVw
b2NoPUVwb2NoLklOSVRJQUwsCi0gICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgIGlzX2NyeXB0b19wYWNrZXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0
X251bWJlcj0wLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9J
TklUSUFMLAotICAgICAgICAgICAgICAgICAgICBzZW50X2J5dGVzPTE0NSwKLSAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBidWls
ZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAxKQot
Ci0gICAgZGVmIHRlc3RfbG9uZ19oZWFkZXJfdGhlbl9zaG9ydF9oZWFkZXIoc2VsZik6Ci0gICAg
ICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAgICAgIGNyeXB0byA9IGNyZWF0ZV9j
cnlwdG8oKQotCi0gICAgICAgICMgSU5JVElBTCwgZnVsbCBsZW5ndGgKLSAgICAgICAgYnVpbGRl
ci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfSU5JVElBTCwgY3J5cHRvKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTIzNikKLSAgICAg
ICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLkNSWVBUTykKLSAgICAg
ICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0eSkKLQotICAg
ICAgICAjIElOSVRJQUwsIGVtcHR5Ci0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tF
VF9UWVBFX0lOSVRJQUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1aWxkZXIu
cGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgT05FX1JUVCwgZnVsbCBsZW5ndGgKLSAgICAg
ICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgMTI1
MykKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLlNUUkVB
TV9CQVNFKQotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhidWlsZGVyLnJlbWFpbmluZ19m
bGlnaHRfc3BhY2UpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxkZXIucGFja2V0X2lz
X2VtcHR5KQotCi0gICAgICAgICMgT05FX1JUVCwgZW1wdHkKLSAgICAgICAgYnVpbGRlci5zdGFy
dF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3Jh
bXMKLSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKGRhdGFncmFtc1swXSksIDEyODApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGVuKGRhdGFncmFtc1sxXSksIDEyODApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICBwYWNrZXRzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIFF1aWNTZW50
UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5JTklUSUFMLAotICAgICAg
ICAgICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNr
X2VsaWNpdGluZz1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PVRy
dWUsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgICAgICAg
ICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfSU5JVElBTCwKLSAgICAgICAgICAgICAgICAg
ICAgc2VudF9ieXRlcz0xMjgwLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAg
UXVpY1NlbnRQYWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVwb2NoLk9ORV9SVFQs
Ci0gICAgICAgICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgICAgICAg
ICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2NyeXB0b19w
YWNrZXQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MSwKLSAgICAg
ICAgICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfT05FX1JUVCwKLSAgICAgICAg
ICAgICAgICAgICAgc2VudF9ieXRlcz0xMjgwLAotICAgICAgICAgICAgICAgICksCi0gICAgICAg
ICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAyKQotCi0gICAgZGVmIHRlc3Rf
bG9uZ19oZWFkZXJfdGhlbl9sb25nX2hlYWRlcihzZWxmKToKLSAgICAgICAgYnVpbGRlciA9IGNy
ZWF0ZV9idWlsZGVyKCkKLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAg
ICAgIyBJTklUSUFMCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX0lO
SVRJQUwsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnJlbWFpbmlu
Z19mbGlnaHRfc3BhY2UsIDEyMzYpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUo
UXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKDE5OSkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAg
ICAgICAgIyBIQU5EU0hBS0UKLSAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZ
UEVfSEFORFNIQUtFLCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5y
ZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCA5OTMpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRf
ZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVz
KDI5OSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkp
Ci0KLSAgICAgICAgIyBPTkVfUlRUCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tF
VF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVy
LnJlbWFpbmluZ19mbGlnaHRfc3BhY2UsIDY2NikKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFy
dF9mcmFtZShRdWljRnJhbWVUeXBlLkNSWVBUTykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0
ZXMoMjk5KSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19lbXB0
eSkKLQotICAgICAgICAjIGNoZWNrIGRhdGFncmFtcwotICAgICAgICBkYXRhZ3JhbXMsIHBhY2tl
dHMgPSBidWlsZGVyLmZsdXNoKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdy
YW1zKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YWdyYW1zWzBdKSwgOTE0
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAgICAg
ICAgICAgIFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAg
ICAgICAgZXBvY2g9RXBvY2guSU5JVElBTCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0
PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAgICAgICAgICAg
ICBwYWNrZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tF
VF9UWVBFX0lOSVRJQUwsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9MjQ0LAotICAg
ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgUXVpY1NlbnRQYWNrZXQoCi0gICAgICAg
ICAgICAgICAgICAgIGVwb2NoPUVwb2NoLkhBTkRTSEFLRSwKLSAgICAgICAgICAgICAgICAgICAg
aW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGljaXRpbmc9VHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAotICAgICAgICAg
ICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTEsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90
eXBlPVBBQ0tFVF9UWVBFX0hBTkRTSEFLRSwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9ieXRl
cz0zNDMsCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tl
dCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2guT05FX1JUVCwKLSAgICAgICAgICAg
ICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGlj
aXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTIsCi0gICAgICAgICAgICAgICAgICAg
IHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX09ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNl
bnRfYnl0ZXM9MzI3LAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICBdLAotICAgICAg
ICApCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVpbGRlci5wYWNrZXRfbnVtYmVyLCAzKQotCi0gICAgZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX2Vt
cHR5KHNlbGYpOgotICAgICAgICBidWlsZGVyID0gY3JlYXRlX2J1aWxkZXIoKQotICAgICAgICBj
cnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQ
QUNLRVRfVFlQRV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVp
bGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCAxMjUzKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMK
LSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZGF0YWdyYW1zLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
YWNrZXRzLCBbXSkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxkZXIKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChidWlsZGVyLnBhY2tldF9udW1iZXIsIDApCi0KLSAgICBkZWYgdGVzdF9zaG9ydF9o
ZWFkZXJfcGFkZGluZyhzZWxmKToKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKCkK
LSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAgICAgIyBPTkVfUlRULCBm
dWxsIGxlbmd0aAotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9PTkVf
UlRULCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdf
ZmxpZ2h0X3NwYWNlLCAxMjUzKQotICAgICAgICBidWYgPSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1
aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICBidWYucHVzaF9ieXRlcyhieXRlcyhidWlsZGVy
LnJlbWFpbmluZ19mbGlnaHRfc3BhY2UpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxk
ZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAg
IGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihk
YXRhZ3JhbXNbMF0pLCAxMjgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgcGFja2V0cywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBRdWljU2VudFBhY2tl
dCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9RXBvY2guT05FX1JUVCwKLSAgICAgICAgICAg
ICAgICAgICAgaW5fZmxpZ2h0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2Fja19lbGlj
aXRpbmc9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfY3J5cHRvX3BhY2tldD1UcnVlLAot
ICAgICAgICAgICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAg
IHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX09ORV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNl
bnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBdLAotICAgICAg
ICApCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVpbGRlci5wYWNrZXRfbnVtYmVyLCAxKQotCi0gICAgZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX21h
eF9mbGlnaHRfYnl0ZXMoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBtYXhfZmxpZ2h0X2J5
dGVzIGxpbWl0cyBzZW50IGRhdGEuCi0gICAgICAgICIiIgotICAgICAgICBidWlsZGVyID0gY3Jl
YXRlX2J1aWxkZXIoKQotICAgICAgICBidWlsZGVyLm1heF9mbGlnaHRfYnl0ZXMgPSAxMDAwCi0K
LSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAgICAgICAgYnVpbGRlci5zdGFy
dF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwgOTczKQotICAgICAgICBidWYg
PSBidWlsZGVyLnN0YXJ0X2ZyYW1lKFF1aWNGcmFtZVR5cGUuQ1JZUFRPKQotICAgICAgICBidWYu
cHVzaF9ieXRlcyhieXRlcyhidWlsZGVyLnJlbWFpbmluZ19mbGlnaHRfc3BhY2UpKQotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKGJ1aWxkZXIucGFja2V0X2lzX2VtcHR5KQotCi0gICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY1BhY2tldEJ1aWxkZXJTdG9wKToKLSAgICAgICAgICAg
IGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAg
ICAgICAgIGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0KLSAgICAg
ICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRl
ci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtc1swXSksIDEwMDApCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBwYWNrZXRzLAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBlcG9j
aD1FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAg
ICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1UcnVlLAotICAgICAgICAgICAgICAg
ICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF9u
dW1iZXI9MCwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfT05F
X1JUVCwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9ieXRlcz0xMDAwLAotICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0KLSAgICAgICAgIyBjaGVjayBidWls
ZGVyCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAxKQot
Ci0gICAgZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX21heF9mbGlnaHRfYnl0ZXNfemVybyhzZWxmKToK
LSAgICAgICAgIiIiCi0gICAgICAgIG1heF9mbGlnaHRfYnl0ZXMgPSAwIG9ubHkgYWxsb3dzIEFD
S3MgYW5kIENPTk5FQ1RJT05fQ0xPU0UuCi0KLSAgICAgICAgQ2hlY2sgQ1JZUFRPIGlzIG5vdCBh
bGxvd2VkLgotICAgICAgICAiIiIKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKCkK
LSAgICAgICAgYnVpbGRlci5tYXhfZmxpZ2h0X2J5dGVzID0gMAotCi0gICAgICAgIGNyeXB0byA9
IGNyZWF0ZV9jcnlwdG8oKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY1Bh
Y2tldEJ1aWxkZXJTdG9wKToKLSAgICAgICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tF
VF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAgICAgICAgIGJ1aWxkZXIuc3RhcnRfZnJhbWUo
UXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAg
ICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDApCi0KLSAgICAgICAgIyBjaGVjayBidWlsZGVyCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5wYWNrZXRfbnVtYmVyLCAwKQotCi0gICAg
ZGVmIHRlc3Rfc2hvcnRfaGVhZGVyX21heF9mbGlnaHRfYnl0ZXNfemVyb19hY2soc2VsZik6Ci0g
ICAgICAgICIiIgotICAgICAgICBtYXhfZmxpZ2h0X2J5dGVzID0gMCBvbmx5IGFsbG93cyBBQ0tz
IGFuZCBDT05ORUNUSU9OX0NMT1NFLgotCi0gICAgICAgIENoZWNrIEFDSyBpcyBhbGxvd2VkLgot
ICAgICAgICAiIiIKLSAgICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKCkKLSAgICAgICAg
YnVpbGRlci5tYXhfZmxpZ2h0X2J5dGVzID0gMAotCi0gICAgICAgIGNyeXB0byA9IGNyZWF0ZV9j
cnlwdG8oKQotCi0gICAgICAgIGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9S
VFQsIGNyeXB0bykKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVU
eXBlLkFDSykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoNjQpKQotCi0gICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoUXVpY1BhY2tldEJ1aWxkZXJTdG9wKToKLSAgICAgICAgICAg
IGJ1aWxkZXIuc3RhcnRfcGFja2V0KFBBQ0tFVF9UWVBFX09ORV9SVFQsIGNyeXB0bykKLSAgICAg
ICAgICAgIGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0KLSAgICAg
ICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAgICAgZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRl
ci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtcyksIDEpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGFncmFtc1swXSksIDkyKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFja2V0cywKLSAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICBRdWljU2VudFBhY2tldCgKLSAgICAgICAgICAgICAgICAgICAgZXBvY2g9
RXBvY2guT05FX1JUVCwKLSAgICAgICAgICAgICAgICAgICAgaW5fZmxpZ2h0PUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPUZhbHNlLAotICAgICAgICAgICAgICAg
ICAgICBpc19jcnlwdG9fcGFja2V0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBwYWNrZXRf
bnVtYmVyPTAsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tldF90eXBlPVBBQ0tFVF9UWVBFX09O
RV9SVFQsCi0gICAgICAgICAgICAgICAgICAgIHNlbnRfYnl0ZXM9OTIsCi0gICAgICAgICAgICAg
ICAgKSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxk
ZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWlsZGVyLnBhY2tldF9udW1iZXIsIDEpCi0K
LSAgICBkZWYgdGVzdF9zaG9ydF9oZWFkZXJfbWF4X3RvdGFsX2J5dGVzXzEoc2VsZik6Ci0gICAg
ICAgICIiIgotICAgICAgICBtYXhfdG90YWxfYnl0ZXMgZG9lc24ndCBhbGxvdyBhbnkgcGFja2V0
cy4KLSAgICAgICAgIiIiCi0gICAgICAgIGJ1aWxkZXIgPSBjcmVhdGVfYnVpbGRlcigpCi0gICAg
ICAgIGJ1aWxkZXIubWF4X3RvdGFsX2J5dGVzID0gMTEKLQotICAgICAgICBjcnlwdG8gPSBjcmVh
dGVfY3J5cHRvKCkKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFF1aWNQYWNrZXRC
dWlsZGVyU3RvcCk6Ci0gICAgICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQ
RV9PTkVfUlRULCBjcnlwdG8pCi0KLSAgICAgICAgIyBjaGVjayBkYXRhZ3JhbXMKLSAgICAgICAg
ZGF0YWdyYW1zLCBwYWNrZXRzID0gYnVpbGRlci5mbHVzaCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZGF0YWdyYW1zLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYWNrZXRzLCBb
XSkKLQotICAgICAgICAjIGNoZWNrIGJ1aWxkZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
dWlsZGVyLnBhY2tldF9udW1iZXIsIDApCi0KLSAgICBkZWYgdGVzdF9zaG9ydF9oZWFkZXJfbWF4
X3RvdGFsX2J5dGVzXzIoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBtYXhfdG90YWxfYnl0
ZXMgYWxsb3dzIGEgc2hvcnQgcGFja2V0LgotICAgICAgICAiIiIKLSAgICAgICAgYnVpbGRlciA9
IGNyZWF0ZV9idWlsZGVyKCkKLSAgICAgICAgYnVpbGRlci5tYXhfdG90YWxfYnl0ZXMgPSA4MDAK
LQotICAgICAgICBjcnlwdG8gPSBjcmVhdGVfY3J5cHRvKCkKLQotICAgICAgICBidWlsZGVyLnN0
YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9PTkVfUlRULCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdfZmxpZ2h0X3NwYWNlLCA3NzMpCi0gICAgICAgIGJ1
ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0ZyYW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1
Zi5wdXNoX2J5dGVzKGJ5dGVzKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5wYWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljUGFja2V0QnVpbGRlclN0b3ApOgotICAgICAgICAg
ICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQotCi0g
ICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAgICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1
aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAx
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhZ3JhbXNbMF0pLCA4MDApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBwYWNrZXRzLAotICAgICAgICAgICAg
WwotICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAotICAgICAgICAgICAgICAgICAgICBl
cG9jaD1FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgICAgICAgICBpbl9mbGlnaHQ9VHJ1ZSwK
LSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1UcnVlLAotICAgICAgICAgICAg
ICAgICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHBhY2tl
dF9udW1iZXI9MCwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVf
T05FX1JUVCwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9ieXRlcz04MDAsCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgYnVp
bGRlcgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMSkK
LQotICAgIGRlZiB0ZXN0X3Nob3J0X2hlYWRlcl9tYXhfdG90YWxfYnl0ZXNfMyhzZWxmKToKLSAg
ICAgICAgYnVpbGRlciA9IGNyZWF0ZV9idWlsZGVyKCkKLSAgICAgICAgYnVpbGRlci5tYXhfdG90
YWxfYnl0ZXMgPSAyMDAwCi0KLSAgICAgICAgY3J5cHRvID0gY3JlYXRlX2NyeXB0bygpCi0KLSAg
ICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VUX1RZUEVfT05FX1JUVCwgY3J5cHRvKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1aWxkZXIucmVtYWluaW5nX2ZsaWdodF9zcGFjZSwg
MTI1MykKLSAgICAgICAgYnVmID0gYnVpbGRlci5zdGFydF9mcmFtZShRdWljRnJhbWVUeXBlLkNS
WVBUTykKLSAgICAgICAgYnVmLnB1c2hfYnl0ZXMoYnl0ZXMoYnVpbGRlci5yZW1haW5pbmdfZmxp
Z2h0X3NwYWNlKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWlsZGVyLnBhY2tldF9pc19l
bXB0eSkKLQotICAgICAgICBidWlsZGVyLnN0YXJ0X3BhY2tldChQQUNLRVRfVFlQRV9PTkVfUlRU
LCBjcnlwdG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVpbGRlci5yZW1haW5pbmdfZmxp
Z2h0X3NwYWNlLCA2OTMpCi0gICAgICAgIGJ1ZiA9IGJ1aWxkZXIuc3RhcnRfZnJhbWUoUXVpY0Zy
YW1lVHlwZS5DUllQVE8pCi0gICAgICAgIGJ1Zi5wdXNoX2J5dGVzKGJ5dGVzKGJ1aWxkZXIucmVt
YWluaW5nX2ZsaWdodF9zcGFjZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnVpbGRlci5w
YWNrZXRfaXNfZW1wdHkpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhRdWljUGFj
a2V0QnVpbGRlclN0b3ApOgotICAgICAgICAgICAgYnVpbGRlci5zdGFydF9wYWNrZXQoUEFDS0VU
X1RZUEVfT05FX1JUVCwgY3J5cHRvKQotCi0gICAgICAgICMgY2hlY2sgZGF0YWdyYW1zCi0gICAg
ICAgIGRhdGFncmFtcywgcGFja2V0cyA9IGJ1aWxkZXIuZmx1c2goKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxlbihkYXRhZ3JhbXMpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihkYXRhZ3JhbXNbMF0pLCAxMjgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRh
Z3JhbXNbMV0pLCA3MjApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBw
YWNrZXRzLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIFF1aWNTZW50UGFja2V0KAot
ICAgICAgICAgICAgICAgICAgICBlcG9jaD1FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgICAg
ICAgICBpbl9mbGlnaHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGlu
Zz1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAg
ICAgICAgICAgICAgICAgIHBhY2tldF9udW1iZXI9MCwKLSAgICAgICAgICAgICAgICAgICAgcGFj
a2V0X3R5cGU9UEFDS0VUX1RZUEVfT05FX1JUVCwKLSAgICAgICAgICAgICAgICAgICAgc2VudF9i
eXRlcz0xMjgwLAotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgUXVpY1NlbnRQ
YWNrZXQoCi0gICAgICAgICAgICAgICAgICAgIGVwb2NoPUVwb2NoLk9ORV9SVFQsCi0gICAgICAg
ICAgICAgICAgICAgIGluX2ZsaWdodD1UcnVlLAotICAgICAgICAgICAgICAgICAgICBpc19hY2tf
ZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIGlzX2NyeXB0b19wYWNrZXQ9VHJ1
ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2V0X251bWJlcj0xLAotICAgICAgICAgICAgICAg
ICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9PTkVfUlRULAotICAgICAgICAgICAgICAgICAg
ICBzZW50X2J5dGVzPTcyMCwKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgXSwKLSAg
ICAgICAgKQotCi0gICAgICAgICMgY2hlY2sgYnVpbGRlcgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJ1aWxkZXIucGFja2V0X251bWJlciwgMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90
ZXN0cy90ZXN0X3Jhbmdlc2V0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmFuZ2VzZXQu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViNDA4YzhhYzZjNTIzNmQxMzYzNDhh
ZDI0YWJmOWZhNmQ4NTkzOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmFuZ2VzZXQucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwyMzcgKzAsMCBAQAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLQotZnJv
bSBhaW9xdWljLnF1aWMucmFuZ2VzZXQgaW1wb3J0IFJhbmdlU2V0Ci0KLQotY2xhc3MgUmFuZ2VT
ZXRUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9hZGRfc2luZ2xlX2R1cGxpY2F0ZShzZWxm
KToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRk
KDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAx
KV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAxKV0pCi0KLSAgICBkZWYgdGVzdF9hZGRfc2luZ2xl
X29yZGVyZWQoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotCi0gICAgICAg
IHJhbmdlc2V0LmFkZCgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQp
LCBbcmFuZ2UoMCwgMSldKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMildKQotCi0gICAgICAgIHJh
bmdlc2V0LmFkZCgyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBb
cmFuZ2UoMCwgMyldKQotCi0gICAgZGVmIHRlc3RfYWRkX3NpbmdsZV9tZXJnZShzZWxmKToKLSAg
ICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAxKV0pCi0K
LSAgICAgICAgcmFuZ2VzZXQuYWRkKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChy
YW5nZXNldCksIFtyYW5nZSgwLCAxKSwgcmFuZ2UoMiwgMyldKQotCi0gICAgICAgIHJhbmdlc2V0
LmFkZCgxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2Uo
MCwgMyldKQotCi0gICAgZGVmIHRlc3RfYWRkX3NpbmdsZV9yZXZlcnNlKHNlbGYpOgotICAgICAg
ICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDIsIDMpXSkKLQotICAg
ICAgICByYW5nZXNldC5hZGQoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdl
c2V0KSwgW3JhbmdlKDEsIDMpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDMpXSkKLQotICAgIGRl
ZiB0ZXN0X2FkZF9yYW5nZV9vcmRlcmVkKHNlbGYpOgotICAgICAgICByYW5nZXNldCA9IFJhbmdl
U2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoMCwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDIpXSkKLQotICAgICAgICByYW5nZXNldC5h
ZGQoMiwgNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jhbmdl
KDAsIDQpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoNCwgNikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDYpXSkKLQotICAgIGRlZiB0ZXN0X2Fk
ZF9yYW5nZV9tZXJnZShzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0KLSAg
ICAgICAgcmFuZ2VzZXQuYWRkKDAsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChy
YW5nZXNldCksIFtyYW5nZSgwLCAyKV0pCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDMsIDUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAyKSwgcmFu
Z2UoMywgNSldKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgyLCAzKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgNSldKQotCi0gICAgZGVmIHRlc3Rf
YWRkX3JhbmdlX292ZXJsYXAoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQot
Ci0gICAgICAgIHJhbmdlc2V0LmFkZCgwLCAyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
c3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMildKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgzLCA1
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMiks
IHJhbmdlKDMsIDUpXSkKLQotICAgICAgICByYW5nZXNldC5hZGQoMSwgNSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDAsIDUpXSkKLQotICAgIGRlZiB0
ZXN0X2FkZF9yYW5nZV9vdmVybGFwXzIoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VT
ZXQoKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgyLCA0KQotICAgICAgICByYW5nZXNldC5hZGQo
NiwgOCkKLSAgICAgICAgcmFuZ2VzZXQuYWRkKDEwLCAxMikKLSAgICAgICAgcmFuZ2VzZXQuYWRk
KDE2LCAxOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGxpc3QocmFu
Z2VzZXQpLCBbcmFuZ2UoMiwgNCksIHJhbmdlKDYsIDgpLCByYW5nZSgxMCwgMTIpLCByYW5nZSgx
NiwgMTgpXQotICAgICAgICApCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDEsIDE1KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMSwgMTUpLCByYW5nZSgx
NiwgMTgpXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9yYW5nZV9yZXZlcnNlKHNlbGYpOgotICAgICAg
ICByYW5nZXNldCA9IFJhbmdlU2V0KCkKLQotICAgICAgICByYW5nZXNldC5hZGQoNiwgOCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDYsIDgpXSkKLQot
ICAgICAgICByYW5nZXNldC5hZGQoMywgNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0
KHJhbmdlc2V0KSwgW3JhbmdlKDMsIDUpLCByYW5nZSg2LCA4KV0pCi0KLSAgICAgICAgcmFuZ2Vz
ZXQuYWRkKDAsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFty
YW5nZSgwLCAyKSwgcmFuZ2UoMywgNSksIHJhbmdlKDYsIDgpXSkKLQotICAgIGRlZiB0ZXN0X2Fk
ZF9yYW5nZV91bm9yZGVyZWRfY29udGlndW91cyhzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBS
YW5nZVNldCgpCi0KLSAgICAgICAgcmFuZ2VzZXQuYWRkKDAsIDIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAyKV0pCi0KLSAgICAgICAgcmFuZ2Vz
ZXQuYWRkKDQsIDYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZXNldCksIFty
YW5nZSgwLCAyKSwgcmFuZ2UoNCwgNildKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgyLCA0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgNildKQot
Ci0gICAgZGVmIHRlc3RfYWRkX3JhbmdlX3Vub3JkZXJlZF9zcGFyc2Uoc2VsZik6Ci0gICAgICAg
IHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotCi0gICAgICAgIHJhbmdlc2V0LmFkZCgwLCAyKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMildKQotCi0g
ICAgICAgIHJhbmdlc2V0LmFkZCg2LCA4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qo
cmFuZ2VzZXQpLCBbcmFuZ2UoMCwgMiksIHJhbmdlKDYsIDgpXSkKLQotICAgICAgICByYW5nZXNl
dC5hZGQoMywgNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jh
bmdlKDAsIDIpLCByYW5nZSgzLCA1KSwgcmFuZ2UoNiwgOCldKQotCi0gICAgZGVmIHRlc3Rfc3Vi
dHJhY3Qoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotICAgICAgICByYW5n
ZXNldC5hZGQoMCwgMTApCi0gICAgICAgIHJhbmdlc2V0LmFkZCgyMCwgMzApCi0KLSAgICAgICAg
cmFuZ2VzZXQuc3VidHJhY3QoMCwgMykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJh
bmdlc2V0KSwgW3JhbmdlKDMsIDEwKSwgcmFuZ2UoMjAsIDMwKV0pCi0KLSAgICBkZWYgdGVzdF9z
dWJ0cmFjdF9ub19jaGFuZ2Uoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQot
ICAgICAgICByYW5nZXNldC5hZGQoNSwgMTApCi0gICAgICAgIHJhbmdlc2V0LmFkZCgxNSwgMjAp
Ci0gICAgICAgIHJhbmdlc2V0LmFkZCgyNSwgMzApCi0KLSAgICAgICAgcmFuZ2VzZXQuc3VidHJh
Y3QoMCwgNSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3Jhbmdl
KDUsIDEwKSwgcmFuZ2UoMTUsIDIwKSwgcmFuZ2UoMjUsIDMwKV0pCi0KLSAgICAgICAgcmFuZ2Vz
ZXQuc3VidHJhY3QoMTAsIDE1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2Vz
ZXQpLCBbcmFuZ2UoNSwgMTApLCByYW5nZSgxNSwgMjApLCByYW5nZSgyNSwgMzApXSkKLQotICAg
IGRlZiB0ZXN0X3N1YnRyYWN0X292ZXJsYXAoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFu
Z2VTZXQoKQotICAgICAgICByYW5nZXNldC5hZGQoMSwgNCkKLSAgICAgICAgcmFuZ2VzZXQuYWRk
KDYsIDgpCi0gICAgICAgIHJhbmdlc2V0LmFkZCgxMCwgMjApCi0gICAgICAgIHJhbmdlc2V0LmFk
ZCgzMCwgNDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBsaXN0KHJh
bmdlc2V0KSwgW3JhbmdlKDEsIDQpLCByYW5nZSg2LCA4KSwgcmFuZ2UoMTAsIDIwKSwgcmFuZ2Uo
MzAsIDQwKV0KLSAgICAgICAgKQotCi0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDAsIDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBsaXN0KHJhbmdlc2V0KSwgW3Jh
bmdlKDIsIDQpLCByYW5nZSg2LCA4KSwgcmFuZ2UoMTAsIDIwKSwgcmFuZ2UoMzAsIDQwKV0KLSAg
ICAgICAgKQotCi0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDMsIDExKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxpc3QocmFuZ2VzZXQpLCBbcmFuZ2UoMiwgMyksIHJhbmdlKDExLCAyMCks
IHJhbmdlKDMwLCA0MCldKQotCi0gICAgZGVmIHRlc3Rfc3VidHJhY3Rfc3BsaXQoc2VsZik6Ci0g
ICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoKQotICAgICAgICByYW5nZXNldC5hZGQoMCwgMTAp
Ci0gICAgICAgIHJhbmdlc2V0LnN1YnRyYWN0KDIsIDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobGlzdChyYW5nZXNldCksIFtyYW5nZSgwLCAyKSwgcmFuZ2UoNSwgMTApXSkKLQotICAgIGRl
ZiB0ZXN0X2Jvb2woc2VsZik6Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1w
bGVtZW50ZWRFcnJvcik6Ci0gICAgICAgICAgICBib29sKFJhbmdlU2V0KCkpCi0KLSAgICBkZWYg
dGVzdF9jb250YWlucyhzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoMCBpbiByYW5nZXNldCkKLQotICAgICAgICByYW5nZXNldCA9
IFJhbmdlU2V0KFtyYW5nZSgwLCAxKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgwIGluIHJh
bmdlc2V0KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKDEgaW4gcmFuZ2VzZXQpCi0KLSAgICAg
ICAgcmFuZ2VzZXQgPSBSYW5nZVNldChbcmFuZ2UoMCwgMSksIHJhbmdlKDMsIDYpXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKDAgaW4gcmFuZ2VzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoMSBpbiByYW5nZXNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgyIGluIHJhbmdlc2V0
KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoMyBpbiByYW5nZXNldCkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKDQgaW4gcmFuZ2VzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSg1IGluIHJh
bmdlc2V0KQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKDYgaW4gcmFuZ2VzZXQpCi0KLSAgICBk
ZWYgdGVzdF9lcShzZWxmKToKLSAgICAgICAgcjAgPSBSYW5nZVNldChbcmFuZ2UoMCwgMSldKQot
ICAgICAgICByMSA9IFJhbmdlU2V0KFtyYW5nZSgxLCAyKSwgcmFuZ2UoMywgNCldKQotICAgICAg
ICByMiA9IFJhbmdlU2V0KFtyYW5nZSgzLCA0KSwgcmFuZ2UoMSwgMildKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyMCA9PSByMCkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyMCA9PSBy
MSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyMCA9PSAwKQotCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyMSA9PSByMSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyMSA9PSByMCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHIxID09IHIyKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KHIxID09IDApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIyID09IHIyKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUocjIgPT0gcjEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocjIgPT0g
cjApCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocjIgPT0gMCkKLQotICAgIGRlZiB0ZXN0X2xl
bihzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNldCgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGVuKHJhbmdlc2V0KSwgMCkKLQotICAgICAgICByYW5nZXNldCA9IFJhbmdlU2V0
KFtyYW5nZSgwLCAxKV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJhbmdlc2V0KSwg
MSkKLQotICAgIGRlZiB0ZXN0X3BvcChzZWxmKToKLSAgICAgICAgcmFuZ2VzZXQgPSBSYW5nZVNl
dChbcmFuZ2UoMSwgMiksIHJhbmdlKDMsIDQpXSkKLSAgICAgICAgciA9IHJhbmdlc2V0LnNoaWZ0
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyLCByYW5nZSgxLCAyKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsaXN0KHJhbmdlc2V0KSwgW3JhbmdlKDMsIDQpXSkKLQotICAgIGRlZiB0
ZXN0X3JlcHIoc2VsZik6Ci0gICAgICAgIHJhbmdlc2V0ID0gUmFuZ2VTZXQoW3JhbmdlKDEsIDIp
LCByYW5nZSgzLCA0KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihyYW5nZXNldCks
ICJSYW5nZVNldChbcmFuZ2UoMSwgMiksIHJhbmdlKDMsIDQpXSkiKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmVjb3ZlcnkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVz
dF9yZWNvdmVyeS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzMxM2Y4ZmM4YTRj
NDBmYjY0MzExNDRiOGMwZmJiZGI3YTgwYmE1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9yZWNvdmVyeS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDIyNyArMCwwIEBACi1pbXBvcnQgbWF0aAotZnJvbSB1bml0dGVz
dCBpbXBvcnQgVGVzdENhc2UKLQotZnJvbSBhaW9xdWljIGltcG9ydCB0bHMKLWZyb20gYWlvcXVp
Yy5xdWljLnBhY2tldCBpbXBvcnQgUEFDS0VUX1RZUEVfSU5JVElBTCwgUEFDS0VUX1RZUEVfT05F
X1JUVAotZnJvbSBhaW9xdWljLnF1aWMucGFja2V0X2J1aWxkZXIgaW1wb3J0IFF1aWNTZW50UGFj
a2V0Ci1mcm9tIGFpb3F1aWMucXVpYy5yYW5nZXNldCBpbXBvcnQgUmFuZ2VTZXQKLWZyb20gYWlv
cXVpYy5xdWljLnJlY292ZXJ5IGltcG9ydCAoCi0gICAgUXVpY1BhY2tldFBhY2VyLAotICAgIFF1
aWNQYWNrZXRSZWNvdmVyeSwKLSAgICBRdWljUGFja2V0U3BhY2UsCi0gICAgUXVpY1J0dE1vbml0
b3IsCi0pCi0KLQotZGVmIHNlbmRfcHJvYmUoKToKLSAgICBwYXNzCi0KLQotY2xhc3MgUXVpY1Bh
Y2tldFBhY2VyVGVzdChUZXN0Q2FzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz
ZWxmLnBhY2VyID0gUXVpY1BhY2tldFBhY2VyKCkKLQotICAgIGRlZiB0ZXN0X25vX21lYXN1cmVt
ZW50KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZWxmLnBhY2VyLm5leHRfc2Vu
ZF90aW1lKG5vdz0wLjApKQotICAgICAgICBzZWxmLnBhY2VyLnVwZGF0ZV9hZnRlcl9zZW5kKG5v
dz0wLjApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5wYWNlci5uZXh0X3NlbmRf
dGltZShub3c9MC4wKSkKLSAgICAgICAgc2VsZi5wYWNlci51cGRhdGVfYWZ0ZXJfc2VuZChub3c9
MC4wKQotCi0gICAgZGVmIHRlc3Rfd2l0aF9tZWFzdXJlbWVudChzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUoc2VsZi5wYWNlci5uZXh0X3NlbmRfdGltZShub3c9MC4wKSkKLSAgICAg
ICAgc2VsZi5wYWNlci51cGRhdGVfYWZ0ZXJfc2VuZChub3c9MC4wKQotCi0gICAgICAgIHNlbGYu
cGFjZXIudXBkYXRlX3JhdGUoY29uZ2VzdGlvbl93aW5kb3c9MTI4MDAwMCwgc21vb3RoZWRfcnR0
PTAuMDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wYWNlci5idWNrZXRfbWF4LCAw
LjAwMDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wYWNlci5idWNrZXRfdGltZSwg
MC4wKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucGFjZXIucGFja2V0X3RpbWUsIDAu
MDAwMDUpCi0KLSAgICAgICAgIyAxNiBwYWNrZXRzCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDE2
KToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYucGFjZXIubmV4dF9zZW5kX3Rp
bWUobm93PTEuMCkpCi0gICAgICAgICAgICBzZWxmLnBhY2VyLnVwZGF0ZV9hZnRlcl9zZW5kKG5v
dz0xLjApCi0gICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoc2VsZi5wYWNlci5uZXh0X3Nl
bmRfdGltZShub3c9MS4wKSwgMS4wMDAwNSkKLQotICAgICAgICAjIDIgcGFja2V0cwotICAgICAg
ICBmb3IgaSBpbiByYW5nZSgyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYu
cGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTEuMDAwMDUpKQotICAgICAgICAgICAgc2VsZi5wYWNl
ci51cGRhdGVfYWZ0ZXJfc2VuZChub3c9MS4wMDAwNSkKLSAgICAgICAgc2VsZi5hc3NlcnRBbG1v
c3RFcXVhbChzZWxmLnBhY2VyLm5leHRfc2VuZF90aW1lKG5vdz0xLjAwMDA1KSwgMS4wMDAxKQot
Ci0gICAgICAgICMgMSBwYWNrZXQKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5wYWNl
ci5uZXh0X3NlbmRfdGltZShub3c9MS4wMDAxKSkKLSAgICAgICAgc2VsZi5wYWNlci51cGRhdGVf
YWZ0ZXJfc2VuZChub3c9MS4wMDAxKQotICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHNl
bGYucGFjZXIubmV4dF9zZW5kX3RpbWUobm93PTEuMDAwMSksIDEuMDAwMTUpCi0KLSAgICAgICAg
IyAyIHBhY2tldHMKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMik6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydElzTm9uZShzZWxmLnBhY2VyLm5leHRfc2VuZF90aW1lKG5vdz0xLjAwMDE1KSkKLSAg
ICAgICAgICAgIHNlbGYucGFjZXIudXBkYXRlX2FmdGVyX3NlbmQobm93PTEuMDAwMTUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoc2VsZi5wYWNlci5uZXh0X3NlbmRfdGltZShub3c9
MS4wMDAxNSksIDEuMDAwMikKLQotCi1jbGFzcyBRdWljUGFja2V0UmVjb3ZlcnlUZXN0KFRlc3RD
YXNlKToKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuSU5JVElBTF9TUEFDRSA9
IFF1aWNQYWNrZXRTcGFjZSgpCi0gICAgICAgIHNlbGYuSEFORFNIQUtFX1NQQUNFID0gUXVpY1Bh
Y2tldFNwYWNlKCkKLSAgICAgICAgc2VsZi5PTkVfUlRUX1NQQUNFID0gUXVpY1BhY2tldFNwYWNl
KCkKLQotICAgICAgICBzZWxmLnJlY292ZXJ5ID0gUXVpY1BhY2tldFJlY292ZXJ5KAotICAgICAg
ICAgICAgaXNfY2xpZW50X3dpdGhvdXRfMXJ0dD1GYWxzZSwgc2VuZF9wcm9iZT1zZW5kX3Byb2Jl
Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5yZWNvdmVyeS5zcGFjZXMgPSBbCi0gICAgICAgICAg
ICBzZWxmLklOSVRJQUxfU1BBQ0UsCi0gICAgICAgICAgICBzZWxmLkhBTkRTSEFLRV9TUEFDRSwK
LSAgICAgICAgICAgIHNlbGYuT05FX1JUVF9TUEFDRSwKLSAgICAgICAgXQotCi0gICAgZGVmIHRl
c3RfZGlzY2FyZF9zcGFjZShzZWxmKToKLSAgICAgICAgc2VsZi5yZWNvdmVyeS5kaXNjYXJkX3Nw
YWNlKHNlbGYuSU5JVElBTF9TUEFDRSkKLQotICAgIGRlZiB0ZXN0X29uX2Fja19yZWNlaXZlZF9h
Y2tfZWxpY2l0aW5nKHNlbGYpOgotICAgICAgICBwYWNrZXQgPSBRdWljU2VudFBhY2tldCgKLSAg
ICAgICAgICAgIGVwb2NoPXRscy5FcG9jaC5PTkVfUlRULAotICAgICAgICAgICAgaW5fZmxpZ2h0
PVRydWUsCi0gICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAgICBp
c19jcnlwdG9fcGFja2V0PUZhbHNlLAotICAgICAgICAgICAgcGFja2V0X251bWJlcj0wLAotICAg
ICAgICAgICAgcGFja2V0X3R5cGU9UEFDS0VUX1RZUEVfT05FX1JUVCwKLSAgICAgICAgICAgIHNl
bnRfYnl0ZXM9MTI4MCwKLSAgICAgICAgICAgIHNlbnRfdGltZT0wLjAsCi0gICAgICAgICkKLSAg
ICAgICAgc3BhY2UgPSBzZWxmLk9ORV9SVFRfU1BBQ0UKLQotICAgICAgICAjIMKgcGFja2V0IHNl
bnQKLSAgICAgICAgc2VsZi5yZWNvdmVyeS5vbl9wYWNrZXRfc2VudChwYWNrZXQsIHNwYWNlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucmVjb3ZlcnkuYnl0ZXNfaW5fZmxpZ2h0LCAx
MjgwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNwYWNlLmFja19lbGljaXRpbmdfaW5fZmxp
Z2h0LCAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzcGFjZS5zZW50X3BhY2tldHMp
LCAxKQotCi0gICAgICAgICMgcGFja2V0IGFjaydkCi0gICAgICAgIHNlbGYucmVjb3Zlcnkub25f
YWNrX3JlY2VpdmVkKAotICAgICAgICAgICAgc3BhY2UsIGFja19yYW5nZXNldD1SYW5nZVNldChb
cmFuZ2UoMCwgMSldKSwgYWNrX2RlbGF5PTAuMCwgbm93PTEwLjAKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucmVjb3ZlcnkuYnl0ZXNfaW5fZmxpZ2h0LCAwKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHNwYWNlLmFja19lbGljaXRpbmdfaW5fZmxpZ2h0LCAwKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzcGFjZS5zZW50X3BhY2tldHMpLCAwKQotCi0g
ICAgICAgICMgY2hlY2sgUlRUCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnJlY292ZXJ5
Ll9ydHRfaW5pdGlhbGl6ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVy
eS5fcnR0X2xhdGVzdCwgMTAuMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnJlY292
ZXJ5Ll9ydHRfbWluLCAxMC4wKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucmVjb3Zl
cnkuX3J0dF9zbW9vdGhlZCwgMTAuMCkKLQotICAgIGRlZiB0ZXN0X29uX2Fja19yZWNlaXZlZF9u
b25fYWNrX2VsaWNpdGluZyhzZWxmKToKLSAgICAgICAgcGFja2V0ID0gUXVpY1NlbnRQYWNrZXQo
Ci0gICAgICAgICAgICBlcG9jaD10bHMuRXBvY2guT05FX1JUVCwKLSAgICAgICAgICAgIGluX2Zs
aWdodD1UcnVlLAotICAgICAgICAgICAgaXNfYWNrX2VsaWNpdGluZz1GYWxzZSwKLSAgICAgICAg
ICAgIGlzX2NyeXB0b19wYWNrZXQ9RmFsc2UsCi0gICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAs
Ci0gICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9PTkVfUlRULAotICAgICAgICAg
ICAgc2VudF9ieXRlcz0xMjgwLAotICAgICAgICAgICAgc2VudF90aW1lPTEyMy40NSwKLSAgICAg
ICAgKQotICAgICAgICBzcGFjZSA9IHNlbGYuT05FX1JUVF9TUEFDRQotCi0gICAgICAgICMgwqBw
YWNrZXQgc2VudAotICAgICAgICBzZWxmLnJlY292ZXJ5Lm9uX3BhY2tldF9zZW50KHBhY2tldCwg
c3BhY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVyeS5ieXRlc19pbl9m
bGlnaHQsIDEyODApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BhY2UuYWNrX2VsaWNpdGlu
Z19pbl9mbGlnaHQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNwYWNlLnNlbnRf
cGFja2V0cyksIDEpCi0KLSAgICAgICAgIyBwYWNrZXQgYWNrJ2QKLSAgICAgICAgc2VsZi5yZWNv
dmVyeS5vbl9hY2tfcmVjZWl2ZWQoCi0gICAgICAgICAgICBzcGFjZSwgYWNrX3Jhbmdlc2V0PVJh
bmdlU2V0KFtyYW5nZSgwLCAxKV0pLCBhY2tfZGVsYXk9MC4wLCBub3c9MTAuMAotICAgICAgICAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5yZWNvdmVyeS5ieXRlc19pbl9mbGlnaHQs
IDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BhY2UuYWNrX2VsaWNpdGluZ19pbl9mbGln
aHQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNwYWNlLnNlbnRfcGFja2V0cyks
IDApCi0KLSAgICAgICAgIyBjaGVjayBSVFQKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxm
LnJlY292ZXJ5Ll9ydHRfaW5pdGlhbGl6ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5yZWNvdmVyeS5fcnR0X2xhdGVzdCwgMC4wKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYucmVjb3ZlcnkuX3J0dF9taW4sIG1hdGguaW5mKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYucmVjb3ZlcnkuX3J0dF9zbW9vdGhlZCwgMC4wKQotCi0gICAgZGVmIHRlc3Rfb25fcGFj
a2V0X2xvc3RfY3J5cHRvKHNlbGYpOgotICAgICAgICBwYWNrZXQgPSBRdWljU2VudFBhY2tldCgK
LSAgICAgICAgICAgIGVwb2NoPXRscy5FcG9jaC5JTklUSUFMLAotICAgICAgICAgICAgaW5fZmxp
Z2h0PVRydWUsCi0gICAgICAgICAgICBpc19hY2tfZWxpY2l0aW5nPVRydWUsCi0gICAgICAgICAg
ICBpc19jcnlwdG9fcGFja2V0PVRydWUsCi0gICAgICAgICAgICBwYWNrZXRfbnVtYmVyPTAsCi0g
ICAgICAgICAgICBwYWNrZXRfdHlwZT1QQUNLRVRfVFlQRV9JTklUSUFMLAotICAgICAgICAgICAg
c2VudF9ieXRlcz0xMjgwLAotICAgICAgICAgICAgc2VudF90aW1lPTAuMCwKLSAgICAgICAgKQot
ICAgICAgICBzcGFjZSA9IHNlbGYuSU5JVElBTF9TUEFDRQotCi0gICAgICAgIHNlbGYucmVjb3Zl
cnkub25fcGFja2V0X3NlbnQocGFja2V0LCBzcGFjZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnJlY292ZXJ5LmJ5dGVzX2luX2ZsaWdodCwgMTI4MCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzcGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCwgMSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oc3BhY2Uuc2VudF9wYWNrZXRzKSwgMSkKLQotICAgICAgICBzZWxmLnJl
Y292ZXJ5Ll9kZXRlY3RfbG9zcyhzcGFjZSwgbm93PTEuMCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLnJlY292ZXJ5LmJ5dGVzX2luX2ZsaWdodCwgMCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzcGFjZS5hY2tfZWxpY2l0aW5nX2luX2ZsaWdodCwgMCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oc3BhY2Uuc2VudF9wYWNrZXRzKSwgMCkKLQotCi1jbGFzcyBRdWljUnR0
TW9uaXRvclRlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X21vbml0b3Ioc2VsZik6Ci0gICAg
ICAgIG1vbml0b3IgPSBRdWljUnR0TW9uaXRvcigpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5nKHJ0dD0xMCwgbm93PTEwMDApKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX3NhbXBsZXMsIFsxMCwgMC4wLCAwLjAsIDAuMCwgMC4w
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLl9yZWFkeSkKLQotICAgICAgICAj
IG5vdCB0YWtlbiBpbnRvIGFjY291bnQKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9y
LmlzX3J0dF9pbmNyZWFzaW5nKHJ0dD0xMSwgbm93PTEwMDApKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG1vbml0b3IuX3NhbXBsZXMsIFsxMCwgMC4wLCAwLjAsIDAuMCwgMC4wXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLl9yZWFkeSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKG1vbml0b3IuaXNfcnR0X2luY3JlYXNpbmcocnR0PTExLCBub3c9MTAwMSkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9uaXRvci5fc2FtcGxlcywgWzEwLCAxMSwgMC4wLCAwLjAs
IDAuMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5fcmVhZHkpCi0KLSAgICAg
ICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5nKHJ0dD0xMiwgbm93
PTEwMDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX3NhbXBsZXMsIFsxMCwg
MTEsIDEyLCAwLjAsIDAuMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5fcmVh
ZHkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5n
KHJ0dD0xMywgbm93PTEwMDMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX3Nh
bXBsZXMsIFsxMCwgMTEsIDEyLCAxMywgMC4wXSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSht
b25pdG9yLl9yZWFkeSkKLQotICAgICAgICAjIHdlIG5vdyBoYXZlIGVub3VnaCBzYW1wbGVzCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9MTQs
IG5vdz0xMDA0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9zYW1wbGVzLCBb
MTAsIDExLCAxMiwgMTMsIDE0XSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vbml0b3IuX3Jl
YWR5KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2lu
ZyhydHQ9MjAsIG5vdz0xMDA1KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9p
bmNyZWFzZXMsIDApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9p
bmNyZWFzaW5nKHJ0dD0zMCwgbm93PTEwMDYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1v
bml0b3IuX2luY3JlYXNlcywgMCkKLQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vbml0b3Iu
aXNfcnR0X2luY3JlYXNpbmcocnR0PTQwLCBub3c9MTAwNykpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobW9uaXRvci5faW5jcmVhc2VzLCAwKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
bW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9NTAsIG5vdz0xMDA4KSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtb25pdG9yLl9pbmNyZWFzZXMsIDApCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5nKHJ0dD02MCwgbm93PTEwMDkpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX2luY3JlYXNlcywgMSkKLQotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKG1vbml0b3IuaXNfcnR0X2luY3JlYXNpbmcocnR0PTcwLCBub3c9MTAx
MCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9uaXRvci5faW5jcmVhc2VzLCAyKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9uaXRvci5pc19ydHRfaW5jcmVhc2luZyhydHQ9ODAs
IG5vdz0xMDExKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb25pdG9yLl9pbmNyZWFzZXMs
IDMpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb25pdG9yLmlzX3J0dF9pbmNyZWFzaW5n
KHJ0dD05MCwgbm93PTEwMTIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vbml0b3IuX2lu
Y3JlYXNlcywgNCkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobW9uaXRvci5pc19ydHRfaW5j
cmVhc2luZyhydHQ9MTAwLCBub3c9MTAxMykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9u
aXRvci5faW5jcmVhc2VzLCA1KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3Rf
cmV0cnkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9yZXRyeS5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzc2ZjAyM2JmOTNkYTRjNjllYjlhYWQzZTE5NjhiZmFmZjM3YTM0
YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvdGVzdHMvdGVzdF9yZXRyeS5weQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAK
LWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlvcXVpYy5xdWljLnJldHJ5
IGltcG9ydCBRdWljUmV0cnlUb2tlbkhhbmRsZXIKLQotCi1jbGFzcyBRdWljUmV0cnlUb2tlbkhh
bmRsZXJUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9yZXRyeV90b2tlbihzZWxmKToKLSAg
ICAgICAgYWRkciA9ICgiMTI3LjAuMC4xIiwgMTIzNCkKLSAgICAgICAgY2lkID0gYiJceDA4XHgw
N1x4MDZcMDVceDA0XHgwM1x4MDJceDAxIgotCi0gICAgICAgIGhhbmRsZXIgPSBRdWljUmV0cnlU
b2tlbkhhbmRsZXIoKQotCi0gICAgICAgICMgY3JlYXRlIHRva2VuCi0gICAgICAgIHRva2VuID0g
aGFuZGxlci5jcmVhdGVfdG9rZW4oYWRkciwgY2lkKQotICAgICAgICBzZWxmLmFzc2VydElzTm90
Tm9uZSh0b2tlbikKLQotICAgICAgICAjIHZhbGlkYXRlIHRva2VuIC0gb2sKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChoYW5kbGVyLnZhbGlkYXRlX3Rva2VuKGFkZHIsIHRva2VuKSwgY2lkKQot
Ci0gICAgICAgICMgdmFsaWRhdGUgdG9rZW4gLSBlbXB0eQotICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgaGFuZGxlci52YWxpZGF0
ZV90b2tlbihhZGRyLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBzdHIoY20uZXhjZXB0aW9uKSwgIkNpcGhlcnRleHQgbGVuZ3RoIG11c3QgYmUgZXF1YWwgdG8g
a2V5IHNpemUuIgotICAgICAgICApCi0KLSAgICAgICAgIyB2YWxpZGF0ZSB0b2tlbiAtIHdyb25n
IGFkZHJlc3MKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBj
bToKLSAgICAgICAgICAgIGhhbmRsZXIudmFsaWRhdGVfdG9rZW4oKCIxLjIuMy40IiwgMTIzNDUp
LCB0b2tlbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoY20uZXhjZXB0aW9uKSwgIlJl
bW90ZSBhZGRyZXNzIGRvZXMgbm90IG1hdGNoLiIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvdGVzdF9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9zdHJlYW0ucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1MzdhZTJlZDEyYjZmNmMwNDJkMDk5MDRl
Y2ZiNGYwYzJkZjU3ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNDQ2ICswLDAgQEAKLWZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCi0KLWZyb20gYWlv
cXVpYy5xdWljLmV2ZW50cyBpbXBvcnQgU3RyZWFtRGF0YVJlY2VpdmVkCi1mcm9tIGFpb3F1aWMu
cXVpYy5wYWNrZXQgaW1wb3J0IFF1aWNTdHJlYW1GcmFtZQotZnJvbSBhaW9xdWljLnF1aWMucGFj
a2V0X2J1aWxkZXIgaW1wb3J0IFF1aWNEZWxpdmVyeVN0YXRlCi1mcm9tIGFpb3F1aWMucXVpYy5z
dHJlYW0gaW1wb3J0IFF1aWNTdHJlYW0KLQotCi1jbGFzcyBRdWljU3RyZWFtVGVzdChUZXN0Q2Fz
ZSk6Ci0gICAgZGVmIHRlc3RfcmVjdl9lbXB0eShzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVp
Y1N0cmVhbShzdHJlYW1faWQ9MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcyhzdHJl
YW0uX3JlY3ZfYnVmZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3Ry
ZWFtLl9yZWN2X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5f
cmVjdl9idWZmZXJfc3RhcnQsIDApCi0KLSAgICAgICAgIyBlbXB0eQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD0wLCBkYXRh
PWIiIikpLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKHN0cmVhbS5fcmVj
dl9idWZmZXIpLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3Jl
Y3ZfcmFuZ2VzKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1
ZmZlcl9zdGFydCwgMCkKLQotICAgIGRlZiB0ZXN0X3JlY3Zfb3JkZXJlZChzZWxmKToKLSAgICAg
ICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJlYW1faWQ9MCkKLQotICAgICAgICAjIGFkZCBkYXRh
IGF0IHN0YXJ0Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0u
YWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3IikpLAot
ICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2NyIsIGVuZF9zdHJl
YW09RmFsc2UsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgOCkKLQotICAgICAgICAjIGFkZCBtb3Jl
IGRhdGEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5hZGRf
ZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD04LCBkYXRhPWIiODkwMTIzNDUiKSksCi0gICAg
ICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIjg5MDEyMzQ1IiwgZW5kX3N0cmVhbT1G
YWxzZSwgc3RyZWFtX2lkPTApLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ynl0ZXMoc3RyZWFtLl9yZWN2X2J1ZmZlciksIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdHJlYW0uX3JlY3ZfYnVmZmVyX3N0YXJ0LCAxNikKLQotICAgICAgICAjIGFkZCBkYXRhIGFu
ZCBmaW4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5hZGRf
ZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD0xNiwgZGF0YT1iIjY3ODkwMTIzIiwgZmluPVRy
dWUpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChkYXRhPWIiNjc4OTAxMjMiLCBl
bmRfc3RyZWFtPVRydWUsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgMjQpCi0KLSAgICBkZWYgdGVz
dF9yZWN2X3Vub3JkZXJlZChzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJl
YW1faWQ9MCkKLQotICAgICAgICAjIGFkZCBkYXRhIGF0IG9mZnNldCA4Ci0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFt
ZShvZmZzZXQ9OCwgZGF0YT1iIjg5MDEyMzQ1IikpLCBOb25lCi0gICAgICAgICkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIp
LCBiIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwODkwMTIzNDUiCi0gICAgICAgICkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBbcmFu
Z2UoOCwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uX3JlY3ZfYnVmZmVy
X3N0YXJ0LCAwKQotCi0gICAgICAgICMgYWRkIGRhdGEgYXQgb2Zmc2V0IDAKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZy
YW1lKG9mZnNldD0wLCBkYXRhPWIiMDEyMzQ1NjciKSksCi0gICAgICAgICAgICBTdHJlYW1EYXRh
UmVjZWl2ZWQoZGF0YT1iIjAxMjM0NTY3ODkwMTIzNDUiLCBlbmRfc3RyZWFtPUZhbHNlLCBzdHJl
YW1faWQ9MCksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcyhzdHJl
YW0uX3JlY3ZfYnVmZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3Ry
ZWFtLl9yZWN2X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5f
cmVjdl9idWZmZXJfc3RhcnQsIDE2KQotCi0gICAgZGVmIHRlc3RfcmVjdl9vZmZzZXRfb25seShz
ZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJlYW1faWQ9MCkKLQotICAgICAg
ICAjIGFkZCBkYXRhIGF0IG9mZnNldCAwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFt
LmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTAsIGRhdGE9YiIiKSksIE5vbmUpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnl0ZXMoc3RyZWFtLl9yZWN2X2J1ZmZlciksIGIiIikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fcmVjdl9yYW5nZXMpLCBbXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uX3JlY3ZfYnVmZmVyX3N0YXJ0LCAwKQot
Ci0gICAgICAgICMgYWRkIGRhdGEgYXQgb2Zmc2V0IDgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9OCwgZGF0YT1iIiIpKSwg
Tm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGJ5dGVzKHN0cmVh
bS5fcmVjdl9idWZmZXIpLCBiIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwIgotICAg
ICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2Vz
KSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFy
dCwgMCkKLQotICAgIGRlZiB0ZXN0X3JlY3ZfYWxyZWFkeV9mdWxseV9jb25zdW1lZChzZWxmKToK
LSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShzdHJlYW1faWQ9MCkKLQotICAgICAgICAjIGFk
ZCBkYXRhIGF0IG9mZnNldCAwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0
NTY3IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2NyIs
IGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGJ5dGVzKHN0cmVhbS5fcmVjdl9idWZmZXIpLCBiIiIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3JlY3ZfcmFuZ2VzKSwgW10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyZWFtLl9yZWN2X2J1ZmZlcl9zdGFydCwgOCkKLQotICAgICAgICAj
IGFkZCBkYXRhIGFnYWluIGF0IG9mZnNldCAwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0
YT1iIjAxMjM0NTY3IikpLCBOb25lCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChieXRlcyhzdHJlYW0uX3JlY3ZfYnVmZmVyKSwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxpc3Qoc3RyZWFtLl9yZWN2X3JhbmdlcyksIFtdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cmVhbS5fcmVjdl9idWZmZXJfc3RhcnQsIDgpCi0KLSAgICBkZWYgdGVzdF9yZWN2X2Fs
cmVhZHlfcGFydGlhbGx5X2NvbnN1bWVkKHNlbGYpOgotICAgICAgICBzdHJlYW0gPSBRdWljU3Ry
ZWFtKHN0cmVhbV9pZD0wKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0
NTY3IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2NyIs
IGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0wKSwKLSAgICAgICAgKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1G
cmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3ODkwMTIzNDUiKSksCi0gICAgICAgICAgICBT
dHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIjg5MDEyMzQ1IiwgZW5kX3N0cmVhbT1GYWxzZSwgc3Ry
ZWFtX2lkPTApLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnl0ZXMoc3Ry
ZWFtLl9yZWN2X2J1ZmZlciksIGIiIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0
cmVhbS5fcmVjdl9yYW5nZXMpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0u
X3JlY3ZfYnVmZmVyX3N0YXJ0LCAxNikKLQotICAgIGRlZiB0ZXN0X3JlY3ZfZmluKHNlbGYpOgot
ICAgICAgICBzdHJlYW0gPSBRdWljU3RyZWFtKHN0cmVhbV9pZD0wKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFt
ZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3IikpLAotICAgICAgICAgICAgU3RyZWFtRGF0YVJl
Y2VpdmVkKGRhdGE9YiIwMTIzNDU2NyIsIGVuZF9zdHJlYW09RmFsc2UsIHN0cmVhbV9pZD0wKSwK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFt
LmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zmc2V0PTgsIGRhdGE9YiI4OTAxMjM0NSIsIGZp
bj1UcnVlKSksCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIjg5MDEyMzQ1
IiwgZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLQotICAgIGRlZiB0
ZXN0X3JlY3ZfZmluX291dF9vZl9vcmRlcihzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0
cmVhbShzdHJlYW1faWQ9MCkKLQotICAgICAgICAjIGFkZCBkYXRhIGF0IG9mZnNldCA4IHdpdGgg
RklOCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2Zy
YW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9OCwgZGF0YT1iIjg5MDEyMzQ1IiwgZmluPVRydWUp
KSwKLSAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICkKLQotICAgICAgICAjIGFkZCBkYXRhIGF0
IG9mZnNldCAwCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0u
YWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9MCwgZGF0YT1iIjAxMjM0NTY3IikpLAot
ICAgICAgICAgICAgU3RyZWFtRGF0YVJlY2VpdmVkKGRhdGE9YiIwMTIzNDU2Nzg5MDEyMzQ1Iiwg
ZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0
X3JlY3ZfZmluX3RoZW5fZGF0YShzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbShz
dHJlYW1faWQ9MCkKLSAgICAgICAgc3RyZWFtLmFkZF9mcmFtZShRdWljU3RyZWFtRnJhbWUob2Zm
c2V0PTAsIGRhdGE9YiIiLCBmaW49VHJ1ZSkpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMoRXhjZXB0aW9uKSBhcyBjbToKLSAgICAgICAgICAgIHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0
cmVhbUZyYW1lKG9mZnNldD0wLCBkYXRhPWIiMDEyMzQ1NjciKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHIoY20uZXhjZXB0aW9uKSwgIkRhdGEgcmVjZWl2ZWQgYmV5b25kIEZJTiIpCi0K
LSAgICBkZWYgdGVzdF9yZWN2X2Zpbl90d2ljZShzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVp
Y1N0cmVhbShzdHJlYW1faWQ9MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD0wLCBkYXRhPWIiMDEy
MzQ1NjciKSksCi0gICAgICAgICAgICBTdHJlYW1EYXRhUmVjZWl2ZWQoZGF0YT1iIjAxMjM0NTY3
IiwgZW5kX3N0cmVhbT1GYWxzZSwgc3RyZWFtX2lkPTApLAotICAgICAgICApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1G
cmFtZShvZmZzZXQ9OCwgZGF0YT1iIjg5MDEyMzQ1IiwgZmluPVRydWUpKSwKLSAgICAgICAgICAg
IFN0cmVhbURhdGFSZWNlaXZlZChkYXRhPWIiODkwMTIzNDUiLCBlbmRfc3RyZWFtPVRydWUsIHN0
cmVhbV9pZD0wKSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICBzdHJlYW0uYWRkX2ZyYW1lKFF1aWNTdHJlYW1GcmFtZShvZmZzZXQ9OCwgZGF0YT1i
Ijg5MDEyMzQ1IiwgZmluPVRydWUpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChk
YXRhPWIiIiwgZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLQotICAg
IGRlZiB0ZXN0X3JlY3ZfZmluX3dpdGhvdXRfZGF0YShzZWxmKToKLSAgICAgICAgc3RyZWFtID0g
UXVpY1N0cmVhbShzdHJlYW1faWQ9MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgIHN0cmVhbS5hZGRfZnJhbWUoUXVpY1N0cmVhbUZyYW1lKG9mZnNldD0wLCBkYXRhPWIi
IiwgZmluPVRydWUpKSwKLSAgICAgICAgICAgIFN0cmVhbURhdGFSZWNlaXZlZChkYXRhPWIiIiwg
ZW5kX3N0cmVhbT1UcnVlLCBzdHJlYW1faWQ9MCksCi0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfZGF0YShzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDApCi0KLSAgICAgICAg
IyBub3RoaW5nIHRvIHNlbmQgeWV0Ci0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4
KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLQotICAgICAgICAjIHdyaXRlIGRh
dGEKLSAgICAgICAgc3RyZWFtLndyaXRlKGIiMDEyMzQ1Njc4OTAxMjM0NSIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgwLCAxNild
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQot
Ci0gICAgICAgICMgc2VuZCBhIGNodW5rCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFt
ZSg4KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiMDEyMzQ1NjciKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5vZmZzZXQsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJl
YW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSg4LCAxNildKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCA4KQotCi0gICAgICAgICMgc2VuZCBhbm90aGVy
IGNodW5rCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiODkwMTIzNDUiKQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmcmFtZS5vZmZzZXQs
IDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyks
IFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAx
NikKLQotICAgICAgICAjIG5vdGhpbmcgbW9yZSB0byBzZW5kCi0gICAgICAgIGZyYW1lID0gc3Ry
ZWFtLmdldF9mcmFtZSg4KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2KQotCi0gICAg
ICAgICMgZmlyc3QgY2h1bmsgZ2V0cyBhY2tub3dsZWRnZWQKLSAgICAgICAgc3RyZWFtLm9uX2Rh
dGFfZGVsaXZlcnkoUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQsIDAsIDgpCi0KLSAgICAgICAgIyBz
ZWNvbmQgY2h1bmsgZ2V0cyBhY2tub3dsZWRnZWQKLSAgICAgICAgc3RyZWFtLm9uX2RhdGFfZGVs
aXZlcnkoUXVpY0RlbGl2ZXJ5U3RhdGUuQUNLRUQsIDgsIDE2KQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9kYXRhX2FuZF9maW4oc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IFF1aWNTdHJlYW0oKQotCi0g
ICAgICAgICMgbm90aGluZyB0byBzZW5kIHlldAotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRf
ZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0KLSAgICAgICAgIyB3
cml0ZSBkYXRhIGFuZCBFT0YKLSAgICAgICAgc3RyZWFtLndyaXRlKGIiMDEyMzQ1Njc4OTAxMjM0
NSIsIGVuZF9zdHJlYW09VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVh
bS5fc2VuZF9wZW5kaW5nKSwgW3JhbmdlKDAsIDE2KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDApCi0KLSAgICAgICAgIyBzZW5kIGEgY2h1bmsK
LSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZnJhbWUuZGF0YSwgYiIwMTIzNDU2NyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLm9mZnNldCwgMCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgOCkKLQotICAg
ICAgICAjIHNlbmQgYW5vdGhlciBjaHVuawotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJh
bWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmcmFtZS5kYXRhLCBiIjg5MDEyMzQ1IikK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZyYW1lLmZpbikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5vZmZzZXQsIDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5l
eHRfc2VuZF9vZmZzZXQsIDE2KQotCi0gICAgICAgICMgbm90aGluZyBtb3JlIHRvIHNlbmQKLSAg
ICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKGZyYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zm
c2V0LCAxNikKLQotICAgIGRlZiB0ZXN0X3NlbmRfZGF0YV9sb3N0KHNlbGYpOgotICAgICAgICBz
dHJlYW0gPSBRdWljU3RyZWFtKCkKLQotICAgICAgICAjIG5vdGhpbmcgdG8gc2VuZCB5ZXQKLSAg
ICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b25lKGZyYW1lKQotCi0gICAgICAgICMgd3JpdGUgZGF0YSBhbmQgRU9GCi0gICAgICAgIHN0cmVh
bS53cml0ZShiIjAxMjM0NTY3ODkwMTIzNDUiLCBlbmRfc3RyZWFtPVRydWUpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5nZSgwLCAxNild
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQot
Ci0gICAgICAgICMgc2VuZCBhIGNodW5rCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICBzdHJlYW0uZ2V0X2ZyYW1lKDgpLCBRdWljU3RyZWFtRnJhbWUoZGF0YT1iIjAxMjM0
NTY3IiwgZmluPUZhbHNlLCBvZmZzZXQ9MCkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbcmFuZ2UoOCwgMTYpXSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgOCkKLQotICAgICAg
ICAjIHNlbmQgYW5vdGhlciBjaHVuawotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAg
ICAgICAgc3RyZWFtLmdldF9mcmFtZSg4KSwgUXVpY1N0cmVhbUZyYW1lKGRhdGE9YiI4OTAxMjM0
NSIsIGZpbj1UcnVlLCBvZmZzZXQ9OCkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYpCi0KLSAgICAgICAgIyBub3RoaW5nIG1v
cmUgdG8gc2VuZAotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzdHJlYW0uZ2V0X2ZyYW1lKDgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBb
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYp
Ci0KLSAgICAgICAgIyBhIGNodW5rIGdldHMgbG9zdAotICAgICAgICBzdHJlYW0ub25fZGF0YV9k
ZWxpdmVyeShRdWljRGVsaXZlcnlTdGF0ZS5MT1NULCAwLCA4KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbcmFuZ2UoMCwgOCldKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQotCi0gICAgICAg
ICMgc2VuZCBjaHVuayBhZ2FpbgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgc3RyZWFtLmdldF9mcmFtZSg4KSwgUXVpY1N0cmVhbUZyYW1lKGRhdGE9YiIwMTIzNDU2NyIs
IGZpbj1GYWxzZSwgb2Zmc2V0PTApCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDE2KQotCi0gICAgZGVmIHRlc3Rfc2VuZF9kYXRh
X2xvc3RfZmluKHNlbGYpOgotICAgICAgICBzdHJlYW0gPSBRdWljU3RyZWFtKCkKLQotICAgICAg
ICAjIG5vdGhpbmcgdG8gc2VuZCB5ZXQKLSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1l
KDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZyYW1lKQotCi0gICAgICAgICMgd3JpdGUg
ZGF0YSBhbmQgRU9GCi0gICAgICAgIHN0cmVhbS53cml0ZShiIjAxMjM0NTY3ODkwMTIzNDUiLCBl
bmRfc3RyZWFtPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3Nl
bmRfcGVuZGluZyksIFtyYW5nZSgwLCAxNildKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQotCi0gICAgICAgICMgc2VuZCBhIGNodW5rCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uZ2V0X2ZyYW1lKDgpLCBR
dWljU3RyZWFtRnJhbWUoZGF0YT1iIjAxMjM0NTY3IiwgZmluPUZhbHNlLCBvZmZzZXQ9MCkKLSAg
ICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRp
bmcpLCBbcmFuZ2UoOCwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4
dF9zZW5kX29mZnNldCwgOCkKLQotICAgICAgICAjIHNlbmQgYW5vdGhlciBjaHVuawotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgc3RyZWFtLmdldF9mcmFtZSg4KSwgUXVp
Y1N0cmVhbUZyYW1lKGRhdGE9YiI4OTAxMjM0NSIsIGZpbj1UcnVlLCBvZmZzZXQ9OCkKLSAgICAg
ICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcp
LCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29mZnNldCwg
MTYpCi0KLSAgICAgICAgIyBub3RoaW5nIG1vcmUgdG8gc2VuZAotICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShzdHJlYW0uZ2V0X2ZyYW1lKDgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
c3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBbXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHJlYW0ubmV4dF9zZW5kX29mZnNldCwgMTYpCi0KLSAgICAgICAgIyBhIGNodW5rIGdldHMgbG9z
dAotICAgICAgICBzdHJlYW0ub25fZGF0YV9kZWxpdmVyeShRdWljRGVsaXZlcnlTdGF0ZS5MT1NU
LCA4LCAxNikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5k
aW5nKSwgW3JhbmdlKDgsIDE2KV0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLm5l
eHRfc2VuZF9vZmZzZXQsIDgpCi0KLSAgICAgICAgIyBzZW5kIGNodW5rIGFnYWluCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBzdHJlYW0uZ2V0X2ZyYW1lKDgpLCBRdWlj
U3RyZWFtRnJhbWUoZGF0YT1iIjg5MDEyMzQ1IiwgZmluPVRydWUsIG9mZnNldD04KQotICAgICAg
ICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyks
IFtdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAx
NikKLQotICAgIGRlZiB0ZXN0X3NlbmRfYmxvY2tlZChzZWxmKToKLSAgICAgICAgc3RyZWFtID0g
UXVpY1N0cmVhbSgpCi0gICAgICAgIG1heF9vZmZzZXQgPSAxMgotCi0gICAgICAgICMgbm90aGlu
ZyB0byBzZW5kIHlldAotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCwgbWF4X29m
ZnNldCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAwKQotCi0gICAgICAgICMgd3JpdGUg
ZGF0YSwgc2VuZCBhIGNodW5rCi0gICAgICAgIHN0cmVhbS53cml0ZShiIjAxMjM0NTY3ODkwMTIz
NDUiKQotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmcmFtZS5kYXRhLCBiIjAxMjM0NTY3IikKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShmcmFtZS5maW4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCAw
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3RyZWFtLl9zZW5kX3BlbmRpbmcpLCBb
cmFuZ2UoOCwgMTYpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5k
X29mZnNldCwgOCkKLQotICAgICAgICAjIHNlbmQgaXMgbGltaXRlZCBieSBwZWVyCi0gICAgICAg
IGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zmc2V0KQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGZyYW1lLmRhdGEsIGIiODkwMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLm9mZnNldCwgOCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW3Jhbmdl
KDEyLCAxNildKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5uZXh0X3NlbmRfb2Zm
c2V0LCAxMikKLQotICAgICAgICAjIHVuYWJsZSB0byBzZW5kLCBibG9ja2VkCi0gICAgICAgIGZy
YW1lID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zmc2V0KQotICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShmcmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2Vu
ZF9wZW5kaW5nKSwgW3JhbmdlKDEyLCAxNildKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0
cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAxMikKLQotICAgICAgICAjIHdyaXRlIG1vcmUgZGF0YSwg
c3RpbGwgYmxvY2tlZAotICAgICAgICBzdHJlYW0ud3JpdGUoYiJhYmNkZWZnaCIpCi0gICAgICAg
IGZyYW1lID0gc3RyZWFtLmdldF9mcmFtZSg4LCBtYXhfb2Zmc2V0KQotICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShmcmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN0cmVhbS5f
c2VuZF9wZW5kaW5nKSwgW3JhbmdlKDEyLCAyNCldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cmVhbS5uZXh0X3NlbmRfb2Zmc2V0LCAxMikKLQotICAgICAgICAjIHBlZXIgcmFpc2VzIGxp
bWl0LCBzZW5kIHNvbWUgZGF0YQotICAgICAgICBtYXhfb2Zmc2V0ICs9IDgKLSAgICAgICAgZnJh
bWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgsIG1heF9vZmZzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZnJhbWUuZGF0YSwgYiIyMzQ1YWJjZCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZnJhbWUuZmluKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyYW1lLm9mZnNldCwgMTIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdHJlYW0uX3NlbmRfcGVuZGluZyksIFtyYW5n
ZSgyMCwgMjQpXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ubmV4dF9zZW5kX29m
ZnNldCwgMjApCi0KLSAgICAgICAgIyBwZWVyIHJhaXNlcyBsaW1pdCBhZ2Fpbiwgc2VuZCByZW1h
aW5pbmcgZGF0YQotICAgICAgICBtYXhfb2Zmc2V0ICs9IDgKLSAgICAgICAgZnJhbWUgPSBzdHJl
YW0uZ2V0X2ZyYW1lKDgsIG1heF9vZmZzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJh
bWUuZGF0YSwgYiJlZmdoIikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmcmFtZS5maW4pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCAyMCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsaXN0KHN0cmVhbS5fc2VuZF9wZW5kaW5nKSwgW10pCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyZWFtLm5leHRfc2VuZF9vZmZzZXQsIDI0KQotCi0gICAgICAgICMgbm90
aGluZyBtb3JlIHRvIHNlbmQKLSAgICAgICAgZnJhbWUgPSBzdHJlYW0uZ2V0X2ZyYW1lKDgsIG1h
eF9vZmZzZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZyYW1lKQotCi0gICAgZGVmIHRl
c3Rfc2VuZF9maW5fb25seShzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVhbSgpCi0K
LSAgICAgICAgIyBub3RoaW5nIHRvIHNlbmQgeWV0Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShz
dHJlYW0uc2VuZF9idWZmZXJfaXNfZW1wdHkpCi0gICAgICAgIGZyYW1lID0gc3RyZWFtLmdldF9m
cmFtZSg4KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLQotICAgICAgICAjIHdy
aXRlIEVPRgotICAgICAgICBzdHJlYW0ud3JpdGUoYiIiLCBlbmRfc3RyZWFtPVRydWUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5KQotICAgICAg
ICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChm
cmFtZS5kYXRhLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcmFtZS5maW4pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCAwKQotCi0gICAgICAgICMgbm90aGlu
ZyBtb3JlIHRvIHNlbmQKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzdHJlYW0uc2VuZF9idWZm
ZXJfaXNfZW1wdHkpICAjIEZJWE1FPwotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUo
OCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShzdHJlYW0uc2VuZF9idWZmZXJfaXNfZW1wdHkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Zp
bl9vbmx5X2Rlc3BpdGVfYmxvY2tlZChzZWxmKToKLSAgICAgICAgc3RyZWFtID0gUXVpY1N0cmVh
bSgpCi0KLSAgICAgICAgIyBub3RoaW5nIHRvIHNlbmQgeWV0Ci0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShzdHJlYW0uc2VuZF9idWZmZXJfaXNfZW1wdHkpCi0gICAgICAgIGZyYW1lID0gc3RyZWFt
LmdldF9mcmFtZSg4KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmcmFtZSkKLQotICAgICAg
ICAjIHdyaXRlIEVPRgotICAgICAgICBzdHJlYW0ud3JpdGUoYiIiLCBlbmRfc3RyZWFtPVRydWUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3RyZWFtLnNlbmRfYnVmZmVyX2lzX2VtcHR5KQot
ICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRfZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChmcmFtZS5kYXRhLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcmFtZS5maW4p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJhbWUub2Zmc2V0LCAwKQotCi0gICAgICAgICMg
bm90aGluZyBtb3JlIHRvIHNlbmQKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzdHJlYW0uc2Vu
ZF9idWZmZXJfaXNfZW1wdHkpICAjIEZJWE1FPwotICAgICAgICBmcmFtZSA9IHN0cmVhbS5nZXRf
ZnJhbWUoOCkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZnJhbWUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShzdHJlYW0uc2VuZF9idWZmZXJfaXNfZW1wdHkpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvdGVzdF90bHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF90bHMu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlOGE0NzBmNzRiMWNlNGY5OTQ1ODNh
ZTgzN2VkMGFkOTQ4MzdiNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfdGxzLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMTQwMCArMCwwIEBACi1pbXBvcnQgYmluYXNjaWkKLWltcG9ydCBkYXRldGltZQotaW1wb3J0
IHNzbAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKLWZyb20gdW5pdHRlc3QubW9jayBp
bXBvcnQgcGF0Y2gKLQotZnJvbSBjcnlwdG9ncmFwaHkuZXhjZXB0aW9ucyBpbXBvcnQgVW5zdXBw
b3J0ZWRBbGdvcml0aG0KLWZyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRpdmVzIGltcG9y
dCBzZXJpYWxpemF0aW9uCi1mcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5hc3lt
bWV0cmljIGltcG9ydCBlYwotCi1mcm9tIGFpb3F1aWMgaW1wb3J0IHRscwotZnJvbSBhaW9xdWlj
LmJ1ZmZlciBpbXBvcnQgQnVmZmVyLCBCdWZmZXJSZWFkRXJyb3IKLWZyb20gYWlvcXVpYy5xdWlj
LmNvbmZpZ3VyYXRpb24gaW1wb3J0IFF1aWNDb25maWd1cmF0aW9uCi1mcm9tIGFpb3F1aWMudGxz
IGltcG9ydCAoCi0gICAgQ2VydGlmaWNhdGUsCi0gICAgQ2VydGlmaWNhdGVWZXJpZnksCi0gICAg
Q2xpZW50SGVsbG8sCi0gICAgQ29udGV4dCwKLSAgICBFbmNyeXB0ZWRFeHRlbnNpb25zLAotICAg
IEZpbmlzaGVkLAotICAgIE5ld1Nlc3Npb25UaWNrZXQsCi0gICAgU2VydmVySGVsbG8sCi0gICAg
U3RhdGUsCi0gICAgbG9hZF9wZW1feDUwOV9jZXJ0aWZpY2F0ZXMsCi0gICAgcHVsbF9ibG9jaywK
LSAgICBwdWxsX2NlcnRpZmljYXRlLAotICAgIHB1bGxfY2VydGlmaWNhdGVfdmVyaWZ5LAotICAg
IHB1bGxfY2xpZW50X2hlbGxvLAotICAgIHB1bGxfZW5jcnlwdGVkX2V4dGVuc2lvbnMsCi0gICAg
cHVsbF9maW5pc2hlZCwKLSAgICBwdWxsX25ld19zZXNzaW9uX3RpY2tldCwKLSAgICBwdWxsX3Nl
cnZlcl9oZWxsbywKLSAgICBwdXNoX2NlcnRpZmljYXRlLAotICAgIHB1c2hfY2VydGlmaWNhdGVf
dmVyaWZ5LAotICAgIHB1c2hfY2xpZW50X2hlbGxvLAotICAgIHB1c2hfZW5jcnlwdGVkX2V4dGVu
c2lvbnMsCi0gICAgcHVzaF9maW5pc2hlZCwKLSAgICBwdXNoX25ld19zZXNzaW9uX3RpY2tldCwK
LSAgICBwdXNoX3NlcnZlcl9oZWxsbywKLSAgICB2ZXJpZnlfY2VydGlmaWNhdGUsCi0pCi0KLWZy
b20gLnV0aWxzIGltcG9ydCAoCi0gICAgU0VSVkVSX0NBQ0VSVEZJTEUsCi0gICAgU0VSVkVSX0NF
UlRGSUxFLAotICAgIFNFUlZFUl9LRVlGSUxFLAotICAgIGdlbmVyYXRlX2VjX2NlcnRpZmljYXRl
LAotICAgIGxvYWQsCi0pCi0KLUNFUlRJRklDQVRFX0RBVEEgPSBsb2FkKCJ0bHNfY2VydGlmaWNh
dGUuYmluIilbMTE6LTJdCi1DRVJUSUZJQ0FURV9WRVJJRllfU0lHTkFUVVJFID0gbG9hZCgidGxz
X2NlcnRpZmljYXRlX3ZlcmlmeS5iaW4iKVstMzg0Ol0KLQotQ0xJRU5UX1FVSUNfVFJBTlNQT1JU
X1BBUkFNRVRFUlMgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgYiJmZjAwMDAxMTAwMzEwMDA1
MDAwNDgwMTAwMDAwMDAwNjAwMDQ4MDEwMDAwMDAwMDcwMDA0ODAxMDAwMDAwMDAiCi0gICAgYiI0
MDAwNDgxMDAwMDAwMDAwMTAwMDI0MjU4MDAwODAwMDI0MDY0MDAwYTAwMDEwYSIKLSkKLQotU0VS
VkVSX1FVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMgPSBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAg
YiJmZjAwMDAxMTA0ZmYwMDAwMTEwMDQ1MDAwNTAwMDQ4MDEwMDAwMDAwMDYwMDA0ODAxMDAwMDAw
MDA3MDAwNDgiCi0gICAgYiIwMTAwMDAwMDAwNDAwMDQ4MTAwMDAwMDAwMDEwMDAyNDI1ODAwMDIw
MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAiCi0gICAgYiIwMDAwMDAwMDAwMDAwMDA4MDAwMjQwNjQw
MDBhMDAwMTBhIgotKQotCi1TRVJWRVJfUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSU18yID0gYmlu
YXNjaWkudW5oZXhsaWZ5KAotICAgIGIiMDA1NzAwMDYwMDA0ODAwMGZmZmYwMDA1MDAwNDgwMDBm
ZmZmMDAwMjAwMTBjNWFjNDEwZmJkZDRmZTZlMmMxIgotICAgIGIiNDIyNzlmMjMxZThlMDAwMGEw
MDAxMDMwMDA0MDAwNDgwMDVmZmZhMDAwYjAwMDExOTAwMDEwMDAyNjcxMGZmIgotICAgIGIiNDIw
MDBjNWMwNjdmMjdlMzkzMjFjNjNlMjhlN2M5MDAwMzAwMDI0N2U0MDAwODAwMDEwNiIKLSkKLQot
U0VSVkVSX1FVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlNfMyA9IGJpbmFzY2lpLnVuaGV4bGlmeSgK
LSAgICBiIjAwNTQwMDAyMDAxMDBkY2I1MGE0NDI1MTMyOTViNDY3OWJhZjA0Y2I1ZWZmZmY4YTAw
MDljOGFmZTcyYTYzOTciCi0gICAgYiIyNTU0MDcwMDA2MDAwNDgwMDBmZmZmMDAwODAwMDEwNjAw
MDQwMDA0ODAwNWZmZmEwMDA1MDAwNDgwMDBmZmZmIgotICAgIGIiMDAwMzAwMDI0N2U0MDAwYTAw
MDEwMzAwMDEwMDAyNjcxMDAwMGIwMDAxMTkiCi0pCi0KLQotY2xhc3MgQnVmZmVyVGVzdChUZXN0
Q2FzZSk6Ci0gICAgZGVmIHRlc3RfcHVsbF9ibG9ja190cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAg
IGJ1ZiA9IEJ1ZmZlcihjYXBhY2l0eT0wKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
KEJ1ZmZlclJlYWRFcnJvcik6Ci0gICAgICAgICAgICB3aXRoIHB1bGxfYmxvY2soYnVmLCAxKToK
LSAgICAgICAgICAgICAgICBwYXNzCi0KLQotZGVmIGNyZWF0ZV9idWZmZXJzKCk6Ci0gICAgcmV0
dXJuIHsKLSAgICAgICAgdGxzLkVwb2NoLklOSVRJQUw6IEJ1ZmZlcihjYXBhY2l0eT00MDk2KSwK
LSAgICAgICAgdGxzLkVwb2NoLkhBTkRTSEFLRTogQnVmZmVyKGNhcGFjaXR5PTQwOTYpLAotICAg
ICAgICB0bHMuRXBvY2guT05FX1JUVDogQnVmZmVyKGNhcGFjaXR5PTQwOTYpLAotICAgIH0KLQot
Ci1kZWYgbWVyZ2VfYnVmZmVycyhidWZmZXJzKToKLSAgICByZXR1cm4gYiIiLmpvaW4oeC5kYXRh
IGZvciB4IGluIGJ1ZmZlcnMudmFsdWVzKCkpCi0KLQotZGVmIHJlc2V0X2J1ZmZlcnMoYnVmZmVy
cyk6Ci0gICAgZm9yIGsgaW4gYnVmZmVycy5rZXlzKCk6Ci0gICAgICAgIGJ1ZmZlcnNba10uc2Vl
aygwKQotCi0KLWNsYXNzIENvbnRleHRUZXN0KFRlc3RDYXNlKToKLSAgICBkZWYgY3JlYXRlX2Ns
aWVudCgKLSAgICAgICAgc2VsZiwgYWxwbl9wcm90b2NvbHM9Tm9uZSwgY2FkYXRhPU5vbmUsIGNh
ZmlsZT1TRVJWRVJfQ0FDRVJURklMRSwgKiprd2FyZ3MKLSAgICApOgotICAgICAgICBjbGllbnQg
PSBDb250ZXh0KAotICAgICAgICAgICAgYWxwbl9wcm90b2NvbHM9YWxwbl9wcm90b2NvbHMsCi0g
ICAgICAgICAgICBjYWRhdGE9Y2FkYXRhLAotICAgICAgICAgICAgY2FmaWxlPWNhZmlsZSwKLSAg
ICAgICAgICAgIGlzX2NsaWVudD1UcnVlLAotICAgICAgICAgICAgKiprd2FyZ3MKLSAgICAgICAg
KQotICAgICAgICBjbGllbnQuaGFuZHNoYWtlX2V4dGVuc2lvbnMgPSBbCi0gICAgICAgICAgICAo
Ci0gICAgICAgICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFSQU1F
VEVSUywKLSAgICAgICAgICAgICAgICBDTElFTlRfUVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywK
LSAgICAgICAgICAgICkKLSAgICAgICAgXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVu
dC5zdGF0ZSwgU3RhdGUuQ0xJRU5UX0hBTkRTSEFLRV9TVEFSVCkKLSAgICAgICAgcmV0dXJuIGNs
aWVudAotCi0gICAgZGVmIGNyZWF0ZV9zZXJ2ZXIoc2VsZiwgYWxwbl9wcm90b2NvbHM9Tm9uZSk6
Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBRdWljQ29uZmlndXJhdGlvbihpc19jbGllbnQ9RmFs
c2UpCi0gICAgICAgIGNvbmZpZ3VyYXRpb24ubG9hZF9jZXJ0X2NoYWluKFNFUlZFUl9DRVJURklM
RSwgU0VSVkVSX0tFWUZJTEUpCi0KLSAgICAgICAgc2VydmVyID0gQ29udGV4dCgKLSAgICAgICAg
ICAgIGFscG5fcHJvdG9jb2xzPWFscG5fcHJvdG9jb2xzLCBpc19jbGllbnQ9RmFsc2UsIG1heF9l
YXJseV9kYXRhPTB4RkZGRkZGRkYKLSAgICAgICAgKQotICAgICAgICBzZXJ2ZXIuY2VydGlmaWNh
dGUgPSBjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlCi0gICAgICAgIHNlcnZlci5jZXJ0aWZpY2F0
ZV9wcml2YXRlX2tleSA9IGNvbmZpZ3VyYXRpb24ucHJpdmF0ZV9rZXkKLSAgICAgICAgc2VydmVy
LmhhbmRzaGFrZV9leHRlbnNpb25zID0gWwotICAgICAgICAgICAgKAotICAgICAgICAgICAgICAg
IHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAg
ICAgICAgU0VSVkVSX1FVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICApCi0g
ICAgICAgIF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNF
UlZFUl9FWFBFQ1RfQ0xJRU5UX0hFTExPKQotICAgICAgICByZXR1cm4gc2VydmVyCi0KLSAgICBk
ZWYgdGVzdF9jbGllbnRfdW5leHBlY3RlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBjbGllbnQg
PSBzZWxmLmNyZWF0ZV9jbGllbnQoKQotCi0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNM
SUVOVF9FWFBFQ1RfU0VSVkVSX0hFTExPCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
dGxzLkFsZXJ0VW5leHBlY3RlZE1lc3NhZ2UpOgotICAgICAgICAgICAgY2xpZW50LmhhbmRsZV9t
ZXNzYWdlKGIiXHgwMFx4MDBceDAwXHgwMCIsIGNyZWF0ZV9idWZmZXJzKCkpCi0KLSAgICAgICAg
Y2xpZW50LnN0YXRlID0gU3RhdGUuQ0xJRU5UX0VYUEVDVF9FTkNSWVBURURfRVhURU5TSU9OUwot
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdl
KToKLSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAi
LCBjcmVhdGVfYnVmZmVycygpKQotCi0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNMSUVO
VF9FWFBFQ1RfQ0VSVElGSUNBVEVfUkVRVUVTVF9PUl9DRVJUSUZJQ0FURQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToKLSAgICAgICAg
ICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBjcmVhdGVfYnVm
ZmVycygpKQotCi0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNMSUVOVF9FWFBFQ1RfQ0VS
VElGSUNBVEVfVkVSSUZZCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0
VW5leHBlY3RlZE1lc3NhZ2UpOgotICAgICAgICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGIi
XHgwMFx4MDBceDAwXHgwMCIsIGNyZWF0ZV9idWZmZXJzKCkpCi0KLSAgICAgICAgY2xpZW50LnN0
YXRlID0gU3RhdGUuQ0xJRU5UX0VYUEVDVF9GSU5JU0hFRAotICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToKLSAgICAgICAgICAgIGNsaWVu
dC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBjcmVhdGVfYnVmZmVycygpKQot
Ci0gICAgICAgIGNsaWVudC5zdGF0ZSA9IFN0YXRlLkNMSUVOVF9QT1NUX0hBTkRTSEFLRQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToK
LSAgICAgICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBj
cmVhdGVfYnVmZmVycygpKQotCi0gICAgZGVmIHRlc3RfY2xpZW50X2JhZF9jZXJ0aWZpY2F0ZV92
ZXJpZnlfZGF0YShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkK
LSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICAjIHNlbmQg
Y2xpZW50IGhlbGxvCi0gICAgICAgIGNsaWVudF9idWYgPSBjcmVhdGVfYnVmZmVycygpCi0gICAg
ICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVudF9idWYpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZFUl9IRUxM
TykKLSAgICAgICAgc2VydmVyX2lucHV0ID0gbWVyZ2VfYnVmZmVycyhjbGllbnRfYnVmKQotICAg
ICAgICByZXNldF9idWZmZXJzKGNsaWVudF9idWYpCi0KLSAgICAgICAgIyBoYW5kbGUgY2xpZW50
IGhlbGxvCi0gICAgICAgICMgc2VuZCBzZXJ2ZXIgaGVsbG8sIGVuY3J5cHRlZCBleHRlbnNpb25z
LCBjZXJ0aWZpY2F0ZSwgY2VydGlmaWNhdGUgdmVyaWZ5LCBmaW5pc2hlZAotICAgICAgICBzZXJ2
ZXJfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uo
c2VydmVyX2lucHV0LCBzZXJ2ZXJfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZl
ci5zdGF0ZSwgU3RhdGUuU0VSVkVSX0VYUEVDVF9GSU5JU0hFRCkKLSAgICAgICAgY2xpZW50X2lu
cHV0ID0gbWVyZ2VfYnVmZmVycyhzZXJ2ZXJfYnVmKQotICAgICAgICByZXNldF9idWZmZXJzKHNl
cnZlcl9idWYpCi0KLSAgICAgICAgIyBtZXNzIHdpdGggY2VydGlmaWNhdGUgdmVyaWZ5Ci0gICAg
ICAgIGNsaWVudF9pbnB1dCA9IGNsaWVudF9pbnB1dFs6LTU2XSArIGJ5dGVzKDQpICsgY2xpZW50
X2lucHV0Wy01MjpdCi0KLSAgICAgICAgIyBoYW5kbGUgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQg
ZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRpZmljYXRlIHZlcmlmeSwgZmluaXNoZWQKLSAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnREZWNyeXB0RXJyb3IpOgotICAg
ICAgICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGNsaWVudF9pbnB1dCwgY2xpZW50X2J1ZikK
LQotICAgIGRlZiB0ZXN0X2NsaWVudF9iYWRfZmluaXNoZWRfdmVyaWZ5X2RhdGEoc2VsZik6Ci0g
ICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIHNlcnZlciA9IHNl
bGYuY3JlYXRlX3NlcnZlcigpCi0KLSAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbwotICAgICAg
ICBjbGllbnRfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBjbGllbnQuaGFuZGxlX21l
c3NhZ2UoYiIiLCBjbGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5z
dGF0ZSwgU3RhdGUuQ0xJRU5UX0VYUEVDVF9TRVJWRVJfSEVMTE8pCi0gICAgICAgIHNlcnZlcl9p
bnB1dCA9IG1lcmdlX2J1ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhj
bGllbnRfYnVmKQotCi0gICAgICAgICMgaGFuZGxlIGNsaWVudCBoZWxsbwotICAgICAgICAjIHNl
bmQgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRp
ZmljYXRlIHZlcmlmeSwgZmluaXNoZWQKLSAgICAgICAgc2VydmVyX2J1ZiA9IGNyZWF0ZV9idWZm
ZXJzKCkKLSAgICAgICAgc2VydmVyLmhhbmRsZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwgc2VydmVy
X2J1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXIuc3RhdGUsIFN0YXRlLlNFUlZF
Ul9FWFBFQ1RfRklOSVNIRUQpCi0gICAgICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMo
c2VydmVyX2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhzZXJ2ZXJfYnVmKQotCi0gICAgICAg
ICMgbWVzcyB3aXRoIGZpbmlzaGVkIHZlcmlmeSBkYXRhCi0gICAgICAgIGNsaWVudF9pbnB1dCA9
IGNsaWVudF9pbnB1dFs6LTRdICsgYnl0ZXMoNCkKLQotICAgICAgICAjIGhhbmRsZSBzZXJ2ZXIg
aGVsbG8sIGVuY3J5cHRlZCBleHRlbnNpb25zLCBjZXJ0aWZpY2F0ZSwgY2VydGlmaWNhdGUgdmVy
aWZ5LCBmaW5pc2hlZAotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydERl
Y3J5cHRFcnJvcik6Ci0gICAgICAgICAgICBjbGllbnQuaGFuZGxlX21lc3NhZ2UoY2xpZW50X2lu
cHV0LCBjbGllbnRfYnVmKQotCi0gICAgZGVmIHRlc3Rfc2VydmVyX3VuZXhwZWN0ZWRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAg
ICBzZXJ2ZXIuc3RhdGUgPSBTdGF0ZS5TRVJWRVJfRVhQRUNUX0NMSUVOVF9IRUxMTwotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydFVuZXhwZWN0ZWRNZXNzYWdlKToKLSAg
ICAgICAgICAgIHNlcnZlci5oYW5kbGVfbWVzc2FnZShiIlx4MDBceDAwXHgwMFx4MDAiLCBjcmVh
dGVfYnVmZmVycygpKQotCi0gICAgICAgIHNlcnZlci5zdGF0ZSA9IFN0YXRlLlNFUlZFUl9FWFBF
Q1RfRklOSVNIRUQKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRVbmV4
cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2UoYiJceDAw
XHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAgICAgICBzZXJ2ZXIuc3RhdGUg
PSBTdGF0ZS5TRVJWRVJfUE9TVF9IQU5EU0hBS0UKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlcyh0bHMuQWxlcnRVbmV4cGVjdGVkTWVzc2FnZSk6Ci0gICAgICAgICAgICBzZXJ2ZXIuaGFu
ZGxlX21lc3NhZ2UoYiJceDAwXHgwMFx4MDBceDAwIiwgY3JlYXRlX2J1ZmZlcnMoKSkKLQotICAg
IGRlZiBfc2VydmVyX2ZhaWxfaGVsbG8oc2VsZiwgY2xpZW50LCBzZXJ2ZXIpOgotICAgICAgICAj
IHNlbmQgY2xpZW50IGhlbGxvCi0gICAgICAgIGNsaWVudF9idWYgPSBjcmVhdGVfYnVmZmVycygp
Ci0gICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVudF9idWYpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZF
Ul9IRUxMTykKLSAgICAgICAgc2VydmVyX2lucHV0ID0gbWVyZ2VfYnVmZmVycyhjbGllbnRfYnVm
KQotICAgICAgICByZXNldF9idWZmZXJzKGNsaWVudF9idWYpCi0KLSAgICAgICAgIyBoYW5kbGUg
Y2xpZW50IGhlbGxvCi0gICAgICAgIHNlcnZlcl9idWYgPSBjcmVhdGVfYnVmZmVycygpCi0gICAg
ICAgIHNlcnZlci5oYW5kbGVfbWVzc2FnZShzZXJ2ZXJfaW5wdXQsIHNlcnZlcl9idWYpCi0KLSAg
ICBkZWYgdGVzdF9zZXJ2ZXJfdW5zdXBwb3J0ZWRfY2lwaGVyX3N1aXRlKHNlbGYpOgotICAgICAg
ICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQoKQotICAgICAgICBjbGllbnQuX2NpcGhlcl9z
dWl0ZXMgPSBbdGxzLkNpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1Nl0KLQotICAgICAgICBz
ZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICBzZXJ2ZXIuX2NpcGhlcl9zdWl0
ZXMgPSBbdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NF0KLQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydEhhbmRzaGFrZUZhaWx1cmUpIGFzIGNtOgotICAg
ICAgICAgICAgc2VsZi5fc2VydmVyX2ZhaWxfaGVsbG8oY2xpZW50LCBzZXJ2ZXIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJObyBzdXBwb3J0ZWQgY2lwaGVy
IHN1aXRlIikKLQotICAgIGRlZiB0ZXN0X3NlcnZlcl91bnN1cHBvcnRlZF9zaWduYXR1cmVfYWxn
b3JpdGhtKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQoKQotICAg
ICAgICBjbGllbnQuX3NpZ25hdHVyZV9hbGdvcml0aG1zID0gW3Rscy5TaWduYXR1cmVBbGdvcml0
aG0uRUQ0NDhdCi0KLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydEhhbmRzaGFrZUZhaWx1cmUpIGFz
IGNtOgotICAgICAgICAgICAgc2VsZi5fc2VydmVyX2ZhaWxfaGVsbG8oY2xpZW50LCBzZXJ2ZXIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJObyBzdXBwb3J0
ZWQgc2lnbmF0dXJlIGFsZ29yaXRobSIpCi0KLSAgICBkZWYgdGVzdF9zZXJ2ZXJfdW5zdXBwb3J0
ZWRfdmVyc2lvbihzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkK
LSAgICAgICAgY2xpZW50Ll9zdXBwb3J0ZWRfdmVyc2lvbnMgPSBbdGxzLlRMU19WRVJTSU9OXzFf
Ml0KLQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotCi0gICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0UHJvdG9jb2xWZXJzaW9uKSBhcyBjbToKLSAg
ICAgICAgICAgIHNlbGYuX3NlcnZlcl9mYWlsX2hlbGxvKGNsaWVudCwgc2VydmVyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAiTm8gc3VwcG9ydGVkIHByb3Rv
Y29sIHZlcnNpb24iKQotCi0gICAgZGVmIHRlc3Rfc2VydmVyX2JhZF9maW5pc2hlZF92ZXJpZnlf
ZGF0YShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAg
ICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICAjIHNlbmQgY2xpZW50
IGhlbGxvCi0gICAgICAgIGNsaWVudF9idWYgPSBjcmVhdGVfYnVmZmVycygpCi0gICAgICAgIGNs
aWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVudF9idWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZFUl9IRUxMTykKLSAg
ICAgICAgc2VydmVyX2lucHV0ID0gbWVyZ2VfYnVmZmVycyhjbGllbnRfYnVmKQotICAgICAgICBy
ZXNldF9idWZmZXJzKGNsaWVudF9idWYpCi0KLSAgICAgICAgIyBoYW5kbGUgY2xpZW50IGhlbGxv
Ci0gICAgICAgICMgc2VuZCBzZXJ2ZXIgaGVsbG8sIGVuY3J5cHRlZCBleHRlbnNpb25zLCBjZXJ0
aWZpY2F0ZSwgY2VydGlmaWNhdGUgdmVyaWZ5LCBmaW5pc2hlZAotICAgICAgICBzZXJ2ZXJfYnVm
ID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVy
X2lucHV0LCBzZXJ2ZXJfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5zdGF0
ZSwgU3RhdGUuU0VSVkVSX0VYUEVDVF9GSU5JU0hFRCkKLSAgICAgICAgY2xpZW50X2lucHV0ID0g
bWVyZ2VfYnVmZmVycyhzZXJ2ZXJfYnVmKQotICAgICAgICByZXNldF9idWZmZXJzKHNlcnZlcl9i
dWYpCi0KLSAgICAgICAgIyBoYW5kbGUgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9u
cywgY2VydGlmaWNhdGUsIGNlcnRpZmljYXRlIHZlcmlmeSwgZmluaXNoZWQKLSAgICAgICAgIyBz
ZW5kIGZpbmlzaGVkCi0gICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShjbGllbnRfaW5wdXQs
IGNsaWVudF9idWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0
ZS5DTElFTlRfUE9TVF9IQU5EU0hBS0UpCi0gICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1
ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRfYnVmKQotCi0g
ICAgICAgICMgbWVzcyB3aXRoIGZpbmlzaGVkIHZlcmlmeSBkYXRhCi0gICAgICAgIHNlcnZlcl9p
bnB1dCA9IHNlcnZlcl9pbnB1dFs6LTRdICsgYnl0ZXMoNCkKLQotICAgICAgICAjIGhhbmRsZSBm
aW5pc2hlZAotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVydERlY3J5cHRF
cnJvcik6Ci0gICAgICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVyX2lucHV0LCBz
ZXJ2ZXJfYnVmKQotCi0gICAgZGVmIF9oYW5kc2hha2Uoc2VsZiwgY2xpZW50LCBzZXJ2ZXIpOgot
ICAgICAgICAjIHNlbmQgY2xpZW50IGhlbGxvCi0gICAgICAgIGNsaWVudF9idWYgPSBjcmVhdGVf
YnVmZmVycygpCi0gICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShiIiIsIGNsaWVudF9idWYp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQ
RUNUX1NFUlZFUl9IRUxMTykKLSAgICAgICAgc2VydmVyX2lucHV0ID0gbWVyZ2VfYnVmZmVycyhj
bGllbnRfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChsZW4oc2VydmVyX2lu
cHV0KSwgMTgxKQotICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4oc2VydmVyX2lucHV0
KSwgMzU4KQotICAgICAgICByZXNldF9idWZmZXJzKGNsaWVudF9idWYpCi0KLSAgICAgICAgIyBo
YW5kbGUgY2xpZW50IGhlbGxvCi0gICAgICAgICMgc2VuZCBzZXJ2ZXIgaGVsbG8sIGVuY3J5cHRl
ZCBleHRlbnNpb25zLCBjZXJ0aWZpY2F0ZSwgY2VydGlmaWNhdGUgdmVyaWZ5LCBmaW5pc2hlZCwg
KHNlc3Npb24gdGlja2V0KQotICAgICAgICBzZXJ2ZXJfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQot
ICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVyX2lucHV0LCBzZXJ2ZXJfYnVmKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5zdGF0ZSwgU3RhdGUuU0VSVkVSX0VYUEVD
VF9GSU5JU0hFRCkKLSAgICAgICAgY2xpZW50X2lucHV0ID0gbWVyZ2VfYnVmZmVycyhzZXJ2ZXJf
YnVmKQotICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChsZW4oY2xpZW50X2lucHV0KSwg
NjAwKQotICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4oY2xpZW50X2lucHV0KSwgMjMx
NikKLQotICAgICAgICByZXNldF9idWZmZXJzKHNlcnZlcl9idWYpCi0KLSAgICAgICAgIyBoYW5k
bGUgc2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRp
ZmljYXRlIHZlcmlmeSwgZmluaXNoZWQsIChzZXNzaW9uIHRpY2tldCkKLSAgICAgICAgIyBzZW5k
IGZpbmlzaGVkCi0gICAgICAgIGNsaWVudC5oYW5kbGVfbWVzc2FnZShjbGllbnRfaW5wdXQsIGNs
aWVudF9idWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5D
TElFTlRfUE9TVF9IQU5EU0hBS0UpCi0gICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1ZmZl
cnMoY2xpZW50X2J1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VydmVyX2lucHV0
KSwgNTIpCi0gICAgICAgIHJlc2V0X2J1ZmZlcnMoY2xpZW50X2J1ZikKLQotICAgICAgICAjIGhh
bmRsZSBmaW5pc2hlZAotICAgICAgICBzZXJ2ZXIuaGFuZGxlX21lc3NhZ2Uoc2VydmVyX2lucHV0
LCBzZXJ2ZXJfYnVmKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5zdGF0ZSwgU3Rh
dGUuU0VSVkVSX1BPU1RfSEFORFNIQUtFKQotICAgICAgICBjbGllbnRfaW5wdXQgPSBtZXJnZV9i
dWZmZXJzKHNlcnZlcl9idWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudF9p
bnB1dCksIDApCi0KLSAgICAgICAgIyBjaGVjayBrZXlzIG1hdGNoCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY2xpZW50Ll9kZWNfa2V5LCBzZXJ2ZXIuX2VuY19rZXkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2xpZW50Ll9lbmNfa2V5LCBzZXJ2ZXIuX2RlY19rZXkpCi0KLSAgICAgICAg
IyBjaGVjayBjaXBoZXIgc3VpdGUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAg
ICAgIGNsaWVudC5rZXlfc2NoZWR1bGUuY2lwaGVyX3N1aXRlLCB0bHMuQ2lwaGVyU3VpdGUuQUVT
XzI1Nl9HQ01fU0hBMzg0Ci0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIHNlcnZlci5rZXlfc2NoZWR1bGUuY2lwaGVyX3N1aXRlLCB0bHMuQ2lwaGVyU3Vp
dGUuQUVTXzI1Nl9HQ01fU0hBMzg0Ci0gICAgICAgICkKLQotICAgIGRlZiB0ZXN0X2hhbmRzaGFr
ZShzZWxmKToKLSAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAgICAg
c2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2Uo
Y2xpZW50LCBzZXJ2ZXIpCi0KLSAgICAgICAgIyBjaGVjayBBTFBOIG1hdGNoZXMKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjbGllbnQuYWxwbl9uZWdvdGlhdGVkLCBOb25lKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlcnZlci5hbHBuX25lZ290aWF0ZWQsIE5vbmUpCi0KLSAgICBkZWYg
dGVzdF9oYW5kc2hha2VfZWNkc2Ffc2VjcDI1NnIxKHNlbGYpOgotICAgICAgICBzZXJ2ZXIgPSBz
ZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotICAgICAgICBzZXJ2ZXIuY2VydGlmaWNhdGUsIHNlcnZlci5j
ZXJ0aWZpY2F0ZV9wcml2YXRlX2tleSA9IGdlbmVyYXRlX2VjX2NlcnRpZmljYXRlKAotICAgICAg
ICAgICAgY29tbW9uX25hbWU9ImV4YW1wbGUuY29tIiwgY3VydmU9ZWMuU0VDUDI1NlIxCi0gICAg
ICAgICkKLQotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9jbGllbnQoCi0gICAgICAgICAg
ICBjYWRhdGE9c2VydmVyLmNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJpYWxpemF0aW9uLkVu
Y29kaW5nLlBFTSksCi0gICAgICAgICAgICBjYWZpbGU9Tm9uZSwKLSAgICAgICAgKQotCi0gICAg
ICAgIHNlbGYuX2hhbmRzaGFrZShjbGllbnQsIHNlcnZlcikKLQotICAgICAgICAjIGNoZWNrIEFM
UE4gbWF0Y2hlcwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudC5hbHBuX25lZ290aWF0
ZWQsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVyLmFscG5fbmVnb3RpYXRl
ZCwgTm9uZSkKLQotICAgIGRlZiB0ZXN0X2hhbmRzaGFrZV93aXRoX2FscG4oc2VsZik6Ci0gICAg
ICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudChhbHBuX3Byb3RvY29scz1bImhxLTIwIl0p
Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcihhbHBuX3Byb3RvY29scz1bImhx
LTIwIiwgImgzLTIwIl0pCi0KLSAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2VydmVy
KQotCi0gICAgICAgICMgY2hlY2sgQUxQTiBtYXRjaGVzCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY2xpZW50LmFscG5fbmVnb3RpYXRlZCwgImhxLTIwIikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZXJ2ZXIuYWxwbl9uZWdvdGlhdGVkLCAiaHEtMjAiKQotCi0gICAgZGVmIHRlc3RfaGFu
ZHNoYWtlX3dpdGhfYWxwbl9mYWlsKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0
ZV9jbGllbnQoYWxwbl9wcm90b2NvbHM9WyJocS0yMCJdKQotICAgICAgICBzZXJ2ZXIgPSBzZWxm
LmNyZWF0ZV9zZXJ2ZXIoYWxwbl9wcm90b2NvbHM9WyJoMy0yMCJdKQotCi0gICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0SGFuZHNoYWtlRmFpbHVyZSkgYXMgY206Ci0gICAg
ICAgICAgICBzZWxmLl9oYW5kc2hha2UoY2xpZW50LCBzZXJ2ZXIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJObyBjb21tb24gQUxQTiBwcm90b2NvbHMiKQot
Ci0gICAgZGVmIHRlc3RfaGFuZHNoYWtlX3dpdGhfcnNhX3BrY3MxX3NoYTI1Nl9zaWduYXR1cmUo
c2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0gICAgICAgIGNs
aWVudC5fc2lnbmF0dXJlX2FsZ29yaXRobXMgPSBbdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0Ff
UEtDUzFfU0hBMjU2XQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIoKQotCi0g
ICAgICAgIHNlbGYuX2hhbmRzaGFrZShjbGllbnQsIHNlcnZlcikKLQotICAgIGRlZiB0ZXN0X2hh
bmRzaGFrZV93aXRoX2NlcnRpZmljYXRlX2Vycm9yKHNlbGYpOgotICAgICAgICBjbGllbnQgPSBz
ZWxmLmNyZWF0ZV9jbGllbnQoY2FmaWxlPU5vbmUpCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3Jl
YXRlX3NlcnZlcigpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRC
YWRDZXJ0aWZpY2F0ZSkgYXMgY206Ci0gICAgICAgICAgICBzZWxmLl9oYW5kc2hha2UoY2xpZW50
LCBzZXJ2ZXIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJ1
bmFibGUgdG8gZ2V0IGxvY2FsIGlzc3VlciBjZXJ0aWZpY2F0ZSIpCi0KLSAgICBkZWYgdGVzdF9o
YW5kc2hha2Vfd2l0aF9jZXJ0aWZpY2F0ZV9ub192ZXJpZnkoc2VsZik6Ci0gICAgICAgIGNsaWVu
dCA9IHNlbGYuY3JlYXRlX2NsaWVudChjYWZpbGU9Tm9uZSwgdmVyaWZ5X21vZGU9c3NsLkNFUlRf
Tk9ORSkKLSAgICAgICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICBz
ZWxmLl9oYW5kc2hha2UoY2xpZW50LCBzZXJ2ZXIpCi0KLSAgICBkZWYgdGVzdF9oYW5kc2hha2Vf
d2l0aF9ncmVhc2VfZ3JvdXAoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2Ns
aWVudCgpCi0gICAgICAgIGNsaWVudC5fc3VwcG9ydGVkX2dyb3VwcyA9IFt0bHMuR3JvdXAuR1JF
QVNFLCB0bHMuR3JvdXAuU0VDUDI1NlIxXQotICAgICAgICBzZXJ2ZXIgPSBzZWxmLmNyZWF0ZV9z
ZXJ2ZXIoKQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZShjbGllbnQsIHNlcnZlcikKLQotICAg
IGRlZiB0ZXN0X2hhbmRzaGFrZV93aXRoX3gyNTUxOShzZWxmKToKLSAgICAgICAgY2xpZW50ID0g
c2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAgICAgY2xpZW50Ll9zdXBwb3J0ZWRfZ3JvdXBzID0g
W3Rscy5Hcm91cC5YMjU1MTldCi0gICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigp
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2Vy
dmVyKQotICAgICAgICBleGNlcHQgVW5zdXBwb3J0ZWRBbGdvcml0aG0gYXMgZXhjOgotICAgICAg
ICAgICAgc2VsZi5za2lwVGVzdChzdHIoZXhjKSkKLQotICAgIGRlZiB0ZXN0X2hhbmRzaGFrZV93
aXRoX3g0NDgoc2VsZik6Ci0gICAgICAgIGNsaWVudCA9IHNlbGYuY3JlYXRlX2NsaWVudCgpCi0g
ICAgICAgIGNsaWVudC5fc3VwcG9ydGVkX2dyb3VwcyA9IFt0bHMuR3JvdXAuWDQ0OF0KLSAgICAg
ICAgc2VydmVyID0gc2VsZi5jcmVhdGVfc2VydmVyKCkKLQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBzZWxmLl9oYW5kc2hha2UoY2xpZW50LCBzZXJ2ZXIpCi0gICAgICAgIGV4Y2VwdCBVbnN1
cHBvcnRlZEFsZ29yaXRobSBhcyBleGM6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KHN0cihl
eGMpKQotCi0gICAgZGVmIHRlc3Rfc2Vzc2lvbl90aWNrZXQoc2VsZik6Ci0gICAgICAgIGNsaWVu
dF90aWNrZXRzID0gW10KLSAgICAgICAgc2VydmVyX3RpY2tldHMgPSBbXQotCi0gICAgICAgIGRl
ZiBjbGllbnRfbmV3X3RpY2tldCh0aWNrZXQpOgotICAgICAgICAgICAgY2xpZW50X3RpY2tldHMu
YXBwZW5kKHRpY2tldCkKLQotICAgICAgICBkZWYgc2VydmVyX2dldF90aWNrZXQobGFiZWwpOgot
ICAgICAgICAgICAgZm9yIHQgaW4gc2VydmVyX3RpY2tldHM6Ci0gICAgICAgICAgICAgICAgaWYg
dC50aWNrZXQgPT0gbGFiZWw6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0Ci0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIGRlZiBzZXJ2ZXJfbmV3X3RpY2tldCh0aWNrZXQp
OgotICAgICAgICAgICAgc2VydmVyX3RpY2tldHMuYXBwZW5kKHRpY2tldCkKLQotICAgICAgICBk
ZWYgZmlyc3RfaGFuZHNoYWtlKCk6Ci0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLmNyZWF0ZV9j
bGllbnQoKQotICAgICAgICAgICAgY2xpZW50Lm5ld19zZXNzaW9uX3RpY2tldF9jYiA9IGNsaWVu
dF9uZXdfdGlja2V0Ci0KLSAgICAgICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigp
Ci0gICAgICAgICAgICBzZXJ2ZXIubmV3X3Nlc3Npb25fdGlja2V0X2NiID0gc2VydmVyX25ld190
aWNrZXQKLQotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlKGNsaWVudCwgc2VydmVyKQotCi0g
ICAgICAgICAgICAjIGNoZWNrIHNlc3Npb24gcmVzdW1wdGlvbiB3YXMgbm90IHVzZWQKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2xpZW50LnNlc3Npb25fcmVzdW1lZCkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VydmVyLnNlc3Npb25fcmVzdW1lZCkKLQotICAgICAgICAg
ICAgIyBjaGVjayB0aWNrZXRzIG1hdGNoCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihjbGllbnRfdGlja2V0cyksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihz
ZXJ2ZXJfdGlja2V0cyksIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNsaWVudF90
aWNrZXRzWzBdLnRpY2tldCwgc2VydmVyX3RpY2tldHNbMF0udGlja2V0KQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBjbGllbnRfdGlja2V0c1swXS5yZXN1
bXB0aW9uX3NlY3JldCwgc2VydmVyX3RpY2tldHNbMF0ucmVzdW1wdGlvbl9zZWNyZXQKLSAgICAg
ICAgICAgICkKLQotICAgICAgICBkZWYgc2Vjb25kX2hhbmRzaGFrZSgpOgotICAgICAgICAgICAg
Y2xpZW50ID0gc2VsZi5jcmVhdGVfY2xpZW50KCkKLSAgICAgICAgICAgIGNsaWVudC5zZXNzaW9u
X3RpY2tldCA9IGNsaWVudF90aWNrZXRzWzBdCi0KLSAgICAgICAgICAgIHNlcnZlciA9IHNlbGYu
Y3JlYXRlX3NlcnZlcigpCi0gICAgICAgICAgICBzZXJ2ZXIuZ2V0X3Nlc3Npb25fdGlja2V0X2Ni
ID0gc2VydmVyX2dldF90aWNrZXQKLQotICAgICAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbyB3
aXRoIHByZV9zaGFyZWRfa2V5Ci0gICAgICAgICAgICBjbGllbnRfYnVmID0gY3JlYXRlX2J1ZmZl
cnMoKQotICAgICAgICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGIiIiwgY2xpZW50X2J1ZikK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRf
RVhQRUNUX1NFUlZFUl9IRUxMTykKLSAgICAgICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1
ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGxl
bihzZXJ2ZXJfaW5wdXQpLCAzODMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChs
ZW4oc2VydmVyX2lucHV0KSwgNDgzKQotICAgICAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRf
YnVmKQotCi0gICAgICAgICAgICAjIGhhbmRsZSBjbGllbnQgaGVsbG8KLSAgICAgICAgICAgICMg
c2VuZCBzZXJ2ZXIgaGVsbG8sIGVuY3J5cHRlZCBleHRlbnNpb25zLCBmaW5pc2hlZAotICAgICAg
ICAgICAgc2VydmVyX2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAgICAgIHNlcnZlci5o
YW5kbGVfbWVzc2FnZShzZXJ2ZXJfaW5wdXQsIHNlcnZlcl9idWYpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlcnZlci5zdGF0ZSwgU3RhdGUuU0VSVkVSX0VYUEVDVF9GSU5JU0hFRCkK
LSAgICAgICAgICAgIGNsaWVudF9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoc2VydmVyX2J1ZikKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNsaWVudF9pbnB1dCksIDI3NSkKLSAgICAg
ICAgICAgIHJlc2V0X2J1ZmZlcnMoc2VydmVyX2J1ZikKLQotICAgICAgICAgICAgIyBoYW5kbGUg
c2VydmVyIGhlbGxvLCBlbmNyeXB0ZWQgZXh0ZW5zaW9ucywgY2VydGlmaWNhdGUsIGNlcnRpZmlj
YXRlIHZlcmlmeSwgZmluaXNoZWQKLSAgICAgICAgICAgICMgc2VuZCBmaW5pc2hlZAotICAgICAg
ICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGNsaWVudF9pbnB1dCwgY2xpZW50X2J1ZikKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfUE9T
VF9IQU5EU0hBS0UpCi0gICAgICAgICAgICBzZXJ2ZXJfaW5wdXQgPSBtZXJnZV9idWZmZXJzKGNs
aWVudF9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXJ2ZXJfaW5wdXQp
LCA1MikKLSAgICAgICAgICAgIHJlc2V0X2J1ZmZlcnMoY2xpZW50X2J1ZikKLQotICAgICAgICAg
ICAgIyBoYW5kbGUgZmluaXNoZWQKLSAgICAgICAgICAgICMgc2VuZCBuZXdfc2Vzc2lvbl90aWNr
ZXQKLSAgICAgICAgICAgIHNlcnZlci5oYW5kbGVfbWVzc2FnZShzZXJ2ZXJfaW5wdXQsIHNlcnZl
cl9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5zdGF0ZSwgU3RhdGUu
U0VSVkVSX1BPU1RfSEFORFNIQUtFKQotICAgICAgICAgICAgY2xpZW50X2lucHV0ID0gbWVyZ2Vf
YnVmZmVycyhzZXJ2ZXJfYnVmKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2xp
ZW50X2lucHV0KSwgMCkKLSAgICAgICAgICAgIHJlc2V0X2J1ZmZlcnMoc2VydmVyX2J1ZikKLQot
ICAgICAgICAgICAgIyBjaGVjayBrZXlzIG1hdGNoCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNsaWVudC5fZGVjX2tleSwgc2VydmVyLl9lbmNfa2V5KQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjbGllbnQuX2VuY19rZXksIHNlcnZlci5fZGVjX2tleSkKLQotICAgICAgICAg
ICAgIyBjaGVjayBzZXNzaW9uIHJlc3VtcHRpb24gd2FzIHVzZWQKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShjbGllbnQuc2Vzc2lvbl9yZXN1bWVkKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKHNlcnZlci5zZXNzaW9uX3Jlc3VtZWQpCi0KLSAgICAgICAgZGVmIHNlY29uZF9oYW5k
c2hha2VfYmFkX2JpbmRlcigpOgotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVhdGVfY2xp
ZW50KCkKLSAgICAgICAgICAgIGNsaWVudC5zZXNzaW9uX3RpY2tldCA9IGNsaWVudF90aWNrZXRz
WzBdCi0KLSAgICAgICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigpCi0gICAgICAg
ICAgICBzZXJ2ZXIuZ2V0X3Nlc3Npb25fdGlja2V0X2NiID0gc2VydmVyX2dldF90aWNrZXQKLQot
ICAgICAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbyB3aXRoIHByZV9zaGFyZWRfa2V5Ci0gICAg
ICAgICAgICBjbGllbnRfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICAgICAgY2xpZW50
LmhhbmRsZV9tZXNzYWdlKGIiIiwgY2xpZW50X2J1ZikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZFUl9IRUxMTykKLSAg
ICAgICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoY2xpZW50X2J1ZikKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGxlbihzZXJ2ZXJfaW5wdXQpLCAzODMpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4oc2VydmVyX2lucHV0KSwgNDgzKQot
ICAgICAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRfYnVmKQotCi0gICAgICAgICAgICAjIHRh
bXBlciB3aXRoIGJpbmRlcgotICAgICAgICAgICAgc2VydmVyX2lucHV0ID0gc2VydmVyX2lucHV0
WzotNF0gKyBieXRlcyg0KQotCi0gICAgICAgICAgICAjIGhhbmRsZSBjbGllbnQgaGVsbG8KLSAg
ICAgICAgICAgICMgc2VuZCBzZXJ2ZXIgaGVsbG8sIGVuY3J5cHRlZCBleHRlbnNpb25zLCBmaW5p
c2hlZAotICAgICAgICAgICAgc2VydmVyX2J1ZiA9IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0SGFuZHNoYWtlRmFpbHVyZSkgYXMg
Y206Ci0gICAgICAgICAgICAgICAgc2VydmVyLmhhbmRsZV9tZXNzYWdlKHNlcnZlcl9pbnB1dCwg
c2VydmVyX2J1ZikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlv
biksICJQU0sgdmFsaWRhdGlvbiBmYWlsZWQiKQotCi0gICAgICAgIGRlZiBzZWNvbmRfaGFuZHNo
YWtlX2JhZF9wcmVfc2hhcmVkX2tleSgpOgotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5jcmVh
dGVfY2xpZW50KCkKLSAgICAgICAgICAgIGNsaWVudC5zZXNzaW9uX3RpY2tldCA9IGNsaWVudF90
aWNrZXRzWzBdCi0KLSAgICAgICAgICAgIHNlcnZlciA9IHNlbGYuY3JlYXRlX3NlcnZlcigpCi0g
ICAgICAgICAgICBzZXJ2ZXIuZ2V0X3Nlc3Npb25fdGlja2V0X2NiID0gc2VydmVyX2dldF90aWNr
ZXQKLQotICAgICAgICAgICAgIyBzZW5kIGNsaWVudCBoZWxsbyB3aXRoIHByZV9zaGFyZWRfa2V5
Ci0gICAgICAgICAgICBjbGllbnRfYnVmID0gY3JlYXRlX2J1ZmZlcnMoKQotICAgICAgICAgICAg
Y2xpZW50LmhhbmRsZV9tZXNzYWdlKGIiIiwgY2xpZW50X2J1ZikKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2xpZW50LnN0YXRlLCBTdGF0ZS5DTElFTlRfRVhQRUNUX1NFUlZFUl9IRUxM
TykKLSAgICAgICAgICAgIHNlcnZlcl9pbnB1dCA9IG1lcmdlX2J1ZmZlcnMoY2xpZW50X2J1ZikK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGxlbihzZXJ2ZXJfaW5wdXQpLCAz
ODMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4oc2VydmVyX2lucHV0KSwg
NDgzKQotICAgICAgICAgICAgcmVzZXRfYnVmZmVycyhjbGllbnRfYnVmKQotCi0gICAgICAgICAg
ICAjIGhhbmRsZSBjbGllbnQgaGVsbG8KLSAgICAgICAgICAgICMgc2VuZCBzZXJ2ZXIgaGVsbG8s
IGVuY3J5cHRlZCBleHRlbnNpb25zLCBmaW5pc2hlZAotICAgICAgICAgICAgc2VydmVyX2J1ZiA9
IGNyZWF0ZV9idWZmZXJzKCkKLSAgICAgICAgICAgIHNlcnZlci5oYW5kbGVfbWVzc2FnZShzZXJ2
ZXJfaW5wdXQsIHNlcnZlcl9idWYpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZl
ci5zdGF0ZSwgU3RhdGUuU0VSVkVSX0VYUEVDVF9GSU5JU0hFRCkKLQotICAgICAgICAgICAgIyB0
YW1wZXIgd2l0aCBwcmVfc2hhcmVfa2V5IGluZGV4Ci0gICAgICAgICAgICBidWYgPSBzZXJ2ZXJf
YnVmW3Rscy5FcG9jaC5JTklUSUFMXQotICAgICAgICAgICAgYnVmLnNlZWsoYnVmLnRlbGwoKSAt
IDEpCi0gICAgICAgICAgICBidWYucHVzaF91aW50OCgxKQotICAgICAgICAgICAgY2xpZW50X2lu
cHV0ID0gbWVyZ2VfYnVmZmVycyhzZXJ2ZXJfYnVmKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChsZW4oY2xpZW50X2lucHV0KSwgMjc1KQotICAgICAgICAgICAgcmVzZXRfYnVmZmVycyhz
ZXJ2ZXJfYnVmKQotCi0gICAgICAgICAgICAjIGhhbmRsZSBzZXJ2ZXIgaGVsbG8gYW5kIGJvbWIK
LSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0SWxsZWdhbFBhcmFt
ZXRlcik6Ci0gICAgICAgICAgICAgICAgY2xpZW50LmhhbmRsZV9tZXNzYWdlKGNsaWVudF9pbnB1
dCwgY2xpZW50X2J1ZikKLQotICAgICAgICBmaXJzdF9oYW5kc2hha2UoKQotICAgICAgICBzZWNv
bmRfaGFuZHNoYWtlKCkKLSAgICAgICAgc2Vjb25kX2hhbmRzaGFrZV9iYWRfYmluZGVyKCkKLSAg
ICAgICAgc2Vjb25kX2hhbmRzaGFrZV9iYWRfcHJlX3NoYXJlZF9rZXkoKQotCi0KLWNsYXNzIFRs
c1Rlc3QoVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X3B1bGxfY2xpZW50X2hlbGxvKHNlbGYpOgot
ICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfY2xpZW50X2hlbGxvLmJpbiIpKQot
ICAgICAgICBoZWxsbyA9IHB1bGxfY2xpZW50X2hlbGxvKGJ1ZikKLSAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgaGVsbG8ucmFuZG9tLAotICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAg
ICAgICAgICAgICIxOGIyYjIzYmYzZTQ0YjVkNTJjY2ZlN2FlY2JjNWZmMTRlYWRjM2QzNDlmYWJm
ODA0ZDcxZjE2NWFlNzZlN2Q1IgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ubGVnYWN5X3Nlc3Npb25faWQsCi0g
ICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgIjlhZWU4MmEy
ZDE4NmMxY2IzMmEzMjlkOWRjZmUwMDRhMWE0MzhhZDA0ODVhNTNjNmJmY2Y1NWMxMzJhMjMyMzUi
Ci0gICAgICAgICAgICApLAotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICBoZWxsby5jaXBoZXJfc3VpdGVzLAotICAgICAgICAgICAgWwotICAgICAgICAg
ICAgICAgIHRscy5DaXBoZXJTdWl0ZS5BRVNfMjU2X0dDTV9TSEEzODQsCi0gICAgICAgICAgICAg
ICAgdGxzLkNpcGhlclN1aXRlLkFFU18xMjhfR0NNX1NIQTI1NiwKLSAgICAgICAgICAgICAgICB0
bHMuQ2lwaGVyU3VpdGUuQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LAotICAgICAgICAgICAgXSwK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLmxlZ2FjeV9jb21wcmVz
c2lvbl9tZXRob2RzLCBbdGxzLkNvbXByZXNzaW9uTWV0aG9kLk5VTExdKQotCi0gICAgICAgICMg
ZXh0ZW5zaW9ucwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLmFscG5fcHJvdG9jb2xz
LCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ua2V5
X3NoYXJlLAotICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgICgKLSAgICAgICAgICAgICAg
ICAgICAgdGxzLkdyb3VwLlNFQ1AyNTZSMSwKLSAgICAgICAgICAgICAgICAgICAgYmluYXNjaWku
dW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAgICAgIjA0N2JmZWEzNDQ0Njc1MzUwNTQy
NjNiNzVkZWY2MGNmZmE4MjQwNWEyMTFiNjhkMWViOGQxZDk0NGU2N2FlZjgiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAiOTNjNzY2NWE1NDczZDAzMmNmYWYyMmE3M2RhMjhlYjRhYWNhZTAwMTdl
ZDEyNTU3YjU3OTFmOThhMWU4NGYxNSIKLSAgICAgICAgICAgICAgICAgICAgICAgICJiMCIKLSAg
ICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBdLAot
ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5w
c2tfa2V5X2V4Y2hhbmdlX21vZGVzLCBbdGxzLlBza0tleUV4Y2hhbmdlTW9kZS5QU0tfREhFX0tF
XQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uc2VydmVyX25hbWUs
IE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5zaWdu
YXR1cmVfYWxnb3JpdGhtcywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMuU2ln
bmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxz
LlNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMjU2UjFfU0hBMjU2LAotICAgICAgICAgICAg
ICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTI1NiwKLSAgICAgICAgICAg
ICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEExLAotICAgICAgICAgICAg
XSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnN1cHBvcnRlZF9n
cm91cHMsIFt0bHMuR3JvdXAuU0VDUDI1NlIxXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIGhlbGxvLnN1cHBvcnRlZF92ZXJzaW9ucywKLSAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zLAotICAgICAgICAgICAgICAgIHRscy5U
TFNfVkVSU0lPTl8xXzNfRFJBRlRfMjgsCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9O
XzFfM19EUkFGVF8yNywKLSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZU
XzI2LAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBoZWxsby5vdGhlcl9leHRlbnNpb25zLAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUu
UVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywKLSAgICAgICAgICAgICAgICAgICAgQ0xJRU5UX1FV
SUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
XSwKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3RfcHVsbF9jbGllbnRfaGVsbG9fd2l0aF9hbHBu
KHNlbGYpOgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfY2xpZW50X2hlbGxv
X3dpdGhfYWxwbi5iaW4iKSkKLSAgICAgICAgaGVsbG8gPSBwdWxsX2NsaWVudF9oZWxsbyhidWYp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLnJhbmRvbSwKLSAgICAgICAgICAgIGJpbmFzY2lp
LnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiZWQ1NzVjNmZiZDU5OWM0ZGZhYWJkMDAzZGNh
NmU4NjBjY2RiMGUxNzgyYzFhZjAyZTU3YmYyN2NiNjQ3OWI3NiIKLSAgICAgICAgICAgICksCi0g
ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5sZWdhY3lfc2Vzc2lvbl9p
ZCwgYiIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8uY2lw
aGVyX3N1aXRlcywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVyU3Vp
dGUuQUVTXzEyOF9HQ01fU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5DaXBoZXJTdWl0ZS5B
RVNfMjU2X0dDTV9TSEEzODQsCi0gICAgICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkNIQUNI
QTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuRU1Q
VFlfUkVORUdPVElBVElPTl9JTkZPX1NDU1YsCi0gICAgICAgICAgICBdLAotICAgICAgICApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8ubGVnYWN5X2NvbXByZXNzaW9uX21ldGhvZHMs
IFt0bHMuQ29tcHJlc3Npb25NZXRob2QuTlVMTF0pCi0KLSAgICAgICAgIyBleHRlbnNpb25zCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uYWxwbl9wcm90b2NvbHMsIFsiaDMtMTkiXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5lYXJseV9kYXRhLCBGYWxzZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmtleV9zaGFyZSwKLSAgICAg
ICAgICAgIFsKLSAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgIHRscy5Hcm91
cC5TRUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICIwNDg4NDIzMTVjNDM3YmIwY2UyOTI5YzgxNmZlZTRlOTQy
ZWM1Y2I2ZGI2YTZiOWJmNjIyNjgwMTg4ZWJiMGQ0IgotICAgICAgICAgICAgICAgICAgICAgICAg
ImI2NTJlNjkwMzNmNzE2ODZhYTAxY2JjNzkxNTU4NjZlMjY0YzlmMzNmNDVhYTE2YjBkZmExMGEy
MjJlM2E2NjkiCi0gICAgICAgICAgICAgICAgICAgICAgICAiMjIiCi0gICAgICAgICAgICAgICAg
ICAgICksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ucHNrX2tleV9leGNoYW5n
ZV9tb2RlcywgW3Rscy5Qc2tLZXlFeGNoYW5nZU1vZGUuUFNLX0RIRV9LRV0KLSAgICAgICAgKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnNlcnZlcl9uYW1lLCAiY2xvdWRmbGFyZS1x
dWljLmNvbSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5z
aWduYXR1cmVfYWxnb3JpdGhtcywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMu
U2lnbmF0dXJlQWxnb3JpdGhtLkVDRFNBX1NFQ1AyNTZSMV9TSEEyNTYsCi0gICAgICAgICAgICAg
ICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMzg0UjFfU0hBMzg0LAotICAgICAg
ICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uRUNEU0FfU0VDUDUyMVIxX1NIQTUxMiwK
LSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLkVEMjU1MTksCi0gICAgICAg
ICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5FRDQ0OCwKLSAgICAgICAgICAgICAgICB0
bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUFNTX1NIQTI1NiwKLSAgICAgICAgICAgICAg
ICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUFNTX1NIQTM4NCwKLSAgICAgICAgICAg
ICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUFNTX1NIQTUxMiwKLSAgICAgICAg
ICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEyNTYsCi0gICAg
ICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hBMzg0LAot
ICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BTU19SU0FFX1NIQTUx
MiwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEEy
NTYsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hB
Mzg0LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NI
QTUxMiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIGhlbGxvLnN1cHBvcnRlZF9ncm91cHMsCi0gICAgICAgICAgICBbCi0g
ICAgICAgICAgICAgICAgdGxzLkdyb3VwLlNFQ1AyNTZSMSwKLSAgICAgICAgICAgICAgICB0bHMu
R3JvdXAuWDI1NTE5LAotICAgICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQMzg0UjEsCi0gICAg
ICAgICAgICAgICAgdGxzLkdyb3VwLlNFQ1A1MjFSMSwKLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5zdXBwb3J0ZWRfdmVyc2lvbnMsIFt0
bHMuVExTX1ZFUlNJT05fMV8zXSkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBidWYg
PSBCdWZmZXIoMTAwMCkKLSAgICAgICAgcHVzaF9jbGllbnRfaGVsbG8oYnVmLCBoZWxsbykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYnVmLmRhdGEpLCBsZW4obG9hZCgidGxzX2NsaWVu
dF9oZWxsb193aXRoX2FscG4uYmluIikpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9jbGllbnRfaGVs
bG9fd2l0aF9wc2soc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRsc19j
bGllbnRfaGVsbG9fd2l0aF9wc2suYmluIikpCi0gICAgICAgIGhlbGxvID0gcHVsbF9jbGllbnRf
aGVsbG8oYnVmKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uZWFybHlfZGF0YSwg
VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLnByZV9z
aGFyZWRfa2V5LAotICAgICAgICAgICAgdGxzLk9mZmVyZWRQc2tzKAotICAgICAgICAgICAgICAg
IGlkZW50aXRpZXM9WwotICAgICAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImZh
YjNkYzdkNzlmMzVlYTUzZTlhZGYyMTE1MGU2MDE1OTFhNzUwYjgwY2RlMGNkMTY3ZmVmNmUwY2Ri
YzAzMmEiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImM0MTYxZmM1YzViNjY2NzlkZTQ5
NTI0YmQ1NjI0YzUwZDcxYmEzZTY1MDc4MGE0YmZlNDAyZDZhMDZhMDA1MjUiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIjBiNWRjNTIwODUyMzNiNjlkMGRkMTM5MjRjYzVjNzEzYTM5Njc4
NGVjYWZjNTlmNWVhNzNjMTU4NWQ3OTYyMWIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IjhhOTRlNGYyMjkxYjE3NDI3ZDUxODVhYmY0YTk5NGZjYTc0ZWU3YTdmOTkzYTk1MGM3MTAwM2Zj
N2NmOCIKLSAgICAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAyMDY3MTU2Mzc4LAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICBiaW5kZXJzPVsKLSAgICAgICAgICAgICAgICAgICAgYmluYXNjaWku
dW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAgICAgIjE3ODhhZDQzZmRmZjM3Y2ZjNjI4
ZjI0YjZjZTdjOGM3NjE4MDcwNTM4MGRhMTdkYTMyODExYjViYWU0ZTc4IgotICAgICAgICAgICAg
ICAgICAgICAgICAgImQ3YWFhZjY1YTliNzEzODcyZjJiYjI4ODE4Y2ExYTZiMDEiCi0gICAgICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKSwKLSAgICAg
ICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAgICAgIyBz
ZXJpYWxpemUKLSAgICAgICAgYnVmID0gQnVmZmVyKDEwMDApCi0gICAgICAgIHB1c2hfY2xpZW50
X2hlbGxvKGJ1ZiwgaGVsbG8pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLmRhdGEsIGxv
YWQoInRsc19jbGllbnRfaGVsbG9fd2l0aF9wc2suYmluIikpCi0KLSAgICBkZWYgdGVzdF9wdWxs
X2NsaWVudF9oZWxsb193aXRoX3NuaShzZWxmKToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9
bG9hZCgidGxzX2NsaWVudF9oZWxsb193aXRoX3NuaS5iaW4iKSkKLSAgICAgICAgaGVsbG8gPSBw
dWxsX2NsaWVudF9oZWxsbyhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLnJhbmRvbSwK
LSAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiOTg3ZDg5
MzQxNDBiMGE0MmNjNTU0NTA3MWYzZjlmN2Y2MTk2M2Q3YjY0MDRlYjY3NGM4ZGJlNTEzNjA0MzQ2
YiIKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIGhlbGxvLmxlZ2FjeV9zZXNzaW9uX2lkLAotICAgICAgICAgICAgYmluYXNj
aWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICIyNmIxOWJkZDMwZGJmNzUxMDE1YTNhMTZl
MTNiZDU5MDAyZGZlNDIwYjc5OWQyYTVjZDVlMTFiOGZhN2JjYjY2IgotICAgICAgICAgICAgKSwK
LSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8u
Y2lwaGVyX3N1aXRlcywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVy
U3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0LAotICAgICAgICAgICAgICAgIHRscy5DaXBoZXJTdWl0
ZS5BRVNfMTI4X0dDTV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkNI
QUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5sZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kcywgW3Rs
cy5Db21wcmVzc2lvbk1ldGhvZC5OVUxMXSkKLQotICAgICAgICAjIGV4dGVuc2lvbnMKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5hbHBuX3Byb3RvY29scywgTm9uZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmtleV9zaGFyZSwKLSAgICAgICAg
ICAgIFsKLSAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgIHRscy5Hcm91cC5T
RUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICIwNGI2MmQ3MGY5MDdjODE0Y2Q2NWQwZjczYjhiOTkxZjA2Yjcw
Yzc3MTUzZjU0ODQxMGExOTFkMmIxOTc2NGEyIgotICAgICAgICAgICAgICAgICAgICAgICAgImVj
YzA2MDY1YTQ4MGVmYTllMWYxMGM4ZGE2ZTczN2Q1YmZjMDRiZTNmNzczZTIwYTBjOTk3ZjUxYjU2
MjEyODAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiNDAiCi0gICAgICAgICAgICAgICAgICAg
ICksCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ucHNrX2tleV9leGNoYW5nZV9t
b2RlcywgW3Rscy5Qc2tLZXlFeGNoYW5nZU1vZGUuUFNLX0RIRV9LRV0KLSAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnNlcnZlcl9uYW1lLCAiY2xvdWRmbGFyZS1xdWlj
LmNvbSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5zaWdu
YXR1cmVfYWxnb3JpdGhtcywKLSAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICB0bHMuU2ln
bmF0dXJlQWxnb3JpdGhtLlJTQV9QU1NfUlNBRV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxz
LlNpZ25hdHVyZUFsZ29yaXRobS5FQ0RTQV9TRUNQMjU2UjFfU0hBMjU2LAotICAgICAgICAgICAg
ICAgIHRscy5TaWduYXR1cmVBbGdvcml0aG0uUlNBX1BLQ1MxX1NIQTI1NiwKLSAgICAgICAgICAg
ICAgICB0bHMuU2lnbmF0dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEExLAotICAgICAgICAgICAg
XSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnN1cHBvcnRlZF9n
cm91cHMsIFt0bHMuR3JvdXAuU0VDUDI1NlIxXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
LSAgICAgICAgICAgIGhlbGxvLnN1cHBvcnRlZF92ZXJzaW9ucywKLSAgICAgICAgICAgIFsKLSAg
ICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zLAotICAgICAgICAgICAgICAgIHRscy5U
TFNfVkVSU0lPTl8xXzNfRFJBRlRfMjgsCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9O
XzFfM19EUkFGVF8yNywKLSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZU
XzI2LAotICAgICAgICAgICAgXSwKLSAgICAgICAgKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICBoZWxsby5vdGhlcl9leHRlbnNpb25zLAotICAgICAgICAgICAgWwot
ICAgICAgICAgICAgICAgICgKLSAgICAgICAgICAgICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUu
UVVJQ19UUkFOU1BPUlRfUEFSQU1FVEVSUywKLSAgICAgICAgICAgICAgICAgICAgQ0xJRU5UX1FV
SUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
XSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZl
cigxMDAwKQotICAgICAgICBwdXNoX2NsaWVudF9oZWxsbyhidWYsIGhlbGxvKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2FkKCJ0bHNfY2xpZW50X2hlbGxvX3dpdGhfc25p
LmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVzaF9jbGllbnRfaGVsbG8oc2VsZik6Ci0gICAgICAg
IGhlbGxvID0gQ2xpZW50SGVsbG8oCi0gICAgICAgICAgICByYW5kb209YmluYXNjaWkudW5oZXhs
aWZ5KAotICAgICAgICAgICAgICAgICIxOGIyYjIzYmYzZTQ0YjVkNTJjY2ZlN2FlY2JjNWZmMTRl
YWRjM2QzNDlmYWJmODA0ZDcxZjE2NWFlNzZlN2Q1IgotICAgICAgICAgICAgKSwKLSAgICAgICAg
ICAgIGxlZ2FjeV9zZXNzaW9uX2lkPWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAg
ICAiOWFlZTgyYTJkMTg2YzFjYjMyYTMyOWQ5ZGNmZTAwNGExYTQzOGFkMDQ4NWE1M2M2YmZjZjU1
YzEzMmEyMzIzNSIKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBjaXBoZXJfc3VpdGVzPVsK
LSAgICAgICAgICAgICAgICB0bHMuQ2lwaGVyU3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0LAotICAg
ICAgICAgICAgICAgIHRscy5DaXBoZXJTdWl0ZS5BRVNfMTI4X0dDTV9TSEEyNTYsCi0gICAgICAg
ICAgICAgICAgdGxzLkNpcGhlclN1aXRlLkNIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICBsZWdhY3lfY29tcHJlc3Npb25fbWV0aG9kcz1bdGxzLkNv
bXByZXNzaW9uTWV0aG9kLk5VTExdLAotICAgICAgICAgICAga2V5X3NoYXJlPVsKLSAgICAgICAg
ICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgIHRscy5Hcm91cC5TRUNQMjU2UjEsCi0gICAg
ICAgICAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICIwNDdiZmVhMzQ0NDY3NTM1MDU0MjYzYjc1ZGVmNjBjZmZhODI0MDVhMjExYjY4ZDFlYjhk
MWQ5NDRlNjdhZWY4IgotICAgICAgICAgICAgICAgICAgICAgICAgIjkzYzc2NjVhNTQ3M2QwMzJj
ZmFmMjJhNzNkYTI4ZWI0YWFjYWUwMDE3ZWQxMjU1N2I1NzkxZjk4YTFlODRmMTUiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAiYjAiCi0gICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAg
ICAgICAgKQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHBza19rZXlfZXhjaGFuZ2VfbW9k
ZXM9W3Rscy5Qc2tLZXlFeGNoYW5nZU1vZGUuUFNLX0RIRV9LRV0sCi0gICAgICAgICAgICBzaWdu
YXR1cmVfYWxnb3JpdGhtcz1bCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25hdHVyZUFsZ29yaXRo
bS5SU0FfUFNTX1JTQUVfU0hBMjU2LAotICAgICAgICAgICAgICAgIHRscy5TaWduYXR1cmVBbGdv
cml0aG0uRUNEU0FfU0VDUDI1NlIxX1NIQTI1NiwKLSAgICAgICAgICAgICAgICB0bHMuU2lnbmF0
dXJlQWxnb3JpdGhtLlJTQV9QS0NTMV9TSEEyNTYsCi0gICAgICAgICAgICAgICAgdGxzLlNpZ25h
dHVyZUFsZ29yaXRobS5SU0FfUEtDUzFfU0hBMSwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICBzdXBwb3J0ZWRfZ3JvdXBzPVt0bHMuR3JvdXAuU0VDUDI1NlIxXSwKLSAgICAgICAgICAgIHN1
cHBvcnRlZF92ZXJzaW9ucz1bCi0gICAgICAgICAgICAgICAgdGxzLlRMU19WRVJTSU9OXzFfMywK
LSAgICAgICAgICAgICAgICB0bHMuVExTX1ZFUlNJT05fMV8zX0RSQUZUXzI4LAotICAgICAgICAg
ICAgICAgIHRscy5UTFNfVkVSU0lPTl8xXzNfRFJBRlRfMjcsCi0gICAgICAgICAgICAgICAgdGxz
LlRMU19WRVJTSU9OXzFfM19EUkFGVF8yNiwKLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICBv
dGhlcl9leHRlbnNpb25zPVsKLSAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAg
IHRscy5FeHRlbnNpb25UeXBlLlFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlMsCi0gICAgICAgICAg
ICAgICAgICAgIENMSUVOVF9RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAgICAgICAg
ICAgICkKLSAgICAgICAgICAgIF0sCi0gICAgICAgICkKLQotICAgICAgICBidWYgPSBCdWZmZXIo
MTAwMCkKLSAgICAgICAgcHVzaF9jbGllbnRfaGVsbG8oYnVmLCBoZWxsbykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChidWYuZGF0YSwgbG9hZCgidGxzX2NsaWVudF9oZWxsby5iaW4iKSkKLQot
ICAgIGRlZiB0ZXN0X3B1bGxfc2VydmVyX2hlbGxvKHNlbGYpOgotICAgICAgICBidWYgPSBCdWZm
ZXIoZGF0YT1sb2FkKCJ0bHNfc2VydmVyX2hlbGxvLmJpbiIpKQotICAgICAgICBoZWxsbyA9IHB1
bGxfc2VydmVyX2hlbGxvKGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkK
LQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaGVsbG8ucmFuZG9tLAot
ICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICJhZGE4NTI3
MWQxOTY4MGM2MTVlYTczMzY1MTllM2ZkZjZmMWUyNmYzYjEwNzVlZTFkZTk2ZmZhODg4NGU4Mjgw
IgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgaGVsbG8ubGVnYWN5X3Nlc3Npb25faWQsCi0gICAgICAgICAgICBiaW5hc2Np
aS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgIjlhZWU4MmEyZDE4NmMxY2IzMmEzMjlkOWRj
ZmUwMDRhMWE0MzhhZDA0ODVhNTNjNmJmY2Y1NWMxMzJhMjMyMzUiCi0gICAgICAgICAgICApLAot
ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uY2lwaGVyX3N1aXRlLCB0
bHMuQ2lwaGVyU3VpdGUuQUVTXzI1Nl9HQ01fU0hBMzg0KQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGhlbGxvLmNvbXByZXNzaW9uX21ldGhvZCwgdGxzLkNvbXByZXNzaW9uTWV0aG9kLk5VTEwp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBoZWxsby5rZXlfc2hhcmUs
Ci0gICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgdGxzLkdyb3VwLlNFQ1AyNTZSMSwKLSAg
ICAgICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgICAgICIw
NDhiMjdkMDI4MjI0MmQ4NGI3ZmNjMDJhOWM0ZjEzZWNhMDMyOWUzYzcwMjlhYTM0YTMzNzk0ZTZl
N2JhMTg5IgotICAgICAgICAgICAgICAgICAgICAiNWNjYTFjNTAzYmYwMzc4YWM2OTM3YzM1NDkx
MjExNmZmMzI1MTAyNmJjYTE5NThkN2YzODczMTZjODNhZTZjZiIKLSAgICAgICAgICAgICAgICAg
ICAgImIyIgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICApLAotICAgICAgICApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8ucHJlX3NoYXJlZF9rZXksIE5vbmUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8uc3VwcG9ydGVkX3ZlcnNpb24sIHRscy5UTFNfVkVS
U0lPTl8xXzMpCi0KLSAgICBkZWYgdGVzdF9wdWxsX3NlcnZlcl9oZWxsb193aXRoX3BzayhzZWxm
KToKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9hZCgidGxzX3NlcnZlcl9oZWxsb193aXRo
X3Bzay5iaW4iKSkKLSAgICAgICAgaGVsbG8gPSBwdWxsX3NlcnZlcl9oZWxsbyhidWYpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgIGhlbGxvLnJhbmRvbSwKLSAgICAgICAgICAgIGJpbmFzY2lpLnVuaGV4
bGlmeSgKLSAgICAgICAgICAgICAgICAiY2NiYWFmMDRmYzFiZDUxNDNiMmNjNmI5NzUyMGNmMzdk
OTE0NzBkYmZjODEyNzEzMWE3YmYwZjk0MWUzYTEzNyIKLSAgICAgICAgICAgICksCi0gICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGhlbGxvLmxlZ2FjeV9z
ZXNzaW9uX2lkLAotICAgICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAg
ICAgICI5NDgzZTdlODk1ZDBmNGNlYzE3MDg2YjA4NDk2MDFjMDYzMjY2MmNkNzY0ZTgyOGYyZjg5
MmY0YzRiNzc3MWIwIgotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGhlbGxvLmNpcGhlcl9zdWl0ZSwgdGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NN
X1NIQTM4NCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWxsby5jb21wcmVzc2lvbl9tZXRo
b2QsIHRscy5Db21wcmVzc2lvbk1ldGhvZC5OVUxMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAotICAgICAgICAgICAgaGVsbG8ua2V5X3NoYXJlLAotICAgICAgICAgICAgKAotICAgICAgICAg
ICAgICAgIHRscy5Hcm91cC5TRUNQMjU2UjEsCi0gICAgICAgICAgICAgICAgYmluYXNjaWkudW5o
ZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAiMDQ4NWQ3Y2VjYmViZmM1NDhmYzY1N2JmNTFi
OGU4ZGE4NDJhNDA1NmIxNjRhMjdmNzcwMmNhMzE4YzE2ZTQ4OCIKLSAgICAgICAgICAgICAgICAg
ICAgIjE4YjY0MDk1OTNiMTVjNjY0OWQ2ZjQ1OTM4N2E1MzEyOGIxNjQxNzhhZGM4NDAxNzlhYWQw
MWQzNmNlOTVkNjIiCi0gICAgICAgICAgICAgICAgICAgICI3NiIKLSAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhl
bGxvLnByZV9zaGFyZWRfa2V5LCAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlbGxvLnN1
cHBvcnRlZF92ZXJzaW9uLCB0bHMuVExTX1ZFUlNJT05fMV8zKQotCi0gICAgICAgICMgc2VyaWFs
aXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigxMDAwKQotICAgICAgICBwdXNoX3NlcnZlcl9oZWxs
byhidWYsIGhlbGxvKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2FkKCJ0
bHNfc2VydmVyX2hlbGxvX3dpdGhfcHNrLmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9zZXJ2
ZXJfaGVsbG9fd2l0aF91bmtub3duX2V4dGVuc2lvbihzZWxmKToKLSAgICAgICAgYnVmID0gQnVm
ZmVyKGRhdGE9bG9hZCgidGxzX3NlcnZlcl9oZWxsb193aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJp
biIpKQotICAgICAgICBoZWxsbyA9IHB1bGxfc2VydmVyX2hlbGxvKGJ1ZikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgaGVsbG8sCi0gICAgICAgICAgICBTZXJ2ZXJIZWxsbygKLSAgICAgICAgICAgICAg
ICByYW5kb209YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAiYWRhODUy
NzFkMTk2ODBjNjE1ZWE3MzM2NTE5ZTNmZGY2ZjFlMjZmM2IxMDc1ZWUxZGU5NmZmYTg4ODRlODI4
MCIKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGxlZ2FjeV9zZXNzaW9uX2lk
PWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgIjlhZWU4MmEyZDE4NmMx
Y2IzMmEzMjlkOWRjZmUwMDRhMWE0MzhhZDA0ODVhNTNjNmJmY2Y1NWMxMzJhMjMyMzUiCi0gICAg
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBjaXBoZXJfc3VpdGU9dGxzLkNpcGhlclN1
aXRlLkFFU18yNTZfR0NNX1NIQTM4NCwKLSAgICAgICAgICAgICAgICBjb21wcmVzc2lvbl9tZXRo
b2Q9dGxzLkNvbXByZXNzaW9uTWV0aG9kLk5VTEwsCi0gICAgICAgICAgICAgICAga2V5X3NoYXJl
PSgKLSAgICAgICAgICAgICAgICAgICAgdGxzLkdyb3VwLlNFQ1AyNTZSMSwKLSAgICAgICAgICAg
ICAgICAgICAgYmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICAgICAgICAgIjA0
OGIyN2QwMjgyMjQyZDg0YjdmY2MwMmE5YzRmMTNlY2EwMzI5ZTNjNzAyOWFhMzRhMzM3OTRlNmU3
YmExODkiCi0gICAgICAgICAgICAgICAgICAgICAgICAiNWNjYTFjNTAzYmYwMzc4YWM2OTM3YzM1
NDkxMjExNmZmMzI1MTAyNmJjYTE5NThkN2YzODczMTZjODNhZTZjZiIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJiMiIKLSAgICAgICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAp
LAotICAgICAgICAgICAgICAgIHN1cHBvcnRlZF92ZXJzaW9uPXRscy5UTFNfVkVSU0lPTl8xXzMs
Ci0gICAgICAgICAgICAgICAgb3RoZXJfZXh0ZW5zaW9ucz1bKDEyMzQ1LCBiImZvbyIpXSwKLSAg
ICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAgICAjIHNlcmlhbGl6ZQotICAgICAgICBi
dWYgPSBCdWZmZXIoMTAwMCkKLSAgICAgICAgcHVzaF9zZXJ2ZXJfaGVsbG8oYnVmLCBoZWxsbykK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYuZGF0YSwgbG9hZCgidGxzX3NlcnZlcl9oZWxs
b193aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVzaF9zZXJ2
ZXJfaGVsbG8oc2VsZik6Ci0gICAgICAgIGhlbGxvID0gU2VydmVySGVsbG8oCi0gICAgICAgICAg
ICByYW5kb209YmluYXNjaWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICJhZGE4NTI3MWQx
OTY4MGM2MTVlYTczMzY1MTllM2ZkZjZmMWUyNmYzYjEwNzVlZTFkZTk2ZmZhODg4NGU4MjgwIgot
ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGxlZ2FjeV9zZXNzaW9uX2lkPWJpbmFzY2lpLnVu
aGV4bGlmeSgKLSAgICAgICAgICAgICAgICAiOWFlZTgyYTJkMTg2YzFjYjMyYTMyOWQ5ZGNmZTAw
NGExYTQzOGFkMDQ4NWE1M2M2YmZjZjU1YzEzMmEyMzIzNSIKLSAgICAgICAgICAgICksCi0gICAg
ICAgICAgICBjaXBoZXJfc3VpdGU9dGxzLkNpcGhlclN1aXRlLkFFU18yNTZfR0NNX1NIQTM4NCwK
LSAgICAgICAgICAgIGNvbXByZXNzaW9uX21ldGhvZD10bHMuQ29tcHJlc3Npb25NZXRob2QuTlVM
TCwKLSAgICAgICAgICAgIGtleV9zaGFyZT0oCi0gICAgICAgICAgICAgICAgdGxzLkdyb3VwLlNF
Q1AyNTZSMSwKLSAgICAgICAgICAgICAgICBiaW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAg
ICAgICAgICAgICIwNDhiMjdkMDI4MjI0MmQ4NGI3ZmNjMDJhOWM0ZjEzZWNhMDMyOWUzYzcwMjlh
YTM0YTMzNzk0ZTZlN2JhMTg5IgotICAgICAgICAgICAgICAgICAgICAiNWNjYTFjNTAzYmYwMzc4
YWM2OTM3YzM1NDkxMjExNmZmMzI1MTAyNmJjYTE5NThkN2YzODczMTZjODNhZTZjZiIKLSAgICAg
ICAgICAgICAgICAgICAgImIyIgotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICApLAot
ICAgICAgICAgICAgc3VwcG9ydGVkX3ZlcnNpb249dGxzLlRMU19WRVJTSU9OXzFfMywKLSAgICAg
ICAgKQotCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigxMDAwKQotICAgICAgICBwdXNoX3NlcnZlcl9o
ZWxsbyhidWYsIGhlbGxvKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2Fk
KCJ0bHNfc2VydmVyX2hlbGxvLmJpbiIpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9uZXdfc2Vzc2lv
bl90aWNrZXQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRsc19uZXdf
c2Vzc2lvbl90aWNrZXQuYmluIikpCi0gICAgICAgIG5ld19zZXNzaW9uX3RpY2tldCA9IHB1bGxf
bmV3X3Nlc3Npb25fdGlja2V0KGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUobmV3
X3Nlc3Npb25fdGlja2V0KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVmLmVvZigpKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBuZXdfc2Vzc2lvbl90aWNrZXQs
Ci0gICAgICAgICAgICBOZXdTZXNzaW9uVGlja2V0KAotICAgICAgICAgICAgICAgIHRpY2tldF9s
aWZldGltZT04NjQwMCwKLSAgICAgICAgICAgICAgICB0aWNrZXRfYWdlX2FkZD0zMzAzNDUyNDI1
LAotICAgICAgICAgICAgICAgIHRpY2tldF9ub25jZT1iIiIsCi0gICAgICAgICAgICAgICAgdGlj
a2V0PWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgImRiZTZmMWE3N2E3
OGMwNDI2YmZhNjA3Y2QwZDAyYjM1MDI0N2Q5MDYxODcwNDcwOTU5NmJlZGE3ZTk2MmNjODEiCi0g
ICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBtYXhfZWFybHlfZGF0YV9zaXplPTB4
RkZGRkZGRkYsCi0gICAgICAgICAgICApLAotICAgICAgICApCi0KLSAgICAgICAgIyBzZXJpYWxp
emUKLSAgICAgICAgYnVmID0gQnVmZmVyKDEwMCkKLSAgICAgICAgcHVzaF9uZXdfc2Vzc2lvbl90
aWNrZXQoYnVmLCBuZXdfc2Vzc2lvbl90aWNrZXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YnVmLmRhdGEsIGxvYWQoInRsc19uZXdfc2Vzc2lvbl90aWNrZXQuYmluIikpCi0KLSAgICBkZWYg
dGVzdF9wdWxsX25ld19zZXNzaW9uX3RpY2tldF93aXRoX3Vua25vd25fZXh0ZW5zaW9uKHNlbGYp
OgotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1sb2FkKCJ0bHNfbmV3X3Nlc3Npb25fdGlja2V0
X3dpdGhfdW5rbm93bl9leHRlbnNpb24uYmluIikpCi0gICAgICAgIG5ld19zZXNzaW9uX3RpY2tl
dCA9IHB1bGxfbmV3X3Nlc3Npb25fdGlja2V0KGJ1ZikKLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
dE5vbmUobmV3X3Nlc3Npb25fdGlja2V0KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVmLmVv
ZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBuZXdfc2Vzc2lv
bl90aWNrZXQsCi0gICAgICAgICAgICBOZXdTZXNzaW9uVGlja2V0KAotICAgICAgICAgICAgICAg
IHRpY2tldF9saWZldGltZT04NjQwMCwKLSAgICAgICAgICAgICAgICB0aWNrZXRfYWdlX2FkZD0z
MzAzNDUyNDI1LAotICAgICAgICAgICAgICAgIHRpY2tldF9ub25jZT1iIiIsCi0gICAgICAgICAg
ICAgICAgdGlja2V0PWJpbmFzY2lpLnVuaGV4bGlmeSgKLSAgICAgICAgICAgICAgICAgICAgImRi
ZTZmMWE3N2E3OGMwNDI2YmZhNjA3Y2QwZDAyYjM1MDI0N2Q5MDYxODcwNDcwOTU5NmJlZGE3ZTk2
MmNjODEiCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBtYXhfZWFybHlfZGF0
YV9zaXplPTB4RkZGRkZGRkYsCi0gICAgICAgICAgICAgICAgb3RoZXJfZXh0ZW5zaW9ucz1bKDEy
MzQ1LCBiImZvbyIpXSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotICAgICAgICAjIHNl
cmlhbGl6ZQotICAgICAgICBidWYgPSBCdWZmZXIoMTAwKQotICAgICAgICBwdXNoX25ld19zZXNz
aW9uX3RpY2tldChidWYsIG5ld19zZXNzaW9uX3RpY2tldCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgIGJ1Zi5kYXRhLCBsb2FkKCJ0bHNfbmV3X3Nlc3Npb25fdGlja2V0
X3dpdGhfdW5rbm93bl9leHRlbnNpb24uYmluIikKLSAgICAgICAgKQotCi0gICAgZGVmIHRlc3Rf
ZW5jcnlwdGVkX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAgIGRhdGEgPSBsb2FkKCJ0bHNfZW5j
cnlwdGVkX2V4dGVuc2lvbnMuYmluIikKLSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9ZGF0YSkK
LSAgICAgICAgZXh0ZW5zaW9ucyA9IHB1bGxfZW5jcnlwdGVkX2V4dGVuc2lvbnMoYnVmKQotICAg
ICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShleHRlbnNpb25zKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoYnVmLmVvZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAg
ICBleHRlbnNpb25zLAotICAgICAgICAgICAgRW5jcnlwdGVkRXh0ZW5zaW9ucygKLSAgICAgICAg
ICAgICAgICBvdGhlcl9leHRlbnNpb25zPVsKLSAgICAgICAgICAgICAgICAgICAgKAotICAgICAg
ICAgICAgICAgICAgICAgICAgdGxzLkV4dGVuc2lvblR5cGUuUVVJQ19UUkFOU1BPUlRfUEFSQU1F
VEVSUywKLSAgICAgICAgICAgICAgICAgICAgICAgIFNFUlZFUl9RVUlDX1RSQU5TUE9SVF9QQVJB
TUVURVJTLAotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXQotICAgICAg
ICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9
IEJ1ZmZlcihjYXBhY2l0eT0xMDApCi0gICAgICAgIHB1c2hfZW5jcnlwdGVkX2V4dGVuc2lvbnMo
YnVmLCBleHRlbnNpb25zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBkYXRh
KQotCi0gICAgZGVmIHRlc3RfZW5jcnlwdGVkX2V4dGVuc2lvbnNfd2l0aF9hbHBuKHNlbGYpOgot
ICAgICAgICBkYXRhID0gbG9hZCgidGxzX2VuY3J5cHRlZF9leHRlbnNpb25zX3dpdGhfYWxwbi5i
aW4iKQotICAgICAgICBidWYgPSBCdWZmZXIoZGF0YT1kYXRhKQotICAgICAgICBleHRlbnNpb25z
ID0gcHVsbF9lbmNyeXB0ZWRfZXh0ZW5zaW9ucyhidWYpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b3ROb25lKGV4dGVuc2lvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShidWYuZW9mKCkpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGV4dGVuc2lvbnMsCi0gICAg
ICAgICAgICBFbmNyeXB0ZWRFeHRlbnNpb25zKAotICAgICAgICAgICAgICAgIGFscG5fcHJvdG9j
b2w9ImhxLTIwIiwKLSAgICAgICAgICAgICAgICBvdGhlcl9leHRlbnNpb25zPVsKLSAgICAgICAg
ICAgICAgICAgICAgKHRscy5FeHRlbnNpb25UeXBlLlNFUlZFUl9OQU1FLCBiIiIpLAotICAgICAg
ICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICB0bHMuRXh0ZW5zaW9uVHlw
ZS5RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAgICAgICAgICAgICAgICAgICAgU0VS
VkVSX1FVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlNfMiwKLSAgICAgICAgICAgICAgICAgICAgKSwK
LSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAgICAg
ICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigxMTUpCi0gICAgICAgIHB1c2hfZW5j
cnlwdGVkX2V4dGVuc2lvbnMoYnVmLCBleHRlbnNpb25zKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoYnVmLmVvZigpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9lbmNyeXB0ZWRfZXh0ZW5zaW9uc193
aXRoX2FscG5fYW5kX2Vhcmx5X2RhdGEoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRh
PWxvYWQoInRsc19lbmNyeXB0ZWRfZXh0ZW5zaW9uc193aXRoX2FscG5fYW5kX2Vhcmx5X2RhdGEu
YmluIikpCi0gICAgICAgIGV4dGVuc2lvbnMgPSBwdWxsX2VuY3J5cHRlZF9leHRlbnNpb25zKGJ1
ZikKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoZXh0ZW5zaW9ucykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgZXh0ZW5zaW9ucywKLSAgICAgICAgICAgIEVuY3J5cHRlZEV4dGVuc2lvbnMoCi0g
ICAgICAgICAgICAgICAgYWxwbl9wcm90b2NvbD0iaHEtMjAiLAotICAgICAgICAgICAgICAgIGVh
cmx5X2RhdGE9VHJ1ZSwKLSAgICAgICAgICAgICAgICBvdGhlcl9leHRlbnNpb25zPVsKLSAgICAg
ICAgICAgICAgICAgICAgKHRscy5FeHRlbnNpb25UeXBlLlNFUlZFUl9OQU1FLCBiIiIpLAotICAg
ICAgICAgICAgICAgICAgICAoCi0gICAgICAgICAgICAgICAgICAgICAgICB0bHMuRXh0ZW5zaW9u
VHlwZS5RVUlDX1RSQU5TUE9SVF9QQVJBTUVURVJTLAotICAgICAgICAgICAgICAgICAgICAgICAg
U0VSVkVSX1FVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlNfMywKLSAgICAgICAgICAgICAgICAgICAg
KSwKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKQotCi0gICAg
ICAgICMgc2VyaWFsaXplCi0gICAgICAgIGJ1ZiA9IEJ1ZmZlcigxMTYpCi0gICAgICAgIHB1c2hf
ZW5jcnlwdGVkX2V4dGVuc2lvbnMoYnVmLCBleHRlbnNpb25zKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoYnVmLmVvZigpKQotCi0gICAgZGVmIHRlc3RfcHVsbF9jZXJ0aWZpY2F0ZShzZWxmKToK
LSAgICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9hZCgidGxzX2NlcnRpZmljYXRlLmJpbiIpKQot
ICAgICAgICBjZXJ0aWZpY2F0ZSA9IHB1bGxfY2VydGlmaWNhdGUoYnVmKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoYnVmLmVvZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2VydGlm
aWNhdGUucmVxdWVzdF9jb250ZXh0LCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2Vy
dGlmaWNhdGUuY2VydGlmaWNhdGVzLCBbKENFUlRJRklDQVRFX0RBVEEsIGIiIildKQotCi0gICAg
ZGVmIHRlc3RfcHVzaF9jZXJ0aWZpY2F0ZShzZWxmKToKLSAgICAgICAgY2VydGlmaWNhdGUgPSBD
ZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgIHJlcXVlc3RfY29udGV4dD1iIiIsIGNlcnRpZmljYXRl
cz1bKENFUlRJRklDQVRFX0RBVEEsIGIiIildCi0gICAgICAgICkKLQotICAgICAgICBidWYgPSBC
dWZmZXIoMTYwMCkKLSAgICAgICAgcHVzaF9jZXJ0aWZpY2F0ZShidWYsIGNlcnRpZmljYXRlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBsb2FkKCJ0bHNfY2VydGlmaWNhdGUu
YmluIikpCi0KLSAgICBkZWYgdGVzdF9wdWxsX2NlcnRpZmljYXRlX3ZlcmlmeShzZWxmKToKLSAg
ICAgICAgYnVmID0gQnVmZmVyKGRhdGE9bG9hZCgidGxzX2NlcnRpZmljYXRlX3ZlcmlmeS5iaW4i
KSkKLSAgICAgICAgdmVyaWZ5ID0gcHVsbF9jZXJ0aWZpY2F0ZV92ZXJpZnkoYnVmKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoYnVmLmVvZigpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dmVyaWZ5LmFsZ29yaXRobSwgdGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hB
MjU2KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZlcmlmeS5zaWduYXR1cmUsIENFUlRJRklD
QVRFX1ZFUklGWV9TSUdOQVRVUkUpCi0KLSAgICBkZWYgdGVzdF9wdXNoX2NlcnRpZmljYXRlX3Zl
cmlmeShzZWxmKToKLSAgICAgICAgdmVyaWZ5ID0gQ2VydGlmaWNhdGVWZXJpZnkoCi0gICAgICAg
ICAgICBhbGdvcml0aG09dGxzLlNpZ25hdHVyZUFsZ29yaXRobS5SU0FfUFNTX1JTQUVfU0hBMjU2
LAotICAgICAgICAgICAgc2lnbmF0dXJlPUNFUlRJRklDQVRFX1ZFUklGWV9TSUdOQVRVUkUsCi0g
ICAgICAgICkKLQotICAgICAgICBidWYgPSBCdWZmZXIoNDAwKQotICAgICAgICBwdXNoX2NlcnRp
ZmljYXRlX3ZlcmlmeShidWYsIHZlcmlmeSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYu
ZGF0YSwgbG9hZCgidGxzX2NlcnRpZmljYXRlX3ZlcmlmeS5iaW4iKSkKLQotICAgIGRlZiB0ZXN0
X3B1bGxfZmluaXNoZWQoc2VsZik6Ci0gICAgICAgIGJ1ZiA9IEJ1ZmZlcihkYXRhPWxvYWQoInRs
c19maW5pc2hlZC5iaW4iKSkKLSAgICAgICAgZmluaXNoZWQgPSBwdWxsX2ZpbmlzaGVkKGJ1ZikK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ1Zi5lb2YoKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgZmluaXNoZWQudmVyaWZ5X2RhdGEsCi0gICAgICAgICAgICBi
aW5hc2NpaS51bmhleGxpZnkoCi0gICAgICAgICAgICAgICAgImYxNTc5MjMyMzRmZjlhNDkyMWFh
ZGIyZTBlYzdiMWEzMGZjZTczZmI5ZWMwYzQyNzZmOWFmMjY4ZjQwOGVjNjgiCi0gICAgICAgICAg
ICApLAotICAgICAgICApCi0KLSAgICBkZWYgdGVzdF9wdXNoX2ZpbmlzaGVkKHNlbGYpOgotICAg
ICAgICBmaW5pc2hlZCA9IEZpbmlzaGVkKAotICAgICAgICAgICAgdmVyaWZ5X2RhdGE9YmluYXNj
aWkudW5oZXhsaWZ5KAotICAgICAgICAgICAgICAgICJmMTU3OTIzMjM0ZmY5YTQ5MjFhYWRiMmUw
ZWM3YjFhMzBmY2U3M2ZiOWVjMGM0Mjc2ZjlhZjI2OGY0MDhlYzY4IgotICAgICAgICAgICAgKQot
ICAgICAgICApCi0KLSAgICAgICAgYnVmID0gQnVmZmVyKDEyOCkKLSAgICAgICAgcHVzaF9maW5p
c2hlZChidWYsIGZpbmlzaGVkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zi5kYXRhLCBs
b2FkKCJ0bHNfZmluaXNoZWQuYmluIikpCi0KLQotY2xhc3MgVmVyaWZ5Q2VydGlmaWNhdGVUZXN0
KFRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF92ZXJpZnlfY2VydGlmaWNhdGVfY2hhaW4oc2VsZik6
Ci0gICAgICAgIHdpdGggb3BlbihTRVJWRVJfQ0VSVEZJTEUsICJyYiIpIGFzIGZwOgotICAgICAg
ICAgICAgY2VydGlmaWNhdGUgPSBsb2FkX3BlbV94NTA5X2NlcnRpZmljYXRlcyhmcC5yZWFkKCkp
WzBdCi0KLSAgICAgICAgd2l0aCBwYXRjaCgiYWlvcXVpYy50bHMudXRjbm93IikgYXMgbW9ja191
dGNub3c6Ci0gICAgICAgICAgICBtb2NrX3V0Y25vdy5yZXR1cm5fdmFsdWUgPSBjZXJ0aWZpY2F0
ZS5ub3RfdmFsaWRfYmVmb3JlCi0KLSAgICAgICAgICAgICMgZmFpbAotICAgICAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxlcnRCYWRDZXJ0aWZpY2F0ZSkgYXMgY206Ci0gICAg
ICAgICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBz
ZXJ2ZXJfbmFtZT0ibG9jYWxob3N0IikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgc3RyKGNtLmV4Y2VwdGlvbiksICJ1bmFibGUgdG8gZ2V0IGxvY2FsIGlz
c3VlciBjZXJ0aWZpY2F0ZSIKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBvawotICAg
ICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZmlsZT1TRVJW
RVJfQ0FDRVJURklMRSwKLSAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwK
LSAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZT0ibG9jYWxob3N0IiwKLSAgICAgICAgICAgICkK
LQotICAgIGRlZiB0ZXN0X3ZlcmlmeV9jZXJ0aWZpY2F0ZV9jaGFpbl9zZWxmX3NpZ25lZChzZWxm
KToKLSAgICAgICAgY2VydGlmaWNhdGUsIF8gPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSgKLSAg
ICAgICAgICAgIGNvbW1vbl9uYW1lPSJsb2NhbGhvc3QiLCBjdXJ2ZT1lYy5TRUNQMjU2UjEKLSAg
ICAgICAgKQotCi0gICAgICAgIHdpdGggcGF0Y2goImFpb3F1aWMudGxzLnV0Y25vdyIpIGFzIG1v
Y2tfdXRjbm93OgotICAgICAgICAgICAgbW9ja191dGNub3cucmV0dXJuX3ZhbHVlID0gY2VydGlm
aWNhdGUubm90X3ZhbGlkX2JlZm9yZQotCi0gICAgICAgICAgICAjIGZhaWwKLSAgICAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0QmFkQ2VydGlmaWNhdGUpIGFzIGNtOgot
ICAgICAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0
ZSwgc2VydmVyX25hbWU9ImxvY2FsaG9zdCIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cihjbS5leGNlcHRpb24pLCAic2VsZiBzaWduZWQgY2VydGlmaWNhdGUiKQotCi0gICAgICAg
ICAgICAjIG9rCi0gICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAgICAg
ICAgY2FkYXRhPWNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJpYWxpemF0aW9uLkVuY29kaW5n
LlBFTSksCi0gICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsCi0gICAgICAg
ICAgICAgICAgc2VydmVyX25hbWU9ImxvY2FsaG9zdCIsCi0gICAgICAgICAgICApCi0KLSAgICBA
cGF0Y2goImFpb3F1aWMudGxzLmxpYi5YNTA5X1NUT1JFX25ldyIpCi0gICAgZGVmIHRlc3RfdmVy
aWZ5X2NlcnRpZmljYXRlX2NoYWluX2ludGVybmFsX2Vycm9yKHNlbGYsIG1vY2tfc3RvcmVfbmV3
KToKLSAgICAgICAgbW9ja19zdG9yZV9uZXcucmV0dXJuX3ZhbHVlID0gdGxzLmZmaS5OVUxMCi0K
LSAgICAgICAgY2VydGlmaWNhdGUsIF8gPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSgKLSAgICAg
ICAgICAgIGNvbW1vbl9uYW1lPSJsb2NhbGhvc3QiLCBjdXJ2ZT1lYy5TRUNQMjU2UjEKLSAgICAg
ICAgKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0SW50ZXJuYWxF
cnJvcikgYXMgY206Ci0gICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAg
ICAgICAgY2FkYXRhPWNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJpYWxpemF0aW9uLkVuY29k
aW5nLlBFTSksCi0gICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsCi0gICAg
ICAgICAgICAgICAgc2VydmVyX25hbWU9ImxvY2FsaG9zdCIsCi0gICAgICAgICAgICApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICJPcGVuU1NMIGNhbGwgdG8g
WDUwOV9zdG9yZV9uZXcgZmFpbGVkIikKLQotICAgIGRlZiB0ZXN0X3ZlcmlmeV9kYXRlcyhzZWxm
KToKLSAgICAgICAgY2VydGlmaWNhdGUsIF8gPSBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZSgKLSAg
ICAgICAgICAgIGNvbW1vbl9uYW1lPSJleGFtcGxlLmNvbSIsIGN1cnZlPWVjLlNFQ1AyNTZSMQot
ICAgICAgICApCi0gICAgICAgIGNhZGF0YSA9IGNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJp
YWxpemF0aW9uLkVuY29kaW5nLlBFTSkKLQotICAgICAgICAjIMKgdG9vIGVhcmx5Ci0gICAgICAg
IHdpdGggcGF0Y2goImFpb3F1aWMudGxzLnV0Y25vdyIpIGFzIG1vY2tfdXRjbm93OgotICAgICAg
ICAgICAgbW9ja191dGNub3cucmV0dXJuX3ZhbHVlID0gKAotICAgICAgICAgICAgICAgIGNlcnRp
ZmljYXRlLm5vdF92YWxpZF9iZWZvcmUgLSBkYXRldGltZS50aW1lZGVsdGEoc2Vjb25kcz0xKQot
ICAgICAgICAgICAgKQotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh0bHMuQWxl
cnRDZXJ0aWZpY2F0ZUV4cGlyZWQpIGFzIGNtOgotICAgICAgICAgICAgICAgIHZlcmlmeV9jZXJ0
aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9
Y2VydGlmaWNhdGUsIHNlcnZlcl9uYW1lPSJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICAgICAp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAiQ2VydGlm
aWNhdGUgaXMgbm90IHZhbGlkIHlldCIpCi0KLSAgICAgICAgIyB2YWxpZAotICAgICAgICB3aXRo
IHBhdGNoKCJhaW9xdWljLnRscy51dGNub3ciKSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAg
IG1vY2tfdXRjbm93LnJldHVybl92YWx1ZSA9IGNlcnRpZmljYXRlLm5vdF92YWxpZF9iZWZvcmUK
LSAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICBjYWRhdGE9
Y2FkYXRhLCBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZSwgc2VydmVyX25hbWU9ImV4YW1wbGUuY29t
IgotICAgICAgICAgICAgKQotCi0gICAgICAgIHdpdGggcGF0Y2goImFpb3F1aWMudGxzLnV0Y25v
dyIpIGFzIG1vY2tfdXRjbm93OgotICAgICAgICAgICAgbW9ja191dGNub3cucmV0dXJuX3ZhbHVl
ID0gY2VydGlmaWNhdGUubm90X3ZhbGlkX2FmdGVyCi0gICAgICAgICAgICB2ZXJpZnlfY2VydGlm
aWNhdGUoCi0gICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlm
aWNhdGUsIHNlcnZlcl9uYW1lPSJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICkKLQotICAgICAg
ICAjIHRvbyBsYXRlCi0gICAgICAgIHdpdGggcGF0Y2goImFpb3F1aWMudGxzLnV0Y25vdyIpIGFz
IG1vY2tfdXRjbm93OgotICAgICAgICAgICAgbW9ja191dGNub3cucmV0dXJuX3ZhbHVlID0gY2Vy
dGlmaWNhdGUubm90X3ZhbGlkX2FmdGVyICsgZGF0ZXRpbWUudGltZWRlbHRhKAotICAgICAgICAg
ICAgICAgIHNlY29uZHM9MQotICAgICAgICAgICAgKQotICAgICAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyh0bHMuQWxlcnRDZXJ0aWZpY2F0ZUV4cGlyZWQpIGFzIGNtOgotICAgICAgICAg
ICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgY2FkYXRhPWNh
ZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHNlcnZlcl9uYW1lPSJleGFtcGxlLmNvbSIK
LSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5l
eGNlcHRpb24pLCAiQ2VydGlmaWNhdGUgaXMgbm8gbG9uZ2VyIHZhbGlkIikKLQotICAgIGRlZiB0
ZXN0X3ZlcmlmeV9zdWJqZWN0KHNlbGYpOgotICAgICAgICBjZXJ0aWZpY2F0ZSwgXyA9IGdlbmVy
YXRlX2VjX2NlcnRpZmljYXRlKAotICAgICAgICAgICAgY29tbW9uX25hbWU9ImV4YW1wbGUuY29t
IiwgY3VydmU9ZWMuU0VDUDI1NlIxCi0gICAgICAgICkKLSAgICAgICAgY2FkYXRhID0gY2VydGlm
aWNhdGUucHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2RpbmcuUEVNKQotCi0gICAgICAg
IHdpdGggcGF0Y2goImFpb3F1aWMudGxzLnV0Y25vdyIpIGFzIG1vY2tfdXRjbm93OgotICAgICAg
ICAgICAgbW9ja191dGNub3cucmV0dXJuX3ZhbHVlID0gY2VydGlmaWNhdGUubm90X3ZhbGlkX2Jl
Zm9yZQotCi0gICAgICAgICAgICAjIHZhbGlkCi0gICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNh
dGUoCi0gICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNh
dGUsIHNlcnZlcl9uYW1lPSJleGFtcGxlLmNvbSIKLSAgICAgICAgICAgICkKLQotICAgICAgICAg
ICAgIyBpbnZhbGlkCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHRscy5BbGVy
dEJhZENlcnRpZmljYXRlKSBhcyBjbToKLSAgICAgICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNh
dGUoCi0gICAgICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRhdGEsCi0gICAgICAgICAgICAgICAg
ICAgIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLAotICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJf
bmFtZT0idGVzdC5leGFtcGxlLmNvbSIsCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzdHIoY20uZXhjZXB0aW9uKSwKLSAg
ICAgICAgICAgICAgICAiaG9zdG5hbWUgJ3Rlc3QuZXhhbXBsZS5jb20nIGRvZXNuJ3QgbWF0Y2gg
J2V4YW1wbGUuY29tJyIsCi0gICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXModGxzLkFsZXJ0QmFkQ2VydGlmaWNhdGUpIGFzIGNtOgotICAgICAgICAgICAg
ICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAgICAgICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0
YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHNlcnZlcl9uYW1lPSJhY21lLmNvbSIKLSAgICAg
ICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ICAgIHN0cihjbS5leGNlcHRpb24pLCAiaG9zdG5hbWUgJ2FjbWUuY29tJyBkb2Vzbid0IG1hdGNo
ICdleGFtcGxlLmNvbSciCi0gICAgICAgICAgICApCi0KLSAgICBkZWYgdGVzdF92ZXJpZnlfc3Vi
amVjdF93aXRoX3N1YmphbHRuYW1lKHNlbGYpOgotICAgICAgICBjZXJ0aWZpY2F0ZSwgXyA9IGdl
bmVyYXRlX2VjX2NlcnRpZmljYXRlKAotICAgICAgICAgICAgYWx0ZXJuYXRpdmVfbmFtZXM9WyIq
LmV4YW1wbGUuY29tIiwgImV4YW1wbGUuY29tIl0sCi0gICAgICAgICAgICBjb21tb25fbmFtZT0i
ZXhhbXBsZS5jb20iLAotICAgICAgICAgICAgY3VydmU9ZWMuU0VDUDI1NlIxLAotICAgICAgICAp
Ci0gICAgICAgIGNhZGF0YSA9IGNlcnRpZmljYXRlLnB1YmxpY19ieXRlcyhzZXJpYWxpemF0aW9u
LkVuY29kaW5nLlBFTSkKLQotICAgICAgICB3aXRoIHBhdGNoKCJhaW9xdWljLnRscy51dGNub3ci
KSBhcyBtb2NrX3V0Y25vdzoKLSAgICAgICAgICAgIG1vY2tfdXRjbm93LnJldHVybl92YWx1ZSA9
IGNlcnRpZmljYXRlLm5vdF92YWxpZF9iZWZvcmUKLQotICAgICAgICAgICAgIyB2YWxpZAotICAg
ICAgICAgICAgdmVyaWZ5X2NlcnRpZmljYXRlKAotICAgICAgICAgICAgICAgIGNhZGF0YT1jYWRh
dGEsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlLCBzZXJ2ZXJfbmFtZT0iZXhhbXBsZS5jb20iCi0g
ICAgICAgICAgICApCi0gICAgICAgICAgICB2ZXJpZnlfY2VydGlmaWNhdGUoCi0gICAgICAgICAg
ICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHNlcnZlcl9uYW1l
PSJ0ZXN0LmV4YW1wbGUuY29tIgotICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAjIGludmFs
aWQKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModGxzLkFsZXJ0QmFkQ2VydGlm
aWNhdGUpIGFzIGNtOgotICAgICAgICAgICAgICAgIHZlcmlmeV9jZXJ0aWZpY2F0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgY2FkYXRhPWNhZGF0YSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsIHNl
cnZlcl9uYW1lPSJhY21lLmNvbSIKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHN0cihjbS5leGNlcHRpb24pLAotICAgICAg
ICAgICAgICAgICJob3N0bmFtZSAnYWNtZS5jb20nIGRvZXNuJ3QgbWF0Y2ggZWl0aGVyIG9mICcq
LmV4YW1wbGUuY29tJywgJ2V4YW1wbGUuY29tJyIsCi0gICAgICAgICAgICApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NlcnRpZmljYXRlLmJpbiBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90
ZXN0cy90bHNfY2VydGlmaWNhdGUuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
OWJkZTYyOTA1NDg1OTliYTg2Zjg1YzE1MDYxM2JmNzc2YWNkN2M5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpsaXRlcmFsIDE1MzgKemNtZDtQVkV4Q3khMXt9VV57WVY+PnFtbm9tZEZMbk9wSHVT
b0Q4UlI4KWltajJFYGNndlQ8cylkOTsxIVdufD1MCnpXaWFxSDxUbGBCVi05NnU2SzBCdEcqbU5D
MGRjcl5XQ0pRb0dWPTJqZzdlYyMkYGd4SDcyTlZtXkhMSF5HSiNedwp6ailyMGVBfFEzbEppUGco
TVlfcH15Mll0UVd2Tjk1YV5rIyg3NnVrWm1XQyFxIylmODU7PUQhezJJZENsUF85OGQKenMmKFE5
cTk5fH5kSDk/WWklVzcrNiYmK1FHS3Z4XzQzIU5PQT99ZEU/RzhnQjB8QUk1SUNKdW82TFR7MWkl
U2ZlCno3I0FVWGsmJV53eHJ3byMwVnYrWilXcTF4RmtlSTgtMF4qVk8wcm16KmhAeHtCK1hNK0di
WShgVCNuMjljaXs3dAp6QmZ0M34/eGJ3K0tEfkw+SmcxbEp2KHRedz90RWIqK2EtTTl6R1pyaSYq
aSVQJmlyMWp0aHd6XjQ+SypjeU1CR0EKek14e2l0Z240PEgkQ1YwKz53RCQwK2A4RjVHbi1INFVK
JCVOPjFfWFlYMHlmRG1DSSsmX2o8Wl5PVyhkNHRyZzQ5CnpLbUItb3dlKmVZSHhqPnBvQkpyNWIl
cFFqOEZNYyVkfFJlfWQ3RF80XkBKLWYoPT5oQFBlXiVnXm4xc1ZvPH0qbAp6WHxaPkVVY0VvamI5
cTtEPz1GdnBRNyl6dkNkLTtPd0FPUGd0QCZhaHgkclVqZ2teYmwlUjtTJXlNRk1XVTY9SnIKekNZ
b1JBKVNLcz0pKCkpNnlYUmxPYzJhWnhTMm19fTkoUlQpTjJoYX0xRVUpRmNSbSFvQEBncjZ3M31N
WEpWT2dQCnoxKHx9Y2B3WH4qanpxcnl4NEJyQCRTU3wqaXJGYncheWwjQFNFRlgkXypnYm9APURA
WEVCN3hhSnszKGBERXtERQp6PllaJntTPkxYRCtnNXM1SkA5JCVfNDRRNjE+Vl49emdRK3sobCE1
dDUkQ14mYF8jVV5wWSZzVz5lTVQkN3Z5KWEKejktUExzQFpMMXB1QVJQMiUhfnwtaTw9a14wQXBr
aUkxJE1UdmhXJmtIekNDI0EyMyNCYDU3N2l2Iz5CVHVgViE+CnoxQFRvYEt4dkxjbn5qbGBtN1NS
cCZTRW0pMFo5dmtscnRHSEtvcytfaF9RKER6bWsxeTlLI15DeGpSMlF8Rlh+Tgp6dCoyezM0UWZH
KG0wOExSTipZQSY/bXU8dyorcjlHPUIwfEtAQEh7cWRAfGtVdWBxQ25LYjEyQDZGbTF0OCNGZTwK
ejlMfnRkUWZeUmNVPDJiREZ0cihFbCN+PSQ+RmJ4STdNQ09ePkpALTxBYyYpdm1zJGM5KWkwPF9Q
RTFaTUQkeFRICnoyQnZWYGpCVDM0PSp+fHJGMz5rezFfZ3BWaTthUG1meUR4fDF0eDdxI09OKGJF
ZHlwVlB6ail5VCRGPkglWVgkNQp6RnFidGxzREpIPTYhPiFOeGR5fWpVQUApOSVwWVp6I2N5VHtV
ODF6fV9OSj9EZCV5R0NiPFcjVG5WUFExcVpSdGoKenB8NXJSZUR+ZDRURTUjLU5AZ3NtVXc3eEQt
ZmdGSGkzZz9LWU5pPjc5cDdmM0NAOyMtbmlVKEckQERpVzxWNSlDCno0WE1teGtONm9aWFFuTmYt
NyM3R1FJdXxfWTVlcj9pWC1kNCZXdmtZZU9Zaj0pRlIkcks+fERmP1ZvJGpfLTVPdAp6SWJ1SnFt
MiEwNT02YnFDVGRhUHxQcCRjZkZPXj9Fbj0xRHVOQTdqeCZKWE0ybSZsKi1JPG04Qjw7YHJQNEN7
eGYKejgoT3djSUlgfkY3anU4YjFeNEQjWkczdTBqM3YjVSt3cVEqdCVCV34/TmhaKSErLTZvLSk2
UHpseitzKFFhZ0BMCnpvdF9QYGRPdGVfdzB9Q2ZgUChwVFNIR085cTlMeFZYNlc+KSZUc09RPldx
KzZeVzhxYipNOFpgdiRiV0BSYTI5Twp6UXRifkRtM01HM19VK15meCRAZzI9LSpBKDQtTUFhNCgy
eXFsPmNQU0B5JWA3SDEkTzkyJXs9Syp+cF9WWXZaSVUKempTcFU3KSVVdTUhXnhARl87Sz43dExA
V2dgfGdscEhyWHc2aU9EYHZgSF54JU5BalQkaTtgRCNHY1cpRVVMcn00CgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jZXJ0aWZpY2F0ZV92ZXJpZnkuYmluIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rsc19jZXJ0aWZpY2F0ZV92ZXJpZnkuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmZjA4Mzk1MGI1MzhjMTIzZWI5ZWRjOGZjYmVkOTJlMTkzMjk1NzM1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDM5Mgp6Y21WOzMwZUFpbjAwRCN1MU9iNDhyT3U9
OWNPZDBBdnYzJTlDMj1tJTc9ciojITxiJmE+V3slRyV8V0NPQGByVmEKemw7OEd6ZWxANXMmVmlY
NzZ4Ozt+UlcmN156JUF6dSlmKXpsR0MrSTZPP3BjcyF9PG0oM0FYbSpiaG5xWCghLUdaCnpvITR+
QlhSYCRZekdQPVRlJmh8PlQ/ZSNUPElkV2hvNV4wQGhmWHdEVTc5QnB5QVIzSl4/YUBCeDMhQH5C
SmtNNQp6SDE9QUQmMSFEZngycnhjPWYmX2pkKmYlNGwtVmxtRTI2RXh2RSphYiZwTk43MT5seUM/
WGw7bE5MPHVXRDZ8ZTMKemBGPkU0dnUyQTk1QDdhKmQqSnxXQG0mQjdzTG5uUXJ6fnModDtMaVA8
Mj09MSR9fTJkTE09MTg/byYzYis+Yj92CnoxXl9GfiNteEpPYm1SeXZQODxoaGxJWVArJVlUdCpQ
YUo3N1R4WGRhfDBCZGwzNj5qMUNDMGFUT2I7ODhxWkM1KAp6YWJJM1lLbUVqWnFIfFMxVkZaYklB
WX5LSF57JVllbmBVP1MmWChvV201RHxRTSNzYkhHRndfJG95OHtRM19fQlgKbTt7YD56OD5QU0c4
aldUYDAhJXluOCZIV350SEMmKFooJEV0eVVNUUFRMnxAOFhUQUZYCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG8uYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3Rz
L3Rsc19jbGllbnRfaGVsbG8uYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTQw
YWVjZmM2OWZiODRkNWJlZDZiMWFhYzkxNjJlYzEzYTA0Njg2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpsaXRlcmFsIDI1OAp6Y21aUSVWRUQoKEVVe15tXzIoenZ1fGE0NFJsVjYwfEl1Jmw7bWUt
Q19CWiR6ZW9TM2dfV1l7Q3Rhblh8RjE4JiEKelpNMGJQPUFDfkdVUSo2bzdkKWJaa0xeRG5kZUNU
Kmt0cVk0RnExSCZGZiRfcSErSGl8MjZxTm0yNXw7UW1nO3x0CnpVRUU0ZFMpRyElJEclVEV8RXRM
JU4+TXVGO19GYDdEU3FrZWVvUWB8NzhPIV8hUlkqWXJSQkRaYG5JZShePzxTTgp6cUg2Zm9POEZU
SlUtKmt8Vjk7alo8WH5wMG0jTFNvbXR4PiQ7OX10NVV9MGZxVlBzK2l2Uk4zSWZWU3V8RmZsVXoK
eVUmPihxcE1nUDshSHxLS2Z1JXUhZnF7VnlPMHo/MDc2ejZecGZDZD8xQ3Z0KDB8eF8+TGtpRmdN
bEp4JEkjR0g2CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVs
bG9fd2l0aF9hbHBuLmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxvX3dp
dGhfYWxwbi5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMTNhM2U3NWUxNGQ2
ZDkyOTBmNWRhNDI5YTMyNTAyZDdjNGMyNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVy
YWwgMzA2CnpjbVpRJVZBTnd+ZWo2VD56YytHQEAyfU10bkN+b21rI09jVnBMbzszXi1ORXpLaDxu
PXBJeWVseiMrXmklcH1hcgp6QFNsLV47cVUqWTQ1a2RtNDZGPCs0Si1AezN+VyVFOVpJdFJYI3Q9
KDJMbUdgMTFBSE1Ma2FeVVA+NytfMDRPTkkKekFqWkhUb1NjKGludiN+MlNkXis7U2VsdXZtejx4
PXp8RndJJSlyUlJ6eSpYSDRCYHkzSygmJCMlME44PUt0M0M1CnpoT3dAcEJ9Z3w9aik4JWZMNUBM
JmdfKUleamhUYTtnTSkqVWdOdVdrZ04xe1lnTj1vZW02NDUrTDdSYkBpSjY1Iwp6bXdeZkIzfVhn
JjIzTWQpTjB0c0oheC1vNDRkKm05UGwpfHteM3YlfCUobU5FKnxXYlhXaVdRVS1mKDRHKDZiNH4K
aS1eSlFpRmBobT9GfDtqRCYxYiZ4bSNCcj15dVNuJURMcjE2c1JSSSsoTU1fawoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxvX3dpdGhfcHNrLmJpbiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYWlvcXVpYy90ZXN0cy90bHNfY2xpZW50X2hlbGxvX3dpdGhfcHNrLmJpbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y2OTVjM2E3YjM3YzI3MDE5YWZhNTFhNjA1MjVjYmJjMTA5
NjZiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA0ODEKemNtWlElVjckeEI5Rj8r
UypCJEV4ZUFRYiNHbXJBdXpjc3FOR0Vpe0J7b0orUjZDRHFtdSopZXBad2xqVzZPWVVQCnpgWnxQ
LWA+Tzl1OXFWSn45bHhYYCZZJDsjenhHZWQ4VXs5RENTZ1dsVz0wMGFKX2NoM2NMckFtYVJ4YDBE
UnhINwp6QTArOVdLZHtXOWBTLVB9X1czVipZOTAlMHMoTERfKERgJFoqbz5ERjRoLUhFOy09amRB
dlArP2AlYitxY3l4M0EKeiklKGwtVUhPfEcpbVhOY0w3UmItZ1BFbVhyZTM7VWloLUFiaS1DaUtn
QHVgZ2slPHc9Vz9eNmcrTT4oQSNLXzNOCnp6I3pqUSNsUnE1bDNIQSVTNVRCJG1ST1JTcEluayhQ
K0Z7KW9TKnhERFQ2N3tVOTFjJjRGVyo1WSozbVZPMHpKcQp6R3k7Vmc3PWU2LVFVZUFLMX0yOVRw
YmQ7JTN8Y144T0BeSGVFZXYoUEhzN2hPezJhSGBacXxLOFFOOUd4aU9VMGEKekBaOTZNbkV2bkVn
Ul5ePndUXzYlQTNlRyl0QDU1e2tvVk9qcE1kTXFpPVBFbGFDIWY4KDlMMzd6XmNqfWRzTHhTCnoq
KmYjV1VFeFZTTX5AM0hvPnQqXj5RQ2c/U0glWS1Waz91UnlRVnoocSR3QCNSMiRnM2BwZTJHZjBw
fF9VO2NDUQp6JTdFaG4lenRXclJHYXpFVmxYcmk/Xnhebl9yTGwxVjtZfmxiRHAwI3A0ZDxqKztC
XyRtUWthMF5nNiRhPiNOcU0KU3VHfXUldUNLa1JMKmtURkhYe0lDQUZAZ1MKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NsaWVudF9oZWxsb193aXRoX3NuaS5iaW4gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvdGxzX2NsaWVudF9oZWxsb193aXRoX3NuaS5iaW4KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI1NjhhODYxNjdmZjE2MTgzMWYzZTk3OWU3NDUwMmMzMDNlMTZh
NWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMjg2CnpjbVpRJVYzY0JKbz5BTHJC
RXJxKGJTQmk1VUVZM3ZlZDA5Uj5KKm1PPXt+KnQwP2stVnZLNz1lJmMxN0tgK0ZjYAp6bCRGPis+
I0d4KD9tdG8zS0ooSmp2dkdudWVwUjFOVl8qfHo1QHItO1dAS1BFJjB4Jm4mZnYtKiZmdihoT31G
NEQKemB3NVk9c1RhT21jaDhoKCtzOyFpWTlHPWZ1eUVwfmpuaCpXeSpaR094fUBSIyU3LTYkZFkz
Jm56cTxjYF92NyF5CnprR09iZCkoMzcpNV44V0AmfVFKfFV9bVk4c2g2Jm9WJkctcVYmTEZsVlBS
JXJXTVR4ZVNzMGpydyYqZjJGI0BlKwp6a1lFc0ZVPVU4dSR1Q1Z3JVNrTHMpaCNUfE94OD16Jjs3
clkhVGRpMWdDSyg7MTFrZWRnOCkhMTg8Yns7KGt1KXQKWGpYK0ByTWd9SVEybkclWUNXalFEYEhX
bHUxfENyVAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZW5jcnlwdGVkX2V4
dGVuc2lvbnMuYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRfZXh0ZW5zaW9u
cy5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNTQ2YzcwYzQ5Y2U2YjNiMzcz
OWZhMjk0MzNlMTczOTc1NTNlYTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgOTAK
emNtZDtKVTxoTGZgTTtEUTs2RFJ7QVBiMEthQWphK1V9K0Z3VXw/V18oKEYqMGdATDZKRDlwZ2Z6
fm1JY3p7Q0pqClFnOTxucG0+ZzBWeEVMNkAwNH1UdSojSDBsCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRfZXh0ZW5zaW9uc193aXRoX2FscG4uYmluIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRfZXh0ZW5zaW9uc193aXRoX2FscG4uYmluCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDg0MzZhN2IzMzgzMDc3ZjRhMzlhZDMxOGE1
OGIyOGUzYmQzNTcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpsaXRlcmFsIDExNQp6Y21kO0pW
OTAwNFdkSCNJMWBZLWApe0hgM0JaTDEtODZwfE44UTIoRDhXe2ZuWEpDY1dPYmh9PypFc1U7ejQ5
K2wKek0/fFVlbGlgYTgzfHRKMSVuVTMqMSs0I25GPm9fNU4tezdxRnJeRnBjVmdnKVZYSWV2Slgh
SVdveVBOJTQ5cEJuCkw/b1dVPUZ0UHl2UVYxUVIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvdGxzX2VuY3J5cHRlZF9leHRlbnNpb25zX3dpdGhfYWxwbl9hbmRfZWFybHlfZGF0YS5i
aW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2VuY3J5cHRlZF9leHRlbnNpb25zX3dpdGhfYWxw
bl9hbmRfZWFybHlfZGF0YS5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOTA2
OWY2YmUzZDJlNDU3ZTYzYzk0MmZjOWYwNTRjZGJhYzRhOTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgMTE2CnpjbWQ7SlU/XmI3ViptakcxYFktYCl7SGAzQkxmQzQyOFJEajhOd0pz
Nz8+Q1ljdXhsYGFTQWs9eCtRKH5kWTAzMQp6fE5uT31hR3FISVRxfTlIWTZ2PzY4dnshTiF+ZyQ0
JjVTQE1raStgXzdYdkYpa2VQd1d7UnNtWDEweXA3QkxoPnEKSzAwVER6cWEqLW9fOFo2bQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfZmluaXNoZWQuYmluIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rsc19maW5pc2hlZC5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE2NGJiMmYyYTlkMjc1MzhjYTIxNTRhYjc5NGYzOWVmNzc2ZmQ1ZmEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgMzYKdWNtVis8ME5laSowMDFFSVNDVFJgfEMmaTVzQHBDTyRGWlhp
JlU1Pm96e0RxU24ofUQkMjwmSmFORC1SPQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0
cy90bHNfbmV3X3Nlc3Npb25fdGlja2V0LmJpbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfbmV3
X3Nlc3Npb25fdGlja2V0LmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjQzOWI0
NzMxZTA0YjNiNmQ2ZDNhNjE1ZmMzM2RlNWRmNzQ2Y2Y1Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKbGl0ZXJhbCA1Nwp6Y21aUSFVQCZFMTN+Vl5eWSZ8Q2ZnVG4xK0FEMzVFOUJ8NzFsfjhseGcw
P0E+YCVOfjkwKFp7SD82PUViQ1lAPHkKTTs5JF5WVkVHUk8wRHdqcUpeJW0hCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19uZXdfc2Vzc2lvbl90aWNrZXRfd2l0aF91bmtub3du
X2V4dGVuc2lvbi5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX25ld19zZXNzaW9uX3RpY2tl
dF93aXRoX3Vua25vd25fZXh0ZW5zaW9uLmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODM3OTI4OTBhY2U3NTEzY2ZiNWFhMThhMzczYTk0OWY0MWRiOGNjZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKbGl0ZXJhbCA2NAp6Y21aUSFWNmI2ZTN+Vl5eWSZ8Q2ZnVG4xK0FEMzVFOUJ8
NzFsfjhseGcwP0E+YCVOfjkwKFp7SD82PUViQ1lAPHkKVDtBaFpjVkVHUk8yOV54V1k1RG04Rjtm
fSoKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX3NlcnZlcl9oZWxsby5iaW4g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX3NlcnZlcl9oZWxsby5iaW4KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDIwYTZjNTFmZTU2MDI5NTEzYjgzOGM2ZDI0MzE5Y2U1YzhmZmRiZjQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTU1CnpjbVY7TTBBJjlIMDA1VCoxRmZp
MWFuWTg1I3VlJndIY181Ry0pfGwhXlJXa0I7b2dAMnNFQUkyZkZQUmdmfSt1ZQp6IU9KcUVEY1Jp
cTA3QER8aXFKP31RXnZvflJsemMlR0JwemQwMDIoX0QqeXJtMU9QSnRNRjFCN0s/SThAJj9xODgK
eipoXyFSMDskQ0RLRlJ8cjxIcko7cWU/UypQSHVhbGlDb0dZUCZARTlpcEc8Q0hBeFo/Wn1UTShD
Y0w0UWplal9FCko3UldtMCYkMU4qS3tAfmMKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVz
dHMvdGxzX3NlcnZlcl9oZWxsb193aXRoX3Bzay5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxz
X3NlcnZlcl9oZWxsb193aXRoX3Bzay5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRlY2NkZjU5YWI5NWU4OWU0MDRjZTIzNGRiM2Y4MWQxOGRlMWUwZWIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmxpdGVyYWwgMTYxCnpjbVY7UzBBQndCMDA1bD4xSSlVdzFwRkotNmd3PSZ4cGc0
VkhgeD8kK3gmcWk2Qj5LKWA5YjVNSHoxVVE9amZIdAp6XnY9Tz5oT21UfDBsO0c+ViRGNj1meyFu
V0ZIQjIhYWorOHQwMDMxMEQqeXJtMU9QSnRNRjFCN0s/SEBAJmRjbGsKelJGQjQyemZyajgrSnFg
VlI8VUhGZXxHfVBGXm1ARWgjMG0mbTZOZXRXPVlvY1N2WSFBNXtuaT1jJio0bDduLWRCClAoYEBO
b1ZzLSMyMDBJQzI2SSg7awoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90bHNfc2Vy
dmVyX2hlbGxvX3dpdGhfdW5rbm93bl9leHRlbnNpb24uYmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3Rz
L3Rsc19zZXJ2ZXJfaGVsbG9fd2l0aF91bmtub3duX2V4dGVuc2lvbi5iaW4KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRiZTViNzA3M2ZkYmUzY2I3YmZmYjcxOGIxNDZkZTI1MTA4M2Jl
ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMTYyCnpjbVY7VDBBMnFBMDA1bz8x
RmZpMWFuWTg1I3VlJndIY181Ry0pfGwhXlJXa0I7b2dAMnNFQUkyZkZQUmdmfSt1ZQp6IU9KcUVE
Y1JpcTA3QER8aXFKP31RXnZvflJsemMlR0JwemQwMDM0MUQqeXJtMU9QSnRNRjFCN0s/SThAJj9x
ODgKeipoXyFSMDskQ0RLRlJ8cjxIcko7cWU/UypQSHVhbGlDb0dZUCZARTlpcEc8Q0hBeFo/Wn1U
TShDY0w0UWplal9FClE3UldtMCYkMkslMDBVLWtafFJkbF95N09eCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3V0aWxzLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MGJhYjJiNjhhMjQ4ZmJjNTM0MGYyM2UyYTc5
NzY3MDUwYTVmNWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYWlvcXVpYy90ZXN0cy91dGlscy5weQorKysgL2Rldi9udWxsCkBAIC0xLDcxICsw
LDAgQEAKLWltcG9ydCBhc3luY2lvCi1pbXBvcnQgZGF0ZXRpbWUKLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgb3MKLWltcG9ydCBzeXMKLQotZnJvbSBjcnlwdG9ncmFwaHkgaW1wb3J0IHg1MDkKLWZy
b20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5iYWNrZW5kcyBpbXBvcnQgZGVmYXVsdF9iYWNrZW5kCi1m
cm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgaGFzaGVzCi1mcm9tIGNy
eXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5hc3ltbWV0cmljIGltcG9ydCBlYwotCi0KLWRl
ZiBnZW5lcmF0ZV9lY19jZXJ0aWZpY2F0ZShjb21tb25fbmFtZSwgY3VydmU9ZWMuU0VDUDI1NlIx
LCBhbHRlcm5hdGl2ZV9uYW1lcz1bXSk6Ci0gICAga2V5ID0gZWMuZ2VuZXJhdGVfcHJpdmF0ZV9r
ZXkoYmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKSwgY3VydmU9Y3VydmUpCi0KLSAgICBzdWJqZWN0
ID0gaXNzdWVyID0geDUwOS5OYW1lKAotICAgICAgICBbeDUwOS5OYW1lQXR0cmlidXRlKHg1MDku
TmFtZU9JRC5DT01NT05fTkFNRSwgY29tbW9uX25hbWUpXQotICAgICkKLQotICAgIGJ1aWxkZXIg
PSAoCi0gICAgICAgIHg1MDkuQ2VydGlmaWNhdGVCdWlsZGVyKCkKLSAgICAgICAgLnN1YmplY3Rf
bmFtZShzdWJqZWN0KQotICAgICAgICAuaXNzdWVyX25hbWUoaXNzdWVyKQotICAgICAgICAucHVi
bGljX2tleShrZXkucHVibGljX2tleSgpKQotICAgICAgICAuc2VyaWFsX251bWJlcih4NTA5LnJh
bmRvbV9zZXJpYWxfbnVtYmVyKCkpCi0gICAgICAgIC5ub3RfdmFsaWRfYmVmb3JlKGRhdGV0aW1l
LmRhdGV0aW1lLnV0Y25vdygpKQotICAgICAgICAubm90X3ZhbGlkX2FmdGVyKGRhdGV0aW1lLmRh
dGV0aW1lLnV0Y25vdygpICsgZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9MTApKQotICAgICkKLSAg
ICBpZiBhbHRlcm5hdGl2ZV9uYW1lczoKLSAgICAgICAgYnVpbGRlciA9IGJ1aWxkZXIuYWRkX2V4
dGVuc2lvbigKLSAgICAgICAgICAgIHg1MDkuU3ViamVjdEFsdGVybmF0aXZlTmFtZSgKLSAgICAg
ICAgICAgICAgICBbeDUwOS5ETlNOYW1lKG5hbWUpIGZvciBuYW1lIGluIGFsdGVybmF0aXZlX25h
bWVzXQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGNyaXRpY2FsPUZhbHNlLAotICAgICAg
ICApCi0gICAgY2VydCA9IGJ1aWxkZXIuc2lnbihrZXksIGhhc2hlcy5TSEEyNTYoKSwgZGVmYXVs
dF9iYWNrZW5kKCkpCi0gICAgcmV0dXJuIGNlcnQsIGtleQotCi0KLWRlZiBsb2FkKG5hbWUpOgot
ICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgbmFtZSkK
LSAgICB3aXRoIG9wZW4ocGF0aCwgInJiIikgYXMgZnA6Ci0gICAgICAgIHJldHVybiBmcC5yZWFk
KCkKLQotCi1kZWYgcnVuKGNvcm8pOgotICAgIHJldHVybiBhc3luY2lvLmdldF9ldmVudF9sb29w
KCkucnVuX3VudGlsX2NvbXBsZXRlKGNvcm8pCi0KLQotU0VSVkVSX0NBQ0VSVEZJTEUgPSBvcy5w
YXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgInB5Y2FjZXJ0LnBlbSIpCi1TRVJW
RVJfQ0VSVEZJTEUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgInNz
bF9jZXJ0LnBlbSIpCi1TRVJWRVJfQ0VSVEZJTEVfV0lUSF9DSEFJTiA9IG9zLnBhdGguam9pbigK
LSAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAic3NsX2NlcnRfd2l0aF9jaGFpbi5wZW0i
Ci0pCi1TRVJWRVJfS0VZRklMRSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLCAic3NsX2tleS5wZW0iKQotU0tJUF9URVNUUyA9IGZyb3plbnNldChvcy5lbnZpcm9uLmdl
dCgiQUlPUVVJQ19TS0lQX1RFU1RTIiwgIiIpLnNwbGl0KCIsIikpCi0KLWlmIG9zLmVudmlyb24u
Z2V0KCJBSU9RVUlDX0RFQlVHIik6Ci0gICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dn
aW5nLkRFQlVHKQotCi1pZiAoCi0gICAgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIKLSAgICBhbmQg
c3lzLnZlcnNpb25faW5mby5tYWpvciA9PSAzCi0gICAgYW5kIHN5cy52ZXJzaW9uX2luZm8ubWlu
b3IgPT0gOAotKToKLSAgICAjIFB5dGhvbiAzLjggdXNlcyBQcm9hY3RvckV2ZW50TG9vcCBieSBk
ZWZhdWx0LAotICAgICMgd2hpY2ggYnJlYWtzIFVEUCAvIElQdjYgc3VwcG9ydCwgc2VlOgotICAg
ICMKLSAgICAjIGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMzkxNDgKLQotICAgIGFzeW5j
aW8uc2V0X2V2ZW50X2xvb3BfcG9saWN5KGFzeW5jaW8uV2luZG93c1NlbGVjdG9yRXZlbnRMb29w
UG9saWN5KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdmVyc2lvbl9uZWdvdGlh
dGlvbi5iaW4gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdmVyc2lvbl9uZWdvdGlhdGlvbi5iaW4KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NTA5YzkwOTljZWE4YWVlMjhkZWZmYjU1MDYy
ZDM5M2QxYzNiYTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVyYWwgMzEKbGNtYUZHMDBi
UGYpPGsqa1lHMntXQGwpVH4/QUtLM2d8Nj1JViplUSFCbXVJSjNqK1dFCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9haW9xdWljL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTBmMTNlMWIyYzM3
NTNlMjg2OTNmYWUyMzgyNTJhZjY3YTc4ODYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9pbml0aWFsX2NsaWVudC5iaW4KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Fpb3F1aWMvdGVzdHMvaW5pdGlhbF9zZXJ2ZXIuYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3B5
Y2FjZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9yZXRyeS5iaW4KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMv
dGVzdHMvc2hvcnRfaGVhZGVyLmJpbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy9zc2xfY2VydC5wZW0K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvc3NsX2NlcnRfd2l0aF9jaGFpbi5wZW0KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdGVzdHMvc3NsX2tleS5wZW0KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9hc3luY2lvLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfYXN5bmNpb19jb21wYXQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdGVzdHMvdGVzdF9idWZmZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9jb25uZWN0
aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfY3J5cHRvLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWlj
L3Rlc3RzL3Rlc3RfaDAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVzdF9oMy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy90ZXN0cy90ZXN0X2xvZ2dlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3Bh
Y2tldC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3BhY2tldF9idWlsZGVyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9haW9xdWljL3Rlc3RzL3Rlc3RfcmFuZ2VzZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGVz
dF9yZWNvdmVyeS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy90ZXN0cy90ZXN0X3JldHJ5LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
aW9xdWljL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rlc3RfdGxz
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jZXJ0aWZpY2F0ZS5iaW4KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1
aWMvdGVzdHMvdGxzX2NlcnRpZmljYXRlX3ZlcmlmeS5iaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMv
dGxzX2NsaWVudF9oZWxsby5iaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2NsaWVudF9oZWxs
b193aXRoX2FscG4uYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG9fd2l0
aF9wc2suYmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19jbGllbnRfaGVsbG9fd2l0aF9zbmku
YmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19lbmNyeXB0ZWRfZXh0ZW5zaW9ucy5iaW4KLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2VuY3J5cHRlZF9leHRlbnNpb25zX3dpdGhfYWxwbi5iaW4K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2VuY3J5cHRlZF9leHRlbnNpb25zX3dpdGhfYWxwbl9h
bmRfZWFybHlfZGF0YS5iaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdGxzX2ZpbmlzaGVkLmJpbgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYWlvcXVpYy90ZXN0cy90bHNfbmV3X3Nlc3Npb25fdGlja2V0LmJpbgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlv
cXVpYy90ZXN0cy90bHNfbmV3X3Nlc3Npb25fdGlja2V0X3dpdGhfdW5rbm93bl9leHRlbnNpb24u
YmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9haW9xdWljL3Rlc3RzL3Rsc19zZXJ2ZXJfaGVsbG8uYmluCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9x
dWljL3Rlc3RzL3Rsc19zZXJ2ZXJfaGVsbG9fd2l0aF9wc2suYmluCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9haW9xdWljL3Rl
c3RzL3Rsc19zZXJ2ZXJfaGVsbG9fd2l0aF91bmtub3duX2V4dGVuc2lvbi5iaW4KLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fp
b3F1aWMvdGVzdHMvdXRpbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdGVzdHMvdmVyc2lvbl9uZWdvdGlh
dGlvbi5iaW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YWlvcXVpYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWE0
ZWM5NWM5YTE2MTY3Y2MzZWMwYzMxNzM1MzJjNTQwMGMxMTZjYy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Fpb3F1aWMvTElD
RU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYWlvcXVpYy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9SRUFETUUucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9haW9xdWljL3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYWlvcXVpYy9zZXR1cC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy5n
aXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIyZDMxMjg3NTNlOWY2ZjM0ODk1ZTcxODM1OTU4MjlkMTA2
M2E1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy5naXRpZ25vcmUKQEAg
LTAsMCArMSw5IEBACisudG94CisqLnB5YworKi5weW8KK19fcHljYWNoZV9fCisqLmVnZy1pbmZv
Citkb2NzL19idWlsZAorYnVpbGQKK2Rpc3QKKy5jYWNoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9t
aWN3cml0ZXMvLnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy8udHJhdmlzLnltbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lOTc3OTAxOGFkMzFlNjIxMGE4ZDkxZWJlMThjOWNhYjBlYzAzZmRkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwzNSBA
QAorc3VkbzogZmFsc2UKK29zOiBsaW51eAorbGFuZ3VhZ2U6IHB5dGhvbgorCittYXRyaXg6Cisg
ICAgaW5jbHVkZToKKyAgICAgICAgLSBvczogb3N4CisgICAgICAgICAgbGFuZ3VhZ2U6IGdlbmVy
aWMKKyAgICAgICAgICBlbnY6IFRPWEVOVl9TVUZGSVg9dGVzdAorCitweXRob246CisgICAgLSAi
Mi42IgorICAgIC0gIjIuNyIKKyAgICAtICJweXB5IgorICAgIC0gIjMuMyIKKyAgICAtICIzLjQi
CisKK2luc3RhbGw6CisgICAgLSAjIFRoZSBPUyBYIFZNIGRvZXNuJ3QgaGF2ZSBhbnkgUHl0aG9u
IHN1cHBvcnQgYXQgYWxsCisgICAgICAjIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHJhdmlzLWNp
L3RyYXZpcy1jaS9pc3N1ZXMvMjMxMgorICAgICAgaWYgWyAiJFRSQVZJU19PU19OQU1FIiA9ICJv
c3giIF07IHRoZW4KKyAgICAgICAgICBicmV3IHVwZGF0ZTsKKyAgICAgICAgICBicmV3IGluc3Rh
bGwgcHl0aG9uMzsKKyAgICAgICAgICB2aXJ0dWFsZW52IC1wIHB5dGhvbjMgJEhPTUUvb3N4LXB5
MzsKKyAgICAgICAgICAuICRIT01FL29zeC1weTMvYmluL2FjdGl2YXRlOworICAgICAgICAgIGV4
cG9ydCBUUkFWSVNfUFlUSE9OX1ZFUlNJT049IiQocHl0aG9uIC0tdmVyc2lvbiB8IGN1dCAtZCAn
ICcgLWYgMiB8IGN1dCAtZCAuIC1mIC0yKSI7CisgICAgICBmaQorICAgIC0gcGlwIGluc3RhbGwg
dG94CisKK3NjcmlwdDoKKyAgICAtIGV4cG9ydCBUT1hfUFk9IiQoZWNobyBweSRUUkFWSVNfUFlU
SE9OX1ZFUlNJT04gfCB0ciAtZCAuIHwgc2VkIC1lICdzL3B5cHlweS9weXB5LycpIgorICAgIC0g
dG94IC1lICRUT1hfUFktdGVzdAorICAgIC0gaWYgWyAiJFRSQVZJU19QWVRIT05fVkVSU0lPTiIg
PSAiMi43IiBdIHx8IFsgIiRUUkFWSVNfUFlUSE9OX1ZFUlNJT04iID0gIi4zLjUiIF07IHRoZW4K
KyAgICAgICAgICB0b3ggLWUgJFRPWF9QWS1zdHlsZWNoZWNrOworICAgICAgZmkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXRvbWljd3JpdGVzL2F0b21pY3dyaXRlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXRvbWljd3JpdGVzL2F0b21pY3dyaXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2UzNzYyYWE1NmM1MzM2M2Y3MTM0YTYxZjBhMjUxNzc3YTNkMjUzYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21p
Y3dyaXRlcy9hdG9taWN3cml0ZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9hdG9taWN3cml0ZXMvX19pbml0
X18ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL2RvY3MvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0b21pY3dyaXRlcy9kb2NzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYmNjYmIyZDRkYmQ5ODM2YTZmYmZmYjY3ZGYxODEwMzM5ZmJiMGU5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWlj
d3JpdGVzL2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9kb2NzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3
cml0ZXMvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9jcy9pbmRleC5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0b21pY3dyaXRlcy9kb2NzL21ha2UuYmF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dy
aXRlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGEwZmMwNzMzNWU2NzY0YmY5MWE2YTgyZTFj
MTVhNWZjY2U2YTczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXRvbWljd3JpdGVzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvQ09OVFJJQlVUSU5HLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXRvbWljd3JpdGVzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9NQU5JRkVTVC5p
bgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXRvbWljd3JpdGVzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvUkVBRE1F
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL2FwcHZleW9yLnltbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVz
L3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0
ZXMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8uZ2l0aHViL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy8uZ2l0aHViL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkN2E3MThkODY0NzFjYWNiNjk1YmE2M2E3YjYwNzRjOTg2YTdlN2I1Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdp
dGh1Yi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvLmdpdGh1Yi9DT0RFX09GX0NPTkRVQ1QucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8u
Z2l0aHViL0NPTlRSSUJVVElORy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRodWIvUFVMTF9SRVFVRVNU
X1RFTVBMQVRFLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRpZ25vcmUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM4OTVlZTFkYjcyNzg4ZjNjMzIwYzc4NzhkYjk2
ZmI4ZGU4YmE4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdpdGlnbm9yZQpAQCAt
MCwwICsxLDExIEBACisqLnB5YworKi5lZ2ctaW5mbworLmNhY2hlCisuY292ZXJhZ2UqCisuaHlw
b3RoZXNpcworLnB5dGVzdF9jYWNoZQorLnRveAorYnVpbGQKK2Rpc3QKK2RvY3MvX2J1aWxkLwor
aHRtbGNvdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8ucmVhZHRoZWRvY3MueW1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy8ucmVhZHRoZWRvY3MueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0YjZmNDMxMDY2ZjU3OWE3ZDY3ODlh
ZmZlNjEyMjM5ZWQ4OWMxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5yZWFkdGhl
ZG9jcy55bWwKQEAgLTAsMCArMSw2IEBACistLS0KK3B5dGhvbjoKKyAgdmVyc2lvbjogMworICBw
aXBfaW5zdGFsbDogdHJ1ZQorICBleHRyYV9yZXF1aXJlbWVudHM6CisgICAgLSBkb2NzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzLy50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8udHJhdmlzLnltbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43Yzk4YjIxYTYzN2RmYzhlNzRmMGJlNDM1ZWY4MDJhM2ZiYjUwMWY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8udHJhdmlzLnltbApAQCAtMCwwICsxLDY5IEBACitk
aXN0OiB0cnVzdHkKK2dyb3VwOiB0cmF2aXNfbGF0ZXN0CitzdWRvOiBmYWxzZQorY2FjaGU6Cisg
IGRpcmVjdG9yaWVzOgorICAgIC0gJEhPTUUvLmNhY2hlL3BpcAorCitsYW5ndWFnZTogcHl0aG9u
CisKKworbWF0cml4OgorICBmYXN0X2ZpbmlzaDogdHJ1ZQorCisgIGluY2x1ZGU6CisgICAgLSBw
eXRob246ICIyLjciCisgICAgICBlbnY6IFRPWEVOVj1weTI3CisgICAgLSBweXRob246ICIzLjQi
CisgICAgICBlbnY6IFRPWEVOVj1weTM0CisgICAgLSBweXRob246ICIzLjUiCisgICAgICBlbnY6
IFRPWEVOVj1weTM1CisgICAgLSBweXRob246ICIzLjYiCisgICAgICBlbnY6IFRPWEVOVj1weTM2
CisgICAgLSBweXRob246ICJweXB5IgorICAgICAgZW52OiBUT1hFTlY9cHlweQorICAgIC0gcHl0
aG9uOiAicHlweTMiCisgICAgICBlbnY6IFRPWEVOVj1weXB5MworCisgICAgIyBQcmV2ZW50IGJy
ZWFrYWdlIGJ5IGEgbmV3IHJlbGVhc2VzCisgICAgLSBweXRob246ICIzLjYtZGV2IgorICAgICAg
ZW52OiBUT1hFTlY9cHkzNgorICAgIC0gcHl0aG9uOiAiMy43LWRldiIKKyAgICAgIGVudjogVE9Y
RU5WPXB5MzcKKworICAgICMgTWV0YQorICAgIC0gcHl0aG9uOiAiMy42IgorICAgICAgZW52OiBU
T1hFTlY9Zmxha2U4CisgICAgLSBweXRob246ICIzLjYiCisgICAgICBlbnY6IFRPWEVOVj1tYW5p
ZmVzdAorICAgIC0gcHl0aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9ZG9jcworICAgIC0g
cHl0aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9cmVhZG1lCisgICAgLSBweXRob246ICIz
LjYiCisgICAgICBlbnY6IFRPWEVOVj1jaGFuZ2Vsb2cKKworICBhbGxvd19mYWlsdXJlczoKKyAg
ICAtIHB5dGhvbjogIjMuNi1kZXYiCisgICAgLSBweXRob246ICIzLjctZGV2IgorCisKK2luc3Rh
bGw6CisgIC0gcGlwIGluc3RhbGwgdG94CisKKworc2NyaXB0OgorICAtIHRveAorCisKK2JlZm9y
ZV9pbnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIGNvZGVjb3YKKworCithZnRlcl9zdWNjZXNzOgor
ICAtIHRveCAtZSBjb3ZlcmFnZS1yZXBvcnQKKyAgLSBjb2RlY292CisKKworbm90aWZpY2F0aW9u
czoKKyAgZW1haWw6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLy5n
aXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9jaGFuZ2Vsb2cuZC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9n
LmQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZmUxNjAx
ZDI2NGExNmY4OWMzNDhjZTY1NDFjNWU1OTQzZWExNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
Y2hhbmdlbG9nLmQvMTc4LmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5MC5j
aGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMDAuY2hhbmdlLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvY2hhbmdlbG9nLmQvMzExLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5k
LzMyMS5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMjIuY2hhbmdlLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzIzLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5n
ZWxvZy5kLzMyNi5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMzEuY2hhbmdl
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzMyLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kLzMzNC5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMzYu
Y2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzM5LmNoYW5nZS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2NoYW5nZWxvZy5kLzM0My5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cu
ZC8zNDkuY2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzU2LmNoYW5nZS5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzM2My5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC8zNjkuY2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzcwLmNoYW5n
ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzk1LmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kL3Rvd25jcmllcl90ZW1wbGF0ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YzAwMTQyMmJh
ZWRlMWQyOGEzMTIzOGNiYzRlZDRiMjZjMDg1ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Rv
Y3MvX3N0YXRpYy9hdHRyc19sb2dvLnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL2F0dHJz
X2xvZ28uc3ZnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg2MzRlYzliZTk3Mjg2MTE3YzlkY2VkNjZjMWE4MTlkZjA0ZjlmYjguLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9kb2NzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2FwaS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2RvY3MvYmFja3dhcmQtY29tcGF0aWJpbGl0eS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY2hhbmdl
bG9nLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbnRy
aWJ1dGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZG9jdXRpbHMuY29uZgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy9leGFtcGxlcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZXh0ZW5kaW5nLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvZG9jcy9nbG9zc2FyeS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvaGFzaGluZy5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2RvY3MvaG93LWRvZXMtaXQtd29yay5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvaW5k
ZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2luaXQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2xpY2Vu
c2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL292ZXJ2aWV3LnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy93
aHkucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9zcmMvYXR0ci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMmI0MTJkMTIyNGY1ZDc1MzhhMTU1ODNmY2QyZTBkZmJjMWJhYWE3ZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9h
dHRyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIv
X2NvbXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX2NvbmZpZy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
c3JjL2F0dHIvX2Z1bmNzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fbWFrZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvc3JjL2F0dHIvY29udmVydGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvZXhjZXB0
aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvZmlsdGVycy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3Jj
L2F0dHIvdmFsaWRhdG9ycy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy9fX2luaXRf
Xy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJl
ZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4
YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy9fX2luaXRfXy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
dGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGM4ZDUzYWYwZmVhYjRhNjExODZhYTYzMjQ5
N2M1NmI3MmZjN2E1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwz
MCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy90ZXN0cy9zdHJhdGVnaWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Fubm90YXRp
b25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2NvbmZpZy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9jb252ZXJ0ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2RhcmtfbWFnaWMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZHVuZGVycy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMv
dGVzdF9maWx0ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy90ZXN0cy90ZXN0X2luaXRfc3ViY2xhc3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rf
bWFrZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9zbG90cy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF92YWxpZGF0b3JzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy91dGlscy5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjYWI5MjM2MDVjZjFmYjA0MzMwMTQz
OWU3YmRiMmZiZTAxN2Q3NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI2
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvQVVUSE9SUy5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NI
QU5HRUxPRy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL01BTklGRVNULmlu
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jb25mdGVzdC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvcHlwcm9qZWN0LnRvbWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NldHVwLmNmZwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
c2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9j
ZXJ0aWZpLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdn
LWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2M2Fj
MDJhMTE3YjY4MTQxNTY0Njg2ZTUwNjJkOTM3NmE5YzNiYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdnLWluZm8v
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0
aWZpLmVnZy1pbmZvL1NPVVJDRVMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdnLWluZm8v
ZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby9ub3Qt
emlwLXNhZmUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2Vy
dGlmaS9jZXJ0aWZpL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhZTdkZGFiM2NkNDJhYjgyYzYzZTJjN2M0N2VkOTUwNjFhMjk3ZDZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9jZXJ0aWZpL2NlcnRpZmkvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS9fX21h
aW5fXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpL2NhY2VydC5wZW0KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkv
Y2VydGlmaS9jb3JlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvc2V0dXAucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2NlcnRpZmkvc2V0dXAucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9jZXJ0aWZpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGExZmJmNzZiYzJiZTNiOTdj
YTk3NjdiYTI5ODViNTBhOGMwYjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9MSUNFTlNFCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0
aWZpL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL1JF
QURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL3NldHVwLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9kb2MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Vu
dW0vZW51bS9kb2MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZkNWRlMjM0MzFkMGU0MDc5ZWM3ZmRiOTlmYTk5YzJhMWM2YmRiNzMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9l
bnVtL2VudW0vZG9jL2VudW0ucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiYWMxMjgyZjFiYjVkYzVlYWQ4MDA2Yzg5Mjk0MmJmNTY3YTU0NDM5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9l
bnVtL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9lbnVtL2VudW0vTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL1JFQURNRQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZW51bS9lbnVtL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vdGVzdC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9lbnVtL2VudW0zNC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9l
bnVtMzQuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVkZmM1MzExMDJhOGUyNWE5ZmMwNTgwY2Y0MzExYzMzOGE3MjRiNjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0zNC5lZ2ct
aW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0
LmVnZy1pbmZvL1NPVVJDRVMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0zNC5lZ2ctaW5mby9kZXBlbmRl
bmN5X2xpbmtzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8vdG9wX2xldmVsLnR4dApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9lbnVtL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTc5MWNhNjc4NmVmYzQ2MWRi
MTk4M2FkNDFiYmZiMzNkN2YwNDE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZW51bS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9NQU5JRkVTVC5pbgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9Q
S0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vc2V0dXAuY2ZnCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9l
bnVtL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzLy5jb3ZlcmFnZXJjIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODNiZmMyMjBiMTIwNTViZTM5NjU4
YjM3NGEzNDliZDhlODcxYzIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy8uY292
ZXJhZ2VyYwpAQCAtMCwwICsxLDYgQEAKK1tydW5dCitzb3VyY2U9ZnVuY3NpZ3MKK29taXQ9ZnVu
Y3NpZ3Mvb2RpY3QqCisKK1tyZXBvcnRdCitpbmNsdWRlPWZ1bmNzaWdzKgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy8uZ2l0aWdub3JlCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM4ZDJhZjg1ZDNjNjE3YWEzZjI1NTEzNDlhZjEwZDYxY2ZmNjVjMmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzLy5naXRpZ25vcmUKQEAgLTAsMCArMSwxOSBAQAorKn4K
KyouZWdnCisqLmVnZy1pbmZvCisqLnB5YworKi5weW8KKyouc3dwCisuRFNfU3RvcmUKKy5jb3Zl
cmFnZQorLnRveC8KK01BTklGRVNUCitidWlsZC8KK2RvY3MvLmJ1aWxkLworZGlzdC8KK2Vudiov
CitodG1sY292LwordG1wLworY292ZXJhZ2UueG1sCitqdW5pdC54bWwKKy5lZ2dzLwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy8udHJhdmlzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvLnRyYXZpcy55
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzFlN2FiZTBiNDRhODljMTY3YTc5Y2FjMzNjZmM5YzRjNzllZDhlNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwx
OCBAQAorbGFuZ3VhZ2U6IHB5dGhvbgorcHl0aG9uOgorICAtIDIuNgorICAtIDIuNworICAtIDMu
MworICAtIDMuNAorICAtIDMuNQorICAtIG5pZ2h0bHkKKyAgLSBweXB5CisjICAtIHB5cHkzCitp
bnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIC1VIHBpcCBzZXR1cHRvb2xzIHdoZWVsCisgIC0gcGlw
IGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzL2RldmVsb3BtZW50LnR4dCAuCitzY3JpcHQ6CisgIC0g
Y292ZXJhZ2UgcnVuIHNldHVwLnB5IHRlc3QKKyAgLSBjb3ZlcmFnZSByZXBvcnQgLS1zaG93LW1p
c3NpbmcKK2FmdGVyX3N1Y2Nlc3M6CisgIC0gY292ZXJhbGxzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL0NIQU5HRUxPRyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvQ0hBTkdFTE9HCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMTM2NmQyNjY4ZDAzZGU4MTAyZDA0OTUzYzU1ZTQ5NDAwNTVjYjAw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvQ0hBTkdFTE9HCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotQ2hhbmdlbG9n
Ci0tLS0tLS0tLS0KLQotMC41Ci1gYGAKLQotKiBGaXggYmluZGluZyB3aXRoIHNlbGYgYXMgYSBr
d2FyZy4gKFJvYmVydCBDb2xsaW5zICMxNCkKLQotMC40ICgyMDEzLTEyLTIwKQotYGBgYGBgYGBg
YGBgYGBgYAotKiBGaXggdW5ib3VuZCBtZXRob2RzIGdldHRpbmcgdGhlaXIgZmlyc3QgcGFyYW1l
dGVyIGN1cnJpZWQKLSogUHVibGlzaCBQeXRob24gd2hlZWwgcGFja2FnZXMKLQotMC4zICgyMDEz
LTA1LTI5KQotYGBgYGBgYGBgYGBgYGBgYAotKiBGaXggYW5ub3RhdGlvbiBmb3JtYXR0aW5nIG9m
IGJ1aWx0aW4gdHlwZXMgb24gUHl0aG9uIDIueAotCi0wLjIgKDIwMTItMDEtMDcpCi1gYGBgYGBg
YGBgYGBgYGBgCi0qIFB5UHkgY29tcGF0YWJpbGl0eQotCi0wLjEgKDIwMTItMDEtMDYpCi1gYGBg
YGBgYGBgYGBgYGBgCi0qIEluaXRpYWwgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3Rl
bXBsYXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Mz
MjUxMjk0YTBmNmVhNzk1Y2E5MzVhZWQwN2YwY2IxZTZmYmQxMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRl
cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDRjYzgwMDgxZDFmMjk2
ZTUxZjQ4YTIxODIwOWIyYjA4NjUyYzM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9NYWtl
ZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL2lu
ZGV4LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNkODRmMjZmZDA0OTRkYzFiMThhOWRiOTYzMmVmMGVlMmZjNTc1Yzgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy9mdW5jc2lncy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL2Z1bmNzaWdzL3ZlcnNpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVx
dWlyZW1lbnRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYmFmZDgzMGVjNTU0
NDgxMjVmNGE4NmEwN2JjM2Y4NTRlMmU0MGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L3JlcXVpcmVtZW50cy9kZXZlbG9wbWVudC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
dGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4
IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2
NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVz
dHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy9fX2luaXRfXy5weQpAQCAt
MSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0
aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5j
c2lncy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTM5MjFhMTg1MjJmNmUwNzY0ZjYzOGQyNDU3NTNkZGZkOTkxYTJlMy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mb3Jt
YXRhbm5vdGF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjUxOWJkMDg5YTM3MDNiYzM5OTg0Y2ZhYmU3ZjE3
ZjgyN2Q4ZDBkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTElD
RU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL01ha2VmaWxl
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90b3guaW5pCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyLy5jb3ZlcmFnZXJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
NTNlMzhkM2UwZTI1Y2MzMjE3ZDYzOTAwYTdmMjg4Y2NjYmI1Y2IxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi8uY292ZXJhZ2VyYwpAQCAtMCwwICsxLDE4IEBACitbcnVuXQorYnJhbmNoID0g
VHJ1ZQorc291cmNlID0gaDIKKworW3JlcG9ydF0KK2ZhaWxfdW5kZXIgPSAxMDAKK3Nob3dfbWlz
c2luZyA9IFRydWUKK2V4Y2x1ZGVfbGluZXMgPQorICAgIHByYWdtYTogbm8gY292ZXIKKyAgICAu
KjouKiAjIFB5dGhvbiBcZC4qCisgICAgYXNzZXJ0IEZhbHNlLCAiU2hvdWxkIG5vdCBiZSByZWFj
aGFibGUiCisgICAgLio6LiogIyBQbGF0Zm9ybS1zcGVjaWZpYzoKKworW3BhdGhzXQorc291cmNl
ID0KKyAgICBoMi8KKyAgICAudG94LyovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9oMgorICAg
IC50b3gvcHlweSovc2l0ZS1wYWNrYWdlcy9oMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3Nv
dXJjZS9fc3RhdGljLy5rZWVwIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9fc3RhdGljLy5rZWVwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvX3N0YXRpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvZG9jcy9zb3VyY2UvX3N0YXRpYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDc2OGU4NTZiNmI0NzY0NWQ2ZTFiYmNlOWYwMTUxNTA0ZjNlZDgxZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mv
c291cmNlL19zdGF0aWMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0aWMvaDIuY29ubmVjdGlvbi5I
MkNvbm5lY3Rpb25TdGF0ZU1hY2hpbmUuZG90LnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvX3N0
YXRpYy9oMi5zdHJlYW0uSDJTdHJlYW1TdGF0ZU1hY2hpbmUuZG90LnBuZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9kb2NzL3NvdXJjZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2Uv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExZmIyYmRlNTJj
YTk1YTU2OWNmNzllY2UyYjc2NTg3ZmEzMmUwNTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvYWR2YW5jZWQtdXNhZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9hcGkucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9kb2NzL3NvdXJjZS9hc3luY2lvLWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJj
ZS9iYXNpYy11c2FnZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2NvbmYucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2RvY3Mvc291cmNlL2NvbnRyaWJ1dG9ycy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2N1cmlv
LWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9ldmVudGxldC1leGFtcGxlLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZG9jcy9zb3VyY2UvZXhhbXBsZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9p
bmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2luc3RhbGxhdGlvbi5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2RvY3Mvc291cmNlL2xvdy1sZXZlbC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL25lZ290aWF0
aW5nLWh0dHAyLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvcmVsZWFzZS1ub3Rlcy5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2RvY3Mvc291cmNlL3JlbGVhc2UtcHJvY2Vzcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291
cmNlL3Rlc3RpbW9uaWFscy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3Rvcm5hZG8tZXhhbXBs
ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3R3aXN0ZWQtZXhhbXBsZS5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2RvY3Mvc291cmNlL3R3aXN0ZWQtaGVhZC1leGFtcGxlLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvdHdpc3RlZC1wb3N0LWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS93c2dpLWV4
YW1wbGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0
ZWE1Mzc3NTI0YzYyZTI0YjNlOTFhYzhhZGI1NTIyYmVmZGU1NDYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL01h
a2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9kb2NzL21ha2UuYmF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2FzeW5jaW8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOGFlNGEyODdlNTBm
NWU0Zjg3M2JkYmMxMjM3MWJkMTI4ZTFmN2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxl
cy9hc3luY2lvL2FzeW5jaW8tc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL2Nl
cnQuY3J0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9hc3luY2lvL2NlcnQua2V5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFt
cGxlcy9hc3luY2lvL3dzZ2ktc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVz
L2N1cmlvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJpby93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjI5MDZiMDkzMTQyOTYyMTUwNDBl
NDdiZjQ3NTE5YmMyZjZkZmQ1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJpby9j
dXJpby1zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL2xvY2FsaG9zdC5jcnQucGVt
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9leGFtcGxlcy9jdXJpby9sb2NhbGhvc3Qua2V5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2V4YW1wbGVzL2V2ZW50bGV0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9l
dmVudGxldC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlm
ODIyNDQ1MGJiNTg4MzJjODRjYTM5YTgxZTRkYzE3OTc5ZTU4OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9leGFtcGxlcy9ldmVudGxldC9ldmVudGxldC1zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2V2ZW50bGV0L3NlcnZlci5jcnQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L3NlcnZl
ci5rZXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZWU2Zjk0YjQyMGE2MWNkYmRlMTFiOWM2MGUzMmJlOGVk
ZTNkOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGllbnRf
aHR0cHNfc2V0dXBfZnJhZ21lbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy9jbGll
bnRfdXBncmFkZV9mcmFnbWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3NlcnZl
cl9odHRwc19zZXR1cF9mcmFnbWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL3Nl
cnZlcl91cGdyYWRlX2ZyYWdtZW50LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rv
cm5hZG8vdG9ybmFkby1zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8vdG9ybmFk
by1zZXJ2ZXIucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9leGFtcGxlcy90b3JuYWRvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxl
cy90b3JuYWRvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
MWVlZGU5ODAyOWVjZGIwMWQxODI3M2IyN2M2OTk0MTgzMDNmZTllLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvZXhhbXBsZXMvdG9ybmFkby9zZXJ2ZXIuY3J0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90b3Ju
YWRvL3NlcnZlci5rZXkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8vdG9ybmFkby1zZXJ2ZXIu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWIwZmYyZWMxZWY1NThmMzdiNzYyMDM1MTI4ZTlhMWM4ODJiNTY2Yy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4
YW1wbGVzL3R3aXN0ZWQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvaGVhZF9yZXF1ZXN0LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3Bvc3RfcmVxdWVzdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvdHdpc3RlZC9zZXJ2ZXIuY3J0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3NlcnZlci5j
c3IKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvc2VydmVyLmtleQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvdHdpc3RlZC90d2lzdGVkLXNlcnZlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY1Y2E0YjcwZmJmOTZkZmIyMDgwYTkzYzgxYzFhMmI2YTdiNGZlZWUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvaDIvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2NvbmZpZy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIv
Y29ubmVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvZXJyb3JzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9ldmVudHMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2ZyYW1lX2J1ZmZlci5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvaDIvc2V0dGluZ3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3N0cmVhbS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvaDIvdXRpbGl0aWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi93aW5kb3dzLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiZWNlNWE2MjJmYWI0YTM2MzgxYWYzNThm
NjlmOWY4ODE3YTc1NTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi90ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNDEg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0
L2Nvcm91dGluZV90ZXN0cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC9oZWxwZXJzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90
ZXN0L3Rlc3RfYmFzaWNfbG9naWMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9jbG9zZWRfc3RyZWFt
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2NvbXBsZXhfbG9naWMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3Qv
dGVzdF9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9ldmVudHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rl
c3QvdGVzdF9leGNlcHRpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfZmxvd19jb250cm9sX3dp
bmRvdy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2gyX3VwZ3JhZGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3Qv
dGVzdF9oZWFkX3JlcXVlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9oZWFkZXJfaW5kZXhpbmcu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbmZvcm1hdGlvbmFsX3Jlc3BvbnNlcy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdGVzdC90ZXN0X2ludGVyYWN0aW5nX3N0YWNrcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2lu
dmFsaWRfY29udGVudF9sZW5ndGhzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaW52YWxpZF9mcmFt
ZV9zZXF1ZW5jZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2hlYWRlcnMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9wcmlvcml0eS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3JlbGF0ZWRf
ZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfcmZjNzgzOC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90
ZXN0X3NldHRpbmdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc3RhdGVfbWFjaGluZXMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Rlc3QvdGVzdF9zdHJlYW1fcmVzZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF91dGls
aXR5X2Z1bmN0aW9ucy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy9iYWNrcG9ydC5zaCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvdXRpbHMvYmFja3BvcnQuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdXRp
bHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyMzgzYTdh
OTkxZjkwNWEwNDNlYTMxYWJjN2VlNTMwOTI1YzIwYjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdXRpbHMvYmFja3Bv
cnQuc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdmlzdWFsaXplci93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvdmlzdWFsaXplci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODRkM2ZmZjFiMzI5MmM1MmZhMzVmYzNhM2NlMGVlYTBhZmE2YjU1Yy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Zpc3VhbGl6ZXIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3Zpc3VhbGl6ZXIvTk9USUNFUy52aXN1YWxpemVyCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi92aXN1YWxpemVy
L3Zpc3VhbGl6ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkZmQyZmNh
ZTRhM2QzMzdlYTgyZDg1ZmExOWMyMGRmMDY1OGY3ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvQ09OVFJJQlVUT1JTLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvSElTVE9SWS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL01BTklGRVNU
LmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvUkVBRE1FLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvc2V0
dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdF9yZXF1aXJlbWVudHMudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVnZy1pbmZv
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5mby93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA3Yzc0YWMyYjc3ZWM0NGQyYjlhMTRi
OTcwOWFlNGRmMzM3N2ExYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5m
by9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2suZWdnLWluZm8vU09VUkNFUy50eHQKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2hwYWNrL2hwYWNrLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9o
cGFjay5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjMGI0YmVkNWQxMDhmODkyZDVmZGU2MGNiNjU3M2E5
YWZiMDNiOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2hwYWNrL2hwYWNrL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2sv
aHBhY2svY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9leGNlcHRpb25zLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
cGFjay9ocGFjay9ocGFjay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHVmZm1hbi5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHBhY2svaHBhY2svaHVmZm1hbl9jb25zdGFudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2h1ZmZt
YW5fdGFibGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3N0cnVjdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2svdGFibGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdGVzdC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDNlNDkxNjI1MDQ5ZTQyYjg3ODJiNWM5NDE1MjAyMjUyOTc4ZTA4OS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2hwYWNrL3Rlc3QvdGVzdF9lbmNvZGVfZGVjb2RlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3Rlc3Rf
aHBhY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdGVzdF9ocGFja19pbnRlZ3JhdGlvbi5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHBhY2svdGVzdC90ZXN0X2h1ZmZtYW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdGVzdF9zdHJ1
Y3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdGVzdF90YWJsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
cGFjay93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNjQ0OTk1MDVhZjcwYjA0MWM4MWEwZjFiZTA4M2MwOGE1
YjFmYzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9ocGFjay93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHBhY2svQ09OVFJJQlVUT1JTLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svSElTVE9SWS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2hwYWNrL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL01BTklGRVNULmluCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
cGFjay9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svc2V0dXAu
Y2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9ocGFjay9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uYXBw
dmV5b3IueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uYXBwdmV5b3IueW1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4NGUy
YjdmYTVlNmU5ODM2MGQyMWEyMzIzZGIxNmFlNDFlYWI2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliLy5hcHB2ZXlvci55bWwKQEAgLTAsMCArMSwzMSBAQAorIyBUbyBhY3RpdmF0
ZSwgY2hhbmdlIHRoZSBBcHB2ZXlvciBzZXR0aW5ncyB0byB1c2UgYC5hcHB2ZXlvci55bWxgLgor
ZW52aXJvbm1lbnQ6CisgIGdsb2JhbDoKKyAgICBQQVRIOiAiQzpcXFB5dGhvbjI3XFxTY3JpcHRz
XFw7JVBBVEglIgorICAgIFBZVEVTVF9DT01NQU5EOiAiY292ZXJhZ2UgcnVuIC1tIHB5dGVzdCIK
KyAgbWF0cml4OgorICAgIC0gVE9YRU5WOiBweTI3LWJhc2UKKyAgICAtIFRPWEVOVjogcHkyNy1v
cHRpb25hbAorICAgIC0gVE9YRU5WOiBweTMzLWJhc2UKKyAgICAtIFRPWEVOVjogcHkzMy1vcHRp
b25hbAorICAgIC0gVE9YRU5WOiBweTM0LWJhc2UKKyAgICAtIFRPWEVOVjogcHkzNC1vcHRpb25h
bAorICAgIC0gVE9YRU5WOiBweTM1LWJhc2UKKyAgICAtIFRPWEVOVjogcHkzNS1vcHRpb25hbAor
ICAgIC0gVE9YRU5WOiBweTM2LWJhc2UKKyAgICAtIFRPWEVOVjogcHkzNi1vcHRpb25hbAorCitp
bnN0YWxsOgorICAtIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZQorICAt
IHB5dGhvbiAtbSBwaXAgaW5zdGFsbCB0b3ggY29kZWNvdgorCitidWlsZDogb2ZmCisKK3Rlc3Rf
c2NyaXB0OgorICAtIHRveAorCithZnRlcl90ZXN0OgorICAtIHB5dGhvbiBkZWJ1Zy1pbmZvLnB5
CisKK29uX3N1Y2Nlc3M6CisgIC0gY29kZWNvdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8u
Y292ZXJhZ2VyYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZhY2Yz
NTIzOWZhNWJkMTg3ZTY5OGIxZmYzZGUwNmI1NDVkZWIwNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvLmNvdmVyYWdlcmMKQEAgLTAsMCArMSw4IEBACitbcnVuXQorYnJhbmNoID0g
VHJ1ZQorc291cmNlID0gaHRtbDVsaWIKKworW3BhdGhzXQorc291cmNlID0KKyAgIGh0bWw1bGli
CisgICAudG94LyovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9odG1sNWxpYgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uZ2l0aWdub3JlCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVjZDYyZGYzMWI5MTFlM2VhMDhjMDk4OWQxZjk5YTkyOTE4YTBlMzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5naXRpZ25vcmUKQEAgLTAsMCArMSw4NSBAQAor
IyBDb3B5cmlnaHQgKGMpIDIwMTQgR2l0SHViLCBJbmMuCisjCisjIFBlcm1pc3Npb24gaXMgaGVy
ZWJ5IGdyYW50ZWQsICBmcmVlIG9mIGNoYXJnZSwgIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK
KyMgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyMgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy
ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorIyB0aGUgcmlnaHRzIHRv
ICB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu
c2UsCisjIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg
cGVyc29ucyB0byB3aG9tIHRoZQorIyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1
YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyBUaGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp
bgorIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K
KyMKKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg
T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyMgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN
SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisjIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRQorIyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisjIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ
T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisjIEZST00sIE9VVCBP
RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK
KyMgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorCisjIEJ5dGUtY29tcGlsZWQgLyBvcHRpbWl6
ZWQgLyBETEwgZmlsZXMKK19fcHljYWNoZV9fLworKi5weVtjb2RdCisqJHB5LmNsYXNzCisKKyMg
QyBleHRlbnNpb25zCisqLnNvCisKKyMgRGlzdHJpYnV0aW9uIC8gcGFja2FnaW5nCisuUHl0aG9u
CitlbnYvCitidWlsZC8KK2RldmVsb3AtZWdncy8KK2Rpc3QvCitkb3dubG9hZHMvCitlZ2dzLwor
LmVnZ3MvCitsaWIvCitsaWI2NC8KK3BhcnRzLworc2Rpc3QvCit2YXIvCisqLmVnZy1pbmZvLwor
Lmluc3RhbGxlZC5jZmcKKyouZWdnCitNQU5JRkVTVAorCisjIFB5SW5zdGFsbGVyCisjICBVc3Vh
bGx5IHRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIGJ5IGEgcHl0aG9uIHNjcmlwdCBmcm9tIGEgdGVt
cGxhdGUKKyMgIGJlZm9yZSBQeUluc3RhbGxlciBidWlsZHMgdGhlIGV4ZSwgc28gYXMgdG8gaW5q
ZWN0IGRhdGUvb3RoZXIgaW5mb3MgaW50byBpdC4KKyoubWFuaWZlc3QKKyouc3BlYworCisjIElu
c3RhbGxlciBsb2dzCitwaXAtbG9nLnR4dAorcGlwLWRlbGV0ZS10aGlzLWRpcmVjdG9yeS50eHQK
KworIyBVbml0IHRlc3QgLyBjb3ZlcmFnZSByZXBvcnRzCitodG1sY292LworLnRveC8KKy5jb3Zl
cmFnZQorLmNvdmVyYWdlLioKKy5jYWNoZQorbm9zZXRlc3RzLnhtbAorY292ZXJhZ2UueG1sCisq
LGNvdmVyCisKKyMgVHJhbnNsYXRpb25zCisqLm1vCisqLnBvdAorCisjIERqYW5nbyBzdHVmZjoK
KyoubG9nCisKKyMgU3BoaW54IGRvY3VtZW50YXRpb24KK2RvYy9fYnVpbGQvCisKKyMgUHlCdWls
ZGVyCit0YXJnZXQvCisKKyMgR2VuZXJhdGVkIGJ5IHBhcnNlLnB5IC1wCitzdGF0cy5wcm9mCisK
KyMgSURFCisuaWRlYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uZ2l0bW9kdWxlcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvLmdpdG1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJjYTQ3MDMyOGQ2YmM1NmQ0NDM0
OTYyYTY5NzI5OTJkY2U0Y2RjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLmdp
dG1vZHVsZXMKQEAgLTAsMCArMSwzIEBACitbc3VibW9kdWxlICJ0ZXN0ZGF0YSJdCisJcGF0aCA9
IGh0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhCisJdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL2h0bWw1
bGliL2h0bWw1bGliLXRlc3RzLmdpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHJvc3Bl
Y3Rvci55YW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHJvc3BlY3Rvci55YW1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdl
OGVmZTFhNjI5ZTBhMDQzMWFkMTMyYzBmYTU2MzIyOTAyODNhOTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliLy5wcm9zcGVjdG9yLnlhbWwKQEAgLTAsMCArMSwyMSBAQAorc3RyaWN0
bmVzczogdmVyeWhpZ2gKK2RvYy13YXJuaW5nczogZmFsc2UKK3Rlc3Qtd2FybmluZ3M6IGZhbHNl
CisKK21heC1saW5lLWxlbmd0aDogMTM5CisKK3JlcXVpcmVtZW50czoKKyAgLSByZXF1aXJlbWVu
dHMudHh0CisgIC0gcmVxdWlyZW1lbnRzLXRlc3QudHh0CisgIC0gcmVxdWlyZW1lbnRzLW9wdGlv
bmFsLnR4dAorCitpZ25vcmUtcGF0aHM6CisgIC0gcGFyc2UucHkKKyAgLSB1dGlscy8KKworcHl0
aG9uLXRhcmdldHM6CisgIC0gMgorICAtIDMKKworbWNjYWJlOgorICBydW46IGZhbHNlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliLy5weWxpbnRyYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLnB5bGludHJj
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVhNzRkNWRiM2ZmMzE1N2UyMDZkNDdiNTA3MTVkMjZhMDNlYjg5ZTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5weWxpbnRyYwpAQCAtMCwwICsxLDEwIEBA
CitbTUFTVEVSXQoraWdub3JlPXRlc3RzCisKK1tNRVNTQUdFUyBDT05UUk9MXQorIyBtZXNzYWdl
cyB1cCB0byBmaXhtZSBzaG91bGQgcHJvYmFibHkgYmUgZml4ZWQgc29tZWhvdworZGlzYWJsZSA9
IHJlZGVmaW5lZC1idWlsdGluLGF0dHJpYnV0ZS1kZWZpbmVkLW91dHNpZGUtaW5pdCxhbm9tYWxv
dXMtYmFja3NsYXNoLWluLXN0cmluZyxuby1zZWxmLXVzZSxyZWRlZmluZWQtb3V0ZXItbmFtZSxi
YWQtY29udGludWF0aW9uLHdyb25nLWltcG9ydC1vcmRlcixzdXBlcmZsdW91cy1wYXJlbnMsbm8t
bWVtYmVyLGR1cGxpY2F0ZS1jb2RlLHN1cGVyLWluaXQtbm90LWNhbGxlZCxhYnN0cmFjdC1tZXRo
b2QscHJvcGVydHktb24tb2xkLWNsYXNzLHdyb25nLWltcG9ydC1wb3NpdGlvbixuby1uYW1lLWlu
LW1vZHVsZSxuby1pbml0LGJhZC1tY3MtY2xhc3NtZXRob2QtYXJndW1lbnQsYmFkLWNsYXNzbWV0
aG9kLWFyZ3VtZW50LGZpeG1lLGludmFsaWQtbmFtZSxpbXBvcnQtZXJyb3IsdG9vLWZldy1wdWJs
aWMtbWV0aG9kcyx0b28tbWFueS1hbmNlc3RvcnMsdG9vLW1hbnktYXJndW1lbnRzLHRvby1tYW55
LWJvb2xlYW4tZXhwcmVzc2lvbnMsdG9vLW1hbnktYnJhbmNoZXMsdG9vLW1hbnktaW5zdGFuY2Ut
YXR0cmlidXRlcyx0b28tbWFueS1sb2NhbHMsdG9vLW1hbnktbGluZXMsdG9vLW1hbnktcHVibGlj
LW1ldGhvZHMsdG9vLW1hbnktcmV0dXJuLXN0YXRlbWVudHMsdG9vLW1hbnktc3RhdGVtZW50cyxt
aXNzaW5nLWRvY3N0cmluZyxsaW5lLXRvby1sb25nLGxvY2FsbHktZGlzYWJsZWQsbG9jYWxseS1l
bmFibGVkLGJhZC1idWlsdGluLGRlcHJlY2F0ZWQtbGFtYmRhCisKK1tGT1JNQVRdCittYXgtbGlu
ZS1sZW5ndGg9MTM5CitzaW5nbGUtbGluZS1pZi1zdG10PW5vCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliLy5weXRlc3QuZXhwZWN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHl0ZXN0LmV4cGVjdApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZmEzMjZmMDM1NGY4OTQzMWRiODNjNzQyMGNhNDEyN2U2MGM1MjY5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHl0ZXN0LmV4cGVjdApAQCAtMCwwICsxLDEzMjIg
QEAKK3B5dGVzdC1leHBlY3QgZmlsZSB2MQorKDIsIDcsIDExLCAnZmluYWwnLCAwKQorYidodG1s
NWxpYi90ZXN0cy90ZXN0X2VuY29kaW5nLnB5Ojp0ZXN0X2VuY29kaW5nOjpbMTEwXSc6IEZBSUwK
K2InaHRtbDVsaWIvdGVzdHMvdGVzdF9lbmNvZGluZy5weTo6dGVzdF9lbmNvZGluZzo6WzExMV0n
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0Mi50ZXN0Ojow
OjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90
ZXN0My50ZXN0OjoyMjg6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjIzMTo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjMyOjpkYXRhU3RhdGUnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyMzQ6
OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rl
c3QzLnRlc3Q6OjIzNTo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjM3OjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyNDA6OmRhdGFTdGF0ZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjI0MTo6
ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVz
dDMudGVzdDo6MjQzOjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3Rva2VuaXplci90ZXN0My50ZXN0OjoyNDQ6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjI0Njo6ZGF0YVN0YXRlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjU4Ojpk
YXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0
My50ZXN0Ojo2NTY6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
YWRvcHRpb24wMS5kYXQ6OjE3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0
OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0OjoxNzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9hZG9w
dGlvbjAxLmRhdDo6MTc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0OjowOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3Jl
aWduLWZyYWdtZW50LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjE4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxODo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxODo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoxOTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6MTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojox
OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojox
OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOTo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMjo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6MjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoyMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoyMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0OjoyMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6MjI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjIyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIzOjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIzOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoyMzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjI2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNjo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNjo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjY6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoyNzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6Mjc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoy
Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoy
Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNzo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0OjoyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9m
b3JlaWduLWZyYWdtZW50LmRhdDo6MzA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0OjozMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6MzA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjMwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMxOjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozMTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjM0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNDo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNDo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjozNTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6MzU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoz
NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoz
NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNTo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzg6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWln
bi1mcmFnbWVudC5kYXQ6OjM4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6Mzg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6Mzg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6Mzg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjM4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoz
ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6Mzk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0OjozOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3Jl
aWduLWZyYWdtZW50LmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjQwOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQw
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MDo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQwOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQwOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQwOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MDo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0Ojo0MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRh
dDo6NDE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0
MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0
MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MTo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDc6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWln
bi1mcmFnbWVudC5kYXQ6OjQ3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6NDc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6NDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdt
ZW50LmRhdDo6NDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFn
bWVudC5kYXQ6OjQ3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0
Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
Zm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6NDg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjowOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
aXNpbmRleC5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0Ojow
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRh
dDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjE6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRh
dDo6MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjE6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2lzaW5kZXguZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2lzaW5kZXguZGF0OjoxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoxOjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lz
aW5kZXguZGF0OjoyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
aXNpbmRleC5kYXQ6OjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5k
YXQ6OjI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjI6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6
OjM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vaXNpbmRleC5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRh
dDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
bWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVt
ZW50LmRhdDo6Mzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6Mzo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVt
LWVsZW1lbnQuZGF0Ojo0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQu
ZGF0Ojo0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo0
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVu
dWl0ZW0tZWxlbWVudC5kYXQ6OjU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxl
bWVudC5kYXQ6OjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQu
ZGF0Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5k
YXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NTo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9uYW1lc3BhY2Utc2Vuc2l0aXZpdHkuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL25hbWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVi
eS5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojow
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9ydWJ5LmRhdDo6MTA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5
LmRhdDo6MTA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
cnVieS5kYXQ6OjEyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEyOjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVi
eS5kYXQ6OjEyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEyOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjEyOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRh
dDo6MTI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNTo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3J1YnkuZGF0OjoxNTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTU6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNTo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
MTU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE1OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9ydWJ5LmRhdDo6MTc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTc6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9ydWJ5LmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
MTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTc6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0OjoxNzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojox
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9ydWJ5LmRhdDo6MjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MjA6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6MjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MjA6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MjA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1Ynku
ZGF0OjoyMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyOjps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjozOjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0OjozOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRh
dDo6Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjozOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vcnVieS5kYXQ6OjM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVi
eS5kYXQ6OjU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjU6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6NTo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6NTo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9ydWJ5LmRhdDo6NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0Ojo3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo3OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3NjcmlwdGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Njcmlw
dGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRl
ZC9hZG9wdGlvbjAxLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Njcmlw
dGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0
ZWQvYWRvcHRpb24wMS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2Ny
aXB0ZWQvYWRvcHRpb24wMS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYWRv
cHRpb24wMS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6
OjA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0OjowOjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3NjcmlwdGVkL2Fyay5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3Jp
cHRlZC9hcmsuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYXJr
LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0
OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6OjA6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRl
ZC93ZWJraXQwMS5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dl
YmtpdDAxLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dl
YmtpdDAxLmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtp
dDAxLmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJr
aXQwMS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0Ojow
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9z
Y3JpcHRlZC93ZWJraXQwMS5kYXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
c2NyaXB0ZWQvd2Via2l0MDEuZGF0OjoxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dl
YmtpdDAxLmRhdDo6MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAwOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDA6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTAwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
MDA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxMDE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMTo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTAxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAx
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAxOjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTAyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMjo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxMDI6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDI6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAzOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxMDM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAzOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDM6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwMzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDQ6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjEwNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxMDQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEw
NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwNTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA1OjpET006OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTA1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxMDU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxMDY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDY6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA2OjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjEwNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjEwNjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNjo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjEwNzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjEwNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNzo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTA3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwOjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjEwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEx
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjExOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjExOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTE6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjExOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjEyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjEyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTI6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjEzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMzo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMzo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjE0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNDo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
NDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxNTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoxNTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxNjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxNjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3OjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxNzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxNzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE4OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjE4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE4OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjE4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE5OjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjE5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE5
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTk6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjE5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMDo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoyMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIwOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoyMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIxOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6Omx4bWw6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyMjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIyOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoyMzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjM6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjIzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjM6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoyNDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjQ6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MjQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjI0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MjQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MjU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjI1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MjU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MjY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNzo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mjc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNzo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjc6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6Mjc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyODo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyODo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOTo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoyOTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI5OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoyOTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzA6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MzA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MzA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMDo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MzA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MzE6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MzE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjMxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MzI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MzI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjMyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMjo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MzM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMzOjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjMzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjozMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMzOjps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MzQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM0
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjM0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjozNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjM0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjM1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjozNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjM1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjM2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjM2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzc6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjM3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mzc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzc6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM3OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjM3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mzc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzg6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6Mzg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzg6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6Mzg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQwOjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQw
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDA6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQxOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjQxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDE6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDI6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjQzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo0Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDM6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjQ0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NDo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NDQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NDo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0
NTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NDU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo0NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo0Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NDY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo0Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo0Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo0Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3Ojps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ4OjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo0ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQ4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ4OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0ODo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQ4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ5OjpET006OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjQ5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ5OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjQ5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MDo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1
MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUwOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MTo6
RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo1MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUxOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUyOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo1Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NTM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUz
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo1NDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTQ6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjU0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTQ6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NTU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjU1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NTU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NTY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjU2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NTY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NTc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTc6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NTc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1ODo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NTg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1ODo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTg6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NTg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OTo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo1OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OTo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo1OTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjA6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MDo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NjA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjE6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYx
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MTo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NjI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjYyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mjo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpseG1sOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NjM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYzOjpET006OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjYzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2
Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYzOjpseG1s
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NjQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY0OjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo2NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY0
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjY1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo2NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjY1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjY2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo2Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjY2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjY3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY3OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjY3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njg6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Njg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njg6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Njg6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njk6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Njk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njk6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Njk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcwOjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjcwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjcwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjcwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojcx
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjcxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjcxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3
MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzE6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjcxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjcyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjcyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo3Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzI6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjczOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mzo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo3Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NzM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mzo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojc0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NDo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NzQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3
NDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo3NTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NzU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo3NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo3Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NzY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo3Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3OjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo3Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Nzo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo3Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc4OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojc4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc4OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojc4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc5OjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojc5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc5
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzk6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojc5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgwOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjgwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjgwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODA6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjgwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjgxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjgxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODE6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjgyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjgyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODI6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjgzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mzo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo4Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6ODM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mzo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4
NDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6ODQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4NDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo4NTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6ODU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo4NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo4Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo4Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2Ojps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg3OjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo4Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojg3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg3OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Nzo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojg3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg4OjpET006OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojg4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg4OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojg4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg5OjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojg5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojg5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODk6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojg5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MDo6
RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo5MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkwOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo5MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkxOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojky
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo5Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTM6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6OTM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjkzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTM6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
OTQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojk0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6OTU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojk1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6OTU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6OTY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTY6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6OTY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Nzo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6OTc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Nzo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTc6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6OTc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5ODo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5ODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5ODo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OTo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo5OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk5OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6Omx4bWw6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo5OTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0OjoyOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxMS5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojoy
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRh
dDo6Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjQ6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRh
dDo6NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjQ6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMTEuZGF0Ojo0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo0OjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
c3RzMTEuZGF0Ojo1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxMS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5k
YXQ6OjU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjU6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6
OjY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjY6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMxMS5kYXQ6OjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRh
dDo6Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxOS5kYXQ6OjE0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVz
dHMxOS5kYXQ6OjE0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNDo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
c3RzMTkuZGF0OjoxNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNzo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3Rlc3RzMTkuZGF0OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3Rz
MTkuZGF0OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNzo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTc6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0
czE5LmRhdDo6Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0Ojo3OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZXN0czE5LmRhdDo6Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0
Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMxOS5kYXQ6Ojc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMi5kYXQ6OjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZXN0czIuZGF0Ojo3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMyLmRhdDo6Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0
Ojo3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyNS5kYXQ6Ojc6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyNS5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMyNS5kYXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6
Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Vi
a2l0MDIuZGF0OjoxNDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTQ6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dl
YmtpdDAyLmRhdDo6MTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6
OjE0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTQ6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vd2Via2l0MDIuZGF0OjoxNTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTU6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3dlYmtpdDAyLmRhdDo6MTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQw
Mi5kYXQ6OjE1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6
MTU6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRh
dDo6MTY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93
ZWJraXQwMi5kYXQ6OjE2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAy
LmRhdDo6MTY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLnRy
YXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MjdlMDk0
N2UyZWJmMWI4ZWRjMWY0Mzk1MmVhMzFlMjA5OTc2NjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsMzIgQEAKK2xhbmd1YWdlOiBweXRob24K
K3B5dGhvbjoKKyAgLSAicHlweSIKKyAgLSAiMy42IgorICAtICIzLjUiCisgIC0gIjMuNCIKKyAg
LSAiMy4zIgorICAtICIyLjciCisKK3N1ZG86IGZhbHNlCisKK2NhY2hlOiBwaXAKKworZW52Ogor
ICBnbG9iYWw6CisgICAgLSBQWVRFU1RfQ09NTUFORD0iY292ZXJhZ2UgcnVuIC1tIHB5dGVzdCIK
KyAgbWF0cml4OgorICAgIC0gVE9YRU5WPW9wdGlvbmFsCisgICAgLSBUT1hFTlY9YmFzZQorICAg
IC0gVE9YRU5WPXNpeDE5LW9wdGlvbmFsCisKK2luc3RhbGw6CisgIC0gcGlwIGluc3RhbGwgdG94
IGNvZGVjb3YKKworc2NyaXB0OgorICAtIHRveAorCithZnRlcl9zY3JpcHQ6CisgIC0gcHl0aG9u
IGRlYnVnLWluZm8ucHkKKworYWZ0ZXJfc3VjY2VzczoKKyAgLSBjb2RlY292CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvYmVuY2htYXJrcy9kYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhM2JiZTNlZWIzYjcxZGExMjRmNGJkMWYxZGY4MTRhYWYwNTNhOWM3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
YmVuY2htYXJrcy9kYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvUkVBRE1FLm1kCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvaHRtbC5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2JhY2tncm91bmQtb3JpZ2luLTAw
Ny1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5kb20vYmFj
a2dyb3VuZC1vcmlnaW4tMDA3LXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzYTFkMDUzMjgxODQyOGUz
ZGZiNjkxMDFkN2U4Yjg4MWI0MjA2MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2JhY2tncm91bmQtb3JpZ2luLTAwNy1yZWYuaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5DU1MgQmFja2dyb3VuZHMgYW5kIEJvcmRlcnMgUmVmZXJlbmNlPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwu
Y29tIj4KKzxzdHlsZT4KKyAgZGl2IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAg
ICBoZWlnaHQ6IDU1cHg7CisgICAgbGVmdDogNXB4OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICB0b3A6IDVweDsKKyAgICB3aWR0aDogNTVweDsKKyAgfQorPC9zdHlsZT4KKzxib2R5Pgor
ICA8cD5UZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBhIGZpbGxlZCBncmVlbiBzcXVhcmUgYW5kIDxz
dHJvbmc+bm8gcmVkPC9zdHJvbmc+LjwvcD4KKyAgPGRpdj48L2Rpdj4KKzwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5kb20vbGktdHlwZS11
bnN1cHBvcnRlZC1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9y
YW5kb20vbGktdHlwZS11bnN1cHBvcnRlZC1yZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmJjNWFjYTk3
NGJmZmVhZGUyZTk3ZThmYTRkMGYxODNhODQ3NDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9saS10eXBlLXVuc3VwcG9ydGVkLXJl
Zi5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5saUB0eXBlOiB1bnN1cHBvcnRlZCB0eXBlczwvdGl0bGU+Cis8bGk+Zmly
c3QgaXRlbTwvbGk+Cis8bGk+c2Vjb25kIGl0ZW08L2xpPgorPG9sPgorICA8bGk+Zmlyc3Qgb3Jk
ZXJlZCBpdGVtPC9saT4KKyAgPGxpPnNlY29uZCBvcmRlcmVkIGl0ZW08L2xpPgorPC9vbD4KKzx1
bD4KKyAgPGxpPmZpcnN0IHVub3JkZXJlZCBpdGVtPC9saT4KKyAgPGxpPnNlY29uZCB1bm9yZGVy
ZWQgaXRlbTwvbGk+Cis8L3VsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtz
L2RhdGEvd3B0L3JhbmRvbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJr
cy9kYXRhL3dwdC9yYW5kb20vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDQxYzY2NmFlMDQyODQzOGEyNGU3YTg2OWVmODQ0NGQ3MDNhNmEwZjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5j
aG1hcmtzL2RhdGEvd3B0L3JhbmRvbS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDI5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC9y
YW5kb20vMDAxLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9t
L2JhY2tncm91bmRfc2hvcnRoYW5kX2Nzc19yZWxhdGl2ZV91cmwuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvYmVuY2htYXJrcy9kYXRhL3dwdC9yYW5kb20vYmVmb3JldW5sb2FkLW9uLWhpc3RvcnktYmFj
ay0xLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2V1Y2ty
LWVuY29kZS1mb3JtLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFu
ZG9tL2ZyYW1lLWFuY2VzdG9ycy1zZWxmLWFsbG93Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNo
bWFya3MvZGF0YS93cHQvcmFuZG9tL2dyb3VwaW5nLWRsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Jl
bmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2hlYXZ5LXN0eWxpbmctMDA1Lmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2h0Yi1sdHItbHRyLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL2lkYmluZGV4X2dldDguaHRtCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3JhbmRvbS9pZGxoYXJuZXNzLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL21vei1jc3MyMS1mbG9h
dC1wYWdlLWJyZWFrLWluc2lkZS1hdm9pZC02Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFy
a3MvZGF0YS93cHQvcmFuZG9tL3NoYXBlLW91dHNpZGUtY29udGVudC1ib3gtMDAyLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvcmFuZG9tL3dvcmtlci1jb25zdHJ1Y3Rv
ci5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93
cHQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWY1ZTgzYTk4NGJm
MzZmNTAxMjE3N2FiNGYzZmJhNzExZTk4ZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L0xJQ0VOU0UubWQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Jl
bmNobWFya3MvZGF0YS93cHQvUkVBRE1FLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Jl
bmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvZmlsdGVyLXR1cmJ1bGVuY2UtaW52YWxpZC0wMDEu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9maWx0ZXIt
dHVyYnVsZW5jZS1pbnZhbGlkLTAwMS5odG1sCmluZGV4IDEyMmNjNzBmMzk3OTM1MDI2OTQ5OThm
ZmE0M2M0MzE3NzFlMjhlZjcuLjc0MDBjOGIzNzkzOGYxNDNmYTcwMWU5MTI2YzBhNzY5ZDRkNGRl
MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRl
ZC9maWx0ZXItdHVyYnVsZW5jZS1pbnZhbGlkLTAwMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
YmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9maWx0ZXItdHVyYnVsZW5jZS1pbnZhbGlkLTAw
MS5odG1sCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgICAgICAgICA8ZmVGdW5jRyB0eXBlPSJkaXNj
cmV0ZSIgdGFibGVWYWx1ZXM9IjAgMC41MDIgMCIvPiA8IS0tIG1hcCBbMC4uMS8zXSAtPiAwOyBb
MS8zLi4uMi8zXSAtPiAwLjUwMjsgWzIvMy4uMV0gLT4gMCAtLT4KICAgICAgICAgICAgIDxmZUZ1
bmNCIHR5cGU9ImRpc2NyZXRlIiB0YWJsZVZhbHVlcz0iMCIvPgogICAgICAgICAgICAgPGZlRnVu
Y0EgdHlwZT0iZGlzY3JldGUiIHRhYmxlVmFsdWVzPSIwIDEgMCIvPgotICAgICAgICA8L2ZlY29t
cG9uZW50dHJhbnNmZXI+CisgICAgICAgIDwvZmVDb21wb25lbnRUcmFuc2Zlcj4KICAgICA8L2Zp
bHRlcj4KIAogICAgIDxmaWx0ZXIgaWQ9ImZuMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdo
dD0iMSI+CkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgICAgICA8ZmVGdW5jRyB0eXBlPSJkaXNj
cmV0ZSIgdGFibGVWYWx1ZXM9IjAgMC41MDIgMCIvPiA8IS0tIG1hcCBbMC4uMS8zXSAtPiAwOyBb
MS8zLi4uMi8zXSAtPiAwLjUwMjsgWzIvMy4uMV0gLT4gMCAtLT4KICAgICAgICAgICAgIDxmZUZ1
bmNCIHR5cGU9ImRpc2NyZXRlIiB0YWJsZVZhbHVlcz0iMCIvPgogICAgICAgICAgICAgPGZlRnVu
Y0EgdHlwZT0iZGlzY3JldGUiIHRhYmxlVmFsdWVzPSIwIDEgMCIvPgotICAgICAgICA8L2ZlY29t
cG9uZW50dHJhbnNmZXI+CisgICAgICAgIDwvZmVDb21wb25lbnRUcmFuc2Zlcj4KICAgICA8L2Zp
bHRlcj4KIAogICAgIDwhLS0gdHlwZT10dXJidWxlbmNlIC0tPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL2ltYWdlLW9yaWVudGF0aW9uLWZy
b20taW1hZ2UtY29udGVudC1pbWFnZXMtcmVmLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFy
a3MvZGF0YS93cHQvd2VpZ2h0ZWQvaW1hZ2Utb3JpZW50YXRpb24tZnJvbS1pbWFnZS1jb250ZW50
LWltYWdlcy1yZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGQyOTkwOWY5MDY4ODAzZGZjZmU5YmQ2ODE4
ZjM1NGQ0ZmI2Y2E4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtz
L2RhdGEvd3B0L3dlaWdodGVkL2ltYWdlLW9yaWVudGF0aW9uLWZyb20taW1hZ2UtY29udGVudC1p
bWFnZXMtcmVmLmh0bWwKQEAgLTAsMCArMSw4NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPkNTUyBJbWFnZXMgTW9kdWxlIExldmVsIDM6IGltYWdlLW9yaWVudGF0
aW9uOiBmcm9tLWltYWdlIGZvciBjb250ZW50IGltYWdlczwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IlN0ZXBoZW4gQ2hlbm5leSIgaHJlZj0ibWFpbHRvOnNjaGVubmV5QGNocm9t
aXVtLm9yZyI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtaW1hZ2VzLTMvI3Byb3BkZWYtaW1hZ2Utb3JpZW50YXRpb24iPgorPHN0eWxlPgorICAg
IGRpdi5pbWFnZSB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICB9CisgICAg
ZGl2LmNvbnRhaW5lciB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBp
bWcgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgfQorICAgIGJvZHkgeworICAg
ICAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSA+
CisgICAgPHA+VGhlIGltYWdlcyBzaG91bGQgcm90YXRlIHJlc3BlY3RpbmcgdGhlaXIgRVhJRiBv
cmllbnRhdGlvbiBiZWNhdXNlCisgICAgICAgaW1hZ2Utb3JpZW50YXRpb246IGZyb20taW1hZ2Ug
aXMgc3BlY2lmaWVkLgorICAgIDwvcD4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCguLi9zdXBwb3J0L2V4
aWYtb3JpZW50YXRpb24tMS11bC1wcmUtcm90YXRlZC5qcGcpIj48L2Rpdj4KKyAgICAgICAgPGJy
Pk5vcm1hbAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImltYWdlIiBzdHlsZT0iY29udGVudDogdXJsKC4uL3N1cHBvcnQvZXhpZi1v
cmllbnRhdGlvbi0yLXVyLXByZS1yb3RhdGVkLmpwZykiPjwvZGl2PgorICAgICAgICA8YnI+Rmxp
cHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCguLi9zdXBw
b3J0L2V4aWYtb3JpZW50YXRpb24tMy1sci1wcmUtcm90YXRlZC5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCgu
Li9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tNC1sb2wtcHJlLXJvdGF0ZWQuanBnKSI+PC9kaXY+
CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0
eWxlPSJjb250ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTUtbHUtcHJlLXJv
dGF0ZWQuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBm
bGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCguLi9zdXBw
b3J0L2V4aWYtb3JpZW50YXRpb24tNi1ydS1wcmUtcm90YXRlZC5qcGcpIj48L2Rpdj4KKyAgICAg
ICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlIiBzdHlsZT0iY29udGVudDogdXJs
KC4uL3N1cHBvcnQvZXhpZi1vcmllbnRhdGlvbi03LXJsLXByZS1yb3RhdGVkLmpwZykiPjwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzPSJpbWFnZSIgc3R5bGU9ImNvbnRlbnQ6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRp
b24tOC1sbG8tcHJlLXJvdGF0ZWQuanBnKSI+PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxpbWcgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9zdXBwb3J0
L2V4aWYtb3JpZW50YXRpb24tNS1sdS1wcmUtcm90YXRlZC5qcGcpIj48L2ltZz4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3R5bGU9ImJhY2tn
cm91bmQtaW1hZ2U6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tNi1ydS1wcmUtcm90
YXRlZC5qcGcpIj48L2ltZz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxpbWcgc3R5bGU9ImJh
Y2tncm91bmQtaW1hZ2U6IHVybCguLi9zdXBwb3J0L2V4aWYtb3JpZW50YXRpb24tNy1ybC1wcmUt
cm90YXRlZC5qcGcpIj48L2ltZz4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGltZyBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL3N1cHBvcnQv
ZXhpZi1vcmllbnRhdGlvbi04LWxsby1wcmUtcm90YXRlZC5qcGcpIj48L2ltZz4KKyAgICAgICAg
PGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaW1hZ2UiIHN0eWxlPSJjb250
ZW50OiB1cmwoLi4vc3VwcG9ydC9leGlmLW9yaWVudGF0aW9uLTktdS1wcmUtcm90YXRlZC5qcGcp
Ij48L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJr
cy9kYXRhL3dwdC93ZWlnaHRlZC9wb3NpdGlvbi1zdGlja3ktdGFibGUtdGgtYm90dG9tLXJlZi5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL3Bvc2l0aW9u
LXN0aWNreS10YWJsZS10aC1ib3R0b20tcmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFhNWMwOGE1NWQy
OWEwODlkNTdlNDMwM2Q4OTNkZmQxNTkyMGFiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9wb3NpdGlvbi1zdGlja3ktdGFibGUt
dGgtYm90dG9tLXJlZi5odG1sCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPlJlZmVyZW5jZSBmb3IgcG9zaXRpb246c3RpY2t5IGJvdHRvbSBjb25zdHJhaW50IHNob3Vs
ZCBiZWhhdmUgY29ycmVjdGx5IGZvciAmbHQ7dGgmZ3Q7IGVsZW1lbnRzPC90aXRsZT4KKworPHN0
eWxlPgorLmdyb3VwIHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgIHdpZHRoOiAxNTBweDsKKyAgaGVpZ2h0OiAyMDBweDsKK30KKworLnNjcm9sbGVy
IHsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICB3aWR0aDogMTAwcHg7CisgIGhlaWdodDogMTUw
cHg7CisgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgb3ZlcmZsb3cteTogYXV0bzsKK30KKworLmNv
bnRlbnRzIHsKKyAgaGVpZ2h0OiA1NTBweDsKK30KKworLmluZGljYXRvciB7CisgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgIGxlZnQ6IDA7CisgIGhl
aWdodDogNTBweDsKKyAgd2lkdGg6IDUwcHg7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgord2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Njcm9sbGVyMScpLnNjcm9sbFRvcCA9IDA7CisgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzY3JvbGxlcjInKS5zY3JvbGxUb3AgPSA3NTsKKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Njcm9sbGVyMycpLnNjcm9sbFRvcCA9IDIwMDsKK30pOworPC9zY3JpcHQ+CisK
KzxkaXYgY2xhc3M9Imdyb3VwIj4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIxIiBjbGFzcz0ic2Nyb2xs
ZXIiPgorICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciIgc3R5bGU9InRvcDogMTAwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisK
KzxkaXYgY2xhc3M9Imdyb3VwIj4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIyIiBjbGFzcz0ic2Nyb2xs
ZXIiPgorICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciIgc3R5bGU9InRvcDogMTUwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisK
KzxkaXYgY2xhc3M9Imdyb3VwIj4KKyAgPGRpdiBpZD0ic2Nyb2xsZXIzIiBjbGFzcz0ic2Nyb2xs
ZXIiPgorICAgIDxkaXYgY2xhc3M9ImluZGljYXRvciIgc3R5bGU9InRvcDogMjUwcHg7Ij48L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250ZW50cyI+PC9kaXY+CisgIDwvZGl2PgorPC9kaXY+CisK
KzxkaXY+WW91IHNob3VsZCBzZWUgdGhyZWUgZ3JlZW4gYm94ZXMgYWJvdmUuIE5vIHJlZCBzaG91
bGQgYmUgdmlzaWJsZS48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJr
cy9kYXRhL3dwdC93ZWlnaHRlZC9yZXNpemUtMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNo
bWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvcmVzaXplLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMWY1
NjE3NDkzNDNiYzg4NTdkYzhjNDMzYTUwZDFiZjljOTRmMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvcmVzaXplLTAwNC5odG1s
CkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPkNTUyBCYXNpYyBVc2VyIEludGVyZmFjZSBUZXN0OiByZXNpemUgaW5pdGlhbCB2
YWx1ZSAtIG5vbmU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIj4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iU2hp
eW91IFRhbiIgaHJlZj0ibWFpbHRvOnNoaXlvdXgudGFuQGludGVsLmNvbSI+Cis8bGluayByZWw9
ImhlbHAiIHRpdGxlPSI4LjEuICdyZXNpemUnIHByb3BlcnR5IiBocmVmPSJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9jc3MzLXVpLyNyZXNpemUiPgorPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9Imlu
dGVyYWN0Ij4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iVGVzdCBjaGVja3MgdGhhdCB0
aGUgcmVzaXplIHByb3BlcnR5IGluaXRpYWwgdmFsdWUgaXMgbm9uZSI+Cis8c3R5bGU+CisgICN0
ZXN0IHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgb3ZlcmZsb3c6IGF1dG87CisgICAgd2lkdGg6IDEwMHB4OworICB9Cis8L3N0eWxlPgorPGJv
ZHk+CisgIDxwPlRlc3QgcGFzc2VzIGlmIDxzdHJvbmc+bmVpdGhlcjwvc3Ryb25nPiB0aGUgaGVp
Z2h0IDxzdHJvbmc+bm9yPC9zdHJvbmc+IHRoZSB3aWR0aCBvZiB0aGUgYmx1ZSBib3JkZXIgc3F1
YXJlIGNhbiBiZSBhZGp1c3RlZChmb3IgaW5zdGFuY2UgYnkgZHJhZ2dpbmcgdGhlIGJvdHRvbS1y
aWdodCBjb3JuZXIpLjwvcD4KKyAgPGRpdiBpZD0idGVzdCI+PC9kaXY+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdGVzdC1w
bGFuLnNyYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVk
L3Rlc3QtcGxhbi5zcmMuaHRtbAppbmRleCA2NDRjMTBhYTEyMjA1ZDM4ZjQwYmM3MmRlYzYwMWY1
OTcxZmE5ZWNjLi5jMjlmMjY4ODM3ZGQ4MjhhMjRmMDRhODlhYTE0OTA5MmI4NWUxMWNjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdGVzdC1w
bGFuLnNyYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWln
aHRlZC90ZXN0LXBsYW4uc3JjLmh0bWwKQEAgLTE0OTAsNyArMTQ5MCw3IEBACiAJCQkJCQkJCVtQ
XSAtIHBhcmVudCBlbGVtZW50IHdpdGggYSBwcm9wZXJ0eSB0aGF0IGNyZWF0ZXMgYSBzdGFja2lu
ZyBjb250ZXh0IChlLmcuIDxjb2RlPnBvc2l0aW9uOmZpeGVkPC9jb2RlPik7IHRoZSBlbGVtZW50
IDxjb2RlPmJhY2tncm91bmQtY29sb3I8L2NvZGU+IGlzIG90aGVyIHRoYW4gPGNvZGU+dHJhbnNw
YXJlbnQ8L2NvZGU+PGJyPgogCQkJCQkJCQlbSU4tUF0gLSBJbnRlcm1lZGlhdGUgY2hpbGQgZWxl
bWVudCBiZXR3ZWVuIHRoZSBwYXJlbnQgW1BdIGFuZCB0aGUgY2hpbGQgW0JdPGJyPgogCQkJCQkJ
CQlUaGUgaW50ZXJtZWRpYXRlIGVsZW1lbnQgaGFzIHRleHQgY29udGVudCwgZGVmYXVsdCB2YWx1
ZSBmb3IgPGNvZGU+YmFja2dyb3VuZC1jb2xvcjwvY29kZT4gYW5kIDxjb2RlPmlzb2xhdGlvbjpp
c29sYXRlPC9jb2RlPiBzZXQ8YnI+Ci0JCQkJCQkJCVtCXSAtIGVsZW1lbnQgd2l0aCA8Y29kZT5t
aXgtYmxlbmQtbW9kZTwvY29kZT4gb3RoZXIgdGhhbiA8Y29kZT5ub3JtYWw8L2Q+CisJCQkJCQkJ
CVtCXSAtIGVsZW1lbnQgd2l0aCA8Y29kZT5taXgtYmxlbmQtbW9kZTwvY29kZT4gb3RoZXIgdGhh
biA8Y29kZT5ub3JtYWw8L2QgPGJyPgogCQkJCQkJCTx0ZD4KIAkJCQkJCQkJVGhlIGNvbG9yIG9m
IHRoZSBjaGlsZCBlbGVtZW50IFtCXSBtaXhlcyB3aXRoIHRoZSBjb2xvciBvZiB0aGUgaW50ZXJt
ZWRpYXRlIGVsZW1lbnQgW0lOLVBdLCB3aGVyZSB0aGV5IG92ZXJsYXAuPGJyPgogCQkJCQkJCQlU
aGVyZSBpcyBubyBibGVuZGluZyBiZXR3ZWVuIHRoZSBjb2xvciBvZiB0aGUgcGFyZW50IGVsZW1l
bnQgW1BdIGFuZCB0aGUgY29sb3Igb2YgdGhlIGJsZW5kZWQgZWxlbWVudCBbQl0uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NDNhMzE3YTdmMzlmNGZi
M2E1NTdiMjJlZDJmZjVmOGFjYTczNzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVk
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkLzJkLmNvbXBvc2l0ZS5p
bWFnZS5kZXN0aW5hdGlvbi1vdmVyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0
YS93cHQvd2VpZ2h0ZWQvYWxpZ24tY29udGVudC13cmFwLTAwMi5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL2JpZzVfY2hhcnNfZXh0cmEuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9mZXRjaC5odHRwLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvZmlsdGVyLXR1cmJ1
bGVuY2UtaW52YWxpZC0wMDEuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dw
dC93ZWlnaHRlZC9ncmlkLWF1dG8tZmlsbC1yb3dzLTAwMS5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9i
ZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL21hc29ucnktaXRlbS1wbGFjZW1lbnQtMDA2Lmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvbW96LWNzczIx
LXRhYmxlLXBhZ2UtYnJlYWstaW5zaWRlLWF2b2lkLTIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVu
Y2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC9wcmUtZmxvYXQtMDAxLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2JlbmNobWFya3MvZGF0YS93cHQvd2VpZ2h0ZWQvdGVzdC1wbGFuLnNyYy5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9iZW5jaG1hcmtzL2RhdGEvd3B0L3dlaWdodGVkL3RvQmxvYi5wbmcuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9kYXRhL3dwdC93ZWlnaHRlZC93aWxsLWNoYW5nZS1h
YnNwb3MtY2ItMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRiZTIyZjZjMDU3ZDU3YTk3MTM0OTUzNTc0
ZjczYTg0OWRmNGFiMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2JlbmNobWFya3MvYmVu
Y2hfaHRtbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvYmVuY2htYXJrcy9iZW5jaF93cHQucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9k
b2MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzAxYWJm
OGY1ZjVlODIwMTliYmM2OWE0YmM1NDM5ZmZkZGQ0MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Rv
Yy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2NoYW5nZXMucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9kb2MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLmZpbHRlcnMucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9kb2MvaHRtbDVsaWIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvaHRtbDVs
aWIudHJlZWFkYXB0ZXJzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnRyZWVidWls
ZGVycy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9odG1sNWxpYi50cmVld2Fsa2Vycy5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2RvYy9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9saWNlbnNlLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvZG9jL21ha2UuYmF0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvbW9kdWxl
cy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9tb3ZpbmdwYXJ0cy5yc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvZmxha2U4LXJ1bi5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZmxha2U4LXJ1bi5zaApv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2h0bWw1bGliL190cmllL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9f
dHJpZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQwZjFi
NTUwNTA3MmY2ZDBmN2EyYzhiYWNjYmJlYzIyNjI4M2EzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9odG1sNWxpYi9fdHJpZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvX3RyaWUvX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL3B5LnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkKaW5kZXggYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIy
OWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9m
aWx0ZXJzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9f
X2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZWY1MjEzMjI3MTYzYmE5MjU2
ZTAyOTFhOGIwOGYyZTQ3ZDdmNDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9maWx0ZXJzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0
ZXJzL2FscGhhYmV0aWNhbGF0dHJpYnV0ZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2Zp
bHRlcnMvYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9pbmplY3RfbWV0
YV9jaGFyc2V0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL2xpbnQucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvb3B0aW9uYWx0YWdzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi9maWx0ZXJzL3Nhbml0aXplci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvZmlsdGVycy93aGl0ZXNwYWNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1
bGliL3Rlc3RzL3Nhbml0aXplci10ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvc2FuaXRpemVyLXRlc3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTY1M2VkNjU0Njg1ZmJkMWRlYjFkNDRlZjRlMDk3
YzQ4YTFiMWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2FuaXRpemVyLXRlc3RkYXRhL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy9zYW5pdGl6ZXItdGVzdGRhdGEvdGVzdHMxLmRhdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRl
c3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDIy
ZGExOGNkNWNmMDFiYTYxNDBiOTNkOTdmNjU0ZTdjMjY2Yzk1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMv
c2VyaWFsaXplci10ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2VyaWFsaXpl
ci10ZXN0ZGF0YS9jb3JlLnRlc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nlcmlh
bGl6ZXItdGVzdGRhdGEvaW5qZWN0bWV0YS50ZXN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90
ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL29wdGlvbmFsdGFncy50ZXN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL29wdGlvbnMudGVzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2VyaWFsaXplci10ZXN0ZGF0YS93aGl0ZXNwYWNlLnRl
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODJjYWE0NTE2NjhmMzE2ZjE3MjA3Y2U5YzRlNWFjZTBi
NjMzMzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwzNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9jb25mdGVzdC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2FuaXRpemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90ZXN0cy9zdXBwb3J0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90
ZXN0X2FscGhhYmV0aWNhbGF0dHJpYnV0ZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rl
c3RzL3Rlc3RfZW5jb2RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3Rf
bWV0YS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9vcHRpb25hbHRhZ3Nf
ZmlsdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3BhcnNlcjIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3Rfc2FuaXRpemVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGli
L2h0bWw1bGliL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90
ZXN0cy90ZXN0X3Rva2VuaXplcjIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rl
c3RfdHJlZWFkYXB0ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3Ry
ZWV3YWxrZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3doaXRlc3Bh
Y2VfZmlsdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90b2tlbml6ZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rva2VuaXplcnRvdHJlZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdHJlZV9jb25zdHJ1Y3Rpb24ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2h0bWw1bGliL3Rlc3RzL3VzLWFzY2lpLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L3Rlc3RzL3V0Zi04LWJvbS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L3RyZWVhZGFwdGVycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJl
ZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZDBmZjc4ODUxMTRhOTcxZTQ0MTY5ZjM5ODRkMTY3OTcyY2RjMjAxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJl
ZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRhcHRlcnMvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy9nZW5zaGkucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy9zYXgucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9odG1sNWxpYi90cmVlYnVpbGRlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDNkMDRjNWEyODQ2NmI5OGY3NjE3NjFkOGMyYmI5N2ViY2VhMWI1YzMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9odG1sNWxpYi90cmVlYnVpbGRlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVy
cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2Jhc2Uu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9kb20ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9ldHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvdHJlZWJ1aWxkZXJzL2V0cmVlX2x4bWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL3RyZWV3YWxrZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0NDZkMDU1YjBkZDgwNTU1NTA4MTJiODljZWQ0NTc1MjgzM2QwZmFlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRt
bDVsaWIvdHJlZXdhbGtlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWV3YWxrZXJzL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVld2Fsa2Vycy9iYXNlLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9odG1sNWxpYi90cmVld2Fsa2Vycy9kb20ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL3RyZWV3YWxrZXJzL2V0cmVlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVl
d2Fsa2Vycy9ldHJlZV9seG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVld2Fsa2Vy
cy9nZW5zaGkucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxZGUwNTYxY2MyYzdlMWQ3YjRkYTFmN2MyMTNmYWVkNGU1MjA0
YTg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9odG1sNWxpYi9faWhhdGV4bWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L19pbnB1dHN0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3Rva2VuaXplci5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3V0aWxzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi9jb25zdGFudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2h0bWw1cGFyc2VyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9odG1sNWxpYi9zZXJpYWxpemVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL3BhcnNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9wYXJzZS5weQpvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL3JlcXVpcmVtZW50cy1p
bnN0YWxsLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9yZXF1aXJlbWVudHMtaW5zdGFsbC5zaApvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL3V0aWxz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDMxZTAwMzllZjQwMDI3M2M3MWUzMmUyYmQ3YmQ3
NmY2N2E0MjM1Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL3V0aWxzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy9lbnRpdGllcy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0YjgzNDM5N2MwZTI1
N2I2OGE2YzMxYzQ2ODE3YTdmYmQ3ZTAyZTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvQVVUSE9SUy5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL0NIQU5HRVMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9DT05UUklCVVRJTkcu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9NQU5JRkVTVC5pbgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZGVidWctaW5mby5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvZmxha2U4LXJ1bi5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcGFyc2UucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL3B5dGVzdC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL3JlcXVpcmVtZW50cy1pbnN0
YWxsLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwudHh0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9yZXF1aXJlbWVudHMtdGVzdC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL3JlcXVpcmVtZW50
cy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvc2V0dXAucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29t
bW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZTA4MTgxMTQwOGU3ZDg3YzEwMzE5
NDQ3ZjA1Nzg0ODkyNmVmZmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tbW9uL2J1ZnNvY2tldC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHlwZXIvaHlwZXIvY29tbW9uL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1v
bi9kZWNvZGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vZXhjZXB0aW9ucy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvY29tbW9uL2hlYWRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1v
bi91dGlsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9oMi9fX2luaXRfXy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2NvbmZpZy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHlwZXIvaHlwZXIvaDIvY29uZmlnLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvY29ubmVjdGlvbi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvaDIvY29ubmVjdGlvbi5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Vycm9ycy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvaDIvZXJyb3JzLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXZlbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
Mi9ldmVudHMucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9oMi9leGNlcHRpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9l
eGNlcHRpb25zLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXIvaHlwZXIvaDIvZnJhbWVfYnVmZmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
Mi9mcmFtZV9idWZmZXIucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zZXR0aW5ncy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
aDIvc2V0dGluZ3MucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3N0
cmVhbS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h5cGVyL2h5cGVyL2gyL3V0aWxpdGllcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvdXRpbGl0
aWVzLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHlwZXIvaHlwZXIvaDIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3czYy1p
bXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTBlMjY5NGZlMzY1YjIx
MGY0N2ZhMzI3ZmFkNGZjMmNjODkxY2M2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5
cGVyL2gyL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Vycm9ycy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaDIvZXZlbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9leGNlcHRp
b25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9mcmFtZV9idWZmZXIucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVy
L2h5cGVyL2gyL3NldHRpbmdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zdHJlYW0ucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h5cGVyL2h5cGVyL2gyL3V0aWxpdGllcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvd2lu
ZG93cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi93aW5kb3dzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlci9oeXBlci9oMi93aW5kb3dzLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9odHRwMTEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhjYjdjZTc1ZmQyMGJiZTYzY2Y5ZTIwMjgxOGI4NTQxNTUwZDdiODEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9odHRwMTEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAxMS9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvaHR0cDExL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAxMS9w
YXJzZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAxMS9yZXNwb25zZS5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5
cGVyL2h0dHAyMC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjNhZjg2NTVlYzYwZDdmMTRkZThjZTNhY2VjNDAyMGRjOTRlNDQ2NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaHR0cDIwL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MjAvY29ubmVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL2Vycm9ycy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaHR0cDIwL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0
dHAyMC9yZXNwb25zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL3N0cmVhbS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaHR0cDIwL3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC93
aW5kb3cucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHBhY2svdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2hwYWNrL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTUwMDU0NTc2MzRmYmEzMDQ0YTY4
ZDY4YWY4MTUwODBjNGRhNTNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHBhY2svdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L3BhY2thZ2VzL2hwYWNrL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9o
cGFjay9jb21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2hwYWNrL2V4Y2VwdGlv
bnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2hwYWNrL2hwYWNrLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9ocGFja19jb21wYXQucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5
cGVyL3BhY2thZ2VzL2hwYWNrL2h1ZmZtYW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2Vz
L2hwYWNrL2h1ZmZtYW5fY29uc3RhbnRzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L3BhY2thZ2VzL2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3Bh
Y2thZ2VzL2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE3ZjBiZmYzOTY2NTZhYTI2YjdmNjc2NDYyZGYyMWU3MGU2ZGMzODQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9w
YWNrYWdlcy9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL2ZsYWdzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL2ZyYW1lLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmODJjNDhhYzBlMDc5ZGUyNGI1ZmZjNzc4ZDI5Y2M4M2Zi
NzU2MTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9y
ZmMzOTg2L0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvYXBpLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L2NvbXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
cGFja2FnZXMvcmZjMzk4Ni9leGNlcHRpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdl
cy9yZmMzOTg2L21pc2MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvbm9y
bWFsaXplcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvcGFyc2VyZXN1
bHQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvdXJpLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzg3OTQxZDJhYTRlZDc5MTExODJjMjg1MjEzODFmNzAzNTA4YTA5ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3Bh
Y2thZ2VzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5OWU2MTlkM2VlZmY1NDg1
MGI5NmZhNWFlNWI2NGM0ZDBlZTExYjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NlcnRzLnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY2xpLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9jb21wYXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbnRyaWIu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHBsaWJfY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBl
ci9zc2xfY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci90bHMucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGEwNzY5ZDUyNGY4ZmMzMzAxNDM0ZDE0NmRiMjY3YjU1Y2UyNWEy
YmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS5l
Z2ctaW5mby9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL1NP
VVJDRVMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8vZGVwZW5kZW5j
eV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS5lZ2ctaW5mby90b3BfbGV2
ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGY1YjVmMjg0ZmUyY2MzZDg3MGU1ODhhOTAwMzM2N2E2
YTMwZDU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9leGNlcHRpb25zLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL2h5cGVyZnJhbWUvZmxhZ3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFt
ZS9mcmFtZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyZnJhbWUvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmNkNjdiZjlmOGNkYzAwYjNhYTI3NTc2YTRhZTIyOWZjZWU5YjM3YS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVy
ZnJhbWUvdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS90ZXN0L3Rlc3RfZmxhZ3MucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVy
ZnJhbWUvdGVzdC90ZXN0X2ZyYW1lcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlNjZjNDQwOWE1MDE5MGZiMGUzMDBjYjU0ZjYyYzQ1MWRiNGU1
ZjI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9DT05UUklCVVRPUlMucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZy
YW1lL0hJU1RPUlkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJh
bWUvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJh
bWUvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJh
bWUvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhLy5naXRodWIv
d29ya2Zsb3dzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGh1
Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRkNWM0MDE2MzVlZGM1MzY4MWZmNDU0YWYyZTVlYjk1MDI0ZDQwZmYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEv
LmdpdGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8uZ2l0aHViL3dvcmtmbG93
cy9tYWluLnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvLmdpdGlnbm9y
ZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU4NjRk
NjEyNTk3OTg0NTJjM2FjMzk1YmNmYTdlZTI3MzM1NDlhMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW1wb3J0bGliX21ldGFkYXRhLy5naXRpZ25vcmUKQEAgLTAsMCArMSwxMyBAQAorYnVpbGQK
Ky9jb3ZlcmFnZS54bWwKKy9kaWZmY292Lmh0bWwKK2h0bWxjb3YKK2ltcG9ydGxpYl9tZXRhZGF0
YS5lZ2ctaW5mbworLm15cHlfY2FjaGUKKy8uY292ZXJhZ2UKKy8uRFNfU3RvcmUKK2FydGlmYWN0
cworLmVnZ3MKKy5kb2N0cmVlcworZGlzdAorcGlwLXdoZWVsLW1ldGFkYXRhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS8ucmVhZHRoZWRvY3MueW1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvLnJlYWR0aGVkb2NzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWU0NDY4NDI4YmVkZjc0
NDFjNGI0MzkyODQyNTA1NWE0NDUzMTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRs
aWJfbWV0YWRhdGEvLnJlYWR0aGVkb2NzLnltbApAQCAtMCwwICsxLDUgQEAKK3B5dGhvbjoKKyAg
dmVyc2lvbjogMworICBleHRyYV9yZXF1aXJlbWVudHM6CisgICAgLSBkb2NzCisgIHBpcF9pbnN0
YWxsOiB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy9fX2luaXRfXy5weQppbmRleCBh
NjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQz
NGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS9kb2NzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3Mv
X19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5
dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2RvY3MvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViMDAxNjYwMDU1ZTU5ZjczNjcxMGM2
ZWJhN2Q4OTVhZTliOTI0YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvZG9jcy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFk
YXRhL2RvY3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL2NoYW5n
ZWxvZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9kb2NzL2NvbmYucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS9kb2NzL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L2RvY3MvdXNpbmcucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9pbXBv
cnRsaWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9p
bXBvcnRsaWJfbWV0YWRhdGEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdjMWMxOTg4MjRjOWUwMmY2MTBkMDk3ODUyYjJiY2I0MGRkOTMzMzAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGli
X21ldGFkYXRhL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvaW1wb3J0bGli
X21ldGFkYXRhL19jb21wYXQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3ByZXBhcmUvZXhhbXBsZS9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJf
bWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyMmQ5OWY2Mjg2MmJmMWMxMGJjYjA5YjcxNGRjZGFiMDJl
MWE2ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL2V4YW1wbGUvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxp
Yl9tZXRhZGF0YS9wcmVwYXJlL2V4YW1wbGUvZXhhbXBsZS9fX2luaXRfXy5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHJlcGFyZS9leGFtcGxlL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzA4MzI3NGExMzNlMWY0YTJiZmFiMDU0
MjNmZDJmMzFhZTllOWRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0
bGliX21ldGFkYXRhL3ByZXBhcmUvZXhhbXBsZS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRh
ZGF0YS90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFj
N2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9fX2luaXRfXy5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBA
Ci0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVj
dG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL19faW5pdF9fLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9p
bXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0YS9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1
YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3
NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90ZXN0
cy9kYXRhL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2Rh
dGEvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVz
dHMvZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2Rh
dGEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MWUwNTBi
Y2M4NDY3MGEwZTc1MzBiN2FmMTk3MzcxMWVlNTlkMDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvZGF0
YS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lt
cG9ydGxpYl9tZXRhZGF0YS90ZXN0cy9kYXRhL2V4YW1wbGUtMjEuMTItcHkzLW5vbmUtYW55Lndo
bAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2RhdGEvZXhhbXBsZS0yMS4xMi1weTMu
Ni5lZ2cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMzdjNDlhYjU2YjNjNTkxNjBhZmZhZmEwODk0
YmQ1ZWM0ZGQ1OWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS90
ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL2ZpeHR1cmVz
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvdGVzdHMvcHkzOWNvbXBhdC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3RfYXBpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0
YWRhdGEvdGVzdHMvdGVzdF9pbnRlZ3JhdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRh
L3Rlc3RzL3Rlc3RfbWFpbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3Rlc3RzL3Rlc3Rf
emlwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzMzA3OTI2YmY1NDgxMzZhNWZlNzU5MjVlMGVhOWU2Zjg3MjllMzll
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvTElDRU5TRQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW1w
b3J0bGliX21ldGFkYXRhL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvUkVB
RE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL2NvZGVjb3YueW1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBv
cnRsaWJfbWV0YWRhdGEvY292ZXJhZ2UuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvY292
ZXJwbHVnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9pbXBvcnRsaWJfbWV0YWRhdGEvcHlwcm9qZWN0LnRvbWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2ltcG9ydGxpYl9tZXRhZGF0YS9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2ltcG9ydGxpYl9tZXRhZGF0YS9z
ZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW1wb3J0bGliX21ldGFkYXRhL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaW5pY29uZmlnLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy8uZ2l0aWdub3JlCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg5ZTYyMzQzODBjZjI5OGU0MWU4MzFiNjc2ZmY3ZDNkM2UzYzljZDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsOCBAQAorKi5l
Z2ctaW5mbworKi5weWMKKy5jYWNoZS8KKy5lZ2dzLworYnVpbGQvCitkaXN0LworX19weWNhY2hl
X18KKy50b3gvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy8uaGdpZ25vcmUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lu
aWNvbmZpZy8uaGdpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThlOTFhYmFiMWU4OWZkMmUwYmMwMTUzNmY0
Yzc2ZTYwOTk4ZGE2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnLy5oZ2lnbm9y
ZQpAQCAtMCwwICsxLDE2IEBACisKKyMgVGhlc2UgbGluZXMgYXJlIHN1Z2dlc3RlZCBhY2NvcmRp
bmcgdG8gdGhlIHN2bjppZ25vcmUgcHJvcGVydHkKKyMgRmVlbCBmcmVlIHRvIGVuYWJsZSB0aGVt
IGJ5IHVuY29tbWVudGluZyB0aGVtCitzeW50YXg6Z2xvYgorKi5weWMKKyoucHlvCisqLnN3cAor
Ki5odG1sCisqLmNsYXNzCisKKy50b3gKKworYnVpbGQKK2Rpc3QKKyouZWdnLWluZm8KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9pbmljb25maWcvLmxhbmRzY2FwZS55bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy8u
bGFuZHNjYXBlLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjEyZGRlYTQxMjE4YWEwMmQ0ZDk3NTI0MTA4MDZk
ZGU1MWE0MGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvLmxhbmRzY2FwZS55
bWwKQEAgLTAsMCArMSw1IEBACitwZXA4OgorICBmdWxsOiB0cnVlCitweXRob24tdGFyZ2V0czoK
KyAgLSAyCisgIC0gMwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvLnRyYXZpcy55bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2luaWNvbmZpZy8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2ZlZTA2YzlmYWU0OTllMzUz
ZTg2ZDQyZDdkZmJhMDczNDIyZTQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcv
LnRyYXZpcy55bWwKQEAgLTAsMCArMSwxOCBAQAorbGFuZ3VhZ2U6IHB5dGhvbgorcHl0aG9uOgor
LSAnMi43JworLSAnMy40JworLSAnMy41JworLSBuaWdodGx5CistIHB5cHkKK2luc3RhbGw6IHBp
cCBpbnN0YWxsIHNldHVwdG9vbHNfc2NtIHRveAorc2NyaXB0OiB0b3ggLWUgcHkKK2RlcGxveToK
KyAgcHJvdmlkZXI6IHB5cGkKKyAgdXNlcjogcm9ubnkKKyAgcGFzc3dvcmQ6CisgICAgc2VjdXJl
OiBEc1JWWDk5SEE2KzNKb1hPVlAvblBYZWFiSnkyUDczd3M3QWdlci9lNHJ4M3AzalM3NGJJZDA5
WHNCVTQ2YkFUOUFObVJXUFI4eTVEUmk1WmxxMFdRMnVYb1I1NXdtc2R1MktVZWdrNmJESVM0SW9w
OERGeFk4S2pvdTlzOFJaYkRUUDI3TGZ1WVhLTU8xckRXL3hhNkVoaW90WVJvZGVrZVpVejNQM01Z
aklpNnJCVjJSejN2d21JbnBrS090aTdBRndBc0NHbUNDSzEzaXJtUEpFcDVud2wzUmdlS3UyQUdh
b2x3OWV5cEpYZU5MVWNORFZRODhaVVVYUUNrd2dxN2ExQmtLNk5NZVFMTXJXQUUxYkQzYW1DYlZY
SENSOVRhVngxWkgxZG5oYTVKY2ZqM2dFRnVjVG1JbldXZXM1dTlyeXB2c0NrU3hLdFNxZGlVQTdC
TUpxN1h5a1Y3bkdOcGxHTG0yc3E0K0tTWWxmM2daWGc0WE5YUWtOT2k0RUJ0UnZhdGhmRnppRDJT
WmdkdGppUVgybmVoMGRNamY5Y3pjL3VDWWtLWUNGTGVvemR3Mm9RUStCc3hoUWZzbVUySUxHQ0ZI
eUZpa21EYkJxWk9XZlFFNVROM2l0UXFWM1RGSzhzT0hROGl5M01EU2hzK2xCazlBVXdiQ0E1WWJS
aDhoSktoZ1h5RXNEcGlzQzQxN1BqMjIrVGJ1dFRqN3YzUm1wZS9zdDRob0w3NDBncldjM1BTVlVC
YXlwRzBSc29hZlNEWlduWW5UQyswYWFrZDZRRWI1Uzl3bk1rUDk0a2lqWWpqRjZ5VUludVQwNXdk
YlF2NVhjU1hxQWRHekJxQjVqTk5kZndnV1ZDT2x3R2ZqbnZ6S2xsaEYzUG1XUFcvbmZtUXBHT1Fo
ND0KKyAgb246CisgICAgdGFnczogdHJ1ZQorICAgIGRpc3RyaWJ1dGlvbnM6IHNkaXN0IGJkaXN0
X3doZWVsCisgICAgcmVwbzogUm9ubnlQZmFubnNjaG1pZHQvaW5pY29uZmlnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2luaWNvbmZpZy9DSEFOR0VMT0cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9DSEFOR0VMT0cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3OTkxOWZjZDJlNDY1NzM0YWVjYzNmNGJiZGRi
OGNjODEwYmJkOWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9pbmljb25maWcvQ0hBTkdFTE9HCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotMS4xLjEKLT09PT09PT09PQotCi0qIGZpeCB2ZXJzaW9uIGRldGVybWluYXRpb24gKHRoYW5r
cyBAZmxvcmltb25kbWFuY2EpCi0KLTEuMS4wCi09PT09PQotCi0tIHR5cGluZyBzdHVicyAodGhh
bmtzIEBibHVldGVjaCkKLS0gY2kgZml4ZXMKLQotMS4wLjEKLT09PT09PQotCi1weXRlc3QgNSsg
c3VwcG9ydAotCi0xLjAKLT09PT0KLQotLSByZS1zeW5jIHdpdGggcHlsaWIgY29kZWJhc2UKLQot
MC4yCi09PT09PT09PT09PT09PT09PT0KLQotLSBhZGRlZCBhYmlsaXR5IHRvIGFzayAibmFtZSBp
biBpbmljb25maWciLCBpLmUuIHRvIGNoZWNrCi0gIGlmIGEgc2VjdGlvbiBpcyBjb250YWluZWQu
Ci0KLS0gZml4IGJ1ZyBpbiAibmFtZT12YWx1ZSIgcGFyc2luZyB3aGVyZSB2YWx1ZSB3YXMgIng9
MyIKLQotLSBhbGxvdyBmb3IgJzogJyB0byBkZWxpbWl0IG5hbWU9dmFsdWUgcGFpcnMsIHNvIHRo
YXQgZS5nLiAucHlwaXJjIGZpbGVzCi0gIGxpa2UgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9kaXN0
dXRpbHMvcGFja2FnZWluZGV4Lmh0bWwKLSAgY2FuIGJlIHN1Y2Nlc3NmdWxseSBwYXJzZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3NyYy9pbmljb25maWcvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2luaWNvbmZpZy9zcmMvaW5pY29uZmlnL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkNTRjODM3N2U4NTE4YmRhYTEzMTM5ZDVjYmYxNGE1NmM2MjllYmFj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5p
Y29uZmlnL3NyYy9pbmljb25maWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
OSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9zcmMvaW5pY29uZmlnL19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9pbmljb25maWcvc3JjL2luaWNvbmZpZy9fX2luaXRfXy5weWkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2lu
aWNvbmZpZy9zcmMvaW5pY29uZmlnL3B5LnR5cGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZp
Zy90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdGVzdGluZy93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI0ZDU2ZTVjMDE4OTY4MGJi
NzhlOWI2OThkODI0MzJmYTJhNmJlMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy90ZXN0aW5nL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdGVzdGlu
Zy9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3Rlc3RpbmcvdGVzdF9pbmljb25maWcucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25m
aWcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZDYyN2E4
NDRmOTU3MWYzOWU4ZTIzMjg2MjBiNDcyZDFiOTAyZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2luaWNvbmZpZy9DSEFO
R0VMT0cKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2luaWNvbmZpZy9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvTUFOSUZFU1Qu
aW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2luaWNvbmZpZy9SRUFETUUudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvZXhhbXBsZS5p
bmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2luaWNvbmZpZy9weXByb2plY3QudG9tbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaW5pY29uZmlnL3NldHVw
LmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaW5pY29uZmlnL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9pbmljb25maWcvdG94LmluaQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8uZ2l0YXR0cmlidXRlcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9y
ZS1pdGVydG9vbHMvLmdpdGF0dHJpYnV0ZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFhYmE3YTlmZThlYmU5NGE2
MzU0ZGJkNzJmOGVjMzk4NWI0YjgxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVy
dG9vbHMvLmdpdGF0dHJpYnV0ZXMKQEAgLTAsMCArMSwyIEBACittb3JlX2l0ZXJ0b29scy9tb3Jl
LnB5IG1lcmdlPXVuaW9uCittb3JlX2l0ZXJ0b29scy90ZXN0cy90ZXN0X21vcmUucHkgbWVyZ2U9
dW5pb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvLmdpdGlnbm9yZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
bW9yZS1pdGVydG9vbHMvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjk4OTFmYjQzNjAwZDZmNTNm
ZDVjZjk0MmM1ZjEyZDJjNDU2MDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0
b29scy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMzQgQEAKKyoucHlbY29dCisKKyMgUGFja2FnZXMK
KyouZWdnCisqLmVnZ3MKKyouZWdnLWluZm8KK2Rpc3QKK2J1aWxkCitlZ2dzCitwYXJ0cworYmlu
Cit2YXIKK3NkaXN0CitkZXZlbG9wLWVnZ3MKKy5pbnN0YWxsZWQuY2ZnCisKKyMgSW5zdGFsbGVy
IGxvZ3MKK3BpcC1sb2cudHh0CisKKyMgVW5pdCB0ZXN0IC8gY292ZXJhZ2UgcmVwb3J0cworLmNv
dmVyYWdlCisudG94Cisubm9zZWlkcworCisjIERvY3MgYnkgU3BoaW54CitfYnVpbGQKKworIyBF
bnZpcm9ubWVudAorLmVudgorCisjIElERSBmaWxlcworLmlkZWEKKy52c2NvZGUKKy5EU19TdG9y
ZQ0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvLnRyYXZpcy55bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21v
cmUtaXRlcnRvb2xzLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwOGZiMGM2N2U4ZWUzNDllNTNm
NDIzMTQwZjNlZGMwZGM3ZjUxM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsMjYgQEAKK3N1ZG86IGZhbHNlCisKK2xhbmd1YWdl
OiAicHl0aG9uIgorCitweXRob246CisgICAgLSAiMi43IgorICAgIC0gIjMuNCIKKyAgICAtICIz
LjUiCisgICAgLSAiMy42IgorICAgIC0gIjMuNy1kZXYiCisgICAgLSAicHlweS01LjQuMSIKKyAg
ICAtICJweXB5MyIKKworaW5zdGFsbDoKKyAgICAtICJwaXAgaW5zdGFsbCAuIgorICAgIC0gInBp
cCBpbnN0YWxsIC1VIGNvdmVyYWxscyBmbGFrZTgiCisKK3NjcmlwdDoKKyAgICAtICJjb3ZlcmFn
ZSBydW4gLS1pbmNsdWRlPSdtb3JlX2l0ZXJ0b29scy8qLnB5JyAtLW9taXQ9J21vcmVfaXRlcnRv
b2xzL3Rlc3RzLyonIHNldHVwLnB5IHRlc3QiCisgICAgLSAiZmxha2U4IC4iCisKK25vdGlmaWNh
dGlvbnM6CisgIGVtYWlsOiBmYWxzZQorCithZnRlcl9zdWNjZXNzOgorICAgIC0gImNvdmVyYWxs
cyIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzJkY2U4ODRhODNkZjhiMTIwNjA2NDM1ZTJlOTBjYWEyODBiMTgwMy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUt
aXRlcnRvb2xzL2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvTWFrZWZpbGUKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21v
cmUtaXRlcnRvb2xzL2RvY3MvYXBpLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy9jb25m
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVy
dG9vbHMvZG9jcy9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy9tYWtlLmJh
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy90ZXN0aW5nLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVy
dG9vbHMvZG9jcy92ZXJzaW9ucy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMv
bW9yZV9pdGVydG9vbHMvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL21v
cmVfaXRlcnRvb2xzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1
NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4
YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVz
dHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90
ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVf
aXRlcnRvb2xzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3Jl
X2l0ZXJ0b29scy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTMwMmE4MThiNTgwNTNjMzhlMDJiNDZjYWQyNzhmYTA4ZWYzM2RlYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xz
L21vcmVfaXRlcnRvb2xzL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90
ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVz
dHMvdGVzdF9tb3JlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90ZXN0
cy90ZXN0X3JlY2lwZXMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9p
dGVydG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRv
b2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2Q3OWI2
OGE1ZTRiNTQ5NWFkYzA0MGE4ZjQ0ZTkyOWU1YWExNWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9v
bHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL19faW5pdF9fLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9t
b3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy9tb3JlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy9tb3JlX2l0ZXJ0b29scy9yZWNpcGVzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc2NzMxYWVkM2UxNjYwZmRlODY3Mjk1OTE2
N2VlYTliYzEzOGI5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9MSUNFTlNFCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9tb3JlLWl0ZXJ0b29scy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvUkVBRE1F
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wYWNrYWdpbmcvLmNvdmVyYWdlcmMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy8uY292ZXJhZ2VyYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYTIwNWU1YTE0OTU0NWNiNGFjYWRhYjBlNjMzMjcyMmE2M2UxYjQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmNvdmVyYWdlcmMKQEAgLTAsMCArMSw5IEBACitb
cnVuXQorYnJhbmNoID0gVHJ1ZQorb21pdCA9IHBhY2thZ2luZy9fY29tcGF0LnB5CisKK1tyZXBv
cnRdCitleGNsdWRlX2xpbmVzID0KKyAgICBwcmFnbWE6IG5vIGNvdmVyCisgICAgQGFiYy5hYnN0
cmFjdG1ldGhvZAorICAgIEBhYmMuYWJzdHJhY3Rwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvLmZsYWtlOCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5mbGFrZTgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVh
MzViZTkyYWYyNTUyMzYzN2MxNDAyZTQyYTU5ZDk3YjAyYTM1YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nLy5mbGFrZTgKQEAgLTAsMCArMSwzIEBACitbZmxha2U4XQorbWF4LWxp
bmUtbGVuZ3RoID0gODgKK2lnbm9yZSA9IEUyMDMsVzUwMyxXNTA0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nLy5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2NzQwZjRjZThmYTliNmMwY2Q4ODIxZDg3OWQxNDE1ODQzYmNhMjhhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
Ly5naXRodWIvd29ya2Zsb3dzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BhY2thZ2luZy8uZ2l0aHViL3dvcmtmbG93cy9saW50LnltbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nLy5naXRodWIvd29ya2Zsb3dzL3Rlc3QueW1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NWU1NTRhNjRjMjQ0ZDk2YzIxZGQyZDhjZTA2ZjAwNjBiNjVjYWM5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDE4IEBACisqLmVnZy1pbmZv
LworKi5lZ2cKKyoucHlbY29dCisKKy5bbnRdb3gvCisuY2FjaGUvCisuY292ZXJhZ2UKKy5pZGVh
CisudmVudioKKy52c2NvZGUvCisKKy5teXB5X2NhY2hlLworLnB5dGVzdF9jYWNoZS8KK19fcHlj
YWNoZV9fLworX2J1aWxkLworYnVpbGQvCitkaXN0LworaHRtbGNvdi8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nLy5wcmUtY29tbWl0LWNvbmZpZy55YW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLnBy
ZS1jb21taXQtY29uZmlnLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM3NzY1ZWRkMTA4MDg3YTQwOGVmYTY0
ZjY1ZDFjZjQ2NGI5MGY4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5wcmUt
Y29tbWl0LWNvbmZpZy55YW1sCkBAIC0wLDAgKzEsMzIgQEAKK3JlcG9zOgorICAtIHJlcG86IGh0
dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0L3ByZS1jb21taXQtaG9va3MKKyAgICByZXY6IHYy
LjMuMAorICAgIGhvb2tzOgorICAgICAgLSBpZDogY2hlY2stdG9tbAorICAgICAgLSBpZDogY2hl
Y2steWFtbAorICAgICAgLSBpZDogZW5kLW9mLWZpbGUtZml4ZXIKKyAgICAgIC0gaWQ6IHRyYWls
aW5nLXdoaXRlc3BhY2UKKworICAtIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0
L21pcnJvcnMtbXlweQorICAgIHJldjogdjAuNzkwCisgICAgaG9va3M6CisgICAgICAtIGlkOiBt
eXB5CisgICAgICAgIGV4Y2x1ZGU6ICdeKGRvY3N8dGFza3N8dGVzdHMpfHNldHVwXC5weScKKyAg
ICAgICAgYXJnczogW10KKyAgICAgIC0gaWQ6IG15cHkKKyAgICAgICAgbmFtZTogbXlweSBmb3Ig
UHl0aG9uIDIKKyAgICAgICAgZXhjbHVkZTogJ14oZG9jc3x0YXNrc3x0ZXN0cyl8c2V0dXBcLnB5
fG5veGZpbGVcLnB5JworICAgICAgICBhcmdzOiBbIi0tcHkyIl0KKworICAtIHJlcG86IGh0dHBz
Oi8vZ2l0aHViLmNvbS9wc2YvYmxhY2sKKyAgICByZXY6IDE5LjNiMAorICAgIGhvb2tzOgorICAg
ICAgLSBpZDogYmxhY2sKKworICAtIHJlcG86IGh0dHBzOi8vZ2l0bGFiLmNvbS9QeUNRQS9mbGFr
ZTgKKyAgICByZXY6ICIzLjcuOCIKKyAgICBob29rczoKKyAgICAgIC0gaWQ6IGZsYWtlOAorICAg
ICAgICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczogWyJwZXA4LW5hbWluZyJdCisgICAgICAgICMg
SWdub3JlIGFsbCBmb3JtYXQtcmVsYXRlZCBjaGVja3MgYXMgQmxhY2sgdGFrZXMgY2FyZSBvZiB0
aG9zZS4KKyAgICAgICAgYXJnczogWyItLWlnbm9yZSIsICJFMixXNSIsICItLXNlbGVjdCIsICJF
LFcsRixOIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy5yZWFkdGhlZG9jcy55bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy8ucmVhZHRoZWRvY3MueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4YWMyMTY2ODc5OWFj
NmRjMDA0ZTVmNzhiMzk0ZjdlMGE5MmVmZjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy8ucmVhZHRoZWRvY3MueW1sCkBAIC0wLDAgKzEsMTUgQEAKK3ZlcnNpb246IDIKKworYnVp
bGQ6CisgIGltYWdlOiBsYXRlc3QKKworZm9ybWF0czogW3BkZl0KK3NwaGlueDoKKyAgY29uZmln
dXJhdGlvbjogZG9jcy9jb25mLnB5CisKK3B5dGhvbjoKKyAgdmVyc2lvbjogMy44CisgIGluc3Rh
bGw6CisgICAgLSByZXF1aXJlbWVudHM6IGRvY3MvcmVxdWlyZW1lbnRzLnR4dAorICAgIC0gbWV0
aG9kOiBwaXAKKyAgICAgIHBhdGg6IC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nLy50cmF2
aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2YwOTczYWUy
YzEwZDMyZDliMWZkYmY3OGU4MjVjZDEzYzNiNWQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsNDIgQEAKK2xhbmd1YWdlOiBweXRob24K
K2NhY2hlOiBwaXAKK3B5dGhvbjogMy44CisKK21hdHJpeDoKKyAgaW5jbHVkZToKKyAgICAtIHB5
dGhvbjogMi43CisgICAgICBlbnY6IE5PWFNFU1NJT049dGVzdHMtMi43CisgICAgLSBweXRob246
IHB5cHkKKyAgICAgIGVudjogTk9YU0VTU0lPTj10ZXN0cy1weXB5CisgICAgLSBweXRob246IHB5
cHkzCisgICAgICBlbnY6IE5PWFNFU1NJT049dGVzdHMtcHlweTMKKyAgICAtIHB5dGhvbjogMy40
CisgICAgICBlbnY6IE5PWFNFU1NJT049dGVzdHMtMy40CisgICAgLSBweXRob246IDMuNQorICAg
ICAgZW52OiBOT1hTRVNTSU9OPXRlc3RzLTMuNQorICAgIC0gcHl0aG9uOiAzLjYKKyAgICAgIGVu
djogTk9YU0VTU0lPTj10ZXN0cy0zLjYKKyAgICAtIHB5dGhvbjogMy43CisgICAgICBlbnY6IE5P
WFNFU1NJT049dGVzdHMtMy43CisgICAgLSBweXRob246IDMuOAorICAgICAgZW52OiBOT1hTRVNT
SU9OPXRlc3RzLTMuOAorICAgIC0gZW52OiBOT1hTRVNTSU9OPWxpbnQKKyAgICAtIGVudjogTk9Y
U0VTU0lPTj1kb2NzCisKK2luc3RhbGw6CisgIC0gcHllbnYgZ2xvYmFsIDMuNy4xCisgIC0gcHl0
aG9uMy43IC1tIHBpcCBpbnN0YWxsIG5veAorCitzY3JpcHQ6CisgIC0gcHl0aG9uMy43IC1tIG5v
eAorCitub3RpZmljYXRpb25zOgorICBpcmM6CisgICAgY2hhbm5lbHM6CisgICAgICAjIFRoaXMg
aXMgc2V0IHRvIGEgc2VjdXJlIHZhcmlhYmxlIHRvIHByZXZlbnQgZm9ya3MgZnJvbSBub3RpZnlp
bmcgdGhlCisgICAgICAjIElSQyBjaGFubmVsIHdoZW5ldmVyIHRoZXkgZmFpbCBhIGJ1aWxkLiBU
aGlzIGNhbiBiZSByZW1vdmVkIHdoZW4gdHJhdmlzCisgICAgICAjIGltcGxlbWVudHMgaHR0cHM6
Ly9naXRodWIuY29tL3RyYXZpcy1jaS90cmF2aXMtY2kvaXNzdWVzLzEwOTQuCisgICAgICAjIFRo
ZSBhY3R1YWwgdmFsdWUgaGVyZSBpczogaXJjLmZyZWVub2RlLm9yZyNweXBhLWRldgorICAgICAg
LSBzZWN1cmU6ICJCcjZhWUJZa2pMMTdmQlo2K0FjekNrYUJNV1FBWTZUbzhJSDR6cWhIck9SWEFX
cTR6ZXVDNFZ5Q1o0TVhtRHprMFdiQTNoM0VhN3U5a29kVWYxc1ZLMWgwcTdIWDY2cDhxbUZ5VG5j
UW9MRmdvMkxGL3gxYVUxRkdXS0REU1g1SzZxS096VUtySFVoUXlWcSt1QXVSVlVtN2JKaEpMMC92
aVB3RW9oK2JPTm89IgorICAgIHVzZV9ub3RpY2U6IHRydWUKKyAgICBza2lwX2pvaW46IHRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvX3N0YXRpYy8uZW1wdHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9kb2NzL19zdGF0aWMvLmVtcHR5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0
YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mv
ZGV2ZWxvcG1lbnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3Bt
ZW50L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTdjNzI4
ZmY1NTZhYjkzZTA3NDdjOWEyZTQxMzFiNTRjYTBhNTgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvZGV2ZWxvcG1lbnQv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L2dldHRpbmctc3RhcnRlZC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9kb2NzL2RldmVsb3BtZW50L2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvZGV2ZWxvcG1lbnQvcmVsZWFzZS1wcm9jZXNzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3Mv
ZGV2ZWxvcG1lbnQvcmV2aWV3aW5nLXBhdGNoZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9k
ZXZlbG9wbWVudC9zdWJtaXR0aW5nLXBhdGNoZXMucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2th
Z2luZy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I2ODUyOTk4NDM2NmRmMTI1YjJj
NjZkOGZkYzJiZjk1N2IzYmI3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9NYWtlZmls
ZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL2RvY3MvY2hhbmdlbG9nLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2Rv
Y3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdp
bmcvZG9jcy9tYXJrZXJzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL2RvY3MvcmVxdWlyZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L2RvY3Mvc2VjdXJpdHkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvZG9jcy9zcGVjaWZpZXJzLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL2RvY3MvdGFncy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9kb2NzL3V0aWxz
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGFja2FnaW5nL2RvY3MvdmVyc2lvbi5yc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3BhY2thZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2th
Z2luZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODliMWNm
M2JmYTdjNzIyNjhmOTM2MGY2OTQ2MzE3YTQ4MmRhZTRiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9wYWNrYWdpbmcvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcv
X2NvbXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy9fc3RydWN0dXJlcy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3BhY2thZ2luZy9fdHlwaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFja2Fn
aW5nL21hcmtlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvcHkudHlwZWQKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy9wYWNrYWdpbmcvcmVxdWlyZW1lbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvcGFj
a2FnaW5nL3NwZWNpZmllcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9wYWNrYWdpbmcvdGFncy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL3BhY2thZ2luZy91dGlscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3BhY2th
Z2luZy92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90YXNrcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2NjE5YzBmMmI0MDc3NzYzN2M4OWE0NmMwNWY4ZGJkN2ExOWU1
YzYyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rhc2tzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGFza3MvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy90YXNrcy9jaGVjay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rhc2tzL3BhdGhzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdGFza3MvcmVxdWlyZW1lbnRzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvYnVpbGQtaGVsbG8td29ybGQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy9idWlsZC1oZWxsby13b3JsZC5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1hcm12N2wtYXJtZWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1hcm12N2wtYXJtZWwKb2xkIG1vZGUg
MTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
aGVsbG8td29ybGQtYXJtdjdsLWFybWhmIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29y
bGQtYXJtdjdsLWFybWhmCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtY2xhc3MgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLWNsYXNzCm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxv
LXdvcmxkLWludmFsaWQtZGF0YSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWlu
dmFsaWQtZGF0YQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3JsZC1pbnZhbGlkLW1hZ2ljIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNr
YWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1tYWdpYwpvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9oZWxsby13b3Js
ZC14ODZfNjQtaTM4NiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1p
Mzg2Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFj
a2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC14MzIgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0
cy9oZWxsby13b3JsZC14ODZfNjQteDMyCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE3YjdmNjg3ZjJkYWFjYmE4ODhhMzUzNjQ0Njc3ZGJjZmQ0MjVkNmYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BhY2thZ2luZy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2J1
aWxkLWhlbGxvLXdvcmxkLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtYXJt
djdsLWFybWVsCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtYXJtdjdsLWFybWhm
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wYWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQtaW52YWxpZC1jbGFzcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtZGF0YQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5n
L3Rlc3RzL2hlbGxvLXdvcmxkLWludmFsaWQtbWFnaWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy9o
ZWxsby13b3JsZC1zMzkweC1zMzkweAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxk
LXRvby1zaG9ydAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1hbWQ2
NAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL2hlbGxvLXdvcmxkLXg4Nl82NC1pMzg2Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YWNrYWdpbmcvdGVzdHMvaGVsbG8td29ybGQteDg2XzY0LXgzMgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rl
c3RzL2hlbGxvLXdvcmxkLmMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X21hcmtlcnMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0X3JlcXVpcmVtZW50cy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2Fn
aW5nL3Rlc3RzL3Rlc3Rfc3BlY2lmaWVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3Rf
c3RydWN0dXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3Rlc3RzL3Rlc3RfdGFncy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGFja2FnaW5nL3Rlc3RzL3Rlc3RfdXRpbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy90ZXN0cy90ZXN0
X3ZlcnNpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGFja2FnaW5nL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYWNrYWdpbmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDhhNzJlZmUwOWM2NzRhYjc3NzVlMDRjN2FhM2QxZjk3MTJiYmM0OTUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
Y2thZ2luZy9DSEFOR0VMT0cucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvQ09OVFJJQlVUSU5HLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhY2thZ2luZy9MSUNFTlNFLkFQQUNIRQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL0xJQ0VOU0UuQlNECi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvUkVBRE1FLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGFja2FnaW5nL215cHkuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYWNrYWdpbmcvbm94ZmlsZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGFja2FnaW5nL3B5cHJvamVjdC50b21sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyLy5n
aXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI0NTYxZWFh
MWQ0ZjNlZDAxYWYxMTRhMzE1YTAwNTM3NzZmZmVkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGF0aGxpYjIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDU0IEBACisjIEJ5dGUtY29tcGlsZWQgLyBv
cHRpbWl6ZWQgLyBETEwgZmlsZXMKK19fcHljYWNoZV9fLworKi5weVtjb2RdCisKKyMgQyBleHRl
bnNpb25zCisqLnNvCisKKyMgRGlzdHJpYnV0aW9uIC8gcGFja2FnaW5nCisuUHl0aG9uCitlbnYv
CitidWlsZC8KK2RldmVsb3AtZWdncy8KK2Rpc3QvCitkb3dubG9hZHMvCitlZ2dzLworbGliLwor
bGliNjQvCitwYXJ0cy8KK3NkaXN0LwordmFyLworKi5lZ2ctaW5mby8KKy5pbnN0YWxsZWQuY2Zn
CisqLmVnZworCisjIFB5SW5zdGFsbGVyCisjICBVc3VhbGx5IHRoZXNlIGZpbGVzIGFyZSB3cml0
dGVuIGJ5IGEgcHl0aG9uIHNjcmlwdCBmcm9tIGEgdGVtcGxhdGUKKyMgIGJlZm9yZSBQeUluc3Rh
bGxlciBidWlsZHMgdGhlIGV4ZSwgc28gYXMgdG8gaW5qZWN0IGRhdGUvb3RoZXIgaW5mb3MgaW50
byBpdC4KKyoubWFuaWZlc3QKKyouc3BlYworCisjIEluc3RhbGxlciBsb2dzCitwaXAtbG9nLnR4
dAorcGlwLWRlbGV0ZS10aGlzLWRpcmVjdG9yeS50eHQKKworIyBVbml0IHRlc3QgLyBjb3ZlcmFn
ZSByZXBvcnRzCitodG1sY292LworLnRveC8KKy5jb3ZlcmFnZQorLmNhY2hlCitub3NldGVzdHMu
eG1sCitjb3ZlcmFnZS54bWwKKworIyBUcmFuc2xhdGlvbnMKKyoubW8KKyoucG90CisKKyMgRGph
bmdvIHN0dWZmOgorKi5sb2cKKworIyBTcGhpbnggZG9jdW1lbnRhdGlvbgorZG9jcy9fYnVpbGQv
CisKKyMgUHlCdWlsZGVyCit0YXJnZXQvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyLy50cmF2
aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wYXRobGliMi8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTY2NzQxMjIw
MTFiMzM3YTc2YTQ1MGMwMmU1MmNjZTQyNjdlNjdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
YXRobGliMi8udHJhdmlzLnltbApAQCAtMCwwICsxLDQ3IEBACitsYW5ndWFnZTogcHl0aG9uCitz
dWRvOiBmYWxzZQorbWF0cml4OgorICBpbmNsdWRlOgorICAgIC0gcHl0aG9uOiAiMy43IgorICAg
ICAgZGlzdDogeGVuaWFsCisgICAgICBlbnY6IExDX0FMTD0iZW5fVVMudXRmLTgiCisgICAgLSBw
eXRob246ICIzLjciCisgICAgICBkaXN0OiB4ZW5pYWwKKyAgICAgIGVudjogTENfQUxMPSJlbl9V
Uy5hc2NpaSIKKyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAgIGRpc3Q6IHhlbmlhbAorICAgIC0g
cHl0aG9uOiAiMy41IgorICAgICAgZGlzdDogeGVuaWFsCisgICAgLSBweXRob246ICIzLjQiCisg
ICAgICBkaXN0OiB4ZW5pYWwKKyAgICAtIHB5dGhvbjogIjIuNyIKKyAgICAgIGRpc3Q6IHhlbmlh
bAorICAgIC0gcHl0aG9uOiAiMi42IgorICAgICAgZGlzdDogdHJ1c3R5CisgICAgLSBweXRob246
ICJweXB5IgorICAgICAgZGlzdDogeGVuaWFsCisgICAgLSBweXRob246ICJweXB5MyIKKyAgICAg
IGRpc3Q6IHhlbmlhbAorICBhbGxvd19mYWlsdXJlczoKKyAgIyBweXB5IG9jY2FzaW9uYWxseSBo
YXMgc29tZSBidWdzCisgIC0gcHl0aG9uOiAicHlweSIKKyAgLSBweXRob246ICJweXB5MyIKK2Jy
YW5jaGVzOgorICBvbmx5OgorICAgIC0gZGV2ZWxvcAoraW5zdGFsbDoKKyAgLSAicHl0aG9uIC1j
IFwiaW1wb3J0IHN5czsgcHJpbnQoc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpKVwiIgorICAt
ICJwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgc2V0dXB0b29scyIKKyAgLSAicGlwIGluc3RhbGwgLS11
cGdyYWRlIHB5dGVzdCIKKyAgLSAicGlwIGluc3RhbGwgcHl0ZXN0LWNvdiIKKyAgLSAicGlwIGlu
c3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dCIKKyAgLSAiaWYgW1sgJFRSQVZJU19QWVRIT05fVkVS
U0lPTiA9PSAnMi42JyBdXTsgdGhlbiBwaXAgaW5zdGFsbCB1bml0dGVzdDI7IGZpIgorICAtICJp
ZiBbWyAkVFJBVklTX1BZVEhPTl9WRVJTSU9OID09ICczLjcnIF1dOyB0aGVuIHBpcCBpbnN0YWxs
IGNoZWNrLW1hbmlmZXN0IGZsYWtlODsgZmkiCisgIC0gInBpcCBpbnN0YWxsIC4iCitzY3JpcHQ6
CisgIC0gImlmIFtbICRUUkFWSVNfUFlUSE9OX1ZFUlNJT04gPT0gJzMuNycgXV07IHRoZW4gY2hl
Y2stbWFuaWZlc3Q7IGZpIgorICAtICJpZiBbWyAkVFJBVklTX1BZVEhPTl9WRVJTSU9OID09ICcz
LjcnIF1dOyB0aGVuIGZsYWtlODsgZmkiCisgIC0gY2QgdGVzdHMKKyAgLSAicHl0ZXN0IC0tY292
LXJlcG9ydD14bWwgLS1jb3Y9cGF0aGxpYjIgLiIKK2FmdGVyX3N1Y2Nlc3M6CisgIC0gYmFzaCA8
KGN1cmwgLXMgaHR0cHM6Ly9jb2RlY292LmlvL2Jhc2gpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhs
aWIyL2FwcHZleW9yL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2ZXlvci93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U3Zjg2OGU4ZDg4ZDZm
MWQxZjBiNTJmMjY1MTk0NmQ2M2RiZmM4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL2FwcHZleW9yL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9hcHB2
ZXlvci9pbnN0YWxsLnBzMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9wYXRobGliMi93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMGMyNzUzYjE3ZGNjNzA3NDM2ZDBlMTNhZThlZjE0
MzYwNjQyZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wYXRobGliMi9wYXRobGliMi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcGF0aGxpYjIvX19pbml0X18ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bh
dGhsaWIyL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MGUwMmNiMGM5YzVkNDg5NDVmYjNmMmMyYjlmZDc0OTczZjRhYmQ4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvdGVzdHMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BhdGhsaWIyL3Rlc3RzL3Rlc3RfcGF0aGxpYjIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxp
YjIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDllNjJmMGI2YjI0MWNhMjdhMGVlMGI5OGY0NjQ2ODRk
ZTVmNDg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGF0aGxpYjIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0NIQU5HRUxPRy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BhdGhsaWIyL0xJ
Q0VOU0UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvUkVB
RE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvVkVSU0lPTgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvYXBwdmV5b3Iu
eW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wYXRobGliMi9jb2RlY292LnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvcmVxdWlyZW1l
bnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGF0aGxpYjIvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wYXRobGliMi9zZXR1cC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMvcGRmLndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMv
cGRmLndvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzgyOTEzNTI4
ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3BkZi53b3JrZXIuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJL
aXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGRmX2pzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wZGZfanMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdkNDFjN2EyOGI0NDQ2YWMzYTkwODkwODA4ZGRiOWM3MWVkZTdjMWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BkZl9qcy9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMvcGRmLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wZGZfanMvcGRmLndv
cmtlci5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmNvdmVyYWdlcmMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjFkZTFjZDI0N2NhN2NlYmMzZWZmNjU5ZDcyYjEw
ZGJjZWY4YjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmNvdmVyYWdlcmMKQEAg
LTAsMCArMSwxNCBAQAorW3J1bl0KK2luY2x1ZGUgPQorICBwbHVnZ3kvKgorICB0ZXN0aW5nLyoK
KyAgKi9saWIvcHl0aG9uKi9zaXRlLXBhY2thZ2VzL3BsdWdneS8qCisgICovcHlweSovc2l0ZS1w
YWNrYWdlcy9wbHVnZ3kvKgorICAqXExpYlxzaXRlLXBhY2thZ2VzXHBsdWdneVwqCiticmFuY2gg
PSAxCisKK1twYXRoc10KK3NvdXJjZSA9IHBsdWdneS8KKyAgKi9saWIvcHl0aG9uKi9zaXRlLXBh
Y2thZ2VzL3BsdWdneS8KKyAgKi9weXB5Ki9zaXRlLXBhY2thZ2VzL3BsdWdneS8KKyAgKlxMaWJc
c2l0ZS1wYWNrYWdlc1xwbHVnZ3lcCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8uZ2l0aWdub3Jl
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTgwNTM2YzdhZGU3NDg1OGIw
NTY0YjM2ZmFjZWU4ZGNkNDk3OTQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmdp
dGlnbm9yZQpAQCAtMCwwICsxLDY0IEBACisjIEJ5dGUtY29tcGlsZWQgLyBvcHRpbWl6ZWQgLyBE
TEwgZmlsZXMKK19fcHljYWNoZV9fLworKi5weVtjb2RdCisKKyMgQyBleHRlbnNpb25zCisqLnNv
CisKKyMgRGlzdHJpYnV0aW9uIC8gcGFja2FnaW5nCisuUHl0aG9uCitlbnYvCitidWlsZC8KK2Rl
dmVsb3AtZWdncy8KK2Rpc3QvCitkb3dubG9hZHMvCitlZ2dzLworLmVnZ3MvCitsaWIvCitsaWI2
NC8KK3BhcnRzLworc2Rpc3QvCit2YXIvCisqLmVnZy1pbmZvLworLmluc3RhbGxlZC5jZmcKKyou
ZWdnCisKKyMgUHlJbnN0YWxsZXIKKyMgIFVzdWFsbHkgdGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4g
YnkgYSBweXRob24gc2NyaXB0IGZyb20gYSB0ZW1wbGF0ZQorIyAgYmVmb3JlIFB5SW5zdGFsbGVy
IGJ1aWxkcyB0aGUgZXhlLCBzbyBhcyB0byBpbmplY3QgZGF0ZS9vdGhlciBpbmZvcyBpbnRvIGl0
LgorKi5tYW5pZmVzdAorKi5zcGVjCisKKyMgSW5zdGFsbGVyIGxvZ3MKK3BpcC1sb2cudHh0Citw
aXAtZGVsZXRlLXRoaXMtZGlyZWN0b3J5LnR4dAorCisjIFVuaXQgdGVzdCAvIGNvdmVyYWdlIHJl
cG9ydHMKK2h0bWxjb3YvCisudG94LworLmNvdmVyYWdlCisuY292ZXJhZ2UuKgorLmNhY2hlCitu
b3NldGVzdHMueG1sCitjb3ZlcmFnZS54bWwKKyosY292ZXIKKworIyBUcmFuc2xhdGlvbnMKKyou
bW8KKyoucG90CisKKyMgRGphbmdvIHN0dWZmOgorKi5sb2cKKworIyBTcGhpbnggZG9jdW1lbnRh
dGlvbgorZG9jcy9fYnVpbGQvCisKKyMgUHlCdWlsZGVyCit0YXJnZXQvCisqLnN3cAorCisjIGdl
bmVyYXRlZCBieSBzZXR1cHRvb2xzX3NjbQorc3JjL3BsdWdneS9fdmVyc2lvbi5weQorCisjIGdl
bmVyYXRlZCBieSBwaXAKK3BpcC13aGVlbC1tZXRhZGF0YS8KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5Ly5wcmUtY29tbWl0LWNvbmZpZy55YW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLnByZS1jb21taXQtY29u
ZmlnLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMwOGQ5ODM3Nzc1OThmODU3Y2M5ZTRhNGQxNWJiNDkyMjhj
YjMzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5Ly5wcmUtY29tbWl0LWNvbmZpZy55
YW1sCkBAIC0wLDAgKzEsMzIgQEAKK3JlcG9zOgorLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNv
bS9hbWJ2L2JsYWNrCisgICAgcmV2OiAxOS4zYjAKKyAgICBob29rczoKKyAgICAtICAgaWQ6IGJs
YWNrCisgICAgICAgIGFyZ3M6IFstLXNhZmUsIC0tcXVpZXRdCisgICAgICAgIGxhbmd1YWdlX3Zl
cnNpb246IHB5dGhvbjMuNgorLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9hc290dGlsZS9i
bGFja2VuLWRvY3MKKyAgICByZXY6IHYwLjUuMAorICAgIGhvb2tzOgorICAgIC0gICBpZDogYmxh
Y2tlbi1kb2NzCisgICAgICAgIGFkZGl0aW9uYWxfZGVwZW5kZW5jaWVzOiBbYmxhY2s9PTE5LjNi
MF0KKyAgICAgICAgbGFuZ3VhZ2VfdmVyc2lvbjogcHl0aG9uMy42CistICAgcmVwbzogaHR0cHM6
Ly9naXRodWIuY29tL3ByZS1jb21taXQvcHJlLWNvbW1pdC1ob29rcworICAgIHJldjogdjIuMS4w
CisgICAgaG9va3M6CisgICAgLSAgIGlkOiB0cmFpbGluZy13aGl0ZXNwYWNlCisgICAgLSAgIGlk
OiBlbmQtb2YtZmlsZS1maXhlcgorICAgIC0gICBpZDogZmxha2U4CistICAgcmVwbzogbG9jYWwK
KyAgICBob29rczoKKyAgICAtICAgaWQ6IHJzdAorICAgICAgICBuYW1lOiByc3QKKyAgICAgICAg
ZW50cnk6IHJzdC1saW50IC0tZW5jb2RpbmcgdXRmLTgKKyAgICAgICAgZmlsZXM6IF4oQ0hBTkdF
TE9HLnJzdHxIT1dUT1JFTEVBU0UucnN0fFJFQURNRS5yc3R8Y2hhbmdlbG9nLy4qKSQKKyAgICAg
ICAgbGFuZ3VhZ2U6IHB5dGhvbgorICAgICAgICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczogW3B5
Z21lbnRzLCByZXN0cnVjdHVyZWR0ZXh0X2xpbnRdCisgICAgICAgIGxhbmd1YWdlX3ZlcnNpb246
IHB5dGhvbjMuNgorLSAgIHJlcG86IGh0dHBzOi8vZ2l0aHViLmNvbS9wcmUtY29tbWl0L3B5Z3Jl
cC1ob29rcworICAgIHJldjogdjEuMy4wCisgICAgaG9va3M6CisgICAgLSAgIGlkOiByc3QtYmFj
a3RpY2tzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8udHJhdmlzLnltbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
Ly50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiYTU5NjZlNWQ1YTk2MTg0NTkwZDEyNjM0Y2NhNTA1
MjNlYzhmY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8udHJhdmlzLnltbApAQCAt
MCwwICsxLDgxIEBACitkaXN0OiB4ZW5pYWwKK2xhbmd1YWdlOiBweXRob24KKworc3RhZ2VzOgor
LSBuYW1lOiB0ZXN0CisgIGlmOiB0YWcgSVMgTk9UIHByZXNlbnQKKy0gbmFtZTogZGVwbG95Cisg
IGlmOiByZXBvID0gcHl0ZXN0LWRldi9wbHVnZ3kgQU5EIHRhZyBJUyBwcmVzZW50CisKK2pvYnM6
CisgIGluY2x1ZGU6CisgICAgLSBweXRob246ICczLjYnCisgICAgICBlbnY6IFRPWEVOVj1saW50
aW5nCisgICAgICBjYWNoZToKKyAgICAgICAgZGlyZWN0b3JpZXM6CisgICAgICAgICAgLSAkSE9N
RS8uY2FjaGUvcHJlLWNvbW1pdAorICAgIC0gcHl0aG9uOiAnMy42JworICAgICAgZW52OiBUT1hF
TlY9ZG9jcworICAgIC0gcHl0aG9uOiAnMi43JworICAgICAgZW52OiBUT1hFTlY9cHkyNy1jb3Zl
cmFnZQorICAgIC0gcHl0aG9uOiAnMy40JworICAgICAgZW52OiBUT1hFTlY9cHkzNC1jb3ZlcmFn
ZQorICAgIC0gcHl0aG9uOiAnMy41JworICAgICAgZW52OiBUT1hFTlY9cHkzNS1jb3ZlcmFnZQor
ICAgIC0gcHl0aG9uOiAnMy42JworICAgICAgZW52OiBUT1hFTlY9cHkzNi1jb3ZlcmFnZQorICAg
IC0gcHl0aG9uOiAncHlweTIuNy02LjAnCisgICAgICBlbnY6IFRPWEVOVj1weXB5LWNvdmVyYWdl
CisgICAgLSBweXRob246ICdweXB5My41LTYuMCcKKyAgICAgIGVudjogVE9YRU5WPXB5cHkzLWNv
dmVyYWdlCisgICAgLSBweXRob246ICczLjcnCisgICAgICBlbnY6IFRPWEVOVj1weTM3LWNvdmVy
YWdlCisgICAgLSBweXRob246ICczLjgtZGV2JworICAgICAgZW52OiBUT1hFTlY9cHkzOC1jb3Zl
cmFnZQorICAgIC0gcHl0aG9uOiAnMy42JworICAgICAgZW52OiBUT1hFTlY9cHkzNi1weXRlc3Rt
YXN0ZXItY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAgIGVudjogVE9YRU5WPXB5
MzYtcHl0ZXN0ZmVhdHVyZXMtY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAgIGVu
djogVE9YRU5WPWJlbmNobWFyaworICAgIC0gcHl0aG9uOiAnMy43JworICAgICAgZW52OiBUT1hF
TlY9cHkzNy1weXRlc3RtYXN0ZXItY292ZXJhZ2UKKyAgICAtIHB5dGhvbjogJzMuNycKKyAgICAg
IGVudjogVE9YRU5WPXB5MzctcHl0ZXN0ZmVhdHVyZXMtY292ZXJhZ2UKKworICAgIC0gc3RhZ2U6
IGRlcGxveQorICAgICAgcHl0aG9uOiAnMy42JworICAgICAgZW52OgorICAgICAgaW5zdGFsbDog
cGlwIGluc3RhbGwgLVUgc2V0dXB0b29scyBzZXR1cHRvb2xzX3NjbQorICAgICAgc2NyaXB0OiBz
a2lwCisgICAgICBkZXBsb3k6CisgICAgICAgIHByb3ZpZGVyOiBweXBpCisgICAgICAgIHVzZXI6
IG5pY29kZGVtdXMKKyAgICAgICAgZGlzdHJpYnV0aW9uczogc2Rpc3QgYmRpc3Rfd2hlZWwKKyAg
ICAgICAgc2tpcF91cGxvYWRfZG9jczogdHJ1ZQorICAgICAgICBwYXNzd29yZDoKKyAgICAgICAg
ICBzZWN1cmU6IFBEdlFDS2ZYckYxVi90ZHdFT2ZlREVqRHM2dko5Z0tXbzR5ck1VbUJ4MUpMNXBs
SFphcWZITGZ0bEdNb0hla2FRVEhjZnlZWWJ4aWduRnc1SUdzbjk3L25GS0tXRFBOQmZaQSszUkpK
bWVKZnoyTlF1bllrU25vcXRCdGZFdFdIekZQZGtDbTB3L0NOOUM4SXBSamh2TG5GVFVRemlsNmlN
eTZ3WkcyNzZnVT0KKyAgICAgICAgb246CisgICAgICAgICAgdGFnczogdHJ1ZQorICAgICAgICAg
IHJlcG86IHB5dGVzdC1kZXYvcGx1Z2d5CisKK2luc3RhbGw6CisgIC0gcGlwIGluc3RhbGwgLVUg
cGlwCisgIC0gcGlwIGluc3RhbGwgLVUgLS1mb3JjZS1yZWluc3RhbGwgc2V0dXB0b29scyB0b3gK
Kworc2NyaXB0OgorICAtIHRveAorCithZnRlcl9zY3JpcHQ6CisgIC0gfAorICAgIGlmIFtbICIk
e1RPWEVOViUtY292ZXJhZ2V9IiAhPSAiJFRPWEVOViIgXV07IHRoZW4KKyAgICAgIGJhc2ggPChj
dXJsIC1zIGh0dHBzOi8vY29kZWNvdi5pby9iYXNoKSAtWiAtWCBnY292IC1YIGNvdmVyYWdlcHkg
LVggc2VhcmNoIC1YIHhjb2RlIC1YIGdjb3ZvdXQgLVggZml4IC1mIGNvdmVyYWdlLnhtbCAtbiAk
VE9YRU5WCisgICAgZmkKKworbm90aWZpY2F0aW9uczoKKyAgaXJjOgorICAgIGNoYW5uZWxzOgor
ICAgICAgLSAiY2hhdC5mcmVlbm9kZS5uZXQjcHl0ZXN0IgorICAgIG9uX3N1Y2Nlc3M6IGNoYW5n
ZQorICAgIG9uX2ZhaWx1cmU6IGNoYW5nZQorICAgIHNraXBfam9pbjogdHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvY2hhbmdlbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvY2hh
bmdlbG9nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmM2
ZDUyYmUwNDE1NTRmNmM3N2RiYzI4ZjYwZDVmNjQ2NDkwNWEwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2NoYW5nZWxvZy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2NoYW5nZWxvZy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvY2hhbmdlbG9nL190ZW1wbGF0
ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRpYy9pbWcvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1nL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjVjNjc5NWJhMWFmZTI4ZTUxNmVmYWYxMWQ3MDhj
YjhhMTA5OWQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRpYy9pbWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL19zdGF0aWMvaW1n
L3BsdWcucG5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3NhbXBs
ZS1zcGFtL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1w
bGUtc3BhbS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU0
M2UzM2U1YmFkMTUzNTViZDBlZTE0NmE0NThlNjM1N2U0MDM5YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2Vn
Z3NhbXBsZS1zcGFtL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUtc3BhbS9lZ2dz
YW1wbGVfc3BhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxlLXNwYW0v
c2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdnc2FtcGxl
L2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvZWdn
c2FtcGxlL2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2ViYWM0YWRlYWNlZTQ3ZDk3NWYyNWFmZGI0MzE1ZjBmYzlmMGNlZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4
YW1wbGVzL2VnZ3NhbXBsZS9lZ2dzYW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2VnZ3Nh
bXBsZS9lZ2dzYW1wbGUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2Vn
Z3NhbXBsZS9lZ2dzYW1wbGUvaG9va3NwZWNzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxl
cy9lZ2dzYW1wbGUvZWdnc2FtcGxlL2hvc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVz
L2VnZ3NhbXBsZS9lZ2dzYW1wbGUvbGliLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2Nz
L2V4YW1wbGVzL2VnZ3NhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5MGMyNTU0MDBkM2QzZDA3ZDViZjIxODI5ZTk2OGE1OWJiZWUwODE1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhh
bXBsZXMvZWdnc2FtcGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9lZ2dzYW1wbGUvc2V0dXAu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMzdhMTgwYjZiZGEyYmQwZDFiYWI1YmNiMDA4YjkwYjc2ZjgxMGJh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3RveS1leGFtcGxlLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZl
YjlhMDNmYTM0MDcxYTBlYWZkNTE4YTQ4OWU0OWZhMzg0OWU0OS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
ZG9jcy9hcGlfcmVmZXJlbmNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvY2hhbmdlbG9nLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcGx1Z2d5L2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvaW5kZXgucnN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9w
bHVnZ3kvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNTE3NWQ5
NTY2MTRiMDJmM2VlNWFhOGJjOTMzMTgzZWI3NTEyMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L19faW5pdF9fLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNjg0ICswLDAgQEAKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgd2Fy
bmluZ3MKLWZyb20gLmNhbGxlcnMgaW1wb3J0IF9tdWx0aWNhbGwsIEhvb2tDYWxsRXJyb3IsIF9S
ZXN1bHQsIF9sZWdhY3ltdWx0aWNhbGwKLQotX192ZXJzaW9uX18gPSAnMC41LjMuZGV2JwotCi1f
X2FsbF9fID0gWyJQbHVnaW5NYW5hZ2VyIiwgIlBsdWdpblZhbGlkYXRpb25FcnJvciIsICJIb29r
Q2FsbEVycm9yIiwKLSAgICAgICAgICAgIkhvb2tzcGVjTWFya2VyIiwgIkhvb2tpbXBsTWFya2Vy
Il0KLQotCi1jbGFzcyBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiIg
cGx1Z2luIGZhaWxlZCB2YWxpZGF0aW9uLiAiIiIKLQotCi1jbGFzcyBIb29rc3BlY01hcmtlcihv
YmplY3QpOgotICAgICIiIiBEZWNvcmF0b3IgaGVscGVyIGNsYXNzIGZvciBtYXJraW5nIGZ1bmN0
aW9ucyBhcyBob29rIHNwZWNpZmljYXRpb25zLgotCi0gICAgWW91IGNhbiBpbnN0YW50aWF0ZSBp
dCB3aXRoIGEgcHJvamVjdF9uYW1lIHRvIGdldCBhIGRlY29yYXRvci4KLSAgICBDYWxsaW5nIFBs
dWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcyBsYXRlciB3aWxsIGRpc2NvdmVyIGFsbCBtYXJrZWQg
ZnVuY3Rpb25zCi0gICAgaWYgdGhlIFBsdWdpbk1hbmFnZXIgdXNlcyB0aGUgc2FtZSBwcm9qZWN0
X25hbWUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvamVjdF9uYW1lKToK
LSAgICAgICAgc2VsZi5wcm9qZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKLQotICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCBmdW5jdGlvbj1Ob25lLCBmaXJzdHJlc3VsdD1GYWxzZSwgaGlzdG9yaWM9RmFs
c2UpOgotICAgICAgICAiIiIgaWYgcGFzc2VkIGEgZnVuY3Rpb24sIGRpcmVjdGx5IHNldHMgYXR0
cmlidXRlcyBvbiB0aGUgZnVuY3Rpb24KLSAgICAgICAgd2hpY2ggd2lsbCBtYWtlIGl0IGRpc2Nv
dmVyYWJsZSB0byBhZGRfaG9va3NwZWNzKCkuICBJZiBwYXNzZWQgbm8KLSAgICAgICAgZnVuY3Rp
b24sIHJldHVybnMgYSBkZWNvcmF0b3Igd2hpY2ggY2FuIGJlIGFwcGxpZWQgdG8gYSBmdW5jdGlv
bgotICAgICAgICBsYXRlciB1c2luZyB0aGUgYXR0cmlidXRlcyBzdXBwbGllZC4KLQotICAgICAg
ICBJZiBmaXJzdHJlc3VsdCBpcyBUcnVlIHRoZSAxOk4gaG9vayBjYWxsIChOIGJlaW5nIHRoZSBu
dW1iZXIgb2YgcmVnaXN0ZXJlZAotICAgICAgICBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9u
cykgd2lsbCBzdG9wIGF0IEk8PU4gd2hlbiB0aGUgSSd0aCBmdW5jdGlvbgotICAgICAgICByZXR1
cm5zIGEgbm9uLU5vbmUgcmVzdWx0LgotCi0gICAgICAgIElmIGhpc3RvcmljIGlzIFRydWUgY2Fs
bHMgdG8gYSBob29rIHdpbGwgYmUgbWVtb3JpemVkIGFuZCByZXBsYXllZAotICAgICAgICBvbiBs
YXRlciByZWdpc3RlcmVkIHBsdWdpbnMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBzZXRh
dHRyX2hvb2tzcGVjX29wdHMoZnVuYyk6Ci0gICAgICAgICAgICBpZiBoaXN0b3JpYyBhbmQgZmly
c3RyZXN1bHQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IGhhdmUg
YSBoaXN0b3JpYyBmaXJzdHJlc3VsdCBob29rIikKLSAgICAgICAgICAgIHNldGF0dHIoZnVuYywg
c2VsZi5wcm9qZWN0X25hbWUgKyAiX3NwZWMiLAotICAgICAgICAgICAgICAgICAgICBkaWN0KGZp
cnN0cmVzdWx0PWZpcnN0cmVzdWx0LCBoaXN0b3JpYz1oaXN0b3JpYykpCi0gICAgICAgICAgICBy
ZXR1cm4gZnVuYwotCi0gICAgICAgIGlmIGZ1bmN0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgcmV0dXJuIHNldGF0dHJfaG9va3NwZWNfb3B0cyhmdW5jdGlvbikKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHJldHVybiBzZXRhdHRyX2hvb2tzcGVjX29wdHMKLQotCi1jbGFzcyBIb29r
aW1wbE1hcmtlcihvYmplY3QpOgotICAgICIiIiBEZWNvcmF0b3IgaGVscGVyIGNsYXNzIGZvciBt
YXJraW5nIGZ1bmN0aW9ucyBhcyBob29rIGltcGxlbWVudGF0aW9ucy4KLQotICAgIFlvdSBjYW4g
aW5zdGFudGlhdGUgd2l0aCBhIHByb2plY3RfbmFtZSB0byBnZXQgYSBkZWNvcmF0b3IuCi0gICAg
Q2FsbGluZyBQbHVnaW5NYW5hZ2VyLnJlZ2lzdGVyIGxhdGVyIHdpbGwgZGlzY292ZXIgYWxsIG1h
cmtlZCBmdW5jdGlvbnMKLSAgICBpZiB0aGUgUGx1Z2luTWFuYWdlciB1c2VzIHRoZSBzYW1lIHBy
b2plY3RfbmFtZS4KLSAgICAiIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvamVjdF9uYW1l
KToKLSAgICAgICAgc2VsZi5wcm9qZWN0X25hbWUgPSBwcm9qZWN0X25hbWUKLQotICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBmdW5jdGlvbj1Ob25lLCBob29rd3JhcHBlcj1GYWxzZSwgb3B0aW9uYWxo
b29rPUZhbHNlLAotICAgICAgICAgICAgICAgICB0cnlmaXJzdD1GYWxzZSwgdHJ5bGFzdD1GYWxz
ZSk6Ci0KLSAgICAgICAgIiIiIGlmIHBhc3NlZCBhIGZ1bmN0aW9uLCBkaXJlY3RseSBzZXRzIGF0
dHJpYnV0ZXMgb24gdGhlIGZ1bmN0aW9uCi0gICAgICAgIHdoaWNoIHdpbGwgbWFrZSBpdCBkaXNj
b3ZlcmFibGUgdG8gcmVnaXN0ZXIoKS4gIElmIHBhc3NlZCBubyBmdW5jdGlvbiwKLSAgICAgICAg
cmV0dXJucyBhIGRlY29yYXRvciB3aGljaCBjYW4gYmUgYXBwbGllZCB0byBhIGZ1bmN0aW9uIGxh
dGVyIHVzaW5nCi0gICAgICAgIHRoZSBhdHRyaWJ1dGVzIHN1cHBsaWVkLgotCi0gICAgICAgIElm
IG9wdGlvbmFsaG9vayBpcyBUcnVlIGEgbWlzc2luZyBtYXRjaGluZyBob29rIHNwZWNpZmljYXRp
b24gd2lsbCBub3QgcmVzdWx0Ci0gICAgICAgIGluIGFuIGVycm9yIChieSBkZWZhdWx0IGl0IGlz
IGFuIGVycm9yIGlmIG5vIG1hdGNoaW5nIHNwZWMgaXMgZm91bmQpLgotCi0gICAgICAgIElmIHRy
eWZpcnN0IGlzIFRydWUgdGhpcyBob29rIGltcGxlbWVudGF0aW9uIHdpbGwgcnVuIGFzIGVhcmx5
IGFzIHBvc3NpYmxlCi0gICAgICAgIGluIHRoZSBjaGFpbiBvZiBOIGhvb2sgaW1wbGVtZW50YXRp
b25zIGZvciBhIHNwZWNmaWNhdGlvbi4KLQotICAgICAgICBJZiB0cnlsYXN0IGlzIFRydWUgdGhp
cyBob29rIGltcGxlbWVudGF0aW9uIHdpbGwgcnVuIGFzIGxhdGUgYXMgcG9zc2libGUKLSAgICAg
ICAgaW4gdGhlIGNoYWluIG9mIE4gaG9vayBpbXBsZW1lbnRhdGlvbnMuCi0KLSAgICAgICAgSWYg
aG9va3dyYXBwZXIgaXMgVHJ1ZSB0aGUgaG9vayBpbXBsZW1lbnRhdGlvbnMgbmVlZHMgdG8gZXhl
Y3V0ZSBleGFjdGx5Ci0gICAgICAgIG9uZSAieWllbGQiLiAgVGhlIGNvZGUgYmVmb3JlIHRoZSB5
aWVsZCBpcyBydW4gZWFybHkgYmVmb3JlIGFueSBub24taG9va3dyYXBwZXIKLSAgICAgICAgZnVu
Y3Rpb24gaXMgcnVuLiAgVGhlIGNvZGUgYWZ0ZXIgdGhlIHlpZWxkIGlzIHJ1biBhZnRlciBhbGwg
bm9uLWhvb2t3cmFwcGVyCi0gICAgICAgIGZ1bmN0aW9uIGhhdmUgcnVuLiAgVGhlIHlpZWxkIHJl
Y2VpdmVzIGEgYGBfUmVzdWx0YGAgb2JqZWN0IHJlcHJlc2VudGluZwotICAgICAgICB0aGUgZXhj
ZXB0aW9uIG9yIHJlc3VsdCBvdXRjb21lIG9mIHRoZSBpbm5lciBjYWxscyAoaW5jbHVkaW5nIG90
aGVyIGhvb2t3cmFwcGVyCi0gICAgICAgIGNhbGxzKS4KLQotICAgICAgICAiIiIKLSAgICAgICAg
ZGVmIHNldGF0dHJfaG9va2ltcGxfb3B0cyhmdW5jKToKLSAgICAgICAgICAgIHNldGF0dHIoZnVu
Yywgc2VsZi5wcm9qZWN0X25hbWUgKyAiX2ltcGwiLAotICAgICAgICAgICAgICAgICAgICBkaWN0
KGhvb2t3cmFwcGVyPWhvb2t3cmFwcGVyLCBvcHRpb25hbGhvb2s9b3B0aW9uYWxob29rLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHRyeWZpcnN0PXRyeWZpcnN0LCB0cnlsYXN0PXRyeWxhc3Qp
KQotICAgICAgICAgICAgcmV0dXJuIGZ1bmMKLQotICAgICAgICBpZiBmdW5jdGlvbiBpcyBOb25l
OgotICAgICAgICAgICAgcmV0dXJuIHNldGF0dHJfaG9va2ltcGxfb3B0cwotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmV0dXJuIHNldGF0dHJfaG9va2ltcGxfb3B0cyhmdW5jdGlvbikKLQot
Ci1kZWYgbm9ybWFsaXplX2hvb2tpbXBsX29wdHMob3B0cyk6Ci0gICAgb3B0cy5zZXRkZWZhdWx0
KCJ0cnlmaXJzdCIsIEZhbHNlKQotICAgIG9wdHMuc2V0ZGVmYXVsdCgidHJ5bGFzdCIsIEZhbHNl
KQotICAgIG9wdHMuc2V0ZGVmYXVsdCgiaG9va3dyYXBwZXIiLCBGYWxzZSkKLSAgICBvcHRzLnNl
dGRlZmF1bHQoIm9wdGlvbmFsaG9vayIsIEZhbHNlKQotCi0KLWNsYXNzIF9UYWdUcmFjZXIob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3RhZzJwcm9jID0g
e30KLSAgICAgICAgc2VsZi53cml0ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuaW5kZW50ID0gMAot
Ci0gICAgZGVmIGdldChzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIF9UYWdUcmFjZXJTdWIo
c2VsZiwgKG5hbWUsKSkKLQotICAgIGRlZiBmb3JtYXRfbWVzc2FnZShzZWxmLCB0YWdzLCBhcmdz
KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShhcmdzWy0xXSwgZGljdCk6Ci0gICAgICAgICAgICBl
eHRyYSA9IGFyZ3NbLTFdCi0gICAgICAgICAgICBhcmdzID0gYXJnc1s6LTFdCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBleHRyYSA9IHt9Ci0KLSAgICAgICAgY29udGVudCA9ICIgIi5qb2lu
KG1hcChzdHIsIGFyZ3MpKQotICAgICAgICBpbmRlbnQgPSAiICAiICogc2VsZi5pbmRlbnQKLQot
ICAgICAgICBsaW5lcyA9IFsKLSAgICAgICAgICAgICIlcyVzIFslc11cbiIgJSAoaW5kZW50LCBj
b250ZW50LCAiOiIuam9pbih0YWdzKSkKLSAgICAgICAgXQotCi0gICAgICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBleHRyYS5pdGVtcygpOgotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlcyAgICAl
czogJXNcbiIgJSAoaW5kZW50LCBuYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiBsaW5lcwot
Ci0gICAgZGVmIHByb2Nlc3NtZXNzYWdlKHNlbGYsIHRhZ3MsIGFyZ3MpOgotICAgICAgICBpZiBz
ZWxmLndyaXRlciBpcyBub3QgTm9uZSBhbmQgYXJnczoKLSAgICAgICAgICAgIGxpbmVzID0gc2Vs
Zi5mb3JtYXRfbWVzc2FnZSh0YWdzLCBhcmdzKQotICAgICAgICAgICAgc2VsZi53cml0ZXIoJycu
am9pbihsaW5lcykpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3RhZzJwcm9jW3Rh
Z3NdKHRhZ3MsIGFyZ3MpCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHBh
c3MKLQotICAgIGRlZiBzZXR3cml0ZXIoc2VsZiwgd3JpdGVyKToKLSAgICAgICAgc2VsZi53cml0
ZXIgPSB3cml0ZXIKLQotICAgIGRlZiBzZXRwcm9jZXNzb3Ioc2VsZiwgdGFncywgcHJvY2Vzc29y
KToKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh0YWdzLCBzdHIpOgotICAgICAgICAgICAgdGFncyA9
IHR1cGxlKHRhZ3Muc3BsaXQoIjoiKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKHRhZ3MsIHR1cGxlKQotICAgICAgICBzZWxmLl90YWcycHJvY1t0YWdzXSA9
IHByb2Nlc3NvcgotCi0KLWNsYXNzIF9UYWdUcmFjZXJTdWIob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgcm9vdCwgdGFncyk6Ci0gICAgICAgIHNlbGYucm9vdCA9IHJvb3QKLSAgICAg
ICAgc2VsZi50YWdzID0gdGFncwotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzKToKLSAg
ICAgICAgc2VsZi5yb290LnByb2Nlc3NtZXNzYWdlKHNlbGYudGFncywgYXJncykKLQotICAgIGRl
ZiBzZXRteXByb2Nlc3NvcihzZWxmLCBwcm9jZXNzb3IpOgotICAgICAgICBzZWxmLnJvb3Quc2V0
cHJvY2Vzc29yKHNlbGYudGFncywgcHJvY2Vzc29yKQotCi0gICAgZGVmIGdldChzZWxmLCBuYW1l
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYucm9vdCwgc2VsZi50YWdzICsg
KG5hbWUsKSkKLQotCi1jbGFzcyBfVHJhY2VkSG9va0V4ZWN1dGlvbihvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyLCBiZWZvcmUsIGFmdGVyKToKLSAgICAgICAg
c2VsZi5wbHVnaW5tYW5hZ2VyID0gcGx1Z2lubWFuYWdlcgotICAgICAgICBzZWxmLmJlZm9yZSA9
IGJlZm9yZQotICAgICAgICBzZWxmLmFmdGVyID0gYWZ0ZXIKLSAgICAgICAgc2VsZi5vbGRjYWxs
ID0gcGx1Z2lubWFuYWdlci5faW5uZXJfaG9va2V4ZWMKLSAgICAgICAgYXNzZXJ0IG5vdCBpc2lu
c3RhbmNlKHNlbGYub2xkY2FsbCwgX1RyYWNlZEhvb2tFeGVjdXRpb24pCi0gICAgICAgIHNlbGYu
cGx1Z2lubWFuYWdlci5faW5uZXJfaG9va2V4ZWMgPSBzZWxmCi0KLSAgICBkZWYgX19jYWxsX18o
c2VsZiwgaG9vaywgaG9va19pbXBscywga3dhcmdzKToKLSAgICAgICAgc2VsZi5iZWZvcmUoaG9v
ay5uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpCi0gICAgICAgIG91dGNvbWUgPSBfUmVzdWx0LmZy
b21fY2FsbChsYW1iZGE6IHNlbGYub2xkY2FsbChob29rLCBob29rX2ltcGxzLCBrd2FyZ3MpKQot
ICAgICAgICBzZWxmLmFmdGVyKG91dGNvbWUsIGhvb2submFtZSwgaG9va19pbXBscywga3dhcmdz
KQotICAgICAgICByZXR1cm4gb3V0Y29tZS5nZXRfcmVzdWx0KCkKLQotICAgIGRlZiB1bmRvKHNl
bGYpOgotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIuX2lubmVyX2hvb2tleGVjID0gc2VsZi5v
bGRjYWxsCi0KLQotY2xhc3MgUGx1Z2luTWFuYWdlcihvYmplY3QpOgotICAgICIiIiBDb3JlIFBs
dWdpbm1hbmFnZXIgY2xhc3Mgd2hpY2ggbWFuYWdlcyByZWdpc3RyYXRpb24KLSAgICBvZiBwbHVn
aW4gb2JqZWN0cyBhbmQgMTpOIGhvb2sgY2FsbGluZy4KLQotICAgIFlvdSBjYW4gcmVnaXN0ZXIg
bmV3IGhvb2tzIGJ5IGNhbGxpbmcgYGBhZGRfaG9va3NwZWMobW9kdWxlX29yX2NsYXNzKWBgLgot
ICAgIFlvdSBjYW4gcmVnaXN0ZXIgcGx1Z2luIG9iamVjdHMgKHdoaWNoIGNvbnRhaW4gaG9va3Mp
IGJ5IGNhbGxpbmcKLSAgICBgYHJlZ2lzdGVyKHBsdWdpbilgYC4gIFRoZSBQbHVnaW5tYW5hZ2Vy
IGlzIGluaXRpYWxpemVkIHdpdGggYQotICAgIHByZWZpeCB0aGF0IGlzIHNlYXJjaGVkIGZvciBp
biB0aGUgbmFtZXMgb2YgdGhlIGRpY3Qgb2YgcmVnaXN0ZXJlZAotICAgIHBsdWdpbiBvYmplY3Rz
LiAgQW4gb3B0aW9uYWwgZXhjbHVkZWZ1bmMgYWxsb3dzIHRvIGJsYWNrbGlzdCBuYW1lcyB3aGlj
aAotICAgIGFyZSBub3QgY29uc2lkZXJlZCBhcyBob29rcyBkZXNwaXRlIGEgbWF0Y2hpbmcgcHJl
Zml4LgotCi0gICAgRm9yIGRlYnVnZ2luZyBwdXJwb3NlcyB5b3UgY2FuIGNhbGwgYGBlbmFibGVf
dHJhY2luZygpYGAKLSAgICB3aGljaCB3aWxsIHN1YnNlcXVlbnRseSBzZW5kIGRlYnVnIGluZm9y
bWF0aW9uIHRvIHRoZSB0cmFjZSBoZWxwZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcHJvamVjdF9uYW1lLCBpbXBscHJlZml4PU5vbmUpOgotICAgICAgICAiIiIgaWYgaW1w
bHByZWZpeCBpcyBnaXZlbiBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbnMKLSAgICAgICAgd2lsbCBi
ZSByZWNvZ25pemVkIGlmIHRoZWlyIG5hbWUgbWF0Y2hlcyB0aGUgaW1wbHByZWZpeC4gIiIiCi0g
ICAgICAgIHNlbGYucHJvamVjdF9uYW1lID0gcHJvamVjdF9uYW1lCi0gICAgICAgIHNlbGYuX25h
bWUycGx1Z2luID0ge30KLSAgICAgICAgc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzID0ge30KLSAg
ICAgICAgc2VsZi5fcGx1Z2luX2Rpc3RpbmZvID0gW10KLSAgICAgICAgc2VsZi50cmFjZSA9IF9U
YWdUcmFjZXIoKS5nZXQoInBsdWdpbm1hbmFnZSIpCi0gICAgICAgIHNlbGYuaG9vayA9IF9Ib29r
UmVsYXkoc2VsZi50cmFjZS5yb290LmdldCgiaG9vayIpKQotICAgICAgICBzZWxmLl9pbXBscHJl
Zml4ID0gaW1wbHByZWZpeAotICAgICAgICBzZWxmLl9pbm5lcl9ob29rZXhlYyA9IGxhbWJkYSBo
b29rLCBtZXRob2RzLCBrd2FyZ3M6IFwKLSAgICAgICAgICAgIGhvb2subXVsdGljYWxsKAotICAg
ICAgICAgICAgICAgIG1ldGhvZHMsIGt3YXJncywKLSAgICAgICAgICAgICAgICBmaXJzdHJlc3Vs
dD1ob29rLnNwZWNfb3B0cy5nZXQoJ2ZpcnN0cmVzdWx0JyksCi0gICAgICAgICAgICApCi0KLSAg
ICBkZWYgX2hvb2tleGVjKHNlbGYsIGhvb2ssIG1ldGhvZHMsIGt3YXJncyk6Ci0gICAgICAgICMg
Y2FsbGVkIGZyb20gYWxsIGhvb2tjYWxsZXIgaW5zdGFuY2VzLgotICAgICAgICAjIGVuYWJsZV90
cmFjaW5nIHdpbGwgc2V0IGl0cyBvd24gd3JhcHBpbmcgZnVuY3Rpb24gYXQgc2VsZi5faW5uZXJf
aG9va2V4ZWMKLSAgICAgICAgcmV0dXJuIHNlbGYuX2lubmVyX2hvb2tleGVjKGhvb2ssIG1ldGhv
ZHMsIGt3YXJncykKLQotICAgIGRlZiByZWdpc3RlcihzZWxmLCBwbHVnaW4sIG5hbWU9Tm9uZSk6
Ci0gICAgICAgICIiIiBSZWdpc3RlciBhIHBsdWdpbiBhbmQgcmV0dXJuIGl0cyBjYW5vbmljYWwg
bmFtZSBvciBOb25lIGlmIHRoZSBuYW1lCi0gICAgICAgIGlzIGJsb2NrZWQgZnJvbSByZWdpc3Rl
cmluZy4gIFJhaXNlIGEgVmFsdWVFcnJvciBpZiB0aGUgcGx1Z2luIGlzIGFscmVhZHkKLSAgICAg
ICAgcmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIHBsdWdpbl9uYW1lID0gbmFtZSBvciBzZWxmLmdl
dF9jYW5vbmljYWxfbmFtZShwbHVnaW4pCi0KLSAgICAgICAgaWYgcGx1Z2luX25hbWUgaW4gc2Vs
Zi5fbmFtZTJwbHVnaW4gb3IgcGx1Z2luIGluIHNlbGYuX3BsdWdpbjJob29rY2FsbGVyczoKLSAg
ICAgICAgICAgIGlmIHNlbGYuX25hbWUycGx1Z2luLmdldChwbHVnaW5fbmFtZSwgLTEpIGlzIE5v
bmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICAjIGJsb2NrZWQgcGx1Z2luLCByZXR1cm4gTm9u
ZSB0byBpbmRpY2F0ZSBubyByZWdpc3RyYXRpb24KLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIlBsdWdpbiBhbHJlYWR5IHJlZ2lzdGVyZWQ6ICVzPSVzXG4lcyIgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAocGx1Z2luX25hbWUsIHBsdWdpbiwgc2VsZi5fbmFtZTJwbHVnaW4p
KQotCi0gICAgICAgICMgWFhYIGlmIGFuIGVycm9yIGhhcHBlbnMgd2Ugc2hvdWxkIG1ha2Ugc3Vy
ZSBubyBzdGF0ZSBoYXMgYmVlbgotICAgICAgICAjIGNoYW5nZWQgYXQgcG9pbnQgb2YgcmV0dXJu
Ci0gICAgICAgIHNlbGYuX25hbWUycGx1Z2luW3BsdWdpbl9uYW1lXSA9IHBsdWdpbgotCi0gICAg
ICAgICMgcmVnaXN0ZXIgbWF0Y2hpbmcgaG9vayBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIHBsdWdp
bgotICAgICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnNbcGx1Z2luXSA9IGhvb2tjYWxsZXJz
ID0gW10KLSAgICAgICAgZm9yIG5hbWUgaW4gZGlyKHBsdWdpbik6Ci0gICAgICAgICAgICBob29r
aW1wbF9vcHRzID0gc2VsZi5wYXJzZV9ob29raW1wbF9vcHRzKHBsdWdpbiwgbmFtZSkKLSAgICAg
ICAgICAgIGlmIGhvb2tpbXBsX29wdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgbm9y
bWFsaXplX2hvb2tpbXBsX29wdHMoaG9va2ltcGxfb3B0cykKLSAgICAgICAgICAgICAgICBtZXRo
b2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKLSAgICAgICAgICAgICAgICBob29raW1wbCA9IEhv
b2tJbXBsKHBsdWdpbiwgcGx1Z2luX25hbWUsIG1ldGhvZCwgaG9va2ltcGxfb3B0cykKLSAgICAg
ICAgICAgICAgICBob29rID0gZ2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIE5vbmUpCi0gICAgICAg
ICAgICAgICAgaWYgaG9vayBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBob29rID0gX0hv
b2tDYWxsZXIobmFtZSwgc2VsZi5faG9va2V4ZWMpCi0gICAgICAgICAgICAgICAgICAgIHNldGF0
dHIoc2VsZi5ob29rLCBuYW1lLCBob29rKQotICAgICAgICAgICAgICAgIGVsaWYgaG9vay5oYXNf
c3BlYygpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl92ZXJpZnlfaG9vayhob29rLCBob29r
aW1wbCkKLSAgICAgICAgICAgICAgICAgICAgaG9vay5fbWF5YmVfYXBwbHlfaGlzdG9yeShob29r
aW1wbCkKLSAgICAgICAgICAgICAgICBob29rLl9hZGRfaG9va2ltcGwoaG9va2ltcGwpCi0gICAg
ICAgICAgICAgICAgaG9va2NhbGxlcnMuYXBwZW5kKGhvb2spCi0gICAgICAgIHJldHVybiBwbHVn
aW5fbmFtZQotCi0gICAgZGVmIHBhcnNlX2hvb2tpbXBsX29wdHMoc2VsZiwgcGx1Z2luLCBuYW1l
KToKLSAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihwbHVnaW4sIG5hbWUpCi0gICAgICAgIGlmIG5v
dCBpbnNwZWN0Lmlzcm91dGluZShtZXRob2QpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHJlcyA9IGdldGF0dHIobWV0aG9kLCBzZWxmLnByb2plY3RfbmFt
ZSArICJfaW1wbCIsIE5vbmUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAg
ICByZXMgPSB7fQotICAgICAgICBpZiByZXMgaXMgbm90IE5vbmUgYW5kIG5vdCBpc2luc3RhbmNl
KHJlcywgZGljdCk6Ci0gICAgICAgICAgICAjIGZhbHNlIHBvc2l0aXZlCi0gICAgICAgICAgICBy
ZXMgPSBOb25lCi0gICAgICAgIGVsaWYgcmVzIGlzIE5vbmUgYW5kIHNlbGYuX2ltcGxwcmVmaXgg
YW5kIG5hbWUuc3RhcnRzd2l0aChzZWxmLl9pbXBscHJlZml4KToKLSAgICAgICAgICAgIHJlcyA9
IHt9Ci0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiB1bnJlZ2lzdGVyKHNlbGYsIHBsdWdp
bj1Ob25lLCBuYW1lPU5vbmUpOgotICAgICAgICAiIiIgdW5yZWdpc3RlciBhIHBsdWdpbiBvYmpl
Y3QgYW5kIGFsbCBpdHMgY29udGFpbmVkIGhvb2sgaW1wbGVtZW50YXRpb25zCi0gICAgICAgIGZy
b20gaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzLiAiIiIKLSAgICAgICAgaWYgbmFtZSBpcyBOb25l
OgotICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbiBpcyBub3QgTm9uZSwgIm9uZSBvZiBuYW1lIG9y
IHBsdWdpbiBuZWVkcyB0byBiZSBzcGVjaWZpZWQiCi0gICAgICAgICAgICBuYW1lID0gc2VsZi5n
ZXRfbmFtZShwbHVnaW4pCi0KLSAgICAgICAgaWYgcGx1Z2luIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBwbHVnaW4gPSBzZWxmLmdldF9wbHVnaW4obmFtZSkKLQotICAgICAgICAjIGlmIHNlbGYuX25h
bWUycGx1Z2luW25hbWVdID09IE5vbmUgcmVnaXN0cmF0aW9uIHdhcyBibG9ja2VkOiBpZ25vcmUK
LSAgICAgICAgaWYgc2VsZi5fbmFtZTJwbHVnaW4uZ2V0KG5hbWUpOgotICAgICAgICAgICAgZGVs
IHNlbGYuX25hbWUycGx1Z2luW25hbWVdCi0KLSAgICAgICAgZm9yIGhvb2tjYWxsZXIgaW4gc2Vs
Zi5fcGx1Z2luMmhvb2tjYWxsZXJzLnBvcChwbHVnaW4sIFtdKToKLSAgICAgICAgICAgIGhvb2tj
YWxsZXIuX3JlbW92ZV9wbHVnaW4ocGx1Z2luKQotCi0gICAgICAgIHJldHVybiBwbHVnaW4KLQot
ICAgIGRlZiBzZXRfYmxvY2tlZChzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiIGJsb2NrIHJlZ2lz
dHJhdGlvbnMgb2YgdGhlIGdpdmVuIG5hbWUsIHVucmVnaXN0ZXIgaWYgYWxyZWFkeSByZWdpc3Rl
cmVkLiAiIiIKLSAgICAgICAgc2VsZi51bnJlZ2lzdGVyKG5hbWU9bmFtZSkKLSAgICAgICAgc2Vs
Zi5fbmFtZTJwbHVnaW5bbmFtZV0gPSBOb25lCi0KLSAgICBkZWYgaXNfYmxvY2tlZChzZWxmLCBu
YW1lKToKLSAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHRoZSBuYW1lIGJsb2dzIHJlZ2lzdGVy
aW5nIHBsdWdpbnMgb2YgdGhhdCBuYW1lLiAiIiIKLSAgICAgICAgcmV0dXJuIG5hbWUgaW4gc2Vs
Zi5fbmFtZTJwbHVnaW4gYW5kIHNlbGYuX25hbWUycGx1Z2luW25hbWVdIGlzIE5vbmUKLQotICAg
IGRlZiBhZGRfaG9va3NwZWNzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcyk6Ci0gICAgICAgICIiIiBh
ZGQgbmV3IGhvb2sgc3BlY2lmaWNhdGlvbnMgZGVmaW5lZCBpbiB0aGUgZ2l2ZW4gbW9kdWxlX29y
X2NsYXNzLgotICAgICAgICBGdW5jdGlvbnMgYXJlIHJlY29nbml6ZWQgaWYgdGhleSBoYXZlIGJl
ZW4gZGVjb3JhdGVkIGFjY29yZGluZ2x5LiAiIiIKLSAgICAgICAgbmFtZXMgPSBbXQotICAgICAg
ICBmb3IgbmFtZSBpbiBkaXIobW9kdWxlX29yX2NsYXNzKToKLSAgICAgICAgICAgIHNwZWNfb3B0
cyA9IHNlbGYucGFyc2VfaG9va3NwZWNfb3B0cyhtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCi0gICAg
ICAgICAgICBpZiBzcGVjX29wdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaGMgPSBn
ZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiBoYyBpcyBO
b25lOgotICAgICAgICAgICAgICAgICAgICBoYyA9IF9Ib29rQ2FsbGVyKG5hbWUsIHNlbGYuX2hv
b2tleGVjLCBtb2R1bGVfb3JfY2xhc3MsIHNwZWNfb3B0cykKLSAgICAgICAgICAgICAgICAgICAg
c2V0YXR0cihzZWxmLmhvb2ssIG5hbWUsIGhjKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgICMgcGx1Z2lucyByZWdpc3RlcmVkIHRoaXMgaG9vayB3aXRob3V0IGtu
b3dpbmcgdGhlIHNwZWMKLSAgICAgICAgICAgICAgICAgICAgaGMuc2V0X3NwZWNpZmljYXRpb24o
bW9kdWxlX29yX2NsYXNzLCBzcGVjX29wdHMpCi0gICAgICAgICAgICAgICAgICAgIGZvciBob29r
ZnVuY3Rpb24gaW4gKGhjLl93cmFwcGVycyArIGhjLl9ub253cmFwcGVycyk6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl92ZXJpZnlfaG9vayhoYywgaG9va2Z1bmN0aW9uKQotICAgICAg
ICAgICAgICAgIG5hbWVzLmFwcGVuZChuYW1lKQotCi0gICAgICAgIGlmIG5vdCBuYW1lczoKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRpZCBub3QgZmluZCBhbnkgJXIgaG9va3MgaW4g
JXIiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYucHJvamVjdF9uYW1lLCBt
b2R1bGVfb3JfY2xhc3MpKQotCi0gICAgZGVmIHBhcnNlX2hvb2tzcGVjX29wdHMoc2VsZiwgbW9k
dWxlX29yX2NsYXNzLCBuYW1lKToKLSAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihtb2R1bGVfb3Jf
Y2xhc3MsIG5hbWUpCi0gICAgICAgIHJldHVybiBnZXRhdHRyKG1ldGhvZCwgc2VsZi5wcm9qZWN0
X25hbWUgKyAiX3NwZWMiLCBOb25lKQotCi0gICAgZGVmIGdldF9wbHVnaW5zKHNlbGYpOgotICAg
ICAgICAiIiIgcmV0dXJuIHRoZSBzZXQgb2YgcmVnaXN0ZXJlZCBwbHVnaW5zLiAiIiIKLSAgICAg
ICAgcmV0dXJuIHNldChzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMpCi0KLSAgICBkZWYgaXNfcmVn
aXN0ZXJlZChzZWxmLCBwbHVnaW4pOgotICAgICAgICAiIiIgUmV0dXJuIFRydWUgaWYgdGhlIHBs
dWdpbiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuICIiIgotICAgICAgICByZXR1cm4gcGx1Z2luIGlu
IHNlbGYuX3BsdWdpbjJob29rY2FsbGVycwotCi0gICAgZGVmIGdldF9jYW5vbmljYWxfbmFtZShz
ZWxmLCBwbHVnaW4pOgotICAgICAgICAiIiIgUmV0dXJuIGNhbm9uaWNhbCBuYW1lIGZvciBhIHBs
dWdpbiBvYmplY3QuIE5vdGUgdGhhdCBhIHBsdWdpbgotICAgICAgICBtYXkgYmUgcmVnaXN0ZXJl
ZCB1bmRlciBhIGRpZmZlcmVudCBuYW1lIHdoaWNoIHdhcyBzcGVjaWZpZWQKLSAgICAgICAgYnkg
dGhlIGNhbGxlciBvZiByZWdpc3RlcihwbHVnaW4sIG5hbWUpLiBUbyBvYnRhaW4gdGhlIG5hbWUK
LSAgICAgICAgb2YgYW4gcmVnaXN0ZXJlZCBwbHVnaW4gdXNlIGBgZ2V0X25hbWUocGx1Z2luKWBg
IGluc3RlYWQuIiIiCi0gICAgICAgIHJldHVybiBnZXRhdHRyKHBsdWdpbiwgIl9fbmFtZV9fIiwg
Tm9uZSkgb3Igc3RyKGlkKHBsdWdpbikpCi0KLSAgICBkZWYgZ2V0X3BsdWdpbihzZWxmLCBuYW1l
KToKLSAgICAgICAgIiIiIFJldHVybiBhIHBsdWdpbiBvciBOb25lIGZvciB0aGUgZ2l2ZW4gbmFt
ZS4gIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9uYW1lMnBsdWdpbi5nZXQobmFtZSkKLQotICAg
IGRlZiBoYXNfcGx1Z2luKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiIgUmV0dXJuIFRydWUgaWYg
YSBwbHVnaW4gd2l0aCB0aGUgZ2l2ZW4gbmFtZSBpcyByZWdpc3RlcmVkLiAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuZ2V0X3BsdWdpbihuYW1lKSBpcyBub3QgTm9uZQotCi0gICAgZGVmIGdldF9u
YW1lKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgICIiIiBSZXR1cm4gbmFtZSBmb3IgcmVnaXN0ZXJl
ZCBwbHVnaW4gb3IgTm9uZSBpZiBub3QgcmVnaXN0ZXJlZC4gIiIiCi0gICAgICAgIGZvciBuYW1l
LCB2YWwgaW4gc2VsZi5fbmFtZTJwbHVnaW4uaXRlbXMoKToKLSAgICAgICAgICAgIGlmIHBsdWdp
biA9PSB2YWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUKLQotICAgIGRlZiBfdmVyaWZ5
X2hvb2soc2VsZiwgaG9vaywgaG9va2ltcGwpOgotICAgICAgICBpZiBob29rLmlzX2hpc3Rvcmlj
KCkgYW5kIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgotICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFs
aWRhdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICJQbHVnaW4gJXJcbmhvb2sgJXJcbmhpc3Rv
cmljIGluY29tcGF0aWJsZSB0byBob29rd3JhcHBlciIgJQotICAgICAgICAgICAgICAgIChob29r
aW1wbC5wbHVnaW5fbmFtZSwgaG9vay5uYW1lKSkKLQotICAgICAgICAjIHBvc2l0aW9uYWwgYXJn
IGNoZWNraW5nCi0gICAgICAgIG5vdGluc3BlYyA9IHNldChob29raW1wbC5hcmduYW1lcykgLSBz
ZXQoaG9vay5hcmduYW1lcykKLSAgICAgICAgaWYgbm90aW5zcGVjOgotICAgICAgICAgICAgcmFp
c2UgUGx1Z2luVmFsaWRhdGlvbkVycm9yKAotICAgICAgICAgICAgICAgICJQbHVnaW4gJXIgZm9y
IGhvb2sgJXJcbmhvb2tpbXBsIGRlZmluaXRpb246ICVzXG4iCi0gICAgICAgICAgICAgICAgIkFy
Z3VtZW50KHMpICVzIGFyZSBkZWNsYXJlZCBpbiB0aGUgaG9va2ltcGwgYnV0ICIKLSAgICAgICAg
ICAgICAgICAiY2FuIG5vdCBiZSBmb3VuZCBpbiB0aGUgaG9va3NwZWMiICUKLSAgICAgICAgICAg
ICAgICAoaG9va2ltcGwucGx1Z2luX25hbWUsIGhvb2submFtZSwKLSAgICAgICAgICAgICAgICAg
X2Zvcm1hdGRlZihob29raW1wbC5mdW5jdGlvbiksIG5vdGluc3BlYykKLSAgICAgICAgICAgICkK
LQotICAgIGRlZiBjaGVja19wZW5kaW5nKHNlbGYpOgotICAgICAgICAiIiIgVmVyaWZ5IHRoYXQg
YWxsIGhvb2tzIHdoaWNoIGhhdmUgbm90IGJlZW4gdmVyaWZpZWQgYWdhaW5zdAotICAgICAgICBh
IGhvb2sgc3BlY2lmaWNhdGlvbiBhcmUgb3B0aW9uYWwsIG90aGVyd2lzZSByYWlzZSBQbHVnaW5W
YWxpZGF0aW9uRXJyb3IiIiIKLSAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5ob29rLl9fZGljdF9f
OgotICAgICAgICAgICAgaWYgbmFtZVswXSAhPSAiXyI6Ci0gICAgICAgICAgICAgICAgaG9vayA9
IGdldGF0dHIoc2VsZi5ob29rLCBuYW1lKQotICAgICAgICAgICAgICAgIGlmIG5vdCBob29rLmhh
c19zcGVjKCk6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBob29raW1wbCBpbiAoaG9vay5fd3Jh
cHBlcnMgKyBob29rLl9ub253cmFwcGVycyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBu
b3QgaG9va2ltcGwub3B0aW9uYWxob29rOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJh
aXNlIFBsdWdpblZhbGlkYXRpb25FcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInVua25vd24gaG9vayAlciBpbiBwbHVnaW4gJXIiICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKG5hbWUsIGhvb2tpbXBsLnBsdWdpbikpCi0KLSAgICBkZWYgbG9hZF9zZXR1
cHRvb2xzX2VudHJ5cG9pbnRzKHNlbGYsIGVudHJ5cG9pbnRfbmFtZSk6Ci0gICAgICAgICIiIiBM
b2FkIG1vZHVsZXMgZnJvbSBxdWVyeWluZyB0aGUgc3BlY2lmaWVkIHNldHVwdG9vbHMgZW50cnlw
b2ludCBuYW1lLgotICAgICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBsb2FkZWQgcGx1Z2lucy4g
IiIiCi0gICAgICAgIGZyb20gcGtnX3Jlc291cmNlcyBpbXBvcnQgKGl0ZXJfZW50cnlfcG9pbnRz
LCBEaXN0cmlidXRpb25Ob3RGb3VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmVyc2lvbkNvbmZsaWN0KQotICAgICAgICBmb3IgZXAgaW4gaXRlcl9lbnRyeV9wb2ludHMo
ZW50cnlwb2ludF9uYW1lKToKLSAgICAgICAgICAgICMgaXMgdGhlIHBsdWdpbiByZWdpc3RlcmVk
IG9yIGJsb2NrZWQ/Ci0gICAgICAgICAgICBpZiBzZWxmLmdldF9wbHVnaW4oZXAubmFtZSkgb3Ig
c2VsZi5pc19ibG9ja2VkKGVwLm5hbWUpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcGx1Z2luID0gZXAubG9hZCgpCi0gICAgICAg
ICAgICBleGNlcHQgRGlzdHJpYnV0aW9uTm90Rm91bmQ6Ci0gICAgICAgICAgICAgICAgY29udGlu
dWUKLSAgICAgICAgICAgIGV4Y2VwdCBWZXJzaW9uQ29uZmxpY3QgYXMgZToKLSAgICAgICAgICAg
ICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJQ
bHVnaW4gJXIgY291bGQgbm90IGJlIGxvYWRlZDogJXMhIiAlIChlcC5uYW1lLCBlKSkKLSAgICAg
ICAgICAgIHNlbGYucmVnaXN0ZXIocGx1Z2luLCBuYW1lPWVwLm5hbWUpCi0gICAgICAgICAgICBz
ZWxmLl9wbHVnaW5fZGlzdGluZm8uYXBwZW5kKChwbHVnaW4sIGVwLmRpc3QpKQotICAgICAgICBy
ZXR1cm4gbGVuKHNlbGYuX3BsdWdpbl9kaXN0aW5mbykKLQotICAgIGRlZiBsaXN0X3BsdWdpbl9k
aXN0aW5mbyhzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBsaXN0IG9mIGRpc3RpbmZvL3BsdWdp
biB0dXBsZXMgZm9yIGFsbCBzZXR1cHRvb2xzIHJlZ2lzdGVyZWQKLSAgICAgICAgcGx1Z2lucy4g
IiIiCi0gICAgICAgIHJldHVybiBsaXN0KHNlbGYuX3BsdWdpbl9kaXN0aW5mbykKLQotICAgIGRl
ZiBsaXN0X25hbWVfcGx1Z2luKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgbmFt
ZS9wbHVnaW4gcGFpcnMuICIiIgotICAgICAgICByZXR1cm4gbGlzdChzZWxmLl9uYW1lMnBsdWdp
bi5pdGVtcygpKQotCi0gICAgZGVmIGdldF9ob29rY2FsbGVycyhzZWxmLCBwbHVnaW4pOgotICAg
ICAgICAiIiIgZ2V0IGFsbCBob29rIGNhbGxlcnMgZm9yIHRoZSBzcGVjaWZpZWQgcGx1Z2luLiAi
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3BsdWdpbjJob29rY2FsbGVycy5nZXQocGx1Z2luKQot
Ci0gICAgZGVmIGFkZF9ob29rY2FsbF9tb25pdG9yaW5nKHNlbGYsIGJlZm9yZSwgYWZ0ZXIpOgot
ICAgICAgICAiIiIgYWRkIGJlZm9yZS9hZnRlciB0cmFjaW5nIGZ1bmN0aW9ucyBmb3IgYWxsIGhv
b2tzCi0gICAgICAgIGFuZCByZXR1cm4gYW4gdW5kbyBmdW5jdGlvbiB3aGljaCwgd2hlbiBjYWxs
ZWQsCi0gICAgICAgIHdpbGwgcmVtb3ZlIHRoZSBhZGRlZCB0cmFjZXJzLgotCi0gICAgICAgIGBg
YmVmb3JlKGhvb2tfbmFtZSwgaG9va19pbXBscywga3dhcmdzKWBgIHdpbGwgYmUgY2FsbGVkIGFo
ZWFkCi0gICAgICAgIG9mIGFsbCBob29rIGNhbGxzIGFuZCByZWNlaXZlIGEgaG9va2NhbGxlciBp
bnN0YW5jZSwgYSBsaXN0Ci0gICAgICAgIG9mIEhvb2tJbXBsIGluc3RhbmNlcyBhbmQgdGhlIGtl
eXdvcmQgYXJndW1lbnRzIGZvciB0aGUgaG9vayBjYWxsLgotCi0gICAgICAgIGBgYWZ0ZXIob3V0
Y29tZSwgaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpYGAgcmVjZWl2ZXMgdGhlCi0gICAg
ICAgIHNhbWUgYXJndW1lbnRzIGFzIGBgYmVmb3JlYGAgYnV0IGFsc28gYSA6cHk6Y2xhc3M6YF9S
ZXN1bHRgYCBvYmplY3QKLSAgICAgICAgd2hpY2ggcmVwcmVzZW50cyB0aGUgcmVzdWx0IG9mIHRo
ZSBvdmVyYWxsIGhvb2sgY2FsbC4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBfVHJhY2Vk
SG9va0V4ZWN1dGlvbihzZWxmLCBiZWZvcmUsIGFmdGVyKS51bmRvCi0KLSAgICBkZWYgZW5hYmxl
X3RyYWNpbmcoc2VsZik6Ci0gICAgICAgICIiIiBlbmFibGUgdHJhY2luZyBvZiBob29rIGNhbGxz
IGFuZCByZXR1cm4gYW4gdW5kbyBmdW5jdGlvbi4gIiIiCi0gICAgICAgIGhvb2t0cmFjZSA9IHNl
bGYuaG9vay5fdHJhY2UKLQotICAgICAgICBkZWYgYmVmb3JlKGhvb2tfbmFtZSwgbWV0aG9kcywg
a3dhcmdzKToKLSAgICAgICAgICAgIGhvb2t0cmFjZS5yb290LmluZGVudCArPSAxCi0gICAgICAg
ICAgICBob29rdHJhY2UoaG9va19uYW1lLCBrd2FyZ3MpCi0KLSAgICAgICAgZGVmIGFmdGVyKG91
dGNvbWUsIGhvb2tfbmFtZSwgbWV0aG9kcywga3dhcmdzKToKLSAgICAgICAgICAgIGlmIG91dGNv
bWUuZXhjaW5mbyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGhvb2t0cmFjZSgiZmluaXNoIiwg
aG9va19uYW1lLCAiLS0+Iiwgb3V0Y29tZS5nZXRfcmVzdWx0KCkpCi0gICAgICAgICAgICBob29r
dHJhY2Uucm9vdC5pbmRlbnQgLT0gMQotCi0gICAgICAgIHJldHVybiBzZWxmLmFkZF9ob29rY2Fs
bF9tb25pdG9yaW5nKGJlZm9yZSwgYWZ0ZXIpCi0KLSAgICBkZWYgc3Vic2V0X2hvb2tfY2FsbGVy
KHNlbGYsIG5hbWUsIHJlbW92ZV9wbHVnaW5zKToKLSAgICAgICAgIiIiIFJldHVybiBhIG5ldyBf
SG9va0NhbGxlciBpbnN0YW5jZSBmb3IgdGhlIG5hbWVkIG1ldGhvZAotICAgICAgICB3aGljaCBt
YW5hZ2VzIGNhbGxzIHRvIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMgZXhjZXB0IHRoZQotICAgICAg
ICBvbmVzIGZyb20gcmVtb3ZlX3BsdWdpbnMuICIiIgotICAgICAgICBvcmlnID0gZ2V0YXR0cihz
ZWxmLmhvb2ssIG5hbWUpCi0gICAgICAgIHBsdWdpbnNfdG9fcmVtb3ZlID0gW3BsdWcgZm9yIHBs
dWcgaW4gcmVtb3ZlX3BsdWdpbnMgaWYgaGFzYXR0cihwbHVnLCBuYW1lKV0KLSAgICAgICAgaWYg
cGx1Z2luc190b19yZW1vdmU6Ci0gICAgICAgICAgICBoYyA9IF9Ib29rQ2FsbGVyKG9yaWcubmFt
ZSwgb3JpZy5faG9va2V4ZWMsIG9yaWcuX3NwZWNtb2R1bGVfb3JfY2xhc3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9yaWcuc3BlY19vcHRzKQotICAgICAgICAgICAgZm9yIGhvb2tp
bXBsIGluIChvcmlnLl93cmFwcGVycyArIG9yaWcuX25vbndyYXBwZXJzKToKLSAgICAgICAgICAg
ICAgICBwbHVnaW4gPSBob29raW1wbC5wbHVnaW4KLSAgICAgICAgICAgICAgICBpZiBwbHVnaW4g
bm90IGluIHBsdWdpbnNfdG9fcmVtb3ZlOgotICAgICAgICAgICAgICAgICAgICBoYy5fYWRkX2hv
b2tpbXBsKGhvb2tpbXBsKQotICAgICAgICAgICAgICAgICAgICAjIHdlIGFsc28ga2VlcCB0cmFj
ayBvZiB0aGlzIGhvb2sgY2FsbGVyIHNvIGl0Ci0gICAgICAgICAgICAgICAgICAgICMgZ2V0cyBw
cm9wZXJseSByZW1vdmVkIG9uIHBsdWdpbiB1bnJlZ2lzdHJhdGlvbgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMuc2V0ZGVmYXVsdChwbHVnaW4sIFtdKS5hcHBl
bmQoaGMpCi0gICAgICAgICAgICByZXR1cm4gaGMKLSAgICAgICAgcmV0dXJuIG9yaWcKLQotCi1k
ZWYgdmFybmFtZXMoZnVuYyk6Ci0gICAgIiIiUmV0dXJuIHR1cGxlIG9mIHBvc2l0aW9uYWwgYW5k
IGtleXdyb3JkIGFyZ3VtZW50IG5hbWVzIGZvciBhIGZ1bmN0aW9uLAotICAgIG1ldGhvZCwgY2xh
c3Mgb3IgY2FsbGFibGUuCi0KLSAgICBJbiBjYXNlIG9mIGEgY2xhc3MsIGl0cyBgYF9faW5pdF9f
YGAgbWV0aG9kIGlzIGNvbnNpZGVyZWQuCi0gICAgRm9yIG1ldGhvZHMgdGhlIGBgc2VsZmBgIHBh
cmFtZXRlciBpcyBub3QgaW5jbHVkZWQuCi0gICAgIiIiCi0gICAgY2FjaGUgPSBnZXRhdHRyKGZ1
bmMsICJfX2RpY3RfXyIsIHt9KQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGNhY2hlWyJfdmFy
bmFtZXMiXQotICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgcGFzcwotCi0gICAgaWYgaW5z
cGVjdC5pc2NsYXNzKGZ1bmMpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmdW5jID0gZnVu
Yy5fX2luaXRfXwotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBy
ZXR1cm4gKCksICgpCi0gICAgZWxpZiBub3QgaW5zcGVjdC5pc3JvdXRpbmUoZnVuYyk6ICAjIGNh
bGxhYmxlIG9iamVjdD8KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZnVuYyA9IGdldGF0dHIo
ZnVuYywgJ19fY2FsbF9fJywgZnVuYykKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIHJldHVybiAoKQotCi0gICAgdHJ5OiAgIyBmdW5jIE1VU1QgYmUgYSBmdW5jdGlvbiBv
ciBtZXRob2QgaGVyZSBvciB3ZSB3b24ndCBwYXJzZSBhbnkgYXJncwotICAgICAgICBzcGVjID0g
X2dldGFyZ3NwZWMoZnVuYykKLSAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICByZXR1cm4g
KCksICgpCi0KLSAgICBhcmdzLCBkZWZhdWx0cyA9IHR1cGxlKHNwZWMuYXJncyksIHNwZWMuZGVm
YXVsdHMKLSAgICBpZiBkZWZhdWx0czoKLSAgICAgICAgaW5kZXggPSAtbGVuKGRlZmF1bHRzKQot
ICAgICAgICBhcmdzLCBkZWZhdWx0cyA9IGFyZ3NbOmluZGV4XSwgdHVwbGUoYXJnc1tpbmRleDpd
KQotICAgIGVsc2U6Ci0gICAgICAgIGRlZmF1bHRzID0gKCkKLQotICAgICMgc3RyaXAgYW55IGlt
cGxpY2l0IGluc3RhbmNlIGFyZwotICAgIGlmIGFyZ3M6Ci0gICAgICAgIGlmIGluc3BlY3QuaXNt
ZXRob2QoZnVuYykgb3IgKAotICAgICAgICAgICAgJy4nIGluIGdldGF0dHIoZnVuYywgJ19fcXVh
bG5hbWVfXycsICgpKSBhbmQgYXJnc1swXSA9PSAnc2VsZicKLSAgICAgICAgKToKLSAgICAgICAg
ICAgIGFyZ3MgPSBhcmdzWzE6XQotCi0gICAgYXNzZXJ0ICJzZWxmIiBub3QgaW4gYXJncyAgIyBi
ZXN0IG5hbWluZyBwcmFjdGlzZXMgY2hlY2s/Ci0gICAgdHJ5OgotICAgICAgICBjYWNoZVsiX3Zh
cm5hbWVzIl0gPSBhcmdzLCBkZWZhdWx0cwotICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAg
IHBhc3MKLSAgICByZXR1cm4gYXJncywgZGVmYXVsdHMKLQotCi1jbGFzcyBfSG9va1JlbGF5KG9i
amVjdCk6Ci0gICAgIiIiIGhvb2sgaG9sZGVyIG9iamVjdCBmb3IgcGVyZm9ybWluZyAxOk4gaG9v
ayBjYWxscyB3aGVyZSBOIGlzIHRoZSBudW1iZXIKLSAgICBvZiByZWdpc3RlcmVkIHBsdWdpbnMu
Ci0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0cmFjZSk6Ci0gICAgICAgIHNl
bGYuX3RyYWNlID0gdHJhY2UKLQotCi1jbGFzcyBfSG9va0NhbGxlcihvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBob29rX2V4ZWN1dGUsIHNwZWNtb2R1bGVfb3JfY2xhc3M9
Tm9uZSwKLSAgICAgICAgICAgICAgICAgc3BlY19vcHRzPU5vbmUpOgotICAgICAgICBzZWxmLm5h
bWUgPSBuYW1lCi0gICAgICAgIHNlbGYuX3dyYXBwZXJzID0gW10KLSAgICAgICAgc2VsZi5fbm9u
d3JhcHBlcnMgPSBbXQotICAgICAgICBzZWxmLl9ob29rZXhlYyA9IGhvb2tfZXhlY3V0ZQotICAg
ICAgICBzZWxmLl9zcGVjbW9kdWxlX29yX2NsYXNzID0gTm9uZQotICAgICAgICBzZWxmLmFyZ25h
bWVzID0gTm9uZQotICAgICAgICBzZWxmLmt3YXJnbmFtZXMgPSBOb25lCi0gICAgICAgIHNlbGYu
bXVsdGljYWxsID0gX211bHRpY2FsbAotICAgICAgICBzZWxmLnNwZWNfb3B0cyA9IHNwZWNfb3B0
cyBvciB7fQotICAgICAgICBpZiBzcGVjbW9kdWxlX29yX2NsYXNzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgc2VsZi5zZXRfc3BlY2lmaWNhdGlvbihzcGVjbW9kdWxlX29yX2NsYXNzLCBzcGVj
X29wdHMpCi0KLSAgICBkZWYgaGFzX3NwZWMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9z
cGVjbW9kdWxlX29yX2NsYXNzIGlzIG5vdCBOb25lCi0KLSAgICBkZWYgc2V0X3NwZWNpZmljYXRp
b24oc2VsZiwgc3BlY21vZHVsZV9vcl9jbGFzcywgc3BlY19vcHRzKToKLSAgICAgICAgYXNzZXJ0
IG5vdCBzZWxmLmhhc19zcGVjKCkKLSAgICAgICAgc2VsZi5fc3BlY21vZHVsZV9vcl9jbGFzcyA9
IHNwZWNtb2R1bGVfb3JfY2xhc3MKLSAgICAgICAgc3BlY2Z1bmMgPSBnZXRhdHRyKHNwZWNtb2R1
bGVfb3JfY2xhc3MsIHNlbGYubmFtZSkKLSAgICAgICAgIyBnZXQgc3BlYyBhcmcgc2lnbmF0dXJl
Ci0gICAgICAgIGFyZ25hbWVzLCBzZWxmLmt3YXJnbmFtZXMgPSB2YXJuYW1lcyhzcGVjZnVuYykK
LSAgICAgICAgc2VsZi5hcmduYW1lcyA9IFsiX19tdWx0aWNhbGxfXyJdICsgbGlzdChhcmduYW1l
cykKLSAgICAgICAgc2VsZi5zcGVjX29wdHMudXBkYXRlKHNwZWNfb3B0cykKLSAgICAgICAgaWYg
c3BlY19vcHRzLmdldCgiaGlzdG9yaWMiKToKLSAgICAgICAgICAgIHNlbGYuX2NhbGxfaGlzdG9y
eSA9IFtdCi0KLSAgICBkZWYgaXNfaGlzdG9yaWMoc2VsZik6Ci0gICAgICAgIHJldHVybiBoYXNh
dHRyKHNlbGYsICJfY2FsbF9oaXN0b3J5IikKLQotICAgIGRlZiBfcmVtb3ZlX3BsdWdpbihzZWxm
LCBwbHVnaW4pOgotICAgICAgICBkZWYgcmVtb3ZlKHdyYXBwZXJzKToKLSAgICAgICAgICAgIGZv
ciBpLCBtZXRob2QgaW4gZW51bWVyYXRlKHdyYXBwZXJzKToKLSAgICAgICAgICAgICAgICBpZiBt
ZXRob2QucGx1Z2luID09IHBsdWdpbjoKLSAgICAgICAgICAgICAgICAgICAgZGVsIHdyYXBwZXJz
W2ldCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHJlbW92ZShz
ZWxmLl93cmFwcGVycykgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHJlbW92ZShzZWxmLl9ub253
cmFwcGVycykgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwbHVn
aW4gJXIgbm90IGZvdW5kIiAlIChwbHVnaW4sKSkKLQotICAgIGRlZiBfYWRkX2hvb2tpbXBsKHNl
bGYsIGhvb2tpbXBsKToKLSAgICAgICAgIiIiQSBhbiBpbXBsZW1lbnRhdGlvbiB0byB0aGUgY2Fs
bGJhY2sgY2hhaW4uCi0gICAgICAgICIiIgotICAgICAgICBpZiBob29raW1wbC5ob29rd3JhcHBl
cjoKLSAgICAgICAgICAgIG1ldGhvZHMgPSBzZWxmLl93cmFwcGVycwotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgbWV0aG9kcyA9IHNlbGYuX25vbndyYXBwZXJzCi0KLSAgICAgICAgaWYgaG9v
a2ltcGwudHJ5bGFzdDoKLSAgICAgICAgICAgIG1ldGhvZHMuaW5zZXJ0KDAsIGhvb2tpbXBsKQot
ICAgICAgICBlbGlmIGhvb2tpbXBsLnRyeWZpcnN0OgotICAgICAgICAgICAgbWV0aG9kcy5hcHBl
bmQoaG9va2ltcGwpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGZpbmQgbGFzdCBub24t
dHJ5Zmlyc3QgbWV0aG9kCi0gICAgICAgICAgICBpID0gbGVuKG1ldGhvZHMpIC0gMQotICAgICAg
ICAgICAgd2hpbGUgaSA+PSAwIGFuZCBtZXRob2RzW2ldLnRyeWZpcnN0OgotICAgICAgICAgICAg
ICAgIGkgLT0gMQotICAgICAgICAgICAgbWV0aG9kcy5pbnNlcnQoaSArIDEsIGhvb2tpbXBsKQot
Ci0gICAgICAgIGlmICdfX211bHRpY2FsbF9fJyBpbiBob29raW1wbC5hcmduYW1lczoKLSAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgIlN1cHBvcnQgZm9yIF9fbXVs
dGljYWxsX18gaXMgbm93IGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUiCi0gICAgICAgICAgICAgICAg
InJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4iLAotICAgICAgICAgICAgICAgIERlcHJl
Y2F0aW9uV2FybmluZwotICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5tdWx0aWNhbGwg
PSBfbGVnYWN5bXVsdGljYWxsCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJl
dHVybiAiPF9Ib29rQ2FsbGVyICVyPiIgJSAoc2VsZi5uYW1lLCkKLQotICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBpZiBhcmdzOgotICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCJob29rIGNhbGxpbmcgc3VwcG9ydHMgb25seSBrZXl3b3JkIGFyZ3Vt
ZW50cyIpCi0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5pc19oaXN0b3JpYygpCi0gICAgICAgIGlm
IHNlbGYuYXJnbmFtZXM6Ci0gICAgICAgICAgICBub3RpbmNhbGwgPSBzZXQoc2VsZi5hcmduYW1l
cykgLSBzZXQoWydfX211bHRpY2FsbF9fJ10pIC0gc2V0KAotICAgICAgICAgICAgICAgIGt3YXJn
cy5rZXlzKCkpCi0gICAgICAgICAgICBpZiBub3RpbmNhbGw6Ci0gICAgICAgICAgICAgICAgd2Fy
bmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50KHMpIHt9IHdoaWNoIGFy
ZSBkZWNsYXJlZCBpbiB0aGUgaG9va3NwZWMgIgotICAgICAgICAgICAgICAgICAgICAiY2FuIG5v
dCBiZSBmb3VuZCBpbiB0aGlzIGhvb2sgY2FsbCIKLSAgICAgICAgICAgICAgICAgICAgLmZvcm1h
dCh0dXBsZShub3RpbmNhbGwpKSwKLSAgICAgICAgICAgICAgICAgICAgc3RhY2tsZXZlbD0yLAot
ICAgICAgICAgICAgICAgICkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2hvb2tleGVjKHNlbGYsIHNl
bGYuX25vbndyYXBwZXJzICsgc2VsZi5fd3JhcHBlcnMsIGt3YXJncykKLQotICAgIGRlZiBjYWxs
X2hpc3RvcmljKHNlbGYsIHByb2M9Tm9uZSwga3dhcmdzPU5vbmUpOgotICAgICAgICAiIiIgY2Fs
bCB0aGUgaG9vayB3aXRoIGdpdmVuIGBga3dhcmdzYGAgZm9yIGFsbCByZWdpc3RlcmVkIHBsdWdp
bnMgYW5kCi0gICAgICAgIGZvciBhbGwgcGx1Z2lucyB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQg
YWZ0ZXJ3YXJkcy4KLQotICAgICAgICBJZiBgYHByb2NgYCBpcyBub3QgTm9uZSBpdCB3aWxsIGJl
IGNhbGxlZCBmb3IgZm9yIGVhY2ggbm9uLU5vbmUgcmVzdWx0Ci0gICAgICAgIG9idGFpbmVkIGZy
b20gYSBob29rIGltcGxlbWVudGF0aW9uLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fY2Fs
bF9oaXN0b3J5LmFwcGVuZCgoa3dhcmdzIG9yIHt9LCBwcm9jKSkKLSAgICAgICAgIyBoaXN0b3Jp
emluZyBob29rcyBkb24ndCByZXR1cm4gcmVzdWx0cwotICAgICAgICByZXMgPSBzZWxmLl9ob29r
ZXhlYyhzZWxmLCBzZWxmLl9ub253cmFwcGVycyArIHNlbGYuX3dyYXBwZXJzLCBrd2FyZ3MpCi0g
ICAgICAgIGZvciB4IGluIHJlcyBvciBbXToKLSAgICAgICAgICAgIHByb2MoeCkKLQotICAgIGRl
ZiBjYWxsX2V4dHJhKHNlbGYsIG1ldGhvZHMsIGt3YXJncyk6Ci0gICAgICAgICIiIiBDYWxsIHRo
ZSBob29rIHdpdGggc29tZSBhZGRpdGlvbmFsIHRlbXBvcmFyaWx5IHBhcnRpY2lwYXRpbmcKLSAg
ICAgICAgbWV0aG9kcyB1c2luZyB0aGUgc3BlY2lmaWVkIGt3YXJncyBhcyBjYWxsIHBhcmFtZXRl
cnMuICIiIgotICAgICAgICBvbGQgPSBsaXN0KHNlbGYuX25vbndyYXBwZXJzKSwgbGlzdChzZWxm
Ll93cmFwcGVycykKLSAgICAgICAgZm9yIG1ldGhvZCBpbiBtZXRob2RzOgotICAgICAgICAgICAg
b3B0cyA9IGRpY3QoaG9va3dyYXBwZXI9RmFsc2UsIHRyeWxhc3Q9RmFsc2UsIHRyeWZpcnN0PUZh
bHNlKQotICAgICAgICAgICAgaG9va2ltcGwgPSBIb29rSW1wbChOb25lLCAiPHRlbXA+IiwgbWV0
aG9kLCBvcHRzKQotICAgICAgICAgICAgc2VsZi5fYWRkX2hvb2tpbXBsKGhvb2tpbXBsKQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZigqKmt3YXJncykKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNlbGYuX25vbndyYXBwZXJzLCBzZWxmLl93cmFwcGVycyA9IG9s
ZAotCi0gICAgZGVmIF9tYXliZV9hcHBseV9oaXN0b3J5KHNlbGYsIG1ldGhvZCk6Ci0gICAgICAg
ICIiIkFwcGx5IGNhbGwgaGlzdG9yeSB0byBhIG5ldyBob29raW1wbCBpZiBpdCBpcyBtYXJrZWQg
YXMgaGlzdG9yaWMuCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmlzX2hpc3RvcmljKCk6
Ci0gICAgICAgICAgICBmb3Iga3dhcmdzLCBwcm9jIGluIHNlbGYuX2NhbGxfaGlzdG9yeToKLSAg
ICAgICAgICAgICAgICByZXMgPSBzZWxmLl9ob29rZXhlYyhzZWxmLCBbbWV0aG9kXSwga3dhcmdz
KQotICAgICAgICAgICAgICAgIGlmIHJlcyBhbmQgcHJvYyBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICAgICAgcHJvYyhyZXNbMF0pCi0KLQotY2xhc3MgSG9va0ltcGwob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgcGx1Z2luLCBwbHVnaW5fbmFtZSwgZnVuY3Rpb24sIGhvb2tf
aW1wbF9vcHRzKToKLSAgICAgICAgc2VsZi5mdW5jdGlvbiA9IGZ1bmN0aW9uCi0gICAgICAgIHNl
bGYuYXJnbmFtZXMsIHNlbGYua3dhcmduYW1lcyA9IHZhcm5hbWVzKHNlbGYuZnVuY3Rpb24pCi0g
ICAgICAgIHNlbGYucGx1Z2luID0gcGx1Z2luCi0gICAgICAgIHNlbGYub3B0cyA9IGhvb2tfaW1w
bF9vcHRzCi0gICAgICAgIHNlbGYucGx1Z2luX25hbWUgPSBwbHVnaW5fbmFtZQotICAgICAgICBz
ZWxmLl9fZGljdF9fLnVwZGF0ZShob29rX2ltcGxfb3B0cykKLQotCi1pZiBoYXNhdHRyKGluc3Bl
Y3QsICdnZXRmdWxsYXJnc3BlYycpOgotICAgIGRlZiBfZ2V0YXJnc3BlYyhmdW5jKToKLSAgICAg
ICAgcmV0dXJuIGluc3BlY3QuZ2V0ZnVsbGFyZ3NwZWMoZnVuYykKLWVsc2U6Ci0gICAgZGVmIF9n
ZXRhcmdzcGVjKGZ1bmMpOgotICAgICAgICByZXR1cm4gaW5zcGVjdC5nZXRhcmdzcGVjKGZ1bmMp
Ci0KLQotaWYgaGFzYXR0cihpbnNwZWN0LCAnc2lnbmF0dXJlJyk6Ci0gICAgZGVmIF9mb3JtYXRk
ZWYoZnVuYyk6Ci0gICAgICAgIHJldHVybiAiJXMlcyIgJSAoCi0gICAgICAgICAgICBmdW5jLl9f
bmFtZV9fLAotICAgICAgICAgICAgc3RyKGluc3BlY3Quc2lnbmF0dXJlKGZ1bmMpKQotICAgICAg
ICApCi1lbHNlOgotICAgIGRlZiBfZm9ybWF0ZGVmKGZ1bmMpOgotICAgICAgICByZXR1cm4gIiVz
JXMiICUgKAotICAgICAgICAgICAgZnVuYy5fX25hbWVfXywKLSAgICAgICAgICAgIGluc3BlY3Qu
Zm9ybWF0YXJnc3BlYygqaW5zcGVjdC5nZXRhcmdzcGVjKGZ1bmMpKQotICAgICAgICApCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvY2FsbGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdn
eS9jYWxsZXJzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmY2N2JlY2ZmYmNi
NGMzZTBjZGMyZmUxYmRiOGI2ODM0ZGJkNzY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMjAxICswLDAgQEAKLScnJwotQ2FsbCBsb29wIG1hY2hpbmVyeQotJycnCi1p
bXBvcnQgc3lzCi1pbXBvcnQgd2FybmluZ3MKLQotX3B5MyA9IHN5cy52ZXJzaW9uX2luZm8gPiAo
MywgMCkKLQotCi1pZiBub3QgX3B5MzoKLSAgICBleGVjKCIiIgotZGVmIF9yZXJhaXNlKGNscywg
dmFsLCB0Yik6Ci0gICAgcmFpc2UgY2xzLCB2YWwsIHRiCi0iIiIpCi0KLQotZGVmIF9yYWlzZV93
cmFwZmFpbCh3cmFwX2NvbnRyb2xsZXIsIG1zZyk6Ci0gICAgY28gPSB3cmFwX2NvbnRyb2xsZXIu
Z2lfY29kZQotICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigid3JhcF9jb250cm9sbGVyIGF0ICVyICVz
OiVkICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgIChjby5jb19uYW1lLCBjby5jb19maWxl
bmFtZSwgY28uY29fZmlyc3RsaW5lbm8sIG1zZykpCi0KLQotY2xhc3MgSG9va0NhbGxFcnJvcihF
eGNlcHRpb24pOgotICAgICIiIiBIb29rIHdhcyBjYWxsZWQgd3JvbmdseS4gIiIiCi0KLQotY2xh
c3MgX1Jlc3VsdChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXN1bHQsIGV4Y2lu
Zm8pOgotICAgICAgICBzZWxmLl9yZXN1bHQgPSByZXN1bHQKLSAgICAgICAgc2VsZi5fZXhjaW5m
byA9IGV4Y2luZm8KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBleGNpbmZvKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fZXhjaW5mbwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHJlc3Vs
dChzZWxmKToKLSAgICAgICAgIiIiR2V0IHRoZSByZXN1bHQocykgZm9yIHRoaXMgaG9vayBjYWxs
IChERVBSRUNBVEVEIGluIGZhdm9yIG9mIGBgZ2V0X3Jlc3VsdCgpYGApLiIiIgotICAgICAgICBt
c2cgPSAnVXNlIGdldF9yZXN1bHQoKSB3aGljaCBmb3JjZXMgY29ycmVjdCBleGNlcHRpb24gaGFu
ZGxpbmcnCi0gICAgICAgIHdhcm5pbmdzLndhcm4oRGVwcmVjYXRpb25XYXJuaW5nKG1zZyksIHN0
YWNrbGV2ZWw9MikKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdAotCi0gICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIGZyb21fY2FsbChjbHMsIGZ1bmMpOgotICAgICAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IFRydWUKLSAgICAgICAgcmVzdWx0ID0gZXhjaW5mbyA9IE5vbmUKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgcmVzdWx0ID0gZnVuYygpCi0gICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0
aW9uOgotICAgICAgICAgICAgZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCi0KLSAgICAgICAgcmV0
dXJuIGNscyhyZXN1bHQsIGV4Y2luZm8pCi0KLSAgICBkZWYgZm9yY2VfcmVzdWx0KHNlbGYsIHJl
c3VsdCk6Ci0gICAgICAgICIiIkZvcmNlIHRoZSByZXN1bHQocykgdG8gYGByZXN1bHRgYC4KLQot
ICAgICAgICBJZiB0aGUgaG9vayB3YXMgbWFya2VkIGFzIGEgYGBmaXJzdHJlc3VsdGBgIGEgc2lu
Z2xlIHZhbHVlIHNob3VsZAotICAgICAgICBiZSBzZXQgb3RoZXJ3aXNlIHNldCBhIChtb2RpZmll
ZCkgbGlzdCBvZiByZXN1bHRzLiBBbnkgZXhjZXB0aW9ucwotICAgICAgICBmb3VuZCBkdXJpbmcg
aW52b2NhdGlvbiB3aWxsIGJlIGRlbGV0ZWQuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9y
ZXN1bHQgPSByZXN1bHQKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IE5vbmUKLQotICAgIGRlZiBn
ZXRfcmVzdWx0KHNlbGYpOgotICAgICAgICAiIiJHZXQgdGhlIHJlc3VsdChzKSBmb3IgdGhpcyBo
b29rIGNhbGwuCi0KLSAgICAgICAgSWYgdGhlIGhvb2sgd2FzIG1hcmtlZCBhcyBhIGBgZmlyc3Ry
ZXN1bHRgYCBvbmx5IGEgc2luZ2xlIHZhbHVlCi0gICAgICAgIHdpbGwgYmUgcmV0dXJuZWQgb3Ro
ZXJ3aXNlIGEgbGlzdCBvZiByZXN1bHRzLgotICAgICAgICAiIiIKLSAgICAgICAgX190cmFjZWJh
Y2toaWRlX18gPSBUcnVlCi0gICAgICAgIGlmIHNlbGYuX2V4Y2luZm8gaXMgTm9uZToKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4
ID0gc2VsZi5fZXhjaW5mbwotICAgICAgICAgICAgaWYgX3B5MzoKLSAgICAgICAgICAgICAgICBy
YWlzZSBleFsxXS53aXRoX3RyYWNlYmFjayhleFsyXSkKLSAgICAgICAgICAgIF9yZXJhaXNlKCpl
eCkgICMgbm9xYQotCi0KLWRlZiBfd3JhcHBlZF9jYWxsKHdyYXBfY29udHJvbGxlciwgZnVuYyk6
Ci0gICAgIiIiIFdyYXAgY2FsbGluZyB0byBhIGZ1bmN0aW9uIHdpdGggYSBnZW5lcmF0b3Igd2hp
Y2ggbmVlZHMgdG8geWllbGQKLSAgICBleGFjdGx5IG9uY2UuICBUaGUgeWllbGQgcG9pbnQgd2ls
bCB0cmlnZ2VyIGNhbGxpbmcgdGhlIHdyYXBwZWQgZnVuY3Rpb24KLSAgICBhbmQgcmV0dXJuIGl0
cyBgYF9SZXN1bHRgYCB0byB0aGUgeWllbGQgcG9pbnQuICBUaGUgZ2VuZXJhdG9yIHRoZW4gbmVl
ZHMKLSAgICB0byBmaW5pc2ggKHJhaXNlIFN0b3BJdGVyYXRpb24pIGluIG9yZGVyIGZvciB0aGUg
d3JhcHBlZCBjYWxsIHRvIGNvbXBsZXRlLgotICAgICIiIgotICAgIHRyeToKLSAgICAgICAgbmV4
dCh3cmFwX2NvbnRyb2xsZXIpICAgIyBmaXJzdCB5aWVsZAotICAgIGV4Y2VwdCBTdG9wSXRlcmF0
aW9uOgotICAgICAgICBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVyLCAiZGlkIG5vdCB5
aWVsZCIpCi0gICAgY2FsbF9vdXRjb21lID0gX1Jlc3VsdC5mcm9tX2NhbGwoZnVuYykKLSAgICB0
cnk6Ci0gICAgICAgIHdyYXBfY29udHJvbGxlci5zZW5kKGNhbGxfb3V0Y29tZSkKLSAgICAgICAg
X3JhaXNlX3dyYXBmYWlsKHdyYXBfY29udHJvbGxlciwgImhhcyBzZWNvbmQgeWllbGQiKQotICAg
IGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICBwYXNzCi0gICAgcmV0dXJuIGNhbGxfb3V0
Y29tZS5nZXRfcmVzdWx0KCkKLQotCi1jbGFzcyBfTGVnYWN5TXVsdGlDYWxsKG9iamVjdCk6Ci0g
ICAgIiIiIGV4ZWN1dGUgYSBjYWxsIGludG8gbXVsdGlwbGUgcHl0aG9uIGZ1bmN0aW9ucy9tZXRo
b2RzLiAiIiIKLQotICAgICMgWFhYIG5vdGUgdGhhdCB0aGUgX19tdWx0aWNhbGxfXyBhcmd1bWVu
dCBpcyBzdXBwb3J0ZWQgb25seQotICAgICMgZm9yIHB5dGVzdCBjb21wYXRpYmlsaXR5IHJlYXNv
bnMuICBJdCB3YXMgbmV2ZXIgb2ZmaWNpYWxseQotICAgICMgc3VwcG9ydGVkIHRoZXJlIGFuZCBp
cyBleHBsaWNpdGVseSBkZXByZWNhdGVkIHNpbmNlIDIuOAotICAgICMgc28gd2UgY2FuIHJlbW92
ZSBpdCBzb29uLCBhbGxvd2luZyB0byBhdm9pZCB0aGUgYmVsb3cgcmVjdXJzaW9uCi0gICAgIyBp
biBleGVjdXRlKCkgYW5kIHNpbXBsaWZ5L3NwZWVkIHVwIHRoZSBleGVjdXRlIGxvb3AuCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgaG9va19pbXBscywga3dhcmdzLCBmaXJzdHJlc3VsdD1GYWxz
ZSk6Ci0gICAgICAgIHNlbGYuaG9va19pbXBscyA9IGhvb2tfaW1wbHMKLSAgICAgICAgc2VsZi5j
YWxsZXJfa3dhcmdzID0ga3dhcmdzICAjIGNvbWUgZnJvbSBfSG9va0NhbGxlci5fX2NhbGxfXygp
Ci0gICAgICAgIHNlbGYuY2FsbGVyX2t3YXJnc1siX19tdWx0aWNhbGxfXyJdID0gc2VsZgotICAg
ICAgICBzZWxmLmZpcnN0cmVzdWx0ID0gZmlyc3RyZXN1bHQKLQotICAgIGRlZiBleGVjdXRlKHNl
bGYpOgotICAgICAgICBjYWxsZXJfa3dhcmdzID0gc2VsZi5jYWxsZXJfa3dhcmdzCi0gICAgICAg
IHNlbGYucmVzdWx0cyA9IHJlc3VsdHMgPSBbXQotICAgICAgICBmaXJzdHJlc3VsdCA9IHNlbGYu
Zmlyc3RyZXN1bHQKLQotICAgICAgICB3aGlsZSBzZWxmLmhvb2tfaW1wbHM6Ci0gICAgICAgICAg
ICBob29rX2ltcGwgPSBzZWxmLmhvb2tfaW1wbHMucG9wKCkKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBhcmdzID0gW2NhbGxlcl9rd2FyZ3NbYXJnbmFtZV0gZm9yIGFyZ25hbWUg
aW4gaG9va19pbXBsLmFyZ25hbWVzXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAg
ICAgICAgICAgICAgIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1lczoKLSAgICAgICAg
ICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJnczoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEhvb2tDYWxsRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImhvb2sgY2FsbCBtdXN0IHByb3ZpZGUgYXJndW1lbnQgJXIiICUgKGFyZ25hbWUsKSkK
LSAgICAgICAgICAgIGlmIGhvb2tfaW1wbC5ob29rd3JhcHBlcjoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gX3dyYXBwZWRfY2FsbChob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpLCBzZWxmLmV4ZWN1
dGUpCi0gICAgICAgICAgICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpCi0gICAgICAg
ICAgICBpZiByZXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgZmlyc3RyZXN1bHQ6
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMKLSAgICAgICAgICAgICAgICByZXN1bHRz
LmFwcGVuZChyZXMpCi0KLSAgICAgICAgaWYgbm90IGZpcnN0cmVzdWx0OgotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdHMKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgc3RhdHVz
ID0gIiVkIG1ldGhzIiAlIChsZW4oc2VsZi5ob29rX2ltcGxzKSwpCi0gICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgInJlc3VsdHMiKToKLSAgICAgICAgICAgIHN0YXR1cyA9ICgiJWQgcmVzdWx0cywg
IiAlIGxlbihzZWxmLnJlc3VsdHMpKSArIHN0YXR1cwotICAgICAgICByZXR1cm4gIjxfTXVsdGlD
YWxsICVzLCBrd2FyZ3M9JXI+IiAlIChzdGF0dXMsIHNlbGYuY2FsbGVyX2t3YXJncykKLQotCi1k
ZWYgX2xlZ2FjeW11bHRpY2FsbChob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBmaXJzdHJlc3Vs
dD1GYWxzZSk6Ci0gICAgcmV0dXJuIF9MZWdhY3lNdWx0aUNhbGwoCi0gICAgICAgIGhvb2tfaW1w
bHMsIGNhbGxlcl9rd2FyZ3MsIGZpcnN0cmVzdWx0PWZpcnN0cmVzdWx0KS5leGVjdXRlKCkKLQot
Ci1kZWYgX211bHRpY2FsbChob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBmaXJzdHJlc3VsdD1G
YWxzZSk6Ci0gICAgIiIiRXhlY3V0ZSBhIGNhbGwgaW50byBtdWx0aXBsZSBweXRob24gZnVuY3Rp
b25zL21ldGhvZHMgYW5kIHJldHVybiB0aGUKLSAgICByZXN1bHQocykuCi0KLSAgICBgYGNhbGxl
cl9rd2FyZ3NgYCBjb21lcyBmcm9tIF9Ib29rQ2FsbGVyLl9fY2FsbF9fKCkuCi0gICAgIiIiCi0g
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgcmVzdWx0cyA9IFtdCi0gICAgZXhjaW5m
byA9IE5vbmUKLSAgICB0cnk6ICAjIHJ1biBpbXBsIGFuZCB3cmFwcGVyIHNldHVwIGZ1bmN0aW9u
cyBpbiBhIGxvb3AKLSAgICAgICAgdGVhcmRvd25zID0gW10KLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZm9yIGhvb2tfaW1wbCBpbiByZXZlcnNlZChob29rX2ltcGxzKToKLSAgICAgICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBbY2FsbGVyX2t3YXJnc1thcmdu
YW1lXSBmb3IgYXJnbmFtZSBpbiBob29rX2ltcGwuYXJnbmFtZXNdCi0gICAgICAgICAgICAgICAg
ZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgICAgICBmb3IgYXJnbmFtZSBpbiBob29r
X2ltcGwuYXJnbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBp
biBjYWxsZXJfa3dhcmdzOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEhvb2tD
YWxsRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob29rIGNhbGwgbXVz
dCBwcm92aWRlIGFyZ3VtZW50ICVyIiAlIChhcmduYW1lLCkpCi0KLSAgICAgICAgICAgICAgICBp
ZiBob29rX2ltcGwuaG9va3dyYXBwZXI6Ci0gICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGdlbiA9IGhvb2tfaW1wbC5mdW5jdGlvbigqYXJncykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG5leHQoZ2VuKSAgICMgZmlyc3QgeWllbGQKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHRlYXJkb3ducy5hcHBlbmQoZ2VuKQotICAgICAgICAgICAgICAgICAgICBl
eGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgICAgIF9yYWlzZV93cmFw
ZmFpbChnZW4sICJkaWQgbm90IHlpZWxkIikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICByZXMgPSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpCi0gICAgICAgICAg
ICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdHMuYXBwZW5kKHJlcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZpcnN0cmVzdWx0
OiAgIyBoYWx0IGZ1cnRoZXIgaW1wbCBjYWxscwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgotICAgICAgICAgICAgZXhjaW5m
byA9IHN5cy5leGNfaW5mbygpCi0gICAgZmluYWxseToKLSAgICAgICAgaWYgZmlyc3RyZXN1bHQ6
ICAjIGZpcnN0IHJlc3VsdCBob29rcyByZXR1cm4gYSBzaW5nbGUgdmFsdWUKLSAgICAgICAgICAg
IG91dGNvbWUgPSBfUmVzdWx0KHJlc3VsdHNbMF0gaWYgcmVzdWx0cyBlbHNlIE5vbmUsIGV4Y2lu
Zm8pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvdXRjb21lID0gX1Jlc3VsdChyZXN1bHRz
LCBleGNpbmZvKQotCi0gICAgICAgICMgcnVuIGFsbCB3cmFwcGVyIHBvc3QteWllbGQgYmxvY2tz
Ci0gICAgICAgIGZvciBnZW4gaW4gcmV2ZXJzZWQodGVhcmRvd25zKToKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBnZW4uc2VuZChvdXRjb21lKQotICAgICAgICAgICAgICAgIF9y
YWlzZV93cmFwZmFpbChnZW4sICJoYXMgc2Vjb25kIHlpZWxkIikKLSAgICAgICAgICAgIGV4Y2Vw
dCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICByZXR1cm4g
b3V0Y29tZS5nZXRfcmVzdWx0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZmQwZDVhMDkzN2Q4MmU2ZTIzN2E1NmYxZjNiY2YyMTRkY2Vj
MmUyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9wbHVnZ3kvY2FsbGVycy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2NyaXB0cy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmYjljN2RhMDZhYWVkMGEwODczOWFiNDMxNjkzNjY2YzVm
YzllMjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvc2NyaXB0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NjcmlwdHMvcmVsZWFzZS5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Ny
Yy9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlm
MzU1OTBlYTljYmM3YjkwYWM2YWZhZWZjNWI2MGMzODcyOGFlOTIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3NyYy9wbHVnZ3kvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zcmMvcGx1Z2d5L190
cmFjaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc3JjL3BsdWdneS9jYWxsZXJzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvc3JjL3BsdWdneS9ob29rcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NyYy9wbHVnZ3kvbWFuYWdlci5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg5NmExYmZjMjRmMjIzZTBjNTgxMGRlMjYyOWU0ZGEzMjk1ODFjNGQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3Rlc3RpbmcvYmVuY2htYXJrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9jb25m
dGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXByZWNhdGlvbnMucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS90ZXN0aW5nL3Rlc3RfZGV0YWlscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVz
dF9oZWxwZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2hvb2tjYWxsZXIucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaW52b2NhdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0
aW5nL3Rlc3RfbXVsdGljYWxsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3BsdWdpbm1h
bmFnZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfdHJhY2VyLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzEwNTNhZTY0OWVhMzgwZWFhOGMzYjI4
NTc1MTkwOTJjMzhlNTgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjYg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvQ0hBTkdFTE9HLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L0hPV1RPUkVMRUFTRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFO
SUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3Iu
eW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvcHlwcm9qZWN0LnRvbWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5jZmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5pbmkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvLmdpdGF0dHJpYnV0ZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5naXRhdHRyaWJ1dGVzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyNDY4NzljNGRhYWM4MmFiZTU1NDA5MGU2MGUxMWZjMjI1MmYzM2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5Ly5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEgQEAKKyouZHVtcCAgIGVv
bD1sZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0aWdub3Jl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjViYjBkNDU3ZDQ5OGM1OTI4ZTFkMDgxN2JmMjRhNDVkN2YwNDgyMjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5naXRpZ25vcmUKQEAgLTAsMCArMSwxMiBAQAorCisu
Y2FjaGUvCisudG94LworX19weWNhY2hlX18vCisKKyoucHljCisqLnB5bworCisqLmVnZy1pbmZv
CisuZWdncy8KKworZGlzdC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5oZ2lnbm9yZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvLmhnaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0OTc2ZGE1ZDE1MzM1Yzc5ZDRiN2JhNjRmOTQxOTlm
OTUyYzE2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5oZ2lnbm9yZQpAQCAtMCwwICsx
LDI5IEBACisKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYGhnaW1wb3J0c3ZuYAorc3lu
dGF4Omdsb2IKKy5zdm4KKy5oZ3N2bgorCisjIFRoZXNlIGxpbmVzIGFyZSBzdWdnZXN0ZWQgYWNj
b3JkaW5nIHRvIHRoZSBzdm46aWdub3JlIHByb3BlcnR5CisjIEZlZWwgZnJlZSB0byBlbmFibGUg
dGhlbSBieSB1bmNvbW1lbnRpbmcgdGhlbQorc3ludGF4Omdsb2IKKyoucHljCisqLnB5bworKi5z
d3AKKyouaHRtbAorKi5jbGFzcworKi5vcmlnCisqfgorCitkb2MvX2J1aWxkCitidWlsZC8KK2Rp
c3QvCisqLmVnZy1pbmZvCitpc3N1ZS8KK2Vudi8KKzNyZHBhcnR5LworLnRveAorbGliLworYmlu
LworaW5jbHVkZS8KK3NyYy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLmhndGFncyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
LmhndGFncwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZDQ4MDk1YmY2NDc3YzI2MTcxMDNjNWZhNGJhMTI1YTM3YWY5
ZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uaGd0YWdzCkBAIC0wLDAgKzEsNjggQEAK
KzUyYzZkOWU3ODc3N2E1YTM0ZTgxMzEyMzk5N2RmYzYxNGExYTQ3NjcgMS4wLjBiMworMWM3YWFh
OGM2MWYzYjA5NDU5MjFhOWFjYzdiZWIxODQyMDFhZWQ0YiAxLjAuMGI0CisxYzdhYWE4YzYxZjNi
MDk0NTkyMWE5YWNjN2JlYjE4NDIwMWFlZDRiIDEuMC4wYjQKKzAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAgMS4wLjBiNAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMCAxLjAuMGI0Cis4Y2Q2ZWI5MWViYTMxM2IwMTJkNmU1NjhmMzdkODQ0ZGMw
NzUxZjJlIDEuMC4wYjQKKzhjZDZlYjkxZWJhMzEzYjAxMmQ2ZTU2OGYzN2Q4NDRkYzA3NTFmMmUg
MS4wLjBiNAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxLjAuMGI0
CisyY2MwNTA3ZjExN2ZmZTcyMWRmZjdlZTAyNjY0OGNmY2UwMGVjOTJmIDEuMC4wYjYKKzg2ZjFl
MWI2ZTQ5YmY1ODgyYTgwOWYxMWVkZDFkYmIwODE2MmNkYWQgMS4wLjBiOAorODZmMWUxYjZlNDli
ZjU4ODJhODA5ZjExZWRkMWRiYjA4MTYyY2RhZCAxLjAuMGI4CitjNjNmMzVjMjY2Y2JiMjZkYWQ2
Yjg3YjVlMTE1ZDY1Njg1YWRmNDQ4IDEuMC4wYjgKK2M2M2YzNWMyNjZjYmIyNmRhZDZiODdiNWUx
MTVkNjU2ODVhZGY0NDggMS4wLjBiOAorMGVhYTBmZGYyYmEwMTYzY2Y1MzRkYzJlZmY0YmEyZTVm
YzY2YzI2MSAxLjAuMGI4CitlMmE2MDY1M2NiNDkwYWVlZDgxYmJiZDgzYzA3MGI5OTQwMWMyMTFj
IDEuMC4wYjkKKzVlYTBjZGY3ODU0YzNkNDI3OGQzNmVkYTk0YTJiNjg0ODNhMGUyMTEgMS4wLjAK
KzVlYTBjZGY3ODU0YzNkNDI3OGQzNmVkYTk0YTJiNjg0ODNhMGUyMTEgMS4wLjAKKzdhY2RlMzYw
ZDk0YjZhMjY5MGNlM2QwM2ZmMzkzMDFkYTg0YzBhMmIgMS4wLjAKKzZiZDIyMTk4MWFjOTkxMDMw
MDJjMWNiOTRmZWRlNDAwZDIzYTk2YTEgMS4wLjEKKzQ4MTZlOGI4MDYwMmEzZmQzYTBhMTIwMzMz
YWQ4NWZiZTdkOGJhYjQgMS4wLjIKKzYwYzQ0YmRiZjA5MzI4NWRjNjlkNTQ2MmQ0ZGJiNGFjYWQz
MjVjYTYgMS4xLjAKKzMxOTE4N2ZjZGE2NjcxNGM1ZWIxMzUzNDkyYmFiZWVjM2QzYzgyNmYgMS4x
LjEKKzRmYzUyMTJmNzYyNmE1NmI5ZWI2NDM3YjVjNjczZjU2ZGQ3ZWI5NDIgMS4yLjAKK2MxNDNh
OGM4ODQwYTFjNjg1NzA4OTBjOGFjNjE2NWJiZjkyZmQzYzYgMS4yLjEKK2VhZmQzYzI1NmU4NzMy
ZGZiMGE0ZDQ5ZDA1MWI1YjQzMzk4NTg5MjYgMS4zLjAKK2Q1ZWFjZjM5MGFmNzQ1NTMyMjcxMjJi
ODVlMjAzNDVkNDdiMmY5ZTYgMS4zLjEKK2Q1ZWFjZjM5MGFmNzQ1NTMyMjcxMjJiODVlMjAzNDVk
NDdiMmY5ZTYgMS4zLjEKKzhiOGU3YzI1YTEzY2Y4NjNmMDFiMmRkOTU1OTc4Mjg1YWU5ZGFmNmEg
MS4zLjEKKzNiZmY0NGIxODhhN2VjMWFmMzI4ZDk3N2I5ZDM5YjY3NTdiYjM4ZGYgMS4zLjIKK2M1
OWQzZmE4NjgxYTViNTk2NmI4Mzc1YjE2ZmNjZDY0YTNhOGRiZWIgMS4zLjMKKzc5ZWY2Mzc3NzA1
MTg0YzU1NjMzZDQ1NjgzMmVlYTMxOGZlZGNmNjEgMS4zLjQKKzc5ZWY2Mzc3NzA1MTg0YzU1NjMz
ZDQ1NjgzMmVlYTMxOGZlZGNmNjEgMS4zLjQKKzkwZmZmZDM1MzczZTlmMTI1YWYyMzNmNzhiMTk0
MTZmMDkzOGQ4NDEgMS4zLjQKKzUzNDZhYjQxYjA1OWM5NWE0OGNiZTFlOGE3YmFlOTZjZTZlMGRh
MjcgMS40LjAKKzFmMzEyNWNiYTc5NzY1Mzg5NTJiZTI2OGYxMDdjMWQwYzM2YzVjZTggMS40LjEK
KzA0YWIyMmRiNGZmNzM3Y2YzMWU5MWQ3NWEwZjVkNzA3N2YzMjQxNjcgMS40LjIKKzk5NTBiZjlk
Njg0YTk4NGQ1MTE3OTUwMTM0MjFjODljNWNmODhiZWYgMS40LjMKK2Q5OTUxZTNiZGJjNzY1ZTcz
ODM1YWUxMzAxMmY2YTA3NGQxM2Q4YmYgMS40LjQKK2I4MjdkZDE1NmEzNjc1M2UzMmM3ZjNmMTVj
ZTgyZDZmZTllMzU2YzggMS40LjYKK2YxNTcyNmY5ZTVhNjdjYzYyMjFjNDk5YWZmYTQ4NDBlOWQ1
OTE3NjMgMS40LjcKK2FiZmFiZDA3YTFkMzI4ZjEzYzczMGU4YTUwZDgwZDJlNDcwYWZkM2IgMS40
LjkKKzdmMzdlZTBhZmY5YmU0YjgzOWQ2NzU5Y2ZlZTMzNmY2MGU4MzkzYTQgMS40LjEwCitmZTQ1
OTMyNjNlZmExMGVhN2JhMDE0ZGI2ZTMzNzllMGI4MjM2OGEyIDEuNC4xMQorZjA3YWYyNWEyNjc4
NmU0ODI1YjUxNzBlMTdhZDY5MzI0NWNiMzQyNiAxLjQuMTIKK2QzNzMwZDg0YmE3ZWRhOTJmZDM0
NjlhM2Y2M2ZkNmQ4Y2IyMmM5NzUgMS40LjEzCisxMmMxYWU4ZTdjNTM0NTcyMWU5ZWM5ZjhlMjdi
MWUzNmMwN2Y3NGRjIDEuNC4xNAorMTJjMWFlOGU3YzUzNDU3MjFlOWVjOWY4ZTI3YjFlMzZjMDdm
NzRkYyAxLjQuMTQKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMS40
LjE0CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEuNC4xNAorMTQ5
N2UyZWZkMGY4YzczYTBlM2Q1MjlkZWJmMGM0ODllNGNkNmNhYiAxLjQuMTQKK2UwNjUwMTRjMWNl
OGFkMTEwYTM4MWU5YmFhYWE1ZDY0N2JhN2FjNmIgMS40LjE1CitlOWU1YjM4ZjUzZGMzNWIzNWFh
MWY5ZWU5YTliZTliYmQyZDJjM2IxIDEuNC4xNgorYzYwMzUwMzk0NWY1MmI3ODUyMmQ5NmE0MjM2
MDVjYmM5NTMyMzZkMyAxLjQuMTcKK2M1OTIwMTEwNWEyOTgwMWNjODU4ZWI5MTYwYjdhMTk3OTFi
OTFhMzUgMS40LjE4CisyODRjYzE3MmUyOTRkNDhlZGM4NDAwMTJlMTQ1MWMzMmMzOTYzZDkyIDEu
NC4xOQorYTNlMDYyNmFhMGM1YWVjZjI3MTM2N2RjNzdlNDc2YWIyMTZlYTNjOCAxLjQuMjAKKzVl
NDgwMTZjNGEzYWY4ZTczNThhMTI2N2QzM2QwMjFlNzE3NjViZWQgMS40LjIxCiswMWFlMmNmY2M2
MWM0ZmNiM2FhNTAzMTM0OWFkYjViNDY3YzMxMDE4IDEuNC4yMworNWZmZDk4MmY0ZGZmNjBiNTg4
ZjMwOWNkOWJkYzYxMDM2NTQ3MjgyYSAxLjQuMjQKK2RjOWZmYmNhZjFmN2Q3MmU5NmJlM2Y2OGMx
MWRlZWJiN2U3MTkzYzUgMS40LjI1Cis2ZGUxYTQ0YmY3NWRlN2FmNGZjYWU5NDdjMjM1ZTkwNzJi
YmRiYjlhIDEuNC4yNgorN2Q2NTBiYTI2NTc4OTBhMjI1M2M4YzRhODNmMTcwZmViZWJkOTBmYSAx
LjQuMjcKKzdkNjUwYmEyNjU3ODkwYTIyNTNjOGM0YTgzZjE3MGZlYmViZDkwZmEgMS40LjI3Cisx
ODEwMDAzZGVjNjNkZDFiNTA2YTIzODQ5ODYxZmZmYTViYzNiYTEzIDEuNC4yNworYmEwODcwNmYw
OGRkZWExYjc3YTQyNmYwMGRmZTJiZGMyNDQzNDVlOCAxLjQuMjgKKzRlODA1NGFkYTYzZjMzMjdi
Y2Y3NTlhZTdjZDM2YzdjODY1MmJjOWIgMS40LjI5CiszNjZhYjM0NjYxMGM2ZGU4YWFhNzYxN2Uy
NDAxMTc5NGI0MDIzNmM2IDEuNC4zMAorNjU3MzgwZTQzOWY5YjdlMDQ5MThjYjE2MmNiMmU0NjM4
ODI0NGI0MiAxLjQuMzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLnRyYXZpcy55bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
Ly50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxN2M1OWQxNGI3MDczOWJkYzA0MjI1M2I1M2MxMzBk
OTc3MjkxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly50cmF2aXMueW1sCkBAIC0wLDAg
KzEsMjcgQEAKK3N1ZG86IGZhbHNlCitsYW5ndWFnZTogcHl0aG9uCitweXRob246CistICcyLjcn
CistICczLjQnCistICczLjUnCistICczLjYnCistICdweXB5LTUuNCcKK2VudjoKKy0gREVQUz0i
cHl0ZXN0fj0yLjkuMCIKKy0gREVQUz0icHl0ZXN0fj0zLjAuMCIKKyMtIERFUFM9InB5dGVzdH49
My4xLjAiCisKK21hdHJpeDoKKworICBpbmNsdWRlOgorICAtIHB5dGhvbjogJzIuNycKKyAgICAj
IHVzaW5nIGEgZGlmZmVyZW50IG9wdGlvbiBkdWUgdG8gcHl0ZXN0LWFkZG9wdHMgcHl0ZXN0ZXIg
aXNzdWVzCisgICAgZW52OiBQWVRFU1RfWEFERE9QVFM9Ii1uIDMgLS1ydW5zbG93dGVzdHMiIERF
UFM9InB5dGVzdH49My4wLjAgcHl0ZXN0LXhkaXN0IgorICBhbGxvd19mYWlsdXJlczoKKyAgLSBw
eXRob246ICdweXB5LTUuNCcKK2luc3RhbGw6CistIHBpcCBpbnN0YWxsIC1VIHNldHVwdG9vbHMg
c2V0dXB0b29sc19zY20KKy0gcGlwIGluc3RhbGwgJERFUFMKKy0gcGlwIGluc3RhbGwgLVUgLiAt
LWZvcmNlLXJlaW5zdGFsbAorc2NyaXB0OgorLSBweS50ZXN0IC0tbHNvZiAkUFlURVNUX1hBRERP
UFRTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0NIQU5HRUxPRyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdFTE9HCmlu
ZGV4IDdlN2IwMWIwYjllM2MyYjAyZDM0MGVjMzIwZTJmZDFjODY4Y2Q3Y2EuLmMxMTVlMDczMzYx
NzIxZWMzZDBhMDA3NWZkMDg2ODFlZjYzMjY3ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdF
TE9HCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdFTE9HCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjItMDItMTEg
IEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBz
aG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgorICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BT
ISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiAu
Z2l0YXR0cmlidXRlczogQWRkZWQuCisgICAgICAgICogLmdpdGlnbm9yZTogQWRkZWQuCisgICAg
ICAgICogLmhnaWdub3JlOiBBZGRlZC4KKyAgICAgICAgKiAuaGd0YWdzOiBBZGRlZC4KKyAgICAg
ICAgKiAudHJhdmlzLnltbDogQWRkZWQuCisgICAgICAgICogYmVuY2gvdzNjLWltcG9ydC5sb2c6
IFJlbW92ZWQuCisgICAgICAgICogZG9jL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2c6IFJlbW92
ZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAg
ICAgICAqIGRvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIGRv
Yy9pbWcvdzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogZG9jL3czYy1pbXBvcnQu
bG9nOiBSZW1vdmVkLgorICAgICAgICAqIHB5L19jb2RlL3czYy1pbXBvcnQubG9nOiBSZW1vdmVk
LgorICAgICAgICAqIHB5L19pby93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
eS9fbG9nL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHB5L19wYXRoL3czYy1p
bXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHB5L19wcm9jZXNzL3czYy1pbXBvcnQubG9n
OiBSZW1vdmVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weToK
KyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNj
LWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2lu
aWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAg
ICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAg
ICAqIHB5L3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHRhc2tzL3czYy1pbXBv
cnQubG9nOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZzog
UmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5nL2lvXy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4K
KyAgICAgICAgKiB0ZXN0aW5nL2xvZy9fX2luaXRfXy5weToKKyAgICAgICAgKiB0ZXN0aW5nL2xv
Zy93M2MtaW1wb3J0LmxvZzogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdzNjLWlt
cG9ydC5sb2c6IFJlbW92ZWQuCisgICAgICAgICogdGVzdGluZy9wcm9jZXNzL3czYy1pbXBvcnQu
bG9nOiBSZW1vdmVkLgorICAgICAgICAqIHRlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZzogUmVt
b3ZlZC4KKyAgICAgICAgKiB0ZXN0aW5nL3czYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorICAgICAg
ICAqIHczYy1pbXBvcnQubG9nOiBSZW1vdmVkLgorCiAxLjUuMgogPT09PT0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9iZW5jaC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZmFkZjAyZjQ3YzZlMmMxZTMx
NDYxZWQ1ZjhjODNhNzhkZmVlMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9iZW5jaC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvbG9jYWxwYXRoLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTU5NWZiNWUyNDkzNzY2NTQ0NWQzYmY5ZTIwMTIzYTAxZjA3YTUxYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMyMjA5YzZhMjllNjQ1ZTAz
MmUwZDRiMWYyN2U4MjY2NmNmOThmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3Jl
bGVhc2UtMC45LjAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMi50eHQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4wLnR4dAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS4wLjEudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0x
LjAuMi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMS4wLnR4dAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjEudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZS0xLjIuMC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMi4xLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjAudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMy4yLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjMudHh0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuNC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuNC4wLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjEu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZXMudHh0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcxZGNmMmMyMGMzYzk2
YmQ0ZTlmOGFiODI3NDZiNzQ1ZDUwNzQwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9n
ZW5odG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9nZW5odG1sY3NzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvZXhhbXBsZS9nZW54bWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggM2U4OWE2NmU4MGQ2ZWUzYTU1ZGJiNWRkYzQwYThlZDM5MGMwMWRkOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9pbWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9pbWcvcHlsaWIucG5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiM2FmMDU1YmY4NGFlNzE0ODJhMGJiZDA0NDIxOGViNDk3NTI5ZDg5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
ZG9jL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9jaGFuZ2Vsb2cudHh0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvY29kZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZG93
bmxvYWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ZhcS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbmRleC50eHQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9pbnN0YWxsLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2lvLnR4dAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
ZG9jL2xpbmtzLmluYwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xvZy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9taXNjLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL3BhdGgudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mvc3R5bGUuY3NzCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MveG1sLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2NvZGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdiYTFhZDJjZWE2YmU4OGY1ZWRhMjFjYWRmMDEwYjU0NTQzYjc4MTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29k
ZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2NvZGUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19hc3NlcnRp
b25uZXcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19hc3NlcnRpb25vbGQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L19jb2RlL19weTJ0cmFjZWJhY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL2Fzc2VydGlvbi5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2NvZGUvY29kZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvc291cmNlLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lv
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTQ0Mzk3MzYw
OThhNWU3NWU5NTkzOTFkMGYzZjUyOGQ3ZTM1ODQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19pby9jYXB0dXJlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vc2FmZXJl
cHIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19pby90ZXJtaW5hbHdyaXRlci5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzJiMjQyZWRkN2YzMzIzNmY3Mjhj
NzZkMzBlYmFiZmFmM2NkMzhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX2xvZy9sb2cucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvd2FybmluZy5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fcGF0aC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZWMyZjkyM2Zh
ZGE5ZmEwYjJmYjU4ZGUzMTkzY2ViM2FkMjllOTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2NhY2hldXRpbC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Bh
dGgvY29tbW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9sb2NhbC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Bh
dGgvc3ZudXJsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9zdm53Yy5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNTQ1NjcwZjJlOThm
ZDA5OGYwMjNhZTk2MWUyN2UwNDZmOGM0MWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3Mv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2NtZGV4ZWMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L19wcm9jZXNzL2ZvcmtlZGZ1bmMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2tpbGxwcm9jLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0Yjgy
ODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlh
ZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2th
Z2VzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5p
dF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24g
dG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBr
Zy0xLjQuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFj
a2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY3NzZlZmM3ODFjOWU5MDZhMTBmMmZlY2Y1MWU0MmYzMWRmZjkwODMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5k
b3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9JTlNUQUxMRVIK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9NRVRB
REFUQQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZv
L1JFQ09SRAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1p
bmZvL1dIRUVMCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0
LWluZm8vbWV0YWRhdGEuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBr
Zy0xLjQuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZv
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmRmZWFkZGUw
YzYyMmNmNWFmYzQzZDUzMWRjZDE3NTg0NDMzYmQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNv
bmZpZy0xLjAuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25m
aWctMS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVk
X3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vSU5TVEFMTEVSCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8v
UkVDT1JECi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRp
c3QtaW5mby9XSEVFTAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0x
LjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2th
Z2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjI3NzJhNzlkMDMxNDMzNDA0MGQwN2VkMjQ1YTZhYzIxZWE4OGJlYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5k
b3JlZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjQyYTMwY2QwMGRmYzE3YjY0ZjdiNzVmYjQyMTU4ZmI4YWY4ZTQ1MS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19tZXRhaW5mby5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
cHkvX2J1aWx0aW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19lcnJvci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3N0ZC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3htbGdlbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvdGVzdC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90YXNrcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3MvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlOGQyNDJmNTg0NzJlOWZkMGEw
OGYyNjU3MWJiMzQ3OTYwZGNhNWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3MvX19pbml0X18ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rhc2tzL3ZlbmRvcmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJjMzg0OTE5YWIxYmQ5Zjc3NTU3MDEzMDk2MmQ3
M2E4ODk4MTE0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfYXNzZXJ0aW9u
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2NvZGUvdGVzdF9leGNpbmZvLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2Uu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvaW9fL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4N2MzNmMxZjg1ZGEyYmI0OTQ4YjAzNjNmZGU3NDRkZGRkMWU5NzFmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18v
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3RpbmcvaW9fL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0
X2NhcHR1cmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3Rfc2FmZXJlcHIucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL19faW5pdF9f
LnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9sb2cvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2luaXRf
Xy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRv
IHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL2xvZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGMwY2E1MjgzMzhjMWU5OWE1ZTdlYjNkMjViZTEyYWE0OWY1ZjNkZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcv
bG9nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cv
dGVzdF9sb2cucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rp
bmcvcGF0aC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2
ZDdiMTc4MDJlMjkzMTI2ZmEyNDQ5YzNlYWI2ODU4ZGY5YzRiMi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9wYXRoL2NvbW1vbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL2NvbmZ0ZXN0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvcmVwb3Rlc3QuZHVtcAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9w
YXRoL3N2bnRlc3RiYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9jYWNoZXV0aWwu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2xvY2FsLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3BhdGgvdGVzdF9zdm5hdXRoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm51cmwu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9j
ZXNzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzFmODll
NGFjZmVlMzZhZTIzYTBkYjZjMzYzODFjNTNiNjI2MjJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
ZXN0aW5nL3Byb2Nlc3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0
X2NtZGV4ZWMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2ZvcmtlZGZ1bmMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2tpbGxwcm9jLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzMyZTU1NDUw
YmJhMjMzZTE2ZTBiZGYyODM1N2JiOGZlMThjNDM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3Jvb3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X2J1aWx0aW4ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X2Vycm9yLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jv
b3QvdGVzdF9weV9pbXBvcnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9zdGQucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3htbGdlbi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWViOTQ0Zjc0MmM0MDZjNTBjOWNhYTNl
N2QzMjA4MjRjYjlmMDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb25mdGVzdC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxNTdkMjlhYjdmMjNlODgzY2Y3NWJhOWFlMjIz
OWVkZTgxNmE4ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvQVVUSE9SUwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdFTE9HCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9M
SUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvUkVBRE1FLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvYXBwdmV5b3IueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAuY2Zn
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdnLWluZm8vdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMDQ0YThlNmQ4YjEwMzA5NWNmYTg5MWQ3
YmQzNWZjZTQ2MjVjMGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby5lZ2ctaW5mby93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC1hc3luY2lvL3B5dGVzdF9hc3luY2lvLmVnZy1pbmZvL1NPVVJDRVMudHh0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdnLWluZm8vZW50cnlfcG9pbnRz
LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vcHl0ZXN0X2FzeW5jaW8uZWdnLWluZm8vcmVxdWly
ZXMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby5lZ2ctaW5mby90b3Bf
bGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3luY2lv
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEwZjE5ZjZhMWRkZjA2
ZDk4YjliNDJjZjM3MDc4MmRlNzM3NDRlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3B5dGVzdF9hc3luY2lvL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QtYXN5bmNpby9weXRlc3RfYXN5bmNpby9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFz
eW5jaW8vcHl0ZXN0X2FzeW5jaW8vcGx1Z2luLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC1h
c3luY2lvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RhMDJiMTBmMjRhZjVjN2VlNDAzZDc4
YmQ1YTkzYWE3NmMzNzgyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC1hc3luY2lvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNpby9MSUNFTlNFCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QtYXN5bmNpby9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vUkVBRE1F
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0LWFzeW5jaW8vc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QtYXN5bmNp
by9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmNvdmVyYWdlcmMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWFiMzc2NDMzNzcxODVlOWU2ZWNkMWIwODBk
ZGQyYmZjMGMyNmVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmNvdmVyYWdlcmMK
QEAgLTAsMCArMSwzMCBAQAorW3J1bl0KK2luY2x1ZGUgPQorICBzcmMvKgorICB0ZXN0aW5nLyoK
KyAgKi9saWIvcHl0aG9uKi9zaXRlLXBhY2thZ2VzL19weXRlc3QvKgorICAqL2xpYi9weXRob24q
L3NpdGUtcGFja2FnZXMvcHl0ZXN0LnB5CisgICovcHlweSovc2l0ZS1wYWNrYWdlcy9fcHl0ZXN0
LyoKKyAgKi9weXB5Ki9zaXRlLXBhY2thZ2VzL3B5dGVzdC5weQorICAqXExpYlxzaXRlLXBhY2th
Z2VzXF9weXRlc3RcKgorICAqXExpYlxzaXRlLXBhY2thZ2VzXHB5dGVzdC5weQorcGFyYWxsZWwg
PSAxCiticmFuY2ggPSAxCisKK1twYXRoc10KK3NvdXJjZSA9IHNyYy8KKyAgKi9saWIvcHl0aG9u
Ki9zaXRlLXBhY2thZ2VzLworICAqL3B5cHkqL3NpdGUtcGFja2FnZXMvCisgICpcTGliXHNpdGUt
cGFja2FnZXNcCisKK1tyZXBvcnRdCitza2lwX2NvdmVyZWQgPSBUcnVlCitzaG93X21pc3Npbmcg
PSBUcnVlCitleGNsdWRlX2xpbmVzID0KKyAgICBcI1xzKnByYWdtYTogbm8gY292ZXIKKyAgICBe
XHMqcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvclxiCisgICAgXlxzKnJldHVybiBOb3RJbXBsZW1l
bnRlZFxiCisgICAgXlxzKmFzc2VydCBGYWxzZSgsfCQpCisKKyAgICBeXHMqaWYgVFlQRV9DSEVD
S0lORzoKKyAgICBeXHMqQG92ZXJsb2FkKCB8JCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5n
aXRhdHRyaWJ1dGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGF0dHJpYnV0ZXMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMx
YzY2ZGMxZTkxNTQwZWU5OTEzNDNiZTlhYmE1MThhOTkxYjViZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRhdHRyaWJ1dGVzCkBAIC0wLDAgKzEgQEAKKyouYmF0ICB0ZXh0IGVv
bD1jcmxmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0YmxhbWVpZ25vcmUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC8uZ2l0YmxhbWVpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNiMjk4YjAyNGQzYTVhNjExY2U1ODE0
NjBlNzg4YTZhNjNmNjQ3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRibGFt
ZWlnbm9yZQpAQCAtMCwwICsxLDI4IEBACisjIExpc3Qgb2YgcmV2aXNpb25zIHRoYXQgY2FuIGJl
IGlnbm9yZWQgd2l0aCBnaXQtYmxhbWUoMSkuCisjCisjIFNlZSBgYmxhbWUuaWdub3JlUmV2c0Zp
bGVgIGluIGdpdC1jb25maWcoMSkgdG8gZW5hYmxlIGl0IGJ5IGRlZmF1bHQsIG9yCisjIHVzZSBp
dCB3aXRoIGAtLWlnbm9yZS1yZXZzLWZpbGVgIG1hbnVhbGx5IHdpdGggZ2l0LWJsYW1lLgorIwor
IyBUbyAiaW5zdGFsbCIgaXQ6CisjCisjICAgZ2l0IGNvbmZpZyAtLWxvY2FsIGJsYW1lLmlnbm9y
ZVJldnNGaWxlIC5naXRibGFtZWlnbm9yZQorCisjIHJ1biBibGFjaworNzAzZTRiMTFiYTc2MTcx
ZWNjZDNmMTNlNzIzYzQ3YjgxMGRlZDdlZgorIyBzd2l0Y2hlZCB0byBzcmMgbGF5b3V0CitlYWE4
ODJmM2Q1MzQwOTU2YmViMTc2YWExNzUzZTA3ZTNmM2YyMTkwCisjIHByZS1jb21taXQgcnVuIHB5
dXBncmFkZSAtLWFsbC1maWxlcworYTkxZmUxZmVkZGJkZWQ1MzVhNDMyMmFiODU0NDI5ZTNhMzk2
MWZiNAorIyBtb3ZlIG5vZGUgYmFzZSBjbGFzc2VzIGZyb20gbWFpbiB0byBub2RlcworYWZjNjA3
Y2ZkODE0NThkNGU0ZjNiMWYzY2Y4Y2M5MzFiOTMzOTA3ZQorIyBbP10gc3BsaXQgbW9zdCBmaXh0
dXJlIHJlbGF0ZWQgY29kZSBpbnRvIG93biBwbHVnaW4KKzhjNDk1NjE0NzA3MDg3NjFmNzMyMTUw
NGY1ZTgzNDM4MTFiZTg3YWMKKyMgcnVuIHB5dXBncmFkZQorOWFhY2I0NjM1ZTgxZWRkNmVjZjI4
MWQ0ZjZjMGNmYzhlOTRhYjMwMQorIyBydW4gYmxhY2tlbi1kb2NzCis1Zjk1ZGNlOTU2MDI5MjFh
NzBiZmJjN2Q4ZGUyZjc3MTJjNWU0NTA1CisjIHJhbiBweXVwZ3JhZGUtZG9jcyBhZ2FpbgorNzVk
MGI4OTliYmI1NmQ2ODQ5ZTlkNjlkODNhOTQyNmVkM2Y0M2Y4YgorCisjIG1vdmUgYXJndW1lbnQg
cGFyc2VyIHRvIG93biBmaWxlCitjOWRmNzdjYmQ2YTM2NWRjYjczYzM5NjE4ZTQ4NDI3MTE4MTdl
ODcxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0ZVTkRJTkcueW1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvLmdpdGh1Yi9GVU5ESU5HLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjJkMWNmMDljODMyOGM3NGE2
M2JhZGY1M2MwNzE3OTA3MDY0OTE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdp
dGh1Yi9GVU5ESU5HLnltbApAQCAtMCwwICsxLDUgQEAKKyMgaW5mbzoKKyMgKiBodHRwczovL2hl
bHAuZ2l0aHViLmNvbS9lbi9hcnRpY2xlcy9kaXNwbGF5aW5nLWEtc3BvbnNvci1idXR0b24taW4t
eW91ci1yZXBvc2l0b3J5CisjICogaHR0cHM6Ly90aWRlbGlmdC5jb20vc3Vic2NyaXB0aW9uL2hv
dy10by1jb25uZWN0LXRpZGVsaWZ0LXdpdGgtZ2l0aHViCit0aWRlbGlmdDogcHlwaS9weXRlc3QK
K29wZW5fY29sbGVjdGl2ZTogcHl0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHVi
L0lTU1VFX1RFTVBMQVRFLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9JU1NVRV9URU1QTEFURS5t
ZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJjYmIxNmZjMzUxZGU3YjdjZTcyYzI4
YzBlN2IzMzZlYWRjNGM5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFLm1kCisrKyAvZGV2L251
bGwKQEAgLTEsOCArMCwwIEBACi1UaGFua3MgZm9yIHN1Ym1pdHRpbmcgYW4gaXNzdWUhCi0KLUhl
cmUncyBhIHF1aWNrIGNoZWNrbGlzdCBpbiB3aGF0IHRvIGluY2x1ZGU6Ci0KLS0gWyBdIEluY2x1
ZGUgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgYnVnIG9yIHN1Z2dlc3Rpb24KLS0gWyBd
IGBwaXAgbGlzdGAgb2YgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgeW91IGFyZSB1c2luZwotLSBb
IF0gcHl0ZXN0IGFuZCBvcGVyYXRpbmcgc3lzdGVtIHZlcnNpb25zCi0tIFsgXSBNaW5pbWFsIGV4
YW1wbGUgaWYgcG9zc2libGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVf
VEVNUExBVEUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBM
QVRFL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNGExZjZh
NWY4ODRlZjdiNTc2ZjU5MTgzZjU2NzIyMmNkMWZjOWM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExB
VEUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFLzFfYnVnX3JlcG9ydC5tZAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExBVEUvMl9mZWF0dXJlX3JlcXVlc3QubWQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFL2NvbmZpZy55bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1RfVEVNUExBVEUubWQKaW5kZXggMjNhOWY4YzU2ODMyNTUw
N2IwZTdhNWE1MjkzYjkzZDBmMTkyN2IzNS4uOTQwOGZjZWFmZTM2YjU1YTcyOGRiNDYxYWE0OTE5
ZmEzNzAxMjQ4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1Rf
VEVNUExBVEUubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1RfVEVNUExB
VEUubWQKQEAgLTEsMTQgKzEsMjYgQEAKKzwhLS0KIFRoYW5rcyBmb3Igc3VibWl0dGluZyBhIFBS
LCB5b3VyIGNvbnRyaWJ1dGlvbiBpcyByZWFsbHkgYXBwcmVjaWF0ZWQhCiAKLUhlcmUncyBhIHF1
aWNrIGNoZWNrbGlzdCB0aGF0IHNob3VsZCBiZSBwcmVzZW50IGluIFBScyAoeW91IGNhbiBkZWxl
dGUgdGhpcyB0ZXh0IGZyb20gdGhlIGZpbmFsIGRlc2NyaXB0aW9uLCB0aGlzIGlzCi1qdXN0IGEg
Z3VpZGVsaW5lKToKK0hlcmUgaXMgYSBxdWljayBjaGVja2xpc3QgdGhhdCBzaG91bGQgYmUgcHJl
c2VudCBpbiBQUnMuCiAKLS0gWyBdIENyZWF0ZSBhIG5ldyBjaGFuZ2Vsb2cgZmlsZSBpbiB0aGUg
YGNoYW5nZWxvZ2AgZm9sZGVyLCB3aXRoIGEgbmFtZSBsaWtlIGA8SVNTVUUgTlVNQkVSPi48VFlQ
RT4ucnN0YC4gU2VlIFtjaGFuZ2Vsb2cvUkVBRE1FLnJzdF0oL2NoYW5nZWxvZy9SRUFETUUucnN0
KSBmb3IgZGV0YWlscy4KLS0gWyBdIFRhcmdldCB0aGUgYG1hc3RlcmAgYnJhbmNoIGZvciBidWcg
Zml4ZXMsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgdHJpdmlhbCBjaGFuZ2VzLgotLSBbIF0g
VGFyZ2V0IHRoZSBgZmVhdHVyZXNgIGJyYW5jaCBmb3IgbmV3IGZlYXR1cmVzIGFuZCByZW1vdmFs
cy9kZXByZWNhdGlvbnMuCiAtIFsgXSBJbmNsdWRlIGRvY3VtZW50YXRpb24gd2hlbiBhZGRpbmcg
bmV3IGZlYXR1cmVzLgogLSBbIF0gSW5jbHVkZSBuZXcgdGVzdHMgb3IgdXBkYXRlIGV4aXN0aW5n
IHRlc3RzIHdoZW4gYXBwbGljYWJsZS4KKy0gW1hdIEFsbG93IG1haW50YWluZXJzIHRvIHB1c2gg
YW5kIHNxdWFzaCB3aGVuIG1lcmdpbmcgbXkgY29tbWl0cy4gUGxlYXNlIHVuY2hlY2sgdGhpcyBp
ZiB5b3UgcHJlZmVyIHRvIHNxdWFzaCB0aGUgY29tbWl0cyB5b3Vyc2VsZi4KIAotVW5sZXNzIHlv
dXIgY2hhbmdlIGlzIHRyaXZpYWwgb3IgYSBzbWFsbCBkb2N1bWVudGF0aW9uIGZpeCAoZS5nLiwg
IGEgdHlwbyBvciByZXdvcmQgb2YgYSBzbWFsbCBzZWN0aW9uKSBwbGVhc2U6CitJZiB0aGlzIGNo
YW5nZSBmaXhlcyBhbiBpc3N1ZSwgcGxlYXNlOgogCi0tIFsgXSBBZGQgeW91cnNlbGYgdG8gYEFV
VEhPUlNgIGluIGFscGhhYmV0aWNhbCBvcmRlcjsKKy0gWyBdIEFkZCB0ZXh0IGxpa2UgYGBjbG9z
ZXMgI1hZWldgYCB0byB0aGUgUFIgZGVzY3JpcHRpb24gYW5kL29yIGNvbW1pdHMgKHdoZXJlIGBg
WFlaV2BgIGlzIHRoZSBpc3N1ZSBudW1iZXIpLiBTZWUgdGhlIFtnaXRodWIgZG9jc10oaHR0cHM6
Ly9oZWxwLmdpdGh1Yi5jb20vZW4vZ2l0aHViL21hbmFnaW5nLXlvdXItd29yay1vbi1naXRodWIv
bGlua2luZy1hLXB1bGwtcmVxdWVzdC10by1hbi1pc3N1ZSNsaW5raW5nLWEtcHVsbC1yZXF1ZXN0
LXRvLWFuLWlzc3VlLXVzaW5nLWEta2V5d29yZCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKK1Vu
bGVzcyB5b3VyIGNoYW5nZSBpcyB0cml2aWFsIG9yIGEgc21hbGwgZG9jdW1lbnRhdGlvbiBmaXgg
KGUuZy4sIGEgdHlwbyBvciByZXdvcmQgb2YgYSBzbWFsbCBzZWN0aW9uKSBwbGVhc2U6CisKKy0g
WyBdIENyZWF0ZSBhIG5ldyBjaGFuZ2Vsb2cgZmlsZSBpbiB0aGUgYGNoYW5nZWxvZ2AgZm9sZGVy
LCB3aXRoIGEgbmFtZSBsaWtlIGA8SVNTVUUgTlVNQkVSPi48VFlQRT4ucnN0YC4gU2VlIFtjaGFu
Z2Vsb2cvUkVBRE1FLnJzdF0oaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2Js
b2IvbWFzdGVyL2NoYW5nZWxvZy9SRUFETUUucnN0KSBmb3IgZGV0YWlscy4KKworICBXcml0ZSBz
ZW50ZW5jZXMgaW4gdGhlICoqcGFzdCBvciBwcmVzZW50IHRlbnNlKiosIGV4YW1wbGVzOgorCisg
ICogKkltcHJvdmVkIHZlcmJvc2UgZGlmZiBvdXRwdXQgd2l0aCBzZXF1ZW5jZXMuKgorICAqICpU
ZXJtaW5hbCBzdW1tYXJ5IHN0YXRpc3RpY3Mgbm93IHVzZSBtdWx0aXBsZSBjb2xvcnMuKgorCisg
IEFsc28gbWFrZSBzdXJlIHRvIGVuZCB0aGUgc2VudGVuY2Ugd2l0aCBhIGAuYC4KKworLSBbIF0g
QWRkIHlvdXJzZWxmIHRvIGBBVVRIT1JTYCBpbiBhbHBoYWJldGljYWwgb3JkZXIuCistLT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvY29uZmlnLnltbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5n
aXRodWIvY29uZmlnLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmE4YTk3ZTc4NWQyYTA4Nzk3MTM2ZDY0MTZj
MzEzMjhkMjRjZmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9jb25m
aWcueW1sCkBAIC0wLDAgKzEsMiBAQAorcnRkOgorICBwcm9qZWN0OiBweXRlc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvbGFiZWxzLnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHVi
L2xhYmVscy50b21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlZjFlOTEzYWY4NGNjN2E5ZmZmNDRmOGU0MmRkNDA3
ZWRmZGU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL2xhYmVscy50
b21sCkBAIC0wLDAgKzEsMTQ5IEBACitbIm9zOiBjeWd3aW4iXQorY29sb3IgPSAiMDA2Yjc1Igor
ZGVzY3JpcHRpb24gPSAiY3lnd2luIHBsYXRmb3JtLXNwZWNpZmljIHByb2JsZW0iCituYW1lID0g
Im9zOiBjeWd3aW4iCisKK1sib3M6IGxpbnV4Il0KK2NvbG9yID0gIjFkNzZkYiIKK2Rlc2NyaXB0
aW9uID0gImxpbnV4IHBsYXRmb3JtLXNwZWNpZmljIHByb2JsZW0iCituYW1lID0gIm9zOiBsaW51
eCIKKworWyJvczogbWFjIl0KK2NvbG9yID0gImJmZGFkYyIKK2Rlc2NyaXB0aW9uID0gIm1hYyBw
bGF0Zm9ybS1zcGVjaWZpYyBwcm9ibGVtIgorbmFtZSA9ICJvczogbWFjIgorCitbIm9zOiB3aW5k
b3dzIl0KK2NvbG9yID0gImZiY2EwNCIKK2Rlc2NyaXB0aW9uID0gIndpbmRvd3MgcGxhdGZvcm0t
c3BlY2lmaWMgcHJvYmxlbSIKK25hbWUgPSAib3M6IHdpbmRvd3MiCisKK1sicGx1Z2luOiBhcmdj
b21wbGV0ZSJdCitjb2xvciA9ICJkNGM1ZjkiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRo
ZSBhcmdjb21wbGV0ZSBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBhcmdjb21wbGV0
ZSIKKworWyJwbHVnaW46IGNhY2hlIl0KK2NvbG9yID0gImM3ZGVmOCIKK2Rlc2NyaXB0aW9uID0g
InJlbGF0ZWQgdG8gdGhlIGNhY2hlIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IGNh
Y2hlIgorCitbInBsdWdpbjogY2FwdHVyZSJdCitjb2xvciA9ICIxZDc2ZGIiCitkZXNjcmlwdGlv
biA9ICJyZWxhdGVkIHRvIHRoZSBjYXB0dXJlIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVn
aW46IGNhcHR1cmUiCisKK1sicGx1Z2luOiBkZWJ1Z2dpbmciXQorY29sb3IgPSAiZGQ1MmE4Igor
ZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgZGVidWdnaW5nIGJ1aWx0aW4gcGx1Z2luIgor
bmFtZSA9ICJwbHVnaW46IGRlYnVnZ2luZyIKKworWyJwbHVnaW46IGRvY3Rlc3RzIl0KK2NvbG9y
ID0gImZhZDhjNyIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGRvY3Rlc3RzIGJ1aWx0
aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IGRvY3Rlc3RzIgorCitbInBsdWdpbjoganVuaXR4
bWwiXQorY29sb3IgPSAiYzVkZWY1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUganVu
aXR4bWwgYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjoganVuaXR4bWwiCisKK1sicGx1
Z2luOiBsb2dnaW5nIl0KK2NvbG9yID0gImZmNTQzMiIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQg
dG8gdGhlIGxvZ2dpbmcgYnVpbHRpbiBwbHVnaW4iCituYW1lID0gInBsdWdpbjogbG9nZ2luZyIK
KworWyJwbHVnaW46IG1vbmtleXBhdGNoIl0KK2NvbG9yID0gIjBlOGExNiIKK2Rlc2NyaXB0aW9u
ID0gInJlbGF0ZWQgdG8gdGhlIG1vbmtleXBhdGNoIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJw
bHVnaW46IG1vbmtleXBhdGNoIgorCitbInBsdWdpbjogbm9zZSJdCitjb2xvciA9ICJiZmRhZGMi
CitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBub3NlIGludGVncmF0aW9uIGJ1aWx0aW4g
cGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IG5vc2UiCisKK1sicGx1Z2luOiBwYXN0ZWJpbiJdCitj
b2xvciA9ICJiZmQ0ZjIiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIHRoZSBwYXN0ZWJpbiBi
dWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiBwYXN0ZWJpbiIKKworWyJwbHVnaW46IHB5
dGVzdGVyIl0KK2NvbG9yID0gImM1ZGVmNSIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhl
IHB5dGVzdGVyIGJ1aWx0aW4gcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IHB5dGVzdGVyIgorCitb
InBsdWdpbjogdG1wZGlyIl0KK2NvbG9yID0gImJmZDRmMiIKK2Rlc2NyaXB0aW9uID0gInJlbGF0
ZWQgdG8gdGhlIHRtcGRpciBidWlsdGluIHBsdWdpbiIKK25hbWUgPSAicGx1Z2luOiB0bXBkaXIi
CisKK1sicGx1Z2luOiB1bml0dGVzdCJdCitjb2xvciA9ICIwMDZiNzUiCitkZXNjcmlwdGlvbiA9
ICJyZWxhdGVkIHRvIHRoZSB1bml0dGVzdCBpbnRlZ3JhdGlvbiBidWlsdGluIHBsdWdpbiIKK25h
bWUgPSAicGx1Z2luOiB1bml0dGVzdCIKKworWyJwbHVnaW46IHdhcm5pbmdzIl0KK2NvbG9yID0g
ImZlZjJjMCIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIHdhcm5pbmdzIGJ1aWx0aW4g
cGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IHdhcm5pbmdzIgorCitbInBsdWdpbjogeGRpc3QiXQor
Y29sb3IgPSAiNTMxOWU3IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgeGRpc3QgZXh0
ZXJuYWwgcGx1Z2luIgorbmFtZSA9ICJwbHVnaW46IHhkaXN0IgorCitbInN0YXR1czogY3JpdGlj
YWwiXQorY29sb3IgPSAiZTExZDIxIgorZGVzY3JpcHRpb24gPSAiZ3JhdmUgcHJvYmxlbSBvciB1
c2FiaWxpdHkgaXNzdWUgdGhhdCBhZmZlY3RzIGxvdHMgb2YgdXNlcnMiCituYW1lID0gInN0YXR1
czogY3JpdGljYWwiCisKK1sic3RhdHVzOiBlYXN5Il0KK2NvbG9yID0gImJmZTViZiIKK2Rlc2Ny
aXB0aW9uID0gImVhc3kgaXNzdWUgdGhhdCBpcyBmcmllbmRseSB0byBuZXcgY29udHJpYnV0b3Ii
CituYW1lID0gInN0YXR1czogZWFzeSIKKworWyJzdGF0dXM6IGhlbHAgd2FudGVkIl0KK2NvbG9y
ID0gIjE1OTgxOCIKK2Rlc2NyaXB0aW9uID0gImRldmVsb3BlcnMgd291bGQgbGlrZSBoZWxwIGZy
b20gZXhwZXJ0cyBvbiB0aGlzIHRvcGljIgorbmFtZSA9ICJzdGF0dXM6IGhlbHAgd2FudGVkIgor
CitbInN0YXR1czogbmVlZHMgaW5mb3JtYXRpb24iXQorY29sb3IgPSAiNTMxOWU3IgorZGVzY3Jp
cHRpb24gPSAicmVwb3J0ZXIgbmVlZHMgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uOyBjYW4g
YmUgY2xvc2VkIGFmdGVyIDIgb3IgbW9yZSB3ZWVrcyBvZiBpbmFjdGl2aXR5IgorbmFtZSA9ICJz
dGF0dXM6IG5lZWRzIGluZm9ybWF0aW9uIgorCitbInRvcGljOiBjb2xsZWN0aW9uIl0KK2NvbG9y
ID0gIjAwNmI3NSIKK2Rlc2NyaXB0aW9uID0gInJlbGF0ZWQgdG8gdGhlIGNvbGxlY3Rpb24gcGhh
c2UiCituYW1lID0gInRvcGljOiBjb2xsZWN0aW9uIgorCitbInRvcGljOiBjb25maWciXQorY29s
b3IgPSAiMDA2Yjc1IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byBjb25maWcgaGFuZGxpbmcs
IGFyZ3VtZW50IHBhcnNpbmcgYW5kIGNvbmZpZyBmaWxlIgorbmFtZSA9ICJ0b3BpYzogY29uZmln
IgorCitbInRvcGljOiBmaXh0dXJlcyJdCitjb2xvciA9ICI1MzE5ZTciCitkZXNjcmlwdGlvbiA9
ICJhbnl0aGluZyBpbnZvbHZpbmcgZml4dHVyZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSIKK25h
bWUgPSAidG9waWM6IGZpeHR1cmVzIgorCitbInRvcGljOiBtYXJrcyJdCitjb2xvciA9ICJiNjAy
MDUiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIG1hcmtzLCBlaXRoZXIgdGhlIGdlbmVyYWwg
bWFya3Mgb3IgYnVpbHRpbiIKK25hbWUgPSAidG9waWM6IG1hcmtzIgorCitbInRvcGljOiBwYXJh
bWV0cml6ZSJdCitjb2xvciA9ICJmYmNhMDQiCitkZXNjcmlwdGlvbiA9ICJyZWxhdGVkIHRvIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSIKK25hbWUgPSAidG9waWM6IHBhcmFtZXRyaXplIgorCitb
InRvcGljOiByZXBvcnRpbmciXQorY29sb3IgPSAiZmVmMmMwIgorZGVzY3JpcHRpb24gPSAicmVs
YXRlZCB0byB0ZXJtaW5hbCBvdXRwdXQgYW5kIHVzZXItZmFjaW5nIG1lc3NhZ2VzIGFuZCBlcnJv
cnMiCituYW1lID0gInRvcGljOiByZXBvcnRpbmciCisKK1sidG9waWM6IHJld3JpdGUiXQorY29s
b3IgPSAiMGU4YTE2IgorZGVzY3JpcHRpb24gPSAicmVsYXRlZCB0byB0aGUgYXNzZXJ0aW9uIHJl
d3JpdGUgbWVjaGFuaXNtIgorbmFtZSA9ICJ0b3BpYzogcmV3cml0ZSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjdjZjIyMjU2NGI0
MmZmNDgxNzJkYjcwYjMzODMwODYxMzk4YThiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHVi
L0lTU1VFX1RFTVBMQVRFLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1RfVEVN
UExBVEUubWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0Yjc1MjgwZDljZTg4ZTlhNTcyZDM0ZDk2
OWNiMzkyZjlkM2I1YmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi93b3JrZmxvd3MvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3dv
cmtmbG93cy9tYWluLnltbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvd29ya2Zsb3dzL3JlbGVhc2Ut
b24tY29tbWVudC55bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRpZ25vcmUgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZWE5ZWFjMDNmOTJlNWY5NTkyZGUxZTA0
MDVmMTBiNGFlNzgzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aWdub3Jl
CkBAIC0wLDAgKzEsNTQgQEAKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYGhnaW1wb3J0
c3ZuYAorLnN2bgorLmhnc3ZuCisKKyMgSWdub3JlIGxvY2FsIHZpcnR1YWxlbnZzCitsaWIvCiti
aW4vCitpbmNsdWRlLworLlB5dGhvbi8KKworIyBUaGVzZSBsaW5lcyBhcmUgc3VnZ2VzdGVkIGFj
Y29yZGluZyB0byB0aGUgc3ZuOmlnbm9yZSBwcm9wZXJ0eQorIyBGZWVsIGZyZWUgdG8gZW5hYmxl
IHRoZW0gYnkgdW5jb21tZW50aW5nIHRoZW0KKyoucHljCisqLnB5bworKi5zd3AKKyouY2xhc3MK
Kyoub3JpZworKn4KKy5oeXBvdGhlc2lzLworCisjIGF1dG9nZW5lcmF0ZWQKK3NyYy9fcHl0ZXN0
L192ZXJzaW9uLnB5CisjIHNldHVwdG9vbHMKKy5lZ2dzLworCitkb2MvKi9fYnVpbGQKK2RvYy8q
Ly5kb2N0cmVlcworZG9jLyovX2NoYW5nZWxvZ190b3duY3JpZXJfZHJhZnQucnN0CitidWlsZC8K
K2Rpc3QvCisqLmVnZy1pbmZvCitodG1sY292LworaXNzdWUvCitlbnYvCisuZW52LworLnZlbnYv
CiszcmRwYXJ0eS8KKy50b3gKKy5jYWNoZQorLnB5dGVzdF9jYWNoZQorLm15cHlfY2FjaGUKKy5j
b3ZlcmFnZQorLmNvdmVyYWdlLioKK2NvdmVyYWdlLnhtbAorLnJvcGVwcm9qZWN0CisuaWRlYQor
Lmh5cG90aGVzaXMKKy5weWRldnByb2plY3QKKy5wcm9qZWN0Cisuc2V0dGluZ3MKKy52c2NvZGUK
KworIyBnZW5lcmF0ZWQgYnkgcGlwCitwaXAtd2hlZWwtbWV0YWRhdGEvCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8ucHJlLWNvbW1pdC1jb25maWcueWFtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5wcmUtY29t
bWl0LWNvbmZpZy55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNjhhMmQzMjRkOGRhNzc0M2Q4NzgyNzMxNDVm
NjM1NWRjNmY1ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8ucHJlLWNvbW1pdC1j
b25maWcueWFtbApAQCAtMCwwICsxLDgyIEBACityZXBvczoKKy0gICByZXBvOiBodHRwczovL2dp
dGh1Yi5jb20vcHNmL2JsYWNrCisgICAgcmV2OiAxOS4xMGIwCisgICAgaG9va3M6CisgICAgLSAg
IGlkOiBibGFjaworICAgICAgICBhcmdzOiBbLS1zYWZlLCAtLXF1aWV0XQorLSAgIHJlcG86IGh0
dHBzOi8vZ2l0aHViLmNvbS9hc290dGlsZS9ibGFja2VuLWRvY3MKKyAgICByZXY6IHYxLjcuMAor
ICAgIGhvb2tzOgorICAgIC0gICBpZDogYmxhY2tlbi1kb2NzCisgICAgICAgIGFkZGl0aW9uYWxf
ZGVwZW5kZW5jaWVzOiBbYmxhY2s9PTE5LjEwYjBdCistICAgcmVwbzogaHR0cHM6Ly9naXRodWIu
Y29tL3ByZS1jb21taXQvcHJlLWNvbW1pdC1ob29rcworICAgIHJldjogdjMuMS4wCisgICAgaG9v
a3M6CisgICAgLSAgIGlkOiB0cmFpbGluZy13aGl0ZXNwYWNlCisgICAgLSAgIGlkOiBlbmQtb2Yt
ZmlsZS1maXhlcgorICAgIC0gICBpZDogZml4LWVuY29kaW5nLXByYWdtYQorICAgICAgICBhcmdz
OiBbLS1yZW1vdmVdCisgICAgLSAgIGlkOiBjaGVjay15YW1sCisgICAgLSAgIGlkOiBkZWJ1Zy1z
dGF0ZW1lbnRzCisgICAgICAgIGV4Y2x1ZGU6IF9weXRlc3QvKGRlYnVnZ2luZ3xob29rc3BlYyku
cHkKKyAgICAgICAgbGFuZ3VhZ2VfdmVyc2lvbjogcHl0aG9uMworLSAgIHJlcG86IGh0dHBzOi8v
Z2l0bGFiLmNvbS9weWNxYS9mbGFrZTgKKyAgICByZXY6IDMuOC4yCisgICAgaG9va3M6CisgICAg
LSAgIGlkOiBmbGFrZTgKKyAgICAgICAgbGFuZ3VhZ2VfdmVyc2lvbjogcHl0aG9uMworICAgICAg
ICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczoKKyAgICAgICAgICAtIGZsYWtlOC10eXBpbmctaW1w
b3J0cz09MS45LjAKKyAgICAgICAgICAtIGZsYWtlOC1kb2NzdHJpbmdzPT0xLjUuMAorLSAgIHJl
cG86IGh0dHBzOi8vZ2l0aHViLmNvbS9hc290dGlsZS9yZW9yZGVyX3B5dGhvbl9pbXBvcnRzCisg
ICAgcmV2OiB2Mi4zLjAKKyAgICBob29rczoKKyAgICAtICAgaWQ6IHJlb3JkZXItcHl0aG9uLWlt
cG9ydHMKKyAgICAgICAgYXJnczogWyctLWFwcGxpY2F0aW9uLWRpcmVjdG9yaWVzPS46c3JjJywg
LS1weTMtcGx1c10KKy0gICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vYXNvdHRpbGUvcHl1cGdy
YWRlCisgICAgcmV2OiB2Mi40LjQKKyAgICBob29rczoKKyAgICAtICAgaWQ6IHB5dXBncmFkZQor
ICAgICAgICBhcmdzOiBbLS1weTMtcGx1c10KKy0gICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20v
YXNvdHRpbGUvc2V0dXAtY2ZnLWZtdAorICAgIHJldjogdjEuOS4wCisgICAgaG9va3M6CisgICAg
LSAgIGlkOiBzZXR1cC1jZmctZm10CisgICAgICAgICMgVE9ETzogd2hlbiB1cGdyYWRpbmcgc2V0
dXAtY2ZnLWZtdCB0aGlzIGNhbiBiZSByZW1vdmVkCisgICAgICAgIGFyZ3M6IFstLW1heC1weS12
ZXJzaW9uPTMuOV0KKy0gICByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vcHJlLWNvbW1pdC9taXJy
b3JzLW15cHkKKyAgICByZXY6IHYwLjc4MCAgIyBOT1RFOiBrZWVwIHRoaXMgaW4gc3luYyB3aXRo
IHNldHVwLmNmZy4KKyAgICBob29rczoKKyAgICAtICAgaWQ6IG15cHkKKyAgICAgICAgZmlsZXM6
IF4oc3JjL3x0ZXN0aW5nLykKKyAgICAgICAgYXJnczogW10KKy0gICByZXBvOiBsb2NhbAorICAg
IGhvb2tzOgorICAgIC0gICBpZDogcnN0CisgICAgICAgIG5hbWU6IHJzdAorICAgICAgICBlbnRy
eTogcnN0LWxpbnQgLS1lbmNvZGluZyB1dGYtOAorICAgICAgICBmaWxlczogXihSRUxFQVNJTkcu
cnN0fFJFQURNRS5yc3R8VElERUxJRlQucnN0KSQKKyAgICAgICAgbGFuZ3VhZ2U6IHB5dGhvbgor
ICAgICAgICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczogW3B5Z21lbnRzLCByZXN0cnVjdHVyZWR0
ZXh0X2xpbnRdCisgICAgLSAgIGlkOiBjaGFuZ2Vsb2dzLXJzdAorICAgICAgICBuYW1lOiBjaGFu
Z2Vsb2cgZmlsZW5hbWVzCisgICAgICAgIGxhbmd1YWdlOiBmYWlsCisgICAgICAgIGVudHJ5OiAn
Y2hhbmdlbG9nIGZpbGVzIG11c3QgYmUgbmFtZWQgIyMjIy4oYnJlYWtpbmd8YnVnZml4fGRlcHJl
Y2F0aW9ufGRvY3xmZWF0dXJlfGltcHJvdmVtZW50fHRyaXZpYWx8dmVuZG9yKS5yc3QnCisgICAg
ICAgIGV4Y2x1ZGU6IGNoYW5nZWxvZy8oXGQrXC4oYnJlYWtpbmd8YnVnZml4fGRlcHJlY2F0aW9u
fGRvY3xmZWF0dXJlfGltcHJvdmVtZW50fHRyaXZpYWx8dmVuZG9yKS5yc3R8UkVBRE1FLnJzdHxf
dGVtcGxhdGUucnN0KQorICAgICAgICBmaWxlczogXmNoYW5nZWxvZy8KKyAgICAtICAgaWQ6IHB5
LWRlcHJlY2F0ZWQKKyAgICAgICAgbmFtZTogcHkgbGlicmFyeSBpcyBkZXByZWNhdGVkCisgICAg
ICAgIGxhbmd1YWdlOiBweWdyZXAKKyAgICAgICAgZW50cnk6ID4KKyAgICAgICAgICAgICg/eClc
YnB5XC4oCisgICAgICAgICAgICAgICAgX2NvZGVcLnwKKyAgICAgICAgICAgICAgICBidWlsdGlu
XC58CisgICAgICAgICAgICAgICAgY29kZVwufAorICAgICAgICAgICAgICAgIGlvXC58CisgICAg
ICAgICAgICAgICAgcGF0aFwubG9jYWxcLnN5c2ZpbmR8CisgICAgICAgICAgICAgICAgcHJvY2Vz
c1wufAorICAgICAgICAgICAgICAgIHN0ZFwufAorICAgICAgICAgICAgICAgIGVycm9yXC58Cisg
ICAgICAgICAgICAgICAgeG1sXC4KKyAgICAgICAgICAgICkKKyAgICAgICAgdHlwZXM6IFtweXRo
b25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8ucmVhZHRoZWRvY3MueW1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvLnJlYWR0aGVkb2NzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTc2YzI2NDAwMTVlZTkzMmYyMWVjMDFm
OGQ4OTZiMWQ3NDEwZTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnJlYWR0aGVk
b2NzLnltbApAQCAtMCwwICsxLDEyIEBACit2ZXJzaW9uOiAyCisKK3B5dGhvbjoKKyAgIHZlcnNp
b246IDMuNworICAgaW5zdGFsbDoKKyAgICAgIC0gcmVxdWlyZW1lbnRzOiBkb2MvZW4vcmVxdWly
ZW1lbnRzLnR4dAorICAgICAgLSBtZXRob2Q6IHBpcAorICAgICAgICBwYXRoOiAuCisKK2Zvcm1h
dHM6CisgIC0gZXB1YgorICAtIHBkZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnRyYXZpcy55
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Yzg1ZGZlMWY1OTE1ZjA5
ZDlhZTI1MjkxOGYyNGJhNTUwNWM4MTNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
LnRyYXZpcy55bWwKQEAgLTAsMCArMSw2MCBAQAorbGFuZ3VhZ2U6IHB5dGhvbgorZGlzdDogdHJ1
c3R5CitweXRob246ICczLjUuMScKK2NhY2hlOiBmYWxzZQorCitlbnY6CisgIGdsb2JhbDoKKyAg
ICAtIFBZVEVTVF9BRERPUFRTPS12dgorCisjIHNldHVwdG9vbHMtc2NtIG5lZWRzIGFsbCB0YWdz
IGluIG9yZGVyIHRvIG9idGFpbiBhIHByb3BlciB2ZXJzaW9uCitnaXQ6CisgIGRlcHRoOiBmYWxz
ZQorCitpbnN0YWxsOgorICAtIHB5dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgLS1wcmUg
dG94CisKK2pvYnM6CisgIGluY2x1ZGU6CisgICAgIyBDb3ZlcmFnZSBmb3IgUHl0aG9uIDMuNS57
MCwxfSBzcGVjaWZpYyBjb2RlLCBtb3N0bHkgdHlwaW5nIHJlbGF0ZWQuCisgICAgLSBlbnY6IFRP
WEVOVj1weTM1IFBZVEVTVF9DT1ZFUkFHRT0xIFBZVEVTVF9BRERPUFRTPSItayB0ZXN0X3JhaXNl
c19jeWNsaWNfcmVmZXJlbmNlIgorICAgICAgYmVmb3JlX2luc3RhbGw6CisgICAgICAgICMgV29y
ayBhcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL2phcmFjby96aXBwL2lzc3Vlcy80MC4KKyAgICAg
ICAgLSBweXRob24gLW0gcGlwIGluc3RhbGwgLVUgJ3NldHVwdG9vbHM+PTM0LjQuMCcgdmlydHVh
bGVudj09MTYuNy45CisKK2JlZm9yZV9zY3JpcHQ6CisgIC0gfAorICAgICMgRG8gbm90IChyZS0p
dXBsb2FkIGNvdmVyYWdlIHdpdGggY3JvbiBydW5zLgorICAgIGlmIFtbICIkVFJBVklTX0VWRU5U
X1RZUEUiID0gY3JvbiBdXTsgdGhlbgorICAgICAgUFlURVNUX0NPVkVSQUdFPTAKKyAgICBmaQor
ICAtIHwKKyAgICBpZiBbWyAiJFBZVEVTVF9DT1ZFUkFHRSIgPSAxIF1dOyB0aGVuCisgICAgICBl
eHBvcnQgQ09WRVJBR0VfRklMRT0iJFBXRC8uY292ZXJhZ2UiCisgICAgICBleHBvcnQgQ09WRVJB
R0VfUFJPQ0VTU19TVEFSVD0iJFBXRC8uY292ZXJhZ2VyYyIKKyAgICAgIGV4cG9ydCBfUFlURVNU
X1RPWF9DT1ZFUkFHRV9SVU49ImNvdmVyYWdlIHJ1biAtbSIKKyAgICAgIGV4cG9ydCBfUFlURVNU
X1RPWF9FWFRSQV9ERVA9Y292ZXJhZ2UtZW5hYmxlLXN1YnByb2Nlc3MKKyAgICBmaQorCitzY3Jp
cHQ6IHRveAorCithZnRlcl9zdWNjZXNzOgorICAtIHwKKyAgICBpZiBbWyAiJFBZVEVTVF9DT1ZF
UkFHRSIgPSAxIF1dOyB0aGVuCisgICAgICBlbnYgQ09ERUNPVl9OQU1FPSIkVE9YRU5WLSRUUkFW
SVNfT1NfTkFNRSIgc2NyaXB0cy9yZXBvcnQtY292ZXJhZ2Uuc2ggLUYgVHJhdmlzCisgICAgZmkK
Kworbm90aWZpY2F0aW9uczoKKyAgaXJjOgorICAgIGNoYW5uZWxzOgorICAgICAgLSAiY2hhdC5m
cmVlbm9kZS5uZXQjcHl0ZXN0IgorICAgIG9uX3N1Y2Nlc3M6IGNoYW5nZQorICAgIG9uX2ZhaWx1
cmU6IGNoYW5nZQorICAgIHNraXBfam9pbjogdHJ1ZQorICBlbWFpbDoKKyAgICAtIHB5dGVzdC1j
b21taXRAcHl0aG9uLm9yZworCiticmFuY2hlczoKKyAgb25seToKKyAgICAtIG1hc3RlcgorICAg
IC0gL15cZCtcLlxkK1wueCQvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmU0MWYwNTA0ZTQ3MDY0MjhmOGJjMjQxZDVkMmQxMGVkYmEwMTM4Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1fX2Fs
bF9fID0gWydfX3ZlcnNpb25fXyddCi0KLXRyeToKLSAgICBmcm9tIC5fdmVyc2lvbiBpbXBvcnQg
dmVyc2lvbiBhcyBfX3ZlcnNpb25fXwotZXhjZXB0IEltcG9ydEVycm9yOgotICAgICMgYnJva2Vu
IGluc3RhbGxhdGlvbiwgd2UgZG9uJ3QgZXZlbiB0cnkKLSAgICAjIHVua25vd24gb25seSB3b3Jr
cyBiZWNhdXNlIHdlIGRvIHBvb3IgbWFucyB2ZXJzaW9uIGNvbXBhcmUKLSAgICBfX3ZlcnNpb25f
XyA9ICd1bmtub3duJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29tcGxl
dGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDYyNWE3NWY5ZjFiNzA1MGQzOGYzNjVjNDEzNWRkNDhhYTcxYjFk
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCww
IEBACi0KLSIiImFsbG93IGJhc2gtY29tcGxldGlvbiBmb3IgYXJncGFyc2Ugd2l0aCBhcmdjb21w
bGV0ZSBpZiBpbnN0YWxsZWQKLW5lZWRzIGFyZ2NvbXBsZXRlPj0wLjUuNiBmb3IgcHl0aG9uIDMu
Mi8zLjMgKG9sZGVyIHZlcnNpb25zIGZhaWwKLXRvIGZpbmQgdGhlIG1hZ2ljIHN0cmluZywgc28g
X0FSR0NPTVBMRVRFIGVudi4gdmFyIGlzIG5ldmVyIHNldCwgYW5kCi10aGlzIGRvZXMgbm90IG5l
ZWQgc3BlY2lhbCBjb2RlLgotCi1GdW5jdGlvbiB0cnlfYXJnY29tcGxldGUocGFyc2VyKSBzaG91
bGQgYmUgY2FsbGVkIGRpcmVjdGx5IGJlZm9yZQotdGhlIGNhbGwgdG8gQXJndW1lbnRQYXJzZXIu
cGFyc2VfYXJncygpLgotCi1UaGUgZmlsZXNjb21wbGV0ZXIgaXMgd2hhdCB5b3Ugbm9ybWFsbHkg
d291bGQgdXNlIG9uIHRoZSBwb3NpdGlvbmFsCi1hcmd1bWVudHMgc3BlY2lmaWNhdGlvbiwgaW4g
b3JkZXIgdG8gZ2V0ICJkaXJuYW1lLyIgYWZ0ZXIgImRpcm48VEFCPiIKLWluc3RlYWQgb2YgdGhl
IGRlZmF1bHQgImRpcm5hbWUgIjoKLQotICAgb3B0cGFyc2VyLmFkZF9hcmd1bWVudChDb25maWcu
X2ZpbGVfb3JfZGlyLCBuYXJncz0nKicKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp
LmNvbXBsZXRlcj1maWxlc2NvbXBsZXRlcgotCi1PdGhlciwgYXBwbGljYXRpb24gc3BlY2lmaWMs
IGNvbXBsZXRlcnMgc2hvdWxkIGdvIGluIHRoZSBmaWxlCi1kb2luZyB0aGUgYWRkX2FyZ3VtZW50
IGNhbGxzIGFzIHRoZXkgbmVlZCB0byBiZSBzcGVjaWZpZWQgYXMgLmNvbXBsZXRlcgotYXR0cmli
dXRlcyBhcyB3ZWxsLiAoSWYgYXJnY29tcGxldGUgaXMgbm90IGluc3RhbGxlZCwgdGhlIGZ1bmN0
aW9uIHRoZQotYXR0cmlidXRlIHBvaW50cyB0byB3aWxsIG5vdCBiZSB1c2VkKS4KLQotU1BFRURV
UAotPT09PT09PQotVGhlIGdlbmVyaWMgYXJnY29tcGxldGUgc2NyaXB0IGZvciBiYXNoLWNvbXBs
ZXRpb24KLSgvZXRjL2Jhc2hfY29tcGxldGlvbi5kL3B5dGhvbi1hcmdjb21wbGV0ZS5zaCApCi11
c2VzIGEgcHl0aG9uIHByb2dyYW0gdG8gZGV0ZXJtaW5lIHN0YXJ0dXAgc2NyaXB0IGdlbmVyYXRl
ZCBieSBwaXAuCi1Zb3UgY2FuIHNwZWVkIHVwIGNvbXBsZXRpb24gc29tZXdoYXQgYnkgY2hhbmdp
bmcgdGhpcyBzY3JpcHQgdG8gaW5jbHVkZQotICAjIFBZVEhPTl9BUkdDT01QTEVURV9PSwotc28g
dGhlIHRoZSBweXRob24tYXJnY29tcGxldGUtY2hlY2stZWFzeS1pbnN0YWxsLXNjcmlwdCBkb2Vz
IG5vdAotbmVlZCB0byBiZSBjYWxsZWQgdG8gZmluZCB0aGUgZW50cnkgcG9pbnQgb2YgdGhlIGNv
ZGUgYW5kIHNlZSBpZiB0aGF0IGlzCi1tYXJrZWQgIHdpdGggUFlUSE9OX0FSR0NPTVBMRVRFX09L
Ci0KLUlOU1RBTEwvREVCVUdHSU5HCi09PT09PT09PT09PT09PT09PQotVG8gaW5jbHVkZSB0aGlz
IHN1cHBvcnQgaW4gYW5vdGhlciBhcHBsaWNhdGlvbiB0aGF0IGhhcyBzZXR1cC5weSBnZW5lcmF0
ZWQKLXNjcmlwdHM6Ci0tIGFkZCB0aGUgbGluZToKLSAgICAjIFBZVEhPTl9BUkdDT01QTEVURV9P
SwotICBuZWFyIHRoZSB0b3Agb2YgdGhlIG1haW4gcHl0aG9uIGVudHJ5IHBvaW50Ci0tIGluY2x1
ZGUgaW4gdGhlIGZpbGUgY2FsbGluZyBwYXJzZV9hcmdzKCk6Ci0gICAgZnJvbSBfYXJnY29tcGxl
dGUgaW1wb3J0IHRyeV9hcmdjb21wbGV0ZSwgZmlsZXNjb21wbGV0ZXIKLSAgICwgY2FsbCB0cnlf
YXJnY29tcGxldGUganVzdCBiZWZvcmUgcGFyc2VfYXJncygpLCBhbmQgb3B0aW9uYWxseSBhZGQK
LSAgIGZpbGVzY29tcGxldGVyIHRvIHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50cycgYWRkX2FyZ3Vt
ZW50KCkKLUlmIHRoaW5ncyBkbyBub3Qgd29yayByaWdodCBhd2F5OgotLSBzd2l0Y2ggb24gYXJn
Y29tcGxldGUgZGVidWdnaW5nIHdpdGggKGFsc28gaGVscGZ1bCB3aGVuIGRvaW5nIGN1c3RvbQot
ICBjb21wbGV0ZXJzKToKLSAgICBleHBvcnQgX0FSQ19ERUJVRz0xCi0tIHJ1bjoKLSAgICBweXRo
b24tYXJnY29tcGxldGUtY2hlY2stZWFzeS1pbnN0YWxsLXNjcmlwdCAkKHdoaWNoIGFwcG5hbWUp
Ci0gICAgZWNobyAkPwotICB3aWxsIGVjaG8gMCBpZiB0aGUgbWFnaWMgbGluZSBoYXMgYmVlbiBm
b3VuZCwgMSBpZiBub3QKLS0gc29tZXRpbWVzIGl0IGhlbHBzIHRvIGZpbmQgZWFybHkgb24gZXJy
b3JzIHVzaW5nOgotICAgIF9BUkdDT01QTEVURT0xIF9BUkNfREVCVUc9MSBhcHBuYW1lCi0gIHdo
aWNoIHNob3VsZCB0aHJvdyBhIEtleUVycm9yOiAnQ09NUExJTkUnICh3aGljaCBpcyBwcm9wZXJs
eSBzZXQgYnkgdGhlCi0gIGdsb2JhbCBhcmdjb21wbGV0ZSBzY3JpcHQpLgotIiIiCi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
Ci1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWZyb20gZ2xvYiBpbXBvcnQgZ2xvYgotCi0KLWNsYXNz
IEZhc3RGaWxlc0NvbXBsZXRlcjoKLSAgICAnRmFzdCBmaWxlIGNvbXBsZXRlciBjbGFzcycKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXJlY3Rvcmllcz1UcnVlKToKLSAgICAgICAgc2VsZi5k
aXJlY3RvcmllcyA9IGRpcmVjdG9yaWVzCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgcHJlZml4
LCAqKmt3YXJncyk6Ci0gICAgICAgICIiIm9ubHkgY2FsbGVkIG9uIG5vbiBvcHRpb24gY29tcGxl
dGlvbnMiIiIKLSAgICAgICAgaWYgb3MucGF0aC5zZXAgaW4gcHJlZml4WzE6XToKLSAgICAgICAg
ICAgIHByZWZpeF9kaXIgPSBsZW4ob3MucGF0aC5kaXJuYW1lKHByZWZpeCkgKyBvcy5wYXRoLnNl
cCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByZWZpeF9kaXIgPSAwCi0gICAgICAgIGNv
bXBsZXRpb24gPSBbXQotICAgICAgICBnbG9iYmVkID0gW10KLSAgICAgICAgaWYgJyonIG5vdCBp
biBwcmVmaXggYW5kICc/JyBub3QgaW4gcHJlZml4OgotICAgICAgICAgICAgIyB3ZSBhcmUgb24g
dW5peCwgb3RoZXJ3aXNlIG5vIGJhc2gKLSAgICAgICAgICAgIGlmIG5vdCBwcmVmaXggb3IgcHJl
Zml4Wy0xXSA9PSBvcy5wYXRoLnNlcDoKLSAgICAgICAgICAgICAgICBnbG9iYmVkLmV4dGVuZChn
bG9iKHByZWZpeCArICcuKicpKQotICAgICAgICAgICAgcHJlZml4ICs9ICcqJwotICAgICAgICBn
bG9iYmVkLmV4dGVuZChnbG9iKHByZWZpeCkpCi0gICAgICAgIGZvciB4IGluIHNvcnRlZChnbG9i
YmVkKToKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoeCk6Ci0gICAgICAgICAgICAgICAg
eCArPSAnLycKLSAgICAgICAgICAgICMgYXBwZW5kIHN0cmlwcGluZyB0aGUgcHJlZml4IChsaWtl
IGJhc2gsIG5vdCBsaWtlIGNvbXBnZW4pCi0gICAgICAgICAgICBjb21wbGV0aW9uLmFwcGVuZCh4
W3ByZWZpeF9kaXI6XSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KLQotCi1pZiBvcy5lbnZp
cm9uLmdldCgnX0FSR0NPTVBMRVRFJyk6Ci0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgYXJnY29t
cGxldGUuY29tcGxldGVycwotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgc3lzLmV4
aXQoLTEpCi0gICAgZmlsZXNjb21wbGV0ZXIgPSBGYXN0RmlsZXNDb21wbGV0ZXIoKQotCi0gICAg
ZGVmIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpOgotICAgICAgICBhcmdjb21wbGV0ZS5hdXRvY29t
cGxldGUocGFyc2VyLCBhbHdheXNfY29tcGxldGVfb3B0aW9ucz1GYWxzZSkKLWVsc2U6Ci0gICAg
ZGVmIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpOgotICAgICAgICBwYXNzCi0gICAgZmlsZXNjb21w
bGV0ZXIgPSBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fX2luaXRfXy5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODE1YzEzYjQyYzI1YmQzMTQ5ODhkYmFhN2ZmOWY0ZTNkMWQy
ZTVjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotIiIiIHB5dGhvbiBpbnNwZWN0aW9uL2NvZGUgZ2VuZXJhdGlvbiBBUEkgIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCi1mcm9tIC5jb2RlIGltcG9ydCBDb2RlICAjIG5vcWEKLWZyb20gLmNvZGUgaW1wb3J0
IEV4Y2VwdGlvbkluZm8gICMgbm9xYQotZnJvbSAuY29kZSBpbXBvcnQgRnJhbWUgICMgbm9xYQot
ZnJvbSAuY29kZSBpbXBvcnQgVHJhY2ViYWNrICAjIG5vcWEKLWZyb20gLmNvZGUgaW1wb3J0IGdl
dHJhd2NvZGUgICMgbm9xYQotZnJvbSAuc291cmNlIGltcG9ydCBTb3VyY2UgICMgbm9xYQotZnJv
bSAuc291cmNlIGltcG9ydCBjb21waWxlXyBhcyBjb21waWxlICAjIG5vcWEKLWZyb20gLnNvdXJj
ZSBpbXBvcnQgZ2V0ZnNsaW5lbm8gICMgbm9xYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9f
cHkydHJhY2ViYWNrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWFjZjBhNDI4
ZDg4MDY5MWZlMDMwYTgzNWJjMjU4ZDA3ODUwNmYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNl
YmFjay5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLSMgY29waWVkIGZyb20gcHl0
aG9uLTIuNy4zJ3MgdHJhY2ViYWNrLnB5Ci0jIENIQU5HRVM6Ci0jIC0gc29tZV9zdHIgaXMgcmVw
bGFjZWQsIHRyeWluZyB0byBjcmVhdGUgdW5pY29kZSBzdHJpbmdzCi0jCi1mcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBv
cnQgdHlwZXMKLQotCi1kZWYgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KGV0eXBlLCB2YWx1ZSk6Ci0g
ICAgIiIiRm9ybWF0IHRoZSBleGNlcHRpb24gcGFydCBvZiBhIHRyYWNlYmFjay4KLQotICAgIFRo
ZSBhcmd1bWVudHMgYXJlIHRoZSBleGNlcHRpb24gdHlwZSBhbmQgdmFsdWUgc3VjaCBhcyBnaXZl
biBieQotICAgIHN5cy5sYXN0X3R5cGUgYW5kIHN5cy5sYXN0X3ZhbHVlLiBUaGUgcmV0dXJuIHZh
bHVlIGlzIGEgbGlzdCBvZgotICAgIHN0cmluZ3MsIGVhY2ggZW5kaW5nIGluIGEgbmV3bGluZS4K
LQotICAgIE5vcm1hbGx5LCB0aGUgbGlzdCBjb250YWlucyBhIHNpbmdsZSBzdHJpbmc7IGhvd2V2
ZXIsIGZvcgotICAgIFN5bnRheEVycm9yIGV4Y2VwdGlvbnMsIGl0IGNvbnRhaW5zIHNldmVyYWwg
bGluZXMgdGhhdCAod2hlbgotICAgIHByaW50ZWQpIGRpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRp
b24gYWJvdXQgd2hlcmUgdGhlIHN5bnRheAotICAgIGVycm9yIG9jY3VycmVkLgotCi0gICAgVGhl
IG1lc3NhZ2UgaW5kaWNhdGluZyB3aGljaCBleGNlcHRpb24gb2NjdXJyZWQgaXMgYWx3YXlzIHRo
ZSBsYXN0Ci0gICAgc3RyaW5nIGluIHRoZSBsaXN0LgotCi0gICAgIiIiCi0KLSAgICAjIEFuIGlu
c3RhbmNlIHNob3VsZCBub3QgaGF2ZSBhIG1lYW5pbmdmdWwgdmFsdWUgcGFyYW1ldGVyLCBidXQK
LSAgICAjIHNvbWV0aW1lcyBkb2VzLCBwYXJ0aWN1bGFybHkgZm9yIHN0cmluZyBleGNlcHRpb25z
LCBzdWNoIGFzCi0gICAgIyA+Pj4gcmFpc2Ugc3RyaW5nMSwgc3RyaW5nMiAgIyBkZXByZWNhdGVk
Ci0gICAgIwotICAgICMgQ2xlYXIgdGhlc2Ugb3V0IGZpcnN0IGJlY2F1c2UgaXNzdWJ0eXBlKHN0
cmluZzEsIFN5bnRheEVycm9yKQotICAgICMgd291bGQgdGhyb3cgYW5vdGhlciBleGNlcHRpb24g
YW5kIG1hc2sgdGhlIG9yaWdpbmFsIHByb2JsZW0uCi0gICAgaWYgKGlzaW5zdGFuY2UoZXR5cGUs
IEJhc2VFeGNlcHRpb24pIG9yCi0gICAgICAgIGlzaW5zdGFuY2UoZXR5cGUsIHR5cGVzLkluc3Rh
bmNlVHlwZSkgb3IKLSAgICAgICAgICAgIGV0eXBlIGlzIE5vbmUgb3IgdHlwZShldHlwZSkgaXMg
c3RyKToKLSAgICAgICAgcmV0dXJuIFtfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKGV0eXBlLCB2YWx1
ZSldCi0KLSAgICBzdHlwZSA9IGV0eXBlLl9fbmFtZV9fCi0KLSAgICBpZiBub3QgaXNzdWJjbGFz
cyhldHlwZSwgU3ludGF4RXJyb3IpOgotICAgICAgICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhj
X2xpbmUoc3R5cGUsIHZhbHVlKV0KLQotICAgICMgSXQgd2FzIGEgc3ludGF4IGVycm9yOyBzaG93
IGV4YWN0bHkgd2hlcmUgdGhlIHByb2JsZW0gd2FzIGZvdW5kLgotICAgIGxpbmVzID0gW10KLSAg
ICB0cnk6Ci0gICAgICAgIG1zZywgKGZpbGVuYW1lLCBsaW5lbm8sIG9mZnNldCwgYmFkbGluZSkg
PSB2YWx1ZS5hcmdzCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgcGFzcwotICAgIGVs
c2U6Ci0gICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUgb3IgIjxzdHJpbmc+IgotICAgICAgICBs
aW5lcy5hcHBlbmQoJyAgRmlsZSAiJXMiLCBsaW5lICVkXG4nICUgKGZpbGVuYW1lLCBsaW5lbm8p
KQotICAgICAgICBpZiBiYWRsaW5lIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShiYWRsaW5lLCBieXRlcyk6ICAjIHB5dGhvbiAyIG9ubHkKLSAgICAgICAgICAgICAgICBi
YWRsaW5lID0gYmFkbGluZS5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAgICAgICAgICAg
bGluZXMuYXBwZW5kKHUnICAgICVzXG4nICUgYmFkbGluZS5zdHJpcCgpKQotICAgICAgICAgICAg
aWYgb2Zmc2V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGNhcmV0c3BhY2UgPSBiYWRs
aW5lLnJzdHJpcCgnXG4nKVs6b2Zmc2V0XS5sc3RyaXAoKQotICAgICAgICAgICAgICAgICMgbm9u
LXNwYWNlIHdoaXRlc3BhY2UgKGxpa2VzIHRhYnMpIG11c3QgYmUga2VwdCBmb3IgYWxpZ25tZW50
Ci0gICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9ICgoYy5pc3NwYWNlKCkgYW5kIGMgb3IgJyAn
KSBmb3IgYyBpbiBjYXJldHNwYWNlKQotICAgICAgICAgICAgICAgICMgb25seSB0aHJlZSBzcGFj
ZXMgdG8gYWNjb3VudCBmb3Igb2Zmc2V0MSA9PSBwb3MgMAotICAgICAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgnICAgJXNeXG4nICUgJycuam9pbihjYXJldHNwYWNlKSkKLSAgICAgICAgdmFsdWUg
PSBtc2cKLQotICAgIGxpbmVzLmFwcGVuZChfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKHN0eXBlLCB2
YWx1ZSkpCi0gICAgcmV0dXJuIGxpbmVzCi0KLQotZGVmIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUo
ZXR5cGUsIHZhbHVlKToKLSAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGEgc2luZ2xlIGxpbmUgLS0g
bm9ybWFsIGNhc2UgZm9yIGZvcm1hdF9leGNlcHRpb25fb25seSIiIgotICAgIHZhbHVlc3RyID0g
X3NvbWVfc3RyKHZhbHVlKQotICAgIGlmIHZhbHVlIGlzIE5vbmUgb3Igbm90IHZhbHVlc3RyOgot
ICAgICAgICBsaW5lID0gIiVzXG4iICUgZXR5cGUKLSAgICBlbHNlOgotICAgICAgICBsaW5lID0g
IiVzOiAlc1xuIiAlIChldHlwZSwgdmFsdWVzdHIpCi0gICAgcmV0dXJuIGxpbmUKLQotCi1kZWYg
X3NvbWVfc3RyKHZhbHVlKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiB1bmljb2RlKHZhbHVl
KQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVy
biBzdHIodmFsdWUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICBwYXNz
Ci0gICAgcmV0dXJuICc8dW5wcmludGFibGUgJXMgb2JqZWN0PicgJSB0eXBlKHZhbHVlKS5fX25h
bWVfXwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzZmIyMzJiZDQzMGU5YjRmOGFkNzY5ZTMwNTdkZGVmZWMyODFhNjdlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
X2NvZGUvY29kZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDkwNiArMCwwIEBACi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1p
bXBvcnQgc3lzCi1mcm9tIGluc3BlY3QgaW1wb3J0IENPX1ZBUkFSR1MsIENPX1ZBUktFWVdPUkRT
Ci1pbXBvcnQgcmUKLWZyb20gd2Vha3JlZiBpbXBvcnQgcmVmCi1mcm9tIF9weXRlc3QuY29tcGF0
IGltcG9ydCBfUFkyLCBfUFkzLCBQWTM1LCBzYWZlX3N0cgotCi1pbXBvcnQgcHkKLWJ1aWx0aW5f
cmVwciA9IHJlcHIKLQotaWYgX1BZMzoKLSAgICBmcm9tIHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0
X2V4Y2VwdGlvbl9vbmx5Ci1lbHNlOgotICAgIGZyb20gLl9weTJ0cmFjZWJhY2sgaW1wb3J0IGZv
cm1hdF9leGNlcHRpb25fb25seQotCi0KLWNsYXNzIENvZGUob2JqZWN0KToKLSAgICAiIiIgd3Jh
cHBlciBhcm91bmQgUHl0aG9uIGNvZGUgb2JqZWN0cyAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByYXdjb2RlKToKLSAgICAgICAgaWYgbm90IGhhc2F0dHIocmF3Y29kZSwgImNvX2ZpbGVu
YW1lIik6Ci0gICAgICAgICAgICByYXdjb2RlID0gZ2V0cmF3Y29kZShyYXdjb2RlKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gcmF3Y29kZS5jb19maWxlbmFtZQot
ICAgICAgICAgICAgc2VsZi5maXJzdGxpbmVubyA9IHJhd2NvZGUuY29fZmlyc3RsaW5lbm8gLSAx
Ci0gICAgICAgICAgICBzZWxmLm5hbWUgPSByYXdjb2RlLmNvX25hbWUKLSAgICAgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJub3QgYSBjb2Rl
IG9iamVjdDogJXIiICUgKHJhd2NvZGUsKSkKLSAgICAgICAgc2VsZi5yYXcgPSByYXdjb2RlCi0K
LSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNlbGYucmF3ID09
IG90aGVyLnJhdwotCi0gICAgX19oYXNoX18gPSBOb25lCi0KLSAgICBkZWYgX19uZV9fKHNlbGYs
IG90aGVyKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmID09IG90aGVyCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBhIHBhdGggb2JqZWN0
IHBvaW50aW5nIHRvIHNvdXJjZSBjb2RlIChub3RlIHRoYXQgaXQKLSAgICAgICAgbWlnaHQgbm90
IHBvaW50IHRvIGFuIGFjdHVhbGx5IGV4aXN0aW5nIGZpbGUpLiAiIiIKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwoc2VsZi5yYXcuY29fZmlsZW5hbWUpCi0gICAg
ICAgICAgICAjIG1heWJlIGRvbid0IHRyeSB0aGlzIGNoZWNraW5nCi0gICAgICAgICAgICBpZiBu
b3QgcC5jaGVjaygpOgotICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoInB5LnBhdGggY2hl
Y2sgZmFpbGVkLiIpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgIyBYWFgg
bWF5YmUgdHJ5IGhhcmRlciBsaWtlIHRoZSB3ZWlyZCBsb2dpYwotICAgICAgICAgICAgIyBpbiB0
aGUgc3RhbmRhcmQgbGliIFtsaW5lY2FjaGUudXBkYXRlY2FjaGVdIGRvZXM/Ci0gICAgICAgICAg
ICBwID0gc2VsZi5yYXcuY29fZmlsZW5hbWUKLQotICAgICAgICByZXR1cm4gcAotCi0gICAgQHBy
b3BlcnR5Ci0gICAgZGVmIGZ1bGxzb3VyY2Uoc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gYSBf
cHl0ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBmdWxsIHNvdXJjZSBmaWxlIG9mIHRo
ZSBjb2RlCi0gICAgICAgICIiIgotICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUgaW1wb3J0IHNv
dXJjZQotICAgICAgICBmdWxsLCBfID0gc291cmNlLmZpbmRzb3VyY2Uoc2VsZi5yYXcpCi0gICAg
ICAgIHJldHVybiBmdWxsCi0KLSAgICBkZWYgc291cmNlKHNlbGYpOgotICAgICAgICAiIiIgcmV0
dXJuIGEgX3B5dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0aGUgY29kZSBvYmplY3QncyBz
b3VyY2Ugb25seQotICAgICAgICAiIiIKLSAgICAgICAgIyByZXR1cm4gc291cmNlIG9ubHkgZm9y
IHRoYXQgcGFydCBvZiBjb2RlCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAg
IHJldHVybiBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShzZWxmLnJhdykKLQotICAgIGRlZiBnZXRhcmdz
KHNlbGYsIHZhcj1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSB0dXBsZSB3aXRoIHRoZSBh
cmd1bWVudCBuYW1lcyBmb3IgdGhlIGNvZGUgb2JqZWN0Ci0KLSAgICAgICAgICAgIGlmICd2YXIn
IGlzIHNldCBUcnVlIGFsc28gcmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgdmFyaWFibGUgYW5kCi0g
ICAgICAgICAgICBrZXl3b3JkIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQKLSAgICAgICAgIiIiCi0g
ICAgICAgICMgaGFuZGZ1bGwgc2hvcnRjdXQgZm9yIGdldHRpbmcgYXJncwotICAgICAgICByYXcg
PSBzZWxmLnJhdwotICAgICAgICBhcmdjb3VudCA9IHJhdy5jb19hcmdjb3VudAotICAgICAgICBp
ZiB2YXI6Ci0gICAgICAgICAgICBhcmdjb3VudCArPSByYXcuY29fZmxhZ3MgJiBDT19WQVJBUkdT
Ci0gICAgICAgICAgICBhcmdjb3VudCArPSByYXcuY29fZmxhZ3MgJiBDT19WQVJLRVlXT1JEUwot
ICAgICAgICByZXR1cm4gcmF3LmNvX3Zhcm5hbWVzWzphcmdjb3VudF0KLQotCi1jbGFzcyBGcmFt
ZShvYmplY3QpOgotICAgICIiIldyYXBwZXIgYXJvdW5kIGEgUHl0aG9uIGZyYW1lIGhvbGRpbmcg
Zl9sb2NhbHMgYW5kIGZfZ2xvYmFscwotICAgIGluIHdoaWNoIGV4cHJlc3Npb25zIGNhbiBiZSBl
dmFsdWF0ZWQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnJhbWUpOgotICAgICAgICBz
ZWxmLmxpbmVubyA9IGZyYW1lLmZfbGluZW5vIC0gMQotICAgICAgICBzZWxmLmZfZ2xvYmFscyA9
IGZyYW1lLmZfZ2xvYmFscwotICAgICAgICBzZWxmLmZfbG9jYWxzID0gZnJhbWUuZl9sb2NhbHMK
LSAgICAgICAgc2VsZi5yYXcgPSBmcmFtZQotICAgICAgICBzZWxmLmNvZGUgPSBDb2RlKGZyYW1l
LmZfY29kZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzdGF0ZW1lbnQoc2VsZik6Ci0gICAg
ICAgICIiIiBzdGF0ZW1lbnQgdGhpcyBmcmFtZSBpcyBhdCAiIiIKLSAgICAgICAgaW1wb3J0IF9w
eXRlc3QuX2NvZGUKLSAgICAgICAgaWYgc2VsZi5jb2RlLmZ1bGxzb3VyY2UgaXMgTm9uZToKLSAg
ICAgICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIikKLSAgICAgICAgcmV0dXJu
IHNlbGYuY29kZS5mdWxsc291cmNlLmdldHN0YXRlbWVudChzZWxmLmxpbmVubykKLQotICAgIGRl
ZiBldmFsKHNlbGYsIGNvZGUsICoqdmFycyk6Ci0gICAgICAgICIiIiBldmFsdWF0ZSAnY29kZScg
aW4gdGhlIGZyYW1lCi0KLSAgICAgICAgICAgICd2YXJzJyBhcmUgb3B0aW9uYWwgYWRkaXRpb25h
bCBsb2NhbCB2YXJpYWJsZXMKLQotICAgICAgICAgICAgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRo
ZSBldmFsdWF0aW9uCi0gICAgICAgICIiIgotICAgICAgICBmX2xvY2FscyA9IHNlbGYuZl9sb2Nh
bHMuY29weSgpCi0gICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJzKQotICAgICAgICByZXR1cm4g
ZXZhbChjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCi0KLSAgICBkZWYgZXhlY18oc2Vs
ZiwgY29kZSwgKip2YXJzKToKLSAgICAgICAgIiIiIGV4ZWMgJ2NvZGUnIGluIHRoZSBmcmFtZQot
Ci0gICAgICAgICAgICAndmFycycgYXJlIG9wdGlvbmE7IGFkZGl0aW9uYWwgbG9jYWwgdmFyaWFi
bGVzCi0gICAgICAgICIiIgotICAgICAgICBmX2xvY2FscyA9IHNlbGYuZl9sb2NhbHMuY29weSgp
Ci0gICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJzKQotICAgICAgICBweS5idWlsdGluLmV4ZWNf
KGNvZGUsIHNlbGYuZl9nbG9iYWxzLCBmX2xvY2FscykKLQotICAgIGRlZiByZXByKHNlbGYsIG9i
amVjdCk6Ci0gICAgICAgICIiIiByZXR1cm4gYSAnc2FmZScgKG5vbi1yZWN1cnNpdmUsIG9uZS1s
aW5lKSBzdHJpbmcgcmVwciBmb3IgJ29iamVjdCcKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVy
biBweS5pby5zYWZlcmVwcihvYmplY3QpCi0KLSAgICBkZWYgaXNfdHJ1ZShzZWxmLCBvYmplY3Qp
OgotICAgICAgICByZXR1cm4gb2JqZWN0Ci0KLSAgICBkZWYgZ2V0YXJncyhzZWxmLCB2YXI9RmFs
c2UpOgotICAgICAgICAiIiIgcmV0dXJuIGEgbGlzdCBvZiB0dXBsZXMgKG5hbWUsIHZhbHVlKSBm
b3IgYWxsIGFyZ3VtZW50cwotCi0gICAgICAgICAgICBpZiAndmFyJyBpcyBzZXQgVHJ1ZSBhbHNv
IGluY2x1ZGUgdGhlIHZhcmlhYmxlIGFuZCBrZXl3b3JkCi0gICAgICAgICAgICBhcmd1bWVudHMg
d2hlbiBwcmVzZW50Ci0gICAgICAgICIiIgotICAgICAgICByZXR2YWwgPSBbXQotICAgICAgICBm
b3IgYXJnIGluIHNlbGYuY29kZS5nZXRhcmdzKHZhcik6Ci0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgcmV0dmFsLmFwcGVuZCgoYXJnLCBzZWxmLmZfbG9jYWxzW2FyZ10pKQotICAg
ICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIHBhc3MgICAgICMgdGhp
cyBjYW4gb2NjdXIgd2hlbiB1c2luZyBQc3ljbwotICAgICAgICByZXR1cm4gcmV0dmFsCi0KLQot
Y2xhc3MgVHJhY2ViYWNrRW50cnkob2JqZWN0KToKLSAgICAiIiIgYSBzaW5nbGUgZW50cnkgaW4g
YSB0cmFjZWJhY2sgIiIiCi0KLSAgICBfcmVwcl9zdHlsZSA9IE5vbmUKLSAgICBleHByaW5mbyA9
IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdlbnRyeSwgZXhjaW5mbz1Ob25lKToK
LSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KLSAgICAgICAgc2VsZi5fcmF3ZW50cnkg
PSByYXdlbnRyeQotICAgICAgICBzZWxmLmxpbmVubyA9IHJhd2VudHJ5LnRiX2xpbmVubyAtIDEK
LQotICAgIGRlZiBzZXRfcmVwcl9zdHlsZShzZWxmLCBtb2RlKToKLSAgICAgICAgYXNzZXJ0IG1v
ZGUgaW4gKCJzaG9ydCIsICJsb25nIikKLSAgICAgICAgc2VsZi5fcmVwcl9zdHlsZSA9IG1vZGUK
LQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmcmFtZShzZWxmKToKLSAgICAgICAgaW1wb3J0IF9w
eXRlc3QuX2NvZGUKLSAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRnJhbWUoc2VsZi5fcmF3
ZW50cnkudGJfZnJhbWUpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcmVsbGluZShzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYubGluZW5vIC0gc2VsZi5mcmFtZS5jb2RlLmZpcnN0bGluZW5v
Ci0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPFRyYWNlYmFja0Vu
dHJ5ICVzOiVkPiIgJSAoc2VsZi5mcmFtZS5jb2RlLnBhdGgsIHNlbGYubGluZW5vICsgMSkKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzdGF0ZW1lbnQoc2VsZik6Ci0gICAgICAgICIiIiBfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHN0YXRlbWVudCAiIiIKLSAg
ICAgICAgc291cmNlID0gc2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3VyY2UKLSAgICAgICAgcmV0dXJu
IHNvdXJjZS5nZXRzdGF0ZW1lbnQoc2VsZi5saW5lbm8pCi0KLSAgICBAcHJvcGVydHkKLSAgICBk
ZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiIHBhdGggdG8gdGhlIHNvdXJjZSBjb2RlICIiIgot
ICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5jb2RlLnBhdGgKLQotICAgIGRlZiBnZXRsb2NhbHMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmZfbG9jYWxzCi0gICAgbG9jYWxzID0g
cHJvcGVydHkoZ2V0bG9jYWxzLCBOb25lLCBOb25lLCAibG9jYWxzIG9mIHVuZGVybGF5aW5nIGZy
YW1lIikKLQotICAgIGRlZiBnZXRmaXJzdGxpbmVzb3VyY2Uoc2VsZik6Ci0gICAgICAgICMgb24g
Snl0aG9uIHRoaXMgZmlyc3RsaW5lbm8gY2FuIGJlIC0xIGFwcGFyZW50bHkKLSAgICAgICAgcmV0
dXJuIG1heChzZWxmLmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8sIDApCi0KLSAgICBkZWYgZ2V0c291
cmNlKHNlbGYsIGFzdGNhY2hlPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJuIGZhaWxpbmcgc291
cmNlIGNvZGUuICIiIgotICAgICAgICAjIHdlIHVzZSB0aGUgcGFzc2VkIGluIGFzdGNhY2hlIHRv
IG5vdCByZXBhcnNlIGFzdHRyZWVzCi0gICAgICAgICMgd2l0aGluIGV4Y2VwdGlvbiBpbmZvIHBy
aW50aW5nCi0gICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5zb3VyY2UgaW1wb3J0IGdldHN0YXRl
bWVudHJhbmdlX2FzdAotICAgICAgICBzb3VyY2UgPSBzZWxmLmZyYW1lLmNvZGUuZnVsbHNvdXJj
ZQotICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIGtleSA9IGFzdG5vZGUgPSBOb25lCi0gICAgICAgIGlmIGFzdGNhY2hlIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAga2V5ID0gc2VsZi5mcmFtZS5jb2RlLnBhdGgKLSAgICAgICAgICAg
IGlmIGtleSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBhc3Rub2RlID0gYXN0Y2FjaGUu
Z2V0KGtleSwgTm9uZSkKLSAgICAgICAgc3RhcnQgPSBzZWxmLmdldGZpcnN0bGluZXNvdXJjZSgp
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFzdG5vZGUsIF8sIGVuZCA9IGdldHN0YXRlbWVu
dHJhbmdlX2FzdChzZWxmLmxpbmVubywgc291cmNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdG5vZGU9YXN0bm9kZSkKLSAgICAgICAgZXhj
ZXB0IFN5bnRheEVycm9yOgotICAgICAgICAgICAgZW5kID0gc2VsZi5saW5lbm8gKyAxCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBrZXkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgYXN0Y2FjaGVba2V5XSA9IGFzdG5vZGUKLSAgICAgICAgcmV0dXJuIHNvdXJjZVtzdGFydDpl
bmRdCi0KLSAgICBzb3VyY2UgPSBwcm9wZXJ0eShnZXRzb3VyY2UpCi0KLSAgICBkZWYgaXNoaWRk
ZW4oc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBo
YXMgYSB2YXIgX190cmFjZWJhY2toaWRlX18KLSAgICAgICAgICAgIHJlc29sdmluZyB0byBUcnVl
Ci0KLSAgICAgICAgICAgIElmIF9fdHJhY2ViYWNraGlkZV9fIGlzIGEgY2FsbGFibGUsIGl0IGdl
dHMgY2FsbGVkIHdpdGggdGhlCi0gICAgICAgICAgICBFeGNlcHRpb25JbmZvIGluc3RhbmNlIGFu
ZCBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gaGlkZSB0aGUgdHJhY2ViYWNrLgotCi0gICAgICAgICAg
ICBtb3N0bHkgZm9yIGludGVybmFsIHVzZQotICAgICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgdGJoID0gc2VsZi5mcmFtZS5mX2xvY2Fsc1snX190cmFjZWJhY2toaWRlX18nXQot
ICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgdGJoID0gc2VsZi5mcmFtZS5mX2dsb2JhbHNbJ19fdHJhY2ViYWNraGlkZV9fJ10KLSAgICAg
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQot
ICAgICAgICBpZiBjYWxsYWJsZSh0YmgpOgotICAgICAgICAgICAgcmV0dXJuIHRiaChOb25lIGlm
IHNlbGYuX2V4Y2luZm8gaXMgTm9uZSBlbHNlIHNlbGYuX2V4Y2luZm8oKSkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybiB0YmgKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBmbiA9IHN0cihzZWxmLnBhdGgpCi0gICAgICAgIGV4Y2Vw
dCBweS5lcnJvci5FcnJvcjoKLSAgICAgICAgICAgIGZuID0gJz8/PycKLSAgICAgICAgbmFtZSA9
IHNlbGYuZnJhbWUuY29kZS5uYW1lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGxpbmUgPSBz
dHIoc2VsZi5zdGF0ZW1lbnQpLmxzdHJpcCgpCi0gICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVy
cnVwdDoKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAg
ICAgICAgbGluZSA9ICI/Pz8iCi0gICAgICAgIHJldHVybiAiICBGaWxlICVyOiVkIGluICVzXG4g
ICVzXG4iICUgKGZuLCBzZWxmLmxpbmVubyArIDEsIG5hbWUsIGxpbmUpCi0KLSAgICBkZWYgbmFt
ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuY29kZS5yYXcuY29fbmFtZQotICAg
IG5hbWUgPSBwcm9wZXJ0eShuYW1lLCBOb25lLCBOb25lLCAiY29fbmFtZSBvZiB1bmRlcmxheWlu
ZyBjb2RlIikKLQotCi1jbGFzcyBUcmFjZWJhY2sobGlzdCk6Ci0gICAgIiIiIFRyYWNlYmFjayBv
YmplY3RzIGVuY2Fwc3VsYXRlIGFuZCBvZmZlciBoaWdoZXIgbGV2ZWwKLSAgICAgICAgYWNjZXNz
IHRvIFRyYWNlYmFjayBlbnRyaWVzLgotICAgICIiIgotICAgIEVudHJ5ID0gVHJhY2ViYWNrRW50
cnkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YiwgZXhjaW5mbz1Ob25lKToKLSAgICAgICAg
IiIiIGluaXRpYWxpemUgZnJvbSBnaXZlbiBweXRob24gdHJhY2ViYWNrIG9iamVjdCBhbmQgRXhj
ZXB0aW9uSW5mbyAiIiIKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KLSAgICAgICAg
aWYgaGFzYXR0cih0YiwgJ3RiX25leHQnKToKLSAgICAgICAgICAgIGRlZiBmKGN1cik6Ci0gICAg
ICAgICAgICAgICAgd2hpbGUgY3VyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICB5
aWVsZCBzZWxmLkVudHJ5KGN1ciwgZXhjaW5mbz1leGNpbmZvKQotICAgICAgICAgICAgICAgICAg
ICBjdXIgPSBjdXIudGJfbmV4dAotICAgICAgICAgICAgbGlzdC5fX2luaXRfXyhzZWxmLCBmKHRi
KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpc3QuX19pbml0X18oc2VsZiwgdGIpCi0K
LSAgICBkZWYgY3V0KHNlbGYsIHBhdGg9Tm9uZSwgbGluZW5vPU5vbmUsIGZpcnN0bGluZW5vPU5v
bmUsIGV4Y2x1ZGVwYXRoPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJuIGEgVHJhY2ViYWNrIGlu
c3RhbmNlIHdyYXBwaW5nIHBhcnQgb2YgdGhpcyBUcmFjZWJhY2sKLQotICAgICAgICAgICAgYnkg
cHJvdmRpbmcgYW55IGNvbWJpbmF0aW9uIG9mIHBhdGgsIGxpbmVubyBhbmQgZmlyc3RsaW5lbm8s
IHRoZQotICAgICAgICAgICAgZmlyc3QgZnJhbWUgdG8gc3RhcnQgdGhlIHRvLWJlLXJldHVybmVk
IHRyYWNlYmFjayBpcyBkZXRlcm1pbmVkCi0KLSAgICAgICAgICAgIHRoaXMgYWxsb3dzIGN1dHRp
bmcgdGhlIGZpcnN0IHBhcnQgb2YgYSBUcmFjZWJhY2sgaW5zdGFuY2UgZS5nLgotICAgICAgICAg
ICAgZm9yIGZvcm1hdHRpbmcgcmVhc29ucyAocmVtb3Zpbmcgc29tZSB1bmludGVyZXN0aW5nIGJp
dHMgdGhhdCBkZWFsCi0gICAgICAgICAgICB3aXRoIGhhbmRsaW5nIG9mIHRoZSBleGNlcHRpb24v
dHJhY2ViYWNrKQotICAgICAgICAiIiIKLSAgICAgICAgZm9yIHggaW4gc2VsZjoKLSAgICAgICAg
ICAgIGNvZGUgPSB4LmZyYW1lLmNvZGUKLSAgICAgICAgICAgIGNvZGVwYXRoID0gY29kZS5wYXRo
Ci0gICAgICAgICAgICBpZiAoKHBhdGggaXMgTm9uZSBvciBjb2RlcGF0aCA9PSBwYXRoKSBhbmQK
LSAgICAgICAgICAgICAgICAoZXhjbHVkZXBhdGggaXMgTm9uZSBvciBub3QgaGFzYXR0cihjb2Rl
cGF0aCwgJ3JlbHRvJykgb3IKLSAgICAgICAgICAgICAgICAgbm90IGNvZGVwYXRoLnJlbHRvKGV4
Y2x1ZGVwYXRoKSkgYW5kCi0gICAgICAgICAgICAgICAgKGxpbmVubyBpcyBOb25lIG9yIHgubGlu
ZW5vID09IGxpbmVubykgYW5kCi0gICAgICAgICAgICAgICAgICAgIChmaXJzdGxpbmVubyBpcyBO
b25lIG9yIHguZnJhbWUuY29kZS5maXJzdGxpbmVubyA9PSBmaXJzdGxpbmVubykpOgotICAgICAg
ICAgICAgICAgIHJldHVybiBUcmFjZWJhY2soeC5fcmF3ZW50cnksIHNlbGYuX2V4Y2luZm8pCi0g
ICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKLSAg
ICAgICAgdmFsID0gc3VwZXIoVHJhY2ViYWNrLCBzZWxmKS5fX2dldGl0ZW1fXyhrZXkpCi0gICAg
ICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCB0eXBlKHNsaWNlKDApKSk6Ci0gICAgICAgICAgICB2YWwg
PSBzZWxmLl9fY2xhc3NfXyh2YWwpCi0gICAgICAgIHJldHVybiB2YWwKLQotICAgIGRlZiBmaWx0
ZXIoc2VsZiwgZm49bGFtYmRhIHg6IG5vdCB4LmlzaGlkZGVuKCkpOgotICAgICAgICAiIiIgcmV0
dXJuIGEgVHJhY2ViYWNrIGluc3RhbmNlIHdpdGggY2VydGFpbiBpdGVtcyByZW1vdmVkCi0KLSAg
ICAgICAgICAgIGZuIGlzIGEgZnVuY3Rpb24gdGhhdCBnZXRzIGEgc2luZ2xlIGFyZ3VtZW50LCBh
IFRyYWNlYmFja0VudHJ5Ci0gICAgICAgICAgICBpbnN0YW5jZSwgYW5kIHNob3VsZCByZXR1cm4g
VHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCBiZSBhZGRlZAotICAgICAgICAgICAgdG8gdGhlIFRy
YWNlYmFjaywgRmFsc2Ugd2hlbiBub3QKLQotICAgICAgICAgICAgYnkgZGVmYXVsdCB0aGlzIHJl
bW92ZXMgYWxsIHRoZSBUcmFjZWJhY2tFbnRyaWVzIHdoaWNoIGFyZSBoaWRkZW4KLSAgICAgICAg
ICAgIChzZWUgaXNoaWRkZW4oKSBhYm92ZSkKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBU
cmFjZWJhY2soZmlsdGVyKGZuLCBzZWxmKSwgc2VsZi5fZXhjaW5mbykKLQotICAgIGRlZiBnZXRj
cmFzaGVudHJ5KHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGxhc3Qgbm9uLWhpZGRlbiB0cmFj
ZWJhY2sgZW50cnkgdGhhdCBsZWFkCi0gICAgICAgIHRvIHRoZSBleGNlcHRpb24gb2YgYSB0cmFj
ZWJhY2suCi0gICAgICAgICIiIgotICAgICAgICBmb3IgaSBpbiByYW5nZSgtMSwgLWxlbihzZWxm
KSAtIDEsIC0xKToKLSAgICAgICAgICAgIGVudHJ5ID0gc2VsZltpXQotICAgICAgICAgICAgaWYg
bm90IGVudHJ5LmlzaGlkZGVuKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5Ci0gICAg
ICAgIHJldHVybiBzZWxmWy0xXQotCi0gICAgZGVmIHJlY3Vyc2lvbmluZGV4KHNlbGYpOgotICAg
ICAgICAiIiIgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZnJhbWUvVHJhY2ViYWNrRW50cnkgd2hl
cmUgcmVjdXJzaW9uCi0gICAgICAgICAgICBvcmlnaW5hdGVzIGlmIGFwcHJvcHJpYXRlLCBOb25l
IGlmIG5vIHJlY3Vyc2lvbiBvY2N1cnJlZAotICAgICAgICAiIiIKLSAgICAgICAgY2FjaGUgPSB7
fQotICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVyYXRlKHNlbGYpOgotICAgICAgICAgICAg
IyBpZCBmb3IgdGhlIGNvZGUucmF3IGlzIG5lZWRlZCB0byB3b3JrIGFyb3VuZAotICAgICAgICAg
ICAgIyB0aGUgc3RyYW5nZSBtZXRhcHJvZ3JhbW1pbmcgaW4gdGhlIGRlY29yYXRvciBsaWIgZnJv
bSBweXBpCi0gICAgICAgICAgICAjIHdoaWNoIGdlbmVyYXRlcyBjb2RlIG9iamVjdHMgdGhhdCBo
YXZlIGhhc2gvdmFsdWUgZXF1YWxpdHkKLSAgICAgICAgICAgICMgWFhYIG5lZWRzIGEgdGVzdAot
ICAgICAgICAgICAga2V5ID0gZW50cnkuZnJhbWUuY29kZS5wYXRoLCBpZChlbnRyeS5mcmFtZS5j
b2RlLnJhdyksIGVudHJ5LmxpbmVubwotICAgICAgICAgICAgIyBwcmludCAiY2hlY2tpbmcgZm9y
IHJlY3Vyc2lvbiBhdCIsIGtleQotICAgICAgICAgICAgdmFsdWVzID0gY2FjaGUuc2V0ZGVmYXVs
dChrZXksIFtdKQotICAgICAgICAgICAgaWYgdmFsdWVzOgotICAgICAgICAgICAgICAgIGYgPSBl
bnRyeS5mcmFtZQotICAgICAgICAgICAgICAgIGxvYyA9IGYuZl9sb2NhbHMKLSAgICAgICAgICAg
ICAgICBmb3Igb3RoZXJsb2MgaW4gdmFsdWVzOgotICAgICAgICAgICAgICAgICAgICBpZiBmLmlz
X3RydWUoZi5ldmFsKGNvX2VxdWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzE9bG9jLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzI9b3RoZXJsb2Mp
KToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpCi0gICAgICAgICAgICB2YWx1ZXMu
YXBwZW5kKGVudHJ5LmZyYW1lLmZfbG9jYWxzKQotICAgICAgICByZXR1cm4gTm9uZQotCi0KLWNv
X2VxdWFsID0gY29tcGlsZSgnX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMSA9PSBfX3JlY3Vyc2lv
bmNhY2hlX2xvY2Fsc18yJywKLSAgICAgICAgICAgICAgICAgICAnPycsICdldmFsJykKLQotCi1j
bGFzcyBFeGNlcHRpb25JbmZvKG9iamVjdCk6Ci0gICAgIiIiIHdyYXBzIHN5cy5leGNfaW5mbygp
IG9iamVjdHMgYW5kIG9mZmVycwotICAgICAgICBoZWxwIGZvciBuYXZpZ2F0aW5nIHRoZSB0cmFj
ZWJhY2suCi0gICAgIiIiCi0gICAgX3N0cmlwdGV4dCA9ICcnCi0gICAgX2Fzc2VydF9zdGFydF9y
ZXByID0gIkFzc2VydGlvbkVycm9yKHVcJ2Fzc2VydCAiIGlmIF9QWTIgZWxzZSAiQXNzZXJ0aW9u
RXJyb3IoXCdhc3NlcnQgIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHR1cD1Ob25lLCBleHBy
aW5mbz1Ob25lKToKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgaWYgdHVw
IGlzIE5vbmU6Ci0gICAgICAgICAgICB0dXAgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICAgICAg
aWYgZXhwcmluZm8gaXMgTm9uZSBhbmQgaXNpbnN0YW5jZSh0dXBbMV0sIEFzc2VydGlvbkVycm9y
KToKLSAgICAgICAgICAgICAgICBleHByaW5mbyA9IGdldGF0dHIodHVwWzFdLCAnbXNnJywgTm9u
ZSkKLSAgICAgICAgICAgICAgICBpZiBleHByaW5mbyBpcyBOb25lOgotICAgICAgICAgICAgICAg
ICAgICBleHByaW5mbyA9IHB5LmlvLnNhZmVyZXByKHR1cFsxXSkKLSAgICAgICAgICAgICAgICBp
ZiBleHByaW5mbyBhbmQgZXhwcmluZm8uc3RhcnRzd2l0aChzZWxmLl9hc3NlcnRfc3RhcnRfcmVw
cik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0cmlwdGV4dCA9ICdBc3NlcnRpb25FcnJv
cjogJwotICAgICAgICBzZWxmLl9leGNpbmZvID0gdHVwCi0gICAgICAgICM6IHRoZSBleGNlcHRp
b24gY2xhc3MKLSAgICAgICAgc2VsZi50eXBlID0gdHVwWzBdCi0gICAgICAgICM6IHRoZSBleGNl
cHRpb24gaW5zdGFuY2UKLSAgICAgICAgc2VsZi52YWx1ZSA9IHR1cFsxXQotICAgICAgICAjOiB0
aGUgZXhjZXB0aW9uIHJhdyB0cmFjZWJhY2sKLSAgICAgICAgc2VsZi50YiA9IHR1cFsyXQotICAg
ICAgICAjOiB0aGUgZXhjZXB0aW9uIHR5cGUgbmFtZQotICAgICAgICBzZWxmLnR5cGVuYW1lID0g
c2VsZi50eXBlLl9fbmFtZV9fCi0gICAgICAgICM6IHRoZSBleGNlcHRpb24gdHJhY2ViYWNrIChf
cHl0ZXN0Ll9jb2RlLlRyYWNlYmFjayBpbnN0YW5jZSkKLSAgICAgICAgc2VsZi50cmFjZWJhY2sg
PSBfcHl0ZXN0Ll9jb2RlLlRyYWNlYmFjayhzZWxmLnRiLCBleGNpbmZvPXJlZihzZWxmKSkKLQot
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8RXhjZXB0aW9uSW5mbyAl
cyB0Ymxlbj0lZD4iICUgKHNlbGYudHlwZW5hbWUsIGxlbihzZWxmLnRyYWNlYmFjaykpCi0KLSAg
ICBkZWYgZXhjb25seShzZWxmLCB0cnlzaG9ydD1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4g
dGhlIGV4Y2VwdGlvbiBhcyBhIHN0cmluZwotCi0gICAgICAgICAgICB3aGVuICd0cnlzaG9ydCcg
cmVzb2x2ZXMgdG8gVHJ1ZSwgYW5kIHRoZSBleGNlcHRpb24gaXMgYQotICAgICAgICAgICAgX3B5
dGVzdC5fY29kZS5fQXNzZXJ0aW9uRXJyb3IsIG9ubHkgdGhlIGFjdHVhbCBleGNlcHRpb24gcGFy
dCBvZgotICAgICAgICAgICAgdGhlIGV4Y2VwdGlvbiByZXByZXNlbnRhdGlvbiBpcyByZXR1cm5l
ZCAoc28gJ0Fzc2VydGlvbkVycm9yOiAnIGlzCi0gICAgICAgICAgICByZW1vdmVkIGZyb20gdGhl
IGJlZ2lubmluZykKLSAgICAgICAgIiIiCi0gICAgICAgIGxpbmVzID0gZm9ybWF0X2V4Y2VwdGlv
bl9vbmx5KHNlbGYudHlwZSwgc2VsZi52YWx1ZSkKLSAgICAgICAgdGV4dCA9ICcnLmpvaW4obGlu
ZXMpCi0gICAgICAgIHRleHQgPSB0ZXh0LnJzdHJpcCgpCi0gICAgICAgIGlmIHRyeXNob3J0Ogot
ICAgICAgICAgICAgaWYgdGV4dC5zdGFydHN3aXRoKHNlbGYuX3N0cmlwdGV4dCk6Ci0gICAgICAg
ICAgICAgICAgdGV4dCA9IHRleHRbbGVuKHNlbGYuX3N0cmlwdGV4dCk6XQotICAgICAgICByZXR1
cm4gdGV4dAotCi0gICAgZGVmIGVycmlzaW5zdGFuY2Uoc2VsZiwgZXhjKToKLSAgICAgICAgIiIi
IHJldHVybiBUcnVlIGlmIHRoZSBleGNlcHRpb24gaXMgYW4gaW5zdGFuY2Ugb2YgZXhjICIiIgot
ICAgICAgICByZXR1cm4gaXNpbnN0YW5jZShzZWxmLnZhbHVlLCBleGMpCi0KLSAgICBkZWYgX2dl
dHJlcHJjcmFzaChzZWxmKToKLSAgICAgICAgZXhjb25seSA9IHNlbGYuZXhjb25seSh0cnlzaG9y
dD1UcnVlKQotICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrLmdldGNyYXNoZW50cnkoKQot
ICAgICAgICBwYXRoLCBsaW5lbm8gPSBlbnRyeS5mcmFtZS5jb2RlLnJhdy5jb19maWxlbmFtZSwg
ZW50cnkubGluZW5vCi0gICAgICAgIHJldHVybiBSZXByRmlsZUxvY2F0aW9uKHBhdGgsIGxpbmVu
byArIDEsIGV4Y29ubHkpCi0KLSAgICBkZWYgZ2V0cmVwcihzZWxmLCBzaG93bG9jYWxzPUZhbHNl
LCBzdHlsZT0ibG9uZyIsCi0gICAgICAgICAgICAgICAgYWJzcGF0aD1GYWxzZSwgdGJmaWx0ZXI9
VHJ1ZSwgZnVuY2FyZ3M9RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIHN0cigpYWJsZSByZXBy
ZXNlbnRhdGlvbiBvZiB0aGlzIGV4Y2VwdGlvbiBpbmZvLgotICAgICAgICAgICAgc2hvd2xvY2Fs
czogc2hvdyBsb2NhbHMgcGVyIHRyYWNlYmFjayBlbnRyeQotICAgICAgICAgICAgc3R5bGU6IGxv
bmd8c2hvcnR8bm98bmF0aXZlIHRyYWNlYmFjayBzdHlsZQotICAgICAgICAgICAgdGJmaWx0ZXI6
IGhpZGUgZW50cmllcyAod2hlcmUgX190cmFjZWJhY2toaWRlX18gaXMgdHJ1ZSkKLQotICAgICAg
ICAgICAgaW4gY2FzZSBvZiBzdHlsZT09bmF0aXZlLCB0YmZpbHRlciBhbmQgc2hvd2xvY2FscyBp
cyBpZ25vcmVkLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc3R5bGUgPT0gJ25hdGl2ZSc6Ci0g
ICAgICAgICAgICByZXR1cm4gUmVwckV4Y2VwdGlvbkluZm8oUmVwclRyYWNlYmFja05hdGl2ZSgK
LSAgICAgICAgICAgICAgICBweS5zdGQudHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi52YWx1
ZSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFjZWJhY2tbMF0uX3Jhd2VudHJ5LAotICAg
ICAgICAgICAgICAgICkpLCBzZWxmLl9nZXRyZXByY3Jhc2goKSkKLQotICAgICAgICBmbXQgPSBG
b3JtYXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9c2hvd2xvY2Fscywgc3R5bGU9c3R5bGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzcGF0aD1hYnNwYXRoLCB0YmZpbHRlcj10YmZp
bHRlciwgZnVuY2FyZ3M9ZnVuY2FyZ3MpCi0gICAgICAgIHJldHVybiBmbXQucmVwcl9leGNpbmZv
KHNlbGYpCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAgZW50cnkgPSBzZWxmLnRy
YWNlYmFja1stMV0KLSAgICAgICAgbG9jID0gUmVwckZpbGVMb2NhdGlvbihlbnRyeS5wYXRoLCBl
bnRyeS5saW5lbm8gKyAxLCBzZWxmLmV4Y29ubHkoKSkKLSAgICAgICAgcmV0dXJuIHN0cihsb2Mp
Ci0KLSAgICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAgICAgIGVudHJ5ID0gc2VsZi50cmFj
ZWJhY2tbLTFdCi0gICAgICAgIGxvYyA9IFJlcHJGaWxlTG9jYXRpb24oZW50cnkucGF0aCwgZW50
cnkubGluZW5vICsgMSwgc2VsZi5leGNvbmx5KCkpCi0gICAgICAgIHJldHVybiB1bmljb2RlKGxv
YykKLQotICAgIGRlZiBtYXRjaChzZWxmLCByZWdleHApOgotICAgICAgICAiIiIKLSAgICAgICAg
TWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAncmVnZXhwJyBvbiB0aGUgc3RyaW5nIHJlcHJl
c2VudGF0aW9uIG9mCi0gICAgICAgIHRoZSBleGNlcHRpb24uIElmIGl0IG1hdGNoZXMgdGhlbiBU
cnVlIGlzIHJldHVybmVkIChzbyB0aGF0IGl0IGlzCi0gICAgICAgIHBvc3NpYmxlIHRvIHdyaXRl
ICdhc3NlcnQgZXhjaW5mby5tYXRjaCgpJykuIElmIGl0IGRvZXNuJ3QgbWF0Y2ggYW4KLSAgICAg
ICAgQXNzZXJ0aW9uRXJyb3IgaXMgcmFpc2VkLgotICAgICAgICAiIiIKLSAgICAgICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGlmIG5vdCByZS5zZWFyY2gocmVnZXhwLCBzdHIo
c2VsZi52YWx1ZSkpOgotICAgICAgICAgICAgYXNzZXJ0IDAsICJQYXR0ZXJuICd7MCFzfScgbm90
IGZvdW5kIGluICd7MSFzfSciLmZvcm1hdCgKLSAgICAgICAgICAgICAgICByZWdleHAsIHNlbGYu
dmFsdWUpCi0gICAgICAgIHJldHVybiBUcnVlCi0KLQotY2xhc3MgRm9ybWF0dGVkRXhjaW5mbyhv
YmplY3QpOgotICAgICIiIiBwcmVzZW50aW5nIGluZm9ybWF0aW9uIGFib3V0IGZhaWxpbmcgRnVu
Y3Rpb25zIGFuZCBHZW5lcmF0b3JzLiAiIiIKLSAgICAjIGZvciB0cmFjZWJhY2sgZW50cmllcwot
ICAgIGZsb3dfbWFya2VyID0gIj4iCi0gICAgZmFpbF9tYXJrZXIgPSAiRSIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBzaG93bG9jYWxzPUZhbHNlLCBzdHlsZT0ibG9uZyIsIGFic3BhdGg9VHJ1
ZSwgdGJmaWx0ZXI9VHJ1ZSwgZnVuY2FyZ3M9RmFsc2UpOgotICAgICAgICBzZWxmLnNob3dsb2Nh
bHMgPSBzaG93bG9jYWxzCi0gICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQotICAgICAgICBzZWxm
LnRiZmlsdGVyID0gdGJmaWx0ZXIKLSAgICAgICAgc2VsZi5mdW5jYXJncyA9IGZ1bmNhcmdzCi0g
ICAgICAgIHNlbGYuYWJzcGF0aCA9IGFic3BhdGgKLSAgICAgICAgc2VsZi5hc3RjYWNoZSA9IHt9
Ci0KLSAgICBkZWYgX2dldGluZGVudChzZWxmLCBzb3VyY2UpOgotICAgICAgICAjIGZpZ3VyZSBv
dXQgaW5kZW50IGZvciBnaXZlbiBzb3VyY2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9
IHN0cihzb3VyY2UuZ2V0c3RhdGVtZW50KGxlbihzb3VyY2UpIC0gMSkpCi0gICAgICAgIGV4Y2Vw
dCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDog
ICMgbm9xYQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHMgPSBzdHIoc291cmNl
Wy0xXSkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAg
ICAgICByYWlzZQotICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgICAgICAgICAg
cmV0dXJuIDAKLSAgICAgICAgcmV0dXJuIDQgKyAobGVuKHMpIC0gbGVuKHMubHN0cmlwKCkpKQot
Ci0gICAgZGVmIF9nZXRlbnRyeXNvdXJjZShzZWxmLCBlbnRyeSk6Ci0gICAgICAgIHNvdXJjZSA9
IGVudHJ5LmdldHNvdXJjZShzZWxmLmFzdGNhY2hlKQotICAgICAgICBpZiBzb3VyY2UgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UuZGVpbmRlbnQoKQotICAgICAgICBy
ZXR1cm4gc291cmNlCi0KLSAgICBkZWYgX3NhZmVyZXByKHNlbGYsIG9iaik6Ci0gICAgICAgIHJl
dHVybiBweS5pby5zYWZlcmVwcihvYmopCi0KLSAgICBkZWYgcmVwcl9hcmdzKHNlbGYsIGVudHJ5
KToKLSAgICAgICAgaWYgc2VsZi5mdW5jYXJnczoKLSAgICAgICAgICAgIGFyZ3MgPSBbXQotICAg
ICAgICAgICAgZm9yIGFyZ25hbWUsIGFyZ3ZhbHVlIGluIGVudHJ5LmZyYW1lLmdldGFyZ3ModmFy
PVRydWUpOgotICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKChhcmduYW1lLCBzZWxmLl9zYWZl
cmVwcihhcmd2YWx1ZSkpKQotICAgICAgICAgICAgcmV0dXJuIFJlcHJGdW5jQXJncyhhcmdzKQot
Ci0gICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgc291cmNlLCBsaW5lX2luZGV4PS0xLCBleGNpbmZv
PU5vbmUsIHNob3J0PUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBmb3JtYXR0ZWQgYW5kIG1h
cmtlZCB1cCBzb3VyY2UgbGluZXMuICIiIgotICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQot
ICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGlmIHNvdXJjZSBpcyBOb25lIG9yIGxpbmVfaW5k
ZXggPj0gbGVuKHNvdXJjZS5saW5lcyk6Ci0gICAgICAgICAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSgiPz8/IikKLSAgICAgICAgICAgIGxpbmVfaW5kZXggPSAwCi0gICAgICAgIGlm
IGxpbmVfaW5kZXggPCAwOgotICAgICAgICAgICAgbGluZV9pbmRleCArPSBsZW4oc291cmNlKQot
ICAgICAgICBzcGFjZV9wcmVmaXggPSAiICAgICIKLSAgICAgICAgaWYgc2hvcnQ6Ci0gICAgICAg
ICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgc291cmNlLmxpbmVzW2xpbmVfaW5kZXhd
LnN0cmlwKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBzb3VyY2Uu
bGluZXNbOmxpbmVfaW5kZXhdOgotICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzcGFjZV9w
cmVmaXggKyBsaW5lKQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNlbGYuZmxvd19tYXJrZXIg
KyAiICAgIiArIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4XSkKLSAgICAgICAgICAgIGZvciBsaW5l
IGluIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4ICsgMTpdOgotICAgICAgICAgICAgICAgIGxpbmVz
LmFwcGVuZChzcGFjZV9wcmVmaXggKyBsaW5lKQotICAgICAgICBpZiBleGNpbmZvIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgaW5kZW50ID0gNCBpZiBzaG9ydCBlbHNlIHNlbGYuX2dldGluZGVu
dChzb3VyY2UpCi0gICAgICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZXRfZXhjb25seShleGNp
bmZvLCBpbmRlbnQ9aW5kZW50LCBtYXJrYWxsPVRydWUpKQotICAgICAgICByZXR1cm4gbGluZXMK
LQotICAgIGRlZiBnZXRfZXhjb25seShzZWxmLCBleGNpbmZvLCBpbmRlbnQ9NCwgbWFya2FsbD1G
YWxzZSk6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgaW5kZW50ID0gIiAiICogaW5kZW50
Ci0gICAgICAgICMgZ2V0IHRoZSByZWFsIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiBvdXQKLSAgICAg
ICAgZXhsaW5lcyA9IGV4Y2luZm8uZXhjb25seSh0cnlzaG9ydD1UcnVlKS5zcGxpdCgnXG4nKQot
ICAgICAgICBmYWlsaW5kZW50ID0gc2VsZi5mYWlsX21hcmtlciArIGluZGVudFsxOl0KLSAgICAg
ICAgZm9yIGxpbmUgaW4gZXhsaW5lczoKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmYWlsaW5k
ZW50ICsgbGluZSkKLSAgICAgICAgICAgIGlmIG5vdCBtYXJrYWxsOgotICAgICAgICAgICAgICAg
IGZhaWxpbmRlbnQgPSBpbmRlbnQKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgcmVw
cl9sb2NhbHMoc2VsZiwgbG9jYWxzKToKLSAgICAgICAgaWYgc2VsZi5zaG93bG9jYWxzOgotICAg
ICAgICAgICAgbGluZXMgPSBbXQotICAgICAgICAgICAga2V5cyA9IFtsb2MgZm9yIGxvYyBpbiBs
b2NhbHMgaWYgbG9jWzBdICE9ICJAIl0KLSAgICAgICAgICAgIGtleXMuc29ydCgpCi0gICAgICAg
ICAgICBmb3IgbmFtZSBpbiBrZXlzOgotICAgICAgICAgICAgICAgIHZhbHVlID0gbG9jYWxzW25h
bWVdCi0gICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAnX19idWlsdGluc19fJzoKLSAgICAgICAg
ICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJfX2J1aWx0aW5zX18gPSA8YnVpbHRpbnM+IikKLSAg
ICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAjIFRoaXMgZm9ybWF0dGlu
ZyBjb3VsZCBhbGwgYmUgaGFuZGxlZCBieSB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBfcmVw
cigpIGZ1bmN0aW9uLCB3aGljaCBpcyBvbmx5IHJlcHJsaWIuUmVwciBpbgotICAgICAgICAgICAg
ICAgICAgICAjIGRpc2d1aXNlLCBzbyBpcyB2ZXJ5IGNvbmZpZ3VyYWJsZS4KLSAgICAgICAgICAg
ICAgICAgICAgc3RyX3JlcHIgPSBzZWxmLl9zYWZlcmVwcih2YWx1ZSkKLSAgICAgICAgICAgICAg
ICAgICAgIyBpZiBsZW4oc3RyX3JlcHIpIDwgNzAgb3Igbm90IGlzaW5zdGFuY2UodmFsdWUsCi0g
ICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QsIHR1
cGxlLCBkaWN0KSk6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiJS0xMHMgPSAl
cyIgJSAobmFtZSwgc3RyX3JlcHIpKQotICAgICAgICAgICAgICAgICAgICAjIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgICMgICAgc2VsZi5fbGluZSgiJS0xMHMgPVxcIiAlIChuYW1lLCkpCi0g
ICAgICAgICAgICAgICAgICAgICMgICAgIyBYWFgKLSAgICAgICAgICAgICAgICAgICAgIyAgICBw
eS5zdGQucHByaW50LnBwcmludCh2YWx1ZSwgc3RyZWFtPXNlbGYuZXhjaW5mb3dyaXRlcikKLSAg
ICAgICAgICAgIHJldHVybiBSZXByTG9jYWxzKGxpbmVzKQotCi0gICAgZGVmIHJlcHJfdHJhY2Vi
YWNrX2VudHJ5KHNlbGYsIGVudHJ5LCBleGNpbmZvPU5vbmUpOgotICAgICAgICBpbXBvcnQgX3B5
dGVzdC5fY29kZQotICAgICAgICBzb3VyY2UgPSBzZWxmLl9nZXRlbnRyeXNvdXJjZShlbnRyeSkK
LSAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzb3VyY2UgPSBfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgiPz8/IikKLSAgICAgICAgICAgIGxpbmVfaW5kZXggPSAwCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAjIGVudHJ5LmdldGZpcnN0bGluZXNvdXJjZSgpIGNhbiBiZSAt
MSwgc2hvdWxkIGJlIDAgb24ganl0aG9uCi0gICAgICAgICAgICBsaW5lX2luZGV4ID0gZW50cnku
bGluZW5vIC0gbWF4KGVudHJ5LmdldGZpcnN0bGluZXNvdXJjZSgpLCAwKQotCi0gICAgICAgIGxp
bmVzID0gW10KLSAgICAgICAgc3R5bGUgPSBlbnRyeS5fcmVwcl9zdHlsZQotICAgICAgICBpZiBz
dHlsZSBpcyBOb25lOgotICAgICAgICAgICAgc3R5bGUgPSBzZWxmLnN0eWxlCi0gICAgICAgIGlm
IHN0eWxlIGluICgic2hvcnQiLCAibG9uZyIpOgotICAgICAgICAgICAgc2hvcnQgPSBzdHlsZSA9
PSAic2hvcnQiCi0gICAgICAgICAgICByZXByYXJncyA9IHNlbGYucmVwcl9hcmdzKGVudHJ5KSBp
ZiBub3Qgc2hvcnQgZWxzZSBOb25lCi0gICAgICAgICAgICBzID0gc2VsZi5nZXRfc291cmNlKHNv
dXJjZSwgbGluZV9pbmRleCwgZXhjaW5mbywgc2hvcnQ9c2hvcnQpCi0gICAgICAgICAgICBsaW5l
cy5leHRlbmQocykKLSAgICAgICAgICAgIGlmIHNob3J0OgotICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgPSAiaW4gJXMiICUgKGVudHJ5Lm5hbWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBleGNpbmZvIGFuZCBleGNpbmZvLnR5cGVuYW1lIG9yICIiCi0gICAg
ICAgICAgICBwYXRoID0gc2VsZi5fbWFrZXBhdGgoZW50cnkucGF0aCkKLSAgICAgICAgICAgIGZp
bGVsb2NyZXByID0gUmVwckZpbGVMb2NhdGlvbihwYXRoLCBlbnRyeS5saW5lbm8gKyAxLCBtZXNz
YWdlKQotICAgICAgICAgICAgbG9jYWxzcmVwciA9IE5vbmUKLSAgICAgICAgICAgIGlmIG5vdCBz
aG9ydDoKLSAgICAgICAgICAgICAgICBsb2NhbHNyZXByID0gc2VsZi5yZXByX2xvY2FscyhlbnRy
eS5sb2NhbHMpCi0gICAgICAgICAgICByZXR1cm4gUmVwckVudHJ5KGxpbmVzLCByZXByYXJncywg
bG9jYWxzcmVwciwgZmlsZWxvY3JlcHIsIHN0eWxlKQotICAgICAgICBpZiBleGNpbmZvOgotICAg
ICAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2V0X2V4Y29ubHkoZXhjaW5mbywgaW5kZW50PTQp
KQotICAgICAgICByZXR1cm4gUmVwckVudHJ5KGxpbmVzLCBOb25lLCBOb25lLCBOb25lLCBzdHls
ZSkKLQotICAgIGRlZiBfbWFrZXBhdGgoc2VsZiwgcGF0aCk6Ci0gICAgICAgIGlmIG5vdCBzZWxm
LmFic3BhdGg6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbnAgPSBweS5wYXRo
LmxvY2FsKCkuYmVzdHJlbHBhdGgocGF0aCkKLSAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgot
ICAgICAgICAgICAgICAgIHJldHVybiBwYXRoCi0gICAgICAgICAgICBpZiBsZW4obnApIDwgbGVu
KHN0cihwYXRoKSk6Ci0gICAgICAgICAgICAgICAgcGF0aCA9IG5wCi0gICAgICAgIHJldHVybiBw
YXRoCi0KLSAgICBkZWYgcmVwcl90cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHRy
YWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrCi0gICAgICAgIGlmIHNlbGYudGJmaWx0ZXI6Ci0g
ICAgICAgICAgICB0cmFjZWJhY2sgPSB0cmFjZWJhY2suZmlsdGVyKCkKLQotICAgICAgICBpZiBp
c19yZWN1cnNpb25fZXJyb3IoZXhjaW5mbyk6Ci0gICAgICAgICAgICB0cmFjZWJhY2ssIGV4dHJh
bGluZSA9IHNlbGYuX3RydW5jYXRlX3JlY3Vyc2l2ZV90cmFjZWJhY2sodHJhY2ViYWNrKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZXh0cmFsaW5lID0gTm9uZQotCi0gICAgICAgIGxhc3Qg
PSB0cmFjZWJhY2tbLTFdCi0gICAgICAgIGVudHJpZXMgPSBbXQotICAgICAgICBmb3IgaW5kZXgs
IGVudHJ5IGluIGVudW1lcmF0ZSh0cmFjZWJhY2spOgotICAgICAgICAgICAgZWluZm8gPSAobGFz
dCA9PSBlbnRyeSkgYW5kIGV4Y2luZm8gb3IgTm9uZQotICAgICAgICAgICAgcmVwcmVudHJ5ID0g
c2VsZi5yZXByX3RyYWNlYmFja19lbnRyeShlbnRyeSwgZWluZm8pCi0gICAgICAgICAgICBlbnRy
aWVzLmFwcGVuZChyZXByZW50cnkpCi0gICAgICAgIHJldHVybiBSZXByVHJhY2ViYWNrKGVudHJp
ZXMsIGV4dHJhbGluZSwgc3R5bGU9c2VsZi5zdHlsZSkKLQotICAgIGRlZiBfdHJ1bmNhdGVfcmVj
dXJzaXZlX3RyYWNlYmFjayhzZWxmLCB0cmFjZWJhY2spOgotICAgICAgICAiIiIKLSAgICAgICAg
VHJ1bmNhdGUgdGhlIGdpdmVuIHJlY3Vyc2l2ZSB0cmFjZWJhY2sgdHJ5aW5nIHRvIGZpbmQgdGhl
IHN0YXJ0aW5nIHBvaW50Ci0gICAgICAgIG9mIHRoZSByZWN1cnNpb24uCi0KLSAgICAgICAgVGhl
IGRldGVjdGlvbiBpcyBkb25lIGJ5IGdvaW5nIHRocm91Z2ggZWFjaCB0cmFjZWJhY2sgZW50cnkg
YW5kIGZpbmRpbmcgdGhlCi0gICAgICAgIHBvaW50IGluIHdoaWNoIHRoZSBsb2NhbHMgb2YgdGhl
IGZyYW1lIGFyZSBlcXVhbCB0byB0aGUgbG9jYWxzIG9mIGEgcHJldmlvdXMgZnJhbWUgKHNlZSBg
YHJlY3Vyc2lvbmluZGV4KClgYC4KLQotICAgICAgICBIYW5kbGUgdGhlIHNpdHVhdGlvbiB3aGVy
ZSB0aGUgcmVjdXJzaW9uIHByb2Nlc3MgbWlnaHQgcmFpc2UgYW4gZXhjZXB0aW9uIChmb3IgZXhh
bXBsZQotICAgICAgICBjb21wYXJpbmcgbnVtcHkgYXJyYXlzIHVzaW5nIGVxdWFsaXR5IHJhaXNl
cyBhIFR5cGVFcnJvciksIGluIHdoaWNoIGNhc2Ugd2UgZG8gb3VyIGJlc3QgdG8KLSAgICAgICAg
d2FybiB0aGUgdXNlciBvZiB0aGUgZXJyb3IgYW5kIHNob3cgYSBsaW1pdGVkIHRyYWNlYmFjay4K
LSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlY3Vyc2lvbmluZGV4ID0g
dHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4KCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICAgICAgbWF4X2ZyYW1lcyA9IDEwCi0gICAgICAgICAgICBleHRyYWxpbmUgPSAo
Ci0gICAgICAgICAgICAgICAgJyEhISBSZWN1cnNpb24gZXJyb3IgZGV0ZWN0ZWQsIGJ1dCBhbiBl
cnJvciBvY2N1cnJlZCBsb2NhdGluZyB0aGUgb3JpZ2luIG9mIHJlY3Vyc2lvbi5cbicKLSAgICAg
ICAgICAgICAgICAnICBUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBoYXBwZW5lZCB3aGVuIGNvbXBh
cmluZyBsb2NhbHMgaW4gdGhlIHN0YWNrIGZyYW1lOlxuJwotICAgICAgICAgICAgICAgICcgICAg
e2V4Y190eXBlfToge2V4Y19tc2d9XG4nCi0gICAgICAgICAgICAgICAgJyAgRGlzcGxheWluZyBm
aXJzdCBhbmQgbGFzdCB7bWF4X2ZyYW1lc30gc3RhY2sgZnJhbWVzIG91dCBvZiB7dG90YWx9LicK
LSAgICAgICAgICAgICkuZm9ybWF0KGV4Y190eXBlPXR5cGUoZSkuX19uYW1lX18sIGV4Y19tc2c9
c2FmZV9zdHIoZSksIG1heF9mcmFtZXM9bWF4X2ZyYW1lcywgdG90YWw9bGVuKHRyYWNlYmFjaykp
Ci0gICAgICAgICAgICB0cmFjZWJhY2sgPSB0cmFjZWJhY2tbOm1heF9mcmFtZXNdICsgdHJhY2Vi
YWNrWy1tYXhfZnJhbWVzOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHJlY3Vyc2lv
bmluZGV4IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGV4dHJhbGluZSA9ICIhISEgUmVj
dXJzaW9uIGRldGVjdGVkIChzYW1lIGxvY2FscyAmIHBvc2l0aW9uKSIKLSAgICAgICAgICAgICAg
ICB0cmFjZWJhY2sgPSB0cmFjZWJhY2tbOnJlY3Vyc2lvbmluZGV4ICsgMV0KLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gTm9uZQotCi0gICAgICAgIHJldHVy
biB0cmFjZWJhY2ssIGV4dHJhbGluZQotCi0gICAgZGVmIHJlcHJfZXhjaW5mbyhzZWxmLCBleGNp
bmZvKToKLSAgICAgICAgaWYgX1BZMjoKLSAgICAgICAgICAgIHJlcHJ0cmFjZWJhY2sgPSBzZWxm
LnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgICAgICByZXByY3Jhc2ggPSBleGNpbmZv
Ll9nZXRyZXByY3Jhc2goKQotCi0gICAgICAgICAgICByZXR1cm4gUmVwckV4Y2VwdGlvbkluZm8o
cmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVw
cl9jaGFpbiA9IFtdCi0gICAgICAgICAgICBlID0gZXhjaW5mby52YWx1ZQotICAgICAgICAgICAg
ZGVzY3IgPSBOb25lCi0gICAgICAgICAgICB3aGlsZSBlIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIGlmIGV4Y2luZm86Ci0gICAgICAgICAgICAgICAgICAgIHJlcHJ0cmFjZWJhY2sgPSBz
ZWxmLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgICAgICAgICAgICAgIHJlcHJjcmFz
aCA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgIyBmYWxsYmFjayB0byBuYXRpdmUgcmVwciBpZiB0aGUgZXhjZXB0aW9u
IGRvZXNuJ3QgaGF2ZSBhIHRyYWNlYmFjazoKLSAgICAgICAgICAgICAgICAgICAgIyBFeGNlcHRp
b25JbmZvIG9iamVjdHMgcmVxdWlyZSBhIGZ1bGwgdHJhY2ViYWNrIHRvIHdvcmsKLSAgICAgICAg
ICAgICAgICAgICAgcmVwcnRyYWNlYmFjayA9IFJlcHJUcmFjZWJhY2tOYXRpdmUocHkuc3RkLnRy
YWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKHR5cGUoZSksIGUsIE5vbmUpKQotICAgICAgICAgICAg
ICAgICAgICByZXByY3Jhc2ggPSBOb25lCi0KLSAgICAgICAgICAgICAgICByZXByX2NoYWluICs9
IFsocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoLCBkZXNjcildCi0gICAgICAgICAgICAgICAgaWYg
ZS5fX2NhdXNlX18gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGUgPSBlLl9fY2F1
c2VfXwotICAgICAgICAgICAgICAgICAgICBleGNpbmZvID0gRXhjZXB0aW9uSW5mbygodHlwZShl
KSwgZSwgZS5fX3RyYWNlYmFja19fKSkgaWYgZS5fX3RyYWNlYmFja19fIGVsc2UgTm9uZQotICAg
ICAgICAgICAgICAgICAgICBkZXNjciA9ICdUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGly
ZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOicKLSAgICAgICAgICAgICAgICBl
bGlmIChlLl9fY29udGV4dF9fIGlzIG5vdCBOb25lIGFuZCBub3QgZS5fX3N1cHByZXNzX2NvbnRl
eHRfXyk6Ci0gICAgICAgICAgICAgICAgICAgIGUgPSBlLl9fY29udGV4dF9fCi0gICAgICAgICAg
ICAgICAgICAgIGV4Y2luZm8gPSBFeGNlcHRpb25JbmZvKCh0eXBlKGUpLCBlLCBlLl9fdHJhY2Vi
YWNrX18pKSBpZiBlLl9fdHJhY2ViYWNrX18gZWxzZSBOb25lCi0gICAgICAgICAgICAgICAgICAg
IGRlc2NyID0gJ0R1cmluZyBoYW5kbGluZyBvZiB0aGUgYWJvdmUgZXhjZXB0aW9uLCBhbm90aGVy
IGV4Y2VwdGlvbiBvY2N1cnJlZDonCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgZSA9IE5vbmUKLSAgICAgICAgICAgIHJlcHJfY2hhaW4ucmV2ZXJzZSgpCi0gICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uQ2hhaW5SZXByKHJlcHJfY2hhaW4pCi0KLQotY2xhc3Mg
VGVybWluYWxSZXByKG9iamVjdCk6Ci0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIHMg
PSBzZWxmLl9fdW5pY29kZV9fKCkKLSAgICAgICAgaWYgX1BZMjoKLSAgICAgICAgICAgIHMgPSBz
LmVuY29kZSgndXRmLTgnKQotICAgICAgICByZXR1cm4gcwotCi0gICAgZGVmIF9fdW5pY29kZV9f
KHNlbGYpOgotICAgICAgICAjIEZZSSB0aGlzIGlzIGNhbGxlZCBmcm9tIHB5dGVzdC14ZGlzdCdz
IHNlcmlhbGl6YXRpb24gb2YgZXhjZXB0aW9uCi0gICAgICAgICMgaW5mb3JtYXRpb24uCi0gICAg
ICAgIGlvID0gcHkuaW8uVGV4dElPKCkKLSAgICAgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRl
cihmaWxlPWlvKQotICAgICAgICBzZWxmLnRvdGVybWluYWwodHcpCi0gICAgICAgIHJldHVybiBp
by5nZXR2YWx1ZSgpLnN0cmlwKCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAg
cmV0dXJuICI8JXMgaW5zdGFuY2UgYXQgJTB4PiIgJSAoc2VsZi5fX2NsYXNzX18sIGlkKHNlbGYp
KQotCi0KLWNsYXNzIEV4Y2VwdGlvblJlcHIoVGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0
X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc2VjdGlvbnMgPSBbXQotCi0gICAgZGVmIGFkZHNlY3Rp
b24oc2VsZiwgbmFtZSwgY29udGVudCwgc2VwPSItIik6Ci0gICAgICAgIHNlbGYuc2VjdGlvbnMu
YXBwZW5kKChuYW1lLCBjb250ZW50LCBzZXApKQotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwg
dHcpOgotICAgICAgICBmb3IgbmFtZSwgY29udGVudCwgc2VwIGluIHNlbGYuc2VjdGlvbnM6Ci0g
ICAgICAgICAgICB0dy5zZXAoc2VwLCBuYW1lKQotICAgICAgICAgICAgdHcubGluZShjb250ZW50
KQotCi0KLWNsYXNzIEV4Y2VwdGlvbkNoYWluUmVwcihFeGNlcHRpb25SZXByKToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgY2hhaW4pOgotICAgICAgICBzdXBlcihFeGNlcHRpb25DaGFpblJlcHIs
IHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5jaGFpbiA9IGNoYWluCi0gICAgICAgICMg
cmVwcmNyYXNoIGFuZCByZXBydHJhY2ViYWNrIG9mIHRoZSBvdXRlcm1vc3QgKHRoZSBuZXdlc3Qp
IGV4Y2VwdGlvbgotICAgICAgICAjIGluIHRoZSBjaGFpbgotICAgICAgICBzZWxmLnJlcHJ0cmFj
ZWJhY2sgPSBjaGFpblstMV1bMF0KLSAgICAgICAgc2VsZi5yZXByY3Jhc2ggPSBjaGFpblstMV1b
MV0KLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgZm9yIGVsZW1lbnQg
aW4gc2VsZi5jaGFpbjoKLSAgICAgICAgICAgIGVsZW1lbnRbMF0udG90ZXJtaW5hbCh0dykKLSAg
ICAgICAgICAgIGlmIGVsZW1lbnRbMl0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgdHcu
bGluZSgiIikKLSAgICAgICAgICAgICAgICB0dy5saW5lKGVsZW1lbnRbMl0sIHllbGxvdz1UcnVl
KQotICAgICAgICBzdXBlcihFeGNlcHRpb25DaGFpblJlcHIsIHNlbGYpLnRvdGVybWluYWwodHcp
Ci0KLQotY2xhc3MgUmVwckV4Y2VwdGlvbkluZm8oRXhjZXB0aW9uUmVwcik6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCk6Ci0gICAgICAgIHN1cGVyKFJl
cHJFeGNlcHRpb25JbmZvLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYucmVwcnRyYWNl
YmFjayA9IHJlcHJ0cmFjZWJhY2sKLSAgICAgICAgc2VsZi5yZXByY3Jhc2ggPSByZXByY3Jhc2gK
LQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgc2VsZi5yZXBydHJhY2Vi
YWNrLnRvdGVybWluYWwodHcpCi0gICAgICAgIHN1cGVyKFJlcHJFeGNlcHRpb25JbmZvLCBzZWxm
KS50b3Rlcm1pbmFsKHR3KQotCi0KLWNsYXNzIFJlcHJUcmFjZWJhY2soVGVybWluYWxSZXByKToK
LSAgICBlbnRyeXNlcCA9ICJfICIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXByZW50cmll
cywgZXh0cmFsaW5lLCBzdHlsZSk6Ci0gICAgICAgIHNlbGYucmVwcmVudHJpZXMgPSByZXByZW50
cmllcwotICAgICAgICBzZWxmLmV4dHJhbGluZSA9IGV4dHJhbGluZQotICAgICAgICBzZWxmLnN0
eWxlID0gc3R5bGUKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgIyB0
aGUgZW50cmllcyBtaWdodCBoYXZlIGRpZmZlcmVudCBzdHlsZXMKLSAgICAgICAgZm9yIGksIGVu
dHJ5IGluIGVudW1lcmF0ZShzZWxmLnJlcHJlbnRyaWVzKToKLSAgICAgICAgICAgIGlmIGVudHJ5
LnN0eWxlID09ICJsb25nIjoKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQotICAgICAgICAg
ICAgZW50cnkudG90ZXJtaW5hbCh0dykKLSAgICAgICAgICAgIGlmIGkgPCBsZW4oc2VsZi5yZXBy
ZW50cmllcykgLSAxOgotICAgICAgICAgICAgICAgIG5leHRfZW50cnkgPSBzZWxmLnJlcHJlbnRy
aWVzW2kgKyAxXQotICAgICAgICAgICAgICAgIGlmIGVudHJ5LnN0eWxlID09ICJsb25nIiBvciBc
Ci0gICAgICAgICAgICAgICAgICAgZW50cnkuc3R5bGUgPT0gInNob3J0IiBhbmQgbmV4dF9lbnRy
eS5zdHlsZSA9PSAibG9uZyI6Ci0gICAgICAgICAgICAgICAgICAgIHR3LnNlcChzZWxmLmVudHJ5
c2VwKQotCi0gICAgICAgIGlmIHNlbGYuZXh0cmFsaW5lOgotICAgICAgICAgICAgdHcubGluZShz
ZWxmLmV4dHJhbGluZSkKLQotCi1jbGFzcyBSZXByVHJhY2ViYWNrTmF0aXZlKFJlcHJUcmFjZWJh
Y2spOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YmxpbmVzKToKLSAgICAgICAgc2VsZi5zdHls
ZSA9ICJuYXRpdmUiCi0gICAgICAgIHNlbGYucmVwcmVudHJpZXMgPSBbUmVwckVudHJ5TmF0aXZl
KHRibGluZXMpXQotICAgICAgICBzZWxmLmV4dHJhbGluZSA9IE5vbmUKLQotCi1jbGFzcyBSZXBy
RW50cnlOYXRpdmUoVGVybWluYWxSZXByKToKLSAgICBzdHlsZSA9ICJuYXRpdmUiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgdGJsaW5lcyk6Ci0gICAgICAgIHNlbGYubGluZXMgPSB0YmxpbmVz
Ci0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgIHR3LndyaXRlKCIiLmpv
aW4oc2VsZi5saW5lcykpCi0KLQotY2xhc3MgUmVwckVudHJ5KFRlcm1pbmFsUmVwcik6Ci0gICAg
bG9jYWxzc2VwID0gIl8gIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmVzLCByZXByZnVu
Y2FyZ3MsIHJlcHJsb2NhbHMsIGZpbGVsb2NyZXByLCBzdHlsZSk6Ci0gICAgICAgIHNlbGYubGlu
ZXMgPSBsaW5lcwotICAgICAgICBzZWxmLnJlcHJmdW5jYXJncyA9IHJlcHJmdW5jYXJncwotICAg
ICAgICBzZWxmLnJlcHJsb2NhbHMgPSByZXBybG9jYWxzCi0gICAgICAgIHNlbGYucmVwcmZpbGVs
b2MgPSBmaWxlbG9jcmVwcgotICAgICAgICBzZWxmLnN0eWxlID0gc3R5bGUKLQotICAgIGRlZiB0
b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgaWYgc2VsZi5zdHlsZSA9PSAic2hvcnQiOgot
ICAgICAgICAgICAgc2VsZi5yZXByZmlsZWxvYy50b3Rlcm1pbmFsKHR3KQotICAgICAgICAgICAg
Zm9yIGxpbmUgaW4gc2VsZi5saW5lczoKLSAgICAgICAgICAgICAgICByZWQgPSBsaW5lLnN0YXJ0
c3dpdGgoIkUgICAiKQotICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZSwgYm9sZD1UcnVlLCBy
ZWQ9cmVkKQotICAgICAgICAgICAgIyB0dy5saW5lKCIiKQotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIGlmIHNlbGYucmVwcmZ1bmNhcmdzOgotICAgICAgICAgICAgc2VsZi5yZXByZnVuY2Fy
Z3MudG90ZXJtaW5hbCh0dykKLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoKLSAgICAg
ICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0aCgiRSAgICIpCi0gICAgICAgICAgICB0dy5saW5l
KGxpbmUsIGJvbGQ9VHJ1ZSwgcmVkPXJlZCkKLSAgICAgICAgaWYgc2VsZi5yZXBybG9jYWxzOgot
ICAgICAgICAgICAgIyB0dy5zZXAoc2VsZi5sb2NhbHNzZXAsICJMb2NhbHMiKQotICAgICAgICAg
ICAgdHcubGluZSgiIikKLSAgICAgICAgICAgIHNlbGYucmVwcmxvY2Fscy50b3Rlcm1pbmFsKHR3
KQotICAgICAgICBpZiBzZWxmLnJlcHJmaWxlbG9jOgotICAgICAgICAgICAgaWYgc2VsZi5saW5l
czoKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQotICAgICAgICAgICAgc2VsZi5yZXByZmls
ZWxvYy50b3Rlcm1pbmFsKHR3KQotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIHJl
dHVybiAiJXNcbiVzXG4lcyIgJSAoIlxuIi5qb2luKHNlbGYubGluZXMpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYucmVwcmxvY2FscywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jKQotCi0KLWNsYXNzIFJlcHJGaWxlTG9jYXRpb24o
VGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgbGluZW5vLCBtZXNz
YWdlKToKLSAgICAgICAgc2VsZi5wYXRoID0gc3RyKHBhdGgpCi0gICAgICAgIHNlbGYubGluZW5v
ID0gbGluZW5vCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotICAgIGRlZiB0b3Rl
cm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgIyBmaWxlbmFtZSBhbmQgbGluZW5vIG91dHB1dCBm
b3IgZWFjaCBlbnRyeSwKLSAgICAgICAgIyB1c2luZyBhbiBvdXRwdXQgZm9ybWF0IHRoYXQgbW9z
dCBlZGl0b3JzIHVudGVyc3RhbmQKLSAgICAgICAgbXNnID0gc2VsZi5tZXNzYWdlCi0gICAgICAg
IGkgPSBtc2cuZmluZCgiXG4iKQotICAgICAgICBpZiBpICE9IC0xOgotICAgICAgICAgICAgbXNn
ID0gbXNnWzppXQotICAgICAgICB0dy53cml0ZShzZWxmLnBhdGgsIGJvbGQ9VHJ1ZSwgcmVkPVRy
dWUpCi0gICAgICAgIHR3LmxpbmUoIjolczogJXMiICUgKHNlbGYubGluZW5vLCBtc2cpKQotCi0K
LWNsYXNzIFJlcHJMb2NhbHMoVGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bGluZXMpOgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKLQotICAgIGRlZiB0b3Rlcm1pbmFs
KHNlbGYsIHR3KToKLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoKLSAgICAgICAgICAg
IHR3LmxpbmUobGluZSkKLQotCi1jbGFzcyBSZXByRnVuY0FyZ3MoVGVybWluYWxSZXByKToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6Ci0gICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKLQot
ICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgaWYgc2VsZi5hcmdzOgotICAg
ICAgICAgICAgbGluZXNvZmFyID0gIiIKLSAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBz
ZWxmLmFyZ3M6Ci0gICAgICAgICAgICAgICAgbnMgPSAiJXMgPSAlcyIgJSAoc2FmZV9zdHIobmFt
ZSksIHNhZmVfc3RyKHZhbHVlKSkKLSAgICAgICAgICAgICAgICBpZiBsZW4obnMpICsgbGVuKGxp
bmVzb2ZhcikgKyAyID4gdHcuZnVsbHdpZHRoOgotICAgICAgICAgICAgICAgICAgICBpZiBsaW5l
c29mYXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0dy5saW5lKGxpbmVzb2ZhcikKLSAgICAg
ICAgICAgICAgICAgICAgbGluZXNvZmFyID0gbnMKLSAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICBpZiBsaW5lc29mYXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBs
aW5lc29mYXIgKz0gIiwgIiArIG5zCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBsaW5lc29mYXIgPSBucwotICAgICAgICAgICAgaWYgbGluZXNvZmFy
OgotICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZXNvZmFyKQotICAgICAgICAgICAgdHcubGlu
ZSgiIikKLQotCi1kZWYgZ2V0cmF3Y29kZShvYmosIHRyeWNhbGw9VHJ1ZSk6Ci0gICAgIiIiIHJl
dHVybiBjb2RlIG9iamVjdCBmb3IgZ2l2ZW4gZnVuY3Rpb24uICIiIgotICAgIHRyeToKLSAgICAg
ICAgcmV0dXJuIG9iai5fX2NvZGVfXwotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAg
ICAgb2JqID0gZ2V0YXR0cihvYmosICdpbV9mdW5jJywgb2JqKQotICAgICAgICBvYmogPSBnZXRh
dHRyKG9iaiwgJ2Z1bmNfY29kZScsIG9iaikKLSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICdm
X2NvZGUnLCBvYmopCi0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnX19jb2RlX18nLCBvYmop
Ci0gICAgICAgIGlmIHRyeWNhbGwgYW5kIG5vdCBoYXNhdHRyKG9iaiwgJ2NvX2ZpcnN0bGluZW5v
Jyk6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKG9iaiwgJ19fY2FsbF9fJykgYW5kIG5vdCBweS5z
dGQuaW5zcGVjdC5pc2NsYXNzKG9iaik6Ci0gICAgICAgICAgICAgICAgeCA9IGdldHJhd2NvZGUo
b2JqLl9fY2FsbF9fLCB0cnljYWxsPUZhbHNlKQotICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIo
eCwgJ2NvX2ZpcnN0bGluZW5vJyk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB4Ci0gICAg
ICAgIHJldHVybiBvYmoKLQotCi1pZiBQWTM1OiAgIyBSZWN1cnNpb25FcnJvciBpbnRyb2R1Y2Vk
IGluIDMuNQotICAgIGRlZiBpc19yZWN1cnNpb25fZXJyb3IoZXhjaW5mbyk6Ci0gICAgICAgIHJl
dHVybiBleGNpbmZvLmVycmlzaW5zdGFuY2UoUmVjdXJzaW9uRXJyb3IpICAjIG5vcWEKLWVsc2U6
Ci0gICAgZGVmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNpbmZvKToKLSAgICAgICAgaWYgbm90IGV4
Y2luZm8uZXJyaXNpbnN0YW5jZShSdW50aW1lRXJyb3IpOgotICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiAibWF4aW11bSByZWN1cnNpb24g
ZGVwdGggZXhjZWVkZWQiIGluIHN0cihleGNpbmZvLnZhbHVlKQotICAgICAgICBleGNlcHQgVW5p
Y29kZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUv
c291cmNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjM4YzU5OGI3NDlkYjI4
ODYxZDIwMDA2ZTdkZmE4ZjkwZTU1NGJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvc291cmNlLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsNDE1ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgZ2VuZXJhdG9ycywgcHJpbnRfZnVuY3Rpb24KLQotZnJvbSBi
aXNlY3QgaW1wb3J0IGJpc2VjdF9yaWdodAotaW1wb3J0IHN5cwotaW1wb3J0IHNpeAotaW1wb3J0
IGluc3BlY3QKLWltcG9ydCB0b2tlbml6ZQotaW1wb3J0IHB5Ci1jcHlfY29tcGlsZSA9IGNvbXBp
bGUKLQotdHJ5OgotICAgIGltcG9ydCBfYXN0Ci0gICAgZnJvbSBfYXN0IGltcG9ydCBQeUNGX09O
TFlfQVNUIGFzIF9BU1RfRkxBRwotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIF9BU1RfRkxBRyA9
IDAKLSAgICBfYXN0ID0gTm9uZQotCi0KLWNsYXNzIFNvdXJjZShvYmplY3QpOgotICAgICIiIiBh
IGltbXV0YWJsZSBvYmplY3QgaG9sZGluZyBhIHNvdXJjZSBjb2RlIGZyYWdtZW50LAotICAgICAg
ICBwb3NzaWJseSBkZWluZGVudGluZyBpdC4KLSAgICAiIiIKLSAgICBfY29tcGlsZWNvdW50ZXIg
PSAwCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKnBhcnRzLCAqKmt3YXJncyk6Ci0gICAgICAg
IHNlbGYubGluZXMgPSBsaW5lcyA9IFtdCi0gICAgICAgIGRlID0ga3dhcmdzLmdldCgnZGVpbmRl
bnQnLCBUcnVlKQotICAgICAgICByc3RyaXAgPSBrd2FyZ3MuZ2V0KCdyc3RyaXAnLCBUcnVlKQot
ICAgICAgICBmb3IgcGFydCBpbiBwYXJ0czoKLSAgICAgICAgICAgIGlmIG5vdCBwYXJ0OgotICAg
ICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFtdCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBh
cnQsIFNvdXJjZSk6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0gcGFydC5saW5lcwotICAg
ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAg
ICAgICAgIHBhcnRsaW5lcyA9IFt4LnJzdHJpcCgiXG4iKSBmb3IgeCBpbiBwYXJ0XQotICAgICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAg
ICAgICAgIHBhcnRsaW5lcyA9IHBhcnQuc3BsaXQoJ1xuJykKLSAgICAgICAgICAgICAgICBpZiBy
c3RyaXA6Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIHBhcnRsaW5lczoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIHBhcnRsaW5lc1stMV0uc3RyaXAoKToKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAgICAgcGFydGxpbmVzLnBvcCgp
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGdldHNvdXJj
ZShwYXJ0LCBkZWluZGVudD1kZSkubGluZXMKLSAgICAgICAgICAgIGlmIGRlOgotICAgICAgICAg
ICAgICAgIHBhcnRsaW5lcyA9IGRlaW5kZW50KHBhcnRsaW5lcykKLSAgICAgICAgICAgIGxpbmVz
LmV4dGVuZChwYXJ0bGluZXMpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXMgPT0gb3RoZXIubGluZXMKLSAg
ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShv
dGhlciwgc3RyKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYpID09IG90aGVyCi0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIF9faGFzaF9fID0gTm9uZQotCi0gICAgZGVm
IF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCBpbnQp
OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNba2V5XQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgaWYga2V5LnN0ZXAgbm90IGluIChOb25lLCAxKToKLSAgICAgICAgICAgICAgICBy
YWlzZSBJbmRleEVycm9yKCJjYW5ub3Qgc2xpY2UgYSBTb3VyY2Ugd2l0aCBhIHN0ZXAiKQotICAg
ICAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKLSAgICAgICAgICAgIG5ld3NvdXJjZS5saW5l
cyA9IHNlbGYubGluZXNba2V5LnN0YXJ0OmtleS5zdG9wXQotICAgICAgICAgICAgcmV0dXJuIG5l
d3NvdXJjZQotCi0gICAgZGVmIF9fbGVuX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBsZW4oc2Vs
Zi5saW5lcykKLQotICAgIGRlZiBzdHJpcChzZWxmKToKLSAgICAgICAgIiIiIHJldHVybiBuZXcg
c291cmNlIG9iamVjdCB3aXRoIHRyYWlsaW5nCi0gICAgICAgICAgICBhbmQgbGVhZGluZyBibGFu
ayBsaW5lcyByZW1vdmVkLgotICAgICAgICAiIiIKLSAgICAgICAgc3RhcnQsIGVuZCA9IDAsIGxl
bihzZWxmKQotICAgICAgICB3aGlsZSBzdGFydCA8IGVuZCBhbmQgbm90IHNlbGYubGluZXNbc3Rh
cnRdLnN0cmlwKCk6Ci0gICAgICAgICAgICBzdGFydCArPSAxCi0gICAgICAgIHdoaWxlIGVuZCA+
IHN0YXJ0IGFuZCBub3Qgc2VsZi5saW5lc1tlbmQgLSAxXS5zdHJpcCgpOgotICAgICAgICAgICAg
ZW5kIC09IDEKLSAgICAgICAgc291cmNlID0gU291cmNlKCkKLSAgICAgICAgc291cmNlLmxpbmVz
WzpdID0gc2VsZi5saW5lc1tzdGFydDplbmRdCi0gICAgICAgIHJldHVybiBzb3VyY2UKLQotICAg
IGRlZiBwdXRhcm91bmQoc2VsZiwgYmVmb3JlPScnLCBhZnRlcj0nJywgaW5kZW50PScgJyAqIDQp
OgotICAgICAgICAiIiIgcmV0dXJuIGEgY29weSBvZiB0aGUgc291cmNlIG9iamVjdCB3aXRoCi0g
ICAgICAgICAgICAnYmVmb3JlJyBhbmQgJ2FmdGVyJyB3cmFwcGVkIGFyb3VuZCBpdC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIGJlZm9yZSA9IFNvdXJjZShiZWZvcmUpCi0gICAgICAgIGFmdGVyID0g
U291cmNlKGFmdGVyKQotICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2UoKQotICAgICAgICBsaW5l
cyA9IFsoaW5kZW50ICsgbGluZSkgZm9yIGxpbmUgaW4gc2VsZi5saW5lc10KLSAgICAgICAgbmV3
c291cmNlLmxpbmVzID0gYmVmb3JlLmxpbmVzICsgbGluZXMgKyBhZnRlci5saW5lcwotICAgICAg
ICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgaW5kZW50KHNlbGYsIGluZGVudD0nICcgKiA0
KToKLSAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNvdXJjZSBvYmplY3Qgd2l0aAot
ICAgICAgICAgICAgYWxsIGxpbmVzIGluZGVudGVkIGJ5IHRoZSBnaXZlbiBpbmRlbnQtc3RyaW5n
LgotICAgICAgICAiIiIKLSAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKLSAgICAgICAgbmV3
c291cmNlLmxpbmVzID0gWyhpbmRlbnQgKyBsaW5lKSBmb3IgbGluZSBpbiBzZWxmLmxpbmVzXQot
ICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgZ2V0c3RhdGVtZW50KHNlbGYsIGxp
bmVubywgYXNzZXJ0aW9uPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBTb3VyY2Ugc3RhdGVt
ZW50IHdoaWNoIGNvbnRhaW5zIHRoZQotICAgICAgICAgICAgZ2l2ZW4gbGluZW51bWJlciAoY291
bnRlZCBmcm9tIDApLgotICAgICAgICAiIiIKLSAgICAgICAgc3RhcnQsIGVuZCA9IHNlbGYuZ2V0
c3RhdGVtZW50cmFuZ2UobGluZW5vLCBhc3NlcnRpb24pCi0gICAgICAgIHJldHVybiBzZWxmW3N0
YXJ0OmVuZF0KLQotICAgIGRlZiBnZXRzdGF0ZW1lbnRyYW5nZShzZWxmLCBsaW5lbm8sIGFzc2Vy
dGlvbj1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gKHN0YXJ0LCBlbmQpIHR1cGxlIHdoaWNo
IHNwYW5zIHRoZSBtaW5pbWFsCi0gICAgICAgICAgICBzdGF0ZW1lbnQgcmVnaW9uIHdoaWNoIGNv
bnRhaW5pbmcgdGhlIGdpdmVuIGxpbmVuby4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5vdCAo
MCA8PSBsaW5lbm8gPCBsZW4oc2VsZikpOgotICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigi
bGluZW5vIG91dCBvZiByYW5nZSIpCi0gICAgICAgIGFzdCwgc3RhcnQsIGVuZCA9IGdldHN0YXRl
bWVudHJhbmdlX2FzdChsaW5lbm8sIHNlbGYpCi0gICAgICAgIHJldHVybiBzdGFydCwgZW5kCi0K
LSAgICBkZWYgZGVpbmRlbnQoc2VsZiwgb2Zmc2V0PU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJu
IGEgbmV3IHNvdXJjZSBvYmplY3QgZGVpbmRlbnRlZCBieSBvZmZzZXQuCi0gICAgICAgICAgICBJ
ZiBvZmZzZXQgaXMgTm9uZSB0aGVuIGd1ZXNzIGFuIGluZGVudGF0aW9uIG9mZnNldCBmcm9tCi0g
ICAgICAgICAgICB0aGUgZmlyc3Qgbm9uLWJsYW5rIGxpbmUuICBTdWJzZXF1ZW50IGxpbmVzIHdo
aWNoIGhhdmUgYQotICAgICAgICAgICAgbG93ZXIgaW5kZW50YXRpb24gb2Zmc2V0IHdpbGwgYmUg
Y29waWVkIHZlcmJhdGltIGFzCi0gICAgICAgICAgICB0aGV5IGFyZSBhc3N1bWVkIHRvIGJlIHBh
cnQgb2YgbXVsdGlsaW5lcy4KLSAgICAgICAgIiIiCi0gICAgICAgICMgWFhYIG1heWJlIHVzZSB0
aGUgdG9rZW5pemVyIHRvIHByb3Blcmx5IGhhbmRsZSBtdWx0aWxpbmUKLSAgICAgICAgIyAgICAg
c3RyaW5ncyBldGMucHA/Ci0gICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCi0gICAgICAgIG5l
d3NvdXJjZS5saW5lc1s6XSA9IGRlaW5kZW50KHNlbGYubGluZXMsIG9mZnNldCkKLSAgICAgICAg
cmV0dXJuIG5ld3NvdXJjZQotCi0gICAgZGVmIGlzcGFyc2VhYmxlKHNlbGYsIGRlaW5kZW50PVRy
dWUpOgotICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgc291cmNlIGlzIHBhcnNlYWJsZSwgaGV1
cmlzdGljYWxseQotICAgICAgICAgICAgZGVpbmRlbnRpbmcgaXQgYnkgZGVmYXVsdC4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGltcG9ydCBwYXJzZXIKLSAgICAgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgZGVmIHN5bnRheF9jaGVja2VyKHgpOgot
ICAgICAgICAgICAgICAgIHJldHVybiBjb21waWxlKHgsICdhc2QnLCAnZXhlYycpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBzeW50YXhfY2hlY2tlciA9IHBhcnNlci5zdWl0ZQotCi0gICAg
ICAgIGlmIGRlaW5kZW50OgotICAgICAgICAgICAgc291cmNlID0gc3RyKHNlbGYuZGVpbmRlbnQo
KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNvdXJjZSA9IHN0cihzZWxmKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAjIGNvbXBpbGUoc291cmNlKydcbicsICJ4IiwgImV4ZWMiKQot
ICAgICAgICAgICAgc3ludGF4X2NoZWNrZXIoc291cmNlICsgJ1xuJykKLSAgICAgICAgZXhjZXB0
IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICByZXR1
cm4gIlxuIi5qb2luKHNlbGYubGluZXMpCi0KLSAgICBkZWYgY29tcGlsZShzZWxmLCBmaWxlbmFt
ZT1Ob25lLCBtb2RlPSdleGVjJywKLSAgICAgICAgICAgICAgICBmbGFnPWdlbmVyYXRvcnMuY29t
cGlsZXJfZmxhZywKLSAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9MCwgX2dlbmZyYW1lPU5v
bmUpOgotICAgICAgICAiIiIgcmV0dXJuIGNvbXBpbGVkIGNvZGUgb2JqZWN0LiBpZiBmaWxlbmFt
ZSBpcyBOb25lCi0gICAgICAgICAgICBpbnZlbnQgYW4gYXJ0aWZpY2lhbCBmaWxlbmFtZSB3aGlj
aCBkaXNwbGF5cwotICAgICAgICAgICAgdGhlIHNvdXJjZS9saW5lIHBvc2l0aW9uIG9mIHRoZSBj
YWxsZXIgZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3QgZmlsZW5hbWUgb3IgcHku
cGF0aC5sb2NhbChmaWxlbmFtZSkuY2hlY2soZmlsZT0wKToKLSAgICAgICAgICAgIGlmIF9nZW5m
cmFtZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUo
MSkgICMgdGhlIGNhbGxlcgotICAgICAgICAgICAgZm4sIGxpbmVubyA9IF9nZW5mcmFtZS5mX2Nv
ZGUuY29fZmlsZW5hbWUsIF9nZW5mcmFtZS5mX2xpbmVubwotICAgICAgICAgICAgYmFzZSA9ICI8
JWQtY29kZWdlbiAiICUgc2VsZi5fY29tcGlsZWNvdW50ZXIKLSAgICAgICAgICAgIHNlbGYuX19j
bGFzc19fLl9jb21waWxlY291bnRlciArPSAxCi0gICAgICAgICAgICBpZiBub3QgZmlsZW5hbWU6
Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsgJyVzOiVkPicgJSAoZm4sIGxpbmVu
bykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsg
JyVyICVzOiVkPicgJSAoZmlsZW5hbWUsIGZuLCBsaW5lbm8pCi0gICAgICAgIHNvdXJjZSA9ICJc
biIuam9pbihzZWxmLmxpbmVzKSArICdcbicKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY28g
PSBjcHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFnKQotICAgICAgICBleGNl
cHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICAgICBleCA9IHN5cy5leGNfaW5mbygpWzFdCi0gICAg
ICAgICAgICAjIHJlLXJlcHJlc2VudCBzeW50YXggZXJyb3JzIGZyb20gcGFyc2luZyBweXRob24g
c3RyaW5ncwotICAgICAgICAgICAgbXNnbGluZXMgPSBzZWxmLmxpbmVzWzpleC5saW5lbm9dCi0g
ICAgICAgICAgICBpZiBleC5vZmZzZXQ6Ci0gICAgICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5k
KCIgIiAqIGV4Lm9mZnNldCArICdeJykKLSAgICAgICAgICAgIG1zZ2xpbmVzLmFwcGVuZCgiKGNv
ZGUgd2FzIGNvbXBpbGVkIHByb2JhYmx5IGZyb20gaGVyZTogJXMpIiAlIGZpbGVuYW1lKQotICAg
ICAgICAgICAgbmV3ZXggPSBTeW50YXhFcnJvcignXG4nLmpvaW4obXNnbGluZXMpKQotICAgICAg
ICAgICAgbmV3ZXgub2Zmc2V0ID0gZXgub2Zmc2V0Ci0gICAgICAgICAgICBuZXdleC5saW5lbm8g
PSBleC5saW5lbm8KLSAgICAgICAgICAgIG5ld2V4LnRleHQgPSBleC50ZXh0Ci0gICAgICAgICAg
ICByYWlzZSBuZXdleAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgZmxhZyAmIF9BU1Rf
RkxBRzoKLSAgICAgICAgICAgICAgICByZXR1cm4gY28KLSAgICAgICAgICAgIGxpbmVzID0gWyh4
ICsgIlxuIikgZm9yIHggaW4gc2VsZi5saW5lc10KLSAgICAgICAgICAgIHB5LnN0ZC5saW5lY2Fj
aGUuY2FjaGVbZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBmaWxlbmFtZSkKLSAgICAgICAg
ICAgIHJldHVybiBjbwotCi0jCi0jIHB1YmxpYyBBUEkgc2hvcnRjdXQgZnVuY3Rpb25zCi0jCi0K
LQotZGVmIGNvbXBpbGVfKHNvdXJjZSwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0nZXhlYycsIGZsYWdz
PWdlbmVyYXRvcnMuY29tcGlsZXJfZmxhZywgZG9udF9pbmhlcml0PTApOgotICAgICIiIiBjb21w
aWxlIHRoZSBnaXZlbiBzb3VyY2UgdG8gYSByYXcgY29kZSBvYmplY3QsCi0gICAgICAgIGFuZCBt
YWludGFpbiBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBhbGxvd3MgbGF0ZXIKLSAgICAgICAgcmV0
cmlldmFsIG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGNvZGUgb2JqZWN0Ci0gICAgICAgIGFu
ZCBhbnkgcmVjdXJzaXZlbHkgY3JlYXRlZCBjb2RlIG9iamVjdHMuCi0gICAgIiIiCi0gICAgaWYg
X2FzdCBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZShzb3VyY2UsIF9hc3QuQVNUKToKLSAgICAg
ICAgIyBYWFggc2hvdWxkIFNvdXJjZSBzdXBwb3J0IGhhdmluZyBBU1Q/Ci0gICAgICAgIHJldHVy
biBjcHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFncywgZG9udF9pbmhlcml0
KQotICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkgICMgdGhlIGNhbGxlcgotICAgIHMg
PSBTb3VyY2Uoc291cmNlKQotICAgIGNvID0gcy5jb21waWxlKGZpbGVuYW1lLCBtb2RlLCBmbGFn
cywgX2dlbmZyYW1lPV9nZW5mcmFtZSkKLSAgICByZXR1cm4gY28KLQotCi1kZWYgZ2V0ZnNsaW5l
bm8ob2JqKToKLSAgICAiIiIgUmV0dXJuIHNvdXJjZSBsb2NhdGlvbiAocGF0aCwgbGluZW5vKSBm
b3IgdGhlIGdpdmVuIG9iamVjdC4KLSAgICBJZiB0aGUgc291cmNlIGNhbm5vdCBiZSBkZXRlcm1p
bmVkIHJldHVybiAoIiIsIC0xKQotICAgICIiIgotICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0g
ICAgdHJ5OgotICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKG9iaikKLSAgICBleGNl
cHQgVHlwZUVycm9yOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmbiA9IChweS5zdGQuaW5z
cGVjdC5nZXRzb3VyY2VmaWxlKG9iaikgb3IKLSAgICAgICAgICAgICAgICAgIHB5LnN0ZC5pbnNw
ZWN0LmdldGZpbGUob2JqKSkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAg
IHJldHVybiAiIiwgLTEKLQotICAgICAgICBmc3BhdGggPSBmbiBhbmQgcHkucGF0aC5sb2NhbChm
bikgb3IgTm9uZQotICAgICAgICBsaW5lbm8gPSAtMQotICAgICAgICBpZiBmc3BhdGg6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgXywgbGluZW5vID0gZmluZHNvdXJjZShvYmop
Ci0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ZWxzZToKLSAgICAgICAgZnNwYXRoID0gY29kZS5wYXRoCi0gICAgICAgIGxpbmVubyA9IGNvZGUu
Zmlyc3RsaW5lbm8KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lbm8sIGludCkKLSAgICByZXR1
cm4gZnNwYXRoLCBsaW5lbm8KLQotIwotIyBoZWxwZXIgZnVuY3Rpb25zCi0jCi0KLQotZGVmIGZp
bmRzb3VyY2Uob2JqKToKLSAgICB0cnk6Ci0gICAgICAgIHNvdXJjZWxpbmVzLCBsaW5lbm8gPSBw
eS5zdGQuaW5zcGVjdC5maW5kc291cmNlKG9iaikKLSAgICBleGNlcHQgcHkuYnVpbHRpbi5fc3lz
ZXg6Ci0gICAgICAgIHJhaXNlCi0gICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAgIHJldHVybiBO
b25lLCAtMQotICAgIHNvdXJjZSA9IFNvdXJjZSgpCi0gICAgc291cmNlLmxpbmVzID0gW2xpbmUu
cnN0cmlwKCkgZm9yIGxpbmUgaW4gc291cmNlbGluZXNdCi0gICAgcmV0dXJuIHNvdXJjZSwgbGlu
ZW5vCi0KLQotZGVmIGdldHNvdXJjZShvYmosICoqa3dhcmdzKToKLSAgICBpbXBvcnQgX3B5dGVz
dC5fY29kZQotICAgIG9iaiA9IF9weXRlc3QuX2NvZGUuZ2V0cmF3Y29kZShvYmopCi0gICAgdHJ5
OgotICAgICAgICBzdHJzcmMgPSBpbnNwZWN0LmdldHNvdXJjZShvYmopCi0gICAgZXhjZXB0IElu
ZGVudGF0aW9uRXJyb3I6Ci0gICAgICAgIHN0cnNyYyA9ICJcIkJ1Z2d5IHB5dGhvbiB2ZXJzaW9u
IGNvbnNpZGVyIHVwZ3JhZGluZywgY2Fubm90IGdldCBzb3VyY2VcIiIKLSAgICBhc3NlcnQgaXNp
bnN0YW5jZShzdHJzcmMsIHN0cikKLSAgICByZXR1cm4gU291cmNlKHN0cnNyYywgKiprd2FyZ3Mp
Ci0KLQotZGVmIGRlaW5kZW50KGxpbmVzLCBvZmZzZXQ9Tm9uZSk6Ci0gICAgaWYgb2Zmc2V0IGlz
IE5vbmU6Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgbGluZSA9IGxp
bmUuZXhwYW5kdGFicygpCi0gICAgICAgICAgICBzID0gbGluZS5sc3RyaXAoKQotICAgICAgICAg
ICAgaWYgczoKLSAgICAgICAgICAgICAgICBvZmZzZXQgPSBsZW4obGluZSkgLSBsZW4ocykKLSAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb2Zmc2V0ID0g
MAotICAgIGlmIG9mZnNldCA9PSAwOgotICAgICAgICByZXR1cm4gbGlzdChsaW5lcykKLSAgICBu
ZXdsaW5lcyA9IFtdCi0KLSAgICBkZWYgcmVhZGxpbmVfZ2VuZXJhdG9yKGxpbmVzKToKLSAgICAg
ICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgICAgICB5aWVsZCBsaW5lICsgJ1xuJwotICAg
ICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgeWllbGQgJycKLQotICAgIGl0ID0gcmVhZGxp
bmVfZ2VuZXJhdG9yKGxpbmVzKQotCi0gICAgdHJ5OgotICAgICAgICBmb3IgXywgXywgKHNsaW5l
LCBfKSwgKGVsaW5lLCBfKSwgXyBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMobGFtYmRhOiBu
ZXh0KGl0KSk6Ci0gICAgICAgICAgICBpZiBzbGluZSA+IGxlbihsaW5lcyk6Ci0gICAgICAgICAg
ICAgICAgYnJlYWsgICMgRW5kIG9mIGlucHV0IHJlYWNoZWQKLSAgICAgICAgICAgIGlmIHNsaW5l
ID4gbGVuKG5ld2xpbmVzKToKLSAgICAgICAgICAgICAgICBsaW5lID0gbGluZXNbc2xpbmUgLSAx
XS5leHBhbmR0YWJzKCkKLSAgICAgICAgICAgICAgICBpZiBsaW5lLmxzdHJpcCgpIGFuZCBsaW5l
WzpvZmZzZXRdLmlzc3BhY2UoKToKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmVbb2Zm
c2V0Ol0gICMgRGVpbmRlbnQKLSAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZSkK
LQotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2xpbmUsIGVsaW5lKToKLSAgICAgICAgICAg
ICAgICAjIERvbid0IGRlaW5kZW50IGNvbnRpbnVpbmcgbGluZXMgb2YKLSAgICAgICAgICAgICAg
ICAjIG11bHRpbGluZSB0b2tlbnMgKGkuZS4gbXVsdGlsaW5lIHN0cmluZ3MpCi0gICAgICAgICAg
ICAgICAgbmV3bGluZXMuYXBwZW5kKGxpbmVzW2ldKQotICAgIGV4Y2VwdCAoSW5kZW50YXRpb25F
cnJvciwgdG9rZW5pemUuVG9rZW5FcnJvcik6Ci0gICAgICAgIHBhc3MKLSAgICAjIEFkZCBhbnkg
bGluZXMgd2UgZGlkbid0IHNlZS4gRS5nLiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZC4KLSAg
ICBuZXdsaW5lcy5leHRlbmQobGluZXNbbGVuKG5ld2xpbmVzKTpdKQotICAgIHJldHVybiBuZXds
aW5lcwotCi0KLWRlZiBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIG5vZGUpOgotICAg
IGltcG9ydCBhc3QKLSAgICAjIGZsYXR0ZW4gYWxsIHN0YXRlbWVudHMgYW5kIGV4Y2VwdCBoYW5k
bGVycyBpbnRvIG9uZSBsaW5lbm8tbGlzdAotICAgICMgQVNUJ3MgbGluZSBudW1iZXJzIHN0YXJ0
IGluZGV4aW5nIGF0IDEKLSAgICB2YWx1ZXMgPSBbXQotICAgIGZvciB4IGluIGFzdC53YWxrKG5v
ZGUpOgotICAgICAgICBpZiBpc2luc3RhbmNlKHgsIF9hc3Quc3RtdCkgb3IgaXNpbnN0YW5jZSh4
LCBfYXN0LkV4Y2VwdEhhbmRsZXIpOgotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh4LmxpbmVu
byAtIDEpCi0gICAgICAgICAgICBmb3IgbmFtZSBpbiAiZmluYWxib2R5IiwgIm9yZWxzZSI6Ci0g
ICAgICAgICAgICAgICAgdmFsID0gZ2V0YXR0cih4LCBuYW1lLCBOb25lKQotICAgICAgICAgICAg
ICAgIGlmIHZhbDoKLSAgICAgICAgICAgICAgICAgICAgIyB0cmVhdCB0aGUgZmluYWxseS9vcmVs
c2UgcGFydCBhcyBpdHMgb3duIHN0YXRlbWVudAotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMu
YXBwZW5kKHZhbFswXS5saW5lbm8gLSAxIC0gMSkKLSAgICB2YWx1ZXMuc29ydCgpCi0gICAgaW5z
ZXJ0X2luZGV4ID0gYmlzZWN0X3JpZ2h0KHZhbHVlcywgbGluZW5vKQotICAgIHN0YXJ0ID0gdmFs
dWVzW2luc2VydF9pbmRleCAtIDFdCi0gICAgaWYgaW5zZXJ0X2luZGV4ID49IGxlbih2YWx1ZXMp
OgotICAgICAgICBlbmQgPSBOb25lCi0gICAgZWxzZToKLSAgICAgICAgZW5kID0gdmFsdWVzW2lu
c2VydF9pbmRleF0KLSAgICByZXR1cm4gc3RhcnQsIGVuZAotCi0KLWRlZiBnZXRzdGF0ZW1lbnRy
YW5nZV9hc3QobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSwgYXN0bm9kZT1Ob25lKToK
LSAgICBpZiBhc3Rub2RlIGlzIE5vbmU6Ci0gICAgICAgIGNvbnRlbnQgPSBzdHIoc291cmNlKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhc3Rub2RlID0gY29tcGlsZShjb250ZW50LCAic291
cmNlIiwgImV4ZWMiLCAxMDI0KSAgIyAxMDI0IGZvciBBU1QKLSAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3I6Ci0gICAgICAgICAgICBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2Vfb2xkKGxp
bmVubywgc291cmNlLCBhc3NlcnRpb24pCi0gICAgICAgICAgICByZXR1cm4gTm9uZSwgc3RhcnQs
IGVuZAotICAgIHN0YXJ0LCBlbmQgPSBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIGFz
dG5vZGUpCi0gICAgIyB3ZSBuZWVkIHRvIGNvcnJlY3QgdGhlIGVuZDoKLSAgICAjIC0gYXN0LXBh
cnNpbmcgc3RyaXBzIGNvbW1lbnRzCi0gICAgIyAtIHRoZXJlIG1pZ2h0IGJlIGVtcHR5IGxpbmVz
Ci0gICAgIyAtIHdlIG1pZ2h0IGhhdmUgbGVzc2VyIGluZGVudGVkIGNvZGUgYmxvY2tzIGF0IHRo
ZSBlbmQKLSAgICBpZiBlbmQgaXMgTm9uZToKLSAgICAgICAgZW5kID0gbGVuKHNvdXJjZS5saW5l
cykKLQotICAgIGlmIGVuZCA+IHN0YXJ0ICsgMToKLSAgICAgICAgIyBtYWtlIHN1cmUgd2UgZG9u
J3Qgc3BhbiBkaWZmZXJlbnRseSBpbmRlbnRlZCBjb2RlIGJsb2NrcwotICAgICAgICAjIGJ5IHVz
aW5nIHRoZSBCbG9ja0ZpbmRlciBoZWxwZXIgdXNlZCB3aGljaCBpbnNwZWN0LmdldHNvdXJjZSgp
IHVzZXMgaXRzZWxmCi0gICAgICAgIGJsb2NrX2ZpbmRlciA9IGluc3BlY3QuQmxvY2tGaW5kZXIo
KQotICAgICAgICAjIGlmIHdlIHN0YXJ0IHdpdGggYW4gaW5kZW50ZWQgbGluZSwgcHV0IGJsb2Nr
ZmluZGVyIHRvICJzdGFydGVkIiBtb2RlCi0gICAgICAgIGJsb2NrX2ZpbmRlci5zdGFydGVkID0g
c291cmNlLmxpbmVzW3N0YXJ0XVswXS5pc3NwYWNlKCkKLSAgICAgICAgaXQgPSAoKHggKyAiXG4i
KSBmb3IgeCBpbiBzb3VyY2UubGluZXNbc3RhcnQ6ZW5kXSkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgZm9yIHRvayBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMobGFtYmRhOiBuZXh0KGl0
KSk6Ci0gICAgICAgICAgICAgICAgYmxvY2tfZmluZGVyLnRva2VuZWF0ZXIoKnRvaykKLSAgICAg
ICAgZXhjZXB0IChpbnNwZWN0LkVuZE9mQmxvY2ssIEluZGVudGF0aW9uRXJyb3IpOgotICAgICAg
ICAgICAgZW5kID0gYmxvY2tfZmluZGVyLmxhc3QgKyBzdGFydAotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgotICAgICAgICAgICAgcGFzcwotCi0gICAgIyB0aGUgZW5kIG1pZ2h0IHN0aWxsIHBv
aW50IHRvIGEgY29tbWVudCBvciBlbXB0eSBsaW5lLCBjb3JyZWN0IGl0Ci0gICAgd2hpbGUgZW5k
OgotICAgICAgICBsaW5lID0gc291cmNlLmxpbmVzW2VuZCAtIDFdLmxzdHJpcCgpCi0gICAgICAg
IGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpIG9yIG5vdCBsaW5lOgotICAgICAgICAgICAgZW5kIC09
IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgcmV0dXJuIGFzdG5vZGUs
IHN0YXJ0LCBlbmQKLQotCi1kZWYgZ2V0c3RhdGVtZW50cmFuZ2Vfb2xkKGxpbmVubywgc291cmNl
LCBhc3NlcnRpb249RmFsc2UpOgotICAgICIiIiByZXR1cm4gKHN0YXJ0LCBlbmQpIHR1cGxlIHdo
aWNoIHNwYW5zIHRoZSBtaW5pbWFsCi0gICAgICAgIHN0YXRlbWVudCByZWdpb24gd2hpY2ggY29u
dGFpbmluZyB0aGUgZ2l2ZW4gbGluZW5vLgotICAgICAgICByYWlzZSBhbiBJbmRleEVycm9yIGlm
IG5vIHN1Y2ggc3RhdGVtZW50cmFuZ2UgY2FuIGJlIGZvdW5kLgotICAgICIiIgotICAgICMgWFhY
IHRoaXMgbG9naWMgaXMgb25seSB1c2VkIG9uIHB5dGhvbjIuNCBhbmQgYmVsb3cKLSAgICAjIDEu
IGZpbmQgdGhlIHN0YXJ0IG9mIHRoZSBzdGF0ZW1lbnQKLSAgICBmcm9tIGNvZGVvcCBpbXBvcnQg
Y29tcGlsZV9jb21tYW5kCi0gICAgZm9yIHN0YXJ0IGluIHJhbmdlKGxpbmVubywgLTEsIC0xKToK
LSAgICAgICAgaWYgYXNzZXJ0aW9uOgotICAgICAgICAgICAgbGluZSA9IHNvdXJjZS5saW5lc1tz
dGFydF0KLSAgICAgICAgICAgICMgdGhlIGZvbGxvd2luZyBsaW5lcyBhcmUgbm90IGZ1bGx5IHRl
c3RlZCwgY2hhbmdlIHdpdGggY2FyZQotICAgICAgICAgICAgaWYgJ3N1cGVyJyBpbiBsaW5lIGFu
ZCAnc2VsZicgaW4gbGluZSBhbmQgJ19faW5pdF9fJyBpbiBsaW5lOgotICAgICAgICAgICAgICAg
IHJhaXNlIEluZGV4RXJyb3IoImxpa2VseSBhIHN1YmNsYXNzIikKLSAgICAgICAgICAgIGlmICJh
c3NlcnQiIG5vdCBpbiBsaW5lIGFuZCAicmFpc2UiIG5vdCBpbiBsaW5lOgotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgIHRyeWxpbmVzID0gc291cmNlLmxpbmVzW3N0YXJ0OmxpbmVu
byArIDFdCi0gICAgICAgICMgcXVpY2sgaGFjayB0byBwcmVwYXJlIHBhcnNpbmcgYW4gaW5kZW50
ZWQgbGluZSB3aXRoCi0gICAgICAgICMgY29tcGlsZV9jb21tYW5kKCkgKHdoaWNoIGVycm9ycyBv
biAicmV0dXJuIiBvdXRzaWRlIGRlZnMpCi0gICAgICAgIHRyeWxpbmVzLmluc2VydCgwLCAnZGVm
IHh4eCgpOicpCi0gICAgICAgIHRyeXNvdXJjZSA9ICdcbiAnLmpvaW4odHJ5bGluZXMpCi0gICAg
ICAgICMgICAgICAgICAgICAgIF4gc3BhY2UgaGVyZQotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBjb21waWxlX2NvbW1hbmQodHJ5c291cmNlKQotICAgICAgICBleGNlcHQgKFN5bnRheEVycm9y
LCBPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAg
ICAgICAgIyAyLiBmaW5kIHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAotICAgICAgICBmb3IgZW5k
IGluIHJhbmdlKGxpbmVubyArIDEsIGxlbihzb3VyY2UpICsgMSk6Ci0gICAgICAgICAgICB0cnlz
b3VyY2UgPSBzb3VyY2Vbc3RhcnQ6ZW5kXQotICAgICAgICAgICAgaWYgdHJ5c291cmNlLmlzcGFy
c2VhYmxlKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0LCBlbmQKLSAgICByYWlzZSBT
eW50YXhFcnJvcigibm8gdmFsaWQgc291cmNlIHJhbmdlIGFyb3VuZCBsaW5lICVkICIgJSAobGlu
ZW5vLCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODIyMzM0ZjNmOGVkYTk2NmEyZDE4ZGVkYTcyZTlkOTAyZjg3
ZDcxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fX2luaXRfXy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvc291
cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9fX2luaXRf
Xy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDhlOThjODVhYTJiYmRlOGRmNWMwNzNiYTliNjQ1ZmNj
MzI1N2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMTQ2ICswLDAgQEAKLSIiIgotc3VwcG9ydCBmb3IgcHJlc2VudGluZyBkZXRhaWxlZCBpbmZv
cm1hdGlvbiBpbiBmYWlsaW5nIGFzc2VydGlvbnMuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBzeXMK
LWltcG9ydCBzaXgKLQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdXRpbAotZnJvbSBf
cHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgcmV3cml0ZQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBp
bXBvcnQgdHJ1bmNhdGUKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdy
b3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9u
KCctLWFzc2VydCcsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAg
ICAgICAgICAgICAgICBkZXN0PSJhc3NlcnRtb2RlIiwKLSAgICAgICAgICAgICAgICAgICAgY2hv
aWNlcz0oInJld3JpdGUiLCAicGxhaW4iLCksCi0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
InJld3JpdGUiLAotICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJNT0RFIiwKLSAgICAgICAg
ICAgICAgICAgICAgaGVscD0iIiJDb250cm9sIGFzc2VydGlvbiBkZWJ1Z2dpbmcgdG9vbHMuICAn
cGxhaW4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybXMgbm8gYXNzZXJ0aW9u
IGRlYnVnZ2luZy4gICdyZXdyaXRlJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGUg
ZGVmYXVsdCkgcmV3cml0ZXMgYXNzZXJ0IHN0YXRlbWVudHMgaW4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0IG1vZHVsZXMgb24gaW1wb3J0IHRvIHByb3ZpZGUgYXNzZXJ0Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbiBpbmZvcm1hdGlvbi4iIiIpCi0KLQot
ZGVmIHJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlKCpuYW1lcyk6Ci0gICAgIiIiUmVnaXN0ZXIgb25l
IG9yIG1vcmUgbW9kdWxlIG5hbWVzIHRvIGJlIHJld3JpdHRlbiBvbiBpbXBvcnQuCi0KLSAgICBU
aGlzIGZ1bmN0aW9uIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhpcyBtb2R1bGUgb3IgYWxsIG1vZHVs
ZXMgaW5zaWRlCi0gICAgdGhlIHBhY2thZ2Ugd2lsbCBnZXQgdGhlaXIgYXNzZXJ0IHN0YXRlbWVu
dHMgcmV3cml0dGVuLgotICAgIFRodXMgeW91IHNob3VsZCBtYWtlIHN1cmUgdG8gY2FsbCB0aGlz
IGJlZm9yZSB0aGUgbW9kdWxlIGlzCi0gICAgYWN0dWFsbHkgaW1wb3J0ZWQsIHVzdWFsbHkgaW4g
eW91ciBfX2luaXRfXy5weSBpZiB5b3UgYXJlIGEgcGx1Z2luCi0gICAgdXNpbmcgYSBwYWNrYWdl
LgotCi0gICAgOnJhaXNlIFR5cGVFcnJvcjogaWYgdGhlIGdpdmVuIG1vZHVsZSBuYW1lcyBhcmUg
bm90IHN0cmluZ3MuCi0gICAgIiIiCi0gICAgZm9yIG5hbWUgaW4gbmFtZXM6Ci0gICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKG5hbWUsIHN0cik6Ci0gICAgICAgICAgICBtc2cgPSAnZXhwZWN0ZWQg
bW9kdWxlIG5hbWVzIGFzICphcmdzLCBnb3QgezB9IGluc3RlYWQnCi0gICAgICAgICAgICByYWlz
ZSBUeXBlRXJyb3IobXNnLmZvcm1hdChyZXByKG5hbWVzKSkpCi0gICAgZm9yIGhvb2sgaW4gc3lz
Lm1ldGFfcGF0aDoKLSAgICAgICAgaWYgaXNpbnN0YW5jZShob29rLCByZXdyaXRlLkFzc2VydGlv
blJld3JpdGluZ0hvb2spOgotICAgICAgICAgICAgaW1wb3J0aG9vayA9IGhvb2sKLSAgICAgICAg
ICAgIGJyZWFrCi0gICAgZWxzZToKLSAgICAgICAgaW1wb3J0aG9vayA9IER1bW15UmV3cml0ZUhv
b2soKQotICAgIGltcG9ydGhvb2subWFya19yZXdyaXRlKCpuYW1lcykKLQotCi1jbGFzcyBEdW1t
eVJld3JpdGVIb29rKG9iamVjdCk6Ci0gICAgIiIiQSBuby1vcCBpbXBvcnQgaG9vayBmb3Igd2hl
biByZXdyaXRpbmcgaXMgZGlzYWJsZWQuIiIiCi0KLSAgICBkZWYgbWFya19yZXdyaXRlKHNlbGYs
ICpuYW1lcyk6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBBc3NlcnRpb25TdGF0ZToKLSAgICAi
IiJTdGF0ZSBmb3IgdGhlIGFzc2VydGlvbiBwbHVnaW4uIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgY29uZmlnLCBtb2RlKToKLSAgICAgICAgc2VsZi5tb2RlID0gbW9kZQotICAgICAgICBz
ZWxmLnRyYWNlID0gY29uZmlnLnRyYWNlLnJvb3QuZ2V0KCJhc3NlcnRpb24iKQotICAgICAgICBz
ZWxmLmhvb2sgPSBOb25lCi0KLQotZGVmIGluc3RhbGxfaW1wb3J0aG9vayhjb25maWcpOgotICAg
ICIiIlRyeSB0byBpbnN0YWxsIHRoZSByZXdyaXRlIGhvb2ssIHJhaXNlIFN5c3RlbUVycm9yIGlm
IGl0IGZhaWxzLiIiIgotICAgICMgSnl0aG9uIGhhcyBhbiBBU1QgYnVnIHRoYXQgbWFrZSB0aGUg
YXNzZXJ0aW9uIHJld3JpdGluZyBob29rIG1hbGZ1bmN0aW9uLgotICAgIGlmIChzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgnamF2YScpKToKLSAgICAgICAgcmFpc2UgU3lzdGVtRXJyb3IoJ3Jld3Jp
dGUgbm90IHN1cHBvcnRlZCcpCi0KLSAgICBjb25maWcuX2Fzc2VydHN0YXRlID0gQXNzZXJ0aW9u
U3RhdGUoY29uZmlnLCAncmV3cml0ZScpCi0gICAgY29uZmlnLl9hc3NlcnRzdGF0ZS5ob29rID0g
aG9vayA9IHJld3JpdGUuQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhjb25maWcpCi0gICAgc3lzLm1l
dGFfcGF0aC5pbnNlcnQoMCwgaG9vaykKLSAgICBjb25maWcuX2Fzc2VydHN0YXRlLnRyYWNlKCdp
bnN0YWxsZWQgcmV3cml0ZSBpbXBvcnQgaG9vaycpCi0KLSAgICBkZWYgdW5kbygpOgotICAgICAg
ICBob29rID0gY29uZmlnLl9hc3NlcnRzdGF0ZS5ob29rCi0gICAgICAgIGlmIGhvb2sgaXMgbm90
IE5vbmUgYW5kIGhvb2sgaW4gc3lzLm1ldGFfcGF0aDoKLSAgICAgICAgICAgIHN5cy5tZXRhX3Bh
dGgucmVtb3ZlKGhvb2spCi0KLSAgICBjb25maWcuYWRkX2NsZWFudXAodW5kbykKLSAgICByZXR1
cm4gaG9vawotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbihzZXNzaW9uKToKLSAgICAjIHRoaXMg
aG9vayBpcyBvbmx5IGNhbGxlZCB3aGVuIHRlc3QgbW9kdWxlcyBhcmUgY29sbGVjdGVkCi0gICAg
IyBzbyBmb3IgZXhhbXBsZSBub3QgaW4gdGhlIG1hc3RlciBwcm9jZXNzIG9mIHB5dGVzdC14ZGlz
dAotICAgICMgKHdoaWNoIGRvZXMgbm90IGNvbGxlY3QgdGVzdCBtb2R1bGVzKQotICAgIGFzc2Vy
dHN0YXRlID0gZ2V0YXR0cihzZXNzaW9uLmNvbmZpZywgJ19hc3NlcnRzdGF0ZScsIE5vbmUpCi0g
ICAgaWYgYXNzZXJ0c3RhdGU6Ci0gICAgICAgIGlmIGFzc2VydHN0YXRlLmhvb2sgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBhc3NlcnRzdGF0ZS5ob29rLnNldF9zZXNzaW9uKHNlc3Npb24pCi0K
LQotZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgICIiIlNldHVwIHRoZSBweXRl
c3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sKLQotICAgIFRoZSBuZXdpbnRlcnByZXQgYW5kIHJl
d3JpdGUgbW9kdWxlcyB3aWxsIHVzZSB1dGlsLl9yZXByY29tcGFyZSBpZgotICAgIGl0IGV4aXN0
cyB0byB1c2UgY3VzdG9tIHJlcG9ydGluZyB2aWEgdGhlCi0gICAgcHl0ZXN0X2Fzc2VydHJlcHJf
Y29tcGFyZSBob29rLiAgVGhpcyBzZXRzIHVwIHRoaXMgY3VzdG9tCi0gICAgY29tcGFyaXNvbiBm
b3IgdGhlIHRlc3QuCi0gICAgIiIiCi0gICAgZGVmIGNhbGxiaW5yZXByKG9wLCBsZWZ0LCByaWdo
dCk6Ci0gICAgICAgICIiIkNhbGwgdGhlIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vayBh
bmQgcHJlcGFyZSB0aGUgcmVzdWx0Ci0KLSAgICAgICAgVGhpcyB1c2VzIHRoZSBmaXJzdCByZXN1
bHQgZnJvbSB0aGUgaG9vayBhbmQgdGhlbiBlbnN1cmVzIHRoZQotICAgICAgICBmb2xsb3dpbmc6
Ci0gICAgICAgICogT3Zlcmx5IHZlcmJvc2UgZXhwbGFuYXRpb25zIGFyZSB0cnVuY2F0ZWQgdW5s
ZXNzIGNvbmZpZ3VyZWQgb3RoZXJ3aXNlCi0gICAgICAgICAgKGVnLiBpZiBydW5uaW5nIGluIHZl
cmJvc2UgbW9kZSkuCi0gICAgICAgICogRW1iZWRkZWQgbmV3bGluZXMgYXJlIGVzY2FwZWQgdG8g
aGVscCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpCi0gICAgICAgICAgbGF0ZXIuCi0gICAgICAg
ICogSWYgdGhlIHJld3JpdGUgbW9kZSBpcyB1c2VkIGVtYmVkZGVkICUtY2hhcmFjdGVycyBhcmUg
cmVwbGFjZWQKLSAgICAgICAgICB0byBwcm90ZWN0IGxhdGVyICUgZm9ybWF0dGluZy4KLQotICAg
ICAgICBUaGUgcmVzdWx0IGNhbiBiZSBmb3JtYXR0ZWQgYnkgdXRpbC5mb3JtYXRfZXhwbGFuYXRp
b24oKSBmb3IKLSAgICAgICAgcHJldHR5IHByaW50aW5nLgotICAgICAgICAiIiIKLSAgICAgICAg
aG9va19yZXN1bHQgPSBpdGVtLmlob29rLnB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoCi0gICAg
ICAgICAgICBjb25maWc9aXRlbS5jb25maWcsIG9wPW9wLCBsZWZ0PWxlZnQsIHJpZ2h0PXJpZ2h0
KQotICAgICAgICBmb3IgbmV3X2V4cGwgaW4gaG9va19yZXN1bHQ6Ci0gICAgICAgICAgICBpZiBu
ZXdfZXhwbDoKLSAgICAgICAgICAgICAgICBuZXdfZXhwbCA9IHRydW5jYXRlLnRydW5jYXRlX2lm
X3JlcXVpcmVkKG5ld19leHBsLCBpdGVtKQotICAgICAgICAgICAgICAgIG5ld19leHBsID0gW2xp
bmUucmVwbGFjZSgiXG4iLCAiXFxuIikgZm9yIGxpbmUgaW4gbmV3X2V4cGxdCi0gICAgICAgICAg
ICAgICAgcmVzID0gc2l4LnRleHRfdHlwZSgiXG5+Iikuam9pbihuZXdfZXhwbCkKLSAgICAgICAg
ICAgICAgICBpZiBpdGVtLmNvbmZpZy5nZXR2YWx1ZSgiYXNzZXJ0bW9kZSIpID09ICJyZXdyaXRl
IjoKLSAgICAgICAgICAgICAgICAgICAgcmVzID0gcmVzLnJlcGxhY2UoIiUiLCAiJSUiKQotICAg
ICAgICAgICAgICAgIHJldHVybiByZXMKLSAgICB1dGlsLl9yZXByY29tcGFyZSA9IGNhbGxiaW5y
ZXByCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0ZW0pOgotICAgIHV0aWwuX3Jl
cHJjb21wYXJlID0gTm9uZQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uKToK
LSAgICBhc3NlcnRzdGF0ZSA9IGdldGF0dHIoc2Vzc2lvbi5jb25maWcsICdfYXNzZXJ0c3RhdGUn
LCBOb25lKQotICAgIGlmIGFzc2VydHN0YXRlOgotICAgICAgICBpZiBhc3NlcnRzdGF0ZS5ob29r
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYXNzZXJ0c3RhdGUuaG9vay5zZXRfc2Vzc2lvbihO
b25lKQotCi0KLSMgRXhwb3NlIHRoaXMgcGx1Z2luJ3MgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBw
eXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sKLXB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUg
PSB1dGlsLmFzc2VydHJlcHJfY29tcGFyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9hc3NlcnRpb24vcmV3cml0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Jl
d3JpdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2NDM1OGY0OTBiYzkxYWY5
YTVlYzUyNjUyYjZlOGIyYmUwYWNjNjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDk0OCArMCwwIEBACi0iIiJSZXdyaXRlIGFzc2VydGlvbiBBU1Qg
dG8gcHJvZHVjZSBuaWNlIGVycm9yIG1lc3NhZ2VzIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgYXN0Ci1p
bXBvcnQgX2FzdAotaW1wb3J0IGVycm5vCi1pbXBvcnQgaXRlcnRvb2xzCi1pbXBvcnQgaW1wCi1p
bXBvcnQgbWFyc2hhbAotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzaXgKLWltcG9ydCBz
dHJ1Y3QKLWltcG9ydCBzeXMKLWltcG9ydCB0eXBlcwotCi1pbXBvcnQgcHkKLWZyb20gX3B5dGVz
dC5hc3NlcnRpb24gaW1wb3J0IHV0aWwKLQotCi0jIHB5dGVzdCBjYWNoZXMgcmV3cml0dGVuIHB5
Y3MgaW4gX19weWNhY2hlX18uCi1pZiBoYXNhdHRyKGltcCwgImdldF90YWciKToKLSAgICBQWVRF
U1RfVEFHID0gaW1wLmdldF90YWcoKSArICItUFlURVNUIgotZWxzZToKLSAgICBpZiBoYXNhdHRy
KHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIik6Ci0gICAgICAgIGltcGwgPSAicHlweSIKLSAgICBl
bGlmIHN5cy5wbGF0Zm9ybSA9PSAiamF2YSI6Ci0gICAgICAgIGltcGwgPSAianl0aG9uIgotICAg
IGVsc2U6Ci0gICAgICAgIGltcGwgPSAiY3B5dGhvbiIKLSAgICB2ZXIgPSBzeXMudmVyc2lvbl9p
bmZvCi0gICAgUFlURVNUX1RBRyA9ICIlcy0lcyVzLVBZVEVTVCIgJSAoaW1wbCwgdmVyWzBdLCB2
ZXJbMV0pCi0gICAgZGVsIHZlciwgaW1wbAotCi1QWUNfRVhUID0gIi5weSIgKyAoX19kZWJ1Z19f
IGFuZCAiYyIgb3IgIm8iKQotUFlDX1RBSUwgPSAiLiIgKyBQWVRFU1RfVEFHICsgUFlDX0VYVAot
Ci1BU0NJSV9JU19ERUZBVUxUX0VOQ09ESU5HID0gc3lzLnZlcnNpb25faW5mb1swXSA8IDMKLQot
aWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNSk6Ci0gICAgYXN0X0NhbGwgPSBhc3QuQ2FsbAot
ZWxzZToKLSAgICBkZWYgYXN0X0NhbGwoYSwgYiwgYyk6Ci0gICAgICAgIHJldHVybiBhc3QuQ2Fs
bChhLCBiLCBjLCBOb25lLCBOb25lKQotCi0KLWNsYXNzIEFzc2VydGlvblJld3JpdGluZ0hvb2so
b2JqZWN0KToKLSAgICAiIiJQRVAzMDIgSW1wb3J0IGhvb2sgd2hpY2ggcmV3cml0ZXMgYXNzZXJ0
cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAgICAgICBzZWxmLmNv
bmZpZyA9IGNvbmZpZwotICAgICAgICBzZWxmLmZucGF0cyA9IGNvbmZpZy5nZXRpbmkoInB5dGhv
bl9maWxlcyIpCi0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IE5vbmUKLSAgICAgICAgc2VsZi5tb2R1
bGVzID0ge30KLSAgICAgICAgc2VsZi5fcmV3cml0dGVuX25hbWVzID0gc2V0KCkKLSAgICAgICAg
c2VsZi5fcmVnaXN0ZXJfd2l0aF9wa2dfcmVzb3VyY2VzKCkKLSAgICAgICAgc2VsZi5fbXVzdF9y
ZXdyaXRlID0gc2V0KCkKLQotICAgIGRlZiBzZXRfc2Vzc2lvbihzZWxmLCBzZXNzaW9uKToKLSAg
ICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgotCi0gICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYs
IG5hbWUsIHBhdGg9Tm9uZSk6Ci0gICAgICAgIHN0YXRlID0gc2VsZi5jb25maWcuX2Fzc2VydHN0
YXRlCi0gICAgICAgIHN0YXRlLnRyYWNlKCJmaW5kX21vZHVsZSBjYWxsZWQgZm9yOiAlcyIgJSBu
YW1lKQotICAgICAgICBuYW1lcyA9IG5hbWUucnNwbGl0KCIuIiwgMSkKLSAgICAgICAgbGFzdG5h
bWUgPSBuYW1lc1stMV0KLSAgICAgICAgcHRoID0gTm9uZQotICAgICAgICBpZiBwYXRoIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgIyBTdGFydGluZyB3aXRoIFB5dGhvbiAzLjMsIHBhdGggaXMg
YSBfTmFtZXNwYWNlUGF0aCgpLCB3aGljaAotICAgICAgICAgICAgIyBjYXVzZXMgcHJvYmxlbXMg
aWYgbm90IGNvbnZlcnRlZCB0byBsaXN0LgotICAgICAgICAgICAgcGF0aCA9IGxpc3QocGF0aCkK
LSAgICAgICAgICAgIGlmIGxlbihwYXRoKSA9PSAxOgotICAgICAgICAgICAgICAgIHB0aCA9IHBh
dGhbMF0KLSAgICAgICAgaWYgcHRoIGlzIE5vbmU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgZmQsIGZuLCBkZXNjID0gaW1wLmZpbmRfbW9kdWxlKGxhc3RuYW1lLCBwYXRoKQot
ICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgICAgICBpZiBmZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBmZC5j
bG9zZSgpCi0gICAgICAgICAgICB0cCA9IGRlc2NbMl0KLSAgICAgICAgICAgIGlmIHRwID09IGlt
cC5QWV9DT01QSUxFRDoKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGltcCwgInNvdXJjZV9m
cm9tX2NhY2hlIik6Ci0gICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZuID0gaW1wLnNvdXJjZV9mcm9tX2NhY2hlKGZuKQotICAgICAgICAgICAgICAgICAg
ICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICMgUHl0aG9uIDMg
ZG9lc24ndCBsaWtlIG9ycGhhbmVkIGJ1dCBzdGlsbC1pbXBvcnRhYmxlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAjIC5weWMgZmlsZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICBmbiA9IGZu
WzotMV0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBmbiA9IGZu
WzotMV0KLSAgICAgICAgICAgIGVsaWYgdHAgIT0gaW1wLlBZX1NPVVJDRToKLSAgICAgICAgICAg
ICAgICAjIERvbid0IGtub3cgd2hhdCB0aGlzIGlzLgotICAgICAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmbiA9IG9zLnBhdGguam9pbihwdGgsIG5h
bWUucnBhcnRpdGlvbigiLiIpWzJdICsgIi5weSIpCi0KLSAgICAgICAgZm5fcHlwYXRoID0gcHku
cGF0aC5sb2NhbChmbikKLSAgICAgICAgaWYgbm90IHNlbGYuX3Nob3VsZF9yZXdyaXRlKG5hbWUs
IGZuX3B5cGF0aCwgc3RhdGUpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgICAgICBz
ZWxmLl9yZXdyaXR0ZW5fbmFtZXMuYWRkKG5hbWUpCi0KLSAgICAgICAgIyBUaGUgcmVxdWVzdGVk
IG1vZHVsZSBsb29rcyBsaWtlIGEgdGVzdCBmaWxlLCBzbyByZXdyaXRlIGl0LiBUaGlzIGlzCi0g
ICAgICAgICMgdGhlIG1vc3QgbWFnaWNhbCBwYXJ0IG9mIHRoZSBwcm9jZXNzOiBsb2FkIHRoZSBz
b3VyY2UsIHJld3JpdGUgdGhlCi0gICAgICAgICMgYXNzZXJ0cywgYW5kIGxvYWQgdGhlIHJld3Jp
dHRlbiBzb3VyY2UuIFdlIGFsc28gY2FjaGUgdGhlIHJld3JpdHRlbgotICAgICAgICAjIG1vZHVs
ZSBjb2RlIGluIGEgc3BlY2lhbCBweWMuIFdlIG11c3QgYmUgYXdhcmUgb2YgdGhlIHBvc3NpYmls
aXR5IG9mCi0gICAgICAgICMgY29uY3VycmVudCBweXRlc3QgcHJvY2Vzc2VzIHJld3JpdGluZyBh
bmQgbG9hZGluZyBweWNzLiBUbyBhdm9pZAotICAgICAgICAjIHRyaWNreSByYWNlIGNvbmRpdGlv
bnMsIHdlIG1haW50YWluIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50OiBUaGUKLSAgICAgICAgIyBj
YWNoZWQgcHljIGlzIGFsd2F5cyBhIGNvbXBsZXRlLCB2YWxpZCBweWMuIE9wZXJhdGlvbnMgb24g
aXQgbXVzdCBiZQotICAgICAgICAjIGF0b21pYy4gUE9TSVgncyBhdG9taWMgcmVuYW1lIGNvbWVz
IGluIGhhbmR5LgotICAgICAgICB3cml0ZSA9IG5vdCBzeXMuZG9udF93cml0ZV9ieXRlY29kZQot
ICAgICAgICBjYWNoZV9kaXIgPSBvcy5wYXRoLmpvaW4oZm5fcHlwYXRoLmRpcm5hbWUsICJfX3B5
Y2FjaGVfXyIpCi0gICAgICAgIGlmIHdyaXRlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIG9zLm1rZGlyKGNhY2hlX2RpcikKLSAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgot
ICAgICAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXS5lcnJubwotICAgICAgICAgICAg
ICAgIGlmIGUgPT0gZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAgICAgICAjIEVpdGhlciB0
aGUgX19weWNhY2hlX18gZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzICh0aGUKLSAgICAgICAgICAg
ICAgICAgICAgIyBjb21tb24gY2FzZSkgb3IgaXQncyBibG9ja2VkIGJ5IGEgbm9uLWRpciBub2Rl
LiBJbiB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBsYXR0ZXIgY2FzZSwgd2UnbGwgaWdub3Jl
IGl0IGluIF93cml0ZV9weWMuCi0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAg
ICAgICBlbGlmIGUgaW4gW2Vycm5vLkVOT0VOVCwgZXJybm8uRU5PVERJUl06Ci0gICAgICAgICAg
ICAgICAgICAgICMgT25lIG9mIHRoZSBwYXRoIGNvbXBvbmVudHMgd2FzIG5vdCBhIGRpcmVjdG9y
eSwgbGlrZWx5Ci0gICAgICAgICAgICAgICAgICAgICMgYmVjYXVzZSB3ZSdyZSBpbiBhIHppcCBm
aWxlLgotICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAg
ZWxpZiBlIGluIFtlcnJuby5FQUNDRVMsIGVycm5vLkVST0ZTLCBlcnJuby5FUEVSTV06Ci0gICAg
ICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZWFkIG9ubHkgZGlyZWN0b3J5OiAlciIgJSBm
bl9weXBhdGguZGlybmFtZSkKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUgPSBGYWxzZQotICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGNh
Y2hlX25hbWUgPSBmbl9weXBhdGguYmFzZW5hbWVbOi0zXSArIFBZQ19UQUlMCi0gICAgICAgIHB5
YyA9IG9zLnBhdGguam9pbihjYWNoZV9kaXIsIGNhY2hlX25hbWUpCi0gICAgICAgICMgTm90aWNl
IHRoYXQgZXZlbiBpZiB3ZSdyZSBpbiBhIHJlYWQtb25seSBkaXJlY3RvcnksIEknbSBnb2luZwot
ICAgICAgICAjIHRvIGNoZWNrIGZvciBhIGNhY2hlZCBweWMuIFRoaXMgbWF5IG5vdCBiZSBvcHRp
bWFsLi4uCi0gICAgICAgIGNvID0gX3JlYWRfcHljKGZuX3B5cGF0aCwgcHljLCBzdGF0ZS50cmFj
ZSkKLSAgICAgICAgaWYgY28gaXMgTm9uZToKLSAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZXdy
aXRpbmcgJXIiICUgKGZuLCkpCi0gICAgICAgICAgICBzb3VyY2Vfc3RhdCwgY28gPSBfcmV3cml0
ZV90ZXN0KHNlbGYuY29uZmlnLCBmbl9weXBhdGgpCi0gICAgICAgICAgICBpZiBjbyBpcyBOb25l
OgotICAgICAgICAgICAgICAgICMgUHJvYmFibHkgYSBTeW50YXhFcnJvciBpbiB0aGUgdGVzdC4K
LSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgaWYgd3JpdGU6Ci0gICAg
ICAgICAgICAgICAgX21ha2VfcmV3cml0dGVuX3B5YyhzdGF0ZSwgc291cmNlX3N0YXQsIHB5Yywg
Y28pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdGF0ZS50cmFjZSgiZm91bmQgY2FjaGVk
IHJld3JpdHRlbiBweWMgZm9yICVyIiAlIChmbiwpKQotICAgICAgICBzZWxmLm1vZHVsZXNbbmFt
ZV0gPSBjbywgcHljCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX3Nob3VsZF9yZXdy
aXRlKHNlbGYsIG5hbWUsIGZuX3B5cGF0aCwgc3RhdGUpOgotICAgICAgICAjIGFsd2F5cyByZXdy
aXRlIGNvbmZ0ZXN0IGZpbGVzCi0gICAgICAgIGZuID0gc3RyKGZuX3B5cGF0aCkKLSAgICAgICAg
aWYgZm5fcHlwYXRoLmJhc2VuYW1lID09ICdjb25mdGVzdC5weSc6Ci0gICAgICAgICAgICBzdGF0
ZS50cmFjZSgicmV3cml0aW5nIGNvbmZ0ZXN0IGZpbGU6ICVyIiAlIChmbiwpKQotICAgICAgICAg
ICAgcmV0dXJuIFRydWUKLQotICAgICAgICBpZiBzZWxmLnNlc3Npb24gaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBpZiBzZWxmLnNlc3Npb24uaXNpbml0cGF0aChmbik6Ci0gICAgICAgICAgICAg
ICAgc3RhdGUudHJhY2UoIm1hdGNoZWQgdGVzdCBmaWxlICh3YXMgc3BlY2lmaWVkIG9uIGNtZGxp
bmUpOiAlciIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbiwpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgIyBtb2R1bGVzIG5vdCBwYXNzZWQgZXhwbGlj
aXRseSBvbiB0aGUgY29tbWFuZCBsaW5lIGFyZSBvbmx5Ci0gICAgICAgICMgcmV3cml0dGVuIGlm
IHRoZXkgbWF0Y2ggdGhlIG5hbWluZyBjb252ZW50aW9uIGZvciB0ZXN0IGZpbGVzCi0gICAgICAg
IGZvciBwYXQgaW4gc2VsZi5mbnBhdHM6Ci0gICAgICAgICAgICBpZiBmbl9weXBhdGguZm5tYXRj
aChwYXQpOgotICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIHRlc3QgZmlsZSAl
ciIgJSAoZm4sKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgIGZvciBt
YXJrZWQgaW4gc2VsZi5fbXVzdF9yZXdyaXRlOgotICAgICAgICAgICAgaWYgbmFtZSA9PSBtYXJr
ZWQgb3IgbmFtZS5zdGFydHN3aXRoKG1hcmtlZCArICcuJyk6Ci0gICAgICAgICAgICAgICAgc3Rh
dGUudHJhY2UoIm1hdGNoZWQgbWFya2VkIGZpbGUgJXIgKGZyb20gJXIpIiAlIChuYW1lLCBtYXJr
ZWQpKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLSAgICBkZWYgbWFya19yZXdyaXRlKHNlbGYsICpuYW1lcyk6Ci0gICAgICAgICIiIk1hcmsg
aW1wb3J0IG5hbWVzIGFzIG5lZWRpbmcgdG8gYmUgcmV3cml0dGVuLgotCi0gICAgICAgIFRoZSBu
YW1lZCBtb2R1bGUgb3IgcGFja2FnZSBhcyB3ZWxsIGFzIGFueSBuZXN0ZWQgbW9kdWxlcyB3aWxs
Ci0gICAgICAgIGJlIHJld3JpdHRlbiBvbiBpbXBvcnQuCi0gICAgICAgICIiIgotICAgICAgICBh
bHJlYWR5X2ltcG9ydGVkID0gc2V0KG5hbWVzKS5pbnRlcnNlY3Rpb24oc2V0KHN5cy5tb2R1bGVz
KSkKLSAgICAgICAgaWYgYWxyZWFkeV9pbXBvcnRlZDoKLSAgICAgICAgICAgIGZvciBuYW1lIGlu
IGFscmVhZHlfaW1wb3J0ZWQ6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5f
cmV3cml0dGVuX25hbWVzOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl93YXJuX2FscmVhZHlf
aW1wb3J0ZWQobmFtZSkKLSAgICAgICAgc2VsZi5fbXVzdF9yZXdyaXRlLnVwZGF0ZShuYW1lcykK
LQotICAgIGRlZiBfd2Fybl9hbHJlYWR5X2ltcG9ydGVkKHNlbGYsIG5hbWUpOgotICAgICAgICBz
ZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgJ1AxJywKLSAgICAgICAgICAgICdNb2R1bGUg
YWxyZWFkeSBpbXBvcnRlZCBzbyBjYW5ub3QgYmUgcmV3cml0dGVuOiAlcycgJSBuYW1lKQotCi0g
ICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG5hbWUpOgotICAgICAgICAjIElmIHRoZXJlIGlzIGFu
IGV4aXN0aW5nIG1vZHVsZSBvYmplY3QgbmFtZWQgJ2Z1bGxuYW1lJyBpbgotICAgICAgICAjIHN5
cy5tb2R1bGVzLCB0aGUgbG9hZGVyIG11c3QgdXNlIHRoYXQgZXhpc3RpbmcgbW9kdWxlLiAoT3Ro
ZXJ3aXNlLAotICAgICAgICAjIHRoZSByZWxvYWQoKSBidWlsdGluIHdpbGwgbm90IHdvcmsgY29y
cmVjdGx5LikKLSAgICAgICAgaWYgbmFtZSBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgICAgIHJl
dHVybiBzeXMubW9kdWxlc1tuYW1lXQotCi0gICAgICAgIGNvLCBweWMgPSBzZWxmLm1vZHVsZXMu
cG9wKG5hbWUpCi0gICAgICAgICMgSSB3aXNoIEkgY291bGQganVzdCBjYWxsIGltcC5sb2FkX2Nv
bXBpbGVkIGhlcmUsIGJ1dCBfX2ZpbGVfXyBoYXMgdG8KLSAgICAgICAgIyBiZSBzZXQgcHJvcGVy
bHkuIEluIFB5dGhvbiAzLjIrLCB0aGlzIGFsbCB3b3VsZCBiZSBoYW5kbGVkIGNvcnJlY3RseQot
ICAgICAgICAjIGJ5IGxvYWRfY29tcGlsZWQuCi0gICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzW25h
bWVdID0gaW1wLm5ld19tb2R1bGUobmFtZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbW9k
Ll9fZmlsZV9fID0gY28uY29fZmlsZW5hbWUKLSAgICAgICAgICAgICMgTm9ybWFsbHksIHRoaXMg
YXR0cmlidXRlIGlzIDMuMisuCi0gICAgICAgICAgICBtb2QuX19jYWNoZWRfXyA9IHB5YwotICAg
ICAgICAgICAgbW9kLl9fbG9hZGVyX18gPSBzZWxmCi0gICAgICAgICAgICBweS5idWlsdGluLmV4
ZWNfKGNvLCBtb2QuX19kaWN0X18pCi0gICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAg
ICAgaWYgbmFtZSBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVs
ZXNbbmFtZV0KLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIHJldHVybiBzeXMubW9kdWxlc1tu
YW1lXQotCi0gICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IGltcC5maW5kX21vZHVsZShuYW1lKQotICAgICAgICBl
eGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYg
ZmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmZC5jbG9zZSgpCi0gICAgICAgIHRwID0gZGVz
Y1syXQotICAgICAgICByZXR1cm4gdHAgPT0gaW1wLlBLR19ESVJFQ1RPUlkKLQotICAgIEBjbGFz
c21ldGhvZAotICAgIGRlZiBfcmVnaXN0ZXJfd2l0aF9wa2dfcmVzb3VyY2VzKGNscyk6Ci0gICAg
ICAgICIiIgotICAgICAgICBFbnN1cmUgcGFja2FnZSByZXNvdXJjZXMgY2FuIGJlIGxvYWRlZCBm
cm9tIHRoaXMgbG9hZGVyLiBNYXkgYmUgY2FsbGVkCi0gICAgICAgIG11bHRpcGxlIHRpbWVzLCBh
cyB0aGUgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBpbXBvcnQgcGtnX3Jlc291cmNlcwotICAgICAgICAgICAgIyBhY2Nlc3Mg
YW4gYXR0cmlidXRlIGluIGNhc2UgYSBkZWZlcnJlZCBpbXBvcnRlciBpcyBwcmVzZW50Ci0gICAg
ICAgICAgICBwa2dfcmVzb3VyY2VzLl9fbmFtZV9fCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJv
cjoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgU2luY2UgcHl0ZXN0IHRlc3RzIGFy
ZSBhbHdheXMgbG9jYXRlZCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHRoZQotICAgICAgICAjICBEZWZh
dWx0UHJvdmlkZXIgaXMgYXBwcm9wcmlhdGUuCi0gICAgICAgIHBrZ19yZXNvdXJjZXMucmVnaXN0
ZXJfbG9hZGVyX3R5cGUoY2xzLCBwa2dfcmVzb3VyY2VzLkRlZmF1bHRQcm92aWRlcikKLQotICAg
IGRlZiBnZXRfZGF0YShzZWxmLCBwYXRobmFtZSk6Ci0gICAgICAgICIiIk9wdGlvbmFsIFBFUDMw
MiBnZXRfZGF0YSBBUEkuCi0gICAgICAgICIiIgotICAgICAgICB3aXRoIG9wZW4ocGF0aG5hbWUs
ICdyYicpIGFzIGY6Ci0gICAgICAgICAgICByZXR1cm4gZi5yZWFkKCkKLQotCi1kZWYgX3dyaXRl
X3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBweWMpOgotICAgICMgVGVjaG5pY2FsbHksIHdl
IGRvbid0IGhhdmUgdG8gaGF2ZSB0aGUgc2FtZSBweWMgZm9ybWF0IGFzCi0gICAgIyAoQylQeXRo
b24sIHNpbmNlIHRoZXNlICJweWNzIiBzaG91bGQgbmV2ZXIgYmUgc2VlbiBieSBidWlsdGluCi0g
ICAgIyBpbXBvcnQuIEhvd2V2ZXIsIHRoZXJlJ3MgbGl0dGxlIHJlYXNvbiBkZXZpYXRlLCBhbmQg
SSBob3BlCi0gICAgIyBzb21ldGltZSB0byBiZSBhYmxlIHRvIHVzZSBpbXAubG9hZF9jb21waWxl
ZCB0byBsb2FkIHRoZW0uIChTZWUKLSAgICAjIHRoZSBjb21tZW50IGluIGxvYWRfbW9kdWxlIGFi
b3ZlLikKLSAgICB0cnk6Ci0gICAgICAgIGZwID0gb3BlbihweWMsICJ3YiIpCi0gICAgZXhjZXB0
IElPRXJyb3I6Ci0gICAgICAgIGVyciA9IHN5cy5leGNfaW5mbygpWzFdLmVycm5vCi0gICAgICAg
IHN0YXRlLnRyYWNlKCJlcnJvciB3cml0aW5nIHB5YyBmaWxlIGF0ICVzOiBlcnJubz0lcyIgJSAo
cHljLCBlcnIpKQotICAgICAgICAjIHdlIGlnbm9yZSBhbnkgZmFpbHVyZSB0byB3cml0ZSB0aGUg
Y2FjaGUgZmlsZQotICAgICAgICAjIHRoZXJlIGFyZSBtYW55IHJlYXNvbnMsIHBlcm1pc3Npb24t
ZGVuaWVkLCBfX3B5Y2FjaGVfXyBiZWluZyBhCi0gICAgICAgICMgZmlsZSBldGMuCi0gICAgICAg
IHJldHVybiBGYWxzZQotICAgIHRyeToKLSAgICAgICAgZnAud3JpdGUoaW1wLmdldF9tYWdpYygp
KQotICAgICAgICBtdGltZSA9IGludChzb3VyY2Vfc3RhdC5tdGltZSkKLSAgICAgICAgc2l6ZSA9
IHNvdXJjZV9zdGF0LnNpemUgJiAweEZGRkZGRkZGCi0gICAgICAgIGZwLndyaXRlKHN0cnVjdC5w
YWNrKCI8bGwiLCBtdGltZSwgc2l6ZSkpCi0gICAgICAgIG1hcnNoYWwuZHVtcChjbywgZnApCi0g
ICAgZmluYWxseToKLSAgICAgICAgZnAuY2xvc2UoKQotICAgIHJldHVybiBUcnVlCi0KLQotUk4g
PSAiXHJcbiIuZW5jb2RlKCJ1dGYtOCIpCi1OID0gIlxuIi5lbmNvZGUoInV0Zi04IikKLQotY29v
a2llX3JlID0gcmUuY29tcGlsZShyIl5bIFx0XGZdKiMuKmNvZGluZ1s6PV1bIFx0XSpbLVx3Ll0r
IikKLUJPTV9VVEY4ID0gJ1x4ZWZceGJiXHhiZicKLQotCi1kZWYgX3Jld3JpdGVfdGVzdChjb25m
aWcsIGZuKToKLSAgICAiIiJUcnkgdG8gcmVhZCBhbmQgcmV3cml0ZSAqZm4qIGFuZCByZXR1cm4g
dGhlIGNvZGUgb2JqZWN0LiIiIgotICAgIHN0YXRlID0gY29uZmlnLl9hc3NlcnRzdGF0ZQotICAg
IHRyeToKLSAgICAgICAgc3RhdCA9IGZuLnN0YXQoKQotICAgICAgICBzb3VyY2UgPSBmbi5yZWFk
KCJyYiIpCi0gICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3I6Ci0gICAgICAgIHJldHVybiBOb25l
LCBOb25lCi0gICAgaWYgQVNDSUlfSVNfREVGQVVMVF9FTkNPRElORzoKLSAgICAgICAgIyBBU0NJ
SSBpcyB0aGUgZGVmYXVsdCBlbmNvZGluZyBpbiBQeXRob24gMi4gV2l0aG91dCBhIGNvZGluZwot
ICAgICAgICAjIGRlY2xhcmF0aW9uLCBQeXRob24gMiB3aWxsIGNvbXBsYWluIGFib3V0IGFueSBi
eXRlcyBpbiB0aGUgZmlsZQotICAgICAgICAjIG91dHNpZGUgdGhlIEFTQ0lJIHJhbmdlLiBTYWRs
eSwgdGhpcyBiZWhhdmlvciBkb2VzIG5vdCBleHRlbmQgdG8KLSAgICAgICAgIyBjb21waWxlKCkg
b3IgYXN0LnBhcnNlKCksIHdoaWNoIHByZWZlciB0byBpbnRlcnByZXQgdGhlIGJ5dGVzIGFzCi0g
ICAgICAgICMgbGF0aW4tMS4gKEF0IGxlYXN0IHRoZXkgcHJvcGVybHkgaGFuZGxlIGV4cGxpY2l0
IGNvZGluZyBjb29raWVzLikgVG8KLSAgICAgICAgIyBwcmVzZXJ2ZSB0aGlzIGVycm9yIGJlaGF2
aW9yLCB3ZSBjb3VsZCBmb3JjZSBhc3QucGFyc2UoKSB0byB1c2UgQVNDSUkKLSAgICAgICAgIyBh
cyB0aGUgZW5jb2RpbmcgYnkgaW5zZXJ0aW5nIGEgY29kaW5nIGNvb2tpZS4gVW5mb3J0dW5hdGVs
eSwgdGhhdAotICAgICAgICAjIG1lc3NlcyB1cCBsaW5lIG51bWJlcnMuIFRodXMsIHdlIGhhdmUg
dG8gY2hlY2sgb3Vyc2VsdmVzIGlmIGFueXRoaW5nCi0gICAgICAgICMgaXMgb3V0c2lkZSB0aGUg
QVNDSUkgcmFuZ2UgaW4gdGhlIGNhc2Ugbm8gZW5jb2RpbmcgaXMgZXhwbGljaXRseQotICAgICAg
ICAjIGRlY2xhcmVkLiBGb3IgbW9yZSBjb250ZXh0LCBzZWUgaXNzdWUgIzI2OS4gWWF5IGZvciBQ
eXRob24gMyB3aGljaAotICAgICAgICAjIGdldHMgdGhpcyByaWdodC4KLSAgICAgICAgZW5kMSA9
IHNvdXJjZS5maW5kKCJcbiIpCi0gICAgICAgIGVuZDIgPSBzb3VyY2UuZmluZCgiXG4iLCBlbmQx
ICsgMSkKLSAgICAgICAgaWYgKG5vdCBzb3VyY2Uuc3RhcnRzd2l0aChCT01fVVRGOCkgYW5kCi0g
ICAgICAgICAgICBjb29raWVfcmUubWF0Y2goc291cmNlWzA6ZW5kMV0pIGlzIE5vbmUgYW5kCi0g
ICAgICAgICAgICAgICAgY29va2llX3JlLm1hdGNoKHNvdXJjZVtlbmQxICsgMTplbmQyXSkgaXMg
Tm9uZSk6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKHN0YXRlLCAiX2luZGVjb2RlIik6Ci0gICAg
ICAgICAgICAgICAgIyBlbmNvZGluZ3MgaW1wb3J0ZWQgdXMgYWdhaW4sIHNvIGRvbid0IHJld3Jp
dGUuCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAgICAgICAgICAgIHN0YXRl
Ll9pbmRlY29kZSA9IFRydWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgICAgIHNvdXJjZS5kZWNvZGUoImFzY2lpIikKLSAgICAgICAgICAg
ICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAgICAgICAgICAgICAgICAjIExl
dCBpdCBmYWlsIGluIHJlYWwgaW1wb3J0LgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZSwgTm9uZQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBkZWwgc3RhdGUu
X2luZGVjb2RlCi0gICAgdHJ5OgotICAgICAgICB0cmVlID0gYXN0LnBhcnNlKHNvdXJjZSkKLSAg
ICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICMgTGV0IHRoaXMgcG9wIHVwIGFnYWluIGlu
IHRoZSByZWFsIGltcG9ydC4KLSAgICAgICAgc3RhdGUudHJhY2UoImZhaWxlZCB0byBwYXJzZTog
JXIiICUgKGZuLCkpCi0gICAgICAgIHJldHVybiBOb25lLCBOb25lCi0gICAgcmV3cml0ZV9hc3Nl
cnRzKHRyZWUsIGZuLCBjb25maWcpCi0gICAgdHJ5OgotICAgICAgICBjbyA9IGNvbXBpbGUodHJl
ZSwgZm4uc3RycGF0aCwgImV4ZWMiLCBkb250X2luaGVyaXQ9VHJ1ZSkKLSAgICBleGNlcHQgU3lu
dGF4RXJyb3I6Ci0gICAgICAgICMgSXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgZXJyb3IgaXMgZnJv
bSBzb21lIGJ1ZyBpbiB0aGUKLSAgICAgICAgIyBhc3NlcnRpb24gcmV3cml0aW5nLCBidXQgSSBk
b24ndCBrbm93IG9mIGEgZmFzdCB3YXkgdG8gdGVsbC4KLSAgICAgICAgc3RhdGUudHJhY2UoImZh
aWxlZCB0byBjb21waWxlOiAlciIgJSAoZm4sKSkKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUK
LSAgICByZXR1cm4gc3RhdCwgY28KLQotCi1kZWYgX21ha2VfcmV3cml0dGVuX3B5YyhzdGF0ZSwg
c291cmNlX3N0YXQsIHB5YywgY28pOgotICAgICIiIlRyeSB0byBkdW1wIHJld3JpdHRlbiBjb2Rl
IHRvICpweWMqLiIiIgotICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJ3aW4iKToKLSAg
ICAgICAgIyBXaW5kb3dzIGdyYW50cyBleGNsdXNpdmUgYWNjZXNzIHRvIG9wZW4gZmlsZXMgYW5k
IGRvZXNuJ3QgaGF2ZSBhdG9taWMKLSAgICAgICAgIyByZW5hbWUsIHNvIGp1c3Qgd3JpdGUgaW50
byB0aGUgZmluYWwgZmlsZS4KLSAgICAgICAgX3dyaXRlX3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9z
dGF0LCBweWMpCi0gICAgZWxzZToKLSAgICAgICAgIyBXaGVuIG5vdCBvbiB3aW5kb3dzLCBhc3N1
bWUgcmVuYW1lIGlzIGF0b21pYy4gRHVtcCB0aGUgY29kZSBvYmplY3QKLSAgICAgICAgIyBpbnRv
IGEgZmlsZSBzcGVjaWZpYyB0byB0aGlzIHByb2Nlc3MgYW5kIGF0b21pY2FsbHkgcmVwbGFjZSBp
dC4KLSAgICAgICAgcHJvY19weWMgPSBweWMgKyAiLiIgKyBzdHIob3MuZ2V0cGlkKCkpCi0gICAg
ICAgIGlmIF93cml0ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHJvY19weWMpOgotICAg
ICAgICAgICAgb3MucmVuYW1lKHByb2NfcHljLCBweWMpCi0KLQotZGVmIF9yZWFkX3B5Yyhzb3Vy
Y2UsIHB5YywgdHJhY2U9bGFtYmRhIHg6IE5vbmUpOgotICAgICIiIlBvc3NpYmx5IHJlYWQgYSBw
eXRlc3QgcHljIGNvbnRhaW5pbmcgcmV3cml0dGVuIGNvZGUuCi0KLSAgICBSZXR1cm4gcmV3cml0
dGVuIGNvZGUgaWYgc3VjY2Vzc2Z1bCBvciBOb25lIGlmIG5vdC4KLSAgICAiIiIKLSAgICB0cnk6
Ci0gICAgICAgIGZwID0gb3BlbihweWMsICJyYiIpCi0gICAgZXhjZXB0IElPRXJyb3I6Ci0gICAg
ICAgIHJldHVybiBOb25lCi0gICAgd2l0aCBmcDoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
bXRpbWUgPSBpbnQoc291cmNlLm10aW1lKCkpCi0gICAgICAgICAgICBzaXplID0gc291cmNlLnNp
emUoKQotICAgICAgICAgICAgZGF0YSA9IGZwLnJlYWQoMTIpCi0gICAgICAgIGV4Y2VwdCBFbnZp
cm9ubWVudEVycm9yIGFzIGU6Ci0gICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTogRW52
aXJvbm1lbnRFcnJvciAlcycgJSAoc291cmNlLCBlKSkKLSAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgICMgQ2hlY2sgZm9yIGludmFsaWQgb3Igb3V0IG9mIGRhdGUgcHljIGZpbGUuCi0g
ICAgICAgIGlmIChsZW4oZGF0YSkgIT0gMTIgb3IgZGF0YVs6NF0gIT0gaW1wLmdldF9tYWdpYygp
IG9yCi0gICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygiPGxsIiwgZGF0YVs0Ol0pICE9ICht
dGltZSwgc2l6ZSkpOgotICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5Yyglcyk6IGludmFsaWQg
b3Igb3V0IG9mIGRhdGUgcHljJyAlIHNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvID0gbWFyc2hhbC5sb2FkKGZwKQotICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTog
bWFyc2hhbC5sb2FkIGVycm9yICVzJyAlIChzb3VyY2UsIGUpKQotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY28sIHR5cGVzLkNvZGVUeXBlKToKLSAg
ICAgICAgICAgIHRyYWNlKCdfcmVhZF9weWMoJXMpOiBub3QgYSBjb2RlIG9iamVjdCcgJSBzb3Vy
Y2UpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gY28KLQotCi1kZWYg
cmV3cml0ZV9hc3NlcnRzKG1vZCwgbW9kdWxlX3BhdGg9Tm9uZSwgY29uZmlnPU5vbmUpOgotICAg
ICIiIlJld3JpdGUgdGhlIGFzc2VydCBzdGF0ZW1lbnRzIGluIG1vZC4iIiIKLSAgICBBc3NlcnRp
b25SZXdyaXRlcihtb2R1bGVfcGF0aCwgY29uZmlnKS5ydW4obW9kKQotCi0KLWRlZiBfc2FmZXJl
cHIob2JqKToKLSAgICAiIiJHZXQgYSBzYWZlIHJlcHIgb2YgYW4gb2JqZWN0IGZvciBhc3NlcnRp
b24gZXJyb3IgbWVzc2FnZXMuCi0KLSAgICBUaGUgYXNzZXJ0aW9uIGZvcm1hdHRpbmcgKHV0aWwu
Zm9ybWF0X2V4cGxhbmF0aW9uKCkpIHJlcXVpcmVzCi0gICAgbmV3bGluZXMgdG8gYmUgZXNjYXBl
ZCBzaW5jZSB0aGV5IGFyZSBhIHNwZWNpYWwgY2hhcmFjdGVyIGZvciBpdC4KLSAgICBOb3JtYWxs
eSBhc3NlcnRpb24udXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKSBkb2VzIHRoaXMgYnV0IGZvciBh
Ci0gICAgY3VzdG9tIHJlcHIgaXQgaXMgcG9zc2libGUgdG8gY29udGFpbiBvbmUgb2YgdGhlIHNw
ZWNpYWwgZXNjYXBlCi0gICAgc2VxdWVuY2VzLCBlc3BlY2lhbGx5ICdcbnsnIGFuZCAnXG59JyBh
cmUgbGlrZWx5IHRvIGJlIHByZXNlbnQgaW4KLSAgICBKU09OIHJlcHJzLgotCi0gICAgIiIiCi0g
ICAgcmVwciA9IHB5LmlvLnNhZmVyZXByKG9iaikKLSAgICBpZiBpc2luc3RhbmNlKHJlcHIsIHNp
eC50ZXh0X3R5cGUpOgotICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQotICAgIGVsc2U6Ci0gICAg
ICAgIHQgPSBzaXguYmluYXJ5X3R5cGUKLSAgICByZXR1cm4gcmVwci5yZXBsYWNlKHQoIlxuIiks
IHQoIlxcbiIpKQotCi0KLWZyb20gX3B5dGVzdC5hc3NlcnRpb24udXRpbCBpbXBvcnQgZm9ybWF0
X2V4cGxhbmF0aW9uIGFzIF9mb3JtYXRfZXhwbGFuYXRpb24gICMgbm9xYQotCi0KLWRlZiBfZm9y
bWF0X2Fzc2VydG1zZyhvYmopOgotICAgICIiIkZvcm1hdCB0aGUgY3VzdG9tIGFzc2VydGlvbiBt
ZXNzYWdlIGdpdmVuLgotCi0gICAgRm9yIHN0cmluZ3MgdGhpcyBzaW1wbHkgcmVwbGFjZXMgbmV3
bGluZXMgd2l0aCAnXG5+JyBzbyB0aGF0Ci0gICAgdXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKSB3
aWxsIHByZXNlcnZlIHRoZW0gaW5zdGVhZCBvZiBlc2NhcGluZwotICAgIG5ld2xpbmVzLiAgRm9y
IG90aGVyIG9iamVjdHMgcHkuaW8uc2FmZXJlcHIoKSBpcyB1c2VkIGZpcnN0LgotCi0gICAgIiIi
Ci0gICAgIyByZXBybGliIGFwcGVhcnMgdG8gaGF2ZSBhIGJ1ZyB3aGljaCBtZWFucyB0aGF0IGlm
IGEgc3RyaW5nCi0gICAgIyBjb250YWlucyBhIG5ld2xpbmUgaXQgZ2V0cyBlc2NhcGVkLCBob3dl
dmVyIGlmIGFuIG9iamVjdCBoYXMgYQotICAgICMgLl9fcmVwcl9fKCkgd2hpY2ggY29udGFpbnMg
bmV3bGluZXMgaXQgZG9lcyBub3QgZ2V0IGVzY2FwZWQuCi0gICAgIyBIb3dldmVyIGluIGVpdGhl
ciBjYXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgdGhlIG5ld2xpbmUuCi0gICAgaWYgaXNpbnN0YW5j
ZShvYmosIHNpeC50ZXh0X3R5cGUpIG9yIGlzaW5zdGFuY2Uob2JqLCBzaXguYmluYXJ5X3R5cGUp
OgotICAgICAgICBzID0gb2JqCi0gICAgICAgIGlzX3JlcHIgPSBGYWxzZQotICAgIGVsc2U6Ci0g
ICAgICAgIHMgPSBweS5pby5zYWZlcmVwcihvYmopCi0gICAgICAgIGlzX3JlcHIgPSBUcnVlCi0g
ICAgaWYgaXNpbnN0YW5jZShzLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgdCA9IHNpeC50ZXh0
X3R5cGUKLSAgICBlbHNlOgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCi0gICAgcyA9IHMu
cmVwbGFjZSh0KCJcbiIpLCB0KCJcbn4iKSkucmVwbGFjZSh0KCIlIiksIHQoIiUlIikpCi0gICAg
aWYgaXNfcmVwcjoKLSAgICAgICAgcyA9IHMucmVwbGFjZSh0KCJcXG4iKSwgdCgiXG5+IikpCi0g
ICAgcmV0dXJuIHMKLQotCi1kZWYgX3Nob3VsZF9yZXByX2dsb2JhbF9uYW1lKG9iaik6Ci0gICAg
cmV0dXJuIG5vdCBoYXNhdHRyKG9iaiwgIl9fbmFtZV9fIikgYW5kIG5vdCBjYWxsYWJsZShvYmop
Ci0KLQotZGVmIF9mb3JtYXRfYm9vbG9wKGV4cGxhbmF0aW9ucywgaXNfb3IpOgotICAgIGV4cGxh
bmF0aW9uID0gIigiICsgKGlzX29yIGFuZCAiIG9yICIgb3IgIiBhbmQgIikuam9pbihleHBsYW5h
dGlvbnMpICsgIikiCi0gICAgaWYgaXNpbnN0YW5jZShleHBsYW5hdGlvbiwgc2l4LnRleHRfdHlw
ZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToKLSAgICAgICAgdCA9IHNp
eC5iaW5hcnlfdHlwZQotICAgIHJldHVybiBleHBsYW5hdGlvbi5yZXBsYWNlKHQoJyUnKSwgdCgn
JSUnKSkKLQotCi1kZWYgX2NhbGxfcmVwcmNvbXBhcmUob3BzLCByZXN1bHRzLCBleHBscywgZWFj
aF9vYmopOgotICAgIGZvciBpLCByZXMsIGV4cGwgaW4gemlwKHJhbmdlKGxlbihvcHMpKSwgcmVz
dWx0cywgZXhwbHMpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkb25lID0gbm90IHJlcwot
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgZG9uZSA9IFRydWUKLSAgICAg
ICAgaWYgZG9uZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgaWYgdXRpbC5fcmVwcmNvbXBhcmUg
aXMgbm90IE5vbmU6Ci0gICAgICAgIGN1c3RvbSA9IHV0aWwuX3JlcHJjb21wYXJlKG9wc1tpXSwg
ZWFjaF9vYmpbaV0sIGVhY2hfb2JqW2kgKyAxXSkKLSAgICAgICAgaWYgY3VzdG9tIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgcmV0dXJuIGN1c3RvbQotICAgIHJldHVybiBleHBsCi0KLQotdW5h
cnlfbWFwID0gewotICAgIGFzdC5Ob3Q6ICJub3QgJXMiLAotICAgIGFzdC5JbnZlcnQ6ICJ+JXMi
LAotICAgIGFzdC5VU3ViOiAiLSVzIiwKLSAgICBhc3QuVUFkZDogIislcyIKLX0KLQotYmlub3Bf
bWFwID0gewotICAgIGFzdC5CaXRPcjogInwiLAotICAgIGFzdC5CaXRYb3I6ICJeIiwKLSAgICBh
c3QuQml0QW5kOiAiJiIsCi0gICAgYXN0LkxTaGlmdDogIjw8IiwKLSAgICBhc3QuUlNoaWZ0OiAi
Pj4iLAotICAgIGFzdC5BZGQ6ICIrIiwKLSAgICBhc3QuU3ViOiAiLSIsCi0gICAgYXN0Lk11bHQ6
ICIqIiwKLSAgICBhc3QuRGl2OiAiLyIsCi0gICAgYXN0LkZsb29yRGl2OiAiLy8iLAotICAgIGFz
dC5Nb2Q6ICIlJSIsICAjIGVzY2FwZWQgZm9yIHN0cmluZyBmb3JtYXR0aW5nCi0gICAgYXN0LkVx
OiAiPT0iLAotICAgIGFzdC5Ob3RFcTogIiE9IiwKLSAgICBhc3QuTHQ6ICI8IiwKLSAgICBhc3Qu
THRFOiAiPD0iLAotICAgIGFzdC5HdDogIj4iLAotICAgIGFzdC5HdEU6ICI+PSIsCi0gICAgYXN0
LlBvdzogIioqIiwKLSAgICBhc3QuSXM6ICJpcyIsCi0gICAgYXN0LklzTm90OiAiaXMgbm90IiwK
LSAgICBhc3QuSW46ICJpbiIsCi0gICAgYXN0Lk5vdEluOiAibm90IGluIgotfQotIyBQeXRob24g
My41KyBjb21wYXRpYmlsaXR5Ci10cnk6Ci0gICAgYmlub3BfbWFwW2FzdC5NYXRNdWx0XSA9ICJA
IgotZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgIHBhc3MKLQotIyBQeXRob24gMy40KyBjb21w
YXRpYmlsaXR5Ci1pZiBoYXNhdHRyKGFzdCwgIk5hbWVDb25zdGFudCIpOgotICAgIF9OYW1lQ29u
c3RhbnQgPSBhc3QuTmFtZUNvbnN0YW50Ci1lbHNlOgotICAgIGRlZiBfTmFtZUNvbnN0YW50KGMp
OgotICAgICAgICByZXR1cm4gYXN0Lk5hbWUoc3RyKGMpLCBhc3QuTG9hZCgpKQotCi0KLWRlZiBz
ZXRfbG9jYXRpb24obm9kZSwgbGluZW5vLCBjb2xfb2Zmc2V0KToKLSAgICAiIiJTZXQgbm9kZSBs
b2NhdGlvbiBpbmZvcm1hdGlvbiByZWN1cnNpdmVseS4iIiIKLSAgICBkZWYgX2ZpeChub2RlLCBs
aW5lbm8sIGNvbF9vZmZzZXQpOgotICAgICAgICBpZiAibGluZW5vIiBpbiBub2RlLl9hdHRyaWJ1
dGVzOgotICAgICAgICAgICAgbm9kZS5saW5lbm8gPSBsaW5lbm8KLSAgICAgICAgaWYgImNvbF9v
ZmZzZXQiIGluIG5vZGUuX2F0dHJpYnV0ZXM6Ci0gICAgICAgICAgICBub2RlLmNvbF9vZmZzZXQg
PSBjb2xfb2Zmc2V0Ci0gICAgICAgIGZvciBjaGlsZCBpbiBhc3QuaXRlcl9jaGlsZF9ub2Rlcyhu
b2RlKToKLSAgICAgICAgICAgIF9maXgoY2hpbGQsIGxpbmVubywgY29sX29mZnNldCkKLSAgICBf
Zml4KG5vZGUsIGxpbmVubywgY29sX29mZnNldCkKLSAgICByZXR1cm4gbm9kZQotCi0KLWNsYXNz
IEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlzaXRvcik6Ci0gICAgIiIiQXNzZXJ0aW9uIHJl
d3JpdGluZyBpbXBsZW1lbnRhdGlvbi4KLQotICAgIFRoZSBtYWluIGVudHJ5cG9pbnQgaXMgdG8g
Y2FsbCAucnVuKCkgd2l0aCBhbiBhc3QuTW9kdWxlIGluc3RhbmNlLAotICAgIHRoaXMgd2lsbCB0
aGVuIGZpbmQgYWxsIHRoZSBhc3NlcnQgc3RhdGVtZW50cyBhbmQgcmV3cml0ZSB0aGVtIHRvCi0g
ICAgcHJvdmlkZSBpbnRlcm1lZGlhdGUgdmFsdWVzIGFuZCBhIGRldGFpbGVkIGFzc2VydGlvbiBl
cnJvci4gIFNlZQotICAgIGh0dHA6Ly9weWJpdGVzLmJsb2dzcG90LmJlLzIwMTEvMDcvYmVoaW5k
LXNjZW5lcy1vZi1weXRlc3RzLW5ldy1hc3NlcnRpb24uaHRtbAotICAgIGZvciBhbiBvdmVydmll
dyBvZiBob3cgdGhpcyB3b3Jrcy4KLQotICAgIFRoZSBlbnRyeSBwb2ludCBoZXJlIGlzIC5ydW4o
KSB3aGljaCB3aWxsIGl0ZXJhdGUgb3ZlciBhbGwgdGhlCi0gICAgc3RhdGVtZW50cyBpbiBhbiBh
c3QuTW9kdWxlIGFuZCBmb3IgZWFjaCBhc3QuQXNzZXJ0IHN0YXRlbWVudCBpdAotICAgIGZpbmRz
IGNhbGwgLnZpc2l0KCkgd2l0aCBpdC4gIFRoZW4gLnZpc2l0X0Fzc2VydCgpIHRha2VzIG92ZXIg
YW5kCi0gICAgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIG5ldyBhc3Qgc3RhdGVtZW50cyB0
byByZXBsYWNlIHRoZQotICAgIG9yaWdpbmFsIGFzc2VydCBzdGF0ZW1lbnQ6IGl0IHJld3JpdGVz
IHRoZSB0ZXN0IG9mIGFuIGFzc2VydGlvbgotICAgIHRvIHByb3ZpZGUgaW50ZXJtZWRpYXRlIHZh
bHVlcyBhbmQgcmVwbGFjZSBpdCB3aXRoIGFuIGlmIHN0YXRlbWVudAotICAgIHdoaWNoIHJhaXNl
cyBhbiBhc3NlcnRpb24gZXJyb3Igd2l0aCBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIGluCi0gICAg
Y2FzZSB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4KLQotICAgIEZvciB0aGlzIC52aXNpdF9Bc3Nl
cnQoKSB1c2VzIHRoZSB2aXNpdG9yIHBhdHRlcm4gdG8gdmlzaXQgYWxsIHRoZQotICAgIEFTVCBu
b2RlcyBvZiB0aGUgYXN0LkFzc2VydC50ZXN0IGZpZWxkLCBlYWNoIHZpc2l0IGNhbGwgcmV0dXJu
aW5nCi0gICAgYW4gQVNUIG5vZGUgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGV4cGxhbmF0aW9uIHN0
cmluZy4gIER1cmluZyB0aGlzCi0gICAgc3RhdGUgaXMga2VwdCBpbiBzZXZlcmFsIGluc3RhbmNl
IGF0dHJpYnV0ZXM6Ci0KLSAgICA6c3RhdGVtZW50czogQWxsIHRoZSBBU1Qgc3RhdGVtZW50cyB3
aGljaCB3aWxsIHJlcGxhY2UgdGhlIGFzc2VydAotICAgICAgIHN0YXRlbWVudC4KLQotICAgIDp2
YXJpYWJsZXM6IFRoaXMgaXMgcG9wdWxhdGVkIGJ5IC52YXJpYWJsZSgpIHdpdGggZWFjaCB2YXJp
YWJsZQotICAgICAgIHVzZWQgYnkgdGhlIHN0YXRlbWVudHMgc28gdGhhdCB0aGV5IGNhbiBhbGwg
YmUgc2V0IHRvIE5vbmUgYXQKLSAgICAgICB0aGUgZW5kIG9mIHRoZSBzdGF0ZW1lbnRzLgotCi0g
ICAgOnZhcmlhYmxlX2NvdW50ZXI6IENvdW50ZXIgdG8gY3JlYXRlIG5ldyB1bmlxdWUgdmFyaWFi
bGVzIG5lZWRlZAotICAgICAgIGJ5IHN0YXRlbWVudHMuICBWYXJpYWJsZXMgYXJlIGNyZWF0ZWQg
dXNpbmcgLnZhcmlhYmxlKCkgYW5kCi0gICAgICAgaGF2ZSB0aGUgZm9ybSBvZiAiQHB5X2Fzc2Vy
dDAiLgotCi0gICAgOm9uX2ZhaWx1cmU6IFRoZSBBU1Qgc3RhdGVtZW50cyB3aGljaCB3aWxsIGJl
IGV4ZWN1dGVkIGlmIHRoZQotICAgICAgIGFzc2VydGlvbiB0ZXN0IGZhaWxzLiAgVGhpcyBpcyB0
aGUgY29kZSB3aGljaCB3aWxsIGNvbnN0cnVjdAotICAgICAgIHRoZSBmYWlsdXJlIG1lc3NhZ2Ug
YW5kIHJhaXNlcyB0aGUgQXNzZXJ0aW9uRXJyb3IuCi0KLSAgICA6ZXhwbGFuYXRpb25fc3BlY2lm
aWVyczogQSBkaWN0IGZpbGxlZCBieSAuZXhwbGFuYXRpb25fcGFyYW0oKQotICAgICAgIHdpdGgg
JS1mb3JtYXR0aW5nIHBsYWNlaG9sZGVycyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZwotICAgICAg
IGV4cHJlc3Npb25zIHRvIHVzZSBpbiB0aGUgYnVpbGRpbmcgb2YgYW4gYXNzZXJ0aW9uIG1lc3Nh
Z2UuCi0gICAgICAgVGhpcyBpcyB1c2VkIGJ5IC5wb3BfZm9ybWF0X2NvbnRleHQoKSB0byBidWls
ZCBhIG1lc3NhZ2UuCi0KLSAgICA6c3RhY2s6IEEgc3RhY2sgb2YgdGhlIGV4cGxhbmF0aW9uX3Nw
ZWNpZmllcnMgZGljdHMgbWFpbnRhaW5lZCBieQotICAgICAgIC5wdXNoX2Zvcm1hdF9jb250ZXh0
KCkgYW5kIC5wb3BfZm9ybWF0X2NvbnRleHQoKSB3aGljaCBhbGxvd3MKLSAgICAgICB0byBidWls
ZCBhbm90aGVyICUtZm9ybWF0dGVkIHN0cmluZyB3aGlsZSBhbHJlYWR5IGJ1aWxkaW5nIG9uZS4K
LQotICAgIFRoaXMgc3RhdGUgaXMgcmVzZXQgb24gZXZlcnkgbmV3IGFzc2VydCBzdGF0ZW1lbnQg
dmlzaXRlZCBhbmQgdXNlZAotICAgIGJ5IHRoZSBvdGhlciB2aXNpdG9ycy4KLQotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZHVsZV9wYXRoLCBjb25maWcpOgotICAgICAgICBz
dXBlcihBc3NlcnRpb25SZXdyaXRlciwgc2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxmLm1v
ZHVsZV9wYXRoID0gbW9kdWxlX3BhdGgKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLQot
ICAgIGRlZiBydW4oc2VsZiwgbW9kKToKLSAgICAgICAgIiIiRmluZCBhbGwgYXNzZXJ0IHN0YXRl
bWVudHMgaW4gKm1vZCogYW5kIHJld3JpdGUgdGhlbS4iIiIKLSAgICAgICAgaWYgbm90IG1vZC5i
b2R5OgotICAgICAgICAgICAgIyBOb3RoaW5nIHRvIGRvLgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgICMgSW5zZXJ0IHNvbWUgc3BlY2lhbCBpbXBvcnRzIGF0IHRoZSB0b3Agb2YgdGhlIG1v
ZHVsZSBidXQgYWZ0ZXIgYW55Ci0gICAgICAgICMgZG9jc3RyaW5ncyBhbmQgX19mdXR1cmVfXyBp
bXBvcnRzLgotICAgICAgICBhbGlhc2VzID0gW2FzdC5hbGlhcyhweS5idWlsdGluLmJ1aWx0aW5z
Ll9fbmFtZV9fLCAiQHB5X2J1aWx0aW5zIiksCi0gICAgICAgICAgICAgICAgICAgYXN0LmFsaWFz
KCJfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIiwgIkBweXRlc3RfYXIiKV0KLSAgICAgICAgZG9j
ID0gZ2V0YXR0cihtb2QsICJkb2NzdHJpbmciLCBOb25lKQotICAgICAgICBleHBlY3RfZG9jc3Ry
aW5nID0gZG9jIGlzIE5vbmUKLSAgICAgICAgaWYgZG9jIGlzIG5vdCBOb25lIGFuZCBzZWxmLmlz
X3Jld3JpdGVfZGlzYWJsZWQoZG9jKToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBwb3Mg
PSAwCi0gICAgICAgIGxpbmVubyA9IDEKLSAgICAgICAgZm9yIGl0ZW0gaW4gbW9kLmJvZHk6Ci0g
ICAgICAgICAgICBpZiAoZXhwZWN0X2RvY3N0cmluZyBhbmQgaXNpbnN0YW5jZShpdGVtLCBhc3Qu
RXhwcikgYW5kCi0gICAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoaXRlbS52YWx1ZSwgYXN0
LlN0cikpOgotICAgICAgICAgICAgICAgIGRvYyA9IGl0ZW0udmFsdWUucwotICAgICAgICAgICAg
ICAgIGlmIHNlbGYuaXNfcmV3cml0ZV9kaXNhYmxlZChkb2MpOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgICAgICAgICBleHBlY3RfZG9jc3RyaW5nID0gRmFsc2UKLSAgICAg
ICAgICAgIGVsaWYgKG5vdCBpc2luc3RhbmNlKGl0ZW0sIGFzdC5JbXBvcnRGcm9tKSBvciBpdGVt
LmxldmVsID4gMCBvcgotICAgICAgICAgICAgICAgICAgaXRlbS5tb2R1bGUgIT0gIl9fZnV0dXJl
X18iKToKLSAgICAgICAgICAgICAgICBsaW5lbm8gPSBpdGVtLmxpbmVubwotICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgICAgICBwb3MgKz0gMQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgbGluZW5vID0gaXRlbS5saW5lbm8KLSAgICAgICAgaW1wb3J0cyA9IFthc3QuSW1wb3J0KFth
bGlhc10sIGxpbmVubz1saW5lbm8sIGNvbF9vZmZzZXQ9MCkKLSAgICAgICAgICAgICAgICAgICBm
b3IgYWxpYXMgaW4gYWxpYXNlc10KLSAgICAgICAgbW9kLmJvZHlbcG9zOnBvc10gPSBpbXBvcnRz
Ci0gICAgICAgICMgQ29sbGVjdCBhc3NlcnRzLgotICAgICAgICBub2RlcyA9IFttb2RdCi0gICAg
ICAgIHdoaWxlIG5vZGVzOgotICAgICAgICAgICAgbm9kZSA9IG5vZGVzLnBvcCgpCi0gICAgICAg
ICAgICBmb3IgbmFtZSwgZmllbGQgaW4gYXN0Lml0ZXJfZmllbGRzKG5vZGUpOgotICAgICAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2UoZmllbGQsIGxpc3QpOgotICAgICAgICAgICAgICAgICAgICBu
ZXcgPSBbXQotICAgICAgICAgICAgICAgICAgICBmb3IgaSwgY2hpbGQgaW4gZW51bWVyYXRlKGZp
ZWxkKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY2hpbGQsIGFzdC5B
c3NlcnQpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHJhbnNmb3JtIGFzc2VydC4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcuZXh0ZW5kKHNlbGYudmlzaXQoY2hpbGQp
KQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXcuYXBwZW5kKGNoaWxkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UoY2hpbGQsIGFzdC5BU1QpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBub2Rlcy5hcHBlbmQoY2hpbGQpCi0gICAgICAgICAgICAgICAgICAgIHNldGF0dHIobm9kZSwg
bmFtZSwgbmV3KQotICAgICAgICAgICAgICAgIGVsaWYgKGlzaW5zdGFuY2UoZmllbGQsIGFzdC5B
U1QpIGFuZAotICAgICAgICAgICAgICAgICAgICAgICMgRG9uJ3QgcmVjdXJzZSBpbnRvIGV4cHJl
c3Npb25zIGFzIHRoZXkgY2FuJ3QgY29udGFpbgotICAgICAgICAgICAgICAgICAgICAgICMgYXNz
ZXJ0cy4KLSAgICAgICAgICAgICAgICAgICAgICBub3QgaXNpbnN0YW5jZShmaWVsZCwgYXN0LmV4
cHIpKToKLSAgICAgICAgICAgICAgICAgICAgbm9kZXMuYXBwZW5kKGZpZWxkKQotCi0gICAgZGVm
IGlzX3Jld3JpdGVfZGlzYWJsZWQoc2VsZiwgZG9jc3RyaW5nKToKLSAgICAgICAgcmV0dXJuICJQ
WVRFU1RfRE9OVF9SRVdSSVRFIiBpbiBkb2NzdHJpbmcKLQotICAgIGRlZiB2YXJpYWJsZShzZWxm
KToKLSAgICAgICAgIiIiR2V0IGEgbmV3IHZhcmlhYmxlLiIiIgotICAgICAgICAjIFVzZSBhIGNo
YXJhY3RlciBpbnZhbGlkIGluIHB5dGhvbiBpZGVudGlmaWVycyB0byBhdm9pZCBjbGFzaGluZy4K
LSAgICAgICAgbmFtZSA9ICJAcHlfYXNzZXJ0IiArIHN0cihuZXh0KHNlbGYudmFyaWFibGVfY291
bnRlcikpCi0gICAgICAgIHNlbGYudmFyaWFibGVzLmFwcGVuZChuYW1lKQotICAgICAgICByZXR1
cm4gbmFtZQotCi0gICAgZGVmIGFzc2lnbihzZWxmLCBleHByKToKLSAgICAgICAgIiIiR2l2ZSAq
ZXhwciogYSBuYW1lLiIiIgotICAgICAgICBuYW1lID0gc2VsZi52YXJpYWJsZSgpCi0gICAgICAg
IHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5hbWUobmFtZSwgYXN0LlN0
b3JlKCkpXSwgZXhwcikpCi0gICAgICAgIHJldHVybiBhc3QuTmFtZShuYW1lLCBhc3QuTG9hZCgp
KQotCi0gICAgZGVmIGRpc3BsYXkoc2VsZiwgZXhwcik6Ci0gICAgICAgICIiIkNhbGwgcHkuaW8u
c2FmZXJlcHIgb24gdGhlIGV4cHJlc3Npb24uIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmhlbHBl
cigic2FmZXJlcHIiLCBleHByKQotCi0gICAgZGVmIGhlbHBlcihzZWxmLCBuYW1lLCAqYXJncyk6
Ci0gICAgICAgICIiIkNhbGwgYSBoZWxwZXIgaW4gdGhpcyBtb2R1bGUuIiIiCi0gICAgICAgIHB5
X25hbWUgPSBhc3QuTmFtZSgiQHB5dGVzdF9hciIsIGFzdC5Mb2FkKCkpCi0gICAgICAgIGF0dHIg
PSBhc3QuQXR0cmlidXRlKHB5X25hbWUsICJfIiArIG5hbWUsIGFzdC5Mb2FkKCkpCi0gICAgICAg
IHJldHVybiBhc3RfQ2FsbChhdHRyLCBsaXN0KGFyZ3MpLCBbXSkKLQotICAgIGRlZiBidWlsdGlu
KHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGJ1aWx0aW4gY2FsbGVkICpuYW1l
Ki4iIiIKLSAgICAgICAgYnVpbHRpbl9uYW1lID0gYXN0Lk5hbWUoIkBweV9idWlsdGlucyIsIGFz
dC5Mb2FkKCkpCi0gICAgICAgIHJldHVybiBhc3QuQXR0cmlidXRlKGJ1aWx0aW5fbmFtZSwgbmFt
ZSwgYXN0LkxvYWQoKSkKLQotICAgIGRlZiBleHBsYW5hdGlvbl9wYXJhbShzZWxmLCBleHByKToK
LSAgICAgICAgIiIiUmV0dXJuIGEgbmV3IG5hbWVkICUtZm9ybWF0dGluZyBwbGFjZWhvbGRlciBm
b3IgZXhwci4KLQotICAgICAgICBUaGlzIGNyZWF0ZXMgYSAlLWZvcm1hdHRpbmcgcGxhY2Vob2xk
ZXIgZm9yIGV4cHIgaW4gdGhlCi0gICAgICAgIGN1cnJlbnQgZm9ybWF0dGluZyBjb250ZXh0LCBl
LmcuIGBgJShweTApc2BgLiAgVGhlIHBsYWNlaG9sZGVyCi0gICAgICAgIGFuZCBleHByIGFyZSBw
bGFjZWQgaW4gdGhlIGN1cnJlbnQgZm9ybWF0IGNvbnRleHQgc28gdGhhdCBpdAotICAgICAgICBj
YW4gYmUgdXNlZCBvbiB0aGUgbmV4dCBjYWxsIHRvIC5wb3BfZm9ybWF0X2NvbnRleHQoKS4KLQot
ICAgICAgICAiIiIKLSAgICAgICAgc3BlY2lmaWVyID0gInB5IiArIHN0cihuZXh0KHNlbGYudmFy
aWFibGVfY291bnRlcikpCi0gICAgICAgIHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVyc1tzcGVj
aWZpZXJdID0gZXhwcgotICAgICAgICByZXR1cm4gIiUoIiArIHNwZWNpZmllciArICIpcyIKLQot
ICAgIGRlZiBwdXNoX2Zvcm1hdF9jb250ZXh0KHNlbGYpOgotICAgICAgICAiIiJDcmVhdGUgYSBu
ZXcgZm9ybWF0dGluZyBjb250ZXh0LgotCi0gICAgICAgIFRoZSBmb3JtYXQgY29udGV4dCBpcyB1
c2VkIGZvciB3aGVuIGFuIGV4cGxhbmF0aW9uIHdhbnRzIHRvCi0gICAgICAgIGhhdmUgYSB2YXJp
YWJsZSB2YWx1ZSBmb3JtYXR0ZWQgaW4gdGhlIGFzc2VydGlvbiBtZXNzYWdlLiAgSW4KLSAgICAg
ICAgdGhpcyBjYXNlIHRoZSB2YWx1ZSByZXF1aXJlZCBjYW4gYmUgYWRkZWQgdXNpbmcKLSAgICAg
ICAgLmV4cGxhbmF0aW9uX3BhcmFtKCkuICBGaW5hbGx5IC5wb3BfZm9ybWF0X2NvbnRleHQoKSBp
cyB1c2VkCi0gICAgICAgIHRvIGZvcm1hdCBhIHN0cmluZyBvZiAlLWZvcm1hdHRlZCB2YWx1ZXMg
YXMgYWRkZWQgYnkKLSAgICAgICAgLmV4cGxhbmF0aW9uX3BhcmFtKCkuCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycyA9IHt9Ci0gICAgICAgIHNlbGYu
c3RhY2suYXBwZW5kKHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycykKLQotICAgIGRlZiBwb3Bf
Zm9ybWF0X2NvbnRleHQoc2VsZiwgZXhwbF9leHByKToKLSAgICAgICAgIiIiRm9ybWF0IHRoZSAl
LWZvcm1hdHRlZCBzdHJpbmcgd2l0aCBjdXJyZW50IGZvcm1hdCBjb250ZXh0LgotCi0gICAgICAg
IFRoZSBleHBsX2V4cHIgc2hvdWxkIGJlIGFuIGFzdC5TdHIgaW5zdGFuY2UgY29uc3RydWN0ZWQg
ZnJvbQotICAgICAgICB0aGUgJS1wbGFjZWhvbGRlcnMgY3JlYXRlZCBieSAuZXhwbGFuYXRpb25f
cGFyYW0oKS4gIFRoaXMgd2lsbAotICAgICAgICBhZGQgdGhlIHJlcXVpcmVkIGNvZGUgdG8gZm9y
bWF0IHNhaWQgc3RyaW5nIHRvIC5vbl9mYWlsdXJlIGFuZAotICAgICAgICByZXR1cm4gdGhlIGFz
dC5OYW1lIGluc3RhbmNlIG9mIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLgotCi0gICAgICAgICIiIgot
ICAgICAgICBjdXJyZW50ID0gc2VsZi5zdGFjay5wb3AoKQotICAgICAgICBpZiBzZWxmLnN0YWNr
OgotICAgICAgICAgICAgc2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJzID0gc2VsZi5zdGFja1st
MV0KLSAgICAgICAga2V5cyA9IFthc3QuU3RyKGtleSkgZm9yIGtleSBpbiBjdXJyZW50LmtleXMo
KV0KLSAgICAgICAgZm9ybWF0X2RpY3QgPSBhc3QuRGljdChrZXlzLCBsaXN0KGN1cnJlbnQudmFs
dWVzKCkpKQotICAgICAgICBmb3JtID0gYXN0LkJpbk9wKGV4cGxfZXhwciwgYXN0Lk1vZCgpLCBm
b3JtYXRfZGljdCkKLSAgICAgICAgbmFtZSA9ICJAcHlfZm9ybWF0IiArIHN0cihuZXh0KHNlbGYu
dmFyaWFibGVfY291bnRlcikpCi0gICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBlbmQoYXN0LkFz
c2lnbihbYXN0Lk5hbWUobmFtZSwgYXN0LlN0b3JlKCkpXSwgZm9ybSkpCi0gICAgICAgIHJldHVy
biBhc3QuTmFtZShuYW1lLCBhc3QuTG9hZCgpKQotCi0gICAgZGVmIGdlbmVyaWNfdmlzaXQoc2Vs
Ziwgbm9kZSk6Ci0gICAgICAgICIiIkhhbmRsZSBleHByZXNzaW9ucyB3ZSBkb24ndCBoYXZlIGN1
c3RvbSBjb2RlIGZvci4iIiIKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgYXN0LmV4
cHIpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKG5vZGUpCi0gICAgICAgIHJldHVybiByZXMs
IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykpCi0KLSAgICBkZWYgdmlz
aXRfQXNzZXJ0KHNlbGYsIGFzc2VydF8pOgotICAgICAgICAiIiJSZXR1cm4gdGhlIEFTVCBzdGF0
ZW1lbnRzIHRvIHJlcGxhY2UgdGhlIGFzdC5Bc3NlcnQgaW5zdGFuY2UuCi0KLSAgICAgICAgVGhp
cyByZXdyaXRlcyB0aGUgdGVzdCBvZiBhbiBhc3NlcnRpb24gdG8gcHJvdmlkZQotICAgICAgICBp
bnRlcm1lZGlhdGUgdmFsdWVzIGFuZCByZXBsYWNlIGl0IHdpdGggYW4gaWYgc3RhdGVtZW50IHdo
aWNoCi0gICAgICAgIHJhaXNlcyBhbiBhc3NlcnRpb24gZXJyb3Igd2l0aCBhIGRldGFpbGVkIGV4
cGxhbmF0aW9uIGluIGNhc2UKLSAgICAgICAgdGhlIGV4cHJlc3Npb24gaXMgZmFsc2UuCi0KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoYXNzZXJ0Xy50ZXN0LCBhc3QuVHVwbGUp
IGFuZCBzZWxmLmNvbmZpZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGZzbG9jYXRpb24gPSAo
c2VsZi5tb2R1bGVfcGF0aCwgYXNzZXJ0Xy5saW5lbm8pCi0gICAgICAgICAgICBzZWxmLmNvbmZp
Zy53YXJuKCdSMScsICdhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUsIHBlcmhhcHMgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAncmVtb3ZlIHBhcmVudGhlc2VzPycsIGZzbG9jYXRpb249
ZnNsb2NhdGlvbikKLSAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gW10KLSAgICAgICAgc2VsZi52
YXJpYWJsZXMgPSBbXQotICAgICAgICBzZWxmLnZhcmlhYmxlX2NvdW50ZXIgPSBpdGVydG9vbHMu
Y291bnQoKQotICAgICAgICBzZWxmLnN0YWNrID0gW10KLSAgICAgICAgc2VsZi5vbl9mYWlsdXJl
ID0gW10KLSAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKLSAgICAgICAgIyBSZXdy
aXRlIGFzc2VydCBpbnRvIGEgYnVuY2ggb2Ygc3RhdGVtZW50cy4KLSAgICAgICAgdG9wX2NvbmRp
dGlvbiwgZXhwbGFuYXRpb24gPSBzZWxmLnZpc2l0KGFzc2VydF8udGVzdCkKLSAgICAgICAgIyBD
cmVhdGUgZmFpbHVyZSBtZXNzYWdlLgotICAgICAgICBib2R5ID0gc2VsZi5vbl9mYWlsdXJlCi0g
ICAgICAgIG5lZ2F0aW9uID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCB0b3BfY29uZGl0aW9uKQot
ICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5JZihuZWdhdGlvbiwgYm9keSwgW10p
KQotICAgICAgICBpZiBhc3NlcnRfLm1zZzoKLSAgICAgICAgICAgIGFzc2VydG1zZyA9IHNlbGYu
aGVscGVyKCdmb3JtYXRfYXNzZXJ0bXNnJywgYXNzZXJ0Xy5tc2cpCi0gICAgICAgICAgICBleHBs
YW5hdGlvbiA9ICJcbj5hc3NlcnQgIiArIGV4cGxhbmF0aW9uCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBhc3NlcnRtc2cgPSBhc3QuU3RyKCIiKQotICAgICAgICAgICAgZXhwbGFuYXRpb24g
PSAiYXNzZXJ0ICIgKyBleHBsYW5hdGlvbgotICAgICAgICB0ZW1wbGF0ZSA9IGFzdC5CaW5PcChh
c3NlcnRtc2csIGFzdC5BZGQoKSwgYXN0LlN0cihleHBsYW5hdGlvbikpCi0gICAgICAgIG1zZyA9
IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KHRlbXBsYXRlKQotICAgICAgICBmbXQgPSBzZWxmLmhl
bHBlcigiZm9ybWF0X2V4cGxhbmF0aW9uIiwgbXNnKQotICAgICAgICBlcnJfbmFtZSA9IGFzdC5O
YW1lKCJBc3NlcnRpb25FcnJvciIsIGFzdC5Mb2FkKCkpCi0gICAgICAgIGV4YyA9IGFzdF9DYWxs
KGVycl9uYW1lLCBbZm10XSwgW10pCi0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0g
MzoKLSAgICAgICAgICAgIHJhaXNlXyA9IGFzdC5SYWlzZShleGMsIE5vbmUpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICByYWlzZV8gPSBhc3QuUmFpc2UoZXhjLCBOb25lLCBOb25lKQotICAg
ICAgICBib2R5LmFwcGVuZChyYWlzZV8pCi0gICAgICAgICMgQ2xlYXIgdGVtcG9yYXJ5IHZhcmlh
YmxlcyBieSBzZXR0aW5nIHRoZW0gdG8gTm9uZS4KLSAgICAgICAgaWYgc2VsZi52YXJpYWJsZXM6
Ci0gICAgICAgICAgICB2YXJpYWJsZXMgPSBbYXN0Lk5hbWUobmFtZSwgYXN0LlN0b3JlKCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYWJsZXNdCi0gICAg
ICAgICAgICBjbGVhciA9IGFzdC5Bc3NpZ24odmFyaWFibGVzLCBfTmFtZUNvbnN0YW50KE5vbmUp
KQotICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChjbGVhcikKLSAgICAgICAgIyBG
aXggbGluZSBudW1iZXJzLgotICAgICAgICBmb3Igc3RtdCBpbiBzZWxmLnN0YXRlbWVudHM6Ci0g
ICAgICAgICAgICBzZXRfbG9jYXRpb24oc3RtdCwgYXNzZXJ0Xy5saW5lbm8sIGFzc2VydF8uY29s
X29mZnNldCkKLSAgICAgICAgcmV0dXJuIHNlbGYuc3RhdGVtZW50cwotCi0gICAgZGVmIHZpc2l0
X05hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICMgRGlzcGxheSB0aGUgcmVwciBvZiB0aGUgbmFt
ZSBpZiBpdCdzIGEgbG9jYWwgdmFyaWFibGUgb3IKLSAgICAgICAgIyBfc2hvdWxkX3JlcHJfZ2xv
YmFsX25hbWUoKSB0aGlua3MgaXQncyBhY2NlcHRhYmxlLgotICAgICAgICBsb2NzID0gYXN0X0Nh
bGwoc2VsZi5idWlsdGluKCJsb2NhbHMiKSwgW10sIFtdKQotICAgICAgICBpbmxvY3MgPSBhc3Qu
Q29tcGFyZShhc3QuU3RyKG5hbWUuaWQpLCBbYXN0LkluKCldLCBbbG9jc10pCi0gICAgICAgIGRv
cmVwciA9IHNlbGYuaGVscGVyKCJzaG91bGRfcmVwcl9nbG9iYWxfbmFtZSIsIG5hbWUpCi0gICAg
ICAgIHRlc3QgPSBhc3QuQm9vbE9wKGFzdC5PcigpLCBbaW5sb2NzLCBkb3JlcHJdKQotICAgICAg
ICBleHByID0gYXN0LklmRXhwKHRlc3QsIHNlbGYuZGlzcGxheShuYW1lKSwgYXN0LlN0cihuYW1l
LmlkKSkKLSAgICAgICAgcmV0dXJuIG5hbWUsIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oZXhwcikK
LQotICAgIGRlZiB2aXNpdF9Cb29sT3Aoc2VsZiwgYm9vbG9wKToKLSAgICAgICAgcmVzX3ZhciA9
IHNlbGYudmFyaWFibGUoKQotICAgICAgICBleHBsX2xpc3QgPSBzZWxmLmFzc2lnbihhc3QuTGlz
dChbXSwgYXN0LkxvYWQoKSkpCi0gICAgICAgIGFwcCA9IGFzdC5BdHRyaWJ1dGUoZXhwbF9saXN0
LCAiYXBwZW5kIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgaXNfb3IgPSBpbnQoaXNpbnN0YW5jZShi
b29sb3Aub3AsIGFzdC5PcikpCi0gICAgICAgIGJvZHkgPSBzYXZlID0gc2VsZi5zdGF0ZW1lbnRz
Ci0gICAgICAgIGZhaWxfc2F2ZSA9IHNlbGYub25fZmFpbHVyZQotICAgICAgICBsZXZlbHMgPSBs
ZW4oYm9vbG9wLnZhbHVlcykgLSAxCi0gICAgICAgIHNlbGYucHVzaF9mb3JtYXRfY29udGV4dCgp
Ci0gICAgICAgICMgUHJvY2VzcyBlYWNoIG9wZXJhbmQsIHNob3J0LWNpcmN1dGluZyBpZiBuZWVk
ZWQuCi0gICAgICAgIGZvciBpLCB2IGluIGVudW1lcmF0ZShib29sb3AudmFsdWVzKToKLSAgICAg
ICAgICAgIGlmIGk6Ci0gICAgICAgICAgICAgICAgZmFpbF9pbm5lciA9IFtdCi0gICAgICAgICAg
ICAgICAgIyBjb25kIGlzIHNldCBpbiBhIHByaW9yIGxvb3AgaXRlcmF0aW9uIGJlbG93Ci0gICAg
ICAgICAgICAgICAgc2VsZi5vbl9mYWlsdXJlLmFwcGVuZChhc3QuSWYoY29uZCwgZmFpbF9pbm5l
ciwgW10pKSAgIyBub3FhCi0gICAgICAgICAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0gZmFpbF9p
bm5lcgotICAgICAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKLSAgICAgICAgICAg
IHJlcywgZXhwbCA9IHNlbGYudmlzaXQodikKLSAgICAgICAgICAgIGJvZHkuYXBwZW5kKGFzdC5B
c3NpZ24oW2FzdC5OYW1lKHJlc192YXIsIGFzdC5TdG9yZSgpKV0sIHJlcykpCi0gICAgICAgICAg
ICBleHBsX2Zvcm1hdCA9IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGFzdC5TdHIoZXhwbCkpCi0g
ICAgICAgICAgICBjYWxsID0gYXN0X0NhbGwoYXBwLCBbZXhwbF9mb3JtYXRdLCBbXSkKLSAgICAg
ICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBlbmQoYXN0LkV4cHIoY2FsbCkpCi0gICAgICAgICAg
ICBpZiBpIDwgbGV2ZWxzOgotICAgICAgICAgICAgICAgIGNvbmQgPSByZXMKLSAgICAgICAgICAg
ICAgICBpZiBpc19vcjoKLSAgICAgICAgICAgICAgICAgICAgY29uZCA9IGFzdC5VbmFyeU9wKGFz
dC5Ob3QoKSwgY29uZCkKLSAgICAgICAgICAgICAgICBpbm5lciA9IFtdCi0gICAgICAgICAgICAg
ICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuSWYoY29uZCwgaW5uZXIsIFtdKSkKLSAgICAg
ICAgICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBib2R5ID0gaW5uZXIKLSAgICAgICAgc2VsZi5z
dGF0ZW1lbnRzID0gc2F2ZQotICAgICAgICBzZWxmLm9uX2ZhaWx1cmUgPSBmYWlsX3NhdmUKLSAg
ICAgICAgZXhwbF90ZW1wbGF0ZSA9IHNlbGYuaGVscGVyKCJmb3JtYXRfYm9vbG9wIiwgZXhwbF9s
aXN0LCBhc3QuTnVtKGlzX29yKSkKLSAgICAgICAgZXhwbCA9IHNlbGYucG9wX2Zvcm1hdF9jb250
ZXh0KGV4cGxfdGVtcGxhdGUpCi0gICAgICAgIHJldHVybiBhc3QuTmFtZShyZXNfdmFyLCBhc3Qu
TG9hZCgpKSwgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShleHBsKQotCi0gICAgZGVmIHZpc2l0X1Vu
YXJ5T3Aoc2VsZiwgdW5hcnkpOgotICAgICAgICBwYXR0ZXJuID0gdW5hcnlfbWFwW3VuYXJ5Lm9w
Ll9fY2xhc3NfX10KLSAgICAgICAgb3BlcmFuZF9yZXMsIG9wZXJhbmRfZXhwbCA9IHNlbGYudmlz
aXQodW5hcnkub3BlcmFuZCkKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LlVuYXJ5T3Ao
dW5hcnkub3AsIG9wZXJhbmRfcmVzKSkKLSAgICAgICAgcmV0dXJuIHJlcywgcGF0dGVybiAlIChv
cGVyYW5kX2V4cGwsKQotCi0gICAgZGVmIHZpc2l0X0Jpbk9wKHNlbGYsIGJpbm9wKToKLSAgICAg
ICAgc3ltYm9sID0gYmlub3BfbWFwW2Jpbm9wLm9wLl9fY2xhc3NfX10KLSAgICAgICAgbGVmdF9l
eHByLCBsZWZ0X2V4cGwgPSBzZWxmLnZpc2l0KGJpbm9wLmxlZnQpCi0gICAgICAgIHJpZ2h0X2V4
cHIsIHJpZ2h0X2V4cGwgPSBzZWxmLnZpc2l0KGJpbm9wLnJpZ2h0KQotICAgICAgICBleHBsYW5h
dGlvbiA9ICIoJXMgJXMgJXMpIiAlIChsZWZ0X2V4cGwsIHN5bWJvbCwgcmlnaHRfZXhwbCkKLSAg
ICAgICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LkJpbk9wKGxlZnRfZXhwciwgYmlub3Aub3AsIHJp
Z2h0X2V4cHIpKQotICAgICAgICByZXR1cm4gcmVzLCBleHBsYW5hdGlvbgotCi0gICAgZGVmIHZp
c2l0X0NhbGxfMzUoc2VsZiwgY2FsbCk6Ci0gICAgICAgICIiIgotICAgICAgICB2aXNpdCBgYXN0
LkNhbGxgIG5vZGVzIG9uIFB5dGhvbjMuNSBhbmQgYWZ0ZXIKLSAgICAgICAgIiIiCi0gICAgICAg
IG5ld19mdW5jLCBmdW5jX2V4cGwgPSBzZWxmLnZpc2l0KGNhbGwuZnVuYykKLSAgICAgICAgYXJn
X2V4cGxzID0gW10KLSAgICAgICAgbmV3X2FyZ3MgPSBbXQotICAgICAgICBuZXdfa3dhcmdzID0g
W10KLSAgICAgICAgZm9yIGFyZyBpbiBjYWxsLmFyZ3M6Ci0gICAgICAgICAgICByZXMsIGV4cGwg
PSBzZWxmLnZpc2l0KGFyZykKLSAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoZXhwbCkKLSAg
ICAgICAgICAgIG5ld19hcmdzLmFwcGVuZChyZXMpCi0gICAgICAgIGZvciBrZXl3b3JkIGluIGNh
bGwua2V5d29yZHM6Ci0gICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGtleXdvcmQu
dmFsdWUpCi0gICAgICAgICAgICBuZXdfa3dhcmdzLmFwcGVuZChhc3Qua2V5d29yZChrZXl3b3Jk
LmFyZywgcmVzKSkKLSAgICAgICAgICAgIGlmIGtleXdvcmQuYXJnOgotICAgICAgICAgICAgICAg
IGFyZ19leHBscy5hcHBlbmQoa2V5d29yZC5hcmcgKyAiPSIgKyBleHBsKQotICAgICAgICAgICAg
ZWxzZTogICMgKiphcmdzIGhhdmUgYGFyZ2Aga2V5d29yZHMgd2l0aCBhbiAuYXJnIG9mIE5vbmUK
LSAgICAgICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKCIqKiIgKyBleHBsKQotCi0gICAgICAg
IGV4cGwgPSAiJXMoJXMpIiAlIChmdW5jX2V4cGwsICcsICcuam9pbihhcmdfZXhwbHMpKQotICAg
ICAgICBuZXdfY2FsbCA9IGFzdC5DYWxsKG5ld19mdW5jLCBuZXdfYXJncywgbmV3X2t3YXJncykK
LSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24obmV3X2NhbGwpCi0gICAgICAgIHJlc19leHBsID0g
c2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkKLSAgICAgICAgb3V0ZXJf
ZXhwbCA9ICIlc1xueyVzID0gJXNcbn0iICUgKHJlc19leHBsLCByZXNfZXhwbCwgZXhwbCkKLSAg
ICAgICAgcmV0dXJuIHJlcywgb3V0ZXJfZXhwbAotCi0gICAgZGVmIHZpc2l0X1N0YXJyZWQoc2Vs
Ziwgc3RhcnJlZCk6Ci0gICAgICAgICMgRnJvbSBQeXRob24gMy41LCBhIFN0YXJyZWQgbm9kZSBj
YW4gYXBwZWFyIGluIGEgZnVuY3Rpb24gY2FsbAotICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZp
c2l0KHN0YXJyZWQudmFsdWUpCi0gICAgICAgIHJldHVybiBzdGFycmVkLCAnKicgKyBleHBsCi0K
LSAgICBkZWYgdmlzaXRfQ2FsbF9sZWdhY3koc2VsZiwgY2FsbCk6Ci0gICAgICAgICIiIgotICAg
ICAgICB2aXNpdCBgYXN0LkNhbGwgbm9kZXMgb24gMy40IGFuZCBiZWxvd2AKLSAgICAgICAgIiIi
Ci0gICAgICAgIG5ld19mdW5jLCBmdW5jX2V4cGwgPSBzZWxmLnZpc2l0KGNhbGwuZnVuYykKLSAg
ICAgICAgYXJnX2V4cGxzID0gW10KLSAgICAgICAgbmV3X2FyZ3MgPSBbXQotICAgICAgICBuZXdf
a3dhcmdzID0gW10KLSAgICAgICAgbmV3X3N0YXIgPSBuZXdfa3dhcmcgPSBOb25lCi0gICAgICAg
IGZvciBhcmcgaW4gY2FsbC5hcmdzOgotICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNp
dChhcmcpCi0gICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQocmVzKQotICAgICAgICAgICAgYXJn
X2V4cGxzLmFwcGVuZChleHBsKQotICAgICAgICBmb3Iga2V5d29yZCBpbiBjYWxsLmtleXdvcmRz
OgotICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChrZXl3b3JkLnZhbHVlKQotICAg
ICAgICAgICAgbmV3X2t3YXJncy5hcHBlbmQoYXN0LmtleXdvcmQoa2V5d29yZC5hcmcsIHJlcykp
Ci0gICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGtleXdvcmQuYXJnICsgIj0iICsgZXhwbCkK
LSAgICAgICAgaWYgY2FsbC5zdGFyYXJnczoKLSAgICAgICAgICAgIG5ld19zdGFyLCBleHBsID0g
c2VsZi52aXNpdChjYWxsLnN0YXJhcmdzKQotICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZCgi
KiIgKyBleHBsKQotICAgICAgICBpZiBjYWxsLmt3YXJnczoKLSAgICAgICAgICAgIG5ld19rd2Fy
ZywgZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5rd2FyZ3MpCi0gICAgICAgICAgICBhcmdfZXhwbHMu
YXBwZW5kKCIqKiIgKyBleHBsKQotICAgICAgICBleHBsID0gIiVzKCVzKSIgJSAoZnVuY19leHBs
LCAnLCAnLmpvaW4oYXJnX2V4cGxzKSkKLSAgICAgICAgbmV3X2NhbGwgPSBhc3QuQ2FsbChuZXdf
ZnVuYywgbmV3X2FyZ3MsIG5ld19rd2FyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmV3X3N0YXIsIG5ld19rd2FyZykKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24obmV3X2NhbGwp
Ci0gICAgICAgIHJlc19leHBsID0gc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXko
cmVzKSkKLSAgICAgICAgb3V0ZXJfZXhwbCA9ICIlc1xueyVzID0gJXNcbn0iICUgKHJlc19leHBs
LCByZXNfZXhwbCwgZXhwbCkKLSAgICAgICAgcmV0dXJuIHJlcywgb3V0ZXJfZXhwbAotCi0gICAg
IyBhc3QuQ2FsbCBzaWduYXR1cmUgY2hhbmdlZCBvbiAzLjUsCi0gICAgIyBjb25kaXRpb25hbGx5
IGNoYW5nZSAgd2hpY2ggbWV0aG9kcyBpcyBuYW1lZAotICAgICMgdmlzaXRfQ2FsbCBkZXBlbmRp
bmcgb24gUHl0aG9uIHZlcnNpb24KLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCA1KToK
LSAgICAgICAgdmlzaXRfQ2FsbCA9IHZpc2l0X0NhbGxfMzUKLSAgICBlbHNlOgotICAgICAgICB2
aXNpdF9DYWxsID0gdmlzaXRfQ2FsbF9sZWdhY3kKLQotICAgIGRlZiB2aXNpdF9BdHRyaWJ1dGUo
c2VsZiwgYXR0cik6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGF0dHIuY3R4LCBhc3QuTG9h
ZCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5nZW5lcmljX3Zpc2l0KGF0dHIpCi0gICAgICAg
IHZhbHVlLCB2YWx1ZV9leHBsID0gc2VsZi52aXNpdChhdHRyLnZhbHVlKQotICAgICAgICByZXMg
PSBzZWxmLmFzc2lnbihhc3QuQXR0cmlidXRlKHZhbHVlLCBhdHRyLmF0dHIsIGFzdC5Mb2FkKCkp
KQotICAgICAgICByZXNfZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5
KHJlcykpCi0gICAgICAgIHBhdCA9ICIlc1xueyVzID0gJXMuJXNcbn0iCi0gICAgICAgIGV4cGwg
PSBwYXQgJSAocmVzX2V4cGwsIHJlc19leHBsLCB2YWx1ZV9leHBsLCBhdHRyLmF0dHIpCi0gICAg
ICAgIHJldHVybiByZXMsIGV4cGwKLQotICAgIGRlZiB2aXNpdF9Db21wYXJlKHNlbGYsIGNvbXAp
OgotICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQotICAgICAgICBsZWZ0X3Jlcywg
bGVmdF9leHBsID0gc2VsZi52aXNpdChjb21wLmxlZnQpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uo
Y29tcC5sZWZ0LCAoX2FzdC5Db21wYXJlLCBfYXN0LkJvb2xPcCkpOgotICAgICAgICAgICAgbGVm
dF9leHBsID0gIih7MH0pIi5mb3JtYXQobGVmdF9leHBsKQotICAgICAgICByZXNfdmFyaWFibGVz
ID0gW3NlbGYudmFyaWFibGUoKSBmb3IgaSBpbiByYW5nZShsZW4oY29tcC5vcHMpKV0KLSAgICAg
ICAgbG9hZF9uYW1lcyA9IFthc3QuTmFtZSh2LCBhc3QuTG9hZCgpKSBmb3IgdiBpbiByZXNfdmFy
aWFibGVzXQotICAgICAgICBzdG9yZV9uYW1lcyA9IFthc3QuTmFtZSh2LCBhc3QuU3RvcmUoKSkg
Zm9yIHYgaW4gcmVzX3ZhcmlhYmxlc10KLSAgICAgICAgaXQgPSB6aXAocmFuZ2UobGVuKGNvbXAu
b3BzKSksIGNvbXAub3BzLCBjb21wLmNvbXBhcmF0b3JzKQotICAgICAgICBleHBscyA9IFtdCi0g
ICAgICAgIHN5bXMgPSBbXQotICAgICAgICByZXN1bHRzID0gW2xlZnRfcmVzXQotICAgICAgICBm
b3IgaSwgb3AsIG5leHRfb3BlcmFuZCBpbiBpdDoKLSAgICAgICAgICAgIG5leHRfcmVzLCBuZXh0
X2V4cGwgPSBzZWxmLnZpc2l0KG5leHRfb3BlcmFuZCkKLSAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UobmV4dF9vcGVyYW5kLCAoX2FzdC5Db21wYXJlLCBfYXN0LkJvb2xPcCkpOgotICAgICAgICAg
ICAgICAgIG5leHRfZXhwbCA9ICIoezB9KSIuZm9ybWF0KG5leHRfZXhwbCkKLSAgICAgICAgICAg
IHJlc3VsdHMuYXBwZW5kKG5leHRfcmVzKQotICAgICAgICAgICAgc3ltID0gYmlub3BfbWFwW29w
Ll9fY2xhc3NfX10KLSAgICAgICAgICAgIHN5bXMuYXBwZW5kKGFzdC5TdHIoc3ltKSkKLSAgICAg
ICAgICAgIGV4cGwgPSAiJXMgJXMgJXMiICUgKGxlZnRfZXhwbCwgc3ltLCBuZXh0X2V4cGwpCi0g
ICAgICAgICAgICBleHBscy5hcHBlbmQoYXN0LlN0cihleHBsKSkKLSAgICAgICAgICAgIHJlc19l
eHByID0gYXN0LkNvbXBhcmUobGVmdF9yZXMsIFtvcF0sIFtuZXh0X3Jlc10pCi0gICAgICAgICAg
ICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5Bc3NpZ24oW3N0b3JlX25hbWVzW2ldXSwgcmVz
X2V4cHIpKQotICAgICAgICAgICAgbGVmdF9yZXMsIGxlZnRfZXhwbCA9IG5leHRfcmVzLCBuZXh0
X2V4cGwKLSAgICAgICAgIyBVc2UgcHl0ZXN0LmFzc2VydGlvbi51dGlsLl9yZXByY29tcGFyZSBp
ZiB0aGF0J3MgYXZhaWxhYmxlLgotICAgICAgICBleHBsX2NhbGwgPSBzZWxmLmhlbHBlcigiY2Fs
bF9yZXByY29tcGFyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5UdXBs
ZShzeW1zLCBhc3QuTG9hZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0
LlR1cGxlKGxvYWRfbmFtZXMsIGFzdC5Mb2FkKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhc3QuVHVwbGUoZXhwbHMsIGFzdC5Mb2FkKCkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhc3QuVHVwbGUocmVzdWx0cywgYXN0LkxvYWQoKSkpCi0gICAgICAgIGlm
IGxlbihjb21wLm9wcykgPiAxOgotICAgICAgICAgICAgcmVzID0gYXN0LkJvb2xPcChhc3QuQW5k
KCksIGxvYWRfbmFtZXMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXMgPSBsb2FkX25h
bWVzWzBdCi0gICAgICAgIHJldHVybiByZXMsIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5w
b3BfZm9ybWF0X2NvbnRleHQoZXhwbF9jYWxsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRp
b24vdHJ1bmNhdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlZDEyZTJlNWE5
NjBjYTYwZDk5ODY4ZTE5ODk3YTI3ZGRhNmQ4MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNh
dGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotIiIiCi1VdGlsaXRpZXMgZm9y
IHRydW5jYXRpbmcgYXNzZXJ0aW9uIG91dHB1dC4KLQotQ3VycmVudCBkZWZhdWx0IGJlaGF2aW91
ciBpcyB0byB0cnVuY2F0ZSBhc3NlcnRpb24gZXhwbGFuYXRpb25zIGF0Ci1+OCB0ZXJtaW5hbCBs
aW5lcywgdW5sZXNzIHJ1bm5pbmcgaW4gIi12diIgbW9kZSBvciBydW5uaW5nIG9uIENJLgotIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi1pbXBvcnQgb3MKLQotaW1wb3J0IHNpeAotCi0KLURFRkFVTFRfTUFYX0xJTkVT
ID0gOAotREVGQVVMVF9NQVhfQ0hBUlMgPSA4ICogODAKLVVTQUdFX01TRyA9ICJ1c2UgJy12dicg
dG8gc2hvdyIKLQotCi1kZWYgdHJ1bmNhdGVfaWZfcmVxdWlyZWQoZXhwbGFuYXRpb24sIGl0ZW0s
IG1heF9sZW5ndGg9Tm9uZSk6Ci0gICAgIiIiCi0gICAgVHJ1bmNhdGUgdGhpcyBhc3NlcnRpb24g
ZXhwbGFuYXRpb24gaWYgdGhlIGdpdmVuIHRlc3QgaXRlbSBpcyBlbGlnaWJsZS4KLSAgICAiIiIK
LSAgICBpZiBfc2hvdWxkX3RydW5jYXRlX2l0ZW0oaXRlbSk6Ci0gICAgICAgIHJldHVybiBfdHJ1
bmNhdGVfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0K
LQotZGVmIF9zaG91bGRfdHJ1bmNhdGVfaXRlbShpdGVtKToKLSAgICAiIiIKLSAgICBXaGV0aGVy
IG9yIG5vdCB0aGlzIHRlc3QgaXRlbSBpcyBlbGlnaWJsZSBmb3IgdHJ1bmNhdGlvbi4KLSAgICAi
IiIKLSAgICB2ZXJib3NlID0gaXRlbS5jb25maWcub3B0aW9uLnZlcmJvc2UKLSAgICByZXR1cm4g
dmVyYm9zZSA8IDIgYW5kIG5vdCBfcnVubmluZ19vbl9jaSgpCi0KLQotZGVmIF9ydW5uaW5nX29u
X2NpKCk6Ci0gICAgIiIiQ2hlY2sgaWYgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgb24gYSBDSSBz
eXN0ZW0uIiIiCi0gICAgZW52X3ZhcnMgPSBbJ0NJJywgJ0JVSUxEX05VTUJFUiddCi0gICAgcmV0
dXJuIGFueSh2YXIgaW4gb3MuZW52aXJvbiBmb3IgdmFyIGluIGVudl92YXJzKQotCi0KLWRlZiBf
dHJ1bmNhdGVfZXhwbGFuYXRpb24oaW5wdXRfbGluZXMsIG1heF9saW5lcz1Ob25lLCBtYXhfY2hh
cnM9Tm9uZSk6Ci0gICAgIiIiCi0gICAgVHJ1bmNhdGUgZ2l2ZW4gbGlzdCBvZiBzdHJpbmdzIHRo
YXQgbWFrZXMgdXAgdGhlIGFzc2VydGlvbiBleHBsYW5hdGlvbi4KLQotICAgIFRydW5jYXRlcyB0
byBlaXRoZXIgOCBsaW5lcywgb3IgNjQwIGNoYXJhY3RlcnMgLSB3aGljaGV2ZXIgdGhlIGlucHV0
IHJlYWNoZXMKLSAgICBmaXJzdC4gVGhlIHJlbWFpbmluZyBsaW5lcyB3aWxsIGJlIHJlcGxhY2Vk
IGJ5IGEgdXNhZ2UgbWVzc2FnZS4KLSAgICAiIiIKLQotICAgIGlmIG1heF9saW5lcyBpcyBOb25l
OgotICAgICAgICBtYXhfbGluZXMgPSBERUZBVUxUX01BWF9MSU5FUwotICAgIGlmIG1heF9jaGFy
cyBpcyBOb25lOgotICAgICAgICBtYXhfY2hhcnMgPSBERUZBVUxUX01BWF9DSEFSUwotCi0gICAg
IyBDaGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCi0gICAgaW5wdXRfY2hhcl9jb3VudCA9IGxl
bigiIi5qb2luKGlucHV0X2xpbmVzKSkKLSAgICBpZiBsZW4oaW5wdXRfbGluZXMpIDw9IG1heF9s
aW5lcyBhbmQgaW5wdXRfY2hhcl9jb3VudCA8PSBtYXhfY2hhcnM6Ci0gICAgICAgIHJldHVybiBp
bnB1dF9saW5lcwotCi0gICAgIyBUcnVuY2F0ZSBmaXJzdCB0byBtYXhfbGluZXMsIGFuZCB0aGVu
IHRydW5jYXRlIHRvIG1heF9jaGFycyBpZiBtYXhfY2hhcnMKLSAgICAjIGlzIGV4Y2VlZGVkLgot
ICAgIHRydW5jYXRlZF9leHBsYW5hdGlvbiA9IGlucHV0X2xpbmVzWzptYXhfbGluZXNdCi0gICAg
dHJ1bmNhdGVkX2V4cGxhbmF0aW9uID0gX3RydW5jYXRlX2J5X2NoYXJfY291bnQodHJ1bmNhdGVk
X2V4cGxhbmF0aW9uLCBtYXhfY2hhcnMpCi0KLSAgICAjIEFkZCBlbGxpcHNpcyB0byBmaW5hbCBs
aW5lCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSA9IHRydW5jYXRlZF9leHBsYW5hdGlv
blstMV0gKyAiLi4uIgotCi0gICAgIyBBcHBlbmQgdXNlZnVsIG1lc3NhZ2UgdG8gZXhwbGFuYXRp
b24KLSAgICB0cnVuY2F0ZWRfbGluZV9jb3VudCA9IGxlbihpbnB1dF9saW5lcykgLSBsZW4odHJ1
bmNhdGVkX2V4cGxhbmF0aW9uKQotICAgIHRydW5jYXRlZF9saW5lX2NvdW50ICs9IDEgICMgQWNj
b3VudCBmb3IgdGhlIHBhcnQtdHJ1bmNhdGVkIGZpbmFsIGxpbmUKLSAgICBtc2cgPSAnLi4uRnVs
bCBvdXRwdXQgdHJ1bmNhdGVkJwotICAgIGlmIHRydW5jYXRlZF9saW5lX2NvdW50ID09IDE6Ci0g
ICAgICAgIG1zZyArPSAnICh7MH0gbGluZSBoaWRkZW4pJy5mb3JtYXQodHJ1bmNhdGVkX2xpbmVf
Y291bnQpCi0gICAgZWxzZToKLSAgICAgICAgbXNnICs9ICcgKHswfSBsaW5lcyBoaWRkZW4pJy5m
b3JtYXQodHJ1bmNhdGVkX2xpbmVfY291bnQpCi0gICAgbXNnICs9ICIsIHswfSIgLmZvcm1hdChV
U0FHRV9NU0cpCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uLmV4dGVuZChbCi0gICAgICAgIHNp
eC50ZXh0X3R5cGUoIiIpLAotICAgICAgICBzaXgudGV4dF90eXBlKG1zZyksCi0gICAgXSkKLSAg
ICByZXR1cm4gdHJ1bmNhdGVkX2V4cGxhbmF0aW9uCi0KLQotZGVmIF90cnVuY2F0ZV9ieV9jaGFy
X2NvdW50KGlucHV0X2xpbmVzLCBtYXhfY2hhcnMpOgotICAgICMgQ2hlY2sgaWYgdHJ1bmNhdGlv
biByZXF1aXJlZAotICAgIGlmIGxlbigiIi5qb2luKGlucHV0X2xpbmVzKSkgPD0gbWF4X2NoYXJz
OgotICAgICAgICByZXR1cm4gaW5wdXRfbGluZXMKLQotICAgICMgRmluZCBwb2ludCBhdCB3aGlj
aCBpbnB1dCBsZW5ndGggZXhjZWVkcyB0b3RhbCBhbGxvd2VkIGxlbmd0aAotICAgIGl0ZXJhdGVk
X2NoYXJfY291bnQgPSAwCi0gICAgZm9yIGl0ZXJhdGVkX2luZGV4LCBpbnB1dF9saW5lIGluIGVu
dW1lcmF0ZShpbnB1dF9saW5lcyk6Ci0gICAgICAgIGlmIGl0ZXJhdGVkX2NoYXJfY291bnQgKyBs
ZW4oaW5wdXRfbGluZSkgPiBtYXhfY2hhcnM6Ci0gICAgICAgICAgICBicmVhawotICAgICAgICBp
dGVyYXRlZF9jaGFyX2NvdW50ICs9IGxlbihpbnB1dF9saW5lKQotCi0gICAgIyBDcmVhdGUgdHJ1
bmNhdGVkIGV4cGxhbmF0aW9uIHdpdGggbW9kaWZpZWQgZmluYWwgbGluZQotICAgIHRydW5jYXRl
ZF9yZXN1bHQgPSBpbnB1dF9saW5lc1s6aXRlcmF0ZWRfaW5kZXhdCi0gICAgZmluYWxfbGluZSA9
IGlucHV0X2xpbmVzW2l0ZXJhdGVkX2luZGV4XQotICAgIGlmIGZpbmFsX2xpbmU6Ci0gICAgICAg
IGZpbmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnQgPSBtYXhfY2hhcnMgLSBpdGVyYXRlZF9jaGFyX2Nv
dW50Ci0gICAgICAgIGZpbmFsX2xpbmUgPSBmaW5hbF9saW5lWzpmaW5hbF9saW5lX3RydW5jYXRl
X3BvaW50XQotICAgIHRydW5jYXRlZF9yZXN1bHQuYXBwZW5kKGZpbmFsX2xpbmUpCi0gICAgcmV0
dXJuIHRydW5jYXRlZF9yZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNz
ZXJ0aW9uL3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTFkOThlZjFmZGYxOTY0M2QyYWM2Yjg4NjQ4
ZTg4YzY3YmQ5ZGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwzMDggKzAsMCBAQAotIiIiVXRpbGl0aWVzIGZvciBhc3NlcnRpb24gZGVidWdnaW5nIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi1pbXBvcnQgcHByaW50Ci0KLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQg
cHkKLWltcG9ydCBzaXgKLXRyeToKLSAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBTZXF1ZW5j
ZQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIFNlcXVlbmNlID0gbGlzdAotCi0KLXUgPSBzaXgu
dGV4dF90eXBlCi0KLSMgVGhlIF9yZXByY29tcGFyZSBhdHRyaWJ1dGUgb24gdGhlIHV0aWwgbW9k
dWxlIGlzIHVzZWQgYnkgdGhlIG5ldyBhc3NlcnRpb24KLSMgaW50ZXJwcmV0YXRpb24gY29kZSBh
bmQgYXNzZXJ0aW9uIHJld3JpdGVyIHRvIGRldGVjdCB0aGlzIHBsdWdpbiB3YXMKLSMgbG9hZGVk
IGFuZCBpbiB0dXJuIGNhbGwgdGhlIGhvb2tzIGRlZmluZWQgaGVyZSBhcyBwYXJ0IG9mIHRoZQot
IyBEZWJ1Z0ludGVycHJldGVyLgotX3JlcHJjb21wYXJlID0gTm9uZQotCi0KLSMgdGhlIHJlLWVu
Y29kaW5nIGlzIG5lZWRlZCBmb3IgcHl0aG9uMiByZXByCi0jIHdpdGggbm9uLWFzY2lpIGNoYXJh
Y3RlcnMgKHNlZSBpc3N1ZSA4NzcgYW5kIDEzNzkpCi1kZWYgZWN1KHMpOgotICAgIHRyeToKLSAg
ICAgICAgcmV0dXJuIHUocywgJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAgIGV4Y2VwdCBUeXBlRXJy
b3I6Ci0gICAgICAgIHJldHVybiBzCi0KLQotZGVmIGZvcm1hdF9leHBsYW5hdGlvbihleHBsYW5h
dGlvbik6Ci0gICAgIiIiVGhpcyBmb3JtYXRzIGFuIGV4cGxhbmF0aW9uCi0KLSAgICBOb3JtYWxs
eSBhbGwgZW1iZWRkZWQgbmV3bGluZXMgYXJlIGVzY2FwZWQsIGhvd2V2ZXIgdGhlcmUgYXJlCi0g
ICAgdGhyZWUgZXhjZXB0aW9uczogXG57LCBcbn0gYW5kIFxufi4gIFRoZSBmaXJzdCB0d28gYXJl
IGludGVuZGVkCi0gICAgY292ZXIgbmVzdGVkIGV4cGxhbmF0aW9ucywgc2VlIGZ1bmN0aW9uIGFu
ZCBhdHRyaWJ1dGUgZXhwbGFuYXRpb25zCi0gICAgZm9yIGV4YW1wbGVzICgudmlzaXRfQ2FsbCgp
LCB2aXNpdF9BdHRyaWJ1dGUoKSkuICBUaGUgbGFzdCBvbmUgaXMKLSAgICBmb3Igd2hlbiBvbmUg
ZXhwbGFuYXRpb24gbmVlZHMgdG8gc3BhbiBtdWx0aXBsZSBsaW5lcywgZS5nLiB3aGVuCi0gICAg
ZGlzcGxheWluZyBkaWZmcy4KLSAgICAiIiIKLSAgICBleHBsYW5hdGlvbiA9IGVjdShleHBsYW5h
dGlvbikKLSAgICBsaW5lcyA9IF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5hdGlvbikKLSAgICBy
ZXN1bHQgPSBfZm9ybWF0X2xpbmVzKGxpbmVzKQotICAgIHJldHVybiB1KCdcbicpLmpvaW4ocmVz
dWx0KQotCi0KLWRlZiBfc3BsaXRfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pOgotICAgICIiIlJl
dHVybiBhIGxpc3Qgb2YgaW5kaXZpZHVhbCBsaW5lcyBpbiB0aGUgZXhwbGFuYXRpb24KLQotICAg
IFRoaXMgd2lsbCByZXR1cm4gYSBsaXN0IG9mIGxpbmVzIHNwbGl0IG9uICdcbnsnLCAnXG59JyBh
bmQgJ1xuficuCi0gICAgQW55IG90aGVyIG5ld2xpbmVzIHdpbGwgYmUgZXNjYXBlZCBhbmQgYXBw
ZWFyIGluIHRoZSBsaW5lIGFzIHRoZQotICAgIGxpdGVyYWwgJ1xuJyBjaGFyYWN0ZXJzLgotICAg
ICIiIgotICAgIHJhd19saW5lcyA9IChleHBsYW5hdGlvbiBvciB1KCcnKSkuc3BsaXQoJ1xuJykK
LSAgICBsaW5lcyA9IFtyYXdfbGluZXNbMF1dCi0gICAgZm9yIHZhbHVlcyBpbiByYXdfbGluZXNb
MTpdOgotICAgICAgICBpZiB2YWx1ZXMgYW5kIHZhbHVlc1swXSBpbiBbJ3snLCAnfScsICd+Jywg
Jz4nXToKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCh2YWx1ZXMpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBsaW5lc1stMV0gKz0gJ1xcbicgKyB2YWx1ZXMKLSAgICByZXR1cm4gbGluZXMK
LQotCi1kZWYgX2Zvcm1hdF9saW5lcyhsaW5lcyk6Ci0gICAgIiIiRm9ybWF0IHRoZSBpbmRpdmlk
dWFsIGxpbmVzCi0KLSAgICBUaGlzIHdpbGwgcmVwbGFjZSB0aGUgJ3snLCAnfScgYW5kICd+JyBj
aGFyYWN0ZXJzIG9mIG91ciBtaW5pCi0gICAgZm9ybWF0dGluZyBsYW5ndWFnZSB3aXRoIHRoZSBw
cm9wZXIgJ3doZXJlIC4uLicsICdhbmQgLi4uJyBhbmQgJyArCi0gICAgLi4uJyB0ZXh0LCB0YWtp
bmcgY2FyZSBvZiBpbmRlbnRhdGlvbiBhbG9uZyB0aGUgd2F5LgotCi0gICAgUmV0dXJuIGEgbGlz
dCBvZiBmb3JtYXR0ZWQgbGluZXMuCi0gICAgIiIiCi0gICAgcmVzdWx0ID0gbGluZXNbOjFdCi0g
ICAgc3RhY2sgPSBbMF0KLSAgICBzdGFja2NudCA9IFswXQotICAgIGZvciBsaW5lIGluIGxpbmVz
WzE6XToKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCd7Jyk6Ci0gICAgICAgICAgICBpZiBz
dGFja2NudFstMV06Ci0gICAgICAgICAgICAgICAgcyA9IHUoJ2FuZCAgICcpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHMgPSB1KCd3aGVyZSAnKQotICAgICAgICAgICAgc3Rh
Y2suYXBwZW5kKGxlbihyZXN1bHQpKQotICAgICAgICAgICAgc3RhY2tjbnRbLTFdICs9IDEKLSAg
ICAgICAgICAgIHN0YWNrY250LmFwcGVuZCgwKQotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh1
KCcgKycpICsgdSgnICAnKSAqIChsZW4oc3RhY2spIC0gMSkgKyBzICsgbGluZVsxOl0pCi0gICAg
ICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCd9Jyk6Ci0gICAgICAgICAgICBzdGFjay5wb3AoKQot
ICAgICAgICAgICAgc3RhY2tjbnQucG9wKCkKLSAgICAgICAgICAgIHJlc3VsdFtzdGFja1stMV1d
ICs9IGxpbmVbMTpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnQgbGluZVswXSBp
biBbJ34nLCAnPiddCi0gICAgICAgICAgICBzdGFja1stMV0gKz0gMQotICAgICAgICAgICAgaW5k
ZW50ID0gbGVuKHN0YWNrKSBpZiBsaW5lLnN0YXJ0c3dpdGgoJ34nKSBlbHNlIGxlbihzdGFjaykg
LSAxCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHUoJyAgJykgKiBpbmRlbnQgKyBsaW5lWzE6
XSkKLSAgICBhc3NlcnQgbGVuKHN0YWNrKSA9PSAxCi0gICAgcmV0dXJuIHJlc3VsdAotCi0KLSMg
UHJvdmlkZSBiYXNlc3RyaW5nIGluIHB5dGhvbjMKLXRyeToKLSAgICBiYXNlc3RyaW5nID0gYmFz
ZXN0cmluZwotZXhjZXB0IE5hbWVFcnJvcjoKLSAgICBiYXNlc3RyaW5nID0gc3RyCi0KLQotZGVm
IGFzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0LCByaWdodCk6Ci0gICAgIiIiUmV0
dXJuIHNwZWNpYWxpc2VkIGV4cGxhbmF0aW9ucyBmb3Igc29tZSBvcGVyYXRvcnMvb3BlcmFuZHMi
IiIKLSAgICB3aWR0aCA9IDgwIC0gMTUgLSBsZW4ob3ApIC0gMiAgIyAxNSBjaGFycyBpbmRlbnRh
dGlvbiwgMSBzcGFjZSBhcm91bmQgb3AKLSAgICBsZWZ0X3JlcHIgPSBweS5pby5zYWZlcmVwcihs
ZWZ0LCBtYXhzaXplPWludCh3aWR0aCAvLyAyKSkKLSAgICByaWdodF9yZXByID0gcHkuaW8uc2Fm
ZXJlcHIocmlnaHQsIG1heHNpemU9d2lkdGggLSBsZW4obGVmdF9yZXByKSkKLQotICAgIHN1bW1h
cnkgPSB1KCclcyAlcyAlcycpICUgKGVjdShsZWZ0X3JlcHIpLCBvcCwgZWN1KHJpZ2h0X3JlcHIp
KQotCi0gICAgZGVmIGlzc2VxdWVuY2UoeCk6Ci0gICAgICAgIHJldHVybiAoaXNpbnN0YW5jZSh4
LCAobGlzdCwgdHVwbGUsIFNlcXVlbmNlKSkgYW5kIG5vdCBpc2luc3RhbmNlKHgsIGJhc2VzdHJp
bmcpKQotCi0gICAgZGVmIGlzdGV4dCh4KToKLSAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwg
YmFzZXN0cmluZykKLQotICAgIGRlZiBpc2RpY3QoeCk6Ci0gICAgICAgIHJldHVybiBpc2luc3Rh
bmNlKHgsIGRpY3QpCi0KLSAgICBkZWYgaXNzZXQoeCk6Ci0gICAgICAgIHJldHVybiBpc2luc3Rh
bmNlKHgsIChzZXQsIGZyb3plbnNldCkpCi0KLSAgICBkZWYgaXNpdGVyYWJsZShvYmopOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBpdGVyKG9iaikKLSAgICAgICAgICAgIHJldHVybiBub3Qg
aXN0ZXh0KG9iaikKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCi0gICAgdmVyYm9zZSA9IGNvbmZpZy5nZXRvcHRpb24oJ3ZlcmJvc2UnKQotICAg
IGV4cGxhbmF0aW9uID0gTm9uZQotICAgIHRyeToKLSAgICAgICAgaWYgb3AgPT0gJz09JzoKLSAg
ICAgICAgICAgIGlmIGlzdGV4dChsZWZ0KSBhbmQgaXN0ZXh0KHJpZ2h0KToKLSAgICAgICAgICAg
ICAgICBleHBsYW5hdGlvbiA9IF9kaWZmX3RleHQobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIGlzc2VxdWVuY2UobGVmdCkgYW5kIGlz
c2VxdWVuY2UocmlnaHQpOgotICAgICAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9jb21w
YXJlX2VxX3NlcXVlbmNlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgICAgIGVs
aWYgaXNzZXQobGVmdCkgYW5kIGlzc2V0KHJpZ2h0KToKLSAgICAgICAgICAgICAgICAgICAgZXhw
bGFuYXRpb24gPSBfY29tcGFyZV9lcV9zZXQobGVmdCwgcmlnaHQsIHZlcmJvc2UpCi0gICAgICAg
ICAgICAgICAgZWxpZiBpc2RpY3QobGVmdCkgYW5kIGlzZGljdChyaWdodCk6Ci0gICAgICAgICAg
ICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfZGljdChsZWZ0LCByaWdodCwgdmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICBpZiBpc2l0ZXJhYmxlKGxlZnQpIGFuZCBpc2l0ZXJhYmxl
KHJpZ2h0KToKLSAgICAgICAgICAgICAgICAgICAgZXhwbCA9IF9jb21wYXJlX2VxX2l0ZXJhYmxl
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBpZiBleHBsYW5hdGlv
biBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uLmV4dGVu
ZChleHBsKQotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwbGFuYXRpb24gPSBleHBsCi0gICAgICAgIGVsaWYgb3AgPT0gJ25vdCBpbic6Ci0gICAg
ICAgICAgICBpZiBpc3RleHQobGVmdCkgYW5kIGlzdGV4dChyaWdodCk6Ci0gICAgICAgICAgICAg
ICAgZXhwbGFuYXRpb24gPSBfbm90aW5fdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZSkKLSAgICBl
eGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBleHBsYW5hdGlvbiA9IFsKLSAgICAgICAgICAgIHUo
JyhweXRlc3RfYXNzZXJ0aW9uIHBsdWdpbjogcmVwcmVzZW50YXRpb24gb2YgZGV0YWlscyBmYWls
ZWQuICAnCi0gICAgICAgICAgICAgICdQcm9iYWJseSBhbiBvYmplY3QgaGFzIGEgZmF1bHR5IF9f
cmVwcl9fLiknKSwKLSAgICAgICAgICAgIHUoX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkp
XQotCi0gICAgaWYgbm90IGV4cGxhbmF0aW9uOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAg
cmV0dXJuIFtzdW1tYXJ5XSArIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9kaWZmX3RleHQobGVmdCwg
cmlnaHQsIHZlcmJvc2U9RmFsc2UpOgotICAgICIiIlJldHVybiB0aGUgZXhwbGFuYXRpb24gZm9y
IHRoZSBkaWZmIGJldHdlZW4gdGV4dCBvciBieXRlcwotCi0gICAgVW5sZXNzIC0tdmVyYm9zZSBp
cyB1c2VkIHRoaXMgd2lsbCBza2lwIGxlYWRpbmcgYW5kIHRyYWlsaW5nCi0gICAgY2hhcmFjdGVy
cyB3aGljaCBhcmUgaWRlbnRpY2FsIHRvIGtlZXAgdGhlIGRpZmYgbWluaW1hbC4KLQotICAgIElm
IHRoZSBpbnB1dCBhcmUgYnl0ZXMgdGhleSB3aWxsIGJlIHNhZmVseSBjb252ZXJ0ZWQgdG8gdGV4
dC4KLSAgICAiIiIKLSAgICBmcm9tIGRpZmZsaWIgaW1wb3J0IG5kaWZmCi0gICAgZXhwbGFuYXRp
b24gPSBbXQotICAgIGlmIGlzaW5zdGFuY2UobGVmdCwgc2l4LmJpbmFyeV90eXBlKToKLSAgICAg
ICAgbGVmdCA9IHUocmVwcihsZWZ0KVsxOi0xXSkucmVwbGFjZShyJ1xuJywgJ1xuJykKLSAgICBp
ZiBpc2luc3RhbmNlKHJpZ2h0LCBzaXguYmluYXJ5X3R5cGUpOgotICAgICAgICByaWdodCA9IHUo
cmVwcihyaWdodClbMTotMV0pLnJlcGxhY2UocidcbicsICdcbicpCi0gICAgaWYgbm90IHZlcmJv
c2U6Ci0gICAgICAgIGkgPSAwICAjIGp1c3QgaW4gY2FzZSBsZWZ0IG9yIHJpZ2h0IGhhcyB6ZXJv
IGxlbmd0aAotICAgICAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKGxlZnQpLCBsZW4ocmlnaHQp
KSk6Ci0gICAgICAgICAgICBpZiBsZWZ0W2ldICE9IHJpZ2h0W2ldOgotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgIGlmIGkgPiA0MjoKLSAgICAgICAgICAgIGkgLT0gMTAgICAgICAgICAg
ICAgICAgICMgUHJvdmlkZSBzb21lIGNvbnRleHQKLSAgICAgICAgICAgIGV4cGxhbmF0aW9uID0g
W3UoJ1NraXBwaW5nICVzIGlkZW50aWNhbCBsZWFkaW5nICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NoYXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cnKSAlIGldCi0gICAg
ICAgICAgICBsZWZ0ID0gbGVmdFtpOl0KLSAgICAgICAgICAgIHJpZ2h0ID0gcmlnaHRbaTpdCi0g
ICAgICAgIGlmIGxlbihsZWZ0KSA9PSBsZW4ocmlnaHQpOgotICAgICAgICAgICAgZm9yIGkgaW4g
cmFuZ2UobGVuKGxlZnQpKToKLSAgICAgICAgICAgICAgICBpZiBsZWZ0Wy1pXSAhPSByaWdodFst
aV06Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBpID4gNDI6Ci0g
ICAgICAgICAgICAgICAgaSAtPSAxMCAgICAgIyBQcm92aWRlIHNvbWUgY29udGV4dAotICAgICAg
ICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdTa2lwcGluZyAlcyBpZGVudGljYWwgdHJhaWxp
bmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFyYWN0ZXJzIGluIGRp
ZmYsIHVzZSAtdiB0byBzaG93JykgJSBpXQotICAgICAgICAgICAgICAgIGxlZnQgPSBsZWZ0Wzot
aV0KLSAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0WzotaV0KLSAgICBrZWVwZW5kcyA9IFRy
dWUKLSAgICBleHBsYW5hdGlvbiArPSBbbGluZS5zdHJpcCgnXG4nKQotICAgICAgICAgICAgICAg
ICAgICBmb3IgbGluZSBpbiBuZGlmZihsZWZ0LnNwbGl0bGluZXMoa2VlcGVuZHMpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodC5zcGxpdGxpbmVzKGtlZXBlbmRz
KSldCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9jb21wYXJlX2VxX2l0ZXJhYmxl
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBpZiBub3QgdmVyYm9zZToKLSAgICAg
ICAgcmV0dXJuIFt1KCdVc2UgLXYgdG8gZ2V0IHRoZSBmdWxsIGRpZmYnKV0KLSAgICAjIGR5bmFt
aWMgaW1wb3J0IHRvIHNwZWVkdXAgcHl0ZXN0Ci0gICAgaW1wb3J0IGRpZmZsaWIKLQotICAgIHRy
eToKLSAgICAgICAgbGVmdF9mb3JtYXR0aW5nID0gcHByaW50LnBmb3JtYXQobGVmdCkuc3BsaXRs
aW5lcygpCi0gICAgICAgIHJpZ2h0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZvcm1hdChyaWdodCku
c3BsaXRsaW5lcygpCi0gICAgICAgIGV4cGxhbmF0aW9uID0gW3UoJ0Z1bGwgZGlmZjonKV0KLSAg
ICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAjIGhhY2s6IFByZXR0eVByaW50ZXIucGZvcm1h
dCgpIGluIHB5dGhvbiAyIGZhaWxzIHdoZW4gZm9ybWF0dGluZyBpdGVtcyB0aGF0IGNhbid0IGJl
IHNvcnRlZCgpLCBpZSwgY2FsbGluZwotICAgICAgICAjIHNvcnRlZCgpIG9uIGEgbGlzdCB3b3Vs
ZCByYWlzZS4gU2VlIGlzc3VlICM3MTguCi0gICAgICAgICMgQXMgYSB3b3JrYXJvdW5kLCB0aGUg
ZnVsbCBkaWZmIGlzIGdlbmVyYXRlZCBieSB1c2luZyB0aGUgcmVwcigpIHN0cmluZyBvZiBlYWNo
IGl0ZW0gb2YgZWFjaCBjb250YWluZXIuCi0gICAgICAgIGxlZnRfZm9ybWF0dGluZyA9IHNvcnRl
ZChyZXByKHgpIGZvciB4IGluIGxlZnQpCi0gICAgICAgIHJpZ2h0X2Zvcm1hdHRpbmcgPSBzb3J0
ZWQocmVwcih4KSBmb3IgeCBpbiByaWdodCkKLSAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgnRnVs
bCBkaWZmIChmYWxsYmFjayB0byBjYWxsaW5nIHJlcHIgb24gZWFjaCBpdGVtKTonKV0KLSAgICBl
eHBsYW5hdGlvbi5leHRlbmQobGluZS5zdHJpcCgpIGZvciBsaW5lIGluIGRpZmZsaWIubmRpZmYo
bGVmdF9mb3JtYXR0aW5nLCByaWdodF9mb3JtYXR0aW5nKSkKLSAgICByZXR1cm4gZXhwbGFuYXRp
b24KLQotCi1kZWYgX2NvbXBhcmVfZXFfc2VxdWVuY2UobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFs
c2UpOgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKGxl
ZnQpLCBsZW4ocmlnaHQpKSk6Ci0gICAgICAgIGlmIGxlZnRbaV0gIT0gcmlnaHRbaV06Ci0gICAg
ICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnQXQgaW5kZXggJXMgZGlmZjogJXIgIT0gJXInKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKGksIGxlZnRbaV0sIHJpZ2h0W2ldKV0KLSAg
ICAgICAgICAgIGJyZWFrCi0gICAgaWYgbGVuKGxlZnQpID4gbGVuKHJpZ2h0KToKLSAgICAgICAg
ZXhwbGFuYXRpb24gKz0gW3UoJ0xlZnQgY29udGFpbnMgbW9yZSBpdGVtcywgZmlyc3QgZXh0cmEg
aXRlbTogJXMnKQotICAgICAgICAgICAgICAgICAgICAgICAgJSBweS5pby5zYWZlcmVwcihsZWZ0
W2xlbihyaWdodCldLCldCi0gICAgZWxpZiBsZW4obGVmdCkgPCBsZW4ocmlnaHQpOgotICAgICAg
ICBleHBsYW5hdGlvbiArPSBbCi0gICAgICAgICAgICB1KCdSaWdodCBjb250YWlucyBtb3JlIGl0
ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcycpICUKLSAgICAgICAgICAgIHB5LmlvLnNhZmVyZXBy
KHJpZ2h0W2xlbihsZWZ0KV0sKV0KLSAgICByZXR1cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX2Nv
bXBhcmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBleHBsYW5hdGlv
biA9IFtdCi0gICAgZGlmZl9sZWZ0ID0gbGVmdCAtIHJpZ2h0Ci0gICAgZGlmZl9yaWdodCA9IHJp
Z2h0IC0gbGVmdAotICAgIGlmIGRpZmZfbGVmdDoKLSAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5k
KHUoJ0V4dHJhIGl0ZW1zIGluIHRoZSBsZWZ0IHNldDonKSkKLSAgICAgICAgZm9yIGl0ZW0gaW4g
ZGlmZl9sZWZ0OgotICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHB5LmlvLnNhZmVyZXBy
KGl0ZW0pKQotICAgIGlmIGRpZmZfcmlnaHQ6Ci0gICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1
KCdFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OicpKQotICAgICAgICBmb3IgaXRlbSBpbiBk
aWZmX3JpZ2h0OgotICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHB5LmlvLnNhZmVyZXBy
KGl0ZW0pKQotICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBfY29tcGFyZV9lcV9kaWN0
KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBleHBsYW5hdGlvbiA9IFtdCi0gICAg
Y29tbW9uID0gc2V0KGxlZnQpLmludGVyc2VjdGlvbihzZXQocmlnaHQpKQotICAgIHNhbWUgPSBk
aWN0KChrLCBsZWZ0W2tdKSBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtrXSA9PSByaWdodFtrXSkK
LSAgICBpZiBzYW1lIGFuZCB2ZXJib3NlIDwgMjoKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3Uo
J09taXR0aW5nICVzIGlkZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBzaG93JykgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgbGVuKHNhbWUpXQotICAgIGVsaWYgc2FtZToKLSAgICAgICAgZXhw
bGFuYXRpb24gKz0gW3UoJ0NvbW1vbiBpdGVtczonKV0KLSAgICAgICAgZXhwbGFuYXRpb24gKz0g
cHByaW50LnBmb3JtYXQoc2FtZSkuc3BsaXRsaW5lcygpCi0gICAgZGlmZiA9IHNldChrIGZvciBr
IGluIGNvbW1vbiBpZiBsZWZ0W2tdICE9IHJpZ2h0W2tdKQotICAgIGlmIGRpZmY6Ci0gICAgICAg
IGV4cGxhbmF0aW9uICs9IFt1KCdEaWZmZXJpbmcgaXRlbXM6JyldCi0gICAgICAgIGZvciBrIGlu
IGRpZmY6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbcHkuaW8uc2FmZXJlcHIoe2s6IGxl
ZnRba119KSArICcgIT0gJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHkuaW8uc2Fm
ZXJlcHIoe2s6IHJpZ2h0W2tdfSldCi0gICAgZXh0cmFfbGVmdCA9IHNldChsZWZ0KSAtIHNldChy
aWdodCkKLSAgICBpZiBleHRyYV9sZWZ0OgotICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQodSgn
TGVmdCBjb250YWlucyBtb3JlIGl0ZW1zOicpKQotICAgICAgICBleHBsYW5hdGlvbi5leHRlbmQo
cHByaW50LnBmb3JtYXQoCi0gICAgICAgICAgICBkaWN0KChrLCBsZWZ0W2tdKSBmb3IgayBpbiBl
eHRyYV9sZWZ0KSkuc3BsaXRsaW5lcygpKQotICAgIGV4dHJhX3JpZ2h0ID0gc2V0KHJpZ2h0KSAt
IHNldChsZWZ0KQotICAgIGlmIGV4dHJhX3JpZ2h0OgotICAgICAgICBleHBsYW5hdGlvbi5hcHBl
bmQodSgnUmlnaHQgY29udGFpbnMgbW9yZSBpdGVtczonKSkKLSAgICAgICAgZXhwbGFuYXRpb24u
ZXh0ZW5kKHBwcmludC5wZm9ybWF0KAotICAgICAgICAgICAgZGljdCgoaywgcmlnaHRba10pIGZv
ciBrIGluIGV4dHJhX3JpZ2h0KSkuc3BsaXRsaW5lcygpKQotICAgIHJldHVybiBleHBsYW5hdGlv
bgotCi0KLWRlZiBfbm90aW5fdGV4dCh0ZXJtLCB0ZXh0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBp
bmRleCA9IHRleHQuZmluZCh0ZXJtKQotICAgIGhlYWQgPSB0ZXh0WzppbmRleF0KLSAgICB0YWls
ID0gdGV4dFtpbmRleCArIGxlbih0ZXJtKTpdCi0gICAgY29ycmVjdF90ZXh0ID0gaGVhZCArIHRh
aWwKLSAgICBkaWZmID0gX2RpZmZfdGV4dChjb3JyZWN0X3RleHQsIHRleHQsIHZlcmJvc2UpCi0g
ICAgbmV3ZGlmZiA9IFt1KCclcyBpcyBjb250YWluZWQgaGVyZTonKSAlIHB5LmlvLnNhZmVyZXBy
KHRlcm0sIG1heHNpemU9NDIpXQotICAgIGZvciBsaW5lIGluIGRpZmY6Ci0gICAgICAgIGlmIGxp
bmUuc3RhcnRzd2l0aCh1KCdTa2lwcGluZycpKToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg
ICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCctICcpKToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCcrICcpKToKLSAgICAgICAgICAgIG5ld2RpZmYu
YXBwZW5kKHUoJyAgJykgKyBsaW5lWzI6XSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5l
d2RpZmYuYXBwZW5kKGxpbmUpCi0gICAgcmV0dXJuIG5ld2RpZmYKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQxMzA3ZDNhYmM3MjE1OGY0MWQ2NDQyY2ZkNTkxZTFiMDVmOWNhY2YuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9h
c3NlcnRpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9fX2luaXRfXy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2Fzc2VydGlvbi90cnVuY2F0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0
aWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzUzN2MxNDQ3MmIxY2U5MTY5Y2ZlNzYyOTAxNTg4NGIwZTRlM2U0Zi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjAgKzAsMCBAQAot
IiIiCi1tZXJnZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNhY2hlIHByb3ZpZGVyCi0KLXRoZSBu
YW1lIGNhY2hlIHdhcyBub3QgY2hvc2VuIHRvIGVuc3VyZSBwbHVnZ3kgYXV0b21hdGljYWxseQot
aWdub3JlcyB0aGUgZXh0ZXJuYWwgcHl0ZXN0LWNhY2hlCi0iIiIKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBw
eQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IGpzb24KLWltcG9ydCBvcwotZnJvbSBvcy5wYXRoIGlt
cG9ydCBzZXAgYXMgX3NlcCwgYWx0c2VwIGFzIF9hbHRzZXAKLQotCi1jbGFzcyBDYWNoZShvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAgICAgICBzZWxmLmNvbmZp
ZyA9IGNvbmZpZwotICAgICAgICBzZWxmLl9jYWNoZWRpciA9IENhY2hlLmNhY2hlX2Rpcl9mcm9t
X2NvbmZpZyhjb25maWcpCi0gICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5n
ZXQoImNhY2hlIikKLSAgICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJjYWNoZWNsZWFyIik6Ci0g
ICAgICAgICAgICBzZWxmLnRyYWNlKCJjbGVhcmluZyBjYWNoZWRpciIpCi0gICAgICAgICAgICBp
ZiBzZWxmLl9jYWNoZWRpci5jaGVjaygpOgotICAgICAgICAgICAgICAgIHNlbGYuX2NhY2hlZGly
LnJlbW92ZSgpCi0gICAgICAgICAgICBzZWxmLl9jYWNoZWRpci5ta2RpcigpCi0KLSAgICBAc3Rh
dGljbWV0aG9kCi0gICAgZGVmIGNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhjb25maWcpOgotICAgICAg
ICBjYWNoZV9kaXIgPSBjb25maWcuZ2V0aW5pKCJjYWNoZV9kaXIiKQotICAgICAgICBjYWNoZV9k
aXIgPSBvcy5wYXRoLmV4cGFuZHVzZXIoY2FjaGVfZGlyKQotICAgICAgICBjYWNoZV9kaXIgPSBv
cy5wYXRoLmV4cGFuZHZhcnMoY2FjaGVfZGlyKQotICAgICAgICBpZiBvcy5wYXRoLmlzYWJzKGNh
Y2hlX2Rpcik6Ci0gICAgICAgICAgICByZXR1cm4gcHkucGF0aC5sb2NhbChjYWNoZV9kaXIpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gY29uZmlnLnJvb3RkaXIuam9pbihjYWNo
ZV9kaXIpCi0KLSAgICBkZWYgbWFrZWRpcihzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiIHJldHVy
biBhIGRpcmVjdG9yeSBwYXRoIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgdGhlCi0g
ICAgICAgIGRpcmVjdG9yeSBkb2VzIG5vdCB5ZXQgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZC4g
IFlvdSBjYW4gdXNlIGl0Ci0gICAgICAgIHRvIG1hbmFnZSBmaWxlcyBsaWtlcyBlLiBnLiBzdG9y
ZS9yZXRyaWV2ZSBkYXRhYmFzZQotICAgICAgICBkdW1wcyBhY3Jvc3MgdGVzdCBzZXNzaW9ucy4K
LQotICAgICAgICA6cGFyYW0gbmFtZTogbXVzdCBiZSBhIHN0cmluZyBub3QgY29udGFpbmluZyBh
IGBgL2BgIHNlcGFyYXRvci4KLSAgICAgICAgICAgICBNYWtlIHN1cmUgdGhlIG5hbWUgY29udGFp
bnMgeW91ciBwbHVnaW4gb3IgYXBwbGljYXRpb24KLSAgICAgICAgICAgICBpZGVudGlmaWVycyB0
byBwcmV2ZW50IGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGlmIF9zZXAgaW4gbmFtZSBvciBfYWx0c2VwIGlzIG5vdCBOb25lIGFuZCBfYWx0c2Vw
IGluIG5hbWU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJuYW1lIGlzIG5vdCBhbGxv
d2VkIHRvIGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIikKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nh
Y2hlZGlyLmVuc3VyZV9kaXIoImQiLCBuYW1lKQotCi0gICAgZGVmIF9nZXR2YWx1ZXBhdGgoc2Vs
Ziwga2V5KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZGlyLmpvaW4oJ3YnLCAqa2V5LnNw
bGl0KCcvJykpCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdCk6Ci0gICAgICAgICIi
IiByZXR1cm4gY2FjaGVkIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiAgSWYgbm8gdmFsdWUKLSAg
ICAgICAgd2FzIHlldCBjYWNoZWQgb3IgdGhlIHZhbHVlIGNhbm5vdCBiZSByZWFkLCB0aGUgc3Bl
Y2lmaWVkCi0gICAgICAgIGRlZmF1bHQgaXMgcmV0dXJuZWQuCi0KLSAgICAgICAgOnBhcmFtIGtl
eTogbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZS4gVXN1YWxseSB0aGUgZmlyc3QKLSAg
ICAgICAgICAgICBuYW1lIGlzIHRoZSBuYW1lIG9mIHlvdXIgcGx1Z2luIG9yIHlvdXIgYXBwbGlj
YXRpb24uCi0gICAgICAgIDpwYXJhbSBkZWZhdWx0OiBtdXN0IGJlIHByb3ZpZGVkIGluIGNhc2Ug
b2YgYSBjYWNoZS1taXNzIG9yCi0gICAgICAgICAgICAgaW52YWxpZCBjYWNoZSB2YWx1ZXMuCi0K
LSAgICAgICAgIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQotICAg
ICAgICBpZiBwYXRoLmNoZWNrKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
d2l0aCBwYXRoLm9wZW4oInIiKSBhcyBmOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNv
bi5sb2FkKGYpCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAg
ICBzZWxmLnRyYWNlKCJjYWNoZS1pbnZhbGlkIGF0ICVzIiAlIChwYXRoLCkpCi0gICAgICAgIHJl
dHVybiBkZWZhdWx0Ci0KLSAgICBkZWYgc2V0KHNlbGYsIGtleSwgdmFsdWUpOgotICAgICAgICAi
IiIgc2F2ZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleS4KLQotICAgICAgICA6cGFyYW0ga2V5OiBt
dXN0IGJlIGEgYGAvYGAgc2VwYXJhdGVkIHZhbHVlLiBVc3VhbGx5IHRoZSBmaXJzdAotICAgICAg
ICAgICAgIG5hbWUgaXMgdGhlIG5hbWUgb2YgeW91ciBwbHVnaW4gb3IgeW91ciBhcHBsaWNhdGlv
bi4KLSAgICAgICAgOnBhcmFtIHZhbHVlOiBtdXN0IGJlIG9mIGFueSBjb21iaW5hdGlvbiBvZiBi
YXNpYwotICAgICAgICAgICAgICAgcHl0aG9uIHR5cGVzLCBpbmNsdWRpbmcgbmVzdGVkIHR5cGVz
Ci0gICAgICAgICAgICAgICBsaWtlIGUuIGcuIGxpc3RzIG9mIGRpY3Rpb25hcmllcy4KLSAgICAg
ICAgIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBwYXRoLmRpcnBhdGgoKS5lbnN1cmVfZGlyKCkKLSAgICAgICAgZXhj
ZXB0IChweS5lcnJvci5FRVhJU1QsIHB5LmVycm9yLkVBQ0NFUyk6Ci0gICAgICAgICAgICBzZWxm
LmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgIGNvZGU9J0k5JywgbWVzc2FnZT0nY291bGQg
bm90IGNyZWF0ZSBjYWNoZSBwYXRoICVzJyAlIChwYXRoLCkKLSAgICAgICAgICAgICkKLSAgICAg
ICAgICAgIHJldHVybgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmID0gcGF0aC5vcGVuKCd3
JykKLSAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVOT1RESVI6Ci0gICAgICAgICAgICBzZWxmLmNv
bmZpZy53YXJuKAotICAgICAgICAgICAgICAgIGNvZGU9J0k5JywgbWVzc2FnZT0nY2FjaGUgY291
bGQgbm90IHdyaXRlIHBhdGggJXMnICUgKHBhdGgsKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHdpdGggZjoKLSAgICAgICAgICAgICAgICBzZWxmLnRyYWNlKCJjYWNoZS13cml0ZSAlczog
JXIiICUgKGtleSwgdmFsdWUsKSkKLSAgICAgICAgICAgICAgICBqc29uLmR1bXAodmFsdWUsIGYs
IGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkKLQotCi1jbGFzcyBMRlBsdWdpbjoKLSAgICAiIiIg
UGx1Z2luIHdoaWNoIGltcGxlbWVudHMgdGhlIC0tbGYgKHJ1biBsYXN0LWZhaWxpbmcpIG9wdGlv
biAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAgICAgICBzZWxmLmNv
bmZpZyA9IGNvbmZpZwotICAgICAgICBhY3RpdmVfa2V5cyA9ICdsZicsICdmYWlsZWRmaXJzdCcK
LSAgICAgICAgc2VsZi5hY3RpdmUgPSBhbnkoY29uZmlnLmdldHZhbHVlKGtleSkgZm9yIGtleSBp
biBhY3RpdmVfa2V5cykKLSAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdl
dCgiY2FjaGUvbGFzdGZhaWxlZCIsIHt9KQotICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2ZhaWxl
ZF9jb3VudCA9IE5vbmUKLQotICAgIGRlZiBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2go
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYWN0aXZlOgotICAgICAgICAgICAgaWYgbm90IHNlbGYu
X3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50OgotICAgICAgICAgICAgICAgIG1vZGUgPSAicnVuIGFs
bCAobm8gcmVjb3JkZWQgZmFpbHVyZXMpIgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBub3VuID0gJ2ZhaWx1cmUnIGlmIHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID09
IDEgZWxzZSAnZmFpbHVyZXMnCi0gICAgICAgICAgICAgICAgc3VmZml4ID0gIiBmaXJzdCIgaWYg
c2VsZi5jb25maWcuZ2V0dmFsdWUoImZhaWxlZGZpcnN0IikgZWxzZSAiIgotICAgICAgICAgICAg
ICAgIG1vZGUgPSAicmVydW4gcHJldmlvdXMge2NvdW50fSB7bm91bn17c3VmZml4fSIuZm9ybWF0
KAotICAgICAgICAgICAgICAgICAgICBjb3VudD1zZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3Vu
dCwgc3VmZml4PXN1ZmZpeCwgbm91bj1ub3VuCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgcmV0dXJuICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBtb2RlCi0KLSAgICBkZWYgcHl0ZXN0
X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIChyZXBvcnQud2hl
biA9PSAnY2FsbCcgYW5kIHJlcG9ydC5wYXNzZWQpIG9yIHJlcG9ydC5za2lwcGVkOgotICAgICAg
ICAgICAgc2VsZi5sYXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkLCBOb25lKQotICAgICAgICBl
bGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWRbcmVwb3J0Lm5v
ZGVpZF0gPSBUcnVlCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0
KToKLSAgICAgICAgcGFzc2VkID0gcmVwb3J0Lm91dGNvbWUgaW4gKCdwYXNzZWQnLCAnc2tpcHBl
ZCcpCi0gICAgICAgIGlmIHBhc3NlZDoKLSAgICAgICAgICAgIGlmIHJlcG9ydC5ub2RlaWQgaW4g
c2VsZi5sYXN0ZmFpbGVkOgotICAgICAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZC5wb3AocmVw
b3J0Lm5vZGVpZCkKLSAgICAgICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWQudXBkYXRlKAotICAg
ICAgICAgICAgICAgICAgICAoaXRlbS5ub2RlaWQsIFRydWUpCi0gICAgICAgICAgICAgICAgICAg
IGZvciBpdGVtIGluIHJlcG9ydC5yZXN1bHQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLmxhc3RmYWlsZWRbcmVwb3J0Lm5vZGVpZF0gPSBUcnVlCi0KLSAgICBkZWYgcHl0ZXN0X2Nv
bGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZiwgc2Vzc2lvbiwgY29uZmlnLCBpdGVtcyk6Ci0gICAg
ICAgIGlmIHNlbGYuYWN0aXZlIGFuZCBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICBwcmV2
aW91c2x5X2ZhaWxlZCA9IFtdCi0gICAgICAgICAgICBwcmV2aW91c2x5X3Bhc3NlZCA9IFtdCi0g
ICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgICAgICBpZiBpdGVtLm5v
ZGVpZCBpbiBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbHlf
ZmFpbGVkLmFwcGVuZChpdGVtKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzbHlfcGFzc2VkLmFwcGVuZChpdGVtKQotICAgICAgICAgICAgc2VsZi5f
cHJldmlvdXNseV9mYWlsZWRfY291bnQgPSBsZW4ocHJldmlvdXNseV9mYWlsZWQpCi0gICAgICAg
ICAgICBpZiBub3QgcHJldmlvdXNseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgIyBydW5uaW5n
IGEgc3Vic2V0IG9mIGFsbCB0ZXN0cyB3aXRoIHJlY29yZGVkIGZhaWx1cmVzIG91dHNpZGUKLSAg
ICAgICAgICAgICAgICAjIG9mIHRoZSBzZXQgb2YgdGVzdHMgY3VycmVudGx5IGV4ZWN1dGluZwot
ICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0dmFs
dWUoImxmIik6Ci0gICAgICAgICAgICAgICAgaXRlbXNbOl0gPSBwcmV2aW91c2x5X2ZhaWxlZAot
ICAgICAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPXByZXZp
b3VzbHlfcGFzc2VkKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpdGVtc1s6
XSA9IHByZXZpb3VzbHlfZmFpbGVkICsgcHJldmlvdXNseV9wYXNzZWQKLQotICAgIGRlZiBweXRl
c3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAgY29uZmlnID0gc2VsZi5j
b25maWcKLSAgICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJjYWNoZXNob3ciKSBvciBoYXNhdHRy
KGNvbmZpZywgInNsYXZlaW5wdXQiKToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNh
dmVkX2xhc3RmYWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwge30p
Ci0gICAgICAgIGlmIHNhdmVkX2xhc3RmYWlsZWQgIT0gc2VsZi5sYXN0ZmFpbGVkOgotICAgICAg
ICAgICAgY29uZmlnLmNhY2hlLnNldCgiY2FjaGUvbGFzdGZhaWxlZCIsIHNlbGYubGFzdGZhaWxl
ZCkKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2Vy
LmdldGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5hZGRvcHRpb24oCi0gICAgICAgICctLWxm
JywgJy0tbGFzdC1mYWlsZWQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJsZiIsCi0gICAg
ICAgIGhlbHA9InJlcnVuIG9ubHkgdGhlIHRlc3RzIHRoYXQgZmFpbGVkICIKLSAgICAgICAgICAg
ICAiYXQgdGhlIGxhc3QgcnVuIChvciBhbGwgaWYgbm9uZSBmYWlsZWQpIikKLSAgICBncm91cC5h
ZGRvcHRpb24oCi0gICAgICAgICctLWZmJywgJy0tZmFpbGVkLWZpcnN0JywgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVzdD0iZmFpbGVkZmlyc3QiLAotICAgICAgICBoZWxwPSJydW4gYWxsIHRlc3Rz
IGJ1dCBydW4gdGhlIGxhc3QgZmFpbHVyZXMgZmlyc3QuICAiCi0gICAgICAgICAgICAgIlRoaXMg
bWF5IHJlLW9yZGVyIHRlc3RzIGFuZCB0aHVzIGxlYWQgdG8gIgotICAgICAgICAgICAgICJyZXBl
YXRlZCBmaXh0dXJlIHNldHVwL3RlYXJkb3duIikKLSAgICBncm91cC5hZGRvcHRpb24oCi0gICAg
ICAgICctLWNhY2hlLXNob3cnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJjYWNoZXNob3ci
LAotICAgICAgICBoZWxwPSJzaG93IGNhY2hlIGNvbnRlbnRzLCBkb24ndCBwZXJmb3JtIGNvbGxl
Y3Rpb24gb3IgdGVzdHMiKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0tY2FjaGUt
Y2xlYXInLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJjYWNoZWNsZWFyIiwKLSAgICAgICAg
aGVscD0icmVtb3ZlIGFsbCBjYWNoZSBjb250ZW50cyBhdCBzdGFydCBvZiB0ZXN0IHJ1bi4iKQot
ICAgIHBhcnNlci5hZGRpbmkoCi0gICAgICAgICJjYWNoZV9kaXIiLCBkZWZhdWx0PScuY2FjaGUn
LAotICAgICAgICBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0aC4iKQotCi0KLWRlZiBweXRlc3Rf
Y21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5jYWNoZXNob3c6Ci0g
ICAgICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Npb24KLSAgICAgICAgcmV0
dXJuIHdyYXBfc2Vzc2lvbihjb25maWcsIGNhY2hlc2hvdykKLQotCi1AcHl0ZXN0Lmhvb2tpbXBs
KHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGNvbmZp
Zy5jYWNoZSA9IENhY2hlKGNvbmZpZykKLSAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rl
cihMRlBsdWdpbihjb25maWcpLCAibGZwbHVnaW4iKQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVm
IGNhY2hlKHJlcXVlc3QpOgotICAgICIiIgotICAgIFJldHVybiBhIGNhY2hlIG9iamVjdCB0aGF0
IGNhbiBwZXJzaXN0IHN0YXRlIGJldHdlZW4gdGVzdGluZyBzZXNzaW9ucy4KLQotICAgIGNhY2hl
LmdldChrZXksIGRlZmF1bHQpCi0gICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpCi0KLSAgICBLZXlz
IG11c3QgYmUgYSBgYC9gYCBzZXBhcmF0ZWQgdmFsdWUsIHdoZXJlIHRoZSBmaXJzdCBwYXJ0IGlz
IHVzdWFsbHkgdGhlCi0gICAgbmFtZSBvZiB5b3VyIHBsdWdpbiBvciBhcHBsaWNhdGlvbiB0byBh
dm9pZCBjbGFzaGVzIHdpdGggb3RoZXIgY2FjaGUgdXNlcnMuCi0KLSAgICBWYWx1ZXMgY2FuIGJl
IGFueSBvYmplY3QgaGFuZGxlZCBieSB0aGUganNvbiBzdGRsaWIgbW9kdWxlLgotICAgICIiIgot
ICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5jYWNoZQotCi0KLWRlZiBweXRlc3RfcmVwb3J0X2hl
YWRlcihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24udmVyYm9zZToKLSAgICAgICAgcmVs
cGF0aCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChjb25maWcuY2FjaGUuX2NhY2hlZGly
KQotICAgICAgICByZXR1cm4gImNhY2hlZGlyOiAlcyIgJSByZWxwYXRoCi0KLQotZGVmIGNhY2hl
c2hvdyhjb25maWcsIHNlc3Npb24pOgotICAgIGZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKLSAg
ICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKLSAgICB0dy5saW5lKCJjYWNoZWRpcjogIiAr
IHN0cihjb25maWcuY2FjaGUuX2NhY2hlZGlyKSkKLSAgICBpZiBub3QgY29uZmlnLmNhY2hlLl9j
YWNoZWRpci5jaGVjaygpOgotICAgICAgICB0dy5saW5lKCJjYWNoZSBpcyBlbXB0eSIpCi0gICAg
ICAgIHJldHVybiAwCi0gICAgZHVtbXkgPSBvYmplY3QoKQotICAgIGJhc2VkaXIgPSBjb25maWcu
Y2FjaGUuX2NhY2hlZGlyCi0gICAgdmRpciA9IGJhc2VkaXIuam9pbigidiIpCi0gICAgdHcuc2Vw
KCItIiwgImNhY2hlIHZhbHVlcyIpCi0gICAgZm9yIHZhbHBhdGggaW4gc29ydGVkKHZkaXIudmlz
aXQobGFtYmRhIHg6IHguaXNmaWxlKCkpKToKLSAgICAgICAga2V5ID0gdmFscGF0aC5yZWx0byh2
ZGlyKS5yZXBsYWNlKHZhbHBhdGguc2VwLCAiLyIpCi0gICAgICAgIHZhbCA9IGNvbmZpZy5jYWNo
ZS5nZXQoa2V5LCBkdW1teSkKLSAgICAgICAgaWYgdmFsIGlzIGR1bW15OgotICAgICAgICAgICAg
dHcubGluZSgiJXMgY29udGFpbnMgdW5yZWFkYWJsZSBjb250ZW50LCAiCi0gICAgICAgICAgICAg
ICAgICAgICJ3aWxsIGJlIGlnbm9yZWQiICUga2V5KQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgdHcubGluZSgiJXMgY29udGFpbnM6IiAlIGtleSkKLSAgICAgICAgICAgIHN0cmVhbSA9IHB5
LmlvLlRleHRJTygpCi0gICAgICAgICAgICBwcHJpbnQodmFsLCBzdHJlYW09c3RyZWFtKQotICAg
ICAgICAgICAgZm9yIGxpbmUgaW4gc3RyZWFtLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpOgotICAg
ICAgICAgICAgICAgIHR3LmxpbmUoIiAgIiArIGxpbmUpCi0KLSAgICBkZGlyID0gYmFzZWRpci5q
b2luKCJkIikKLSAgICBpZiBkZGlyLmlzZGlyKCkgYW5kIGRkaXIubGlzdGRpcigpOgotICAgICAg
ICB0dy5zZXAoIi0iLCAiY2FjaGUgZGlyZWN0b3JpZXMiKQotICAgICAgICBmb3IgcCBpbiBzb3J0
ZWQoYmFzZWRpci5qb2luKCJkIikudmlzaXQoKSk6Ci0gICAgICAgICAgICAjIGlmIHAuY2hlY2so
ZGlyPTEpOgotICAgICAgICAgICAgIyAgICBwcmludCgiJXMvIiAlIHAucmVsdG8oYmFzZWRpcikp
Ci0gICAgICAgICAgICBpZiBwLmlzZmlsZSgpOgotICAgICAgICAgICAgICAgIGtleSA9IHAucmVs
dG8oYmFzZWRpcikKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIlcyBpcyBhIGZpbGUgb2YgbGVu
Z3RoICVkIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgcC5zaXplKCkpKQotICAg
IHJldHVybiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYyZWJlMzhjOGMwOTAyODZiNzdjNzM5YjMyYjYyMDMwMjk0Yzc1MjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9j
YXB0dXJlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjgzICswLDAgQEAKLSIiIgotcGVyLXRlc3Qg
c3Rkb3V0L3N0ZGVyciBjYXB0dXJpbmcgbWVjaGFuaXNtLgotCi0iIiIKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1w
b3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgY29udGV4dGxpYgotaW1wb3J0IHN5cwotaW1wb3J0IG9z
Ci1pbXBvcnQgaW8KLWZyb20gaW8gaW1wb3J0IFVuc3VwcG9ydGVkT3BlcmF0aW9uCi1mcm9tIHRl
bXBmaWxlIGltcG9ydCBUZW1wb3JhcnlGaWxlCi0KLWltcG9ydCBzaXgKLWltcG9ydCBweXRlc3QK
LWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IENhcHR1cmVJTwotCi0KLXBhdGNoc3lzZGljdCA9
IHswOiAnc3RkaW4nLCAxOiAnc3Rkb3V0JywgMjogJ3N0ZGVycid9Ci0KLQotZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIp
Ci0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy0tY2FwdHVyZScsIGFjdGlvbj0ic3Rv
cmUiLAotICAgICAgICBkZWZhdWx0PSJmZCIgaWYgaGFzYXR0cihvcywgImR1cCIpIGVsc2UgInN5
cyIsCi0gICAgICAgIG1ldGF2YXI9Im1ldGhvZCIsIGNob2ljZXM9WydmZCcsICdzeXMnLCAnbm8n
XSwKLSAgICAgICAgaGVscD0icGVyLXRlc3QgY2FwdHVyaW5nIG1ldGhvZDogb25lIG9mIGZkfHN5
c3xuby4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctcycsIGFjdGlvbj0ic3Rv
cmVfY29uc3QiLCBjb25zdD0ibm8iLCBkZXN0PSJjYXB0dXJlIiwKLSAgICAgICAgaGVscD0ic2hv
cnRjdXQgZm9yIC0tY2FwdHVyZT1uby4iKQotCi0KLUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBw
ZXI9VHJ1ZSkKLWRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcs
IHBhcnNlciwgYXJncyk6Ci0gICAgbnMgPSBlYXJseV9jb25maWcua25vd25fYXJnc19uYW1lc3Bh
Y2UKLSAgICBpZiBucy5jYXB0dXJlID09ICJmZCI6Ci0gICAgICAgIF9weTM2X3dpbmRvd3Njb25z
b2xlaW9fd29ya2Fyb3VuZChzeXMuc3Rkb3V0KQotICAgIF9jb2xvcmFtYV93b3JrYXJvdW5kKCkK
LSAgICBfcmVhZGxpbmVfd29ya2Fyb3VuZCgpCi0gICAgcGx1Z2lubWFuYWdlciA9IGVhcmx5X2Nv
bmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgY2FwbWFuID0gQ2FwdHVyZU1hbmFnZXIobnMuY2FwdHVy
ZSkKLSAgICBwbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNhcG1hbiwgImNhcHR1cmVtYW5hZ2VyIikK
LQotICAgICMgbWFrZSBzdXJlIHRoYXQgY2FwdHVyZW1hbmFnZXIgaXMgcHJvcGVybHkgcmVzZXQg
YXQgZmluYWwgc2h1dGRvd24KLSAgICBlYXJseV9jb25maWcuYWRkX2NsZWFudXAoY2FwbWFuLnN0
b3BfZ2xvYmFsX2NhcHR1cmluZykKLQotICAgICMgbWFrZSBzdXJlIGxvZ2dpbmcgZG9lcyBub3Qg
cmFpc2UgZXhjZXB0aW9ucyBhdCB0aGUgZW5kCi0gICAgZGVmIHNpbGVuY2VfbG9nZ2luZ19hdF9z
aHV0ZG93bigpOgotICAgICAgICBpZiAibG9nZ2luZyIgaW4gc3lzLm1vZHVsZXM6Ci0gICAgICAg
ICAgICBzeXMubW9kdWxlc1sibG9nZ2luZyJdLnJhaXNlRXhjZXB0aW9ucyA9IEZhbHNlCi0gICAg
ZWFybHlfY29uZmlnLmFkZF9jbGVhbnVwKHNpbGVuY2VfbG9nZ2luZ19hdF9zaHV0ZG93bikKLQot
ICAgICMgZmluYWxseSB0cmlnZ2VyIGNvbmZ0ZXN0IGxvYWRpbmcgYnV0IHdoaWxlIGNhcHR1cmlu
ZyAoaXNzdWU5MykKLSAgICBjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1cmluZygpCi0gICAgb3V0
Y29tZSA9IHlpZWxkCi0gICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVy
ZSgpCi0gICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIG5vdCBOb25lOgotICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKG91dCkKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCi0KLQotY2xhc3Mg
Q2FwdHVyZU1hbmFnZXI6Ci0gICAgIiIiCi0gICAgQ2FwdHVyZSBwbHVnaW4sIG1hbmFnZXMgdGhh
dCB0aGUgYXBwcm9wcmlhdGUgY2FwdHVyZSBtZXRob2QgaXMgZW5hYmxlZC9kaXNhYmxlZCBkdXJp
bmcgY29sbGVjdGlvbiBhbmQgZWFjaAotICAgIHRlc3QgcGhhc2UgKHNldHVwLCBjYWxsLCB0ZWFy
ZG93bikuIEFmdGVyIGVhY2ggb2YgdGhvc2UgcG9pbnRzLCB0aGUgY2FwdHVyZWQgb3V0cHV0IGlz
IG9idGFpbmVkIGFuZAotICAgIGF0dGFjaGVkIHRvIHRoZSBjb2xsZWN0aW9uL3J1bnRlc3QgcmVw
b3J0LgotCi0gICAgVGhlcmUgYXJlIHR3byBsZXZlbHMgb2YgY2FwdHVyZToKLSAgICAqIGdsb2Jh
bDogd2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gYmUgc3VwcHJlc3NlZCBieSB0
aGUgYGAtc2BgIG9wdGlvbi4gVGhpcyBpcyBhbHdheXMgZW5hYmxlZC9kaXNhYmxlZAotICAgICAg
ZHVyaW5nIGNvbGxlY3Rpb24gYW5kIGVhY2ggdGVzdCBwaGFzZS4KLSAgICAqIGZpeHR1cmU6IHdo
ZW4gYSB0ZXN0IGZ1bmN0aW9uIG9yIG9uZSBvZiBpdHMgZml4dHVyZSBkZXBlbmQgb24gdGhlIGBg
Y2Fwc3lzYGAgb3IgYGBjYXBmZGBgIGZpeHR1cmVzLiBJbiB0aGlzCi0gICAgICBjYXNlIHNwZWNp
YWwgaGFuZGxpbmcgaXMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgZml4dHVyZXMgdGFrZSBwcmVjZWRl
bmNlIG92ZXIgdGhlIGdsb2JhbCBjYXB0dXJlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG1ldGhvZCk6Ci0gICAgICAgIHNlbGYuX21ldGhvZCA9IG1ldGhvZAotICAgICAgICBz
ZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQotCi0gICAgZGVmIF9nZXRjYXB0dXJlKHNlbGYs
IG1ldGhvZCk6Ci0gICAgICAgIGlmIG1ldGhvZCA9PSAiZmQiOgotICAgICAgICAgICAgcmV0dXJu
IE11bHRpQ2FwdHVyZShvdXQ9VHJ1ZSwgZXJyPVRydWUsIENhcHR1cmU9RkRDYXB0dXJlKQotICAg
ICAgICBlbGlmIG1ldGhvZCA9PSAic3lzIjoKLSAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1
cmUob3V0PVRydWUsIGVycj1UcnVlLCBDYXB0dXJlPVN5c0NhcHR1cmUpCi0gICAgICAgIGVsaWYg
bWV0aG9kID09ICJubyI6Ci0gICAgICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJlKG91dD1GYWxz
ZSwgZXJyPUZhbHNlLCBpbl89RmFsc2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJ1bmtub3duIGNhcHR1cmluZyBtZXRob2Q6ICVyIiAlIG1ldGhvZCkKLQot
ICAgIGRlZiBzdGFydF9nbG9iYWxfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICBhc3NlcnQgc2Vs
Zi5fZ2xvYmFsX2NhcHR1cmluZyBpcyBOb25lCi0gICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJp
bmcgPSBzZWxmLl9nZXRjYXB0dXJlKHNlbGYuX21ldGhvZCkKLSAgICAgICAgc2VsZi5fZ2xvYmFs
X2NhcHR1cmluZy5zdGFydF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHN0b3BfZ2xvYmFsX2NhcHR1
cmluZyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcucG9wX291dGVycl90b19vcmln
KCkKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcuc3RvcF9jYXB0dXJpbmcoKQot
ICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IE5vbmUKLQotICAgIGRlZiByZXN1
bWVfZ2xvYmFsX2NhcHR1cmUoc2VsZik6Ci0gICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcu
cmVzdW1lX2NhcHR1cmluZygpCi0KLSAgICBkZWYgc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShzZWxm
LCBpdGVtPU5vbmUsIGluXz1GYWxzZSk6Ci0gICAgICAgIGlmIGl0ZW0gaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLmRlYWN0aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAgICBjYXAgPSBn
ZXRhdHRyKHNlbGYsICJfZ2xvYmFsX2NhcHR1cmluZyIsIE5vbmUpCi0gICAgICAgIGlmIGNhcCBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBvdXRlcnIgPSBj
YXAucmVhZG91dGVycigpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNh
cC5zdXNwZW5kX2NhcHR1cmluZyhpbl89aW5fKQotICAgICAgICAgICAgcmV0dXJuIG91dGVycgot
Ci0gICAgZGVmIGFjdGl2YXRlX2ZpeHR1cmUoc2VsZiwgaXRlbSk6Ci0gICAgICAgICIiIklmIHRo
ZSBjdXJyZW50IGl0ZW0gaXMgdXNpbmcgYGBjYXBzeXNgYCBvciBgYGNhcGZkYGAsIGFjdGl2YXRl
IHRoZW0gc28gdGhleSB0YWtlIHByZWNlZGVuY2Ugb3ZlcgotICAgICAgICB0aGUgZ2xvYmFsIGNh
cHR1cmUuCi0gICAgICAgICIiIgotICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihpdGVtLCAiX2Nh
cHR1cmVfZml4dHVyZSIsIE5vbmUpCi0gICAgICAgIGlmIGZpeHR1cmUgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBmaXh0dXJlLl9zdGFydCgpCi0KLSAgICBkZWYgZGVhY3RpdmF0ZV9maXh0dXJl
KHNlbGYsIGl0ZW0pOgotICAgICAgICAiIiJEZWFjdGl2YXRlcyB0aGUgYGBjYXBzeXNgYCBvciBg
YGNhcGZkYGAgZml4dHVyZSBvZiB0aGlzIGl0ZW0sIGlmIGFueS4iIiIKLSAgICAgICAgZml4dHVy
ZSA9IGdldGF0dHIoaXRlbSwgIl9jYXB0dXJlX2ZpeHR1cmUiLCBOb25lKQotICAgICAgICBpZiBm
aXh0dXJlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZml4dHVyZS5jbG9zZSgpCi0KLSAgICBA
cHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9tYWtlX2Nv
bGxlY3RfcmVwb3J0KHNlbGYsIGNvbGxlY3Rvcik6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoY29s
bGVjdG9yLCBweXRlc3QuRmlsZSk6Ci0gICAgICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2Fw
dHVyZSgpCi0gICAgICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAgICAgICAgIG91dCwgZXJy
ID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgICAgIHJlcCA9IG91dGNv
bWUuZ2V0X3Jlc3VsdCgpCi0gICAgICAgICAgICBpZiBvdXQ6Ci0gICAgICAgICAgICAgICAgcmVw
LnNlY3Rpb25zLmFwcGVuZCgoIkNhcHR1cmVkIHN0ZG91dCIsIG91dCkpCi0gICAgICAgICAgICBp
ZiBlcnI6Ci0gICAgICAgICAgICAgICAgcmVwLnNlY3Rpb25zLmFwcGVuZCgoIkNhcHR1cmVkIHN0
ZGVyciIsIGVycikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB5aWVsZAotCi0gICAgQHB5
dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9z
ZXR1cChzZWxmLCBpdGVtKToKLSAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQot
ICAgICAgICAjIG5vIG5lZWQgdG8gYWN0aXZhdGUgYSBjYXB0dXJlIGZpeHR1cmUgYmVjYXVzZSB0
aGV5IGFjdGl2YXRlIHRoZW1zZWx2ZXMgZHVyaW5nIGNyZWF0aW9uOyB0aGlzCi0gICAgICAgICMg
b25seSBtYWtlcyBzZW5zZSB3aGVuIGEgZml4dHVyZSB1c2VzIGEgY2FwdHVyZSBmaXh0dXJlLCBv
dGhlcndpc2UgdGhlIGNhcHR1cmUgZml4dHVyZSB3aWxsCi0gICAgICAgICMgYmUgYWN0aXZhdGVk
IGR1cmluZyBweXRlc3RfcnVudGVzdF9jYWxsCi0gICAgICAgIHlpZWxkCi0gICAgICAgIHNlbGYu
c3VzcGVuZF9jYXB0dXJlX2l0ZW0oaXRlbSwgInNldHVwIikKLQotICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfY2FsbChzZWxmLCBp
dGVtKToKLSAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICAjIGl0
IGlzIGltcG9ydGFudCB0byBhY3RpdmF0ZSB0aGlzIGZpeHR1cmUgZHVyaW5nIHRoZSBjYWxsIHBo
YXNlIHNvIGl0IG92ZXJ3cml0ZXMgdGhlICJnbG9iYWwiCi0gICAgICAgICMgY2FwdHVyZQotICAg
ICAgICBzZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkKLSAgICAgICAgeWllbGQKLSAgICAgICAg
c2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAiY2FsbCIpCi0KLSAgICBAcHl0ZXN0Lmhv
b2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3du
KHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAg
ICAgIHNlbGYuYWN0aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAgICB5aWVsZAotICAgICAgICBz
ZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJ0ZWFyZG93biIpCi0KLSAgICBAcHl0ZXN0
Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1
cHQoc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuc3RvcF9nbG9iYWxfY2FwdHVyaW5nKCkK
LQotICAgIEBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X2lu
dGVybmFsZXJyb3Ioc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuc3RvcF9nbG9iYWxfY2Fw
dHVyaW5nKCkKLQotICAgIGRlZiBzdXNwZW5kX2NhcHR1cmVfaXRlbShzZWxmLCBpdGVtLCB3aGVu
LCBpbl89RmFsc2UpOgotICAgICAgICBvdXQsIGVyciA9IHNlbGYuc3VzcGVuZF9nbG9iYWxfY2Fw
dHVyZShpdGVtLCBpbl89aW5fKQotICAgICAgICBpdGVtLmFkZF9yZXBvcnRfc2VjdGlvbih3aGVu
LCAic3Rkb3V0Iiwgb3V0KQotICAgICAgICBpdGVtLmFkZF9yZXBvcnRfc2VjdGlvbih3aGVuLCAi
c3RkZXJyIiwgZXJyKQotCi0KLWNhcHR1cmVfZml4dHVyZXMgPSB7J2NhcGZkJywgJ2NhcGZkYmlu
YXJ5JywgJ2NhcHN5cycsICdjYXBzeXNiaW5hcnknfQotCi0KLWRlZiBfZW5zdXJlX29ubHlfb25l
X2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCBuYW1lKToKLSAgICBmaXh0dXJlcyA9IHNldChyZXF1
ZXN0LmZpeHR1cmVuYW1lcykgJiBjYXB0dXJlX2ZpeHR1cmVzIC0gc2V0KChuYW1lLCkpCi0gICAg
aWYgZml4dHVyZXM6Ci0gICAgICAgIGZpeHR1cmVzID0gc29ydGVkKGZpeHR1cmVzKQotICAgICAg
ICBmaXh0dXJlcyA9IGZpeHR1cmVzWzBdIGlmIGxlbihmaXh0dXJlcykgPT0gMSBlbHNlIGZpeHR1
cmVzCi0gICAgICAgIHJhaXNlIHJlcXVlc3QucmFpc2VlcnJvcigKLSAgICAgICAgICAgICJjYW5u
b3QgdXNlIHswfSBhbmQgezF9IGF0IHRoZSBzYW1lIHRpbWUiLmZvcm1hdCgKLSAgICAgICAgICAg
ICAgICBmaXh0dXJlcywgbmFtZSwKLSAgICAgICAgICAgICksCi0gICAgICAgICkKLQotCi1AcHl0
ZXN0LmZpeHR1cmUKLWRlZiBjYXBzeXMocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNhcHR1cmlu
ZyBvZiB3cml0ZXMgdG8gc3lzLnN0ZG91dC9zeXMuc3RkZXJyIGFuZCBtYWtlCi0gICAgY2FwdHVy
ZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91dGVycigpYGAgbWV0aG9kIGNh
bGxzCi0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFu
ZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAgICBvYmplY3RzLgotICAgICIiIgotICAgIF9l
bnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBzeXMnKQotICAgIHdp
dGggX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgU3lzQ2FwdHVyZSkg
YXMgZml4dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQotCi0KLUBweXRlc3QuZml4dHVyZQot
ZGVmIGNhcHN5c2JpbmFyeShyZXF1ZXN0KToKLSAgICAiIiJFbmFibGUgY2FwdHVyaW5nIG9mIHdy
aXRlcyB0byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5kIG1ha2UKLSAgICBjYXB0dXJlZCBvdXRw
dXQgYXZhaWxhYmxlIHZpYSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKLSAg
ICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJy
YGAgd2lsbCBiZSBgYGJ5dGVzYGAKLSAgICBvYmplY3RzLgotICAgICIiIgotICAgIF9lbnN1cmVf
b25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBzeXNiaW5hcnknKQotICAgICMg
Q3VycmVudGx5LCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgcHl0aG9uMyBzcGVjaWZpYyBg
LmJ1ZmZlcmAKLSAgICAjIHByb3BlcnR5IG9mIENhcHR1cmVJTy4KLSAgICBpZiBzeXMudmVyc2lv
bl9pbmZvIDwgKDMsKToKLSAgICAgICAgcmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKCdjYXBzeXNi
aW5hcnkgaXMgb25seSBzdXBwb3J0ZWQgb24gcHl0aG9uIDMnKQotICAgIHdpdGggX2luc3RhbGxf
Y2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgU3lzQ2FwdHVyZUJpbmFyeSkgYXMgZml4
dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIGNh
cGZkKHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIGZpbGUg
ZGVzY3JpcHRvcnMgMSBhbmQgMiBhbmQgbWFrZQotICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFi
bGUgdmlhIGBgY2FwZmQucmVhZG91dGVycigpYGAgbWV0aG9kIGNhbGxzCi0gICAgd2hpY2ggcmV0
dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUg
YGB0ZXh0YGAKLSAgICBvYmplY3RzLgotICAgICIiIgotICAgIF9lbnN1cmVfb25seV9vbmVfY2Fw
dHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBmZCcpCi0gICAgaWYgbm90IGhhc2F0dHIob3MsICdk
dXAnKToKLSAgICAgICAgcHl0ZXN0LnNraXAoImNhcGZkIGZpeHR1cmUgbmVlZHMgb3MuZHVwIGZ1
bmN0aW9uIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBzeXN0ZW0iKQotICAgIHdpdGgg
X2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgRkRDYXB0dXJlKSBhcyBm
aXh0dXJlOgotICAgICAgICB5aWVsZCBmaXh0dXJlCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYg
Y2FwZmRiaW5hcnkocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZSB0
byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKLSAgICBjYXB0dXJlZCBvdXRwdXQg
YXZhaWxhYmxlIHZpYSBgYGNhcGZkYmluYXJ5LnJlYWRvdXRlcnJgYCBtZXRob2QgY2FsbHMKLSAg
ICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJy
YGAgd2lsbCBiZQotICAgIGBgYnl0ZXNgYCBvYmplY3RzLgotICAgICIiIgotICAgIF9lbnN1cmVf
b25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBmZGJpbmFyeScpCi0gICAgaWYg
bm90IGhhc2F0dHIob3MsICdkdXAnKToKLSAgICAgICAgcHl0ZXN0LnNraXAoImNhcGZkYmluYXJ5
IGZpeHR1cmUgbmVlZHMgb3MuZHVwIGZ1bmN0aW9uIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgaW4g
dGhpcyBzeXN0ZW0iKQotICAgIHdpdGggX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0o
cmVxdWVzdCwgRkRDYXB0dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgotICAgICAgICB5aWVsZCBmaXh0
dXJlCi0KLQotQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKLWRlZiBfaW5zdGFsbF9jYXB0dXJl
X2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBjYXB0dXJlX2NsYXNzKToKLSAgICAiIiIKLSAgICBD
b250ZXh0IG1hbmFnZXIgd2hpY2ggY3JlYXRlcyBhIGBgQ2FwdHVyZUZpeHR1cmVgYCBpbnN0YW5j
ZSBhbmQgImluc3RhbGxzIiBpdCBvbgotICAgIHRoZSBpdGVtL25vZGUgb2YgdGhlIGdpdmVuIHJl
cXVlc3QuIFVzZWQgYnkgYGBjYXBzeXNgYCBhbmQgYGBjYXBmZGBgLgotCi0gICAgVGhlIENhcHR1
cmVGaXh0dXJlIGlzIGFkZGVkIGFzIGF0dHJpYnV0ZSBvZiB0aGUgaXRlbSBiZWNhdXNlIGl0IG5l
ZWRzIHRvIGFjY2Vzc2VkCi0gICAgYnkgYGBDYXB0dXJlTWFuYWdlcmBgIGR1cmluZyBpdHMgYGBw
eXRlc3RfcnVudGVzdF8qYGAgaG9va3MuCi0gICAgIiIiCi0gICAgcmVxdWVzdC5ub2RlLl9jYXB0
dXJlX2ZpeHR1cmUgPSBmaXh0dXJlID0gQ2FwdHVyZUZpeHR1cmUoY2FwdHVyZV9jbGFzcywgcmVx
dWVzdCkKLSAgICBjYXBtYW5hZ2VyID0gcmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRw
bHVnaW4oJ2NhcHR1cmVtYW5hZ2VyJykKLSAgICAjIG5lZWQgdG8gYWN0aXZlIHRoaXMgZml4dHVy
ZSByaWdodCBhd2F5IGluIGNhc2UgaXQgaXMgYmVpbmcgdXNlZCBieSBhbm90aGVyIGZpeHR1cmUg
KHNldHVwIHBoYXNlKQotICAgICMgaWYgdGhpcyBmaXh0dXJlIGlzIGJlaW5nIHVzZWQgb25seSBi
eSBhIHRlc3QgZnVuY3Rpb24gKGNhbGwgcGhhc2UpLCB0aGVuIHdlIHdvdWxkbid0IG5lZWQgdGhp
cwotICAgICMgYWN0aXZhdGlvbiwgYnV0IGl0IGRvZXNuJ3QgaHVydAotICAgIGNhcG1hbmFnZXIu
YWN0aXZhdGVfZml4dHVyZShyZXF1ZXN0Lm5vZGUpCi0gICAgeWllbGQgZml4dHVyZQotICAgIGZp
eHR1cmUuY2xvc2UoKQotICAgIGRlbCByZXF1ZXN0Lm5vZGUuX2NhcHR1cmVfZml4dHVyZQotCi0K
LWNsYXNzIENhcHR1cmVGaXh0dXJlOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYXB0dXJlY2xh
c3MsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLmNhcHR1cmVjbGFzcyA9IGNhcHR1cmVjbGFzcwot
ICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICBkZWYgX3N0YXJ0KHNlbGYpOgot
ICAgICAgICBzZWxmLl9jYXB0dXJlID0gTXVsdGlDYXB0dXJlKG91dD1UcnVlLCBlcnI9VHJ1ZSwg
aW5fPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhcHR1cmU9
c2VsZi5jYXB0dXJlY2xhc3MpCi0gICAgICAgIHNlbGYuX2NhcHR1cmUuc3RhcnRfY2FwdHVyaW5n
KCkKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgY2FwID0gc2VsZi5fX2RpY3RfXy5w
b3AoIl9jYXB0dXJlIiwgTm9uZSkKLSAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgc2VsZi5fb3V0ZXJyID0gY2FwLnBvcF9vdXRlcnJfdG9fb3JpZygpCi0gICAgICAgICAg
ICBjYXAuc3RvcF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHJlYWRvdXRlcnIoc2VsZik6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYXB0dXJlLnJlYWRvdXRlcnIoKQot
ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5f
b3V0ZXJyCi0KLSAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgotICAgIGRlZiBkaXNhYmxl
ZChzZWxmKToKLSAgICAgICAgc2VsZi5fY2FwdHVyZS5zdXNwZW5kX2NhcHR1cmluZygpCi0gICAg
ICAgIGNhcG1hbmFnZXIgPSBzZWxmLnJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1
Z2luKCdjYXB0dXJlbWFuYWdlcicpCi0gICAgICAgIGNhcG1hbmFnZXIuc3VzcGVuZF9nbG9iYWxf
Y2FwdHVyZShpdGVtPU5vbmUsIGluXz1GYWxzZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
eWllbGQKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGNhcG1hbmFnZXIucmVzdW1lX2ds
b2JhbF9jYXB0dXJlKCkKLSAgICAgICAgICAgIHNlbGYuX2NhcHR1cmUucmVzdW1lX2NhcHR1cmlu
ZygpCi0KLQotZGVmIHNhZmVfdGV4dF9kdXBmaWxlKGYsIG1vZGUsIGRlZmF1bHRfZW5jb2Rpbmc9
IlVURjgiKToKLSAgICAiIiIgcmV0dXJuIGEgb3BlbiB0ZXh0IGZpbGUgb2JqZWN0IHRoYXQncyBh
IGR1cGxpY2F0ZSBvZiBmIG9uIHRoZQotICAgICAgICBGRC1sZXZlbCBpZiBwb3NzaWJsZS4KLSAg
ICAiIiIKLSAgICBlbmNvZGluZyA9IGdldGF0dHIoZiwgImVuY29kaW5nIiwgTm9uZSkKLSAgICB0
cnk6Ci0gICAgICAgIGZkID0gZi5maWxlbm8oKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAg
ICAgIGlmICJiIiBub3QgaW4gZ2V0YXR0cihmLCAibW9kZSIsICIiKSBhbmQgaGFzYXR0cihmLCAi
ZW5jb2RpbmciKToKLSAgICAgICAgICAgICMgd2Ugc2VlbSB0byBoYXZlIGEgdGV4dCBzdHJlYW0s
IGxldCdzIGp1c3QgdXNlIGl0Ci0gICAgICAgICAgICByZXR1cm4gZgotICAgIGVsc2U6Ci0gICAg
ICAgIG5ld2ZkID0gb3MuZHVwKGZkKQotICAgICAgICBpZiAiYiIgbm90IGluIG1vZGU6Ci0gICAg
ICAgICAgICBtb2RlICs9ICJiIgotICAgICAgICBmID0gb3MuZmRvcGVuKG5ld2ZkLCBtb2RlLCAw
KSAgIyBubyBidWZmZXJpbmcKLSAgICByZXR1cm4gRW5jb2RlZEZpbGUoZiwgZW5jb2Rpbmcgb3Ig
ZGVmYXVsdF9lbmNvZGluZykKLQotCi1jbGFzcyBFbmNvZGVkRmlsZShvYmplY3QpOgotICAgIGVy
cm9ycyA9ICJzdHJpY3QiICAjIHBvc3NpYmx5IG5lZWRlZCBieSBweTMgY29kZSAoaXNzdWU1NTUp
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYnVmZmVyLCBlbmNvZGluZyk6Ci0gICAgICAgIHNl
bGYuYnVmZmVyID0gYnVmZmVyCi0gICAgICAgIHNlbGYuZW5jb2RpbmcgPSBlbmNvZGluZwotCi0g
ICAgZGVmIHdyaXRlKHNlbGYsIG9iaik6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzaXgu
dGV4dF90eXBlKToKLSAgICAgICAgICAgIG9iaiA9IG9iai5lbmNvZGUoc2VsZi5lbmNvZGluZywg
InJlcGxhY2UiKQotICAgICAgICBzZWxmLmJ1ZmZlci53cml0ZShvYmopCi0KLSAgICBkZWYgd3Jp
dGVsaW5lcyhzZWxmLCBsaW5lbGlzdCk6Ci0gICAgICAgIGRhdGEgPSAnJy5qb2luKGxpbmVsaXN0
KQotICAgICAgICBzZWxmLndyaXRlKGRhdGEpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbmFt
ZShzZWxmKToKLSAgICAgICAgIiIiRW5zdXJlIHRoYXQgZmlsZS5uYW1lIGlzIGEgc3RyaW5nLiIi
IgotICAgICAgICByZXR1cm4gcmVwcihzZWxmLmJ1ZmZlcikKLQotICAgIGRlZiBfX2dldGF0dHJf
XyhzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIGdldGF0dHIob2JqZWN0Ll9fZ2V0YXR0cmli
dXRlX18oc2VsZiwgImJ1ZmZlciIpLCBuYW1lKQotCi0KLUNhcHR1cmVSZXN1bHQgPSBjb2xsZWN0
aW9ucy5uYW1lZHR1cGxlKCJDYXB0dXJlUmVzdWx0IiwgWyJvdXQiLCAiZXJyIl0pCi0KLQotY2xh
c3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6Ci0gICAgb3V0ID0gZXJyID0gaW5fID0gTm9uZQotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dD1UcnVlLCBlcnI9VHJ1ZSwgaW5fPVRydWUsIENhcHR1
cmU9Tm9uZSk6Ci0gICAgICAgIGlmIGluXzoKLSAgICAgICAgICAgIHNlbGYuaW5fID0gQ2FwdHVy
ZSgwKQotICAgICAgICBpZiBvdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dCA9IENhcHR1cmUoMSkK
LSAgICAgICAgaWYgZXJyOgotICAgICAgICAgICAgc2VsZi5lcnIgPSBDYXB0dXJlKDIpCi0KLSAg
ICBkZWYgc3RhcnRfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmluXzoKLSAgICAg
ICAgICAgIHNlbGYuaW5fLnN0YXJ0KCkKLSAgICAgICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAg
ICBzZWxmLm91dC5zdGFydCgpCi0gICAgICAgIGlmIHNlbGYuZXJyOgotICAgICAgICAgICAgc2Vs
Zi5lcnIuc3RhcnQoKQotCi0gICAgZGVmIHBvcF9vdXRlcnJfdG9fb3JpZyhzZWxmKToKLSAgICAg
ICAgIiIiIHBvcCBjdXJyZW50IHNuYXBzaG90IG91dC9lcnIgY2FwdHVyZSBhbmQgZmx1c2ggdG8g
b3JpZyBzdHJlYW1zLiAiIiIKLSAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnJlYWRvdXRlcnIoKQot
ICAgICAgICBpZiBvdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC53cml0ZW9yZyhvdXQpCi0gICAg
ICAgIGlmIGVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLndyaXRlb3JnKGVycikKLSAgICAgICAg
cmV0dXJuIG91dCwgZXJyCi0KLSAgICBkZWYgc3VzcGVuZF9jYXB0dXJpbmcoc2VsZiwgaW5fPUZh
bHNlKToKLSAgICAgICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5zdXNwZW5k
KCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxmLmVyci5zdXNwZW5kKCkK
LSAgICAgICAgaWYgaW5fIGFuZCBzZWxmLmluXzoKLSAgICAgICAgICAgIHNlbGYuaW5fLnN1c3Bl
bmQoKQotICAgICAgICAgICAgc2VsZi5faW5fc3VzcGVuZGVkID0gVHJ1ZQotCi0gICAgZGVmIHJl
c3VtZV9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYub3V0OgotICAgICAgICAgICAg
c2VsZi5vdXQucmVzdW1lKCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxm
LmVyci5yZXN1bWUoKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfaW5fc3VzcGVuZGVkIik6
Ci0gICAgICAgICAgICBzZWxmLmluXy5yZXN1bWUoKQotICAgICAgICAgICAgZGVsIHNlbGYuX2lu
X3N1c3BlbmRlZAotCi0gICAgZGVmIHN0b3BfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICAiIiIg
c3RvcCBjYXB0dXJpbmcgYW5kIHJlc2V0IGNhcHR1cmluZyBzdHJlYW1zICIiIgotICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYsICdfcmVzZXQnKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IndhcyBhbHJlYWR5IHN0b3BwZWQiKQotICAgICAgICBzZWxmLl9yZXNldCA9IFRydWUKLSAgICAg
ICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5kb25lKCkKLSAgICAgICAgaWYg
c2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxmLmVyci5kb25lKCkKLSAgICAgICAgaWYgc2VsZi5p
bl86Ci0gICAgICAgICAgICBzZWxmLmluXy5kb25lKCkKLQotICAgIGRlZiByZWFkb3V0ZXJyKHNl
bGYpOgotICAgICAgICAiIiIgcmV0dXJuIHNuYXBzaG90IHVuaWNvZGUgdmFsdWUgb2Ygc3Rkb3V0
L3N0ZGVyciBjYXB0dXJpbmdzLiAiIiIKLSAgICAgICAgcmV0dXJuIENhcHR1cmVSZXN1bHQoc2Vs
Zi5vdXQuc25hcCgpIGlmIHNlbGYub3V0IGlzIG5vdCBOb25lIGVsc2UgIiIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyLnNuYXAoKSBpZiBzZWxmLmVyciBpcyBub3QgTm9u
ZSBlbHNlICIiKQotCi0KLWNsYXNzIE5vQ2FwdHVyZToKLSAgICBfX2luaXRfXyA9IHN0YXJ0ID0g
ZG9uZSA9IHN1c3BlbmQgPSByZXN1bWUgPSBsYW1iZGEgKmFyZ3M6IE5vbmUKLQotCi1jbGFzcyBG
RENhcHR1cmVCaW5hcnk6Ci0gICAgIiIiQ2FwdHVyZSBJTyB0by9mcm9tIGEgZ2l2ZW4gb3MtbGV2
ZWwgZmlsZWRlc2NyaXB0b3IuCi0KLSAgICBzbmFwKCkgcHJvZHVjZXMgYGJ5dGVzYAotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldGZkLCB0bXBmaWxlPU5vbmUpOgotICAg
ICAgICBzZWxmLnRhcmdldGZkID0gdGFyZ2V0ZmQKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
c2VsZi50YXJnZXRmZF9zYXZlID0gb3MuZHVwKHNlbGYudGFyZ2V0ZmQpCi0gICAgICAgIGV4Y2Vw
dCBPU0Vycm9yOgotICAgICAgICAgICAgc2VsZi5zdGFydCA9IGxhbWJkYTogTm9uZQotICAgICAg
ICAgICAgc2VsZi5kb25lID0gbGFtYmRhOiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBpZiB0YXJnZXRmZCA9PSAwOgotICAgICAgICAgICAgICAgIGFzc2VydCBub3QgdG1wZmlsZSwg
ImNhbm5vdCBzZXQgdG1wZmlsZSB3aXRoIHN0ZGluIgotICAgICAgICAgICAgICAgIHRtcGZpbGUg
PSBvcGVuKG9zLmRldm51bGwsICJyIikKLSAgICAgICAgICAgICAgICBzZWxmLnN5c2NhcHR1cmUg
PSBTeXNDYXB0dXJlKHRhcmdldGZkKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBpZiB0bXBmaWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGYgPSBUZW1wb3JhcnlG
aWxlKCkKLSAgICAgICAgICAgICAgICAgICAgd2l0aCBmOgotICAgICAgICAgICAgICAgICAgICAg
ICAgdG1wZmlsZSA9IHNhZmVfdGV4dF9kdXBmaWxlKGYsIG1vZGU9IndiKyIpCi0gICAgICAgICAg
ICAgICAgaWYgdGFyZ2V0ZmQgaW4gcGF0Y2hzeXNkaWN0OgotICAgICAgICAgICAgICAgICAgICBz
ZWxmLnN5c2NhcHR1cmUgPSBTeXNDYXB0dXJlKHRhcmdldGZkLCB0bXBmaWxlKQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVyZSA9IE5vQ2Fw
dHVyZSgpCi0gICAgICAgICAgICBzZWxmLnRtcGZpbGUgPSB0bXBmaWxlCi0gICAgICAgICAgICBz
ZWxmLnRtcGZpbGVfZmQgPSB0bXBmaWxlLmZpbGVubygpCi0KLSAgICBkZWYgX19yZXByX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiPEZEQ2FwdHVyZSAlcyBvbGRmZD0lcz4iICUgKHNlbGYudGFy
Z2V0ZmQsIHNlbGYudGFyZ2V0ZmRfc2F2ZSkKLQotICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAg
ICAgIiIiIFN0YXJ0IGNhcHR1cmluZyBvbiB0YXJnZXRmZCB1c2luZyBtZW1vcml6ZWQgdG1wZmls
ZS4gIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLmZzdGF0KHNlbGYudGFyZ2V0ZmRf
c2F2ZSkKLSAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NFcnJvcik6Ci0gICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJzYXZlZCBmaWxlZGVzY3JpcHRvciBub3QgdmFsaWQgYW55
bW9yZSIpCi0gICAgICAgIG9zLmR1cDIoc2VsZi50bXBmaWxlX2ZkLCBzZWxmLnRhcmdldGZkKQot
ICAgICAgICBzZWxmLnN5c2NhcHR1cmUuc3RhcnQoKQotCi0gICAgZGVmIHNuYXAoc2VsZik6Ci0g
ICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAgICAgIHJlcyA9IHNlbGYudG1wZmlsZS5y
ZWFkKCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAgICAgc2VsZi50bXBmaWxl
LnRydW5jYXRlKCkKLSAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVmIGRvbmUoc2VsZik6Ci0g
ICAgICAgICIiIiBzdG9wIGNhcHR1cmluZywgcmVzdG9yZSBzdHJlYW1zLCByZXR1cm4gb3JpZ2lu
YWwgY2FwdHVyZSBmaWxlLAotICAgICAgICBzZWVrZWQgdG8gcG9zaXRpb24gemVyby4gIiIiCi0g
ICAgICAgIHRhcmdldGZkX3NhdmUgPSBzZWxmLl9fZGljdF9fLnBvcCgidGFyZ2V0ZmRfc2F2ZSIp
Ci0gICAgICAgIG9zLmR1cDIodGFyZ2V0ZmRfc2F2ZSwgc2VsZi50YXJnZXRmZCkKLSAgICAgICAg
b3MuY2xvc2UodGFyZ2V0ZmRfc2F2ZSkKLSAgICAgICAgc2VsZi5zeXNjYXB0dXJlLmRvbmUoKQot
ICAgICAgICBzZWxmLnRtcGZpbGUuY2xvc2UoKQotCi0gICAgZGVmIHN1c3BlbmQoc2VsZik6Ci0g
ICAgICAgIHNlbGYuc3lzY2FwdHVyZS5zdXNwZW5kKCkKLSAgICAgICAgb3MuZHVwMihzZWxmLnRh
cmdldGZkX3NhdmUsIHNlbGYudGFyZ2V0ZmQpCi0KLSAgICBkZWYgcmVzdW1lKHNlbGYpOgotICAg
ICAgICBzZWxmLnN5c2NhcHR1cmUucmVzdW1lKCkKLSAgICAgICAgb3MuZHVwMihzZWxmLnRtcGZp
bGVfZmQsIHNlbGYudGFyZ2V0ZmQpCi0KLSAgICBkZWYgd3JpdGVvcmcoc2VsZiwgZGF0YSk6Ci0g
ICAgICAgICIiIiB3cml0ZSB0byBvcmlnaW5hbCBmaWxlIGRlc2NyaXB0b3IuICIiIgotICAgICAg
ICBpZiBpc2luc3RhbmNlKGRhdGEsIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICAgICAgZGF0YSA9
IGRhdGEuZW5jb2RlKCJ1dGY4IikgICMgWFhYIHVzZSBlbmNvZGluZyBvZiBvcmlnaW5hbCBzdHJl
YW0KLSAgICAgICAgb3Mud3JpdGUoc2VsZi50YXJnZXRmZF9zYXZlLCBkYXRhKQotCi0KLWNsYXNz
IEZEQ2FwdHVyZShGRENhcHR1cmVCaW5hcnkpOgotICAgICIiIkNhcHR1cmUgSU8gdG8vZnJvbSBh
IGdpdmVuIG9zLWxldmVsIGZpbGVkZXNjcmlwdG9yLgotCi0gICAgc25hcCgpIHByb2R1Y2VzIHRl
eHQKLSAgICAiIiIKLSAgICBkZWYgc25hcChzZWxmKToKLSAgICAgICAgcmVzID0gRkRDYXB0dXJl
QmluYXJ5LnNuYXAoc2VsZikKLSAgICAgICAgZW5jID0gZ2V0YXR0cihzZWxmLnRtcGZpbGUsICJl
bmNvZGluZyIsIE5vbmUpCi0gICAgICAgIGlmIGVuYyBhbmQgaXNpbnN0YW5jZShyZXMsIGJ5dGVz
KToKLSAgICAgICAgICAgIHJlcyA9IHNpeC50ZXh0X3R5cGUocmVzLCBlbmMsICJyZXBsYWNlIikK
LSAgICAgICAgcmV0dXJuIHJlcwotCi0KLWNsYXNzIFN5c0NhcHR1cmU6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZkLCB0bXBmaWxlPU5vbmUpOgotICAgICAgICBuYW1lID0gcGF0Y2hzeXNkaWN0
W2ZkXQotICAgICAgICBzZWxmLl9vbGQgPSBnZXRhdHRyKHN5cywgbmFtZSkKLSAgICAgICAgc2Vs
Zi5uYW1lID0gbmFtZQotICAgICAgICBpZiB0bXBmaWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBp
ZiBuYW1lID09ICJzdGRpbiI6Ci0gICAgICAgICAgICAgICAgdG1wZmlsZSA9IERvbnRSZWFkRnJv
bUlucHV0KCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdG1wZmlsZSA9IENh
cHR1cmVJTygpCi0gICAgICAgIHNlbGYudG1wZmlsZSA9IHRtcGZpbGUKLQotICAgIGRlZiBzdGFy
dChzZWxmKToKLSAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYubmFtZSwgc2VsZi50bXBmaWxlKQot
Ci0gICAgZGVmIHNuYXAoc2VsZik6Ci0gICAgICAgIHJlcyA9IHNlbGYudG1wZmlsZS5nZXR2YWx1
ZSgpCi0gICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAgICAgIHNlbGYudG1wZmlsZS50
cnVuY2F0ZSgpCi0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiBkb25lKHNlbGYpOgotICAg
ICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9vbGQpCi0gICAgICAgIGRlbCBzZWxm
Ll9vbGQKLSAgICAgICAgc2VsZi50bXBmaWxlLmNsb3NlKCkKLQotICAgIGRlZiBzdXNwZW5kKHNl
bGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9vbGQpCi0KLSAgICBk
ZWYgcmVzdW1lKHNlbGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLnRt
cGZpbGUpCi0KLSAgICBkZWYgd3JpdGVvcmcoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuX29s
ZC53cml0ZShkYXRhKQotICAgICAgICBzZWxmLl9vbGQuZmx1c2goKQotCi0KLWNsYXNzIFN5c0Nh
cHR1cmVCaW5hcnkoU3lzQ2FwdHVyZSk6Ci0gICAgZGVmIHNuYXAoc2VsZik6Ci0gICAgICAgIHJl
cyA9IHNlbGYudG1wZmlsZS5idWZmZXIuZ2V0dmFsdWUoKQotICAgICAgICBzZWxmLnRtcGZpbGUu
c2VlaygwKQotICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQotICAgICAgICByZXR1cm4g
cmVzCi0KLQotY2xhc3MgRG9udFJlYWRGcm9tSW5wdXQ6Ci0gICAgIiIiVGVtcG9yYXJ5IHN0dWIg
Y2xhc3MuICBJZGVhbGx5IHdoZW4gc3RkaW4gaXMgYWNjZXNzZWQsIHRoZQotICAgIGNhcHR1cmlu
ZyBzaG91bGQgYmUgdHVybmVkIG9mZiwgd2l0aCBwb3NzaWJseSBhbGwgZGF0YSBjYXB0dXJlZAot
ICAgIHNvIGZhciBzZW50IHRvIHRoZSBzY3JlZW4uICBUaGlzIHNob3VsZCBiZSBjb25maWd1cmFi
bGUsIHRob3VnaCwKLSAgICBiZWNhdXNlIGluIGF1dG9tYXRlZCB0ZXN0IHJ1bnMgaXQgaXMgYmV0
dGVyIHRvIGNyYXNoIHRoYW4KLSAgICBoYW5nIGluZGVmaW5pdGVseS4KLSAgICAiIiIKLQotICAg
IGVuY29kaW5nID0gTm9uZQotCi0gICAgZGVmIHJlYWQoc2VsZiwgKmFyZ3MpOgotICAgICAgICBy
YWlzZSBJT0Vycm9yKCJyZWFkaW5nIGZyb20gc3RkaW4gd2hpbGUgb3V0cHV0IGlzIGNhcHR1cmVk
IikKLSAgICByZWFkbGluZSA9IHJlYWQKLSAgICByZWFkbGluZXMgPSByZWFkCi0gICAgX19pdGVy
X18gPSByZWFkCi0KLSAgICBkZWYgZmlsZW5vKHNlbGYpOgotICAgICAgICByYWlzZSBVbnN1cHBv
cnRlZE9wZXJhdGlvbigicmVkaXJlY3RlZCBzdGRpbiBpcyBwc2V1ZG9maWxlLCAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXMgbm8gZmlsZW5vKCkiKQotCi0gICAgZGVm
IGlzYXR0eShzZWxmKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgY2xvc2Uoc2Vs
Zik6Ci0gICAgICAgIHBhc3MKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBidWZmZXIoc2VsZik6
Ci0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotICAgICAgICAgICAgcmV0
dXJuIHNlbGYKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9y
KCdyZWRpcmVjdGVkIHN0ZGluIGhhcyBubyBhdHRyaWJ1dGUgYnVmZmVyJykKLQotCi1kZWYgX2Nv
bG9yYW1hX3dvcmthcm91bmQoKToKLSAgICAiIiIKLSAgICBFbnN1cmUgY29sb3JhbWEgaXMgaW1w
b3J0ZWQgc28gdGhhdCBpdCBhdHRhY2hlcyB0byB0aGUgY29ycmVjdCBzdGRpbwotICAgIGhhbmRs
ZXMgb24gV2luZG93cy4KLQotICAgIGNvbG9yYW1hIHVzZXMgdGhlIHRlcm1pbmFsIG9uIGltcG9y
dCB0aW1lLiBTbyBpZiBzb21ldGhpbmcgZG9lcyB0aGUKLSAgICBmaXJzdCBpbXBvcnQgb2YgY29s
b3JhbWEgd2hpbGUgSS9PIGNhcHR1cmUgaXMgYWN0aXZlLCBjb2xvcmFtYSB3aWxsCi0gICAgZmFp
bCBpbiB2YXJpb3VzIHdheXMuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0
YXJ0c3dpdGgoJ3dpbjMyJyk6Ci0gICAgICAgIHJldHVybgotICAgIHRyeToKLSAgICAgICAgaW1w
b3J0IGNvbG9yYW1hICAjIG5vcWEKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHBh
c3MKLQotCi1kZWYgX3JlYWRsaW5lX3dvcmthcm91bmQoKToKLSAgICAiIiIKLSAgICBFbnN1cmUg
cmVhZGxpbmUgaXMgaW1wb3J0ZWQgc28gdGhhdCBpdCBhdHRhY2hlcyB0byB0aGUgY29ycmVjdCBz
dGRpbwotICAgIGhhbmRsZXMgb24gV2luZG93cy4KLQotICAgIFBkYiB1c2VzIHJlYWRsaW5lIHN1
cHBvcnQgd2hlcmUgYXZhaWxhYmxlLS13aGVuIG5vdCBydW5uaW5nIGZyb20gdGhlIFB5dGhvbgot
ICAgIHByb21wdCwgdGhlIHJlYWRsaW5lIG1vZHVsZSBpcyBub3QgaW1wb3J0ZWQgdW50aWwgcnVu
bmluZyB0aGUgcGRiIFJFUEwuICBJZgotICAgIHJ1bm5pbmcgcHl0ZXN0IHdpdGggdGhlIC0tcGRi
IG9wdGlvbiB0aGlzIG1lYW5zIHRoZSByZWFkbGluZSBtb2R1bGUgaXMgbm90Ci0gICAgaW1wb3J0
ZWQgdW50aWwgYWZ0ZXIgSS9PIGNhcHR1cmUgaGFzIGJlZW4gc3RhcnRlZC4KLQotICAgIFRoaXMg
aXMgYSBwcm9ibGVtIGZvciBweXJlYWRsaW5lLCB3aGljaCBpcyBvZnRlbiB1c2VkIHRvIGltcGxl
bWVudCByZWFkbGluZQotICAgIHN1cHBvcnQgb24gV2luZG93cywgYXMgaXQgZG9lcyBub3QgYXR0
YWNoIHRvIHRoZSBjb3JyZWN0IGhhbmRsZXMgZm9yIHN0ZG91dAotICAgIGFuZC9vciBzdGRpbiBp
ZiB0aGV5IGhhdmUgYmVlbiByZWRpcmVjdGVkIGJ5IHRoZSBGRENhcHR1cmUgbWVjaGFuaXNtLiAg
VGhpcwotICAgIHdvcmthcm91bmQgZW5zdXJlcyB0aGF0IHJlYWRsaW5lIGlzIGltcG9ydGVkIGJl
Zm9yZSBJL08gY2FwdHVyZSBpcyBzZXR1cCBzbwotICAgIHRoYXQgaXQgY2FuIGF0dGFjaCB0byB0
aGUgYWN0dWFsIHN0ZGluL291dCBmb3IgdGhlIGNvbnNvbGUuCi0KLSAgICBTZWUgaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTI4MQotICAgICIiIgotCi0gICAgaWYg
bm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpOgotICAgICAgICByZXR1cm4KLSAg
ICB0cnk6Ci0gICAgICAgIGltcG9ydCByZWFkbGluZSAgIyBub3FhCi0gICAgZXhjZXB0IEltcG9y
dEVycm9yOgotICAgICAgICBwYXNzCi0KLQotZGVmIF9weTM2X3dpbmRvd3Njb25zb2xlaW9fd29y
a2Fyb3VuZChzdHJlYW0pOgotICAgICIiIgotICAgIFB5dGhvbiAzLjYgaW1wbGVtZW50ZWQgdW5p
Y29kZSBjb25zb2xlIGhhbmRsaW5nIGZvciBXaW5kb3dzLiBUaGlzIHdvcmtzCi0gICAgYnkgcmVh
ZGluZy93cml0aW5nIHRvIHRoZSByYXcgY29uc29sZSBoYW5kbGUgdXNpbmcKLSAgICBgYHtSZWFk
LFdyaXRlfUNvbnNvbGVXYGAuCi0KLSAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGFyZSBnb2lu
ZyB0byBgYGR1cDJgYCBvdmVyIHRoZSBzdGRpbyBmaWxlCi0gICAgZGVzY3JpcHRvcnMgd2hlbiBk
b2luZyBgYEZEQ2FwdHVyZWBgIGFuZCB0aGlzIHdpbGwgYGBDbG9zZUhhbmRsZWBgIHRoZQotICAg
IGhhbmRsZXMgdXNlZCBieSBQeXRob24gdG8gd3JpdGUgdG8gdGhlIGNvbnNvbGUuIFRob3VnaCB0
aGVyZSBpcyBzdGlsbCBzb21lCi0gICAgd2VpcmRuZXNzIGFuZCB0aGUgY29uc29sZSBoYW5kbGUg
c2VlbXMgdG8gb25seSBiZSBjbG9zZWQgcmFuZG9tbHkgYW5kIG5vdAotICAgIG9uIHRoZSBmaXJz
dCBjYWxsIHRvIGBgQ2xvc2VIYW5kbGVgYCwgb3IgbWF5YmUgaXQgZ2V0cyByZW9wZW5lZCB3aXRo
IHRoZQotICAgIHNhbWUgaGFuZGxlIHZhbHVlIHdoZW4gd2Ugc3VzcGVuZCBjYXB0dXJpbmcuCi0K
LSAgICBUaGUgd29ya2Fyb3VuZCBpbiB0aGlzIGNhc2Ugd2lsbCByZW9wZW4gc3RkaW8gd2l0aCBh
IGRpZmZlcmVudCBmZCB3aGljaAotICAgIGFsc28gbWVhbnMgYSBkaWZmZXJlbnQgaGFuZGxlIGJ5
IHJlcGxpY2F0aW5nIHRoZSBsb2dpYyBpbgotICAgICJQeV9saWZlY3ljbGUuYzppbml0c3RkaW8v
Y3JlYXRlX3N0ZGlvIi4KLQotICAgIDpwYXJhbSBzdHJlYW06IGluIHByYWN0aWNlIGBgc3lzLnN0
ZG91dGBgIG9yIGBgc3lzLnN0ZGVycmBgLCBidXQgZ2l2ZW4KLSAgICAgICAgaGVyZSBhcyBwYXJh
bWV0ZXIgZm9yIHVuaXR0ZXN0aW5nIHB1cnBvc2VzLgotCi0gICAgU2VlIGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5L2lzc3Vlcy8xMDMKLSAgICAiIiIKLSAgICBpZiBub3Qgc3lzLnBs
YXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJykgb3Igc3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMywg
Nik6Ci0gICAgICAgIHJldHVybgotCi0gICAgIyBiYWlsIG91dCBpZiBgYHN0cmVhbWBgIGRvZXNu
J3Qgc2VlbSBsaWtlIGEgcHJvcGVyIGBgaW9gYCBzdHJlYW0gKCMyNjY2KQotICAgIGlmIG5vdCBo
YXNhdHRyKHN0cmVhbSwgJ2J1ZmZlcicpOgotICAgICAgICByZXR1cm4KLQotICAgIGJ1ZmZlcmVk
ID0gaGFzYXR0cihzdHJlYW0uYnVmZmVyLCAncmF3JykKLSAgICByYXdfc3Rkb3V0ID0gc3RyZWFt
LmJ1ZmZlci5yYXcgaWYgYnVmZmVyZWQgZWxzZSBzdHJlYW0uYnVmZmVyCi0KLSAgICBpZiBub3Qg
aXNpbnN0YW5jZShyYXdfc3Rkb3V0LCBpby5fV2luZG93c0NvbnNvbGVJTyk6Ci0gICAgICAgIHJl
dHVybgotCi0gICAgZGVmIF9yZW9wZW5fc3RkaW8oZiwgbW9kZSk6Ci0gICAgICAgIGlmIG5vdCBi
dWZmZXJlZCBhbmQgbW9kZVswXSA9PSAndyc6Ci0gICAgICAgICAgICBidWZmZXJpbmcgPSAwCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBidWZmZXJpbmcgPSAtMQotCi0gICAgICAgIHJldHVy
biBpby5UZXh0SU9XcmFwcGVyKAotICAgICAgICAgICAgb3Blbihvcy5kdXAoZi5maWxlbm8oKSks
IG1vZGUsIGJ1ZmZlcmluZyksCi0gICAgICAgICAgICBmLmVuY29kaW5nLAotICAgICAgICAgICAg
Zi5lcnJvcnMsCi0gICAgICAgICAgICBmLm5ld2xpbmVzLAotICAgICAgICAgICAgZi5saW5lX2J1
ZmZlcmluZykKLQotICAgIHN5cy5fX3N0ZGluX18gPSBzeXMuc3RkaW4gPSBfcmVvcGVuX3N0ZGlv
KHN5cy5zdGRpbiwgJ3JiJykKLSAgICBzeXMuX19zdGRvdXRfXyA9IHN5cy5zdGRvdXQgPSBfcmVv
cGVuX3N0ZGlvKHN5cy5zdGRvdXQsICd3YicpCi0gICAgc3lzLl9fc3RkZXJyX18gPSBzeXMuc3Rk
ZXJyID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3RkZXJyLCAnd2InKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9jb21wYXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU2MGZiZWMzOTc1NTU3NDdmYzE0YTNhYWUy
Mzg2ODY2ODc4YzE4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDMy
MiArMCwwIEBACi0iIiIKLXB5dGhvbiB2ZXJzaW9uIGNvbXBhdGliaWxpdHkgY29kZQotIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBmdW5jdG9vbHMKLWltcG9ydCBpbnNwZWN0
Ci1pbXBvcnQgcmUKLWltcG9ydCBzeXMKLQotaW1wb3J0IHB5Ci0KLWltcG9ydCBfcHl0ZXN0Ci1m
cm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09NRQotCi10cnk6Ci0gICAgaW1w
b3J0IGVudW0KLWV4Y2VwdCBJbXBvcnRFcnJvcjogICMgcHJhZ21hOiBubyBjb3ZlcgotICAgICMg
T25seSBhdmFpbGFibGUgaW4gUHl0aG9uIDMuNCsgb3IgYXMgYSBiYWNrcG9ydAotICAgIGVudW0g
PSBOb25lCi0KLQotX1BZMyA9IHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkKLV9QWTIgPSBub3Qg
X1BZMwotCi0KLWlmIF9QWTM6Ci0gICAgZnJvbSBpbnNwZWN0IGltcG9ydCBzaWduYXR1cmUsIFBh
cmFtZXRlciBhcyBQYXJhbWV0ZXIKLWVsc2U6Ci0gICAgZnJvbSBmdW5jc2lncyBpbXBvcnQgc2ln
bmF0dXJlLCBQYXJhbWV0ZXIgYXMgUGFyYW1ldGVyCi0KLQotTm9uZVR5cGUgPSB0eXBlKE5vbmUp
Ci1OT1RTRVQgPSBvYmplY3QoKQotCi1QWTM1ID0gc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDMs
IDUpCi1QWTM2ID0gc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDMsIDYpCi1NT0RVTEVfTk9UX0ZP
VU5EX0VSUk9SID0gJ01vZHVsZU5vdEZvdW5kRXJyb3InIGlmIFBZMzYgZWxzZSAnSW1wb3J0RXJy
b3InCi0KLQotZGVmIF9mb3JtYXRfYXJncyhmdW5jKToKLSAgICByZXR1cm4gc3RyKHNpZ25hdHVy
ZShmdW5jKSkKLQotCi1pc2Z1bmN0aW9uID0gaW5zcGVjdC5pc2Z1bmN0aW9uCi1pc2NsYXNzID0g
aW5zcGVjdC5pc2NsYXNzCi0jIHVzZWQgdG8gd29yayBhcm91bmQgYSBweXRob24yIGV4Y2VwdGlv
biBpbmZvIGxlYWsKLWV4Y19jbGVhciA9IGdldGF0dHIoc3lzLCAnZXhjX2NsZWFyJywgbGFtYmRh
OiBOb25lKQotIyBUaGUgdHlwZSBvZiByZS5jb21waWxlIG9iamVjdHMgaXMgbm90IGV4cG9zZWQg
aW4gUHl0aG9uLgotUkVHRVhfVFlQRSA9IHR5cGUocmUuY29tcGlsZSgnJykpCi0KLQotZGVmIGlz
X2dlbmVyYXRvcihmdW5jKToKLSAgICBnZW5mdW5jID0gaW5zcGVjdC5pc2dlbmVyYXRvcmZ1bmN0
aW9uKGZ1bmMpCi0gICAgcmV0dXJuIGdlbmZ1bmMgYW5kIG5vdCBpc2Nvcm91dGluZWZ1bmN0aW9u
KGZ1bmMpCi0KLQotZGVmIGlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYyk6Ci0gICAgIiIiUmV0dXJu
IFRydWUgaWYgZnVuYyBpcyBhIGRlY29yYXRlZCBjb3JvdXRpbmUgZnVuY3Rpb24uCi0KLSAgICBO
b3RlOiBjb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gUHl0aG9uIDMuNSdzIGJ1aWx0aW4gY291cm91
dGluZXMucHkgdG8gYXZvaWQgaW1wb3J0IGFzeW5jaW8gZGlyZWN0bHksCi0gICAgd2hpY2ggaW4g
dHVybnMgYWxzbyBpbml0aWFsaXplcyB0aGUgImxvZ2dpbmciIG1vZHVsZSBhcyBzaWRlLWVmZmVj
dCAoc2VlIGlzc3VlICM4KS4KLSAgICAiIiIKLSAgICByZXR1cm4gKGdldGF0dHIoZnVuYywgJ19p
c19jb3JvdXRpbmUnLCBGYWxzZSkgb3IKLSAgICAgICAgICAgIChoYXNhdHRyKGluc3BlY3QsICdp
c2Nvcm91dGluZWZ1bmN0aW9uJykgYW5kIGluc3BlY3QuaXNjb3JvdXRpbmVmdW5jdGlvbihmdW5j
KSkpCi0KLQotZGVmIGdldGxvY2F0aW9uKGZ1bmN0aW9uLCBjdXJkaXIpOgotICAgIGZuID0gcHku
cGF0aC5sb2NhbChpbnNwZWN0LmdldGZpbGUoZnVuY3Rpb24pKQotICAgIGxpbmVubyA9IHB5LmJ1
aWx0aW4uX2dldGNvZGUoZnVuY3Rpb24pLmNvX2ZpcnN0bGluZW5vCi0gICAgaWYgZm4ucmVsdG8o
Y3VyZGlyKToKLSAgICAgICAgZm4gPSBmbi5yZWx0byhjdXJkaXIpCi0gICAgcmV0dXJuICIlczol
ZCIgJSAoZm4sIGxpbmVubyArIDEpCi0KLQotZGVmIG51bV9tb2NrX3BhdGNoX2FyZ3MoZnVuY3Rp
b24pOgotICAgICIiIiByZXR1cm4gbnVtYmVyIG9mIGFyZ3VtZW50cyB1c2VkIHVwIGJ5IG1vY2sg
YXJndW1lbnRzIChpZiBhbnkpICIiIgotICAgIHBhdGNoaW5ncyA9IGdldGF0dHIoZnVuY3Rpb24s
ICJwYXRjaGluZ3MiLCBOb25lKQotICAgIGlmIG5vdCBwYXRjaGluZ3M6Ci0gICAgICAgIHJldHVy
biAwCi0gICAgbW9jayA9IHN5cy5tb2R1bGVzLmdldCgibW9jayIsIHN5cy5tb2R1bGVzLmdldCgi
dW5pdHRlc3QubW9jayIsIE5vbmUpKQotICAgIGlmIG1vY2sgaXMgbm90IE5vbmU6Ci0gICAgICAg
IHJldHVybiBsZW4oW3AgZm9yIHAgaW4gcGF0Y2hpbmdzCi0gICAgICAgICAgICAgICAgICAgIGlm
IG5vdCBwLmF0dHJpYnV0ZV9uYW1lIGFuZCBwLm5ldyBpcyBtb2NrLkRFRkFVTFRdKQotICAgIHJl
dHVybiBsZW4ocGF0Y2hpbmdzKQotCi0KLWRlZiBnZXRmdW5jYXJnbmFtZXMoZnVuY3Rpb24sIGlz
X21ldGhvZD1GYWxzZSwgY2xzPU5vbmUpOgotICAgICIiIlJldHVybnMgdGhlIG5hbWVzIG9mIGEg
ZnVuY3Rpb24ncyBtYW5kYXRvcnkgYXJndW1lbnRzLgotCi0gICAgVGhpcyBzaG91bGQgcmV0dXJu
IHRoZSBuYW1lcyBvZiBhbGwgZnVuY3Rpb24gYXJndW1lbnRzIHRoYXQ6Ci0gICAgICAgICogQXJl
bid0IGJvdW5kIHRvIGFuIGluc3RhbmNlIG9yIHR5cGUgYXMgaW4gaW5zdGFuY2Ugb3IgY2xhc3Mg
bWV0aG9kcy4KLSAgICAgICAgKiBEb24ndCBoYXZlIGRlZmF1bHQgdmFsdWVzLgotICAgICAgICAq
IEFyZW4ndCBib3VuZCB3aXRoIGZ1bmN0b29scy5wYXJ0aWFsLgotICAgICAgICAqIEFyZW4ndCBy
ZXBsYWNlZCB3aXRoIG1vY2tzLgotCi0gICAgVGhlIGlzX21ldGhvZCBhbmQgY2xzIGFyZ3VtZW50
cyBpbmRpY2F0ZSB0aGF0IHRoZSBmdW5jdGlvbiBzaG91bGQKLSAgICBiZSB0cmVhdGVkIGFzIGEg
Ym91bmQgbWV0aG9kIGV2ZW4gdGhvdWdoIGl0J3Mgbm90IHVubGVzcywgb25seSBpbgotICAgIHRo
ZSBjYXNlIG9mIGNscywgdGhlIGZ1bmN0aW9uIGlzIGEgc3RhdGljIG1ldGhvZC4KLQotICAgIEBS
b25ueVBmYW5uc2NobWlkdDogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcmVmYWN0b3JlZCB3aGVu
IHdlCi0gICAgcmV2aXNpdCBmaXh0dXJlcy4gVGhlIGZpeHR1cmUgbWVjaGFuaXNtIHNob3VsZCBh
c2sgdGhlIG5vZGUgZm9yCi0gICAgdGhlIGZpeHR1cmUgbmFtZXMsIGFuZCBub3QgdHJ5IHRvIG9i
dGFpbiBkaXJlY3RseSBmcm9tIHRoZQotICAgIGZ1bmN0aW9uIG9iamVjdCB3ZWxsIGFmdGVyIGNv
bGxlY3Rpb24gaGFzIG9jY3VycmVkLgotCi0gICAgIiIiCi0gICAgIyBUaGUgcGFyYW1ldGVycyBh
dHRyaWJ1dGUgb2YgYSBTaWduYXR1cmUgb2JqZWN0IGNvbnRhaW5zIGFuCi0gICAgIyBvcmRlcmVk
IG1hcHBpbmcgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIFBhcmFtZXRlciBpbnN0YW5jZXMuICBUaGlz
Ci0gICAgIyBjcmVhdGVzIGEgdHVwbGUgb2YgdGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJzIHRo
YXQgZG9uJ3QgaGF2ZQotICAgICMgZGVmYXVsdHMuCi0gICAgYXJnX25hbWVzID0gdHVwbGUocC5u
YW1lIGZvciBwIGluIHNpZ25hdHVyZShmdW5jdGlvbikucGFyYW1ldGVycy52YWx1ZXMoKQotICAg
ICAgICAgICAgICAgICAgICAgIGlmIChwLmtpbmQgaXMgUGFyYW1ldGVyLlBPU0lUSU9OQUxfT1Jf
S0VZV09SRCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICBwLmtpbmQgaXMgUGFyYW1ldGVy
LktFWVdPUkRfT05MWSkgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgcC5kZWZhdWx0IGlzIFBh
cmFtZXRlci5lbXB0eSkKLSAgICAjIElmIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHRyZWF0ZWQg
YXMgYSBib3VuZCBtZXRob2QgZXZlbiB0aG91Z2gKLSAgICAjIGl0J3MgcGFzc2VkIGFzIGFuIHVu
Ym91bmQgbWV0aG9kIG9yIGZ1bmN0aW9uLCByZW1vdmUgdGhlIGZpcnN0Ci0gICAgIyBwYXJhbWV0
ZXIgbmFtZS4KLSAgICBpZiAoaXNfbWV0aG9kIG9yCi0gICAgICAgIChjbHMgYW5kIG5vdCBpc2lu
c3RhbmNlKGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24uX19uYW1lX18sIE5vbmUpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNtZXRob2QpKSk6Ci0gICAgICAgIGFyZ19u
YW1lcyA9IGFyZ19uYW1lc1sxOl0KLSAgICAjIFJlbW92ZSBhbnkgbmFtZXMgdGhhdCB3aWxsIGJl
IHJlcGxhY2VkIHdpdGggbW9ja3MuCi0gICAgaWYgaGFzYXR0cihmdW5jdGlvbiwgIl9fd3JhcHBl
ZF9fIik6Ci0gICAgICAgIGFyZ19uYW1lcyA9IGFyZ19uYW1lc1tudW1fbW9ja19wYXRjaF9hcmdz
KGZ1bmN0aW9uKTpdCi0gICAgcmV0dXJuIGFyZ19uYW1lcwotCi0KLWlmIF9QWTM6Ci0gICAgU1RS
SU5HX1RZUEVTID0gYnl0ZXMsIHN0cgotICAgIFVOSUNPREVfVFlQRVMgPSBzdHIsCi0KLSAgICBp
ZiBQWTM1OgotICAgICAgICBkZWYgX2J5dGVzX3RvX2FzY2lpKHZhbCk6Ci0gICAgICAgICAgICBy
ZXR1cm4gdmFsLmRlY29kZSgnYXNjaWknLCAnYmFja3NsYXNocmVwbGFjZScpCi0gICAgZWxzZToK
LSAgICAgICAgZGVmIF9ieXRlc190b19hc2NpaSh2YWwpOgotICAgICAgICAgICAgaWYgdmFsOgot
ICAgICAgICAgICAgICAgICMgc291cmNlOiBodHRwOi8vZ29vLmdsL2JHc253QwotICAgICAgICAg
ICAgICAgIGVuY29kZWRfYnl0ZXMsIF8gPSBjb2RlY3MuZXNjYXBlX2VuY29kZSh2YWwpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGVuY29kZWRfYnl0ZXMuZGVjb2RlKCdhc2NpaScpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgZW1wdHkgYnl0ZXMgY3Jhc2hlcyBjb2RlY3Mu
ZXNjYXBlX2VuY29kZSAoIzEwODcpCi0gICAgICAgICAgICAgICAgcmV0dXJuICcnCi0KLSAgICBk
ZWYgYXNjaWlfZXNjYXBlZCh2YWwpOgotICAgICAgICAiIiJJZiB2YWwgaXMgcHVyZSBhc2NpaSwg
cmV0dXJucyBpdCBhcyBhIHN0cigpLiAgT3RoZXJ3aXNlLCBlc2NhcGVzCi0gICAgICAgIGJ5dGVz
IG9iamVjdHMgaW50byBhIHNlcXVlbmNlIG9mIGVzY2FwZWQgYnl0ZXM6Ci0KLSAgICAgICAgYidc
eGMzXHhiNFx4YzVceGQ2JyAtPiB1J1xceGMzXFx4YjRcXHhjNVxceGQ2JwotCi0gICAgICAgIGFu
ZCBlc2NhcGVzIHVuaWNvZGUgb2JqZWN0cyBpbnRvIGEgc2VxdWVuY2Ugb2YgZXNjYXBlZCB1bmlj
b2RlCi0gICAgICAgIGlkcywgZS5nLjoKLQotICAgICAgICAnNFxcblZcXFUwMDA0M2VmYVxceDBl
TVhXQlxceDFlXFx1MzAyOFxcdTE1ZmRcXHhjZFxcVTAwMDdkOTQ0JwotCi0gICAgICAgIG5vdGU6
Ci0gICAgICAgICAgIHRoZSBvYnZpb3VzICJ2LmRlY29kZSgndW5pY29kZS1lc2NhcGUnKSIgd2ls
bCByZXR1cm4KLSAgICAgICAgICAgdmFsaWQgdXRmLTggdW5pY29kZSBpZiBpdCBmaW5kcyB0aGVt
IGluIGJ5dGVzLCBidXQgd2UKLSAgICAgICAgICAgd2FudCB0byByZXR1cm4gZXNjYXBlZCBieXRl
cyBmb3IgYW55IGJ5dGUsIGV2ZW4gaWYgdGhleSBtYXRjaAotICAgICAgICAgICBhIHV0Zi04IHN0
cmluZy4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIGJ5dGVzKToK
LSAgICAgICAgICAgIHJldHVybiBfYnl0ZXNfdG9fYXNjaWkodmFsKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNvZGVfZXNjYXBlJykuZGVjb2RlKCdh
c2NpaScpCi1lbHNlOgotICAgIFNUUklOR19UWVBFUyA9IGJ5dGVzLCBzdHIsIHVuaWNvZGUKLSAg
ICBVTklDT0RFX1RZUEVTID0gdW5pY29kZSwKLQotICAgIGRlZiBhc2NpaV9lc2NhcGVkKHZhbCk6
Ci0gICAgICAgICIiIkluIHB5MiBieXRlcyBhbmQgc3RyIGFyZSB0aGUgc2FtZSB0eXBlLCBzbyBy
ZXR1cm4gaWYgaXQncyBhIGJ5dGVzCi0gICAgICAgIG9iamVjdCwgcmV0dXJuIGl0IHVuY2hhbmdl
ZCBpZiBpdCBpcyBhIGZ1bGwgYXNjaWkgc3RyaW5nLAotICAgICAgICBvdGhlcndpc2UgZXNjYXBl
IGl0IGludG8gaXRzIGJpbmFyeSBmb3JtLgotCi0gICAgICAgIElmIGl0J3MgYSB1bmljb2RlIHN0
cmluZywgY2hhbmdlIHRoZSB1bmljb2RlIGNoYXJhY3RlcnMgaW50bwotICAgICAgICB1bmljb2Rl
IGVzY2FwZXMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRl
cyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUo
J2FzY2lpJykKLSAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3N0cmluZy1lc2NhcGUnKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNvZGUtZXNjYXBlJykKLQotCi1k
ZWYgZ2V0X3JlYWxfZnVuYyhvYmopOgotICAgICIiIiBnZXRzIHRoZSByZWFsIGZ1bmN0aW9uIG9i
amVjdCBvZiB0aGUgKHBvc3NpYmx5KSB3cmFwcGVkIG9iamVjdCBieQotICAgIGZ1bmN0b29scy53
cmFwcyBvciBmdW5jdG9vbHMucGFydGlhbC4KLSAgICAiIiIKLSAgICBzdGFydF9vYmogPSBvYmoK
LSAgICBmb3IgaSBpbiByYW5nZSgxMDApOgotICAgICAgICBuZXdfb2JqID0gZ2V0YXR0cihvYmos
ICdfX3dyYXBwZWRfXycsIE5vbmUpCi0gICAgICAgIGlmIG5ld19vYmogaXMgTm9uZToKLSAgICAg
ICAgICAgIGJyZWFrCi0gICAgICAgIG9iaiA9IG5ld19vYmoKLSAgICBlbHNlOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgKCJjb3VsZCBub3QgZmluZCByZWFsIGZ1bmN0
aW9uIG9mIHtzdGFydH0iCi0gICAgICAgICAgICAgIlxuc3RvcHBlZCBhdCB7Y3VycmVudH0iKS5m
b3JtYXQoCi0gICAgICAgICAgICAgICAgc3RhcnQ9cHkuaW8uc2FmZXJlcHIoc3RhcnRfb2JqKSwK
LSAgICAgICAgICAgICAgICBjdXJyZW50PXB5LmlvLnNhZmVyZXByKG9iaikpKQotICAgIGlmIGlz
aW5zdGFuY2Uob2JqLCBmdW5jdG9vbHMucGFydGlhbCk6Ci0gICAgICAgIG9iaiA9IG9iai5mdW5j
Ci0gICAgcmV0dXJuIG9iagotCi0KLWRlZiBnZXRmc2xpbmVubyhvYmopOgotICAgICMgeHh4IGxl
dCBkZWNvcmF0b3JzIGV0YyBzcGVjaWZ5IGEgc2FuZSBvcmRlcmluZwotICAgIG9iaiA9IGdldF9y
ZWFsX2Z1bmMob2JqKQotICAgIGlmIGhhc2F0dHIob2JqLCAncGxhY2VfYXMnKToKLSAgICAgICAg
b2JqID0gb2JqLnBsYWNlX2FzCi0gICAgZnNsaW5lbm8gPSBfcHl0ZXN0Ll9jb2RlLmdldGZzbGlu
ZW5vKG9iaikKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShmc2xpbmVub1sxXSwgaW50KSwgb2JqCi0g
ICAgcmV0dXJuIGZzbGluZW5vCi0KLQotZGVmIGdldGltZnVuYyhmdW5jKToKLSAgICB0cnk6Ci0g
ICAgICAgIHJldHVybiBmdW5jLl9fZnVuY19fCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgot
ICAgICAgICByZXR1cm4gZnVuYwotCi0KLWRlZiBzYWZlX2dldGF0dHIob2JqZWN0LCBuYW1lLCBk
ZWZhdWx0KToKLSAgICAiIiIgTGlrZSBnZXRhdHRyIGJ1dCByZXR1cm4gZGVmYXVsdCB1cG9uIGFu
eSBFeGNlcHRpb24gb3IgYW55IE91dGNvbWVFeGNlcHRpb24uCi0KLSAgICBBdHRyaWJ1dGUgYWNj
ZXNzIGNhbiBwb3RlbnRpYWxseSBmYWlsIGZvciAnZXZpbCcgUHl0aG9uIG9iamVjdHMuCi0gICAg
U2VlIGlzc3VlICMyMTQuCi0gICAgSXQgY2F0Y2hlcyBPdXRjb21lRXhjZXB0aW9uIGJlY2F1c2Ug
b2YgIzI0OTAgKGlzc3VlICM1ODApLCBuZXcgb3V0Y29tZXMgYXJlIGRlcml2ZWQgZnJvbSBCYXNl
RXhjZXB0aW9uCi0gICAgaW5zdGVhZCBvZiBFeGNlcHRpb24gKGZvciBtb3JlIGRldGFpbHMgY2hl
Y2sgIzI3MDcpCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZ2V0YXR0cihvYmpl
Y3QsIG5hbWUsIGRlZmF1bHQpCi0gICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAgcmV0
dXJuIGRlZmF1bHQKLQotCi1kZWYgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0ZWRfc3VjY2Vzc19hX2Zh
aWx1cmUoKToKLSAgICAiIiJSZXR1cm4gaWYgdGhlIHRlc3Qgc3VpdGUgc2hvdWxkIGZhaWwgaWYg
YSBAZXhwZWN0ZWRGYWlsdXJlIHVuaXR0ZXN0IHRlc3QgUEFTU0VTLgotCi0gICAgRnJvbSBodHRw
czovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3QuaHRtbD9oaWdobGlnaHQ9dW5p
dHRlc3QjdW5pdHRlc3QuVGVzdFJlc3VsdC53YXNTdWNjZXNzZnVsOgotICAgICAgICBDaGFuZ2Vk
IGluIHZlcnNpb24gMy40OiBSZXR1cm5zIEZhbHNlIGlmIHRoZXJlIHdlcmUgYW55Ci0gICAgICAg
IHVuZXhwZWN0ZWRTdWNjZXNzZXMgZnJvbSB0ZXN0cyBtYXJrZWQgd2l0aCB0aGUgZXhwZWN0ZWRG
YWlsdXJlKCkgZGVjb3JhdG9yLgotICAgICIiIgotICAgIHJldHVybiBzeXMudmVyc2lvbl9pbmZv
ID49ICgzLCA0KQotCi0KLWlmIF9QWTM6Ci0gICAgZGVmIHNhZmVfc3RyKHYpOgotICAgICAgICAi
IiJyZXR1cm5zIHYgYXMgc3RyaW5nIiIiCi0gICAgICAgIHJldHVybiBzdHIodikKLWVsc2U6Ci0g
ICAgZGVmIHNhZmVfc3RyKHYpOgotICAgICAgICAiIiJyZXR1cm5zIHYgYXMgc3RyaW5nLCBjb252
ZXJ0aW5nIHRvIGFzY2lpIGlmIG5lY2Vzc2FyeSIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICByZXR1cm4gc3RyKHYpCi0gICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3I6Ci0gICAgICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKLSAgICAgICAgICAgICAgICB2ID0gdW5p
Y29kZSh2KQotICAgICAgICAgICAgZXJyb3JzID0gJ3JlcGxhY2UnCi0gICAgICAgICAgICByZXR1
cm4gdi5lbmNvZGUoJ3V0Zi04JywgZXJyb3JzKQotCi0KLUNPTExFQ1RfRkFLRU1PRFVMRV9BVFRS
SUJVVEVTID0gKAotICAgICdDb2xsZWN0b3InLAotICAgICdNb2R1bGUnLAotICAgICdHZW5lcmF0
b3InLAotICAgICdGdW5jdGlvbicsCi0gICAgJ0luc3RhbmNlJywKLSAgICAnU2Vzc2lvbicsCi0g
ICAgJ0l0ZW0nLAotICAgICdDbGFzcycsCi0gICAgJ0ZpbGUnLAotICAgICdfZmlsbGZ1bmNhcmdz
JywKLSkKLQotCi1kZWYgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZSgpOgotICAgIGZyb20gdHlw
ZXMgaW1wb3J0IE1vZHVsZVR5cGUKLSAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgcHl0ZXN0LmNvbGxl
Y3QgPSBNb2R1bGVUeXBlKCdweXRlc3QuY29sbGVjdCcpCi0gICAgcHl0ZXN0LmNvbGxlY3QuX19h
bGxfXyA9IFtdICAjIHVzZWQgZm9yIHNldG5zCi0gICAgZm9yIGF0dHIgaW4gQ09MTEVDVF9GQUtF
TU9EVUxFX0FUVFJJQlVURVM6Ci0gICAgICAgIHNldGF0dHIocHl0ZXN0LmNvbGxlY3QsIGF0dHIs
IGdldGF0dHIocHl0ZXN0LCBhdHRyKSkKLQotCi1pZiBfUFkyOgotICAgICMgV2l0aG91dCB0aGlz
IHRoZSB0ZXN0X2R1cGZpbGVfb25fdGV4dGlvIHdpbGwgZmFpbCwgb3RoZXJ3aXNlIENhcHR1cmVJ
TyBjb3VsZCBkaXJlY3RseSBpbmhlcml0IGZyb20gU3RyaW5nSU8uCi0gICAgZnJvbSBweS5pbyBp
bXBvcnQgVGV4dElPCi0KLSAgICBjbGFzcyBDYXB0dXJlSU8oVGV4dElPKToKLQotICAgICAgICBA
cHJvcGVydHkKLSAgICAgICAgZGVmIGVuY29kaW5nKHNlbGYpOgotICAgICAgICAgICAgcmV0dXJu
IGdldGF0dHIoc2VsZiwgJ19lbmNvZGluZycsICdVVEYtOCcpCi0KLWVsc2U6Ci0gICAgaW1wb3J0
IGlvCi0KLSAgICBjbGFzcyBDYXB0dXJlSU8oaW8uVGV4dElPV3JhcHBlcik6Ci0gICAgICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgICAgIHN1cGVyKENhcHR1cmVJTywgc2VsZikuX19p
bml0X18oCi0gICAgICAgICAgICAgICAgaW8uQnl0ZXNJTygpLAotICAgICAgICAgICAgICAgIGVu
Y29kaW5nPSdVVEYtOCcsIG5ld2xpbmU9JycsIHdyaXRlX3Rocm91Z2g9VHJ1ZSwKLSAgICAgICAg
ICAgICkKLQotICAgICAgICBkZWYgZ2V0dmFsdWUoc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5idWZmZXIuZ2V0dmFsdWUoKS5kZWNvZGUoJ1VURi04JykKLQotCi1jbGFzcyBGdW5jYXJn
bmFtZXNDb21wYXRBdHRyKG9iamVjdCk6Ci0gICAgIiIiIGhlbHBlciBjbGFzcyBzbyB0aGF0IE1l
dGFmdW5jLCBGdW5jdGlvbiBhbmQgRml4dHVyZVJlcXVlc3QKLSAgICBkb24ndCBuZWVkIHRvIGVh
Y2ggZGVmaW5lIHRoZSAiZnVuY2FyZ25hbWVzIiBjb21wYXRpYmlsaXR5IGF0dHJpYnV0ZS4KLSAg
ICAiIiIKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnVuY2FyZ25hbWVzKHNlbGYpOgotICAgICAg
ICAiIiIgYWxpYXMgYXR0cmlidXRlIGZvciBgYGZpeHR1cmVuYW1lc2BgIGZvciBwcmUtMi4zIGNv
bXBhdGliaWxpdHkiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuZml4dHVyZW5hbWVzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
Y29uZmlnLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTljODA3OWQ0MTU5ODZj
MThiMWYzZmY2NGQyMDc1NDJlNWU0MzFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29uZmlnLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMTQwMCArMCwwIEBACi0iIiIgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGluaS1maWxl
IGFuZCBjb25mdGVzdC5weSBwcm9jZXNzaW5nLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBhcmdwYXJz
ZQotaW1wb3J0IHNobGV4Ci1pbXBvcnQgdHJhY2ViYWNrCi1pbXBvcnQgdHlwZXMKLWltcG9ydCB3
YXJuaW5ncwotCi1pbXBvcnQgc2l4Ci1pbXBvcnQgcHkKLSMgRE9OJ3QgaW1wb3J0IHB5dGVzdCBo
ZXJlIGJlY2F1c2UgaXQgY2F1c2VzIGltcG9ydCBjeWNsZSB0cm91YmxlcwotaW1wb3J0IHN5cwot
aW1wb3J0IG9zCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IF9weXRlc3QuaG9va3NwZWMg
ICMgdGhlIGV4dGVuc2lvbiBwb2ludCBkZWZpbml0aW9ucwotaW1wb3J0IF9weXRlc3QuYXNzZXJ0
aW9uCi1mcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIsIEhv
b2tzcGVjTWFya2VyCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBzYWZlX3N0cgotCi1ob29r
aW1wbCA9IEhvb2tpbXBsTWFya2VyKCJweXRlc3QiKQotaG9va3NwZWMgPSBIb29rc3BlY01hcmtl
cigicHl0ZXN0IikKLQotIyBweXRlc3Qgc3RhcnR1cAotIwotCi0KLWNsYXNzIENvbmZ0ZXN0SW1w
b3J0RmFpbHVyZShFeGNlcHRpb24pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBleGNp
bmZvKToKLSAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIHBhdGgsIGV4Y2luZm8pCi0g
ICAgICAgIHNlbGYucGF0aCA9IHBhdGgKLSAgICAgICAgc2VsZi5leGNpbmZvID0gZXhjaW5mbwot
Ci0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIGV0eXBlLCBldmFsdWUsIGV0YiA9IHNl
bGYuZXhjaW5mbwotICAgICAgICBmb3JtYXR0ZWQgPSB0cmFjZWJhY2suZm9ybWF0X3RiKGV0YikK
LSAgICAgICAgIyBUaGUgbGV2ZWwgb2YgdGhlIHRyYWNlYmFja3Mgd2Ugd2FudCB0byBwcmludCBp
cyBoYW5kIGNyYWZ0ZWQgOigKLSAgICAgICAgcmV0dXJuIHJlcHIoZXZhbHVlKSArICdcbicgKyAn
Jy5qb2luKGZvcm1hdHRlZFsyOl0pCi0KLQotZGVmIG1haW4oYXJncz1Ob25lLCBwbHVnaW5zPU5v
bmUpOgotICAgICIiIiByZXR1cm4gZXhpdCBjb2RlLCBhZnRlciBwZXJmb3JtaW5nIGFuIGluLXBy
b2Nlc3MgdGVzdCBydW4uCi0KLSAgICA6YXJnIGFyZ3M6IGxpc3Qgb2YgY29tbWFuZCBsaW5lIGFy
Z3VtZW50cy4KLQotICAgIDphcmcgcGx1Z2luczogbGlzdCBvZiBwbHVnaW4gb2JqZWN0cyB0byBi
ZSBhdXRvLXJlZ2lzdGVyZWQgZHVyaW5nCi0gICAgICAgICAgICAgICAgICBpbml0aWFsaXphdGlv
bi4KLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbmZpZyA9
IF9wcmVwYXJlY29uZmlnKGFyZ3MsIHBsdWdpbnMpCi0gICAgICAgIGV4Y2VwdCBDb25mdGVzdElt
cG9ydEZhaWx1cmUgYXMgZToKLSAgICAgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIo
c3lzLnN0ZGVycikKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHRyYWNlYmFjay5mb3JtYXRfZXhj
ZXB0aW9uKCplLmV4Y2luZm8pOgotICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZS5yc3RyaXAo
KSwgcmVkPVRydWUpCi0gICAgICAgICAgICB0dy5saW5lKCJFUlJPUjogY291bGQgbm90IGxvYWQg
JXNcbiIgJSAoZS5wYXRoKSwgcmVkPVRydWUpCi0gICAgICAgICAgICByZXR1cm4gNAotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcu
aG9vay5weXRlc3RfY21kbGluZV9tYWluKGNvbmZpZz1jb25maWcpCi0gICAgICAgICAgICBmaW5h
bGx5OgotICAgICAgICAgICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKLSAgICBl
eGNlcHQgVXNhZ2VFcnJvciBhcyBlOgotICAgICAgICBmb3IgbXNnIGluIGUuYXJnczoKLSAgICAg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVSUk9SOiAlc1xuIiAlIChtc2csKSkKLSAgICAgICAg
cmV0dXJuIDQKLQotCi1jbGFzcyBjbWRsaW5lOiAgIyBjb21wYXRpYmlsaXR5IG5hbWVzcGFjZQot
ICAgIG1haW4gPSBzdGF0aWNtZXRob2QobWFpbikKLQotCi1jbGFzcyBVc2FnZUVycm9yKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiIGVycm9yIGluIHB5dGVzdCB1c2FnZSBvciBpbnZvY2F0aW9uIiIiCi0K
LQotY2xhc3MgUHJpbnRIZWxwKEV4Y2VwdGlvbik6Ci0gICAgIiIiUmFpc2VkIHdoZW4gcHl0ZXN0
IHNob3VsZCBwcmludCBpdCdzIGhlbHAgdG8gc2tpcCB0aGUgcmVzdCBvZiB0aGUKLSAgICBhcmd1
bWVudCBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uLiIiIgotICAgIHBhc3MKLQotCi1kZWYgZmlsZW5h
bWVfYXJnKHBhdGgsIG9wdG5hbWUpOgotICAgICIiIiBBcmdwYXJzZSB0eXBlIHZhbGlkYXRvciBm
b3IgZmlsZW5hbWUgYXJndW1lbnRzLgotCi0gICAgOnBhdGg6IHBhdGggb2YgZmlsZW5hbWUKLSAg
ICA6b3B0bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uCi0gICAgIiIiCi0gICAgaWYgb3MucGF0aC5p
c2RpcihwYXRoKToKLSAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiezB9IG11c3QgYmUgYSBmaWxl
bmFtZSwgZ2l2ZW46IHsxfSIuZm9ybWF0KG9wdG5hbWUsIHBhdGgpKQotICAgIHJldHVybiBwYXRo
Ci0KLQotZGVmIGRpcmVjdG9yeV9hcmcocGF0aCwgb3B0bmFtZSk6Ci0gICAgIiIiQXJncGFyc2Ug
dHlwZSB2YWxpZGF0b3IgZm9yIGRpcmVjdG9yeSBhcmd1bWVudHMuCi0KLSAgICA6cGF0aDogcGF0
aCBvZiBkaXJlY3RvcnkKLSAgICA6b3B0bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uCi0gICAgIiIi
Ci0gICAgaWYgbm90IG9zLnBhdGguaXNkaXIocGF0aCk6Ci0gICAgICAgIHJhaXNlIFVzYWdlRXJy
b3IoInswfSBtdXN0IGJlIGEgZGlyZWN0b3J5LCBnaXZlbjogezF9Ii5mb3JtYXQob3B0bmFtZSwg
cGF0aCkpCi0gICAgcmV0dXJuIHBhdGgKLQotCi1kZWZhdWx0X3BsdWdpbnMgPSAoCi0gICAgIm1h
cmsgbWFpbiB0ZXJtaW5hbCBydW5uZXIgcHl0aG9uIGZpeHR1cmVzIGRlYnVnZ2luZyB1bml0dGVz
dCBjYXB0dXJlIHNraXBwaW5nICIKLSAgICAidG1wZGlyIG1vbmtleXBhdGNoIHJlY3dhcm4gcGFz
dGViaW4gaGVscGNvbmZpZyBub3NlIGFzc2VydGlvbiAiCi0gICAgImp1bml0eG1sIHJlc3VsdGxv
ZyBkb2N0ZXN0IGNhY2hlcHJvdmlkZXIgZnJlZXplX3N1cHBvcnQgIgotICAgICJzZXR1cG9ubHkg
c2V0dXBwbGFuIHdhcm5pbmdzIGxvZ2dpbmciKS5zcGxpdCgpCi0KLQotYnVpbHRpbl9wbHVnaW5z
ID0gc2V0KGRlZmF1bHRfcGx1Z2lucykKLWJ1aWx0aW5fcGx1Z2lucy5hZGQoInB5dGVzdGVyIikK
LQotCi1kZWYgZ2V0X2NvbmZpZygpOgotICAgICMgc3Vic2VxdWVudCBjYWxscyB0byBtYWluIHdp
bGwgY3JlYXRlIGEgZnJlc2ggaW5zdGFuY2UKLSAgICBwbHVnaW5tYW5hZ2VyID0gUHl0ZXN0UGx1
Z2luTWFuYWdlcigpCi0gICAgY29uZmlnID0gQ29uZmlnKHBsdWdpbm1hbmFnZXIpCi0gICAgZm9y
IHNwZWMgaW4gZGVmYXVsdF9wbHVnaW5zOgotICAgICAgICBwbHVnaW5tYW5hZ2VyLmltcG9ydF9w
bHVnaW4oc3BlYykKLSAgICByZXR1cm4gY29uZmlnCi0KLQotZGVmIGdldF9wbHVnaW5fbWFuYWdl
cigpOgotICAgICIiIgotICAgIE9idGFpbiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUKLSAgICA6cHk6
Y2xhc3M6YF9weXRlc3QuY29uZmlnLlB5dGVzdFBsdWdpbk1hbmFnZXJgLCB3aXRoIGRlZmF1bHQg
cGx1Z2lucwotICAgIGFscmVhZHkgbG9hZGVkLgotCi0gICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUg
dXNlZCBieSBpbnRlZ3JhdGlvbiB3aXRoIG90aGVyIHRvb2xzLCBsaWtlIGhvb2tpbmcKLSAgICBp
bnRvIHB5dGVzdCB0byBydW4gdGVzdHMgaW50byBhbiBJREUuCi0gICAgIiIiCi0gICAgcmV0dXJu
IGdldF9jb25maWcoKS5wbHVnaW5tYW5hZ2VyCi0KLQotZGVmIF9wcmVwYXJlY29uZmlnKGFyZ3M9
Tm9uZSwgcGx1Z2lucz1Ob25lKToKLSAgICB3YXJuaW5nID0gTm9uZQotICAgIGlmIGFyZ3MgaXMg
Tm9uZToKLSAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQotICAgIGVsaWYgaXNpbnN0YW5jZShh
cmdzLCBweS5wYXRoLmxvY2FsKToKLSAgICAgICAgYXJncyA9IFtzdHIoYXJncyldCi0gICAgZWxp
ZiBub3QgaXNpbnN0YW5jZShhcmdzLCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2UoYXJncywgc3RyKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vdCBh
IHN0cmluZyBvciBhcmd1bWVudCBsaXN0OiAlciIgJSAoYXJncywpKQotICAgICAgICBhcmdzID0g
c2hsZXguc3BsaXQoYXJncywgcG9zaXg9c3lzLnBsYXRmb3JtICE9ICJ3aW4zMiIpCi0gICAgICAg
IGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotICAgICAgICB3YXJuaW5nID0gZGVwcmVj
YXRlZC5NQUlOX1NUUl9BUkdTCi0gICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCi0gICAgcGx1Z2lu
bWFuYWdlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgdHJ5OgotICAgICAgICBpZiBwbHVn
aW5zOgotICAgICAgICAgICAgZm9yIHBsdWdpbiBpbiBwbHVnaW5zOgotICAgICAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UocGx1Z2luLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAg
ICAgICAgcGx1Z2lubWFuYWdlci5jb25zaWRlcl9wbHVnaW5hcmcocGx1Z2luKQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIucmVnaXN0ZXIo
cGx1Z2luKQotICAgICAgICBpZiB3YXJuaW5nOgotICAgICAgICAgICAgY29uZmlnLndhcm4oJ0Mx
Jywgd2FybmluZykKLSAgICAgICAgcmV0dXJuIHBsdWdpbm1hbmFnZXIuaG9vay5weXRlc3RfY21k
bGluZV9wYXJzZSgKLSAgICAgICAgICAgIHBsdWdpbm1hbmFnZXI9cGx1Z2lubWFuYWdlciwgYXJn
cz1hcmdzKQotICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgotICAgICAgICBjb25maWcuX2Vuc3Vy
ZV91bmNvbmZpZ3VyZSgpCi0gICAgICAgIHJhaXNlCi0KLQotY2xhc3MgUHl0ZXN0UGx1Z2luTWFu
YWdlcihQbHVnaW5NYW5hZ2VyKToKLSAgICAiIiIKLSAgICBPdmVyd3JpdGVzIDpweTpjbGFzczpg
cGx1Z2d5LlBsdWdpbk1hbmFnZXIgPHBsdWdneS5QbHVnaW5NYW5hZ2VyPmAgdG8gYWRkIHB5dGVz
dC1zcGVjaWZpYwotICAgIGZ1bmN0aW9uYWxpdHk6Ci0KLSAgICAqIGxvYWRpbmcgcGx1Z2lucyBm
cm9tIHRoZSBjb21tYW5kIGxpbmUsIGBgUFlURVNUX1BMVUdJTmBgIGVudiB2YXJpYWJsZSBhbmQK
LSAgICAgIGBgcHl0ZXN0X3BsdWdpbnNgYCBnbG9iYWwgdmFyaWFibGVzIGZvdW5kIGluIHBsdWdp
bnMgYmVpbmcgbG9hZGVkOwotICAgICogYGBjb25mdGVzdC5weWBgIGxvYWRpbmcgZHVyaW5nIHN0
YXJ0LXVwOwotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzdXBl
cihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5fX2luaXRfXygicHl0ZXN0IiwgaW1wbHByZWZp
eD0icHl0ZXN0XyIpCi0gICAgICAgIHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMgPSBzZXQoKQotCi0g
ICAgICAgICMgc3RhdGUgcmVsYXRlZCB0byBsb2NhbCBjb25mdGVzdCBwbHVnaW5zCi0gICAgICAg
IHNlbGYuX3BhdGgyY29uZm1vZHMgPSB7fQotICAgICAgICBzZWxmLl9jb25mdGVzdHBhdGgybW9k
ID0ge30KLSAgICAgICAgc2VsZi5fY29uZmN1dGRpciA9IE5vbmUKLSAgICAgICAgc2VsZi5fbm9j
b25mdGVzdCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2R1cGxpY2F0ZXBhdGhzID0gc2V0KCkKLQot
ICAgICAgICBzZWxmLmFkZF9ob29rc3BlY3MoX3B5dGVzdC5ob29rc3BlYykKLSAgICAgICAgc2Vs
Zi5yZWdpc3RlcihzZWxmKQotICAgICAgICBpZiBvcy5lbnZpcm9uLmdldCgnUFlURVNUX0RFQlVH
Jyk6Ci0gICAgICAgICAgICBlcnIgPSBzeXMuc3RkZXJyCi0gICAgICAgICAgICBlbmNvZGluZyA9
IGdldGF0dHIoZXJyLCAnZW5jb2RpbmcnLCAndXRmOCcpCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgZXJyID0gcHkuaW8uZHVwZmlsZShlcnIsIGVuY29kaW5nPWVuY29kaW5nKQot
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAg
ICAgICAgICBzZWxmLnRyYWNlLnJvb3Quc2V0d3JpdGVyKGVyci53cml0ZSkKLSAgICAgICAgICAg
IHNlbGYuZW5hYmxlX3RyYWNpbmcoKQotCi0gICAgICAgICMgQ29uZmlnLl9jb25zaWRlcl9pbXBv
cnRob29rIHdpbGwgc2V0IGEgcmVhbCBvYmplY3QgaWYgcmVxdWlyZWQuCi0gICAgICAgIHNlbGYu
cmV3cml0ZV9ob29rID0gX3B5dGVzdC5hc3NlcnRpb24uRHVtbXlSZXdyaXRlSG9vaygpCi0KLSAg
ICBkZWYgYWRkaG9va3Moc2VsZiwgbW9kdWxlX29yX2NsYXNzKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIC4uIGRlcHJlY2F0ZWQ6OiAyLjgKLQotICAgICAgICBVc2UgOnB5Om1ldGg6YHBsdWdneS5Q
bHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MgPFBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcz5g
Ci0gICAgICAgIGluc3RlYWQuCi0gICAgICAgICIiIgotICAgICAgICB3YXJuaW5nID0gZGljdChj
b2RlPSJJMiIsCi0gICAgICAgICAgICAgICAgICAgICAgIGZzbG9jYXRpb249X3B5dGVzdC5fY29k
ZS5nZXRmc2xpbmVubyhzeXMuX2dldGZyYW1lKDEpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
bm9kZWlkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InVzZSBwbHVnaW5t
YW5hZ2VyLmFkZF9ob29rc3BlY3MgaW5zdGVhZCBvZiAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlcHJlY2F0ZWQgYWRkaG9va3MoKSBtZXRob2QuIikKLSAgICAgICAgc2VsZi5f
d2Fybih3YXJuaW5nKQotICAgICAgICByZXR1cm4gc2VsZi5hZGRfaG9va3NwZWNzKG1vZHVsZV9v
cl9jbGFzcykKLQotICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNlbGYsIHBsdWdpbiwgbmFt
ZSk6Ci0gICAgICAgICMgcHl0ZXN0IGhvb2tzIGFyZSBhbHdheXMgcHJlZml4ZWQgd2l0aCBweXRl
c3RfCi0gICAgICAgICMgc28gd2UgYXZvaWQgYWNjZXNzaW5nIHBvc3NpYmx5IG5vbi1yZWFkYWJs
ZSBhdHRyaWJ1dGVzCi0gICAgICAgICMgKHNlZSBpc3N1ZSAjMTA3MykKLSAgICAgICAgaWYgbm90
IG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAg
ICMgaWdub3JlIHNvbWUgaGlzdG9yaWMgc3BlY2lhbCBuYW1lcyB3aGljaCBjYW4gbm90IGJlIGhv
b2tzIGFueXdheQotICAgICAgICBpZiBuYW1lID09ICJweXRlc3RfcGx1Z2lucyIgb3IgbmFtZS5z
dGFydHN3aXRoKCJweXRlc3RfZnVuY2FyZ19fIik6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICBtZXRob2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKLSAgICAgICAgb3B0cyA9IHN1cGVy
KFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnBhcnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBu
YW1lKQotICAgICAgICBpZiBvcHRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZm9yIG5hbWUg
aW4gKCJ0cnlmaXJzdCIsICJ0cnlsYXN0IiwgIm9wdGlvbmFsaG9vayIsICJob29rd3JhcHBlciIp
OgotICAgICAgICAgICAgICAgIG9wdHMuc2V0ZGVmYXVsdChuYW1lLCBoYXNhdHRyKG1ldGhvZCwg
bmFtZSkpCi0gICAgICAgIHJldHVybiBvcHRzCi0KLSAgICBkZWYgcGFyc2VfaG9va3NwZWNfb3B0
cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MsIG5hbWUpOgotICAgICAgICBvcHRzID0gc3VwZXIoUHl0
ZXN0UGx1Z2luTWFuYWdlciwgc2VsZikucGFyc2VfaG9va3NwZWNfb3B0cygKLSAgICAgICAgICAg
IG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAgICAgICAgaWYgb3B0cyBpcyBOb25lOgotICAgICAg
ICAgICAgbWV0aG9kID0gZ2V0YXR0cihtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCi0gICAgICAgICAg
ICBpZiBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKLSAgICAgICAgICAgICAgICBvcHRzID0g
eyJmaXJzdHJlc3VsdCI6IGhhc2F0dHIobWV0aG9kLCAiZmlyc3RyZXN1bHQiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJoaXN0b3JpYyI6IGhhc2F0dHIobWV0aG9kLCAiaGlzdG9yaWMiKX0K
LSAgICAgICAgcmV0dXJuIG9wdHMKLQotICAgIGRlZiByZWdpc3RlcihzZWxmLCBwbHVnaW4sIG5h
bWU9Tm9uZSk6Ci0gICAgICAgIGlmIG5hbWUgPT0gJ3B5dGVzdF9jYXRjaGxvZyc6Ci0gICAgICAg
ICAgICBzZWxmLl93YXJuKCdweXRlc3QtY2F0Y2hsb2cgcGx1Z2luIGhhcyBiZWVuIG1lcmdlZCBp
bnRvIHRoZSBjb3JlLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICdwbGVhc2UgcmVtb3ZlIGl0
IGZyb20geW91ciByZXF1aXJlbWVudHMuJykKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBy
ZXQgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5yZWdpc3RlcihwbHVnaW4sIG5h
bWUpCi0gICAgICAgIGlmIHJldDoKLSAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfcGx1Z2lu
X3JlZ2lzdGVyZWQuY2FsbF9oaXN0b3JpYygKLSAgICAgICAgICAgICAgICBrd2FyZ3M9ZGljdChw
bHVnaW49cGx1Z2luLCBtYW5hZ2VyPXNlbGYpKQotCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNl
KHBsdWdpbiwgdHlwZXMuTW9kdWxlVHlwZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25zaWRl
cl9tb2R1bGUocGx1Z2luKQotICAgICAgICByZXR1cm4gcmV0Ci0KLSAgICBkZWYgZ2V0cGx1Z2lu
KHNlbGYsIG5hbWUpOgotICAgICAgICAjIHN1cHBvcnQgZGVwcmVjYXRlZCBuYW1pbmcgYmVjYXVz
ZSBwbHVnaW5zICh4ZGlzdCBlLmcuKSB1c2UgaXQKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3Bs
dWdpbihuYW1lKQotCi0gICAgZGVmIGhhc3BsdWdpbihzZWxmLCBuYW1lKToKLSAgICAgICAgIiIi
UmV0dXJuIFRydWUgaWYgdGhlIHBsdWdpbiB3aXRoIHRoZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVy
ZWQuIiIiCi0gICAgICAgIHJldHVybiBib29sKHNlbGYuZ2V0X3BsdWdpbihuYW1lKSkKLQotICAg
IGRlZiBweXRlc3RfY29uZmlndXJlKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgICMgWFhYIG5vdyB0
aGF0IHRoZSBwbHVnaW5tYW5hZ2VyIGV4cG9zZXMgaG9va2ltcGwodHJ5Zmlyc3QuLi4pCi0gICAg
ICAgICMgd2Ugc2hvdWxkIHJlbW92ZSB0cnlmaXJzdC90cnlsYXN0IGFzIG1hcmtlcnMKLSAgICAg
ICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidHJ5Zmlyc3Q6IG1hcmsgYSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0
aW9uIHN1Y2ggdGhhdCB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGx1
Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGZpcnN0L2FzIGVhcmx5IGFzIHBvc3Np
YmxlLiIpCi0gICAgICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyeWxhc3Q6IG1hcmsgYSBob29rIGltcGxlbWVu
dGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGxhc3QvYXMgbGF0
ZSBhcyBwb3NzaWJsZS4iKQotCi0gICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UpOgotICAgICAg
ICBrd2FyZ3MgPSBtZXNzYWdlIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwgZGljdCkgZWxzZSB7Ci0g
ICAgICAgICAgICAnY29kZSc6ICdJMScsCi0gICAgICAgICAgICAnbWVzc2FnZSc6IG1lc3NhZ2Us
Ci0gICAgICAgICAgICAnZnNsb2NhdGlvbic6IE5vbmUsCi0gICAgICAgICAgICAnbm9kZWlkJzog
Tm9uZSwKLSAgICAgICAgfQotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2xvZ3dhcm5pbmcuY2Fs
bF9oaXN0b3JpYyhrd2FyZ3M9a3dhcmdzKQotCi0gICAgIwotICAgICMgaW50ZXJuYWwgQVBJIGZv
ciBsb2NhbCBjb25mdGVzdCBwbHVnaW4gaGFuZGxpbmcKLSAgICAjCi0gICAgZGVmIF9zZXRfaW5p
dGlhbF9jb25mdGVzdHMoc2VsZiwgbmFtZXNwYWNlKToKLSAgICAgICAgIiIiIGxvYWQgaW5pdGlh
bCBjb25mdGVzdCBmaWxlcyBnaXZlbiBhIHByZXBhcnNlZCAibmFtZXNwYWNlIi4KLSAgICAgICAg
ICAgIEFzIGNvbmZ0ZXN0IGZpbGVzIG1heSBhZGQgdGhlaXIgb3duIGNvbW1hbmQgbGluZSBvcHRp
b25zCi0gICAgICAgICAgICB3aGljaCBoYXZlIGFyZ3VtZW50cyAoJy0tbXktb3B0IHNvbWVwYXRo
Jykgd2UgbWlnaHQgZ2V0IHNvbWUKLSAgICAgICAgICAgIGZhbHNlIHBvc2l0aXZlcy4gIEFsbCBi
dWlsdGluIGFuZCAzcmQgcGFydHkgcGx1Z2lucyB3aWxsIGhhdmUKLSAgICAgICAgICAgIGJlZW4g
bG9hZGVkLCBob3dldmVyLCBzbyBjb21tb24gb3B0aW9ucyB3aWxsIG5vdCBjb25mdXNlIG91ciBs
b2dpYwotICAgICAgICAgICAgaGVyZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGN1cnJlbnQgPSBw
eS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2VsZi5fY29uZmN1dGRpciA9IGN1cnJlbnQuam9pbihu
YW1lc3BhY2UuY29uZmN1dGRpciwgYWJzPVRydWUpIFwKLSAgICAgICAgICAgIGlmIG5hbWVzcGFj
ZS5jb25mY3V0ZGlyIGVsc2UgTm9uZQotICAgICAgICBzZWxmLl9ub2NvbmZ0ZXN0ID0gbmFtZXNw
YWNlLm5vY29uZnRlc3QKLSAgICAgICAgdGVzdHBhdGhzID0gbmFtZXNwYWNlLmZpbGVfb3JfZGly
Ci0gICAgICAgIGZvdW5kYW5jaG9yID0gRmFsc2UKLSAgICAgICAgZm9yIHBhdGggaW4gdGVzdHBh
dGhzOgotICAgICAgICAgICAgcGF0aCA9IHN0cihwYXRoKQotICAgICAgICAgICAgIyByZW1vdmUg
bm9kZS1pZCBzeW50YXgKLSAgICAgICAgICAgIGkgPSBwYXRoLmZpbmQoIjo6IikKLSAgICAgICAg
ICAgIGlmIGkgIT0gLTE6Ci0gICAgICAgICAgICAgICAgcGF0aCA9IHBhdGhbOmldCi0gICAgICAg
ICAgICBhbmNob3IgPSBjdXJyZW50LmpvaW4ocGF0aCwgYWJzPTEpCi0gICAgICAgICAgICBpZiBl
eGlzdHMoYW5jaG9yKTogICMgd2UgZm91bmQgc29tZSBmaWxlIG9iamVjdAotICAgICAgICAgICAg
ICAgIHNlbGYuX3RyeV9sb2FkX2NvbmZ0ZXN0KGFuY2hvcikKLSAgICAgICAgICAgICAgICBmb3Vu
ZGFuY2hvciA9IFRydWUKLSAgICAgICAgaWYgbm90IGZvdW5kYW5jaG9yOgotICAgICAgICAgICAg
c2VsZi5fdHJ5X2xvYWRfY29uZnRlc3QoY3VycmVudCkKLQotICAgIGRlZiBfdHJ5X2xvYWRfY29u
ZnRlc3Qoc2VsZiwgYW5jaG9yKToKLSAgICAgICAgc2VsZi5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGFu
Y2hvcikKLSAgICAgICAgIyBsZXQncyBhbHNvIGNvbnNpZGVyIHRlc3QqIHN1YmRpcnMKLSAgICAg
ICAgaWYgYW5jaG9yLmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAgIGZvciB4IGluIGFuY2hvci5s
aXN0ZGlyKCJ0ZXN0KiIpOgotICAgICAgICAgICAgICAgIGlmIHguY2hlY2soZGlyPTEpOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMoeCkKLQotICAgIGRlZiBf
Z2V0Y29uZnRlc3Rtb2R1bGVzKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBzZWxmLl9ub2NvbmZ0
ZXN0OgotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9wYXRoMmNvbmZtb2RzW3BhdGhdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
LSAgICAgICAgICAgIGlmIHBhdGguaXNmaWxlKCk6Ci0gICAgICAgICAgICAgICAgY2xpc3QgPSBz
ZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMocGF0aC5kaXJwYXRoKCkpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICMgWFhYIHRoZXNlIGRheXMgd2UgbWF5IHJhdGhlciB3YW50IHRv
IHVzZSBjb25maWcucm9vdGRpcgotICAgICAgICAgICAgICAgICMgYW5kIGFsbG93IHVzZXJzIHRv
IG9wdCBpbnRvIGxvb2tpbmcgaW50byB0aGUgcm9vdGRpciBwYXJlbnQKLSAgICAgICAgICAgICAg
ICAjIGRpcmVjdG9yaWVzIGluc3RlYWQgb2YgcmVxdWlyaW5nIHRvIHNwZWNpZnkgY29uZmN1dGRp
cgotICAgICAgICAgICAgICAgIGNsaXN0ID0gW10KLSAgICAgICAgICAgICAgICBmb3IgcGFyZW50
IGluIHBhdGgucGFydHMoKToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY29uZmN1dGRp
ciBhbmQgc2VsZi5fY29uZmN1dGRpci5yZWx0byhwYXJlbnQpOgotICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgY29uZnRlc3RwYXRoID0gcGFyZW50
LmpvaW4oImNvbmZ0ZXN0LnB5IikKLSAgICAgICAgICAgICAgICAgICAgaWYgY29uZnRlc3RwYXRo
LmlzZmlsZSgpOgotICAgICAgICAgICAgICAgICAgICAgICAgbW9kID0gc2VsZi5faW1wb3J0Y29u
ZnRlc3QoY29uZnRlc3RwYXRoKQotICAgICAgICAgICAgICAgICAgICAgICAgY2xpc3QuYXBwZW5k
KG1vZCkKLQotICAgICAgICAgICAgc2VsZi5fcGF0aDJjb25mbW9kc1twYXRoXSA9IGNsaXN0Ci0g
ICAgICAgICAgICByZXR1cm4gY2xpc3QKLQotICAgIGRlZiBfcmdldF93aXRoX2NvbmZtb2Qoc2Vs
ZiwgbmFtZSwgcGF0aCk6Ci0gICAgICAgIG1vZHVsZXMgPSBzZWxmLl9nZXRjb25mdGVzdG1vZHVs
ZXMocGF0aCkKLSAgICAgICAgZm9yIG1vZCBpbiByZXZlcnNlZChtb2R1bGVzKToKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXR1cm4gbW9kLCBnZXRhdHRyKG1vZCwgbmFtZSkK
LSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAgICBjb250
aW51ZQotICAgICAgICByYWlzZSBLZXlFcnJvcihuYW1lKQotCi0gICAgZGVmIF9pbXBvcnRjb25m
dGVzdChzZWxmLCBjb25mdGVzdHBhdGgpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fY29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBhdGhdCi0gICAgICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKLSAgICAgICAgICAgIHBrZ3BhdGggPSBjb25mdGVzdHBhdGgucHlwa2dwYXRoKCkK
LSAgICAgICAgICAgIGlmIHBrZ3BhdGggaXMgTm9uZToKLSAgICAgICAgICAgICAgICBfZW5zdXJl
X3JlbW92ZWRfc3lzbW9kdWxlKGNvbmZ0ZXN0cGF0aC5wdXJlYmFzZW5hbWUpCi0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgbW9kID0gY29uZnRlc3RwYXRoLnB5aW1wb3J0KCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29uZnRl
c3RJbXBvcnRGYWlsdXJlKGNvbmZ0ZXN0cGF0aCwgc3lzLmV4Y19pbmZvKCkpCi0KLSAgICAgICAg
ICAgIHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMuYWRkKG1vZCkKLSAgICAgICAgICAgIHNlbGYuX2Nv
bmZ0ZXN0cGF0aDJtb2RbY29uZnRlc3RwYXRoXSA9IG1vZAotICAgICAgICAgICAgZGlycGF0aCA9
IGNvbmZ0ZXN0cGF0aC5kaXJwYXRoKCkKLSAgICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2VsZi5f
cGF0aDJjb25mbW9kczoKLSAgICAgICAgICAgICAgICBmb3IgcGF0aCwgbW9kcyBpbiBzZWxmLl9w
YXRoMmNvbmZtb2RzLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHBhdGggYW5kIHBh
dGgucmVsdG8oZGlycGF0aCkgb3IgcGF0aCA9PSBkaXJwYXRoOgotICAgICAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1vZCBub3QgaW4gbW9kcwotICAgICAgICAgICAgICAgICAgICAgICAgbW9k
cy5hcHBlbmQobW9kKQotICAgICAgICAgICAgc2VsZi50cmFjZSgibG9hZGVkIGNvbmZ0ZXN0bW9k
dWxlICVyIiAlIChtb2QpKQotICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9jb25mdGVzdChtb2Qp
Ci0gICAgICAgICAgICByZXR1cm4gbW9kCi0KLSAgICAjCi0gICAgIyBBUEkgZm9yIGJvb3RzdHJh
cHBpbmcgcGx1Z2luIGxvYWRpbmcKLSAgICAjCi0gICAgIwotCi0gICAgZGVmIGNvbnNpZGVyX3By
ZXBhcnNlKHNlbGYsIGFyZ3MpOgotICAgICAgICBmb3Igb3B0MSwgb3B0MiBpbiB6aXAoYXJncywg
YXJnc1sxOl0pOgotICAgICAgICAgICAgaWYgb3B0MSA9PSAiLXAiOgotICAgICAgICAgICAgICAg
IHNlbGYuY29uc2lkZXJfcGx1Z2luYXJnKG9wdDIpCi0KLSAgICBkZWYgY29uc2lkZXJfcGx1Z2lu
YXJnKHNlbGYsIGFyZyk6Ci0gICAgICAgIGlmIGFyZy5zdGFydHN3aXRoKCJubzoiKToKLSAgICAg
ICAgICAgIG5hbWUgPSBhcmdbMzpdCi0gICAgICAgICAgICBzZWxmLnNldF9ibG9ja2VkKG5hbWUp
Ci0gICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5zZXRfYmxvY2tlZCgicHl0ZXN0XyIgKyBuYW1lKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5pbXBvcnRfcGx1Z2luKGFyZykKLQotICAgIGRlZiBjb25zaWRl
cl9jb25mdGVzdChzZWxmLCBjb25mdGVzdG1vZHVsZSk6Ci0gICAgICAgIHNlbGYucmVnaXN0ZXIo
Y29uZnRlc3Rtb2R1bGUsIG5hbWU9Y29uZnRlc3Rtb2R1bGUuX19maWxlX18pCi0KLSAgICBkZWYg
Y29uc2lkZXJfZW52KHNlbGYpOgotICAgICAgICBzZWxmLl9pbXBvcnRfcGx1Z2luX3NwZWNzKG9z
LmVudmlyb24uZ2V0KCJQWVRFU1RfUExVR0lOUyIpKQotCi0gICAgZGVmIGNvbnNpZGVyX21vZHVs
ZShzZWxmLCBtb2QpOgotICAgICAgICBzZWxmLl9pbXBvcnRfcGx1Z2luX3NwZWNzKGdldGF0dHIo
bW9kLCAncHl0ZXN0X3BsdWdpbnMnLCBbXSkpCi0KLSAgICBkZWYgX2ltcG9ydF9wbHVnaW5fc3Bl
Y3Moc2VsZiwgc3BlYyk6Ci0gICAgICAgIHBsdWdpbnMgPSBfZ2V0X3BsdWdpbl9zcGVjc19hc19s
aXN0KHNwZWMpCi0gICAgICAgIGZvciBpbXBvcnRfc3BlYyBpbiBwbHVnaW5zOgotICAgICAgICAg
ICAgc2VsZi5pbXBvcnRfcGx1Z2luKGltcG9ydF9zcGVjKQotCi0gICAgZGVmIGltcG9ydF9wbHVn
aW4oc2VsZiwgbW9kbmFtZSk6Ci0gICAgICAgICMgbW9zdCBvZnRlbiBtb2RuYW1lIHJlZmVycyB0
byBidWlsdGluIG1vZHVsZXMsIGUuZy4gInB5dGVzdGVyIiwKLSAgICAgICAgIyAidGVybWluYWwi
IG9yICJjYXB0dXJlIi4gIFRob3NlIHBsdWdpbnMgYXJlIHJlZ2lzdGVyZWQgdW5kZXIgdGhlaXIK
LSAgICAgICAgIyBiYXNlbmFtZSBmb3IgaGlzdG9yaWMgcHVycG9zZXMgYnV0IG11c3QgYmUgaW1w
b3J0ZWQgd2l0aCB0aGUKLSAgICAgICAgIyBfcHl0ZXN0IHByZWZpeC4KLSAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UobW9kbmFtZSwgKHNpeC50ZXh0X3R5cGUsIHN0cikpLCAibW9kdWxlIG5hbWUg
YXMgdGV4dCByZXF1aXJlZCwgZ290ICVyIiAlIG1vZG5hbWUKLSAgICAgICAgbW9kbmFtZSA9IHN0
cihtb2RuYW1lKQotICAgICAgICBpZiBzZWxmLmlzX2Jsb2NrZWQobW9kbmFtZSkgb3Igc2VsZi5n
ZXRfcGx1Z2luKG1vZG5hbWUpIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAg
ICAgIGlmIG1vZG5hbWUgaW4gYnVpbHRpbl9wbHVnaW5zOgotICAgICAgICAgICAgaW1wb3J0c3Bl
YyA9ICJfcHl0ZXN0LiIgKyBtb2RuYW1lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbXBv
cnRzcGVjID0gbW9kbmFtZQotICAgICAgICBzZWxmLnJld3JpdGVfaG9vay5tYXJrX3Jld3JpdGUo
aW1wb3J0c3BlYykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX19pbXBvcnRfXyhpbXBvcnRz
cGVjKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKLSAgICAgICAgICAgIG5ld19l
eGNfdHlwZSA9IEltcG9ydEVycm9yCi0gICAgICAgICAgICBuZXdfZXhjX21lc3NhZ2UgPSAnRXJy
b3IgaW1wb3J0aW5nIHBsdWdpbiAiJXMiOiAlcycgJSAobW9kbmFtZSwgc2FmZV9zdHIoZS5hcmdz
WzBdKSkKLSAgICAgICAgICAgIG5ld19leGMgPSBuZXdfZXhjX3R5cGUobmV3X2V4Y19tZXNzYWdl
KQotCi0gICAgICAgICAgICBzaXgucmVyYWlzZShuZXdfZXhjX3R5cGUsIG5ld19leGMsIHN5cy5l
eGNfaW5mbygpWzJdKQotCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHB5dGVzdCwgJ3Nr
aXAnKSBvciBub3QgaXNpbnN0YW5jZShlLCBweXRlc3Quc2tpcC5FeGNlcHRpb24pOgotICAgICAg
ICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBzZWxmLl93YXJuKCJza2lwcGVkIHBsdWdpbiAl
cjogJXMiICUgKChtb2RuYW1lLCBlLm1zZykpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
bW9kID0gc3lzLm1vZHVsZXNbaW1wb3J0c3BlY10KLSAgICAgICAgICAgIHNlbGYucmVnaXN0ZXIo
bW9kLCBtb2RuYW1lKQotCi0KLWRlZiBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KHNwZWNzKToK
LSAgICAiIiIKLSAgICBQYXJzZXMgYSBsaXN0IG9mICJwbHVnaW4gc3BlY3MiIGFuZCByZXR1cm5z
IGEgbGlzdCBvZiBwbHVnaW4gbmFtZXMuCi0KLSAgICBQbHVnaW4gc3BlY3MgY2FuIGJlIGdpdmVu
IGFzIGEgbGlzdCBvZiBzdHJpbmdzIHNlcGFyYXRlZCBieSAiLCIgb3IgYWxyZWFkeSBhcyBhIGxp
c3QvdHVwbGUgaW4KLSAgICB3aGljaCBjYXNlIGl0IGlzIHJldHVybmVkIGFzIGEgbGlzdC4gU3Bl
Y3MgY2FuIGFsc28gYmUgYE5vbmVgIGluIHdoaWNoIGNhc2UgYW4KLSAgICBlbXB0eSBsaXN0IGlz
IHJldHVybmVkLgotICAgICIiIgotICAgIGlmIHNwZWNzIGlzIG5vdCBOb25lOgotICAgICAgICBp
ZiBpc2luc3RhbmNlKHNwZWNzLCBzdHIpOgotICAgICAgICAgICAgc3BlY3MgPSBzcGVjcy5zcGxp
dCgnLCcpIGlmIHNwZWNzIGVsc2UgW10KLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3BlY3Ms
IChsaXN0LCB0dXBsZSkpOgotICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiUGx1Z2luIHNw
ZWNzIG11c3QgYmUgYSAnLCctc2VwYXJhdGVkIHN0cmluZyBvciBhICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImxpc3QvdHVwbGUgb2Ygc3RyaW5ncyBmb3IgcGx1Z2luIG5hbWVzLiBH
aXZlbjogJXIiICUgc3BlY3MpCi0gICAgICAgIHJldHVybiBsaXN0KHNwZWNzKQotICAgIHJldHVy
biBbXQotCi0KLWNsYXNzIFBhcnNlcjoKLSAgICAiIiIgUGFyc2VyIGZvciBjb21tYW5kIGxpbmUg
YXJndW1lbnRzIGFuZCBpbmktZmlsZSB2YWx1ZXMuCi0KLSAgICA6aXZhciBleHRyYV9pbmZvOiBk
aWN0IG9mIGdlbmVyaWMgcGFyYW0gLT4gdmFsdWUgdG8gZGlzcGxheSBpbiBjYXNlCi0gICAgICAg
IHRoZXJlJ3MgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1c2FnZT1Ob25lLCBwcm9jZXNzb3B0
PU5vbmUpOgotICAgICAgICBzZWxmLl9hbm9ueW1vdXMgPSBPcHRpb25Hcm91cCgiY3VzdG9tIG9w
dGlvbnMiLCBwYXJzZXI9c2VsZikKLSAgICAgICAgc2VsZi5fZ3JvdXBzID0gW10KLSAgICAgICAg
c2VsZi5fcHJvY2Vzc29wdCA9IHByb2Nlc3NvcHQKLSAgICAgICAgc2VsZi5fdXNhZ2UgPSB1c2Fn
ZQotICAgICAgICBzZWxmLl9pbmlkaWN0ID0ge30KLSAgICAgICAgc2VsZi5faW5pbmFtZXMgPSBb
XQotICAgICAgICBzZWxmLmV4dHJhX2luZm8gPSB7fQotCi0gICAgZGVmIHByb2Nlc3NvcHRpb24o
c2VsZiwgb3B0aW9uKToKLSAgICAgICAgaWYgc2VsZi5fcHJvY2Vzc29wdDoKLSAgICAgICAgICAg
IGlmIG9wdGlvbi5kZXN0OgotICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NvcHQob3B0aW9u
KQotCi0gICAgZGVmIGdldGdyb3VwKHNlbGYsIG5hbWUsIGRlc2NyaXB0aW9uPSIiLCBhZnRlcj1O
b25lKToKLSAgICAgICAgIiIiIGdldCAob3IgY3JlYXRlKSBhIG5hbWVkIG9wdGlvbiBHcm91cC4K
LQotICAgICAgICA6bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uIGdyb3VwLgotICAgICAgICA6ZGVz
Y3JpcHRpb246IGxvbmcgZGVzY3JpcHRpb24gZm9yIC0taGVscCBvdXRwdXQuCi0gICAgICAgIDph
ZnRlcjogbmFtZSBvZiBvdGhlciBncm91cCwgdXNlZCBmb3Igb3JkZXJpbmcgLS1oZWxwIG91dHB1
dC4KLQotICAgICAgICBUaGUgcmV0dXJuZWQgZ3JvdXAgb2JqZWN0IGhhcyBhbiBgYGFkZG9wdGlv
bmBgIG1ldGhvZCB3aXRoIHRoZSBzYW1lCi0gICAgICAgIHNpZ25hdHVyZSBhcyA6cHk6ZnVuYzpg
cGFyc2VyLmFkZG9wdGlvbgotICAgICAgICA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZG9wdGlv
bj5gIGJ1dCB3aWxsIGJlIHNob3duIGluIHRoZQotICAgICAgICByZXNwZWN0aXZlIGdyb3VwIGlu
IHRoZSBvdXRwdXQgb2YgYGBweXRlc3QuIC0taGVscGBgLgotICAgICAgICAiIiIKLSAgICAgICAg
Zm9yIGdyb3VwIGluIHNlbGYuX2dyb3VwczoKLSAgICAgICAgICAgIGlmIGdyb3VwLm5hbWUgPT0g
bmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXAKLSAgICAgICAgZ3JvdXAgPSBPcHRp
b25Hcm91cChuYW1lLCBkZXNjcmlwdGlvbiwgcGFyc2VyPXNlbGYpCi0gICAgICAgIGkgPSAwCi0g
ICAgICAgIGZvciBpLCBncnAgaW4gZW51bWVyYXRlKHNlbGYuX2dyb3Vwcyk6Ci0gICAgICAgICAg
ICBpZiBncnAubmFtZSA9PSBhZnRlcjoKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBz
ZWxmLl9ncm91cHMuaW5zZXJ0KGkgKyAxLCBncm91cCkKLSAgICAgICAgcmV0dXJuIGdyb3VwCi0K
LSAgICBkZWYgYWRkb3B0aW9uKHNlbGYsICpvcHRzLCAqKmF0dHJzKToKLSAgICAgICAgIiIiIHJl
Z2lzdGVyIGEgY29tbWFuZCBsaW5lIG9wdGlvbi4KLQotICAgICAgICA6b3B0czogb3B0aW9uIG5h
bWVzLCBjYW4gYmUgc2hvcnQgb3IgbG9uZyBvcHRpb25zLgotICAgICAgICA6YXR0cnM6IHNhbWUg
YXR0cmlidXRlcyB3aGljaCB0aGUgYGBhZGRfb3B0aW9uKClgYCBmdW5jdGlvbiBvZiB0aGUKLSAg
ICAgICAgICAgYGFyZ3BhcnNlIGxpYnJhcnkKLSAgICAgICAgICAgPGh0dHA6Ly9kb2NzLnB5dGhv
bi5vcmcvMi9saWJyYXJ5L2FyZ3BhcnNlLmh0bWw+YF8KLSAgICAgICAgICAgYWNjZXB0cy4KLQot
ICAgICAgICBBZnRlciBjb21tYW5kIGxpbmUgcGFyc2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGUg
b24gdGhlIHB5dGVzdCBjb25maWcKLSAgICAgICAgb2JqZWN0IHZpYSBgYGNvbmZpZy5vcHRpb24u
TkFNRWBgIHdoZXJlIGBgTkFNRWBgIGlzIHVzdWFsbHkgc2V0Ci0gICAgICAgIGJ5IHBhc3Npbmcg
YSBgYGRlc3RgYCBhdHRyaWJ1dGUsIGZvciBleGFtcGxlCi0gICAgICAgIGBgYWRkb3B0aW9uKCIt
LWxvbmciLCBkZXN0PSJOQU1FIiwgLi4uKWBgLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5f
YW5vbnltb3VzLmFkZG9wdGlvbigqb3B0cywgKiphdHRycykKLQotICAgIGRlZiBwYXJzZShzZWxm
LCBhcmdzLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgIGZyb20gX3B5dGVzdC5fYXJnY29tcGxl
dGUgaW1wb3J0IHRyeV9hcmdjb21wbGV0ZQotICAgICAgICBzZWxmLm9wdHBhcnNlciA9IHNlbGYu
X2dldHBhcnNlcigpCi0gICAgICAgIHRyeV9hcmdjb21wbGV0ZShzZWxmLm9wdHBhcnNlcikKLSAg
ICAgICAgcmV0dXJuIHNlbGYub3B0cGFyc2VyLnBhcnNlX2FyZ3MoW3N0cih4KSBmb3IgeCBpbiBh
cmdzXSwgbmFtZXNwYWNlPW5hbWVzcGFjZSkKLQotICAgIGRlZiBfZ2V0cGFyc2VyKHNlbGYpOgot
ICAgICAgICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCBmaWxlc2NvbXBsZXRlcgot
ICAgICAgICBvcHRwYXJzZXIgPSBNeU9wdGlvblBhcnNlcihzZWxmLCBzZWxmLmV4dHJhX2luZm8p
Ci0gICAgICAgIGdyb3VwcyA9IHNlbGYuX2dyb3VwcyArIFtzZWxmLl9hbm9ueW1vdXNdCi0gICAg
ICAgIGZvciBncm91cCBpbiBncm91cHM6Ci0gICAgICAgICAgICBpZiBncm91cC5vcHRpb25zOgot
ICAgICAgICAgICAgICAgIGRlc2MgPSBncm91cC5kZXNjcmlwdGlvbiBvciBncm91cC5uYW1lCi0g
ICAgICAgICAgICAgICAgYXJnZ3JvdXAgPSBvcHRwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKGRl
c2MpCi0gICAgICAgICAgICAgICAgZm9yIG9wdGlvbiBpbiBncm91cC5vcHRpb25zOgotICAgICAg
ICAgICAgICAgICAgICBuID0gb3B0aW9uLm5hbWVzKCkKLSAgICAgICAgICAgICAgICAgICAgYSA9
IG9wdGlvbi5hdHRycygpCi0gICAgICAgICAgICAgICAgICAgIGFyZ2dyb3VwLmFkZF9hcmd1bWVu
dCgqbiwgKiphKQotICAgICAgICAjIGJhc2ggbGlrZSBhdXRvY29tcGxldGlvbiBmb3IgZGlycyAo
YXBwZW5kaW5nICcvJykKLSAgICAgICAgb3B0cGFyc2VyLmFkZF9hcmd1bWVudChGSUxFX09SX0RJ
UiwgbmFyZ3M9JyonKS5jb21wbGV0ZXIgPSBmaWxlc2NvbXBsZXRlcgotICAgICAgICByZXR1cm4g
b3B0cGFyc2VyCi0KLSAgICBkZWYgcGFyc2Vfc2V0b3B0aW9uKHNlbGYsIGFyZ3MsIG9wdGlvbiwg
bmFtZXNwYWNlPU5vbmUpOgotICAgICAgICBwYXJzZWRvcHRpb24gPSBzZWxmLnBhcnNlKGFyZ3Ms
IG5hbWVzcGFjZT1uYW1lc3BhY2UpCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBwYXJzZWRv
cHRpb24uX19kaWN0X18uaXRlbXMoKToKLSAgICAgICAgICAgIHNldGF0dHIob3B0aW9uLCBuYW1l
LCB2YWx1ZSkKLSAgICAgICAgcmV0dXJuIGdldGF0dHIocGFyc2Vkb3B0aW9uLCBGSUxFX09SX0RJ
UikKLQotICAgIGRlZiBwYXJzZV9rbm93bl9hcmdzKHNlbGYsIGFyZ3MsIG5hbWVzcGFjZT1Ob25l
KToKLSAgICAgICAgIiIicGFyc2VzIGFuZCByZXR1cm5zIGEgbmFtZXNwYWNlIG9iamVjdCB3aXRo
IGtub3duIGFyZ3VtZW50cyBhdCB0aGlzCi0gICAgICAgIHBvaW50LgotICAgICAgICAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYucGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhhcmdzLCBuYW1l
c3BhY2U9bmFtZXNwYWNlKVswXQotCi0gICAgZGVmIHBhcnNlX2tub3duX2FuZF91bmtub3duX2Fy
Z3Moc2VsZiwgYXJncywgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICAiIiJwYXJzZXMgYW5kIHJl
dHVybnMgYSBuYW1lc3BhY2Ugb2JqZWN0IHdpdGgga25vd24gYXJndW1lbnRzLCBhbmQKLSAgICAg
ICAgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgdW5rbm93biBhdCB0aGlzIHBvaW50LgotICAgICAg
ICAiIiIKLSAgICAgICAgb3B0cGFyc2VyID0gc2VsZi5fZ2V0cGFyc2VyKCkKLSAgICAgICAgYXJn
cyA9IFtzdHIoeCkgZm9yIHggaW4gYXJnc10KLSAgICAgICAgcmV0dXJuIG9wdHBhcnNlci5wYXJz
ZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2UpCi0KLSAgICBkZWYgYWRkaW5p
KHNlbGYsIG5hbWUsIGhlbHAsIHR5cGU9Tm9uZSwgZGVmYXVsdD1Ob25lKToKLSAgICAgICAgIiIi
IHJlZ2lzdGVyIGFuIGluaS1maWxlIG9wdGlvbi4KLQotICAgICAgICA6bmFtZTogbmFtZSBvZiB0
aGUgaW5pLXZhcmlhYmxlCi0gICAgICAgIDp0eXBlOiB0eXBlIG9mIHRoZSB2YXJpYWJsZSwgY2Fu
IGJlIGBgcGF0aGxpc3RgYCwgYGBhcmdzYGAsIGBgbGluZWxpc3RgYAotICAgICAgICAgICAgICAg
b3IgYGBib29sYGAuCi0gICAgICAgIDpkZWZhdWx0OiBkZWZhdWx0IHZhbHVlIGlmIG5vIGluaS1m
aWxlIG9wdGlvbiBleGlzdHMgYnV0IGlzIHF1ZXJpZWQuCi0KLSAgICAgICAgVGhlIHZhbHVlIG9m
IGluaS12YXJpYWJsZXMgY2FuIGJlIHJldHJpZXZlZCB2aWEgYSBjYWxsIHRvCi0gICAgICAgIDpw
eTpmdW5jOmBjb25maWcuZ2V0aW5pKG5hbWUpIDxfcHl0ZXN0LmNvbmZpZy5Db25maWcuZ2V0aW5p
PmAuCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgdHlwZSBpbiAoTm9uZSwgInBhdGhsaXN0
IiwgImFyZ3MiLCAibGluZWxpc3QiLCAiYm9vbCIpCi0gICAgICAgIHNlbGYuX2luaWRpY3RbbmFt
ZV0gPSAoaGVscCwgdHlwZSwgZGVmYXVsdCkKLSAgICAgICAgc2VsZi5faW5pbmFtZXMuYXBwZW5k
KG5hbWUpCi0KLQotY2xhc3MgQXJndW1lbnRFcnJvcihFeGNlcHRpb24pOgotICAgICIiIgotICAg
IFJhaXNlZCBpZiBhbiBBcmd1bWVudCBpbnN0YW5jZSBpcyBjcmVhdGVkIHdpdGggaW52YWxpZCBv
cgotICAgIGluY29uc2lzdGVudCBhcmd1bWVudHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbXNnLCBvcHRpb24pOgotICAgICAgICBzZWxmLm1zZyA9IG1zZwotICAgICAgICBz
ZWxmLm9wdGlvbl9pZCA9IHN0cihvcHRpb24pCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5vcHRpb25faWQ6Ci0gICAgICAgICAgICByZXR1cm4gIm9wdGlvbiAlczog
JXMiICUgKHNlbGYub3B0aW9uX2lkLCBzZWxmLm1zZykKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLm1zZwotCi0KLWNsYXNzIEFyZ3VtZW50OgotICAgICIiImNsYXNzIHRo
YXQgbWltaWNzIHRoZSBuZWNlc3NhcnkgYmVoYXZpb3VyIG9mIG9wdHBhcnNlLk9wdGlvbgotCi0g
ICAgaXRzIGN1cnJlbnRseSBhIGxlYXN0IGVmZm9ydCBpbXBsZW1lbnRhdGlvbgotICAgIGFuZCBp
Z25vcmluZyBjaG9pY2VzIGFuZCBpbnRlZ2VyIHByZWZpeGVzCi0gICAgaHR0cHM6Ly9kb2NzLnB5
dGhvbi5vcmcvMy9saWJyYXJ5L29wdHBhcnNlLmh0bWwjb3B0cGFyc2Utc3RhbmRhcmQtb3B0aW9u
LXR5cGVzCi0gICAgIiIiCi0gICAgX3R5cF9tYXAgPSB7Ci0gICAgICAgICdpbnQnOiBpbnQsCi0g
ICAgICAgICdzdHJpbmcnOiBzdHIsCi0gICAgICAgICdmbG9hdCc6IGZsb2F0LAotICAgICAgICAn
Y29tcGxleCc6IGNvbXBsZXgsCi0gICAgfQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICpuYW1l
cywgKiphdHRycyk6Ci0gICAgICAgICIiInN0b3JlIHBhcm1zIGluIHByaXZhdGUgdmFycyBmb3Ig
dXNlIGluIGFkZF9hcmd1bWVudCIiIgotICAgICAgICBzZWxmLl9hdHRycyA9IGF0dHJzCi0gICAg
ICAgIHNlbGYuX3Nob3J0X29wdHMgPSBbXQotICAgICAgICBzZWxmLl9sb25nX29wdHMgPSBbXQot
ICAgICAgICBzZWxmLmRlc3QgPSBhdHRycy5nZXQoJ2Rlc3QnKQotICAgICAgICBpZiAnJWRlZmF1
bHQnIGluIChhdHRycy5nZXQoJ2hlbHAnKSBvciAnJyk6Ci0gICAgICAgICAgICB3YXJuaW5ncy53
YXJuKAotICAgICAgICAgICAgICAgICdweXRlc3Qgbm93IHVzZXMgYXJncGFyc2UuICIlZGVmYXVs
dCIgc2hvdWxkIGJlJwotICAgICAgICAgICAgICAgICcgY2hhbmdlZCB0byAiJShkZWZhdWx0KXMi
ICcsCi0gICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAg
IHN0YWNrbGV2ZWw9MykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdHlwID0gYXR0cnNbJ3R5
cGUnXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAjIHRoaXMgbWlnaHQgcmFpc2UgYSBrZXllcnJvciBhcyB3ZWxs
LCBkb24ndCB3YW50IHRvIGNhdGNoIHRoYXQKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodHlw
LCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICBpZiB0eXAgPT0gJ2Nob2ljZSc6
Ci0gICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAgICAgICAg
ICAgICAndHlwZSBhcmd1bWVudCB0byBhZGRvcHRpb24oKSBpcyBhIHN0cmluZyAlci4nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnIEZvciBwYXJzZWFyZyB0aGlzIGlzIG9wdGlvbmFsIGFuZCB3
aGVuIHN1cHBsaWVkJwotICAgICAgICAgICAgICAgICAgICAgICAgJyBzaG91bGQgYmUgYSB0eXBl
LicKLSAgICAgICAgICAgICAgICAgICAgICAgICcgKG9wdGlvbnM6ICVzKScgJSAodHlwLCBuYW1l
cyksCi0gICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBzdGFja2xldmVsPTMpCi0gICAgICAgICAgICAgICAgICAgICMgYXJn
cGFyc2UgZXhwZWN0cyBhIHR5cGUgaGVyZSB0YWtlIGl0IGZyb20KLSAgICAgICAgICAgICAgICAg
ICAgIyB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgZWxlbWVudAotICAgICAgICAgICAgICAgICAgICBh
dHRyc1sndHlwZSddID0gdHlwZShhdHRyc1snY2hvaWNlcyddWzBdKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAgICAgICAgICAg
ICAgICAgICAgICAndHlwZSBhcmd1bWVudCB0byBhZGRvcHRpb24oKSBpcyBhIHN0cmluZyAlci4n
Ci0gICAgICAgICAgICAgICAgICAgICAgICAnIEZvciBwYXJzZWFyZyB0aGlzIHNob3VsZCBiZSBh
IHR5cGUuJwotICAgICAgICAgICAgICAgICAgICAgICAgJyAob3B0aW9uczogJXMpJyAlICh0eXAs
IG5hbWVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKLSAgICAgICAgICAgICAgICAgICAg
YXR0cnNbJ3R5cGUnXSA9IEFyZ3VtZW50Ll90eXBfbWFwW3R5cF0KLSAgICAgICAgICAgICAgICAj
IHVzZWQgaW4gdGVzdF9wYXJzZW9wdCAtPiB0ZXN0X3BhcnNlX2RlZmF1bHRnZXR0ZXIKLSAgICAg
ICAgICAgICAgICBzZWxmLnR5cGUgPSBhdHRyc1sndHlwZSddCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHNlbGYudHlwZSA9IHR5cAotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAjIGF0dHJpYnV0ZSBleGlzdGVuY2UgaXMgdGVzdGVkIGluIENvbmZpZy5fcHJvY2Vzc29wdAot
ICAgICAgICAgICAgc2VsZi5kZWZhdWx0ID0gYXR0cnNbJ2RlZmF1bHQnXQotICAgICAgICBleGNl
cHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIHNlbGYuX3NldF9vcHRfc3Ry
aW5ncyhuYW1lcykKLSAgICAgICAgaWYgbm90IHNlbGYuZGVzdDoKLSAgICAgICAgICAgIGlmIHNl
bGYuX2xvbmdfb3B0czoKLSAgICAgICAgICAgICAgICBzZWxmLmRlc3QgPSBzZWxmLl9sb25nX29w
dHNbMF1bMjpdLnJlcGxhY2UoJy0nLCAnXycpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5kZXN0ID0gc2VsZi5fc2hvcnRf
b3B0c1swXVsxOl0KLSAgICAgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAg
ICduZWVkIGEgbG9uZyBvciBzaG9ydCBvcHRpb24nLCBzZWxmKQotCi0gICAgZGVmIG5hbWVzKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fc2hvcnRfb3B0cyArIHNlbGYuX2xvbmdfb3B0cwot
Ci0gICAgZGVmIGF0dHJzKHNlbGYpOgotICAgICAgICAjIHVwZGF0ZSBhbnkgYXR0cmlidXRlcyBz
ZXQgYnkgcHJvY2Vzc29wdAotICAgICAgICBhdHRycyA9ICdkZWZhdWx0IGRlc3QgaGVscCcuc3Bs
aXQoKQotICAgICAgICBpZiBzZWxmLmRlc3Q6Ci0gICAgICAgICAgICBhdHRycy5hcHBlbmQoc2Vs
Zi5kZXN0KQotICAgICAgICBmb3IgYXR0ciBpbiBhdHRyczoKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICBzZWxmLl9hdHRyc1thdHRyXSA9IGdldGF0dHIoc2VsZiwgYXR0cikKLSAg
ICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0g
ICAgICAgIGlmIHNlbGYuX2F0dHJzLmdldCgnaGVscCcpOgotICAgICAgICAgICAgYSA9IHNlbGYu
X2F0dHJzWydoZWxwJ10KLSAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoJyVkZWZhdWx0JywgJyUo
ZGVmYXVsdClzJykKLSAgICAgICAgICAgICMgYSA9IGEucmVwbGFjZSgnJXByb2cnLCAnJShwcm9n
KXMnKQotICAgICAgICAgICAgc2VsZi5fYXR0cnNbJ2hlbHAnXSA9IGEKLSAgICAgICAgcmV0dXJu
IHNlbGYuX2F0dHJzCi0KLSAgICBkZWYgX3NldF9vcHRfc3RyaW5ncyhzZWxmLCBvcHRzKToKLSAg
ICAgICAgIiIiZGlyZWN0bHkgZnJvbSBvcHRwYXJzZQotCi0gICAgICAgIG1pZ2h0IG5vdCBiZSBu
ZWNlc3NhcnkgYXMgdGhpcyBpcyBwYXNzZWQgdG8gYXJncGFyc2UgbGF0ZXIgb24iIiIKLSAgICAg
ICAgZm9yIG9wdCBpbiBvcHRzOgotICAgICAgICAgICAgaWYgbGVuKG9wdCkgPCAyOgotICAgICAg
ICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJpbnZh
bGlkIG9wdGlvbiBzdHJpbmcgJXI6ICIKLSAgICAgICAgICAgICAgICAgICAgIm11c3QgYmUgYXQg
bGVhc3QgdHdvIGNoYXJhY3RlcnMgbG9uZyIgJSBvcHQsIHNlbGYpCi0gICAgICAgICAgICBlbGlm
IGxlbihvcHQpID09IDI6Ci0gICAgICAgICAgICAgICAgaWYgbm90IChvcHRbMF0gPT0gIi0iIGFu
ZCBvcHRbMV0gIT0gIi0iKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJv
cigKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHNob3J0IG9wdGlvbiBzdHJpbmcg
JXI6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIG9mIHRoZSBmb3JtIC14LCAo
eCBhbnkgbm9uLWRhc2ggY2hhcikiICUgb3B0LAotICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
ZikKLSAgICAgICAgICAgICAgICBzZWxmLl9zaG9ydF9vcHRzLmFwcGVuZChvcHQpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIG5vdCAob3B0WzA6Ml0gPT0gIi0tIiBhbmQg
b3B0WzJdICE9ICItIik6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3Io
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBsb25nIG9wdGlvbiBzdHJpbmcgJXI6
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IHN0YXJ0IHdpdGggLS0sIGZvbGxvd2Vk
IGJ5IG5vbi1kYXNoIiAlIG9wdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpCi0gICAg
ICAgICAgICAgICAgc2VsZi5fbG9uZ19vcHRzLmFwcGVuZChvcHQpCi0KLSAgICBkZWYgX19yZXBy
X18oc2VsZik6Ci0gICAgICAgIGFyZ3MgPSBbXQotICAgICAgICBpZiBzZWxmLl9zaG9ydF9vcHRz
OgotICAgICAgICAgICAgYXJncyArPSBbJ19zaG9ydF9vcHRzOiAnICsgcmVwcihzZWxmLl9zaG9y
dF9vcHRzKV0KLSAgICAgICAgaWYgc2VsZi5fbG9uZ19vcHRzOgotICAgICAgICAgICAgYXJncyAr
PSBbJ19sb25nX29wdHM6ICcgKyByZXByKHNlbGYuX2xvbmdfb3B0cyldCi0gICAgICAgIGFyZ3Mg
Kz0gWydkZXN0OiAnICsgcmVwcihzZWxmLmRlc3QpXQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYs
ICd0eXBlJyk6Ci0gICAgICAgICAgICBhcmdzICs9IFsndHlwZTogJyArIHJlcHIoc2VsZi50eXBl
KV0KLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZGVmYXVsdCcpOgotICAgICAgICAgICAgYXJn
cyArPSBbJ2RlZmF1bHQ6ICcgKyByZXByKHNlbGYuZGVmYXVsdCldCi0gICAgICAgIHJldHVybiAn
QXJndW1lbnQoezB9KScuZm9ybWF0KCcsICcuam9pbihhcmdzKSkKLQotCi1jbGFzcyBPcHRpb25H
cm91cDoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZGVzY3JpcHRpb249IiIsIHBhcnNl
cj1Ob25lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBzZWxmLmRlc2NyaXB0
aW9uID0gZGVzY3JpcHRpb24KLSAgICAgICAgc2VsZi5vcHRpb25zID0gW10KLSAgICAgICAgc2Vs
Zi5wYXJzZXIgPSBwYXJzZXIKLQotICAgIGRlZiBhZGRvcHRpb24oc2VsZiwgKm9wdG5hbWVzLCAq
KmF0dHJzKToKLSAgICAgICAgIiIiIGFkZCBhbiBvcHRpb24gdG8gdGhpcyBncm91cC4KLQotICAg
ICAgICBpZiBhIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIGEgbG9uZyBvcHRpb24gaXMgc3BlY2lmaWVk
IGl0IHdpbGwKLSAgICAgICAgYmUgc3VwcHJlc3NlZCBpbiB0aGUgaGVscC4gYWRkb3B0aW9uKCct
LXR3b3dvcmRzJywgJy0tdHdvLXdvcmRzJykKLSAgICAgICAgcmVzdWx0cyBpbiBoZWxwIHNob3dp
bmcgJy0tdHdvLXdvcmRzJyBvbmx5LCBidXQgLS10d293b3JkcyBnZXRzCi0gICAgICAgIGFjY2Vw
dGVkICoqYW5kKiogdGhlIGF1dG9tYXRpYyBkZXN0aW5hdGlvbiBpcyBpbiBhcmdzLnR3b3dvcmRz
Ci0gICAgICAgICIiIgotICAgICAgICBjb25mbGljdCA9IHNldChvcHRuYW1lcykuaW50ZXJzZWN0
aW9uKAotICAgICAgICAgICAgbmFtZSBmb3Igb3B0IGluIHNlbGYub3B0aW9ucyBmb3IgbmFtZSBp
biBvcHQubmFtZXMoKSkKLSAgICAgICAgaWYgY29uZmxpY3Q6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJvcHRpb24gbmFtZXMgJXMgYWxyZWFkeSBhZGRlZCIgJSBjb25mbGljdCkKLSAg
ICAgICAgb3B0aW9uID0gQXJndW1lbnQoKm9wdG5hbWVzLCAqKmF0dHJzKQotICAgICAgICBzZWxm
Ll9hZGRvcHRpb25faW5zdGFuY2Uob3B0aW9uLCBzaG9ydHVwcGVyPUZhbHNlKQotCi0gICAgZGVm
IF9hZGRvcHRpb24oc2VsZiwgKm9wdG5hbWVzLCAqKmF0dHJzKToKLSAgICAgICAgb3B0aW9uID0g
QXJndW1lbnQoKm9wdG5hbWVzLCAqKmF0dHJzKQotICAgICAgICBzZWxmLl9hZGRvcHRpb25faW5z
dGFuY2Uob3B0aW9uLCBzaG9ydHVwcGVyPVRydWUpCi0KLSAgICBkZWYgX2FkZG9wdGlvbl9pbnN0
YW5jZShzZWxmLCBvcHRpb24sIHNob3J0dXBwZXI9RmFsc2UpOgotICAgICAgICBpZiBub3Qgc2hv
cnR1cHBlcjoKLSAgICAgICAgICAgIGZvciBvcHQgaW4gb3B0aW9uLl9zaG9ydF9vcHRzOgotICAg
ICAgICAgICAgICAgIGlmIG9wdFswXSA9PSAnLScgYW5kIG9wdFsxXS5pc2xvd2VyKCk6Ci0gICAg
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImxvd2VyY2FzZSBzaG9ydG9wdGlvbnMg
cmVzZXJ2ZWQiKQotICAgICAgICBpZiBzZWxmLnBhcnNlcjoKLSAgICAgICAgICAgIHNlbGYucGFy
c2VyLnByb2Nlc3NvcHRpb24ob3B0aW9uKQotICAgICAgICBzZWxmLm9wdGlvbnMuYXBwZW5kKG9w
dGlvbikKLQotCi1jbGFzcyBNeU9wdGlvblBhcnNlcihhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcik6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgZXh0cmFfaW5mbz1Ob25lKToKLSAgICAg
ICAgaWYgbm90IGV4dHJhX2luZm86Ci0gICAgICAgICAgICBleHRyYV9pbmZvID0ge30KLSAgICAg
ICAgc2VsZi5fcGFyc2VyID0gcGFyc2VyCi0gICAgICAgIGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2Vy
Ll9faW5pdF9fKHNlbGYsIHVzYWdlPXBhcnNlci5fdXNhZ2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZF9oZWxwPUZhbHNlLCBmb3JtYXR0ZXJfY2xhc3M9RHJv
cFNob3J0ZXJMb25nSGVscEZvcm1hdHRlcikKLSAgICAgICAgIyBleHRyYV9pbmZvIGlzIGEgZGlj
dCBvZiAocGFyYW0gLT4gdmFsdWUpIHRvIGRpc3BsYXkgaWYgdGhlcmUncwotICAgICAgICAjIGFu
IHVzYWdlIGVycm9yIHRvIHByb3ZpZGUgbW9yZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIHRo
ZSB1c2VyCi0gICAgICAgIHNlbGYuZXh0cmFfaW5mbyA9IGV4dHJhX2luZm8KLQotICAgIGRlZiBw
YXJzZV9hcmdzKHNlbGYsIGFyZ3M9Tm9uZSwgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICAiIiJh
bGxvdyBzcGxpdHRpbmcgb2YgcG9zaXRpb25hbCBhcmd1bWVudHMiIiIKLSAgICAgICAgYXJncywg
YXJndiA9IHNlbGYucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2UpCi0gICAgICAgIGlm
IGFyZ3Y6Ci0gICAgICAgICAgICBmb3IgYXJnIGluIGFyZ3Y6Ci0gICAgICAgICAgICAgICAgaWYg
YXJnIGFuZCBhcmdbMF0gPT0gJy0nOgotICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IFsndW5y
ZWNvZ25pemVkIGFyZ3VtZW50czogJXMnICUgKCcgJy5qb2luKGFyZ3YpKV0KLSAgICAgICAgICAg
ICAgICAgICAgZm9yIGssIHYgaW4gc29ydGVkKHNlbGYuZXh0cmFfaW5mby5pdGVtcygpKToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAlczogJXMnICUgKGssIHYpKQot
ICAgICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKCdcbicuam9pbihsaW5lcykpCi0gICAgICAg
ICAgICBnZXRhdHRyKGFyZ3MsIEZJTEVfT1JfRElSKS5leHRlbmQoYXJndikKLSAgICAgICAgcmV0
dXJuIGFyZ3MKLQotCi1jbGFzcyBEcm9wU2hvcnRlckxvbmdIZWxwRm9ybWF0dGVyKGFyZ3BhcnNl
LkhlbHBGb3JtYXR0ZXIpOgotICAgICIiInNob3J0ZW4gaGVscCBmb3IgbG9uZyBvcHRpb25zIHRo
YXQgZGlmZmVyIG9ubHkgaW4gZXh0cmEgaHlwaGVucwotCi0gICAgLSBjb2xsYXBzZSAqKmxvbmcq
KiBvcHRpb25zIHRoYXQgYXJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgZXh0cmEgaHlwaGVucwotICAg
IC0gc3BlY2lhbCBhY3Rpb24gYXR0cmlidXRlIG1hcF9sb25nX29wdGlvbiBhbGxvd3Mgc3VycHJl
c3NpbmcgYWRkaXRpb25hbAotICAgICAgbG9uZyBvcHRpb25zCi0gICAgLSBzaG9ydGN1dCBpZiB0
aGVyZSBhcmUgb25seSB0d28gb3B0aW9ucyBhbmQgb25lIG9mIHRoZW0gaXMgYSBzaG9ydCBvbmUK
LSAgICAtIGNhY2hlIHJlc3VsdCBvbiBhY3Rpb24gb2JqZWN0IGFzIHRoaXMgaXMgY2FsbGVkIGF0
IGxlYXN0IDIgdGltZXMKLSAgICAiIiIKLQotICAgIGRlZiBfZm9ybWF0X2FjdGlvbl9pbnZvY2F0
aW9uKHNlbGYsIGFjdGlvbik6Ci0gICAgICAgIG9yZ3N0ciA9IGFyZ3BhcnNlLkhlbHBGb3JtYXR0
ZXIuX2Zvcm1hdF9hY3Rpb25faW52b2NhdGlvbihzZWxmLCBhY3Rpb24pCi0gICAgICAgIGlmIG9y
Z3N0ciBhbmQgb3Jnc3RyWzBdICE9ICctJzogICMgb25seSBvcHRpb25hbCBhcmd1bWVudHMKLSAg
ICAgICAgICAgIHJldHVybiBvcmdzdHIKLSAgICAgICAgcmVzID0gZ2V0YXR0cihhY3Rpb24sICdf
Zm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uJywgTm9uZSkKLSAgICAgICAgaWYgcmVzOgotICAg
ICAgICAgICAgcmV0dXJuIHJlcwotICAgICAgICBvcHRpb25zID0gb3Jnc3RyLnNwbGl0KCcsICcp
Ci0gICAgICAgIGlmIGxlbihvcHRpb25zKSA9PSAyIGFuZCAobGVuKG9wdGlvbnNbMF0pID09IDIg
b3IgbGVuKG9wdGlvbnNbMV0pID09IDIpOgotICAgICAgICAgICAgIyBhIHNob3J0Y3V0IGZvciAn
LWgsIC0taGVscCcgb3IgJy0tYWJjJywgJy1hJwotICAgICAgICAgICAgYWN0aW9uLl9mb3JtYXR0
ZWRfYWN0aW9uX2ludm9jYXRpb24gPSBvcmdzdHIKLSAgICAgICAgICAgIHJldHVybiBvcmdzdHIK
LSAgICAgICAgcmV0dXJuX2xpc3QgPSBbXQotICAgICAgICBvcHRpb25fbWFwID0gZ2V0YXR0cihh
Y3Rpb24sICdtYXBfbG9uZ19vcHRpb24nLCB7fSkKLSAgICAgICAgaWYgb3B0aW9uX21hcCBpcyBO
b25lOgotICAgICAgICAgICAgb3B0aW9uX21hcCA9IHt9Ci0gICAgICAgIHNob3J0X2xvbmcgPSB7
fQotICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0gICAgICAgICAgICBpZiBsZW4ob3B0
aW9uKSA9PSAyIG9yIG9wdGlvblsyXSA9PSAnICc6Ci0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIGlmIG5vdCBvcHRpb24uc3RhcnRzd2l0aCgnLS0nKToKLSAgICAgICAgICAg
ICAgICByYWlzZSBBcmd1bWVudEVycm9yKCdsb25nIG9wdGlvbmFsIGFyZ3VtZW50IHdpdGhvdXQg
Ii0tIjogWyVzXScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG9wdGlv
biksIHNlbGYpCi0gICAgICAgICAgICB4eG9wdGlvbiA9IG9wdGlvblsyOl0KLSAgICAgICAgICAg
IGlmIHh4b3B0aW9uLnNwbGl0KClbMF0gbm90IGluIG9wdGlvbl9tYXA6Ci0gICAgICAgICAgICAg
ICAgc2hvcnRlbmVkID0geHhvcHRpb24ucmVwbGFjZSgnLScsICcnKQotICAgICAgICAgICAgICAg
IGlmIHNob3J0ZW5lZCBub3QgaW4gc2hvcnRfbG9uZyBvciBcCi0gICAgICAgICAgICAgICAgICAg
bGVuKHNob3J0X2xvbmdbc2hvcnRlbmVkXSkgPCBsZW4oeHhvcHRpb24pOgotICAgICAgICAgICAg
ICAgICAgICBzaG9ydF9sb25nW3Nob3J0ZW5lZF0gPSB4eG9wdGlvbgotICAgICAgICAjIG5vdyBz
aG9ydF9sb25nIGhhcyBiZWVuIGZpbGxlZCBvdXQgdG8gdGhlIGxvbmdlc3Qgd2l0aCBkYXNoZXMK
LSAgICAgICAgIyAqKmFuZCoqIHdlIGtlZXAgdGhlIHJpZ2h0IG9wdGlvbiBvcmRlcmluZyBmcm9t
IGFkZF9hcmd1bWVudAotICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0gICAgICAgICAg
ICBpZiBsZW4ob3B0aW9uKSA9PSAyIG9yIG9wdGlvblsyXSA9PSAnICc6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuX2xpc3QuYXBwZW5kKG9wdGlvbikKLSAgICAgICAgICAgIGlmIG9wdGlvblsyOl0g
PT0gc2hvcnRfbG9uZy5nZXQob3B0aW9uLnJlcGxhY2UoJy0nLCAnJykpOgotICAgICAgICAgICAg
ICAgIHJldHVybl9saXN0LmFwcGVuZChvcHRpb24ucmVwbGFjZSgnICcsICc9JywgMSkpCi0gICAg
ICAgIGFjdGlvbi5fZm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uID0gJywgJy5qb2luKHJldHVy
bl9saXN0KQotICAgICAgICByZXR1cm4gYWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRp
b24KLQotCi1kZWYgX2Vuc3VyZV9yZW1vdmVkX3N5c21vZHVsZShtb2RuYW1lKToKLSAgICB0cnk6
Ci0gICAgICAgIGRlbCBzeXMubW9kdWxlc1ttb2RuYW1lXQotICAgIGV4Y2VwdCBLZXlFcnJvcjoK
LSAgICAgICAgcGFzcwotCi0KLWNsYXNzIENtZE9wdGlvbnMob2JqZWN0KToKLSAgICAiIiIgaG9s
ZHMgY21kbGluZSBvcHRpb25zIGFzIGF0dHJpYnV0ZXMuIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgdmFsdWVzPSgpKToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUodmFsdWVzKQot
Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxDbWRPcHRpb25zICVy
PiIgJSAoc2VsZi5fX2RpY3RfXywpCi0KLSAgICBkZWYgY29weShzZWxmKToKLSAgICAgICAgcmV0
dXJuIENtZE9wdGlvbnMoc2VsZi5fX2RpY3RfXykKLQotCi1jbGFzcyBOb3RzZXQ6Ci0gICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxOT1RTRVQ+IgotCi0KLW5vdHNldCA9
IE5vdHNldCgpCi1GSUxFX09SX0RJUiA9ICdmaWxlX29yX2RpcicKLQotCi1kZWYgX2l0ZXJfcmV3
cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmlsZXMpOgotICAgIGZvciBmbiBpbiBwYWNrYWdlX2Zp
bGVzOgotICAgICAgICBpc19zaW1wbGVfbW9kdWxlID0gJy8nIG5vdCBpbiBmbiBhbmQgZm4uZW5k
c3dpdGgoJy5weScpCi0gICAgICAgIGlzX3BhY2thZ2UgPSBmbi5jb3VudCgnLycpID09IDEgYW5k
IGZuLmVuZHN3aXRoKCdfX2luaXRfXy5weScpCi0gICAgICAgIGlmIGlzX3NpbXBsZV9tb2R1bGU6
Ci0gICAgICAgICAgICBtb2R1bGVfbmFtZSwgXyA9IG9zLnBhdGguc3BsaXRleHQoZm4pCi0gICAg
ICAgICAgICB5aWVsZCBtb2R1bGVfbmFtZQotICAgICAgICBlbGlmIGlzX3BhY2thZ2U6Ci0gICAg
ICAgICAgICBwYWNrYWdlX25hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZm4pCi0gICAgICAgICAgICB5
aWVsZCBwYWNrYWdlX25hbWUKLQotCi1jbGFzcyBDb25maWcob2JqZWN0KToKLSAgICAiIiIgYWNj
ZXNzIHRvIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBwbHVnaW5tYW5hZ2VyIGFuZCBwbHVnaW4gaG9v
a3MuICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyKToKLSAgICAg
ICAgIzogYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBvcHRpb24gYXMgYXR0cmlidXRlcy4KLSAgICAg
ICAgIzogKGRlcHJlY2F0ZWQpLCB1c2UgOnB5OmZ1bmM6YGdldG9wdGlvbigpIDxfcHl0ZXN0LmNv
bmZpZy5Db25maWcuZ2V0b3B0aW9uPmAgaW5zdGVhZAotICAgICAgICBzZWxmLm9wdGlvbiA9IENt
ZE9wdGlvbnMoKQotICAgICAgICBfYSA9IEZJTEVfT1JfRElSCi0gICAgICAgIHNlbGYuX3BhcnNl
ciA9IFBhcnNlcigKLSAgICAgICAgICAgIHVzYWdlPSIlJShwcm9nKXMgW29wdGlvbnNdIFslc10g
WyVzXSBbLi4uXSIgJSAoX2EsIF9hKSwKLSAgICAgICAgICAgIHByb2Nlc3NvcHQ9c2VsZi5fcHJv
Y2Vzc29wdCwKLSAgICAgICAgKQotICAgICAgICAjOiBhIHBsdWdpbm1hbmFnZXIgaW5zdGFuY2UK
LSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyID0gcGx1Z2lubWFuYWdlcgotICAgICAgICBzZWxm
LnRyYWNlID0gc2VsZi5wbHVnaW5tYW5hZ2VyLnRyYWNlLnJvb3QuZ2V0KCJjb25maWciKQotICAg
ICAgICBzZWxmLmhvb2sgPSBzZWxmLnBsdWdpbm1hbmFnZXIuaG9vawotICAgICAgICBzZWxmLl9p
bmljYWNoZSA9IHt9Ci0gICAgICAgIHNlbGYuX292ZXJyaWRlX2luaSA9ICgpCi0gICAgICAgIHNl
bGYuX29wdDJkZXN0ID0ge30KLSAgICAgICAgc2VsZi5fY2xlYW51cCA9IFtdCi0gICAgICAgIHNl
bGYuX3dhcm4gPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3dhcm4KLSAgICAgICAgc2VsZi5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJweXRlc3Rjb25maWciKQotICAgICAgICBzZWxmLl9jb25m
aWd1cmVkID0gRmFsc2UKLQotICAgICAgICBkZWYgZG9fc2V0bnMoZGljKToKLSAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHNldG5zKHB5dGVzdCwgZGljKQotCi0gICAgICAg
IHNlbGYuaG9vay5weXRlc3RfbmFtZXNwYWNlLmNhbGxfaGlzdG9yaWMoZG9fc2V0bnMsIHt9KQot
ICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2FkZG9wdGlvbi5jYWxsX2hpc3RvcmljKGt3YXJncz1k
aWN0KHBhcnNlcj1zZWxmLl9wYXJzZXIpKQotCi0gICAgZGVmIGFkZF9jbGVhbnVwKHNlbGYsIGZ1
bmMpOgotICAgICAgICAiIiIgQWRkIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNv
bmZpZyBvYmplY3QgZ2V0cyBvdXQgb2YKLSAgICAgICAgdXNlICh1c3VhbGx5IGNvbmluY2lkaW5n
IHdpdGggcHl0ZXN0X3VuY29uZmlndXJlKS4iIiIKLSAgICAgICAgc2VsZi5fY2xlYW51cC5hcHBl
bmQoZnVuYykKLQotICAgIGRlZiBfZG9fY29uZmlndXJlKHNlbGYpOgotICAgICAgICBhc3NlcnQg
bm90IHNlbGYuX2NvbmZpZ3VyZWQKLSAgICAgICAgc2VsZi5fY29uZmlndXJlZCA9IFRydWUKLSAg
ICAgICAgc2VsZi5ob29rLnB5dGVzdF9jb25maWd1cmUuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGlj
dChjb25maWc9c2VsZikpCi0KLSAgICBkZWYgX2Vuc3VyZV91bmNvbmZpZ3VyZShzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5fY29uZmlndXJlZDoKLSAgICAgICAgICAgIHNlbGYuX2NvbmZpZ3VyZWQg
PSBGYWxzZQotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF91bmNvbmZpZ3VyZShjb25maWc9
c2VsZikKLSAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfY29uZmlndXJlLl9jYWxsX2hpc3Rv
cnkgPSBbXQotICAgICAgICB3aGlsZSBzZWxmLl9jbGVhbnVwOgotICAgICAgICAgICAgZmluID0g
c2VsZi5fY2xlYW51cC5wb3AoKQotICAgICAgICAgICAgZmluKCkKLQotICAgIGRlZiB3YXJuKHNl
bGYsIGNvZGUsIG1lc3NhZ2UsIGZzbG9jYXRpb249Tm9uZSwgbm9kZWlkPU5vbmUpOgotICAgICAg
ICAiIiIgZ2VuZXJhdGUgYSB3YXJuaW5nIGZvciB0aGlzIHRlc3Qgc2Vzc2lvbi4gIiIiCi0gICAg
ICAgIHNlbGYuaG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0
KAotICAgICAgICAgICAgY29kZT1jb2RlLCBtZXNzYWdlPW1lc3NhZ2UsCi0gICAgICAgICAgICBm
c2xvY2F0aW9uPWZzbG9jYXRpb24sIG5vZGVpZD1ub2RlaWQpKQotCi0gICAgZGVmIGdldF90ZXJt
aW5hbF93cml0ZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnBsdWdpbm1hbmFnZXIuZ2V0
X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpLl90dwotCi0gICAgZGVmIHB5dGVzdF9jbWRsaW5l
X3BhcnNlKHNlbGYsIHBsdWdpbm1hbmFnZXIsIGFyZ3MpOgotICAgICAgICAjIFJFRjEgYXNzZXJ0
IHNlbGYgPT0gcGx1Z2lubWFuYWdlci5jb25maWcsIChzZWxmLCBwbHVnaW5tYW5hZ2VyLmNvbmZp
ZykKLSAgICAgICAgc2VsZi5wYXJzZShhcmdzKQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAg
ZGVmIG5vdGlmeV9leGNlcHRpb24oc2VsZiwgZXhjaW5mbywgb3B0aW9uPU5vbmUpOgotICAgICAg
ICBpZiBvcHRpb24gYW5kIG9wdGlvbi5mdWxsdHJhY2U6Ci0gICAgICAgICAgICBzdHlsZSA9ICJs
b25nIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3R5bGUgPSAibmF0aXZlIgotICAgICAg
ICBleGNyZXByID0gZXhjaW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2Fscz1nZXRhdHRyKG9wdGlvbiwgJ3Nob3dsb2Nh
bHMnLCBGYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9c3R5
bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICByZXMgPSBz
ZWxmLmhvb2sucHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjcmVwcj1leGNyZXByLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjaW5mbz1leGNpbmZvKQotICAg
ICAgICBpZiBub3QgYW55KHJlcyk6Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBzdHIoZXhjcmVw
cikuc3BsaXQoIlxuIik6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSU5URVJO
QUxFUlJPUj4gJXNcbiIgJSBsaW5lKQotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2go
KQotCi0gICAgZGVmIGN3ZF9yZWxhdGl2ZV9ub2RlaWQoc2VsZiwgbm9kZWlkKToKLSAgICAgICAg
IyBub2RlaWQncyBhcmUgcmVsYXRpdmUgdG8gdGhlIHJvb3RwYXRoLCBjb21wdXRlIHJlbGF0aXZl
IHRvIGN3ZAotICAgICAgICBpZiBzZWxmLmludm9jYXRpb25fZGlyICE9IHNlbGYucm9vdGRpcjoK
LSAgICAgICAgICAgIGZ1bGxwYXRoID0gc2VsZi5yb290ZGlyLmpvaW4obm9kZWlkKQotICAgICAg
ICAgICAgbm9kZWlkID0gc2VsZi5pbnZvY2F0aW9uX2Rpci5iZXN0cmVscGF0aChmdWxscGF0aCkK
LSAgICAgICAgcmV0dXJuIG5vZGVpZAotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGZyb21k
aWN0YXJncyhjbHMsIG9wdGlvbl9kaWN0LCBhcmdzKToKLSAgICAgICAgIiIiIGNvbnN0cnVjdG9y
IHVzZWFibGUgZm9yIHN1YnByb2Nlc3Nlcy4gIiIiCi0gICAgICAgIGNvbmZpZyA9IGdldF9jb25m
aWcoKQotICAgICAgICBjb25maWcub3B0aW9uLl9fZGljdF9fLnVwZGF0ZShvcHRpb25fZGljdCkK
LSAgICAgICAgY29uZmlnLnBhcnNlKGFyZ3MsIGFkZG9wdHM9RmFsc2UpCi0gICAgICAgIGZvciB4
IGluIGNvbmZpZy5vcHRpb24ucGx1Z2luczoKLSAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5h
Z2VyLmNvbnNpZGVyX3BsdWdpbmFyZyh4KQotICAgICAgICByZXR1cm4gY29uZmlnCi0KLSAgICBk
ZWYgX3Byb2Nlc3NvcHQoc2VsZiwgb3B0KToKLSAgICAgICAgZm9yIG5hbWUgaW4gb3B0Ll9zaG9y
dF9vcHRzICsgb3B0Ll9sb25nX29wdHM6Ci0gICAgICAgICAgICBzZWxmLl9vcHQyZGVzdFtuYW1l
XSA9IG9wdC5kZXN0Ci0KLSAgICAgICAgaWYgaGFzYXR0cihvcHQsICdkZWZhdWx0JykgYW5kIG9w
dC5kZXN0OgotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5vcHRpb24sIG9wdC5kZXN0
KToKLSAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYub3B0aW9uLCBvcHQuZGVzdCwgb3B0LmRl
ZmF1bHQpCi0KLSAgICBAaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotICAgIGRlZiBweXRlc3RfbG9h
ZF9pbml0aWFsX2NvbmZ0ZXN0cyhzZWxmLCBlYXJseV9jb25maWcpOgotICAgICAgICBzZWxmLnBs
dWdpbm1hbmFnZXIuX3NldF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcua25vd25fYXJn
c19uYW1lc3BhY2UpCi0KLSAgICBkZWYgX2luaXRpbmkoc2VsZiwgYXJncyk6Ci0gICAgICAgIG5z
LCB1bmtub3duX2FyZ3MgPSBzZWxmLl9wYXJzZXIucGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJn
cyhhcmdzLCBuYW1lc3BhY2U9c2VsZi5vcHRpb24uY29weSgpKQotICAgICAgICByID0gZGV0ZXJt
aW5lX3NldHVwKG5zLmluaWZpbGVuYW1lLCBucy5maWxlX29yX2RpciArIHVua25vd25fYXJncywg
d2FybmZ1bmM9c2VsZi53YXJuKQotICAgICAgICBzZWxmLnJvb3RkaXIsIHNlbGYuaW5pZmlsZSwg
c2VsZi5pbmljZmcgPSByCi0gICAgICAgIHNlbGYuX3BhcnNlci5leHRyYV9pbmZvWydyb290ZGly
J10gPSBzZWxmLnJvb3RkaXIKLSAgICAgICAgc2VsZi5fcGFyc2VyLmV4dHJhX2luZm9bJ2luaWZp
bGUnXSA9IHNlbGYuaW5pZmlsZQotICAgICAgICBzZWxmLmludm9jYXRpb25fZGlyID0gcHkucGF0
aC5sb2NhbCgpCi0gICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoJ2FkZG9wdHMnLCAnZXh0cmEg
Y29tbWFuZCBsaW5lIG9wdGlvbnMnLCAnYXJncycpCi0gICAgICAgIHNlbGYuX3BhcnNlci5hZGRp
bmkoJ21pbnZlcnNpb24nLCAnbWluaW1hbGx5IHJlcXVpcmVkIHB5dGVzdCB2ZXJzaW9uJykKLSAg
ICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5pID0gbnMub3ZlcnJpZGVfaW5pIG9yICgpCi0KLSAgICBk
ZWYgX2NvbnNpZGVyX2ltcG9ydGhvb2soc2VsZiwgYXJncyk6Ci0gICAgICAgICIiIkluc3RhbGwg
dGhlIFBFUCAzMDIgaW1wb3J0IGhvb2sgaWYgdXNpbmcgYXNzZXJ0aW9uIHJld3JpdGluZy4KLQot
ICAgICAgICBOZWVkcyB0byBwYXJzZSB0aGUgLS1hc3NlcnQ9PG1vZGU+IG9wdGlvbiBmcm9tIHRo
ZSBjb21tYW5kbGluZQotICAgICAgICBhbmQgZmluZCBhbGwgdGhlIGluc3RhbGxlZCBwbHVnaW5z
IHRvIG1hcmsgdGhlbSBmb3IgcmV3cml0aW5nCi0gICAgICAgIGJ5IHRoZSBpbXBvcnRob29rLgot
ICAgICAgICAiIiIKLSAgICAgICAgbnMsIHVua25vd25fYXJncyA9IHNlbGYuX3BhcnNlci5wYXJz
ZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MpCi0gICAgICAgIG1vZGUgPSBucy5hc3NlcnRt
b2RlCi0gICAgICAgIGlmIG1vZGUgPT0gJ3Jld3JpdGUnOgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIGhvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5pbnN0YWxsX2ltcG9ydGhvb2so
c2VsZikKLSAgICAgICAgICAgIGV4Y2VwdCBTeXN0ZW1FcnJvcjoKLSAgICAgICAgICAgICAgICBt
b2RlID0gJ3BsYWluJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9t
YXJrX3BsdWdpbnNfZm9yX3Jld3JpdGUoaG9vaykKLSAgICAgICAgc2VsZi5fd2Fybl9hYm91dF9t
aXNzaW5nX2Fzc2VydGlvbihtb2RlKQotCi0gICAgZGVmIF9tYXJrX3BsdWdpbnNfZm9yX3Jld3Jp
dGUoc2VsZiwgaG9vayk6Ci0gICAgICAgICIiIgotICAgICAgICBHaXZlbiBhbiBpbXBvcnRob29r
LCBtYXJrIGZvciByZXdyaXRlIGFueSB0b3AtbGV2ZWwKLSAgICAgICAgbW9kdWxlcyBvciBwYWNr
YWdlcyBpbiB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UgZm9yCi0gICAgICAgIGFsbCBweXRlc3Qg
cGx1Z2lucy4KLSAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBwa2dfcmVzb3VyY2VzCi0gICAg
ICAgIHNlbGYucGx1Z2lubWFuYWdlci5yZXdyaXRlX2hvb2sgPSBob29rCi0KLSAgICAgICAgIyAn
UkVDT1JEJyBhdmFpbGFibGUgZm9yIHBsdWdpbnMgaW5zdGFsbGVkIG5vcm1hbGx5IChwaXAgaW5z
dGFsbCkKLSAgICAgICAgIyAnU09VUkNFUy50eHQnIGF2YWlsYWJsZSBmb3IgcGx1Z2lucyBpbnN0
YWxsZWQgaW4gZGV2IG1vZGUgKHBpcCBpbnN0YWxsIC1lKQotICAgICAgICAjIGZvciBpbnN0YWxs
ZWQgcGx1Z2lucyAnU09VUkNFUy50eHQnIHJldHVybnMgYW4gZW1wdHkgbGlzdCwgYW5kIHZpY2Ut
dmVyc2EKLSAgICAgICAgIyBzbyBpdCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUKLSAgICAgICAgbWV0
YWRhdGFfZmlsZXMgPSAnUkVDT1JEJywgJ1NPVVJDRVMudHh0JwotCi0gICAgICAgIHBhY2thZ2Vf
ZmlsZXMgPSAoCi0gICAgICAgICAgICBlbnRyeS5zcGxpdCgnLCcpWzBdCi0gICAgICAgICAgICBm
b3IgZW50cnlwb2ludCBpbiBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzKCdweXRlc3Qx
MScpCi0gICAgICAgICAgICBmb3IgbWV0YWRhdGEgaW4gbWV0YWRhdGFfZmlsZXMKLSAgICAgICAg
ICAgIGZvciBlbnRyeSBpbiBlbnRyeXBvaW50LmRpc3QuX2dldF9tZXRhZGF0YShtZXRhZGF0YSkK
LSAgICAgICAgKQotCi0gICAgICAgIGZvciBuYW1lIGluIF9pdGVyX3Jld3JpdGFibGVfbW9kdWxl
cyhwYWNrYWdlX2ZpbGVzKToKLSAgICAgICAgICAgIGhvb2subWFya19yZXdyaXRlKG5hbWUpCi0K
LSAgICBkZWYgX3dhcm5fYWJvdXRfbWlzc2luZ19hc3NlcnRpb24oc2VsZiwgbW9kZSk6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZQotICAgICAgICBleGNlcHQgQXNzZXJ0
aW9uRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBp
ZiBtb2RlID09ICdwbGFpbic6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiV0FS
TklORzogQVNTRVJUSU9OUyBBUkUgTk9UIEVYRUNVVEVEIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiBhbmQgRkFJTElORyBURVNUUyBXSUxMIFBBU1MuICBBcmUgeW91IgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB1c2luZyBweXRob24gLU8/IikKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiV0FSTklORzog
YXNzZXJ0aW9ucyBub3QgaW4gdGVzdCBtb2R1bGVzIG9yIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiBwbHVnaW5zIHdpbGwgYmUgaWdub3JlZCIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICIgYmVjYXVzZSBhc3NlcnQgc3RhdGVtZW50cyBhcmUgbm90IGV4ZWN1
dGVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieSB0aGUgdW5kZXJseWlu
ZyBQeXRob24gaW50ZXJwcmV0ZXIgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IihhcmUgeW91IHVzaW5nIHB5dGhvbiAtTz8pXG4iKQotCi0gICAgZGVmIF9wcmVwYXJzZShzZWxm
LCBhcmdzLCBhZGRvcHRzPVRydWUpOgotICAgICAgICBpZiBhZGRvcHRzOgotICAgICAgICAgICAg
YXJnc1s6XSA9IHNobGV4LnNwbGl0KG9zLmVudmlyb24uZ2V0KCdQWVRFU1RfQURET1BUUycsICcn
KSkgKyBhcmdzCi0gICAgICAgIHNlbGYuX2luaXRpbmkoYXJncykKLSAgICAgICAgaWYgYWRkb3B0
czoKLSAgICAgICAgICAgIGFyZ3NbOl0gPSBzZWxmLmdldGluaSgiYWRkb3B0cyIpICsgYXJncwot
ICAgICAgICBzZWxmLl9jaGVja3ZlcnNpb24oKQotICAgICAgICBzZWxmLl9jb25zaWRlcl9pbXBv
cnRob29rKGFyZ3MpCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5jb25zaWRlcl9wcmVwYXJz
ZShhcmdzKQotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIubG9hZF9zZXR1cHRvb2xzX2VudHJ5
cG9pbnRzKCdweXRlc3QxMScpCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5jb25zaWRlcl9l
bnYoKQotICAgICAgICBzZWxmLmtub3duX2FyZ3NfbmFtZXNwYWNlID0gbnMgPSBzZWxmLl9wYXJz
ZXIucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9c2VsZi5vcHRpb24uY29weSgpKQot
ICAgICAgICBpZiBzZWxmLmtub3duX2FyZ3NfbmFtZXNwYWNlLmNvbmZjdXRkaXIgaXMgTm9uZSBh
bmQgc2VsZi5pbmlmaWxlOgotICAgICAgICAgICAgY29uZmN1dGRpciA9IHB5LnBhdGgubG9jYWwo
c2VsZi5pbmlmaWxlKS5kaXJuYW1lCi0gICAgICAgICAgICBzZWxmLmtub3duX2FyZ3NfbmFtZXNw
YWNlLmNvbmZjdXRkaXIgPSBjb25mY3V0ZGlyCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNl
bGYuaG9vay5weXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWc9c2VsZiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdz
PWFyZ3MsIHBhcnNlcj1zZWxmLl9wYXJzZXIpCi0gICAgICAgIGV4Y2VwdCBDb25mdGVzdEltcG9y
dEZhaWx1cmU6Ci0gICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KLSAgICAgICAgICAg
IGlmIG5zLmhlbHAgb3IgbnMudmVyc2lvbjoKLSAgICAgICAgICAgICAgICAjIHdlIGRvbid0IHdh
bnQgdG8gcHJldmVudCAtLWhlbHAvLS12ZXJzaW9uIHRvIHdvcmsKLSAgICAgICAgICAgICAgICAj
IHNvIGp1c3QgbGV0IGlzIHBhc3MgYW5kIHByaW50IGEgd2FybmluZyBhdCB0aGUgZW5kCi0gICAg
ICAgICAgICAgICAgc2VsZi5fd2FybigiY291bGQgbm90IGxvYWQgaW5pdGlhbCBjb25mdGVzdHMg
KCVzKVxuIiAlIGUucGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFp
c2UKLQotICAgIGRlZiBfY2hlY2t2ZXJzaW9uKHNlbGYpOgotICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgIG1pbnZlciA9IHNlbGYuaW5pY2ZnLmdldCgnbWludmVyc2lvbicsIE5vbmUpCi0g
ICAgICAgIGlmIG1pbnZlcjoKLSAgICAgICAgICAgIHZlciA9IG1pbnZlci5zcGxpdCgiLiIpCi0g
ICAgICAgICAgICBteXZlciA9IHB5dGVzdC5fX3ZlcnNpb25fXy5zcGxpdCgiLiIpCi0gICAgICAg
ICAgICBpZiBteXZlciA8IHZlcjoKLSAgICAgICAgICAgICAgICByYWlzZSBweXRlc3QuVXNhZ2VF
cnJvcigKLSAgICAgICAgICAgICAgICAgICAgIiVzOiVkOiByZXF1aXJlcyBweXRlc3QtJXMsIGFj
dHVhbCBweXRlc3QtJXMnIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5pY2Zn
LmNvbmZpZy5wYXRoLCBzZWxmLmluaWNmZy5saW5lb2YoJ21pbnZlcnNpb24nKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1pbnZlciwgcHl0ZXN0Ll9fdmVyc2lvbl9fKSkKLQotICAgIGRlZiBw
YXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRydWUpOgotICAgICAgICAjIHBhcnNlIGdpdmVuIGNt
ZGxpbmUgYXJndW1lbnRzIGludG8gdGhpcyBjb25maWcgb2JqZWN0LgotICAgICAgICBhc3NlcnQg
bm90IGhhc2F0dHIoc2VsZiwgJ2FyZ3MnKSwgKAotICAgICAgICAgICAgImNhbiBvbmx5IHBhcnNl
IGNtZGxpbmUgYXJncyBhdCBtb3N0IG9uY2UgcGVyIENvbmZpZyBvYmplY3QiKQotICAgICAgICBz
ZWxmLl9vcmlnYXJncyA9IGFyZ3MKLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9hZGRob29rcy5j
YWxsX2hpc3RvcmljKAotICAgICAgICAgICAga3dhcmdzPWRpY3QocGx1Z2lubWFuYWdlcj1zZWxm
LnBsdWdpbm1hbmFnZXIpKQotICAgICAgICBzZWxmLl9wcmVwYXJzZShhcmdzLCBhZGRvcHRzPWFk
ZG9wdHMpCi0gICAgICAgICMgWFhYIGRlcHJlY2F0ZWQgaG9vazoKLSAgICAgICAgc2VsZi5ob29r
LnB5dGVzdF9jbWRsaW5lX3ByZXBhcnNlKGNvbmZpZz1zZWxmLCBhcmdzPWFyZ3MpCi0gICAgICAg
IHNlbGYuX3BhcnNlci5hZnRlcl9wcmVwYXJzZSA9IFRydWUKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9zZXRvcHRpb24oYXJncywgc2VsZi5vcHRp
b24sIG5hbWVzcGFjZT1zZWxmLm9wdGlvbikKLSAgICAgICAgICAgIGlmIG5vdCBhcmdzOgotICAg
ICAgICAgICAgICAgIGN3ZCA9IG9zLmdldGN3ZCgpCi0gICAgICAgICAgICAgICAgaWYgY3dkID09
IHNlbGYucm9vdGRpcjoKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9IHNlbGYuZ2V0aW5pKCd0
ZXN0cGF0aHMnKQotICAgICAgICAgICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgICAg
ICAgICBhcmdzID0gW2N3ZF0KLSAgICAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKLSAgICAgICAg
ZXhjZXB0IFByaW50SGVscDoKLSAgICAgICAgICAgIHBhc3MKLQotICAgIGRlZiBhZGRpbml2YWx1
ZV9saW5lKHNlbGYsIG5hbWUsIGxpbmUpOgotICAgICAgICAiIiIgYWRkIGEgbGluZSB0byBhbiBp
bmktZmlsZSBvcHRpb24uIFRoZSBvcHRpb24gbXVzdCBoYXZlIGJlZW4KLSAgICAgICAgZGVjbGFy
ZWQgYnV0IG1pZ2h0IG5vdCB5ZXQgYmUgc2V0IGluIHdoaWNoIGNhc2UgdGhlIGxpbmUgYmVjb21l
cyB0aGUKLSAgICAgICAgdGhlIGZpcnN0IGxpbmUgaW4gaXRzIHZhbHVlLiAiIiIKLSAgICAgICAg
eCA9IHNlbGYuZ2V0aW5pKG5hbWUpCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHgsIGxpc3Qp
Ci0gICAgICAgIHguYXBwZW5kKGxpbmUpICAjIG1vZGlmaWVzIHRoZSBjYWNoZWQgbGlzdCBpbmxp
bmUKLQotICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiByZXR1cm4gY29u
ZmlndXJhdGlvbiB2YWx1ZSBmcm9tIGFuIDpyZWY6YGluaSBmaWxlIDxpbmlmaWxlcz5gLiBJZiB0
aGUKLSAgICAgICAgc3BlY2lmaWVkIG5hbWUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB0aHJvdWdo
IGEgcHJpb3IKLSAgICAgICAgOnB5OmZ1bmM6YHBhcnNlci5hZGRpbmkgPF9weXRlc3QuY29uZmln
LlBhcnNlci5hZGRpbmk+YAotICAgICAgICBjYWxsICh1c3VhbGx5IGZyb20gYSBwbHVnaW4pLCBh
IFZhbHVlRXJyb3IgaXMgcmFpc2VkLiAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2luaWNhY2hlW25hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAg
ICAgICAgIHNlbGYuX2luaWNhY2hlW25hbWVdID0gdmFsID0gc2VsZi5fZ2V0aW5pKG5hbWUpCi0g
ICAgICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBkZWYgX2dldGluaShzZWxmLCBuYW1lKToKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgZGVzY3JpcHRpb24sIHR5cGUsIGRlZmF1bHQgPSBzZWxm
Ll9wYXJzZXIuX2luaWRpY3RbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBjb25maWd1cmF0aW9uIHZhbHVlOiAlciIg
JSAobmFtZSwpKQotICAgICAgICB2YWx1ZSA9IHNlbGYuX2dldF9vdmVycmlkZV9pbmlfdmFsdWUo
bmFtZSkKLSAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICB2YWx1ZSA9IHNlbGYuaW5pY2ZnW25hbWVdCi0gICAgICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgaWYgZGVmYXVsdCBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKLSAgICAgICAgICAgICAgICBpZiB0eXBlIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAgICAgICAgIHJl
dHVybiBbXQotICAgICAgICBpZiB0eXBlID09ICJwYXRobGlzdCI6Ci0gICAgICAgICAgICBkcCA9
IHB5LnBhdGgubG9jYWwoc2VsZi5pbmljZmcuY29uZmlnLnBhdGgpLmRpcnBhdGgoKQotICAgICAg
ICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGZvciByZWxwYXRoIGluIHNobGV4LnNwbGl0
KHZhbHVlKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGRwLmpvaW4ocmVscGF0aCwg
YWJzPVRydWUpKQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlcwotICAgICAgICBlbGlmIHR5cGUg
PT0gImFyZ3MiOgotICAgICAgICAgICAgcmV0dXJuIHNobGV4LnNwbGl0KHZhbHVlKQotICAgICAg
ICBlbGlmIHR5cGUgPT0gImxpbmVsaXN0IjoKLSAgICAgICAgICAgIHJldHVybiBbdCBmb3IgdCBp
biBtYXAobGFtYmRhIHg6IHguc3RyaXAoKSwgdmFsdWUuc3BsaXQoIlxuIikpIGlmIHRdCi0gICAg
ICAgIGVsaWYgdHlwZSA9PSAiYm9vbCI6Ci0gICAgICAgICAgICByZXR1cm4gYm9vbChfc3RydG9i
b29sKHZhbHVlLnN0cmlwKCkpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IHR5
cGUgaXMgTm9uZQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAgICBkZWYgX2dldGNvbmZ0
ZXN0X3BhdGhsaXN0KHNlbGYsIG5hbWUsIHBhdGgpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICBtb2QsIHJlbHJvb3RzID0gc2VsZi5wbHVnaW5tYW5hZ2VyLl9yZ2V0X3dpdGhfY29uZm1vZChu
YW1lLCBwYXRoKQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotICAgICAgICBtb2RwYXRoID0gcHkucGF0aC5sb2NhbChtb2QuX19maWxlX18pLmRpcnBh
dGgoKQotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBmb3IgcmVscm9vdCBpbiByZWxyb290
czoKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlbHJvb3QsIHB5LnBhdGgubG9jYWwp
OgotICAgICAgICAgICAgICAgIHJlbHJvb3QgPSByZWxyb290LnJlcGxhY2UoIi8iLCBweS5wYXRo
LmxvY2FsLnNlcCkKLSAgICAgICAgICAgICAgICByZWxyb290ID0gbW9kcGF0aC5qb2luKHJlbHJv
b3QsIGFicz1UcnVlKQotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChyZWxyb290KQotICAgICAg
ICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgX2dldF9vdmVycmlkZV9pbmlfdmFsdWUoc2VsZiwg
bmFtZSk6Ci0gICAgICAgIHZhbHVlID0gTm9uZQotICAgICAgICAjIG92ZXJyaWRlX2luaSBpcyBh
IGxpc3Qgb2YgbGlzdCwgdG8gc3VwcG9ydCBib3RoIC1vIGZvbzE9YmFyMSBmb28yPWJhcjIgYW5k
Ci0gICAgICAgICMgYW5kIC1vIGZvbzE9YmFyMSAtbyBmb28yPWJhcjIgb3B0aW9ucwotICAgICAg
ICAjIGFsd2F5cyB1c2UgdGhlIGxhc3QgaXRlbSBpZiBtdWx0aXBsZSB2YWx1ZSBzZXQgZm9yIHNh
bWUgaW5pLW5hbWUsCi0gICAgICAgICMgZS5nLiAtbyBmb289YmFyMSAtbyBmb289YmFyMiB3aWxs
IHNldCBmb28gdG8gYmFyMgotICAgICAgICBmb3IgaW5pX2NvbmZpZ19saXN0IGluIHNlbGYuX292
ZXJyaWRlX2luaToKLSAgICAgICAgICAgIGZvciBpbmlfY29uZmlnIGluIGluaV9jb25maWdfbGlz
dDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIChrZXksIHVzZXJf
aW5pX3ZhbHVlKSA9IGluaV9jb25maWcuc3BsaXQoIj0iLCAxKQotICAgICAgICAgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCIt
by8tLW92ZXJyaWRlLWluaSBleHBlY3RzIG9wdGlvbj12YWx1ZSBzdHlsZS4iKQotICAgICAgICAg
ICAgICAgIGlmIGtleSA9PSBuYW1lOgotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHVzZXJf
aW5pX3ZhbHVlCi0gICAgICAgIHJldHVybiB2YWx1ZQotCi0gICAgZGVmIGdldG9wdGlvbihzZWxm
LCBuYW1lLCBkZWZhdWx0PW5vdHNldCwgc2tpcD1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4g
Y29tbWFuZCBsaW5lIG9wdGlvbiB2YWx1ZS4KLQotICAgICAgICA6YXJnIG5hbWU6IG5hbWUgb2Yg
dGhlIG9wdGlvbi4gIFlvdSBtYXkgYWxzbyBzcGVjaWZ5Ci0gICAgICAgICAgICB0aGUgbGl0ZXJh
bCBgYC0tT1BUYGAgb3B0aW9uIGluc3RlYWQgb2YgdGhlICJkZXN0IiBvcHRpb24gbmFtZS4KLSAg
ICAgICAgOmFyZyBkZWZhdWx0OiBkZWZhdWx0IHZhbHVlIGlmIG5vIG9wdGlvbiBvZiB0aGF0IG5h
bWUgZXhpc3RzLgotICAgICAgICA6YXJnIHNraXA6IGlmIFRydWUgcmFpc2UgcHl0ZXN0LnNraXAg
aWYgb3B0aW9uIGRvZXMgbm90IGV4aXN0cwotICAgICAgICAgICAgb3IgaGFzIGEgTm9uZSB2YWx1
ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIG5hbWUgPSBzZWxmLl9vcHQyZGVzdC5nZXQobmFtZSwg
bmFtZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdmFsID0gZ2V0YXR0cihzZWxmLm9wdGlv
biwgbmFtZSkKLSAgICAgICAgICAgIGlmIHZhbCBpcyBOb25lIGFuZCBza2lwOgotICAgICAgICAg
ICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCi0gICAgICAgICAgICByZXR1cm4gdmFs
Ci0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIGlmIGRlZmF1bHQg
aXMgbm90IG5vdHNldDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICAg
ICAgaWYgc2tpcDoKLSAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICAgICAg
ICAgcHl0ZXN0LnNraXAoIm5vICVyIG9wdGlvbiBmb3VuZCIgJSAobmFtZSwpKQotICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigibm8gb3B0aW9uIG5hbWVkICVyIiAlIChuYW1lLCkpCi0KLSAg
ICBkZWYgZ2V0dmFsdWUoc2VsZiwgbmFtZSwgcGF0aD1Ob25lKToKLSAgICAgICAgIiIiIChkZXBy
ZWNhdGVkLCB1c2UgZ2V0b3B0aW9uKCkpICIiIgotICAgICAgICByZXR1cm4gc2VsZi5nZXRvcHRp
b24obmFtZSkKLQotICAgIGRlZiBnZXR2YWx1ZW9yc2tpcChzZWxmLCBuYW1lLCBwYXRoPU5vbmUp
OgotICAgICAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBnZXRvcHRpb24oc2tpcD1UcnVlKSkgIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLmdldG9wdGlvbihuYW1lLCBza2lwPVRydWUpCi0KLQotZGVm
IGV4aXN0cyhwYXRoLCBpZ25vcmU9RW52aXJvbm1lbnRFcnJvcik6Ci0gICAgdHJ5OgotICAgICAg
ICByZXR1cm4gcGF0aC5jaGVjaygpCi0gICAgZXhjZXB0IGlnbm9yZToKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLQotZGVmIGdldGNmZyhhcmdzLCB3YXJuZnVuYz1Ob25lKToKLSAgICAiIiIKLSAg
ICBTZWFyY2ggdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGZvciBhIHZhbGlkIGluaS1maWxlIGZvciBw
eXRlc3QsCi0gICAgYW5kIHJldHVybiBhIHR1cGxlIG9mIChyb290ZGlyLCBpbmlmaWxlLCBjZmct
ZGljdCkuCi0KLSAgICBub3RlOiB3YXJuZnVuYyBpcyBhbiBvcHRpb25hbCBmdW5jdGlvbiB1c2Vk
IHRvIHdhcm4KLSAgICAgICAgYWJvdXQgaW5pLWZpbGVzIHRoYXQgdXNlIGRlcHJlY2F0ZWQgZmVh
dHVyZXMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gcHl0
ZXN0Ci0gICAgICAgIGFkb3B0cyBzdGFuZGFyZCBkZXByZWNhdGlvbiB3YXJuaW5ncyAoIzE4MDQp
LgotICAgICIiIgotICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBTRVRVUF9DRkdf
UFlURVNUCi0gICAgaW5pYmFzZW5hbWVzID0gWyJweXRlc3QuaW5pIiwgInRveC5pbmkiLCAic2V0
dXAuY2ZnIl0KLSAgICBhcmdzID0gW3ggZm9yIHggaW4gYXJncyBpZiBub3Qgc3RyKHgpLnN0YXJ0
c3dpdGgoIi0iKV0KLSAgICBpZiBub3QgYXJnczoKLSAgICAgICAgYXJncyA9IFtweS5wYXRoLmxv
Y2FsKCldCi0gICAgZm9yIGFyZyBpbiBhcmdzOgotICAgICAgICBhcmcgPSBweS5wYXRoLmxvY2Fs
KGFyZykKLSAgICAgICAgZm9yIGJhc2UgaW4gYXJnLnBhcnRzKHJldmVyc2U9VHJ1ZSk6Ci0gICAg
ICAgICAgICBmb3IgaW5pYmFzZW5hbWUgaW4gaW5pYmFzZW5hbWVzOgotICAgICAgICAgICAgICAg
IHAgPSBiYXNlLmpvaW4oaW5pYmFzZW5hbWUpCi0gICAgICAgICAgICAgICAgaWYgZXhpc3RzKHAp
OgotICAgICAgICAgICAgICAgICAgICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmln
KHApCi0gICAgICAgICAgICAgICAgICAgIGlmICdweXRlc3QnIGluIGluaWNvbmZpZy5zZWN0aW9u
czoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluaWJhc2VuYW1lID09ICdzZXR1cC5jZmcn
IGFuZCB3YXJuZnVuYzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuZnVuYygnQzEn
LCBTRVRVUF9DRkdfUFlURVNUKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2Us
IHAsIGluaWNvbmZpZ1sncHl0ZXN0J10KLSAgICAgICAgICAgICAgICAgICAgaWYgaW5pYmFzZW5h
bWUgPT0gJ3NldHVwLmNmZycgYW5kICd0b29sOnB5dGVzdCcgaW4gaW5pY29uZmlnLnNlY3Rpb25z
OgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZpZ1sndG9v
bDpweXRlc3QnXQotICAgICAgICAgICAgICAgICAgICBlbGlmIGluaWJhc2VuYW1lID09ICJweXRl
c3QuaW5pIjoKLSAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsb3dlZCB0byBiZSBlbXB0eQot
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAsIHt9Ci0gICAgcmV0dXJuIE5v
bmUsIE5vbmUsIE5vbmUKLQotCi1kZWYgZ2V0X2NvbW1vbl9hbmNlc3RvcihwYXRocyk6Ci0gICAg
Y29tbW9uX2FuY2VzdG9yID0gTm9uZQotICAgIGZvciBwYXRoIGluIHBhdGhzOgotICAgICAgICBp
ZiBub3QgcGF0aC5leGlzdHMoKToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIGNv
bW1vbl9hbmNlc3RvciBpcyBOb25lOgotICAgICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gcGF0
aAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcGF0aC5yZWx0byhjb21tb25fYW5jZXN0
b3IpIG9yIHBhdGggPT0gY29tbW9uX2FuY2VzdG9yOgotICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICBlbGlmIGNvbW1vbl9hbmNlc3Rvci5yZWx0byhwYXRoKToKLSAgICAgICAg
ICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBwYXRoCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIHNoYXJlZCA9IHBhdGguY29tbW9uKGNvbW1vbl9hbmNlc3RvcikKLSAgICAgICAg
ICAgICAgICBpZiBzaGFyZWQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGNvbW1v
bl9hbmNlc3RvciA9IHNoYXJlZAotICAgIGlmIGNvbW1vbl9hbmNlc3RvciBpcyBOb25lOgotICAg
ICAgICBjb21tb25fYW5jZXN0b3IgPSBweS5wYXRoLmxvY2FsKCkKLSAgICBlbGlmIGNvbW1vbl9h
bmNlc3Rvci5pc2ZpbGUoKToKLSAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gY29tbW9uX2FuY2Vz
dG9yLmRpcnBhdGgoKQotICAgIHJldHVybiBjb21tb25fYW5jZXN0b3IKLQotCi1kZWYgZ2V0X2Rp
cnNfZnJvbV9hcmdzKGFyZ3MpOgotICAgIGRlZiBpc19vcHRpb24oeCk6Ci0gICAgICAgIHJldHVy
biBzdHIoeCkuc3RhcnRzd2l0aCgnLScpCi0KLSAgICBkZWYgZ2V0X2ZpbGVfcGFydF9mcm9tX25v
ZGVfaWQoeCk6Ci0gICAgICAgIHJldHVybiBzdHIoeCkuc3BsaXQoJzo6JylbMF0KLQotICAgIGRl
ZiBnZXRfZGlyX2Zyb21fcGF0aChwYXRoKToKLSAgICAgICAgaWYgcGF0aC5pc2RpcigpOgotICAg
ICAgICAgICAgcmV0dXJuIHBhdGgKLSAgICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwocGF0aC5k
aXJuYW1lKQotCi0gICAgIyBUaGVzZSBsb29rIGxpa2UgcGF0aHMgYnV0IG1heSBub3QgZXhpc3QK
LSAgICBwb3NzaWJsZV9wYXRocyA9ICgKLSAgICAgICAgcHkucGF0aC5sb2NhbChnZXRfZmlsZV9w
YXJ0X2Zyb21fbm9kZV9pZChhcmcpKQotICAgICAgICBmb3IgYXJnIGluIGFyZ3MKLSAgICAgICAg
aWYgbm90IGlzX29wdGlvbihhcmcpCi0gICAgKQotCi0gICAgcmV0dXJuIFsKLSAgICAgICAgZ2V0
X2Rpcl9mcm9tX3BhdGgocGF0aCkKLSAgICAgICAgZm9yIHBhdGggaW4gcG9zc2libGVfcGF0aHMK
LSAgICAgICAgaWYgcGF0aC5leGlzdHMoKQotICAgIF0KLQotCi1kZWYgZGV0ZXJtaW5lX3NldHVw
KGluaWZpbGUsIGFyZ3MsIHdhcm5mdW5jPU5vbmUpOgotICAgIGRpcnMgPSBnZXRfZGlyc19mcm9t
X2FyZ3MoYXJncykKLSAgICBpZiBpbmlmaWxlOgotICAgICAgICBpbmljb25maWcgPSBweS5pbmlj
b25maWcuSW5pQ29uZmlnKGluaWZpbGUpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGluaWNm
ZyA9IGluaWNvbmZpZ1sicHl0ZXN0Il0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAg
ICAgICAgaW5pY2ZnID0gTm9uZQotICAgICAgICByb290ZGlyID0gZ2V0X2NvbW1vbl9hbmNlc3Rv
cihkaXJzKQotICAgIGVsc2U6Ci0gICAgICAgIGFuY2VzdG9yID0gZ2V0X2NvbW1vbl9hbmNlc3Rv
cihkaXJzKQotICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBnZXRjZmcoW2FuY2Vz
dG9yXSwgd2FybmZ1bmM9d2FybmZ1bmMpCi0gICAgICAgIGlmIHJvb3RkaXIgaXMgTm9uZToKLSAg
ICAgICAgICAgIGZvciByb290ZGlyIGluIGFuY2VzdG9yLnBhcnRzKHJldmVyc2U9VHJ1ZSk6Ci0g
ICAgICAgICAgICAgICAgaWYgcm9vdGRpci5qb2luKCJzZXR1cC5weSIpLmV4aXN0cygpOgotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBnZXRjZmcoZGlycywgd2FybmZ1bmM9d2FybmZ1
bmMpCi0gICAgICAgICAgICAgICAgaWYgcm9vdGRpciBpcyBOb25lOgotICAgICAgICAgICAgICAg
ICAgICByb290ZGlyID0gZ2V0X2NvbW1vbl9hbmNlc3RvcihbcHkucGF0aC5sb2NhbCgpLCBhbmNl
c3Rvcl0pCi0gICAgICAgICAgICAgICAgICAgIGlzX2ZzX3Jvb3QgPSBvcy5wYXRoLnNwbGl0ZHJp
dmUoc3RyKHJvb3RkaXIpKVsxXSA9PSAnLycKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNfZnNf
cm9vdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSBhbmNlc3RvcgotICAgIHJl
dHVybiByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgb3Ige30KLQotCi1kZWYgc2V0bnMob2JqLCBk
aWMpOgotICAgIGltcG9ydCBweXRlc3QKLSAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZGljLml0ZW1z
KCk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgotICAgICAgICAgICAgbW9k
ID0gZ2V0YXR0cihvYmosIG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBpZiBtb2QgaXMgTm9uZToK
LSAgICAgICAgICAgICAgICBtb2RuYW1lID0gInB5dGVzdC4lcyIgJSBuYW1lCi0gICAgICAgICAg
ICAgICAgbW9kID0gdHlwZXMuTW9kdWxlVHlwZShtb2RuYW1lKQotICAgICAgICAgICAgICAgIHN5
cy5tb2R1bGVzW21vZG5hbWVdID0gbW9kCi0gICAgICAgICAgICAgICAgbW9kLl9fYWxsX18gPSBb
XQotICAgICAgICAgICAgICAgIHNldGF0dHIob2JqLCBuYW1lLCBtb2QpCi0gICAgICAgICAgICBv
YmouX19hbGxfXy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIHNldG5zKG1vZCwgdmFsdWUpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUpCi0gICAg
ICAgICAgICBvYmouX19hbGxfXy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgICMgaWYgb2JqICE9
IHB5dGVzdDoKLSAgICAgICAgICAgICMgICAgcHl0ZXN0Ll9fYWxsX18uYXBwZW5kKG5hbWUpCi0g
ICAgICAgICAgICBzZXRhdHRyKHB5dGVzdCwgbmFtZSwgdmFsdWUpCi0KLQotZGVmIGNyZWF0ZV90
ZXJtaW5hbF93cml0ZXIoY29uZmlnLCAqYXJncywgKiprd2FyZ3MpOgotICAgICIiIkNyZWF0ZSBh
IFRlcm1pbmFsV3JpdGVyIGluc3RhbmNlIGNvbmZpZ3VyZWQgYWNjb3JkaW5nIHRvIHRoZSBvcHRp
b25zCi0gICAgaW4gdGhlIGNvbmZpZyBvYmplY3QuIEV2ZXJ5IGNvZGUgd2hpY2ggcmVxdWlyZXMg
YSBUZXJtaW5hbFdyaXRlciBvYmplY3QKLSAgICBhbmQgaGFzIGFjY2VzcyB0byBhIGNvbmZpZyBv
YmplY3Qgc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9uLgotICAgICIiIgotICAgIHR3ID0gcHkuaW8u
VGVybWluYWxXcml0ZXIoKmFyZ3MsICoqa3dhcmdzKQotICAgIGlmIGNvbmZpZy5vcHRpb24uY29s
b3IgPT0gJ3llcyc6Ci0gICAgICAgIHR3Lmhhc21hcmt1cCA9IFRydWUKLSAgICBpZiBjb25maWcu
b3B0aW9uLmNvbG9yID09ICdubyc6Ci0gICAgICAgIHR3Lmhhc21hcmt1cCA9IEZhbHNlCi0gICAg
cmV0dXJuIHR3Ci0KLQotZGVmIF9zdHJ0b2Jvb2wodmFsKToKLSAgICAiIiJDb252ZXJ0IGEgc3Ry
aW5nIHJlcHJlc2VudGF0aW9uIG9mIHRydXRoIHRvIHRydWUgKDEpIG9yIGZhbHNlICgwKS4KLQot
ICAgIFRydWUgdmFsdWVzIGFyZSAneScsICd5ZXMnLCAndCcsICd0cnVlJywgJ29uJywgYW5kICcx
JzsgZmFsc2UgdmFsdWVzCi0gICAgYXJlICduJywgJ25vJywgJ2YnLCAnZmFsc2UnLCAnb2ZmJywg
YW5kICcwJy4gIFJhaXNlcyBWYWx1ZUVycm9yIGlmCi0gICAgJ3ZhbCcgaXMgYW55dGhpbmcgZWxz
ZS4KLQotICAgIC4uIG5vdGU6OiBjb3BpZWQgZnJvbSBkaXN0dXRpbHMudXRpbAotICAgICIiIgot
ICAgIHZhbCA9IHZhbC5sb3dlcigpCi0gICAgaWYgdmFsIGluICgneScsICd5ZXMnLCAndCcsICd0
cnVlJywgJ29uJywgJzEnKToKLSAgICAgICAgcmV0dXJuIDEKLSAgICBlbGlmIHZhbCBpbiAoJ24n
LCAnbm8nLCAnZicsICdmYWxzZScsICdvZmYnLCAnMCcpOgotICAgICAgICByZXR1cm4gMAotICAg
IGVsc2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgdHJ1dGggdmFsdWUgJXIi
ICUgKHZhbCwpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dpbmcucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDdkY2E3ODA5NTZlYzM5NzYyZDA0Y2FhMTdmOWQwZmIzYmRlZmZjMi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2RlYnVnZ2luZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyMyArMCwwIEBACi0iIiIgaW50
ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGggUERCLCB0aGUgUHl0aG9uIERlYnVnZ2VyLiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KLWltcG9ydCBwZGIKLWltcG9ydCBzeXMKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihw
YXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91
cC5fYWRkb3B0aW9uKAotICAgICAgICAnLS1wZGInLCBkZXN0PSJ1c2VwZGIiLCBhY3Rpb249InN0
b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJzdGFydCB0aGUgaW50ZXJhY3RpdmUgUHl0aG9uIGRl
YnVnZ2VyIG9uIGVycm9ycy4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctLXBk
YmNscycsIGRlc3Q9InVzZXBkYl9jbHMiLCBtZXRhdmFyPSJtb2R1bGVuYW1lOmNsYXNzbmFtZSIs
Ci0gICAgICAgIGhlbHA9InN0YXJ0IGEgY3VzdG9tIGludGVyYWN0aXZlIFB5dGhvbiBkZWJ1Z2dl
ciBvbiBlcnJvcnMuICIKLSAgICAgICAgICAgICAiRm9yIGV4YW1wbGU6IC0tcGRiY2xzPUlQeXRo
b24udGVybWluYWwuZGVidWdnZXI6VGVybWluYWxQZGIiKQotCi0KLWRlZiBweXRlc3RfY29uZmln
dXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZhbHVlKCJ1c2VwZGJfY2xzIik6Ci0gICAg
ICAgIG1vZG5hbWUsIGNsYXNzbmFtZSA9IGNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiX2NscyIpLnNw
bGl0KCI6IikKLSAgICAgICAgX19pbXBvcnRfXyhtb2RuYW1lKQotICAgICAgICBwZGJfY2xzID0g
Z2V0YXR0cihzeXMubW9kdWxlc1ttb2RuYW1lXSwgY2xhc3NuYW1lKQotICAgIGVsc2U6Ci0gICAg
ICAgIHBkYl9jbHMgPSBwZGIuUGRiCi0KLSAgICBpZiBjb25maWcuZ2V0dmFsdWUoInVzZXBkYiIp
OgotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihQZGJJbnZva2UoKSwgJ3Bk
Ymludm9rZScpCi0KLSAgICBvbGQgPSAocGRiLnNldF90cmFjZSwgcHl0ZXN0UERCLl9wbHVnaW5t
YW5hZ2VyKQotCi0gICAgZGVmIGZpbigpOgotICAgICAgICBwZGIuc2V0X3RyYWNlLCBweXRlc3RQ
REIuX3BsdWdpbm1hbmFnZXIgPSBvbGQKLSAgICAgICAgcHl0ZXN0UERCLl9jb25maWcgPSBOb25l
Ci0gICAgICAgIHB5dGVzdFBEQi5fcGRiX2NscyA9IHBkYi5QZGIKLQotICAgIHBkYi5zZXRfdHJh
Y2UgPSBweXRlc3RQREIuc2V0X3RyYWNlCi0gICAgcHl0ZXN0UERCLl9wbHVnaW5tYW5hZ2VyID0g
Y29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICBweXRlc3RQREIuX2NvbmZpZyA9IGNvbmZpZwotICAg
IHB5dGVzdFBEQi5fcGRiX2NscyA9IHBkYl9jbHMKLSAgICBjb25maWcuX2NsZWFudXAuYXBwZW5k
KGZpbikKLQotCi1jbGFzcyBweXRlc3RQREI6Ci0gICAgIiIiIFBzZXVkbyBQREIgdGhhdCBkZWZl
cnMgdG8gdGhlIHJlYWwgcGRiLiAiIiIKLSAgICBfcGx1Z2lubWFuYWdlciA9IE5vbmUKLSAgICBf
Y29uZmlnID0gTm9uZQotICAgIF9wZGJfY2xzID0gcGRiLlBkYgotCi0gICAgQGNsYXNzbWV0aG9k
Ci0gICAgZGVmIHNldF90cmFjZShjbHMpOgotICAgICAgICAiIiIgaW52b2tlIFBEQiBzZXRfdHJh
Y2UgZGVidWdnaW5nLCBkcm9wcGluZyBhbnkgSU8gY2FwdHVyaW5nLiAiIiIKLSAgICAgICAgaW1w
b3J0IF9weXRlc3QuY29uZmlnCi0gICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgpLmZfYmFj
awotICAgICAgICBpZiBjbHMuX3BsdWdpbm1hbmFnZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBjYXBtYW4gPSBjbHMuX3BsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJjYXB0dXJlbWFuYWdlciIp
Ci0gICAgICAgICAgICBpZiBjYXBtYW46Ci0gICAgICAgICAgICAgICAgY2FwbWFuLnN1c3BlbmRf
Z2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCi0gICAgICAgICAgICB0dyA9IF9weXRlc3QuY29uZmln
LmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY2xzLl9jb25maWcpCi0gICAgICAgICAgICB0dy5saW5l
KCkKLSAgICAgICAgICAgIHR3LnNlcCgiPiIsICJQREIgc2V0X3RyYWNlIChJTy1jYXB0dXJpbmcg
dHVybmVkIG9mZikiKQotICAgICAgICAgICAgY2xzLl9wbHVnaW5tYW5hZ2VyLmhvb2sucHl0ZXN0
X2VudGVyX3BkYihjb25maWc9Y2xzLl9jb25maWcpCi0gICAgICAgIGNscy5fcGRiX2NscygpLnNl
dF90cmFjZShmcmFtZSkKLQotCi1jbGFzcyBQZGJJbnZva2U6Ci0gICAgZGVmIHB5dGVzdF9leGNl
cHRpb25faW50ZXJhY3Qoc2VsZiwgbm9kZSwgY2FsbCwgcmVwb3J0KToKLSAgICAgICAgY2FwbWFu
ID0gbm9kZS5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikK
LSAgICAgICAgaWYgY2FwbWFuOgotICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVu
ZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUo
b3V0KQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShlcnIpCi0gICAgICAgIF9lbnRlcl9w
ZGIobm9kZSwgY2FsbC5leGNpbmZvLCByZXBvcnQpCi0KLSAgICBkZWYgcHl0ZXN0X2ludGVybmFs
ZXJyb3Ioc2VsZiwgZXhjcmVwciwgZXhjaW5mbyk6Ci0gICAgICAgIGZvciBsaW5lIGluIHN0cihl
eGNyZXByKS5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIklOVEVS
TkFMRVJST1I+ICVzXG4iICUgbGluZSkKLSAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQot
ICAgICAgICB0YiA9IF9wb3N0bW9ydGVtX3RyYWNlYmFjayhleGNpbmZvKQotICAgICAgICBwb3N0
X21vcnRlbSh0YikKLQotCi1kZWYgX2VudGVyX3BkYihub2RlLCBleGNpbmZvLCByZXApOgotICAg
ICMgWFhYIHdlIHJlLXVzZSB0aGUgVGVybWluYWxSZXBvcnRlcidzIHRlcm1pbmFsd3JpdGVyCi0g
ICAgIyBiZWNhdXNlIHRoaXMgc2VlbXMgdG8gYXZvaWQgc29tZSBlbmNvZGluZyByZWxhdGVkIHRy
b3VibGVzCi0gICAgIyBmb3Igbm90IGNvbXBsZXRlbHkgY2xlYXIgcmVhc29ucy4KLSAgICB0dyA9
IG5vZGUuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJ0ZXJtaW5hbHJlcG9ydGVyIiku
X3R3Ci0gICAgdHcubGluZSgpCi0gICAgdHcuc2VwKCI+IiwgInRyYWNlYmFjayIpCi0gICAgcmVw
LnRvdGVybWluYWwodHcpCi0gICAgdHcuc2VwKCI+IiwgImVudGVyaW5nIFBEQiIpCi0gICAgdGIg
PSBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbykKLSAgICBwb3N0X21vcnRlbSh0YikKLSAg
ICByZXAuX3BkYnNob3duID0gVHJ1ZQotICAgIHJldHVybiByZXAKLQotCi1kZWYgX3Bvc3Rtb3J0
ZW1fdHJhY2ViYWNrKGV4Y2luZm8pOgotICAgICMgQSBkb2N0ZXN0LlVuZXhwZWN0ZWRFeGNlcHRp
b24gaXMgbm90IHVzZWZ1bCBmb3IgcG9zdF9tb3J0ZW0uCi0gICAgIyBVc2UgdGhlIHVuZGVybHlp
bmcgZXhjZXB0aW9uIGluc3RlYWQ6Ci0gICAgZnJvbSBkb2N0ZXN0IGltcG9ydCBVbmV4cGVjdGVk
RXhjZXB0aW9uCi0gICAgaWYgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVlLCBVbmV4cGVjdGVkRXhj
ZXB0aW9uKToKLSAgICAgICAgcmV0dXJuIGV4Y2luZm8udmFsdWUuZXhjX2luZm9bMl0KLSAgICBl
bHNlOgotICAgICAgICByZXR1cm4gZXhjaW5mby5fZXhjaW5mb1syXQotCi0KLWRlZiBfZmluZF9s
YXN0X25vbl9oaWRkZW5fZnJhbWUoc3RhY2spOgotICAgIGkgPSBtYXgoMCwgbGVuKHN0YWNrKSAt
IDEpCi0gICAgd2hpbGUgaSBhbmQgc3RhY2tbaV1bMF0uZl9sb2NhbHMuZ2V0KCJfX3RyYWNlYmFj
a2hpZGVfXyIsIEZhbHNlKToKLSAgICAgICAgaSAtPSAxCi0gICAgcmV0dXJuIGkKLQotCi1kZWYg
cG9zdF9tb3J0ZW0odCk6Ci0gICAgY2xhc3MgUGRiKHB5dGVzdFBEQi5fcGRiX2Nscyk6Ci0gICAg
ICAgIGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6Ci0gICAgICAgICAgICBzdGFjaywgaSA9IHBk
Yi5QZGIuZ2V0X3N0YWNrKHNlbGYsIGYsIHQpCi0gICAgICAgICAgICBpZiBmIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgaSA9IF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9mcmFtZShzdGFjaykKLSAg
ICAgICAgICAgIHJldHVybiBzdGFjaywgaQotICAgIHAgPSBQZGIoKQotICAgIHAucmVzZXQoKQot
ICAgIHAuaW50ZXJhY3Rpb24oTm9uZSwgdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvZGVwcmVjYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVwcmVjYXRlZC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMwZmJlY2E3YmM5ZTk3NDE3MGE5ZWNlYWMzMjc2
NzdmNTYxZjEyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1
MiArMCwwIEBACi0iIiIKLVRoaXMgbW9kdWxlIGNvbnRhaW5zIGRlcHJlY2F0aW9uIG1lc3NhZ2Vz
IGFuZCBiaXRzIG9mIGNvZGUgdXNlZCBlbHNld2hlcmUgaW4gdGhlIGNvZGViYXNlCi10aGF0IGlz
IHBsYW5uZWQgdG8gYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBweXRlc3QgcmVsZWFzZS4KLQotS2Vl
cGluZyBpdCBpbiBhIGNlbnRyYWwgbG9jYXRpb24gbWFrZXMgaXQgZWFzeSB0byB0cmFjayB3aGF0
IGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZAotYmUgcmVtb3ZlZCB3aGVuIHRoZSB0aW1lIGNvbWVz
LgotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi0KLQotY2xhc3MgUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoRGVwcmVj
YXRpb25XYXJuaW5nKToKLSAgICAiIiJ3YXJuaW5nIGNsYXNzIGZvciBmZWF0dXJlcyByZW1vdmVk
IGluIHB5dGVzdCA0LjAiIiIKLQotCi1NQUlOX1NUUl9BUkdTID0gJ3Bhc3NpbmcgYSBzdHJpbmcg
dG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAnIFwKLSAgICAncGFzcyBhIGxpc3Qgb2Yg
YXJndW1lbnRzIGluc3RlYWQuJwotCi1ZSUVMRF9URVNUUyA9ICd5aWVsZCB0ZXN0cyBhcmUgZGVw
cmVjYXRlZCwgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0LjAnCi0KLUZV
TkNBUkdfUFJFRklYID0gKAotICAgICd7bmFtZX06IGRlY2xhcmluZyBmaXh0dXJlcyB1c2luZyAi
cHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4IGlzIGRlcHJlY2F0ZWQgJwotICAgICdhbmQgc2NoZWR1
bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMC4gICcKLSAgICAnUGxlYXNlIHJlbW92ZSB0
aGUgcHJlZml4IGFuZCB1c2UgdGhlIEBweXRlc3QuZml4dHVyZSBkZWNvcmF0b3IgaW5zdGVhZC4n
KQotCi1TRVRVUF9DRkdfUFlURVNUID0gJ1tweXRlc3RdIHNlY3Rpb24gaW4gc2V0dXAuY2ZnIGZp
bGVzIGlzIGRlcHJlY2F0ZWQsIHVzZSBbdG9vbDpweXRlc3RdIGluc3RlYWQuJwotCi1HRVRGVU5D
QVJHVkFMVUUgPSAidXNlIG9mIGdldGZ1bmNhcmd2YWx1ZSBpcyBkZXByZWNhdGVkLCB1c2UgZ2V0
Zml4dHVyZXZhbHVlIgotCi1SRVNVTFRfTE9HID0gKAotICAgICctLXJlc3VsdC1sb2cgaXMgZGVw
cmVjYXRlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIHB5dGVzdCA0LjAuXG4nCi0gICAg
J1NlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvdXNhZ2UuaHRtbCNjcmVhdGlu
Zy1yZXN1bHRsb2ctZm9ybWF0LWZpbGVzIGZvciBtb3JlIGluZm9ybWF0aW9uLicKLSkKLQotTUFS
S19JTkZPX0FUVFJJQlVURSA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5nKAotICAgICJNYXJrSW5m
byBvYmplY3RzIGFyZSBkZXByZWNhdGVkIGFzIHRoZXkgY29udGFpbiB0aGUgbWVyZ2VkIG1hcmtz
IgotKQotCi1NQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcgPSBSZW1vdmVkSW5QeXRlc3Q0V2Fy
bmluZygKLSAgICAiQXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycyBpcyBkZXBy
ZWNhdGVkLCIKLSAgICAiIHBsZWFzZSB1c2UgcHl0ZXN0LnBhcmFtKC4uLiwgbWFya3M9Li4uKSBp
bnN0ZWFkLlxuIgotICAgICJGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0dHBzOi8vZG9jcy5weXRl
c3Qub3JnL2VuL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIgotKQotCi1DT0xMRUNUT1JfTUFLRUlU
RU0gPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKLSAgICAicHljb2xsZWN0b3IgbWFrZWl0ZW0g
d2FzIHJlbW92ZWQgIgotICAgICJhcyBpdCBpcyBhbiBhY2NpZGVudGlhbGx5IGxlYWtlZCBpbnRl
cm5hbCBhcGkiCi0pCi0KLU1FVEFGVU5DX0FERF9DQUxMID0gKAotICAgICJNZXRhZnVuYy5hZGRj
YWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0
LjAuXG4iCi0gICAgIlBsZWFzZSB1c2UgTWV0YWZ1bmMucGFyYW1ldHJpemUgaW5zdGVhZC4iCi0p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2RvY3Rlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiYTkw
ZTU1MWM1MDVhZWQ5OTNhNzk5MTlkZDAzOTk5ODYxMGE2ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kb2N0ZXN0LnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMzY5ICswLDAgQEAKLSIiIiBkaXNjb3ZlciBhbmQgcnVuIGRv
Y3Rlc3RzIGluIG1vZHVsZXMgYW5kIHRlc3QgZmlsZXMuIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCB0
cmFjZWJhY2sKLQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0
IEV4Y2VwdGlvbkluZm8sIFJlcHJGaWxlTG9jYXRpb24sIFRlcm1pbmFsUmVwcgotZnJvbSBfcHl0
ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlUmVxdWVzdAotCi0KLURPQ1RFU1RfUkVQT1JUX0NI
T0lDRV9OT05FID0gJ25vbmUnCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0VfQ0RJRkYgPSAnY2RpZmYn
Ci1ET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkYgPSAnbmRpZmYnCi1ET0NURVNUX1JFUE9SVF9D
SE9JQ0VfVURJRkYgPSAndWRpZmYnCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0VfT05MWV9GSVJTVF9G
QUlMVVJFID0gJ29ubHlfZmlyc3RfZmFpbHVyZScKLQotRE9DVEVTVF9SRVBPUlRfQ0hPSUNFUyA9
ICgKLSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9ORSwKLSAgICBET0NURVNUX1JFUE9SVF9D
SE9JQ0VfQ0RJRkYsCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05ESUZGLAotICAgIERPQ1RF
U1RfUkVQT1JUX0NIT0lDRV9VRElGRiwKLSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfT05MWV9G
SVJTVF9GQUlMVVJFLAotKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAg
cGFyc2VyLmFkZGluaSgnZG9jdGVzdF9vcHRpb25mbGFncycsICdvcHRpb24gZmxhZ3MgZm9yIGRv
Y3Rlc3RzJywKLSAgICAgICAgICAgICAgICAgIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsiRUxMSVBT
SVMiXSkKLSAgICBwYXJzZXIuYWRkaW5pKCJkb2N0ZXN0X2VuY29kaW5nIiwgJ2VuY29kaW5nIHVz
ZWQgZm9yIGRvY3Rlc3QgZmlsZXMnLCBkZWZhdWx0PSJ1dGYtOCIpCi0gICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoImNvbGxlY3QiKQotICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LW1v
ZHVsZXMiLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJydW4gZG9jdGVzdHMgaW4gYWxsIC5w
eSBtb2R1bGVzIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iZG9jdGVzdG1vZHVsZXMiKQot
ICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LXJlcG9ydCIsCi0gICAgICAgICAgICAgICAg
ICAgIHR5cGU9c3RyLmxvd2VyLCBkZWZhdWx0PSJ1ZGlmZiIsCi0gICAgICAgICAgICAgICAgICAg
IGhlbHA9ImNob29zZSBhbm90aGVyIG91dHB1dCBmb3JtYXQgZm9yIGRpZmZzIG9uIGRvY3Rlc3Qg
ZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgIGNob2ljZXM9RE9DVEVTVF9SRVBPUlRfQ0hP
SUNFUywKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iZG9jdGVzdHJlcG9ydCIpCi0gICAgZ3Jv
dXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtZ2xvYiIsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0iYXBwZW5kIiwgZGVmYXVsdD1bXSwgbWV0YXZhcj0icGF0IiwKLSAgICAgICAgICAgICAgICAg
ICAgaGVscD0iZG9jdGVzdHMgZmlsZSBtYXRjaGluZyBwYXR0ZXJuLCBkZWZhdWx0OiB0ZXN0Ki50
eHQiLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0Z2xvYiIpCi0gICAgZ3JvdXAu
YWRkb3B0aW9uKCItLWRvY3Rlc3QtaWdub3JlLWltcG9ydC1lcnJvcnMiLAotICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJpZ25vcmUgZG9jdGVzdCBJbXBvcnRFcnJvcnMiLAotICAgICAgICAgICAg
ICAgICAgICBkZXN0PSJkb2N0ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3JzIikKLQotCi1kZWYgcHl0
ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgotICAgIGNvbmZpZyA9IHBhcmVudC5jb25m
aWcKLSAgICBpZiBwYXRoLmV4dCA9PSAiLnB5IjoKLSAgICAgICAgaWYgY29uZmlnLm9wdGlvbi5k
b2N0ZXN0bW9kdWxlcyBhbmQgbm90IF9pc19zZXR1cF9weShjb25maWcsIHBhdGgsIHBhcmVudCk6
Ci0gICAgICAgICAgICByZXR1cm4gRG9jdGVzdE1vZHVsZShwYXRoLCBwYXJlbnQpCi0gICAgZWxp
ZiBfaXNfZG9jdGVzdChjb25maWcsIHBhdGgsIHBhcmVudCk6Ci0gICAgICAgIHJldHVybiBEb2N0
ZXN0VGV4dGZpbGUocGF0aCwgcGFyZW50KQotCi0KLWRlZiBfaXNfc2V0dXBfcHkoY29uZmlnLCBw
YXRoLCBwYXJlbnQpOgotICAgIGlmIHBhdGguYmFzZW5hbWUgIT0gInNldHVwLnB5IjoKLSAgICAg
ICAgcmV0dXJuIEZhbHNlCi0gICAgY29udGVudHMgPSBwYXRoLnJlYWQoKQotICAgIHJldHVybiAn
c2V0dXB0b29scycgaW4gY29udGVudHMgb3IgJ2Rpc3R1dGlscycgaW4gY29udGVudHMKLQotCi1k
ZWYgX2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgotICAgIGlmIHBhdGguZXh0IGlu
ICgnLnR4dCcsICcucnN0JykgYW5kIHBhcmVudC5zZXNzaW9uLmlzaW5pdHBhdGgocGF0aCk6Ci0g
ICAgICAgIHJldHVybiBUcnVlCi0gICAgZ2xvYnMgPSBjb25maWcuZ2V0b3B0aW9uKCJkb2N0ZXN0
Z2xvYiIpIG9yIFsndGVzdCoudHh0J10KLSAgICBmb3IgZ2xvYiBpbiBnbG9iczoKLSAgICAgICAg
aWYgcGF0aC5jaGVjayhmbm1hdGNoPWdsb2IpOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAg
ICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBSZXByRmFpbERvY3Rlc3QoVGVybWluYWxSZXByKToK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBybG9jYXRpb24sIGxpbmVzKToKLSAgICAgICAg
c2VsZi5yZXBybG9jYXRpb24gPSByZXBybG9jYXRpb24KLSAgICAgICAgc2VsZi5saW5lcyA9IGxp
bmVzCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAgIGZvciBsaW5lIGlu
IHNlbGYubGluZXM6Ci0gICAgICAgICAgICB0dy5saW5lKGxpbmUpCi0gICAgICAgIHNlbGYucmVw
cmxvY2F0aW9uLnRvdGVybWluYWwodHcpCi0KLQotY2xhc3MgRG9jdGVzdEl0ZW0ocHl0ZXN0Lkl0
ZW0pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQsIHJ1bm5lcj1Ob25lLCBk
dGVzdD1Ob25lKToKLSAgICAgICAgc3VwZXIoRG9jdGVzdEl0ZW0sIHNlbGYpLl9faW5pdF9fKG5h
bWUsIHBhcmVudCkKLSAgICAgICAgc2VsZi5ydW5uZXIgPSBydW5uZXIKLSAgICAgICAgc2VsZi5k
dGVzdCA9IGR0ZXN0Ci0gICAgICAgIHNlbGYub2JqID0gTm9uZQotICAgICAgICBzZWxmLmZpeHR1
cmVfcmVxdWVzdCA9IE5vbmUKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgaWYgc2Vs
Zi5kdGVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuZml4dHVyZV9yZXF1ZXN0ID0g
X3NldHVwX2ZpeHR1cmVzKHNlbGYpCi0gICAgICAgICAgICBnbG9icyA9IGRpY3QoZ2V0Zml4dHVy
ZT1zZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUpCi0gICAgICAgICAgICBmb3Ig
bmFtZSwgdmFsdWUgaW4gc2VsZi5maXh0dXJlX3JlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCdkb2N0
ZXN0X25hbWVzcGFjZScpLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgZ2xvYnNbbmFtZV0gPSB2
YWx1ZQotICAgICAgICAgICAgc2VsZi5kdGVzdC5nbG9icy51cGRhdGUoZ2xvYnMpCi0KLSAgICBk
ZWYgcnVudGVzdChzZWxmKToKLSAgICAgICAgX2NoZWNrX2FsbF9za2lwcGVkKHNlbGYuZHRlc3Qp
Ci0gICAgICAgIHNlbGYucnVubmVyLnJ1bihzZWxmLmR0ZXN0KQotCi0gICAgZGVmIHJlcHJfZmFp
bHVyZShzZWxmLCBleGNpbmZvKToKLSAgICAgICAgaW1wb3J0IGRvY3Rlc3QKLSAgICAgICAgaWYg
ZXhjaW5mby5lcnJpc2luc3RhbmNlKChkb2N0ZXN0LkRvY1Rlc3RGYWlsdXJlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Rlc3QuVW5leHBlY3RlZEV4Y2VwdGlvbikpOgot
ICAgICAgICAgICAgZG9jdGVzdGZhaWx1cmUgPSBleGNpbmZvLnZhbHVlCi0gICAgICAgICAgICBl
eGFtcGxlID0gZG9jdGVzdGZhaWx1cmUuZXhhbXBsZQotICAgICAgICAgICAgdGVzdCA9IGRvY3Rl
c3RmYWlsdXJlLnRlc3QKLSAgICAgICAgICAgIGZpbGVuYW1lID0gdGVzdC5maWxlbmFtZQotICAg
ICAgICAgICAgaWYgdGVzdC5saW5lbm8gaXMgTm9uZToKLSAgICAgICAgICAgICAgICBsaW5lbm8g
PSBOb25lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGxpbmVubyA9IHRlc3Qu
bGluZW5vICsgZXhhbXBsZS5saW5lbm8gKyAxCi0gICAgICAgICAgICBtZXNzYWdlID0gZXhjaW5m
by50eXBlLl9fbmFtZV9fCi0gICAgICAgICAgICByZXBybG9jYXRpb24gPSBSZXByRmlsZUxvY2F0
aW9uKGZpbGVuYW1lLCBsaW5lbm8sIG1lc3NhZ2UpCi0gICAgICAgICAgICBjaGVja2VyID0gX2dl
dF9jaGVja2VyKCkKLSAgICAgICAgICAgIHJlcG9ydF9jaG9pY2UgPSBfZ2V0X3JlcG9ydF9jaG9p
Y2Uoc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJkb2N0ZXN0cmVwb3J0IikpCi0gICAgICAgICAgICBp
ZiBsaW5lbm8gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgbGluZXMgPSBkb2N0ZXN0ZmFp
bHVyZS50ZXN0LmRvY3N0cmluZy5zcGxpdGxpbmVzKEZhbHNlKQotICAgICAgICAgICAgICAgICMg
YWRkIGxpbmUgbnVtYmVycyB0byB0aGUgbGVmdCBvZiB0aGUgZXJyb3IgbWVzc2FnZQotICAgICAg
ICAgICAgICAgIGxpbmVzID0gWyIlMDNkICVzIiAlIChpICsgdGVzdC5saW5lbm8gKyAxLCB4KQot
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSwgeCkgaW4gZW51bWVyYXRlKGxpbmVzKV0K
LSAgICAgICAgICAgICAgICAjIHRyaW0gZG9jc3RyaW5nIGVycm9yIGxpbmVzIHRvIDEwCi0gICAg
ICAgICAgICAgICAgbGluZXMgPSBsaW5lc1ttYXgoZXhhbXBsZS5saW5lbm8gLSA5LCAwKTpleGFt
cGxlLmxpbmVubyArIDFdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGxpbmVz
ID0gWydFWEFNUExFIExPQ0FUSU9OIFVOS05PV04sIG5vdCBzaG93aW5nIGFsbCB0ZXN0cyBvZiB0
aGF0IGV4YW1wbGUnXQotICAgICAgICAgICAgICAgIGluZGVudCA9ICc+Pj4nCi0gICAgICAgICAg
ICAgICAgZm9yIGxpbmUgaW4gZXhhbXBsZS5zb3VyY2Uuc3BsaXRsaW5lcygpOgotICAgICAgICAg
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoJz8/PyAlcyAlcycgJSAoaW5kZW50LCBsaW5lKSkKLSAg
ICAgICAgICAgICAgICAgICAgaW5kZW50ID0gJy4uLicKLSAgICAgICAgICAgIGlmIGV4Y2luZm8u
ZXJyaXNpbnN0YW5jZShkb2N0ZXN0LkRvY1Rlc3RGYWlsdXJlKToKLSAgICAgICAgICAgICAgICBs
aW5lcyArPSBjaGVja2VyLm91dHB1dF9kaWZmZXJlbmNlKGV4YW1wbGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0ZXN0ZmFpbHVyZS5nb3Qs
IHJlcG9ydF9jaG9pY2UpLnNwbGl0KCJcbiIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIGlubmVyX2V4Y2luZm8gPSBFeGNlcHRpb25JbmZvKGV4Y2luZm8udmFsdWUuZXhjX2lu
Zm8pCi0gICAgICAgICAgICAgICAgbGluZXMgKz0gWyJVTkVYUEVDVEVEIEVYQ0VQVElPTjogJXMi
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihpbm5lcl9leGNpbmZvLnZhbHVlKV0K
LSAgICAgICAgICAgICAgICBsaW5lcyArPSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigqZXhj
aW5mby52YWx1ZS5leGNfaW5mbykKLSAgICAgICAgICAgIHJldHVybiBSZXByRmFpbERvY3Rlc3Qo
cmVwcmxvY2F0aW9uLCBsaW5lcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBz
dXBlcihEb2N0ZXN0SXRlbSwgc2VsZikucmVwcl9mYWlsdXJlKGV4Y2luZm8pCi0KLSAgICBkZWYg
cmVwb3J0aW5mbyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnNwYXRoLCBzZWxmLmR0ZXN0
LmxpbmVubywgIltkb2N0ZXN0XSAlcyIgJSBzZWxmLm5hbWUKLQotCi1kZWYgX2dldF9mbGFnX2xv
b2t1cCgpOgotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgcmV0dXJuIGRpY3QoRE9OVF9BQ0NFUFRf
VFJVRV9GT1JfMT1kb2N0ZXN0LkRPTlRfQUNDRVBUX1RSVUVfRk9SXzEsCi0gICAgICAgICAgICAg
ICAgRE9OVF9BQ0NFUFRfQkxBTktMSU5FPWRvY3Rlc3QuRE9OVF9BQ0NFUFRfQkxBTktMSU5FLAot
ICAgICAgICAgICAgICAgIE5PUk1BTElaRV9XSElURVNQQUNFPWRvY3Rlc3QuTk9STUFMSVpFX1dI
SVRFU1BBQ0UsCi0gICAgICAgICAgICAgICAgRUxMSVBTSVM9ZG9jdGVzdC5FTExJUFNJUywKLSAg
ICAgICAgICAgICAgICBJR05PUkVfRVhDRVBUSU9OX0RFVEFJTD1kb2N0ZXN0LklHTk9SRV9FWENF
UFRJT05fREVUQUlMLAotICAgICAgICAgICAgICAgIENPTVBBUklTT05fRkxBR1M9ZG9jdGVzdC5D
T01QQVJJU09OX0ZMQUdTLAotICAgICAgICAgICAgICAgIEFMTE9XX1VOSUNPREU9X2dldF9hbGxv
d191bmljb2RlX2ZsYWcoKSwKLSAgICAgICAgICAgICAgICBBTExPV19CWVRFUz1fZ2V0X2FsbG93
X2J5dGVzX2ZsYWcoKSwKLSAgICAgICAgICAgICAgICApCi0KLQotZGVmIGdldF9vcHRpb25mbGFn
cyhwYXJlbnQpOgotICAgIG9wdGlvbmZsYWdzX3N0ciA9IHBhcmVudC5jb25maWcuZ2V0aW5pKCJk
b2N0ZXN0X29wdGlvbmZsYWdzIikKLSAgICBmbGFnX2xvb2t1cF90YWJsZSA9IF9nZXRfZmxhZ19s
b29rdXAoKQotICAgIGZsYWdfYWNjID0gMAotICAgIGZvciBmbGFnIGluIG9wdGlvbmZsYWdzX3N0
cjoKLSAgICAgICAgZmxhZ19hY2MgfD0gZmxhZ19sb29rdXBfdGFibGVbZmxhZ10KLSAgICByZXR1
cm4gZmxhZ19hY2MKLQotCi1jbGFzcyBEb2N0ZXN0VGV4dGZpbGUocHl0ZXN0Lk1vZHVsZSk6Ci0g
ICAgb2JqID0gTm9uZQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAgICAgIGltcG9ydCBk
b2N0ZXN0Ci0KLSAgICAgICAgIyBpbnNwaXJlZCBieSBkb2N0ZXN0LnRlc3RmaWxlOyBpZGVhbGx5
IHdlIHdvdWxkIHVzZSBpdCBkaXJlY3RseSwKLSAgICAgICAgIyBidXQgaXQgZG9lc24ndCBzdXBw
b3J0IHBhc3NpbmcgYSBjdXN0b20gY2hlY2tlcgotICAgICAgICBlbmNvZGluZyA9IHNlbGYuY29u
ZmlnLmdldGluaSgiZG9jdGVzdF9lbmNvZGluZyIpCi0gICAgICAgIHRleHQgPSBzZWxmLmZzcGF0
aC5yZWFkX3RleHQoZW5jb2RpbmcpCi0gICAgICAgIGZpbGVuYW1lID0gc3RyKHNlbGYuZnNwYXRo
KQotICAgICAgICBuYW1lID0gc2VsZi5mc3BhdGguYmFzZW5hbWUKLSAgICAgICAgZ2xvYnMgPSB7
J19fbmFtZV9fJzogJ19fbWFpbl9fJ30KLQotICAgICAgICBvcHRpb25mbGFncyA9IGdldF9vcHRp
b25mbGFncyhzZWxmKQotICAgICAgICBydW5uZXIgPSBkb2N0ZXN0LkRlYnVnUnVubmVyKHZlcmJv
c2U9MCwgb3B0aW9uZmxhZ3M9b3B0aW9uZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tlcj1fZ2V0X2NoZWNrZXIoKSkKLSAgICAgICAgX2ZpeF9zcG9vZl9w
eXRob24yKHJ1bm5lciwgZW5jb2RpbmcpCi0KLSAgICAgICAgcGFyc2VyID0gZG9jdGVzdC5Eb2NU
ZXN0UGFyc2VyKCkKLSAgICAgICAgdGVzdCA9IHBhcnNlci5nZXRfZG9jdGVzdCh0ZXh0LCBnbG9i
cywgbmFtZSwgZmlsZW5hbWUsIDApCi0gICAgICAgIGlmIHRlc3QuZXhhbXBsZXM6Ci0gICAgICAg
ICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0Lm5hbWUsIHNlbGYsIHJ1bm5lciwgdGVzdCkKLQot
Ci1kZWYgX2NoZWNrX2FsbF9za2lwcGVkKHRlc3QpOgotICAgICIiInJhaXNlcyBweXRlc3Quc2tp
cCgpIGlmIGFsbCBleGFtcGxlcyBpbiB0aGUgZ2l2ZW4gRG9jVGVzdCBoYXZlIHRoZSBTS0lQCi0g
ICAgb3B0aW9uIHNldC4KLSAgICAiIiIKLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIGFsbF9za2lw
cGVkID0gYWxsKHgub3B0aW9ucy5nZXQoZG9jdGVzdC5TS0lQLCBGYWxzZSkgZm9yIHggaW4gdGVz
dC5leGFtcGxlcykKLSAgICBpZiBhbGxfc2tpcHBlZDoKLSAgICAgICAgcHl0ZXN0LnNraXAoJ2Fs
bCB0ZXN0cyBza2lwcGVkIGJ5ICtTS0lQIG9wdGlvbicpCi0KLQotY2xhc3MgRG9jdGVzdE1vZHVs
ZShweXRlc3QuTW9kdWxlKToKLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgaW1wb3J0
IGRvY3Rlc3QKLSAgICAgICAgaWYgc2VsZi5mc3BhdGguYmFzZW5hbWUgPT0gImNvbmZ0ZXN0LnB5
IjoKLSAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIuX2ltcG9y
dGNvbmZ0ZXN0KHNlbGYuZnNwYXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuZnNwYXRoLnB5aW1wb3J0KCkKLSAgICAgICAg
ICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5n
ZXR2YWx1ZSgnZG9jdGVzdF9pZ25vcmVfaW1wb3J0X2Vycm9ycycpOgotICAgICAgICAgICAgICAg
ICAgICBweXRlc3Quc2tpcCgndW5hYmxlIHRvIGltcG9ydCBtb2R1bGUgJXInICUgc2VsZi5mc3Bh
dGgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAg
ICAgICAgIyB1c2VzIGludGVybmFsIGRvY3Rlc3QgbW9kdWxlIHBhcnNpbmcgbWVjaGFuaXNtCi0g
ICAgICAgIGZpbmRlciA9IGRvY3Rlc3QuRG9jVGVzdEZpbmRlcigpCi0gICAgICAgIG9wdGlvbmZs
YWdzID0gZ2V0X29wdGlvbmZsYWdzKHNlbGYpCi0gICAgICAgIHJ1bm5lciA9IGRvY3Rlc3QuRGVi
dWdSdW5uZXIodmVyYm9zZT0wLCBvcHRpb25mbGFncz1vcHRpb25mbGFncywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VyPV9nZXRfY2hlY2tlcigpKQotCi0gICAg
ICAgIGZvciB0ZXN0IGluIGZpbmRlci5maW5kKG1vZHVsZSwgbW9kdWxlLl9fbmFtZV9fKToKLSAg
ICAgICAgICAgIGlmIHRlc3QuZXhhbXBsZXM6ICAjIHNraXAgZW1wdHkgZG9jdGVzdHMKLSAgICAg
ICAgICAgICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0Lm5hbWUsIHNlbGYsIHJ1bm5lciwgdGVz
dCkKLQotCi1kZWYgX3NldHVwX2ZpeHR1cmVzKGRvY3Rlc3RfaXRlbSk6Ci0gICAgIiIiCi0gICAg
VXNlZCBieSBEb2N0ZXN0VGV4dGZpbGUgYW5kIERvY3Rlc3RJdGVtIHRvIHNldHVwIGZpeHR1cmUg
aW5mb3JtYXRpb24uCi0gICAgIiIiCi0gICAgZGVmIGZ1bmMoKToKLSAgICAgICAgcGFzcwotCi0g
ICAgZG9jdGVzdF9pdGVtLmZ1bmNhcmdzID0ge30KLSAgICBmbSA9IGRvY3Rlc3RfaXRlbS5zZXNz
aW9uLl9maXh0dXJlbWFuYWdlcgotICAgIGRvY3Rlc3RfaXRlbS5fZml4dHVyZWluZm8gPSBmbS5n
ZXRmaXh0dXJlaW5mbyhub2RlPWRvY3Rlc3RfaXRlbSwgZnVuYz1mdW5jLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHM9Tm9uZSwgZnVuY2FyZ3M9
RmFsc2UpCi0gICAgZml4dHVyZV9yZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoZG9jdGVzdF9pdGVt
KQotICAgIGZpeHR1cmVfcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKLSAgICByZXR1cm4gZml4dHVy
ZV9yZXF1ZXN0Ci0KLQotZGVmIF9nZXRfY2hlY2tlcigpOgotICAgICIiIgotICAgIFJldHVybnMg
YSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIgc3ViY2xhc3MgdGhhdCB0YWtlcyBpbiBhY2NvdW50IHRo
ZQotICAgIEFMTE9XX1VOSUNPREUgb3B0aW9uIHRvIGlnbm9yZSB1JycgcHJlZml4ZXMgaW4gc3Ry
aW5ncyBhbmQgQUxMT1dfQllURVMKLSAgICB0byBzdHJpcCBiJycgcHJlZml4ZXMuCi0gICAgVXNl
ZnVsIHdoZW4gdGhlIHNhbWUgZG9jdGVzdCBzaG91bGQgcnVuIGluIFB5dGhvbiAyIGFuZCBQeXRo
b24gMy4KLQotICAgIEFuIGlubmVyIGNsYXNzIGlzIHVzZWQgdG8gYXZvaWQgaW1wb3J0aW5nICJk
b2N0ZXN0IiBhdCB0aGUgbW9kdWxlCi0gICAgbGV2ZWwuCi0gICAgIiIiCi0gICAgaWYgaGFzYXR0
cihfZ2V0X2NoZWNrZXIsICdMaXRlcmFsc091dHB1dENoZWNrZXInKToKLSAgICAgICAgcmV0dXJu
IF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNrZXIoKQotCi0gICAgaW1wb3J0IGRvY3Rl
c3QKLSAgICBpbXBvcnQgcmUKLQotICAgIGNsYXNzIExpdGVyYWxzT3V0cHV0Q2hlY2tlcihkb2N0
ZXN0Lk91dHB1dENoZWNrZXIpOgotICAgICAgICAiIiIKLSAgICAgICAgQ29waWVkIGZyb20gZG9j
dGVzdF9ub3NlX3BsdWdpbi5weSBmcm9tIHRoZSBubHRrIHByb2plY3Q6Ci0gICAgICAgICAgICBo
dHRwczovL2dpdGh1Yi5jb20vbmx0ay9ubHRrCi0KLSAgICAgICAgRnVydGhlciBleHRlbmRlZCB0
byBhbHNvIHN1cHBvcnQgYnl0ZSBsaXRlcmFscy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgX3Vu
aWNvZGVfbGl0ZXJhbF9yZSA9IHJlLmNvbXBpbGUociIoXFd8XilbdVVdKFtyUl0/W1wnXCJdKSIs
IHJlLlVOSUNPREUpCi0gICAgICAgIF9ieXRlc19saXRlcmFsX3JlID0gcmUuY29tcGlsZShyIihc
V3xeKVtiQl0oW3JSXT9bXCdcIl0pIiwgcmUuVU5JQ09ERSkKLQotICAgICAgICBkZWYgY2hlY2tf
b3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwgb3B0aW9uZmxhZ3MpOgotICAgICAgICAgICAgcmVzID0g
ZG9jdGVzdC5PdXRwdXRDaGVja2VyLmNoZWNrX291dHB1dChzZWxmLCB3YW50LCBnb3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmZs
YWdzKQotICAgICAgICAgICAgaWYgcmVzOgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0K
LSAgICAgICAgICAgIGFsbG93X3VuaWNvZGUgPSBvcHRpb25mbGFncyAmIF9nZXRfYWxsb3dfdW5p
Y29kZV9mbGFnKCkKLSAgICAgICAgICAgIGFsbG93X2J5dGVzID0gb3B0aW9uZmxhZ3MgJiBfZ2V0
X2FsbG93X2J5dGVzX2ZsYWcoKQotICAgICAgICAgICAgaWYgbm90IGFsbG93X3VuaWNvZGUgYW5k
IG5vdCBhbGxvd19ieXRlczoKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAg
ICAgICAgZWxzZTogICMgcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgICAgIGRlZiByZW1v
dmVfcHJlZml4ZXMocmVnZXgsIHR4dCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZS5z
dWIocmVnZXgsIHInXDFcMicsIHR4dCkKLQotICAgICAgICAgICAgICAgIGlmIGFsbG93X3VuaWNv
ZGU6Ci0gICAgICAgICAgICAgICAgICAgIHdhbnQgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fdW5p
Y29kZV9saXRlcmFsX3JlLCB3YW50KQotICAgICAgICAgICAgICAgICAgICBnb3QgPSByZW1vdmVf
cHJlZml4ZXMoc2VsZi5fdW5pY29kZV9saXRlcmFsX3JlLCBnb3QpCi0gICAgICAgICAgICAgICAg
aWYgYWxsb3dfYnl0ZXM6Ci0gICAgICAgICAgICAgICAgICAgIHdhbnQgPSByZW1vdmVfcHJlZml4
ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9yZSwgd2FudCkKLSAgICAgICAgICAgICAgICAgICAgZ290
ID0gcmVtb3ZlX3ByZWZpeGVzKHNlbGYuX2J5dGVzX2xpdGVyYWxfcmUsIGdvdCkKLSAgICAgICAg
ICAgICAgICByZXMgPSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIuY2hlY2tfb3V0cHV0KHNlbGYsIHdh
bnQsIGdvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbmZsYWdzKQotICAgICAgICAgICAgICAgIHJldHVybiByZXMKLQotICAg
IF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNrZXIgPSBMaXRlcmFsc091dHB1dENoZWNr
ZXIKLSAgICByZXR1cm4gX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0Q2hlY2tlcigpCi0KLQot
ZGVmIF9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCk6Ci0gICAgIiIiCi0gICAgUmVnaXN0ZXJzIGFu
ZCByZXR1cm5zIHRoZSBBTExPV19VTklDT0RFIGZsYWcuCi0gICAgIiIiCi0gICAgaW1wb3J0IGRv
Y3Rlc3QKLSAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rlcl9vcHRpb25mbGFnKCdBTExPV19VTklD
T0RFJykKLQotCi1kZWYgX2dldF9hbGxvd19ieXRlc19mbGFnKCk6Ci0gICAgIiIiCi0gICAgUmVn
aXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBBTExPV19CWVRFUyBmbGFnLgotICAgICIiIgotICAgIGlt
cG9ydCBkb2N0ZXN0Ci0gICAgcmV0dXJuIGRvY3Rlc3QucmVnaXN0ZXJfb3B0aW9uZmxhZygnQUxM
T1dfQllURVMnKQotCi0KLWRlZiBfZ2V0X3JlcG9ydF9jaG9pY2Uoa2V5KToKLSAgICAiIiIKLSAg
ICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjdHVhbCBgZG9jdGVzdGAgbW9kdWxlIGZsYWcg
dmFsdWUsIHdlIHdhbnQgdG8gZG8gaXQgYXMgbGF0ZSBhcyBwb3NzaWJsZSB0byBhdm9pZAotICAg
IGltcG9ydGluZyBgZG9jdGVzdGAgYW5kIGFsbCBpdHMgZGVwZW5kZW5jaWVzIHdoZW4gcGFyc2lu
ZyBvcHRpb25zLCBhcyBpdCBhZGRzIG92ZXJoZWFkIGFuZCBicmVha3MgdGVzdHMuCi0gICAgIiIi
Ci0gICAgaW1wb3J0IGRvY3Rlc3QKLQotICAgIHJldHVybiB7Ci0gICAgICAgIERPQ1RFU1RfUkVQ
T1JUX0NIT0lDRV9VRElGRjogZG9jdGVzdC5SRVBPUlRfVURJRkYsCi0gICAgICAgIERPQ1RFU1Rf
UkVQT1JUX0NIT0lDRV9DRElGRjogZG9jdGVzdC5SRVBPUlRfQ0RJRkYsCi0gICAgICAgIERPQ1RF
U1RfUkVQT1JUX0NIT0lDRV9ORElGRjogZG9jdGVzdC5SRVBPUlRfTkRJRkYsCi0gICAgICAgIERP
Q1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkU6IGRvY3Rlc3QuUkVQT1JUX09O
TFlfRklSU1RfRkFJTFVSRSwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05PTkU6IDAs
Ci0gICAgfVtrZXldCi0KLQotZGVmIF9maXhfc3Bvb2ZfcHl0aG9uMihydW5uZXIsIGVuY29kaW5n
KToKLSAgICAiIiIKLSAgICBJbnN0YWxscyBhICJTcG9vZk91dCIgaW50byB0aGUgZ2l2ZW4gRGVi
dWdSdW5uZXIgc28gaXQgcHJvcGVybHkgZGVhbHMgd2l0aCB1bmljb2RlIG91dHB1dC4gVGhpcwot
ICAgIHNob3VsZCBwYXRjaCBvbmx5IGRvY3Rlc3RzIGZvciB0ZXh0IGZpbGVzIGJlY2F1c2UgdGhl
eSBkb24ndCBoYXZlIGEgd2F5IHRvIGRlY2xhcmUgdGhlaXIKLSAgICBlbmNvZGluZy4gRG9jdGVz
dHMgaW4gZG9jc3RyaW5ncyBmcm9tIFB5dGhvbiBtb2R1bGVzIGRvbid0IGhhdmUgdGhlIHNhbWUg
cHJvYmxlbSBnaXZlbiB0aGF0Ci0gICAgUHl0aG9uIGFscmVhZHkgZGVjb2RlZCB0aGUgc3RyaW5n
cy4KLQotICAgIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0gcmVsYXRlZCBpbiBpc3N1ZSAjMjQzNC4K
LSAgICAiIiIKLSAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBfUFkyCi0gICAgaWYgbm90
IF9QWTI6Ci0gICAgICAgIHJldHVybgotCi0gICAgZnJvbSBkb2N0ZXN0IGltcG9ydCBfU3Bvb2ZP
dXQKLQotICAgIGNsYXNzIFVuaWNvZGVTcG9vZihfU3Bvb2ZPdXQpOgotCi0gICAgICAgIGRlZiBn
ZXR2YWx1ZShzZWxmKToKLSAgICAgICAgICAgIHJlc3VsdCA9IF9TcG9vZk91dC5nZXR2YWx1ZShz
ZWxmKQotICAgICAgICAgICAgaWYgZW5jb2Rpbmc6Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0LmRlY29kZShlbmNvZGluZykKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQKLQotICAg
IHJ1bm5lci5fZmFrZW91dCA9IFVuaWNvZGVTcG9vZigpCi0KLQotQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdzZXNzaW9uJykKLWRlZiBkb2N0ZXN0X25hbWVzcGFjZSgpOgotICAgICIiIgotICAgIElu
amVjdCBuYW1lcyBpbnRvIHRoZSBkb2N0ZXN0IG5hbWVzcGFjZS4KLSAgICAiIiIKLSAgICByZXR1
cm4gZGljdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0dXJlcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTA5ZmZhZGRiYTczZmY4NGIyMzlkNGY0YWEyOWU5NmQwNTZjNWQ4ZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2ZpeHR1cmVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE0NyArMCwwIEBACi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0K
LWltcG9ydCBmdW5jdG9vbHMKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgc3lzCi1pbXBvcnQgd2Fy
bmluZ3MKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0Ci0KLWltcG9ydCBhdHRy
Ci1pbXBvcnQgcHkKLWZyb20gcHkuX2NvZGUuY29kZSBpbXBvcnQgRm9ybWF0dGVkRXhjaW5mbwot
Ci1pbXBvcnQgX3B5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcwotZnJvbSBfcHl0ZXN0
Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBv
cnQgKAotICAgIE5PVFNFVCwgZXhjX2NsZWFyLCBfZm9ybWF0X2FyZ3MsCi0gICAgZ2V0ZnNsaW5l
bm8sIGdldF9yZWFsX2Z1bmMsCi0gICAgaXNfZ2VuZXJhdG9yLCBpc2NsYXNzLCBnZXRpbWZ1bmMs
Ci0gICAgZ2V0bG9jYXRpb24sIGdldGZ1bmNhcmduYW1lcywKLSAgICBzYWZlX2dldGF0dHIsCi0g
ICAgRnVuY2FyZ25hbWVzQ29tcGF0QXR0ciwKLSkKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBv
cnQgZmFpbCwgVEVTVF9PVVRDT01FCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lv
bik6Ci0gICAgaW1wb3J0IF9weXRlc3QucHl0aG9uCi0KLSAgICBzY29wZW5hbWUyY2xhc3MudXBk
YXRlKHsKLSAgICAgICAgJ2NsYXNzJzogX3B5dGVzdC5weXRob24uQ2xhc3MsCi0gICAgICAgICdt
b2R1bGUnOiBfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUsCi0gICAgICAgICdmdW5jdGlvbic6IF9weXRl
c3QubWFpbi5JdGVtLAotICAgICAgICAnc2Vzc2lvbic6IF9weXRlc3QubWFpbi5TZXNzaW9uLAot
ICAgIH0pCi0gICAgc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIgPSBGaXh0dXJlTWFuYWdlcihzZXNz
aW9uKQotCi0KLXNjb3BlbmFtZTJjbGFzcyA9IHt9Ci0KLQotc2NvcGUycHJvcHMgPSBkaWN0KHNl
c3Npb249KCkpCi1zY29wZTJwcm9wc1sibW9kdWxlIl0gPSAoImZzcGF0aCIsICJtb2R1bGUiKQot
c2NvcGUycHJvcHNbImNsYXNzIl0gPSBzY29wZTJwcm9wc1sibW9kdWxlIl0gKyAoImNscyIsKQot
c2NvcGUycHJvcHNbImluc3RhbmNlIl0gPSBzY29wZTJwcm9wc1siY2xhc3MiXSArICgiaW5zdGFu
Y2UiLCApCi1zY29wZTJwcm9wc1siZnVuY3Rpb24iXSA9IHNjb3BlMnByb3BzWyJpbnN0YW5jZSJd
ICsgKCJmdW5jdGlvbiIsICJrZXl3b3JkcyIpCi0KLQotZGVmIHNjb3BlcHJvcGVydHkobmFtZT1O
b25lLCBkb2M9Tm9uZSk6Ci0gICAgZGVmIGRlY29yYXRlc2NvcGUoZnVuYyk6Ci0gICAgICAgIHNj
b3BlbmFtZSA9IG5hbWUgb3IgZnVuYy5fX25hbWVfXwotCi0gICAgICAgIGRlZiBwcm92aWRlKHNl
bGYpOgotICAgICAgICAgICAgaWYgZnVuYy5fX25hbWVfXyBpbiBzY29wZTJwcm9wc1tzZWxmLnNj
b3BlXToKLSAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhzZWxmKQotICAgICAgICAgICAgcmFp
c2UgQXR0cmlidXRlRXJyb3IoIiVzIG5vdCBhdmFpbGFibGUgaW4gJXMtc2NvcGVkIGNvbnRleHQi
ICUgKAotICAgICAgICAgICAgICAgIHNjb3BlbmFtZSwgc2VsZi5zY29wZSkpCi0KLSAgICAgICAg
cmV0dXJuIHByb3BlcnR5KHByb3ZpZGUsIE5vbmUsIE5vbmUsIGZ1bmMuX19kb2NfXykKLSAgICBy
ZXR1cm4gZGVjb3JhdGVzY29wZQotCi0KLWRlZiBnZXRfc2NvcGVfbm9kZShub2RlLCBzY29wZSk6
Ci0gICAgY2xzID0gc2NvcGVuYW1lMmNsYXNzLmdldChzY29wZSkKLSAgICBpZiBjbHMgaXMgTm9u
ZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBzY29wZSIpCi0gICAgcmV0dXJu
IG5vZGUuZ2V0cGFyZW50KGNscykKLQotCi1kZWYgYWRkX2Z1bmNhcmdfcHNldWRvX2ZpeHR1cmVf
ZGVmKGNvbGxlY3RvciwgbWV0YWZ1bmMsIGZpeHR1cmVtYW5hZ2VyKToKLSAgICAjIHRoaXMgZnVu
Y3Rpb24gd2lsbCB0cmFuc2Zvcm0gYWxsIGNvbGxlY3RlZCBjYWxscyB0byBhIGZ1bmN0aW9ucwot
ICAgICMgaWYgdGhleSB1c2UgZGlyZWN0IGZ1bmNhcmdzIChpLmUuIGRpcmVjdCBwYXJhbWV0cml6
YXRpb24pCi0gICAgIyBiZWNhdXNlIHdlIHdhbnQgbGF0ZXIgdGVzdCBleGVjdXRpb24gdG8gYmUg
YWJsZSB0byByZWx5IG9uCi0gICAgIyBhbiBleGlzdGluZyBGaXh0dXJlRGVmIHN0cnVjdHVyZSBm
b3IgYWxsIGFyZ3VtZW50cy4KLSAgICAjIFhYWCB3ZSBjYW4gcHJvYmFibHkgYXZvaWQgdGhpcyBh
bGdvcml0aG0gIGlmIHdlIG1vZGlmeSBDYWxsU3BlYzIKLSAgICAjIHRvIGRpcmVjdGx5IGNhcmUg
Zm9yIGNyZWF0aW5nIHRoZSBmaXh0dXJlZGVmcyB3aXRoaW4gaXRzIG1ldGhvZHMuCi0gICAgaWYg
bm90IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJnczoKLSAgICAgICAgcmV0dXJuICAjIHRoaXMg
ZnVuY3Rpb24gY2FsbCBkb2VzIG5vdCBoYXZlIGRpcmVjdCBwYXJhbWV0cml6YXRpb24KLSAgICAj
IGNvbGxlY3QgZnVuY2FyZ3Mgb2YgYWxsIGNhbGxzcGVjcyBpbnRvIGEgbGlzdCBvZiB2YWx1ZXMK
LSAgICBhcmcycGFyYW1zID0ge30KLSAgICBhcmcyc2NvcGUgPSB7fQotICAgIGZvciBjYWxsc3Bl
YyBpbiBtZXRhZnVuYy5fY2FsbHM6Ci0gICAgICAgIGZvciBhcmduYW1lLCBhcmd2YWx1ZSBpbiBj
YWxsc3BlYy5mdW5jYXJncy5pdGVtcygpOgotICAgICAgICAgICAgYXNzZXJ0IGFyZ25hbWUgbm90
IGluIGNhbGxzcGVjLnBhcmFtcwotICAgICAgICAgICAgY2FsbHNwZWMucGFyYW1zW2FyZ25hbWVd
ID0gYXJndmFsdWUKLSAgICAgICAgICAgIGFyZzJwYXJhbXNfbGlzdCA9IGFyZzJwYXJhbXMuc2V0
ZGVmYXVsdChhcmduYW1lLCBbXSkKLSAgICAgICAgICAgIGNhbGxzcGVjLmluZGljZXNbYXJnbmFt
ZV0gPSBsZW4oYXJnMnBhcmFtc19saXN0KQotICAgICAgICAgICAgYXJnMnBhcmFtc19saXN0LmFw
cGVuZChhcmd2YWx1ZSkKLSAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90IGluIGFyZzJzY29wZToK
LSAgICAgICAgICAgICAgICBzY29wZW51bSA9IGNhbGxzcGVjLl9hcmcyc2NvcGVudW0uZ2V0KGFy
Z25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzY29wZW51bV9mdW5jdGlvbikKLSAgICAgICAgICAgICAgICBhcmcyc2NvcGVbYXJnbmFt
ZV0gPSBzY29wZXNbc2NvcGVudW1dCi0gICAgICAgIGNhbGxzcGVjLmZ1bmNhcmdzLmNsZWFyKCkK
LQotICAgICMgcmVnaXN0ZXIgYXJ0aWZpY2lhbCBGaXh0dXJlRGVmJ3Mgc28gdGhhdCBsYXRlciBh
dCB0ZXN0IGV4ZWN1dGlvbgotICAgICMgdGltZSB3ZSBjYW4gcmVseSBvbiBhIHByb3BlciBGaXh0
dXJlRGVmIHRvIGV4aXN0IGZvciBmaXh0dXJlIHNldHVwLgotICAgIGFyZzJmaXh0dXJlZGVmcyA9
IG1ldGFmdW5jLl9hcmcyZml4dHVyZWRlZnMKLSAgICBmb3IgYXJnbmFtZSwgdmFsdWVsaXN0IGlu
IGFyZzJwYXJhbXMuaXRlbXMoKToKLSAgICAgICAgIyBpZiB3ZSBoYXZlIGEgc2NvcGUgdGhhdCBp
cyBoaWdoZXIgdGhhbiBmdW5jdGlvbiB3ZSBuZWVkCi0gICAgICAgICMgdG8gbWFrZSBzdXJlIHdl
IG9ubHkgZXZlciBjcmVhdGUgYW4gYWNjb3JkaW5nIGZpeHR1cmVkZWYgb24KLSAgICAgICAgIyBh
IHBlci1zY29wZSBiYXNpcy4gV2UgdGh1cyBzdG9yZSBhbmQgY2FjaGUgdGhlIGZpeHR1cmVkZWYg
b24gdGhlCi0gICAgICAgICMgbm9kZSByZWxhdGVkIHRvIHRoZSBzY29wZS4KLSAgICAgICAgc2Nv
cGUgPSBhcmcyc2NvcGVbYXJnbmFtZV0KLSAgICAgICAgbm9kZSA9IE5vbmUKLSAgICAgICAgaWYg
c2NvcGUgIT0gImZ1bmN0aW9uIjoKLSAgICAgICAgICAgIG5vZGUgPSBnZXRfc2NvcGVfbm9kZShj
b2xsZWN0b3IsIHNjb3BlKQotICAgICAgICAgICAgaWYgbm9kZSBpcyBOb25lOgotICAgICAgICAg
ICAgICAgIGFzc2VydCBzY29wZSA9PSAiY2xhc3MiIGFuZCBpc2luc3RhbmNlKGNvbGxlY3Rvciwg
X3B5dGVzdC5weXRob24uTW9kdWxlKQotICAgICAgICAgICAgICAgICMgdXNlIG1vZHVsZS1sZXZl
bCBjb2xsZWN0b3IgZm9yIGNsYXNzLXNjb3BlIChmb3Igbm93KQotICAgICAgICAgICAgICAgIG5v
ZGUgPSBjb2xsZWN0b3IKLSAgICAgICAgaWYgbm9kZSBhbmQgYXJnbmFtZSBpbiBub2RlLl9uYW1l
MnBzZXVkb2ZpeHR1cmVkZWY6Ci0gICAgICAgICAgICBhcmcyZml4dHVyZWRlZnNbYXJnbmFtZV0g
PSBbbm9kZS5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmW2FyZ25hbWVdXQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgZml4dHVyZWRlZiA9IEZpeHR1cmVEZWYoZml4dHVyZW1hbmFnZXIsICcnLCBh
cmduYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2RpcmVjdF9w
YXJhbV9maXh0dXJlX2Z1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cmcyc2NvcGVbYXJnbmFtZV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZWxpc3QsIEZhbHNlLCBGYWxzZSkKLSAgICAgICAgICAgIGFyZzJmaXh0dXJlZGVmc1thcmdu
YW1lXSA9IFtmaXh0dXJlZGVmXQotICAgICAgICAgICAgaWYgbm9kZSBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgICAgICBub2RlLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWZbYXJnbmFtZV0gPSBmaXh0
dXJlZGVmCi0KLQotZGVmIGdldGZpeHR1cmVtYXJrZXIob2JqKToKLSAgICAiIiIgcmV0dXJuIGZp
eHR1cmVtYXJrZXIgb3IgTm9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9yIHJhaXNlZAotICAgIGV4
Y2VwdGlvbnMuIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZ2V0YXR0cihvYmosICJfcHl0
ZXN0Zml4dHVyZWZ1bmN0aW9uIiwgTm9uZSkKLSAgICBleGNlcHQgVEVTVF9PVVRDT01FOgotICAg
ICAgICAjIHNvbWUgb2JqZWN0cyByYWlzZSBlcnJvcnMgbGlrZSByZXF1ZXN0IChmcm9tIGZsYXNr
IGltcG9ydCByZXF1ZXN0KQotICAgICAgICAjIHdlIGRvbid0IGV4cGVjdCB0aGVtIHRvIGJlIGZp
eHR1cmUgZnVuY3Rpb25zCi0gICAgICAgIHJldHVybiBOb25lCi0KLQotZGVmIGdldF9wYXJhbWV0
cml6ZWRfZml4dHVyZV9rZXlzKGl0ZW0sIHNjb3BlbnVtKToKLSAgICAiIiIgcmV0dXJuIGxpc3Qg
b2Yga2V5cyBmb3IgYWxsIHBhcmFtZXRyaXplZCBhcmd1bWVudHMgd2hpY2ggbWF0Y2gKLSAgICB0
aGUgc3BlY2lmaWVkIHNjb3BlLiAiIiIKLSAgICBhc3NlcnQgc2NvcGVudW0gPCBzY29wZW51bV9m
dW5jdGlvbiAgIyBmdW5jdGlvbgotICAgIHRyeToKLSAgICAgICAgY3MgPSBpdGVtLmNhbGxzcGVj
Ci0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBwYXNzCi0gICAgZWxzZToKLSAg
ICAgICAgIyBjcy5pbmRpY2VzLml0ZW1zKCkgaXMgcmFuZG9tIG9yZGVyIG9mIGFyZ25hbWVzLiAg
TmVlZCB0bwotICAgICAgICAjIHNvcnQgdGhpcyBzbyB0aGF0IGRpZmZlcmVudCBjYWxscyB0bwot
ICAgICAgICAjIGdldF9wYXJhbWV0cml6ZWRfZml4dHVyZV9rZXlzIHdpbGwgYmUgZGV0ZXJtaW5p
c3RpYy4KLSAgICAgICAgZm9yIGFyZ25hbWUsIHBhcmFtX2luZGV4IGluIHNvcnRlZChjcy5pbmRp
Y2VzLml0ZW1zKCkpOgotICAgICAgICAgICAgaWYgY3MuX2FyZzJzY29wZW51bVthcmduYW1lXSAh
PSBzY29wZW51bToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgc2Nv
cGVudW0gPT0gMDogICAgIyBzZXNzaW9uCi0gICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUs
IHBhcmFtX2luZGV4KQotICAgICAgICAgICAgZWxpZiBzY29wZW51bSA9PSAxOiAgIyBtb2R1bGUK
LSAgICAgICAgICAgICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgsIGl0ZW0uZnNwYXRo
KQotICAgICAgICAgICAgZWxpZiBzY29wZW51bSA9PSAyOiAgIyBjbGFzcwotICAgICAgICAgICAg
ICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9pbmRleCwgaXRlbS5mc3BhdGgsIGl0ZW0uY2xzKQot
ICAgICAgICAgICAgeWllbGQga2V5Ci0KLQotIyBhbGdvcml0aG0gZm9yIHNvcnRpbmcgb24gYSBw
ZXItcGFyYW1ldHJpemVkIHJlc291cmNlIHNldHVwIGJhc2lzCi0jIGl0IGlzIGNhbGxlZCBmb3Ig
c2NvcGVudW09PTAgKHNlc3Npb24pIGZpcnN0IGFuZCBwZXJmb3JtcyBzb3J0aW5nCi0jIGRvd24g
dG8gdGhlIGxvd2VyIHNjb3BlcyBzdWNoIGFzIHRvIG1pbmltaXplIG51bWJlciBvZiAiaGlnaCBz
Y29wZSIKLSMgc2V0dXBzIGFuZCB0ZWFyZG93bnMKLQotZGVmIHJlb3JkZXJfaXRlbXMoaXRlbXMp
OgotICAgIGFyZ2tleXNfY2FjaGUgPSB7fQotICAgIGZvciBzY29wZW51bSBpbiByYW5nZSgwLCBz
Y29wZW51bV9mdW5jdGlvbik6Ci0gICAgICAgIGFyZ2tleXNfY2FjaGVbc2NvcGVudW1dID0gZCA9
IHt9Ci0gICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAgICAga2V5cyA9IE9yZGVy
ZWREaWN0LmZyb21rZXlzKGdldF9wYXJhbWV0cml6ZWRfZml4dHVyZV9rZXlzKGl0ZW0sIHNjb3Bl
bnVtKSkKLSAgICAgICAgICAgIGlmIGtleXM6Ci0gICAgICAgICAgICAgICAgZFtpdGVtXSA9IGtl
eXMKLSAgICByZXR1cm4gcmVvcmRlcl9pdGVtc19hdHNjb3BlKGl0ZW1zLCBzZXQoKSwgYXJna2V5
c19jYWNoZSwgMCkKLQotCi1kZWYgcmVvcmRlcl9pdGVtc19hdHNjb3BlKGl0ZW1zLCBpZ25vcmUs
IGFyZ2tleXNfY2FjaGUsIHNjb3BlbnVtKToKLSAgICBpZiBzY29wZW51bSA+PSBzY29wZW51bV9m
dW5jdGlvbiBvciBsZW4oaXRlbXMpIDwgMzoKLSAgICAgICAgcmV0dXJuIGl0ZW1zCi0gICAgaXRl
bXNfZG9uZSA9IFtdCi0gICAgd2hpbGUgMToKLSAgICAgICAgaXRlbXNfYmVmb3JlLCBpdGVtc19z
YW1lLCBpdGVtc19vdGhlciwgbmV3aWdub3JlID0gXAotICAgICAgICAgICAgc2xpY2VfaXRlbXMo
aXRlbXMsIGlnbm9yZSwgYXJna2V5c19jYWNoZVtzY29wZW51bV0pCi0gICAgICAgIGl0ZW1zX2Jl
Zm9yZSA9IHJlb3JkZXJfaXRlbXNfYXRzY29wZSgKLSAgICAgICAgICAgIGl0ZW1zX2JlZm9yZSwg
aWdub3JlLCBhcmdrZXlzX2NhY2hlLCBzY29wZW51bSArIDEpCi0gICAgICAgIGlmIGl0ZW1zX3Nh
bWUgaXMgTm9uZToKLSAgICAgICAgICAgICMgbm90aGluZyB0byByZW9yZGVyIGluIHRoaXMgc2Nv
cGUKLSAgICAgICAgICAgIGFzc2VydCBpdGVtc19vdGhlciBpcyBOb25lCi0gICAgICAgICAgICBy
ZXR1cm4gaXRlbXNfZG9uZSArIGl0ZW1zX2JlZm9yZQotICAgICAgICBpdGVtc19kb25lLmV4dGVu
ZChpdGVtc19iZWZvcmUpCi0gICAgICAgIGl0ZW1zID0gaXRlbXNfc2FtZSArIGl0ZW1zX290aGVy
Ci0gICAgICAgIGlnbm9yZSA9IG5ld2lnbm9yZQotCi0KLWRlZiBzbGljZV9pdGVtcyhpdGVtcywg
aWdub3JlLCBzY29wZWRfYXJna2V5c19jYWNoZSk6Ci0gICAgIyB3ZSBwaWNrIHRoZSBmaXJzdCBp
dGVtIHdoaWNoIHVzZXMgYSBmaXh0dXJlIGluc3RhbmNlIGluIHRoZQotICAgICMgcmVxdWVzdGVk
IHNjb3BlIGFuZCB3aGljaCB3ZSBoYXZlbid0IHNlZW4geWV0LiAgV2Ugc2xpY2UgdGhlIGlucHV0
Ci0gICAgIyBpdGVtcyBsaXN0IGludG8gYSBsaXN0IG9mIGl0ZW1zX25vbWF0Y2gsIGl0ZW1zX3Nh
bWUgYW5kCi0gICAgIyBpdGVtc19vdGhlcgotICAgIGlmIHNjb3BlZF9hcmdrZXlzX2NhY2hlOiAg
IyBkbyB3ZSBuZWVkIHRvIGRvIHdvcmsgYXQgYWxsPwotICAgICAgICBpdCA9IGl0ZXIoaXRlbXMp
Ci0gICAgICAgICMgZmlyc3QgZmluZCBhIHNsaWNpbmcga2V5Ci0gICAgICAgIGZvciBpLCBpdGVt
IGluIGVudW1lcmF0ZShpdCk6Ci0gICAgICAgICAgICBhcmdrZXlzID0gc2NvcGVkX2FyZ2tleXNf
Y2FjaGUuZ2V0KGl0ZW0pCi0gICAgICAgICAgICBpZiBhcmdrZXlzIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIG5ld2FyZ2tleXMgPSBPcmRlcmVkRGljdC5mcm9ta2V5cyhrIGZvciBrIGlu
IGFyZ2tleXMgaWYgayBub3QgaW4gaWdub3JlKQotICAgICAgICAgICAgICAgIGlmIG5ld2FyZ2tl
eXM6ICAjIGZvdW5kIGEgc2xpY2luZyBrZXkKLSAgICAgICAgICAgICAgICAgICAgc2xpY2luZ19h
cmdrZXksIF8gPSBuZXdhcmdrZXlzLnBvcGl0ZW0oKQotICAgICAgICAgICAgICAgICAgICBpdGVt
c19iZWZvcmUgPSBpdGVtc1s6aV0KLSAgICAgICAgICAgICAgICAgICAgaXRlbXNfc2FtZSA9IFtp
dGVtXQotICAgICAgICAgICAgICAgICAgICBpdGVtc19vdGhlciA9IFtdCi0gICAgICAgICAgICAg
ICAgICAgICMgbm93IHNsaWNlIHRoZSByZW1haW5kZXIgb2YgdGhlIGxpc3QKLSAgICAgICAgICAg
ICAgICAgICAgZm9yIGl0ZW0gaW4gaXQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmdrZXlz
ID0gc2NvcGVkX2FyZ2tleXNfY2FjaGUuZ2V0KGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiBhcmdrZXlzIGFuZCBzbGljaW5nX2FyZ2tleSBpbiBhcmdrZXlzIGFuZCBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNpbmdfYXJna2V5IG5vdCBpbiBpZ25vcmU6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNfc2FtZS5hcHBlbmQoaXRlbSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRl
bXNfb3RoZXIuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgIG5ld2lnbm9yZSA9IGln
bm9yZS5jb3B5KCkKLSAgICAgICAgICAgICAgICAgICAgbmV3aWdub3JlLmFkZChzbGljaW5nX2Fy
Z2tleSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtc19iZWZvcmUsIGl0ZW1zX3Nh
bWUsIGl0ZW1zX290aGVyLCBuZXdpZ25vcmUpCi0gICAgcmV0dXJuIGl0ZW1zLCBOb25lLCBOb25l
LCBOb25lCi0KLQotZGVmIGZpbGxmaXh0dXJlcyhmdW5jdGlvbik6Ci0gICAgIiIiIGZpbGwgbWlz
c2luZyBmdW5jYXJncyBmb3IgYSB0ZXN0IGZ1bmN0aW9uLiAiIiIKLSAgICB0cnk6Ci0gICAgICAg
IHJlcXVlc3QgPSBmdW5jdGlvbi5fcmVxdWVzdAotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
LSAgICAgICAgIyBYWFggdGhpcyBzcGVjaWFsIGNvZGUgcGF0aCBpcyBvbmx5IGV4cGVjdGVkIHRv
IGV4ZWN1dGUKLSAgICAgICAgIyB3aXRoIHRoZSBvZWpza2l0IHBsdWdpbi4gIEl0IHVzZXMgY2xh
c3NlcyB3aXRoIGZ1bmNhcmdzCi0gICAgICAgICMgYW5kIHdlIHRodXMgaGF2ZSB0byB3b3JrIGEg
Yml0IHRvIGFsbG93IHRoaXMuCi0gICAgICAgIGZtID0gZnVuY3Rpb24uc2Vzc2lvbi5fZml4dHVy
ZW1hbmFnZXIKLSAgICAgICAgZmkgPSBmbS5nZXRmaXh0dXJlaW5mbyhmdW5jdGlvbi5wYXJlbnQs
IGZ1bmN0aW9uLm9iaiwgTm9uZSkKLSAgICAgICAgZnVuY3Rpb24uX2ZpeHR1cmVpbmZvID0gZmkK
LSAgICAgICAgcmVxdWVzdCA9IGZ1bmN0aW9uLl9yZXF1ZXN0ID0gRml4dHVyZVJlcXVlc3QoZnVu
Y3Rpb24pCi0gICAgICAgIHJlcXVlc3QuX2ZpbGxmaXh0dXJlcygpCi0gICAgICAgICMgcHJ1bmUg
b3V0IGZ1bmNhcmdzIGZvciBqc3Rlc3RzCi0gICAgICAgIG5ld2Z1bmNhcmdzID0ge30KLSAgICAg
ICAgZm9yIG5hbWUgaW4gZmkuYXJnbmFtZXM6Ci0gICAgICAgICAgICBuZXdmdW5jYXJnc1tuYW1l
XSA9IGZ1bmN0aW9uLmZ1bmNhcmdzW25hbWVdCi0gICAgICAgIGZ1bmN0aW9uLmZ1bmNhcmdzID0g
bmV3ZnVuY2FyZ3MKLSAgICBlbHNlOgotICAgICAgICByZXF1ZXN0Ll9maWxsZml4dHVyZXMoKQot
Ci0KLWRlZiBnZXRfZGlyZWN0X3BhcmFtX2ZpeHR1cmVfZnVuYyhyZXF1ZXN0KToKLSAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQotCi0KLWNsYXNzIEZ1bmNGaXh0dXJlSW5mbzoKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgYXJnbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIG5hbWUyZml4dHVyZWRlZnMpOgot
ICAgICAgICBzZWxmLmFyZ25hbWVzID0gYXJnbmFtZXMKLSAgICAgICAgc2VsZi5uYW1lc19jbG9z
dXJlID0gbmFtZXNfY2xvc3VyZQotICAgICAgICBzZWxmLm5hbWUyZml4dHVyZWRlZnMgPSBuYW1l
MmZpeHR1cmVkZWZzCi0KLQotY2xhc3MgRml4dHVyZVJlcXVlc3QoRnVuY2FyZ25hbWVzQ29tcGF0
QXR0cik6Ci0gICAgIiIiIEEgcmVxdWVzdCBmb3IgYSBmaXh0dXJlIGZyb20gYSB0ZXN0IG9yIGZp
eHR1cmUgZnVuY3Rpb24uCi0KLSAgICBBIHJlcXVlc3Qgb2JqZWN0IGdpdmVzIGFjY2VzcyB0byB0
aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQKLSAgICBhbmQgaGFzIGFuIG9wdGlvbmFsIGBgcGFy
YW1gYCBhdHRyaWJ1dGUgaW4gY2FzZQotICAgIHRoZSBmaXh0dXJlIGlzIHBhcmFtZXRyaXplZCBp
bmRpcmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHB5ZnVuY2l0ZW0p
OgotICAgICAgICBzZWxmLl9weWZ1bmNpdGVtID0gcHlmdW5jaXRlbQotICAgICAgICAjOiBmaXh0
dXJlIGZvciB3aGljaCB0aGlzIHJlcXVlc3QgaXMgYmVpbmcgcGVyZm9ybWVkCi0gICAgICAgIHNl
bGYuZml4dHVyZW5hbWUgPSBOb25lCi0gICAgICAgICM6IFNjb3BlIHN0cmluZywgb25lIG9mICJm
dW5jdGlvbiIsICJjbGFzcyIsICJtb2R1bGUiLCAic2Vzc2lvbiIKLSAgICAgICAgc2VsZi5zY29w
ZSA9ICJmdW5jdGlvbiIKLSAgICAgICAgc2VsZi5fZml4dHVyZV92YWx1ZXMgPSB7fSAgIyBhcmdu
YW1lIC0+IGZpeHR1cmUgdmFsdWUKLSAgICAgICAgc2VsZi5fZml4dHVyZV9kZWZzID0ge30gICMg
YXJnbmFtZSAtPiBGaXh0dXJlRGVmCi0gICAgICAgIGZpeHR1cmVpbmZvID0gcHlmdW5jaXRlbS5f
Zml4dHVyZWluZm8KLSAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZzID0gZml4dHVyZWluZm8u
bmFtZTJmaXh0dXJlZGVmcy5jb3B5KCkKLSAgICAgICAgc2VsZi5fYXJnMmluZGV4ID0ge30KLSAg
ICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSBweWZ1bmNpdGVtLnNlc3Npb24uX2ZpeHR1cmVt
YW5hZ2VyCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZml4dHVyZW5hbWVzKHNlbGYpOgotICAg
ICAgICAjIGJhY2t3YXJkIGluY29tcGF0aWJsZSBub3RlOiBub3cgYSByZWFkb25seSBwcm9wZXJ0
eQotICAgICAgICByZXR1cm4gbGlzdChzZWxmLl9weWZ1bmNpdGVtLl9maXh0dXJlaW5mby5uYW1l
c19jbG9zdXJlKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG5vZGUoc2VsZik6Ci0gICAgICAg
ICIiIiB1bmRlcmx5aW5nIGNvbGxlY3Rpb24gbm9kZSAoZGVwZW5kcyBvbiBjdXJyZW50IHJlcXVl
c3Qgc2NvcGUpIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9nZXRzY29wZWl0ZW0oc2VsZi5zY29w
ZSkKLQotICAgIGRlZiBfZ2V0bmV4dGZpeHR1cmVkZWYoc2VsZiwgYXJnbmFtZSk6Ci0gICAgICAg
IGZpeHR1cmVkZWZzID0gc2VsZi5fYXJnMmZpeHR1cmVkZWZzLmdldChhcmduYW1lLCBOb25lKQot
ICAgICAgICBpZiBmaXh0dXJlZGVmcyBpcyBOb25lOgotICAgICAgICAgICAgIyB3ZSBhcnJpdmUg
aGVyZSBiZWNhdXNlIG9mIGEgIGEgZHluYW1pYyBjYWxsIHRvCi0gICAgICAgICAgICAjIGdldGZp
eHR1cmV2YWx1ZShhcmduYW1lKSB1c2FnZSB3aGljaCB3YXMgbmF0dXJhbGx5Ci0gICAgICAgICAg
ICAjIG5vdCBrbm93biBhdCBwYXJzaW5nL2NvbGxlY3Rpb24gdGltZQotICAgICAgICAgICAgcGFy
ZW50aWQgPSBzZWxmLl9weWZ1bmNpdGVtLnBhcmVudC5ub2RlaWQKLSAgICAgICAgICAgIGZpeHR1
cmVkZWZzID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuZ2V0Zml4dHVyZWRlZnMoYXJnbmFtZSwgcGFy
ZW50aWQpCi0gICAgICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnNbYXJnbmFtZV0gPSBmaXh0
dXJlZGVmcwotICAgICAgICAjIGZpeHR1cmVkZWZzIGxpc3QgaXMgaW1tdXRhYmxlIHNvIHdlIG1h
aW50YWluIGEgZGVjcmVhc2luZyBpbmRleAotICAgICAgICBpbmRleCA9IHNlbGYuX2FyZzJpbmRl
eC5nZXQoYXJnbmFtZSwgMCkgLSAxCi0gICAgICAgIGlmIGZpeHR1cmVkZWZzIGlzIE5vbmUgb3Ig
KC1pbmRleCA+IGxlbihmaXh0dXJlZGVmcykpOgotICAgICAgICAgICAgcmFpc2UgRml4dHVyZUxv
b2t1cEVycm9yKGFyZ25hbWUsIHNlbGYpCi0gICAgICAgIHNlbGYuX2FyZzJpbmRleFthcmduYW1l
XSA9IGluZGV4Ci0gICAgICAgIHJldHVybiBmaXh0dXJlZGVmc1tpbmRleF0KLQotICAgIEBwcm9w
ZXJ0eQotICAgIGRlZiBjb25maWcoc2VsZik6Ci0gICAgICAgICIiIiB0aGUgcHl0ZXN0IGNvbmZp
ZyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4gIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9weWZ1bmNpdGVtLmNvbmZpZwotCi0gICAgQHNjb3BlcHJvcGVydHkoKQotICAgIGRl
ZiBmdW5jdGlvbihzZWxmKToKLSAgICAgICAgIiIiIHRlc3QgZnVuY3Rpb24gb2JqZWN0IGlmIHRo
ZSByZXF1ZXN0IGhhcyBhIHBlci1mdW5jdGlvbiBzY29wZS4gIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLl9weWZ1bmNpdGVtLm9iagotCi0gICAgQHNjb3BlcHJvcGVydHkoImNsYXNzIikKLSAgICBk
ZWYgY2xzKHNlbGYpOgotICAgICAgICAiIiIgY2xhc3MgKGNhbiBiZSBOb25lKSB3aGVyZSB0aGUg
dGVzdCBmdW5jdGlvbiB3YXMgY29sbGVjdGVkLiAiIiIKLSAgICAgICAgY2xzY29sID0gc2VsZi5f
cHlmdW5jaXRlbS5nZXRwYXJlbnQoX3B5dGVzdC5weXRob24uQ2xhc3MpCi0gICAgICAgIGlmIGNs
c2NvbDoKLSAgICAgICAgICAgIHJldHVybiBjbHNjb2wub2JqCi0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgaW5zdGFuY2Uoc2VsZik6Ci0gICAgICAgICIiIiBpbnN0YW5jZSAoY2FuIGJlIE5vbmUp
IG9uIHdoaWNoIHRlc3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIiCi0gICAgICAgICMgdW5p
dHRlc3Qgc3VwcG9ydCBoYWNrLCBzZWUgX3B5dGVzdC51bml0dGVzdC5UZXN0Q2FzZUZ1bmN0aW9u
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLl90ZXN0
Y2FzZQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBmdW5jdGlv
biA9IGdldGF0dHIoc2VsZiwgImZ1bmN0aW9uIiwgTm9uZSkKLSAgICAgICAgICAgIGlmIGZ1bmN0
aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJldHVybiBweS5idWlsdGluLl9nZXRp
bXNlbGYoZnVuY3Rpb24pCi0KLSAgICBAc2NvcGVwcm9wZXJ0eSgpCi0gICAgZGVmIG1vZHVsZShz
ZWxmKToKLSAgICAgICAgIiIiIHB5dGhvbiBtb2R1bGUgb2JqZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1
bmN0aW9uIHdhcyBjb2xsZWN0ZWQuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRl
bS5nZXRwYXJlbnQoX3B5dGVzdC5weXRob24uTW9kdWxlKS5vYmoKLQotICAgIEBzY29wZXByb3Bl
cnR5KCkKLSAgICBkZWYgZnNwYXRoKHNlbGYpOgotICAgICAgICAiIiIgdGhlIGZpbGUgc3lzdGVt
IHBhdGggb2YgdGhlIHRlc3QgbW9kdWxlIHdoaWNoIGNvbGxlY3RlZCB0aGlzIHRlc3QuICIiIgot
ICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5mc3BhdGgKLQotICAgIEBwcm9wZXJ0eQot
ICAgIGRlZiBrZXl3b3JkcyhzZWxmKToKLSAgICAgICAgIiIiIGtleXdvcmRzL21hcmtlcnMgZGlj
dGlvbmFyeSBmb3IgdGhlIHVuZGVybHlpbmcgbm9kZS4gIiIiCi0gICAgICAgIHJldHVybiBzZWxm
Lm5vZGUua2V5d29yZHMKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzZXNzaW9uKHNlbGYpOgot
ICAgICAgICAiIiIgcHl0ZXN0IHNlc3Npb24gb2JqZWN0LiAiIiIKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbgotCi0gICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5h
bGl6ZXIpOgotICAgICAgICAiIiIgYWRkIGZpbmFsaXplci90ZWFyZG93biBmdW5jdGlvbiB0byBi
ZSBjYWxsZWQgYWZ0ZXIgdGhlCi0gICAgICAgIGxhc3QgdGVzdCB3aXRoaW4gdGhlIHJlcXVlc3Rp
bmcgdGVzdCBjb250ZXh0IGZpbmlzaGVkCi0gICAgICAgIGV4ZWN1dGlvbi4gIiIiCi0gICAgICAg
ICMgWFhYIHVzdWFsbHkgdGhpcyBtZXRob2QgaXMgc2hhZG93ZWQgYnkgZml4dHVyZWRlZiBzcGVj
aWZpYyBvbmVzCi0gICAgICAgIHNlbGYuX2FkZGZpbmFsaXplcihmaW5hbGl6ZXIsIHNjb3BlPXNl
bGYuc2NvcGUpCi0KLSAgICBkZWYgX2FkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIsIHNjb3Bl
KToKLSAgICAgICAgY29saXRlbSA9IHNlbGYuX2dldHNjb3BlaXRlbShzY29wZSkKLSAgICAgICAg
c2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLmFkZGZpbmFsaXplcigKLSAgICAg
ICAgICAgIGZpbmFsaXplcj1maW5hbGl6ZXIsIGNvbGl0ZW09Y29saXRlbSkKLQotICAgIGRlZiBh
cHBseW1hcmtlcihzZWxmLCBtYXJrZXIpOgotICAgICAgICAiIiIgQXBwbHkgYSBtYXJrZXIgdG8g
YSBzaW5nbGUgdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLgotICAgICAgICBUaGlzIG1ldGhvZCBp
cyB1c2VmdWwgaWYgeW91IGRvbid0IHdhbnQgdG8gaGF2ZSBhIGtleXdvcmQvbWFya2VyCi0gICAg
ICAgIG9uIGFsbCBmdW5jdGlvbiBpbnZvY2F0aW9ucy4KLQotICAgICAgICA6YXJnIG1hcmtlcjog
YSA6cHk6Y2xhc3M6YF9weXRlc3QubWFyay5NYXJrRGVjb3JhdG9yYCBvYmplY3QKLSAgICAgICAg
ICAgIGNyZWF0ZWQgYnkgYSBjYWxsIHRvIGBgcHl0ZXN0Lm1hcmsuTkFNRSguLi4pYGAuCi0gICAg
ICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLm5vZGUua2V5d29yZHNbbWFy
a2VyLm1hcmtuYW1lXSA9IG1hcmtlcgotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1hcmtlcikKLQotICAgIGRlZiByYWlzZWVycm9y
KHNlbGYsIG1zZyk6Ci0gICAgICAgICIiIiByYWlzZSBhIEZpeHR1cmVMb29rdXBFcnJvciB3aXRo
IHRoZSBnaXZlbiBtZXNzYWdlLiAiIiIKLSAgICAgICAgcmFpc2Ugc2VsZi5fZml4dHVyZW1hbmFn
ZXIuRml4dHVyZUxvb2t1cEVycm9yKE5vbmUsIHNlbGYsIG1zZykKLQotICAgIGRlZiBfZmlsbGZp
eHR1cmVzKHNlbGYpOgotICAgICAgICBpdGVtID0gc2VsZi5fcHlmdW5jaXRlbQotICAgICAgICBm
aXh0dXJlbmFtZXMgPSBnZXRhdHRyKGl0ZW0sICJmaXh0dXJlbmFtZXMiLCBzZWxmLmZpeHR1cmVu
YW1lcykKLSAgICAgICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZW5hbWVzOgotICAgICAgICAgICAg
aWYgYXJnbmFtZSBub3QgaW4gaXRlbS5mdW5jYXJnczoKLSAgICAgICAgICAgICAgICBpdGVtLmZ1
bmNhcmdzW2FyZ25hbWVdID0gc2VsZi5nZXRmaXh0dXJldmFsdWUoYXJnbmFtZSkKLQotICAgIGRl
ZiBjYWNoZWRfc2V0dXAoc2VsZiwgc2V0dXAsIHRlYXJkb3duPU5vbmUsIHNjb3BlPSJtb2R1bGUi
LCBleHRyYWtleT1Ob25lKToKLSAgICAgICAgIiIiIChkZXByZWNhdGVkKSBSZXR1cm4gYSB0ZXN0
aW5nIHJlc291cmNlIG1hbmFnZWQgYnkgYGBzZXR1cGBgICYKLSAgICAgICAgYGB0ZWFyZG93bmBg
IGNhbGxzLiAgYGBzY29wZWBgIGFuZCBgYGV4dHJha2V5YGAgZGV0ZXJtaW5lIHdoZW4gdGhlCi0g
ICAgICAgIGBgdGVhcmRvd25gYCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBzbyB0aGF0IHN1YnNl
cXVlbnQgY2FsbHMgdG8KLSAgICAgICAgYGBzZXR1cGBgIHdvdWxkIHJlY3JlYXRlIHRoZSByZXNv
dXJjZS4gIFdpdGggcHl0ZXN0LTIuMyB5b3Ugb2Z0ZW4KLSAgICAgICAgZG8gbm90IG5lZWQgYGBj
YWNoZWRfc2V0dXAoKWBgIGFzIHlvdSBjYW4gZGlyZWN0bHkgZGVjbGFyZSBhIHNjb3BlCi0gICAg
ICAgIG9uIGEgZml4dHVyZSBmdW5jdGlvbiBhbmQgcmVnaXN0ZXIgYSBmaW5hbGl6ZXIgdGhyb3Vn
aAotICAgICAgICBgYHJlcXVlc3QuYWRkZmluYWxpemVyKClgYC4KLQotICAgICAgICA6YXJnIHRl
YXJkb3duOiBmdW5jdGlvbiByZWNlaXZpbmcgYSBwcmV2aW91c2x5IHNldHVwIHJlc291cmNlLgot
ICAgICAgICA6YXJnIHNldHVwOiBhIG5vLWFyZ3VtZW50IGZ1bmN0aW9uIGNyZWF0aW5nIGEgcmVz
b3VyY2UuCi0gICAgICAgIDphcmcgc2NvcGU6IGEgc3RyaW5nIHZhbHVlIG91dCBvZiBgYGZ1bmN0
aW9uYGAsIGBgY2xhc3NgYCwgYGBtb2R1bGVgYAotICAgICAgICAgICAgb3IgYGBzZXNzaW9uYGAg
aW5kaWNhdGluZyB0aGUgY2FjaGluZyBsaWZlY3ljbGUgb2YgdGhlIHJlc291cmNlLgotICAgICAg
ICA6YXJnIGV4dHJha2V5OiBhZGRlZCB0byBpbnRlcm5hbCBjYWNoaW5nIGtleSBvZiAoZnVuY2Fy
Z25hbWUsIHNjb3BlKS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYu
Y29uZmlnLCAnX3NldHVwY2FjaGUnKToKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLl9zZXR1cGNh
Y2hlID0ge30gICMgWFhYIHdlYWtyZWY/Ci0gICAgICAgIGNhY2hla2V5ID0gKHNlbGYuZml4dHVy
ZW5hbWUsIHNlbGYuX2dldHNjb3BlaXRlbShzY29wZSksIGV4dHJha2V5KQotICAgICAgICBjYWNo
ZSA9IHNlbGYuY29uZmlnLl9zZXR1cGNhY2hlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHZh
bCA9IGNhY2hlW2NhY2hla2V5XQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAg
ICBzZWxmLl9jaGVja19zY29wZShzZWxmLmZpeHR1cmVuYW1lLCBzZWxmLnNjb3BlLCBzY29wZSkK
LSAgICAgICAgICAgIHZhbCA9IHNldHVwKCkKLSAgICAgICAgICAgIGNhY2hlW2NhY2hla2V5XSA9
IHZhbAotICAgICAgICAgICAgaWYgdGVhcmRvd24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgZGVmIGZpbmFsaXplcigpOgotICAgICAgICAgICAgICAgICAgICBkZWwgY2FjaGVbY2FjaGVr
ZXldCi0gICAgICAgICAgICAgICAgICAgIHRlYXJkb3duKHZhbCkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9hZGRmaW5hbGl6ZXIoZmluYWxpemVyLCBzY29wZT1zY29wZSkKLSAgICAgICAgcmV0dXJu
IHZhbAotCi0gICAgZGVmIGdldGZpeHR1cmV2YWx1ZShzZWxmLCBhcmduYW1lKToKLSAgICAgICAg
IiIiIER5bmFtaWNhbGx5IHJ1biBhIG5hbWVkIGZpeHR1cmUgZnVuY3Rpb24uCi0KLSAgICAgICAg
RGVjbGFyaW5nIGZpeHR1cmVzIHZpYSBmdW5jdGlvbiBhcmd1bWVudCBpcyByZWNvbW1lbmRlZCB3
aGVyZSBwb3NzaWJsZS4KLSAgICAgICAgQnV0IGlmIHlvdSBjYW4gb25seSBkZWNpZGUgd2hldGhl
ciB0byB1c2UgYW5vdGhlciBmaXh0dXJlIGF0IHRlc3QKLSAgICAgICAgc2V0dXAgdGltZSwgeW91
IG1heSB1c2UgdGhpcyBmdW5jdGlvbiB0byByZXRyaWV2ZSBpdCBpbnNpZGUgYSBmaXh0dXJlCi0g
ICAgICAgIG9yIHRlc3QgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLl9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoYXJnbmFtZSkuY2FjaGVkX3Jlc3VsdFswXQot
Ci0gICAgZGVmIGdldGZ1bmNhcmd2YWx1ZShzZWxmLCBhcmduYW1lKToKLSAgICAgICAgIiIiIERl
cHJlY2F0ZWQsIHVzZSBnZXRmaXh0dXJldmFsdWUuICIiIgotICAgICAgICBmcm9tIF9weXRlc3Qg
aW1wb3J0IGRlcHJlY2F0ZWQKLSAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgIGRl
cHJlY2F0ZWQuR0VURlVOQ0FSR1ZBTFVFLAotICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5n
LAotICAgICAgICAgICAgc3RhY2tsZXZlbD0yKQotICAgICAgICByZXR1cm4gc2VsZi5nZXRmaXh0
dXJldmFsdWUoYXJnbmFtZSkKLQotICAgIGRlZiBfZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKHNlbGYs
IGFyZ25hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fZml4dHVy
ZV9kZWZzW2FyZ25hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBmaXh0dXJlZGVmID0gc2VsZi5fZ2V0bmV4dGZpeHR1cmVkZWYo
YXJnbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBGaXh0dXJlTG9va3VwRXJyb3I6Ci0gICAgICAg
ICAgICAgICAgaWYgYXJnbmFtZSA9PSAicmVxdWVzdCI6Ci0gICAgICAgICAgICAgICAgICAgIGNs
YXNzIFBzZXVkb0ZpeHR1cmVEZWY6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWRfcmVz
dWx0ID0gKHNlbGYsIFswXSwgTm9uZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlID0g
ImZ1bmN0aW9uIgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHNldWRvRml4dHVyZURlZgot
ICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICMgcmVtb3ZlIGluZGVudCB0byBwcmV2ZW50
IHRoZSBweXRob24zIGV4Y2VwdGlvbgotICAgICAgICAjIGZyb20gbGVha2luZyBpbnRvIHRoZSBj
YWxsCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuX2dldGZpeHR1cmV2YWx1ZShmaXh0dXJlZGVmKQot
ICAgICAgICBzZWxmLl9maXh0dXJlX3ZhbHVlc1thcmduYW1lXSA9IHJlc3VsdAotICAgICAgICBz
ZWxmLl9maXh0dXJlX2RlZnNbYXJnbmFtZV0gPSBmaXh0dXJlZGVmCi0gICAgICAgIHJldHVybiBm
aXh0dXJlZGVmCi0KLSAgICBkZWYgX2dldF9maXh0dXJlc3RhY2soc2VsZik6Ci0gICAgICAgIGN1
cnJlbnQgPSBzZWxmCi0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIHdoaWxlIDE6Ci0gICAg
ICAgICAgICBmaXh0dXJlZGVmID0gZ2V0YXR0cihjdXJyZW50LCAiX2ZpeHR1cmVkZWYiLCBOb25l
KQotICAgICAgICAgICAgaWYgZml4dHVyZWRlZiBpcyBOb25lOgotICAgICAgICAgICAgICAgIHZh
bHVlcy5yZXZlcnNlKCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzCi0gICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKGZpeHR1cmVkZWYpCi0gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVu
dC5fcGFyZW50X3JlcXVlc3QKLQotICAgIGRlZiBfZ2V0Zml4dHVyZXZhbHVlKHNlbGYsIGZpeHR1
cmVkZWYpOgotICAgICAgICAjIHByZXBhcmUgYSBzdWJyZXF1ZXN0IG9iamVjdCBiZWZvcmUgY2Fs
bGluZyBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICMgKGxhdHRlciBtYW5hZ2VkIGJ5IGZpeHR1
cmVkZWYpCi0gICAgICAgIGFyZ25hbWUgPSBmaXh0dXJlZGVmLmFyZ25hbWUKLSAgICAgICAgZnVu
Y2l0ZW0gPSBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIHNjb3BlID0gZml4dHVyZWRlZi5zY29w
ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXJhbSA9IGZ1bmNpdGVtLmNhbGxzcGVjLmdl
dHBhcmFtKGFyZ25hbWUpCi0gICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIFZhbHVlRXJy
b3IpOgotICAgICAgICAgICAgcGFyYW0gPSBOT1RTRVQKLSAgICAgICAgICAgIHBhcmFtX2luZGV4
ID0gMAotICAgICAgICAgICAgaWYgZml4dHVyZWRlZi5wYXJhbXMgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAgICAgZnJhbWUgPSBpbnNwZWN0LnN0YWNrKClbM10KLSAgICAgICAgICAgICAgICBm
cmFtZWluZm8gPSBpbnNwZWN0LmdldGZyYW1laW5mbyhmcmFtZVswXSkKLSAgICAgICAgICAgICAg
ICBzb3VyY2VfcGF0aCA9IGZyYW1laW5mby5maWxlbmFtZQotICAgICAgICAgICAgICAgIHNvdXJj
ZV9saW5lbm8gPSBmcmFtZWluZm8ubGluZW5vCi0gICAgICAgICAgICAgICAgc291cmNlX3BhdGgg
PSBweS5wYXRoLmxvY2FsKHNvdXJjZV9wYXRoKQotICAgICAgICAgICAgICAgIGlmIHNvdXJjZV9w
YXRoLnJlbHRvKGZ1bmNpdGVtLmNvbmZpZy5yb290ZGlyKToKLSAgICAgICAgICAgICAgICAgICAg
c291cmNlX3BhdGggPSBzb3VyY2VfcGF0aC5yZWx0byhmdW5jaXRlbS5jb25maWcucm9vdGRpcikK
LSAgICAgICAgICAgICAgICBtc2cgPSAoCi0gICAgICAgICAgICAgICAgICAgICJUaGUgcmVxdWVz
dGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0aGUgIgotICAgICAgICAg
ICAgICAgICAgICAiY3VycmVudCB0ZXN0LlxuXG5SZXF1ZXN0ZWQgZml4dHVyZSAnezB9JyBkZWZp
bmVkIGluOlxuezF9IgotICAgICAgICAgICAgICAgICAgICAiXG5cblJlcXVlc3RlZCBoZXJlOlxu
ezJ9OnszfSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgZml4dHVyZWRlZi5hcmdu
YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0bG9jYXRpb24oZml4dHVyZWRlZi5mdW5j
LCBmdW5jaXRlbS5jb25maWcucm9vdGRpciksCi0gICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9saW5lbm8sCi0gICAgICAg
ICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgZmFpbCht
c2cpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGluZGljZXMgbWlnaHQgbm90IGJlIHNl
dCBpZiBvbGQtc3R5bGUgbWV0YWZ1bmMuYWRkY2FsbCgpIHdhcyB1c2VkCi0gICAgICAgICAgICBw
YXJhbV9pbmRleCA9IGZ1bmNpdGVtLmNhbGxzcGVjLmluZGljZXMuZ2V0KGFyZ25hbWUsIDApCi0g
ICAgICAgICAgICAjIGlmIGEgcGFyYW1ldHJpemUgaW52b2NhdGlvbiBzZXQgYSBzY29wZSBpdCB3
aWxsIG92ZXJyaWRlCi0gICAgICAgICAgICAjIHRoZSBzdGF0aWMgc2NvcGUgZGVmaW5lZCB3aXRo
IHRoZSBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICBwYXJhbXNjb3BlbnVtID0gZnVuY2l0
ZW0uY2FsbHNwZWMuX2FyZzJzY29wZW51bS5nZXQoYXJnbmFtZSkKLSAgICAgICAgICAgIGlmIHBh
cmFtc2NvcGVudW0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2NvcGUgPSBzY29wZXNb
cGFyYW1zY29wZW51bV0KLQotICAgICAgICBzdWJyZXF1ZXN0ID0gU3ViUmVxdWVzdChzZWxmLCBz
Y29wZSwgcGFyYW0sIHBhcmFtX2luZGV4LCBmaXh0dXJlZGVmKQotCi0gICAgICAgICMgY2hlY2sg
aWYgYSBoaWdoZXItbGV2ZWwgc2NvcGVkIGZpeHR1cmUgYWNjZXNzZXMgYSBsb3dlciBsZXZlbCBv
bmUKLSAgICAgICAgc3VicmVxdWVzdC5fY2hlY2tfc2NvcGUoYXJnbmFtZSwgc2VsZi5zY29wZSwg
c2NvcGUpCi0KLSAgICAgICAgIyBjbGVhciBzeXMuZXhjX2luZm8gYmVmb3JlIGludm9raW5nIHRo
ZSBmaXh0dXJlIChweXRob24gYnVnPykKLSAgICAgICAgIyBpZiBpdHMgbm90IGV4cGxpY2l0bHkg
Y2xlYXJlZCBpdCB3aWxsIGxlYWsgaW50byB0aGUgY2FsbAotICAgICAgICBleGNfY2xlYXIoKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIGNhbGwgdGhlIGZpeHR1cmUgZnVuY3Rpb24KLSAg
ICAgICAgICAgIHZhbCA9IGZpeHR1cmVkZWYuZXhlY3V0ZShyZXF1ZXN0PXN1YnJlcXVlc3QpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAjIGlmIGZpeHR1cmUgZnVuY3Rpb24gZmFpbGVk
IGl0IG1pZ2h0IGhhdmUgcmVnaXN0ZXJlZCBmaW5hbGl6ZXJzCi0gICAgICAgICAgICBzZWxmLnNl
c3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVyKGZ1bmN0b29scy5wYXJ0aWFsKGZpeHR1cmVk
ZWYuZmluaXNoLCByZXF1ZXN0PXN1YnJlcXVlc3QpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0Lm5vZGUpCi0gICAgICAgIHJldHVy
biB2YWwKLQotICAgIGRlZiBfY2hlY2tfc2NvcGUoc2VsZiwgYXJnbmFtZSwgaW52b2tpbmdfc2Nv
cGUsIHJlcXVlc3RlZF9zY29wZSk6Ci0gICAgICAgIGlmIGFyZ25hbWUgPT0gInJlcXVlc3QiOgot
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHNjb3BlbWlzbWF0Y2goaW52b2tpbmdfc2Nv
cGUsIHJlcXVlc3RlZF9zY29wZSk6Ci0gICAgICAgICAgICAjIHRyeSB0byByZXBvcnQgc29tZXRo
aW5nIGhlbHBmdWwKLSAgICAgICAgICAgIGxpbmVzID0gc2VsZi5fZmFjdG9yeXRyYWNlYmFjaygp
Ci0gICAgICAgICAgICBmYWlsKCJTY29wZU1pc21hdGNoOiBZb3UgdHJpZWQgdG8gYWNjZXNzIHRo
ZSAlciBzY29wZWQgIgotICAgICAgICAgICAgICAgICAiZml4dHVyZSAlciB3aXRoIGEgJXIgc2Nv
cGVkIHJlcXVlc3Qgb2JqZWN0LCAiCi0gICAgICAgICAgICAgICAgICJpbnZvbHZlZCBmYWN0b3Jp
ZXNcbiVzIiAlICgKLSAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0ZWRfc2NvcGUsIGFyZ25h
bWUsIGludm9raW5nX3Njb3BlLCAiXG4iLmpvaW4obGluZXMpKSksCi0gICAgICAgICAgICAgICAg
IHB5dHJhY2U9RmFsc2UpCi0KLSAgICBkZWYgX2ZhY3Rvcnl0cmFjZWJhY2soc2VsZik6Ci0gICAg
ICAgIGxpbmVzID0gW10KLSAgICAgICAgZm9yIGZpeHR1cmVkZWYgaW4gc2VsZi5fZ2V0X2ZpeHR1
cmVzdGFjaygpOgotICAgICAgICAgICAgZmFjdG9yeSA9IGZpeHR1cmVkZWYuZnVuYwotICAgICAg
ICAgICAgZnMsIGxpbmVubyA9IGdldGZzbGluZW5vKGZhY3RvcnkpCi0gICAgICAgICAgICBwID0g
c2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uLmZzcGF0aC5iZXN0cmVscGF0aChmcykKLSAgICAgICAg
ICAgIGFyZ3MgPSBfZm9ybWF0X2FyZ3MoZmFjdG9yeSkKLSAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiJXM6JWQ6ICBkZWYgJXMlcyIgJSAoCi0gICAgICAgICAgICAgICAgcCwgbGluZW5vLCBmYWN0
b3J5Ll9fbmFtZV9fLCBhcmdzKSkKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgX2dl
dHNjb3BlaXRlbShzZWxmLCBzY29wZSk6Ci0gICAgICAgIGlmIHNjb3BlID09ICJmdW5jdGlvbiI6
Ci0gICAgICAgICAgICAjIHRoaXMgbWlnaHQgYWxzbyBiZSBhIG5vbi1mdW5jdGlvbiBJdGVtIGRl
c3BpdGUgaXRzIGF0dHJpYnV0ZSBuYW1lCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5j
aXRlbQotICAgICAgICBub2RlID0gZ2V0X3Njb3BlX25vZGUoc2VsZi5fcHlmdW5jaXRlbSwgc2Nv
cGUpCi0gICAgICAgIGlmIG5vZGUgaXMgTm9uZSBhbmQgc2NvcGUgPT0gImNsYXNzIjoKLSAgICAg
ICAgICAgICMgZmFsbGJhY2sgdG8gZnVuY3Rpb24gaXRlbSBpdHNlbGYKLSAgICAgICAgICAgIG5v
ZGUgPSBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIGFzc2VydCBub2RlLCAnQ291bGQgbm90IG9i
dGFpbiBhIG5vZGUgZm9yIHNjb3BlICJ7fSIgZm9yIGZ1bmN0aW9uIHshcn0nLmZvcm1hdChzY29w
ZSwgc2VsZi5fcHlmdW5jaXRlbSkKLSAgICAgICAgcmV0dXJuIG5vZGUKLQotICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8Rml4dHVyZVJlcXVlc3QgZm9yICVyPiIgJSAo
c2VsZi5ub2RlKQotCi0KLWNsYXNzIFN1YlJlcXVlc3QoRml4dHVyZVJlcXVlc3QpOgotICAgICIi
IiBhIHN1YiByZXF1ZXN0IGZvciBoYW5kbGluZyBnZXR0aW5nIGEgZml4dHVyZSBmcm9tIGEKLSAg
ICB0ZXN0IGZ1bmN0aW9uL2ZpeHR1cmUuICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJl
cXVlc3QsIHNjb3BlLCBwYXJhbSwgcGFyYW1faW5kZXgsIGZpeHR1cmVkZWYpOgotICAgICAgICBz
ZWxmLl9wYXJlbnRfcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi5maXh0dXJlbmFtZSA9
IGZpeHR1cmVkZWYuYXJnbmFtZQotICAgICAgICBpZiBwYXJhbSBpcyBub3QgTk9UU0VUOgotICAg
ICAgICAgICAgc2VsZi5wYXJhbSA9IHBhcmFtCi0gICAgICAgIHNlbGYucGFyYW1faW5kZXggPSBw
YXJhbV9pbmRleAotICAgICAgICBzZWxmLnNjb3BlID0gc2NvcGUKLSAgICAgICAgc2VsZi5fZml4
dHVyZWRlZiA9IGZpeHR1cmVkZWYKLSAgICAgICAgc2VsZi5fcHlmdW5jaXRlbSA9IHJlcXVlc3Qu
X3B5ZnVuY2l0ZW0KLSAgICAgICAgc2VsZi5fZml4dHVyZV92YWx1ZXMgPSByZXF1ZXN0Ll9maXh0
dXJlX3ZhbHVlcwotICAgICAgICBzZWxmLl9maXh0dXJlX2RlZnMgPSByZXF1ZXN0Ll9maXh0dXJl
X2RlZnMKLSAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZzID0gcmVxdWVzdC5fYXJnMmZpeHR1
cmVkZWZzCi0gICAgICAgIHNlbGYuX2FyZzJpbmRleCA9IHJlcXVlc3QuX2FyZzJpbmRleAotICAg
ICAgICBzZWxmLl9maXh0dXJlbWFuYWdlciA9IHJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCi0KLSAg
ICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPFN1YlJlcXVlc3QgJXIgZm9y
ICVyPiIgJSAoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5fcHlmdW5jaXRlbSkKLQotICAgIGRlZiBh
ZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyKToKLSAgICAgICAgc2VsZi5fZml4dHVyZWRlZi5h
ZGRmaW5hbGl6ZXIoZmluYWxpemVyKQotCi0KLWNsYXNzIFNjb3BlTWlzbWF0Y2hFcnJvcihFeGNl
cHRpb24pOgotICAgICIiIiBBIGZpeHR1cmUgZnVuY3Rpb24gdHJpZXMgdG8gdXNlIGEgZGlmZmVy
ZW50IGZpeHR1cmUgZnVuY3Rpb24gd2hpY2gKLSAgICB3aGljaCBoYXMgYSBsb3dlciBzY29wZSAo
ZS5nLiBhIFNlc3Npb24gb25lIGNhbGxzIGEgZnVuY3Rpb24gb25lKQotICAgICIiIgotCi0KLXNj
b3BlcyA9ICJzZXNzaW9uIG1vZHVsZSBjbGFzcyBmdW5jdGlvbiIuc3BsaXQoKQotc2NvcGVudW1f
ZnVuY3Rpb24gPSBzY29wZXMuaW5kZXgoImZ1bmN0aW9uIikKLQotCi1kZWYgc2NvcGVtaXNtYXRj
aChjdXJyZW50c2NvcGUsIG5ld3Njb3BlKToKLSAgICByZXR1cm4gc2NvcGVzLmluZGV4KG5ld3Nj
b3BlKSA+IHNjb3Blcy5pbmRleChjdXJyZW50c2NvcGUpCi0KLQotZGVmIHNjb3BlMmluZGV4KHNj
b3BlLCBkZXNjciwgd2hlcmU9Tm9uZSk6Ci0gICAgIiIiTG9vayB1cCB0aGUgaW5kZXggb2YgYGBz
Y29wZWBgIGFuZCByYWlzZSBhIGRlc2NyaXB0aXZlIHZhbHVlIGVycm9yCi0gICAgaWYgbm90IGRl
ZmluZWQuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gc2NvcGVzLmluZGV4KHNj
b3BlKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAot
ICAgICAgICAgICAgInswfSB7MX1oYXMgYW4gdW5zdXBwb3J0ZWQgc2NvcGUgdmFsdWUgJ3syfSci
LmZvcm1hdCgKLSAgICAgICAgICAgICAgICBkZXNjciwgJ2Zyb20gezB9ICcuZm9ybWF0KHdoZXJl
KSBpZiB3aGVyZSBlbHNlICcnLAotICAgICAgICAgICAgICAgIHNjb3BlKQotICAgICAgICApCi0K
LQotY2xhc3MgRml4dHVyZUxvb2t1cEVycm9yKExvb2t1cEVycm9yKToKLSAgICAiIiIgY291bGQg
bm90IHJldHVybiBhIHJlcXVlc3RlZCBGaXh0dXJlIChtaXNzaW5nIG9yIGludmFsaWQpLiAiIiIK
LQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmduYW1lLCByZXF1ZXN0LCBtc2c9Tm9uZSk6Ci0g
ICAgICAgIHNlbGYuYXJnbmFtZSA9IGFyZ25hbWUKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVx
dWVzdAotICAgICAgICBzZWxmLmZpeHR1cmVzdGFjayA9IHJlcXVlc3QuX2dldF9maXh0dXJlc3Rh
Y2soKQotICAgICAgICBzZWxmLm1zZyA9IG1zZwotCi0gICAgZGVmIGZvcm1hdHJlcHIoc2VsZik6
Ci0gICAgICAgIHRibGluZXMgPSBbXQotICAgICAgICBhZGRsaW5lID0gdGJsaW5lcy5hcHBlbmQK
LSAgICAgICAgc3RhY2sgPSBbc2VsZi5yZXF1ZXN0Ll9weWZ1bmNpdGVtLm9ial0KLSAgICAgICAg
c3RhY2suZXh0ZW5kKG1hcChsYW1iZGEgeDogeC5mdW5jLCBzZWxmLmZpeHR1cmVzdGFjaykpCi0g
ICAgICAgIG1zZyA9IHNlbGYubXNnCi0gICAgICAgIGlmIG1zZyBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICMgdGhlIGxhc3QgZml4dHVyZSByYWlzZSBhbiBlcnJvciwgbGV0J3MgcHJlc2VudAot
ICAgICAgICAgICAgIyBpdCBhdCB0aGUgcmVxdWVzdGluZyBzaWRlCi0gICAgICAgICAgICBzdGFj
ayA9IHN0YWNrWzotMV0KLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIHN0YWNrOgotICAgICAgICAg
ICAgZnNwYXRoLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jdGlvbikKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBsaW5lcywgXyA9IGluc3BlY3QuZ2V0c291cmNlbGluZXMoZ2V0
X3JlYWxfZnVuYyhmdW5jdGlvbikpCi0gICAgICAgICAgICBleGNlcHQgKElPRXJyb3IsIEluZGV4
RXJyb3IsIFR5cGVFcnJvcik6Ci0gICAgICAgICAgICAgICAgZXJyb3JfbXNnID0gImZpbGUgJXMs
IGxpbmUgJXM6IHNvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUiCi0gICAgICAgICAgICAgICAgYWRk
bGluZShlcnJvcl9tc2cgJSAoZnNwYXRoLCBsaW5lbm8gKyAxKSkKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgYWRkbGluZSgiZmlsZSAlcywgbGluZSAlcyIgJSAoZnNwYXRoLCBs
aW5lbm8gKyAxKSkKLSAgICAgICAgICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUobGlu
ZXMpOgotICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yc3RyaXAoKQotICAgICAgICAg
ICAgICAgICAgICBhZGRsaW5lKCIgICIgKyBsaW5lKQotICAgICAgICAgICAgICAgICAgICBpZiBs
aW5lLmxzdHJpcCgpLnN0YXJ0c3dpdGgoJ2RlZicpOgotICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWsKLQotICAgICAgICBpZiBtc2cgaXMgTm9uZToKLSAgICAgICAgICAgIGZtID0gc2VsZi5y
ZXF1ZXN0Ll9maXh0dXJlbWFuYWdlcgotICAgICAgICAgICAgYXZhaWxhYmxlID0gW10KLSAgICAg
ICAgICAgIHBhcmVudGlkID0gc2VsZi5yZXF1ZXN0Ll9weWZ1bmNpdGVtLnBhcmVudC5ub2RlaWQK
LSAgICAgICAgICAgIGZvciBuYW1lLCBmaXh0dXJlZGVmcyBpbiBmbS5fYXJnMmZpeHR1cmVkZWZz
Lml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgZmFjbGlzdCA9IGxpc3QoZm0uX21hdGNoZmFjdG9y
aWVzKGZpeHR1cmVkZWZzLCBwYXJlbnRpZCkpCi0gICAgICAgICAgICAgICAgaWYgZmFjbGlzdCBh
bmQgbmFtZSBub3QgaW4gYXZhaWxhYmxlOgotICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUu
YXBwZW5kKG5hbWUpCi0gICAgICAgICAgICBtc2cgPSAiZml4dHVyZSAlciBub3QgZm91bmQiICUg
KHNlbGYuYXJnbmFtZSwpCi0gICAgICAgICAgICBtc2cgKz0gIlxuIGF2YWlsYWJsZSBmaXh0dXJl
czogJXMiICUgKCIsICIuam9pbihzb3J0ZWQoYXZhaWxhYmxlKSksKQotICAgICAgICAgICAgbXNn
ICs9ICJcbiB1c2UgJ3B5dGVzdCAtLWZpeHR1cmVzIFt0ZXN0cGF0aF0nIGZvciBoZWxwIG9uIHRo
ZW0uIgotCi0gICAgICAgIHJldHVybiBGaXh0dXJlTG9va3VwRXJyb3JSZXByKGZzcGF0aCwgbGlu
ZW5vLCB0YmxpbmVzLCBtc2csIHNlbGYuYXJnbmFtZSkKLQotCi1jbGFzcyBGaXh0dXJlTG9va3Vw
RXJyb3JSZXByKFRlcm1pbmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1l
LCBmaXJzdGxpbmVubywgdGJsaW5lcywgZXJyb3JzdHJpbmcsIGFyZ25hbWUpOgotICAgICAgICBz
ZWxmLnRibGluZXMgPSB0YmxpbmVzCi0gICAgICAgIHNlbGYuZXJyb3JzdHJpbmcgPSBlcnJvcnN0
cmluZwotICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKLSAgICAgICAgc2VsZi5maXJz
dGxpbmVubyA9IGZpcnN0bGluZW5vCi0gICAgICAgIHNlbGYuYXJnbmFtZSA9IGFyZ25hbWUKLQot
ICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgIyB0dy5saW5lKCJGaXh0dXJl
TG9va3VwRXJyb3I6ICVzIiAlKHNlbGYuYXJnbmFtZSksIHJlZD1UcnVlKQotICAgICAgICBmb3Ig
dGJsaW5lIGluIHNlbGYudGJsaW5lczoKLSAgICAgICAgICAgIHR3LmxpbmUodGJsaW5lLnJzdHJp
cCgpKQotICAgICAgICBsaW5lcyA9IHNlbGYuZXJyb3JzdHJpbmcuc3BsaXQoIlxuIikKLSAgICAg
ICAgaWYgbGluZXM6Ci0gICAgICAgICAgICB0dy5saW5lKCd7MH0gICAgICAgezF9Jy5mb3JtYXQo
Rm9ybWF0dGVkRXhjaW5mby5mYWlsX21hcmtlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsaW5lc1swXS5zdHJpcCgpKSwgcmVkPVRydWUpCi0gICAgICAgICAg
ICBmb3IgbGluZSBpbiBsaW5lc1sxOl06Ci0gICAgICAgICAgICAgICAgdHcubGluZSgnezB9ICAg
ICAgIHsxfScuZm9ybWF0KEZvcm1hdHRlZEV4Y2luZm8uZmxvd19tYXJrZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuc3RyaXAoKSksIHJlZD1U
cnVlKQotICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgdHcubGluZSgiJXM6JWQiICUgKHNlbGYu
ZmlsZW5hbWUsIHNlbGYuZmlyc3RsaW5lbm8gKyAxKSkKLQotCi1kZWYgZmFpbF9maXh0dXJlZnVu
YyhmaXh0dXJlZnVuYywgbXNnKToKLSAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZml4dHVy
ZWZ1bmMpCi0gICAgbG9jYXRpb24gPSAiJXM6JXMiICUgKGZzLCBsaW5lbm8gKyAxKQotICAgIHNv
dXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGZpeHR1cmVmdW5jKQotICAgIGZhaWwobXNnICsg
IjpcblxuIiArIHN0cihzb3VyY2UuaW5kZW50KCkpICsgIlxuIiArIGxvY2F0aW9uLAotICAgICAg
ICAgcHl0cmFjZT1GYWxzZSkKLQotCi1kZWYgY2FsbF9maXh0dXJlX2Z1bmMoZml4dHVyZWZ1bmMs
IHJlcXVlc3QsIGt3YXJncyk6Ci0gICAgeWllbGRjdHggPSBpc19nZW5lcmF0b3IoZml4dHVyZWZ1
bmMpCi0gICAgaWYgeWllbGRjdHg6Ci0gICAgICAgIGl0ID0gZml4dHVyZWZ1bmMoKiprd2FyZ3Mp
Ci0gICAgICAgIHJlcyA9IG5leHQoaXQpCi0KLSAgICAgICAgZGVmIHRlYXJkb3duKCk6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbmV4dChpdCkKLSAgICAgICAgICAgIGV4Y2Vw
dCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgZmFpbF9maXh0dXJlZnVuYyhmaXh0dXJlZnVuYywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ5aWVsZF9maXh0dXJlIGZ1bmN0aW9uIGhhcyBtb3Jl
IHRoYW4gb25lICd5aWVsZCciKQotCi0gICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHRlYXJk
b3duKQotICAgIGVsc2U6Ci0gICAgICAgIHJlcyA9IGZpeHR1cmVmdW5jKCoqa3dhcmdzKQotICAg
IHJldHVybiByZXMKLQotCi1jbGFzcyBGaXh0dXJlRGVmOgotICAgICIiIiBBIGNvbnRhaW5lciBm
b3IgYSBmYWN0b3J5IGRlZmluaXRpb24uICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZp
eHR1cmVtYW5hZ2VyLCBiYXNlaWQsIGFyZ25hbWUsIGZ1bmMsIHNjb3BlLCBwYXJhbXMsCi0gICAg
ICAgICAgICAgICAgIHVuaXR0ZXN0PUZhbHNlLCBpZHM9Tm9uZSk6Ci0gICAgICAgIHNlbGYuX2Zp
eHR1cmVtYW5hZ2VyID0gZml4dHVyZW1hbmFnZXIKLSAgICAgICAgc2VsZi5iYXNlaWQgPSBiYXNl
aWQgb3IgJycKLSAgICAgICAgc2VsZi5oYXNfbG9jYXRpb24gPSBiYXNlaWQgaXMgbm90IE5vbmUK
LSAgICAgICAgc2VsZi5mdW5jID0gZnVuYwotICAgICAgICBzZWxmLmFyZ25hbWUgPSBhcmduYW1l
Ci0gICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQotICAgICAgICBzZWxmLnNjb3BlbnVtID0gc2Nv
cGUyaW5kZXgoCi0gICAgICAgICAgICBzY29wZSBvciAiZnVuY3Rpb24iLAotICAgICAgICAgICAg
ZGVzY3I9J2ZpeHR1cmUgezB9Jy5mb3JtYXQoZnVuYy5fX25hbWVfXyksCi0gICAgICAgICAgICB3
aGVyZT1iYXNlaWQKLSAgICAgICAgKQotICAgICAgICBzZWxmLnBhcmFtcyA9IHBhcmFtcwotICAg
ICAgICBzZWxmLmFyZ25hbWVzID0gZ2V0ZnVuY2FyZ25hbWVzKGZ1bmMsIGlzX21ldGhvZD11bml0
dGVzdCkKLSAgICAgICAgc2VsZi51bml0dGVzdCA9IHVuaXR0ZXN0Ci0gICAgICAgIHNlbGYuaWRz
ID0gaWRzCi0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSBbXQotCi0gICAgZGVmIGFkZGZpbmFs
aXplcihzZWxmLCBmaW5hbGl6ZXIpOgotICAgICAgICBzZWxmLl9maW5hbGl6ZXJzLmFwcGVuZChm
aW5hbGl6ZXIpCi0KLSAgICBkZWYgZmluaXNoKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICBleGNl
cHRpb25zID0gW10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgc2VsZi5fZmluYWxp
emVyczoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMgPSBz
ZWxmLl9maW5hbGl6ZXJzLnBvcCgpCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMoKQotICAgICAg
ICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25z
LmFwcGVuZChzeXMuZXhjX2luZm8oKSkKLSAgICAgICAgICAgIGlmIGV4Y2VwdGlvbnM6Ci0gICAg
ICAgICAgICAgICAgZSA9IGV4Y2VwdGlvbnNbMF0KLSAgICAgICAgICAgICAgICBkZWwgZXhjZXB0
aW9ucyAgIyBlbnN1cmUgd2UgZG9uJ3Qga2VlcCBhbGwgZnJhbWVzIGFsaXZlIGJlY2F1c2Ugb2Yg
dGhlIHRyYWNlYmFjawotICAgICAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2UoKmUpCi0K
LSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGhvb2sgPSBzZWxmLl9maXh0dXJlbWFuYWdl
ci5zZXNzaW9uLmdldGhvb2twcm94eShyZXF1ZXN0Lm5vZGUuZnNwYXRoKQotICAgICAgICAgICAg
aG9vay5weXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihmaXh0dXJlZGVmPXNlbGYsIHJlcXVl
c3Q9cmVxdWVzdCkKLSAgICAgICAgICAgICMgZXZlbiBpZiBmaW5hbGl6YXRpb24gZmFpbHMsIHdl
IGludmFsaWRhdGUKLSAgICAgICAgICAgICMgdGhlIGNhY2hlZCBmaXh0dXJlIHZhbHVlIGFuZCBy
ZW1vdmUKLSAgICAgICAgICAgICMgYWxsIGZpbmFsaXplcnMgYmVjYXVzZSB0aGV5IG1heSBiZSBi
b3VuZCBtZXRob2RzIHdoaWNoIHdpbGwKLSAgICAgICAgICAgICMga2VlcCBpbnN0YW5jZXMgYWxp
dmUKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNhY2hlZF9yZXN1bHQiKToKLSAgICAg
ICAgICAgICAgICBkZWwgc2VsZi5jYWNoZWRfcmVzdWx0Ci0gICAgICAgICAgICBzZWxmLl9maW5h
bGl6ZXJzID0gW10KLQotICAgIGRlZiBleGVjdXRlKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICAj
IGdldCByZXF1aXJlZCBhcmd1bWVudHMgYW5kIHJlZ2lzdGVyIG91ciBvd24gZmluaXNoKCkKLSAg
ICAgICAgIyB3aXRoIHRoZWlyIGZpbmFsaXphdGlvbgotICAgICAgICBmb3IgYXJnbmFtZSBpbiBz
ZWxmLmFyZ25hbWVzOgotICAgICAgICAgICAgZml4dHVyZWRlZiA9IHJlcXVlc3QuX2dldF9hY3Rp
dmVfZml4dHVyZWRlZihhcmduYW1lKQotICAgICAgICAgICAgaWYgYXJnbmFtZSAhPSAicmVxdWVz
dCI6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWRlZi5hZGRmaW5hbGl6ZXIoZnVuY3Rvb2xzLnBh
cnRpYWwoc2VsZi5maW5pc2gsIHJlcXVlc3Q9cmVxdWVzdCkpCi0KLSAgICAgICAgbXlfY2FjaGVf
a2V5ID0gcmVxdWVzdC5wYXJhbV9pbmRleAotICAgICAgICBjYWNoZWRfcmVzdWx0ID0gZ2V0YXR0
cihzZWxmLCAiY2FjaGVkX3Jlc3VsdCIsIE5vbmUpCi0gICAgICAgIGlmIGNhY2hlZF9yZXN1bHQg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXN1bHQsIGNhY2hlX2tleSwgZXJyID0gY2FjaGVk
X3Jlc3VsdAotICAgICAgICAgICAgaWYgbXlfY2FjaGVfa2V5ID09IGNhY2hlX2tleToKLSAgICAg
ICAgICAgICAgICBpZiBlcnIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHB5LmJ1
aWx0aW4uX3JlcmFpc2UoKmVycikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAgICAgICAgICAjIHdlIGhhdmUgYSBwcmV2aW91cyBi
dXQgZGlmZmVyZW50bHkgcGFyYW1ldHJpemVkIGZpeHR1cmUgaW5zdGFuY2UKLSAgICAgICAgICAg
ICMgc28gd2UgbmVlZCB0byB0ZWFyIGl0IGRvd24gYmVmb3JlIGNyZWF0aW5nIGEgbmV3IG9uZQot
ICAgICAgICAgICAgc2VsZi5maW5pc2gocmVxdWVzdCkKLSAgICAgICAgICAgIGFzc2VydCBub3Qg
aGFzYXR0cihzZWxmLCAiY2FjaGVkX3Jlc3VsdCIpCi0KLSAgICAgICAgaG9vayA9IHNlbGYuX2Zp
eHR1cmVtYW5hZ2VyLnNlc3Npb24uZ2V0aG9va3Byb3h5KHJlcXVlc3Qubm9kZS5mc3BhdGgpCi0g
ICAgICAgIHJldHVybiBob29rLnB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWY9c2VsZiwg
cmVxdWVzdD1yZXF1ZXN0KQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1
cm4gKCI8Rml4dHVyZURlZiBuYW1lPSVyIHNjb3BlPSVyIGJhc2VpZD0lciA+IiAlCi0gICAgICAg
ICAgICAgICAgKHNlbGYuYXJnbmFtZSwgc2VsZi5zY29wZSwgc2VsZi5iYXNlaWQpKQotCi0KLWRl
ZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAiIiIgRXhl
Y3V0aW9uIG9mIGZpeHR1cmUgc2V0dXAuICIiIgotICAgIGt3YXJncyA9IHt9Ci0gICAgZm9yIGFy
Z25hbWUgaW4gZml4dHVyZWRlZi5hcmduYW1lczoKLSAgICAgICAgZml4ZGVmID0gcmVxdWVzdC5f
Z2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFyZ25hbWUpCi0gICAgICAgIHJlc3VsdCwgYXJnX2NhY2hl
X2tleSwgZXhjID0gZml4ZGVmLmNhY2hlZF9yZXN1bHQKLSAgICAgICAgcmVxdWVzdC5fY2hlY2tf
c2NvcGUoYXJnbmFtZSwgcmVxdWVzdC5zY29wZSwgZml4ZGVmLnNjb3BlKQotICAgICAgICBrd2Fy
Z3NbYXJnbmFtZV0gPSByZXN1bHQKLQotICAgIGZpeHR1cmVmdW5jID0gZml4dHVyZWRlZi5mdW5j
Ci0gICAgaWYgZml4dHVyZWRlZi51bml0dGVzdDoKLSAgICAgICAgaWYgcmVxdWVzdC5pbnN0YW5j
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICMgYmluZCB0aGUgdW5ib3VuZCBtZXRob2QgdG8g
dGhlIFRlc3RDYXNlIGluc3RhbmNlCi0gICAgICAgICAgICBmaXh0dXJlZnVuYyA9IGZpeHR1cmVk
ZWYuZnVuYy5fX2dldF9fKHJlcXVlc3QuaW5zdGFuY2UpCi0gICAgZWxzZToKLSAgICAgICAgIyB0
aGUgZml4dHVyZSBmdW5jdGlvbiBuZWVkcyB0byBiZSBib3VuZCB0byB0aGUgYWN0dWFsCi0gICAg
ICAgICMgcmVxdWVzdC5pbnN0YW5jZSBzbyB0aGF0IGNvZGUgd29ya2luZyB3aXRoICJmaXh0dXJl
ZGVmIiBiZWhhdmVzCi0gICAgICAgICMgYXMgZXhwZWN0ZWQuCi0gICAgICAgIGlmIHJlcXVlc3Qu
aW5zdGFuY2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaXh0dXJlZnVuYyA9IGdldGltZnVu
YyhmaXh0dXJlZGVmLmZ1bmMpCi0gICAgICAgICAgICBpZiBmaXh0dXJlZnVuYyAhPSBmaXh0dXJl
ZGVmLmZ1bmM6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWZ1bmMgPSBmaXh0dXJlZnVuYy5fX2dl
dF9fKHJlcXVlc3QuaW5zdGFuY2UpCi0gICAgbXlfY2FjaGVfa2V5ID0gcmVxdWVzdC5wYXJhbV9p
bmRleAotICAgIHRyeToKLSAgICAgICAgcmVzdWx0ID0gY2FsbF9maXh0dXJlX2Z1bmMoZml4dHVy
ZWZ1bmMsIHJlcXVlc3QsIGt3YXJncykKLSAgICBleGNlcHQgVEVTVF9PVVRDT01FOgotICAgICAg
ICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHQgPSAoTm9uZSwgbXlfY2FjaGVfa2V5LCBzeXMuZXhj
X2luZm8oKSkKLSAgICAgICAgcmFpc2UKLSAgICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHQgPSAo
cmVzdWx0LCBteV9jYWNoZV9rZXksIE5vbmUpCi0gICAgcmV0dXJuIHJlc3VsdAotCi0KLWRlZiBf
ZW5zdXJlX2ltbXV0YWJsZV9pZHMoaWRzKToKLSAgICBpZiBpZHMgaXMgTm9uZToKLSAgICAgICAg
cmV0dXJuCi0gICAgaWYgY2FsbGFibGUoaWRzKToKLSAgICAgICAgcmV0dXJuIGlkcwotICAgIHJl
dHVybiB0dXBsZShpZHMpCi0KLQotQGF0dHIucyhmcm96ZW49VHJ1ZSkKLWNsYXNzIEZpeHR1cmVG
dW5jdGlvbk1hcmtlcihvYmplY3QpOgotICAgIHNjb3BlID0gYXR0ci5pYigpCi0gICAgcGFyYW1z
ID0gYXR0ci5pYihjb252ZXJ0PWF0dHIuY29udmVydGVycy5vcHRpb25hbCh0dXBsZSkpCi0gICAg
YXV0b3VzZSA9IGF0dHIuaWIoZGVmYXVsdD1GYWxzZSkKLSAgICBpZHMgPSBhdHRyLmliKGRlZmF1
bHQ9Tm9uZSwgY29udmVydD1fZW5zdXJlX2ltbXV0YWJsZV9pZHMpCi0gICAgbmFtZSA9IGF0dHIu
aWIoZGVmYXVsdD1Ob25lKQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0aW9uKToKLSAg
ICAgICAgaWYgaXNjbGFzcyhmdW5jdGlvbik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KAotICAgICAgICAgICAgICAgICJjbGFzcyBmaXh0dXJlcyBub3Qgc3VwcG9ydGVkIChtYXkgYmUg
aW4gdGhlIGZ1dHVyZSkiKQotICAgICAgICBmdW5jdGlvbi5fcHl0ZXN0Zml4dHVyZWZ1bmN0aW9u
ID0gc2VsZgotICAgICAgICByZXR1cm4gZnVuY3Rpb24KLQotCi1kZWYgZml4dHVyZShzY29wZT0i
ZnVuY3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwgaWRzPU5vbmUsIG5hbWU9Tm9u
ZSk6Ci0gICAgIiIiIChyZXR1cm4gYSkgZGVjb3JhdG9yIHRvIG1hcmsgYSBmaXh0dXJlIGZhY3Rv
cnkgZnVuY3Rpb24uCi0KLSAgICBUaGlzIGRlY29yYXRvciBjYW4gYmUgdXNlZCAod2l0aCBvciB3
aXRob3V0IHBhcmFtZXRlcnMpIHRvIGRlZmluZSBhCi0gICAgZml4dHVyZSBmdW5jdGlvbi4gIFRo
ZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGNhbiBsYXRlciBiZQotICAgIHJlZmVyZW5j
ZWQgdG8gY2F1c2UgaXRzIGludm9jYXRpb24gYWhlYWQgb2YgcnVubmluZyB0ZXN0czogdGVzdAot
ICAgIG1vZHVsZXMgb3IgY2xhc3NlcyBjYW4gdXNlIHRoZSBweXRlc3QubWFyay51c2VmaXh0dXJl
cyhmaXh0dXJlbmFtZSkKLSAgICBtYXJrZXIuICBUZXN0IGZ1bmN0aW9ucyBjYW4gZGlyZWN0bHkg
dXNlIGZpeHR1cmUgbmFtZXMgYXMgaW5wdXQKLSAgICBhcmd1bWVudHMgaW4gd2hpY2ggY2FzZSB0
aGUgZml4dHVyZSBpbnN0YW5jZSByZXR1cm5lZCBmcm9tIHRoZSBmaXh0dXJlCi0gICAgZnVuY3Rp
b24gd2lsbCBiZSBpbmplY3RlZC4KLQotICAgIDphcmcgc2NvcGU6IHRoZSBzY29wZSBmb3Igd2hp
Y2ggdGhpcyBmaXh0dXJlIGlzIHNoYXJlZCwgb25lIG9mCi0gICAgICAgICAgICAgICAgImZ1bmN0
aW9uIiAoZGVmYXVsdCksICJjbGFzcyIsICJtb2R1bGUiIG9yICJzZXNzaW9uIi4KLQotICAgIDph
cmcgcGFyYW1zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMgd2hpY2ggd2lsbCBjYXVz
ZSBtdWx0aXBsZQotICAgICAgICAgICAgICAgIGludm9jYXRpb25zIG9mIHRoZSBmaXh0dXJlIGZ1
bmN0aW9uIGFuZCBhbGwgb2YgdGhlIHRlc3RzCi0gICAgICAgICAgICAgICAgdXNpbmcgaXQuCi0K
LSAgICA6YXJnIGF1dG91c2U6IGlmIFRydWUsIHRoZSBmaXh0dXJlIGZ1bmMgaXMgYWN0aXZhdGVk
IGZvciBhbGwgdGVzdHMgdGhhdAotICAgICAgICAgICAgICAgIGNhbiBzZWUgaXQuICBJZiBGYWxz
ZSAodGhlIGRlZmF1bHQpIHRoZW4gYW4gZXhwbGljaXQKLSAgICAgICAgICAgICAgICByZWZlcmVu
Y2UgaXMgbmVlZGVkIHRvIGFjdGl2YXRlIHRoZSBmaXh0dXJlLgotCi0gICAgOmFyZyBpZHM6IGxp
c3Qgb2Ygc3RyaW5nIGlkcyBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtcwotICAgICAg
ICAgICAgICAgIHNvIHRoYXQgdGhleSBhcmUgcGFydCBvZiB0aGUgdGVzdCBpZC4gSWYgbm8gaWRz
IGFyZSBwcm92aWRlZAotICAgICAgICAgICAgICAgIHRoZXkgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0
b21hdGljYWxseSBmcm9tIHRoZSBwYXJhbXMuCi0KLSAgICA6YXJnIG5hbWU6IHRoZSBuYW1lIG9m
IHRoZSBmaXh0dXJlLiBUaGlzIGRlZmF1bHRzIHRvIHRoZSBuYW1lIG9mIHRoZQotICAgICAgICAg
ICAgICAgIGRlY29yYXRlZCBmdW5jdGlvbi4gSWYgYSBmaXh0dXJlIGlzIHVzZWQgaW4gdGhlIHNh
bWUgbW9kdWxlIGluCi0gICAgICAgICAgICAgICAgd2hpY2ggaXQgaXMgZGVmaW5lZCwgdGhlIGZ1
bmN0aW9uIG5hbWUgb2YgdGhlIGZpeHR1cmUgd2lsbCBiZQotICAgICAgICAgICAgICAgIHNoYWRv
d2VkIGJ5IHRoZSBmdW5jdGlvbiBhcmcgdGhhdCByZXF1ZXN0cyB0aGUgZml4dHVyZTsgb25lIHdh
eQotICAgICAgICAgICAgICAgIHRvIHJlc29sdmUgdGhpcyBpcyB0byBuYW1lIHRoZSBkZWNvcmF0
ZWQgZnVuY3Rpb24KLSAgICAgICAgICAgICAgICBgYGZpeHR1cmVfPGZpeHR1cmVuYW1lPmBgIGFu
ZCB0aGVuIHVzZQotICAgICAgICAgICAgICAgIGBgQHB5dGVzdC5maXh0dXJlKG5hbWU9JzxmaXh0
dXJlbmFtZT4nKWBgLgotCi0gICAgRml4dHVyZXMgY2FuIG9wdGlvbmFsbHkgcHJvdmlkZSB0aGVp
ciB2YWx1ZXMgdG8gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYSBgYHlpZWxkYGAgc3RhdGVtZW50LAot
ICAgIGluc3RlYWQgb2YgYGByZXR1cm5gYC4gSW4gdGhpcyBjYXNlLCB0aGUgY29kZSBibG9jayBh
ZnRlciB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCBpcyBleGVjdXRlZAotICAgIGFzIHRlYXJkb3du
IGNvZGUgcmVnYXJkbGVzcyBvZiB0aGUgdGVzdCBvdXRjb21lLiBBIGZpeHR1cmUgZnVuY3Rpb24g
bXVzdCB5aWVsZCBleGFjdGx5IG9uY2UuCi0gICAgIiIiCi0gICAgaWYgY2FsbGFibGUoc2NvcGUp
IGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgYXV0b3VzZSBpcyBGYWxzZToKLSAgICAgICAgIyBkaXJl
Y3QgZGVjb3JhdGlvbgotICAgICAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9uTWFya2VyKAotICAg
ICAgICAgICAgImZ1bmN0aW9uIiwgcGFyYW1zLCBhdXRvdXNlLCBuYW1lPW5hbWUpKHNjb3BlKQot
ICAgIGlmIHBhcmFtcyBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFuY2UocGFyYW1zLCAobGlz
dCwgdHVwbGUpKToKLSAgICAgICAgcGFyYW1zID0gbGlzdChwYXJhbXMpCi0gICAgcmV0dXJuIEZp
eHR1cmVGdW5jdGlvbk1hcmtlcihzY29wZSwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9aWRzLCBuYW1l
PW5hbWUpCi0KLQotZGVmIHlpZWxkX2ZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPU5v
bmUsIGF1dG91c2U9RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU5vbmUpOgotICAgICIiIiAocmV0dXJu
IGEpIGRlY29yYXRvciB0byBtYXJrIGEgeWllbGQtZml4dHVyZSBmYWN0b3J5IGZ1bmN0aW9uLgot
Ci0gICAgLi4gZGVwcmVjYXRlZDo6IDMuMAotICAgICAgICBVc2UgOnB5OmZ1bmM6YHB5dGVzdC5m
aXh0dXJlYCBkaXJlY3RseSBpbnN0ZWFkLgotICAgICIiIgotICAgIGlmIGNhbGxhYmxlKHNjb3Bl
KSBhbmQgcGFyYW1zIGlzIE5vbmUgYW5kIG5vdCBhdXRvdXNlOgotICAgICAgICAjIGRpcmVjdCBk
ZWNvcmF0aW9uCi0gICAgICAgIHJldHVybiBGaXh0dXJlRnVuY3Rpb25NYXJrZXIoCi0gICAgICAg
ICAgICAiZnVuY3Rpb24iLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkoc2Nv
cGUpCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcihzY29w
ZSwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9aWRzLCBuYW1lPW5hbWUpCi0KLQotZGVmYXVsdGZ1bmNh
cmdwcmVmaXhtYXJrZXIgPSBmaXh0dXJlKCkKLQotCi1AZml4dHVyZShzY29wZT0ic2Vzc2lvbiIp
Ci1kZWYgcHl0ZXN0Y29uZmlnKHJlcXVlc3QpOgotICAgICIiIiB0aGUgcHl0ZXN0IGNvbmZpZyBv
YmplY3Qgd2l0aCBhY2Nlc3MgdG8gY29tbWFuZCBsaW5lIG9wdHMuIiIiCi0gICAgcmV0dXJuIHJl
cXVlc3QuY29uZmlnCi0KLQotY2xhc3MgRml4dHVyZU1hbmFnZXI6Ci0gICAgIiIiCi0gICAgcHl0
ZXN0IGZpeHR1cmVzIGRlZmluaXRpb25zIGFuZCBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgYW5kIG1h
bmFnZWQKLSAgICBmcm9tIHRoaXMgY2xhc3MuCi0KLSAgICBEdXJpbmcgY29sbGVjdGlvbiBmbS5w
YXJzZWZhY3RvcmllcygpIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBwYXJzZQotICAgIGZp
eHR1cmUgZnVuY3Rpb24gZGVmaW5pdGlvbnMgaW50byBGaXh0dXJlRGVmIG9iamVjdHMgYW5kIGlu
dGVybmFsCi0gICAgZGF0YSBzdHJ1Y3R1cmVzLgotCi0gICAgRHVyaW5nIGNvbGxlY3Rpb24gb2Yg
dGVzdCBmdW5jdGlvbnMsIG1ldGFmdW5jLW1lY2hhbmljcyBpbnN0YW50aWF0ZQotICAgIGEgRnVu
Y0ZpeHR1cmVJbmZvIG9iamVjdCB3aGljaCBpcyBjYWNoZWQgcGVyIG5vZGUvZnVuYy1uYW1lLgot
ICAgIFRoaXMgRnVuY0ZpeHR1cmVJbmZvIG9iamVjdCBpcyBsYXRlciByZXRyaWV2ZWQgYnkgRnVu
Y3Rpb24gbm9kZXMKLSAgICB3aGljaCB0aGVtc2VsdmVzIG9mZmVyIGEgZml4dHVyZW5hbWVzIGF0
dHJpYnV0ZS4KLQotICAgIFRoZSBGdW5jRml4dHVyZUluZm8gb2JqZWN0IGhvbGRzIGluZm9ybWF0
aW9uIGFib3V0IGZpeHR1cmVzIGFuZCBGaXh0dXJlRGVmcwotICAgIHJlbGV2YW50IGZvciBhIHBh
cnRpY3VsYXIgZnVuY3Rpb24uICBBbiBpbml0aWFsIGxpc3Qgb2YgZml4dHVyZXMgaXMKLSAgICBh
c3NlbWJsZWQgbGlrZSB0aGlzOgotCi0gICAgLSBpbmktZGVmaW5lZCB1c2VmaXh0dXJlcwotICAg
IC0gYXV0b3VzZS1tYXJrZWQgZml4dHVyZXMgYWxvbmcgdGhlIGNvbGxlY3Rpb24gY2hhaW4gdXAg
ZnJvbSB0aGUgZnVuY3Rpb24KLSAgICAtIHVzZWZpeHR1cmVzIG1hcmtlcnMgYXQgbW9kdWxlL2Ns
YXNzL2Z1bmN0aW9uIGxldmVsCi0gICAgLSB0ZXN0IGZ1bmN0aW9uIGZ1bmNhcmdzCi0KLSAgICBT
dWJzZXF1ZW50bHkgdGhlIGZ1bmNmaXh0dXJlaW5mby5maXh0dXJlbmFtZXMgYXR0cmlidXRlIGlz
IGNvbXB1dGVkCi0gICAgYXMgdGhlIGNsb3N1cmUgb2YgdGhlIGZpeHR1cmVzIG5lZWRlZCB0byBz
ZXR1cCB0aGUgaW5pdGlhbCBmaXh0dXJlcywKLSAgICBpLiBlLiBmaXh0dXJlcyBuZWVkZWQgYnkg
Zml4dHVyZSBmdW5jdGlvbnMgdGhlbXNlbHZlcyBhcmUgYXBwZW5kZWQKLSAgICB0byB0aGUgZml4
dHVyZW5hbWVzIGxpc3QuCi0KLSAgICBVcG9uIHRoZSB0ZXN0LXNldHVwIHBoYXNlcyBhbGwgZml4
dHVyZW5hbWVzIGFyZSBpbnN0YW50aWF0ZWQsIHJldHJpZXZlZAotICAgIGJ5IGEgbG9va3VwIG9m
IHRoZWlyIEZ1bmNGaXh0dXJlSW5mby4KLSAgICAiIiIKLQotICAgIF9hcmdwcmVmaXggPSAicHl0
ZXN0X2Z1bmNhcmdfXyIKLSAgICBGaXh0dXJlTG9va3VwRXJyb3IgPSBGaXh0dXJlTG9va3VwRXJy
b3IKLSAgICBGaXh0dXJlTG9va3VwRXJyb3JSZXByID0gRml4dHVyZUxvb2t1cEVycm9yUmVwcgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgotICAgICAgICBzZWxmLnNlc3Npb24g
PSBzZXNzaW9uCi0gICAgICAgIHNlbGYuY29uZmlnID0gc2Vzc2lvbi5jb25maWcKLSAgICAgICAg
c2VsZi5fYXJnMmZpeHR1cmVkZWZzID0ge30KLSAgICAgICAgc2VsZi5faG9sZGVyb2Jqc2VlbiA9
IHNldCgpCi0gICAgICAgIHNlbGYuX2FyZzJmaW5pc2ggPSB7fQotICAgICAgICBzZWxmLl9ub2Rl
aWRfYW5kX2F1dG91c2VuYW1lcyA9IFsoIiIsIHNlbGYuY29uZmlnLmdldGluaSgidXNlZml4dHVy
ZXMiKSldCi0gICAgICAgIHNlc3Npb24uY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoc2Vs
ZiwgImZ1bmNtYW5hZ2UiKQotCi0gICAgZGVmIGdldGZpeHR1cmVpbmZvKHNlbGYsIG5vZGUsIGZ1
bmMsIGNscywgZnVuY2FyZ3M9VHJ1ZSk6Ci0gICAgICAgIGlmIGZ1bmNhcmdzIGFuZCBub3QgaGFz
YXR0cihub2RlLCAibm9mdW5jYXJncyIpOgotICAgICAgICAgICAgYXJnbmFtZXMgPSBnZXRmdW5j
YXJnbmFtZXMoZnVuYywgY2xzPWNscykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFyZ25h
bWVzID0gKCkKLSAgICAgICAgdXNlZml4dHVyZXMgPSBnZXRhdHRyKGZ1bmMsICJ1c2VmaXh0dXJl
cyIsIE5vbmUpCi0gICAgICAgIGluaXRpYWxuYW1lcyA9IGFyZ25hbWVzCi0gICAgICAgIGlmIHVz
ZWZpeHR1cmVzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaW5pdGlhbG5hbWVzID0gdXNlZml4
dHVyZXMuYXJncyArIGluaXRpYWxuYW1lcwotICAgICAgICBmbSA9IG5vZGUuc2Vzc2lvbi5fZml4
dHVyZW1hbmFnZXIKLSAgICAgICAgbmFtZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZzID0gZm0u
Z2V0Zml4dHVyZWNsb3N1cmUoaW5pdGlhbG5hbWVzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlKQotICAgICAgICByZXR1
cm4gRnVuY0ZpeHR1cmVJbmZvKGFyZ25hbWVzLCBuYW1lc19jbG9zdXJlLCBhcmcyZml4dHVyZWRl
ZnMpCi0KLSAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNlbGYsIHBsdWdpbik6Ci0g
ICAgICAgIG5vZGVpZCA9IE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcCA9IHB5LnBh
dGgubG9jYWwocGx1Z2luLl9fZmlsZV9fKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6
Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGNvbnN0cnVj
dCB0aGUgYmFzZSBub2RlaWQgd2hpY2ggaXMgbGF0ZXIgdXNlZCB0byBjaGVjawotICAgICAgICAg
ICAgIyB3aGF0IGZpeHR1cmVzIGFyZSB2aXNpYmxlIGZvciBwYXJ0aWN1bGFyIHRlc3RzIChhcyBk
ZW5vdGVkCi0gICAgICAgICAgICAjIGJ5IHRoZWlyIHRlc3QgaWQpCi0gICAgICAgICAgICBpZiBw
LmJhc2VuYW1lLnN0YXJ0c3dpdGgoImNvbmZ0ZXN0LnB5Iik6Ci0gICAgICAgICAgICAgICAgbm9k
ZWlkID0gcC5kaXJwYXRoKCkucmVsdG8oc2VsZi5jb25maWcucm9vdGRpcikKLSAgICAgICAgICAg
ICAgICBpZiBwLnNlcCAhPSBub2Rlcy5TRVA6Ci0gICAgICAgICAgICAgICAgICAgIG5vZGVpZCA9
IG5vZGVpZC5yZXBsYWNlKHAuc2VwLCBub2Rlcy5TRVApCi0gICAgICAgIHNlbGYucGFyc2VmYWN0
b3JpZXMocGx1Z2luLCBub2RlaWQpCi0KLSAgICBkZWYgX2dldGF1dG91c2VuYW1lcyhzZWxmLCBu
b2RlaWQpOgotICAgICAgICAiIiIgcmV0dXJuIGEgdHVwbGUgb2YgZml4dHVyZSBuYW1lcyB0byBi
ZSB1c2VkLiAiIiIKLSAgICAgICAgYXV0b3VzZW5hbWVzID0gW10KLSAgICAgICAgZm9yIGJhc2Vp
ZCwgYmFzZW5hbWVzIGluIHNlbGYuX25vZGVpZF9hbmRfYXV0b3VzZW5hbWVzOgotICAgICAgICAg
ICAgaWYgbm9kZWlkLnN0YXJ0c3dpdGgoYmFzZWlkKToKLSAgICAgICAgICAgICAgICBpZiBiYXNl
aWQ6Ci0gICAgICAgICAgICAgICAgICAgIGkgPSBsZW4oYmFzZWlkKQotICAgICAgICAgICAgICAg
ICAgICBuZXh0Y2hhciA9IG5vZGVpZFtpOmkgKyAxXQotICAgICAgICAgICAgICAgICAgICBpZiBu
ZXh0Y2hhciBhbmQgbmV4dGNoYXIgbm90IGluICI6LyI6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5leHRlbmQoYmFzZW5hbWVz
KQotICAgICAgICAjIG1ha2Ugc3VyZSBhdXRvdXNlbmFtZXMgYXJlIHNvcnRlZCBieSBzY29wZSwg
c2NvcGVudW0gMCBpcyBzZXNzaW9uCi0gICAgICAgIGF1dG91c2VuYW1lcy5zb3J0KAotICAgICAg
ICAgICAga2V5PWxhbWJkYSB4OiBzZWxmLl9hcmcyZml4dHVyZWRlZnNbeF1bLTFdLnNjb3BlbnVt
KQotICAgICAgICByZXR1cm4gYXV0b3VzZW5hbWVzCi0KLSAgICBkZWYgZ2V0Zml4dHVyZWNsb3N1
cmUoc2VsZiwgZml4dHVyZW5hbWVzLCBwYXJlbnRub2RlKToKLSAgICAgICAgIyBjb2xsZWN0IHRo
ZSBjbG9zdXJlIG9mIGFsbCBmaXh0dXJlcyAsIHN0YXJ0aW5nIHdpdGggdGhlIGdpdmVuCi0gICAg
ICAgICMgZml4dHVyZW5hbWVzIGFzIHRoZSBpbml0aWFsIHNldC4gIEFzIHdlIGhhdmUgdG8gdmlz
aXQgYWxsCi0gICAgICAgICMgZmFjdG9yeSBkZWZpbml0aW9ucyBhbnl3YXksIHdlIGFsc28gcmV0
dXJuIGEgYXJnMmZpeHR1cmVkZWZzCi0gICAgICAgICMgbWFwcGluZyBzbyB0aGF0IHRoZSBjYWxs
ZXIgY2FuIHJldXNlIGl0IGFuZCBkb2VzIG5vdCBoYXZlCi0gICAgICAgICMgdG8gcmUtZGlzY292
ZXIgZml4dHVyZWRlZnMgYWdhaW4gZm9yIGVhY2ggZml4dHVyZW5hbWUKLSAgICAgICAgIyAoZGlz
Y292ZXJpbmcgbWF0Y2hpbmcgZml4dHVyZXMgZm9yIGEgZ2l2ZW4gbmFtZS9ub2RlIGlzIGV4cGVu
c2l2ZSkKLQotICAgICAgICBwYXJlbnRpZCA9IHBhcmVudG5vZGUubm9kZWlkCi0gICAgICAgIGZp
eHR1cmVuYW1lc19jbG9zdXJlID0gc2VsZi5fZ2V0YXV0b3VzZW5hbWVzKHBhcmVudGlkKQotCi0g
ICAgICAgIGRlZiBtZXJnZShvdGhlcmxpc3QpOgotICAgICAgICAgICAgZm9yIGFyZyBpbiBvdGhl
cmxpc3Q6Ci0gICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBmaXh0dXJlbmFtZXNfY2xvc3Vy
ZToKLSAgICAgICAgICAgICAgICAgICAgZml4dHVyZW5hbWVzX2Nsb3N1cmUuYXBwZW5kKGFyZykK
LQotICAgICAgICBtZXJnZShmaXh0dXJlbmFtZXMpCi0gICAgICAgIGFyZzJmaXh0dXJlZGVmcyA9
IHt9Ci0gICAgICAgIGxhc3RsZW4gPSAtMQotICAgICAgICB3aGlsZSBsYXN0bGVuICE9IGxlbihm
aXh0dXJlbmFtZXNfY2xvc3VyZSk6Ci0gICAgICAgICAgICBsYXN0bGVuID0gbGVuKGZpeHR1cmVu
YW1lc19jbG9zdXJlKQotICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZW5hbWVzX2Ns
b3N1cmU6Ci0gICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBpbiBhcmcyZml4dHVyZWRlZnM6Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgZml4dHVyZWRlZnMg
PSBzZWxmLmdldGZpeHR1cmVkZWZzKGFyZ25hbWUsIHBhcmVudGlkKQotICAgICAgICAgICAgICAg
IGlmIGZpeHR1cmVkZWZzOgotICAgICAgICAgICAgICAgICAgICBhcmcyZml4dHVyZWRlZnNbYXJn
bmFtZV0gPSBmaXh0dXJlZGVmcwotICAgICAgICAgICAgICAgICAgICBtZXJnZShmaXh0dXJlZGVm
c1stMV0uYXJnbmFtZXMpCi0gICAgICAgIHJldHVybiBmaXh0dXJlbmFtZXNfY2xvc3VyZSwgYXJn
MmZpeHR1cmVkZWZzCi0KLSAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKHNlbGYsIG1ldGFm
dW5jKToKLSAgICAgICAgZm9yIGFyZ25hbWUgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgotICAg
ICAgICAgICAgZmFjbGlzdCA9IG1ldGFmdW5jLl9hcmcyZml4dHVyZWRlZnMuZ2V0KGFyZ25hbWUp
Ci0gICAgICAgICAgICBpZiBmYWNsaXN0OgotICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBm
YWNsaXN0Wy0xXQotICAgICAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYucGFyYW1zIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgICAgICBwYXJhbWV0cml6ZV9mdW5jID0gZ2V0YXR0cihtZXRh
ZnVuYy5mdW5jdGlvbiwgJ3BhcmFtZXRyaXplJywgTm9uZSkKLSAgICAgICAgICAgICAgICAgICAg
ZnVuY19wYXJhbXMgPSBnZXRhdHRyKHBhcmFtZXRyaXplX2Z1bmMsICdhcmdzJywgW1tOb25lXV0p
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmNfa3dhcmdzID0gZ2V0YXR0cihwYXJhbWV0cml6ZV9m
dW5jLCAna3dhcmdzJywge30pCi0gICAgICAgICAgICAgICAgICAgICMgc2tpcCBkaXJlY3RseSBw
YXJhbWV0cml6ZWQgYXJndW1lbnRzCi0gICAgICAgICAgICAgICAgICAgIGlmICJhcmduYW1lcyIg
aW4gZnVuY19rd2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1lcyA9IHBhcmFt
ZXRyaXplX2Z1bmMua3dhcmdzWyJhcmduYW1lcyJdCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1lcyA9IGZ1bmNfcGFyYW1zWzBdCi0gICAg
ICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ25hbWVzLCAodHVwbGUsIGxpc3Qp
KToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gW3guc3RyaXAoKSBmb3IgeCBp
biBhcmduYW1lcy5zcGxpdCgiLCIpIGlmIHguc3RyaXAoKV0KLSAgICAgICAgICAgICAgICAgICAg
aWYgYXJnbmFtZSBub3QgaW4gZnVuY19wYXJhbXMgYW5kIGFyZ25hbWUgbm90IGluIGFyZ25hbWVz
OgotICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoYXJnbmFtZSwg
Zml4dHVyZWRlZi5wYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmRpcmVjdD1UcnVlLCBzY29wZT1maXh0dXJlZGVmLnNjb3BlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzPWZpeHR1cmVkZWYuaWRzKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb250aW51ZSAgIyB3aWxsIHJhaXNl
IEZpeHR1cmVMb29rdXBFcnJvciBhdCBzZXR1cCB0aW1lCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxl
Y3Rpb25fbW9kaWZ5aXRlbXMoc2VsZiwgaXRlbXMpOgotICAgICAgICAjIHNlcGFyYXRlIHBhcmFt
ZXRyaXplZCBzZXR1cHMKLSAgICAgICAgaXRlbXNbOl0gPSByZW9yZGVyX2l0ZW1zKGl0ZW1zKQot
Ci0gICAgZGVmIHBhcnNlZmFjdG9yaWVzKHNlbGYsIG5vZGVfb3Jfb2JqLCBub2RlaWQ9Tk9UU0VU
LCB1bml0dGVzdD1GYWxzZSk6Ci0gICAgICAgIGlmIG5vZGVpZCBpcyBub3QgTk9UU0VUOgotICAg
ICAgICAgICAgaG9sZGVyb2JqID0gbm9kZV9vcl9vYmoKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGhvbGRlcm9iaiA9IG5vZGVfb3Jfb2JqLm9iagotICAgICAgICAgICAgbm9kZWlkID0gbm9k
ZV9vcl9vYmoubm9kZWlkCi0gICAgICAgIGlmIGhvbGRlcm9iaiBpbiBzZWxmLl9ob2xkZXJvYmpz
ZWVuOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuX2hvbGRlcm9ianNlZW4uYWRk
KGhvbGRlcm9iaikKLSAgICAgICAgYXV0b3VzZW5hbWVzID0gW10KLSAgICAgICAgZm9yIG5hbWUg
aW4gZGlyKGhvbGRlcm9iaik6Ci0gICAgICAgICAgICAjIFRoZSBhdHRyaWJ1dGUgY2FuIGJlIGFu
IGFyYml0cmFyeSBkZXNjcmlwdG9yLCBzbyB0aGUgYXR0cmlidXRlCi0gICAgICAgICAgICAjIGFj
Y2VzcyBiZWxvdyBjYW4gcmFpc2UuIHNhZmVfZ2V0YXR0KCkgaWdub3JlcyBzdWNoIGV4Y2VwdGlv
bnMuCi0gICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIoaG9sZGVyb2JqLCBuYW1lLCBOb25l
KQotICAgICAgICAgICAgIyBmaXh0dXJlIGZ1bmN0aW9ucyBoYXZlIGEgcHl0ZXN0X2Z1bmNhcmdf
XyBwcmVmaXggKHByZS0yLjMgc3R5bGUpCi0gICAgICAgICAgICAjIG9yIGFyZSAiQHB5dGVzdC5m
aXh0dXJlIiBtYXJrZWQKLSAgICAgICAgICAgIG1hcmtlciA9IGdldGZpeHR1cmVtYXJrZXIob2Jq
KQotICAgICAgICAgICAgaWYgbWFya2VyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaWYgbm90
IG5hbWUuc3RhcnRzd2l0aChzZWxmLl9hcmdwcmVmaXgpOgotICAgICAgICAgICAgICAgICAgICBj
b250aW51ZQotICAgICAgICAgICAgICAgIGlmIG5vdCBjYWxsYWJsZShvYmopOgotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIG1hcmtlciA9IGRlZmF1bHRmdW5j
YXJncHJlZml4bWFya2VyCi0gICAgICAgICAgICAgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXBy
ZWNhdGVkCi0gICAgICAgICAgICAgICAgc2VsZi5jb25maWcud2FybignQzEnLCBkZXByZWNhdGVk
LkZVTkNBUkdfUFJFRklYLmZvcm1hdChuYW1lPW5hbWUpLCBub2RlaWQ9bm9kZWlkKQotICAgICAg
ICAgICAgICAgIG5hbWUgPSBuYW1lW2xlbihzZWxmLl9hcmdwcmVmaXgpOl0KLSAgICAgICAgICAg
IGVsaWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBGaXh0dXJlRnVuY3Rpb25NYXJrZXIpOgotICAg
ICAgICAgICAgICAgICMgbWFnaWMgZ2xvYmFscyAgd2l0aCBfX2dldGF0dHJfXyBtaWdodCBoYXZl
IGdvdCB1cyBhIHdyb25nCi0gICAgICAgICAgICAgICAgIyBmaXh0dXJlIGF0dHJpYnV0ZQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGlmIG1hcmtlci5uYW1lOgotICAgICAgICAgICAgICAgICAgICBuYW1lID0gbWFya2VyLm5hbWUK
LSAgICAgICAgICAgICAgICBtc2cgPSAnZml4dHVyZXMgY2Fubm90IGhhdmUgInB5dGVzdF9mdW5j
YXJnX18iIHByZWZpeCAnIFwKLSAgICAgICAgICAgICAgICAgICAgICAnYW5kIGJlIGRlY29yYXRl
ZCB3aXRoIEBweXRlc3QuZml4dHVyZTpcbiVzJyAlIG5hbWUKLSAgICAgICAgICAgICAgICBhc3Nl
cnQgbm90IG5hbWUuc3RhcnRzd2l0aChzZWxmLl9hcmdwcmVmaXgpLCBtc2cKLQotICAgICAgICAg
ICAgZml4dHVyZV9kZWYgPSBGaXh0dXJlRGVmKHNlbGYsIG5vZGVpZCwgbmFtZSwgb2JqLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci5zY29wZSwgbWFya2VyLnBh
cmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0dGVzdD11bml0
dGVzdCwgaWRzPW1hcmtlci5pZHMpCi0KLSAgICAgICAgICAgIGZhY2xpc3QgPSBzZWxmLl9hcmcy
Zml4dHVyZWRlZnMuc2V0ZGVmYXVsdChuYW1lLCBbXSkKLSAgICAgICAgICAgIGlmIGZpeHR1cmVf
ZGVmLmhhc19sb2NhdGlvbjoKLSAgICAgICAgICAgICAgICBmYWNsaXN0LmFwcGVuZChmaXh0dXJl
X2RlZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBmaXh0dXJlZGVmcyB3
aXRoIG5vIGxvY2F0aW9uIGFyZSBhdCB0aGUgZnJvbnQKLSAgICAgICAgICAgICAgICAjIHNvIHRo
aXMgaW5zZXJ0cyB0aGUgY3VycmVudCBmaXh0dXJlZGVmIGFmdGVyIHRoZQotICAgICAgICAgICAg
ICAgICMgZXhpc3RpbmcgZml4dHVyZWRlZnMgZnJvbSBleHRlcm5hbCBwbHVnaW5zIGJ1dAotICAg
ICAgICAgICAgICAgICMgYmVmb3JlIHRoZSBmaXh0dXJlZGVmcyBwcm92aWRlZCBpbiBjb25mdGVz
dHMuCi0gICAgICAgICAgICAgICAgaSA9IGxlbihbZiBmb3IgZiBpbiBmYWNsaXN0IGlmIG5vdCBm
Lmhhc19sb2NhdGlvbl0pCi0gICAgICAgICAgICAgICAgZmFjbGlzdC5pbnNlcnQoaSwgZml4dHVy
ZV9kZWYpCi0gICAgICAgICAgICBpZiBtYXJrZXIuYXV0b3VzZToKLSAgICAgICAgICAgICAgICBh
dXRvdXNlbmFtZXMuYXBwZW5kKG5hbWUpCi0KLSAgICAgICAgaWYgYXV0b3VzZW5hbWVzOgotICAg
ICAgICAgICAgc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNlbmFtZXMuYXBwZW5kKChub2RlaWQgb3Ig
JycsIGF1dG91c2VuYW1lcykpCi0KLSAgICBkZWYgZ2V0Zml4dHVyZWRlZnMoc2VsZiwgYXJnbmFt
ZSwgbm9kZWlkKToKLSAgICAgICAgIiIiCi0gICAgICAgIEdldHMgYSBsaXN0IG9mIGZpeHR1cmVz
IHdoaWNoIGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBub2RlIGlkLgotCi0gICAgICAgIDpw
YXJhbSBzdHIgYXJnbmFtZTogbmFtZSBvZiB0aGUgZml4dHVyZSB0byBzZWFyY2ggZm9yCi0gICAg
ICAgIDpwYXJhbSBzdHIgbm9kZWlkOiBmdWxsIG5vZGUgaWQgb2YgdGhlIHJlcXVlc3RpbmcgdGVz
dC4KLSAgICAgICAgOnJldHVybjogbGlzdFtGaXh0dXJlRGVmXQotICAgICAgICAiIiIKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9hcmcyZml4dHVyZWRlZnNb
YXJnbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB0dXBsZShzZWxmLl9tYXRjaGZh
Y3RvcmllcyhmaXh0dXJlZGVmcywgbm9kZWlkKSkKLQotICAgIGRlZiBfbWF0Y2hmYWN0b3JpZXMo
c2VsZiwgZml4dHVyZWRlZnMsIG5vZGVpZCk6Ci0gICAgICAgIGZvciBmaXh0dXJlZGVmIGluIGZp
eHR1cmVkZWZzOgotICAgICAgICAgICAgaWYgbm9kZXMuaXNjaGlsZG5vZGUoZml4dHVyZWRlZi5i
YXNlaWQsIG5vZGVpZCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgZml4dHVyZWRlZgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDk3MTQ3YTg4MjUwYTM1NTNjODVjNDRiMTgyODIzZTU0MmI5Zjc0YmMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVl
emVfc3VwcG9ydC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSIiIgotUHJvdmlk
ZXMgYSBmdW5jdGlvbiB0byByZXBvcnQgYWxsIGludGVybmFsIG1vZHVsZXMgZm9yIHVzaW5nIGZy
ZWV6aW5nIHRvb2xzCi1weXRlc3QKLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi0KLWRlZiBmcmVlemVfaW5jbHVk
ZXMoKToKLSAgICAiIiIKLSAgICBSZXR1cm5zIGEgbGlzdCBvZiBtb2R1bGUgbmFtZXMgdXNlZCBi
eSBweS50ZXN0IHRoYXQgc2hvdWxkIGJlCi0gICAgaW5jbHVkZWQgYnkgY3hfZnJlZXplLgotICAg
ICIiIgotICAgIGltcG9ydCBweQotICAgIGltcG9ydCBfcHl0ZXN0Ci0gICAgcmVzdWx0ID0gbGlz
dChfaXRlcl9hbGxfbW9kdWxlcyhweSkpCi0gICAgcmVzdWx0ICs9IGxpc3QoX2l0ZXJfYWxsX21v
ZHVsZXMoX3B5dGVzdCkpCi0gICAgcmV0dXJuIHJlc3VsdAotCi0KLWRlZiBfaXRlcl9hbGxfbW9k
dWxlcyhwYWNrYWdlLCBwcmVmaXg9JycpOgotICAgICIiIgotICAgIEl0ZXJhdGVzIG92ZXIgdGhl
IG5hbWVzIG9mIGFsbCBtb2R1bGVzIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBnaXZlbgotICAg
IHBhY2thZ2UsIHJlY3Vyc2l2ZWx5LgotICAgIEV4YW1wbGU6Ci0gICAgICAgIF9pdGVyX2FsbF9t
b2R1bGVzKF9weXRlc3QpIC0+Ci0gICAgICAgICAgICBbJ19weXRlc3QuYXNzZXJ0aW9uLm5ld2lu
dGVycHJldCcsCi0gICAgICAgICAgICAgJ19weXRlc3QuY2FwdHVyZScsCi0gICAgICAgICAgICAg
J19weXRlc3QuY29yZScsCi0gICAgICAgICAgICAgLi4uCi0gICAgICAgICAgICBdCi0gICAgIiIi
Ci0gICAgaW1wb3J0IG9zCi0gICAgaW1wb3J0IHBrZ3V0aWwKLSAgICBpZiB0eXBlKHBhY2thZ2Up
IGlzIG5vdCBzdHI6Ci0gICAgICAgIHBhdGgsIHByZWZpeCA9IHBhY2thZ2UuX19wYXRoX19bMF0s
IHBhY2thZ2UuX19uYW1lX18gKyAnLicKLSAgICBlbHNlOgotICAgICAgICBwYXRoID0gcGFja2Fn
ZQotICAgIGZvciBfLCBuYW1lLCBpc19wYWNrYWdlIGluIHBrZ3V0aWwuaXRlcl9tb2R1bGVzKFtw
YXRoXSk6Ci0gICAgICAgIGlmIGlzX3BhY2thZ2U6Ci0gICAgICAgICAgICBmb3IgbSBpbiBfaXRl
cl9hbGxfbW9kdWxlcyhvcy5wYXRoLmpvaW4ocGF0aCwgbmFtZSksIHByZWZpeD1uYW1lICsgJy4n
KToKLSAgICAgICAgICAgICAgICB5aWVsZCBwcmVmaXggKyBtCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB5aWVsZCBwcmVmaXggKyBuYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2hlbHBjb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NDQ2MzdmODY2MGYyNzJjNDg4YTJhYjBjNjhl
ZTRlODU3MThiYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9oZWxwY29uZmlnLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTg0ICswLDAgQEAKLSIiIiB2ZXJzaW9uIGluZm8sIGhlbHAgbWVzc2FnZXMsIHRyYWNpbmcgY29u
ZmlndXJhdGlvbi4gICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHkKLWltcG9ydCBweXRlc3QKLWZy
b20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAotaW1wb3J0IG9zCi1pbXBvcnQgc3lz
Ci1mcm9tIGFyZ3BhcnNlIGltcG9ydCBBY3Rpb24KLQotCi1jbGFzcyBIZWxwQWN0aW9uKEFjdGlv
bik6Ci0gICAgIiIiVGhpcyBpcyBhbiBhcmdwYXJzZSBBY3Rpb24gdGhhdCB3aWxsIHJhaXNlIGFu
IGV4Y2VwdGlvbiBpbgotICAgIG9yZGVyIHRvIHNraXAgdGhlIHJlc3Qgb2YgdGhlIGFyZ3VtZW50
IHBhcnNpbmcgd2hlbiAtLWhlbHAgaXMgcGFzc2VkLgotICAgIFRoaXMgcHJldmVudHMgYXJncGFy
c2UgZnJvbSBxdWl0dGluZyBkdWUgdG8gbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudHMKLSAgICB3
aGVuIGFueSBhcmUgZGVmaW5lZCwgZm9yIGV4YW1wbGUgYnkgYGBweXRlc3RfYWRkb3B0aW9uYGAu
Ci0gICAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB3YXkgdGhhdCB0aGUgYnVpbHRpbiBhcmdwYXJz
ZSAtLWhlbHAgb3B0aW9uIGlzCi0gICAgaW1wbGVtZW50ZWQgYnkgcmFpc2luZyBTeXN0ZW1FeGl0
LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsCi0gICAgICAgICAgICAgICAgIG9w
dGlvbl9zdHJpbmdzLAotICAgICAgICAgICAgICAgICBkZXN0PU5vbmUsCi0gICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgIGhlbHA9Tm9uZSk6Ci0gICAgICAg
IHN1cGVyKEhlbHBBY3Rpb24sIHNlbGYpLl9faW5pdF9fKAotICAgICAgICAgICAgb3B0aW9uX3N0
cmluZ3M9b3B0aW9uX3N0cmluZ3MsCi0gICAgICAgICAgICBkZXN0PWRlc3QsCi0gICAgICAgICAg
ICBjb25zdD1UcnVlLAotICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0LAotICAgICAgICAgICAg
bmFyZ3M9MCwKLSAgICAgICAgICAgIGhlbHA9aGVscCkKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBwYXJzZXIsIG5hbWVzcGFjZSwgdmFsdWVzLCBvcHRpb25fc3RyaW5nPU5vbmUpOgotICAgICAg
ICBzZXRhdHRyKG5hbWVzcGFjZSwgc2VsZi5kZXN0LCBzZWxmLmNvbnN0KQotCi0gICAgICAgICMg
V2Ugc2hvdWxkIG9ubHkgc2tpcCB0aGUgcmVzdCBvZiB0aGUgcGFyc2luZyBhZnRlciBwcmVwYXJz
ZSBpcyBkb25lCi0gICAgICAgIGlmIGdldGF0dHIocGFyc2VyLl9wYXJzZXIsICdhZnRlcl9wcmVw
YXJzZScsIEZhbHNlKToKLSAgICAgICAgICAgIHJhaXNlIFByaW50SGVscAotCi0KLWRlZiBweXRl
c3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoJ2RlYnVn
Y29uZmlnJykKLSAgICBncm91cC5hZGRvcHRpb24oJy0tdmVyc2lvbicsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9ImRpc3BsYXkgcHl0ZXN0IGxpYiB2ZXJz
aW9uIGFuZCBpbXBvcnQgaW5mb3JtYXRpb24uIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCItaCIs
ICItLWhlbHAiLCBhY3Rpb249SGVscEFjdGlvbiwgZGVzdD0iaGVscCIsCi0gICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJzaG93IGhlbHAgbWVzc2FnZSBhbmQgY29uZmlndXJhdGlvbiBpbmZvIikK
LSAgICBncm91cC5fYWRkb3B0aW9uKCctcCcsIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0icGx1Z2lu
cyIsIGRlZmF1bHQ9W10sCi0gICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJuYW1lIiwKLSAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9ImVhcmx5LWxvYWQgZ2l2ZW4gcGx1Z2luIChtdWx0aS1h
bGxvd2VkKS4gIgotICAgICAgICAgICAgICAgICAgICAgIlRvIGF2b2lkIGxvYWRpbmcgb2YgcGx1
Z2lucywgdXNlIHRoZSBgbm86YCBwcmVmaXgsIGUuZy4gIgotICAgICAgICAgICAgICAgICAgICAg
ImBubzpkb2N0ZXN0YC4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS10cmFjZWNvbmZpZycsICct
LXRyYWNlLWNvbmZpZycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InRyYWNlIGNvbnNpZGVy
YXRpb25zIG9mIGNvbmZ0ZXN0LnB5IGZpbGVzLiIpLAotICAgIGdyb3VwLmFkZG9wdGlvbignLS1k
ZWJ1ZycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImRl
YnVnIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ic3RvcmUgaW50
ZXJuYWwgdHJhY2luZyBkZWJ1ZyBpbmZvcm1hdGlvbiBpbiAncHl0ZXN0ZGVidWcubG9nJy4iKQot
ICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctbycsICctLW92ZXJyaWRlLWluaScsIG5h
cmdzPScqJywgZGVzdD0ib3ZlcnJpZGVfaW5pIiwKLSAgICAgICAgYWN0aW9uPSJhcHBlbmQiLAot
ICAgICAgICBoZWxwPSJvdmVycmlkZSBjb25maWcgb3B0aW9uIHdpdGggb3B0aW9uPXZhbHVlIHN0
eWxlLCBlLmcuIGAtbyB4ZmFpbF9zdHJpY3Q9VHJ1ZWAuIikKLQotCi1AcHl0ZXN0Lmhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2UoKToKLSAgICBvdXRj
b21lID0geWllbGQKLSAgICBjb25maWcgPSBvdXRjb21lLmdldF9yZXN1bHQoKQotICAgIGlmIGNv
bmZpZy5vcHRpb24uZGVidWc6Ci0gICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgoInB5dGVz
dGRlYnVnLmxvZyIpCi0gICAgICAgIGRlYnVnZmlsZSA9IG9wZW4ocGF0aCwgJ3cnKQotICAgICAg
ICBkZWJ1Z2ZpbGUud3JpdGUoInZlcnNpb25zIHB5dGVzdC0lcywgcHktJXMsICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJweXRob24tJXNcbmN3ZD0lc1xuYXJncz0lc1xuXG4iICUgKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25fXywgcHkuX192ZXJzaW9u
X18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iLmpvaW4obWFwKHN0ciwgc3lzLnZl
cnNpb25faW5mbykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmdldGN3ZCgpLCBj
b25maWcuX29yaWdhcmdzKSkKLSAgICAgICAgY29uZmlnLnRyYWNlLnJvb3Quc2V0d3JpdGVyKGRl
YnVnZmlsZS53cml0ZSkKLSAgICAgICAgdW5kb190cmFjaW5nID0gY29uZmlnLnBsdWdpbm1hbmFn
ZXIuZW5hYmxlX3RyYWNpbmcoKQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3cml0aW5nIHB5
dGVzdGRlYnVnIGluZm9ybWF0aW9uIHRvICVzXG4iICUgcGF0aCkKLQotICAgICAgICBkZWYgdW5z
ZXRfdHJhY2luZygpOgotICAgICAgICAgICAgZGVidWdmaWxlLmNsb3NlKCkKLSAgICAgICAgICAg
IHN5cy5zdGRlcnIud3JpdGUoIndyb3RlIHB5dGVzdGRlYnVnIGluZm9ybWF0aW9uIHRvICVzXG4i
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdmaWxlLm5hbWUpCi0gICAgICAg
ICAgICBjb25maWcudHJhY2Uucm9vdC5zZXR3cml0ZXIoTm9uZSkKLSAgICAgICAgICAgIHVuZG9f
dHJhY2luZygpCi0KLSAgICAgICAgY29uZmlnLmFkZF9jbGVhbnVwKHVuc2V0X3RyYWNpbmcpCi0K
LQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9u
LnZlcnNpb246Ci0gICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHB5dGVzdC5fX2ZpbGVfXykKLSAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBpcyBweXRlc3QgdmVyc2lvbiAlcywgaW1wb3J0
ZWQgZnJvbSAlc1xuIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGVzdC5fX3ZlcnNp
b25fXywgcCkpCi0gICAgICAgIHBsdWdpbmluZm8gPSBnZXRwbHVnaW52ZXJzaW9uaW5mbyhjb25m
aWcpCi0gICAgICAgIGlmIHBsdWdpbmluZm86Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBwbHVn
aW5pbmZvOgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUobGluZSArICJcbiIpCi0g
ICAgICAgIHJldHVybiAwCi0gICAgZWxpZiBjb25maWcub3B0aW9uLmhlbHA6Ci0gICAgICAgIGNv
bmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgc2hvd2hlbHAoY29uZmlnKQotICAgICAgICBj
b25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCi0gICAgICAgIHJldHVybiAwCi0KLQotZGVmIHNo
b3doZWxwKGNvbmZpZyk6Ci0gICAgcmVwb3J0ZXIgPSBjb25maWcucGx1Z2lubWFuYWdlci5nZXRf
cGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKLSAgICB0dyA9IHJlcG9ydGVyLl90dwotICAgIHR3
LndyaXRlKGNvbmZpZy5fcGFyc2VyLm9wdHBhcnNlci5mb3JtYXRfaGVscCgpKQotICAgIHR3Lmxp
bmUoKQotICAgIHR3LmxpbmUoKQotICAgIHR3LmxpbmUoIltweXRlc3RdIGluaS1vcHRpb25zIGlu
IHRoZSBmaXJzdCAiCi0gICAgICAgICAgICAicHl0ZXN0LmluaXx0b3guaW5pfHNldHVwLmNmZyBm
aWxlIGZvdW5kOiIpCi0gICAgdHcubGluZSgpCi0KLSAgICBmb3IgbmFtZSBpbiBjb25maWcuX3Bh
cnNlci5faW5pbmFtZXM6Ci0gICAgICAgIGhlbHAsIHR5cGUsIGRlZmF1bHQgPSBjb25maWcuX3Bh
cnNlci5faW5pZGljdFtuYW1lXQotICAgICAgICBpZiB0eXBlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICB0eXBlID0gInN0cmluZyIKLSAgICAgICAgc3BlYyA9ICIlcyAoJXMpIiAlIChuYW1lLCB0eXBl
KQotICAgICAgICBsaW5lID0gIiAgJS0yNHMgJXMiICUgKHNwZWMsIGhlbHApCi0gICAgICAgIHR3
LmxpbmUobGluZVs6dHcuZnVsbHdpZHRoXSkKLQotICAgIHR3LmxpbmUoKQotICAgIHR3LmxpbmUo
ImVudmlyb25tZW50IHZhcmlhYmxlczoiKQotICAgIHZhcnMgPSBbCi0gICAgICAgICgiUFlURVNU
X0FERE9QVFMiLCAiZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMiKSwKLSAgICAgICAgKCJQWVRF
U1RfUExVR0lOUyIsICJjb21tYS1zZXBhcmF0ZWQgcGx1Z2lucyB0byBsb2FkIGR1cmluZyBzdGFy
dHVwIiksCi0gICAgICAgICgiUFlURVNUX0RFQlVHIiwgInNldCB0byBlbmFibGUgZGVidWcgdHJh
Y2luZyBvZiBweXRlc3QncyBpbnRlcm5hbHMiKQotICAgIF0KLSAgICBmb3IgbmFtZSwgaGVscCBp
biB2YXJzOgotICAgICAgICB0dy5saW5lKCIgICUtMjRzICVzIiAlIChuYW1lLCBoZWxwKSkKLSAg
ICB0dy5saW5lKCkKLSAgICB0dy5saW5lKCkKLQotICAgIHR3LmxpbmUoInRvIHNlZSBhdmFpbGFi
bGUgbWFya2VycyB0eXBlOiBweXRlc3QgLS1tYXJrZXJzIikKLSAgICB0dy5saW5lKCJ0byBzZWUg
YXZhaWxhYmxlIGZpeHR1cmVzIHR5cGU6IHB5dGVzdCAtLWZpeHR1cmVzIikKLSAgICB0dy5saW5l
KCIoc2hvd24gYWNjb3JkaW5nIHRvIHNwZWNpZmllZCBmaWxlX29yX2RpciBvciBjdXJyZW50IGRp
ciAiCi0gICAgICAgICAgICAiaWYgbm90IHNwZWNpZmllZCkiKQotCi0gICAgZm9yIHdhcm5pbmdy
ZXBvcnQgaW4gcmVwb3J0ZXIuc3RhdHMuZ2V0KCd3YXJuaW5ncycsIFtdKToKLSAgICAgICAgdHcu
bGluZSgid2FybmluZyA6ICIgKyB3YXJuaW5ncmVwb3J0Lm1lc3NhZ2UsIHJlZD1UcnVlKQotICAg
IHJldHVybgotCi0KLWNvbmZ0ZXN0X29wdGlvbnMgPSBbCi0gICAgKCdweXRlc3RfcGx1Z2lucycs
ICdsaXN0IG9mIHBsdWdpbiBuYW1lcyB0byBsb2FkJyksCi1dCi0KLQotZGVmIGdldHBsdWdpbnZl
cnNpb25pbmZvKGNvbmZpZyk6Ci0gICAgbGluZXMgPSBbXQotICAgIHBsdWdpbmluZm8gPSBjb25m
aWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpCi0gICAgaWYgcGx1Z2luaW5m
bzoKLSAgICAgICAgbGluZXMuYXBwZW5kKCJzZXR1cHRvb2xzIHJlZ2lzdGVyZWQgcGx1Z2luczoi
KQotICAgICAgICBmb3IgcGx1Z2luLCBkaXN0IGluIHBsdWdpbmluZm86Ci0gICAgICAgICAgICBs
b2MgPSBnZXRhdHRyKHBsdWdpbiwgJ19fZmlsZV9fJywgcmVwcihwbHVnaW4pKQotICAgICAgICAg
ICAgY29udGVudCA9ICIlcy0lcyBhdCAlcyIgJSAoZGlzdC5wcm9qZWN0X25hbWUsIGRpc3QudmVy
c2lvbiwgbG9jKQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICIgKyBjb250ZW50KQotICAg
IHJldHVybiBsaW5lcwotCi0KLWRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihjb25maWcpOgotICAg
IGxpbmVzID0gW10KLSAgICBpZiBjb25maWcub3B0aW9uLmRlYnVnIG9yIGNvbmZpZy5vcHRpb24u
dHJhY2Vjb25maWc6Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgidXNpbmc6IHB5dGVzdC0lcyBweWxp
Yi0lcyIgJQotICAgICAgICAgICAgICAgICAgICAgKHB5dGVzdC5fX3ZlcnNpb25fXywgcHkuX192
ZXJzaW9uX18pKQotCi0gICAgICAgIHZlcmluZm8gPSBnZXRwbHVnaW52ZXJzaW9uaW5mbyhjb25m
aWcpCi0gICAgICAgIGlmIHZlcmluZm86Ci0gICAgICAgICAgICBsaW5lcy5leHRlbmQodmVyaW5m
bykKLQotICAgIGlmIGNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6Ci0gICAgICAgIGxpbmVzLmFw
cGVuZCgiYWN0aXZlIHBsdWdpbnM6IikKLSAgICAgICAgaXRlbXMgPSBjb25maWcucGx1Z2lubWFu
YWdlci5saXN0X25hbWVfcGx1Z2luKCkKLSAgICAgICAgZm9yIG5hbWUsIHBsdWdpbiBpbiBpdGVt
czoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIocGx1Z2luLCAnX19maWxlX18nKToKLSAgICAgICAg
ICAgICAgICByID0gcGx1Z2luLl9fZmlsZV9fCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHIgPSByZXByKHBsdWdpbikKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiICAgICUt
MjBzOiAlcyIgJSAobmFtZSwgcikpCi0gICAgcmV0dXJuIGxpbmVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ob29rc3Bl
Yy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQwYmY5OWQzNzVhYTZjNzVlZTc0
M2ZlNjllY2Y3OTcwMjIzMjJjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5CisrKyAvZGV2L251bGwK
QEAgLTEsNDIzICswLDAgQEAKLSIiIiBob29rIHNwZWNpZmljYXRpb25zIGZvciBweXRlc3QgcGx1
Z2lucywgaW52b2tlZCBmcm9tIG1haW4ucHkgYW5kIGJ1aWx0aW4gcGx1Z2lucy4gICIiIgotCi1m
cm9tIHBsdWdneSBpbXBvcnQgSG9va3NwZWNNYXJrZXIKLQotaG9va3NwZWMgPSBIb29rc3BlY01h
cmtlcigicHl0ZXN0IikKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEluaXRpYWxpemF0aW9uIGhv
b2tzIGNhbGxlZCBmb3IgZXZlcnkgcGx1Z2luCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1AaG9v
a3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfYWRkaG9va3MocGx1Z2lubWFuYWdlcik6
Ci0gICAgIiIiY2FsbGVkIGF0IHBsdWdpbiByZWdpc3RyYXRpb24gdGltZSB0byBhbGxvdyBhZGRp
bmcgbmV3IGhvb2tzIHZpYSBhIGNhbGwgdG8KLSAgICBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rc3Bl
Y3MobW9kdWxlX29yX2NsYXNzLCBwcmVmaXgpLiIiIgotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1U
cnVlKQotZGVmIHB5dGVzdF9uYW1lc3BhY2UoKToKLSAgICAiIiIKLSAgICBERVBSRUNBVEVEOiB0
aGlzIGhvb2sgY2F1c2VzIGRpcmVjdCBtb25rZXlwYXRjaGluZyBvbiBweXRlc3QsIGl0cyB1c2Ug
aXMgc3Ryb25nbHkgZGlzY291cmFnZWQKLSAgICByZXR1cm4gZGljdCBvZiBuYW1lLT5vYmplY3Qg
dG8gYmUgbWFkZSBnbG9iYWxseSBhdmFpbGFibGUgaW4KLSAgICB0aGUgcHl0ZXN0IG5hbWVzcGFj
ZS4gIFRoaXMgaG9vayBpcyBjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbgotICAgIHRpbWUu
Ci0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X3BsdWdp
bl9yZWdpc3RlcmVkKHBsdWdpbiwgbWFuYWdlcik6Ci0gICAgIiIiIGEgbmV3IHB5dGVzdCBwbHVn
aW4gZ290IHJlZ2lzdGVyZWQuICIiIgotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQotZGVm
IHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAiIiJyZWdpc3RlciBhcmdwYXJzZS1zdHls
ZSBvcHRpb25zIGFuZCBpbmktc3R5bGUgY29uZmlnIHZhbHVlcywKLSAgICBjYWxsZWQgb25jZSBh
dCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBydW4uCi0KLSAgICAuLiBub3RlOjoKLQotICAgICAg
ICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBvbmx5IGluIHBsdWdpbnMgb3Ig
YGBjb25mdGVzdC5weWBgCi0gICAgICAgIGZpbGVzIHNpdHVhdGVkIGF0IHRoZSB0ZXN0cyByb290
IGRpcmVjdG9yeSBkdWUgdG8gaG93IHB5dGVzdAotICAgICAgICA6cmVmOmBkaXNjb3ZlcnMgcGx1
Z2lucyBkdXJpbmcgc3RhcnR1cCA8cGx1Z2lub3JkZXI+YC4KLQotICAgIDphcmcgcGFyc2VyOiBU
byBhZGQgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGNhbGwKLSAgICAgICAgOnB5OmZ1bmM6YHBhcnNl
ci5hZGRvcHRpb24oLi4uKSA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZG9wdGlvbj5gLgotICAg
ICAgICBUbyBhZGQgaW5pLWZpbGUgdmFsdWVzIGNhbGwgOnB5OmZ1bmM6YHBhcnNlci5hZGRpbmko
Li4uKQotICAgICAgICA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZGluaT5gLgotCi0gICAgT3B0
aW9ucyBjYW4gbGF0ZXIgYmUgYWNjZXNzZWQgdGhyb3VnaCB0aGUKLSAgICA6cHk6Y2xhc3M6YGNv
bmZpZyA8X3B5dGVzdC5jb25maWcuQ29uZmlnPmAgb2JqZWN0LCByZXNwZWN0aXZlbHk6Ci0KLSAg
ICAtIDpweTpmdW5jOmBjb25maWcuZ2V0b3B0aW9uKG5hbWUpIDxfcHl0ZXN0LmNvbmZpZy5Db25m
aWcuZ2V0b3B0aW9uPmAgdG8KLSAgICAgIHJldHJpZXZlIHRoZSB2YWx1ZSBvZiBhIGNvbW1hbmQg
bGluZSBvcHRpb24uCi0KLSAgICAtIDpweTpmdW5jOmBjb25maWcuZ2V0aW5pKG5hbWUpIDxfcHl0
ZXN0LmNvbmZpZy5Db25maWcuZ2V0aW5pPmAgdG8gcmV0cmlldmUKLSAgICAgIGEgdmFsdWUgcmVh
ZCBmcm9tIGFuIGluaS1zdHlsZSBmaWxlLgotCi0gICAgVGhlIGNvbmZpZyBvYmplY3QgaXMgcGFz
c2VkIGFyb3VuZCBvbiBtYW55IGludGVybmFsIG9iamVjdHMgdmlhIHRoZSBgYC5jb25maWdgYAot
ICAgIGF0dHJpYnV0ZSBvciBjYW4gYmUgcmV0cmlldmVkIGFzIHRoZSBgYHB5dGVzdGNvbmZpZ2Bg
IGZpeHR1cmUgb3IgYWNjZXNzZWQKLSAgICB2aWEgKGRlcHJlY2F0ZWQpIGBgcHl0ZXN0LmNvbmZp
Z2BgLgotICAgICIiIgotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQotZGVmIHB5dGVzdF9j
b25maWd1cmUoY29uZmlnKToKLSAgICAiIiIKLSAgICBBbGxvd3MgcGx1Z2lucyBhbmQgY29uZnRl
c3QgZmlsZXMgdG8gcGVyZm9ybSBpbml0aWFsIGNvbmZpZ3VyYXRpb24uCi0KLSAgICBUaGlzIGhv
b2sgaXMgY2FsbGVkIGZvciBldmVyeSBwbHVnaW4gYW5kIGluaXRpYWwgY29uZnRlc3QgZmlsZQot
ICAgIGFmdGVyIGNvbW1hbmQgbGluZSBvcHRpb25zIGhhdmUgYmVlbiBwYXJzZWQuCi0KLSAgICBB
ZnRlciB0aGF0LCB0aGUgaG9vayBpcyBjYWxsZWQgZm9yIG90aGVyIGNvbmZ0ZXN0IGZpbGVzIGFz
IHRoZXkgYXJlCi0gICAgaW1wb3J0ZWQuCi0KLSAgICA6YXJnIGNvbmZpZzogcHl0ZXN0IGNvbmZp
ZyBvYmplY3QKLSAgICA6dHlwZSBjb25maWc6IF9weXRlc3QuY29uZmlnLkNvbmZpZwotICAgICIi
IgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQm9vdHN0cmFwcGluZyBob29rcyBjYWxsZWQgZm9y
IHBsdWdpbnMgcmVnaXN0ZXJlZCBlYXJseSBlbm91Z2g6Ci0jIGludGVybmFsIGFuZCAzcmQgcGFy
dHkgcGx1Z2lucyBhcyB3ZWxsIGFzIGRpcmVjdGx5Ci0jIGRpc2NvdmVyYWJsZSBjb25mdGVzdC5w
eSBsb2NhbCBwbHVnaW5zLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGZpcnN0
cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2UocGx1Z2lubWFuYWdlciwgYXJn
cyk6Ci0gICAgIiIicmV0dXJuIGluaXRpYWxpemVkIGNvbmZpZyBvYmplY3QsIHBhcnNpbmcgdGhl
IHNwZWNpZmllZCBhcmdzLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBz
ZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfY21kbGluZV9wcmVwYXJz
ZShjb25maWcsIGFyZ3MpOgotICAgICIiIihkZXByZWNhdGVkKSBtb2RpZnkgY29tbWFuZCBsaW5l
IGFyZ3VtZW50cyBiZWZvcmUgb3B0aW9uIHBhcnNpbmcuICIiIgotCi0KLUBob29rc3BlYyhmaXJz
dHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICAiIiIg
Y2FsbGVkIGZvciBwZXJmb3JtaW5nIHRoZSBtYWluIGNvbW1hbmQgbGluZSBhY3Rpb24uIFRoZSBk
ZWZhdWx0Ci0gICAgaW1wbGVtZW50YXRpb24gd2lsbCBpbnZva2UgdGhlIGNvbmZpZ3VyZSBob29r
cyBhbmQgcnVudGVzdF9tYWlubG9vcC4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJl
c3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2xvYWRfaW5p
dGlhbF9jb25mdGVzdHMoZWFybHlfY29uZmlnLCBwYXJzZXIsIGFyZ3MpOgotICAgICIiIiBpbXBs
ZW1lbnRzIHRoZSBsb2FkaW5nIG9mIGluaXRpYWwgY29uZnRlc3QgZmlsZXMgYWhlYWQKLSAgICBv
ZiBjb21tYW5kIGxpbmUgb3B0aW9uIHBhcnNpbmcuICIiIgotCi0KLSMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBjb2xsZWN0aW9uIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotQGhvb2tzcGVjKGZp
cnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbik6Ci0gICAgIiIi
IHBlcmZvcm0gdGhlIGNvbGxlY3Rpb24gcHJvdG9jb2wgZm9yIHRoZSBnaXZlbiBzZXNzaW9uLgot
Ci0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1
bHRgICIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZXNzaW9uLCBj
b25maWcsIGl0ZW1zKToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGNvbGxlY3Rpb24gaGFzIGJlZW4g
cGVyZm9ybWVkLCBtYXkgZmlsdGVyIG9yIHJlLW9yZGVyCi0gICAgdGhlIGl0ZW1zIGluLXBsYWNl
LiIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbl9maW5pc2goc2Vzc2lvbik6Ci0gICAgIiIi
IGNhbGxlZCBhZnRlciBjb2xsZWN0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZCBhbmQgbW9kaWZpZWQu
ICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9pZ25vcmVf
Y29sbGVjdChwYXRoLCBjb25maWcpOgotICAgICIiIiByZXR1cm4gVHJ1ZSB0byBwcmV2ZW50IGNv
bnNpZGVyaW5nIHRoaXMgcGF0aCBmb3IgY29sbGVjdGlvbi4KLSAgICBUaGlzIGhvb2sgaXMgY29u
c3VsdGVkIGZvciBhbGwgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHByaW9yIHRvIGNhbGxpbmcKLSAg
ICBtb3JlIHNwZWNpZmljIGhvb2tzLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVz
dWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgCi0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0
cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGgsIHBhcmVudCk6
Ci0gICAgIiIiIGNhbGxlZCBiZWZvcmUgdHJhdmVyc2luZyBhIGRpcmVjdG9yeSBmb3IgY29sbGVj
dGlvbiBmaWxlcy4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpy
ZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBw
YXJlbnQpOgotICAgICIiIiByZXR1cm4gY29sbGVjdGlvbiBOb2RlIG9yIE5vbmUgZm9yIHRoZSBn
aXZlbiBwYXRoLiBBbnkgbmV3IG5vZGUKLSAgICBuZWVkcyB0byBoYXZlIHRoZSBzcGVjaWZpZWQg
YGBwYXJlbnRgYCBhcyBhIHBhcmVudC4iIiIKLQotIyBsb2dnaW5nIGhvb2tzIGZvciBjb2xsZWN0
aW9uCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0c3RhcnQoY29sbGVjdG9yKToKLSAgICAiIiIgY29s
bGVjdG9yIHN0YXJ0cyBjb2xsZWN0aW5nLiAiIiIKLQotCi1kZWYgcHl0ZXN0X2l0ZW1jb2xsZWN0
ZWQoaXRlbSk6Ci0gICAgIiIiIHdlIGp1c3QgY29sbGVjdGVkIGEgdGVzdCBpdGVtLiAiIiIKLQot
Ci1kZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0KToKLSAgICAiIiIgY29sbGVjdG9yIGZp
bmlzaGVkIGNvbGxlY3RpbmcuICIiIgotCi0KLWRlZiBweXRlc3RfZGVzZWxlY3RlZChpdGVtcyk6
Ci0gICAgIiIiIGNhbGxlZCBmb3IgdGVzdCBpdGVtcyBkZXNlbGVjdGVkIGJ5IGtleXdvcmQuICIi
IgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9tYWtlX2NvbGxl
Y3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgIiIiIHBlcmZvcm0gYGBjb2xsZWN0b3IuY29sbGVj
dCgpYGAgYW5kIHJldHVybiBhIENvbGxlY3RSZXBvcnQuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBu
b24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotIyBQeXRob24gdGVzdCBmdW5jdGlvbiByZWxhdGVkIGhvb2tzCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfcHlj
b2xsZWN0X21ha2Vtb2R1bGUocGF0aCwgcGFyZW50KToKLSAgICAiIiIgcmV0dXJuIGEgTW9kdWxl
IGNvbGxlY3RvciBvciBOb25lIGZvciB0aGUgZ2l2ZW4gcGF0aC4KLSAgICBUaGlzIGhvb2sgd2ls
bCBiZSBjYWxsZWQgZm9yIGVhY2ggbWF0Y2hpbmcgdGVzdCBtb2R1bGUgcGF0aC4KLSAgICBUaGUg
cHl0ZXN0X2NvbGxlY3RfZmlsZSBob29rIG5lZWRzIHRvIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8K
LSAgICBjcmVhdGUgdGVzdCBtb2R1bGVzIGZvciBmaWxlcyB0aGF0IGRvIG5vdCBtYXRjaCBhcyBh
IHRlc3QgbW9kdWxlLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUg
OnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQot
ZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgotICAg
ICIiIiByZXR1cm4gY3VzdG9tIGl0ZW0vY29sbGVjdG9yIGZvciBhIHB5dGhvbiBvYmplY3QgaW4g
YSBtb2R1bGUsIG9yIE5vbmUuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQs
IHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRy
dWUpCi1kZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgotICAgICIiIiBjYWxsIHVu
ZGVybHlpbmcgdGVzdCBmdW5jdGlvbi4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJl
c3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2dlbmVyYXRl
X3Rlc3RzKG1ldGFmdW5jKToKLSAgICAiIiIgZ2VuZXJhdGUgKG11bHRpcGxlKSBwYXJhbWV0cml6
ZWQgY2FsbHMgdG8gYSB0ZXN0IGZ1bmN0aW9uLiIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3Vs
dD1UcnVlKQotZGVmIHB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKGNvbmZpZywgdmFsLCBhcmdu
YW1lKToKLSAgICAiIiJSZXR1cm4gYSB1c2VyLWZyaWVuZGx5IHN0cmluZyByZXByZXNlbnRhdGlv
biBvZiB0aGUgZ2l2ZW4gYGB2YWxgYCB0aGF0IHdpbGwgYmUgdXNlZAotICAgIGJ5IEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSBjYWxscy4gUmV0dXJuIE5vbmUgaWYgdGhlIGhvb2sgZG9lc24ndCBr
bm93IGFib3V0IGBgdmFsYGAuCi0gICAgVGhlIHBhcmFtZXRlciBuYW1lIGlzIGF2YWlsYWJsZSBh
cyBgYGFyZ25hbWVgYCwgaWYgcmVxdWlyZWQuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9u
ZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBnZW5lcmljIHJ1bnRlc3QgcmVsYXRlZCBob29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3Rsb29wKHNl
c3Npb24pOgotICAgICIiIiBjYWxsZWQgZm9yIHBlcmZvcm1pbmcgdGhlIG1haW4gcnVudGVzdCBs
b29wCi0gICAgKGFmdGVyIGNvbGxlY3Rpb24gZmluaXNoZWQpLgotCi0gICAgU3RvcHMgYXQgZmly
c3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBw
eXRlc3RfaXRlbXN0YXJ0KGl0ZW0sIG5vZGUpOgotICAgICIiIiAoZGVwcmVjYXRlZCwgdXNlIHB5
dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KS4gIiIiCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRy
dWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSwgbmV4dGl0ZW0pOgotICAgICIi
IiBpbXBsZW1lbnRzIHRoZSBydW50ZXN0X3NldHVwL2NhbGwvdGVhcmRvd24gcHJvdG9jb2wgZm9y
Ci0gICAgdGhlIGdpdmVuIHRlc3QgaXRlbSwgaW5jbHVkaW5nIGNhcHR1cmluZyBleGNlcHRpb25z
IGFuZCBjYWxsaW5nCi0gICAgcmVwb3J0aW5nIGhvb2tzLgotCi0gICAgOmFyZyBpdGVtOiB0ZXN0
IGl0ZW0gZm9yIHdoaWNoIHRoZSBydW50ZXN0IHByb3RvY29sIGlzIHBlcmZvcm1lZC4KLQotICAg
IDphcmcgbmV4dGl0ZW06IHRoZSBzY2hlZHVsZWQtdG8tYmUtbmV4dCB0ZXN0IGl0ZW0gKG9yIE5v
bmUgaWYgdGhpcwotICAgICAgICAgICAgICAgICAgIGlzIHRoZSBlbmQgbXkgZnJpZW5kKS4gIFRo
aXMgYXJndW1lbnQgaXMgcGFzc2VkIG9uIHRvCi0gICAgICAgICAgICAgICAgICAgOnB5OmZ1bmM6
YHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duYC4KLQotICAgIDpyZXR1cm4gYm9vbGVhbjogVHJ1ZSBp
ZiBubyBmdXJ0aGVyIGhvb2sgaW1wbGVtZW50YXRpb25zIHNob3VsZCBiZSBpbnZva2VkLgotCi0K
LSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3Vs
dGAgIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KG5vZGVpZCwgbG9jYXRpb24p
OgotICAgICIiIiBzaWduYWwgdGhlIHN0YXJ0IG9mIHJ1bm5pbmcgYSBzaW5nbGUgdGVzdCBpdGVt
LiAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgIiIiIGNhbGxl
ZCBiZWZvcmUgYGBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pYGAuICIiIgotCi0KLWRlZiBweXRl
c3RfcnVudGVzdF9jYWxsKGl0ZW0pOgotICAgICIiIiBjYWxsZWQgdG8gZXhlY3V0ZSB0aGUgdGVz
dCBgYGl0ZW1gYC4gIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0ZW0sIG5l
eHRpdGVtKToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGBgcHl0ZXN0X3J1bnRlc3RfY2FsbGBgLgot
Ci0gICAgOmFyZyBuZXh0aXRlbTogdGhlIHNjaGVkdWxlZC10by1iZS1uZXh0IHRlc3QgaXRlbSAo
Tm9uZSBpZiBubyBmdXJ0aGVyCi0gICAgICAgICAgICAgICAgICAgdGVzdCBpdGVtIGlzIHNjaGVk
dWxlZCkuICBUaGlzIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvCi0gICAgICAgICAgICAgICAgICAg
cGVyZm9ybSBleGFjdCB0ZWFyZG93bnMsIGkuZS4gY2FsbGluZyBqdXN0IGVub3VnaCBmaW5hbGl6
ZXJzCi0gICAgICAgICAgICAgICAgICAgc28gdGhhdCBuZXh0aXRlbSBvbmx5IG5lZWRzIHRvIGNh
bGwgc2V0dXAtZnVuY3Rpb25zLgotICAgICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1U
cnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6Ci0gICAgIiIi
IHJldHVybiBhIDpweTpjbGFzczpgX3B5dGVzdC5ydW5uZXIuVGVzdFJlcG9ydGAgb2JqZWN0Ci0g
ICAgZm9yIHRoZSBnaXZlbiA6cHk6Y2xhc3M6YHB5dGVzdC5JdGVtIDxfcHl0ZXN0Lm1haW4uSXRl
bT5gIGFuZAotICAgIDpweTpjbGFzczpgX3B5dGVzdC5ydW5uZXIuQ2FsbEluZm9gLgotCi0gICAg
U3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIi
IgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQocmVwb3J0KToKLSAgICAiIiIgcHJv
Y2VzcyBhIHRlc3Qgc2V0dXAvY2FsbC90ZWFyZG93biByZXBvcnQgcmVsYXRpbmcgdG8KLSAgICB0
aGUgcmVzcGVjdGl2ZSBwaGFzZSBvZiBleGVjdXRpbmcgYSB0ZXN0LiAiIiIKLQotIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0jIEZpeHR1cmUgcmVsYXRlZCBob29rcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAo
Zml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgIiIiIHBlcmZvcm1zIGZpeHR1cmUgc2V0dXAgZXhl
Y3V0aW9uLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpg
Zmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihm
aXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGZpeHR1cmUgdGVhcmRv
d24sIGJ1dCBiZWZvcmUgdGhlIGNhY2hlIGlzIGNsZWFyZWQgc28KLSAgICB0aGUgZml4dHVyZSBy
ZXN1bHQgY2FjaGUgYGBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHRgYCBjYW4KLSAgICBzdGlsbCBi
ZSBhY2Nlc3NlZC4iIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHRlc3Qgc2Vzc2lvbiByZWxh
dGVkIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1kZWYgcHl0ZXN0X3Nlc3Npb25zdGFy
dChzZXNzaW9uKToKLSAgICAiIiIgYmVmb3JlIHNlc3Npb24ubWFpbigpIGlzIGNhbGxlZC4gIiIi
Ci0KLQotZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb24sIGV4aXRzdGF0dXMpOgotICAg
ICIiIiB3aG9sZSB0ZXN0IHJ1biBmaW5pc2hlcy4gIiIiCi0KLQotZGVmIHB5dGVzdF91bmNvbmZp
Z3VyZShjb25maWcpOgotICAgICIiIiBjYWxsZWQgYmVmb3JlIHRlc3QgcHJvY2VzcyBpcyBleGl0
ZWQuICAiIiIKLQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgaG9va3MgZm9yIGN1c3RvbWl6aW5n
IHRoZSBhc3NlcnQgbWV0aG9kcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWRlZiBweXRlc3RfYXNz
ZXJ0cmVwcl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJpZ2h0KToKLSAgICAiIiJyZXR1cm4g
ZXhwbGFuYXRpb24gZm9yIGNvbXBhcmlzb25zIGluIGZhaWxpbmcgYXNzZXJ0IGV4cHJlc3Npb25z
LgotCi0gICAgUmV0dXJuIE5vbmUgZm9yIG5vIGN1c3RvbSBleHBsYW5hdGlvbiwgb3RoZXJ3aXNl
IHJldHVybiBhIGxpc3QKLSAgICBvZiBzdHJpbmdzLiAgVGhlIHN0cmluZ3Mgd2lsbCBiZSBqb2lu
ZWQgYnkgbmV3bGluZXMgYnV0IGFueSBuZXdsaW5lcwotICAgICppbiogYSBzdHJpbmcgd2lsbCBi
ZSBlc2NhcGVkLiAgTm90ZSB0aGF0IGFsbCBidXQgdGhlIGZpcnN0IGxpbmUgd2lsbAotICAgIGJl
IGluZGVudGVkIHNsaWdodGx5LCB0aGUgaW50ZW50aW9uIGlzIGZvciB0aGUgZmlyc3QgbGluZSB0
byBiZSBhIHN1bW1hcnkuCi0gICAgIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBob29rcyBm
b3IgaW5mbHVlbmNpbmcgcmVwb3J0aW5nIChpbnZva2VkIGZyb20gX3B5dGVzdF90ZXJtaW5hbCkK
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihjb25maWcs
IHN0YXJ0ZGlyKToKLSAgICAiIiIgcmV0dXJuIGEgc3RyaW5nIG9yIGxpc3Qgb2Ygc3RyaW5ncyB0
byBiZSBkaXNwbGF5ZWQgYXMgaGVhZGVyIGluZm8gZm9yIHRlcm1pbmFsIHJlcG9ydGluZy4KLQot
ICAgIDpwYXJhbSBjb25maWc6IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdC4KLSAgICA6cGFyYW0g
c3RhcnRkaXI6IHB5LnBhdGggb2JqZWN0IHdpdGggdGhlIHN0YXJ0aW5nIGRpcgotCi0gICAgLi4g
bm90ZTo6Ci0KLSAgICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb25s
eSBpbiBwbHVnaW5zIG9yIGBgY29uZnRlc3QucHlgYAotICAgICAgICBmaWxlcyBzaXR1YXRlZCBh
dCB0aGUgdGVzdHMgcm9vdCBkaXJlY3RvcnkgZHVlIHRvIGhvdyBweXRlc3QKLSAgICAgICAgOnJl
ZjpgZGlzY292ZXJzIHBsdWdpbnMgZHVyaW5nIHN0YXJ0dXAgPHBsdWdpbm9yZGVyPmAuCi0gICAg
IiIiCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaChjb25maWcsIHN0YXJ0
ZGlyLCBpdGVtcyk6Ci0gICAgIiIiCi0gICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCi0KLSAgICBy
ZXR1cm4gYSBzdHJpbmcgb3IgbGlzdCBvZiBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBhZnRlciBj
b2xsZWN0aW9uIGhhcyBmaW5pc2hlZCBzdWNjZXNzZnVsbHkuCi0KLSAgICBUaGlzIHN0cmluZ3Mg
d2lsbCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHN0YW5kYXJkICJjb2xsZWN0ZWQgWCBpdGVtcyIg
bWVzc2FnZS4KLQotICAgIDpwYXJhbSBjb25maWc6IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdC4K
LSAgICA6cGFyYW0gc3RhcnRkaXI6IHB5LnBhdGggb2JqZWN0IHdpdGggdGhlIHN0YXJ0aW5nIGRp
cgotICAgIDpwYXJhbSBpdGVtczogbGlzdCBvZiBweXRlc3QgaXRlbXMgdGhhdCBhcmUgZ29pbmcg
dG8gYmUgZXhlY3V0ZWQ7IHRoaXMgbGlzdCBzaG91bGQgbm90IGJlIG1vZGlmaWVkLgotICAgICIi
IgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9yZXBvcnRfdGVz
dHN0YXR1cyhyZXBvcnQpOgotICAgICIiIiByZXR1cm4gcmVzdWx0LWNhdGVnb3J5LCBzaG9ydGxl
dHRlciBhbmQgdmVyYm9zZSB3b3JkIGZvciByZXBvcnRpbmcuCi0KLSAgICBTdG9wcyBhdCBmaXJz
dCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5
dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIsIGV4aXRzdGF0dXMpOgotICAg
ICIiIiBhZGQgYWRkaXRpb25hbCBzZWN0aW9uIGluIHRlcm1pbmFsIHN1bW1hcnkgcmVwb3J0aW5n
LiAgIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYgcHl0ZXN0X2xvZ3dhcm5p
bmcobWVzc2FnZSwgY29kZSwgbm9kZWlkLCBmc2xvY2F0aW9uKToKLSAgICAiIiIgcHJvY2VzcyBh
IHdhcm5pbmcgc3BlY2lmaWVkIGJ5IGEgbWVzc2FnZSwgYSBjb2RlIHN0cmluZywKLSAgICBhIG5v
ZGVpZCBhbmQgZnNsb2NhdGlvbiAoYm90aCBvZiB3aGljaCBtYXkgYmUgTm9uZQotICAgIGlmIHRo
ZSB3YXJuaW5nIGlzIG5vdCB0aWVkIHRvIGEgcGFydGlsYXIgbm9kZS9sb2NhdGlvbikuIiIiCi0K
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotIyBkb2N0ZXN0IGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRlc3RfZG9jdGVzdF9wcmVw
YXJlX2NvbnRlbnQoY29udGVudCk6Ci0gICAgIiIiIHJldHVybiBwcm9jZXNzZWQgY29udGVudCBm
b3IgYSBnaXZlbiBkb2N0ZXN0Ci0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQs
IHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBlcnJv
ciBoYW5kbGluZyBhbmQgaW50ZXJuYWwgZGVidWdnaW5nIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotCi1kZWYgcHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjcmVwciwgZXhjaW5mbyk6Ci0gICAg
IiIiIGNhbGxlZCBmb3IgaW50ZXJuYWwgZXJyb3JzLiAiIiIKLQotCi1kZWYgcHl0ZXN0X2tleWJv
YXJkX2ludGVycnVwdChleGNpbmZvKToKLSAgICAiIiIgY2FsbGVkIGZvciBrZXlib2FyZCBpbnRl
cnJ1cHQuICIiIgotCi0KLWRlZiBweXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGUsIGNhbGws
IHJlcG9ydCk6Ci0gICAgIiIiY2FsbGVkIHdoZW4gYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgd2hp
Y2ggY2FuIHBvdGVudGlhbGx5IGJlCi0gICAgaW50ZXJhY3RpdmVseSBoYW5kbGVkLgotCi0gICAg
VGhpcyBob29rIGlzIG9ubHkgY2FsbGVkIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkCi0gICAg
dGhhdCBpcyBub3QgYW4gaW50ZXJuYWwgZXhjZXB0aW9uIGxpa2UgYGBza2lwLkV4Y2VwdGlvbmBg
LgotICAgICIiIgotCi0KLWRlZiBweXRlc3RfZW50ZXJfcGRiKGNvbmZpZyk6Ci0gICAgIiIiIGNh
bGxlZCB1cG9uIHBkYi5zZXRfdHJhY2UoKSwgY2FuIGJlIHVzZWQgYnkgcGx1Z2lucyB0byB0YWtl
IHNwZWNpYWwKLSAgICBhY3Rpb24ganVzdCBiZWZvcmUgdGhlIHB5dGhvbiBkZWJ1Z2dlciBlbnRl
cnMgaW4gaW50ZXJhY3RpdmUgbW9kZS4KLQotICAgIDphcmcgY29uZmlnOiBweXRlc3QgY29uZmln
IG9iamVjdAotICAgIDp0eXBlIGNvbmZpZzogX3B5dGVzdC5jb25maWcuQ29uZmlnCi0gICAgIiIi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1sLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9qdW5pdHhtbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Zi
NDBkYzM1NDg3NGYwMzY0ZGUwYzgzYWM5ZmY2NjFiY2E3NzlmMC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1s
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUzICswLDAgQEAKLSIiIgotICAgIHJlcG9ydCB0ZXN0
IHJlc3VsdHMgaW4gSlVuaXQtWE1MIGZvcm1hdCwKLSAgICBmb3IgdXNlIHdpdGggSmVua2lucyBh
bmQgYnVpbGQgaW50ZWdyYXRpb24gc2VydmVycy4KLQotCi1CYXNlZCBvbiBpbml0aWFsIGNvZGUg
ZnJvbSBSb3NzIExhd2xleS4KLQotT3V0cHV0IGNvbmZvcm1zIHRvIGh0dHBzOi8vZ2l0aHViLmNv
bS9qZW5raW5zY2kveHVuaXQtcGx1Z2luL2Jsb2IvbWFzdGVyLwotc3JjL21haW4vcmVzb3VyY2Vz
L29yZy9qZW5raW5zY2kvcGx1Z2lucy94dW5pdC90eXBlcy9tb2RlbC94c2QvanVuaXQtMTAueHNk
Ci0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwg
cHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0IHB5Ci1pbXBvcnQgb3MK
LWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLWltcG9ydCBweXRlc3QKLWZyb20g
X3B5dGVzdCBpbXBvcnQgbm9kZXMKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGZpbGVuYW1l
X2FyZwotCi0jIFB5dGhvbiAyLlggYW5kIDMuWCBjb21wYXRpYmlsaXR5Ci1pZiBzeXMudmVyc2lv
bl9pbmZvWzBdIDwgMzoKLSAgICBmcm9tIGNvZGVjcyBpbXBvcnQgb3BlbgotZWxzZToKLSAgICB1
bmljaHIgPSBjaHIKLSAgICB1bmljb2RlID0gc3RyCi0gICAgbG9uZyA9IGludAotCi0KLWNsYXNz
IEp1bml0KHB5LnhtbC5OYW1lc3BhY2UpOgotICAgIHBhc3MKLQotCi0jIFdlIG5lZWQgdG8gZ2V0
IHRoZSBzdWJzZXQgb2YgdGhlIGludmFsaWQgdW5pY29kZSByYW5nZXMgYWNjb3JkaW5nIHRvCi0j
IFhNTCAxLjAgd2hpY2ggYXJlIHZhbGlkIGluIHRoaXMgcHl0aG9uIGJ1aWxkLiAgSGVuY2Ugd2Ug
Y2FsY3VsYXRlCi0jIHRoaXMgZHluYW1pY2FsbHkgaW5zdGVhZCBvZiBoYXJkY29kaW5nIGl0LiAg
VGhlIHNwZWMgcmFuZ2Ugb2YgdmFsaWQKLSMgY2hhcnMgaXM6IENoYXIgOjo9ICN4OSB8ICN4QSB8
ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0KLSMgICAgICAgICAgICAgICAg
ICAgIHwgWyN4MTAwMDAtI3gxMEZGRkZdCi1fbGVnYWxfY2hhcnMgPSAoMHgwOSwgMHgwQSwgMHgw
ZCkKLV9sZWdhbF9yYW5nZXMgPSAoCi0gICAgKDB4MjAsIDB4N0UpLCAoMHg4MCwgMHhEN0ZGKSwg
KDB4RTAwMCwgMHhGRkZEKSwgKDB4MTAwMDAsIDB4MTBGRkZGKSwKLSkKLV9sZWdhbF94bWxfcmUg
PSBbCi0gICAgdW5pY29kZSgiJXMtJXMiKSAlICh1bmljaHIobG93KSwgdW5pY2hyKGhpZ2gpKQot
ICAgIGZvciAobG93LCBoaWdoKSBpbiBfbGVnYWxfcmFuZ2VzIGlmIGxvdyA8IHN5cy5tYXh1bmlj
b2RlCi1dCi1fbGVnYWxfeG1sX3JlID0gW3VuaWNocih4KSBmb3IgeCBpbiBfbGVnYWxfY2hhcnNd
ICsgX2xlZ2FsX3htbF9yZQotaWxsZWdhbF94bWxfcmUgPSByZS5jb21waWxlKHVuaWNvZGUoJ1te
JXNdJykgJSB1bmljb2RlKCcnKS5qb2luKF9sZWdhbF94bWxfcmUpKQotZGVsIF9sZWdhbF9jaGFy
cwotZGVsIF9sZWdhbF9yYW5nZXMKLWRlbCBfbGVnYWxfeG1sX3JlCi0KLV9weV9leHRfcmUgPSBy
ZS5jb21waWxlKHIiXC5weSQiKQotCi0KLWRlZiBiaW5feG1sX2VzY2FwZShhcmcpOgotICAgIGRl
ZiByZXBsKG1hdGNob2JqKToKLSAgICAgICAgaSA9IG9yZChtYXRjaG9iai5ncm91cCgpKQotICAg
ICAgICBpZiBpIDw9IDB4RkY6Ci0gICAgICAgICAgICByZXR1cm4gdW5pY29kZSgnI3glMDJYJykg
JSBpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdW5pY29kZSgnI3glMDRYJykg
JSBpCi0KLSAgICByZXR1cm4gcHkueG1sLnJhdyhpbGxlZ2FsX3htbF9yZS5zdWIocmVwbCwgcHku
eG1sLmVzY2FwZShhcmcpKSkKLQotCi1jbGFzcyBfTm9kZVJlcG9ydGVyKG9iamVjdCk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgeG1sKToKLQotICAgICAgICBzZWxmLmlkID0gbm9k
ZWlkCi0gICAgICAgIHNlbGYueG1sID0geG1sCi0gICAgICAgIHNlbGYuYWRkX3N0YXRzID0gc2Vs
Zi54bWwuYWRkX3N0YXRzCi0gICAgICAgIHNlbGYuZHVyYXRpb24gPSAwCi0gICAgICAgIHNlbGYu
cHJvcGVydGllcyA9IFtdCi0gICAgICAgIHNlbGYubm9kZXMgPSBbXQotICAgICAgICBzZWxmLnRl
c3RjYXNlID0gTm9uZQotICAgICAgICBzZWxmLmF0dHJzID0ge30KLQotICAgIGRlZiBhcHBlbmQo
c2VsZiwgbm9kZSk6Ci0gICAgICAgIHNlbGYueG1sLmFkZF9zdGF0cyh0eXBlKG5vZGUpLl9fbmFt
ZV9fKQotICAgICAgICBzZWxmLm5vZGVzLmFwcGVuZChub2RlKQotCi0gICAgZGVmIGFkZF9wcm9w
ZXJ0eShzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYucHJvcGVydGllcy5hcHBlbmQo
KHN0cihuYW1lKSwgYmluX3htbF9lc2NhcGUodmFsdWUpKSkKLQotICAgIGRlZiBtYWtlX3Byb3Bl
cnRpZXNfbm9kZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGEgSnVuaXQgbm9kZSBjb250YWlu
aW5nIGN1c3RvbSBwcm9wZXJ0aWVzLCBpZiBhbnkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBz
ZWxmLnByb3BlcnRpZXM6Ci0gICAgICAgICAgICByZXR1cm4gSnVuaXQucHJvcGVydGllcyhbCi0g
ICAgICAgICAgICAgICAgSnVuaXQucHJvcGVydHkobmFtZT1uYW1lLCB2YWx1ZT12YWx1ZSkKLSAg
ICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5wcm9wZXJ0aWVzCi0gICAgICAg
ICAgICBdKQotICAgICAgICByZXR1cm4gJycKLQotICAgIGRlZiByZWNvcmRfdGVzdHJlcG9ydChz
ZWxmLCB0ZXN0cmVwb3J0KToKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLnRlc3RjYXNlCi0gICAg
ICAgIG5hbWVzID0gbWFuZ2xlX3Rlc3RfYWRkcmVzcyh0ZXN0cmVwb3J0Lm5vZGVpZCkKLSAgICAg
ICAgY2xhc3NuYW1lcyA9IG5hbWVzWzotMV0KLSAgICAgICAgaWYgc2VsZi54bWwucHJlZml4Ogot
ICAgICAgICAgICAgY2xhc3NuYW1lcy5pbnNlcnQoMCwgc2VsZi54bWwucHJlZml4KQotICAgICAg
ICBhdHRycyA9IHsKLSAgICAgICAgICAgICJjbGFzc25hbWUiOiAiLiIuam9pbihjbGFzc25hbWVz
KSwKLSAgICAgICAgICAgICJuYW1lIjogYmluX3htbF9lc2NhcGUobmFtZXNbLTFdKSwKLSAgICAg
ICAgICAgICJmaWxlIjogdGVzdHJlcG9ydC5sb2NhdGlvblswXSwKLSAgICAgICAgfQotICAgICAg
ICBpZiB0ZXN0cmVwb3J0LmxvY2F0aW9uWzFdIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYXR0
cnNbImxpbmUiXSA9IHRlc3RyZXBvcnQubG9jYXRpb25bMV0KLSAgICAgICAgaWYgaGFzYXR0cih0
ZXN0cmVwb3J0LCAidXJsIik6Ci0gICAgICAgICAgICBhdHRyc1sidXJsIl0gPSB0ZXN0cmVwb3J0
LnVybAotICAgICAgICBzZWxmLmF0dHJzID0gYXR0cnMKLQotICAgIGRlZiB0b194bWwoc2VsZik6
Ci0gICAgICAgIHRlc3RjYXNlID0gSnVuaXQudGVzdGNhc2UodGltZT1zZWxmLmR1cmF0aW9uLCAq
KnNlbGYuYXR0cnMpCi0gICAgICAgIHRlc3RjYXNlLmFwcGVuZChzZWxmLm1ha2VfcHJvcGVydGll
c19ub2RlKCkpCi0gICAgICAgIGZvciBub2RlIGluIHNlbGYubm9kZXM6Ci0gICAgICAgICAgICB0
ZXN0Y2FzZS5hcHBlbmQobm9kZSkKLSAgICAgICAgcmV0dXJuIHRlc3RjYXNlCi0KLSAgICBkZWYg
X2FkZF9zaW1wbGUoc2VsZiwga2luZCwgbWVzc2FnZSwgZGF0YT1Ob25lKToKLSAgICAgICAgZGF0
YSA9IGJpbl94bWxfZXNjYXBlKGRhdGEpCi0gICAgICAgIG5vZGUgPSBraW5kKGRhdGEsIG1lc3Nh
Z2U9bWVzc2FnZSkKLSAgICAgICAgc2VsZi5hcHBlbmQobm9kZSkKLQotICAgIGRlZiB3cml0ZV9j
YXB0dXJlZF9vdXRwdXQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgZm9yIGNhcG5hbWUgaW4gKCdv
dXQnLCAnZXJyJyk6Ci0gICAgICAgICAgICBjb250ZW50ID0gZ2V0YXR0cihyZXBvcnQsICdjYXBz
dGQnICsgY2FwbmFtZSkKLSAgICAgICAgICAgIGlmIGNvbnRlbnQ6Ci0gICAgICAgICAgICAgICAg
dGFnID0gZ2V0YXR0cihKdW5pdCwgJ3N5c3RlbS0nICsgY2FwbmFtZSkKLSAgICAgICAgICAgICAg
ICBzZWxmLmFwcGVuZCh0YWcoYmluX3htbF9lc2NhcGUoY29udGVudCkpKQotCi0gICAgZGVmIGFw
cGVuZF9wYXNzKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHNlbGYuYWRkX3N0YXRzKCdwYXNzZWQn
KQotCi0gICAgZGVmIGFwcGVuZF9mYWlsdXJlKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgICMgbXNn
ID0gc3RyKHJlcG9ydC5sb25ncmVwci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSkKLSAgICAgICAg
aWYgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgotICAgICAgICAgICAgc2VsZi5fYWRkX3Np
bXBsZSgKLSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVkLAotICAgICAgICAgICAgICAgICJ4
ZmFpbC1tYXJrZWQgdGVzdCBwYXNzZXMgdW5leHBlY3RlZGx5IikKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIGhhc2F0dHIocmVwb3J0LmxvbmdyZXByLCAicmVwcmNyYXNoIik6Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZSA9IHJlcG9ydC5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQot
ICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHJlcG9ydC5sb25ncmVwciwgKHVuaWNvZGUsIHN0
cikpOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihyZXBvcnQubG9uZ3JlcHIp
Ci0gICAgICAgICAgICBtZXNzYWdlID0gYmluX3htbF9lc2NhcGUobWVzc2FnZSkKLSAgICAgICAg
ICAgIGZhaWwgPSBKdW5pdC5mYWlsdXJlKG1lc3NhZ2U9bWVzc2FnZSkKLSAgICAgICAgICAgIGZh
aWwuYXBwZW5kKGJpbl94bWxfZXNjYXBlKHJlcG9ydC5sb25ncmVwcikpCi0gICAgICAgICAgICBz
ZWxmLmFwcGVuZChmYWlsKQotCi0gICAgZGVmIGFwcGVuZF9jb2xsZWN0X2Vycm9yKHNlbGYsIHJl
cG9ydCk6Ci0gICAgICAgICMgbXNnID0gc3RyKHJlcG9ydC5sb25ncmVwci5yZXBydHJhY2ViYWNr
LmV4dHJhbGluZSkKLSAgICAgICAgc2VsZi5hcHBlbmQoSnVuaXQuZXJyb3IoYmluX3htbF9lc2Nh
cGUocmVwb3J0LmxvbmdyZXByKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT0iY29sbGVjdGlvbiBmYWlsdXJlIikpCi0KLSAgICBkZWYgYXBwZW5kX2NvbGxlY3Rfc2tp
cHBlZChzZWxmLCByZXBvcnQpOgotICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAotICAgICAgICAg
ICAgSnVuaXQuc2tpcHBlZCwgImNvbGxlY3Rpb24gc2tpcHBlZCIsIHJlcG9ydC5sb25ncmVwcikK
LQotICAgIGRlZiBhcHBlbmRfZXJyb3Ioc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgZ2V0YXR0
cihyZXBvcnQsICd3aGVuJywgTm9uZSkgPT0gJ3RlYXJkb3duJzoKLSAgICAgICAgICAgIG1zZyA9
ICJ0ZXN0IHRlYXJkb3duIGZhaWx1cmUiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtc2cg
PSAidGVzdCBzZXR1cCBmYWlsdXJlIgotICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAotICAgICAg
ICAgICAgSnVuaXQuZXJyb3IsIG1zZywgcmVwb3J0LmxvbmdyZXByKQotCi0gICAgZGVmIGFwcGVu
ZF9za2lwcGVkKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIGhhc2F0dHIocmVwb3J0LCAid2Fz
eGZhaWwiKToKLSAgICAgICAgICAgIHNlbGYuX2FkZF9zaW1wbGUoCi0gICAgICAgICAgICAgICAg
SnVuaXQuc2tpcHBlZCwgImV4cGVjdGVkIHRlc3QgZmFpbHVyZSIsIHJlcG9ydC53YXN4ZmFpbAot
ICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVu
bywgc2tpcHJlYXNvbiA9IHJlcG9ydC5sb25ncmVwcgotICAgICAgICAgICAgaWYgc2tpcHJlYXNv
bi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAgICAgICAgICAgICBza2lwcmVhc29uID0g
YmluX3htbF9lc2NhcGUoc2tpcHJlYXNvbls5Ol0pCi0gICAgICAgICAgICBzZWxmLmFwcGVuZCgK
LSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVkKCIlczolczogJXMiICUgKGZpbGVuYW1lLCBs
aW5lbm8sIHNraXByZWFzb24pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0i
cHl0ZXN0LnNraXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1za2lw
cmVhc29uKSkKLSAgICAgICAgc2VsZi53cml0ZV9jYXB0dXJlZF9vdXRwdXQocmVwb3J0KQotCi0g
ICAgZGVmIGZpbmFsaXplKHNlbGYpOgotICAgICAgICBkYXRhID0gc2VsZi50b194bWwoKS51bmlj
b2RlKGluZGVudD0wKQotICAgICAgICBzZWxmLl9fZGljdF9fLmNsZWFyKCkKLSAgICAgICAgc2Vs
Zi50b194bWwgPSBsYW1iZGE6IHB5LnhtbC5yYXcoZGF0YSkKLQotCi1AcHl0ZXN0LmZpeHR1cmUK
LWRlZiByZWNvcmRfeG1sX3Byb3BlcnR5KHJlcXVlc3QpOgotICAgICIiIkFkZCBleHRyYSB4bWwg
cHJvcGVydGllcyB0byB0aGUgdGFnIGZvciB0aGUgY2FsbGluZyB0ZXN0LgotICAgIFRoZSBmaXh0
dXJlIGlzIGNhbGxhYmxlIHdpdGggYGAobmFtZSwgdmFsdWUpYGAsIHdpdGggdmFsdWUgYmVpbmcg
YXV0b21hdGljYWxseQotICAgIHhtbC1lbmNvZGVkLgotICAgICIiIgotICAgIHJlcXVlc3Qubm9k
ZS53YXJuKAotICAgICAgICBjb2RlPSdDMycsCi0gICAgICAgIG1lc3NhZ2U9J3JlY29yZF94bWxf
cHJvcGVydHkgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUnLAotICAgICkKLSAgICB4bWwgPSBn
ZXRhdHRyKHJlcXVlc3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCi0gICAgaWYgeG1sIGlzIG5vdCBO
b25lOgotICAgICAgICBub2RlX3JlcG9ydGVyID0geG1sLm5vZGVfcmVwb3J0ZXIocmVxdWVzdC5u
b2RlLm5vZGVpZCkKLSAgICAgICAgcmV0dXJuIG5vZGVfcmVwb3J0ZXIuYWRkX3Byb3BlcnR5Ci0g
ICAgZWxzZToKLSAgICAgICAgZGVmIGFkZF9wcm9wZXJ0eV9ub29wKG5hbWUsIHZhbHVlKToKLSAg
ICAgICAgICAgIHBhc3MKLQotICAgICAgICByZXR1cm4gYWRkX3Byb3BlcnR5X25vb3AKLQotCi1k
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJ0ZXJtaW5hbCByZXBvcnRpbmciKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAgJy0t
anVuaXR4bWwnLCAnLS1qdW5pdC14bWwnLAotICAgICAgICBhY3Rpb249InN0b3JlIiwKLSAgICAg
ICAgZGVzdD0ieG1scGF0aCIsCi0gICAgICAgIG1ldGF2YXI9InBhdGgiLAotICAgICAgICB0eXBl
PWZ1bmN0b29scy5wYXJ0aWFsKGZpbGVuYW1lX2FyZywgb3B0bmFtZT0iLS1qdW5pdHhtbCIpLAot
ICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9ImNyZWF0ZSBqdW5pdC14bWwgc3R5
bGUgcmVwb3J0IGZpbGUgYXQgZ2l2ZW4gcGF0aC4iKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAg
ICAgICAgJy0tanVuaXRwcmVmaXgnLCAnLS1qdW5pdC1wcmVmaXgnLAotICAgICAgICBhY3Rpb249
InN0b3JlIiwKLSAgICAgICAgbWV0YXZhcj0ic3RyIiwKLSAgICAgICAgZGVmYXVsdD1Ob25lLAot
ICAgICAgICBoZWxwPSJwcmVwZW5kIHByZWZpeCB0byBjbGFzc25hbWVzIGluIGp1bml0LXhtbCBv
dXRwdXQiKQotICAgIHBhcnNlci5hZGRpbmkoImp1bml0X3N1aXRlX25hbWUiLCAiVGVzdCBzdWl0
ZSBuYW1lIGZvciBKVW5pdCByZXBvcnQiLCBkZWZhdWx0PSJweXRlc3QiKQotCi0KLWRlZiBweXRl
c3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgeG1scGF0aCA9IGNvbmZpZy5vcHRpb24ueG1scGF0
aAotICAgICMgcHJldmVudCBvcGVuaW5nIHhtbGxvZyBvbiBzbGF2ZSBub2RlcyAoeGRpc3QpCi0g
ICAgaWYgeG1scGF0aCBhbmQgbm90IGhhc2F0dHIoY29uZmlnLCAnc2xhdmVpbnB1dCcpOgotICAg
ICAgICBjb25maWcuX3htbCA9IExvZ1hNTCh4bWxwYXRoLCBjb25maWcub3B0aW9uLmp1bml0cHJl
Zml4LCBjb25maWcuZ2V0aW5pKCJqdW5pdF9zdWl0ZV9uYW1lIikpCi0gICAgICAgIGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNvbmZpZy5feG1sKQotCi0KLWRlZiBweXRlc3RfdW5jb25m
aWd1cmUoY29uZmlnKToKLSAgICB4bWwgPSBnZXRhdHRyKGNvbmZpZywgJ194bWwnLCBOb25lKQot
ICAgIGlmIHhtbDoKLSAgICAgICAgZGVsIGNvbmZpZy5feG1sCi0gICAgICAgIGNvbmZpZy5wbHVn
aW5tYW5hZ2VyLnVucmVnaXN0ZXIoeG1sKQotCi0KLWRlZiBtYW5nbGVfdGVzdF9hZGRyZXNzKGFk
ZHJlc3MpOgotICAgIHBhdGgsIHBvc3NpYmxlX29wZW5fYnJhY2tldCwgcGFyYW1zID0gYWRkcmVz
cy5wYXJ0aXRpb24oJ1snKQotICAgIG5hbWVzID0gcGF0aC5zcGxpdCgiOjoiKQotICAgIHRyeToK
LSAgICAgICAgbmFtZXMucmVtb3ZlKCcoKScpCi0gICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAg
ICAgIHBhc3MKLSAgICAjIGNvbnZlcnQgZmlsZSBwYXRoIHRvIGRvdHRlZCBwYXRoCi0gICAgbmFt
ZXNbMF0gPSBuYW1lc1swXS5yZXBsYWNlKG5vZGVzLlNFUCwgJy4nKQotICAgIG5hbWVzWzBdID0g
X3B5X2V4dF9yZS5zdWIoIiIsIG5hbWVzWzBdKQotICAgICMgcHV0IGFueSBwYXJhbXMgYmFjawot
ICAgIG5hbWVzWy0xXSArPSBwb3NzaWJsZV9vcGVuX2JyYWNrZXQgKyBwYXJhbXMKLSAgICByZXR1
cm4gbmFtZXMKLQotCi1jbGFzcyBMb2dYTUwob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZmlsZSwgcHJlZml4LCBzdWl0ZV9uYW1lPSJweXRlc3QiKToKLSAgICAgICAgbG9nZmls
ZSA9IG9zLnBhdGguZXhwYW5kdXNlcihvcy5wYXRoLmV4cGFuZHZhcnMobG9nZmlsZSkpCi0gICAg
ICAgIHNlbGYubG9nZmlsZSA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5hYnNwYXRoKGxvZ2Zp
bGUpKQotICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAotICAgICAgICBzZWxmLnN1aXRlX25h
bWUgPSBzdWl0ZV9uYW1lCi0gICAgICAgIHNlbGYuc3RhdHMgPSBkaWN0LmZyb21rZXlzKFsKLSAg
ICAgICAgICAgICdlcnJvcicsCi0gICAgICAgICAgICAncGFzc2VkJywKLSAgICAgICAgICAgICdm
YWlsdXJlJywKLSAgICAgICAgICAgICdza2lwcGVkJywKLSAgICAgICAgXSwgMCkKLSAgICAgICAg
c2VsZi5ub2RlX3JlcG9ydGVycyA9IHt9ICAjIG5vZGVpZCAtPiBfTm9kZVJlcG9ydGVyCi0gICAg
ICAgIHNlbGYubm9kZV9yZXBvcnRlcnNfb3JkZXJlZCA9IFtdCi0gICAgICAgIHNlbGYuZ2xvYmFs
X3Byb3BlcnRpZXMgPSBbXQotICAgICAgICAjIExpc3Qgb2YgcmVwb3J0cyB0aGF0IGZhaWxlZCBv
biBjYWxsIGJ1dCB0ZWFyZG93biBpcyBwZW5kaW5nLgotICAgICAgICBzZWxmLm9wZW5fcmVwb3J0
cyA9IFtdCi0gICAgICAgIHNlbGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzID0gMAotCi0gICAgZGVm
IGZpbmFsaXplKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIG5vZGVpZCA9IGdldGF0dHIocmVwb3J0
LCAnbm9kZWlkJywgcmVwb3J0KQotICAgICAgICAjIGxvY2FsIGhhY2sgdG8gaGFuZGxlIHhkaXN0
IHJlcG9ydCBvcmRlcgotICAgICAgICBzbGF2ZW5vZGUgPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGUn
LCBOb25lKQotICAgICAgICByZXBvcnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcnMucG9wKChub2Rl
aWQsIHNsYXZlbm9kZSkpCi0gICAgICAgIGlmIHJlcG9ydGVyIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgcmVwb3J0ZXIuZmluYWxpemUoKQotCi0gICAgZGVmIG5vZGVfcmVwb3J0ZXIoc2VsZiwg
cmVwb3J0KToKLSAgICAgICAgbm9kZWlkID0gZ2V0YXR0cihyZXBvcnQsICdub2RlaWQnLCByZXBv
cnQpCi0gICAgICAgICMgbG9jYWwgaGFjayB0byBoYW5kbGUgeGRpc3QgcmVwb3J0IG9yZGVyCi0g
ICAgICAgIHNsYXZlbm9kZSA9IGdldGF0dHIocmVwb3J0LCAnbm9kZScsIE5vbmUpCi0KLSAgICAg
ICAga2V5ID0gbm9kZWlkLCBzbGF2ZW5vZGUKLQotICAgICAgICBpZiBrZXkgaW4gc2VsZi5ub2Rl
X3JlcG9ydGVyczoKLSAgICAgICAgICAgICMgVE9ETzogYnJlYXNrcyBmb3IgLS1kaXN0PWVhY2gK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLm5vZGVfcmVwb3J0ZXJzW2tleV0KLQotICAgICAgICBy
ZXBvcnRlciA9IF9Ob2RlUmVwb3J0ZXIobm9kZWlkLCBzZWxmKQotCi0gICAgICAgIHNlbGYubm9k
ZV9yZXBvcnRlcnNba2V5XSA9IHJlcG9ydGVyCi0gICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnNf
b3JkZXJlZC5hcHBlbmQocmVwb3J0ZXIpCi0KLSAgICAgICAgcmV0dXJuIHJlcG9ydGVyCi0KLSAg
ICBkZWYgYWRkX3N0YXRzKHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGtleSBpbiBzZWxmLnN0YXRz
OgotICAgICAgICAgICAgc2VsZi5zdGF0c1trZXldICs9IDEKLQotICAgIGRlZiBfb3BlbnRlc3Rj
YXNlKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9ydGVy
KHJlcG9ydCkKLSAgICAgICAgcmVwb3J0ZXIucmVjb3JkX3Rlc3RyZXBvcnQocmVwb3J0KQotICAg
ICAgICByZXR1cm4gcmVwb3J0ZXIKLQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQo
c2VsZiwgcmVwb3J0KToKLSAgICAgICAgIiIiaGFuZGxlIGEgc2V0dXAvY2FsbC90ZWFyZG93biBy
ZXBvcnQsIGdlbmVyYXRpbmcgdGhlIGFwcHJvcHJpYXRlCi0gICAgICAgIHhtbCB0YWdzIGFzIG5l
Y2Vzc2FyeS4KLQotICAgICAgICBub3RlOiBkdWUgdG8gcGx1Z2lucyBsaWtlIHhkaXN0LCB0aGlz
IGhvb2sgbWF5IGJlIGNhbGxlZCBpbiBpbnRlcmxhY2VkCi0gICAgICAgIG9yZGVyIHdpdGggcmVw
b3J0cyBmcm9tIG90aGVyIG5vZGVzLiBmb3IgZXhhbXBsZToKLQotICAgICAgICB1c3VhbCBjYWxs
IG9yZGVyOgotICAgICAgICAgICAgLT4gc2V0dXAgbm9kZTEKLSAgICAgICAgICAgIC0+IGNhbGwg
bm9kZTEKLSAgICAgICAgICAgIC0+IHRlYXJkb3duIG5vZGUxCi0gICAgICAgICAgICAtPiBzZXR1
cCBub2RlMgotICAgICAgICAgICAgLT4gY2FsbCBub2RlMgotICAgICAgICAgICAgLT4gdGVhcmRv
d24gbm9kZTIKLQotICAgICAgICBwb3NzaWJsZSBjYWxsIG9yZGVyIGluIHhkaXN0OgotICAgICAg
ICAgICAgLT4gc2V0dXAgbm9kZTEKLSAgICAgICAgICAgIC0+IGNhbGwgbm9kZTEKLSAgICAgICAg
ICAgIC0+IHNldHVwIG5vZGUyCi0gICAgICAgICAgICAtPiBjYWxsIG5vZGUyCi0gICAgICAgICAg
ICAtPiB0ZWFyZG93biBub2RlMgotICAgICAgICAgICAgLT4gdGVhcmRvd24gbm9kZTEKLSAgICAg
ICAgIiIiCi0gICAgICAgIGNsb3NlX3JlcG9ydCA9IE5vbmUKLSAgICAgICAgaWYgcmVwb3J0LnBh
c3NlZDoKLSAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJjYWxsIjogICMgaWdub3JlIHNl
dHVwL3RlYXJkb3duCi0gICAgICAgICAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNh
c2UocmVwb3J0KQotICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9wYXNzKHJlcG9ydCkK
LSAgICAgICAgZWxpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgaWYgcmVwb3J0LndoZW4g
PT0gInRlYXJkb3duIjoKLSAgICAgICAgICAgICAgICAjIFRoZSBmb2xsb3dpbmcgdmFycyBhcmUg
bmVlZGVkIHdoZW4geGRpc3QgcGx1Z2luIGlzIHVzZWQKLSAgICAgICAgICAgICAgICByZXBvcnRf
d2lkID0gZ2V0YXR0cihyZXBvcnQsICJ3b3JrZXJfaWQiLCBOb25lKQotICAgICAgICAgICAgICAg
IHJlcG9ydF9paSA9IGdldGF0dHIocmVwb3J0LCAiaXRlbV9pbmRleCIsIE5vbmUpCi0gICAgICAg
ICAgICAgICAgY2xvc2VfcmVwb3J0ID0gbmV4dCgKLSAgICAgICAgICAgICAgICAgICAgKHJlcCBm
b3IgcmVwIGluIHNlbGYub3Blbl9yZXBvcnRzCi0gICAgICAgICAgICAgICAgICAgICBpZiAocmVw
Lm5vZGVpZCA9PSByZXBvcnQubm9kZWlkIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgIGdl
dGF0dHIocmVwLCAiaXRlbV9pbmRleCIsIE5vbmUpID09IHJlcG9ydF9paSBhbmQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwgIndvcmtlcl9pZCIsIE5vbmUpID09IHJlcG9y
dF93aWQKLSAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgICAp
LCBOb25lKQotICAgICAgICAgICAgICAgIGlmIGNsb3NlX3JlcG9ydDoKLSAgICAgICAgICAgICAg
ICAgICAgIyBXZSBuZWVkIHRvIG9wZW4gbmV3IHRlc3RjYXNlIGluIGNhc2Ugd2UgaGF2ZSBmYWls
dXJlIGluCi0gICAgICAgICAgICAgICAgICAgICMgY2FsbCBhbmQgZXJyb3IgaW4gdGVhcmRvd24g
aW4gb3JkZXIgdG8gZm9sbG93IGp1bml0Ci0gICAgICAgICAgICAgICAgICAgICMgc2NoZW1hCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuZmluYWxpemUoY2xvc2VfcmVwb3J0KQotICAgICAgICAg
ICAgICAgICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cyArPSAxCi0gICAgICAgICAgICBy
ZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAgICAgICAgICBpZiByZXBv
cnQud2hlbiA9PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAgcmVwb3J0ZXIuYXBwZW5kX2ZhaWx1
cmUocmVwb3J0KQotICAgICAgICAgICAgICAgIHNlbGYub3Blbl9yZXBvcnRzLmFwcGVuZChyZXBv
cnQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9l
cnJvcihyZXBvcnQpCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICBy
ZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAgICAgICAgICByZXBvcnRl
ci5hcHBlbmRfc2tpcHBlZChyZXBvcnQpCi0gICAgICAgIHNlbGYudXBkYXRlX3Rlc3RjYXNlX2R1
cmF0aW9uKHJlcG9ydCkKLSAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0gInRlYXJkb3duIjoKLSAg
ICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJlcG9ydCkKLSAgICAgICAg
ICAgIHJlcG9ydGVyLndyaXRlX2NhcHR1cmVkX291dHB1dChyZXBvcnQpCi0gICAgICAgICAgICBz
ZWxmLmZpbmFsaXplKHJlcG9ydCkKLSAgICAgICAgICAgIHJlcG9ydF93aWQgPSBnZXRhdHRyKHJl
cG9ydCwgIndvcmtlcl9pZCIsIE5vbmUpCi0gICAgICAgICAgICByZXBvcnRfaWkgPSBnZXRhdHRy
KHJlcG9ydCwgIml0ZW1faW5kZXgiLCBOb25lKQotICAgICAgICAgICAgY2xvc2VfcmVwb3J0ID0g
bmV4dCgKLSAgICAgICAgICAgICAgICAocmVwIGZvciByZXAgaW4gc2VsZi5vcGVuX3JlcG9ydHMK
LSAgICAgICAgICAgICAgICAgaWYgKHJlcC5ub2RlaWQgPT0gcmVwb3J0Lm5vZGVpZCBhbmQKLSAg
ICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAiaXRlbV9pbmRleCIsIE5vbmUpID09IHJl
cG9ydF9paSBhbmQKLSAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAid29ya2VyX2lk
IiwgTm9uZSkgPT0gcmVwb3J0X3dpZAotICAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAg
ICAgICAgICApLCBOb25lKQotICAgICAgICAgICAgaWYgY2xvc2VfcmVwb3J0OgotICAgICAgICAg
ICAgICAgIHNlbGYub3Blbl9yZXBvcnRzLnJlbW92ZShjbG9zZV9yZXBvcnQpCi0KLSAgICBkZWYg
dXBkYXRlX3Rlc3RjYXNlX2R1cmF0aW9uKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgICIiImFjY3Vt
dWxhdGVzIHRvdGFsIGR1cmF0aW9uIGZvciBub2RlaWQgZnJvbSBnaXZlbiByZXBvcnQgYW5kIHVw
ZGF0ZXMKLSAgICAgICAgdGhlIEp1bml0LnRlc3RjYXNlIHdpdGggdGhlIG5ldyB0b3RhbCBpZiBh
bHJlYWR5IGNyZWF0ZWQuCi0gICAgICAgICIiIgotICAgICAgICByZXBvcnRlciA9IHNlbGYubm9k
ZV9yZXBvcnRlcihyZXBvcnQpCi0gICAgICAgIHJlcG9ydGVyLmR1cmF0aW9uICs9IGdldGF0dHIo
cmVwb3J0LCAnZHVyYXRpb24nLCAwLjApCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQo
c2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgbm90IHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAg
ICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAgICAgICAgICBpZiBy
ZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9jb2xsZWN0X2Vy
cm9yKHJlcG9ydCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVwb3J0ZXIu
YXBwZW5kX2NvbGxlY3Rfc2tpcHBlZChyZXBvcnQpCi0KLSAgICBkZWYgcHl0ZXN0X2ludGVybmFs
ZXJyb3Ioc2VsZiwgZXhjcmVwcik6Ci0gICAgICAgIHJlcG9ydGVyID0gc2VsZi5ub2RlX3JlcG9y
dGVyKCdpbnRlcm5hbCcpCi0gICAgICAgIHJlcG9ydGVyLmF0dHJzLnVwZGF0ZShjbGFzc25hbWU9
InB5dGVzdCIsIG5hbWU9J2ludGVybmFsJykKLSAgICAgICAgcmVwb3J0ZXIuX2FkZF9zaW1wbGUo
SnVuaXQuZXJyb3IsICdpbnRlcm5hbCBlcnJvcicsIGV4Y3JlcHIpCi0KLSAgICBkZWYgcHl0ZXN0
X3Nlc3Npb25zdGFydChzZWxmKToKLSAgICAgICAgc2VsZi5zdWl0ZV9zdGFydF90aW1lID0gdGlt
ZS50aW1lKCkKLQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmKToKLSAgICAgICAg
ZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoc2VsZi5sb2dmaWxlKSkK
LSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoZGlybmFtZSk6Ci0gICAgICAgICAgICBvcy5t
YWtlZGlycyhkaXJuYW1lKQotICAgICAgICBsb2dmaWxlID0gb3BlbihzZWxmLmxvZ2ZpbGUsICd3
JywgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICAgICAgc3VpdGVfc3RvcF90aW1lID0gdGltZS50aW1l
KCkKLSAgICAgICAgc3VpdGVfdGltZV9kZWx0YSA9IHN1aXRlX3N0b3BfdGltZSAtIHNlbGYuc3Vp
dGVfc3RhcnRfdGltZQotCi0gICAgICAgIG51bXRlc3RzID0gKHNlbGYuc3RhdHNbJ3Bhc3NlZCdd
ICsgc2VsZi5zdGF0c1snZmFpbHVyZSddICsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0
c1snc2tpcHBlZCddICsgc2VsZi5zdGF0c1snZXJyb3InXSAtCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzKQotICAgICAgICBsb2dmaWxlLndyaXRlKCc8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PicpCi0KLSAgICAgICAgbG9nZmlsZS53
cml0ZShKdW5pdC50ZXN0c3VpdGUoCi0gICAgICAgICAgICBzZWxmLl9nZXRfZ2xvYmFsX3Byb3Bl
cnRpZXNfbm9kZSgpLAotICAgICAgICAgICAgW3gudG9feG1sKCkgZm9yIHggaW4gc2VsZi5ub2Rl
X3JlcG9ydGVyc19vcmRlcmVkXSwKLSAgICAgICAgICAgIG5hbWU9c2VsZi5zdWl0ZV9uYW1lLAot
ICAgICAgICAgICAgZXJyb3JzPXNlbGYuc3RhdHNbJ2Vycm9yJ10sCi0gICAgICAgICAgICBmYWls
dXJlcz1zZWxmLnN0YXRzWydmYWlsdXJlJ10sCi0gICAgICAgICAgICBza2lwcz1zZWxmLnN0YXRz
Wydza2lwcGVkJ10sCi0gICAgICAgICAgICB0ZXN0cz1udW10ZXN0cywKLSAgICAgICAgICAgIHRp
bWU9IiUuM2YiICUgc3VpdGVfdGltZV9kZWx0YSwgKS51bmljb2RlKGluZGVudD0wKSkKLSAgICAg
ICAgbG9nZmlsZS5jbG9zZSgpCi0KLSAgICBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkoc2Vs
ZiwgdGVybWluYWxyZXBvcnRlcik6Ci0gICAgICAgIHRlcm1pbmFscmVwb3J0ZXIud3JpdGVfc2Vw
KCItIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdlbmVyYXRlZCB4bWwg
ZmlsZTogJXMiICUgKHNlbGYubG9nZmlsZSkpCi0KLSAgICBkZWYgYWRkX2dsb2JhbF9wcm9wZXJ0
eShzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXMuYXBw
ZW5kKChzdHIobmFtZSksIGJpbl94bWxfZXNjYXBlKHZhbHVlKSkpCi0KLSAgICBkZWYgX2dldF9n
bG9iYWxfcHJvcGVydGllc19ub2RlKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gYSBKdW5pdCBu
b2RlIGNvbnRhaW5pbmcgY3VzdG9tIHByb3BlcnRpZXMsIGlmIGFueS4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGlmIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXM6Ci0gICAgICAgICAgICByZXR1cm4gSnVu
aXQucHJvcGVydGllcygKLSAgICAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAgICAgIEp1
bml0LnByb3BlcnR5KG5hbWU9bmFtZSwgdmFsdWU9dmFsdWUpCi0gICAgICAgICAgICAgICAgICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVzCi0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgKQotICAgICAgICByZXR1cm4gJycKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9nZ2luZy5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ0ZGIyNWFkNDQzMWVmYjE3NGZjYTVm
OGFkNDgxYmQzOTllNGNjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwzMzcgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgbG9nZ2luZwotZnJvbSBjb250ZXh0bGli
IGltcG9ydCBjbG9zaW5nLCBjb250ZXh0bWFuYWdlcgotaW1wb3J0IHN5cwotaW1wb3J0IHNpeAot
Ci1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgcHkKLQotCi1ERUZBVUxUX0xPR19GT1JNQVQgPSAnJShm
aWxlbmFtZSktMjVzICUobGluZW5vKTRkICUobGV2ZWxuYW1lKS04cyAlKG1lc3NhZ2UpcycKLURF
RkFVTFRfTE9HX0RBVEVfRk9STUFUID0gJyVIOiVNOiVTJwotCi0KLWRlZiBnZXRfb3B0aW9uX2lu
aShjb25maWcsICpuYW1lcyk6Ci0gICAgZm9yIG5hbWUgaW4gbmFtZXM6Ci0gICAgICAgIHJldCA9
IGNvbmZpZy5nZXRvcHRpb24obmFtZSkgICMgJ2RlZmF1bHQnIGFyZyB3b24ndCB3b3JrIGFzIGV4
cGVjdGVkCi0gICAgICAgIGlmIHJldCBpcyBOb25lOgotICAgICAgICAgICAgcmV0ID0gY29uZmln
LmdldGluaShuYW1lKQotICAgICAgICBpZiByZXQ6Ci0gICAgICAgICAgICByZXR1cm4gcmV0Ci0K
LQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAiIiJBZGQgb3B0aW9ucyB0byBj
b250cm9sIGxvZyBjYXB0dXJpbmcuIiIiCi0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoJ2xv
Z2dpbmcnKQotCi0gICAgZGVmIGFkZF9vcHRpb25faW5pKG9wdGlvbiwgZGVzdCwgZGVmYXVsdD1O
b25lLCB0eXBlPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgcGFyc2VyLmFkZGluaShkZXN0LCBk
ZWZhdWx0PWRlZmF1bHQsIHR5cGU9dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdk
ZWZhdWx0IHZhbHVlIGZvciAnICsgb3B0aW9uKQotICAgICAgICBncm91cC5hZGRvcHRpb24ob3B0
aW9uLCBkZXN0PWRlc3QsICoqa3dhcmdzKQotCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAg
ICctLW5vLXByaW50LWxvZ3MnLAotICAgICAgICBkZXN0PSdsb2dfcHJpbnQnLCBhY3Rpb249J3N0
b3JlX2NvbnN0JywgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwKLSAgICAgICAgdHlwZT0nYm9v
bCcsCi0gICAgICAgIGhlbHA9J2Rpc2FibGUgcHJpbnRpbmcgY2F1Z2h0IGxvZ3Mgb24gZmFpbGVk
IHRlc3RzLicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1sZXZlbCcsCi0g
ICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0nbG9n
Z2luZyBsZXZlbCB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZScpCi0gICAgYWRkX29wdGlvbl9p
bmkoCi0gICAgICAgICctLWxvZy1mb3JtYXQnLAotICAgICAgICBkZXN0PSdsb2dfZm9ybWF0Jywg
ZGVmYXVsdD1ERUZBVUxUX0xPR19GT1JNQVQsCi0gICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMg
dXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0aW9uX2luaSgKLSAgICAg
ICAgJy0tbG9nLWRhdGUtZm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9nX2RhdGVfZm9ybWF0Jywg
ZGVmYXVsdD1ERUZBVUxUX0xPR19EQVRFX0ZPUk1BVCwKLSAgICAgICAgaGVscD0nbG9nIGRhdGUg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0gICAgYWRkX29wdGlvbl9p
bmkoCi0gICAgICAgICctLWxvZy1jbGktbGV2ZWwnLAotICAgICAgICBkZXN0PSdsb2dfY2xpX2xl
dmVsJywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdjbGkgbG9nZ2luZyBsZXZlbC4nKQot
ICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctY2xpLWZvcm1hdCcsCi0gICAgICAg
IGRlc3Q9J2xvZ19jbGlfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdsb2cg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0gICAgYWRkX29wdGlvbl9p
bmkoCi0gICAgICAgICctLWxvZy1jbGktZGF0ZS1mb3JtYXQnLAotICAgICAgICBkZXN0PSdsb2df
Y2xpX2RhdGVfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdsb2cgZGF0ZSBm
b3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0aW9uX2lu
aSgKLSAgICAgICAgJy0tbG9nLWZpbGUnLAotICAgICAgICBkZXN0PSdsb2dfZmlsZScsIGRlZmF1
bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0ncGF0aCB0byBhIGZpbGUgd2hlbiBsb2dnaW5nIHdpbGwg
YmUgd3JpdHRlbiB0by4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctZmls
ZS1sZXZlbCcsCi0gICAgICAgIGRlc3Q9J2xvZ19maWxlX2xldmVsJywgZGVmYXVsdD1Ob25lLAot
ICAgICAgICBoZWxwPSdsb2cgZmlsZSBsb2dnaW5nIGxldmVsLicpCi0gICAgYWRkX29wdGlvbl9p
bmkoCi0gICAgICAgICctLWxvZy1maWxlLWZvcm1hdCcsCi0gICAgICAgIGRlc3Q9J2xvZ19maWxl
X2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfRk9STUFULAotICAgICAgICBoZWxwPSdsb2cg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0gICAgYWRkX29wdGlvbl9p
bmkoCi0gICAgICAgICctLWxvZy1maWxlLWRhdGUtZm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9n
X2ZpbGVfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0RBVEVfRk9STUFULAotICAg
ICAgICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUu
JykKLQotCi1AY29udGV4dG1hbmFnZXIKLWRlZiBsb2dnaW5nX3VzaW5nX2hhbmRsZXIoaGFuZGxl
ciwgbG9nZ2VyPU5vbmUpOgotICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IHNhZmVseSByZWdp
c3RlcnMgYSBnaXZlbiBoYW5kbGVyLiIiIgotICAgIGxvZ2dlciA9IGxvZ2dlciBvciBsb2dnaW5n
LmdldExvZ2dlcihsb2dnZXIpCi0KLSAgICBpZiBoYW5kbGVyIGluIGxvZ2dlci5oYW5kbGVyczog
ICMgcmVlbnRyYW5jeQotICAgICAgICAjIEFkZGluZyB0aGUgc2FtZSBoYW5kbGVyIHR3aWNlIHdv
dWxkIGNvbmZ1c2UgbG9nZ2luZyBzeXN0ZW0uCi0gICAgICAgICMgSnVzdCBkb24ndCBkbyB0aGF0
LgotICAgICAgICB5aWVsZAotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhh
bmRsZXIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHlpZWxkCi0gICAgICAgIGZpbmFsbHk6
Ci0gICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKQotCi0KLUBjb250ZXh0
bWFuYWdlcgotZGVmIGNhdGNoaW5nX2xvZ3MoaGFuZGxlciwgZm9ybWF0dGVyPU5vbmUsCi0gICAg
ICAgICAgICAgICAgICBsZXZlbD1sb2dnaW5nLk5PVFNFVCwgbG9nZ2VyPU5vbmUpOgotICAgICIi
IkNvbnRleHQgbWFuYWdlciB0aGF0IHByZXBhcmVzIHRoZSB3aG9sZSBsb2dnaW5nIG1hY2hpbmVy
eSBwcm9wZXJseS4iIiIKLSAgICBsb2dnZXIgPSBsb2dnZXIgb3IgbG9nZ2luZy5nZXRMb2dnZXIo
bG9nZ2VyKQotCi0gICAgaWYgZm9ybWF0dGVyIGlzIG5vdCBOb25lOgotICAgICAgICBoYW5kbGVy
LnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCi0gICAgaGFuZGxlci5zZXRMZXZlbChsZXZlbCkKLQot
ICAgIHdpdGggbG9nZ2luZ191c2luZ19oYW5kbGVyKGhhbmRsZXIsIGxvZ2dlcik6Ci0gICAgICAg
IG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKLSAgICAgICAgbG9nZ2VyLnNldExldmVsKG1pbihv
cmlnX2xldmVsLCBsZXZlbCkpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHlpZWxkIGhhbmRs
ZXIKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGxvZ2dlci5zZXRMZXZlbChvcmlnX2xl
dmVsKQotCi0KLWNsYXNzIExvZ0NhcHR1cmVIYW5kbGVyKGxvZ2dpbmcuU3RyZWFtSGFuZGxlcik6
Ci0gICAgIiIiQSBsb2dnaW5nIGhhbmRsZXIgdGhhdCBzdG9yZXMgbG9nIHJlY29yZHMgYW5kIHRo
ZSBsb2cgdGV4dC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIiIiQ3Jl
YXRlcyBhIG5ldyBsb2cgaGFuZGxlci4iIiIKLSAgICAgICAgbG9nZ2luZy5TdHJlYW1IYW5kbGVy
Ll9faW5pdF9fKHNlbGYsIHB5LmlvLlRleHRJTygpKQotICAgICAgICBzZWxmLnJlY29yZHMgPSBb
XQotCi0gICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKLSAgICAgICAgIiIiS2VlcCB0aGUgbG9n
IHJlY29yZHMgaW4gYSBsaXN0IGluIGFkZGl0aW9uIHRvIHRoZSBsb2cgdGV4dC4iIiIKLSAgICAg
ICAgc2VsZi5yZWNvcmRzLmFwcGVuZChyZWNvcmQpCi0gICAgICAgIGxvZ2dpbmcuU3RyZWFtSGFu
ZGxlci5lbWl0KHNlbGYsIHJlY29yZCkKLQotCi1jbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmpl
Y3QpOgotICAgICIiIlByb3ZpZGVzIGFjY2VzcyBhbmQgY29udHJvbCBvZiBsb2cgY2FwdHVyaW5n
LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0pOgotICAgICAgICAiIiJDcmVhdGVz
IGEgbmV3IGZ1bmNhcmcuIiIiCi0gICAgICAgIHNlbGYuX2l0ZW0gPSBpdGVtCi0KLSAgICBAcHJv
cGVydHkKLSAgICBkZWYgaGFuZGxlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2l0ZW0u
Y2F0Y2hfbG9nX2hhbmRsZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiB0ZXh0KHNlbGYpOgot
ICAgICAgICAiIiJSZXR1cm5zIHRoZSBsb2cgdGV4dC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYu
aGFuZGxlci5zdHJlYW0uZ2V0dmFsdWUoKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHJlY29y
ZHMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGxpc3Qgb2YgbG9nIHJlY29yZHMuIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLmhhbmRsZXIucmVjb3JkcwotCi0gICAgQHByb3BlcnR5Ci0g
ICAgZGVmIHJlY29yZF90dXBsZXMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9m
IGEgc3RyaXBlZCBkb3duIHZlcnNpb24gb2YgbG9nIHJlY29yZHMgaW50ZW5kZWQKLSAgICAgICAg
Zm9yIHVzZSBpbiBhc3NlcnRpb24gY29tcGFyaXNvbi4KLQotICAgICAgICBUaGUgZm9ybWF0IG9m
IHRoZSB0dXBsZSBpczoKLQotICAgICAgICAgICAgKGxvZ2dlcl9uYW1lLCBsb2dfbGV2ZWwsIG1l
c3NhZ2UpCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gWyhyLm5hbWUsIHIubGV2ZWxubywg
ci5nZXRNZXNzYWdlKCkpIGZvciByIGluIHNlbGYucmVjb3Jkc10KLQotICAgIGRlZiBjbGVhcihz
ZWxmKToKLSAgICAgICAgIiIiUmVzZXQgdGhlIGxpc3Qgb2YgbG9nIHJlY29yZHMuIiIiCi0gICAg
ICAgIHNlbGYuaGFuZGxlci5yZWNvcmRzID0gW10KLQotICAgIGRlZiBzZXRfbGV2ZWwoc2VsZiwg
bGV2ZWwsIGxvZ2dlcj1Ob25lKToKLSAgICAgICAgIiIiU2V0cyB0aGUgbGV2ZWwgZm9yIGNhcHR1
cmluZyBvZiBsb2dzLgotCi0gICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBsZXZlbCBpcyBzZXQgb24g
dGhlIGhhbmRsZXIgdXNlZCB0byBjYXB0dXJlCi0gICAgICAgIGxvZ3MuIFNwZWNpZnkgYSBsb2dn
ZXIgbmFtZSB0byBpbnN0ZWFkIHNldCB0aGUgbGV2ZWwgb2YgYW55Ci0gICAgICAgIGxvZ2dlci4K
LSAgICAgICAgIiIiCi0gICAgICAgIGlmIGxvZ2dlciBpcyBOb25lOgotICAgICAgICAgICAgbG9n
Z2VyID0gc2VsZi5oYW5kbGVyCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIgPSBs
b2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCi0gICAgICAgIGxvZ2dlci5zZXRMZXZlbChsZXZlbCkK
LQotICAgIEBjb250ZXh0bWFuYWdlcgotICAgIGRlZiBhdF9sZXZlbChzZWxmLCBsZXZlbCwgbG9n
Z2VyPU5vbmUpOgotICAgICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCBzZXRzIHRoZSBsZXZl
bCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3MuCi0KLSAgICAgICAgQnkgZGVmYXVsdCwgdGhlIGxldmVs
IGlzIHNldCBvbiB0aGUgaGFuZGxlciB1c2VkIHRvIGNhcHR1cmUKLSAgICAgICAgbG9ncy4gU3Bl
Y2lmeSBhIGxvZ2dlciBuYW1lIHRvIGluc3RlYWQgc2V0IHRoZSBsZXZlbCBvZiBhbnkKLSAgICAg
ICAgbG9nZ2VyLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBsb2dnZXIgPSBzZWxmLmhhbmRsZXIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKLQotICAgICAgICBvcmlnX2xldmVs
ID0gbG9nZ2VyLmxldmVsCi0gICAgICAgIGxvZ2dlci5zZXRMZXZlbChsZXZlbCkKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgeWllbGQKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGxv
Z2dlci5zZXRMZXZlbChvcmlnX2xldmVsKQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIGNhcGxv
ZyhyZXF1ZXN0KToKLSAgICAiIiJBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4KLQot
ICAgIENhcHR1cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgbWV0
aG9kczo6Ci0KLSAgICAqIGNhcGxvZy50ZXh0KCkgICAgICAgICAgLT4gc3RyaW5nIGNvbnRhaW5p
bmcgZm9ybWF0dGVkIGxvZyBvdXRwdXQKLSAgICAqIGNhcGxvZy5yZWNvcmRzKCkgICAgICAgLT4g
bGlzdCBvZiBsb2dnaW5nLkxvZ1JlY29yZCBpbnN0YW5jZXMKLSAgICAqIGNhcGxvZy5yZWNvcmRf
dHVwbGVzKCkgLT4gbGlzdCBvZiAobG9nZ2VyX25hbWUsIGxldmVsLCBtZXNzYWdlKSB0dXBsZXMK
LSAgICAiIiIKLSAgICByZXR1cm4gTG9nQ2FwdHVyZUZpeHR1cmUocmVxdWVzdC5ub2RlKQotCi0K
LWRlZiBnZXRfYWN0dWFsX2xvZ19sZXZlbChjb25maWcsICpzZXR0aW5nX25hbWVzKToKLSAgICAi
IiJSZXR1cm4gdGhlIGFjdHVhbCBsb2dnaW5nIGxldmVsLiIiIgotCi0gICAgZm9yIHNldHRpbmdf
bmFtZSBpbiBzZXR0aW5nX25hbWVzOgotICAgICAgICBsb2dfbGV2ZWwgPSBjb25maWcuZ2V0b3B0
aW9uKHNldHRpbmdfbmFtZSkKLSAgICAgICAgaWYgbG9nX2xldmVsIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBsb2dfbGV2ZWwgPSBjb25maWcuZ2V0aW5pKHNldHRpbmdfbmFtZSkKLSAgICAgICAgaWYg
bG9nX2xldmVsOgotICAgICAgICAgICAgYnJlYWsKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4K
LQotICAgIGlmIGlzaW5zdGFuY2UobG9nX2xldmVsLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAg
ICAgbG9nX2xldmVsID0gbG9nX2xldmVsLnVwcGVyKCkKLSAgICB0cnk6Ci0gICAgICAgIHJldHVy
biBpbnQoZ2V0YXR0cihsb2dnaW5nLCBsb2dfbGV2ZWwsIGxvZ19sZXZlbCkpCi0gICAgZXhjZXB0
IFZhbHVlRXJyb3I6Ci0gICAgICAgICMgUHl0aG9uIGxvZ2dpbmcgZG9lcyBub3QgcmVjb2duaXNl
IHRoaXMgYXMgYSBsb2dnaW5nIGxldmVsCi0gICAgICAgIHJhaXNlIHB5dGVzdC5Vc2FnZUVycm9y
KAotICAgICAgICAgICAgIid7MH0nIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgbG9nZ2luZyBsZXZl
bCBuYW1lIGZvciAiCi0gICAgICAgICAgICAiJ3sxfScuIFBsZWFzZSBjb25zaWRlciBwYXNzaW5n
IHRoZSAiCi0gICAgICAgICAgICAibG9nZ2luZyBsZXZlbCBudW0gaW5zdGVhZC4iLmZvcm1hdCgK
LSAgICAgICAgICAgICAgICBsb2dfbGV2ZWwsCi0gICAgICAgICAgICAgICAgc2V0dGluZ19uYW1l
KSkKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKExvZ2dpbmdQbHVnaW4oY29uZmlnKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbG9nZ2luZy1wbHVnaW4nKQotCi0KLWNsYXNzIExvZ2dpbmdQbHVn
aW4ob2JqZWN0KToKLSAgICAiIiJBdHRhY2hlcyB0byB0aGUgbG9nZ2luZyBtb2R1bGUgYW5kIGNh
cHR1cmVzIGxvZyBtZXNzYWdlcyBmb3IgZWFjaCB0ZXN0LgotICAgICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcGx1Z2luIHRv
IGNhcHR1cmUgbG9nIG1lc3NhZ2VzLgotCi0gICAgICAgIFRoZSBmb3JtYXR0ZXIgY2FuIGJlIHNh
ZmVseSBzaGFyZWQgYWNyb3NzIGFsbCBoYW5kbGVycyBzbwotICAgICAgICBjcmVhdGUgYSBzaW5n
bGUgb25lIGZvciB0aGUgZW50aXJlIHRlc3Qgc2Vzc2lvbiBoZXJlLgotICAgICAgICAiIiIKLSAg
ICAgICAgc2VsZi5sb2dfY2xpX2xldmVsID0gZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoCi0gICAgICAg
ICAgICBjb25maWcsICdsb2dfY2xpX2xldmVsJywgJ2xvZ19sZXZlbCcpIG9yIGxvZ2dpbmcuV0FS
TklORwotCi0gICAgICAgIHNlbGYucHJpbnRfbG9ncyA9IGdldF9vcHRpb25faW5pKGNvbmZpZywg
J2xvZ19wcmludCcpCi0gICAgICAgIHNlbGYuZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
Ci0gICAgICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZm9ybWF0JyksCi0gICAg
ICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZGF0ZV9mb3JtYXQnKSkKLQotICAg
ICAgICBsb2dfY2xpX2hhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZGVycikK
LSAgICAgICAgbG9nX2NsaV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKLSAgICAgICAgICAgIGNv
bmZpZywgJ2xvZ19jbGlfZm9ybWF0JywgJ2xvZ19mb3JtYXQnKQotICAgICAgICBsb2dfY2xpX2Rh
dGVfZm9ybWF0ID0gZ2V0X29wdGlvbl9pbmkoCi0gICAgICAgICAgICBjb25maWcsICdsb2dfY2xp
X2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRlX2Zvcm1hdCcpCi0gICAgICAgIGxvZ19jbGlfZm9ybWF0
dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICBsb2dfY2xpX2Zvcm1hdCwKLSAg
ICAgICAgICAgIGRhdGVmbXQ9bG9nX2NsaV9kYXRlX2Zvcm1hdCkKLSAgICAgICAgc2VsZi5sb2df
Y2xpX2hhbmRsZXIgPSBsb2dfY2xpX2hhbmRsZXIgICMgbmVlZGVkIGZvciBhIHNpbmdsZSB1bml0
dGVzdAotICAgICAgICBzZWxmLmxpdmVfbG9ncyA9IGNhdGNoaW5nX2xvZ3MobG9nX2NsaV9oYW5k
bGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyPWxv
Z19jbGlfZm9ybWF0dGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV2ZWw9c2VsZi5sb2dfY2xpX2xldmVsKQotCi0gICAgICAgIGxvZ19maWxlID0gZ2V0X29wdGlv
bl9pbmkoY29uZmlnLCAnbG9nX2ZpbGUnKQotICAgICAgICBpZiBsb2dfZmlsZToKLSAgICAgICAg
ICAgIHNlbGYubG9nX2ZpbGVfbGV2ZWwgPSBnZXRfYWN0dWFsX2xvZ19sZXZlbCgKLSAgICAgICAg
ICAgICAgICBjb25maWcsICdsb2dfZmlsZV9sZXZlbCcpIG9yIGxvZ2dpbmcuV0FSTklORwotCi0g
ICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKLSAgICAgICAgICAg
ICAgICBjb25maWcsICdsb2dfZmlsZV9mb3JtYXQnLCAnbG9nX2Zvcm1hdCcpCi0gICAgICAgICAg
ICBsb2dfZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAotICAgICAgICAgICAgICAg
IGNvbmZpZywgJ2xvZ19maWxlX2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRlX2Zvcm1hdCcpCi0gICAg
ICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIgPSBsb2dnaW5nLkZpbGVIYW5kbGVyKAotICAg
ICAgICAgICAgICAgIGxvZ19maWxlLAotICAgICAgICAgICAgICAgICMgRWFjaCBweXRlc3QgcnVu
dGVzdHMgc2Vzc2lvbiB3aWxsIHdyaXRlIHRvIGEgY2xlYW4gbG9nZmlsZQotICAgICAgICAgICAg
ICAgIG1vZGU9J3cnKQotICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0dGVyID0gbG9nZ2luZy5G
b3JtYXR0ZXIoCi0gICAgICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0LAotICAgICAgICAgICAg
ICAgIGRhdGVmbXQ9bG9nX2ZpbGVfZGF0ZV9mb3JtYXQpCi0gICAgICAgICAgICBzZWxmLmxvZ19m
aWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKGxvZ19maWxlX2Zvcm1hdHRlcikKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IE5vbmUKLQotICAgIEBjb250
ZXh0bWFuYWdlcgotICAgIGRlZiBfcnVudGVzdF9mb3Ioc2VsZiwgaXRlbSwgd2hlbik6Ci0gICAg
ICAgICIiIkltcGxlbWVudHMgdGhlIGludGVybmFscyBvZiBweXRlc3RfcnVudGVzdF94eHgoKSBo
b29rLiIiIgotICAgICAgICB3aXRoIGNhdGNoaW5nX2xvZ3MoTG9nQ2FwdHVyZUhhbmRsZXIoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcj1zZWxmLmZvcm1hdHRlcikgYXMg
bG9nX2hhbmRsZXI6Ci0gICAgICAgICAgICBpdGVtLmNhdGNoX2xvZ19oYW5kbGVyID0gbG9nX2hh
bmRsZXIKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gdGVz
dAotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBkZWwgaXRlbS5jYXRjaF9s
b2dfaGFuZGxlcgotCi0gICAgICAgICAgICBpZiBzZWxmLnByaW50X2xvZ3M6Ci0gICAgICAgICAg
ICAgICAgIyBBZGQgYSBjYXB0dXJlZCBsb2cgc2VjdGlvbiB0byB0aGUgcmVwb3J0LgotICAgICAg
ICAgICAgICAgIGxvZyA9IGxvZ19oYW5kbGVyLnN0cmVhbS5nZXR2YWx1ZSgpLnN0cmlwKCkKLSAg
ICAgICAgICAgICAgICBpdGVtLmFkZF9yZXBvcnRfc2VjdGlvbih3aGVuLCAnbG9nJywgbG9nKQot
Ci0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBweXRlc3Rf
cnVudGVzdF9zZXR1cChzZWxmLCBpdGVtKToKLSAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2Zv
cihpdGVtLCAnc2V0dXAnKToKLSAgICAgICAgICAgIHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tp
bXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoc2VsZiwg
aXRlbSk6Ci0gICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoaXRlbSwgJ2NhbGwnKToKLSAg
ICAgICAgICAgIHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUp
Ci0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKHNlbGYsIGl0ZW0pOgotICAgICAgICB3
aXRoIHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICd0ZWFyZG93bicpOgotICAgICAgICAgICAgeWll
bGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0
ZXN0X3J1bnRlc3Rsb29wKHNlbGYsIHNlc3Npb24pOgotICAgICAgICAiIiJSdW5zIGFsbCBjb2xs
ZWN0ZWQgdGVzdCBpdGVtcy4iIiIKLSAgICAgICAgd2l0aCBzZWxmLmxpdmVfbG9nczoKLSAgICAg
ICAgICAgIGlmIHNlbGYubG9nX2ZpbGVfaGFuZGxlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
ICAgICB3aXRoIGNsb3Npbmcoc2VsZi5sb2dfZmlsZV9oYW5kbGVyKToKLSAgICAgICAgICAgICAg
ICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKHNlbGYubG9nX2ZpbGVfaGFuZGxlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwp
OgotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUgdGVzdHMKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUgdGVz
dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvbWFpbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU1NTQwOThk
YWMyOTlmNmQ5YzcxZDJiZjE5MzlmOGFlYTQzMzExMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21haW4ucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSw4MjEgKzAsMCBAQAotIiIiIGNvcmUgaW1wbGVtZW50YXRpb24gb2YgdGVz
dGluZyBwcm9jZXNzOiBpbml0LCBzZXNzaW9uLCBydW50ZXN0IGxvb3AuICIiIgotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgot
Ci1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgb3MKLWltcG9ydCBzaXgKLWltcG9ydCBzeXMKLQot
aW1wb3J0IF9weXRlc3QKLWZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKLWltcG9ydCBfcHl0ZXN0
Ll9jb2RlCi1pbXBvcnQgcHkKLXRyeToKLSAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRh
YmxlTWFwcGluZyBhcyBNYXBwaW5nTWl4aW4KLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBmcm9t
IFVzZXJEaWN0IGltcG9ydCBEaWN0TWl4aW4gYXMgTWFwcGluZ01peGluCi0KLWZyb20gX3B5dGVz
dC5jb25maWcgaW1wb3J0IGRpcmVjdG9yeV9hcmcsIFVzYWdlRXJyb3IsIGhvb2tpbXBsCi1mcm9t
IF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGV4aXQKLWZyb20gX3B5dGVzdC5ydW5uZXIgaW1wb3J0
IGNvbGxlY3Rfb25lX25vZGUKLQotdHJhY2ViYWNrY3V0ZGlyID0gcHkucGF0aC5sb2NhbChfcHl0
ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLQotIyBleGl0Y29kZXMgZm9yIHRoZSBjb21tYW5kIGxp
bmUKLUVYSVRfT0sgPSAwCi1FWElUX1RFU1RTRkFJTEVEID0gMQotRVhJVF9JTlRFUlJVUFRFRCA9
IDIKLUVYSVRfSU5URVJOQUxFUlJPUiA9IDMKLUVYSVRfVVNBR0VFUlJPUiA9IDQKLUVYSVRfTk9U
RVNUU0NPTExFQ1RFRCA9IDUKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAg
IHBhcnNlci5hZGRpbmkoIm5vcmVjdXJzZWRpcnMiLCAiZGlyZWN0b3J5IHBhdHRlcm5zIHRvIGF2
b2lkIGZvciByZWN1cnNpb24iLAotICAgICAgICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRlZmF1
bHQ9WycuKicsICdidWlsZCcsICdkaXN0JywgJ0NWUycsICdfZGFyY3MnLCAne2FyY2h9JywgJyou
ZWdnJywgJ3ZlbnYnXSkKLSAgICBwYXJzZXIuYWRkaW5pKCJ0ZXN0cGF0aHMiLCAiZGlyZWN0b3Jp
ZXMgdG8gc2VhcmNoIGZvciB0ZXN0cyB3aGVuIG5vIGZpbGVzIG9yIGRpcmVjdG9yaWVzIGFyZSBn
aXZlbiBpbiB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21tYW5kIGxp
bmUuIiwKLSAgICAgICAgICAgICAgICAgIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVtdKQotICAgICMg
cGFyc2VyLmFkZGluaSgiZGlycGF0dGVybnMiLAotICAgICMgICAgInBhdHRlcm5zIHNwZWNpZnlp
bmcgcG9zc2libGUgbG9jYXRpb25zIG9mIHRlc3QgZmlsZXMiLAotICAgICMgICAgdHlwZT0ibGlu
ZWxpc3QiLCBkZWZhdWx0PVsiKiovdGVzdF8qLnR4dCIsCi0gICAgIyAgICAgICAgICAgICIqKi90
ZXN0XyoucHkiLCAiKiovKl90ZXN0LnB5Il0KLSAgICAjICkKLSAgICBncm91cCA9IHBhcnNlci5n
ZXRncm91cCgiZ2VuZXJhbCIsICJydW5uaW5nIGFuZCBzZWxlY3Rpb24gb3B0aW9ucyIpCi0gICAg
Z3JvdXAuX2FkZG9wdGlvbignLXgnLCAnLS1leGl0Zmlyc3QnLCBhY3Rpb249InN0b3JlX2NvbnN0
IiwKLSAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Im1heGZhaWwiLCBjb25zdD0xLAotICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iZXhpdCBpbnN0YW50bHkgb24gZmlyc3QgZXJyb3Igb3IgZmFp
bGVkIHRlc3QuIiksCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1tYXhmYWlsJywgbWV0YXZhcj0i
bnVtIiwKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVz
dD0ibWF4ZmFpbCIsIGRlZmF1bHQ9MCwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImV4aXQg
YWZ0ZXIgZmlyc3QgbnVtIGZhaWx1cmVzIG9yIGVycm9ycy4iKQotICAgIGdyb3VwLl9hZGRvcHRp
b24oJy0tc3RyaWN0JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAg
IGhlbHA9Im1hcmtzIG5vdCByZWdpc3RlcmVkIGluIGNvbmZpZ3VyYXRpb24gZmlsZSByYWlzZSBl
cnJvcnMuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCItYyIsIG1ldGF2YXI9ImZpbGUiLCB0eXBl
PXN0ciwgZGVzdD0iaW5pZmlsZW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0ibG9h
ZCBjb25maWd1cmF0aW9uIGZyb20gYGZpbGVgIGluc3RlYWQgb2YgdHJ5aW5nIHRvIGxvY2F0ZSBv
bmUgb2YgdGhlIGltcGxpY2l0ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3Vy
YXRpb24gZmlsZXMuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCItLWNvbnRpbnVlLW9uLWNvbGxl
Y3Rpb24tZXJyb3JzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9RmFsc2UsIGRlc3Q9ImNvbnRpbnVlX29uX2NvbGxlY3Rpb25fZXJyb3JzIiwKLSAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkZvcmNlIHRlc3QgZXhlY3V0aW9uIGV2ZW4gaWYgY29s
bGVjdGlvbiBlcnJvcnMgb2NjdXIuIikKLQotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJj
b2xsZWN0IiwgImNvbGxlY3Rpb24iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1jb2xsZWN0b25s
eScsICctLWNvbGxlY3Qtb25seScsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAg
ICAgICAgIGhlbHA9Im9ubHkgY29sbGVjdCB0ZXN0cywgZG9uJ3QgZXhlY3V0ZSB0aGVtLiIpLAot
ICAgIGdyb3VwLmFkZG9wdGlvbignLS1weWFyZ3MnLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJ0cnkgdG8gaW50ZXJwcmV0IGFsbCBhcmd1bWVudHMgYXMg
cHl0aG9uIHBhY2thZ2VzLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCItLWlnbm9yZSIsIGFjdGlv
bj0iYXBwZW5kIiwgbWV0YXZhcj0icGF0aCIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9Imln
bm9yZSBwYXRoIGR1cmluZyBjb2xsZWN0aW9uIChtdWx0aS1hbGxvd2VkKS4iKQotICAgICMgd2hl
biBjaGFuZ2luZyB0aGlzIHRvIC0tY29uZi1jdXQtZGlyLCBjb25maWcucHkgQ29uZnRlc3Quc2V0
aW5pdGlhbAotICAgICMgbmVlZHMgdXBncmFkaW5nIGFzIHdlbGwKLSAgICBncm91cC5hZGRvcHRp
b24oJy0tY29uZmN1dGRpcicsIGRlc3Q9ImNvbmZjdXRkaXIiLCBkZWZhdWx0PU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgIG1ldGF2YXI9ImRpciIsIHR5cGU9ZnVuY3Rvb2xzLnBhcnRpYWwoZGly
ZWN0b3J5X2FyZywgb3B0bmFtZT0iLS1jb25mY3V0ZGlyIiksCi0gICAgICAgICAgICAgICAgICAg
IGhlbHA9Im9ubHkgbG9hZCBjb25mdGVzdC5weSdzIHJlbGF0aXZlIHRvIHNwZWNpZmllZCBkaXIu
IikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tbm9jb25mdGVzdCcsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9Im5vY29uZnRlc3QiLCBkZWZhdWx0PUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBsb2FkIGFueSBjb25mdGVzdC5weSBm
aWxlcy4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1rZWVwZHVwbGljYXRlcycsICctLWtlZXAt
ZHVwbGljYXRlcycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGRl
c3Q9ImtlZXBkdXBsaWNhdGVzIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
aGVscD0iS2VlcCBkdXBsaWNhdGUgdGVzdHMuIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tY29s
bGVjdC1pbi12aXJ0dWFsZW52JywgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAg
ICAgICAgZGVzdD0nY29sbGVjdF9pbl92aXJ0dWFsZW52JywgZGVmYXVsdD1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgaWdub3JlIHRlc3RzIGluIGEgbG9jYWwgdmlydHVh
bGVudiBkaXJlY3RvcnkiKQotCi0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29u
ZmlnIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdCBzZXNzaW9uIGRlYnVnZ2lu
ZyBhbmQgY29uZmlndXJhdGlvbiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLWJhc2V0ZW1wJywg
ZGVzdD0iYmFzZXRlbXAiLCBkZWZhdWx0PU5vbmUsIG1ldGF2YXI9ImRpciIsCi0gICAgICAgICAg
ICAgICAgICAgIGhlbHA9ImJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgdGhpcyB0ZXN0IHJ1
bi4iKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgX19pbXBvcnRfXygn
cHl0ZXN0JykuY29uZmlnID0gY29uZmlnICAjIGNvbXBhdGliaWx0aXkKLQotCi1kZWYgd3JhcF9z
ZXNzaW9uKGNvbmZpZywgZG9pdCk6Ci0gICAgIiIiU2tlbGV0b24gY29tbWFuZCBsaW5lIHByb2dy
YW0iIiIKLSAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25maWcpCi0gICAgc2Vzc2lvbi5leGl0c3Rh
dHVzID0gRVhJVF9PSwotICAgIGluaXRzdGF0ZSA9IDAKLSAgICB0cnk6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgICAgIGluaXRzdGF0
ZSA9IDEKLSAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lv
bj1zZXNzaW9uKQotICAgICAgICAgICAgaW5pdHN0YXRlID0gMgotICAgICAgICAgICAgc2Vzc2lv
bi5leGl0c3RhdHVzID0gZG9pdChjb25maWcsIHNlc3Npb24pIG9yIDAKLSAgICAgICAgZXhjZXB0
IFVzYWdlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgRmFpbGVkOgot
ICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9URVNUU0ZBSUxFRAotICAgICAg
ICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBleGNpbmZvID0gX3B5dGVz
dC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGlmIGluaXRzdGF0ZSA8IDIgYW5k
IGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgZXhpdC5FeGNlcHRpb24pOgotICAgICAgICAgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoJ3swfTogezF9XG4nLmZvcm1hdCgKLSAgICAgICAgICAgICAg
ICAgICAgZXhjaW5mby50eXBlbmFtZSwgZXhjaW5mby52YWx1ZS5tc2cpKQotICAgICAgICAgICAg
Y29uZmlnLmhvb2sucHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChleGNpbmZvPWV4Y2luZm8pCi0g
ICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX0lOVEVSUlVQVEVECi0gICAgICAg
IGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mbygpCi0gICAgICAgICAgICBjb25maWcubm90aWZ5X2V4Y2VwdGlvbihleGNpbmZv
LCBjb25maWcub3B0aW9uKQotICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9J
TlRFUk5BTEVSUk9SCi0gICAgICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoU3lzdGVt
RXhpdCk6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgibWFpbmxvb3A6IGNhdWdo
dCBTcHVyaW91cyBTeXN0ZW1FeGl0IVxuIikKLQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGV4Y2lu
Zm8gPSBOb25lICAjIEV4cGxpY2l0bHkgYnJlYWsgcmVmZXJlbmNlIGN5Y2xlLgotICAgICAgICBz
ZXNzaW9uLnN0YXJ0ZGlyLmNoZGlyKCkKLSAgICAgICAgaWYgaW5pdHN0YXRlID49IDI6Ci0gICAg
ICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZpbmlzaCgKLSAgICAgICAgICAgICAg
ICBzZXNzaW9uPXNlc3Npb24sCi0gICAgICAgICAgICAgICAgZXhpdHN0YXR1cz1zZXNzaW9uLmV4
aXRzdGF0dXMpCi0gICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKLSAgICByZXR1
cm4gc2Vzc2lvbi5leGl0c3RhdHVzCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmln
KToKLSAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX21haW4pCi0KLQotZGVmIF9tYWlu
KGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgIiIiIGRlZmF1bHQgY29tbWFuZCBsaW5lIHByb3RvY29s
IGZvciBpbml0aWFsaXphdGlvbiwgc2Vzc2lvbiwKLSAgICBydW5uaW5nIHRlc3RzIGFuZCByZXBv
cnRpbmcuICIiIgotICAgIGNvbmZpZy5ob29rLnB5dGVzdF9jb2xsZWN0aW9uKHNlc3Npb249c2Vz
c2lvbikKLSAgICBjb25maWcuaG9vay5weXRlc3RfcnVudGVzdGxvb3Aoc2Vzc2lvbj1zZXNzaW9u
KQotCi0gICAgaWYgc2Vzc2lvbi50ZXN0c2ZhaWxlZDoKLSAgICAgICAgcmV0dXJuIEVYSVRfVEVT
VFNGQUlMRUQKLSAgICBlbGlmIHNlc3Npb24udGVzdHNjb2xsZWN0ZWQgPT0gMDoKLSAgICAgICAg
cmV0dXJuIEVYSVRfTk9URVNUU0NPTExFQ1RFRAotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbihz
ZXNzaW9uKToKLSAgICByZXR1cm4gc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoKQotCi0KLWRlZiBw
eXRlc3RfcnVudGVzdGxvb3Aoc2Vzc2lvbik6Ci0gICAgaWYgKHNlc3Npb24udGVzdHNmYWlsZWQg
YW5kCi0gICAgICAgICAgICBub3Qgc2Vzc2lvbi5jb25maWcub3B0aW9uLmNvbnRpbnVlX29uX2Nv
bGxlY3Rpb25fZXJyb3JzKToKLSAgICAgICAgcmFpc2Ugc2Vzc2lvbi5JbnRlcnJ1cHRlZCgKLSAg
ICAgICAgICAgICIlZCBlcnJvcnMgZHVyaW5nIGNvbGxlY3Rpb24iICUgc2Vzc2lvbi50ZXN0c2Zh
aWxlZCkKLQotICAgIGlmIHNlc3Npb24uY29uZmlnLm9wdGlvbi5jb2xsZWN0b25seToKLSAgICAg
ICAgcmV0dXJuIFRydWUKLQotICAgIGZvciBpLCBpdGVtIGluIGVudW1lcmF0ZShzZXNzaW9uLml0
ZW1zKToKLSAgICAgICAgbmV4dGl0ZW0gPSBzZXNzaW9uLml0ZW1zW2kgKyAxXSBpZiBpICsgMSA8
IGxlbihzZXNzaW9uLml0ZW1zKSBlbHNlIE5vbmUKLSAgICAgICAgaXRlbS5jb25maWcuaG9vay5w
eXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtPWl0ZW0sIG5leHRpdGVtPW5leHRpdGVtKQotICAg
ICAgICBpZiBzZXNzaW9uLnNob3VsZGZhaWw6Ci0gICAgICAgICAgICByYWlzZSBzZXNzaW9uLkZh
aWxlZChzZXNzaW9uLnNob3VsZGZhaWwpCi0gICAgICAgIGlmIHNlc3Npb24uc2hvdWxkc3RvcDoK
LSAgICAgICAgICAgIHJhaXNlIHNlc3Npb24uSW50ZXJydXB0ZWQoc2Vzc2lvbi5zaG91bGRzdG9w
KQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIF9pbl92ZW52KHBhdGgpOgotICAgICIiIkF0dGVt
cHRzIHRvIGRldGVjdCBpZiBgYHBhdGhgYCBpcyB0aGUgcm9vdCBvZiBhIFZpcnR1YWwgRW52aXJv
bm1lbnQgYnkKLSAgICBjaGVja2luZyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgYXBwcm9wcmlh
dGUgYWN0aXZhdGUgc2NyaXB0IiIiCi0gICAgYmluZGlyID0gcGF0aC5qb2luKCdTY3JpcHRzJyBp
ZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgZWxzZSAnYmluJykKLSAgICBpZiBub3Qg
YmluZGlyLmV4aXN0cygpOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBhY3RpdmF0ZXMgPSAo
J2FjdGl2YXRlJywgJ2FjdGl2YXRlLmNzaCcsICdhY3RpdmF0ZS5maXNoJywKLSAgICAgICAgICAg
ICAgICAgJ0FjdGl2YXRlJywgJ0FjdGl2YXRlLmJhdCcsICdBY3RpdmF0ZS5wczEnKQotICAgIHJl
dHVybiBhbnkoW2ZuYW1lLmJhc2VuYW1lIGluIGFjdGl2YXRlcyBmb3IgZm5hbWUgaW4gYmluZGly
Lmxpc3RkaXIoKV0pCi0KLQotZGVmIHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25maWcp
OgotICAgIGlnbm9yZV9wYXRocyA9IGNvbmZpZy5fZ2V0Y29uZnRlc3RfcGF0aGxpc3QoImNvbGxl
Y3RfaWdub3JlIiwgcGF0aD1wYXRoLmRpcnBhdGgoKSkKLSAgICBpZ25vcmVfcGF0aHMgPSBpZ25v
cmVfcGF0aHMgb3IgW10KLSAgICBleGNsdWRlb3B0ID0gY29uZmlnLmdldG9wdGlvbigiaWdub3Jl
IikKLSAgICBpZiBleGNsdWRlb3B0OgotICAgICAgICBpZ25vcmVfcGF0aHMuZXh0ZW5kKFtweS5w
YXRoLmxvY2FsKHgpIGZvciB4IGluIGV4Y2x1ZGVvcHRdKQotCi0gICAgaWYgcHkucGF0aC5sb2Nh
bChwYXRoKSBpbiBpZ25vcmVfcGF0aHM6Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBhbGxv
d19pbl92ZW52ID0gY29uZmlnLmdldG9wdGlvbigiY29sbGVjdF9pbl92aXJ0dWFsZW52IikKLSAg
ICBpZiBfaW5fdmVudihwYXRoKSBhbmQgbm90IGFsbG93X2luX3ZlbnY6Ci0gICAgICAgIHJldHVy
biBUcnVlCi0KLSAgICAjIFNraXAgZHVwbGljYXRlIHBhdGhzLgotICAgIGtlZXBkdXBsaWNhdGVz
ID0gY29uZmlnLmdldG9wdGlvbigia2VlcGR1cGxpY2F0ZXMiKQotICAgIGR1cGxpY2F0ZV9wYXRo
cyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9kdXBsaWNhdGVwYXRocwotICAgIGlmIG5vdCBrZWVw
ZHVwbGljYXRlczoKLSAgICAgICAgaWYgcGF0aCBpbiBkdXBsaWNhdGVfcGF0aHM6Ci0gICAgICAg
ICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZHVwbGljYXRlX3Bh
dGhzLmFkZChwYXRoKQotCi0gICAgcmV0dXJuIEZhbHNlCi0KLQotY2xhc3MgRlNIb29rUHJveHk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZzcGF0aCwgcG0sIHJlbW92ZV9tb2RzKToKLSAgICAg
ICAgc2VsZi5mc3BhdGggPSBmc3BhdGgKLSAgICAgICAgc2VsZi5wbSA9IHBtCi0gICAgICAgIHNl
bGYucmVtb3ZlX21vZHMgPSByZW1vdmVfbW9kcwotCi0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYs
IG5hbWUpOgotICAgICAgICB4ID0gc2VsZi5wbS5zdWJzZXRfaG9va19jYWxsZXIobmFtZSwgcmVt
b3ZlX3BsdWdpbnM9c2VsZi5yZW1vdmVfbW9kcykKLSAgICAgICAgc2VsZi5fX2RpY3RfX1tuYW1l
XSA9IHgKLSAgICAgICAgcmV0dXJuIHgKLQotCi1jbGFzcyBfQ29tcGF0UHJvcGVydHkob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYubmFtZSA9IG5h
bWUKLQotICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgb3duZXIpOgotICAgICAgICBpZiBvYmog
aXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmCi0KLSAgICAgICAgIyBUT0RPOiByZWVu
YWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICMgd2FybmluZ3Mud2FybigKLSAg
ICAgICAgIyAgICAgInVzYWdlIG9mIHtvd25lciFyfS57bmFtZX0gaXMgZGVwcmVjYXRlZCwgcGxl
YXNlIHVzZSBweXRlc3Que25hbWV9IGluc3RlYWQiLmZvcm1hdCgKLSAgICAgICAgIyAgICAgICAg
IG5hbWU9c2VsZi5uYW1lLCBvd25lcj10eXBlKG93bmVyKS5fX25hbWVfXyksCi0gICAgICAgICMg
ICAgIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgcmV0
dXJuIGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0JyksIHNlbGYubmFtZSkKLQotCi1jbGFzcyBO
b2RlS2V5d29yZHMoTWFwcGluZ01peGluKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6
Ci0gICAgICAgIHNlbGYubm9kZSA9IG5vZGUKLSAgICAgICAgc2VsZi5wYXJlbnQgPSBub2RlLnBh
cmVudAotICAgICAgICBzZWxmLl9tYXJrZXJzID0ge25vZGUubmFtZTogVHJ1ZX0KLQotICAgIGRl
ZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fbWFya2Vyc1trZXldCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAg
ICAgIGlmIHNlbGYucGFyZW50IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5rZXl3b3Jkc1trZXldCi0KLSAgICBkZWYgX19zZXRp
dGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX21hcmtlcnNba2V5XSA9IHZh
bHVlCi0KLSAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKLSAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiY2Fubm90IGRlbGV0ZSBrZXkgaW4ga2V5d29yZHMgZGljdCIpCi0KLSAgICBkZWYg
X19pdGVyX18oc2VsZik6Ci0gICAgICAgIHNlZW4gPSBzZXQoc2VsZi5fbWFya2VycykKLSAgICAg
ICAgaWYgc2VsZi5wYXJlbnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWVuLnVwZGF0ZShz
ZWxmLnBhcmVudC5rZXl3b3JkcykKLSAgICAgICAgcmV0dXJuIGl0ZXIoc2VlbikKLQotICAgIGRl
ZiBfX2xlbl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gbGVuKHNlbGYuX19pdGVyX18oKSkKLQot
ICAgIGRlZiBrZXlzKHNlbGYpOgotICAgICAgICByZXR1cm4gbGlzdChzZWxmKQotCi0gICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxOb2RlS2V5d29yZHMgZm9yIG5vZGUg
JXM+IiAlIChzZWxmLm5vZGUsICkKLQotCi1jbGFzcyBOb2RlKG9iamVjdCk6Ci0gICAgIiIiIGJh
c2UgY2xhc3MgZm9yIENvbGxlY3RvciBhbmQgSXRlbSB0aGUgdGVzdCBjb2xsZWN0aW9uIHRyZWUu
Ci0gICAgQ29sbGVjdG9yIHN1YmNsYXNzZXMgaGF2ZSBjaGlsZHJlbiwgSXRlbXMgYXJlIHRlcm1p
bmFsIG5vZGVzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudD1Ob25l
LCBjb25maWc9Tm9uZSwgc2Vzc2lvbj1Ob25lKToKLSAgICAgICAgIzogYSB1bmlxdWUgbmFtZSB3
aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBwYXJlbnQgbm9kZQotICAgICAgICBzZWxmLm5hbWUgPSBu
YW1lCi0KLSAgICAgICAgIzogdGhlIHBhcmVudCBjb2xsZWN0b3Igbm9kZS4KLSAgICAgICAgc2Vs
Zi5wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAjOiB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QK
LSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgb3IgcGFyZW50LmNvbmZpZwotCi0gICAgICAg
ICM6IHRoZSBzZXNzaW9uIHRoaXMgbm9kZSBpcyBwYXJ0IG9mCi0gICAgICAgIHNlbGYuc2Vzc2lv
biA9IHNlc3Npb24gb3IgcGFyZW50LnNlc3Npb24KLQotICAgICAgICAjOiBmaWxlc3lzdGVtIHBh
dGggd2hlcmUgdGhpcyBub2RlIHdhcyBjb2xsZWN0ZWQgZnJvbSAoY2FuIGJlIE5vbmUpCi0gICAg
ICAgIHNlbGYuZnNwYXRoID0gZ2V0YXR0cihwYXJlbnQsICdmc3BhdGgnLCBOb25lKQotCi0gICAg
ICAgICM6IGtleXdvcmRzL21hcmtlcnMgY29sbGVjdGVkIGZyb20gYWxsIHNjb3BlcwotICAgICAg
ICBzZWxmLmtleXdvcmRzID0gTm9kZUtleXdvcmRzKHNlbGYpCi0KLSAgICAgICAgIzogYWxsb3cg
YWRkaW5nIG9mIGV4dHJhIGtleXdvcmRzIHRvIHVzZSBmb3IgbWF0Y2hpbmcKLSAgICAgICAgc2Vs
Zi5leHRyYV9rZXl3b3JkX21hdGNoZXMgPSBzZXQoKQotCi0gICAgICAgICMgdXNlZCBmb3Igc3Rv
cmluZyBhcnRpZmljaWFsIGZpeHR1cmVkZWZzIGZvciBkaXJlY3QgcGFyYW1ldHJpemF0aW9uCi0g
ICAgICAgIHNlbGYuX25hbWUycHNldWRvZml4dHVyZWRlZiA9IHt9Ci0KLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgaWhvb2soc2VsZik6Ci0gICAgICAgICIiIiBmc3BhdGggc2Vuc2l0aXZlIGhvb2sg
cHJveHkgdXNlZCB0byBjYWxsIHB5dGVzdCBob29rcyIiIgotICAgICAgICByZXR1cm4gc2VsZi5z
ZXNzaW9uLmdldGhvb2twcm94eShzZWxmLmZzcGF0aCkKLQotICAgIE1vZHVsZSA9IF9Db21wYXRQ
cm9wZXJ0eSgiTW9kdWxlIikKLSAgICBDbGFzcyA9IF9Db21wYXRQcm9wZXJ0eSgiQ2xhc3MiKQot
ICAgIEluc3RhbmNlID0gX0NvbXBhdFByb3BlcnR5KCJJbnN0YW5jZSIpCi0gICAgRnVuY3Rpb24g
PSBfQ29tcGF0UHJvcGVydHkoIkZ1bmN0aW9uIikKLSAgICBGaWxlID0gX0NvbXBhdFByb3BlcnR5
KCJGaWxlIikKLSAgICBJdGVtID0gX0NvbXBhdFByb3BlcnR5KCJJdGVtIikKLQotICAgIGRlZiBf
Z2V0Y3VzdG9tY2xhc3Moc2VsZiwgbmFtZSk6Ci0gICAgICAgIG1heWJlX2NvbXBhdHByb3AgPSBn
ZXRhdHRyKHR5cGUoc2VsZiksIG5hbWUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UobWF5YmVfY29t
cGF0cHJvcCwgX0NvbXBhdFByb3BlcnR5KToKLSAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKF9f
aW1wb3J0X18oJ3B5dGVzdCcpLCBuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2xz
ID0gZ2V0YXR0cihzZWxmLCBuYW1lKQotICAgICAgICAgICAgIyBUT0RPOiByZWVuYWJsZSBpbiB0
aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICAgICAjIHdhcm5pbmdzLndhcm4oInVzZSBvZiBu
b2RlLiVzIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICMgICAgInVzZSBweXRlc3RfcHlj
b2xsZWN0X21ha2VpdGVtKC4uLikgdG8gY3JlYXRlIGN1c3RvbSAiCi0gICAgICAgICAgICAjICAg
ICJjb2xsZWN0aW9uIG5vZGVzIiAlIG5hbWUsIGNhdGVnb3J5PURlcHJlY2F0aW9uV2FybmluZykK
LSAgICAgICAgcmV0dXJuIGNscwotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gIjwlcyAlcj4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ25hbWUnLCBOb25lKSkKLQotICAgIGRlZiB3
YXJuKHNlbGYsIGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAiIiIgZ2VuZXJhdGUgYSB3YXJuaW5n
IHdpdGggdGhlIGdpdmVuIGNvZGUgYW5kIG1lc3NhZ2UgZm9yIHRoaXMKLSAgICAgICAgaXRlbS4g
IiIiCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGNvZGUsIHN0cikKLSAgICAgICAgZnNsb2Nh
dGlvbiA9IGdldGF0dHIoc2VsZiwgImxvY2F0aW9uIiwgTm9uZSkKLSAgICAgICAgaWYgZnNsb2Nh
dGlvbiBpcyBOb25lOgotICAgICAgICAgICAgZnNsb2NhdGlvbiA9IGdldGF0dHIoc2VsZiwgImZz
cGF0aCIsIE5vbmUpCi0gICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2xvZ3dhcm5pbmcuY2FsbF9o
aXN0b3JpYyhrd2FyZ3M9ZGljdCgKLSAgICAgICAgICAgIGNvZGU9Y29kZSwgbWVzc2FnZT1tZXNz
YWdlLAotICAgICAgICAgICAgbm9kZWlkPXNlbGYubm9kZWlkLCBmc2xvY2F0aW9uPWZzbG9jYXRp
b24pKQotCi0gICAgIyBtZXRob2RzIGZvciBvcmRlcmluZyBub2RlcwotICAgIEBwcm9wZXJ0eQot
ICAgIGRlZiBub2RlaWQoc2VsZik6Ci0gICAgICAgICIiIiBhIDo6LXNlcGFyYXRlZCBzdHJpbmcg
ZGVub3RpbmcgaXRzIGNvbGxlY3Rpb24gdHJlZSBhZGRyZXNzLiAiIiIKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25vZGVpZAotICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6Ci0gICAgICAgICAgICBzZWxmLl9ub2RlaWQgPSB4ID0gc2VsZi5fbWFrZWlkKCkKLSAg
ICAgICAgICAgIHJldHVybiB4Ci0KLSAgICBkZWYgX21ha2VpZChzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYucGFyZW50Lm5vZGVpZCArICI6OiIgKyBzZWxmLm5hbWUKLQotICAgIGRlZiBfX2hh
c2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5ub2RlaWQpCi0KLSAgICBkZWYg
c2V0dXAoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAg
ICAgICAgcGFzcwotCi0gICAgZGVmIGxpc3RjaGFpbihzZWxmKToKLSAgICAgICAgIiIiIHJldHVy
biBsaXN0IG9mIGFsbCBwYXJlbnQgY29sbGVjdG9ycyB1cCB0byBzZWxmLAotICAgICAgICAgICAg
c3RhcnRpbmcgZnJvbSByb290IG9mIGNvbGxlY3Rpb24gdHJlZS4gIiIiCi0gICAgICAgIGNoYWlu
ID0gW10KLSAgICAgICAgaXRlbSA9IHNlbGYKLSAgICAgICAgd2hpbGUgaXRlbSBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGNoYWluLmFwcGVuZChpdGVtKQotICAgICAgICAgICAgaXRlbSA9IGl0
ZW0ucGFyZW50Ci0gICAgICAgIGNoYWluLnJldmVyc2UoKQotICAgICAgICByZXR1cm4gY2hhaW4K
LQotICAgIGRlZiBhZGRfbWFya2VyKHNlbGYsIG1hcmtlcik6Ci0gICAgICAgICIiIiBkeW5hbWlj
YWxseSBhZGQgYSBtYXJrZXIgb2JqZWN0IHRvIHRoZSBub2RlLgotCi0gICAgICAgIGBgbWFya2Vy
YGAgY2FuIGJlIGEgc3RyaW5nIG9yIHB5dGVzdC5tYXJrLiogaW5zdGFuY2UuCi0gICAgICAgICIi
IgotICAgICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya0RlY29yYXRvciwgTUFSS19H
RU4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShtYXJrZXIsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAg
ICAgICAgICAgbWFya2VyID0gZ2V0YXR0cihNQVJLX0dFTiwgbWFya2VyKQotICAgICAgICBlbGlm
IG5vdCBpc2luc3RhbmNlKG1hcmtlciwgTWFya0RlY29yYXRvcik6Ci0gICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJpcyBub3QgYSBzdHJpbmcgb3IgcHl0ZXN0Lm1hcmsuKiBNYXJrZXIiKQot
ICAgICAgICBzZWxmLmtleXdvcmRzW21hcmtlci5uYW1lXSA9IG1hcmtlcgotCi0gICAgZGVmIGdl
dF9tYXJrZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBnZXQgYSBtYXJrZXIgb2JqZWN0IGZy
b20gdGhpcyBub2RlIG9yIE5vbmUgaWYKLSAgICAgICAgdGhlIG5vZGUgZG9lc24ndCBoYXZlIGEg
bWFya2VyIHdpdGggdGhhdCBuYW1lLiAiIiIKLSAgICAgICAgdmFsID0gc2VsZi5rZXl3b3Jkcy5n
ZXQobmFtZSwgTm9uZSkKLSAgICAgICAgaWYgdmFsIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
ZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yCi0gICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKHZhbCwgKE1hcmtEZWNvcmF0b3IsIE1hcmtJbmZvKSk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVmIGxpc3RleHRyYWtleXdvcmRzKHNlbGYp
OgotICAgICAgICAiIiIgUmV0dXJuIGEgc2V0IG9mIGFsbCBleHRyYSBrZXl3b3JkcyBpbiBzZWxm
IGFuZCBhbnkgcGFyZW50cy4iIiIKLSAgICAgICAgZXh0cmFfa2V5d29yZHMgPSBzZXQoKQotICAg
ICAgICBpdGVtID0gc2VsZgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmxpc3RjaGFpbigpOgot
ICAgICAgICAgICAgZXh0cmFfa2V5d29yZHMudXBkYXRlKGl0ZW0uZXh0cmFfa2V5d29yZF9tYXRj
aGVzKQotICAgICAgICByZXR1cm4gZXh0cmFfa2V5d29yZHMKLQotICAgIGRlZiBsaXN0bmFtZXMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBbeC5uYW1lIGZvciB4IGluIHNlbGYubGlzdGNoYWluKCld
Ci0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbik6Ci0gICAgICAgICIiIiByZWdpc3Rl
ciBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoaXMgbm9kZSBpcyBmaW5hbGl6ZWQuCi0K
LSAgICAgICAgVGhpcyBtZXRob2QgY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhpcyBub2RlIGlz
IGFjdGl2ZQotICAgICAgICBpbiBhIHNldHVwIGNoYWluLCBmb3IgZXhhbXBsZSBkdXJpbmcgc2Vs
Zi5zZXR1cCgpLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5zZXNzaW9uLl9zZXR1cHN0YXRl
LmFkZGZpbmFsaXplcihmaW4sIHNlbGYpCi0KLSAgICBkZWYgZ2V0cGFyZW50KHNlbGYsIGNscyk6
Ci0gICAgICAgICIiIiBnZXQgdGhlIG5leHQgcGFyZW50IG5vZGUgKGluY2x1ZGluZyBvdXJzZWxm
KQotICAgICAgICB3aGljaCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gY2xhc3MiIiIKLSAg
ICAgICAgY3VycmVudCA9IHNlbGYKLSAgICAgICAgd2hpbGUgY3VycmVudCBhbmQgbm90IGlzaW5z
dGFuY2UoY3VycmVudCwgY2xzKToKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVu
dAotICAgICAgICByZXR1cm4gY3VycmVudAotCi0gICAgZGVmIF9wcnVuZXRyYWNlYmFjayhzZWxm
LCBleGNpbmZvKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9yZXByX2ZhaWx1cmVfcHkoc2Vs
ZiwgZXhjaW5mbywgc3R5bGU9Tm9uZSk6Ci0gICAgICAgIGZtID0gc2VsZi5zZXNzaW9uLl9maXh0
dXJlbWFuYWdlcgotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoZm0uRml4dHVyZUxv
b2t1cEVycm9yKToKLSAgICAgICAgICAgIHJldHVybiBleGNpbmZvLnZhbHVlLmZvcm1hdHJlcHIo
KQotICAgICAgICB0YmZpbHRlciA9IFRydWUKLSAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9u
LmZ1bGx0cmFjZToKLSAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICB0YiA9IF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKFtleGNpbmZvLnRyYWNlYmFj
a1stMV1dKQotICAgICAgICAgICAgc2VsZi5fcHJ1bmV0cmFjZWJhY2soZXhjaW5mbykKLSAgICAg
ICAgICAgIGlmIGxlbihleGNpbmZvLnRyYWNlYmFjaykgPT0gMDoKLSAgICAgICAgICAgICAgICBl
eGNpbmZvLnRyYWNlYmFjayA9IHRiCi0gICAgICAgICAgICB0YmZpbHRlciA9IEZhbHNlICAjIHBy
dW5ldHJhY2ViYWNrIGFscmVhZHkgZG9lcyBpdAotICAgICAgICAgICAgaWYgc3R5bGUgPT0gImF1
dG8iOgotICAgICAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0gICAgICAgICMgWFhYIHNob3Vs
ZCBleGNpbmZvLmdldHJlcHIgcmVjb3JkIGFsbCBkYXRhIGFuZCB0b3Rlcm1pbmFsKCkgcHJvY2Vz
cyBpdD8KLSAgICAgICAgaWYgc3R5bGUgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHNlbGYuY29u
ZmlnLm9wdGlvbi50YnN0eWxlID09ICJzaG9ydCI6Ci0gICAgICAgICAgICAgICAgc3R5bGUgPSAi
c2hvcnQiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHN0eWxlID0gImxvbmci
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgIGFi
c3BhdGggPSBGYWxzZQotICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgICAgIGFic3Bh
dGggPSBUcnVlCi0KLSAgICAgICAgcmV0dXJuIGV4Y2luZm8uZ2V0cmVwcihmdW5jYXJncz1UcnVl
LCBhYnNwYXRoPWFic3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xv
Y2Fscz1zZWxmLmNvbmZpZy5vcHRpb24uc2hvd2xvY2FscywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHlsZT1zdHlsZSwgdGJmaWx0ZXI9dGJmaWx0ZXIpCi0KLSAgICByZXByX2Zh
aWx1cmUgPSBfcmVwcl9mYWlsdXJlX3B5Ci0KLQotY2xhc3MgQ29sbGVjdG9yKE5vZGUpOgotICAg
ICIiIiBDb2xsZWN0b3IgaW5zdGFuY2VzIGNyZWF0ZSBjaGlsZHJlbiB0aHJvdWdoIGNvbGxlY3Qo
KQotICAgICAgICBhbmQgdGh1cyBpdGVyYXRpdmVseSBidWlsZCBhIHRyZWUuCi0gICAgIiIiCi0K
LSAgICBjbGFzcyBDb2xsZWN0RXJyb3IoRXhjZXB0aW9uKToKLSAgICAgICAgIiIiIGFuIGVycm9y
IGR1cmluZyBjb2xsZWN0aW9uLCBjb250YWlucyBhIGN1c3RvbSBtZXNzYWdlLiAiIiIKLQotICAg
IGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJucyBhIGxpc3Qgb2YgY2hpbGRy
ZW4gKGl0ZW1zIGFuZCBjb2xsZWN0b3JzKQotICAgICAgICAgICAgZm9yIHRoaXMgY29sbGVjdGlv
biBub2RlLgotICAgICAgICAiIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigi
YWJzdHJhY3QiKQotCi0gICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToKLSAgICAg
ICAgIiIiIHJlcHJlc2VudCBhIGNvbGxlY3Rpb24gZmFpbHVyZS4gIiIiCi0gICAgICAgIGlmIGV4
Y2luZm8uZXJyaXNpbnN0YW5jZShzZWxmLkNvbGxlY3RFcnJvcik6Ci0gICAgICAgICAgICBleGMg
PSBleGNpbmZvLnZhbHVlCi0gICAgICAgICAgICByZXR1cm4gc3RyKGV4Yy5hcmdzWzBdKQotICAg
ICAgICByZXR1cm4gc2VsZi5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sIHN0eWxlPSJzaG9ydCIp
Ci0KLSAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgotICAgICAgICBpZiBo
YXNhdHRyKHNlbGYsICdmc3BhdGgnKToKLSAgICAgICAgICAgIHRyYWNlYmFjayA9IGV4Y2luZm8u
dHJhY2ViYWNrCi0gICAgICAgICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrLmN1dChwYXRoPXNl
bGYuZnNwYXRoKQotICAgICAgICAgICAgaWYgbnRyYWNlYmFjayA9PSB0cmFjZWJhY2s6Ci0gICAg
ICAgICAgICAgICAgbnRyYWNlYmFjayA9IG50cmFjZWJhY2suY3V0KGV4Y2x1ZGVwYXRoPXRyYWNl
YmFja2N1dGRpcikKLSAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gbnRyYWNlYmFjay5m
aWx0ZXIoKQotCi0KLWNsYXNzIEZTQ29sbGVjdG9yKENvbGxlY3Rvcik6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZzcGF0aCwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUp
OgotICAgICAgICBmc3BhdGggPSBweS5wYXRoLmxvY2FsKGZzcGF0aCkgICMgeHh4IG9ubHkgZm9y
IHRlc3RfcmVzdWx0bG9nLnB5PwotICAgICAgICBuYW1lID0gZnNwYXRoLmJhc2VuYW1lCi0gICAg
ICAgIGlmIHBhcmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJlbCA9IGZzcGF0aC5yZWx0
byhwYXJlbnQuZnNwYXRoKQotICAgICAgICAgICAgaWYgcmVsOgotICAgICAgICAgICAgICAgIG5h
bWUgPSByZWwKLSAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Muc2VwLCBub2Rlcy5T
RVApCi0gICAgICAgIHN1cGVyKEZTQ29sbGVjdG9yLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBwYXJl
bnQsIGNvbmZpZywgc2Vzc2lvbikKLSAgICAgICAgc2VsZi5mc3BhdGggPSBmc3BhdGgKLQotICAg
IGRlZiBfY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKHNlbGYpOgotICAgICAgICBmb3Ig
aW5pdGlhbHBhdGggaW4gc2VsZi5zZXNzaW9uLl9pbml0aWFscGF0aHM6Ci0gICAgICAgICAgICBp
ZiBzZWxmLmZzcGF0aC5jb21tb24oaW5pdGlhbHBhdGgpID09IGluaXRpYWxwYXRoOgotICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLmZzcGF0aC5yZWx0byhpbml0aWFscGF0aC5kaXJuYW1lKQot
Ci0gICAgZGVmIF9tYWtlaWQoc2VsZik6Ci0gICAgICAgIHJlbHBhdGggPSBzZWxmLmZzcGF0aC5y
ZWx0byhzZWxmLmNvbmZpZy5yb290ZGlyKQotCi0gICAgICAgIGlmIG5vdCByZWxwYXRoOgotICAg
ICAgICAgICAgcmVscGF0aCA9IHNlbGYuX2NoZWNrX2luaXRpYWxwYXRoc19mb3JfcmVscGF0aCgp
Ci0gICAgICAgIGlmIG9zLnNlcCAhPSBub2Rlcy5TRVA6Ci0gICAgICAgICAgICByZWxwYXRoID0g
cmVscGF0aC5yZXBsYWNlKG9zLnNlcCwgbm9kZXMuU0VQKQotICAgICAgICByZXR1cm4gcmVscGF0
aAotCi0KLWNsYXNzIEZpbGUoRlNDb2xsZWN0b3IpOgotICAgICIiIiBiYXNlIGNsYXNzIGZvciBj
b2xsZWN0aW5nIHRlc3RzIGZyb20gYSBmaWxlLiAiIiIKLQotCi1jbGFzcyBJdGVtKE5vZGUpOgot
ICAgICIiIiBhIGJhc2ljIHRlc3QgaW52b2NhdGlvbiBpdGVtLiBOb3RlIHRoYXQgZm9yIGEgc2lu
Z2xlIGZ1bmN0aW9uCi0gICAgdGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgdGVzdCBpbnZvY2F0aW9u
IGl0ZW1zLgotICAgICIiIgotICAgIG5leHRpdGVtID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG5hbWUsIHBhcmVudD1Ob25lLCBjb25maWc9Tm9uZSwgc2Vzc2lvbj1Ob25lKToKLSAg
ICAgICAgc3VwZXIoSXRlbSwgc2VsZikuX19pbml0X18obmFtZSwgcGFyZW50LCBjb25maWcsIHNl
c3Npb24pCi0gICAgICAgIHNlbGYuX3JlcG9ydF9zZWN0aW9ucyA9IFtdCi0KLSAgICBkZWYgYWRk
X3JlcG9ydF9zZWN0aW9uKHNlbGYsIHdoZW4sIGtleSwgY29udGVudCk6Ci0gICAgICAgICIiIgot
ICAgICAgICBBZGRzIGEgbmV3IHJlcG9ydCBzZWN0aW9uLCBzaW1pbGFyIHRvIHdoYXQncyBkb25l
IGludGVybmFsbHkgdG8gYWRkIHN0ZG91dCBhbmQKLSAgICAgICAgc3RkZXJyIGNhcHR1cmVkIG91
dHB1dDo6Ci0KLSAgICAgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKCJjYWxsIiwgInN0
ZG91dCIsICJyZXBvcnQgc2VjdGlvbiBjb250ZW50cyIpCi0KLSAgICAgICAgOnBhcmFtIHN0ciB3
aGVuOgotICAgICAgICAgICAgT25lIG9mIHRoZSBwb3NzaWJsZSBjYXB0dXJlIHN0YXRlcywgYGAi
c2V0dXAiYGAsIGBgImNhbGwiYGAsIGBgInRlYXJkb3duImBgLgotICAgICAgICA6cGFyYW0gc3Ry
IGtleToKLSAgICAgICAgICAgIE5hbWUgb2YgdGhlIHNlY3Rpb24sIGNhbiBiZSBjdXN0b21pemVk
IGF0IHdpbGwuIFB5dGVzdCB1c2VzIGBgInN0ZG91dCJgYCBhbmQKLSAgICAgICAgICAgIGBgInN0
ZGVyciJgYCBpbnRlcm5hbGx5LgotCi0gICAgICAgIDpwYXJhbSBzdHIgY29udGVudDoKLSAgICAg
ICAgICAgIFRoZSBmdWxsIGNvbnRlbnRzIGFzIGEgc3RyaW5nLgotICAgICAgICAiIiIKLSAgICAg
ICAgaWYgY29udGVudDoKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9zZWN0aW9ucy5hcHBlbmQo
KHdoZW4sIGtleSwgY29udGVudCkpCi0KLSAgICBkZWYgcmVwb3J0aW5mbyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuZnNwYXRoLCBOb25lLCAiIgotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm
IGxvY2F0aW9uKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5f
bG9jYXRpb24KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgbG9j
YXRpb24gPSBzZWxmLnJlcG9ydGluZm8oKQotICAgICAgICAgICAgIyBiZXN0cmVscGF0aCBpcyBh
IHF1aXRlIHNsb3cgZnVuY3Rpb24KLSAgICAgICAgICAgIGNhY2hlID0gc2VsZi5jb25maWcuX19k
aWN0X18uc2V0ZGVmYXVsdCgiX2Jlc3RyZWxwYXRoY2FjaGUiLCB7fSkKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICBmc3BhdGggPSBjYWNoZVtsb2NhdGlvblswXV0KLSAgICAgICAg
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBmc3BhdGggPSBzZWxmLnNlc3Np
b24uZnNwYXRoLmJlc3RyZWxwYXRoKGxvY2F0aW9uWzBdKQotICAgICAgICAgICAgICAgIGNhY2hl
W2xvY2F0aW9uWzBdXSA9IGZzcGF0aAotICAgICAgICAgICAgbG9jYXRpb24gPSAoZnNwYXRoLCBs
b2NhdGlvblsxXSwgc3RyKGxvY2F0aW9uWzJdKSkKLSAgICAgICAgICAgIHNlbGYuX2xvY2F0aW9u
ID0gbG9jYXRpb24KLSAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbgotCi0KLWNsYXNzIE5vTWF0
Y2goRXhjZXB0aW9uKToKLSAgICAiIiIgcmFpc2VkIGlmIG1hdGNoaW5nIGNhbm5vdCBsb2NhdGUg
YSBtYXRjaGluZyBuYW1lcy4gIiIiCi0KLQotY2xhc3MgSW50ZXJydXB0ZWQoS2V5Ym9hcmRJbnRl
cnJ1cHQpOgotICAgICIiIiBzaWduYWxzIGFuIGludGVycnVwdGVkIHRlc3QgcnVuLiAiIiIKLSAg
ICBfX21vZHVsZV9fID0gJ2J1aWx0aW5zJyAgIyBmb3IgcHkzCi0KLQotY2xhc3MgRmFpbGVkKEV4
Y2VwdGlvbik6Ci0gICAgIiIiIHNpZ25hbHMgYW4gc3RvcCBhcyBmYWlsZWQgdGVzdCBydW4uICIi
IgotCi0KLWNsYXNzIFNlc3Npb24oRlNDb2xsZWN0b3IpOgotICAgIEludGVycnVwdGVkID0gSW50
ZXJydXB0ZWQKLSAgICBGYWlsZWQgPSBGYWlsZWQKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBj
b25maWcpOgotICAgICAgICBGU0NvbGxlY3Rvci5fX2luaXRfXyhzZWxmLCBjb25maWcucm9vdGRp
ciwgcGFyZW50PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz1jb25m
aWcsIHNlc3Npb249c2VsZikKLSAgICAgICAgc2VsZi50ZXN0c2ZhaWxlZCA9IDAKLSAgICAgICAg
c2VsZi50ZXN0c2NvbGxlY3RlZCA9IDAKLSAgICAgICAgc2VsZi5zaG91bGRzdG9wID0gRmFsc2UK
LSAgICAgICAgc2VsZi5zaG91bGRmYWlsID0gRmFsc2UKLSAgICAgICAgc2VsZi50cmFjZSA9IGNv
bmZpZy50cmFjZS5yb290LmdldCgiY29sbGVjdGlvbiIpCi0gICAgICAgIHNlbGYuX25vcmVjdXJz
ZXBhdHRlcm5zID0gY29uZmlnLmdldGluaSgibm9yZWN1cnNlZGlycyIpCi0gICAgICAgIHNlbGYu
c3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2VsZi5jb25maWcucGx1Z2lubWFu
YWdlci5yZWdpc3RlcihzZWxmLCBuYW1lPSJzZXNzaW9uIikKLQotICAgIGRlZiBfbWFrZWlkKHNl
bGYpOgotICAgICAgICByZXR1cm4gIiIKLQotICAgIEBob29raW1wbCh0cnlmaXJzdD1UcnVlKQot
ICAgIGRlZiBweXRlc3RfY29sbGVjdHN0YXJ0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLnNob3Vs
ZGZhaWw6Ci0gICAgICAgICAgICByYWlzZSBzZWxmLkZhaWxlZChzZWxmLnNob3VsZGZhaWwpCi0g
ICAgICAgIGlmIHNlbGYuc2hvdWxkc3RvcDoKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuSW50ZXJy
dXB0ZWQoc2VsZi5zaG91bGRzdG9wKQotCi0gICAgQGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi0g
ICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgotICAgICAgICBp
ZiByZXBvcnQuZmFpbGVkIGFuZCBub3QgaGFzYXR0cihyZXBvcnQsICd3YXN4ZmFpbCcpOgotICAg
ICAgICAgICAgc2VsZi50ZXN0c2ZhaWxlZCArPSAxCi0gICAgICAgICAgICBtYXhmYWlsID0gc2Vs
Zi5jb25maWcuZ2V0dmFsdWUoIm1heGZhaWwiKQotICAgICAgICAgICAgaWYgbWF4ZmFpbCBhbmQg
c2VsZi50ZXN0c2ZhaWxlZCA+PSBtYXhmYWlsOgotICAgICAgICAgICAgICAgIHNlbGYuc2hvdWxk
ZmFpbCA9ICJzdG9wcGluZyBhZnRlciAlZCBmYWlsdXJlcyIgJSAoCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYudGVzdHNmYWlsZWQpCi0gICAgcHl0ZXN0X2NvbGxlY3RyZXBvcnQgPSBweXRlc3Rf
cnVudGVzdF9sb2dyZXBvcnQKLQotICAgIGRlZiBpc2luaXRwYXRoKHNlbGYsIHBhdGgpOgotICAg
ICAgICByZXR1cm4gcGF0aCBpbiBzZWxmLl9pbml0aWFscGF0aHMKLQotICAgIGRlZiBnZXRob29r
cHJveHkoc2VsZiwgZnNwYXRoKToKLSAgICAgICAgIyBjaGVjayBpZiB3ZSBoYXZlIHRoZSBjb21t
b24gY2FzZSBvZiBydW5uaW5nCi0gICAgICAgICMgaG9va3Mgd2l0aCBhbGwgY29uZnRlc3QucHkg
ZmlsZXNhbGwgY29uZnRlc3QucHkKLSAgICAgICAgcG0gPSBzZWxmLmNvbmZpZy5wbHVnaW5tYW5h
Z2VyCi0gICAgICAgIG15X2NvbmZ0ZXN0bW9kdWxlcyA9IHBtLl9nZXRjb25mdGVzdG1vZHVsZXMo
ZnNwYXRoKQotICAgICAgICByZW1vdmVfbW9kcyA9IHBtLl9jb25mdGVzdF9wbHVnaW5zLmRpZmZl
cmVuY2UobXlfY29uZnRlc3Rtb2R1bGVzKQotICAgICAgICBpZiByZW1vdmVfbW9kczoKLSAgICAg
ICAgICAgICMgb25lIG9yIG1vcmUgY29uZnRlc3RzIGFyZSBub3QgaW4gdXNlIGF0IHRoaXMgZnNw
YXRoCi0gICAgICAgICAgICBwcm94eSA9IEZTSG9va1Byb3h5KGZzcGF0aCwgcG0sIHJlbW92ZV9t
b2RzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBhbGwgcGx1Z2lzIGFyZSBhY3RpdmUg
Zm9yIHRoaXMgZnNwYXRoCi0gICAgICAgICAgICBwcm94eSA9IHNlbGYuY29uZmlnLmhvb2sKLSAg
ICAgICAgcmV0dXJuIHByb3h5Ci0KLSAgICBkZWYgcGVyZm9ybV9jb2xsZWN0KHNlbGYsIGFyZ3M9
Tm9uZSwgZ2VuaXRlbXM9VHJ1ZSk6Ci0gICAgICAgIGhvb2sgPSBzZWxmLmNvbmZpZy5ob29rCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGl0ZW1zID0gc2VsZi5fcGVyZm9ybV9jb2xsZWN0KGFy
Z3MsIGdlbml0ZW1zKQotICAgICAgICAgICAgc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5jaGVj
a19wZW5kaW5nKCkKLSAgICAgICAgICAgIGhvb2sucHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRl
bXMoc2Vzc2lvbj1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWc9c2VsZi5jb25maWcsIGl0ZW1zPWl0ZW1zKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgaG9vay5weXRlc3RfY29sbGVjdGlvbl9maW5pc2goc2Vzc2lvbj1zZWxm
KQotICAgICAgICBzZWxmLnRlc3RzY29sbGVjdGVkID0gbGVuKGl0ZW1zKQotICAgICAgICByZXR1
cm4gaXRlbXMKLQotICAgIGRlZiBfcGVyZm9ybV9jb2xsZWN0KHNlbGYsIGFyZ3MsIGdlbml0ZW1z
KToKLSAgICAgICAgaWYgYXJncyBpcyBOb25lOgotICAgICAgICAgICAgYXJncyA9IHNlbGYuY29u
ZmlnLmFyZ3MKLSAgICAgICAgc2VsZi50cmFjZSgicGVyZm9ybV9jb2xsZWN0Iiwgc2VsZiwgYXJn
cykKLSAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAxCi0gICAgICAgIHNlbGYuX25v
dGZvdW5kID0gW10KLSAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzID0gc2V0KCkKLSAgICAgICAg
c2VsZi5faW5pdGlhbHBhcnRzID0gW10KLSAgICAgICAgc2VsZi5pdGVtcyA9IGl0ZW1zID0gW10K
LSAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgotICAgICAgICAgICAgcGFydHMgPSBzZWxmLl9wYXJz
ZWFyZyhhcmcpCi0gICAgICAgICAgICBzZWxmLl9pbml0aWFscGFydHMuYXBwZW5kKHBhcnRzKQot
ICAgICAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzLmFkZChwYXJ0c1swXSkKLSAgICAgICAgcmVw
ID0gY29sbGVjdF9vbmVfbm9kZShzZWxmKQotICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9jb2xs
ZWN0cmVwb3J0KHJlcG9ydD1yZXApCi0gICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQgLT0g
MQotICAgICAgICBpZiBzZWxmLl9ub3Rmb3VuZDoKLSAgICAgICAgICAgIGVycm9ycyA9IFtdCi0g
ICAgICAgICAgICBmb3IgYXJnLCBleGMgaW4gc2VsZi5fbm90Zm91bmQ6Ci0gICAgICAgICAgICAg
ICAgbGluZSA9ICIobm8gbmFtZSAlciBpbiBhbnkgb2YgJXIpIiAlIChhcmcsIGV4Yy5hcmdzWzBd
KQotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIm5vdCBmb3VuZDogJXNcbiVzIiAlIChh
cmcsIGxpbmUpKQotICAgICAgICAgICAgICAgICMgWFhYOiB0ZXN0IHRoaXMKLSAgICAgICAgICAg
IHJhaXNlIFVzYWdlRXJyb3IoKmVycm9ycykKLSAgICAgICAgaWYgbm90IGdlbml0ZW1zOgotICAg
ICAgICAgICAgcmV0dXJuIHJlcC5yZXN1bHQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlm
IHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZm9yIG5vZGUgaW4gcmVwLnJlc3VsdDoKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5pdGVtcy5leHRlbmQoc2VsZi5nZW5pdGVtcyhub2RlKSkK
LSAgICAgICAgICAgIHJldHVybiBpdGVtcwotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0gICAg
ICAgIGZvciBwYXJ0cyBpbiBzZWxmLl9pbml0aWFscGFydHM6Ci0gICAgICAgICAgICBhcmcgPSAi
OjoiLmpvaW4obWFwKHN0ciwgcGFydHMpKQotICAgICAgICAgICAgc2VsZi50cmFjZSgicHJvY2Vz
c2luZyBhcmd1bWVudCIsIGFyZykKLSAgICAgICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQg
Kz0gMQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZvciB4IGluIHNlbGYuX2Nv
bGxlY3QoYXJnKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgeAotICAgICAgICAgICAgZXhj
ZXB0IE5vTWF0Y2g6Ci0gICAgICAgICAgICAgICAgIyB3ZSBhcmUgaW5zaWRlIGEgbWFrZV9yZXBv
cnQgaG9vayBzbwotICAgICAgICAgICAgICAgICMgd2UgY2Fubm90IGRpcmVjdGx5IHBhc3MgdGhy
b3VnaCB0aGUgZXhjZXB0aW9uCi0gICAgICAgICAgICAgICAgc2VsZi5fbm90Zm91bmQuYXBwZW5k
KChhcmcsIHN5cy5leGNfaW5mbygpWzFdKSkKLQotICAgICAgICAgICAgc2VsZi50cmFjZS5yb290
LmluZGVudCAtPSAxCi0KLSAgICBkZWYgX2NvbGxlY3Qoc2VsZiwgYXJnKToKLSAgICAgICAgbmFt
ZXMgPSBzZWxmLl9wYXJzZWFyZyhhcmcpCi0gICAgICAgIHBhdGggPSBuYW1lcy5wb3AoMCkKLSAg
ICAgICAgaWYgcGF0aC5jaGVjayhkaXI9MSk6Ci0gICAgICAgICAgICBhc3NlcnQgbm90IG5hbWVz
LCAiaW52YWxpZCBhcmcgJXIiICUgKGFyZywpCi0gICAgICAgICAgICBmb3IgcGF0aCBpbiBwYXRo
LnZpc2l0KGZpbD1sYW1iZGEgeDogeC5jaGVjayhmaWxlPTEpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWM9c2VsZi5fcmVjdXJzZSwgYmY9VHJ1ZSwgc29ydD1UcnVlKToK
LSAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0ZmlsZShwYXRoKToKLSAgICAg
ICAgICAgICAgICAgICAgeWllbGQgeAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0
IHBhdGguY2hlY2soZmlsZT0xKQotICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5tYXRjaG5vZGVz
KHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgpLCBuYW1lcyk6Ci0gICAgICAgICAgICAgICAgeWllbGQg
eAotCi0gICAgZGVmIF9jb2xsZWN0ZmlsZShzZWxmLCBwYXRoKToKLSAgICAgICAgaWhvb2sgPSBz
ZWxmLmdldGhvb2twcm94eShwYXRoKQotICAgICAgICBpZiBub3Qgc2VsZi5pc2luaXRwYXRoKHBh
dGgpOgotICAgICAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9cGF0
aCwgY29uZmlnPXNlbGYuY29uZmlnKToKLSAgICAgICAgICAgICAgICByZXR1cm4gKCkKLSAgICAg
ICAgcmV0dXJuIGlob29rLnB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aD1wYXRoLCBwYXJlbnQ9c2Vs
ZikKLQotICAgIGRlZiBfcmVjdXJzZShzZWxmLCBwYXRoKToKLSAgICAgICAgaWhvb2sgPSBzZWxm
LmdldGhvb2twcm94eShwYXRoLmRpcnBhdGgoKSkKLSAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2ln
bm9yZV9jb2xsZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToKLSAgICAgICAgICAg
IHJldHVybgotICAgICAgICBmb3IgcGF0IGluIHNlbGYuX25vcmVjdXJzZXBhdHRlcm5zOgotICAg
ICAgICAgICAgaWYgcGF0aC5jaGVjayhmbm1hdGNoPXBhdCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0gICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJveHkocGF0aCkKLSAgICAg
ICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGg9cGF0aCwgcGFyZW50PXNlbGYp
Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX3RyeWNvbnZlcnRweWFyZyhzZWxmLCB4
KToKLSAgICAgICAgIiIiQ29udmVydCBhIGRvdHRlZCBtb2R1bGUgbmFtZSB0byBwYXRoLgotCi0g
ICAgICAgICIiIgotICAgICAgICBpbXBvcnQgcGtndXRpbAotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBsb2FkZXIgPSBwa2d1dGlsLmZpbmRfbG9hZGVyKHgpCi0gICAgICAgIGV4Y2VwdCBJbXBv
cnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiB4Ci0gICAgICAgIGlmIGxvYWRlciBpcyBOb25l
OgotICAgICAgICAgICAgcmV0dXJuIHgKLSAgICAgICAgIyBUaGlzIG1ldGhvZCBpcyBzb21ldGlt
ZXMgaW52b2tlZCB3aGVuIEFzc2VydGlvblJld3JpdGluZ0hvb2ssIHdoaWNoCi0gICAgICAgICMg
ZG9lcyBub3QgZGVmaW5lIGEgZ2V0X2ZpbGVuYW1lIG1ldGhvZCwgaXMgYWxyZWFkeSBpbiBwbGFj
ZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcGF0aCA9IGxvYWRlci5nZXRfZmlsZW5hbWUo
eCkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgIyBSZXRyaWV2
ZSBwYXRoIGZyb20gQXNzZXJ0aW9uUmV3cml0aW5nSG9vazoKLSAgICAgICAgICAgIHBhdGggPSBs
b2FkZXIubW9kdWxlc1t4XVswXS5jb19maWxlbmFtZQotICAgICAgICBpZiBsb2FkZXIuaXNfcGFj
a2FnZSh4KToKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKLSAgICAg
ICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiBfcGFyc2Vhcmcoc2VsZiwgYXJnKToKLSAgICAgICAg
IiIiIHJldHVybiAoZnNwYXRoLCBuYW1lcykgdHVwbGUgYWZ0ZXIgY2hlY2tpbmcgdGhlIGZpbGUg
ZXhpc3RzLiAiIiIKLSAgICAgICAgcGFydHMgPSBzdHIoYXJnKS5zcGxpdCgiOjoiKQotICAgICAg
ICBpZiBzZWxmLmNvbmZpZy5vcHRpb24ucHlhcmdzOgotICAgICAgICAgICAgcGFydHNbMF0gPSBz
ZWxmLl90cnljb252ZXJ0cHlhcmcocGFydHNbMF0pCi0gICAgICAgIHJlbHBhdGggPSBwYXJ0c1sw
XS5yZXBsYWNlKCIvIiwgb3Muc2VwKQotICAgICAgICBwYXRoID0gc2VsZi5jb25maWcuaW52b2Nh
dGlvbl9kaXIuam9pbihyZWxwYXRoLCBhYnM9VHJ1ZSkKLSAgICAgICAgaWYgbm90IHBhdGguY2hl
Y2soKToKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5weWFyZ3M6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgImZpbGUgb3Ig
cGFja2FnZSBub3QgZm91bmQ6ICIgKyBhcmcgKwotICAgICAgICAgICAgICAgICAgICAiIChtaXNz
aW5nIF9faW5pdF9fLnB5PykiKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
YWlzZSBVc2FnZUVycm9yKCJmaWxlIG5vdCBmb3VuZDogIiArIGFyZykKLSAgICAgICAgcGFydHNb
MF0gPSBwYXRoCi0gICAgICAgIHJldHVybiBwYXJ0cwotCi0gICAgZGVmIG1hdGNobm9kZXMoc2Vs
ZiwgbWF0Y2hpbmcsIG5hbWVzKToKLSAgICAgICAgc2VsZi50cmFjZSgibWF0Y2hub2RlcyIsIG1h
dGNoaW5nLCBuYW1lcykKLSAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAxCi0gICAg
ICAgIG5vZGVzID0gc2VsZi5fbWF0Y2hub2RlcyhtYXRjaGluZywgbmFtZXMpCi0gICAgICAgIG51
bSA9IGxlbihub2RlcykKLSAgICAgICAgc2VsZi50cmFjZSgibWF0Y2hub2RlcyBmaW5pc2hlZCAt
PiAiLCBudW0sICJub2RlcyIpCi0gICAgICAgIHNlbGYudHJhY2Uucm9vdC5pbmRlbnQgLT0gMQot
ICAgICAgICBpZiBudW0gPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIE5vTWF0Y2gobWF0Y2hpbmcs
IG5hbWVzWzoxXSkKLSAgICAgICAgcmV0dXJuIG5vZGVzCi0KLSAgICBkZWYgX21hdGNobm9kZXMo
c2VsZiwgbWF0Y2hpbmcsIG5hbWVzKToKLSAgICAgICAgaWYgbm90IG1hdGNoaW5nIG9yIG5vdCBu
YW1lczoKLSAgICAgICAgICAgIHJldHVybiBtYXRjaGluZwotICAgICAgICBuYW1lID0gbmFtZXNb
MF0KLSAgICAgICAgYXNzZXJ0IG5hbWUKLSAgICAgICAgbmV4dG5hbWVzID0gbmFtZXNbMTpdCi0g
ICAgICAgIHJlc3VsdG5vZGVzID0gW10KLSAgICAgICAgZm9yIG5vZGUgaW4gbWF0Y2hpbmc6Ci0g
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIEl0ZW0pOgotICAgICAgICAgICAgICAgIGlm
IG5vdCBuYW1lczoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0bm9kZXMuYXBwZW5kKG5vZGUp
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KG5vZGUsIENvbGxlY3RvcikKLSAgICAgICAgICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUobm9k
ZSkKLSAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgaGFzX21hdGNo
ZWQgPSBGYWxzZQotICAgICAgICAgICAgICAgIGZvciB4IGluIHJlcC5yZXN1bHQ6Ci0gICAgICAg
ICAgICAgICAgICAgICMgVE9ETzogcmVtb3ZlIHBhcmFtZXRyaXplZCB3b3JrYXJvdW5kIG9uY2Ug
Y29sbGVjdGlvbiBzdHJ1Y3R1cmUgY29udGFpbnMgcGFyYW1ldHJpemF0aW9uCi0gICAgICAgICAg
ICAgICAgICAgIGlmIHgubmFtZSA9PSBuYW1lIG9yIHgubmFtZS5zcGxpdCgiWyIpWzBdID09IG5h
bWU6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5leHRlbmQoc2VsZi5tYXRj
aG5vZGVzKFt4XSwgbmV4dG5hbWVzKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc19tYXRj
aGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgICMgWFhYIGFjY2VwdCBJRHMgdGhhdCBkb24ndCBo
YXZlICIoKSIgZm9yIGNsYXNzIGluc3RhbmNlcwotICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNf
bWF0Y2hlZCBhbmQgbGVuKHJlcC5yZXN1bHQpID09IDEgYW5kIHgubmFtZSA9PSAiKCkiOgotICAg
ICAgICAgICAgICAgICAgICBuZXh0bmFtZXMuaW5zZXJ0KDAsIG5hbWUpCi0gICAgICAgICAgICAg
ICAgICAgIHJlc3VsdG5vZGVzLmV4dGVuZChzZWxmLm1hdGNobm9kZXMoW3hdLCBuZXh0bmFtZXMp
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIHJlcG9ydCBjb2xsZWN0aW9u
IGZhaWx1cmVzIGhlcmUgdG8gYXZvaWQgZmFpbGluZyB0byBydW4gc29tZSB0ZXN0Ci0gICAgICAg
ICAgICAgICAgIyBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgbGluZSBiZWNhdXNlIHRoZSBtb2R1
bGUgY291bGQgbm90IGJlCi0gICAgICAgICAgICAgICAgIyBpbXBvcnRlZCAoIzEzNCkKLSAgICAg
ICAgICAgICAgICBub2RlLmlob29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydD1yZXApCi0g
ICAgICAgIHJldHVybiByZXN1bHRub2RlcwotCi0gICAgZGVmIGdlbml0ZW1zKHNlbGYsIG5vZGUp
OgotICAgICAgICBzZWxmLnRyYWNlKCJnZW5pdGVtcyIsIG5vZGUpCi0gICAgICAgIGlmIGlzaW5z
dGFuY2Uobm9kZSwgSXRlbSk6Ci0gICAgICAgICAgICBub2RlLmlob29rLnB5dGVzdF9pdGVtY29s
bGVjdGVkKGl0ZW09bm9kZSkKLSAgICAgICAgICAgIHlpZWxkIG5vZGUKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUsIENvbGxlY3RvcikKLSAgICAgICAg
ICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUobm9kZSkKLSAgICAgICAgICAgIGlmIHJlcC5wYXNz
ZWQ6Ci0gICAgICAgICAgICAgICAgZm9yIHN1Ym5vZGUgaW4gcmVwLnJlc3VsdDoKLSAgICAgICAg
ICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5nZW5pdGVtcyhzdWJub2RlKToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHlpZWxkIHgKLSAgICAgICAgICAgIG5vZGUuaWhvb2sucHl0ZXN0X2NvbGxl
Y3RyZXBvcnQocmVwb3J0PXJlcCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFy
ay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2YxZjAxYjFhMmUzNGRiMzVjYjI2MWEzZmI0OTBmMWM0NjU3ZDRkMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L21hcmsucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0OTYgKzAsMCBAQAotIiIiIGdlbmVyaWMg
bWVjaGFuaXNtIGZvciBtYXJraW5nIGFuZCBzZWxlY3RpbmcgcHl0aG9uIGZ1bmN0aW9ucy4gIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi0KLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgd2FybmluZ3MKLWltcG9ydCBhdHRy
Ci1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIG9wZXJhdG9yIGltcG9y
dCBhdHRyZ2V0dGVyCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgbWFwCi1mcm9tIC5kZXByZWNhdGVk
IGltcG9ydCBNQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcKLWZyb20gLmNvbXBhdCBpbXBvcnQg
Tk9UU0VULCBnZXRmc2xpbmVubwotCi0KLWRlZiBhbGlhcyhuYW1lLCB3YXJuaW5nPU5vbmUpOgot
ICAgIGdldHRlciA9IGF0dHJnZXR0ZXIobmFtZSkKLQotICAgIGRlZiB3YXJuZWQoc2VsZik6Ci0g
ICAgICAgIHdhcm5pbmdzLndhcm4od2FybmluZywgc3RhY2tsZXZlbD0yKQotICAgICAgICByZXR1
cm4gZ2V0dGVyKHNlbGYpCi0KLSAgICByZXR1cm4gcHJvcGVydHkoZ2V0dGVyIGlmIHdhcm5pbmcg
aXMgTm9uZSBlbHNlIHdhcm5lZCwgZG9jPSdhbGlhcyBmb3IgJyArIG5hbWUpCi0KLQotY2xhc3Mg
UGFyYW1ldGVyU2V0KG5hbWVkdHVwbGUoJ1BhcmFtZXRlclNldCcsICd2YWx1ZXMsIG1hcmtzLCBp
ZCcpKToKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgcGFyYW0oY2xzLCAqdmFsdWVzLCAqKmt3
KToKLSAgICAgICAgbWFya3MgPSBrdy5wb3AoJ21hcmtzJywgKCkpCi0gICAgICAgIGlmIGlzaW5z
dGFuY2UobWFya3MsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgbWFya3MgPSBtYXJrcywK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1hcmtzLCAodHVw
bGUsIGxpc3QsIHNldCkpCi0KLSAgICAgICAgZGVmIHBhcmFtX2V4dHJhY3RfaWQoaWQ9Tm9uZSk6
Ci0gICAgICAgICAgICByZXR1cm4gaWQKLQotICAgICAgICBpZCA9IHBhcmFtX2V4dHJhY3RfaWQo
KiprdykKLSAgICAgICAgcmV0dXJuIGNscyh2YWx1ZXMsIG1hcmtzLCBpZCkKLQotICAgIEBjbGFz
c21ldGhvZAotICAgIGRlZiBleHRyYWN0X2Zyb20oY2xzLCBwYXJhbWV0ZXJzZXQsIGxlZ2FjeV9m
b3JjZV90dXBsZT1GYWxzZSk6Ci0gICAgICAgICIiIgotICAgICAgICA6cGFyYW0gcGFyYW1ldGVy
c2V0OgotICAgICAgICAgICAgYSBsZWdhY3kgc3R5bGUgcGFyYW1ldGVyc2V0IHRoYXQgbWF5IG9y
IG1heSBub3QgYmUgYSB0dXBsZSwKLSAgICAgICAgICAgIGFuZCBtYXkgb3IgbWF5IG5vdCBiZSB3
cmFwcGVkIGludG8gYSBtZXNzIG9mIG1hcmsgb2JqZWN0cwotCi0gICAgICAgIDpwYXJhbSBsZWdh
Y3lfZm9yY2VfdHVwbGU6Ci0gICAgICAgICAgICBlbmZvcmNlIHR1cGxlIHdyYXBwaW5nIHNvIHNp
bmdsZSBhcmd1bWVudCB0dXBsZSB2YWx1ZXMKLSAgICAgICAgICAgIGRvbid0IGdldCBkZWNvbXBv
c2VkIGFuZCBicmVhayB0ZXN0cwotCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIGlzaW5zdGFu
Y2UocGFyYW1ldGVyc2V0LCBjbHMpOgotICAgICAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldAot
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJhbWV0ZXJzZXQsIE1hcmtEZWNvcmF0b3IpIGFu
ZCBsZWdhY3lfZm9yY2VfdHVwbGU6Ci0gICAgICAgICAgICByZXR1cm4gY2xzLnBhcmFtKHBhcmFt
ZXRlcnNldCkKLQotICAgICAgICBuZXdtYXJrcyA9IFtdCi0gICAgICAgIGFyZ3ZhbCA9IHBhcmFt
ZXRlcnNldAotICAgICAgICB3aGlsZSBpc2luc3RhbmNlKGFyZ3ZhbCwgTWFya0RlY29yYXRvcik6
Ci0gICAgICAgICAgICBuZXdtYXJrcy5hcHBlbmQoTWFya0RlY29yYXRvcihNYXJrKAotICAgICAg
ICAgICAgICAgIGFyZ3ZhbC5tYXJrbmFtZSwgYXJndmFsLmFyZ3NbOi0xXSwgYXJndmFsLmt3YXJn
cykpKQotICAgICAgICAgICAgYXJndmFsID0gYXJndmFsLmFyZ3NbLTFdCi0gICAgICAgIGFzc2Vy
dCBub3QgaXNpbnN0YW5jZShhcmd2YWwsIFBhcmFtZXRlclNldCkKLSAgICAgICAgaWYgbGVnYWN5
X2ZvcmNlX3R1cGxlOgotICAgICAgICAgICAgYXJndmFsID0gYXJndmFsLAotCi0gICAgICAgIGlm
IG5ld21hcmtzOgotICAgICAgICAgICAgd2FybmluZ3Mud2FybihNQVJLX1BBUkFNRVRFUlNFVF9V
TlBBQ0tJTkcpCi0KLSAgICAgICAgcmV0dXJuIGNscyhhcmd2YWwsIG1hcmtzPW5ld21hcmtzLCBp
ZD1Ob25lKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9mb3JfcGFyYW1ldGVyaXplKGNs
cywgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgZnVuY3Rpb24pOgotICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShhcmduYW1lcywgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICBhcmduYW1lcyA9IFt4
LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFtZXMuc3BsaXQoIiwiKSBpZiB4LnN0cmlwKCldCi0gICAg
ICAgICAgICBmb3JjZV90dXBsZSA9IGxlbihhcmduYW1lcykgPT0gMQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgZm9yY2VfdHVwbGUgPSBGYWxzZQotICAgICAgICBwYXJhbWV0ZXJzID0gWwot
ICAgICAgICAgICAgUGFyYW1ldGVyU2V0LmV4dHJhY3RfZnJvbSh4LCBsZWdhY3lfZm9yY2VfdHVw
bGU9Zm9yY2VfdHVwbGUpCi0gICAgICAgICAgICBmb3IgeCBpbiBhcmd2YWx1ZXNdCi0gICAgICAg
IGRlbCBhcmd2YWx1ZXMKLQotICAgICAgICBpZiBub3QgcGFyYW1ldGVyczoKLSAgICAgICAgICAg
IGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jdGlvbikKLSAgICAgICAgICAgIHJlYXNvbiA9
ICJnb3QgZW1wdHkgcGFyYW1ldGVyIHNldCAlciwgZnVuY3Rpb24gJXMgYXQgJXM6JWQiICUgKAot
ICAgICAgICAgICAgICAgIGFyZ25hbWVzLCBmdW5jdGlvbi5fX25hbWVfXywgZnMsIGxpbmVubykK
LSAgICAgICAgICAgIG1hcmsgPSBNQVJLX0dFTi5za2lwKHJlYXNvbj1yZWFzb24pCi0gICAgICAg
ICAgICBwYXJhbWV0ZXJzLmFwcGVuZChQYXJhbWV0ZXJTZXQoCi0gICAgICAgICAgICAgICAgdmFs
dWVzPShOT1RTRVQsKSAqIGxlbihhcmduYW1lcyksCi0gICAgICAgICAgICAgICAgbWFya3M9W21h
cmtdLAotICAgICAgICAgICAgICAgIGlkPU5vbmUsCi0gICAgICAgICAgICApKQotICAgICAgICBy
ZXR1cm4gYXJnbmFtZXMsIHBhcmFtZXRlcnMKLQotCi1jbGFzcyBNYXJrZXJFcnJvcihFeGNlcHRp
b24pOgotCi0gICAgIiIiRXJyb3IgaW4gdXNlIG9mIGEgcHl0ZXN0IG1hcmtlci9hdHRyaWJ1dGUu
IiIiCi0KLQotZGVmIHBhcmFtKCp2YWx1ZXMsICoqa3cpOgotICAgIHJldHVybiBQYXJhbWV0ZXJT
ZXQucGFyYW0oKnZhbHVlcywgKiprdykKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIp
OgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5fYWRk
b3B0aW9uKAotICAgICAgICAnLWsnLAotICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0ia2V5
d29yZCIsIGRlZmF1bHQ9JycsIG1ldGF2YXI9IkVYUFJFU1NJT04iLAotICAgICAgICBoZWxwPSJv
bmx5IHJ1biB0ZXN0cyB3aGljaCBtYXRjaCB0aGUgZ2l2ZW4gc3Vic3RyaW5nIGV4cHJlc3Npb24u
ICIKLSAgICAgICAgICAgICAiQW4gZXhwcmVzc2lvbiBpcyBhIHB5dGhvbiBldmFsdWF0YWJsZSBl
eHByZXNzaW9uICIKLSAgICAgICAgICAgICAid2hlcmUgYWxsIG5hbWVzIGFyZSBzdWJzdHJpbmct
bWF0Y2hlZCBhZ2FpbnN0IHRlc3QgbmFtZXMgIgotICAgICAgICAgICAgICJhbmQgdGhlaXIgcGFy
ZW50IGNsYXNzZXMuIEV4YW1wbGU6IC1rICd0ZXN0X21ldGhvZCBvciB0ZXN0XyIKLSAgICAgICAg
ICAgICAib3RoZXInIG1hdGNoZXMgYWxsIHRlc3QgZnVuY3Rpb25zIGFuZCBjbGFzc2VzIHdob3Nl
IG5hbWUgIgotICAgICAgICAgICAgICJjb250YWlucyAndGVzdF9tZXRob2QnIG9yICd0ZXN0X290
aGVyJywgd2hpbGUgLWsgJ25vdCB0ZXN0X21ldGhvZCcgIgotICAgICAgICAgICAgICJtYXRjaGVz
IHRob3NlIHRoYXQgZG9uJ3QgY29udGFpbiAndGVzdF9tZXRob2QnIGluIHRoZWlyIG5hbWVzLiAi
Ci0gICAgICAgICAgICAgIkFkZGl0aW9uYWxseSBrZXl3b3JkcyBhcmUgbWF0Y2hlZCB0byBjbGFz
c2VzIGFuZCBmdW5jdGlvbnMgIgotICAgICAgICAgICAgICJjb250YWluaW5nIGV4dHJhIG5hbWVz
IGluIHRoZWlyICdleHRyYV9rZXl3b3JkX21hdGNoZXMnIHNldCwgIgotICAgICAgICAgICAgICJh
cyB3ZWxsIGFzIGZ1bmN0aW9ucyB3aGljaCBoYXZlIG5hbWVzIGFzc2lnbmVkIGRpcmVjdGx5IHRv
IHRoZW0uIgotICAgICkKLQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICItbSIsCi0g
ICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJtYXJrZXhwciIsIGRlZmF1bHQ9IiIsIG1ldGF2
YXI9Ik1BUktFWFBSIiwKLSAgICAgICAgaGVscD0ib25seSBydW4gdGVzdHMgbWF0Y2hpbmcgZ2l2
ZW4gbWFyayBleHByZXNzaW9uLiAgIgotICAgICAgICAgICAgICJleGFtcGxlOiAtbSAnbWFyazEg
YW5kIG5vdCBtYXJrMicuIgotICAgICkKLQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAgICAgICAg
Ii0tbWFya2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgIGhlbHA9InNob3cgbWFy
a2VycyAoYnVpbHRpbiwgcGx1Z2luIGFuZCBwZXItcHJvamVjdCBvbmVzKS4iCi0gICAgKQotCi0g
ICAgcGFyc2VyLmFkZGluaSgibWFya2VycyIsICJtYXJrZXJzIGZvciB0ZXN0IGZ1bmN0aW9ucyIs
ICdsaW5lbGlzdCcpCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBp
bXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBpZiBjb25maWcub3B0aW9uLm1hcmtlcnM6Ci0gICAg
ICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5j
cmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKLSAgICAgICAgZm9yIGxpbmUgaW4gY29uZmln
LmdldGluaSgibWFya2VycyIpOgotICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0KCI6Iiwg
MSkKLSAgICAgICAgICAgIG5hbWUgPSBwYXJ0c1swXQotICAgICAgICAgICAgcmVzdCA9IHBhcnRz
WzFdIGlmIGxlbihwYXJ0cykgPT0gMiBlbHNlICcnCi0gICAgICAgICAgICB0dy53cml0ZSgiQHB5
dGVzdC5tYXJrLiVzOiIgJSBuYW1lLCBib2xkPVRydWUpCi0gICAgICAgICAgICB0dy5saW5lKHJl
c3QpCi0gICAgICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25m
aWd1cmUoKQotICAgICAgICByZXR1cm4gMAotCi0KLXB5dGVzdF9jbWRsaW5lX21haW4udHJ5Zmly
c3QgPSBUcnVlCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKGl0ZW1zLCBj
b25maWcpOgotICAgIGtleXdvcmRleHByID0gY29uZmlnLm9wdGlvbi5rZXl3b3JkLmxzdHJpcCgp
Ci0gICAgbWF0Y2hleHByID0gY29uZmlnLm9wdGlvbi5tYXJrZXhwcgotICAgIGlmIG5vdCBrZXl3
b3JkZXhwciBhbmQgbm90IG1hdGNoZXhwcjoKLSAgICAgICAgcmV0dXJuCi0gICAgIyBweXRlc3Qg
dXNlZCB0byBhbGxvdyAiLSIgZm9yIG5lZ2F0aW5nCi0gICAgIyBidXQgdG9kYXkgd2UganVzdCBh
bGxvdyAiLSIgYXQgdGhlIGJlZ2lubmluZywgdXNlICJub3QiIGluc3RlYWQKLSAgICAjIHdlIHBy
b2JhYmx5IHJlbW92ZSAiLSIgYWx0b2dldGhlciBzb29uCi0gICAgaWYga2V5d29yZGV4cHIuc3Rh
cnRzd2l0aCgiLSIpOgotICAgICAgICBrZXl3b3JkZXhwciA9ICJub3QgIiArIGtleXdvcmRleHBy
WzE6XQotICAgIHNlbGVjdHVudGlsID0gRmFsc2UKLSAgICBpZiBrZXl3b3JkZXhwclstMTpdID09
ICI6IjoKLSAgICAgICAgc2VsZWN0dW50aWwgPSBUcnVlCi0gICAgICAgIGtleXdvcmRleHByID0g
a2V5d29yZGV4cHJbOi0xXQotCi0gICAgcmVtYWluaW5nID0gW10KLSAgICBkZXNlbGVjdGVkID0g
W10KLSAgICBmb3IgY29saXRlbSBpbiBpdGVtczoKLSAgICAgICAgaWYga2V5d29yZGV4cHIgYW5k
IG5vdCBtYXRjaGtleXdvcmQoY29saXRlbSwga2V5d29yZGV4cHIpOgotICAgICAgICAgICAgZGVz
ZWxlY3RlZC5hcHBlbmQoY29saXRlbSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIHNl
bGVjdHVudGlsOgotICAgICAgICAgICAgICAgIGtleXdvcmRleHByID0gTm9uZQotICAgICAgICAg
ICAgaWYgbWF0Y2hleHByOgotICAgICAgICAgICAgICAgIGlmIG5vdCBtYXRjaG1hcmsoY29saXRl
bSwgbWF0Y2hleHByKToKLSAgICAgICAgICAgICAgICAgICAgZGVzZWxlY3RlZC5hcHBlbmQoY29s
aXRlbSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHJlbWFpbmlu
Zy5hcHBlbmQoY29saXRlbSkKLQotICAgIGlmIGRlc2VsZWN0ZWQ6Ci0gICAgICAgIGNvbmZpZy5o
b29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWRlc2VsZWN0ZWQpCi0gICAgICAgIGl0ZW1zWzpd
ID0gcmVtYWluaW5nCi0KLQotQGF0dHIucwotY2xhc3MgTWFya01hcHBpbmcob2JqZWN0KToKLSAg
ICAiIiJQcm92aWRlcyBhIGxvY2FsIG1hcHBpbmcgZm9yIG1hcmtlcnMgd2hlcmUgaXRlbSBhY2Nl
c3MKLSAgICByZXNvbHZlcyB0byBUcnVlIGlmIHRoZSBtYXJrZXIgaXMgcHJlc2VudC4gIiIiCi0K
LSAgICBvd25fbWFya19uYW1lcyA9IGF0dHIuaWIoKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg
ZGVmIGZyb21fa2V5d29yZHMoY2xzLCBrZXl3b3Jkcyk6Ci0gICAgICAgIG1hcmtfbmFtZXMgPSBz
ZXQoKQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBrZXl3b3Jkcy5pdGVtcygpOgotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgTWFya0luZm8pIG9yIGlzaW5zdGFuY2UodmFsdWUs
IE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgICAgIG1hcmtfbmFtZXMuYWRkKGtleSkKLSAg
ICAgICAgcmV0dXJuIGNscyhtYXJrX25hbWVzKQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYs
IG5hbWUpOgotICAgICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLm93bl9tYXJrX25hbWVzCi0KLQot
Y2xhc3MgS2V5d29yZE1hcHBpbmcob2JqZWN0KToKLSAgICAiIiJQcm92aWRlcyBhIGxvY2FsIG1h
cHBpbmcgZm9yIGtleXdvcmRzLgotICAgIEdpdmVuIGEgbGlzdCBvZiBuYW1lcywgbWFwIGFueSBz
dWJzdHJpbmcgb2Ygb25lIG9mIHRoZXNlIG5hbWVzIHRvIFRydWUuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbmFtZXMpOgotICAgICAgICBzZWxmLl9uYW1lcyA9IG5hbWVzCi0K
LSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgc3VibmFtZSk6Ci0gICAgICAgIGZvciBuYW1lIGlu
IHNlbGYuX25hbWVzOgotICAgICAgICAgICAgaWYgc3VibmFtZSBpbiBuYW1lOgotICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWRlZiBtYXRjaG1h
cmsoY29saXRlbSwgbWFya2V4cHIpOgotICAgICIiIlRyaWVzIHRvIG1hdGNoIG9uIGFueSBtYXJr
ZXIgbmFtZXMsIGF0dGFjaGVkIHRvIHRoZSBnaXZlbiBjb2xpdGVtLiIiIgotICAgIHJldHVybiBl
dmFsKG1hcmtleHByLCB7fSwgTWFya01hcHBpbmcuZnJvbV9rZXl3b3Jkcyhjb2xpdGVtLmtleXdv
cmRzKSkKLQotCi1kZWYgbWF0Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdvcmRleHByKToKLSAgICAi
IiJUcmllcyB0byBtYXRjaCBnaXZlbiBrZXl3b3JkIGV4cHJlc3Npb24gdG8gZ2l2ZW4gY29sbGVj
dG9yIGl0ZW0uCi0KLSAgICBXaWxsIG1hdGNoIG9uIHRoZSBuYW1lIG9mIGNvbGl0ZW0sIGluY2x1
ZGluZyB0aGUgbmFtZXMgb2YgaXRzIHBhcmVudHMuCi0gICAgT25seSBtYXRjaGVzIG5hbWVzIG9m
IGl0ZW1zIHdoaWNoIGFyZSBlaXRoZXIgYSA6Y2xhc3M6YENsYXNzYCBvciBhCi0gICAgOmNsYXNz
OmBGdW5jdGlvbmAuCi0gICAgQWRkaXRpb25hbGx5LCBtYXRjaGVzIG9uIG5hbWVzIGluIHRoZSAn
ZXh0cmFfa2V5d29yZF9tYXRjaGVzJyBzZXQgb2YKLSAgICBhbnkgaXRlbSwgYXMgd2VsbCBhcyBu
YW1lcyBkaXJlY3RseSBhc3NpZ25lZCB0byB0ZXN0IGZ1bmN0aW9ucy4KLSAgICAiIiIKLSAgICBt
YXBwZWRfbmFtZXMgPSBzZXQoKQotCi0gICAgIyBBZGQgdGhlIG5hbWVzIG9mIHRoZSBjdXJyZW50
IGl0ZW0gYW5kIGFueSBwYXJlbnQgaXRlbXMKLSAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgZm9yIGl0
ZW0gaW4gY29saXRlbS5saXN0Y2hhaW4oKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRl
bSwgcHl0ZXN0Lkluc3RhbmNlKToKLSAgICAgICAgICAgIG1hcHBlZF9uYW1lcy5hZGQoaXRlbS5u
YW1lKQotCi0gICAgIyBBZGQgdGhlIG5hbWVzIGFkZGVkIGFzIGV4dHJhIGtleXdvcmRzIHRvIGN1
cnJlbnQgb3IgcGFyZW50IGl0ZW1zCi0gICAgZm9yIG5hbWUgaW4gY29saXRlbS5saXN0ZXh0cmFr
ZXl3b3JkcygpOgotICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5hbWUpCi0KLSAgICAjIEFkZCB0
aGUgbmFtZXMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQgZnVuY3Rpb24gdGhyb3VnaCBkaXJlY3Qg
YXNzaWdubWVudAotICAgIGlmIGhhc2F0dHIoY29saXRlbSwgJ2Z1bmN0aW9uJyk6Ci0gICAgICAg
IGZvciBuYW1lIGluIGNvbGl0ZW0uZnVuY3Rpb24uX19kaWN0X186Ci0gICAgICAgICAgICBtYXBw
ZWRfbmFtZXMuYWRkKG5hbWUpCi0KLSAgICBtYXBwaW5nID0gS2V5d29yZE1hcHBpbmcobWFwcGVk
X25hbWVzKQotICAgIGlmICIgIiBub3QgaW4ga2V5d29yZGV4cHI6Ci0gICAgICAgICMgc3BlY2lh
bCBjYXNlIHRvIGFsbG93IGZvciBzaW1wbGUgIi1rIHBhc3MiIGFuZCAiLWsgMS4zIgotICAgICAg
ICByZXR1cm4gbWFwcGluZ1trZXl3b3JkZXhwcl0KLSAgICBlbGlmIGtleXdvcmRleHByLnN0YXJ0
c3dpdGgoIm5vdCAiKSBhbmQgIiAiIG5vdCBpbiBrZXl3b3JkZXhwcls0Ol06Ci0gICAgICAgIHJl
dHVybiBub3QgbWFwcGluZ1trZXl3b3JkZXhwcls0Ol1dCi0gICAgcmV0dXJuIGV2YWwoa2V5d29y
ZGV4cHIsIHt9LCBtYXBwaW5nKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0g
ICAgY29uZmlnLl9vbGRfbWFya19jb25maWcgPSBNQVJLX0dFTi5fY29uZmlnCi0gICAgaWYgY29u
ZmlnLm9wdGlvbi5zdHJpY3Q6Ci0gICAgICAgIE1BUktfR0VOLl9jb25maWcgPSBjb25maWcKLQot
Ci1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgTUFSS19HRU4uX2NvbmZpZyA9
IGdldGF0dHIoY29uZmlnLCAnX29sZF9tYXJrX2NvbmZpZycsIE5vbmUpCi0KLQotY2xhc3MgTWFy
a0dlbmVyYXRvcjoKLSAgICAiIiIgRmFjdG9yeSBmb3IgOmNsYXNzOmBNYXJrRGVjb3JhdG9yYCBv
YmplY3RzIC0gZXhwb3NlZCBhcwotICAgIGEgYGBweXRlc3QubWFya2BgIHNpbmdsZXRvbiBpbnN0
YW5jZS4gIEV4YW1wbGU6OgotCi0gICAgICAgICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgICBAcHl0
ZXN0Lm1hcmsuc2xvd3Rlc3QKLSAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6Ci0gICAgICAg
ICAgICBwYXNzCi0KLSAgICB3aWxsIHNldCBhICdzbG93dGVzdCcgOmNsYXNzOmBNYXJrSW5mb2Ag
b2JqZWN0Ci0gICAgb24gdGhlIGBgdGVzdF9mdW5jdGlvbmBgIG9iamVjdC4gIiIiCi0gICAgX2Nv
bmZpZyA9IE5vbmUKLQotICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKLSAgICAgICAg
aWYgbmFtZVswXSA9PSAiXyI6Ci0gICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTWFy
a2VyIG5hbWUgbXVzdCBOT1Qgc3RhcnQgd2l0aCB1bmRlcnNjb3JlIikKLSAgICAgICAgaWYgc2Vs
Zi5fY29uZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5fY2hlY2sobmFtZSkKLSAg
ICAgICAgcmV0dXJuIE1hcmtEZWNvcmF0b3IoTWFyayhuYW1lLCAoKSwge30pKQotCi0gICAgZGVm
IF9jaGVjayhzZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgbmFtZSBp
biBzZWxmLl9tYXJrZXJzOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIHNlbGYuX21hcmtlcnMg
PSB2YWx1ZXMgPSBzZXQoKQotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9jb25maWcuZ2V0aW5p
KCJtYXJrZXJzIik6Ci0gICAgICAgICAgICBtYXJrZXIgPSBsaW5lLnNwbGl0KCI6IiwgMSlbMF0K
LSAgICAgICAgICAgIG1hcmtlciA9IG1hcmtlci5yc3RyaXAoKQotICAgICAgICAgICAgeCA9IG1h
cmtlci5zcGxpdCgiKCIsIDEpWzBdCi0gICAgICAgICAgICB2YWx1ZXMuYWRkKHgpCi0gICAgICAg
IGlmIG5hbWUgbm90IGluIHNlbGYuX21hcmtlcnM6Ci0gICAgICAgICAgICByYWlzZSBBdHRyaWJ1
dGVFcnJvcigiJXIgbm90IGEgcmVnaXN0ZXJlZCBtYXJrZXIiICUgKG5hbWUsKSkKLQotCi1kZWYg
aXN0ZXN0ZnVuYyhmdW5jKToKLSAgICByZXR1cm4gaGFzYXR0cihmdW5jLCAiX19jYWxsX18iKSBh
bmQgXAotICAgICAgICBnZXRhdHRyKGZ1bmMsICJfX25hbWVfXyIsICI8bGFtYmRhPiIpICE9ICI8
bGFtYmRhPiIKLQotCi1AYXR0ci5zKGZyb3plbj1UcnVlKQotY2xhc3MgTWFyayhvYmplY3QpOgot
ICAgIG5hbWUgPSBhdHRyLmliKCkKLSAgICBhcmdzID0gYXR0ci5pYigpCi0gICAga3dhcmdzID0g
YXR0ci5pYigpCi0KLSAgICBkZWYgY29tYmluZWRfd2l0aChzZWxmLCBvdGhlcik6Ci0gICAgICAg
IGFzc2VydCBzZWxmLm5hbWUgPT0gb3RoZXIubmFtZQotICAgICAgICByZXR1cm4gTWFyaygKLSAg
ICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5hcmdzICsgb3RoZXIuYXJncywKLSAgICAgICAgICAg
IGRpY3Qoc2VsZi5rd2FyZ3MsICoqb3RoZXIua3dhcmdzKSkKLQotCi1AYXR0ci5zCi1jbGFzcyBN
YXJrRGVjb3JhdG9yKG9iamVjdCk6Ci0gICAgIiIiIEEgZGVjb3JhdG9yIGZvciB0ZXN0IGZ1bmN0
aW9ucyBhbmQgdGVzdCBjbGFzc2VzLiAgV2hlbiBhcHBsaWVkCi0gICAgaXQgd2lsbCBjcmVhdGUg
OmNsYXNzOmBNYXJrSW5mb2Agb2JqZWN0cyB3aGljaCBtYXkgYmUKLSAgICA6cmVmOmByZXRyaWV2
ZWQgYnkgaG9va3MgYXMgaXRlbSBrZXl3b3JkcyA8ZXhjb250cm9sc2tpcD5gLgotICAgIE1hcmtE
ZWNvcmF0b3IgaW5zdGFuY2VzIGFyZSBvZnRlbiBjcmVhdGVkIGxpa2UgdGhpczo6Ci0KLSAgICAg
ICAgbWFyazEgPSBweXRlc3QubWFyay5OQU1FICAgICAgICAgICAgICAjIHNpbXBsZSBNYXJrRGVj
b3JhdG9yCi0gICAgICAgIG1hcmsyID0gcHl0ZXN0Lm1hcmsuTkFNRShuYW1lMT12YWx1ZSkgIyBw
YXJhbWV0cml6ZWQgTWFya0RlY29yYXRvcgotCi0gICAgYW5kIGNhbiB0aGVuIGJlIGFwcGxpZWQg
YXMgZGVjb3JhdG9ycyB0byB0ZXN0IGZ1bmN0aW9uczo6Ci0KLSAgICAgICAgQG1hcmsyCi0gICAg
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICBXaGVuIGEg
TWFya0RlY29yYXRvciBpbnN0YW5jZSBpcyBjYWxsZWQgaXQgZG9lcyB0aGUgZm9sbG93aW5nOgot
ICAgICAgMS4gSWYgY2FsbGVkIHdpdGggYSBzaW5nbGUgY2xhc3MgYXMgaXRzIG9ubHkgcG9zaXRp
b25hbCBhcmd1bWVudCBhbmQgbm8KLSAgICAgICAgIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVu
dHMsIGl0IGF0dGFjaGVzIGl0c2VsZiB0byB0aGUgY2xhc3Mgc28gaXQKLSAgICAgICAgIGdldHMg
YXBwbGllZCBhdXRvbWF0aWNhbGx5IHRvIGFsbCB0ZXN0IGNhc2VzIGZvdW5kIGluIHRoYXQgY2xh
c3MuCi0gICAgICAyLiBJZiBjYWxsZWQgd2l0aCBhIHNpbmdsZSBmdW5jdGlvbiBhcyBpdHMgb25s
eSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZAotICAgICAgICAgbm8gYWRkaXRpb25hbCBrZXl3b3Jk
IGFyZ3VtZW50cywgaXQgYXR0YWNoZXMgYSBNYXJrSW5mbyBvYmplY3QgdG8gdGhlCi0gICAgICAg
ICBmdW5jdGlvbiwgY29udGFpbmluZyBhbGwgdGhlIGFyZ3VtZW50cyBhbHJlYWR5IHN0b3JlZCBp
bnRlcm5hbGx5IGluCi0gICAgICAgICB0aGUgTWFya0RlY29yYXRvci4KLSAgICAgIDMuIFdoZW4g
Y2FsbGVkIGluIGFueSBvdGhlciBjYXNlLCBpdCBwZXJmb3JtcyBhICdmYWtlIGNvbnN0cnVjdGlv
bicgY2FsbCwKLSAgICAgICAgIGkuZS4gaXQgcmV0dXJucyBhIG5ldyBNYXJrRGVjb3JhdG9yIGlu
c3RhbmNlIHdpdGggdGhlIG9yaWdpbmFsCi0gICAgICAgICBNYXJrRGVjb3JhdG9yJ3MgY29udGVu
dCB1cGRhdGVkIHdpdGggdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhpcwotICAgICAgICAgY2Fs
bC4KLQotICAgIE5vdGU6IFRoZSBydWxlcyBhYm92ZSBwcmV2ZW50IE1hcmtEZWNvcmF0b3Igb2Jq
ZWN0cyBmcm9tIHN0b3Jpbmcgb25seSBhCi0gICAgc2luZ2xlIGZ1bmN0aW9uIG9yIGNsYXNzIHJl
ZmVyZW5jZSBhcyB0aGVpciBwb3NpdGlvbmFsIGFyZ3VtZW50IHdpdGggbm8KLSAgICBhZGRpdGlv
bmFsIGtleXdvcmQgb3IgcG9zaXRpb25hbCBhcmd1bWVudHMuCi0KLSAgICAiIiIKLQotICAgIG1h
cmsgPSBhdHRyLmliKHZhbGlkYXRvcj1hdHRyLnZhbGlkYXRvcnMuaW5zdGFuY2Vfb2YoTWFyaykp
Ci0KLSAgICBuYW1lID0gYWxpYXMoJ21hcmsubmFtZScpCi0gICAgYXJncyA9IGFsaWFzKCdtYXJr
LmFyZ3MnKQotICAgIGt3YXJncyA9IGFsaWFzKCdtYXJrLmt3YXJncycpCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgbWFya25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLm5hbWUgICMg
Zm9yIGJhY2t3YXJkLWNvbXBhdCAoMi40LjEgaGFkIHRoaXMgYXR0cikKLQotICAgIGRlZiBfX2Vx
X18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5tYXJrID09IG90aGVyLm1hcmsg
aWYgaXNpbnN0YW5jZShvdGhlciwgTWFya0RlY29yYXRvcikgZWxzZSBGYWxzZQotCi0gICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYXJrRGVjb3JhdG9yICVyPiIgJSAo
c2VsZi5tYXJrLCkKLQotICAgIGRlZiB3aXRoX2FyZ3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
LSAgICAgICAgIiIiIHJldHVybiBhIE1hcmtEZWNvcmF0b3Igd2l0aCBleHRyYSBhcmd1bWVudHMg
YWRkZWQKLQotICAgICAgICB1bmxpa2UgY2FsbCB0aGlzIGNhbiBiZSB1c2VkIGV2ZW4gaWYgdGhl
IHNvbGUgYXJndW1lbnQgaXMgYSBjYWxsYWJsZS9jbGFzcwotCi0gICAgICAgIDpyZXR1cm46IE1h
cmtEZWNvcmF0b3IKLSAgICAgICAgIiIiCi0KLSAgICAgICAgbWFyayA9IE1hcmsoc2VsZi5uYW1l
LCBhcmdzLCBrd2FyZ3MpCi0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLm1hcmsu
Y29tYmluZWRfd2l0aChtYXJrKSkKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKipr
d2FyZ3MpOgotICAgICAgICAiIiIgaWYgcGFzc2VkIGEgc2luZ2xlIGNhbGxhYmxlIGFyZ3VtZW50
OiBkZWNvcmF0ZSBpdCB3aXRoIG1hcmsgaW5mby4KLSAgICAgICAgICAgIG90aGVyd2lzZSBhZGQg
KmFyZ3MvKiprd2FyZ3MgaW4tcGxhY2UgdG8gbWFyayBpbmZvcm1hdGlvbi4gIiIiCi0gICAgICAg
IGlmIGFyZ3MgYW5kIG5vdCBrd2FyZ3M6Ci0gICAgICAgICAgICBmdW5jID0gYXJnc1swXQotICAg
ICAgICAgICAgaXNfY2xhc3MgPSBpbnNwZWN0LmlzY2xhc3MoZnVuYykKLSAgICAgICAgICAgIGlm
IGxlbihhcmdzKSA9PSAxIGFuZCAoaXN0ZXN0ZnVuYyhmdW5jKSBvciBpc19jbGFzcyk6Ci0gICAg
ICAgICAgICAgICAgaWYgaXNfY2xhc3M6Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlX21hcmso
ZnVuYywgc2VsZi5tYXJrKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5jLCBzZWxmLm1hcmspCi0gICAgICAgICAgICAg
ICAgICAgIHN0b3JlX21hcmsoZnVuYywgc2VsZi5tYXJrKQotICAgICAgICAgICAgICAgIHJldHVy
biBmdW5jCi0gICAgICAgIHJldHVybiBzZWxmLndpdGhfYXJncygqYXJncywgKiprd2FyZ3MpCi0K
LQotZGVmIGdldF91bnBhY2tlZF9tYXJrcyhvYmopOgotICAgICIiIgotICAgIG9idGFpbiB0aGUg
dW5wYWNrZWQgbWFya3MgdGhhdCBhcmUgc3RvcmVkIG9uIGEgb2JqZWN0Ci0gICAgIiIiCi0gICAg
bWFya19saXN0ID0gZ2V0YXR0cihvYmosICdweXRlc3RtYXJrJywgW10pCi0KLSAgICBpZiBub3Qg
aXNpbnN0YW5jZShtYXJrX2xpc3QsIGxpc3QpOgotICAgICAgICBtYXJrX2xpc3QgPSBbbWFya19s
aXN0XQotICAgIHJldHVybiBbCi0gICAgICAgIGdldGF0dHIobWFyaywgJ21hcmsnLCBtYXJrKSAg
IyB1bnBhY2sgTWFya0RlY29yYXRvcgotICAgICAgICBmb3IgbWFyayBpbiBtYXJrX2xpc3QKLSAg
ICBdCi0KLQotZGVmIHN0b3JlX21hcmsob2JqLCBtYXJrKToKLSAgICAiIiJzdG9yZSBhIE1hcmsg
b24gYSBvYmplY3QKLSAgICB0aGlzIGlzIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBNYXJrIGRlY2xh
cmF0aW9ucy9kZWNvcmF0b3JzIGNvcnJlY3RseQotICAgICIiIgotICAgIGFzc2VydCBpc2luc3Rh
bmNlKG1hcmssIE1hcmspLCBtYXJrCi0gICAgIyBhbHdheXMgcmVhc3NpZ24gbmFtZSB0byBhdm9p
ZCB1cGRhdGluZyBweXRlc3RtYXJrCi0gICAgIyBpbiBhIHJlZmVyZW5jZSB0aGF0IHdhcyBvbmx5
IGJvcnJvd2VkCi0gICAgb2JqLnB5dGVzdG1hcmsgPSBnZXRfdW5wYWNrZWRfbWFya3Mob2JqKSAr
IFttYXJrXQotCi0KLWRlZiBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVuYywgbWFyayk6Ci0gICAg
IiIiY3JlYXRlIHRoZSBsZWdhY3kgTWFya0luZm8gb2JqZWN0cyBhbmQgcHV0IHRoZW0gb250byB0
aGUgZnVuY3Rpb24KLSAgICAiIiIKLSAgICBpZiBub3QgaXNpbnN0YW5jZShtYXJrLCBNYXJrKToK
LSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJnb3Qge21hcmshcn0gaW5zdGVhZCBvZiBhIE1hcmsi
LmZvcm1hdChtYXJrPW1hcmspKQotICAgIGhvbGRlciA9IGdldGF0dHIoZnVuYywgbWFyay5uYW1l
LCBOb25lKQotICAgIGlmIGhvbGRlciBpcyBOb25lOgotICAgICAgICBob2xkZXIgPSBNYXJrSW5m
byhtYXJrKQotICAgICAgICBzZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSwgaG9sZGVyKQotICAgIGVs
c2U6Ci0gICAgICAgIGhvbGRlci5hZGRfbWFyayhtYXJrKQotCi0KLWNsYXNzIE1hcmtJbmZvKG9i
amVjdCk6Ci0gICAgIiIiIE1hcmtpbmcgb2JqZWN0IGNyZWF0ZWQgYnkgOmNsYXNzOmBNYXJrRGVj
b3JhdG9yYCBpbnN0YW5jZXMuICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hcmspOgot
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJrLCBNYXJrKSwgcmVwcihtYXJrKQotICAgICAg
ICBzZWxmLmNvbWJpbmVkID0gbWFyawotICAgICAgICBzZWxmLl9tYXJrcyA9IFttYXJrXQotCi0g
ICAgbmFtZSA9IGFsaWFzKCdjb21iaW5lZC5uYW1lJykKLSAgICBhcmdzID0gYWxpYXMoJ2NvbWJp
bmVkLmFyZ3MnKQotICAgIGt3YXJncyA9IGFsaWFzKCdjb21iaW5lZC5rd2FyZ3MnKQotCi0gICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYXJrSW5mbyB7MCFyfT4iLmZv
cm1hdChzZWxmLmNvbWJpbmVkKQotCi0gICAgZGVmIGFkZF9tYXJrKHNlbGYsIG1hcmspOgotICAg
ICAgICAiIiIgYWRkIGEgTWFya0luZm8gd2l0aCB0aGUgZ2l2ZW4gYXJncyBhbmQga3dhcmdzLiAi
IiIKLSAgICAgICAgc2VsZi5fbWFya3MuYXBwZW5kKG1hcmspCi0gICAgICAgIHNlbGYuY29tYmlu
ZWQgPSBzZWxmLmNvbWJpbmVkLmNvbWJpbmVkX3dpdGgobWFyaykKLQotICAgIGRlZiBfX2l0ZXJf
XyhzZWxmKToKLSAgICAgICAgIiIiIHlpZWxkIE1hcmtJbmZvIG9iamVjdHMgZWFjaCByZWxhdGlu
ZyB0byBhIG1hcmtpbmctY2FsbC4gIiIiCi0gICAgICAgIHJldHVybiBtYXAoTWFya0luZm8sIHNl
bGYuX21hcmtzKQotCi0KLU1BUktfR0VOID0gTWFya0dlbmVyYXRvcigpCi0KLQotZGVmIF9tYXJr
ZWQoZnVuYywgbWFyayk6Ci0gICAgIiIiIFJldHVybnMgVHJ1ZSBpZiA6ZnVuYzogaXMgYWxyZWFk
eSBtYXJrZWQgd2l0aCA6bWFyazosIEZhbHNlIG90aGVyd2lzZS4KLSAgICBUaGlzIGNhbiBoYXBw
ZW4gaWYgbWFya2VyIGlzIGFwcGxpZWQgdG8gY2xhc3MgYW5kIHRoZSB0ZXN0IGZpbGUgaXMKLSAg
ICBpbnZva2VkIG1vcmUgdGhhbiBvbmNlLgotICAgICIiIgotICAgIHRyeToKLSAgICAgICAgZnVu
Y19tYXJrID0gZ2V0YXR0cihmdW5jLCBtYXJrLm5hbWUpCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4gbWFyay5hcmdzID09IGZ1bmNf
bWFyay5hcmdzIGFuZCBtYXJrLmt3YXJncyA9PSBmdW5jX21hcmsua3dhcmdzCi0KLQotZGVmIHRy
YW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2QpOgotICAgICIiIgotICAgIHRoaXMgZnVu
Y3Rpb24gdHJhbnNmZXJzIGNsYXNzIGxldmVsIG1hcmtlcnMgYW5kIG1vZHVsZSBsZXZlbCBtYXJr
ZXJzCi0gICAgaW50byBmdW5jdGlvbiBsZXZlbCBtYXJraW5mbyBvYmplY3RzCi0KLSAgICB0aGlz
IGlzIHRoZSBtYWluIHJlYXNvbiB3aHkgbWFya3MgYXJlIHNvIGJyb2tlbgotICAgIHRoZSByZXNv
bHV0aW9uIHdpbGwgaW52b2x2ZSBwaGFzaW5nIG91dCBmdW5jdGlvbiBsZXZlbCBNYXJrSW5mbyBv
YmplY3RzCi0KLSAgICAiIiIKLSAgICBmb3Igb2JqIGluIChjbHMsIG1vZCk6Ci0gICAgICAgIGZv
ciBtYXJrIGluIGdldF91bnBhY2tlZF9tYXJrcyhvYmopOgotICAgICAgICAgICAgaWYgbm90IF9t
YXJrZWQoZnVuY29iaiwgbWFyayk6Ci0gICAgICAgICAgICAgICAgc3RvcmVfbGVnYWN5X21hcmtp
bmZvKGZ1bmNvYmosIG1hcmspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtl
eXBhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDBhZTU2MGYwNzAyYjEzNjBhMzA5ZDkxNDczMDI5MDNiMTE3
NGU2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjU4ICsw
LDAgQEAKLSIiIiBtb25rZXlwYXRjaGluZyBhbmQgbW9ja2luZyBmdW5jdGlvbmFsaXR5LiAgIiIi
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotaW1wb3J0IHJlCi1pbXBvcnQgc2l4
Ci1mcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUKLQotUkVfSU1QT1JUX0VSUk9S
X05BTUUgPSByZS5jb21waWxlKCJeTm8gbW9kdWxlIG5hbWVkICguKikkIikKLQotCi1AZml4dHVy
ZQotZGVmIG1vbmtleXBhdGNoKCk6Ci0gICAgIiIiVGhlIHJldHVybmVkIGBgbW9ua2V5cGF0Y2hg
YCBmaXh0dXJlIHByb3ZpZGVzIHRoZXNlCi0gICAgaGVscGVyIG1ldGhvZHMgdG8gbW9kaWZ5IG9i
amVjdHMsIGRpY3Rpb25hcmllcyBvciBvcy5lbnZpcm9uOjoKLQotICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9ua2V5
cGF0Y2guZGVsYXR0cihvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9ua2V5cGF0
Y2guc2V0aXRlbShtYXBwaW5nLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgbW9ua2V5cGF0Y2guZGVs
aXRlbShvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52
KG5hbWUsIHZhbHVlLCBwcmVwZW5kPUZhbHNlKQotICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYo
bmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9w
cmVwZW5kKHBhdGgpCi0gICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCi0KLSAgICBBbGwg
bW9kaWZpY2F0aW9ucyB3aWxsIGJlIHVuZG9uZSBhZnRlciB0aGUgcmVxdWVzdGluZwotICAgIHRl
c3QgZnVuY3Rpb24gb3IgZml4dHVyZSBoYXMgZmluaXNoZWQuIFRoZSBgYHJhaXNpbmdgYAotICAg
IHBhcmFtZXRlciBkZXRlcm1pbmVzIGlmIGEgS2V5RXJyb3Igb3IgQXR0cmlidXRlRXJyb3IKLSAg
ICB3aWxsIGJlIHJhaXNlZCBpZiB0aGUgc2V0L2RlbGV0aW9uIG9wZXJhdGlvbiBoYXMgbm8gdGFy
Z2V0LgotICAgICIiIgotICAgIG1wYXRjaCA9IE1vbmtleVBhdGNoKCkKLSAgICB5aWVsZCBtcGF0
Y2gKLSAgICBtcGF0Y2gudW5kbygpCi0KLQotZGVmIHJlc29sdmUobmFtZSk6Ci0gICAgIyBzaW1w
bGlmaWVkIGZyb20gem9wZS5kb3R0ZWRuYW1lCi0gICAgcGFydHMgPSBuYW1lLnNwbGl0KCcuJykK
LQotICAgIHVzZWQgPSBwYXJ0cy5wb3AoMCkKLSAgICBmb3VuZCA9IF9faW1wb3J0X18odXNlZCkK
LSAgICBmb3IgcGFydCBpbiBwYXJ0czoKLSAgICAgICAgdXNlZCArPSAnLicgKyBwYXJ0Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGZvdW5kID0gZ2V0YXR0cihmb3VuZCwgcGFydCkKLSAgICAg
ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIyB3ZSB1c2UgZXhwbGljaXQgdW4tbmVz
dGluZyBvZiB0aGUgaGFuZGxpbmcgYmxvY2sgaW4gb3JkZXIKLSAgICAgICAgIyB0byBhdm9pZCBu
ZXN0ZWQgZXhjZXB0aW9ucyBvbiBweXRob24gMwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBf
X2ltcG9ydF9fKHVzZWQpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBleDoKLSAgICAg
ICAgICAgICMgc3RyIGlzIHVzZWQgZm9yIHB5MiB2cyBweTMKLSAgICAgICAgICAgIGV4cGVjdGVk
ID0gc3RyKGV4KS5zcGxpdCgpWy0xXQotICAgICAgICAgICAgaWYgZXhwZWN0ZWQgPT0gdXNlZDoK
LSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByYWlzZSBJbXBvcnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydCBlcnJvciBp
biAlczogJXMnICUgKHVzZWQsIGV4KQotICAgICAgICAgICAgICAgICkKLSAgICAgICAgZm91bmQg
PSBhbm5vdGF0ZWRfZ2V0YXR0cihmb3VuZCwgcGFydCwgdXNlZCkKLSAgICByZXR1cm4gZm91bmQK
LQotCi1kZWYgYW5ub3RhdGVkX2dldGF0dHIob2JqLCBuYW1lLCBhbm4pOgotICAgIHRyeToKLSAg
ICAgICAgb2JqID0gZ2V0YXR0cihvYmosIG5hbWUpCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgotICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKLSAgICAgICAgICAgICclciBvYmplY3Qg
YXQgJXMgaGFzIG5vIGF0dHJpYnV0ZSAlcicgJSAoCi0gICAgICAgICAgICAgICAgdHlwZShvYmop
Ll9fbmFtZV9fLCBhbm4sIG5hbWUKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAgIHJldHVy
biBvYmoKLQotCi1kZWYgZGVyaXZlX2ltcG9ydHBhdGgoaW1wb3J0X3BhdGgsIHJhaXNpbmcpOgot
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGltcG9ydF9wYXRoLCBzaXguc3RyaW5nX3R5cGVzKSBvciAi
LiIgbm90IGluIGltcG9ydF9wYXRoOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm11c3QgYmUg
YWJzb2x1dGUgaW1wb3J0IHBhdGggc3RyaW5nLCBub3QgJXIiICUKLSAgICAgICAgICAgICAgICAg
ICAgICAgIChpbXBvcnRfcGF0aCwpKQotICAgIG1vZHVsZSwgYXR0ciA9IGltcG9ydF9wYXRoLnJz
cGxpdCgnLicsIDEpCi0gICAgdGFyZ2V0ID0gcmVzb2x2ZShtb2R1bGUpCi0gICAgaWYgcmFpc2lu
ZzoKLSAgICAgICAgYW5ub3RhdGVkX2dldGF0dHIodGFyZ2V0LCBhdHRyLCBhbm49bW9kdWxlKQot
ICAgIHJldHVybiBhdHRyLCB0YXJnZXQKLQotCi1jbGFzcyBOb3RzZXQ6Ci0gICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxub3RzZXQ+IgotCi0KLW5vdHNldCA9IE5vdHNl
dCgpCi0KLQotY2xhc3MgTW9ua2V5UGF0Y2g6Ci0gICAgIiIiIE9iamVjdCByZXR1cm5lZCBieSB0
aGUgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUga2VlcGluZyBhIHJlY29yZCBvZiBzZXRhdHRyL2l0
ZW0vZW52L3N5c3BhdGggY2hhbmdlcy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc2VsZi5fc2V0YXR0ciA9IFtdCi0gICAgICAgIHNlbGYuX3NldGl0ZW0gPSBb
XQotICAgICAgICBzZWxmLl9jd2QgPSBOb25lCi0gICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0g
Tm9uZQotCi0gICAgZGVmIHNldGF0dHIoc2VsZiwgdGFyZ2V0LCBuYW1lLCB2YWx1ZT1ub3RzZXQs
IHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBTZXQgYXR0cmlidXRlIHZhbHVlIG9uIHRhcmdl
dCwgbWVtb3JpemluZyB0aGUgb2xkIHZhbHVlLgotICAgICAgICBCeSBkZWZhdWx0IHJhaXNlIEF0
dHJpYnV0ZUVycm9yIGlmIHRoZSBhdHRyaWJ1dGUgZGlkIG5vdCBleGlzdC4KLQotICAgICAgICBG
b3IgY29udmVuaWVuY2UgeW91IGNhbiBzcGVjaWZ5IGEgc3RyaW5nIGFzIGBgdGFyZ2V0YGAgd2hp
Y2gKLSAgICAgICAgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRlZCBpbXBvcnQgcGF0aCwg
d2l0aCB0aGUgbGFzdCBwYXJ0Ci0gICAgICAgIGJlaW5nIHRoZSBhdHRyaWJ1dGUgbmFtZS4gIEV4
YW1wbGU6Ci0gICAgICAgIGBgbW9ua2V5cGF0Y2guc2V0YXR0cigib3MuZ2V0Y3dkIiwgbGFtYmRh
IHg6ICIvIilgYAotICAgICAgICB3b3VsZCBzZXQgdGhlIGBgZ2V0Y3dkYGAgZnVuY3Rpb24gb2Yg
dGhlIGBgb3NgYCBtb2R1bGUuCi0KLSAgICAgICAgVGhlIGBgcmFpc2luZ2BgIHZhbHVlIGRldGVy
bWluZXMgaWYgdGhlIHNldGF0dHIgc2hvdWxkIGZhaWwKLSAgICAgICAgaWYgdGhlIGF0dHJpYnV0
ZSBpcyBub3QgYWxyZWFkeSBwcmVzZW50IChkZWZhdWx0cyB0byBUcnVlCi0gICAgICAgIHdoaWNo
IG1lYW5zIGl0IHdpbGwgcmFpc2UpLgotICAgICAgICAiIiIKLSAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCi0gICAgICAgIGltcG9ydCBpbnNwZWN0Ci0KLSAgICAgICAgaWYgdmFsdWUg
aXMgbm90c2V0OgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodGFyZ2V0LCBzaXguc3Ry
aW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInVzZSBzZXRhdHRy
KHRhcmdldCwgbmFtZSwgdmFsdWUpIG9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNldGF0dHIodGFyZ2V0LCB2YWx1ZSkgd2l0aCB0YXJnZXQgYmVpbmcgYSBkb3R0ZWQgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHN0cmluZyIpCi0gICAgICAg
ICAgICB2YWx1ZSA9IG5hbWUKLSAgICAgICAgICAgIG5hbWUsIHRhcmdldCA9IGRlcml2ZV9pbXBv
cnRwYXRoKHRhcmdldCwgcmFpc2luZykKLQotICAgICAgICBvbGR2YWwgPSBnZXRhdHRyKHRhcmdl
dCwgbmFtZSwgbm90c2V0KQotICAgICAgICBpZiByYWlzaW5nIGFuZCBvbGR2YWwgaXMgbm90c2V0
OgotICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIiVyIGhhcyBubyBhdHRyaWJ1dGUg
JXIiICUgKHRhcmdldCwgbmFtZSkpCi0KLSAgICAgICAgIyBhdm9pZCBjbGFzcyBkZXNjcmlwdG9y
cyBsaWtlIHN0YXRpY21ldGhvZC9jbGFzc21ldGhvZAotICAgICAgICBpZiBpbnNwZWN0LmlzY2xh
c3ModGFyZ2V0KToKLSAgICAgICAgICAgIG9sZHZhbCA9IHRhcmdldC5fX2RpY3RfXy5nZXQobmFt
ZSwgbm90c2V0KQotICAgICAgICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgodGFyZ2V0LCBuYW1lLCBv
bGR2YWwpKQotICAgICAgICBzZXRhdHRyKHRhcmdldCwgbmFtZSwgdmFsdWUpCi0KLSAgICBkZWYg
ZGVsYXR0cihzZWxmLCB0YXJnZXQsIG5hbWU9bm90c2V0LCByYWlzaW5nPVRydWUpOgotICAgICAg
ICAiIiIgRGVsZXRlIGF0dHJpYnV0ZSBgYG5hbWVgYCBmcm9tIGBgdGFyZ2V0YGAsIGJ5IGRlZmF1
bHQgcmFpc2UKLSAgICAgICAgQXR0cmlidXRlRXJyb3IgaXQgdGhlIGF0dHJpYnV0ZSBkaWQgbm90
IHByZXZpb3VzbHkgZXhpc3QuCi0KLSAgICAgICAgSWYgbm8gYGBuYW1lYGAgaXMgc3BlY2lmaWVk
IGFuZCBgYHRhcmdldGBgIGlzIGEgc3RyaW5nCi0gICAgICAgIGl0IHdpbGwgYmUgaW50ZXJwcmV0
ZWQgYXMgYSBkb3R0ZWQgaW1wb3J0IHBhdGggd2l0aCB0aGUKLSAgICAgICAgbGFzdCBwYXJ0IGJl
aW5nIHRoZSBhdHRyaWJ1dGUgbmFtZS4KLQotICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQg
dG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKLSAgICAgICAgYXR0
cmlidXRlIGlzIG1pc3NpbmcuCi0gICAgICAgICIiIgotICAgICAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICAgICAgaWYgbmFtZSBpcyBub3RzZXQ6Ci0gICAgICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgICAgIHJh
aXNlIFR5cGVFcnJvcigidXNlIGRlbGF0dHIodGFyZ2V0LCBuYW1lKSBvciAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJkZWxhdHRyKHRhcmdldCkgd2l0aCB0YXJnZXQgYmVpbmcg
YSBkb3R0ZWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHN0cmlu
ZyIpCi0gICAgICAgICAgICBuYW1lLCB0YXJnZXQgPSBkZXJpdmVfaW1wb3J0cGF0aCh0YXJnZXQs
IHJhaXNpbmcpCi0KLSAgICAgICAgaWYgbm90IGhhc2F0dHIodGFyZ2V0LCBuYW1lKToKLSAgICAg
ICAgICAgIGlmIHJhaXNpbmc6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3Io
bmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3NldGF0dHIuYXBwZW5kKCh0
YXJnZXQsIG5hbWUsIGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpKSkKLSAgICAgICAgICAg
IGRlbGF0dHIodGFyZ2V0LCBuYW1lKQotCi0gICAgZGVmIHNldGl0ZW0oc2VsZiwgZGljLCBuYW1l
LCB2YWx1ZSk6Ci0gICAgICAgICIiIiBTZXQgZGljdGlvbmFyeSBlbnRyeSBgYG5hbWVgYCB0byB2
YWx1ZS4gIiIiCi0gICAgICAgIHNlbGYuX3NldGl0ZW0uYXBwZW5kKChkaWMsIG5hbWUsIGRpYy5n
ZXQobmFtZSwgbm90c2V0KSkpCi0gICAgICAgIGRpY1tuYW1lXSA9IHZhbHVlCi0KLSAgICBkZWYg
ZGVsaXRlbShzZWxmLCBkaWMsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBEZWxl
dGUgYGBuYW1lYGAgZnJvbSBkaWN0LiBSYWlzZSBLZXlFcnJvciBpZiBpdCBkb2Vzbid0IGV4aXN0
LgotCi0gICAgICAgIElmIGBgcmFpc2luZ2BgIGlzIHNldCB0byBGYWxzZSwgbm8gZXhjZXB0aW9u
IHdpbGwgYmUgcmFpc2VkIGlmIHRoZQotICAgICAgICBrZXkgaXMgbWlzc2luZy4KLSAgICAgICAg
IiIiCi0gICAgICAgIGlmIG5hbWUgbm90IGluIGRpYzoKLSAgICAgICAgICAgIGlmIHJhaXNpbmc6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IobmFtZSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuX3NldGl0ZW0uYXBwZW5kKChkaWMsIG5hbWUsIGRpYy5nZXQobmFtZSwg
bm90c2V0KSkpCi0gICAgICAgICAgICBkZWwgZGljW25hbWVdCi0KLSAgICBkZWYgc2V0ZW52KHNl
bGYsIG5hbWUsIHZhbHVlLCBwcmVwZW5kPU5vbmUpOgotICAgICAgICAiIiIgU2V0IGVudmlyb25t
ZW50IHZhcmlhYmxlIGBgbmFtZWBgIHRvIGBgdmFsdWVgYC4gIElmIGBgcHJlcGVuZGBgCi0gICAg
ICAgIGlzIGEgY2hhcmFjdGVyLCByZWFkIHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxl
IHZhbHVlCi0gICAgICAgIGFuZCBwcmVwZW5kIHRoZSBgYHZhbHVlYGAgYWRqb2luZWQgd2l0aCB0
aGUgYGBwcmVwZW5kYGAgY2hhcmFjdGVyLiIiIgotICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkK
LSAgICAgICAgaWYgcHJlcGVuZCBhbmQgbmFtZSBpbiBvcy5lbnZpcm9uOgotICAgICAgICAgICAg
dmFsdWUgPSB2YWx1ZSArIHByZXBlbmQgKyBvcy5lbnZpcm9uW25hbWVdCi0gICAgICAgIHNlbGYu
c2V0aXRlbShvcy5lbnZpcm9uLCBuYW1lLCB2YWx1ZSkKLQotICAgIGRlZiBkZWxlbnYoc2VsZiwg
bmFtZSwgcmFpc2luZz1UcnVlKToKLSAgICAgICAgIiIiIERlbGV0ZSBgYG5hbWVgYCBmcm9tIHRo
ZSBlbnZpcm9ubWVudC4gUmFpc2UgS2V5RXJyb3IgaXQgZG9lcyBub3QKLSAgICAgICAgZXhpc3Qu
Ci0KLSAgICAgICAgSWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZhbHNlLCBubyBleGNlcHRpb24g
d2lsbCBiZSByYWlzZWQgaWYgdGhlCi0gICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG1p
c3NpbmcuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmRlbGl0ZW0ob3MuZW52aXJvbiwgbmFt
ZSwgcmFpc2luZz1yYWlzaW5nKQotCi0gICAgZGVmIHN5c3BhdGhfcHJlcGVuZChzZWxmLCBwYXRo
KToKLSAgICAgICAgIiIiIFByZXBlbmQgYGBwYXRoYGAgdG8gYGBzeXMucGF0aGBgIGxpc3Qgb2Yg
aW1wb3J0IGxvY2F0aW9ucy4gIiIiCi0gICAgICAgIGlmIHNlbGYuX3NhdmVzeXNwYXRoIGlzIE5v
bmU6Ci0gICAgICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IHN5cy5wYXRoWzpdCi0gICAgICAg
IHN5cy5wYXRoLmluc2VydCgwLCBzdHIocGF0aCkpCi0KLSAgICBkZWYgY2hkaXIoc2VsZiwgcGF0
aCk6Ci0gICAgICAgICIiIiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8g
dGhlIHNwZWNpZmllZCBwYXRoLgotICAgICAgICBQYXRoIGNhbiBiZSBhIHN0cmluZyBvciBhIHB5
LnBhdGgubG9jYWwgb2JqZWN0LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fY3dkIGlz
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9jd2QgPSBvcy5nZXRjd2QoKQotICAgICAgICBpZiBo
YXNhdHRyKHBhdGgsICJjaGRpciIpOgotICAgICAgICAgICAgcGF0aC5jaGRpcigpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBvcy5jaGRpcihwYXRoKQotCi0gICAgZGVmIHVuZG8oc2VsZik6
Ci0gICAgICAgICIiIiBVbmRvIHByZXZpb3VzIGNoYW5nZXMuICBUaGlzIGNhbGwgY29uc3VtZXMg
dGhlCi0gICAgICAgIHVuZG8gc3RhY2suIENhbGxpbmcgaXQgYSBzZWNvbmQgdGltZSBoYXMgbm8g
ZWZmZWN0IHVubGVzcwotICAgICAgICB5b3UgZG8gbW9yZSBtb25rZXlwYXRjaGluZyBhZnRlciB0
aGUgdW5kbyBjYWxsLgotCi0gICAgICAgIFRoZXJlIGlzIGdlbmVyYWxseSBubyBuZWVkIHRvIGNh
bGwgYHVuZG8oKWAsIHNpbmNlIGl0IGlzCi0gICAgICAgIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGR1
cmluZyB0ZWFyLWRvd24uCi0KLSAgICAgICAgTm90ZSB0aGF0IHRoZSBzYW1lIGBtb25rZXlwYXRj
aGAgZml4dHVyZSBpcyB1c2VkIGFjcm9zcyBhCi0gICAgICAgIHNpbmdsZSB0ZXN0IGZ1bmN0aW9u
IGludm9jYXRpb24uIElmIGBtb25rZXlwYXRjaGAgaXMgdXNlZCBib3RoIGJ5Ci0gICAgICAgIHRo
ZSB0ZXN0IGZ1bmN0aW9uIGl0c2VsZiBhbmQgb25lIG9mIHRoZSB0ZXN0IGZpeHR1cmVzLAotICAg
ICAgICBjYWxsaW5nIGB1bmRvKClgIHdpbGwgdW5kbyBhbGwgb2YgdGhlIGNoYW5nZXMgbWFkZSBp
bgotICAgICAgICBib3RoIGZ1bmN0aW9ucy4KLSAgICAgICAgIiIiCi0gICAgICAgIGZvciBvYmos
IG5hbWUsIHZhbHVlIGluIHJldmVyc2VkKHNlbGYuX3NldGF0dHIpOgotICAgICAgICAgICAgaWYg
dmFsdWUgaXMgbm90IG5vdHNldDoKLSAgICAgICAgICAgICAgICBzZXRhdHRyKG9iaiwgbmFtZSwg
dmFsdWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRlbGF0dHIob2JqLCBu
YW1lKQotICAgICAgICBzZWxmLl9zZXRhdHRyWzpdID0gW10KLSAgICAgICAgZm9yIGRpY3Rpb25h
cnksIG5hbWUsIHZhbHVlIGluIHJldmVyc2VkKHNlbGYuX3NldGl0ZW0pOgotICAgICAgICAgICAg
aWYgdmFsdWUgaXMgbm90c2V0OgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICAgICAgZGVsIGRpY3Rpb25hcnlbbmFtZV0KLSAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJy
b3I6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MgICMgd2FzIGFscmVhZHkgZGVsZXRlZCwgc28g
d2UgaGF2ZSB0aGUgZGVzaXJlZCBzdGF0ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBkaWN0aW9uYXJ5W25hbWVdID0gdmFsdWUKLSAgICAgICAgc2VsZi5fc2V0aXRlbVs6XSA9
IFtdCi0gICAgICAgIGlmIHNlbGYuX3NhdmVzeXNwYXRoIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgc3lzLnBhdGhbOl0gPSBzZWxmLl9zYXZlc3lzcGF0aAotICAgICAgICAgICAgc2VsZi5fc2F2
ZXN5c3BhdGggPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5fY3dkIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgb3MuY2hkaXIoc2VsZi5fY3dkKQotICAgICAgICAgICAgc2VsZi5fY3dkID0gTm9u
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3Qvbm9kZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkM2FmMmNl
NjdjODk1OGY5NTMzNTI5NDQ0ZWIyYmYyYjFiNzc5OTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVNFUCA9ICIvIgotCi0KLWRlZiBfc3BsaXRub2Rl
KG5vZGVpZCk6Ci0gICAgIiIiU3BsaXQgYSBub2RlaWQgaW50byBjb25zdGl0dWVudCAncGFydHMn
LgotCi0gICAgTm9kZSBJRHMgYXJlIHN0cmluZ3MsIGFuZCBjYW4gYmUgdGhpbmdzIGxpa2U6Ci0g
ICAgICAgICcnCi0gICAgICAgICd0ZXN0aW5nL2NvZGUnCi0gICAgICAgICd0ZXN0aW5nL2NvZGUv
dGVzdF9leGNpbmZvLnB5JwotICAgICAgICAndGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weTo6
VGVzdEZvcm1hdHRlZEV4Y2luZm86OigpJwotCi0gICAgUmV0dXJuIHZhbHVlcyBhcmUgbGlzdHMg
ZS5nLgotICAgICAgICBbXQotICAgICAgICBbJ3Rlc3RpbmcnLCAnY29kZSddCi0gICAgICAgIFsn
dGVzdGluZycsICdjb2RlJywgJ3Rlc3RfZXhjaW5mby5weSddCi0gICAgICAgIFsndGVzdGluZycs
ICdjb2RlJywgJ3Rlc3RfZXhjaW5mby5weScsICdUZXN0Rm9ybWF0dGVkRXhjaW5mbycsICcoKSdd
Ci0gICAgIiIiCi0gICAgaWYgbm9kZWlkID09ICcnOgotICAgICAgICAjIElmIHRoZXJlIGlzIG5v
IHJvb3Qgbm9kZSBhdCBhbGwsIHJldHVybiBhbiBlbXB0eSBsaXN0IHNvIHRoZSBjYWxsZXIncyBs
b2dpYyBjYW4gcmVtYWluIHNhbmUKLSAgICAgICAgcmV0dXJuIFtdCi0gICAgcGFydHMgPSBub2Rl
aWQuc3BsaXQoU0VQKQotICAgICMgUmVwbGFjZSBzaW5nbGUgbGFzdCBlbGVtZW50ICd0ZXN0X2Zv
by5weTo6QmFyOjooKScgd2l0aCBtdWx0aXBsZSBlbGVtZW50cyAndGVzdF9mb28ucHknLCAnQmFy
JywgJygpJwotICAgIHBhcnRzWy0xOl0gPSBwYXJ0c1stMV0uc3BsaXQoIjo6IikKLSAgICByZXR1
cm4gcGFydHMKLQotCi1kZWYgaXNjaGlsZG5vZGUoYmFzZWlkLCBub2RlaWQpOgotICAgICIiIlJl
dHVybiBUcnVlIGlmIHRoZSBub2RlaWQgaXMgYSBjaGlsZCBub2RlIG9mIHRoZSBiYXNlaWQuCi0K
LSAgICBFLmcuICdmb28vYmFyOjpCYXo6OigpJyBpcyBhIGNoaWxkIG9mICdmb28nLCAnZm9vL2Jh
cicgYW5kICdmb28vYmFyOjpCYXonLCBidXQgbm90IG9mICdmb28vYmxvcnAnCi0gICAgIiIiCi0g
ICAgYmFzZV9wYXJ0cyA9IF9zcGxpdG5vZGUoYmFzZWlkKQotICAgIG5vZGVfcGFydHMgPSBfc3Bs
aXRub2RlKG5vZGVpZCkKLSAgICBpZiBsZW4obm9kZV9wYXJ0cykgPCBsZW4oYmFzZV9wYXJ0cyk6
Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBub2RlX3BhcnRzWzpsZW4oYmFzZV9w
YXJ0cyldID09IGJhc2VfcGFydHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9z
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzgxNTQyZWFkZjM3N2QxZDNhZGRmYWFmZWE1ZDY0YTg4MzI5OGEwMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L25vc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0iIiIgcnVuIHRlc3Qg
c3VpdGVzIHdyaXR0ZW4gZm9yIG5vc2UuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgc3lzCi0KLWZy
b20gX3B5dGVzdCBpbXBvcnQgdW5pdHRlc3QsIHJ1bm5lciwgcHl0aG9uCi1mcm9tIF9weXRlc3Qu
Y29uZmlnIGltcG9ydCBob29raW1wbAotCi0KLWRlZiBnZXRfc2tpcF9leGNlcHRpb25zKCk6Ci0g
ICAgc2tpcF9jbGFzc2VzID0gc2V0KCkKLSAgICBmb3IgbW9kdWxlX25hbWUgaW4gKCd1bml0dGVz
dCcsICd1bml0dGVzdDInLCAnbm9zZScpOgotICAgICAgICBtb2QgPSBzeXMubW9kdWxlcy5nZXQo
bW9kdWxlX25hbWUpCi0gICAgICAgIGlmIGhhc2F0dHIobW9kLCAnU2tpcFRlc3QnKToKLSAgICAg
ICAgICAgIHNraXBfY2xhc3Nlcy5hZGQobW9kLlNraXBUZXN0KQotICAgIHJldHVybiB0dXBsZShz
a2lwX2NsYXNzZXMpCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2Fs
bCk6Ci0gICAgaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShn
ZXRfc2tpcF9leGNlcHRpb25zKCkpOgotICAgICAgICAjIGxldCdzIHN1YnN0aXR1dGUgdGhlIGV4
Y2luZm8gd2l0aCBhIHB5dGVzdC5za2lwIG9uZQotICAgICAgICBjYWxsMiA9IGNhbGwuX19jbGFz
c19fKAotICAgICAgICAgICAgbGFtYmRhOiBydW5uZXIuc2tpcChzdHIoY2FsbC5leGNpbmZvLnZh
bHVlKSksIGNhbGwud2hlbikKLSAgICAgICAgY2FsbC5leGNpbmZvID0gY2FsbDIuZXhjaW5mbwot
Ci0KLUBob29raW1wbCh0cnlsYXN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRl
bSk6Ci0gICAgaWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICAgICBpZiBpc2lu
c3RhbmNlKGl0ZW0ucGFyZW50LCBweXRob24uR2VuZXJhdG9yKToKLSAgICAgICAgICAgIGdlbiA9
IGl0ZW0ucGFyZW50Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihnZW4sICdfbm9zZWdlbnNl
dHVwJyk6Ci0gICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4ub2JqLCAnc2V0dXAnKQot
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZ2VuLnBhcmVudCwgcHl0aG9uLkluc3RhbmNl
KToKLSAgICAgICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4ucGFyZW50Lm9iaiwgJ3Nl
dHVwJykKLSAgICAgICAgICAgICAgICBnZW4uX25vc2VnZW5zZXR1cCA9IFRydWUKLSAgICAgICAg
aWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICdzZXR1cCcpOgotICAgICAgICAgICAgIyBj
YWxsIG1vZHVsZSBsZXZlbCBzZXR1cCBpZiB0aGVyZSBpcyBubyBvYmplY3QgbGV2ZWwgb25lCi0g
ICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwgJ3NldHVwJykKLSAgICAg
ICAgIyBYWFggdGhpcyBpbXBsaWVzIHdlIG9ubHkgY2FsbCB0ZWFyZG93biB3aGVuIHNldHVwIHdv
cmtlZAotICAgICAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVyKChsYW1i
ZGE6IHRlYXJkb3duX25vc2UoaXRlbSkpLCBpdGVtKQotCi0KLWRlZiB0ZWFyZG93bl9ub3NlKGl0
ZW0pOgotICAgIGlmIGlzX3BvdGVudGlhbF9ub3NldGVzdChpdGVtKToKLSAgICAgICAgaWYgbm90
IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICd0ZWFyZG93bicpOgotICAgICAgICAgICAgY2FsbF9v
cHRpb25hbChpdGVtLnBhcmVudC5vYmosICd0ZWFyZG93bicpCi0gICAgICAgICMgaWYgaGFzYXR0
cihpdGVtLnBhcmVudCwgJ19ub3NlZ2Vuc2V0dXAnKToKLSAgICAgICAgIyAgICAjY2FsbF9vcHRp
b25hbChpdGVtLl9ub3NlZ2Vuc2V0dXAsICd0ZWFyZG93bicpCi0gICAgICAgICMgICAgZGVsIGl0
ZW0ucGFyZW50Ll9ub3NlZ2Vuc2V0dXAKLQotCi1kZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBv
cnQoY29sbGVjdG9yKToKLSAgICBpZiBpc2luc3RhbmNlKGNvbGxlY3RvciwgcHl0aG9uLkdlbmVy
YXRvcik6Ci0gICAgICAgIGNhbGxfb3B0aW9uYWwoY29sbGVjdG9yLm9iaiwgJ3NldHVwJykKLQot
Ci1kZWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICMgZXh0cmEgY2hlY2sgbmVl
ZGVkIHNpbmNlIHdlIGRvIG5vdCBkbyBub3NlIHN0eWxlIHNldHVwL3RlYXJkb3duCi0gICAgIyBv
biBkaXJlY3QgdW5pdHRlc3Qgc3R5bGUgY2xhc3NlcwotICAgIHJldHVybiBpc2luc3RhbmNlKGl0
ZW0sIHB5dGhvbi5GdW5jdGlvbikgYW5kIFwKLSAgICAgICAgbm90IGlzaW5zdGFuY2UoaXRlbSwg
dW5pdHRlc3QuVGVzdENhc2VGdW5jdGlvbikKLQotCi1kZWYgY2FsbF9vcHRpb25hbChvYmosIG5h
bWUpOgotICAgIG1ldGhvZCA9IGdldGF0dHIob2JqLCBuYW1lLCBOb25lKQotICAgIGlzZml4dHVy
ZSA9IGhhc2F0dHIobWV0aG9kLCAiX3B5dGVzdGZpeHR1cmVmdW5jdGlvbiIpCi0gICAgaWYgbWV0
aG9kIGlzIG5vdCBOb25lIGFuZCBub3QgaXNmaXh0dXJlIGFuZCBjYWxsYWJsZShtZXRob2QpOgot
ICAgICAgICAjIElmIHRoZXJlJ3MgYW55IHByb2JsZW1zIGFsbG93IHRoZSBleGNlcHRpb24gdG8g
cmFpc2UgcmF0aGVyIHRoYW4KLSAgICAgICAgIyBzaWxlbnRseSBpZ25vcmluZyB0aGVtCi0gICAg
ICAgIG1ldGhvZCgpCi0gICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L291dGNvbWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21lcy5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YwYzE4ZmE2YzFiNDg3ODNhM2E5ZDNhNjQ1
ZDNlMjQ0ZDY3M2MxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTQ3ICswLDAgQEAKLSIiIgotZXhjZXB0aW9uIGNsYXNzZXMgYW5kIGNvbnN0YW50cyBoYW5kbGlu
ZyB0ZXN0IG91dGNvbWVzCi1hcyB3ZWxsIGFzIGZ1bmN0aW9ucyBjcmVhdGluZyB0aGVtCi0iIiIK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KLWltcG9ydCBweQotaW1wb3J0IHN5cwotCi0KLWNsYXNzIE91dGNvbWVFeGNlcHRp
b24oQmFzZUV4Y2VwdGlvbik6Ci0gICAgIiIiIE91dGNvbWVFeGNlcHRpb24gYW5kIGl0cyBzdWJj
bGFzcyBpbnN0YW5jZXMgaW5kaWNhdGUgYW5kCi0gICAgICAgIGNvbnRhaW4gaW5mbyBhYm91dCB0
ZXN0IGFuZCBjb2xsZWN0aW9uIG91dGNvbWVzLgotICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBtc2c9Tm9uZSwgcHl0cmFjZT1UcnVlKToKLSAgICAgICAgQmFzZUV4Y2VwdGlvbi5fX2lu
aXRfXyhzZWxmLCBtc2cpCi0gICAgICAgIHNlbGYubXNnID0gbXNnCi0gICAgICAgIHNlbGYucHl0
cmFjZSA9IHB5dHJhY2UKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgaWYgc2Vs
Zi5tc2c6Ci0gICAgICAgICAgICB2YWwgPSBzZWxmLm1zZwotICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZSh2YWwsIGJ5dGVzKToKLSAgICAgICAgICAgICAgICB2YWwgPSBweS5fYnVpbHRpbi5fdG90
ZXh0KHZhbCwgZXJyb3JzPSdyZXBsYWNlJykKLSAgICAgICAgICAgIHJldHVybiB2YWwKLSAgICAg
ICAgcmV0dXJuICI8JXMgaW5zdGFuY2U+IiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywpCi0g
ICAgX19zdHJfXyA9IF9fcmVwcl9fCi0KLQotVEVTVF9PVVRDT01FID0gKE91dGNvbWVFeGNlcHRp
b24sIEV4Y2VwdGlvbikKLQotCi1jbGFzcyBTa2lwcGVkKE91dGNvbWVFeGNlcHRpb24pOgotICAg
ICMgWFhYIGhhY2tpc2g6IG9uIDNrIHdlIGZha2UgdG8gbGl2ZSBpbiB0aGUgYnVpbHRpbnMKLSAg
ICAjIGluIG9yZGVyIHRvIGhhdmUgU2tpcHBlZCBleGNlcHRpb24gcHJpbnRpbmcgc2hvcnRlci9u
aWNlcgotICAgIF9fbW9kdWxlX18gPSAnYnVpbHRpbnMnCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbXNnPU5vbmUsIHB5dHJhY2U9VHJ1ZSwgYWxsb3dfbW9kdWxlX2xldmVsPUZhbHNlKToKLSAg
ICAgICAgT3V0Y29tZUV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtc2c9bXNnLCBweXRyYWNlPXB5
dHJhY2UpCi0gICAgICAgIHNlbGYuYWxsb3dfbW9kdWxlX2xldmVsID0gYWxsb3dfbW9kdWxlX2xl
dmVsCi0KLQotY2xhc3MgRmFpbGVkKE91dGNvbWVFeGNlcHRpb24pOgotICAgICIiIiByYWlzZWQg
ZnJvbSBhbiBleHBsaWNpdCBjYWxsIHRvIHB5dGVzdC5mYWlsKCkgIiIiCi0gICAgX19tb2R1bGVf
XyA9ICdidWlsdGlucycKLQotCi1jbGFzcyBFeGl0KEtleWJvYXJkSW50ZXJydXB0KToKLSAgICAi
IiIgcmFpc2VkIGZvciBpbW1lZGlhdGUgcHJvZ3JhbSBleGl0cyAobm8gdHJhY2ViYWNrcy9zdW1t
YXJpZXMpIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz0idW5rbm93biByZWFzb24iKToK
LSAgICAgICAgc2VsZi5tc2cgPSBtc2cKLSAgICAgICAgS2V5Ym9hcmRJbnRlcnJ1cHQuX19pbml0
X18oc2VsZiwgbXNnKQotCi0jIGV4cG9zZWQgaGVscGVyIG1ldGhvZHMKLQotCi1kZWYgZXhpdCht
c2cpOgotICAgICIiIiBleGl0IHRlc3RpbmcgcHJvY2VzcyBhcyBpZiBLZXlib2FyZEludGVycnVw
dCB3YXMgdHJpZ2dlcmVkLiAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICBy
YWlzZSBFeGl0KG1zZykKLQotCi1leGl0LkV4Y2VwdGlvbiA9IEV4aXQKLQotCi1kZWYgc2tpcCht
c2c9IiIsICoqa3dhcmdzKToKLSAgICAiIiIgc2tpcCBhbiBleGVjdXRpbmcgdGVzdCB3aXRoIHRo
ZSBnaXZlbiBtZXNzYWdlLiAgTm90ZTogaXQncyB1c3VhbGx5Ci0gICAgYmV0dGVyIHRvIHVzZSB0
aGUgcHl0ZXN0Lm1hcmsuc2tpcGlmIG1hcmtlciB0byBkZWNsYXJlIGEgdGVzdCB0byBiZQotICAg
IHNraXBwZWQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zIGxpa2UgbWlzbWF0Y2hpbmcgcGxhdGZv
cm1zIG9yCi0gICAgZGVwZW5kZW5jaWVzLiAgU2VlIHRoZSBweXRlc3Rfc2tpcHBpbmcgcGx1Z2lu
IGZvciBkZXRhaWxzLgotCi0gICAgOmt3YXJnIGJvb2wgYWxsb3dfbW9kdWxlX2xldmVsOiBhbGxv
d3MgdGhpcyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYXQKLSAgICAgICAgbW9kdWxlIGxldmVsLCBz
a2lwcGluZyB0aGUgcmVzdCBvZiB0aGUgbW9kdWxlLiBEZWZhdWx0IHRvIEZhbHNlLgotICAgICIi
IgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIGFsbG93X21vZHVsZV9sZXZlbCA9
IGt3YXJncy5wb3AoJ2FsbG93X21vZHVsZV9sZXZlbCcsIEZhbHNlKQotICAgIGlmIGt3YXJnczoK
LSAgICAgICAga2V5cyA9IFtrIGZvciBrIGluIGt3YXJncy5rZXlzKCldCi0gICAgICAgIHJhaXNl
IFR5cGVFcnJvcigndW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50czogezB9Jy5mb3JtYXQoa2V5
cykpCi0gICAgcmFpc2UgU2tpcHBlZChtc2c9bXNnLCBhbGxvd19tb2R1bGVfbGV2ZWw9YWxsb3df
bW9kdWxlX2xldmVsKQotCi0KLXNraXAuRXhjZXB0aW9uID0gU2tpcHBlZAotCi0KLWRlZiBmYWls
KG1zZz0iIiwgcHl0cmFjZT1UcnVlKToKLSAgICAiIiIgZXhwbGljaXRseSBmYWlsIGFuIGN1cnJl
bnRseS1leGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBNZXNzYWdlLgotCi0gICAgOmFyZyBw
eXRyYWNlOiBpZiBmYWxzZSB0aGUgbXNnIHJlcHJlc2VudHMgdGhlIGZ1bGwgZmFpbHVyZSBpbmZv
cm1hdGlvbgotICAgICAgICAgICAgICAgICAgYW5kIG5vIHB5dGhvbiB0cmFjZWJhY2sgd2lsbCBi
ZSByZXBvcnRlZC4KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICBy
YWlzZSBGYWlsZWQobXNnPW1zZywgcHl0cmFjZT1weXRyYWNlKQotCi0KLWZhaWwuRXhjZXB0aW9u
ID0gRmFpbGVkCi0KLQotY2xhc3MgWEZhaWxlZChmYWlsLkV4Y2VwdGlvbik6Ci0gICAgIiIiIHJh
aXNlZCBmcm9tIGFuIGV4cGxpY2l0IGNhbGwgdG8gcHl0ZXN0LnhmYWlsKCkgIiIiCi0KLQotZGVm
IHhmYWlsKHJlYXNvbj0iIik6Ci0gICAgIiIiIHhmYWlsIGFuIGV4ZWN1dGluZyB0ZXN0IG9yIHNl
dHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uIiIiCi0gICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCi0gICAgcmFpc2UgWEZhaWxlZChyZWFzb24pCi0KLQoteGZhaWwuRXhjZXB0
aW9uID0gWEZhaWxlZAotCi0KLWRlZiBpbXBvcnRvcnNraXAobW9kbmFtZSwgbWludmVyc2lvbj1O
b25lKToKLSAgICAiIiIgcmV0dXJuIGltcG9ydGVkIG1vZHVsZSBpZiBpdCBoYXMgYXQgbGVhc3Qg
Im1pbnZlcnNpb24iIGFzIGl0cwotICAgIF9fdmVyc2lvbl9fIGF0dHJpYnV0ZS4gIElmIG5vIG1p
bnZlcnNpb24gaXMgc3BlY2lmaWVkIHRoZSBhIHNraXAKLSAgICBpcyBvbmx5IHRyaWdnZXJlZCBp
ZiB0aGUgbW9kdWxlIGNhbiBub3QgYmUgaW1wb3J0ZWQuCi0gICAgIiIiCi0gICAgaW1wb3J0IHdh
cm5pbmdzCi0gICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgY29tcGlsZShtb2RuYW1l
LCAnJywgJ2V2YWwnKSAgIyB0byBjYXRjaCBzeW50YXhlcnJvcnMKLSAgICBzaG91bGRfc2tpcCA9
IEZhbHNlCi0KLSAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6Ci0gICAgICAgICMg
bWFrZSBzdXJlIHRvIGlnbm9yZSBJbXBvcnRXYXJuaW5ncyB0aGF0IG1pZ2h0IGhhcHBlbiBiZWNh
dXNlCi0gICAgICAgICMgb2YgZXhpc3RpbmcgZGlyZWN0b3JpZXMgd2l0aCB0aGUgc2FtZSBuYW1l
IHdlJ3JlIHRyeWluZyB0bwotICAgICAgICAjIGltcG9ydCBidXQgd2l0aG91dCBhIF9faW5pdF9f
LnB5IGZpbGUKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdpZ25vcmUnKQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCi0gICAgICAgIGV4Y2VwdCBJ
bXBvcnRFcnJvcjoKLSAgICAgICAgICAgICMgRG8gbm90IHJhaXNlIGNoYWluZWQgZXhjZXB0aW9u
IGhlcmUoIzE0ODUpCi0gICAgICAgICAgICBzaG91bGRfc2tpcCA9IFRydWUKLSAgICBpZiBzaG91
bGRfc2tpcDoKLSAgICAgICAgcmFpc2UgU2tpcHBlZCgiY291bGQgbm90IGltcG9ydCAlciIgJSAo
bW9kbmFtZSwpLCBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKLSAgICBtb2QgPSBzeXMubW9kdWxl
c1ttb2RuYW1lXQotICAgIGlmIG1pbnZlcnNpb24gaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIG1v
ZAotICAgIHZlcmF0dHIgPSBnZXRhdHRyKG1vZCwgJ19fdmVyc2lvbl9fJywgTm9uZSkKLSAgICBp
ZiBtaW52ZXJzaW9uIGlzIG5vdCBOb25lOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmcm9t
IHBrZ19yZXNvdXJjZXMgaW1wb3J0IHBhcnNlX3ZlcnNpb24gYXMgcHYKLSAgICAgICAgZXhjZXB0
IEltcG9ydEVycm9yOgotICAgICAgICAgICAgcmFpc2UgU2tpcHBlZCgid2UgaGF2ZSBhIHJlcXVp
cmVkIHZlcnNpb24gZm9yICVyIGJ1dCBjYW4gbm90IGltcG9ydCAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICJwa2dfcmVzb3VyY2VzIHRvIHBhcnNlIHZlcnNpb24gc3RyaW5ncy4iICUgKG1v
ZG5hbWUsKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfbW9kdWxlX2xldmVsPVRy
dWUpCi0gICAgICAgIGlmIHZlcmF0dHIgaXMgTm9uZSBvciBwdih2ZXJhdHRyKSA8IHB2KG1pbnZl
cnNpb24pOgotICAgICAgICAgICAgcmFpc2UgU2tpcHBlZCgibW9kdWxlICVyIGhhcyBfX3ZlcnNp
b25fXyAlciwgcmVxdWlyZWQgaXM6ICVyIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
bW9kbmFtZSwgdmVyYXR0ciwgbWludmVyc2lvbiksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQot
ICAgIHJldHVybiBtb2QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmluLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiNTg4YjAyMWIxMjQyMmY1NTA3YzliZGZhNTExZjYxZjNkMDI4MWY5Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcGFzdGViaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotIiIiIHN1
Ym1pdCBmYWlsdXJlIG9yIHRlc3Qgc2Vzc2lvbiBpbmZvcm1hdGlvbiB0byBhIHBhc3RlYmluIHNl
cnZpY2UuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgc2l4Ci1pbXBvcnQg
c3lzCi1pbXBvcnQgdGVtcGZpbGUKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgot
ICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciKQotICAgIGdy
b3VwLl9hZGRvcHRpb24oJy0tcGFzdGViaW4nLCBtZXRhdmFyPSJtb2RlIiwKLSAgICAgICAgICAg
ICAgICAgICAgIGFjdGlvbj0nc3RvcmUnLCBkZXN0PSJwYXN0ZWJpbiIsIGRlZmF1bHQ9Tm9uZSwK
LSAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydmYWlsZWQnLCAnYWxsJ10sCi0gICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJzZW5kIGZhaWxlZHxhbGwgaW5mbyB0byBicGFzdGUubmV0IHBh
c3RlYmluIHNlcnZpY2UuIikKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKLWRl
ZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5wYXN0ZWJp
biA9PSAiYWxsIjoKLSAgICAgICAgdHIgPSBjb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4o
J3Rlcm1pbmFscmVwb3J0ZXInKQotICAgICAgICAjIGlmIG5vIHRlcm1pbmFsIHJlcG9ydGVyIHBs
dWdpbiBpcyBwcmVzZW50LCBub3RoaW5nIHdlIGNhbiBkbyBoZXJlOwotICAgICAgICAjIHRoaXMg
Y2FuIGhhcHBlbiB3aGVuIHRoaXMgZnVuY3Rpb24gZXhlY3V0ZXMgaW4gYSBzbGF2ZSBub2RlCi0g
ICAgICAgICMgd2hlbiB1c2luZyBweXRlc3QteGRpc3QsIGZvciBleGFtcGxlCi0gICAgICAgIGlm
IHRyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyBwYXN0ZWJpbiBmaWxlIHdpbGwgYmUgdXRm
LTggZW5jb2RlZCBiaW5hcnkgZmlsZQotICAgICAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUg
PSB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCd3K2InKQotICAgICAgICAgICAgb2xkd3JpdGUgPSB0
ci5fdHcud3JpdGUKLQotICAgICAgICAgICAgZGVmIHRlZV93cml0ZShzLCAqKmt3YXJncyk6Ci0g
ICAgICAgICAgICAgICAgb2xkd3JpdGUocywgKiprd2FyZ3MpCi0gICAgICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZShzLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgICAgICAgICAgICAgcyA9IHMu
ZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgICAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUud3Jp
dGUocykKLQotICAgICAgICAgICAgdHIuX3R3LndyaXRlID0gdGVlX3dyaXRlCi0KLQotZGVmIHB5
dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgotICAgIGlmIGhhc2F0dHIoY29uZmlnLCAnX3Bhc3Rl
YmluZmlsZScpOgotICAgICAgICAjIGdldCB0ZXJtaW5hbCBjb250ZW50cyBhbmQgZGVsZXRlIGZp
bGUKLSAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUuc2VlaygwKQotICAgICAgICBzZXNzaW9u
bG9nID0gY29uZmlnLl9wYXN0ZWJpbmZpbGUucmVhZCgpCi0gICAgICAgIGNvbmZpZy5fcGFzdGVi
aW5maWxlLmNsb3NlKCkKLSAgICAgICAgZGVsIGNvbmZpZy5fcGFzdGViaW5maWxlCi0gICAgICAg
ICMgdW5kbyBvdXIgcGF0Y2hpbmcgaW4gdGhlIHRlcm1pbmFsIHJlcG9ydGVyCi0gICAgICAgIHRy
ID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKLSAg
ICAgICAgZGVsIHRyLl90dy5fX2RpY3RfX1snd3JpdGUnXQotICAgICAgICAjIHdyaXRlIHN1bW1h
cnkKLSAgICAgICAgdHIud3JpdGVfc2VwKCI9IiwgIlNlbmRpbmcgaW5mb3JtYXRpb24gdG8gUGFz
dGUgU2VydmljZSIpCi0gICAgICAgIHBhc3RlYmludXJsID0gY3JlYXRlX25ld19wYXN0ZShzZXNz
aW9ubG9nKQotICAgICAgICB0ci53cml0ZV9saW5lKCJwYXN0ZWJpbiBzZXNzaW9uLWxvZzogJXNc
biIgJSBwYXN0ZWJpbnVybCkKLQotCi1kZWYgY3JlYXRlX25ld19wYXN0ZShjb250ZW50cyk6Ci0g
ICAgIiIiCi0gICAgQ3JlYXRlcyBhIG5ldyBwYXN0ZSB1c2luZyBicGFzdGUubmV0IHNlcnZpY2Uu
Ci0KLSAgICA6Y29udGVudHM6IHBhc3RlIGNvbnRlbnRzIGFzIHV0Zi04IGVuY29kZWQgYnl0ZXMK
LSAgICA6cmV0dXJuczogdXJsIHRvIHRoZSBwYXN0ZWQgY29udGVudHMKLSAgICAiIiIKLSAgICBp
bXBvcnQgcmUKLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgotICAgICAgICBmcm9t
IHVybGxpYiBpbXBvcnQgdXJsb3BlbiwgdXJsZW5jb2RlCi0gICAgZWxzZToKLSAgICAgICAgZnJv
bSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotICAgICAgICBmcm9tIHVybGxpYi5wYXJz
ZSBpbXBvcnQgdXJsZW5jb2RlCi0KLSAgICBwYXJhbXMgPSB7Ci0gICAgICAgICdjb2RlJzogY29u
dGVudHMsCi0gICAgICAgICdsZXhlcic6ICdweXRob24zJyBpZiBzeXMudmVyc2lvbl9pbmZvWzBd
ID09IDMgZWxzZSAncHl0aG9uJywKLSAgICAgICAgJ2V4cGlyeSc6ICcxd2VlaycsCi0gICAgfQot
ICAgIHVybCA9ICdodHRwczovL2JwYXN0ZS5uZXQnCi0gICAgcmVzcG9uc2UgPSB1cmxvcGVuKHVy
bCwgZGF0YT11cmxlbmNvZGUocGFyYW1zKS5lbmNvZGUoJ2FzY2lpJykpLnJlYWQoKQotICAgIG0g
PSByZS5zZWFyY2gocidocmVmPSIvcmF3LyhcdyspIicsIHJlc3BvbnNlLmRlY29kZSgndXRmLTgn
KSkKLSAgICBpZiBtOgotICAgICAgICByZXR1cm4gJyVzL3Nob3cvJXMnICUgKHVybCwgbS5ncm91
cCgxKSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJ2JhZCByZXNwb25zZTogJyArIHJlc3Bv
bnNlCi0KLQotZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgot
ICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgIGlmIHRlcm1pbmFscmVwb3J0ZXIuY29uZmln
Lm9wdGlvbi5wYXN0ZWJpbiAhPSAiZmFpbGVkIjoKLSAgICAgICAgcmV0dXJuCi0gICAgdHIgPSB0
ZXJtaW5hbHJlcG9ydGVyCi0gICAgaWYgJ2ZhaWxlZCcgaW4gdHIuc3RhdHM6Ci0gICAgICAgIHRl
cm1pbmFscmVwb3J0ZXIud3JpdGVfc2VwKCI9IiwgIlNlbmRpbmcgaW5mb3JtYXRpb24gdG8gUGFz
dGUgU2VydmljZSIpCi0gICAgICAgIGZvciByZXAgaW4gdGVybWluYWxyZXBvcnRlci5zdGF0cy5n
ZXQoJ2ZhaWxlZCcpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG1zZyA9IHJl
cC5sb25ncmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWy0xXS5yZXByZmlsZWxvYwotICAg
ICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIG1zZyA9IHRy
Ll9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAgICAgICAgdHcgPSBfcHl0ZXN0LmNvbmZp
Zy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLCBzdHJpbmdp
bz1UcnVlKQotICAgICAgICAgICAgcmVwLnRvdGVybWluYWwodHcpCi0gICAgICAgICAgICBzID0g
dHcuc3RyaW5naW8uZ2V0dmFsdWUoKQotICAgICAgICAgICAgYXNzZXJ0IGxlbihzKQotICAgICAg
ICAgICAgcGFzdGViaW51cmwgPSBjcmVhdGVfbmV3X3Bhc3RlKHMpCi0gICAgICAgICAgICB0ci53
cml0ZV9saW5lKCIlcyAtLT4gJXMiICUgKG1zZywgcGFzdGViaW51cmwpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0
ZXN0ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyZGQ1OTk0ZjFiYmZiNGRk
NmI0MjlkODZlZjc0OGNiZDU3OGQ1N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDExODcgKzAsMCBAQAotIiIiIChkaXNhYmxlZCBieSBkZWZhdWx0KSBzdXBwb3J0
IGZvciB0ZXN0aW5nIHB5dGVzdCBhbmQgcHl0ZXN0IHBsdWdpbnMuICIiIgotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1p
bXBvcnQgY29kZWNzCi1pbXBvcnQgZ2MKLWltcG9ydCBvcwotaW1wb3J0IHBsYXRmb3JtCi1pbXBv
cnQgcmUKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc2l4Ci1pbXBvcnQgc3lzCi1pbXBvcnQg
dGltZQotaW1wb3J0IHRyYWNlYmFjawotZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1hdGNoCi0KLWZy
b20gd2Vha3JlZiBpbXBvcnQgV2Vha0tleURpY3Rpb25hcnkKLQotZnJvbSBfcHl0ZXN0LmNhcHR1
cmUgaW1wb3J0IE11bHRpQ2FwdHVyZSwgU3lzQ2FwdHVyZQotZnJvbSBfcHl0ZXN0Ll9jb2RlIGlt
cG9ydCBTb3VyY2UKLWltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Lm1haW4g
aW1wb3J0IFNlc3Npb24sIEVYSVRfT0sKLWZyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSBp
bXBvcnQgQXNzZXJ0aW9uUmV3cml0aW5nSG9vawotCi0KLVBZVEVTVF9GVUxMUEFUSCA9IG9zLnBh
dGguYWJzcGF0aChweXRlc3QuX19maWxlX18ucnN0cmlwKCJvYyIpKS5yZXBsYWNlKCIkcHkuY2xh
c3MiLCAiLnB5IikKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgICMgZ3Jv
dXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInB5dGVzdGVyIiwgInB5dGVzdGVyIChzZWxmLXRlc3RzKSBv
cHRpb25zIikKLSAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWxzb2YnLAotICAgICAgICAgICAgICAg
ICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibHNvZiIsIGRlZmF1bHQ9RmFsc2UsCi0g
ICAgICAgICAgICAgICAgICAgICBoZWxwPSgicnVuIEZEIGNoZWNrcyBpZiBsc29mIGlzIGF2YWls
YWJsZSIpKQotCi0gICAgcGFyc2VyLmFkZG9wdGlvbignLS1ydW5weXRlc3QnLCBkZWZhdWx0PSJp
bnByb2Nlc3MiLCBkZXN0PSJydW5weXRlc3QiLAotICAgICAgICAgICAgICAgICAgICAgY2hvaWNl
cz0oImlucHJvY2VzcyIsICJzdWJwcm9jZXNzIiwgKSwKLSAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCJydW4gcHl0ZXN0IHN1YiBydW5zIGluIHRlc3RzIHVzaW5nIGFuICdpbnByb2Nlc3MnICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciAnc3VicHJvY2VzcycgKHB5dGhvbiAtbSBt
YWluKSBtZXRob2QiKSkKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGlm
IGNvbmZpZy5nZXR2YWx1ZSgibHNvZiIpOgotICAgICAgICBjaGVja2VyID0gTHNvZkZkTGVha0No
ZWNrZXIoKQotICAgICAgICBpZiBjaGVja2VyLm1hdGNoaW5nX3BsYXRmb3JtKCk6Ci0gICAgICAg
ICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihjaGVja2VyKQotCi0KLWNsYXNzIExz
b2ZGZExlYWtDaGVja2VyKG9iamVjdCk6Ci0gICAgZGVmIGdldF9vcGVuX2ZpbGVzKHNlbGYpOgot
ICAgICAgICBvdXQgPSBzZWxmLl9leGVjX2xzb2YoKQotICAgICAgICBvcGVuX2ZpbGVzID0gc2Vs
Zi5fcGFyc2VfbHNvZl9vdXRwdXQob3V0KQotICAgICAgICByZXR1cm4gb3Blbl9maWxlcwotCi0g
ICAgZGVmIF9leGVjX2xzb2Yoc2VsZik6Ci0gICAgICAgIHBpZCA9IG9zLmdldHBpZCgpCi0gICAg
ICAgIHJldHVybiBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLUZmbjAgLXAgJWQiICUgcGlkKQot
Ci0gICAgZGVmIF9wYXJzZV9sc29mX291dHB1dChzZWxmLCBvdXQpOgotICAgICAgICBkZWYgaXNv
cGVuKGxpbmUpOgotICAgICAgICAgICAgcmV0dXJuIGxpbmUuc3RhcnRzd2l0aCgnZicpIGFuZCAo
ImRlbGV0ZWQiIG5vdCBpbiBsaW5lIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ21lbScgbm90IGluIGxpbmUgYW5kICJ0eHQiIG5vdCBpbiBsaW5lIGFu
ZCAnY3dkJyBub3QgaW4gbGluZSkKLQotICAgICAgICBvcGVuX2ZpbGVzID0gW10KLQotICAgICAg
ICBmb3IgbGluZSBpbiBvdXQuc3BsaXQoIlxuIik6Ci0gICAgICAgICAgICBpZiBpc29wZW4obGlu
ZSk6Ci0gICAgICAgICAgICAgICAgZmllbGRzID0gbGluZS5zcGxpdCgnXDAnKQotICAgICAgICAg
ICAgICAgIGZkID0gZmllbGRzWzBdWzE6XQotICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZmll
bGRzWzFdWzE6XQotICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLnN0YXJ0c3dpdGgoJy8nKToK
LSAgICAgICAgICAgICAgICAgICAgb3Blbl9maWxlcy5hcHBlbmQoKGZkLCBmaWxlbmFtZSkpCi0K
LSAgICAgICAgcmV0dXJuIG9wZW5fZmlsZXMKLQotICAgIGRlZiBtYXRjaGluZ19wbGF0Zm9ybShz
ZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcHkucHJvY2Vzcy5jbWRleGVjKCJsc29m
IC12IikKLSAgICAgICAgZXhjZXB0IChweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3IsIFVuaWNvZGVE
ZWNvZGVFcnJvcik6Ci0gICAgICAgICAgICAjIGNtZGV4ZWMgbWF5IHJhaXNlIFVuaWNvZGVEZWNv
ZGVFcnJvciBvbiBXaW5kb3dzIHN5c3RlbXMKLSAgICAgICAgICAgICMgd2l0aCBsb2NhbGUgb3Ro
ZXIgdGhhbiBlbmdsaXNoOgotICAgICAgICAgICAgIyBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0
ZXN0LWRldi9weS9pc3N1ZXMvNjYKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9v
a3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfcHJv
dG9jb2woc2VsZiwgaXRlbSk6Ci0gICAgICAgIGxpbmVzMSA9IHNlbGYuZ2V0X29wZW5fZmlsZXMo
KQotICAgICAgICB5aWVsZAotICAgICAgICBpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9p
bmZvIik6Ci0gICAgICAgICAgICBnYy5jb2xsZWN0KCkKLSAgICAgICAgbGluZXMyID0gc2VsZi5n
ZXRfb3Blbl9maWxlcygpCi0KLSAgICAgICAgbmV3X2ZkcyA9IHNldChbdFswXSBmb3IgdCBpbiBs
aW5lczJdKSAtIHNldChbdFswXSBmb3IgdCBpbiBsaW5lczFdKQotICAgICAgICBsZWFrZWRfZmls
ZXMgPSBbdCBmb3IgdCBpbiBsaW5lczIgaWYgdFswXSBpbiBuZXdfZmRzXQotICAgICAgICBpZiBs
ZWFrZWRfZmlsZXM6Ci0gICAgICAgICAgICBlcnJvciA9IFtdCi0gICAgICAgICAgICBlcnJvci5h
cHBlbmQoIioqKioqICVzIEZEIGxlYWthZ2UgZGV0ZWN0ZWQiICUgbGVuKGxlYWtlZF9maWxlcykp
Ci0gICAgICAgICAgICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsZWFrZWRfZmlsZXNd
KQotICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogQmVmb3JlOiIpCi0gICAgICAgICAgICBl
cnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsaW5lczFdKQotICAgICAgICAgICAgZXJyb3Iu
YXBwZW5kKCIqKiogQWZ0ZXI6IikKLSAgICAgICAgICAgIGVycm9yLmV4dGVuZChbc3RyKGYpIGZv
ciBmIGluIGxpbmVzMl0pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoZXJyb3JbMF0pCi0gICAg
ICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBmdW5jdGlvbiAlczolczogJXMgIiAlIGl0ZW0ubG9j
YXRpb24pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoIlNlZSBpc3N1ZSAjMjM2NiIpCi0gICAg
ICAgICAgICBpdGVtLndhcm4oJycsICJcbiIuam9pbihlcnJvcikpCi0KLQotIyBYWFggY29waWVk
IGZyb20gZXhlY25ldCdzIGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUgbWVyZ2VkCi13aW5weW1h
cCA9IHsKLSAgICAncHl0aG9uMi43JzogcidDOlxQeXRob24yN1xweXRob24uZXhlJywKLSAgICAn
cHl0aG9uMy40JzogcidDOlxQeXRob24zNFxweXRob24uZXhlJywKLSAgICAncHl0aG9uMy41Jzog
cidDOlxQeXRob24zNVxweXRob24uZXhlJywKLSAgICAncHl0aG9uMy42JzogcidDOlxQeXRob24z
NlxweXRob24uZXhlJywKLX0KLQotCi1kZWYgZ2V0ZXhlY3V0YWJsZShuYW1lLCBjYWNoZT17fSk6
Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gY2FjaGVbbmFtZV0KLSAgICBleGNlcHQgS2V5RXJy
b3I6Ci0gICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkKLSAg
ICAgICAgaWYgZXhlY3V0YWJsZToKLSAgICAgICAgICAgIGltcG9ydCBzdWJwcm9jZXNzCi0gICAg
ICAgICAgICBwb3BlbiA9IHN1YnByb2Nlc3MuUG9wZW4oW3N0cihleGVjdXRhYmxlKSwgIi0tdmVy
c2lvbiJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNhbF9u
ZXdsaW5lcz1UcnVlLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgb3V0LCBl
cnIgPSBwb3Blbi5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBpZiBuYW1lID09ICJqeXRob24i
OgotICAgICAgICAgICAgICAgIGlmIG5vdCBlcnIgb3IgIjIuNSIgbm90IGluIGVycjoKLSAgICAg
ICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUKLSAgICAgICAgICAgICAgICBpZiAiMi41
LjIiIGluIGVycjoKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUgICMgaHR0
cDovL2J1Z3Muanl0aG9uLm9yZy9pc3N1ZTE3OTAKLSAgICAgICAgICAgIGVsaWYgcG9wZW4ucmV0
dXJuY29kZSAhPSAwOgotICAgICAgICAgICAgICAgICMgSGFuZGxlIHB5ZW52J3MgMTI3LgotICAg
ICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAgIGNhY2hlW25hbWVdID0gZXhl
Y3V0YWJsZQotICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQotCi0KLUBweXRlc3QuZml4dHVyZShw
YXJhbXM9WydweXRob24yLjcnLCAncHl0aG9uMy40JywgJ3B5cHknLCAncHlweTMnXSkKLWRlZiBh
bnlweXRob24ocmVxdWVzdCk6Ci0gICAgbmFtZSA9IHJlcXVlc3QucGFyYW0KLSAgICBleGVjdXRh
YmxlID0gZ2V0ZXhlY3V0YWJsZShuYW1lKQotICAgIGlmIGV4ZWN1dGFibGUgaXMgTm9uZToKLSAg
ICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAgICAgICBleGVjdXRhYmxl
ID0gd2lucHltYXAuZ2V0KG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBpZiBleGVjdXRhYmxlOgot
ICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsKGV4ZWN1dGFibGUpCi0g
ICAgICAgICAgICAgICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZXhlY3V0YWJsZQotICAgICAgICBweXRlc3Quc2tpcCgibm8gc3VpdGFibGUgJXMg
Zm91bmQiICUgKG5hbWUsKSkKLSAgICByZXR1cm4gZXhlY3V0YWJsZQotCi0jIHVzZWQgYXQgbGVh
c3QgYnkgcHl0ZXN0LXhkaXN0IHBsdWdpbgotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIF9weXRl
c3QocmVxdWVzdCk6Ci0gICAgIiIiIFJldHVybiBhIGhlbHBlciB3aGljaCBvZmZlcnMgYSBnZXRo
b29rcmVjb3JkZXIoaG9vaykKLSAgICBtZXRob2Qgd2hpY2ggcmV0dXJucyBhIEhvb2tSZWNvcmRl
ciBpbnN0YW5jZSB3aGljaCBoZWxwcwotICAgIHRvIG1ha2UgYXNzZXJ0aW9ucyBhYm91dCBjYWxs
ZWQgaG9va3MuCi0gICAgIiIiCi0gICAgcmV0dXJuIFB5dGVzdEFyZyhyZXF1ZXN0KQotCi0KLWNs
YXNzIFB5dGVzdEFyZzoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAg
IHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRlZiBnZXRob29rcmVjb3JkZXIoc2VsZiwg
aG9vayk6Ci0gICAgICAgIGhvb2tyZWNvcmRlciA9IEhvb2tSZWNvcmRlcihob29rLl9wbSkKLSAg
ICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihob29rcmVjb3JkZXIuZmluaXNoX3JlY29y
ZGluZykKLSAgICAgICAgcmV0dXJuIGhvb2tyZWNvcmRlcgotCi0KLWRlZiBnZXRfcHVibGljX25h
bWVzKHZhbHVlcyk6Ci0gICAgIiIiT25seSByZXR1cm4gbmFtZXMgZnJvbSBpdGVyYXRvciB2YWx1
ZXMgd2l0aG91dCBhIGxlYWRpbmcgdW5kZXJzY29yZS4iIiIKLSAgICByZXR1cm4gW3ggZm9yIHgg
aW4gdmFsdWVzIGlmIHhbMF0gIT0gIl8iXQotCi0KLWNsYXNzIFBhcnNlZENhbGw6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIGt3YXJncyk6Ci0gICAgICAgIHNlbGYuX19kaWN0X18udXBk
YXRlKGt3YXJncykKLSAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKLQotICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKLSAgICAgICAgZCA9IHNlbGYuX19kaWN0X18uY29weSgpCi0gICAgICAgIGRlbCBk
WydfbmFtZSddCi0gICAgICAgIHJldHVybiAiPFBhcnNlZENhbGwgJXIoKiolcik+IiAlIChzZWxm
Ll9uYW1lLCBkKQotCi0KLWNsYXNzIEhvb2tSZWNvcmRlcjoKLSAgICAiIiJSZWNvcmQgYWxsIGhv
b2tzIGNhbGxlZCBpbiBhIHBsdWdpbiBtYW5hZ2VyLgotCi0gICAgVGhpcyB3cmFwcyBhbGwgdGhl
IGhvb2sgY2FsbHMgaW4gdGhlIHBsdWdpbiBtYW5hZ2VyLCByZWNvcmRpbmcKLSAgICBlYWNoIGNh
bGwgYmVmb3JlIHByb3BhZ2F0aW5nIHRoZSBub3JtYWwgY2FsbHMuCi0KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyKToKLSAgICAgICAgc2VsZi5fcGx1Z2lu
bWFuYWdlciA9IHBsdWdpbm1hbmFnZXIKLSAgICAgICAgc2VsZi5jYWxscyA9IFtdCi0KLSAgICAg
ICAgZGVmIGJlZm9yZShob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncyk6Ci0gICAgICAgICAg
ICBzZWxmLmNhbGxzLmFwcGVuZChQYXJzZWRDYWxsKGhvb2tfbmFtZSwga3dhcmdzKSkKLQotICAg
ICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpOgot
ICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIHNlbGYuX3VuZG9fd3JhcHBpbmcgPSBwbHVnaW5t
YW5hZ2VyLmFkZF9ob29rY2FsbF9tb25pdG9yaW5nKGJlZm9yZSwgYWZ0ZXIpCi0KLSAgICBkZWYg
ZmluaXNoX3JlY29yZGluZyhzZWxmKToKLSAgICAgICAgc2VsZi5fdW5kb193cmFwcGluZygpCi0K
LSAgICBkZWYgZ2V0Y2FsbHMoc2VsZiwgbmFtZXMpOgotICAgICAgICBpZiBpc2luc3RhbmNlKG5h
bWVzLCBzdHIpOgotICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5zcGxpdCgpCi0gICAgICAgIHJl
dHVybiBbY2FsbCBmb3IgY2FsbCBpbiBzZWxmLmNhbGxzIGlmIGNhbGwuX25hbWUgaW4gbmFtZXNd
Ci0KLSAgICBkZWYgYXNzZXJ0X2NvbnRhaW5zKHNlbGYsIGVudHJpZXMpOgotICAgICAgICBfX3Ry
YWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaSA9IDAKLSAgICAgICAgZW50cmllcyA9IGxp
c3QoZW50cmllcykKLSAgICAgICAgYmFja2xvY2FscyA9IHN5cy5fZ2V0ZnJhbWUoMSkuZl9sb2Nh
bHMKLSAgICAgICAgd2hpbGUgZW50cmllczoKLSAgICAgICAgICAgIG5hbWUsIGNoZWNrID0gZW50
cmllcy5wb3AoMCkKLSAgICAgICAgICAgIGZvciBpbmQsIGNhbGwgaW4gZW51bWVyYXRlKHNlbGYu
Y2FsbHNbaTpdKToKLSAgICAgICAgICAgICAgICBpZiBjYWxsLl9uYW1lID09IG5hbWU6Ci0gICAg
ICAgICAgICAgICAgICAgIHByaW50KCJOQU1FTUFUQ0giLCBuYW1lLCBjYWxsKQotICAgICAgICAg
ICAgICAgICAgICBpZiBldmFsKGNoZWNrLCBiYWNrbG9jYWxzLCBjYWxsLl9fZGljdF9fKToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJDSEVDS0VSTUFUQ0giLCByZXByKGNoZWNrKSwg
Ii0+IiwgY2FsbCkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50KCJOT0NIRUNLRVJNQVRDSCIsIHJlcHIoY2hlY2spLCAiLSIsIGNhbGwpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBpICs9
IGluZCArIDEKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBwcmlu
dCgiTk9OQU1FTUFUQ0giLCBuYW1lLCAid2l0aCIsIGNhbGwpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJjb3VsZCBub3QgZmluZCAlciBjaGVjayAlciIg
JSAobmFtZSwgY2hlY2spKQotCi0gICAgZGVmIHBvcGNhbGwoc2VsZiwgbmFtZSk6Ci0gICAgICAg
IF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBmb3IgaSwgY2FsbCBpbiBlbnVtZXJh
dGUoc2VsZi5jYWxscyk6Ci0gICAgICAgICAgICBpZiBjYWxsLl9uYW1lID09IG5hbWU6Ci0gICAg
ICAgICAgICAgICAgZGVsIHNlbGYuY2FsbHNbaV0KLSAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
bAotICAgICAgICBsaW5lcyA9IFsiY291bGQgbm90IGZpbmQgY2FsbCAlciwgaW46IiAlIChuYW1l
LCldCi0gICAgICAgIGxpbmVzLmV4dGVuZChbIiAgJXMiICUgc3RyKHgpIGZvciB4IGluIHNlbGYu
Y2FsbHNdKQotICAgICAgICBweXRlc3QuZmFpbCgiXG4iLmpvaW4obGluZXMpKQotCi0gICAgZGVm
IGdldGNhbGwoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHZhbHVlcyA9IHNlbGYuZ2V0Y2FsbHMobmFt
ZSkKLSAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEsIChuYW1lLCB2YWx1ZXMpCi0gICAg
ICAgIHJldHVybiB2YWx1ZXNbMF0KLQotICAgICMgZnVuY3Rpb25hbGl0eSBmb3IgdGVzdCByZXBv
cnRzCi0KLSAgICBkZWYgZ2V0cmVwb3J0cyhzZWxmLAotICAgICAgICAgICAgICAgICAgIG5hbWVz
PSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2NvbGxlY3RyZXBvcnQiKToKLSAgICAg
ICAgcmV0dXJuIFt4LnJlcG9ydCBmb3IgeCBpbiBzZWxmLmdldGNhbGxzKG5hbWVzKV0KLQotICAg
IGRlZiBtYXRjaHJlcG9ydChzZWxmLCBpbmFtZXBhcnQ9IiIsCi0gICAgICAgICAgICAgICAgICAg
IG5hbWVzPSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2NvbGxlY3RyZXBvcnQiLCB3
aGVuPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJuIGEgdGVzdHJlcG9ydCB3aG9zZSBkb3R0ZWQg
aW1wb3J0IHBhdGggbWF0Y2hlcyAiIiIKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgZm9y
IHJlcCBpbiBzZWxmLmdldHJlcG9ydHMobmFtZXM9bmFtZXMpOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIGlmIG5vdCB3aGVuIGFuZCByZXAud2hlbiAhPSAiY2FsbCIgYW5kIHJl
cC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgICAgICMgc2V0dXAvdGVhcmRvd24gcGFzc2luZyBy
ZXBvcnRzIC0gbGV0J3MgaWdub3JlIHRob3NlCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFz
cwotICAgICAgICAgICAgaWYgd2hlbiBhbmQgZ2V0YXR0cihyZXAsICd3aGVuJywgTm9uZSkgIT0g
d2hlbjoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgbm90IGluYW1l
cGFydCBvciBpbmFtZXBhcnQgaW4gcmVwLm5vZGVpZC5zcGxpdCgiOjoiKToKLSAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKHJlcCkKLSAgICAgICAgaWYgbm90IHZhbHVlczoKLSAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvdWxkIG5vdCBmaW5kIHRlc3QgcmVwb3J0IG1hdGNoaW5n
ICVyOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJubyB0ZXN0IHJlcG9ydHMgYXQg
YWxsISIgJSAoaW5hbWVwYXJ0LCkpCi0gICAgICAgIGlmIGxlbih2YWx1ZXMpID4gMToKLSAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgImZvdW5kIDIgb3IgbW9y
ZSB0ZXN0cmVwb3J0cyBtYXRjaGluZyAlcjogJXMiICUgKGluYW1lcGFydCwgdmFsdWVzKSkKLSAg
ICAgICAgcmV0dXJuIHZhbHVlc1swXQotCi0gICAgZGVmIGdldGZhaWx1cmVzKHNlbGYsCi0gICAg
ICAgICAgICAgICAgICAgIG5hbWVzPSdweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2Nv
bGxlY3RyZXBvcnQnKToKLSAgICAgICAgcmV0dXJuIFtyZXAgZm9yIHJlcCBpbiBzZWxmLmdldHJl
cG9ydHMobmFtZXMpIGlmIHJlcC5mYWlsZWRdCi0KLSAgICBkZWYgZ2V0ZmFpbGVkY29sbGVjdGlv
bnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldGZhaWx1cmVzKCdweXRlc3RfY29sbGVj
dHJlcG9ydCcpCi0KLSAgICBkZWYgbGlzdG91dGNvbWVzKHNlbGYpOgotICAgICAgICBwYXNzZWQg
PSBbXQotICAgICAgICBza2lwcGVkID0gW10KLSAgICAgICAgZmFpbGVkID0gW10KLSAgICAgICAg
Zm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMoCi0gICAgICAgICAgICAgICAgInB5dGVzdF9jb2xs
ZWN0cmVwb3J0IHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpOgotICAgICAgICAgICAgaWYgcmVw
LnBhc3NlZDoKLSAgICAgICAgICAgICAgICBpZiBnZXRhdHRyKHJlcCwgIndoZW4iLCBOb25lKSA9
PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3NlZC5hcHBlbmQocmVwKQotICAgICAg
ICAgICAgZWxpZiByZXAuc2tpcHBlZDoKLSAgICAgICAgICAgICAgICBza2lwcGVkLmFwcGVuZChy
ZXApCi0gICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgZmFpbGVk
LmFwcGVuZChyZXApCi0gICAgICAgIHJldHVybiBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZAotCi0g
ICAgZGVmIGNvdW50b3V0Y29tZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbbGVuKHgpIGZvciB4
IGluIHNlbGYubGlzdG91dGNvbWVzKCldCi0KLSAgICBkZWYgYXNzZXJ0b3V0Y29tZShzZWxmLCBw
YXNzZWQ9MCwgc2tpcHBlZD0wLCBmYWlsZWQ9MCk6Ci0gICAgICAgIHJlYWxwYXNzZWQsIHJlYWxz
a2lwcGVkLCByZWFsZmFpbGVkID0gc2VsZi5saXN0b3V0Y29tZXMoKQotICAgICAgICBhc3NlcnQg
cGFzc2VkID09IGxlbihyZWFscGFzc2VkKQotICAgICAgICBhc3NlcnQgc2tpcHBlZCA9PSBsZW4o
cmVhbHNraXBwZWQpCi0gICAgICAgIGFzc2VydCBmYWlsZWQgPT0gbGVuKHJlYWxmYWlsZWQpCi0K
LSAgICBkZWYgY2xlYXIoc2VsZik6Ci0gICAgICAgIHNlbGYuY2FsbHNbOl0gPSBbXQotCi0KLUBw
eXRlc3QuZml4dHVyZQotZGVmIGxpbmVjb21wKHJlcXVlc3QpOgotICAgIHJldHVybiBMaW5lQ29t
cCgpCi0KLQotQHB5dGVzdC5maXh0dXJlKG5hbWU9J0xpbmVNYXRjaGVyJykKLWRlZiBMaW5lTWF0
Y2hlcl9maXh0dXJlKHJlcXVlc3QpOgotICAgIHJldHVybiBMaW5lTWF0Y2hlcgotCi0KLUBweXRl
c3QuZml4dHVyZQotZGVmIHRlc3RkaXIocmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgotICAgIHJl
dHVybiBUZXN0ZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KQotCi0KLXJleF9vdXRjb21lID0g
cmUuY29tcGlsZShyIihcZCspIChbXHctXSspIikKLQotCi1jbGFzcyBSdW5SZXN1bHQ6Ci0gICAg
IiIiVGhlIHJlc3VsdCBvZiBydW5uaW5nIGEgY29tbWFuZC4KLQotICAgIEF0dHJpYnV0ZXM6Ci0K
LSAgICA6cmV0OiBUaGUgcmV0dXJuIHZhbHVlLgotICAgIDpvdXRsaW5lczogTGlzdCBvZiBsaW5l
cyBjYXB0dXJlZCBmcm9tIHN0ZG91dC4KLSAgICA6ZXJybGluZXM6IExpc3Qgb2YgbGluZXMgY2Fw
dHVyZXMgZnJvbSBzdGRlcnIuCi0gICAgOnN0ZG91dDogOnB5OmNsYXNzOmBMaW5lTWF0Y2hlcmAg
b2Ygc3Rkb3V0LCB1c2UgYGBzdGRvdXQuc3RyKClgYCB0bwotICAgICAgIHJlY29uc3RydWN0IHN0
ZG91dCBvciB0aGUgY29tbW9ubHkgdXNlZAotICAgICAgIGBgc3Rkb3V0LmZubWF0Y2hfbGluZXMo
KWBgIG1ldGhvZC4KLSAgICA6c3RkZXJycjogOnB5OmNsYXNzOmBMaW5lTWF0Y2hlcmAgb2Ygc3Rk
ZXJyLgotICAgIDpkdXJhdGlvbjogRHVyYXRpb24gaW4gc2Vjb25kcy4KLQotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldCwgb3V0bGluZXMsIGVycmxpbmVzLCBkdXJhdGlvbik6
Ci0gICAgICAgIHNlbGYucmV0ID0gcmV0Ci0gICAgICAgIHNlbGYub3V0bGluZXMgPSBvdXRsaW5l
cwotICAgICAgICBzZWxmLmVycmxpbmVzID0gZXJybGluZXMKLSAgICAgICAgc2VsZi5zdGRvdXQg
PSBMaW5lTWF0Y2hlcihvdXRsaW5lcykKLSAgICAgICAgc2VsZi5zdGRlcnIgPSBMaW5lTWF0Y2hl
cihlcnJsaW5lcykKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCi0KLSAgICBkZWYg
cGFyc2VvdXRjb21lcyhzZWxmKToKLSAgICAgICAgIiIiIFJldHVybiBhIGRpY3Rpb25hcnkgb2Yg
b3V0Y29tZXN0cmluZy0+bnVtIGZyb20gcGFyc2luZwotICAgICAgICB0aGUgdGVybWluYWwgb3V0
cHV0IHRoYXQgdGhlIHRlc3QgcHJvY2VzcyBwcm9kdWNlZC4iIiIKLSAgICAgICAgZm9yIGxpbmUg
aW4gcmV2ZXJzZWQoc2VsZi5vdXRsaW5lcyk6Ci0gICAgICAgICAgICBpZiAnc2Vjb25kcycgaW4g
bGluZToKLSAgICAgICAgICAgICAgICBvdXRjb21lcyA9IHJleF9vdXRjb21lLmZpbmRhbGwobGlu
ZSkKLSAgICAgICAgICAgICAgICBpZiBvdXRjb21lczoKLSAgICAgICAgICAgICAgICAgICAgZCA9
IHt9Ci0gICAgICAgICAgICAgICAgICAgIGZvciBudW0sIGNhdCBpbiBvdXRjb21lczoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGRbY2F0XSA9IGludChudW0pCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBkCi0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlB5dGVzdCB0ZXJtaW5hbCByZXBv
cnQgbm90IGZvdW5kIikKLQotICAgIGRlZiBhc3NlcnRfb3V0Y29tZXMoc2VsZiwgcGFzc2VkPTAs
IHNraXBwZWQ9MCwgZmFpbGVkPTAsIGVycm9yPTApOgotICAgICAgICAiIiIgYXNzZXJ0IHRoYXQg
dGhlIHNwZWNpZmllZCBvdXRjb21lcyBhcHBlYXIgd2l0aCB0aGUgcmVzcGVjdGl2ZQotICAgICAg
ICBudW1iZXJzICgwIG1lYW5zIGl0IGRpZG4ndCBvY2N1cikgaW4gdGhlIHRleHQgb3V0cHV0IGZy
b20gYSB0ZXN0IHJ1bi4iIiIKLSAgICAgICAgZCA9IHNlbGYucGFyc2VvdXRjb21lcygpCi0gICAg
ICAgIG9idGFpbmVkID0gewotICAgICAgICAgICAgJ3Bhc3NlZCc6IGQuZ2V0KCdwYXNzZWQnLCAw
KSwKLSAgICAgICAgICAgICdza2lwcGVkJzogZC5nZXQoJ3NraXBwZWQnLCAwKSwKLSAgICAgICAg
ICAgICdmYWlsZWQnOiBkLmdldCgnZmFpbGVkJywgMCksCi0gICAgICAgICAgICAnZXJyb3InOiBk
LmdldCgnZXJyb3InLCAwKSwKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQgb2J0YWluZWQgPT0g
ZGljdChwYXNzZWQ9cGFzc2VkLCBza2lwcGVkPXNraXBwZWQsIGZhaWxlZD1mYWlsZWQsIGVycm9y
PWVycm9yKQotCi0KLWNsYXNzIFRlc3RkaXI6Ci0gICAgIiIiVGVtcG9yYXJ5IHRlc3QgZGlyZWN0
b3J5IHdpdGggdG9vbHMgdG8gdGVzdC9ydW4gcHl0ZXN0IGl0c2VsZi4KLQotICAgIFRoaXMgaXMg
YmFzZWQgb24gdGhlIGBgdG1wZGlyYGAgZml4dHVyZSBidXQgcHJvdmlkZXMgYSBudW1iZXIgb2YK
LSAgICBtZXRob2RzIHdoaWNoIGFpZCB3aXRoIHRlc3RpbmcgcHl0ZXN0IGl0c2VsZi4gIFVubGVz
cwotICAgIDpweTptZXRoOmBjaGRpcmAgaXMgdXNlZCBhbGwgbWV0aG9kcyB3aWxsIHVzZSA6cHk6
YXR0cjpgdG1wZGlyYCBhcwotICAgIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuCi0KLSAgICBB
dHRyaWJ1dGVzOgotCi0gICAgOnRtcGRpcjogVGhlIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAg
aW5zdGFuY2Ugb2YgdGhlIHRlbXBvcmFyeQotICAgICAgIGRpcmVjdG9yeS4KLQotICAgIDpwbHVn
aW5zOiBBIGxpc3Qgb2YgcGx1Z2lucyB0byB1c2Ugd2l0aCA6cHk6bWV0aDpgcGFyc2Vjb25maWdg
IGFuZAotICAgICAgIDpweTptZXRoOmBydW5weXRlc3RgLiAgSW5pdGlhbGx5IHRoaXMgaXMgYW4g
ZW1wdHkgbGlzdCBidXQKLSAgICAgICBwbHVnaW5zIGNhbiBiZSBhZGRlZCB0byB0aGUgbGlzdC4g
IFRoZSB0eXBlIG9mIGl0ZW1zIHRvIGFkZCB0bwotICAgICAgIHRoZSBsaXN0IGRlcGVuZCBvbiB0
aGUgbWV0aG9kIHdoaWNoIHVzZXMgdGhlbSBzbyByZWZlciB0byB0aGVtCi0gICAgICAgZm9yIGRl
dGFpbHMuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCB0bXBk
aXJfZmFjdG9yeSk6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2Vs
Zi5fbW9kX2NvbGxlY3Rpb25zID0gV2Vha0tleURpY3Rpb25hcnkoKQotICAgICAgICBuYW1lID0g
cmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXwotICAgICAgICBzZWxmLnRtcGRpciA9IHRtcGRpcl9m
YWN0b3J5Lm1rdGVtcChuYW1lLCBudW1iZXJlZD1UcnVlKQotICAgICAgICBzZWxmLnBsdWdpbnMg
PSBbXQotICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IChsaXN0KHN5cy5wYXRoKSwgbGlzdChz
eXMubWV0YV9wYXRoKSkKLSAgICAgICAgc2VsZi5fc2F2ZW1vZHVsZWtleXMgPSBzZXQoc3lzLm1v
ZHVsZXMpCi0gICAgICAgIHNlbGYuY2hkaXIoKSAgIyBhbHdheXMgY2hkaXIKLSAgICAgICAgc2Vs
Zi5yZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLmZpbmFsaXplKQotICAgICAgICBtZXRob2QgPSBz
ZWxmLnJlcXVlc3QuY29uZmlnLmdldG9wdGlvbigiLS1ydW5weXRlc3QiKQotICAgICAgICBpZiBt
ZXRob2QgPT0gImlucHJvY2VzcyI6Ci0gICAgICAgICAgICBzZWxmLl9ydW5weXRlc3RfbWV0aG9k
ID0gc2VsZi5ydW5weXRlc3RfaW5wcm9jZXNzCi0gICAgICAgIGVsaWYgbWV0aG9kID09ICJzdWJw
cm9jZXNzIjoKLSAgICAgICAgICAgIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QgPSBzZWxmLnJ1bnB5
dGVzdF9zdWJwcm9jZXNzCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVy
biAiPFRlc3RkaXIgJXI+IiAlIChzZWxmLnRtcGRpciwpCi0KLSAgICBkZWYgZmluYWxpemUoc2Vs
Zik6Ci0gICAgICAgICIiIkNsZWFuIHVwIGdsb2JhbCBzdGF0ZSBhcnRpZmFjdHMuCi0KLSAgICAg
ICAgU29tZSBtZXRob2RzIG1vZGlmeSB0aGUgZ2xvYmFsIGludGVycHJldGVyIHN0YXRlIGFuZCB0
aGlzCi0gICAgICAgIHRyaWVzIHRvIGNsZWFuIHRoaXMgdXAuICBJdCBkb2VzIG5vdCByZW1vdmUg
dGhlIHRlbXBvcmFyeQotICAgICAgICBkaXJlY3RvcnkgaG93ZXZlciBzbyBpdCBjYW4gYmUgbG9v
a2VkIGF0IGFmdGVyIHRoZSB0ZXN0IHJ1bgotICAgICAgICBoYXMgZmluaXNoZWQuCi0KLSAgICAg
ICAgIiIiCi0gICAgICAgIHN5cy5wYXRoWzpdLCBzeXMubWV0YV9wYXRoWzpdID0gc2VsZi5fc2F2
ZXN5c3BhdGgKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29sZGRpcicpOgotICAgICAgICAg
ICAgc2VsZi5fb2xkZGlyLmNoZGlyKCkKLSAgICAgICAgc2VsZi5kZWxldGVfbG9hZGVkX21vZHVs
ZXMoKQotCi0gICAgZGVmIGRlbGV0ZV9sb2FkZWRfbW9kdWxlcyhzZWxmKToKLSAgICAgICAgIiIi
RGVsZXRlIG1vZHVsZXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkIGR1cmluZyBhIHRlc3QuCi0KLSAg
ICAgICAgVGhpcyBhbGxvd3MgdGhlIGludGVycHJldGVyIHRvIGNhdGNoIG1vZHVsZSBjaGFuZ2Vz
IGluIGNhc2UKLSAgICAgICAgdGhlIG1vZHVsZSBpcyByZS1pbXBvcnRlZC4KLSAgICAgICAgIiIi
Ci0gICAgICAgIGZvciBuYW1lIGluIHNldChzeXMubW9kdWxlcykuZGlmZmVyZW5jZShzZWxmLl9z
YXZlbW9kdWxla2V5cyk6Ci0gICAgICAgICAgICAjIHNvbWUgem9wZSBtb2R1bGVzIHVzZWQgYnkg
dHdpc3RlZC1yZWxhdGVkIHRlc3RzIGtlZXBzIGludGVybmFsCi0gICAgICAgICAgICAjIHN0YXRl
IGFuZCBjYW4ndCBiZSBkZWxldGVkOyB3ZSBoYWQgc29tZSB0cm91YmxlIGluIHRoZSBwYXN0Ci0g
ICAgICAgICAgICAjIHdpdGggem9wZS5pbnRlcmZhY2UgZm9yIGV4YW1wbGUKLSAgICAgICAgICAg
IGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInpvcGUiKToKLSAgICAgICAgICAgICAgICBkZWwgc3lz
Lm1vZHVsZXNbbmFtZV0KLQotICAgIGRlZiBtYWtlX2hvb2tfcmVjb3JkZXIoc2VsZiwgcGx1Z2lu
bWFuYWdlcik6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRl
cmAgZm9yIGEgUGx1Z2luTWFuYWdlci4iIiIKLSAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHBs
dWdpbm1hbmFnZXIsICJyZXByZWMiKQotICAgICAgICBwbHVnaW5tYW5hZ2VyLnJlcHJlYyA9IHJl
cHJlYyA9IEhvb2tSZWNvcmRlcihwbHVnaW5tYW5hZ2VyKQotICAgICAgICBzZWxmLnJlcXVlc3Qu
YWRkZmluYWxpemVyKHJlcHJlYy5maW5pc2hfcmVjb3JkaW5nKQotICAgICAgICByZXR1cm4gcmVw
cmVjCi0KLSAgICBkZWYgY2hkaXIoc2VsZik6Ci0gICAgICAgICIiIkNkIGludG8gdGhlIHRlbXBv
cmFyeSBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhpcyBpcyBkb25lIGF1dG9tYXRpY2FsbHkgdXBv
biBpbnN0YW50aWF0aW9uLgotCi0gICAgICAgICIiIgotICAgICAgICBvbGQgPSBzZWxmLnRtcGRp
ci5jaGRpcigpCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfb2xkZGlyJyk6Ci0gICAg
ICAgICAgICBzZWxmLl9vbGRkaXIgPSBvbGQKLQotICAgIGRlZiBfbWFrZWZpbGUoc2VsZiwgZXh0
LCBhcmdzLCBrd2FyZ3MsIGVuY29kaW5nPSd1dGYtOCcpOgotICAgICAgICBpdGVtcyA9IGxpc3Qo
a3dhcmdzLml0ZW1zKCkpCi0KLSAgICAgICAgZGVmIHRvX3RleHQocyk6Ci0gICAgICAgICAgICBy
ZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcpIGlmIGlzaW5zdGFuY2UocywgYnl0ZXMpIGVsc2Ugc2l4
LnRleHRfdHlwZShzKQotCi0gICAgICAgIGlmIGFyZ3M6Ci0gICAgICAgICAgICBzb3VyY2UgPSB1
IlxuIi5qb2luKHRvX3RleHQoeCkgZm9yIHggaW4gYXJncykKLSAgICAgICAgICAgIGJhc2VuYW1l
ID0gc2VsZi5yZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCi0gICAgICAgICAgICBpdGVtcy5pbnNl
cnQoMCwgKGJhc2VuYW1lLCBzb3VyY2UpKQotCi0gICAgICAgIHJldCA9IE5vbmUKLSAgICAgICAg
Zm9yIGJhc2VuYW1lLCB2YWx1ZSBpbiBpdGVtczoKLSAgICAgICAgICAgIHAgPSBzZWxmLnRtcGRp
ci5qb2luKGJhc2VuYW1lKS5uZXcoZXh0PWV4dCkKLSAgICAgICAgICAgIHAuZGlycGF0aCgpLmVu
c3VyZV9kaXIoKQotICAgICAgICAgICAgc291cmNlID0gU291cmNlKHZhbHVlKQotICAgICAgICAg
ICAgc291cmNlID0gdSJcbiIuam9pbih0b190ZXh0KGxpbmUpIGZvciBsaW5lIGluIHNvdXJjZS5s
aW5lcykKLSAgICAgICAgICAgIHAud3JpdGUoc291cmNlLnN0cmlwKCkuZW5jb2RlKGVuY29kaW5n
KSwgIndiIikKLSAgICAgICAgICAgIGlmIHJldCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJl
dCA9IHAKLSAgICAgICAgcmV0dXJuIHJldAotCi0gICAgZGVmIG1ha2VmaWxlKHNlbGYsIGV4dCwg
KmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlIHRl
c3RkaXIuCi0KLSAgICAgICAgZXh0OiBUaGUgZXh0ZW5zaW9uIHRoZSBmaWxlIHNob3VsZCB1c2Us
IGluY2x1ZGluZyB0aGUgZG90LgotICAgICAgICAgICBFLmcuICIucHkiLgotCi0gICAgICAgIGFy
Z3M6IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFuZCBqb2luZWQgdXNpbmcK
LSAgICAgICAgICAgbmV3bGluZXMuICBUaGUgcmVzdWx0IHdpbGwgYmUgd3JpdHRlbiBhcyBjb250
ZW50cyB0byB0aGUKLSAgICAgICAgICAgZmlsZS4gIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHdpbGwg
YmUgYmFzZWQgb24gdGhlIHRlc3QKLSAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdGluZyB0aGlz
IGZpeHR1cmUuCi0gICAgICAgICAgIEUuZy4gInRlc3RkaXIubWFrZWZpbGUoJy50eHQnLCAnbGlu
ZTEnLCAnbGluZTInKSIKLQotICAgICAgICBrd2FyZ3M6IEVhY2gga2V5d29yZCBpcyB0aGUgbmFt
ZSBvZiBhIGZpbGUsIHdoaWxlIHRoZSB2YWx1ZSBvZgotICAgICAgICAgICBpdCB3aWxsIGJlIHdy
aXR0ZW4gYXMgY29udGVudHMgb2YgdGhlIGZpbGUuCi0gICAgICAgICAgIEUuZy4gInRlc3RkaXIu
bWFrZWZpbGUoJy5pbmknLCBweXRlc3Q9J1tweXRlc3RdXG5hZGRvcHRzPS1yc1xuJykiCi0KLSAg
ICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZShleHQsIGFyZ3MsIGt3YXJn
cykKLQotICAgIGRlZiBtYWtlY29uZnRlc3Qoc2VsZiwgc291cmNlKToKLSAgICAgICAgIiIiV3Jp
dGUgYSBjb250ZXN0LnB5IGZpbGUgd2l0aCAnc291cmNlJyBhcyBjb250ZW50cy4iIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYubWFrZXB5ZmlsZShjb25mdGVzdD1zb3VyY2UpCi0KLSAgICBkZWYgbWFr
ZWluaShzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJXcml0ZSBhIHRveC5pbmkgZmlsZSB3aXRo
ICdzb3VyY2UnIGFzIGNvbnRlbnRzLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5tYWtlZmlsZSgn
LmluaScsIHRveD1zb3VyY2UpCi0KLSAgICBkZWYgZ2V0aW5pY2ZnKHNlbGYsIHNvdXJjZSk6Ci0g
ICAgICAgICIiIlJldHVybiB0aGUgcHl0ZXN0IHNlY3Rpb24gZnJvbSB0aGUgdG94LmluaSBjb25m
aWcgZmlsZS4iIiIKLSAgICAgICAgcCA9IHNlbGYubWFrZWluaShzb3VyY2UpCi0gICAgICAgIHJl
dHVybiBweS5pbmljb25maWcuSW5pQ29uZmlnKHApWydweXRlc3QnXQotCi0gICAgZGVmIG1ha2Vw
eWZpbGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiU2hvcnRjdXQgZm9yIC5t
YWtlZmlsZSgpIHdpdGggYSAucHkgZXh0ZW5zaW9uLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5f
bWFrZWZpbGUoJy5weScsIGFyZ3MsIGt3YXJncykKLQotICAgIGRlZiBtYWtldHh0ZmlsZShzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJTaG9ydGN1dCBmb3IgLm1ha2VmaWxlKCkg
d2l0aCBhIC50eHQgZXh0ZW5zaW9uLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fbWFrZWZpbGUo
Jy50eHQnLCBhcmdzLCBrd2FyZ3MpCi0KLSAgICBkZWYgc3lzcGF0aGluc2VydChzZWxmLCBwYXRo
PU5vbmUpOgotICAgICAgICAiIiJQcmVwZW5kIGEgZGlyZWN0b3J5IHRvIHN5cy5wYXRoLCBkZWZh
dWx0cyB0byA6cHk6YXR0cjpgdG1wZGlyYC4KLQotICAgICAgICBUaGlzIGlzIHVuZG9uZSBhdXRv
bWF0aWNhbGx5IGFmdGVyIHRoZSB0ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAgaWYgcGF0aCBp
cyBOb25lOgotICAgICAgICAgICAgcGF0aCA9IHNlbGYudG1wZGlyCi0gICAgICAgIHN5cy5wYXRo
Lmluc2VydCgwLCBzdHIocGF0aCkpCi0gICAgICAgICMgYSBjYWxsIHRvIHN5c3BhdGhpbnNlcnQo
KSB1c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlcgotICAgICAgICAjIHdhbnRzIHRvIGltcG9y
dCBzb21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMuCi0gICAgICAgICMgd2l0aCBweXRob24z
IHdlIHRodXMgaW52YWxpZGF0ZSBpbXBvcnQgY2FjaGVzLgotICAgICAgICBzZWxmLl9wb3NzaWJs
eV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoKQotCi0gICAgZGVmIF9wb3NzaWJseV9pbnZhbGlk
YXRlX2ltcG9ydF9jYWNoZXMoc2VsZik6Ci0gICAgICAgICMgaW52YWxpZGF0ZSBjYWNoZXMgaWYg
d2UgY2FuIChweTMzIGFuZCBhYm92ZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0
IGltcG9ydGxpYgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICBwYXNz
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKGltcG9ydGxpYiwgImludmFs
aWRhdGVfY2FjaGVzIik6Ci0gICAgICAgICAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2Fj
aGVzKCkKLQotICAgIGRlZiBta2RpcihzZWxmLCBuYW1lKToKLSAgICAgICAgIiIiQ3JlYXRlIGEg
bmV3IChzdWIpZGlyZWN0b3J5LiIiIgotICAgICAgICByZXR1cm4gc2VsZi50bXBkaXIubWtkaXIo
bmFtZSkKLQotICAgIGRlZiBta3B5ZGlyKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJDcmVhdGUg
YSBuZXcgcHl0aG9uIHBhY2thZ2UuCi0KLSAgICAgICAgVGhpcyBjcmVhdGVzIGEgKHN1YilkaXJl
Y3Rvcnkgd2l0aCBhbiBlbXB0eSBgYF9faW5pdF9fLnB5YGAKLSAgICAgICAgZmlsZSBzbyB0aGF0
IGlzIHJlY29nbmlzZWQgYXMgYSBweXRob24gcGFja2FnZS4KLQotICAgICAgICAiIiIKLSAgICAg
ICAgcCA9IHNlbGYubWtkaXIobmFtZSkKLSAgICAgICAgcC5lbnN1cmUoIl9faW5pdF9fLnB5IikK
LSAgICAgICAgcmV0dXJuIHAKLQotICAgIFNlc3Npb24gPSBTZXNzaW9uCi0KLSAgICBkZWYgZ2V0
bm9kZShzZWxmLCBjb25maWcsIGFyZyk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgY29sbGVjdGlv
biBub2RlIG9mIGEgZmlsZS4KLQotICAgICAgICA6cGFyYW0gY29uZmlnOiA6cHk6Y2xhc3M6YF9w
eXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UsIHNlZQotICAgICAgICAgICA6cHk6bWV0aDpg
cGFyc2Vjb25maWdgIGFuZCA6cHk6bWV0aDpgcGFyc2Vjb25maWd1cmVgIHRvCi0gICAgICAgICAg
IGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KLQotICAgICAgICA6cGFyYW0gYXJnOiBBIDpweTpj
bGFzczpgcHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ugb2YgdGhlIGZpbGUuCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKLSAgICAgICAgYXNzZXJ0ICc6Oicg
bm90IGluIHN0cihhcmcpCi0gICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKGFyZykKLSAgICAgICAg
Y29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCi0gICAgICAg
IHJlcyA9IHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KFtzdHIocCldLCBnZW5pdGVtcz1GYWxzZSlb
MF0KLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbj1zZXNz
aW9uLCBleGl0c3RhdHVzPUVYSVRfT0spCi0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiBn
ZXRwYXRobm9kZShzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0aW9u
IG5vZGUgb2YgYSBmaWxlLgotCi0gICAgICAgIFRoaXMgaXMgbGlrZSA6cHk6bWV0aDpgZ2V0bm9k
ZWAgYnV0IHVzZXMKLSAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlndXJlYCB0byBjcmVhdGUg
dGhlIChjb25maWd1cmVkKSBweXRlc3QKLSAgICAgICAgQ29uZmlnIGluc3RhbmNlLgotCi0gICAg
ICAgIDpwYXJhbSBwYXRoOiBBIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ugb2Yg
dGhlIGZpbGUuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGNvbmZpZyA9IHNlbGYucGFyc2Vjb25m
aWd1cmUocGF0aCkKLSAgICAgICAgc2Vzc2lvbiA9IFNlc3Npb24oY29uZmlnKQotICAgICAgICB4
ID0gc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgocGF0aCkKLSAgICAgICAgY29uZmlnLmhvb2su
cHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCi0gICAgICAgIHJlcyA9IHNlc3Np
b24ucGVyZm9ybV9jb2xsZWN0KFt4XSwgZ2VuaXRlbXM9RmFsc2UpWzBdCi0gICAgICAgIGNvbmZp
Zy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb249c2Vzc2lvbiwgZXhpdHN0YXR1cz1F
WElUX09LKQotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBkZWYgZ2VuaXRlbXMoc2VsZiwgY29s
aXRlbXMpOgotICAgICAgICAiIiJHZW5lcmF0ZSBhbGwgdGVzdCBpdGVtcyBmcm9tIGEgY29sbGVj
dGlvbiBub2RlLgotCi0gICAgICAgIFRoaXMgcmVjdXJzZXMgaW50byB0aGUgY29sbGVjdGlvbiBu
b2RlIGFuZCByZXR1cm5zIGEgbGlzdCBvZgotICAgICAgICBhbGwgdGhlIHRlc3QgaXRlbXMgY29u
dGFpbmVkIHdpdGhpbi4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2Vzc2lvbiA9IGNvbGl0ZW1z
WzBdLnNlc3Npb24KLSAgICAgICAgcmVzdWx0ID0gW10KLSAgICAgICAgZm9yIGNvbGl0ZW0gaW4g
Y29saXRlbXM6Ci0gICAgICAgICAgICByZXN1bHQuZXh0ZW5kKHNlc3Npb24uZ2VuaXRlbXMoY29s
aXRlbSkpCi0gICAgICAgIHJldHVybiByZXN1bHQKLQotICAgIGRlZiBydW5pdGVtKHNlbGYsIHNv
dXJjZSk6Ci0gICAgICAgICIiIlJ1biB0aGUgInRlc3RfZnVuYyIgSXRlbS4KLQotICAgICAgICBU
aGUgY2FsbGluZyB0ZXN0IGluc3RhbmNlICh0aGUgY2xhc3Mgd2hpY2ggY29udGFpbnMgdGhlIHRl
c3QKLSAgICAgICAgbWV0aG9kKSBtdXN0IHByb3ZpZGUgYSBgYC5nZXRydW5uZXIoKWBgIG1ldGhv
ZCB3aGljaCBzaG91bGQKLSAgICAgICAgcmV0dXJuIGEgcnVubmVyIHdoaWNoIGNhbiBydW4gdGhl
IHRlc3QgcHJvdG9jb2wgZm9yIGEgc2luZ2xlCi0gICAgICAgIGl0ZW0sIGxpa2UgZS5nLiA6cHk6
ZnVuYzpgX3B5dGVzdC5ydW5uZXIucnVudGVzdHByb3RvY29sYC4KLQotICAgICAgICAiIiIKLSAg
ICAgICAgIyB1c2VkIGZyb20gcnVubmVyIGZ1bmN0aW9uYWwgdGVzdHMKLSAgICAgICAgaXRlbSA9
IHNlbGYuZ2V0aXRlbShzb3VyY2UpCi0gICAgICAgICMgdGhlIHRlc3QgY2xhc3Mgd2hlcmUgd2Ug
YXJlIGNhbGxlZCBmcm9tIHdhbnRzIHRvIHByb3ZpZGUgdGhlIHJ1bm5lcgotICAgICAgICB0ZXN0
Y2xhc3NpbnN0YW5jZSA9IHNlbGYucmVxdWVzdC5pbnN0YW5jZQotICAgICAgICBydW5uZXIgPSB0
ZXN0Y2xhc3NpbnN0YW5jZS5nZXRydW5uZXIoKQotICAgICAgICByZXR1cm4gcnVubmVyKGl0ZW0p
Ci0KLSAgICBkZWYgaW5saW5lX3J1bnNvdXJjZShzZWxmLCBzb3VyY2UsICpjbWRsaW5lYXJncyk6
Ci0gICAgICAgICIiIlJ1biBhIHRlc3QgbW9kdWxlIGluIHByb2Nlc3MgdXNpbmcgYGBweXRlc3Qu
bWFpbigpYGAuCi0KLSAgICAgICAgVGhpcyBydW4gd3JpdGVzICJzb3VyY2UiIGludG8gYSB0ZW1w
b3JhcnkgZmlsZSBhbmQgcnVucwotICAgICAgICBgYHB5dGVzdC5tYWluKClgYCBvbiBpdCwgcmV0
dXJuaW5nIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgCi0gICAgICAgIGluc3RhbmNlIGZvciB0
aGUgcmVzdWx0LgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBzb3VyY2UgY29kZSBvZiB0
aGUgdGVzdCBtb2R1bGUuCi0KLSAgICAgICAgOnBhcmFtIGNtZGxpbmVhcmdzOiBBbnkgZXh0cmEg
Y29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byB1c2UuCi0KLSAgICAgICAgOnJldHVybjogOnB5OmNs
YXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlIG9mIHRoZSByZXN1bHQuCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgIHAgPSBzZWxmLm1ha2VweWZpbGUoc291cmNlKQotICAgICAgICB2YWx1ZXMgPSBs
aXN0KGNtZGxpbmVhcmdzKSArIFtwXQotICAgICAgICByZXR1cm4gc2VsZi5pbmxpbmVfcnVuKCp2
YWx1ZXMpCi0KLSAgICBkZWYgaW5saW5lX2dlbml0ZW1zKHNlbGYsICphcmdzKToKLSAgICAgICAg
IiIiUnVuIGBgcHl0ZXN0Lm1haW4oWyctLWNvbGxlY3Rvbmx5J10pYGAgaW4tcHJvY2Vzcy4KLQot
ICAgICAgICBSZXR1cm5zIGEgdHVwbGUgb2YgdGhlIGNvbGxlY3RlZCBpdGVtcyBhbmQgYQotICAg
ICAgICA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2UuCi0KLSAgICAgICAgVGhpcyBy
dW5zIHRoZSA6cHk6ZnVuYzpgcHl0ZXN0Lm1haW5gIGZ1bmN0aW9uIHRvIHJ1biBhbGwgb2YKLSAg
ICAgICAgcHl0ZXN0IGluc2lkZSB0aGUgdGVzdCBwcm9jZXNzIGl0c2VsZiBsaWtlCi0gICAgICAg
IDpweTptZXRoOmBpbmxpbmVfcnVuYC4gIEhvd2V2ZXIgdGhlIHJldHVybiB2YWx1ZSBpcyBhIHR1
cGxlIG9mCi0gICAgICAgIHRoZSBjb2xsZWN0aW9uIGl0ZW1zIGFuZCBhIDpweTpjbGFzczpgSG9v
a1JlY29yZGVyYCBpbnN0YW5jZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgcmVjID0gc2VsZi5p
bmxpbmVfcnVuKCItLWNvbGxlY3Qtb25seSIsICphcmdzKQotICAgICAgICBpdGVtcyA9IFt4Lml0
ZW0gZm9yIHggaW4gcmVjLmdldGNhbGxzKCJweXRlc3RfaXRlbWNvbGxlY3RlZCIpXQotICAgICAg
ICByZXR1cm4gaXRlbXMsIHJlYwotCi0gICAgZGVmIGlubGluZV9ydW4oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKToKLSAgICAgICAgIiIiUnVuIGBgcHl0ZXN0Lm1haW4oKWBgIGluLXByb2Nlc3MsIHJl
dHVybmluZyBhIEhvb2tSZWNvcmRlci4KLQotICAgICAgICBUaGlzIHJ1bnMgdGhlIDpweTpmdW5j
OmBweXRlc3QubWFpbmAgZnVuY3Rpb24gdG8gcnVuIGFsbCBvZgotICAgICAgICBweXRlc3QgaW5z
aWRlIHRoZSB0ZXN0IHByb2Nlc3MgaXRzZWxmLiAgVGhpcyBtZWFucyBpdCBjYW4KLSAgICAgICAg
cmV0dXJuIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlIHdoaWNoIGdpdmVzIG1v
cmUKLSAgICAgICAgZGV0YWlsZWQgcmVzdWx0cyBmcm9tIHRoZW4gcnVuIHRoZW4gY2FuIGJlIGRv
bmUgYnkgbWF0Y2hpbmcKLSAgICAgICAgc3Rkb3V0L3N0ZGVyciBmcm9tIDpweTptZXRoOmBydW5w
eXRlc3RgLgotCi0gICAgICAgIDpwYXJhbSBhcmdzOiBBbnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50
cyB0byBwYXNzIHRvCi0gICAgICAgICAgIDpweTpmdW5jOmBweXRlc3QubWFpbmAuCi0KLSAgICAg
ICAgOnBhcmFtIHBsdWdpbjogKGtleXdvcmQtb25seSkgRXh0cmEgcGx1Z2luIGluc3RhbmNlcyB0
aGUKLSAgICAgICAgICAgYGBweXRlc3QubWFpbigpYGAgaW5zdGFuY2Ugc2hvdWxkIHVzZS4KLQot
ICAgICAgICA6cmV0dXJuOiBBIDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZS4KLSAg
ICAgICAgIiIiCi0gICAgICAgICMgV2hlbiBydW5uaW5nIHB5LnRlc3QgaW5saW5lIGFueSBwbHVn
aW5zIGFjdGl2ZSBpbiB0aGUgbWFpbgotICAgICAgICAjIHRlc3QgcHJvY2VzcyBhcmUgYWxyZWFk
eSBpbXBvcnRlZC4gIFNvIHRoaXMgZGlzYWJsZXMgdGhlCi0gICAgICAgICMgd2FybmluZyB3aGlj
aCB3aWxsIHRyaWdnZXIgdG8gc2F5IHRoZXkgY2FuIG5vIGxvbmdlciBiZQotICAgICAgICAjIHJl
d3JpdHRlbiwgd2hpY2ggaXMgZmluZSBhcyB0aGV5IGFyZSBhbHJlYWR5IHJld3JpdHRlbi4KLSAg
ICAgICAgb3JpZ193YXJuID0gQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5X2lt
cG9ydGVkCi0KLSAgICAgICAgZGVmIHJldmVydCgpOgotICAgICAgICAgICAgQXNzZXJ0aW9uUmV3
cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5X2ltcG9ydGVkID0gb3JpZ193YXJuCi0KLSAgICAgICAg
c2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihyZXZlcnQpCi0gICAgICAgIEFzc2VydGlvblJld3Jp
dGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRlZCA9IGxhbWJkYSAqYTogTm9uZQotCi0gICAg
ICAgIHJlYyA9IFtdCi0KLSAgICAgICAgY2xhc3MgQ29sbGVjdDoKLSAgICAgICAgICAgIGRlZiBw
eXRlc3RfY29uZmlndXJlKHgsIGNvbmZpZyk6Ci0gICAgICAgICAgICAgICAgcmVjLmFwcGVuZChz
ZWxmLm1ha2VfaG9va19yZWNvcmRlcihjb25maWcucGx1Z2lubWFuYWdlcikpCi0KLSAgICAgICAg
cGx1Z2lucyA9IGt3YXJncy5nZXQoInBsdWdpbnMiKSBvciBbXQotICAgICAgICBwbHVnaW5zLmFw
cGVuZChDb2xsZWN0KCkpCi0gICAgICAgIHJldCA9IHB5dGVzdC5tYWluKGxpc3QoYXJncyksIHBs
dWdpbnM9cGx1Z2lucykKLSAgICAgICAgc2VsZi5kZWxldGVfbG9hZGVkX21vZHVsZXMoKQotICAg
ICAgICBpZiBsZW4ocmVjKSA9PSAxOgotICAgICAgICAgICAgcmVwcmVjID0gcmVjLnBvcCgpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjbGFzcyByZXByZWM6Ci0gICAgICAgICAgICAgICAg
cGFzcwotICAgICAgICByZXByZWMucmV0ID0gcmV0Ci0KLSAgICAgICAgIyB0eXBpY2FsbHkgd2Ug
cmVyYWlzZSBrZXlib2FyZCBpbnRlcnJ1cHRzIGZyb20gdGhlIGNoaWxkIHJ1bgotICAgICAgICAj
IGJlY2F1c2UgaXQncyBvdXIgdXNlciByZXF1ZXN0aW5nIGludGVycnVwdGlvbiBvZiB0aGUgdGVz
dGluZwotICAgICAgICBpZiByZXQgPT0gMiBhbmQgbm90IGt3YXJncy5nZXQoIm5vX3JlcmFpc2Vf
Y3RybGMiKToKLSAgICAgICAgICAgIGNhbGxzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3Rfa2V5
Ym9hcmRfaW50ZXJydXB0IikKLSAgICAgICAgICAgIGlmIGNhbGxzIGFuZCBjYWxsc1stMV0uZXhj
aW5mby50eXBlID09IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgICAgIHJhaXNlIEtl
eWJvYXJkSW50ZXJydXB0KCkKLSAgICAgICAgcmV0dXJuIHJlcHJlYwotCi0gICAgZGVmIHJ1bnB5
dGVzdF9pbnByb2Nlc3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiIFJldHVy
biByZXN1bHQgb2YgcnVubmluZyBweXRlc3QgaW4tcHJvY2VzcywgcHJvdmlkaW5nIGEgc2ltaWxh
cgotICAgICAgICBpbnRlcmZhY2UgdG8gd2hhdCBzZWxmLnJ1bnB5dGVzdCgpIHByb3ZpZGVzLiAi
IiIKLSAgICAgICAgaWYga3dhcmdzLmdldCgic3lzcGF0aGluc2VydCIpOgotICAgICAgICAgICAg
c2VsZi5zeXNwYXRoaW5zZXJ0KCkKLSAgICAgICAgbm93ID0gdGltZS50aW1lKCkKLSAgICAgICAg
Y2FwdHVyZSA9IE11bHRpQ2FwdHVyZShDYXB0dXJlPVN5c0NhcHR1cmUpCi0gICAgICAgIGNhcHR1
cmUuc3RhcnRfY2FwdHVyaW5nKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHJlcHJlYyA9IHNlbGYuaW5saW5lX3J1bigqYXJncywgKiprd2FyZ3MpCi0g
ICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdCBhcyBlOgotCi0gICAgICAgICAgICAgICAgY2xh
c3MgcmVwcmVjOgotICAgICAgICAgICAgICAgICAgICByZXQgPSBlLmFyZ3NbMF0KLQotICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRf
ZXhjKCkKLQotICAgICAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKLSAgICAgICAgICAgICAgICAg
ICAgcmV0ID0gMwotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXB0
dXJlLnJlYWRvdXRlcnIoKQotICAgICAgICAgICAgY2FwdHVyZS5zdG9wX2NhcHR1cmluZygpCi0g
ICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoZXJyKQotCi0gICAgICAgIHJlcyA9IFJ1blJlc3VsdChyZXByZWMucmV0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnNwbGl0KCJcbiIpLCBlcnIuc3BsaXQoIlxuIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lLnRpbWUoKSAtIG5vdykKLSAgICAgICAgcmVzLnJlcHJl
YyA9IHJlcHJlYwotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBkZWYgcnVucHl0ZXN0KHNlbGYs
ICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIiBSdW4gcHl0ZXN0IGlubGluZSBvciBpbiBh
IHN1YnByb2Nlc3MsIGRlcGVuZGluZyBvbiB0aGUgY29tbWFuZCBsaW5lCi0gICAgICAgIG9wdGlv
biAiLS1ydW5weXRlc3QiIGFuZCByZXR1cm4gYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCi0KLSAg
ICAgICAgIiIiCi0gICAgICAgIGFyZ3MgPSBzZWxmLl9lbnN1cmVfYmFzZXRlbXAoYXJncykKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QoKmFyZ3MsICoqa3dhcmdzKQotCi0g
ICAgZGVmIF9lbnN1cmVfYmFzZXRlbXAoc2VsZiwgYXJncyk6Ci0gICAgICAgIGFyZ3MgPSBbc3Ry
KHgpIGZvciB4IGluIGFyZ3NdCi0gICAgICAgIGZvciB4IGluIGFyZ3M6Ci0gICAgICAgICAgICBp
ZiBzdHIoeCkuc3RhcnRzd2l0aCgnLS1iYXNldGVtcCcpOgotICAgICAgICAgICAgICAgICMgcHJp
bnQoImJhc2VkdGVtcCBleGlzdHM6ICVzIiAlKGFyZ3MsKSkKLSAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tYmFzZXRlbXA9JXMi
ICUgc2VsZi50bXBkaXIuZGlycGF0aCgnYmFzZXRlbXAnKSkKLSAgICAgICAgICAgICMgcHJpbnQo
ImFkZGVkIGJhc2V0ZW1wOiAlcyIgJShhcmdzLCkpCi0gICAgICAgIHJldHVybiBhcmdzCi0KLSAg
ICBkZWYgcGFyc2Vjb25maWcoc2VsZiwgKmFyZ3MpOgotICAgICAgICAiIiJSZXR1cm4gYSBuZXcg
cHl0ZXN0IENvbmZpZyBpbnN0YW5jZSBmcm9tIGdpdmVuIGNvbW1hbmRsaW5lIGFyZ3MuCi0KLSAg
ICAgICAgVGhpcyBpbnZva2VzIHRoZSBweXRlc3QgYm9vdHN0cmFwcGluZyBjb2RlIGluIF9weXRl
c3QuY29uZmlnCi0gICAgICAgIHRvIGNyZWF0ZSBhIG5ldyA6cHk6Y2xhc3M6YF9weXRlc3QuY29y
ZS5QbHVnaW5NYW5hZ2VyYCBhbmQKLSAgICAgICAgY2FsbCB0aGUgcHl0ZXN0X2NtZGxpbmVfcGFy
c2UgaG9vayB0byBjcmVhdGUgbmV3Ci0gICAgICAgIDpweTpjbGFzczpgX3B5dGVzdC5jb25maWcu
Q29uZmlnYCBpbnN0YW5jZS4KLQotICAgICAgICBJZiA6cHk6YXR0cjpgcGx1Z2luc2AgaGFzIGJl
ZW4gcG9wdWxhdGVkIHRoZXkgc2hvdWxkIGJlIHBsdWdpbgotICAgICAgICBtb2R1bGVzIHdoaWNo
IHdpbGwgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQbHVnaW5NYW5hZ2VyLgotCi0gICAgICAgICIi
IgotICAgICAgICBhcmdzID0gc2VsZi5fZW5zdXJlX2Jhc2V0ZW1wKGFyZ3MpCi0KLSAgICAgICAg
aW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgICAgIGNvbmZpZyA9IF9weXRlc3QuY29uZmlnLl9w
cmVwYXJlY29uZmlnKGFyZ3MsIHNlbGYucGx1Z2lucykKLSAgICAgICAgIyB3ZSBkb24ndCBrbm93
IHdoYXQgdGhlIHRlc3Qgd2lsbCBkbyB3aXRoIHRoaXMgaGFsZi1zZXR1cCBjb25maWcKLSAgICAg
ICAgIyBvYmplY3QgYW5kIHRodXMgd2UgbWFrZSBzdXJlIGl0IGdldHMgdW5jb25maWd1cmVkIHBy
b3Blcmx5IGluIGFueQotICAgICAgICAjIGNhc2UgKG90aGVyd2lzZSBjYXB0dXJpbmcgY291bGQg
c3RpbGwgYmUgYWN0aXZlLCBmb3IgZXhhbXBsZSkKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZp
bmFsaXplcihjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSkKLSAgICAgICAgcmV0dXJuIGNvbmZp
ZwotCi0gICAgZGVmIHBhcnNlY29uZmlndXJlKHNlbGYsICphcmdzKToKLSAgICAgICAgIiIiUmV0
dXJuIGEgbmV3IHB5dGVzdCBjb25maWd1cmVkIENvbmZpZyBpbnN0YW5jZS4KLQotICAgICAgICBU
aGlzIHJldHVybnMgYSBuZXcgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGluc3Rh
bmNlCi0gICAgICAgIGxpa2UgOnB5Om1ldGg6YHBhcnNlY29uZmlnYCwgYnV0IGFsc28gY2FsbHMg
dGhlCi0gICAgICAgIHB5dGVzdF9jb25maWd1cmUgaG9vay4KLQotICAgICAgICAiIiIKLSAgICAg
ICAgY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZygqYXJncykKLSAgICAgICAgY29uZmlnLl9kb19j
b25maWd1cmUoKQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKGNvbmZpZy5fZW5z
dXJlX3VuY29uZmlndXJlKQotICAgICAgICByZXR1cm4gY29uZmlnCi0KLSAgICBkZWYgZ2V0aXRl
bShzZWxmLCBzb3VyY2UsIGZ1bmNuYW1lPSJ0ZXN0X2Z1bmMiKToKLSAgICAgICAgIiIiUmV0dXJu
IHRoZSB0ZXN0IGl0ZW0gZm9yIGEgdGVzdCBmdW5jdGlvbi4KLQotICAgICAgICBUaGlzIHdyaXRl
cyB0aGUgc291cmNlIHRvIGEgcHl0aG9uIGZpbGUgYW5kIHJ1bnMgcHl0ZXN0J3MKLSAgICAgICAg
Y29sbGVjdGlvbiBvbiB0aGUgcmVzdWx0aW5nIG1vZHVsZSwgcmV0dXJuaW5nIHRoZSB0ZXN0IGl0
ZW0KLSAgICAgICAgZm9yIHRoZSByZXF1ZXN0ZWQgZnVuY3Rpb24gbmFtZS4KLQotICAgICAgICA6
cGFyYW0gc291cmNlOiBUaGUgbW9kdWxlIHNvdXJjZS4KLQotICAgICAgICA6cGFyYW0gZnVuY25h
bWU6IFRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZ1bmN0aW9uIGZvciB3aGljaCB0aGUKLSAgICAgICAg
ICAgSXRlbSBtdXN0IGJlIHJldHVybmVkLgotCi0gICAgICAgICIiIgotICAgICAgICBpdGVtcyA9
IHNlbGYuZ2V0aXRlbXMoc291cmNlKQotICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAg
ICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBmdW5jbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
aXRlbQotICAgICAgICBhc3NlcnQgMCwgIiVyIGl0ZW0gbm90IGZvdW5kIGluIG1vZHVsZTpcbiVz
XG5pdGVtczogJXMiICUgKAotICAgICAgICAgICAgICAgICAgZnVuY25hbWUsIHNvdXJjZSwgaXRl
bXMpCi0KLSAgICBkZWYgZ2V0aXRlbXMoc2VsZiwgc291cmNlKToKLSAgICAgICAgIiIiUmV0dXJu
IGFsbCB0ZXN0IGl0ZW1zIGNvbGxlY3RlZCBmcm9tIHRoZSBtb2R1bGUuCi0KLSAgICAgICAgVGhp
cyB3cml0ZXMgdGhlIHNvdXJjZSB0byBhIHB5dGhvbiBmaWxlIGFuZCBydW5zIHB5dGVzdCdzCi0g
ICAgICAgIGNvbGxlY3Rpb24gb24gdGhlIHJlc3VsdGluZyBtb2R1bGUsIHJldHVybmluZyBhbGwg
dGVzdCBpdGVtcwotICAgICAgICBjb250YWluZWQgd2l0aGluLgotCi0gICAgICAgICIiIgotICAg
ICAgICBtb2Rjb2wgPSBzZWxmLmdldG1vZHVsZWNvbChzb3VyY2UpCi0gICAgICAgIHJldHVybiBz
ZWxmLmdlbml0ZW1zKFttb2Rjb2xdKQotCi0gICAgZGVmIGdldG1vZHVsZWNvbChzZWxmLCBzb3Vy
Y2UsIGNvbmZpZ2FyZ3M9KCksIHdpdGhpbml0PUZhbHNlKToKLSAgICAgICAgIiIiUmV0dXJuIHRo
ZSBtb2R1bGUgY29sbGVjdGlvbiBub2RlIGZvciBgYHNvdXJjZWBgLgotCi0gICAgICAgIFRoaXMg
d3JpdGVzIGBgc291cmNlYGAgdG8gYSBmaWxlIHVzaW5nIDpweTptZXRoOmBtYWtlcHlmaWxlYAot
ICAgICAgICBhbmQgdGhlbiBydW5zIHRoZSBweXRlc3QgY29sbGVjdGlvbiBvbiBpdCwgcmV0dXJu
aW5nIHRoZQotICAgICAgICBjb2xsZWN0aW9uIG5vZGUgZm9yIHRoZSB0ZXN0IG1vZHVsZS4KLQot
ICAgICAgICA6cGFyYW0gc291cmNlOiBUaGUgc291cmNlIGNvZGUgb2YgdGhlIG1vZHVsZSB0byBj
b2xsZWN0LgotCi0gICAgICAgIDpwYXJhbSBjb25maWdhcmdzOiBBbnkgZXh0cmEgYXJndW1lbnRz
IHRvIHBhc3MgdG8KLSAgICAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlndXJlYC4KLQotICAg
ICAgICA6cGFyYW0gd2l0aGluaXQ6IFdoZXRoZXIgdG8gYWxzbyB3cml0ZSBhIGBgX19pbml0X18u
cHlgYCBmaWxlCi0gICAgICAgICAgIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIGVuc3Vy
ZSBpdCBpcyBhIHBhY2thZ2UuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGt3ID0ge3NlbGYucmVx
dWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291cmNlKHNvdXJjZSkuc3RyaXAoKX0KLSAgICAgICAg
cGF0aCA9IHNlbGYubWFrZXB5ZmlsZSgqKmt3KQotICAgICAgICBpZiB3aXRoaW5pdDoKLSAgICAg
ICAgICAgIHNlbGYubWFrZXB5ZmlsZShfX2luaXRfXz0iIyIpCi0gICAgICAgIHNlbGYuY29uZmln
ID0gY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZ3VyZShwYXRoLCAqY29uZmlnYXJncykKLSAgICAg
ICAgbm9kZSA9IHNlbGYuZ2V0bm9kZShjb25maWcsIHBhdGgpCi0KLSAgICAgICAgcmV0dXJuIG5v
ZGUKLQotICAgIGRlZiBjb2xsZWN0X2J5X25hbWUoc2VsZiwgbW9kY29sLCBuYW1lKToKLSAgICAg
ICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG5vZGUgZm9yIG5hbWUgZnJvbSB0aGUgbW9kdWxl
IGNvbGxlY3Rpb24uCi0KLSAgICAgICAgVGhpcyB3aWxsIHNlYXJjaCBhIG1vZHVsZSBjb2xsZWN0
aW9uIG5vZGUgZm9yIGEgY29sbGVjdGlvbgotICAgICAgICBub2RlIG1hdGNoaW5nIHRoZSBnaXZl
biBuYW1lLgotCi0gICAgICAgIDpwYXJhbSBtb2Rjb2w6IEEgbW9kdWxlIGNvbGxlY3Rpb24gbm9k
ZSwgc2VlCi0gICAgICAgICAgIDpweTptZXRoOmBnZXRtb2R1bGVjb2xgLgotCi0gICAgICAgIDpw
YXJhbSBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byByZXR1cm4uCi0KLSAgICAgICAgIiIi
Ci0gICAgICAgIGlmIG1vZGNvbCBub3QgaW4gc2VsZi5fbW9kX2NvbGxlY3Rpb25zOgotICAgICAg
ICAgICAgc2VsZi5fbW9kX2NvbGxlY3Rpb25zW21vZGNvbF0gPSBsaXN0KG1vZGNvbC5jb2xsZWN0
KCkpCi0gICAgICAgIGZvciBjb2xpdGVtIGluIHNlbGYuX21vZF9jb2xsZWN0aW9uc1ttb2Rjb2xd
OgotICAgICAgICAgICAgaWYgY29saXRlbS5uYW1lID09IG5hbWU6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGNvbGl0ZW0KLQotICAgIGRlZiBwb3BlbihzZWxmLCBjbWRhcmdzLCBzdGRvdXQsIHN0
ZGVyciwgKiprdyk6Ci0gICAgICAgICIiIkludm9rZSBzdWJwcm9jZXNzLlBvcGVuLgotCi0gICAg
ICAgIFRoaXMgY2FsbHMgc3VicHJvY2Vzcy5Qb3BlbiBtYWtpbmcgc3VyZSB0aGUgY3VycmVudCB3
b3JraW5nCi0gICAgICAgIGRpcmVjdG9yeSBpcyB0aGUgUFlUSE9OUEFUSC4KLQotICAgICAgICBZ
b3UgcHJvYmFibHkgd2FudCB0byB1c2UgOnB5Om1ldGg6YHJ1bmAgaW5zdGVhZC4KLQotICAgICAg
ICAiIiIKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKLSAgICAgICAgZW52WydQWVRI
T05QQVRIJ10gPSBvcy5wYXRoc2VwLmpvaW4oZmlsdGVyKE5vbmUsIFsKLSAgICAgICAgICAgIHN0
cihvcy5nZXRjd2QoKSksIGVudi5nZXQoJ1BZVEhPTlBBVEgnLCAnJyldKSkKLSAgICAgICAga3db
J2VudiddID0gZW52Ci0KLSAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuKGNtZGFyZ3Ms
IHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0PXN0ZG91dCwgc3RkZXJyPXN0ZGVyciwgKipr
dykKLSAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2UoKQotCi0gICAgICAgIHJldHVybiBwb3Blbgot
Ci0gICAgZGVmIHJ1bihzZWxmLCAqY21kYXJncyk6Ci0gICAgICAgICIiIlJ1biBhIGNvbW1hbmQg
d2l0aCBhcmd1bWVudHMuCi0KLSAgICAgICAgUnVuIGEgcHJvY2VzcyB1c2luZyBzdWJwcm9jZXNz
LlBvcGVuIHNhdmluZyB0aGUgc3Rkb3V0IGFuZAotICAgICAgICBzdGRlcnIuCi0KLSAgICAgICAg
UmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KLQotICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bigqY21kYXJncykKLQotICAgIGRlZiBfcnVuKHNlbGYsICpjbWRhcmdz
KToKLSAgICAgICAgY21kYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gY21kYXJnc10KLSAgICAgICAg
cDEgPSBzZWxmLnRtcGRpci5qb2luKCJzdGRvdXQiKQotICAgICAgICBwMiA9IHNlbGYudG1wZGly
LmpvaW4oInN0ZGVyciIpCi0gICAgICAgIHByaW50KCJydW5uaW5nOiIsICcgJy5qb2luKGNtZGFy
Z3MpKQotICAgICAgICBwcmludCgiICAgICBpbjoiLCBzdHIocHkucGF0aC5sb2NhbCgpKSkKLSAg
ICAgICAgZjEgPSBjb2RlY3Mub3BlbihzdHIocDEpLCAidyIsIGVuY29kaW5nPSJ1dGY4IikKLSAg
ICAgICAgZjIgPSBjb2RlY3Mub3BlbihzdHIocDIpLCAidyIsIGVuY29kaW5nPSJ1dGY4IikKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgbm93ID0gdGltZS50aW1lKCkKLSAgICAgICAgICAgIHBv
cGVuID0gc2VsZi5wb3BlbihjbWRhcmdzLCBzdGRvdXQ9ZjEsIHN0ZGVycj1mMiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9KHN5cy5wbGF0Zm9ybSAhPSAid2luMzIi
KSkKLSAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQotICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgZjEuY2xvc2UoKQotICAgICAgICAgICAgZjIuY2xvc2UoKQotICAgICAgICBmMSA9
IGNvZGVjcy5vcGVuKHN0cihwMSksICJyIiwgZW5jb2Rpbmc9InV0ZjgiKQotICAgICAgICBmMiA9
IGNvZGVjcy5vcGVuKHN0cihwMiksICJyIiwgZW5jb2Rpbmc9InV0ZjgiKQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBvdXQgPSBmMS5yZWFkKCkuc3BsaXRsaW5lcygpCi0gICAgICAgICAgICBl
cnIgPSBmMi5yZWFkKCkuc3BsaXRsaW5lcygpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBmMS5jbG9zZSgpCi0gICAgICAgICAgICBmMi5jbG9zZSgpCi0gICAgICAgIHNlbGYuX2R1bXBf
bGluZXMob3V0LCBzeXMuc3Rkb3V0KQotICAgICAgICBzZWxmLl9kdW1wX2xpbmVzKGVyciwgc3lz
LnN0ZGVycikKLSAgICAgICAgcmV0dXJuIFJ1blJlc3VsdChyZXQsIG91dCwgZXJyLCB0aW1lLnRp
bWUoKSAtIG5vdykKLQotICAgIGRlZiBfZHVtcF9saW5lcyhzZWxmLCBsaW5lcywgZnApOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKLSAgICAgICAgICAgICAg
ICBwcmludChsaW5lLCBmaWxlPWZwKQotICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9y
OgotICAgICAgICAgICAgcHJpbnQoImNvdWxkbid0IHByaW50IHRvICVzIGJlY2F1c2Ugb2YgZW5j
b2RpbmciICUgKGZwLCkpCi0KLSAgICBkZWYgX2dldHB5dGVzdGFyZ3Moc2VsZik6Ci0gICAgICAg
ICMgd2UgY2Fubm90IHVzZSAiKHN5cy5leGVjdXRhYmxlLHNjcmlwdCkiCi0gICAgICAgICMgYmVj
YXVzZSBvbiB3aW5kb3dzIHRoZSBzY3JpcHQgaXMgZS5nLiBhIHB5dGVzdC5leGUKLSAgICAgICAg
cmV0dXJuIChzeXMuZXhlY3V0YWJsZSwgUFlURVNUX0ZVTExQQVRIKSAjIG5vcWEKLQotICAgIGRl
ZiBydW5weXRob24oc2VsZiwgc2NyaXB0KToKLSAgICAgICAgIiIiUnVuIGEgcHl0aG9uIHNjcmlw
dCB1c2luZyBzeXMuZXhlY3V0YWJsZSBhcyBpbnRlcnByZXRlci4KLQotICAgICAgICBSZXR1cm5z
IGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLgotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNl
bGYucnVuKHN5cy5leGVjdXRhYmxlLCBzY3JpcHQpCi0KLSAgICBkZWYgcnVucHl0aG9uX2Moc2Vs
ZiwgY29tbWFuZCk6Ci0gICAgICAgICIiIlJ1biBweXRob24gLWMgImNvbW1hbmQiLCByZXR1cm4g
YSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnJ1bihzeXMu
ZXhlY3V0YWJsZSwgIi1jIiwgY29tbWFuZCkKLQotICAgIGRlZiBydW5weXRlc3Rfc3VicHJvY2Vz
cyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJSdW4gcHl0ZXN0IGFzIGEgc3Vi
cHJvY2VzcyB3aXRoIGdpdmVuIGFyZ3VtZW50cy4KLQotICAgICAgICBBbnkgcGx1Z2lucyBhZGRl
ZCB0byB0aGUgOnB5OmF0dHI6YHBsdWdpbnNgIGxpc3Qgd2lsbCBhZGRlZAotICAgICAgICB1c2lu
ZyB0aGUgYGAtcGBgIGNvbW1hbmQgbGluZSBvcHRpb24uICBBZGR0aW9uYWxseQotICAgICAgICBg
YC0tYmFzZXRlbXBgYCBpcyB1c2VkIHB1dCBhbnkgdGVtcG9yYXJ5IGZpbGVzIGFuZCBkaXJlY3Rv
cmllcwotICAgICAgICBpbiBhIG51bWJlcmVkIGRpcmVjdG9yeSBwcmVmaXhlZCB3aXRoICJydW5w
eXRlc3QtIiBzbyB0aGV5IGRvCi0gICAgICAgIG5vdCBjb25mbGljdCB3aXRoIHRoZSBub3JtYWwg
bnVtYmVyZCBweXRlc3QgbG9jYXRpb24gZm9yCi0gICAgICAgIHRlbXBvcmFyeSBmaWxlcyBhbmQg
ZGlyZWN0b3JpZXMuCi0KLSAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4K
LQotICAgICAgICAiIiIKLSAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwubWFrZV9udW1iZXJlZF9k
aXIocHJlZml4PSJydW5weXRlc3QtIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga2VlcD1Ob25lLCByb290ZGlyPXNlbGYudG1wZGlyKQotICAgICAgICBhcmdz
ID0gKCctLWJhc2V0ZW1wPSVzJyAlIHAsICkgKyBhcmdzCi0gICAgICAgICMgZm9yIHggaW4gYXJn
czoKLSAgICAgICAgIyAgICBpZiAnLS1jb25mY3V0ZGlyJyBpbiBzdHIoeCk6Ci0gICAgICAgICMg
ICAgICAgIGJyZWFrCi0gICAgICAgICMgZWxzZToKLSAgICAgICAgIyAgICBwYXNzCi0gICAgICAg
ICMgICAgYXJncyA9ICgnLS1jb25mY3V0ZGlyPS4nLCkgKyBhcmdzCi0gICAgICAgIHBsdWdpbnMg
PSBbeCBmb3IgeCBpbiBzZWxmLnBsdWdpbnMgaWYgaXNpbnN0YW5jZSh4LCBzdHIpXQotICAgICAg
ICBpZiBwbHVnaW5zOgotICAgICAgICAgICAgYXJncyA9ICgnLXAnLCBwbHVnaW5zWzBdKSArIGFy
Z3MKLSAgICAgICAgYXJncyA9IHNlbGYuX2dldHB5dGVzdGFyZ3MoKSArIGFyZ3MKLSAgICAgICAg
cmV0dXJuIHNlbGYucnVuKCphcmdzKQotCi0gICAgZGVmIHNwYXduX3B5dGVzdChzZWxmLCBzdHJp
bmcsIGV4cGVjdF90aW1lb3V0PTEwLjApOgotICAgICAgICAiIiJSdW4gcHl0ZXN0IHVzaW5nIHBl
eHBlY3QuCi0KLSAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHRvIHVzZSB0aGUgcmlnaHQgcHl0ZXN0
IGFuZCBzZXRzIHVwIHRoZQotICAgICAgICB0ZW1wb3JhcnkgZGlyZWN0b3J5IGxvY2F0aW9ucy4K
LQotICAgICAgICBUaGUgcGV4cGVjdCBjaGlsZCBpcyByZXR1cm5lZC4KLQotICAgICAgICAiIiIK
LSAgICAgICAgYmFzZXRlbXAgPSBzZWxmLnRtcGRpci5ta2RpcigidGVtcC1wZXhwZWN0IikKLSAg
ICAgICAgaW52b2tlID0gIiAiLmpvaW4obWFwKHN0ciwgc2VsZi5fZ2V0cHl0ZXN0YXJncygpKSkK
LSAgICAgICAgY21kID0gIiVzIC0tYmFzZXRlbXA9JXMgJXMiICUgKGludm9rZSwgYmFzZXRlbXAs
IHN0cmluZykKLSAgICAgICAgcmV0dXJuIHNlbGYuc3Bhd24oY21kLCBleHBlY3RfdGltZW91dD1l
eHBlY3RfdGltZW91dCkKLQotICAgIGRlZiBzcGF3bihzZWxmLCBjbWQsIGV4cGVjdF90aW1lb3V0
PTEwLjApOgotICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHVzaW5nIHBleHBlY3QuCi0KLSAgICAg
ICAgVGhlIHBleHBlY3QgY2hpbGQgaXMgcmV0dXJuZWQuCi0gICAgICAgICIiIgotICAgICAgICBw
ZXhwZWN0ID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGV4cGVjdCIsICIzLjAiKQotICAgICAgICBp
ZiBoYXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJykgYW5kICc2NCcgaW4gcGxhdGZvcm0u
bWFjaGluZSgpOgotICAgICAgICAgICAgcHl0ZXN0LnNraXAoInB5cHktNjQgYml0IG5vdCBzdXBw
b3J0ZWQiKQotICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgiZnJlZWJzZCIpOgot
ICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJwZXhwZWN0IGRvZXMgbm90IHdvcmsgcmVsaWFibHkg
b24gZnJlZWJzZCIpCi0gICAgICAgIGxvZ2ZpbGUgPSBzZWxmLnRtcGRpci5qb2luKCJzcGF3bi5v
dXQiKS5vcGVuKCJ3YiIpCi0gICAgICAgIGNoaWxkID0gcGV4cGVjdC5zcGF3bihjbWQsIGxvZ2Zp
bGU9bG9nZmlsZSkKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihsb2dmaWxlLmNs
b3NlKQotICAgICAgICBjaGlsZC50aW1lb3V0ID0gZXhwZWN0X3RpbWVvdXQKLSAgICAgICAgcmV0
dXJuIGNoaWxkCi0KLQotZGVmIGdldGRlY29kZWQob3V0KToKLSAgICB0cnk6Ci0gICAgICAgIHJl
dHVybiBvdXQuZGVjb2RlKCJ1dGYtOCIpCi0gICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoK
LSAgICAgICAgcmV0dXJuICJJTlRFUk5BTCBub3QtdXRmOC1kZWNvZGVhYmxlLCB0cnVuY2F0ZWQg
c3RyaW5nOlxuJXMiICUgKAotICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIob3V0KSwpCi0KLQot
Y2xhc3MgTGluZUNvbXA6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnN0
cmluZ2lvID0gcHkuaW8uVGV4dElPKCkKLQotICAgIGRlZiBhc3NlcnRfY29udGFpbnNfbGluZXMo
c2VsZiwgbGluZXMyKToKLSAgICAgICAgIiIiIGFzc2VydCB0aGF0IGxpbmVzMiBhcmUgY29udGFp
bmVkIChsaW5lYXJseSkgaW4gbGluZXMxLgotICAgICAgICAgICAgcmV0dXJuIGEgbGlzdCBvZiBl
eHRyYWxpbmVzIGZvdW5kLgotICAgICAgICAiIiIKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCi0gICAgICAgIHZhbCA9IHNlbGYuc3RyaW5naW8uZ2V0dmFsdWUoKQotICAgICAgICBz
ZWxmLnN0cmluZ2lvLnRydW5jYXRlKDApCi0gICAgICAgIHNlbGYuc3RyaW5naW8uc2VlaygwKQot
ICAgICAgICBsaW5lczEgPSB2YWwuc3BsaXQoIlxuIikKLSAgICAgICAgcmV0dXJuIExpbmVNYXRj
aGVyKGxpbmVzMSkuZm5tYXRjaF9saW5lcyhsaW5lczIpCi0KLQotY2xhc3MgTGluZU1hdGNoZXI6
Ci0gICAgIiIiRmxleGlibGUgbWF0Y2hpbmcgb2YgdGV4dC4KLQotICAgIFRoaXMgaXMgYSBjb252
ZW5pZW5jZSBjbGFzcyB0byB0ZXN0IGxhcmdlIHRleHRzIGxpa2UgdGhlIG91dHB1dCBvZgotICAg
IGNvbW1hbmRzLgotCi0gICAgVGhlIGNvbnN0cnVjdG9yIHRha2VzIGEgbGlzdCBvZiBsaW5lcyB3
aXRob3V0IHRoZWlyIHRyYWlsaW5nCi0gICAgbmV3bGluZXMsIGkuZS4gYGB0ZXh0LnNwbGl0bGlu
ZXMoKWBgLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMpOgotICAg
ICAgICBzZWxmLmxpbmVzID0gbGluZXMKLSAgICAgICAgc2VsZi5fbG9nX291dHB1dCA9IFtdCi0K
LSAgICBkZWYgc3RyKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGVudGlyZSBvcmlnaW5h
bCB0ZXh0LiIiIgotICAgICAgICByZXR1cm4gIlxuIi5qb2luKHNlbGYubGluZXMpCi0KLSAgICBk
ZWYgX2dldGxpbmVzKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobGluZXMy
LCBzdHIpOgotICAgICAgICAgICAgbGluZXMyID0gU291cmNlKGxpbmVzMikKLSAgICAgICAgaWYg
aXNpbnN0YW5jZShsaW5lczIsIFNvdXJjZSk6Ci0gICAgICAgICAgICBsaW5lczIgPSBsaW5lczIu
c3RyaXAoKS5saW5lcwotICAgICAgICByZXR1cm4gbGluZXMyCi0KLSAgICBkZWYgZm5tYXRjaF9s
aW5lc19yYW5kb20oc2VsZiwgbGluZXMyKToKLSAgICAgICAgIiIiQ2hlY2sgbGluZXMgZXhpc3Qg
aW4gdGhlIG91dHB1dCB1c2luZyBgYGZubWF0Y2guZm5tYXRjaGBgLCBpbiBhbnkgb3JkZXIuCi0K
LSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBoYXZlIHRvIG9j
Y3VyIGluIHRoZQotICAgICAgICBvdXRwdXQsIGluIGFueSBvcmRlci4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHNlbGYuX21hdGNoX2xpbmVzX3JhbmRvbShsaW5lczIsIGZubWF0Y2gpCi0KLSAgICBk
ZWYgcmVfbWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgICIiIkNoZWNr
IGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQgdXNpbmcgYGByZS5tYXRjaGBgLCBpbiBhbnkgb3Jk
ZXIuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBoYXZl
IHRvIG9jY3VyIGluIHRoZQotICAgICAgICBvdXRwdXQsIGluIGFueSBvcmRlci4KLQotICAgICAg
ICAiIiIKLSAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXNfcmFuZG9tKGxpbmVzMiwgbGFtYmRhIG5h
bWUsIHBhdDogcmUubWF0Y2gocGF0LCBuYW1lKSkKLQotICAgIGRlZiBfbWF0Y2hfbGluZXNfcmFu
ZG9tKHNlbGYsIGxpbmVzMiwgbWF0Y2hfZnVuYyk6Ci0gICAgICAgICIiIkNoZWNrIGxpbmVzIGV4
aXN0IGluIHRoZSBvdXRwdXQuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBs
aW5lcyB3aGljaCBoYXZlIHRvIG9jY3VyIGluIHRoZQotICAgICAgICBvdXRwdXQsIGluIGFueSBv
cmRlci4gIEVhY2ggbGluZSBjYW4gY29udGFpbiBnbG9iIHdoaWxkY2FyZHMuCi0KLSAgICAgICAg
IiIiCi0gICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKLSAgICAgICAgZm9y
IGxpbmUgaW4gbGluZXMyOgotICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5saW5lczoKLSAgICAg
ICAgICAgICAgICBpZiBsaW5lID09IHggb3IgbWF0Y2hfZnVuYyh4LCBsaW5lKToKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nKCJtYXRjaGVkOiAiLCByZXByKGxpbmUpKQotICAgICAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9sb2coImxpbmUgJXIgbm90IGZvdW5kIGluIG91dHB1dCIgJSBsaW5lKQotICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3Ioc2VsZi5fbG9nX3RleHQpCi0KLSAgICBkZWYgZ2V0X2xpbmVz
X2FmdGVyKHNlbGYsIGZubGluZSk6Ci0gICAgICAgICIiIlJldHVybiBhbGwgbGluZXMgZm9sbG93
aW5nIHRoZSBnaXZlbiBsaW5lIGluIHRoZSB0ZXh0LgotCi0gICAgICAgIFRoZSBnaXZlbiBsaW5l
IGNhbiBjb250YWluIGdsb2Igd2lsZGNhcmRzLgotICAgICAgICAiIiIKLSAgICAgICAgZm9yIGks
IGxpbmUgaW4gZW51bWVyYXRlKHNlbGYubGluZXMpOgotICAgICAgICAgICAgaWYgZm5saW5lID09
IGxpbmUgb3IgZm5tYXRjaChsaW5lLCBmbmxpbmUpOgotICAgICAgICAgICAgICAgIHJldHVybiBz
ZWxmLmxpbmVzW2kgKyAxOl0KLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibGluZSAlciBub3Qg
Zm91bmQgaW4gb3V0cHV0IiAlIGZubGluZSkKLQotICAgIGRlZiBfbG9nKHNlbGYsICphcmdzKToK
LSAgICAgICAgc2VsZi5fbG9nX291dHB1dC5hcHBlbmQoJyAnLmpvaW4oKHN0cih4KSBmb3IgeCBp
biBhcmdzKSkpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgX2xvZ190ZXh0KHNlbGYpOgotICAg
ICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuX2xvZ19vdXRwdXQpCi0KLSAgICBkZWYgZm5tYXRj
aF9saW5lcyhzZWxmLCBsaW5lczIpOgotICAgICAgICAiIiJTZWFyY2ggY2FwdHVyZWQgdGV4dCBm
b3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGBmbm1hdGNoLmZubWF0Y2hgYC4KLQotICAgICAgICBU
aGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUgdG8gbWF0Y2ggYW5kIGNh
bgotICAgICAgICB1c2UgZ2xvYiB3aWxkY2FyZHMuICBJZiB0aGV5IGRvIG5vdCBtYXRjaCBhIHB5
dGVzdC5mYWlsKCkgaXMKLSAgICAgICAgY2FsbGVkLiAgVGhlIG1hdGNoZXMgYW5kIG5vbi1tYXRj
aGVzIGFyZSBhbHNvIHByaW50ZWQgb24KLSAgICAgICAgc3Rkb3V0LgotCi0gICAgICAgICIiIgot
ICAgICAgICBzZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGZubWF0Y2gsICdmbm1hdGNoJykKLQot
ICAgIGRlZiByZV9tYXRjaF9saW5lcyhzZWxmLCBsaW5lczIpOgotICAgICAgICAiIiJTZWFyY2gg
Y2FwdHVyZWQgdGV4dCBmb3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGByZS5tYXRjaGBgLgotCi0g
ICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBtYXRj
aCB1c2luZyBgYHJlLm1hdGNoYGAuCi0gICAgICAgIElmIHRoZXkgZG8gbm90IG1hdGNoIGEgcHl0
ZXN0LmZhaWwoKSBpcyBjYWxsZWQuCi0KLSAgICAgICAgVGhlIG1hdGNoZXMgYW5kIG5vbi1tYXRj
aGVzIGFyZSBhbHNvIHByaW50ZWQgb24KLSAgICAgICAgc3Rkb3V0LgotICAgICAgICAiIiIKLSAg
ICAgICAgc2VsZi5fbWF0Y2hfbGluZXMobGluZXMyLCBsYW1iZGEgbmFtZSwgcGF0OiByZS5tYXRj
aChwYXQsIG5hbWUpLCAncmUubWF0Y2gnKQotCi0gICAgZGVmIF9tYXRjaF9saW5lcyhzZWxmLCBs
aW5lczIsIG1hdGNoX2Z1bmMsIG1hdGNoX25pY2tuYW1lKToKLSAgICAgICAgIiIiVW5kZXJseWlu
ZyBpbXBsZW1lbnRhdGlvbiBvZiBgYGZubWF0Y2hfbGluZXNgYCBhbmQgYGByZV9tYXRjaF9saW5l
c2BgLgotCi0gICAgICAgIDpwYXJhbSBsaXN0W3N0cl0gbGluZXMyOiBsaXN0IG9mIHN0cmluZyBw
YXR0ZXJucyB0byBtYXRjaC4gVGhlIGFjdHVhbCBmb3JtYXQgZGVwZW5kcyBvbgotICAgICAgICAg
ICAgYGBtYXRjaF9mdW5jYGAuCi0gICAgICAgIDpwYXJhbSBtYXRjaF9mdW5jOiBhIGNhbGxhYmxl
IGBgbWF0Y2hfZnVuYyhsaW5lLCBwYXR0ZXJuKWBgIHdoZXJlIGxpbmUgaXMgdGhlIGNhcHR1cmVk
Ci0gICAgICAgICAgICBsaW5lIGZyb20gc3Rkb3V0L3N0ZGVyciBhbmQgcGF0dGVybiBpcyB0aGUg
bWF0Y2hpbmcgcGF0dGVybi4KLQotICAgICAgICA6cGFyYW0gc3RyIG1hdGNoX25pY2tuYW1lOiB0
aGUgbmlja25hbWUgZm9yIHRoZSBtYXRjaCBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgbG9nZ2VkCi0g
ICAgICAgICAgICB0byBzdGRvdXQgd2hlbiBhIG1hdGNoIG9jY3Vycy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKLSAgICAgICAgbGluZXMxID0g
c2VsZi5saW5lc1s6XQotICAgICAgICBuZXh0bGluZSA9IE5vbmUKLSAgICAgICAgZXh0cmFsaW5l
cyA9IFtdCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBmb3IgbGlu
ZSBpbiBsaW5lczI6Ci0gICAgICAgICAgICBub21hdGNocHJpbnRlZCA9IEZhbHNlCi0gICAgICAg
ICAgICB3aGlsZSBsaW5lczE6Ci0gICAgICAgICAgICAgICAgbmV4dGxpbmUgPSBsaW5lczEucG9w
KDApCi0gICAgICAgICAgICAgICAgaWYgbGluZSA9PSBuZXh0bGluZToKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nKCJleGFjdCBtYXRjaDoiLCByZXByKGxpbmUpKQotICAgICAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVsaWYgbWF0Y2hfZnVuYyhuZXh0bGluZSwg
bGluZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiJXM6IiAlIG1hdGNoX25pY2tu
YW1lLCByZXByKGxpbmUpKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2coIiAgIHdpdGg6
IiwgcmVwcihuZXh0bGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IG5vbWF0Y2hwcmludGVkOgot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJub21hdGNoOiIsIHJlcHIobGluZSkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBub21hdGNocHJpbnRlZCA9IFRydWUKLSAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nKCIgICAgYW5kOiIsIHJlcHIobmV4dGxpbmUpKQotICAgICAg
ICAgICAgICAgIGV4dHJhbGluZXMuYXBwZW5kKG5leHRsaW5lKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2coInJlbWFpbnMgdW5tYXRjaGVkOiAlciIgJSAobGlu
ZSwpKQotICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKHNlbGYuX2xvZ190ZXh0KQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3B5dGhvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjUwMTcxYTllOWM5MDkw
OWRhM2NlMjdiYTU5NjM4YTVmYzliMTY0NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbi5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDExNzUgKzAsMCBAQAotIiIiIFB5dGhvbiB0ZXN0IGRpc2NvdmVyeSwgc2V0dXAg
YW5kIHJ1biBvZiB0ZXN0IGZ1bmN0aW9ucy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBmbm1hdGNo
Ci1pbXBvcnQgaW5zcGVjdAotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1pbXBvcnQgY29sbGVjdGlv
bnMKLWltcG9ydCB3YXJuaW5ncwotZnJvbSB0ZXh0d3JhcCBpbXBvcnQgZGVkZW50Ci1mcm9tIGl0
ZXJ0b29scyBpbXBvcnQgY291bnQKLQotCi1pbXBvcnQgcHkKLWltcG9ydCBzaXgKLWZyb20gX3B5
dGVzdC5tYXJrIGltcG9ydCBNYXJrZXJFcnJvcgotZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQg
aG9va2ltcGwKLQotaW1wb3J0IF9weXRlc3QKLWltcG9ydCBwbHVnZ3kKLWZyb20gX3B5dGVzdCBp
bXBvcnQgZml4dHVyZXMKLWZyb20gX3B5dGVzdCBpbXBvcnQgbWFpbgotZnJvbSBfcHl0ZXN0IGlt
cG9ydCBkZXByZWNhdGVkCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCAoCi0gICAgaXNjbGFz
cywgaXNmdW5jdGlvbiwgaXNfZ2VuZXJhdG9yLCBhc2NpaV9lc2NhcGVkLAotICAgIFJFR0VYX1RZ
UEUsIFNUUklOR19UWVBFUywgTm9uZVR5cGUsIE5PVFNFVCwKLSAgICBnZXRfcmVhbF9mdW5jLCBn
ZXRmc2xpbmVubywgc2FmZV9nZXRhdHRyLAotICAgIHNhZmVfc3RyLCBnZXRsb2NhdGlvbiwgZW51
bSwKLSkKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAotZnJvbSBfcHl0ZXN0Lm1h
cmsgaW1wb3J0IHRyYW5zZmVyX21hcmtlcnMKLQotY3V0ZGlyMSA9IHB5LnBhdGgubG9jYWwocGx1
Z2d5Ll9fZmlsZV9fLnJzdHJpcCgib2MiKSkKLWN1dGRpcjIgPSBweS5wYXRoLmxvY2FsKF9weXRl
c3QuX19maWxlX18pLmRpcnBhdGgoKQotY3V0ZGlyMyA9IHB5LnBhdGgubG9jYWwocHkuX19maWxl
X18pLmRpcnBhdGgoKQotCi0KLWRlZiBmaWx0ZXJfdHJhY2ViYWNrKGVudHJ5KToKLSAgICAiIiJS
ZXR1cm4gVHJ1ZSBpZiBhIFRyYWNlYmFja0VudHJ5IGluc3RhbmNlIHNob3VsZCBiZSByZW1vdmVk
IGZyb20gdHJhY2ViYWNrczoKLSAgICAqIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb2RlIChubyBj
b2RlIHRvIHNob3cgdXAgZm9yIGl0KTsKLSAgICAqIGludGVybmFsIHRyYWNlYmFjayBmcm9tIHB5
dGVzdCBvciBpdHMgaW50ZXJuYWwgbGlicmFyaWVzLCBweSBhbmQgcGx1Z2d5LgotICAgICIiIgot
ICAgICMgZW50cnkucGF0aCBtaWdodCBzb21ldGltZXMgcmV0dXJuIGEgc3RyIG9iamVjdCB3aGVu
IHRoZSBlbnRyeQotICAgICMgcG9pbnRzIHRvIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb2RlCi0g
ICAgIyBzZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzcxCi0g
ICAgcmF3X2ZpbGVuYW1lID0gZW50cnkuZnJhbWUuY29kZS5yYXcuY29fZmlsZW5hbWUKLSAgICBp
c19nZW5lcmF0ZWQgPSAnPCcgaW4gcmF3X2ZpbGVuYW1lIGFuZCAnPicgaW4gcmF3X2ZpbGVuYW1l
Ci0gICAgaWYgaXNfZ2VuZXJhdGVkOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAjIGVudHJ5
LnBhdGggbWlnaHQgcG9pbnQgdG8gYW4gaW5leGlzdGluZyBmaWxlLCBpbiB3aGljaCBjYXNlIGl0
IHdpbGwKLSAgICAjIGFsc3NvIHJldHVybiBhIHN0ciBvYmplY3QuIHNlZSAjMTEzMwotICAgIHAg
PSBweS5wYXRoLmxvY2FsKGVudHJ5LnBhdGgpCi0gICAgcmV0dXJuIHAgIT0gY3V0ZGlyMSBhbmQg
bm90IHAucmVsdG8oY3V0ZGlyMikgYW5kIG5vdCBwLnJlbHRvKGN1dGRpcjMpCi0KLQotZGVmIHB5
b2JqX3Byb3BlcnR5KG5hbWUpOgotICAgIGRlZiBnZXQoc2VsZik6Ci0gICAgICAgIG5vZGUgPSBz
ZWxmLmdldHBhcmVudChnZXRhdHRyKF9faW1wb3J0X18oJ3B5dGVzdCcpLCBuYW1lKSkKLSAgICAg
ICAgaWYgbm9kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBub2RlLm9iagotICAg
IGRvYyA9ICJweXRob24gJXMgb2JqZWN0IHRoaXMgbm9kZSB3YXMgY29sbGVjdGVkIGZyb20gKGNh
biBiZSBOb25lKS4iICUgKAotICAgICAgICAgIG5hbWUubG93ZXIoKSwpCi0gICAgcmV0dXJuIHBy
b3BlcnR5KGdldCwgTm9uZSwgTm9uZSwgZG9jKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBh
cnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1maXh0dXJlcycsICctLWZ1bmNhcmdzJywKLSAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ic2hvd2ZpeHR1cmVzIiwgZGVmYXVsdD1GYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBhdmFpbGFibGUgZml4dHVyZXMsIHNv
cnRlZCBieSBwbHVnaW4gYXBwZWFyYW5jZSIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAg
ICAnLS1maXh0dXJlcy1wZXItdGVzdCcsCi0gICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0g
ICAgICAgIGRlc3Q9InNob3dfZml4dHVyZXNfcGVyX3Rlc3QiLAotICAgICAgICBkZWZhdWx0PUZh
bHNlLAotICAgICAgICBoZWxwPSJzaG93IGZpeHR1cmVzIHBlciB0ZXN0IiwKLSAgICApCi0gICAg
cGFyc2VyLmFkZGluaSgidXNlZml4dHVyZXMiLCB0eXBlPSJhcmdzIiwgZGVmYXVsdD1bXSwKLSAg
ICAgICAgICAgICAgICAgIGhlbHA9Imxpc3Qgb2YgZGVmYXVsdCBmaXh0dXJlcyB0byBiZSB1c2Vk
IHdpdGggdGhpcyBwcm9qZWN0IikKLSAgICBwYXJzZXIuYWRkaW5pKCJweXRob25fZmlsZXMiLCB0
eXBlPSJhcmdzIiwKLSAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Wyd0ZXN0XyoucHknLCAnKl90
ZXN0LnB5J10sCi0gICAgICAgICAgICAgICAgICBoZWxwPSJnbG9iLXN0eWxlIGZpbGUgcGF0dGVy
bnMgZm9yIFB5dGhvbiB0ZXN0IG1vZHVsZSBkaXNjb3ZlcnkiKQotICAgIHBhcnNlci5hZGRpbmko
InB5dGhvbl9jbGFzc2VzIiwgdHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJUZXN0IiwgXSwKLSAgICAg
ICAgICAgICAgICAgIGhlbHA9InByZWZpeGVzIG9yIGdsb2IgbmFtZXMgZm9yIFB5dGhvbiB0ZXN0
IGNsYXNzIGRpc2NvdmVyeSIpCi0gICAgcGFyc2VyLmFkZGluaSgicHl0aG9uX2Z1bmN0aW9ucyIs
IHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsidGVzdCIsIF0sCi0gICAgICAgICAgICAgICAgICBoZWxw
PSJwcmVmaXhlcyBvciBnbG9iIG5hbWVzIGZvciBQeXRob24gdGVzdCBmdW5jdGlvbiBhbmQgIgot
ICAgICAgICAgICAgICAgICAgIm1ldGhvZCBkaXNjb3ZlcnkiKQotCi0gICAgZ3JvdXAuYWRkb3B0
aW9uKCItLWltcG9ydC1tb2RlIiwgZGVmYXVsdD0icHJlcGVuZCIsCi0gICAgICAgICAgICAgICAg
ICAgIGNob2ljZXM9WyJwcmVwZW5kIiwgImFwcGVuZCJdLCBkZXN0PSJpbXBvcnRtb2RlIiwKLSAg
ICAgICAgICAgICAgICAgICAgaGVscD0icHJlcGVuZC9hcHBlbmQgdG8gc3lzLnBhdGggd2hlbiBp
bXBvcnRpbmcgdGVzdCBtb2R1bGVzLCAiCi0gICAgICAgICAgICAgICAgICAgICJkZWZhdWx0IGlz
IHRvIHByZXBlbmQuIikKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgotICAg
IGlmIGNvbmZpZy5vcHRpb24uc2hvd2ZpeHR1cmVzOgotICAgICAgICBzaG93Zml4dHVyZXMoY29u
ZmlnKQotICAgICAgICByZXR1cm4gMAotICAgIGlmIGNvbmZpZy5vcHRpb24uc2hvd19maXh0dXJl
c19wZXJfdGVzdDoKLSAgICAgICAgc2hvd19maXh0dXJlc19wZXJfdGVzdChjb25maWcpCi0gICAg
ICAgIHJldHVybiAwCi0KLQotZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Ci0g
ICAgIyB0aG9zZSBhbHRlcm5hdGl2ZSBzcGVsbGluZ3MgYXJlIGNvbW1vbiAtIHJhaXNlIGEgc3Bl
Y2lmaWMgZXJyb3IgdG8gYWxlcnQKLSAgICAjIHRoZSB1c2VyCi0gICAgYWx0X3NwZWxsaW5ncyA9
IFsncGFyYW1ldGVyaXplJywgJ3BhcmFtZXRyaXNlJywgJ3BhcmFtZXRlcmlzZSddCi0gICAgZm9y
IGF0dHIgaW4gYWx0X3NwZWxsaW5nczoKLSAgICAgICAgaWYgaGFzYXR0cihtZXRhZnVuYy5mdW5j
dGlvbiwgYXR0cik6Ci0gICAgICAgICAgICBtc2cgPSAiezB9IGhhcyAnezF9Jywgc3BlbGxpbmcg
c2hvdWxkIGJlICdwYXJhbWV0cml6ZSciCi0gICAgICAgICAgICByYWlzZSBNYXJrZXJFcnJvciht
c2cuZm9ybWF0KG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fLCBhdHRyKSkKLSAgICB0cnk6Ci0g
ICAgICAgIG1hcmtlcnMgPSBtZXRhZnVuYy5mdW5jdGlvbi5wYXJhbWV0cml6ZQotICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgcmV0dXJuCi0gICAgZm9yIG1hcmtlciBpbiBtYXJr
ZXJzOgotICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgqbWFya2VyLmFyZ3MsICoqbWFya2Vy
Lmt3YXJncykKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAgIGNvbmZpZy5h
ZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIG11
bHRpcGxlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltZXMgcGFzc2luZyBpbiBk
aWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5lcmFsbHkgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJuZWVkcyB0byBiZSBhIGxpc3Qgb2YgdmFsdWVzIGlmIGFy
Z25hbWVzIHNwZWNpZmllcyBvbmx5IG9uZSBuYW1lICIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAib3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVz
IG11bHRpcGxlIG5hbWVzLiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6
IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRvIHR3byBjYWxscyBvZiB0
aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWNvcmF0ZWQgdGVzdCBmdW5jdGlv
biwgb25lIHdpdGggYXJnMT0xIGFuZCBhbm90aGVyIHdpdGggYXJnMT0yLiIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9wYXJhbWV0cml6
ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhhbXBsZXMuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICBjb25maWcuYWRk
aW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVz
ZWZpeHR1cmVzKGZpeHR1cmVuYW1lMSwgZml4dHVyZW5hbWUyLCAuLi4pOiBtYXJrIHRlc3RzIGFz
IG5lZWRpbmcgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwgb2YgdGhlIHNwZWNp
ZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9maXh0dXJlLmh0bWwj
dXNlZml4dHVyZXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotCi1AaG9va2lt
cGwodHJ5bGFzdD1UcnVlKQotZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtKToKLSAg
ICB0ZXN0ZnVuY3Rpb24gPSBweWZ1bmNpdGVtLm9iagotICAgIGlmIHB5ZnVuY2l0ZW0uX2lzeWll
bGRlZGZ1bmN0aW9uKCk6Ci0gICAgICAgIHRlc3RmdW5jdGlvbigqcHlmdW5jaXRlbS5fYXJncykK
LSAgICBlbHNlOgotICAgICAgICBmdW5jYXJncyA9IHB5ZnVuY2l0ZW0uZnVuY2FyZ3MKLSAgICAg
ICAgdGVzdGFyZ3MgPSB7fQotICAgICAgICBmb3IgYXJnIGluIHB5ZnVuY2l0ZW0uX2ZpeHR1cmVp
bmZvLmFyZ25hbWVzOgotICAgICAgICAgICAgdGVzdGFyZ3NbYXJnXSA9IGZ1bmNhcmdzW2FyZ10K
LSAgICAgICAgdGVzdGZ1bmN0aW9uKCoqdGVzdGFyZ3MpCi0gICAgcmV0dXJuIFRydWUKLQotCi1k
ZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgotICAgIGV4dCA9IHBhdGguZXh0
Ci0gICAgaWYgZXh0ID09ICIucHkiOgotICAgICAgICBpZiBub3QgcGFyZW50LnNlc3Npb24uaXNp
bml0cGF0aChwYXRoKToKLSAgICAgICAgICAgIGZvciBwYXQgaW4gcGFyZW50LmNvbmZpZy5nZXRp
bmkoJ3B5dGhvbl9maWxlcycpOgotICAgICAgICAgICAgICAgIGlmIHBhdGguZm5tYXRjaChwYXQp
OgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgaWhvb2sgPSBwYXJlbnQuc2Vzc2lvbi5nZXRob29rcHJv
eHkocGF0aCkKLSAgICAgICAgcmV0dXJuIGlob29rLnB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVs
ZShwYXRoPXBhdGgsIHBhcmVudD1wYXJlbnQpCi0KLQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFr
ZW1vZHVsZShwYXRoLCBwYXJlbnQpOgotICAgIHJldHVybiBNb2R1bGUocGF0aCwgcGFyZW50KQot
Ci0KLUBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFr
ZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgotICAgIG91dGNvbWUgPSB5aWVsZAotICAgIHJl
cyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgaWYgcmVzIGlzIG5vdCBOb25lOgotICAgICAg
ICByZXR1cm4KLSAgICAjIG5vdGhpbmcgd2FzIGNvbGxlY3RlZCBlbHNld2hlcmUsIGxldCdzIGRv
IGl0IGhlcmUKLSAgICBpZiBpc2NsYXNzKG9iaik6Ci0gICAgICAgIGlmIGNvbGxlY3Rvci5pc3Rl
c3RjbGFzcyhvYmosIG5hbWUpOgotICAgICAgICAgICAgQ2xhc3MgPSBjb2xsZWN0b3IuX2dldGN1
c3RvbWNsYXNzKCJDbGFzcyIpCi0gICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChDbGFz
cyhuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKSkKLSAgICBlbGlmIGNvbGxlY3Rvci5pc3Rlc3RmdW5j
dGlvbihvYmosIG5hbWUpOgotICAgICAgICAjIG1vY2sgc2VlbXMgdG8gc3RvcmUgdW5ib3VuZCBt
ZXRob2RzIChpc3N1ZTQ3MyksIG5vcm1hbGl6ZSBpdAotICAgICAgICBvYmogPSBnZXRhdHRyKG9i
aiwgIl9fZnVuY19fIiwgb2JqKQotICAgICAgICAjIFdlIG5lZWQgdG8gdHJ5IGFuZCB1bndyYXAg
dGhlIGZ1bmN0aW9uIGlmIGl0J3MgYSBmdW5jdG9vbHMucGFydGlhbAotICAgICAgICAjIG9yIGEg
ZnVudG9vbHMud3JhcHBlZC4KLSAgICAgICAgIyBXZSBtdXNuJ3QgaWYgaXQncyBiZWVuIHdyYXBw
ZWQgd2l0aCBtb2NrLnBhdGNoIChweXRob24gMiBvbmx5KQotICAgICAgICBpZiBub3QgKGlzZnVu
Y3Rpb24ob2JqKSBvciBpc2Z1bmN0aW9uKGdldF9yZWFsX2Z1bmMob2JqKSkpOgotICAgICAgICAg
ICAgY29sbGVjdG9yLndhcm4oY29kZT0iQzIiLCBtZXNzYWdlPSJjYW5ub3QgY29sbGVjdCAlciBi
ZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICUgbmFtZSwgKQotICAgICAgICBlbGlmIGdldGF0dHIob2JqLCAiX190ZXN0X18iLCBUcnVlKToK
LSAgICAgICAgICAgIGlmIGlzX2dlbmVyYXRvcihvYmopOgotICAgICAgICAgICAgICAgIHJlcyA9
IEdlbmVyYXRvcihuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByZXMgPSBsaXN0KGNvbGxlY3Rvci5fZ2VuZnVuY3Rpb25zKG5hbWUsIG9i
aikpCi0gICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChyZXMpCi0KLQotZGVmIHB5dGVz
dF9tYWtlX3BhcmFtZXRyaXplX2lkKGNvbmZpZywgdmFsLCBhcmduYW1lPU5vbmUpOgotICAgIHJl
dHVybiBOb25lCi0KLQotY2xhc3MgUHlvYmpDb250ZXh0KG9iamVjdCk6Ci0gICAgbW9kdWxlID0g
cHlvYmpfcHJvcGVydHkoIk1vZHVsZSIpCi0gICAgY2xzID0gcHlvYmpfcHJvcGVydHkoIkNsYXNz
IikKLSAgICBpbnN0YW5jZSA9IHB5b2JqX3Byb3BlcnR5KCJJbnN0YW5jZSIpCi0KLQotY2xhc3Mg
UHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgotICAgIGRlZiBvYmooKToKLSAgICAgICAgZGVmIGZn
ZXQoc2VsZik6Ci0gICAgICAgICAgICBvYmogPSBnZXRhdHRyKHNlbGYsICdfb2JqJywgTm9uZSkK
LSAgICAgICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX29iaiA9
IG9iaiA9IHNlbGYuX2dldG9iaigpCi0gICAgICAgICAgICByZXR1cm4gb2JqCi0KLSAgICAgICAg
ZGVmIGZzZXQoc2VsZiwgdmFsdWUpOgotICAgICAgICAgICAgc2VsZi5fb2JqID0gdmFsdWUKLQot
ICAgICAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwgTm9uZSwgInVuZGVybHlpbmcgcHl0
aG9uIG9iamVjdCIpCi0KLSAgICBvYmogPSBvYmooKQotCi0gICAgZGVmIF9nZXRvYmooc2VsZik6
Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYucGFyZW50Lm9iaiwgc2VsZi5uYW1lKQotCi0g
ICAgZGVmIGdldG1vZHBhdGgoc2VsZiwgc3RvcGF0bW9kdWxlPVRydWUsIGluY2x1ZGVtb2R1bGU9
RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIHB5dGhvbiBwYXRoIHJlbGF0aXZlIHRvIHRoZSBj
b250YWluaW5nIG1vZHVsZS4gIiIiCi0gICAgICAgIGNoYWluID0gc2VsZi5saXN0Y2hhaW4oKQot
ICAgICAgICBjaGFpbi5yZXZlcnNlKCkKLSAgICAgICAgcGFydHMgPSBbXQotICAgICAgICBmb3Ig
bm9kZSBpbiBjaGFpbjoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgSW5zdGFuY2Up
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBuYW1lID0gbm9kZS5uYW1l
Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIE1vZHVsZSk6Ci0gICAgICAgICAgICAg
ICAgbmFtZSA9IG9zLnBhdGguc3BsaXRleHQobmFtZSlbMF0KLSAgICAgICAgICAgICAgICBpZiBz
dG9wYXRtb2R1bGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGluY2x1ZGVtb2R1bGU6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgIHBhcnRzLmFwcGVuZChuYW1lKQotICAgICAgICBwYXJ0cy5y
ZXZlcnNlKCkKLSAgICAgICAgcyA9ICIuIi5qb2luKHBhcnRzKQotICAgICAgICByZXR1cm4gcy5y
ZXBsYWNlKCIuWyIsICJbIikKLQotICAgIGRlZiBfZ2V0ZnNsaW5lbm8oc2VsZik6Ci0gICAgICAg
IHJldHVybiBnZXRmc2xpbmVubyhzZWxmLm9iaikKLQotICAgIGRlZiByZXBvcnRpbmZvKHNlbGYp
OgotICAgICAgICAjIFhYWCBjYWNoaW5nPwotICAgICAgICBvYmogPSBzZWxmLm9iagotICAgICAg
ICBjb21wYXRfY29fZmlyc3RsaW5lbm8gPSBnZXRhdHRyKG9iaiwgJ2NvbXBhdF9jb19maXJzdGxp
bmVubycsIE5vbmUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoY29tcGF0X2NvX2ZpcnN0bGluZW5v
LCBpbnQpOgotICAgICAgICAgICAgIyBub3NlIGNvbXBhdGliaWxpdHkKLSAgICAgICAgICAgIGZz
cGF0aCA9IHN5cy5tb2R1bGVzW29iai5fX21vZHVsZV9fXS5fX2ZpbGVfXwotICAgICAgICAgICAg
aWYgZnNwYXRoLmVuZHN3aXRoKCIucHljIik6Ci0gICAgICAgICAgICAgICAgZnNwYXRoID0gZnNw
YXRoWzotMV0KLSAgICAgICAgICAgIGxpbmVubyA9IGNvbXBhdF9jb19maXJzdGxpbmVubwotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgZnNwYXRoLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhvYmop
Ci0gICAgICAgIG1vZHBhdGggPSBzZWxmLmdldG1vZHBhdGgoKQotICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShsaW5lbm8sIGludCkKLSAgICAgICAgcmV0dXJuIGZzcGF0aCwgbGluZW5vLCBtb2Rw
YXRoCi0KLQotY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhpbiwgbWFpbi5Db2xsZWN0b3IpOgot
Ci0gICAgZGVmIGZ1bmNuYW1lZmlsdGVyKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRpb24oJ3B5dGhvbl9mdW5jdGlvbnMnLCBuYW1l
KQotCi0gICAgZGVmIGlzbm9zZXRlc3Qoc2VsZiwgb2JqKToKLSAgICAgICAgIiIiIExvb2sgZm9y
IHRoZSBfX3Rlc3RfXyBhdHRyaWJ1dGUsIHdoaWNoIGlzIGFwcGxpZWQgYnkgdGhlCi0gICAgICAg
IEBub3NlLnRvb2xzLmlzdGVzdCBkZWNvcmF0b3IKLSAgICAgICAgIiIiCi0gICAgICAgICMgV2Ug
ZXhwbGljaXRseSBjaGVjayBmb3IgImlzIFRydWUiIGhlcmUgdG8gbm90IG1pc3Rha2VubHkgdHJl
YXQKLSAgICAgICAgIyBjbGFzc2VzIHdpdGggYSBjdXN0b20gX19nZXRhdHRyX18gcmV0dXJuaW5n
IHNvbWV0aGluZyB0cnV0aHkgKGxpa2UgYQotICAgICAgICAjIGZ1bmN0aW9uKSBhcyB0ZXN0IGNs
YXNzZXMuCi0gICAgICAgIHJldHVybiBzYWZlX2dldGF0dHIob2JqLCAnX190ZXN0X18nLCBGYWxz
ZSkgaXMgVHJ1ZQotCi0gICAgZGVmIGNsYXNzbmFtZWZpbHRlcihzZWxmLCBuYW1lKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX21hdGNoZXNfcHJlZml4X29yX2dsb2Jfb3B0aW9uKCdweXRob25fY2xh
c3NlcycsIG5hbWUpCi0KLSAgICBkZWYgaXN0ZXN0ZnVuY3Rpb24oc2VsZiwgb2JqLCBuYW1lKToK
LSAgICAgICAgaWYgc2VsZi5mdW5jbmFtZWZpbHRlcihuYW1lKSBvciBzZWxmLmlzbm9zZXRlc3Qo
b2JqKToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzdGF0aWNtZXRob2QpOgotICAg
ICAgICAgICAgICAgICMgc3RhdGljIG1ldGhvZHMgbmVlZCB0byBiZSB1bndyYXBwZWQKLSAgICAg
ICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIob2JqLCAnX19mdW5jX18nLCBGYWxzZSkKLSAg
ICAgICAgICAgICAgICBpZiBvYmogaXMgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgUHl0
aG9uIDIuNiB3cmFwcyBpbiBhIGRpZmZlcmVudCB3YXkgdGhhdCB3ZSB3b24ndCB0cnkgdG8gaGFu
ZGxlCi0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJjYW5ub3QgY29sbGVjdCBzdGF0aWMgbWV0
aG9kICVyIGJlY2F1c2UgIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJpdCBpcyBub3Qg
YSBmdW5jdGlvbiAoYWx3YXlzIHRoZSBjYXNlIGluIFB5dGhvbiAyLjYpIgotICAgICAgICAgICAg
ICAgICAgICBzZWxmLndhcm4oCi0gICAgICAgICAgICAgICAgICAgICAgICBjb2RlPSJDMiIsIG1l
c3NhZ2U9bXNnICUgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgICAgICByZXR1cm4gKAotICAgICAgICAgICAgICAgIHNhZmVfZ2V0YXR0cihvYmosICJfX2Nh
bGxfXyIsIEZhbHNlKSBhbmQgZml4dHVyZXMuZ2V0Zml4dHVyZW1hcmtlcihvYmopIGlzIE5vbmUK
LSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQot
Ci0gICAgZGVmIGlzdGVzdGNsYXNzKHNlbGYsIG9iaiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBz
ZWxmLmNsYXNzbmFtZWZpbHRlcihuYW1lKSBvciBzZWxmLmlzbm9zZXRlc3Qob2JqKQotCi0gICAg
ZGVmIF9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbihzZWxmLCBvcHRpb25fbmFtZSwgbmFt
ZSk6Ci0gICAgICAgICIiIgotICAgICAgICBjaGVja3MgaWYgdGhlIGdpdmVuIG5hbWUgbWF0Y2hl
cyB0aGUgcHJlZml4IG9yIGdsb2ItcGF0dGVybiBkZWZpbmVkCi0gICAgICAgIGluIGluaSBjb25m
aWd1cmF0aW9uLgotICAgICAgICAiIiIKLSAgICAgICAgZm9yIG9wdGlvbiBpbiBzZWxmLmNvbmZp
Zy5nZXRpbmkob3B0aW9uX25hbWUpOgotICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKG9w
dGlvbik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgICAgICMgY2hlY2sg
dGhhdCBuYW1lIGxvb2tzIGxpa2UgYSBnbG9iLXN0cmluZyBiZWZvcmUgY2FsbGluZyBmbm1hdGNo
Ci0gICAgICAgICAgICAjIGJlY2F1c2UgdGhpcyBpcyBjYWxsZWQgZm9yIGV2ZXJ5IG5hbWUgaW4g
ZWFjaCBjb2xsZWN0ZWQgbW9kdWxlLAotICAgICAgICAgICAgIyBhbmQgZm5tYXRjaCBpcyBzb21l
d2hhdCBleHBlbnNpdmUgdG8gY2FsbAotICAgICAgICAgICAgZWxpZiAoJyonIGluIG9wdGlvbiBv
ciAnPycgaW4gb3B0aW9uIG9yICdbJyBpbiBvcHRpb24pIGFuZCBcCi0gICAgICAgICAgICAgICAg
ICAgIGZubWF0Y2guZm5tYXRjaChuYW1lLCBvcHRpb24pOgotICAgICAgICAgICAgICAgIHJldHVy
biBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0g
ICAgICAgIGlmIG5vdCBnZXRhdHRyKHNlbGYub2JqLCAiX190ZXN0X18iLCBUcnVlKToKLSAgICAg
ICAgICAgIHJldHVybiBbXQotCi0gICAgICAgICMgTkIuIHdlIGF2b2lkIHJhbmRvbSBnZXRhdHRy
cyBhbmQgcGVlayBpbiB0aGUgX19kaWN0X18gaW5zdGVhZAotICAgICAgICAjIChYWFggb3JpZ2lu
YWxseSBpbnRyb2R1Y2VkIGZyb20gYSBQeVB5IG5lZWQsIHN0aWxsIHRydWU/KQotICAgICAgICBk
aWN0cyA9IFtnZXRhdHRyKHNlbGYub2JqLCAnX19kaWN0X18nLCB7fSldCi0gICAgICAgIGZvciBi
YXNlY2xzIGluIGluc3BlY3QuZ2V0bXJvKHNlbGYub2JqLl9fY2xhc3NfXyk6Ci0gICAgICAgICAg
ICBkaWN0cy5hcHBlbmQoYmFzZWNscy5fX2RpY3RfXykKLSAgICAgICAgc2VlbiA9IHt9Ci0gICAg
ICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciBkaWMgaW4gZGljdHM6Ci0gICAgICAgICAgICBm
b3IgbmFtZSwgb2JqIGluIGxpc3QoZGljLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgIGlmIG5h
bWUgaW4gc2VlbjoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAg
ICBzZWVuW25hbWVdID0gVHJ1ZQotICAgICAgICAgICAgICAgIHJlcyA9IHNlbGYuX21ha2VpdGVt
KG5hbWUsIG9iaikKLSAgICAgICAgICAgICAgICBpZiByZXMgaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZXMs
IGxpc3QpOgotICAgICAgICAgICAgICAgICAgICByZXMgPSBbcmVzXQotICAgICAgICAgICAgICAg
IHZhbHVlcy5leHRlbmQocmVzKQotICAgICAgICB2YWx1ZXMuc29ydChrZXk9bGFtYmRhIGl0ZW06
IGl0ZW0ucmVwb3J0aW5mbygpWzoyXSkKLSAgICAgICAgcmV0dXJuIHZhbHVlcwotCi0gICAgZGVm
IG1ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6Ci0gICAgICAgIHdhcm5pbmdzLndhcm4oZGVwcmVj
YXRlZC5DT0xMRUNUT1JfTUFLRUlURU0sIHN0YWNrbGV2ZWw9MikKLSAgICAgICAgc2VsZi5fbWFr
ZWl0ZW0obmFtZSwgb2JqKQotCi0gICAgZGVmIF9tYWtlaXRlbShzZWxmLCBuYW1lLCBvYmopOgot
ICAgICAgICAjIGFzc2VydCBzZWxmLmlob29rLmZzcGF0aCA9PSBzZWxmLmZzcGF0aCwgc2VsZgot
ICAgICAgICByZXR1cm4gc2VsZi5paG9vay5weXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKAotICAg
ICAgICAgICAgY29sbGVjdG9yPXNlbGYsIG5hbWU9bmFtZSwgb2JqPW9iaikKLQotICAgIGRlZiBf
Z2VuZnVuY3Rpb25zKHNlbGYsIG5hbWUsIGZ1bmNvYmopOgotICAgICAgICBtb2R1bGUgPSBzZWxm
LmdldHBhcmVudChNb2R1bGUpLm9iagotICAgICAgICBjbHNjb2wgPSBzZWxmLmdldHBhcmVudChD
bGFzcykKLSAgICAgICAgY2xzID0gY2xzY29sIGFuZCBjbHNjb2wub2JqIG9yIE5vbmUKLSAgICAg
ICAgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBjbHMsIG1vZHVsZSkKLSAgICAgICAgZm0gPSBz
ZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIGZpeHR1cmVpbmZvID0gZm0uZ2V0
Zml4dHVyZWluZm8oc2VsZiwgZnVuY29iaiwgY2xzKQotICAgICAgICBtZXRhZnVuYyA9IE1ldGFm
dW5jKGZ1bmNvYmosIGZpeHR1cmVpbmZvLCBzZWxmLmNvbmZpZywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbHM9Y2xzLCBtb2R1bGU9bW9kdWxlKQotICAgICAgICBtZXRob2RzID0gW10K
LSAgICAgICAgaWYgaGFzYXR0cihtb2R1bGUsICJweXRlc3RfZ2VuZXJhdGVfdGVzdHMiKToKLSAg
ICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKG1vZHVsZS5weXRlc3RfZ2VuZXJhdGVfdGVzdHMpCi0g
ICAgICAgIGlmIGhhc2F0dHIoY2xzLCAicHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIik6Ci0gICAgICAg
ICAgICBtZXRob2RzLmFwcGVuZChjbHMoKS5weXRlc3RfZ2VuZXJhdGVfdGVzdHMpCi0gICAgICAg
IGlmIG1ldGhvZHM6Ci0gICAgICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9nZW5lcmF0ZV90ZXN0
cy5jYWxsX2V4dHJhKG1ldGhvZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpY3QobWV0YWZ1bmM9bWV0YWZ1bmMpKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5paG9vay5weXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1
bmM9bWV0YWZ1bmMpCi0KLSAgICAgICAgRnVuY3Rpb24gPSBzZWxmLl9nZXRjdXN0b21jbGFzcygi
RnVuY3Rpb24iKQotICAgICAgICBpZiBub3QgbWV0YWZ1bmMuX2NhbGxzOgotICAgICAgICAgICAg
eWllbGQgRnVuY3Rpb24obmFtZSwgcGFyZW50PXNlbGYsIGZpeHR1cmVpbmZvPWZpeHR1cmVpbmZv
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBhZGQgZnVuY2FyZ3MoKSBhcyBmaXh0dXJl
ZGVmcyB0byBmaXh0dXJlaW5mby5hcmcyZml4dHVyZWRlZnMKLSAgICAgICAgICAgIGZpeHR1cmVz
LmFkZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2RlZihzZWxmLCBtZXRhZnVuYywgZm0pCi0KLSAg
ICAgICAgICAgIGZvciBjYWxsc3BlYyBpbiBtZXRhZnVuYy5fY2FsbHM6Ci0gICAgICAgICAgICAg
ICAgc3VibmFtZSA9ICIlc1slc10iICUgKG5hbWUsIGNhbGxzcGVjLmlkKQotICAgICAgICAgICAg
ICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWU9c3VibmFtZSwgcGFyZW50PXNlbGYsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FsbHNwZWM9Y2FsbHNwZWMsIGNhbGxvYmo9ZnVuY29iaiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlaW5mbz1maXh0dXJlaW5mbywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcz17Y2FsbHNwZWMuaWQ6IFRy
dWV9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsbmFtZT1uYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotCi1jbGFzcyBNb2R1bGUobWFpbi5G
aWxlLCBQeUNvbGxlY3Rvcik6Ci0gICAgIiIiIENvbGxlY3RvciBmb3IgdGVzdCBjbGFzc2VzIGFu
ZCBmdW5jdGlvbnMuICIiIgotCi0gICAgZGVmIF9nZXRvYmooc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9pbXBvcnR0ZXN0bW9kdWxlKCkKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAg
ICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFjdG9yaWVzKHNlbGYpCi0g
ICAgICAgIHJldHVybiBzdXBlcihNb2R1bGUsIHNlbGYpLmNvbGxlY3QoKQotCi0gICAgZGVmIF9p
bXBvcnR0ZXN0bW9kdWxlKHNlbGYpOgotICAgICAgICAjIHdlIGFzc3VtZSB3ZSBhcmUgb25seSBj
YWxsZWQgb25jZSBwZXIgbW9kdWxlCi0gICAgICAgIGltcG9ydG1vZGUgPSBzZWxmLmNvbmZpZy5n
ZXRvcHRpb24oIi0taW1wb3J0LW1vZGUiKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtb2Qg
PSBzZWxmLmZzcGF0aC5weWltcG9ydChlbnN1cmVzeXNwYXRoPWltcG9ydG1vZGUpCi0gICAgICAg
IGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuQ29sbGVjdEVycm9y
KAotICAgICAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpLmdldHJlcHIo
c3R5bGU9InNob3J0IikpCi0gICAgICAgIGV4Y2VwdCBzZWxmLmZzcGF0aC5JbXBvcnRNaXNtYXRj
aEVycm9yOgotICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCi0gICAgICAgICAgICBy
YWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAgICAgICAgICAgICAgICAiaW1wb3J0IGZpbGUgbWlz
bWF0Y2g6XG4iCi0gICAgICAgICAgICAgICAgImltcG9ydGVkIG1vZHVsZSAlciBoYXMgdGhpcyBf
X2ZpbGVfXyBhdHRyaWJ1dGU6XG4iCi0gICAgICAgICAgICAgICAgIiAgJXNcbiIKLSAgICAgICAg
ICAgICAgICAid2hpY2ggaXMgbm90IHRoZSBzYW1lIGFzIHRoZSB0ZXN0IGZpbGUgd2Ugd2FudCB0
byBjb2xsZWN0OlxuIgotICAgICAgICAgICAgICAgICIgICVzXG4iCi0gICAgICAgICAgICAgICAg
IkhJTlQ6IHJlbW92ZSBfX3B5Y2FjaGVfXyAvIC5weWMgZmlsZXMgYW5kL29yIHVzZSBhICIKLSAg
ICAgICAgICAgICAgICAidW5pcXVlIGJhc2VuYW1lIGZvciB5b3VyIHRlc3QgZmlsZSBtb2R1bGVz
IgotICAgICAgICAgICAgICAgICUgZS5hcmdzCi0gICAgICAgICAgICApCi0gICAgICAgIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9y
dCBFeGNlcHRpb25JbmZvCi0gICAgICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQot
ICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCd2ZXJib3NlJykgPCAyOgotICAg
ICAgICAgICAgICAgIGV4Y19pbmZvLnRyYWNlYmFjayA9IGV4Y19pbmZvLnRyYWNlYmFjay5maWx0
ZXIoZmlsdGVyX3RyYWNlYmFjaykKLSAgICAgICAgICAgIGV4Y19yZXByID0gZXhjX2luZm8uZ2V0
cmVwcihzdHlsZT0nc2hvcnQnKSBpZiBleGNfaW5mby50cmFjZWJhY2sgZWxzZSBleGNfaW5mby5l
eGNvbmx5KCkKLSAgICAgICAgICAgIGZvcm1hdHRlZF90YiA9IHNhZmVfc3RyKGV4Y19yZXByKQot
ICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAgICAgICAgIklt
cG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0ZXN0IG1vZHVsZSAne2ZzcGF0aH0nLlxuIgotICAg
ICAgICAgICAgICAgICJIaW50OiBtYWtlIHN1cmUgeW91ciB0ZXN0IG1vZHVsZXMvcGFja2FnZXMg
aGF2ZSB2YWxpZCBQeXRob24gbmFtZXMuXG4iCi0gICAgICAgICAgICAgICAgIlRyYWNlYmFjazpc
biIKLSAgICAgICAgICAgICAgICAie3RyYWNlYmFja30iLmZvcm1hdChmc3BhdGg9c2VsZi5mc3Bh
dGgsIHRyYWNlYmFjaz1mb3JtYXR0ZWRfdGIpCi0gICAgICAgICAgICApCi0gICAgICAgIGV4Y2Vw
dCBfcHl0ZXN0LnJ1bm5lci5Ta2lwcGVkIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmFsbG93X21v
ZHVsZV9sZXZlbDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgcmFpc2Ugc2Vs
Zi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAgICAgICAgIlVzaW5nIHB5dGVzdC5za2lwIG91dHNp
ZGUgb2YgYSB0ZXN0IGlzIG5vdCBhbGxvd2VkLiAiCi0gICAgICAgICAgICAgICAgIlRvIGRlY29y
YXRlIGEgdGVzdCBmdW5jdGlvbiwgdXNlIHRoZSBAcHl0ZXN0Lm1hcmsuc2tpcCAiCi0gICAgICAg
ICAgICAgICAgIm9yIEBweXRlc3QubWFyay5za2lwaWYgZGVjb3JhdG9ycyBpbnN0ZWFkLCBhbmQg
dG8gc2tpcCBhICIKLSAgICAgICAgICAgICAgICAibW9kdWxlIHVzZSBgcHl0ZXN0bWFyayA9IHB5
dGVzdC5tYXJrLntza2lwLHNraXBpZn0uIgotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX21vZHVsZShtb2QpCi0gICAgICAgIHJldHVybiBt
b2QKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2V0dXBfbW9kdWxlID0gX2dldF94
dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldFVwTW9kdWxlIikKLSAgICAgICAgaWYg
c2V0dXBfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9tb2R1bGUgPSBfZ2V0X3h1
bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAic2V0dXBfbW9kdWxlIikKLSAgICAgICAgaWYg
c2V0dXBfbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0dXBfbW9kdWxlKCkKLQot
ICAgICAgICB0ZWFyZG93bl9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYu
b2JqLCAndGVhckRvd25Nb2R1bGUnKQotICAgICAgICBpZiB0ZWFyZG93bl9tb2R1bGUgaXMgTm9u
ZToKLSAgICAgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRv
d24oc2VsZi5vYmosICd0ZWFyZG93bl9tb2R1bGUnKQotICAgICAgICBpZiB0ZWFyZG93bl9tb2R1
bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmFkZGZpbmFsaXplcih0ZWFyZG93bl9t
b2R1bGUpCi0KLQotZGVmIF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oaG9sZGVyLCBhdHRyX25h
bWUsIHBhcmFtX29iaj1Ob25lKToKLSAgICAiIiIKLSAgICBSZXR1cm4gYSBjYWxsYWJsZSB0byBw
ZXJmb3JtIHh1bml0LXN0eWxlIHNldHVwIG9yIHRlYXJkb3duIGlmCi0gICAgdGhlIGZ1bmN0aW9u
IGV4aXN0cyBpbiB0aGUgYGBob2xkZXJgYCBvYmplY3QuCi0gICAgVGhlIGBgcGFyYW1fb2JqYGAg
cGFyYW1ldGVyIGlzIHRoZSBwYXJhbWV0ZXIgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGZ1
bmN0aW9uCi0gICAgd2hlbiB0aGUgY2FsbGFibGUgaXMgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRz
LCBkZWZhdWx0cyB0byB0aGUgYGBob2xkZXJgYCBvYmplY3QuCi0gICAgUmV0dXJuIGBgTm9uZWBg
IGlmIGEgc3VpdGFibGUgY2FsbGFibGUgaXMgbm90IGZvdW5kLgotICAgICIiIgotICAgIHBhcmFt
X29iaiA9IHBhcmFtX29iaiBpZiBwYXJhbV9vYmogaXMgbm90IE5vbmUgZWxzZSBob2xkZXIKLSAg
ICByZXN1bHQgPSBfZ2V0X3h1bml0X2Z1bmMoaG9sZGVyLCBhdHRyX25hbWUpCi0gICAgaWYgcmVz
dWx0IGlzIG5vdCBOb25lOgotICAgICAgICBhcmdfY291bnQgPSByZXN1bHQuX19jb2RlX18uY29f
YXJnY291bnQKLSAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhvZChyZXN1bHQpOgotICAgICAgICAg
ICAgYXJnX2NvdW50IC09IDEKLSAgICAgICAgaWYgYXJnX2NvdW50OgotICAgICAgICAgICAgcmV0
dXJuIGxhbWJkYTogcmVzdWx0KHBhcmFtX29iaikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJldHVybiByZXN1bHQKLQotCi1kZWYgX2dldF94dW5pdF9mdW5jKG9iaiwgbmFtZSk6Ci0gICAg
IiIiUmV0dXJuIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IHRvIGJlIHVzZWQg
YXMgYSBzZXR1cC90ZWFyZG93bgotICAgIHh1bml0LXN0eWxlIGZ1bmN0aW9uLCBidXQgb25seSBp
ZiBub3QgbWFya2VkIGFzIGEgZml4dHVyZSB0bwotICAgIGF2b2lkIGNhbGxpbmcgaXQgdHdpY2Uu
Ci0gICAgIiIiCi0gICAgbWV0aCA9IGdldGF0dHIob2JqLCBuYW1lLCBOb25lKQotICAgIGlmIGZp
eHR1cmVzLmdldGZpeHR1cmVtYXJrZXIobWV0aCkgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIG1l
dGgKLQotCi1jbGFzcyBDbGFzcyhQeUNvbGxlY3Rvcik6Ci0gICAgIiIiIENvbGxlY3RvciBmb3Ig
dGVzdCBtZXRob2RzLiAiIiIKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBpZiBu
b3Qgc2FmZV9nZXRhdHRyKHNlbGYub2JqLCAiX190ZXN0X18iLCBUcnVlKToKLSAgICAgICAgICAg
IHJldHVybiBbXQotICAgICAgICBpZiBoYXNpbml0KHNlbGYub2JqKToKLSAgICAgICAgICAgIHNl
bGYud2FybigiQzEiLCAiY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAlciBiZWNhdXNlIGl0IGhh
cyBhICIKLSAgICAgICAgICAgICAgICAgICAgICAiX19pbml0X18gY29uc3RydWN0b3IiICUgc2Vs
Zi5vYmouX19uYW1lX18pCi0gICAgICAgICAgICByZXR1cm4gW10KLSAgICAgICAgZWxpZiBoYXNu
ZXcoc2VsZi5vYmopOgotICAgICAgICAgICAgc2VsZi53YXJuKCJDMSIsICJjYW5ub3QgY29sbGVj
dCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJfX25ld19fIGNvbnN0cnVjdG9yIiAlIHNlbGYub2JqLl9fbmFtZV9fKQotICAgICAg
ICAgICAgcmV0dXJuIFtdCi0gICAgICAgIHJldHVybiBbc2VsZi5fZ2V0Y3VzdG9tY2xhc3MoIklu
c3RhbmNlIikobmFtZT0iKCkiLCBwYXJlbnQ9c2VsZildCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6
Ci0gICAgICAgIHNldHVwX2NsYXNzID0gX2dldF94dW5pdF9mdW5jKHNlbGYub2JqLCAnc2V0dXBf
Y2xhc3MnKQotICAgICAgICBpZiBzZXR1cF9jbGFzcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNldHVwX2NsYXNzID0gZ2V0YXR0cihzZXR1cF9jbGFzcywgJ2ltX2Z1bmMnLCBzZXR1cF9jbGFz
cykKLSAgICAgICAgICAgIHNldHVwX2NsYXNzID0gZ2V0YXR0cihzZXR1cF9jbGFzcywgJ19fZnVu
Y19fJywgc2V0dXBfY2xhc3MpCi0gICAgICAgICAgICBzZXR1cF9jbGFzcyhzZWxmLm9iaikKLQot
ICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKHNlbGYub2JqLCAndGVhcmRvd25fY2xhc3MnLCBO
b25lKQotICAgICAgICBpZiBmaW5fY2xhc3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaW5f
Y2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywgJ2ltX2Z1bmMnLCBmaW5fY2xhc3MpCi0gICAgICAg
ICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywgJ19fZnVuY19fJywgZmluX2NsYXNz
KQotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIobGFtYmRhOiBmaW5fY2xhc3Moc2VsZi5v
YmopKQotCi0KLWNsYXNzIEluc3RhbmNlKFB5Q29sbGVjdG9yKToKLSAgICBkZWYgX2dldG9iaihz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50Lm9iaigpCi0KLSAgICBkZWYgY29sbGVj
dChzZWxmKToKLSAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5wYXJzZWZhY3Rv
cmllcyhzZWxmKQotICAgICAgICByZXR1cm4gc3VwZXIoSW5zdGFuY2UsIHNlbGYpLmNvbGxlY3Qo
KQotCi0gICAgZGVmIG5ld2luc3RhbmNlKHNlbGYpOgotICAgICAgICBzZWxmLm9iaiA9IHNlbGYu
X2dldG9iaigpCi0gICAgICAgIHJldHVybiBzZWxmLm9iagotCi0KLWNsYXNzIEZ1bmN0aW9uTWl4
aW4oUHlvYmpNaXhpbik6Ci0gICAgIiIiIG1peGluIGZvciB0aGUgY29kZSBjb21tb24gdG8gRnVu
Y3Rpb24gYW5kIEdlbmVyYXRvci4KLSAgICAiIiIKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAg
ICAgICAgIiIiIHBlcmZvcm0gc2V0dXAgZm9yIHRoaXMgdGVzdCBmdW5jdGlvbi4gIiIiCi0gICAg
ICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19wcmVzZXJ2ZWRwYXJlbnQnKToKLSAgICAgICAgICAgIG9i
aiA9IHNlbGYuX3ByZXNlcnZlZHBhcmVudAotICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc2VsZi5w
YXJlbnQsIEluc3RhbmNlKToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYucGFyZW50Lm5ld2luc3Rh
bmNlKCkKLSAgICAgICAgICAgIHNlbGYub2JqID0gc2VsZi5fZ2V0b2JqKCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYucGFyZW50Lm9iagotICAgICAgICBpZiBpbnNwZWN0
LmlzbWV0aG9kKHNlbGYub2JqKToKLSAgICAgICAgICAgIHNldHVwX25hbWUgPSAnc2V0dXBfbWV0
aG9kJwotICAgICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0ZWFyZG93bl9tZXRob2QnCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZXR1cF9uYW1lID0gJ3NldHVwX2Z1bmN0aW9uJwotICAg
ICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0ZWFyZG93bl9mdW5jdGlvbicKLSAgICAgICAgc2V0
dXBfZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKG9iaiwgc2V0dXBf
bmFtZSwgcGFyYW1fb2JqPXNlbGYub2JqKQotICAgICAgICBpZiBzZXR1cF9mdW5jX29yX21ldGhv
ZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNldHVwX2Z1bmNfb3JfbWV0aG9kKCkKLSAgICAg
ICAgdGVhcmRvd25fZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKG9i
aiwgdGVhcmRvd25fbmFtZSwgcGFyYW1fb2JqPXNlbGYub2JqKQotICAgICAgICBpZiB0ZWFyZG93
bl9mdW5jX29yX21ldGhvZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuYWRkZmluYWxp
emVyKHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kKQotCi0gICAgZGVmIF9wcnVuZXRyYWNlYmFjayhz
ZWxmLCBleGNpbmZvKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29iaicpIGFuZCBub3Qg
c2VsZi5jb25maWcub3B0aW9uLmZ1bGx0cmFjZToKLSAgICAgICAgICAgIGNvZGUgPSBfcHl0ZXN0
Ll9jb2RlLkNvZGUoZ2V0X3JlYWxfZnVuYyhzZWxmLm9iaikpCi0gICAgICAgICAgICBwYXRoLCBm
aXJzdGxpbmVubyA9IGNvZGUucGF0aCwgY29kZS5maXJzdGxpbmVubwotICAgICAgICAgICAgdHJh
Y2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKLSAgICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFj
ZWJhY2suY3V0KHBhdGg9cGF0aCwgZmlyc3RsaW5lbm89Zmlyc3RsaW5lbm8pCi0gICAgICAgICAg
ICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKLSAgICAgICAgICAgICAgICBudHJhY2ViYWNr
ID0gbnRyYWNlYmFjay5jdXQocGF0aD1wYXRoKQotICAgICAgICAgICAgICAgIGlmIG50cmFjZWJh
Y2sgPT0gdHJhY2ViYWNrOgotICAgICAgICAgICAgICAgICAgICAjIG50cmFjZWJhY2sgPSBudHJh
Y2ViYWNrLmN1dChleGNsdWRlcGF0aD1jdXRkaXIyKQotICAgICAgICAgICAgICAgICAgICBudHJh
Y2ViYWNrID0gbnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3RyYWNlYmFjaykKLSAgICAgICAgICAg
ICAgICAgICAgaWYgbm90IG50cmFjZWJhY2s6Ci0gICAgICAgICAgICAgICAgICAgICAgICBudHJh
Y2ViYWNrID0gdHJhY2ViYWNrCi0KLSAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gbnRy
YWNlYmFjay5maWx0ZXIoKQotICAgICAgICAgICAgIyBpc3N1ZTM2NDogbWFyayBhbGwgYnV0IGZp
cnN0IGFuZCBsYXN0IGZyYW1lcyB0bwotICAgICAgICAgICAgIyBvbmx5IHNob3cgYSBzaW5nbGUt
bGluZSBtZXNzYWdlIGZvciBlYWNoIGZyYW1lCi0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5v
cHRpb24udGJzdHlsZSA9PSAiYXV0byI6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKGV4Y2luZm8u
dHJhY2ViYWNrKSA+IDI6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBlbnRyeSBpbiBleGNpbmZv
LnRyYWNlYmFja1sxOi0xXToKLSAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LnNldF9yZXBy
X3N0eWxlKCdzaG9ydCcpCi0KLSAgICBkZWYgX3JlcHJfZmFpbHVyZV9weShzZWxmLCBleGNpbmZv
LCBzdHlsZT0ibG9uZyIpOgotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFuY2UoZmFpbC5F
eGNlcHRpb24pOgotICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8udmFsdWUucHl0cmFjZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gcHkuX2J1aWx0aW4uX3RvdGV4dChleGNpbmZvLnZhbHVlKQot
ICAgICAgICByZXR1cm4gc3VwZXIoRnVuY3Rpb25NaXhpbiwgc2VsZikuX3JlcHJfZmFpbHVyZV9w
eShleGNpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHlsZT1zdHlsZSkKLQotICAgIGRlZiByZXByX2ZhaWx1cmUoc2VsZiwg
ZXhjaW5mbywgb3V0ZXJyPU5vbmUpOgotICAgICAgICBhc3NlcnQgb3V0ZXJyIGlzIE5vbmUsICJY
WFggb3V0ZXJyIHVzYWdlIGlzIGRlcHJlY2F0ZWQiCi0gICAgICAgIHN0eWxlID0gc2VsZi5jb25m
aWcub3B0aW9uLnRic3R5bGUKLSAgICAgICAgaWYgc3R5bGUgPT0gImF1dG8iOgotICAgICAgICAg
ICAgc3R5bGUgPSAibG9uZyIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfZmFpbHVyZV9weShl
eGNpbmZvLCBzdHlsZT1zdHlsZSkKLQotCi1jbGFzcyBHZW5lcmF0b3IoRnVuY3Rpb25NaXhpbiwg
UHlDb2xsZWN0b3IpOgotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICAjIHRlc3QgZ2Vu
ZXJhdG9ycyBhcmUgc2VlbiBhcyBjb2xsZWN0b3JzIGJ1dCB0aGV5IGFsc28KLSAgICAgICAgIyBp
bnZva2Ugc2V0dXAvdGVhcmRvd24gb24gcG9wdWxhciByZXF1ZXN0Ci0gICAgICAgICMgKGluZHVj
ZWQgYnkgdGhlIGNvbW1vbiAidGVzdF8qIiBuYW1pbmcgc2hhcmVkIHdpdGggbm9ybWFsIHRlc3Rz
KQotICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLSAgICAgICAgc2VsZi5z
ZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoc2VsZikKLSAgICAgICAgIyBzZWUgRnVuY3Rpb25N
aXhpbi5zZXR1cCBhbmQgdGVzdF9zZXR1cHN0YXRlX2lzX3ByZXNlcnZlZF8xMzQKLSAgICAgICAg
c2VsZi5fcHJlc2VydmVkcGFyZW50ID0gc2VsZi5wYXJlbnQub2JqCi0gICAgICAgIHZhbHVlcyA9
IFtdCi0gICAgICAgIHNlZW4gPSB7fQotICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUoc2Vs
Zi5vYmooKSk6Ci0gICAgICAgICAgICBuYW1lLCBjYWxsLCBhcmdzID0gc2VsZi5nZXRjYWxsYXJn
cyh4KQotICAgICAgICAgICAgaWYgbm90IGNhbGxhYmxlKGNhbGwpOgotICAgICAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcigiJXIgeWllbGRlZCBub24gY2FsbGFibGUgdGVzdCAlciIgJSAoc2Vs
Zi5vYmosIGNhbGwsKSkKLSAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAg
ICAgICBuYW1lID0gIlslZF0iICUgaQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBuYW1lID0gIlsnJXMnXSIgJSBuYW1lCi0gICAgICAgICAgICBpZiBuYW1lIGluIHNlZW46Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXIgZ2VuZXJhdGVkIHRlc3RzIHdpdGgg
bm9uLXVuaXF1ZSBuYW1lICVyIiAlIChzZWxmLCBuYW1lKSkKLSAgICAgICAgICAgIHNlZW5bbmFt
ZV0gPSBUcnVlCi0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHNlbGYuRnVuY3Rpb24obmFtZSwg
c2VsZiwgYXJncz1hcmdzLCBjYWxsb2JqPWNhbGwpKQotICAgICAgICBzZWxmLndhcm4oJ0MxJywg
ZGVwcmVjYXRlZC5ZSUVMRF9URVNUUykKLSAgICAgICAgcmV0dXJuIHZhbHVlcwotCi0gICAgZGVm
IGdldGNhbGxhcmdzKHNlbGYsIG9iaik6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG9iaiwg
KHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICBvYmogPSAob2JqLCkKLSAgICAgICAgIyBleHBs
aWNpdCBuYW1pbmcKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvYmpbMF0sIHNpeC5zdHJpbmdfdHlw
ZXMpOgotICAgICAgICAgICAgbmFtZSA9IG9ialswXQotICAgICAgICAgICAgb2JqID0gb2JqWzE6
XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSA9IE5vbmUKLSAgICAgICAgY2FsbCwg
YXJncyA9IG9ialswXSwgb2JqWzE6XQotICAgICAgICByZXR1cm4gbmFtZSwgY2FsbCwgYXJncwot
Ci0KLWRlZiBoYXNpbml0KG9iaik6Ci0gICAgaW5pdCA9IGdldGF0dHIob2JqLCAnX19pbml0X18n
LCBOb25lKQotICAgIGlmIGluaXQ6Ci0gICAgICAgIHJldHVybiBpbml0ICE9IG9iamVjdC5fX2lu
aXRfXwotCi0KLWRlZiBoYXNuZXcob2JqKToKLSAgICBuZXcgPSBnZXRhdHRyKG9iaiwgJ19fbmV3
X18nLCBOb25lKQotICAgIGlmIG5ldzoKLSAgICAgICAgcmV0dXJuIG5ldyAhPSBvYmplY3QuX19u
ZXdfXwotCi0KLWNsYXNzIENhbGxTcGVjMihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBtZXRhZnVuYyk6Ci0gICAgICAgIHNlbGYubWV0YWZ1bmMgPSBtZXRhZnVuYwotICAgICAgICBz
ZWxmLmZ1bmNhcmdzID0ge30KLSAgICAgICAgc2VsZi5faWRsaXN0ID0gW10KLSAgICAgICAgc2Vs
Zi5wYXJhbXMgPSB7fQotICAgICAgICBzZWxmLl9nbG9iYWxpZCA9IE5PVFNFVAotICAgICAgICBz
ZWxmLl9nbG9iYWxpZF9hcmdzID0gc2V0KCkKLSAgICAgICAgc2VsZi5fZ2xvYmFscGFyYW0gPSBO
T1RTRVQKLSAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtID0ge30gICMgdXNlZCBmb3Igc29ydGlu
ZyBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCi0gICAgICAgIHNlbGYubWFya3MgPSBbXQotICAgICAg
ICBzZWxmLmluZGljZXMgPSB7fQotCi0gICAgZGVmIGNvcHkoc2VsZiwgbWV0YWZ1bmMpOgotICAg
ICAgICBjcyA9IENhbGxTcGVjMihzZWxmLm1ldGFmdW5jKQotICAgICAgICBjcy5mdW5jYXJncy51
cGRhdGUoc2VsZi5mdW5jYXJncykKLSAgICAgICAgY3MucGFyYW1zLnVwZGF0ZShzZWxmLnBhcmFt
cykKLSAgICAgICAgY3MubWFya3MuZXh0ZW5kKHNlbGYubWFya3MpCi0gICAgICAgIGNzLmluZGlj
ZXMudXBkYXRlKHNlbGYuaW5kaWNlcykKLSAgICAgICAgY3MuX2FyZzJzY29wZW51bS51cGRhdGUo
c2VsZi5fYXJnMnNjb3BlbnVtKQotICAgICAgICBjcy5faWRsaXN0ID0gbGlzdChzZWxmLl9pZGxp
c3QpCi0gICAgICAgIGNzLl9nbG9iYWxpZCA9IHNlbGYuX2dsb2JhbGlkCi0gICAgICAgIGNzLl9n
bG9iYWxpZF9hcmdzID0gc2VsZi5fZ2xvYmFsaWRfYXJncwotICAgICAgICBjcy5fZ2xvYmFscGFy
YW0gPSBzZWxmLl9nbG9iYWxwYXJhbQotICAgICAgICByZXR1cm4gY3MKLQotICAgIGRlZiBfY2hl
Y2thcmdub3Rjb250YWluZWQoc2VsZiwgYXJnKToKLSAgICAgICAgaWYgYXJnIGluIHNlbGYucGFy
YW1zIG9yIGFyZyBpbiBzZWxmLmZ1bmNhcmdzOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiZHVwbGljYXRlICVyIiAlIChhcmcsKSkKLQotICAgIGRlZiBnZXRwYXJhbShzZWxmLCBuYW1l
KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyYW1zW25hbWVdCi0g
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGlmIHNlbGYuX2dsb2JhbHBhcmFt
IGlzIE5PVFNFVDoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG5hbWUpCi0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5fZ2xvYmFscGFyYW0KLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuICItIi5qb2luKG1hcChzdHIsIGZpbHRlcihOb25l
LCBzZWxmLl9pZGxpc3QpKSkKLQotICAgIGRlZiBzZXRtdWx0aTIoc2VsZiwgdmFsdHlwZXMsIGFy
Z25hbWVzLCB2YWxzZXQsIGlkLCBtYXJrcywgc2NvcGVudW0sCi0gICAgICAgICAgICAgICAgICBw
YXJhbV9pbmRleCk6Ci0gICAgICAgIGZvciBhcmcsIHZhbCBpbiB6aXAoYXJnbmFtZXMsIHZhbHNl
dCk6Ci0gICAgICAgICAgICBzZWxmLl9jaGVja2FyZ25vdGNvbnRhaW5lZChhcmcpCi0gICAgICAg
ICAgICB2YWx0eXBlX2Zvcl9hcmcgPSB2YWx0eXBlc1thcmddCi0gICAgICAgICAgICBnZXRhdHRy
KHNlbGYsIHZhbHR5cGVfZm9yX2FyZylbYXJnXSA9IHZhbAotICAgICAgICAgICAgc2VsZi5pbmRp
Y2VzW2FyZ10gPSBwYXJhbV9pbmRleAotICAgICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtW2Fy
Z10gPSBzY29wZW51bQotICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5kKGlkKQotICAgICAgICBz
ZWxmLm1hcmtzLmV4dGVuZChtYXJrcykKLQotICAgIGRlZiBzZXRhbGwoc2VsZiwgZnVuY2FyZ3Ms
IGlkLCBwYXJhbSk6Ci0gICAgICAgIGZvciB4IGluIGZ1bmNhcmdzOgotICAgICAgICAgICAgc2Vs
Zi5fY2hlY2thcmdub3Rjb250YWluZWQoeCkKLSAgICAgICAgc2VsZi5mdW5jYXJncy51cGRhdGUo
ZnVuY2FyZ3MpCi0gICAgICAgIGlmIGlkIGlzIG5vdCBOT1RTRVQ6Ci0gICAgICAgICAgICBzZWxm
Ll9pZGxpc3QuYXBwZW5kKGlkKQotICAgICAgICBpZiBwYXJhbSBpcyBub3QgTk9UU0VUOgotICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYuX2dsb2JhbHBhcmFtIGlzIE5PVFNFVAotICAgICAgICAgICAg
c2VsZi5fZ2xvYmFscGFyYW0gPSBwYXJhbQotICAgICAgICBmb3IgYXJnIGluIGZ1bmNhcmdzOgot
ICAgICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtW2FyZ10gPSBmaXh0dXJlcy5zY29wZW51bV9m
dW5jdGlvbgotCi0KLWNsYXNzIE1ldGFmdW5jKGZpeHR1cmVzLkZ1bmNhcmduYW1lc0NvbXBhdEF0
dHIpOgotICAgICIiIgotICAgIE1ldGFmdW5jIG9iamVjdHMgYXJlIHBhc3NlZCB0byB0aGUgYGBw
eXRlc3RfZ2VuZXJhdGVfdGVzdHNgYCBob29rLgotICAgIFRoZXkgaGVscCB0byBpbnNwZWN0IGEg
dGVzdCBmdW5jdGlvbiBhbmQgdG8gZ2VuZXJhdGUgdGVzdHMgYWNjb3JkaW5nIHRvCi0gICAgdGVz
dCBjb25maWd1cmF0aW9uIG9yIHZhbHVlcyBzcGVjaWZpZWQgaW4gdGhlIGNsYXNzIG9yIG1vZHVs
ZSB3aGVyZSBhCi0gICAgdGVzdCBmdW5jdGlvbiBpcyBkZWZpbmVkLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmN0aW9uLCBmaXh0dXJlaW5mbywgY29uZmlnLCBjbHM9Tm9u
ZSwgbW9kdWxlPU5vbmUpOgotICAgICAgICAjOiBhY2Nlc3MgdG8gdGhlIDpjbGFzczpgX3B5dGVz
dC5jb25maWcuQ29uZmlnYCBvYmplY3QgZm9yIHRoZSB0ZXN0IHNlc3Npb24KLSAgICAgICAgc2Vs
Zi5jb25maWcgPSBjb25maWcKLQotICAgICAgICAjOiB0aGUgbW9kdWxlIG9iamVjdCB3aGVyZSB0
aGUgdGVzdCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluLgotICAgICAgICBzZWxmLm1vZHVsZSA9IG1v
ZHVsZQotCi0gICAgICAgICM6IHVuZGVybHlpbmcgcHl0aG9uIHRlc3QgZnVuY3Rpb24KLSAgICAg
ICAgc2VsZi5mdW5jdGlvbiA9IGZ1bmN0aW9uCi0KLSAgICAgICAgIzogc2V0IG9mIGZpeHR1cmUg
bmFtZXMgcmVxdWlyZWQgYnkgdGhlIHRlc3QgZnVuY3Rpb24KLSAgICAgICAgc2VsZi5maXh0dXJl
bmFtZXMgPSBmaXh0dXJlaW5mby5uYW1lc19jbG9zdXJlCi0KLSAgICAgICAgIzogY2xhc3Mgb2Jq
ZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4gb3IgYGBOb25lYGAuCi0g
ICAgICAgIHNlbGYuY2xzID0gY2xzCi0KLSAgICAgICAgc2VsZi5fY2FsbHMgPSBbXQotICAgICAg
ICBzZWxmLl9pZHMgPSBzZXQoKQotICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSBmaXh0
dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzCi0KLSAgICBkZWYgcGFyYW1ldHJpemUoc2VsZiwgYXJn
bmFtZXMsIGFyZ3ZhbHVlcywgaW5kaXJlY3Q9RmFsc2UsIGlkcz1Ob25lLAotICAgICAgICAgICAg
ICAgICAgICBzY29wZT1Ob25lKToKLSAgICAgICAgIiIiIEFkZCBuZXcgaW52b2NhdGlvbnMgdG8g
dGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbiB1c2luZyB0aGUgbGlzdAotICAgICAgICBvZiBh
cmd2YWx1ZXMgZm9yIHRoZSBnaXZlbiBhcmduYW1lcy4gIFBhcmFtZXRyaXphdGlvbiBpcyBwZXJm
b3JtZWQKLSAgICAgICAgZHVyaW5nIHRoZSBjb2xsZWN0aW9uIHBoYXNlLiAgSWYgeW91IG5lZWQg
dG8gc2V0dXAgZXhwZW5zaXZlIHJlc291cmNlcwotICAgICAgICBzZWUgYWJvdXQgc2V0dGluZyBp
bmRpcmVjdCB0byBkbyBpdCByYXRoZXIgYXQgdGVzdCBzZXR1cCB0aW1lLgotCi0gICAgICAgIDph
cmcgYXJnbmFtZXM6IGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZyBkZW5vdGluZyBvbmUgb3IgbW9y
ZSBhcmd1bWVudAotICAgICAgICAgICAgICAgICAgICAgICBuYW1lcywgb3IgYSBsaXN0L3R1cGxl
IG9mIGFyZ3VtZW50IHN0cmluZ3MuCi0KLSAgICAgICAgOmFyZyBhcmd2YWx1ZXM6IFRoZSBsaXN0
IG9mIGFyZ3ZhbHVlcyBkZXRlcm1pbmVzIGhvdyBvZnRlbiBhCi0gICAgICAgICAgICB0ZXN0IGlz
IGludm9rZWQgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdmFsdWVzLiAgSWYgb25seSBvbmUKLSAg
ICAgICAgICAgIGFyZ25hbWUgd2FzIHNwZWNpZmllZCBhcmd2YWx1ZXMgaXMgYSBsaXN0IG9mIHZh
bHVlcy4gIElmIE4KLSAgICAgICAgICAgIGFyZ25hbWVzIHdlcmUgc3BlY2lmaWVkLCBhcmd2YWx1
ZXMgbXVzdCBiZSBhIGxpc3Qgb2YgTi10dXBsZXMsCi0gICAgICAgICAgICB3aGVyZSBlYWNoIHR1
cGxlLWVsZW1lbnQgc3BlY2lmaWVzIGEgdmFsdWUgZm9yIGl0cyByZXNwZWN0aXZlCi0gICAgICAg
ICAgICBhcmduYW1lLgotCi0gICAgICAgIDphcmcgaW5kaXJlY3Q6IFRoZSBsaXN0IG9mIGFyZ25h
bWVzIG9yIGJvb2xlYW4uIEEgbGlzdCBvZiBhcmd1bWVudHMnCi0gICAgICAgICAgICBuYW1lcyAo
c3Vic2V0IG9mIGFyZ25hbWVzKS4gSWYgVHJ1ZSB0aGUgbGlzdCBjb250YWlucyBhbGwgbmFtZXMg
ZnJvbQotICAgICAgICAgICAgdGhlIGFyZ25hbWVzLiBFYWNoIGFyZ3ZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8gYW4gYXJnbmFtZSBpbiB0aGlzIGxpc3Qgd2lsbAotICAgICAgICAgICAgYmUgcGFzc2Vk
IGFzIHJlcXVlc3QucGFyYW0gdG8gaXRzIHJlc3BlY3RpdmUgYXJnbmFtZSBmaXh0dXJlCi0gICAg
ICAgICAgICBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBwZXJmb3JtIG1vcmUgZXhwZW5zaXZlIHNl
dHVwcyBkdXJpbmcgdGhlCi0gICAgICAgICAgICBzZXR1cCBwaGFzZSBvZiBhIHRlc3QgcmF0aGVy
IHRoYW4gYXQgY29sbGVjdGlvbiB0aW1lLgotCi0gICAgICAgIDphcmcgaWRzOiBsaXN0IG9mIHN0
cmluZyBpZHMsIG9yIGEgY2FsbGFibGUuCi0gICAgICAgICAgICBJZiBzdHJpbmdzLCBlYWNoIGlz
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFyZ3ZhbHVlcyBzbyB0aGF0IHRoZXkgYXJlCi0gICAgICAg
ICAgICBwYXJ0IG9mIHRoZSB0ZXN0IGlkLiBJZiBOb25lIGlzIGdpdmVuIGFzIGlkIG9mIHNwZWNp
ZmljIHRlc3QsIHRoZQotICAgICAgICAgICAgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWQgZm9y
IHRoYXQgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgotICAgICAgICAgICAgSWYgY2FsbGFibGUsIGl0
IHNob3VsZCB0YWtlIG9uZSBhcmd1bWVudCAoYSBzaW5nbGUgYXJndmFsdWUpIGFuZCByZXR1cm4K
LSAgICAgICAgICAgIGEgc3RyaW5nIG9yIHJldHVybiBOb25lLiBJZiBOb25lLCB0aGUgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgaWQgZm9yIHRoYXQKLSAgICAgICAgICAgIGFyZ3VtZW50IHdpbGwg
YmUgdXNlZC4KLSAgICAgICAgICAgIElmIG5vIGlkcyBhcmUgcHJvdmlkZWQgdGhleSB3aWxsIGJl
IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20KLSAgICAgICAgICAgIHRoZSBhcmd2YWx1ZXMu
Ci0KLSAgICAgICAgOmFyZyBzY29wZTogaWYgc3BlY2lmaWVkIGl0IGRlbm90ZXMgdGhlIHNjb3Bl
IG9mIHRoZSBwYXJhbWV0ZXJzLgotICAgICAgICAgICAgVGhlIHNjb3BlIGlzIHVzZWQgZm9yIGdy
b3VwaW5nIHRlc3RzIGJ5IHBhcmFtZXRlciBpbnN0YW5jZXMuCi0gICAgICAgICAgICBJdCB3aWxs
IGFsc28gb3ZlcnJpZGUgYW55IGZpeHR1cmUtZnVuY3Rpb24gZGVmaW5lZCBzY29wZSwgYWxsb3dp
bmcKLSAgICAgICAgICAgIHRvIHNldCBhIGR5bmFtaWMgc2NvcGUgdXNpbmcgdGVzdCBjb250ZXh0
IG9yIGNvbmZpZ3VyYXRpb24uCi0gICAgICAgICIiIgotICAgICAgICBmcm9tIF9weXRlc3QuZml4
dHVyZXMgaW1wb3J0IHNjb3BlMmluZGV4Ci0gICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9y
dCBQYXJhbWV0ZXJTZXQKLSAgICAgICAgZnJvbSBweS5pbyBpbXBvcnQgc2FmZXJlcHIKLSAgICAg
ICAgYXJnbmFtZXMsIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJTZXQuX2Zvcl9wYXJhbWV0ZXJpemUo
Ci0gICAgICAgICAgICBhcmduYW1lcywgYXJndmFsdWVzLCBzZWxmLmZ1bmN0aW9uKQotICAgICAg
ICBkZWwgYXJndmFsdWVzCi0KLSAgICAgICAgaWYgc2NvcGUgaXMgTm9uZToKLSAgICAgICAgICAg
IHNjb3BlID0gX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVzLCBzZWxmLl9hcmcyZml4
dHVyZWRlZnMsIGluZGlyZWN0KQotCi0gICAgICAgIHNjb3BlbnVtID0gc2NvcGUyaW5kZXgoc2Nv
cGUsIGRlc2NyPSdjYWxsIHRvIHswfScuZm9ybWF0KHNlbGYucGFyYW1ldHJpemUpKQotICAgICAg
ICB2YWx0eXBlcyA9IHt9Ci0gICAgICAgIGZvciBhcmcgaW4gYXJnbmFtZXM6Ci0gICAgICAgICAg
ICBpZiBhcmcgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgotICAgICAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UoaW5kaXJlY3QsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICAgICAgICAgICAgICBu
YW1lID0gJ2ZpeHR1cmUnIGlmIGFyZyBpbiBpbmRpcmVjdCBlbHNlICdhcmd1bWVudCcKLSAgICAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ2ZpeHR1cmUnIGlm
IGluZGlyZWN0IGVsc2UgJ2FyZ3VtZW50JwotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICIlciB1c2VzIG5vICVzICVyIiAlICgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb24sIG5hbWUsIGFyZykpCi0KLSAgICAgICAgaWYg
aW5kaXJlY3QgaXMgVHJ1ZToKLSAgICAgICAgICAgIHZhbHR5cGVzID0gZGljdC5mcm9ta2V5cyhh
cmduYW1lcywgInBhcmFtcyIpCi0gICAgICAgIGVsaWYgaW5kaXJlY3QgaXMgRmFsc2U6Ci0gICAg
ICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCi0g
ICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAg
ICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJmdW5jYXJncyIpCi0gICAg
ICAgICAgICBmb3IgYXJnIGluIGluZGlyZWN0OgotICAgICAgICAgICAgICAgIGlmIGFyZyBub3Qg
aW4gYXJnbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImluZGly
ZWN0IGdpdmVuIHRvICVyOiBmaXh0dXJlICVyIGRvZXNuJ3QgZXhpc3QiICUgKAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb24sIGFyZykpCi0gICAgICAg
ICAgICAgICAgdmFsdHlwZXNbYXJnXSA9ICJwYXJhbXMiCi0gICAgICAgIGlkZm4gPSBOb25lCi0g
ICAgICAgIGlmIGNhbGxhYmxlKGlkcyk6Ci0gICAgICAgICAgICBpZGZuID0gaWRzCi0gICAgICAg
ICAgICBpZHMgPSBOb25lCi0gICAgICAgIGlmIGlkczoKLSAgICAgICAgICAgIGlmIGxlbihpZHMp
ICE9IGxlbihwYXJhbWV0ZXJzKToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCcl
ZCB0ZXN0cyBzcGVjaWZpZWQgd2l0aCAlZCBpZHMnICUgKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGVuKHBhcmFtZXRlcnMpLCBsZW4oaWRzKSkpCi0gICAgICAgICAgICBmb3Ig
aWRfdmFsdWUgaW4gaWRzOgotICAgICAgICAgICAgICAgIGlmIGlkX3ZhbHVlIGlzIG5vdCBOb25l
IGFuZCBub3QgaXNpbnN0YW5jZShpZF92YWx1ZSwgc2l4LnN0cmluZ190eXBlcyk6Ci0gICAgICAg
ICAgICAgICAgICAgIG1zZyA9ICdpZHMgbXVzdCBiZSBsaXN0IG9mIHN0cmluZ3MsIGZvdW5kOiAl
cyAodHlwZTogJXMpJwotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZyAl
IChzYWZlcmVwcihpZF92YWx1ZSksIHR5cGUoaWRfdmFsdWUpLl9fbmFtZV9fKSkKLSAgICAgICAg
aWRzID0gaWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVycywgaWRmbiwgaWRzLCBzZWxmLmNvbmZp
ZykKLSAgICAgICAgbmV3Y2FsbHMgPSBbXQotICAgICAgICBmb3IgY2FsbHNwZWMgaW4gc2VsZi5f
Y2FsbHMgb3IgW0NhbGxTcGVjMihzZWxmKV06Ci0gICAgICAgICAgICBlbGVtZW50cyA9IHppcChp
ZHMsIHBhcmFtZXRlcnMsIGNvdW50KCkpCi0gICAgICAgICAgICBmb3IgYV9pZCwgcGFyYW0sIHBh
cmFtX2luZGV4IGluIGVsZW1lbnRzOgotICAgICAgICAgICAgICAgIGlmIGxlbihwYXJhbS52YWx1
ZXMpICE9IGxlbihhcmduYW1lcyk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnSW4gInBhcmFtZXRyaXplIiB0aGUgbnVtYmVy
IG9mIHZhbHVlcyAoezB9KSBtdXN0IGJlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdlcXVh
bCB0byB0aGUgbnVtYmVyIG9mIG5hbWVzICh7MX0pJy5mb3JtYXQoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyYW0udmFsdWVzLCBhcmduYW1lcykpCi0gICAgICAgICAgICAgICAgbmV3
Y2FsbHNwZWMgPSBjYWxsc3BlYy5jb3B5KHNlbGYpCi0gICAgICAgICAgICAgICAgbmV3Y2FsbHNw
ZWMuc2V0bXVsdGkyKHZhbHR5cGVzLCBhcmduYW1lcywgcGFyYW0udmFsdWVzLCBhX2lkLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS5tYXJrcywgc2NvcGVudW0s
IHBhcmFtX2luZGV4KQotICAgICAgICAgICAgICAgIG5ld2NhbGxzLmFwcGVuZChuZXdjYWxsc3Bl
YykKLSAgICAgICAgc2VsZi5fY2FsbHMgPSBuZXdjYWxscwotCi0gICAgZGVmIGFkZGNhbGwoc2Vs
ZiwgZnVuY2FyZ3M9Tm9uZSwgaWQ9Tk9UU0VULCBwYXJhbT1OT1RTRVQpOgotICAgICAgICAiIiIg
QWRkIGEgbmV3IGNhbGwgdG8gdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbiBkdXJpbmcgdGhl
IGNvbGxlY3Rpb24gcGhhc2Ugb2YgYSB0ZXN0IHJ1bi4KLQotICAgICAgICAuLiBkZXByZWNhdGVk
OjogMy4zCi0KLSAgICAgICAgICAgIFVzZSA6bWV0aDpgcGFyYW1ldHJpemVgIGluc3RlYWQuCi0K
LSAgICAgICAgTm90ZSB0aGF0IHJlcXVlc3QuYWRkY2FsbCgpIGlzIGNhbGxlZCBkdXJpbmcgdGhl
IHRlc3QgY29sbGVjdGlvbiBwaGFzZSBwcmlvciBhbmQKLSAgICAgICAgaW5kZXBlbmRlbnRseSB0
byBhY3R1YWwgdGVzdCBleGVjdXRpb24uICBZb3Ugc2hvdWxkIG9ubHkgdXNlIGFkZGNhbGwoKQot
ICAgICAgICBpZiB5b3UgbmVlZCB0byBzcGVjaWZ5IG11bHRpcGxlIGFyZ3VtZW50cyBvZiBhIHRl
c3QgZnVuY3Rpb24uCi0KLSAgICAgICAgOmFyZyBmdW5jYXJnczogYXJndW1lbnQga2V5d29yZCBk
aWN0aW9uYXJ5IHVzZWQgd2hlbiBpbnZva2luZwotICAgICAgICAgICAgdGhlIHRlc3QgZnVuY3Rp
b24uCi0KLSAgICAgICAgOmFyZyBpZDogdXNlZCBmb3IgcmVwb3J0aW5nIGFuZCBpZGVudGlmaWNh
dGlvbiBwdXJwb3Nlcy4gIElmIHlvdQotICAgICAgICAgICAgZG9uJ3Qgc3VwcGx5IGFuIGBpZGAg
YW4gYXV0b21hdGljIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC4KLQotICAgICAgICA6YXJn
IHBhcmFtOiBhIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIGV4cG9zZWQgdG8gYSBsYXRlciBmaXh0
dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICBpbnZvY2F0aW9uIHRocm91Z2ggdGhlIGBgcmVxdWVz
dC5wYXJhbWBgIGF0dHJpYnV0ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuY29uZmln
OgotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybignQzEnLCBtZXNzYWdlPWRlcHJlY2F0ZWQu
TUVUQUZVTkNfQUREX0NBTEwsIGZzbG9jYXRpb249Tm9uZSkKLSAgICAgICAgYXNzZXJ0IGZ1bmNh
cmdzIGlzIE5vbmUgb3IgaXNpbnN0YW5jZShmdW5jYXJncywgZGljdCkKLSAgICAgICAgaWYgZnVu
Y2FyZ3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiBmdW5jYXJnczoKLSAg
ICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLmZpeHR1cmVuYW1lczoKLSAgICAgICAg
ICAgICAgICAgICAgZmFpbCgiZnVuY2FyZyAlciBub3QgdXNlZCBpbiB0aGlzIGZ1bmN0aW9uLiIg
JSBuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2FyZ3MgPSB7fQotICAgICAg
ICBpZiBpZCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaWQ9Tm9uZSBu
b3QgYWxsb3dlZCIpCi0gICAgICAgIGlmIGlkIGlzIE5PVFNFVDoKLSAgICAgICAgICAgIGlkID0g
bGVuKHNlbGYuX2NhbGxzKQotICAgICAgICBpZCA9IHN0cihpZCkKLSAgICAgICAgaWYgaWQgaW4g
c2VsZi5faWRzOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZHVwbGljYXRlIGlkICVy
IiAlIGlkKQotICAgICAgICBzZWxmLl9pZHMuYWRkKGlkKQotCi0gICAgICAgIGNzID0gQ2FsbFNw
ZWMyKHNlbGYpCi0gICAgICAgIGNzLnNldGFsbChmdW5jYXJncywgaWQsIHBhcmFtKQotICAgICAg
ICBzZWxmLl9jYWxscy5hcHBlbmQoY3MpCi0KLQotZGVmIF9maW5kX3BhcmFtZXRyaXplZF9zY29w
ZShhcmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCk6Ci0gICAgIiIiRmluZCB0aGUg
bW9zdCBhcHByb3ByaWF0ZSBzY29wZSBmb3IgYSBwYXJhbWV0cml6ZWQgY2FsbCBiYXNlZCBvbiBp
dHMgYXJndW1lbnRzLgotCi0gICAgV2hlbiB0aGVyZSdzIGF0IGxlYXN0IG9uZSBkaXJlY3QgYXJn
dW1lbnQsIGFsd2F5cyB1c2UgImZ1bmN0aW9uIiBzY29wZS4KLQotICAgIFdoZW4gYSB0ZXN0IGZ1
bmN0aW9uIGlzIHBhcmFtZXRyaXplZCBhbmQgYWxsIGl0cyBhcmd1bWVudHMgYXJlIGluZGlyZWN0
Ci0gICAgKGUuZy4gZml4dHVyZXMpLCByZXR1cm4gdGhlIG1vc3QgbmFycm93IHNjb3BlIGJhc2Vk
IG9uIHRoZSBmaXh0dXJlcyB1c2VkLgotCi0gICAgUmVsYXRlZCB0byBpc3N1ZSAjMTgzMiwgYmFz
ZWQgb24gY29kZSBwb3N0ZWQgYnkgQEtpbmdkcmVhZC4KLSAgICAiIiIKLSAgICBmcm9tIF9weXRl
c3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlcwotICAgIGluZGlyZWN0X2FzX2xpc3QgPSBpc2luc3Rh
bmNlKGluZGlyZWN0LCAobGlzdCwgdHVwbGUpKQotICAgIGFsbF9hcmd1bWVudHNfYXJlX2ZpeHR1
cmVzID0gaW5kaXJlY3QgaXMgVHJ1ZSBvciBcCi0gICAgICAgIGluZGlyZWN0X2FzX2xpc3QgYW5k
IGxlbihpbmRpcmVjdCkgPT0gYXJnbmFtZXMKLSAgICBpZiBhbGxfYXJndW1lbnRzX2FyZV9maXh0
dXJlczoKLSAgICAgICAgZml4dHVyZWRlZnMgPSBhcmcyZml4dHVyZWRlZnMgb3Ige30KLSAgICAg
ICAgdXNlZF9zY29wZXMgPSBbZml4dHVyZWRlZlswXS5zY29wZSBmb3IgbmFtZSwgZml4dHVyZWRl
ZiBpbiBmaXh0dXJlZGVmcy5pdGVtcygpXQotICAgICAgICBpZiB1c2VkX3Njb3BlczoKLSAgICAg
ICAgICAgICMgVGFrZXMgdGhlIG1vc3QgbmFycm93IHNjb3BlIGZyb20gdXNlZCBmaXh0dXJlcwot
ICAgICAgICAgICAgZm9yIHNjb3BlIGluIHJldmVyc2VkKHNjb3Blcyk6Ci0gICAgICAgICAgICAg
ICAgaWYgc2NvcGUgaW4gdXNlZF9zY29wZXM6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBz
Y29wZQotCi0gICAgcmV0dXJuICdmdW5jdGlvbicKLQotCi1kZWYgX2lkdmFsKHZhbCwgYXJnbmFt
ZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9uZSk6Ci0gICAgaWYgaWRmbjoKLSAgICAgICAgcyA9IE5v
bmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9IGlkZm4odmFsKQotICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBTZWUgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTY5Ci0gICAgICAgICAgICBpbXBvcnQgd2Fybmlu
Z3MKLSAgICAgICAgICAgIG1zZyA9ICJSYWlzZWQgd2hpbGUgdHJ5aW5nIHRvIGRldGVybWluZSBp
ZCBvZiBwYXJhbWV0ZXIgJXMgYXQgcG9zaXRpb24gJWQuIiAlIChhcmduYW1lLCBpZHgpCi0gICAg
ICAgICAgICBtc2cgKz0gJ1xuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4g
ZXJyb3IgaW4gcHl0ZXN0LTQuMC4nCi0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKG1zZywgRGVw
cmVjYXRpb25XYXJuaW5nKQotICAgICAgICBpZiBzOgotICAgICAgICAgICAgcmV0dXJuIGFzY2lp
X2VzY2FwZWQocykKLQotICAgIGlmIGNvbmZpZzoKLSAgICAgICAgaG9va19pZCA9IGNvbmZpZy5o
b29rLnB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKAotICAgICAgICAgICAgY29uZmlnPWNvbmZp
ZywgdmFsPXZhbCwgYXJnbmFtZT1hcmduYW1lKQotICAgICAgICBpZiBob29rX2lkOgotICAgICAg
ICAgICAgcmV0dXJuIGhvb2tfaWQKLQotICAgIGlmIGlzaW5zdGFuY2UodmFsLCBTVFJJTkdfVFlQ
RVMpOgotICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZCh2YWwpCi0gICAgZWxpZiBpc2luc3Rh
bmNlKHZhbCwgKGZsb2F0LCBpbnQsIGJvb2wsIE5vbmVUeXBlKSk6Ci0gICAgICAgIHJldHVybiBz
dHIodmFsKQotICAgIGVsaWYgaXNpbnN0YW5jZSh2YWwsIFJFR0VYX1RZUEUpOgotICAgICAgICBy
ZXR1cm4gYXNjaWlfZXNjYXBlZCh2YWwucGF0dGVybikKLSAgICBlbGlmIGVudW0gaXMgbm90IE5v
bmUgYW5kIGlzaW5zdGFuY2UodmFsLCBlbnVtLkVudW0pOgotICAgICAgICByZXR1cm4gc3RyKHZh
bCkKLSAgICBlbGlmIGlzY2xhc3ModmFsKSBhbmQgaGFzYXR0cih2YWwsICdfX25hbWVfXycpOgot
ICAgICAgICByZXR1cm4gdmFsLl9fbmFtZV9fCi0gICAgcmV0dXJuIHN0cihhcmduYW1lKSArIHN0
cihpZHgpCi0KLQotZGVmIF9pZHZhbHNldChpZHgsIHBhcmFtZXRlcnNldCwgYXJnbmFtZXMsIGlk
Zm4sIGlkcywgY29uZmlnPU5vbmUpOgotICAgIGlmIHBhcmFtZXRlcnNldC5pZCBpcyBub3QgTm9u
ZToKLSAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldC5pZAotICAgIGlmIGlkcyBpcyBOb25lIG9y
IChpZHggPj0gbGVuKGlkcykgb3IgaWRzW2lkeF0gaXMgTm9uZSk6Ci0gICAgICAgIHRoaXNfaWQg
PSBbX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWcpCi0gICAgICAgICAgICAg
ICAgICAgZm9yIHZhbCwgYXJnbmFtZSBpbiB6aXAocGFyYW1ldGVyc2V0LnZhbHVlcywgYXJnbmFt
ZXMpXQotICAgICAgICByZXR1cm4gIi0iLmpvaW4odGhpc19pZCkKLSAgICBlbHNlOgotICAgICAg
ICByZXR1cm4gYXNjaWlfZXNjYXBlZChpZHNbaWR4XSkKLQotCi1kZWYgaWRtYWtlcihhcmduYW1l
cywgcGFyYW1ldGVyc2V0cywgaWRmbj1Ob25lLCBpZHM9Tm9uZSwgY29uZmlnPU5vbmUpOgotICAg
IGlkcyA9IFtfaWR2YWxzZXQodmFsaW5kZXgsIHBhcmFtZXRlcnNldCwgYXJnbmFtZXMsIGlkZm4s
IGlkcywgY29uZmlnKQotICAgICAgICAgICBmb3IgdmFsaW5kZXgsIHBhcmFtZXRlcnNldCBpbiBl
bnVtZXJhdGUocGFyYW1ldGVyc2V0cyldCi0gICAgaWYgbGVuKHNldChpZHMpKSAhPSBsZW4oaWRz
KToKLSAgICAgICAgIyBUaGUgaWRzIGFyZSBub3QgdW5pcXVlCi0gICAgICAgIGR1cGxpY2F0ZXMg
PSBbdGVzdGlkIGZvciB0ZXN0aWQgaW4gaWRzIGlmIGlkcy5jb3VudCh0ZXN0aWQpID4gMV0KLSAg
ICAgICAgY291bnRlcnMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsYW1iZGE6IDApCi0gICAg
ICAgIGZvciBpbmRleCwgdGVzdGlkIGluIGVudW1lcmF0ZShpZHMpOgotICAgICAgICAgICAgaWYg
dGVzdGlkIGluIGR1cGxpY2F0ZXM6Ci0gICAgICAgICAgICAgICAgaWRzW2luZGV4XSA9IHRlc3Rp
ZCArIHN0cihjb3VudGVyc1t0ZXN0aWRdKQotICAgICAgICAgICAgICAgIGNvdW50ZXJzW3Rlc3Rp
ZF0gKz0gMQotICAgIHJldHVybiBpZHMKLQotCi1kZWYgc2hvd19maXh0dXJlc19wZXJfdGVzdChj
b25maWcpOgotICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Npb24KLSAgICBy
ZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX3Nob3dfZml4dHVyZXNfcGVyX3Rlc3QpCi0KLQot
ZGVmIF9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgaW1wb3J0
IF9weXRlc3QuY29uZmlnCi0gICAgc2Vzc2lvbi5wZXJmb3JtX2NvbGxlY3QoKQotICAgIGN1cmRp
ciA9IHB5LnBhdGgubG9jYWwoKQotICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1p
bmFsX3dyaXRlcihjb25maWcpCi0gICAgdmVyYm9zZSA9IGNvbmZpZy5nZXR2YWx1ZSgidmVyYm9z
ZSIpCi0KLSAgICBkZWYgZ2V0X2Jlc3RfcmVscGF0aChmdW5jKToKLSAgICAgICAgbG9jID0gZ2V0
bG9jYXRpb24oZnVuYywgY3VyZGlyKQotICAgICAgICByZXR1cm4gY3VyZGlyLmJlc3RyZWxwYXRo
KGxvYykKLQotICAgIGRlZiB3cml0ZV9maXh0dXJlKGZpeHR1cmVfZGVmKToKLSAgICAgICAgYXJn
bmFtZSA9IGZpeHR1cmVfZGVmLmFyZ25hbWUKLSAgICAgICAgaWYgdmVyYm9zZSA8PSAwIGFuZCBh
cmduYW1lLnN0YXJ0c3dpdGgoIl8iKToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiB2
ZXJib3NlID4gMDoKLSAgICAgICAgICAgIGJlc3RyZWwgPSBnZXRfYmVzdF9yZWxwYXRoKGZpeHR1
cmVfZGVmLmZ1bmMpCi0gICAgICAgICAgICBmdW5jYXJnc3BlYyA9ICJ7MH0gLS0gezF9Ii5mb3Jt
YXQoYXJnbmFtZSwgYmVzdHJlbCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZ1bmNhcmdz
cGVjID0gYXJnbmFtZQotICAgICAgICB0dy5saW5lKGZ1bmNhcmdzcGVjLCBncmVlbj1UcnVlKQot
ICAgICAgICBmaXh0dXJlX2RvYyA9IGZpeHR1cmVfZGVmLmZ1bmMuX19kb2NfXwotICAgICAgICBp
ZiBmaXh0dXJlX2RvYzoKLSAgICAgICAgICAgIHdyaXRlX2RvY3N0cmluZyh0dywgZml4dHVyZV9k
b2MpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0dy5saW5lKCcgICAgbm8gZG9jc3RyaW5n
IGF2YWlsYWJsZScsIHJlZD1UcnVlKQotCi0gICAgZGVmIHdyaXRlX2l0ZW0oaXRlbSk6Ci0gICAg
ICAgIHRyeToKLSAgICAgICAgICAgIGluZm8gPSBpdGVtLl9maXh0dXJlaW5mbwotICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAjIGRvY3Rlc3RzIGl0ZW1zIGhhdmUg
bm8gX2ZpeHR1cmVpbmZvIGF0dHJpYnV0ZQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlm
IG5vdCBpbmZvLm5hbWUyZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICAjIHRoaXMgdGVzdCBpdGVt
IGRvZXMgbm90IHVzZSBhbnkgZml4dHVyZXMKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICB0
dy5saW5lKCkKLSAgICAgICAgdHcuc2VwKCctJywgJ2ZpeHR1cmVzIHVzZWQgYnkgezB9Jy5mb3Jt
YXQoaXRlbS5uYW1lKSkKLSAgICAgICAgdHcuc2VwKCctJywgJyh7MH0pJy5mb3JtYXQoZ2V0X2Jl
c3RfcmVscGF0aChpdGVtLmZ1bmN0aW9uKSkpCi0gICAgICAgICMgZGljdCBrZXkgbm90IHVzZWQg
aW4gbG9vcCBidXQgbmVlZGVkIGZvciBzb3J0aW5nCi0gICAgICAgIGZvciBfLCBmaXh0dXJlZGVm
cyBpbiBzb3J0ZWQoaW5mby5uYW1lMmZpeHR1cmVkZWZzLml0ZW1zKCkpOgotICAgICAgICAgICAg
YXNzZXJ0IGZpeHR1cmVkZWZzIGlzIG5vdCBOb25lCi0gICAgICAgICAgICBpZiBub3QgZml4dHVy
ZWRlZnM6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICMgbGFzdCBpdGVt
IGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBvbmUgdXNlZCBieSB0aGUgdGVzdCBpdGVtCi0gICAgICAg
ICAgICB3cml0ZV9maXh0dXJlKGZpeHR1cmVkZWZzWy0xXSkKLQotICAgIGZvciBzZXNzaW9uX2l0
ZW0gaW4gc2Vzc2lvbi5pdGVtczoKLSAgICAgICAgd3JpdGVfaXRlbShzZXNzaW9uX2l0ZW0pCi0K
LQotZGVmIHNob3dmaXh0dXJlcyhjb25maWcpOgotICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9y
dCB3cmFwX3Nlc3Npb24KLSAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX3Nob3dmaXh0
dXJlc19tYWluKQotCi0KLWRlZiBfc2hvd2ZpeHR1cmVzX21haW4oY29uZmlnLCBzZXNzaW9uKToK
LSAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdCgp
Ci0gICAgY3VyZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAgdHcgPSBfcHl0ZXN0LmNvbmZpZy5j
cmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKLSAgICB2ZXJib3NlID0gY29uZmlnLmdldHZh
bHVlKCJ2ZXJib3NlIikKLQotICAgIGZtID0gc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLQotICAg
IGF2YWlsYWJsZSA9IFtdCi0gICAgc2VlbiA9IHNldCgpCi0KLSAgICBmb3IgYXJnbmFtZSwgZml4
dHVyZWRlZnMgaW4gZm0uX2FyZzJmaXh0dXJlZGVmcy5pdGVtcygpOgotICAgICAgICBhc3NlcnQg
Zml4dHVyZWRlZnMgaXMgbm90IE5vbmUKLSAgICAgICAgaWYgbm90IGZpeHR1cmVkZWZzOgotICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgZm9yIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6
Ci0gICAgICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0dXJlZGVmLmZ1bmMsIGN1cmRpcikK
LSAgICAgICAgICAgIGlmIChmaXh0dXJlZGVmLmFyZ25hbWUsIGxvYykgaW4gc2VlbjoKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgc2Vlbi5hZGQoKGZpeHR1cmVkZWYuYXJn
bmFtZSwgbG9jKSkKLSAgICAgICAgICAgIGF2YWlsYWJsZS5hcHBlbmQoKGxlbihmaXh0dXJlZGVm
LmJhc2VpZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmZ1bmMu
X19tb2R1bGVfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cmRpci5iZXN0cmVs
cGF0aChsb2MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4dHVyZWRlZi5hcmdu
YW1lLCBmaXh0dXJlZGVmKSkKLQotICAgIGF2YWlsYWJsZS5zb3J0KCkKLSAgICBjdXJyZW50bW9k
dWxlID0gTm9uZQotICAgIGZvciBiYXNlaWQsIG1vZHVsZSwgYmVzdHJlbCwgYXJnbmFtZSwgZml4
dHVyZWRlZiBpbiBhdmFpbGFibGU6Ci0gICAgICAgIGlmIGN1cnJlbnRtb2R1bGUgIT0gbW9kdWxl
OgotICAgICAgICAgICAgaWYgbm90IG1vZHVsZS5zdGFydHN3aXRoKCJfcHl0ZXN0LiIpOgotICAg
ICAgICAgICAgICAgIHR3LmxpbmUoKQotICAgICAgICAgICAgICAgIHR3LnNlcCgiLSIsICJmaXh0
dXJlcyBkZWZpbmVkIGZyb20gJXMiICUgKG1vZHVsZSwpKQotICAgICAgICAgICAgICAgIGN1cnJl
bnRtb2R1bGUgPSBtb2R1bGUKLSAgICAgICAgaWYgdmVyYm9zZSA8PSAwIGFuZCBhcmduYW1lWzBd
ID09ICJfIjoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIHZlcmJvc2UgPiAwOgot
ICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSAiJXMgLS0gJXMiICUgKGFyZ25hbWUsIGJlc3RyZWws
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSBhcmduYW1lCi0gICAg
ICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUpCi0gICAgICAgIGxvYyA9IGdldGxv
Y2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgY3VyZGlyKQotICAgICAgICBkb2MgPSBmaXh0dXJlZGVm
LmZ1bmMuX19kb2NfXyBvciAiIgotICAgICAgICBpZiBkb2M6Ci0gICAgICAgICAgICB3cml0ZV9k
b2NzdHJpbmcodHcsIGRvYykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHR3LmxpbmUoIiAg
ICAlczogbm8gZG9jc3RyaW5nIGF2YWlsYWJsZSIgJSAobG9jLCksCi0gICAgICAgICAgICAgICAg
ICAgIHJlZD1UcnVlKQotCi0KLWRlZiB3cml0ZV9kb2NzdHJpbmcodHcsIGRvYyk6Ci0gICAgSU5E
RU5UID0gIiAgICAiCi0gICAgZG9jID0gZG9jLnJzdHJpcCgpCi0gICAgaWYgIlxuIiBpbiBkb2M6
Ci0gICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYy5zcGxpdCgiXG4iLCAxKQotICAgIGVsc2U6
Ci0gICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYywgIiIKLQotICAgIGlmIGZpcnN0bGluZS5z
dHJpcCgpOgotICAgICAgICB0dy5saW5lKElOREVOVCArIGZpcnN0bGluZS5zdHJpcCgpKQotCi0g
ICAgaWYgcmVzdDoKLSAgICAgICAgZm9yIGxpbmUgaW4gZGVkZW50KHJlc3QpLnNwbGl0KCJcbiIp
OgotICAgICAgICAgICAgdHcud3JpdGUoSU5ERU5UICsgbGluZSArICJcbiIpCi0KLQotY2xhc3Mg
RnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwgbWFpbi5JdGVtLCBmaXh0dXJlcy5GdW5jYXJnbmFtZXND
b21wYXRBdHRyKToKLSAgICAiIiIgYSBGdW5jdGlvbiBJdGVtIGlzIHJlc3BvbnNpYmxlIGZvciBz
ZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYQotICAgIFB5dGhvbiB0ZXN0IGZ1bmN0aW9uLgotICAg
ICIiIgotICAgIF9nZW5pZCA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBw
YXJlbnQsIGFyZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCi0gICAgICAgICAgICAgICAgIGNhbGxzcGVj
PU5vbmUsIGNhbGxvYmo9Tk9UU0VULCBrZXl3b3Jkcz1Ob25lLCBzZXNzaW9uPU5vbmUsCi0gICAg
ICAgICAgICAgICAgIGZpeHR1cmVpbmZvPU5vbmUsIG9yaWdpbmFsbmFtZT1Ob25lKToKLSAgICAg
ICAgc3VwZXIoRnVuY3Rpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCwgY29uZmlnPWNv
bmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb249c2Vz
c2lvbikKLSAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MKLSAgICAgICAgaWYgY2FsbG9iaiBpcyBu
b3QgTk9UU0VUOgotICAgICAgICAgICAgc2VsZi5vYmogPSBjYWxsb2JqCi0KLSAgICAgICAgc2Vs
Zi5rZXl3b3Jkcy51cGRhdGUoc2VsZi5vYmouX19kaWN0X18pCi0gICAgICAgIGlmIGNhbGxzcGVj
OgotICAgICAgICAgICAgc2VsZi5jYWxsc3BlYyA9IGNhbGxzcGVjCi0gICAgICAgICAgICAjIHRo
aXMgaXMgdG90YWwgaG9zdGlsZSBhbmQgYSBtZXNzCi0gICAgICAgICAgICAjIGtleXdvcmRzIGFy
ZSBicm9rZW4gYnkgZGVzaWduIGJ5IG5vdwotICAgICAgICAgICAgIyB0aGlzIHdpbGwgYmUgcmVk
ZWVtZWQgbGF0ZXIKLSAgICAgICAgICAgIGZvciBtYXJrIGluIGNhbGxzcGVjLm1hcmtzOgotICAg
ICAgICAgICAgICAgICMgZmVlbCBmcmVlIHRvIGNyeSwgdGhpcyB3YXMgYnJva2VuIGZvciB5ZWFy
cyBiZWZvcmUKLSAgICAgICAgICAgICAgICAjIGFuZCBrZXl3b3JkcyBjYW50IGZpeCBpdCBwZXIg
ZGVzaWduCi0gICAgICAgICAgICAgICAgc2VsZi5rZXl3b3Jkc1ttYXJrLm5hbWVdID0gbWFyawot
ICAgICAgICBpZiBrZXl3b3JkczoKLSAgICAgICAgICAgIHNlbGYua2V5d29yZHMudXBkYXRlKGtl
eXdvcmRzKQotCi0gICAgICAgIGlmIGZpeHR1cmVpbmZvIGlzIE5vbmU6Ci0gICAgICAgICAgICBm
aXh0dXJlaW5mbyA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIuZ2V0Zml4dHVyZWluZm8o
Ci0gICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQsIHNlbGYub2JqLCBzZWxmLmNscywKLSAgICAg
ICAgICAgICAgICBmdW5jYXJncz1ub3Qgc2VsZi5faXN5aWVsZGVkZnVuY3Rpb24oKSkKLSAgICAg
ICAgc2VsZi5fZml4dHVyZWluZm8gPSBmaXh0dXJlaW5mbwotICAgICAgICBzZWxmLmZpeHR1cmVu
YW1lcyA9IGZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUKLSAgICAgICAgc2VsZi5faW5pdHJlcXVl
c3QoKQotCi0gICAgICAgICM6IG9yaWdpbmFsIGZ1bmN0aW9uIG5hbWUsIHdpdGhvdXQgYW55IGRl
Y29yYXRpb25zIChmb3IgZXhhbXBsZQotICAgICAgICAjOiBwYXJhbWV0cml6YXRpb24gYWRkcyBh
IGBgIlsuLi5dImBgIHN1ZmZpeCB0byBmdW5jdGlvbiBuYW1lcykuCi0gICAgICAgICM6Ci0gICAg
ICAgICM6IC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICBzZWxmLm9yaWdpbmFsbmFtZSA9
IG9yaWdpbmFsbmFtZQotCi0gICAgZGVmIF9pbml0cmVxdWVzdChzZWxmKToKLSAgICAgICAgc2Vs
Zi5mdW5jYXJncyA9IHt9Ci0gICAgICAgIGlmIHNlbGYuX2lzeWllbGRlZGZ1bmN0aW9uKCk6Ci0g
ICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgImNhbGxzcGVjIiksICgKLSAgICAg
ICAgICAgICAgICAieWllbGRlZCBmdW5jdGlvbnMgKGRlcHJlY2F0ZWQpIGNhbm5vdCBoYXZlIGZ1
bmNhcmdzIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNh
bGxzcGVjIik6Ci0gICAgICAgICAgICAgICAgY2FsbHNwZWMgPSBzZWxmLmNhbGxzcGVjCi0gICAg
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBjYWxsc3BlYy5mdW5jYXJncwotICAgICAgICAgICAgICAg
IHNlbGYuX2dlbmlkID0gY2FsbHNwZWMuaWQKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKGNh
bGxzcGVjLCAicGFyYW0iKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbSA9IGNhbGxz
cGVjLnBhcmFtCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVz
dChzZWxmKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGZ1bmN0aW9uKHNlbGYpOgotICAgICAg
ICAidW5kZXJseWluZyBweXRob24gJ2Z1bmN0aW9uJyBvYmplY3QiCi0gICAgICAgIHJldHVybiBn
ZXRhdHRyKHNlbGYub2JqLCAnaW1fZnVuYycsIHNlbGYub2JqKQotCi0gICAgZGVmIF9nZXRvYmoo
c2VsZik6Ci0gICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKLSAgICAgICAgaSA9IG5hbWUuZmluZCgi
WyIpICAjIHBhcmFtZXRyaXphdGlvbgotICAgICAgICBpZiBpICE9IC0xOgotICAgICAgICAgICAg
bmFtZSA9IG5hbWVbOmldCi0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYucGFyZW50Lm9iaiwg
bmFtZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBfcHlmdW5jaXRlbShzZWxmKToKLSAgICAg
ICAgIihjb21wYXRvbmx5KSBmb3IgY29kZSBleHBlY3RpbmcgcHl0ZXN0LTIuMiBzdHlsZSByZXF1
ZXN0IG9iamVjdHMiCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX2lzeWllbGRlZGZ1
bmN0aW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCAiX2FyZ3MiLCBOb25l
KSBpcyBub3QgTm9uZQotCi0gICAgZGVmIHJ1bnRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBleGVj
dXRlIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24uICIiIgotICAgICAgICBzZWxmLmlob29r
LnB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtPXNlbGYpCi0KLSAgICBkZWYgc2V0dXAoc2Vs
Zik6Ci0gICAgICAgIHN1cGVyKEZ1bmN0aW9uLCBzZWxmKS5zZXR1cCgpCi0gICAgICAgIGZpeHR1
cmVzLmZpbGxmaXh0dXJlcyhzZWxmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9w
eXRob25fYXBpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob25fYXBpLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTk2MDI5NWIzODFiZDBlOTkyM2Y3ZmIzZDAxYWUxMTEy
MTQyZjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQorKysgL2Rldi9udWxsCkBAIC0xLDYxOSAr
MCwwIEBACi1pbXBvcnQgbWF0aAotaW1wb3J0IHN5cwotCi1pbXBvcnQgcHkKLWZyb20gc2l4Lm1v
dmVzIGltcG9ydCB6aXAKLQotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNjbGFzcwotZnJv
bSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotCi0K
LWRlZiBfY21wX3JhaXNlc190eXBlX2Vycm9yKHNlbGYsIG90aGVyKToKLSAgICAiIiJfX2NtcF9f
IGltcGxlbWVudGF0aW9uIHdoaWNoIHJhaXNlcyBUeXBlRXJyb3IuIFVzZWQKLSAgICBieSBBcHBy
b3ggYmFzZSBjbGFzc2VzIHRvIGltcGxlbWVudCBvbmx5ID09IGFuZCAhPSBhbmQgcmFpc2UgYQot
ICAgIFR5cGVFcnJvciBmb3Igb3RoZXIgY29tcGFyaXNvbnMuCi0KLSAgICBOZWVkZWQgaW4gUHl0
aG9uIDIgb25seSwgUHl0aG9uIDMgYWxsIGl0IHRha2VzIGlzIG5vdCBpbXBsZW1lbnRpbmcgdGhl
Ci0gICAgb3RoZXIgb3BlcmF0b3JzIGF0IGFsbC4KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IFRydWUKLSAgICByYWlzZSBUeXBlRXJyb3IoJ0NvbXBhcmlzb24gb3BlcmF0b3JzIG90
aGVyIHRoYW4gPT0gYW5kICE9IG5vdCBzdXBwb3J0ZWQgYnkgYXBwcm94IG9iamVjdHMnKQotCi0K
LSMgYnVpbHRpbiBweXRlc3QuYXBwcm94IGhlbHBlcgotCi0KLWNsYXNzIEFwcHJveEJhc2Uob2Jq
ZWN0KToKLSAgICAiIiIKLSAgICBQcm92aWRlIHNoYXJlZCB1dGlsaXRpZXMgZm9yIG1ha2luZyBh
cHByb3hpbWF0ZSBjb21wYXJpc29ucyBiZXR3ZWVuIG51bWJlcnMKLSAgICBvciBzZXF1ZW5jZXMg
b2YgbnVtYmVycy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZCwg
cmVsPU5vbmUsIGFicz1Ob25lLCBuYW5fb2s9RmFsc2UpOgotICAgICAgICBzZWxmLmV4cGVjdGVk
ID0gZXhwZWN0ZWQKLSAgICAgICAgc2VsZi5hYnMgPSBhYnMKLSAgICAgICAgc2VsZi5yZWwgPSBy
ZWwKLSAgICAgICAgc2VsZi5uYW5fb2sgPSBuYW5fb2sKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0gICAgZGVmIF9fZXFfXyhz
ZWxmLCBhY3R1YWwpOgotICAgICAgICByZXR1cm4gYWxsKAotICAgICAgICAgICAgYSA9PSBzZWxm
Ll9hcHByb3hfc2NhbGFyKHgpCi0gICAgICAgICAgICBmb3IgYSwgeCBpbiBzZWxmLl95aWVsZF9j
b21wYXJpc29ucyhhY3R1YWwpKQotCi0gICAgX19oYXNoX18gPSBOb25lCi0KLSAgICBkZWYgX19u
ZV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIHJldHVybiBub3QgKGFjdHVhbCA9PSBzZWxmKQot
Ci0gICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgotICAgICAgICBfX2NtcF9fID0gX2Nt
cF9yYWlzZXNfdHlwZV9lcnJvcgotCi0gICAgZGVmIF9hcHByb3hfc2NhbGFyKHNlbGYsIHgpOgot
ICAgICAgICByZXR1cm4gQXBwcm94U2NhbGFyKHgsIHJlbD1zZWxmLnJlbCwgYWJzPXNlbGYuYWJz
LCBuYW5fb2s9c2VsZi5uYW5fb2spCi0KLSAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNlbGYs
IGFjdHVhbCk6Ci0gICAgICAgICIiIgotICAgICAgICBZaWVsZCBhbGwgdGhlIHBhaXJzIG9mIG51
bWJlcnMgdG8gYmUgY29tcGFyZWQuICBUaGlzIGlzIHVzZWQgdG8KLSAgICAgICAgaW1wbGVtZW50
IHRoZSBgX19lcV9fYCBtZXRob2QuCi0gICAgICAgICIiIgotICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCi0KLQotY2xhc3MgQXBwcm94TnVtcHkoQXBwcm94QmFzZSk6Ci0gICAgIiIi
Ci0gICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3IgbnVtcHkgYXJyYXlzLgot
ICAgICIiIgotCi0gICAgIyBUZWxsIG51bXB5IHRvIHVzZSBvdXIgYF9fZXFfX2Agb3BlcmF0b3Ig
aW5zdGVhZCBvZiBpdHMuCi0gICAgX19hcnJheV9wcmlvcml0eV9fID0gMTAwCi0KLSAgICBkZWYg
X19yZXByX18oc2VsZik6Ci0gICAgICAgICMgSXQgbWlnaHQgYmUgbmljZSB0byByZXdyaXRlIHRo
aXMgZnVuY3Rpb24gdG8gYWNjb3VudCBmb3IgdGhlCi0gICAgICAgICMgc2hhcGUgb2YgdGhlIGFy
cmF5Li4uCi0gICAgICAgIHJldHVybiAiYXBwcm94KHswIXJ9KSIuZm9ybWF0KGxpc3QoCi0gICAg
ICAgICAgICBzZWxmLl9hcHByb3hfc2NhbGFyKHgpIGZvciB4IGluIHNlbGYuZXhwZWN0ZWQpKQot
Ci0gICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgotICAgICAgICBfX2NtcF9fID0gX2Nt
cF9yYWlzZXNfdHlwZV9lcnJvcgotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgotICAg
ICAgICBpbXBvcnQgbnVtcHkgYXMgbnAKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhY3R1
YWwgPSBucC5hc2FycmF5KGFjdHVhbCkKLSAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0gICAgICAg
ICAgICByYWlzZSBUeXBlRXJyb3IoImNhbm5vdCBjb21wYXJlICd7MH0nIHRvIG51bXB5Lm5kYXJy
YXkiLmZvcm1hdChhY3R1YWwpKQotCi0gICAgICAgIGlmIGFjdHVhbC5zaGFwZSAhPSBzZWxmLmV4
cGVjdGVkLnNoYXBlOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJu
IEFwcHJveEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKLQotICAgIGRlZiBfeWllbGRfY29tcGFy
aXNvbnMoc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCi0KLSAgICAg
ICAgIyBXZSBjYW4gYmUgc3VyZSB0aGF0IGBhY3R1YWxgIGlzIGEgbnVtcHkgYXJyYXksIGJlY2F1
c2UgaXQncwotICAgICAgICAjIGNhc3RlZCBpbiBgX19lcV9fYCBiZWZvcmUgYmVpbmcgcGFzc2Vk
IHRvIGBBcHByb3hCYXNlLl9fZXFfX2AsCi0gICAgICAgICMgd2hpY2ggaXMgdGhlIG9ubHkgbWV0
aG9kIHRoYXQgY2FsbHMgdGhpcyBvbmUuCi0gICAgICAgIGZvciBpIGluIG5wLm5kaW5kZXgoc2Vs
Zi5leHBlY3RlZC5zaGFwZSk6Ci0gICAgICAgICAgICB5aWVsZCBhY3R1YWxbaV0sIHNlbGYuZXhw
ZWN0ZWRbaV0KLQotCi1jbGFzcyBBcHByb3hNYXBwaW5nKEFwcHJveEJhc2UpOgotICAgICIiIgot
ICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIG1hcHBpbmdzIHdoZXJlIHRo
ZSB2YWx1ZXMgYXJlIG51bWJlcnMKLSAgICAodGhlIGtleXMgY2FuIGJlIGFueXRoaW5nKS4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJhcHByb3go
ezAhcn0pIi5mb3JtYXQoZGljdCgKLSAgICAgICAgICAgIChrLCBzZWxmLl9hcHByb3hfc2NhbGFy
KHYpKQotICAgICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5leHBlY3RlZC5pdGVtcygpKSkKLQot
ICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaWYgc2V0KGFjdHVhbC5rZXlz
KCkpICE9IHNldChzZWxmLmV4cGVjdGVkLmtleXMoKSk6Ci0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLQotICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5fX2VxX18oc2VsZiwgYWN0dWFsKQotCi0g
ICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgotICAgICAgICBmb3IgayBp
biBzZWxmLmV4cGVjdGVkLmtleXMoKToKLSAgICAgICAgICAgIHlpZWxkIGFjdHVhbFtrXSwgc2Vs
Zi5leHBlY3RlZFtrXQotCi0KLWNsYXNzIEFwcHJveFNlcXVlbmNlKEFwcHJveEJhc2UpOgotICAg
ICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIHNlcXVlbmNlcyBv
ZiBudW1iZXJzLgotICAgICIiIgotCi0gICAgIyBUZWxsIG51bXB5IHRvIHVzZSBvdXIgYF9fZXFf
X2Agb3BlcmF0b3IgaW5zdGVhZCBvZiBpdHMuCi0gICAgX19hcnJheV9wcmlvcml0eV9fID0gMTAw
Ci0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHNlcV90eXBlID0gdHlwZShzZWxm
LmV4cGVjdGVkKQotICAgICAgICBpZiBzZXFfdHlwZSBub3QgaW4gKHR1cGxlLCBsaXN0LCBzZXQp
OgotICAgICAgICAgICAgc2VxX3R5cGUgPSBsaXN0Ci0gICAgICAgIHJldHVybiAiYXBwcm94KHsw
IXJ9KSIuZm9ybWF0KHNlcV90eXBlKAotICAgICAgICAgICAgc2VsZi5fYXBwcm94X3NjYWxhcih4
KSBmb3IgeCBpbiBzZWxmLmV4cGVjdGVkKSkKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFs
KToKLSAgICAgICAgaWYgbGVuKGFjdHVhbCkgIT0gbGVuKHNlbGYuZXhwZWN0ZWQpOgotICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBBcHByb3hCYXNlLl9fZXFfXyhzZWxm
LCBhY3R1YWwpCi0KLSAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6Ci0g
ICAgICAgIHJldHVybiB6aXAoYWN0dWFsLCBzZWxmLmV4cGVjdGVkKQotCi0KLWNsYXNzIEFwcHJv
eFNjYWxhcihBcHByb3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNv
bXBhcmlzb25zIGZvciBzaW5nbGUgbnVtYmVycyBvbmx5LgotICAgICIiIgotCi0gICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJuIGEgc3RyaW5nIGNvbW11
bmljYXRpbmcgYm90aCB0aGUgZXhwZWN0ZWQgdmFsdWUgYW5kIHRoZSB0b2xlcmFuY2UKLSAgICAg
ICAgZm9yIHRoZSBjb21wYXJpc29uIGJlaW5nIG1hZGUsIGUuZy4gJzEuMCArLSAxZS02Jy4gIFVz
ZSB0aGUgdW5pY29kZQotICAgICAgICBwbHVzL21pbnVzIHN5bWJvbCBpZiB0aGlzIGlzIHB5dGhv
bjMgKGl0J3MgdG9vIGhhcmQgdG8gZ2V0IHJpZ2h0IGZvcgotICAgICAgICBweXRob24yKS4KLSAg
ICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5leHBlY3RlZCwgY29tcGxleCk6
Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuZXhwZWN0ZWQpCi0KLSAgICAgICAgIyBJbmZp
bml0aWVzIGFyZW4ndCBjb21wYXJlZCB1c2luZyB0b2xlcmFuY2VzLCBzbyBkb24ndCBzaG93IGEK
LSAgICAgICAgIyB0b2xlcmFuY2UuCi0gICAgICAgIGlmIG1hdGguaXNpbmYoc2VsZi5leHBlY3Rl
ZCk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuZXhwZWN0ZWQpCi0KLSAgICAgICAgIyBJ
ZiBhIHNlbnNpYmxlIHRvbGVyYW5jZSBjYW4ndCBiZSBjYWxjdWxhdGVkLCBzZWxmLnRvbGVyYW5j
ZSB3aWxsCi0gICAgICAgICMgcmFpc2UgYSBWYWx1ZUVycm9yLiAgSW4gdGhpcyBjYXNlLCBkaXNw
bGF5ICc/Pz8nLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB2ZXR0ZWRfdG9sZXJhbmNlID0g
J3s6LjFlfScuZm9ybWF0KHNlbGYudG9sZXJhbmNlKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKLSAgICAgICAgICAgIHZldHRlZF90b2xlcmFuY2UgPSAnPz8/JwotCi0gICAgICAgIGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKLSAgICAgICAgICAgIHJldHVybiAnezB9ICstIHsxfScu
Zm9ybWF0KHNlbGYuZXhwZWN0ZWQsIHZldHRlZF90b2xlcmFuY2UpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXR1cm4gdSd7MH0gXHUwMGIxIHsxfScuZm9ybWF0KHNlbGYuZXhwZWN0ZWQs
IHZldHRlZF90b2xlcmFuY2UpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAg
ICAgICIiIgotICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgZXF1YWwg
dG8gdGhlIGV4cGVjdGVkIHZhbHVlIHdpdGhpbgotICAgICAgICB0aGUgcHJlLXNwZWNpZmllZCB0
b2xlcmFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgU2hvcnQtY2lyY3VpdCBleGFjdCBl
cXVhbGl0eS4KLSAgICAgICAgaWYgYWN0dWFsID09IHNlbGYuZXhwZWN0ZWQ6Ci0gICAgICAgICAg
ICByZXR1cm4gVHJ1ZQotCi0gICAgICAgICMgQWxsb3cgdGhlIHVzZXIgdG8gY29udHJvbCB3aGV0
aGVyIE5hTnMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gZWFjaAotICAgICAgICAjIG90aGVyIG9y
IG5vdC4gIFRoZSBhYnMoKSBjYWxscyBhcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBjb21wbGV4
Ci0gICAgICAgICMgbnVtYmVycy4KLSAgICAgICAgaWYgbWF0aC5pc25hbihhYnMoc2VsZi5leHBl
Y3RlZCkpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubmFuX29rIGFuZCBtYXRoLmlzbmFuKGFi
cyhhY3R1YWwpKQotCi0gICAgICAgICMgSW5maW5pdHkgc2hvdWxkbid0IGJlIGFwcHJveGltYXRl
bHkgZXF1YWwgdG8gYW55dGhpbmcgYnV0IGl0c2VsZiwgYnV0Ci0gICAgICAgICMgaWYgdGhlcmUn
cyBhIHJlbGF0aXZlIHRvbGVyYW5jZSwgaXQgd2lsbCBiZSBpbmZpbml0ZSBhbmQgaW5maW5pdHkK
LSAgICAgICAgIyB3aWxsIHNlZW0gYXBwcm94aW1hdGVseSBlcXVhbCB0byBldmVyeXRoaW5nLiAg
VGhlIGVxdWFsLXRvLWl0c2VsZgotICAgICAgICAjIGNhc2Ugd291bGQgaGF2ZSBiZWVuIHNob3J0
IGNpcmN1aXRlZCBhYm92ZSwgc28gaGVyZSB3ZSBjYW4ganVzdAotICAgICAgICAjIHJldHVybiBm
YWxzZSBpZiB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMgaW5maW5pdGUuICBUaGUgYWJzKCkgY2FsbCBp
cwotICAgICAgICAjIGZvciBjb21wYXRpYmlsaXR5IHdpdGggY29tcGxleCBudW1iZXJzLgotICAg
ICAgICBpZiBtYXRoLmlzaW5mKGFicyhzZWxmLmV4cGVjdGVkKSk6Ci0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICAjIFJldHVybiB0cnVlIGlmIHRoZSB0d28gbnVtYmVycyBhcmUg
d2l0aGluIHRoZSB0b2xlcmFuY2UuCi0gICAgICAgIHJldHVybiBhYnMoc2VsZi5leHBlY3RlZCAt
IGFjdHVhbCkgPD0gc2VsZi50b2xlcmFuY2UKLQotICAgIF9faGFzaF9fID0gTm9uZQotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIHRvbGVyYW5jZShzZWxmKToKLSAgICAgICAgIiIiCi0gICAgICAg
IFJldHVybiB0aGUgdG9sZXJhbmNlIGZvciB0aGUgY29tcGFyaXNvbi4gIFRoaXMgY291bGQgYmUg
ZWl0aGVyIGFuCi0gICAgICAgIGFic29sdXRlIHRvbGVyYW5jZSBvciBhIHJlbGF0aXZlIHRvbGVy
YW5jZSwgZGVwZW5kaW5nIG9uIHdoYXQgdGhlIHVzZXIKLSAgICAgICAgc3BlY2lmaWVkIG9yIHdo
aWNoIHdvdWxkIGJlIGxhcmdlci4KLSAgICAgICAgIiIiCi0gICAgICAgIGRlZiBzZXRfZGVmYXVs
dCh4LCBkZWZhdWx0KToKLSAgICAgICAgICAgIHJldHVybiB4IGlmIHggaXMgbm90IE5vbmUgZWxz
ZSBkZWZhdWx0Ci0KLSAgICAgICAgIyBGaWd1cmUgb3V0IHdoYXQgdGhlIGFic29sdXRlIHRvbGVy
YW5jZSBzaG91bGQgYmUuICBgYHNlbGYuYWJzYGAgaXMKLSAgICAgICAgIyBlaXRoZXIgTm9uZSBv
ciBhIHZhbHVlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KLSAgICAgICAgYWJzb2x1dGVfdG9sZXJh
bmNlID0gc2V0X2RlZmF1bHQoc2VsZi5hYnMsIDFlLTEyKQotCi0gICAgICAgIGlmIGFic29sdXRl
X3RvbGVyYW5jZSA8IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJhYnNvbHV0ZSB0
b2xlcmFuY2UgY2FuJ3QgYmUgbmVnYXRpdmU6IHt9Ii5mb3JtYXQoYWJzb2x1dGVfdG9sZXJhbmNl
KSkKLSAgICAgICAgaWYgbWF0aC5pc25hbihhYnNvbHV0ZV90b2xlcmFuY2UpOgotICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiYWJzb2x1dGUgdG9sZXJhbmNlIGNhbid0IGJlIE5hTi4iKQot
Ci0gICAgICAgICMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFuIGFic29sdXRlIHRvbGVyYW5jZSBi
dXQgbm90IGEgcmVsYXRpdmUgb25lLAotICAgICAgICAjIGp1c3QgcmV0dXJuIHRoZSBhYnNvbHV0
ZSB0b2xlcmFuY2UuCi0gICAgICAgIGlmIHNlbGYucmVsIGlzIE5vbmU6Ci0gICAgICAgICAgICBp
ZiBzZWxmLmFicyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByZXR1cm4gYWJzb2x1dGVf
dG9sZXJhbmNlCi0KLSAgICAgICAgIyBGaWd1cmUgb3V0IHdoYXQgdGhlIHJlbGF0aXZlIHRvbGVy
YW5jZSBzaG91bGQgYmUuICBgYHNlbGYucmVsYGAgaXMKLSAgICAgICAgIyBlaXRoZXIgTm9uZSBv
ciBhIHZhbHVlIHNwZWNpZmllZCBieSB0aGUgdXNlci4gIFRoaXMgaXMgZG9uZSBhZnRlcgotICAg
ICAgICAjIHdlJ3ZlIG1hZGUgc3VyZSB0aGUgdXNlciBkaWRuJ3QgYXNrIGZvciBhbiBhYnNvbHV0
ZSB0b2xlcmFuY2Ugb25seSwKLSAgICAgICAgIyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmFp
c2UgZXJyb3JzIGFib3V0IHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgaWYKLSAgICAgICAgIyB3ZSBh
cmVuJ3QgZXZlbiBnb2luZyB0byB1c2UgaXQuCi0gICAgICAgIHJlbGF0aXZlX3RvbGVyYW5jZSA9
IHNldF9kZWZhdWx0KHNlbGYucmVsLCAxZS02KSAqIGFicyhzZWxmLmV4cGVjdGVkKQotCi0gICAg
ICAgIGlmIHJlbGF0aXZlX3RvbGVyYW5jZSA8IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJyZWxhdGl2ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgbmVnYXRpdmU6IHt9Ii5mb3JtYXQoYWJz
b2x1dGVfdG9sZXJhbmNlKSkKLSAgICAgICAgaWYgbWF0aC5pc25hbihyZWxhdGl2ZV90b2xlcmFu
Y2UpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicmVsYXRpdmUgdG9sZXJhbmNlIGNh
bid0IGJlIE5hTi4iKQotCi0gICAgICAgICMgUmV0dXJuIHRoZSBsYXJnZXIgb2YgdGhlIHJlbGF0
aXZlIGFuZCBhYnNvbHV0ZSB0b2xlcmFuY2VzLgotICAgICAgICByZXR1cm4gbWF4KHJlbGF0aXZl
X3RvbGVyYW5jZSwgYWJzb2x1dGVfdG9sZXJhbmNlKQotCi0KLWRlZiBhcHByb3goZXhwZWN0ZWQs
IHJlbD1Ob25lLCBhYnM9Tm9uZSwgbmFuX29rPUZhbHNlKToKLSAgICAiIiIKLSAgICBBc3NlcnQg
dGhhdCB0d28gbnVtYmVycyAob3IgdHdvIHNldHMgb2YgbnVtYmVycykgYXJlIGVxdWFsIHRvIGVh
Y2ggb3RoZXIKLSAgICB3aXRoaW4gc29tZSB0b2xlcmFuY2UuCi0KLSAgICBEdWUgdG8gdGhlIGBp
bnRyaWNhY2llcyBvZiBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljYF9fLCBudW1iZXJzIHRoYXQg
d2UKLSAgICB3b3VsZCBpbnR1aXRpdmVseSBleHBlY3QgdG8gYmUgZXF1YWwgYXJlIG5vdCBhbHdh
eXMgc286OgotCi0gICAgICAgID4+PiAwLjEgKyAwLjIgPT0gMC4zCi0gICAgICAgIEZhbHNlCi0K
LSAgICBfXyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3R1dG9yaWFsL2Zsb2F0aW5ncG9pbnQu
aHRtbAotCi0gICAgVGhpcyBwcm9ibGVtIGlzIGNvbW1vbmx5IGVuY291bnRlcmVkIHdoZW4gd3Jp
dGluZyB0ZXN0cywgZS5nLiB3aGVuIG1ha2luZwotICAgIHN1cmUgdGhhdCBmbG9hdGluZy1wb2lu
dCB2YWx1ZXMgYXJlIHdoYXQgeW91IGV4cGVjdCB0aGVtIHRvIGJlLiAgT25lIHdheSB0bwotICAg
IGRlYWwgd2l0aCB0aGlzIHByb2JsZW0gaXMgdG8gYXNzZXJ0IHRoYXQgdHdvIGZsb2F0aW5nLXBv
aW50IG51bWJlcnMgYXJlCi0gICAgZXF1YWwgdG8gd2l0aGluIHNvbWUgYXBwcm9wcmlhdGUgdG9s
ZXJhbmNlOjoKLQotICAgICAgICA+Pj4gYWJzKCgwLjEgKyAwLjIpIC0gMC4zKSA8IDFlLTYKLSAg
ICAgICAgVHJ1ZQotCi0gICAgSG93ZXZlciwgY29tcGFyaXNvbnMgbGlrZSB0aGlzIGFyZSB0ZWRp
b3VzIHRvIHdyaXRlIGFuZCBkaWZmaWN1bHQgdG8KLSAgICB1bmRlcnN0YW5kLiAgRnVydGhlcm1v
cmUsIGFic29sdXRlIGNvbXBhcmlzb25zIGxpa2UgdGhlIG9uZSBhYm92ZSBhcmUKLSAgICB1c3Vh
bGx5IGRpc2NvdXJhZ2VkIGJlY2F1c2UgdGhlcmUncyBubyB0b2xlcmFuY2UgdGhhdCB3b3JrcyB3
ZWxsIGZvciBhbGwKLSAgICBzaXR1YXRpb25zLiAgYGAxZS02YGAgaXMgZ29vZCBmb3IgbnVtYmVy
cyBhcm91bmQgYGAxYGAsIGJ1dCB0b28gc21hbGwgZm9yCi0gICAgdmVyeSBiaWcgbnVtYmVycyBh
bmQgdG9vIGJpZyBmb3IgdmVyeSBzbWFsbCBvbmVzLiAgSXQncyBiZXR0ZXIgdG8gZXhwcmVzcwot
ICAgIHRoZSB0b2xlcmFuY2UgYXMgYSBmcmFjdGlvbiBvZiB0aGUgZXhwZWN0ZWQgdmFsdWUsIGJ1
dCByZWxhdGl2ZSBjb21wYXJpc29ucwotICAgIGxpa2UgdGhhdCBhcmUgZXZlbiBtb3JlIGRpZmZp
Y3VsdCB0byB3cml0ZSBjb3JyZWN0bHkgYW5kIGNvbmNpc2VseS4KLQotICAgIFRoZSBgYGFwcHJv
eGBgIGNsYXNzIHBlcmZvcm1zIGZsb2F0aW5nLXBvaW50IGNvbXBhcmlzb25zIHVzaW5nIGEgc3lu
dGF4Ci0gICAgdGhhdCdzIGFzIGludHVpdGl2ZSBhcyBwb3NzaWJsZTo6Ci0KLSAgICAgICAgPj4+
IGZyb20gcHl0ZXN0IGltcG9ydCBhcHByb3gKLSAgICAgICAgPj4+IDAuMSArIDAuMiA9PSBhcHBy
b3goMC4zKQotICAgICAgICBUcnVlCi0KLSAgICBUaGUgc2FtZSBzeW50YXggYWxzbyB3b3JrcyBm
b3Igc2VxdWVuY2VzIG9mIG51bWJlcnM6OgotCi0gICAgICAgID4+PiAoMC4xICsgMC4yLCAwLjIg
KyAwLjQpID09IGFwcHJveCgoMC4zLCAwLjYpKQotICAgICAgICBUcnVlCi0KLSAgICBEaWN0aW9u
YXJ5ICp2YWx1ZXMqOjoKLQotICAgICAgICA+Pj4geydhJzogMC4xICsgMC4yLCAnYic6IDAuMiAr
IDAuNH0gPT0gYXBwcm94KHsnYSc6IDAuMywgJ2InOiAwLjZ9KQotICAgICAgICBUcnVlCi0KLSAg
ICBBbmQgYGBudW1weWBgIGFycmF5czo6Ci0KLSAgICAgICAgPj4+IGltcG9ydCBudW1weSBhcyBu
cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAjIGRvY3Rlc3Q6ICtTS0lQCi0gICAgICAgID4+PiBucC5hcnJheShbMC4xLCAwLjJdKSArIG5w
LmFycmF5KFswLjIsIDAuNF0pID09IGFwcHJveChucC5hcnJheShbMC4zLCAwLjZdKSkgIyBkb2N0
ZXN0OiArU0tJUAotICAgICAgICBUcnVlCi0KLSAgICBCeSBkZWZhdWx0LCBgYGFwcHJveGBgIGNv
bnNpZGVycyBudW1iZXJzIHdpdGhpbiBhIHJlbGF0aXZlIHRvbGVyYW5jZSBvZgotICAgIGBgMWUt
NmBgIChpLmUuIG9uZSBwYXJ0IGluIGEgbWlsbGlvbikgb2YgaXRzIGV4cGVjdGVkIHZhbHVlIHRv
IGJlIGVxdWFsLgotICAgIFRoaXMgdHJlYXRtZW50IHdvdWxkIGxlYWQgdG8gc3VycHJpc2luZyBy
ZXN1bHRzIGlmIHRoZSBleHBlY3RlZCB2YWx1ZSB3YXMKLSAgICBgYDAuMGBgLCBiZWNhdXNlIG5v
dGhpbmcgYnV0IGBgMC4wYGAgaXRzZWxmIGlzIHJlbGF0aXZlbHkgY2xvc2UgdG8gYGAwLjBgYC4K
LSAgICBUbyBoYW5kbGUgdGhpcyBjYXNlIGxlc3Mgc3VycHJpc2luZ2x5LCBgYGFwcHJveGBgIGFs
c28gY29uc2lkZXJzIG51bWJlcnMKLSAgICB3aXRoaW4gYW4gYWJzb2x1dGUgdG9sZXJhbmNlIG9m
IGBgMWUtMTJgYCBvZiBpdHMgZXhwZWN0ZWQgdmFsdWUgdG8gYmUKLSAgICBlcXVhbC4gIEluZmlu
aXR5IGFuZCBOYU4gYXJlIHNwZWNpYWwgY2FzZXMuICBJbmZpbml0eSBpcyBvbmx5IGNvbnNpZGVy
ZWQKLSAgICBlcXVhbCB0byBpdHNlbGYsIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlbGF0aXZlIHRvbGVy
YW5jZS4gIE5hTiBpcyBub3QKLSAgICBjb25zaWRlcmVkIGVxdWFsIHRvIGFueXRoaW5nIGJ5IGRl
ZmF1bHQsIGJ1dCB5b3UgY2FuIG1ha2UgaXQgYmUgZXF1YWwgdG8KLSAgICBpdHNlbGYgYnkgc2V0
dGluZyB0aGUgYGBuYW5fb2tgYCBhcmd1bWVudCB0byBUcnVlLiAgKFRoaXMgaXMgbWVhbnQgdG8K
LSAgICBmYWNpbGl0YXRlIGNvbXBhcmluZyBhcnJheXMgdGhhdCB1c2UgTmFOIHRvIG1lYW4gIm5v
IGRhdGEiLikKLQotICAgIEJvdGggdGhlIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSB0b2xlcmFuY2Vz
IGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcKLSAgICBhcmd1bWVudHMgdG8gdGhlIGBgYXBwcm94
YGAgY29uc3RydWN0b3I6OgotCi0gICAgICAgID4+PiAxLjAwMDEgPT0gYXBwcm94KDEpCi0gICAg
ICAgIEZhbHNlCi0gICAgICAgID4+PiAxLjAwMDEgPT0gYXBwcm94KDEsIHJlbD0xZS0zKQotICAg
ICAgICBUcnVlCi0gICAgICAgID4+PiAxLjAwMDEgPT0gYXBwcm94KDEsIGFicz0xZS0zKQotICAg
ICAgICBUcnVlCi0KLSAgICBJZiB5b3Ugc3BlY2lmeSBgYGFic2BgIGJ1dCBub3QgYGByZWxgYCwg
dGhlIGNvbXBhcmlzb24gd2lsbCBub3QgY29uc2lkZXIKLSAgICB0aGUgcmVsYXRpdmUgdG9sZXJh
bmNlIGF0IGFsbC4gIEluIG90aGVyIHdvcmRzLCB0d28gbnVtYmVycyB0aGF0IGFyZSB3aXRoaW4K
LSAgICB0aGUgZGVmYXVsdCByZWxhdGl2ZSB0b2xlcmFuY2Ugb2YgYGAxZS02YGAgd2lsbCBzdGls
bCBiZSBjb25zaWRlcmVkIHVuZXF1YWwKLSAgICBpZiB0aGV5IGV4Y2VlZCB0aGUgc3BlY2lmaWVk
IGFic29sdXRlIHRvbGVyYW5jZS4gIElmIHlvdSBzcGVjaWZ5IGJvdGgKLSAgICBgYGFic2BgIGFu
ZCBgYHJlbGBgLCB0aGUgbnVtYmVycyB3aWxsIGJlIGNvbnNpZGVyZWQgZXF1YWwgaWYgZWl0aGVy
Ci0gICAgdG9sZXJhbmNlIGlzIG1ldDo6Ci0KLSAgICAgICAgPj4+IDEgKyAxZS04ID09IGFwcHJv
eCgxKQotICAgICAgICBUcnVlCi0gICAgICAgID4+PiAxICsgMWUtOCA9PSBhcHByb3goMSwgYWJz
PTFlLTEyKQotICAgICAgICBGYWxzZQotICAgICAgICA+Pj4gMSArIDFlLTggPT0gYXBwcm94KDEs
IHJlbD0xZS02LCBhYnM9MWUtMTIpCi0gICAgICAgIFRydWUKLQotICAgIElmIHlvdSdyZSB0aGlu
a2luZyBhYm91dCB1c2luZyBgYGFwcHJveGBgLCB0aGVuIHlvdSBtaWdodCB3YW50IHRvIGtub3cg
aG93Ci0gICAgaXQgY29tcGFyZXMgdG8gb3RoZXIgZ29vZCB3YXlzIG9mIGNvbXBhcmluZyBmbG9h
dGluZy1wb2ludCBudW1iZXJzLiAgQWxsIG9mCi0gICAgdGhlc2UgYWxnb3JpdGhtcyBhcmUgYmFz
ZWQgb24gcmVsYXRpdmUgYW5kIGFic29sdXRlIHRvbGVyYW5jZXMgYW5kIHNob3VsZAotICAgIGFn
cmVlIGZvciB0aGUgbW9zdCBwYXJ0LCBidXQgdGhleSBkbyBoYXZlIG1lYW5pbmdmdWwgZGlmZmVy
ZW5jZXM6Ci0KLSAgICAtIGBgbWF0aC5pc2Nsb3NlKGEsIGIsIHJlbF90b2w9MWUtOSwgYWJzX3Rv
bD0wLjApYGA6ICBUcnVlIGlmIHRoZSByZWxhdGl2ZQotICAgICAgdG9sZXJhbmNlIGlzIG1ldCB3
LnIudC4gZWl0aGVyIGBgYWBgIG9yIGBgYmBgIG9yIGlmIHRoZSBhYnNvbHV0ZQotICAgICAgdG9s
ZXJhbmNlIGlzIG1ldC4gIEJlY2F1c2UgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBpcyBjYWxjdWxh
dGVkIHcuci50LgotICAgICAgYm90aCBgYGFgYCBhbmQgYGBiYGAsIHRoaXMgdGVzdCBpcyBzeW1t
ZXRyaWMgKGkuZS4gIG5laXRoZXIgYGBhYGAgbm9yCi0gICAgICBgYGJgYCBpcyBhICJyZWZlcmVu
Y2UgdmFsdWUiKS4gIFlvdSBoYXZlIHRvIHNwZWNpZnkgYW4gYWJzb2x1dGUgdG9sZXJhbmNlCi0g
ICAgICBpZiB5b3Ugd2FudCB0byBjb21wYXJlIHRvIGBgMC4wYGAgYmVjYXVzZSB0aGVyZSBpcyBu
byB0b2xlcmFuY2UgYnkKLSAgICAgIGRlZmF1bHQuICBPbmx5IGF2YWlsYWJsZSBpbiBweXRob24+
PTMuNS4gIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9fCi0KLSAgICAgIF9fIGh0dHBzOi8vZG9jcy5w
eXRob24ub3JnLzMvbGlicmFyeS9tYXRoLmh0bWwjbWF0aC5pc2Nsb3NlCi0KLSAgICAtIGBgbnVt
cHkuaXNjbG9zZShhLCBiLCBydG9sPTFlLTUsIGF0b2w9MWUtOClgYDogVHJ1ZSBpZiB0aGUgZGlm
ZmVyZW5jZQotICAgICAgYmV0d2VlbiBgYGFgYCBhbmQgYGBiYGAgaXMgbGVzcyB0aGF0IHRoZSBz
dW0gb2YgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZQotICAgICAgdy5yLnQuIGBgYmBgIGFuZCB0aGUg
YWJzb2x1dGUgdG9sZXJhbmNlLiAgQmVjYXVzZSB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlCi0gICAg
ICBpcyBvbmx5IGNhbGN1bGF0ZWQgdy5yLnQuIGBgYmBgLCB0aGlzIHRlc3QgaXMgYXN5bW1ldHJp
YyBhbmQgeW91IGNhbgotICAgICAgdGhpbmsgb2YgYGBiYGAgYXMgdGhlIHJlZmVyZW5jZSB2YWx1
ZS4gIFN1cHBvcnQgZm9yIGNvbXBhcmluZyBzZXF1ZW5jZXMKLSAgICAgIGlzIHByb3ZpZGVkIGJ5
IGBgbnVtcHkuYWxsY2xvc2VgYC4gIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9fCi0KLSAgICAgIF9f
IGh0dHA6Ly9kb2NzLnNjaXB5Lm9yZy9kb2MvbnVtcHktMS4xMC4wL3JlZmVyZW5jZS9nZW5lcmF0
ZWQvbnVtcHkuaXNjbG9zZS5odG1sCi0KLSAgICAtIGBgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0
QWxtb3N0RXF1YWwoYSwgYilgYDogVHJ1ZSBpZiBgYGFgYCBhbmQgYGBiYGAKLSAgICAgIGFyZSB3
aXRoaW4gYW4gYWJzb2x1dGUgdG9sZXJhbmNlIG9mIGBgMWUtN2BgLiAgTm8gcmVsYXRpdmUgdG9s
ZXJhbmNlIGlzCi0gICAgICBjb25zaWRlcmVkIGFuZCB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlIGNh
bm5vdCBiZSBjaGFuZ2VkLCBzbyB0aGlzIGZ1bmN0aW9uCi0gICAgICBpcyBub3QgYXBwcm9wcmlh
dGUgZm9yIHZlcnkgbGFyZ2Ugb3IgdmVyeSBzbWFsbCBudW1iZXJzLiAgQWxzbywgaXQncyBvbmx5
Ci0gICAgICBhdmFpbGFibGUgaW4gc3ViY2xhc3NlcyBvZiBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAg
YW5kIGl0J3MgdWdseSBiZWNhdXNlIGl0Ci0gICAgICBkb2Vzbid0IGZvbGxvdyBQRVA4LiAgYE1v
cmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcv
My9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWwjdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0QWxtb3N0RXF1
YWwKLQotICAgIC0gYGBhID09IHB5dGVzdC5hcHByb3goYiwgcmVsPTFlLTYsIGFicz0xZS0xMilg
YDogVHJ1ZSBpZiB0aGUgcmVsYXRpdmUKLSAgICAgIHRvbGVyYW5jZSBpcyBtZXQgdy5yLnQuIGBg
YmBgIG9yIGlmIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UgaXMgbWV0LgotICAgICAgQmVjYXVzZSB0
aGUgcmVsYXRpdmUgdG9sZXJhbmNlIGlzIG9ubHkgY2FsY3VsYXRlZCB3LnIudC4gYGBiYGAsIHRo
aXMgdGVzdAotICAgICAgaXMgYXN5bW1ldHJpYyBhbmQgeW91IGNhbiB0aGluayBvZiBgYGJgYCBh
cyB0aGUgcmVmZXJlbmNlIHZhbHVlLiAgSW4gdGhlCi0gICAgICBzcGVjaWFsIGNhc2UgdGhhdCB5
b3UgZXhwbGljaXRseSBzcGVjaWZ5IGFuIGFic29sdXRlIHRvbGVyYW5jZSBidXQgbm90IGEKLSAg
ICAgIHJlbGF0aXZlIHRvbGVyYW5jZSwgb25seSB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlIGlzIGNv
bnNpZGVyZWQuCi0KLSAgICAuLiB3YXJuaW5nOjoKLQotICAgICAgIC4uIHZlcnNpb25jaGFuZ2Vk
OjogMy4yCi0KLSAgICAgICBJbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbnQgYmVoYXZpb3Is
IGBgVHlwZUVycm9yYGAgaXMKLSAgICAgICByYWlzZWQgZm9yIGBgPmBgLCBgYD49YGAsIGBgPGBg
IGFuZCBgYDw9YGAgY29tcGFyaXNvbnMuCi0gICAgICAgVGhlIGV4YW1wbGUgYmVsb3cgaWxsdXN0
cmF0ZXMgdGhlIHByb2JsZW06OgotCi0gICAgICAgICAgIGFzc2VydCBhcHByb3goMC4xKSA+IDAu
MSArIDFlLTEwICAjIGNhbGxzIGFwcHJveCgwLjEpLl9fZ3RfXygwLjEgKyAxZS0xMCkKLSAgICAg
ICAgICAgYXNzZXJ0IDAuMSArIDFlLTEwID4gYXBwcm94KDAuMSkgICMgY2FsbHMgYXBwcm94KDAu
MSkuX19sdF9fKDAuMSArIDFlLTEwKQotCi0gICAgICAgSW4gdGhlIHNlY29uZCBleGFtcGxlIG9u
ZSBleHBlY3RzIGBgYXBwcm94KDAuMSkuX19sZV9fKDAuMSArIDFlLTEwKWBgCi0gICAgICAgdG8g
YmUgY2FsbGVkLiBCdXQgaW5zdGVhZCwgYGBhcHByb3goMC4xKS5fX2x0X18oMC4xICsgMWUtMTAp
YGAgaXMgdXNlZCB0bwotICAgICAgIGNvbXBhcmlzb24uIFRoaXMgaXMgYmVjYXVzZSB0aGUgY2Fs
bCBoaWVyYXJjaHkgb2YgcmljaCBjb21wYXJpc29ucwotICAgICAgIGZvbGxvd3MgYSBmaXhlZCBi
ZWhhdmlvci4gYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAgIF9fIGh0dHBzOi8vZG9j
cy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2RhdGFtb2RlbC5odG1sI29iamVjdC5fX2dlX18KLSAg
ICAiIiIKLQotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE1hcHBpbmcsIFNlcXVlbmNlCi0g
ICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgU1RSSU5HX1RZUEVTIGFzIFN0cmluZwotCi0g
ICAgIyBEZWxlZ2F0ZSB0aGUgY29tcGFyaXNvbiB0byBhIGNsYXNzIHRoYXQga25vd3MgaG93IHRv
IGRlYWwgd2l0aCB0aGUgdHlwZQotICAgICMgb2YgdGhlIGV4cGVjdGVkIHZhbHVlIChlLmcuIGlu
dCwgZmxvYXQsIGxpc3QsIGRpY3QsIG51bXB5LmFycmF5LCBldGMpLgotICAgICMKLSAgICAjIFRo
aXMgYXJjaGl0ZWN0dXJlIGlzIHJlYWxseSBkcml2ZW4gYnkgdGhlIG5lZWQgdG8gc3VwcG9ydCBu
dW1weSBhcnJheXMuCi0gICAgIyBUaGUgb25seSB3YXkgdG8gb3ZlcnJpZGUgYD09YCBmb3IgYXJy
YXlzIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQgYXBwcm94IGJlCi0gICAgIyB0aGUgbGVmdCBvcGVy
YW5kIGlzIHRvIGluaGVyaXQgdGhlIGFwcHJveCBvYmplY3QgZnJvbSBgbnVtcHkubmRhcnJheWAu
Ci0gICAgIyBCdXQgdGhhdCBjYW4ndCBiZSBhIGdlbmVyYWwgc29sdXRpb24sIGJlY2F1c2UgaXQg
cmVxdWlyZXMgKDEpIG51bXB5IHRvIGJlCi0gICAgIyBpbnN0YWxsZWQgYW5kICgyKSB0aGUgZXhw
ZWN0ZWQgdmFsdWUgdG8gYmUgYSBudW1weSBhcnJheS4gIFNvIHRoZSBnZW5lcmFsCi0gICAgIyBz
b2x1dGlvbiBpcyB0byBkZWxlZ2F0ZSBlYWNoIHR5cGUgb2YgZXhwZWN0ZWQgdmFsdWUgdG8gYSBk
aWZmZXJlbnQgY2xhc3MuCi0gICAgIwotICAgICMgVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0
IGl0IG1hZGUgaXQgZWFzeSB0byBzdXBwb3J0IG1hcHBpbmcgdHlwZXMKLSAgICAjIChpLmUuIGRp
Y3QpLiAgVGhlIG9sZCBjb2RlIGFjY2VwdGVkIG1hcHBpbmcgdHlwZXMsIGJ1dCB3b3VsZCBvbmx5
IGNvbXBhcmUKLSAgICAjIHRoZWlyIGtleXMsIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IG1v
c3QgcGVvcGxlIHdvdWxkIGV4cGVjdC4KLQotICAgIGlmIF9pc19udW1weV9hcnJheShleHBlY3Rl
ZCk6Ci0gICAgICAgIGNscyA9IEFwcHJveE51bXB5Ci0gICAgZWxpZiBpc2luc3RhbmNlKGV4cGVj
dGVkLCBNYXBwaW5nKToKLSAgICAgICAgY2xzID0gQXBwcm94TWFwcGluZwotICAgIGVsaWYgaXNp
bnN0YW5jZShleHBlY3RlZCwgU2VxdWVuY2UpIGFuZCBub3QgaXNpbnN0YW5jZShleHBlY3RlZCwg
U3RyaW5nKToKLSAgICAgICAgY2xzID0gQXBwcm94U2VxdWVuY2UKLSAgICBlbHNlOgotICAgICAg
ICBjbHMgPSBBcHByb3hTY2FsYXIKLQotICAgIHJldHVybiBjbHMoZXhwZWN0ZWQsIHJlbCwgYWJz
LCBuYW5fb2spCi0KLQotZGVmIF9pc19udW1weV9hcnJheShvYmopOgotICAgICIiIgotICAgIFJl
dHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBudW1weSBhcnJheS4gIE1ha2UgYSBz
cGVjaWFsIGVmZm9ydCB0bwotICAgIGF2b2lkIGltcG9ydGluZyBudW1weSB1bmxlc3MgaXQncyBy
ZWFsbHkgbmVjZXNzYXJ5LgotICAgICIiIgotICAgIGltcG9ydCBpbnNwZWN0Ci0KLSAgICBmb3Ig
Y2xzIGluIGluc3BlY3QuZ2V0bXJvKHR5cGUob2JqKSk6Ci0gICAgICAgIGlmIGNscy5fX21vZHVs
ZV9fID09ICdudW1weSc6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0
IG51bXB5IGFzIG5wCi0gICAgICAgICAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uob2JqLCBucC5u
ZGFycmF5KQotICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgICAg
IHBhc3MKLQotICAgIHJldHVybiBGYWxzZQotCi0KLSMgYnVpbHRpbiBweXRlc3QucmFpc2VzIGhl
bHBlcgotCi1kZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFyZ3MsICoqa3dhcmdzKToK
LSAgICAiIiIKLSAgICBBc3NlcnQgdGhhdCBhIGNvZGUgYmxvY2svZnVuY3Rpb24gY2FsbCByYWlz
ZXMgYGBleHBlY3RlZF9leGNlcHRpb25gYAotICAgIGFuZCByYWlzZSBhIGZhaWx1cmUgZXhjZXB0
aW9uIG90aGVyd2lzZS4KLQotICAgIFRoaXMgaGVscGVyIHByb2R1Y2VzIGEgYGBFeGNlcHRpb25J
bmZvKClgYCBvYmplY3QgKHNlZSBiZWxvdykuCi0KLSAgICBZb3UgbWF5IHVzZSB0aGlzIGZ1bmN0
aW9uIGFzIGEgY29udGV4dCBtYW5hZ2VyOjoKLQotICAgICAgICA+Pj4gd2l0aCByYWlzZXMoWmVy
b0RpdmlzaW9uRXJyb3IpOgotICAgICAgICAuLi4gICAgMS8wCi0KLSAgICAuLiB2ZXJzaW9uY2hh
bmdlZDo6IDIuMTAKLQotICAgIEluIHRoZSBjb250ZXh0IG1hbmFnZXIgZm9ybSB5b3UgbWF5IHVz
ZSB0aGUga2V5d29yZCBhcmd1bWVudAotICAgIGBgbWVzc2FnZWBgIHRvIHNwZWNpZnkgYSBjdXN0
b20gZmFpbHVyZSBtZXNzYWdlOjoKLQotICAgICAgICA+Pj4gd2l0aCByYWlzZXMoWmVyb0Rpdmlz
aW9uRXJyb3IsIG1lc3NhZ2U9IkV4cGVjdGluZyBaZXJvRGl2aXNpb25FcnJvciIpOgotICAgICAg
ICAuLi4gICAgcGFzcwotICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6
Ci0gICAgICAgICAgLi4uCi0gICAgICAgIEZhaWxlZDogRXhwZWN0aW5nIFplcm9EaXZpc2lvbkVy
cm9yCi0KLSAgICAuLiBub3RlOjoKLQotICAgICAgIFdoZW4gdXNpbmcgYGBweXRlc3QucmFpc2Vz
YGAgYXMgYSBjb250ZXh0IG1hbmFnZXIsIGl0J3Mgd29ydGh3aGlsZSB0bwotICAgICAgIG5vdGUg
dGhhdCBub3JtYWwgY29udGV4dCBtYW5hZ2VyIHJ1bGVzIGFwcGx5IGFuZCB0aGF0IHRoZSBleGNl
cHRpb24KLSAgICAgICByYWlzZWQgKm11c3QqIGJlIHRoZSBmaW5hbCBsaW5lIGluIHRoZSBzY29w
ZSBvZiB0aGUgY29udGV4dCBtYW5hZ2VyLgotICAgICAgIExpbmVzIG9mIGNvZGUgYWZ0ZXIgdGhh
dCwgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgY29udGV4dCBtYW5hZ2VyIHdpbGwKLSAgICAgICBu
b3QgYmUgZXhlY3V0ZWQuIEZvciBleGFtcGxlOjoKLQotICAgICAgICAgICA+Pj4gdmFsdWUgPSAx
NQotICAgICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjX2luZm86Ci0g
ICAgICAgICAgIC4uLiAgICAgaWYgdmFsdWUgPiAxMDoKLSAgICAgICAgICAgLi4uICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA8PSAxMCIpCi0gICAgICAgICAgIC4uLiAg
ICAgYXNzZXJ0IGV4Y19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvciAgIyB0aGlzIHdpbGwgbm90IGV4
ZWN1dGUKLQotICAgICAgIEluc3RlYWQsIHRoZSBmb2xsb3dpbmcgYXBwcm9hY2ggbXVzdCBiZSB0
YWtlbiAobm90ZSB0aGUgZGlmZmVyZW5jZSBpbgotICAgICAgIHNjb3BlKTo6Ci0KLSAgICAgICAg
ICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y19pbmZvOgotICAgICAgICAgICAu
Li4gICAgIGlmIHZhbHVlID4gMTA6Ci0gICAgICAgICAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInZhbHVlIG11c3QgYmUgPD0gMTAiKQotICAgICAgICAgICAuLi4KLSAgICAgICAgICAg
Pj4+IGFzc2VydCBleGNfaW5mby50eXBlID09IFZhbHVlRXJyb3IKLQotCi0gICAgU2luY2UgdmVy
c2lvbiBgYDMuMWBgIHlvdSBjYW4gdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50IGBgbWF0Y2hgYCB0
byBhc3NlcnQgdGhhdCB0aGUKLSAgICBleGNlcHRpb24gbWF0Y2hlcyBhIHRleHQgb3IgcmVnZXg6
OgotCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yLCBtYXRjaD0nbXVzdCBiZSAw
IG9yIE5vbmUnKToKLSAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0
IGJlIDAgb3IgTm9uZSIpCi0KLSAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IsIG1h
dGNoPXInbXVzdCBiZSBcZCskJyk6Ci0gICAgICAgIC4uLiAgICAgcmFpc2UgVmFsdWVFcnJvcigi
dmFsdWUgbXVzdCBiZSA0MiIpCi0KLSAgICAqKkxlZ2FjeSBmb3JtcyoqCi0KLSAgICBUaGUgZm9y
bXMgYmVsb3cgYXJlIGZ1bGx5IHN1cHBvcnRlZCBidXQgYXJlIGRpc2NvdXJhZ2VkIGZvciBuZXcg
Y29kZSBiZWNhdXNlIHRoZQotICAgIGNvbnRleHQgbWFuYWdlciBmb3JtIGlzIHJlZ2FyZGVkIGFz
IG1vcmUgcmVhZGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUuCi0KLSAgICBJdCBpcyBwb3NzaWJs
ZSB0byBzcGVjaWZ5IGEgY2FsbGFibGUgYnkgcGFzc2luZyBhIHRvLWJlLWNhbGxlZCBsYW1iZGE6
OgotCi0gICAgICAgID4+PiByYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGxhbWJkYTogMS8wKQot
ICAgICAgICA8RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBvciB5b3UgY2FuIHNwZWNpZnkgYW4g
YXJiaXRyYXJ5IGNhbGxhYmxlIHdpdGggYXJndW1lbnRzOjoKLQotICAgICAgICA+Pj4gZGVmIGYo
eCk6IHJldHVybiAxL3gKLSAgICAgICAgLi4uCi0gICAgICAgID4+PiByYWlzZXMoWmVyb0Rpdmlz
aW9uRXJyb3IsIGYsIDApCi0gICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KLSAgICAgICAgPj4+
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgZiwgeD0wKQotICAgICAgICA8RXhjZXB0aW9uSW5m
byAuLi4+Ci0KLSAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHBhc3MgYSBzdHJpbmcgdG8gYmUg
ZXZhbHVhdGVkIGF0IHJ1bnRpbWU6OgotCi0gICAgICAgID4+PiByYWlzZXMoWmVyb0RpdmlzaW9u
RXJyb3IsICJmKDApIikKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4uPgotCi0gICAgVGhlIHN0
cmluZyB3aWxsIGJlIGV2YWx1YXRlZCB1c2luZyB0aGUgc2FtZSBgYGxvY2FscygpYGAgYW5kIGBg
Z2xvYmFscygpYGAKLSAgICBhdCB0aGUgbW9tZW50IG9mIHRoZSBgYHJhaXNlc2BgIGNhbGwuCi0K
LSAgICAuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8KLSAgICAgICAg
Om1lbWJlcnM6Ci0KLSAgICAuLiBub3RlOjoKLSAgICAgICAgU2ltaWxhciB0byBjYXVnaHQgZXhj
ZXB0aW9uIG9iamVjdHMgaW4gUHl0aG9uLCBleHBsaWNpdGx5IGNsZWFyaW5nCi0gICAgICAgIGxv
Y2FsIHJlZmVyZW5jZXMgdG8gcmV0dXJuZWQgYGBFeGNlcHRpb25JbmZvYGAgb2JqZWN0cyBjYW4K
LSAgICAgICAgaGVscCB0aGUgUHl0aG9uIGludGVycHJldGVyIHNwZWVkIHVwIGl0cyBnYXJiYWdl
IGNvbGxlY3Rpb24uCi0KLSAgICAgICAgQ2xlYXJpbmcgdGhvc2UgcmVmZXJlbmNlcyBicmVha3Mg
YSByZWZlcmVuY2UgY3ljbGUKLSAgICAgICAgKGBgRXhjZXB0aW9uSW5mb2BgIC0tPiBjYXVnaHQg
ZXhjZXB0aW9uIC0tPiBmcmFtZSBzdGFjayByYWlzaW5nCi0gICAgICAgIHRoZSBleGNlcHRpb24g
LS0+IGN1cnJlbnQgZnJhbWUgc3RhY2sgLS0+IGxvY2FsIHZhcmlhYmxlcyAtLT4KLSAgICAgICAg
YGBFeGNlcHRpb25JbmZvYGApIHdoaWNoIG1ha2VzIFB5dGhvbiBrZWVwIGFsbCBvYmplY3RzIHJl
ZmVyZW5jZWQKLSAgICAgICAgZnJvbSB0aGF0IGN5Y2xlIChpbmNsdWRpbmcgYWxsIGxvY2FsIHZh
cmlhYmxlcyBpbiB0aGUgY3VycmVudAotICAgICAgICBmcmFtZSkgYWxpdmUgdW50aWwgdGhlIG5l
eHQgY3ljbGljIGdhcmJhZ2UgY29sbGVjdGlvbiBydW4uIFNlZSB0aGUKLSAgICAgICAgb2ZmaWNp
YWwgUHl0aG9uIGBgdHJ5YGAgc3RhdGVtZW50IGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWls
ZWQKLSAgICAgICAgaW5mb3JtYXRpb24uCi0KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICBtc2cgPSAoImV4Y2VwdGlvbnMgbXVzdCBiZSBvbGQtc3R5bGUgY2xhc3Nl
cyBvciIKLSAgICAgICAgICAgIiBkZXJpdmVkIGZyb20gQmFzZUV4Y2VwdGlvbiwgbm90ICVzIikK
LSAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkX2V4Y2VwdGlvbiwgdHVwbGUpOgotICAgICAgICBm
b3IgZXhjIGluIGV4cGVjdGVkX2V4Y2VwdGlvbjoKLSAgICAgICAgICAgIGlmIG5vdCBpc2NsYXNz
KGV4Yyk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhjKSkK
LSAgICBlbGlmIG5vdCBpc2NsYXNzKGV4cGVjdGVkX2V4Y2VwdGlvbik6Ci0gICAgICAgIHJhaXNl
IFR5cGVFcnJvcihtc2cgJSB0eXBlKGV4cGVjdGVkX2V4Y2VwdGlvbikpCi0KLSAgICBtZXNzYWdl
ID0gIkRJRCBOT1QgUkFJU0UgezB9Ii5mb3JtYXQoZXhwZWN0ZWRfZXhjZXB0aW9uKQotICAgIG1h
dGNoX2V4cHIgPSBOb25lCi0KLSAgICBpZiBub3QgYXJnczoKLSAgICAgICAgaWYgIm1lc3NhZ2Ui
IGluIGt3YXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBrd2FyZ3MucG9wKCJtZXNzYWdlIikK
LSAgICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICBtYXRjaF9leHByID0g
a3dhcmdzLnBvcCgibWF0Y2giKQotICAgICAgICAgICAgbWVzc2FnZSArPSAiIG1hdGNoaW5nICd7
MH0nIi5mb3JtYXQobWF0Y2hfZXhwcikKLSAgICAgICAgcmV0dXJuIFJhaXNlc0NvbnRleHQoZXhw
ZWN0ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRjaF9leHByKQotICAgIGVsaWYgaXNpbnN0YW5j
ZShhcmdzWzBdLCBzdHIpOgotICAgICAgICBjb2RlLCA9IGFyZ3MKLSAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2UoY29kZSwgc3RyKQotICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKLSAg
ICAgICAgbG9jID0gZnJhbWUuZl9sb2NhbHMuY29weSgpCi0gICAgICAgIGxvYy51cGRhdGUoa3dh
cmdzKQotICAgICAgICAjIHByaW50ICJyYWlzZXMgZnJhbWUgc2NvcGU6ICVyIiAlIGZyYW1lLmZf
bG9jYWxzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLlNv
dXJjZShjb2RlKS5jb21waWxlKCkKLSAgICAgICAgICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwg
ZnJhbWUuZl9nbG9iYWxzLCBsb2MpCi0gICAgICAgICAgICAjIFhYWCBkaWRuJ1QgbWVhbiBmX2ds
b2JhbHMgPT0gZl9sb2NhbHMgc29tZXRoaW5nIHNwZWNpYWw/Ci0gICAgICAgICAgICAjICAgICB0
aGlzIGlzIGRlc3Ryb3llZCBoZXJlIC4uLgotICAgICAgICBleGNlcHQgZXhwZWN0ZWRfZXhjZXB0
aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCi0g
ICAgZWxzZToKLSAgICAgICAgZnVuYyA9IGFyZ3NbMF0KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgZnVuYygqYXJnc1sxOl0sICoqa3dhcmdzKQotICAgICAgICBleGNlcHQgZXhwZWN0ZWRfZXhj
ZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygp
Ci0gICAgZmFpbChtZXNzYWdlKQotCi0KLXJhaXNlcy5FeGNlcHRpb24gPSBmYWlsLkV4Y2VwdGlv
bgotCi0KLWNsYXNzIFJhaXNlc0NvbnRleHQob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRjaF9leHByKToKLSAgICAgICAgc2Vs
Zi5leHBlY3RlZF9leGNlcHRpb24gPSBleHBlY3RlZF9leGNlcHRpb24KLSAgICAgICAgc2VsZi5t
ZXNzYWdlID0gbWVzc2FnZQotICAgICAgICBzZWxmLm1hdGNoX2V4cHIgPSBtYXRjaF9leHByCi0g
ICAgICAgIHNlbGYuZXhjaW5mbyA9IE5vbmUKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0g
ICAgICAgIHNlbGYuZXhjaW5mbyA9IG9iamVjdC5fX25ld19fKF9weXRlc3QuX2NvZGUuRXhjZXB0
aW9uSW5mbykKLSAgICAgICAgcmV0dXJuIHNlbGYuZXhjaW5mbwotCi0gICAgZGVmIF9fZXhpdF9f
KHNlbGYsICp0cCk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBp
ZiB0cFswXSBpcyBOb25lOgotICAgICAgICAgICAgZmFpbChzZWxmLm1lc3NhZ2UpCi0gICAgICAg
IHNlbGYuZXhjaW5mby5fX2luaXRfXyh0cCkKLSAgICAgICAgc3VwcHJlc3NfZXhjZXB0aW9uID0g
aXNzdWJjbGFzcyhzZWxmLmV4Y2luZm8udHlwZSwgc2VsZi5leHBlY3RlZF9leGNlcHRpb24pCi0g
ICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMiBhbmQgc3VwcHJlc3NfZXhjZXB0aW9u
OgotICAgICAgICAgICAgc3lzLmV4Y19jbGVhcigpCi0gICAgICAgIGlmIHNlbGYubWF0Y2hfZXhw
cjoKLSAgICAgICAgICAgIHNlbGYuZXhjaW5mby5tYXRjaChzZWxmLm1hdGNoX2V4cHIpCi0gICAg
ICAgIHJldHVybiBzdXBwcmVzc19leGNlcHRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcmVjd2Fybi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVjd2Fybi5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZjZWIxMGE3ZjM0MDQzZjQwZGM0Mzk2MDg5MWNhZGMy
ZmU0MWEyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMzYgKzAs
MCBAQAotIiIiIHJlY29yZGluZyB3YXJuaW5ncyBkdXJpbmcgdGVzdCBmdW5jdGlvbiBleGVjdXRp
b24uICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgaW5zcGVjdAotCi1pbXBvcnQgX3B5dGVzdC5fY29k
ZQotaW1wb3J0IHB5Ci1pbXBvcnQgc3lzCi1pbXBvcnQgd2FybmluZ3MKLQotaW1wb3J0IHJlCi0K
LWZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgeWllbGRfZml4dHVyZQotZnJvbSBfcHl0ZXN0
Lm91dGNvbWVzIGltcG9ydCBmYWlsCi0KLQotQHlpZWxkX2ZpeHR1cmUKLWRlZiByZWN3YXJuKCk6
Ci0gICAgIiIiUmV0dXJuIGEgV2FybmluZ3NSZWNvcmRlciBpbnN0YW5jZSB0aGF0IHByb3ZpZGVz
IHRoZXNlIG1ldGhvZHM6Ci0KLSAgICAqIGBgcG9wKGNhdGVnb3J5PU5vbmUpYGA6IHJldHVybiBs
YXN0IHdhcm5pbmcgbWF0Y2hpbmcgdGhlIGNhdGVnb3J5LgotICAgICogYGBjbGVhcigpYGA6IGNs
ZWFyIGxpc3Qgb2Ygd2FybmluZ3MKLQotICAgIFNlZSBodHRwOi8vZG9jcy5weXRob24ub3JnL2xp
YnJhcnkvd2FybmluZ3MuaHRtbCBmb3IgaW5mb3JtYXRpb24KLSAgICBvbiB3YXJuaW5nIGNhdGVn
b3JpZXMuCi0gICAgIiIiCi0gICAgd3JlYyA9IFdhcm5pbmdzUmVjb3JkZXIoKQotICAgIHdpdGgg
d3JlYzoKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdkZWZhdWx0JykKLSAgICAgICAg
eWllbGQgd3JlYwotCi0KLWRlZiBkZXByZWNhdGVkX2NhbGwoZnVuYz1Ob25lLCAqYXJncywgKipr
d2FyZ3MpOgotICAgICIiImNvbnRleHQgbWFuYWdlciB0aGF0IGNhbiBiZSB1c2VkIHRvIGVuc3Vy
ZSBhIGJsb2NrIG9mIGNvZGUgdHJpZ2dlcnMgYQotICAgIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAg
b3IgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGA6OgotCi0gICAgICAgID4+PiBpbXBvcnQg
d2FybmluZ3MKLSAgICAgICAgPj4+IGRlZiBhcGlfY2FsbF92MigpOgotICAgICAgICAuLi4gICAg
IHdhcm5pbmdzLndhcm4oJ3VzZSB2MyBvZiB0aGlzIGFwaScsIERlcHJlY2F0aW9uV2FybmluZykK
LSAgICAgICAgLi4uICAgICByZXR1cm4gMjAwCi0KLSAgICAgICAgPj4+IHdpdGggZGVwcmVjYXRl
ZF9jYWxsKCk6Ci0gICAgICAgIC4uLiAgICBhc3NlcnQgYXBpX2NhbGxfdjIoKSA9PSAyMDAKLQot
ICAgIGBgZGVwcmVjYXRlZF9jYWxsYGAgY2FuIGFsc28gYmUgdXNlZCBieSBwYXNzaW5nIGEgZnVu
Y3Rpb24gYW5kIGBgKmFyZ3NgYCBhbmQgYGAqa3dhcmdzYGAsCi0gICAgaW4gd2hpY2ggY2FzZSBp
dCB3aWxsIGVuc3VyZSBjYWxsaW5nIGBgZnVuYygqYXJncywgKiprd2FyZ3MpYGAgcHJvZHVjZXMg
b25lIG9mIHRoZSB3YXJuaW5ncwotICAgIHR5cGVzIGFib3ZlLgotICAgICIiIgotICAgIGlmIG5v
dCBmdW5jOgotICAgICAgICByZXR1cm4gX0RlcHJlY2F0ZWRDYWxsQ29udGV4dCgpCi0gICAgZWxz
ZToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIHdpdGggX0RlcHJl
Y2F0ZWRDYWxsQ29udGV4dCgpOgotICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3MsICoqa3dh
cmdzKQotCi0KLWNsYXNzIF9EZXByZWNhdGVkQ2FsbENvbnRleHQob2JqZWN0KToKLSAgICAiIiJJ
bXBsZW1lbnRzIHRoZSBsb2dpYyB0byBjYXB0dXJlIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGFzIGEg
Y29udGV4dCBtYW5hZ2VyLiIiIgotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAg
c2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcyA9IFtdCi0gICAgICAgIHNlbGYuX29sZF93YXJuID0g
d2FybmluZ3Mud2FybgotICAgICAgICBzZWxmLl9vbGRfd2Fybl9leHBsaWNpdCA9IHdhcm5pbmdz
Lndhcm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2Fybl9leHBsaWNpdCA9IHNlbGYuX3dh
cm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2FybiA9IHNlbGYuX3dhcm4KLQotICAgIGRl
ZiBfd2Fybl9leHBsaWNpdChzZWxmLCBtZXNzYWdlLCBjYXRlZ29yeSwgKmFyZ3MsICoqa3dhcmdz
KToKLSAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBlbmQoY2F0ZWdvcnkpCi0K
LSAgICBkZWYgX3dhcm4oc2VsZiwgbWVzc2FnZSwgY2F0ZWdvcnk9Tm9uZSwgKmFyZ3MsICoqa3dh
cmdzKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShtZXNzYWdlLCBXYXJuaW5nKToKLSAgICAgICAg
ICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKG1lc3NhZ2UuX19jbGFzc19fKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBl
bmQoY2F0ZWdvcnkpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWws
IGV4Y190Yik6Ci0gICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQgPSBzZWxmLl9vbGRfd2Fy
bl9leHBsaWNpdAotICAgICAgICB3YXJuaW5ncy53YXJuID0gc2VsZi5fb2xkX3dhcm4KLQotICAg
ICAgICBpZiBleGNfdHlwZSBpcyBOb25lOgotICAgICAgICAgICAgZGVwcmVjYXRpb25fY2F0ZWdv
cmllcyA9IChEZXByZWNhdGlvbldhcm5pbmcsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpCi0g
ICAgICAgICAgICBpZiBub3QgYW55KGlzc3ViY2xhc3MoYywgZGVwcmVjYXRpb25fY2F0ZWdvcmll
cykgZm9yIGMgaW4gc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcyk6Ci0gICAgICAgICAgICAgICAg
X190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgICAgICAgICAgbXNnID0gIkRpZCBub3Qg
cHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIK
LSAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cpCi0KLQotZGVmIHdhcm5z
KGV4cGVjdGVkX3dhcm5pbmcsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgIiIiQXNzZXJ0IHRoYXQg
Y29kZSByYWlzZXMgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHdhcm5pbmcuCi0KLSAgICBTcGVjaWZp
Y2FsbHksIHRoZSBpbnB1dCBAZXhwZWN0ZWRfd2FybmluZyBjYW4gYmUgYSB3YXJuaW5nIGNsYXNz
IG9yCi0gICAgdHVwbGUgb2Ygd2FybmluZyBjbGFzc2VzLCBhbmQgdGhlIGNvZGUgbXVzdCByZXR1
cm4gdGhhdCB3YXJuaW5nCi0gICAgKGlmIGEgc2luZ2xlIGNsYXNzKSBvciBvbmUgb2YgdGhvc2Ug
d2FybmluZ3MgKGlmIGEgdHVwbGUpLgotCi0gICAgVGhpcyBoZWxwZXIgcHJvZHVjZXMgYSBsaXN0
IG9mIGBgd2FybmluZ3MuV2FybmluZ01lc3NhZ2VgYCBvYmplY3RzLAotICAgIG9uZSBmb3IgZWFj
aCB3YXJuaW5nIHJhaXNlZC4KLQotICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgYXMgYSBj
b250ZXh0IG1hbmFnZXIsIG9yIGFueSBvZiB0aGUgb3RoZXIgd2F5cwotICAgIGBgcHl0ZXN0LnJh
aXNlc2BgIGNhbiBiZSB1c2VkOjoKLQotICAgICAgICA+Pj4gd2l0aCB3YXJucyhSdW50aW1lV2Fy
bmluZyk6Ci0gICAgICAgIC4uLiAgICB3YXJuaW5ncy53YXJuKCJteSB3YXJuaW5nIiwgUnVudGlt
ZVdhcm5pbmcpCi0KLSAgICBJbiB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0geW91IG1heSB1c2Ug
dGhlIGtleXdvcmQgYXJndW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydAotICAgIHRoYXQgdGhlIGV4
Y2VwdGlvbiBtYXRjaGVzIGEgdGV4dCBvciByZWdleDo6Ci0KLSAgICAgICAgPj4+IHdpdGggd2Fy
bnMoVXNlcldhcm5pbmcsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgotICAgICAgICAuLi4g
ICAgIHdhcm5pbmdzLndhcm4oInZhbHVlIG11c3QgYmUgMCBvciBOb25lIiwgVXNlcldhcm5pbmcp
Ci0KLSAgICAgICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBc
ZCskJyk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigidmFsdWUgbXVzdCBiZSA0MiIs
IFVzZXJXYXJuaW5nKQotCi0gICAgICAgID4+PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRj
aD1yJ211c3QgYmUgXGQrJCcpOgotICAgICAgICAuLi4gICAgIHdhcm5pbmdzLndhcm4oInRoaXMg
aXMgbm90IGhlcmUiLCBVc2VyV2FybmluZykKLSAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2Vu
dCBjYWxsIGxhc3QpOgotICAgICAgICAgIC4uLgotICAgICAgICBGYWlsZWQ6IERJRCBOT1QgV0FS
Ti4gTm8gd2FybmluZ3Mgb2YgdHlwZSAuLi5Vc2VyV2FybmluZy4uLiB3YXMgZW1pdHRlZC4uLgot
Ci0gICAgIiIiCi0gICAgbWF0Y2hfZXhwciA9IE5vbmUKLSAgICBpZiBub3QgYXJnczoKLSAgICAg
ICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICBtYXRjaF9leHByID0ga3dhcmdz
LnBvcCgibWF0Y2giKQotICAgICAgICByZXR1cm4gV2FybmluZ3NDaGVja2VyKGV4cGVjdGVkX3dh
cm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcikKLSAgICBlbGlmIGlzaW5zdGFuY2UoYXJnc1sw
XSwgc3RyKToKLSAgICAgICAgY29kZSwgPSBhcmdzCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGNvZGUsIHN0cikKLSAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCi0gICAgICAgIGxv
YyA9IGZyYW1lLmZfbG9jYWxzLmNvcHkoKQotICAgICAgICBsb2MudXBkYXRlKGt3YXJncykKLQot
ICAgICAgICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHBy
PW1hdGNoX2V4cHIpOgotICAgICAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGNv
ZGUpLmNvbXBpbGUoKQotICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBmcmFtZS5m
X2dsb2JhbHMsIGxvYykKLSAgICBlbHNlOgotICAgICAgICBmdW5jID0gYXJnc1swXQotICAgICAg
ICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNo
X2V4cHIpOgotICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3NbMTpdLCAqKmt3YXJncykKLQot
Ci1jbGFzcyBXYXJuaW5nc1JlY29yZGVyKHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKToKLSAgICAi
IiJBIGNvbnRleHQgbWFuYWdlciB0byByZWNvcmQgcmFpc2VkIHdhcm5pbmdzLgotCi0gICAgQWRh
cHRlZCBmcm9tIGB3YXJuaW5ncy5jYXRjaF93YXJuaW5nc2AuCi0gICAgIiIiCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9f
aW5pdF9fKHJlY29yZD1UcnVlKQotICAgICAgICBzZWxmLl9lbnRlcmVkID0gRmFsc2UKLSAgICAg
ICAgc2VsZi5fbGlzdCA9IFtdCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbGlzdChzZWxmKToK
LSAgICAgICAgIiIiVGhlIGxpc3Qgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0gICAgICAgIHJl
dHVybiBzZWxmLl9saXN0Ci0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaSk6Ci0gICAgICAg
ICIiIkdldCBhIHJlY29yZGVkIHdhcm5pbmcgYnkgaW5kZXguIiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLl9saXN0W2ldCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgICIiIkl0ZXJh
dGUgdGhyb3VnaCB0aGUgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0gICAgICAgIHJldHVybiBpdGVy
KHNlbGYuX2xpc3QpCi0KLSAgICBkZWYgX19sZW5fXyhzZWxmKToKLSAgICAgICAgIiIiVGhlIG51
bWJlciBvZiByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9s
aXN0KQotCi0gICAgZGVmIHBvcChzZWxmLCBjbHM9V2FybmluZyk6Ci0gICAgICAgICIiIlBvcCB0
aGUgZmlyc3QgcmVjb3JkZWQgd2FybmluZywgcmFpc2UgZXhjZXB0aW9uIGlmIG5vdCBleGlzdHMu
IiIiCi0gICAgICAgIGZvciBpLCB3IGluIGVudW1lcmF0ZShzZWxmLl9saXN0KToKLSAgICAgICAg
ICAgIGlmIGlzc3ViY2xhc3Mody5jYXRlZ29yeSwgY2xzKToKLSAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5fbGlzdC5wb3AoaSkKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0g
ICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCIlciBub3QgZm91bmQgaW4gd2FybmluZyBsaXN0
IiAlIGNscykKLQotICAgIGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAgIiIiQ2xlYXIgdGhlIGxp
c3Qgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0gICAgICAgIHNlbGYuX2xpc3RbOl0gPSBbXQot
Ci0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fZW50ZXJlZDoKLSAg
ICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICAgICAgcmFpc2UgUnVu
dGltZUVycm9yKCJDYW5ub3QgZW50ZXIgJXIgdHdpY2UiICUgc2VsZikKLSAgICAgICAgc2VsZi5f
bGlzdCA9IHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZW50ZXJfXygpCi0gICAgICAg
IHdhcm5pbmdzLnNpbXBsZWZpbHRlcignYWx3YXlzJykKLSAgICAgICAgcmV0dXJuIHNlbGYKLQot
ICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgotICAgICAgICBpZiBub3Qgc2VsZi5f
ZW50ZXJlZDoKLSAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICAg
ICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgZXhpdCAlciB3aXRob3V0IGVudGVyaW5nIGZp
cnN0IiAlIHNlbGYpCi0gICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZXhp
dF9fKCpleGNfaW5mbykKLQotCi1jbGFzcyBXYXJuaW5nc0NoZWNrZXIoV2FybmluZ3NSZWNvcmRl
cik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkX3dhcm5pbmc9Tm9uZSwgbWF0Y2hf
ZXhwcj1Ob25lKToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2VyLCBzZWxmKS5fX2luaXRf
XygpCi0KLSAgICAgICAgbXNnID0gKCJleGNlcHRpb25zIG11c3QgYmUgb2xkLXN0eWxlIGNsYXNz
ZXMgb3IgIgotICAgICAgICAgICAgICAgImRlcml2ZWQgZnJvbSBXYXJuaW5nLCBub3QgJXMiKQot
ICAgICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkX3dhcm5pbmcsIHR1cGxlKToKLSAgICAgICAg
ICAgIGZvciBleGMgaW4gZXhwZWN0ZWRfd2FybmluZzoKLSAgICAgICAgICAgICAgICBpZiBub3Qg
aW5zcGVjdC5pc2NsYXNzKGV4Yyk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cihtc2cgJSB0eXBlKGV4YykpCi0gICAgICAgIGVsaWYgaW5zcGVjdC5pc2NsYXNzKGV4cGVjdGVk
X3dhcm5pbmcpOgotICAgICAgICAgICAgZXhwZWN0ZWRfd2FybmluZyA9IChleHBlY3RlZF93YXJu
aW5nLCkKLSAgICAgICAgZWxpZiBleHBlY3RlZF93YXJuaW5nIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhwZWN0ZWRfd2FybmluZykpCi0KLSAg
ICAgICAgc2VsZi5leHBlY3RlZF93YXJuaW5nID0gZXhwZWN0ZWRfd2FybmluZwotICAgICAgICBz
ZWxmLm1hdGNoX2V4cHIgPSBtYXRjaF9leHByCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4
Y19pbmZvKToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2VyLCBzZWxmKS5fX2V4aXRfXygq
ZXhjX2luZm8pCi0KLSAgICAgICAgIyBvbmx5IGNoZWNrIGlmIHdlJ3JlIG5vdCBjdXJyZW50bHkg
aGFuZGxpbmcgYW4gZXhjZXB0aW9uCi0gICAgICAgIGlmIGFsbChhIGlzIE5vbmUgZm9yIGEgaW4g
ZXhjX2luZm8pOgotICAgICAgICAgICAgaWYgc2VsZi5leHBlY3RlZF93YXJuaW5nIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIGlmIG5vdCBhbnkoaXNzdWJjbGFzcyhyLmNhdGVnb3J5LCBz
ZWxmLmV4cGVjdGVkX3dhcm5pbmcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgciBp
biBzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0g
ICAgICAgICAgICAgICAgICAgIGZhaWwoIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlw
ZSB7MH0gd2FzIGVtaXR0ZWQuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxpc3Qg
b2YgZW1pdHRlZCB3YXJuaW5ncyBpczogezF9LiIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLmV4cGVjdGVkX3dhcm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtlYWNoLm1lc3NhZ2UgZm9yIGVhY2ggaW4gc2VsZl0pKQotICAgICAgICAgICAgICAg
IGVsaWYgc2VsZi5tYXRjaF9leHByIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBm
b3IgciBpbiBzZWxmOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyhyLmNh
dGVnb3J5LCBzZWxmLmV4cGVjdGVkX3dhcm5pbmcpOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIHJlLmNvbXBpbGUoc2VsZi5tYXRjaF9leHByKS5zZWFyY2goc3RyKHIubWVzc2FnZSkp
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgiRElEIE5PVCBXQVJOLiBO
byB3YXJuaW5ncyBvZiB0eXBlIHswfSBtYXRjaGluZyIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiAoJ3sxfScpIHdhcyBlbWl0dGVkLiBUaGUgbGlzdCBvZiBlbWl0dGVkIHdhcm5pbmdz
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlzOiB7Mn0uIi5mb3JtYXQoc2VsZi5l
eHBlY3RlZF93YXJuaW5nLCBzZWxmLm1hdGNoX2V4cHIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZvciBlYWNoIGluIHNlbGZd
KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9yZXN1bHRsb2cucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDlmOWMyZDFmNjUzNjBmMzhkMGQ2NDEyM2Q2NDY1N2MwNzI2YTI2NjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZXN1
bHRsb2cucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotIiIiIGxvZyBtYWNoaW5l
LXBhcnNlYWJsZSB0ZXN0IHNlc3Npb24gcmVzdWx0IGluZm9ybWF0aW9uIGluIGEgcGxhaW4KLXRl
eHQgZmlsZS4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHkKLWltcG9ydCBvcwotCi0KLWRlZiBw
eXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRl
cm1pbmFsIHJlcG9ydGluZyIsICJyZXN1bHRsb2cgcGx1Z2luIG9wdGlvbnMiKQotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1yZXN1bHRsb2cnLCAnLS1yZXN1bHQtbG9nJywgYWN0aW9uPSJzdG9yZSIs
Ci0gICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9InBhdGgiLCBkZWZhdWx0PU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgIGhlbHA9IkRFUFJFQ0FURUQgcGF0aCBmb3IgbWFjaGluZS1yZWFkYWJs
ZSByZXN1bHQgbG9nLiIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBy
ZXN1bHRsb2cgPSBjb25maWcub3B0aW9uLnJlc3VsdGxvZwotICAgICMgcHJldmVudCBvcGVuaW5n
IHJlc3VsdGxvZyBvbiBzbGF2ZSBub2RlcyAoeGRpc3QpCi0gICAgaWYgcmVzdWx0bG9nIGFuZCBu
b3QgaGFzYXR0cihjb25maWcsICdzbGF2ZWlucHV0Jyk6Ci0gICAgICAgIGRpcm5hbWUgPSBvcy5w
YXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHJlc3VsdGxvZykpCi0gICAgICAgIGlmIG5vdCBv
cy5wYXRoLmlzZGlyKGRpcm5hbWUpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkK
LSAgICAgICAgbG9nZmlsZSA9IG9wZW4ocmVzdWx0bG9nLCAndycsIDEpICAjIGxpbmUgYnVmZmVy
ZWQKLSAgICAgICAgY29uZmlnLl9yZXN1bHRsb2cgPSBSZXN1bHRMb2coY29uZmlnLCBsb2dmaWxl
KQotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihjb25maWcuX3Jlc3VsdGxv
ZykKLQotICAgICAgICBmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUkVTVUxUX0xPRwot
ICAgICAgICBjb25maWcud2FybignQzEnLCBSRVNVTFRfTE9HKQotCi0KLWRlZiBweXRlc3RfdW5j
b25maWd1cmUoY29uZmlnKToKLSAgICByZXN1bHRsb2cgPSBnZXRhdHRyKGNvbmZpZywgJ19yZXN1
bHRsb2cnLCBOb25lKQotICAgIGlmIHJlc3VsdGxvZzoKLSAgICAgICAgcmVzdWx0bG9nLmxvZ2Zp
bGUuY2xvc2UoKQotICAgICAgICBkZWwgY29uZmlnLl9yZXN1bHRsb2cKLSAgICAgICAgY29uZmln
LnBsdWdpbm1hbmFnZXIudW5yZWdpc3RlcihyZXN1bHRsb2cpCi0KLQotZGVmIGdlbmVyaWNfcGF0
aChpdGVtKToKLSAgICBjaGFpbiA9IGl0ZW0ubGlzdGNoYWluKCkKLSAgICBncGF0aCA9IFtjaGFp
blswXS5uYW1lXQotICAgIGZzcGF0aCA9IGNoYWluWzBdLmZzcGF0aAotICAgIGZzcGFydCA9IEZh
bHNlCi0gICAgZm9yIG5vZGUgaW4gY2hhaW5bMTpdOgotICAgICAgICBuZXdmc3BhdGggPSBub2Rl
LmZzcGF0aAotICAgICAgICBpZiBuZXdmc3BhdGggPT0gZnNwYXRoOgotICAgICAgICAgICAgaWYg
ZnNwYXJ0OgotICAgICAgICAgICAgICAgIGdwYXRoLmFwcGVuZCgnOicpCi0gICAgICAgICAgICAg
ICAgZnNwYXJ0ID0gRmFsc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZ3Bh
dGguYXBwZW5kKCcuJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGdwYXRoLmFwcGVuZCgn
LycpCi0gICAgICAgICAgICBmc3BhcnQgPSBUcnVlCi0gICAgICAgIG5hbWUgPSBub2RlLm5hbWUK
LSAgICAgICAgaWYgbmFtZVswXSBpbiAnKFsnOgotICAgICAgICAgICAgZ3BhdGgucG9wKCkKLSAg
ICAgICAgZ3BhdGguYXBwZW5kKG5hbWUpCi0gICAgICAgIGZzcGF0aCA9IG5ld2ZzcGF0aAotICAg
IHJldHVybiAnJy5qb2luKGdwYXRoKQotCi0KLWNsYXNzIFJlc3VsdExvZyhvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIGxvZ2ZpbGUpOgotICAgICAgICBzZWxmLmNvbmZp
ZyA9IGNvbmZpZwotICAgICAgICBzZWxmLmxvZ2ZpbGUgPSBsb2dmaWxlICAjIHByZWZlcmFibHkg
bGluZSBidWZmZXJlZAotCi0gICAgZGVmIHdyaXRlX2xvZ19lbnRyeShzZWxmLCB0ZXN0cGF0aCwg
bGV0dGVyY29kZSwgbG9uZ3JlcHIpOgotICAgICAgICBwcmludCgiJXMgJXMiICUgKGxldHRlcmNv
ZGUsIHRlc3RwYXRoKSwgZmlsZT1zZWxmLmxvZ2ZpbGUpCi0gICAgICAgIGZvciBsaW5lIGluIGxv
bmdyZXByLnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgIHByaW50KCIgJXMiICUgbGluZSwgZmls
ZT1zZWxmLmxvZ2ZpbGUpCi0KLSAgICBkZWYgbG9nX291dGNvbWUoc2VsZiwgcmVwb3J0LCBsZXR0
ZXJjb2RlLCBsb25ncmVwcik6Ci0gICAgICAgIHRlc3RwYXRoID0gZ2V0YXR0cihyZXBvcnQsICdu
b2RlaWQnLCBOb25lKQotICAgICAgICBpZiB0ZXN0cGF0aCBpcyBOb25lOgotICAgICAgICAgICAg
dGVzdHBhdGggPSByZXBvcnQuZnNwYXRoCi0gICAgICAgIHNlbGYud3JpdGVfbG9nX2VudHJ5KHRl
c3RwYXRoLCBsZXR0ZXJjb2RlLCBsb25ncmVwcikKLQotICAgIGRlZiBweXRlc3RfcnVudGVzdF9s
b2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgcmVwb3J0LndoZW4gIT0gImNhbGwi
IGFuZCByZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJlcyA9IHNl
bGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydD1yZXBvcnQpCi0g
ICAgICAgIGNvZGUgPSByZXNbMV0KLSAgICAgICAgaWYgY29kZSA9PSAneCc6Ci0gICAgICAgICAg
ICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCi0gICAgICAgIGVsaWYgY29kZSA9PSAn
WCc6Ci0gICAgICAgICAgICBsb25ncmVwciA9ICcnCi0gICAgICAgIGVsaWYgcmVwb3J0LnBhc3Nl
ZDoKLSAgICAgICAgICAgIGxvbmdyZXByID0gIiIKLSAgICAgICAgZWxpZiByZXBvcnQuZmFpbGVk
OgotICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0LmxvbmdyZXByKQotICAgICAgICBl
bGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0Lmxv
bmdyZXByWzJdKQotICAgICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9ydCwgY29kZSwgbG9uZ3Jl
cHIpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAg
ICAgaWYgbm90IHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgot
ICAgICAgICAgICAgICAgIGNvZGUgPSAiRiIKLSAgICAgICAgICAgICAgICBsb25ncmVwciA9IHN0
cihyZXBvcnQubG9uZ3JlcHIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGFz
c2VydCByZXBvcnQuc2tpcHBlZAotICAgICAgICAgICAgICAgIGNvZGUgPSAiUyIKLSAgICAgICAg
ICAgICAgICBsb25ncmVwciA9ICIlczolZDogJXMiICUgcmVwb3J0LmxvbmdyZXByCi0gICAgICAg
ICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9ydCwgY29kZSwgbG9uZ3JlcHIpCi0KLSAgICBkZWYg
cHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6Ci0gICAgICAgIHJlcHJjcmFzaCA9
IGdldGF0dHIoZXhjcmVwciwgJ3JlcHJjcmFzaCcsIE5vbmUpCi0gICAgICAgIHBhdGggPSBnZXRh
dHRyKHJlcHJjcmFzaCwgInBhdGgiLCBOb25lKQotICAgICAgICBpZiBwYXRoIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBwYXRoID0gImN3ZDolcyIgJSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2Vs
Zi53cml0ZV9sb2dfZW50cnkocGF0aCwgJyEnLCBzdHIoZXhjcmVwcikpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVy
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDdlZDJhMjQ4YjMyMjM5ZTA1NzM2
MjM0MDcxOGI0NTIxN2Q3Y2YwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNTA2ICswLDAgQEAKLSIiIiBiYXNpYyBjb2xsZWN0IGFuZCBydW50ZXN0IHByb3RvY29sIGlt
cGxlbWVudGF0aW9ucyAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGJkYgotaW1wb3J0IG9zCi1pbXBv
cnQgc3lzCi1mcm9tIHRpbWUgaW1wb3J0IHRpbWUKLQotaW1wb3J0IHB5Ci1mcm9tIF9weXRlc3Qu
X2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByLCBFeGNlcHRpb25JbmZvCi1mcm9tIF9weXRl
c3Qub3V0Y29tZXMgaW1wb3J0IHNraXAsIFNraXBwZWQsIFRFU1RfT1VUQ09NRQotCi0jCi0jIHB5
dGVzdCBwbHVnaW4gaG9va3MKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAg
IGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciLCAicmVwb3J0aW5n
IiwgYWZ0ZXI9ImdlbmVyYWwiKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1kdXJhdGlvbnMnLAot
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9Tm9u
ZSwgbWV0YXZhcj0iTiIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9InNob3cgTiBzbG93ZXN0
IHNldHVwL3Rlc3QgZHVyYXRpb25zIChOPTAgZm9yIGFsbCkuIiksCi0KLQotZGVmIHB5dGVzdF90
ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgotICAgIGR1cmF0aW9ucyA9IHRlcm1p
bmFscmVwb3J0ZXIuY29uZmlnLm9wdGlvbi5kdXJhdGlvbnMKLSAgICBpZiBkdXJhdGlvbnMgaXMg
Tm9uZToKLSAgICAgICAgcmV0dXJuCi0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgZGxp
c3QgPSBbXQotICAgIGZvciByZXBsaXN0IGluIHRyLnN0YXRzLnZhbHVlcygpOgotICAgICAgICBm
b3IgcmVwIGluIHJlcGxpc3Q6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKHJlcCwgJ2R1cmF0aW9u
Jyk6Ci0gICAgICAgICAgICAgICAgZGxpc3QuYXBwZW5kKHJlcCkKLSAgICBpZiBub3QgZGxpc3Q6
Ci0gICAgICAgIHJldHVybgotICAgIGRsaXN0LnNvcnQoa2V5PWxhbWJkYSB4OiB4LmR1cmF0aW9u
KQotICAgIGRsaXN0LnJldmVyc2UoKQotICAgIGlmIG5vdCBkdXJhdGlvbnM6Ci0gICAgICAgIHRy
LndyaXRlX3NlcCgiPSIsICJzbG93ZXN0IHRlc3QgZHVyYXRpb25zIikKLSAgICBlbHNlOgotICAg
ICAgICB0ci53cml0ZV9zZXAoIj0iLCAic2xvd2VzdCAlcyB0ZXN0IGR1cmF0aW9ucyIgJSBkdXJh
dGlvbnMpCi0gICAgICAgIGRsaXN0ID0gZGxpc3RbOmR1cmF0aW9uc10KLQotICAgIGZvciByZXAg
aW4gZGxpc3Q6Ci0gICAgICAgIG5vZGVpZCA9IHJlcC5ub2RlaWQucmVwbGFjZSgiOjooKTo6Iiwg
Ijo6IikKLSAgICAgICAgdHIud3JpdGVfbGluZSgiJTAyLjJmcyAlLThzICVzIiAlCi0gICAgICAg
ICAgICAgICAgICAgICAgKHJlcC5kdXJhdGlvbiwgcmVwLndoZW4sIG5vZGVpZCkpCi0KLQotZGVm
IHB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbik6Ci0gICAgc2Vzc2lvbi5fc2V0dXBzdGF0ZSA9
IFNldHVwU3RhdGUoKQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNzaW9uKToKLSAg
ICBzZXNzaW9uLl9zZXR1cHN0YXRlLnRlYXJkb3duX2FsbCgpCi0KLQotZGVmIHB5dGVzdF9ydW50
ZXN0X3Byb3RvY29sKGl0ZW0sIG5leHRpdGVtKToKLSAgICBpdGVtLmlob29rLnB5dGVzdF9ydW50
ZXN0X2xvZ3N0YXJ0KAotICAgICAgICBub2RlaWQ9aXRlbS5ub2RlaWQsIGxvY2F0aW9uPWl0ZW0u
bG9jYXRpb24sCi0gICAgKQotICAgIHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBuZXh0aXRlbT1uZXh0
aXRlbSkKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBydW50ZXN0cHJvdG9jb2woaXRlbSwgbG9n
PVRydWUsIG5leHRpdGVtPU5vbmUpOgotICAgIGhhc3JlcXVlc3QgPSBoYXNhdHRyKGl0ZW0sICJf
cmVxdWVzdCIpCi0gICAgaWYgaGFzcmVxdWVzdCBhbmQgbm90IGl0ZW0uX3JlcXVlc3Q6Ci0gICAg
ICAgIGl0ZW0uX2luaXRyZXF1ZXN0KCkKLSAgICByZXAgPSBjYWxsX2FuZF9yZXBvcnQoaXRlbSwg
InNldHVwIiwgbG9nKQotICAgIHJlcG9ydHMgPSBbcmVwXQotICAgIGlmIHJlcC5wYXNzZWQ6Ci0g
ICAgICAgIGlmIGl0ZW0uY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6Ci0gICAgICAgICAgICBzaG93
X3Rlc3RfaXRlbShpdGVtKQotICAgICAgICBpZiBub3QgaXRlbS5jb25maWcub3B0aW9uLnNldHVw
b25seToKLSAgICAgICAgICAgIHJlcG9ydHMuYXBwZW5kKGNhbGxfYW5kX3JlcG9ydChpdGVtLCAi
Y2FsbCIsIGxvZykpCi0gICAgcmVwb3J0cy5hcHBlbmQoY2FsbF9hbmRfcmVwb3J0KGl0ZW0sICJ0
ZWFyZG93biIsIGxvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dGl0
ZW09bmV4dGl0ZW0pKQotICAgICMgYWZ0ZXIgYWxsIHRlYXJkb3duIGhvb2tzIGhhdmUgYmVlbiBj
YWxsZWQKLSAgICAjIHdhbnQgZnVuY2FyZ3MgYW5kIHJlcXVlc3QgaW5mbyB0byBnbyBhd2F5Ci0g
ICAgaWYgaGFzcmVxdWVzdDoKLSAgICAgICAgaXRlbS5fcmVxdWVzdCA9IEZhbHNlCi0gICAgICAg
IGl0ZW0uZnVuY2FyZ3MgPSBOb25lCi0gICAgcmV0dXJuIHJlcG9ydHMKLQotCi1kZWYgc2hvd190
ZXN0X2l0ZW0oaXRlbSk6Ci0gICAgIiIiU2hvdyB0ZXN0IGZ1bmN0aW9uLCBwYXJhbWV0ZXJzIGFu
ZCB0aGUgZml4dHVyZXMgb2YgdGhlIHRlc3QgaXRlbS4iIiIKLSAgICB0dyA9IGl0ZW0uY29uZmln
LmdldF90ZXJtaW5hbF93cml0ZXIoKQotICAgIHR3LmxpbmUoKQotICAgIHR3LndyaXRlKCcgJyAq
IDgpCi0gICAgdHcud3JpdGUoaXRlbS5fbm9kZWlkKQotICAgIHVzZWRfZml4dHVyZXMgPSBzb3J0
ZWQoaXRlbS5fZml4dHVyZWluZm8ubmFtZTJmaXh0dXJlZGVmcy5rZXlzKCkpCi0gICAgaWYgdXNl
ZF9maXh0dXJlczoKLSAgICAgICAgdHcud3JpdGUoJyAoZml4dHVyZXMgdXNlZDogezB9KScuZm9y
bWF0KCcsICcuam9pbih1c2VkX2ZpeHR1cmVzKSkpCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3Nl
dHVwKGl0ZW0pOgotICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCAnc2V0dXAnKQot
ICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5wcmVwYXJlKGl0ZW0pCi0KLQotZGVmIHB5dGVz
dF9ydW50ZXN0X2NhbGwoaXRlbSk6Ci0gICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0s
ICdjYWxsJykKLSAgICB0cnk6Ci0gICAgICAgIGl0ZW0ucnVudGVzdCgpCi0gICAgZXhjZXB0IEV4
Y2VwdGlvbjoKLSAgICAgICAgIyBTdG9yZSB0cmFjZSBpbmZvIHRvIGFsbG93IHBvc3Rtb3J0ZW0g
ZGVidWdnaW5nCi0gICAgICAgIHR5cGUsIHZhbHVlLCB0YiA9IHN5cy5leGNfaW5mbygpCi0gICAg
ICAgIHRiID0gdGIudGJfbmV4dCAgIyBTa2lwICp0aGlzKiBmcmFtZQotICAgICAgICBzeXMubGFz
dF90eXBlID0gdHlwZQotICAgICAgICBzeXMubGFzdF92YWx1ZSA9IHZhbHVlCi0gICAgICAgIHN5
cy5sYXN0X3RyYWNlYmFjayA9IHRiCi0gICAgICAgIGRlbCB0YiAgIyBHZXQgcmlkIG9mIGl0IGlu
IHRoaXMgbmFtZXNwYWNlCi0gICAgICAgIHJhaXNlCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3Rl
YXJkb3duKGl0ZW0sIG5leHRpdGVtKToKLSAgICBfdXBkYXRlX2N1cnJlbnRfdGVzdF92YXIoaXRl
bSwgJ3RlYXJkb3duJykKLSAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUudGVhcmRvd25fZXhh
Y3QoaXRlbSwgbmV4dGl0ZW0pCi0gICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sIE5v
bmUpCi0KLQotZGVmIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVtLCB3aGVuKToKLSAgICAi
IiIKLSAgICBVcGRhdGUgUFlURVNUX0NVUlJFTlRfVEVTVCB0byByZWZsZWN0IHRoZSBjdXJyZW50
IGl0ZW0gYW5kIHN0YWdlLgotCi0gICAgSWYgYGB3aGVuYGAgaXMgTm9uZSwgZGVsZXRlIFBZVEVT
VF9DVVJSRU5UX1RFU1QgZnJvbSB0aGUgZW52aXJvbm1lbnQuCi0gICAgIiIiCi0gICAgdmFyX25h
bWUgPSAnUFlURVNUX0NVUlJFTlRfVEVTVCcKLSAgICBpZiB3aGVuOgotICAgICAgICB2YWx1ZSA9
ICd7MH0gKHsxfSknLmZvcm1hdChpdGVtLm5vZGVpZCwgd2hlbikKLSAgICAgICAgIyBkb24ndCBh
bGxvdyBudWxsIGJ5dGVzIG9uIGVudmlyb25tZW50IHZhcmlhYmxlcyAoc2VlICMyNjQ0LCAjMjk1
NykKLSAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCdceDAwJywgJyhudWxsKScpCi0gICAg
ICAgIG9zLmVudmlyb25bdmFyX25hbWVdID0gdmFsdWUKLSAgICBlbHNlOgotICAgICAgICBvcy5l
bnZpcm9uLnBvcCh2YXJfbmFtZSkKLQotCi1kZWYgcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJl
cG9ydCk6Ci0gICAgaWYgcmVwb3J0LndoZW4gaW4gKCJzZXR1cCIsICJ0ZWFyZG93biIpOgotICAg
ICAgICBpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgIyAgICAgIGNhdGVnb3J5LCBzaG9y
dGxldHRlciwgdmVyYm9zZS13b3JkCi0gICAgICAgICAgICByZXR1cm4gImVycm9yIiwgIkUiLCAi
RVJST1IiCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAgICAgICAgICByZXR1cm4g
InNraXBwZWQiLCAicyIsICJTS0lQUEVEIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0
dXJuICIiLCAiIiwgIiIKLQotCi0jCi0jIEltcGxlbWVudGF0aW9uCi0KLWRlZiBjYWxsX2FuZF9y
ZXBvcnQoaXRlbSwgd2hlbiwgbG9nPVRydWUsICoqa3dkcyk6Ci0gICAgY2FsbCA9IGNhbGxfcnVu
dGVzdF9ob29rKGl0ZW0sIHdoZW4sICoqa3dkcykKLSAgICBob29rID0gaXRlbS5paG9vawotICAg
IHJlcG9ydCA9IGhvb2sucHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtPWl0ZW0sIGNhbGw9
Y2FsbCkKLSAgICBpZiBsb2c6Ci0gICAgICAgIGhvb2sucHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0
KHJlcG9ydD1yZXBvcnQpCi0gICAgaWYgY2hlY2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNhbGws
IHJlcG9ydCk6Ci0gICAgICAgIGhvb2sucHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdChub2RlPWl0
ZW0sIGNhbGw9Y2FsbCwgcmVwb3J0PXJlcG9ydCkKLSAgICByZXR1cm4gcmVwb3J0Ci0KLQotZGVm
IGNoZWNrX2ludGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxsLCByZXBvcnQpOgotICAgIHJldHVybiBj
YWxsLmV4Y2luZm8gYW5kIG5vdCAoCi0gICAgICAgIGhhc2F0dHIocmVwb3J0LCAid2FzeGZhaWwi
KSBvcgotICAgICAgICBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShza2lwLkV4Y2VwdGlvbikg
b3IKLSAgICAgICAgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2UoYmRiLkJkYlF1aXQpKQotCi0K
LWRlZiBjYWxsX3J1bnRlc3RfaG9vayhpdGVtLCB3aGVuLCAqKmt3ZHMpOgotICAgIGhvb2tuYW1l
ID0gInB5dGVzdF9ydW50ZXN0XyIgKyB3aGVuCi0gICAgaWhvb2sgPSBnZXRhdHRyKGl0ZW0uaWhv
b2ssIGhvb2tuYW1lKQotICAgIHJldHVybiBDYWxsSW5mbyhsYW1iZGE6IGlob29rKGl0ZW09aXRl
bSwgKiprd2RzKSwgd2hlbj13aGVuKQotCi0KLWNsYXNzIENhbGxJbmZvOgotICAgICIiIiBSZXN1
bHQvRXhjZXB0aW9uIGluZm8gYSBmdW5jdGlvbiBpbnZvY2F0aW9uLiAiIiIKLSAgICAjOiBOb25l
IG9yIEV4Y2VwdGlvbkluZm8gb2JqZWN0LgotICAgIGV4Y2luZm8gPSBOb25lCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgZnVuYywgd2hlbik6Ci0gICAgICAgICM6IGNvbnRleHQgb2YgaW52b2Nh
dGlvbjogb25lIG9mICJzZXR1cCIsICJjYWxsIiwKLSAgICAgICAgIzogInRlYXJkb3duIiwgIm1l
bW9jb2xsZWN0IgotICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0gICAgICAgIHNlbGYuc3RhcnQg
PSB0aW1lKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBmdW5jKCkK
LSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgc2VsZi5zdG9w
ID0gdGltZSgpCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQ6ICAjIG5vcWEKLSAg
ICAgICAgICAgIHNlbGYuZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQotICAgICAgICBzZWxmLnN0
b3AgPSB0aW1lKCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5l
eGNpbmZvOgotICAgICAgICAgICAgc3RhdHVzID0gImV4Y2VwdGlvbjogJXMiICUgc3RyKHNlbGYu
ZXhjaW5mby52YWx1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN0YXR1cyA9ICJyZXN1
bHQ6ICVyIiAlIChzZWxmLnJlc3VsdCwpCi0gICAgICAgIHJldHVybiAiPENhbGxJbmZvIHdoZW49
JXIgJXM+IiAlIChzZWxmLndoZW4sIHN0YXR1cykKLQotCi1kZWYgZ2V0c2xhdmVpbmZvbGluZShu
b2RlKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBub2RlLl9zbGF2ZWluZm9jYWNoZQotICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgZCA9IG5vZGUuc2xhdmVpbmZvCi0gICAg
ICAgIHZlciA9ICIlcy4lcy4lcyIgJSBkWyd2ZXJzaW9uX2luZm8nXVs6M10KLSAgICAgICAgbm9k
ZS5fc2xhdmVpbmZvY2FjaGUgPSBzID0gIlslc10gJXMgLS0gUHl0aG9uICVzICVzIiAlICgKLSAg
ICAgICAgICAgIGRbJ2lkJ10sIGRbJ3N5c3BsYXRmb3JtJ10sIHZlciwgZFsnZXhlY3V0YWJsZSdd
KQotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIEJhc2VSZXBvcnQob2JqZWN0KToKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUo
a3cpCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgotICAgICAgICBpZiBoYXNhdHRy
KHNlbGYsICdub2RlJyk6Ci0gICAgICAgICAgICBvdXQubGluZShnZXRzbGF2ZWluZm9saW5lKHNl
bGYubm9kZSkpCi0KLSAgICAgICAgbG9uZ3JlcHIgPSBzZWxmLmxvbmdyZXByCi0gICAgICAgIGlm
IGxvbmdyZXByIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBoYXNh
dHRyKGxvbmdyZXByLCAndG90ZXJtaW5hbCcpOgotICAgICAgICAgICAgbG9uZ3JlcHIudG90ZXJt
aW5hbChvdXQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgb3V0LmxpbmUobG9uZ3JlcHIpCi0gICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVy
cm9yOgotICAgICAgICAgICAgICAgIG91dC5saW5lKCI8dW5wcmludGFibGUgbG9uZ3JlcHI+IikK
LQotICAgIGRlZiBnZXRfc2VjdGlvbnMoc2VsZiwgcHJlZml4KToKLSAgICAgICAgZm9yIG5hbWUs
IGNvbnRlbnQgaW4gc2VsZi5zZWN0aW9uczoKLSAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0
aChwcmVmaXgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHByZWZpeCwgY29udGVudAotCi0gICAg
QHByb3BlcnR5Ci0gICAgZGVmIGxvbmdyZXBydGV4dChzZWxmKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIFJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc3RyaW5nIHJlcHJl
c2VudGF0aW9uCi0gICAgICAgIG9mIGBgbG9uZ3JlcHJgYC4KLQotICAgICAgICAuLiB2ZXJzaW9u
YWRkZWQ6OiAzLjAKLSAgICAgICAgIiIiCi0gICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0
ZXIoc3RyaW5naW89VHJ1ZSkKLSAgICAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKLSAgICAgICAg
c2VsZi50b3Rlcm1pbmFsKHR3KQotICAgICAgICBleGMgPSB0dy5zdHJpbmdpby5nZXR2YWx1ZSgp
Ci0gICAgICAgIHJldHVybiBleGMuc3RyaXAoKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGNh
cHN0ZG91dChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVkIHRleHQgZnJvbSBzdGRv
dXQsIGlmIGNhcHR1cmluZyBpcyBlbmFibGVkCi0KLSAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjog
My4wCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gJycuam9pbihjb250ZW50IGZvciAocHJl
Zml4LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygnQ2FwdHVyZWQgc3Rkb3V0JykpCi0K
LSAgICBAcHJvcGVydHkKLSAgICBkZWYgY2Fwc3RkZXJyKHNlbGYpOgotICAgICAgICAiIiJSZXR1
cm4gY2FwdHVyZWQgdGV4dCBmcm9tIHN0ZGVyciwgaWYgY2FwdHVyaW5nIGlzIGVuYWJsZWQKLQot
ICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVy
biAnJy5qb2luKGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGluIHNlbGYuZ2V0X3NlY3Rp
b25zKCdDYXB0dXJlZCBzdGRlcnInKSkKLQotICAgIHBhc3NlZCA9IHByb3BlcnR5KGxhbWJkYSB4
OiB4Lm91dGNvbWUgPT0gInBhc3NlZCIpCi0gICAgZmFpbGVkID0gcHJvcGVydHkobGFtYmRhIHg6
IHgub3V0Y29tZSA9PSAiZmFpbGVkIikKLSAgICBza2lwcGVkID0gcHJvcGVydHkobGFtYmRhIHg6
IHgub3V0Y29tZSA9PSAic2tpcHBlZCIpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnNwYXRo
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQuc3BsaXQoIjo6IilbMF0KLQotCi1k
ZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICB3aGVuID0gY2Fs
bC53aGVuCi0gICAgZHVyYXRpb24gPSBjYWxsLnN0b3AgLSBjYWxsLnN0YXJ0Ci0gICAga2V5d29y
ZHMgPSBkaWN0KFsoeCwgMSkgZm9yIHggaW4gaXRlbS5rZXl3b3Jkc10pCi0gICAgZXhjaW5mbyA9
IGNhbGwuZXhjaW5mbwotICAgIHNlY3Rpb25zID0gW10KLSAgICBpZiBub3QgY2FsbC5leGNpbmZv
OgotICAgICAgICBvdXRjb21lID0gInBhc3NlZCIKLSAgICAgICAgbG9uZ3JlcHIgPSBOb25lCi0g
ICAgZWxzZToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhjaW5mbywgRXhjZXB0aW9uSW5m
byk6Ci0gICAgICAgICAgICBvdXRjb21lID0gImZhaWxlZCIKLSAgICAgICAgICAgIGxvbmdyZXBy
ID0gZXhjaW5mbwotICAgICAgICBlbGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShza2lwLkV4Y2Vw
dGlvbik6Ci0gICAgICAgICAgICBvdXRjb21lID0gInNraXBwZWQiCi0gICAgICAgICAgICByID0g
ZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKLSAgICAgICAgICAgIGxvbmdyZXByID0gKHN0cihyLnBh
dGgpLCByLmxpbmVubywgci5tZXNzYWdlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3V0
Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICBpZiBjYWxsLndoZW4gPT0gImNhbGwiOgotICAg
ICAgICAgICAgICAgIGxvbmdyZXByID0gaXRlbS5yZXByX2ZhaWx1cmUoZXhjaW5mbykKLSAgICAg
ICAgICAgIGVsc2U6ICAjIGV4Y2VwdGlvbiBpbiBzZXR1cCBvciB0ZWFyZG93bgotICAgICAgICAg
ICAgICAgIGxvbmdyZXByID0gaXRlbS5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9aXRlbS5jb25m
aWcub3B0aW9uLnRic3R5bGUpCi0gICAgZm9yIHJ3aGVuLCBrZXksIGNvbnRlbnQgaW4gaXRlbS5f
cmVwb3J0X3NlY3Rpb25zOgotICAgICAgICBzZWN0aW9ucy5hcHBlbmQoKCJDYXB0dXJlZCAlcyAl
cyIgJSAoa2V5LCByd2hlbiksIGNvbnRlbnQpKQotICAgIHJldHVybiBUZXN0UmVwb3J0KGl0ZW0u
bm9kZWlkLCBpdGVtLmxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLCBv
dXRjb21lLCBsb25ncmVwciwgd2hlbiwKLSAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9ucywg
ZHVyYXRpb24pCi0KLQotY2xhc3MgVGVzdFJlcG9ydChCYXNlUmVwb3J0KToKLSAgICAiIiIgQmFz
aWMgdGVzdCByZXBvcnQgb2JqZWN0IChhbHNvIHVzZWQgZm9yIHNldHVwIGFuZCB0ZWFyZG93biBj
YWxscyBpZgotICAgIHRoZXkgZmFpbCkuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Ziwgbm9kZWlkLCBsb2NhdGlvbiwga2V5d29yZHMsIG91dGNvbWUsCi0gICAgICAgICAgICAgICAg
IGxvbmdyZXByLCB3aGVuLCBzZWN0aW9ucz0oKSwgZHVyYXRpb249MCwgKipleHRyYSk6Ci0gICAg
ICAgICM6IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBub2RlIGlkCi0gICAgICAgIHNlbGYubm9kZWlk
ID0gbm9kZWlkCi0KLSAgICAgICAgIzogYSAoZmlsZXN5c3RlbXBhdGgsIGxpbmVubywgZG9tYWlu
aW5mbykgdHVwbGUgaW5kaWNhdGluZyB0aGUKLSAgICAgICAgIzogYWN0dWFsIGxvY2F0aW9uIG9m
IGEgdGVzdCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20gdGhlCi0gICAgICAgICM6
IGNvbGxlY3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhvZCBpcyBpbmhlcml0ZWQgZnJvbSBhIGRpZmZl
cmVudCBtb2R1bGUuCi0gICAgICAgIHNlbGYubG9jYXRpb24gPSBsb2NhdGlvbgotCi0gICAgICAg
ICM6IGEgbmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYWxsIGtleXdvcmRzIGFu
ZAotICAgICAgICAjOiBtYXJrZXJzIGFzc29jaWF0ZWQgd2l0aCBhIHRlc3QgaW52b2NhdGlvbi4K
LSAgICAgICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCi0KLSAgICAgICAgIzogdGVzdCBvdXRj
b21lLCBhbHdheXMgb25lIG9mICJwYXNzZWQiLCAiZmFpbGVkIiwgInNraXBwZWQiLgotICAgICAg
ICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCi0KLSAgICAgICAgIzogTm9uZSBvciBhIGZhaWx1cmUg
cmVwcmVzZW50YXRpb24uCi0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgotCi0gICAg
ICAgICM6IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcsICd0ZWFyZG93bicgdG8gaW5kaWNhdGUgcnVu
dGVzdCBwaGFzZS4KLSAgICAgICAgc2VsZi53aGVuID0gd2hlbgotCi0gICAgICAgICM6IGxpc3Qg
b2YgcGFpcnMgYGAoc3RyLCBzdHIpYGAgb2YgZXh0cmEgaW5mb3JtYXRpb24gd2hpY2ggbmVlZHMg
dG8KLSAgICAgICAgIzogbWFyc2hhbGxhYmxlLiBVc2VkIGJ5IHB5dGVzdCB0byBhZGQgY2FwdHVy
ZWQgdGV4dAotICAgICAgICAjOiBmcm9tIGBgc3Rkb3V0YGAgYW5kIGBgc3RkZXJyYGAsIGJ1dCBt
YXkgYmUgdXNlZCBieSBvdGhlciBwbHVnaW5zCi0gICAgICAgICM6IHRvIGFkZCBhcmJpdHJhcnkg
aW5mb3JtYXRpb24gdG8gcmVwb3J0cy4KLSAgICAgICAgc2VsZi5zZWN0aW9ucyA9IGxpc3Qoc2Vj
dGlvbnMpCi0KLSAgICAgICAgIzogdGltZSBpdCB0b29rIHRvIHJ1biBqdXN0IHRoZSB0ZXN0Ci0g
ICAgICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotCi0gICAgICAgIHNlbGYuX19kaWN0X18u
dXBkYXRlKGV4dHJhKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4g
IjxUZXN0UmVwb3J0ICVyIHdoZW49JXIgb3V0Y29tZT0lcj4iICUgKAotICAgICAgICAgICAgc2Vs
Zi5ub2RlaWQsIHNlbGYud2hlbiwgc2VsZi5vdXRjb21lKQotCi0KLWNsYXNzIFRlYXJkb3duRXJy
b3JSZXBvcnQoQmFzZVJlcG9ydCk6Ci0gICAgb3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgd2hlbiA9
ICJ0ZWFyZG93biIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb25ncmVwciwgKipleHRyYSk6
Ci0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgotICAgICAgICBzZWxmLnNlY3Rpb25z
ID0gW10KLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEpCi0KLQotZGVmIHB5dGVz
dF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgY2FsbCA9IENhbGxJbmZvKAot
ICAgICAgICBsYW1iZGE6IGxpc3QoY29sbGVjdG9yLmNvbGxlY3QoKSksCi0gICAgICAgICdjb2xs
ZWN0JykKLSAgICBsb25ncmVwciA9IE5vbmUKLSAgICBpZiBub3QgY2FsbC5leGNpbmZvOgotICAg
ICAgICBvdXRjb21lID0gInBhc3NlZCIKLSAgICBlbHNlOgotICAgICAgICBmcm9tIF9weXRlc3Qg
aW1wb3J0IG5vc2UKLSAgICAgICAgc2tpcF9leGNlcHRpb25zID0gKFNraXBwZWQsKSArIG5vc2Uu
Z2V0X3NraXBfZXhjZXB0aW9ucygpCi0gICAgICAgIGlmIGNhbGwuZXhjaW5mby5lcnJpc2luc3Rh
bmNlKHNraXBfZXhjZXB0aW9ucyk6Ci0gICAgICAgICAgICBvdXRjb21lID0gInNraXBwZWQiCi0g
ICAgICAgICAgICByID0gY29sbGVjdG9yLl9yZXByX2ZhaWx1cmVfcHkoY2FsbC5leGNpbmZvLCAi
bGluZSIpLnJlcHJjcmFzaAotICAgICAgICAgICAgbG9uZ3JlcHIgPSAoc3RyKHIucGF0aCksIHIu
bGluZW5vLCByLm1lc3NhZ2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvdXRjb21lID0g
ImZhaWxlZCIKLSAgICAgICAgICAgIGVycm9yaW5mbyA9IGNvbGxlY3Rvci5yZXByX2ZhaWx1cmUo
Y2FsbC5leGNpbmZvKQotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoZXJyb3JpbmZvLCAidG90
ZXJtaW5hbCIpOgotICAgICAgICAgICAgICAgIGVycm9yaW5mbyA9IENvbGxlY3RFcnJvclJlcHIo
ZXJyb3JpbmZvKQotICAgICAgICAgICAgbG9uZ3JlcHIgPSBlcnJvcmluZm8KLSAgICByZXAgPSBD
b2xsZWN0UmVwb3J0KGNvbGxlY3Rvci5ub2RlaWQsIG91dGNvbWUsIGxvbmdyZXByLAotICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0YXR0cihjYWxsLCAncmVzdWx0JywgTm9uZSkpCi0gICAgcmVw
LmNhbGwgPSBjYWxsICAjIHNlZSBjb2xsZWN0X29uZV9ub2RlCi0gICAgcmV0dXJuIHJlcAotCi0K
LWNsYXNzIENvbGxlY3RSZXBvcnQoQmFzZVJlcG9ydCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5vZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgc2Vj
dGlvbnM9KCksICoqZXh0cmEpOgotICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAotICAgICAg
ICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCi0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVw
cgotICAgICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdCBvciBbXQotICAgICAgICBzZWxmLnNlY3Rp
b25zID0gbGlzdChzZWN0aW9ucykKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEp
Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbG9jYXRpb24oc2VsZik6Ci0gICAgICAgIHJldHVy
biAoc2VsZi5mc3BhdGgsIE5vbmUsIHNlbGYuZnNwYXRoKQotCi0gICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgotICAgICAgICByZXR1cm4gIjxDb2xsZWN0UmVwb3J0ICVyIGxlbnJlc3VsdD0lcyBvdXRj
b21lPSVyPiIgJSAoCi0gICAgICAgICAgICBzZWxmLm5vZGVpZCwgbGVuKHNlbGYucmVzdWx0KSwg
c2VsZi5vdXRjb21lKQotCi0KLWNsYXNzIENvbGxlY3RFcnJvclJlcHIoVGVybWluYWxSZXByKToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKLSAgICAgICAgc2VsZi5sb25ncmVwciA9IG1z
ZwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgb3V0KToKLSAgICAgICAgb3V0LmxpbmUoc2Vs
Zi5sb25ncmVwciwgcmVkPVRydWUpCi0KLQotY2xhc3MgU2V0dXBTdGF0ZShvYmplY3QpOgotICAg
ICIiIiBzaGFyZWQgc3RhdGUgZm9yIHNldHRpbmcgdXAvdGVhcmluZyBkb3duIHRlc3QgaXRlbXMg
b3IgY29sbGVjdG9ycy4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNl
bGYuc3RhY2sgPSBbXQotICAgICAgICBzZWxmLl9maW5hbGl6ZXJzID0ge30KLQotICAgIGRlZiBh
ZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyLCBjb2xpdGVtKToKLSAgICAgICAgIiIiIGF0dGFj
aCBhIGZpbmFsaXplciB0byB0aGUgZ2l2ZW4gY29saXRlbS4KLSAgICAgICAgaWYgY29saXRlbSBp
cyBOb25lLCB0aGlzIHdpbGwgYWRkIGEgZmluYWxpemVyIHRoYXQKLSAgICAgICAgaXMgY2FsbGVk
IGF0IHRoZSBlbmQgb2YgdGVhcmRvd25fYWxsKCkuCi0gICAgICAgICIiIgotICAgICAgICBhc3Nl
cnQgY29saXRlbSBhbmQgbm90IGlzaW5zdGFuY2UoY29saXRlbSwgdHVwbGUpCi0gICAgICAgIGFz
c2VydCBjYWxsYWJsZShmaW5hbGl6ZXIpCi0gICAgICAgICMgYXNzZXJ0IGNvbGl0ZW0gaW4gc2Vs
Zi5zdGFjayAgIyBzb21lIHVuaXQgdGVzdHMgZG9uJ3Qgc2V0dXAgc3RhY2sgOi8KLSAgICAgICAg
c2VsZi5fZmluYWxpemVycy5zZXRkZWZhdWx0KGNvbGl0ZW0sIFtdKS5hcHBlbmQoZmluYWxpemVy
KQotCi0gICAgZGVmIF9wb3BfYW5kX3RlYXJkb3duKHNlbGYpOgotICAgICAgICBjb2xpdGVtID0g
c2VsZi5zdGFjay5wb3AoKQotICAgICAgICBzZWxmLl90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlv
bihjb2xpdGVtKQotCi0gICAgZGVmIF9jYWxsZmluYWxpemVycyhzZWxmLCBjb2xpdGVtKToKLSAg
ICAgICAgZmluYWxpemVycyA9IHNlbGYuX2ZpbmFsaXplcnMucG9wKGNvbGl0ZW0sIE5vbmUpCi0g
ICAgICAgIGV4YyA9IE5vbmUKLSAgICAgICAgd2hpbGUgZmluYWxpemVyczoKLSAgICAgICAgICAg
IGZpbiA9IGZpbmFsaXplcnMucG9wKCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBmaW4oKQotICAgICAgICAgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAgICAgICAg
ICAjIFhYWCBPbmx5IGZpcnN0IGV4Y2VwdGlvbiB3aWxsIGJlIHNlZW4gYnkgdXNlciwKLSAgICAg
ICAgICAgICAgICAjICAgICBpZGVhbGx5IGFsbCBzaG91bGQgYmUgcmVwb3J0ZWQuCi0gICAgICAg
ICAgICAgICAgaWYgZXhjIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGV4YyA9IHN5cy5l
eGNfaW5mbygpCi0gICAgICAgIGlmIGV4YzoKLSAgICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFp
c2UoKmV4YykKLQotICAgIGRlZiBfdGVhcmRvd25fd2l0aF9maW5hbGl6YXRpb24oc2VsZiwgY29s
aXRlbSk6Ci0gICAgICAgIHNlbGYuX2NhbGxmaW5hbGl6ZXJzKGNvbGl0ZW0pCi0gICAgICAgIGlm
IGhhc2F0dHIoY29saXRlbSwgInRlYXJkb3duIik6Ci0gICAgICAgICAgICBjb2xpdGVtLnRlYXJk
b3duKCkKLSAgICAgICAgZm9yIGNvbGl0ZW0gaW4gc2VsZi5fZmluYWxpemVyczoKLSAgICAgICAg
ICAgIGFzc2VydCBjb2xpdGVtIGlzIE5vbmUgb3IgY29saXRlbSBpbiBzZWxmLnN0YWNrIFwKLSAg
ICAgICAgICAgICAgICBvciBpc2luc3RhbmNlKGNvbGl0ZW0sIHR1cGxlKQotCi0gICAgZGVmIHRl
YXJkb3duX2FsbChzZWxmKToKLSAgICAgICAgd2hpbGUgc2VsZi5zdGFjazoKLSAgICAgICAgICAg
IHNlbGYuX3BvcF9hbmRfdGVhcmRvd24oKQotICAgICAgICBmb3Iga2V5IGluIGxpc3Qoc2VsZi5f
ZmluYWxpemVycyk6Ci0gICAgICAgICAgICBzZWxmLl90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlv
bihrZXkpCi0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5fZmluYWxpemVycwotCi0gICAgZGVmIHRl
YXJkb3duX2V4YWN0KHNlbGYsIGl0ZW0sIG5leHRpdGVtKToKLSAgICAgICAgbmVlZGVkX2NvbGxl
Y3RvcnMgPSBuZXh0aXRlbSBhbmQgbmV4dGl0ZW0ubGlzdGNoYWluKCkgb3IgW10KLSAgICAgICAg
c2VsZi5fdGVhcmRvd25fdG93YXJkcyhuZWVkZWRfY29sbGVjdG9ycykKLQotICAgIGRlZiBfdGVh
cmRvd25fdG93YXJkcyhzZWxmLCBuZWVkZWRfY29sbGVjdG9ycyk6Ci0gICAgICAgIHdoaWxlIHNl
bGYuc3RhY2s6Ci0gICAgICAgICAgICBpZiBzZWxmLnN0YWNrID09IG5lZWRlZF9jb2xsZWN0b3Jz
WzpsZW4oc2VsZi5zdGFjayldOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBz
ZWxmLl9wb3BfYW5kX3RlYXJkb3duKCkKLQotICAgIGRlZiBwcmVwYXJlKHNlbGYsIGNvbGl0ZW0p
OgotICAgICAgICAiIiIgc2V0dXAgb2JqZWN0cyBhbG9uZyB0aGUgY29sbGVjdG9yIGNoYWluIHRv
IHRoZSB0ZXN0LW1ldGhvZAotICAgICAgICAgICAgYW5kIHRlYXJkb3duIHByZXZpb3VzbHkgc2V0
dXAgb2JqZWN0cy4iIiIKLSAgICAgICAgbmVlZGVkX2NvbGxlY3RvcnMgPSBjb2xpdGVtLmxpc3Rj
aGFpbigpCi0gICAgICAgIHNlbGYuX3RlYXJkb3duX3Rvd2FyZHMobmVlZGVkX2NvbGxlY3RvcnMp
Ci0KLSAgICAgICAgIyBjaGVjayBpZiB0aGUgbGFzdCBjb2xsZWN0aW9uIG5vZGUgaGFzIHJhaXNl
ZCBhbiBlcnJvcgotICAgICAgICBmb3IgY29sIGluIHNlbGYuc3RhY2s6Ci0gICAgICAgICAgICBp
ZiBoYXNhdHRyKGNvbCwgJ19wcmVwYXJlX2V4YycpOgotICAgICAgICAgICAgICAgIHB5LmJ1aWx0
aW4uX3JlcmFpc2UoKmNvbC5fcHJlcGFyZV9leGMpCi0gICAgICAgIGZvciBjb2wgaW4gbmVlZGVk
X2NvbGxlY3RvcnNbbGVuKHNlbGYuc3RhY2spOl06Ci0gICAgICAgICAgICBzZWxmLnN0YWNrLmFw
cGVuZChjb2wpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY29sLnNldHVwKCkK
LSAgICAgICAgICAgIGV4Y2VwdCBURVNUX09VVENPTUU6Ci0gICAgICAgICAgICAgICAgY29sLl9w
cmVwYXJlX2V4YyA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgICAgICAgICAgcmFpc2UKLQotCi1k
ZWYgY29sbGVjdF9vbmVfbm9kZShjb2xsZWN0b3IpOgotICAgIGlob29rID0gY29sbGVjdG9yLmlo
b29rCi0gICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0b3I9Y29sbGVjdG9yKQot
ICAgIHJlcCA9IGlob29rLnB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcj1jb2xs
ZWN0b3IpCi0gICAgY2FsbCA9IHJlcC5fX2RpY3RfXy5wb3AoImNhbGwiLCBOb25lKQotICAgIGlm
IGNhbGwgYW5kIGNoZWNrX2ludGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxsLCByZXApOgotICAgICAg
ICBpaG9vay5weXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGU9Y29sbGVjdG9yLCBjYWxsPWNh
bGwsIHJlcG9ydD1yZXApCi0gICAgcmV0dXJuIHJlcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9zZXR1cG9ubHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFjNzQ1N2Q3ZTUwNmMwN2I3YzE3NWViOGM5
NDcwZWI2MWI1ZmQ3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weQorKysgL2Rldi9udWxsCkBAIC0x
LDc0ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IHN5cwotCi0KLWRl
ZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
ImRlYnVnY29uZmlnIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tc2V0dXBvbmx5JywgJy0tc2V0
dXAtb25seScsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9
Im9ubHkgc2V0dXAgZml4dHVyZXMsIGRvIG5vdCBleGVjdXRlIHRlc3RzLiIpCi0gICAgZ3JvdXAu
YWRkb3B0aW9uKCctLXNldHVwc2hvdycsICctLXNldHVwLXNob3cnLCBhY3Rpb249InN0b3JlX3Ry
dWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IHNldHVwIG9mIGZpeHR1cmVzIHdo
aWxlIGV4ZWN1dGluZyB0ZXN0cy4iKQotCi0KLUBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKLWRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAg
ICB5aWVsZAotICAgIGNvbmZpZyA9IHJlcXVlc3QuY29uZmlnCi0gICAgaWYgY29uZmlnLm9wdGlv
bi5zZXR1cHNob3c6Ci0gICAgICAgIGlmIGhhc2F0dHIocmVxdWVzdCwgJ3BhcmFtJyk6Ci0gICAg
ICAgICAgICAjIFNhdmUgdGhlIGZpeHR1cmUgcGFyYW1ldGVyIHNvIC5fc2hvd19maXh0dXJlX2Fj
dGlvbigpIGNhbgotICAgICAgICAgICAgIyBkaXNwbGF5IGl0IG5vdyBhbmQgZHVyaW5nIHRoZSB0
ZWFyZG93biAoaW4gLmZpbmlzaCgpKS4KLSAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYuaWRzOgot
ICAgICAgICAgICAgICAgIGlmIGNhbGxhYmxlKGZpeHR1cmVkZWYuaWRzKToKLSAgICAgICAgICAg
ICAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0gPSBmaXh0dXJlZGVmLmlkcyhyZXF1ZXN0
LnBhcmFtKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGZpeHR1
cmVkZWYuY2FjaGVkX3BhcmFtID0gZml4dHVyZWRlZi5pZHNbCi0gICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LnBhcmFtX2luZGV4XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICBmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbSA9IHJlcXVlc3QucGFyYW0KLSAgICAgICAgX3No
b3dfZml4dHVyZV9hY3Rpb24oZml4dHVyZWRlZiwgJ1NFVFVQJykKLQotCi1kZWYgcHl0ZXN0X2Zp
eHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZik6Ci0gICAgaWYgaGFzYXR0cihmaXh0dXJl
ZGVmLCAiY2FjaGVkX3Jlc3VsdCIpOgotICAgICAgICBjb25maWcgPSBmaXh0dXJlZGVmLl9maXh0
dXJlbWFuYWdlci5jb25maWcKLSAgICAgICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6Ci0g
ICAgICAgICAgICBfc2hvd19maXh0dXJlX2FjdGlvbihmaXh0dXJlZGVmLCAnVEVBUkRPV04nKQot
ICAgICAgICAgICAgaWYgaGFzYXR0cihmaXh0dXJlZGVmLCAiY2FjaGVkX3BhcmFtIik6Ci0gICAg
ICAgICAgICAgICAgZGVsIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtCi0KLQotZGVmIF9zaG93X2Zp
eHR1cmVfYWN0aW9uKGZpeHR1cmVkZWYsIG1zZyk6Ci0gICAgY29uZmlnID0gZml4dHVyZWRlZi5f
Zml4dHVyZW1hbmFnZXIuY29uZmlnCi0gICAgY2FwbWFuID0gY29uZmlnLnBsdWdpbm1hbmFnZXIu
Z2V0cGx1Z2luKCdjYXB0dXJlbWFuYWdlcicpCi0gICAgaWYgY2FwbWFuOgotICAgICAgICBvdXQs
IGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKLQotICAgIHR3ID0gY29uZmln
LmdldF90ZXJtaW5hbF93cml0ZXIoKQotICAgIHR3LmxpbmUoKQotICAgIHR3LndyaXRlKCcgJyAq
IDIgKiBmaXh0dXJlZGVmLnNjb3BlbnVtKQotICAgIHR3LndyaXRlKCd7c3RlcH0ge3Njb3BlfSB7
Zml4dHVyZX0nLmZvcm1hdCgKLSAgICAgICAgc3RlcD1tc2cubGp1c3QoOCksICAjIGFsaWduIHRo
ZSBvdXRwdXQgdG8gVEVBUkRPV04KLSAgICAgICAgc2NvcGU9Zml4dHVyZWRlZi5zY29wZVswXS51
cHBlcigpLAotICAgICAgICBmaXh0dXJlPWZpeHR1cmVkZWYuYXJnbmFtZSkpCi0KLSAgICBpZiBt
c2cgPT0gJ1NFVFVQJzoKLSAgICAgICAgZGVwcyA9IHNvcnRlZChhcmcgZm9yIGFyZyBpbiBmaXh0
dXJlZGVmLmFyZ25hbWVzIGlmIGFyZyAhPSAncmVxdWVzdCcpCi0gICAgICAgIGlmIGRlcHM6Ci0g
ICAgICAgICAgICB0dy53cml0ZSgnIChmaXh0dXJlcyB1c2VkOiB7MH0pJy5mb3JtYXQoJywgJy5q
b2luKGRlcHMpKSkKLQotICAgIGlmIGhhc2F0dHIoZml4dHVyZWRlZiwgJ2NhY2hlZF9wYXJhbScp
OgotICAgICAgICB0dy53cml0ZSgnW3swfV0nLmZvcm1hdChmaXh0dXJlZGVmLmNhY2hlZF9wYXJh
bSkpCi0KLSAgICBpZiBjYXBtYW46Ci0gICAgICAgIGNhcG1hbi5yZXN1bWVfZ2xvYmFsX2NhcHR1
cmUoKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAgc3lzLnN0ZGVyci53
cml0ZShlcnIpCi0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQotZGVmIHB5dGVz
dF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLnNldHVwb25seToK
LSAgICAgICAgY29uZmlnLm9wdGlvbi5zZXR1cHNob3cgPSBUcnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3NldHVwcGxhbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBw
bGFuLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTFiZDQwNjk4Yjc3MmIwNmEz
NzI5N2NmYzM0ZTBhNzhiZDExNjQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjUgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHl0ZXN0Ci0KLQotZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVi
dWdjb25maWciKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1zZXR1cHBsYW4nLCAnLS1zZXR1cC1w
bGFuJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hv
dyB3aGF0IGZpeHR1cmVzIGFuZCB0ZXN0cyB3b3VsZCBiZSBleGVjdXRlZCBidXQgIgotICAgICAg
ICAgICAgICAgICAgICAiZG9uJ3QgZXhlY3V0ZSBhbnl0aGluZy4iKQotCi0KLUBweXRlc3QuaG9v
a2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVm
LCByZXF1ZXN0KToKLSAgICAjIFdpbGwgcmV0dXJuIGEgZHVtbXkgZml4dHVyZSBpZiB0aGUgc2V0
dXBvbmx5IG9wdGlvbiBpcyBwcm92aWRlZC4KLSAgICBpZiByZXF1ZXN0LmNvbmZpZy5vcHRpb24u
c2V0dXBwbGFuOgotICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHQgPSAoTm9uZSwgTm9u
ZSwgTm9uZSkKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdAotCi0KLUBw
eXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfY21kbGluZV9tYWluKGNv
bmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46Ci0gICAgICAgIGNvbmZpZy5v
cHRpb24uc2V0dXBvbmx5ID0gVHJ1ZQotICAgICAgICBjb25maWcub3B0aW9uLnNldHVwc2hvdyA9
IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBhMWU1YjQzODAwYjU0ZjhjOGEyOTA1NDBiMTNkYTNhMDI4MjBkN2Y1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tp
cHBpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOTcgKzAsMCBAQAotIiIiIHN1cHBvcnQgZm9y
IHNraXAveGZhaWwgZnVuY3Rpb25zIGFuZCBtYXJrZXJzLiAiIiIKLWZyb20gX19mdXR1cmVfXyBp
bXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0
IG9zCi1pbXBvcnQgc2l4Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdHJhY2ViYWNrCi0KLWZyb20gX3B5
dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCi1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFy
a0luZm8sIE1hcmtEZWNvcmF0b3IKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbCwg
c2tpcCwgeGZhaWwsIFRFU1RfT1VUQ09NRQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNl
cik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQotICAgIGdyb3VwLmFk
ZG9wdGlvbignLS1ydW54ZmFpbCcsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGRlc3Q9InJ1bnhmYWlsIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAg
ICAgaGVscD0icnVuIHRlc3RzIGV2ZW4gaWYgdGhleSBhcmUgbWFya2VkIHhmYWlsIikKLQotICAg
IHBhcnNlci5hZGRpbmkoInhmYWlsX3N0cmljdCIsICJkZWZhdWx0IGZvciB0aGUgc3RyaWN0IHBh
cmFtZXRlciBvZiB4ZmFpbCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1h
cmtlcnMgd2hlbiBub3QgZ2l2ZW4gZXhwbGljaXRseSAoZGVmYXVsdDogIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJGYWxzZSkiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZT0iYm9vbCIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICBp
ZiBjb25maWcub3B0aW9uLnJ1bnhmYWlsOgotICAgICAgICAjIHlheSBhIGhhY2sKLSAgICAgICAg
aW1wb3J0IHB5dGVzdAotICAgICAgICBvbGQgPSBweXRlc3QueGZhaWwKLSAgICAgICAgY29uZmln
Ll9jbGVhbnVwLmFwcGVuZChsYW1iZGE6IHNldGF0dHIocHl0ZXN0LCAieGZhaWwiLCBvbGQpKQot
Ci0gICAgICAgIGRlZiBub3AoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgIHBhc3MKLQot
ICAgICAgICBub3AuRXhjZXB0aW9uID0geGZhaWwuRXhjZXB0aW9uCi0gICAgICAgIHNldGF0dHIo
cHl0ZXN0LCAieGZhaWwiLCBub3ApCi0KLSAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFy
a2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNraXAocmVhc29uPU5vbmUpOiBz
a2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIHdpdGggYW4gb3B0aW9uYWwgcmVhc29uLiAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6IHNraXAocmVhc29uPVwibm8gd2F5
IG9mIGN1cnJlbnRseSB0ZXN0aW5nIHRoaXNcIikgc2tpcHMgdGhlICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidGVzdC4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotICAg
IGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic2tpcGlmKGNvbmRpdGlvbik6IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24g
aWYgZXZhbChjb25kaXRpb24pICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzdWx0
cyBpbiBhIFRydWUgdmFsdWUuICBFdmFsdWF0aW9uIGhhcHBlbnMgd2l0aGluIHRoZSAiCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZSBnbG9iYWwgY29udGV4dC4gRXhhbXBsZTog
c2tpcGlmKCdzeXMucGxhdGZvcm0gPT0gXCJ3aW4zMlwiJykgIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJza2lwcyB0aGUgdGVzdCBpZiB3ZSBhcmUgb24gdGhlIHdpbjMyIHBsYXRmb3Jt
LiBzZWUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vcHl0ZXN0Lm9yZy9s
YXRlc3Qvc2tpcHBpbmcuaHRtbCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAg
Y29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ4ZmFpbChjb25kaXRpb24sIHJlYXNvbj1Ob25lLCBydW49VHJ1ZSwgcmFpc2VzPU5v
bmUsIHN0cmljdD1GYWxzZSk6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFyayB0
aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlmIGV2YWwoY29uZGl0aW9u
KSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImhhcyBhIFRydWUgdmFsdWUuIE9wdGlv
bmFsbHkgc3BlY2lmeSBhIHJlYXNvbiBmb3IgYmV0dGVyIHJlcG9ydGluZyAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImFuZCBydW49RmFsc2UgaWYgeW91IGRvbid0IGV2ZW4gd2FudCB0
byBleGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9uLiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIklmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBlY3RlZCwgeW91IGNhbiBs
aXN0IHRoZW0gaW4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyYWlzZXMsIGFuZCBp
ZiB0aGUgdGVzdCBmYWlscyBpbiBvdGhlciB3YXlzLCBpdCB3aWxsIGJlIHJlcG9ydGVkIGFzICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSB0cnVlIGZhaWx1cmUuIFNlZSBodHRwOi8v
cHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbCIKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICApCi0KLQotY2xhc3MgTWFya0V2YWx1YXRvcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBpdGVtLCBuYW1lKToKLSAgICAgICAgc2VsZi5pdGVtID0gaXRlbQotICAgICAgICBz
ZWxmLl9tYXJrcyA9IE5vbmUKLSAgICAgICAgc2VsZi5fbWFyayA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fbWFya19uYW1lID0gbmFtZQotCi0gICAgZGVmIF9fYm9vbF9fKHNlbGYpOgotICAgICAgICBz
ZWxmLl9tYXJrcyA9IHNlbGYuX2dldF9tYXJrcygpCi0gICAgICAgIHJldHVybiBib29sKHNlbGYu
X21hcmtzKQotICAgIF9fbm9uemVyb19fID0gX19ib29sX18KLQotICAgIGRlZiB3YXN2YWxpZChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIG5vdCBoYXNhdHRyKHNlbGYsICdleGMnKQotCi0gICAgZGVm
IF9nZXRfbWFya3Moc2VsZik6Ci0KLSAgICAgICAga2V5d29yZCA9IHNlbGYuaXRlbS5rZXl3b3Jk
cy5nZXQoc2VsZi5fbWFya19uYW1lKQotICAgICAgICBpZiBpc2luc3RhbmNlKGtleXdvcmQsIE1h
cmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgcmV0dXJuIFtrZXl3b3JkLm1hcmtdCi0gICAgICAg
IGVsaWYgaXNpbnN0YW5jZShrZXl3b3JkLCBNYXJrSW5mbyk6Ci0gICAgICAgICAgICByZXR1cm4g
W3guY29tYmluZWQgZm9yIHggaW4ga2V5d29yZF0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJldHVybiBbXQotCi0gICAgZGVmIGludmFsaWRyYWlzZShzZWxmLCBleGMpOgotICAgICAgICBy
YWlzZXMgPSBzZWxmLmdldCgncmFpc2VzJykKLSAgICAgICAgaWYgbm90IHJhaXNlczoKLSAgICAg
ICAgICAgIHJldHVybgotICAgICAgICByZXR1cm4gbm90IGlzaW5zdGFuY2UoZXhjLCByYWlzZXMp
Ci0KLSAgICBkZWYgaXN0cnVlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5faXN0cnVlKCkKLSAgICAgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKLSAgICAgICAg
ICAgIHNlbGYuZXhjID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
c2VsZi5leGNbMV0sIFN5bnRheEVycm9yKToKLSAgICAgICAgICAgICAgICBtc2cgPSBbIiAiICog
KHNlbGYuZXhjWzFdLm9mZnNldCArIDQpICsgIl4iLCBdCi0gICAgICAgICAgICAgICAgbXNnLmFw
cGVuZCgiU3ludGF4RXJyb3I6IGludmFsaWQgc3ludGF4IikKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgbXNnID0gdHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb25fb25seSgqc2Vs
Zi5leGNbOjJdKQotICAgICAgICAgICAgZmFpbCgiRXJyb3IgZXZhbHVhdGluZyAlciBleHByZXNz
aW9uXG4iCi0gICAgICAgICAgICAgICAgICIgICAgJXNcbiIKLSAgICAgICAgICAgICAgICAgIiVz
IgotICAgICAgICAgICAgICAgICAlIChzZWxmLl9tYXJrX25hbWUsIHNlbGYuZXhwciwgIlxuIi5q
b2luKG1zZykpLAotICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNlKQotCi0gICAgZGVmIF9n
ZXRnbG9iYWxzKHNlbGYpOgotICAgICAgICBkID0geydvcyc6IG9zLCAnc3lzJzogc3lzLCAnY29u
ZmlnJzogc2VsZi5pdGVtLmNvbmZpZ30KLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLml0ZW0sICdv
YmonKToKLSAgICAgICAgICAgIGQudXBkYXRlKHNlbGYuaXRlbS5vYmouX19nbG9iYWxzX18pCi0g
ICAgICAgIHJldHVybiBkCi0KLSAgICBkZWYgX2lzdHJ1ZShzZWxmKToKLSAgICAgICAgaWYgaGFz
YXR0cihzZWxmLCAncmVzdWx0Jyk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKLSAg
ICAgICAgc2VsZi5fbWFya3MgPSBzZWxmLl9nZXRfbWFya3MoKQotCi0gICAgICAgIGlmIHNlbGYu
X21hcmtzOgotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZQotICAgICAgICAgICAgZm9y
IG1hcmsgaW4gc2VsZi5fbWFya3M6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbWFyayA9IG1hcmsK
LSAgICAgICAgICAgICAgICBpZiAnY29uZGl0aW9uJyBpbiBtYXJrLmt3YXJnczoKLSAgICAgICAg
ICAgICAgICAgICAgYXJncyA9IChtYXJrLmt3YXJnc1snY29uZGl0aW9uJ10sKQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBtYXJrLmFyZ3MKLQotICAg
ICAgICAgICAgICAgIGZvciBleHByIGluIGFyZ3M6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYu
ZXhwciA9IGV4cHIKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHByLCBzaXgu
c3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBzZWxmLl9nZXRnbG9i
YWxzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNhY2hlZF9ldmFsKHNlbGYu
aXRlbS5jb25maWcsIGV4cHIsIGQpCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAicmVhc29uIiBub3QgaW4gbWFyay5rd2FyZ3M6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIyBYWFggYmV0dGVyIGJlIGNoZWNrZWQgYXQgY29sbGVjdGlv
biB0aW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gInlvdSBuZWVkIHRvIHNw
ZWNpZnkgcmVhc29uPVNUUklORyAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2hlbiB1c2luZyBib29sZWFucyBhcyBjb25kaXRpb25zLiIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWlsKG1zZykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGJv
b2woZXhwcikKLSAgICAgICAgICAgICAgICAgICAgaWYgcmVzdWx0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnJlYXNvbiA9IG1hcmsua3dhcmdzLmdldCgncmVhc29uJywgTm9uZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuZXhwciA9IGV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlc3VsdAotCi0gICAgICAgICAgICAgICAgaWYgbm90IGFyZ3M6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBzZWxmLnJl
YXNvbiA9IG1hcmsua3dhcmdzLmdldCgncmVhc29uJywgTm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVzdWx0Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGdl
dChzZWxmLCBhdHRyLCBkZWZhdWx0PU5vbmUpOgotICAgICAgICBpZiBzZWxmLl9tYXJrIGlzIE5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICByZXR1cm4gc2VsZi5fbWFy
ay5rd2FyZ3MuZ2V0KGF0dHIsIGRlZmF1bHQpCi0KLSAgICBkZWYgZ2V0ZXhwbGFuYXRpb24oc2Vs
Zik6Ci0gICAgICAgIGV4cGwgPSBnZXRhdHRyKHNlbGYsICdyZWFzb24nLCBOb25lKSBvciBzZWxm
LmdldCgncmVhc29uJywgTm9uZSkKLSAgICAgICAgaWYgbm90IGV4cGw6Ci0gICAgICAgICAgICBp
ZiBub3QgaGFzYXR0cihzZWxmLCAnZXhwcicpOgotICAgICAgICAgICAgICAgIHJldHVybiAiIgot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gImNvbmRpdGlvbjogIiAr
IHN0cihzZWxmLmV4cHIpCi0gICAgICAgIHJldHVybiBleHBsCi0KLQotQGhvb2tpbXBsKHRyeWZp
cnN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgIyBDaGVjayBp
ZiBza2lwIG9yIHNraXBpZiBhcmUgc3BlY2lmaWVkIGFzIHB5dGVzdCBtYXJrcwotICAgIGl0ZW0u
X3NraXBwZWRfYnlfbWFyayA9IEZhbHNlCi0gICAgc2tpcGlmX2luZm8gPSBpdGVtLmtleXdvcmRz
LmdldCgnc2tpcGlmJykKLSAgICBpZiBpc2luc3RhbmNlKHNraXBpZl9pbmZvLCAoTWFya0luZm8s
IE1hcmtEZWNvcmF0b3IpKToKLSAgICAgICAgZXZhbF9za2lwaWYgPSBNYXJrRXZhbHVhdG9yKGl0
ZW0sICdza2lwaWYnKQotICAgICAgICBpZiBldmFsX3NraXBpZi5pc3RydWUoKToKLSAgICAgICAg
ICAgIGl0ZW0uX3NraXBwZWRfYnlfbWFyayA9IFRydWUKLSAgICAgICAgICAgIHNraXAoZXZhbF9z
a2lwaWYuZ2V0ZXhwbGFuYXRpb24oKSkKLQotICAgIHNraXBfaW5mbyA9IGl0ZW0ua2V5d29yZHMu
Z2V0KCdza2lwJykKLSAgICBpZiBpc2luc3RhbmNlKHNraXBfaW5mbywgKE1hcmtJbmZvLCBNYXJr
RGVjb3JhdG9yKSk6Ci0gICAgICAgIGl0ZW0uX3NraXBwZWRfYnlfbWFyayA9IFRydWUKLSAgICAg
ICAgaWYgJ3JlYXNvbicgaW4gc2tpcF9pbmZvLmt3YXJnczoKLSAgICAgICAgICAgIHNraXAoc2tp
cF9pbmZvLmt3YXJnc1sncmVhc29uJ10pCi0gICAgICAgIGVsaWYgc2tpcF9pbmZvLmFyZ3M6Ci0g
ICAgICAgICAgICBza2lwKHNraXBfaW5mby5hcmdzWzBdKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2tpcCgidW5jb25kaXRpb25hbCBza2lwIikKLQotICAgIGl0ZW0uX2V2YWx4ZmFpbCA9
IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3hmYWlsJykKLSAgICBjaGVja194ZmFpbF9ub19ydW4oaXRl
bSkKLQotCi1AaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfcHlmdW5jX2Nh
bGwocHlmdW5jaXRlbSk6Ci0gICAgY2hlY2tfeGZhaWxfbm9fcnVuKHB5ZnVuY2l0ZW0pCi0gICAg
b3V0Y29tZSA9IHlpZWxkCi0gICAgcGFzc2VkID0gb3V0Y29tZS5leGNpbmZvIGlzIE5vbmUKLSAg
ICBpZiBwYXNzZWQ6Ci0gICAgICAgIGNoZWNrX3N0cmljdF94ZmFpbChweWZ1bmNpdGVtKQotCi0K
LWRlZiBjaGVja194ZmFpbF9ub19ydW4oaXRlbSk6Ci0gICAgIiIiY2hlY2sgeGZhaWwocnVuPUZh
bHNlKSIiIgotICAgIGlmIG5vdCBpdGVtLmNvbmZpZy5vcHRpb24ucnVueGZhaWw6Ci0gICAgICAg
IGV2YWx4ZmFpbCA9IGl0ZW0uX2V2YWx4ZmFpbAotICAgICAgICBpZiBldmFseGZhaWwuaXN0cnVl
KCk6Ci0gICAgICAgICAgICBpZiBub3QgZXZhbHhmYWlsLmdldCgncnVuJywgVHJ1ZSk6Ci0gICAg
ICAgICAgICAgICAgeGZhaWwoIltOT1RSVU5dICIgKyBldmFseGZhaWwuZ2V0ZXhwbGFuYXRpb24o
KSkKLQotCi1kZWYgY2hlY2tfc3RyaWN0X3hmYWlsKHB5ZnVuY2l0ZW0pOgotICAgICIiImNoZWNr
IHhmYWlsKHN0cmljdD1UcnVlKSBmb3IgdGhlIGdpdmVuIFBBU1NJTkcgdGVzdCIiIgotICAgIGV2
YWx4ZmFpbCA9IHB5ZnVuY2l0ZW0uX2V2YWx4ZmFpbAotICAgIGlmIGV2YWx4ZmFpbC5pc3RydWUo
KToKLSAgICAgICAgc3RyaWN0X2RlZmF1bHQgPSBweWZ1bmNpdGVtLmNvbmZpZy5nZXRpbmkoJ3hm
YWlsX3N0cmljdCcpCi0gICAgICAgIGlzX3N0cmljdF94ZmFpbCA9IGV2YWx4ZmFpbC5nZXQoJ3N0
cmljdCcsIHN0cmljdF9kZWZhdWx0KQotICAgICAgICBpZiBpc19zdHJpY3RfeGZhaWw6Ci0gICAg
ICAgICAgICBkZWwgcHlmdW5jaXRlbS5fZXZhbHhmYWlsCi0gICAgICAgICAgICBleHBsYW5hdGlv
biA9IGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgICAgICBmYWlsKCdbWFBBU1Mo
c3RyaWN0KV0gJyArIGV4cGxhbmF0aW9uLCBweXRyYWNlPUZhbHNlKQotCi0KLUBob29raW1wbCho
b29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2Fs
bCk6Ci0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkK
LSAgICBldmFseGZhaWwgPSBnZXRhdHRyKGl0ZW0sICdfZXZhbHhmYWlsJywgTm9uZSkKLSAgICAj
IHVuaXR0dGVzdCBzcGVjaWFsIGNhc2UsIHNlZSBzZXR0aW5nIG9mIF91bmV4cGVjdGVkc3VjY2Vz
cwotICAgIGlmIGhhc2F0dHIoaXRlbSwgJ191bmV4cGVjdGVkc3VjY2VzcycpIGFuZCByZXAud2hl
biA9PSAiY2FsbCI6Ci0gICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9pc191bml0
dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlCi0gICAgICAgIGlmIGl0ZW0uX3VuZXhw
ZWN0ZWRzdWNjZXNzOgotICAgICAgICAgICAgcmVwLmxvbmdyZXByID0gIlVuZXhwZWN0ZWQgc3Vj
Y2VzczogezB9Ii5mb3JtYXQoaXRlbS5fdW5leHBlY3RlZHN1Y2Nlc3MpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiVW5leHBlY3RlZCBzdWNjZXNzIgotICAgICAg
ICBpZiBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFpbHVyZSgpOgotICAgICAg
ICAgICAgcmVwLm91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
cmVwLm91dGNvbWUgPSAicGFzc2VkIgotICAgICAgICAgICAgcmVwLndhc3hmYWlsID0gcmVwLmxv
bmdyZXByCi0gICAgZWxpZiBpdGVtLmNvbmZpZy5vcHRpb24ucnVueGZhaWw6Ci0gICAgICAgIHBh
c3MgICAjIGRvbid0IGludGVyZWZlcmUKLSAgICBlbGlmIGNhbGwuZXhjaW5mbyBhbmQgY2FsbC5l
eGNpbmZvLmVycmlzaW5zdGFuY2UoeGZhaWwuRXhjZXB0aW9uKToKLSAgICAgICAgcmVwLndhc3hm
YWlsID0gInJlYXNvbjogIiArIGNhbGwuZXhjaW5mby52YWx1ZS5tc2cKLSAgICAgICAgcmVwLm91
dGNvbWUgPSAic2tpcHBlZCIKLSAgICBlbGlmIGV2YWx4ZmFpbCBhbmQgbm90IHJlcC5za2lwcGVk
IGFuZCBldmFseGZhaWwud2FzdmFsaWQoKSBhbmQgXAotICAgICAgICAgICAgZXZhbHhmYWlsLmlz
dHJ1ZSgpOgotICAgICAgICBpZiBjYWxsLmV4Y2luZm86Ci0gICAgICAgICAgICBpZiBldmFseGZh
aWwuaW52YWxpZHJhaXNlKGNhbGwuZXhjaW5mby52YWx1ZSk6Ci0gICAgICAgICAgICAgICAgcmVw
Lm91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
ZXAub3V0Y29tZSA9ICJza2lwcGVkIgotICAgICAgICAgICAgICAgIHJlcC53YXN4ZmFpbCA9IGV2
YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgIGVsaWYgY2FsbC53aGVuID09ICJjYWxs
IjoKLSAgICAgICAgICAgIHN0cmljdF9kZWZhdWx0ID0gaXRlbS5jb25maWcuZ2V0aW5pKCd4ZmFp
bF9zdHJpY3QnKQotICAgICAgICAgICAgaXNfc3RyaWN0X3hmYWlsID0gZXZhbHhmYWlsLmdldCgn
c3RyaWN0Jywgc3RyaWN0X2RlZmF1bHQpCi0gICAgICAgICAgICBleHBsYW5hdGlvbiA9IGV2YWx4
ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgICAgICBpZiBpc19zdHJpY3RfeGZhaWw6Ci0g
ICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgICAgIHJl
cC5sb25ncmVwciA9ICJbWFBBU1Moc3RyaWN0KV0gezB9Ii5mb3JtYXQoZXhwbGFuYXRpb24pCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcC5vdXRjb21lID0gInBhc3NlZCIK
LSAgICAgICAgICAgICAgICByZXAud2FzeGZhaWwgPSBleHBsYW5hdGlvbgotICAgIGVsaWYgaXRl
bS5fc2tpcHBlZF9ieV9tYXJrIGFuZCByZXAuc2tpcHBlZCBhbmQgdHlwZShyZXAubG9uZ3JlcHIp
IGlzIHR1cGxlOgotICAgICAgICAjIHNraXBwZWQgYnkgbWFyay5za2lwaWY7IGNoYW5nZSB0aGUg
bG9jYXRpb24gb2YgdGhlIGZhaWx1cmUKLSAgICAgICAgIyB0byBwb2ludCB0byB0aGUgaXRlbSBk
ZWZpbml0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBkaXNwbGF5Ci0gICAgICAgICMgdGhlIGxvY2F0
aW9uIG9mIHdoZXJlIHRoZSBza2lwIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIHdpdGhpbiBweXRlc3QK
LSAgICAgICAgZmlsZW5hbWUsIGxpbmUsIHJlYXNvbiA9IHJlcC5sb25ncmVwcgotICAgICAgICBm
aWxlbmFtZSwgbGluZSA9IGl0ZW0ubG9jYXRpb25bOjJdCi0gICAgICAgIHJlcC5sb25ncmVwciA9
IGZpbGVuYW1lLCBsaW5lLCByZWFzb24KLQotIyBjYWxsZWQgYnkgdGVybWluYWxyZXBvcnRlciBw
cm9ncmVzcyByZXBvcnRpbmcKLQotCi1kZWYgcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9y
dCk6Ci0gICAgaWYgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgotICAgICAgICBpZiByZXBv
cnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHJldHVybiAieGZhaWxlZCIsICJ4IiwgInhmYWlsIgot
ICAgICAgICBlbGlmIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICByZXR1cm4gInhwYXNzZWQi
LCAiWCIsICgiWFBBU1MiLCB7J3llbGxvdyc6IFRydWV9KQotCi0jIGNhbGxlZCBieSB0aGUgdGVy
bWluYWxyZXBvcnRlciBpbnN0YW5jZS9wbHVnaW4KLQotCi1kZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1
bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAg
aWYgbm90IHRyLnJlcG9ydGNoYXJzOgotICAgICAgICAjIGZvciBuYW1lIGluICJ4ZmFpbGVkIHNr
aXBwZWQgZmFpbGVkIHhwYXNzZWQiOgotICAgICAgICAjICAgIGlmIG5vdCB0ci5zdGF0cy5nZXQo
bmFtZSwgMCk6Ci0gICAgICAgICMgICAgICAgIHRyLndyaXRlX2xpbmUoIkhJTlQ6IHVzZSAnLXIn
IG9wdGlvbiB0byBzZWUgZXh0cmEgIgotICAgICAgICAjICAgICAgICAgICAgICAic3VtbWFyeSBp
bmZvIGFib3V0IHRlc3RzIikKLSAgICAgICAgIyAgICAgICAgYnJlYWsKLSAgICAgICAgcmV0dXJu
Ci0KLSAgICBsaW5lcyA9IFtdCi0gICAgZm9yIGNoYXIgaW4gdHIucmVwb3J0Y2hhcnM6Ci0gICAg
ICAgIGlmIGNoYXIgPT0gIngiOgotICAgICAgICAgICAgc2hvd194ZmFpbGVkKHRlcm1pbmFscmVw
b3J0ZXIsIGxpbmVzKQotICAgICAgICBlbGlmIGNoYXIgPT0gIlgiOgotICAgICAgICAgICAgc2hv
d194cGFzc2VkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQotICAgICAgICBlbGlmIGNoYXIgaW4g
ImZGIjoKLSAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzLCAn
ZmFpbGVkJywgIkZBSUwgJXMiKQotICAgICAgICBlbGlmIGNoYXIgaW4gInNTIjoKLSAgICAgICAg
ICAgIHNob3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcykKLSAgICAgICAgZWxpZiBj
aGFyID09ICJFIjoKLSAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIsIGxp
bmVzLCAnZXJyb3InLCAiRVJST1IgJXMiKQotICAgICAgICBlbGlmIGNoYXIgPT0gJ3AnOgotICAg
ICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsICdwYXNzZWQnLCAi
UEFTU0VEICVzIikKLQotICAgIGlmIGxpbmVzOgotICAgICAgICB0ci5fdHcuc2VwKCI9IiwgInNo
b3J0IHRlc3Qgc3VtbWFyeSBpbmZvIikKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAg
ICAgICAgICB0ci5fdHcubGluZShsaW5lKQotCi0KLWRlZiBzaG93X3NpbXBsZSh0ZXJtaW5hbHJl
cG9ydGVyLCBsaW5lcywgc3RhdCwgZm9ybWF0KToKLSAgICBmYWlsZWQgPSB0ZXJtaW5hbHJlcG9y
dGVyLnN0YXRzLmdldChzdGF0KQotICAgIGlmIGZhaWxlZDoKLSAgICAgICAgZm9yIHJlcCBpbiBm
YWlsZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVs
YXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm9ybWF0
ICUgKHBvcywpKQotCi0KLWRlZiBzaG93X3hmYWlsZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMp
OgotICAgIHhmYWlsZWQgPSB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdldCgieGZhaWxlZCIpCi0g
ICAgaWYgeGZhaWxlZDoKLSAgICAgICAgZm9yIHJlcCBpbiB4ZmFpbGVkOgotICAgICAgICAgICAg
cG9zID0gdGVybWluYWxyZXBvcnRlci5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9k
ZWlkKQotICAgICAgICAgICAgcmVhc29uID0gcmVwLndhc3hmYWlsCi0gICAgICAgICAgICBsaW5l
cy5hcHBlbmQoIlhGQUlMICVzIiAlIChwb3MsKSkKLSAgICAgICAgICAgIGlmIHJlYXNvbjoKLSAg
ICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgIiArIHN0cihyZWFzb24pKQotCi0KLWRlZiBz
aG93X3hwYXNzZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpOgotICAgIHhwYXNzZWQgPSB0ZXJt
aW5hbHJlcG9ydGVyLnN0YXRzLmdldCgieHBhc3NlZCIpCi0gICAgaWYgeHBhc3NlZDoKLSAgICAg
ICAgZm9yIHJlcCBpbiB4cGFzc2VkOgotICAgICAgICAgICAgcG9zID0gdGVybWluYWxyZXBvcnRl
ci5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9kZWlkKQotICAgICAgICAgICAgcmVh
c29uID0gcmVwLndhc3hmYWlsCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoIlhQQVNTICVzICVz
IiAlIChwb3MsIHJlYXNvbikpCi0KLQotZGVmIGNhY2hlZF9ldmFsKGNvbmZpZywgZXhwciwgZCk6
Ci0gICAgaWYgbm90IGhhc2F0dHIoY29uZmlnLCAnX2V2YWxjYWNoZScpOgotICAgICAgICBjb25m
aWcuX2V2YWxjYWNoZSA9IHt9Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gY29uZmlnLl9ldmFs
Y2FjaGVbZXhwcl0KLSAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgIGltcG9ydCBfcHl0ZXN0
Ll9jb2RlCi0gICAgICAgIGV4cHJjb2RlID0gX3B5dGVzdC5fY29kZS5jb21waWxlKGV4cHIsIG1v
ZGU9ImV2YWwiKQotICAgICAgICBjb25maWcuX2V2YWxjYWNoZVtleHByXSA9IHggPSBldmFsKGV4
cHJjb2RlLCBkKQotICAgICAgICByZXR1cm4geAotCi0KLWRlZiBmb2xkZWRfc2tpcHMoc2tpcHBl
ZCk6Ci0gICAgZCA9IHt9Ci0gICAgZm9yIGV2ZW50IGluIHNraXBwZWQ6Ci0gICAgICAgIGtleSA9
IGV2ZW50LmxvbmdyZXByCi0gICAgICAgIGFzc2VydCBsZW4oa2V5KSA9PSAzLCAoZXZlbnQsIGtl
eSkKLSAgICAgICAga2V5d29yZHMgPSBnZXRhdHRyKGV2ZW50LCAna2V5d29yZHMnLCB7fSkKLSAg
ICAgICAgIyBmb2xkaW5nIHJlcG9ydHMgd2l0aCBnbG9iYWwgcHl0ZXN0bWFyayB2YXJpYWJsZQot
ICAgICAgICAjIHRoaXMgaXMgd29ya2Fyb3VuZCwgYmVjYXVzZSBmb3Igbm93IHdlIGNhbm5vdCBp
ZGVudGlmeSB0aGUgc2NvcGUgb2YgYSBza2lwIG1hcmtlcgotICAgICAgICAjIFRPRE86IHJldmlz
aXQgYWZ0ZXIgbWFya3Mgc2NvcGUgd291bGQgYmUgZml4ZWQKLSAgICAgICAgd2hlbiA9IGdldGF0
dHIoZXZlbnQsICd3aGVuJywgTm9uZSkKLSAgICAgICAgaWYgd2hlbiA9PSAnc2V0dXAnIGFuZCAn
c2tpcCcgaW4ga2V5d29yZHMgYW5kICdweXRlc3RtYXJrJyBub3QgaW4ga2V5d29yZHM6Ci0gICAg
ICAgICAgICBrZXkgPSAoa2V5WzBdLCBOb25lLCBrZXlbMl0sICkKLSAgICAgICAgZC5zZXRkZWZh
dWx0KGtleSwgW10pLmFwcGVuZChldmVudCkKLSAgICB2YWx1ZXMgPSBbXQotICAgIGZvciBrZXks
IGV2ZW50cyBpbiBkLml0ZW1zKCk6Ci0gICAgICAgIHZhbHVlcy5hcHBlbmQoKGxlbihldmVudHMp
LCkgKyBrZXkpCi0gICAgcmV0dXJuIHZhbHVlcwotCi0KLWRlZiBzaG93X3NraXBwZWQodGVybWlu
YWxyZXBvcnRlciwgbGluZXMpOgotICAgIHRyID0gdGVybWluYWxyZXBvcnRlcgotICAgIHNraXBw
ZWQgPSB0ci5zdGF0cy5nZXQoJ3NraXBwZWQnLCBbXSkKLSAgICBpZiBza2lwcGVkOgotICAgICAg
ICAjIGlmIG5vdCB0ci5oYXNvcHQoJ3NraXBwZWQnKToKLSAgICAgICAgIyAgICB0ci53cml0ZV9s
aW5lKAotICAgICAgICAjICAgICAgICAiJWQgc2tpcHBlZCB0ZXN0cywgc3BlY2lmeSAtcnMgZm9y
IG1vcmUgaW5mbyIgJQotICAgICAgICAjICAgICAgICBsZW4oc2tpcHBlZCkpCi0gICAgICAgICMg
ICAgcmV0dXJuCi0gICAgICAgIGZza2lwcyA9IGZvbGRlZF9za2lwcyhza2lwcGVkKQotICAgICAg
ICBpZiBmc2tpcHM6Ci0gICAgICAgICAgICAjIHRyLndyaXRlX3NlcCgiXyIsICJza2lwcGVkIHRl
c3Qgc3VtbWFyeSIpCi0gICAgICAgICAgICBmb3IgbnVtLCBmc3BhdGgsIGxpbmVubywgcmVhc29u
IGluIGZza2lwczoKLSAgICAgICAgICAgICAgICBpZiByZWFzb24uc3RhcnRzd2l0aCgiU2tpcHBl
ZDogIik6Ci0gICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9IHJlYXNvbls5Ol0KLSAgICAgICAg
ICAgICAgICBpZiBsaW5lbm8gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICJTS0lQIFslZF0gJXM6JWQ6ICVzIiAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAobnVtLCBmc3BhdGgsIGxpbmVubyArIDEsIHJlYXNv
bikpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgIlNLSVAgWyVkXSAlczogJXMiICUKLSAgICAg
ICAgICAgICAgICAgICAgICAgIChudW0sIGZzcGF0aCwgcmVhc29uKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Rlcm1p
bmFsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWJhNWU4NDVlNTE5MGFmNDZi
ZGY0NGEwMzUyZjljZDQwNzY5YjYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkKKysrIC9kZXYvbnVs
bApAQCAtMSw3MDMgKzAsMCBAQAotIiIiIHRlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0
ZXN0aW5nIHByb2Nlc3MuCi0KLVRoaXMgaXMgYSBnb29kIHNvdXJjZSBmb3IgbG9va2luZyBhdCB0
aGUgdmFyaW91cyByZXBvcnRpbmcgaG9va3MuCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGl0ZXJ0
b29scwotaW1wb3J0IHBsYXRmb3JtCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGltZQotCi1pbXBvcnQg
cGx1Z2d5Ci1pbXBvcnQgcHkKLWltcG9ydCBzaXgKLQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0
ZXN0IGltcG9ydCBub2RlcwotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfT0ssIEVYSVRf
VEVTVFNGQUlMRUQsIEVYSVRfSU5URVJSVVBURUQsIFwKLSAgICBFWElUX1VTQUdFRVJST1IsIEVY
SVRfTk9URVNUU0NPTExFQ1RFRAotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0g
ICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIsICJyZXBvcnRp
bmciLCBhZnRlcj0iZ2VuZXJhbCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLXYnLCAnLS12ZXJi
b3NlJywgYWN0aW9uPSJjb3VudCIsCi0gICAgICAgICAgICAgICAgICAgICBkZXN0PSJ2ZXJib3Nl
IiwgZGVmYXVsdD0wLCBoZWxwPSJpbmNyZWFzZSB2ZXJib3NpdHkuIiksCi0gICAgZ3JvdXAuX2Fk
ZG9wdGlvbignLXEnLCAnLS1xdWlldCcsIGFjdGlvbj0iY291bnQiLAotICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0icXVpZXQiLCBkZWZhdWx0PTAsIGhlbHA9ImRlY3JlYXNlIHZlcmJvc2l0eS4i
KSwKLSAgICBncm91cC5fYWRkb3B0aW9uKCctcicsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlIiwgZGVzdD0icmVwb3J0Y2hhcnMiLCBkZWZhdWx0PScnLCBtZXRhdmFyPSJjaGFy
cyIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGV4dHJhIHRlc3Qgc3VtbWFyeSBp
bmZvIGFzIHNwZWNpZmllZCBieSBjaGFycyAoZilhaWxlZCwgIgotICAgICAgICAgICAgICAgICAg
ICAgIihFKWVycm9yLCAocylza2lwcGVkLCAoeClmYWlsZWQsIChYKXBhc3NlZCwgIgotICAgICAg
ICAgICAgICAgICAgICAgIihwKXBhc3NlZCwgKFApcGFzc2VkIHdpdGggb3V0cHV0LCAoYSlhbGwg
ZXhjZXB0IHBQLiAiCi0gICAgICAgICAgICAgICAgICAgICAiV2FybmluZ3MgYXJlIGRpc3BsYXll
ZCBhdCBhbGwgdGltZXMgZXhjZXB0IHdoZW4gIgotICAgICAgICAgICAgICAgICAgICAgIi0tZGlz
YWJsZS13YXJuaW5ncyBpcyBzZXQiKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy0tZGlzYWJsZS13
YXJuaW5ncycsICctLWRpc2FibGUtcHl0ZXN0LXdhcm5pbmdzJywgZGVmYXVsdD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rpc2FibGVfd2FybmluZ3MnLCBhY3Rpb249J3N0b3Jl
X3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0nZGlzYWJsZSB3YXJuaW5ncyBzdW1t
YXJ5JykKLSAgICBncm91cC5fYWRkb3B0aW9uKCctbCcsICctLXNob3dsb2NhbHMnLAotICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ic2hvd2xvY2FscyIsIGRl
ZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGxvY2FscyBpbiB0
cmFjZWJhY2tzIChkaXNhYmxlZCBieSBkZWZhdWx0KS4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24o
Jy0tdGInLCBtZXRhdmFyPSJzdHlsZSIsCi0gICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0
b3JlIiwgZGVzdD0idGJzdHlsZSIsIGRlZmF1bHQ9J2F1dG8nLAotICAgICAgICAgICAgICAgICAg
ICAgY2hvaWNlcz1bJ2F1dG8nLCAnbG9uZycsICdzaG9ydCcsICdubycsICdsaW5lJywgJ25hdGl2
ZSddLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0idHJhY2ViYWNrIHByaW50IG1vZGUgKGF1
dG8vbG9uZy9zaG9ydC9saW5lL25hdGl2ZS9ubykuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCct
LWZ1bGx0cmFjZScsICctLWZ1bGwtdHJhY2UnLAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9u
PSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9
ImRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVmYXVsdCBpcyB0byBjdXQpLiIpCi0gICAgZ3Jv
dXAuX2FkZG9wdGlvbignLS1jb2xvcicsIG1ldGF2YXI9ImNvbG9yIiwKLSAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJjb2xvciIsIGRlZmF1bHQ9J2F1dG8nLAotICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ3llcycsICdubycsICdhdXRvJ10sCi0gICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJjb2xvciB0ZXJtaW5hbCBvdXRwdXQgKHllcy9uby9hdXRvKS4i
KQotCi0gICAgcGFyc2VyLmFkZGluaSgiY29uc29sZV9vdXRwdXRfc3R5bGUiLAotICAgICAgICAg
ICAgICAgICAgaGVscD0iY29uc29sZSBvdXRwdXQ6IGNsYXNzaWMgb3Igd2l0aCBhZGRpdGlvbmFs
IHByb2dyZXNzIGluZm9ybWF0aW9uIChjbGFzc2ljfHByb2dyZXNzKS4iLAotICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD0ncHJvZ3Jlc3MnKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZp
Zyk6Ci0gICAgY29uZmlnLm9wdGlvbi52ZXJib3NlIC09IGNvbmZpZy5vcHRpb24ucXVpZXQKLSAg
ICByZXBvcnRlciA9IFRlcm1pbmFsUmVwb3J0ZXIoY29uZmlnLCBzeXMuc3Rkb3V0KQotICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHJlcG9ydGVyLCAndGVybWluYWxyZXBvcnRlcicp
Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5kZWJ1ZyBvciBjb25maWcub3B0aW9uLnRyYWNlY29uZmln
OgotICAgICAgICBkZWYgbXl3cml0ZXIodGFncywgYXJncyk6Ci0gICAgICAgICAgICBtc2cgPSAi
ICIuam9pbihtYXAoc3RyLCBhcmdzKSkKLSAgICAgICAgICAgIHJlcG9ydGVyLndyaXRlX2xpbmUo
Ilt0cmFjZWNvbmZpZ10gIiArIG1zZykKLSAgICAgICAgY29uZmlnLnRyYWNlLnJvb3Quc2V0cHJv
Y2Vzc29yKCJweXRlc3Q6Y29uZmlnIiwgbXl3cml0ZXIpCi0KLQotZGVmIGdldHJlcG9ydG9wdChj
b25maWcpOgotICAgIHJlcG9ydG9wdHMgPSAiIgotICAgIHJlcG9ydGNoYXJzID0gY29uZmlnLm9w
dGlvbi5yZXBvcnRjaGFycwotICAgIGlmIG5vdCBjb25maWcub3B0aW9uLmRpc2FibGVfd2Fybmlu
Z3MgYW5kICd3JyBub3QgaW4gcmVwb3J0Y2hhcnM6Ci0gICAgICAgIHJlcG9ydGNoYXJzICs9ICd3
JwotICAgIGVsaWYgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdzIGFuZCAndycgaW4gcmVw
b3J0Y2hhcnM6Ci0gICAgICAgIHJlcG9ydGNoYXJzID0gcmVwb3J0Y2hhcnMucmVwbGFjZSgndycs
ICcnKQotICAgIGlmIHJlcG9ydGNoYXJzOgotICAgICAgICBmb3IgY2hhciBpbiByZXBvcnRjaGFy
czoKLSAgICAgICAgICAgIGlmIGNoYXIgbm90IGluIHJlcG9ydG9wdHMgYW5kIGNoYXIgIT0gJ2En
OgotICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMgKz0gY2hhcgotICAgICAgICAgICAgZWxpZiBj
aGFyID09ICdhJzoKLSAgICAgICAgICAgICAgICByZXBvcnRvcHRzID0gJ2ZFc3hYdycKLSAgICBy
ZXR1cm4gcmVwb3J0b3B0cwotCi0KLWRlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0
KToKLSAgICBpZiByZXBvcnQucGFzc2VkOgotICAgICAgICBsZXR0ZXIgPSAiLiIKLSAgICBlbGlm
IHJlcG9ydC5za2lwcGVkOgotICAgICAgICBsZXR0ZXIgPSAicyIKLSAgICBlbGlmIHJlcG9ydC5m
YWlsZWQ6Ci0gICAgICAgIGxldHRlciA9ICJGIgotICAgICAgICBpZiByZXBvcnQud2hlbiAhPSAi
Y2FsbCI6Ci0gICAgICAgICAgICBsZXR0ZXIgPSAiZiIKLSAgICByZXR1cm4gcmVwb3J0Lm91dGNv
bWUsIGxldHRlciwgcmVwb3J0Lm91dGNvbWUudXBwZXIoKQotCi0KLWNsYXNzIFdhcm5pbmdSZXBv
cnQ6Ci0gICAgIiIiCi0gICAgU2ltcGxlIHN0cnVjdHVyZSB0byBob2xkIHdhcm5pbmdzIGluZm9y
bWF0aW9uIGNhcHR1cmVkIGJ5IGBgcHl0ZXN0X2xvZ3dhcm5pbmdgYC4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjb2RlLCBtZXNzYWdlLCBub2RlaWQ9Tm9uZSwgZnNsb2NhdGlv
bj1Ob25lKToKLSAgICAgICAgIiIiCi0gICAgICAgIDpwYXJhbSBjb2RlOiB1bnVzZWQKLSAgICAg
ICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB1c2VyIGZyaWVuZGx5IG1lc3NhZ2UgYWJvdXQgdGhlIHdh
cm5pbmcKLSAgICAgICAgOnBhcmFtIHN0cnxOb25lIG5vZGVpZDogbm9kZSBpZCB0aGF0IGdlbmVy
YXRlZCB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgotICAgICAgICA6cGFyYW0g
dHVwbGV8cHkucGF0aC5sb2NhbCBmc2xvY2F0aW9uOgotICAgICAgICAgICAgZmlsZSBzeXN0ZW0g
bG9jYXRpb24gb2YgdGhlIHNvdXJjZSBvZiB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9u
YGApLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jb2RlID0gY29kZQotICAgICAgICBzZWxm
Lm1lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCi0gICAgICAg
IHNlbGYuZnNsb2NhdGlvbiA9IGZzbG9jYXRpb24KLQotICAgIGRlZiBnZXRfbG9jYXRpb24oc2Vs
ZiwgY29uZmlnKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMgdGhlIG1vcmUgdXNlci1m
cmllbmRseSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYXRpb24KLSAgICAgICAgb2YgYSB3YXJu
aW5nLCBvciBOb25lLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5ub2RlaWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQKLSAgICAgICAgaWYgc2VsZi5mc2xvY2F0aW9uOgot
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmZzbG9jYXRpb24sIHR1cGxlKSBhbmQgbGVu
KHNlbGYuZnNsb2NhdGlvbikgPj0gMjoKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSwgbGluZW51
bSA9IHNlbGYuZnNsb2NhdGlvbls6Ml0KLSAgICAgICAgICAgICAgICByZWxwYXRoID0gcHkucGF0
aC5sb2NhbChmaWxlbmFtZSkucmVsdG8oY29uZmlnLmludm9jYXRpb25fZGlyKQotICAgICAgICAg
ICAgICAgIHJldHVybiAnJXM6JXMnICUgKHJlbHBhdGgsIGxpbmVudW0pCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5mc2xvY2F0aW9uKQotICAgICAg
ICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIFRlcm1pbmFsUmVwb3J0ZXI6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGNvbmZpZywgZmlsZT1Ob25lKToKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuY29u
ZmlnCi0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYudmVyYm9zaXR5
ID0gc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UKLSAgICAgICAgc2VsZi5zaG93aGVhZGVyID0g
c2VsZi52ZXJib3NpdHkgPj0gMAotICAgICAgICBzZWxmLnNob3dmc3BhdGggPSBzZWxmLnZlcmJv
c2l0eSA+PSAwCi0gICAgICAgIHNlbGYuc2hvd2xvbmd0ZXN0aW5mbyA9IHNlbGYudmVyYm9zaXR5
ID4gMAotICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQgPSAwCi0gICAgICAgIHNlbGYuX3Nlc3Np
b24gPSBOb25lCi0KLSAgICAgICAgc2VsZi5zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYuc3RhcnRk
aXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgaWYgZmlsZSBpcyBOb25lOgotICAgICAgICAg
ICAgZmlsZSA9IHN5cy5zdGRvdXQKLSAgICAgICAgc2VsZi5fdHcgPSBfcHl0ZXN0LmNvbmZpZy5j
cmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZywgZmlsZSkKLSAgICAgICAgIyBzZWxmLndyaXRl
ciB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gcHl0ZXN0LTMuNAotICAgICAgICBzZWxmLndyaXRlciA9
IHNlbGYuX3R3Ci0gICAgICAgIHNlbGYuX3NjcmVlbl93aWR0aCA9IHNlbGYuX3R3LmZ1bGx3aWR0
aAotICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBOb25lCi0gICAgICAgIHNlbGYucmVwb3J0
Y2hhcnMgPSBnZXRyZXBvcnRvcHQoY29uZmlnKQotICAgICAgICBzZWxmLmhhc21hcmt1cCA9IHNl
bGYuX3R3Lmhhc21hcmt1cAotICAgICAgICBzZWxmLmlzYXR0eSA9IGZpbGUuaXNhdHR5KCkKLSAg
ICAgICAgc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0ZWQgPSAwCi0gICAgICAgIHNlbGYuX3No
b3dfcHJvZ3Jlc3NfaW5mbyA9IHNlbGYuY29uZmlnLmdldGluaSgnY29uc29sZV9vdXRwdXRfc3R5
bGUnKSA9PSAncHJvZ3Jlc3MnCi0KLSAgICBkZWYgaGFzb3B0KHNlbGYsIGNoYXIpOgotICAgICAg
ICBjaGFyID0geyd4ZmFpbGVkJzogJ3gnLCAnc2tpcHBlZCc6ICdzJ30uZ2V0KGNoYXIsIGNoYXIp
Ci0gICAgICAgIHJldHVybiBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnMKLQotICAgIGRlZiB3cml0
ZV9mc3BhdGhfcmVzdWx0KHNlbGYsIG5vZGVpZCwgcmVzKToKLSAgICAgICAgZnNwYXRoID0gc2Vs
Zi5jb25maWcucm9vdGRpci5qb2luKG5vZGVpZC5zcGxpdCgiOjoiKVswXSkKLSAgICAgICAgaWYg
ZnNwYXRoICE9IHNlbGYuY3VycmVudGZzcGF0aDoKLSAgICAgICAgICAgIGlmIHNlbGYuY3VycmVu
dGZzcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVz
c19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKLSAgICAgICAgICAgIHNlbGYuY3VycmVudGZz
cGF0aCA9IGZzcGF0aAotICAgICAgICAgICAgZnNwYXRoID0gc2VsZi5zdGFydGRpci5iZXN0cmVs
cGF0aChmc3BhdGgpCi0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCkKLSAgICAgICAgICAgIHNl
bGYuX3R3LndyaXRlKGZzcGF0aCArICIgIikKLSAgICAgICAgc2VsZi5fdHcud3JpdGUocmVzKQot
Ci0gICAgZGVmIHdyaXRlX2Vuc3VyZV9wcmVmaXgoc2VsZiwgcHJlZml4LCBleHRyYT0iIiwgKipr
d2FyZ3MpOgotICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggIT0gcHJlZml4OgotICAgICAg
ICAgICAgc2VsZi5fdHcubGluZSgpCi0gICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBw
cmVmaXgKLSAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKHByZWZpeCkKLSAgICAgICAgaWYgZXh0
cmE6Ci0gICAgICAgICAgICBzZWxmLl90dy53cml0ZShleHRyYSwgKiprd2FyZ3MpCi0gICAgICAg
ICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSAtMgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfcHJv
Z3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgpCi0KLSAgICBkZWYgZW5zdXJlX25ld2xp
bmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aDoKLSAgICAgICAgICAgIHNl
bGYuX3R3LmxpbmUoKQotICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gTm9uZQotCi0g
ICAgZGVmIHdyaXRlKHNlbGYsIGNvbnRlbnQsICoqbWFya3VwKToKLSAgICAgICAgc2VsZi5fdHcu
d3JpdGUoY29udGVudCwgKiptYXJrdXApCi0KLSAgICBkZWYgd3JpdGVfbGluZShzZWxmLCBsaW5l
LCAqKm1hcmt1cCk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGxpbmUsIHNpeC50ZXh0X3R5
cGUpOgotICAgICAgICAgICAgbGluZSA9IHNpeC50ZXh0X3R5cGUobGluZSwgZXJyb3JzPSJyZXBs
YWNlIikKLSAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCi0gICAgICAgIHNlbGYuX3R3Lmxp
bmUobGluZSwgKiptYXJrdXApCi0KLSAgICBkZWYgcmV3cml0ZShzZWxmLCBsaW5lLCAqKm1hcmt1
cCk6Ci0gICAgICAgICIiIgotICAgICAgICBSZXdpbmRzIHRoZSB0ZXJtaW5hbCBjdXJzb3IgdG8g
dGhlIGJlZ2lubmluZyBhbmQgd3JpdGVzIHRoZSBnaXZlbiBsaW5lLgotCi0gICAgICAgIDprd2Fy
ZyBlcmFzZTogaWYgVHJ1ZSwgd2lsbCBhbHNvIGFkZCBzcGFjZXMgdW50aWwgdGhlIGZ1bGwgdGVy
bWluYWwgd2lkdGggdG8gZW5zdXJlCi0gICAgICAgICAgICBwcmV2aW91cyBsaW5lcyBhcmUgcHJv
cGVybHkgZXJhc2VkLgotCi0gICAgICAgIFRoZSByZXN0IG9mIHRoZSBrZXl3b3JkIGFyZ3VtZW50
cyBhcmUgbWFya3VwIGluc3RydWN0aW9ucy4KLSAgICAgICAgIiIiCi0gICAgICAgIGVyYXNlID0g
bWFya3VwLnBvcCgnZXJhc2UnLCBGYWxzZSkKLSAgICAgICAgaWYgZXJhc2U6Ci0gICAgICAgICAg
ICBmaWxsX2NvdW50ID0gc2VsZi5fdHcuZnVsbHdpZHRoIC0gbGVuKGxpbmUpIC0gMQotICAgICAg
ICAgICAgZmlsbCA9ICcgJyAqIGZpbGxfY291bnQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGZpbGwgPSAnJwotICAgICAgICBsaW5lID0gc3RyKGxpbmUpCi0gICAgICAgIHNlbGYuX3R3Lndy
aXRlKCJcciIgKyBsaW5lICsgZmlsbCwgKiptYXJrdXApCi0KLSAgICBkZWYgd3JpdGVfc2VwKHNl
bGYsIHNlcCwgdGl0bGU9Tm9uZSwgKiptYXJrdXApOgotICAgICAgICBzZWxmLmVuc3VyZV9uZXds
aW5lKCkKLSAgICAgICAgc2VsZi5fdHcuc2VwKHNlcCwgdGl0bGUsICoqbWFya3VwKQotCi0gICAg
ZGVmIHNlY3Rpb24oc2VsZiwgdGl0bGUsIHNlcD0iPSIsICoqa3cpOgotICAgICAgICBzZWxmLl90
dy5zZXAoc2VwLCB0aXRsZSwgKiprdykKLQotICAgIGRlZiBsaW5lKHNlbGYsIG1zZywgKiprdyk6
Ci0gICAgICAgIHNlbGYuX3R3LmxpbmUobXNnLCAqKmt3KQotCi0gICAgZGVmIHB5dGVzdF9pbnRl
cm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgotICAgICAgICBmb3IgbGluZSBpbiBzaXgudGV4dF90
eXBlKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKCJJ
TlRFUk5BTEVSUk9SPiAiICsgbGluZSkKLSAgICAgICAgcmV0dXJuIDEKLQotICAgIGRlZiBweXRl
c3RfbG9nd2FybmluZyhzZWxmLCBjb2RlLCBmc2xvY2F0aW9uLCBtZXNzYWdlLCBub2RlaWQpOgot
ICAgICAgICB3YXJuaW5ncyA9IHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgid2FybmluZ3MiLCBbXSkK
LSAgICAgICAgd2FybmluZyA9IFdhcm5pbmdSZXBvcnQoY29kZT1jb2RlLCBmc2xvY2F0aW9uPWZz
bG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9bWVzc2Fn
ZSwgbm9kZWlkPW5vZGVpZCkKLSAgICAgICAgd2FybmluZ3MuYXBwZW5kKHdhcm5pbmcpCi0KLSAg
ICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNlbGYsIHBsdWdpbik6Ci0gICAgICAgIGlm
IHNlbGYuY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKLSAgICAgICAgICAgIG1zZyA9ICJQTFVH
SU4gcmVnaXN0ZXJlZDogJXMiICUgKHBsdWdpbiwpCi0gICAgICAgICAgICAjIFhYWCB0aGlzIGV2
ZW50IG1heSBoYXBwZW4gZHVyaW5nIHNldHVwL3RlYXJkb3duIHRpbWUKLSAgICAgICAgICAgICMg
ICAgIHdoaWNoIHVuZm9ydHVuYXRlbHkgY2FwdHVyZXMgb3VyIG91dHB1dCBoZXJlCi0gICAgICAg
ICAgICAjICAgICB3aGljaCBnYXJibGVzIG91ciBvdXRwdXQgaWYgd2UgdXNlIHNlbGYud3JpdGVf
bGluZQotICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKG1zZykKLQotICAgIGRlZiBweXRlc3Rf
ZGVzZWxlY3RlZChzZWxmLCBpdGVtcyk6Ci0gICAgICAgIHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgn
ZGVzZWxlY3RlZCcsIFtdKS5leHRlbmQoaXRlbXMpCi0KLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rf
bG9nc3RhcnQoc2VsZiwgbm9kZWlkLCBsb2NhdGlvbik6Ci0gICAgICAgICMgZW5zdXJlIHRoYXQg
dGhlIHBhdGggaXMgcHJpbnRlZCBiZWZvcmUgdGhlCi0gICAgICAgICMgMXN0IHRlc3Qgb2YgYSBt
b2R1bGUgc3RhcnRzIHJ1bm5pbmcKLSAgICAgICAgaWYgc2VsZi5zaG93bG9uZ3Rlc3RpbmZvOgot
ICAgICAgICAgICAgbGluZSA9IHNlbGYuX2xvY2F0aW9ubGluZShub2RlaWQsICpsb2NhdGlvbikK
LSAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJlX3ByZWZpeChsaW5lLCAiIikKLSAgICAgICAg
ZWxpZiBzZWxmLnNob3dmc3BhdGg6Ci0gICAgICAgICAgICBmc2lkID0gbm9kZWlkLnNwbGl0KCI6
OiIpWzBdCi0gICAgICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQoZnNpZCwgIiIpCi0K
LSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAg
IHJlcCA9IHJlcG9ydAotICAgICAgICByZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBv
cnRfdGVzdHN0YXR1cyhyZXBvcnQ9cmVwKQotICAgICAgICBjYXQsIGxldHRlciwgd29yZCA9IHJl
cwotICAgICAgICBpZiBpc2luc3RhbmNlKHdvcmQsIHR1cGxlKToKLSAgICAgICAgICAgIHdvcmQs
IG1hcmt1cCA9IHdvcmQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1hcmt1cCA9IE5vbmUK
LSAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KGNhdCwgW10pLmFwcGVuZChyZXApCi0gICAg
ICAgIHNlbGYuX3Rlc3RzX3JhbiA9IFRydWUKLSAgICAgICAgaWYgbm90IGxldHRlciBhbmQgbm90
IHdvcmQ6Ci0gICAgICAgICAgICAjIHByb2JhYmx5IHBhc3NlZCBzZXR1cC90ZWFyZG93bgotICAg
ICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJ1bm5pbmdfeGRpc3QgPSBoYXNhdHRyKHJlcCwgJ25v
ZGUnKQotICAgICAgICBzZWxmLl9wcm9ncmVzc19pdGVtc19yZXBvcnRlZCArPSAxCi0gICAgICAg
IGlmIHNlbGYudmVyYm9zaXR5IDw9IDA6Ci0gICAgICAgICAgICBpZiBub3QgcnVubmluZ194ZGlz
dCBhbmQgc2VsZi5zaG93ZnNwYXRoOgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZnNwYXRo
X3Jlc3VsdChyZXAubm9kZWlkLCBsZXR0ZXIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHNlbGYuX3R3LndyaXRlKGxldHRlcikKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX3By
b2dyZXNzX2lmX3Bhc3RfZWRnZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBtYXJr
dXAgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBpZiByZXAucGFzc2VkOgotICAgICAgICAgICAg
ICAgICAgICBtYXJrdXAgPSB7J2dyZWVuJzogVHJ1ZX0KLSAgICAgICAgICAgICAgICBlbGlmIHJl
cC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsncmVkJzogVHJ1ZX0KLSAg
ICAgICAgICAgICAgICBlbGlmIHJlcC5za2lwcGVkOgotICAgICAgICAgICAgICAgICAgICBtYXJr
dXAgPSB7J3llbGxvdyc6IFRydWV9Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgbWFya3VwID0ge30KLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9sb2NhdGlvbmxp
bmUocmVwLm5vZGVpZCwgKnJlcC5sb2NhdGlvbikKLSAgICAgICAgICAgIGlmIG5vdCBydW5uaW5n
X3hkaXN0OgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJlX3ByZWZpeChsaW5lLCB3
b3JkLCAqKm1hcmt1cCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5l
bnN1cmVfbmV3bGluZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoIlslc10iICUg
cmVwLm5vZGUuZ2F0ZXdheS5pZCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG93X3Byb2dy
ZXNzX2luZm86Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKHNlbGYuX2dldF9w
cm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkgKyAiICIsIGN5YW49VHJ1ZSkKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZSgnICcpCi0g
ICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUod29yZCwgKiptYXJrdXApCi0gICAgICAgICAg
ICAgICAgc2VsZi5fdHcud3JpdGUoIiAiICsgbGluZSkKLSAgICAgICAgICAgICAgICBzZWxmLmN1
cnJlbnRmc3BhdGggPSAtMgotCi0gICAgZGVmIF93cml0ZV9wcm9ncmVzc19pZl9wYXN0X2VkZ2Uo
c2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9zaG93X3Byb2dyZXNzX2luZm86Ci0gICAgICAg
ICAgICByZXR1cm4KLSAgICAgICAgbGFzdF9pdGVtID0gc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVw
b3J0ZWQgPT0gc2VsZi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAotICAgICAgICBpZiBsYXN0X2l0
ZW06Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5n
X3NwYWNlKCkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHBhc3RfZWRnZSA9IHNlbGYu
X3R3LmNoYXJzX29uX2N1cnJlbnRfbGluZSArIHNlbGYuX1BST0dSRVNTX0xFTkdUSCArIDEgPj0g
c2VsZi5fc2NyZWVuX3dpZHRoCi0gICAgICAgIGlmIHBhc3RfZWRnZToKLSAgICAgICAgICAgIG1z
ZyA9IHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkKLSAgICAgICAgICAg
IHNlbGYuX3R3LndyaXRlKG1zZyArICdcbicsIGN5YW49VHJ1ZSkKLQotICAgIF9QUk9HUkVTU19M
RU5HVEggPSBsZW4oJyBbMTAwJV0nKQotCi0gICAgZGVmIF9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRp
b25fbWVzc2FnZShzZWxmKToKLSAgICAgICAgY29sbGVjdGVkID0gc2VsZi5fc2Vzc2lvbi50ZXN0
c2NvbGxlY3RlZAotICAgICAgICBpZiBjb2xsZWN0ZWQ6Ci0gICAgICAgICAgICBwcm9ncmVzcyA9
IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkICogMTAwIC8vIGNvbGxlY3RlZAotICAgICAg
ICAgICAgcmV0dXJuICcgW3s6M2R9JV0nLmZvcm1hdChwcm9ncmVzcykKLSAgICAgICAgcmV0dXJu
ICcgWzEwMCVdJwotCi0gICAgZGVmIF93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5n
X3NwYWNlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvOgot
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIG1zZyA9IHNlbGYuX2dldF9wcm9ncmVzc19pbmZv
cm1hdGlvbl9tZXNzYWdlKCkKLSAgICAgICAgZmlsbCA9ICcgJyAqIChzZWxmLl90dy5mdWxsd2lk
dGggLSBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50X2xpbmUgLSBsZW4obXNnKSAtIDEpCi0gICAg
ICAgIHNlbGYud3JpdGUoZmlsbCArIG1zZywgY3lhbj1UcnVlKQotCi0gICAgZGVmIHB5dGVzdF9j
b2xsZWN0aW9uKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5pc2F0dHkgYW5kIHNlbGYuY29u
ZmlnLm9wdGlvbi52ZXJib3NlID49IDE6Ci0gICAgICAgICAgICBzZWxmLndyaXRlKCJjb2xsZWN0
aW5nIC4uLiAiLCBib2xkPVRydWUpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2Vs
ZiwgcmVwb3J0KToKLSAgICAgICAgaWYgcmVwb3J0LmZhaWxlZDoKLSAgICAgICAgICAgIHNlbGYu
c3RhdHMuc2V0ZGVmYXVsdCgiZXJyb3IiLCBbXSkuYXBwZW5kKHJlcG9ydCkKLSAgICAgICAgZWxp
ZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgic2tp
cHBlZCIsIFtdKS5hcHBlbmQocmVwb3J0KQotICAgICAgICBpdGVtcyA9IFt4IGZvciB4IGluIHJl
cG9ydC5yZXN1bHQgaWYgaXNpbnN0YW5jZSh4LCBweXRlc3QuSXRlbSldCi0gICAgICAgIHNlbGYu
X251bWNvbGxlY3RlZCArPSBsZW4oaXRlbXMpCi0gICAgICAgIGlmIHNlbGYuaXNhdHR5OgotICAg
ICAgICAgICAgIyBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQocmVwb3J0Lm5vZGVpZCwgJ0UnKQot
ICAgICAgICAgICAgc2VsZi5yZXBvcnRfY29sbGVjdCgpCi0KLSAgICBkZWYgcmVwb3J0X2NvbGxl
Y3Qoc2VsZiwgZmluYWw9RmFsc2UpOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udmVy
Ym9zZSA8IDA6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBlcnJvcnMgPSBsZW4oc2Vs
Zi5zdGF0cy5nZXQoJ2Vycm9yJywgW10pKQotICAgICAgICBza2lwcGVkID0gbGVuKHNlbGYuc3Rh
dHMuZ2V0KCdza2lwcGVkJywgW10pKQotICAgICAgICBpZiBmaW5hbDoKLSAgICAgICAgICAgIGxp
bmUgPSAiY29sbGVjdGVkICIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpbmUgPSAiY29s
bGVjdGluZyAiCi0gICAgICAgIGxpbmUgKz0gc3RyKHNlbGYuX251bWNvbGxlY3RlZCkgKyAiIGl0
ZW0iICsgKCcnIGlmIHNlbGYuX251bWNvbGxlY3RlZCA9PSAxIGVsc2UgJ3MnKQotICAgICAgICBp
ZiBlcnJvcnM6Ci0gICAgICAgICAgICBsaW5lICs9ICIgLyAlZCBlcnJvcnMiICUgZXJyb3JzCi0g
ICAgICAgIGlmIHNraXBwZWQ6Ci0gICAgICAgICAgICBsaW5lICs9ICIgLyAlZCBza2lwcGVkIiAl
IHNraXBwZWQKLSAgICAgICAgaWYgc2VsZi5pc2F0dHk6Ci0gICAgICAgICAgICBzZWxmLnJld3Jp
dGUobGluZSwgYm9sZD1UcnVlLCBlcmFzZT1UcnVlKQotICAgICAgICAgICAgaWYgZmluYWw6Ci0g
ICAgICAgICAgICAgICAgc2VsZi53cml0ZSgnXG4nKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9k
aWZ5aXRlbXMoc2VsZik6Ci0gICAgICAgIHNlbGYucmVwb3J0X2NvbGxlY3QoVHJ1ZSkKLQotICAg
IEBweXRlc3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0
YXJ0KHNlbGYsIHNlc3Npb24pOgotICAgICAgICBzZWxmLl9zZXNzaW9uID0gc2Vzc2lvbgotICAg
ICAgICBzZWxmLl9zZXNzaW9uc3RhcnR0aW1lID0gdGltZS50aW1lKCkKLSAgICAgICAgaWYgbm90
IHNlbGYuc2hvd2hlYWRlcjoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLndyaXRl
X3NlcCgiPSIsICJ0ZXN0IHNlc3Npb24gc3RhcnRzIiwgYm9sZD1UcnVlKQotICAgICAgICB2ZXJp
bmZvID0gcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKQotICAgICAgICBtc2cgPSAicGxhdGZvcm0g
JXMgLS0gUHl0aG9uICVzIiAlIChzeXMucGxhdGZvcm0sIHZlcmluZm8pCi0gICAgICAgIGlmIGhh
c2F0dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKToKLSAgICAgICAgICAgIHZlcmluZm8gPSAi
LiIuam9pbihtYXAoc3RyLCBzeXMucHlweV92ZXJzaW9uX2luZm9bOjNdKSkKLSAgICAgICAgICAg
IG1zZyArPSAiW3B5cHktJXMtJXNdIiAlICh2ZXJpbmZvLCBzeXMucHlweV92ZXJzaW9uX2luZm9b
M10pCi0gICAgICAgIG1zZyArPSAiLCBweXRlc3QtJXMsIHB5LSVzLCBwbHVnZ3ktJXMiICUgKAot
ICAgICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3ZlcnNpb25fXywgcGx1Z2d5
Ll9fdmVyc2lvbl9fKQotICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA+IDAgb3Igc2VsZi5jb25m
aWcub3B0aW9uLmRlYnVnIG9yIFwKLSAgICAgICAgICAgZ2V0YXR0cihzZWxmLmNvbmZpZy5vcHRp
b24sICdwYXN0ZWJpbicsIE5vbmUpOgotICAgICAgICAgICAgbXNnICs9ICIgLS0gIiArIHN0cihz
eXMuZXhlY3V0YWJsZSkKLSAgICAgICAgc2VsZi53cml0ZV9saW5lKG1zZykKLSAgICAgICAgbGlu
ZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfaGVhZGVyKAotICAgICAgICAgICAg
Y29uZmlnPXNlbGYuY29uZmlnLCBzdGFydGRpcj1zZWxmLnN0YXJ0ZGlyKQotICAgICAgICBzZWxm
Ll93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9ob29rcyhsaW5lcykKLQotICAgIGRlZiBfd3JpdGVf
cmVwb3J0X2xpbmVzX2Zyb21faG9va3Moc2VsZiwgbGluZXMpOgotICAgICAgICBsaW5lcy5yZXZl
cnNlKCkKLSAgICAgICAgZm9yIGxpbmUgaW4gZmxhdHRlbihsaW5lcyk6Ci0gICAgICAgICAgICBz
ZWxmLndyaXRlX2xpbmUobGluZSkKLQotICAgIGRlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihzZWxm
LCBjb25maWcpOgotICAgICAgICBpbmlmaWxlID0gIiIKLSAgICAgICAgaWYgY29uZmlnLmluaWZp
bGU6Ci0gICAgICAgICAgICBpbmlmaWxlID0gIiAiICsgY29uZmlnLnJvb3RkaXIuYmVzdHJlbHBh
dGgoY29uZmlnLmluaWZpbGUpCi0gICAgICAgIGxpbmVzID0gWyJyb290ZGlyOiAlcywgaW5pZmls
ZTolcyIgJSAoY29uZmlnLnJvb3RkaXIsIGluaWZpbGUpXQotCi0gICAgICAgIHBsdWdpbmluZm8g
PSBjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpCi0gICAgICAgIGlm
IHBsdWdpbmluZm86Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgKLSAgICAgICAgICAgICAg
ICAicGx1Z2luczogJXMiICUgIiwgIi5qb2luKF9wbHVnaW5fbmFtZXZlcnNpb25zKHBsdWdpbmlu
Zm8pKSkKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25f
ZmluaXNoKHNlbGYsIHNlc3Npb24pOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24uY29s
bGVjdG9ubHk6Ci0gICAgICAgICAgICBzZWxmLl9wcmludGNvbGxlY3RlZGl0ZW1zKHNlc3Npb24u
aXRlbXMpCi0gICAgICAgICAgICBpZiBzZWxmLnN0YXRzLmdldCgnZmFpbGVkJyk6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fdHcuc2VwKCIhIiwgImNvbGxlY3Rpb24gZmFpbHVyZXMiKQotICAgICAg
ICAgICAgICAgIGZvciByZXAgaW4gc2VsZi5zdGF0cy5nZXQoJ2ZhaWxlZCcpOgotICAgICAgICAg
ICAgICAgICAgICByZXAudG90ZXJtaW5hbChzZWxmLl90dykKLSAgICAgICAgICAgICAgICByZXR1
cm4gMQotICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgbGluZXMgPSBzZWxmLmNvbmZpZy5o
b29rLnB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaCgKLSAgICAgICAgICAgIGNvbmZpZz1z
ZWxmLmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFydGRpciwgaXRlbXM9c2Vzc2lvbi5pdGVtcykK
LSAgICAgICAgc2VsZi5fd3JpdGVfcmVwb3J0X2xpbmVzX2Zyb21faG9va3MobGluZXMpCi0KLSAg
ICBkZWYgX3ByaW50Y29sbGVjdGVkaXRlbXMoc2VsZiwgaXRlbXMpOgotICAgICAgICAjIHRvIHBy
aW50IG91dCBpdGVtcyBhbmQgdGhlaXIgcGFyZW50IGNvbGxlY3RvcnMKLSAgICAgICAgIyB3ZSB0
YWtlIGNhcmUgdG8gbGVhdmUgb3V0IEluc3RhbmNlcyBha2EgKCkKLSAgICAgICAgIyBiZWNhdXNl
IGxhdGVyIHZlcnNpb25zIGFyZSBnb2luZyB0byBnZXQgcmlkIG9mIHRoZW0gYW55d2F5Ci0gICAg
ICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgMDoKLSAgICAgICAgICAgIGlmIHNl
bGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgLTE6Ci0gICAgICAgICAgICAgICAgY291bnRzID0g
e30KLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAgICAgICAg
ICAgbmFtZSA9IGl0ZW0ubm9kZWlkLnNwbGl0KCc6OicsIDEpWzBdCi0gICAgICAgICAgICAgICAg
ICAgIGNvdW50c1tuYW1lXSA9IGNvdW50cy5nZXQobmFtZSwgMCkgKyAxCi0gICAgICAgICAgICAg
ICAgZm9yIG5hbWUsIGNvdW50IGluIHNvcnRlZChjb3VudHMuaXRlbXMoKSk6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzOiAlZCIgJSAobmFtZSwgY291bnQpKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAg
ICAgICAgICAgICAgbm9kZWlkID0gaXRlbS5ub2RlaWQKLSAgICAgICAgICAgICAgICAgICAgbm9k
ZWlkID0gbm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCi0gICAgICAgICAgICAgICAgICAg
IHNlbGYuX3R3LmxpbmUobm9kZWlkKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHN0YWNr
ID0gW10KLSAgICAgICAgaW5kZW50ID0gIiIKLSAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6Ci0g
ICAgICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGl0ZW0ubGlzdGNoYWluKClbMTpdICAjIHN0
cmlwIHJvb3Qgbm9kZQotICAgICAgICAgICAgd2hpbGUgc3RhY2s6Ci0gICAgICAgICAgICAgICAg
aWYgc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOmxlbihzdGFjayldOgotICAgICAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgpCi0gICAgICAgICAgICBm
b3IgY29sIGluIG5lZWRlZF9jb2xsZWN0b3JzW2xlbihzdGFjayk6XToKLSAgICAgICAgICAgICAg
ICBzdGFjay5hcHBlbmQoY29sKQotICAgICAgICAgICAgICAgICMgaWYgY29sLm5hbWUgPT0gIigp
IjoKLSAgICAgICAgICAgICAgICAjICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgaW5kZW50
ID0gKGxlbihzdGFjaykgLSAxKSAqICIgICIKLSAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5l
KCIlcyVzIiAlIChpbmRlbnQsIGNvbCkpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlbGYsIGV4aXRzdGF0dXMp
OgotICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAgICAgb3V0Y29tZS5nZXRfcmVzdWx0KCkK
LSAgICAgICAgc2VsZi5fdHcubGluZSgiIikKLSAgICAgICAgc3VtbWFyeV9leGl0X2NvZGVzID0g
KAotICAgICAgICAgICAgRVhJVF9PSywgRVhJVF9URVNUU0ZBSUxFRCwgRVhJVF9JTlRFUlJVUFRF
RCwgRVhJVF9VU0FHRUVSUk9SLAotICAgICAgICAgICAgRVhJVF9OT1RFU1RTQ09MTEVDVEVEKQot
ICAgICAgICBpZiBleGl0c3RhdHVzIGluIHN1bW1hcnlfZXhpdF9jb2RlczoKLSAgICAgICAgICAg
IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRl
cj1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleGl0c3RhdHVzPWV4aXRzdGF0dXMpCi0gICAgICAgICAgICBzZWxmLnN1bW1hcnlfZXJy
b3JzKCkKLSAgICAgICAgICAgIHNlbGYuc3VtbWFyeV9mYWlsdXJlcygpCi0gICAgICAgICAgICBz
ZWxmLnN1bW1hcnlfd2FybmluZ3MoKQotICAgICAgICAgICAgc2VsZi5zdW1tYXJ5X3Bhc3Nlcygp
Ci0gICAgICAgIGlmIGV4aXRzdGF0dXMgPT0gRVhJVF9JTlRFUlJVUFRFRDoKLSAgICAgICAgICAg
IHNlbGYuX3JlcG9ydF9rZXlib2FyZGludGVycnVwdCgpCi0gICAgICAgICAgICBkZWwgc2VsZi5f
a2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbwotICAgICAgICBzZWxmLnN1bW1hcnlfZGVzZWxlY3RlZCgp
Ci0gICAgICAgIHNlbGYuc3VtbWFyeV9zdGF0cygpCi0KLSAgICBkZWYgcHl0ZXN0X2tleWJvYXJk
X2ludGVycnVwdChzZWxmLCBleGNpbmZvKToKLSAgICAgICAgc2VsZi5fa2V5Ym9hcmRpbnRlcnJ1
cHRfbWVtbyA9IGV4Y2luZm8uZ2V0cmVwcihmdW5jYXJncz1UcnVlKQotCi0gICAgZGVmIHB5dGVz
dF91bmNvbmZpZ3VyZShzZWxmKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX2tleWJvYXJk
aW50ZXJydXB0X21lbW8nKToKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9rZXlib2FyZGludGVy
cnVwdCgpCi0KLSAgICBkZWYgX3JlcG9ydF9rZXlib2FyZGludGVycnVwdChzZWxmKToKLSAgICAg
ICAgZXhjcmVwciA9IHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8KLSAgICAgICAgbXNnID0g
ZXhjcmVwci5yZXByY3Jhc2gubWVzc2FnZQotICAgICAgICBzZWxmLndyaXRlX3NlcCgiISIsIG1z
ZykKLSAgICAgICAgaWYgIktleWJvYXJkSW50ZXJydXB0IiBpbiBtc2c6Ci0gICAgICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgotICAgICAgICAgICAgICAgIGV4Y3JlcHIu
dG90ZXJtaW5hbChzZWxmLl90dykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fdHcubGluZSgidG8gc2hvdyBhIGZ1bGwgdHJhY2ViYWNrIG9uIEtleWJvYXJkSW50ZXJy
dXB0IHVzZSAtLWZ1bGx0cmFjZSIsIHllbGxvdz1UcnVlKQotICAgICAgICAgICAgICAgIGV4Y3Jl
cHIucmVwcmNyYXNoLnRvdGVybWluYWwoc2VsZi5fdHcpCi0KLSAgICBkZWYgX2xvY2F0aW9ubGlu
ZShzZWxmLCBub2RlaWQsIGZzcGF0aCwgbGluZW5vLCBkb21haW4pOgotICAgICAgICBkZWYgbWty
ZWwobm9kZWlkKToKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLmNvbmZpZy5jd2RfcmVsYXRpdmVf
bm9kZWlkKG5vZGVpZCkKLSAgICAgICAgICAgIGlmIGRvbWFpbiBhbmQgbGluZS5lbmRzd2l0aChk
b21haW4pOgotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lWzotbGVuKGRvbWFpbildCi0gICAg
ICAgICAgICAgICAgdmFsdWVzID0gZG9tYWluLnNwbGl0KCJbIikKLSAgICAgICAgICAgICAgICB2
YWx1ZXNbMF0gPSB2YWx1ZXNbMF0ucmVwbGFjZSgnLicsICc6OicpICAjIGRvbid0IHJlcGxhY2Ug
Jy4nIGluIHBhcmFtcwotICAgICAgICAgICAgICAgIGxpbmUgKz0gIlsiLmpvaW4odmFsdWVzKQot
ICAgICAgICAgICAgcmV0dXJuIGxpbmUKLSAgICAgICAgIyBjb2xsZWN0X2ZzcGF0aCBjb21lcyBm
cm9tIHRlc3RpZCB3aGljaCBoYXMgYSAiLyItbm9ybWFsaXplZCBwYXRoCi0KLSAgICAgICAgaWYg
ZnNwYXRoOgotICAgICAgICAgICAgcmVzID0gbWtyZWwobm9kZWlkKS5yZXBsYWNlKCI6OigpIiwg
IiIpICAjIHBhcmVucy1ub3JtYWxpemF0aW9uCi0gICAgICAgICAgICBpZiBub2RlaWQuc3BsaXQo
Ijo6IilbMF0gIT0gZnNwYXRoLnJlcGxhY2UoIlxcIiwgbm9kZXMuU0VQKToKLSAgICAgICAgICAg
ICAgICByZXMgKz0gIiA8LSAiICsgc2VsZi5zdGFydGRpci5iZXN0cmVscGF0aChmc3BhdGgpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXMgPSAiW2xvY2F0aW9uXSIKLSAgICAgICAgcmV0
dXJuIHJlcyArICIgIgotCi0gICAgZGVmIF9nZXRmYWlsdXJlaGVhZGxpbmUoc2VsZiwgcmVwKToK
LSAgICAgICAgaWYgaGFzYXR0cihyZXAsICdsb2NhdGlvbicpOgotICAgICAgICAgICAgZnNwYXRo
LCBsaW5lbm8sIGRvbWFpbiA9IHJlcC5sb2NhdGlvbgotICAgICAgICAgICAgcmV0dXJuIGRvbWFp
bgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuICJ0ZXN0IHNlc3Npb24iICAjIFhY
WD8KLQotICAgIGRlZiBfZ2V0Y3Jhc2hsaW5lKHNlbGYsIHJlcCk6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBzdHIocmVwLmxvbmdyZXByLnJlcHJjcmFzaCkKLSAgICAgICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJl
dHVybiBzdHIocmVwLmxvbmdyZXByKVs6NTBdCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICIiCi0KLSAgICAjCi0gICAgIyBzdW1tYXJp
ZXMgZm9yIHNlc3Npb25maW5pc2gKLSAgICAjCi0gICAgZGVmIGdldHJlcG9ydHMoc2VsZiwgbmFt
ZSk6Ci0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciB4IGluIHNlbGYuc3RhdHMuZ2V0
KG5hbWUsIFtdKToKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHgsICdfcGRic2hvd24nKToK
LSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHgpCi0gICAgICAgIHJldHVybiB2YWx1ZXMK
LQotICAgIGRlZiBzdW1tYXJ5X3dhcm5pbmdzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmhhc29w
dCgidyIpOgotICAgICAgICAgICAgYWxsX3dhcm5pbmdzID0gc2VsZi5zdGF0cy5nZXQoIndhcm5p
bmdzIikKLSAgICAgICAgICAgIGlmIG5vdCBhbGxfd2FybmluZ3M6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuCi0KLSAgICAgICAgICAgIGdyb3VwZWQgPSBpdGVydG9vbHMuZ3JvdXBieShhbGxfd2Fy
bmluZ3MsIGtleT1sYW1iZGEgd3I6IHdyLmdldF9sb2NhdGlvbihzZWxmLmNvbmZpZykpCi0KLSAg
ICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIndhcm5pbmdzIHN1bW1hcnkiLCB5ZWxsb3c9
VHJ1ZSwgYm9sZD1GYWxzZSkKLSAgICAgICAgICAgIGZvciBsb2NhdGlvbiwgd2FybmluZ19yZWNv
cmRzIGluIGdyb3VwZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZShzdHIobG9jYXRp
b24pIG9yICc8dW5kZXRlcm1pbmVkIGxvY2F0aW9uPicpCi0gICAgICAgICAgICAgICAgZm9yIHcg
aW4gd2FybmluZ19yZWNvcmRzOgotICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IHcubWVzc2Fn
ZS5zcGxpdGxpbmVzKCkKLSAgICAgICAgICAgICAgICAgICAgaW5kZW50ZWQgPSAnXG4nLmpvaW4o
JyAgJyArIHggZm9yIHggaW4gbGluZXMpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3Lmxp
bmUoaW5kZW50ZWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCi0gICAgICAgICAg
ICBzZWxmLl90dy5saW5lKCctLSBEb2NzOiBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0
L3dhcm5pbmdzLmh0bWwnKQotCi0gICAgZGVmIHN1bW1hcnlfcGFzc2VzKHNlbGYpOgotICAgICAg
ICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgotICAgICAgICAgICAgaWYg
c2VsZi5oYXNvcHQoIlAiKToKLSAgICAgICAgICAgICAgICByZXBvcnRzID0gc2VsZi5nZXRyZXBv
cnRzKCdwYXNzZWQnKQotICAgICAgICAgICAgICAgIGlmIG5vdCByZXBvcnRzOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJQ
QVNTRVMiKQotICAgICAgICAgICAgICAgIGZvciByZXAgaW4gcmVwb3J0czoKLSAgICAgICAgICAg
ICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJlcCkKLSAgICAgICAgICAg
ICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2cpCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKLQotICAgIGRlZiBwcmludF90ZWFyZG93bl9zZWN0aW9u
cyhzZWxmLCByZXApOgotICAgICAgICBmb3Igc2VjbmFtZSwgY29udGVudCBpbiByZXAuc2VjdGlv
bnM6Ci0gICAgICAgICAgICBpZiAndGVhcmRvd24nIGluIHNlY25hbWU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fdHcuc2VwKCctJywgc2VjbmFtZSkKLSAgICAgICAgICAgICAgICBpZiBjb250ZW50
Wy0xOl0gPT0gIlxuIjoKLSAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGNvbnRlbnRbOi0x
XQotICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoY29udGVudCkKLQotICAgIGRlZiBzdW1t
YXJ5X2ZhaWx1cmVzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHls
ZSAhPSAibm8iOgotICAgICAgICAgICAgcmVwb3J0cyA9IHNlbGYuZ2V0cmVwb3J0cygnZmFpbGVk
JykKLSAgICAgICAgICAgIGlmIG5vdCByZXBvcnRzOgotICAgICAgICAgICAgICAgIHJldHVybgot
ICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiRkFJTFVSRVMiKQotICAgICAgICAgICAg
Zm9yIHJlcCBpbiByZXBvcnRzOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlv
bi50YnN0eWxlID09ICJsaW5lIjoKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX2dl
dGNyYXNobGluZShyZXApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZShsaW5l
KQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYu
X2dldGZhaWx1cmVoZWFkbGluZShyZXApCi0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsn
cmVkJzogVHJ1ZSwgJ2JvbGQnOiBUcnVlfQotICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRl
X3NlcCgiXyIsIG1zZywgKiptYXJrdXApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX291dHJl
cF9zdW1tYXJ5KHJlcCkKLSAgICAgICAgICAgICAgICAgICAgZm9yIHJlcG9ydCBpbiBzZWxmLmdl
dHJlcG9ydHMoJycpOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVwb3J0Lm5vZGVpZCA9
PSByZXAubm9kZWlkIGFuZCByZXBvcnQud2hlbiA9PSAndGVhcmRvd24nOgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfdGVhcmRvd25fc2VjdGlvbnMocmVwb3J0KQotCi0g
ICAgZGVmIHN1bW1hcnlfZXJyb3JzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRp
b24udGJzdHlsZSAhPSAibm8iOgotICAgICAgICAgICAgcmVwb3J0cyA9IHNlbGYuZ2V0cmVwb3J0
cygnZXJyb3InKQotICAgICAgICAgICAgaWYgbm90IHJlcG9ydHM6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJFUlJPUlMiKQotICAgICAg
ICAgICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzWydlcnJvciddOgotICAgICAgICAgICAgICAgIG1z
ZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCi0gICAgICAgICAgICAgICAgaWYgbm90
IGhhc2F0dHIocmVwLCAnd2hlbicpOgotICAgICAgICAgICAgICAgICAgICAjIGNvbGxlY3QKLSAg
ICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGNvbGxlY3RpbmcgIiArIG1zZwotICAgICAg
ICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInNldHVwIjoKLSAgICAgICAgICAgICAgICAgICAg
bXNnID0gIkVSUk9SIGF0IHNldHVwIG9mICIgKyBtc2cKLSAgICAgICAgICAgICAgICBlbGlmIHJl
cC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJFUlJPUiBh
dCB0ZWFyZG93biBvZiAiICsgbXNnCi0gICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8i
LCBtc2cpCi0gICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1hcnkocmVwKQotCi0gICAg
ZGVmIF9vdXRyZXBfc3VtbWFyeShzZWxmLCByZXApOgotICAgICAgICByZXAudG90ZXJtaW5hbChz
ZWxmLl90dykKLSAgICAgICAgZm9yIHNlY25hbWUsIGNvbnRlbnQgaW4gcmVwLnNlY3Rpb25zOgot
ICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCItIiwgc2VjbmFtZSkKLSAgICAgICAgICAgIGlmIGNv
bnRlbnRbLTE6XSA9PSAiXG4iOgotICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50Wzot
MV0KLSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoY29udGVudCkKLQotICAgIGRlZiBzdW1tYXJ5
X3N0YXRzKHNlbGYpOgotICAgICAgICBzZXNzaW9uX2R1cmF0aW9uID0gdGltZS50aW1lKCkgLSBz
ZWxmLl9zZXNzaW9uc3RhcnR0aW1lCi0gICAgICAgIChsaW5lLCBjb2xvcikgPSBidWlsZF9zdW1t
YXJ5X3N0YXRzX2xpbmUoc2VsZi5zdGF0cykKLSAgICAgICAgbXNnID0gIiVzIGluICUuMmYgc2Vj
b25kcyIgJSAobGluZSwgc2Vzc2lvbl9kdXJhdGlvbikKLSAgICAgICAgbWFya3VwID0ge2NvbG9y
OiBUcnVlLCAnYm9sZCc6IFRydWV9Ci0KLSAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPj0gMDoK
LSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgbXNnLCAqKm1hcmt1cCkKLSAgICAgICAg
aWYgc2VsZi52ZXJib3NpdHkgPT0gLTE6Ci0gICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobXNn
LCAqKm1hcmt1cCkKLQotICAgIGRlZiBzdW1tYXJ5X2Rlc2VsZWN0ZWQoc2VsZik6Ci0gICAgICAg
IGlmICdkZXNlbGVjdGVkJyBpbiBzZWxmLnN0YXRzOgotICAgICAgICAgICAgc2VsZi53cml0ZV9z
ZXAoIj0iLCAiJWQgdGVzdHMgZGVzZWxlY3RlZCIgJSAoCi0gICAgICAgICAgICAgICAgbGVuKHNl
bGYuc3RhdHNbJ2Rlc2VsZWN0ZWQnXSkpLCBib2xkPVRydWUpCi0KLQotZGVmIHJlcHJfcHl0aG9u
dmVyc2lvbih2PU5vbmUpOgotICAgIGlmIHYgaXMgTm9uZToKLSAgICAgICAgdiA9IHN5cy52ZXJz
aW9uX2luZm8KLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiAiJXMuJXMuJXMtJXMtJXMiICUgdgot
ICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgcmV0dXJuIHN0cih2
KQotCi0KLWRlZiBmbGF0dGVuKHZhbHVlcyk6Ci0gICAgZm9yIHggaW4gdmFsdWVzOgotICAgICAg
ICBpZiBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkpOgotICAgICAgICAgICAgZm9yIHkgaW4g
ZmxhdHRlbih4KToKLSAgICAgICAgICAgICAgICB5aWVsZCB5Ci0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB5aWVsZCB4Ci0KLQotZGVmIGJ1aWxkX3N1bW1hcnlfc3RhdHNfbGluZShzdGF0cyk6
Ci0gICAga2V5cyA9ICgiZmFpbGVkIHBhc3NlZCBza2lwcGVkIGRlc2VsZWN0ZWQgIgotICAgICAg
ICAgICAgInhmYWlsZWQgeHBhc3NlZCB3YXJuaW5ncyBlcnJvciIpLnNwbGl0KCkKLSAgICB1bmtu
b3duX2tleV9zZWVuID0gRmFsc2UKLSAgICBmb3Iga2V5IGluIHN0YXRzLmtleXMoKToKLSAgICAg
ICAgaWYga2V5IG5vdCBpbiBrZXlzOgotICAgICAgICAgICAgaWYga2V5OiAgIyBzZXR1cC90ZWFy
ZG93biByZXBvcnRzIGhhdmUgYW4gZW1wdHkga2V5LCBpZ25vcmUgdGhlbQotICAgICAgICAgICAg
ICAgIGtleXMuYXBwZW5kKGtleSkKLSAgICAgICAgICAgICAgICB1bmtub3duX2tleV9zZWVuID0g
VHJ1ZQotICAgIHBhcnRzID0gW10KLSAgICBmb3Iga2V5IGluIGtleXM6Ci0gICAgICAgIHZhbCA9
IHN0YXRzLmdldChrZXksIE5vbmUpCi0gICAgICAgIGlmIHZhbDoKLSAgICAgICAgICAgIHBhcnRz
LmFwcGVuZCgiJWQgJXMiICUgKGxlbih2YWwpLCBrZXkpKQotCi0gICAgaWYgcGFydHM6Ci0gICAg
ICAgIGxpbmUgPSAiLCAiLmpvaW4ocGFydHMpCi0gICAgZWxzZToKLSAgICAgICAgbGluZSA9ICJu
byB0ZXN0cyByYW4iCi0KLSAgICBpZiAnZmFpbGVkJyBpbiBzdGF0cyBvciAnZXJyb3InIGluIHN0
YXRzOgotICAgICAgICBjb2xvciA9ICdyZWQnCi0gICAgZWxpZiAnd2FybmluZ3MnIGluIHN0YXRz
IG9yIHVua25vd25fa2V5X3NlZW46Ci0gICAgICAgIGNvbG9yID0gJ3llbGxvdycKLSAgICBlbGlm
ICdwYXNzZWQnIGluIHN0YXRzOgotICAgICAgICBjb2xvciA9ICdncmVlbicKLSAgICBlbHNlOgot
ICAgICAgICBjb2xvciA9ICd5ZWxsb3cnCi0KLSAgICByZXR1cm4gKGxpbmUsIGNvbG9yKQotCi0K
LWRlZiBfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZvKToKLSAgICB2YWx1ZXMgPSBbXQot
ICAgIGZvciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5mbzoKLSAgICAgICAgIyBnZXRzIHVzIG5h
bWUgYW5kIHZlcnNpb24hCi0gICAgICAgIG5hbWUgPSAne2Rpc3QucHJvamVjdF9uYW1lfS17ZGlz
dC52ZXJzaW9ufScuZm9ybWF0KGRpc3Q9ZGlzdCkKLSAgICAgICAgIyBxdWVzdGlvbmFibGUgY29u
dmVuaWVuY2UsIGJ1dCBpdCBrZWVwcyB0aGluZ3Mgc2hvcnQKLSAgICAgICAgaWYgbmFtZS5zdGFy
dHN3aXRoKCJweXRlc3QtIik6Ci0gICAgICAgICAgICBuYW1lID0gbmFtZVs3Ol0KLSAgICAgICAg
IyB3ZSBkZWNpZGVkIHRvIHByaW50IHB5dGhvbiBwYWNrYWdlIG5hbWVzCi0gICAgICAgICMgdGhl
eSBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHBsdWdpbgotICAgICAgICBpZiBuYW1lIG5vdCBpbiB2
YWx1ZXM6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKG5hbWUpCi0gICAgcmV0dXJuIHZhbHVl
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L3RtcGRpci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGExYjAz
MjIzN2FmYmY0NjhjYzBlMzQ5ZDJiMjYyYjkyODNlOTc4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weQor
KysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0iIiIgc3VwcG9ydCBmb3IgcHJvdmlkaW5n
IHRlbXBvcmFyeSBkaXJlY3RvcmllcyB0byB0ZXN0IGZ1bmN0aW9ucy4gICIiIgotZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgot
Ci1pbXBvcnQgcmUKLQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IHB5Ci1mcm9tIF9weXRlc3QubW9u
a2V5cGF0Y2ggaW1wb3J0IE1vbmtleVBhdGNoCi0KLQotY2xhc3MgVGVtcGRpckZhY3Rvcnk6Ci0g
ICAgIiIiRmFjdG9yeSBmb3IgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVuZGVyIHRoZSBjb21tb24g
YmFzZSB0ZW1wIGRpcmVjdG9yeS4KLQotICAgIFRoZSBiYXNlIGRpcmVjdG9yeSBjYW4gYmUgY29u
ZmlndXJlZCB1c2luZyB0aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9uLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmln
Ci0gICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2UuZ2V0KCJ0bXBkaXIiKQotCi0gICAg
ZGVmIGVuc3VyZXRlbXAoc2VsZiwgc3RyaW5nLCBkaXI9MSk6Ci0gICAgICAgICIiIiAoZGVwcmVj
YXRlZCkgcmV0dXJuIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCB3aXRoCi0gICAgICAgICAgICB0
aGUgZ2l2ZW4gc3RyaW5nIGFzIHRoZSB0cmFpbGluZyBwYXJ0LiAgSXQgaXMgdXN1YWxseQotICAg
ICAgICAgICAgYmV0dGVyIHRvIHVzZSB0aGUgJ3RtcGRpcicgZnVuY3Rpb24gYXJndW1lbnQgd2hp
Y2gKLSAgICAgICAgICAgIHByb3ZpZGVzIGFuIGVtcHR5IHVuaXF1ZS1wZXItdGVzdC1pbnZvY2F0
aW9uIGRpcmVjdG9yeQotICAgICAgICAgICAgYW5kIGlzIGd1YXJhbnRlZWQgdG8gYmUgZW1wdHku
Ci0gICAgICAgICIiIgotICAgICAgICAjIHB5LmxvZy5fYXBpd2FybigiPjEuMSIsICJ1c2UgdG1w
ZGlyIGZ1bmN0aW9uIGFyZ3VtZW50IikKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0YmFzZXRlbXAo
KS5lbnN1cmUoc3RyaW5nLCBkaXI9ZGlyKQotCi0gICAgZGVmIG1rdGVtcChzZWxmLCBiYXNlbmFt
ZSwgbnVtYmVyZWQ9VHJ1ZSk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIHN1YmRpcmVjdG9yeSBvZiB0
aGUgYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGFuZCByZXR1cm4gaXQuCi0gICAgICAgIElmIGBg
bnVtYmVyZWRgYCwgZW5zdXJlIHRoZSBkaXJlY3RvcnkgaXMgdW5pcXVlIGJ5IGFkZGluZyBhIG51
bWJlcgotICAgICAgICBwcmVmaXggZ3JlYXRlciB0aGFuIGFueSBleGlzdGluZyBvbmUuCi0gICAg
ICAgICIiIgotICAgICAgICBiYXNldGVtcCA9IHNlbGYuZ2V0YmFzZXRlbXAoKQotICAgICAgICBp
ZiBub3QgbnVtYmVyZWQ6Ci0gICAgICAgICAgICBwID0gYmFzZXRlbXAubWtkaXIoYmFzZW5hbWUp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbC5tYWtlX251bWJl
cmVkX2RpcihwcmVmaXg9YmFzZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrZWVwPTAsIHJvb3RkaXI9YmFzZXRlbXAsIGxvY2tfdGltZW91dD1O
b25lKQotICAgICAgICBzZWxmLnRyYWNlKCJta3RlbXAiLCBwKQotICAgICAgICByZXR1cm4gcAot
Ci0gICAgZGVmIGdldGJhc2V0ZW1wKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGJhc2UgdGVt
cG9yYXJ5IGRpcmVjdG9yeS4gIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9iYXNldGVtcAotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAg
ICBiYXNldGVtcCA9IHNlbGYuY29uZmlnLm9wdGlvbi5iYXNldGVtcAotICAgICAgICAgICAgaWYg
YmFzZXRlbXA6Ci0gICAgICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2FsKGJhc2V0
ZW1wKQotICAgICAgICAgICAgICAgIGlmIGJhc2V0ZW1wLmNoZWNrKCk6Ci0gICAgICAgICAgICAg
ICAgICAgIGJhc2V0ZW1wLnJlbW92ZSgpCi0gICAgICAgICAgICAgICAgYmFzZXRlbXAubWtkaXIo
KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB0ZW1wcm9vdCA9IHB5LnBhdGgu
bG9jYWwuZ2V0X3RlbXByb290KCkKLSAgICAgICAgICAgICAgICB1c2VyID0gZ2V0X3VzZXIoKQot
ICAgICAgICAgICAgICAgIGlmIHVzZXI6Ci0gICAgICAgICAgICAgICAgICAgICMgdXNlIGEgc3Vi
LWRpcmVjdG9yeSBpbiB0aGUgdGVtcHJvb3QgdG8gc3BlZWQtdXAKLSAgICAgICAgICAgICAgICAg
ICAgIyBtYWtlX251bWJlcmVkX2RpcigpIGNhbGwKLSAgICAgICAgICAgICAgICAgICAgcm9vdGRp
ciA9IHRlbXByb290LmpvaW4oJ3B5dGVzdC1vZi0lcycgJSB1c2VyKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSB0ZW1wcm9vdAotICAgICAgICAg
ICAgICAgIHJvb3RkaXIuZW5zdXJlKGRpcj0xKQotICAgICAgICAgICAgICAgIGJhc2V0ZW1wID0g
cHkucGF0aC5sb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J3B5dGVzdC0nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290
ZGlyPXJvb3RkaXIpCi0gICAgICAgICAgICBzZWxmLl9iYXNldGVtcCA9IHQgPSBiYXNldGVtcC5y
ZWFscGF0aCgpCi0gICAgICAgICAgICBzZWxmLnRyYWNlKCJuZXcgYmFzZXRlbXAiLCB0KQotICAg
ICAgICAgICAgcmV0dXJuIHQKLQotICAgIGRlZiBmaW5pc2goc2VsZik6Ci0gICAgICAgIHNlbGYu
dHJhY2UoImZpbmlzaCIpCi0KLQotZGVmIGdldF91c2VyKCk6Ci0gICAgIiIiUmV0dXJuIHRoZSBj
dXJyZW50IHVzZXIgbmFtZSwgb3IgTm9uZSBpZiBnZXR1c2VyKCkgZG9lcyBub3Qgd29yawotICAg
IGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50IChzZWUgIzEwMTApLgotICAgICIiIgotICAgIGlt
cG9ydCBnZXRwYXNzCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZ2V0cGFzcy5nZXR1c2VyKCkK
LSAgICBleGNlcHQgKEltcG9ydEVycm9yLCBLZXlFcnJvcik6Ci0gICAgICAgIHJldHVybiBOb25l
Ci0KLQotIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1UZW1wZGlySGFuZGxlciA9IFRlbXBkaXJG
YWN0b3J5Ci0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICAiIiJDcmVhdGUg
YSBUZW1wZGlyRmFjdG9yeSBhbmQgYXR0YWNoIGl0IHRvIHRoZSBjb25maWcgb2JqZWN0LgotCi0g
ICAgVGhpcyBpcyB0byBjb21wbHkgd2l0aCBleGlzdGluZyBwbHVnaW5zIHdoaWNoIGV4cGVjdCB0
aGUgaGFuZGxlciB0byBiZQotICAgIGF2YWlsYWJsZSBhdCBweXRlc3RfY29uZmlndXJlIHRpbWUs
IGJ1dCBpZGVhbGx5IHNob3VsZCBiZSBtb3ZlZCBlbnRpcmVseQotICAgIHRvIHRoZSB0bXBkaXJf
ZmFjdG9yeSBzZXNzaW9uIGZpeHR1cmUuCi0gICAgIiIiCi0gICAgbXAgPSBNb25rZXlQYXRjaCgp
Ci0gICAgdCA9IFRlbXBkaXJGYWN0b3J5KGNvbmZpZykKLSAgICBjb25maWcuX2NsZWFudXAuZXh0
ZW5kKFttcC51bmRvLCB0LmZpbmlzaF0pCi0gICAgbXAuc2V0YXR0cihjb25maWcsICdfdG1wZGly
aGFuZGxlcicsIHQsIHJhaXNpbmc9RmFsc2UpCi0gICAgbXAuc2V0YXR0cihweXRlc3QsICdlbnN1
cmV0ZW1wJywgdC5lbnN1cmV0ZW1wLCByYWlzaW5nPUZhbHNlKQotCi0KLUBweXRlc3QuZml4dHVy
ZShzY29wZT0nc2Vzc2lvbicpCi1kZWYgdG1wZGlyX2ZhY3RvcnkocmVxdWVzdCk6Ci0gICAgIiIi
UmV0dXJuIGEgVGVtcGRpckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCi0g
ICAgIiIiCi0gICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLl90bXBkaXJoYW5kbGVyCi0KLQotQHB5
dGVzdC5maXh0dXJlCi1kZWYgdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKLSAgICAi
IiJSZXR1cm4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGggb2JqZWN0Ci0gICAgd2hpY2ggaXMg
dW5pcXVlIHRvIGVhY2ggdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLAotICAgIGNyZWF0ZWQgYXMg
YSBzdWIgZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRlbXBvcmFyeQotICAgIGRpcmVjdG9yeS4gIFRo
ZSByZXR1cm5lZCBvYmplY3QgaXMgYSBgcHkucGF0aC5sb2NhbGBfCi0gICAgcGF0aCBvYmplY3Qu
Ci0gICAgIiIiCi0gICAgbmFtZSA9IHJlcXVlc3Qubm9kZS5uYW1lCi0gICAgbmFtZSA9IHJlLnN1
YihyIltcV10iLCAiXyIsIG5hbWUpCi0gICAgTUFYVkFMID0gMzAKLSAgICBpZiBsZW4obmFtZSkg
PiBNQVhWQUw6Ci0gICAgICAgIG5hbWUgPSBuYW1lWzpNQVhWQUxdCi0gICAgeCA9IHRtcGRpcl9m
YWN0b3J5Lm1rdGVtcChuYW1lLCBudW1iZXJlZD1UcnVlKQotICAgIHJldHVybiB4CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RkYjM5NDk1ZTM5
NzAzNDRiNGE2ZDhmOTJhODY4MDg3YjVmZWYyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMjM3ICswLDAgQEAKLSIiIiBkaXNjb3ZlcnkgYW5kIHJ1bm5pbmcgb2Yg
c3RkLWxpYnJhcnkgInVuaXR0ZXN0IiBzdHlsZSB0ZXN0cy4gIiIiCi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9y
dCBzeXMKLWltcG9ydCB0cmFjZWJhY2sKLQotIyBmb3IgdHJhbnNmZXJyaW5nIG1hcmtlcnMKLWlt
cG9ydCBfcHl0ZXN0Ll9jb2RlCi1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAot
ZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCB4ZmFpbAotZnJvbSBfcHl0
ZXN0LnB5dGhvbiBpbXBvcnQgdHJhbnNmZXJfbWFya2VycywgQ2xhc3MsIE1vZHVsZSwgRnVuY3Rp
b24KLQotCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9i
aik6Ci0gICAgIyBoYXMgdW5pdHRlc3QgYmVlbiBpbXBvcnRlZCBhbmQgaXMgb2JqIGEgc3ViY2xh
c3Mgb2YgaXRzIFRlc3RDYXNlPwotICAgIHRyeToKLSAgICAgICAgaWYgbm90IGlzc3ViY2xhc3Mo
b2JqLCBzeXMubW9kdWxlc1sidW5pdHRlc3QiXS5UZXN0Q2FzZSk6Ci0gICAgICAgICAgICByZXR1
cm4KLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByZXR1cm4KLSAgICAjIHllcywgc28g
bGV0J3MgY29sbGVjdCBpdAotICAgIHJldHVybiBVbml0VGVzdENhc2UobmFtZSwgcGFyZW50PWNv
bGxlY3RvcikKLQotCi1jbGFzcyBVbml0VGVzdENhc2UoQ2xhc3MpOgotICAgICMgbWFya2VyIGZv
ciBmaXh0dXJlbWFuZ2VyLmdldGZpeHR1cmVpbmZvKCkKLSAgICAjIHRvIGRlY2xhcmUgdGhhdCBv
dXIgY2hpbGRyZW4gZG8gbm90IHN1cHBvcnQgZnVuY2FyZ3MKLSAgICBub2Z1bmNhcmdzID0gVHJ1
ZQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBjbHMgPSBzZWxmLm9iagotICAgICAg
ICBpZiBnZXRhdHRyKGNscywgJ19fdW5pdHRlc3Rfc2tpcF9fJywgRmFsc2UpOgotICAgICAgICAg
ICAgcmV0dXJuICAjIHNraXBwZWQKLSAgICAgICAgc2V0dXAgPSBnZXRhdHRyKGNscywgJ3NldFVw
Q2xhc3MnLCBOb25lKQotICAgICAgICBpZiBzZXR1cCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNldHVwKCkKLSAgICAgICAgdGVhcmRvd24gPSBnZXRhdHRyKGNscywgJ3RlYXJEb3duQ2xhc3Mn
LCBOb25lKQotICAgICAgICBpZiB0ZWFyZG93biBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuYWRkZmluYWxpemVyKHRlYXJkb3duKQotICAgICAgICBzdXBlcihVbml0VGVzdENhc2UsIHNl
bGYpLnNldHVwKCkKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICBmcm9tIHVuaXR0
ZXN0IGltcG9ydCBUZXN0TG9hZGVyCi0gICAgICAgIGNscyA9IHNlbGYub2JqCi0gICAgICAgIGlm
IG5vdCBnZXRhdHRyKGNscywgIl9fdGVzdF9fIiwgVHJ1ZSk6Ci0gICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5wYXJzZWZhY3RvcmllcyhzZWxm
LCB1bml0dGVzdD1UcnVlKQotICAgICAgICBsb2FkZXIgPSBUZXN0TG9hZGVyKCkKLSAgICAgICAg
bW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxlKS5vYmoKLSAgICAgICAgZm91bmRzb21ldGhp
bmcgPSBGYWxzZQotICAgICAgICBmb3IgbmFtZSBpbiBsb2FkZXIuZ2V0VGVzdENhc2VOYW1lcyhz
ZWxmLm9iaik6Ci0gICAgICAgICAgICB4ID0gZ2V0YXR0cihzZWxmLm9iaiwgbmFtZSkKLSAgICAg
ICAgICAgIGlmIG5vdCBnZXRhdHRyKHgsICdfX3Rlc3RfXycsIFRydWUpOgotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBmdW5jb2JqID0gZ2V0YXR0cih4LCAnaW1fZnVuYycs
IHgpCi0gICAgICAgICAgICB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmosIGNscywgbW9kdWxlKQot
ICAgICAgICAgICAgeWllbGQgVGVzdENhc2VGdW5jdGlvbihuYW1lLCBwYXJlbnQ9c2VsZikKLSAg
ICAgICAgICAgIGZvdW5kc29tZXRoaW5nID0gVHJ1ZQotCi0gICAgICAgIGlmIG5vdCBmb3VuZHNv
bWV0aGluZzoKLSAgICAgICAgICAgIHJ1bnRlc3QgPSBnZXRhdHRyKHNlbGYub2JqLCAncnVuVGVz
dCcsIE5vbmUpCi0gICAgICAgICAgICBpZiBydW50ZXN0IGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIHV0ID0gc3lzLm1vZHVsZXMuZ2V0KCJ0d2lzdGVkLnRyaWFsLnVuaXR0ZXN0IiwgTm9u
ZSkKLSAgICAgICAgICAgICAgICBpZiB1dCBpcyBOb25lIG9yIHJ1bnRlc3QgIT0gdXQuVGVzdENh
c2UucnVuVGVzdDoKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgVGVzdENhc2VGdW5jdGlvbign
cnVuVGVzdCcsIHBhcmVudD1zZWxmKQotCi0KLWNsYXNzIFRlc3RDYXNlRnVuY3Rpb24oRnVuY3Rp
b24pOgotICAgIF9leGNpbmZvID0gTm9uZQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAg
ICBzZWxmLl90ZXN0Y2FzZSA9IHNlbGYucGFyZW50Lm9iaihzZWxmLm5hbWUpCi0gICAgICAgIHNl
bGYuX2ZpeF91bml0dGVzdF9za2lwX2RlY29yYXRvcigpCi0gICAgICAgIHNlbGYuX29iaiA9IGdl
dGF0dHIoc2VsZi5fdGVzdGNhc2UsIHNlbGYubmFtZSkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxm
Ll90ZXN0Y2FzZSwgJ3NldHVwX21ldGhvZCcpOgotICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2Uu
c2V0dXBfbWV0aG9kKHNlbGYuX29iaikKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3JlcXVl
c3QiKToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuX2ZpbGxmaXh0dXJlcygpCi0KLSAgICBk
ZWYgX2ZpeF91bml0dGVzdF9za2lwX2RlY29yYXRvcihzZWxmKToKLSAgICAgICAgIiIiCi0gICAg
ICAgIFRoZSBAdW5pdHRlc3Quc2tpcCBkZWNvcmF0b3IgY2FsbHMgZnVuY3Rvb2xzLndyYXBzKHNl
bGYuX3Rlc3RjYXNlKQotICAgICAgICBUaGUgY2FsbCB0byBmdW5jdG9vbHMud3JhcHMoKSBmYWls
cyB1bmxlc3Mgc2VsZi5fdGVzdGNhc2UKLSAgICAgICAgaGFzIGEgX19uYW1lX18gYXR0cmlidXRl
LiBUaGlzIGlzIHVzdWFsbHkgYXV0b21hdGljYWxseSBzdXBwbGllZAotICAgICAgICBpZiB0aGUg
dGVzdCBpcyBhIGZ1bmN0aW9uIG9yIG1ldGhvZCwgYnV0IHdlIG5lZWQgdG8gYWRkIG1hbnVhbGx5
Ci0gICAgICAgIGhlcmUuCi0KLSAgICAgICAgU2VlIGlzc3VlICMxMTY5Ci0gICAgICAgICIiIgot
ICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAgICAgICAgICBzZXRhdHRy
KHNlbGYuX3Rlc3RjYXNlLCAiX19uYW1lX18iLCBzZWxmLm5hbWUpCi0KLSAgICBkZWYgdGVhcmRv
d24oc2VsZik6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fdGVzdGNhc2UsICd0ZWFyZG93bl9t
ZXRob2QnKToKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlLnRlYXJkb3duX21ldGhvZChzZWxm
Ll9vYmopCi0gICAgICAgICMgQWxsb3cgZ2FyYmFnZSBjb2xsZWN0aW9uIG9uIFRlc3RDYXNlIGlu
c3RhbmNlIGF0dHJpYnV0ZXMuCi0gICAgICAgIHNlbGYuX3Rlc3RjYXNlID0gTm9uZQotICAgICAg
ICBzZWxmLl9vYmogPSBOb25lCi0KLSAgICBkZWYgc3RhcnRUZXN0KHNlbGYsIHRlc3RjYXNlKToK
LSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9hZGRleGNpbmZvKHNlbGYsIHJhd2V4Y2luZm8pOgot
ICAgICAgICAjIHVud3JhcCBwb3RlbnRpYWwgZXhjZXB0aW9uIGluZm8gKHNlZSB0d2lzdGVkIHRy
aWFsIHN1cHBvcnQgYmVsb3cpCi0gICAgICAgIHJhd2V4Y2luZm8gPSBnZXRhdHRyKHJhd2V4Y2lu
Zm8sICdfcmF3ZXhjaW5mbycsIHJhd2V4Y2luZm8pCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8ocmF3ZXhjaW5mbykKLSAgICAg
ICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0
aW9uKCpyYXdleGNpbmZvKQotICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuaW5zZXJ0KDAsICJO
T1RFOiBJbmNvbXBhdGlibGUgRXhjZXB0aW9uIFJlcHJlc2VudGF0aW9uLCAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRpc3BsYXlpbmcgbmF0aXZlbHk6XG5cbiIpCi0gICAg
ICAgICAgICAgICAgICAgIGZhaWwoIiIuam9pbih2YWx1ZXMpLCBweXRyYWNlPUZhbHNlKQotICAg
ICAgICAgICAgICAgIGV4Y2VwdCAoZmFpbC5FeGNlcHRpb24sIEtleWJvYXJkSW50ZXJydXB0KToK
LSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICBleGNlcHQ6ICAjIG5v
cWEKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiRVJST1I6IFVua25vd24gSW5jb21wYXRpYmxl
IEV4Y2VwdGlvbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgInJlcHJlc2VudGF0aW9uOlxu
JXIiICUgKHJhd2V4Y2luZm8sKSwgcHl0cmFjZT1GYWxzZSkKLSAgICAgICAgICAgIGV4Y2VwdCBL
ZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZXhj
ZXB0IGZhaWwuRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9j
b2RlLkV4Y2VwdGlvbkluZm8oKQotICAgICAgICBzZWxmLl9fZGljdF9fLnNldGRlZmF1bHQoJ19l
eGNpbmZvJywgW10pLmFwcGVuZChleGNpbmZvKQotCi0gICAgZGVmIGFkZEVycm9yKHNlbGYsIHRl
c3RjYXNlLCByYXdleGNpbmZvKToKLSAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhyYXdleGNpbmZv
KQotCi0gICAgZGVmIGFkZEZhaWx1cmUoc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8pOgotICAg
ICAgICBzZWxmLl9hZGRleGNpbmZvKHJhd2V4Y2luZm8pCi0KLSAgICBkZWYgYWRkU2tpcChzZWxm
LCB0ZXN0Y2FzZSwgcmVhc29uKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2tpcChyZWFz
b24pCi0gICAgICAgIGV4Y2VwdCBza2lwLkV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHNlbGYuX3Nr
aXBwZWRfYnlfbWFyayA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX2FkZGV4Y2luZm8oc3lzLmV4
Y19pbmZvKCkpCi0KLSAgICBkZWYgYWRkRXhwZWN0ZWRGYWlsdXJlKHNlbGYsIHRlc3RjYXNlLCBy
YXdleGNpbmZvLCByZWFzb249IiIpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB4ZmFpbChz
dHIocmVhc29uKSkKLSAgICAgICAgZXhjZXB0IHhmYWlsLkV4Y2VwdGlvbjoKLSAgICAgICAgICAg
IHNlbGYuX2FkZGV4Y2luZm8oc3lzLmV4Y19pbmZvKCkpCi0KLSAgICBkZWYgYWRkVW5leHBlY3Rl
ZFN1Y2Nlc3Moc2VsZiwgdGVzdGNhc2UsIHJlYXNvbj0iIik6Ci0gICAgICAgIHNlbGYuX3VuZXhw
ZWN0ZWRzdWNjZXNzID0gcmVhc29uCi0KLSAgICBkZWYgYWRkU3VjY2VzcyhzZWxmLCB0ZXN0Y2Fz
ZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzdG9wVGVzdChzZWxmLCB0ZXN0Y2FzZSk6Ci0g
ICAgICAgIHBhc3MKLQotICAgIGRlZiBfaGFuZGxlX3NraXAoc2VsZik6Ci0gICAgICAgICMgaW1w
bGVtZW50cyB0aGUgc2tpcHBpbmcgbWFjaGluZXJ5IChzZWUgIzIxMzcpCi0gICAgICAgICMgYW5h
bG9nIHRvIHB5dGhvbnMgTGliL3VuaXR0ZXN0L2Nhc2UucHk6cnVuCi0gICAgICAgIHRlc3RNZXRo
b2QgPSBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCBzZWxmLl90ZXN0Y2FzZS5fdGVzdE1ldGhvZE5h
bWUpCi0gICAgICAgIGlmIChnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLl9fY2xhc3NfXywgIl9fdW5p
dHRlc3Rfc2tpcF9fIiwgRmFsc2UpIG9yCi0gICAgICAgICAgICAgICAgZ2V0YXR0cih0ZXN0TWV0
aG9kLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxzZSkpOgotICAgICAgICAgICAgIyBJZiB0aGUg
Y2xhc3Mgb3IgbWV0aG9kIHdhcyBza2lwcGVkLgotICAgICAgICAgICAgc2tpcF93aHkgPSAoZ2V0
YXR0cihzZWxmLl90ZXN0Y2FzZS5fX2NsYXNzX18sICdfX3VuaXR0ZXN0X3NraXBfd2h5X18nLCAn
Jykgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIodGVzdE1ldGhvZCwgJ19fdW5p
dHRlc3Rfc2tpcF93aHlfXycsICcnKSkKLSAgICAgICAgICAgIHRyeTogICMgUFkzLCB1bml0dGVz
dDIgb24gUFkyCi0gICAgICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UuX2FkZFNraXAoc2VsZiwg
c2VsZi5fdGVzdGNhc2UsIHNraXBfd2h5KQotICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjog
ICMgUFkyCi0gICAgICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSAhPSAyOgotICAg
ICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlLl9h
ZGRTa2lwKHNlbGYsIHNraXBfd2h5KQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgcnVudGVzdChzZWxmKToKLSAgICAgICAgaWYgc2VsZi5j
b25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJwZGJpbnZva2UiKSBpcyBOb25lOgotICAg
ICAgICAgICAgc2VsZi5fdGVzdGNhc2UocmVzdWx0PXNlbGYpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAjIGRpc2FibGVzIHRlYXJEb3duIGFuZCBjbGVhbnVwcyBmb3IgcG9zdCBtb3J0ZW0g
ZGVidWdnaW5nIChzZWUgIzE4OTApCi0gICAgICAgICAgICBpZiBzZWxmLl9oYW5kbGVfc2tpcCgp
OgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UuZGVi
dWcoKQotCi0gICAgZGVmIF9wcnVuZXRyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKLSAgICAgICAg
RnVuY3Rpb24uX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pCi0gICAgICAgIHRyYWNlYmFj
ayA9IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigKLSAgICAgICAgICAgIGxhbWJkYSB4OiBub3Qg
eC5mcmFtZS5mX2dsb2JhbHMuZ2V0KCdfX3VuaXR0ZXN0JykpCi0gICAgICAgIGlmIHRyYWNlYmFj
azoKLSAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gdHJhY2ViYWNrCi0KLQotQGhvb2tp
bXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBj
YWxsKToKLSAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIFRlc3RDYXNlRnVuY3Rpb24pOgotICAgICAg
ICBpZiBpdGVtLl9leGNpbmZvOgotICAgICAgICAgICAgY2FsbC5leGNpbmZvID0gaXRlbS5fZXhj
aW5mby5wb3AoMCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkZWwgY2FsbC5y
ZXN1bHQKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAg
ICBwYXNzCi0KLSMgdHdpc3RlZCB0cmlhbCBzdXBwb3J0Ci0KLQotQGhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSk6Ci0gICAgaWYgaXNp
bnN0YW5jZShpdGVtLCBUZXN0Q2FzZUZ1bmN0aW9uKSBhbmQgXAotICAgICAgICd0d2lzdGVkLnRy
aWFsLnVuaXR0ZXN0JyBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgdXQgPSBzeXMubW9kdWxlc1sn
dHdpc3RlZC5weXRob24uZmFpbHVyZSddCi0gICAgICAgIEZhaWx1cmVfX2luaXRfXyA9IHV0LkZh
aWx1cmUuX19pbml0X18KLSAgICAgICAgY2hlY2tfdGVzdGNhc2VfaW1wbGVtZW50c190cmlhbF9y
ZXBvcnRlcigpCi0KLSAgICAgICAgZGVmIGV4Y3N0b3JlKHNlbGYsIGV4Y192YWx1ZT1Ob25lLCBl
eGNfdHlwZT1Ob25lLCBleGNfdGI9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVW
YXJzPU5vbmUpOgotICAgICAgICAgICAgaWYgZXhjX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fcmF3ZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIGlmIGV4Y190eXBlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgIGV4Y190eXBlID0gdHlwZShleGNfdmFsdWUpCi0gICAgICAgICAgICAgICAgc2VsZi5fcmF3
ZXhjaW5mbyA9IChleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdGIpCi0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgRmFpbHVyZV9faW5pdF9fKHNlbGYsIGV4Y192YWx1ZSwgZXhjX3R5
cGUsIGV4Y190YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FwdHVyZVZhcnM9
Y2FwdHVyZVZhcnMpCi0gICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAgICAg
ICAgIEZhaWx1cmVfX2luaXRfXyhzZWxmLCBleGNfdmFsdWUsIGV4Y190eXBlLCBleGNfdGIpCi0K
LSAgICAgICAgdXQuRmFpbHVyZS5fX2luaXRfXyA9IGV4Y3N0b3JlCi0gICAgICAgIHlpZWxkCi0g
ICAgICAgIHV0LkZhaWx1cmUuX19pbml0X18gPSBGYWlsdXJlX19pbml0X18KLSAgICBlbHNlOgot
ICAgICAgICB5aWVsZAotCi0KLWRlZiBjaGVja190ZXN0Y2FzZV9pbXBsZW1lbnRzX3RyaWFsX3Jl
cG9ydGVyKGRvbmU9W10pOgotICAgIGlmIGRvbmU6Ci0gICAgICAgIHJldHVybgotICAgIGZyb20g
em9wZS5pbnRlcmZhY2UgaW1wb3J0IGNsYXNzSW1wbGVtZW50cwotICAgIGZyb20gdHdpc3RlZC50
cmlhbC5pdHJpYWwgaW1wb3J0IElSZXBvcnRlcgotICAgIGNsYXNzSW1wbGVtZW50cyhUZXN0Q2Fz
ZUZ1bmN0aW9uLCBJUmVwb3J0ZXIpCi0gICAgZG9uZS5hcHBlbmQoMSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODBlZmMwYzkxMGZk
MDc2MmVmNjAxM2Y0OGVmZDMzNDYzZjQzOThlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29tcGxldGUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Nh
cHR1cmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dpbmcucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rl
c3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9mcmVlemVfc3VwcG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaGVscGNvbmZpZy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2p1bml0eG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9tYWluLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9kZXMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291
dGNvbWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJpbi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvcHl0ZXN0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbi5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVj
d2Fybi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9ydW5uZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9za2lw
cGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3RtcGRpci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5pdHRlc3QucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3dhcm5pbmdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MyYjE5MTRmYjY5MTY0YjM4MGYxZjUyOTRmNTc0OWVk
M2U0OTI5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAs
MCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotCi1pbXBvcnQgd2FybmluZ3MKLWZyb20gY29udGV4dGxpYiBpbXBvcnQg
Y29udGV4dG1hbmFnZXIKLQotaW1wb3J0IHB5dGVzdAotCi1mcm9tIF9weXRlc3QgaW1wb3J0IGNv
bXBhdAotCi0KLWRlZiBfc2V0b3B0aW9uKHdtb2QsIGFyZyk6Ci0gICAgIiIiCi0gICAgQ29weSBv
ZiB0aGUgd2FybmluZy5fc2V0b3B0aW9uIGZ1bmN0aW9uIGJ1dCBkb2VzIG5vdCBlc2NhcGUgYXJn
dW1lbnRzLgotICAgICIiIgotICAgIHBhcnRzID0gYXJnLnNwbGl0KCc6JykKLSAgICBpZiBsZW4o
cGFydHMpID4gNToKLSAgICAgICAgcmFpc2Ugd21vZC5fT3B0aW9uRXJyb3IoInRvbyBtYW55IGZp
ZWxkcyAobWF4IDUpOiAlciIgJSAoYXJnLCkpCi0gICAgd2hpbGUgbGVuKHBhcnRzKSA8IDU6Ci0g
ICAgICAgIHBhcnRzLmFwcGVuZCgnJykKLSAgICBhY3Rpb24sIG1lc3NhZ2UsIGNhdGVnb3J5LCBt
b2R1bGUsIGxpbmVubyA9IFtzLnN0cmlwKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgcyBpbiBwYXJ0c10KLSAgICBhY3Rpb24gPSB3bW9kLl9n
ZXRhY3Rpb24oYWN0aW9uKQotICAgIGNhdGVnb3J5ID0gd21vZC5fZ2V0Y2F0ZWdvcnkoY2F0ZWdv
cnkpCi0gICAgaWYgbGluZW5vOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBsaW5lbm8gPSBp
bnQobGluZW5vKQotICAgICAgICAgICAgaWYgbGluZW5vIDwgMDoKLSAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yCi0gICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgT3ZlcmZsb3dFcnJv
cik6Ci0gICAgICAgICAgICByYWlzZSB3bW9kLl9PcHRpb25FcnJvcigiaW52YWxpZCBsaW5lbm8g
JXIiICUgKGxpbmVubywpKQotICAgIGVsc2U6Ci0gICAgICAgIGxpbmVubyA9IDAKLSAgICB3bW9k
LmZpbHRlcndhcm5pbmdzKGFjdGlvbiwgbWVzc2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGluZW5v
KQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIu
Z2V0Z3JvdXAoInB5dGVzdC13YXJuaW5ncyIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKAotICAgICAg
ICAnLVcnLCAnLS1weXRob253YXJuaW5ncycsIGFjdGlvbj0nYXBwZW5kJywKLSAgICAgICAgaGVs
cD0ic2V0IHdoaWNoIHdhcm5pbmdzIHRvIHJlcG9ydCwgc2VlIC1XIG9wdGlvbiBvZiBweXRob24g
aXRzZWxmLiIpCi0gICAgcGFyc2VyLmFkZGluaSgiZmlsdGVyd2FybmluZ3MiLCB0eXBlPSJsaW5l
bGlzdCIsCi0gICAgICAgICAgICAgICAgICBoZWxwPSJFYWNoIGxpbmUgc3BlY2lmaWVzIGEgcGF0
dGVybiBmb3IgIgotICAgICAgICAgICAgICAgICAgIndhcm5pbmdzLmZpbHRlcndhcm5pbmdzLiAi
Ci0gICAgICAgICAgICAgICAgICAiUHJvY2Vzc2VkIGFmdGVyIC1XIGFuZCAtLXB5dGhvbndhcm5p
bmdzLiIpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYgY2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0o
aXRlbSk6Ci0gICAgIiIiCi0gICAgY2F0Y2hlcyB0aGUgd2FybmluZ3MgZ2VuZXJhdGVkIGR1cmlu
ZyBzZXR1cC9jYWxsL3RlYXJkb3duIGV4ZWN1dGlvbgotICAgIG9mIHRoZSBnaXZlbiBpdGVtIGFu
ZCBhZnRlciBpdCBpcyBkb25lIHBvc3RzIHRoZW0gYXMgd2FybmluZ3MgdG8gdGhpcwotICAgIGl0
ZW0uCi0gICAgIiIiCi0gICAgYXJncyA9IGl0ZW0uY29uZmlnLmdldG9wdGlvbigncHl0aG9ud2Fy
bmluZ3MnKSBvciBbXQotICAgIGluaWZpbHRlcnMgPSBpdGVtLmNvbmZpZy5nZXRpbmkoImZpbHRl
cndhcm5pbmdzIikKLSAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVl
KSBhcyBsb2c6Ci0gICAgICAgIGZvciBhcmcgaW4gYXJnczoKLSAgICAgICAgICAgIHdhcm5pbmdz
Ll9zZXRvcHRpb24oYXJnKQotCi0gICAgICAgIGZvciBhcmcgaW4gaW5pZmlsdGVyczoKLSAgICAg
ICAgICAgIF9zZXRvcHRpb24od2FybmluZ3MsIGFyZykKLQotICAgICAgICBtYXJrID0gaXRlbS5n
ZXRfbWFya2VyKCdmaWx0ZXJ3YXJuaW5ncycpCi0gICAgICAgIGlmIG1hcms6Ci0gICAgICAgICAg
ICBmb3IgYXJnIGluIG1hcmsuYXJnczoKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy5fc2V0b3B0
aW9uKGFyZykKLQotICAgICAgICB5aWVsZAotCi0gICAgICAgIGZvciB3YXJuaW5nIGluIGxvZzoK
LSAgICAgICAgICAgIHdhcm5fbXNnID0gd2FybmluZy5tZXNzYWdlCi0gICAgICAgICAgICB1bmlj
b2RlX3dhcm5pbmcgPSBGYWxzZQotCi0gICAgICAgICAgICBpZiBjb21wYXQuX1BZMiBhbmQgYW55
KGlzaW5zdGFuY2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMpIGZvciBtIGluIHdhcm5fbXNnLmFy
Z3MpOgotICAgICAgICAgICAgICAgIG5ld19hcmdzID0gW10KLSAgICAgICAgICAgICAgICBmb3Ig
bSBpbiB3YXJuX21zZy5hcmdzOgotICAgICAgICAgICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQo
Y29tcGF0LmFzY2lpX2VzY2FwZWQobSkgaWYgaXNpbnN0YW5jZShtLCBjb21wYXQuVU5JQ09ERV9U
WVBFUykgZWxzZSBtKQotICAgICAgICAgICAgICAgIHVuaWNvZGVfd2FybmluZyA9IGxpc3Qod2Fy
bl9tc2cuYXJncykgIT0gbmV3X2FyZ3MKLSAgICAgICAgICAgICAgICB3YXJuX21zZy5hcmdzID0g
bmV3X2FyZ3MKLQotICAgICAgICAgICAgbXNnID0gd2FybmluZ3MuZm9ybWF0d2FybmluZygKLSAg
ICAgICAgICAgICAgICB3YXJuX21zZywgd2FybmluZy5jYXRlZ29yeSwKLSAgICAgICAgICAgICAg
ICB3YXJuaW5nLmZpbGVuYW1lLCB3YXJuaW5nLmxpbmVubywgd2FybmluZy5saW5lKQotICAgICAg
ICAgICAgaXRlbS53YXJuKCJ1bnVzZWQiLCBtc2cpCi0KLSAgICAgICAgICAgIGlmIHVuaWNvZGVf
d2FybmluZzoKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgICAg
ICAgICAiV2FybmluZyBpcyB1c2luZyB1bmljb2RlIG5vbiBjb252ZXJ0aWJsZSB0byBhc2NpaSwg
IgotICAgICAgICAgICAgICAgICAgICAiY29udmVydGluZyB0byBhIHNhZmUgcmVwcmVzZW50YXRp
b246XG4gICVzIiAlIG1zZywKLSAgICAgICAgICAgICAgICAgICAgVW5pY29kZVdhcm5pbmcpCi0K
LQotQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0
X3Byb3RvY29sKGl0ZW0pOgotICAgIHdpdGggY2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0oaXRlbSk6
Ci0gICAgICAgIHlpZWxkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNzcyN2E3Nzc0M2FiMjIzY2VkZjFkYWFjYTliNTU5Y2I2OGJkOGExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2JlbmNoL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5j
aF9hcmdjb21wbGV0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvYmVuY2gvbWFueXBhcmFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Y2hhbmdlbG9nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
Mzk5MTZhYTVlZTA5NzVlNDlkNmU5YTZhOGRjMDY5Y2Q2ZDlhODE0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL190ZW1w
bGF0ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllODRiMjNmMjUwN2UwNjc3YWU2ZjdiNmQw
ZTA4MjAyODk1MTVmNGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Rl
bXBsYXRlcy9nbG9iYWx0b2MuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL2xh
eW91dC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGlua3MuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3JlbGF0aW9ucy5odG1sCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190ZW1wbGF0ZXMvc2lkZWJhcmludHJvLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RlbXBsYXRlcy9zbGltX3NlYXJjaGJveC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vX3RoZW1lcy9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvTElDRU5T
RQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGRhYWI3ZWU2ZWZlM2I2ZjNjMmEyNTk0
YjcxMWU3YTkwMjZlYjVlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9MSUNFTlNFCisrKyAvZGV2L251bGwK
QEAgLTEsMzcgKzAsMCBAQAotQ29weXJpZ2h0IChjKSAyMDEwIGJ5IEFybWluIFJvbmFjaGVyLgot
Ci1Tb21lIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3JtcyBvZiB0aGUgdGhlbWUsIHdpdGggb3IKLXdpdGhvdXQgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi1hcmUgbWV0OgotCi0qIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZAotICB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSogVGhlIG5hbWVzIG9mIHRoZSBjb250cmlidXRvcnMg
bWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IKLSAgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljCi0gIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLQotV2Uga2luZGx5IGFzayB5b3UgdG8gb25seSB1c2UgdGhlc2UgdGhlbWVzIGlu
IGFuIHVubW9kaWZpZWQgbWFubmVyIGp1c3QKLWZvciBGbGFzayBhbmQgRmxhc2stcmVsYXRlZCBw
cm9kdWN0cywgbm90IGZvciB1bnJlbGF0ZWQgcHJvamVjdHMuICBJZiB5b3UKLWxpa2UgdGhlIHZp
c3VhbCBzdHlsZSBhbmQgd2FudCB0byB1c2UgaXQgZm9yIHlvdXIgb3duIHByb2plY3RzLCBwbGVh
c2UKLWNvbnNpZGVyIG1ha2luZyBzb21lIGxhcmdlciBjaGFuZ2VzIHRvIHRoZSB0aGVtZXMgKHN1
Y2ggYXMgY2hhbmdpbmcKLWZvbnQgZmFjZXMsIHNpemVzLCBjb2xvcnMgb3IgbWFyZ2lucykuCi0K
LVRISVMgVEhFTUUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBUSEVNRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9SRUFETUUKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGIzMjkyYmRmZjhlZDU0MjllZWRkN2Y0MDk4Mzk5NzlkNDA4YmVi
NmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotRmxhc2sgU3BoaW54IFN0eWxlcwotPT09PT09PT09PT09PT09PT09PQotCi1UaGlzIHJlcG9z
aXRvcnkgY29udGFpbnMgc3BoaW54IHN0eWxlcyBmb3IgRmxhc2sgYW5kIEZsYXNrIHJlbGF0ZWQK
LXByb2plY3RzLiAgVG8gdXNlIHRoaXMgc3R5bGUgaW4geW91ciBTcGhpbnggZG9jdW1lbnRhdGlv
biwgZm9sbG93Ci10aGlzIGd1aWRlOgotCi0xLiBwdXQgdGhpcyBmb2xkZXIgYXMgX3RoZW1lcyBp
bnRvIHlvdXIgZG9jcyBmb2xkZXIuICBBbHRlcm5hdGl2ZWx5Ci0gICB5b3UgY2FuIGFsc28gdXNl
IGdpdCBzdWJtb2R1bGVzIHRvIGNoZWNrIG91dCB0aGUgY29udGVudHMgdGhlcmUuCi0yLiBhZGQg
dGhpcyB0byB5b3VyIGNvbmYucHk6Ci0KLSAgIHN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFic3Bh
dGgoJ190aGVtZXMnKSkKLSAgIGh0bWxfdGhlbWVfcGF0aCA9IFsnX3RoZW1lcyddCi0gICBodG1s
X3RoZW1lID0gJ2ZsYXNrJwotCi1UaGUgZm9sbG93aW5nIHRoZW1lcyBleGlzdDoKLQotLSAnZmxh
c2snIC0gdGhlIHN0YW5kYXJkIGZsYXNrIGRvY3VtZW50YXRpb24gdGhlbWUgZm9yIGxhcmdlCi0g
IHByb2plY3RzCi0tICdmbGFza19zbWFsbCcgLSBzbWFsbCBvbmUtcGFnZSB0aGVtZS4gIEludGVu
ZGVkIHRvIGJlIHVzZWQgYnkKLSAgdmVyeSBzbWFsbCBhZGRvbiBsaWJyYXJpZXMgZm9yIGZsYXNr
LgotCi1UaGUgZm9sbG93aW5nIG9wdGlvbnMgZXhpc3QgZm9yIHRoZSBmbGFza19zbWFsbCB0aGVt
ZToKLQotICAgW29wdGlvbnNdCi0gICBpbmRleF9sb2dvID0gJycgICAgICAgICAgICAgIGZpbGVu
YW1lIG9mIGEgcGljdHVyZSBpbiBfc3RhdGljCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRvIGJlIHVzZWQgYXMgcmVwbGFjZW1lbnQgZm9yIHRoZQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoMSBpbiB0aGUgaW5kZXgucnN0IGZpbGUuCi0gICBpbmRleF9sb2dvX2hl
aWdodCA9IDEyMHB4ICAgIGhlaWdodCBvZiB0aGUgaW5kZXggbG9nbwotICAgZ2l0aHViX2Zvcmsg
PSAnJyAgICAgICAgICAgICByZXBvc2l0b3J5IG5hbWUgb24gZ2l0aHViIGZvciB0aGUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcmsgbWUiIGJhZGdlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9sYXlvdXQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL2xheW91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxOWM0M2ZiYmVmYzFmOTM1ZGQ0ZTk5M2U1N2VmMGRlYTYwNGI5NDU4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9fdGhlbWVzL2ZsYXNrL2xheW91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBA
QAoteyUtIGV4dGVuZHMgImJhc2ljL2xheW91dC5odG1sIiAlfQoteyUtIGJsb2NrIGV4dHJhaGVh
ZCAlfQotICB7eyBzdXBlcigpIH19Ci0gIHslIGlmIHRoZW1lX3RvdWNoX2ljb24gJX0KLSAgPGxp
bmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiBocmVmPSJ7eyBwYXRodG8oJ19zdGF0aWMvJyB+IHRo
ZW1lX3RvdWNoX2ljb24sIDEpIH19IiAvPgotICB7JSBlbmRpZiAlfQotICA8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTAuOSwg
bWF4aW11bS1zY2FsZT0wLjkiPgoteyUgZW5kYmxvY2sgJX0KLXslLSBibG9jayByZWxiYXIyICV9
eyUgZW5kYmxvY2sgJX0KLXslIGJsb2NrIGhlYWRlciAlfQotICB7eyBzdXBlcigpIH19Ci0gIHsl
IGlmIHBhZ2VuYW1lID09ICdpbmRleCcgJX0KLSAgPGRpdiBjbGFzcz1pbmRleHdyYXBwZXI+Ci0g
IHslIGVuZGlmICV9Ci17JSBlbmRibG9jayAlfQoteyUtIGJsb2NrIGZvb3RlciAlfQotICA8ZGl2
IGNsYXNzPSJmb290ZXIiPgotICAgICZjb3B5OyBDb3B5cmlnaHQge3sgY29weXJpZ2h0IH19Lgot
ICAgIENyZWF0ZWQgdXNpbmcgPGEgaHJlZj0iaHR0cDovL3NwaGlueC5wb2Nvby5vcmcvIj5TcGhp
bng8L2E+LgotICA8L2Rpdj4KLSAgeyUgaWYgcGFnZW5hbWUgPT0gJ2luZGV4JyAlfQotICA8L2Rp
dj4KLSAgeyUgZW5kaWYgJX0KLXslLSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vX3RoZW1lcy9mbGFzay9yZWxhdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2JiY2RlODViYjQ4ZDNmOGJkZmQwNjYxMDRkOGYyZWFlNTg0ZTcyZC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RoZW1lcy9mbGFzay9yZWxhdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLTxoMz5SZWxhdGVkIFRvcGljczwvaDM+Ci08dWw+Ci0gIDxsaT48YSBocmVmPSJ7eyBwYXRo
dG8obWFzdGVyX2RvYykgfX0iPkRvY3VtZW50YXRpb24gb3ZlcnZpZXc8L2E+PHVsPgotICB7JS0g
Zm9yIHBhcmVudCBpbiBwYXJlbnRzICV9Ci0gIDxsaT48YSBocmVmPSJ7eyBwYXJlbnQubGlua3xl
IH19Ij57eyBwYXJlbnQudGl0bGUgfX08L2E+PHVsPgotICB7JS0gZW5kZm9yICV9Ci0gICAgeyUt
IGlmIHByZXYgJX0KLSAgICAgIDxsaT5QcmV2aW91czogPGEgaHJlZj0ie3sgcHJldi5saW5rfGUg
fX0iIHRpdGxlPSJ7eyBfKCdwcmV2aW91cyBjaGFwdGVyJykKLSAgICAgICAgfX0iPnt7IHByZXYu
dGl0bGUgfX08L2E+PC9saT4KLSAgICB7JS0gZW5kaWYgJX0KLSAgICB7JS0gaWYgbmV4dCAlfQot
ICAgICAgPGxpPk5leHQ6IDxhIGhyZWY9Int7IG5leHQubGlua3xlIH19IiB0aXRsZT0ie3sgXygn
bmV4dCBjaGFwdGVyJykKLSAgICAgICAgfX0iPnt7IG5leHQudGl0bGUgfX08L2E+PC9saT4KLSAg
ICB7JS0gZW5kaWYgJX0KLSAgeyUtIGZvciBwYXJlbnQgaW4gcGFyZW50cyAlfQotICA8L3VsPjwv
bGk+Ci0gIHslLSBlbmRmb3IgJX0KLSAgPC91bD48L2xpPgotPC91bD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy9mbGFza3kuY3NzX3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0aWMvZmxhc2t5LmNzc190CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjU5M2RhMjk5YTgzNTNlMzFjMmVhZmI1YjA0NDUwNTYy
NWUwNTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy9mbGFza3kuY3NzX3QKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NTcgKzAsMCBAQAotLyoKLSAqIGZsYXNreS5jc3NfdAotICogfn5+fn5+
fn5+fn5+Ci0gKgotICogOmNvcHlyaWdodDogQ29weXJpZ2h0IDIwMTAgYnkgQXJtaW4gUm9uYWNo
ZXIuCi0gKiA6bGljZW5zZTogRmxhc2sgRGVzaWduIExpY2Vuc2UsIHNlZSBMSUNFTlNFIGZvciBk
ZXRhaWxzLgotICovCi0KLXslIHNldCBwYWdlX3dpZHRoID0gJzEwMjBweCcgJX0KLXslIHNldCBz
aWRlYmFyX3dpZHRoID0gJzIyMHB4JyAlfQotLyogb3JhbmdlIG9mIGxvZ28gaXMgI2Q2N2MyOSBi
dXQgd2UgdXNlIGJsYWNrIGZvciBsaW5rcyBmb3Igbm93ICovCi17JSBzZXQgbGlua19jb2xvciA9
ICcjMDAwJyAlfQoteyUgc2V0IGxpbmtfaG92ZXJfY29sb3IgPSAnIzAwMCcgJX0KLXslIHNldCBi
YXNlX2ZvbnQgPSAnc2Fucy1zZXJpZicgJX0KLXslIHNldCBoZWFkZXJfZm9udCA9ICdzZXJpZicg
JX0KLQotQGltcG9ydCB1cmwoImJhc2ljLmNzcyIpOwotCi0vKiAtLSBwYWdlIGxheW91dCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq
LwotCi1ib2R5IHsKLSAgICBmb250LWZhbWlseToge3sgYmFzZV9mb250IH19OwotICAgIGZvbnQt
c2l6ZTogMTdweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKLSAgICBjb2xvcjogIzAw
MDsKLSAgICBtYXJnaW46IDA7Ci0gICAgcGFkZGluZzogMDsKLX0KLQotZGl2LmRvY3VtZW50IHsK
LSAgICB3aWR0aDoge3sgcGFnZV93aWR0aCB9fTsKLSAgICBtYXJnaW46IDMwcHggYXV0byAwIGF1
dG87Ci19Ci0KLWRpdi5kb2N1bWVudHdyYXBwZXIgewotICAgIGZsb2F0OiBsZWZ0OwotICAgIHdp
ZHRoOiAxMDAlOwotfQotCi1kaXYuYm9keXdyYXBwZXIgewotICAgIG1hcmdpbjogMCAwIDAge3sg
c2lkZWJhcl93aWR0aCB9fTsKLX0KLQotZGl2LnNwaGlueHNpZGViYXIgewotICAgIHdpZHRoOiB7
eyBzaWRlYmFyX3dpZHRoIH19OwotfQotCi1ociB7Ci0gICAgYm9yZGVyOiAwOwotICAgIGJvcmRl
ci10b3A6IDFweCBzb2xpZCAjQjFCNEI2OwotfQotCi1kaXYuYm9keSB7Ci0gICAgYmFja2dyb3Vu
ZC1jb2xvcjogI2ZmZmZmZjsKLSAgICBjb2xvcjogIzNFNDM0OTsKLSAgICBwYWRkaW5nOiAwIDMw
cHggMCAzMHB4OwotfQotCi1pbWcuZmxvYXRpbmdmbGFzayB7Ci0gICAgcGFkZGluZzogMCAwIDEw
cHggMTBweDsKLSAgICBmbG9hdDogcmlnaHQ7Ci19Ci0KLWRpdi5mb290ZXIgewotICAgIHdpZHRo
OiB7eyBwYWdlX3dpZHRoIH19OwotICAgIG1hcmdpbjogMjBweCBhdXRvIDMwcHggYXV0bzsKLSAg
ICBmb250LXNpemU6IDE0cHg7Ci0gICAgY29sb3I6ICM4ODg7Ci0gICAgdGV4dC1hbGlnbjogcmln
aHQ7Ci19Ci0KLWRpdi5mb290ZXIgYSB7Ci0gICAgY29sb3I6ICM4ODg7Ci19Ci0KLWRpdi5yZWxh
dGVkIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi1kaXYuc3BoaW54c2lkZWJhciBhIHsKLSAg
ICBjb2xvcjogIzQ0NDsKLSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci0gICAgYm9yZGVyLWJv
dHRvbTogMXB4IGRvdHRlZCAjOTk5OwotfQotCi1kaXYuc3BoaW54c2lkZWJhciBhOmhvdmVyIHsK
LSAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5OTsKLX0KLQotZGl2LnNwaGlueHNpZGVi
YXIgewotICAgIGZvbnQtc2l6ZTogMTRweDsKLSAgICBsaW5lLWhlaWdodDogMS41OwotfQotCi1k
aXYuc3BoaW54c2lkZWJhcndyYXBwZXIgewotICAgIHBhZGRpbmc6IDE4cHggMTBweDsKLX0KLQot
ZGl2LnNwaGlueHNpZGViYXJ3cmFwcGVyIHAubG9nbyB7Ci0gICAgcGFkZGluZzogMCAwIDIwcHgg
MDsKLSAgICBtYXJnaW46IDA7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCi1kaXYuc3Bo
aW54c2lkZWJhciBoMywKLWRpdi5zcGhpbnhzaWRlYmFyIGg0IHsKLSAgICBmb250LWZhbWlseTog
e3sgaGVhZGVyX2ZvbnQgfX07Ci0gICAgY29sb3I6ICM0NDQ7Ci0gICAgZm9udC1zaXplOiAyNHB4
OwotICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0gICAgbWFyZ2luOiAwIDAgNXB4IDA7Ci0gICAg
cGFkZGluZzogMDsKLX0KLQotZGl2LnNwaGlueHNpZGViYXIgaDQgewotICAgIGZvbnQtc2l6ZTog
MjBweDsKLX0KLQotZGl2LnNwaGlueHNpZGViYXIgaDMgYSB7Ci0gICAgY29sb3I6ICM0NDQ7Ci19
Ci0KLWRpdi5zcGhpbnhzaWRlYmFyIHAubG9nbyBhLAotZGl2LnNwaGlueHNpZGViYXIgaDMgYSwK
LWRpdi5zcGhpbnhzaWRlYmFyIHAubG9nbyBhOmhvdmVyLAotZGl2LnNwaGlueHNpZGViYXIgaDMg
YTpob3ZlciB7Ci0gICAgYm9yZGVyOiBub25lOwotfQotCi1kaXYuc3BoaW54c2lkZWJhciBwIHsK
LSAgICBjb2xvcjogIzU1NTsKLSAgICBtYXJnaW46IDEwcHggMDsKLX0KLQotZGl2LnNwaGlueHNp
ZGViYXIgdWwgewotICAgIG1hcmdpbjogMTBweCAwOwotICAgIHBhZGRpbmc6IDA7Ci0gICAgY29s
b3I6ICMwMDA7Ci19Ci0KLWRpdi5zcGhpbnhzaWRlYmFyIGlucHV0IHsKLSAgICBib3JkZXI6IDFw
eCBzb2xpZCAjY2NjOwotICAgIGZvbnQtZmFtaWx5OiB7eyBiYXNlX2ZvbnQgfX07Ci0gICAgZm9u
dC1zaXplOiAxZW07Ci19Ci0KLS8qIC0tIGJvZHkgc3R5bGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLWEgewotICAgIGNv
bG9yOiB7eyBsaW5rX2NvbG9yIH19OwotICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwot
fQotCi1hOmhvdmVyIHsKLSAgICBjb2xvcjoge3sgbGlua19ob3Zlcl9jb2xvciB9fTsKLSAgICB0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKLX0KLQotYS5yZWZlcmVuY2UuaW50ZXJuYWwgZW0g
ewotICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKLX0KLQotZGl2LmJvZHkgaDEsCi1kaXYuYm9keSBo
MiwKLWRpdi5ib2R5IGgzLAotZGl2LmJvZHkgaDQsCi1kaXYuYm9keSBoNSwKLWRpdi5ib2R5IGg2
IHsKLSAgICBmb250LWZhbWlseToge3sgaGVhZGVyX2ZvbnQgfX07Ci0gICAgZm9udC13ZWlnaHQ6
IG5vcm1hbDsKLSAgICBtYXJnaW46IDMwcHggMHB4IDEwcHggMHB4OwotICAgIHBhZGRpbmc6IDA7
Ci19Ci0KLXslIGlmIHRoZW1lX2luZGV4X2xvZ28gJX0KLWRpdi5pbmRleHdyYXBwZXIgaDEgewot
ICAgIHRleHQtaW5kZW50OiAtOTk5OTk5cHg7Ci0gICAgYmFja2dyb3VuZDogdXJsKHt7IHRoZW1l
X2luZGV4X2xvZ28gfX0pIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyOwotICAgIGhlaWdodDoge3sg
dGhlbWVfaW5kZXhfbG9nb19oZWlnaHQgfX07Ci19Ci17JSBlbHNlICV9Ci1kaXYuaW5kZXh3cmFw
cGVyIGRpdi5ib2R5IGgxIHsKLSAgICBmb250LXNpemU6IDIwMCU7Ci19Ci17JSBlbmRpZiAlfQot
ZGl2LmJvZHkgaDEgeyBtYXJnaW4tdG9wOiAwOyBwYWRkaW5nLXRvcDogMDsgZm9udC1zaXplOiAy
NDAlOyB9Ci1kaXYuYm9keSBoMiB7IGZvbnQtc2l6ZTogMTgwJTsgfQotZGl2LmJvZHkgaDMgeyBm
b250LXNpemU6IDE1MCU7IH0KLWRpdi5ib2R5IGg0IHsgZm9udC1zaXplOiAxMzAlOyB9Ci1kaXYu
Ym9keSBoNSB7IGZvbnQtc2l6ZTogMTAwJTsgfQotZGl2LmJvZHkgaDYgeyBmb250LXNpemU6IDEw
MCU7IH0KLQotYS5oZWFkZXJsaW5rIHsKLSAgICBjb2xvcjogI2RkZDsKLSAgICBwYWRkaW5nOiAw
IDRweDsKLSAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci19Ci0KLWEuaGVhZGVybGluazpob3Zl
ciB7Ci0gICAgY29sb3I6ICM0NDQ7Ci0gICAgYmFja2dyb3VuZDogI2VhZWFlYTsKLX0KLQotZGl2
LmJvZHkgcCwgZGl2LmJvZHkgZGQsIGRpdi5ib2R5IGxpIHsKLSAgICBsaW5lLWhlaWdodDogMS40
ZW07Ci19Ci0KLWRpdi5hZG1vbml0aW9uIHsKLSAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhOwotICAg
IG1hcmdpbjogMjBweCAtMzBweDsKLSAgICBwYWRkaW5nOiAxMHB4IDMwcHg7Ci0gICAgYm9yZGVy
LXRvcDogMXB4IHNvbGlkICNjY2M7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7
Ci19Ci0KLWRpdi5hZG1vbml0aW9uIHR0LnhyZWYsIGRpdi5hZG1vbml0aW9uIGEgdHQgewotICAg
IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmFmYWZhOwotfQotCi1kZCBkaXYuYWRtb25pdGlv
biB7Ci0gICAgbWFyZ2luLWxlZnQ6IC02MHB4OwotICAgIHBhZGRpbmctbGVmdDogNjBweDsKLX0K
LQotZGl2LmFkbW9uaXRpb24gcC5hZG1vbml0aW9uLXRpdGxlIHsKLSAgICBmb250LWZhbWlseTog
e3sgaGVhZGVyX2ZvbnQgfX07Ci0gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKLSAgICBmb250LXNp
emU6IDI0cHg7Ci0gICAgbWFyZ2luOiAwIDAgMTBweCAwOwotICAgIHBhZGRpbmc6IDA7Ci0gICAg
bGluZS1oZWlnaHQ6IDE7Ci19Ci0KLWRpdi5hZG1vbml0aW9uIHAubGFzdCB7Ci0gICAgbWFyZ2lu
LWJvdHRvbTogMDsKLX0KLQotZGl2LmhpZ2hsaWdodCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjog
d2hpdGU7Ci19Ci0KLWR0OnRhcmdldCwgLmhpZ2hsaWdodCB7Ci0gICAgYmFja2dyb3VuZDogI0ZB
RjNFODsKLX0KLQotZGl2Lm5vdGUgewotICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Ci0gICAg
Ym9yZGVyOiAxcHggc29saWQgI2NjYzsKLX0KLQotZGl2LnNlZWFsc28gewotICAgIGJhY2tncm91
bmQtY29sb3I6ICNmZmM7Ci0gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmNjsKLX0KLQotZGl2LnRv
cGljIHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwotfQotCi1wLmFkbW9uaXRpb24tdGl0
bGUgewotICAgIGRpc3BsYXk6IGlubGluZTsKLX0KLQotcC5hZG1vbml0aW9uLXRpdGxlOmFmdGVy
IHsKLSAgICBjb250ZW50OiAiOiI7Ci19Ci0KLXByZSwgdHQsIGNvZGUgewotICAgIGZvbnQtZmFt
aWx5OiAnQ29uc29sYXMnLCAnTWVubG8nLCAnRGVqYSBWdSBTYW5zIE1vbm8nLCAnQml0c3RyZWFt
IFZlcmEgU2FucyBNb25vJywgbW9ub3NwYWNlOwotICAgIGZvbnQtc2l6ZTogMC45ZW07Ci0gICAg
YmFja2dyb3VuZDogI2VlZTsKLX0KLQotaW1nLnNjcmVlbnNob3QgewotfQotCi10dC5kZXNjbmFt
ZSwgdHQuZGVzY2NsYXNzbmFtZSB7Ci0gICAgZm9udC1zaXplOiAwLjk1ZW07Ci19Ci0KLXR0LmRl
c2NuYW1lIHsKLSAgICBwYWRkaW5nLXJpZ2h0OiAwLjA4ZW07Ci19Ci0KLWltZy5zY3JlZW5zaG90
IHsKLSAgICAtbW96LWJveC1zaGFkb3c6IDJweCAycHggNHB4ICNlZWU7Ci0gICAgLXdlYmtpdC1i
b3gtc2hhZG93OiAycHggMnB4IDRweCAjZWVlOwotICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4
ICNlZWU7Ci19Ci0KLXRhYmxlLmRvY3V0aWxzIHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4
OwotICAgIC1tb3otYm94LXNoYWRvdzogMnB4IDJweCA0cHggI2VlZTsKLSAgICAtd2Via2l0LWJv
eC1zaGFkb3c6IDJweCAycHggNHB4ICNlZWU7Ci0gICAgYm94LXNoYWRvdzogMnB4IDJweCA0cHgg
I2VlZTsKLX0KLQotdGFibGUuZG9jdXRpbHMgdGQsIHRhYmxlLmRvY3V0aWxzIHRoIHsKLSAgICBi
b3JkZXI6IDFweCBzb2xpZCAjODg4OwotICAgIHBhZGRpbmc6IDAuMjVlbSAwLjdlbTsKLX0KLQot
dGFibGUuZmllbGQtbGlzdCwgdGFibGUuZm9vdG5vdGUgewotICAgIGJvcmRlcjogbm9uZTsKLSAg
ICAtbW96LWJveC1zaGFkb3c6IG5vbmU7Ci0gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwot
ICAgIGJveC1zaGFkb3c6IG5vbmU7Ci19Ci0KLXRhYmxlLmZvb3Rub3RlIHsKLSAgICBtYXJnaW46
IDE1cHggMDsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlOwot
ICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7Ci0gICAgZm9udC1zaXplOiAwLjllbTsKLX0KLQotdGFi
bGUuZm9vdG5vdGUgKyB0YWJsZS5mb290bm90ZSB7Ci0gICAgbWFyZ2luLXRvcDogLTE1cHg7Ci0g
ICAgYm9yZGVyLXRvcDogbm9uZTsKLX0KLQotdGFibGUuZmllbGQtbGlzdCB0aCB7Ci0gICAgcGFk
ZGluZzogMCAwLjhlbSAwIDA7Ci19Ci0KLXRhYmxlLmZpZWxkLWxpc3QgdGQgewotICAgIHBhZGRp
bmc6IDA7Ci19Ci0KLXRhYmxlLmZvb3Rub3RlIHRkLmxhYmVsIHsKLSAgICB3aWR0aDogMHB4Owot
ICAgIHBhZGRpbmc6IDAuM2VtIDAgMC4zZW0gMC41ZW07Ci19Ci0KLXRhYmxlLmZvb3Rub3RlIHRk
IHsKLSAgICBwYWRkaW5nOiAwLjNlbSAwLjVlbTsKLX0KLQotZGwgewotICAgIG1hcmdpbjogMDsK
LSAgICBwYWRkaW5nOiAwOwotfQotCi1kbCBkZCB7Ci0gICAgbWFyZ2luLWxlZnQ6IDMwcHg7Ci19
Ci0KLWJsb2NrcXVvdGUgewotICAgIG1hcmdpbjogMCAwIDAgMzBweDsKLSAgICBwYWRkaW5nOiAw
OwotfQotCi11bCwgb2wgewotICAgIG1hcmdpbjogMTBweCAwIDEwcHggMzBweDsKLSAgICBwYWRk
aW5nOiAwOwotfQotCi1wcmUgewotICAgIGJhY2tncm91bmQ6ICNlZWU7Ci0gICAgcGFkZGluZzog
N3B4IDMwcHg7Ci0gICAgbWFyZ2luOiAxNXB4IC0zMHB4OwotICAgIGxpbmUtaGVpZ2h0OiAxLjNl
bTsKLX0KLQotZGwgcHJlLCBibG9ja3F1b3RlIHByZSwgbGkgcHJlIHsKLSAgICBtYXJnaW4tbGVm
dDogLTYwcHg7Ci0gICAgcGFkZGluZy1sZWZ0OiA2MHB4OwotfQotCi1kbCBkbCBwcmUgewotICAg
IG1hcmdpbi1sZWZ0OiAtOTBweDsKLSAgICBwYWRkaW5nLWxlZnQ6IDkwcHg7Ci19Ci0KLXR0IHsK
LSAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNmMGYzOwotICAgIGNvbG9yOiAjMjIyOwotICAgIC8q
IHBhZGRpbmc6IDFweCAycHg7ICovCi19Ci0KLXR0LnhyZWYsIGEgdHQgewotICAgIGJhY2tncm91
bmQtY29sb3I6ICNGQkZCRkI7Ci0gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlOwot
fQotCi1hLnJlZmVyZW5jZSB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwotICAgIGJvcmRl
ci1ib3R0b206IDFweCBkb3R0ZWQge3sgbGlua19jb2xvciB9fTsKLX0KLQotYS5yZWZlcmVuY2U6
aG92ZXIgewotICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB7eyBsaW5rX2hvdmVyX2NvbG9y
IH19OwotfQotCi1hLmZvb3Rub3RlLXJlZmVyZW5jZSB7Ci0gICAgdGV4dC1kZWNvcmF0aW9uOiBu
b25lOwotICAgIGZvbnQtc2l6ZTogMC43ZW07Ci0gICAgdmVydGljYWwtYWxpZ246IHRvcDsKLSAg
ICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHt7IGxpbmtfY29sb3IgfX07Ci19Ci0KLWEuZm9v
dG5vdGUtcmVmZXJlbmNlOmhvdmVyIHsKLSAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQge3sg
bGlua19ob3Zlcl9jb2xvciB9fTsKLX0KLQotYTpob3ZlciB0dCB7Ci0gICAgYmFja2dyb3VuZDog
I0VFRTsKLX0KLQotCi1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4NzBweCkgewotCi0g
ICAgZGl2LnNwaGlueHNpZGViYXIgewotICAgICAgICBkaXNwbGF5OiBub25lOwotICAgIH0KLQot
ICAgIGRpdi5kb2N1bWVudCB7Ci0gICAgICAgd2lkdGg6IDEwMCU7Ci0KLSAgICB9Ci0KLSAgICBk
aXYuZG9jdW1lbnR3cmFwcGVyIHsKLSAgICAgICAgbWFyZ2luLWxlZnQ6IDA7Ci0gICAgICAgIG1h
cmdpbi10b3A6IDA7Ci0gICAgICAgIG1hcmdpbi1yaWdodDogMDsKLSAgICAgICAgbWFyZ2luLWJv
dHRvbTogMDsKLSAgICB9Ci0KLSAgICBkaXYuYm9keXdyYXBwZXIgewotICAgICAgICBtYXJnaW4t
dG9wOiAwOwotICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7Ci0gICAgICAgIG1hcmdpbi1ib3R0b206
IDA7Ci0gICAgICAgIG1hcmdpbi1sZWZ0OiAwOwotICAgIH0KLQotICAgIHVsIHsKLSAgICAgICAg
bWFyZ2luLWxlZnQ6IDA7Ci0gICAgfQotCi0gICAgLmRvY3VtZW50IHsKLSAgICAgICAgd2lkdGg6
IGF1dG87Ci0gICAgfQotCi0gICAgLmZvb3RlciB7Ci0gICAgICAgIHdpZHRoOiBhdXRvOwotICAg
IH0KLQotICAgIC5ib2R5d3JhcHBlciB7Ci0gICAgICAgIG1hcmdpbjogMDsKLSAgICB9Ci0KLSAg
ICAuZm9vdGVyIHsKLSAgICAgICAgd2lkdGg6IGF1dG87Ci0gICAgfQotCi0gICAgLmdpdGh1YiB7
Ci0gICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgfQotCi0KLQotfQotCi0KLQotQG1lZGlhIHNj
cmVlbiBhbmQgKG1heC13aWR0aDogODc1cHgpIHsKLQotICAgIGJvZHkgewotICAgICAgICBtYXJn
aW46IDA7Ci0gICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDsKLSAgICB9Ci0KLSAgICBkaXYuZG9j
dW1lbnR3cmFwcGVyIHsKLSAgICAgICAgZmxvYXQ6IG5vbmU7Ci0gICAgICAgIGJhY2tncm91bmQ6
IHdoaXRlOwotICAgIH0KLQotICAgIGRpdi5zcGhpbnhzaWRlYmFyIHsKLSAgICAgICAgZGlzcGxh
eTogYmxvY2s7Ci0gICAgICAgIGZsb2F0OiBub25lOwotICAgICAgICB3aWR0aDogMTAyLjUlOwot
ICAgICAgICBtYXJnaW46IDUwcHggLTMwcHggLTIwcHggLTMwcHg7Ci0gICAgICAgIHBhZGRpbmc6
IDEwcHggMjBweDsKLSAgICAgICAgYmFja2dyb3VuZDogIzMzMzsKLSAgICAgICAgY29sb3I6IHdo
aXRlOwotICAgIH0KLQotICAgIGRpdi5zcGhpbnhzaWRlYmFyIGgzLCBkaXYuc3BoaW54c2lkZWJh
ciBoNCwgZGl2LnNwaGlueHNpZGViYXIgcCwKLSAgICBkaXYuc3BoaW54c2lkZWJhciBoMyBhLCBk
aXYuc3BoaW54c2lkZWJhciB1bCB7Ci0gICAgICAgIGNvbG9yOiB3aGl0ZTsKLSAgICB9Ci0KLSAg
ICBkaXYuc3BoaW54c2lkZWJhciBhIHsKLSAgICAgICAgY29sb3I6ICNhYWE7Ci0gICAgfQotCi0g
ICAgZGl2LnNwaGlueHNpZGViYXIgcC5sb2dvIHsKLSAgICAgICAgZGlzcGxheTogbm9uZTsKLSAg
ICB9Ci0KLSAgICBkaXYuZG9jdW1lbnQgewotICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgICAg
bWFyZ2luOiAwOwotICAgIH0KLQotICAgIGRpdi5yZWxhdGVkIHsKLSAgICAgICAgZGlzcGxheTog
YmxvY2s7Ci0gICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgcGFkZGluZzogMTBweCAwIDIwcHgg
MDsKLSAgICB9Ci0KLSAgICBkaXYucmVsYXRlZCB1bCwKLSAgICBkaXYucmVsYXRlZCB1bCBsaSB7
Ci0gICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgcGFkZGluZzogMDsKLSAgICB9Ci0KLSAgICBk
aXYuZm9vdGVyIHsKLSAgICAgICAgZGlzcGxheTogbm9uZTsKLSAgICB9Ci0KLSAgICBkaXYuYm9k
eXdyYXBwZXIgewotICAgICAgICBtYXJnaW46IDA7Ci0gICAgfQotCi0gICAgZGl2LmJvZHkgewot
ICAgICAgICBtaW4taGVpZ2h0OiAwOwotICAgICAgICBwYWRkaW5nOiAwOwotICAgIH0KLQotICAg
IC5ydGRfZG9jX2Zvb3RlciB7Ci0gICAgICAgIGRpc3BsYXk6IG5vbmU7Ci0gICAgfQotCi0gICAg
LmRvY3VtZW50IHsKLSAgICAgICAgd2lkdGg6IGF1dG87Ci0gICAgfQotCi0gICAgLmZvb3RlciB7
Ci0gICAgICAgIHdpZHRoOiBhdXRvOwotICAgIH0KLQotICAgIC5mb290ZXIgewotICAgICAgICB3
aWR0aDogYXV0bzsKLSAgICB9Ci0KLSAgICAuZ2l0aHViIHsKLSAgICAgICAgZGlzcGxheTogbm9u
ZTsKLSAgICB9Ci19Ci0KLS8qIG1pc2MuICovCi0KLS5yZXZzeXMtaW5saW5lIHsKLSAgICBkaXNw
bGF5OiBub25lIWltcG9ydGFudDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGhlbWVzL2ZsYXNrL3N0YXRpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGhlbWVzL2ZsYXNrL3N0YXRpYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjg0NzRmOTcwZWFlNTg5NzE1Yjg0Y2Y3MjUwYmZhNDMwMTlhYTI5My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vX3RoZW1lcy9mbGFzay9zdGF0aWMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9z
dGF0aWMvZmxhc2t5LmNzc190CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9mbGFzay90aGVtZS5jb25mIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhl
bWUuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcyYjAwMjgzOTMwNGRjZDI4
NzExMTc4N2E5ZGVjYTJiNjliNTZiYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay90aGVtZS5jb25m
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1bdGhlbWVdCi1pbmhlcml0ID0gYmFzaWMK
LXN0eWxlc2hlZXQgPSBmbGFza3kuY3NzCi1weWdtZW50c19zdHlsZSA9IGZsYXNrX3RoZW1lX3N1
cHBvcnQuRmxhc2t5U3R5bGUKLQotW29wdGlvbnNdCi1pbmRleF9sb2dvID0gJycKLWluZGV4X2xv
Z29faGVpZ2h0ID0gMTIwcHgKLXRvdWNoX2ljb24gPQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190aGVtZXMvZmxhc2svdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RoZW1lcy9mbGFzay93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDM2MjZhYmEzNmY2YTk1ZjEwNzk2OTE3MWE1MzU5OTJhY2E5MmU4Ni4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3Ro
ZW1lcy9mbGFzay93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL2xheW91dC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay90aGVtZS5jb25mCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFza190aGVtZV9zdXBwb3J0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMGRjZjUzYjc1NDJiNzA5M2UyYmQ4OTYxNWU1MzIwMjM2MDU0MTdlYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vX3RoZW1lcy9mbGFza190aGVtZV9zdXBwb3J0LnB5CisrKyAvZGV2L251bGwKQEAgLTEs
ODkgKzAsMCBAQAotIyBmbGFza3kgZXh0ZW5zaW9ucy4gIGZsYXNreSBweWdtZW50cyBzdHlsZSBi
YXNlZCBvbiB0YW5nbyBzdHlsZQotZnJvbSBweWdtZW50cy5zdHlsZSBpbXBvcnQgU3R5bGUKLWZy
b20gcHlnbWVudHMudG9rZW4gaW1wb3J0ICgKLSAgICBLZXl3b3JkLAotICAgIE5hbWUsCi0gICAg
Q29tbWVudCwKLSAgICBTdHJpbmcsCi0gICAgRXJyb3IsCi0gICAgTnVtYmVyLAotICAgIE9wZXJh
dG9yLAotICAgIEdlbmVyaWMsCi0gICAgV2hpdGVzcGFjZSwKLSAgICBQdW5jdHVhdGlvbiwKLSAg
ICBPdGhlciwKLSAgICBMaXRlcmFsLAotKQotCi0KLWNsYXNzIEZsYXNreVN0eWxlKFN0eWxlKToK
LSAgICBiYWNrZ3JvdW5kX2NvbG9yID0gIiNmOGY4ZjgiCi0gICAgZGVmYXVsdF9zdHlsZSA9ICIi
Ci0KLSAgICBzdHlsZXMgPSB7Ci0gICAgICAgICMgTm8gY29ycmVzcG9uZGluZyBjbGFzcyBmb3Ig
dGhlIGZvbGxvd2luZzoKLSAgICAgICAgIyBUZXh0OiAgICAgICAgICAgICAgICAgICAgICIiLCAj
IGNsYXNzOiAgJycKLSAgICAgICAgV2hpdGVzcGFjZTogInVuZGVybGluZSAjZjhmOGY4IiwgICMg
Y2xhc3M6ICd3JwotICAgICAgICBFcnJvcjogIiNhNDAwMDAgYm9yZGVyOiNlZjI5MjkiLCAgIyBj
bGFzczogJ2VycicKLSAgICAgICAgT3RoZXI6ICIjMDAwMDAwIiwgICMgY2xhc3MgJ3gnCi0gICAg
ICAgIENvbW1lbnQ6ICJpdGFsaWMgIzhmNTkwMiIsICAjIGNsYXNzOiAnYycKLSAgICAgICAgQ29t
bWVudC5QcmVwcm9jOiAibm9pdGFsaWMiLCAgIyBjbGFzczogJ2NwJwotICAgICAgICBLZXl3b3Jk
OiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6ICdrJwotICAgICAgICBLZXl3b3JkLkNvbnN0YW50
OiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6ICdrYycKLSAgICAgICAgS2V5d29yZC5EZWNsYXJh
dGlvbjogImJvbGQgIzAwNDQ2MSIsICAjIGNsYXNzOiAna2QnCi0gICAgICAgIEtleXdvcmQuTmFt
ZXNwYWNlOiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6ICdrbicKLSAgICAgICAgS2V5d29yZC5Q
c2V1ZG86ICJib2xkICMwMDQ0NjEiLCAgIyBjbGFzczogJ2twJwotICAgICAgICBLZXl3b3JkLlJl
c2VydmVkOiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6ICdrcicKLSAgICAgICAgS2V5d29yZC5U
eXBlOiAiYm9sZCAjMDA0NDYxIiwgICMgY2xhc3M6ICdrdCcKLSAgICAgICAgT3BlcmF0b3I6ICIj
NTgyODAwIiwgICMgY2xhc3M6ICdvJwotICAgICAgICBPcGVyYXRvci5Xb3JkOiAiYm9sZCAjMDA0
NDYxIiwgICMgY2xhc3M6ICdvdycgLSBsaWtlIGtleXdvcmRzCi0gICAgICAgIFB1bmN0dWF0aW9u
OiAiYm9sZCAjMDAwMDAwIiwgICMgY2xhc3M6ICdwJwotICAgICAgICAjIGJlY2F1c2Ugc3BlY2lh
bCBuYW1lcyBzdWNoIGFzIE5hbWUuQ2xhc3MsIE5hbWUuRnVuY3Rpb24sIGV0Yy4KLSAgICAgICAg
IyBhcmUgbm90IHJlY29nbml6ZWQgYXMgc3VjaCBsYXRlciBpbiB0aGUgcGFyc2luZywgd2UgY2hv
b3NlIHRoZW0KLSAgICAgICAgIyB0byBsb29rIHRoZSBzYW1lIGFzIG9yZGluYXJ5IHZhcmlhYmxl
cy4KLSAgICAgICAgTmFtZTogIiMwMDAwMDAiLCAgIyBjbGFzczogJ24nCi0gICAgICAgIE5hbWUu
QXR0cmlidXRlOiAiI2M0YTAwMCIsICAjIGNsYXNzOiAnbmEnIC0gdG8gYmUgcmV2aXNlZAotICAg
ICAgICBOYW1lLkJ1aWx0aW46ICIjMDA0NDYxIiwgICMgY2xhc3M6ICduYicKLSAgICAgICAgTmFt
ZS5CdWlsdGluLlBzZXVkbzogIiMzNDY1YTQiLCAgIyBjbGFzczogJ2JwJwotICAgICAgICBOYW1l
LkNsYXNzOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnbmMnIC0gdG8gYmUgcmV2aXNlZAotICAgICAg
ICBOYW1lLkNvbnN0YW50OiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnbm8nIC0gdG8gYmUgcmV2aXNl
ZAotICAgICAgICBOYW1lLkRlY29yYXRvcjogIiM4ODgiLCAgIyBjbGFzczogJ25kJyAtIHRvIGJl
IHJldmlzZWQKLSAgICAgICAgTmFtZS5FbnRpdHk6ICIjY2U1YzAwIiwgICMgY2xhc3M6ICduaScK
LSAgICAgICAgTmFtZS5FeGNlcHRpb246ICJib2xkICNjYzAwMDAiLCAgIyBjbGFzczogJ25lJwot
ICAgICAgICBOYW1lLkZ1bmN0aW9uOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnbmYnCi0gICAgICAg
IE5hbWUuUHJvcGVydHk6ICIjMDAwMDAwIiwgICMgY2xhc3M6ICdweScKLSAgICAgICAgTmFtZS5M
YWJlbDogIiNmNTc5MDAiLCAgIyBjbGFzczogJ25sJwotICAgICAgICBOYW1lLk5hbWVzcGFjZTog
IiMwMDAwMDAiLCAgIyBjbGFzczogJ25uJyAtIHRvIGJlIHJldmlzZWQKLSAgICAgICAgTmFtZS5P
dGhlcjogIiMwMDAwMDAiLCAgIyBjbGFzczogJ254JwotICAgICAgICBOYW1lLlRhZzogImJvbGQg
IzAwNDQ2MSIsICAjIGNsYXNzOiAnbnQnIC0gbGlrZSBhIGtleXdvcmQKLSAgICAgICAgTmFtZS5W
YXJpYWJsZTogIiMwMDAwMDAiLCAgIyBjbGFzczogJ252JyAtIHRvIGJlIHJldmlzZWQKLSAgICAg
ICAgTmFtZS5WYXJpYWJsZS5DbGFzczogIiMwMDAwMDAiLCAgIyBjbGFzczogJ3ZjJyAtIHRvIGJl
IHJldmlzZWQKLSAgICAgICAgTmFtZS5WYXJpYWJsZS5HbG9iYWw6ICIjMDAwMDAwIiwgICMgY2xh
c3M6ICd2ZycgLSB0byBiZSByZXZpc2VkCi0gICAgICAgIE5hbWUuVmFyaWFibGUuSW5zdGFuY2U6
ICIjMDAwMDAwIiwgICMgY2xhc3M6ICd2aScgLSB0byBiZSByZXZpc2VkCi0gICAgICAgIE51bWJl
cjogIiM5OTAwMDAiLCAgIyBjbGFzczogJ20nCi0gICAgICAgIExpdGVyYWw6ICIjMDAwMDAwIiwg
ICMgY2xhc3M6ICdsJwotICAgICAgICBMaXRlcmFsLkRhdGU6ICIjMDAwMDAwIiwgICMgY2xhc3M6
ICdsZCcKLSAgICAgICAgU3RyaW5nOiAiIzRlOWEwNiIsICAjIGNsYXNzOiAncycKLSAgICAgICAg
U3RyaW5nLkJhY2t0aWNrOiAiIzRlOWEwNiIsICAjIGNsYXNzOiAnc2InCi0gICAgICAgIFN0cmlu
Zy5DaGFyOiAiIzRlOWEwNiIsICAjIGNsYXNzOiAnc2MnCi0gICAgICAgIFN0cmluZy5Eb2M6ICJp
dGFsaWMgIzhmNTkwMiIsICAjIGNsYXNzOiAnc2QnIC0gbGlrZSBhIGNvbW1lbnQKLSAgICAgICAg
U3RyaW5nLkRvdWJsZTogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3MyJwotICAgICAgICBTdHJpbmcu
RXNjYXBlOiAiIzRlOWEwNiIsICAjIGNsYXNzOiAnc2UnCi0gICAgICAgIFN0cmluZy5IZXJlZG9j
OiAiIzRlOWEwNiIsICAjIGNsYXNzOiAnc2gnCi0gICAgICAgIFN0cmluZy5JbnRlcnBvbDogIiM0
ZTlhMDYiLCAgIyBjbGFzczogJ3NpJwotICAgICAgICBTdHJpbmcuT3RoZXI6ICIjNGU5YTA2Iiwg
ICMgY2xhc3M6ICdzeCcKLSAgICAgICAgU3RyaW5nLlJlZ2V4OiAiIzRlOWEwNiIsICAjIGNsYXNz
OiAnc3InCi0gICAgICAgIFN0cmluZy5TaW5nbGU6ICIjNGU5YTA2IiwgICMgY2xhc3M6ICdzMScK
LSAgICAgICAgU3RyaW5nLlN5bWJvbDogIiM0ZTlhMDYiLCAgIyBjbGFzczogJ3NzJwotICAgICAg
ICBHZW5lcmljOiAiIzAwMDAwMCIsICAjIGNsYXNzOiAnZycKLSAgICAgICAgR2VuZXJpYy5EZWxl
dGVkOiAiI2E0MDAwMCIsICAjIGNsYXNzOiAnZ2QnCi0gICAgICAgIEdlbmVyaWMuRW1waDogIml0
YWxpYyAjMDAwMDAwIiwgICMgY2xhc3M6ICdnZScKLSAgICAgICAgR2VuZXJpYy5FcnJvcjogIiNl
ZjI5MjkiLCAgIyBjbGFzczogJ2dyJwotICAgICAgICBHZW5lcmljLkhlYWRpbmc6ICJib2xkICMw
MDAwODAiLCAgIyBjbGFzczogJ2doJwotICAgICAgICBHZW5lcmljLkluc2VydGVkOiAiIzAwQTAw
MCIsICAjIGNsYXNzOiAnZ2knCi0gICAgICAgIEdlbmVyaWMuT3V0cHV0OiAiIzg4OCIsICAjIGNs
YXNzOiAnZ28nCi0gICAgICAgIEdlbmVyaWMuUHJvbXB0OiAiIzc0NTMzNCIsICAjIGNsYXNzOiAn
Z3AnCi0gICAgICAgIEdlbmVyaWMuU3Ryb25nOiAiYm9sZCAjMDAwMDAwIiwgICMgY2xhc3M6ICdn
cycKLSAgICAgICAgR2VuZXJpYy5TdWJoZWFkaW5nOiAiYm9sZCAjODAwMDgwIiwgICMgY2xhc3M6
ICdndScKLSAgICAgICAgR2VuZXJpYy5UcmFjZWJhY2s6ICJib2xkICNhNDAwMDAiLCAgIyBjbGFz
czogJ2d0JwotICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2NTY1NDhkMGRhNzk1MjRlOGFhYjdmM2I5
NzM1MTg2ZjhiOTBiMjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL190aGVtZXMvZmxhc2tfdGhlbWVfc3VwcG9ydC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmNzZmZWM3MDRlYTE5YjgyZTQ4Y2FkY2E4NTE3MmU3Mjc4NDhiZmQxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE1MyArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4wLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi4wLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4w
LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjAucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjEucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi4xLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi4yLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4yLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjIucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjQucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4zLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4zLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjQu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjUucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi40LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi41LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41
LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjIucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjAucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi42LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi42LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi43LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjEucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjIucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi44LjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi44LjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjYu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjcucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjAucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi45LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4w
LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjIucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4wLjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4wLjYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4wLjcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjAucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjEucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy4xMC4wLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTMuMTAuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIu
MC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMS5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMi5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjIuNC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjIuNS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0z
LjMuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjMuMS5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjMuMi5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjQuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjQuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjQuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0zLjUuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjUuMS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjYuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjYuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjYuNC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcu
MC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMS5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMi5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjcuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjcuNC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0zLjguMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0z
LjguMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjguMi5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMC5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjkuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjkuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjAuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjAuMi5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMC5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjEuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS00LjIuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS00LjIuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMu
MC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjMuMS5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMC5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjQuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS00LjQuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS00LjUuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00
LjYuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMS5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMi5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS00LjYuNS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS00LjYuNi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuNy5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS00LjYuOS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjAuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS01LjAuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS01LjEuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjEu
MS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjEuMi5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjEuMy5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjIuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS01LjIuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS01LjIuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01
LjIuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjIuNC5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjMuMC5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjMuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS01LjMuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS01LjMuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS01LjMuNC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjMuNS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjQuMC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjQuMS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYW5ub3VuY2UvcmVsZWFzZS01LjQuMi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS01LjQuMy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS02LjAuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS02LjAu
MHJjMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS02LjAuMS5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS02LjAuMi5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS02LjEuMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS02LjEuMS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2Uvc3ByaW50MjAxNi5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmln
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDJiMmI2YmM4
NjdhNTM1YTliNTJhY2Q4MmEzMTVjYjUyYTM5YWViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlv
bi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3Nl
cnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy90ZXN0X2hl
bGxvX3dvcmxkLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3Nl
cnRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRp
b24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMjJhYjkz
NzhmYmQ0YjU0MGU5ODM3ZWNjMDQ3YzY2ZjgwMDcwN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0
aW9uL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi90ZXN0X2ZhaWx1cmVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFt
cGxlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1
cC9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL2Nv
bmZ0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjZjNjJjMDZhYjg4MDNl
MWM0Yjc0ODNjNzg3NDBlNjMxMDYxZGZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL2Nv
bmZ0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotCi1pbXBvcnQgcHl0ZXN0
Ci0KLQotQHB5dGVzdC5maXh0dXJlKCJzZXNzaW9uIikKLWRlZiBzZXR1cChyZXF1ZXN0KToKLSAg
ICBzZXR1cCA9IENvc3RseVNldHVwKCkKLSAgICB5aWVsZCBzZXR1cAotICAgIHNldHVwLmZpbmFs
aXplKCkKLQotCi1jbGFzcyBDb3N0bHlTZXR1cChvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICBpbXBvcnQgdGltZQotCi0gICAgICAgIHByaW50KCJwZXJmb3JtaW5n
IGNvc3RseSBzZXR1cCIpCi0gICAgICAgIHRpbWUuc2xlZXAoNSkKLSAgICAgICAgc2VsZi50aW1l
Y29zdGx5ID0gMQotCi0gICAgZGVmIGZpbmFsaXplKHNlbGYpOgotICAgICAgICBkZWwgc2VsZi50
aW1lY29zdGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlz
ZXR1cC9zdWIxL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5
c2V0dXAvc3ViMS9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzky
ZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWIxL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
IwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
MS90ZXN0X3F1aWNrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViMS90ZXN0X3F1aWNrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTc2NTc4
NjdlMDIxZGJlOGM2NDI2N2U1ZWI0Nzc4NDJkNjczYzNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1YjEvdGVzdF9xdWljay5weQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAot
Ci1kZWYgdGVzdF9xdWljayhzZXR1cCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzN2Y2NmExOGJhNzIwOTA0ODI4NDllZmY0OGNk
NzJjMzRjNzc4M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2sucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL19faW5pdF9f
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTJkNjAwNTQ4OWViZWU2MmNkZTAy
MDY2ZjE5YzU1MjFlNjIwNDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19p
bml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi90ZXN0X3R3by5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmVkNmVlNGQ4OThmZjZlZmE3NmU2YTFkNDkwYzRj
ZDFiMGU4YzA0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdvLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1kZWYgdGVzdF9zb21ldGhpbmcoc2V0dXAp
OgotICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKLQotZGVmIHRlc3Rfc29tZXRoaW5n
X21vcmUoc2V0dXApOgotICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMi93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNjQyMGVjODNkODc3
OGJiNTBiYmVhMGE3MGY1MmVmYjk5ZjcyNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViMi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIyL3Rlc3RfdHdv
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWJfYS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVw
L3N1Yl9hL19faW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTJkNjAw
NTQ4OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1Yl9hL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2Ev
dGVzdF9xdWljay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
Yl9hL3Rlc3RfcXVpY2sucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4ZGRhMjY2
MGQyNDZmMWUxZGE2N2M0NTY1MjQ1ZWQxMGE4OTc2YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5
c2V0dXAvc3ViX2EvdGVzdF9xdWljay5weQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
ZGVmIHRlc3RfcXVpY2soc2V0dXApOgotICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhMDU4MTVjZGQwNzQ4ZjRjOWNjN2YzNWEwMjk2
Y2E4OWY3NTZjYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL3Rlc3RfcXVpY2sucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvX19p
bml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5MmQ2MDA1NDg5ZWJlZTYy
Y2RlMDIwNjZmMTljNTUyMWU2MjA0NTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
X2IvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0jCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYi90ZXN0X3R3by5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL3Rlc3RfdHdv
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTY1M2FhYWI4OGE1MTdhNjY3MmI2
MjUzOGQ3NjQ5NDNjZDRjNjgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL3Rl
c3RfdHdvLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1kZWYgdGVzdF9zb21ldGhp
bmcoc2V0dXApOgotICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKLQotCi1kZWYgdGVz
dF9zb21ldGhpbmdfbW9yZShzZXR1cCk6Ci0gICAgYXNzZXJ0IHNldHVwLnRpbWVjb3N0bHkgPT0g
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
X2IvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1
cC9zdWJfYi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRh
Mzk3MDY1NmZiMDc5NTJjZDc4ZDM2YTJhMzliZjRjZjM3MWFlZi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWJfYi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
Yl9iL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViX2IvdGVzdF90d28ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
Y29zdGx5c2V0dXAvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhjMzQ1ZjdjOGQ1MDBhNWUzNzM3NzRhNDM2NzgwMTZjYTk5MzAxZTIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvY29zdGx5c2V0dXAvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25m
dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvZml4dHVyZXMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9maXh0dXJlcy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmU2YjIxYmJkMDJjNzk0
NzBjMjAxMjNlNGE0YmQ3MzUzZGU4NmNjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9maXh0dXJlcy93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9leGFtcGxlL2ZpeHR1cmVzL3Rlc3RfZml4dHVyZXNfb3JkZXIucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9fX2luaXRfXy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9fX2luaXRfXy5weQppbmRl
eCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9ub25weXRob24vX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL25vbnB5dGhvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjdmMGU5OWIwOTIwYzBmNDY4Y2E5YTVkYzMzYzQ4MzYzYmZiMDk3Yi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9ub25weXRob24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRo
b24vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29u
ZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vdGVzdF9zaW1w
bGUueWFtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL2Nv
bmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL2NvbmZ0ZXN0LnB5
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDlhMDdlM2UzMmFjYjRiZmI0MDZkMzAx
ZGY0YWU1MzdjNGVkNzJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My9jb25mdGVzdC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLWltcG9ydCBzeXMKLWltcG9ydCBweXRlc3QKLQot
cHkzID0gc3lzLnZlcnNpb25faW5mb1swXSA+PSAzCi0KLQotY2xhc3MgRHVtbXlDb2xsZWN0b3Io
cHl0ZXN0LmNvbGxlY3QuRmlsZSk6Ci0KLSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAg
cmV0dXJuIFtdCi0KLQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJl
bnQpOgotICAgIGJuID0gcGF0aC5iYXNlbmFtZQotICAgIGlmICJweTMiIGluIGJuIGFuZCBub3Qg
cHkzIG9yICgicHkyIiBpbiBibiBhbmQgcHkzKToKLSAgICAgICAgcmV0dXJuIER1bW15Q29sbGVj
dG9yKHBhdGgsIHBhcmVudD1wYXJlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9weTJweTMvdGVzdF9weTIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eTJweTMvdGVzdF9weTIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2NGFjZjE3
OGEwMDBkNjZmZWI5OWQxZmI5NmMyYjIzNzQ2M2ViMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkz
L3Rlc3RfcHkyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0KLWRlZiB0ZXN0X2V4
Y2VwdGlvbl9zeW50YXgoKToKLSAgICB0cnk6Ci0gICAgICAgIDAvMAotICAgIGV4Y2VwdCBaZXJv
RGl2aXNpb25FcnJvciwgZToKLSAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
YWYwZmZiZDgyMjA2ZTMyNDI2M2Q4OWIzYzdhNjljZTVhMGI1N2FkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L3B5MnB5My90ZXN0X3B5My5weQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotZGVmIHRl
c3RfZXhjZXB0aW9uX3N5bnRheCgpOgotICAgIHRyeToKLSAgICAgICAgMCAvIDAKLSAgICBleGNl
cHQgWmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKLSAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZjhhOGM5NGY0ZTVhZjZiNTk3ZDhlZWM4NTUxMzAzZmJmNTFjNmIyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My9j
b25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5Mi5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5My5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWViZGFhZDFkMjUwNmQ1ZjcyMDZmYWUzZjUwM2M3NGIyMDg2ZjhhNS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2F0dGljLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL25vbnB5dGhvbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
YXJhbWV0cml6ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0
aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3NpbXBsZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9zcGVjaWFsLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vaW1nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjOGVlMzFiNzhhMDAyNGI0MjFiMWMzYTQyMmQwNjdlZmExYjRhMDY5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9pbWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2NyYW1lcjIucG5nCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ltZy9mYXZpY29uLnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZnJlaWJ1cmcyLmpw
ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZ2F5bm9yMy5wbmcKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vaW1nL2tlbGVzaGV2LnBuZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHVsbHJlcXVlc3Qu
cG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weWxpYi5wbmcKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vaW1nL3B5dGVzdDEucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy90aGV1bmkucG5nCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvcG9zYWxzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fscy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDM3MzVlZmZlOTk0ZDhlMTc4OWM3N2IyMWY0MTc5MmIxODNjOWEw
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vcHJvcG9zYWxzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb3Bvc2Fscy9wYXJhbWV0
cml6ZV93aXRoX2ZpeHR1cmVzLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvYXR0aWMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjk0NDY2MWNiNWNlNzE1MGFkOWRmZmU3ZTUzOWRkZjE4
ZDhhMDgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGljLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDExNyAr
MCwwIEBACi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
QVRUSUMgZG9jdW1lbnRhdGlvbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLQotWFhYIFJFVklFVyBhbmQgcmVtb3ZlIHRoZSBiZWxvdyAgWFhYCi0KLUN1
c3RvbWl6aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MKLT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLQotd3JpdGluZyBjb25mdGVzdC5weSBmaWxlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotWW91IG1heSBwdXQgY29uZnRlc3QucHkgZmlsZXMgY29udGFpbmlu
ZyBwcm9qZWN0LXNwZWNpZmljCi1jb25maWd1cmF0aW9uIGluIHlvdXIgcHJvamVjdCdzIHJvb3Qg
ZGlyZWN0b3J5LCBpdCdzIHVzdWFsbHkKLWJlc3QgdG8gcHV0IGl0IGp1c3QgaW50byB0aGUgc2Ft
ZSBkaXJlY3RvcnkgbGV2ZWwgYXMgeW91cgotdG9wbW9zdCBgYF9faW5pdF9fLnB5YGAuICBJbiBm
YWN0LCBgYHB5dGVzdGBgIHBlcmZvcm1zCi1hbiAidXB3YXJkcyIgc2VhcmNoIHN0YXJ0aW5nIGZy
b20gdGhlIGRpcmVjdG9yeSB0aGF0IHlvdSBzcGVjaWZ5Ci10byBiZSB0ZXN0ZWQgYW5kIHdpbGwg
bG9va3VwIGNvbmZpZ3VyYXRpb24gdmFsdWVzIHJpZ2h0LXRvLWxlZnQuCi1Zb3UgbWF5IGhhdmUg
b3B0aW9ucyB0aGF0IHJlc2lkZSBlLmcuIGluIHlvdXIgaG9tZSBkaXJlY3RvcnkKLWJ1dCBub3Rl
IHRoYXQgcHJvamVjdCBzcGVjaWZpYyBzZXR0aW5ncyB3aWxsIGJlIGNvbnNpZGVyZWQKLWZpcnN0
LiAgVGhlcmUgaXMgYSBmbGFnIHRoYXQgaGVscHMgeW91IGRlYnVnZ2luZyB5b3VyCi1jb25mdGVz
dC5weSBjb25maWd1cmF0aW9uczo6Ci0KLSAgICBweXRlc3QgLS10cmFjZS1jb25maWcKLQotCi1j
dXN0b21pemluZyB0aGUgY29sbGVjdGluZyBhbmQgcnVubmluZyBwcm9jZXNzCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBpbnRyb2R1Y2UgZGlm
ZmVyZW50IHRlc3QgaXRlbXMgeW91IGNhbiBjcmVhdGUKLW9uZSBvciBtb3JlIGBgY29uZnRlc3Qu
cHlgYCBmaWxlcyBpbiB5b3VyIHByb2plY3QuCi1XaGVuIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3Mg
dHJhdmVyc2VzIGRpcmVjdG9yaWVzCi1hbmQgbW9kdWxlcyB0aGUgZGVmYXVsdCBjb2xsZWN0b3Jz
IHdpbGwgcHJvZHVjZQotY3VzdG9tIENvbGxlY3RvcnMgYW5kIEl0ZW1zIGlmIHRoZXkgYXJlIGZv
dW5kCi1pbiBhIGxvY2FsIGBgY29uZnRlc3QucHlgYCBmaWxlLgotCi0KLUN1c3RvbWl6aW5nIHRo
ZSBjb2xsZWN0aW9uIHByb2Nlc3MgaW4gYSBtb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotSWYgeW91IGhhdmUgYSBtb2R1bGUgd2hlcmUgeW91
IHdhbnQgdG8gdGFrZSByZXNwb25zaWJpbGl0eSBmb3IKLWNvbGxlY3RpbmcgeW91ciBvd24gdGVz
dCBJdGVtcyBhbmQgcG9zc2libHkgZXZlbiBmb3IgZXhlY3V0aW5nCi1hIHRlc3QgdGhlbiB5b3Ug
Y2FuIHByb3ZpZGUgYGdlbmVyYXRpdmUgdGVzdHNgXyB0aGF0IHlpZWxkCi1jYWxsYWJsZXMgYW5k
IHBvc3NpYmx5IGFyZ3VtZW50cyBhcyBhIHR1cGxlLiAgIFRoaXMgaXMgZXNwZWNpYWxseQotdXNl
ZnVsIGZvciBjYWxsaW5nIGFwcGxpY2F0aW9uIHRlc3QgbWFjaGluZXJ5IHdpdGggZGlmZmVyZW50
Ci1wYXJhbWV0ZXIgc2V0cyBidXQgY291bnRpbmcgZWFjaCBvZiB0aGUgY2FsbHMgYXMgYSBzZXBh
cmF0ZQotdGVzdHMuCi0KLS4uIF9gZ2VuZXJhdGl2ZSB0ZXN0c2A6IGZlYXR1cmVzLmh0bWwjZ2Vu
ZXJhdGl2ZS10ZXN0cwotCi1UaGUgb3RoZXIgZXh0ZW5zaW9uIHBvc3NpYmlsaXR5IGlzIGFib3V0
Ci1zcGVjaWZ5aW5nIGEgY3VzdG9tIHRlc3QgYGBJdGVtYGAgY2xhc3Mgd2hpY2gKLWlzIHJlc3Bv
bnNpYmxlIGZvciBzZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYW4gdW5kZXJseWluZwotdGVzdC4g
IE9yIHlvdSBjYW4gZXh0ZW5kIHRoZSBjb2xsZWN0aW9uIHByb2Nlc3MgZm9yIGEgd2hvbGUKLWRp
cmVjdG9yeSB0cmVlIGJ5IHB1dHRpbmcgSXRlbXMgaW4gYSBgYGNvbmZ0ZXN0LnB5YGAgY29uZmln
dXJhdGlvbiBmaWxlLgotVGhlIGNvbGxlY3Rpb24gcHJvY2VzcyBkeW5hbWljYWxseSBjb25zdWx0
cyB0aGUgKmNoYWluIG9mIGNvbmZ0ZXN0LnB5KgotbW9kdWxlcyB0byBkZXRlcm1pbmUgY29sbGVj
dG9ycyBhbmQgaXRlbXMgYXQgYGBEaXJlY3RvcnlgYCwgYGBNb2R1bGVgYCwKLWBgQ2xhc3NgYCwg
YGBGdW5jdGlvbmBgIG9yIGBgR2VuZXJhdG9yYGAgbGV2ZWwgcmVzcGVjdGl2ZWx5LgotCi1DdXN0
b21pemluZyBleGVjdXRpb24gb2YgSXRlbXMgYW5kIEZ1bmN0aW9ucwotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIGBgcHl0ZXN0LkZ1bmN0
aW9uYGAgdGVzdCBpdGVtcyBjb250cm9sIGV4ZWN1dGlvbgotICBvZiBhIHRlc3QgZnVuY3Rpb24g
dGhyb3VnaCBpdHMgYGBmdW5jdGlvbi5ydW50ZXN0KClgYCBtZXRob2QuCi0gIFRoaXMgbWV0aG9k
IGlzIHJlc3BvbnNpYmxlIGZvciBwZXJmb3JtaW5nIHNldHVwIGFuZCB0ZWFyZG93bgotICAoIlRl
c3QgRml4dHVyZXMiKSBmb3IgYSB0ZXN0IEZ1bmN0aW9uLgotCi0tIGBgRnVuY3Rpb24uZXhlY3V0
ZSh0YXJnZXQsICphcmdzKWBgIG1ldGhvZHMgYXJlIGludm9rZWQgYnkKLSAgdGhlIGRlZmF1bHQg
YGBGdW5jdGlvbi5ydW4oKWBgIHRvIGFjdHVhbGx5IGV4ZWN1dGUgYSBweXRob24KLSAgZnVuY3Rp
b24gd2l0aCB0aGUgZ2l2ZW4gKHVzdWFsbHkgZW1wdHkgc2V0IG9mKSBhcmd1bWVudHMuCi0KLS4u
IF9gcHktZGV2IG1haWxpbmcgbGlzdGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L21haWxtYW4vbGlz
dGluZm8vcHktZGV2Ci0KLQotLi4gX2B0ZXN0IGdlbmVyYXRvcnNgOiBmdW5jYXJncy5odG1sI3Rl
c3QtZ2VuZXJhdG9ycwotCi0uLiBfYGdlbmVyYXRpdmUgdGVzdHNgOgotCi1nZW5lcmF0aXZlIHRl
c3RzOiB5aWVsZGluZyBwYXJhbWV0cml6ZWQgdGVzdHMKLT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotRGVwcmVjYXRlZCBzaW5jZSAxLjAgaW4g
ZmF2b3VyIG9mIGB0ZXN0IGdlbmVyYXRvcnNgXy4KLQotKkdlbmVyYXRpdmUgdGVzdHMqIGFyZSB0
ZXN0IG1ldGhvZHMgdGhhdCBhcmUgKmdlbmVyYXRvciBmdW5jdGlvbnMqIHdoaWNoCi1gYHlpZWxk
YGAgY2FsbGFibGVzIGFuZCB0aGVpciBhcmd1bWVudHMuICBUaGlzIGlzIHVzZWZ1bCBmb3IgcnVu
bmluZyBhCi10ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIGFnYWluc3QgZGlmZmVyZW50IHBh
cmFtZXRlcnMuICBFeGFtcGxlOjoKLQotICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmUoKToKLSAgICAg
ICAgZm9yIHggaW4gKDQyLDE3LDQ5KToKLSAgICAgICAgICAgIHlpZWxkIGNoZWNrLCB4Ci0KLSAg
ICBkZWYgY2hlY2soYXJnKToKLSAgICAgICAgYXNzZXJ0IGFyZyAlIDcgPT0gMCAgICMgc2Vjb25k
IGdlbmVyYXRlZCB0ZXN0cyBmYWlscyEKLQotTm90ZSB0aGF0IGBgdGVzdF9nZW5lcmF0aXZlKClg
YCB3aWxsIGNhdXNlIHRocmVlIHRlc3RzCi10byBnZXQgcnVuLCBub3RhYmx5IGBgY2hlY2soNDIp
YGAsIGBgY2hlY2soMTcpYGAgYW5kIGBgY2hlY2soNDkpYGAKLW9mIHdoaWNoIHRoZSBtaWRkbGUg
b25lIHdpbGwgb2J2aW91c2x5IGZhaWwuCi0KLVRvIG1ha2UgaXQgZWFzaWVyIHRvIGRpc3Rpbmd1
aXNoIHRoZSBnZW5lcmF0ZWQgdGVzdHMgaXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBhbiBleHBs
aWNpdCBuYW1lIGZvciB0aGVtLCBsaWtlIGZvciBleGFtcGxlOjoKLQotICAgIGRlZiB0ZXN0X2dl
bmVyYXRpdmUoKToKLSAgICAgICAgZm9yIHggaW4gKDQyLDE3LDQ5KToKLSAgICAgICAgICAgIHlp
ZWxkICJjYXNlICVkIiAlIHgsIGNoZWNrLCB4Ci0KLQotZGlzYWJsaW5nIGEgdGVzdCBjbGFzcwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1JZiB5b3Ugd2FudCB0byBkaXNhYmxlIGEgY29tcGxl
dGUgdGVzdCBjbGFzcyB5b3UKLWNhbiBzZXQgdGhlIGNsYXNzLWxldmVsIGF0dHJpYnV0ZSBgYGRp
c2FibGVkYGAuCi1Gb3IgZXhhbXBsZSwgaW4gb3JkZXIgdG8gYXZvaWQgcnVubmluZyBzb21lIHRl
c3RzIG9uIFdpbjMyOjoKLQotICAgIGNsYXNzIFRlc3RQb3NpeE9ubHkob2JqZWN0KToKLSAgICAg
ICAgZGlzYWJsZWQgPSBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJwotCi0gICAgICAgIGRlZiB0ZXN0
X3h4eChzZWxmKToKLSAgICAgICAgICAgIC4uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvY29uZmlnLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JhNWE0NmY5ODJlYWEyYTc3OGNmODY1
YjA1MDNkMzBjOGFhYjhkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRw
LWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1jdXN0b21pemUuaHRtbCIgLz4KLSAg
ICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LXZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wp
ID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNj
YXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20v
Z2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3Jp
cHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFj
a2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJh
Y2tQYWdldmlldygpOwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
Ci0gICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUzMjg1NTBhODVjYjEwNTIxYWMyMTZiMjU5MWYyNjg5ZTQ2NGU5MTguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvZGlzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPGh0bWw+Ci0g
ICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IiAx
IDsgVVJMPXBsdWdpbi94ZGlzdC5odG1sIiAvPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6
IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRw
Oi8vd3d3LiIpOwotZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBn
YUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2Ny
aXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLXRyeSB7Ci12YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJV
QS03NTk3Mjc0LTMiKTsKLXBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7Ci19IGNhdGNoKGVy
cikge308L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KLSAgICAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
ZXh0ZW5kLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiYTVhNDZmOTgyZWFh
MmE3NzhjZjg2NWIwNTAzZDMwYzhhYWI4ZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAg
PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9Y3VzdG9taXplLmh0
bWwiIC8+Ci0gICAgPC9oZWFkPgotCi0gICAgPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci12YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3VtZW50LmxvY2F0aW9u
LnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7Ci1kb2N1bWVudC53
cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1hbmFs
eXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIp
KTsKLTwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdHJ5IHsKLXZh
ciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQtMyIpOwotcGFnZVRy
YWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgotICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5k
ZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxYTNiNWE1NGRhMDhjNjcyYzNhZjk3MmU0N2JmN2Q0NmU4ODYxYjVk
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAK
LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotcHl0ZXN0IGRvY3VtZW50
YXRpb24gaW5kZXgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0K
LWZlYXR1cmVzXzogb3ZlcnZpZXcgYW5kIGRpc2N1c3Npb24gb2YgZmVhdHVyZXMuCi0KLXF1aWNr
c3RhcnRfOiBnZXR0aW5nIHN0YXJ0ZWQgd2l0aCB3cml0aW5nIGEgc2ltcGxlIHRlc3QuCi0KLWB0
YWxrcywgdHV0b3JpYWxzLCBleGFtcGxlc2BfOiB0dXRvcmlhbCBleGFtcGxlcywgc2xpZGVzCi0K
LWZ1bmNhcmdzXzogcG93ZXJmdWwgcGFyYW1ldHJpemVkIHRlc3QgZnVuY3Rpb24gc2V0dXAKLQot
YHBsdWdpbnNgXzogbGlzdCBvZiBhdmFpbGFibGUgcGx1Z2lucyB3aXRoIHVzYWdlIGV4YW1wbGVz
IGFuZCBmZWF0dXJlIGRldGFpbHMuCi0KLWN1c3RvbWl6ZV86IGNvbmZpZ3VyYXRpb24sIGN1c3Rv
bWl6YXRpb24sIGV4dGVuc2lvbnMKLQotY2hhbmdlbG9nXzogaGlzdG9yeSBvZiBjaGFuZ2VzIGNv
dmVyaW5nIGxhc3QgcmVsZWFzZXMKLQotKipDb250aW51b3VzIEludGVncmF0aW9uIG9mIHB5dGVz
dCdzIG93biB0ZXN0cyBhbmQgcGx1Z2lucyB3aXRoIEh1ZHNvbioqOgotCi0gICAgYGh0dHA6Ly9o
dWRzb24udGVzdHJ1bi5vcmcvdmlldy9weXRlc3RgXwotCi0uLiBfYGh0dHA6Ly9odWRzb24udGVz
dHJ1bi5vcmcvdmlldy9weXRlc3RgOiBodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0
ZXN0LwotCi0KLS4uIF9jaGFuZ2Vsb2c6IC4uL2NoYW5nZWxvZy5odG1sCi0uLiBfYHBsdWdpbnNg
OiBwbHVnaW4vaW5kZXguaHRtbAotLi4gX2B0YWxrcywgdHV0b3JpYWxzLCBleGFtcGxlc2A6IHRh
bGtzLmh0bWwKLS4uIF9xdWlja3N0YXJ0OiBxdWlja3N0YXJ0Lmh0bWwKLS4uIF9mZWF0dXJlczog
ZmVhdHVyZXMuaHRtbAotLi4gX2Z1bmNhcmdzOiBmdW5jYXJncy5odG1sCi0uLiBfY3VzdG9taXpl
OiBjdXN0b21pemUuaHRtbAotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L21pc3Npb24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYzI1MmRjMGQ4NmE0YzQxNzUzZDY1NjE5ODMyMWFh
OGQ5ZTMyNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi0KLU1pc3Npb24KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotCi1gYHB5dGVzdGBgIHN0cml2ZXMgdG8gbWFrZSB0ZXN0aW5nIGEgZnVuIGFuZCBuby1ib2ls
ZXJwbGF0ZSBlZmZvcnQuCi0KLVRoZSB0b29sIGlzIGRpc3RyaWJ1dGVkIGFzIGEgYHB5dGVzdGAg
cGFja2FnZS4gIEl0cyBwcm9qZWN0IGluZGVwZW5kZW50Ci1gYHB5dGVzdGBgIGNvbW1hbmQgbGlu
ZSB0b29sIGhlbHBzIHlvdSB0bzoKLQotKiByYXBpZGx5IGNvbGxlY3QgYW5kIHJ1biB0ZXN0cwot
KiBydW4gdW5pdC0gb3IgZG9jdGVzdHMsIGZ1bmN0aW9uYWwgb3IgaW50ZWdyYXRpb24gdGVzdHMK
LSogZGlzdHJpYnV0ZSB0ZXN0cyB0byBtdWx0aXBsZSBlbnZpcm9ubWVudHMKLSogdXNlIGxvY2Fs
IG9yIGdsb2JhbCBwbHVnaW5zIGZvciBjdXN0b20gdGVzdCB0eXBlcyBhbmQgc2V0dXAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Nvdi5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU0MWM3ZWY5NDc5MzRlYTU2YWFmNTAyMjhkMzEyOTc1NzRiNWE1N2UuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvcGx1Z2luL2Nvdi5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyMzAgKzAsMCBAQAotCi1wcm9k
dWNlIGNvZGUgY292ZXJhZ2UgcmVwb3J0cyB1c2luZyB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLCBp
bmNsdWRpbmcgc3VwcG9ydCBmb3IgZGlzdHJpYnV0ZWQgdGVzdGluZy4KLT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxv
Y2FsOgotCi1UaGlzIHBsdWdpbiBwcm9kdWNlcyBjb3ZlcmFnZSByZXBvcnRzLiAgSXQgc3VwcG9y
dHMgY2VudHJhbGlzZWQgdGVzdGluZyBhbmQgZGlzdHJpYnV0ZWQgdGVzdGluZyBpbgotYm90aCBs
b2FkIGFuZCBlYWNoIG1vZGVzLiAgSXQgYWxzbyBzdXBwb3J0cyBjb3ZlcmFnZSBvZiBzdWJwcm9j
ZXNzZXMuCi0KLUFsbCBmZWF0dXJlcyBvZmZlcmVkIGJ5IHRoZSBjb3ZlcmFnZSBwYWNrYWdlIHNo
b3VsZCBiZSBhdmFpbGFibGUsIGVpdGhlciB0aHJvdWdoIHB5dGVzdC1jb3Ygb3IKLXRocm91Z2gg
Y292ZXJhZ2UncyBjb25maWcgZmlsZS4KLQotCi1JbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLQot
Ci1UaGUgYHB5dGVzdC1jb3ZgXyBwYWNrYWdlIG1heSBiZSBpbnN0YWxsZWQgd2l0aCBwaXAgb3Ig
ZWFzeV9pbnN0YWxsOjoKLQotICAgIHBpcCBpbnN0YWxsIHB5dGVzdC1jb3YKLSAgICBlYXN5X2lu
c3RhbGwgcHl0ZXN0LWNvdgotCi0uLiBfYHB5dGVzdC1jb3ZgOiBodHRwOi8vcHlwaS5weXRob24u
b3JnL3B5cGkvcHl0ZXN0LWNvdi8KLQotCi1Vbmluc3RhbGxhdGlvbgotLS0tLS0tLS0tLS0tLS0K
LQotVW5pbnN0YWxsaW5nIHBhY2thZ2VzIGlzIHN1cHBvcnRlZCBieSBwaXA6OgotCi0gICAgcGlw
IHVuaW5zdGFsbCBweXRlc3QtY292Ci0KLUhvd2V2ZXIgZWFzeV9pbnN0YWxsIGRvZXMgbm90IHBy
b3ZpZGUgYW4gdW5pbnN0YWxsIGZhY2lsaXR5LgotCi0uLiBJTVBPUlRBTlQ6OgotCi0gICAgRW5z
dXJlIHRoYXQgeW91IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5pdF9jb3ZtYWluLnB0aCBmaWxlIGlu
IHlvdXIKLSAgICBzaXRlLXBhY2thZ2VzIGRpcmVjdG9yeS4KLQotICAgIFRoaXMgZmlsZSBzdGFy
dHMgY292ZXJhZ2UgY29sbGVjdGlvbiBvZiBzdWJwcm9jZXNzZXMgaWYgYXBwcm9wcmlhdGUgZHVy
aW5nCi0gICAgc2l0ZSBpbml0aWFsaXphdGlvbiBhdCBweXRob24gc3RhcnR1cC4KLQotCi1Vc2Fn
ZQotLS0tLS0KLQotQ2VudHJhbGlzZWQgVGVzdGluZwotfn5+fn5+fn5+fn5+fn5+fn5+fgotCi1D
ZW50cmFsaXNlZCB0ZXN0aW5nIHdpbGwgcmVwb3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBv
ZiB0aGUgbWFpbiBwcm9jZXNzIGFuZCBhbGwgb2YgaXQncwotc3VicHJvY2Vzc2VzLgotCi1SdW5u
aW5nIGNlbnRyYWxpc2VkIHRlc3Rpbmc6OgotCi0gICAgcHl0ZXN0IC0tY292IG15cHJvaiB0ZXN0
cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBD
b3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBt
eXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJv
aiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAg
IDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0K
LURpc3RyaWJ1dGVkIFRlc3Rpbmc6IExvYWQKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLQot
RGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8gbG9hZCB3aWxsIHJlcG9y
dCBvbiB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgYWxsIHNsYXZlcy4KLVRoZSBzbGF2ZXMgbWF5
IGJlIHNwcmVhZCBvdXQgb3ZlciBhbnkgbnVtYmVyIG9mIGhvc3RzIGFuZCBlYWNoIHNsYXZlIG1h
eSBiZSBsb2NhdGVkIGFueXdoZXJlIG9uIHRoZQotZmlsZSBzeXN0ZW0uICBFYWNoIHNsYXZlIHdp
bGwgaGF2ZSBpdCdzIHN1YnByb2Nlc3NlcyBtZWFzdXJlZC4KLQotUnVubmluZyBkaXN0cmlidXRl
ZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBsb2FkOjoKLQotICAgIHB5dGVzdCAtLWNv
diBteXByb2ogLW4gMiB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIu
Ni40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAg
ICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAl
Ci0gICAgbXlwcm9qL215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJv
ai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMg
ICAgIDIwICAgIDk0JQotCi0KLUFnYWluIGJ1dCBzcHJlYWQgb3ZlciBkaWZmZXJlbnQgaG9zdHMg
YW5kIGRpZmZlcmVudCBkaXJlY3Rvcmllczo6Ci0KLSAgICBweXRlc3QgLS1jb3YgbXlwcm9qIC0t
ZGlzdCBsb2FkCi0gICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91Z2hAaG9zdDEvL2NoZGlyPXRl
c3RlbnYxCi0gICAgICAgICAgICAtLXR4IHNzaD1tZW1lZG91Z2hAaG9zdDIvL2NoZGlyPS90bXAv
dGVzdGVudjIvL3B5dGhvbj0vdG1wL2VudjEvYmluL3B5dGhvbgotICAgICAgICAgICAgLS1yc3lu
Y2RpciBteXByb2ogLS1yc3luY2RpciB0ZXN0cyAtLXJzeW5jIGV4YW1wbGVzCi0gICAgICAgICAg
ICB0ZXN0cy8KLQotU2hvd3MgYSB0ZXJtaW5hbCByZXBvcnQ6OgotCi0gICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBN
aXNzICBDb3ZlcgotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LSAgICBteXByb2ovX19pbml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9q
L215cHJvaiAgICAgICAgICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4
NiAgICAgIDk0ICAgICAgNyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0gICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0
JQotCi0KLURpc3RyaWJ1dGVkIFRlc3Rpbmc6IEVhY2gKLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn4KLQotRGlzdHJpYnV0ZWQgdGVzdGluZyB3aXRoIGRpc3QgbW9kZSBzZXQgdG8gZWFjaCB3aWxs
IHJlcG9ydCBvbiB0aGUgY29tYmluZWQgY292ZXJhZ2Ugb2YgYWxsIHNsYXZlcy4KLVNpbmNlIGVh
Y2ggc2xhdmUgaXMgcnVubmluZyBhbGwgdGVzdHMgdGhpcyBhbGxvd3MgZ2VuZXJhdGluZyBhIGNv
bWJpbmVkIGNvdmVyYWdlIHJlcG9ydCBmb3IgbXVsdGlwbGUKLWVudmlyb25tZW50cy4KLQotUnVu
bmluZyBkaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBlYWNoOjoKLQot
ICAgIHB5dGVzdCAtLWNvdiBteXByb2ogLS1kaXN0IGVhY2gKLSAgICAgICAgICAgIC0tdHggcG9w
ZW4vL2NoZGlyPS90bXAvdGVzdGVudjMvL3B5dGhvbj0vdXNyL2xvY2FsL3B5dGhvbjI3L2Jpbi9w
eXRob24KLSAgICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3VnaEBob3N0Mi8vY2hkaXI9L3RtcC90
ZXN0ZW52NC8vcHl0aG9uPS90bXAvZW52Mi9iaW4vcHl0aG9uCi0gICAgICAgICAgICAtLXJzeW5j
ZGlyIG15cHJvaiAtLXJzeW5jZGlyIHRlc3RzIC0tcnN5bmMgZXhhbXBsZXMKLSAgICAgICAgICAg
IHRlc3RzLwotCi1TaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6Ci0KLSAgICAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNvdmVyYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXRm
b3JtIGxpbnV4MiwgcHl0aG9uIDIuNi41LWZpbmFsLTAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNy4wLWZpbmFsLTAKLSAgICBOYW1lICAg
ICAgICAgICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAg
ICAgMCAgIDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQl
Ci0gICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQotICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAg
ICAgICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotUmVwb3J0aW5nCi0tLS0tLS0tLS0KLQotSXQg
aXMgcG9zc2libGUgdG8gZ2VuZXJhdGUgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSByZXBvcnRzIGZv
ciBhIHNpbmdsZSB0ZXN0IHJ1bi4KLQotVGhlIGF2YWlsYWJsZSByZXBvcnRzIGFyZSB0ZXJtaW5h
bCAod2l0aCBvciB3aXRob3V0IG1pc3NpbmcgbGluZSBudW1iZXJzIHNob3duKSwgSFRNTCwgWE1M
IGFuZAotYW5ub3RhdGVkIHNvdXJjZSBjb2RlLgotCi1UaGUgdGVybWluYWwgcmVwb3J0IHdpdGhv
dXQgbGluZSBudW1iZXJzIChkZWZhdWx0KTo6Ci0KLSAgICBweXRlc3QgLS1jb3YtcmVwb3J0IHRl
cm0gLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJh
Z2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNzICBDb3ZlcgotICAg
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBteXByb2ovX19p
bml0X18gICAgICAgICAgMiAgICAgIDAgICAxMDAlCi0gICAgbXlwcm9qL215cHJvaiAgICAgICAg
ICAyNTcgICAgIDEzICAgIDk0JQotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAg
NyAgICA5MiUKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g
ICAgVE9UQUwgICAgICAgICAgICAgICAgICAzNTMgICAgIDIwICAgIDk0JQotCi0KLVRoZSB0ZXJt
aW5hbCByZXBvcnQgd2l0aCBsaW5lIG51bWJlcnM6OgotCi0gICAgcHl0ZXN0IC0tY292LXJlcG9y
dCB0ZXJtLW1pc3NpbmcgLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0gICAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0gY292ZXJhZ2U6IHBsYXRmb3JtIGxpbnV4MiwgcHl0aG9uIDIuNi40LWZpbmFsLTAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgTmFtZSAgICAgICAgICAgICAgICAgU3RtdHMgICBNaXNz
ICBDb3ZlciAgIE1pc3NpbmcKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAg
IDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlICAgMjQt
MjYsIDk5LCAxNDksIDIzMy0yMzYsIDI5Ny0yOTgsIDM2OS0zNzAKLSAgICBteXByb2ovZmVhdHVy
ZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlICAgMTgzLTE4OCwgMTk3Ci0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAg
ICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotVGhlIHJlbWFpbmluZyB0aHJlZSBy
ZXBvcnRzIG91dHB1dCB0byBmaWxlcyB3aXRob3V0IHNob3dpbmcgYW55dGhpbmcgb24gdGhlIHRl
cm1pbmFsICh1c2VmdWwgZm9yCi13aGVuIHRoZSBvdXRwdXQgaXMgZ29pbmcgdG8gYSBjb250aW51
b3VzIGludGVncmF0aW9uIHNlcnZlcik6OgotCi0gICAgcHl0ZXN0IC0tY292LXJlcG9ydCBodG1s
IC0tY292LXJlcG9ydCB4bWwgLS1jb3YtcmVwb3J0IGFubm90YXRlIC0tY292IG15cHJvaiB0ZXN0
cy8KLQotCi1Db3ZlcmFnZSBEYXRhIEZpbGUKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgZGF0
YSBmaWxlIGlzIGVyYXNlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRlc3RpbmcgdG8gZW5zdXJlIGNs
ZWFuIGRhdGEgZm9yIGVhY2ggdGVzdCBydW4uCi0KLVRoZSBkYXRhIGZpbGUgaXMgbGVmdCBhdCB0
aGUgZW5kIG9mIHRlc3Rpbmcgc28gdGhhdCBpdCBpcyBwb3NzaWJsZSB0byB1c2Ugbm9ybWFsIGNv
dmVyYWdlIHRvb2xzIHRvCi1leGFtaW5lIGl0LgotCi0KLUxpbWl0YXRpb25zCi0tLS0tLS0tLS0t
LQotCi1Gb3IgZGlzdHJpYnV0ZWQgdGVzdGluZyB0aGUgc2xhdmVzIG11c3QgaGF2ZSB0aGUgcHl0
ZXN0LWNvdiBwYWNrYWdlIGluc3RhbGxlZC4gIFRoaXMgaXMgbmVlZGVkIHNpbmNlCi10aGUgcGx1
Z2luIG11c3QgYmUgcmVnaXN0ZXJlZCB0aHJvdWdoIHNldHVwdG9vbHMgLyBkaXN0cmlidXRlIGZv
ciBweXRlc3QgdG8gc3RhcnQgdGhlIHBsdWdpbiBvbiB0aGUKLXNsYXZlLgotCi1Gb3Igc3VicHJv
Y2VzcyBtZWFzdXJlbWVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbXVzdCBtYWtlIGl0IGZyb20g
dGhlIG1haW4gcHJvY2VzcyB0byB0aGUKLXN1YnByb2Nlc3MuICBUaGUgcHl0aG9uIHVzZWQgYnkg
dGhlIHN1YnByb2Nlc3MgbXVzdCBoYXZlIHB5dGVzdC1jb3YgaW5zdGFsbGVkLiAgVGhlIHN1YnBy
b2Nlc3MgbXVzdAotZG8gbm9ybWFsIHNpdGUgaW5pdGlhbGl6YXRpb24gc28gdGhhdCB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGVzIGNhbiBiZSBkZXRlY3RlZCBhbmQgY292ZXJhZ2UKLXN0YXJ0ZWQu
Ci0KLQotQWNrbm93bGVkZ21lbnRzCi0tLS0tLS0tLS0tLS0tLS0tCi0KLUhvbGdlciBLcmVrZWwg
Zm9yIHB5dGVzdCB3aXRoIGl0cyBkaXN0cmlidXRlZCB0ZXN0aW5nIHN1cHBvcnQuCi0KLU5lZCBC
YXRjaGVsZGVyIGZvciBjb3ZlcmFnZSBhbmQgaXRzIGFiaWxpdHkgdG8gY29tYmluZSB0aGUgY292
ZXJhZ2UgcmVzdWx0cyBvZiBwYXJhbGxlbCBydW5zLgotCi1XaGlsc3QgdGhpcyBwbHVnaW4gaGFz
IGJlZW4gYnVpbHQgZnJlc2ggZnJvbSB0aGUgZ3JvdW5kIHVwIHRvIHN1cHBvcnQgZGlzdHJpYnV0
ZWQgdGVzdGluZyBpdCBoYXMKLWJlZW4gaW5mbHVlbmNlZCBieSB0aGUgd29yayBkb25lIG9uIHB5
dGVzdC1jb3ZlcmFnZSAoUm9zcyBMYXdsZXksIEphbWVzIE1pbGxzLCBIb2xnZXIgS3Jla2VsKSBh
bmQKLW5vc2UtY292ZXIgKEphc29uIFBlbGxlcmluKSB3aGljaCBhcmUgb3RoZXIgY292ZXJhZ2Ug
cGx1Z2lucyBmb3IgcHl0ZXN0IGFuZCBub3NlIHJlc3BlY3RpdmVseS4KLQotTm8gZG91YnQgb3Ro
ZXJzIGhhdmUgY29udHJpYnV0ZWQgdG8gdGhlc2UgdG9vbHMgYXMgd2VsbC4KLQotY29tbWFuZCBs
aW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLWNvdj1wYXRoYGAKLSAg
ICBtZWFzdXJlIGNvdmVyYWdlIGZvciBmaWxlc3lzdGVtIHBhdGggKG11bHRpLWFsbG93ZWQpCi1g
YC0tY292LXJlcG9ydD10eXBlYGAKLSAgICB0eXBlIG9mIHJlcG9ydCB0byBnZW5lcmF0ZTogdGVy
bSwgdGVybS1taXNzaW5nLCBhbm5vdGF0ZSwgaHRtbCwgeG1sIChtdWx0aS1hbGxvd2VkKQotYGAt
LWNvdi1jb25maWc9cGF0aGBgCi0gICAgY29uZmlnIGZpbGUgZm9yIGNvdmVyYWdlLCBkZWZhdWx0
OiAuY292ZXJhZ2VyYwotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNzExMzlkMDA4YmEwMjBhN2Y3YjY5NmEyM2M4NDJjM2Y1MzNkZGM1Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9wbHVnaW4vY292ZXJhZ2UucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotCi1X
cml0ZSBhbmQgcmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdl
LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoKLQotTm90ZTogT3JpZ2luYWwgY29k
ZSBieSBSb3NzIExhd2xleS4gCi0KLUluc3RhbGwKLS0tLS0tLS0tLS0tLS0tCi0KLVVzZSBwaXAg
dG8gKHVuKWluc3RhbGw6OgotCi0gICAgcGlwIGluc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotICAg
IHBpcCB1bmluc3RhbGwgcHl0ZXN0LWNvdmVyYWdlIAotCi1vciBhbHRlcm5hdGl2ZWx5IHVzZSBl
YXN5X2luc3RhbGwgdG8gaW5zdGFsbDo6Ci0KLSAgICBlYXN5X2luc3RhbGwgcHl0ZXN0LWNvdmVy
YWdlIAotCi0KLVVzYWdlIAotLS0tLS0tLS0tLS0tLQotCi1UbyBnZXQgZnVsbCB0ZXN0IGNvdmVy
YWdlIHJlcG9ydHMgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlIHR5cGU6OgotCi0gICAgcHl0ZXN0
IC0tY292ZXItcmVwb3J0PXJlcG9ydAotCi1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotCi1gYC0tY292ZXI9Q09WRVJQQUNLQUdFU2BgCi0gICAgKG11bHRpIGFs
bG93ZWQpIG9ubHkgaW5jbHVkZSBpbmZvIGZyb20gc3BlY2lmaWVkIHBhY2thZ2UuCi1gYC0tY292
ZXItcmVwb3J0PVJFUE9SVF9UWVBFYGAKLSAgICBodG1sOiBEaXJlY3RvcnkgZm9yIGh0bWwgb3V0
cHV0LgotICAgICAgICAgICAgICAgICAgICByZXBvcnQ6IE91dHB1dCBhIHRleHQgcmVwb3J0Lgot
ICAgICAgICAgICAgICAgICAgICBhbm5vdGF0ZTogQW5ub3RhdGUgeW91ciBzb3VyY2UgY29kZSBm
b3Igd2hpY2ggbGluZXMgd2VyZSBleGVjdXRlZCBhbmQgd2hpY2ggd2VyZSBub3QuCi0gICAgICAg
ICAgICAgICAgICAgIHhtbDogT3V0cHV0IGFuIHhtbCByZXBvcnQgY29tcGF0aWJsZSB3aXRoIHRo
ZSBjb2JlcnR1cmEgcGx1Z2luIGZvciBodWRzb24uCi1gYC0tY292ZXItZGlyZWN0b3J5PURJUkVD
VE9SWWBgCi0gICAgRGlyZWN0b3J5IGZvciB0aGUgcmVwb3J0cyAoaHRtbCAvIGFubm90YXRlIHJl
c3VsdHMpIGRlZmF1bHRzIHRvIC4vY292ZXJhZ2UKLWBgLS1jb3Zlci14bWwtZmlsZT1YTUxfRklM
RWBgCi0gICAgRmlsZSBmb3IgdGhlIHhtbCByZXBvcnQgZGVmYXVsdHMgdG8gLi9jb3ZlcmFnZS54
bWwKLWBgLS1jb3Zlci1zaG93LW1pc3NpbmdgYAotICAgIFNob3cgbWlzc2luZyBmaWxlcwotYGAt
LWNvdmVyLWlnbm9yZS1lcnJvcnM9SUdOT1JFX0VSUk9SU2BgCi0gICAgSWdub3JlIGVycm9ycyBv
ZiBmaW5kaW5nIHNvdXJjZSBmaWxlcyBmb3IgY29kZS4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5yc3Qg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDYxNDk3YjM4NWVkZTU4NDlmYzRiZTI2YzM5ZTY1OGVjNzFiMTM5
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDcg
KzAsMCBAQAotcHl0ZXN0X2RqYW5nbyBwbHVnaW4gKEVYVEVSTkFMKQotPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXB5dGVzdF9kamFuZ28gaXMgYSBwbHVnaW4g
Zm9yIGBgcHl0ZXN0YGAgdGhhdCBwcm92aWRlcyBhIHNldCBvZiB1c2VmdWwgdG9vbHMgZm9yIHRl
c3RpbmcgRGphbmdvIGFwcGxpY2F0aW9ucywgY2hlY2tvdXQgQmVuIEZpcnNobWFuJ3MgYHB5dGVz
dF9kamFuZ28gZ2l0aHViIHBhZ2VgXy4KLQotLi4gX2BweXRlc3RfZGphbmdvIGdpdGh1YiBwYWdl
YDogaHR0cDovL2dpdGh1Yi5jb20vYmZpcnNoL3B5dGVzdF9kamFuZ28vdHJlZS9tYXN0ZXIKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwYzE2MDNhZGU5ZmMzZGYxN2I4MjIxODJkOGYzNTc5YjJiNmM4Nzg3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9maWdsZWFmLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDQ0
ICswLDAgQEAKLQotcmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcgdGhlICdmaWdsZWFmJyBwYWNr
YWdlLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Ci0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1JbnN0YWxsCi0tLS0tLS0tLS0tLS0tLS0K
LQotVG8gaW5zdGFsbCB0aGUgcGx1Z2luIGlzc3VlOjoKLQotICAgIGVhc3lfaW5zdGFsbCBweXRl
c3QtZmlnbGVhZiAgIyBvcgotICAgIHBpcCBpbnN0YWxsIHB5dGVzdC1maWdsZWFmICAgCi0KLWFu
ZCBpZiB5b3UgYXJlIHVzaW5nIHBpcCB5b3UgY2FuIGFsc28gdW5pbnN0YWxsOjoKLQotICAgIHBp
cCB1bmluc3RhbGwgcHl0ZXN0LWZpZ2xlYWYKLQotCi1Vc2FnZQotLS0tLS0tLS0tLS0tLS0tCi0K
LUFmdGVyIGluc3RhbGxhdGlvbiB5b3UgY2FuIHNpbXBseSB0eXBlOjoKLQotICAgIHB5dGVzdCAt
LWZpZ2xlYWYgWy4uLl0KLQotdG8gZW5hYmxlIGZpZ2xlYWYgY292ZXJhZ2UgaW4geW91ciB0ZXN0
IHJ1bi4gIEEgZGVmYXVsdCAiLmZpZ2xlYWYiIGRhdGEgZmlsZQotYW5kICJodG1sIiBkaXJlY3Rv
cnkgd2lsbCBiZSBjcmVhdGVkLiAgWW91IGNhbiB1c2UgY29tbWFuZCBsaW5lIG9wdGlvbnMKLXRv
IGNvbnRyb2wgd2hlcmUgZGF0YSBhbmQgaHRtbCBmaWxlcyBhcmUgY3JlYXRlZC4KLQotY29tbWFu
ZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQotYGAtLWZpZ2xlYWZgYAot
ICAgIHRyYWNlIHB5dGhvbiBjb3ZlcmFnZSB3aXRoIGZpZ2xlYWYgYW5kIHdyaXRlIEhUTUwgZm9y
IGZpbGVzIGJlbG93IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyCi1gYC0tZmlnLWRhdGE9ZGlyYGAK
LSAgICBzZXQgdHJhY2luZyBmaWxlLCBkZWZhdWx0OiAiLmZpZ2xlYWYiLgotYGAtLWZpZy1odG1s
PWRpcmBgCi0gICAgc2V0IGh0bWwgcmVwb3J0aW5nIGRpciwgZGVmYXVsdCAiaHRtbCIuCi0KLS4u
IGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi9oZWxwY29uZmlnLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9o
ZWxwY29uZmlnLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI2Yjc1YzQ1NTJl
MTQyYWE5ZGZhNTViYWYxNjY3MDQ2ZDcxMTM2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNv
bmZpZy5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0KLXByb3ZpZGUgdmVyc2lv
biBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFtZXMuCi09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRl
bnRzOjoKLSAgOmxvY2FsOgotCi0KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLQotYGAtLXZlcnNpb25gYAotICAgIGRpc3BsYXkgcHkgbGliIHZlcnNpb24g
YW5kIGltcG9ydCBpbmZvcm1hdGlvbi4KLWBgLXAgbmFtZWBgCi0gICAgZWFybHktbG9hZCBnaXZl
biBwbHVnaW4gKG11bHRpLWFsbG93ZWQpLgotYGAtLXRyYWNlLWNvbmZpZ2BgCi0gICAgdHJhY2Ug
Y29uc2lkZXJhdGlvbnMgb2YgY29uZnRlc3QucHkgZmlsZXMuCi1gYC0tZGVidWdgYAotICAgIGdl
bmVyYXRlIGFuZCBzaG93IGludGVybmFsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KLWBgLS1oZWxw
LWNvbmZpZ2BgCi0gICAgc2hvdyBhdmFpbGFibGUgY29uZnRlc3QucHkgYW5kIEVOVi12YXJpYWJs
ZSBuYW1lcy4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMwIHNlY29uZHMKLT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotMS4gRG93bmxvYWQg
YHB5dGVzdF9oZWxwY29uZmlnLnB5YF8gcGx1Z2luIHNvdXJjZSBjb2RlCi0yLiBwdXQgaXQgc29t
ZXdoZXJlIGFzIGBgcHl0ZXN0X2hlbHBjb25maWcucHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBhdGgK
LTMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZlcnNp
b24KLQotQ2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2luc18gb3IgYGdldCBpbiBjb250
YWN0YF8uCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vaW5kZXgucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTNhNGRjZTY4
MWM4ZjZiYmVjMWY3MTc1OWUxMmJlOTU5MDE2ZTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRl
eC5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0KLWFkdmFuY2VkIHB5dGhvbiB0
ZXN0aW5nCi09PT09PT09PT09PT09PT09PT09PT09PQotCi1za2lwcGluZ18gYWR2YW5jZWQgc2tp
cHBpbmcgZm9yIHB5dGhvbiB0ZXN0IGZ1bmN0aW9ucywgY2xhc3NlcyBvciBtb2R1bGVzLgotCi1t
YXJrXyBnZW5lcmljIG1lY2hhbmlzbSBmb3IgbWFya2luZyBweXRob24gZnVuY3Rpb25zLgotCi1w
ZGJfIGludGVyYWN0aXZlIGRlYnVnZ2luZyB3aXRoIHRoZSBQeXRob24gRGVidWdnZXIuCi0KLWZp
Z2xlYWZfIChleHRlcm5hbCkgcmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcgdGhlICdmaWdsZWFm
JyBwYWNrYWdlLgotCi1tb25rZXlwYXRjaF8gc2FmZWx5IHBhdGNoIG9iamVjdCBhdHRyaWJ1dGVz
LCBkaWN0cyBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotCi1jb3ZlcmFnZV8gKGV4dGVybmFs
KSBXcml0ZSBhbmQgcmVwb3J0IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNr
YWdlLgotCi1jb3ZfIChleHRlcm5hbCkgcHJvZHVjZSBjb2RlIGNvdmVyYWdlIHJlcG9ydHMgdXNp
bmcgdGhlICdjb3ZlcmFnZScgcGFja2FnZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIGRpc3RyaWJ1
dGVkIHRlc3RpbmcuCi0KLWNhcHR1cmVfIGNvbmZpZ3VyYWJsZSBwZXItdGVzdCBzdGRvdXQvc3Rk
ZXJyIGNhcHR1cmluZyBtZWNoYW5pc21zLgotCi1jYXB0dXJlbG9nXyAoZXh0ZXJuYWwpIGNhcHR1
cmUgb3V0cHV0IG9mIGxvZ2dpbmcgbW9kdWxlLgotCi1yZWN3YXJuXyBoZWxwZXJzIGZvciBhc3Nl
cnRpbmcgZGVwcmVjYXRpb24gYW5kIG90aGVyIHdhcm5pbmdzLgotCi10bXBkaXJfIHByb3ZpZGUg
dGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRvIHRlc3QgZnVuY3Rpb25zLgotCi0KLWRpc3RyaWJ1dGVk
IHRlc3RpbmcsIENJIGFuZCBkZXBsb3ltZW50Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotCi14ZGlzdF8gKGV4dGVybmFsKSBsb29wIG9uIGZhaWxpbmcgdGVzdHMsIGRp
c3RyaWJ1dGUgdGVzdCBydW5zIHRvIENQVXMgYW5kIGhvc3RzLgotCi1wYXN0ZWJpbl8gc3VibWl0
IGZhaWx1cmUgb3IgdGVzdCBzZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2Vydmlj
ZS4KLQotanVuaXR4bWxfIGxvZ2dpbmcgb2YgdGVzdCByZXN1bHRzIGluIEpVbml0LVhNTCBmb3Jt
YXQsIGZvciB1c2Ugd2l0aCBIdWRzb24KLQotcmVzdWx0bG9nXyBub24teG1sIG1hY2hpbmUtcmVh
ZGFibGUgbG9nZ2luZyBvZiB0ZXN0IHJlc3VsdHMuCi0KLWdlbnNjcmlwdF8gZ2VuZXJhdGUgc3Rh
bmRhbG9uZSB0ZXN0IHNjcmlwdCB0byBiZSBkaXN0cmlidXRlZCBhbG9uZyB3aXRoIGFuIGFwcGxp
Y2F0aW9uLgotCi0KLXRlc3RpbmcgZG9tYWlucyBhbmQgY29udmVudGlvbnMgY29kZWNoZWNrZXJz
Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1vZWpza2l0
XyAoZXh0ZXJuYWwpIHJ1biBqYXZhc2NyaXB0IHRlc3RzIGluIHJlYWwgbGlmZSBicm93c2Vycwot
Ci1kamFuZ29fIChleHRlcm5hbCkgZm9yIHRlc3RpbmcgZGphbmdvIGFwcGxpY2F0aW9ucwotCi11
bml0dGVzdF8gYXV0b21hdGljYWxseSBkaXNjb3ZlciBhbmQgcnVuIHRyYWRpdGlvbmFsICJ1bml0
dGVzdC5weSIgc3R5bGUgdGVzdHMuCi0KLW5vc2VfIG5vc2UtY29tcGF0aWJpbGl0eSBwbHVnaW46
IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2ZWx5LgotCi1kb2N0ZXN0XyBjb2xs
ZWN0IGFuZCBleGVjdXRlIGRvY3Rlc3RzIGZyb20gbW9kdWxlcyBhbmQgdGVzdCBmaWxlcy4KLQot
cmVzdGRvY18gcGVyZm9ybSBSZVNUIHN5bnRheCwgbG9jYWwgYW5kIHJlbW90ZSByZWZlcmVuY2Ug
dGVzdHMgb24gLnJzdC8udHh0IGZpbGVzLgotCi0KLWludGVybmFsLCBkZWJ1Z2dpbmcsIGhlbHAg
ZnVuY3Rpb25hbGl0eQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0K
LWhlbHBjb25maWdfIHByb3ZpZGUgdmVyc2lvbiBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBj
b25maWcgbmFtZXMuCi0KLXRlcm1pbmFsXyBJbXBsZW1lbnRzIHRlcm1pbmFsIHJlcG9ydGluZyBv
ZiB0aGUgZnVsbCB0ZXN0aW5nIHByb2Nlc3MuCi0KLWhvb2tsb2dfIGxvZyBpbnZvY2F0aW9ucyBv
ZiBleHRlbnNpb24gaG9va3MgdG8gYSBmaWxlLgotCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2ZGVjMmI0ODQ4YTY5ZTVlYjgwNTY4NTg5Y2MzZjk5ZTJkZGQyZTM0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCww
IEBACi0uLiBfYGhlbHBjb25maWdgOiBoZWxwY29uZmlnLmh0bWwKLS4uIF9gcHl0ZXN0X3JlY3dh
cm4ucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkv
X3BsdWdpbi9weXRlc3RfcmVjd2Fybi5weQotLi4gX2B1bml0dGVzdGA6IHVuaXR0ZXN0Lmh0bWwK
LS4uIF9gcHl0ZXN0X21vbmtleXBhdGNoLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIv
cHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21vbmtleXBhdGNoLnB5Ci0uLiBf
YHBhc3RlYmluYDogcGFzdGViaW4uaHRtbAotLi4gX2Bza2lwcGluZ2A6IHNraXBwaW5nLmh0bWwK
LS4uIF9gcGx1Z2luc2A6IGluZGV4Lmh0bWwKLS4uIF9gbWFya2A6IG1hcmsuaHRtbAotLi4gX2B0
bXBkaXJgOiB0bXBkaXIuaHRtbAotLi4gX2BweXRlc3RfZG9jdGVzdC5weWA6IGh0dHA6Ly9iaXRi
dWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9kb2N0
ZXN0LnB5Ci0uLiBfYGNhcHR1cmVgOiBjYXB0dXJlLmh0bWwKLS4uIF9gcHl0ZXN0X25vc2UucHlg
OiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdp
bi9weXRlc3Rfbm9zZS5weQotLi4gX2BweXRlc3RfcmVzdGRvYy5weWA6IGh0dHA6Ly9iaXRidWNr
ZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZXN0ZG9j
LnB5Ci0uLiBfYHJlc3Rkb2NgOiByZXN0ZG9jLmh0bWwKLS4uIF9geGRpc3RgOiB4ZGlzdC5odG1s
Ci0uLiBfYHB5dGVzdF9wYXN0ZWJpbi5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5
LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9wYXN0ZWJpbi5weQotLi4gX2BweXRl
c3RfdG1wZGlyLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEu
My40L3B5L19wbHVnaW4vcHl0ZXN0X3RtcGRpci5weQotLi4gX2B0ZXJtaW5hbGA6IHRlcm1pbmFs
Lmh0bWwKLS4uIF9gcHl0ZXN0X2hvb2tsb2cucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0
Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfaG9va2xvZy5weQotLi4gX2Bj
YXB0dXJlbG9nYDogY2FwdHVyZWxvZy5odG1sCi0uLiBfYGp1bml0eG1sYDoganVuaXR4bWwuaHRt
bAotLi4gX2BweXRlc3Rfc2tpcHBpbmcucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9w
eS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rfc2tpcHBpbmcucHkKLS4uIF9gY2hl
Y2tvdXQgdGhlIHB5dGVzdCBkZXZlbG9wbWVudCB2ZXJzaW9uYDogLi4vLi4vaW5zdGFsbC5odG1s
I2NoZWNrb3V0Ci0uLiBfYHB5dGVzdF9oZWxwY29uZmlnLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5v
cmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2hlbHBjb25maWcu
cHkKLS4uIF9gb2Vqc2tpdGA6IG9lanNraXQuaHRtbAotLi4gX2Bkb2N0ZXN0YDogZG9jdGVzdC5o
dG1sCi0uLiBfYHB5dGVzdF9tYXJrLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHkt
dHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X21hcmsucHkKLS4uIF9gZ2V0IGluIGNv
bnRhY3RgOiAuLi8uLi9jb250YWN0Lmh0bWwKLS4uIF9gcHl0ZXN0X2NhcHR1cmUucHlgOiBodHRw
Oi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRl
c3RfY2FwdHVyZS5weQotLi4gX2BmaWdsZWFmYDogZmlnbGVhZi5odG1sCi0uLiBfYGN1c3RvbWl6
ZWA6IC4uL2N1c3RvbWl6ZS5odG1sCi0uLiBfYGhvb2tsb2dgOiBob29rbG9nLmh0bWwKLS4uIF9g
cHl0ZXN0X3Rlcm1pbmFsLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsv
cmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Rlcm1pbmFsLnB5Ci0uLiBfYHJlY3dhcm5gOiBy
ZWN3YXJuLmh0bWwKLS4uIF9gcHl0ZXN0X3BkYi5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hw
azQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9wZGIucHkKLS4uIF9gbW9u
a2V5cGF0Y2hgOiBtb25rZXlwYXRjaC5odG1sCi0uLiBfYGNvdmVyYWdlYDogY292ZXJhZ2UuaHRt
bAotLi4gX2ByZXN1bHRsb2dgOiByZXN1bHRsb2cuaHRtbAotLi4gX2Bjb3ZgOiBjb3YuaHRtbAot
Li4gX2BweXRlc3RfanVuaXR4bWwucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10
cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfanVuaXR4bWwucHkKLS4uIF9gZGphbmdv
YDogZGphbmdvLmh0bWwKLS4uIF9gcHl0ZXN0X3VuaXR0ZXN0LnB5YDogaHR0cDovL2JpdGJ1Y2tl
dC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3VuaXR0ZXN0
LnB5Ci0uLiBfYG5vc2VgOiBub3NlLmh0bWwKLS4uIF9gcHl0ZXN0X3Jlc3VsdGxvZy5weWA6IGh0
dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5
dGVzdF9yZXN1bHRsb2cucHkKLS4uIF9gcGRiYDogcGRiLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9ub3NlLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVlYWU1
ZmY2OTdmMDVhMjI2NTFmOTZmMGE5YmUwY2UyMTA0ZTU5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4v
bm9zZS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0KLW5vc2UtY29tcGF0aWJp
bGl0eSBwbHVnaW46IGFsbG93IHRvIHJ1biBub3NlIHRlc3Qgc3VpdGVzIG5hdGl2ZWx5LgotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLVRoaXMgaXMgYW4gZXhwZXJp
bWVudGFsIHBsdWdpbiBmb3IgYWxsb3dpbmcgdG8gcnVuIHRlc3RzIHdyaXR0ZW4KLWluICdub3Nl
dGVzdHMnIHN0eWxlIHdpdGggYGBweXRlc3RgYC4KLQotVXNhZ2UKLS0tLS0tLS0tLS0tLS0KLQot
dHlwZTo6Ci0KLSAgICBweXRlc3QgICMgaW5zdGVhZCBvZiAnbm9zZXRlc3RzJwotCi1hbmQgeW91
IHNob3VsZCBiZSBhYmxlIHRvIHJ1biBub3NlIHN0eWxlIHRlc3RzIGFuZCBhdCB0aGUgc2FtZQot
dGltZSBjYW4gbWFrZSBmdWxsIHVzZSBvZiBweXRlc3QncyBjYXBhYmlsaXRpZXMuCi0KLVN1cHBv
cnRlZCBub3NlIElkaW9tcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0qIHNldHVwIGFuZCB0
ZWFyZG93biBhdCBtb2R1bGUvY2xhc3MvbWV0aG9kIGxldmVsCi0qIFNraXBUZXN0IGV4Y2VwdGlv
bnMgYW5kIG1hcmtlcnMKLSogc2V0dXAvdGVhcmRvd24gZGVjb3JhdG9ycwotKiB5aWVsZC1iYXNl
ZCB0ZXN0cyBhbmQgdGhlaXIgc2V0dXAKLSogZ2VuZXJhbCB1c2FnZSBvZiBub3NlIHV0aWxpdGll
cwotCi1VbnN1cHBvcnRlZCBpZGlvbXMgLyBpc3N1ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotLSBub3NlLXN0eWxlIGRvY3Rlc3RzIGFyZSBub3QgY29sbGVjdGVkIGFu
ZCBleGVjdXRlZCBjb3JyZWN0bHksCi0gIGFsc28gZml4dHVyZXMgZG9uJ3Qgd29yay4KLQotLSBu
byBub3NlLWNvbmZpZ3VyYXRpb24gaXMgcmVjb2duaXplZAotCi1JZiB5b3UgZmluZCBvdGhlciBp
c3N1ZXMgb3IgaGF2ZSBzdWdnZXN0aW9ucyBwbGVhc2UgcnVuOjoKLQotICAgIHB5dGVzdCAtLXBh
c3RlYmluPWFsbAotCi1hbmQgc2VuZCB0aGUgcmVzdWx0aW5nIFVSTCB0byBhIGBgcHl0ZXN0YGAg
Y29udGFjdCBjaGFubmVsLAotYXQgYmVzdCB0byB0aGUgbWFpbGluZyBsaXN0LgotCi1TdGFydCBp
bXByb3ZpbmcgdGhpcyBwbHVnaW4gaW4gMzAgc2Vjb25kcwotPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLQotCi0xLiBEb3dubG9hZCBgcHl0ZXN0X25vc2UucHlgXyBw
bHVnaW4gc291cmNlIGNvZGUKLTIuIHB1dCBpdCBzb21ld2hlcmUgYXMgYGBweXRlc3Rfbm9zZS5w
eWBgIGludG8geW91ciBpbXBvcnQgcGF0aAotMy4gYSBzdWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVu
IHdpbGwgdXNlIHlvdXIgbG9jYWwgdmVyc2lvbgotCi1DaGVja291dCBjdXN0b21pemVfLCBvdGhl
ciBwbHVnaW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0OTk1YWExN2M3MmQ1Y2UwYjc5MTU0YTYyYzk3ZjBhMjEwZDIz
YWRlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9vZWpza2l0LnJzdAorKysgL2Rldi9udWxsCkBAIC0x
LDEyICswLDAgQEAKLXB5dGVzdF9vZWpza2l0IHBsdWdpbiAoRVhURVJOQUwpCi09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhlIGBvZWpza2l0YF8gb2ZmZXJz
IGEgYGBweXRlc3RgYCBwbHVnaW4gZm9yIHJ1bm5pbmcgSmF2YXNjcmlwdCB0ZXN0cyBpbiBsaXZl
IGJyb3dzZXJzLiAgIFJ1bm5pbmcgaW5zaWRlIHRoZSBicm93c2VycyBjb21lcyB3aXRoIHNvbWUg
c3BlZWQgY29zdCwgb24gdGhlIG90aGVyIGhhbmQgaXQgbWVhbnMgZm9yIGV4YW1wbGUgdGhlIGNv
ZGUgaXMgdGVzdGVkIGFnYWluc3QgdGhlIHJlYWwtd29yZCBET00gaW1wbGVtZW50YXRpb25zLgot
VGhlIGFwcHJvYWNoIGVuYWJsZXMgdG8gd3JpdGUgaW50ZWdyYXRpb24gdGVzdHMgc3VjaCB0aGF0
IHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgdGVzdGVkIGFnYWluc3Qgc2VydmVyLXNpZGUgUHl0aG9u
IGNvZGUgbW9ja2VkIGFzIG5lY2Vzc2FyeS4gQW55IHNlcnZlci1zaWRlIGZyYW1ld29yayB0aGF0
IGNhbiBhbHJlYWR5IGJlIGV4cG9zZWQgdGhyb3VnaCBXU0dJIChvciBmb3Igd2hpY2ggYSBzdWJz
ZXQgb2YgV1NHSSBjYW4gYmUgd3JpdHRlbiB0byBhY2NvbW1vZGF0ZSB0aGUganNraXQgb3duIG5l
ZWRzKSBjYW4gcGxheSBhbG9uZy4KLQotRm9yIG1vcmUgaW5mbyBhbmQgZG93bmxvYWQgcGxlYXNl
IHZpc2l0IHRoZSBgb2Vqc2tpdCBQeVBJYF8gcGFnZS4KLQotLi4gX2BvZWpza2l0YDoKLS4uIF9g
b2Vqc2tpdCBQeVBJYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL29lanNraXQKLQotLi4g
c291cmNlIGxpbmsgJ2h0dHA6Ly9iaXRidWNrZXQub3JnL3BlZHJvbmlzL2pzLWluZnJhc3RydWN0
dXJlL3NyYy90aXAvcHl0ZXN0X2pzdGVzdHMucHknLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi90ZXJtaW5hbC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwN2Q0
ZjcyMTgzYTlhMjc2NzYzMzZjZDk4NGU2Zjc1ZWZhMzBhNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2lu
L3Rlcm1pbmFsLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLQotSW1wbGVtZW50
cyB0ZXJtaW5hbCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgotPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0K
LS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGlzIGlzIGEgZ29vZCBzb3VyY2UgZm9yIGxv
b2tpbmcgYXQgdGhlIHZhcmlvdXMgcmVwb3J0aW5nIGhvb2tzLgotCi1jb21tYW5kIGxpbmUgb3B0
aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC12LCAtLXZlcmJvc2VgYAotICAgIGlu
Y3JlYXNlIHZlcmJvc2l0eS4KLWBgLXIgY2hhcnNgYAotICAgIHNob3cgZXh0cmEgdGVzdCBzdW1t
YXJ5IGluZm8gYXMgc3BlY2lmaWVkIGJ5IGNoYXJzIChmKWFpbGVkLCAocylza2lwcGVkLCAoeClm
YWlsZWQsIChYKXBhc3NlZC4KLWBgLWwsIC0tc2hvd2xvY2Fsc2BgCi0gICAgc2hvdyBsb2NhbHMg
aW4gdHJhY2ViYWNrcyAoZGlzYWJsZWQgYnkgZGVmYXVsdCkuCi1gYC0tdGI9c3R5bGVgYAotICAg
IHRyYWNlYmFjayBwcmludCBtb2RlIChsb25nL3Nob3J0L2xpbmUvbm8pLgotYGAtLWZ1bGwtdHJh
Y2VgYAotICAgIGRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVmYXVsdCBpcyB0byBjdXQpLgot
YGAtLWZpeHR1cmVzYGAKLSAgICBzaG93IGF2YWlsYWJsZSBmdW5jdGlvbiBhcmd1bWVudHMsIHNv
cnRlZCBieSBwbHVnaW4KLQotU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMwIHNlY29u
ZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQotMS4gRG93
bmxvYWQgYHB5dGVzdF90ZXJtaW5hbC5weWBfIHBsdWdpbiBzb3VyY2UgY29kZQotMi4gcHV0IGl0
IHNvbWV3aGVyZSBhcyBgYHB5dGVzdF90ZXJtaW5hbC5weWBgIGludG8geW91ciBpbXBvcnQgcGF0
aAotMy4gYSBzdWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwgdXNlIHlvdXIgbG9jYWwgdmVy
c2lvbgotCi1DaGVja291dCBjdXN0b21pemVfLCBvdGhlciBwbHVnaW5zXyBvciBgZ2V0IGluIGNv
bnRhY3RgXy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmOTA2NzE3ZDRkM2Y2MmNjOTdiMTUzMTUxNTFiMDdmODRkZDE4ZGQ0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2NvdmVyYWdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9kamFuZ28ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Zp
Z2xlYWYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vbm9zZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vqc2tpdC5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi94ZGlzdC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwNmQyNDBh
ZWUxM2M3ZGQzMTljOTMzMTNjZjNlOGVmNGUyNjUyMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hk
aXN0LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0KLWxvb3Agb24gZmFpbGlu
ZyB0ZXN0cywgZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBhbmQgaG9zdHMuCi09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
Ci0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgotCi1UaGUgYHB5dGVzdC14ZGlzdGBfIHBsdWdp
biBleHRlbmRzIGBgcHl0ZXN0YGAgd2l0aCBzb21lIHVuaXF1ZQotdGVzdCBleGVjdXRpb24gbW9k
ZXM6Ci0KLSogTG9vcG9uZmFpbDogcnVuIHlvdXIgdGVzdHMgcmVwZWF0ZWRseSBpbiBhIHN1YnBy
b2Nlc3MuICBBZnRlciBlYWNoIHJ1bgotICBgYHB5dGVzdGBgIHdhaXRzIHVudGlsIGEgZmlsZSBp
biB5b3VyIHByb2plY3QgY2hhbmdlcyBhbmQgdGhlbiByZS1ydW5zIHRoZQotICBwcmV2aW91c2x5
IGZhaWxpbmcgdGVzdHMuICBUaGlzIGlzIHJlcGVhdGVkIHVudGlsIGFsbCB0ZXN0cyBwYXNzIGFm
dGVyIHdoaWNoCi0gIGFnYWluIGEgZnVsbCBydW4gaXMgcGVyZm9ybWVkLgotCi0qIExvYWQtYmFs
YW5jaW5nOiBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBDUFVzIG9yIGhvc3RzIHlvdSBjYW4gdXNlCi0g
IHRob3NlIGZvciBhIGNvbWJpbmVkIHRlc3QgcnVuLiAgVGhpcyBhbGxvd3MgdG8gc3BlZWQgdXAK
LSAgZGV2ZWxvcG1lbnQgb3IgdG8gdXNlIHNwZWNpYWwgcmVzb3VyY2VzIG9mIHJlbW90ZSBtYWNo
aW5lcy4KLQotKiBNdWx0aS1QbGF0Zm9ybSBjb3ZlcmFnZTogeW91IGNhbiBzcGVjaWZ5IGRpZmZl
cmVudCBQeXRob24gaW50ZXJwcmV0ZXJzCi0gIG9yIGRpZmZlcmVudCBwbGF0Zm9ybXMgYW5kIHJ1
biB0ZXN0cyBpbiBwYXJhbGxlbCBvbiBhbGwgb2YgdGhlbS4KLQotQmVmb3JlIHJ1bm5pbmcgdGVz
dHMgcmVtb3RlbHksIGBgcHl0ZXN0YGAgZWZmaWNpZW50bHkgc3luY2hyb25pemVzIHlvdXIKLXBy
b2dyYW0gc291cmNlIGNvZGUgdG8gdGhlIHJlbW90ZSBwbGFjZS4gIEFsbCB0ZXN0IHJlc3VsdHMK
LWFyZSByZXBvcnRlZCBiYWNrIGFuZCBkaXNwbGF5ZWQgdG8geW91ciBsb2NhbCB0ZXN0IHNlc3Np
b24uCi1Zb3UgbWF5IHNwZWNpZnkgZGlmZmVyZW50IFB5dGhvbiB2ZXJzaW9ucyBhbmQgaW50ZXJw
cmV0ZXJzLgotCi0uLiBfYHB5dGVzdC14ZGlzdGA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9weXRlc3QteGRpc3QKLQotVXNhZ2UgZXhhbXBsZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ci1TcGVlZCB1cCB0ZXN0IHJ1bnMgYnkgc2VuZGluZyB0ZXN0cyB0byBtdWx0aXBsZSBDUFVzCi0r
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwotCi1UbyBzZW5kIHRlc3RzIHRvIG11bHRpcGxlIENQVXMsIHR5cGU6OgotCi0gICAgcHl0ZXN0
IC1uIE5VTQotCi1Fc3BlY2lhbGx5IGZvciBsb25nZXIgcnVubmluZyB0ZXN0cyBvciB0ZXN0cyBy
ZXF1aXJpbmcKLWEgbG90IG9mIElPIHRoaXMgY2FuIGxlYWQgdG8gY29uc2lkZXJhYmxlIHNwZWVk
IHVwcy4KLQotCi1SdW5uaW5nIHRlc3RzIGluIGEgUHl0aG9uIHN1YnByb2Nlc3MKLSsrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLVRv
IGluc3RhbnRpYXRlIGEgcHl0aG9uMi40IHN1YiBwcm9jZXNzIGFuZCBzZW5kIHRlc3RzIHRvIGl0
LCB5b3UgbWF5IHR5cGU6OgotCi0gICAgcHl0ZXN0IC1kIC0tdHggcG9wZW4vL3B5dGhvbj1weXRo
b24yLjQKLQotVGhpcyB3aWxsIHN0YXJ0IGEgc3VicHJvY2VzcyB3aGljaCBpcyBydW4gd2l0aCB0
aGUgInB5dGhvbjIuNCIKLVB5dGhvbiBpbnRlcnByZXRlciwgZm91bmQgaW4geW91ciBzeXN0ZW0g
YmluYXJ5IGxvb2t1cCBwYXRoLgotCi1JZiB5b3UgcHJlZml4IHRoZSAtLXR4IG9wdGlvbiB2YWx1
ZSBsaWtlIHRoaXM6OgotCi0gICAgLS10eCAzKnBvcGVuLy9weXRob249cHl0aG9uMi40Ci0KLXRo
ZW4gdGhyZWUgc3VicHJvY2Vzc2VzIHdvdWxkIGJlIGNyZWF0ZWQgYW5kIHRlc3RzCi13aWxsIGJl
IGxvYWQtYmFsYW5jZWQgYWNyb3NzIHRoZXNlIHRocmVlIHByb2Nlc3Nlcy4KLQotCi1TZW5kaW5n
IHRlc3RzIHRvIHJlbW90ZSBTU0ggYWNjb3VudHMKLSsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLVN1cHBvc2UgeW91IGhhdmUgYSBw
YWNrYWdlIGBgbXlwa2dgYCB3aGljaCBjb250YWlucyBzb21lCi10ZXN0cyB0aGF0IHlvdSBjYW4g
c3VjY2Vzc2Z1bGx5IHJ1biBsb2NhbGx5LiBBbmQgeW91Ci1oYXZlIGEgc3NoLXJlYWNoYWJsZSBt
YWNoaW5lIGBgbXlob3N0YGAuICBUaGVuCi15b3UgY2FuIGFkLWhvYyBkaXN0cmlidXRlIHlvdXIg
dGVzdHMgYnkgdHlwaW5nOjoKLQotICAgIHB5dGVzdCAtZCAtLXR4IHNzaD1teWhvc3Rwb3BlbiAt
LXJzeW5jZGlyIG15cGtnIG15cGtnCi0KLVRoaXMgd2lsbCBzeW5jaHJvbml6ZSB5b3VyIGBgbXlw
a2dgYCBwYWNrYWdlIGRpcmVjdG9yeQotdG8gYSByZW1vdGUgc3NoIGFjY291bnQgYW5kIHRoZW4g
bG9jYWxseSBjb2xsZWN0IHRlc3RzCi1hbmQgc2VuZCB0aGVtIHRvIHJlbW90ZSBwbGFjZXMgZm9y
IGV4ZWN1dGlvbi4KLQotWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIGBgLS1yc3luY2RpcmBgIGRp
cmVjdG9yaWVzCi10byBiZSBzZW50IHRvIHRoZSByZW1vdGUgc2lkZS4KLQotKipOT1RFOioqIEZv
ciBgYHB5dGVzdGBgIHRvIGNvbGxlY3QgYW5kIHNlbmQgdGVzdHMgY29ycmVjdGx5Ci15b3Ugbm90
IG9ubHkgbmVlZCB0byBtYWtlIHN1cmUgYWxsIGNvZGUgYW5kIHRlc3RzCi1kaXJlY3RvcmllcyBh
cmUgcnN5bmNlZCwgYnV0IHRoYXQgYW55IHRlc3QgKHN1YikgZGlyZWN0b3J5Ci1hbHNvIGhhcyBh
biBgYF9faW5pdF9fLnB5YGAgZmlsZSBiZWNhdXNlIGludGVybmFsbHkKLWBgcHl0ZXN0YGAgcmVm
ZXJlbmNlcyB0ZXN0cyB1c2luZyB0aGVpciBmdWxseSBxdWFsaWZpZWQgcHl0aG9uCi1tb2R1bGUg
cGF0aC4gICoqWW91IHdpbGwgb3RoZXJ3aXNlIGdldCBzdHJhbmdlIGVycm9ycyoqCi1kdXJpbmcg
c2V0dXAgb2YgdGhlIHJlbW90ZSBzaWRlLgotCi1TZW5kaW5nIHRlc3RzIHRvIHJlbW90ZSBTb2Nr
ZXQgU2VydmVycwotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysKLQotRG93bmxvYWQgdGhlIHNpbmdsZS1tb2R1bGUgYHNvY2tldHNlcnZl
ci5weWBfIFB5dGhvbiBwcm9ncmFtCi1hbmQgcnVuIGl0IGxpa2UgdGhpczo6Ci0KLSAgICBweXRo
b24gc29ja2V0c2VydmVyLnB5Ci0KLUl0IHdpbGwgdGVsbCB5b3UgdGhhdCBpdCBzdGFydHMgbGlz
dGVuaW5nIG9uIHRoZSBkZWZhdWx0Ci1wb3J0LiAgWW91IGNhbiBub3cgb24geW91ciBob21lIG1h
Y2hpbmUgc3BlY2lmeSB0aGlzCi1uZXcgc29ja2V0IGhvc3Qgd2l0aCBzb21ldGhpbmcgbGlrZSB0
aGlzOjoKLQotICAgIHB5dGVzdCAtZCAtLXR4IHNvY2tldD0xOTIuMTY4LjEuMTAyOjg4ODggLS1y
c3luY2RpciBteXBrZyBteXBrZwotCi0KLS4uIF9gYXRvbmNlYDoKLQotUnVubmluZyB0ZXN0cyBv
biBtYW55IHBsYXRmb3JtcyBhdCBvbmNlCi0rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKwotCi1UaGUgYmFzaWMgY29tbWFuZCB0byBydW4g
dGVzdHMgb24gbXVsdGlwbGUgcGxhdGZvcm1zIGlzOjoKLQotICAgIHB5dGVzdCAtLWRpc3Q9ZWFj
aCAtLXR4PXNwZWMxIC0tdHg9c3BlYzIKLQotSWYgeW91IHNwZWNpZnkgYSB3aW5kb3dzIGhvc3Qs
IGFuIE9TWCBob3N0IGFuZCBhIExpbnV4Ci1lbnZpcm9ubWVudCB0aGlzIGNvbW1hbmQgd2lsbCBz
ZW5kIGVhY2ggdGVzdHMgdG8gYWxsCi1wbGF0Zm9ybXMgLSBhbmQgcmVwb3J0IGJhY2sgZmFpbHVy
ZXMgZnJvbSBhbGwgcGxhdGZvcm1zCi1hdCBvbmNlLiAgIFRoZSBzcGVjaWZpY2F0aW9ucyBzdHJp
bmdzIHVzZSB0aGUgYHhzcGVjIHN5bnRheGBfLgotCi0uLiBfYHhzcGVjIHN5bnRheGA6IGh0dHA6
Ly9jb2Rlc3BlYWsubmV0L2V4ZWNuZXQvdHJ1bmsvYmFzaWNzLmh0bWwjeHNwZWMKLQotLi4gX2Bz
b2NrZXRzZXJ2ZXIucHlgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4vcHkvZGlzdC9weS9leGVj
bmV0L3NjcmlwdC9zb2NrZXRzZXJ2ZXIucHkKLQotLi4gX2BleGVjbmV0YDogaHR0cDovL2NvZGVz
cGVhay5uZXQvZXhlY25ldAotCi1TcGVjaWZ5aW5nIHRlc3QgZXhlYyBlbnZpcm9ubWVudHMgaW4g
YSBjb25mdGVzdC5weQotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysKLQotSW5zdGVhZCBvZiBzcGVjaWZ5aW5nIGNvbW1hbmQgbGluZSBv
cHRpb25zLCB5b3UgY2FuCi1wdXQgb3B0aW9ucyB2YWx1ZXMgaW4gYSBgYGNvbmZ0ZXN0LnB5YGAg
ZmlsZSBsaWtlIHRoaXM6OgotCi0gICAgb3B0aW9uX3R4ID0gWydzc2g9bXlob3N0Ly9weXRob249
cHl0aG9uMi43JywgJ3BvcGVuLy9weXRob249cHl0aG9uMi43J10KLSAgICBvcHRpb25fZGlzdCA9
IFRydWUKLQotQW55IGNvbW1hbmRsaW5lIGBgLS10eGBgIHNwZWNpZmljYXRpb25zICB3aWxsIGFk
ZCB0byB0aGUgbGlzdCBvZgotYXZhaWxhYmxlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMuCi0KLVNw
ZWNpZnlpbmcgInJzeW5jIiBkaXJzIGluIGEgY29uZnRlc3QucHkKLSsrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLUluIHlvdXIgYGBt
eXBrZy9jb25mdGVzdC5weWBgIHlvdSBtYXkgc3BlY2lmeSBkaXJlY3RvcmllcyB0byBzeW5jaHJv
bmlzZQotb3IgdG8gZXhjbHVkZTo6Ci0KLSAgICByc3luY2RpcnMgPSBbJy4nLCAnLi4vcGx1Z2lu
cyddCi0gICAgcnN5bmNpZ25vcmUgPSBbJ19jYWNoZSddCi0KLVRoZXNlIGRpcmVjdG9yeSBzcGVj
aWZpY2F0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQotd2hlcmUgdGhlIGBgY29u
ZnRlc3QucHlgYCBpcyBmb3VuZC4KLQotY29tbWFuZCBsaW5lIG9wdGlvbnMKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLQotYGAtZiwgLS1sb29wb25mYWlsYGAKLSAgICBydW4gdGVzdHMgaW4gc3Vi
cHJvY2Vzcywgd2FpdCBmb3IgbW9kaWZpZWQgZmlsZXMgYW5kIHJlLXJ1biBmYWlsaW5nIHRlc3Qg
c2V0IHVudGlsIGFsbCBwYXNzLgotYGAtbiBudW1wcm9jZXNzZXNgYAotICAgIHNob3J0Y3V0IGZv
ciAnLS1kaXN0PWxvYWQgLS10eD1OVU0qcG9wZW4nCi1gYC0tYm94ZWRgYAotICAgIGJveCBlYWNo
IHRlc3QgcnVuIGluIGEgc2VwYXJhdGUgcHJvY2VzcyAodW5peCkKLWBgLS1kaXN0PWRpc3Rtb2Rl
YGAKLSAgICBzZXQgbW9kZSBmb3IgZGlzdHJpYnV0aW5nIHRlc3RzIHRvIGV4ZWMgZW52aXJvbm1l
bnRzLgotCi0gICAgZWFjaDogc2VuZCBlYWNoIHRlc3QgdG8gZWFjaCBhdmFpbGFibGUgZW52aXJv
bm1lbnQuCi0KLSAgICBsb2FkOiBzZW5kIGVhY2ggdGVzdCB0byBvbmUgYXZhaWxhYmxlIGVudmly
b25tZW50IHNvIGl0IGlzIHJ1biBvbmx5IG9uY2UuCi0KLSAgICAoZGVmYXVsdCkgbm86IHJ1biB0
ZXN0cyBpbnByb2Nlc3MsIGRvbid0IGRpc3RyaWJ1dGUuCi1gYC0tdHg9eHNwZWNgYAotICAgIGFk
ZCBhIHRlc3QgZXhlY3V0aW9uIGVudmlyb25tZW50LiBzb21lIGV4YW1wbGVzOiAtLXR4IHBvcGVu
Ly9weXRob249cHl0aG9uMi43IC0tdHggc29ja2V0PTE5Mi4xNjguMS4xMDI6ODg4OCAtLXR4IHNz
aD11c2VyQGNvZGVzcGVhay5uZXQvL2NoZGlyPXRlc3RjYWNoZQotYGAtZGBgCi0gICAgbG9hZC1i
YWxhbmNlIHRlc3RzLiAgc2hvcnRjdXQgZm9yICctLWRpc3Q9bG9hZCcKLWBgLS1yc3luY2Rpcj1k
aXIxYGAKLSAgICBhZGQgZGlyZWN0b3J5IGZvciByc3luY2luZyB0byByZW1vdGUgdHggbm9kZXMu
Ci0KLS4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3Rlc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2QwMGY3MThhNjc3MjRjZjBhZjkwNTQ4NGMxOGNj
NmI1ZWIyNTAzYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
OCArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0i
cmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9aW5kZXguaHRtbCIgLz4KLSAgICA8L2hlYWQ+Ci0K
LSAgICA8Ym9keT4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXZhciBnYUpzSG9z
dCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8v
c3NsLiIgOiAiaHR0cDovL3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3Jp
cHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9
J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3JpcHQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5f
Z2V0VHJhY2tlcigiVUEtNzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygp
OwotfSBjYXRjaChlcnIpIHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0gICAgCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YWI5M2Y1ZjdjZmEwZTI3MGI2Y2Q1NTJiN2ExNjlhNzM3Yjk5MmY2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvY29uZmlnLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9leHRlbmQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24ucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2ZjFhNmQ0ODJmYmRhODUwNWEzZTdlZDY1
OGZlYjczNDA4NjZjYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsNjkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL01ha2VmaWxlCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fkb3B0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hc3NlcnQucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2JhY2t3YXJkcy1jb21wYXRpYmlsaXR5LnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2J1
aWx0aW4ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhY2hlLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9jYXB0dXJlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jaGFuZ2Vsb2cucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZnRlc3QucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udGFjdC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29u
dGVudHMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRyaWJ1dGluZy5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vY3VzdG9taXplLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kZXByZWNhdGlv
bnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGlzdGluZ3Rl
c3RzdWl0ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZml4dHVyZS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZmxha3kucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Z1bmNhcmdfY29tcGFyZS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ3MucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2dldHRpbmctc3RhcnRlZC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ29vZHByYWN0aWNlcy5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaGlzdG9yaWNhbC1ub3Rlcy5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vuc2UucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21hcmsucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL21vbmtleXBhdGNoLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9uYW1pbmcyMC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbm9zZS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vcGFyYW1ldHJpemUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BsdWdpbnMucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9w
eTI3LXB5MzQtZGVwcmVjYXRpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGVzdC5pbmkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0aG9ucGF0aC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
cmVjd2Fybi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVmZXJlbmNlLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3NraXBwaW5n
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9zcG9uc29yLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90YWxrcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGlkZWxpZnQucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3RtcGRpci5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdW5pdHRlc3QucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93YXJuaW5n
cy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd3JpdGluZ19wbHVnaW5zLnJzdAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi94dW5pdF9zZXR1cC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0
dXJlLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3NldHVwLXB5LnRlc3QvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkYzhiODM2MDE3YzIwNTZmMDg5NDk2
NmQ4MGJlY2FhYWVkMzFkOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJh
L3NldHVwLXB5LnRlc3Qvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMTVkM2ZlYjE2MDBjZGEyYTM0OWY5MzlmY2MzNTg4ZWJm
ZmU2N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZXh0cmEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9nZXRfaXNzdWVzLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlcG9ydC1jb3ZlcmFnZS5zaCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Nj
cmlwdHMvcmVwb3J0LWNvdmVyYWdlLnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1OWQwNTA3MjcxM2JhYjA3MGJhZTJlZGM1ZjFlMDg4M2QwN2MzYjliLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL2FwcGVuZF9jb2RlY292X3Rva2VuLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2Ny
aXB0cy9wdWJsaXNoLWdoLXJlbGVhc2Utbm90ZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3Jl
bGVhc2Utb24tY29tbWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvcmVsZWFzZS5taW5vci5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3JlbGVhc2UucGF0Y2gucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9yZWxlYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9yZXBvcnQtY292ZXJhZ2Uu
c2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL3Rvd25jcmllci1kcmFmdC10by1maWxlLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhOTA0ODMyZWYyZjIxN2U1MThjMTZjNDBjNWJmYzhjNmI4Y2IwNjlh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9jb2RlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvX2NvZGUvc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9faW8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9f
aW8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyNzFkMDZl
ZDAxODhjNTIxNGUyMDcwOWUwNTBhOGM5ZWI0ZDM3NmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvX2lvL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvX2lvL3NhZmVyZXByLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3Rlcm1pbmFs
d3JpdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2lvL3djd2lkdGgucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVkYjNiYTJlZTE5YjU5OTQ2YmNiYTBkNzNjZWE4MDNk
MmJmZjk0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9h
c3NlcnRpb24vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24v
cmV3cml0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL19weXRlc3QvY2FjaGVwcm92aWRlci5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYmUxMWRhNTI3OTI5YTlkM2Y4YzU0MTgxYmM3
ZWMyZTczNzE1NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Y29uZmlnL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2FyZ3Bh
cnNpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvZXhjZXB0aW9ucy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbmZpZy9maW5kcGF0aHMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9tYXJrL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNjQ2YzliNWI5NDA4ZGZmYmQ2MGE1ZjkyOWE3OGQxMmZiNWQyMTg3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L21hcmsvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9leHByZXNzaW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvbWFyay9zdHJ1Y3R1cmVzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjNiNDQ5NjYwZjYxY2Q3ZDVm
MzkxODVjOTk0MTE3ZjU2ZTZkNWY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fYXJnY29tcGxldGUucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fdmVyc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYXB0dXJl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvZGVidWdnaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvZGVwcmVjYXRl
ZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RvY3Rlc3QucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9mYXVsdGhhbmRsZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9maXh0
dXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2ZyZWV6ZV9zdXBwb3J0LnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3QvaGVscGNvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L2hvb2tzcGVjLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvanVuaXR4bWwucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9sb2dnaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3QvbWFpbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21vbmtleXBhdGNoLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3Qvc3JjL19weXRlc3Qvbm9kZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9u
b3NlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvb3V0Y29tZXMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9wYXN0ZWJpbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3BhdGhs
aWIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9weS50eXBlZAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L3B5dGVzdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcHl0aG9uX2FwaS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Ny
Yy9fcHl0ZXN0L3JlY3dhcm4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9yZXBvcnRzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcnVubmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19w
eXRlc3Qvc2V0dXBvbmx5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBwbGFuLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2tpcHBpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9zdGVwd2lzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3N0b3JlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvdGVybWluYWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5
dGVzdC90aW1pbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC90bXBkaXIucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC91bml0dGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0
L3dhcm5pbmdfdHlwZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93YXJuaW5ncy5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5lZ2ctaW5mby93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYTc1OTkwOWQzMmYzMDMwYzlmMDhlNjMyZmMyMTIw
MjM1YWUzMjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdn
LWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LmVnZy1pbmZvL1NPVVJDRVMu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL3B5dGVzdC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdnLWluZm8vZW50cnlfcG9pbnRzLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy9weXRlc3QuZWdnLWluZm8vbm90LXppcC1zYWZlCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c3JjL3B5dGVzdC5lZ2ctaW5mby9yZXF1aXJlcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0
LmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRl
c3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMjdmNWExOTU1YjI5OGI0OGZlMjQ0ZGViMGEzZTk1MDBlZmU5MTI2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9w
eXRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0jIFBZVEhPTl9BUkdDT01Q
TEVURV9PSwotIiIiCi1weXRlc3Q6IHVuaXQgYW5kIGZ1bmN0aW9uYWwgdGVzdGluZyB3aXRoIFB5
dGhvbi4KLSIiIgotCi0KLSMgZWxzZSB3ZSBhcmUgaW1wb3J0ZWQKLQotZnJvbSBfcHl0ZXN0LmNv
bmZpZyBpbXBvcnQgbWFpbiwgVXNhZ2VFcnJvciwgY21kbGluZSwgaG9va3NwZWMsIGhvb2tpbXBs
Ci1mcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUsIHlpZWxkX2ZpeHR1cmUKLWZy
b20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlCi1mcm9t
IF9weXRlc3QuZnJlZXplX3N1cHBvcnQgaW1wb3J0IGZyZWV6ZV9pbmNsdWRlcwotZnJvbSBfcHl0
ZXN0IGltcG9ydCBfX3ZlcnNpb25fXwotZnJvbSBfcHl0ZXN0LmRlYnVnZ2luZyBpbXBvcnQgcHl0
ZXN0UERCIGFzIF9fcHl0ZXN0UERCCi1mcm9tIF9weXRlc3QucmVjd2FybiBpbXBvcnQgd2FybnMs
IGRlcHJlY2F0ZWRfY2FsbAotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lw
LCBpbXBvcnRvcnNraXAsIGV4aXQsIHhmYWlsCi1mcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTUFS
S19HRU4gYXMgbWFyaywgcGFyYW0KLWZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uCi1m
cm9tIF9weXRlc3Qubm9kZXMgaW1wb3J0IEl0ZW0sIENvbGxlY3RvciwgRmlsZQotZnJvbSBfcHl0
ZXN0LmZpeHR1cmVzIGltcG9ydCBmaWxsZml4dHVyZXMgYXMgX2ZpbGxmdW5jYXJncwotZnJvbSBf
cHl0ZXN0LnB5dGhvbiBpbXBvcnQgTW9kdWxlLCBDbGFzcywgSW5zdGFuY2UsIEZ1bmN0aW9uLCBH
ZW5lcmF0b3IKLQotZnJvbSBfcHl0ZXN0LnB5dGhvbl9hcGkgaW1wb3J0IGFwcHJveCwgcmFpc2Vz
Ci0KLXNldF90cmFjZSA9IF9fcHl0ZXN0UERCLnNldF90cmFjZQotCi1fX2FsbF9fID0gWwotICAg
ICJtYWluIiwKLSAgICAiVXNhZ2VFcnJvciIsCi0gICAgImNtZGxpbmUiLAotICAgICJob29rc3Bl
YyIsCi0gICAgImhvb2tpbXBsIiwKLSAgICAiX192ZXJzaW9uX18iLAotICAgICJyZWdpc3Rlcl9h
c3NlcnRfcmV3cml0ZSIsCi0gICAgImZyZWV6ZV9pbmNsdWRlcyIsCi0gICAgInNldF90cmFjZSIs
Ci0gICAgIndhcm5zIiwKLSAgICAiZGVwcmVjYXRlZF9jYWxsIiwKLSAgICAiZml4dHVyZSIsCi0g
ICAgInlpZWxkX2ZpeHR1cmUiLAotICAgICJmYWlsIiwKLSAgICAic2tpcCIsCi0gICAgInhmYWls
IiwKLSAgICAiaW1wb3J0b3Jza2lwIiwKLSAgICAiZXhpdCIsCi0gICAgIm1hcmsiLAotICAgICJw
YXJhbSIsCi0gICAgImFwcHJveCIsCi0gICAgIl9maWxsZnVuY2FyZ3MiLAotICAgICJJdGVtIiwK
LSAgICAiRmlsZSIsCi0gICAgIkNvbGxlY3RvciIsCi0gICAgIlNlc3Npb24iLAotICAgICJNb2R1
bGUiLAotICAgICJDbGFzcyIsCi0gICAgIkluc3RhbmNlIiwKLSAgICAiRnVuY3Rpb24iLAotICAg
ICJHZW5lcmF0b3IiLAotICAgICJyYWlzZXMiLAotXQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWlu
X18iOgotICAgICMgaWYgcnVuIGFzIGEgc2NyaXB0IG9yIGJ5ICdweXRob24gLW0gcHl0ZXN0Jwot
ICAgICMgd2UgdHJpZ2dlciB0aGUgYmVsb3cgImVsc2UiIGNvbmRpdGlvbiBieSB0aGUgZm9sbG93
aW5nIGltcG9ydAotICAgIGltcG9ydCBweXRlc3QKLQotICAgIHJhaXNlIFN5c3RlbUV4aXQocHl0
ZXN0Lm1haW4oKSkKLWVsc2U6Ci0KLSAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBfc2V0
dXBfY29sbGVjdF9mYWtlbW9kdWxlCi0KLSAgICBfc2V0dXBfY29sbGVjdF9mYWtlbW9kdWxlKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvcHl0ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0ZGRjMjc4M2M2MzJmM2RhOTI1YjcxMTRhY2M3Yzc5NDBhMzA2YzQzLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9w
eXRlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L3B5dGVzdC9fX21haW5fXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9weXRlc3QvY29sbGVjdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9weXRlc3QvcHkudHlwZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE3MWQzYmE4YWQ4MjkwMzMxMDcwZTZlZWJkYTI4
NzkzMTQxNTZiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9zcmMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvcHl0ZXN0LnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90YXNrcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9f
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTViMTI5M2UzM2VhNzU4MjI4YTRk
ZGFiOWVjYWVjNGM2Y2U3NTU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMTAgKzAsMCBAQAotIiIiCi1JbnZva2UgdGFza3MgdG8gaGVscCB3aXRoIHB5dGVzdCBkZXZl
bG9wbWVudCBhbmQgcmVsZWFzZSBwcm9jZXNzLgotIiIiCi0KLWltcG9ydCBpbnZva2UKLQotZnJv
bSAuIGltcG9ydCBnZW5lcmF0ZQotCi0KLW5zID0gaW52b2tlLkNvbGxlY3Rpb24oZ2VuZXJhdGUp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9nZW5lcmF0ZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rhc2tzL2dlbmVyYXRlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOThhZjcw
Yzk0MjdhNzZhYzIxODUxYmM0Y2Q0ODViMTcwZTIyM2U2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL2dlbmVyYXRlLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLSIiIgotSW52b2tlIGRldmVsb3BtZW50IHRh
c2tzLgotIiIiCi1mcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKLWZyb20gc3VicHJvY2VzcyBpbXBv
cnQgY2hlY2tfb3V0cHV0LCBjaGVja19jYWxsCi0KLWltcG9ydCBpbnZva2UKLQotCi1AaW52b2tl
LnRhc2soaGVscD17InZlcnNpb24iOiAidmVyc2lvbiBiZWluZyByZWxlYXNlZCJ9KQotZGVmIGFu
bm91bmNlKGN0eCwgdmVyc2lvbik6Ci0gICAgIiIiR2VuZXJhdGVzIGEgbmV3IHJlbGVhc2UgYW5u
b3VuY2VtZW50IGVudHJ5IGluIHRoZSBkb2NzLiIiIgotICAgICMgR2V0IG91ciBsaXN0IG9mIGF1
dGhvcnMKLSAgICBzdGRvdXQgPSBjaGVja19vdXRwdXQoWyJnaXQiLCAiZGVzY3JpYmUiLCAiLS1h
YmJyZXY9MCIsICItLXRhZ3MiXSkKLSAgICBzdGRvdXQgPSBzdGRvdXQuZGVjb2RlKCJ1dGYtOCIp
Ci0gICAgbGFzdF92ZXJzaW9uID0gc3Rkb3V0LnN0cmlwKCkKLQotICAgIHN0ZG91dCA9IGNoZWNr
X291dHB1dCgKLSAgICAgICAgWyJnaXQiLCAibG9nIiwgInt9Li5IRUFEIi5mb3JtYXQobGFzdF92
ZXJzaW9uKSwgIi0tZm9ybWF0PSVhTiJdCi0gICAgKQotICAgIHN0ZG91dCA9IHN0ZG91dC5kZWNv
ZGUoInV0Zi04IikKLQotICAgIGNvbnRyaWJ1dG9ycyA9IHNldChzdGRvdXQuc3BsaXRsaW5lcygp
KQotCi0gICAgdGVtcGxhdGVfbmFtZSA9ICJyZWxlYXNlLm1pbm9yLnJzdCIgaWYgdmVyc2lvbi5l
bmRzd2l0aCgKLSAgICAgICAgIi4wIgotICAgICkgZWxzZSAicmVsZWFzZS5wYXRjaC5yc3QiCi0g
ICAgdGVtcGxhdGVfdGV4dCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lucGF0aCh0ZW1wbGF0
ZV9uYW1lKS5yZWFkX3RleHQoCi0gICAgICAgIGVuY29kaW5nPSJVVEYtOCIKLSAgICApCi0KLSAg
ICBjb250cmlidXRvcnNfdGV4dCA9ICJcbiIuam9pbigKLSAgICAgICAgIioge30iLmZvcm1hdChu
YW1lKSBmb3IgbmFtZSBpbiBzb3J0ZWQoY29udHJpYnV0b3JzKQotICAgICkgKyAiXG4iCi0gICAg
dGV4dCA9IHRlbXBsYXRlX3RleHQuZm9ybWF0KHZlcnNpb249dmVyc2lvbiwgY29udHJpYnV0b3Jz
PWNvbnRyaWJ1dG9yc190ZXh0KQotCi0gICAgdGFyZ2V0ID0gUGF0aChfX2ZpbGVfXykucGFyZW50
LmpvaW5wYXRoKAotICAgICAgICAiLi4vZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ute30ucnN0Ii5m
b3JtYXQodmVyc2lvbikKLSAgICApCi0gICAgdGFyZ2V0LndyaXRlX3RleHQodGV4dCwgZW5jb2Rp
bmc9IlVURi04IikKLSAgICBwcmludCgiW2dlbmVyYXRlLmFubm91bmNlXSBHZW5lcmF0ZWQge30i
LmZvcm1hdCh0YXJnZXQubmFtZSkpCi0KLSAgICAjIFVwZGF0ZSBpbmRleCB3aXRoIHRoZSBuZXcg
cmVsZWFzZSBlbnRyeQotICAgIGluZGV4X3BhdGggPSBQYXRoKF9fZmlsZV9fKS5wYXJlbnQuam9p
bnBhdGgoIi4uL2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QiKQotICAgIGxpbmVzID0gaW5kZXhf
cGF0aC5yZWFkX3RleHQoZW5jb2Rpbmc9IlVURi04Iikuc3BsaXRsaW5lcygpCi0gICAgaW5kZW50
ID0gIiAgICIKLSAgICBmb3IgaW5kZXgsIGxpbmUgaW4gZW51bWVyYXRlKGxpbmVzKToKLSAgICAg
ICAgaWYgbGluZS5zdGFydHN3aXRoKCJ7fXJlbGVhc2UtIi5mb3JtYXQoaW5kZW50KSk6Ci0gICAg
ICAgICAgICBuZXdfbGluZSA9IGluZGVudCArIHRhcmdldC5zdGVtCi0gICAgICAgICAgICBpZiBs
aW5lICE9IG5ld19saW5lOgotICAgICAgICAgICAgICAgIGxpbmVzLmluc2VydChpbmRleCwgbmV3
X2xpbmUpCi0gICAgICAgICAgICAgICAgaW5kZXhfcGF0aC53cml0ZV90ZXh0KCJcbiIuam9pbihs
aW5lcykgKyAiXG4iLCBlbmNvZGluZz0iVVRGLTgiKQotICAgICAgICAgICAgICAgIHByaW50KCJb
Z2VuZXJhdGUuYW5ub3VuY2VdIFVwZGF0ZWQge30iLmZvcm1hdChpbmRleF9wYXRoLm5hbWUpKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCgKLSAgICAgICAgICAgICAg
ICAgICAgIltnZW5lcmF0ZS5hbm5vdW5jZV0gU2tpcCB7fSAoYWxyZWFkeSBjb250YWlucyByZWxl
YXNlKSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfcGF0aC5uYW1lCi0g
ICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBicmVh
awotCi0gICAgY2hlY2tfY2FsbChbImdpdCIsICJhZGQiLCBzdHIodGFyZ2V0KV0pCi0KLQotQGlu
dm9rZS50YXNrKCkKLWRlZiByZWdlbihjdHgpOgotICAgICIiIkNhbGwgcmVnZW5kb2MgdG9vbCB0
byB1cGRhdGUgZXhhbXBsZXMgYW5kIHB5dGVzdCBvdXRwdXQgaW4gdGhlIGRvY3MuIiIiCi0gICAg
cHJpbnQoIltnZW5lcmF0ZS5yZWdlbl0gVXBkYXRpbmcgZG9jcyIpCi0gICAgY2hlY2tfY2FsbChb
InRveCIsICItZSIsICJyZWdlbiJdKQotCi0KLUBpbnZva2UudGFzaygpCi1kZWYgbWFrZV90YWco
Y3R4LCB2ZXJzaW9uKToKLSAgICAiIiJDcmVhdGUgYSBuZXcsIGxvY2FsIHRhZyBmb3IgdGhlIHJl
bGVhc2UsIG9ubHkgaWYgdGhlIHJlcG9zaXRvcnkgaXMgY2xlYW4uIiIiCi0gICAgZnJvbSBnaXQg
aW1wb3J0IFJlcG8KLQotICAgIHJlcG8gPSBSZXBvKCIuIikKLSAgICBpZiByZXBvLmlzX2RpcnR5
KCk6Ci0gICAgICAgIHByaW50KCJDdXJyZW50IHJlcG9zaXRvcnkgaXMgZGlydHkuIFBsZWFzZSBj
b21taXQgYW55IGNoYW5nZXMgYW5kIHRyeSBhZ2Fpbi4iKQotICAgICAgICByYWlzZSBpbnZva2Uu
RXhpdChjb2RlPTIpCi0KLSAgICB0YWdfbmFtZXMgPSBbeC5uYW1lIGZvciB4IGluIHJlcG8udGFn
c10KLSAgICBpZiB2ZXJzaW9uIGluIHRhZ19uYW1lczoKLSAgICAgICAgcHJpbnQoIltnZW5lcmF0
ZS5tYWtlX3RhZ10gRGVsZXRlIGV4aXN0aW5nIHRhZyB7fSIuZm9ybWF0KHZlcnNpb24pKQotICAg
ICAgICByZXBvLmRlbGV0ZV90YWcodmVyc2lvbikKLQotICAgIHByaW50KCJbZ2VuZXJhdGUubWFr
ZV90YWddIENyZWF0ZSB0YWcge30iLmZvcm1hdCh2ZXJzaW9uKSkKLSAgICByZXBvLmNyZWF0ZV90
YWcodmVyc2lvbikKLQotCi1AaW52b2tlLnRhc2soaGVscD17InZlcnNpb24iOiAidmVyc2lvbiBi
ZWluZyByZWxlYXNlZCJ9KQotZGVmIHByZV9yZWxlYXNlKGN0eCwgdmVyc2lvbik6Ci0gICAgIiIi
R2VuZXJhdGVzIG5ldyBkb2NzLCByZWxlYXNlIGFubm91bmNlbWVudHMgYW5kIGNyZWF0ZXMgYSBs
b2NhbCB0YWcuIiIiCi0gICAgYW5ub3VuY2UoY3R4LCB2ZXJzaW9uKQotICAgIHJlZ2VuKGN0eCkK
LSAgICBjaGFuZ2Vsb2coY3R4LCB2ZXJzaW9uLCB3cml0ZV9vdXQ9VHJ1ZSkKLQotICAgIG1zZyA9
ICJQcmVwYXJpbmcgcmVsZWFzZSB2ZXJzaW9uIHt9Ii5mb3JtYXQodmVyc2lvbikKLSAgICBjaGVj
a19jYWxsKFsiZ2l0IiwgImNvbW1pdCIsICItYSIsICItbSIsIG1zZ10pCi0KLSAgICBtYWtlX3Rh
ZyhjdHgsIHZlcnNpb24pCi0KLSAgICBwcmludCgpCi0gICAgcHJpbnQoIltnZW5lcmF0ZS5wcmVf
cmVsZWFzZV0gUGxlYXNlIHB1c2ggeW91ciBicmFuY2ggYW5kIG9wZW4gYSBQUi4iKQotCi0KLUBp
bnZva2UudGFzaygKLSAgICBoZWxwPXsKLSAgICAgICAgInZlcnNpb24iOiAidmVyc2lvbiBiZWlu
ZyByZWxlYXNlZCIsCi0gICAgICAgICJ3cml0ZV9vdXQiOiAid3JpdGUgY2hhbmdlcyB0byB0aGUg
YWN0dWFsIGNoYW5nZWxvZyIsCi0gICAgfQotKQotZGVmIGNoYW5nZWxvZyhjdHgsIHZlcnNpb24s
IHdyaXRlX291dD1GYWxzZSk6Ci0gICAgaWYgd3JpdGVfb3V0OgotICAgICAgICBhZGRvcHRzID0g
W10KLSAgICBlbHNlOgotICAgICAgICBhZGRvcHRzID0gWyItLWRyYWZ0Il0KLSAgICBjaGVja19j
YWxsKFsidG93bmNyaWVyIiwgIi0teWVzIiwgIi0tdmVyc2lvbiIsIHZlcnNpb25dICsgYWRkb3B0
cykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGFza3MvcmVsZWFzZS5taW5vci5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJkZDgyODJjZmFkOTlmN2U3YjE5MGI1MDZkZGY2OGQ1ZTA0NmI5YjkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3Mv
cmVsZWFzZS5taW5vci5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1weXRlc3Qt
e3ZlcnNpb259Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVGhl
IHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSB7dmVyc2lvbn0gcmVsZWFzZSEK
LQotcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4g
YSAyMDAwIHRlc3RzCi1hZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBp
bnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KLQotVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVt
YmVyIG9mIGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVtZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFn
ZWQKLXRvIHRha2UgYSBsb29rIGF0IHRoZSBDSEFOR0VMT0c6Ci0KLSAgICBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sCi0KLUZvciBjb21wbGV0ZSBkb2N1bWVu
dGF0aW9uLCBwbGVhc2UgdmlzaXQ6Ci0KLSAgICBodHRwOi8vZG9jcy5weXRlc3Qub3JnCi0KLUFz
IHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKLQotICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdAotCi1UaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVh
c2UsIGFtb25nIHRoZW06Ci0KLXtjb250cmlidXRvcnN9Ci0KLUhhcHB5IHRlc3RpbmcsCi1UaGUg
UHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3Jl
bGVhc2UucGF0Y2gucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ODJkYzM1M2M0YjZjNDVlOTcxYzAxYzI5NGNl
ODM4NzhlODA4OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QKKysrIC9kZXYvbnVsbApAQCAt
MSwxNyArMCwwIEBACi1weXRlc3Qte3ZlcnNpb259Ci09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLQotcHl0ZXN0IHt2ZXJzaW9ufSBoYXMganVzdCBiZWVuIHJlbGVhc2Vk
IHRvIFB5UEkuCi0KLVRoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiBy
ZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6Ci0KLSAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVz
dAotCi1UaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0
Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCi0KLVRoYW5rcyB0byBhbGwgd2hvIGNvbnRy
aWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKLQote2NvbnRyaWJ1dG9yc30KLQot
SGFwcHkgdGVzdGluZywKLVRoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGFza3MvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3Jl
cXVpcmVtZW50cy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNTRlNzZlODVj
OGI2Yjc1ZjVkZGY2ZGE1Zjg3OTEwYTMzODhkNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVxdWlyZW1lbnRzLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotLWUgLgotZ2l0cHl0aG9uCi1pbnZva2UKLXRv
d25jcmllcgotdG94Ci13aGVlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGFlMDg1M2QzMmQ4MDA2NmRmOTQ2YzAyMzQxYTFhNjhiMTQ1ZmQ0
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90YXNrcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFz
a3MvZ2VuZXJhdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UucGF0Y2gucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVx
dWlyZW1lbnRzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGZmZmVlMDcxZDg4ZTE1OWVhOWI1ODJlODA5NTU2
OTc3NDE1ZDQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2Nv
ZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9hY2NlcHRhbmNlL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5jZS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDI3Yjc1ZTA1ZmVjYTc4NjI4ZThhMjVh
NmE3MDMwNzFiMTQ5ZjJiMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9hY2NlcHRhbmNlL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvYWNjZXB0YW5jZS9maXh0dXJlX21vY2tf
aW50ZWdyYXRpb24ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9jb2xsZWN0X2luaXRf
dGVzdHMvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGE2ZWRmZGQzMzc2NjJlNjYxNTVmMGM1NDU0NTNlYWU1NWQ3NjcxMmMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvY29sbGVjdC9jb2xsZWN0X2luaXRfdGVzdHMvdGVzdHMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy90ZXN0cy9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3Qv
Y29sbGVjdF9pbml0X3Rlc3RzL3Rlc3RzL3Rlc3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L2NvbGxlY3RfaW5pdF90ZXN0cy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvY29sbGVjdF9pbml0X3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjNmYxNmY0NDBkMDg3MzVmMzg5NTQxYmFiNGM4YzM1NDM0ZTJmYWY4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvY29sbGVjdF9pbml0X3Rlc3RzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9jb2xsZWN0X2luaXRfdGVzdHMvcHl0
ZXN0LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
Y29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0
ZV9yZWN1cnNpb24vdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0
M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhj
NTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29s
bGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy9fX2luaXRfXy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5p
dGVfcmVjdXJzaW9uL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbmZpbml0ZV9yZWN1cnNp
b24vdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmMyMjU4NTg1YjM1NzU1YTc3OTM2
YmQyOTllZmU4NGNiYzQyYWZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFj
a2FnZV9pbmZpbml0ZV9yZWN1cnNpb24vdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJzaW9uL3Rlc3RzL19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdl
X2luZmluaXRlX3JlY3Vyc2lvbi90ZXN0cy90ZXN0X2Jhc2ljLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVf
cmVjdXJzaW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvY29sbGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzExZjIzNTI5YWRmYTllN2IzMzc4Nzc5YTFh
YjlmMDgzNWI2Y2Q1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2Vf
aW5maW5pdGVfcmVjdXJzaW9uL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTgg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29s
bGVjdC9wYWNrYWdlX2luZmluaXRlX3JlY3Vyc2lvbi9fX2luaXRfXy5weWkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5maW5pdGVfcmVjdXJz
aW9uL2NvbmZ0ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2lu
aXRfZ2l2ZW5fYXNfYXJnL3BrZy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUx
NTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0
OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9j
b2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19hcmcvcGtnL19faW5pdF9fLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxlY3QvcGFja2FnZV9pbml0X2dp
dmVuX2FzX2FyZy9wa2cvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRfZ2l2ZW5fYXNfYXJnL3Br
Zy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2Nv
bGxlY3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlYmEyYWQ5MTJjZjg3NDA5YmFiM2Q2YzgzZTg3MTlk
NzZiODM5NzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29sbGVjdC9wYWNrYWdlX2luaXRf
Z2l2ZW5fYXNfYXJnL3BrZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbGxl
Y3QvcGFja2FnZV9pbml0X2dpdmVuX2FzX2FyZy9wa2cvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb2xsZWN0L3BhY2thZ2VfaW5pdF9naXZlbl9hc19h
cmcvcGtnL3Rlc3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1w
bGVfc2NyaXB0cy9jb25maWcvY29sbGVjdF9weXRlc3RfcHJlZml4L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0
X3ByZWZpeC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk1
MmMxNDUyZmU5Y2UzZTcyNWM3OTY4ZDQyNzdlM2NlNWZmMWM5Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9jb25maWcvY29sbGVjdF9weXRlc3RfcHJlZml4L3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC9fX2luaXRfXy5weWkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9jb25maWcvY29sbGVjdF9weXRl
c3RfcHJlZml4L2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvY29uZmlnL2NvbGxlY3RfcHl0ZXN0X3ByZWZpeC90ZXN0X2Zvby5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRlc3RfdXNhZ2VlcnJvci93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2NvbmZ0
ZXN0X3VzYWdlZXJyb3IvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc5YTkxYjAxNTljNDQ4MGIwNDYwYzcwNzIyMGZkNGRjNGY0Mjc3NjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvY29uZnRlc3RfdXNhZ2VlcnJvci93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2NvbmZ0ZXN0X3VzYWdlZXJyb3IvX19pbml0X18ucHlpCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvY29uZnRlc3RfdXNhZ2VlcnJvci9jb25mdGVzdC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNs
YXNzZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9kYXRhY2xhc3Nlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDdhNzZmYmZhMGE1MzQxNTkxOTJhNmRiZTc0ZGY0N2IwNDNkZGQyYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9kYXRhY2xhc3Nlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xh
c3Nlc19maWVsZF9jb21wYXJpc29uX29mZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV9kYXRhY2xhc3Nlc192ZXJib3NlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZGF0YWNsYXNzZXMvdGVzdF9j
b21wYXJlX3JlY3Vyc2l2ZV9kYXRhY2xhc3Nlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2RhdGFjbGFzc2VzL3Rlc3RfY29tcGFyZV90d29fZGlmZmVyZW50X2RhdGFj
bGFzc2VzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9jdXN0b21faXRlbS9mb28vX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9mb28vX19pbml0X18ucHkK
aW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJi
MmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5pdF9f
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1
c3RvbV9pdGVtL2Zvby9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21faXRlbS9mb28vdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9jdXN0b21f
aXRlbS9mb28vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2
NGM1ZTQ1OGNkMTg3NDI2M2VlOTIzOWQyMWU1YThiODQ3NjRmZDIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL19faW5pdF9fLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0ZW0vZm9vL3Rl
c3RfZm9vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9jdXN0b21faXRlbS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9pdGVtL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzI4ZTI2MTNkY2E2ZmU2ZDg4MWI3OTVkYTJm
YTk5MWIwZGI4NDk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2N1c3RvbV9p
dGVtL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvY3VzdG9tX2l0
ZW0vX19pbml0X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4
dHVyZXMvY3VzdG9tX2l0ZW0vY29uZnRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVz
dF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS9fX2lu
aXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5l
NjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rl
c3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1
YmRpci9zdWIxL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5j
YXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVz
dF9jb25mdGVzdF9mdW5jYXJnc19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMS93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJjMTg4YmI4OGI2M2IxMWU4
MmM1OGQxOTEyMjk2ZmI3YjlmMDA3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5f
c3ViZGlyL3N1YjEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9m
aWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3Vi
ZGlyL3N1YjEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0
cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFp
bGFibGVfaW5fc3ViZGlyL3N1YjEvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2Fy
Z3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjEvdGVzdF9pbl9zdWIxLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2Zp
eHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1
YjIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVf
aW5fc3ViZGlyL3N1YjIvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2Zk
OTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVy
ZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2lu
X3N1YmRpci9zdWIyL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9jb25mdGVzdF9mdW5jYXJnc19v
bmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIvc3ViMi9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVz
L3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5fc3ViZGlyL3N1YjIvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJl
cy9maWxsX2ZpeHR1cmVzL3Rlc3RfY29uZnRlc3RfZnVuY2FyZ3Nfb25seV9hdmFpbGFibGVfaW5f
c3ViZGlyL3N1YjIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFhNWZkMDIyZjQ2OTdjYjFkNWMwZTE5OTQ2MGU5Yzg4ZTBlYzZhZTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdz
X29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29u
bHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2NvbmZ0ZXN0
X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL2NvbmZ0ZXN0LnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90
ZXN0X2NvbmZ0ZXN0X2Z1bmNhcmdzX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpci9zdWIyL3Rlc3Rf
aW5fc3ViMi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2Nv
bmZ0ZXN0L3BrZy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9j
b25mdGVzdC9wa2cvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAx
YzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3BrZy9f
X2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0
dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3Qv
cGtnL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25m
dGVzdF9jb25mdGVzdC9wa2cvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVf
Y29uZnRlc3RfY29uZnRlc3QvcGtnL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjM2FjODIyMjZlMTY2OTRiMTk5MWJhODRmOTU4ZWQ4ZGYwYTc3ODQ4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRf
Zml4dHVyZV9jb25mdGVzdF9jb25mdGVzdC9wa2cvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5kX2ZpeHR1cmVfY29uZnRl
c3RfY29uZnRlc3QvcGtnL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0
ZXN0X2NvbmZ0ZXN0L3BrZy9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25m
dGVzdF9jb25mdGVzdC9wa2cvdGVzdF9zcGFtLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5k
X2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZXh0ZW5k
X2ZpeHR1cmVfY29uZnRlc3RfY29uZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDYwZWVlNDhlNzEzODM4OGQyNzdjMzQ5NWU4YjBhZTZkYWI0ODg0M2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4
dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0
ZXN0X2NvbmZ0ZXN0L19faW5pdF9fLnB5aQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVz
dF9jb25mdGVzdC9jb25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJl
X2NvbmZ0ZXN0X21vZHVsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9j
b25mdGVzdF9tb2R1bGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQzNWI2NjVjNDBkNGIzMTcwZDRkY2IxNmY0NzBlNjVkOGFkOGQ2MjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9l
eGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJl
X2NvbmZ0ZXN0X21vZHVsZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1
cmVzL2ZpbGxfZml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvX19p
bml0X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMv
ZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZS9jb25mdGVz
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxf
Zml4dHVyZXMvdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9tb2R1bGUvdGVzdF9leHRlbmRf
Zml4dHVyZV9jb25mdGVzdF9tb2R1bGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1
cmVzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTIyMzYx
OGQ2NWIyN2I1MWFlYjFkZDJiMGM4ZjRjMzkxYjA4YzYxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2Ny
aXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZGV0ZWN0X3JlY3Vyc2l2ZV9kZXBlbmRl
bmN5X2Vycm9yLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVy
ZXMvZmlsbF9maXh0dXJlcy90ZXN0X2V4dGVuZF9maXh0dXJlX21vZHVsZV9jbGFzcy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2ZpeHR1cmVzL2ZpbGxfZml4dHVyZXMv
dGVzdF9mdW5jYXJnX2Jhc2ljLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Njcmlw
dHMvZml4dHVyZXMvZmlsbF9maXh0dXJlcy90ZXN0X2Z1bmNhcmdfbG9va3VwX2NsYXNzbGV2ZWwu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2Zp
eHR1cmVzL3Rlc3RfZnVuY2FyZ19sb29rdXBfbW9kdWxlbGV2ZWwucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy9maWxsX2ZpeHR1cmVzL3Rlc3RfZnVuY2Fy
Z19sb29rdXBmYWlscy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvZml4dHVyZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9maXh0dXJlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzc1OWI0Mzc5MWMxOTQzMDZkYmVlNDExMjAzZjkzNjY2YTk3ZWE0ZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9maXh0dXJlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL2ZpeHR1cmVzL3Rlc3RfZml4dHVyZV9uYW1lZF9yZXF1ZXN0LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvZml4dHVyZXMvdGVzdF9nZXRmaXh0dXJldmFs
dWVfZHluYW1pYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211
bHRpbm9kZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAx
YWQ5YmNlNDFkMzRkZmRmMmUxYjIwYzA1MWExNmQ4OTNlODBkMzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvaXNzdWU4OF9pbml0aWFsX2ZpbGVfbXVsdGlub2Rlcy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZXhhbXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMvX19pbml0
X18ucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvaXNzdWU4OF9pbml0
aWFsX2ZpbGVfbXVsdGlub2Rlcy9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL2lzc3VlODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMvdGVzdF9oZWxsby5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3Mv
bWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NDk5ODNjYjUxYTVh
OWNjMTkzNzdkNGQ3NjI2Y2NkNWJmYmY3MGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFy
a3MvbWFya3NfY29uc2lkZXJlZF9rZXl3b3Jkcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9z
Y3JpcHRzL21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvX19pbml0X18ucHlpCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvbWFya3MvbWFya3NfY29uc2lkZXJlZF9r
ZXl3b3Jkcy9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRz
L21hcmtzL21hcmtzX2NvbnNpZGVyZWRfa2V5d29yZHMvdGVzdF9tYXJrc19hc19rZXl3b3Jkcy5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9l
eGFtcGxlcy9jb2xsZWN0X3N0YXRzLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4
YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxlY3Rfc3RhdHMvLmdpdGlnbm9yZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYzQ1YzJlYTM1MWE3MDk4MjJiNzlkMTZhYTM2MTQ2YmFiYTgwYzkyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvcGVyZl9leGFt
cGxlcy9jb2xsZWN0X3N0YXRzLy5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorZm9vXyoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMv
Y29sbGVjdF9zdGF0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBs
ZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVjNTUxODMwZjI1Nzk0Nzc4M2IwNmJlYzViY2Jl
ZTIxYWQxMWU0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVzL2NvbGxl
Y3Rfc3RhdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9wZXJmX2V4YW1wbGVz
L2NvbGxlY3Rfc3RhdHMvZ2VuZXJhdGVfZm9sZGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
ZXhhbXBsZV9zY3JpcHRzL3BlcmZfZXhhbXBsZXMvY29sbGVjdF9zdGF0cy90ZW1wbGF0ZV90ZXN0
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy90bXBk
aXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy90
bXBkaXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MTY0
MzkwNjAxMmIwM2FmNjBlYjVjN2RmOWVlZTA0YWNjM2U0OGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3Nj
cmlwdHMvdG1wZGlyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdG1wZGlyL3Rt
cGRpcl9maXh0dXJlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVf
c2NyaXB0cy91bml0dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhh
bXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5NWE2NWE1NzIwNzA3NTg4YWE4YWQ2MjYwODJiZmMzOGViZjVhM2E4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9wYXJhbWV0cml6ZWRfZml4dHVyZV9lcnJvcl9tZXNzYWdl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9z
ZXR1cF9za2lwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdW5pdHRl
c3QvdGVzdF9zZXR1cF9za2lwX2NsYXNzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxl
X3NjcmlwdHMvdW5pdHRlc3QvdGVzdF9zZXR1cF9za2lwX21vZHVsZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3RfdW5pdHRlc3RfYXN5bmNpby5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3VuaXR0ZXN0L3Rlc3RfdW5p
dHRlc3RfYXN5bmN0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMv
dW5pdHRlc3QvdGVzdF91bml0dGVzdF9wbGFpbl9hc3luYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjc0NDZiYzFkYmM1OTNlYWQ3YTc4MDJkN2QwMmRmYTAyZjg0NGE0MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3Jp
cHRzL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9pc3N1
ZV81MTkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9qdW5pdC0xMC54
c2QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy9weXRlc3QuaW5pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93YXJuaW5ncy90ZXN0
X2dyb3VwX3dhcm5pbmdzX2J5X21lc3NhZ2Vfc3VtbWFyeS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3Rlc3RfZ3JvdXBfd2Fybmlu
Z3NfYnlfbWVzc2FnZV9zdW1tYXJ5L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2MzdmOTc0OTE3MzY0YjNlNGMxNzU3YmY2N2QyNGZkMmE3NDQxNDkwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3Rlc3RfZ3JvdXBfd2FybmluZ3NfYnlfbWVz
c2FnZV9zdW1tYXJ5L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3Mv
dGVzdF9ncm91cF93YXJuaW5nc19ieV9tZXNzYWdlX3N1bW1hcnkvdGVzdF8xLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJuaW5n
c19ieV9tZXNzYWdlX3N1bW1hcnkvdGVzdF8yLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2V4YW1wbGVfc2NyaXB0cy93YXJuaW5ncy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTY4MGM3YjZlYjA5YTAzYjAyOWQyOTU3NmZlNzYy
NmQ2NThjYjk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZXhhbXBsZV9zY3JpcHRzL3dhcm5pbmdzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9leGFtcGxlX3NjcmlwdHMvd2FybmluZ3MvdGVzdF9ncm91cF93YXJuaW5nc19ieV9t
ZXNzYWdlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFtcGxlcy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjAxODhmNWQ4YmZjMzkyMTg5NTcxZDhmNWY5
OTRjNGRlYzI3NzI3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2V4YW1wbGVzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9leGFt
cGxlcy90ZXN0X2lzc3VlNTE5LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvLmdpdGlnbm9yZQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNTMzMTkwODcyNDg1NzQyZDBmMDc3MDkyMWU3N2U4ZTdiOGI1ZWQwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvLmdpdGlnbm9yZQpAQCAt
MCwwICsxLDMgQEAKK2J1aWxkLworZGlzdC8KKyouc3BlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2ZyZWV6ZS90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTM3MmRiMWZmOTg1OTE1MDA5Nzk3OTRmNzJiMGM5N2U1MWExYzBiMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2ZyZWV6ZS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfZG9jdGVz
dC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy90ZXN0X3RyaXZpYWwucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDUyMDg1YjY1YjdmZDQ2NzM2YTMwZjczOTU2NjhhMGFmYmM2ZmRiMTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9mcmVlemUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS9jcmVhdGVfZXhlY3V0
YWJsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3RveF9ydW4ucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvaW8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2lv
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmM1N2M5NjIx
N2FlNTY3ZDQyMzg4MDU3YjI2ZDM3ZDYxOTRmMzYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvaW8vdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2lvL3Rlc3Rfc2FmZXJlcHIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2lvL3Rlc3Rf
dGVybWluYWx3cml0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2lvL3Rlc3Rfd2N3aWR0aC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxZjI3ODA2ODcxYWQ1MWFiMTVhYmUwNmIzYzkwMTU2YmIyNDli
OTFkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2Zp
eHR1cmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9mb3JtYXR0ZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9yZXBvcnRpbmcucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi8uZ2l0aWdub3JlIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uLy5naXRpZ25vcmUKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDkzNDQ0N2EwM2JkNDcyOGEzOGMxMWQ2ODExNTkzYjc5ZjNhNTQyYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcGx1Z2luc19pbnRlZ3JhdGlvbi8uZ2l0aWdu
b3JlCkBAIC0wLDAgKzEsMiBAQAorKi5odG1sCithc3NldHMvCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3BsdWdpbnNfaW50ZWdyYXRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3BsdWdpbnNfaW50ZWdyYXRpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5OTM2OWMxZTI0OWUxNzE4OTFlMjA0NmExMjg4Y2Q0YTNk
YzFiNzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9w
bHVnaW5zX2ludGVncmF0aW9uL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3BsdWdp
bnNfaW50ZWdyYXRpb24vYmRkX3dhbGxldC5mZWF0dXJlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9w
bHVnaW5zX2ludGVncmF0aW9uL2JkZF93YWxsZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Bs
dWdpbnNfaW50ZWdyYXRpb24vZGphbmdvX3NldHRpbmdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9wbHVnaW5zX2ludGVncmF0aW9uL3B5dGVzdC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Bs
dWdpbnNfaW50ZWdyYXRpb24vcHl0ZXN0X2FueWlvX2ludGVncmF0aW9uLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL3B5dGVzdF9hc3luY2lvX2ludGVncmF0aW9u
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL3B5dGVzdF9tb2Nr
X2ludGVncmF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9u
L3B5dGVzdF90cmlvX2ludGVncmF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9wbHVnaW5z
X2ludGVncmF0aW9uL3B5dGVzdF90d2lzdGVkX2ludGVncmF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9wbHVnaW5zX2ludGVncmF0aW9uL3NpbXBsZV9pbnRlZ3JhdGlvbi5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmZjNDhhNzcyMmZmMzBmY2E2Y2E4YjA1ZjUzZGZmNDQyYjM4YTdkYy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2FwcHJveC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL2NvbGxlY3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhv
bi9maXh0dXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vbWV0YWZ1bmMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3B5dGhvbi9yYWlzZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zaG93
X2ZpeHR1cmVzX3Blcl90ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM5NDZjYzg0ODBkYzVmNzhmM2UzZGI3MjZmZWNhY2Y5
NGUxMjlkYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNjUg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9hY2NlcHRhbmNlX3Rlc3QucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9k
ZXByZWNhdGVkX3Rlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXJnY29tcGxldGUu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXNzZXJ0aW9uLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X2Fzc2VydHJld3JpdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
Y2FjaGVwcm92aWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9kZWJ1Z2dpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZG9jdGVzdC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9lbnRyeV9wb2ludHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfZXJyb3JfZGlmZnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
ZmF1bHRoYW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2ZpbmRwYXRocy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2p1bml0eG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2xpbmtfcmVz
b2x2ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYWluLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X21hcmsucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbWFya19leHBy
ZXNzaW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21ldGEucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3Rlc3RfbW9ua2V5cGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
bm9kZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9wYXJzZW9wdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXN0
ZWJpbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXRobGliLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcHl0ZXN0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXBvcnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3J1bm5lci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9zZXR1cG9ubHkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2V0dXBwbGFu
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3NraXBwaW5nLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3N0ZXB3aXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3N0b3Jl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Rlcm1pbmFsLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3RtcGRpci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF91bml0dGVz
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJuaW5nX3R5cGVzLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X3dhcm5pbmdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90eXBp
bmdfY2hlY2tzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
MjhiY2VlNDlmZjg2MTRhNzlkMTU5ZDJmYzFlMzI0NjE5ZDI0ZjkwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQVVU
SE9SUwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DSVRBVElPTgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L0NPREVfT0ZfQ09ORFVDVC5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElO
Ry5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvT1BFTkNPTExFQ1RJVkUu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9SRUFETUUucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvUkVMRUFTSU5HLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1RJREVMSUZULnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2NvZGVjb3YueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9qZWN0LnRvbWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3RveC5p
bmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZjI4NjcwNTQxOTg0NzExODJjYzg2MTk2
NjNhNjg0ZDk1OGY2Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My8uZ2l0
aWdub3JlCkBAIC0wLDAgKzEsNCBAQAorKi5weWMKK2J1aWxkLworKi5lZ2ctaW5mby8KK2Rpc3Qv
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My8udHJhdmlzLnltbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzLy50cmF2aXMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwNjVhNjQ0ZGQ2YjYwNzk3MTI4YjA5OTk4
ZjY3YjUxMzViMTE4OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My8udHJh
dmlzLnltbApAQCAtMCwwICsxLDE3IEBACitsYW5ndWFnZTogcHl0aG9uCitweXRob246CisgIC0g
Mi43CisgIC0gMy41CisgIC0gMy42CisgIC0gMy43CisgIC0gMy44CisgIC0gbmlnaHRseQorCitt
YXRyaXg6CisgIGFsbG93X2ZhaWx1cmVzOgorICAgIC0gcHl0aG9uOiAzLjUsIG5pZ2h0bHkKK2lu
c3RhbGw6CisgIC0gcGlwIGluc3RhbGwgc2l4IHlhcGYKK3NjcmlwdDoKKyAgLSBweXRob24gdGVz
dC9ydW5fYWxsLnB5CisgIC0geWFwZiAtLWRpZmYgLS1yZWN1cnNpdmUgLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9jZ2ktYmluL2hpLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvZXhhbXBsZS9jZ2ktYmluL2hpLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY2dpLWJpbi93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY2dpLWJpbi93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZkMTk2MDA5NmMzMzQ0OWJhYTUwMzgwMmNi
YmZkNDEyY2VmNDFkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL2NnaS1iaW4vdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9l
eGFtcGxlL2NnaS1iaW4vaGkucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1w
bGUvZWNob19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL2VjaG9fY2xpZW50
LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQz
L2V4YW1wbGUvc3BlY2lhbF9oZWFkZXJzLmNnaQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmY0M2QzOGUyYWI2MmZhNzYxZTU0MWMzZTQ3YjUxNTY0ZDkxMzFh
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My9leGFtcGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzkg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9hYm9ydF9oYW5kc2hh
a2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9hYm9ydF93c2gucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXdlYnNvY2tldDMvZXhhbXBsZS9iZW5jaF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFt
cGxlL2JlbmNobWFyay5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9iZW5jaG1hcmsu
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9jbG9zZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My9leGFtcGxlL2NvbnNvbGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvY29va2ll
X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvZWNob19jbGllbnQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvZXhhbXBsZS9lY2hvX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvaGFuZGxl
cl9tYXAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhhbXBsZS9oc3RzX3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhh
bXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvZXhh
bXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1w
bGUvc3BlY2lhbF9oZWFkZXJzLmNnaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvdXRpbC5q
cwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl3ZWJzb2NrZXQzL2V4YW1wbGUvdXRpbF9tYWluLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvZXhhbXBsZS91dGlsX3dvcmtlci5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3ZTg4NjVhYTBhZmEzZmI1YmJmNWRjMzhiNTNkYjAyMjkz
YmNkNmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQz
L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9t
b2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJz
b2NrZXQzL21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMv
bW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjE0MjVlMTE0ZDE0ZDg2ZjgxYmNk
MTQxZjYyZjc3ZDY2NGI5Y2NlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL21vZF9weXdlYnNvY2tldC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9w
eXdlYnNvY2tldC9fc3RyZWFtX2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2Rf
cHl3ZWJzb2NrZXQvY29tbW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0
L2Rpc3BhdGNoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L2V4dGVuc2lv
bnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFkZXJfdXRpbC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvbW9kX3B5d2Vic29ja2V0L3JlcXVlc3RfaGFuZGxlci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL21vZF9weXdlYnNvY2tldC9zZXJ2ZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21v
ZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vi
c29ja2V0L3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL21vZF9weXdlYnNvY2tldC91dGls
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvbW9kX3B5d2Vic29ja2V0L3dlYnNvY2tldF9zZXJ2ZXIu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNv
Y2tldDMvc2V0dXAucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQz
L3Rlc3QvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYy
ZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQz
L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvY2VydC93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzkwNDQxOTBmNThi
ZTc3NDU2MTUyM2IzYTdlYjljZGRhYmE4MjM4NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L2NlcnQvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L2NlcnQvY2FjZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvY2Vy
dC9jZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvY2VydC9jbGllbnRfY2VydC5wMTIK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L2NlcnQva2V5LnBlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXdlYnNvY2tldDMvdGVzdC9ydW5fYWxsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9ydW5f
YWxsLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rl
c3QvdGVzdF9kaXNwYXRjaC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZW5kdG9lbmQucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2V4dGVuc2lv
bnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90
ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2hhbmRz
aGFrZS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29j
a2V0My90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2h0dHBfaGVh
ZGVyX3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRp
bC5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
d2Vic29ja2V0My90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0
My90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEw
MDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X21vY2sucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfbW9jay5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1v
ZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfbXNndXRp
bC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9tc2d1dGlsLnB5Cm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3Qv
dGVzdF9zdHJlYW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3Rfc3RyZWFtLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2Nr
ZXQzL3Rlc3QvdGVzdF91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X3V0aWwu
cHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdl
YnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM2NWRiZTMyYWFjOTEyMjkxYTM2M2E4Yzgz
ZWJlOGUwZmVkNjBlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zl
cl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9u
b193c2hfYXRfdGhlX2VuZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3Np
Z193c2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDhj
MGY2NTcyYjEyZmMxYjE0NjY2M2ZmZWFkNThjNDgyNWMyMzc2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0
X2J5X3VzZXJfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9ibGFua193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L29yaWdpbl9jaGVja193c2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3Qv
dGVzdGRhdGEvaGVsbG8ucGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hlbGxv
LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg4MmVmNWExMDA2NWZlYjY5MWFmNWY3MTZiMWU0OTk2YjM5N2RhNjUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRhL2hlbGxv
LnBsCkBAIC0wLDAgKzEsMzIgQEAKKyMhL3Vzci9iaW4vcGVybCAtd1QKKyMKKyMgQ29weXJpZ2h0
IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitwcmludCAiSGVsbG9cbiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90
ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0
ZGF0YS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y3NmI4
ZTE5MjBkYzNiZWNhNmVlNTBkZDMyMmJkNjBhNThjYzRlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RkYXRh
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGY5ZWVhMTkx
NGI5MWQ2ZjU1ZTU0NjdkYjkwODE1MWQ2ODdlOTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29j
a2V0My90ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC9jbGllbnRfZm9y
X3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L21vY2sucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L3J1bl9hbGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3NldF9zeXNf
cGF0aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9kaXNwYXRjaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9lbmR0b2VuZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rl
c3QvdGVzdF9leHRlbnNpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMvdGVzdC90ZXN0X2hhbmRz
aGFrZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXdlYnNvY2tldDMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tl
dDMvdGVzdC90ZXN0X21vY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My90ZXN0L3Rlc3RfbXNndXRp
bC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3Rlc3QvdGVzdF9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vi
c29ja2V0My90ZXN0L3Rlc3RfdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXdlYnNvY2tldDMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJmZGJjMWY2MTg5OTQ2ZGFlYmM4ZWYwYzVkYzUyNzU4
ZmNhOTQ0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5d2Vic29ja2V0My93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL0NPTlRSSUJVVElORwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3
ZWJzb2NrZXQzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5d2Vic29ja2V0My9NQU5JRkVTVC5pbgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl3ZWJzb2NrZXQzL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl3ZWJzb2NrZXQzL3NldHVwLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
ZG9jdW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzEwZDZmMDk4ZTlkZWI1Y2RhMDJmMmJiYzFiYWQ4Y2M5ZTIxZTdjMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9u
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24v
Y29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9JTlNUQUxMRVIgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4x
My4wLmRpc3QtaW5mby9JTlNUQUxMRVIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEx
YjU4OWUzOGEzMjA0MWU0OTMzMmU1ZTgxYzJkMzYzZGM0MThkNjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWlu
Zm8vSU5TVEFMTEVSCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotcGlwCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEu
MTMuMC5kaXN0LWluZm8vTElDRU5TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGIw
NWE1NDUyNjFjMGY5YjMxYWJlM2VkZWM3MTA1ODc1ODdhNjU5YS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5m
by9MSUNFTlNFCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotQ29weXJpZ2h0IChjKSAy
MDEwLTIwMTkgQmVuamFtaW4gUGV0ZXJzb24KLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgotdGhp
cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3
YXJlIiksIHRvIGRlYWwgaW4KLXRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs
dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KLXVzZSwgY29weSwgbW9kaWZ5
LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29w
aWVzIG9mCi10aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBT
b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sCi1zdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz
c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCi1jb3BpZXMgb3Igc3Vic3RhbnRp
YWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotCi1USEUgU09GVFdBUkUgSVMgUFJPVklERUQg
IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotSU1QTElF
RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFksIEZJVE5FU1MKLUZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgotQ09QWVJJR0hUIEhPTERF
UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX
SEVUSEVSCi1JTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT
SU5HIEZST00sIE9VVCBPRiBPUiBJTgotQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU
SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL01FVEFEQVRBIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMu
MC5kaXN0LWluZm8vTUVUQURBVEEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwYzhm
NTFlMWYzNjYxMzhkMzgxNmFiZTBkZGIzZWZlZTQxNzVjM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8v
TUVUQURBVEEKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi1NZXRhZGF0YS1WZXJzaW9u
OiAyLjEKLU5hbWU6IHNpeAotVmVyc2lvbjogMS4xMy4wCi1TdW1tYXJ5OiBQeXRob24gMiBhbmQg
MyBjb21wYXRpYmlsaXR5IHV0aWxpdGllcwotSG9tZS1wYWdlOiBodHRwczovL2dpdGh1Yi5jb20v
YmVuamFtaW5wL3NpeAotQXV0aG9yOiBCZW5qYW1pbiBQZXRlcnNvbgotQXV0aG9yLWVtYWlsOiBi
ZW5qYW1pbkBweXRob24ub3JnCi1MaWNlbnNlOiBNSVQKLVBsYXRmb3JtOiBVTktOT1dOCi1DbGFz
c2lmaWVyOiBEZXZlbG9wbWVudCBTdGF0dXMgOjogNSAtIFByb2R1Y3Rpb24vU3RhYmxlCi1DbGFz
c2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMgotQ2xhc3NpZmllcjog
UHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKLUNsYXNzaWZpZXI6IEludGVuZGVk
IEF1ZGllbmNlIDo6IERldmVsb3BlcnMKLUNsYXNzaWZpZXI6IExpY2Vuc2UgOjogT1NJIEFwcHJv
dmVkIDo6IE1JVCBMaWNlbnNlCi1DbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9w
bWVudCA6OiBMaWJyYXJpZXMKLUNsYXNzaWZpZXI6IFRvcGljIDo6IFV0aWxpdGllcwotUmVxdWly
ZXMtUHl0aG9uOiA+PTIuNiwgIT0zLjAuKiwgIT0zLjEuKgotCi0uLiBpbWFnZTo6IGh0dHBzOi8v
aW1nLnNoaWVsZHMuaW8vcHlwaS92L3NpeC5zdmcKLSAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5v
cmcvcHJvamVjdC9zaXgvCi0gICA6YWx0OiBzaXggb24gUHlQSQotCi0uLiBpbWFnZTo6IGh0dHBz
Oi8vdHJhdmlzLWNpLm9yZy9iZW5qYW1pbnAvc2l4LnN2Zz9icmFuY2g9bWFzdGVyCi0gICA6dGFy
Z2V0OiBodHRwczovL3RyYXZpcy1jaS5vcmcvYmVuamFtaW5wL3NpeAotICAgOmFsdDogc2l4IG9u
IFRyYXZpc0NJCi0KLS4uIGltYWdlOjogaHR0cHM6Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMv
c2l4L2JhZGdlLz92ZXJzaW9uPWxhdGVzdAotICAgOnRhcmdldDogaHR0cHM6Ly9zaXgucmVhZHRo
ZWRvY3MuaW8vCi0gICA6YWx0OiBzaXgncyBkb2N1bWVudGF0aW9uIG9uIFJlYWQgdGhlIERvY3MK
LQotLi4gaW1hZ2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2xpY2Vuc2UtTUlULWdy
ZWVuLnN2ZwotICAgOnRhcmdldDogaHR0cHM6Ly9naXRodWIuY29tL2JlbmphbWlucC9zaXgvYmxv
Yi9tYXN0ZXIvTElDRU5TRQotICAgOmFsdDogTUlUIExpY2Vuc2UgYmFkZ2UKLQotU2l4IGlzIGEg
UHl0aG9uIDIgYW5kIDMgY29tcGF0aWJpbGl0eSBsaWJyYXJ5LiAgSXQgcHJvdmlkZXMgdXRpbGl0
eSBmdW5jdGlvbnMKLWZvciBzbW9vdGhpbmcgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0
aGUgUHl0aG9uIHZlcnNpb25zIHdpdGggdGhlIGdvYWwgb2YKLXdyaXRpbmcgUHl0aG9uIGNvZGUg
dGhhdCBpcyBjb21wYXRpYmxlIG9uIGJvdGggUHl0aG9uIHZlcnNpb25zLiAgU2VlIHRoZQotZG9j
dW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0IGlzIHByb3ZpZGVkLgotCi1T
aXggc3VwcG9ydHMgZXZlcnkgUHl0aG9uIHZlcnNpb24gc2luY2UgMi42LiAgSXQgaXMgY29udGFp
bmVkIGluIG9ubHkgb25lIFB5dGhvbgotZmlsZSwgc28gaXQgY2FuIGJlIGVhc2lseSBjb3BpZWQg
aW50byB5b3VyIHByb2plY3QuIChUaGUgY29weXJpZ2h0IGFuZCBsaWNlbnNlCi1ub3RpY2UgbXVz
dCBiZSByZXRhaW5lZC4pCi0KLU9ubGluZSBkb2N1bWVudGF0aW9uIGlzIGF0IGh0dHBzOi8vc2l4
LnJlYWR0aGVkb2NzLmlvLy4KLQotQnVncyBjYW4gYmUgcmVwb3J0ZWQgdG8gaHR0cHM6Ly9naXRo
dWIuY29tL2JlbmphbWlucC9zaXguICBUaGUgY29kZSBjYW4gYWxzbwotYmUgZm91bmQgdGhlcmUu
Ci0KLUZvciBxdWVzdGlvbnMgYWJvdXQgc2l4IG9yIHBvcnRpbmcgaW4gZ2VuZXJhbCwgZW1haWwg
dGhlIHB5dGhvbi1wb3J0aW5nIG1haWxpbmcKLWxpc3Q6IGh0dHBzOi8vbWFpbC5weXRob24ub3Jn
L21haWxtYW4vbGlzdGluZm8vcHl0aG9uLXBvcnRpbmcKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Np
eC9zaXgtMS4xMy4wLmRpc3QtaW5mby9SRUNPUkQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3Qt
aW5mby9SRUNPUkQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NzY2NWM5OTY0MjU1
ZDE3MDJmMDE2YzhiZDExZGFlZGU1MTY2ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vUkVDT1JECisr
KyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1zaXgtMS4xMy4wLmRpc3QtaW5mby9JTlNUQUxM
RVIsc2hhMjU2PXp1dXVlNGtub3lKLVV3UFBYZzhmZXpTN1ZDclhKUXJBUDd6ZU51d3ZGUWcsNA0K
LXNpeC0xLjEzLjAuZGlzdC1pbmZvL0xJQ0VOU0Usc2hhMjU2PXQxS2JqQWNYR25pb3cyd3lnNUJW
S09TQktVWFpkOUVsNjVKdWpNdnlSYlksMTA2Ng0KLXNpeC0xLjEzLjAuZGlzdC1pbmZvL01FVEFE
QVRBLHNoYTI1Nj1oeFM0clNQUmZPOGV3YmNMUzMwYW5vRmk2TEZnVVEzbWtfeGtuWjhSVjR3LDE5
NDANCi1zaXgtMS4xMy4wLmRpc3QtaW5mby9SRUNPUkQsLA0KLXNpeC0xLjEzLjAuZGlzdC1pbmZv
L1dIRUVMLHNoYTI1Nj04VDhmeGVmcl9yLUE3OXFiT0o5ZF9BYUVna3BDR21FUEhjLWdwQ3E1QlJn
LDExMA0KLXNpeC0xLjEzLjAuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQsc2hhMjU2PV9pVkhfaVlF
dEVYbkQ4bllHUVlwWUZVdmtVVzlzRU8xR1lia2VLU0FhaXMsNA0KLXNpeC5weSxzaGEyNTY9bzlX
SE84dXRXR2F5TmhOcURtTnFQZFFzUWFpcjVSYVJXakxfOElZZjFxdywzMzA1MQ0KLXNpeC5weWMs
LA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1dIRUVMIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vV0hFRUwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEwMDEyMzU1MzMzZTA2NjRmYWMzMTIzOGFhMDQyMTZmZjUzNjIyMTcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMu
MC5kaXN0LWluZm8vV0hFRUwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVdoZWVsLVZl
cnNpb246IDEuMAotR2VuZXJhdG9yOiBiZGlzdF93aGVlbCAoMC4zMi4xKQotUm9vdC1Jcy1QdXJl
bGliOiB0cnVlCi1UYWc6IHB5Mi1ub25lLWFueQotVGFnOiBweTMtbm9uZS1hbnkKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
c2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZmZTJmY2U0OTg5NTViNjI4MDE0NjE4YjI4YzZiY2YxNTI0NjZhNGEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4
LTEuMTMuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLXNpeApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVlMWQyMmNiODYzMGNjZDIwYzIwM2Q2Mzg5
YTVhZTYyNTAwYWY5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlz
dC1pbmZvL0lOU1RBTExFUgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL0xJQ0VOU0UK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9zaXgtMS4xMy4wLmRpc3QtaW5mby9NRVRBREFUQQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0x
LjEzLjAuZGlzdC1pbmZvL1JFQ09SRAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjEzLjAuZGlzdC1pbmZvL1dI
RUVMCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTMuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9zaXgvc2l4LTEuMTUuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3NpeC9zaXgtMS4xNS4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTgzMGIyN2Y3ZTVhOWJmODQ0MmRiNjRkOGYwNTg0MzNmNzIzNTcyOS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9z
aXgtMS4xNS4wLmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIy
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1pbmZvL0lOU1RBTExF
UgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1pbmZvL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXgt
MS4xNS4wLmRpc3QtaW5mby9NRVRBREFUQQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1pbmZv
L1JFQ09SRAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC0xLjE1LjAuZGlzdC1pbmZvL1dIRUVMCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
c2l4LTEuMTUuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
c2l4LmVnZy1pbmZvL1BLRy1JTkZPIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1BLRy1JTkZPCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDVmZjRiYjhlNGZhMGExY2FmNmQzZGY1Mjhh
YmMyMGIzZGY1YWVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9QS0ctSU5GTworKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLU1ldGFkYXRhLVZlcnNpb246IDEuMQotTmFtZTogc2l4Ci1WZXJzaW9uOiAxLjEx
LjAKLVN1bW1hcnk6IFB5dGhvbiAyIGFuZCAzIGNvbXBhdGliaWxpdHkgdXRpbGl0aWVzCi1Ib21l
LXBhZ2U6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zaXgvCi1BdXRob3I6IEJlbmphbWlu
IFBldGVyc29uCi1BdXRob3ItZW1haWw6IGJlbmphbWluQHB5dGhvbi5vcmcKLUxpY2Vuc2U6IE1J
VAotRGVzY3JpcHRpb246IC4uIGltYWdlOjogaHR0cDovL2ltZy5zaGllbGRzLmlvL3B5cGkvdi9z
aXguc3ZnCi0gICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkv
c2l4Ci0gICAgICAgIAotICAgICAgICAuLiBpbWFnZTo6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9i
ZW5qYW1pbnAvc2l4LnN2Zz9icmFuY2g9bWFzdGVyCi0gICAgICAgICAgICA6dGFyZ2V0OiBodHRw
czovL3RyYXZpcy1jaS5vcmcvYmVuamFtaW5wL3NpeAotICAgICAgICAKLSAgICAgICAgLi4gaW1h
Z2U6OiBodHRwOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvbGljZW5zZS1NSVQtZ3JlZW4uc3ZnCi0g
ICAgICAgICAgIDp0YXJnZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZW5qYW1pbnAvc2l4L2Jsb2Iv
bWFzdGVyL0xJQ0VOU0UKLSAgICAgICAgCi0gICAgICAgIFNpeCBpcyBhIFB5dGhvbiAyIGFuZCAz
IGNvbXBhdGliaWxpdHkgbGlicmFyeS4gIEl0IHByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zCi0g
ICAgICAgIGZvciBzbW9vdGhpbmcgb3ZlciB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgUHl0
aG9uIHZlcnNpb25zIHdpdGggdGhlIGdvYWwgb2YKLSAgICAgICAgd3JpdGluZyBQeXRob24gY29k
ZSB0aGF0IGlzIGNvbXBhdGlibGUgb24gYm90aCBQeXRob24gdmVyc2lvbnMuICBTZWUgdGhlCi0g
ICAgICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gd2hhdCBpcyBwcm92
aWRlZC4KLSAgICAgICAgCi0gICAgICAgIFNpeCBzdXBwb3J0cyBldmVyeSBQeXRob24gdmVyc2lv
biBzaW5jZSAyLjYuICBJdCBpcyBjb250YWluZWQgaW4gb25seSBvbmUgUHl0aG9uCi0gICAgICAg
IGZpbGUsIHNvIGl0IGNhbiBiZSBlYXNpbHkgY29waWVkIGludG8geW91ciBwcm9qZWN0LiAoVGhl
IGNvcHlyaWdodCBhbmQgbGljZW5zZQotICAgICAgICBub3RpY2UgbXVzdCBiZSByZXRhaW5lZC4p
Ci0gICAgICAgIAotICAgICAgICBPbmxpbmUgZG9jdW1lbnRhdGlvbiBpcyBhdCBodHRwOi8vc2l4
LnJ0ZmQub3JnLgotICAgICAgICAKLSAgICAgICAgQnVncyBjYW4gYmUgcmVwb3J0ZWQgdG8gaHR0
cHM6Ly9naXRodWIuY29tL2JlbmphbWlucC9zaXguICBUaGUgY29kZSBjYW4gYWxzbwotICAgICAg
ICBiZSBmb3VuZCB0aGVyZS4KLSAgICAgICAgCi0gICAgICAgIEZvciBxdWVzdGlvbnMgYWJvdXQg
c2l4IG9yIHBvcnRpbmcgaW4gZ2VuZXJhbCwgZW1haWwgdGhlIHB5dGhvbi1wb3J0aW5nIG1haWxp
bmcKLSAgICAgICAgbGlzdDogaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5m
by9weXRob24tcG9ydGluZwotICAgICAgICAKLVBsYXRmb3JtOiBVTktOT1dOCi1DbGFzc2lmaWVy
OiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMgotQ2xhc3NpZmllcjogUHJvZ3Jh
bW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMKLUNsYXNzaWZpZXI6IEludGVuZGVkIEF1ZGll
bmNlIDo6IERldmVsb3BlcnMKLUNsYXNzaWZpZXI6IExpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6
IE1JVCBMaWNlbnNlCi1DbGFzc2lmaWVyOiBUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6
OiBMaWJyYXJpZXMKLUNsYXNzaWZpZXI6IFRvcGljIDo6IFV0aWxpdGllcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9zaXgvc2l4LmVnZy1pbmZvL1NPVVJDRVMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZv
L1NPVVJDRVMudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTdmM2RlYzZkZjMz
NGQ4NDIzZDkwM2IwNDM5YTEwNmQ3ZDIyYTE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLUNIQU5HRVMKLUxJQ0VOU0UKLU1BTklGRVNULmlu
Ci1SRUFETUUucnN0Ci1zZXR1cC5jZmcKLXNldHVwLnB5Ci1zaXgucHkKLXRlc3Rfc2l4LnB5Ci1k
b2N1bWVudGF0aW9uL01ha2VmaWxlCi1kb2N1bWVudGF0aW9uL2NvbmYucHkKLWRvY3VtZW50YXRp
b24vaW5kZXgucnN0Ci1zaXguZWdnLWluZm8vUEtHLUlORk8KLXNpeC5lZ2ctaW5mby9TT1VSQ0VT
LnR4dAotc2l4LmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Ci1zaXguZWdnLWluZm8vdG9w
X2xldmVsLnR4dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
c2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ct
aW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vZGVw
ZW5kZW5jeV9saW5rcy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVn
Zy1pbmZvL3RvcF9sZXZlbC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmZTJm
Y2U0OTg5NTViNjI4MDE0NjE4YjI4YzZiY2YxNTI0NjZhNGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3RvcF9sZXZl
bC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1zaXgKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
c2l4L3NpeC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEzMTk1MzFmMWUx
Zjc0ODcyYzQ4MTIxMjkzOWQzMmRmNzIxNDFkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdn
LWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdnLWluZm8vU09VUkNFUy50eHQKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3NpeC9zaXguZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9zaXguZWdn
LWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZjBmMjJjYTJkNmMzNGMzNWEzMzhhZTE3YTI3MTI0MjFhMzU1ZWNkNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L0NIQU5HRVMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3NpeC9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9SRUFE
TUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9zaXgvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2V0dXAucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Np
eC9zaXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3NpeC90ZXN0X3NpeC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9v
bC90b29sdG9vbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdG9vbHRvb2wucHkKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvdG9vbHRvb2wvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJmNTE2OGRjYzJmNTNlYjVlY2RhMjgwMzA3NTY3ZmFhMDFiMjQwNDEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
dG9vbHRvb2wvdG9vbHRvb2wucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMyZTgyZDJkNWQ0ODA5NTM3MjliMjllYjM2NDEyYzQyODZjMTU0
NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJlbmNvZGluZ3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2Rpbmdz
L1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29k
aW5ncy9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2Rpbmdz
LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2Rpbmdz
LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
ZmE2N2NhM2NjMDhhMWIzYjQ5ZDgzZjNhNjZlNzAzNWFmN2Y5NzdjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29k
aW5ncy5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby9QS0ct
SU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby9TT1VSQ0VTLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby9kZXBlbmRlbmN5X2xp
bmtzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy5lZ2ctaW5mby90b3BfbGV2
ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyYWJkZTViOTBjOGQ4ZGViYzgxNDhmNTA5
MDM1MGU0MDI1ZDU0NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2Vi
ZW5jb2RpbmdzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzL2xh
YmVscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy9ta2xhYmVscy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy90ZXN0cy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2Rpbmdz
L3dlYmVuY29kaW5ncy94X3VzZXJfZGVmaW5lZC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzLy5hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmFwcHZleW9yLnltbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OTU0ZWU0YmU3OGZiYWYxNTViYTdiZjQ1MDNjNzdhNDlhYzg5MDcxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy5hcHB2ZXlvci55bWwKQEAgLTAsMCArMSwyNyBAQAor
YnJhbmNoZXM6CisgIG9ubHk6CisgICAgLSBtYXN0ZXIKKworc2tpcF9icmFuY2hfd2l0aF9wcjog
dHJ1ZQorCitlbnZpcm9ubWVudDoKKyMgd2Vic29ja2V0cyBvbmx5IHdvcmtzIG9uIFB5dGhvbiA+
PSAzLjYuCisgIENJQldfU0tJUDogY3AyNy0qIGNwMzMtKiBjcDM0LSogY3AzNS0qCisgIENJQldf
VEVTVF9DT01NQU5EOiBweXRob24gLVcgZGVmYXVsdCAtbSB1bml0dGVzdAorICBXRUJTT0NLRVRT
X1RFU1RTX1RJTUVPVVRfRkFDVE9SOiAxMDAKKworaW5zdGFsbDoKKyMgRW5zdXJlIHB5dGhvbiBp
cyBQeXRob24gMy4KKyAgLSBzZXQgUEFUSD1DOlxQeXRob24zNzslUEFUSCUKKyAgLSBjbWQ6IHB5
dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgY2lidWlsZHdoZWVsCisjIENyZWF0ZSBmaWxl
ICcuY2lidWlsZHdoZWVsJyBzbyB0aGF0IGV4dGVuc2lvbiBidWlsZCBpcyBub3Qgb3B0aW9uYWwg
KGMuZi4gc2V0dXAucHkpLgorICAtIGNtZDogdG91Y2ggLmNpYnVpbGR3aGVlbAorCitidWlsZF9z
Y3JpcHQ6CisgIC0gY21kOiBweXRob24gLW0gY2lidWlsZHdoZWVsIC0tb3V0cHV0LWRpciB3aGVl
bGhvdXNlCisjIFVwbG9hZCB0byBQeVBJIG9uIHRhZ3MKKyAgLSBwczogPi0KKyAgICAgIGlmICgk
ZW52OkFQUFZFWU9SX1JFUE9fVEFHIC1lcSAidHJ1ZSIpIHsKKyAgICAgICAgSW52b2tlLUV4cHJl
c3Npb24gInB5dGhvbiAtbSBwaXAgaW5zdGFsbCB0d2luZSIKKyAgICAgICAgSW52b2tlLUV4cHJl
c3Npb24gInB5dGhvbiAtbSB0d2luZSB1cGxvYWQgLS1za2lwLWV4aXN0aW5nIHdoZWVsaG91c2Uv
Ki53aGwiCisgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmNpcmNsZWNpL2Nv
bmZpZy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmNpcmNsZWNpL2NvbmZpZy55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDg3N2MxNjFhZDQ5MGY4MjBmYmE3MmNlYWUxNDU3ZThkM2NkZTc1NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy8uY2lyY2xlY2kvY29uZmlnLnltbApAQCAtMCwwICsxLDU1
IEBACit2ZXJzaW9uOiAyCisKK2pvYnM6CisgIG1haW46CisgICAgZG9ja2VyOgorICAgICAgLSBp
bWFnZTogY2lyY2xlY2kvcHl0aG9uOjMuNworICAgIHN0ZXBzOgorICAgICAgIyBSZW1vdmUgSVB2
NiBlbnRyeSBmb3IgbG9jYWxob3N0IGluIENpcmNsZSBDSSBjb250YWluZXJzIGJlY2F1c2UgaXQg
ZG9lc24ndCB3b3JrIGFueXdheS4KKyAgICAgIC0gcnVuOiBzdWRvIGNwIC9ldGMvaG9zdHMgL3Rt
cDsgc3VkbyBzZWQgLWkgJy86OjEvZCcgL3RtcC9ob3N0czsgc3VkbyBjcCAvdG1wL2hvc3RzIC9l
dGMKKyAgICAgIC0gY2hlY2tvdXQKKyAgICAgIC0gcnVuOiBzdWRvIHBpcCBpbnN0YWxsIHRveCBj
b2RlY292CisgICAgICAtIHJ1bjogdG94IC1lIGNvdmVyYWdlLGJsYWNrLGZsYWtlOCxpc29ydCxt
eXB5CisgICAgICAtIHJ1bjogY29kZWNvdgorICBweTM2OgorICAgIGRvY2tlcjoKKyAgICAgIC0g
aW1hZ2U6IGNpcmNsZWNpL3B5dGhvbjozLjYKKyAgICBzdGVwczoKKyAgICAgICMgUmVtb3ZlIElQ
djYgZW50cnkgZm9yIGxvY2FsaG9zdCBpbiBDaXJjbGUgQ0kgY29udGFpbmVycyBiZWNhdXNlIGl0
IGRvZXNuJ3Qgd29yayBhbnl3YXkuCisgICAgICAtIHJ1bjogc3VkbyBjcCAvZXRjL2hvc3RzIC90
bXA7IHN1ZG8gc2VkIC1pICcvOjoxL2QnIC90bXAvaG9zdHM7IHN1ZG8gY3AgL3RtcC9ob3N0cyAv
ZXRjCisgICAgICAtIGNoZWNrb3V0CisgICAgICAtIHJ1bjogc3VkbyBwaXAgaW5zdGFsbCB0b3gK
KyAgICAgIC0gcnVuOiB0b3ggLWUgcHkzNgorICBweTM3OgorICAgIGRvY2tlcjoKKyAgICAgIC0g
aW1hZ2U6IGNpcmNsZWNpL3B5dGhvbjozLjcKKyAgICBzdGVwczoKKyAgICAgICMgUmVtb3ZlIElQ
djYgZW50cnkgZm9yIGxvY2FsaG9zdCBpbiBDaXJjbGUgQ0kgY29udGFpbmVycyBiZWNhdXNlIGl0
IGRvZXNuJ3Qgd29yayBhbnl3YXkuCisgICAgICAtIHJ1bjogc3VkbyBjcCAvZXRjL2hvc3RzIC90
bXA7IHN1ZG8gc2VkIC1pICcvOjoxL2QnIC90bXAvaG9zdHM7IHN1ZG8gY3AgL3RtcC9ob3N0cyAv
ZXRjCisgICAgICAtIGNoZWNrb3V0CisgICAgICAtIHJ1bjogc3VkbyBwaXAgaW5zdGFsbCB0b3gK
KyAgICAgIC0gcnVuOiB0b3ggLWUgcHkzNworICBweTM4OgorICAgIGRvY2tlcjoKKyAgICAgIC0g
aW1hZ2U6IGNpcmNsZWNpL3B5dGhvbjozLjguMHJjMQorICAgIHN0ZXBzOgorICAgICAgIyBSZW1v
dmUgSVB2NiBlbnRyeSBmb3IgbG9jYWxob3N0IGluIENpcmNsZSBDSSBjb250YWluZXJzIGJlY2F1
c2UgaXQgZG9lc24ndCB3b3JrIGFueXdheS4KKyAgICAgIC0gcnVuOiBzdWRvIGNwIC9ldGMvaG9z
dHMgL3RtcDsgc3VkbyBzZWQgLWkgJy86OjEvZCcgL3RtcC9ob3N0czsgc3VkbyBjcCAvdG1wL2hv
c3RzIC9ldGMKKyAgICAgIC0gY2hlY2tvdXQKKyAgICAgIC0gcnVuOiBzdWRvIHBpcCBpbnN0YWxs
IHRveAorICAgICAgLSBydW46IHRveCAtZSBweTM4CisKK3dvcmtmbG93czoKKyAgdmVyc2lvbjog
MgorICBidWlsZDoKKyAgICBqb2JzOgorICAgICAgLSBtYWluCisgICAgICAtIHB5MzY6CisgICAg
ICAgICAgcmVxdWlyZXM6CisgICAgICAgICAgICAtIG1haW4KKyAgICAgIC0gcHkzNzoKKyAgICAg
ICAgICByZXF1aXJlczoKKyAgICAgICAgICAgIC0gbWFpbgorICAgICAgLSBweTM4OgorICAgICAg
ICAgIHJlcXVpcmVzOgorICAgICAgICAgICAgLSBtYWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvLmdpdGh1Yi9GVU5ESU5HLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8uZ2l0aHViL0ZVTkRJ
TkcueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdhZTIyM2IzZDg5MjA4MzZmNDhlMjc4M2ZlNmIzYTE2NDhiZmYz
OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLmdpdGh1Yi9GVU5ESU5HLnlt
bApAQCAtMCwwICsxIEBACit0aWRlbGlmdDogInB5cGkvd2Vic29ja2V0cyIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2Vic29ja2V0cy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy5naXRpZ25vcmUK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWYwZDE2NTIwYzAyNjUxM2Y2MzQ4YmM4MzViZTkyMzhlNzBlODhhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMTIg
QEAKKyoucHljCisqLnNvCisuY292ZXJhZ2UKKy5teXB5X2NhY2hlCisudG94CitidWlsZC8KK2Nv
bXBsaWFuY2UvcmVwb3J0cy8KK2Rpc3QvCitkb2NzL19idWlsZC8KK2h0bWxjb3YvCitNQU5JRkVT
VAord2Vic29ja2V0cy5lZ2ctaW5mby8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy8ucmVh
ZHRoZWRvY3MueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy5yZWFkdGhlZG9jcy55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTA5YWZmYWI0NTdhOWUwZmQwMWU1YTNhZjVmOTUzODdhOWUxNWE2OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy8ucmVhZHRoZWRvY3MueW1sCkBAIC0wLDAgKzEsNyBAQAor
YnVpbGQ6CisgIGltYWdlOiBsYXRlc3QKKworcHl0aG9uOgorICB2ZXJzaW9uOiAzLjcKKworcmVx
dWlyZW1lbnRzX2ZpbGU6IGRvY3MvcmVxdWlyZW1lbnRzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzLy50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzLy50cmF2aXMueW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAzMDY5Mzc1OTdhM2ZkMGQxZjQ0MzJiMzcxYmNlOGQ2OWYyODg1ODAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwzNiBAQAor
ZW52OgorICBnbG9iYWw6CisgICMgd2Vic29ja2V0cyBvbmx5IHdvcmtzIG9uIFB5dGhvbiA+PSAz
LjYuCisgICAgLSBDSUJXX1NLSVA9ImNwMjctKiBjcDMzLSogY3AzNC0qIGNwMzUtKiIKKyAgICAt
IENJQldfVEVTVF9DT01NQU5EPSJweXRob24zIC1XIGRlZmF1bHQgLW0gdW5pdHRlc3QiCisgICAg
LSBXRUJTT0NLRVRTX1RFU1RTX1RJTUVPVVRfRkFDVE9SPTEwMAorCittYXRyaXg6CisgIGluY2x1
ZGU6CisgICAgLSBsYW5ndWFnZTogcHl0aG9uCisgICAgICBkaXN0OiB4ZW5pYWwgICAgIyByZXF1
aXJlZCBmb3IgUHl0aG9uIDMuNyAodHJhdmlzLWNpL3RyYXZpcy1jaSM5MDY5KQorICAgICAgc3Vk
bzogcmVxdWlyZWQKKyAgICAgIHB5dGhvbjogIjMuNyIKKyAgICAgIHNlcnZpY2VzOgorICAgICAg
ICAtIGRvY2tlcgorICAgIC0gb3M6IG9zeAorICAgICAgb3N4X2ltYWdlOiB4Y29kZTguMworCitp
bnN0YWxsOgorIyBQeXRob24gMyBpcyBuZWVkZWQgdG8gcnVuIGNpYnVpbGR3aGVlbCBmb3Igd2Vi
c29ja2V0cy4KKyAgLSBpZiBbICIke1RSQVZJU19PU19OQU1FOi19IiA9PSAib3N4IiBdOyB0aGVu
CisgICAgICBicmV3IHVwZGF0ZTsKKyAgICAgIGJyZXcgdXBncmFkZSBweXRob247CisgICAgZmkK
KyMgSW5zdGFsbCBjaWJ1aWxkd2hlZWwgdXNpbmcgcGlwMyB0byBtYWtlIHN1cmUgUHl0aG9uIDMg
aXMgdXNlZC4KKyAgLSBwaXAzIGluc3RhbGwgLS11cGdyYWRlIGNpYnVpbGR3aGVlbAorIyBDcmVh
dGUgZmlsZSAnLmNpYnVpbGR3aGVlbCcgc28gdGhhdCBleHRlbnNpb24gYnVpbGQgaXMgbm90IG9w
dGlvbmFsIChjLmYuIHNldHVwLnB5KS4KKyAgLSB0b3VjaCAuY2lidWlsZHdoZWVsCisKK3Njcmlw
dDoKKyAgLSBjaWJ1aWxkd2hlZWwgLS1vdXRwdXQtZGlyIHdoZWVsaG91c2UKKyMgVXBsb2FkIHRv
IFB5UEkgb24gdGFncworICAtIGlmIFsgIiR7VFJBVklTX1RBRzotfSIgIT0gIiIgXTsgdGhlbgor
ICAgICAgcGlwMyBpbnN0YWxsIHR3aW5lOworICAgICAgcHl0aG9uMyAtbSB0d2luZSB1cGxvYWQg
LS1za2lwLWV4aXN0aW5nIHdoZWVsaG91c2UvKjsKKyAgICBmaQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2NvbXBsaWFuY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29t
cGxpYW5jZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ0
NTNhNTMyNzFlNGU3ODg4MGY0YzJkZjM2ZTQwMjg2OWE5ZDcyNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29tcGxpYW5jZS93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy9jb21wbGlhbmNlL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29t
cGxpYW5jZS9mdXp6aW5nY2xpZW50Lmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29tcGxpYW5jZS9m
dXp6aW5nc2VydmVyLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvY29tcGxpYW5jZS90ZXN0X2NsaWVu
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy9jb21wbGlhbmNlL3Rlc3Rfc2VydmVyLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2RvY3MvX3N0YXRpYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWQ0OWIxZDY5ZTUyMGE1OTU0YTRlNjA3Y2E2ZjU5ZjVjY2IzNWFiNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tl
dHMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvX3N0YXRpYy90aWRlbGlmdC5wbmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvZG9jcy9fc3RhdGljL3dlYnNvY2tldHMuc3ZnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9k
b2NzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTcwODNm
YzJhYjg3MWM0MDhkMGM4OWVhYWNlOWFhYzc1NDY3MGRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2RvY3MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9hcGkucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93
ZWJzb2NrZXRzL2RvY3MvY2hhbmdlbG9nLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL2NoZWF0
c2hlZXQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9kb2NzL2NvbnRyaWJ1dGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9kZXBsb3ltZW50
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL2Rlc2lnbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
ZG9jcy9leHRlbnNpb25zLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL2ZhcS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3dlYnNvY2tldHMvZG9jcy9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9pbnRyby5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9k
b2NzL2xpZmVjeWNsZS5ncmFmZmxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvbGlmZWN5Y2xlLnN2
ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2Vic29ja2V0cy9kb2NzL2xpbWl0YXRpb25zLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9kb2NzL3Byb3RvY29sLmdyYWZmbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9wcm90b2NvbC5z
dmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvZG9jcy9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL2RvY3Mvc2VjdXJpdHkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3Mvc3BlbGxpbmdfd29y
ZGxpc3QudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2RvY3MvdGlkZWxpZnQucnN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9iYXNpY19hdXRoX2NsaWVudC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy9leGFtcGxlL2Jhc2ljX2F1dGhfY2xpZW50LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2Jhc2ljX2F1
dGhfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvYmFzaWNfYXV0aF9zZXJ2ZXIu
cHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL2V4YW1wbGUvY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvY2xpZW50
LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy9leGFtcGxlL2NvdW50ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2Nv
dW50ZXIuaHRtbAppbmRleCBmNzZmN2JiNWI3MDE2NzhiMzYyZjczMmQ3M2Q5MzI5ZWIxZGRjNGQ2
Li42MzEwYzRhMTZkOWM2YTMyNDM2MmU5NTY2OWY4M2I5OWM5ZjU3NWViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRz
L2V4YW1wbGUvY291bnRlci5odG1sCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAuYnV0dG9uIHsKICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7Ci0g
ICAgICAgICAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICAgICAgICAgICAg
ICB1c2VyLXNlbGVjdDogbm9uZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC5taW51cyB7
CiAgICAgICAgICAgICAgICAgY29sb3I6IHJlZDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9leGFtcGxlL2NvdW50ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLnB5
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29j
a2V0cy9leGFtcGxlL2VjaG8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9lY2hvLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9leGFtcGxlL2hlYWx0aF9jaGVja19zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBs
ZS9oZWFsdGhfY2hlY2tfc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2hlbGxvLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL2V4YW1wbGUvaGVsbG8ucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2VjdXJlX2NsaWVudC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy9leGFtcGxlL3NlY3VyZV9jbGllbnQucHkKb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2VjdXJl
X3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3NlY3VyZV9zZXJ2ZXIucHkKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRz
L2V4YW1wbGUvc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2VydmVyLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0
cy9leGFtcGxlL3Nob3dfdGltZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3Nob3dfdGlt
ZS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvZXhhbXBsZS9zaHV0ZG93bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3No
dXRkb3duLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy9leGFtcGxlL3VuaXhfY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4
YW1wbGUvdW5peF9jbGllbnQucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvdW5peF9zZXJ2ZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvZXhhbXBsZS91bml4X3NlcnZlci5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmMjdlYmFiZGFjZDFjMWZiNGZkNmNkYWJmY2ViNjViNDY5ZTUyMGJj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vi
c29ja2V0cy9leGFtcGxlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotdXNlci1zZWxlY3QKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2Jhc2ljX2F1dGhf
Y2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvYmFzaWNfYXV0aF9zZXJ2ZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhh
bXBsZS9jb3VudGVyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9jb3VudGVyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvZWNoby5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxl
L2hlYWx0aF9jaGVja19zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvZXhhbXBsZS9oZWxsby5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL2xvY2FsaG9zdC5wZW0KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tl
dHMvZXhhbXBsZS9zZWN1cmVfY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2Vj
dXJlX3NlcnZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9leGFtcGxlL3NlcnZlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy9leGFtcGxlL3Nob3dfdGltZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1w
bGUvc2hvd190aW1lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2V4YW1wbGUvc2h1dGRvd24ucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvZXhhbXBsZS91bml4X2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9l
eGFtcGxlL3VuaXhfc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvbG9nby93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9sb2dvL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjY3MTA5NjQ4NWUzYjM2OGYxY2M4N2EyYjZjNDA0
ZTIyZGI0NzEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2Vic29ja2V0cy9sb2dvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL2xvZ28vaG9yaXpvbnRhbC5zdmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvbG9nby9pY29uLnN2ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9sb2dvL29s
ZC5zdmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvbG9nby90aWRlbGlmdC5wbmcKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tl
dHMvbG9nby92ZXJ0aWNhbC5zdmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9wZXJmb3Jt
YW5jZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9wZXJmb3JtYW5jZS93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRjMjBlMzliMmM0MWUwMDc5
MzBmZTEwZDkzMjRiN2UwYjJiNTc3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvcGVyZm9ybWFuY2UvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMv
cGVyZm9ybWFuY2UvbWVtX2NsaWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9wZXJmb3JtYW5jZS9t
ZW1fc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMv
ZXh0ZW5zaW9ucy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9l
eHRlbnNpb25zL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9leHRlbnNpb25zL19faW5p
dF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9leHRlbnNpb25zL19f
aW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRo
b24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9l
eHRlbnNpb25zL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRz
L2V4dGVuc2lvbnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ5ZDZmODAxODhlODcwNjZmNDU1ODkzYzI2N2I5MmJjZTA0YTY4ODAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJz
b2NrZXRzL2V4dGVuc2lvbnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZXh0ZW5zaW9u
cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9leHRlbnNpb25z
L2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZXh0ZW5zaW9ucy9wZXJt
ZXNzYWdlX2RlZmxhdGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29j
a2V0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDAzZmQzOGYzZTQ0MzJh
MDgzZDY5OWI1NWVhMTY2Nzg5YWQzNjgzNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvc3JjL3dlYnNvY2tldHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dl
YnNvY2tldHMvX19tYWluX18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvYXV0
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9jbGllbnQucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dl
YnNvY2tldHMvc3JjL3dlYnNvY2tldHMvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9z
cmMvd2Vic29ja2V0cy9mcmFtaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRz
L2hhbmRzaGFrZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy9oZWFkZXJzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL2h0dHAucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tl
dHMvc3JjL3dlYnNvY2tldHMvcHJvdG9jb2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNv
Y2tldHMvcHkudHlwZWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvc2VydmVyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93ZWJzb2NrZXRzL3NwZWVkdXBzLmMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvc3JjL3dlYnNvY2tldHMvc3BlZWR1cHMucHlpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3NyYy93
ZWJzb2NrZXRzL3R5cGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy9zcmMvd2Vic29ja2V0cy91cmku
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvc3JjL3dlYnNvY2tldHMvdXRpbHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvc3JjL3dlYnNvY2tldHMvdmVyc2lvbi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2Nr
ZXRzL3Rlc3RzL2V4dGVuc2lvbnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMv
ZXh0ZW5zaW9ucy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFj
N2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weQpAQCAtMSAr
MCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlz
IGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2Vic29ja2V0cy90ZXN0cy9leHRlbnNpb25zL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDUxNjI1Y2VjZjA2NjZjMjVlMzQyZDljYWQ5YjhjZDgy
NTI2NjdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy90ZXN0cy9leHRlbnNpb25zL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL2V4dGVu
c2lvbnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy90ZXN0
X2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvZXh0ZW5zaW9ucy90ZXN0X3Blcm1lc3Nh
Z2VfZGVmbGF0ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwYjQxYjNmM2YzN2MxNDgxMDc0MThjZDAzOTkxZTAzNDg2OTJi
ZTMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMxICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy90ZXN0cy90ZXN0X2F1dGgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdGVz
dF9jbGllbnRfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfZXhjZXB0aW9u
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy90ZXN0X2V4cG9ydHMucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNv
Y2tldHMvdGVzdHMvdGVzdF9mcmFtaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3Rf
aGFuZHNoYWtlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfaGVhZGVycy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvd2Vic29ja2V0cy90ZXN0cy90ZXN0X2h0dHAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMv
dGVzdF9sb2NhbGhvc3QuY25mCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfbG9jYWxob3N0
LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvd2Vic29ja2V0cy90ZXN0cy90ZXN0X3Byb3RvY29sLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJz
b2NrZXRzL3Rlc3RzL3Rlc3RfdXJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJzb2NrZXRzL3Rlc3RzL3Rlc3RfdXRp
bHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdGVzdHMvdXRpbHMucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
d2Vic29ja2V0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2Vic29ja2V0cy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzUzZmRlMTkyYTA4NDU2MDVlZGY0OGFk
ODViMjEwMjRhZGNkMDkzZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvQ09ERV9PRl9DT05EVUNULm1k
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS93ZWJzb2NrZXRzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvTUFOSUZFU1QuaW4K
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3dlYnNvY2tldHMvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvUkVBRE1FLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2Vic29ja2V0cy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYnNvY2tldHMvc2V0dXAucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3dlYnNvY2tldHMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy5mbGFrZTggYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvLmZsYWtlOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTBjMTA5ZmRiZWYyNTgxZDIyMzEyNWJkMjFi
NjYzY2IzNTRjMmQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy5mbGFrZTgKQEAgLTAs
MCArMSw5IEBACitbZmxha2U4XQorbWF4LWxpbmUtbGVuZ3RoID0gODgKK2lnbm9yZSA9CisJIyBX
NTAzIHZpb2xhdGVzIHNwZWMgaHR0cHM6Ly9naXRodWIuY29tL1B5Q1FBL3B5Y29kZXN0eWxlL2lz
c3Vlcy81MTMKKwlXNTAzCisJIyBXNTA0IGhhcyBpc3N1ZXMgaHR0cHM6Ly9naXRodWIuY29tL09D
QS9tYWludGFpbmVyLXF1YWxpdHktdG9vbHMvaXNzdWVzLzU0NQorCVc1MDQKKwkjIEJsYWNrIGNy
ZWF0ZXMgd2hpdGVzcGFjZSBiZWZvcmUgY29sb24KKwlFMjAzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3pp
cHAvLnByZS1jb21taXQtY29uZmlnLnlhbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvLnByZS1jb21taXQtY29uZmln
LnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTIyZDk0MjQ3YTBkNzYzOWNiZTEzNzQzNWNkOWRlZTg0ZWYwYWI4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC8ucHJlLWNvbW1pdC1jb25maWcueWFtbApA
QCAtMCwwICsxLDUgQEAKK3JlcG9zOgorLSByZXBvOiBodHRwczovL2dpdGh1Yi5jb20vYW1idi9i
bGFjaworICByZXY6IDE4LjliMAorICBob29rczoKKyAgLSBpZDogYmxhY2sKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvemlwcC8ucmVhZHRoZWRvY3MueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy5yZWFkdGhlZG9jcy55bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGFlNDQ2ODQyOGJlZGY3NDQxYzRiNDM5Mjg0MjUwNTVhNDQ1MzE5MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC8ucmVhZHRoZWRvY3MueW1sCkBAIC0wLDAgKzEsNSBA
QAorcHl0aG9uOgorICB2ZXJzaW9uOiAzCisgIGV4dHJhX3JlcXVpcmVtZW50czoKKyAgICAtIGRv
Y3MKKyAgcGlwX2luc3RhbGw6IHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC8udHJhdmlzLnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2Q4ZjNhYzlkNmZiMTUxYTYz
YTRlZTc0OTg0ZGQ3NTU1NjRiYzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwLy50cmF2
aXMueW1sCkBAIC0wLDAgKzEsMjggQEAKK2Rpc3Q6IHhlbmlhbAorbGFuZ3VhZ2U6IHB5dGhvbgor
CitweXRob246CistIDIuNworLSAzLjYKKy0gJmxhdGVzdF9weTMgMy44CisKK2pvYnM6CisgIGZh
c3RfZmluaXNoOiB0cnVlCisgIGluY2x1ZGU6CisgIC0gc3RhZ2U6IGRlcGxveQorICAgIGlmOiB0
YWcgSVMgcHJlc2VudAorICAgIHB5dGhvbjogKmxhdGVzdF9weTMKKyAgICBiZWZvcmVfc2NyaXB0
OiBza2lwCisgICAgc2NyaXB0OiB0b3ggLWUgcmVsZWFzZQorCitjYWNoZTogcGlwCisKK2luc3Rh
bGw6CistIHBpcCBpbnN0YWxsIHRveCB0b3gtdmVudgorCitiZWZvcmVfc2NyaXB0OgorICAjIERp
c2FibGUgSVB2Ni4gUmVmIHRyYXZpcy1jaS90cmF2aXMtY2kjODM2MQorICAtIGlmIFsgIiR7VFJB
VklTX09TX05BTUV9IiA9PSAibGludXgiIF07IHRoZW4KKyAgICAgIHN1ZG8gc2ggLWMgJ2VjaG8g
MCA+IC9wcm9jL3N5cy9uZXQvaXB2Ni9jb25mL2FsbC9kaXNhYmxlX2lwdjYnOworICAgIGZpCitz
Y3JpcHQ6IHRveApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2RvY3MvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3ppcHAvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMGNiNjljMmI4ZTAxZTA2YmFhYWEzMDgyYWIxYTFhNzc5OWJkZjcxNC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlw
cC9kb2NzL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvZG9jcy9oaXN0b3J5LnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9k
b2NzL2luZGV4LnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWE0
ZjhkMWM4NmM1NDBkMWNlNWE1N2RiYjllNGM2MTEwOGJjMjNmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9DSEFOR0VTLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvemlwcC9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL1JF
QURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3ppcHAvYXBwdmV5b3IueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL2NvbmZ0ZXN0LnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL3B5cHJvamVjdC50b21sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3NldHVwLmNmZwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
emlwcC9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC9za2VsZXRvbi5tZAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC90ZXN0X3pp
cHAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3ppcHAvdG94LmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBw
LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
YWFmNDM3MDllNDAyMjQ0ZGJhNzhkYjAyZjgyYjM0ZjExYTg3NmNmLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS96aXBwL3ppcHAuZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3ppcHAvemlwcC5lZ2ctaW5mby9T
T1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvemlwcC96aXBwLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS96aXBwL3ppcHAuZWdnLWluZm8vcmVxdWlyZXMudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS96aXBwL3ppcHAu
ZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwOWUwODJlZjRjMTZmMjQ3ZGU4NWRkNzcwMTY0
ZmY0YWY2MmRiZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
b25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZmxha2U4LmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5dGVzdC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19mbGFrZTgudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJl
bWVudHNfbXlweS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3JlcXVpcmVtZW50c19weXRlc3QudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfdGVzdHMudHh0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmMGFhZTllMTNlNzY5
MmUwYjFiMzdhMDc2YjQ5NTQ4Njc2NjIxMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvLmdpdGlnbm9yZQpA
QCAtMCwwICsxLDMgQEAKKyF3d3cvbGliCishZXhwb3J0L2xpYgorIWV4cG9ydC9jc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQz
ZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1
MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAK
LSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0
b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9j
b25maWcuZGVmYXVsdC5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL2NvbmZpZy5kZWZhdWx0Lmpzb24KaW5kZXggOGEwNWI5MTA2MGE1
YWViMjljNGMwYjlkZjlmNmEzZDM4ZTE3YWUzMy4uNWI2OTY5MjliYjBmNDVhZjAzZTE1OTIwNWI0
ZTI5NzQxNWY3YmY2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2NvbmZpZy5kZWZhdWx0Lmpzb24KKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2NvbmZpZy5k
ZWZhdWx0Lmpzb24KQEAgLTM3LDkgKzM3LDEzIEBACiAgICAgICAiYXV0b21hdGljIjogNjAwMDAs
CiAgICAgICAibWFudWFsIjogMzAwMDAwCiAgICAgfSwKLSAgICAiZW5hYmxlX3Jlc3VsdHNfaW1w
b3J0IjogZmFsc2UsCisgICAgImVuYWJsZV9pbXBvcnRfcmVzdWx0cyI6IGZhbHNlLAogICAgICJ3
ZWJfcm9vdCI6ICIvX3dhdmUiLAogICAgICJwZXJzaXN0aW5nX2ludGVydmFsIjogMjAsCi0gICAg
ImFwaV90aXRsZXMiOiBbXQorICAgICJhcGlfdGl0bGVzIjogW10sCisgICAgImVuYWJsZV9yZWFk
X3Nlc3Npb25zIjogZmFsc2UsCisgICAgImV2ZW50X2NhY2hlX2R1cmF0aW9uIjogNjAwMDAsCisg
ICAgImVuYWJsZV90ZXN0X3R5cGVfc2VsZWN0aW9uIjogZmFsc2UsCisgICAgImVuYWJsZV90ZXN0
X2ZpbGVfc2VsZWN0aW9uIjogZmFsc2UKICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2NvbmZpZ3VyYXRpb25f
bG9hZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2NvbmZpZ3VyYXRpb25fbG9hZGVyLnB5CmluZGV4IDgxOWI0MTRjZmFhYzQ4N2Fk
ZDU3OTEzYTA4MzVhMDIzNWYwYWE0YTAuLmU4ZTBkNzQ0OGVhN2E1MjQ5YjhhNjhjZjY5Y2ViYzI1
N2UyMzM5ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9jb25maWd1cmF0aW9uX2xvYWRlci5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvY29uZmlndXJh
dGlvbl9sb2FkZXIucHkKQEAgLTEsNSArMSw2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IG9zCitm
cm9tIGlvIGltcG9ydCBvcGVuCiAKIGZyb20gdG9vbHMud3B0IGltcG9ydCB3cHQKIApAQCAtNDYs
MTUgKzQ3LDI0IEBAIGRlZiBsb2FkKGNvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKToKICAgICBjb25m
aWd1cmF0aW9uWyJob3N0bmFtZSJdID0gY29uZmlndXJhdGlvbi5nZXQoCiAgICAgICAgICJicm93
c2VyX2hvc3QiLCBkZWZhdWx0X2NvbmZpZ3VyYXRpb25bImJyb3dzZXJfaG9zdCJdKQogCi0gICAg
Y29uZmlndXJhdGlvblsiaW1wb3J0X2VuYWJsZWQiXSA9IGNvbmZpZ3VyYXRpb24uZ2V0KAorICAg
IGNvbmZpZ3VyYXRpb25bImltcG9ydF9yZXN1bHRzX2VuYWJsZWQiXSA9IGNvbmZpZ3VyYXRpb24u
Z2V0KAogICAgICAgICAid2F2ZSIsIGRlZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdKS5nZXQo
Ci0gICAgICAgICJlbmFibGVfcmVzdWx0c19pbXBvcnQiLAotICAgICAgICBkZWZhdWx0X2NvbmZp
Z3VyYXRpb25bIndhdmUiXVsiZW5hYmxlX3Jlc3VsdHNfaW1wb3J0Il0pCisgICAgICAgICJlbmFi
bGVfaW1wb3J0X3Jlc3VsdHMiLAorICAgICAgICBkZWZhdWx0X2NvbmZpZ3VyYXRpb25bIndhdmUi
XVsiZW5hYmxlX2ltcG9ydF9yZXN1bHRzIl0pCisKKyAgICBjb25maWd1cmF0aW9uWyJyZWFkX3Nl
c3Npb25zX2VuYWJsZWQiXSA9IGNvbmZpZ3VyYXRpb24uZ2V0KAorICAgICAgICAid2F2ZSIsIGRl
ZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdKS5nZXQoCisgICAgICAgICJlbmFibGVfcmVhZF9z
ZXNzaW9ucyIsCisgICAgICAgIGRlZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdWyJlbmFibGVf
cmVhZF9zZXNzaW9ucyJdKQogCiAgICAgY29uZmlndXJhdGlvblsicGVyc2lzdGluZ19pbnRlcnZh
bCJdID0gY29uZmlndXJhdGlvbi5nZXQoCiAgICAgICAgICJ3YXZlIiwgZGVmYXVsdF9jb25maWd1
cmF0aW9uWyJ3YXZlIl0pLmdldCgKICAgICAgICAgInBlcnNpc3RpbmdfaW50ZXJ2YWwiLCBkZWZh
dWx0X2NvbmZpZ3VyYXRpb25bIndhdmUiXVsicGVyc2lzdGluZ19pbnRlcnZhbCJdKQogCisgICAg
Y29uZmlndXJhdGlvblsiZXZlbnRfY2FjaGVfZHVyYXRpb24iXSA9IGNvbmZpZ3VyYXRpb24uZ2V0
KAorICAgICAgICAid2F2ZSIsIGRlZmF1bHRfY29uZmlndXJhdGlvblsid2F2ZSJdKS5nZXQoCisg
ICAgICAgICJldmVudF9jYWNoZV9kdXJhdGlvbiIsIGRlZmF1bHRfY29uZmlndXJhdGlvblsid2F2
ZSJdWyJldmVudF9jYWNoZV9kdXJhdGlvbiJdKQorCiAgICAgY29uZmlndXJhdGlvblsidGVzdHNf
ZGlyZWN0b3J5X3BhdGgiXSA9IG9zLmdldGN3ZCgpCiAKICAgICBjb25maWd1cmF0aW9uWyJtYW5p
ZmVzdF9maWxlX3BhdGgiXSA9IG9zLnBhdGguam9pbigKQEAgLTY0LDYgKzc0LDE0IEBAIGRlZiBs
b2FkKGNvbmZpZ3VyYXRpb25fZmlsZV9wYXRoKToKICAgICAgICAgIndhdmUiLCBkZWZhdWx0X2Nv
bmZpZ3VyYXRpb25bIndhdmUiXSkuZ2V0KAogICAgICAgICAiYXBpX3RpdGxlcyIsIGRlZmF1bHRf
Y29uZmlndXJhdGlvblsid2F2ZSJdWyJhcGlfdGl0bGVzIl0pCiAKKyAgICBjb25maWd1cmF0aW9u
WyJlbmFibGVfdGVzdF90eXBlX3NlbGVjdGlvbiJdID0gY29uZmlndXJhdGlvbi5nZXQoCisgICAg
ICAgICJ3YXZlIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl0pLmdldCgKKyAgICAgICAg
ImVuYWJsZV90ZXN0X3R5cGVfc2VsZWN0aW9uIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZl
Il1bImVuYWJsZV90ZXN0X3R5cGVfc2VsZWN0aW9uIl0pCisKKyAgICBjb25maWd1cmF0aW9uWyJl
bmFibGVfdGVzdF9maWxlX3NlbGVjdGlvbiJdID0gY29uZmlndXJhdGlvbi5nZXQoCisgICAgICAg
ICJ3YXZlIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl0pLmdldCgKKyAgICAgICAgImVu
YWJsZV90ZXN0X2ZpbGVfc2VsZWN0aW9uIiwgZGVmYXVsdF9jb25maWd1cmF0aW9uWyJ3YXZlIl1b
ImVuYWJsZV90ZXN0X2ZpbGVfc2VsZWN0aW9uIl0pCisKICAgICByZXR1cm4gY29uZmlndXJhdGlv
bgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS9kYXRhL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvX19pbml0X18ucHkKaW5kZXgg
YTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0
MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvX19pbml0X18ucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RhdGEvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQg
Zm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZGV2aWNlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZGV2aWNl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNiMmNjZGY0MDc1YjljYTI1ODU3ZTc2YWIwMTZhYmJhOWVhY2VmNzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9kZXZpY2UucHkKQEAgLTAsMCArMSw2IEBACitjbGFzcyBE
ZXZpY2Uob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9rZW4sIHVzZXJfYWdlbnQs
IG5hbWUsIGxhc3RfYWN0aXZlKToKKyAgICAgICAgc2VsZi50b2tlbiA9IHRva2VuCisgICAgICAg
IHNlbGYudXNlcl9hZ2VudCA9IHVzZXJfYWdlbnQKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor
ICAgICAgICBzZWxmLmxhc3RfYWN0aXZlID0gbGFzdF9hY3RpdmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V2
ZW50X2xpc3RlbmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2RhdGEvZXZlbnRfbGlzdGVuZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY5NWRm
ODNjYmFiNTlhZjQ2MWZlZDI1NzFlYTI5NzZmZjNkZDU4NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRh
L2V2ZW50X2xpc3RlbmVyLnB5CkBAIC0wLDAgKzEsOCBAQAorY2xhc3MgRXZlbnRMaXN0ZW5lcihv
YmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXNwYXRjaGVyX3Rva2VuKToKKyAgICAg
ICAgc3VwZXIoRXZlbnRMaXN0ZW5lciwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLmRp
c3BhdGNoZXJfdG9rZW4gPSBkaXNwYXRjaGVyX3Rva2VuCisgICAgICAgIHNlbGYudG9rZW4gPSBO
b25lCisKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICByYWlz
ZSBFeGNlcHRpb24oIkNsaWVudC5zZW5kX21lc3NhZ2UobWVzc2FnZSkgbm90IGltcGxlbWVudGVk
ISIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZGF0YS9leGNlcHRpb25zL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9u
cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJj
MjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
ZGF0YS9leGNlcHRpb25zL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V4Y2VwdGlvbnMvX19pbml0X18u
cHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBz
ZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V4Y2Vw
dGlvbnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0Zjlj
MDYwMTg1OTg0NDQ3ODEwY2U1OGNiN2Q4OTEzZmJmOWU3ZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvZXhjZXB0aW9ucy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL2V4Y2VwdGlvbnMvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZGF0YS9leGNlcHRpb25zL2R1cGxpY2F0ZV9leGNlcHRpb24ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9leGNl
cHRpb25zL2ludmFsaWRfZGF0YV9leGNlcHRpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9leGNlcHRpb25zL25vdF9mb3Vu
ZF9leGNlcHRpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZGF0YS9leGNlcHRpb25zL3Blcm1pc3Npb25fZGVuaWVkX2V4Y2VwdGlv
bi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2RhdGEvaHR0cF9wb2xsaW5nX2V2ZW50X2xpc3RlbmVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEv
aHR0cF9wb2xsaW5nX2V2ZW50X2xpc3RlbmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmNzMxZDQ4NTZjNGY5
Yjc2MGU2ODAzNDczYTMzMTMzOGQwYTIxODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9odHRwX3Bv
bGxpbmdfZXZlbnRfbGlzdGVuZXIucHkKQEAgLTAsMCArMSwxMSBAQAorZnJvbSAuZXZlbnRfbGlz
dGVuZXIgaW1wb3J0IEV2ZW50TGlzdGVuZXIKKworY2xhc3MgSHR0cFBvbGxpbmdFdmVudExpc3Rl
bmVyKEV2ZW50TGlzdGVuZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXNwYXRjaGVyX3Rv
a2VuLCBldmVudCk6CisgICAgICAgIHN1cGVyKEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5lciwgc2Vs
ZikuX19pbml0X18oZGlzcGF0Y2hlcl90b2tlbikKKyAgICAgICAgc2VsZi5ldmVudCA9IGV2ZW50
CisgICAgICAgIHNlbGYubWVzc2FnZSA9IE5vbmUKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2Vs
ZiwgbWVzc2FnZSk6CisgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2Vs
Zi5ldmVudC5zZXQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvc2Vzc2lvbi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL3Nlc3Npb24ucHkK
aW5kZXggYTQ0NzdmNjZkZWNjNDJiM2I4ODE3NTdjOTJmYjU2ZDc0NzYxNWFkZi4uOGI1YzRhNmIz
OGRlNjZmZWViZmI0MzdkZDAwNjE1YzkwMzZkNmQ2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvc2Vzc2lvbi5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZGF0YS9zZXNzaW9uLnB5CkBAIC0xMiw3ICsxMiw3IEBAIGNsYXNzIFNlc3Npb24ob2Jq
ZWN0KToKICAgICBkZWYgX19pbml0X18oCiAgICAgICAgICAgICBzZWxmLAogICAgICAgICAgICAg
dG9rZW49Tm9uZSwKLSAgICAgICAgICAgIHR5cGVzPU5vbmUsCisgICAgICAgICAgICB0ZXN0X3R5
cGVzPU5vbmUsCiAgICAgICAgICAgICB1c2VyX2FnZW50PU5vbmUsCiAgICAgICAgICAgICBsYWJl
bHM9Tm9uZSwKICAgICAgICAgICAgIHRlc3RzPU5vbmUsCkBAIC0yMywzNSArMjMsMzAgQEAgY2xh
c3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAgICAgICAgdGVzdF9zdGF0ZT1Ob25lLAogICAgICAg
ICAgICAgbGFzdF9jb21wbGV0ZWRfdGVzdD1Ob25lLAogICAgICAgICAgICAgcmVjZW50X2NvbXBs
ZXRlZF9jb3VudD1Ob25lLAorICAgICAgICAgICAgZGF0ZV9jcmVhdGVkPU5vbmUsCiAgICAgICAg
ICAgICBkYXRlX3N0YXJ0ZWQ9Tm9uZSwKICAgICAgICAgICAgIGRhdGVfZmluaXNoZWQ9Tm9uZSwK
ICAgICAgICAgICAgIGlzX3B1YmxpYz1Ob25lLAogICAgICAgICAgICAgcmVmZXJlbmNlX3Rva2Vu
cz1Ob25lLAogICAgICAgICAgICAgYnJvd3Nlcj1Ob25lLAotICAgICAgICAgICAgd2ViaG9va191
cmxzPU5vbmUsCiAgICAgICAgICAgICBleHBpcmF0aW9uX2RhdGU9Tm9uZSwKKyAgICAgICAgICAg
IHR5cGU9Tm9uZSwKICAgICAgICAgICAgIG1hbGZ1bmN0aW9uaW5nX3Rlc3RzPU5vbmUKICAgICAp
OgogICAgICAgICBpZiB0b2tlbiBpcyBOb25lOgogICAgICAgICAgICAgdG9rZW4gPSAiIgogICAg
ICAgICBzZWxmLnRva2VuID0gdG9rZW4KLSAgICAgICAgaWYgdHlwZXMgaXMgTm9uZToKLSAgICAg
ICAgICAgIHR5cGVzID0gW0FVVE9NQVRJQywgTUFOVUFMXQotICAgICAgICBzZWxmLnR5cGVzID0g
dHlwZXMKKyAgICAgICAgaWYgdGVzdF90eXBlcyBpcyBOb25lOgorICAgICAgICAgICAgdGVzdF90
eXBlcyA9IFtBVVRPTUFUSUMsIE1BTlVBTF0KKyAgICAgICAgc2VsZi50ZXN0X3R5cGVzID0gdGVz
dF90eXBlcwogICAgICAgICBpZiB1c2VyX2FnZW50IGlzIE5vbmU6CiAgICAgICAgICAgICB1c2Vy
X2FnZW50ID0gIiIKICAgICAgICAgc2VsZi51c2VyX2FnZW50ID0gdXNlcl9hZ2VudAogICAgICAg
ICBpZiBsYWJlbHMgaXMgTm9uZToKICAgICAgICAgICAgIGxhYmVscyA9IFtdCiAgICAgICAgIHNl
bGYubGFiZWxzID0gbGFiZWxzCi0gICAgICAgIGlmIHRlc3RzIGlzIE5vbmU6Ci0gICAgICAgICAg
ICB0ZXN0cyA9IHt9CiAgICAgICAgIHNlbGYudGVzdHMgPSB0ZXN0cwotICAgICAgICBpZiBwZW5k
aW5nX3Rlc3RzIGlzIE5vbmU6Ci0gICAgICAgICAgICBwZW5kaW5nX3Rlc3RzID0ge30KICAgICAg
ICAgc2VsZi5wZW5kaW5nX3Rlc3RzID0gcGVuZGluZ190ZXN0cwotICAgICAgICBpZiBydW5uaW5n
X3Rlc3RzIGlzIE5vbmU6Ci0gICAgICAgICAgICBydW5uaW5nX3Rlc3RzID0ge30KICAgICAgICAg
c2VsZi5ydW5uaW5nX3Rlc3RzID0gcnVubmluZ190ZXN0cwogICAgICAgICBpZiB0aW1lb3V0cyBp
cyBOb25lOgogICAgICAgICAgICAgdGltZW91dHMgPSB7fQpAQCAtNTksMTMgKzU0LDEyIEBAIGNs
YXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CiAgICAgICAg
ICAgICBzdGF0dXMgPSBVTktOT1dOCiAgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0gICAg
ICAgIGlmIHRlc3Rfc3RhdGUgaXMgTm9uZToKLSAgICAgICAgICAgIHRlc3Rfc3RhdGUgPSB7fQog
ICAgICAgICBzZWxmLnRlc3Rfc3RhdGUgPSB0ZXN0X3N0YXRlCiAgICAgICAgIHNlbGYubGFzdF9j
b21wbGV0ZWRfdGVzdCA9IGxhc3RfY29tcGxldGVkX3Rlc3QKICAgICAgICAgaWYgcmVjZW50X2Nv
bXBsZXRlZF9jb3VudCBpcyBOb25lOgogICAgICAgICAgICAgcmVjZW50X2NvbXBsZXRlZF9jb3Vu
dCA9IDAKICAgICAgICAgc2VsZi5yZWNlbnRfY29tcGxldGVkX2NvdW50ID0gcmVjZW50X2NvbXBs
ZXRlZF9jb3VudAorICAgICAgICBzZWxmLmRhdGVfY3JlYXRlZCA9IGRhdGVfY3JlYXRlZAogICAg
ICAgICBzZWxmLmRhdGVfc3RhcnRlZCA9IGRhdGVfc3RhcnRlZAogICAgICAgICBzZWxmLmRhdGVf
ZmluaXNoZWQgPSBkYXRlX2ZpbmlzaGVkCiAgICAgICAgIGlmIGlzX3B1YmxpYyBpcyBOb25lOgpA
QCAtNzUsMTAgKzY5LDggQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAgICAgICAgcmVm
ZXJlbmNlX3Rva2VucyA9IFtdCiAgICAgICAgIHNlbGYucmVmZXJlbmNlX3Rva2VucyA9IHJlZmVy
ZW5jZV90b2tlbnMKICAgICAgICAgc2VsZi5icm93c2VyID0gYnJvd3NlcgotICAgICAgICBpZiB3
ZWJob29rX3VybHMgaXMgTm9uZToKLSAgICAgICAgICAgIHdlYmhvb2tfdXJscyA9IFtdCi0gICAg
ICAgIHNlbGYud2ViaG9va191cmxzID0gd2ViaG9va191cmxzCiAgICAgICAgIHNlbGYuZXhwaXJh
dGlvbl9kYXRlID0gZXhwaXJhdGlvbl9kYXRlCisgICAgICAgIHNlbGYudHlwZSA9IHR5cGUKICAg
ICAgICAgaWYgbWFsZnVuY3Rpb25pbmdfdGVzdHMgaXMgTm9uZToKICAgICAgICAgICAgIG1hbGZ1
bmN0aW9uaW5nX3Rlc3RzID0gW10KICAgICAgICAgc2VsZi5tYWxmdW5jdGlvbmluZ190ZXN0cyA9
IG1hbGZ1bmN0aW9uaW5nX3Rlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRh
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDNiYjRiZDky
Y2ZhYTk3NTg1ZTU2ZDViNWU2NTNmMTcwZWJiYjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0YS9jbGllbnQucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZGF0
YS9odHRwX3BvbGxpbmdfY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RhdGEvc2Vzc2lvbi5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
UkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2RvY3MvUkVBRE1FLm1kCmluZGV4IDZjZjdkMzk3Zjg0ZmY2OTY4ZTRhYjhmYzBj
YzFjMDY2ZTE3MGE5YWUuLjg4MDkyYjYzZTc3NDgxZmYzOTgwNDNiYWU0YzE0ZTc1NGNiMDFkMjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9kb2NzL1JFQURNRS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9SRUFETUUubWQKQEAgLTEsNCArMSwx
NCBAQAotIyBXQVZFIFRlc3QgU3VpdGUgRG9jdW1lbnRhdGlvbgorIyBXQVZFIFRlc3QgUnVubmVy
IERvY3VtZW50YXRpb24KIAotLSBbUkVTVCBBUEldKC4vcmVzdC1hcGkvUkVBRE1FLm1kKQotLSBb
VXNhZ2UgR3VpZGVdKC4vdXNhZ2UvdXNhZ2UubWQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQorQXMgcGFydCBvZiB0aGUgW1dBVkUgcHJvamVjdF0oaHR0cHM6Ly9jdGEudGVjaC9SZXNvdXJj
ZXMvU3RhbmRhcmRzL1dBVkUtUHJvamVjdCkKK3RoZSBXQVZFIFRlc3QgUnVubmVyIHdhcyBpbXBs
ZW1lbnRlZCB0byBydW4gdGVzdHMgdGhhdCBjb25maXJtIHByb3BlciBpbXBsZW1lbnRhdGlvbgor
b2Ygc3BlY2lmaWVkIGZlYXR1cmVzLiBUaGUgY29kZSBiYXNlIGlzIHVzZWQgaW4gZGlmZmVyZW50
IHN1YnByb2plY3RzLCBlYWNoIG9mIHdoaWNoCittYXkgaGF2ZSBkaWZmZXJlbnQgcmVxdWlyZW1l
bnRzIGFuZCBzY29wZXMsIHNvIHNvbWUgZmVhdHVyZXMgYW5kIHNjcmVlbnNob3RzIGluIAordGhp
cyBkb2N1bWVudGF0aW9uIG1heSB1c2Ugc3BlY2lmaWMgY29udGV4dHMuCisKKyMjIENvbnRlbnRz
CisKKy0gW0NvbmZpZ3VyYXRpb25dKC4vY29uZmlnLm1kKTogSG93IHRvIGNvbmZpZ3VyZSB0aGUg
dGVzdCBydW5uZXIKKy0gW1JFU1QgQVBJXSguL3Jlc3QtYXBpL1JFQURNRS5tZCk6IERvY3VtZW50
YXRpb24gb2YgZW5kcG9pbnRzLCBwYXJhbWV0ZXJzIGFuZCBwYXlsb2FkcworICAtIFtHdWlkZXNd
KC4vcmVzdC1hcGkvZ3VpZGVzL1JFQURNRS5tZCk6IEhvdyB0byB1c2UgY2VydGFpbiBBUEkgbWVj
aGFuaXNtcworLSBbVXNhZ2UgR3VpZGVdKC4vdXNhZ2UvdXNhZ2UubWQpOiBHZW5lcmFsIHVzYWdl
IGd1aWRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9jb25maWcubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9jb25maWcubWQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWZjN2MwYjA1ZmQyMzllNWQ3YTllY2MyZGNjZjNmNDQyNWVhZTQ2NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9kb2NzL2NvbmZpZy5tZApAQCAtMCwwICsxLDMyNiBAQAorIyBDb25maWd1cmF0aW9uIC0g
W1dBVkUgVGVzdCBSdW5uZXJdKC4vUkVBRE1FLm1kKQorCitVc2luZyBhIGNvbmZpZ3VyYXRpb24g
ZmlsZSwgdGhlIFdBVkUgVGVzdCBSdW5uZXIgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYmUgbW9yZQor
ZnVuY3Rpb25hbCBpbiBkaWZmZXJlbnQgdXNlIGNhc2VzLiBUaGlzIGRvY3VtZW50IGxpc3RzIGFs
bCBjb25maWd1cmF0aW9uCitwYXJhbWV0ZXJzIGFuZCB3aGF0IHRoZXkgYXJlIHVzZWQgZm9yLgor
CisjIyBDb250ZW50cworCisxLiBbTG9jYXRpb24gYW5kIHN0cnVjdHVyZV0oIzEtbG9jYXRpb24t
YW5kLXN0cnVjdHVyZSkKKzIuIFtQYXJhbWV0ZXJzXSgjMi1wYXJhbWV0ZXJzKQorICAgMS4gW1Jl
c3VsdHMgZGlyZWN0b3J5XSgjMjEtcmVzdWx0cy1kaXJlY3RvcnkpCisgICAyLiBbVGVzdCBUaW1l
b3V0c10oIzIyLXRlc3QtdGltZW91dHMpCisgICAzLiBbRW5hYmxlIGltcG9ydCBvZiByZXN1bHRz
XSgjMjMtZW5hYmxlLWltcG9ydC1vZi1yZXN1bHRzKQorICAgNC4gW1dlYiBuYW1lc3BhY2VdKCMy
NC13ZWItbmFtZXNwYWNlKQorICAgNS4gW1BlcnNpc3RpbmcgaW50ZXJ2YWxdKCMyNS1wZXJzaXN0
aW5nLWludGVydmFsKQorICAgNi4gW0FQSSB0aXRsZXNdKCMyNi1hcGktdGl0bGVzKQorICAgNy4g
W0VuYWJsZSBsaXN0aW5nIGFsbCBzZXNzaW9uc10oIzI3LWVuYWJsZS1saXN0aW5nLWFsbC1zZXNz
aW9ucykKKyAgIDguIFtFdmVudCBjYWNoaW5nIGR1cmF0aW9uXSgjMjgtZXZlbnQtY2FjaGluZy1k
dXJhdGlvbikKKyAgIDkuIFtFbmFibGUgdGVzdCB0eXBlIHNlbGVjdGlvbl0oIzI5LWVuYWJsZS10
ZXN0LXR5cGUtc2VsZWN0aW9uKQorCisjIyAxLiBMb2NhdGlvbiBhbmQgc3RydWN0dXJlCisKK0Nv
bmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgZGVmaW5lZCBpbiBhIEpTT04gZmlsZSBjYWxsZWQg
YGNvbmZpZy5qc29uYCBpbgordGhlIHByb2plY3Qgcm9vdCBvZiB0aGUgV1BUIHJ1bm5lci4gVGhp
cyBjb25maWd1cmF0aW9uIGZpbGUgaXMgYWxzbyB1c2VkIGJ5Cit0aGUgV1BUIHJ1bm5lciwgc28g
YW55IFdBVkUgVGVzdCBSdW5uZXIgcmVsYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJl
Cit3cmFwcGVkIGluc2lkZSBhIGB3YXZlYCBvYmplY3QuCisKK2BgYAorPFBSSl9ST09UPi9jb25m
aWcuanNvbgorYGBgCisKK2BgYGpzb24KK3sKKyAgIndhdmUiOiB7CisgICAgInJlc3VsdHMiOiAi
Li9yZXN1bHRzIgorICB9Cit9CitgYGAKKworQWxsIHRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgc3Rv
cmVkIGluIGEgY29uZmlndXJhdGlvbiBmaWxlIGluc2lkZSB0aGUgd2F2ZQorZGlyZWN0b3J5Ogor
CitgYGAKKzxQUkpfUk9PVD4vdG9vbHMvd2F2ZS9jb25maWcuZGVmYXVsdC5qc29uCitgYGAKKwor
YGBganNvbgoreworICAid2F2ZSI6IHsKKyAgICAicmVzdWx0cyI6ICIuL3Jlc3VsdHMiLAorICAg
ICJ0aW1lb3V0cyI6IHsKKyAgICAgICJhdXRvbWF0aWMiOiA2MDAwMCwKKyAgICAgICJtYW51YWwi
OiAzMDAwMDAKKyAgICB9LAorICAgICJlbmFibGVfaW1wb3J0X3Jlc3VsdHMiOiBmYWxzZSwKKyAg
ICAid2ViX3Jvb3QiOiAiL193YXZlIiwKKyAgICAicGVyc2lzdGluZ19pbnRlcnZhbCI6IDIwLAor
ICAgICJhcGlfdGl0bGVzIjogW10sCisgICAgImVuYWJsZV9yZWFkX3Nlc3Npb25zIjogZmFsc2Us
CisgICAgImV2ZW50X2NhY2hlX2R1cmF0aW9uIjogNjAwMDAKKyAgfQorfQorYGBgCitb8J+gkSB0
b3BdKCNjb25maWd1cmF0aW9uLS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMgMi4gUGFyYW1ldGVy
cworCisjIyMgMi4xIFJlc3VsdHMgZGlyZWN0b3J5CisKK1RoZSByZXN1bHRzIHBhcmFtZXRlciBz
ZXRzIHdoZXJlIHJlc3VsdHMgYW5kIHNlc3Npb24gaW5mb3JtYXRpb24gYXJlIHN0b3JlZC4KKwor
KipQYXJhbWV0ZXJzKio6CisKK2BgYGpzb24KK3sKKyAgInJlc3VsdHMiOiAiPFN0cmluZz4iCit9
CitgYGAKKworLSAqKnJlc3VsdHMqKjogUGF0aCB0byB0aGUgcmVzdWx0cyBkaXJlY3RvcnkuIENh
biBiZSBhYnNvbHV0ZSwgb3IgcmVsYXRpdmUgdG8KKyAgdGhlIHByb2plY3Qgcm9vdC4KKworKipE
ZWZhdWx0Kio6CisKK2BgYGpzb24KK3sKKyAgInJlc3VsdHMiOiAiLi9yZXN1bHRzIgorfQorYGBg
CisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3QtcnVubmVyKQorCisjIyMg
Mi4yIFRlc3QgVGltZW91dHMKKworVGhlIHRlc3QgdGltZW91dHMgc2V0IHRoZSBkZWZhdWx0IHRl
c3QgdGltZW91dCBmb3IgZGlmZmVyZW50IHRlc3QgdHlwZXMuCisKKyoqUGFyYW1ldGVycyoqOgor
CitgYGBqc29uCit7CisgICJ0aW1lb3V0cyI6IHsKKyAgICAiYXV0b21hdGljIjogIjxOdW1iZXI+
IiwKKyAgICAibWFudWFsIjogIjxOdW1iZXI+IgorICB9Cit9CitgYGAKKworLSAqKnRpbWVvdXRz
Kio6IEhvbGRzIHRoZSBrZXkgdmFsdWUgcGFpcnMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiB0ZXN0
cworICAtICoqYXV0b21hdGljKio6IERlZmF1bHQgdGltZSB0byB3YWl0IGZvciBhdXRvbWF0aWMg
dGVzdHMgaW4gbWlsbGlzZWNvbmRzLgorICAtICoqbWFudWFsKio6IERlZmF1bHQgdGltZSB0byB3
YWl0IGZvciBtYW51YWwgdGVzdHMgaW4gbWlsbGlzZWNvbmRzLgorCisqKkRlZmF1bHQqKjoKKwor
YGBganNvbgoreworICAidGltZW91dHMiOiB7CisgICAgImF1dG9tYXRpYyI6IDYwMDAwMCwKKyAg
ICAibWFudWFsIjogMzAwMDAwCisgIH0KK30KK2BgYAorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0
aW9uLS0td2F2ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuMyBFbmFibGUgaW1wb3J0IG9mIHJlc3Vs
dHMKKworVGhpcyBwYXJhbWV0ZXIgZW5hYmxlcyB0aGUgY2FwYWJpbGl0eSB0byBpbXBvcnQgc2Vz
c2lvbiByZXN1bHRzIGZyb20gb3RoZXIKK1dBVkUgVGVzdCBSdW5uZXIgaW5zdGFuY2VzIGludG8g
dGhlIGN1cnJlbnQgb25lLgorCisqKlBhcmFtZXRlcnMqKjoKKworYGBganNvbgoreworICAiZW5h
YmxlX2ltcG9ydF9yZXN1bHRzIjogIjxCb29sZWFuPiIKK30KK2BgYAorCistICoqZW5hYmxlX2lt
cG9ydF9yZXN1bHRzKio6IFNldHMgd2hldGhlciBvciBub3QgdG8gZW5hYmxlIHRoZSBbUkVTVCBB
UEkgZW5kcG9pbnQgdG8gaW1wb3J0IHJlc3VsdHNdKC4vcmVzdC1hcGkvcmVzdWx0cy1hcGkvaW1w
b3J0Lm1kKQorCisqKkRlZmF1bHQqKjoKKworYGBganNvbgoreworICAiZW5hYmxlX2ltcG9ydF9y
ZXN1bHRzIjogImZhbHNlIgorfQorYGBgCisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13
YXZlLXRlc3QtcnVubmVyKQorCisjIyMgMi40IFdlYiBuYW1lc3BhY2UKKworQWxsIHN0YXRpYyBy
ZXNvdXJjZXMgYW5kIFJFU1QgQVBJIGVuZHBvaW50cyBhcmUgYWNjZXNzaWJsZSB1bmRlciBhCitj
b25maWd1cmFibGUgbmFtZXNwYWNlLiBUaGlzIG5hbWVzcGFjZSBjYW4gYmUgc2V0IHVzaW5nIHRo
ZSBgd2ViX3Jvb3RgCitwYXJhbWV0ZXIuCisKKyoqUGFyYW1ldGVycyoqOgorCitgYGBqc29uCit7
CisgICJ3ZWJfcm9vdCI6ICI8U3RyaW5nPiIKK30KK2BgYAorCistICoqd2ViX3Jvb3QqKjogVGhl
IG5hbWVzcGFjZSB0byB1c2UKKworKipEZWZhdWx0Kio6CisKK2BgYGpzb24KK3sKKyAgIndlYl9y
b290IjogIi9fd2F2ZSIKK30KK2BgYAorCitb8J+gkSB0b3BdKCNjb25maWd1cmF0aW9uLS0td2F2
ZS10ZXN0LXJ1bm5lcikKKworIyMjIDIuNSBQZXJzaXN0aW5nIGludGVydmFsCisKK1RoZSBwZXJz
aXN0aW5nIGludGVydmFsIHNwZWNpZmllcyBob3cgbWFueSB0ZXN0cyBoYXZlIHRvIGJlIGNvbXBs
ZXRlZCB1bnRpbAorYWxsIHNlc3Npb24gaW5mb3JtYXRpb24gaXMgdXBkYXRlZCBpbiB0aGUgcmVz
dWx0cyBkaXJlY3RvcnkuCisKK0ZvciBleGFtcGxlLCBpZiBzZXQgdG8gNSwgdGhlbiBldmVyeSA1
IGNvbXBsZXRlZCB0ZXN0cyB0aGUgYGluZm8uanNvbmAgaW4gdGhlCityZXN1bHRzIGRpcmVjdG9y
eSBpcyB1cGRhdGVkIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNlc3Npb24uIFdoZW4K
K3Jlc3RhcnRpbmcgdGhlIHNlcnZlciwgdGhpcyBzdGF0ZSBpcyB1c2VkIHRvIHJlY29uc3RydWN0
IGFsbCBzZXNzaW9ucyB0ZXN0aW5nCitzdGF0ZS4KKworKipQYXJhbWV0ZXJzKio6CisKK2BgYGpz
b24KK3sKKyAgInBlcnNpc3RpbmdfaW50ZXJ2YWwiOiAiPE51bWJlcj4iCit9CitgYGAKKworLSAq
KnBlcnNpc3RpbmdfaW50ZXJ2YWwqKjogVGhlIG51bWJlciBvZiB0ZXN0cyB0byBleGVjdXRlIHVu
dGlsIHRoZSBwZXJzaXN0ZWQKKyAgc2Vzc2lvbiBpbmZvcm1hdGlvbiBnZXRzIHVwZGF0ZWQKKwor
KipEZWZhdWx0Kio6CisKK2BgYGpzb24KK3sKKyAgInBlcnNpc3RpbmdfaW50ZXJ2YWwiOiAyMAor
fQorYGBgCisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3QtcnVubmVyKQor
CisjIyMgMi42IEFQSSB0aXRsZXMKKworVGhlIEFQSSB0aXRsZXMgYXJlIHVzZWQgdG8gZGlzcGxh
eSBhIG1vcmUgaHVtYW4gcmVhZGlibGUgcmVwcmVzZW50YXRpb24gb2YgYW4KK0FQSSB0aGF0IHRl
c3RzIGFyZSBhdmFpbGFibGUgZm9yLiBVc2luZyB0aGUgcGFyYW1ldGVyIGl0IGlzIHBvc3NpYmxl
IHRvIGFzc2lnbgorYSBuYW1lIHRvIGFuIEFQSSBzdWJkaXJlY3RvcnkuCisKKyoqUGFyYW1ldGVy
cyoqOgorCitgYGBqc29uCit7CisgICJhcGlfdGl0bGVzIjogWworICAgIHsKKyAgICAgICJ0aXRs
ZSI6ICI8U3RyaW5nPiIsCisgICAgICAicGF0aCI6ICI8U3RyaW5nPiIKKyAgICB9LAorICAgIC4u
LgorICBdCit9CitgYGAKKworLSAqKmFwaV90aXRsZXMqKjogQW4gYXJyYXkgb2YgdGl0bGVzIGFz
c2lnbmVkIHRvIHBhdGhzCisgIC0gKip0aXRsZSoqOiBUaGUgZGlzcGxheWVkIHRpdGxlIG9mIHRo
ZSBBUEkgaW4gdGhlIFVJCisgIC0gKipwYXRoKio6IFRoZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBw
cm9qZWN0IHJvb3Qgb2YgdGhlIHRlc3RlZCBBUEkKKworKipEZWZhdWx0Kio6CisKK2BgYGpzb24K
K3sKKyAgImFwaV90aXRsZXMiOiBbXQorfQorYGBgCisKKyoqRXhhbXBsZSoqOgorCitgYGBqc29u
Cit7CisgICJhcGlfdGl0bGVzIjogWworICAgIHsKKyAgICAgICJ0aXRsZSI6ICJXZWJHTCIsCisg
ICAgICAicGF0aCI6ICIvd2ViZ2wiCisgICAgfSwKKyAgICB7CisgICAgICAidGl0bGUiOiAiV2Vi
UlRDIEV4dGVuc2lvbnMiLAorICAgICAgInBhdGgiOiAiL3dlYnJ0Yy1leHRlbnNpb25zIgorICAg
IH0KKyAgXQorfQorYGBgCisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3Qt
cnVubmVyKQorCisjIyMgMi43IEVuYWJsZSBsaXN0aW5nIGFsbCBzZXNzaW9ucworCitUaGlzIHBh
cmFtZXRlciBlbmFibGVzIHRoZSBbUkVTVCBBUEkgZW5kcG9pbnQgdG8gbGlzdCBhbGwgYXZhaWxh
YmxlIHNlc3Npb25zXSguL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9yZWFkX3Nlc3Npb25zLm1kKS4K
KworKipQYXJhbWV0ZXJzKio6CisKK2BgYGpzb24KK3sKKyAgImVuYWJsZV9yZWFkX3Nlc3Npb25z
IjogIjxCb29sZWFuPiIKK30KK2BgYAorCistICoqZW5hYmxlX2ltcG9ydF9yZXN1bHRzKio6IFNl
dHMgd2hldGhlciBvciBub3QgdG8gZW5hYmxlIHRoZSBSRVNUIEFQSSBlbmRwb2ludCByZWFkIGFs
bCBzZXNzaW9ucworCisqKkRlZmF1bHQqKjoKKworYGBganNvbgoreworICAiZW5hYmxlX3JlYWRf
c2Vzc2lvbnMiOiAiZmFsc2UiCit9CitgYGAKKworW/CfoJEgdG9wXSgjY29uZmlndXJhdGlvbi0t
LXdhdmUtdGVzdC1ydW5uZXIpCisKKyMjIyAyLjggRXZlbnQgY2FjaGluZyBkdXJhdGlvbgorCitU
aGlzIHBhcmFtZXRlcnMgc3BlY2lmaWVzIGhvdyBsb25nIGV2ZW50cyBhcmUgaG9sZCBpbiB0aGUg
Y2FjaGUuIERlcGVuZGluZyBvbgoraG93IGZhc3QgY2xpZW50cyBhcmUgYWJsZSB0byBldmFsdWF0
ZSBldmVudHMsIHRoaXMgdmFsdWUgbWF5IGJlIGNoYW5nZWQKK2FjY29yZGluZ2x5LgorCisqKlBh
cmFtZXRlcnMqKjoKKworYGBganNvbgoreworICAiZXZlbnRfY2FjaGVfZHVyYXRpb24iOiAiPE51
bWJlcj4iCit9CitgYGAKKworLSAqKmV2ZW50X2NhY2hlX2R1cmF0aW9uKio6IFRoZSBkdXJhdGlv
biBldmVudHMgYXJlIGhvbGQgaW4gdGhlIGNhY2hlIGluIG1pbGxpc2Vjb25kcworCisqKkRlZmF1
bHQqKjoKKworYGBganNvbgoreworICAiZXZlbnRfY2FjaGVfZHVyYXRpb24iOiA2MDAwMAorfQor
YGBgCisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3QtcnVubmVyKQorCisj
IyMgMi45IEVuYWJsZSB0ZXN0IHR5cGUgc2VsZWN0aW9uCisKK1NldHMgZGlzcGxheSBvZiB0ZXN0
IHR5cGUgY29uZmlndXJhdGlvbiBVSSBlbGVtZW50cy4KKworKipQYXJhbWV0ZXJzKio6CisKK2Bg
YGpzb24KK3sKKyAgImVuYWJsZV90ZXN0X3R5cGVfc2VsZWN0aW9uIjogIjxCb29sZWFuPiIKK30K
K2BgYAorCistICoqZW5hYmxlX3Rlc3RfdHlwZV9zZWxlY3Rpb24qKjogV2hldGhlciBvciBub3Qg
dGVzdCB0eXBlIFVJIGNvbnRyb2xzIGFyZSBkaXNwbGF5ZWQKKworKipEZWZhdWx0Kio6CisKK0Zh
bHNlCisKK1vwn6CRIHRvcF0oI2NvbmZpZ3VyYXRpb24tLS13YXZlLXRlc3QtcnVubmVyKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWU4YzA0NWUzZWUwOTE0MTAzYjJlM2RiN2I3
ZTA3Y2VkODkxZDhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3Jlcy9jb25maWd1cmF0aW9uX3BhZ2VfYm90dG9tLmpwZwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9j
b25maWd1cmF0aW9uX3BhZ2VfZXhjbHVkZV9hZGRfbWFsZnVuY3Rpb25pbmcuanBnCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
L2NvbmZpZ3VyYXRpb25fcGFnZV9leGNsdWRlX2FkZF9wcmV2X2V4Y2x1ZGVkLmpwZwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jl
cy9jb25maWd1cmF0aW9uX3BhZ2VfZXhjbHVkZV9hZGRfcmF3LmpwZwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9jb25maWd1
cmF0aW9uX3BhZ2VfdG9wLmpwZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9sYW5kaW5nX3BhZ2UuanBnCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL292
ZXJ2aWV3X3BhZ2Vfc2Vzc2lvbnMuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL292ZXJ2aWV3X3BhZ2Vfc2Vzc2lvbnNf
ZmlsdGVyZWQuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2RvY3MvcmVzL292ZXJ2aWV3X3BhZ2Vfc2Vzc2lvbnNfcGlubmVkX3JlY2Vu
dC5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZG9jcy9yZXMvb3ZlcnZpZXdfcGFnZV90b3AuanBnCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzL3Jlc3VsdHNfcGFn
ZV9hcGlfcmVzdWx0cy5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvcmVzdWx0c19wYWdlX2FwaV9yZXN1bHRzX2V4cG9y
dC5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZG9jcy9yZXMvcmVzdWx0c19wYWdlX2JvdHRvbS5qcGcKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXMvcmVzdWx0c19w
YWdlX2xhc3RfdGltZWRfb3V0LmpwZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlcy9yZXN1bHRzX3BhZ2VfbWFsZnVuY3Rpb25p
bmdfbGlzdC5qcGcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXMvcmVzdWx0c19wYWdlX3RvcC5qcGcKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3Jlc3QtYXBpL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL1JFQURNRS5tZAppbmRleCA3M2MyNGY4
YWM1MjRiOTViYzVkYmVlNzFjYzhiM2Q1MjIwNzgwMjUxLi5jNmQyMTgyM2E3N2YxZmNmYzI1NWQ1
ZDU0M2FhMWQzYTNmZTE5ZjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9SRUFETUUubWQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvcmVzdC1hcGkvUkVBRE1FLm1kCkBAIC0xLDI2ICsxLDMxIEBACi0jIFJFU1QgQVBJIC0g
W1dBVkUgVGVzdCBTdWl0ZV0oLi4vUkVBRE1FLm1kKQorIyBSRVNUIEFQSSAtIFtXQVZFIFRlc3Qg
UnVubmVyXSguLi9SRUFETUUubWQpCiAKLVRoZSBSRVNUIEFQSSBhbGxvd3MgdGhlIFdBVkUgc2Vy
dmVyIHRvIGJlIGludGVncmF0ZWQgaW50byBvdGhlciBzeXN0ZW1zLiBFdmVyeSAKLWNhbGwgbXVz
dCBiZSBwcmVjZWRlZCB3aXRoIGEgbmFtZXNwYWNlIG9yIHdlYiByb290LCB3aGljaCBpcyBvbWl0
dGVkIGluIHRoaXMgCi1kb2N1bWVudGF0aW9uLiBUaGUgZGVmYXVsdCB3ZWIgcm9vdCBpcyBgL193
YXZlYCwgd2hpY2ggY2FuIGJlIGNoYW5nZWQgaW4gdGhlIAorVGhlIFJFU1QgQVBJIGFsbG93cyB0
aGUgV0FWRSBzZXJ2ZXIgdG8gYmUgaW50ZWdyYXRlZCBpbnRvIG90aGVyIHN5c3RlbXMuIEV2ZXJ5
CitjYWxsIG11c3QgYmUgcHJlY2VkZWQgd2l0aCBhIG5hbWVzcGFjZSBvciB3ZWIgcm9vdCwgd2hp
Y2ggaXMgb21pdHRlZCBpbiB0aGlzCitkb2N1bWVudGF0aW9uLiBUaGUgZGVmYXVsdCB3ZWIgcm9v
dCBpcyBgL193YXZlYCwgd2hpY2ggY2FuIGJlIGNoYW5nZWQgaW4gdGhlCiBjb25maWcuanNvbiB1
c2luZyB0aGUga2V5d29yZCBgd2ViX3Jvb3RgLgogCitBZGRpdGlvbmFsIFtSRVNUIEFQSSBHdWlk
ZXNdKC4vZ3VpZGVzL1JFQURNRS5tZCkgY2FuIGhlbHAgdG8gdW5kZXJzdGFuZCBob3cgdG8KK3Vz
ZSB0aGVzZSBlbmRwb2ludHMgaW4gY29udGV4dC4KKwogIyMgU2Vzc2lvbnMgQVBJIDxhIG5hbWU9
InNlc3Npb25zLWFwaSI+PC9hPgogCi18IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwKLXwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gfAotfCBbYGNyZWF0ZWBdKC4vc2Vzc2lvbnMtYXBpL2NyZWF0ZS5tZCkgICAgICAgICAg
IHwgQ3JlYXRlcyBhIG5ldyB0ZXN0IHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICB8
Ci18IFtgcmVhZGBdKC4vc2Vzc2lvbnMtYXBpL3JlYWQubWQpICAgICAgICAgICAgICAgfCBSZWFk
cyBhIHNlc3Npb25zIGNvbmZpZ3VyYXRpb24uICAgICAgICAgICAgICAgICAgICAgIHwKLXwgW2By
ZWFkIHB1YmxpY2BdKC4vc2Vzc2lvbnMtYXBpL3JlYWQtcHVibGljLm1kKSB8IFJlYWRzIGFsbCBw
dWJsaWMgc2Vzc2lvbnMgdG9rZW5zLiAgICAgICAgICAgICAgICAgICAgfAotfCBbYHVwZGF0ZWBd
KC4vc2Vzc2lvbnMtYXBpL3VwZGF0ZS5tZCkgICAgICAgICAgIHwgVXBkYXRlcyBhIHNlc3Npb24g
Y29uZmlndXJhdGlvbi4gICAgICAgICAgICAgICAgICAgICB8Ci18IFtgZGVsZXRlYF0oLi9zZXNz
aW9ucy1hcGkvZGVsZXRlLm1kKSAgICAgICAgICAgfCBEZWxldGVzIGEgdGVzdCBzZXNzaW9uLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgW2BzdGF0dXNgXSguL3Nlc3Npb25zLWFw
aS9zdGF0dXMubWQpICAgICAgICAgICB8IFJlYWRzIHRoZSBzdGF0dXMgYW5kIHByb2dyZXNzIG9m
IGEgc2Vzc2lvbi4gICAgICAgICAgfAotfCBbYHN0YXJ0YF0oLi9zZXNzaW9ucy1hcGkvY29udHJv
bC5tZCNzdGFydCkgICAgIHwgU3RhcnRzIGEgdGVzdCBzZXNzaW9uLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci18IFtgc3RvcGBdKC4vc2Vzc2lvbnMtYXBpL2NvbnRyb2wubWQjc3Rv
cCkgICAgICAgfCBTdG9wcyBhIHRlc3Qgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKLXwgW2BwYXVzZWBdKC4vc2Vzc2lvbnMtYXBpL2NvbnRyb2wubWQjcGF1c2UpICAg
ICB8IFBhdXNlcyBhIHRlc3Qgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAotfCBbYGZpbmRgXSguL3Nlc3Npb25zLWFwaS9maW5kLm1kKSAgICAgICAgICAgICAgIHwgRmlu
ZHMgYSBzZXNzaW9uIHRva2VuIGJ5IHByb3ZpZGluZyBhIHRva2VuIGZyYWdtZW50LiB8Ci18IFtg
bGFiZWxzYF0oLi9zZXNzaW9ucy1hcGkvbGFiZWxzLm1kKSAgICAgICAgICAgfCBBdHRhY2ggbGFi
ZWxzIHRvIHNlc3Npb25zIGZvciBvcmdhbml6YXRpb24gcHVycG9zZXMuIHwKLXwgW2BldmVudHNg
XSguL3Nlc3Npb25zLWFwaS9ldmVudHMubWQpICAgICAgICAgICB8IFJlZ2lzdGVyIGZvciBzZXNz
aW9ucyBzcGVjaWZpYyBldmVudHMuICAgICAgICAgICAgICAgfAorfCBOYW1lICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Cit8IFtg
Y3JlYXRlYF0oLi9zZXNzaW9ucy1hcGkvY3JlYXRlLm1kKSAgICAgICAgICAgICAgIHwgQ3JlYXRl
cyBhIG5ldyB0ZXN0IHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorfCBbYHJlYWQgc2Vzc2lvbmBdKC4vc2Vzc2lvbnMtYXBpL3JlYWQubWQpICAgICAgICAgICB8
IFJlYWRzIGEgc2Vzc2lvbnMgY29uZmlndXJhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKK3wgW2ByZWFkIHNlc3Npb25zYF0oLi9zZXNzaW9ucy1hcGkvcmVhZF9zZXNzaW9u
cy5tZCkgfCBSZWFkcyBhbGwgc2Vzc2lvbiB0b2tlbnMsIGV4cGFuZGFibGUgd2l0aCBjb25maWdz
IGFuZCBzdGF0dXNlcyB8Cit8IFtgcmVhZCBwdWJsaWNgXSguL3Nlc3Npb25zLWFwaS9yZWFkLXB1
YmxpYy5tZCkgICAgIHwgUmVhZHMgYWxsIHB1YmxpYyBzZXNzaW9ucyB0b2tlbnMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHVwZGF0ZWBdKC4vc2Vzc2lvbnMtYXBpL3VwZGF0
ZS5tZCkgICAgICAgICAgICAgICB8IFVwZGF0ZXMgYSBzZXNzaW9uIGNvbmZpZ3VyYXRpb24uICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2BkZWxldGVgXSguL3Nlc3Npb25zLWFw
aS9kZWxldGUubWQpICAgICAgICAgICAgICAgfCBEZWxldGVzIGEgdGVzdCBzZXNzaW9uLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IFtgc3RhdHVzYF0oLi9zZXNz
aW9ucy1hcGkvc3RhdHVzLm1kKSAgICAgICAgICAgICAgIHwgUmVhZHMgdGhlIHN0YXR1cyBhbmQg
cHJvZ3Jlc3Mgb2YgYSBzZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgfAorfCBbYHN0YXJ0YF0o
Li9zZXNzaW9ucy1hcGkvY29udHJvbC5tZCNzdGFydCkgICAgICAgICB8IFN0YXJ0cyBhIHRlc3Qg
c2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgW2Bz
dG9wYF0oLi9zZXNzaW9ucy1hcGkvY29udHJvbC5tZCNzdG9wKSAgICAgICAgICAgfCBTdG9wcyBh
IHRlc3Qgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Cit8IFtgcGF1c2VgXSguL3Nlc3Npb25zLWFwaS9jb250cm9sLm1kI3BhdXNlKSAgICAgICAgIHwg
UGF1c2VzIGEgdGVzdCBzZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAorfCBbYGZpbmRgXSguL3Nlc3Npb25zLWFwaS9maW5kLm1kKSAgICAgICAgICAgICAg
ICAgICB8IEZpbmRzIGEgc2Vzc2lvbiB0b2tlbiBieSBwcm92aWRpbmcgYSB0b2tlbiBmcmFnbWVu
dC4gICAgICAgICAgIHwKK3wgW2BsYWJlbHNgXSguL3Nlc3Npb25zLWFwaS9sYWJlbHMubWQpICAg
ICAgICAgICAgICAgfCBBdHRhY2ggbGFiZWxzIHRvIHNlc3Npb25zIGZvciBvcmdhbml6YXRpb24g
cHVycG9zZXMuICAgICAgICAgICB8Cit8IFtgbGlzdGVuIGV2ZW50c2BdKC4vc2Vzc2lvbnMtYXBp
L2V2ZW50cy5tZCkgICAgICAgIHwgUmVnaXN0ZXIgZm9yIHNlc3Npb25zIHNwZWNpZmljIGV2ZW50
cy4gICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHB1c2ggZXZlbnRzYF0oLi9zZXNzaW9u
cy1hcGkvZXZlbnRzLm1kKSAgICAgICAgICB8IFB1c2ggc2Vzc2lvbiBzcGVjaWZpYyBldmVudHMu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKIAogIyMgVGVzdHMgQVBJIDxhIG5h
bWU9InRlc3RzLWFwaSI+PC9hPgogCkBAIC0zNiwxOSArNDEsMzYgQEAgY29uZmlnLmpzb24gdXNp
bmcgdGhlIGtleXdvcmQgYHdlYl9yb290YC4KIAogIyMgUmVzdWx0cyBBUEkgPGEgbmFtZT0icmVz
dWx0cy1hcGkiPjwvYT4KIAotfCBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8Ci18IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IHwKLXwgW2BjcmVhdGVgXSguL3Jlc3VsdHMtYXBpL2NyZWF0ZS5tZCkgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IENyZWF0ZSBhIG5ldyB0ZXN0IHJlc3VsdCBmb3Ig
YSB0ZXN0IGluIGEgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBb
YHJlYWRgXSguL3Jlc3VsdHMtYXBpL3JlYWQubWQpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgUmVhZCBhbGwgdGVzdCByZXN1bHRzIG9mIGEgc2Vzc2lvbi4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IFtgcmVhZCBj
b21wYWN0YF0oLi9yZXN1bHRzLWFwaS9yZWFkLWNvbXBhY3QubWQpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBSZWFkIHRoZSBudW1iZXIgb2YgcGFzc2VkLCBmYWlsZWQsIHRpbWVkIG91
dCBhbmQgbm90IHJ1biB0ZXN0cyBvZiBhIHNlc3Npb24uICAgIHwKLXwgW2Bjb25maWdgXSguL3Jl
c3VsdHMtYXBpL2NvbmZpZy5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IFJlYWQgd2hhdCBmZWF0dXJlcyBvZiB0aGUgcmVzdWx0cyBBUEkgYXJlIGVuYWJsZWQu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYGltcG9ydGBdKC4vcmVzdWx0cy1h
cGkvaW1wb3J0Lm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
SW1wb3J0IHNlc3Npb24gcmVzdWx0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8Ci18IFtgaW1wb3J0IGVuYWJsZWRgXSguL3Jlc3VsdHMt
YXBpL2ltcG9ydC5tZCMyLWltcG9ydC1lbmFibGVkKSAgICAgICAgICAgICAgICAgfCBDaGVjayB3
aGV0aGVyIG9yIG5vdCB0aGUgaW1wb3J0IGZlYXR1cmUgaXMgZW5hYmxlZC4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwKLXwgW2Bkb3dubG9hZGBdKC4vcmVzdWx0cy1hcGkvZG93bmxvYWQu
bWQjMS1kb3dubG9hZCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvd25sb2FkIGFsbCBz
ZXNzaW9uIHJlc3VsdHMgdG8gaW1wb3J0IGludG8gb3RoZXIgV01BVFMgaW5zdGFuY2UuICAgICAg
ICAgICAgICAgfAotfCBbYGRvd25sb2FkIGFwaWBdKC4vcmVzdWx0cy1hcGkvZG93bmxvYWQubWQj
Mi1kb3dubG9hZC1hcGkpICAgICAgICAgICAgICAgICAgIHwgRG93bmxvYWQgYWxsIHJlc3VsdHMg
b2YgYW4gQVBJLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8Ci18IFtgZG93bmxvYWQgYWxsIGFwaXNgXSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzMt
ZG93bmxvYWQtYWxsLWFwaXMpICAgICAgICAgfCBEb3dubG9hZCBhbGwgcmVzdWx0cyBvZiBhbGwg
QVBJcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg
W2B2aWV3IHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvZG93bmxvYWQubWQjNC1kb3dubG9hZC1yZXBv
cnQpICAgICAgICAgICAgICAgICB8IFZpZXcgdGhlIFdQVCByZXBvcnQgb2YgYW4gQVBJIG9mIGEg
c2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotfCBbYHZpZXcg
bXVsdGkgcmVwb3J0YF0oLi9yZXN1bHRzLWFwaS9kb3dubG9hZC5tZCM1LWRvd25sb2FkLW11bHRp
LXJlcG9ydCkgICAgIHwgVmlldyB0aGUgV1BUIHJlcG9ydCBvZiBhbiBBUEkgb2YgbXVsdGlwbGUg
c2Vzc2lvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci18IFtgZG93bmxvYWQgb3Zl
cnZpZXdgXSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzYtZG93bmxvYWQtb3ZlcnZpZXcpICAg
ICAgICAgfCBEb3dubG9hZCBhbiBvdmVydmlldyBvZiByZXN1bHRzIG9mIGFsbCBBUElzIG9mIGEg
c2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgIHwKLXwgW2B2aWV3IHJlcG9ydGBdKC4vcmVz
dWx0cy1hcGkvdmlldy5tZCMxLXZpZXctcmVwb3J0KSAgICAgICAgICAgICAgICAgICAgICAgICB8
IFJlYWQgYW4gdXJsIHRvIGEgaG9zdGVkIHZlcnNpb24gb2YgYSBXUFQgcmVwb3J0IGZvciBhbiBB
UEkgb2YgYSBzZXNzaW9uLiAgICAgICAgfAotfCBbYHZpZXcgbXVsdGkgcmVwb3J0YF0oLi9yZXN1
bHRzLWFwaS92aWV3Lm1kIzItdmlldy1tdWx0aS1yZXBvcnQpICAgICAgICAgICAgIHwgUmVhZCBh
biB1cmwgdG8gYSBob3N0ZWQgdmVyc2lvbiBvZiBhIFdQVCByZXBvcnQgZm9yIGFuIEFQSSBvZiBt
dWx0aXBsZSBzZXNzaW9uLiB8Cit8IE5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAorfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwKK3wg
W2BjcmVhdGVgXSguL3Jlc3VsdHMtYXBpL2NyZWF0ZS5tZCkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgQ3JlYXRlIGEgbmV3IHRlc3QgcmVzdWx0IGZvciBhIHRlc3QgaW4g
YSBzZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IFtgcmVhZGBdKC4v
cmVzdWx0cy1hcGkvcmVhZC5tZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IFJlYWQgYWxsIHRlc3QgcmVzdWx0cyBvZiBhIHNlc3Npb24uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHJlYWQgY29tcGFjdGBdKC4vcmVz
dWx0cy1hcGkvcmVhZC1jb21wYWN0Lm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSZWFk
IHRoZSBudW1iZXIgb2YgcGFzc2VkLCBmYWlsZWQsIHRpbWVkIG91dCBhbmQgbm90IHJ1biB0ZXN0
cyBvZiBhIHNlc3Npb24uICAgIHwKK3wgW2BpbXBvcnQgc2Vzc2lvbmBdKC4vcmVzdWx0cy1hcGkv
aW1wb3J0Lm1kIzEtaW1wb3J0LXNlc3Npb24pICAgICAgICAgICAgIHwgSW1wb3J0IHNlc3Npb24g
cmVzdWx0cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8Cit8IFtgaW1wb3J0IGFwaSByZXN1bHRzYF0oLi9yZXN1bHRzLWFwaS9pbXBvcnQu
bWQjMi1pbXBvcnQtYXBpLXJlc3VsdHMpICAgICB8IEltcG9ydCByZXN1bHRzIG9mIGEgc3BlY2lm
aWMgQVBJIGludG8gZXhpc3Rpbmcgc2Vzc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgfAor
fCBbYGRvd25sb2FkYF0oLi9yZXN1bHRzLWFwaS9kb3dubG9hZC5tZCMxLWRvd25sb2FkKSAgICAg
ICAgICAgICAgICAgICAgICAgfCBEb3dubG9hZCBhbGwgc2Vzc2lvbiByZXN1bHRzIHRvIGltcG9y
dCBpbnRvIG90aGVyIFdNQVRTIGluc3RhbmNlLiAgICAgICAgICAgICAgIHwKK3wgW2Bkb3dubG9h
ZCBhcGlgXSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzItZG93bmxvYWQtYXBpKSAgICAgICAg
ICAgICAgIHwgRG93bmxvYWQgYWxsIHJlc3VsdHMgb2YgYW4gQVBJLiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IFtgZG93bmxvYWQgYWxsIGFwaXNg
XSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzMtZG93bmxvYWQtYWxsLWFwaXMpICAgICB8IERv
d25sb2FkIGFsbCByZXN1bHRzIG9mIGFsbCBBUElzLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHZpZXcgcmVwb3J0YF0oLi9yZXN1bHRzLWFwaS9k
b3dubG9hZC5tZCM0LWRvd25sb2FkLXJlcG9ydCkgICAgICAgICAgICAgfCBWaWV3IHRoZSBXUFQg
cmVwb3J0IG9mIGFuIEFQSSBvZiBhIHNlc3Npb24uICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwKK3wgW2B2aWV3IG11bHRpIHJlcG9ydGBdKC4vcmVzdWx0cy1hcGkvZG93bmxv
YWQubWQjNS1kb3dubG9hZC1tdWx0aS1yZXBvcnQpIHwgVmlldyB0aGUgV1BUIHJlcG9ydCBvZiBh
biBBUEkgb2YgbXVsdGlwbGUgc2Vzc2lvbnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
Cit8IFtgZG93bmxvYWQgb3ZlcnZpZXdgXSguL3Jlc3VsdHMtYXBpL2Rvd25sb2FkLm1kIzYtZG93
bmxvYWQtb3ZlcnZpZXcpICAgICB8IERvd25sb2FkIGFuIG92ZXJ2aWV3IG9mIHJlc3VsdHMgb2Yg
YWxsIEFQSXMgb2YgYSBzZXNzaW9uLiAgICAgICAgICAgICAgICAgICAgICAgfAorfCBbYHZpZXcg
cmVwb3J0YF0oLi9yZXN1bHRzLWFwaS92aWV3Lm1kIzEtdmlldy1yZXBvcnQpICAgICAgICAgICAg
ICAgICAgICAgfCBSZWFkIGFuIHVybCB0byBhIGhvc3RlZCB2ZXJzaW9uIG9mIGEgV1BUIHJlcG9y
dCBmb3IgYW4gQVBJIG9mIGEgc2Vzc2lvbi4gICAgICAgIHwKK3wgW2B2aWV3IG11bHRpIHJlcG9y
dGBdKC4vcmVzdWx0cy1hcGkvdmlldy5tZCMyLXZpZXctbXVsdGktcmVwb3J0KSAgICAgICAgIHwg
UmVhZCBhbiB1cmwgdG8gYSBob3N0ZWQgdmVyc2lvbiBvZiBhIFdQVCByZXBvcnQgZm9yIGFuIEFQ
SSBvZiBtdWx0aXBsZSBzZXNzaW9uLiB8CisKKyMjIERldmljZXMgQVBJIDxhIG5hbWU9ImRldmlj
ZXMtYXBpIj48L2E+CisKK3wgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Cit8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gfAorfCBbYGNyZWF0ZWBdKC4vZGV2aWNlcy1hcGkvY3JlYXRlLm1kKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJlZ2lzdGVycyBhIG5ldyBkZXZpY2Uu
ICAgICAgICAgICAgICAgIHwKK3wgW2ByZWFkIGRldmljZWBdKC4vZGV2aWNlcy1hcGkvcmVhZC1k
ZXZpY2UubWQpICAgICAgICAgICAgICAgICAgICAgICAgfCBSZWFkIGluZm9ybWF0aW9uIG9mIGEg
c3BlY2lmaWMgZGV2aWNlLiB8Cit8IFtgcmVhZCBkZXZpY2VzYF0oLi9kZXZpY2VzLWFwaS9yZWFk
LWRldmljZXMubWQpICAgICAgICAgICAgICAgICAgICAgIHwgUmVhZCBhIGxpc3Qgb2YgYWxsIGF2
YWlsYWJsZSBkZXZpY2VzLiAgfAorfCBbYHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVyYF0oLi9kZXZp
Y2VzLWFwaS9yZWdpc3Rlci5tZCkgICAgICAgICAgICAgICB8IFJlZ2lzdGVyIGZvciBhIGRldmlj
ZSBzcGVjaWZpYyBldmVudC4gIHwKK3wgW2BzZW5kIGV2ZW50YF0oLi9kZXZpY2VzLWFwaS9zZW5k
LWV2ZW50Lm1kKSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTZW5kcyBhIGRldmljZSBzcGVj
aWZpYyBldmVudC4gICAgICAgICB8Cit8IFtgcmVnaXN0ZXIgZ2xvYmFsIGV2ZW50IGxpc3RlbmVy
YF0oLi9kZXZpY2VzLWFwaS9yZWdpc3Rlci1nbG9iYWwubWQpIHwgUmVnaXN0ZXIgZm9yIGEgZ2xv
YmFsIGRldmljZSBldmVudC4gICAgfAorfCBbYHNlbmQgZ2xvYmFsIGV2ZW50YF0oLi9kZXZpY2Vz
LWFwaS9zZW5kLWdsb2JhbC1ldmVudC5tZCkgICAgICAgICAgICB8IFNlbmRzIGEgZ2xvYmFsIGRl
dmljZSBldmVudC4gICAgICAgICAgIHwKKworIyMgR2VuZXJhbCBBUEkgPGEgbmFtZT0iZ2VuZXJh
bC1hcGkiPjwvYT4KKworfCBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERl
c2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfAorfCBbYHN0YXR1c2BdKC4vZ2VuZXJh
bC1hcGkvc3RhdHVzLm1kKSB8IFJldHVybnMgaW5mb3JtYXRpb24gb24gaG93IHRoZSBzZXJ2ZXIg
aXMgY29uZmlndXJlZC4gfApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvY3Jl
YXRlLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvY3JlYXRlLm1kCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
ZDEzNTVhZDJmMDM0ZWY2NzUxNDIwODM0OGM3Zjg5ZDYwN2IyNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
ZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9jcmVhdGUubWQKQEAgLTAsMCArMSwzMyBAQAorIyBg
Y3JlYXRlYCAtIFtEZXZpY2VzIEFQSV0oLi4vUkVBRE1FLm1kI2RldmljZXMtYXBpKQorCitUaGUg
YGNyZWF0ZWAgbWV0aG9kIG9mIHRoZSBkZXZpY2VzIEFQSSByZWdpc3RlcnMgYSBuZXcgZGV2aWNl
cyB0byByZW1vdGVseSAKK3N0YXJ0IHRlc3Qgc2Vzc2lvbnMgb24uIFRoZSBkZXZpY2Ugd2lsbCBh
dXRvbWF0aWNhbGx5IGJlIHVucmVnaXN0ZXJlZCBpZiBpdHMgCitub3QgcmVnaXN0ZXJpbmcgZm9y
IGFuIFtldmVudF0oLi9yZWdpc3Rlci5tZCkgZm9yIG1vcmUgdGhhbiBhIG1pbnV0ZS4KKworIyMg
SFRUUCBSZXF1ZXN0CisKK2BQT1NUIC9hcGkvZGV2aWNlc2AKKworIyMgUmVzcG9uc2UgUGF5bG9h
ZAorCitgYGBqc29uCit7CisgICAgInRva2VuIjogIjxTdHJpbmc+IgorfQorYGBgCisKKy0gKip0
b2tlbioqIHNwZWNpZmllcyB0aGUgaGFuZGxlIHRvIHJlZmVyZW5jZSB0aGUgcmVnaXN0ZXJlZCBk
ZXZpY2UgYnkuCisKKyMjIEV4YW1wbGUKKworKipSZXF1ZXN0OioqCisKK2BQT1NUIC9hcGkvZGV2
aWNlc2AKKworKipSZXNwb25zZToqKgorCitgYGBqc29uCit7CisgICAgInRva2VuIjogImU1ZjBi
OTJlLTgzMDktMTFlYS1hMWIxLTAwMjFjY2Q3NjE1MiIKK30KK2BgYApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
cmVzdC1hcGkvZGV2aWNlcy1hcGkvZXZlbnQtdHlwZXMubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2Vz
LWFwaS9ldmVudC10eXBlcy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWQxZjA2OTViOTYyYjRhMmNiNzdiYzFl
OTlhOWUzN2IxMjg0YzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1h
cGkvZXZlbnQtdHlwZXMubWQKQEAgLTAsMCArMSwzNyBAQAorIyBEZXZpY2UgRXZlbnQgVHlwZXMg
LSBbRGV2aWNlcyBBUEldKC4uL1JFQURNRS5tZCNkZXZpY2VzLWFwaSkKKworRGV2aWNlIGV2ZW50
cyBhcmUgZXZlbnRzIHRoYXQgYXJlIHRyaWdnZXJlZCBieSBhY3Rpb25zIHJlbGF0ZWQgdG8gZGV2
aWNlcy4gCitUaGlzIGRvY3VtZW50IHNwZWNpZmllcyB3aGF0IHBvc3NpYmxlIGV2ZW50cyBjYW4g
b2NjdXIgYW5kIHdoYXQgdGhleSBtZWFuLgorCisjIyBEZXZpY2Ugc3BlY2lmaWMgPGEgbmFtZT0i
ZGV2aWNlLXNwZWNpZmljIj48L2E+CisKK0RldmljZSBzcGVjaWZpYyBldmVudHMgYXJlIGFsd2F5
cyByZWxhdGVkIHRvIGEgc3BlY2lmaWMgZGV2aWNlLCByZWZlcmVuY2VkIGJ5IAoraXRzIHRva2Vu
LgorCisjIyMgU3RhcnQgc2Vzc2lvbgorCisqKlR5cGUgaWRlbnRpZmllcioqOiBgc3RhcnRfc2Vz
c2lvbmAgIAorKipQYXlsb2FkKio6IAorYGBganNvbgoreworICAic2Vzc2lvbl90b2tlbiI6ICI8
U3RyaW5nPiIKK30KK2BgYAorKipEZXNjcmlwdGlvbioqOiBUcmlnZ2VyZWQgYnkgYSBjb21wYW5p
b24gZGV2aWNlLCB0aGlzIGV2ZW50IHN0YXJ0cyBhIAorcHJlLWNvbmZpZ3VyZWQgc2Vzc2lvbiBv
biB0aGUgcmVnaXN0ZXJlZCBkZXZpY2UuCisKKyMjIEdsb2JhbCA8YSBuYW1lPSJnbG9iYWwiPjwv
YT4KKworR2xvYmFsIGRldmljZSBldmVudHMgaGF2ZSBubyBzcGVjaWFsIHJlbGF0aW9uIHRvIGFu
eSBkZXZpY2UuCisKKyMjIyBEZXZpY2UgYWRkZWQKKworKipUeXBlIGlkZW50aWZpZXIqKjogYGRl
dmljZV9hZGRlZGAgIAorKipQYXlsb2FkKio6IFNhbWUgYXMgcmVzcG9uc2Ugb2YgW2ByZWFkIGRl
dmljZWBdKC4vcmVhZC1kZXZpY2UubWQpIG1ldGhvZC4gIAorKipEZXNjcmlwdGlvbioqOiBUaGlz
IGV2ZW50IGlzIHRyaWdnZXJlZCBvbmNlIGEgbmV3IGRldmljZSByZWdpc3RlcnMuICAgIAorCisj
IyMgRGV2aWNlIHJlbW92ZWQKKworKipUeXBlIGlkZW50aWZpZXIqKjogYGRldmljZV9yZW1vdmVk
YCAgCisqKlBheWxvYWQqKjogU2FtZSBhcyByZXNwb25zZSBvZiBbYHJlYWQgZGV2aWNlYF0oLi9y
ZWFkLWRldmljZS5tZCkgbWV0aG9kLiAgCisqKkRlc2NyaXB0aW9uKio6IFRoaXMgZXZlbnQgaXMg
dHJpZ2dlcmVkIG9uY2UgYSBkZXZpY2UgdW5yZWdpc3RlcnMuICAgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
cmVzdC1hcGkvZGV2aWNlcy1hcGkvcmVhZC1kZXZpY2UubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2Vz
LWFwaS9yZWFkLWRldmljZS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzYyYjE3ZTcxYjc1YTAzM2U2ZjAzZDUz
NjQxMjM2NTI0NzhhNDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1h
cGkvcmVhZC1kZXZpY2UubWQKQEAgLTAsMCArMSw0MSBAQAorIyBgcmVhZCBkZXZpY2VgIC0gW0Rl
dmljZXMgQVBJXSguLi9SRUFETUUubWQjZGV2aWNlcy1hcGkpCisKK1RoZSBgcmVhZCBkZXZpY2Vg
IG1ldGhvZCBvZiB0aGUgZGV2aWNlcyBBUEkgZmV0Y2hlcyBhdmFpbGFibGUgaW5mb3JtYXRpb24g
cmVnYXJkaW5nIGEgCitzcGVjaWZpYyBkZXZpY2UuCisKKyMjIEhUVFAgUmVxdWVzdAorCitgR0VU
IC9hcGkvZGV2aWNlcy88ZGV2aWNlX3Rva2VuPmAKKworIyMgUmVzcG9uc2UgUGF5bG9hZAorCitg
YGBqc29uCit7CisgICAgInRva2VuIjogIjxTdHJpbmc+IiwKKyAgICAidXNlcl9hZ2VudCI6ICI8
U3RyaW5nPiIsCisgICAgImxhc3RfYWN0aXZlIjogIjxTdHJpbmc+IiwKKyAgICAibmFtZSI6ICI8
U3RyaW5nPiIKK30KK2BgYAorCistICoqdG9rZW4qKiBpcyB0aGUgdW5pcXVlIGlkZW50aWZpZXIg
b2YgdGhlIGRldmljZS4KKy0gKip1c2VyX2FnZW50KiogaXMgdGhlIHVzZXIgYWdlbnQgb2YgdGhl
IHJlcXVlc3QgdGhlIGRldmljZSB3YXMgcmVnaXN0ZXJlZCB3aXRoLgorLSAqKmxhc3RfYWN0aXZl
KiogZGVmaW5lcyB0aGUgcG9pbnQgaW4gdGltZSB0aGUgZGV2aWNlIHdhcyBsYXN0IGFjdGl2ZS4g
RXhwcmVzc2VkIGFzIElTTyA4NjAxIGRhdGUgYW5kIHRpbWUgZm9ybWF0LgorLSAqKm5hbWUqKiB0
aGUgbmFtZSB0aGUgZGV2aWNlIHdhcyBhc3NpZ24gYmFzZWQgb24gaXRzIHVzZXIgYWdlbnQuCisK
KyMjIEV4YW1wbGUKKworKipSZXF1ZXN0OioqCisKK2BHRVQgL2FwaS9kZXZpY2VzLzFkOWY1ZDMw
LTgzMGYtMTFlYS04ZGNiLTAwMjFjY2Q3NjE1MmAKKworKipSZXNwb25zZToqKgorCitgYGBqc29u
Cit7CisgICAgInRva2VuIjogIjFkOWY1ZDMwLTgzMGYtMTFlYS04ZGNiLTAwMjFjY2Q3NjE1MiIs
CisgICAgInVzZXJfYWdlbnQiOiAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBs
ZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODEuMC40MDQ0LjExMyBT
YWZhcmkvNTM3LjM2IiwKKyAgICAibGFzdF9hY3RpdmUiOiAxNTg3MzkxMTUzMjk1LAorICAgICJu
YW1lIjogIkNocm9tZSA4MS4wLjQwNDQiCit9CitgYGAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBp
L2RldmljZXMtYXBpL3JlYWQtZGV2aWNlcy5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3Jl
YWQtZGV2aWNlcy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTliMDZjNjEwZDVlMWQxMzFjMmM5MzBkOTk5ZjRj
OTJmMDUwZGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvcmVh
ZC1kZXZpY2VzLm1kCkBAIC0wLDAgKzEsNDcgQEAKKyMgYHJlYWQgZGV2aWNlc2AgLSBbRGV2aWNl
cyBBUEldKC4uL1JFQURNRS5tZCNkZXZpY2VzLWFwaSkKKworVGhlIGByZWFkIGRldmljZXNgIG1l
dGhvZCBvZiB0aGUgZGV2aWNlcyBBUEkgZmV0Y2hlcyBhIGxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQg
CitkZXZpY2VzLgorCisjIyBIVFRQIFJlcXVlc3QKKworYEdFVCAvYXBpL2RldmljZXNgCisKKyMj
IFJlc3BvbnNlIFBheWxvYWQKKworYGBganNvbgorWworICB7CisgICAgICAidG9rZW4iOiAiPFN0
cmluZz4iLAorICAgICAgInVzZXJfYWdlbnQiOiAiPFN0cmluZz4iLAorICAgICAgImxhc3RfYWN0
aXZlIjogIjxTdHJpbmc+IiwKKyAgICAgICJuYW1lIjogIjxTdHJpbmc+IgorICB9LAorICAuLi4K
K10KK2BgYAorCistICoqdG9rZW4qKiBpcyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRl
dmljZS4KKy0gKip1c2VyX2FnZW50KiogaXMgdGhlIHVzZXIgYWdlbnQgb2YgdGhlIHJlcXVlc3Qg
dGhlIGRldmljZSB3YXMgcmVnaXN0ZXJlZCB3aXRoLgorLSAqKmxhc3RfYWN0aXZlKiogZGVmaW5l
cyB0aGUgcG9pbnQgaW4gdGltZSB0aGUgZGV2aWNlIHdhcyBsYXN0IGFjdGl2ZS4gRXhwcmVzc2Vk
IGFzIElTTyA4NjAxIGRhdGUgYW5kIHRpbWUgZm9ybWF0LgorLSAqKm5hbWUqKiB0aGUgbmFtZSB0
aGUgZGV2aWNlIHdhcyBhc3NpZ24gYmFzZWQgb24gaXRzIHVzZXIgYWdlbnQuCisKKyMjIEV4YW1w
bGUKKworKipSZXF1ZXN0OioqCisKK2BHRVQgL2FwaS9kZXZpY2VzYAorCisqKlJlc3BvbnNlOioq
CisKK2BgYGpzb24KK1sKKyAgeworICAgICAgInRva2VuIjogIjFkOWY1ZDMwLTgzMGYtMTFlYS04
ZGNiLTAwMjFjY2Q3NjE1MiIsCisgICAgICAidXNlcl9hZ2VudCI6ICJNb3ppbGxhLzUuMCAoWDEx
OyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENo
cm9tZS84MS4wLjQwNDQuMTEzIFNhZmFyaS81MzcuMzYiLAorICAgICAgImxhc3RfYWN0aXZlIjog
MTU4NzM5MTE1MzI5NSwKKyAgICAgICJuYW1lIjogIkNocm9tZSA4MS4wLjQwNDQiCisgIH0sCisg
IC4uLgorXQorYGBgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWdpc3Rl
ci1nbG9iYWwubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWdpc3Rlci1nbG9iYWwubWQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmQzYTJhZDk5ODEzYjU0YWVhNDQ1OTA0NGIxNTMxY2I5ZTEwMWM3NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3JlZ2lzdGVyLWdsb2JhbC5t
ZApAQCAtMCwwICsxLDU0IEBACisjIGByZWdpc3RlciBnbG9iYWwgZXZlbnQgbGlzdGVuZXJgIC0g
W0RldmljZXMgQVBJXSguLi9SRUFETUUubWQjZGV2aWNlcy1hcGkpCisKK1RoZSBgcmVnaXN0ZXIg
Z2xvYmFsIGV2ZW50IGxpc3RlbmVyYCBtZXRob2Qgb2YgdGhlIGRldmljZXMgQVBJIG5vdGlmaWVz
IGEgCityZWdpc3RlcmVkIGxpc3RlbmVyIHVwb24gZ2xvYmFsIGRldmljZSBldmVudHMuIEl0IHVz
ZXMgSFRUUCBsb25nIHBvbGxpbmcgaW4gCitzZW5kIHRoZSBldmVudCB0byB0aGlzIGxpc3RlbmVy
IGluIHJlYWwgdGltZSwgc28gdXBvbiByZWNlaXZpbmcgYW4gZXZlbnQsIHRoZSAKK2Nvbm5lY3Rp
b24gaGFzIHRvIGJlIHJlZXN0YWJsaXNoZWQgYnkgdGhlIGNsaWVudCB0byByZWNlaXZlIGZ1cnRo
ZXIgZXZlbnRzLgorCisjIyBIVFRQIFJlcXVlc3QKKworYEdFVCAvYXBpL2RldmljZXMvZXZlbnRz
YAorCisjIyBRdWVyeSBQYXJhbWV0ZXJzCisKK3wgUGFyYW1ldGVyICAgICAgICB8IERlc2NpcHRp
b24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCBFeGFtcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fAorfCAtLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8Cit8IGBkZXZpY2VfdG9rZW5gICAgfCBU
aGUgdG9rZW4gb2YgdGhlIGRldmljZSB3aGljaCBwZXJmb3JtZWQgdGhlIHJlcXVlc3QuIChPcHRp
b25hbCkgIExldHMgdGhlIHNlcnZlciBrbm93IHRoZSByZWdpc3RlcmVkIGRldmljZSBpcyBzdGls
bCBhY3RpdmUuIHwgYGRldmljZV90b2tlbj03ZGFmZWVjMC1jMzUxLTExZTktODRjNS0zZDFlZGUy
ZTdkMmVgIHwKKworIyMgUmVzcG9uc2UgUGF5bG9hZAorCitgYGBqc29uCit7CisgICAgInR5cGUi
OiAiPFN0cmluZz4iLAorICAgICJkYXRhIjogIjxBbnk+IgorfQorYGBgCisKKy0gKip0eXBlKiog
ZGVmaW5lcyB3aGF0IHR5cGUgb2YgZXZlbnQgaGFzIGJlZW4gdHJpZ2dlcmVkLgorLSAqKmRhdGEq
KiBjb250YWlucyB0aGUgZXZlbnQgc3BlY2lmaWMgcGF5bG9hZC4KKworIyMgRXZlbnQgVHlwZXMK
KworU2VlIFtnbG9iYWwgZXZlbnRzXSguL2V2ZW50LXR5cGVzLm1kI2dsb2JhbCkKKworIyMgRXhh
bXBsZQorCisqKlJlcXVlc3Q6KioKKworYEdFVCAvYXBpL2RldmljZXMvZXZlbnRzYAorCisqKlJl
c3BvbnNlOioqCisKK2BgYGpzb24KK3sKKyAgICAidHlwZSI6ICJkZXZpY2VfYWRkZWQiLAorICAg
ICJkYXRhIjogeworICAgICAgICAidG9rZW4iOiAiMWQ5ZjVkMzAtODMwZi0xMWVhLThkY2ItMDAy
MWNjZDc2MTUyIiwKKyAgICAgICAgInVzZXJfYWdlbnQiOiAiTW96aWxsYS81LjAgKFgxMTsgTGlu
dXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUv
ODEuMC40MDQ0LjExMyBTYWZhcmkvNTM3LjM2IiwKKyAgICAgICAgImxhc3RfYWN0aXZlIjogMTU4
NzM5MTE1MzI5NSwKKyAgICAgICAgIm5hbWUiOiAiQ2hyb21lIDgxLjAuNDA0NCIKKyAgICB9Cit9
CitgYGAKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWdpc3Rlci5t
ZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3JlZ2lzdGVyLm1kCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZWUz
YjQ3NDJhNmFkNTk1ZjIxYzAwMWZjMTYyZTM5YjMxMTk3MzMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9yZWdpc3Rlci5tZApAQCAtMCwwICsxLDUyIEBACisjIGBy
ZWdpc3RlciBldmVudCBsaXN0ZW5lcmAgLSBbRGV2aWNlcyBBUEldKC4uL1JFQURNRS5tZCNkZXZp
Y2VzLWFwaSkKKworVGhlIGByZWdpc3RlciBldmVudCBsaXN0ZW5lcmAgbWV0aG9kIG9mIHRoZSBk
ZXZpY2VzIEFQSSBub3RpZmllcyBhIHJlZ2lzdGVyZWQgCitsaXN0ZW5lciB1cG9uIGRldmljZSBz
cGVjaWZpYyBldmVudHMuIEl0IHVzZXMgSFRUUCBsb25nIHBvbGxpbmcgaW4gc2VuZCB0aGUgCitl
dmVudCB0byB0aGlzIGxpc3RlbmVyIGluIHJlYWwgdGltZSwgc28gdXBvbiByZWNlaXZpbmcgYW4g
ZXZlbnQsIHRoZSAKK2Nvbm5lY3Rpb24gaGFzIHRvIGJlIHJlZXN0YWJsaXNoZWQgYnkgdGhlIGNs
aWVudCB0byByZWNlaXZlIGZ1cnRoZXIgZXZlbnRzLgorCisjIyBIVFRQIFJlcXVlc3QKKworYEdF
VCAvYXBpL2RldmljZXMvPGRldmljZV90b2tlbj4vZXZlbnRzYAorCisjIyBRdWVyeSBQYXJhbWV0
ZXJzCisKK3wgUGFyYW1ldGVyICAgICAgICB8IERlc2NpcHRpb24gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFeGFtcGxlICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAtLS0tLS0tLS0tLS0tLS0t
IHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSB8Cit8IGBkZXZpY2VfdG9rZW5gICAgfCBUaGUgdG9rZW4gb2YgdGhlIGRldmlj
ZSB3aGljaCBwZXJmb3JtZWQgdGhlIHJlcXVlc3QuIChPcHRpb25hbCkgIExldHMgdGhlIHNlcnZl
ciBrbm93IHRoZSByZWdpc3RlcmVkIGRldmljZSBpcyBzdGlsbCBhY3RpdmUuIHwgYGRldmljZV90
b2tlbj03ZGFmZWVjMC1jMzUxLTExZTktODRjNS0zZDFlZGUyZTdkMmVgIHwKKworIyMgUmVzcG9u
c2UgUGF5bG9hZAorCitgYGBqc29uCit7CisgICAgInR5cGUiOiAiPFN0cmluZz4iLAorICAgICJk
YXRhIjogIjxBbnk+IgorfQorYGBgCisKKy0gKip0eXBlKiogZGVmaW5lcyB3aGF0IHR5cGUgb2Yg
ZXZlbnQgaGFzIGJlZW4gdHJpZ2dlcmVkLgorLSAqKmRhdGEqKiBjb250YWlucyB0aGUgZXZlbnQg
c3BlY2lmaWMgcGF5bG9hZC4KKworIyMgRXZlbnQgVHlwZXMKKworIyMjIFN0YXJ0IHNlc3Npb24K
KworU2VlIFtkZXZpY2Ugc3BlY2lmaWMgZXZlbnRzXSguL2V2ZW50LXR5cGVzLm1kI2RldmljZS1z
cGVjaWZpYykKKworIyMgRXhhbXBsZQorCisqKlJlcXVlc3Q6KioKKworYEdFVCAvYXBpL2Rldmlj
ZXMvMWQ5ZjVkMzAtODMwZi0xMWVhLThkY2ItMDAyMWNjZDc2MTUyL2V2ZW50c2AKKworKipSZXNw
b25zZToqKgorCitgYGBqc29uCit7CisgICAgInR5cGUiOiAic3RhcnRfc2Vzc2lvbiIsCisgICAg
ImRhdGEiOiB7CisgICAgICAic2Vzc2lvbl90b2tlbiI6ICI5NzRjODRlMC1jMzVkLTExZTktOGY4
ZC00N2JiNWJiMDAzN2QiCisgICAgfQorfQorYGBgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBp
L2RldmljZXMtYXBpL3NlbmQtZXZlbnQubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9zZW5k
LWV2ZW50Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYzc0YWVjNWM1YjdlZmU3ZDU2YTVjZDAxNDYxY2IzMWFl
NTBhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9kZXZpY2VzLWFwaS9zZW5kLWV2
ZW50Lm1kCkBAIC0wLDAgKzEsNDMgQEAKKyMgYHNlbmQgZXZlbnRgIC0gW0RldmljZXMgQVBJXSgu
Li9SRUFETUUubWQjZGV2aWNlcy1hcGkpCisKK1RoZSBgc2VuZCBldmVudGAgbWV0aG9kIG9mIHRo
ZSBkZXZpY2VzIEFQSSBlbmFibGVzIHNlbmRpbmcgYW4gZXZlbnQgdG8gCitsaXN0ZW5lcnMgb2Yg
c3BlY2lmaWMgZGV2aWNlcyBldmVudHMuCisKKyMjIEhUVFAgUmVxdWVzdAorCitgUE9TVCAvYXBp
L2RldmljZXMvPGRldmljZV90b2tlbj4vZXZlbnRzYAorCisjIyBSZXF1ZXN0IFBheWxvYWQKKwor
YGBganNvbgoreworICAgICJ0eXBlIjogIjxTdHJpbmc+IiwKKyAgICAiZGF0YSI6ICI8QW55PiIK
K30KK2BgYAorCistICoqdHlwZSoqIGRlZmluZXMgd2hhdCB0eXBlIG9mIGV2ZW50IGhhcyBiZWVu
IHRyaWdnZXJlZC4KKy0gKipkYXRhKiogY29udGFpbnMgdGhlIGV2ZW50IHNwZWNpZmljIHBheWxv
YWQuCisKKyMjIEV2ZW50IFR5cGVzCisKK1NlZSBbZGV2aWNlIHNwZWNpZmljIGV2ZW50c10oLi9l
dmVudC10eXBlcy5tZCNkZXZpY2Utc3BlY2lmaWMpCisKKyMjIEV4YW1wbGUKKworKipSZXF1ZXN0
OioqCisKK2BQT1NUIC9hcGkvZGV2aWNlcy8xZDlmNWQzMC04MzBmLTExZWEtOGRjYi0wMDIxY2Nk
NzYxNTIvZXZlbnRzYAorCitgYGBqc29uCit7CisgICAgInR5cGUiOiAic3RhcnRfc2Vzc2lvbiIs
CisgICAgImRhdGEiOiB7CisgICAgICAic2Vzc2lvbl90b2tlbiI6ICI5NzRjODRlMC1jMzVkLTEx
ZTktOGY4ZC00N2JiNWJiMDAzN2QiCisgICAgfQorfQorYGBgCisKKyoqUmVzcG9uc2U6KioKKwor
YDIwMCBPS2AKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3NlbmQtZ2xvYmFs
LWV2ZW50Lm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZGV2aWNlcy1hcGkvc2VuZC1nbG9iYWwtZXZlbnQubWQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWE1MjM4ZGM3Zjc1OGE4ZTUyZTliMDg3NjdkMGU2YTJjOGQyZjkyMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2RldmljZXMtYXBpL3NlbmQtZ2xvYmFsLWV2ZW50
Lm1kCkBAIC0wLDAgKzEsNDYgQEAKKyMgYHNlbmQgZ2xvYmFsIGV2ZW50YCAtIFtEZXZpY2VzIEFQ
SV0oLi4vUkVBRE1FLm1kI2RldmljZXMtYXBpKQorCitUaGUgYHNlbmQgZ2xvYmFsIGV2ZW50YCBt
ZXRob2Qgb2YgdGhlIGRldmljZXMgQVBJIGVuYWJsZXMgc2VuZGluZyBhbiBldmVudCB0byAKK2xp
c3RlbmVycyBvZiBnbG9iYWwgZGV2aWNlIGV2ZW50cy4KKworIyMgSFRUUCBSZXF1ZXN0CisKK2BQ
T1NUIC9hcGkvZGV2aWNlcy9ldmVudHNgCisKKyMjIFJlcXVlc3QgUGF5bG9hZAorCitgYGBqc29u
Cit7CisgICAgInR5cGUiOiAiPFN0cmluZz4iLAorICAgICJkYXRhIjogIjxBbnk+IgorfQorYGBg
CisKKy0gKip0eXBlKiogZGVmaW5lcyB3aGF0IHR5cGUgb2YgZXZlbnQgaGFzIGJlZW4gdHJpZ2dl
cmVkLgorLSAqKmRhdGEqKiBjb250YWlucyB0aGUgZXZlbnQgc3BlY2lmaWMgcGF5bG9hZC4KKwor
IyMgRXZlbnQgVHlwZXMKKworU2VlIFtnbG9iYWwgZXZlbnRzXSguL2V2ZW50LXR5cGVzLm1kI2ds
b2JhbCkKKworIyMgRXhhbXBsZQorCisqKlJlcXVlc3Q6KioKKworYFBPU1QgL2FwaS9kZXZpY2Vz
LzFkOWY1ZDMwLTgzMGYtMTFlYS04ZGNiLTAwMjFjY2Q3NjE1Mi9ldmVudHNgCisKK2BgYGpzb24K
K3sKKyAgICAidHlwZSI6ICJkZXZpY2VfYWRkZWQiLAorICAgICJkYXRhIjogeworICAgICAgICAi
dG9rZW4iOiAiMWQ5ZjVkMzAtODMwZi0xMWVhLThkY2ItMDAyMWNjZDc2MTUyIiwKKyAgICAgICAg
InVzZXJfYWdlbnQiOiAiTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktp
dC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvODEuMC40MDQ0LjExMyBTYWZhcmkv
NTM3LjM2IiwKKyAgICAgICAgImxhc3RfYWN0aXZlIjogMTU4NzM5MTE1MzI5NSwKKyAgICAgICAg
Im5hbWUiOiAiQ2hyb21lIDgxLjAuNDA0NCIKKyAgICB9Cit9CitgYGAKKworKipSZXNwb25zZToq
KgorCitgMjAwIE9LYApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ2VuZXJhbC1hcGkvc3RhdHVz
Lm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvZ2VuZXJhbC1hcGkvc3RhdHVzLm1kCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhZjUx
MDA2NmE2NjMzZjNmZTE2NTgyMmFlNmUyNzc5MDM1ZTA2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS9nZW5lcmFsLWFwaS9zdGF0dXMubWQKQEAgLTAsMCArMSw0MSBAQAorIyBgc3Rh
dHVzYCAtIFtHZW5lcmFsIEFQSV0oLi4vUkVBRE1FLm1kI2dlbmVyYWwtYXBpKQorCitUaGUgYHN0
YXR1c2AgbWV0aG9kIGlzIHVzZWQgdG8gZW5zdXJlIHRoZSBzZXJ2ZXIgaXMgcmVhY2hhYmxlIGFu
ZCB0byBkZXRlcm1pbmUgCit3aGF0IGZlYXR1cmVzIG9mIGRpZmZlcmVudCBzZXJ2ZXIgQVBJcyBh
cmUgZW5hYmxlZC4gCisKKyMjIEhUVFAgUmVxdWVzdAorCitgYGAKK0dFVCAvYXBpL3N0YXR1cwor
YGBgCisKKyMjIyBSZXNwb25zZQorCitgYGBqc29uCit7CisgICJ2ZXJzaW9uX3N0cmluZyI6ICJT
dHJpbmciLAorICAiaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCI6ICJCb29sZWFuIiwKKyAgInJlcG9y
dHNfZW5hYmxlZCI6ICJCb29sZWFuIiwKKyAgInJlYWRfc2Vzc2lvbnNfZW5hYmxlZCI6ICJCb29s
ZWFuIgorfQorYGBgCisKKy0gKip2ZXJzaW9uX3N0cmluZyoqOiBUaGUgdmVyc2lvbiBvZiB0aGUg
c2VydmVyLgorLSAqKmltcG9ydF9yZXN1bHRzX2VuYWJsZWQqKjogSWYgdHJ1ZSB0aGUgW2BpbXBv
cnQgcmVzdWx0YF0oLi4vcmVzdWx0cy1hcGkvaW1wb3J0Lm1kKSBlbmRwb2ludCBpcyBhdmFpbGFi
bGUKKy0gKipyZXBvcnRzX2VuYWJsZWQqKjogSWYgdHJ1ZSB0aGUgc2VydmVyIHdpbGwgZ2VuZXJh
dGUgcmVwb3J0cyBmb3IgY29tcGxldGVkIEFQSXMgaW4gYSBnaXZlbiB0ZXN0IHNlc3Npb24uCist
ICoqcmVhZF9zZXNzaW9uc19lbmFibGVkKio6IElmIHRydWUgaXQgaXMgcG9zc2libGUgdG8gbGlz
dCBhbGwgc2Vzc2lvbnMgdXNpbmcgdGhlIFtgcmVhZCBzZXNzaW9uc2BdKC4uL3Nlc3Npb25zLWFw
aS9yZWFkX3Nlc3Npb25zLm1kKSBlbmRwb2ludCBvZiB0aGUgc2Vzc2lvbnMgQVBJCisKKyMjIEV4
YW1wbGUKKworYGBgCitHRVQgL2FwaS9zdGF0dXMKK2BgYAorCitgYGBqc29uCit7CisgICJ2ZXJz
aW9uX3N0cmluZyI6ICJ2Mi4wLjAiLAorICAiaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCI6IGZhbHNl
LAorICAicmVwb3J0c19lbmFibGVkIjogdHJ1ZSwKKyAgInJlYWRfc2Vzc2lvbnNfZW5hYmxlZCI6
IGZhbHNlCit9CitgYGAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL2d1aWRlcy9SRUFETUUubWQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
ZG9jcy9yZXN0LWFwaS9ndWlkZXMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMzFiYjhlNjY2MzE3
OTIwNWE4ZmY0MTkxZWM4ODc3ZjgxMDU0Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFw
aS9ndWlkZXMvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTAgQEAKKyMgUkVTVCBBUEkgR3VpZGVzIC0g
W1dBVkUgVGVzdCBSdW5uZXJdKC4uLy4uL1JFQURNRS5tZCkKKworSW4gYWRkaXRpb24gdG8gdGhl
IFtSRVNUIEFQSSBkb2N1bWVudGF0aW9uXSguLi9SRUFETUUubWQpLCB0aGVzZSBndWlkZSBzaGFs
bCAKK3Byb3ZpZGUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvbiBob3cgdG8gcHJvcGVybHkgdXNl
IHRoZSBkaWZmZXJlbnQgZW5kcG9pbnRzLgorCitbU3RhcnRpbmcgc2Vzc2lvbnMgb24gYSBEVVQg
dXNpbmcgdGhlIGRldmljZXMgQVBJXSguL3Nlc3Npb24tc3RhcnQtZGV2aWNlcy1hcGkubWQpOgor
SG93IHRvIHJlZ2lzdGVyIGEgRFVUIGFuZCBzdGFydCBhIHByZS1jb25maWd1cmVkIHNlc3Npb24g
b24gaXQuCisKK1tTZW5kaW5nIGFuZCByZWNlaXZpbmcgc2Vzc2lvbiBldmVudHNdKC4vc2Vzc2lv
bi1ldmVudHMubWQpOgorSG93IHRvIHJlZ2lzdGVyIGZvciBzZXNzaW9uIGV2ZW50cyBhbmQgcHVz
aCBldmVudHMgdG8gb3RoZXIgbGlzdGVuZXJzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ3Vp
ZGVzL3Nlc3Npb24tZXZlbnRzLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvZ3VpZGVzL3Nlc3Npb24tZXZlbnRz
Lm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2MjczN2M2NTIyMGZmYjRlNzVhNGY2ZmJhZjBmOGU5YjE3MTIyNmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9ndWlkZXMvc2Vzc2lvbi1ldmVudHMubWQK
QEAgLTAsMCArMSw1MiBAQAorIyBTZW5kaW5nIGFuZCByZWNlaXZpbmcgc2Vzc2lvbiBldmVudHMK
KworVGhlIHNlc3Npb24gZXZlbnQgZW5kcG9pbnRzIGFsbG93IHRvIGxpc3RlbiBmb3IgZXZlbnRz
IHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyAKK3Nlc3Npb24gYW5kIHRvIHNlbmQgbmV3IGV2ZW50cyB0
byBhbGwgcmVnaXN0ZXJlZCBsaXN0ZW5lcnMuCisKK1NlZSBhbGwgW1JFU1QgQVBJIEd1aWRlc10o
Li9SRUFETUUubWQpLgorCisjIyBSZWdpc3RlciBmb3Igc2Vzc2lvbiBzcGVjaWZpYyBldmVudHMK
KworVG8gcmVjZWl2ZSBldmVudHMgb2YgYSBzZXNzaW9uLCBzaW1wbHkgcGVyZm9ybSBhIEdFVCBy
ZXF1ZXN0IHRvIHRoZSBkZXNpcmVkIAorc2Vzc2lvbnMgZXZlbnQgZW5kcG9pbnQuIEZvciBleGFt
cGxlLCBpZiB3ZSB3YW50IHRvIHJlY2VpdmUgYW55IGV2ZW50cyB0aGF0IAorYXJlIHJlbGF0ZWQg
dG8gdGhlIHNlc3Npb24gd2l0aCB0b2tlbiBgNmZkYmQxYTAtYzMzOS0xMWU5LWI3NzUtNmQ0OWRk
NTY3NzcyYDoKKworYGBgCitHRVQgL193YXZlL2FwaS9zZXNzaW9ucy82ZmRiZDFhMC1jMzM5LTEx
ZTktYjc3NS02ZDQ5ZGQ1Njc3NzIvZXZlbnRzCitgYGAKKworYGBganNvbgoreworICAidHlwZSI6
ICJzdGF0dXMiLAorICAiZGF0YSI6ICJwYXVzZWQiCit9CitgYGAKKworQXMgdGhpcyBlbmRwb2lu
dCBtYWtlcyB1c2Ugb2YgdGhlIEhUVFAgbG9uZyBwb2xsaW5nLCB5b3Ugd2lsbCBub3QgaW1tZWRp
YXRlbHkgCityZWNlaXZlIGEgcmVzcG9uc2UuIFRoZSBjb25uZWN0aW9uIHN0YXlzIG9wZW4gZWl0
aGVyIHVudGlsIGFuIGV2ZW50IGdldHMgCit0cmlnZ2VyZWQsIGluIHdoaWNoIGNhc2UgdGhlIHNl
cnZlciB3aWxsIHJlc3BvbmQgd2l0aCB0aGF0IGV2ZW50cyBkYXRhLCBvciAKK3RoZXJlIGlzIG5v
IGV2ZW50IHdpdGhpbiB0aGUgdGltZW91dCwgd2hpY2ggd2lsbCByZXR1cm4gYW4gZW1wdHkgcmVz
cG9uc2UuCisKK1dpdGggb25lIHJlcXVlc3Qgb25seSBvbmUgZXZlbnQgY2FuIGJlIHJlY2VpdmVk
LiBUbyBnZXQgYW55IGZ1cnRoZXIgZXZlbnRzLCAKK2FkZGl0aW9uYWwgcmVxdWVzdHMgYXJlIG5l
Y2Vzc2FyeS4gVG8gbm90IG1pc3MgYW55IGV2ZW50cywgaXQgaXMgaW1wb3J0YW50IHRvIAorcGVy
Zm9ybSB0aGUgbmV4dCByZXF1ZXN0IGltbWVkaWF0ZWx5IGFmdGVyIHJlY2VpdmluZyBhIHJlc3Bv
bnNlLgorCisjIyBTZW5kaW5nIGV2ZW50cworCitUbyBjcmVhdGUgYSBuZXcgZXZlbnQsIHNpbXBs
eSBzZW5kIGEgUE9TVCByZXF1ZXN0IGNvbnRhaW5pbmcgdGhlIGV2ZW50IGRhdGEgdG8gCit0aGUg
ZGVzaXJlZCBzZXNzaW9ucyBldmVudCBlbmRwb2ludC4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50
IHRvIHRyaWdnZXIgYSBuZXcgCitldmVudCBmb3IgYSBzZXNzaW9uIHdpdGggdG9rZW4gYDZmZGJk
MWEwLWMzMzktMTFlOS1iNzc1LTZkNDlkZDU2Nzc3MmA6CisKK2BgYAorUE9TVCAvX3dhdmUvYXBp
L3Nlc3Npb25zLzZmZGJkMWEwLWMzMzktMTFlOS1iNzc1LTZkNDlkZDU2Nzc3Mi9ldmVudHMKK2Bg
YAorCitgYGBqc29uCit7CisgICJ0eXBlIjogInN0YXR1cyIsCisgICJkYXRhIjogInBhdXNlZCIK
K30KK2BgYAorCitUaGlzIHdpbGwgY2F1c2UgYW55IGNsaWVudCwgdGhhdCBjdXJyZW50bHkgaGFz
IGEgY29ubmVjdGlvbiBvcGVuIGFzIGRlc2NyaWJlZCAKK2luIHRoZSBwcmVjZWRpbmcgc2VjdGlv
biwgdG8gcmVjZWl2ZSB0aGUgc3BlY2lmaWVkIGV2ZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1h
cGkvZ3VpZGVzL3Nlc3Npb24tc3RhcnQtZGV2aWNlcy1hcGkubWQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9ndWlk
ZXMvc2Vzc2lvbi1zdGFydC1kZXZpY2VzLWFwaS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzc2ZDMxNjE3NTdl
OGFkOGJkOWMyZmExZDEzZDNkM2ViZjkzZTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1h
cGkvZ3VpZGVzL3Nlc3Npb24tc3RhcnQtZGV2aWNlcy1hcGkubWQKQEAgLTAsMCArMSw2MCBAQAor
IyBTdGFydGluZyBzZXNzaW9ucyBvbiBhIERVVCB1c2luZyB0aGUgZGV2aWNlcyBBUEkKKworU2Vl
IGFsbCBbUkVTVCBBUEkgR3VpZGVzXSguL1JFQURNRS5tZCkuCisKKyMjIENvbm5lY3RpbmcgdGhl
IERVVAorCitUbyBzdGFydCBhIHNlc3Npb24gb24gYSBEVVQgdXNpbmcgdGhlIGRldmljZXMgQVBJ
LCBmaXJzdCByZWdpc3RlciB0aGUgRFVUIGF0IAordGhlIHRlc3QgcnVubmVyLgorCitgYGAKK1BP
U1QgL2FwaS9kZXZpY2VzCitgYGAKKworYGBganNvbgoreworICAidG9rZW4iOiAiZmEzZmIyMjYt
OThlZi0xMWVhLWEyMWQtMDAyMWNjZDc2MTUyIgorfQorYGBgCisKK1VzaW5nIHRoZSBkZXZpY2Ug
dG9rZW4sIHlvdSBjYW4gbGlzdGVuIGZvciBhbnkgZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIGRldmlj
ZS4KKworYGBgCitHRVQgL2FwaS9kZXZpY2VzL2ZhM2ZiMjI2LTk4ZWYtMTFlYS1hMjFkLTAwMjFj
Y2Q3NjE1Mi9ldmVudHMKK2BgYAorCitPbmNlIGFuIGV2ZW50IG9jY3VycywgdGhlIHJlc3BvbnNl
IHRvIHRoaXMgY2FsbCB3aWxsIGNvbnRhaW4gdGhlIGV2ZW50IGRhdGEuIAorSWYgbm8gZXZlbnQg
b2NjdXJzIHVudGlsIHRoZSByZXF1ZXN0IHRpbWVzIG91dCwgeW91IGhhdmUgdG8gcGVyZm9tIGFu
b3RoZXIgY2FsbC4KKworYGBganNvbgoreworICAidHlwZSI6ICJzdGFydF9zZXNzaW9uIiwKKyAg
ImRhdGEiOiB7CisgICAgInNlc3Npb25fdG9rZW4iOiAiOThlZDRiOGUtOThlZC0xMWVhLTlkZTct
MDAyMWNjZDc2MTUyIgorICB9Cit9CitgYGAKKworVXNpbmcgdGhpcyBkYXRhIHlvdSBjYW4gc3Rh
cnQgdGhlIHNlc3Npb24gYW5kIGdldCB0aGUgVVJMIHRvIHRoZSBuZXh0IHRlc3QgdG8gCitvcGVu
LgorCisjIyBUcmlnZ2VyaW5nIHRoZSBzZXNzaW9uIHN0YXJ0CisKK09uY2UgYSBkZXZpY2UgaXMg
cmVnaXN0ZXJlZCBhbmQgd2FpdHMgZm9yIGV2ZW50cywgeW91IGNhbiB1c2UgdGhlIGRldmljZSdz
IAorZXZlbnQgY2hhbm5lbCB0byBwdXNoIGFuIGV2ZW50IHRvIHN0YXJ0IGEgc2Vzc2lvbiBvbiBp
dC4KKworYGBgCitQT1NUIC9hcGkvZGV2aWNlcy9mYTNmYjIyNi05OGVmLTExZWEtYTIxZC0wMDIx
Y2NkNzYxNTIvZXZlbnRzCitgYGAKKworYGBganNvbgoreworICAidHlwZSI6ICJzdGFydF9zZXNz
aW9uIiwKKyAgImRhdGEiOiB7CisgICAgInNlc3Npb25fdG9rZW4iOiAiOThlZDRiOGUtOThlZC0x
MWVhLTlkZTctMDAyMWNjZDc2MTUyIgorICB9Cit9CitgYGAKKworVGhlIHNlc3Npb24gcmVsYXRl
ZCB0byB0aGUgcHJvdmlkZWQgdG9rZW4gY2FuIGJlIGEgbmV3bHkgY3JlYXRlZCBvbmUgb3IgbWF5
IAorYWxyZWFkeSBiZSBydW5uaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1h
cGkvZG93bmxvYWQubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9kb3dubG9hZC5tZAppbmRl
eCBmNzUyZGZhYTY2ZmZjZjJiNjY3NWEyMzRiOGE1MGMwYmE1MDVjNjIwLi44Y2ZhN2U3NTMxYzQ2
NjZiNDJhNGMxMDM4Yzg5NWZmMjgwMzcwMzAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1
bHRzLWFwaS9kb3dubG9hZC5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9kb3dubG9h
ZC5tZApAQCAtNyw3ICs3LDcgQEAgdGhlIFtgY3JlYXRlYF0oLi9jcmVhdGUubWQpIG1ldGhvZCBv
ZiB0aGUgcmVzdWx0cyBBUEkuCiAjIyAxLiBgZG93bmxvYWRgCiAKIERvd25sb2FkcyBhbGwgcmVz
dWx0cyBvZiBhIHNlc3Npb24gYXMgWklQLCB3aGljaCBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIFdN
QVMgCi1UZXN0IFN1aXRlIGNhbiBpbXBvcnQuCitUZXN0IFJ1bm5lciBjYW4gaW1wb3J0LgogCiAj
IyMgSFRUUCBSZXF1ZXN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL2lt
cG9ydC5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL2ltcG9ydC5tZAppbmRleCA3NTAyNjc2
OGY4N2JiMjQ3ODllMTExOGY5YzJkMjRiZmM5M2UzMTNlLi4wOGM3ZGU2ZmY3YmI5ZmYzZTBkYzY5
YWI3N2YxMzI1ZTYwNDk2NzA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9p
bXBvcnQubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvaW1wb3J0Lm1kCkBAIC0xLDE2
ICsxLDE4IEBACiAjIEltcG9ydCByZXN1bHRzIC0gW1Jlc3VsdHMgQVBJXSguLi9SRUFETUUubWQj
cmVzdWx0cy1hcGkpCiAKLUlmIGVuYWJsZWQsIHRoZSBXTUFTIFRlc3QgU3VpdGUgY2FuIGltcG9y
dCByZXN1bHRzIGV4cG9ydGVkIGJ5IGFueSBhcmJpdHJhcnkgb3RoZXIgaW5zdGFuY2UuCitJZiBl
bmFibGVkLCB0aGUgV01BUyBUZXN0IFJ1bm5lciBjYW4gaW1wb3J0IHJlc3VsdHMgZXhwb3J0ZWQg
YnkgYW55IGFyYml0cmFyeSBvdGhlciBpbnN0YW5jZS4KIAotIyMgMS4gYGltcG9ydGAKKyMjIDEu
IEltcG9ydCBzZXNzaW9uCiAKLUltcG9ydCBhIHNlc3Npb24ncyByZXN1bHRzIGZyb20gYSBaSVAg
ZmlsZS4KK1VwbG9hZCByZXN1bHRzIGFuZCBjcmVhdGUgYSBuZXcsIGZpbmlzaGVkIHNlc3Npb24K
IAogIyMjIEhUVFAgUmVxdWVzdAogCi1gUE9TVCAvYXBpL3Jlc3VsdHMvaW1wb3J0YAorYGBgCitQ
T1NUIC9hcGkvcmVzdWx0cy9pbXBvcnQKK2BgYAogCi0jIyMgSFRUUCBSZXNwb25zZQorIyMjIyBI
VFRQIFJlc3BvbnNlCiAKIElmIHN1Y2Nlc3NmdWwsIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCB0
aGUgdG9rZW4gb2YgdGhlIGltcG9ydGVkIHNlc3Npb246CiAKQEAgLTI4LDE4ICszMCwzNyBAQCBI
b3dldmVyLCBpZiBhbiBlcnJvciBvY2N1cmVkLCB0aGUgc2VydmVyIHJlc3BvbmRzIHRoZSBlcnJv
ciBtZXNzYWdlOgogfQogYGBgCiAKLSMjIDIuIGBpbXBvcnQgZW5hYmxlZGAKKyMjIDIuIEltcG9y
dCBBUEkgcmVzdWx0cwogCi1UbyBjaGVjayB3aGV0aGVyIG9yIG5vdCB0aGUgaW1wb3J0IGZlYXR1
cmVzIGlzIGVuYWJsZWQsIHRoZSBgaW1wb3J0IGVuYWJsZWRgIG1ldGhvZCByZXR1cm5zIHRoZSBz
dGF0ZSBhcyBKU09OLgorVXBsb2FkIGEgcmVzdWx0cyBqc29uIGZpbGUgYW5kIG92ZXJ3cml0ZSBy
ZXN1bHRzIG9mIGEgc3BlY2lmaWMgQVBJLgogCiAjIyMgSFRUUCBSZXF1ZXN0CiAKLWBHRVQgL2Fw
aS9yZXN1bHRzL2ltcG9ydGAKK2BgYAorUE9TVCAvYXBpL3Jlc3VsdHMvPHNlc3Npb25fdG9rZW4+
LzxhcGlfbmFtZT4vanNvbgorYGBgCiAKLSMjIyBSZXNwb25zZQorIyMjIEZpbGUgc3RydWN0dXJl
CiAKIGBgYGpzb24KIHsKLSAgImVuYWJsZWQiOiAiQm9vbGVhbiIKKyAgInJlc3VsdHMiOiBbCisg
ICAgeworICAgICAgInRlc3QiOiAiU3RyaW5nIiwKKyAgICAgICJzdGF0dXMiOiAiRW51bVsnT0sn
LCAnRVJST1InLCAnVElNRU9VVCcsICdOT1RfUlVOJ10iLAorICAgICAgIm1lc3NhZ2UiOiAiU3Ry
aW5nIiwKKyAgICAgICJzdWJ0ZXN0cyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJuYW1lIjog
IlN0cmluZyIsCisgICAgICAgICAgInN0YXR1cyI6ICJFbnVtWydQQVNTJywgJ0ZBSUwnLCAnVElN
RU9VVCcsICdOT1RfUlVOJ10iLAorICAgICAgICAgICJtZXNzYWdlIjogIlN0cmluZyIKKyAgICAg
ICAgfQorICAgICAgXQorICAgIH0KKyAgXQogfQogYGBgCisKKyMjIyBIVFRQIFJlc3BvbnNlCisK
K0lmIHN1Y2Nlc3NmdWwsIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCBzdGF0dXMgY29kZSAyMDAu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3Jlc3QtYXBpL3Jlc3VsdHMtYXBpL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiM2I1OGFjN2E4YTA3NWFlNzAxMmVkZTZlM2I2ZjllN2Q4ZDA0ZDY3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Jl
c3VsdHMtYXBpL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvY29uZmlnLm1kCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkv
cmVzdWx0cy1hcGkvY3JlYXRlLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvZG93bmxvYWQu
bWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9pbXBvcnQubWQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1
bHRzLWFwaS9yZWFkLWNvbXBhY3QubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9yZXN1bHRzLWFwaS9yZWFkLm1k
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvcmVzdC1hcGkvcmVzdWx0cy1hcGkvdmlldy5tZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1h
cGkvc2Vzc2lvbnMtYXBpL2NyZWF0ZS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9jcmVh
dGUubWQKaW5kZXggZWFmMDBhYzE2NjkwMDI5OGVmMDdmYzhjNjc5MTAyNmFjNzQxYWEwMC4uODZj
MDY3NGFmZGVhMmNkYTRhN2QxYjgxZGEzZGYzOTU1MDM3NTI1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvc2Vzc2lvbnMtYXBpL2NyZWF0ZS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1h
cGkvY3JlYXRlLm1kCkBAIC0yMSwxMiArMjEsMTMgQEAgVGhlIGBjcmVhdGVgIG1ldGhvZCBvZiB0
aGUgc2Vzc2lvbnMgQVBJIGNyZWF0ZXMgYSBuZXcgc2Vzc2lvbi4gSWYgcHJvdmlkZWQgd2l0aAog
ICAgICI8dGVzdF9wYXRoPiI6ICJJbnRlZ2VyIgogICB9LAogICAicmVmZXJlbmNlX3Rva2VucyI6
ICJBcnJheTxTdHJpbmc+IiwKLSAgImxhYmVscyI6ICJBcnJheTxTdHJpbmc+IgorICAibGFiZWxz
IjogIkFycmF5PFN0cmluZz4iLAorICAidHlwZSI6ICJTdHJpbmciCiB9CiBgYGAKIAogLSAqKnRl
c3RzKiogc3BlY2lmaWVzIHRoZSB0ZXN0cyBvZiB0aGUgc2Vzc2lvbjoKLSAgLSAqKmluY2x1ZGUq
KiBzcGVjaWZpZXMgd2hhdCB0ZXN0cyBzaG91bGQgYmUgc2VsZWN0ZWQgZnJvbSBhbGwgYXZhaWxh
YmxlIHRlc3RzLiBDYW4gYmUgYSBwYXRoIHRvIGEgdGVzdCBmaWxlIG9yIGRpcmVjdG9yeS4KKyAg
LSAqKmluY2x1ZGUqKiBzcGVjaWZpZXMgd2hhdCB0ZXN0cyBzaG91bGQgYmUgc2VsZWN0ZWQgZnJv
bSBhbGwgYXZhaWxhYmxlIHRlc3RzLiBDYW4gYmUgYSBwYXRoIHRvIGEgdGVzdCBmaWxlIG9yIGRp
cmVjdG9yeS4gUHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycyB3aWxsIGJlIGFkZGVkIHRvIGFsbCBt
YXRjaGluZyB0ZXN0IHVybHMuCiAgIC0gKipleGNsdWRlKiogc3BlY2lmaWVzIHdoYXQgdGVzdHMg
c2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgaW5jbHVkZWQgdGVzdHMuIENhbiBiZSBhIHBhdGgg
dG8gYSB0ZXN0IGZpbGUgb3IgZGlyZWN0b3J5LgogLSAqKnR5cGVzKiogd2hhdCB0eXBlcyBvZiB0
ZXN0cyBzaG91bGQgYmUgaW5jbHVkZWQuIFBvc3NpYmxlIHZhbHVlczoKICAgLSAqKmF1dG9tYXRp
YyoqIHRlc3RzIGFyZSB0ZXN0cyB0aGF0IGV4ZWN1dGUgd2l0aG91dCB1c2VyIGludGVyYWN0aW9u
LgpAQCAtMzcsNiArMzgsNyBAQCBUaGUgYGNyZWF0ZWAgbWV0aG9kIG9mIHRoZSBzZXNzaW9ucyBB
UEkgY3JlYXRlcyBhIG5ldyBzZXNzaW9uLiBJZiBwcm92aWRlZCB3aXRoCiAgIC0gKipjdXN0b20g
dGVzdCBwYXRocyoqOiBTZXQgdGhlIHRpbWVvdXQgZm9yIGEgdGVzdCBmaWxlIG9yIGRpcmVjdG9y
eSBieSBwdXR0aW5nIHRoZSBwYXRoIHdpdGggYWxsIGRvdHMgcmVtb3ZlZCBhcyB0aGUga2V5Lgog
LSAqKnJlZmVyZW5jZV90b2tlbnMqKiBzcGVjaWZpZXMgYSBzZXQgb2YgY29tcGxldGVkIHNlc3Np
b25zIHRoYXQgaXMgdXNlZCB0byBmaWx0ZXIgb3V0IGFsbCB0ZXN0cyB0aGF0IGhhdmUgbm90IHBh
c3NlZCBpbiBhbGwgdGhvc2Ugc2Vzc2lvbnMgZnJvbSB0aGUgc2Vzc2lvbiB0aGF0IGlzIGdvaW5n
IHRvIGJlIGNyZWF0ZWQuCiAtICoqbGFiZWxzKiogc3BlY2lmaWVzIHRoZSBpbml0aWFsIHNldCBv
ZiBsYWJlbHMgZm9yIHRoZSBzZXNzaW9uLgorLSAqKnR5cGUqKiBzcGVjaWZpZXMgdGhlIHNlc3Np
b24gdHlwZSB0byB0cmlnZ2VyIHR5cGUgc3BlY2lmaWMgYmVoYXZpb3VyIGxpa2UgZGlmZmVyZW50
IGNvbnRyb2wgcGFnZXMuCiAKICMjIyBEZWZhdWx0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBp
L3Nlc3Npb25zLWFwaS9ldmVudC10eXBlcy5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9l
dmVudC10eXBlcy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTVlMGExMjJiYjkyZmUyZWM4MjdjNGYzOGFkM2Uy
MjU2MDliY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL2V2
ZW50LXR5cGVzLm1kCkBAIC0wLDAgKzEsMjcgQEAKKyMgU2Vzc2lvbiBFdmVudCBUeXBlcyAtIFtT
ZXNzaW9ucyBBUEldKC4uL1JFQURNRS5tZCNzZXNzaW9ucy1hcGkpCisKK1Nlc3Npb24gZXZlbnRz
IGFyZSBldmVudHMgdGhhdCBhcmUgdHJpZ2dlcmVkIGJ5IGFjdGlvbnMgcmVsYXRlZCB0byBzZXNz
aW9ucy4gCitUaGUgW2BldmVudGBdKC4vZXZlbnRzLm1kKSBmdW5jdGlvbnMgb2YgdGhlIHNlc3Np
b25zIEFQSSBtYWtlIHVzZSBvZiB0aGVzZSBldmVudHMuCisKKyMjIFN0YXR1cyBjaGFuZ2UKKwor
KipUeXBlIGlkZW50aWZpZXIqKjogYHN0YXR1c2AgIAorKipQYXlsb2FkKio6IGAiPFN0cmluZz4i
YCAgCitQb3NzaWJsZSBWYWx1ZXM6IGBwYXVzZWRgLCBgcnVubmluZ2AsIGBjb21wbGV0ZWRgLCBg
YWJvcnRlZGAgIAorKipEZXNjcmlwdGlvbioqOiBUcmlnZ2VyZWQgb25jZSB0aGUgc3RhdHVzIG9m
IHRoZSBzZXNzaW9uIGNoYW5nZXMuCisKKyMjIFJlc3VtZSAKKworKipUeXBlIGlkZW50aWZpZXIq
KjogYHJlc3VtZWAgIAorKipQYXlsb2FkKio6IGAiPFN0cmluZz4iYCAgCitDb250YWlucyB0aGUg
dG9rZW4gb2YgdGhlIHNlc3Npb24gdG8gcmVzdW1lLiAgCisqKkRlc2NyaXB0aW9uKio6IFRyaWdn
ZXJlZCB3aGVuIGEgc3BlY2lmaWMgc2Vzc2lvbiBpcyBzdXBwb3NlZCB0byBiZSByZXN1bWVkLiAK
K1RoaXMgd2lsbCBkaXNjYXJkIHRoZSBjdXJyZW50IHNlc3Npb24gYW5kIGNvbnRpbnVlIGV4ZWN1
dGluZyB0aGUgc2Vzc2lvbiB3aXRoIAordGhlIHByb3ZpZGVkIHRva2VuLgorCisjIyBUZXN0IENv
bXBsZXRlZCAKKworKipUeXBlIGlkZW50aWZpZXIqKjogYHRlc3RfY29tcGxldGVkYCAgCisqKlBh
eWxvYWQqKjogYCI8U3RyaW5nPiJgICAKK0NvbnRhaW5zIHRoZSB0ZXN0IGNhc2UgdGhhdCBjb21w
bGV0ZWQuICAKKyoqRGVzY3JpcHRpb24qKjogVHJpZ2dlcmVkIHdoZW4gdGhlIHRlc3QgcnVubmVy
IHJlY2VpdmVkIGEgcmVzdWx0IGZvciBhIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9z
ZXNzaW9ucy1hcGkvZXZlbnRzLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL2V2ZW50cy5t
ZAppbmRleCBlMjE0OGIxZGQzNjIwMDE3MjUyOGJjYmFmYzUxMDk4M2U2ODlkMjRhLi5jMWI2OTNj
ODhjNTkyMTFlZmQzMDNiYWFkZTU5NDllNDJhMDE1YzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFw
aS9zZXNzaW9ucy1hcGkvZXZlbnRzLm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9l
dmVudHMubWQKQEAgLTEsMTIgKzEsODQgQEAKICMgYGV2ZW50c2AgLSBbU2Vzc2lvbnMgQVBJXSgu
Li9SRUFETUUubWQjc2Vzc2lvbnMtYXBpKQogCitTZXNzaW9uIGV2ZW50cyBjYW4gYmUgdXNlZCB0
byBzZW5kIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBzZXNzaW9uIGZvcgorb3RoZXJz
IHRvIHJlY2VpdmUuIFRoaXMgY2FuIGluY2x1ZGUgc3RhdHVzIHVwZGF0ZXMgb3IgYWN0aW9uIHRo
YXQgcnVubmluZworc2Vzc2lvbiByZWFjdCBvbi4KKworRm9yIHBvc3NpYmxlIGV2ZW50cyBzZWUg
W1Nlc3Npb24gRXZlbnQgVHlwZXNdKC4vZXZlbnQtdHlwZXMubWQpCisKKyMjIDEuIGBsaXN0ZW4g
ZXZlbnRzYAorCiBMaXN0ZW4gZm9yIHNlc3Npb24gc3BlY2lmaWMgZXZlbnRzIGJ5IHJlZ2lzdGVy
aW5nIG9uIHRoZSBgZXZlbnRzYCBlbmRwb2ludCB1c2luZyBIVFRQIGxvbmcgcG9sbGluZy4KIAot
IyMgSFRUUCBSZXF1ZXN0CisjIyMgSFRUUCBSZXF1ZXN0CisKK2BgYAorR0VUIC9hcGkvc2Vzc2lv
bnMvPHRva2VuPi9ldmVudHMKK2BgYAorCisjIyMgUXVlcnkgUGFyYW1ldGVycworCit8IFBhcmFt
ZXRlciAgICB8IERlc2NpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlZmF1bHQgfCBFeGFtcGxlICAgICAg
ICB8Cit8IC0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0gfCAt
LS0tLS0tLS0tLS0tLSB8Cit8IGBsYXN0X2V2ZW50YCB8IFRoZSBudW1iZXIgb2YgdGhlIGxhc3Qg
cmVjZWl2ZWQgZXZlbnQuIEFsbCBldmVudHMgdGhhdCBhcmUgbmV3ZXIgdGhhbiBgbGFzdF9ldmVu
dGAgYXJlIHJldHVybmVkIGltbWVkaWF0ZWx5LiBJZiB0aGVyZSBhcmUgbm8gbmV3ZXIgZXZlbnRz
LCBjb25uZWN0aW9uIHN0YXlzIG9wZW4gdW50aWwgYSBuZXcgZXZlbnQgaXMgdHJpZ2dlcmVkLiB8
IE5vbmUgICAgfCBgbGFzdF9ldmVudD01YCB8CisKKyMjIyMgUmVzcG9uc2UgUGF5bG9hZAorCitg
YGBqc29uCitbCisgIHsKKyAgICAidHlwZSI6ICJTdHJpbmciLAorICAgICJkYXRhIjogIlN0cmlu
ZyIsCisgICAgIm51bWJlciI6ICJOdW1iZXIiCisgIH0sCisgIC4uLgorXQorYGBgCisKKy0gKip0
eXBlKio6IHRoZSB0eXBlIG9mIGV2ZW50IHRoYXQgb2NjdXJyZWQuCistICoqZGF0YSoqOiB0aGUg
YWN0dWFsIHBheWxvYWQgb2YgdGhlIGV2ZW50CistICoqbnVtYmVyKio6IHRoZSBudW1iZXIgb2Yg
dGhlIGV2ZW50CisKKyMjIyMgRXhhbXBsZQorCitgYGAKK0dFVCAvYXBpL3Nlc3Npb25zLzZmZGJk
MWEwLWMzMzktMTFlOS1iNzc1LTZkNDlkZDU2Nzc3Mi9ldmVudHM/bGFzdF9ldmVudD04CitgYGAK
KworYGBganNvbgorWworICB7CisgICAgInR5cGUiOiAic3RhdHVzIiwKKyAgICAiZGF0YSI6ICJw
YXVzZWQiLAorICAgICJudW1iZXIiOiA5CisgIH0sCisgIHsKKyAgICAidHlwZSI6ICJzdGF0dXMi
LAorICAgICJkYXRhIjogInJ1bm5pbmciLAorICAgICJudW1iZXIiOiAxMAorICB9LAorICB7Cisg
ICAgInR5cGUiOiAic3RhdHVzIiwKKyAgICAiZGF0YSI6ICJwYXVzZWQiLAorICAgICJudW1iZXIi
OiAxMQorICB9LAorICB7CisgICAgInR5cGUiOiAic3RhdHVzIiwKKyAgICAiZGF0YSI6ICJydW5u
aW5nIiwKKyAgICAibnVtYmVyIjogMTIKKyAgfQorXQorYGBgCisKKyMjIDIuIGBwdXNoIGV2ZW50
c2AKIAotYEdFVCAvYXBpL3Nlc3Npb25zLzx0b2tlbj4vZXZlbnRzYAorUHVzaCBzZXNzaW9uIHNw
ZWNpZmljIGV2ZW50cyBmb3IgYW55IHJlZ2lzdGVyZWQgbGlzdGVuZXJzIHRvIHJlY2VpdmUuCiAK
LSMjIFJlc3BvbnNlIFBheWxvYWQKKyMjIyBIVFRQIFJlcXVlc3QKKworYGBgCitQT1NUIC9hcGkv
c2Vzc2lvbnMvPHRva2VuPi9ldmVudHMKK2BgYAogCiBgYGBqc29uCiB7CkBAIC0xOCwxMyArOTAs
MTEgQEAgTGlzdGVuIGZvciBzZXNzaW9uIHNwZWNpZmljIGV2ZW50cyBieSByZWdpc3RlcmluZyBv
biB0aGUgYGV2ZW50c2AgZW5kcG9pbnQgdXNpbmcKIC0gKip0eXBlKio6IHRoZSB0eXBlIG9mIGV2
ZW50IHRoYXQgb2NjdXJyZWQuCiAtICoqZGF0YSoqOiB0aGUgYWN0dWFsIHBheWxvYWQgb2YgdGhl
IGV2ZW50CiAKLSMjIEV4YW1wbGUKLQotKipSZXF1ZXN0KioKKyMjIyMgRXhhbXBsZQogCi1gR0VU
IC9hcGkvc2Vzc2lvbnMvNmZkYmQxYTAtYzMzOS0xMWU5LWI3NzUtNmQ0OWRkNTY3NzcyL2V2ZW50
c2AKLQotKipSZXNwb25zZSoqCitgYGAKK1BPU1QgL2FwaS9zZXNzaW9ucy82ZmRiZDFhMC1jMzM5
LTExZTktYjc3NS02ZDQ5ZGQ1Njc3NzIvZXZlbnRzCitgYGAKIAogYGBganNvbgogewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWQubWQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNz
aW9ucy1hcGkvcmVhZC5tZAppbmRleCBkYTRiNTczNzdhNjFmYzM4MjhmYTUwODBlOWRjZDBmZWVm
ZTIwMGUxLi40ZWM5YzNmNjNmNWRlMWYxNWM0NjVkNzI1MWZkMTEyODFkZDQxZmVlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvcmVhZC5tZAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9z
ZXNzaW9ucy1hcGkvcmVhZC5tZApAQCAtMSw0ICsxLDQgQEAKLSMgYHJlYWRgIC0gW1Nlc3Npb25z
IEFQSV0oLi4vUkVBRE1FLm1kI3Nlc3Npb25zLWFwaSkKKyMgYHJlYWQgc2Vzc2lvbmAgLSBbU2Vz
c2lvbnMgQVBJXSguLi9SRUFETUUubWQjc2Vzc2lvbnMtYXBpKQogCiBUaGUgYHJlYWRgIG1ldGhv
ZCBvZiB0aGUgc2Vzc2lvbnMgQVBJIGZldGNoZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYSBzZXNz
aW9uLCBpbmNsdWRpbmcgdmFsdWVzIHRoYXQgY2FuIG5vdCBiZSBzZXQgYnkgdGhlIHVzZXIsIGJ1
dCBhcmUgY3JlYXRlZCBieSB0aGUgc2VydmVyIHVwb24gY3JlYXRpb24uCiAKQEAgLTI3LDcgKzI3
LDkgQEAgVGhlIGByZWFkYCBtZXRob2Qgb2YgdGhlIHNlc3Npb25zIEFQSSBmZXRjaGVzIHRoZSBj
b25maWd1cmF0aW9uIG9mIGEgc2Vzc2lvbiwgaW4KICAgICAibmFtZSI6ICJTdHJpbmciLAogICAg
ICJ2ZXJzaW9uIjogIlN0cmluZyIKICAgfSwKLSAgImlzX3B1YmxpYyI6ICJCb29sZWFuIgorICAi
aXNfcHVibGljIjogIkJvb2xlYW4iLAorICAiZGF0ZV9jcmVhdGVkIjogIlN0cmluZyIsCisgICJs
YWJlbHMiOiAiQXJyYXk8U3RyaW5nPiIKIH0KIGBgYAogCkBAIC00OCw2ICs1MCw4IEBAIFRoZSBg
cmVhZGAgbWV0aG9kIG9mIHRoZSBzZXNzaW9ucyBBUEkgZmV0Y2hlcyB0aGUgY29uZmlndXJhdGlv
biBvZiBhIHNlc3Npb24sIGluCiAgIC0gKipuYW1lKio6IFRoZSBuYW1lIG9mIHRoZSBicm93c2Vy
LgogICAtICoqdmVyc2lvbioqOiBUaGUgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBicm93c2VyLgog
LSAqKmlzX3B1YmxpYyoqIGRlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHNlc3Npb24gaXMgbGlz
dGVkIHdoZW4gZmV0Y2hpbmcgdGhlIGxpc3Qgb2YgcHVibGljIHNlc3Npb24gdXNpbmcgW2ByZWFk
IHB1YmxpY2BdKC4vcmVhZC1wdWJsaWMubWQpLgorLSAqKmRhdGVfY3JlYXRlZCoqOiBUaGUgZGF0
ZSB0aGUgc2Vzc2lvbiB3YXMgY3JlYXRlZCBpbiBJU08gODYwMSBmb3JtYXQuCistICoqbGFiZWxz
Kio6IEEgbGlzdCBvZiB0aGUgc2Vzc2lvbnMgbGFiZWxzLgogCiAjIyBFeGFtcGxlCiAKQEAgLTc5
LDYgKzgzLDggQEAgVGhlIGByZWFkYCBtZXRob2Qgb2YgdGhlIHNlc3Npb25zIEFQSSBmZXRjaGVz
IHRoZSBjb25maWd1cmF0aW9uIG9mIGEgc2Vzc2lvbiwgaW4KICAgICAibmFtZSI6ICJDaHJvbWl1
bSIsCiAgICAgInZlcnNpb24iOiAiNzYiCiAgIH0sCi0gICJpc19wdWJsaWMiOiAiZmFsc2UiCisg
ICJpc19wdWJsaWMiOiAiZmFsc2UiLAorICAiZGF0ZV9jcmVhdGVkIjogIjIwMjAtMDUtMjVUMTE6
Mzc6MDciLAorICAibGFiZWxzIjogWyJsYWJlbEEiLCAibGFiZWxCIl0KIH0KIGBgYApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWRfc2Vzc2lvbnMubWQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0
LWFwaS9zZXNzaW9ucy1hcGkvcmVhZF9zZXNzaW9ucy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjkzNzFmMDA2
NDQ4MzZiM2RiMjI3NGY2NDE2OTIwY2JkNGU2ZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvc2Vzc2lvbnMtYXBpL3JlYWRfc2Vzc2lvbnMubWQKQEAgLTAsMCArMSwxMjMgQEAKKyMg
YHJlYWQgc2Vzc2lvbnNgIC0gW1Nlc3Npb25zIEFQSV0oLi4vUkVBRE1FLm1kI3Nlc3Npb25zLWFw
aSkKKworVGhlIGByZWFkIHNlc3Npb25zYCBtZXRob2Qgb2YgdGhlIHNlc3Npb25zIEFQSSBmZXRj
aGVzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlCitzZXNzaW9uJ3MgdG9rZW4gd2l0aCB0aGUgb3B0
aW9uIGV4cGFuZCB0aGUgcmV0dXJuZWQgZGF0YSBieSBhbGwgcmV0cmlldmVkCit0b2tlbnMgY29y
cmVzcG9uZGluZyBzZXNzaW9uIGNvbmZpZ3VyYXRpb25zIG9yIHN0YXR1c2VzLgorCisjIyBIVFRQ
IFJlcXVlc3QKKworYGBgCitHRVQgL2FwaS9zZXNzaW9ucworYGBgCisKKyMjIyBRdWVyeSBQYXJh
bWV0ZXJzCisKK3wgUGFyYW1ldGVyIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IERlZmF1bHQgfAorfCAtLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLSB8Cit8IGBpbmRleGAgICB8IEF0IHdo
YXQgaW5kZXggb2YgYWxsIHNlc3Npb24gdG8gc3RhcnQgdGhlIHJldHVybmVkIGxpc3QuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgMGAgICAgIHwKK3wgYGNv
dW50YCAgIHwgSG93IG1hbnkgZW50cmllcyB0byByZXR1cm4gc3RhcnRpbmcgZnJvbSBgaW5kZXhg
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGAx
MGAgICAgfAorfCBgZXhwYW5kYCAgfCBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiByZWxhdGlvbnMg
ZnJvbSBgX2xpbmtzYC4gSW5jbHVkZXMgYWRkaXRpb25hbCBkYXRhIGluIHRoZSBgX2VtYmVkZGVk
YCBvYmplY3QuIHwgbm9uZSAgICB8CisKKyMjIyBSZXNwb25zZSBQYXlsb2FkCisKK2BgYAorMjAw
IE9LCitDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24raGFsCitgYGAKKworYGBganNvbgor
eworICAiX2xpbmtzIjogeworICAgICI8cmVsYXRpb24+IjogeworICAgICAgImhyZWYiOiAiU3Ry
aW5nIgorICAgIH0KKyAgICAuLi4KKyAgfSwKKyAgIl9lbWJlZGRlZCI6IHsKKyAgICAiPHJlbGF0
aW9uPiI6ICJBcnJheTxBbnk+IgorICAgIC4uLgorICB9LAorICAiaXRlbXMiOiAiQXJyYXk8U3Ry
aW5nPiIKK30KK2BgYAorCistICoqXF9saW5rcyoqIGNvbnRhaW5zIFVSTHMgdG8gcmVsYXRlZCBk
YXRhLiBGb3IgbW9yZSwgc2VlIFtIQUwgU3BlY2ZpY2F0aW9uXShodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvZHJhZnQta2VsbHktanNvbi1oYWwpLgorLSAqKlxfZW1iZWRkZWQqKiBhZGRpdGlv
bmFsIGNvbnRlbnQgc3BlY2lmaWVkIGJ5IGBleHBhbmRgIHF1ZXJ5IHBhcmFtYXRlci4gRm9yIG1v
cmUsIHNlZSBbSEFMIFNwZWNmaWNhdGlvbl0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL2Ry
YWZ0LWtlbGx5LWpzb24taGFsKS4KKy0gKippdGVtcyoqIGNvbnRhaW5zIHRoZSByZXR1cm5lZCBs
aXN0IG9mIHNlc3Npb24gdG9rZW5zLgorCisjIyBFeGFtcGxlCisKK2BgYAorR0VUIC9hcGkvc2Vz
c2lvbnM/aW5kZXg9MCZjb3VudD0zJmV4cGFuZD1zdGF0dXMKK2BgYAorCitgYGAKKzIwMCBPSwor
Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uK2hhbAorYGBgCisKK2BgYGpzb24KK3sKKyAg
Il9saW5rcyI6IHsKKyAgICAiZmlyc3QiOiB7CisgICAgICAiaHJlZiI6ICIvX3dhdmUvYXBpL3Nl
c3Npb25zP2luZGV4PTAmY291bnQ9MyIKKyAgICB9LAorICAgICJsYXN0IjogeworICAgICAgImhy
ZWYiOiAiL193YXZlL2FwaS9zZXNzaW9ucz9pbmRleD0zOSZjb3VudD0zIgorICAgIH0sCisgICAg
InNlbGYiOiB7CisgICAgICAiaHJlZiI6ICIvX3dhdmUvYXBpL3Nlc3Npb25zP2luZGV4PTAmY291
bnQ9MyIKKyAgICB9LAorICAgICJuZXh0IjogeworICAgICAgImhyZWYiOiAiL193YXZlL2FwaS9z
ZXNzaW9ucz9pbmRleD0zJmNvdW50PTMiCisgICAgfSwKKyAgICAiY29uZmlndXJhdGlvbiI6IHsK
KyAgICAgICJocmVmIjogIi9fd2F2ZS9hcGkvc2Vzc2lvbnMve3Rva2VufSIsCisgICAgICAidGVt
cGxhdGVkIjogdHJ1ZQorICAgIH0sCisgICAgInN0YXR1cyI6IHsKKyAgICAgICJocmVmIjogIi9f
d2F2ZS9hcGkvc2Vzc2lvbnMve3Rva2VufS9zdGF0dXMiLAorICAgICAgInRlbXBsYXRlZCI6IHRy
dWUKKyAgICB9CisgIH0sCisgICJpdGVtcyI6IFsKKyAgICAiMTNmODBjODQtOTA0Ni0xMWVhLTlj
ODAtMDAyMWNjZDc2MTUyIiwKKyAgICAiMzRkYjA4ZTQtOTAzYi0xMWVhLTg5Y2UtMDAyMWNjZDc2
MTUyIiwKKyAgICAiYTM1NWY4NDYtOTQ2NS0xMWVhLWFlOWUtMDAyMWNjZDc2MTUyIgorICBdLAor
ICAiX2VtYmVkZGVkIjogeworICAgICJzdGF0dXMiOiBbCisgICAgICB7CisgICAgICAgICJzdGF0
dXMiOiAiY29tcGxldGVkIiwKKyAgICAgICAgImV4cGlyYXRpb25fZGF0ZSI6IG51bGwsCisgICAg
ICAgICJsYWJlbHMiOiBbXSwKKyAgICAgICAgImRhdGVfZmluaXNoZWQiOiAxNTg4ODQ0MTQ1ODk3
LjE1NywKKyAgICAgICAgInRva2VuIjogIjEzZjgwYzg0LTkwNDYtMTFlYS05YzgwLTAwMjFjY2Q3
NjE1MiIsCisgICAgICAgICJkYXRlX2NyZWF0ZWQiOiBudWxsLAorICAgICAgICAiZGF0ZV9zdGFy
dGVkIjogMTU4ODg0NDEyNzAwMCwKKyAgICAgICAgInR5cGUiOiAid21hcyIKKyAgICAgIH0sCisg
ICAgICB7CisgICAgICAgICJzdGF0dXMiOiAiY29tcGxldGVkIiwKKyAgICAgICAgImV4cGlyYXRp
b25fZGF0ZSI6IG51bGwsCisgICAgICAgICJsYWJlbHMiOiBbXSwKKyAgICAgICAgImRhdGVfZmlu
aXNoZWQiOiAxNTg4ODM5ODIyNzY4Ljk1NjgsCisgICAgICAgICJ0b2tlbiI6ICIzNGRiMDhlNC05
MDNiLTExZWEtODljZS0wMDIxY2NkNzYxNTIiLAorICAgICAgICAiZGF0ZV9jcmVhdGVkIjogbnVs
bCwKKyAgICAgICAgImRhdGVfc3RhcnRlZCI6IDE1ODg4Mzk1MjIwMDAsCisgICAgICAgICJ0eXBl
IjogIndtYXMiCisgICAgICB9LAorICAgICAgeworICAgICAgICAic3RhdHVzIjogImNvbXBsZXRl
ZCIsCisgICAgICAgICJleHBpcmF0aW9uX2RhdGUiOiBudWxsLAorICAgICAgICAibGFiZWxzIjog
W10sCisgICAgICAgICJkYXRlX2ZpbmlzaGVkIjogMTU4OTI5NzQ4NTA2NS4xODAyLAorICAgICAg
ICAidG9rZW4iOiAiYTM1NWY4NDYtOTQ2NS0xMWVhLWFlOWUtMDAyMWNjZDc2MTUyIiwKKyAgICAg
ICAgImRhdGVfY3JlYXRlZCI6IG51bGwsCisgICAgICAgICJkYXRlX3N0YXJ0ZWQiOiAxNTg5Mjk3
NDg0MDAwLAorICAgICAgICAidHlwZSI6ICJ3bWFzIgorICAgICAgfQorICAgIF0KKyAgfQorfQor
YGBgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvc3RhdHVzLm1kIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3Mv
cmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3N0YXR1cy5tZAppbmRleCA0ZjUwODMxYWU4NDk2MjNhYTlk
YzM3NGJlODEyMGU0M2IwZDkwM2UyLi5iMjYwNGE0MWRmODYyMTVhMDU3OGQ3NGQ5ZDAwNDNkNWFj
ZmFhNjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvc3RhdHVzLm1kCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9zdGF0dXMubWQKQEAgLTI1LDkgKzI1LDkgQEAg
VGhlIGBzdGF0dXNgIG1ldGhvZCBvZiB0aGUgcmVzdWx0cyBBUEkgcmV0dXJucyBpbmZvcm1hdGlv
biBhYm91dCBhIHNlc3Npb25zIGN1cnIKICAgLSAqKnBhdXNlZCoqOiBUaGUgZXhlY3V0aW9uIG9m
IHRlc3RzIGluIHRoaXMgc2Vzc2lvbiBpcyBjdXJyZW50bHkgcGF1c2VkLgogICAtICoqY29tcGxl
dGVkKio6IEFsbCB0ZXN0cyBmaWxlcyBpbmNsdWRlIGluIHRoaXMgc2Vzc2lvbiB3ZXJlIGV4ZWN1
dGVkIGFuZCBoYXZlIGEgcmVzdWx0LgogICAtICoqYWJvcnRlZCoqOiBUaGUgc2Vzc2lvbiB3YXMg
ZmluaXNoZWQgYmVmb3JlIGFsbCB0ZXN0cyB3ZXJlIGV4ZWN1dGVkLgotLSAqKmRhdGVfc3RhcnRl
ZCoqIGNvbnRhaW5zIHRoZSB0aW1lIHRoZSBzdGF0dXMgY2hhbmdlZCBmcm9tIGBQRU5ESU5HYCB0
byBgUlVOTklOR2AgaW4gdW5peCBlcG9jaCB0aW1lIG1pbGxpc2Vjb25kcy4KLS0gKipkYXRlX2Zp
bmlzaGVkKiogY29udGFpbnMgdGhlIHRpbWUgdGhlIHN0YXR1cyBjaGFuZ2VkIHRvIGVpdGhlciBg
Q09NUExFVEVEYCBvciBgQUJPUlRFRGAgaW4gdW5peCBlcG9jaCB0aW1lIG1pbGxpc2Vjb25kcy4K
LS0gKipleHBpcmF0aW9uX2RhdGUqKiBjb250YWlucyB0aGUgdGltZSBhdCB3aGljaCB0aGUgc2Vz
c2lvbnMgd2lsbCBiZSBkZWxldGVkCistICoqZGF0ZV9zdGFydGVkKiogY29udGFpbnMgdGhlIHRp
bWUgdGhlIHN0YXR1cyBjaGFuZ2VkIGZyb20gYFBFTkRJTkdgIHRvIGBSVU5OSU5HYCBpbiBJU08g
ODYwMS4KKy0gKipkYXRlX2ZpbmlzaGVkKiogY29udGFpbnMgdGhlIHRpbWUgdGhlIHN0YXR1cyBj
aGFuZ2VkIHRvIGVpdGhlciBgQ09NUExFVEVEYCBvciBgQUJPUlRFRGAgaW4gSVNPIDg2MDEuCist
ICoqZXhwaXJhdGlvbl9kYXRlKiogY29udGFpbnMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHNlc3Np
b25zIHdpbGwgYmUgZGVsZXRlZCBpbiBJU08gODYwMS4KIAogIyMgRXhhbXBsZQogCkBAIC00MSw4
ICs0MSw4IEBAIFRoZSBgc3RhdHVzYCBtZXRob2Qgb2YgdGhlIHJlc3VsdHMgQVBJIHJldHVybnMg
aW5mb3JtYXRpb24gYWJvdXQgYSBzZXNzaW9ucyBjdXJyCiB7CiAgICJ0b2tlbiI6ICJkOWNhYWFl
MC1jMzYyLTExZTktOTQzZi1lZWRiMzA1ZjIyZjYiLAogICAic3RhdHVzIjogInJ1bm5pbmciLAot
ICAiZGF0ZV9zdGFydGVkIjogIjE1Njc2MDY4NzkyMzAiLAorICAiZGF0ZV9zdGFydGVkIjogIjIw
MTktMDktMDRUMTQ6MjE6MTkiLAogICAiZGF0ZV9maW5pc2hlZCI6IG51bGwsCi0gICJleHBpcmF0
aW9uX2RhdGUiOiAiMTU2NzYwNzE3OTIzMCIKKyAgImV4cGlyYXRpb25fZGF0ZSI6ICIyMDE5LTA5
LTA0VDE0OjI2OjE5IgogfQogYGBgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1h
cGkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmMGEwZTA2MWFiNzJhOGY0MDZmZDc3
OWZjODAyZGZiNjRlMzc5MjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBpL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvc2Vzc2lvbnMtYXBp
L2NvbnRyb2wubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvY3JlYXRlLm1kCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvc2Vzc2lvbnMtYXBpL2RlbGV0ZS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Nlc3Npb25zLWFwaS9l
dmVudHMubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvZmluZC5tZAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBp
L3Nlc3Npb25zLWFwaS9sYWJlbHMubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvcmVhZC1w
dWJsaWMubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvcmVhZC5tZAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBp
L3Nlc3Npb25zLWFwaS9zdGF0dXMubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS9zZXNzaW9ucy1hcGkvdXBkYXRl
Lm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS90ZXN0cy1hcGkvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9j
cy9yZXN0LWFwaS90ZXN0cy1hcGkvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc4ZDBhMWU5M2U1ZjBkNDM2NTczNzE2YTAzNGVhMWU4YzcxMTJjYTEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvdGVz
dHMtYXBpL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2RvY3MvcmVzdC1hcGkvdGVzdHMtYXBpL3JlYWQtYWxsLm1kCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVzdC1hcGkvdGVz
dHMtYXBpL3JlYWQtYXZhaWxhYmxlLWFwaXMubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS90ZXN0cy1hcGkvcmVh
ZC1sYXN0LWNvbXBsZXRlZC5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3Rlc3RzLWFwaS9yZWFkLW1hbGZ1bmN0
aW9uaW5nLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL2RvY3MvcmVzdC1hcGkvdGVzdHMtYXBpL3JlYWQtbmV4dC5tZAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3Qt
YXBpL3Rlc3RzLWFwaS9yZWFkLXNlc3Npb24ubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS90ZXN0cy1hcGkvdXBk
YXRlLW1hbGZ1bmN0aW9uaW5nLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy9yZXN0LWFwaS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9kb2NzL3Jlc3QtYXBpL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjYTc5MmMwNTNkNDg5ODliNGY1OTBmY2NkNDJkZmYzZDc4Y2FlN2NiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3Jlc3QtYXBpL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvcmVz
dC1hcGkvUkVBRE1FLm1kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy91c2FnZS91c2FnZS5tZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3VzYWdl
L3VzYWdlLm1kCmluZGV4IDAyNWVlYWU0MjRlMDhmMDljZDNhNDY5MGI0MDA0NTllY2U3NDYwYzgu
LjUwYTk5ZTBkNWFhNTFmNTJkZTQwNTc1MjM1YTQ0ODg0NjdiNDQ2ZTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2Nz
L3VzYWdlL3VzYWdlLm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL3VzYWdlL3VzYWdlLm1kCkBAIC0xLDQgKzEsMTEgQEAK
LSMgVXNhZ2UgR3VpZGUgLSBbV0FWRSBUZXN0IFN1aXRlXSguLi9SRUFETUUubWQpCisjIFVzYWdl
IEd1aWRlIC0gW1dBVkUgVGVzdCBSdW5uZXJdKC4uL1JFQURNRS5tZCkKKworV2l0aCBXQVZFIFRl
c3QgUnVubmVyIHYxLjAuMCBhbGwgZmlsZXMgYW5kIFJFU1QgQVBJIGVuZHBvaW50cyBhcmUgc2Vy
dmVkIHVuZGVyIAorYSBjb25maWd1cmFibGUgbmFtZXNwYWNlLCBieSBkZWZhdWx0IGAvX3dhdmUv
YCwgd2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoaXMgCit1c2FnZSBndWlkZS4KKworSW4gdGhpcyBk
b2N1bWVudCB0aGUgdXNhZ2UgaXMgZXhwbGFpbmVkIHVzaW5nIHNjcmVlbnNob3RzIGZyb20gdGhl
IGNvbnRleHQgb2YgCit0aGUgV01BUyBwcm9qZWN0LiBIb3dldmVyLCBwcmFjdGljZXMgY2FuIGJl
IGFwcGxpZWQgdG8gZGlmZmVyZW50IGNvbnRleHRzIGFzIHdlbGwuCiAKICMjIENvbnRlbnRzCiAK
QEAgLTI2LDcgKzMzLDcgQEAgRWFjaCBuZXcgc2Vzc2lvbiBpcyBjb25maWd1cmVkIHVzaW5nIHNl
dmVyYWwgcGFyYW1ldGVycyBiZWZvcmUgdGhlIHJ1biBzdGFydHMuCiBFdmVyeSBuZXcgc2Vzc2lv
biBpcyBjcmVhdGVkIGZyb20gdGhlIGxhbmRpbmcgcGFnZS4KIEl0IGlzIHJlY29tbWVuZGVkIHRv
IGNyZWF0ZSBhIG5ldyBzZXNzaW9uIGZyb20gdGhlIGRldmljZSB0aGF0IGlzIHRlc3RlZCwgYXMg
dGhlIHVzZXIgYWdlbnQgaXMgcGFydCBvZiB0aGUgZGlzcGxheWVkIGluZm9ybWF0aW9uLCBhcyB3
ZWxsIGFzIHRoZSBicm93c2VyIGFuZCB2ZXJzaW9uLCB3aGljaCBnZXRzIHBhcnNlZCBmcm9tIGl0
LgogSG93ZXZlciwgdGhpcyBkb2VzIG5vdCBpbmZsdWVuY2UgdGhlIGV4ZWN1dGlvbiBvZiB0ZXN0
cyBvciB0aGUgY3JlYXRpb24gb2YgdGVzdCByZXN1bHRzLiAgCi1UbyBjcmVhdGUgYSBuZXcgc2Vz
c2lvbiwgb3BlbiB0aGUgbGFuZGluZyBwYWdlIG9uIHRoZSBVUkkgcGF0aCBgL2AuCitUbyBjcmVh
dGUgYSBuZXcgc2Vzc2lvbiwgb3BlbiB0aGUgbGFuZGluZyBwYWdlIG9uIHRoZSBVUkkgcGF0aCBg
L193YXZlL2luZGV4Lmh0bWxgLgogCiAhW2xhbmRpbmdfcGFnZV0KIApAQCAtNTYsNyArNjMsNyBA
QCBPbmx5IHRlc3RzIHRoYXQgaGF2ZSBwYXNzZWQgdGhlIHJlZmVyZW5jZSB0ZXN0IHNlc3Npb24g
aW4gYWxsIHNlbGVjdGVkIGJyb3dzZXJzCiBUaGUgcmVmZXJlbmNlIGJyb3dzZXJzIHJlcHJlc2Vu
dCB0aGUgc3RhdHVzIG9mIGltcGxlbWVudGF0aW9uIG9mIGFsbCBXQVZFIEFQSXMgaW4gbW9kZXJu
IGRlc2t0b3AgYnJvd3NlcnMsIGF0IGFib3V0IHRoZSB0aW1lIHRoZSBXQVZFIHNwZWNpZmljYXRp
b24gd2FzIHB1Ymxpc2hlZC4gIAogVG8gc3RhcnQgdGhlIHNlc3Npb24gcHJlc3MgIlN0YXJ0IFNl
c3Npb24iLCBub3RlIHRoYXQgdGhlIGxhbmRpbmcgcGFnZSBoYXMgdG8gc3RheSBvcGVuZWQsIGFz
IHRoZSB0ZXN0IGFyZSBnb2luZyB0byBiZSBleGVjdXRlIGluIHRoZSBzYW1lIHdpbmRvdy4KIAot
W1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUtdGVzdC1zdWl0ZSkKK1tUbyB0aGUgdG9w
XSgjdXNhZ2UtZ3VpZGUtLS13YXZlLXRlc3QtcnVubmVyKQogCiAjIyAxLjMgRXhjbHVkZSB0ZXN0
cwogCkBAIC05NiwxMSArMTAzLDExIEBAIEVudGVyIHRoZSBmaXJzdCBlaWdodCBjaGFyYWN0ZXJz
IG9yIG1vcmUgaW50byB0aGUgdGV4dCBmaWVsZCBsYWJlbGxlZCAiU2Vzc2lvbiBUCiBDbGljayAi
QWRkIiB0byBjb25maXJtLgogVGhlIHRlc3RzIHNob3VsZCBub3cgYXBwZWFyIGluIHRoZSBsaXN0
IGJlbG93LgogCi1bVG8gdGhlIHRvcF0oI3VzYWdlLWd1aWRlLS0td2F2ZS10ZXN0LXN1aXRlKQor
W1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUtdGVzdC1ydW5uZXIpCiAKICMgMi4gUmVz
dW1pbmcgdGVzdCBzZXNzaW9ucwogCi1DZXJ0YWluIHRlc3QgY2FzZXMgbWF5IGNhdXNlIHNvbWUg
ZGV2aWNlcyB0byBjcmFzaCwgd2hpY2ggbWFrZXMgdGhlIHRlc3Qgc3VpdGUgdW5hYmxlIHRvIGF1
dG9tYXRpY2FsbHkgcnVuIHRoZSBuZXh0IHRlc3QuCitDZXJ0YWluIHRlc3QgY2FzZXMgbWF5IGNh
dXNlIHNvbWUgZGV2aWNlcyB0byBjcmFzaCwgd2hpY2ggbWFrZXMgdGhlIHRlc3QgcnVubmVyIHVu
YWJsZSB0byBhdXRvbWF0aWNhbGx5IHJ1biB0aGUgbmV4dCB0ZXN0LgogSW4gdGhpcyBjYXNlLCBl
eHRlcm5hbCBpbnRlcmFjdGlvbiBpcyBuZWNlc3NhcnkuCiBUbyBhbGxldmlhdGUgdGhlIHByb2Nl
c3Mgb2YgcmVzdW1pbmcgdGhlIHRlc3Qgc2Vzc2lvbiwgdGhlIGFyZSB0d28gbWVjaGFuaXNtcyBp
bnRlZ3JhdGVkIGludG8gdGhlIHdlYiBpbnRlcmZhY2UgdGhhdCByZWR1Y2UgaW50ZXJhY3Rpb24g
d2l0aCB0aGUgZGV2aWNlIHRvIGEgbWluaW11bS4KIFRoZXJlIGlzIGFsc28gYSBtZWNoYW5pc20g
dGhhdCBjYW4gYmUgdXNlZnVsIGlmIGEgdGVzdCBmcmFtZXdvcmsgd2l0aCBhY2Nlc3MgdG8gdGhl
IHRlc3RlZCBicm93c2VyIGlzIHV0aWxpemVkLgpAQCAtMTMyLDkgKzEzOSw5IEBAIFRvIGxvYWQg
dGhlIG5leHQgdGVzdCBvZiBhIHNwZWNpZmljIHNlc3Npb24sIHNpbXBseSBvcGVuIHRoZSBmb2xs
b3dpbmcgVVJMOgogCiBGb3IgZXhhbXBsZToKIAotYC9uZXh0Lmh0bWw/dG9rZW49MjRmY2QzNjAt
ZWY0ZC0xMWU5LWE5NWYtZDZlMWFkNGM1ZmRiYAorYC9fd2F2ZS9uZXh0Lmh0bWw/dG9rZW49MjRm
Y2QzNjAtZWY0ZC0xMWU5LWE5NWYtZDZlMWFkNGM1ZmRiYAogCi1bVG8gdGhlIHRvcF0oI3VzYWdl
LWd1aWRlLS0td2F2ZS10ZXN0LXN1aXRlKQorW1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdh
dmUtdGVzdC1ydW5uZXIpCiAKICMgMy4gTW9uaXRvcmluZyB0ZXN0IHNlc3Npb25zCiAKQEAgLTE2
NywxOCArMTc0LDE4IEBAIE9uY2UgYWxsIHRlc3QgZmlsZXMgb2YgYW4gQVBJIGhhdmUgcmVjZWl2
ZWQgYSByZXN1bHQsIGl0IGlzIHBvc3NpYmxlIHRvIGRvd25sb2FkCiAKIEJlbG93IHRoZSB0YWJs
ZSBvZiBBUEkgcmVzdWx0cywgdGhlcmUgYXJlIG1vcmUgb3B0aW9ucyB0byBkb3dubG9hZCB0aGUg
cmVzdWx0cyBvZiB0aGUgc2Vzc2lvbi4KIFRoZSBmaXJzdCBvcHRpb24gZG93bmxvYWRzIHRoZSBy
ZXN1bHRzIHRoZSBzYW1lIHdheSBpdCBpcyBwZXJzaXN0ZWQgb24gdGhlIHNlcnZlcnNpZGUsIGFs
b25nIHdpdGggc29tZSBtZXRhIGRhdGEuCi1UaGlzIGZvcm0gaXMgZXNwZWNpYWxseSB1c2VmdWwg
aWYgeW91IHdhbnQgdG8gaW1wb3J0IHRoZSBzZXNzaW9uIGRldGFpbHMgd2l0aCB0aGUgcmVzdWx0
cyBpbnRvIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgV0FWRSBUZXN0IFN1aXRlLiAgCitUaGlzIGZv
cm0gaXMgZXNwZWNpYWxseSB1c2VmdWwgaWYgeW91IHdhbnQgdG8gaW1wb3J0IHRoZSBzZXNzaW9u
IGRldGFpbHMgd2l0aCB0aGUgcmVzdWx0cyBpbnRvIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgV0FW
RSBUZXN0IFJ1bm5lci4gIAogRnVydGhlcm1vcmUsIHRoZXJlIGlzIHRoZSBvcHRpb24gdG8gZG93
bmxvYWQgdGhlIHJhdyByZXN1bHQgaW4gSlNPTiBmb3JtYXQgb2YgYWxsIGZpbmlzaGVkIEFQSXMu
CiBUaGlzIHRoZSBzYW1lIEpTT04geW91IGdldCBieSBjbGlja2luZyBvbiB0aGUgIkpTT04iIGJ1
dHRvbiBpbiB0aGUgQVBJIHJlc3VsdHMgY29sdW1uLCBidXQgb2YgYWxsIGZpbmlzaGVkIEFQSXMg
aW4gYSBaSVAgZmlsZS4KIExhc3RseSwgeW91IGNhbiBkb3dubG9hZCBhIHN0YXRpYyBIVE1MIHBh
Z2UsIHNpbWlsaWFyIHRvIHRoZSByZXN1bHRzIHZpZXcuICAKIEZpbmFsbHksIGF0IHRoZSBib3R0
b20gb2YgdGhlIHBhZ2UgeW91IGNhbiBmaW5kIHRoZSBsaXN0IG9mIG1hbGZ1bmN0aW9uaW5nIHRl
c3RzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkIGZyb20gdGhlIGxpc3Qgb2YgbGFzdCB0aW1lZC1vdXQg
dGVzdCBmaWxlcy4KIFJlbW92ZSB0ZXN0cyBieSBjbGlja2luZyB0aGVpciBjb3JyZXNwb25kaW5n
IGJ1dHRvbiB3aXRoIHRoZSB0cmFzaGNhbiBpY29uLgogCi1bVG8gdGhlIHRvcF0oI3VzYWdlLWd1
aWRlLS0td2F2ZS10ZXN0LXN1aXRlKQorW1RvIHRoZSB0b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUt
dGVzdC1ydW5uZXIpCiAKICMgNC4gTWFuYWdpbmcgdGVzdCBzZXNzaW9ucwogCi1UaGUgb3ZlcnZp
ZXcgcGFnZSBwcm92aWRlcyBmZWF0dXJlcyB0aGF0IGhlbHAgdG8gbWFuYWdlIGFuZCBvcmdhbml6
ZSBtdWx0aXBsZSBzZXNzaW9ucy4gWW91IGNhbiBhY2Nlc3MgaXQgZnJvbSB0aGUgVVJMIGAvb3Zl
cnZpZXcuaHRtbGAuCitUaGUgb3ZlcnZpZXcgcGFnZSBwcm92aWRlcyBmZWF0dXJlcyB0aGF0IGhl
bHAgdG8gbWFuYWdlIGFuZCBvcmdhbml6ZSBtdWx0aXBsZSBzZXNzaW9ucy4gWW91IGNhbiBhY2Nl
c3MgaXQgZnJvbSB0aGUgVVJMIGAvX3dhdmUvb3ZlcnZpZXcuaHRtbGAuCiAKICFbb3ZlcnZpZXdf
cGFnZV0KIApAQCAtMjA1LDcgKzIxMiw3IEBAIFNvcnQgdGhlIGxpc3Qgb2Ygc2Vzc2lvbnMgYnkg
Y2xpY2tpbmcgb24gdGhlIGNvbHVtbiB0byBmaWx0ZXIgdGhlbSBieS4KIAogQWRkIG9uZSBvciBt
b3JlIHRhZ3MgdG8gdGhlIGZpbHRlciB0byBjb252ZW5pZW50bHkgZmluZCB0aGUgc2Vzc2lvbnMg
eW91IGFyZSBsb29raW5nIGZvci4gQWRkIGxhYmVscyB0byBzZXNzaW9uIHdoZW4gY3JlYXRpbmcg
dGhlbSBvciBpbiB0aGVpciBjb3JyZXNwb25kaW5nIHJlc3VsdHMgcGFnZS4KIAotW1RvIHRoZSB0
b3BdKCN1c2FnZS1ndWlkZS0tLXdhdmUtdGVzdC1zdWl0ZSkKK1tUbyB0aGUgdG9wXSgjdXNhZ2Ut
Z3VpZGUtLS13YXZlLXRlc3QtcnVubmVyKQogCiBbbGFuZGluZ19wYWdlXTogLi4vcmVzL2xhbmRp
bmdfcGFnZS5qcGcgIkxhbmRpbmcgUGFnZSIKIFtjb25maWd1cmF0aW9uX3BhZ2VdOiAuLi9yZXMv
Y29uZmlndXJhdGlvbl9wYWdlX3RvcC5qcGcgIkNvbmZpZ3VyYXRpb24gUGFnZSIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9kb2NzL3VzYWdlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvdXNhZ2UvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MzA0Y2Q4YjEyYTkxMTNjNjY1YzJmZWJhNDg1
NjExNzQ2MjcwYzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L2RvY3MvdXNhZ2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvZG9jcy91c2FnZS91c2FnZS5tZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2RvY3MvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTE5
ODUxYmUwOTFjYmRlZWVlZmM3NTJmOTVkZDY5OWY4YWQ3MTYwYS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9kb2NzL1JFQURNRS5tZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4
cG9ydC9jc3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L2Nzcy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODk4OGQwZGMxOWYzMmVmYWY1NzZmM2Q3OTU0MGJlZTdm
YmJkMGU5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhw
b3J0L2Nzcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9leHBvcnQvY3NzL2J1bG1hLm1pbi5jc3MKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L2Nzcy9yZXN1bHQuY3NzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvZXhwb3J0L2xpYi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9leHBvcnQvbGliL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjM4MTVjNWZkZmViMTY2ZTgzNDRkZGU5
N2ExODNhZDUwYTU3YWM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS9leHBvcnQvbGliL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL2V4cG9ydC9saWIvdWkuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L2xpYi91dGlscy5qcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL2V4cG9ydC9yZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L3Jlcy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk3MmUzNWQ5OGU4MGU2NDM2Y2JmOTZkMTU5
ODM1YjA2M2ZkNDAxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvZXhwb3J0L3Jlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9leHBvcnQvcmVzL3dhdmVsb2dvXzIwMTYuanBnCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL2V4cG9ydC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTQ3ZTIxZjU3ZTdjNTBkOTFhZjgyMjljY2JjOGY0YzFhNTMyOTg0Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvZXhwb3J0L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL2V4cG9ydC9pbmRl
eC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL19faW5pdF9fLnB5
CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjli
YjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL19faW5p
dF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9uZXR3b3JrL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVm
MGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhj
MmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvX19pbml0X18ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsv
YXBpL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZv
ciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9hcGlfaGFuZGxlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9u
ZXR3b3JrL2FwaS9hcGlfaGFuZGxlci5weQppbmRleCA5ODU3YTdhYjczYTFhNWFhNTcxNWRmMGFl
YWUxZjE3NjkwOTRlNmE4Li5kYTIxMjM3OGM1NzYzZGQ5NzJlNzQ4NWVjYTE0NDQ0Nzk2NDliM2Ex
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvYXBpX2hhbmRsZXIucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL2Fw
aV9oYW5kbGVyLnB5CkBAIC0yLDYgKzIsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IHN5cwogaW1w
b3J0IHRyYWNlYmFjawogaW1wb3J0IGxvZ2dpbmcKKwogZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0
IHBhcnNlX3FzbAogCiBnbG9iYWwgbG9nZ2VyCkBAIC01MSwzICs1Miw0NiBAQCBjbGFzcyBBcGlI
YW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGluZm8gPSBzeXMuZXhjX2luZm8oKQogICAgICAgICB0
cmFjZWJhY2sucHJpbnRfdGIoaW5mb1syXSkKICAgICAgICAgbG9nZ2VyLmVycm9yKCJ7fToge306
IHt9Ii5mb3JtYXQobWVzc2FnZSwgaW5mb1swXS5fX25hbWVfXywgaW5mb1sxXS5hcmdzWzBdKSkK
KworICAgIGRlZiBjcmVhdGVfaGFsX2xpc3Qoc2VsZiwgaXRlbXMsIHVyaXMsIGluZGV4LCBjb3Vu
dCwgdG90YWwpOgorICAgICAgICBoYWxfbGlzdCA9IHt9CisgICAgICAgIGxpbmtzID0ge30KKyAg
ICAgICAgaWYgdXJpcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciByZWxhdGlvbiBpbiB1
cmlzOgorICAgICAgICAgICAgICAgIGlmIHJlbGF0aW9uID09ICJzZWxmIjoKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICB1cmkgPSB1cmlzW3JlbGF0aW9uXQor
ICAgICAgICAgICAgICAgIHRlbXBsYXRlZCA9ICJ7IiBpbiB1cmkKKyAgICAgICAgICAgICAgICBs
aW5rc1tyZWxhdGlvbl0gPSB7ImhyZWYiOiB1cmksICJ0ZW1wbGF0ZWQiOiB0ZW1wbGF0ZWR9CisK
KyAgICAgICAgICAgIGlmICJzZWxmIiBpbiB1cmlzOgorICAgICAgICAgICAgICAgIHNlbGZfdXJp
ID0gdXJpc1sic2VsZiJdCisgICAgICAgICAgICAgICAgc2VsZl91cmkgKz0gIj9pbmRleD17fSZj
b3VudD17fSIuZm9ybWF0KGluZGV4LCBjb3VudCkKKyAgICAgICAgICAgICAgICBsaW5rc1sic2Vs
ZiJdID0geyJocmVmIjogc2VsZl91cml9CisKKyAgICAgICAgICAgICAgICBmaXJzdF91cmkgPSB1
cmlzWyJzZWxmIl0KKyAgICAgICAgICAgICAgICBmaXJzdF91cmkgKz0gIj9pbmRleD17fSZjb3Vu
dD17fSIuZm9ybWF0KDAsIGNvdW50KQorICAgICAgICAgICAgICAgIGxpbmtzWyJmaXJzdCJdID0g
eyJocmVmIjogZmlyc3RfdXJpfQorCisgICAgICAgICAgICAgICAgbGFzdF91cmkgPSB1cmlzWyJz
ZWxmIl0KKyAgICAgICAgICAgICAgICBsYXN0X3VyaSArPSAiP2luZGV4PXt9JmNvdW50PXt9Ii5m
b3JtYXQodG90YWwgLSAodG90YWwgJSBjb3VudCksIGNvdW50KQorICAgICAgICAgICAgICAgIGxp
bmtzWyJsYXN0Il0gPSB7ImhyZWYiOiBsYXN0X3VyaX0KKworICAgICAgICAgICAgICAgIGlmIGlu
ZGV4ICsgY291bnQgPD0gdG90YWw6CisgICAgICAgICAgICAgICAgICAgIG5leHRfaW5kZXggPSBp
bmRleCArIGNvdW50CisgICAgICAgICAgICAgICAgICAgIG5leHRfdXJpID0gdXJpc1sic2VsZiJd
CisgICAgICAgICAgICAgICAgICAgIG5leHRfdXJpICs9ICI/aW5kZXg9e30mY291bnQ9e30iLmZv
cm1hdChuZXh0X2luZGV4LCBjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgbGlua3NbIm5leHQi
XSA9IHsiaHJlZiI6IG5leHRfdXJpfQorCisgICAgICAgICAgICAgICAgaWYgaW5kZXggIT0gMDoK
KyAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfaW5kZXggPSBpbmRleCAtIGNvdW50CisgICAg
ICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX2luZGV4IDwgMDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzX2luZGV4ID0gMAorICAgICAgICAgICAgICAgICAgICBwcmV2aW91c191
cmkgPSB1cmlzWyJzZWxmIl0KKyAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfdXJpICs9ICI/
aW5kZXg9e30mY291bnQ9e30iLmZvcm1hdChwcmV2aW91c19pbmRleCwgY291bnQpCisgICAgICAg
ICAgICAgICAgICAgIGxpbmtzWyJwcmV2aW91cyJdID0geyJocmVmIjogcHJldmlvdXNfdXJpfQor
CisgICAgICAgIGhhbF9saXN0WyJfbGlua3MiXSA9IGxpbmtzCisgICAgICAgIGhhbF9saXN0WyJp
dGVtcyJdID0gaXRlbXMKKworICAgICAgICByZXR1cm4gaGFsX2xpc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3
b3JrL2FwaS9kZXZpY2VzX2FwaV9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL2RldmljZXNfYXBpX2hh
bmRsZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU4YjAyYmNhMWYzN2E3NTNlOGQzYTBmOWUxYzRiYzY1ZjAw
YWJhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9kZXZpY2VzX2FwaV9oYW5kbGVyLnB5
CkBAIC0wLDAgKzEsMjAwIEBACitpbXBvcnQganNvbgoraW1wb3J0IHRocmVhZGluZworCitmcm9t
IC5hcGlfaGFuZGxlciBpbXBvcnQgQXBpSGFuZGxlcgorZnJvbSAuLi5kYXRhLmh0dHBfcG9sbGlu
Z19ldmVudF9saXN0ZW5lciBpbXBvcnQgSHR0cFBvbGxpbmdFdmVudExpc3RlbmVyCitmcm9tIC4u
LnRlc3RpbmcuZXZlbnRfZGlzcGF0Y2hlciBpbXBvcnQgREVWSUNFUworZnJvbSAuLi51dGlscy5z
ZXJpYWxpemVyIGltcG9ydCBzZXJpYWxpemVfZGV2aWNlCitmcm9tIC4uLnRlc3RpbmcuZGV2aWNl
c19tYW5hZ2VyIGltcG9ydCBERVZJQ0VfVElNRU9VVCwgUkVDT05ORUNUX1RJTUUKK2Zyb20gLi4u
ZGF0YS5leGNlcHRpb25zLm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0
aW9uCisKKworY2xhc3MgRGV2aWNlc0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGRldmljZXNfbWFuYWdlciwgZXZlbnRfZGlzcGF0Y2hlciwgd2ViX3Jvb3Qp
OgorICAgICAgICBzdXBlcihEZXZpY2VzQXBpSGFuZGxlciwgc2VsZikuX19pbml0X18od2ViX3Jv
b3QpCisgICAgICAgIHNlbGYuX2RldmljZXNfbWFuYWdlciA9IGRldmljZXNfbWFuYWdlcgorICAg
ICAgICBzZWxmLl9ldmVudF9kaXNwYXRjaGVyID0gZXZlbnRfZGlzcGF0Y2hlcgorCisgICAgZGVm
IGNyZWF0ZV9kZXZpY2Uoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB1c2VyX2FnZW50ID0gcmVxdWVzdC5oZWFkZXJzW2IidXNlci1hZ2VudCJdLmRl
Y29kZSgidXRmLTgiKQorCisgICAgICAgICAgICBkZXZpY2UgPSBzZWxmLl9kZXZpY2VzX21hbmFn
ZXIuY3JlYXRlX2RldmljZSh1c2VyX2FnZW50KQorCisgICAgICAgICAgICBzZWxmLnNlbmRfanNv
bih7InRva2VuIjogZGV2aWNlLnRva2VufSwgcmVzcG9uc2UpCisgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0byBjcmVh
dGUgZGV2aWNlIikKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorCisgICAgZGVm
IHJlYWRfZGV2aWNlKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVzdCkKKyAgICAgICAgICAg
IHRva2VuID0gdXJpX3BhcnRzWzJdCisKKyAgICAgICAgICAgIGRldmljZSA9IHNlbGYuX2Rldmlj
ZXNfbWFuYWdlci5yZWFkX2RldmljZSh0b2tlbikKKworICAgICAgICAgICAgZGV2aWNlX29iamVj
dCA9IHNlcmlhbGl6ZV9kZXZpY2UoZGV2aWNlKQorCisgICAgICAgICAgICBzZWxmLnNlbmRfanNv
bihkZXZpY2Vfb2JqZWN0LCByZXNwb25zZSkKKyAgICAgICAgZXhjZXB0IE5vdEZvdW5kRXhjZXB0
aW9uOgorICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBk
ZXZpY2UiKQorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24oIkZhaWxlZCB0
byByZWFkIGRldmljZSIpCisgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKworICAg
IGRlZiByZWFkX2RldmljZXMoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBkZXZpY2VzID0gc2VsZi5fZGV2aWNlc19tYW5hZ2VyLnJlYWRfZGV2aWNl
cygpCisKKyAgICAgICAgICAgIGRldmljZV9vYmplY3RzID0gW10KKyAgICAgICAgICAgIGZvciBk
ZXZpY2UgaW4gZGV2aWNlczoKKyAgICAgICAgICAgICAgICBkZXZpY2Vfb2JqZWN0ID0gc2VyaWFs
aXplX2RldmljZShkZXZpY2UpCisgICAgICAgICAgICAgICAgZGV2aWNlX29iamVjdHMuYXBwZW5k
KGRldmljZV9vYmplY3QpCisKKyAgICAgICAgICAgIHNlbGYuc2VuZF9qc29uKGRldmljZV9vYmpl
Y3RzLCByZXNwb25zZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNl
bGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgZGV2aWNlcyIpCisgICAgICAgICAg
ICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKworICAgIGRlZiByZWdpc3Rlcl9ldmVudF9saXN0ZW5l
cihzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVy
aV9wYXJ0cyA9IHNlbGYucGFyc2VfdXJpKHJlcXVlc3QpCisgICAgICAgICAgICB0b2tlbiA9IHVy
aV9wYXJ0c1syXQorICAgICAgICAgICAgcXVlcnkgPSBzZWxmLnBhcnNlX3F1ZXJ5X3BhcmFtZXRl
cnMocmVxdWVzdCkKKworICAgICAgICAgICAgaWYgdSJkZXZpY2VfdG9rZW4iIGluIHF1ZXJ5Ogor
ICAgICAgICAgICAgICAgIHNlbGYuX2RldmljZXNfbWFuYWdlci5yZWZyZXNoX2RldmljZShxdWVy
eVsiZGV2aWNlX3Rva2VuIl0pCisKKyAgICAgICAgICAgIGV2ZW50ID0gdGhyZWFkaW5nLkV2ZW50
KCkKKyAgICAgICAgICAgIHRpbWVyID0gdGhyZWFkaW5nLlRpbWVyKAorICAgICAgICAgICAgICAg
IChERVZJQ0VfVElNRU9VVCAtIFJFQ09OTkVDVF9USU1FKSAvIDEwMDAsCisgICAgICAgICAgICAg
ICAgZXZlbnQuc2V0LAorICAgICAgICAgICAgICAgIFtdKQorICAgICAgICAgICAgdGltZXIuc3Rh
cnQoKQorICAgICAgICAgICAgaHR0cF9wb2xsaW5nX2V2ZW50X2xpc3RlbmVyID0gSHR0cFBvbGxp
bmdFdmVudExpc3RlbmVyKHRva2VuLCBldmVudCkKKyAgICAgICAgICAgIGV2ZW50X2xpc3RlbmVy
X3Rva2VuID0gc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5hZGRfZXZlbnRfbGlzdGVuZXIoaHR0cF9w
b2xsaW5nX2V2ZW50X2xpc3RlbmVyKQorCisgICAgICAgICAgICBldmVudC53YWl0KCkKKworICAg
ICAgICAgICAgbWVzc2FnZSA9IGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lci5tZXNzYWdlCisg
ICAgICAgICAgICBpZiBtZXNzYWdlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYu
c2VuZF9qc29uKGRhdGE9bWVzc2FnZSwgcmVzcG9uc2U9cmVzcG9uc2UpCisgICAgICAgICAgICBz
ZWxmLl9ldmVudF9kaXNwYXRjaGVyLnJlbW92ZV9ldmVudF9saXN0ZW5lcihldmVudF9saXN0ZW5l
cl90b2tlbikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFu
ZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVyIikKKyAgICAg
ICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorCisgICAgZGVmIHJlZ2lzdGVyX2dsb2JhbF9l
dmVudF9saXN0ZW5lcihzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHF1ZXJ5ID0gc2VsZi5wYXJzZV9xdWVyeV9wYXJhbWV0ZXJzKHJlcXVlc3QpCisK
KyAgICAgICAgICAgIGlmIHUiZGV2aWNlX3Rva2VuIiBpbiBxdWVyeToKKyAgICAgICAgICAgICAg
ICBzZWxmLl9kZXZpY2VzX21hbmFnZXIucmVmcmVzaF9kZXZpY2UocXVlcnlbImRldmljZV90b2tl
biJdKQorCisgICAgICAgICAgICBldmVudCA9IHRocmVhZGluZy5FdmVudCgpCisgICAgICAgICAg
ICB0aW1lciA9IHRocmVhZGluZy5UaW1lcigKKyAgICAgICAgICAgICAgICAoREVWSUNFX1RJTUVP
VVQgLSBSRUNPTk5FQ1RfVElNRSkgLyAxMDAwLAorICAgICAgICAgICAgICAgIGV2ZW50LnNldCwK
KyAgICAgICAgICAgICAgICBbXSkKKyAgICAgICAgICAgIHRpbWVyLnN0YXJ0KCkKKyAgICAgICAg
ICAgIGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lciA9IEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5l
cihERVZJQ0VTLCBldmVudCkKKyAgICAgICAgICAgIGV2ZW50X2xpc3RlbmVyX3Rva2VuID0gc2Vs
Zi5fZXZlbnRfZGlzcGF0Y2hlci5hZGRfZXZlbnRfbGlzdGVuZXIoaHR0cF9wb2xsaW5nX2V2ZW50
X2xpc3RlbmVyKQorCisgICAgICAgICAgICBldmVudC53YWl0KCkKKworICAgICAgICAgICAgbWVz
c2FnZSA9IGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lci5tZXNzYWdlCisgICAgICAgICAgICBp
ZiBtZXNzYWdlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9qc29uKGRh
dGE9bWVzc2FnZSwgcmVzcG9uc2U9cmVzcG9uc2UpCisgICAgICAgICAgICBzZWxmLl9ldmVudF9k
aXNwYXRjaGVyLnJlbW92ZV9ldmVudF9saXN0ZW5lcihldmVudF9saXN0ZW5lcl90b2tlbikKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlv
bih1IkZhaWxlZCB0byByZWdpc3RlciBnbG9iYWwgZXZlbnQgbGlzdGVuZXIiKQorICAgICAgICAg
ICAgcmVzcG9uc2Uuc3RhdHVzID0gNTAwCisKKyAgICBkZWYgcG9zdF9nbG9iYWxfZXZlbnQoc2Vs
ZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBldmVudCA9
IHt9CisgICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5LmRlY29kZSgidXRmLTgiKQorICAg
ICAgICAgICAgaWYgYm9keSAhPSAiIjoKKyAgICAgICAgICAgICAgICBldmVudCA9IGpzb24ubG9h
ZHMoYm9keSkKKworICAgICAgICAgICAgcXVlcnkgPSBzZWxmLnBhcnNlX3F1ZXJ5X3BhcmFtZXRl
cnMocmVxdWVzdCkKKyAgICAgICAgICAgIGlmIHUiZGV2aWNlX3Rva2VuIiBpbiBxdWVyeToKKyAg
ICAgICAgICAgICAgICBzZWxmLl9kZXZpY2VzX21hbmFnZXIucmVmcmVzaF9kZXZpY2UocXVlcnlb
ImRldmljZV90b2tlbiJdKQorCisgICAgICAgICAgICBldmVudF90eXBlID0gTm9uZQorICAgICAg
ICAgICAgaWYgInR5cGUiIGluIGV2ZW50OgorICAgICAgICAgICAgICAgIGV2ZW50X3R5cGUgPSBl
dmVudFsidHlwZSJdCisgICAgICAgICAgICBkYXRhID0gTm9uZQorICAgICAgICAgICAgaWYgImRh
dGEiIGluIGV2ZW50OgorICAgICAgICAgICAgICAgIGRhdGEgPSBldmVudFsiZGF0YSJdCisgICAg
ICAgICAgICBzZWxmLl9kZXZpY2VzX21hbmFnZXIucG9zdF9nbG9iYWxfZXZlbnQoZXZlbnRfdHlw
ZSwgZGF0YSkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5o
YW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcG9zdCBnbG9iYWwgZXZlbnQiKQorICAgICAgICAg
ICAgcmVzcG9uc2Uuc3RhdHVzID0gNTAwCisKKyAgICBkZWYgcG9zdF9ldmVudChzZWxmLCByZXF1
ZXN0LCByZXNwb25zZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNl
bGYucGFyc2VfdXJpKHJlcXVlc3QpCisgICAgICAgICAgICB0b2tlbiA9IHVyaV9wYXJ0c1syXQor
CisgICAgICAgICAgICBldmVudCA9IHt9CisgICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5
LmRlY29kZSgidXRmLTgiKQorICAgICAgICAgICAgaWYgYm9keSAhPSAiIjoKKyAgICAgICAgICAg
ICAgICBldmVudCA9IGpzb24ubG9hZHMoYm9keSkKKworICAgICAgICAgICAgcXVlcnkgPSBzZWxm
LnBhcnNlX3F1ZXJ5X3BhcmFtZXRlcnMocmVxdWVzdCkKKyAgICAgICAgICAgIGlmIHUiZGV2aWNl
X3Rva2VuIiBpbiBxdWVyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9kZXZpY2VzX21hbmFnZXIu
cmVmcmVzaF9kZXZpY2UocXVlcnlbImRldmljZV90b2tlbiJdKQorCisgICAgICAgICAgICBldmVu
dF90eXBlID0gTm9uZQorICAgICAgICAgICAgaWYgInR5cGUiIGluIGV2ZW50OgorICAgICAgICAg
ICAgICAgIGV2ZW50X3R5cGUgPSBldmVudFsidHlwZSJdCisgICAgICAgICAgICBkYXRhID0gTm9u
ZQorICAgICAgICAgICAgaWYgImRhdGEiIGluIGV2ZW50OgorICAgICAgICAgICAgICAgIGRhdGEg
PSBldmVudFsiZGF0YSJdCisgICAgICAgICAgICBzZWxmLl9kZXZpY2VzX21hbmFnZXIucG9zdF9l
dmVudCh0b2tlbiwgZXZlbnRfdHlwZSwgZGF0YSkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcG9zdCBldmVu
dCIpCisgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA1MDAKKworICAgIGRlZiBoYW5kbGVf
cmVxdWVzdChzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgIG1ldGhvZCA9IHJlcXVl
c3QubWV0aG9kCisgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYucGFyc2VfdXJpKHJlcXVlc3QpCisK
KyAgICAgICAgIyAvYXBpL2RldmljZXMKKyAgICAgICAgaWYgbGVuKHVyaV9wYXJ0cykgPT0gMjoK
KyAgICAgICAgICAgIGlmIG1ldGhvZCA9PSB1IlBPU1QiOgorICAgICAgICAgICAgICAgIHNlbGYu
Y3JlYXRlX2RldmljZShyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICByZXR1cm4K
KyAgICAgICAgICAgIGlmIG1ldGhvZCA9PSB1IkdFVCI6CisgICAgICAgICAgICAgICAgc2VsZi5y
ZWFkX2RldmljZXMocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgIyAvYXBpL2RldmljZXMvPGZ1bmN0aW9uPgorICAgICAgICBpZiBsZW4odXJpX3Bh
cnRzKSA9PSAzOgorICAgICAgICAgICAgZnVuY3Rpb24gPSB1cmlfcGFydHNbMl0KKyAgICAgICAg
ICAgIGlmIG1ldGhvZCA9PSB1IkdFVCI6CisgICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0g
dSJldmVudHMiOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lzdGVyX2dsb2JhbF9ldmVu
dF9saXN0ZW5lcihyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgICAgICAgICAgc2VsZi5yZWFkX2RldmljZShyZXF1ZXN0LCByZXNwb25zZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAiUE9TVCI6Cisg
ICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0gImV2ZW50cyI6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYucG9zdF9nbG9iYWxfZXZlbnQocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgL2FwaS9kZXZpY2VzLzx0b2tlbj4vPGZ1bmN0
aW9uPgorICAgICAgICBpZiBsZW4odXJpX3BhcnRzKSA9PSA0OgorICAgICAgICAgICAgZnVuY3Rp
b24gPSB1cmlfcGFydHNbM10KKyAgICAgICAgICAgIGlmIG1ldGhvZCA9PSB1IkdFVCI6CisgICAg
ICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0gdSJldmVudHMiOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLnJlZ2lzdGVyX2V2ZW50X2xpc3RlbmVyKHJlcXVlc3QsIHJlc3BvbnNlKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAiUE9TVCI6Cisg
ICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0gImV2ZW50cyI6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYucG9zdF9ldmVudChyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvZ2VuZXJhbF9hcGlfaGFuZGxlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9u
ZXR3b3JrL2FwaS9nZW5lcmFsX2FwaV9oYW5kbGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkNTg4ZDEzZTg1
ZTVhN2U2ZDEyMDM4NWMwYmU0Zjk5NTc3ODliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9h
cGkvZ2VuZXJhbF9hcGlfaGFuZGxlci5weQpAQCAtMCwwICsxLDc3IEBACitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2Rl
X2xpdGVyYWxzCisKK2Zyb20gLmFwaV9oYW5kbGVyIGltcG9ydCBBcGlIYW5kbGVyCisKK1RPS0VO
X0xFTkdUSCA9IDM2CisKKworY2xhc3MgR2VuZXJhbEFwaUhhbmRsZXIoQXBpSGFuZGxlcik6Cisg
ICAgZGVmIF9faW5pdF9fKAorICAgICAgICBzZWxmLAorICAgICAgICB3ZWJfcm9vdCwKKyAgICAg
ICAgcmVhZF9zZXNzaW9uc19lbmFibGVkLAorICAgICAgICBpbXBvcnRfcmVzdWx0c19lbmFibGVk
LAorICAgICAgICByZXBvcnRzX2VuYWJsZWQsCisgICAgICAgIHZlcnNpb25fc3RyaW5nLAorICAg
ICAgICB0ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQsCisgICAgICAgIHRlc3RfZmlsZV9zZWxl
Y3Rpb25fZW5hYmxlZAorICAgICk6CisgICAgICAgIHN1cGVyKEdlbmVyYWxBcGlIYW5kbGVyLCBz
ZWxmKS5fX2luaXRfXyh3ZWJfcm9vdCkKKyAgICAgICAgc2VsZi5yZWFkX3Nlc3Npb25zX2VuYWJs
ZWQgPSByZWFkX3Nlc3Npb25zX2VuYWJsZWQKKyAgICAgICAgc2VsZi5pbXBvcnRfcmVzdWx0c19l
bmFibGVkID0gaW1wb3J0X3Jlc3VsdHNfZW5hYmxlZAorICAgICAgICBzZWxmLnJlcG9ydHNfZW5h
YmxlZCA9IHJlcG9ydHNfZW5hYmxlZAorICAgICAgICBzZWxmLnZlcnNpb25fc3RyaW5nID0gdmVy
c2lvbl9zdHJpbmcKKyAgICAgICAgc2VsZi50ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQgPSB0
ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQKKyAgICAgICAgc2VsZi50ZXN0X2ZpbGVfc2VsZWN0
aW9uX2VuYWJsZWQgPSB0ZXN0X2ZpbGVfc2VsZWN0aW9uX2VuYWJsZWQKKworICAgIGRlZiByZWFk
X3N0YXR1cyhzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgICAgICAgICAiZm9ybWF0IjogImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAg
ICJkYXRhIjogeworICAgICAgICAgICAgICAgICAgICAidmVyc2lvbl9zdHJpbmciOiBzZWxmLnZl
cnNpb25fc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAicmVhZF9zZXNzaW9uc19lbmFibGVk
Ijogc2VsZi5yZWFkX3Nlc3Npb25zX2VuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICJpbXBv
cnRfcmVzdWx0c19lbmFibGVkIjogc2VsZi5pbXBvcnRfcmVzdWx0c19lbmFibGVkLAorICAgICAg
ICAgICAgICAgICAgICAicmVwb3J0c19lbmFibGVkIjogc2VsZi5yZXBvcnRzX2VuYWJsZWQsCisg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQiOiBzZWxmLnRl
c3RfdHlwZV9zZWxlY3Rpb25fZW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgInRlc3RfZmls
ZV9zZWxlY3Rpb25fZW5hYmxlZCI6IHNlbGYudGVzdF9maWxlX3NlbGVjdGlvbl9lbmFibGVkCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBzZXJ2
ZXIgY29uZmlndXJhdGlvbiIpCisgICAgICAgICAgICByZXR1cm4geyJzdGF0dXMiOiA1MDB9CisK
KyAgICBkZWYgaGFuZGxlX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAg
ICBtZXRob2QgPSByZXF1ZXN0Lm1ldGhvZAorICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNl
X3VyaShyZXF1ZXN0KQorCisgICAgICAgIHJlc3VsdCA9IE5vbmUKKyAgICAgICAgIyAvYXBpLzxm
dW5jdGlvbj4KKyAgICAgICAgaWYgbGVuKHVyaV9wYXJ0cykgPT0gMjoKKyAgICAgICAgICAgIGZ1
bmN0aW9uID0gdXJpX3BhcnRzWzFdCisgICAgICAgICAgICBpZiBtZXRob2QgPT0gIkdFVCI6Cisg
ICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24gPT0gInN0YXR1cyI6CisgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IHNlbGYucmVhZF9zdGF0dXMoKQorCisgICAgICAgIGlmIHJlc3VsdCBpcyBO
b25lOgorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgICAgICByZXR1
cm4KKworICAgICAgICBmb3JtYXQgPSBOb25lCisgICAgICAgIGlmICJmb3JtYXQiIGluIHJlc3Vs
dDoKKyAgICAgICAgICAgIGZvcm1hdCA9IHJlc3VsdFsiZm9ybWF0Il0KKyAgICAgICAgICAgIGlm
IGZvcm1hdCA9PSAiYXBwbGljYXRpb24vanNvbiI6CisgICAgICAgICAgICAgICAgZGF0YSA9IE5v
bmUKKyAgICAgICAgICAgICAgICBpZiAiZGF0YSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAg
ICAgICBkYXRhID0gcmVzdWx0WyJkYXRhIl0KKyAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDAK
KyAgICAgICAgICAgICAgICBpZiAic3RhdHVzIiBpbiByZXN1bHQ6CisgICAgICAgICAgICAgICAg
ICAgIHN0YXR1cyA9IHJlc3VsdFsic3RhdHVzIl0KKyAgICAgICAgICAgICAgICBzZWxmLnNlbmRf
anNvbihkYXRhLCByZXNwb25zZSwgc3RhdHVzKQorICAgICAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgIHN0YXR1cyA9IDQwNAorICAgICAgICBpZiAic3RhdHVzIiBpbiByZXN1bHQ6CisgICAg
ICAgICAgICBzdGF0dXMgPSByZXN1bHRbInN0YXR1cyJdCisgICAgICAgIHJlc3BvbnNlLnN0YXR1
cyA9IHN0YXR1cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Jlc3VsdHNfYXBpX2hhbmRsZXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
bmV0d29yay9hcGkvcmVzdWx0c19hcGlfaGFuZGxlci5weQppbmRleCAyODVlZmU1NmE4NDVhMGZj
ODFiMDk2MjljMDllZTE2OWY0ZjVjZTgyLi4xZWZhOTg4YWU3NjQ4NWI1ODdmMGRlZGNlZDZlMjEw
ZWU3MDA4Nzg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvcmVzdWx0c19hcGlfaGFuZGxlci5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvbmV0d29yay9hcGkvcmVzdWx0c19hcGlfaGFuZGxlci5weQpAQCAtNiw5ICs2LDEwIEBAIGZy
b20gLi4uZGF0YS5leGNlcHRpb25zLmludmFsaWRfZGF0YV9leGNlcHRpb24gaW1wb3J0IEludmFs
aWREYXRhRXhjZXB0aW9uCiAKIAogY2xhc3MgUmVzdWx0c0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlc3VsdHNfbWFuYWdlciwgd2ViX3Jvb3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZXN1bHRzX21hbmFnZXIsIHNlc3Npb25fbWFuYWdlciwgd2Vi
X3Jvb3QpOgogICAgICAgICBzdXBlcihSZXN1bHRzQXBpSGFuZGxlciwgc2VsZikuX19pbml0X18o
d2ViX3Jvb3QpCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfbWFuYWdlciA9IHJlc3VsdHNfbWFuYWdl
cgorICAgICAgICBzZWxmLl9zZXNzaW9uc19tYW5hZ2VyID0gc2Vzc2lvbl9tYW5hZ2VyCiAKICAg
ICBkZWYgY3JlYXRlX3Jlc3VsdChzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgIHRy
eToKQEAgLTMxLDYgKzMyLDExIEBAIGNsYXNzIFJlc3VsdHNBcGlIYW5kbGVyKEFwaUhhbmRsZXIp
OgogICAgICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVzdCkKICAgICAg
ICAgICAgIHRva2VuID0gdXJpX3BhcnRzWzJdCiAKKyAgICAgICAgICAgIHNlc3Npb24gPSBzZWxm
Ll9zZXNzaW9uc19tYW5hZ2VyLnJlYWRfc2Vzc2lvbih0b2tlbikKKyAgICAgICAgICAgIGlmIHNl
c3Npb24gaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA0MDQKKyAg
ICAgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICAgICAgcmVzdWx0cyA9IHNlbGYuX3Jlc3Vs
dHNfbWFuYWdlci5yZWFkX3Jlc3VsdHModG9rZW4pCiAKICAgICAgICAgICAgIHNlbGYuc2VuZF9q
c29uKHJlc3BvbnNlPXJlc3BvbnNlLCBkYXRhPXJlc3VsdHMpCkBAIC01MiwxOSArNTgsNiBAQCBj
bGFzcyBSZXN1bHRzQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgIHNlbGYuaGFu
ZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgY29tcGFjdCByZXN1bHRzIikKICAgICAgICAg
ICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAogCi0gICAgZGVmIHJlYWRfcmVzdWx0c19jb25maWco
c2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBv
cnRfZW5hYmxlZCA9IHNlbGYuX3Jlc3VsdHNfbWFuYWdlci5pc19pbXBvcnRfZW5hYmxlZCgpCi0g
ICAgICAgICAgICByZXBvcnRzX2VuYWJsZWQgPSBzZWxmLl9yZXN1bHRzX21hbmFnZXIuYXJlX3Jl
cG9ydHNfZW5hYmxlZCgpCi0KLSAgICAgICAgICAgIHNlbGYuc2VuZF9qc29uKHsKLSAgICAgICAg
ICAgICAgICAiaW1wb3J0X2VuYWJsZWQiOiBpbXBvcnRfZW5hYmxlZCwKLSAgICAgICAgICAgICAg
ICAicmVwb3J0c19lbmFibGVkIjogcmVwb3J0c19lbmFibGVkCi0gICAgICAgICAgICB9LCByZXNw
b25zZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHNlbGYuaGFuZGxl
X2V4Y2VwdGlvbigiRmFpbGVkIHRvIHJlYWQgcmVzdWx0cyBjb25maWd1cmF0aW9uIikKLSAgICAg
ICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAotCiAgICAgZGVmIHJlYWRfcmVzdWx0c19hcGlf
d3B0X3JlcG9ydF91cmwoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICB1cmlfcGFydHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQpAQCAtMTEyLDYg
KzEwNSwyMCBAQCBjbGFzcyBSZXN1bHRzQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAg
ICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIGRvd25sb2FkIGFwaSBqc29uIikK
ICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAogCisgICAgZGVmIGltcG9ydF9yZXN1
bHRzX2FwaV9qc29uKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91cmkocmVxdWVzdCkKKyAgICAgICAgICAg
IHRva2VuID0gdXJpX3BhcnRzWzJdCisgICAgICAgICAgICBhcGkgPSB1cmlfcGFydHNbM10KKyAg
ICAgICAgICAgIGJsb2IgPSByZXF1ZXN0LmJvZHkKKworICAgICAgICAgICAgc2VsZi5fcmVzdWx0
c19tYW5hZ2VyLmltcG9ydF9yZXN1bHRzX2FwaV9qc29uKHRva2VuLCBhcGksIGJsb2IpCisKKyAg
ICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDIwMAorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gdXBsb2FkIGFw
aSBqc29uIikKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorCiAgICAgZGVmIGRv
d25sb2FkX3Jlc3VsdHNfYWxsX2FwaV9qc29ucyhzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYucGFyc2VfdXJpKHJlcXVl
c3QpCkBAIC0xODIsMTIgKzE4OSw4IEBAIGNsYXNzIFJlc3VsdHNBcGlIYW5kbGVyKEFwaUhhbmRs
ZXIpOgogICAgICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgICAgICBpZiBtZXRob2QgPT0g
IkdFVCI6Ci0gICAgICAgICAgICAgICAgaWYgdXJpX3BhcnRzWzJdID09ICJjb25maWciOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnJlYWRfcmVzdWx0c19jb25maWcocmVxdWVzdCwgcmVzcG9u
c2UpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHNlbGYucmVhZF9yZXN1bHRzKHJlcXVlc3QsIHJlc3BvbnNlKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICBzZWxmLnJlYWRfcmVz
dWx0cyhyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICByZXR1cm4KIAogICAgICAg
ICAjIC9hcGkvcmVzdWx0cy88dG9rZW4+LzxmdW5jdGlvbj4KICAgICAgICAgaWYgbGVuKHVyaV9w
YXJ0cykgPT0gNDoKQEAgLTIxOSw1ICsyMjIsOSBAQCBjbGFzcyBSZXN1bHRzQXBpSGFuZGxlcihB
cGlIYW5kbGVyKToKICAgICAgICAgICAgICAgICBpZiBmdW5jdGlvbiA9PSAianNvbiI6CiAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuZG93bmxvYWRfcmVzdWx0c19hcGlfanNvbihyZXF1ZXN0LCBy
ZXNwb25zZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBtZXRo
b2QgPT0gIlBPU1QiOgorICAgICAgICAgICAgICAgIGlmIGZ1bmN0aW9uID09ICJqc29uIjoKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5pbXBvcnRfcmVzdWx0c19hcGlfanNvbihyZXF1ZXN0LCBy
ZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgcmVzcG9uc2Uu
c3RhdHVzID0gNDA0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvc2Vzc2lvbnNfYXBpX2hhbmRsZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvbmV0d29yay9hcGkvc2Vzc2lvbnNfYXBpX2hhbmRsZXIucHkKaW5kZXggYzUwNDBhZGRmNzBk
ODczZTA5YWI1N2E1YzQ5NWRhYWQzOWIzNjZmNS4uZGZmY2E0M2I3N2M1NWNhMjZhOWM2YzAwMzNk
NGE2OTkwODc1Mzc2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Nlc3Npb25zX2FwaV9oYW5kbGVy
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS9uZXR3b3JrL2FwaS9zZXNzaW9uc19hcGlfaGFuZGxlci5weQpAQCAtNiwxMjEgKzYs
MTg3IEBAIGZyb20gLmFwaV9oYW5kbGVyIGltcG9ydCBBcGlIYW5kbGVyCiBmcm9tIC4uLnV0aWxz
LnNlcmlhbGl6ZXIgaW1wb3J0IHNlcmlhbGl6ZV9zZXNzaW9uCiBmcm9tIC4uLmRhdGEuZXhjZXB0
aW9ucy5ub3RfZm91bmRfZXhjZXB0aW9uIGltcG9ydCBOb3RGb3VuZEV4Y2VwdGlvbgogZnJvbSAu
Li5kYXRhLmV4Y2VwdGlvbnMuaW52YWxpZF9kYXRhX2V4Y2VwdGlvbiBpbXBvcnQgSW52YWxpZERh
dGFFeGNlcHRpb24KLWZyb20gLi4uZGF0YS5odHRwX3BvbGxpbmdfY2xpZW50IGltcG9ydCBIdHRw
UG9sbGluZ0NsaWVudAorZnJvbSAuLi5kYXRhLmh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lciBp
bXBvcnQgSHR0cFBvbGxpbmdFdmVudExpc3RlbmVyCiAKIFRPS0VOX0xFTkdUSCA9IDM2CiAKIAog
Y2xhc3MgU2Vzc2lvbnNBcGlIYW5kbGVyKEFwaUhhbmRsZXIpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBzZXNzaW9uc19tYW5hZ2VyLCByZXN1bHRzX21hbmFnZXIsIGV2ZW50X2Rpc3BhdGNoZXIs
IHdlYl9yb290KToKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgIHNlbGYsCisgICAgICAgIHNl
c3Npb25zX21hbmFnZXIsCisgICAgICAgIHJlc3VsdHNfbWFuYWdlciwKKyAgICAgICAgZXZlbnRf
ZGlzcGF0Y2hlciwKKyAgICAgICAgd2ViX3Jvb3QsCisgICAgICAgIHJlYWRfc2Vzc2lvbnNfZW5h
YmxlZAorICAgICk6CiAgICAgICAgIHN1cGVyKFNlc3Npb25zQXBpSGFuZGxlciwgc2VsZikuX19p
bml0X18od2ViX3Jvb3QpCiAgICAgICAgIHNlbGYuX3Nlc3Npb25zX21hbmFnZXIgPSBzZXNzaW9u
c19tYW5hZ2VyCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfbWFuYWdlciA9IHJlc3VsdHNfbWFuYWdl
cgogICAgICAgICBzZWxmLl9ldmVudF9kaXNwYXRjaGVyID0gZXZlbnRfZGlzcGF0Y2hlcgorICAg
ICAgICBzZWxmLl9yZWFkX3Nlc3Npb25zX2VuYWJsZWQgPSByZWFkX3Nlc3Npb25zX2VuYWJsZWQK
IAotICAgIGRlZiBjcmVhdGVfc2Vzc2lvbihzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAg
ZGVmIGNyZWF0ZV9zZXNzaW9uKHNlbGYsIGJvZHksIGhlYWRlcnMpOgogICAgICAgICB0cnk6CiAg
ICAgICAgICAgICBjb25maWcgPSB7fQotICAgICAgICAgICAgYm9keSA9IHJlcXVlc3QuYm9keS5k
ZWNvZGUoInV0Zi04IikKKyAgICAgICAgICAgIGJvZHkgPSBib2R5LmRlY29kZSgidXRmLTgiKQog
ICAgICAgICAgICAgaWYgYm9keSAhPSAiIjoKICAgICAgICAgICAgICAgICBjb25maWcgPSBqc29u
LmxvYWRzKGJvZHkpCiAgICAgICAgICAgICB0ZXN0cyA9IHt9CiAgICAgICAgICAgICBpZiAidGVz
dHMiIGluIGNvbmZpZzoKICAgICAgICAgICAgICAgICB0ZXN0cyA9IGNvbmZpZ1sidGVzdHMiXQot
ICAgICAgICAgICAgdHlwZXMgPSBOb25lCisgICAgICAgICAgICB0ZXN0X3R5cGVzID0gTm9uZQog
ICAgICAgICAgICAgaWYgInR5cGVzIiBpbiBjb25maWc6Ci0gICAgICAgICAgICAgICAgdHlwZXMg
PSBjb25maWdbInR5cGVzIl0KKyAgICAgICAgICAgICAgICB0ZXN0X3R5cGVzID0gY29uZmlnWyJ0
eXBlcyJdCiAgICAgICAgICAgICB0aW1lb3V0cyA9IHt9CiAgICAgICAgICAgICBpZiAidGltZW91
dHMiIGluIGNvbmZpZzoKICAgICAgICAgICAgICAgICB0aW1lb3V0cyA9IGNvbmZpZ1sidGltZW91
dHMiXQogICAgICAgICAgICAgcmVmZXJlbmNlX3Rva2VucyA9IFtdCiAgICAgICAgICAgICBpZiAi
cmVmZXJlbmNlX3Rva2VucyIgaW4gY29uZmlnOgogICAgICAgICAgICAgICAgIHJlZmVyZW5jZV90
b2tlbnMgPSBjb25maWdbInJlZmVyZW5jZV90b2tlbnMiXQotICAgICAgICAgICAgd2ViaG9va191
cmxzID0gW10KLSAgICAgICAgICAgIGlmICJ3ZWJob29rX3VybHMiIGluIGNvbmZpZzoKLSAgICAg
ICAgICAgICAgICB3ZWJob29rX3VybHMgPSBjb25maWdbIndlYmhvb2tfdXJscyJdCi0gICAgICAg
ICAgICB1c2VyX2FnZW50ID0gcmVxdWVzdC5oZWFkZXJzW2IidXNlci1hZ2VudCJdLmRlY29kZSgi
dXRmLTgiKQorICAgICAgICAgICAgdXNlcl9hZ2VudCA9IGhlYWRlcnNbYiJ1c2VyLWFnZW50Il0u
ZGVjb2RlKCJ1dGYtOCIpCiAgICAgICAgICAgICBsYWJlbHMgPSBbXQogICAgICAgICAgICAgaWYg
ImxhYmVscyIgaW4gY29uZmlnOgogICAgICAgICAgICAgICAgIGxhYmVscyA9IGNvbmZpZ1sibGFi
ZWxzIl0KICAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZSA9IE5vbmUKICAgICAgICAgICAgIGlm
ICJleHBpcmF0aW9uX2RhdGUiIGluIGNvbmZpZzoKICAgICAgICAgICAgICAgICBleHBpcmF0aW9u
X2RhdGUgPSBjb25maWdbImV4cGlyYXRpb25fZGF0ZSJdCisgICAgICAgICAgICB0eXBlID0gTm9u
ZQorICAgICAgICAgICAgaWYgInR5cGUiIGluIGNvbmZpZzoKKyAgICAgICAgICAgICAgICB0eXBl
ID0gY29uZmlnWyJ0eXBlIl0KIAogICAgICAgICAgICAgc2Vzc2lvbiA9IHNlbGYuX3Nlc3Npb25z
X21hbmFnZXIuY3JlYXRlX3Nlc3Npb24oCiAgICAgICAgICAgICAgICAgdGVzdHMsCi0gICAgICAg
ICAgICAgICAgdHlwZXMsCisgICAgICAgICAgICAgICAgdGVzdF90eXBlcywKICAgICAgICAgICAg
ICAgICB0aW1lb3V0cywKICAgICAgICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5zLAotICAgICAg
ICAgICAgICAgIHdlYmhvb2tfdXJscywKICAgICAgICAgICAgICAgICB1c2VyX2FnZW50LAogICAg
ICAgICAgICAgICAgIGxhYmVscywKLSAgICAgICAgICAgICAgICBleHBpcmF0aW9uX2RhdGUKKyAg
ICAgICAgICAgICAgICBleHBpcmF0aW9uX2RhdGUsCisgICAgICAgICAgICAgICAgdHlwZQogICAg
ICAgICAgICAgKQogCi0gICAgICAgICAgICBzZWxmLnNlbmRfanNvbih7InRva2VuIjogc2Vzc2lv
bi50b2tlbn0sIHJlc3BvbnNlKQorICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAg
ICAiZm9ybWF0IjogImFwcGxpY2F0aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICJkYXRhIjog
eyJ0b2tlbiI6IHNlc3Npb24udG9rZW59CisgICAgICAgICAgICB9CisKICAgICAgICAgZXhjZXB0
IEludmFsaWREYXRhRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXhjZXB0aW9u
KCJGYWlsZWQgdG8gY3JlYXRlIHNlc3Npb24iKQotICAgICAgICAgICAgc2VsZi5zZW5kX2pzb24o
eyJlcnJvciI6ICJJbnZhbGlkIGlucHV0IGRhdGEhIn0sIHJlc3BvbnNlLCA0MDApCisgICAgICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiYXBwbGljYXRpb24vanNv
biIsCisgICAgICAgICAgICAgICAgImRhdGEiOiB7ImVycm9yIjogIkludmFsaWQgaW5wdXQgZGF0
YSEifSwKKyAgICAgICAgICAgICAgICAic3RhdHVzIjogNDAwCisgICAgICAgICAgICB9CiAKICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlv
bigiRmFpbGVkIHRvIGNyZWF0ZSBzZXNzaW9uIikKLSAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1
cyA9IDUwMAorICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjogNTAwfQogCi0gICAgZGVmIHJl
YWRfc2Vzc2lvbihzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CisgICAgZGVmIHJlYWRfc2Vzc2lv
bihzZWxmLCB0b2tlbik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHVyaV9wYXJ0cyA9IHNl
bGYucGFyc2VfdXJpKHJlcXVlc3QpCi0gICAgICAgICAgICB0b2tlbiA9IHVyaV9wYXJ0c1syXQog
CiAgICAgICAgICAgICBzZXNzaW9uID0gc2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5yZWFkX3Nlc3Np
b24odG9rZW4pCiAgICAgICAgICAgICBpZiBzZXNzaW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0Ci0gICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjogNDA0fQogCiAgICAgICAgICAgICBkYXRhID0gc2Vy
aWFsaXplX3Nlc3Npb24oc2Vzc2lvbikKIAotICAgICAgICAgICAgZGVsIGRhdGFbInBlbmRpbmdf
dGVzdHMiXQotICAgICAgICAgICAgZGVsIGRhdGFbInJ1bm5pbmdfdGVzdHMiXQotICAgICAgICAg
ICAgZGVsIGRhdGFbIm1hbGZ1bmN0aW9uaW5nX3Rlc3RzIl0KLSAgICAgICAgICAgIGRlbCBkYXRh
WyJ0ZXN0X3N0YXRlIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJkYXRlX3N0YXJ0ZWQiXQotICAg
ICAgICAgICAgZGVsIGRhdGFbImRhdGVfZmluaXNoZWQiXQotICAgICAgICAgICAgZGVsIGRhdGFb
InN0YXR1cyJdCi0KLSAgICAgICAgICAgIHNlbGYuc2VuZF9qc29uKGRhdGEsIHJlc3BvbnNlKQor
ICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAiZm9ybWF0IjogImFwcGxpY2F0
aW9uL2pzb24iLAorICAgICAgICAgICAgICAgICJkYXRhIjogeworICAgICAgICAgICAgICAgICAg
ICAidG9rZW4iOiBkYXRhWyJ0b2tlbiJdLAorICAgICAgICAgICAgICAgICAgICAidGVzdHMiOiBk
YXRhWyJ0ZXN0cyJdLAorICAgICAgICAgICAgICAgICAgICAidHlwZXMiOiBkYXRhWyJ0eXBlcyJd
LAorICAgICAgICAgICAgICAgICAgICAidGltZW91dHMiOiBkYXRhWyJ0aW1lb3V0cyJdLAorICAg
ICAgICAgICAgICAgICAgICAicmVmZXJlbmNlX3Rva2VucyI6IGRhdGFbInJlZmVyZW5jZV90b2tl
bnMiXSwKKyAgICAgICAgICAgICAgICAgICAgInVzZXJfYWdlbnQiOiBkYXRhWyJ1c2VyX2FnZW50
Il0sCisgICAgICAgICAgICAgICAgICAgICJicm93c2VyIjogZGF0YVsiYnJvd3NlciJdLAorICAg
ICAgICAgICAgICAgICAgICAiaXNfcHVibGljIjogZGF0YVsiaXNfcHVibGljIl0sCisgICAgICAg
ICAgICAgICAgICAgICJkYXRlX2NyZWF0ZWQiOiBkYXRhWyJkYXRlX2NyZWF0ZWQiXSwKKyAgICAg
ICAgICAgICAgICAgICAgImxhYmVscyI6IGRhdGFbImxhYmVscyJdCisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAg
c2VsZi5oYW5kbGVfZXhjZXB0aW9uKCJGYWlsZWQgdG8gcmVhZCBzZXNzaW9uIikKLSAgICAgICAg
ICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjog
NTAwfQogCi0gICAgZGVmIHJlYWRfc2Vzc2lvbl9zdGF0dXMoc2VsZiwgcmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGRlZiByZWFkX3Nlc3Npb25zKHNlbGYsIHF1ZXJ5X3BhcmFtZXRlcnMsIHVyaV9w
YXRoKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgdXJpX3BhcnRzID0gc2VsZi5wYXJzZV91
cmkocmVxdWVzdCkKLSAgICAgICAgICAgIHRva2VuID0gdXJpX3BhcnRzWzJdCisgICAgICAgICAg
ICBpbmRleCA9IDAKKyAgICAgICAgICAgIGlmICJpbmRleCIgaW4gcXVlcnlfcGFyYW1ldGVyczoK
KyAgICAgICAgICAgICAgICBpbmRleCA9IGludChxdWVyeV9wYXJhbWV0ZXJzWyJpbmRleCJdKQor
ICAgICAgICAgICAgY291bnQgPSAxMAorICAgICAgICAgICAgaWYgImNvdW50IiBpbiBxdWVyeV9w
YXJhbWV0ZXJzOgorICAgICAgICAgICAgICAgIGNvdW50ID0gaW50KHF1ZXJ5X3BhcmFtZXRlcnNb
ImNvdW50Il0pCisgICAgICAgICAgICBleHBhbmQgPSBbXQorICAgICAgICAgICAgaWYgImV4cGFu
ZCIgaW4gcXVlcnlfcGFyYW1ldGVyczoKKyAgICAgICAgICAgICAgICBleHBhbmQgPSBxdWVyeV9w
YXJhbWV0ZXJzWyJleHBhbmQiXS5zcGxpdCgiLCIpCisKKyAgICAgICAgICAgIHNlc3Npb25fdG9r
ZW5zID0gc2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5yZWFkX3Nlc3Npb25zKGluZGV4PWluZGV4LCBj
b3VudD1jb3VudCkKKyAgICAgICAgICAgIHRvdGFsX3Nlc3Npb25zID0gc2VsZi5fc2Vzc2lvbnNf
bWFuYWdlci5nZXRfdG90YWxfc2Vzc2lvbnMoKQorCisgICAgICAgICAgICBlbWJlZGRlZCA9IHt9
CisKKyAgICAgICAgICAgIGZvciByZWxhdGlvbiBpbiBleHBhbmQ6CisgICAgICAgICAgICAgICAg
aWYgcmVsYXRpb24gPT0gImNvbmZpZ3VyYXRpb24iOgorICAgICAgICAgICAgICAgICAgICBjb25m
aWd1cmF0aW9ucyA9IFtdCisgICAgICAgICAgICAgICAgICAgIGZvciB0b2tlbiBpbiBzZXNzaW9u
X3Rva2VuczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucmVhZF9zZXNz
aW9uKHRva2VuKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgInN0YXR1cyIgaW4gcmVzdWx0
IGFuZCByZXN1bHRbInN0YXR1cyJdICE9IDIwMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5k
KHJlc3VsdFsiZGF0YSJdKQorICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZFsiY29uZmlndXJh
dGlvbiJdID0gY29uZmlndXJhdGlvbnMKKworICAgICAgICAgICAgICAgIGlmIHJlbGF0aW9uID09
ICJzdGF0dXMiOgorICAgICAgICAgICAgICAgICAgICBzdGF0dXNlcyA9IFtdCisgICAgICAgICAg
ICAgICAgICAgIGZvciB0b2tlbiBpbiBzZXNzaW9uX3Rva2VuczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IHNlbGYucmVhZF9zZXNzaW9uX3N0YXR1cyh0b2tlbikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICJzdGF0dXMiIGluIHJlc3VsdCBhbmQgcmVzdWx0WyJzdGF0dXMi
XSAhPSAyMDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1c2VzLmFwcGVuZChyZXN1bHRbImRhdGEiXSkKKyAgICAgICAg
ICAgICAgICAgICAgZW1iZWRkZWRbInN0YXR1cyJdID0gc3RhdHVzZXMKKworICAgICAgICAgICAg
dXJpcyA9IHsKKyAgICAgICAgICAgICAgICAic2VsZiI6IHVyaV9wYXRoLAorICAgICAgICAgICAg
ICAgICJjb25maWd1cmF0aW9uIjogc2VsZi5fd2ViX3Jvb3QgKyAiYXBpL3Nlc3Npb25zL3t0b2tl
bn0iLAorICAgICAgICAgICAgICAgICJzdGF0dXMiOiBzZWxmLl93ZWJfcm9vdCArICJhcGkvc2Vz
c2lvbnMve3Rva2VufS9zdGF0dXMiCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRhdGEg
PSBzZWxmLmNyZWF0ZV9oYWxfbGlzdChzZXNzaW9uX3Rva2VucywgdXJpcywgaW5kZXgsIGNvdW50
LCB0b3RhbD10b3RhbF9zZXNzaW9ucykKKworICAgICAgICAgICAgaWYgbGVuKGVtYmVkZGVkKSA+
IDA6CisgICAgICAgICAgICAgICAgZGF0YVsiX2VtYmVkZGVkIl0gPSBlbWJlZGRlZAorCisgICAg
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICJmb3JtYXQiOiAiYXBwbGljYXRpb24v
anNvbiIsCisgICAgICAgICAgICAgICAgImRhdGEiOiBkYXRhCisgICAgICAgICAgICB9CisgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmhhbmRsZV9leGNlcHRpb24o
IkZhaWxlZCB0byByZWFkIHNlc3Npb24iKQorICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjog
NTAwfQogCisgICAgZGVmIHJlYWRfc2Vzc2lvbl9zdGF0dXMoc2VsZiwgdG9rZW4pOgorICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBzZXNzaW9uID0gc2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5yZWFk
X3Nlc3Npb25fc3RhdHVzKHRva2VuKQogICAgICAgICAgICAgaWYgc2Vzc2lvbiBpcyBOb25lOgot
ICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDQwNAotICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAgICAgICAgIHJldHVybiB7InN0YXR1cyI6IDQwNH0KKwogICAgICAgICAg
ICAgZGF0YSA9IHNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb24pCiAKLSAgICAgICAgICAgIGRlbCBk
YXRhWyJ0ZXN0cyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsicGVuZGluZ190ZXN0cyJdCi0gICAg
ICAgICAgICBkZWwgZGF0YVsicnVubmluZ190ZXN0cyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsi
bWFsZnVuY3Rpb25pbmdfdGVzdHMiXQotICAgICAgICAgICAgZGVsIGRhdGFbInR5cGVzIl0KLSAg
ICAgICAgICAgIGRlbCBkYXRhWyJ0ZXN0X3N0YXRlIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJs
YXN0X2NvbXBsZXRlZF90ZXN0Il0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJ1c2VyX2FnZW50Il0K
LSAgICAgICAgICAgIGRlbCBkYXRhWyJ0aW1lb3V0cyJdCi0gICAgICAgICAgICBkZWwgZGF0YVsi
YnJvd3NlciJdCi0gICAgICAgICAgICBkZWwgZGF0YVsiaXNfcHVibGljIl0KLSAgICAgICAgICAg
IGRlbCBkYXRhWyJyZWZlcmVuY2VfdG9rZW5zIl0KLSAgICAgICAgICAgIGRlbCBkYXRhWyJ3ZWJo
b29rX3VybHMiXQotCi0gICAgICAgICAgICBzZWxmLnNlbmRfanNvbihkYXRhLCByZXNwb25zZSkK
KyAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgImZvcm1hdCI6ICJhcHBsaWNh
dGlvbi9qc29uIiwKKyAgICAgICAgICAgICAgICAiZGF0YSI6IHsKKyAgICAgICAgICAgICAgICAg
ICAgInRva2VuIjogZGF0YVsidG9rZW4iXSwKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
IGRhdGFbInN0YXR1cyJdLAorICAgICAgICAgICAgICAgICAgICAiZGF0ZV9zdGFydGVkIjogZGF0
YVsiZGF0ZV9zdGFydGVkIl0sCisgICAgICAgICAgICAgICAgICAgICJkYXRlX2ZpbmlzaGVkIjog
ZGF0YVsiZGF0ZV9maW5pc2hlZCJdLAorICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvbl9k
YXRlIjogZGF0YVsiZXhwaXJhdGlvbl9kYXRlIl0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICBzZWxmLmhhbmRs
ZV9leGNlcHRpb24oIkZhaWxlZCB0byByZWFkIHNlc3Npb24gc3RhdHVzIikKLSAgICAgICAgICAg
IHJlc3BvbnNlLnN0YXR1cyA9IDUwMAorICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjogNTAw
fQogCiAgICAgZGVmIHJlYWRfcHVibGljX3Nlc3Npb25zKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNl
KToKICAgICAgICAgdHJ5OgpAQCAtMTQ0LDI2ICsyMTAsMjYgQEAgY2xhc3MgU2Vzc2lvbnNBcGlI
YW5kbGVyKEFwaUhhbmRsZXIpOgogICAgICAgICAgICAgdGVzdHMgPSB7fQogICAgICAgICAgICAg
aWYgInRlc3RzIiBpbiBjb25maWc6CiAgICAgICAgICAgICAgICAgdGVzdHMgPSBjb25maWdbInRl
c3RzIl0KLSAgICAgICAgICAgIHR5cGVzID0gTm9uZQorICAgICAgICAgICAgdGVzdF90eXBlcyA9
IE5vbmUKICAgICAgICAgICAgIGlmICJ0eXBlcyIgaW4gY29uZmlnOgotICAgICAgICAgICAgICAg
IHR5cGVzID0gY29uZmlnWyJ0eXBlcyJdCisgICAgICAgICAgICAgICAgdGVzdF90eXBlcyA9IGNv
bmZpZ1sidHlwZXMiXQogICAgICAgICAgICAgdGltZW91dHMgPSB7fQogICAgICAgICAgICAgaWYg
InRpbWVvdXRzIiBpbiBjb25maWc6CiAgICAgICAgICAgICAgICAgdGltZW91dHMgPSBjb25maWdb
InRpbWVvdXRzIl0KICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnMgPSBbXQogICAgICAgICAg
ICAgaWYgInJlZmVyZW5jZV90b2tlbnMiIGluIGNvbmZpZzoKICAgICAgICAgICAgICAgICByZWZl
cmVuY2VfdG9rZW5zID0gY29uZmlnWyJyZWZlcmVuY2VfdG9rZW5zIl0KLSAgICAgICAgICAgIHdl
Ymhvb2tfdXJscyA9IFtdCi0gICAgICAgICAgICBpZiAid2ViaG9va191cmxzIiBpbiBjb25maWc6
Ci0gICAgICAgICAgICAgICAgd2ViaG9va191cmxzID0gY29uZmlnWyJ3ZWJob29rX3VybHMiXQor
ICAgICAgICAgICAgdHlwZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICJ0eXBlIiBpbiBjb25maWc6
CisgICAgICAgICAgICAgICAgdHlwZSA9IGNvbmZpZ1sidHlwZSJdCiAKICAgICAgICAgICAgIHNl
bGYuX3Nlc3Npb25zX21hbmFnZXIudXBkYXRlX3Nlc3Npb25fY29uZmlndXJhdGlvbigKICAgICAg
ICAgICAgICAgICB0b2tlbiwKICAgICAgICAgICAgICAgICB0ZXN0cywKLSAgICAgICAgICAgICAg
ICB0eXBlcywKKyAgICAgICAgICAgICAgICB0ZXN0X3R5cGVzLAogICAgICAgICAgICAgICAgIHRp
bWVvdXRzLAogICAgICAgICAgICAgICAgIHJlZmVyZW5jZV90b2tlbnMsCi0gICAgICAgICAgICAg
ICAgd2ViaG9va191cmxzCisgICAgICAgICAgICAgICAgdHlwZQogICAgICAgICAgICAgKQogICAg
ICAgICBleGNlcHQgTm90Rm91bmRFeGNlcHRpb246CiAgICAgICAgICAgICBzZWxmLmhhbmRsZV9l
eGNlcHRpb24oIkZhaWxlZCB0byB1cGRhdGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIikKQEAgLTI2
OCwyNyArMzM0LDU2IEBAIGNsYXNzIFNlc3Npb25zQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAg
ICAgICAgICAgIHVyaV9wYXJ0cyA9IHNlbGYucGFyc2VfdXJpKHJlcXVlc3QpCiAgICAgICAgICAg
ICB0b2tlbiA9IHVyaV9wYXJ0c1syXQogCisgICAgICAgICAgICBxdWVyeV9wYXJhbWV0ZXJzID0g
c2VsZi5wYXJzZV9xdWVyeV9wYXJhbWV0ZXJzKHJlcXVlc3QpCisgICAgICAgICAgICBsYXN0X2V2
ZW50X251bWJlciA9IE5vbmUKKyAgICAgICAgICAgIGlmICgibGFzdF9ldmVudCIgaW4gcXVlcnlf
cGFyYW1ldGVycyk6CisgICAgICAgICAgICAgICAgbGFzdF9ldmVudF9udW1iZXIgPSBpbnQocXVl
cnlfcGFyYW1ldGVyc1sibGFzdF9ldmVudCJdKQorCiAgICAgICAgICAgICBldmVudCA9IHRocmVh
ZGluZy5FdmVudCgpCi0gICAgICAgICAgICBodHRwX3BvbGxpbmdfY2xpZW50ID0gSHR0cFBvbGxp
bmdDbGllbnQodG9rZW4sIGV2ZW50KQotICAgICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hl
ci5hZGRfc2Vzc2lvbl9jbGllbnQoaHR0cF9wb2xsaW5nX2NsaWVudCkKKyAgICAgICAgICAgIGh0
dHBfcG9sbGluZ19ldmVudF9saXN0ZW5lciA9IEh0dHBQb2xsaW5nRXZlbnRMaXN0ZW5lcih0b2tl
biwgZXZlbnQpCisgICAgICAgICAgICBldmVudF9saXN0ZW5lcl90b2tlbiA9IHNlbGYuX2V2ZW50
X2Rpc3BhdGNoZXIuYWRkX2V2ZW50X2xpc3RlbmVyKGh0dHBfcG9sbGluZ19ldmVudF9saXN0ZW5l
ciwgbGFzdF9ldmVudF9udW1iZXIpCiAKICAgICAgICAgICAgIGV2ZW50LndhaXQoKQogCi0gICAg
ICAgICAgICBtZXNzYWdlID0gaHR0cF9wb2xsaW5nX2NsaWVudC5tZXNzYWdlCisgICAgICAgICAg
ICBtZXNzYWdlID0gaHR0cF9wb2xsaW5nX2V2ZW50X2xpc3RlbmVyLm1lc3NhZ2UKICAgICAgICAg
ICAgIHNlbGYuc2VuZF9qc29uKGRhdGE9bWVzc2FnZSwgcmVzcG9uc2U9cmVzcG9uc2UpCisgICAg
ICAgICAgICBzZWxmLl9ldmVudF9kaXNwYXRjaGVyLnJlbW92ZV9ldmVudF9saXN0ZW5lcihldmVu
dF9saXN0ZW5lcl90b2tlbikKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAg
IHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVy
IikKICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDUwMAogCisgICAgZGVmIHB1c2hfZXZl
bnQoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB1
cmlfcGFydHMgPSBzZWxmLnBhcnNlX3VyaShyZXF1ZXN0KQorICAgICAgICAgICAgdG9rZW4gPSB1
cmlfcGFydHNbMl0KKyAgICAgICAgICAgIG1lc3NhZ2UgPSBOb25lCisgICAgICAgICAgICBib2R5
ID0gcmVxdWVzdC5ib2R5LmRlY29kZSh1InV0Zi04IikKKyAgICAgICAgICAgIGlmIGJvZHkgIT0g
dSIiOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBqc29uLmxvYWRzKGJvZHkpCisKKyAgICAg
ICAgICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuZGlzcGF0Y2hfZXZlbnQoCisgICAgICAgICAg
ICAgICAgdG9rZW4sCisgICAgICAgICAgICAgICAgbWVzc2FnZVsidHlwZSJdLAorICAgICAgICAg
ICAgICAgIG1lc3NhZ2VbImRhdGEiXSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHNlbGYuaGFuZGxlX2V4Y2VwdGlvbigiRmFpbGVkIHRvIHB1c2ggc2Vzc2lvbiBldmVu
dCIpCisKICAgICBkZWYgaGFuZGxlX3JlcXVlc3Qoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgog
ICAgICAgICBtZXRob2QgPSByZXF1ZXN0Lm1ldGhvZAogICAgICAgICB1cmlfcGFydHMgPSBzZWxm
LnBhcnNlX3VyaShyZXF1ZXN0KQorICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5CisgICAgICAg
IGhlYWRlcnMgPSByZXF1ZXN0LmhlYWRlcnMKKyAgICAgICAgcXVlcnlfcGFyYW1ldGVycyA9IHNl
bGYucGFyc2VfcXVlcnlfcGFyYW1ldGVycyhyZXF1ZXN0KQorICAgICAgICB1cmlfcGF0aCA9IHJl
cXVlc3QudXJsX3BhcnRzLnBhdGgKIAorICAgICAgICByZXN1bHQgPSBOb25lCiAgICAgICAgICMg
L2FwaS9zZXNzaW9ucwogICAgICAgICBpZiBsZW4odXJpX3BhcnRzKSA9PSAyOgogICAgICAgICAg
ICAgaWYgbWV0aG9kID09ICJQT1NUIjoKLSAgICAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zZXNz
aW9uKHJlcXVlc3QsIHJlc3BvbnNlKQotICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IHNlbGYuY3JlYXRlX3Nlc3Npb24oYm9keSwgaGVhZGVycykKKyAgICAg
ICAgICAgIGlmIG1ldGhvZCA9PSAiR0VUIjoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZWFk
X3Nlc3Npb25zX2VuYWJsZWQ6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucmVh
ZF9zZXNzaW9ucyhxdWVyeV9wYXJhbWV0ZXJzLCB1cmlfcGF0aCkKIAogICAgICAgICAjIC9hcGkv
c2Vzc2lvbnMvPHRva2VuPgogICAgICAgICBpZiBsZW4odXJpX3BhcnRzKSA9PSAzOgpAQCAtMzAw
LDggKzM5NSw3IEBAIGNsYXNzIFNlc3Npb25zQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAg
ICAgICAgICAgICBpZiBsZW4oZnVuY3Rpb24pICE9IFRPS0VOX0xFTkdUSDoKICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5maW5kX3Nlc3Npb24ocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIHNlbGYucmVhZF9zZXNzaW9uKHJlcXVl
c3QsIHJlc3BvbnNlKQotICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHJl
c3VsdCA9IHNlbGYucmVhZF9zZXNzaW9uKHRva2VuPXVyaV9wYXJ0c1syXSkKICAgICAgICAgICAg
IGlmIG1ldGhvZCA9PSAiUFVUIjoKICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZV9zZXNzaW9u
X2NvbmZpZ3VyYXRpb24ocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAgICAgICAgICAgcmV0dXJu
CkBAIC0zMTQsOCArNDA4LDcgQEAgY2xhc3MgU2Vzc2lvbnNBcGlIYW5kbGVyKEFwaUhhbmRsZXIp
OgogICAgICAgICAgICAgZnVuY3Rpb24gPSB1cmlfcGFydHNbM10KICAgICAgICAgICAgIGlmIG1l
dGhvZCA9PSAiR0VUIjoKICAgICAgICAgICAgICAgICBpZiBmdW5jdGlvbiA9PSAic3RhdHVzIjoK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWFkX3Nlc3Npb25fc3RhdHVzKHJlcXVlc3QsIHJl
c3BvbnNlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gc2VsZi5yZWFkX3Nlc3Npb25fc3RhdHVzKHRva2VuPXVyaV9wYXJ0c1syXSkKICAg
ICAgICAgICAgICAgICBpZiBmdW5jdGlvbiA9PSAiZXZlbnRzIjoKICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5yZWdpc3Rlcl9ldmVudF9saXN0ZW5lcihyZXF1ZXN0LCByZXNwb25zZSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuCkBAIC0zMzIsOSArNDI1LDMyIEBAIGNsYXNzIFNlc3Npb25z
QXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgICAgICBpZiBmdW5jdGlvbiA9PSAi
cmVzdW1lIjoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN1bWVfc2Vzc2lvbihyZXF1ZXN0
LCByZXNwb25zZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAg
aWYgZnVuY3Rpb24gPT0gImV2ZW50cyI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucHVzaF9l
dmVudChyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAg
ICAgICAgICBpZiBtZXRob2QgPT0gIlBVVCI6CiAgICAgICAgICAgICAgICAgaWYgZnVuY3Rpb24g
PT0gImxhYmVscyI6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlX2xhYmVscyhyZXF1
ZXN0LCByZXNwb25zZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgcmVz
cG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgIGlmIHJlc3VsdCBpcyBOb25lOgorICAgICAgICAg
ICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBm
b3JtYXQgPSBOb25lCisgICAgICAgIGlmICJmb3JtYXQiIGluIHJlc3VsdDoKKyAgICAgICAgICAg
IGZvcm1hdCA9IHJlc3VsdFsiZm9ybWF0Il0KKyAgICAgICAgICAgIGlmIGZvcm1hdCA9PSAiYXBw
bGljYXRpb24vanNvbiI6CisgICAgICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICAgICAgICAg
ICAgICBpZiAiZGF0YSIgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBkYXRhID0gcmVz
dWx0WyJkYXRhIl0KKyAgICAgICAgICAgICAgICBzdGF0dXMgPSAyMDAKKyAgICAgICAgICAgICAg
ICBpZiAic3RhdHVzIiBpbiByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHJl
c3VsdFsic3RhdHVzIl0KKyAgICAgICAgICAgICAgICBzZWxmLnNlbmRfanNvbihkYXRhLCByZXNw
b25zZSwgc3RhdHVzKQorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHN0YXR1cyA9
IDQwNAorICAgICAgICBpZiAic3RhdHVzIiBpbiByZXN1bHQ6CisgICAgICAgICAgICBzdGF0dXMg
PSByZXN1bHRbInN0YXR1cyJdCisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IHN0YXR1cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL25ldHdvcmsvYXBpL3Rlc3RzX2FwaV9oYW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Rlc3Rz
X2FwaV9oYW5kbGVyLnB5CmluZGV4IGNmNjJmNzA2MzU4YjZiNWRlMjRkMDIzMmU5OTk0ODBhOTAz
YTVjY2YuLjVjNzk3ZDkzYTI0OTg3ODZhNWYwNDZlMjYyNTIzYzk4OGMxYjIzYmIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS9uZXR3b3JrL2FwaS90ZXN0c19hcGlfaGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9hcGkvdGVzdHNf
YXBpX2hhbmRsZXIucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQganNvbgorCiBmcm9tIHVybGxp
Yi5wYXJzZSBpbXBvcnQgdXJsdW5zcGxpdAogCiBmcm9tIC5hcGlfaGFuZGxlciBpbXBvcnQgQXBp
SGFuZGxlcgpAQCAtOCw2ICs5LDEwIEBAIGZyb20gLi4uZGF0YS5zZXNzaW9uIGltcG9ydCBQQVVT
RUQsIENPTVBMRVRFRCwgQUJPUlRFRCwgUEVORElORywgUlVOTklORwogREVGQVVMVF9MQVNUX0NP
TVBMRVRFRF9URVNUU19DT1VOVCA9IDUKIERFRkFVTFRfTEFTVF9DT01QTEVURURfVEVTVFNfU1RB
VFVTID0gWyJBTEwiXQogCitFWEVDVVRJT05fTU9ERV9BVVRPID0gImF1dG8iCitFWEVDVVRJT05f
TU9ERV9NQU5VQUwgPSAibWFudWFsIgorRVhFQ1VUSU9OX01PREVfUFJPR1JBTU1BVElDID0gInBy
b2dyYW1tYXRpYyIKKwogCiBjbGFzcyBUZXN0c0FwaUhhbmRsZXIoQXBpSGFuZGxlcik6CiAgICAg
ZGVmIF9faW5pdF9fKApAQCAtMTAzLDYgKzEwOCw4IEBAIGNsYXNzIFRlc3RzQXBpSGFuZGxlcihB
cGlIYW5kbGVyKToKIAogICAgICAgICAgICAgdGVzdF90aW1lb3V0ID0gc2VsZi5fdGVzdHNfbWFu
YWdlci5nZXRfdGVzdF90aW1lb3V0KAogICAgICAgICAgICAgICAgIHRlc3Q9dGVzdCwgc2Vzc2lv
bj1zZXNzaW9uKQorCisgICAgICAgICAgICB0ZXN0ID0gc2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5n
ZXRfdGVzdF9wYXRoX3dpdGhfcXVlcnkodGVzdCwgc2Vzc2lvbikKICAgICAgICAgICAgIHVybCA9
IHNlbGYuX2dlbmVyYXRlX3Rlc3RfdXJsKAogICAgICAgICAgICAgICAgIHRlc3Q9dGVzdCwKICAg
ICAgICAgICAgICAgICB0b2tlbj10b2tlbiwKQEAgLTI1MCwxMSArMjU3LDE4IEBAIGNsYXNzIFRl
c3RzQXBpSGFuZGxlcihBcGlIYW5kbGVyKToKICAgICAgICAgICAgIHByb3RvY29sID0gImh0dHBz
IgogICAgICAgICAgICAgcG9ydCA9IHNlbGYuX3dwdF9zc2xfcG9ydAogCi0gICAgICAgIHF1ZXJ5
ID0gInRva2VuPXt9JnRpbWVvdXQ9e30maHR0cHNfcG9ydD17fSZ3ZWJfcm9vdD17fSIuZm9ybWF0
KAorICAgICAgICB0ZXN0X3F1ZXJ5ID0gIiIKKyAgICAgICAgc3BsaXQgPSB0ZXN0LnNwbGl0KCI/
IikKKyAgICAgICAgaWYgbGVuKHNwbGl0KSA+IDE6CisgICAgICAgICAgICB0ZXN0ID0gc3BsaXRb
MF0KKyAgICAgICAgICAgIHRlc3RfcXVlcnkgPSBzcGxpdFsxXQorCisgICAgICAgIHF1ZXJ5ID0g
InRva2VuPXt9JnRpbWVvdXQ9e30maHR0cHNfcG9ydD17fSZ3ZWJfcm9vdD17fSZ7fSIuZm9ybWF0
KAogICAgICAgICAgICAgICAgIHRva2VuLAogICAgICAgICAgICAgICAgIHRlc3RfdGltZW91dCwK
ICAgICAgICAgICAgICAgICBzZWxmLl93cHRfc3NsX3BvcnQsCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fd2ViX3Jvb3QKKyAgICAgICAgICAgICAgICBzZWxmLl93ZWJfcm9vdCwKKyAgICAgICAgICAg
ICAgICB0ZXN0X3F1ZXJ5CiAgICAgICAgICkKIAogICAgICAgICByZXR1cm4gc2VsZi5fZ2VuZXJh
dGVfdXJsKApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBp
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTQwNDllNDMy
NzY2Y2JkODA4NDFkZmQzNThjMThlNWE3ZGFkODIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3
b3JrL2FwaS9hcGlfaGFuZGxlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2FwaS9yZXN1bHRzX2FwaV9oYW5kbGVyLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L25ldHdvcmsvYXBpL3Nlc3Npb25zX2FwaV9oYW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvYXBpL3Rlc3RzX2Fw
aV9oYW5kbGVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9odHRwX2hhbmRsZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay9o
dHRwX2hhbmRsZXIucHkKaW5kZXggMGFhYmYzMTAxZGM3NjZmNDUwMTY5NmZlMTg3MTFkMzhmOWE3
OGE3Ni4uNWE2NjM4MzJkMjQzOTdmNTRjMTBjNDc1NWU2NDU1Y2ViMmZkYjkyYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L25ldHdvcmsvaHR0cF9oYW5kbGVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL2h0dHBfaGFuZGxlci5weQpAQCAt
MSwyMiArMSwzMCBAQAogaW1wb3J0IGh0dHAuY2xpZW50IGFzIGh0dHBsaWIKIGltcG9ydCBzeXMK
K2ltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdHJhY2ViYWNrCiAKIAorZ2xvYmFsIGxvZ2dlcgorbG9n
Z2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoIndhdmUtYXBpLWhhbmRsZXIiKQorCiBjbGFzcyBIdHRw
SGFuZGxlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXygKICAgICAgICAgc2VsZiwKLSAgICAg
ICAgc3RhdGljX2hhbmRsZXI9Tm9uZSwKLSAgICAgICAgc2Vzc2lvbnNfYXBpX2hhbmRsZXI9Tm9u
ZSwKLSAgICAgICAgdGVzdHNfYXBpX2hhbmRsZXI9Tm9uZSwKLSAgICAgICAgcmVzdWx0c19hcGlf
aGFuZGxlcj1Ob25lLAotICAgICAgICBodHRwX3BvcnQ9Tm9uZSwKLSAgICAgICAgd2ViX3Jvb3Q9
Tm9uZQorICAgICAgICBzdGF0aWNfaGFuZGxlciwKKyAgICAgICAgc2Vzc2lvbnNfYXBpX2hhbmRs
ZXIsCisgICAgICAgIHRlc3RzX2FwaV9oYW5kbGVyLAorICAgICAgICByZXN1bHRzX2FwaV9oYW5k
bGVyLAorICAgICAgICBkZXZpY2VzX2FwaV9oYW5kbGVyLAorICAgICAgICBnZW5lcmFsX2FwaV9o
YW5kbGVyLAorICAgICAgICBodHRwX3BvcnQsCisgICAgICAgIHdlYl9yb290CiAgICAgKToKICAg
ICAgICAgc2VsZi5zdGF0aWNfaGFuZGxlciA9IHN0YXRpY19oYW5kbGVyCiAgICAgICAgIHNlbGYu
c2Vzc2lvbnNfYXBpX2hhbmRsZXIgPSBzZXNzaW9uc19hcGlfaGFuZGxlcgogICAgICAgICBzZWxm
LnRlc3RzX2FwaV9oYW5kbGVyID0gdGVzdHNfYXBpX2hhbmRsZXIKICAgICAgICAgc2VsZi5yZXN1
bHRzX2FwaV9oYW5kbGVyID0gcmVzdWx0c19hcGlfaGFuZGxlcgorICAgICAgICBzZWxmLmdlbmVy
YWxfYXBpX2hhbmRsZXIgPSBnZW5lcmFsX2FwaV9oYW5kbGVyCisgICAgICAgIHNlbGYuZGV2aWNl
c19hcGlfaGFuZGxlciA9IGRldmljZXNfYXBpX2hhbmRsZXIKICAgICAgICAgc2VsZi5faHR0cF9w
b3J0ID0gaHR0cF9wb3J0CiAgICAgICAgIHNlbGYuX3dlYl9yb290ID0gd2ViX3Jvb3QKIApAQCAt
NTAsNiArNTgsNyBAQCBjbGFzcyBIdHRwSGFuZGxlcihvYmplY3QpOgogCiAgICAgZGVmIGhhbmRs
ZV9hcGkoc2VsZiwgcmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICBwYXRoID0gc2VsZi5fcmVt
b3ZlX3dlYl9yb290KHJlcXVlc3QucmVxdWVzdF9wYXRoKQorICAgICAgICBwYXRoID0gcGF0aC5z
cGxpdCgiPyIpWzBdCiAgICAgICAgIGFwaV9uYW1lID0gcGF0aC5zcGxpdCgiLyIpWzFdCiAKICAg
ICAgICAgaWYgYXBpX25hbWUgaXMgTm9uZToKQEAgLTY0LDYgKzczLDExIEBAIGNsYXNzIEh0dHBI
YW5kbGVyKG9iamVjdCk6CiAgICAgICAgIGlmIGFwaV9uYW1lID09ICJyZXN1bHRzIjoKICAgICAg
ICAgICAgIHNlbGYucmVzdWx0c19hcGlfaGFuZGxlci5oYW5kbGVfcmVxdWVzdChyZXF1ZXN0LCBy
ZXNwb25zZSkKICAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBhcGlfbmFtZSA9PSAiZGV2
aWNlcyI6CisgICAgICAgICAgICBzZWxmLmRldmljZXNfYXBpX2hhbmRsZXIuaGFuZGxlX3JlcXVl
c3QocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxm
LmdlbmVyYWxfYXBpX2hhbmRsZXIuaGFuZGxlX3JlcXVlc3QocmVxdWVzdCwgcmVzcG9uc2UpCiAK
ICAgICBkZWYgaGFuZGxlX3N0YXRpY19maWxlKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAg
ICAgICAgc2VsZi5zdGF0aWNfaGFuZGxlci5oYW5kbGVfcmVxdWVzdChyZXF1ZXN0LCByZXNwb25z
ZSkKQEAgLTc2LDE2ICs5MCwxOSBAQCBjbGFzcyBIdHRwSGFuZGxlcihvYmplY3QpOgogCiAgICAg
ZGVmIF9wcm94eShzZWxmLCByZXF1ZXN0LCByZXNwb25zZSk6CiAgICAgICAgIGhvc3QgPSAnbG9j
YWxob3N0JwotICAgICAgICBwb3J0ID0gc3RyKHNlbGYuX2h0dHBfcG9ydCkKKyAgICAgICAgcG9y
dCA9IGludChzZWxmLl9odHRwX3BvcnQpCiAgICAgICAgIHVyaSA9IHJlcXVlc3QudXJsX3BhcnRz
LnBhdGgKICAgICAgICAgdXJpID0gdXJpICsgIj8iICsgcmVxdWVzdC51cmxfcGFydHMucXVlcnkK
LSAgICAgICAgZGF0YSA9IHJlcXVlc3QucmF3X2lucHV0LnJlYWQoaW50KHJlcXVlc3QuaGVhZGVy
cy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJywgLTEpKSkKKyAgICAgICAgY29udGVudF9sZW5ndGggPSBy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpCisgICAgICAgIGRhdGEgPSAiIgor
ICAgICAgICBpZiBjb250ZW50X2xlbmd0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRhdGEg
PSByZXF1ZXN0LnJhd19pbnB1dC5yZWFkKGludChjb250ZW50X2xlbmd0aCkpCiAgICAgICAgIG1l
dGhvZCA9IHJlcXVlc3QubWV0aG9kCi0gICAgICAgICMgSFRUUENvbm5lY3Rpb24gZXhwZWN0cyB2
YWx1ZXMgdG8gYmUgYSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIGluc3RlYWQKLSAgICAgICAgIyBv
ZiBhIGxpc3Qgb2YgdmFsdWVzLgorCiAgICAgICAgIGhlYWRlcnMgPSB7fQotICAgICAgICBmb3Ig
aywgdiBpbiByZXF1ZXN0LmhlYWRlcnMuaXRlbXMoKToKLSAgICAgICAgICAgIGhlYWRlcnNba10g
PSBiIiwiLmpvaW4obGlzdCh2KSkKKyAgICAgICAgZm9yIGtleSBpbiByZXF1ZXN0LmhlYWRlcnM6
CisgICAgICAgICAgICB2YWx1ZSA9IHJlcXVlc3QuaGVhZGVyc1trZXldCisgICAgICAgICAgICBo
ZWFkZXJzW2tleS5kZWNvZGUoInV0Zi04IildID0gdmFsdWUuZGVjb2RlKCJ1dGYtOCIpCiAKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgcHJveHlfY29ubmVjdGlvbiA9IGh0dHBsaWIuSFRUUENv
bm5lY3Rpb24oaG9zdCwgcG9ydCkKQEAgLTk2LDggKzExMyw4IEBAIGNsYXNzIEh0dHBIYW5kbGVy
KG9iamVjdCk6CiAgICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSBwcm94eV9yZXNwb25zZS5z
dGF0dXMKIAogICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAi
RmFpbGVkIHRvIHBlcmZvcm0gcHJveHkgcmVxdWVzdCIKICAgICAgICAgICAgIGluZm8gPSBzeXMu
ZXhjX2luZm8oKQogICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X3RiKGluZm9bMl0pCi0gICAg
ICAgICAgICBwcmludCgiRmFpbGVkIHRvIHBlcmZvcm0gcHJveHkgcmVxdWVzdDogIiArCi0gICAg
ICAgICAgICAgICAgaW5mb1swXS5fX25hbWVfXyArICI6ICIgKyBzdHIoaW5mb1sxXS5hcmdzWzBd
KSkKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigie306IHt9OiB7fSIuZm9ybWF0KG1lc3NhZ2Us
IGluZm9bMF0uX19uYW1lX18sIGluZm9bMV0uYXJnc1swXSkpCiAgICAgICAgICAgICByZXNwb25z
ZS5zdGF0dXMgPSA1MDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9uZXR3b3JrL3N0YXRpY19oYW5kbGVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdv
cmsvc3RhdGljX2hhbmRsZXIucHkKaW5kZXggNmY4YWY0MzA2MDRjNDVlNGU3YmYxY2IyMDkyNDQ1
YjRhZWEwZTA3YS4uZmRjYTM2MWE1Njc4ZTBjOTc2MGQ3MmY1MzUyY2QyMDU2ZTVlNzU2OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL25ldHdvcmsvc3RhdGljX2hhbmRsZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvc3RhdGljX2hhbmRs
ZXIucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgb3MKK2Zyb20gaW8gaW1wb3J0IG9wZW4KIAog
CiBjbGFzcyBTdGF0aWNIYW5kbGVyKG9iamVjdCk6CkBAIC0xMywxNCArMTQsMjEgQEAgY2xhc3Mg
U3RhdGljSGFuZGxlcihvYmplY3QpOgogICAgICAgICBmaWxlX3BhdGggPSByZXF1ZXN0LnJlcXVl
c3RfcGF0aAogCiAgICAgICAgIGlmIHNlbGYuX3dlYl9yb290IGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgaWYgbm90IGZpbGVfcGF0aC5zdGFydHN3aXRoKHNlbGYuX3dlYl9yb290KToKKyAgICAg
ICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPSA0MDQKKyAgICAgICAgICAgICAgICByZXR1cm4K
ICAgICAgICAgICAgIGZpbGVfcGF0aCA9IGZpbGVfcGF0aFtsZW4oc2VsZi5fd2ViX3Jvb3QpOl0K
IAotICAgICAgICBpZiBmaWxlX3BhdGggPT0gIi4iIG9yIGZpbGVfcGF0aCA9PSAiLi8iIG9yIGZp
bGVfcGF0aCA9PSAiIjoKKyAgICAgICAgaWYgZmlsZV9wYXRoID09ICIiOgogICAgICAgICAgICAg
ZmlsZV9wYXRoID0gImluZGV4Lmh0bWwiCiAKICAgICAgICAgZmlsZV9wYXRoID0gZmlsZV9wYXRo
LnNwbGl0KCI/IilbMF0KICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYuc3Rh
dGljX2RpciwgZmlsZV9wYXRoKQogCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmaWxl
X3BhdGgpOgorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gNDA0CisgICAgICAgICAgICBy
ZXR1cm4KKwogICAgICAgICBoZWFkZXJzID0gW10KIAogICAgICAgICBjb250ZW50X3R5cGVzID0g
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL25ldHdvcmsvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvbmV0d29yay93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE5ZmZlOTIzMTk5YjYzZGNiZDMyMzhm
YmQwNzZjN2U3MTM0ODk4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvbmV0d29yay93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS9uZXR3b3JrL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25ldHdvcmsvaHR0cF9oYW5kbGVyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL25l
dHdvcmsvc3RhdGljX2hhbmRsZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9wYWNrYWdlLWxvY2suanNvbiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9wYWNr
YWdlLWxvY2suanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjQ4MTM4OGMyZjZhYzA2ODc4MGUxNzM1NDFiZDQ5
N2UxZDlkZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3BhY2thZ2UtbG9jay5qc29uCkBAIC0wLDAgKzEs
MzUgQEAKK3sKKyAgInZlcnNpb24iOiAiMS4wLjAiLAorICAibG9ja2ZpbGVWZXJzaW9uIjogMSwK
KyAgInJlcXVpcmVzIjogdHJ1ZSwKKyAgImRlcGVuZGVuY2llcyI6IHsKKyAgICAiZnMtZXh0cmEi
OiB7CisgICAgICAidmVyc2lvbiI6ICI3LjAuMSIsCisgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6
Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnMtZXh0cmEvLS9mcy1leHRyYS03LjAuMS50Z3oiLAorICAg
ICAgImludGVncml0eSI6ICJzaGE1MTItWUpEYUNKWkVuQm1jYncxM2Z2ZEFNOUF3Tk9Kd096ckU0
cHFNcUJxNW5GaUVxWFVxSHdsSzRCKzNwVXc2Sk52ZlNQdFgwNXhGSHRZeS8xbmkwMWVHQ3c9PSIs
CisgICAgICAicmVxdWlyZXMiOiB7CisgICAgICAgICJncmFjZWZ1bC1mcyI6ICJeNC4xLjIiLAor
ICAgICAgICAianNvbmZpbGUiOiAiXjQuMC4wIiwKKyAgICAgICAgInVuaXZlcnNhbGlmeSI6ICJe
MC4xLjAiCisgICAgICB9CisgICAgfSwKKyAgICAiZ3JhY2VmdWwtZnMiOiB7CisgICAgICAidmVy
c2lvbiI6ICI0LjIuMyIsCisgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1q
cy5vcmcvZ3JhY2VmdWwtZnMvLS9ncmFjZWZ1bC1mcy00LjIuMy50Z3oiLAorICAgICAgImludGVn
cml0eSI6ICJzaGE1MTItYTMwVkVCbTRQRWR4MWRSQjdNRks3QmVqZWp2Q3ZCcm9uYkxqaHQrc0h1
R1lqOFBIczdNLzVaK3J0NWx3NTUxdlo3eWZUQ2o0VnV5eTNtU0p5dERXUlE9PSIKKyAgICB9LAor
ICAgICJqc29uZmlsZSI6IHsKKyAgICAgICJ2ZXJzaW9uIjogIjQuMC4wIiwKKyAgICAgICJyZXNv
bHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9qc29uZmlsZS8tL2pzb25maWxlLTQu
MC4wLnRneiIsCisgICAgICAiaW50ZWdyaXR5IjogInNoYTEtaDNHcTRIbWJaQWRyZG1RUHlnV1Bu
QkRqUHNzPSIsCisgICAgICAicmVxdWlyZXMiOiB7CisgICAgICAgICJncmFjZWZ1bC1mcyI6ICJe
NC4xLjYiCisgICAgICB9CisgICAgfSwKKyAgICAidW5pdmVyc2FsaWZ5IjogeworICAgICAgInZl
cnNpb24iOiAiMC4xLjIiLAorICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBt
anMub3JnL3VuaXZlcnNhbGlmeS8tL3VuaXZlcnNhbGlmeS0wLjEuMi50Z3oiLAorICAgICAgImlu
dGVncml0eSI6ICJzaGE1MTItckJKZUk1Q1hBbG15MXBWKzYxN1dCOUo2M1U2WGNhekhIRjJmMmRi
Sml4NFh6cFVGMFJTM1piajBGR0lPQ0F2YTVQL2QvR0JPWWFBQ1ExdyswYXpVa2c9PSIKKyAgICB9
CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9wYWNrYWdlLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcGFja2FnZS5qc29uCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYzNjVmN2MyMzg0NWYwYTg1ZTBjYzNjNjZmMDQ1MTUxNzU0ZGYwYjMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvcGFja2FnZS5qc29uCkBAIC0wLDAgKzEsNyBAQAoreworICAidmVyc2lvbiI6ICIxLjAuMCIs
CisgICJsaWNlbnNlIjogIk1JVCIsCisgICJkZXBlbmRlbmNpZXMiOiB7CisgICAgImZzLWV4dHJh
IjogIl43LjAuMSIKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3JlcXVpcmVtZW50cy50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVxdWlyZW1l
bnRzLnR4dAppbmRleCAwNzA4MzcyNDJmYWRmODAzNjFmODA1YmZkNTYxZTBlYTg5MTNjOTg5Li5h
N2M5ZDgyYTZhZmE3NWFlYjUyOThhYzM0MWJkODg0YmRkYzRmZDU3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVxdWly
ZW1lbnRzLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSArMSwyIEBACi11YS1wYXJzZXI9
PTAuMTAuMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3VhLXBhcnNlcj09MC44LjAKK3B5
dGhvbi1kYXRldXRpbD09Mi44LjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCmluZGV4IGE2YzM5MmY0YjE0MzM2
MjU2ODBhZDQzYTE4NzdkOTY1ZjFhOWUyNjEuLjM5NGI0YmYzYTgzNDczMDdiOGJiMTk4MTU1Yjk2
MDViYjE1YmU3YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwpAQCAtMTUsMjcyICsxNSwyNzAgQEAKICAq
LwogCiAvKgotICogSWYgdGhlIHF1ZXJ5IHBhcmFtZXRlciB0b2tlbiBpcyBhdmFpbGFibGUgbWVh
bnMgdGhhdCB0aGUgdGVzdCB3YXMgbG9hZGVkIGJ5IAorICogSWYgdGhlIHF1ZXJ5IHBhcmFtZXRl
ciB0b2tlbiBpcyBhdmFpbGFibGUgbWVhbnMgdGhhdCB0aGUgdGVzdCB3YXMgbG9hZGVkIGJ5CiAg
KiB0aGUgV0FWRSB0ZXN0IHJ1bm5lciBhbmQgdGhlIHJlc3VsdHMgbmVlZCB0byBiZSByZXBvcnRl
ZCB0byB0aGUgc2VydmVyIHVzaW5nCi0gKiB0aGUgcHJvdmlkZWQgdG9rZW4gdG8gaWRlbnRpZnkg
dGhlIHNlc3Npb24gYXNzb2NpYXRlZCB0aGlzIHRva2VuLiAgCisgKiB0aGUgcHJvdmlkZWQgdG9r
ZW4gdG8gaWRlbnRpZnkgdGhlIHNlc3Npb24gYXNzb2NpYXRlZCB0aGlzIHRva2VuLgogICovCi1j
b25zb2xlLmxvZygiQVJEVkFBUkQiKQogaWYgKGxvY2F0aW9uLnNlYXJjaCAmJiBsb2NhdGlvbi5z
ZWFyY2guaW5kZXhPZigidG9rZW49IikgIT0gLTEpIHsKLSAgIHZhciBfX1dBVkVfX0hPU1ROQU1F
ID0gbG9jYXRpb24uaG9zdG5hbWU7Ci0gICB2YXIgX19XQVZFX19QT1JUID0gbG9jYXRpb24ucG9y
dDsKLSAgIHZhciBfX1dBVkVfX1BST1RPQ09MID0gbG9jYXRpb24ucHJvdG9jb2wucmVwbGFjZSgv
Oi8sICIiKTsKLSAgIHZhciBfX1dBVkVfX1FVRVJZID0gbG9jYXRpb24uc2VhcmNoOwotICAgaWYg
KCFfX1dBVkVfX1FVRVJZKSBfX1dBVkVfX1FVRVJZID0gIj8iOwotICAgdmFyIG1hdGNoID0gX19X
QVZFX19RVUVSWS5tYXRjaCgvaHR0cHNfcG9ydD0oXGQrKS8pOwotICAgdmFyIF9fSFRUUFNfUE9S
VCA9IHBhcnNlSW50KG1hdGNoICYmIG1hdGNoWzFdID8gbWF0Y2hbMV0gOiA0NDMpOwotICAgbWF0
Y2ggPSBfX1dBVkVfX1FVRVJZLm1hdGNoKC90aW1lb3V0PShcZCspLyk7Ci0gICB2YXIgX19XQVZF
X19USU1FT1VUID0gcGFyc2VJbnQobWF0Y2ggJiYgbWF0Y2hbMV0gPyBtYXRjaFsxXSA6IDY1MDAw
KTsKLSAgIG1hdGNoID0gX19XQVZFX19RVUVSWS5tYXRjaCgvd2ViX3Jvb3Q9KC4rKS8pOwotICAg
dmFyIF9fV0FWRV9fV0VCX1JPT1QgPSBtYXRjaCAmJiBtYXRjaFsxXSA/IG1hdGNoWzFdIDogIi93
YXZlLyI7Ci0gICAgY29uc29sZS5sb2coIlxuXG5cblxuXG4iKQotICAgIGNvbnNvbGUubG9nKG1h
dGNoKQotICAgIGNvbnNvbGUubG9nKF9fV0FWRV9fV0VCX1JPT1QpCi0gICBtYXRjaCA9IF9fV0FW
RV9fUVVFUlkubWF0Y2goL3Rva2VuPShbXiZdKykvKTsKLSAgIHZhciBfX1dBVkVfX1RPS0VOID0g
bWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7Ci0gICB2YXIgX19XQVZFX19URVNUID0gbG9jYXRpb24u
cGF0aG5hbWU7Ci0gICB2YXIgbmV4dFVybCA9IG51bGw7Ci0gICB2YXIgcmVzdWx0U2VudCA9IGZh
bHNlOwotICAgdmFyIHNjcmVlbkNvbnNvbGU7CisgIHZhciBfX1dBVkVfX0hPU1ROQU1FID0gbG9j
YXRpb24uaG9zdG5hbWU7CisgIHZhciBfX1dBVkVfX1BPUlQgPSBsb2NhdGlvbi5wb3J0OworICB2
YXIgX19XQVZFX19QUk9UT0NPTCA9IGxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoLzovLCAiIik7
CisgIHZhciBfX1dBVkVfX1FVRVJZID0gbG9jYXRpb24uc2VhcmNoOworICB2YXIgcXVlcnlQYXJh
bWV0ZXJzID0ge307CisgIHZhciBrZXlzQW5kVmFsdWVzID0gbG9jYXRpb24uc2VhcmNoLnJlcGxh
Y2UoIj8iLCAiIikuc3BsaXQoIiYiKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQW5kVmFs
dWVzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIGtleSA9IGtleXNBbmRWYWx1ZXNbaV0uc3BsaXQo
Ij0iKVswXTsKKyAgICB2YXIgdmFsdWUgPSBrZXlzQW5kVmFsdWVzW2ldLnNwbGl0KCI9IilbMV07
CisgICAgcXVlcnlQYXJhbWV0ZXJzW2tleV0gPSB2YWx1ZTsKKyAgfQorICB2YXIgX19IVFRQU19Q
T1JUID0gcGFyc2VJbnQocXVlcnlQYXJhbWV0ZXJzWyJodHRwc19wb3J0Il0gfHwgNDQzKTsKKyAg
dmFyIF9fV0FWRV9fVElNRU9VVCA9IHBhcnNlSW50KHF1ZXJ5UGFyYW1ldGVyc1sidGltZW91dCJd
IHx8IDY1MDAwKTsKKyAgdmFyIF9fV0FWRV9fV0VCX1JPT1QgPSBxdWVyeVBhcmFtZXRlcnNbIndl
Yl9yb290Il0gfHwgIi9fd2F2ZS8iOworICB2YXIgX19XQVZFX19UT0tFTiA9IHF1ZXJ5UGFyYW1l
dGVyc1sidG9rZW4iXSB8fCBudWxsOworICB2YXIgX19XQVZFX19URVNUID0gbG9jYXRpb24ucGF0
aG5hbWU7CisgIHZhciBuZXh0VXJsID0gbnVsbDsKKyAgdmFyIHJlc3VsdFNlbnQgPSBmYWxzZTsK
KyAgdmFyIHNjcmVlbkNvbnNvbGU7CiAKLSAgIHRyeSB7Ci0gICAgICB2YXIgZG9jdW1lbnRSb290
ID0gZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJvZHkgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQ7Ci0gICAgICBkb2N1bWVudFJvb3Quc3R5bGVbImJhY2tncm91bmQtY29sb3IiXSA9ICIjRkZG
IjsKLSAgICAgIHdpbmRvdy5vcGVuID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgbG9nVG9Db25z
b2xlKAotICAgICAgICAgICAgIndpbmRvdy5vcGVuKCkgaXMgb3ZlcnJpZGRlbiBpbiB0ZXN0aGFy
bmVzc3JlcG9ydC5qcyBhbmQgaGFzIG5vdCBlZmZlY3QiCi0gICAgICAgICApOwotICAgICAgICAg
dmFyIGR1bW15V2luID0gewotICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgIGxvZ1RvQ29uc29sZSgKLSAgICAgICAgICAgICAgICAgICJkdW1teVdpbmRvdy5j
bG9zZSgpIGluIHRlc3RoYXJuZXNzcmVwb3J0LmpzIGFuZCBoYXMgbm90IGVmZmVjdCIKLSAgICAg
ICAgICAgICAgICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICB9OwotICAgICAgICAgcmV0dXJu
IGR1bW15V2luOwotICAgICAgfTsKLSAgICAgIHdpbmRvdy5jbG9zZSA9IGZ1bmN0aW9uICgpIHsK
LSAgICAgICAgIGxvZ1RvQ29uc29sZSgKLSAgICAgICAgICAgICJ3aW5kb3cuY2xvc2UoKSBpcyBv
dmVycmlkZGVuIGluIHRlc3RoYXJuZXNzcmVwb3J0LmpzIGFuZCBoYXMgbm90IGVmZmVjdCIKLSAg
ICAgICAgICk7CisgIHRyeSB7CisgICAgdmFyIGRvY3VtZW50Um9vdCA9IGRvY3VtZW50LmJvZHkg
PyBkb2N1bWVudC5ib2R5IDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OworICAgIGRvY3VtZW50
Um9vdC5zdHlsZVsiYmFja2dyb3VuZC1jb2xvciJdID0gIiNGRkYiOworICAgIHdpbmRvdy5vcGVu
ID0gZnVuY3Rpb24gKCkgeworICAgICAgbG9nVG9Db25zb2xlKAorICAgICAgICAid2luZG93Lm9w
ZW4oKSBpcyBvdmVycmlkZGVuIGluIHRlc3RoYXJuZXNzcmVwb3J0LmpzIGFuZCBoYXMgbm90IGVm
ZmVjdCIKKyAgICAgICk7CisgICAgICB2YXIgZHVtbXlXaW4gPSB7CisgICAgICAgIGNsb3NlOiBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgbG9nVG9Db25zb2xlKAorICAgICAgICAgICAgImR1bW15
V2luZG93LmNsb3NlKCkgaW4gdGVzdGhhcm5lc3NyZXBvcnQuanMgYW5kIGhhcyBub3QgZWZmZWN0
IgorICAgICAgICAgICk7CisgICAgICAgIH0sCiAgICAgICB9OwotICAgfSBjYXRjaCAoZXJyKSB7
fQorICAgICAgcmV0dXJuIGR1bW15V2luOworICAgIH07CisgICAgd2luZG93LmNsb3NlID0gZnVu
Y3Rpb24gKCkgeworICAgICAgbG9nVG9Db25zb2xlKAorICAgICAgICAid2luZG93LmNsb3NlKCkg
aXMgb3ZlcnJpZGRlbiBpbiB0ZXN0aGFybmVzc3JlcG9ydC5qcyBhbmQgaGFzIG5vdCBlZmZlY3Qi
CisgICAgICApOworICAgIH07CisgIH0gY2F0Y2ggKGVycikge30KIAotICAgc2V0VGltZW91dChm
dW5jdGlvbiAoKSB7Ci0gICAgICBsb2FkTmV4dCgpOwotICAgfSwgX19XQVZFX19USU1FT1VUKTsK
KyAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgbG9hZE5leHQoKTsKKyAgfSwgX19XQVZF
X19USU1FT1VUKTsKIAotICAgZnVuY3Rpb24gbG9nVG9Db25zb2xlKCkgewotICAgICAgdmFyIHRl
eHQgPSAiIjsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsr
KSB7Ci0gICAgICAgICB0ZXh0ICs9IGFyZ3VtZW50c1tpXSArICIgIjsKKyAgZnVuY3Rpb24gbG9n
VG9Db25zb2xlKCkgeworICAgIHZhciB0ZXh0ID0gIiI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgIHRleHQgKz0gYXJndW1lbnRzW2ldICsg
IiAiOworICAgIH0KKyAgICBpZiAoY29uc29sZSAmJiBjb25zb2xlLmxvZykgeworICAgICAgY29u
c29sZS5sb2codGV4dCk7CisgICAgfQorICAgIGlmIChzY3JlZW5Db25zb2xlKSB7CisgICAgICB0
cnkgeworICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC8gL2dtLCAiJm5ic3A7Iik7CisgICAg
ICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xuL2dtLCAiPGJyLz4iKTsKKyAgICAgICAgc2NyZWVu
Q29uc29sZS5pbm5lckhUTUwgKz0gIjxici8+IiArIHRleHQ7CisgICAgICB9IGNhdGNoIChlcnJv
cikgeworICAgICAgICBzY3JlZW5Db25zb2xlLmlubmVyVGV4dCArPSAiXG4iICsgdGV4dDsKICAg
ICAgIH0KLSAgICAgIGlmIChjb25zb2xlICYmIGNvbnNvbGUubG9nKSB7Ci0gICAgICAgICBjb25z
b2xlLmxvZyh0ZXh0KTsKLSAgICAgIH0KLSAgICAgIGlmIChzY3JlZW5Db25zb2xlKSB7Ci0gICAg
ICAgICB0cnkgewotICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvIC9nbSwgIiZuYnNw
OyIpOwotICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXG4vZ20sICI8YnIvPiIpOwot
ICAgICAgICAgICAgc2NyZWVuQ29uc29sZS5pbm5lckhUTUwgKz0gIjxici8+IiArIHRleHQ7Ci0g
ICAgICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICAgICAgc2NyZWVuQ29uc29sZS5pbm5l
clRleHQgKz0gIlxuIiArIHRleHQ7Ci0gICAgICAgICB9Ci0gICAgICB9Ci0gICB9CisgICAgfQor
ICB9CiAKLSAgIGZ1bmN0aW9uIGR1bXBfYW5kX3JlcG9ydF90ZXN0X3Jlc3VsdHModGVzdHMsIHN0
YXR1cykgewotICAgICAgdmFyIHJlc3VsdHNfZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNjcmlwdCIpOwotICAgICAgcmVzdWx0c19lbGVtZW50LnR5cGUgPSAidGV4dC9qc29uIjsK
LSAgICAgIHJlc3VsdHNfZWxlbWVudC5pZCA9ICJfX3Rlc3RoYXJuZXNzX19yZXN1bHRzX18iOwot
ICAgICAgdmFyIHRlc3RfcmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbiAoeCkgewotICAgICAg
ICAgcmV0dXJuIHsKLSAgICAgICAgICAgIG5hbWU6IHgubmFtZSwKLSAgICAgICAgICAgIHN0YXR1
czogeC5zdGF0dXMsCi0gICAgICAgICAgICBtZXNzYWdlOiB4Lm1lc3NhZ2UsCi0gICAgICAgICAg
ICBzdGFjazogeC5zdGFjawotICAgICAgICAgfTsKLSAgICAgIH0pOwotICAgICAgdmFyIGRhdGEg
PSB7Ci0gICAgICAgICB0ZXN0OiB3aW5kb3cubG9jYXRpb24uaHJlZiwKLSAgICAgICAgIHRlc3Rz
OiB0ZXN0X3Jlc3VsdHMsCi0gICAgICAgICBzdGF0dXM6IHN0YXR1cy5zdGF0dXMsCi0gICAgICAg
ICBtZXNzYWdlOiBzdGF0dXMubWVzc2FnZSwKLSAgICAgICAgIHN0YWNrOiBzdGF0dXMuc3RhY2sK
KyAgZnVuY3Rpb24gZHVtcF9hbmRfcmVwb3J0X3Rlc3RfcmVzdWx0cyh0ZXN0cywgc3RhdHVzKSB7
CisgICAgdmFyIHJlc3VsdHNfZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpOworICAgIHJlc3VsdHNfZWxlbWVudC50eXBlID0gInRleHQvanNvbiI7CisgICAgcmVzdWx0
c19lbGVtZW50LmlkID0gIl9fdGVzdGhhcm5lc3NfX3Jlc3VsdHNfXyI7CisgICAgdmFyIHRlc3Rf
cmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbiAoeCkgeworICAgICAgcmV0dXJuIHsKKyAgICAg
ICAgbmFtZTogeC5uYW1lLAorICAgICAgICBzdGF0dXM6IHguc3RhdHVzLAorICAgICAgICBtZXNz
YWdlOiB4Lm1lc3NhZ2UsCisgICAgICAgIHN0YWNrOiB4LnN0YWNrLAogICAgICAgfTsKLSAgICAg
IHJlc3VsdHNfZWxlbWVudC50ZXh0Q29udGVudCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOworICAg
IH0pOworICAgIHZhciBkYXRhID0geworICAgICAgdGVzdDogd2luZG93LmxvY2F0aW9uLmhyZWYs
CisgICAgICB0ZXN0czogdGVzdF9yZXN1bHRzLAorICAgICAgc3RhdHVzOiBzdGF0dXMuc3RhdHVz
LAorICAgICAgbWVzc2FnZTogc3RhdHVzLm1lc3NhZ2UsCisgICAgICBzdGFjazogc3RhdHVzLnN0
YWNrLAorICAgIH07CisgICAgcmVzdWx0c19lbGVtZW50LnRleHRDb250ZW50ID0gSlNPTi5zdHJp
bmdpZnkoZGF0YSk7CiAKLSAgICAgIC8vIFRvIGF2b2lkIGEgSGllcmFyY2h5UmVxdWVzdEVycm9y
IHdpdGggWE1MIGRvY3VtZW50cywgZW5zdXJlIHRoYXQgJ3Jlc3VsdHNfZWxlbWVudCcKLSAgICAg
IC8vIGlzIGluc2VydGVkIGF0IGEgbG9jYXRpb24gdGhhdCByZXN1bHRzIGluIGEgdmFsaWQgZG9j
dW1lbnQuCi0gICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuYm9keSA/Ci0gICAgICAgICBkb2N1
bWVudC5ib2R5IC8vIDxib2R5PiBpcyByZXF1aXJlZCBpbiBYSFRNTCBkb2N1bWVudHMKLSAgICAg
ICAgIDoKLSAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsgLy8gZmFsbGJhY2sgZm9y
IG9wdGlvbmFsIDxib2R5PiBpbiBIVE1MNSwgU1ZHLCBldGMuCisgICAgLy8gVG8gYXZvaWQgYSBI
aWVyYXJjaHlSZXF1ZXN0RXJyb3Igd2l0aCBYTUwgZG9jdW1lbnRzLCBlbnN1cmUgdGhhdCAncmVz
dWx0c19lbGVtZW50JworICAgIC8vIGlzIGluc2VydGVkIGF0IGEgbG9jYXRpb24gdGhhdCByZXN1
bHRzIGluIGEgdmFsaWQgZG9jdW1lbnQuCisgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmJvZHkK
KyAgICAgID8gZG9jdW1lbnQuYm9keSAvLyA8Ym9keT4gaXMgcmVxdWlyZWQgaW4gWEhUTUwgZG9j
dW1lbnRzCisgICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsgLy8gZmFsbGJhY2sgZm9y
IG9wdGlvbmFsIDxib2R5PiBpbiBIVE1MNSwgU1ZHLCBldGMuCiAKLSAgICAgIHBhcmVudC5hcHBl
bmRDaGlsZChyZXN1bHRzX2VsZW1lbnQpOworICAgIHBhcmVudC5hcHBlbmRDaGlsZChyZXN1bHRz
X2VsZW1lbnQpOwogCisgICAgc2NyZWVuQ29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIik7CisgICAgaWYgKCFzY3JlZW5Db25zb2xlKSB7CiAgICAgICBzY3JlZW5Db25z
b2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICBzY3JlZW5Db25zb2xl
LnNldEF0dHJpYnV0ZSgiaWQiLCAiY29uc29sZSIpOwogICAgICAgc2NyZWVuQ29uc29sZS5zZXRB
dHRyaWJ1dGUoInN0eWxlIiwgImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IHBhZGRpbmc6IDVweCIp
OwogICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNjcmVlbkNvbnNvbGUpOwotICAgICAgd2luZG93
Lm9uZXJyb3IgPSBsb2dUb0NvbnNvbGU7CisgICAgfQorICAgIHdpbmRvdy5vbmVycm9yID0gbG9n
VG9Db25zb2xlOwogCi0gICAgICBmaW5pc2hXcHRUZXN0KGRhdGEpOwotICAgfQorICAgIGZpbmlz
aFdwdFRlc3QoZGF0YSk7CisgIH0KIAotICAgZnVuY3Rpb24gZmluaXNoV3B0VGVzdChkYXRhKSB7
Ci0gICAgICBsb2dUb0NvbnNvbGUoIkNyZWF0aW5nIHJlc3VsdCAuLi4iKTsKLSAgICAgIGRhdGEu
dGVzdCA9IF9fV0FWRV9fVEVTVDsKLSAgICAgIGNyZWF0ZVJlc3VsdCgKLSAgICAgICAgIF9fV0FW
RV9fVE9LRU4sCi0gICAgICAgICBkYXRhLAotICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAg
ICAgICAgbG9nVG9Db25zb2xlKCJSZXN1bHQgY3JlYXRlZC4iKTsKLSAgICAgICAgICAgIGxvYWRO
ZXh0KCk7Ci0gICAgICAgICB9LAotICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
bG9nVG9Db25zb2xlKCJGYWlsZWQgdG8gY3JlYXRlIHJlc3VsdC4iKTsKLSAgICAgICAgICAgIGxv
Z1RvQ29uc29sZSgiVHJ5aW5nIGFsdGVybmF0aXZlIG1ldGhvZCAuLi4iKTsKLSAgICAgICAgICAg
IGNyZWF0ZVJlc3VsdEFsdChfX1dBVkVfX1RPS0VOLCBkYXRhKTsKLSAgICAgICAgIH0KLSAgICAg
ICk7Ci0gICB9CisgIGZ1bmN0aW9uIGZpbmlzaFdwdFRlc3QoZGF0YSkgeworICAgIGxvZ1RvQ29u
c29sZSgiQ3JlYXRpbmcgcmVzdWx0IC4uLiIpOworICAgIGRhdGEudGVzdCA9IF9fV0FWRV9fVEVT
VDsKKyAgICBjcmVhdGVSZXN1bHQoCisgICAgICBfX1dBVkVfX1RPS0VOLAorICAgICAgZGF0YSwK
KyAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgbG9nVG9Db25zb2xlKCJSZXN1bHQgY3JlYXRl
ZC4iKTsKKyAgICAgICAgbG9hZE5leHQoKTsKKyAgICAgIH0sCisgICAgICBmdW5jdGlvbiAoKSB7
CisgICAgICAgIGxvZ1RvQ29uc29sZSgiRmFpbGVkIHRvIGNyZWF0ZSByZXN1bHQuIik7CisgICAg
ICAgIGxvZ1RvQ29uc29sZSgiVHJ5aW5nIGFsdGVybmF0aXZlIG1ldGhvZCAuLi4iKTsKKyAgICAg
ICAgY3JlYXRlUmVzdWx0QWx0KF9fV0FWRV9fVE9LRU4sIGRhdGEpOworICAgICAgfQorICAgICk7
CisgIH0KIAotICAgZnVuY3Rpb24gbG9hZE5leHQoKSB7Ci0gICAgICBsb2dUb0NvbnNvbGUoIkxv
YWRpbmcgbmV4dCB0ZXN0IC4uLiIpOwotICAgICAgaWYgKHdpbmRvdy5nYykgewotICAgICAgICAg
Ly8gVGhpcyBpcyB1c2luZyBhIGNocm9taXVtL3Y4IGZlYXR1cmUsIGVuYWJsZSBpdCBieQotICAg
ICAgICAgLy8gLS1qcy1mbGFncz0iZXhwb3NlLWdjIi4KLSAgICAgICAgIC8vIFRPRE86IFJlcGxh
Y2UgdGhpcyB3aXRoIFRlc3RVdGlscy5nYygpIG9uY2UvaWYgdGhhdCBpcyBhdmFpbGFibGUKLSAg
ICAgICAgIC8vIGluIGJyb3dzZXJzOgotICAgICAgICAgLy8gaHR0cHM6Ly9qZ3JhaGFtLmdpdGh1
Yi5pby9icm93c2VyLXRlc3QvI3RoZS10ZXN0dXRpbHMtb2JqZWN0Ci0gICAgICAgICBsb2dUb0Nv
bnNvbGUoIkZvcmNpbmcgZ2FyYmFnZSBjb2xsZWN0aW9uIHVzaW5nIHdpbmRvdy5nYygpIik7Ci0g
ICAgICAgICB3aW5kb3cuZ2MoKTsKKyAgZnVuY3Rpb24gbG9hZE5leHQoKSB7CisgICAgbG9nVG9D
b25zb2xlKCJMb2FkaW5nIG5leHQgdGVzdCAuLi4iKTsKKyAgICByZWFkTmV4dFRlc3QoCisgICAg
ICBfX1dBVkVfX1RPS0VOLAorICAgICAgZnVuY3Rpb24gKHVybCkgeworICAgICAgICBsb2dUb0Nv
bnNvbGUoIlJlZGlyZWN0aW5nIHRvICIgKyB1cmwpOworICAgICAgICBsb2NhdGlvbi5ocmVmID0g
dXJsOworICAgICAgfSwKKyAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgbG9nVG9Db25zb2xl
KCJDb3VsZCBub3QgbG9hZCBuZXh0IHRlc3QuIik7CisgICAgICAgIGxvZ1RvQ29uc29sZSgiVHJ5
aW5nIGFsdGVybmF0aXZlIG1ldGhvZCAuLi4iKTsKKyAgICAgICAgcmVhZE5leHRBbHQoX19XQVZF
X19UT0tFTik7CiAgICAgICB9Ci0gICAgICByZWFkTmV4dFRlc3QoCi0gICAgICAgICBfX1dBVkVf
X1RPS0VOLAotICAgICAgICAgZnVuY3Rpb24gKHVybCkgewotICAgICAgICAgICAgbG9nVG9Db25z
b2xlKCJSZWRpcmVjdGluZyB0byAiICsgdXJsKTsKLSAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYg
PSB1cmw7Ci0gICAgICAgICB9LAotICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg
bG9nVG9Db25zb2xlKCJDb3VsZCBub3QgbG9hZCBuZXh0IHRlc3QuIik7Ci0gICAgICAgICAgICBs
b2dUb0NvbnNvbGUoIlRyeWluZyBhbHRlcm5hdGl2ZSBtZXRob2QgLi4uIik7Ci0gICAgICAgICAg
ICByZWFkTmV4dEFsdChfX1dBVkVfX1RPS0VOKTsKLSAgICAgICAgIH0KLSAgICAgICk7Ci0gICB9
CisgICAgKTsKKyAgfQogCi0gICBmdW5jdGlvbiByZWFkTmV4dFRlc3QodG9rZW4sIG9uU3VjY2Vz
cywgb25FcnJvcikgewotICAgICAgc2VuZFJlcXVlc3QoCi0gICAgICAgICAiR0VUIiwKLSAgICAg
ICAgICJhcGkvdGVzdHMvIiArIHRva2VuICsgIi9uZXh0IiwKLSAgICAgICAgIG51bGwsCi0gICAg
ICAgICBudWxsLAotICAgICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICB2
YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwotICAgICAgICAgICAgb25TdWNj
ZXNzKGpzb25PYmplY3QubmV4dF90ZXN0KTsKLSAgICAgICAgIH0sCi0gICAgICAgICBvbkVycm9y
Ci0gICAgICApOwotICAgfQorICBmdW5jdGlvbiByZWFkTmV4dFRlc3QodG9rZW4sIG9uU3VjY2Vz
cywgb25FcnJvcikgeworICAgIHNlbmRSZXF1ZXN0KAorICAgICAgIkdFVCIsCisgICAgICAiYXBp
L3Rlc3RzLyIgKyB0b2tlbiArICIvbmV4dCIsCisgICAgICBudWxsLAorICAgICAgbnVsbCwKKyAg
ICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04u
cGFyc2UocmVzcG9uc2UpOworICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdC5uZXh0X3Rlc3Qp
OworICAgICAgfSwKKyAgICAgIG9uRXJyb3IKKyAgICApOworICB9CiAKLSAgIGZ1bmN0aW9uIHJl
YWROZXh0QWx0KHRva2VuKSB7Ci0gICAgICBsb2NhdGlvbi5ocmVmID0gZ2V0V2F2ZVVybCgibmV4
dC5odG1sP3Rva2VuPSIgKyB0b2tlbik7Ci0gICB9CisgIGZ1bmN0aW9uIHJlYWROZXh0QWx0KHRv
a2VuKSB7CisgICAgbG9jYXRpb24uaHJlZiA9CisgICAgICBsb2NhdGlvbi5wcm90b2NvbCArCisg
ICAgICAiLy8iICsKKyAgICAgIGxvY2F0aW9uLmhvc3QgKworICAgICAgZ2V0V2F2ZVVybCgibmV4
dC5odG1sP3Rva2VuPSIgKyB0b2tlbik7CisgIH0KIAotICAgZnVuY3Rpb24gY3JlYXRlUmVzdWx0
KHRva2VuLCByZXN1bHQsIG9uU3VjY2Vzcywgb25FcnJvcikgewotICAgICAgc2VuZFJlcXVlc3Qo
Ci0gICAgICAgICAiUE9TVCIsCi0gICAgICAgICAiYXBpL3Jlc3VsdHMvIiArIHRva2VuLCB7Ci0g
ICAgICAgICAgICAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iCi0gICAgICAgICB9
LAotICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwKLSAgICAgICAgIGZ1bmN0aW9uICgp
IHsKLSAgICAgICAgICAgIG9uU3VjY2VzcygpOwotICAgICAgICAgfSwKLSAgICAgICAgIG9uRXJy
b3IKLSAgICAgICk7Ci0gICB9CisgIGZ1bmN0aW9uIGNyZWF0ZVJlc3VsdCh0b2tlbiwgcmVzdWx0
LCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgICBzZW5kUmVxdWVzdCgKKyAgICAgICJQT1NUIiwK
KyAgICAgICJhcGkvcmVzdWx0cy8iICsgdG9rZW4sCisgICAgICB7CisgICAgICAgICJDb250ZW50
LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIsCisgICAgICB9LAorICAgICAgSlNPTi5zdHJpbmdp
ZnkocmVzdWx0KSwKKyAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgb25TdWNjZXNzKCk7Cisg
ICAgICB9LAorICAgICAgb25FcnJvcgorICAgICk7CisgIH0KIAotICAgZnVuY3Rpb24gY3JlYXRl
UmVzdWx0QWx0KHRva2VuLCByZXN1bHQpIHsKLSAgICAgIGxvY2F0aW9uLmhyZWYgPSBfX1dBVkVf
X1dFQl9ST09UICsgInN1Ym1pdHJlc3VsdC5odG1sIiArCi0gICAgICAgICAiP3Rva2VuPSIgKyB0
b2tlbiArCi0gICAgICAgICAiJnJlc3VsdD0iICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3Ry
aW5naWZ5KHJlc3VsdCkpOwotICAgfQorICBmdW5jdGlvbiBjcmVhdGVSZXN1bHRBbHQodG9rZW4s
IHJlc3VsdCkgeworICAgIGxvY2F0aW9uLmhyZWYgPQorICAgICAgX19XQVZFX19XRUJfUk9PVCAr
CisgICAgICAic3VibWl0cmVzdWx0Lmh0bWwiICsKKyAgICAgICI/dG9rZW49IiArCisgICAgICB0
b2tlbiArCisgICAgICAiJnJlc3VsdD0iICsKKyAgICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09O
LnN0cmluZ2lmeShyZXN1bHQpKTsKKyAgfQogCi0gICBmdW5jdGlvbiBzZW5kUmVxdWVzdChtZXRo
b2QsIHVyaSwgaGVhZGVycywgZGF0YSwgb25TdWNjZXNzLCBvbkVycm9yKSB7Ci0gICAgICB2YXIg
dXJsID0gZ2V0V2F2ZVVybCh1cmkpOwotICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICBvblN1Y2Nlc3MoeGhyLnJlc3BvbnNlKTsKLSAgICAgIH0pOwotICAgICAgeGhyLmFk
ZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgaWYgKG9uRXJy
b3IpIG9uRXJyb3IoKTsKLSAgICAgIH0pOwotICAgICAgbG9nVG9Db25zb2xlKCJTZW5kaW5nIiwg
bWV0aG9kLCAncmVxdWVzdCB0byAiJyArIHVybCArICciJyk7Ci0gICAgICB4aHIub3BlbihtZXRo
b2QsIHVybCwgdHJ1ZSk7Ci0gICAgICBpZiAoaGVhZGVycykgewotICAgICAgICAgZm9yICh2YXIg
aGVhZGVyIGluIGhlYWRlcnMpIHsKLSAgICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKGhl
YWRlciwgaGVhZGVyc1toZWFkZXJdKTsKLSAgICAgICAgIH0KKyAgZnVuY3Rpb24gc2VuZFJlcXVl
c3QobWV0aG9kLCB1cmksIGhlYWRlcnMsIGRhdGEsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICAg
IHZhciB1cmwgPSBnZXRXYXZlVXJsKHVyaSk7CisgICAgdXJsID0gbG9jYXRpb24ucHJvdG9jb2wg
KyAiLy8iICsgbG9jYXRpb24uaG9zdCArIHVybDsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbiAoKSB7
CisgICAgICBvblN1Y2Nlc3MoeGhyLnJlc3BvbnNlKTsKKyAgICB9KTsKKyAgICB4aHIuYWRkRXZl
bnRMaXN0ZW5lcigiZXJyb3IiLCBmdW5jdGlvbiAoKSB7CisgICAgICBpZiAob25FcnJvcikgb25F
cnJvcigpOworICAgIH0pOworICAgIGxvZ1RvQ29uc29sZSgiU2VuZGluZyIsIG1ldGhvZCwgJ3Jl
cXVlc3QgdG8gIicgKyB1cmwgKyAnIicpOworICAgIHhoci5vcGVuKG1ldGhvZCwgdXJsLCB0cnVl
KTsKKyAgICBpZiAoaGVhZGVycykgeworICAgICAgZm9yICh2YXIgaGVhZGVyIGluIGhlYWRlcnMp
IHsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLCBoZWFkZXJzW2hlYWRlcl0p
OwogICAgICAgfQotICAgICAgeGhyLnNlbmQoZGF0YSk7Ci0gICB9Ci0KLSAgIGZ1bmN0aW9uIGdl
dFdhdmVVcmwodXJpKSB7Ci0gICAgICB2YXIgdXJsID0gX19XQVZFX19XRUJfUk9PVCArIHVyaTsK
LSAgICAgIGNvbnNvbGUubG9nKHVybCkKLSAgICAgIHJldHVybiB1cmw7Ci0gICB9CisgICAgfQor
ICAgIHhoci5zZW5kKGRhdGEpOworICB9CiAKLSAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGR1
bXBfYW5kX3JlcG9ydF90ZXN0X3Jlc3VsdHMpOworICBmdW5jdGlvbiBnZXRXYXZlVXJsKHVyaSkg
eworICAgIHZhciB1cmwgPSBfX1dBVkVfX1dFQl9ST09UICsgdXJpOworICAgIHJldHVybiB1cmw7
CisgIH0KIAorICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhkdW1wX2FuZF9yZXBvcnRfdGVzdF9y
ZXN1bHRzKTsKIH0gZWxzZSB7Ci0gICBmdW5jdGlvbiBkdW1wX3Rlc3RfcmVzdWx0cyh0ZXN0cywg
c3RhdHVzKSB7Ci0gICAgICB2YXIgcmVzdWx0c19lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2NyaXB0Iik7Ci0gICAgICByZXN1bHRzX2VsZW1lbnQudHlwZSA9ICJ0ZXh0L2pzb24i
OwotICAgICAgcmVzdWx0c19lbGVtZW50LmlkID0gIl9fdGVzdGhhcm5lc3NfX3Jlc3VsdHNfXyI7
Ci0gICAgICB2YXIgdGVzdF9yZXN1bHRzID0gdGVzdHMubWFwKGZ1bmN0aW9uICh4KSB7Ci0gICAg
ICAgICByZXR1cm4gewotICAgICAgICAgICAgbmFtZTogeC5uYW1lLAotICAgICAgICAgICAgc3Rh
dHVzOiB4LnN0YXR1cywKLSAgICAgICAgICAgIG1lc3NhZ2U6IHgubWVzc2FnZSwKLSAgICAgICAg
ICAgIHN0YWNrOiB4LnN0YWNrCi0gICAgICAgICB9Ci0gICAgICB9KTsKLSAgICAgIHZhciBkYXRh
ID0gewotICAgICAgICAgdGVzdDogd2luZG93LmxvY2F0aW9uLmhyZWYsCi0gICAgICAgICB0ZXN0
czogdGVzdF9yZXN1bHRzLAotICAgICAgICAgc3RhdHVzOiBzdGF0dXMuc3RhdHVzLAotICAgICAg
ICAgbWVzc2FnZTogc3RhdHVzLm1lc3NhZ2UsCi0gICAgICAgICBzdGFjazogc3RhdHVzLnN0YWNr
CisgIGZ1bmN0aW9uIGR1bXBfdGVzdF9yZXN1bHRzKHRlc3RzLCBzdGF0dXMpIHsKKyAgICB2YXIg
cmVzdWx0c19lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAg
cmVzdWx0c19lbGVtZW50LnR5cGUgPSAidGV4dC9qc29uIjsKKyAgICByZXN1bHRzX2VsZW1lbnQu
aWQgPSAiX190ZXN0aGFybmVzc19fcmVzdWx0c19fIjsKKyAgICB2YXIgdGVzdF9yZXN1bHRzID0g
dGVzdHMubWFwKGZ1bmN0aW9uICh4KSB7CisgICAgICByZXR1cm4geworICAgICAgICBuYW1lOiB4
Lm5hbWUsCisgICAgICAgIHN0YXR1czogeC5zdGF0dXMsCisgICAgICAgIG1lc3NhZ2U6IHgubWVz
c2FnZSwKKyAgICAgICAgc3RhY2s6IHguc3RhY2ssCiAgICAgICB9OwotICAgICAgcmVzdWx0c19l
bGVtZW50LnRleHRDb250ZW50ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CisgICAgfSk7CisgICAg
dmFyIGRhdGEgPSB7CisgICAgICB0ZXN0OiB3aW5kb3cubG9jYXRpb24uaHJlZiwKKyAgICAgIHRl
c3RzOiB0ZXN0X3Jlc3VsdHMsCisgICAgICBzdGF0dXM6IHN0YXR1cy5zdGF0dXMsCisgICAgICBt
ZXNzYWdlOiBzdGF0dXMubWVzc2FnZSwKKyAgICAgIHN0YWNrOiBzdGF0dXMuc3RhY2ssCisgICAg
fTsKKyAgICByZXN1bHRzX2VsZW1lbnQudGV4dENvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShkYXRh
KTsKIAotICAgICAgLy8gVG8gYXZvaWQgYSBIaWVyYXJjaHlSZXF1ZXN0RXJyb3Igd2l0aCBYTUwg
ZG9jdW1lbnRzLCBlbnN1cmUgdGhhdCAncmVzdWx0c19lbGVtZW50JwotICAgICAgLy8gaXMgaW5z
ZXJ0ZWQgYXQgYSBsb2NhdGlvbiB0aGF0IHJlc3VsdHMgaW4gYSB2YWxpZCBkb2N1bWVudC4KLSAg
ICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5ib2R5Ci0gICAgICAgICA/IGRvY3VtZW50LmJvZHkg
Ly8gPGJvZHk+IGlzIHJlcXVpcmVkIGluIFhIVE1MIGRvY3VtZW50cwotICAgICAgICAgOiBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQ7IC8vIGZhbGxiYWNrIGZvciBvcHRpb25hbCA8Ym9keT4gaW4g
SFRNTDUsIFNWRywgZXRjLgorICAgIC8vIFRvIGF2b2lkIGEgSGllcmFyY2h5UmVxdWVzdEVycm9y
IHdpdGggWE1MIGRvY3VtZW50cywgZW5zdXJlIHRoYXQgJ3Jlc3VsdHNfZWxlbWVudCcKKyAgICAv
LyBpcyBpbnNlcnRlZCBhdCBhIGxvY2F0aW9uIHRoYXQgcmVzdWx0cyBpbiBhIHZhbGlkIGRvY3Vt
ZW50LgorICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5ib2R5CisgICAgICA/IGRvY3VtZW50LmJv
ZHkgLy8gPGJvZHk+IGlzIHJlcXVpcmVkIGluIFhIVE1MIGRvY3VtZW50cworICAgICAgOiBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQ7IC8vIGZhbGxiYWNrIGZvciBvcHRpb25hbCA8Ym9keT4gaW4g
SFRNTDUsIFNWRywgZXRjLgogCi0gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQocmVzdWx0c19lbGVt
ZW50KTsKLSAgIH0KKyAgICBwYXJlbnQuYXBwZW5kQ2hpbGQocmVzdWx0c19lbGVtZW50KTsKKyAg
fQogCi0gICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhkdW1wX3Rlc3RfcmVzdWx0cyk7CisgIGFk
ZF9jb21wbGV0aW9uX2NhbGxiYWNrKGR1bXBfdGVzdF9yZXN1bHRzKTsKIAotICAgLyogSWYgdGhl
IHBhcmVudCB3aW5kb3cgaGFzIGEgdGVzdGhhcm5lc3NfcHJvcGVydGllcyBvYmplY3QsCi0gICAg
KiB3ZSB1c2UgdGhpcyB0byBwcm92aWRlIHRoZSB0ZXN0IHNldHRpbmdzLiBUaGlzIGlzIHVzZWQg
YnkgdGhlCi0gICAgKiBkZWZhdWx0IGluLWJyb3dzZXIgcnVubmVyIHRvIGNvbmZpZ3VyZSB0aGUg
dGltZW91dCBhbmQgdGhlCi0gICAgKiByZW5kZXJpbmcgb2YgcmVzdWx0cwotICAgICovCi0gICB0
cnkgewotICAgICAgaWYgKHdpbmRvdy5vcGVuZXIgJiYgInRlc3RoYXJuZXNzX3Byb3BlcnRpZXMi
IGluIHdpbmRvdy5vcGVuZXIpIHsKLSAgICAgICAgIC8qIElmIHdlIHBhc3MgdGhlIHRlc3RoYXJu
ZXNzX3Byb3BlcnRpZXMgb2JqZWN0IGFzLWlzIGhlcmUgd2l0aG91dAotICAgICAgICAgICogSlNP
TiBzdHJpbmdpZnlpbmcgYW5kIHJlcGFyc2luZyBpdCwgSUUgZmFpbHMgJiBlbWl0cyB0aGUgbWVz
c2FnZQotICAgICAgICAgICogIkNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgb3BlcmF0aW9uIGR1ZSB0
byBlcnJvciA4MDcwMDAxOSIuCi0gICAgICAgICAgKi8KLSAgICAgICAgIHNldHVwKEpTT04ucGFy
c2UoSlNPTi5zdHJpbmdpZnkod2luZG93Lm9wZW5lci50ZXN0aGFybmVzc19wcm9wZXJ0aWVzKSkp
OwotICAgICAgfQotICAgfSBjYXRjaCAoZSkge30KLSAgIC8vIHZpbTogc2V0IGV4cGFuZHRhYiBz
aGlmdHdpZHRoPTQgdGFic3RvcD00OgorICAvKiBJZiB0aGUgcGFyZW50IHdpbmRvdyBoYXMgYSB0
ZXN0aGFybmVzc19wcm9wZXJ0aWVzIG9iamVjdCwKKyAgICogd2UgdXNlIHRoaXMgdG8gcHJvdmlk
ZSB0aGUgdGVzdCBzZXR0aW5ncy4gVGhpcyBpcyB1c2VkIGJ5IHRoZQorICAgKiBkZWZhdWx0IGlu
LWJyb3dzZXIgcnVubmVyIHRvIGNvbmZpZ3VyZSB0aGUgdGltZW91dCBhbmQgdGhlCisgICAqIHJl
bmRlcmluZyBvZiByZXN1bHRzCisgICAqLworICB0cnkgeworICAgIGlmICh3aW5kb3cub3BlbmVy
ICYmICJ0ZXN0aGFybmVzc19wcm9wZXJ0aWVzIiBpbiB3aW5kb3cub3BlbmVyKSB7CisgICAgICAv
KiBJZiB3ZSBwYXNzIHRoZSB0ZXN0aGFybmVzc19wcm9wZXJ0aWVzIG9iamVjdCBhcy1pcyBoZXJl
IHdpdGhvdXQKKyAgICAgICAqIEpTT04gc3RyaW5naWZ5aW5nIGFuZCByZXBhcnNpbmcgaXQsIElF
IGZhaWxzICYgZW1pdHMgdGhlIG1lc3NhZ2UKKyAgICAgICAqICJDb3VsZCBub3QgY29tcGxldGUg
dGhlIG9wZXJhdGlvbiBkdWUgdG8gZXJyb3IgODA3MDAwMTkiLgorICAgICAgICovCisgICAgICBz
ZXR1cChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHdpbmRvdy5vcGVuZXIudGVzdGhhcm5lc3Nf
cHJvcGVydGllcykpKTsKKyAgICB9CisgIH0gY2F0Y2ggKGUpIHt9CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVz
b3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWY2NWE1NjBmZGNjMjUwNjY1ZTdjZDdmNTcyZGRmZjFlNzBl
YWZiNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvcmVzb3Vy
Y2VzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3QvV0FWRSBMb2Nh
bC5wb3N0bWFuX2Vudmlyb25tZW50Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdC9XQVZFIExvY2FsLnBvc3RtYW5fZW52aXJv
bm1lbnQuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWE2YTA4OWFiNTNjNzQ3NzM2YmEzM2Q3ZDQ0NGM3NDkw
N2ZlOTFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3QvV0FWRSBMb2NhbC5wb3N0bWFuX2Vudmlyb25t
ZW50Lmpzb24JCkBAIC0wLDAgKzEsMzQgQEAKK3sKKwkiaWQiOiAiMzdiZThlYzQtNzg1NS00NTU0
LTg2N2UtN2E1ZDJhNGY5OWU2IiwKKwkibmFtZSI6ICJXQVZFIExvY2FsIiwKKwkidmFsdWVzIjog
WworCQl7CisJCQkia2V5IjogImhvc3QiLAorCQkJInZhbHVlIjogIndlYi1wbGF0Zm9ybS50ZXN0
IiwKKwkJCSJlbmFibGVkIjogdHJ1ZQorCQl9LAorCQl7CisJCQkia2V5IjogInBvcnQiLAorCQkJ
InZhbHVlIjogIjgwMDAiLAorCQkJImVuYWJsZWQiOiB0cnVlCisJCX0sCisJCXsKKwkJCSJrZXki
OiAicHJvdG9jb2wiLAorCQkJInZhbHVlIjogImh0dHAiLAorCQkJImVuYWJsZWQiOiB0cnVlCisJ
CX0sCisJCXsKKwkJCSJrZXkiOiAid2ViX3Jvb3QiLAorCQkJInZhbHVlIjogIl93YXZlIiwKKwkJ
CSJlbmFibGVkIjogdHJ1ZQorCQl9LAorCQl7CisJCQkia2V5IjogImRldmljZV90aW1lb3V0IiwK
KwkJCSJ2YWx1ZSI6ICI2MDAwMCIsCisJCQkiZW5hYmxlZCI6IHRydWUKKwkJfQorCV0sCisJIl9w
b3N0bWFuX3ZhcmlhYmxlX3Njb3BlIjogImVudmlyb25tZW50IiwKKwkiX3Bvc3RtYW5fZXhwb3J0
ZWRfYXQiOiAiMjAyMC0wNS0yNVQxMjoxMjozNy4wOThaIiwKKwkiX3Bvc3RtYW5fZXhwb3J0ZWRf
dXNpbmciOiAiUG9zdG1hbi83LjI1LjAiCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL3Rlc3QvV0FWRSBTZXJ2ZXIgUkVTVCBBUEkgVGVzdHMucG9zdG1hbl9jb2xsZWN0
aW9uLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvdGVzdC9XQVZFIFNlcnZlciBSRVNUIEFQSSBUZXN0cy5wb3N0bWFuX2NvbGxlY3Rp
b24uanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45M2NiZWRiNTA0ODY5ZDRiNzE2ZmM0Y2MwZTk2N2FlOTA3MWZm
NzI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3QvV0FWRSBTZXJ2ZXIgUkVTVCBBUEkgVGVzdHMucG9z
dG1hbl9jb2xsZWN0aW9uLmpzb24JCkBAIC0wLDAgKzEsOTgzMyBAQAoreworCSJpbmZvIjogewor
CQkiX3Bvc3RtYW5faWQiOiAiY2NkNjExN2EtNmQ2MS00NjE3LWE2YTEtNzExNWRiNGQ0ZDkyIiwK
KwkJIm5hbWUiOiAiV0FWRSBTZXJ2ZXIgUkVTVCBBUEkgVGVzdHMiLAorCQkic2NoZW1hIjogImh0
dHBzOi8vc2NoZW1hLmdldHBvc3RtYW4uY29tL2pzb24vY29sbGVjdGlvbi92Mi4xLjAvY29sbGVj
dGlvbi5qc29uIgorCX0sCisJIml0ZW0iOiBbCisJCXsKKwkJCSJuYW1lIjogIlJlYWQgQXZhaWxh
YmxlIFRlc3RzIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiUmVhZCBBdmFp
bGFibGUgVGVzdHMiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiMDUxYmVmOTQtNTU0
NC00ZGRiLTlkODUtMTY3Njc3ZWJlY2IyIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIgYXZhaWxhYmxlVGVzdHMgPSBwbS5yZXNwb25z
ZS5qc29uKCk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVj
dHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KHR5cGVvZiBhdmFpbGFibGVUZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJ
CQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKSkg
eyIsCisJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoYXZhaWxhYmxlVGVzdHNbYXBpXSkudG8u
YmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSIgICAgICAgIHZhciBhcGlSZWdF
eHAgPSBuZXcgUmVnRXhwKFwiXi9cIiArIGFwaSwgXCJpXCIpOyIsCisJCQkJCQkJCQkiICAgICAg
ICBmb3IgKHZhciB0ZXN0IG9mIGF2YWlsYWJsZVRlc3RzW2FwaV0pIHsiLAorCQkJCQkJCQkJIiAg
ICAgICAgICAgIHBtLmV4cGVjdCh0ZXN0KS50by5tYXRjaChhcGlSZWdFeHApOyIsCisJCQkJCQkJ
CQkiICAgICAgICB9IiwKKwkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJInZhciBpbmNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCSJ2
YXIgZXhjbHVkZWRUZXN0cyA9IFtdOyIsCisJCQkJCQkJCQkidmFyIHNwZWNpYWxUaW1lb3V0VGVz
dCA9IFwiXCI7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBhcGlzID0gT2JqZWN0Lmtl
eXMoYXZhaWxhYmxlVGVzdHMpOyIsCisJCQkJCQkJCQkiZm9yKHZhciBhcGkgb2YgYXBpcykgeyIs
CisJCQkJCQkJCQkiICAgIGlmIChhdmFpbGFibGVUZXN0c1thcGldLmxlbmd0aCA+IDUwKSB7IiwK
KwkJCQkJCQkJCSIgICAgICAgIHZhciBzdWJEaXJzID0gYXZhaWxhYmxlVGVzdHNbYXBpXS5tYXAo
dGVzdCA9PiB0ZXN0LnNwbGl0KFwiL1wiKS5maWx0ZXIocGFydCA9PiAhIXBhcnQpLmpvaW4oXCIv
XCIpLnNwbGl0KFwiL1wiKVsxXSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5pbmRleE9mKGN1
cnIpID09PSAtMSA/IGFjYy5jb25jYXQoW2N1cnJdKSA6IGFjYywgW10pOyIsCisJCQkJCQkJCQki
ICAgICAgICBpZiAoc3ViRGlycy5sZW5ndGggPiAyKSB7IiwKKwkJCQkJCQkJCSIgICAgICAgICAg
ICBpbmNsdWRlZFRlc3RzLnB1c2goXCIvXCIgKyBhcGkpOyIsCisJCQkJCQkJCQkiICAgICAgICAg
ICAgZXhjbHVkZWRUZXN0cy5wdXNoKFwiL1wiICsgYXBpICsgXCIvXCIgKyBzdWJEaXJzWzBdKTsi
LAorCQkJCQkJCQkJIiAgICAgICAgICAgIHNwZWNpYWxUaW1lb3V0VGVzdCA9IGF2YWlsYWJsZVRl
c3RzW2FwaV1bYXZhaWxhYmxlVGVzdHNbYXBpXS5sZW5ndGggLSAxXTsiLAorCQkJCQkJCQkJIiAg
ICAgICAgICAgIGJyZWFrOyIsCisJCQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJCQkJCSIgICAg
ICAgICIsCisJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJIn0iLAorCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdmFpbGFibGVfdGVzdHNcIiwgSlNPTi5zdHJpbmdp
ZnkoYXZhaWxhYmxlVGVzdHMpKTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiaW5jbHVk
ZWRfdGVzdHNcIiwgSlNPTi5zdHJpbmdpZnkoaW5jbHVkZWRUZXN0cykpOyIsCisJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJleGNsdWRlZF90ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShleGNsdWRl
ZFRlc3RzKSk7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNwZWNpYWxfdGltZW91dF90
ZXN0XCIsIHNwZWNpYWxUaW1lb3V0VGVzdC5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7IgorCQkJCQkJ
CQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJ
fQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3Rv
Y29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzIiwKKwkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJ
CQkJCSJ0ZXN0cyIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9CisJCX0s
CisJCXsKKwkJCSJuYW1lIjogIkNyZWF0ZSBhbmQgUmVhZCBTZXNzaW9ucyIsCisJCQkiaXRlbSI6
IFsKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0YXJ0IGV4cGlyaW5nIHNlc3Npb24gcmVtb3ZlIGV4
cGlyYXRpb24gZGF0ZSIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IkNyZWF0ZSBTZXNzaW9uIFdpdGggRXhwaXJhdGlvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJ
CQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkiaWQiOiAiYThiZjNlNDEtYTdkZi00YzZiLThhMjAtM2ExZTZkOGE1MWQ5IiwK
KwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1b
YS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4g
aW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpz
b25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQo
XCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICI0MzcwNTQ2Zi1iMDhjLTRmNzctOWJkOS0xY2QxNDQwMDY2NWUiLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkidmFyIGV4cGlyYXRpb25EYXRlID0gRGF0
ZS5ub3coKSArIDEwMDAwOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImV4cGlyYXRp
b25fZGF0ZVwiLCBleHBpcmF0aW9uRGF0ZSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwK
KwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJ
ImhlYWRlciI6IFsKKwkJCQkJCQkJCXsKKwkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIs
CisJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0IiwKKwkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQkJCX0K
KwkJCQkJCQkJXSwKKwkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkibW9kZSI6ICJyYXciLAor
CQkJCQkJCQkJInJhdyI6ICJ7XG5cdFwiZXhwaXJhdGlvbl9kYXRlXCI6IHt7ZXhwaXJhdGlvbl9k
YXRlfX1cbn0iCisJCQkJCQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lv
bnMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQi
OiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9
fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJXQor
CQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJ
CQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIzZGNiNWI2Yy05MTUxLTQ5ZjctYTFhNi03NDQ3
NTkyN2IzMDQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsi
LAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17
OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBj
b250YWlucyBleHBpcmF0aW9uIGRhdGVcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZXhwaXJhdGlvbl9kYXRl
XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZh
ciBleHBpcmF0aW9uRGF0ZSA9IHBtLmdsb2JhbHMuZ2V0KFwiZXhwaXJhdGlvbl9kYXRlXCIpOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkV4cGlyYXRpb24gZGF0ZSBp
cyBhcyBzcGVjaWZpZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KERhdGUucGFyc2UoanNvbkRhdGEuZXhwaXJhdGlvbl9kYXRlKSkudG8uZXF1YWwoZXhwaXJh
dGlvbkRhdGUpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nl
c3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQld
LAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMi
CisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtd
CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24iLAorCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjhkMDU1NzhhLWUyZDYtNDFlOS1h
MmE0LWFhN2Q5MmJmYmJjZSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIK
KwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJ
CSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGFydCIsCisJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9r
ZW59fSIsCisJCQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJ
fSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFt
ZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICI0YzVlM2JhNC1lMjdiLTQzNDEtOGNmOC03NGVkMDQ3YTg3NDciLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2Et
ZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBjb250YWlucyBleHBpcmF0aW9u
IGRhdGVcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhKS50by5oYXZlLnByb3BlcnR5KFwiZXhwaXJhdGlvbl9kYXRlXCIpOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJFeHBpcmF0aW9u
IGRhdGUgaXMgbnVsbFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEuZXhwaXJhdGlvbl9kYXRlKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSJ9
KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJ
CQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0v
e3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJ
CQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJ
CQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJ
CSJuYW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhv
ZCI6ICJERUxFVEUiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jv
b3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29s
IjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0
fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJ
InBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJ
CQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJ
CQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJ
CQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQki
X3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFBy
b2ZpbGVCZWhhdmlvciI6IHt9CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIlJlYWQgUHVibGljIFNl
c3Npb25zIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiUmVhZCBQdWJsaWMg
U2Vzc2lvbnMiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiMTA4MWFmZDgtYTc3Mi00
NTY1LWIwM2QtYjU4Zjc3M2NiYjY1IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uc2UgaXMgSlNPTiBBcnJheVwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uYmUuYW4u
aW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJ
CQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJImhlYWRlciI6
IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMvcHVibGljIiwKKwkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7
aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CSJzZXNzaW9ucyIsCisJCQkJCQkJCSJwdWJsaWMiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9
LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxl
QmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJGaW5kIFNlc3Npb24iLAorCQkJ
Iml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBObyBDb25maWd1
cmF0aW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjI2OGU4YTMxLTg3YmItNGVj
NS04MWQ1LTg3ZGM3NDA5NjgyOCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2Et
ZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9
JFwiKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGgg
dG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHZh
ciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJ
CQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3Qg
cmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCB0b2tlbiA9
IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rv
a2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJeworCQkJCQkJ
CQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIs
CisJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24v
anNvbiIKKwkJCQkJCQl9CisJCQkJCQldLAorCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJIm1vZGUi
OiAicmF3IiwKKwkJCQkJCQkicmF3IjogIiIKKwkJCQkJCX0sCisJCQkJCQkidXJsIjogeworCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJXQorCQkJCQkJfQor
CQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6
ICJGaW5kIFNlc3Npb24gVG9rZW4iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJ
Imxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQi
OiAiNjI1ZmNjMmEtZjdiMS00MDNjLWI1YzUtNTZkYjdjNWJjZWU1IiwKKwkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9r
ZW5cIik7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5fZnJhZ21l
bnRcIiwgdG9rZW4uc3BsaXQoXCItXCIpLnNoaWZ0KCkpOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQi
OiAiOGUwNDIxMmYtZTI1OS00MTNmLTk4ZWUtZTM2NmNkM2FkZmRkIiwKKwkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAor
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJjb25zdCBzZXNzaW9uVG9r
ZW4gPSBwbS5nbG9iYWxzLmdldChcInNlc3Npb25fdG9rZW5cIik7IiwKKwkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJInBtLnRlc3QoXCJGb3VuZCB0b2tlbiBpcyBvcmlnaW5hbCB0b2tlblwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8uZXF1YWwo
c2Vzc2lvblRva2VuKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW5fZnJhZ21l
bnR9fSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VuX2Zy
YWdtZW50fX0iCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9y
dH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
InBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJInNlc3Npb25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCV0KKwkJ
CQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJ
Im5hbWUiOiAiRmluZCBTZXNzaW9uIFRvbyBTaG9ydCBGcmFnbWVudCIsCisJCQkJCSJldmVudCI6
IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCSJpZCI6ICI2Zjg0MjllMy05YzEyLTQyM2MtYmFhZi04ZjhkZTBlNGVh
NDkiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2Jh
bHMuZ2V0KFwic2Vzc2lvbl90b2tlblwiKTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
c2Vzc2lvbl90b2tlbl9mcmFnbWVudFwiLCB0b2tlbi5zcGxpdChcIi1cIikuc2hpZnQoKSk7Igor
CQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQor
CQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCSJpZCI6ICI3ZjZlZjU2Ny0yNzRlLTRmOWQtYjdmYy01MGY4MjQwNTQ3
ZTkiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgNDA0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cyg0MDQpOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBb
XSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zLzEyMzQ1NjciLAorCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
InNlc3Npb25zIiwKKwkJCQkJCQkJIjEyMzQ1NjciCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9
LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxl
QmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJSZWFkIE5leHQgVGVzdCIsCisJ
CQkiaXRlbSI6IFsKKwkJCQl7CisJCQkJCSJuYW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJ
CQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJXQor
CQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJ
CQkibmFtZSI6ICJSZWFkIE5leHQgVGVzdCBvZiBJbnZhbGlkIFNlc3Npb24iLAorCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkiaWQiOiAiMTFmNWM2MjAtZGMzYi00YThjLThkMmYtZjk2NjMwMjVjNzlm
IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDQwNFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoNDA0KTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwK
KwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJ
CSJuZXh0IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gXFx3IENvbmZpZ3Vy
YXRpb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiYzY3Y2RlN2UtNzIzNy00Nzlj
LWEwYzYtYjg0YTUzM2MzYjFlIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiY29uc3Qg
cmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCB0b2tlbiA9
IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rv
a2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjI0YjM4ZDY0LTVj
MjQtNDE1Zi1iNmY2LWY4ZDI1MmQ2OWFjOCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
InZhciBhdXRvbWF0aWNUaW1lb3V0ID0gMTIwMDAwOyIsCisJCQkJCQkJCQkidmFyIG1hbnVhbFRp
bWVvdXQgPSAxMDAwMDAwOyIsCisJCQkJCQkJCQkidmFyIHNwZWNpYWxUaW1lb3V0ID0gMjAwMDsi
LAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdXRvbWF0aWNfdGlt
ZW91dFwiLCBhdXRvbWF0aWNUaW1lb3V0KTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
bWFudWFsX3RpbWVvdXRcIiwgbWFudWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxz
LnNldChcInNwZWNpYWxfdGltZW91dFwiLCBzcGVjaWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gSlNPTi5wYXJzZShwbS5nbG9iYWxz
LmdldChcImF2YWlsYWJsZV90ZXN0c1wiKSk7IiwKKwkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IGF2
YWlsYWJsZVRlc3RzW09iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKVswXV1bMF07IiwKKwkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2luZ2xlX3Rlc3RfMVwiLCB0ZXN0
MSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2Qi
OiAiUE9TVCIsCisJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCXsKKwkJCQkJCQkJImtleSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJ
CQkJfQorCQkJCQkJXSwKKwkJCQkJCSJib2R5IjogeworCQkJCQkJCSJtb2RlIjogInJhdyIsCisJ
CQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0c1wiOiB7XG4gICAgICAgIFwiaW5jbHVkZVwiOiBb
XCJ7e3NpbmdsZV90ZXN0XzF9fVwiXVxuICAgIH0sXG4gICAgXCJ0eXBlc1wiOiBbXG4gICAgICAg
IFwiYXV0b21hdGljXCIsXG4gICAgICAgIFwibWFudWFsXCJcbiAgICBdXG59IgorCQkJCQkJfSwK
KwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIK
KwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwK
KwkJCQl7CisJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIFBlbmRpbmcgU2Vzc2lvbiIs
CisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICIwODA2ZTRlMC1iZDFiLTQwYmEtYTdkNS03
NGQ0MTQ3M2ExNDEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJ
CQkJImNvbnN0IG5leHRUZXN0ID0ganNvbkRhdGEubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkiY29u
c3QgdGVzdCA9IFwiL1wiICsgbmV4dFRlc3Quc3BsaXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIv
XCIpLnNwbGl0KFwiP1wiKVswXTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3Qgd2Vi
X3Jvb3QgPSBwbS5lbnZpcm9ubWVudC5nZXQoXCJ3ZWJfcm9vdFwiKTsiLAorCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkicG0udGVzdChcIlJldHVybmVkIHRlc3QgaXMgbmV3IHNlc3Npb24gcGFnZVwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHRlc3QpLnRvLmVxdWFs
KFwiL1wiICsgd2ViX3Jvb3QgKyBcIi9uZXdzZXNzaW9uLmh0bWxcIik7IiwKKwkJCQkJCQkJCSJ9
KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6
ICJHRVQiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVz
dHMve3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAor
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQki
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibmV4dCIKKwkJCQkJCQldCisJCQkJCQl9CisJ
CQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjog
IlN0YXJ0IFNlc3Npb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiOWIxZjJkZWMt
OTk0OS00OWZmLWI0NjYtZjYwMmIxMWRkZTVkIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjog
IlBPU1QiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vz
c2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
XSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCV0KKwkJ
CQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJ
Im5hbWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgUnVubmluZyBTZXNzaW9uIiwKKwkJCQkJImV2ZW50
IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJImlkIjogIjdmZWEyOTc3LTVjY2ItNDllZS04ZjA3LTc5YTdmMjI0NWY5YyIs
CisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQki
dmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiY29uc3QgbmV4
dFRlc3QgPSBqc29uRGF0YS5uZXh0X3Rlc3Q7IiwKKwkJCQkJCQkJCSJjb25zdCBwYXJhbWV0ZXJz
ID0gbmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNwbGl0KFwiJlwiKTsiLAorCQkJCQkJCQkJImxl
dCB0ZXN0ID0gcGFyYW1ldGVycy5maW5kKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIuc3BsaXQoXCI9
XCIpWzBdID09PSBcInRlc3RfdXJsXCIpLnNwbGl0KFwiPVwiKVsxXTsiLAorCQkJCQkJCQkJInRl
c3QgPSBkZWNvZGVVUklDb21wb25lbnQodGVzdCk7IiwKKwkJCQkJCQkJCSJ0ZXN0ID0gXCIvXCIg
KyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilbMF07
IiwKKwkJCQkJCQkJCSJjb25zdCBhcGkgPSB0ZXN0LnNwbGl0KFwiL1wiKS5maWx0ZXIocGFydCA9
PiAhIXBhcnQpWzBdIiwKKwkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IEpTT04ucGFy
c2UocG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVfdGVzdHNcIikpOyIsCisJCQkJCQkJCQkiIiwK
KwkJCQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuZWQgdGVzdCBpcyB2YWxpZCB0ZXN0XCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoYXZhaWxhYmxlVGVzdHMpLnRvLmhh
dmUucHJvcGVydHkoYXBpKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoYXZhaWxhYmxlVGVz
dHNbYXBpXSkudG8uY29udGFpbih0ZXN0KSIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlvbiAoKSB7fSwgMTAw
MCk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2Qi
OiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rl
c3RzL3t7c2Vzc2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwK
KwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJIm5leHQiCisJCQkJCQkJXQorCQkJCQkJfQor
CQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6
ICJDcmVhdGUgUmVzdWx0IiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjdjYzI3ZWU4
LTJmMDYtNGUyNS05OGZiLTk4NzJjNmNmMGQ5MyIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9
KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6
ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJeworCQkJCQkJCQkia2V5IjogIkNv
bnRlbnQtVHlwZSIsCisJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJ2
YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dCIKKwkJCQkJ
CQl9CisJCQkJCQldLAorCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJ
CQkJCQkicmF3IjogIntcbiAgXCJ0ZXN0XCI6IFwie3tjdXJyZW50X3Rlc3R9fVwiLFxuICBcInN0
YXR1c1wiOiBcIk9LXCIsXG4gIFwibWVzc2FnZVwiOiBudWxsLFxuICBcInN1YnRlc3RzXCI6IFtc
biAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWJ0ZXN0IHRlc3RpbmcgZmVhdHVyZSB4eVwiLFxu
ICAgICAgXCJzdGF0dXNcIjogXCJGQUlMXCIsXG4gICAgICBcIm1lc3NhZ2VcIjogXCJFcnJvciBt
ZXNzYWdlXCJcbiAgICB9XG4gIF1cbn0iCisJCQkJCQl9LAorCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQld
LAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJ
CQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBU
ZXN0IG9mIENvbXBsZXRlZCBTZXNzaW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjog
IjBhNzNhNWViLTNlZGItNGQxNS05MjRkLTI2MGRkMjJiZDgzMSIsCisJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiY29uc3QgbmV4dFRlc3QgPSBqc29uRGF0YS5u
ZXh0X3Rlc3Q7IiwKKwkJCQkJCQkJCSJjb25zdCB0ZXN0ID0gXCIvXCIgKyBuZXh0VGVzdC5zcGxp
dChcIi9cIikuc2xpY2UoMykuam9pbihcIi9cIikuc3BsaXQoXCI/XCIpWzBdOyIsCisJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCSJjb25zdCB3ZWJfcm9vdCA9IHBtLmVudmlyb25tZW50LmdldChcIndl
Yl9yb290XCIpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuZWQg
dGVzdCBpcyBuZXcgc2Vzc2lvbiBwYWdlXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QodGVzdCkudG8uZXF1YWwoXCIvXCIgKyB3ZWJfcm9vdCArIFwiL2ZpbmlzaC5o
dG1sXCIpOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVz
dCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
InBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJIm5leHQi
CisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0s
CisJCQkJeworCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJ
CQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAi
Q3JlYXRlIFNlc3Npb24gXFx3IENvbmZpZ3VyYXRpb24gQ29weSIsCisJCQkJCSJldmVudCI6IFsK
KwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCSJpZCI6ICI5NDg3N2VjNi03MGVhLTRjNzgtYWNiNS0yMDA2MGE1MzU2NTMiLAorCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAorCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJ
CQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJ
XSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0s
CisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkiaWQiOiAiZGNjMjkwOTItYjdhMS00MGZjLTgzNTktZWNjNjU1ZGJhNDgy
IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSAx
MjAwMDA7IiwKKwkJCQkJCQkJCSJ2YXIgbWFudWFsVGltZW91dCA9IDEwMDAwMDA7IiwKKwkJCQkJ
CQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXQgPSAyMDAwOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CSJwbS5nbG9iYWxzLnNldChcImF1dG9tYXRpY190aW1lb3V0XCIsIGF1dG9tYXRpY1RpbWVvdXQp
OyIsCisJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJtYW51YWxfdGltZW91dFwiLCBtYW51YWxU
aW1lb3V0KTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic3BlY2lhbF90aW1lb3V0XCIs
IHNwZWNpYWxUaW1lb3V0KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJeworCQkJ
CQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlw
ZSIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRp
b24vanNvbiIKKwkJCQkJCQl9CisJCQkJCQldLAorCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJIm1v
ZGUiOiAicmF3IiwKKwkJCQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAgICAgICAg
XCJpbmNsdWRlXCI6IHt7aW5jbHVkZWRfdGVzdHN9fSxcbiAgICAgICAgXCJleGNsdWRlXCI6IHt7
ZXhjbHVkZWRfdGVzdHN9fVxuICAgIH0sXG4gICAgXCJ0eXBlc1wiOiBbXG4gICAgICAgIFwiYXV0
b21hdGljXCIsXG4gICAgICAgIFwibWFudWFsXCJcbiAgICBdLFxuICAgIFwidGltZW91dHNcIjog
e1xuICAgICAgICBcImF1dG9tYXRpY1wiOiAxMDAwXG4gICAgfSxcbiAgICBcImxhYmVsc1wiOiBb
XCJsYWJlbDFcIiwgXCJsYWJlbDJcIl1cbn0iCisJCQkJCQl9LAorCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCV0KKwkJCQkJCX0K
KwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUi
OiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI4ZjZlMmJm
Mi02YzFlLTQzNGUtODNjNS05YmNjNTc4ODA2OTIiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQki
fSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2Qi
OiAiUE9TVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGFydCIsCisJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAor
CQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkic3RhcnQiCisJCQkJCQkJXQor
CQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJ
CQkibmFtZSI6ICJQYXVzZSBTZXNzaW9uIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjog
ImEwYTgwYzA1LWEyY2EtNDMwYS04YmVkLTQ2YWQ3OTc4YzY4NCIsCisJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
Im1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3BhdXNlIiwKKwkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNz
aW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCSJwYXVzZSIKKwkJ
CQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJ
CQl7CisJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIEFib3J0ZWQgU2Vzc2lvbiIsCisJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICIwMGQ4MjNlMC0yMDU5LTRjYWItODFkNi04ZDFk
ZTllNWI2MmEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
ImNvbnN0IG5leHRUZXN0ID0ganNvbkRhdGEubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkiY29uc3Qg
dGVzdCA9IFwiL1wiICsgbmV4dFRlc3Quc3BsaXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIvXCIp
LnNwbGl0KFwiP1wiKVswXTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3Qgd2ViX3Jv
b3QgPSBwbS5lbnZpcm9ubWVudC5nZXQoXCJ3ZWJfcm9vdFwiKTsiLAorCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkicG0udGVzdChcIlJldHVybmVkIHRlc3QgaXMgbmV3IHNlc3Npb24gcGFnZVwiLCBm
dW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHRlc3QpLnRvLmVxdWFsKFwi
L1wiICsgd2ViX3Jvb3QgKyBcIi9wYXVzZS5odG1sXCIpOyIsCisJCQkJCQkJCQkifSk7IgorCQkJ
CQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJ
CQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwK
KwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vz
c2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQki
cG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290
fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJIm5leHQiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAor
CQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdG9wIFNl
c3Npb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiYjgyMTFjMTMtNjY3ZC00OTcw
LWFlZGMtNjM5OGMyNWNjNDBjIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJ
CQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJ
CX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIlBPU1QiLAor
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tz
ZXNzaW9uX3Rva2VufX0vc3RvcCIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jv
b3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkic3RvcCIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJ
CX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlJl
YWQgTmV4dCBUZXN0IG9mIEFib3J0ZWQgU2Vzc2lvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CSJpZCI6ICI4YWFkODEzZC01M2ZlLTQ5ZmQtYmRmYy1mMTZjZTIyMzNhZTIiLAorCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBqc29uRGF0
YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0ganNv
bkRhdGEubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkiY29uc3QgdGVzdCA9IFwiL1wiICsgbmV4dFRl
c3Quc3BsaXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIvXCIpLnNwbGl0KFwiP1wiKVswXTsiLAor
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3Qgd2ViX3Jvb3QgPSBwbS5lbnZpcm9ubWVudC5n
ZXQoXCJ3ZWJfcm9vdFwiKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVzdChcIlJl
dHVybmVkIHRlc3QgaXMgbmV3IHNlc3Npb24gcGFnZVwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KHRlc3QpLnRvLmVxdWFsKFwiL1wiICsgd2ViX3Jvb3QgKyBcIi9m
aW5pc2guaHRtbFwiKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwK
KwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJ
CSJuZXh0IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7
aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQldCisJCQkJ
CQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfQorCQkJXSwKKwkJCSJwcm90
b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIkNvbnRyb2wg
U2Vzc2lvbiIsCisJCQkiaXRlbSI6IFsKKwkJCQl7CisJCQkJCSJuYW1lIjogIlNldHVwIiwKKwkJ
CQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gTm8g
Q29uZmlndXJhdGlvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAi
MzA1Y2I5MTUtODQ5Ni00NTc3LWIxN2EtZTgxODlkNjZjM2QxIiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0
b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25z
ZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIs
IHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJ
CQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6
ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2
YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJ
CQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIiIK
KwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJ
CQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9
fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0K
KwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJ
CSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xk
ZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlBhdXNlIFBlbmRpbmcgU2Vz
c2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlBhdXNlIFNl
c3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjlkOTAzMTY1
LTk2NjctNDNiMC1iMjEwLWE5NTBkMGZhMWZhMiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3Qi
OiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJ
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9wYXVz
ZSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0
IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6
ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7
e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInBhdXNlIgorCQkJCQkJCQkJXQorCQkJCQkJ
CQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsK
KwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBb
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCSJpZCI6ICIwMzA3OTE5Yi02NjMwLTQ4ZmYtYWMxOC0xMGMwYTQ3ZWEy
NTQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMgcGVuZGluZ1wiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChc
InBlbmRpbmdcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7
c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vz
c2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1
cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjog
W10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30s
CisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJ
Im5hbWUiOiAiU3RhcnQgUGVuZGluZyBTZXNzaW9uIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJ
CQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkiaWQiOiAiZjY2NDA4ZDUtNTQzOC00ZDRmLTliZmMtNmQyNGIxNWU1YTkwIiwK
KwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJ
CQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwK
KwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Np
b25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXJ0IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJ
CSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQki
c3RhcnQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBT
dGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImJhZTU1NDJk
LTQ0NmItNDA2NC04OGZmLWNjMzU1YThmNGY2MiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIHJ1
bm5pbmdcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhLnN0YXR1cykudG8uZXF1YWwoXCJydW5uaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGFydCBkYXRlIGlzIHNldFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoRGF0ZS5wYXJzZShq
c29uRGF0YS5kYXRlX3N0YXJ0ZWQpKS50by5iZS5iZWxvdyhEYXRlLm5vdygpKTsiLAorCQkJCQkJ
CQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVz
IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0Ijog
Int7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7
c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJ
CQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAor
CQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3Vi
Rm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdGFydCBSdW5uaW5n
IFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJTdGFy
dCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIzYjM4
Njk1Mi04YTM3LTQ3MWEtOTE5Mi1mMjg5NzRkOTc1YTMiLAorCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJ
CQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2ph
dmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1
ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0v
c3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQki
aG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBv
cnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jv
b3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiOGU1NmQ4NDItMzI1Yi00MzU2LWFlMWEtMjQ2NWU5
ZWZlMTg4IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIHJ1bm5pbmdcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1
YWwoXCJydW5uaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJ
CQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJ
CQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
InNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJz
dGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6
IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJ
CQkJCSJuYW1lIjogIlBhdXNlIFJ1bm5pbmcgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJ
CQkJeworCQkJCQkJCSJuYW1lIjogIlBhdXNlIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsK
KwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJImlkIjogImExODNjYjBiLTMxZjAtNDhmNi05YzIwLTYwNWExNjQ4OGQ3
ZCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJ
fQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9T
VCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9wYXVzZSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJ
CQkJInBhdXNlIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVz
cG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Np
b24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJmMjYx
MDU5NC04MTNhLTQwNzktYWZhZS0xNTEwNDg2ZWZhYjQiLAorCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJT
dGF0dXMgaXMgcGF1c2VkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicGF1c2VkXCIpOyIsCisJCQkJCQkJCQkJCSJ9
KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJ
CQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVy
bCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0v
e3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJ
CQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJ
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9u
X3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJ
CQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJw
cm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIi
OiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlBhdXNlIFBhdXNlZCBTZXNzaW9u
IiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUGF1c2UgU2Vzc2lv
biIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNmI4ZWM5OGEtYWQ5
MS00ZDVjLWFhMDctNmIzY2MxMjU1OTAyIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJ
CQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsK
KwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3BhdXNlIiwK
KwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkicGF1c2UiCisJCQkJCQkJCQldCisJCQkJCQkJCX0K
KwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJ
CQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCQkJImlkIjogIjkxYTM4ZWI4LWE1MDEtNDU3Zi1hOWY0LWI2MzIyMWM5NTdmNiIs
CisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBpcyBwYXVzZWRcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJwYXVz
ZWRcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lv
bl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMi
LAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJ
CQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJ
CSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUi
OiAiU3RhcnQgUGF1c2VkIFNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICI2ZTNhOGM2NC0wNGNiLTRjNGYtYjIzZC02NDY1NWY2ZTRkMjIiLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJ
CQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tz
ZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQld
LAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIK
KwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIs
CisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiZGNmN2Y2ZjQtNmVlZi00
YTkwLWE2M2QtZGY3MDQ0NmViMjA5IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQki
fSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIHJ1
bm5pbmdcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
LnN0YXR1cykudG8uZXF1YWwoXCJydW5uaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0
aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFBy
b2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJ
CQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlN0b3AgUnVubmluZyBTZXNzaW9uIiwKKwkJCQkJ
Iml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiU3RvcCBTZXNzaW9uIiwKKwkJCQkJ
CQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJiZWU3YTcwZC1hZjFmLTRhZDEtOWM0
MC03YWJkYmNjOTgzYWUiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJ
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJ
CQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQki
bWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RvcCIsCisJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59
fSIsCisJCQkJCQkJCQkJInN0b3AiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJ
ImlkIjogIjIxN2VkMjY3LTFkZGItNDk2YS1hN2M1LTZlMjliYWQ5N2M2MCIsCisJCQkJCQkJCQkJ
ImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQki
dmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGlzIGFib3J0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJhYm9ydGVkXCIpOyIsCisJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJGaW5p
c2ggZGF0ZSBpcyBzZXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KERhdGUucGFyc2UoanNvbkRhdGEuZGF0ZV9maW5pc2hlZCkpLnRvLmJlLmJlbG93KERhdGUu
bm93KCkpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAor
CQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Np
b25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25z
IiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJ
CQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJ
CQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJ
CQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1l
IjogIlN0b3AgQWJvcnRlZCBTZXNzaW9uIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJ
CQkJIm5hbWUiOiAiU3RvcCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICJhMjU1ZWE2MS01YzVhLTRmMGQtOGE2Ny1jMjQ0NTEwYTYwOGMiLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJ
CQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tz
ZXNzaW9uX3Rva2VufX0vc3RvcCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0s
CisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lv
bnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0b3AiCisJ
CQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJ
CQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAor
CQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
KwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjljYzc1OTliLWQzNzgtNGIw
NC1iYWRhLTlkNzZmNmNhNjEwZiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0p
OyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBpcyBhYm9y
dGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5z
dGF0dXMpLnRvLmVxdWFsKFwiYWJvcnRlZFwiKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQor
CQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhv
ZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7
aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJ
CQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGki
LAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwK
KwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJ
CQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkiaWQiOiAiODFlNDRlM2YtNWQ5MS00MmE3LWIwYWItNDcwNGViMTIxODY4IiwK
KwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICJh
NDQxODBjYi0zYjEzLTQyMWItYjE0Ni04MjkwMWYyYjQ1YmQiLAorCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJ
CV0KKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhh
dmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJ
CQl7CisJCQkJCSJuYW1lIjogIlN0YXJ0IEFib3J0ZWQgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjog
WworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24iLAorCQkJCQkJCSJldmVu
dCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjQ3ZmIxZmE5LTQ4NDktNGVhOS1iMzZlLWZjZWM4
ZGVjZjYyZSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJ
CQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2Qi
OiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGFydCIsCisJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJ
CQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJ
CQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFk
IFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICIxOTIzY2VkNC00MzYxLTRhNGEtYmY3Yy00ZmNkZjNkZjUwZjYiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgaXMgYWJvcnRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAg
ICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcImFib3J0ZWRcIik7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3Qi
OiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1
cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0
IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6
ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7
e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJ
CQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwK
KwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIs
CisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjIyNjA0M2U1LTFhODEtNGQzNi1h
YTdmLTY3YjEwYmY0MDdhZiIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJ
CX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkiaWQiOiAiODQwYmY5NzAtMDk4NC00NTJlLTkwNzYtYjZmNjZkMGI0NTExIiwK
KwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQki
cHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVy
IjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJQYXVzZSBBYm9ydGVkIFNlc3Np
b24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJQYXVzZSBTZXNz
aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI4OGM0MDcyZi01
MzhiLTRkNjgtOWQ2MS1mMGZiMDE3ZTU0NGMiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJ
CQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vcGF1c2Ui
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJwYXVzZSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJ
fQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIFN0YXR1cyIsCisJCQkJCQkJImV2ZW50IjogWwor
CQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiMmFlMDBlYjMtNDllOC00NDg3LWIyN2YtZTdjNzk1NWZlNGY0
IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGlzIGFib3J0ZWRcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJh
Ym9ydGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nl
c3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQld
LAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMi
CisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtd
CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlz
dGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI3
MGUwYzc4My1jNDA1LTQ4MWMtYjljOC01YzhiZWUzOTJmOTciLAorCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJ
CV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjg1YzQ1ZTNiLWZhZTYtNGE5MC1h
ZmQwLTk3Njc4NzY5ZTMyYyIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJ
CX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJf
cG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAi
U2V0dXAiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDbGVhbiBV
cCIsCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25z
L3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9u
cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9
CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJ
CQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbiBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQki
ZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJkZjRhMDBkMS1kNGY4LTRiMGItODkyZC0y
MTUyODE2NWEyY2YiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwi
XlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTld
ezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9u
ZHMgd2l0aCB0b2tlbiBpbiBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5S
ZWdleCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJ
CQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCSJw
bS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJ
fQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9T
VCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24i
CisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1v
ZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAiIgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJz
ZXNzaW9ucyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJ
CQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogIjRmYTU5NjE3LWM5MjItNDgyNi1hYmM2LTZkOTEwZTkxOGVhNCIsCisJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIK
KwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiZDgzZjQ0OWQtNGEy
ZS00MWM4LWIyY2QtNWNmMGNkMWM0MDRlIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJ
fQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwK
KwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQki
bmFtZSI6ICJTdG9wIFBlbmRpbmcgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJewor
CQkJCQkJCSJuYW1lIjogIlN0b3AgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJCQkiaWQiOiAiOThkYTJiODYtNGY5Zi00N2RkLWFmYzktMjJjZTk2ZTczZTg0IiwKKwkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7
e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25z
L3t7c2Vzc2lvbl90b2tlbn19L3N0b3AiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNl
c3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdG9w
IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVz
IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI2ZDhhODIwMi1jODVk
LTRhZGEtYjQ0My00NTEwOGEzNzJhZWEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMg
YWJvcnRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEg
PSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEuc3RhdHVzKS50by5lcXVhbChcImFib3J0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJt
ZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogewor
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59
fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0s
CisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29s
UHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUK
KwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiU2V0dXAiLAorCQkJCQkiaXRlbSI6IFsKKwkJ
CQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJCQkJCQkJInJlcXVlc3QiOiB7CisJ
CQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9u
c2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lv
biBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJp
ZCI6ICIwZjlkZjQ4Ni05MWNkLTQ2ZmMtYTcxMS01Y2Y5YmViYjI3MDYiLAorCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNv
bnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVth
LWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMgd2l0aCB0b2tlbiBpbiBKU09OIGZvcm1h
dFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5y
ZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3Bv
bnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJl
c3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9r
ZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJu
YW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJ
CQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXci
OiAiIgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwK
KwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCV0KKwkJCQkJ
CQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJ
CQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkiaWQiOiAiODBlZTkxZmQtOThjYS00YjhlLTgzYjYtMzJiZjNlNTVhMjk1IiwK
KwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldLAorCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJ
CQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJ
CQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cy97e3Nlc3Npb25fdG9rZW59fS9zdGFydCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQki
c2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0
YXJ0IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJQYXVzZSBTZXNzaW9uIiwK
KwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI0N2Y0ZDI2YS04NGMyLTQ5
ODAtOTg0ZC1kYWMwZTk1NTAzZTEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQki
IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJ
CQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3BhdXNlIiwKKwkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJCQkicGF1c2UiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJ
CQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJldmVu
dCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI2YmQ5ZTg1Zi1lYjczLTQ3YmUtODNiMC0wMWJlNzc4
Njg4OTkiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJ
eworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogIjQzZWJmYWRiLWRjNjgtNGM0MS1iMzRlLTQ2MmU0MjdkYzJlZiIsCisJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIK
KwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJv
ZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJ
CQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiU3RvcCBQYXVzZWQgU2Vzc2lvbiBDb3B5IiwKKwkJ
CQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiU3RvcCBTZXNzaW9uIiwKKwkJ
CQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJ
CQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwMjllYzg0Yi1lNDFiLTQ3NDQt
ODc0NS01OGM1MGU1MmJiMTEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsi
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RvcCIsCisJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9r
ZW59fSIsCisJCQkJCQkJCQkJInN0b3AiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJewor
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CQkJImlkIjogIjA3MWQ3NTdjLTQxYWEtNGI1Mi05YWI0LTZjMmFmZDZlZDJhZiIsCisJCQkJCQkJ
CQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBpcyBhYm9ydGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwiYWJvcnRlZFwiKTsi
LAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQki
cmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjog
W10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7
aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2Vu
fX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkic3RhdHVzIgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQor
CQkJCQldLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJwcmVy
ZXF1ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiMzA1NzIwYTAtMmM4
NC00M2QzLThmZTUtNTVmOGZkZjUxMWQ4IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJ
fQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI4NGU0YWIwNC01YWNjLTQ0MjgtYTgxYS1jMGIwYzUz
YjVmZDkiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0s
CisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNT
dWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlNldHVwIiwKKwkJ
CQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCSJoZWFk
ZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19
Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25f
dG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQki
cG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJf
cm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJ
CQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0s
CisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUi
OiAiQ3JlYXRlIFNlc3Npb24gT25lIFRlc3QiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJ
eworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJ
CQkJCQkJImlkIjogImI3YTlkNDU5LTliMzktNDBiMi1hYmRjLWZkOGZlOGIyMWQ2MSIsCisJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiY29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAt
OV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpT
T04gZm9ybWF0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0
YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29u
c3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRv
a2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vz
c2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJ
CQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkiaWQiOiAiZmNiZmIwZTMtYTEwZC00ZmY4LWFmZWQtZjVmM2M5ZDUyMDkwIiwKKwkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gSlNPTi5w
YXJzZShwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKSk7IiwKKwkJCQkJCQkJCQkJ
ImNvbnN0IHRlc3QgPSBhdmFpbGFibGVUZXN0c1tPYmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cylb
MF1dWzBdIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNp
bmdsZV90ZXN0XCIsIHRlc3QpOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIi
OiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJ
CQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJ
CQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJCQkJCQkJ
CV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJ
CSJyYXciOiAie1xuICAgIFwidGVzdHNcIjoge1xuICAgICAgICBcImluY2x1ZGVcIjogW1wie3tz
aW5nbGVfdGVzdH19XCJdXG4gICAgfVxufSIKKwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsK
KwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJf
cm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0s
CisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lv
bnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0IFNlc3Npb24iLAor
CQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
KwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjkzN2VmNjFkLWQ2ZDYtNGUy
NC1iYzNhLTY5NmEyM2NjOTVkNiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSIi
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAorCQkJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rv
a2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJ
CX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5h
bWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJ
CQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkiaWQiOiAiMjlmMDU1NGItNjZmNS00ZTI2LTgwZmYtMzliM2ZhYmE5MjBhIiwK
KwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25zdCBuZXh0VGVzdCA9IHJlc3BvbnNlLm5l
eHRfdGVzdDsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RfdXJs
XCIsIG5leHRUZXN0KTsiLAorCQkJCQkJCQkJCQkiaWYgKCFuZXh0VGVzdCkgcmV0dXJuOyIsCisJ
CQkJCQkJCQkJCSJjb25zdCBwYXJhbWV0ZXJzID0gbmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNw
bGl0KFwiJlwiKTsiLAorCQkJCQkJCQkJCQkibGV0IHRlc3QgPSBwYXJhbWV0ZXJzLmZpbmQocGFy
YW1ldGVyID0+IHBhcmFtZXRlci5zcGxpdChcIj1cIilbMF0gPT09IFwidGVzdF91cmxcIikuc3Bs
aXQoXCI9XCIpWzFdOyIsCisJCQkJCQkJCQkJCSJ0ZXN0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRl
c3QpOyIsCisJCQkJCQkJCQkJCSJ0ZXN0ID0gXCIvXCIgKyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGlj
ZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCQkJInBtLmdsb2Jh
bHMuc2V0KFwiY3VycmVudF90ZXN0XCIsIHRlc3QpOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vz
c2lvbl90b2tlbn19L25leHQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJuZXh0IgorCQkJCQkJ
CQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJDcmVhdGUgUmVzdWx0IiwKKwkJCQkJCQkicmVx
dWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFsK
KwkJCQkJCQkJCXsKKwkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJ
Im5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24v
anNvbiIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJXSwK
KwkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJInJh
dyI6ICJ7XG4gIFwidGVzdFwiOiBcInt7Y3VycmVudF90ZXN0fX1cIixcbiAgXCJzdGF0dXNcIjog
XCJPS1wiLFxuICBcIm1lc3NhZ2VcIjogbnVsbCxcbiAgXCJzdWJ0ZXN0c1wiOiBbXG4gICAge1xu
ICAgICAgXCJuYW1lXCI6IFwiU3VidGVzdCB0ZXN0aW5nIGZlYXR1cmUgeHlcIixcbiAgICAgIFwi
c3RhdHVzXCI6IFwiRkFJTFwiLFxuICAgICAgXCJtZXNzYWdlXCI6IFwiRXJyb3IgbWVzc2FnZVwi
XG4gICAgfVxuICBdXG59IgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJv
dG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
InJlc3VsdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVz
dCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjliZjY2NDI3LTZmMzktNGYw
YS1iMDY1LTE4NDlkNjc5ZWVlNiIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIs
CisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJ
CQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkiaWQiOiAiOGQxZjM4MzctMWYwNS00N2U0LTg5N2MtYjdjNzRkYTliZDQz
IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJImV4ZWMiOiBb
CisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJ
CQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9s
ZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJTdGFydCBDb21wbGV0ZWQg
U2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlN0YXJ0
IFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjliZjBm
YjcwLTI0YTAtNDEzNi05OWZlLThlMGU0ODhhZmQxZSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwK
KwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9z
dGFydCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9v
dH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJXQorCQkJ
CQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJ
CXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI3ZTMxODRiZi0xNzQxLTQ0YzgtOGNkMy1jZmYzMGMy
ZGVjYTEiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMgY29tcGxldGVkXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVx
dWFsKFwiY29tcGxldGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIs
CisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXci
OiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNz
aW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJ
CQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJ
CSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlv
ciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7
CisJCQkJCSJuYW1lIjogIlBhdXNlIENvbXBsZXRlZCBTZXNzaW9uIiwKKwkJCQkJIml0ZW0iOiBb
CisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUGF1c2UgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiZTMyM2M2YWYtZDRlNS00YTA1LWIyMDMtMDliYTY3
Zjc3ZDI4IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJ
CQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0v
YXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3BhdXNlIiwKKwkJCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJ
CSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAor
CQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJCQkicGF1c2UiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQg
U2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjog
IjQwY2QwNGNlLTg1MGYtNDkwMy1iYzI0LTJlNjJhNGRmOThmZSIsCisJCQkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBpcyBjb21wbGV0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJjb21wbGV0ZWRcIik7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9
fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0
YXR1cyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9v
dH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9p
c1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiU3RvcCBDb21w
bGV0ZWQgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IlN0b3AgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAi
ZGI3ZDUyMDktMzdiMi00NmJkLTg4YWItY2U0ZTI0MTQwMWIyIiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQki
cmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6
IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97
e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tl
bn19L3N0b3AiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJ
CQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdG9wIgorCQkJCQkJCQkJXQor
CQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJ
CQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI0NzdkYzYzZC0wYjQzLTQyMjYtYjg2ZS0xNjNl
MmRlOTJiNjciLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgaXMgY29tcGxldGVkXCIsIGZ1
bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNl
Lmpzb24oKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRv
LmVxdWFsKFwiY29tcGxldGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJ
CX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdF
VCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBh
dGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJ
CQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJ
CQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhh
dmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJ
CQl7CisJCQkJCSJuYW1lIjogIkNsZWFuIFVwIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQki
bWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIK
KwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJ
CQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9CisJCQldLAorCQkJInByb3Rv
Y29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5hbWUiOiAiVXBkYXRlIGFu
ZCBSZWFkIFNlc3Npb25zIiwKKwkJCSJpdGVtIjogWworCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3Jl
YXRlIERlZmF1bHQiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJD
cmVhdGUgU2Vzc2lvbiBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICJiOTIzZDk1ZS1hN2I0LTQ5ZDQtYWIyYS0xZjQzNWM0NTQzODciLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVth
LWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMgd2l0aCB0b2tlbiBp
biBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICB2YXIganNv
bkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
ImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25z
dCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChc
InNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJo
ZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAor
CQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dCIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJ
CQkJCQkJCV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJ
CQkJCQkJCSJyYXciOiAiIgorCQkJCQkJCQl9LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Nlc3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJ
CQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZpZ3VyYXRpb24i
LAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjgxZjM2NzU5LTdhZTIt
NDJiOS04MWQyLTc5ZjU3MDQ2YjQ2ZSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4
cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1m
MC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpT
T04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1
YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJ0ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0
eXBlb2YganNvbkRhdGEudGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzKS50by5oYXZlLnByb3BlcnR5KFwiaW5jbHVk
ZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNsdWRl
KS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShcImV4Y2x1ZGVcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuZXhjbHVkZSkudG8uYmUuYW4uaW5z
dGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJ0eXBlc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS50eXBlcykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ1c2VyX2FnZW50XCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS51c2VyX2FnZW50
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0cykudG8uZXF1YWwoXCJvYmplY3RcIiki
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cykudG8uaGF2ZS5w
cm9wZXJ0eShcImF1dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBl
b2YganNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbChcIm51bWJlclwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cykudG8uaGF2ZS5wcm9w
ZXJ0eShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNv
bkRhdGEudGltZW91dHMubWFudWFsKS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImJyb3dzZXJcIik7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLmJyb3dzZXIpLnRv
LmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
LmJyb3dzZXIpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwic3RyaW5n
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIpLnRvLmhh
dmUucHJvcGVydHkoXCJ2ZXJzaW9uXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiBqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicmVm
ZXJlbmNlX3Rva2Vuc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5y
ZWZlcmVuY2VfdG9rZW5zKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ29uZmlndXJh
dGlvbiBpcyBkZWZhdWx0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuaW5jbHVkZSkudG8uaW5jbHVkZShcIi9cIik7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRvLmluY2x1ZGUo
XCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlw
ZXMpLnRvLmluY2x1ZGUoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEudXNlcl9hZ2VudCkudG8uaW5jbHVkZShcIlBvc3RtYW5SdW50aW1lXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYykudG8u
ZXF1YWwoNjAwMDApOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVv
dXRzLm1hbnVhbCkudG8uZXF1YWwoMzAwMDAwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwiT3RoZXJcIik7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChcIjBc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuaXNfcHVibGljKS50by5l
cXVhbChmYWxzZSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJl
bmNlX3Rva2VucykudG8uYmUuZW1wdHk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJ
CSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQor
CQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJ
CQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIyODczZDU1NC05ODE2LTQxZjAtOTA1MS1mYjJj
YjEyNzJhNzYiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5y
ZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
SlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5l
cXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImV4cGlyYXRp
b25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5leHBpcmF0
aW9uX2RhdGUpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEpLnRvLmhhdmUucHJvcGVydHkoXCJkYXRlX3N0YXJ0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEuZGF0ZV9zdGFydGVkKS50by5zYXRpc2Z5KHZhbHVlID0+ICF2
YWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9maW5pc2hlZFwiKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5kYXRlX2ZpbmlzaGVkKS50by5z
YXRpc2Z5KHZhbHVlID0+ICF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpOyIs
CisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTZXNzaW9uIHN0YXR1cyBpcyBwZW5kaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicGVuZGluZ1wiKTsi
LAorCQkJCQkJCQkJCQkifSkiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJy
ZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBb
XSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59
fS9zdGF0dXMiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJ
CQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQld
CisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAor
CQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgVGVzdHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJ
ImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNTM2MDU3NjQtZDRmMC00YjMyLTlhMzAt
NjdlODRkZDEwNGQ5IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29u
KCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1
cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmlu
Z1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcInBlbmRpbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlw
ZW9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicnVubmlu
Z190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
cnVubmluZ190ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkFsbCB0ZXN0cyBhcmUgcGVu
ZGluZyB0ZXN0c1wiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
T2JqZWN0LmtleXMoanNvbkRhdGEucGVuZGluZ190ZXN0cykpLnRvLm5vdC5oYXZlLmxlbmd0aE9m
KDApOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnJ1
bm5pbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDApOyIsCisJCQkJCQkJCQkJCSJ9KSIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc29sZS5sb2cocG0uZ2xvYmFscy5nZXQoXCJh
dmFpbGFibGVfdGVzdHNcIikpIiwKKwkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0g
SlNPTi5wYXJzZShwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKSk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQWxsIGF2YWlsYWJsZSB0ZXN0cyBhcmUg
cGFydCBvZiB0aGUgc2Vzc2lvblwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBm
b3IgKHZhciBhcGkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEucGVuZGluZ190ZXN0cykpIHsiLAor
CQkJCQkJCQkJCQkiICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRpbmdfdGVz
dHNbYXBpXSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QoYXZhaWxhYmxl
VGVzdHNbYXBpXSkudG8uaW5jbHVkZSh0ZXN0KTsiLAorCQkJCQkJCQkJCQkiICAgICAgICB9IiwK
KwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJIn0pIgorCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJ
CQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAor
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMv
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJ
CQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJl
dmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJ
CSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICJjZjE2NWFlOS0xYzQ0LTQ4M2MtOGZlNC1iZDdj
ZGFhMjA3MTAiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCSIiCisJCQkJCQkJCV0KKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJ
CQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJImlkIjogIjY5MzhkNDU2LWFmZDUtNDMxYi1hOTVmLWEyYzQ1YTNhYzQ3OSIsCisJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
IiIKKwkJCQkJCQkJXQorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29s
UHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUK
KwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiVXBkYXRlIFdpdGggQ29uZmlndXJhdGlvbiIs
CisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlVwZGF0ZSBTZXNzaW9u
IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI2NTdiZTViMy00YTk5
LTQ0MTUtYTFlZi05ZGZkY2Y1NDFlNDYiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
CisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
cHJlcmVxdWVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwOTNh
MDAxOS1hODRjLTQ0ZmMtYjg5MC0zNjM2OWQ1MWI3ZDUiLAorCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSAxMjAwMDA7IiwKKwkJCQkJCQkJCQkJ
InZhciBtYW51YWxUaW1lb3V0ID0gMTAwMDAwMDsiLAorCQkJCQkJCQkJCQkidmFyIHNwZWNpYWxU
aW1lb3V0ID0gMjAwMDsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwiYXV0b21hdGljX3RpbWVvdXRcIiwgYXV0b21hdGljVGltZW91dCk7IiwKKwkJCQkJCQkJ
CQkJInBtLmdsb2JhbHMuc2V0KFwibWFudWFsX3RpbWVvdXRcIiwgbWFudWFsVGltZW91dCk7IiwK
KwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic3BlY2lhbF90aW1lb3V0XCIsIHNwZWNpYWxU
aW1lb3V0KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkibWV0aG9kIjogIlBVVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJ
CQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjog
IkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCQkJInZh
bHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJ
CSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAie1xu
ICAgIFwidGVzdHNcIjoge1xuICAgICAgICBcImluY2x1ZGVcIjoge3tpbmNsdWRlZF90ZXN0c319
LFxuICAgICAgICBcImV4Y2x1ZGVcIjoge3tleGNsdWRlZF90ZXN0c319XG4gICAgfSxcbiAgICBc
InR5cGVzXCI6IFtcbiAgICAgICAgXCJhdXRvbWF0aWNcIixcbiAgICAgICAgXCJtYW51YWxcIlxu
ICAgIF0sXG4gICAgXCJ0aW1lb3V0c1wiOiB7XG4gICAgICAgIFwiYXV0b21hdGljXCI6IHt7YXV0
b21hdGljX3RpbWVvdXR9fSxcbiAgICAgICAgXCJtYW51YWxcIjoge3ttYW51YWxfdGltZW91dH19
LFxuICAgICAgICBcInt7c3BlY2lhbF90aW1lb3V0X3Rlc3R9fVwiOiB7e3NwZWNpYWxfdGltZW91
dH19XG4gICAgfVxufSIKKwkJCQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQki
c2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCV0KKwkJ
CQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJ
CQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZpZ3VyYXRpb24iLAorCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjRhYzU1NjAxLTliZGYtNDFmOC05ZDU5
LWZmMWVlMjBmYTQ3MSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1m
MC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0k
XCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0
dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJp
bmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJv
cGVydHkoXCJ0ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNv
bkRhdGEudGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnRlc3RzKS50by5oYXZlLnByb3BlcnR5KFwiaW5jbHVkZVwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNsdWRlKS50by5iZS5h
bi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShcImV4Y2x1ZGVcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuZXhjbHVkZSkudG8uYmUuYW4uaW5zdGFuY2VvZihB
cnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJv
cGVydHkoXCJ0eXBlc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50
eXBlcykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ1c2VyX2FnZW50XCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS51c2VyX2FnZW50KS50by5lcXVh
bChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8u
aGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0cykudG8uZXF1YWwoXCJvYmplY3RcIikiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cykudG8uaGF2ZS5wcm9wZXJ0eShc
ImF1dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRh
dGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cykudG8uaGF2ZS5wcm9wZXJ0eShcIm1h
bnVhbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGlt
ZW91dHMubWFudWFsKS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImJyb3dzZXJcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLmJyb3dzZXIpLnRvLmVxdWFsKFwi
b2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIp
LnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIpLnRvLmhhdmUucHJvcGVy
dHkoXCJ2ZXJzaW9uXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicmVmZXJlbmNlX3Rv
a2Vuc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5yZWZlcmVuY2Vf
dG9rZW5zKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIgaW5jbHVkZWRUZXN0cyA9IEpTT04ucGFy
c2UocG0uZ2xvYmFscy5nZXQoXCJpbmNsdWRlZF90ZXN0c1wiKSk7IiwKKwkJCQkJCQkJCQkJInZh
ciBleGNsdWRlZFRlc3RzID0gSlNPTi5wYXJzZShwbS5nbG9iYWxzLmdldChcImV4Y2x1ZGVkX3Rl
c3RzXCIpKTsiLAorCQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSBwbS5nbG9iYWxz
LmdldChcImF1dG9tYXRpY190aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJCSJ2YXIgbWFudWFsVGlt
ZW91dCA9IHBtLmdsb2JhbHMuZ2V0KFwibWFudWFsX3RpbWVvdXRcIik7IiwKKwkJCQkJCQkJCQkJ
InZhciBzcGVjaWFsVGltZW91dCA9IHBtLmdsb2JhbHMuZ2V0KFwic3BlY2lhbF90aW1lb3V0XCIp
OyIsCisJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXRUZXN0ID0gcG0uZ2xvYmFscy5nZXQo
XCJzcGVjaWFsX3RpbWVvdXRfdGVzdFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJDb25maWd1cmF0aW9uIGlzIGFzIHNwZWNpZmllZFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRv
a2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgdGVzdCBvZiBpbmNsdWRlZFRl
c3RzKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmlu
Y2x1ZGUpLnRvLmluY2x1ZGUodGVzdCk7IiwKKwkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJ
CQkJIiAgICBmb3IgKHZhciB0ZXN0IG9mIGV4Y2x1ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQki
ICAgICAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuZXhjbHVkZSkudG8uaW5jbHVkZSh0ZXN0
KTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS50eXBlcykudG8uaW5jbHVkZShcImF1dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcIm1hbnVhbFwiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS51c2VyX2FnZW50KS50by5pbmNsdWRlKFwi
UG9zdG1hblJ1bnRpbWVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbChhdXRvbWF0aWNUaW1lb3V0KTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5tYW51YWwpLnRvLmVxdWFsKG1h
bnVhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVv
dXRzW3NwZWNpYWxUaW1lb3V0VGVzdF0pLnRvLmVxdWFsKHNwZWNpYWxUaW1lb3V0KTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwi
T3RoZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci52
ZXJzaW9uKS50by5lcXVhbChcIjBcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEuaXNfcHVibGljKS50by5lcXVhbChmYWxzZSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2VucykudG8uYmUuZW1wdHk7IiwKKwkJCQkJCQkJ
CQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9u
c2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRlc3RzIG9m
IFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjBiNDlj
MDFiLWU5NDMtNDg3OS1iNDQxLTQwOTM4MzZkMDVlOSIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRh
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
dGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRv
a2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tl
bikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5lcXVhbChc
Im9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2
ZS5wcm9wZXJ0eShcInJ1bm5pbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIs
CisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJBbGwgdGVzdHMgYXJlIHBlbmRpbmcgdGVzdHNcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpKS50
by5ub3QuaGF2ZS5sZW5ndGhPZigwKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmpl
Y3Qua2V5cyhqc29uRGF0YS5ydW5uaW5nX3Rlc3RzKSkudG8uaGF2ZS5sZW5ndGhPZigwKTsiLAor
CQkJCQkJCQkJCQkifSkiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IGF2YWls
YWJsZVRlc3RzID0gcG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVfdGVzdHNcIik7IiwKKwkJCQkJ
CQkJCQkJImNvbnN0IGluY2x1ZGVkVGVzdHMgPSBwbS5nbG9iYWxzLmdldChcImluY2x1ZGVkX3Rl
c3RzXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCBleGNsdWRlZFRlc3RzID0gcG0uZ2xvYmFscy5n
ZXQoXCJleGNsdWRlZF90ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTZWxlY3RlZCBzdWJzZXQgb2YgdGVzdHMgYXJlIHBhcnQgb2YgdGhlIHNlc3Npb25c
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9iamVj
dC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAg
Zm9yICh2YXIgaW5jbHVkZWRUZXN0IG9mIGluY2x1ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgaWYgKGluY2x1ZGVkVGVzdC5zcGxpdChcIi9cIikuZmluZChwYXJ0ID0+ICEh
cGFydCkgPT09IGFwaSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgdmFyIGluY2x1
ZGVSZWdFeHAgPSBuZXcgUmVnRXhwKFwiXlwiICsgaW5jbHVkZWRUZXN0LCBcImlcIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICAgICAgICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRp
bmdfdGVzdHNbYXBpXSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgICAgIHBtLmV4
cGVjdCh0ZXN0KS50by5tYXRjaChyZWdleCk7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAg
ICB9IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBicmVhazsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJCQkJCQkJCQkiICAg
ICAgICBmb3IgKHZhciBleGNsdWRlZFRlc3Qgb2YgZXhjbHVkZWRUZXN0cykgeyIsCisJCQkJCQkJ
CQkJCSIgICAgICAgICAgICBpZiAoZXhjbHVkZWRUZXN0LnNwbGl0KFwiL1wiKS5maW5kKHBhcnQg
PT4gISFwYXJ0KSA9PT0gYXBpKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICB2YXIg
ZXhjbHVkZVJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJeXCIgKyBleGNsdWRlZFRlc3QsIFwiaVwiKTsi
LAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIGZvciAodmFyIHRlc3Qgb2YganNvbkRhdGEu
cGVuZGluZ190ZXN0c1thcGldKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICAgICAg
cG0uZXhwZWN0KHRlc3QpLnRvLm5vdC5tYXRjaChyZWdleCk7IiwKKwkJCQkJCQkJCQkJIiAgICAg
ICAgICAgICAgICB9IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBicmVhazsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJCQkJ
CQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJjb25zdCBzZXNzaW9uVGVzdHMgPSBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzOyIsCisJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rlc3RzXCIs
IEpTT04uc3RyaW5naWZ5KHNlc3Npb25UZXN0cykpOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vz
c2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJ
CQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJ
fSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFt
ZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICJiOWNiYTE5Zi04OGQyLTQxZjYtOTQwYS1hMDk3OWRhMDU1MDAiLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMg
YXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShc
InN0YXR1c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEu
c3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5leHBpcmF0aW9uX2RhdGUpLnRvLmJlLm51
bGw7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVy
dHkoXCJkYXRlX3N0YXJ0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEuZGF0ZV9zdGFydGVkKS50by5zYXRpc2Z5KHZhbHVlID0+ICF2YWx1ZSB8fCB0eXBlb2YgdmFs
dWUgPT09IFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
KS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9maW5pc2hlZFwiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS5kYXRlX2ZpbmlzaGVkKS50by5zYXRpc2Z5KHZhbHVlID0+ICF2
YWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTZXNzaW9uIHN0YXR1cyBp
cyBwZW5kaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicGVuZGluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSki
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGFydCBhbmQgRmluaXNo
IGRhdGUgbm90IHNldFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEuZGF0ZV9zdGFydGVkKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLmRhdGVfZmluaXNoZWQpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJ
CQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIs
CisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0Ijog
WworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7
e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwK
KwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJ
fQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiQ2xlYW4gVXAiLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQki
bWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3
ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIK
KwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10K
KwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0
ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjM2
NjljNzBhLTg4YmMtNDg1NC1hYmFjLTVjYjgwYTIxYzM5MiIsCisJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJ
XQorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
KwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiMWE4MWY1YzUtMjhkOC00OTM1LWI4
YWUtODIyZTMzYzIzZGE5IiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkiIgorCQkJCQkJCQldCisJCQkJCQkJfQorCQkJCQkJ
fQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9w
b3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9m
aWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7CisJCQkibmFtZSI6ICJVcGRhdGUgU2Vzc2lvbiBM
YWJlbHMiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lv
biBcXHcgQ29uZmlndXJhdGlvbiBDb3B5IiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjog
IjlkZTkzMjFjLWFlNzgtNGFiZC1hNzQwLTY2MzRlMmNiYjliOSIsCisJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdleCA9
IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAt
OV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkicG0udGVz
dChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwi
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRv
a2VuUmVnZXgpOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkicG0uZ2xvYmFs
cy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9LAorCQkJCQkJeworCQkJ
CQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
ImlkIjogIjczOTI4NGU3LTE3YWMtNGMzNC1iYWExLTkzMzM1M2ViN2VjYyIsCisJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJIiIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQl7CisJ
CQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1U
eXBlIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNh
dGlvbi9qc29uIgorCQkJCQkJCX0KKwkJCQkJCV0sCisJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQki
bW9kZSI6ICJyYXciLAorCQkJCQkJCSJyYXciOiAie1xuICAgIFwibGFiZWxzXCI6IFtcImxhYmVs
MVwiLCBcImxhYmVsMlwiXVxufSIKKwkJCQkJCX0sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJy
YXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9z
ZXNzaW9ucyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9
LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFk
IFNlc3Npb24gQ29uZmlndXJhdGlvbiIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICI1
YjE1ZjMzOC1jNzczLTRmNDgtOGY3OC0xZDdjOTI2YmViODEiLAorCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJ
CQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJl
c3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhw
KFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYw
LTldezEyfSRcIik7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0
cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJp
bmdcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KFwidGVzdHNcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS50ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhLnRlc3RzKS50by5oYXZlLnByb3BlcnR5KFwiaW5jbHVkZVwiKTsiLAorCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuaW5jbHVkZSkudG8uYmUuYW4uaW5zdGFu
Y2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzKS50
by5oYXZlLnByb3BlcnR5KFwiZXhjbHVkZVwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEudGVzdHMuZXhjbHVkZSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidHlwZXNc
Iik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnR5cGVzKS50by5iZS5hbi5p
bnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJ1c2VyX2FnZW50XCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidGltZW91
dHNcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0
cykudG8uZXF1YWwoXCJvYmplY3RcIikiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudGltZW91dHMpLnRvLmhhdmUucHJvcGVydHkoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0cy5hdXRvbWF0aWMpLnRvLmVx
dWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1l
b3V0cykudG8uaGF2ZS5wcm9wZXJ0eShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QodHlwZW9mIGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCkudG8uZXF1YWwoXCJudW1iZXJc
Iik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5
KFwiYnJvd3NlclwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LmJyb3dzZXIpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAorCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLmJyb3dzZXIubmFtZSkudG8uZXF1YWwo
XCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIp
LnRvLmhhdmUucHJvcGVydHkoXCJ2ZXJzaW9uXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChcInN0cmluZ1wiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJy
ZWZlcmVuY2VfdG9rZW5zXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5y
ZWZlcmVuY2VfdG9rZW5zKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJsYWJlbHNcIik7IiwK
KwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmxhYmVscykudG8uYmUuYW4uaW5zdGFu
Y2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQki
cG0udGVzdChcIkNvbmZpZ3VyYXRpb24gaXMgZGVmYXVsdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuaW5jbHVkZSkudG8u
aW5jbHVkZShcIi9cIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnR5cGVz
KS50by5pbmNsdWRlKFwiYXV0b21hdGljXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEudXNlcl9hZ2VudCkudG8uaW5jbHVkZShcIlBvc3RtYW5SdW50aW1l
XCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5hdXRvbWF0
aWMpLnRvLmVxdWFsKDYwMDAwKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dGltZW91dHMubWFudWFsKS50by5lcXVhbCgzMDAwMDApOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwiT3RoZXJcIik7IiwKKwkJCQkJ
CQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIudmVyc2lvbikudG8uZXF1YWwoXCIw
XCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5pc19wdWJsaWMpLnRvLmVx
dWFsKGZhbHNlKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNl
X3Rva2VucykudG8uYmUuZW1wdHk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
LmxhYmVscykudG8uaW5jbHVkZShcImxhYmVsMVwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEubGFiZWxzKS50by5pbmNsdWRlKFwibGFiZWwyXCIpOyIsCisJCQkJCQkJCQki
fSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2Qi
OiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3
ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlVwZGF0ZSBMYWJlbHMg
Q29weSIsCisJCQkJCSJldmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAorCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCSJpZCI6ICJlNjliNzE4OC1iM2M5LTRmNjYt
OGM2Yy0zZjMzNDhmODRmNmEiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJ
CQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJ
fQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiUFVUIiwKKwkJ
CQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJeworCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIs
CisJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBs
aWNhdGlvbi9qc29uIiwKKwkJCQkJCQkJInR5cGUiOiAidGV4dCIKKwkJCQkJCQl9CisJCQkJCQld
LAorCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkicmF3Ijog
Intcblx0XCJsYWJlbHNcIjogW1wibmV3XCIsIFwibGFiZWxzXCJdXG59IgorCQkJCQkJfSwKKwkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L2xhYmVscyIs
CisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGki
LAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJ
CQkJCQkibGFiZWxzIgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZpZ3Vy
YXRpb24iLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiODZlMjBjNGQtNTc5Ny00YjZl
LWE4Y2MtMTRlMjg0ZTdjNDkxIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIsCisJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1b
YS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhw
ZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRlc3RzXCIpOyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGVzdHMpLnRvLmVxdWFs
KFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cyku
dG8uaGF2ZS5wcm9wZXJ0eShcImluY2x1ZGVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhLnRlc3RzLmluY2x1ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShc
ImV4Y2x1ZGVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmV4
Y2x1ZGUpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInR5cGVzXCIpOyIsCisJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7
IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwi
dXNlcl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LnVzZXJfYWdlbnQpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRzXCIpOyIsCisJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91dHMpLnRvLmVxdWFsKFwib2Jq
ZWN0XCIpIiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzKS50by5o
YXZlLnByb3BlcnR5KFwiYXV0b21hdGljXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0
eXBlb2YganNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbChcIm51bWJlclwiKTsi
LAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMpLnRvLmhhdmUucHJv
cGVydHkoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS50aW1lb3V0cy5tYW51YWwpLnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImJyb3dzZXJcIik7IiwK
KwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyKS50by5lcXVh
bChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nl
cikudG8uaGF2ZS5wcm9wZXJ0eShcIm5hbWVcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyKS50by5oYXZlLnByb3BlcnR5
KFwidmVyc2lvblwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRh
LmJyb3dzZXIudmVyc2lvbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicmVmZXJlbmNlX3Rva2Vuc1wi
KTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNlX3Rva2Vucyku
dG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwibGFiZWxzXCIpOyIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS5sYWJlbHMpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJ
CQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJDb25maWd1
cmF0aW9uIGlzIGRlZmF1bHRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwKKwkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmluY2x1ZGUpLnRvLmluY2x1ZGUoXCIvXCIpOyIs
CisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcImF1
dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudHlwZXMpLnRv
LmluY2x1ZGUoXCJtYW51YWxcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRh
LnVzZXJfYWdlbnQpLnRvLmluY2x1ZGUoXCJQb3N0bWFuUnVudGltZVwiKTsiLAorCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbCg2MDAw
MCk7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRpbWVvdXRzLm1hbnVhbCku
dG8uZXF1YWwoMzAwMDAwKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJv
d3Nlci5uYW1lKS50by5lcXVhbChcIk90aGVyXCIpOyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwiMFwiKTsiLAorCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEuaXNfcHVibGljKS50by5lcXVhbChmYWxzZSk7IiwKKwkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJlLmVt
cHR5OyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5sYWJlbHMpLnRvLmluY2x1
ZGUoXCJuZXdcIik7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmxhYmVscyku
dG8uaW5jbHVkZShcImxhYmVsc1wiKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVh
ZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9r
ZW59fSIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0i
CisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCX0s
CisJCQkJeworCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIsCisJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJInVybCI6
IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCSJwcm90b2Nv
bCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCV0KKwkJCQkJCX0KKwkJ
CQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9CisJCQldLAorCQkJInByb3RvY29sUHJv
ZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5hbWUiOiAiRGVsZXRlIFNlc3Npb24i
LAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJTZXR1cCIsCisJCQkJCSJpdGVt
IjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9uIE5vIENvbmZpZ3Vy
YXRpb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImU4NWZkNTM5
LTQ1OTgtNDdhOS04NzY4LTY1NjY1NmYyOWZlYyIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW5SZWdl
eCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2Et
ZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0XCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24o
KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0
eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2Vu
KS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNw
b25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47
IiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7
IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJ
CQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCXsKKwkJ
CQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVu
dC1UeXBlIiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJCQkidmFsdWUiOiAi
YXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJXSwKKwkJCQkJCQkJImJvZHki
OiB7CisJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJInJhdyI6ICIiCisJCQkJCQkJ
CX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7
aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJ
fSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9j
b2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1
ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJEZWxldGUgU2Vzc2lvbiIsCisJCQkJCSJl
dmVudCI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCSJpZCI6ICI4ZTlmZTRhZi0wZDUwLTQ5ZWItOGE0YS0wMGUxMzAyMWI0
YTYiLAorCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkifSk7IgorCQkJCQkJCQldLAorCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCSJoZWFkZXIi
OiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsK
KwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJ
CQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJ
CQl7CisJCQkJCSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBDb25maWd1cmF0aW9uIiwKKwkJCQkJImV2
ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlw
dCI6IHsKKwkJCQkJCQkJImlkIjogIjk0MTgxMTJhLTAzZjYtNDY0MS04OTNlLTA3NmM4OTIyYzBh
ZiIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyA0MDRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDQwNCk7IiwKKwkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19
Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAor
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJ
CV0KKwkJCQkJCX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9CisJCQldLAor
CQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJeworCQkJIm5hbWUiOiAi
Q3JlYXRlIGFuZCBSZWFkIFJlc3VsdHMiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFt
ZSI6ICJDcmVhdGUgU2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJu
YW1lIjogIkNyZWF0ZSBTZXNzaW9uIFR3byBUZXN0cyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJ
CQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkiaWQiOiAiYTY5OTVmZjEtZDYyNi00ZjRmLWExZTAtNTY3ZjM0MjliZjUyIiwK
KwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJjb25zdCB0b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1b
YS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4g
aW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpz
b25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29u
c3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQo
XCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0sCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijogewor
CQkJCQkJCQkJCSJpZCI6ICI4NWM3YWQ4ZC01ZmM5LTQwM2QtODcxNS1jNjVkNWZmMTMyM2UiLAor
CQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkiY29uc3QgYXZhaWxhYmxlVGVzdHMgPSBK
U09OLnBhcnNlKHBtLmdsb2JhbHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpKTsiLAorCQkJCQkJ
CQkJCQkiY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKS5zb3J0KCk7IiwK
KwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gYXZhaWxhYmxlVGVzdHNba2V5c1swXV1bMF07IiwK
KwkJCQkJCQkJCQkJImNvbnN0IHRlc3QyID0gYXZhaWxhYmxlVGVzdHNba2V5c1sxXV1bMF07IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zb2xlLmxvZyh0ZXN0MSwgdGVzdDIpIiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNpbmdsZV90ZXN0
XzFcIiwgdGVzdDEpOyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNpbmdsZV90ZXN0
XzJcIiwgdGVzdDIpOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJu
YW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJ
CQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXci
OiAie1xuICAgIFwidGVzdHNcIjoge1xuICAgICAgICBcImluY2x1ZGVcIjogW1wie3tzaW5nbGVf
dGVzdF8xfX1cIiwgXCJ7e3NpbmdsZV90ZXN0XzJ9fVwiXVxuICAgIH1cbn0iCisJCQkJCQkJCX0s
CisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJInByb3Rv
Y29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwK
KwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6
ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICIzNWNmNDc0NS0wMzAxLTRjOWMtYjZiMy00MDk0NTI5OTUzM2YiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVy
IjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTov
L3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rv
a2VufX0vc3RhcnQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJ
CQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7
d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJ
CQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJzdGFydCIKKwkJCQkJCQkJ
CV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0s
CisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBSZXN1bHRzIiwKKwkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2Ny
aXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI2ZGMwODJlZi04MGZmLTQwN2EtYTU2Mi1lMjVlMzc0
NzZlZWUiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIG5vIHJlc3VsdHNcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YSku
dG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0
LmtleXMoanNvbkRhdGEpKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQor
CQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhv
ZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAi
cGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIvMmRjb250ZXh0L2RyYXdpbmctaW1hZ2VzLXRv
LXRoZS1jYW52YXMiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0cnVlCisJCQkJCQkJCQkJfSwK
KwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1
ZSI6ICIvMmRjb250ZXh0L2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCisJCQkJCQkJCQkJCSJk
aXNhYmxlZCI6IHRydWUKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImtl
eSI6ICJwYXRoIiwKKwkJCQkJCQkJCQkJInZhbHVlIjogIi8yZGNvbnRleHQvY29uZm9ybWFuY2Ut
cmVxdWlyZW1lbnRzLzJkLm1pc3NpbmdhcmdzLmh0bWwiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQi
OiB0cnVlCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJ
CQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJS
ZWFkIFJlc3VsdHMgQ29tcGFjdCIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQki
aWQiOiAiZmNhZGU2NjMtZGJkOC00MmM5LTgzNDQtNTNhZTFmZWI2ZmNiIiwKKwkJCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMo
MjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2
YXIgc2luZ2xlVGVzdDEgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7IiwKKwkJ
CQkJCQkJCQkJInZhciBzaW5nbGVUZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3Rf
MlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBhcGkxID0gc2luZ2xlVGVz
dDEuc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9PiAhIXBhcnQpOyIsCisJCQkJCQkJCQkJCSJ2YXIg
YXBpMiA9IHNpbmdsZVRlc3QyLnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIG5vIHJl
c3VsdHNcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBq
c29uRGF0YSkudG8uZXF1YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoYXBpMSk7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoYXBpMik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpMV0uY29tcGxldGUpLnRvLmVxdWFsKDApOyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaTJdLmNvbXBsZXRlKS50by5lcXVh
bCgwKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVh
ZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9
fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25f
dG9rZW59fS9jb21wYWN0IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJjb21wYWN0IgorCQkJ
CQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJ
CQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIExhc3QgQ29tcGxldGVkIFRlc3Rz
IG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjM2
ZDcwZDA4LTNjYWEtNDMxMi05YmJkLWFlZDE1ZmQyMzhkZCIsCisJCQkJCQkJCQkJImV4ZWMiOiBb
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
KwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25E
YXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgIiwKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJKU09OIGZvcm1hdCBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRhdGEpKS50by5o
YXZlLmxlbmd0aE9mKDMpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50
by5oYXZlLnByb3BlcnR5KFwicGFzc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImZhaWxcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0XCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgZm9yICh2YXIga2V5IG9mIE9iamVjdC5rZXlzKGpzb25EYXRhKSkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVtrZXldKS50by5iZS5hbi5pbnN0
YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVzcG9uZHMgd2l0aCBubyBs
YXN0IGNvbXBsZXRlZCB0ZXN0c1wiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBm
b3IgKHZhciBrZXkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEpKSB7IiwKKwkJCQkJCQkJCQkJIiAg
ICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2tleV0pLnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJCQkJ
CSIgICAgfSIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAor
CQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2Nv
bH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25f
dG9rZW59fS9sYXN0X2NvbXBsZXRlZCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2Nv
bH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkidGVz
dHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJImxhc3RfY29t
cGxldGVkIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9u
c2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRlc3RzIG9m
IFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjIxMWFk
Y2Y3LWQ3MWEtNGIwZi05NGFiLWQyODVmYzgzNjdkZiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRh
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
dGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRv
a2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50b2tl
bikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5lcXVhbChc
Im9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2
ZS5wcm9wZXJ0eShcInJ1bm5pbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIs
CisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHNl
c3Npb25UZXN0cyA9IGpzb25EYXRhLnBlbmRpbmdfdGVzdHM7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdGVzdHNcIiwgSlNPTi5zdHJpbmdp
Znkoc2Vzc2lvblRlc3RzKSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQki
cmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjog
W10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7
aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNz
aW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhh
dmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJ
CQl7CisJCQkJCSJuYW1lIjogIkNyZWF0ZSBGaXJzdCBSZXN1bHQiLAorCQkJCQkiaXRlbSI6IFsK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIE5leHQgVGVzdCBvZiBTZXNzaW9uIiwKKwkJ
CQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJ
CQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI1NDEwYzljMi1lYmJlLTRiYzEt
YWMxMi1lMjYwMmQ4YWRlNTciLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04g
c3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhyZXNwb25zZSkpLnRvLmhhdmUubGVuZ3RoT2YoMSk7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJvcGVydHko
XCJuZXh0X3Rlc3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIHJlc3Bv
bnNlLm5leHRfdGVzdCkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgbmV4dFRlc3QgPSByZXNwb25zZS5u
ZXh0X3Rlc3Q7IiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0X3Vy
bFwiLCBuZXh0VGVzdCk7IiwKKwkJCQkJCQkJCQkJImlmICghbmV4dFRlc3QpIHJldHVybjsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHBhcmFtZXRlcnMgPSBuZXh0VGVzdC5z
cGxpdChcIj9cIilbMV0uc3BsaXQoXCImXCIpOyIsCisJCQkJCQkJCQkJCSJsZXQgdGVzdCA9IHBh
cmFtZXRlcnMuZmluZChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnNwbGl0KFwiPVwiKVswXSA9PT0g
XCJ0ZXN0X3VybFwiKS5zcGxpdChcIj1cIilbMV07IiwKKwkJCQkJCQkJCQkJInRlc3QgPSBkZWNv
ZGVVUklDb21wb25lbnQodGVzdCk7IiwKKwkJCQkJCQkJCQkJInRlc3QgPSBcIi9cIiArIHRlc3Qu
c3BsaXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIvXCIpLnNwbGl0KFwiP1wiKVswXTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0XCIs
IHRlc3QpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVzdDEgPSBwbS5n
bG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiUmV0dXJuZWQgdGVzdCBpcyBmaXJzdCBvZiB0d28gc3BlY2lmaWVkIHRl
c3RzXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIGNvbnNvbGUubG9nKHRlc3Qp
OyIsCisJCQkJCQkJCQkJCSIgICAgY29uc29sZS5sb2codGVzdDEpOyIsCisJCQkJCQkJCQkJCSIg
ICAgY29uc29sZS5sb2cocG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8yXCIpKSIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHRlc3QpLnRvLmVxdWFsKHRlc3QxKTsiLAorCQkJCQkJCQkJ
CQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsK
KwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9y
dH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJCQkJ
CQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9
fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9r
ZW59fSIsCisJCQkJCQkJCQkJIm5leHQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlJlYWQgVGVzdHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7
CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkiaWQiOiAiZTRmOWEwM2YtYzczMS00MTkyLWE5YTktYWE5ZTMxNWMzYzQ0IiwKKwkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5o
YXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlw
ZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInBlbmRpbmdfdGVzdHNc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnBlbmRpbmdf
dGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicnVubmluZ190ZXN0c1wiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEucnVubmluZ190ZXN0cykudG8uZXF1
YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkiY29uc3QgdGVzdDEgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7
IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QyID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVz
dF8yXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIk9uZSB0ZXN0
IGlzIHBlbmRpbmcsIG9uZSB0ZXN0IGlzIHJ1bm5pbmdcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMp
KS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IE9iamVj
dC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkudG8uaGF2ZS5sZW5ndGhPZigxKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5wZW5kaW5nX3Rlc3RzW2FwaV0p
LnRvLmluY2x1ZGUodGVzdDIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5r
ZXlzKGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJ
CQkJCQkJCSIgICAgYXBpID0gT2JqZWN0LmtleXMoanNvbkRhdGEucnVubmluZ190ZXN0cylbMF07
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucnVubmluZ190ZXN0c1thcGld
KS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhLnJ1bm5pbmdfdGVzdHNbYXBpXSkudG8uaW5jbHVkZSh0ZXN0MSk7IiwKKwkJCQkJCQkJCQkJ
In0pIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0Igor
CQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJ
CQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJ
CQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJ
CQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBSZXN1bHQiLAorCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjlmNjg0Zjc3LTRlZDAtNGNkMi05OWE0
LWIxYzEzNDQzMmU5ZiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJt
ZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJ
CQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlw
ZSIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAorCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJCSJib2R5Ijogewor
CQkJCQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAie1xuICBcInRlc3RcIjog
XCJ7e2N1cnJlbnRfdGVzdH19XCIsXG4gIFwic3RhdHVzXCI6IFwiT0tcIixcbiAgXCJtZXNzYWdl
XCI6IG51bGwsXG4gIFwic3VidGVzdHNcIjogW1xuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN1
YnRlc3QgdGVzdGluZyBmZWF0dXJlIHh5XCIsXG4gICAgICBcInN0YXR1c1wiOiBcIkZBSUxcIixc
biAgICAgIFwibWVzc2FnZVwiOiBcIkVycm9yIG1lc3NhZ2VcIlxuICAgIH1cbiAgXVxufSIKKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19
Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
Imhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IlJlYWQgVGVzdHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkiaWQiOiAiMzM2MDFkZDAtNjc4Ni00YzhhLWE2YjUtN2YxMzg2MTI5ZGU3IiwKKwkJCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9m
IGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInBlbmRpbmdfdGVzdHNcIik7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnBlbmRpbmdfdGVz
dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwicnVubmluZ190ZXN0c1wiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEucnVubmluZ190ZXN0cykudG8uZXF1YWwo
XCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5n
bGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0
KFwic2luZ2xlX3Rlc3RfMlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJPbmUgdGVzdCBpcyBwZW5kaW5nLCBvbmUgdGVzdCBpcyBjb21wbGV0ZWRcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRh
LnBlbmRpbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAg
dmFyIGFwaSA9IE9iamVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpWzBdOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkudG8uaGF2
ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5wZW5k
aW5nX3Rlc3RzW2FwaV0pLnRvLmluY2x1ZGUodGVzdDIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0
aE9mKDApOyIsCisJCQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
Imhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJ
CQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJS
ZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJp
ZCI6ICI5N2JlOTJmMS1hOGQxLTQxZWEtYjQxZC0wY2EwODExM2U2ZTEiLAorCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5j
dGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhw
ZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1
c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEuc3RhdHVz
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5leHBpcmF0aW9uX2RhdGUpLnRvLmJlLm51bGw7IiwK
KwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJk
YXRlX3N0YXJ0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRv
LmhhdmUucHJvcGVydHkoXCJkYXRlX2ZpbmlzaGVkXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTZXNzaW9uIHN0YXR1cyBpcyBy
dW5uaW5nXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwicnVubmluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSkiCisJ
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJ
CQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQki
bWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsK
KwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJf
cm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fS9zdGF0dXMiLAorCQkJCQkJCQkJ
InByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAor
CQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
ImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2Vu
fX0iLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9
LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogIlJlYWQgTGFzdCBDb21wbGV0ZWQgVGVzdHMgb2YgU2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMjRlYzJiNzktYzI2Ni00NzNmLTg1NzktN2I2OTQw
NzlkNjQwIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJIiAgICAiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gZm9ybWF0IGlz
IGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChPYmplY3Qua2V5cyhqc29uRGF0YSkpLnRvLmhhdmUubGVuZ3RoT2YoMyk7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwYXNzXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwi
ZmFpbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5w
cm9wZXJ0eShcInRpbWVvdXRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciBrZXkgb2Yg
T2JqZWN0LmtleXMoanNvbkRhdGEpKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0
KGpzb25EYXRhW2tleV0pLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJ
CSIgICAgfSIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
ImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggb25lIGxhc3Qg
Y29tcGxldGVkIHRlc3RzIGFzIGZhaWxlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJwYXNzXCJdKS50by5iZS5lbXB0eTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YVtcImZhaWxcIl0pLnRvLmhhdmUubGVuZ3RoT2Yo
MSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJmYWlsXCJdWzBdKS50
by5lcXVhbCh0ZXN0MSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJ0
aW1lb3V0XCJdKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJ
CQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
dGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbGFzdF9jb21wbGV0ZWQiLAorCQkJCQkJCQkJInByb3Rv
Y29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIs
CisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJ
CQkJCQkJCSJsYXN0X2NvbXBsZXRlZCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0s
CisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUi
OiAiUmVhZCBSZXN1bHRzIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICIxZjQ3YjM5Zi03MjdmLTQzYjQtOTM0ZC1jN2Y2MmIyNjhiYWEiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBq
c29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJKU09OIGZvcm1hdCBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciBhcGkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEp
KSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0pLnRvLmJl
LmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIGZvciAodmFyIHJl
c3VsdCBvZiBqc29uRGF0YVthcGldKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4
cGVjdCh0eXBlb2YgcmVzdWx0KS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKHJlc3VsdCkpLnRvLmhhdmUubGVuZ3Ro
T2YoNCk7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQpLnRvLmhh
dmUucHJvcGVydHkoXCJ0ZXN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBl
Y3QodHlwZW9mIHJlc3VsdC50ZXN0KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJ
CQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1
c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiByZXN1bHQu
c3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAg
cG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcIm1lc3NhZ2VcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQubWVzc2FnZSkudG8uc2F0aXNmeSht
ZXNzYWdlID0+ICFtZXNzYWdlIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiKTsiLAor
CQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0
eShcInN1YnRlc3RzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVz
dWx0LnN1YnRlc3RzKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgZm9yICh2YXIgc3VidGVzdCBvZiByZXN1bHQuc3VidGVzdHMpIHsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdCh0eXBlb2Ygc3VidGVzdCkudG8uZXF1
YWwoXCJvYmplY3RcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBlY3Qo
T2JqZWN0LmtleXMoc3VidGVzdCkpLnRvLmhhdmUubGVuZ3RoT2YoMyk7IiwKKwkJCQkJCQkJCQkJ
IiAgICAgICAgICAgICAgICBwbS5leHBlY3Qoc3VidGVzdCkudG8uaGF2ZS5wcm9wZXJ0eShcIm5h
bWVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBlY3QodHlwZW9mIHN1
YnRlc3QubmFtZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAg
ICAgICAgICBwbS5leHBlY3Qoc3VidGVzdCkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsi
LAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdCh0eXBlb2Ygc3VidGVzdC5z
dGF0dXMpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAg
ICAgcG0uZXhwZWN0KHN1YnRlc3QpLnRvLmhhdmUucHJvcGVydHkoXCJtZXNzYWdlXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHN1YnRlc3QubWVzc2FnZSkudG8u
c2F0aXNmeShtZXNzYWdlID0+ICFtZXNzYWdlIHx8IHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmlu
Z1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgICAg
IH0iLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MSA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rl
c3RfMVwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJUZXN0IGlz
IGZpcnN0IHRlc3QsIHN1Y2Nlc3NmdWwgcnVuIGFuZCBmYWlsZWRcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IE9iamVjdC5rZXlzKGpzb25EYXRhKVswXTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChhcGkpLnRvLmVxdWFsKHRlc3QxLnNwbGl0KFwiL1wi
KS5maW5kKHBhcnQgPT4gISFwYXJ0KSkiLAorCQkJCQkJCQkJCQkiICAgIHZhciByZXN1bHQgPSBq
c29uRGF0YVthcGldWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3VsdC50ZXN0
KS50by5lcXVhbCh0ZXN0MSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzdWx0LnN0
YXR1cykudG8uZXF1YWwoXCJPS1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXN1
bHQubWVzc2FnZSkudG8uYmUubnVsbDsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBzdWJ0ZXN0ID0g
cmVzdWx0LnN1YnRlc3RzWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHN1YnRlc3Qu
c3RhdHVzKS50by5lcXVhbChcIkZBSUxcIik7IiwKKwkJCQkJCQkJCQkJIn0pIgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3tw
cm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6
IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
CQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0
aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIvMmRjb250ZXh0L2RyYXdpbmctaW1hZ2VzLXRvLXRo
ZS1jYW52YXMiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0cnVlCisJCQkJCQkJCQkJfSwKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAicGF0aCIsCisJCQkJCQkJCQkJCSJ2YWx1ZSI6
ICIvMmRjb250ZXh0L2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCisJCQkJCQkJCQkJCSJkaXNh
YmxlZCI6IHRydWUKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImtleSI6
ICJwYXRoIiwKKwkJCQkJCQkJCQkJInZhbHVlIjogIi8yZGNvbnRleHQvY29uZm9ybWFuY2UtcmVx
dWlyZW1lbnRzLzJkLm1pc3NpbmdhcmdzLmh0bWwiLAorCQkJCQkJCQkJCQkiZGlzYWJsZWQiOiB0
cnVlCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFk
IFJlc3VsdHMgQ29tcGFjdCIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQi
OiAiZTczNGYwNzQtYTBjMi00ZTU0LWI0MjctMjgyN2ZhNzMyODQzIiwKKwkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIg
anNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJInZhciB0ZXN0ID0g
cG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEpLnRv
LmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9i
amVjdC5rZXlzKGpzb25EYXRhKSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChq
c29uRGF0YVthcGldKS50by5oYXZlLnByb3BlcnR5KFwicGFzc1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgICAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhW2FwaV0ucGFzcykudG8uZXF1YWwoXCJu
dW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0p
LnRvLmhhdmUucHJvcGVydHkoXCJmYWlsXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4
cGVjdCh0eXBlb2YganNvbkRhdGFbYXBpXS5mYWlsKS50by5lcXVhbChcIm51bWJlclwiKTsiLAor
CQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXSkudG8uaGF2ZS5wcm9w
ZXJ0eShcInRpbWVvdXRcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KHR5cGVv
ZiBqc29uRGF0YVthcGldLnRpbWVvdXQpLnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJ
CQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldKS50by5oYXZlLnByb3BlcnR5KFwi
bm90X3J1blwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QodHlwZW9mIGpzb25E
YXRhW2FwaV0ubm90X3J1bikudG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICB9IiwKKwkJCQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiUmVzcG9uZHMgd2l0aCBvbmUgdGVzdCBmYWlsZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IHRlc3Quc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9PiAh
IXBhcnQpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0ucGFzcyku
dG8uZXF1YWwoMCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5m
YWlsKS50by5lcXVhbCgxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YVth
cGldLnRpbWVvdXQpLnRvLmVxdWFsKDApOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhW2FwaV0ubm90X3J1bikudG8uZXF1YWwoMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJ
CX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJt
ZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogewor
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0vY29tcGFjdCIsCisJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQki
YXBpIiwKKwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkJCQkiY29tcGFjdCIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0s
CisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29s
UHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUK
KwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAiQ3JlYXRlIExhc3QgUmVzdWx0IiwKKwkJCQkJ
Iml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgU2Vz
c2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiZmQyYzExZWUt
NWVjYS00M2YzLTg5YTctMTMzNjAyYzgwMzRhIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRl
c3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMocmVzcG9uc2UpKS50by5oYXZlLmxl
bmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZl
LnByb3BlcnR5KFwibmV4dF90ZXN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5
cGVvZiByZXNwb25zZS5uZXh0X3Rlc3QpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJ
CQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0g
cmVzcG9uc2UubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJl
bnRfdGVzdF91cmxcIiwgbmV4dFRlc3QpOyIsCisJCQkJCQkJCQkJCSJpZiAoIW5leHRUZXN0KSBy
ZXR1cm47IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCBwYXJhbWV0ZXJzID0g
bmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNwbGl0KFwiJlwiKTsiLAorCQkJCQkJCQkJCQkibGV0
IHRlc3QgPSBwYXJhbWV0ZXJzLmZpbmQocGFyYW1ldGVyID0+IHBhcmFtZXRlci5zcGxpdChcIj1c
IilbMF0gPT09IFwidGVzdF91cmxcIikuc3BsaXQoXCI9XCIpWzFdOyIsCisJCQkJCQkJCQkJCSJ0
ZXN0ID0gZGVjb2RlVVJJQ29tcG9uZW50KHRlc3QpOyIsCisJCQkJCQkJCQkJCSJ0ZXN0ID0gXCIv
XCIgKyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilb
MF07IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJl
bnRfdGVzdFwiLCB0ZXN0KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRl
c3QyID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8yXCIpOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkicG0udGVzdChcIlJldHVybmVkIHRlc3QgaXMgc2Vjb25kIG9mIHR3byBz
cGVjaWZpZWQgdGVzdHNcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KHRlc3QpLnRvLmVxdWFsKHRlc3QyKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJ
Im5leHQiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgVGVzdHMgb2Yg
U2Vzc2lvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMTEyZWUz
ZDUtZDRlMC00ODM4LTg3OWUtZjc0YzM4ZDAyMThjIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEg
PSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9r
ZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2Vu
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInBlbmRpbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpLnRvLmVxdWFsKFwi
b2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZl
LnByb3BlcnR5KFwicnVubmluZ190ZXN0c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dCh0eXBlb2YganNvbkRhdGEucnVubmluZ190ZXN0cykudG8uZXF1YWwoXCJvYmplY3RcIik7IiwK
KwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVz
dDEgPSBwbS5nbG9iYWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7IiwKKwkJCQkJCQkJCQkJImNv
bnN0IHRlc3QyID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8yXCIpOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIk9uZSB0ZXN0IGlzIHJ1bm5pbmdcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25E
YXRhLnBlbmRpbmdfdGVzdHMpKS50by5oYXZlLmxlbmd0aE9mKDApOyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpKS50by5oYXZl
Lmxlbmd0aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IE9iamVjdC5rZXlzKGpz
b25EYXRhLnJ1bm5pbmdfdGVzdHMpWzBdOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnJ1bm5pbmdfdGVzdHNbYXBpXSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5ydW5uaW5nX3Rlc3RzW2FwaV0pLnRvLmluY2x1
ZGUodGVzdDIpOyIsCisJCQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0s
CisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJ
ImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3Rv
Y29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJ
CQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwK
KwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6
ICJDcmVhdGUgUmVzdWx0IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICI3OWE4NGVkOS1iYjA3LTQ5M2QtYWIzNC04ZTc2OTNiM2ViYmQiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJ
CSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVy
IjogWworCQkJCQkJCQkJeworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJ
CQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAor
CQkJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJ
CQldLAorCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJ
CQkicmF3IjogIntcbiAgXCJ0ZXN0XCI6IFwie3tjdXJyZW50X3Rlc3R9fVwiLFxuICBcInN0YXR1
c1wiOiBcIk9LXCIsXG4gIFwibWVzc2FnZVwiOiBudWxsLFxuICBcInN1YnRlc3RzXCI6IFtcbiAg
ICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWJ0ZXN0IHRlc3RpbmcgZmVhdHVyZSB4eVwiLFxuICAg
ICAgXCJzdGF0dXNcIjogXCJQQVNTXCIsXG4gICAgICBcIm1lc3NhZ2VcIjogXCJFcnJvciBtZXNz
YWdlXCJcbiAgICB9XG4gIF1cbn0iCisJCQkJCQkJCX0sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAi
e3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIK
KwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJ
XQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwK
KwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQki
ZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJjMTgyOTA0My0xOGRkLTRjYzEtODA5MS00
MTk4MTM0OWY0ZTMiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBw
bS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiSlNPTiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5c
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnRva2VuKS50
by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YSkudG8uaGF2ZS5wcm9wZXJ0eShcInN0YXR1c1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdCh0eXBlb2YganNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImV4cGly
YXRpb25fZGF0ZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5leHBp
cmF0aW9uX2RhdGUpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJkYXRlX3N0YXJ0ZWRcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJkYXRlX2ZpbmlzaGVk
XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTZXNzaW9uIHN0YXR1cyBpcyBjb21wbGV0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnN0YXR1cykudG8uZXF1YWwoXCJjb21w
bGV0ZWRcIik7IiwKKwkJCQkJCQkJCQkJIn0pIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiRmluaXNoIGRhdGUgaXMgc2V0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChEYXRlLnBhcnNlKGpzb25EYXRhLmRhdGVfZmluaXNoZWQpKS50
by5iZS5iZWxvdyhEYXRlLm5vdygpKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJ
CQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJH
RVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
c2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhdHVzIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19
IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJ
CQkJCQkic3RhdHVzIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQki
cmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFRl
c3RzIG9mIFNlc3Npb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjog
IjU5ZmVlOWRmLTk5NDUtNGZkZi1hMTAyLTljMWI5MmQ5MTVjMSIsCisJCQkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpz
b25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0
eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBl
Y3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5wZW5kaW5nX3Rlc3RzKS50by5l
cXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSku
dG8uaGF2ZS5wcm9wZXJ0eShcInJ1bm5pbmdfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0
XCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNv
bnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJ
CQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMlwiKTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciB0ZXN0MUFwaSA9IHRlc3QxLnNwbGl0KFwi
L1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KTsiLAorCQkJCQkJCQkJCQkidmFyIHRlc3QyQXBpID0g
dGVzdDEuc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9PiAhIXBhcnQpOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkicG0udGVzdChcIk9uZSB0ZXN0IGlzIHBlbmRpbmcsIG9uZSB0ZXN0IGlz
IGNvbXBsZXRlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
T2JqZWN0LmtleXMoanNvbkRhdGEucGVuZGluZ190ZXN0cykpLnRvLmhhdmUubGVuZ3RoT2YoMCk7
IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRhdGEucnVubmlu
Z190ZXN0cykpLnRvLmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJCQkJCQkJIn0pIgorCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQor
CQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhv
ZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJ
CQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9
fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7
cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJ
CQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJInRlc3RzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJ
CQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJ
CQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgTGFzdCBDb21wbGV0ZWQgVGVzdHMgb2YgU2Vzc2lv
biIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiOTFmYTM4YWMtM2Iw
Ni00ODhhLTg5MmUtNTk0NThlODhhNGRhIiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5y
ZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJIiAgICAiLAorCQkJCQkJCQkJCQkicG0udGVz
dChcIkpTT04gZm9ybWF0IGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YSkpLnRvLmhhdmUubGVuZ3Ro
T2YoMyk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJv
cGVydHkoXCJwYXNzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50
by5oYXZlLnByb3BlcnR5KFwiZmFpbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRcIik7IiwKKwkJCQkJCQkJCQkJIiAg
ICBmb3IgKHZhciBrZXkgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEpKSB7IiwKKwkJCQkJCQkJCQkJ
IiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhW2tleV0pLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJy
YXkpOyIsCisJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gcG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVf
dGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwi
c2luZ2xlX3Rlc3RfMlwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJSZXNwb25kcyB3aXRoIG9uZSBsYXN0IGNvbXBsZXRlZCB0ZXN0cyBhcyBmYWlsZWQgYW5kIG9u
ZSBsYXN0IGNvbXBsZXRlZCB0ZXN0IGFzIHBhc3NlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGFbXCJwYXNzXCJdKS50by5oYXZlLmxlbmd0aE9m
KDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW1wicGFzc1wiXVswXSku
dG8uZXF1YWwodGVzdDIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW1wi
ZmFpbFwiXSkudG8uaGF2ZS5sZW5ndGhPZigxKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVj
dChqc29uRGF0YVtcImZhaWxcIl1bMF0pLnRvLmVxdWFsKHRlc3QxKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YVtcInRpbWVvdXRcIl0pLnRvLmJlLmVtcHR5OyIsCisJCQkJ
CQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFz
Y3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJ
CQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9sYXN0X2Nv
bXBsZXRlZCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQki
cG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJf
cm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJImxhc3RfY29tcGxldGVkIgorCQkJCQkJ
CQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
fSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJSZWFkIFJlc3VsdHMiLAorCQkJCQkJCSJldmVu
dCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJz
Y3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogImRjYTBiNDJlLTkwNTQtNDM1NC04N2U1LWU4ZDIz
NjIxNjA1MCIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gZm9ybWF0IGlzIGFz
IGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIGFw
aSBvZiBPYmplY3Qua2V5cyhqc29uRGF0YSkpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5l
eHBlY3QoanNvbkRhdGFbYXBpXSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJ
CQkJCQkJIiAgICAgICAgZm9yICh2YXIgcmVzdWx0IG9mIGpzb25EYXRhW2FwaV0pIHsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiByZXN1bHQpLnRvLmVxdWFsKFwi
b2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QoT2JqZWN0Lmtl
eXMocmVzdWx0KSkudG8uaGF2ZS5sZW5ndGhPZig0KTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAg
ICAgcG0uZXhwZWN0KHJlc3VsdCkudG8uaGF2ZS5wcm9wZXJ0eShcInRlc3RcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdCh0eXBlb2YgcmVzdWx0LnRlc3QpLnRvLmVxdWFs
KFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0
KS50by5oYXZlLnByb3BlcnR5KFwic3RhdHVzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAg
ICBwbS5leHBlY3QodHlwZW9mIHJlc3VsdC5zdGF0dXMpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0KS50by5oYXZlLnByb3Bl
cnR5KFwibWVzc2FnZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgcG0uZXhwZWN0KHJl
c3VsdC5tZXNzYWdlKS50by5zYXRpc2Z5KG1lc3NhZ2UgPT4gIW1lc3NhZ2UgfHwgdHlwZW9mIG1l
c3NhZ2UgPT09IFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBl
Y3QocmVzdWx0KS50by5oYXZlLnByb3BlcnR5KFwic3VidGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQuc3VidGVzdHMpLnRvLmJlLmFuLmluc3RhbmNl
b2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBmb3IgKHZhciBzdWJ0ZXN0IG9m
IHJlc3VsdC5zdWJ0ZXN0cykgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgcG0uZXhw
ZWN0KHR5cGVvZiBzdWJ0ZXN0KS50by5lcXVhbChcIm9iamVjdFwiKTsiLAorCQkJCQkJCQkJCQki
ICAgICAgICAgICAgICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhzdWJ0ZXN0KSkudG8uaGF2ZS5s
ZW5ndGhPZigzKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdChzdWJ0
ZXN0KS50by5oYXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAg
ICAgICAgIHBtLmV4cGVjdCh0eXBlb2Ygc3VidGVzdC5uYW1lKS50by5lcXVhbChcInN0cmluZ1wi
KTsiLAorCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHBtLmV4cGVjdChzdWJ0ZXN0KS50by5o
YXZlLnByb3BlcnR5KFwic3RhdHVzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAg
cG0uZXhwZWN0KHR5cGVvZiBzdWJ0ZXN0LnN0YXR1cykudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwK
KwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5leHBlY3Qoc3VidGVzdCkudG8uaGF2ZS5w
cm9wZXJ0eShcIm1lc3NhZ2VcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBwbS5l
eHBlY3Qoc3VidGVzdC5tZXNzYWdlKS50by5zYXRpc2Z5KG1lc3NhZ2UgPT4gIW1lc3NhZ2UgfHwg
dHlwZW9mIG1lc3NhZ2UgPT09IFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAg
ICB9IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0g
cG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8xXCIpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0
ZXN0MiA9IHBtLmdsb2JhbHMuZ2V0KFwic2luZ2xlX3Rlc3RfMlwiKTsiLAorCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJUZXN0IGlzIGZpcnN0IGFuZCBzZWNvbmQgdGVzdCwg
c3VjY2Vzc2Z1bCBydW4gYW5kIGZhaWxlZCwgYW5kIHN1Y2Nlc3NmdWwgcnVuIGFuZCBwYXNzZWRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IE9iamVjdC5rZXlz
KGpzb25EYXRhKVswXTsiLAorCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIHJlc3VsdCBvZiBqc29u
RGF0YVthcGldKSB7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgaWYgKHJlc3VsdC50ZXN0ID09PSB0
ZXN0MSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0LnRlc3Qp
LnRvLmVxdWFsKHRlc3QxKTsgIiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChy
ZXN1bHQuc3RhdHVzKS50by5lcXVhbChcIk9LXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAg
ICBwbS5leHBlY3QocmVzdWx0Lm1lc3NhZ2UpLnRvLmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJIiAg
ICAgICAgICAgIHZhciBzdWJ0ZXN0ID0gcmVzdWx0LnN1YnRlc3RzWzBdOyIsCisJCQkJCQkJCQkJ
CSIgICAgICAgICAgICBwbS5leHBlY3Qoc3VidGVzdC5zdGF0dXMpLnRvLmVxdWFsKFwiRkFJTFwi
KTsiLAorCQkJCQkJCQkJCQkiICAgICAgICB9IGVsc2UgeyIsCisJCQkJCQkJCQkJCSIgICAgICAg
ICAgICBwbS5leHBlY3QocmVzdWx0LnRlc3QpLnRvLmVxdWFsKHRlc3QyKTsgIiwKKwkJCQkJCQkJ
CQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChyZXN1bHQuc3RhdHVzKS50by5lcXVhbChcIk9LXCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QocmVzdWx0Lm1lc3NhZ2UpLnRv
LmJlLm51bGw7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHN1YnRlc3QgPSByZXN1bHQuc3Vi
dGVzdHNbMF07IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChzdWJ0ZXN0LnN0
YXR1cykudG8uZXF1YWwoXCJQQVNTXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJ
CQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkifSkiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJ
CQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7
c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJ
CSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwK
KwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInF1
ZXJ5IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImtleSI6ICJwYXRoIiwKKwkJCQkJCQkJ
CQkJInZhbHVlIjogIi8yZGNvbnRleHQvZHJhd2luZy1pbWFnZXMtdG8tdGhlLWNhbnZhcyIsCisJ
CQkJCQkJCQkJCSJkaXNhYmxlZCI6IHRydWUKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJ
CQkJCQkJCQkJImtleSI6ICJwYXRoIiwKKwkJCQkJCQkJCQkJInZhbHVlIjogIi8yZGNvbnRleHQv
Y29uZm9ybWFuY2UtcmVxdWlyZW1lbnRzIiwKKwkJCQkJCQkJCQkJImRpc2FibGVkIjogdHJ1ZQor
CQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkia2V5IjogInBhdGgiLAorCQkJ
CQkJCQkJCQkidmFsdWUiOiAiLzJkY29udGV4dC9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMvMmQu
bWlzc2luZ2FyZ3MuaHRtbCIsCisJCQkJCQkJCQkJCSJkaXNhYmxlZCI6IHRydWUKKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6
IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlJlYWQgUmVzdWx0cyBDb21w
YWN0IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIxNGVjOTI1NC01
YTQwLTRjODYtOWE3Zi03MmY0M2EzNWE3OWIiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJ
CQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhKS50by5lcXVhbChcIm9iamVjdFwi
KTsiLAorCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIGFwaSBvZiBPYmplY3Qua2V5cyhqc29uRGF0
YSkpIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXSkudG8u
aGF2ZS5wcm9wZXJ0eShcInBhc3NcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0
KHR5cGVvZiBqc29uRGF0YVthcGldLnBhc3MpLnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJ
CQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldKS50by5oYXZlLnByb3BlcnR5
KFwiZmFpbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QodHlwZW9mIGpzb25E
YXRhW2FwaV0uZmFpbCkudG8uZXF1YWwoXCJudW1iZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICAg
ICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0pLnRvLmhhdmUucHJvcGVydHkoXCJ0aW1lb3V0XCIp
OyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGFbYXBpXS50
aW1lb3V0KS50by5lcXVhbChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5l
eHBlY3QoanNvbkRhdGFbYXBpXSkudG8uaGF2ZS5wcm9wZXJ0eShcIm5vdF9ydW5cIik7IiwKKwkJ
CQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YVthcGldLm5vdF9ydW4p
LnRvLmVxdWFsKFwibnVtYmVyXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJ
CSJ9KSIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkiY29uc3QgdGVzdDEgPSBwbS5nbG9i
YWxzLmdldChcInNpbmdsZV90ZXN0XzFcIik7IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QyID0g
cG0uZ2xvYmFscy5nZXQoXCJzaW5nbGVfdGVzdF8yXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkidmFyIHRlc3QxQXBpID0gdGVzdDEuc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9PiAh
IXBhcnQpOyIsCisJCQkJCQkJCQkJCSJ2YXIgdGVzdDJBcGkgPSB0ZXN0MS5zcGxpdChcIi9cIiku
ZmluZChwYXJ0ID0+ICEhcGFydCk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiUmVzcG9uZHMgd2l0aCBvbmUgdGVzdCBmYWlsZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KE9iamVjdC5rZXlzKGpzb25EYXRhKSkudG8uaGF2ZS5s
ZW5ndGhPZigyKTsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBhcGkgPSBPYmplY3Qua2V5cyhqc29u
RGF0YSlbMF07IiwKKwkJCQkJCQkJCQkJIiAgICBpZiAoYXBpID09PSB0ZXN0MUFwaSkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldLnBhc3MpLnRvLmVxdWFs
KDApOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldLmZhaWwp
LnRvLmVxdWFsKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgfSBlbHNlIHsiLAorCQkJCQkJCQkJCQki
ICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5wYXNzKS50by5lcXVhbCgxKTsiLAorCQkJ
CQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5mYWlsKS50by5lcXVhbCgw
KTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YVthcGldLnRpbWVvdXQpLnRvLmVxdWFsKDApOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhW2FwaV0ubm90X3J1bikudG8uZXF1YWwoMCk7IiwKKwkJCQkJCQkJCQkJIiAg
ICBhcGkgPSBPYmplY3Qua2V5cyhqc29uRGF0YSlbMV07IiwKKwkJCQkJCQkJCQkJIiAgICBpZiAo
YXBpID09PSB0ZXN0MUFwaSkgeyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4cGVjdChqc29u
RGF0YVthcGldLnBhc3MpLnRvLmVxdWFsKDApOyIsCisJCQkJCQkJCQkJCSIgICAgICAgIHBtLmV4
cGVjdChqc29uRGF0YVthcGldLmZhaWwpLnRvLmVxdWFsKDEpOyIsCisJCQkJCQkJCQkJCSIgICAg
fSBlbHNlIHsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRhdGFbYXBpXS5w
YXNzKS50by5lcXVhbCgxKTsiLAorCQkJCQkJCQkJCQkiICAgICAgICBwbS5leHBlY3QoanNvbkRh
dGFbYXBpXS5mYWlsKS50by5lcXVhbCgwKTsiLAorCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YVthcGldLnRpbWVvdXQpLnRvLmVxdWFsKDApOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhW2FwaV0ubm90X3J1bikudG8uZXF1
YWwoMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhl
YWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9u
X3Rva2VufX0vY29tcGFjdCIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkicmVzdWx0cyIs
CisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkiY29tcGFjdCIKKwkJ
CQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBOZXh0IFRlc3Qgb2YgU2Vzc2lv
biIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiMTMyNTc0ZGMtMzY4
OC00N2UzLThmNTAtMzIzNWYxODgwNmY3IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMocmVzcG9uc2UpKS50by5oYXZlLmxlbmd0
aE9mKDEpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnBy
b3BlcnR5KFwibmV4dF90ZXN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVv
ZiByZXNwb25zZS5uZXh0X3Rlc3QpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0gcmVz
cG9uc2UubmV4dF90ZXN0OyIsCisJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJlbnRf
dGVzdF91cmxcIiwgbmV4dFRlc3QpOyIsCisJCQkJCQkJCQkJCSJpZiAoIW5leHRUZXN0KSByZXR1
cm47IiwKKwkJCQkJCQkJCQkJImNvbnN0IHRlc3QgPSBcIi9cIiArIG5leHRUZXN0LnNwbGl0KFwi
L1wiKS5zbGljZSgzKS5qb2luKFwiL1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCQkJ
InBtLmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0XCIsIHRlc3QpOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkiY29uc3Qgd2ViX3Jvb3QgPSBwbS5lbnZpcm9ubWVudC5nZXQoXCJ3ZWJf
cm9vdFwiKTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1cm5l
ZCB0ZXN0IGZpbmlzaCBwYWdlXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdCh0ZXN0KS50by5lcXVhbChcIi9cIiArIHdlYl9yb290ICsgXCIvZmluaXNoLmh0bWxc
Iik7IiwKKwkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRl
ciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tl
bn19L25leHQiLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJuZXh0IgorCQkJCQkJCQkJXQorCQkJ
CQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQld
LAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lz
U3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJDbGVhbiBVcCIs
CisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkRlbGV0ZSBTZXNzaW9u
IiwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMv
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25z
IiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0K
KwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJ
CSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xk
ZXIiOiB0cnVlCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9
CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIlZpZXdpbmcgYW5kIERvd25sb2FkaW5nIFJlcG9ydHMi
LAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFtZSI6ICJDcmVhdGUgU2Vzc2lvbnMiLAor
CQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJGaXJzdCBTZXNzaW9uIiwK
KwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNl
c3Npb24gT25lIFRlc3RzIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CQkJCQkiaWQiOiAiMmYyMzNkY2YtZDkzNC00NDc5LTg5MDgtYjEzNDllNmVhNTRkIiwKKwkJCQkJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAor
CQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJ
CQkJInBtLmdsb2JhbHMuc2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJl
cXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjI5MzBh
ODIxLTJjNmUtNDdiOS04OWQ5LTkwZWJlMWNmZjUyYSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJCQkiY29uc3QgYXZhaWxhYmxlVGVzdHMgPSBKU09OLnBhcnNlKHBtLmdsb2Jh
bHMuZ2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpKTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBrZXlz
ID0gT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpLnNvcnQoKTsiLAorCQkJCQkJCQkJCQkJCSJj
b25zdCB0ZXN0MSA9IGF2YWlsYWJsZVRlc3RzW2tleXNbMF1dWzBdOyIsCisJCQkJCQkJCQkJCQkJ
ImNvbnN0IHRlc3QyID0gYXZhaWxhYmxlVGVzdHNba2V5c1sxXV1bMF07IiwKKwkJCQkJCQkJCQkJ
CQkiY29uc3QgYXBpTmFtZSA9IHRlc3QxLnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNp
bmdsZV90ZXN0XzFcIiwgdGVzdDEpOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
c2luZ2xlX3Rlc3RfMlwiLCB0ZXN0Mik7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQo
XCJhcGlfbmFtZVwiLCBhcGlOYW1lKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIs
CisJCQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJImtleSI6
ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJ
CQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0
aW9uL2pzb24iCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJib2R5Ijog
eworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIntcbiAgICBc
InRlc3RzXCI6IHtcbiAgICAgICAgXCJpbmNsdWRlXCI6IFtcInt7c2luZ2xlX3Rlc3RfMX19XCJd
XG4gICAgfVxufSIKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJ
CSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2Fw
aS9zZXNzaW9ucyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
CQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5h
bWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJewor
CQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJ
CQkJCQkJCQkJImlkIjogIjEyZjM2MTZiLTcwN2UtNGE3MS04ZGI4LTg5ZmMxOTVjMWZjZCIsCisJ
CQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
CQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9y
dH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0vc3RhcnQiLAor
CQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJw
b3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3
ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIiwK
KwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJCQkic3RhcnQiCisJ
CQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNl
IjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBOZXh0
IFRlc3Qgb2YgU2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCQkJImlkIjogImYzNWYxNTA5LTM4M2YtNDlhZi1hMzBlLTQxZTFkZjRlZmEwNCIsCisJCQkJ
CQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgbmV4dFRlc3QgPSByZXNwb25z
ZS5uZXh0X3Rlc3Q7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rl
c3RfdXJsXCIsIG5leHRUZXN0KTsiLAorCQkJCQkJCQkJCQkJCSJpZiAoIW5leHRUZXN0KSByZXR1
cm47IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgcGFyYW1ldGVycyA9
IG5leHRUZXN0LnNwbGl0KFwiP1wiKVsxXS5zcGxpdChcIiZcIik7IiwKKwkJCQkJCQkJCQkJCQki
bGV0IHRlc3QgPSBwYXJhbWV0ZXJzLmZpbmQocGFyYW1ldGVyID0+IHBhcmFtZXRlci5zcGxpdChc
Ij1cIilbMF0gPT09IFwidGVzdF91cmxcIikuc3BsaXQoXCI9XCIpWzFdOyIsCisJCQkJCQkJCQkJ
CQkJInRlc3QgPSBkZWNvZGVVUklDb21wb25lbnQodGVzdCk7IiwKKwkJCQkJCQkJCQkJCQkidGVz
dCA9IFwiL1wiICsgdGVzdC5zcGxpdChcIi9cIikuc2xpY2UoMykuam9pbihcIi9cIikuc3BsaXQo
XCI/XCIpWzBdOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwiY3VycmVudF90ZXN0XCIsIHRlc3QpOyIsCisJCQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJ
CX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJ
CQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rva2VufX0vbmV4dCIsCisJ
CQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBv
cnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dl
Yl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkidGVzdHMiLAorCQkJ
CQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJuZXh0IgorCQkJCQkJ
CQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtd
CisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBSZXN1bHQi
LAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJiMDE1
ZjE2MS1lMzkwLTQyMjQtOWYyNi05MjM5NWY0NGM3NzIiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBb
CisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwK
KwkJCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCQkia2V5Ijog
IkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJ
CQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJImJvZHkiOiB7
CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJCSJyYXciOiAie1xuICBcInRl
c3RcIjogXCJ7e2N1cnJlbnRfdGVzdH19XCIsXG4gIFwic3RhdHVzXCI6IFwiT0tcIixcbiAgXCJt
ZXNzYWdlXCI6IG51bGwsXG4gIFwic3VidGVzdHNcIjogW1xuICAgIHtcbiAgICAgIFwibmFtZVwi
OiBcIlN1YnRlc3QgdGVzdGluZyBmZWF0dXJlIHh5XCIsXG4gICAgICBcInN0YXR1c1wiOiBcIkZB
SUxcIixcbiAgICAgIFwibWVzc2FnZVwiOiBcIkVycm9yIG1lc3NhZ2VcIlxuICAgIH1cbiAgXVxu
fSIKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRz
L3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRo
IjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJ
CQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZp
b3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAor
CQkJCQkJeworCQkJCQkJCSJuYW1lIjogIlNlY29uZCBTZXNzaW9uIiwKKwkJCQkJCQkiaXRlbSI6
IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gT25lIFRlc3Rz
IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiZGEz
ZDBjMTctNmIyYi00ZDYxLWFkMDEtZGJhNzM2NDI1Mzg4IiwKKwkJCQkJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJj
b25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwic2Vzc2lvbl90b2tlbl9jb21wXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJCQldLAorCQkJ
CQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJ
CQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiN2RhODFlODEtZDM0NC00
NDU5LWI3MDAtMTliOTNkNDlkM2M5IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IEpTT04ucGFyc2UocG0uZ2xvYmFscy5nZXQoXCJh
dmFpbGFibGVfdGVzdHNcIikpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IGtleXMgPSBPYmplY3Qu
a2V5cyhhdmFpbGFibGVUZXN0cykuc29ydCgpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRlc3Qx
ID0gYXZhaWxhYmxlVGVzdHNba2V5c1swXV1bMF07IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzaW5nbGVfdGVzdF8xXCIsIHRlc3QxKTsiCisJCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJ
CQkJCQkJeworCQkJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJ
Im5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJ
CQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQkJCX0KKwkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAor
CQkJCQkJCQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAgICAgICAgXCJpbmNsdWRl
XCI6IFtcInt7c2luZ2xlX3Rlc3RfMX19XCJdXG4gICAgfVxufSIKKwkJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiU3RhcnQgU2Vzc2lvbiIsCisJCQkJCQkJ
CQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAor
CQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjMyOTZjN2JhLTY3YTYt
NDA1ZC1hNzhhLTUxZGQ2NDQzMjMwMSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMv
e3tzZXNzaW9uX3Rva2VuX2NvbXB9fS9zdGFydCIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7
e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9
fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJ
ImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbl9jb21wfX0iLAorCQkJCQkJCQkJCQkJInN0YXJ0IgorCQkJCQkJCQkJCQldCisJCQkJCQkJ
CQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQgTmV4dCBUZXN0IG9mIFNlc3Npb24iLAor
CQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI3MmRlYjU1
Yy00NTgzLTQ3NDEtOWNmOC05NzcxMzc2MmI4OTQiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNv
bnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0gcmVzcG9uc2UubmV4dF90ZXN0OyIsCisJCQkJ
CQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiY3VycmVudF90ZXN0X3VybFwiLCBuZXh0VGVzdCk7
IiwKKwkJCQkJCQkJCQkJCQkiaWYgKCFuZXh0VGVzdCkgcmV0dXJuOyIsCisJCQkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHBhcmFtZXRlcnMgPSBuZXh0VGVzdC5zcGxpdChcIj9c
IilbMV0uc3BsaXQoXCImXCIpOyIsCisJCQkJCQkJCQkJCQkJImxldCB0ZXN0ID0gcGFyYW1ldGVy
cy5maW5kKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIuc3BsaXQoXCI9XCIpWzBdID09PSBcInRlc3Rf
dXJsXCIpLnNwbGl0KFwiPVwiKVsxXTsiLAorCQkJCQkJCQkJCQkJCSJ0ZXN0ID0gZGVjb2RlVVJJ
Q29tcG9uZW50KHRlc3QpOyIsCisJCQkJCQkJCQkJCQkJInRlc3QgPSBcIi9cIiArIHRlc3Quc3Bs
aXQoXCIvXCIpLnNsaWNlKDMpLmpvaW4oXCIvXCIpLnNwbGl0KFwiP1wiKVswXTsiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImN1cnJlbnRfdGVzdFwi
LCB0ZXN0KTsiLAorCQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VU
IiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJ
CQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0v
YXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbl9jb21wfX0vbmV4dCIsCisJCQkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkidGVzdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbl9jb21wfX0iLAorCQkJCQkJCQkJCQkJIm5leHQiCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFJlc3VsdCIsCisJCQkJCQkJ
CQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAor
CQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogImQ2OTVmMzAwLWE3NzMt
NDY1NC1iMzQ2LTk1YzUzNmNhZDE5ZSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJ
CQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJ
CQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1U
eXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJCQki
dmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIsCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0Igor
CQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJ
CQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCQkJInJhdyI6ICJ7XG4gIFwidGVzdFwiOiBcInt7
Y3VycmVudF90ZXN0fX1cIixcbiAgXCJzdGF0dXNcIjogXCJPS1wiLFxuICBcIm1lc3NhZ2VcIjog
bnVsbCxcbiAgXCJzdWJ0ZXN0c1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3VidGVz
dCB0ZXN0aW5nIGZlYXR1cmUgeHlcIixcbiAgICAgIFwic3RhdHVzXCI6IFwiRkFJTFwiLFxuICAg
ICAgXCJtZXNzYWdlXCI6IFwiRXJyb3IgbWVzc2FnZVwiXG4gICAgfVxuICBdXG59IgorCQkJCQkJ
CQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9u
X3Rva2VuX2NvbXB9fSIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAor
CQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsK
KwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJ
CQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VuX2NvbXB9fSIKKwkJ
CQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZp
b3IiOiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9CisJ
CQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3Rt
YW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIkRvd25s
b2FkIHJlcG9ydHMiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJE
b3dubG9hZCBSZXN1bHRzIE92ZXJ2aWV3IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsK
KwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJ
CQkJCSJpZCI6ICI2ODM4OTY1Zi03YTI3LTQ4ZDUtOGMyNy1mNTVkNDc1NjU4OGYiLAorCQkJCQkJ
CQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90
b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9yZXN1bHRzL3t7c2Vz
c2lvbl90b2tlbn19L292ZXJ2aWV3IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29s
fX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJ
CQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1
bHRzIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJvdmVydmll
dyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjog
W10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgQWxsIEFwaXMg
SnNvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiYmNjMmM4YzQt
OTRjMC00MjI3LWE2MjctM2UwZDViZTJlN2I4IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJ
CQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7
cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fS9qc29uIiwK
KwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkie3tzZXNz
aW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJqc29uIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJ
CQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJEb3dubG9hZCBXUFQgTXVsdGkgUmVwb3J0IFVybCIsCisJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiN2IzNzA3MjMtMDUwNi00YjVlLTk0MWEtZjMxYTYy
OGEyOWY2IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0
dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiVXJpIHJldHVybmVkXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudXJpKS50by5lcXVh
bChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvcmVzdWx0cy97
e2FwaV9uYW1lfX0vcmVwb3J0dXJsP3Rva2Vucz17e3Nlc3Npb25fdG9rZW59fSx7e3Nlc3Npb25f
dG9rZW5fY29tcH19IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJ
CQkJCQkJCQkie3thcGlfbmFtZX19IiwKKwkJCQkJCQkJCQkicmVwb3J0dXJsIgorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJrZXkiOiAi
dG9rZW5zIiwKKwkJCQkJCQkJCQkJInZhbHVlIjogInt7c2Vzc2lvbl90b2tlbn19LHt7c2Vzc2lv
bl90b2tlbl9jb21wfX0iCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJ
CQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQki
bmFtZSI6ICJEb3dubG9hZCBSZXN1bHRzIEFwaSBKc29uIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJ
CQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCSJpZCI6ICJiNTI0Mzk3OS1iNjNhLTRiYmYtYmQ1MS0xNTI5ZGExZTFmNmQi
LAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0s
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJCQki
c2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICI4MWYzZGEyOS04YTBjLTQ0MDMtOTI5ZC04NjU5
MGIwMWVmMmYiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJ
CQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6
ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJ
CQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9h
cGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fS97e2FwaV9uYW1lfX0vanNvbiIsCisJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tl
bn19IiwKKwkJCQkJCQkJCQkie3thcGlfbmFtZX19IiwKKwkJCQkJCQkJCQkianNvbiIKKwkJCQkJ
CQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgV1BUIFJlcG9ydCBDb3B5IiwK
KwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwMTY4ZWEzZi05YmY3LTRl
YTctYTNhZC03NDVjMjcwNGQ5N2UiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJVcmkgcmV0dXJuZWRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0
YS51cmkpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJ
CQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJ
CQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJlNGVmZGFjOS0yZDAwLTQ4NTMt
YjE0NS0xOGE2ZDQ0ZmYxMzkiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkiIgor
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJfQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
Im1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7
CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvcmVzdWx0cy97e3Nlc3Npb25fdG9rZW59fS97e2FwaV9uYW1lfX0vcmVwb3J0
dXJsIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290
fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQki
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCSJ7e2FwaV9uYW1lfX0iLAorCQkJCQkJCQkJ
CSJyZXBvcnR1cmwiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhh
dmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfQorCQkJ
XSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9CisJCX0sCisJCXsKKwkJCSJuYW1l
IjogIk1hbGZ1bmN0aW9uaW5nIExpc3QiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFt
ZSI6ICJDcmVhdGUgU2Vzc2lvbiBcXHcgQ29uZmlndXJhdGlvbiBDb3B5IiwKKwkJCQkJImV2ZW50
IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJImlkIjogImU2ODVhOTg5LThlZjctNGU4Zi1hM2M3LWI1NzljNjY0MzBmOSIs
CisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQki
Y29uc3QgdG9rZW5SZWdleCA9IG5ldyBSZWdFeHAoXCJeW2EtZjAtOV17OH0tW2EtZjAtOV17NH0t
W2EtZjAtOV17NH0tW2EtZjAtOV17NH0tW2EtZjAtOV17MTJ9JFwiKTsiLAorCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHZhciBqc29uRGF0YSA9IHBtLnJlc3Bv
bnNlLmpzb24oKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUu
cHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJ
CSIiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25z
ZS5qc29uKCk7IiwKKwkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJ
CQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJ
CQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQl9CisJCQkJ
CQl9LAorCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCisJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjg1MTczNjBiLTJlNjYtNGNhOS05MzM5LTAxNzYyMmMz
OTg4OCIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInZhciBhdXRvbWF0aWNUaW1lb3V0
ID0gMTIwMDAwOyIsCisJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSAxMDAwMDAwOyIsCisJ
CQkJCQkJCQkidmFyIHNwZWNpYWxUaW1lb3V0ID0gMjAwMDsiLAorCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJhdXRvbWF0aWNfdGltZW91dFwiLCBhdXRvbWF0aWNUaW1l
b3V0KTsiLAorCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwibWFudWFsX3RpbWVvdXRcIiwgbWFu
dWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNwZWNpYWxfdGltZW91
dFwiLCBzcGVjaWFsVGltZW91dCk7IgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCXsK
KwkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkibmFtZSI6ICJDb250ZW50
LVR5cGUiLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0IiwKKwkJCQkJCQkJInZhbHVlIjogImFwcGxp
Y2F0aW9uL2pzb24iCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJCQkJCSJib2R5IjogeworCQkJCQkJ
CSJtb2RlIjogInJhdyIsCisJCQkJCQkJInJhdyI6ICJ7XG4gICAgXCJ0ZXN0c1wiOiB7XG4gICAg
ICAgIFwiaW5jbHVkZVwiOiB7e2luY2x1ZGVkX3Rlc3RzfX0sXG4gICAgICAgIFwiZXhjbHVkZVwi
OiB7e2V4Y2x1ZGVkX3Rlc3RzfX1cbiAgICB9LFxuICAgIFwidHlwZXNcIjogW1xuICAgICAgICBc
ImF1dG9tYXRpY1wiXG4gICAgXSxcbiAgICBcInRpbWVvdXRzXCI6IHtcbiAgICAgICAgXCJhdXRv
bWF0aWNcIjoge3thdXRvbWF0aWNfdGltZW91dH19LFxuICAgICAgICBcIm1hbnVhbFwiOiB7e21h
bnVhbF90aW1lb3V0fX0sXG4gICAgICAgIFwie3tzcGVjaWFsX3RpbWVvdXRfdGVzdH19XCI6IHt7
c3BlY2lhbF90aW1lb3V0fX1cbiAgICB9LFxuICAgIFwibGFiZWxzXCI6IFtcImxhYmVsMVwiLCBc
ImxhYmVsMlwiXVxufSIKKwkJCQkJCX0sCisJCQkJCQkidXJsIjogeworCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9u
cyIsCisJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBb
CisJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKKwkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Np
b24gTWFsZnVuY3Rpb25pbmcgRW1wdHkiLAorCQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAi
NGU4NWVjYWYtNDM2NC00NjgxLWFiOGEtMjIxZDQwNjgxYzQ0IiwKKwkJCQkJCQkJImV4ZWMiOiBb
CisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5y
ZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCSIiLAorCQkJCQkJCQkJInBtLnRlc3QoXCJSZXR1
cm4gZW1wdHkgYXJyYXlcIiwgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0uZXhwZWN0
KGpzb25EYXRhKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KSIsCisJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5sZW5ndGgoMCkiLAorCQkJCQkJCQkJIn0pIgorCQkJ
CQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJ
CQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwK
KwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vz
c2lvbl90b2tlbn19L21hbGZ1bmN0aW9uaW5nIiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90
b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0s
CisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFwaSIsCisJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJ
CSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJCQkJCSJtYWxmdW5jdGlvbmluZyIKKwkJCQkJCQld
CisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJ
CQkJCSJuYW1lIjogIlVwZGF0ZSBTZXNzaW9uIE1hbGZ1bmN0aW9uaW5nIEluc2VydCBUd28iLAor
CQkJCQkiZXZlbnQiOiBbCisJCQkJCQl7CisJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkiaWQiOiAiYTYyMjE1NjAtOWViYS00ZmI0LWE3Y2ItYTE1
NzBhMzc0MjVkIiwKKwkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJXSwKKwkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkibWV0aG9kIjogIlBVVCIsCisJCQkJCQkiaGVh
ZGVyIjogWworCQkJCQkJCXsKKwkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJ
CQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24v
anNvbiIsCisJCQkJCQkJCSJ0eXBlIjogInRleHQiCisJCQkJCQkJfQorCQkJCQkJXSwKKwkJCQkJ
CSJib2R5IjogeworCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJInJhdyI6ICJbXG5cdFwi
L3Rlc3QvZmlsZS9vbmUuaHRtbFwiLFxuXHRcIi90ZXN0L2ZpbGUvdHdvLmh0bWxcIlxuXSIsCisJ
CQkJCQkJIm9wdGlvbnMiOiB7CisJCQkJCQkJCSJyYXciOiB7CisJCQkJCQkJCQkibGFuZ3VhZ2Ui
OiAianNvbiIKKwkJCQkJCQkJfQorCQkJCQkJCX0KKwkJCQkJCX0sCisJCQkJCQkidXJsIjogewor
CQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9v
dH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9tYWxmdW5jdGlvbmluZyIsCisJCQkJCQkJ
InByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQki
cGF0aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJ
CQkidGVzdHMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibWFsZnVu
Y3Rpb25pbmciCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCX0sCisJCQkJeworCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gTWFsZnVuY3Rpb25p
bmcgVHdvIFRlc3RzIiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlkIjogIjc3ZDE0NTY3LTQ2
MDAtNDRmZC05OGU0LTk5ZTExM2RhNjc4MSIsCisJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsi
LAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuIGFycmF5IHdp
dGggdHdvIHRlc3RzXCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSkiLAorCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUubGVuZ3RoKDIpIiwKKwkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhKS50by5pbmNsdWRlKFwiL3Rlc3QvZmlsZS9vbmUuaHRtbFwiKSIsCisJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaW5jbHVkZShcIi90ZXN0L2ZpbGUvdHdv
Lmh0bWxcIikiLAorCQkJCQkJCQkJIn0pIgorCQkJCQkJCQldLAorCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJfQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicmVxdWVz
dCI6IHsKKwkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19L21hbGZ1bmN0aW9uaW5n
IiwKKwkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkiaG9zdCI6IFsK
KwkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCV0sCisJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJImFw
aSIsCisJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJCSJtYWxmdW5jdGlvbmluZyIKKwkJCQkJCQldCisJCQkJCQl9CisJCQkJCX0sCisJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJfSwKKwkJCQl7CisJCQkJCSJuYW1lIjogIlVwZGF0ZSBTZXNzaW9u
IE1hbGZ1bmN0aW9uaW5nIEVtcHR5IEFycmF5IiwKKwkJCQkJImV2ZW50IjogWworCQkJCQkJewor
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJImlk
IjogIjU1YjQ4NmRhLWM1YWUtNDlkNC1iMTFhLTI0NzM4NzI2N2M5YSIsCisJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
KwkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCV0sCisJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNj
cmlwdCIKKwkJCQkJCQl9CisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJyZXF1ZXN0IjogeworCQkJ
CQkJIm1ldGhvZCI6ICJQVVQiLAorCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQl7CisJCQkJCQkJ
CSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwK
KwkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCSJ2YWx1ZSI6ICJhcHBsaWNhdGlvbi9q
c29uIgorCQkJCQkJCX0KKwkJCQkJCV0sCisJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkibW9kZSI6
ICJyYXciLAorCQkJCQkJCSJyYXciOiAiW10iLAorCQkJCQkJCSJvcHRpb25zIjogeworCQkJCQkJ
CQkicmF3IjogeworCQkJCQkJCQkJImxhbmd1YWdlIjogImpzb24iCisJCQkJCQkJCX0KKwkJCQkJ
CQl9CisJCQkJCQl9LAorCQkJCQkJInVybCI6IHsKKwkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9
fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMve3tzZXNzaW9uX3Rv
a2VufX0vbWFsZnVuY3Rpb25pbmciLAorCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAorCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJXSwKKwkJCQkJ
CQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJInRlc3RzIiwKKwkJCQkJCQkJInt7c2Vz
c2lvbl90b2tlbn19IiwKKwkJCQkJCQkJIm1hbGZ1bmN0aW9uaW5nIgorCQkJCQkJCV0KKwkJCQkJ
CX0KKwkJCQkJfSwKKwkJCQkJInJlc3BvbnNlIjogW10KKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5h
bWUiOiAiUmVhZCBTZXNzaW9uIE1hbGZ1bmN0aW9uaW5nIEVtcHR5IiwKKwkJCQkJImV2ZW50Ijog
WworCQkJCQkJeworCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJImlkIjogIjk1MzAwMmVjLWQ4ZGYtNDc3YS1hMGRjLWY0ZTRhMmVmZDAzMSIsCisJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKKwkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkidmFy
IGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CSJwbS50ZXN0KFwiUmV0dXJuIGVtcHR5IGFycmF5XCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSkiLAor
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUubGVuZ3RoKDApIiwKKwkJ
CQkJCQkJCSJ9KSIKKwkJCQkJCQkJXSwKKwkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0
IgorCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQki
bWV0aG9kIjogIkdFVCIsCisJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkidXJsIjogeworCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9tYWxmdW5jdGlvbmluZyIsCisJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQldLAorCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkicGF0
aCI6IFsKKwkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQki
dGVzdHMiLAorCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkibWFsZnVuY3Rp
b25pbmciCisJCQkJCQkJXQorCQkJCQkJfQorCQkJCQl9LAorCQkJCQkicmVzcG9uc2UiOiBbXQor
CQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9LAorCQl7
CisJCQkibmFtZSI6ICJTZXNzaW9ucyBBUEkiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQki
bmFtZSI6ICJjcmVhdGUgc2Vzc2lvbiIsCisJCQkJCSJpdGVtIjogWworCQkJCQkJeworCQkJCQkJ
CSJuYW1lIjogIldpdGggRGVmYXVsdHMiLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibmFtZSI6ICJQcmVwOiBSZWFkIEF2YWlsYWJsZSBUZXN0cyIsCisJCQkJCQkJCQki
ZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJ
CQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogImZjMTVkMzI5LWQxMzItNGFi
Zi05MGU0LWY1NDllZWU5OWI2MCIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJ
CQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGF2YWlsYWJs
ZVRlc3RzID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlv
biAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YgYXZhaWxhYmxlVGVz
dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBmb3IgKHZhciBh
cGkgb2YgT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAg
ICAgICBwbS5leHBlY3QoYXZhaWxhYmxlVGVzdHNbYXBpXSkudG8uYmUuYW4uaW5zdGFuY2VvZihB
cnJheSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB2YXIgYXBpUmVnRXhwID0gbmV3IFJlZ0V4
cChcIl4vXCIgKyBhcGksIFwiaVwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIGZvciAodmFy
IHRlc3Qgb2YgYXZhaWxhYmxlVGVzdHNbYXBpXSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAg
ICAgIHBtLmV4cGVjdCh0ZXN0KS50by5tYXRjaChhcGlSZWdFeHApOyIsCisJCQkJCQkJCQkJCQkJ
IiAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwK
KwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGluY2x1ZGVkVGVzdHMgPSBbXTsi
LAorCQkJCQkJCQkJCQkJCSJ2YXIgZXhjbHVkZWRUZXN0cyA9IFtdOyIsCisJCQkJCQkJCQkJCQkJ
InZhciBzcGVjaWFsVGltZW91dFRlc3QgPSBcIlwiOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCQkJInZhciBhcGlzID0gT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpOyIsCisJCQkJ
CQkJCQkJCQkJImZvcih2YXIgYXBpIG9mIGFwaXMpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgaWYg
KGF2YWlsYWJsZVRlc3RzW2FwaV0ubGVuZ3RoID4gNTApIHsiLAorCQkJCQkJCQkJCQkJCSIgICAg
ICAgIHZhciBzdWJEaXJzID0gYXZhaWxhYmxlVGVzdHNbYXBpXS5tYXAodGVzdCA9PiB0ZXN0LnNw
bGl0KFwiL1wiKS5maWx0ZXIocGFydCA9PiAhIXBhcnQpLmpvaW4oXCIvXCIpLnNwbGl0KFwiL1wi
KVsxXSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5pbmRleE9mKGN1cnIpID09PSAtMSA/IGFj
Yy5jb25jYXQoW2N1cnJdKSA6IGFjYywgW10pOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgaWYg
KHN1YkRpcnMubGVuZ3RoID4gMikgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGluY2x1
ZGVkVGVzdHMucHVzaChcIi9cIiArIGFwaSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAg
ZXhjbHVkZWRUZXN0cy5wdXNoKFwiL1wiICsgYXBpICsgXCIvXCIgKyBzdWJEaXJzWzBdKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBzcGVjaWFsVGltZW91dFRlc3QgPSBhdmFpbGFibGVU
ZXN0c1thcGldW2F2YWlsYWJsZVRlc3RzW2FwaV0ubGVuZ3RoIC0gMV07IiwKKwkJCQkJCQkJCQkJ
CQkiICAgICAgICAgICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJ
CQkJCQkJCQkiICAgICAgICAiLAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJ
In0iLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImF2
YWlsYWJsZV90ZXN0c1wiLCBhdmFpbGFibGVUZXN0cyk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xv
YmFscy5zZXQoXCJpbmNsdWRlZF90ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShpbmNsdWRlZFRlc3Rz
KSk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJleGNsdWRlZF90ZXN0c1wiLCBK
U09OLnN0cmluZ2lmeShleGNsdWRlZFRlc3RzKSk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFs
cy5zZXQoXCJzcGVjaWFsX3RpbWVvdXRfdGVzdFwiLCBzcGVjaWFsVGltZW91dFRlc3QucmVwbGFj
ZShcIi5cIiwgXCJcIikpOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvdGVzdHMi
LAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhv
c3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
CSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInRlc3RzIgor
CQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNyZWF0ZSBT
ZXNzaW9uIE5vIENvbmZpZ3VyYXRpb24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJ
CXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkJCSJpZCI6ICJlYmIxOTJjZS00OGU1LTRhYWMtYjk5ZC02ODg5NDM3OGVhYzgi
LAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJ
CQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwi
XlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTld
ezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlJl
c3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJ
CQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2Vu
XCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1h
dGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVz
cG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9r
ZW47IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRv
a2VuKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJy
ZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRl
ciI6IFsKKwkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAor
CQkJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJ
CQkJCX0KKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQkibW9k
ZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIiIKKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNzaW9uIENvbmZpZ3VyYXRpb24iLAor
CQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICIxNTk5NzZj
ZC1kZTAwLTRmODgtOGY5Zi00N2RiMTNjYTRhMzAiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZh
ciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0
b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJDb25maWd1cmF0aW9uIGlzIGRlZmF1bHRcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRv
Lm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudGVzdHMuaW5jbHVkZSkudG8uaW5jbHVkZShcIi9cIik7IiwKKwkJCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcImF1dG9tYXRpY1wiKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnR5cGVzKS50by5pbmNsdWRlKFwi
bWFudWFsXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudXNlcl9h
Z2VudCkudG8uaW5jbHVkZShcIlBvc3RtYW5SdW50aW1lXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVhbCg2MDAwMCk7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5tYW51YWwp
LnRvLmVxdWFsKDMwMDAwMCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5icm93c2VyLm5hbWUpLnRvLmVxdWFsKFwiT3RoZXJcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAg
IHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFsKFwiMFwiKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmlzX3B1YmxpYykudG8uZXF1YWwo
ZmFsc2UpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEucmVmZXJlbmNl
X3Rva2VucykudG8uYmUuZW1wdHk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS5sYWJlbHMpLnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
bmV3IERhdGUoanNvbkRhdGEuZGF0ZV9jcmVhdGVkKS5nZXRUaW1lKCkpLnRvLmJlLmJlbG93KERh
dGUubm93KCkpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9
CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6
ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJ
CQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jv
b3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJ
CQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQki
bmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNTA1OGIwN2ItNWU1NS00NGUwLWFkODgtNWM3YjU4ODRm
YTNjIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIganNvbkRh
dGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
CQkicG0udGVzdChcIlNlc3Npb24gc3RhdHVzIGlzIHBlbmRpbmdcIiwgZnVuY3Rpb24gKCkgeyIs
CisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChc
InBlbmRpbmdcIik7IiwKKwkJCQkJCQkJCQkJCQkifSkiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhcnQsIEZpbmlzaCBhbmQgRXhwaXJhdGlvbiBkYXRlIG5v
dCBzZXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEuZGF0ZV9zdGFydGVkKS50by5iZS5udWxsOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEuZGF0ZV9maW5pc2hlZCkudG8uYmUubnVsbDsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmV4cGlyYXRpb25fZGF0ZSkudG8uYmUubnVsbDsiLAor
CQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Np
b25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7
e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9
fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJ
ImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90
b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9
CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJ
CQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNjJhOGM4NTMtYmYwYi00
N2IwLTljZWUtNzYxMWQyYjQ4Y2RlIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJ
CQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIganNvbkRh
dGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
CQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNv
bkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJwZW5kaW5nX3Rlc3RzXCIpOyIs
CisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnBlbmRpbmdfdGVz
dHMpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJydW5uaW5nX3Rlc3RzXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnJ1bm5pbmdfdGVzdHMpLnRvLmVx
dWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJBbGwgdGVzdHMgYXJlIHBlbmRpbmcgdGVzdHNcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMo
anNvbkRhdGEucGVuZGluZ190ZXN0cykpLnRvLm5vdC5oYXZlLmxlbmd0aE9mKDApOyIsCisJCQkJ
CQkJCQkJCQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMoanNvbkRhdGEucnVubmluZ190ZXN0
cykpLnRvLmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJCQkJCQkJCQkifSkiLAorCQkJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IHBtLmdsb2JhbHMu
Z2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJBbGwgYXZhaWxhYmxlIHRlc3RzIGFyZSBwYXJ0IG9mIHRoZSBzZXNzaW9u
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9i
amVjdC5rZXlzKGpzb25EYXRhLnBlbmRpbmdfdGVzdHMpKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAg
ICAgICBmb3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkgeyIsCisJ
CQkJCQkJCQkJCQkJIiAgICAgICAgICAgIHBtLmV4cGVjdChhdmFpbGFibGVUZXN0c1thcGldKS50
by5pbmNsdWRlKHRlc3QpOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgfSIsCisJCQkJCQkJCQkJ
CQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJCQkifSkiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rv
a2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJ
InJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAi
Q2xlYW4gdXA6IERlbGV0ZSBzZXNzaW9uIiwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJ
CQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0Ijog
WworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJ
CQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9
CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlzdGVuIjogInBy
ZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiODc4NDIw
YzMtNTc1YS00MTk0LTlhNzItY2ViZTA3ODIzNjc0IiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJ
CQkJCV0KKwkJCQkJCQkJCX0KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjY2NzIw
MzBmLTVhOGEtNGJlYS05NzkyLWMyNGI5ODAzOTJlOSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJ
CQkJCQldCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2Nv
bFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRy
dWUKKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiV2l0aCBDb25maWd1cmF0aW9u
IiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDog
UmVhZCBBdmFpbGFibGUgVGVzdHMiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsK
KwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJ
CQkJCQkJCQkJCSJpZCI6ICI1MDRiNzZjYS02ODcwLTQ0M2MtOGMzMy0wY2NjYzUyY2RkYWUiLAor
CQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciBhdmFpbGFibGVUZXN0cyA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBz
dHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGF2YWlsYWJsZVRlc3RzKS50by5lcXVhbChcIm9iamVjdFwi
KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgZm9yICh2YXIgYXBpIG9mIE9iamVjdC5rZXlzKGF2YWls
YWJsZVRlc3RzKSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGF2YWlsYWJs
ZVRlc3RzW2FwaV0pLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCQkJ
IiAgICAgICAgdmFyIGFwaVJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJeL1wiICsgYXBpLCBcImlcIik7
IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIGF2YWlsYWJsZVRlc3Rz
W2FwaV0pIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBwbS5leHBlY3QodGVzdCkudG8u
bWF0Y2goYXBpUmVnRXhwKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJCQkJCQkJ
CQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCQkJInZhciBpbmNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCQkJCQkidmFyIGV4
Y2x1ZGVkVGVzdHMgPSBbXTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXRUZXN0
ID0gXCJcIjsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgYXBpcyA9IE9i
amVjdC5rZXlzKGF2YWlsYWJsZVRlc3RzKS5zb3J0KCk7IiwKKwkJCQkJCQkJCQkJCQkiZm9yKHZh
ciBhcGkgb2YgYXBpcykgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBpZiAoYXZhaWxhYmxlVGVzdHNb
YXBpXS5sZW5ndGggPiA1MCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgdmFyIHN1YkRpcnMg
PSBhdmFpbGFibGVUZXN0c1thcGldLm1hcCh0ZXN0ID0+IHRlc3Quc3BsaXQoXCIvXCIpLmZpbHRl
cihwYXJ0ID0+ICEhcGFydCkuam9pbihcIi9cIikuc3BsaXQoXCIvXCIpWzFdKS5yZWR1Y2UoKGFj
YywgY3VycikgPT4gYWNjLmluZGV4T2YoY3VycikgPT09IC0xID8gYWNjLmNvbmNhdChbY3Vycl0p
IDogYWNjLCBbXSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICBpZiAoc3ViRGlycy5sZW5ndGgg
PiAyKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgaW5jbHVkZWRUZXN0cy5wdXNoKFwi
L1wiICsgYXBpKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBleGNsdWRlZFRlc3RzLnB1
c2goXCIvXCIgKyBhcGkgKyBcIi9cIiArIHN1YkRpcnNbMF0pOyIsCisJCQkJCQkJCQkJCQkJIiAg
ICAgICAgICAgIHNwZWNpYWxUaW1lb3V0VGVzdCA9IGF2YWlsYWJsZVRlc3RzW2FwaV1bYXZhaWxh
YmxlVGVzdHNbYXBpXS5sZW5ndGggLSAxXTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBi
cmVhazsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIH0iLAorCQkJCQkJCQkJCQkJCSIgICAgICAg
ICIsCisJCQkJCQkJCQkJCQkJIiAgICB9IiwKKwkJCQkJCQkJCQkJCQkifSIsCisJCQkJCQkJCQkJ
CQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIs
IGF2YWlsYWJsZVRlc3RzKTsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImluY2x1
ZGVkX3Rlc3RzXCIsIEpTT04uc3RyaW5naWZ5KGluY2x1ZGVkVGVzdHMpKTsiLAorCQkJCQkJCQkJ
CQkJCSJwbS5nbG9iYWxzLnNldChcImV4Y2x1ZGVkX3Rlc3RzXCIsIEpTT04uc3RyaW5naWZ5KGV4
Y2x1ZGVkVGVzdHMpKTsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNwZWNpYWxf
dGltZW91dF90ZXN0XCIsIHNwZWNpYWxUaW1lb3V0VGVzdC5yZXBsYWNlKFwiLlwiLCBcIlwiKSk7
IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
KwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVz
dCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS90ZXN0cyIsCisJCQkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkidGVzdHMiCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gXFx3IENvbmZp
Z3VyYXRpb24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJ
Imxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJp
ZCI6ICJmYTk1Njg3MS01MDNhLTQyMWMtOTgyMi00ZTJhMTFlMWNmMWMiLAorCQkJCQkJCQkJCQkJ
ImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVth
LWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJ
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9r
ZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICB2
YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgp
OyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJ
CQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
CQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiMjEz
YmRmNTktOWY5OC00YjVlLWJhY2MtYWUzY2IzMWFlMjZhIiwKKwkJCQkJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJCQkJCSJ2YXIgYXV0b21hdGljVGltZW91dCA9IDEyMDAwMDsiLAorCQkJCQkJ
CQkJCQkJCSJ2YXIgbWFudWFsVGltZW91dCA9IDEwMDAwMDA7IiwKKwkJCQkJCQkJCQkJCQkidmFy
IHNwZWNpYWxUaW1lb3V0ID0gMjAwMDsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJ
CSJwbS5nbG9iYWxzLnNldChcImF1dG9tYXRpY190aW1lb3V0XCIsIGF1dG9tYXRpY1RpbWVvdXQp
OyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwibWFudWFsX3RpbWVvdXRcIiwgbWFu
dWFsVGltZW91dCk7IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzcGVjaWFsX3Rp
bWVvdXRcIiwgc3BlY2lhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gcG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVfdGVz
dHNcIik7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgYXBpTmFtZXMgPSBPYmplY3Qua2V5cyhhdmFp
bGFibGVUZXN0cykuc29ydCgpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IGFwaU5hbWUgPSBhcGlO
YW1lc1swXTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNl
dChcImFwaV9uYW1lXCIsIGFwaU5hbWUpOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0
KFwic3BlY2lhbF90aW1lb3V0X3Rlc3RcIiwgXCIvXCIgKyBhcGlOYW1lKTsiCisJCQkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9
CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkJImtleSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJIm5hbWUi
OiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJ
CQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pzb24iCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJ
CQkJCQkicmF3IjogIntcbiAgICBcInRlc3RzXCI6IHtcbiAgICAgICAgXCJpbmNsdWRlXCI6IFtc
Ii97e2FwaV9uYW1lfX1cIl1cbiAgICB9LFxuICAgIFwidGltZW91dHNcIjoge1xuICAgICAgICBc
ImF1dG9tYXRpY1wiOiB7e2F1dG9tYXRpY190aW1lb3V0fX0sXG4gICAgICAgIFwibWFudWFsXCI6
IHt7bWFudWFsX3RpbWVvdXR9fSxcbiAgICAgICAgXCJ7e3NwZWNpYWxfdGltZW91dF90ZXN0fX1c
Ijoge3tzcGVjaWFsX3RpbWVvdXR9fVxuICAgIH0sXG4gICAgXCJsYWJlbHNcIjogW1wibGFiZWwx
XCIsIFwibGFiZWwyXCJdXG59IgorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJ
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJ
CQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRo
IjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJ
CQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJ
CQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gQ29uZmlndXJhdGlvbiIsCisJCQkJCQkJCQkiZXZl
bnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogImEwNDM0YTU2LTA0YjgtNDk4Ny04
ZjQ0LTJkNzFiNDQwZWYwMyIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJ
CQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBu
ZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTld
ezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQki
dmFyIGluY2x1ZGVkVGVzdHMgPSBKU09OLnBhcnNlKHBtLmdsb2JhbHMuZ2V0KFwiaW5jbHVkZWRf
dGVzdHNcIikpOyIsCisJCQkJCQkJCQkJCQkJInZhciBleGNsdWRlZFRlc3RzID0gSlNPTi5wYXJz
ZShwbS5nbG9iYWxzLmdldChcImV4Y2x1ZGVkX3Rlc3RzXCIpKTsiLAorCQkJCQkJCQkJCQkJCSJ2
YXIgYXV0b21hdGljVGltZW91dCA9IHBtLmdsb2JhbHMuZ2V0KFwiYXV0b21hdGljX3RpbWVvdXRc
Iik7IiwKKwkJCQkJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSBwbS5nbG9iYWxzLmdldChc
Im1hbnVhbF90aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJCQkJInZhciBzcGVjaWFsVGltZW91dCA9
IHBtLmdsb2JhbHMuZ2V0KFwic3BlY2lhbF90aW1lb3V0XCIpOyIsCisJCQkJCQkJCQkJCQkJInZh
ciBzcGVjaWFsVGltZW91dFRlc3QgPSBwbS5nbG9iYWxzLmdldChcInNwZWNpYWxfdGltZW91dF90
ZXN0XCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJDb25m
aWd1cmF0aW9uIGlzIGFzIHNwZWNpZmllZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9rZW5SZWdleCk7IiwK
KwkJCQkJCQkJCQkJCQkiICAgIGZvciAodmFyIHRlc3Qgb2YgaW5jbHVkZWRUZXN0cykgeyIsCisJ
CQkJCQkJCQkJCQkJIiAgICAgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzLmluY2x1ZGUpLnRv
LmluY2x1ZGUodGVzdCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkJCSIg
ICAgZm9yICh2YXIgdGVzdCBvZiBleGNsdWRlZFRlc3RzKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAg
ICAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuZXhjbHVkZSkudG8uaW5jbHVkZSh0ZXN0KTsi
LAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEudHlwZXMpLnRvLmluY2x1ZGUoXCJhdXRvbWF0aWNcIik7IiwKKwkJCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uaW5jbHVkZShcIm1hbnVhbFwiKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnVzZXJfYWdlbnQpLnRvLmluY2x1
ZGUoXCJQb3N0bWFuUnVudGltZVwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpz
b25EYXRhLnRpbWVvdXRzLmF1dG9tYXRpYykudG8uZXF1YWwoYXV0b21hdGljVGltZW91dCk7IiwK
KwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1lb3V0cy5tYW51YWwpLnRv
LmVxdWFsKG1hbnVhbFRpbWVvdXQpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEudGltZW91dHNbc3BlY2lhbFRpbWVvdXRUZXN0XSkudG8uZXF1YWwoc3BlY2lhbFRpbWVv
dXQpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuYnJvd3Nlci5uYW1l
KS50by5lcXVhbChcIk90aGVyXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEuYnJvd3Nlci52ZXJzaW9uKS50by5lcXVhbChcIjBcIik7IiwKKwkJCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YS5pc19wdWJsaWMpLnRvLmVxdWFsKGZhbHNlKTsiLAorCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnJlZmVyZW5jZV90b2tlbnMpLnRvLmJl
LmVtcHR5OyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEubGFiZWxzKS50
by5pbmNsdWRlKFwibGFiZWwxXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNv
bkRhdGEubGFiZWxzKS50by5pbmNsdWRlKFwibGFiZWwyXCIpOyIsCisJCQkJCQkJCQkJCQkJIn0p
OyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
CisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBb
XSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTov
L3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rv
a2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNl
c3Npb25zIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJCQkJCQkJXQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJ
CQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJSZWFkIFNlc3Npb24gU3RhdHVzIiwK
KwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiMmE3NTI0
ZTUtNzM5NC00MTc3LTgyNjctNDJkNWIzMmJjNDc0IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkJCSJ2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJ
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlNlc3Npb24gc3RhdHVzIGlz
IHBlbmRpbmdcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
anNvbkRhdGEuc3RhdHVzKS50by5lcXVhbChcInBlbmRpbmdcIik7IiwKKwkJCQkJCQkJCQkJCQki
fSkiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhcnQgYW5k
IEZpbmlzaCBkYXRlIG5vdCBzZXRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QoanNvbkRhdGEuZGF0ZV9zdGFydGVkKS50by5iZS5udWxsOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEuZGF0ZV9maW5pc2hlZCkudG8uYmUubnVsbDsi
LAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJ
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nl
c3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6
ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hv
c3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJ
CQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBUZXN0cyBvZiBTZXNzaW9uIiwKKwkJCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNDQ4YjZhMGMtMTM1
ZC00MmVmLThiYzAtYjRiMWNlNGFiOGEwIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIganNv
bkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJ
CQkJCQkicG0udGVzdChcIkFsbCB0ZXN0cyBhcmUgcGVuZGluZyB0ZXN0c1wiLCBmdW5jdGlvbiAo
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzKSkudG8ubm90LmhhdmUubGVuZ3RoT2YoMCk7IiwKKwkJCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChPYmplY3Qua2V5cyhqc29uRGF0YS5ydW5uaW5nX3Rlc3RzKSkudG8uaGF2
ZS5sZW5ndGhPZigwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KSIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gcG0uZ2xvYmFscy5nZXQoXCJhdmFp
bGFibGVfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgaW5jbHVkZWRUZXN0cyA9IHBt
Lmdsb2JhbHMuZ2V0KFwiaW5jbHVkZWRfdGVzdHNcIik7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3Qg
ZXhjbHVkZWRUZXN0cyA9IHBtLmdsb2JhbHMuZ2V0KFwiZXhjbHVkZWRfdGVzdHNcIik7IiwKKwkJ
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlNlbGVjdGVkIHN1YnNldCBv
ZiB0ZXN0cyBhcmUgcGFydCBvZiB0aGUgc2Vzc2lvblwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgIGZvciAodmFyIGFwaSBvZiBPYmplY3Qua2V5cyhqc29uRGF0YS5wZW5kaW5n
X3Rlc3RzKSkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgZm9yICh2YXIgaW5jbHVkZWRUZXN0
IG9mIGluY2x1ZGVkVGVzdHMpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBpZiAoaW5j
bHVkZWRUZXN0LnNwbGl0KFwiL1wiKS5maW5kKHBhcnQgPT4gISFwYXJ0KSA9PT0gYXBpKSB7IiwK
KwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIHZhciBpbmNsdWRlUmVnRXhwID0gbmV3IFJl
Z0V4cChcIl5cIiArIGluY2x1ZGVkVGVzdCwgXCJpXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICAg
ICAgICAgICAgICBmb3IgKHZhciB0ZXN0IG9mIGpzb25EYXRhLnBlbmRpbmdfdGVzdHNbYXBpXSkg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICAgICAgcG0uZXhwZWN0KHRlc3QpLnRv
Lm1hdGNoKHJlZ2V4KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgfSIsCisJCQkJ
CQkJCQkJCQkJIiAgICAgICAgICAgICAgICBicmVhazsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAg
ICAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgICAg
ICBmb3IgKHZhciBleGNsdWRlZFRlc3Qgb2YgZXhjbHVkZWRUZXN0cykgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgICAgICAgICAgIGlmIChleGNsdWRlZFRlc3Quc3BsaXQoXCIvXCIpLmZpbmQocGFydCA9
PiAhIXBhcnQpID09PSBhcGkpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICAgICAgdmFy
IGV4Y2x1ZGVSZWdFeHAgPSBuZXcgUmVnRXhwKFwiXlwiICsgZXhjbHVkZWRUZXN0LCBcImlcIik7
IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAgIGZvciAodmFyIHRlc3Qgb2YganNvbkRh
dGEucGVuZGluZ190ZXN0c1thcGldKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAgICAg
ICAgICBwbS5leHBlY3QodGVzdCkudG8ubm90Lm1hdGNoKHJlZ2V4KTsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgICAgICAgICAgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgICAgICBicmVh
azsiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgICAgICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgICAg
ICB9IiwKKwkJCQkJCQkJCQkJCQkiICAgIH0iLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBzZXNzaW9uVGVzdHMgPSBqc29uRGF0YS5w
ZW5kaW5nX3Rlc3RzOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2Jh
bHMuc2V0KFwic2Vzc2lvbl90ZXN0c1wiLCBKU09OLnN0cmluZ2lmeShzZXNzaW9uVGVzdHMpKTsi
CisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0Igor
CQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0
IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97
e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Rlc3RzL3t7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJ0ZXN0cyIs
CisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IERlbGV0ZSBzZXNzaW9uIiwKKwkJ
CQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Np
b25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwK
KwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0i
CisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiYTE2ZWFjOGUtOTYwOS00MzE0LWFiZDgtYTVjNDcwNTM3YjUy
IiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCV0KKwkJCQkJCQkJCX0KKwkJCQkJCQkJfSwK
KwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJImlkIjogIjVkZjU1OTU3LTBiYmItNGRiOC05YWI5LWQ4YTcwY2UzN2Jj
NSIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJ
CSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJ
Im5hbWUiOiAiV2l0aCBFeHBpcmF0aW9uIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJewor
CQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFNlc3Npb24gV2l0aCBFeHBpcmF0aW9uIiwKKwkJCQkJ
CQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiNmM0YWE3MDItYWUz
YS00NGE0LWI4ODYtYjNlODgzZGU0ZDMyIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAor
CQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCB0
b2tlblJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05
XXs0fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJSZXNwb25kcyB3aXRoIHRva2VuIGluIEpTT04gZm9ybWF0
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEp
LnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhw
ZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJCQkJCQkJCQkJ
CSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJj
b25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMu
c2V0KFwic2Vzc2lvbl90b2tlblwiLCB0b2tlbik7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0s
CisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjg5MzY3MmE5LWM2NjYtNDc5MC1i
NmE3LWUwY2U3YWZkYTQ4MiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQki
dmFyIGV4cGlyYXRpb25EYXRlID0gRGF0ZS5ub3coKSArIDMwMDA7IiwKKwkJCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJleHBpcmF0aW9uX2RhdGVcIiwgZXhwaXJhdGlvbkRhdGUpOyIKKwkJ
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogWworCQkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCQkia2V5IjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJ
CQkibmFtZSI6ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dCIsCisJ
CQkJCQkJCQkJCQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIKKwkJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIs
CisJCQkJCQkJCQkJCSJyYXciOiAie1xuXHRcImV4cGlyYXRpb25fZGF0ZVwiOiB7e2V4cGlyYXRp
b25fZGF0ZX19XG59IgorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJ
CQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0v
YXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJ
CQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWwor
CQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJ
CQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJ
CQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQki
bmFtZSI6ICJSZWFkIEV4cGlyZWQgU2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCQkJImlkIjogImY2YjMxZDM3LWE5OGItNDExMC04MGEyLWY3OGRiNmYy
ZTI2ZiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDQwNFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDQwNCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJ
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjog
InByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjog
ImQ0MWNmMzFiLWM4ZTgtNDU1Zi1hYTY5LTUyN2FmNWZiZDY2YiIsCisJCQkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJCQkidmFyIGV4cGlyYXRpb25EYXRlID0gcG0uZ2xvYmFscy5nZXQo
XCJleHBpcmF0aW9uX2RhdGVcIik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQki
dmFyIHRpbWVvdXQgPSBleHBpcmF0aW9uRGF0ZSAtIERhdGUubm93KCkgKyAxMDAwIiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiY29uc29sZS5sb2codGltZW91dCkiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1l
b3V0KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2Ny
aXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJy
ZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVy
IjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJ
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAor
CQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJ
CSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJ
CV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IERlbGV0ZSBz
ZXNzaW9uIiwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiREVM
RVRFIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29s
IjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7
aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJ
CQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJ
CQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJCQkie3tzZXNz
aW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInByb3Rv
Y29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjog
dHJ1ZQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7
fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0sCisJCQkJeworCQkJ
CQkibmFtZSI6ICJyZWFkIHNlc3Npb24iLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJCQkJ
CQkibmFtZSI6ICJQcmVwOiBDcmVhdGUgU2Vzc2lvbiBObyBDb25maWd1cmF0aW9uIiwKKwkJCQkJ
CQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJ
CQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICIwOTBjYTFiYy1jYmVlLTRkN2ItYjE5
Zi1mYzFmNGJiODc5YTAiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXggPSBuZXcgUmVnRXhw
KFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYw
LTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmVz
cG9uZHMgd2l0aCB0b2tlbiBpbiBKU09OIGZvcm1hdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJ
CQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsi
LAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50b2tlbikudG8ubWF0Y2godG9r
ZW5SZWdleCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJ
CQkiIiwKKwkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIs
CisJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJ
CSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJ
CQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAi
UE9TVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQl7CisJCQkJCQkJCQkJImtleSI6
ICJDb250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dCIsCisJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9uL2pz
b24iCisJCQkJCQkJCQl9CisJCQkJCQkJCV0sCisJCQkJCQkJCSJib2R5IjogeworCQkJCQkJCQkJ
Im1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCSJyYXciOiAiIgorCQkJCQkJCQl9LAorCQkJCQkJCQki
dXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9
fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3By
b3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJ
CSJzZXNzaW9ucyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUmVhZCBTZXNz
aW9uIENvbmZpZ3VyYXRpb24iLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlk
IjogIjIzMmFmZjExLTNjZGMtNDk5NC1hZjQyLTVlMzU3NDU4MzgxNCIsCisJCQkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFy
IGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tl
blJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0
fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVjdGVkXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0ZXN0c1wiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGVzdHMpLnRvLmVxdWFsKFwib2JqZWN0
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLnRlc3RzKS50by5oYXZl
LnByb3BlcnR5KFwiaW5jbHVkZVwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS50ZXN0cy5pbmNsdWRlKS50by5iZS5hbi5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cykudG8uaGF2ZS5wcm9wZXJ0eShcImV4
Y2x1ZGVcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGVzdHMuZXhj
bHVkZSkudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0eXBlc1wiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8uYmUuYW4uaW5zdGFuY2VvZihBcnJh
eSk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVy
dHkoXCJ1c2VyX2FnZW50XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBq
c29uRGF0YS51c2VyX2FnZW50KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInRpbWVvdXRzXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS50aW1lb3V0cykudG8u
ZXF1YWwoXCJvYmplY3RcIikiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50
aW1lb3V0cykudG8uaGF2ZS5wcm9wZXJ0eShcImF1dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJCQki
ICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91dHMuYXV0b21hdGljKS50by5lcXVh
bChcIm51bWJlclwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50aW1l
b3V0cykudG8uaGF2ZS5wcm9wZXJ0eShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdCh0eXBlb2YganNvbkRhdGEudGltZW91dHMubWFudWFsKS50by5lcXVhbChcIm51bWJl
clwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcImJyb3dzZXJcIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpz
b25EYXRhLmJyb3dzZXIpLnRvLmVxdWFsKFwib2JqZWN0XCIpOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLm5hbWUp
LnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhLmJyb3dzZXIpLnRvLmhhdmUucHJvcGVydHkoXCJ2ZXJzaW9uXCIpOyIsCisJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVxdWFs
KFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5o
YXZlLnByb3BlcnR5KFwicmVmZXJlbmNlX3Rva2Vuc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS5yZWZlcmVuY2VfdG9rZW5zKS50by5iZS5hbi5pbnN0YW5jZW9mKEFy
cmF5KTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5wcm9w
ZXJ0eShcImxhYmVsc1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5s
YWJlbHMpLnRvLmJlLmFuLmluc3RhbmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZGF0ZV9jcmVhdGVkXCIpOyIsCisJ
CQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJD
b25maWd1cmF0aW9uIGlzIGRlZmF1bHRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIg
ICAgcG0uZXhwZWN0KGpzb25EYXRhLnRva2VuKS50by5tYXRjaCh0b2tlblJlZ2V4KTsiLAorCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50ZXN0cy5pbmNsdWRlKS50by5pbmNsdWRl
KFwiL1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS50eXBlcykudG8u
aW5jbHVkZShcImF1dG9tYXRpY1wiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29u
RGF0YS50eXBlcykudG8uaW5jbHVkZShcIm1hbnVhbFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBt
LmV4cGVjdChqc29uRGF0YS51c2VyX2FnZW50KS50by5pbmNsdWRlKFwiUG9zdG1hblJ1bnRpbWVc
Iik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEudGltZW91dHMuYXV0b21h
dGljKS50by5lcXVhbCg2MDAwMCk7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudGltZW91dHMubWFudWFsKS50by5lcXVhbCgzMDAwMDApOyIsCisJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KGpzb25EYXRhLmJyb3dzZXIubmFtZSkudG8uZXF1YWwoXCJPdGhlclwiKTsiLAor
CQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5icm93c2VyLnZlcnNpb24pLnRvLmVx
dWFsKFwiMFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YS5pc19wdWJs
aWMpLnRvLmVxdWFsKGZhbHNlKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YS5yZWZlcmVuY2VfdG9rZW5zKS50by5iZS5lbXB0eTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4
cGVjdChqc29uRGF0YS5sYWJlbHMpLnRvLmJlLmVtcHR5OyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KG5ldyBEYXRlKGpzb25EYXRhLmRhdGVfY3JlYXRlZCkuZ2V0VGltZSgpKS50by5iZS5i
ZWxvdyhEYXRlLm5vdygpKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJ
CQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAor
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lv
bnMve3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQld
LAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJ
CQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Np
b25zIiwKKwkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJ
CX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJewor
CQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBEZWxldGUgc2Vzc2lvbiIsCisJCQkJCQkJInJlcXVl
c3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJImhlYWRlciI6IFtd
LAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3Qi
OiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0Ijog
Int7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0i
LAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJCQkJCQkJCQkJInt7
c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxl
QmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0s
CisJCQkJeworCQkJCQkibmFtZSI6ICJyZWFkIHNlc3Npb24gc3RhdHVzIiwKKwkJCQkJIml0ZW0i
OiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIFNlc3Npb24gTm8gQ29u
ZmlndXJhdGlvbiIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAiNzNj
YmVlYjAtMDE5Yi00MzMxLWIwZWMtZWY5ZDNmMWUwNDk0IiwKKwkJCQkJCQkJCQkiZXhlYyI6IFsK
KwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCisJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAor
CQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCB0b2tl
blJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5bYS1mMC05XXs4fS1bYS1mMC05XXs0fS1bYS1mMC05XXs0
fS1bYS1mMC05XXs0fS1bYS1mMC05XXsxMn0kXCIpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJ
CQkJCQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVu
Y3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCSIgICAgdmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2Uu
anNvbigpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnBy
b3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEu
dG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkiIiwKKwkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50
b2tlbjsiLAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuXCIsIHRv
a2VuKTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
CisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogWworCQkJCQkJCQkJ
eworCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJCQkJCQkibmFtZSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCSJ2YWx1
ZSI6ICJhcHBsaWNhdGlvbi9qc29uIgorCQkJCQkJCQkJfQorCQkJCQkJCQldLAorCQkJCQkJCQki
Ym9keSI6IHsKKwkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkicmF3IjogIiIKKwkJ
CQkJCQkJfSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19
Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIsCisJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJ
CQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJ
CSJuYW1lIjogIlJlYWQgU2Vzc2lvbiBTdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJ
CQkJCQkJCQkJImlkIjogImJhMTQyYjU1LTI0NTQtNDQ3Mi1iY2Y5LTY2OWIwYmI3YmFiOSIsCisJ
CQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBtLnJlc3BvbnNlLmpzb24o
KTsiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVy
ZSBpcyBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5l
eHBlY3QoanNvbkRhdGEpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAorCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEudG9rZW4pLnRvLmVxdWFsKFwic3RyaW5n
XCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3Bl
cnR5KFwic3RhdHVzXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHR5cGVvZiBqc29u
RGF0YS5zdGF0dXMpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KGpzb25EYXRhKS50by5oYXZlLnByb3BlcnR5KFwiZXhwaXJhdGlvbl9kYXRlXCIpOyIs
CisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25EYXRhLmV4cGlyYXRpb25fZGF0ZSkudG8u
YmUubnVsbDsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5w
cm9wZXJ0eShcImRhdGVfc3RhcnRlZFwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcImRhdGVfZmluaXNoZWRcIik7IiwKKwkJCQkJCQkJ
CQkJIn0pOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJ
CQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3Bv
cnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19L3N0YXR1cyIs
CisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0Ijog
WworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7
e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwK
KwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJCQkJCQkJCSJ7e3Nl
c3Npb25fdG9rZW59fSIsCisJCQkJCQkJCQkJInN0YXR1cyIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJ
fQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7CisJ
CQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IERlbGV0ZSBzZXNzaW9uIiwKKwkJCQkJCQkicmVxdWVz
dCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJCQkiaGVhZGVyIjogW10s
CisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9z
dH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tzZXNzaW9uX3Rva2VufX0i
LAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6
IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJInBvcnQiOiAi
e3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIs
CisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJCSJwcm90b2NvbFByb2ZpbGVC
ZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJfSwK
KwkJCQl7CisJCQkJCSJuYW1lIjogInJlYWQgc2Vzc2lvbnMiLAorCQkJCQkiaXRlbSI6IFsKKwkJ
CQkJCXsKKwkJCQkJCQkibmFtZSI6ICJXaXRob3V0IHF1ZXJ5IHBhcmFtZXRlcnMiLAorCQkJCQkJ
CSJpdGVtIjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJSZWFkIHNlc3Npb25zIiwK
KwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiZjQ0Mzk1
NWYtYjU3ZS00ODAxLThlYWMtNTQ3NTk3MzgxNjE1IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNPTiBzdHJ1Y3R1cmUgYXMgZXhwZWN0ZWRcIiwgZnVu
Y3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2
ZS5wcm9wZXJ0eShcIml0ZW1zXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVz
cG9uc2VbXCJpdGVtc1wiXSkudG8uYmUuaW5zdGFuY2VvZihBcnJheSk7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcIl9saW5rc1wiKTsi
LAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2xpbmtzXCJdKS50by5i
ZS5pbnN0YW5jZW9mKE9iamVjdCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQor
CQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
CQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1
cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0
fX0vX3dhdmUvYXBpL3Nlc3Npb25zIiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJw
YXRoIjogWworCQkJCQkJCQkJCQkJIl93YXZlIiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJ
CQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwK
KwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJw
cm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRl
ciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiQ29udGFpbmluZyBj
cmVhdGVkIHNlc3Npb24iLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bmFtZSI6ICJQcmVwOiBDcmVhdGUgc2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJ
CQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCQkJImlkIjogIjJjYTgwZGVlLWY5YTUtNGUwYi1iZWFkLTZhYjg3MWQ5
ZWRmOCIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9u
c2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSBy
ZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25f
dG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0
ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAor
CQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkJCSJtb2Rl
IjogInJhdyIsCisJCQkJCQkJCQkJCSJyYXciOiAiIiwKKwkJCQkJCQkJCQkJIm9wdGlvbnMiOiB7
CisJCQkJCQkJCQkJCQkicmF3IjogeworCQkJCQkJCQkJCQkJCSJsYW5ndWFnZSI6ICJqc29uIgor
CQkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJs
IjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19
L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3tw
cm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0i
CisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJ
CQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJh
cGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJ
CXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQgc2Vzc2lvbnMiLAorCQkJCQkJCQkJImV2ZW50Ijog
WworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJmYmY1ZWFmYi0wYWU3LTQxMDUtOGRmNS01
MWJiNTNiMGM1OTUiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJImNvbnN0
IHRva2VuID0gcG0uZ2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rva2VuXCIpOyIsCisJCQkJCQkJCQkJ
CQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJ
IiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbigpIHsi
LAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5
KFwiaXRlbXNcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZVtcIml0
ZW1zXCJdKS50by5iZS5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwiX2xpbmtzXCIpOyIsCisJCQkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2VbXCJfbGlua3NcIl0pLnRvLmJlLmluc3RhbmNl
b2YoT2JqZWN0KTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiQ3JlYXRlZCBzZXNzaW9uJ3MgdG9rZW4gaW4gcmVzcG9uc2Vc
IiwgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZS5p
dGVtcykudG8uY29udGFpbih0b2tlbik7IiwKKwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0vX3dhdmUvYXBpL3Nlc3Npb25zP2luZGV4PTAmY291bnQ9MTAwMCIsCisJCQkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJ
CQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJfd2F2ZSIsCisJCQkJ
CQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIKKwkJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkJInF1ZXJ5IjogWworCQkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJCSJrZXkiOiAi
aW5kZXgiLAorCQkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIwIgorCQkJCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCQkJCXsKKwkJCQkJCQkJCQkJCQkia2V5IjogImNvdW50IiwKKwkJCQkJCQkJCQkJCQkidmFs
dWUiOiAiMTAwMCIKKwkJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJ
CQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7
CisJCQkJCQkJCQkibmFtZSI6ICJDbGVhbiB1cDogRGVsZXRlIFNlc3Npb24iLAorCQkJCQkJCQkJ
InJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJERUxFVEUiLAorCQkJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMve3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwK
KwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBb
CisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJ
CQkJCQkJInNlc3Npb25zIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25fdG9rZW59fSIKKwkJCQkJ
CQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBb
XQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3Ii
OiB7fSwKKwkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAorCQkJ
CQkJeworCQkJCQkJCSJuYW1lIjogIldpdGggY29uZmlndXJhdGlvbiBleHBhbnNpb24iLAorCQkJ
CQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJQcmVwOiBDcmVhdGUg
c2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlk
IjogImJkZDY0NTk0LWM4NzQtNGViMi04YjM2LTRjMzdjZWEwZjBjYiIsCisJCQkJCQkJCQkJCQki
ZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29u
KCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3QgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJ
CQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJ
CQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7
CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJ
CQkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJCQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJ
CSJyYXciOiAiIiwKKwkJCQkJCQkJCQkJIm9wdGlvbnMiOiB7CisJCQkJCQkJCQkJCQkicmF3Ijog
eworCQkJCQkJCQkJCQkJCSJsYW5ndWFnZSI6ICJqc29uIgorCQkJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vz
c2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNl
c3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJ
CSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjog
IlJlYWQgc2Vzc2lvbnMiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkJCSJpZCI6ICI2NzMyYWVkZi1kOTlkLTQxNmYtYjkzZC05OGJjMDQwNGVmNjEiLAorCQkJCQkJ
CQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcG0uZ2xvYmFscy5n
ZXQoXCJzZXNzaW9uX3Rva2VuXCIpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0
cnVjdHVyZSBhcyBleHBlY3RlZFwiLCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAg
cG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwiaXRlbXNcIik7IiwKKwkJCQkJ
CQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNwb25zZVtcIml0ZW1zXCJdKS50by5iZS5pbnN0YW5j
ZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5o
YXZlLnByb3BlcnR5KFwiX2xpbmtzXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
cmVzcG9uc2VbXCJfbGlua3NcIl0pLnRvLmJlLmluc3RhbmNlb2YoT2JqZWN0KTsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwiX2VtYmVk
ZGVkXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2VbXCJfZW1iZWRk
ZWRcIl0pLnRvLmJlLmluc3RhbmNlb2YoT2JqZWN0KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
ZXhwZWN0KHJlc3BvbnNlW1wiX2VtYmVkZGVkXCJdKS50by5oYXZlLnByb3BlcnR5KFwiY29uZmln
dXJhdGlvblwiKTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2Vt
YmVkZGVkXCJdW1wiY29uZmlndXJhdGlvblwiXSkudG8uYmUuaW5zdGFuY2VvZihBcnJheSk7IiwK
KwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0u
dGVzdChcIkNyZWF0ZWQgc2Vzc2lvbidzIHRva2VuIGluIHJlc3BvbnNlXCIsIGZ1bmN0aW9uKCkg
eyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2UuaXRlbXMpLnRvLmNvbnRh
aW4odG9rZW4pOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJDcmVhdGVkIHNlc3Npb24ncyB0b2tlbiBpbiBlbWJlZGRlZCBj
b25maWd1cmF0aW9uXCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBsZXQgdG9r
ZW5JbkNvbmZpZ3VyYXRpb25MaXN0ID0gZmFsc2U7IiwKKwkJCQkJCQkJCQkJCQkiICAgIGxldCBj
b25maWd1cmF0aW9ucyA9IHJlc3BvbnNlLl9lbWJlZGRlZC5jb25maWd1cmF0aW9uOyIsCisJCQkJ
CQkJCQkJCQkJIiAgICBmb3IgKGxldCBjb25maWd1cmF0aW9uIG9mIGNvbmZpZ3VyYXRpb25zKSB7
IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICBpZiAoY29uZmlndXJhdGlvbi50b2tlbiAhPT0gdG9r
ZW4pIGNvbnRpbnVlOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgdG9rZW5JbkNvbmZpZ3VyYXRp
b25MaXN0ID0gdHJ1ZTsiLAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QodG9rZW5JbkNvbmZpZ3VyYXRpb25MaXN0KS50by5lcXVhbCh0cnVlKTsiLAor
CQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAi
dGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJ
CQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6
ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS9fd2F2ZS9hcGkvc2Vzc2lvbnM/aW5k
ZXg9MCZjb3VudD0xMDAwJmV4cGFuZD1jb25maWd1cmF0aW9uIiwKKwkJCQkJCQkJCQkJInByb3Rv
Y29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJ
Int7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIs
CisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJIl93YXZlIiwKKwkJCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkicXVlcnkiOiBbCisJCQkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCQkJImtleSI6ICJpbmRleCIs
CisJCQkJCQkJCQkJCQkJInZhbHVlIjogIjAiCisJCQkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkJCSJrZXkiOiAiY291bnQiLAorCQkJCQkJCQkJCQkJCSJ2YWx1ZSI6ICIx
MDAwIgorCQkJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCQkia2V5Ijog
ImV4cGFuZCIsCisJCQkJCQkJCQkJCQkJInZhbHVlIjogImNvbmZpZ3VyYXRpb24iCisJCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJ
InJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAi
Q2xlYW4gdXA6IERlbGV0ZSBTZXNzaW9uIiwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJ
CQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7
e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19IiwKKwkJ
CQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0Ijog
WworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9y
dCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9ucyIsCisJ
CQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9
CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJ
CV0sCisJCQkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0
bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6
ICJXaXRoIHN0YXR1cyBleHBhbnNpb24iLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibmFtZSI6ICJQcmVwOiBDcmVhdGUgc2Vzc2lvbiIsCisJCQkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjMzMTllNDE3LWRkNTQtNDk1Zi1hNDUy
LTU1MTlkMmE2MTA4MiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiY29u
c3QgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiY29uc3Qg
dG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChc
InNlc3Npb25fdG9rZW5cIiwgdG9rZW4pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJ
CQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NU
IiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJImJvZHkiOiB7CisJCQkJCQkJ
CQkJCSJtb2RlIjogInJhdyIsCisJCQkJCQkJCQkJCSJyYXciOiAiIiwKKwkJCQkJCQkJCQkJIm9w
dGlvbnMiOiB7CisJCQkJCQkJCQkJCQkicmF3IjogeworCQkJCQkJCQkJCQkJCSJsYW5ndWFnZSI6
ICJqc29uIgorCQkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJ
CQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19
Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkicHJvdG9j
b2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQki
e3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInNlc3Npb25zIgorCQkJCQkJCQkJCQldCisJCQkJ
CQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0s
CisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQgc2Vzc2lvbnMiLAorCQkJCQkJCQkJ
ImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJ
CQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI2Y2EzNDgwYS0zMjI0LTRi
ZjgtYTQ2Ni1mZGNiMDYzMzg3OTUiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJ
CQkJImNvbnN0IHRva2VuID0gcG0uZ2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rva2VuXCIpOyIsCisJ
CQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJ
CQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZl
LnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJKU09OIHN0cnVjdHVyZSBhcyBleHBlY3RlZFwiLCBmdW5j
dGlvbigpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZl
LnByb3BlcnR5KFwiaXRlbXNcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChyZXNw
b25zZVtcIml0ZW1zXCJdKS50by5iZS5pbnN0YW5jZW9mKEFycmF5KTsiLAorCQkJCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwiX2xpbmtzXCIpOyIs
CisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2VbXCJfbGlua3NcIl0pLnRvLmJl
Lmluc3RhbmNlb2YoT2JqZWN0KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3Bv
bnNlKS50by5oYXZlLnByb3BlcnR5KFwiX2VtYmVkZGVkXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAg
ICBwbS5leHBlY3QocmVzcG9uc2VbXCJfZW1iZWRkZWRcIl0pLnRvLmJlLmluc3RhbmNlb2YoT2Jq
ZWN0KTsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNlW1wiX2VtYmVkZGVk
XCJdKS50by5oYXZlLnByb3BlcnR5KFwic3RhdHVzXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QocmVzcG9uc2VbXCJfZW1iZWRkZWRcIl1bXCJzdGF0dXNcIl0pLnRvLmJlLmluc3Rh
bmNlb2YoQXJyYXkpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJDcmVhdGVkIHNlc3Npb24ncyB0b2tlbiBpbiByZXNwb25z
ZVwiLCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHJlc3BvbnNl
Lml0ZW1zKS50by5jb250YWluKHRva2VuKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJ
CQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiQ3JlYXRlZCBzZXNzaW9uJ3MgdG9r
ZW4gaW4gZW1iZWRkZWQgc3RhdHVzXCIsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAg
ICBsZXQgdG9rZW5JblN0YXR1c0xpc3QgPSBmYWxzZTsiLAorCQkJCQkJCQkJCQkJCSIgICAgbGV0
IHN0YXR1c2VzID0gcmVzcG9uc2UuX2VtYmVkZGVkLnN0YXR1czsiLAorCQkJCQkJCQkJCQkJCSIg
ICAgZm9yIChsZXQgc3RhdHVzIG9mIHN0YXR1c2VzKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAg
ICBpZiAoc3RhdHVzLnRva2VuICE9PSB0b2tlbikgY29udGludWU7IiwKKwkJCQkJCQkJCQkJCQki
ICAgICAgICB0b2tlbkluU3RhdHVzTGlzdCA9IHRydWU7IiwKKwkJCQkJCQkJCQkJCQkiICAgIH0i
LAorCQkJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHRva2VuSW5TdGF0dXNMaXN0KS50by5lcXVh
bCh0cnVlKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS9fd2F2ZS9hcGkv
c2Vzc2lvbnM/aW5kZXg9MCZjb3VudD0xMDAwJmV4cGFuZD1zdGF0dXMiLAorCQkJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkiX3dhdmUiLAorCQkJCQkJ
CQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJxdWVyeSI6IFsKKwkJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCQkia2V5IjogImlu
ZGV4IiwKKwkJCQkJCQkJCQkJCQkidmFsdWUiOiAiMCIKKwkJCQkJCQkJCQkJCX0sCisJCQkJCQkJ
CQkJCQl7CisJCQkJCQkJCQkJCQkJImtleSI6ICJjb3VudCIsCisJCQkJCQkJCQkJCQkJInZhbHVl
IjogIjEwMDAiCisJCQkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJCSJr
ZXkiOiAiZXhwYW5kIiwKKwkJCQkJCQkJCQkJCQkidmFsdWUiOiAic3RhdHVzIgorCQkJCQkJCQkJ
CQkJfQorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJy
ZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIkNs
ZWFuIHVwOiBEZWxldGUgU2Vzc2lvbiIsCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJ
CQkibWV0aG9kIjogIkRFTEVURSIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59fSIsCisJCQkJ
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsK
KwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQi
OiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9y
b290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMiLAorCQkJ
CQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQld
LAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1h
bl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJv
ZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJ
CQl9CisJCQldLAorCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KKwkJfSwKKwkJewor
CQkJIm5hbWUiOiAiUmVzdWx0cyBBUEkiLAorCQkJIml0ZW0iOiBbCisJCQkJeworCQkJCQkibmFt
ZSI6ICJ1cGxvYWQgYXBpIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUi
OiAiY3JlYXRlIHNlc3Npb24iLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJCQkJCQkJ
CQkibmFtZSI6ICJQcmVwOiBSZWFkIEF2YWlsYWJsZSBUZXN0cyIsCisJCQkJCQkJCQkiZXZlbnQi
OiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJ
CQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjFmM2Q4YjY3LWFhYjgtNDRhMC1hYmY0
LWUzMjBhNmIyNzc1NSIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQki
fSk7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGF2YWlsYWJsZVRlc3Rz
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJ
InZhciBpbmNsdWRlZFRlc3RzID0gW107IiwKKwkJCQkJCQkJCQkJCQkidmFyIGV4Y2x1ZGVkVGVz
dHMgPSBbXTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgc3BlY2lhbFRpbWVvdXRUZXN0ID0gXCJcIjsi
LAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgYXBpcyA9IE9iamVjdC5rZXlz
KGF2YWlsYWJsZVRlc3RzKTsiLAorCQkJCQkJCQkJCQkJCSJmb3IodmFyIGFwaSBvZiBhcGlzKSB7
IiwKKwkJCQkJCQkJCQkJCQkiICAgIGlmIChhdmFpbGFibGVUZXN0c1thcGldLmxlbmd0aCA+IDUw
KSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB2YXIgc3ViRGlycyA9IGF2YWlsYWJsZVRlc3Rz
W2FwaV0ubWFwKHRlc3QgPT4gdGVzdC5zcGxpdChcIi9cIikuZmlsdGVyKHBhcnQgPT4gISFwYXJ0
KVsxXSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5pbmRleE9mKGN1cnIpID09PSAtMSA/IGFj
Yy5jb25jYXQoW2N1cnJdKSA6IGFjYywgW10pOyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgaWYg
KHN1YkRpcnMubGVuZ3RoID4gMikgeyIsCisJCQkJCQkJCQkJCQkJIiAgICAgICAgICAgIGluY2x1
ZGVkVGVzdHMucHVzaChcIi9cIiArIGFwaSk7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICAgICAg
ZXhjbHVkZWRUZXN0cy5wdXNoKFwiL1wiICsgYXBpICsgXCIvXCIgKyBzdWJEaXJzWzBdKTsiLAor
CQkJCQkJCQkJCQkJCSIgICAgICAgICAgICBzcGVjaWFsVGltZW91dFRlc3QgPSBhdmFpbGFibGVU
ZXN0c1thcGldW2F2YWlsYWJsZVRlc3RzW2FwaV0ubGVuZ3RoIC0gMV07IiwKKwkJCQkJCQkJCQkJ
CQkiICAgICAgICAgICAgYnJlYWs7IiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB9IiwKKwkJCQkJ
CQkJCQkJCQkiICAgICAgICAiLAorCQkJCQkJCQkJCQkJCSIgICAgfSIsCisJCQkJCQkJCQkJCQkJ
In0iLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2YXIgdXNlZEFwaSA9IGFwaXNb
MF07IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJh
cGlfbmFtZVwiLCB1c2VkQXBpKTsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInRl
c3RcIiwgYXZhaWxhYmxlVGVzdHNbdXNlZEFwaV1bMF0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CQl9CisJCQkJCQkJCQldLAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhv
ZCI6ICJHRVQiLAorCQkJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogewor
CQkJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2Vi
X3Jvb3R9fS9hcGkvdGVzdHMiLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19
IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgi
OiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJ
CQkJCQkJCQkJInRlc3RzIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwK
KwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJuYW1lIjogIkNyZWF0ZSBTZXNzaW9uIFdpdGggT25lIHRlc3QiLAorCQkJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJ
CQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJmNDI0NzlkNC1mNzIzLTQ4NDMtYmE5
MS1mMzAwMTllYmQ5NzUiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuUmVnZXgg
PSBuZXcgUmVnRXhwKFwiXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYw
LTldezR9LVthLWYwLTldezEyfSRcIik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJ
CQkicG0udGVzdChcIlJlc3BvbmRzIHdpdGggdG9rZW4gaW4gSlNPTiBmb3JtYXRcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5q
c29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0YSkudG8uaGF2ZS5w
cm9wZXJ0eShcInRva2VuXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGEudG9rZW4pLnRvLm1hdGNoKHRva2VuUmVnZXgpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHJl
c3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJCQkJCQkJImNvbnN0IHRva2Vu
ID0gcmVzcG9uc2UudG9rZW47IiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNz
aW9uX3Rva2VuXCIsIHRva2VuKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJ
CQkJCQkJCQkJImhlYWRlciI6IFsKKwkJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkJImtleSI6ICJD
b250ZW50LVR5cGUiLAorCQkJCQkJCQkJCQkJIm5hbWUiOiAiQ29udGVudC1UeXBlIiwKKwkJCQkJ
CQkJCQkJCSJ0eXBlIjogInRleHQiLAorCQkJCQkJCQkJCQkJInZhbHVlIjogImFwcGxpY2F0aW9u
L2pzb24iCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJib2R5Ijogewor
CQkJCQkJCQkJCQkibW9kZSI6ICJyYXciLAorCQkJCQkJCQkJCQkicmF3IjogIntcbiAgICBcInRl
c3RzXCI6IHtcbiAgICAgICAgXCJpbmNsdWRlXCI6IFtcInt7dGVzdH19XCJdXG4gICAgfVxufSIK
KwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3tw
cm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucyIs
CisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9z
dCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7
e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkic2Vzc2lvbnMi
CisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3Bv
bnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJ
CQl7CisJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6
IHsKKwkJCQkJCQkJCQkiaWQiOiAiOWY4ZmM2MDYtMjVlZS00NWRlLWJjZDgtNTc3MzU5MDA3MDFi
IiwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCV0KKwkJCQkJCQkJCX0KKwkJCQkJCQkJfSwK
KwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJImlkIjogImJlMjM0MWE4LTE1OTgtNDFiMC05NmE2LWNmZDA0OWJhZGQw
NyIsCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKKwkJCQkJCQkJCQkiZXhl
YyI6IFsKKwkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQldCisJCQkJCQkJCQl9CisJCQkJCQkJCX0K
KwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJ
CSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJ
Im5hbWUiOiAiY3JlYXRlIHJlc3VsdHMiLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJ
CQkJCQkJCQkibmFtZSI6ICJTdGFydCBTZXNzaW9uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiODk3ZTA0YWUtZDBhMi00YTY3LTk0ODgtMmJkZWI1
NWRiMDZiIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiCisJ
CQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJ
CQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0Ijog
eworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9zZXNzaW9ucy97e3Nlc3Npb25fdG9rZW59
fS9zdGFydCIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJ
CQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJ
CQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJ
CQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQki
c2Vzc2lvbnMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJ
CSJzdGFydCIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6
ICJSZWFkIE5leHQgVGVzdCBvZiBTZXNzaW9uIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJ
CQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQi
OiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiOTViMzgyYzYtOWQwOC00MWI5LTgwZDEtNDBkYzAyMTdj
YzA5IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNl
Lmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiSlNP
TiBzdHJ1Y3R1cmUgaXMgYXMgZXhwZWN0ZWRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QoT2JqZWN0LmtleXMocmVzcG9uc2UpKS50by5oYXZlLmxlbmd0aE9m
KDEpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJv
cGVydHkoXCJuZXh0X3Rlc3RcIik7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdCh0eXBl
b2YgcmVzcG9uc2UubmV4dF90ZXN0KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJ
CQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBuZXh0VGVz
dCA9IHJlc3BvbnNlLm5leHRfdGVzdDsiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChc
ImN1cnJlbnRfdGVzdF91cmxcIiwgbmV4dFRlc3QpOyIsCisJCQkJCQkJCQkJCQkJImlmICghbmV4
dFRlc3QpIHJldHVybjsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJjb25zdCBw
YXJhbWV0ZXJzID0gbmV4dFRlc3Quc3BsaXQoXCI/XCIpWzFdLnNwbGl0KFwiJlwiKTsiLAorCQkJ
CQkJCQkJCQkJCSJsZXQgdGVzdCA9IHBhcmFtZXRlcnMuZmluZChwYXJhbWV0ZXIgPT4gcGFyYW1l
dGVyLnNwbGl0KFwiPVwiKVswXSA9PT0gXCJ0ZXN0X3VybFwiKS5zcGxpdChcIj1cIilbMV07IiwK
KwkJCQkJCQkJCQkJCQkidGVzdCA9IGRlY29kZVVSSUNvbXBvbmVudCh0ZXN0KTsiLAorCQkJCQkJ
CQkJCQkJCSJ0ZXN0ID0gXCIvXCIgKyB0ZXN0LnNwbGl0KFwiL1wiKS5zbGljZSgzKS5qb2luKFwi
L1wiKS5zcGxpdChcIj9cIilbMF07IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJjdXJyZW50X3Rlc3RcIiwgdGVzdCk7IgorCQkJCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJ
CQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQki
bWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0v
e3t3ZWJfcm9vdH19L2FwaS90ZXN0cy97e3Nlc3Npb25fdG9rZW59fS9uZXh0IiwKKwkJCQkJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJ
CQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7
e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9
fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJ0ZXN0cyIsCisJCQkJCQkJCQkJ
CQkie3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkJIm5leHQiCisJCQkJCQkJCQkJCV0K
KwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ3JlYXRlIFJlc3VsdCIsCisJCQkJ
CQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAorCQkJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCQkJImlkIjogIjY3YjIzYWM5LTUy
NTQtNGI3Yi05MGJmLTkzMGE5NjYxYTYxNCIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJ
CQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwK
KwkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJ
CQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJ
CQkJCSJoZWFkZXIiOiBbCisJCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJCSJrZXkiOiAiQ29udGVu
dC1UeXBlIiwKKwkJCQkJCQkJCQkJCSJuYW1lIjogIkNvbnRlbnQtVHlwZSIsCisJCQkJCQkJCQkJ
CQkidmFsdWUiOiAiYXBwbGljYXRpb24vanNvbiIsCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJ
CQkJCQkJIm1vZGUiOiAicmF3IiwKKwkJCQkJCQkJCQkJInJhdyI6ICJ7XG4gIFwidGVzdFwiOiBc
Int7Y3VycmVudF90ZXN0fX1cIixcbiAgXCJzdGF0dXNcIjogXCJPS1wiLFxuICBcIm1lc3NhZ2Vc
IjogbnVsbCxcbiAgXCJzdWJ0ZXN0c1wiOiBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3Vi
dGVzdCB0ZXN0aW5nIGZlYXR1cmUgeHlcIixcbiAgICAgIFwic3RhdHVzXCI6IFwiRkFJTFwiLFxu
ICAgICAgXCJtZXNzYWdlXCI6IFwiRXJyb3IgbWVzc2FnZVwiXG4gICAgfVxuICBdXG59IgorCQkJ
CQkJCQkJCX0sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3Rv
Y29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tzZXNz
aW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0s
CisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJ
CQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lvbl90b2tlbn19IgorCQkJCQkJCQkJ
CQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJ
CQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9
LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAidXBsb2FkIG5ldyByZXN1bHRzIiwKKwkJCQkJCQkiaXRlbSI6IFsK
KwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiRG93bmxvYWQgY3VycmVudCByZXN1bHRzIiwK
KwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiOTg0Yzc5
ZGItNWFlMS00YzIyLThiNjItNmVjY2FiZmFlYjk4IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWwor
CQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAorCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJ2
YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkidmFyIHJl
c3VsdHMgPSBqc29uRGF0YS5yZXN1bHRzOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJ
CQkJInBtLmdsb2JhbHMuc2V0KFwicmVzdWx0c1wiLCByZXN1bHRzKTsiCisJCQkJCQkJCQkJCQld
LAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJ
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVz
dCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiYTlhNDZiNWYt
MmRkMy00ZmE3LWE0ODItNzE4NmFjMDFhNGQ2IiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJ
CQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9q
YXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJCQki
aGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3By
b3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jlc3VsdHMve3tz
ZXNzaW9uX3Rva2VufX0ve3thcGlfbmFtZX19L2pzb24iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wi
OiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3to
b3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJ
CQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJ
CQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCQkJInt7c2Vzc2lv
bl90b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJ7e2FwaV9uYW1lfX0iLAorCQkJCQkJCQkJCQkJImpz
b24iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVh
ZCBDdXJyZW50IENvbXBhY3QgUmVzdWx0cyIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCQkJImlkIjogImY0OTc0NDk1LTJlODQtNDk2Mi05MjU5LTFkNTUwMWZiN2Ez
ZiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJCQkifSk7IiwKKwkJCQkJ
CQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNv
bigpOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwi
Y29tcGFjdF9yZXN1bHRzXCIsIGpzb25EYXRhKTsiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAi
R0VUIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290
fX0vYXBpL3Jlc3VsdHMve3tzZXNzaW9uX3Rva2VufX0vY29tcGFjdCIsCisJCQkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJCQki
e3tzZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkJImNvbXBhY3QiCisJCQkJCQkJCQkJCV0K
KwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJ
CQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiVXBsb2FkIFJlc3VsdHMgQXBpIEpz
b24iLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI0
YTdkZjQ2ZC01NDZjLTRjZjQtOGM2YS05YjEzZWFhMGJlMzIiLAorCQkJCQkJCQkJCQkJImV4ZWMi
OiBbCisJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJ
InNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJlMjE5NjM0OC1hNGEwLTQ4ZDMtYmQ3Mi1m
NTkxZjBiNjVjZjAiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciBy
ZXN1bHRzID0gcG0uZ2xvYmFscy5nZXQoXCJyZXN1bHRzXCIpOyIsCisJCQkJCQkJCQkJCQkJInZh
ciBuZXdTdWJSZXN1bHQgPSAiLAorCQkJCQkJCQkJCQkJCSIgICAgICAgIHsiLAorCQkJCQkJCQkJ
CQkJCSIgICAgICAgICAgICBcIm5hbWVcIjogXCJwbGFjZWhvbGRlciBzdWIgdGVzdFwiLCIsCisJ
CQkJCQkJCQkJCQkJIiAgICAgICAgICAgIFwic3RhdHVzXCI6IFwiUEFTU1wiLCIsCisJCQkJCQkJ
CQkJCQkJIiAgICAgICAgICAgIFwibWVzc2FnZVwiOiBcInRoaXMgaXMgYSBwbGFjZWhvbGRlciBz
dWIgdGVzdFwiIiwKKwkJCQkJCQkJCQkJCQkiICAgICAgICB9OyIsCisJCQkJCQkJCQkJCQkJIiIs
CisJCQkJCQkJCQkJCQkJInJlc3VsdHNbMF0uc3VidGVzdHMucHVzaChuZXdTdWJSZXN1bHQpOyIs
CisJCQkJCQkJCQkJCQkJInJlc3VsdHNTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShyZXN1bHRzKTsi
LAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcInJlc3VsdHNTdHJpbmdcIiwgcmVzdWx0
c1N0cmluZyk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2
YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkJCSJo
ZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkiYm9keSI6IHsKKwkJCQkJCQkJCQkJIm1vZGUiOiAicmF3
IiwKKwkJCQkJCQkJCQkJInJhdyI6ICJ7XG4gICAgXCJyZXN1bHRzXCI6IHt7cmVzdWx0c1N0cmlu
Z319XG59IiwKKwkJCQkJCQkJCQkJIm9wdGlvbnMiOiB7CisJCQkJCQkJCQkJCQkicmF3Ijogewor
CQkJCQkJCQkJCQkJCSJsYW5ndWFnZSI6ICJqc29uIgorCQkJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
CQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvcmVzdWx0
cy97e3Nlc3Npb25fdG9rZW59fS97e2FwaV9uYW1lfX0vanNvbiIsCisJCQkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkicmVzdWx0cyIsCisJCQkJCQkJCQkJCQkie3tz
ZXNzaW9uX3Rva2VufX0iLAorCQkJCQkJCQkJCQkJInt7YXBpX25hbWV9fSIsCisJCQkJCQkJCQkJ
CQkianNvbiIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6
ICJDaGVjayBpZiBjaGFuZ2VzIHRvb2sgZWZmZWN0IiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3Jp
cHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAiOGM0NWZkNmQtY2E5OC00MzkzLWFjZTYtYzAxNTYz
ZDdjMWVjIiwKKwkJCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAor
CQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiUmV0dXJuZWQgcmVzdWx0
cyBjb250YWluIG5ldyByZXN1bHRcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAg
ICB2YXIganNvbkRhdGEgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkiICAg
IHZhciByZXN1bHRzID0ganNvbkRhdGEucmVzdWx0czsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJ
CQkJCQkJCQkJCSIgICAgdmFyIG9sZFJlc3VsdHMgPSBwbS5nbG9iYWxzLmdldChcInJlc3VsdHNc
Iik7IiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChvbGRS
ZXN1bHRzWzBdLnN1YnRlc3RzLmxlbmd0aCArIDEpLnRvLmVxdWFsKHJlc3VsdHNbMF0uc3VidGVz
dHMubGVuZ3RoKTsiLAorCQkJCQkJCQkJCQkJCSJ9KTsiLAorCQkJCQkJCQkJCQkJCSIiCisJCQkJ
CQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJ
CQkJCQl9CisJCQkJCQkJCQkJfSwKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJsaXN0ZW4iOiAi
cHJlcmVxdWVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQiOiAi
MGM5ZTMxZmMtMTkzMS00ZGNkLTk3OGYtMzllMmEzOGY5YTNmIiwKKwkJCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkJCSIiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJCQkJ
XSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJ
CQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJh
dyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Jl
c3VsdHMve3tzZXNzaW9uX3Rva2VufX0ve3thcGlfbmFtZX19L2pzb24iLAorCQkJCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwK
KwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJInJlc3VsdHMiLAorCQkJCQkJCQkJCQkJ
Int7c2Vzc2lvbl90b2tlbn19IiwKKwkJCQkJCQkJCQkJCSJ7e2FwaV9uYW1lfX0iLAorCQkJCQkJ
CQkJCQkJImpzb24iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJ
CQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5h
bWUiOiAiQ2hlY2sgY2hhbmdlcyBpbiBDb21wYWN0IFJlc3VsdHMiLAorCQkJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJ
CQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI2ZTMwYjUzMy0xOGY5LTQxYmMtYWY2
NS1iZGRlMzIzYzIxNWEiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCisJCQkJCQkJCQkJCQkJ
In0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciBqc29uRGF0YSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgdGVzdCA9IHBtLmdsb2JhbHMu
Z2V0KFwidGVzdFwiKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgb2xkQ29tcGFjdFJlc3VsdHMgPSBw
bS5nbG9iYWxzLmdldChcImNvbXBhY3RfcmVzdWx0c1wiKTsiLAorCQkJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwicGFzc2VkIHRlc3QgaW5jcmVhc2VkXCIsIGZ1bmN0aW9u
ICgpIHsiLAorCQkJCQkJCQkJCQkJCSIgICAgdmFyIGFwaSA9IHRlc3Quc3BsaXQoXCIvXCIpLmZp
bmQocGFydCA9PiAhIXBhcnQpOyIsCisJCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRh
dGFbYXBpXS5wYXNzKS50by5lcXVhbChvbGRDb21wYWN0UmVzdWx0c1thcGldLnBhc3MgKyAxKTsi
LAorCQkJCQkJCQkJCQkJCSJ9KSIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQld
LAorCQkJCQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJ
CQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3
IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvcmVz
dWx0cy97e3Nlc3Npb25fdG9rZW59fS9jb21wYWN0IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjog
Int7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9z
dH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJ
CQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJyZXN1bHRzIiwKKwkJCQkJCQkJCQkJCSJ7e3Nlc3Npb25f
dG9rZW59fSIsCisJCQkJCQkJCQkJCQkiY29tcGFjdCIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJ
CX0KKwkJCQkJCQkJCX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9CisJCQkJ
CQkJXSwKKwkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJCQkiX3Bv
c3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1l
IjogImNsZWFuIHVwIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5h
bWUiOiAiQ2xlYW4gdXA6IERlbGV0ZSBzZXNzaW9uIiwKKwkJCQkJCQkJCSJyZXF1ZXN0Ijogewor
CQkJCQkJCQkJCSJtZXRob2QiOiAiREVMRVRFIiwKKwkJCQkJCQkJCQkiaGVhZGVyIjogW10sCisJ
CQkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL3Nlc3Npb25zL3t7c2Vzc2lvbl90b2tlbn19
IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJCQkJCSJo
b3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJ
CQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCQkJ
Int7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkJCSJzZXNzaW9u
cyIsCisJCQkJCQkJCQkJCQkie3tzZXNzaW9uX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJCQkJ
CQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQor
CQkJCQkJCV0sCisJCQkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJ
Il9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCQkJfQorCQkJCQldLAorCQkJCQkicHJv
dG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjog
dHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorCQl9
LAorCQl7CisJCQkibmFtZSI6ICJHZW5lcmFsIEFQSSIsCisJCQkiaXRlbSI6IFsKKwkJCQl7CisJ
CQkJCSJuYW1lIjogInNlcnZlciBzdGF0dXMiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsKKwkJ
CQkJCQkibmFtZSI6ICJSZWFkIHNlcnZlciBzdGF0dXMiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJ
CQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7
CisJCQkJCQkJCQkJImlkIjogIjhiNWI0YzIzLWRiMGEtNGI4MS05MzQ5LWNlOGVhZDY0YmI3YSIs
CisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkidmFyIGpzb25EYXRhID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdChcIkpTT04gc3RydWN0dXJlIGlzIGFzIGV4cGVj
dGVkXCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChqc29uRGF0
YSkudG8uaGF2ZS5wcm9wZXJ0eShcImltcG9ydF9yZXN1bHRzX2VuYWJsZWRcIik7IiwKKwkJCQkJ
CQkJCQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLmltcG9ydF9yZXN1bHRzX2VuYWJs
ZWQpLnRvLmVxdWFsKFwiYm9vbGVhblwiKTsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChq
c29uRGF0YSkudG8uaGF2ZS5wcm9wZXJ0eShcInJlcG9ydHNfZW5hYmxlZFwiKTsiLAorCQkJCQkJ
CQkJCQkiICAgIHBtLmV4cGVjdCh0eXBlb2YganNvbkRhdGEucmVwb3J0c19lbmFibGVkKS50by5l
cXVhbChcImJvb2xlYW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QoanNvbkRhdGEp
LnRvLmhhdmUucHJvcGVydHkoXCJyZWFkX3Nlc3Npb25zX2VuYWJsZWRcIik7IiwKKwkJCQkJCQkJ
CQkJIiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnJlYWRfc2Vzc2lvbnNfZW5hYmxlZCku
dG8uZXF1YWwoXCJib29sZWFuXCIpOyIsCisJCQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KGpzb25E
YXRhKS50by5oYXZlLnByb3BlcnR5KFwidmVyc2lvbl9zdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJ
IiAgICBwbS5leHBlY3QodHlwZW9mIGpzb25EYXRhLnZlcnNpb25fc3RyaW5nKS50by5lcXVhbChc
InN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9CisJCQkJCQkJ
XSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJ
CQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvc3RhdHVzIiwKKwkJ
CQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJ
CQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9y
dH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJ
CQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJzdGF0dXMiCisJCQkJCQkJCQldCisJCQkJCQkJCX0K
KwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9CisJCQkJCV0sCisJCQkJ
CSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xk
ZXIiOiB0cnVlCisJCQkJfQorCQkJXSwKKwkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9
CisJCX0sCisJCXsKKwkJCSJuYW1lIjogIkRldmljZXMgQVBJIiwKKwkJCSJpdGVtIjogWworCQkJ
CXsKKwkJCQkJIm5hbWUiOiAiY3JlYXRlIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJ
CQkJIm5hbWUiOiAiQ3JlYXRlIGRldmljZSIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7
CisJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJ
CQkJCQkiaWQiOiAiMjg2NDI2ZWMtYzM5NC00OGE0LWE5MGYtYzZkZDgwYzdiZWYxIiwKKwkJCQkJ
CQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdWNjZXNzZnVsIFBPU1QgcmVx
dWVzdFwiLCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3QocG0ucmVz
cG9uc2UuY29kZSkudG8uYmUub25lT2YoWzIwMCwyMDEsMjAyXSk7IiwKKwkJCQkJCQkJCQkJIn0p
OyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9u
c2UuanNvbigpOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdCgnU2NoZW1h
IGlzIHZhbGlkJywgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3Bv
bnNlKS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJ
CQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdCgnRGF0YSBpcyB2YWxpZCcsIGZ1bmN0
aW9uKCkgeyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UudG9rZW4p
LnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJ
CX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIlBP
U1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQki
cmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkv
ZGV2aWNlcy8iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCisJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQldLAorCQkJCQkJCQkJ
InBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJInt7d2Vi
X3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJ
CQkJCSIiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAorCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjogIkNsZWFuIHVwOiBXYWl0
IGRldmljZSB0aW1lb3V0IiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6
ICIzYmRiMGY3Yy0xMjYxLTQ2NWUtOWIwMi0wMDcwMDA1ZjBjNDMiLAorCQkJCQkJCQkJCSJleGVj
IjogWworCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJfQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJCQkJ
CQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJ
CQkiaWQiOiAiYTFjZjU4ODAtN2I4ZS00YmM2LTlkOTItNTk2MzJhNzE5YzU0IiwKKwkJCQkJCQkJ
CQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gcGFyc2VJbnQocG0uZW52aXJv
bm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsgNTAwIiwKKwkJCQkJCQkJCQkJIiIsCisJ
CQkJCQkJCQkJCSJzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1lb3V0KTsiCisJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJ
CQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9k
IjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJ
CQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19
L2FwaS9kZXZpY2VzLyIsCisJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJ
CQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQki
e3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJCQkJCQkiZGV2aWNlcyIsCisJ
CQkJCQkJCQkJIiIKKwkJCQkJCQkJCV0KKwkJCQkJCQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJl
c3BvbnNlIjogW10KKwkJCQkJCX0KKwkJCQkJXSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2
aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJ
CXsKKwkJCQkJIm5hbWUiOiAicmVhZCBkZXZpY2UiLAorCQkJCQkiaXRlbSI6IFsKKwkJCQkJCXsK
KwkJCQkJCQkibmFtZSI6ICJEZXZpY2Ugbm90IGZvdW5kIiwKKwkJCQkJCQkiaXRlbSI6IFsKKwkJ
CQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBkZXZpY2UiLAorCQkJCQkJCQkJImV2ZW50
IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJ
CQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICJhNDQwMWNiYy0wYTNhLTRjMmQtYjFl
ZC1lN2Q2ODY3NjE0ZmYiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1bmN0aW9uICgpIHsiLAorCQkJCQkJ
CQkJCQkJCSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmVxdWFsKDQwNCk7IiwK
KwkJCQkJCQkJCQkJCQkifSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0sCisJCQkJCQkJCQkJ
eworCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0
IjogeworCQkJCQkJCQkJCQkJImlkIjogIjE2NDRmZDcwLWI0YzQtNDIwNy04ZTEyLTY3NzUyYTk4
NDQxNyIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJ
fQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJ
CQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJ
CSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3tw
b3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzL2ludmFsaWRfdG9rZW4iLAorCQkJCQkJCQkJ
CQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJ
CQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCSJwb3J0IjogInt7
cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJImRldmljZXMiLAorCQkJCQkJCQkJ
CQkJImludmFsaWRfdG9rZW4iCisJCQkJCQkJCQkJCV0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQl9
LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJCQkJ
InByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9s
ZGVyIjogdHJ1ZQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJEZXZpY2UgZm91
bmQiLAorCQkJCQkJCSJpdGVtIjogWworCQkJCQkJCQl7CisJCQkJCQkJCQkibmFtZSI6ICJQcmVw
OiBDcmVhdGUgZGV2aWNlIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJ
CQkJCQkiaWQiOiAiYzRmMTQxMzctNWNlZC00NDliLWE4NzItYjdkNTQxZTJmNmFmIiwKKwkJCQkJ
CQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25z
ZS5qc29uKCk7IiwKKwkJCQkJCQkJCQkJCQkidmFyIHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwK
KwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJkZXZpY2Vf
dG9rZW5cIiwgdG9rZW4pIgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJ
CQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJ
CQkJCSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3Ijog
Int7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNl
cy8iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCQkJ
Imhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJCQkJ
CQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJCQkJ
CQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJImRldmlj
ZXMiLAorCQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQkJXQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJ
CX0sCisJCQkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJCQl9LAorCQkJCQkJCQl7CisJCQkJ
CQkJCQkibmFtZSI6ICJSZWFkIGRldmljZSIsCisJCQkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJ
CQkJeworCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJCQkic2NyaXB0Ijog
eworCQkJCQkJCQkJCQkJImlkIjogIjYxYTg0MGYxLWQzY2QtNGQ3YS1hNTRmLTMwZGExMjY2ZTQ4
ZiIsCisJCQkJCQkJCQkJCQkiZXhlYyI6IFsKKwkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN1Y2Nl
c3NmdWwgR0VUIHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCisJCQkJCQkJCQkJCQkJIiAgICBw
bS5leHBlY3QocG0ucmVzcG9uc2UuY29kZSkudG8uYmUub25lT2YoWzIwMF0pOyIsCisJCQkJCQkJ
CQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCQkJIiIsCisJCQkJCQkJCQkJCQkJInZhciByZXNwb25z
ZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJ
CSJwbS50ZXN0KCdTY2hlbWEgaXMgdmFsaWQnLCBmdW5jdGlvbigpIHsiLAorCQkJCQkJCQkJCQkJ
CSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2ZS5wcm9wZXJ0eShcInRva2VuXCIpOyIsCisJ
CQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwidXNl
cl9hZ2VudFwiKTsiLAorCQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChyZXNwb25zZSkudG8uaGF2
ZS5wcm9wZXJ0eShcImxhc3RfYWN0aXZlXCIpOyIsCisJCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0
KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwibmFtZVwiKTsiLAorCQkJCQkJCQkJCQkJCSJ9
KTsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS50ZXN0KCdEYXRhIGlzIHZh
bGlkJywgZnVuY3Rpb24oKSB7IiwKKwkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9mIHJl
c3BvbnNlLnRva2VuKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgIHBt
LmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UudXNlcl9hZ2VudCkudG8uZXF1YWwoXCJzdHJpbmdcIik7
IiwKKwkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QodHlwZW9mIHJlc3BvbnNlLmxhc3RfYWN0aXZl
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdCh0eXBl
b2YgcmVzcG9uc2UubmFtZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJCQkJCQki
fSk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlw
dCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVx
dWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6
IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19
Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzL3t7ZGV2aWNlX3Rv
a2VufX0iLAorCQkJCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJ
CQkJImhvc3QiOiBbCisJCQkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJCQkJCV0sCisJCQkJ
CQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCQkJInBhdGgiOiBbCisJCQkJCQkJ
CQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCQkJImRl
dmljZXMiLAorCQkJCQkJCQkJCQkJInt7ZGV2aWNlX3Rva2VufX0iCisJCQkJCQkJCQkJCV0KKwkJ
CQkJCQkJCQl9CisJCQkJCQkJCQl9LAorCQkJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCQkJ
fSwKKwkJCQkJCQkJeworCQkJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IFdhaXQgZGV2aWNlIHRp
bWVvdXQiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6
ICIxNzExMjMzNi1iOTYyLTQ3MmQtODZhOC03ODcyZmY5ODc2ZDEiLAorCQkJCQkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJCQkJ
CQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJInNj
cmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI5MTI5MzljYy0xNjg1LTRlMWYtYjBhNi02OTZi
MjY0ODcwY2EiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciB0aW1l
b3V0ID0gcGFyc2VJbnQocG0uZW52aXJvbm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsg
NTAwIiwKKwkJCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlv
biAoKSB7fSwgdGltZW91dCk7IgorCQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0s
CisJCQkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJ
CQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXci
OiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZp
Y2VzLyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJ
CQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJ
CQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkiZGV2
aWNlcyIsCisJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJ
CQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1
YkZvbGRlciI6IHRydWUKKwkJCQkJCX0sCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiVGltZWQg
b3V0IGRldmljZSIsCisJCQkJCQkJIml0ZW0iOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1l
IjogIlByZXA6IENyZWF0ZSBkZXZpY2UiLAorCQkJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQkJ
CXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsK
KwkJCQkJCQkJCQkJCSJpZCI6ICJjOTliOTMxOC0xZTUwLTQ3MDItOWQ4MS01M2Q4N2ZhYTEwODAi
LAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLAorCQkJCQkJCQkJCQkJCSJ2YXIgdG9rZW4gPSByZXNwb25zZS50
b2tlbjsiLAorCQkJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChc
ImRldmljZV90b2tlblwiLCB0b2tlbikiCisJCQkJCQkJCQkJCQldLAorCQkJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJCQl9CisJCQkJCQkJCQkJfQorCQkJCQkJ
CQkJXSwKKwkJCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIs
CisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJ
CSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2Fw
aS9kZXZpY2VzLyIsCisJCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJ
CQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJ
CQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJ
CQkiZGV2aWNlcyIsCisJCQkJCQkJCQkJCQkiIgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQor
CQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJ
CXsKKwkJCQkJCQkJCSJuYW1lIjogIldhaXQgZGV2aWNlIHRpbWVvdXQiLAorCQkJCQkJCQkJImV2
ZW50IjogWworCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICI4OTUxN2RjOS0zMWI0LTQwZTct
ODllNC05OWRkNmU3OTJlNmEiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJ
IiIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
CisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxp
c3RlbiI6ICJwcmVyZXF1ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJ
CSJpZCI6ICJlZDIwYmJmNi00ZjMxLTRkOTEtYTA3Yi03YTBiNGFmY2YxNjEiLAorCQkJCQkJCQkJ
CQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCQkJInZhciB0aW1lb3V0ID0gcGFyc2VJbnQocG0uZW52
aXJvbm1lbnQuZ2V0KFwiZGV2aWNlX3RpbWVvdXRcIikpICsgNTAwIiwKKwkJCQkJCQkJCQkJCQki
IiwKKwkJCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlvbiAoKSB7fSwgdGltZW91dCk7Igor
CQkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKKwkJ
CQkJCQkJCQkJfQorCQkJCQkJCQkJCX0KKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicmVxdWVzdCI6
IHsKKwkJCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCQkJImhlYWRlciI6IFtdLAor
CQkJCQkJCQkJCSJ1cmwiOiB7CisJCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCisJCQkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKKwkJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAorCQkJCQkJCQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAor
CQkJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJCQkiZGV2aWNlcyIsCisJCQkJCQkJCQkJCQki
IgorCQkJCQkJCQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNw
b25zZSI6IFtdCisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJuYW1lIjogIlJlYWQg
ZGV2aWNlIiwKKwkJCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJCQl7CisJCQkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJCQkiaWQi
OiAiN2I3NDk2ZjUtMmZkYy00NzBjLWIzOTQtMmE1YWU3ZDI5ZGEyIiwKKwkJCQkJCQkJCQkJCSJl
eGVjIjogWworCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3VjY2Vzc2Z1bCBHRVQgcmVxdWVzdFwi
LCBmdW5jdGlvbiAoKSB7IiwKKwkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25z
ZS5jb2RlKS50by5lcXVhbCg0MDQpOyIsCisJCQkJCQkJCQkJCQkJIn0pOyIKKwkJCQkJCQkJCQkJ
CV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0K
KwkJCQkJCQkJCQl9LAorCQkJCQkJCQkJCXsKKwkJCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1
ZXN0IiwKKwkJCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkJCSJpZCI6ICIxODA3ZjE1
Mi03ZWY0LTQyNzctOWRiNi0xYmZmNTNkNmNjOGIiLAorCQkJCQkJCQkJCQkJImV4ZWMiOiBbCisJ
CQkJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCQkJCV0sCisJCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQkJCX0KKwkJCQkJCQkJCQl9CisJCQkJCQkJCQldLAorCQkJ
CQkJCQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCQkJIm1ldGhvZCI6ICJHRVQiLAorCQkJCQkJCQkJ
CSJoZWFkZXIiOiBbXSwKKwkJCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJCQkicmF3IjogInt7
cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy97
e2RldmljZV90b2tlbn19IiwKKwkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIs
CisJCQkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJ
CQldLAorCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJCQkJCQkJCSJwYXRoIjog
WworCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJCQkiYXBpIiwKKwkJCQkJ
CQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkJCSJ7e2RldmljZV90b2tlbn19IgorCQkJCQkJ
CQkJCQldCisJCQkJCQkJCQkJfQorCQkJCQkJCQkJfSwKKwkJCQkJCQkJCSJyZXNwb25zZSI6IFtd
CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6
IHt9LAorCQkJCQkJCSJfcG9zdG1hbl9pc1N1YkZvbGRlciI6IHRydWUKKwkJCQkJCX0KKwkJCQkJ
XSwKKwkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCisJCQkJCSJfcG9zdG1hbl9p
c1N1YkZvbGRlciI6IHRydWUKKwkJCQl9LAorCQkJCXsKKwkJCQkJIm5hbWUiOiAicmVhZCBkZXZp
Y2VzIiwKKwkJCQkJIml0ZW0iOiBbCisJCQkJCQl7CisJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3Jl
YXRlIGRldmljZSBBIiwKKwkJCQkJCQkiZXZlbnQiOiBbCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJh
NzgwM2M1Yy1mMzcxLTRhZTAtOGIwOC0xYzA2OTk1YzliNjAiLAorCQkJCQkJCQkJCSJleGVjIjog
WworCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJ
CQkJCQkJCSJ2YXIgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAorCQkJCQkJCQkJCQkiIiwKKwkJ
CQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZGV2aWNlX3Rva2VuX2FcIiwgdG9rZW4pIgorCQkJ
CQkJCQkJCV0sCisJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgorCQkJCQkJCQkJ
fQorCQkJCQkJCQl9CisJCQkJCQkJXSwKKwkJCQkJCQkicmVxdWVzdCI6IHsKKwkJCQkJCQkJIm1l
dGhvZCI6ICJQT1NUIiwKKwkJCQkJCQkJImhlYWRlciI6IFtdLAorCQkJCQkJCQkidXJsIjogewor
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL2RldmljZXMvIiwKKwkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJCQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwK
KwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKKwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJCSJhcGkiLAorCQkJCQkJCQkJCSJkZXZpY2Vz
IiwKKwkJCQkJCQkJCQkiIgorCQkJCQkJCQkJXQorCQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJ
CQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfSwKKwkJCQkJCXsKKwkJCQkJCQkibmFtZSI6ICJQcmVw
OiBDcmVhdGUgZGV2aWNlIEIiLAorCQkJCQkJCSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJCQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlk
IjogIjAyNDUwOTAzLWFlZjktNGVlNi05ZDQ4LTk0YmE5YjVmZDU0YyIsCisJCQkJCQkJCQkJImV4
ZWMiOiBbCisJCQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwK
KwkJCQkJCQkJCQkJInZhciB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCisJCQkJCQkJCQkJCSIi
LAorCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJkZXZpY2VfdG9rZW5fYlwiLCB0b2tlbiki
CisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJ
CQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJyZXF1ZXN0IjogeworCQkJCQkJ
CQkibWV0aG9kIjogIlBPU1QiLAorCQkJCQkJCQkiaGVhZGVyIjogW10sCisJCQkJCQkJCSJ1cmwi
OiB7CisJCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAorCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCisJCQkJCQkJCQkiaG9zdCI6IFsKKwkJCQkJCQkJCQkie3tob3N0fX0iCisJCQkJCQkJ
CQldLAorCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAorCQkJCQkJCQkJInBhdGgiOiBbCisJ
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCisJCQkJCQkJCQkJImFwaSIsCisJCQkJCQkJCQkJImRl
dmljZXMiLAorCQkJCQkJCQkJCSIiCisJCQkJCQkJCQldCisJCQkJCQkJCX0KKwkJCQkJCQl9LAor
CQkJCQkJCSJyZXNwb25zZSI6IFtdCisJCQkJCQl9LAorCQkJCQkJeworCQkJCQkJCSJuYW1lIjog
IlJlYWQgZGV2aWNlcyIsCisJCQkJCQkJImV2ZW50IjogWworCQkJCQkJCQl7CisJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAorCQkJCQkJCQkJInNjcmlwdCI6IHsKKwkJCQkJCQkJCQkiaWQiOiAi
MTYxMjQxN2ItYmVkOC00OGQ1LWE2YTMtMzlkMGQwZmU2OTMyIiwKKwkJCQkJCQkJCQkiZXhlYyI6
IFsKKwkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1bmN0
aW9uICgpIHsiLAorCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25zZS5jb2RlKS50
by5iZS5vbmVPZihbMjAwXSk7IiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAor
CQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCisJCQkJCQkJ
CQkJCSIiLAorCQkJCQkJCQkJCQkicG0udGVzdCgnU2NoZW1hIGlzIHZhbGlkJywgZnVuY3Rpb24o
KSB7IiwKKwkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5iZS5pbnN0YW5jZW9m
KEFycmF5KTsiLAorCQkJCQkJCQkJCQkiICByZXNwb25zZS5mb3JFYWNoKGVsZW1lbnQgPT4geyIs
CisJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChlbGVtZW50KS50by5oYXZlLnByb3BlcnR5KFwidG9r
ZW5cIik7IiwKKwkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJvcGVy
dHkoXCJ1c2VyX2FnZW50XCIpOyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdChlbGVtZW50KS50
by5oYXZlLnByb3BlcnR5KFwibGFzdF9hY3RpdmVcIik7IiwKKwkJCQkJCQkJCQkJIiAgcG0uZXhw
ZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJvcGVydHkoXCJuYW1lXCIpOyIsCisJCQkJCQkJCQkJCSIg
IH0pIiwKKwkJCQkJCQkJCQkJIn0pOyIsCisJCQkJCQkJCQkJCSIiLAorCQkJCQkJCQkJCQkicG0u
dGVzdCgnRGF0YSBpcyB2YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCisJCQkJCQkJCQkJCSIgIHBtLmV4
cGVjdChyZXNwb25zZSkudG8uaGF2ZS5sZW5ndGhPZigyKTsiLAorCQkJCQkJCQkJCQkiICB2YXIg
ZGV2aWNlc19sZWZ0ID0gWyIsCisJCQkJCQkJCQkJCSIgICAgICBwbS5nbG9iYWxzLmdldChcImRl
dmljZV90b2tlbl9hXCIpLCAiLAorCQkJCQkJCQkJCQkiICAgICAgcG0uZ2xvYmFscy5nZXQoXCJk
ZXZpY2VfdG9rZW5fYlwiKSIsCisJCQkJCQkJCQkJCSIgICAgXSIsCisJCQkJCQkJCQkJCSIgIHJl
c3BvbnNlLmZvckVhY2goZWxlbWVudCA9PiB7IiwKKwkJCQkJCQkJCQkJIiAgICAgIHBtLmV4cGVj
dCh0eXBlb2YgZWxlbWVudC50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKKwkJCQkJCQkJ
CQkJIiAgICAgIHBtLmV4cGVjdCh0eXBlb2YgZWxlbWVudC51c2VyX2FnZW50KS50by5lcXVhbChc
InN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAgcG0uZXhwZWN0KHR5cGVvZiBlbGVtZW50
Lmxhc3RfYWN0aXZlKS50by5lcXVhbChcInN0cmluZ1wiKTsiLAorCQkJCQkJCQkJCQkiICAgICAg
cG0uZXhwZWN0KHR5cGVvZiBlbGVtZW50Lm5hbWUpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCisJ
CQkJCQkJCQkJCSIgICAgICBwbS5leHBlY3QoZGV2aWNlc19sZWZ0KS50by5pbmNsdWRlKGVsZW1l
bnQudG9rZW4pOyIsCisJCQkJCQkJCQkJCSIgICAgICBkZXZpY2VzX2xlZnQuc3BsaWNlKGRldmlj
ZXNfbGVmdC5pbmRleE9mKGVsZW1lbnQudG9rZW4pLCAxKTsiLAorCQkJCQkJCQkJCQkiICB9KSIs
CisJCQkJCQkJCQkJCSJ9KTsiCisJCQkJCQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9CisJCQkJCQkJCX0KKwkJCQkJCQldLAorCQkJCQkJCSJy
ZXF1ZXN0IjogeworCQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCisJCQkJCQkJCSJoZWFkZXIiOiBb
XSwKKwkJCQkJCQkJInVybCI6IHsKKwkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3to
b3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCisJCQkJCQkJCQkicHJv
dG9jb2wiOiAie3twcm90b2NvbH19IiwKKwkJCQkJCQkJCSJob3N0IjogWworCQkJCQkJCQkJCSJ7
e2hvc3R9fSIKKwkJCQkJCQkJCV0sCisJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCisJCQkJ
CQkJCQkicGF0aCI6IFsKKwkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKKwkJCQkJCQkJCQkiYXBp
IiwKKwkJCQkJCQkJCQkiZGV2aWNlcyIsCisJCQkJCQkJCQkJIiIKKwkJCQkJCQkJCV0KKwkJCQkJ
CQkJfQorCQkJCQkJCX0sCisJCQkJCQkJInJlc3BvbnNlIjogW10KKwkJCQkJCX0sCisJCQkJCQl7
CisJCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IFdhaXQgZGV2aWNlIHRpbWVvdXQiLAorCQkJCQkJ
CSJldmVudCI6IFsKKwkJCQkJCQkJeworCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKKwkJCQkJ
CQkJCSJzY3JpcHQiOiB7CisJCQkJCQkJCQkJImlkIjogIjliN2ZmNjIzLThhYWMtNDZkMS05YzU2
LTFjZWI4YWNjMmRlNiIsCisJCQkJCQkJCQkJImV4ZWMiOiBbCisJCQkJCQkJCQkJCSIiCisJCQkJ
CQkJCQkJXSwKKwkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCisJCQkJCQkJCQl9
CisJCQkJCQkJCX0sCisJCQkJCQkJCXsKKwkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIs
CisJCQkJCQkJCQkic2NyaXB0IjogeworCQkJCQkJCQkJCSJpZCI6ICJjMGZiZjc0Mi1mNzVlLTRm
M2ItYTU3Ni03NWM5ZDVlMGY3MmQiLAorCQkJCQkJCQkJCSJleGVjIjogWworCQkJCQkJCQkJCQki
dmFyIHRpbWVvdXQgPSBwYXJzZUludChwbS5lbnZpcm9ubWVudC5nZXQoXCJkZXZpY2VfdGltZW91
dFwiKSkgKyA1MDAiLAorCQkJCQkJCQkJCQkiIiwKKwkJCQkJCQkJCQkJInNldFRpbWVvdXQoZnVu
Y3Rpb24gKCkge30sIHRpbWVvdXQpOyIKKwkJCQkJCQkJCQldLAorCQkJCQkJCQkJCSJ0eXBlIjog
InRleHQvamF2YXNjcmlwdCIKKwkJCQkJCQkJCX0KKwkJCQkJCQkJfQorCQkJCQkJCV0sCisJCQkJ
CQkJInJlcXVlc3QiOiB7CisJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKKwkJCQkJCQkJImhlYWRl
ciI6IFtdLAorCQkJCQkJCQkidXJsIjogeworCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKKwkJCQkJCQkJ
CSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAorCQkJCQkJCQkJImhvc3QiOiBbCisJCQkJCQkJ
CQkJInt7aG9zdH19IgorCQkJCQkJCQkJXSwKKwkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwK
KwkJCQkJCQkJCSJwYXRoIjogWworCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAorCQkJCQkJCQkJ
CSJhcGkiLAorCQkJCQkJCQkJCSJkZXZpY2VzIiwKKwkJCQkJCQkJCQkiIgorCQkJCQkJCQkJXQor
CQkJCQkJCQl9CisJCQkJCQkJfSwKKwkJCQkJCQkicmVzcG9uc2UiOiBbXQorCQkJCQkJfQorCQkJ
CQldLAorCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKKwkJCQkJIl9wb3N0bWFu
X2lzU3ViRm9sZGVyIjogdHJ1ZQorCQkJCX0KKwkJCV0sCisJCQkicHJvdG9jb2xQcm9maWxlQmVo
YXZpb3IiOiB7fQorCQl9CisJXSwKKwkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fQorfQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Rlc3RpbmcvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdl
NmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3Rlc3RpbmcvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvX19pbml0X18ucHkKQEAgLTEg
KzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhp
cyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3Rlc3RpbmcvZGV2aWNlc19tYW5hZ2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvZGV2aWNlc19tYW5hZ2Vy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwMzU3MmUyNTkwMzk3NzdhMmE2M2NkNTU3NGRkNzIwZTA2NDBlZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9kZXZpY2VzX21hbmFnZXIucHkKQEAgLTAsMCArMSwx
MTcgQEAKK2ltcG9ydCB0aW1lCitpbXBvcnQgdXVpZAorCitmcm9tIHRocmVhZGluZyBpbXBvcnQg
VGltZXIKKworZnJvbSAuLmRhdGEuZGV2aWNlIGltcG9ydCBEZXZpY2UKK2Zyb20gLi50ZXN0aW5n
LmV2ZW50X2Rpc3BhdGNoZXIgaW1wb3J0IERFVklDRVMsIERFVklDRV9BRERFRF9FVkVOVCwgREVW
SUNFX1JFTU9WRURfRVZFTlQKK2Zyb20gLi51dGlscy51c2VyX2FnZW50X3BhcnNlciBpbXBvcnQg
cGFyc2VfdXNlcl9hZ2VudAorZnJvbSAuLnV0aWxzLnNlcmlhbGl6ZXIgaW1wb3J0IHNlcmlhbGl6
ZV9kZXZpY2UKK2Zyb20gLi5kYXRhLmV4Y2VwdGlvbnMubm90X2ZvdW5kX2V4Y2VwdGlvbiBpbXBv
cnQgTm90Rm91bmRFeGNlcHRpb24KKworCitERVZJQ0VfVElNRU9VVCA9IDYwMDAwICAjIDYwc2Vj
CitSRUNPTk5FQ1RfVElNRSA9IDUwMDAgICAjIDVzZWMKKworY2xhc3MgRGV2aWNlc01hbmFnZXIo
b2JqZWN0KToKKyAgICBkZWYgaW5pdGlhbGl6ZShzZWxmLCBldmVudF9kaXNwYXRjaGVyKToKKyAg
ICAgICAgc2VsZi5kZXZpY2VzID0ge30KKyAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlciA9
IGV2ZW50X2Rpc3BhdGNoZXIKKyAgICAgICAgc2VsZi5fdGltZXIgPSBOb25lCisKKyAgICBkZWYg
Y3JlYXRlX2RldmljZShzZWxmLCB1c2VyX2FnZW50KToKKyAgICAgICAgYnJvd3NlciA9IHBhcnNl
X3VzZXJfYWdlbnQodXNlcl9hZ2VudCkKKyAgICAgICAgbmFtZSA9ICJ7fSB7fSIuZm9ybWF0KGJy
b3dzZXJbIm5hbWUiXSwgYnJvd3NlclsidmVyc2lvbiJdKQorICAgICAgICB0b2tlbiA9IHN0cih1
dWlkLnV1aWQxKCkpCisgICAgICAgIGxhc3RfYWN0aXZlID0gaW50KHRpbWUudGltZSgpICogMTAw
MCkKKworICAgICAgICBkZXZpY2UgPSBEZXZpY2UodG9rZW4sIHVzZXJfYWdlbnQsIG5hbWUsIGxh
c3RfYWN0aXZlKQorCisgICAgICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuZGlzcGF0Y2hfZXZl
bnQoCisgICAgICAgICAgICBERVZJQ0VTLAorICAgICAgICAgICAgREVWSUNFX0FEREVEX0VWRU5U
LAorICAgICAgICAgICAgc2VyaWFsaXplX2RldmljZShkZXZpY2UpKQorICAgICAgICBzZWxmLmFk
ZF90b19jYWNoZShkZXZpY2UpCisKKyAgICAgICAgc2VsZi5fc2V0X3RpbWVyKERFVklDRV9USU1F
T1VUKQorCisgICAgICAgIHJldHVybiBkZXZpY2UKKworICAgIGRlZiByZWFkX2RldmljZShzZWxm
LCB0b2tlbik6CisgICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxmLmRldmljZXM6CisgICAgICAg
ICAgICByYWlzZSBOb3RGb3VuZEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgZGV2aWNlICd7fSci
LmZvcm1hdCh0b2tlbikpCisgICAgICAgIHJldHVybiBzZWxmLmRldmljZXNbdG9rZW5dCisKKyAg
ICBkZWYgcmVhZF9kZXZpY2VzKHNlbGYpOgorICAgICAgICBkZXZpY2VzID0gW10KKyAgICAgICAg
Zm9yIGtleSBpbiBzZWxmLmRldmljZXM6CisgICAgICAgICAgICBkZXZpY2VzLmFwcGVuZChzZWxm
LmRldmljZXNba2V5XSkKKworICAgICAgICByZXR1cm4gZGV2aWNlcworCisgICAgZGVmIHVwZGF0
ZV9kZXZpY2Uoc2VsZiwgZGV2aWNlKToKKyAgICAgICAgaWYgZGV2aWNlLnRva2VuIG5vdCBpbiBz
ZWxmLmRldmljZXM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5kZXZpY2VzW2Rl
dmljZS50b2tlbl0gPSBkZXZpY2UKKworICAgIGRlZiBkZWxldGVfZGV2aWNlKHNlbGYsIHRva2Vu
KToKKyAgICAgICAgaWYgdG9rZW4gbm90IGluIHNlbGYuZGV2aWNlczoKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBkZXZpY2UgPSBzZWxmLmRldmljZXNbdG9rZW5dCisgICAgICAgIGRlbCBz
ZWxmLmRldmljZXNbdG9rZW5dCisgICAgICAgIHNlbGYuX2V2ZW50X2Rpc3BhdGNoZXIuZGlzcGF0
Y2hfZXZlbnQoCisgICAgICAgICAgICBERVZJQ0VTLAorICAgICAgICAgICAgREVWSUNFX1JFTU9W
RURfRVZFTlQsCisgICAgICAgICAgICBzZXJpYWxpemVfZGV2aWNlKGRldmljZSkpCisKKyAgICBk
ZWYgcmVmcmVzaF9kZXZpY2Uoc2VsZiwgdG9rZW4pOgorICAgICAgICBpZiB0b2tlbiBub3QgaW4g
c2VsZi5kZXZpY2VzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGRldmljZSA9IHNlbGYu
ZGV2aWNlc1t0b2tlbl0KKyAgICAgICAgZGV2aWNlLmxhc3RfYWN0aXZlID0gaW50KHRpbWUudGlt
ZSgpICogMTAwMCkKKyAgICAgICAgc2VsZi51cGRhdGVfZGV2aWNlKGRldmljZSkKKworICAgIGRl
ZiBwb3N0X2V2ZW50KHNlbGYsIGhhbmRsZSwgZXZlbnRfdHlwZSwgZGF0YSk6CisgICAgICAgIGlm
IGV2ZW50X3R5cGUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9l
dmVudF9kaXNwYXRjaGVyLmRpc3BhdGNoX2V2ZW50KGhhbmRsZSwgZXZlbnRfdHlwZSwgZGF0YSkK
KworICAgIGRlZiBwb3N0X2dsb2JhbF9ldmVudChzZWxmLCBldmVudF90eXBlLCBkYXRhKToKKyAg
ICAgICAgc2VsZi5wb3N0X2V2ZW50KERFVklDRVMsIGV2ZW50X3R5cGUsIGRhdGEpCisKKyAgICBk
ZWYgX3NldF90aW1lcihzZWxmLCB0aW1lb3V0KToKKyAgICAgICAgaWYgc2VsZi5fdGltZXIgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBkZWYgaGFuZGxlX3RpbWVv
dXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLl90aW1lciA9IE5vbmUKKyAgICAgICAgICAgIG5v
dyA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCisgICAgICAgICAgICB0aW1lZF9vdXRfZGV2aWNl
cyA9IFtdCisgICAgICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZi5kZXZpY2VzOgorICAgICAgICAg
ICAgICAgIGRldmljZSA9IHNlbGYuZGV2aWNlc1t0b2tlbl0KKyAgICAgICAgICAgICAgICBpZiBu
b3cgLSBkZXZpY2UubGFzdF9hY3RpdmUgPCBERVZJQ0VfVElNRU9VVDoKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICB0aW1lZF9vdXRfZGV2aWNlcy5hcHBlbmQo
dG9rZW4pCisKKyAgICAgICAgICAgIGZvciB0b2tlbiBpbiB0aW1lZF9vdXRfZGV2aWNlczoKKyAg
ICAgICAgICAgICAgICBzZWxmLmRlbGV0ZV9kZXZpY2UodG9rZW4pCisKKyAgICAgICAgICAgIG9s
ZGVzdF9hY3RpdmVfdGltZSA9IE5vbmUKKyAgICAgICAgICAgIGZvciB0b2tlbiBpbiBzZWxmLmRl
dmljZXM6CisgICAgICAgICAgICAgICAgZGV2aWNlID0gc2VsZi5kZXZpY2VzW3Rva2VuXQorICAg
ICAgICAgICAgICAgIGlmIG9sZGVzdF9hY3RpdmVfdGltZSBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICBvbGRlc3RfYWN0aXZlX3RpbWUgPSBkZXZpY2UubGFzdF9hY3RpdmUKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBvbGRlc3RfYWN0aXZlX3RpbWUg
PiBkZXZpY2UubGFzdF9hY3RpdmU6CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRlc3RfYWN0
aXZlX3RpbWUgPSBkZXZpY2UubGFzdF9hY3RpdmUKKyAgICAgICAgICAgIGlmIG9sZGVzdF9hY3Rp
dmVfdGltZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLl9zZXRfdGltZXIobm93
IC0gb2xkZXN0X2FjdGl2ZV90aW1lKQorCisgICAgICAgIHNlbGYuX3RpbWVyID0gVGltZXIodGlt
ZW91dCAvIDEwMDAuMCwgaGFuZGxlX3RpbWVvdXQsIFtzZWxmXSkKKyAgICAgICAgc2VsZi5fdGlt
ZXIuc3RhcnQoKQorCisgICAgZGVmIGFkZF90b19jYWNoZShzZWxmLCBkZXZpY2UpOgorICAgICAg
ICBpZiBkZXZpY2UudG9rZW4gaW4gc2VsZi5kZXZpY2VzOgorICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgc2VsZi5kZXZpY2VzW2RldmljZS50b2tlbl0gPSBkZXZpY2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90
ZXN0aW5nL2V2ZW50X2Rpc3BhdGNoZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9ldmVudF9kaXNwYXRjaGVyLnB5Cmlu
ZGV4IGJiNTc4ZDFjNjgzOGQyMjNiYmMxZDI1NDhhNmU1Y2VmMGE5YmZlNjIuLjA5MTY1Mzk2YWU3
NWIxYzdiZTA5NWNhZDMyZWQ1MGFkYTVkOTMxOTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL2V2ZW50X2Rp
c3BhdGNoZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvZXZlbnRfZGlzcGF0Y2hlci5weQpAQCAtMSwzOSArMSwx
NDYgQEAKK2ltcG9ydCB1dWlkCitpbXBvcnQgdGltZQorZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRp
bWVyCisKKwogU1RBVFVTX0VWRU5UID0gInN0YXR1cyIKIFJFU1VNRV9FVkVOVCA9ICJyZXN1bWUi
CiBURVNUX0NPTVBMRVRFRF9FVkVOVCA9ICJ0ZXN0X2NvbXBsZXRlZCIKIAorREVWSUNFUyA9ICJk
ZXZpY2VzIgorREVWSUNFX0FEREVEX0VWRU5UID0gImRldmljZV9hZGRlZCIKK0RFVklDRV9SRU1P
VkVEX0VWRU5UID0gImRldmljZV9yZW1vdmVkIgogCiBjbGFzcyBFdmVudERpc3BhdGNoZXIob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NsaWVudHMgPSB7
fQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBldmVudF9jYWNoZV9kdXJhdGlvbik6CisgICAgICAg
IHNlbGYuX2xpc3RlbmVycyA9IHt9CisgICAgICAgIHNlbGYuX2V2ZW50cyA9IHt9CisgICAgICAg
IHNlbGYuX2N1cnJlbnRfZXZlbnRzID0ge30KKyAgICAgICAgc2VsZi5fY2FjaGVfZHVyYXRpb24g
PSBldmVudF9jYWNoZV9kdXJhdGlvbgorICAgICAgICBzZWxmLl9jYWNoZV90aW1lb3V0ID0gTm9u
ZQorCisgICAgZGVmIGFkZF9ldmVudF9saXN0ZW5lcihzZWxmLCBsaXN0ZW5lciwgbGFzdF9ldmVu
dF9udW1iZXI9Tm9uZSk6CisgICAgICAgIHRva2VuID0gbGlzdGVuZXIuZGlzcGF0Y2hlcl90b2tl
bgogCi0gICAgZGVmIGFkZF9zZXNzaW9uX2NsaWVudChzZWxmLCBjbGllbnQpOgotICAgICAgICB0
b2tlbiA9IGNsaWVudC5zZXNzaW9uX3Rva2VuCi0gICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxm
Ll9jbGllbnRzOgotICAgICAgICAgICAgc2VsZi5fY2xpZW50c1t0b2tlbl0gPSBbXQotICAgICAg
ICBzZWxmLl9jbGllbnRzW3Rva2VuXS5hcHBlbmQoY2xpZW50KQorICAgICAgICBpZiBsYXN0X2V2
ZW50X251bWJlciBpcyBub3QgTm9uZSBcCisgICAgICAgICAgICBhbmQgdG9rZW4gaW4gc2VsZi5f
Y3VycmVudF9ldmVudHMgXAorICAgICAgICAgICAgICAgIGFuZCBzZWxmLl9jdXJyZW50X2V2ZW50
c1t0b2tlbl0gPiBsYXN0X2V2ZW50X251bWJlcjoKKyAgICAgICAgICAgIGRpZmZfZXZlbnRzID0g
c2VsZi5fZ2V0X2RpZmZfZXZlbnRzKHRva2VuLCBsYXN0X2V2ZW50X251bWJlcikKKyAgICAgICAg
ICAgIGlmIGxlbihkaWZmX2V2ZW50cykgPiAwOgorICAgICAgICAgICAgICAgIGxpc3RlbmVyLnNl
bmRfbWVzc2FnZShkaWZmX2V2ZW50cykKKyAgICAgICAgICAgICAgICByZXR1cm4KIAotICAgIGRl
ZiByZW1vdmVfc2Vzc2lvbl9jbGllbnQoc2VsZiwgY2xpZW50X3RvX2RlbGV0ZSk6Ci0gICAgICAg
IGlmIGNsaWVudF90b19kZWxldGUgaXMgTm9uZToKKyAgICAgICAgaWYgdG9rZW4gbm90IGluIHNl
bGYuX2xpc3RlbmVyczoKKyAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyc1t0b2tlbl0gPSBbXQor
ICAgICAgICBzZWxmLl9saXN0ZW5lcnNbdG9rZW5dLmFwcGVuZChsaXN0ZW5lcikKKyAgICAgICAg
bGlzdGVuZXIudG9rZW4gPSBzdHIodXVpZC51dWlkMSgpKQorICAgICAgICByZXR1cm4gbGlzdGVu
ZXIudG9rZW4KKworICAgIGRlZiByZW1vdmVfZXZlbnRfbGlzdGVuZXIoc2VsZiwgbGlzdGVuZXJf
dG9rZW4pOgorICAgICAgICBpZiBsaXN0ZW5lcl90b2tlbiBpcyBOb25lOgogICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgIHRva2VuID0gY2xpZW50X3RvX2RlbGV0ZS5zZXNzaW9uX3Rva2VuCi0g
ICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxmLl9jbGllbnRzOgorCisgICAgICAgIGZvciBkaXNw
YXRjaGVyX3Rva2VuIGluIHNlbGYuX2xpc3RlbmVyczoKKyAgICAgICAgICAgIGZvciBsaXN0ZW5l
ciBpbiBzZWxmLl9saXN0ZW5lcnNbZGlzcGF0Y2hlcl90b2tlbl06CisgICAgICAgICAgICAgICAg
aWYgbGlzdGVuZXIudG9rZW4gPT0gbGlzdGVuZXJfdG9rZW46CisgICAgICAgICAgICAgICAgICAg
IHNlbGYuX2xpc3RlbmVyc1tkaXNwYXRjaGVyX3Rva2VuXS5yZW1vdmUobGlzdGVuZXIpCisgICAg
ICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmLl9saXN0ZW5lcnNbZGlzcGF0Y2hlcl90b2tlbl0p
ID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgc2VsZi5fbGlzdGVuZXJzW2Rpc3Bh
dGNoZXJfdG9rZW5dCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgZGVmIGRpc3Bh
dGNoX2V2ZW50KHNlbGYsIGRpc3BhdGNoZXJfdG9rZW4sIGV2ZW50X3R5cGUsIGRhdGE9Tm9uZSk6
CisgICAgICAgIGlmIGRpc3BhdGNoZXJfdG9rZW4gbm90IGluIHNlbGYuX2N1cnJlbnRfZXZlbnRz
OgorICAgICAgICAgICAgc2VsZi5fY3VycmVudF9ldmVudHNbZGlzcGF0Y2hlcl90b2tlbl0gPSAt
MQorCisgICAgICAgIGlmIGRpc3BhdGNoZXJfdG9rZW4gbm90IGluIHNlbGYuX2V2ZW50czoKKyAg
ICAgICAgICAgIHNlbGYuX2V2ZW50c1tkaXNwYXRjaGVyX3Rva2VuXSA9IFtdCisKKyAgICAgICAg
c2VsZi5fYWRkX3RvX2NhY2hlKGRpc3BhdGNoZXJfdG9rZW4sIGV2ZW50X3R5cGUsIGRhdGEpCisg
ICAgICAgIHNlbGYuX3NldF9jYWNoZV90aW1lcigpCisKKyAgICAgICAgaWYgZGlzcGF0Y2hlcl90
b2tlbiBub3QgaW4gc2VsZi5fbGlzdGVuZXJzOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAg
ICAgZm9yIGNsaWVudCBpbiBzZWxmLl9jbGllbnRzW3Rva2VuXToKLSAgICAgICAgICAgIGlmIGNs
aWVudC5zZXNzaW9uX3Rva2VuID09IGNsaWVudF90b19kZWxldGUuc2Vzc2lvbl90b2tlbjoKLSAg
ICAgICAgICAgICAgICBzZWxmLl9jbGllbnRzLnJlbW92ZShjbGllbnQpCi0gICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgaWYgbGVuKHNlbGYuX2NsaWVudHNbdG9rZW5dKSA9PSAwOgotICAg
ICAgICAgICAgZGVsIHNlbGYuX2NsaWVudHNbdG9rZW5dCisgICAgICAgIGV2ZW50ID0geworICAg
ICAgICAgICAgInR5cGUiOiBldmVudF90eXBlLAorICAgICAgICAgICAgImRhdGEiOiBkYXRhLAor
ICAgICAgICAgICAgIm51bWJlciI6IHNlbGYuX2N1cnJlbnRfZXZlbnRzW2Rpc3BhdGNoZXJfdG9r
ZW5dCisgICAgICAgIH0KKworICAgICAgICBmb3IgbGlzdGVuZXIgaW4gc2VsZi5fbGlzdGVuZXJz
W2Rpc3BhdGNoZXJfdG9rZW5dOgorICAgICAgICAgICAgbGlzdGVuZXIuc2VuZF9tZXNzYWdlKFtl
dmVudF0pCisKKyAgICBkZWYgX2dldF9kaWZmX2V2ZW50cyhzZWxmLCBkaXNwYXRjaGVyX3Rva2Vu
LCBsYXN0X2V2ZW50X251bWJlcik6CisgICAgICAgIHRva2VuID0gZGlzcGF0Y2hlcl90b2tlbgor
ICAgICAgICBkaWZmX2V2ZW50cyA9IFtdCisgICAgICAgIGlmIHRva2VuIG5vdCBpbiBzZWxmLl9l
dmVudHM6CisgICAgICAgICAgICByZXR1cm4gZGlmZl9ldmVudHMKKyAgICAgICAgZm9yIGV2ZW50
IGluIHNlbGYuX2V2ZW50c1t0b2tlbl06CisgICAgICAgICAgICBpZiBldmVudFsibnVtYmVyIl0g
PD0gbGFzdF9ldmVudF9udW1iZXI6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgIGRpZmZfZXZlbnRzLmFwcGVuZCh7CisgICAgICAgICAgICAgICAgInR5cGUiOiBldmVudFsi
dHlwZSJdLAorICAgICAgICAgICAgICAgICJkYXRhIjogZXZlbnRbImRhdGEiXSwKKyAgICAgICAg
ICAgICAgICAibnVtYmVyIjogZXZlbnRbIm51bWJlciJdCisgICAgICAgICAgICB9KQorICAgICAg
ICByZXR1cm4gZGlmZl9ldmVudHMKKworICAgIGRlZiBfc2V0X2NhY2hlX3RpbWVyKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLl9jYWNoZV90aW1lb3V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
cmV0dXJuCiAKLSAgICBkZWYgZGlzcGF0Y2hfZXZlbnQoc2VsZiwgdG9rZW4sIGV2ZW50X3R5cGUs
IGRhdGEpOgotICAgICAgICBpZiB0b2tlbiBub3QgaW4gc2VsZi5fY2xpZW50czoKKyAgICAgICAg
ZXZlbnRzID0gc2VsZi5fcmVhZF9jYWNoZWRfZXZlbnRzKCkKKyAgICAgICAgaWYgbGVuKGV2ZW50
cykgPT0gMDoKICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIG5leHRfZXZlbnQgPSBldmVu
dHNbMF0KKyAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50czoKKyAgICAgICAgICAgIGlmIG5leHRf
ZXZlbnRbImV4cGlyYXRpb25fZGF0ZSJdID4gZXZlbnRbImV4cGlyYXRpb25fZGF0ZSJdOgorICAg
ICAgICAgICAgICAgIG5leHRfZXZlbnQgPSBldmVudAorCisgICAgICAgIHRpbWVvdXQgPSBuZXh0
X2V2ZW50WyJleHBpcmF0aW9uX2RhdGUiXSAvIDEwMDAuMCAtIHRpbWUudGltZSgpCisgICAgICAg
IGlmIHRpbWVvdXQgPCAwOgorICAgICAgICAgICAgdGltZW91dCA9IDAKKworICAgICAgICBkZWYg
aGFuZGxlX3RpbWVvdXQoc2VsZik6CisgICAgICAgICAgICBzZWxmLl9kZWxldGVfZXhwaXJlZF9l
dmVudHMoKQorICAgICAgICAgICAgc2VsZi5fY2FjaGVfdGltZW91dCA9IE5vbmUKKyAgICAgICAg
ICAgIHNlbGYuX3NldF9jYWNoZV90aW1lcigpCisKKyAgICAgICAgc2VsZi5fY2FjaGVfdGltZW91
dCA9IFRpbWVyKHRpbWVvdXQsIGhhbmRsZV90aW1lb3V0LCBbc2VsZl0pCisgICAgICAgIHNlbGYu
X2NhY2hlX3RpbWVvdXQuc3RhcnQoKQorCisgICAgZGVmIF9kZWxldGVfZXhwaXJlZF9ldmVudHMo
c2VsZik6CisgICAgICAgIGV2ZW50cyA9IHNlbGYuX3JlYWRfY2FjaGVkX2V2ZW50cygpCisgICAg
ICAgIG5vdyA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCisKKyAgICAgICAgZm9yIGV2ZW50IGlu
IGV2ZW50czoKKyAgICAgICAgICAgIGlmIGV2ZW50WyJleHBpcmF0aW9uX2RhdGUiXSA8IG5vdzoK
KyAgICAgICAgICAgICAgICBzZWxmLl9yZW1vdmVfZnJvbV9jYWNoZShldmVudCkKKworICAgIGRl
ZiBfYWRkX3RvX2NhY2hlKHNlbGYsIGRpc3BhdGNoZXJfdG9rZW4sIGV2ZW50X3R5cGUsIGRhdGEp
OgorICAgICAgICBzZWxmLl9jdXJyZW50X2V2ZW50c1tkaXNwYXRjaGVyX3Rva2VuXSArPSAxCisg
ICAgICAgIGN1cnJlbnRfZXZlbnRfbnVtYmVyID0gc2VsZi5fY3VycmVudF9ldmVudHNbZGlzcGF0
Y2hlcl90b2tlbl0KICAgICAgICAgZXZlbnQgPSB7CiAgICAgICAgICAgICAidHlwZSI6IGV2ZW50
X3R5cGUsCi0gICAgICAgICAgICAiZGF0YSI6IGRhdGEKKyAgICAgICAgICAgICJkYXRhIjogZGF0
YSwKKyAgICAgICAgICAgICJudW1iZXIiOiBjdXJyZW50X2V2ZW50X251bWJlciwKKyAgICAgICAg
ICAgICJleHBpcmF0aW9uX2RhdGUiOiBpbnQodGltZS50aW1lKCkgKiAxMDAwKSArIHNlbGYuX2Nh
Y2hlX2R1cmF0aW9uCiAgICAgICAgIH0KKyAgICAgICAgc2VsZi5fZXZlbnRzW2Rpc3BhdGNoZXJf
dG9rZW5dLmFwcGVuZChldmVudCkKKworICAgIGRlZiBfcmVtb3ZlX2Zyb21fY2FjaGUoc2VsZiwg
ZXZlbnQpOgorICAgICAgICBmb3IgZGlzcGF0Y2hlcl90b2tlbiBpbiBzZWxmLl9ldmVudHM6Cisg
ICAgICAgICAgICBmb3IgY2FjaGVkX2V2ZW50IGluIHNlbGYuX2V2ZW50c1tkaXNwYXRjaGVyX3Rv
a2VuXToKKyAgICAgICAgICAgICAgICBpZiBjYWNoZWRfZXZlbnQgaXMgbm90IGV2ZW50OgorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHNlbGYuX2V2ZW50c1tk
aXNwYXRjaGVyX3Rva2VuXS5yZW1vdmUoY2FjaGVkX2V2ZW50KQorICAgICAgICAgICAgICAgIGlm
IGxlbihzZWxmLl9ldmVudHNbZGlzcGF0Y2hlcl90b2tlbl0pID09IDA6CisgICAgICAgICAgICAg
ICAgICAgIGRlbCBzZWxmLl9ldmVudHNbZGlzcGF0Y2hlcl90b2tlbl0KKyAgICAgICAgICAgICAg
ICByZXR1cm4KIAotICAgICAgICBmb3IgY2xpZW50IGluIHNlbGYuX2NsaWVudHNbdG9rZW5dOgot
ICAgICAgICAgICAgY2xpZW50LnNlbmRfbWVzc2FnZShldmVudCkKKyAgICBkZWYgX3JlYWRfY2Fj
aGVkX2V2ZW50cyhzZWxmKToKKyAgICAgICAgZXZlbnRzID0gW10KKyAgICAgICAgZm9yIGRpc3Bh
dGNoZXJfdG9rZW4gaW4gc2VsZi5fZXZlbnRzOgorICAgICAgICAgICAgZXZlbnRzID0gZXZlbnRz
ICsgc2VsZi5fZXZlbnRzW2Rpc3BhdGNoZXJfdG9rZW5dCisgICAgICAgIHJldHVybiBldmVudHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS90ZXN0aW5nL3Jlc3VsdHNfbWFuYWdlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Jlc3VsdHNfbWFu
YWdlci5weQppbmRleCBlZWEzYWE5OTAzZjRlMjU5YzA0MmIwOTU2N2RmNDUwZDk3NTgyMmM0Li45
NzhjMTJkNzVmOTg3MjFiNjIxMmNkNDAwN2E1NzY1Y2NjMjE0YTk0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGlu
Zy9yZXN1bHRzX21hbmFnZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvcmVzdWx0c19tYW5hZ2VyLnB5CkBAIC01
LDYgKzUsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IGhhc2hsaWIKIGltcG9ydCB6aXBmaWxlCiBp
bXBvcnQgdGltZQorZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRpbWVyCiAKIGZyb20gLi51dGlscy51
c2VyX2FnZW50X3BhcnNlciBpbXBvcnQgcGFyc2VfdXNlcl9hZ2VudCwgYWJicmV2aWF0ZV9icm93
c2VyX25hbWUKIGZyb20gLi51dGlscy5zZXJpYWxpemVyIGltcG9ydCBzZXJpYWxpemVfc2Vzc2lv
bgpAQCAtMTcsNiArMTgsOSBAQCBmcm9tIC53cHRfcmVwb3J0IGltcG9ydCBnZW5lcmF0ZV9yZXBv
cnQsIGdlbmVyYXRlX211bHRpX3JlcG9ydAogZnJvbSAuLmRhdGEuc2Vzc2lvbiBpbXBvcnQgQ09N
UExFVEVECiAKIFdBVkVfU1JDX0RJUiA9ICIuL3Rvb2xzL3dhdmUiCitSRVNVTFRTX0ZJTEVfUkVH
RVggPSByIl5cd1x3XGRcZFxkP1wuanNvbiQiCitSRVNVTFRTX0ZJTEVfUEFUVEVSTiA9IHJlLmNv
bXBpbGUoUkVTVUxUU19GSUxFX1JFR0VYKQorU0VTU0lPTl9SRVNVTFRTX1RJTUVPVVQgPSA2MCoz
MCAgIyAzMG1pbgogCiAKIGNsYXNzIFJlc3VsdHNNYW5hZ2VyKG9iamVjdCk6CkBAIC0yNSwxNyAr
MjksMTggQEAgY2xhc3MgUmVzdWx0c01hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmVzdWx0c19k
aXJlY3RvcnlfcGF0aCwKICAgICAgICAgc2Vzc2lvbnNfbWFuYWdlciwKICAgICAgICAgdGVzdHNf
bWFuYWdlciwKLSAgICAgICAgaW1wb3J0X2VuYWJsZWQsCisgICAgICAgIGltcG9ydF9yZXN1bHRz
X2VuYWJsZWQsCiAgICAgICAgIHJlcG9ydHNfZW5hYmxlZCwKICAgICAgICAgcGVyc2lzdGluZ19p
bnRlcnZhbAogICAgICk6CiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5X3BhdGggPSBy
ZXN1bHRzX2RpcmVjdG9yeV9wYXRoCiAgICAgICAgIHNlbGYuX3Nlc3Npb25zX21hbmFnZXIgPSBz
ZXNzaW9uc19tYW5hZ2VyCiAgICAgICAgIHNlbGYuX3Rlc3RzX21hbmFnZXIgPSB0ZXN0c19tYW5h
Z2VyCi0gICAgICAgIHNlbGYuX2ltcG9ydF9lbmFibGVkID0gaW1wb3J0X2VuYWJsZWQKKyAgICAg
ICAgc2VsZi5faW1wb3J0X3Jlc3VsdHNfZW5hYmxlZCA9IGltcG9ydF9yZXN1bHRzX2VuYWJsZWQK
ICAgICAgICAgc2VsZi5fcmVwb3J0c19lbmFibGVkID0gcmVwb3J0c19lbmFibGVkCiAgICAgICAg
IHNlbGYuX3Jlc3VsdHMgPSB7fQogICAgICAgICBzZWxmLl9wZXJzaXN0aW5nX2ludGVydmFsID0g
cGVyc2lzdGluZ19pbnRlcnZhbAorICAgICAgICBzZWxmLl90aW1lb3V0cyA9IHt9CiAKICAgICBk
ZWYgY3JlYXRlX3Jlc3VsdChzZWxmLCB0b2tlbiwgZGF0YSk6CiAgICAgICAgIHJlc3VsdCA9IHNl
bGYucHJlcGFyZV9yZXN1bHQoZGF0YSkKQEAgLTgyLDEwICs4NywxMCBAQCBjbGFzcyBSZXN1bHRz
TWFuYWdlcihvYmplY3QpOgogICAgICAgICBpZiBmaWx0ZXJfcGF0aCBpcyBub3QgTm9uZToKICAg
ICAgICAgICAgIGZpbHRlcl9hcGkgPSBuZXh0KChwIGZvciBwIGluIGZpbHRlcl9wYXRoLnNwbGl0
KCIvIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwIGlzIG5vdCBOb25lKSwg
Tm9uZSkKLSAgICAgICAgY2FjaGVkX3Jlc3VsdHMgPSBzZWxmLl9yZWFkX2Zyb21fY2FjaGUodG9r
ZW4pCi0gICAgICAgIHBlcnNpc3RlZF9yZXN1bHRzID0gc2VsZi5sb2FkX3Jlc3VsdHModG9rZW4p
Ci0gICAgICAgIHJlc3VsdHMgPSBzZWxmLl9jb21iaW5lX3Jlc3VsdHNfYnlfYXBpKGNhY2hlZF9y
ZXN1bHRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
ZXJzaXN0ZWRfcmVzdWx0cykKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYuX3JlYWRfZnJvbV9jYWNo
ZSh0b2tlbikKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBbXToKKyAgICAgICAgICAgIHJlc3VsdHMg
PSBzZWxmLmxvYWRfcmVzdWx0cyh0b2tlbikKKyAgICAgICAgICAgIHNlbGYuX3NldF9zZXNzaW9u
X2NhY2hlKHRva2VuLCByZXN1bHRzKQogCiAgICAgICAgIGZpbHRlcmVkX3Jlc3VsdHMgPSB7fQog
CkBAIC0yMDksNiArMjE0LDcgQEAgY2xhc3MgUmVzdWx0c01hbmFnZXIob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgaW4gZmFpbGVkX3Rlc3RzW2FwaV06CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAgIGZh
aWxlZF90ZXN0c1thcGldLmFwcGVuZCh0ZXN0KQorICAgICAgICByZXR1cm4gcGFzc2VkX3Rlc3Rz
CiAKICAgICBkZWYgcmVhZF9yZXN1bHRzX3dwdF9yZXBvcnRfdXJpKHNlbGYsIHRva2VuLCBhcGkp
OgogICAgICAgICBhcGlfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHNlbGYuX3Jlc3VsdHNfZGly
ZWN0b3J5X3BhdGgsIHRva2VuLCBhcGkpCkBAIC0yNDQsOCArMjUwLDcgQEAgY2xhc3MgUmVzdWx0
c01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBmb3IgYXBpIGlu
IGxpc3Qoc2VsZi5fcmVzdWx0c1t0b2tlbl0ua2V5cygpKVs6XToKICAgICAgICAgICAgIHNlbGYu
c2F2ZV9hcGlfcmVzdWx0cyh0b2tlbiwgYXBpKQotICAgICAgICAgICAgc2VsZi5jcmVhdGVfaW5m
b19maWxlKHNlc3Npb24pCi0gICAgICAgICAgICBzZWxmLl9jbGVhcl9jYWNoZV9hcGkodG9rZW4s
IGFwaSkKKyAgICAgICAgc2VsZi5jcmVhdGVfaW5mb19maWxlKHNlc3Npb24pCiAgICAgICAgIHNl
c3Npb24ucmVjZW50X2NvbXBsZXRlZF9jb3VudCA9IDAKICAgICAgICAgc2VsZi5fc2Vzc2lvbnNf
bWFuYWdlci51cGRhdGVfc2Vzc2lvbihzZXNzaW9uKQogCkBAIC0yODIsMjIgKzI4NywyOCBAQCBj
bGFzcyBSZXN1bHRzTWFuYWdlcihvYmplY3QpOgogICAgICAgICBpZiBhcGkgbm90IGluIHNlbGYu
X3Jlc3VsdHNbdG9rZW5dOgogICAgICAgICAgICAgc2VsZi5fcmVzdWx0c1t0b2tlbl1bYXBpXSA9
IFtdCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNbdG9rZW5dW2FwaV0uYXBwZW5kKHJlc3VsdCkKKyAg
ICAgICAgc2VsZi5fc2V0X3RpbWVvdXQodG9rZW4pCisKKyAgICBkZWYgX3NldF9zZXNzaW9uX2Nh
Y2hlKHNlbGYsIHRva2VuLCByZXN1bHRzKToKKyAgICAgICAgaWYgdG9rZW4gaXMgTm9uZToKKyAg
ICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl9yZXN1bHRzW3Rva2VuXSA9IHJlc3VsdHMK
KyAgICAgICAgc2VsZi5fc2V0X3RpbWVvdXQodG9rZW4pCiAKICAgICBkZWYgX3JlYWRfZnJvbV9j
YWNoZShzZWxmLCB0b2tlbik6CiAgICAgICAgIGlmIHRva2VuIGlzIE5vbmU6CiAgICAgICAgICAg
ICByZXR1cm4gW10KICAgICAgICAgaWYgdG9rZW4gbm90IGluIHNlbGYuX3Jlc3VsdHM6CiAgICAg
ICAgICAgICByZXR1cm4gW10KKyAgICAgICAgc2VsZi5fc2V0X3RpbWVvdXQodG9rZW4pCiAgICAg
ICAgIHJldHVybiBzZWxmLl9yZXN1bHRzW3Rva2VuXQogCi0gICAgZGVmIF9jbGVhcl9jYWNoZV9h
cGkoc2VsZiwgdG9rZW4sIGFwaSk6CisgICAgZGVmIF9jbGVhcl9zZXNzaW9uX2NhY2hlKHNlbGYs
IHRva2VuKToKICAgICAgICAgaWYgdG9rZW4gaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybgog
ICAgICAgICBpZiB0b2tlbiBub3QgaW4gc2VsZi5fcmVzdWx0czoKICAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBpZiBhcGkgbm90IGluIHNlbGYuX3Jlc3VsdHNbdG9rZW5dOgotICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgIGRlbCBzZWxmLl9yZXN1bHRzW3Rva2VuXVthcGldCisgICAgICAg
IGRlbCBzZWxmLl9yZXN1bHRzW3Rva2VuXQogCiAgICAgZGVmIF9jb21iaW5lX3Jlc3VsdHNfYnlf
YXBpKHNlbGYsIHJlc3VsdF9hLCByZXN1bHRfYik6CiAgICAgICAgIGNvbWJpbmVkX3Jlc3VsdCA9
IHt9CkBAIC01MzQsNyArNTQ1LDcgQEAgY2xhc3MgUmVzdWx0c01hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgICAgICAgICB6aXAud3JpdGUoZmlsZV9wYXRoLCBmaWxlX25hbWUsIHppcGZpbGUuWklQ
X0RFRkxBVEVEKQogICAgICAgICB6aXAuY2xvc2UoKQogCi0gICAgICAgIHdpdGggb3Blbih6aXBf
ZmlsZV9uYW1lLCAicmIiKSBhcyBmaWxlOgorICAgICAgICB3aXRoIG9wZW4oemlwX2ZpbGVfbmFt
ZSwgInIiKSBhcyBmaWxlOgogICAgICAgICAgICAgYmxvYiA9IGZpbGUucmVhZCgpCiAgICAgICAg
ICAgICBvcy5yZW1vdmUoemlwX2ZpbGVfbmFtZSkKIApAQCAtNTc1LDggKzU4Niw4IEBAIGNsYXNz
IFJlc3VsdHNNYW5hZ2VyKG9iamVjdCk6CiAKICAgICAgICAgICAgIHJldHVybiBibG9iCiAKLSAg
ICBkZWYgaXNfaW1wb3J0X2VuYWJsZWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9pbXBv
cnRfZW5hYmxlZAorICAgIGRlZiBpc19pbXBvcnRfcmVzdWx0c19lbmFibGVkKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5faW1wb3J0X3Jlc3VsdHNfZW5hYmxlZAogCiAgICAgZGVmIGFyZV9y
ZXBvcnRzX2VuYWJsZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9yZXBvcnRzX2VuYWJs
ZWQKQEAgLTU5Miw3ICs2MDMsNyBAQCBjbGFzcyBSZXN1bHRzTWFuYWdlcihvYmplY3QpOgogICAg
ICAgICAgICAgcmV0dXJuIGRlc2VyaWFsaXplX3Nlc3Npb24oaW5mbykKIAogICAgIGRlZiBpbXBv
cnRfcmVzdWx0cyhzZWxmLCBibG9iKToKLSAgICAgICAgaWYgbm90IHNlbGYuaXNfaW1wb3J0X2Vu
YWJsZWQ6CisgICAgICAgIGlmIG5vdCBzZWxmLmlzX2ltcG9ydF9yZXN1bHRzX2VuYWJsZWQ6CiAg
ICAgICAgICAgICByYWlzZSBQZXJtaXNzaW9uRGVuaWVkRXhjZXB0aW9uKCkKICAgICAgICAgdG1w
X2ZpbGVfbmFtZSA9ICJ7fS56aXAiLmZvcm1hdChzdHIodGltZS50aW1lKCkpKQogCkBAIC02MTQs
OSArNjI1LDM1IEBAIGNsYXNzIFJlc3VsdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIG9zLm1h
a2VkaXJzKGRlc3RpbmF0aW9uX3BhdGgpCiAgICAgICAgIHppcC5leHRyYWN0YWxsKGRlc3RpbmF0
aW9uX3BhdGgpCiAgICAgICAgIHNlbGYucmVtb3ZlX3RtcF9maWxlcygpCi0gICAgICAgIHNlbGYu
bG9hZF9yZXN1bHRzKCkKKyAgICAgICAgc2VsZi5sb2FkX3Jlc3VsdHModG9rZW4pCiAgICAgICAg
IHJldHVybiB0b2tlbgogCisgICAgZGVmIGltcG9ydF9yZXN1bHRzX2FwaV9qc29uKHNlbGYsIHRv
a2VuLCBhcGksIGJsb2IpOgorICAgICAgICBpZiBub3Qgc2VsZi5pc19pbXBvcnRfcmVzdWx0c19l
bmFibGVkOgorICAgICAgICAgICAgcmFpc2UgUGVybWlzc2lvbkRlbmllZEV4Y2VwdGlvbigpCisg
ICAgICAgIGRlc3RpbmF0aW9uX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fcmVzdWx0c19kaXJl
Y3RvcnlfcGF0aCwgdG9rZW4sIGFwaSkKKyAgICAgICAgZmlsZXMgPSBvcy5saXN0ZGlyKGRlc3Rp
bmF0aW9uX3BhdGgpCisgICAgICAgIGZpbGVfbmFtZSA9ICIiCisgICAgICAgIGZvciBmaWxlIGlu
IGZpbGVzOgorICAgICAgICAgICAgaWYgUkVTVUxUU19GSUxFX1BBVFRFUk4ubWF0Y2goZmlsZSk6
CisgICAgICAgICAgICAgICAgZmlsZV9uYW1lID0gZmlsZQorICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgIGRlc3RpbmF0aW9uX2ZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0aW5hdGlv
bl9wYXRoLCBmaWxlX25hbWUpCisgICAgICAgIHdpdGggb3BlbihkZXN0aW5hdGlvbl9maWxlX3Bh
dGgsICJ3YiIpIGFzIGZpbGU6CisgICAgICAgICAgICBmaWxlLndyaXRlKGJsb2IpCisKKyAgICAg
ICAgc2VsZi5nZW5lcmF0ZV9yZXBvcnQodG9rZW4sIGFwaSkKKworICAgICAgICBzZXNzaW9uID0g
c2VsZi5fc2Vzc2lvbnNfbWFuYWdlci5yZWFkX3Nlc3Npb24odG9rZW4pCisgICAgICAgIGlmIHNl
c3Npb24gaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIE5vdEZvdW5kRXhjZXB0aW9uKCkKKwor
ICAgICAgICByZXN1bHRzID0gc2VsZi5sb2FkX3Jlc3VsdHModG9rZW4pCisgICAgICAgIHRlc3Rf
c3RhdGUgPSBzZWxmLnBhcnNlX3Rlc3Rfc3RhdGUocmVzdWx0cykKKyAgICAgICAgc2Vzc2lvbi50
ZXN0X3N0YXRlID0gdGVzdF9zdGF0ZQorCisgICAgICAgIHNlbGYuX3Nlc3Npb25zX21hbmFnZXIu
dXBkYXRlX3Nlc3Npb24oc2Vzc2lvbikKKwogICAgIGRlZiByZW1vdmVfdG1wX2ZpbGVzKHNlbGYp
OgogICAgICAgICBmaWxlcyA9IG9zLmxpc3RkaXIoIi4iKQogCkBAIC02MjQsMyArNjYxLDEyIEBA
IGNsYXNzIFJlc3VsdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiByZS5tYXRjaChy
IlxkezEwfVwuXGR7Mn1cLnppcCIsIGZpbGUpIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgY29u
dGludWUKICAgICAgICAgICAgIG9zLnJlbW92ZShmaWxlKQorCisgICAgZGVmIF9zZXRfdGltZW91
dChzZWxmLCB0b2tlbik6CisgICAgICAgIGlmIHRva2VuIGluIHNlbGYuX3RpbWVvdXRzOgorICAg
ICAgICAgICAgc2VsZi5fdGltZW91dHNbdG9rZW5dLmNhbmNlbCgpCisKKyAgICAgICAgZGVmIGhh
bmRsZXIoc2VsZiwgdG9rZW4pOgorICAgICAgICAgICAgc2VsZi5fY2xlYXJfc2Vzc2lvbl9jYWNo
ZSh0b2tlbikKKworICAgICAgICBzZWxmLl90aW1lb3V0c1t0b2tlbl0gPSBUaW1lcihTRVNTSU9O
X1JFU1VMVFNfVElNRU9VVCwgaGFuZGxlciwgW3NlbGYsIHRva2VuXSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
aW5nL3Nlc3Npb25zX21hbmFnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9zZXNzaW9uc19tYW5hZ2VyLnB5CmluZGV4
IGI1NTJhYzZmMmUwNDYyODUwZGE0NjdmZmNhNzExMjllMGE5ZGZiYTguLjkwMGI3YzBkZDFlY2Nk
MWQwMDk0YjY2ZTUxNmQ3ZWZhY2QyN2JlMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Nlc3Npb25zX21h
bmFnZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3Rlc3Rpbmcvc2Vzc2lvbnNfbWFuYWdlci5weQpAQCAtMiw2ICsyLDcgQEAg
aW1wb3J0IHV1aWQKIGltcG9ydCB0aW1lCiBpbXBvcnQgb3MKIGltcG9ydCBqc29uCitpbXBvcnQg
cmUKIAogZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRpbWVyCiAKQEAgLTI1LDcgKzI2LDggQEAgY2xh
c3MgU2Vzc2lvbnNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgZXZlbnRfZGlz
cGF0Y2hlciwKICAgICAgICAgICAgICAgICAgICB0ZXN0c19tYW5hZ2VyLAogICAgICAgICAgICAg
ICAgICAgIHJlc3VsdHNfZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfbWFu
YWdlcik6CisgICAgICAgICAgICAgICAgICAgcmVzdWx0c19tYW5hZ2VyLAorICAgICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb24pOgogICAgICAgICBzZWxmLl90ZXN0X2xvYWRlciA9IHRlc3Rf
bG9hZGVyCiAgICAgICAgIHNlbGYuX3Nlc3Npb25zID0ge30KICAgICAgICAgc2VsZi5fZXhwaXJh
dGlvbl90aW1lb3V0ID0gTm9uZQpAQCAtMzMsMTcgKzM1LDE4IEBAIGNsYXNzIFNlc3Npb25zTWFu
YWdlcihvYmplY3QpOgogICAgICAgICBzZWxmLl90ZXN0c19tYW5hZ2VyID0gdGVzdHNfbWFuYWdl
cgogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CiAg
ICAgICAgIHNlbGYuX3Jlc3VsdHNfbWFuYWdlciA9IHJlc3VsdHNfbWFuYWdlcgorICAgICAgICBz
ZWxmLl9jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbgogCiAgICAgZGVmIGNyZWF0ZV9zZXNz
aW9uKAogICAgICAgICBzZWxmLAogICAgICAgICB0ZXN0cz1Ob25lLAotICAgICAgICB0eXBlcz1O
b25lLAorICAgICAgICB0ZXN0X3R5cGVzPU5vbmUsCiAgICAgICAgIHRpbWVvdXRzPU5vbmUsCiAg
ICAgICAgIHJlZmVyZW5jZV90b2tlbnM9Tm9uZSwKLSAgICAgICAgd2ViaG9va191cmxzPU5vbmUs
CiAgICAgICAgIHVzZXJfYWdlbnQ9Tm9uZSwKICAgICAgICAgbGFiZWxzPU5vbmUsCi0gICAgICAg
IGV4cGlyYXRpb25fZGF0ZT1Ob25lCisgICAgICAgIGV4cGlyYXRpb25fZGF0ZT1Ob25lLAorICAg
ICAgICB0eXBlPU5vbmUKICAgICApOgogICAgICAgICBpZiB0ZXN0cyBpcyBOb25lOgogICAgICAg
ICAgICAgdGVzdHMgPSB7fQpAQCAtNTEsOCArNTQsNiBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIo
b2JqZWN0KToKICAgICAgICAgICAgIHRpbWVvdXRzID0ge30KICAgICAgICAgaWYgcmVmZXJlbmNl
X3Rva2VucyBpcyBOb25lOgogICAgICAgICAgICAgcmVmZXJlbmNlX3Rva2VucyA9IFtdCi0gICAg
ICAgIGlmIHdlYmhvb2tfdXJscyBpcyBOb25lOgotICAgICAgICAgICAgd2ViaG9va191cmxzID0g
W10KICAgICAgICAgaWYgdXNlcl9hZ2VudCBpcyBOb25lOgogICAgICAgICAgICAgdXNlcl9hZ2Vu
dCA9ICIiCiAgICAgICAgIGlmIGxhYmVscyBpcyBOb25lOgpAQCAtNjMsMTkgKzY0LDE5IEBAIGNs
YXNzIFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgogICAgICAgICBpZiAiZXhjbHVkZSIgbm90IGlu
IHRlc3RzOgogICAgICAgICAgICAgdGVzdHNbImV4Y2x1ZGUiXSA9IFtdCiAgICAgICAgIGlmICJh
dXRvbWF0aWMiIG5vdCBpbiB0aW1lb3V0czoKLSAgICAgICAgICAgIHRpbWVvdXRzWyJhdXRvbWF0
aWMiXSA9IERFRkFVTFRfVEVTVF9BVVRPTUFUSUNfVElNRU9VVAorICAgICAgICAgICAgdGltZW91
dHNbImF1dG9tYXRpYyJdID0gc2VsZi5fY29uZmlndXJhdGlvblsidGltZW91dHMiXVsiYXV0b21h
dGljIl0KICAgICAgICAgaWYgIm1hbnVhbCIgbm90IGluIHRpbWVvdXRzOgotICAgICAgICAgICAg
dGltZW91dHNbIm1hbnVhbCJdID0gREVGQVVMVF9URVNUX01BTlVBTF9USU1FT1VUCi0gICAgICAg
IGlmIHR5cGVzIGlzIE5vbmU6Ci0gICAgICAgICAgICB0eXBlcyA9IERFRkFVTFRfVEVTVF9UWVBF
UworICAgICAgICAgICAgdGltZW91dHNbIm1hbnVhbCJdID0gc2VsZi5fY29uZmlndXJhdGlvblsi
dGltZW91dHMiXVsibWFudWFsIl0KKyAgICAgICAgaWYgdGVzdF90eXBlcyBpcyBOb25lOgorICAg
ICAgICAgICAgdGVzdF90eXBlcyA9IERFRkFVTFRfVEVTVF9UWVBFUwogCi0gICAgICAgIGZvciB0
eXBlIGluIHR5cGVzOgotICAgICAgICAgICAgaWYgdHlwZSAhPSAiYXV0b21hdGljIiBhbmQgdHlw
ZSAhPSAibWFudWFsIjoKLSAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRGF0YUV4Y2VwdGlv
bigiVW5rbm93biB0eXBlICd7fSciLmZvcm1hdCh0eXBlKSkKKyAgICAgICAgZm9yIHRlc3RfdHlw
ZSBpbiB0ZXN0X3R5cGVzOgorICAgICAgICAgICAgaWYgdGVzdF90eXBlICE9ICJhdXRvbWF0aWMi
IGFuZCB0ZXN0X3R5cGUgIT0gIm1hbnVhbCI6CisgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxp
ZERhdGFFeGNlcHRpb24oIlVua25vd24gdHlwZSAne30nIi5mb3JtYXQodGVzdF90eXBlKSkKIAog
ICAgICAgICB0b2tlbiA9IHN0cih1dWlkLnV1aWQxKCkpCiAgICAgICAgIHBlbmRpbmdfdGVzdHMg
PSBzZWxmLl90ZXN0X2xvYWRlci5nZXRfdGVzdHMoCi0gICAgICAgICAgICB0eXBlcywKKyAgICAg
ICAgICAgIHRlc3RfdHlwZXMsCiAgICAgICAgICAgICBpbmNsdWRlX2xpc3Q9dGVzdHNbImluY2x1
ZGUiXSwKICAgICAgICAgICAgIGV4Y2x1ZGVfbGlzdD10ZXN0c1siZXhjbHVkZSJdLAogICAgICAg
ICAgICAgcmVmZXJlbmNlX3Rva2Vucz1yZWZlcmVuY2VfdG9rZW5zKQpAQCAtOTYsMjEgKzk3LDI0
IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICJ0b3Rh
bCI6IHRlc3RfZmlsZXNfY291bnRbYXBpXSwKICAgICAgICAgICAgICAgICAiY29tcGxldGUiOiAw
fQogCisgICAgICAgIGRhdGVfY3JlYXRlZCA9IGludCh0aW1lLnRpbWUoKSAqIDEwMDApCisKICAg
ICAgICAgc2Vzc2lvbiA9IFNlc3Npb24oCiAgICAgICAgICAgICB0b2tlbj10b2tlbiwKICAgICAg
ICAgICAgIHRlc3RzPXRlc3RzLAogICAgICAgICAgICAgdXNlcl9hZ2VudD11c2VyX2FnZW50LAog
ICAgICAgICAgICAgYnJvd3Nlcj1icm93c2VyLAotICAgICAgICAgICAgdHlwZXM9dHlwZXMsCisg
ICAgICAgICAgICB0ZXN0X3R5cGVzPXRlc3RfdHlwZXMsCiAgICAgICAgICAgICB0aW1lb3V0cz10
aW1lb3V0cywKICAgICAgICAgICAgIHBlbmRpbmdfdGVzdHM9cGVuZGluZ190ZXN0cywKICAgICAg
ICAgICAgIHJ1bm5pbmdfdGVzdHM9e30sCiAgICAgICAgICAgICB0ZXN0X3N0YXRlPXRlc3Rfc3Rh
dGUsCiAgICAgICAgICAgICBzdGF0dXM9UEVORElORywKICAgICAgICAgICAgIHJlZmVyZW5jZV90
b2tlbnM9cmVmZXJlbmNlX3Rva2VucywKLSAgICAgICAgICAgIHdlYmhvb2tfdXJscz13ZWJob29r
X3VybHMsCiAgICAgICAgICAgICBsYWJlbHM9bGFiZWxzLAotICAgICAgICAgICAgZXhwaXJhdGlv
bl9kYXRlPWV4cGlyYXRpb25fZGF0ZQorICAgICAgICAgICAgdHlwZT10eXBlLAorICAgICAgICAg
ICAgZXhwaXJhdGlvbl9kYXRlPWV4cGlyYXRpb25fZGF0ZSwKKyAgICAgICAgICAgIGRhdGVfY3Jl
YXRlZD1kYXRlX2NyZWF0ZWQKICAgICAgICAgKQogCiAgICAgICAgIHNlbGYuX3B1c2hfdG9fY2Fj
aGUoc2Vzc2lvbikKQEAgLTEyNCwxMSArMTI4LDI3IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihv
YmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgc2Vzc2lvbiA9IHNlbGYu
X3JlYWRfZnJvbV9jYWNoZSh0b2tlbikKICAgICAgICAgaWYgc2Vzc2lvbiBpcyBOb25lIG9yIHNl
c3Npb24udGVzdF9zdGF0ZSBpcyBOb25lOgorICAgICAgICAgICAgcHJpbnQoImxvYWRpbmcgc2Vz
c2lvbiBmcm9tIGZpbGUgc3lzdGVtIikKICAgICAgICAgICAgIHNlc3Npb24gPSBzZWxmLmxvYWRf
c2Vzc2lvbih0b2tlbikKICAgICAgICAgaWYgc2Vzc2lvbiBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIHNlbGYuX3B1c2hfdG9fY2FjaGUoc2Vzc2lvbikKICAgICAgICAgcmV0dXJuIHNlc3Npb24K
IAorICAgIGRlZiByZWFkX3Nlc3Npb25zKHNlbGYsIGluZGV4PU5vbmUsIGNvdW50PU5vbmUpOgor
ICAgICAgICBpZiBpbmRleCBpcyBOb25lOgorICAgICAgICAgICAgaW5kZXggPSAwCisgICAgICAg
IGlmIGNvdW50IGlzIE5vbmU6CisgICAgICAgICAgICBjb3VudCA9IDEwCisgICAgICAgIHNlbGYu
bG9hZF9hbGxfc2Vzc2lvbnNfaW5mbygpCisgICAgICAgIHNlc3Npb25zID0gW10KKyAgICAgICAg
Zm9yIGl0X2luZGV4LCB0b2tlbiBpbiBlbnVtZXJhdGUoc2VsZi5fc2Vzc2lvbnMpOgorICAgICAg
ICAgICAgaWYgaXRfaW5kZXggPCBpbmRleDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgaWYgbGVuKHNlc3Npb25zKSA9PSBjb3VudDoKKyAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgc2Vzc2lvbnMuYXBwZW5kKHRva2VuKQorICAgICAgICByZXR1cm4gc2Vz
c2lvbnMKKwogICAgIGRlZiByZWFkX3Nlc3Npb25fc3RhdHVzKHNlbGYsIHRva2VuKToKICAgICAg
ICAgaWYgdG9rZW4gaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybiBOb25lCkBAIC0xNTgsNyAr
MTc4LDcgQEAgY2xhc3MgU2Vzc2lvbnNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3B1
c2hfdG9fY2FjaGUoc2Vzc2lvbikKIAogICAgIGRlZiB1cGRhdGVfc2Vzc2lvbl9jb25maWd1cmF0
aW9uKAotICAgICAgICBzZWxmLCB0b2tlbiwgdGVzdHMsIHR5cGVzLCB0aW1lb3V0cywgcmVmZXJl
bmNlX3Rva2Vucywgd2ViaG9va191cmxzCisgICAgICAgIHNlbGYsIHRva2VuLCB0ZXN0cywgdGVz
dF90eXBlcywgdGltZW91dHMsIHJlZmVyZW5jZV90b2tlbnMsIHR5cGUKICAgICApOgogICAgICAg
ICBzZXNzaW9uID0gc2VsZi5yZWFkX3Nlc3Npb24odG9rZW4pCiAgICAgICAgIGlmIHNlc3Npb24g
aXMgTm9uZToKQEAgLTE3MywxNCArMTkzLDE0IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIHRlc3RzWyJleGNsdWRlIl0gPSBzZXNzaW9uLnRlc3RzWyJl
eGNsdWRlIl0KICAgICAgICAgICAgIGlmIHJlZmVyZW5jZV90b2tlbnMgaXMgTm9uZToKICAgICAg
ICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5zID0gc2Vzc2lvbi5yZWZlcmVuY2VfdG9rZW5zCi0g
ICAgICAgICAgICBpZiB0eXBlcyBpcyBOb25lOgotICAgICAgICAgICAgICAgIHR5cGVzID0gc2Vz
c2lvbi50eXBlcworICAgICAgICAgICAgaWYgdGVzdF90eXBlcyBpcyBOb25lOgorICAgICAgICAg
ICAgICAgIHRlc3RfdHlwZXMgPSBzZXNzaW9uLnRlc3RfdHlwZXMKIAogICAgICAgICAgICAgcGVu
ZGluZ190ZXN0cyA9IHNlbGYuX3Rlc3RfbG9hZGVyLmdldF90ZXN0cygKICAgICAgICAgICAgICAg
ICBpbmNsdWRlX2xpc3Q9dGVzdHNbImluY2x1ZGUiXSwKICAgICAgICAgICAgICAgICBleGNsdWRl
X2xpc3Q9dGVzdHNbImV4Y2x1ZGUiXSwKICAgICAgICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5z
PXJlZmVyZW5jZV90b2tlbnMsCi0gICAgICAgICAgICAgICAgdHlwZXM9dHlwZXMKKyAgICAgICAg
ICAgICAgICB0ZXN0X3R5cGVzPXRlc3RfdHlwZXMKICAgICAgICAgICAgICkKICAgICAgICAgICAg
IHNlc3Npb24ucGVuZGluZ190ZXN0cyA9IHBlbmRpbmdfdGVzdHMKICAgICAgICAgICAgIHNlc3Np
b24udGVzdHMgPSB0ZXN0cwpAQCAtMTk4LDggKzIxOCw4IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdl
cihvYmplY3QpOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNlc3Npb24udGVzdF9z
dGF0ZSA9IHRlc3Rfc3RhdGUKIAotICAgICAgICBpZiB0eXBlcyBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIHNlc3Npb24udHlwZXMgPSB0eXBlcworICAgICAgICBpZiB0ZXN0X3R5cGVzIGlzIG5v
dCBOb25lOgorICAgICAgICAgICAgc2Vzc2lvbi50ZXN0X3R5cGVzID0gdGVzdF90eXBlcwogICAg
ICAgICBpZiB0aW1lb3V0cyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlmIEFVVE9NQVRJQyBu
b3QgaW4gdGltZW91dHM6CiAgICAgICAgICAgICAgICAgdGltZW91dHNbQVVUT01BVElDXSA9IHNl
c3Npb24udGltZW91dHNbQVVUT01BVElDXQpAQCAtMjA4LDggKzIyOCw4IEBAIGNsYXNzIFNlc3Np
b25zTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgc2Vzc2lvbi50aW1lb3V0cyA9IHRpbWVv
dXRzCiAgICAgICAgIGlmIHJlZmVyZW5jZV90b2tlbnMgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICBzZXNzaW9uLnJlZmVyZW5jZV90b2tlbnMgPSByZWZlcmVuY2VfdG9rZW5zCi0gICAgICAgIGlm
IHdlYmhvb2tfdXJscyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlc3Npb24ud2ViaG9va191
cmxzID0gd2ViaG9va191cmxzCisgICAgICAgIGlmIHR5cGUgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBzZXNzaW9uLnR5cGUgPSB0eXBlCiAKICAgICAgICAgc2VsZi5fcHVzaF90b19jYWNoZShz
ZXNzaW9uKQogICAgICAgICByZXR1cm4gc2Vzc2lvbgpAQCAtMzA2LDcgKzMyNiw3IEBAIGNsYXNz
IFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl9leHBpcmF0aW9uX3Rp
bWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9leHBpcmF0aW9uX3RpbWVvdXQu
Y2FuY2VsKCkKIAotICAgICAgICB0aW1lb3V0ID0gbmV4dF9zZXNzaW9uLmV4cGlyYXRpb25fZGF0
ZSAvIDEwMDAuMCAtIGludCh0aW1lLnRpbWUoKSkKKyAgICAgICAgdGltZW91dCA9IG5leHRfc2Vz
c2lvbi5leHBpcmF0aW9uX2RhdGUgLyAxMDAwIC0gdGltZS50aW1lKCkKICAgICAgICAgaWYgdGlt
ZW91dCA8IDA6CiAgICAgICAgICAgICB0aW1lb3V0ID0gMAogCkBAIC0zMTksMTAgKzMzOSwxMCBA
QCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToKIAogICAgIGRlZiBfZGVsZXRlX2V4cGly
ZWRfc2Vzc2lvbnMoc2VsZik6CiAgICAgICAgIGV4cGlyaW5nX3Nlc3Npb25zID0gc2VsZi5fcmVh
ZF9leHBpcmluZ19zZXNzaW9ucygpCi0gICAgICAgIG5vdyA9IGludCh0aW1lLnRpbWUoKSkKKyAg
ICAgICAgbm93ID0gaW50KHRpbWUudGltZSgpICogMTAwMCkKIAogICAgICAgICBmb3Igc2Vzc2lv
biBpbiBleHBpcmluZ19zZXNzaW9uczoKLSAgICAgICAgICAgIGlmIHNlc3Npb24uZXhwaXJhdGlv
bl9kYXRlIC8gMTAwMC4wIDwgbm93OgorICAgICAgICAgICAgaWYgc2Vzc2lvbi5leHBpcmF0aW9u
X2RhdGUgPCBub3c6CiAgICAgICAgICAgICAgICAgc2VsZi5kZWxldGVfc2Vzc2lvbihzZXNzaW9u
LnRva2VuKQogCiAgICAgZGVmIF9yZWFkX2V4cGlyaW5nX3Nlc3Npb25zKHNlbGYpOgpAQCAtMzQ0
LDcgKzM2NCw3IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAg
cmV0dXJuCiAKICAgICAgICAgaWYgc2Vzc2lvbi5zdGF0dXMgPT0gUEVORElORzoKLSAgICAgICAg
ICAgIHNlc3Npb24uZGF0ZV9zdGFydGVkID0gaW50KHRpbWUudGltZSgpKSAqIDEwMDAKKyAgICAg
ICAgICAgIHNlc3Npb24uZGF0ZV9zdGFydGVkID0gaW50KHRpbWUudGltZSgpICogMTAwMCkKICAg
ICAgICAgICAgIHNlc3Npb24uZXhwaXJhdGlvbl9kYXRlID0gTm9uZQogCiAgICAgICAgIHNlc3Np
b24uc3RhdHVzID0gUlVOTklORwpAQCAtMzc0LDcgKzM5NCw3IEBAIGNsYXNzIFNlc3Npb25zTWFu
YWdlcihvYmplY3QpOgogICAgICAgICBpZiBzZXNzaW9uLnN0YXR1cyA9PSBBQk9SVEVEIG9yIHNl
c3Npb24uc3RhdHVzID09IENPTVBMRVRFRDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBz
ZXNzaW9uLnN0YXR1cyA9IEFCT1JURUQKLSAgICAgICAgc2Vzc2lvbi5kYXRlX2ZpbmlzaGVkID0g
dGltZS50aW1lKCkgKiAxMDAwCisgICAgICAgIHNlc3Npb24uZGF0ZV9maW5pc2hlZCA9IGludCh0
aW1lLnRpbWUoKSAqIDEwMDApCiAgICAgICAgIHNlbGYudXBkYXRlX3Nlc3Npb24oc2Vzc2lvbikK
ICAgICAgICAgc2VsZi5fZXZlbnRfZGlzcGF0Y2hlci5kaXNwYXRjaF9ldmVudCgKICAgICAgICAg
ICAgIHRva2VuLApAQCAtMzk4LDcgKzQxOCw3IEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmpl
Y3QpOgogICAgICAgICBpZiBzZXNzaW9uLnN0YXR1cyA9PSBDT01QTEVURUQgb3Igc2Vzc2lvbi5z
dGF0dXMgPT0gQUJPUlRFRDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZXNzaW9uLnN0
YXR1cyA9IENPTVBMRVRFRAotICAgICAgICBzZXNzaW9uLmRhdGVfZmluaXNoZWQgPSB0aW1lLnRp
bWUoKSAqIDEwMDAKKyAgICAgICAgc2Vzc2lvbi5kYXRlX2ZpbmlzaGVkID0gaW50KHRpbWUudGlt
ZSgpICogMTAwMCkKICAgICAgICAgc2VsZi51cGRhdGVfc2Vzc2lvbihzZXNzaW9uKQogICAgICAg
ICBzZWxmLl9ldmVudF9kaXNwYXRjaGVyLmRpc3BhdGNoX2V2ZW50KAogICAgICAgICAgICAgdG9r
ZW4sCkBAIC00MjcsNiArNDQ3LDIwIEBAIGNsYXNzIFNlc3Npb25zTWFuYWdlcihvYmplY3QpOgog
ICAgICAgICByZXR1cm4gYXBpIG5vdCBpbiBzZXNzaW9uLnBlbmRpbmdfdGVzdHMgXAogICAgICAg
ICAgICAgYW5kIGFwaSBub3QgaW4gc2Vzc2lvbi5ydW5uaW5nX3Rlc3RzCiAKKyAgICBkZWYgZ2V0
X3Rlc3RfcGF0aF93aXRoX3F1ZXJ5KHNlbGYsIHRlc3QsIHNlc3Npb24pOgorICAgICAgICBxdWVy
eV9zdHJpbmcgPSAiIgorICAgICAgICBpbmNsdWRlX2xpc3QgPSBzZXNzaW9uLnRlc3RzWyJpbmNs
dWRlIl0KKyAgICAgICAgZm9yIGluY2x1ZGVfdGVzdCBpbiBpbmNsdWRlX2xpc3Q6CisgICAgICAg
ICAgICBzcGxpdCA9IGluY2x1ZGVfdGVzdC5zcGxpdCgiPyIpCisgICAgICAgICAgICBxdWVyeSA9
ICIiCisgICAgICAgICAgICBpZiBsZW4oc3BsaXQpID4gMToKKyAgICAgICAgICAgICAgICBpbmNs
dWRlX3Rlc3QgPSBzcGxpdFswXQorICAgICAgICAgICAgICAgIHF1ZXJ5ID0gc3BsaXRbMV0KKyAg
ICAgICAgICAgIHBhdHRlcm4gPSByZS5jb21waWxlKCJeIiArIGluY2x1ZGVfdGVzdCkKKyAgICAg
ICAgICAgIGlmIHBhdHRlcm4ubWF0Y2godGVzdCkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg
ICAgcXVlcnlfc3RyaW5nICs9IHF1ZXJ5ICsgIiYiCisgICAgICAgIHJldHVybiAie30/e30iLmZv
cm1hdCh0ZXN0LCBxdWVyeV9zdHJpbmcpCisKICAgICBkZWYgZmluZF90b2tlbihzZWxmLCBmcmFn
bWVudCk6CiAgICAgICAgIGlmIGxlbihmcmFnbWVudCkgPCA4OgogICAgICAgICAgICAgcmV0dXJu
IE5vbmUKQEAgLTQzNywzICs0NzEsNiBAQCBjbGFzcyBTZXNzaW9uc01hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgaWYgbGVuKHRva2VucykgIT0gMToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAg
ICAgICAgIHJldHVybiB0b2tlbnNbMF0KKworICAgIGRlZiBnZXRfdG90YWxfc2Vzc2lvbnMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5fc2Vzc2lvbnMpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGlu
Zy90ZXN0X2xvYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Rlc3RfbG9hZGVyLnB5CmluZGV4IDEwZGU3NGE0Yjdm
ZmU4OTE2MjlhOTAyYzRkZTg2OWEyNzRkZjQwZmIuLmQ5ZjA2OTEwZGIyYjRhZGYzYzZmMWEyM2Zj
Mjc2Y2ZmNDMwMGQ3OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Rlc3RfbG9hZGVyLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
aW5nL3Rlc3RfbG9hZGVyLnB5CkBAIC03MCw3ICs3MCw3IEBAIGNsYXNzIFRlc3RMb2FkZXIob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICAgICAgcGF0aHMuYXBwZW5kKHRlc3QpCiAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgaWYgdGVzdC5lbmRzd2l0aCgiLmpz
Iik6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBlbGVtZW50IGluIHRlc3RzW3Rlc3RdOgorICAg
ICAgICAgICAgICAgICAgICBmb3IgZWxlbWVudCBpbiB0ZXN0c1t0ZXN0XVsxOl06CiAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXRocy5hcHBlbmQoZWxlbWVudFswXSkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKICAgICAgICAgICAgIHJldHVybiBwYXRocwpAQCAtOTgsNiArOTgsNyBA
QCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAgICAgICAgIGlmIGluY2x1ZGVfbGlzdCBpcyBu
b3QgTm9uZSBhbmQgbGVuKGluY2x1ZGVfbGlzdCkgPiAwOgogICAgICAgICAgICAgaXNfdmFsaWQg
PSBGYWxzZQogICAgICAgICAgICAgZm9yIGluY2x1ZGVfdGVzdCBpbiBpbmNsdWRlX2xpc3Q6Cisg
ICAgICAgICAgICAgICAgaW5jbHVkZV90ZXN0ID0gaW5jbHVkZV90ZXN0LnNwbGl0KCI/IilbMF0K
ICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcmUuY29tcGlsZSgiXiIgKyBpbmNsdWRlX3Rlc3Qp
CiAgICAgICAgICAgICAgICAgaWYgcGF0dGVybi5tYXRjaCh0ZXN0X3BhdGgpIGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgICAgICAgICBpc192YWxpZCA9IFRydWUKQEAgLTEwOSw2ICsxMTAsNyBA
QCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAgICAgICAgIGlmIGV4Y2x1ZGVfbGlzdCBpcyBu
b3QgTm9uZSBhbmQgbGVuKGV4Y2x1ZGVfbGlzdCkgPiAwOgogICAgICAgICAgICAgaXNfdmFsaWQg
PSBUcnVlCiAgICAgICAgICAgICBmb3IgZXhjbHVkZV90ZXN0IGluIGV4Y2x1ZGVfbGlzdDoKKyAg
ICAgICAgICAgICAgICBleGNsdWRlX3Rlc3QgPSBleGNsdWRlX3Rlc3Quc3BsaXQoIj8iKVswXQog
ICAgICAgICAgICAgICAgIHBhdHRlcm4gPSByZS5jb21waWxlKCJeIiArIGV4Y2x1ZGVfdGVzdCkK
ICAgICAgICAgICAgICAgICBpZiBwYXR0ZXJuLm1hdGNoKHRlc3RfcGF0aCkgaXMgbm90IE5vbmU6
CiAgICAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkID0gRmFsc2UKQEAgLTEzNiwxMyArMTM4LDEz
IEBAIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKIAogICAgIGRlZiBnZXRfdGVzdHMoCiAgICAg
ICAgIHNlbGYsCi0gICAgICAgIHR5cGVzPU5vbmUsCisgICAgICAgIHRlc3RfdHlwZXM9Tm9uZSwK
ICAgICAgICAgaW5jbHVkZV9saXN0PU5vbmUsCiAgICAgICAgIGV4Y2x1ZGVfbGlzdD1Ob25lLAog
ICAgICAgICByZWZlcmVuY2VfdG9rZW5zPU5vbmUKICAgICApOgotICAgICAgICBpZiB0eXBlcyBp
cyBOb25lOgotICAgICAgICAgICAgdHlwZXMgPSBbQVVUT01BVElDLCBNQU5VQUxdCisgICAgICAg
IGlmIHRlc3RfdHlwZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHRlc3RfdHlwZXMgPSBbQVVUT01B
VElDLCBNQU5VQUxdCiAgICAgICAgIGlmIGluY2x1ZGVfbGlzdCBpcyBOb25lOgogICAgICAgICAg
ICAgaW5jbHVkZV9saXN0ID0gW10KICAgICAgICAgaWYgZXhjbHVkZV9saXN0IGlzIE5vbmU6CkBA
IC0xNTUsNyArMTU3LDcgQEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgogICAgICAgICByZWZl
cmVuY2VfcmVzdWx0cyA9IHNlbGYuX3Jlc3VsdHNfbWFuYWdlci5yZWFkX2NvbW1vbl9wYXNzZWRf
dGVzdHMoCiAgICAgICAgICAgICByZWZlcmVuY2VfdG9rZW5zKQogCi0gICAgICAgIGZvciB0ZXN0
X3R5cGUgaW4gdHlwZXM6CisgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4gdGVzdF90eXBlczoKICAg
ICAgICAgICAgIGlmIHRlc3RfdHlwZSBub3QgaW4gVEVTVF9UWVBFUzoKICAgICAgICAgICAgICAg
ICBjb250aW51ZQogICAgICAgICAgICAgZm9yIGFwaSBpbiBzZWxmLl90ZXN0c1t0ZXN0X3R5cGVd
OgpAQCAtMTY0LDcgKzE2Niw4IEBAIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9saXN0KToKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgIGlmIHJl
ZmVyZW5jZV9yZXN1bHRzIGlzIG5vdCBOb25lIGFuZCBcCi0gICAgICAgICAgICAgICAgICAgICAg
IHRlc3RfcGF0aCBub3QgaW4gcmVmZXJlbmNlX3Jlc3VsdHNbYXBpXToKKyAgICAgICAgICAgICAg
ICAgICAgICAgKGFwaSBub3QgaW4gcmVmZXJlbmNlX3Jlc3VsdHMgb3IKKyAgICAgICAgICAgICAg
ICAgICAgICAgKGFwaSBpbiByZWZlcmVuY2VfcmVzdWx0cyBhbmQgdGVzdF9wYXRoIG5vdCBpbiBy
ZWZlcmVuY2VfcmVzdWx0c1thcGldKSk6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQogICAgICAgICAgICAgICAgICAgICBpZiBhcGkgbm90IGluIGxvYWRlZF90ZXN0czoKICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvYWRlZF90ZXN0c1thcGldID0gW10KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
aW5nL3Rlc3RzX21hbmFnZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy90ZXN0c19tYW5hZ2VyLnB5CmluZGV4IDI2YmJk
Yjg2NTI2YzM1MzI3MGE1YWEzOGUxZjI0ZTM0ZDFhZDIyZjEuLjk5MzU1MjE5YmRjZDcwZGFjYjQw
ZDZkYzIzNjc5MzIxYjk1YjFlYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3Rlc3RzX21hbmFnZXIucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3Rlc3RpbmcvdGVzdHNfbWFuYWdlci5weQpAQCAtNiwzMiArNiw2IEBAIGZyb20gLmV2ZW50
X2Rpc3BhdGNoZXIgaW1wb3J0IFRFU1RfQ09NUExFVEVEX0VWRU5UCiBmcm9tIC4uZGF0YS5leGNl
cHRpb25zLm5vdF9mb3VuZF9leGNlcHRpb24gaW1wb3J0IE5vdEZvdW5kRXhjZXB0aW9uCiBmcm9t
IC4uZGF0YS5zZXNzaW9uIGltcG9ydCBDT01QTEVURUQsIEFCT1JURUQKIAotIyBIZWxwZXIgY2xh
c3MgdXNlZCB0byBhZGFwdCBhIHNwZWNpZmljIGNvbXBhcmUgZnVuY3Rpb24gdG8gYSBQeXRob24g
MwotIyBrZXkgZnVuY3Rpb24uCi1jbGFzcyBDbXBXcmFwcGVyOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCB0ZXN0X21hbmFnZXIsIGNvbXBhcmVfZnVuY3Rpb24sIG9iaik6Ci0gICAgICAgIHNlbGYu
b2JqID0gb2JqCi0gICAgICAgIHNlbGYudGVzdF9tYW5hZ2VyID0gdGVzdF9tYW5hZ2VyCi0gICAg
ICAgIHNlbGYuY29tcGFyZV9mdW5jdGlvbiA9IGNvbXBhcmVfZnVuY3Rpb24KLQotICAgIGRlZiBf
X2x0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5jb21wYXJlX2Z1bmN0aW9u
KHNlbGYudGVzdF9tYW5hZ2VyLCBzZWxmLm9iaiwgb3RoZXIub2JqKSA8IDAKLQotICAgIGRlZiBf
X2d0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5jb21wYXJlX2Z1bmN0aW9u
KHNlbGYudGVzdF9tYW5hZ2VyLCBzZWxmLm9iaiwgb3RoZXIub2JqKSA+IDAKLQotICAgIGRlZiBf
X2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5jb21wYXJlX2Z1bmN0aW9u
KHNlbGYudGVzdF9tYW5hZ2VyLCBzZWxmLm9iaiwgb3RoZXIub2JqKSA9PSAwCi0KLSAgICBkZWYg
X19sZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIHNlbGYuY29tcGFyZV9mdW5jdGlv
bihzZWxmLnRlc3RfbWFuYWdlciwgc2VsZi5vYmosIG90aGVyLm9iaikgPD0gMAotCi0gICAgZGVm
IF9fZ2VfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiBzZWxmLmNvbXBhcmVfZnVuY3Rp
b24oc2VsZi50ZXN0X21hbmFnZXIsIHNlbGYub2JqLCBvdGhlci5vYmopID49IDAKLQotICAgIGRl
ZiBfX25lX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5jb21wYXJlX2Z1bmN0
aW9uKHNlbGYudGVzdF9tYW5hZ2VyLCBzZWxmLm9iaiwgb3RoZXIub2JqKSAhPSAwCi0KIAogY2xh
c3MgVGVzdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIGluaXRpYWxpemUoCkBAIC0xMTUsNiAr
ODksOCBAQCBjbGFzcyBUZXN0c01hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBpZiBw
b3RlbnRpYWxfcmVzdWx0WyJ0ZXN0Il0gPT0gdGVzdDoKICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ID0gcG90ZW50aWFsX3Jlc3VsdAogICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgaWYgcmVzdWx0IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYnJlYWsKIAogICAgICAg
ICAgICAgaWYgcmVzdWx0WyJzdGF0dXMiXSA9PSAiRVJST1IiOgogICAgICAgICAgICAgICAgIGlm
IGxlbih0ZXN0c1siZmFpbCJdKSA8IGNvdW50OgpAQCAtMTQ0LDI5ICsxMjAsMzUgQEAgY2xhc3Mg
VGVzdHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0c1thcGld
OgogICAgICAgICAgICAgICAgIHNvcnRlZF90ZXN0cy5hcHBlbmQodGVzdCkKIAotICAgICAgICBk
ZWYgY29tcGFyZSh0ZXN0c19tYW5hZ2VyLCB0ZXN0X2EsIHRlc3RfYik6Ci0gICAgICAgICAgICBt
aWNyb190ZXN0X2xpc3QgPSB7fQotICAgICAgICAgICAgYXBpX2EgPSAiIgotICAgICAgICAgICAg
Zm9yIHBhcnQgaW4gdGVzdF9hLnNwbGl0KCIvIik6Ci0gICAgICAgICAgICAgICAgaWYgcGFydCAh
PSAiIjoKLSAgICAgICAgICAgICAgICAgICAgYXBpX2EgPSBwYXJ0Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrCi0gICAgICAgICAgICBhcGlfYiA9ICIiCi0gICAgICAgICAgICBmb3IgcGFydCBp
biB0ZXN0X2Iuc3BsaXQoIi8iKToKLSAgICAgICAgICAgICAgICBpZiBwYXJ0ICE9ICIiOgotICAg
ICAgICAgICAgICAgICAgICBhcGlfYiA9IHBhcnQKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsK
LSAgICAgICAgICAgIGlmIGFwaV9hID09IGFwaV9iOgotICAgICAgICAgICAgICAgIG1pY3JvX3Rl
c3RfbGlzdFthcGlfYV0gPSBbdGVzdF9hLCB0ZXN0X2JdCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIG1pY3JvX3Rlc3RfbGlzdFthcGlfYV0gPSBbdGVzdF9hXQotICAgICAgICAg
ICAgICAgIG1pY3JvX3Rlc3RfbGlzdFthcGlfYl0gPSBbdGVzdF9iXQotICAgICAgICAgICAgbmV4
dF90ZXN0ID0gdGVzdHNfbWFuYWdlci5fZ2V0X25leHRfdGVzdF9mcm9tX2xpc3QobWljcm9fdGVz
dF9saXN0KQotICAgICAgICAgICAgaWYgbmV4dF90ZXN0ID09IHRlc3RfYToKLSAgICAgICAgICAg
ICAgICByZXR1cm4gLTEKLSAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgcmV0dXJuIHNv
cnRlZChzb3J0ZWRfdGVzdHMsIGtleT1sYW1iZGEgeDpDbXBXcmFwcGVyKHNlbGYsIGNvbXBhcmUs
IHgpKQorICAgICAgICBjbGFzcyBjb21wYXJlKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgdGVzdHNfbWFuYWdlciwgdGVzdCk6CisgICAgICAgICAgICAgICAgc2VsZi50
ZXN0ID0gdGVzdAorICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfbWFuYWdlciA9IHRlc3RzX21h
bmFnZXIKKworICAgICAgICAgICAgZGVmIF9fbHRfXyhzZWxmLCB0ZXN0X2IpOgorICAgICAgICAg
ICAgICAgIHRlc3RfYSA9IHNlbGYudGVzdAorICAgICAgICAgICAgICAgIHRlc3RfYiA9IHRlc3Rf
Yi50ZXN0CisgICAgICAgICAgICAgICAgbWljcm9fdGVzdF9saXN0ID0ge30KKyAgICAgICAgICAg
ICAgICBhcGlfYSA9ICIiCisgICAgICAgICAgICAgICAgZm9yIHBhcnQgaW4gdGVzdF9hLnNwbGl0
KCIvIik6CisgICAgICAgICAgICAgICAgICAgIGlmIHBhcnQgIT0gIiI6CisgICAgICAgICAgICAg
ICAgICAgICAgICBhcGlfYSA9IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisg
ICAgICAgICAgICAgICAgYXBpX2IgPSAiIgorICAgICAgICAgICAgICAgIGZvciBwYXJ0IGluIHRl
c3RfYi5zcGxpdCgiLyIpOgorICAgICAgICAgICAgICAgICAgICBpZiBwYXJ0ICE9ICIiOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYXBpX2IgPSBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgIGlmIGFwaV9hID09IGFwaV9iOgorICAgICAgICAgICAg
ICAgICAgICBtaWNyb190ZXN0X2xpc3RbYXBpX2FdID0gW3Rlc3RfYSwgdGVzdF9iXQorICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1pY3JvX3Rlc3RfbGlzdFthcGlf
YV0gPSBbdGVzdF9hXQorICAgICAgICAgICAgICAgICAgICBtaWNyb190ZXN0X2xpc3RbYXBpX2Jd
ID0gW3Rlc3RfYl0KKyAgICAgICAgICAgICAgICBuZXh0X3Rlc3QgPSBzZWxmLnRlc3RzX21hbmFn
ZXIuX2dldF9uZXh0X3Rlc3RfZnJvbV9saXN0KG1pY3JvX3Rlc3RfbGlzdCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbmV4dF90ZXN0ID09IHRlc3RfYgorCisgICAgICAgIHNvcnRlZF90ZXN0cy5z
b3J0KGtleT1sYW1iZGEgdGVzdDogY29tcGFyZShzZWxmLCB0ZXN0KSkKKyAgICAgICAgcmV0dXJu
IHNvcnRlZF90ZXN0cwogCiAgICAgZGVmIF9nZXRfbmV4dF90ZXN0X2Zyb21fbGlzdChzZWxmLCB0
ZXN0cyk6CiAgICAgICAgIHRlc3QgPSBOb25lCkBAIC0xODAsNyArMTYyLDcgQEAgY2xhc3MgVGVz
dHNNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIGFwaXMuc29ydChrZXk9bGFtYmRhIGFwaTogYXBp
Lmxvd2VyKCkpCiAKICAgICAgICAgZm9yIGFwaSBpbiBhcGlzOgotICAgICAgICAgICAgdGVzdHNb
YXBpXS5zb3J0KGtleT1sYW1iZGEgYXBpOiBhcGkucmVwbGFjZSgiLyIsICIiKS5sb3dlcigpKQor
ICAgICAgICAgICAgdGVzdHNbYXBpXS5zb3J0KGtleT1sYW1iZGEgdGVzdDogdGVzdC5yZXBsYWNl
KCIvIiwgIiIpLmxvd2VyKCkpCiAKICAgICAgICAgd2hpbGUgdGVzdCBpcyBOb25lOgogICAgICAg
ICAgICAgaWYgbGVuKGFwaXMpIDw9IGN1cnJlbnRfYXBpOgpAQCAtMzMyLDcgKzMxNCw3IEBAIGNs
YXNzIFRlc3RzTWFuYWdlcihvYmplY3QpOgogICAgICAgICApCiAKICAgICAgICAgc2VsZi5fZXZl
bnRfZGlzcGF0Y2hlci5kaXNwYXRjaF9ldmVudCgKLSAgICAgICAgICAgIHRva2VuPXNlc3Npb24u
dG9rZW4sCisgICAgICAgICAgICBkaXNwYXRjaGVyX3Rva2VuPXNlc3Npb24udG9rZW4sCiAgICAg
ICAgICAgICBldmVudF90eXBlPVRFU1RfQ09NUExFVEVEX0VWRU5ULAogICAgICAgICAgICAgZGF0
YT10ZXN0CiAgICAgICAgICkKQEAgLTM3Nyw3ICszNTksNyBAQCBjbGFzcyBUZXN0c01hbmFnZXIo
b2JqZWN0KToKIAogICAgIGRlZiBsb2FkX3Rlc3RzKHNlbGYsIHNlc3Npb24pOgogICAgICAgICBw
ZW5kaW5nX3Rlc3RzID0gc2VsZi5fdGVzdF9sb2FkZXIuZ2V0X3Rlc3RzKAotICAgICAgICAgICAg
c2Vzc2lvbi50eXBlcywKKyAgICAgICAgICAgIHNlc3Npb24udGVzdF90eXBlcywKICAgICAgICAg
ICAgIGluY2x1ZGVfbGlzdD1zZXNzaW9uLnRlc3RzWyJpbmNsdWRlIl0sCiAgICAgICAgICAgICBl
eGNsdWRlX2xpc3Q9c2Vzc2lvbi50ZXN0c1siZXhjbHVkZSJdLAogICAgICAgICAgICAgcmVmZXJl
bmNlX3Rva2Vucz1zZXNzaW9uLnJlZmVyZW5jZV90b2tlbnMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0aW5nL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJkYmUyMzMxZTBkZTY4YjAyOTA0YzZhY2JmY2NiMjg3N2NkYWY0YzcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS90ZXN0aW5nL2V2ZW50X2Rpc3BhdGNoZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdGluZy9yZXN1bHRzX21hbmFn
ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdGVzdGluZy9zZXNzaW9uc19tYW5hZ2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RpbmcvdGVzdF9sb2FkZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
dGVzdGluZy90ZXN0c19tYW5hZ2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rpbmcvd3B0X3JlcG9ydC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Rlc3RzL1dBVkUgU2VydmVyIFJFU1QgQVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29u
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Rlc3RzL1dBVkUgU2VydmVyIFJFU1QgQVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29u
CmluZGV4IGEwODAxYmI3N2UzNTc4MjczMjI3MDkwYzVmZTExZWFjNTlmOTBiMzMuLmM1YTA3YTMz
NTI0OGRhOGRmNzRjN2I3MjkzOGU1MGI2MTZiNzA3MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9XQVZFIFNl
cnZlciBSRVNUIEFQSSBUZXN0cy5wb3N0bWFuX2NvbGxlY3Rpb24uanNvbgkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RzL1dB
VkUgU2VydmVyIFJFU1QgQVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uCQpAQCAtMSw3
ICsxLDcgQEAKIHsKIAkiaW5mbyI6IHsKLQkJIl9wb3N0bWFuX2lkIjogImNjZDYxMTdhLTZkNjEt
NDYxNy1hNmExLTcxMTVkYjRkNGQ5MiIsCi0JCSJuYW1lIjogIldBVkUgU2VydmVyIFJFU1QgQVBJ
IFRlc3RzIiwKKwkJIl9wb3N0bWFuX2lkIjogIjY5ZmI3MzNiLTUxZWMtNDliMi1hYTA0LWUyMzMw
YzFkMjZiNiIsCisJCSJuYW1lIjogIldBVkUgU2VydmVyIFJFU1QgQVBJIFRlc3RzIGNvcHkiLAog
CQkic2NoZW1hIjogImh0dHBzOi8vc2NoZW1hLmdldHBvc3RtYW4uY29tL2pzb24vY29sbGVjdGlv
bi92Mi4xLjAvY29sbGVjdGlvbi5qc29uIgogCX0sCiAJIml0ZW0iOiBbCkBAIC0xNCw3ICsxNCw3
IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0Ijog
ewotCQkJCQkJCQkiaWQiOiAiMDUxYmVmOTQtNTU0NC00ZGRiLTlkODUtMTY3Njc3ZWJlY2IyIiwK
KwkJCQkJCQkJImlkIjogIjdjNDMyZTdjLWQwZjktNDU4My05NzdhLTU1Y2E1ZDFlNDJhMiIsCiAJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKQEAgLTk0LDcgKzk0LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImE4YmYz
ZTQxLWE3ZGYtNGM2Yi04YTIwLTNhMWU2ZDhhNTFkOSIsCisJCQkJCQkJCQkJImlkIjogIjcxNDcw
YmY3LTI5M2ItNDg2My1hNzRlLTE5M2Q4NmYyZTZhYyIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAg
LTExOSw3ICsxMTksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVl
c3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNDM3MDU0NmYtYjA4
Yy00Zjc3LTliZDktMWNkMTQ0MDA2NjVlIiwKKwkJCQkJCQkJCQkiaWQiOiAiN2Q1OWI3YTctNzhm
OC00NmZjLWEzZjEtYmQwNmY3ZWMzMWI3IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJ
CQkJInZhciBleHBpcmF0aW9uRGF0ZSA9IERhdGUubm93KCkgKyAxMDAwMDsiLAogCQkJCQkJCQkJ
CQkicG0uZ2xvYmFscy5zZXQoXCJleHBpcmF0aW9uX2RhdGVcIiwgZXhwaXJhdGlvbkRhdGUpOyIK
QEAgLTE2NCw3ICsxNjQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiM2RjYjViNmMtOTE1MS00
OWY3LWExYTYtNzQ0NzU5MjdiMzA0IiwKKwkJCQkJCQkJCQkiaWQiOiAiZGFhYTVhOTgtZjMzMC00
Y2E1LWFmYzUtYzQwNTFlN2E5NGMxIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMjE0LDcgKzIx
NCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI4ZDA1NTc4YS1lMmQ2LTQxZTktYTJhNC1hYTdk
OTJiZmJiY2UiLAorCQkJCQkJCQkJCSJpZCI6ICJkNmU3YTA5Ni01YmVkLTQ0YjAtODc3Mi1hYjgw
YzFmNTM0NDciLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0yNTEsNyArMjUxLDcgQEAKIAkJCQkJ
CQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCQkJImlkIjogIjRjNWUzYmE0LWUyN2ItNDM0MS04Y2Y4LTc0ZWQwNDdhODc0NyIsCisJ
CQkJCQkJCQkJImlkIjogIjY2MDc1ZDcxLTU1ZWQtNDgzNS1iNmI1LWFkYTg1NDY1M2QwNCIsCiAJ
CQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKQEAgLTMzMSw3ICszMzEsNyBAQAogCQkJCQkJewogCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjEwODFh
ZmQ4LWE3NzItNDU2NS1iMDNkLWI1OGY3NzNjYmI2NSIsCisJCQkJCQkJCSJpZCI6ICJhMzY1ZWIw
Yi1iYTU1LTQ5MGEtOGNkOS03Mjg2YTFkMzljZDIiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zNzgsNyAr
Mzc4LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3Jp
cHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIyNjhlOGEzMS04N2JiLTRlYzUtODFkNS04N2RjNzQwOTY4
MjgiLAorCQkJCQkJCQkiaWQiOiAiNTI3MTlkMzEtZWYzNi00Yjc0LThjNWMtMDVkNTU0ZTkxNmMw
IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDM3LDcgKzQzNyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxp
c3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAi
NjI1ZmNjMmEtZjdiMS00MDNjLWI1YzUtNTZkYjdjNWJjZWU1IiwKKwkJCQkJCQkJImlkIjogIjc1
M2E3NDUxLTJhOTItNGRlMC1hMmUyLWQwZDljNjZkZTEzNCIsCiAJCQkJCQkJCSJleGVjIjogWwog
CQkJCQkJCQkJImNvbnN0IHRva2VuID0gcG0uZ2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rva2VuXCIp
OyIsCiAJCQkJCQkJCQkicG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuX2ZyYWdtZW50XCIs
IHRva2VuLnNwbGl0KFwiLVwiKS5zaGlmdCgpKTsiCkBAIC00NDgsNyArNDQ4LDcgQEAKIAkJCQkJ
CXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CSJpZCI6ICI4ZTA0MjEyZi1lMjU5LTQxM2YtOThlZS1lMzY2Y2QzYWRmZGQiLAorCQkJCQkJCQki
aWQiOiAiMmE0NjVkZTYtZjY2ZS00MTYxLWFkN2UtN2MxYzM3MzhiZWZkIiwKIAkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LApAQCAtNTEzLDcgKzUxMyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1
ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiNmY4NDI5ZTMtOWMxMi00
MjNjLWJhYWYtOGY4ZGUwZTRlYTQ5IiwKKwkJCQkJCQkJImlkIjogIjBlN2ZmOTZmLThjNWEtNDZm
My1hMWEwLTI1OGFkNTliOTZlMCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJImNvbnN0
IHRva2VuID0gcG0uZ2xvYmFscy5nZXQoXCJzZXNzaW9uX3Rva2VuXCIpOyIsCiAJCQkJCQkJCQki
cG0uZ2xvYmFscy5zZXQoXCJzZXNzaW9uX3Rva2VuX2ZyYWdtZW50XCIsIHRva2VuLnNwbGl0KFwi
LVwiKS5zaGlmdCgpKTsiCkBAIC01MjQsNyArNTI0LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI3ZjZlZjU2
Ny0yNzRlLTRmOWQtYjdmYy01MGY4MjQwNTQ3ZTkiLAorCQkJCQkJCQkiaWQiOiAiZWIzNmUwMTct
NGNkYy00NThhLWIzOTktODk5OGRmODAwZmExIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDQwNFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoNDA0KTsiLApAQCAtNTg4LDcgKzU4
OCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkiaWQiOiAiMTFmNWM2MjAtZGMzYi00YThjLThkMmYtZjk2NjMwMjVjNzlm
IiwKKwkJCQkJCQkJImlkIjogIjljOGFmNTljLThkOWItNDI2NC1hY2I1LWEwYmRmM2FmNDM0YSIs
CiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyA0
MDRcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDQwNCk7IiwKQEAgLTYyNSw3ICs2MjUsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogImM2N2NkZTdl
LTcyMzctNDc5Yy1hMGM2LWI4NGE1MzNjM2IxZSIsCisJCQkJCQkJCSJpZCI6ICJjMTZiZjY2ZS0y
ODNlLTQwYjktYjk4ZC04YjA1OGVjMTU3NWEiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJ
CSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAogCQkJCQkJCQkJImNvbnN0
IHRva2VuID0gcmVzcG9uc2UudG9rZW47IiwKQEAgLTYzNyw3ICs2MzcsNyBAQAogCQkJCQkJewog
CQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJImlkIjogIjI0YjM4ZDY0LTVjMjQtNDE1Zi1iNmY2LWY4ZDI1MmQ2OWFjOCIsCisJCQkJCQkJ
CSJpZCI6ICI2Njc4MGJjOC04OGU2LTQ0ZDItYTZjOC01YzY0OTE0MWFjY2QiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSJ2YXIgYXV0b21hdGljVGltZW91dCA9IDEyMDAwMDsiLAogCQkJ
CQkJCQkJInZhciBtYW51YWxUaW1lb3V0ID0gMTAwMDAwMDsiLApAQCAtNjkyLDcgKzY5Miw3IEBA
CiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0Ijogewot
CQkJCQkJCQkiaWQiOiAiMDgwNmU0ZTAtYmQxYi00MGJhLWE3ZDUtNzRkNDE0NzNhMTQxIiwKKwkJ
CQkJCQkJImlkIjogIjgyY2ExMmFkLTNiZTUtNDE5YS05YTQ1LTE0MTY0YjBlYWY2MCIsCiAJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTczOSw3ICs3MzksNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjliMWYyZGVjLTk5NDkt
NDlmZi1iNDY2LWY2MDJiMTFkZGU1ZCIsCisJCQkJCQkJCSJpZCI6ICIxMzVkN2Q5ZS0xODY5LTRj
MDItOWM2YS03YzBlYTUyMmUxNDAiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC03NzYsNyArNzc2LDcgQEAK
IAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCSJpZCI6ICI3ZmVhMjk3Ny01Y2NiLTQ5ZWUtOGYwNy03OWE3ZjIyNDVmOWMiLAorCQkJ
CQkJCQkiaWQiOiAiMWJmZThjNDEtMjE0NC00NmRlLTgyNGQtMmQxZTNjODgyMDViIiwKIAkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMo
MjAwKTsiLApAQCAtODI3LDcgKzgyNyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiN2NjMjdlZTgtMmYwNi00
ZTI1LTk4ZmItOTg3MmM2Y2YwZDkzIiwKKwkJCQkJCQkJImlkIjogIjAyY2ZjYzY4LTQzZWQtNDUz
My1hODBjLTY5OTk1NDkwMDM5MCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTg3NCw3ICs4NzQsNyBAQAog
CQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJ
CQkJCQkJImlkIjogIjBhNzNhNWViLTNlZGItNGQxNS05MjRkLTI2MGRkMjJiZDgzMSIsCisJCQkJ
CQkJCSJpZCI6ICJjOGYzZDg5Yi0zNGNhLTRkMzktOTc3ZS02MzhkMzYzMGVlNWIiLAogCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygy
MDApOyIsCkBAIC05NDMsNyArOTQzLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI5NDg3N2VjNi03MGVhLTRj
NzgtYWNiNS0yMDA2MGE1MzU2NTMiLAorCQkJCQkJCQkiaWQiOiAiYmNkZTE0MGUtNTFjZi00ZDdj
LWI3NDUtNWU1NmY5YjU5MDM0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiY29uc3Qg
cmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKIAkJCQkJCQkJCSJjb25zdCB0b2tlbiA9
IHJlc3BvbnNlLnRva2VuOyIsCkBAIC05NTUsNyArOTU1LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6
ICJkY2MyOTA5Mi1iN2ExLTQwZmMtODM1OS1lY2M2NTVkYmE0ODIiLAorCQkJCQkJCQkiaWQiOiAi
YzQzNTQxMTgtODhmZi00YjVhLTkyNTItZGFjMTkyNjRjMjYyIiwKIAkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSAxMjAwMDA7IiwKIAkJCQkJCQkJCSJ2
YXIgbWFudWFsVGltZW91dCA9IDEwMDAwMDA7IiwKQEAgLTEwMDUsNyArMTAwNSw3IEBACiAJCQkJ
CQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkiaWQiOiAiOGY2ZTJiZjItNmMxZS00MzRlLTgzYzUtOWJjYzU3ODgwNjkyIiwKKwkJCQkJCQkJ
ImlkIjogIjczN2ZjODU0LTc5MDEtNDgxOS05NmViLTQ4ODNmNWIxNWJjOSIsCiAJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rp
b24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7
IiwKQEAgLTEwNDIsNyArMTA0Miw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiYTBhODBjMDUtYTJjYS00MzBh
LThiZWQtNDZhZDc5NzhjNjg0IiwKKwkJCQkJCQkJImlkIjogImEyOGE1MTVmLTBlNDgtNGMyMy1h
NDE4LTNiMzBjMWU2ZGM3MSIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTEwNzksNyArMTA3OSw3IEBACiAJ
CQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkiaWQiOiAiMDBkODIzZTAtMjA1OS00Y2FiLTgxZDYtOGQxZGU5ZTViNjJhIiwKKwkJCQkJ
CQkJImlkIjogIjFiODQyYzQ3LWM2N2MtNGJmZS1hNzdkLTdkNWI1NTNlMDAxYiIsCiAJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKQEAgLTExMjYsNyArMTEyNiw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiYjgyMTFjMTMtNjY3ZC00
OTcwLWFlZGMtNjM5OGMyNWNjNDBjIiwKKwkJCQkJCQkJImlkIjogImUyMzE4ZTkzLTc0NDYtNDNi
ZS1hZDUyLTk5MjAxYTg1ZmNiZiIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTExNjMsNyArMTE2Myw3IEBA
CiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0Ijogewot
CQkJCQkJCQkiaWQiOiAiOGFhZDgxM2QtNTNmZS00OWZkLWJkZmMtZjE2Y2UyMjMzYWUyIiwKKwkJ
CQkJCQkJImlkIjogImMzYmRkMzdmLWMwNDgtNGEyYS05NzliLWRlY2E2MTc1ODI5MiIsCiAJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTEyNDEsNyArMTI0MSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIzMDVj
YjkxNS04NDk2LTQ1NzctYjE3YS1lODE4OWQ2NmMzZDEiLAorCQkJCQkJCQkJCSJpZCI6ICI1MDZh
MmY1Mi1hYjk4LTRlNjEtOTQzYy1jYTBmN2NhYjdmMjgiLAogCQkJCQkJCQkJCSJleGVjIjogWwog
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBA
IC0xMzA3LDcgKzEzMDcsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiOWQ5MDMxNjUtOTY2Ny00
M2IwLWIyMTAtYTk1MGQwZmExZmEyIiwKKwkJCQkJCQkJCQkiaWQiOiAiODVlZTBhZWMtOWZiZC00
NTQ0LWE5MzgtZmI4MjFlNTc2ZmFjIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJ
CQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTM0NCw3ICsx
MzQ0LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjAzMDc5MTliLTY2MzAtNDhmZi1hYzE4LTEw
YzBhNDdlYTI1NCIsCisJCQkJCQkJCQkJImlkIjogImY0MmNkZjJjLTUzMDQtNDIwZC1iNzlkLWYz
MzQ1YWM0NDU1ZCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwi
U3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBt
LnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTEzOTMsNyArMTM5Myw3IEBACiAJ
CQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0Ijog
ewotCQkJCQkJCQkJCSJpZCI6ICJmNjY0MDhkNS01NDM4LTRkNGYtOWJmYy02ZDI0YjE1ZTVhOTAi
LAorCQkJCQkJCQkJCSJpZCI6ICIwMWQ2YmZhYi04ZWM1LTQzMTctODU5NS02Njc3NzhiZTQyZDgi
LAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2Rl
IGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xNDMwLDcgKzE0MzAsNyBAQAogCQkJCQkJCQl7CiAJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
CQkiaWQiOiAiYmFlNTU0MmQtNDQ2Yi00MDY0LTg4ZmYtY2MzNTVhOGY0ZjYyIiwKKwkJCQkJCQkJ
CQkiaWQiOiAiZGVjOWFiNjItNTAxNC00YjZlLWE3NDctYmU4M2RjZTcxYTNkIiwKIAkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLApAQCAtMTQ4Myw3ICsxNDgzLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjNi
Mzg2OTUyLThhMzctNDcxYS05MTkyLWYyODk3NGQ5NzVhMyIsCisJCQkJCQkJCQkJImlkIjogIjFk
YjM3NzBiLTZmYTktNDBiOS04NzVjLTU2ZDExM2QwZmY1YiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTE1MjAsNyArMTUyMCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI4ZTU2ZDg0Mi0zMjVi
LTQzNTYtYWUxYS0yNDY1ZTllZmUxODgiLAorCQkJCQkJCQkJCSJpZCI6ICI4NGNjYWU4NS0zNmQ2
LTQyMjYtODUwYy0yNjljYmZkZGZmOGUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xNTY5LDcg
KzE1NjksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiYTE4M2NiMGItMzFmMC00OGY2LTljMjAt
NjA1YTE2NDg4ZDdkIiwKKwkJCQkJCQkJCQkiaWQiOiAiMjllM2EzZWQtN2I3NS00M2EyLTk5YjMt
NzMwMGJkMzkwNDRhIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTYwNiw3ICsxNjA2LDcgQEAK
IAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJImlkIjogImYyNjEwNTk0LTgxM2EtNDA3OS1hZmFlLTE1MTA0ODZlZmFi
NCIsCisJCQkJCQkJCQkJImlkIjogIjYxNDY4OWZiLTlkMjYtNGFjMS1iODljLWVjYTMwNWE5NTdm
MiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE2NTUsNyArMTY1NSw3IEBACiAJCQkJCQkJCXsK
IAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCSJpZCI6ICI2YjhlYzk4YS1hZDkxLTRkNWMtYWEwNy02YjNjYzEyNTU5MDIiLAorCQkJCQkJ
CQkJCSJpZCI6ICIyMjFkOWI3NS1hZjVjLTRhYTktYjEzYi02ZDNhZjEwNTc4YWEiLAogCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCkBAIC0xNjkyLDcgKzE2OTIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAi
OTFhMzhlYjgtYTUwMS00NTdmLWE5ZjQtYjYzMjIxYzk1N2Y2IiwKKwkJCQkJCQkJCQkiaWQiOiAi
MzQxNDcyMjMtZjRmMi00YzExLWE2MGItMDkzOTZkNDZjMTUyIiwKIAkJCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LApAQCAtMTc0MSw3ICsxNzQxLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjZlM2E4YzY0LTA0
Y2ItNGM0Zi1iMjNkLTY0NjU1ZjZlNGQyMiIsCisJCQkJCQkJCQkJImlkIjogIjQxYjY4NmI5LTgw
ZTktNGMxNi05MDZkLWNhOTQ4YzA4NzNhNiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTE3Nzgs
NyArMTc3OCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJkY2Y3ZjZmNC02ZWVmLTRhOTAtYTYz
ZC1kZjcwNDQ2ZWIyMDkiLAorCQkJCQkJCQkJCSJpZCI6ICI3YTA1M2I0Yy04N2M2LTQyNmMtOTVk
Ni03NTBjNWQ0NzhhYmEiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0xODI3LDcgKzE4MjcsNyBA
QAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiYmVlN2E3MGQtYWYxZi00YWQxLTljNDAtN2FiZGJjYzk4
M2FlIiwKKwkJCQkJCQkJCQkiaWQiOiAiNTI2MDA3MDUtNDdmNS00ZWM3LWJmM2MtZmYyMjQzMDIy
NjI1IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTg2NCw3ICsxODY0LDcgQEAKIAkJCQkJCQkJ
ewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJImlkIjogIjIxN2VkMjY3LTFkZGItNDk2YS1hN2M1LTZlMjliYWQ5N2M2MCIsCisJCQkJ
CQkJCQkJImlkIjogIjM5YzBhMzE0LTNlZmUtNDk3Ny04YzIwLTMzNjY2ZWE4ZTBlNiIsCiAJCQkJ
CQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAw
XCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUu
c3RhdHVzKDIwMCk7IiwKQEAgLTE5MTcsNyArMTkxNyw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICJhMjU1ZWE2MS01YzVhLTRmMGQtOGE2Ny1jMjQ0NTEwYTYwOGMiLAorCQkJCQkJCQkJCSJpZCI6
ICIwZDUzYjgzZS01YjhiLTRkNjktOTgwZi1kZGMyNzM2ZDJhNWYiLAogCQkJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC0xOTU0LDcgKzE5NTQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiOWNjNzU5OWIt
ZDM3OC00YjA0LWJhZGEtOWQ3NmY2Y2E2MTBmIiwKKwkJCQkJCQkJCQkiaWQiOiAiNDIxN2FiYjgt
M2U2ZS00MTI1LThhYWYtOTJiMzc4MTM2Zjg3IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMTk5
NSw3ICsxOTk1LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAog
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI4MWU0NGUzZi01ZDkxLTQyYTctYjBh
Yi00NzA0ZWIxMjE4NjgiLAorCQkJCQkJCQkiaWQiOiAiZjY2YTc3OTQtYWRlNy00MWU3LWFiYzYt
NTYwYWY3YWNmZDUzIiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjAwNSw3ICsyMDA1LDcgQEAKIAkJCQkJCXsK
IAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJp
ZCI6ICJhNDQxODBjYi0zYjEzLTQyMWItYjE0Ni04MjkwMWYyYjQ1YmQiLAorCQkJCQkJCQkiaWQi
OiAiMDRjYTAyNDctZTMwZS00NzBhLTgyODItZDdhNWVhZmM1YjkyIiwKIAkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAt
MjAyNSw3ICsyMDI1LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
IAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjQ3ZmIxZmE5LTQ4NDktNGVh
OS1iMzZlLWZjZWM4ZGVjZjYyZSIsCisJCQkJCQkJCQkJImlkIjogIjBhMTdiNDJiLWRjNWUtNDU4
OC04OGM1LWI4YmMyOTA2NWRkMCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTIwNjIsNyArMjA2
Miw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIxOTIzY2VkNC00MzYxLTRhNGEtYmY3Yy00ZmNk
ZjNkZjUwZjYiLAorCQkJCQkJCQkJCSJpZCI6ICI1YjkwOGE1Ny0yZmU1LTQzMDktODZhYi05MzNj
MTk2YmFkZmQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0yMTAzLDcgKzIxMDMsNyBAQAogCQkJ
CQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJImlkIjogIjIyNjA0M2U1LTFhODEtNGQzNi1hYTdmLTY3YjEwYmY0MDdhZiIsCisJ
CQkJCQkJCSJpZCI6ICJmZTYxYjc1Zi1mMTA2LTQzZjYtYmNhZi1hZDQ0MDBhZTFlZjQiLAogCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCSIiCkBAIC0yMTEzLDcgKzIxMTMsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjg0MGJmOTcwLTA5ODQt
NDUyZS05MDc2LWI2ZjY2ZDBiNDUxMSIsCisJCQkJCQkJCSJpZCI6ICJmOTRhN2YyNS03MmViLTRi
Y2YtOWRkYi01NzNjYTJjZmJiMWYiLAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
LAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0yMTMzLDcgKzIxMzMsNyBAQAog
CQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6
IHsKLQkJCQkJCQkJCQkiaWQiOiAiODhjNDA3MmYtNTM4Yi00ZDY4LTlkNjEtZjBmYjAxN2U1NDRj
IiwKKwkJCQkJCQkJCQkiaWQiOiAiYzM5MTViNjYtYmNkNC00YTIzLThiNzQtMmZkOWMxNjIxMGQ4
IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMjE3MCw3ICsyMTcwLDcgQEAKIAkJCQkJCQkJewog
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CQkJImlkIjogIjJhZTAwZWIzLTQ5ZTgtNDQ4Ny1iMjdmLWU3Yzc5NTVmZTRmNCIsCisJCQkJCQkJ
CQkJImlkIjogImM5NGQxNGJmLWU0OGYtNGE4NS04OTM5LWU0NWJjNjZiZTZkMCIsCiAJCQkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKQEAgLTIyMTEsNyArMjIxMSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3Rl
biI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiNzBl
MGM3ODMtYzQwNS00ODFjLWI5YzgtNWM4YmVlMzkyZjk3IiwKKwkJCQkJCQkJImlkIjogImViNmE0
MDUxLTNjZDctNGQ3NS05M2VjLThmMGM0NDYzY2M5OCIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTIyMjEsNyAr
MjIyMSw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkiaWQiOiAiODVjNDVlM2ItZmFlNi00YTkwLWFmZDAtOTc2Nzg3Njll
MzJjIiwKKwkJCQkJCQkJImlkIjogIjY0Mjk1NjYxLTMwMGQtNDc3My04ODU2LTZjM2VjYmUxNThi
MCIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJIiIKQEAgLTIyNjMsNyArMjI2Myw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICJkZjRhMDBkMS1kNGY4LTRiMGItODkyZC0yMTUyODE2NWEyY2YiLAorCQkJCQkJCQkJCSJpZCI6
ICI0ZDMzZWU1MC00MzY4LTQyZjMtYjhhNC1hYjBmZjI3ZjAwZjYiLAogCQkJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC0yMzIxLDcgKzIzMjEsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAicHJl
cmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjRmYTU5NjE3LWM5
MjItNDgyNi1hYmM2LTZkOTEwZTkxOGVhNCIsCisJCQkJCQkJCSJpZCI6ICI2YTIxNzA5Ny1mZGY3
LTRjOTktYjAwNS03MjNhY2Y5YjgzODkiLAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3Jp
cHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0yMzMxLDcgKzIzMzEsNyBA
QAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJImlkIjogImQ4M2Y0NDlkLTRhMmUtNDFjOC1iMmNkLTVjZjBjZDFjNDA0ZSIsCisJ
CQkJCQkJCSJpZCI6ICIzN2M4MGEyYS05NTA4LTRlOGQtOTNkNS1kZmJmYWM4MzdiZWQiLAogCQkJ
CQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCSIiCkBAIC0yMzUxLDcgKzIzNTEsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiOThkYTJi
ODYtNGY5Zi00N2RkLWFmYzktMjJjZTk2ZTczZTg0IiwKKwkJCQkJCQkJCQkiaWQiOiAiNmQwNjM1
YWEtMmI2My00ZTBmLTg5ZDItZGE0ZDQ3NzQxMTYwIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAt
MjM4OCw3ICsyMzg4LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
IAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjZkOGE4MjAyLWM4NWQtNGFk
YS1iNDQzLTQ1MTA4YTM3MmFlYSIsCisJCQkJCQkJCQkJImlkIjogIjkwODk1ZjhiLTUzOTgtNGVl
Yi05ZjM1LTU4Njk3MzZkYzQ2YyIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTI0NTksNyArMjQ1
OSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIwZjlkZjQ4Ni05MWNkLTQ2ZmMtYTcxMS01Y2Y5
YmViYjI3MDYiLAorCQkJCQkJCQkJCSJpZCI6ICJlNDkyOTAyMS1hNWIyLTQ4MzktODUzNy1iZmI3
ZWExOTM1YzIiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0yNTE4LDcgKzI1MTgsNyBAQAogCQkJ
CQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJCQkiaWQiOiAiODBlZTkxZmQtOThjYS00YjhlLTgzYjYtMzJiZjNlNTVhMjk1IiwK
KwkJCQkJCQkJCQkiaWQiOiAiMmUyNzAzYTItZDc0Zi00NmJhLWIxNjgtOWYzYjY0ODg4MDg2IiwK
IAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJIiIKIAkJCQkJCQkJCQldLApAQCAtMjU1
Myw3ICsyNTUzLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjQ3ZjRkMjZhLTg0YzItNDk4MC05
ODRkLWRhYzBlOTU1MDNlMSIsCisJCQkJCQkJCQkJImlkIjogImRmOThmMDdkLTRiYjMtNDY3ZC05
MmFhLWU5MTIyZGI0MmUzMSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSIiCiAJ
CQkJCQkJCQkJXSwKQEAgLTI1ODcsNyArMjU4Nyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3Rl
biI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiNmJk
OWU4NWYtZWI3My00N2JlLTgzYjAtMDFiZTc3ODY4ODk5IiwKKwkJCQkJCQkJImlkIjogImMzZTE2
NmVmLWRlNGItNGMwMi04OWMzLTU0N2FhYTdhNjU1NSIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQv
amF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJIiIKQEAgLTI1OTcsNyAr
MjU5Nyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkiaWQiOiAiNDNlYmZhZGItZGM2OC00YzQxLWIzNGUtNDYyZTQyN2Rj
MmVmIiwKKwkJCQkJCQkJImlkIjogImE4Njg5MWYzLThmMWQtNDhjNi05ZTA4LTBhNzkyYmIxNjI3
YSIsCiAJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIsCiAJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJIiIKQEAgLTI2MTcsNyArMjYxNyw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJ
CSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6
ICIwMjllYzg0Yi1lNDFiLTQ3NDQtODc0NS01OGM1MGU1MmJiMTEiLAorCQkJCQkJCQkJCSJpZCI6
ICIzZWExNTFjMC04Mjg2LTQxOWYtYmVkNi0wYzA2ZGE5MTI4NTAiLAogCQkJCQkJCQkJCSJleGVj
IjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDAp
OyIsCkBAIC0yNjU0LDcgKzI2NTQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMDcxZDc1N2Mt
NDFhYS00YjUyLTlhYjQtNmMyYWZkNmVkMmFmIiwKKwkJCQkJCQkJCQkiaWQiOiAiZjEwY2YwOGIt
OWExYS00ZjNlLThiM2UtOGJlNTJmODI3MzRlIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMjY5
NSw3ICsyNjk1LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAog
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIzMDU3MjBhMC0yYzg0LTQzZDMtOGZl
NS01NWY4ZmRmNTExZDgiLAorCQkJCQkJCQkiaWQiOiAiYTFiM2JmMmUtNGQwOS00ZWUxLTkwNjMt
NmM0Yzg0MmZjZDk0IiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMjcwNSw3ICsyNzA1LDcgQEAKIAkJCQkJCXsK
IAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJp
ZCI6ICI4NGU0YWIwNC01YWNjLTQ0MjgtYTgxYS1jMGIwYzUzYjVmZDkiLAorCQkJCQkJCQkiaWQi
OiAiYTY3NDVlOTAtNTM4Mi00NDVkLTlkNjUtZGI3NGFmZjdhZjFiIiwKIAkJCQkJCQkJInR5cGUi
OiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAt
Mjc0Nyw3ICsyNzQ3LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
IAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImI3YTlkNDU5LTliMzktNDBi
Mi1hYmRjLWZkOGZlOGIyMWQ2MSIsCisJCQkJCQkJCQkJImlkIjogImRhMmVjNDQyLTQ0ZmQtNDMy
ZS1iMzM1LWFiZTRkZDczYzE4MiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTI3NzIsNyArMjc3
Miw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJmY2JmYjBlMy1hMTBkLTRmZjgtYWZl
ZC1mNWYzYzlkNTIwOTAiLAorCQkJCQkJCQkJCSJpZCI6ICI0NzY2NTQ1NC1kNDY4LTQ5NjQtODE2
Ny1iZDgwMDUxYTM5MzciLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkiY29uc3Qg
YXZhaWxhYmxlVGVzdHMgPSBwbS5nbG9iYWxzLmdldChcImF2YWlsYWJsZV90ZXN0c1wiKTsiLAog
CQkJCQkJCQkJCQkiY29uc3QgdGVzdCA9IGF2YWlsYWJsZVRlc3RzW09iamVjdC5rZXlzKGF2YWls
YWJsZVRlc3RzKVswXV1bMF0iLApAQCAtMjgxOSw3ICsyODE5LDcgQEAKIAkJCQkJCQkJewogCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJ
ImlkIjogIjkzN2VmNjFkLWQ2ZDYtNGUyNC1iYzNhLTY5NmEyM2NjOTVkNiIsCisJCQkJCQkJCQkJ
ImlkIjogIjhhNTc1YjAyLTQwZmYtNDA0Yy1hMzQ0LWQ3NjhjMjE4Y2FiYSIsCiAJCQkJCQkJCQkJ
ImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSIiCiAJCQkJCQkJCQkJXSwKQEAgLTI4NTQsNyArMjg1NCw3
IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyOWYwNTU0Yi02NmY1LTRlMjYtODBmZi0zOWIzZmFi
YTkyMGEiLAorCQkJCQkJCQkJCSJpZCI6ICJlOGFiMWEwMi0yYmUwLTQzZWUtYmU4Yi0wNDk2N2I1
YWFmZjMiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkiY29uc3QgcmVzcG9uc2Ug
PSBwbS5yZXNwb25zZS5qc29uKCk7IiwKIAkJCQkJCQkJCQkJImNvbnN0IG5leHRUZXN0ID0gcmVz
cG9uc2UubmV4dF90ZXN0OyIsCkBAIC0yOTI2LDcgKzI5MjYsNyBAQAogCQkJCQkJewogCQkJCQkJ
CSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlk
IjogIjliZjY2NDI3LTZmMzktNGYwYS1iMDY1LTE4NDlkNjc5ZWVlNiIsCisJCQkJCQkJCSJpZCI6
ICJiZTQxMGI3NS1kNjc0LTRlZjMtOGRkYS01NzMxZjRkYmNiZDUiLAogCQkJCQkJCQkidHlwZSI6
ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0y
OTM2LDcgKzI5MzYsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjhkMWYzODM3LTFmMDUtNDdlNC04OTdjLWI3
Yzc0ZGE5YmQ0MyIsCisJCQkJCQkJCSJpZCI6ICI3MDZlZmNlYS05MGYyLTQyMDYtODI0Ni1iODIy
NDBlNzE5ZmIiLAogCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCSIiCkBAIC0yOTU2LDcgKzI5NTYsNyBAQAogCQkJCQkJCQl7CiAJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJ
CQkiaWQiOiAiOWJmMGZiNzAtMjRhMC00MTM2LTk5ZmUtOGUwZTQ4OGFmZDFlIiwKKwkJCQkJCQkJ
CQkiaWQiOiAiYTY4ZWRmNjctMGE4MC00NTBkLThmNGUtOTIxNjI2NDkxMTYzIiwKIAkJCQkJCQkJ
CQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwg
ZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLApAQCAtMjk5Myw3ICsyOTkzLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjdl
MzE4NGJmLTE3NDEtNDRjOC04Y2QzLWNmZjMwYzJkZWNhMSIsCisJCQkJCQkJCQkJImlkIjogImQz
NDk1YjdlLWU0YjctNDdhMC05NTg5LWYyZDE0NTkxNTg0NiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTMwNDIsNyArMzA0Miw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJlMzIzYzZhZi1kNGU1
LTRhMDUtYjIwMy0wOWJhNjdmNzdkMjgiLAorCQkJCQkJCQkJCSJpZCI6ICJmMWNhOGZhYi04MGQz
LTRkOTItODg3ZS0wMThjYjY1MzZhOWYiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zMDc5LDcg
KzMwNzksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNDBjZDA0Y2UtODUwZi00OTAzLWJjMjQt
MmU2MmE0ZGY5OGZlIiwKKwkJCQkJCQkJCQkiaWQiOiAiYzIyMGZkYzMtYjQ4My00MGZhLWFlODgt
YmY3ZjU3NDE1ZDkwIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMzEyOCw3ICszMTI4LDcgQEAK
IAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJImlkIjogImRiN2Q1MjA5LTM3YjItNDZiZC04OGFiLWNlNGUyNDE0MDFi
MiIsCisJCQkJCQkJCQkJImlkIjogImE5MTMwYWI5LTU2MmUtNDhkOS1hN2MxLWY4Y2IzYmI4ZDg1
ZSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTMxNjUsNyArMzE2NSw3IEBACiAJCQkJCQkJCXsK
IAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCSJpZCI6ICI0NzdkYzYzZC0wYjQzLTQyMjYtYjg2ZS0xNjNlMmRlOTJiNjciLAorCQkJCQkJ
CQkJCSJpZCI6ICIwMTNmYTY5ZS1mOThiLTQxMjQtYWMzZi1jYmMxYmI0YzUwNzgiLAogCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCkBAIC0zMjQ5LDcgKzMyNDksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAi
YjkyM2Q5NWUtYTdiNC00OWQ0LWFiMmEtMWY0MzVjNDU0Mzg3IiwKKwkJCQkJCQkJCQkiaWQiOiAi
NmVkNGJlZDktYjRkNi00NDYzLWJlY2EtNGM0YzA5YTIzZTQ0IiwKIAkJCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24g
KCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LApAQCAtMzMwOCw3ICszMzA4LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjgxZjM2NzU5LTdh
ZTItNDJiOS04MWQyLTc5ZjU3MDQ2YjQ2ZSIsCisJCQkJCQkJCQkJImlkIjogImUyZWJhMGQ0LTll
MzgtNGE1Yy05YWEwLTk4NzRjNzBmMDc4OCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTMzOTAs
NyArMzM5MCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyODczZDU1NC05ODE2LTQxZjAtOTA1
MS1mYjJjYjEyNzJhNzYiLAorCQkJCQkJCQkJCSJpZCI6ICIyMmQ4MTJhOS01ZDZmLTRjYmItOTI0
ZS1jYmU0MzkyMDcyYWQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVz
dChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAg
ICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zNDQ3LDcgKzM0NDcsNyBA
QAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlw
dCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNTM2MDU3NjQtZDRmMC00YjMyLTlhMzAtNjdlODRkZDEw
NGQ5IiwKKwkJCQkJCQkJCQkiaWQiOiAiZDA2YjRjYjktZjViOS00YTg4LThhMjQtYTE5NWU1OWMy
OThlIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9u
c2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMzUwOCw3ICszNTA4LDcgQEAKIAkJCQkJCXsK
IAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCSJpZCI6ICJjZjE2NWFlOS0xYzQ0LTQ4M2MtOGZlNC1iZDdjZGFhMjA3MTAiLAorCQkJCQkJ
CQkiaWQiOiAiYmNmNDE5ZWItNDk1YS00NTU4LTk1ZGUtNDVkZWEwN2JkNmIwIiwKIAkJCQkJCQkJ
InR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQki
IgpAQCAtMzUxOCw3ICszNTE4LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI2OTM4ZDQ1Ni1hZmQ1LTQzMWIt
YTk1Zi1hMmM0NWEzYWM0NzkiLAorCQkJCQkJCQkiaWQiOiAiODY3OTU2MzAtOWIxOS00OWYzLTk4
OGUtYWMwODllZjc2MTg3IiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJ
CQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMzUzOCw3ICszNTM4LDcgQEAKIAkJCQkJ
CQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCQkJImlkIjogIjY1N2JlNWIzLTRhOTktNDQxNS1hMWVmLTlkZmRjZjU0MWU0NiIsCisJ
CQkJCQkJCQkJImlkIjogIjE4MWUxZjk1LTM0ZDctNGMyYy1iYzNjLWI2ZDVmNDExODA3ZCIsCiAJ
CQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMg
MjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhh
dmUuc3RhdHVzKDIwMCk7IiwKQEAgLTM1NTAsNyArMzU1MCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJ
CQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCSJpZCI6ICIwOTNhMDAxOS1hODRjLTQ0ZmMtYjg5MC0zNjM2OWQ1MWI3ZDUiLAorCQkJCQkJ
CQkJCSJpZCI6ICI0NmUzM2JmZS0wNzgzLTQ5ZjgtYTliYy05OGUyNmEzNGI1NWUiLAogCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSAxMjAwMDA7
IiwKIAkJCQkJCQkJCQkJInZhciBtYW51YWxUaW1lb3V0ID0gMTAwMDAwMDsiLApAQCAtMzYwMSw3
ICszNjAxLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjRhYzU1NjAxLTliZGYtNDFmOC05ZDU5
LWZmMWVlMjBmYTQ3MSIsCisJCQkJCQkJCQkJImlkIjogImRkODZiZTE1LTNlMDgtNDkxZS1iNTZi
LTI3NDUzMWMzNDhlNiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTM2OTYsNyArMzY5Niw3IEBA
CiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkJCSJpZCI6ICIwYjQ5YzAxYi1lOTQzLTQ4NzktYjQ0MS00MDkzODM2ZDA1
ZTkiLAorCQkJCQkJCQkJCSJpZCI6ICI1NjlkYzhmNi0zOWQ0LTRlYzYtOTQ2Ni02NDE1NDY3MWU0
YmMiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBj
b2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC0zNzc5LDcgKzM3NzksNyBAQAogCQkJCQkJCQl7
CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiYjljYmExOWYtODhkMi00MWY2LTk0MGEtYTA5NzlkYTA1NTAwIiwKKwkJCQkJ
CQkJCQkiaWQiOiAiZGI4M2FlOTMtN2E3MC00MjY3LThhMmYtM2QyZTdjYjQwYjg4IiwKIAkJCQkJ
CQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBc
IiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5z
dGF0dXMoMjAwKTsiLApAQCAtMzg2Miw3ICszODYyLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlz
dGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIz
NjY5YzcwYS04OGJjLTQ4NTQtYWJhYy01Y2I4MGEyMWMzOTIiLAorCQkJCQkJCQkiaWQiOiAiNTJj
YzU5N2UtMzBiNy00MjZlLWExNWUtM2E2MjhjNjY2MTlhIiwKIAkJCQkJCQkJInR5cGUiOiAidGV4
dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgpAQCAtMzg3Miw3
ICszODcyLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJz
Y3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICIxYTgxZjVjNS0yOGQ4LTQ5MzUtYjhhZS04MjJlMzNj
MjNkYTkiLAorCQkJCQkJCQkiaWQiOiAiNjBkNmRlZjctY2I1Yi00MzNmLThhNGUtMzNiZDhlMjBi
ZTUzIiwKIAkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwKIAkJCQkJCQkJImV4ZWMi
OiBbCiAJCQkJCQkJCQkiIgpAQCAtMzg5NSw3ICszODk1LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI5ZGU5
MzIxYy1hZTc4LTRhYmQtYTc0MC02NjM0ZTJjYmI5YjkiLAorCQkJCQkJCQkiaWQiOiAiYTFjMmUw
NzAtOTMwOS00ZGVlLWFlNzEtNmVkZjRjYmUzNjMwIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJ
CQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtMzkyMCw3
ICszOTIwLDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI3MzkyODRlNy0xN2FjLTRjMzQtYmFhMS05
MzMzNTNlYjdlY2MiLAorCQkJCQkJCQkiaWQiOiAiMWYwM2FkMjMtNzNjNy00ZTY0LTlkZTktYWJl
OTAyZTJiOTBjIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkiIgogCQkJCQkJCQldLApA
QCAtMzk2NCw3ICszOTY0LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAog
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI1YjE1ZjMzOC1jNzczLTRmNDgtOGY3
OC0xZDdjOTI2YmViODEiLAorCQkJCQkJCQkiaWQiOiAiYmY3NmY0N2MtOTYwYy00MDA3LWE1OWIt
OTI3OTNlNDcwMDgyIiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVz
cG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDA1MCw3ICs0MDUwLDcgQEAKIAkJCQkJ
CXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CSJpZCI6ICJlNjliNzE4OC1iM2M5LTRmNjYtOGM2Yy0zZjMzNDhmODRmNmEiLAorCQkJCQkJCQki
aWQiOiAiMjBjYzlmN2QtYjRiYi00YmIyLWE2MjgtNGNmZGRkODYxMTJhIiwKIAkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsi
LApAQCAtNDA5OCw3ICs0MDk4LDcgQEAKIAkJCQkJCXsKIAkJCQkJCQkibGlzdGVuIjogInRlc3Qi
LAogCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCSJpZCI6ICI4NmUyMGM0ZC01Nzk3LTRiNmUt
YThjYy0xNGUyODRlN2M0OTEiLAorCQkJCQkJCQkiaWQiOiAiMTFmY2M1MWItZWZmZC00NTIyLTgx
MjYtNmI2YTIwNDM1OTI3IiwKIAkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDIxNSw3ICs0MjE1LDcgQEAKIAkJ
CQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJImlkIjogImU4NWZkNTM5LTQ1OTgtNDdhOS04NzY4LTY1NjY1NmYyOWZlYyIs
CisJCQkJCQkJCQkJImlkIjogIjJiNzE5OGVmLTYwNTEtNDBlZS1hZjRmLTQ2NmJmNDFlMzc2OCIs
CiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQyNzgsNyArNDI3OCw3IEBACiAJCQkJCQl7CiAJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAi
OGU5ZmU0YWYtMGQ1MC00OWViLThhNGEtMDBlMTMwMjFiNGE2IiwKKwkJCQkJCQkJImlkIjogImNh
YmNjZmUxLTg4MmUtNDhiZi05OTQ2LTRiOGY2N2IwOWYwNCIsCiAJCQkJCQkJCSJleGVjIjogWwog
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQz
MTQsNyArNDMxNCw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiOTQxODExMmEtMDNmNi00NjQxLTg5M2UtMDc2
Yzg5MjJjMGFmIiwKKwkJCQkJCQkJImlkIjogImNhZDk1ZWQwLTgyMmEtNDMzYi1iNDExLWFkZjNi
MmU1ZWE3NyIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMg
Y29kZSBpcyA0MDRcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDQwNCk7IiwKQEAgLTQzNTksNyArNDM1OSw3IEBACiAJCQkJCQkJCXsK
IAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCSJpZCI6ICJhNjk5NWZmMS1kNjI2LTRmNGYtYTFlMC01NjdmMzQyOWJmNTIiLAorCQkJCQkJ
CQkJCSJpZCI6ICIzYzgyYjE5OS1lMjdmLTRiODYtYjk4ZC05ZjEwYWQyYjM2M2YiLAogCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwi
LCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0
YXR1cygyMDApOyIsCkBAIC00Mzg0LDcgKzQzODQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQki
aWQiOiAiODVjN2FkOGQtNWZjOS00MDNkLTg3MTUtYzY1ZDVmZjEzMjNlIiwKKwkJCQkJCQkJCQki
aWQiOiAiNzBhZDE2ZDMtNWRmNy00Yzk0LTk0OTgtZjVhYmQwYjZmNzZjIiwKIAkJCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gcG0uZ2xvYmFscy5n
ZXQoXCJhdmFpbGFibGVfdGVzdHNcIik7IiwKIAkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0gYXZh
aWxhYmxlVGVzdHNbT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpWzBdXVswXTsiLApAQCAtNDQz
Myw3ICs0NDMzLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjM1Y2Y0NzQ1LTAzMDEtNGM5Yy1i
NmIzLTQwOTQ1Mjk5NTMzZiIsCisJCQkJCQkJCQkJImlkIjogIjA3NGFmZjY4LTkzMWQtNGQzMS1i
MTM4LWQ5MDY4YmM1NzQyMiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQki
ICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQ0NzAsNyArNDQ3MCw3
IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICI2ZGMwODJlZi04MGZmLTQwN2EtYTU2Mi1lMjVlMzc0
NzZlZWUiLAorCQkJCQkJCQkJCSJpZCI6ICI5NDQwNTgzYy1iOGE1LTQ0ODgtOTNhYS1lMzdkYWY5
NjQ4NWEiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1
cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC00NTI5LDcgKzQ1MjksNyBAQAogCQkJCQkJ
CQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJ
CQkJCQkJCQkiaWQiOiAiZmNhZGU2NjMtZGJkOC00MmM5LTgzNDQtNTNhZTFmZWI2ZmNiIiwKKwkJ
CQkJCQkJCQkiaWQiOiAiNTBiOWFmZTctNjNlZi00MGFlLWE2ZWEtNWFiYmQ0MGYyNTRkIiwKIAkJ
CQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAy
MDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2
ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDU4MSw3ICs0NTgxLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlk
IjogIjM2ZDcwZDA4LTNjYWEtNDMxMi05YmJkLWFlZDE1ZmQyMzhkZCIsCisJCQkJCQkJCQkJImlk
IjogImYwYzc3ZGQwLWQ0MjQtNGI2ZS04YmZhLTNlMGVhNTkwODUxNCIsCiAJCQkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKQEAgLTQ2MzYsNyArNDYzNiw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4i
OiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyMTFhZGNm
Ny1kNzFhLTRiMGYtOTRhYi1kMjg1ZmM4MzY3ZGYiLAorCQkJCQkJCQkJCSJpZCI6ICJiZmRiODJj
Mi0xNDExLTRlMjItODEwYi1hMWY3ZWRiOGQyZjQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJ
CQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwK
IAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC00
Njk0LDcgKzQ2OTQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAog
CQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiNTQxMGM5YzItZWJiZS00YmMx
LWFjMTItZTI2MDJkOGFkZTU3IiwKKwkJCQkJCQkJCQkiaWQiOiAiMmE2MDI5NmQtOTUzYi00MzBk
LWEyMWQtZGY5OTI2NWI5MGMxIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBt
LnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJ
CSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNDc1MSw3ICs0NzUx
LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJz
Y3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImU0ZjlhMDNmLWM3MzEtNDE5Mi1hOWE5LWFhOWUz
MTVjM2M0NCIsCisJCQkJCQkJCQkJImlkIjogIjQyMTY4YjBlLThiZTktNDIxMS04YzRhLTVhMDc3
NmEzZDEzMSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJl
c3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTQ4MTIsNyArNDgxMiw3IEBACiAJCQkJ
CQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0Ijogewot
CQkJCQkJCQkJCSJpZCI6ICI5ZjY4NGY3Ny00ZWQwLTRjZDItOTlhNC1iMWMxMzQ0MzJlOWYiLAor
CQkJCQkJCQkJCSJpZCI6ICI5NWEyM2VlMS1mOWU5LTRiNmEtYWJmNS00YWZhNDhiYTUyNTQiLAog
CQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlz
IDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5o
YXZlLnN0YXR1cygyMDApOyIsCkBAIC00ODU5LDcgKzQ4NTksNyBAQAogCQkJCQkJCQl7CiAJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQki
aWQiOiAiMzM2MDFkZDAtNjc4Ni00YzhhLWE2YjUtN2YxMzg2MTI5ZGU3IiwKKwkJCQkJCQkJCQki
aWQiOiAiNzA3YzQwM2ItNzEzNS00ZTBiLWFhZTgtNGZhNGYwN2RhYWM5IiwKIAkJCQkJCQkJCQki
ZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMo
MjAwKTsiLApAQCAtNDkxOCw3ICs0OTE4LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjk3YmU5
MmYxLWE4ZDEtNDFlYS1iNDFkLTBjYTA4MTEzZTZlMSIsCisJCQkJCQkJCQkJImlkIjogIjdiNzdj
Yjk0LTQxNTktNDYyYy04NzdiLTIzYjQ4NDQ2YTFiYiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAg
LTQ5NzMsNyArNDk3Myw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyNGVjMmI3OS1jMjY2LTQ3
M2YtODU3OS03YjY5NDA3OWQ2NDAiLAorCQkJCQkJCQkJCSJpZCI6ICI4YmE1NzI2Yi1lZDM3LTQ4
ZjUtOTM4OS00ZjYwNDFiMWVlYWEiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQki
cG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJ
CQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC01MDMxLDcgKzUw
MzEsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJ
InNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMWY0N2IzOWYtNzI3Zi00M2I0LTkzNGQtYzdm
NjJiMjY4YmFhIiwKKwkJCQkJCQkJCQkiaWQiOiAiNWFjNGRlMTctY2FmMy00M2IyLThlYjgtZmVl
MjZlZWQ1Yzk2IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJT
dGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0u
cmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTEyNyw3ICs1MTI3LDcgQEAKIAkJ
CQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJImlkIjogImU3MzRmMDc0LWEwYzItNGU1NC1iNDI3LTI4MjdmYTczMjg0MyIs
CisJCQkJCQkJCQkJImlkIjogIjM4YWZiYzk0LTUwMmUtNGFhNy04NWMyLTcwZGJiZGFlN2UxMyIs
CiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUg
aXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRv
LmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTUxOTUsNyArNTE5NSw3IEBACiAJCQkJCQkJCXsKIAkJ
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CSJpZCI6ICJmZDJjMTFlZS01ZWNhLTQzZjMtODlhNy0xMzM2MDJjODAzNGEiLAorCQkJCQkJCQkJ
CSJpZCI6ICI4NWNmNzk0MC03M2QwLTQ0MTktODFhMS0zOTBjOWM0YzNhMWMiLAogCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBm
dW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC01MjUyLDcgKzUyNTIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMTEy
ZWUzZDUtZDRlMC00ODM4LTg3OWUtZjc0YzM4ZDAyMThjIiwKKwkJCQkJCQkJCQkiaWQiOiAiM2Uy
ODhkMmMtODY1YS00OGFiLWFjNTMtY2RkZDE2MGE5ODQwIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApA
QCAtNTMxMCw3ICs1MzEwLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjc5YTg0ZWQ5LWJiMDct
NDkzZC1hYjM0LThlNzY5M2IzZWJiZCIsCisJCQkJCQkJCQkJImlkIjogIjc4NmRiYjY3LTQ3ZTgt
NDAwOS05OTFjLTE2NzBkMGFiMDRlMSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJ
CQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTUzNTcsNyAr
NTM1Nyw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJ
CQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJjMTgyOTA0My0xOGRkLTRjYzEtODA5MS00
MTk4MTM0OWY0ZTMiLAorCQkJCQkJCQkJCSJpZCI6ICJkYjhmY2ZlMi04OWYzLTRlMWMtYmU4Mi0w
NTk0MTIyMTgwNzMiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChc
IlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBw
bS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC01NDE2LDcgKzU0MTYsNyBAQAog
CQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6
IHsKLQkJCQkJCQkJCQkiaWQiOiAiNTlmZWU5ZGYtOTk0NS00ZmRmLWExMDItOWMxYjkyZDkxNWMx
IiwKKwkJCQkJCQkJCQkiaWQiOiAiZjg5MzgxNzgtYzkyNC00MDM4LWExY2ItNWQ2ZmM4OGMwOGQy
IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29k
ZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2Uu
dG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTQ3NCw3ICs1NDc0LDcgQEAKIAkJCQkJCQkJewog
CQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJ
CQkJImlkIjogIjkxZmEzOGFjLTNiMDYtNDg4YS04OTJlLTU5NDU4ZTg4YTRkYSIsCisJCQkJCQkJ
CQkJImlkIjogIjVmZjNmZTkzLTI2NDktNDg3NC05YWU2LWNlMGJjMjg4NzY4NSIsCiAJCQkJCQkJ
CQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIs
IGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3Rh
dHVzKDIwMCk7IiwKQEAgLTU1MzQsNyArNTUzNCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJs
aXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJk
Y2EwYjQyZS05MDU0LTQzNTQtODdlNS1lOGQyMzYyMTYwNTAiLAorCQkJCQkJCQkJCSJpZCI6ICJm
ZWUxNWQ3MS1hYmZjLTQ2ZjYtYWQ2My1iZGY2N2M0MjkwNWQiLAogCQkJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAo
KSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CkBAIC01NjM5LDcgKzU2MzksNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRl
c3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMTRlYzkyNTQtNWE0
MC00Yzg2LTlhN2YtNzJmNDNhMzVhNzliIiwKKwkJCQkJCQkJCQkiaWQiOiAiOWY3Mzk4MzItM2U5
MC00ZWZjLTk2Y2YtMjg4OWYwOGFmNzE4IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJ
CQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTcyMiw3
ICs1NzIyLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjEzMjU3NGRjLTM2ODgtNDdlMy04ZjUw
LTMyMzVmMTg4MDZmNyIsCisJCQkJCQkJCQkJImlkIjogIjM1M2NkZTRlLTVjNTctNGRmNy1iNjll
LTdkYWM1Y2Y0MDhlMyIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0
KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTU4MjQsNyArNTgyNCw3IEBA
CiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjJmMjMzZGNmLWQ5MzQtNDQ3OS04OTA4LWIx
MzQ5ZTZlYTU0ZCIsCisJCQkJCQkJCQkJCQkiaWQiOiAiODRhMGE0NGMtZmRhYy00MmU1LWEzZjgt
N2JiZTdmYzAxZmQ4IiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJ
CSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTg0MCw3ICs1ODQw
LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiMjkzMGE4MjEtMmM2ZS00
N2I5LTg5ZDktOTBlYmUxY2ZmNTJhIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICI2NzQ4YzUzNy00Mjg2
LTQ4YmItOWExMC03YzE4MjhkN2Y2ZTgiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCQkJImNvbnN0IGF2YWlsYWJsZVRlc3RzID0gcG0uZ2xvYmFscy5nZXQoXCJhdmFpbGFibGVf
dGVzdHNcIik7IiwKIAkJCQkJCQkJCQkJCQkiY29uc3QgdGVzdDEgPSBhdmFpbGFibGVUZXN0c1tP
YmplY3Qua2V5cyhhdmFpbGFibGVUZXN0cylbMF1dWzBdOyIsCkBAIC01ODkxLDcgKzU4OTEsNyBA
QAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJ
InNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIxMmYzNjE2Yi03MDdlLTRhNzEtOGRiOC04
OWZjMTk1YzFmY2QiLAorCQkJCQkJCQkJCQkJImlkIjogIjU3OWZlYjM5LTI1YzUtNDgyYS05NWUx
LWJlNjg2MTE0NDExMCIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJCQkicG0u
dGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTU5MjgsNyArNTky
OCw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogImYzNWYxNTA5LTM4M2YtNDlhZi1h
MzBlLTQxZTFkZjRlZmEwNCIsCisJCQkJCQkJCQkJCQkiaWQiOiAiMjM5OWE5ZjYtMDY4OS00MDM1
LThmMDEtMjJhZDQ3MjYyMzJiIiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNTk3NCw3
ICs1OTc0LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiYjAxNWYxNjEtZTM5MC00
MjI0LTlmMjYtOTIzOTVmNDRjNzcyIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICI3NTE3Nzg5MC1hNzcy
LTRiY2MtOWQ5NC02YTdmNDg1YjY0N2IiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJ
CQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02
MDI4LDcgKzYwMjgsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJkYTNkMGMxNy02
YjJiLTRkNjEtYWQwMS1kYmE3MzY0MjUzODgiLAorCQkJCQkJCQkJCQkJImlkIjogImUzNWRlMTUx
LWYxZDUtNGNiNC1iNDAzLTk1M2JiN2RjYTg3ZiIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTYwNDQsNyArNjA0NCw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjog
InByZXJlcXVlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjog
IjdkYTgxZTgxLWQzNDQtNDQ1OS1iNzAwLTE5YjkzZDQ5ZDNjOSIsCisJCQkJCQkJCQkJCQkiaWQi
OiAiMzBiMjk4MjgtY2QxYy00NjlhLTg3M2MtNzdhMzFjZTdiN2Y0IiwKIAkJCQkJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCBhdmFpbGFibGVUZXN0cyA9IHBtLmdsb2JhbHMu
Z2V0KFwiYXZhaWxhYmxlX3Rlc3RzXCIpOyIsCiAJCQkJCQkJCQkJCQkJImNvbnN0IHRlc3QxID0g
YXZhaWxhYmxlVGVzdHNbT2JqZWN0LmtleXMoYXZhaWxhYmxlVGVzdHMpWzBdXVswXTsiLApAQCAt
NjA5Myw3ICs2MDkzLDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiMzI5NmM3YmEt
NjdhNi00MDVkLWE3OGEtNTFkZDY0NDMyMzAxIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICIyOWNkZDky
YS0yOGM0LTQyNmUtOWY1My04NTYzYmMzYTM2ZTciLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CkBAIC02MTMwLDcgKzYxMzAsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6
ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI3MmRl
YjU1Yy00NTgzLTQ3NDEtOWNmOC05NzcxMzc2MmI4OTQiLAorCQkJCQkJCQkJCQkJImlkIjogIjhj
YzYxNjkzLWE3N2MtNDY3Yy1hN2RmLTVjMjM5YTNiZjU2OSIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlv
biAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKQEAgLTYxNzYsNyArNjE3Niw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlz
dGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjog
ImQ2OTVmMzAwLWE3NzMtNDY1NC1iMzQ2LTk1YzUzNmNhZDE5ZSIsCisJCQkJCQkJCQkJCQkiaWQi
OiAiYWUzMGU0N2UtYmIzZC00NDc5LTk0NTUtMzgyM2JjMmFkZjg4IiwKIAkJCQkJCQkJCQkJCSJl
eGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0
dXMoMjAwKTsiLApAQCAtNjIzNCw3ICs2MjM0LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxp
c3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjY4
Mzg5NjVmLTdhMjctNDhkNS04YzI3LWY1NWQ0NzU2NTg4ZiIsCisJCQkJCQkJCQkJImlkIjogImU2
MTRlOTdkLTE1ZTQtNGM5Yi05ODdmLWJkOWYyNzJiZDI5NSIsCiAJCQkJCQkJCQkJImV4ZWMiOiBb
CiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTYyNzEsNyArNjI3MSw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJiY2MyYzhjNC05NGMw
LTQyMjctYTYyNy0zZTBkNWJlMmU3YjgiLAorCQkJCQkJCQkJCSJpZCI6ICJlNzJhNzM4Ny1iZDQy
LTQyMjEtYmUyYS0yMWJjYTcwMmQxZmUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02MzA4LDcg
KzYzMDgsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiN2IzNzA3MjMtMDUwNi00YjVlLTk0MWEt
ZjMxYTYyOGEyOWY2IiwKKwkJCQkJCQkJCQkiaWQiOiAiZGJjZDcyMmItNDgwYS00NTQ0LTgwN2Et
NmY3ZDZlZGNiNDQxIiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3Qo
XCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAg
cG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjM1Niw3ICs2MzU2LDcgQEAK
IAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQi
OiB7Ci0JCQkJCQkJCQkJImlkIjogImI1MjQzOTc5LWI2M2EtNGJiZi1iZDUxLTE1MjlkYTFlMWY2
ZCIsCisJCQkJCQkJCQkJImlkIjogIjllMzAyNjEwLWM3YTctNGRlMC05ODlhLTk5MDNlNzc0OTll
YiIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNl
LnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTYzNjgsNyArNjM2OCw3IEBACiAJCQkJCQkJCXsK
IAkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJCQkJCQkJCQkic2NyaXB0Ijogewot
CQkJCQkJCQkJCSJpZCI6ICI4MWYzZGEyOS04YTBjLTQ0MDMtOTI5ZC04NjU5MGIwMWVmMmYiLAor
CQkJCQkJCQkJCSJpZCI6ICI5ZDc5YzIzMy1lM2EzLTQ5NzItYWY3Ni1hYTNkZmEyYWRlNGIiLAog
CQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkiIgogCQkJCQkJCQkJCV0sCkBAIC02NDA0
LDcgKzY0MDQsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMDE2OGVhM2YtOWJmNy00ZWE3LWEz
YWQtNzQ1YzI3MDRkOTdlIiwKKwkJCQkJCQkJCQkiaWQiOiAiMGE0M2RhY2QtODEwNi00MTRjLWI5
YjQtNzUwYzJhMDM3NWE0IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIg
ICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNjQyMSw3ICs2NDIxLDcg
QEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkJ
CSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImU0ZWZkYWM5LTJkMDAtNDg1My1iMTQ1LTE4
YTZkNDRmZjEzOSIsCisJCQkJCQkJCQkJImlkIjogIjRiMjllNjUxLTQ3ZTUtNDhhZS1hYTVkLWIw
NGI2MmU0N2U1NCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSIiCiAJCQkJCQkJ
CQkJXSwKQEAgLTY0NjcsNyArNjQ2Nyw3IEBACiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkiaWQiOiAiZTY4NWE5ODktOGVmNy00
ZThmLWEzYzctYjU3OWM2NjQzMGY5IiwKKwkJCQkJCQkJImlkIjogImQwZWRlZGRlLTQ0YTAtNDhm
My1iYzIxLWVhYjMzMDJiN2I0ZCIsCiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInBtLnRl
c3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkiICAg
IHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTY0OTIsNyArNjQ5Miw3IEBA
CiAJCQkJCQl7CiAJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKIAkJCQkJCQkic2NyaXB0
IjogewotCQkJCQkJCQkiaWQiOiAiODUxNzM2MGItMmU2Ni00Y2E5LTkzMzktMDE3NjIyYzM5ODg4
IiwKKwkJCQkJCQkJImlkIjogImVmMWQxODFjLTEwYjgtNGJkZC05YjVjLWYxNGQ2ZDljYTA0NiIs
CiAJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJInZhciBhdXRvbWF0aWNUaW1lb3V0ID0gMTIw
MDAwOyIsCiAJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSAxMDAwMDAwOyIsCkBAIC02NTQy
LDcgKzY1NDIsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJ
InNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjRlODVlY2FmLTQzNjQtNDY4MS1hYjhhLTIyMWQ0
MDY4MWM0NCIsCisJCQkJCQkJCSJpZCI6ICJlNGVkODM4ZS0wMmUzLTRmZTctOWYyNy1iOWFlZDZk
NzJkMDIiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNv
ZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50
by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02NTg2LDcgKzY1ODYsNyBAQAogCQkJCQkJewogCQkJ
CQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjog
ImE2MjIxNTYwLTllYmEtNGZiNC1hN2NiLWExNTcwYTM3NDI1ZCIsCisJCQkJCQkJCSJpZCI6ICI0
MGI1YTEzNS1hODM5LTRmZmMtOThlNS02ZDg5MjNkNTM3NDMiLAogCQkJCQkJCQkiZXhlYyI6IFsK
IAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsi
LAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02
NjM5LDcgKzY2MzksNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJ
CQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjc3ZDE0NTY3LTQ2MDAtNDRmZC05OGU0LTk5
ZTExM2RhNjc4MSIsCisJCQkJCQkJCSJpZCI6ICIzMjk1MzY0MC0zYjEzLTRkZjAtOGFmMi0zNjU0
NGViZmU1OWUiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVz
IGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25z
ZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02Njg1LDcgKzY2ODUsNyBAQAogCQkJCQkJewog
CQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlk
IjogIjU1YjQ4NmRhLWM1YWUtNDlkNC1iMTFhLTI0NzM4NzI2N2M5YSIsCisJCQkJCQkJCSJpZCI6
ICI3ODQ3MzRkMi02MWRiLTRmZjMtYjA2My1iYTlmYzA3MTc2ZDMiLAogCQkJCQkJCQkiZXhlYyI6
IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgp
IHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBA
IC02NzM4LDcgKzY3MzgsNyBAQAogCQkJCQkJewogCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJImlkIjogIjk1MzAwMmVjLWQ4ZGYtNDc3YS1hMGRj
LWY0ZTRhMmVmZDAzMSIsCisJCQkJCQkJCSJpZCI6ICI3NWEyYmJjNS00N2FhLTQ3MDgtYjc4My0y
YzVlMzZmNTllMWEiLAogCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCSJwbS50ZXN0KFwiU3Rh
dHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJIiAgICBwbS5yZXNw
b25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC02Nzc5LDY0MCArNjc3OSw2IEBACiAJCQld
LAogCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30KIAkJfSwKLQkJewotCQkJIm5hbWUi
OiAiRGV2aWNlcyBBUEkiLAotCQkJIml0ZW0iOiBbCi0JCQkJewotCQkJCQkibmFtZSI6ICJjcmVh
dGUiLAotCQkJCQkiaXRlbSI6IFsKLQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJDcmVhdGUgZGV2
aWNlIiwKLQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJsaXN0ZW4iOiAi
dGVzdCIsCi0JCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyODY0MjZlYy1j
Mzk0LTQ4YTQtYTkwZi1jNmRkODBjN2JlZjEiLAotCQkJCQkJCQkJCSJleGVjIjogWwotCQkJCQkJ
CQkJCQkicG0udGVzdChcIlN1Y2Nlc3NmdWwgUE9TVCByZXF1ZXN0XCIsIGZ1bmN0aW9uICgpIHsi
LAotCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25zZS5jb2RlKS50by5iZS5vbmVP
ZihbMjAwLDIwMSwyMDJdKTsiLAotCQkJCQkJCQkJCQkifSk7IiwKLQkJCQkJCQkJCQkJIiIsCi0J
CQkJCQkJCQkJCSJ2YXIgcmVzcG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKLQkJCQkJCQkJ
CQkJIiIsCi0JCQkJCQkJCQkJCSJwbS50ZXN0KCdTY2hlbWEgaXMgdmFsaWQnLCBmdW5jdGlvbigp
IHsiLAotCQkJCQkJCQkJCQkiICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJvcGVydHko
XCJ0b2tlblwiKTsiLAotCQkJCQkJCQkJCQkifSk7IiwKLQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJ
CQkJCSJwbS50ZXN0KCdEYXRhIGlzIHZhbGlkJywgZnVuY3Rpb24oKSB7IiwKLQkJCQkJCQkJCQkJ
IiAgcG0uZXhwZWN0KHR5cGVvZiByZXNwb25zZS50b2tlbikudG8uZXF1YWwoXCJzdHJpbmdcIik7
IiwKLQkJCQkJCQkJCQkJIn0pOyIKLQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCSJ0eXBlIjogInRl
eHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCX0KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0JCQkJCQkJ
InJlcXVlc3QiOiB7Ci0JCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCi0JCQkJCQkJCSJoZWFkZXIi
OiBbXSwKLQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8v
e3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQki
cHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCi0J
CQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19IiwKLQkJCQkJCQkJCQki
YXBpIiwKLQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJIiIKLQkJCQkJCQkJCV0KLQkJ
CQkJCQkJfQotCQkJCQkJCX0sCi0JCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJCX0sCi0JCQkJ
CQl7Ci0JCQkJCQkJIm5hbWUiOiAiQ2xlYW4gdXA6IFdhaXQgZGV2aWNlIHRpbWVvdXQiLAotCQkJ
CQkJCSJldmVudCI6IFsKLQkJCQkJCQkJewotCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjNiZGIwZjdjLTEyNjEtNDY1ZS05
YjAyLTAwNzAwMDVmMGM0MyIsCi0JCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCSIiCi0J
CQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJ
CQl9Ci0JCQkJCQkJCX0sCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVz
dCIsCi0JCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICJhMWNmNTg4MC03Yjhl
LTRiYzYtOWQ5Mi01OTYzMmE3MTljNTQiLAotCQkJCQkJCQkJCSJleGVjIjogWwotCQkJCQkJCQkJ
CQkidmFyIHRpbWVvdXQgPSBwYXJzZUludChwbS5lbnZpcm9ubWVudC5nZXQoXCJkZXZpY2VfdGlt
ZW91dFwiKSkgKyA1MDAiLAotCQkJCQkJCQkJCQkiIiwKLQkJCQkJCQkJCQkJInNldFRpbWVvdXQo
ZnVuY3Rpb24gKCkge30sIHRpbWVvdXQpOyIKLQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCX0KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0J
CQkJCQkJInJlcXVlc3QiOiB7Ci0JCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKLQkJCQkJCQkJImhl
YWRlciI6IFtdLAotCQkJCQkJCQkidXJsIjogewotCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29s
fX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJ
CQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJCQkJImhvc3QiOiBbCi0JCQkJ
CQkJCQkJInt7aG9zdH19IgotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19
IiwKLQkJCQkJCQkJCSJwYXRoIjogWwotCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJ
CQkJCSJhcGkiLAotCQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJ
XQotCQkJCQkJCQl9Ci0JCQkJCQkJfSwKLQkJCQkJCQkicmVzcG9uc2UiOiBbXQotCQkJCQkJfQot
CQkJCQldLAotCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZpb3IiOiB7fSwKLQkJCQkJIl9wb3N0
bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQotCQkJCX0sCi0JCQkJewotCQkJCQkibmFtZSI6ICJyZWFk
IGRldmljZSIsCi0JCQkJCSJpdGVtIjogWwotCQkJCQkJewotCQkJCQkJCSJuYW1lIjogIkRldmlj
ZSBub3QgZm91bmQiLAotCQkJCQkJCSJpdGVtIjogWwotCQkJCQkJCQl7Ci0JCQkJCQkJCQkibmFt
ZSI6ICJSZWFkIGRldmljZSIsCi0JCQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCQkJewotCQkJ
CQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJ
CQkJCQkJImlkIjogImE0NDAxY2JjLTBhM2EtNGMyZC1iMWVkLWU3ZDY4Njc2MTRmZiIsCi0JCQkJ
CQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN1Y2Nlc3NmdWwgR0VU
IHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCi0JCQkJCQkJCQkJCQkJIiAgICBwbS5leHBlY3Qo
cG0ucmVzcG9uc2UuY29kZSkudG8uZXF1YWwoNDA0KTsiLAotCQkJCQkJCQkJCQkJCSJ9KTsiCi0J
CQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJ
CQkJCQkJCQl9Ci0JCQkJCQkJCQkJfSwKLQkJCQkJCQkJCQl7Ci0JCQkJCQkJCQkJCSJsaXN0ZW4i
OiAicHJlcmVxdWVzdCIsCi0JCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQi
OiAiMTY0NGZkNzAtYjRjNC00MjA3LThlMTItNjc3NTJhOTg0NDE3IiwKLQkJCQkJCQkJCQkJCSJl
eGVjIjogWwotCQkJCQkJCQkJCQkJCSIiCi0JCQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkJInR5
cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQkJfQotCQkJCQkJ
CQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwK
LQkJCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCQkJ
InJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBp
L2RldmljZXMvaW52YWxpZF90b2tlbiIsCi0JCQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3Rv
Y29sfX0iLAotCQkJCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkJCSJ7e2hvc3R9fSIKLQkJ
CQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJCQki
cGF0aCI6IFsKLQkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJCQkJCQkJImFwaSIs
Ci0JCQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJCQkiaW52YWxpZF90b2tlbiIKLQkJ
CQkJCQkJCQkJXQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCX0sCi0JCQkJCQkJCQkicmVzcG9uc2Ui
OiBbXQotCQkJCQkJCQl9Ci0JCQkJCQkJXSwKLQkJCQkJCQkicHJvdG9jb2xQcm9maWxlQmVoYXZp
b3IiOiB7fSwKLQkJCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCi0JCQkJCQl9LAot
CQkJCQkJewotCQkJCQkJCSJuYW1lIjogIkRldmljZSBmb3VuZCIsCi0JCQkJCQkJIml0ZW0iOiBb
Ci0JCQkJCQkJCXsKLQkJCQkJCQkJCSJuYW1lIjogIlByZXA6IENyZWF0ZSBkZXZpY2UiLAotCQkJ
CQkJCQkJImV2ZW50IjogWwotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKLQkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJjNGYxNDEzNy01
Y2VkLTQ0OWItYTg3Mi1iN2Q1NDFlMmY2YWYiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJ
CQkJCQkJCQkJInZhciByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAotCQkJCQkJCQkJ
CQkJCSJ2YXIgdG9rZW4gPSByZXNwb25zZS50b2tlbjsiLAotCQkJCQkJCQkJCQkJCSIiLAotCQkJ
CQkJCQkJCQkJCSJwbS5nbG9iYWxzLnNldChcImRldmljZV90b2tlblwiLCB0b2tlbikiCi0JCQkJ
CQkJCQkJCQldLAotCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJ
CQkJCQl9Ci0JCQkJCQkJCQkJfQotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0Ijogewot
CQkJCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCi0JCQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJ
CQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0
fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzLyIsCi0JCQkJCQkJCQkJCSJwcm90
b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkJ
CSJ7e2hvc3R9fSIKLQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0i
LAotCQkJCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAotCQkJ
CQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJCQkiIgot
CQkJCQkJCQkJCQldCi0JCQkJCQkJCQkJfQotCQkJCQkJCQkJfSwKLQkJCQkJCQkJCSJyZXNwb25z
ZSI6IFtdCi0JCQkJCQkJCX0sCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJuYW1lIjogIlJlYWQgZGV2
aWNlIiwKLQkJCQkJCQkJCSJldmVudCI6IFsKLQkJCQkJCQkJCQl7Ci0JCQkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCi0JCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAi
NjFhODQwZjEtZDNjZC00ZDdhLWE1NGYtMzBkYTEyNjZlNDhmIiwKLQkJCQkJCQkJCQkJCSJleGVj
IjogWwotCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3VjY2Vzc2Z1bCBHRVQgcmVxdWVzdFwiLCBm
dW5jdGlvbiAoKSB7IiwKLQkJCQkJCQkJCQkJCQkiICAgIHBtLmV4cGVjdChwbS5yZXNwb25zZS5j
b2RlKS50by5iZS5vbmVPZihbMjAwXSk7IiwKLQkJCQkJCQkJCQkJCQkifSk7IiwKLQkJCQkJCQkJ
CQkJCQkiIiwKLQkJCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigp
OyIsCi0JCQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCQkJInBtLnRlc3QoJ1NjaGVtYSBpcyB2
YWxpZCcsIGZ1bmN0aW9uKCkgeyIsCi0JCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNl
KS50by5oYXZlLnByb3BlcnR5KFwidG9rZW5cIik7IiwKLQkJCQkJCQkJCQkJCQkiICBwbS5leHBl
Y3QocmVzcG9uc2UpLnRvLmhhdmUucHJvcGVydHkoXCJ1c2VyX2FnZW50XCIpOyIsCi0JCQkJCQkJ
CQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZlLnByb3BlcnR5KFwibGFzdF9hY3Rp
dmVcIik7IiwKLQkJCQkJCQkJCQkJCQkiICBwbS5leHBlY3QocmVzcG9uc2UpLnRvLmhhdmUucHJv
cGVydHkoXCJuYW1lXCIpOyIsCi0JCQkJCQkJCQkJCQkJIn0pOyIsCi0JCQkJCQkJCQkJCQkJIiIs
Ci0JCQkJCQkJCQkJCQkJInBtLnRlc3QoJ0RhdGEgaXMgdmFsaWQnLCBmdW5jdGlvbigpIHsiLAot
CQkJCQkJCQkJCQkJCSIgIHBtLmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UudG9rZW4pLnRvLmVxdWFs
KFwic3RyaW5nXCIpOyIsCi0JCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHR5cGVvZiByZXNwb25z
ZS51c2VyX2FnZW50KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkJCSIgIHBt
LmV4cGVjdCh0eXBlb2YgcmVzcG9uc2UubGFzdF9hY3RpdmUpLnRvLmVxdWFsKFwic3RyaW5nXCIp
OyIsCi0JCQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHR5cGVvZiByZXNwb25zZS5uYW1lKS50by5l
cXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkJCSJ9KTsiCi0JCQkJCQkJCQkJCQldLAot
CQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJCQkJCQl9Ci0JCQkJ
CQkJCQkJfQotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkJCSJt
ZXRob2QiOiAiR0VUIiwKLQkJCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCQkJInVybCI6
IHsKLQkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97
e3dlYl9yb290fX0vYXBpL2RldmljZXMve3tkZXZpY2VfdG9rZW59fSIsCi0JCQkJCQkJCQkJCSJw
cm90b2NvbCI6ICJ7e3Byb3RvY29sfX0iLAotCQkJCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJ
CQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJInBvcnQiOiAie3twb3J0
fX0iLAotCQkJCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkJCSJ7e3dlYl9yb290fX0iLAot
CQkJCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJCQki
e3tkZXZpY2VfdG9rZW59fSIKLQkJCQkJCQkJCQkJXQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCX0s
Ci0JCQkJCQkJCQkicmVzcG9uc2UiOiBbXQotCQkJCQkJCQl9LAotCQkJCQkJCQl7Ci0JCQkJCQkJ
CQkibmFtZSI6ICJDbGVhbiB1cDogV2FpdCBkZXZpY2UgdGltZW91dCIsCi0JCQkJCQkJCQkiZXZl
bnQiOiBbCi0JCQkJCQkJCQkJewotCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjE3MTEyMzM2LWI5NjItNDcyZC04
NmE4LTc4NzJmZjk4NzZkMSIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQki
IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIK
LQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0sCi0JCQkJCQkJCQkJewotCQkJCQkJCQkJCQkibGlz
dGVuIjogInByZXJlcXVlc3QiLAotCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJ
ImlkIjogIjkxMjkzOWNjLTE2ODUtNGUxZi1iMGE2LTY5NmIyNjQ4NzBjYSIsCi0JCQkJCQkJCQkJ
CQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkidmFyIHRpbWVvdXQgPSBwYXJzZUludChwbS5lbnZp
cm9ubWVudC5nZXQoXCJkZXZpY2VfdGltZW91dFwiKSkgKyA1MDAiLAotCQkJCQkJCQkJCQkJCSIi
LAotCQkJCQkJCQkJCQkJCSJzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1lb3V0KTsiCi0J
CQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJ
CQkJCQkJCQl9Ci0JCQkJCQkJCQkJfQotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0Ijog
ewotCQkJCQkJCQkJCSJtZXRob2QiOiAiR0VUIiwKLQkJCQkJCQkJCQkiaGVhZGVyIjogW10sCi0J
CQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hv
c3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJCQkJCQkJInBy
b3RvY29sIjogInt7cHJvdG9jb2x9fSIsCi0JCQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJ
CQkJInt7aG9zdH19IgotCQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9
fSIsCi0JCQkJCQkJCQkJCSJwYXRoIjogWwotCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0J
CQkJCQkJCQkJCQkiYXBpIiwKLQkJCQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJCQkJCSIi
Ci0JCQkJCQkJCQkJCV0KLQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQl9LAotCQkJCQkJCQkJInJlc3Bv
bnNlIjogW10KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0JCQkJCQkJInByb3RvY29sUHJvZmlsZUJl
aGF2aW9yIjoge30sCi0JCQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQotCQkJCQkJ
fSwKLQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJUaW1lZCBvdXQgZGV2aWNlIiwKLQkJCQkJCQki
aXRlbSI6IFsKLQkJCQkJCQkJewotCQkJCQkJCQkJIm5hbWUiOiAiUHJlcDogQ3JlYXRlIGRldmlj
ZSIsCi0JCQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCQkJewotCQkJCQkJCQkJCQkibGlzdGVu
IjogInRlc3QiLAotCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogImM5
OWI5MzE4LTFlNTAtNDcwMi05ZDgxLTUzZDg3ZmFhMTA4MCIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6
IFsKLQkJCQkJCQkJCQkJCQkidmFyIHJlc3BvbnNlID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCi0J
CQkJCQkJCQkJCQkJInZhciB0b2tlbiA9IHJlc3BvbnNlLnRva2VuOyIsCi0JCQkJCQkJCQkJCQkJ
IiIsCi0JCQkJCQkJCQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZGV2aWNlX3Rva2VuXCIsIHRva2Vu
KSIKLQkJCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQi
Ci0JCQkJCQkJCQkJCX0KLQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQldLAotCQkJCQkJCQkJInJlcXVl
c3QiOiB7Ci0JCQkJCQkJCQkJIm1ldGhvZCI6ICJQT1NUIiwKLQkJCQkJCQkJCQkiaGVhZGVyIjog
W10sCi0JCQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06
Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9yb290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJCQkJ
CQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCi0JCQkJCQkJCQkJCSJob3N0IjogWwotCQkJ
CQkJCQkJCQkJInt7aG9zdH19IgotCQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCQkicG9ydCI6ICJ7
e3BvcnR9fSIsCi0JCQkJCQkJCQkJCSJwYXRoIjogWwotCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9
fSIsCi0JCQkJCQkJCQkJCQkiYXBpIiwKLQkJCQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJ
CQkJCSIiCi0JCQkJCQkJCQkJCV0KLQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQl9LAotCQkJCQkJCQkJ
InJlc3BvbnNlIjogW10KLQkJCQkJCQkJfSwKLQkJCQkJCQkJewotCQkJCQkJCQkJIm5hbWUiOiAi
V2FpdCBkZXZpY2UgdGltZW91dCIsCi0JCQkJCQkJCQkiZXZlbnQiOiBbCi0JCQkJCQkJCQkJewot
CQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJ
CQkJCQkJCQkJImlkIjogIjg5NTE3ZGM5LTMxYjQtNDBlNy04OWU0LTk5ZGQ2ZTc5MmU2YSIsCi0J
CQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJCQkJXSwKLQkJ
CQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJ
CQkJCX0sCi0JCQkJCQkJCQkJewotCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAot
CQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogImVkMjBiYmY2LTRmMzEt
NGQ5MS1hMDdiLTdhMGI0YWZjZjE2MSIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJ
CQkJCQkidmFyIHRpbWVvdXQgPSBwYXJzZUludChwbS5lbnZpcm9ubWVudC5nZXQoXCJkZXZpY2Vf
dGltZW91dFwiKSkgKyA1MDAiLAotCQkJCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkJCSJzZXRU
aW1lb3V0KGZ1bmN0aW9uICgpIHt9LCB0aW1lb3V0KTsiCi0JCQkJCQkJCQkJCQldLAotCQkJCQkJ
CQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJCQkJCQkJCQl9Ci0JCQkJCQkJCQkJ
fQotCQkJCQkJCQkJXSwKLQkJCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkJCSJtZXRob2Qi
OiAiR0VUIiwKLQkJCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCQkJInVybCI6IHsKLQkJ
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9
fSIsCi0JCQkJCQkJCQkJCSJob3N0IjogWwotCQkJCQkJCQkJCQkJInt7aG9zdH19IgotCQkJCQkJ
CQkJCQldLAotCQkJCQkJCQkJCQkicG9ydCI6ICJ7e3BvcnR9fSIsCi0JCQkJCQkJCQkJCSJwYXRo
IjogWwotCQkJCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0JCQkJCQkJCQkJCQkiYXBpIiwKLQkJ
CQkJCQkJCQkJCSJkZXZpY2VzIiwKLQkJCQkJCQkJCQkJCSIiCi0JCQkJCQkJCQkJCV0KLQkJCQkJ
CQkJCQl9Ci0JCQkJCQkJCQl9LAotCQkJCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJCQkJfSwK
LQkJCQkJCQkJewotCQkJCQkJCQkJIm5hbWUiOiAiUmVhZCBkZXZpY2UiLAotCQkJCQkJCQkJImV2
ZW50IjogWwotCQkJCQkJCQkJCXsKLQkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICI3Yjc0OTZmNS0yZmRjLTQ3MGMt
YjM5NC0yYTVhZTdkMjlkYTIiLAotCQkJCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCQkJ
InBtLnRlc3QoXCJTdWNjZXNzZnVsIEdFVCByZXF1ZXN0XCIsIGZ1bmN0aW9uICgpIHsiLAotCQkJ
CQkJCQkJCQkJCSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmVxdWFsKDQwNCk7
IiwKLQkJCQkJCQkJCQkJCQkifSk7IgotCQkJCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBl
IjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCQkJfQotCQkJCQkJCQkJCX0sCi0JCQkJCQkJ
CQkJewotCQkJCQkJCQkJCQkibGlzdGVuIjogInByZXJlcXVlc3QiLAotCQkJCQkJCQkJCQkic2Ny
aXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjE4MDdmMTUyLTdlZjQtNDI3Ny05ZGI2LTFiZmY1
M2Q2Y2M4YiIsCi0JCQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJCQkiIgotCQkJCQkJ
CQkJCQkJXSwKLQkJCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJ
CQkJfQotCQkJCQkJCQkJCX0KLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJ
CQkJCQkJCQkibWV0aG9kIjogIkdFVCIsCi0JCQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJ
CQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkJCSJyYXciOiAie3twcm90b2NvbH19Oi8ve3tob3N0fX06
e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2VzL3t7ZGV2aWNlX3Rva2VufX0iLAotCQkJ
CQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJCQkJImhvc3QiOiBb
Ci0JCQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJCSJwb3J0
IjogInt7cG9ydH19IiwKLQkJCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJCQkJCQkJCQkie3t3ZWJf
cm9vdH19IiwKLQkJCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCQkJImRldmljZXMiLAotCQkJ
CQkJCQkJCQkJInt7ZGV2aWNlX3Rva2VufX0iCi0JCQkJCQkJCQkJCV0KLQkJCQkJCQkJCQl9Ci0J
CQkJCQkJCQl9LAotCQkJCQkJCQkJInJlc3BvbnNlIjogW10KLQkJCQkJCQkJfQotCQkJCQkJCV0s
Ci0JCQkJCQkJInByb3RvY29sUHJvZmlsZUJlaGF2aW9yIjoge30sCi0JCQkJCQkJIl9wb3N0bWFu
X2lzU3ViRm9sZGVyIjogdHJ1ZQotCQkJCQkJfQotCQkJCQldLAotCQkJCQkicHJvdG9jb2xQcm9m
aWxlQmVoYXZpb3IiOiB7fSwKLQkJCQkJIl9wb3N0bWFuX2lzU3ViRm9sZGVyIjogdHJ1ZQotCQkJ
CX0sCi0JCQkJewotCQkJCQkibmFtZSI6ICJyZWFkIGRldmljZXMiLAotCQkJCQkiaXRlbSI6IFsK
LQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJQcmVwOiBDcmVhdGUgZGV2aWNlIEEiLAotCQkJCQkJ
CSJldmVudCI6IFsKLQkJCQkJCQkJewotCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKLQkJCQkJ
CQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogImE3ODAzYzVjLWYzNzEtNGFlMC04YjA4
LTFjMDY5OTVjOWI2MCIsCi0JCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCSJ2YXIgcmVz
cG9uc2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKLQkJCQkJCQkJCQkJInZhciB0b2tlbiA9IHJl
c3BvbnNlLnRva2VuOyIsCi0JCQkJCQkJCQkJCSIiLAotCQkJCQkJCQkJCQkicG0uZ2xvYmFscy5z
ZXQoXCJkZXZpY2VfdG9rZW5fYVwiLCB0b2tlbikiCi0JCQkJCQkJCQkJXSwKLQkJCQkJCQkJCQki
dHlwZSI6ICJ0ZXh0L2phdmFzY3JpcHQiCi0JCQkJCQkJCQl9Ci0JCQkJCQkJCX0KLQkJCQkJCQld
LAotCQkJCQkJCSJyZXF1ZXN0IjogewotCQkJCQkJCQkibWV0aG9kIjogIlBPU1QiLAotCQkJCQkJ
CQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCSJ1cmwiOiB7Ci0JCQkJCQkJCQkicmF3IjogInt7cHJv
dG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAot
CQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9jb2x9fSIsCi0JCQkJCQkJCQkiaG9zdCI6IFsK
LQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJCQldLAotCQkJCQkJCQkJInBvcnQiOiAie3tw
b3J0fX0iLAotCQkJCQkJCQkJInBhdGgiOiBbCi0JCQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0J
CQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJImRldmljZXMiLAotCQkJCQkJCQkJCSIiCi0JCQkJ
CQkJCQldCi0JCQkJCQkJCX0KLQkJCQkJCQl9LAotCQkJCQkJCSJyZXNwb25zZSI6IFtdCi0JCQkJ
CQl9LAotCQkJCQkJewotCQkJCQkJCSJuYW1lIjogIlByZXA6IENyZWF0ZSBkZXZpY2UgQiIsCi0J
CQkJCQkJImV2ZW50IjogWwotCQkJCQkJCQl7Ci0JCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAot
CQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiMDI0NTA5MDMtYWVmOS00ZWU2
LTlkNDgtOTRiYTliNWZkNTRjIiwKLQkJCQkJCQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJInZh
ciByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpzb24oKTsiLAotCQkJCQkJCQkJCQkidmFyIHRva2Vu
ID0gcmVzcG9uc2UudG9rZW47IiwKLQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCSJwbS5nbG9i
YWxzLnNldChcImRldmljZV90b2tlbl9iXCIsIHRva2VuKSIKLQkJCQkJCQkJCQldLAotCQkJCQkJ
CQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCX0KLQkJCQkJCQkJfQotCQkJ
CQkJCV0sCi0JCQkJCQkJInJlcXVlc3QiOiB7Ci0JCQkJCQkJCSJtZXRob2QiOiAiUE9TVCIsCi0J
CQkJCQkJCSJoZWFkZXIiOiBbXSwKLQkJCQkJCQkJInVybCI6IHsKLQkJCQkJCQkJCSJyYXciOiAi
e3twcm90b2NvbH19Oi8ve3tob3N0fX06e3twb3J0fX0ve3t3ZWJfcm9vdH19L2FwaS9kZXZpY2Vz
LyIsCi0JCQkJCQkJCQkicHJvdG9jb2wiOiAie3twcm90b2NvbH19IiwKLQkJCQkJCQkJCSJob3N0
IjogWwotCQkJCQkJCQkJCSJ7e2hvc3R9fSIKLQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkicG9ydCI6
ICJ7e3BvcnR9fSIsCi0JCQkJCQkJCQkicGF0aCI6IFsKLQkJCQkJCQkJCQkie3t3ZWJfcm9vdH19
IiwKLQkJCQkJCQkJCQkiYXBpIiwKLQkJCQkJCQkJCQkiZGV2aWNlcyIsCi0JCQkJCQkJCQkJIiIK
LQkJCQkJCQkJCV0KLQkJCQkJCQkJfQotCQkJCQkJCX0sCi0JCQkJCQkJInJlc3BvbnNlIjogW10K
LQkJCQkJCX0sCi0JCQkJCQl7Ci0JCQkJCQkJIm5hbWUiOiAiUmVhZCBkZXZpY2VzIiwKLQkJCQkJ
CQkiZXZlbnQiOiBbCi0JCQkJCQkJCXsKLQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCi0JCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIxNjEyNDE3Yi1iZWQ4LTQ4ZDUtYTZh
My0zOWQwZDBmZTY5MzIiLAotCQkJCQkJCQkJCSJleGVjIjogWwotCQkJCQkJCQkJCQkicG0udGVz
dChcIlN1Y2Nlc3NmdWwgR0VUIHJlcXVlc3RcIiwgZnVuY3Rpb24gKCkgeyIsCi0JCQkJCQkJCQkJ
CSIgICAgcG0uZXhwZWN0KHBtLnJlc3BvbnNlLmNvZGUpLnRvLmJlLm9uZU9mKFsyMDBdKTsiLAot
CQkJCQkJCQkJCQkifSk7IiwKLQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCSJ2YXIgcmVzcG9u
c2UgPSBwbS5yZXNwb25zZS5qc29uKCk7IiwKLQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCSJw
bS50ZXN0KCdTY2hlbWEgaXMgdmFsaWQnLCBmdW5jdGlvbigpIHsiLAotCQkJCQkJCQkJCQkiICBw
bS5leHBlY3QocmVzcG9uc2UpLnRvLmJlLmluc3RhbmNlb2YoQXJyYXkpOyIsCi0JCQkJCQkJCQkJ
CSIgIHJlc3BvbnNlLmZvckVhY2goZWxlbWVudCA9PiB7IiwKLQkJCQkJCQkJCQkJIiAgcG0uZXhw
ZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJvcGVydHkoXCJ0b2tlblwiKTsiLAotCQkJCQkJCQkJCQki
ICBwbS5leHBlY3QoZWxlbWVudCkudG8uaGF2ZS5wcm9wZXJ0eShcInVzZXJfYWdlbnRcIik7IiwK
LQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KGVsZW1lbnQpLnRvLmhhdmUucHJvcGVydHkoXCJsYXN0
X2FjdGl2ZVwiKTsiLAotCQkJCQkJCQkJCQkiICBwbS5leHBlY3QoZWxlbWVudCkudG8uaGF2ZS5w
cm9wZXJ0eShcIm5hbWVcIik7IiwKLQkJCQkJCQkJCQkJIiAgfSkiLAotCQkJCQkJCQkJCQkifSk7
IiwKLQkJCQkJCQkJCQkJIiIsCi0JCQkJCQkJCQkJCSJwbS50ZXN0KCdEYXRhIGlzIHZhbGlkJywg
ZnVuY3Rpb24oKSB7IiwKLQkJCQkJCQkJCQkJIiAgcG0uZXhwZWN0KHJlc3BvbnNlKS50by5oYXZl
Lmxlbmd0aE9mKDIpOyIsCi0JCQkJCQkJCQkJCSIgIHZhciBkZXZpY2VzX2xlZnQgPSBbIiwKLQkJ
CQkJCQkJCQkJIiAgICAgIHBtLmdsb2JhbHMuZ2V0KFwiZGV2aWNlX3Rva2VuX2FcIiksICIsCi0J
CQkJCQkJCQkJCSIgICAgICBwbS5nbG9iYWxzLmdldChcImRldmljZV90b2tlbl9iXCIpIiwKLQkJ
CQkJCQkJCQkJIiAgICBdIiwKLQkJCQkJCQkJCQkJIiAgcmVzcG9uc2UuZm9yRWFjaChlbGVtZW50
ID0+IHsiLAotCQkJCQkJCQkJCQkiICAgICAgcG0uZXhwZWN0KHR5cGVvZiBlbGVtZW50LnRva2Vu
KS50by5lcXVhbChcInN0cmluZ1wiKTsiLAotCQkJCQkJCQkJCQkiICAgICAgcG0uZXhwZWN0KHR5
cGVvZiBlbGVtZW50LnVzZXJfYWdlbnQpLnRvLmVxdWFsKFwic3RyaW5nXCIpOyIsCi0JCQkJCQkJ
CQkJCSIgICAgICBwbS5leHBlY3QodHlwZW9mIGVsZW1lbnQubGFzdF9hY3RpdmUpLnRvLmVxdWFs
KFwic3RyaW5nXCIpOyIsCi0JCQkJCQkJCQkJCSIgICAgICBwbS5leHBlY3QodHlwZW9mIGVsZW1l
bnQubmFtZSkudG8uZXF1YWwoXCJzdHJpbmdcIik7IiwKLQkJCQkJCQkJCQkJIiAgICAgIHBtLmV4
cGVjdChkZXZpY2VzX2xlZnQpLnRvLmluY2x1ZGUoZWxlbWVudC50b2tlbik7IiwKLQkJCQkJCQkJ
CQkJIiAgICAgIGRldmljZXNfbGVmdC5zcGxpY2UoZGV2aWNlc19sZWZ0LmluZGV4T2YoZWxlbWVu
dC50b2tlbiksIDEpOyIsCi0JCQkJCQkJCQkJCSIgIH0pIiwKLQkJCQkJCQkJCQkJIn0pOyIKLQkJ
CQkJCQkJCQldLAotCQkJCQkJCQkJCSJ0eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJ
CX0KLQkJCQkJCQkJfQotCQkJCQkJCV0sCi0JCQkJCQkJInJlcXVlc3QiOiB7Ci0JCQkJCQkJCSJt
ZXRob2QiOiAiR0VUIiwKLQkJCQkJCQkJImhlYWRlciI6IFtdLAotCQkJCQkJCQkidXJsIjogewot
CQkJCQkJCQkJInJhdyI6ICJ7e3Byb3RvY29sfX06Ly97e2hvc3R9fTp7e3BvcnR9fS97e3dlYl9y
b290fX0vYXBpL2RldmljZXMvIiwKLQkJCQkJCQkJCSJwcm90b2NvbCI6ICJ7e3Byb3RvY29sfX0i
LAotCQkJCQkJCQkJImhvc3QiOiBbCi0JCQkJCQkJCQkJInt7aG9zdH19IgotCQkJCQkJCQkJXSwK
LQkJCQkJCQkJCSJwb3J0IjogInt7cG9ydH19IiwKLQkJCQkJCQkJCSJwYXRoIjogWwotCQkJCQkJ
CQkJCSJ7e3dlYl9yb290fX0iLAotCQkJCQkJCQkJCSJhcGkiLAotCQkJCQkJCQkJCSJkZXZpY2Vz
IiwKLQkJCQkJCQkJCQkiIgotCQkJCQkJCQkJXQotCQkJCQkJCQl9Ci0JCQkJCQkJfSwKLQkJCQkJ
CQkicmVzcG9uc2UiOiBbXQotCQkJCQkJfSwKLQkJCQkJCXsKLQkJCQkJCQkibmFtZSI6ICJDbGVh
biB1cDogV2FpdCBkZXZpY2UgdGltZW91dCIsCi0JCQkJCQkJImV2ZW50IjogWwotCQkJCQkJCQl7
Ci0JCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAotCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJ
CQkJCQkiaWQiOiAiOWI3ZmY2MjMtOGFhYy00NmQxLTljNTYtMWNlYjhhY2MyZGU2IiwKLQkJCQkJ
CQkJCQkiZXhlYyI6IFsKLQkJCQkJCQkJCQkJIiIKLQkJCQkJCQkJCQldLAotCQkJCQkJCQkJCSJ0
eXBlIjogInRleHQvamF2YXNjcmlwdCIKLQkJCQkJCQkJCX0KLQkJCQkJCQkJfSwKLQkJCQkJCQkJ
ewotCQkJCQkJCQkJImxpc3RlbiI6ICJwcmVyZXF1ZXN0IiwKLQkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJImlkIjogImMwZmJmNzQyLWY3NWUtNGYzYi1hNTc2LTc1YzlkNWUwZjcyZCIs
Ci0JCQkJCQkJCQkJImV4ZWMiOiBbCi0JCQkJCQkJCQkJCSJ2YXIgdGltZW91dCA9IHBhcnNlSW50
KHBtLmVudmlyb25tZW50LmdldChcImRldmljZV90aW1lb3V0XCIpKSArIDUwMCIsCi0JCQkJCQkJ
CQkJCSIiLAotCQkJCQkJCQkJCQkic2V0VGltZW91dChmdW5jdGlvbiAoKSB7fSwgdGltZW91dCk7
IgotCQkJCQkJCQkJCV0sCi0JCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IgotCQkJ
CQkJCQkJfQotCQkJCQkJCQl9Ci0JCQkJCQkJXSwKLQkJCQkJCQkicmVxdWVzdCI6IHsKLQkJCQkJ
CQkJIm1ldGhvZCI6ICJHRVQiLAotCQkJCQkJCQkiaGVhZGVyIjogW10sCi0JCQkJCQkJCSJ1cmwi
OiB7Ci0JCQkJCQkJCQkicmF3IjogInt7cHJvdG9jb2x9fTovL3t7aG9zdH19Ont7cG9ydH19L3t7
d2ViX3Jvb3R9fS9hcGkvZGV2aWNlcy8iLAotCQkJCQkJCQkJInByb3RvY29sIjogInt7cHJvdG9j
b2x9fSIsCi0JCQkJCQkJCQkiaG9zdCI6IFsKLQkJCQkJCQkJCQkie3tob3N0fX0iCi0JCQkJCQkJ
CQldLAotCQkJCQkJCQkJInBvcnQiOiAie3twb3J0fX0iLAotCQkJCQkJCQkJInBhdGgiOiBbCi0J
CQkJCQkJCQkJInt7d2ViX3Jvb3R9fSIsCi0JCQkJCQkJCQkJImFwaSIsCi0JCQkJCQkJCQkJImRl
dmljZXMiLAotCQkJCQkJCQkJCSIiCi0JCQkJCQkJCQldCi0JCQkJCQkJCX0KLQkJCQkJCQl9LAot
CQkJCQkJCSJyZXNwb25zZSI6IFtdCi0JCQkJCQl9Ci0JCQkJCV0sCi0JCQkJCSJwcm90b2NvbFBy
b2ZpbGVCZWhhdmlvciI6IHt9LAotCQkJCQkiX3Bvc3RtYW5faXNTdWJGb2xkZXIiOiB0cnVlCi0J
CQkJfQotCQkJXSwKLQkJCSJwcm90b2NvbFByb2ZpbGVCZWhhdmlvciI6IHt9Ci0JCX0sCiAJCXsK
IAkJCSJuYW1lIjogIlNlc3Npb25zIEFQSSIsCiAJCQkiaXRlbSI6IFsKQEAgLTc0MjgsNyArNjc5
NCw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJ
CQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogImZjMTVkMzI5LWQxMzItNGFiZi05
MGU0LWY1NDllZWU5OWI2MCIsCisJCQkJCQkJCQkJCQkiaWQiOiAiMmY5MDc2YmItNTlhYS00M2Y5
LTk5MmQtNDk3MjNjMDQ4N2U3IiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJ
CSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJ
CQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNzQ5OSw3
ICs2ODY1LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiZWJiMTkyY2UtNDhlNS00
YWFjLWI5OWQtNjg4OTQzNzhlYWM4IiwKKwkJCQkJCQkJCQkJCSJpZCI6ICIzMjc5ZTE0NS1kMzcy
LTRmZWItYTQ5Ni04ZTNjY2U3M2U4MzkiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJ
CQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC03
NTU4LDcgKzY5MjQsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0
IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIxNTk5NzZjZC1k
ZTAwLTRmODgtOGY5Zi00N2RiMTNjYTRhMzAiLAorCQkJCQkJCQkJCQkJImlkIjogIjJmNTJiMDQ2
LTQ5ZDYtNGFlMy1iZDg0LTExMWM1ZjllNTM0YSIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJ
CQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7
IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwK
QEAgLTc2MTMsNyArNjk3OSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjog
InRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjUwNThi
MDdiLTVlNTUtNDRlMC1hZDg4LTVjN2I1ODg0ZmEzYyIsCisJCQkJCQkJCQkJCQkiaWQiOiAiODY5
NjZkNzctNDUxOS00MTVkLWI4OTMtNWFmNmUxOGEwYWNmIiwKIAkJCQkJCQkJCQkJCSJleGVjIjog
WwogCQkJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9u
ICgpIHsiLAogCQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAw
KTsiLApAQCAtNzY2Myw3ICs3MDI5LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0
ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAi
NjJhOGM4NTMtYmYwYi00N2IwLTljZWUtNzYxMWQyYjQ4Y2RlIiwKKwkJCQkJCQkJCQkJCSJpZCI6
ICJiNjdkMzQ2YS1iMmM5LTRkNjctYWY3Yi0yN2QyZjViODg1NGYiLAogCQkJCQkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVu
Y3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1
cygyMDApOyIsCkBAIC03NzQ2LDcgKzcxMTIsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlz
dGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQi
OiAiODc4NDIwYzMtNTc1YS00MTk0LTlhNzItY2ViZTA3ODIzNjc0IiwKKwkJCQkJCQkJCQkiaWQi
OiAiYTRhZDNhNDctZTY0YS00OTFiLTkxY2YtNTdiMzZhOGViODhmIiwKIAkJCQkJCQkJCQkidHlw
ZSI6ICJ0ZXh0L2phdmFzY3JpcHQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQki
IgpAQCAtNzc1Niw3ICs3MTIyLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0
ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjY2NzIwMzBmLTVh
OGEtNGJlYS05NzkyLWMyNGI5ODAzOTJlOSIsCisJCQkJCQkJCQkJImlkIjogImVlNGFkOTY0LWU2
NmUtNDVmZC05YzdhLTc4OTVmY2JjOWUxMCIsCiAJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZh
c2NyaXB0IiwKIAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJIiIKQEAgLTc3NzYsNyAr
NzE0Miw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJ
CQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjUwNGI3NmNhLTY4NzAtNDQz
Yy04YzMzLTBjY2NjNTJjZGRhZSIsCisJCQkJCQkJCQkJCQkiaWQiOiAiMWE5NTUxNTQtZDBjMi00
ZDIwLTg0YTctNDQ1ZGE4ZWNjNzIyIiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJ
CQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJ
CQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtNzg0
Nyw3ICs3MjEzLDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIs
CiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiZmE5NTY4NzEtNTAz
YS00MjFjLTk4MjItNGUyYTExZTFjZjFjIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICIzODk3M2JmMC0w
NzM3LTQ2OWQtYjJlZC04MTljMWFjYzZjZjMiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJ
CQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIs
CiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBA
IC03ODcyLDcgKzcyMzgsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJw
cmVyZXF1ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIy
MTNiZGY1OS05Zjk4LTRiNWUtYmFjYy1hZTNjYjMxYWUyNmEiLAorCQkJCQkJCQkJCQkJImlkIjog
ImNjNTRlYjdkLTIwOWYtNDY1OS04MTE5LWFkZTEwMGJiMzdlZiIsCiAJCQkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJCQkidmFyIGF1dG9tYXRpY1RpbWVvdXQgPSAxMjAwMDA7IiwKIAkJ
CQkJCQkJCQkJCQkidmFyIG1hbnVhbFRpbWVvdXQgPSAxMDAwMDAwOyIsCkBAIC03OTIyLDcgKzcy
ODgsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJ
CQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICIyNjU2YjIwOS01N2Q4LTRmMzkt
OGRiMS1jZTMzNzZlOGE1MzIiLAorCQkJCQkJCQkJCQkJImlkIjogImRiZTE2YTY3LTcwYmEtNDk4
OS1hYjUwLWJhZmM4YWNhYjg0YyIsCiAJCQkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJ
CQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJ
CQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTc5OTAs
NyArNzM1Niw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAog
CQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjJhNzUyNGU1LTczOTQt
NDE3Ny04MjY3LTQyZDViMzJiYzQ3NCIsCisJCQkJCQkJCQkJCQkiaWQiOiAiYzE1MTRjM2UtZmQ5
Ni00ZTljLWI3OTktNmZkMDQxODViYjYzIiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJ
CQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAog
CQkJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAt
ODAzOSw3ICs3NDA1LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVz
dCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiNDQ4YjZhMGMt
MTM1ZC00MmVmLThiYzAtYjRiMWNlNGFiOGEwIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICJkMzFiMTBl
Yi00YTU5LTRmOTItOThiMi03MzcwN2UzN2EwM2IiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJ
CQkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBpcyAyMDBcIiwgZnVuY3Rpb24gKCkg
eyIsCiAJCQkJCQkJCQkJCQkJIiAgICBwbS5yZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIs
CkBAIC04MTM0LDcgKzc1MDAsNyBAQAogCQkJCQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInBy
ZXJlcXVlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkiaWQiOiAiYTE2ZWFj
OGUtOTYwOS00MzE0LWFiZDgtYTVjNDcwNTM3YjUyIiwKKwkJCQkJCQkJCQkiaWQiOiAiZGFmNzU5
ZGMtZWEzNi00ZDhmLWE1MjQtNGRhZTBjYzg0MWRjIiwKIAkJCQkJCQkJCQkidHlwZSI6ICJ0ZXh0
L2phdmFzY3JpcHQiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkiIgpAQCAtODE0
NCw3ICs3NTEwLDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJ
CQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjVkZjU1OTU3LTBiYmItNGRiOC05
YWI5LWQ4YTcwY2UzN2JjNSIsCisJCQkJCQkJCQkJImlkIjogImI1MGY0ZTZiLTIzYjYtNDFlMS05
YmFiLWNkMmNhOTBiN2Y0MyIsCiAJCQkJCQkJCQkJInR5cGUiOiAidGV4dC9qYXZhc2NyaXB0IiwK
IAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJIiIKQEAgLTgxNjQsNyArNzUzMCw3IEBA
CiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlkIjogIjZjNGFhNzAyLWFlM2EtNDRhNC1iODg2LWIz
ZTg4M2RlNGQzMiIsCisJCQkJCQkJCQkJCQkiaWQiOiAiNTMxODNjNDQtMzFkMS00OGRlLTg5YWUt
MTc5NTBlZjQ3MzYzIiwKIAkJCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJwbS50
ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkJ
CSIgICAgcG0ucmVzcG9uc2UudG8uaGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtODE4OSw3ICs3NTU1
LDcgQEAKIAkJCQkJCQkJCQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAicHJlcmVxdWVzdCIsCiAJ
CQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJCQkiaWQiOiAiODkzNjcyYTktYzY2Ni00
NzkwLWI2YTctZTBjZTdhZmRhNDgyIiwKKwkJCQkJCQkJCQkJCSJpZCI6ICI2ZGFkYmE3ZS01MzUy
LTRiOWMtOTYwMS1mMGViNDI5MzQxY2UiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJ
CQkJCQkJInZhciBleHBpcmF0aW9uRGF0ZSA9IERhdGUubm93KCkgKyAzMDAwOyIsCiAJCQkJCQkJ
CQkJCQkJInBtLmdsb2JhbHMuc2V0KFwiZXhwaXJhdGlvbl9kYXRlXCIsIGV4cGlyYXRpb25EYXRl
KTsiCkBAIC04MjM0LDcgKzc2MDAsNyBAQAogCQkJCQkJCQkJCXsKIAkJCQkJCQkJCQkJImxpc3Rl
biI6ICJ0ZXN0IiwKIAkJCQkJCQkJCQkJInNjcmlwdCI6IHsKLQkJCQkJCQkJCQkJCSJpZCI6ICJm
NmIzMWQzNy1hOThiLTQxMTAtODBhMi1mNzhkYjZmMmUyNmYiLAorCQkJCQkJCQkJCQkJImlkIjog
ImYyYmMxNmQ2LTA5OWItNDg3Yy1hN2E2LWQ0OGQxOThmZjgyNiIsCiAJCQkJCQkJCQkJCQkiZXhl
YyI6IFsKIAkJCQkJCQkJCQkJCQkicG0udGVzdChcIlN0YXR1cyBjb2RlIGlzIDQwNFwiLCBmdW5j
dGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDQwNCk7IiwKQEAgLTgyNDYsNyArNzYxMiw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQki
bGlzdGVuIjogInByZXJlcXVlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogImQ0MWNmMzFiLWM4ZTgtNDU1Zi1hYTY5LTUyN2FmNWZiZDY2YiIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiNTdmODU4Y2QtYjg4Mi00ZmMwLTkxNzAtNjAwNzhjZmU1YWY4IiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJ2YXIgZXhwaXJhdGlvbkRhdGUgPSBwbS5n
bG9iYWxzLmdldChcImV4cGlyYXRpb25fZGF0ZVwiKTsiLAogCQkJCQkJCQkJCQkJCSIiLApAQCAt
ODMxOSw3ICs3Njg1LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwK
IAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlkIjogIjA5MGNhMWJjLWNiZWUtNGQ3
Yi1iMTlmLWZjMWY0YmI4NzlhMCIsCisJCQkJCQkJCQkJImlkIjogImI1MDMxM2U3LTdmZDItNDM0
Yi1hODZlLTdmZjVmYjBhZjFkOCIsCiAJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJw
bS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJ
CQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIwMCk7IiwKQEAgLTgzNzgsNyArNzc0
NCw3IEBACiAJCQkJCQkJCXsKIAkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQki
c2NyaXB0IjogewotCQkJCQkJCQkJCSJpZCI6ICIyMzJhZmYxMS0zY2RjLTQ5OTQtYWY0Mi01ZTM1
NzQ1ODM4MTQiLAorCQkJCQkJCQkJCSJpZCI6ICJlZjllMmQ2OC02YjM2LTRjZTctOGRiYS0yN2Vi
YzcxNTMwMTUiLAogCQkJCQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkicG0udGVzdChcIlN0
YXR1cyBjb2RlIGlzIDIwMFwiLCBmdW5jdGlvbiAoKSB7IiwKIAkJCQkJCQkJCQkJIiAgICBwbS5y
ZXNwb25zZS50by5oYXZlLnN0YXR1cygyMDApOyIsCkBAIC04NDk0LDcgKzc4NjAsNyBAQAogCQkJ
CQkJCQl7CiAJCQkJCQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJInNjcmlwdCI6IHsK
LQkJCQkJCQkJCQkiaWQiOiAiNzNjYmVlYjAtMDE5Yi00MzMxLWIwZWMtZWY5ZDNmMWUwNDk0IiwK
KwkJCQkJCQkJCQkiaWQiOiAiOGM3YmNiNTYtY2QyYS00ZDk5LWFkNmUtYWM0YmM0NzY3ZGNlIiwK
IAkJCQkJCQkJCQkiZXhlYyI6IFsKIAkJCQkJCQkJCQkJInBtLnRlc3QoXCJTdGF0dXMgY29kZSBp
cyAyMDBcIiwgZnVuY3Rpb24gKCkgeyIsCiAJCQkJCQkJCQkJCSIgICAgcG0ucmVzcG9uc2UudG8u
aGF2ZS5zdGF0dXMoMjAwKTsiLApAQCAtODU1Myw3ICs3OTE5LDcgQEAKIAkJCQkJCQkJewogCQkJ
CQkJCQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJ
ImlkIjogImJhMTQyYjU1LTI0NTQtNDQ3Mi1iY2Y5LTY2OWIwYmI3YmFiOSIsCisJCQkJCQkJCQkJ
ImlkIjogIjA2MzliNWEwLWQ0MTktNDY0Mi1iYWYxLTVhYTRhZWRmMzNjOSIsCiAJCQkJCQkJCQkJ
ImV4ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1
bmN0aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVz
KDIwMCk7IiwKQEAgLTg2MzYsNyArODAwMiw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlk
IjogImY0NDM5NTVmLWI1N2UtNDgwMS04ZWFjLTU0NzU5NzM4MTYxNSIsCisJCQkJCQkJCQkJCQki
aWQiOiAiYTFmZTE1ODAtMTgwNy00NWQxLTkzYmItZTU0NTk2ODk1YzAwIiwKIAkJCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJlc3BvbnNlLmpz
b24oKTsiLAogCQkJCQkJCQkJCQkJCSIiLApAQCAtODY4Nyw3ICs4MDUzLDcgQEAKIAkJCQkJCQkJ
CQl7CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7
Ci0JCQkJCQkJCQkJCQkiaWQiOiAiMmNhODBkZWUtZjlhNS00ZTBiLWJlYWQtNmFiODcxZDllZGY4
IiwKKwkJCQkJCQkJCQkJCSJpZCI6ICI4YzY3MjJjZi03ZDVjLTRiMDMtODQwNC0zYmRmMTdlNTQz
ZDkiLAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNl
ID0gcG0ucmVzcG9uc2UuanNvbigpOyIsCiAJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVz
cG9uc2UudG9rZW47IiwKQEAgLTg3MzEsNyArODA5Nyw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJ
CQkJCQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJ
CQkJImlkIjogImZiZjVlYWZiLTBhZTctNDEwNS04ZGY1LTUxYmI1M2IwYzU5NSIsCisJCQkJCQkJ
CQkJCQkiaWQiOiAiNzQ3OGY4ZjgtYzgzOC00YWUwLTg3ZWYtOTg4OWFmYzEwNDFkIiwKIAkJCQkJ
CQkJCQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMu
Z2V0KFwic2Vzc2lvbl90b2tlblwiKTsiLAogCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9
IHBtLnJlc3BvbnNlLmpzb24oKTsiLApAQCAtODgxOSw3ICs4MTg1LDcgQEAKIAkJCQkJCQkJCQl7
CiAJCQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0J
CQkJCQkJCQkJCQkiaWQiOiAiYmRkNjQ1OTQtYzg3NC00ZWIyLThiMzYtNGMzN2NlYTBmMGNiIiwK
KwkJCQkJCQkJCQkJCSJpZCI6ICI5ZjU5NjgzYS1kZjk5LTRlM2MtYjQ2MS04NWM2MDYxOTYyMTgi
LAogCQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0g
cG0ucmVzcG9uc2UuanNvbigpOyIsCiAJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9u
c2UudG9rZW47IiwKQEAgLTg4NjMsNyArODIyOSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJ
CQkibGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJ
ImlkIjogIjY3MzJhZWRmLWQ5OWQtNDE2Zi1iOTNkLTk4YmMwNDA0ZWY2MSIsCisJCQkJCQkJCQkJ
CQkiaWQiOiAiMWNiNzIwOTAtZTk4OS00ZjZkLWIxOWEtY2Q1NzM4OGIxOGRjIiwKIAkJCQkJCQkJ
CQkJCSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0
KFwic2Vzc2lvbl90b2tlblwiKTsiLAogCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBt
LnJlc3BvbnNlLmpzb24oKTsiLApAQCAtODk2OSw3ICs4MzM1LDcgQEAKIAkJCQkJCQkJCQl7CiAJ
CQkJCQkJCQkJCSJsaXN0ZW4iOiAidGVzdCIsCiAJCQkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJ
CQkJCQkJCQkiaWQiOiAiMzMxOWU0MTctZGQ1NC00OTVmLWE0NTItNTUxOWQyYTYxMDgyIiwKKwkJ
CQkJCQkJCQkJCSJpZCI6ICIyNjhmZDFmYS00ZGJhLTQwMWItODA3Mi04MTc3YTBmMjUwYzYiLAog
CQkJCQkJCQkJCQkJImV4ZWMiOiBbCiAJCQkJCQkJCQkJCQkJImNvbnN0IHJlc3BvbnNlID0gcG0u
cmVzcG9uc2UuanNvbigpOyIsCiAJCQkJCQkJCQkJCQkJImNvbnN0IHRva2VuID0gcmVzcG9uc2Uu
dG9rZW47IiwKQEAgLTkwMTMsNyArODM3OSw3IEBACiAJCQkJCQkJCQkJewogCQkJCQkJCQkJCQki
bGlzdGVuIjogInRlc3QiLAogCQkJCQkJCQkJCQkic2NyaXB0IjogewotCQkJCQkJCQkJCQkJImlk
IjogIjZjYTM0ODBhLTMyMjQtNGJmOC1hNDY2LWZkY2IwNjMzODc5NSIsCisJCQkJCQkJCQkJCQki
aWQiOiAiOTNkYjQ3NDEtYjU3NC00NDMzLThkYmQtMDA4NjExMzExNDQyIiwKIAkJCQkJCQkJCQkJ
CSJleGVjIjogWwogCQkJCQkJCQkJCQkJCSJjb25zdCB0b2tlbiA9IHBtLmdsb2JhbHMuZ2V0KFwi
c2Vzc2lvbl90b2tlblwiKTsiLAogCQkJCQkJCQkJCQkJCSJjb25zdCByZXNwb25zZSA9IHBtLnJl
c3BvbnNlLmpzb24oKTsiLApAQCAtOTEyOSw3ICs4NDk1LDcgQEAKIAkJCQkJCQkJewogCQkJCQkJ
CQkJImxpc3RlbiI6ICJ0ZXN0IiwKIAkJCQkJCQkJCSJzY3JpcHQiOiB7Ci0JCQkJCQkJCQkJImlk
IjogIjhiNWI0YzIzLWRiMGEtNGI4MS05MzQ5LWNlOGVhZDY0YmI3YSIsCisJCQkJCQkJCQkJImlk
IjogImQ2OTViMzcxLWM3NDItNGVhZi05MTc5LTg1MmIwNDQ2MGVjZiIsCiAJCQkJCQkJCQkJImV4
ZWMiOiBbCiAJCQkJCQkJCQkJCSJwbS50ZXN0KFwiU3RhdHVzIGNvZGUgaXMgMjAwXCIsIGZ1bmN0
aW9uICgpIHsiLAogCQkJCQkJCQkJCQkiICAgIHBtLnJlc3BvbnNlLnRvLmhhdmUuc3RhdHVzKDIw
MCk7IiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9fX2luaXRfXy5weQppbmRl
eCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvX19pbml0X18ucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0cy9jb25maWcuanNvbiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
cy9jb25maWcuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzJlZDFhYWU5OGRmZTMyNzAyYzEwOWFiYzg5NTU1
ZmU2OTliN2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RzL2NvbmZpZy5qc29uCkBAIC0wLDAgKzEs
NiBAQAoreworICAicG9ydHMiOiB7CisgICAgImh0dHAiOiBbODA4MCwgImF1dG8iXSwKKyAgICAi
aHR0cHMiOiBbODQ4M10KKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3RzL3Rlc3Rfd2F2ZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS90ZXN0
cy90ZXN0X3dhdmUucHkKaW5kZXggNjNjOGE2NjBhMzM1ZTViNDgxMDJhNTQ3MGU5ZmI3ZGRlZjI0
ZjVkMy4uZWYzZDgwZDEwZDRlZmY5YjA2MDE3N2U3NDg3MTIxNjNjNjM2NzhmMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3Rlc3RzL3Rlc3Rfd2F2ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvdGVzdF93YXZlLnB5CkBAIC03LDE1ICs3LDEz
IEBAIGltcG9ydCB0aW1lCiBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCiBmcm9t
IHVybGxpYi5lcnJvciBpbXBvcnQgVVJMRXJyb3IKIAotaW1wb3J0IHB5dGVzdAotCiBmcm9tIHRv
b2xzLndwdCBpbXBvcnQgd3B0CiAKLWRlZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6CitkZWYgaXNf
cG9ydF84MDgwX2luX3VzZSgpOgogICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVU
LCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgdHJ5OgotICAgICAgICBzLmJpbmQoKCIxMjcuMC4w
LjEiLCA4MDAwKSkKLSAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICBzLmJpbmQoKCIx
MjcuMC4wLjEiLCA4MDgwKSkKKyAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CiAgICAgICAg
IGlmIGUuZXJybm8gPT0gZXJybm8uRUFERFJJTlVTRToKICAgICAgICAgICAgIHJldHVybiBUcnVl
CiAgICAgICAgIGVsc2U6CkBAIC0yNSwyNSArMjMsMjggQEAgZGVmIGlzX3BvcnRfODAwMF9pbl91
c2UoKToKICAgICByZXR1cm4gRmFsc2UKIAogZGVmIHRlc3Rfc2VydmUoKToKLSAgICBpZiBpc19w
b3J0XzgwMDBfaW5fdXNlKCk6Ci0gICAgICAgIHB5dGVzdC5za2lwKCJXQVZFIFRlc3QgUnVubmVy
IGZhaWxlZDogUG9ydCA4MDAwIGFscmVhZHkgaW4gdXNlLiIpCisgICAgaWYgaXNfcG9ydF84MDgw
X2luX3VzZSgpOgorICAgICAgICBhc3NlcnQgRmFsc2UsICJXQVZFIFRlc3QgUnVubmVyIGZhaWxl
ZDogUG9ydCA4MDgwIGFscmVhZHkgaW4gdXNlLiIKIAotICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVu
KFtvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAid3B0IiksICJzZXJ2ZS13
YXZlIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJlZXhlY19mbj1vcy5zZXRzaWQpCisg
ICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oW29zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBv
X3Jvb3QsICJ3cHQiKSwKKyAgICAgICAgInNlcnZlLXdhdmUiLAorICAgICAgICAiLS1jb25maWci
LAorICAgICAgICBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAidG9vbHMv
d2F2ZS90ZXN0cy9jb25maWcuanNvbiIpXSwKKyAgICAgICAgcHJlZXhlY19mbj1vcy5zZXRzaWQp
CiAKICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgdHJ5OgogICAgICAgICB3aGlsZSBUcnVl
OgogICAgICAgICAgICAgaWYgcC5wb2xsKCkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAg
YXNzZXJ0IEZhbHNlLCAiV0FWRSBUZXN0IFJ1bm5lciBmYWlsZWQ6IFNlcnZlciBub3QgcnVubmlu
Zy4iCi0gICAgICAgICAgICBpZiB0aW1lLnRpbWUoKSAtIHN0YXJ0ID4gNiAqIDYwOgotICAgICAg
ICAgICAgICAgIGFzc2VydCBGYWxzZSwgIldBVkUgVGVzdCBSdW5uZXIgZmFpbGVkOiBTZXJ2ZXIg
ZGlkIG5vdCBzdGFydCByZXNwb25kaW5nIHdpdGhpbiA2bS4iCisgICAgICAgICAgICBpZiB0aW1l
LnRpbWUoKSAtIHN0YXJ0ID4gNjA6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiV0FW
RSBUZXN0IFJ1bm5lciBmYWlsZWQ6IFNlcnZlciBkaWQgbm90IHN0YXJ0IHJlc3BvbmRpbmcgd2l0
aGluIDYwcy4iCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmVzcCA9IHVybG9w
ZW4oImh0dHA6Ly93ZWItcGxhdGZvcm0udGVzdDo4MDAwL193YXZlL2FwaS9zZXNzaW9ucy9wdWJs
aWMiKQorICAgICAgICAgICAgICAgIHJlc3AgPSB1cmxvcGVuKCJodHRwOi8vd2ViLXBsYXRmb3Jt
LnRlc3Q6ODA4MC9fd2F2ZS9hcGkvc2Vzc2lvbnMvcHVibGljIikKICAgICAgICAgICAgICAgICBw
cmludChyZXNwKQogICAgICAgICAgICAgZXhjZXB0IFVSTEVycm9yOgotICAgICAgICAgICAgICAg
IHByaW50KCJTZXJ2ZXIgbm90IHJlc3BvbmRpbmcsIHdhaXRpbmcgYW5vdGhlciAxMHMuIikKLSAg
ICAgICAgICAgICAgICB0aW1lLnNsZWVwKDEwKQorICAgICAgICAgICAgICAgIHByaW50KCJVUkxF
cnJvciIpCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICAgICBhc3NlcnQgcmVzcC5jb2RlID09IDIwMAogICAgICAgICAgICAgICAg
IGJyZWFrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdGVzdHMvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmNWQ1NTc1ODY3NWU2NmI1MjViY2Ri
OTgxZWY0YmQwMzIzZGJiZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93YXZlL3Rlc3RzL1dBVkUgTG9jYWwucG9zdG1hbl9lbnZpcm9ubWVudC5qc29uCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rz
L1dBVkUgU2VydmVyIFJFU1QgQVBJIFRlc3RzLnBvc3RtYW5fY29sbGVjdGlvbi5qc29uCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3Rlc3Rz
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3Rlc3RzL3Rlc3Rfd2F2ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3RveC5pbmkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94Lmlu
aQppbmRleCBiODY4Njg2NDUyZjg4YTE1ZTFlMTM5ZTBmYThlN2QyNGU0MjQ4MzE4Li5hZGExZDFh
MzMwZTM0ZmNkMWE0NzY3MzI2OTIzMTI0ZTA4MzNlZjdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdG94LmluaQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
dG94LmluaQpAQCAtNyw3ICs3LDcgQEAgc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IEZhbHNl
CiBkZXBzID0KICAgLXJ7dG94aW5pZGlyfS8uLi9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4dAogICAt
cnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Ci0gIC1ye3RveGluaWRp
cn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisgIC1ye3RveGluaWRpcn0v
Li4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWl1bS50eHQKICAgLXJ7dG94aW5pZGlyfS8u
Li93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CiAKIGNvbW1hbmRzID0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS91dGlscy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1
YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3
NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL19f
aW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRo
b24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy9kZXNlcmlhbGl6ZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvZGVzZXJp
YWxpemVyLnB5CmluZGV4IDM2NTA4YmYzNjU1N2VmOTYwYmJjZWM1ZmMyMmM4ZmU5N2I3MjFjMzYu
LmFlNzk0ZmI3ZTg5YjIyMmVkMTZjNDI2YTY0MjJlNTNmYzhmODBiMDMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGls
cy9kZXNlcmlhbGl6ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL2Rlc2VyaWFsaXplci5weQpAQCAtMSw0ICsxLDkg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0Citmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKIGZyb20gLi5kYXRhLnNlc3Npb24gaW1wb3J0IFNl
c3Npb24sIFVOS05PV04KK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgZGF0
ZXV0aWwucGFyc2VyCitmcm9tIGRhdGV1dGlsLnR6IGltcG9ydCB0enV0YwogCiAKIGRlZiBkZXNl
cmlhbGl6ZV9zZXNzaW9ucyhzZXNzaW9uX2RpY3RzKToKQEAgLTE5LDkgKzI0LDkgQEAgZGVmIGRl
c2VyaWFsaXplX3Nlc3Npb24oc2Vzc2lvbl9kaWN0KToKICAgICBpZiAicGF0aCIgaW4gc2Vzc2lv
bl9kaWN0OgogICAgICAgICB0ZXN0X3BhdGhzID0gc2Vzc2lvbl9kaWN0WyJwYXRoIl0uc3BsaXQo
IiwgIikKICAgICAgICAgdGVzdHNbImluY2x1ZGUiXSA9IHRlc3RzWyJpbmNsdWRlIl0gKyB0ZXN0
X3BhdGhzCi0gICAgdHlwZXMgPSBbXQorICAgIHRlc3RfdHlwZXMgPSBbXQogICAgIGlmICJ0eXBl
cyIgaW4gc2Vzc2lvbl9kaWN0OgotICAgICAgICB0eXBlcyA9IHNlc3Npb25fZGljdFsidHlwZXMi
XQorICAgICAgICB0ZXN0X3R5cGVzID0gc2Vzc2lvbl9kaWN0WyJ0eXBlcyJdCiAgICAgdXNlcl9h
Z2VudCA9ICIiCiAgICAgaWYgInVzZXJfYWdlbnQiIGluIHNlc3Npb25fZGljdDoKICAgICAgICAg
dXNlcl9hZ2VudCA9IHNlc3Npb25fZGljdFsidXNlcl9hZ2VudCJdCkBAIC00NiwxMiArNTEsMTgg
QEAgZGVmIGRlc2VyaWFsaXplX3Nlc3Npb24oc2Vzc2lvbl9kaWN0KToKICAgICBsYXN0X2NvbXBs
ZXRlZF90ZXN0ID0gTm9uZQogICAgIGlmICJsYXN0X2NvbXBsZXRlZF90ZXN0IiBpbiBzZXNzaW9u
X2RpY3Q6CiAgICAgICAgIGxhc3RfY29tcGxldGVkX3Rlc3QgPSBzZXNzaW9uX2RpY3RbImxhc3Rf
Y29tcGxldGVkX3Rlc3QiXQorICAgIGRhdGVfY3JlYXRlZCA9IE5vbmUKKyAgICBpZiAiZGF0ZV9j
cmVhdGVkIiBpbiBzZXNzaW9uX2RpY3Q6CisgICAgICAgIGRhdGVfY3JlYXRlZCA9IHNlc3Npb25f
ZGljdFsiZGF0ZV9jcmVhdGVkIl0KKyAgICAgICAgZGF0ZV9jcmVhdGVkID0gaXNvX3RvX21pbGxp
cyhkYXRlX2NyZWF0ZWQpCiAgICAgZGF0ZV9zdGFydGVkID0gTm9uZQogICAgIGlmICJkYXRlX3N0
YXJ0ZWQiIGluIHNlc3Npb25fZGljdDoKICAgICAgICAgZGF0ZV9zdGFydGVkID0gc2Vzc2lvbl9k
aWN0WyJkYXRlX3N0YXJ0ZWQiXQorICAgICAgICBkYXRlX3N0YXJ0ZWQgPSBpc29fdG9fbWlsbGlz
KGRhdGVfc3RhcnRlZCkKICAgICBkYXRlX2ZpbmlzaGVkID0gTm9uZQogICAgIGlmICJkYXRlX2Zp
bmlzaGVkIiBpbiBzZXNzaW9uX2RpY3Q6CiAgICAgICAgIGRhdGVfZmluaXNoZWQgPSBzZXNzaW9u
X2RpY3RbImRhdGVfZmluaXNoZWQiXQorICAgICAgICBkYXRlX2ZpbmlzaGVkID0gaXNvX3RvX21p
bGxpcyhkYXRlX2ZpbmlzaGVkKQogICAgIGlzX3B1YmxpYyA9IEZhbHNlCiAgICAgaWYgImlzX3B1
YmxpYyIgaW4gc2Vzc2lvbl9kaWN0OgogICAgICAgICBpc19wdWJsaWMgPSBzZXNzaW9uX2RpY3Rb
ImlzX3B1YmxpYyJdCkBAIC02MSwxMiArNzIsMTMgQEAgZGVmIGRlc2VyaWFsaXplX3Nlc3Npb24o
c2Vzc2lvbl9kaWN0KToKICAgICBicm93c2VyID0gTm9uZQogICAgIGlmICJicm93c2VyIiBpbiBz
ZXNzaW9uX2RpY3Q6CiAgICAgICAgIGJyb3dzZXIgPSBzZXNzaW9uX2RpY3RbImJyb3dzZXIiXQot
ICAgIHdlYmhvb2tfdXJscyA9IFtdCi0gICAgaWYgIndlYmhvb2tfdXJscyIgaW4gc2Vzc2lvbl9k
aWN0OgotICAgICAgICB3ZWJob29rX3VybHMgPSBzZXNzaW9uX2RpY3RbIndlYmhvb2tfdXJscyJd
CiAgICAgZXhwaXJhdGlvbl9kYXRlID0gTm9uZQogICAgIGlmICJleHBpcmF0aW9uX2RhdGUiIGlu
IHNlc3Npb25fZGljdDoKICAgICAgICAgZXhwaXJhdGlvbl9kYXRlID0gc2Vzc2lvbl9kaWN0WyJl
eHBpcmF0aW9uX2RhdGUiXQorICAgICAgICBleHBpcmF0aW9uX2RhdGUgPSBpc29fdG9fbWlsbGlz
KGV4cGlyYXRpb25fZGF0ZSkKKyAgICB0eXBlID0gTm9uZQorICAgIGlmICJ0eXBlIiBpbiBzZXNz
aW9uX2RpY3Q6CisgICAgICAgIHR5cGUgPSBzZXNzaW9uX2RpY3RbInR5cGUiXQogICAgIG1hbGZ1
bmN0aW9uaW5nX3Rlc3RzID0gW10KICAgICBpZiAibWFsZnVuY3Rpb25pbmdfdGVzdHMiIGluIHNl
c3Npb25fZGljdDoKICAgICAgICAgbWFsZnVuY3Rpb25pbmdfdGVzdHMgPSBzZXNzaW9uX2RpY3Rb
Im1hbGZ1bmN0aW9uaW5nX3Rlc3RzIl0KQEAgLTc0LDcgKzg2LDcgQEAgZGVmIGRlc2VyaWFsaXpl
X3Nlc3Npb24oc2Vzc2lvbl9kaWN0KToKICAgICByZXR1cm4gU2Vzc2lvbigKICAgICAgICAgdG9r
ZW49dG9rZW4sCiAgICAgICAgIHRlc3RzPXRlc3RzLAotICAgICAgICB0eXBlcz10eXBlcywKKyAg
ICAgICAgdGVzdF90eXBlcz10ZXN0X3R5cGVzLAogICAgICAgICB1c2VyX2FnZW50PXVzZXJfYWdl
bnQsCiAgICAgICAgIGxhYmVscz1sYWJlbHMsCiAgICAgICAgIHRpbWVvdXRzPXRpbWVvdXRzLApA
QCAtODMsMTIgKzk1LDI0IEBAIGRlZiBkZXNlcmlhbGl6ZV9zZXNzaW9uKHNlc3Npb25fZGljdCk6
CiAgICAgICAgIHN0YXR1cz1zdGF0dXMsCiAgICAgICAgIHRlc3Rfc3RhdGU9dGVzdF9zdGF0ZSwK
ICAgICAgICAgbGFzdF9jb21wbGV0ZWRfdGVzdD1sYXN0X2NvbXBsZXRlZF90ZXN0LAorICAgICAg
ICBkYXRlX2NyZWF0ZWQ9ZGF0ZV9jcmVhdGVkLAogICAgICAgICBkYXRlX3N0YXJ0ZWQ9ZGF0ZV9z
dGFydGVkLAogICAgICAgICBkYXRlX2ZpbmlzaGVkPWRhdGVfZmluaXNoZWQsCiAgICAgICAgIGlz
X3B1YmxpYz1pc19wdWJsaWMsCiAgICAgICAgIHJlZmVyZW5jZV90b2tlbnM9cmVmZXJlbmNlX3Rv
a2VucywKICAgICAgICAgYnJvd3Nlcj1icm93c2VyLAotICAgICAgICB3ZWJob29rX3VybHM9d2Vi
aG9va191cmxzLAogICAgICAgICBleHBpcmF0aW9uX2RhdGU9ZXhwaXJhdGlvbl9kYXRlLAorICAg
ICAgICB0eXBlPXR5cGUsCiAgICAgICAgIG1hbGZ1bmN0aW9uaW5nX3Rlc3RzPW1hbGZ1bmN0aW9u
aW5nX3Rlc3RzCiAgICAgKQorCitkZWYgaXNvX3RvX21pbGxpcyhpc29fc3RyaW5nKToKKyAgICBp
ZiBpc29fc3RyaW5nIGlzIE5vbmU6CisgICAgICAgIHJldHVybiBOb25lCisgICAgdHJ5OgorICAg
ICAgICBkYXRlID0gZGF0ZXV0aWwucGFyc2VyLmlzb3BhcnNlKGlzb19zdHJpbmcpCisgICAgICAg
IGRhdGUgPSBkYXRlLnJlcGxhY2UodHppbmZvPXR6dXRjKCkpCisgICAgICAgIGVwb2NoID0gZGF0
ZXRpbWUudXRjZnJvbXRpbWVzdGFtcCgwKS5yZXBsYWNlKHR6aW5mbz10enV0YygpKQorICAgICAg
ICByZXR1cm4gaW50KChkYXRlIC0gZXBvY2gpLnRvdGFsX3NlY29uZHMoKSAqIDEwMDApCisgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIGlzb19zdHJpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91
dGlscy9zZXJpYWxpemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93YXZlL3V0aWxzL3NlcmlhbGl6ZXIucHkKaW5kZXggMmFkY2ViMGI2ZGU0
ZmY5MzM5ZGQ3ZDQyNjYwYWU1OGNmYjA0YzE3OS4uM2MxYjczYjM0ZmE1M2EwOGE5MzRjODcyMjFj
ZWVhYWE0MDE1ZTdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL3NlcmlhbGl6ZXIucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL3Nl
cmlhbGl6ZXIucHkKQEAgLTEsNyArMSwxMCBAQAorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUKKworCiBkZWYgc2VyaWFsaXplX3Nlc3Npb24oc2Vzc2lvbik6CiAgICAgcmV0dXJuIHsKICAg
ICAgICAgInRva2VuIjogc2Vzc2lvbi50b2tlbiwKLSAgICAgICAgInR5cGVzIjogc2Vzc2lvbi50
eXBlcywKKyAgICAgICAgInR5cGVzIjogc2Vzc2lvbi50ZXN0X3R5cGVzLAogICAgICAgICAidXNl
cl9hZ2VudCI6IHNlc3Npb24udXNlcl9hZ2VudCwKICAgICAgICAgImxhYmVscyI6IHNlc3Npb24u
bGFiZWxzLAogICAgICAgICAidGltZW91dHMiOiBzZXNzaW9uLnRpbWVvdXRzLApAQCAtMTIsMTEg
KzE1LDMxIEBAIGRlZiBzZXJpYWxpemVfc2Vzc2lvbihzZXNzaW9uKToKICAgICAgICAgInJ1bm5p
bmdfdGVzdHMiOiBzZXNzaW9uLnJ1bm5pbmdfdGVzdHMsCiAgICAgICAgICJzdGF0dXMiOiBzZXNz
aW9uLnN0YXR1cywKICAgICAgICAgImJyb3dzZXIiOiBzZXNzaW9uLmJyb3dzZXIsCi0gICAgICAg
ICJkYXRlX3N0YXJ0ZWQiOiBzZXNzaW9uLmRhdGVfc3RhcnRlZCwKLSAgICAgICAgImRhdGVfZmlu
aXNoZWQiOiBzZXNzaW9uLmRhdGVfZmluaXNoZWQsCisgICAgICAgICJkYXRlX2NyZWF0ZWQiOiBt
aWxsaXNfdG9faXNvKHNlc3Npb24uZGF0ZV9jcmVhdGVkKSwKKyAgICAgICAgImRhdGVfc3RhcnRl
ZCI6IG1pbGxpc190b19pc28oc2Vzc2lvbi5kYXRlX3N0YXJ0ZWQpLAorICAgICAgICAiZGF0ZV9m
aW5pc2hlZCI6IG1pbGxpc190b19pc28oc2Vzc2lvbi5kYXRlX2ZpbmlzaGVkKSwKICAgICAgICAg
ImlzX3B1YmxpYyI6IHNlc3Npb24uaXNfcHVibGljLAogICAgICAgICAicmVmZXJlbmNlX3Rva2Vu
cyI6IHNlc3Npb24ucmVmZXJlbmNlX3Rva2VucywKLSAgICAgICAgIndlYmhvb2tfdXJscyI6IHNl
c3Npb24ud2ViaG9va191cmxzLAotICAgICAgICAiZXhwaXJhdGlvbl9kYXRlIjogc2Vzc2lvbi5l
eHBpcmF0aW9uX2RhdGUsCisgICAgICAgICJleHBpcmF0aW9uX2RhdGUiOiBtaWxsaXNfdG9faXNv
KHNlc3Npb24uZXhwaXJhdGlvbl9kYXRlKSwKKyAgICAgICAgInR5cGUiOiBzZXNzaW9uLnR5cGUs
CiAgICAgICAgICJtYWxmdW5jdGlvbmluZ190ZXN0cyI6IHNlc3Npb24ubWFsZnVuY3Rpb25pbmdf
dGVzdHMKICAgICB9CisKK2RlZiBzZXJpYWxpemVfc2Vzc2lvbnMoc2Vzc2lvbnMpOgorICAgIHNl
cmlhbGl6ZWRfc2Vzc2lvbnMgPSBbXQorICAgIGZvciBzZXNzaW9uIGluIHNlc3Npb25zOgorICAg
ICAgICBzZXJpYWxpemVkX3Nlc3Npb25zLmFwcGVuZChzZXJpYWxpemVfc2Vzc2lvbihzZXNzaW9u
KSkKKyAgICByZXR1cm4gc2VyaWFsaXplZF9zZXNzaW9ucworCitkZWYgc2VyaWFsaXplX2Rldmlj
ZShkZXZpY2UpOgorICAgIHJldHVybiB7CisgICAgICAgICJ0b2tlbiI6IGRldmljZS50b2tlbiwK
KyAgICAgICAgInVzZXJfYWdlbnQiOiBkZXZpY2UudXNlcl9hZ2VudCwKKyAgICAgICAgIm5hbWUi
OiBkZXZpY2UubmFtZSwKKyAgICAgICAgImxhc3RfYWN0aXZlIjogbWlsbGlzX3RvX2lzbyhkZXZp
Y2UubGFzdF9hY3RpdmUpCisgICAgfQorCitkZWYgbWlsbGlzX3RvX2lzbyhtaWxsaXMpOgorICAg
IGlmIG1pbGxpcyBpcyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBkYXRl
dGltZS51dGNmcm9tdGltZXN0YW1wKG1pbGxpcy8xMDAwLjApLmlzb2Zvcm1hdCgpICsgIiswMDow
MCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS91dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS91dGlscy93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg5MzUzMzM0Y2MwYjA3YTI5MTljNjExOGRl
ZmNjYzU4ZjIzNjM3Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvdXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvdXRpbHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdXRpbHMvZGVzZXJpYWxpemVyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3V0aWxzL3Nlcmlh
bGl6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvdXRpbHMvdXNlcl9hZ2VudF9wYXJzZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjcxZjQw
N2Q2YzRiNjBhMTk0YjczMTE2MGIwODI4MmIzZDI4M2VlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvY29uZmlnLmRlZmF1bHQuanNvbgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS9jb25m
aWd1cmF0aW9uX2xvYWRlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3RveC5pbmkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd2F2ZV9zZXJ2ZXIu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2F2ZS93YXZlX3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93YXZlX3NlcnZlci5weQppbmRleCBiYzMzYmZk
YzYzMTM2NTNiMDVkYTE5YzVmMzUyZTI2NmY2ZmUwYjEyLi40NTkzM2RiOGE5YTg3YjM3NzBiYWRi
YjI3YjM5MzFkYTVhYjFiZGY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd2F2ZV9zZXJ2ZXIucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3dhdmVfc2Vy
dmVyLnB5CkBAIC03LDE0ICs3LDE5IEBAIGZyb20gLm5ldHdvcmsuaHR0cF9oYW5kbGVyIGltcG9y
dCBIdHRwSGFuZGxlcgogZnJvbSAubmV0d29yay5hcGkuc2Vzc2lvbnNfYXBpX2hhbmRsZXIgaW1w
b3J0IFNlc3Npb25zQXBpSGFuZGxlcgogZnJvbSAubmV0d29yay5hcGkudGVzdHNfYXBpX2hhbmRs
ZXIgaW1wb3J0IFRlc3RzQXBpSGFuZGxlcgogZnJvbSAubmV0d29yay5hcGkucmVzdWx0c19hcGlf
aGFuZGxlciBpbXBvcnQgUmVzdWx0c0FwaUhhbmRsZXIKK2Zyb20gLm5ldHdvcmsuYXBpLmRldmlj
ZXNfYXBpX2hhbmRsZXIgaW1wb3J0IERldmljZXNBcGlIYW5kbGVyCitmcm9tIC5uZXR3b3JrLmFw
aS5nZW5lcmFsX2FwaV9oYW5kbGVyIGltcG9ydCBHZW5lcmFsQXBpSGFuZGxlcgogZnJvbSAubmV0
d29yay5zdGF0aWNfaGFuZGxlciBpbXBvcnQgU3RhdGljSGFuZGxlcgogCiBmcm9tIC50ZXN0aW5n
LnNlc3Npb25zX21hbmFnZXIgaW1wb3J0IFNlc3Npb25zTWFuYWdlcgogZnJvbSAudGVzdGluZy5y
ZXN1bHRzX21hbmFnZXIgaW1wb3J0IFJlc3VsdHNNYW5hZ2VyCiBmcm9tIC50ZXN0aW5nLnRlc3Rz
X21hbmFnZXIgaW1wb3J0IFRlc3RzTWFuYWdlcgorZnJvbSAudGVzdGluZy5kZXZpY2VzX21hbmFn
ZXIgaW1wb3J0IERldmljZXNNYW5hZ2VyCiBmcm9tIC50ZXN0aW5nLnRlc3RfbG9hZGVyIGltcG9y
dCBUZXN0TG9hZGVyCiBmcm9tIC50ZXN0aW5nLmV2ZW50X2Rpc3BhdGNoZXIgaW1wb3J0IEV2ZW50
RGlzcGF0Y2hlcgogCitWRVJTSU9OX1NUUklORyA9ICJ2My4zLjAiCisKIAogY2xhc3MgV2F2ZVNl
cnZlcihvYmplY3QpOgogICAgIGRlZiBpbml0aWFsaXplKHNlbGYsCkBAIC0zNSwxMCArNDAsMTMg
QEAgY2xhc3MgV2F2ZVNlcnZlcihvYmplY3QpOgogICAgICAgICBjb25maWd1cmF0aW9uID0gY29u
ZmlndXJhdGlvbl9sb2FkZXIubG9hZChjb25maWd1cmF0aW9uX2ZpbGVfcGF0aCkKIAogICAgICAg
ICAjIEluaXRpYWxpemUgTWFuYWdlcnMKLSAgICAgICAgZXZlbnRfZGlzcGF0Y2hlciA9IEV2ZW50
RGlzcGF0Y2hlcigpCisgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXIgPSBFdmVudERpc3BhdGNoZXIo
CisgICAgICAgICAgICBldmVudF9jYWNoZV9kdXJhdGlvbj1jb25maWd1cmF0aW9uWyJldmVudF9j
YWNoZV9kdXJhdGlvbiJdCisgICAgICAgICkKICAgICAgICAgc2Vzc2lvbnNfbWFuYWdlciA9IFNl
c3Npb25zTWFuYWdlcigpCiAgICAgICAgIHJlc3VsdHNfbWFuYWdlciA9IFJlc3VsdHNNYW5hZ2Vy
KCkKICAgICAgICAgdGVzdHNfbWFuYWdlciA9IFRlc3RzTWFuYWdlcigpCisgICAgICAgIGRldmlj
ZXNfbWFuYWdlciA9IERldmljZXNNYW5hZ2VyKCkKICAgICAgICAgdGVzdF9sb2FkZXIgPSBUZXN0
TG9hZGVyKCkKIAogICAgICAgICBzZXNzaW9uc19tYW5hZ2VyLmluaXRpYWxpemUoCkBAIC00Niwx
NCArNTQsMTUgQEAgY2xhc3MgV2F2ZVNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgZXZlbnRf
ZGlzcGF0Y2hlcj1ldmVudF9kaXNwYXRjaGVyLAogICAgICAgICAgICAgdGVzdHNfbWFuYWdlcj10
ZXN0c19tYW5hZ2VyLAogICAgICAgICAgICAgcmVzdWx0c19kaXJlY3Rvcnk9Y29uZmlndXJhdGlv
blsicmVzdWx0c19kaXJlY3RvcnlfcGF0aCJdLAotICAgICAgICAgICAgcmVzdWx0c19tYW5hZ2Vy
PXJlc3VsdHNfbWFuYWdlcgorICAgICAgICAgICAgcmVzdWx0c19tYW5hZ2VyPXJlc3VsdHNfbWFu
YWdlciwKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbgogICAgICAgICAp
CiAKICAgICAgICAgcmVzdWx0c19tYW5hZ2VyLmluaXRpYWxpemUoCiAgICAgICAgICAgICByZXN1
bHRzX2RpcmVjdG9yeV9wYXRoPWNvbmZpZ3VyYXRpb25bInJlc3VsdHNfZGlyZWN0b3J5X3BhdGgi
XSwKICAgICAgICAgICAgIHNlc3Npb25zX21hbmFnZXI9c2Vzc2lvbnNfbWFuYWdlciwKICAgICAg
ICAgICAgIHRlc3RzX21hbmFnZXI9dGVzdHNfbWFuYWdlciwKLSAgICAgICAgICAgIGltcG9ydF9l
bmFibGVkPWNvbmZpZ3VyYXRpb25bImltcG9ydF9lbmFibGVkIl0sCisgICAgICAgICAgICBpbXBv
cnRfcmVzdWx0c19lbmFibGVkPWNvbmZpZ3VyYXRpb25bImltcG9ydF9yZXN1bHRzX2VuYWJsZWQi
XSwKICAgICAgICAgICAgIHJlcG9ydHNfZW5hYmxlZD1yZXBvcnRzX2VuYWJsZWQsCiAgICAgICAg
ICAgICBwZXJzaXN0aW5nX2ludGVydmFsPWNvbmZpZ3VyYXRpb25bInBlcnNpc3RpbmdfaW50ZXJ2
YWwiXQogICAgICAgICApCkBAIC02NSw2ICs3NCw4IEBAIGNsYXNzIFdhdmVTZXJ2ZXIob2JqZWN0
KToKICAgICAgICAgICAgIGV2ZW50X2Rpc3BhdGNoZXI9ZXZlbnRfZGlzcGF0Y2hlcgogICAgICAg
ICApCiAKKyAgICAgICAgZGV2aWNlc19tYW5hZ2VyLmluaXRpYWxpemUoZXZlbnRfZGlzcGF0Y2hl
cikKKwogICAgICAgICBleGNsdWRlX2xpc3RfZmlsZV9wYXRoID0gb3MucGF0aC5hYnNwYXRoKCIu
L2V4Y2x1ZGVkLmpzb24iKQogICAgICAgICBpbmNsdWRlX2xpc3RfZmlsZV9wYXRoID0gb3MucGF0
aC5hYnNwYXRoKCIuL2luY2x1ZGVkLmpzb24iKQogICAgICAgICB0ZXN0X2xvYWRlci5pbml0aWFs
aXplKApAQCAtODYsNyArOTcsOCBAQCBjbGFzcyBXYXZlU2VydmVyKG9iamVjdCk6CiAgICAgICAg
ICAgICBzZXNzaW9uc19tYW5hZ2VyPXNlc3Npb25zX21hbmFnZXIsCiAgICAgICAgICAgICByZXN1
bHRzX21hbmFnZXI9cmVzdWx0c19tYW5hZ2VyLAogICAgICAgICAgICAgZXZlbnRfZGlzcGF0Y2hl
cj1ldmVudF9kaXNwYXRjaGVyLAotICAgICAgICAgICAgd2ViX3Jvb3Q9Y29uZmlndXJhdGlvblsi
d2ViX3Jvb3QiXQorICAgICAgICAgICAgd2ViX3Jvb3Q9Y29uZmlndXJhdGlvblsid2ViX3Jvb3Qi
XSwKKyAgICAgICAgICAgIHJlYWRfc2Vzc2lvbnNfZW5hYmxlZD1jb25maWd1cmF0aW9uWyJyZWFk
X3Nlc3Npb25zX2VuYWJsZWQiXQogICAgICAgICApCiAgICAgICAgIHRlc3RzX2FwaV9oYW5kbGVy
ID0gVGVzdHNBcGlIYW5kbGVyKAogICAgICAgICAgICAgdGVzdHNfbWFuYWdlcj10ZXN0c19tYW5h
Z2VyLApAQCAtOTcsOSArMTA5LDI1IEBAIGNsYXNzIFdhdmVTZXJ2ZXIob2JqZWN0KToKICAgICAg
ICAgICAgIHdlYl9yb290PWNvbmZpZ3VyYXRpb25bIndlYl9yb290Il0sCiAgICAgICAgICAgICB0
ZXN0X2xvYWRlcj10ZXN0X2xvYWRlcgogICAgICAgICApCisgICAgICAgIGRldmljZXNfYXBpX2hh
bmRsZXIgPSBEZXZpY2VzQXBpSGFuZGxlcigKKyAgICAgICAgICAgIGRldmljZXNfbWFuYWdlcj1k
ZXZpY2VzX21hbmFnZXIsCisgICAgICAgICAgICBldmVudF9kaXNwYXRjaGVyPWV2ZW50X2Rpc3Bh
dGNoZXIsCisgICAgICAgICAgICB3ZWJfcm9vdD1jb25maWd1cmF0aW9uWyJ3ZWJfcm9vdCJdCisg
ICAgICAgICkKICAgICAgICAgcmVzdWx0c19hcGlfaGFuZGxlciA9IFJlc3VsdHNBcGlIYW5kbGVy
KAogICAgICAgICAgICAgcmVzdWx0c19tYW5hZ2VyLAotICAgICAgICAgICAgd2ViX3Jvb3Q9Y29u
ZmlndXJhdGlvblsid2ViX3Jvb3QiXSkKKyAgICAgICAgICAgIHNlc3Npb25zX21hbmFnZXIsCisg
ICAgICAgICAgICB3ZWJfcm9vdD1jb25maWd1cmF0aW9uWyJ3ZWJfcm9vdCJdCisgICAgICAgICkK
KyAgICAgICAgZ2VuZXJhbF9hcGlfaGFuZGxlciA9IEdlbmVyYWxBcGlIYW5kbGVyKAorICAgICAg
ICAgICAgd2ViX3Jvb3Q9Y29uZmlndXJhdGlvblsid2ViX3Jvb3QiXSwKKyAgICAgICAgICAgIHJl
YWRfc2Vzc2lvbnNfZW5hYmxlZD1jb25maWd1cmF0aW9uWyJyZWFkX3Nlc3Npb25zX2VuYWJsZWQi
XSwKKyAgICAgICAgICAgIGltcG9ydF9yZXN1bHRzX2VuYWJsZWQ9Y29uZmlndXJhdGlvblsiaW1w
b3J0X3Jlc3VsdHNfZW5hYmxlZCJdLAorICAgICAgICAgICAgcmVwb3J0c19lbmFibGVkPXJlcG9y
dHNfZW5hYmxlZCwKKyAgICAgICAgICAgIHZlcnNpb25fc3RyaW5nPVZFUlNJT05fU1RSSU5HLAor
ICAgICAgICAgICAgdGVzdF90eXBlX3NlbGVjdGlvbl9lbmFibGVkPWNvbmZpZ3VyYXRpb25bImVu
YWJsZV90ZXN0X3R5cGVfc2VsZWN0aW9uIl0sCisgICAgICAgICAgICB0ZXN0X2ZpbGVfc2VsZWN0
aW9uX2VuYWJsZWQ9Y29uZmlndXJhdGlvblsiZW5hYmxlX3Rlc3RfZmlsZV9zZWxlY3Rpb24iXQor
ICAgICAgICApCiAKICAgICAgICAgIyBJbml0aWFsaXplIEhUVFAgc2VydmVyCiAgICAgICAgIGh0
dHBfaGFuZGxlciA9IEh0dHBIYW5kbGVyKApAQCAtMTA3LDYgKzEzNSw4IEBAIGNsYXNzIFdhdmVT
ZXJ2ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlc3Npb25zX2FwaV9oYW5kbGVyPXNlc3Npb25z
X2FwaV9oYW5kbGVyLAogICAgICAgICAgICAgdGVzdHNfYXBpX2hhbmRsZXI9dGVzdHNfYXBpX2hh
bmRsZXIsCiAgICAgICAgICAgICByZXN1bHRzX2FwaV9oYW5kbGVyPXJlc3VsdHNfYXBpX2hhbmRs
ZXIsCisgICAgICAgICAgICBkZXZpY2VzX2FwaV9oYW5kbGVyPWRldmljZXNfYXBpX2hhbmRsZXIs
CisgICAgICAgICAgICBnZW5lcmFsX2FwaV9oYW5kbGVyPWdlbmVyYWxfYXBpX2hhbmRsZXIsCiAg
ICAgICAgICAgICBodHRwX3BvcnQ9Y29uZmlndXJhdGlvblsid3B0X3BvcnQiXSwKICAgICAgICAg
ICAgIHdlYl9yb290PWNvbmZpZ3VyYXRpb25bIndlYl9yb290Il0KICAgICAgICAgKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3d3dy9jb21wYXJpc29uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2NvbXBhcmlzb24uaHRtbAppbmRleCA1YmU2ZGE0
ZDY0N2QyMGIxMDU4YThmYjk1OGY3YjlkNzM0NzllNjA5Li5kZWJiOTcxYmY0ODhlNDcyODI4ODRk
NWY3OGE4YmY1ZTM3OWFkZjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2NvbXBhcmlzb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3
L2NvbXBhcmlzb24uaHRtbApAQCAtNjUsNyArNjUsNyBAQAogICAgICAgICB0b2tlbnMgPSB0b2tl
bnMgPyB0b2tlbnMuc3BsaXQoIiwiKSA6IFtdOwogICAgICAgICBjb25zdCByZWZUb2tlbnMgPSBy
ZWZ0b2tlbnMgPyByZWZ0b2tlbnMuc3BsaXQoIiwiKSA6IFtdOwogICAgICAgICBpZiAodG9rZW5z
KSB7Ci0gICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFJlc3VsdHNDb25maWcoZnVuY3Rpb24oY29u
ZmlnKSB7CisgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFN0YXR1cyhmdW5jdGlvbihjb25maWcp
IHsKICAgICAgICAgICAgIGNvbXBhcmlzb25VaS5zdGF0ZS5yZXBvcnRzRW5hYmxlZCA9IGNvbmZp
Zy5yZXBvcnRzRW5hYmxlZDsKICAgICAgICAgICAgIGNvbXBhcmlzb25VaS5yZW5kZXIoKTsKICAg
ICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY29uZmlndXJhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jb25maWd1
cmF0aW9uLmh0bWwKaW5kZXggYWUxNzRiMWE1NTliYWE3ZWQ2YzEyNmI1Y2ZjYmZiZGFmMTA0M2M2
MC4uMzI3YTE1NTE1NGQwZGVlOGI3OWNhZGFkOWM1YjdhZDM5Zjk1OGY0ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy9jb25maWd1cmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jb25maWd1cmF0aW9uLmh0bWwKQEAgLTE4LDI3
MSArMTgsNDI4IEBACiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHNjcmlwdD4KLS8vICAgICAg
dmFyIGFwaXMgPSBbCi0vLyAgICAgICAgeyB0aXRsZTogIjJEIENvbnRleHQiLCBwYXRoOiAiLzJk
Y29udGV4dCIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiQ29udGVudCBTZWN1cml0eSBQb2xpY3ki
LCBwYXRoOiAiL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5IiB9LAotLy8gICAgICAgIHsgdGl0bGU6
ICJDU1MiLCBwYXRoOiAiL2NzcyIgfSwKLS8vICAgICAgICB7IHRpdGxlOiAiRE9NIiwgcGF0aDog
Ii9kb20iIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkVDTUFTY3JpcHQiLCBwYXRoOiAiL2VjbWFz
Y3JpcHQiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkVuY3J5cHRlZCBtZWRpYSIsIHBhdGg6ICIv
ZW5jcnlwdGVkLW1lZGlhIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJGZXRjaCIsIHBhdGg6ICIv
ZmV0Y2giIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkZpbGVBUEkiLCBwYXRoOiAiL0ZpbGVBUEki
IH0sCi0vLyAgICAgICAgeyB0aXRsZTogIkZ1bGxzY3JlZW4iLCBwYXRoOiAiL2Z1bGxzY3JlZW4i
IH0sCi0vLyAgICAgICAgeyB0aXRsZTogIldlYkdMIiwgcGF0aDogIi93ZWJnbCIgfSwKLS8vICAg
ICAgICB7IHRpdGxlOiAiSFRNTCIsIHBhdGg6ICIvaHRtbCIgfSwKLS8vICAgICAgICB7IHRpdGxl
OiAiSW5kZXhlZERCIiwgcGF0aDogIi9JbmRleGVkREIiIH0sCi0vLyAgICAgICAgeyB0aXRsZTog
Ik1lZGlhIFNvdXJjZSIsIHBhdGg6ICIvbWVkaWEtc291cmNlIiB9LAotLy8gICAgICAgIHsgdGl0
bGU6ICJOb3RpZmljYXRpb25zIiwgcGF0aDogIi9ub3RpZmljYXRpb25zIiB9LAotLy8gICAgICAg
IHsgdGl0bGU6ICJQYWdlIFZpc2liaWxpdHkiLCBwYXRoOiAiL3BhZ2UtdmlzaWJpbGl0eSIgfSwK
LS8vICAgICAgICB7IHRpdGxlOiAiU2VydmljZSBXb3JrZXJzIiwgcGF0aDogIi9zZXJ2aWNlLXdv
cmtlcnMiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIlVJIEV2ZW50cyIsIHBhdGg6ICIvdWlldmVu
dHMiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIldBVkUgRXh0cmEiLCBwYXRoOiAiL3dhdmUtZXh0
cmEiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIldlYmF1ZGlvIiwgcGF0aDogIi93ZWJhdWRpbyIg
fSwKLS8vICAgICAgICB7IHRpdGxlOiAiV2ViQ3J5cHRvQVBJIiwgcGF0aDogIi9XZWJDcnlwdG9B
UEkiIH0sCi0vLyAgICAgICAgeyB0aXRsZTogIldlYm1lc3NhZ2luZyIsIHBhdGg6ICIvd2VibWVz
c2FnaW5nIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXZWJzb2NrZXRzIiwgcGF0aDogIi93ZWJz
b2NrZXRzIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXZWJzdG9yYWdlIiwgcGF0aDogIi93ZWJz
dG9yYWdlIiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJXb3JrZXJzIiwgcGF0aDogIi93b3JrZXJz
IiB9LAotLy8gICAgICAgIHsgdGl0bGU6ICJYSFIiLCBwYXRoOiAiL3hociIgfQotLy8gICAgICBd
OwotCQkJdmFyIGFwaXMgPSBbXTsKLQotICAgICAgdmFyIHR5cGVzID0gWwotICAgICAgICB7IHRp
dGxlOiAiQXV0b21hdGljIiwgdmFsdWU6ICJhdXRvbWF0aWMiIH0sCi0gICAgICAgIHsgdGl0bGU6
ICJNYW51YWwiLCB2YWx1ZTogIm1hbnVhbCIgfQotICAgICAgXTsKLQotLy8gICAgICB2YXIgcmVm
ZXJlbmNlU2Vzc2lvbnMgPSBbCi0vLyAgICAgICAgewotLy8gICAgICAgICAgdGl0bGU6ICJFZGdl
IDQ0LjE3NzYzIiwKLS8vICAgICAgICAgIGVuZ2luZTogIiIsCi0vLyAgICAgICAgICB0b2tlbjog
ImIyOTI0ZDIwLTZhOTMtMTFlOS05OGI0LWExMWZiOTJhNmQxYyIsCi0vLyAgICAgICAgICBpY29u
OiAiZmFiIGZhLWVkZ2UiCi0vLyAgICAgICAgfSwKLS8vICAgICAgICB7Ci0vLyAgICAgICAgICB0
aXRsZTogIkZpcmVmb3ggNjQuMCIsCi0vLyAgICAgICAgICBlbmdpbmU6ICJHZWNrbyA2NC4wIiwK
LS8vICAgICAgICAgIHRva2VuOiAiYmI3YWFmYTAtNmE5Mi0xMWU5LThlYzItMDRmNThkYWQyZTRm
IiwKLS8vICAgICAgICAgIGljb246ICJmYWIgZmEtZmlyZWZveCIKLS8vICAgICAgICB9LAotLy8g
ICAgICAgIHsKLS8vICAgICAgICAgIHRpdGxlOiAiV2ViS2l0IDYwNS4xLjE1IiwKLS8vICAgICAg
ICAgIGVuZ2luZTogIlJldmlzaW9uIDIzOTE1OCIsCi0vLyAgICAgICAgICB0b2tlbjogImNhZjgy
M2UwLTZhOTItMTFlOS1iNzMyLTMxODhkMDA2NWViYyIsCi0vLyAgICAgICAgICBpY29uOiAiZmFi
IGZhLXNhZmFyaSIKLS8vICAgICAgICB9LAotLy8gICAgICAgIHsKLS8vICAgICAgICAgIHRpdGxl
OiAiQ2hyb21pdW0gNzMuMC4zNjQwLjAiLAotLy8gICAgICAgICAgZW5naW5lOiAiQmxpbmsgNTM3
LjM2IiwKLS8vICAgICAgICAgIHRva2VuOiAiYTUwYzZkYjAtNmE5NC0xMWU5LThkMWItZTIzZmM0
NTU1ODg1IiwKLS8vICAgICAgICAgIGljb246ICJmYWIgZmEtY2hyb21lIgotLy8gICAgICAgIH0K
LS8vICAgICAgXTsKLQkJCXZhciByZWZlcmVuY2VTZXNzaW9ucz0gW107Ci0KLSAgICAgIHdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgIC8vICAgICAgdmFyIGFwaXMgPSBbCisgICAg
ICAvLyAgICAgICAgeyB0aXRsZTogIjJEIENvbnRleHQiLCBwYXRoOiAiLzJkY29udGV4dCIgfSwK
KyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiQ29udGVudCBTZWN1cml0eSBQb2xpY3kiLCBwYXRo
OiAiL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5IiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6
ICJDU1MiLCBwYXRoOiAiL2NzcyIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiRE9NIiwg
cGF0aDogIi9kb20iIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTogIkVDTUFTY3JpcHQiLCBw
YXRoOiAiL2VjbWFzY3JpcHQiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTogIkVuY3J5cHRl
ZCBtZWRpYSIsIHBhdGg6ICIvZW5jcnlwdGVkLW1lZGlhIiB9LAorICAgICAgLy8gICAgICAgIHsg
dGl0bGU6ICJGZXRjaCIsIHBhdGg6ICIvZmV0Y2giIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRs
ZTogIkZpbGVBUEkiLCBwYXRoOiAiL0ZpbGVBUEkiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRs
ZTogIkZ1bGxzY3JlZW4iLCBwYXRoOiAiL2Z1bGxzY3JlZW4iIH0sCisgICAgICAvLyAgICAgICAg
eyB0aXRsZTogIldlYkdMIiwgcGF0aDogIi93ZWJnbCIgfSwKKyAgICAgIC8vICAgICAgICB7IHRp
dGxlOiAiSFRNTCIsIHBhdGg6ICIvaHRtbCIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAi
SW5kZXhlZERCIiwgcGF0aDogIi9JbmRleGVkREIiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRs
ZTogIk1lZGlhIFNvdXJjZSIsIHBhdGg6ICIvbWVkaWEtc291cmNlIiB9LAorICAgICAgLy8gICAg
ICAgIHsgdGl0bGU6ICJOb3RpZmljYXRpb25zIiwgcGF0aDogIi9ub3RpZmljYXRpb25zIiB9LAor
ICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJQYWdlIFZpc2liaWxpdHkiLCBwYXRoOiAiL3BhZ2Ut
dmlzaWJpbGl0eSIgfSwKKyAgICAgIC8vICAgICAgICB7IHRpdGxlOiAiU2VydmljZSBXb3JrZXJz
IiwgcGF0aDogIi9zZXJ2aWNlLXdvcmtlcnMiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRsZTog
IlVJIEV2ZW50cyIsIHBhdGg6ICIvdWlldmVudHMiIH0sCisgICAgICAvLyAgICAgICAgeyB0aXRs
ZTogIldBVkUgRXh0cmEiLCBwYXRoOiAiL3dhdmUtZXh0cmEiIH0sCisgICAgICAvLyAgICAgICAg
eyB0aXRsZTogIldlYmF1ZGlvIiwgcGF0aDogIi93ZWJhdWRpbyIgfSwKKyAgICAgIC8vICAgICAg
ICB7IHRpdGxlOiAiV2ViQ3J5cHRvQVBJIiwgcGF0aDogIi9XZWJDcnlwdG9BUEkiIH0sCisgICAg
ICAvLyAgICAgICAgeyB0aXRsZTogIldlYm1lc3NhZ2luZyIsIHBhdGg6ICIvd2VibWVzc2FnaW5n
IiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXZWJzb2NrZXRzIiwgcGF0aDogIi93ZWJz
b2NrZXRzIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXZWJzdG9yYWdlIiwgcGF0aDog
Ii93ZWJzdG9yYWdlIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJXb3JrZXJzIiwgcGF0
aDogIi93b3JrZXJzIiB9LAorICAgICAgLy8gICAgICAgIHsgdGl0bGU6ICJYSFIiLCBwYXRoOiAi
L3hociIgfQorICAgICAgLy8gICAgICBdOworCisgICAgICAvLyAgICAgIHZhciByZWZlcmVuY2VT
ZXNzaW9ucyA9IFsKKyAgICAgIC8vICAgICAgICB7CisgICAgICAvLyAgICAgICAgICB0aXRsZTog
IkVkZ2UgNDQuMTc3NjMiLAorICAgICAgLy8gICAgICAgICAgZW5naW5lOiAiIiwKKyAgICAgIC8v
ICAgICAgICAgIHRva2VuOiAiYjI5MjRkMjAtNmE5My0xMWU5LTk4YjQtYTExZmI5MmE2ZDFjIiwK
KyAgICAgIC8vICAgICAgICAgIGljb246ICJmYWIgZmEtZWRnZSIKKyAgICAgIC8vICAgICAgICB9
LAorICAgICAgLy8gICAgICAgIHsKKyAgICAgIC8vICAgICAgICAgIHRpdGxlOiAiRmlyZWZveCA2
NC4wIiwKKyAgICAgIC8vICAgICAgICAgIGVuZ2luZTogIkdlY2tvIDY0LjAiLAorICAgICAgLy8g
ICAgICAgICAgdG9rZW46ICJiYjdhYWZhMC02YTkyLTExZTktOGVjMi0wNGY1OGRhZDJlNGYiLAor
ICAgICAgLy8gICAgICAgICAgaWNvbjogImZhYiBmYS1maXJlZm94IgorICAgICAgLy8gICAgICAg
IH0sCisgICAgICAvLyAgICAgICAgeworICAgICAgLy8gICAgICAgICAgdGl0bGU6ICJXZWJLaXQg
NjA1LjEuMTUiLAorICAgICAgLy8gICAgICAgICAgZW5naW5lOiAiUmV2aXNpb24gMjM5MTU4IiwK
KyAgICAgIC8vICAgICAgICAgIHRva2VuOiAiY2FmODIzZTAtNmE5Mi0xMWU5LWI3MzItMzE4OGQw
MDY1ZWJjIiwKKyAgICAgIC8vICAgICAgICAgIGljb246ICJmYWIgZmEtc2FmYXJpIgorICAgICAg
Ly8gICAgICAgIH0sCisgICAgICAvLyAgICAgICAgeworICAgICAgLy8gICAgICAgICAgdGl0bGU6
ICJDaHJvbWl1bSA3My4wLjM2NDAuMCIsCisgICAgICAvLyAgICAgICAgICBlbmdpbmU6ICJCbGlu
ayA1MzcuMzYiLAorICAgICAgLy8gICAgICAgICAgdG9rZW46ICJhNTBjNmRiMC02YTk0LTExZTkt
OGQxYi1lMjNmYzQ1NTU4ODUiLAorICAgICAgLy8gICAgICAgICAgaWNvbjogImZhYiBmYS1jaHJv
bWUiCisgICAgICAvLyAgICAgICAgfQorICAgICAgLy8gICAgICBdOworCisgICAgICB2YXIgdGVz
dEZpbGVTZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTsKKworICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgbmV3IENvbmZpZ3VyYXRpb25WaWV3KCk7CisgICAgICB9Owor
CisgICAgICBmdW5jdGlvbiBDb25maWd1cmF0aW9uVmlldygpIHsKICAgICAgICAgY29uc3QgcXVl
cnkgPSB1dGlscy5wYXJzZVF1ZXJ5KGxvY2F0aW9uLnNlYXJjaCk7Ci0gICAgICAgIHRva2VuID0g
cXVlcnkudG9rZW47CisgICAgICAgIHZhciB0b2tlbiA9IHF1ZXJ5LnRva2VuOwogICAgICAgICBp
ZiAodG9rZW4pIFdhdmVTZXJ2aWNlLmFkZFJlY2VudFNlc3Npb24odG9rZW4pOwotICAgICAgICBj
b25maWd1cmF0aW9uVWkucmVuZGVyKCk7Ci0JCQkJV2F2ZVNlcnZpY2UucmVhZEF2YWlsYWJsZUFw
aXMoZnVuY3Rpb24oYXZhaWxhYmxlX2FwaXMpIHsKLQkJCQkJYXZhaWxhYmxlX2FwaXMgPSBhdmFp
bGFibGVfYXBpcy5zb3J0KChhcGlBLCBhcGlCKSA9PiBhcGlBLnRpdGxlLnRvTG93ZXJDYXNlKCkg
PiBhcGlCLnRpdGxlLnRvTG93ZXJDYXNlKCkgPyAxIDogLTEpCi0JCQkJCWFwaXMgPSBhdmFpbGFi
bGVfYXBpczsKLQkJCQkJV2F2ZVNlcnZpY2UucmVhZFB1YmxpY1Nlc3Npb25zKGZ1bmN0aW9uKHRv
a2VucykgewotCQkJCQkJY29uc29sZS5sb2codG9rZW5zKTsKLQkJCQkJCVdhdmVTZXJ2aWNlLnJl
YWRNdWx0aXBsZVNlc3Npb25zKHRva2VucywgZnVuY3Rpb24oY29uZmlndXJhdGlvbnMpIHsKLQkJ
CQkJCQlyZWZlcmVuY2VTZXNzaW9ucyA9IGNvbmZpZ3VyYXRpb25zCi0JCQkJCQkJCS5zb3J0KChj
b25mQSwgY29uZkIpID0+IGNvbmZBLmJyb3dzZXIubmFtZS50b0xvd2VyQ2FzZSgpID4gY29uZkIu
YnJvd3Nlci5uYW1lLnRvTG93ZXJDYXNlKCkgPyAxIDogLTEpCi0JCQkJCQkJCS5tYXAoY29uZmln
dXJhdGlvbiA9PiB7Ci0JCQkJCQkJCQl2YXIgaWNvbiA9ICIiOwotCQkJCQkJCQkJc3dpdGNoKGNv
bmZpZ3VyYXRpb24uYnJvd3Nlci5uYW1lLnRvTG93ZXJDYXNlKCkpIHsKLQkJCQkJCQkJCQljYXNl
ICJmaXJlZm94IjogaWNvbiA9ICJmYWIgZmEtZmlyZWZveCI7IGJyZWFrOwotCQkJCQkJCQkJCWNh
c2UgIndlYmtpdCI6Ci0JCQkJCQkJCQkJY2FzZSAic2FmYXJpIjogaWNvbiA9ICJmYWIgZmEtc2Fm
YXJpIjsgYnJlYWs7Ci0JCQkJCQkJCQkJY2FzZSAiZWRnZSI6IGljb24gPSAiZmFiIGZhLWVkZ2Ui
OyBicmVhazsKLQkJCQkJCQkJCQljYXNlICJjaHJvbWUiOgotCQkJCQkJCQkJCWNhc2UgImNocm9t
aXVtIjogaWNvbiA9ICJmYWIgZmEtY2hyb21lIjsgYnJlYWs7Ci0JCQkJCQkJCQl9Ci0JCQkJCQkJ
CQlyZXR1cm4gewotCQkJCQkJCQkJCXRpdGxlOiBjb25maWd1cmF0aW9uLmJyb3dzZXIubmFtZSAr
ICIgIiArIGNvbmZpZ3VyYXRpb24uYnJvd3Nlci52ZXJzaW9uLAotCQkJCQkJCQkJCXRva2VuOiBj
b25maWd1cmF0aW9uLnRva2VuLAotCQkJCQkJCQkJCWljb24sCi0JCQkJCQkJCQkJZW5naW5lOiBj
b25maWd1cmF0aW9uLmJyb3dzZXIuZW5naW5lIHx8ICIiCi0JCQkJCQkJCQl9Ci0JCQkJCQkJCX0p
OwotCQkJCQkJCVdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uU3RhdHVzKAotCQkJCQkJCQl0b2tlbiwK
LQkJCQkJCQkJZnVuY3Rpb24oc3RhdHVzKSB7Ci0JCQkJCQkJCQlpZiAoc3RhdHVzLnN0YXR1cyAh
PT0gInBlbmRpbmciKSB7Ci0JCQkJCQkJCQkJY29uZmlndXJhdGlvblVpLm9wZW5SZXN1bHRzUGFn
ZSh0b2tlbik7Ci0JCQkJCQkJCQkJcmV0dXJuOwotCQkJCQkJCQkJfQotCi0JCQkJCQkJCQlXYXZl
U2VydmljZS5yZWFkU2Vzc2lvbih0b2tlbiwgZnVuY3Rpb24oY29uZmlndXJhdGlvbikgewotCQkJ
CQkJCQkJCWlmICgKLQkJCQkJCQkJCQkJY29uZmlndXJhdGlvbi50ZXN0cy5pbmNsdWRlLmZpbmRJ
bmRleCh0ZXN0ID0+IHRlc3QgPT09ICIvIikgIT09Ci0JCQkJCQkJCQkJCS0xCi0JCQkJCQkJCQkJ
KSB7Ci0JCQkJCQkJCQkJCWNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZSA9IGFwaXMubWFwKGFw
aSA9PiBhcGkucGF0aCk7Ci0JCQkJCQkJCQkJfQotCQkJCQkJCQkJCWNvbmZpZ3VyYXRpb25VaS5z
dGF0ZS5jb25maWd1cmF0aW9uQmFja3VwID0gdXRpbHMuY29weU9iamVjdCgKLQkJCQkJCQkJCQkJ
Y29uZmlndXJhdGlvbgotCQkJCQkJCQkJCSk7Ci0JCQkJCQkJCQkJY29uZmlndXJhdGlvblVpLnN0
YXRlLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOwotCQkJCQkJCQkJCXNldFRpbWVvdXQo
Ci0JCQkJCQkJCQkJCWNvbmZpZ3VyYXRpb25VaS5oYW5kbGVFeHBpcmF0aW9uLAotCQkJCQkJCQkJ
CQljb25maWd1cmF0aW9uLmV4cGlyYXRpb25EYXRlIC0gRGF0ZS5ub3coKQotCQkJCQkJCQkJCSk7
Ci0JCQkJCQkJCQkJY29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9uKCk7
Ci0JCQkJCQkJCQl9KTsKLQkJCQkJCQkJfSwKLQkJCQkJCQkJZnVuY3Rpb24oKSB7Ci0JCQkJCQkJ
CQljb25maWd1cmF0aW9uVWkuc3RhdGUuZXhwaXJlZCA9IHRydWU7Ci0JCQkJCQkJCQljb25maWd1
cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLQkJCQkJCQkJCWNvbmZpZ3Vy
YXRpb25VaS5yZW5kZXJFeGNsdWRlZFRlc3RzKCk7Ci0JCQkJCQkJCQljb25maWd1cmF0aW9uVWku
cmVuZGVyUmVzdW1lVmlldygpOwotCQkJCQkJCQl9Ci0JCQkJCQkJKTsKLQkJCQkJCX0pOwotCQkJ
CQl9KTsKLQkJCQl9KTsKLSAgICAgIH07CisgICAgICAgIHZhciByZWZlcmVuY2VTZXNzaW9ucyA9
IFtdOworICAgICAgICB2YXIgYXBpcyA9IFtdOworICAgICAgICB2YXIgdGVzdFR5cGVTZWxlY3Rp
b25FbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgdmFyIHRlc3RGaWxlU2VsZWN0aW9uRW5hYmxlZCA9
IGZhbHNlOworCisgICAgICAgIHZhciB0eXBlcyA9IFsKKyAgICAgICAgICB7IHRpdGxlOiAiQXV0
b21hdGljIiwgdmFsdWU6ICJhdXRvbWF0aWMiIH0sCisgICAgICAgICAgeyB0aXRsZTogIk1hbnVh
bCIsIHZhbHVlOiAibWFudWFsIiB9LAorICAgICAgICBdOworICAgICAgICB2YXIgc3RhdGUgPSB7
fTsKKyAgICAgICAgbG9hZFNlcnZlclN0YXR1cygpOworICAgICAgICBsb2FkU2Vzc2lvbkRhdGEo
dG9rZW4sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBsb2FkUHVibGljU2Vzc2lvbkRh
dGEoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgcmVuZGVyUmVmZXJlbmNlc0ZpZWxk
KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICByZW5kZXIoKTsK
IAotICAgICAgdmFyIGNvbmZpZ3VyYXRpb25VaSA9IHsKLSAgICAgICAgc3RhdGU6IHt9LAotICAg
ICAgICBoYXNJbmNsdWRlZFRlc3Q6IGZ1bmN0aW9uKHBhdGgpIHsKLSAgICAgICAgICB2YXIgY29u
ZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOwotICAgICAg
ICAgIHZhciBpbmRleCA9IGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZS5maW5kSW5kZXgoCi0g
ICAgICAgICAgICB0ZXN0ID0+IHRlc3QgPT09IHBhdGgKKyAgICAgICAgZnVuY3Rpb24gbG9hZFNl
cnZlclN0YXR1cygpIHsKKyAgICAgICAgICBXYXZlU2VydmljZS5yZWFkU3RhdHVzKGZ1bmN0aW9u
IChzdGF0dXMpIHsKKyAgICAgICAgICAgIHRlc3RUeXBlU2VsZWN0aW9uRW5hYmxlZCA9IHN0YXR1
cy50ZXN0VHlwZVNlbGVjdGlvbkVuYWJsZWQ7CisgICAgICAgICAgICB0ZXN0RmlsZVNlbGVjdGlv
bkVuYWJsZWQgPSBzdGF0dXMudGVzdEZpbGVTZWxlY3Rpb25FbmFibGVkOworICAgICAgICAgICAg
cmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGxvYWRTZXNzaW9uRGF0YSh0b2tlbiwgY2FsbGJhY2spIHsKKyAg
ICAgICAgICBpZiAoIXRva2VuKSB7CisgICAgICAgICAgICBzdGF0ZS5leHBpcmVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgICAgV2F2ZVNlcnZpY2Uu
cmVhZFNlc3Npb25TdGF0dXMoCisgICAgICAgICAgICB0b2tlbiwKKyAgICAgICAgICAgIGZ1bmN0
aW9uIChzdGF0dXMpIHsKKyAgICAgICAgICAgICAgaWYgKHN0YXR1cy5zdGF0dXMgIT09ICJwZW5k
aW5nIikgeworICAgICAgICAgICAgICAgIG9wZW5SZXN1bHRzUGFnZSh0b2tlbik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHN0YXRlLnN0
YXR1cyA9IHN0YXR1czsKKworICAgICAgICAgICAgICBXYXZlU2VydmljZS5yZWFkU2Vzc2lvbih0
b2tlbiwgZnVuY3Rpb24gKGNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoCisg
ICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLnRlc3RzLmluY2x1ZGUuZmluZEluZGV4KAor
ICAgICAgICAgICAgICAgICAgICAodGVzdCkgPT4gdGVzdCA9PT0gIi8iCisgICAgICAgICAgICAg
ICAgICApICE9PSAtMQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgY29u
ZmlndXJhdGlvbi50ZXN0cy5pbmNsdWRlID0gYXBpcy5tYXAoKGFwaSkgPT4gYXBpLnBhdGgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGF0ZS5jb25maWd1cmF0aW9uQmFj
a3VwID0gdXRpbHMuY29weU9iamVjdChjb25maWd1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBz
dGF0ZS5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbjsKKyAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KAorICAgICAgICAgICAgICAgICAgaGFuZGxlRXhwaXJhdGlvbiwKKyAgICAgICAgICAg
ICAgICAgIHN0YXR1cy5leHBpcmF0aW9uRGF0ZS5nZXRUaW1lKCkgLSBEYXRlLm5vdygpCisgICAg
ICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICByZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlv
bigpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgV2F2ZVNl
cnZpY2UucmVhZEF2YWlsYWJsZUFwaXMoZnVuY3Rpb24gKGF2YWlsYWJsZV9hcGlzKSB7CisgICAg
ICAgICAgICAgICAgICBhdmFpbGFibGVfYXBpcyA9IGF2YWlsYWJsZV9hcGlzLnNvcnQoKGFwaUEs
IGFwaUIpID0+CisgICAgICAgICAgICAgICAgICAgIGFwaUEudGl0bGUudG9Mb3dlckNhc2UoKSA+
IGFwaUIudGl0bGUudG9Mb3dlckNhc2UoKSA/IDEgOiAtMQorICAgICAgICAgICAgICAgICAgKTsK
KyAgICAgICAgICAgICAgICAgIGFwaXMgPSBhdmFpbGFibGVfYXBpczsKKyAgICAgICAgICAgICAg
ICAgIHNlbGVjdEFsbFRlc3RzKCk7CisgICAgICAgICAgICAgICAgICByZW5kZXJTZXNzaW9uQ29u
ZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIHN0
YXRlLmV4cGlyZWQgPSB0cnVlOworICAgICAgICAgICAgICByZW5kZXJTZXNzaW9uQ29uZmlndXJh
dGlvbigpOworICAgICAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7CisgICAgICAgICAg
ICAgIHJlbmRlclJlc3VtZVZpZXcoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9hZFB1YmxpY1Nlc3Npb25EYXRhKGNhbGxiYWNr
KSB7CisgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFB1YmxpY1Nlc3Npb25zKGZ1bmN0aW9uICh0
b2tlbnMpIHsKKyAgICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRNdWx0aXBsZVNlc3Npb25zKHRv
a2VucywgZnVuY3Rpb24gKGNvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKGNvbmZpZ3VyYXRpb25zKTsKKyAgICAgICAgICAgICAgcmVmZXJlbmNlU2Vzc2lv
bnMgPSBjb25maWd1cmF0aW9ucworICAgICAgICAgICAgICAgIC5zb3J0KChjb25mQSwgY29uZkIp
ID0+CisgICAgICAgICAgICAgICAgICBjb25mQS5icm93c2VyLm5hbWUudG9Mb3dlckNhc2UoKSA+
CisgICAgICAgICAgICAgICAgICBjb25mQi5icm93c2VyLm5hbWUudG9Mb3dlckNhc2UoKQorICAg
ICAgICAgICAgICAgICAgICA/IDEKKyAgICAgICAgICAgICAgICAgICAgOiAtMQorICAgICAgICAg
ICAgICAgICkKKyAgICAgICAgICAgICAgICAubWFwKChjb25maWd1cmF0aW9uKSA9PiB7CisgICAg
ICAgICAgICAgICAgICB2YXIgaWNvbiA9ICIiOworICAgICAgICAgICAgICAgICAgc3dpdGNoIChj
b25maWd1cmF0aW9uLmJyb3dzZXIubmFtZS50b0xvd2VyQ2FzZSgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgImZpcmVmb3giOgorICAgICAgICAgICAgICAgICAgICAgIGljb24gPSAiZmFi
IGZhLWZpcmVmb3giOworICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlICJ3ZWJraXQiOgorICAgICAgICAgICAgICAgICAgICBjYXNlICJzYWZhcmki
OgorICAgICAgICAgICAgICAgICAgICAgIGljb24gPSAiZmFiIGZhLXNhZmFyaSI7CisgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgImVkZ2UiOgor
ICAgICAgICAgICAgICAgICAgICAgIGljb24gPSAiZmFiIGZhLWVkZ2UiOworICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICJjaHJvbWUiOgorICAg
ICAgICAgICAgICAgICAgICBjYXNlICJjaHJvbWl1bSI6CisgICAgICAgICAgICAgICAgICAgICAg
aWNvbiA9ICJmYWIgZmEtY2hyb21lIjsKKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgICAgIHRpdGxlOgorICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24uYnJv
d3Nlci5uYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAiICIgKworICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb24uYnJvd3Nlci52ZXJzaW9uLAorICAgICAgICAgICAgICAgICAg
ICB0b2tlbjogY29uZmlndXJhdGlvbi50b2tlbiwKKyAgICAgICAgICAgICAgICAgICAgaWNvbiwK
KyAgICAgICAgICAgICAgICAgICAgZW5naW5lOiBjb25maWd1cmF0aW9uLmJyb3dzZXIuZW5naW5l
IHx8ICIiLAorICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgY2FsbGJhY2socmVmZXJlbmNlU2Vzc2lvbnMpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVDb25maWd1
cmVTZXNzaW9uKCkgeworICAgICAgICAgIGNvbnN0IHRva2VuRnJhZ21lbnRJbnB1dCA9IFVJLmdl
dEVsZW1lbnQoInRva2VuLWZyYWdtZW50Iik7CisgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0
b2tlbkZyYWdtZW50SW5wdXQudmFsdWU7CisgICAgICAgICAgZmluZFNlc3Npb24oZnJhZ21lbnQs
IGZ1bmN0aW9uIChzZXNzaW9uKSB7CisgICAgICAgICAgICBpZiAoIXNlc3Npb24pIHsKKyAgICAg
ICAgICAgICAgY29uc3QgZXJyb3JCb3ggPSBVSS5nZXRFbGVtZW50KCJmaW5kLWVycm9yIik7Cisg
ICAgICAgICAgICAgIGVycm9yQm94LnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogYmxv
Y2siKTsKKyAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
dG9rZW5GcmFnbWVudElucHV0LnZhbHVlID0gIiI7CisgICAgICAgICAgICBjb25zdCBlcnJvckJv
eCA9IFVJLmdldEVsZW1lbnQoImZpbmQtZXJyb3IiKTsKKyAgICAgICAgICAgIGVycm9yQm94LnNl
dEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZSIpOworICAgICAgICAgICAgY29uc3Qg
cGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lICsgIj90b2tlbj0iICsgc2Vzc2lvbi50b2tlbjsKKyAg
ICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBwYXRoOworICAgICAgICAgIH0pOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZmluZFNlc3Npb24oZnJhZ21lbnQsIGNhbGxiYWNrKSB7Cisg
ICAgICAgICAgaWYgKCFmcmFnbWVudCB8fCBmcmFnbWVudC5sZW5ndGggPCA4KSB7CisgICAgICAg
ICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9Cisg
ICAgICAgICAgV2F2ZVNlcnZpY2UuZmluZFRva2VuKAorICAgICAgICAgICAgZnJhZ21lbnQsCisg
ICAgICAgICAgICBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgICAgICAgV2F2ZVNlcnZpY2Uu
cmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0aW9uIChzZXNzaW9uKSB7CisgICAgICAgICAgICAgICAg
V2F2ZVNlcnZpY2UucmVhZFNlc3Npb25TdGF0dXModG9rZW4sIGZ1bmN0aW9uIChzdGF0dXMpIHsK
KyAgICAgICAgICAgICAgICAgIHNlc3Npb24uc3RhdHVzID0gc3RhdHVzLnN0YXR1czsKKyAgICAg
ICAgICAgICAgICAgIHNlc3Npb24uZGF0ZVN0YXJ0ZWQgPSBzdGF0dXMuZGF0ZVN0YXJ0ZWQ7Cisg
ICAgICAgICAgICAgICAgICBzZXNzaW9uLmRhdGVGaW5pc2hlZCA9IHN0YXR1cy5kYXRlRmluaXNo
ZWQ7CisgICAgICAgICAgICAgICAgICBjYWxsYmFjayhzZXNzaW9uKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFzSW5jbHVkZWRU
ZXN0KHBhdGgpIHsKKyAgICAgICAgICB2YXIgdGVzdHMgPSBzdGF0ZS5jb25maWd1cmF0aW9uLnRl
c3RzOworICAgICAgICAgIC8vdmFyIGluZGV4ID0gdGVzdHMuaW5jbHVkZS5maW5kSW5kZXgoZnVu
Y3Rpb24gKHRlc3QpIHsKKyAgICAgICAgICAvLyAgcmV0dXJuIHRlc3QubWF0Y2gobmV3IFJlZ0V4
cCgiXiIgKyBwYXRoKSk7CisgICAgICAgICAgLy99KTsKKyAgICAgICAgICB2YXIgaW5kZXggPSB0
ZXN0cy5pbmNsdWRlLmluZGV4T2YocGF0aCk7CiAgICAgICAgICAgcmV0dXJuIGluZGV4ICE9PSAt
MTsKLSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlSW5jbHVkZWRUZXN0VG9nZ2xlOiBmdW5jdGlv
bihwYXRoKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWku
c3RhdGUuY29uZmlndXJhdGlvbjsKLSAgICAgICAgICBpZiAoY29uZmlndXJhdGlvblVpLmhhc0lu
Y2x1ZGVkVGVzdChwYXRoKSkgewotICAgICAgICAgICAgdmFyIGluZGV4ID0gY29uZmlndXJhdGlv
bi50ZXN0cy5pbmNsdWRlLmZpbmRJbmRleCgKLSAgICAgICAgICAgICAgdGVzdCA9PiB0ZXN0ID09
PSBwYXRoCi0gICAgICAgICAgICApOwotICAgICAgICAgICAgY29uZmlndXJhdGlvbi50ZXN0cy5p
bmNsdWRlLnNwbGljZShpbmRleCwgMSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBo
YW5kbGVJbmNsdWRlZFRlc3RUb2dnbGUocGF0aCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0
aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAgICBpZiAoaGFzSW5jbHVkZWRUZXN0
KHBhdGgpKSB7CisgICAgICAgICAgICBoYW5kbGVSZW1vdmVJbmNsdWRlZFRlc3QocGF0aCk7CiAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVk
ZS5wdXNoKHBhdGgpOworICAgICAgICAgICAgaGFuZGxlQWRkSW5jbHVkZWRUZXN0KHBhdGgpOwog
ICAgICAgICAgIH0KLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZp
Z3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgc2VsZWN0QWxsVGVzdHM6IGZ1bmN0aW9u
KCkgewotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRl
LmNvbmZpZ3VyYXRpb247Ci0gICAgICAgICAgY29uZmlndXJhdGlvbi50ZXN0cy5pbmNsdWRlID0g
YXBpcy5tYXAoYXBpID0+IGFwaS5wYXRoKTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVu
ZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgZGVzZWxlY3RB
bGxUZXN0czogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25m
aWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGhhbmRsZUFkZEluY2x1ZGVkVGVzdChwYXRoKSB7CisgICAgICAgICAgdmFyIHRlc3Rz
ID0gc3RhdGUuY29uZmlndXJhdGlvbi50ZXN0czsKKyAgICAgICAgICBpZiAoc3RhdGUudGVzdHMg
JiYgc3RhdGUudGVzdHNbcGF0aC5zdWJzdHIoMSldKSB7CisgICAgICAgICAgICB0ZXN0cy5pbmNs
dWRlID0gdGVzdHMuaW5jbHVkZS5maWx0ZXIoZnVuY3Rpb24gKHRlc3QpIHsKKyAgICAgICAgICAg
ICAgcmV0dXJuICF0ZXN0Lm1hdGNoKG5ldyBSZWdFeHAoIl4iICsgcGF0aCArICIvIikpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB0ZXN0cy5pbmNsdWRlID0gdGVzdHMuaW5jbHVkZS5j
b25jYXQoc3RhdGUudGVzdHNbcGF0aC5zdWJzdHIoMSldKTsKKyAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdGVzdHMuaW5jbHVkZS5wdXNoKHBhdGgpOworICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVJlbW92ZUluY2x1ZGVkVGVzdChwYXRoKSB7
CisgICAgICAgICAgdmFyIHRlc3RzID0gc3RhdGUuY29uZmlndXJhdGlvbi50ZXN0czsKKworICAg
ICAgICAgIGlmIChzdGF0ZS50ZXN0cyAmJiBzdGF0ZS50ZXN0c1twYXRoLnN1YnN0cigxKV0pIHsK
KyAgICAgICAgICAgIHRlc3RzLmluY2x1ZGUgPSB0ZXN0cy5pbmNsdWRlLmZpbHRlcihmdW5jdGlv
biAodGVzdCkgeworICAgICAgICAgICAgICByZXR1cm4gIXRlc3QubWF0Y2gobmV3IFJlZ0V4cCgi
XiIgKyBwYXRoICsgIi8iKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdmFyIGluZGV4ID0gdGVzdHMuaW5jbHVkZS5maW5kSW5kZXgoKHRlc3QpID0+
IHRlc3QgPT09IHBhdGgpOworICAgICAgICAgICAgdGVzdHMuaW5jbHVkZS5zcGxpY2UoaW5kZXgs
IDEpOworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldEluY2x1
ZGVkUmF0aW8ocGF0aCkgeworICAgICAgICAgIHZhciBpbmNsdWRlZFRlc3RzID0gc3RhdGUuY29u
ZmlndXJhdGlvbi50ZXN0cy5pbmNsdWRlOworICAgICAgICAgIGlmICghc3RhdGUudGVzdHMpIHsK
KyAgICAgICAgICAgIHJldHVybiBpbmNsdWRlZFRlc3RzLmluZGV4T2YocGF0aCkgIT09IC0xID8g
MSA6IDA7CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAg
Zm9yICh2YXIgdGVzdCBvZiBpbmNsdWRlZFRlc3RzKSB7CisgICAgICAgICAgICBpZiAoIXRlc3Qu
bWF0Y2gobmV3IFJlZ0V4cCgiXiIgKyBwYXRoKSkpIGNvbnRpbnVlOworICAgICAgICAgICAgY291
bnQrKzsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGNvdW50IC8gc3RhdGUudGVzdHNb
cGF0aC5zdWJzdHIoMSldLmxlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNl
bGVjdEFsbFRlc3RzKCkgeworICAgICAgICAgIHZhciB0ZXN0cyA9IHN0YXRlLmNvbmZpZ3VyYXRp
b24udGVzdHM7CisgICAgICAgICAgaWYgKHN0YXRlLnRlc3RzKSB7CisgICAgICAgICAgICB0ZXN0
cy5pbmNsdWRlID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBhcGkgaW4gc3RhdGUudGVzdHMp
IHsKKyAgICAgICAgICAgICAgdGVzdHMuaW5jbHVkZSA9IHRlc3RzLmluY2x1ZGUuY29uY2F0KHN0
YXRlLnRlc3RzW2FwaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0cy5pbmNsdWRlID0gYXBpcy5tYXAoKGFwaSkgPT4gYXBpLnBhdGgpOworICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlc2VsZWN0QWxsVGVzdHMo
KSB7CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOwog
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZSA9IFtdOwotICAgICAgICAgIGNv
bmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICB9LAot
ICAgICAgICBoYXNUZXN0VHlwZTogZnVuY3Rpb24odmFsdWUpIHsKLSAgICAgICAgICB2YXIgY29u
ZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOwotICAgICAg
ICAgIHZhciBpbmRleCA9IGNvbmZpZ3VyYXRpb24udHlwZXMuZmluZEluZGV4KHR5cGUgPT4gdHlw
ZSA9PT0gdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFzVGVzdFR5cGUo
dmFsdWUpIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRp
b247CisgICAgICAgICAgdmFyIGluZGV4ID0gY29uZmlndXJhdGlvbi50eXBlcy5maW5kSW5kZXgo
KHR5cGUpID0+IHR5cGUgPT09IHZhbHVlKTsKICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IC0x
OwotICAgICAgICB9LAotICAgICAgICBoYW5kbGVUZXN0VHlwZVRvZ2dsZTogZnVuY3Rpb24odmFs
dWUpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0
ZS5jb25maWd1cmF0aW9uOwotICAgICAgICAgIGlmIChjb25maWd1cmF0aW9uVWkuaGFzVGVzdFR5
cGUodmFsdWUpKSB7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSBjb25maWd1cmF0aW9uLnR5cGVz
LmZpbmRJbmRleCh0eXBlID0+IHR5cGUgPT09IHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGhhbmRsZVRlc3RUeXBlVG9nZ2xlKHZhbHVlKSB7CisgICAgICAgICAgdmFyIGNv
bmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIGlmIChoYXNUZXN0
VHlwZSh2YWx1ZSkpIHsKKyAgICAgICAgICAgIHZhciBpbmRleCA9IGNvbmZpZ3VyYXRpb24udHlw
ZXMuZmluZEluZGV4KCh0eXBlKSA9PiB0eXBlID09PSB2YWx1ZSk7CiAgICAgICAgICAgICBjb25m
aWd1cmF0aW9uLnR5cGVzLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGNvbmZpZ3VyYXRpb24udHlwZXMucHVzaCh2YWx1ZSk7CiAgICAgICAgICAgfQot
ICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwot
ICAgICAgICB9LAotICAgICAgICBzZWxlY3RBbGxUZXN0VHlwZXM6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3Vy
YXRpb247Ci0gICAgICAgICAgY29uZmlndXJhdGlvbi50eXBlcyA9IHR5cGVzLm1hcCh0eXBlID0+
IHR5cGUudmFsdWUpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29u
ZmlndXJhdGlvbigpOwotICAgICAgICB9LAotICAgICAgICBkZXNlbGVjdEFsbFRlc3RUeXBlczog
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9u
VWkuc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNl
bGVjdEFsbFRlc3RUeXBlcygpIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRl
LmNvbmZpZ3VyYXRpb247CisgICAgICAgICAgY29uZmlndXJhdGlvbi50eXBlcyA9IHR5cGVzLm1h
cCgodHlwZSkgPT4gdHlwZS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBk
ZXNlbGVjdEFsbFRlc3RUeXBlcygpIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0
YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAgY29uZmlndXJhdGlvbi50eXBlcyA9IFtdOwot
ICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwot
ICAgICAgICB9LAotICAgICAgICBoYXNSZWZTZXNzaW9uOiBmdW5jdGlvbihzZXNzaW9uKSB7Ci0g
ICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmln
dXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhc1JlZlNlc3Npb24oc2Vz
c2lvbikgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlv
bjsKICAgICAgICAgICB2YXIgaW5kZXggPSBjb25maWd1cmF0aW9uLnJlZmVyZW5jZVRva2Vucy5m
aW5kSW5kZXgoCi0gICAgICAgICAgICB0b2tlbiA9PiB0b2tlbiA9PT0gc2Vzc2lvbi50b2tlbgor
ICAgICAgICAgICAgKHRva2VuKSA9PiB0b2tlbiA9PT0gc2Vzc2lvbi50b2tlbgogICAgICAgICAg
ICk7CiAgICAgICAgICAgcmV0dXJuIGluZGV4ICE9PSAtMTsKLSAgICAgICAgfSwKLSAgICAgICAg
aGFuZGxlUmVmU2Vzc2lvblRvZ2dsZTogZnVuY3Rpb24oc2Vzc2lvbikgewotICAgICAgICAgIHZh
ciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247Ci0g
ICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25VaS5oYXNSZWZTZXNzaW9uKHNlc3Npb24pKSB7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVSZWZTZXNzaW9uVG9nZ2xlKHNlc3Np
b24pIHsKKyAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247
CisgICAgICAgICAgaWYgKGhhc1JlZlNlc3Npb24oc2Vzc2lvbikpIHsKICAgICAgICAgICAgIHZh
ciBpbmRleCA9IGNvbmZpZ3VyYXRpb24ucmVmZXJlbmNlVG9rZW5zLmZpbmRJbmRleCgKLSAgICAg
ICAgICAgICAgdG9rZW4gPT4gdG9rZW4gPT09IHNlc3Npb24udG9rZW4KKyAgICAgICAgICAgICAg
KHRva2VuKSA9PiB0b2tlbiA9PT0gc2Vzc2lvbi50b2tlbgogICAgICAgICAgICAgKTsKICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb24ucmVmZXJlbmNlVG9rZW5zLnNwbGljZShpbmRleCwgMSk7CiAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24ucmVmZXJlbmNlVG9r
ZW5zLnB1c2goc2Vzc2lvbi50b2tlbik7CiAgICAgICAgICAgfQotICAgICAgICAgIGNvbmZpZ3Vy
YXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICB9LAotICAgICAg
ICBzZWxlY3RBbGxSZWZTZXNzaW9uczogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgdmFyIGNvbmZp
Z3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHNlbGVjdEFsbFJlZlNlc3Npb25zKCkgeworICAgICAgICAg
IHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICBjb25m
aWd1cmF0aW9uLnJlZmVyZW5jZVRva2VucyA9IHJlZmVyZW5jZVNlc3Npb25zLm1hcCgKLSAgICAg
ICAgICAgIHNlc3Npb24gPT4gc2Vzc2lvbi50b2tlbgorICAgICAgICAgICAgKHNlc3Npb24pID0+
IHNlc3Npb24udG9rZW4KICAgICAgICAgICApOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5y
ZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICB9LAotICAgICAgICBkZXNlbGVj
dEFsbFJlZlNlc3Npb25zOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlv
biA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gZGVzZWxlY3RBbGxSZWZTZXNzaW9ucygpIHsKKyAgICAgICAgICB2YXIg
Y29uZmlndXJhdGlvbiA9IHN0YXRlLmNvbmZpZ3VyYXRpb247CiAgICAgICAgICAgY29uZmlndXJh
dGlvbi5yZWZlcmVuY2VUb2tlbnMgPSBbXTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVu
ZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgaXNUZXN0TGlz
dFZhbGlkOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZp
Z3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gaXNUZXN0TGlzdFZhbGlkKCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0g
c3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbi50ZXN0
cy5pbmNsdWRlLmxlbmd0aCA+IDA7Ci0gICAgICAgIH0sCi0gICAgICAgIGlzVGVzdFR5cGVMaXN0
VmFsaWQ6IGZ1bmN0aW9uKCkgewotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmln
dXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBpc1Rlc3RUeXBlTGlzdFZhbGlkKCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9u
ID0gc3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbi50
eXBlcy5sZW5ndGggPiAwOwotICAgICAgICB9LAotICAgICAgICBpc0NvbmZpZ3VyYXRpb25WYWxp
ZDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uVWkuaXNUZXN0TGlz
dFZhbGlkKCkpIHJldHVybiBmYWxzZTsKLSAgICAgICAgICBpZiAoIWNvbmZpZ3VyYXRpb25VaS5p
c1Rlc3RUeXBlTGlzdFZhbGlkKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIGlzQ29uZmlndXJhdGlvblZhbGlkKCkgeworICAgICAgICAgIGlmICghaXNUZXN0
TGlzdFZhbGlkKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICBpZiAoIWlzVGVzdFR5cGVMaXN0
VmFsaWQoKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
LAotICAgICAgICBpc1Nlc3Npb25TdGFydGluZzogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0
dXJuIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5pc1N0YXJ0aW5nOwotICAgICAgICB9LAotICAgICAg
ICBoYW5kbGVTdGFydDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25V
aS5pc1Nlc3Npb25TdGFydGluZygpKSByZXR1cm47Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRp
b24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbjsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGlzU2Vzc2lvblN0YXJ0aW5nKCkgeworICAgICAgICAgIHJldHVybiBz
dGF0ZS5pc1N0YXJ0aW5nOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tBcGlM
aXN0KCkgeworICAgICAgICAgIHZhciBhcGlFcnJvckVsZW1lbnQgPSBVSS5nZXRFbGVtZW50KCJh
cGktZXJyb3IiKTsKKyAgICAgICAgICBhcGlFcnJvckVsZW1lbnQuaW5uZXJIVE1MID0gIiI7Cisg
ICAgICAgICAgaWYgKCFpc1Rlc3RMaXN0VmFsaWQoKSkgeworICAgICAgICAgICAgYXBpRXJyb3JF
bGVtZW50LmFwcGVuZENoaWxkKAorICAgICAgICAgICAgICBVSS5jcmVhdGVFbGVtZW50KAorICAg
ICAgICAgICAgICAgIGNyZWF0ZUVycm9yTWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICJTZWxl
Y3QgYXQgbGVhc3Qgb25lIEFQSSBvciBhdCBsZWFzdCBvbmUgdGVzdCB3aXRoaW4gYW4gQVBJIgor
ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKTsKKyAgICAg
ICAgICB9CisgICAgICAgICAgcmVuZGVyQnV0dG9uc0ZpZWxkKCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBoYW5kbGVTdGFydCgpIHsKKyAgICAgICAgICBpZiAoaXNTZXNzaW9uU3Rh
cnRpbmcoKSkgcmV0dXJuOworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29u
ZmlndXJhdGlvbjsKICAgICAgICAgICB2YXIgdG9rZW4gPSBjb25maWd1cmF0aW9uLnRva2VuOwot
ICAgICAgICAgIFdhdmVTZXJ2aWNlLnVwZGF0ZVNlc3Npb24odG9rZW4sIGNvbmZpZ3VyYXRpb24s
IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgV2F2ZVNlcnZpY2UudXBkYXRlTGFiZWxzKHRva2Vu
LCBjb25maWd1cmF0aW9uLmxhYmVscywgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIFdhdmVT
ZXJ2aWNlLnN0YXJ0U2Vzc2lvbih0b2tlbiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
Y29uZmlndXJhdGlvblVpLm9wZW5SZXN1bHRzUGFnZSh0b2tlbik7CisgICAgICAgICAgV2F2ZVNl
cnZpY2UudXBkYXRlU2Vzc2lvbih0b2tlbiwgY29uZmlndXJhdGlvbiwgZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgV2F2ZVNlcnZpY2UudXBkYXRlTGFiZWxzKHRva2VuLCBjb25maWd1cmF0aW9u
LmxhYmVscywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBXYXZlU2VydmljZS5zdGFydFNl
c3Npb24odG9rZW4sIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBvcGVuUmVzdWx0c1Bh
Z2UodG9rZW4pOwogICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAg
IH0pOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5pc1N0YXJ0aW5nID0gdHJ1ZTsK
LSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKTsK
LSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlRGlzY2FyZENoYW5nZXM6IGZ1bmN0aW9uKCkgewot
ICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uID0gdXRpbHMuY29w
eU9iamVjdCgKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9u
QmFja3VwCi0gICAgICAgICAgKTsKLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyU2Vz
c2lvbkNvbmZpZ3VyYXRpb24oKTsKLSAgICAgICAgfSwKLSAgICAgICAgaGFuZGxlRXhwaXJhdGlv
bjogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmV4cGlyZWQg
PSB0cnVlOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJh
dGlvbigpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJSZXN1bWVWaWV3KCk7Ci0g
ICAgICAgIH0sCi0gICAgICAgIG9wZW5SZXN1bHRzUGFnZTogZnVuY3Rpb24odG9rZW4pIHsKKyAg
ICAgICAgICBzdGF0ZS5pc1N0YXJ0aW5nID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGhhbmRsZURpc2NhcmRDaGFuZ2VzKCkgeworICAgICAgICAgIHN0YXRlLmNvbmZpZ3Vy
YXRpb24gPSB1dGlscy5jb3B5T2JqZWN0KHN0YXRlLmNvbmZpZ3VyYXRpb25CYWNrdXApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlRXhwaXJhdGlvbigpIHsKKyAgICAgICAg
ICBzdGF0ZS5leHBpcmVkID0gdHJ1ZTsKKyAgICAgICAgICByZW5kZXJTZXNzaW9uQ29uZmlndXJh
dGlvbigpOworICAgICAgICAgIHJlbmRlclJlc3VtZVZpZXcoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIG9wZW5SZXN1bHRzUGFnZSh0b2tlbikgewogICAgICAgICAgIGxvY2F0aW9u
LmhyZWYgPSBXRUJfUk9PVCArICJyZXN1bHRzLmh0bWw/dG9rZW49IiArIHRva2VuOwotICAgICAg
ICB9LAotICAgICAgICBoYW5kbGVBZGRFeGx1ZGVkVGVzdHNSYXc6IGZ1bmN0aW9uKCkgeworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlQWRkRXhsdWRlZFRlc3RzUmF3KCkgewog
ICAgICAgICAgIHZhciBleGNsdWRlZFRlc3RzVGV4dEFyZWEgPSBVSS5nZXRFbGVtZW50KCJleGNs
dWRlZC10ZXN0cy10ZXh0Iik7CiAgICAgICAgICAgdmFyIHRlc3RzID0gZXhjbHVkZWRUZXN0c1Rl
eHRBcmVhLnZhbHVlLnNwbGl0KCJcbiIpOwotICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0g
Y29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb247CisgICAgICAgICAgdmFyIGNvbmZp
Z3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOwogICAgICAgICAgIHZhciBleGNsdWRlZFRl
c3RzID0gY29uZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlOwogICAgICAgICAgIGZvciAodmFyIHRl
c3Qgb2YgdGVzdHMpIHsKICAgICAgICAgICAgIGlmICghdGVzdCkgY29udGludWU7CkBAIC0yOTIs
MjEgKzQ0OSwyMiBAQAogICAgICAgICAgIH0KIAogICAgICAgICAgIGV4Y2x1ZGVkVGVzdHNUZXh0
QXJlYS52YWx1ZSA9ICIiOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJFeGNsdWRl
ZFRlc3RzKCk7Ci0gICAgICAgIH0sCi0gICAgICAgIGhhbmRsZUFkZEV4bHVkZWRUZXN0c01hbGZ1
bmN0aW9uaW5nOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZW5kZXJFeGNsdWRlZFRlc3RzKCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVBZGRFeGx1ZGVkVGVzdHNNYWxm
dW5jdGlvbmluZygpIHsKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0c1RleHRBcmVhID0gVUku
Z2V0RWxlbWVudCgiZXhjbHVkZWQtdGVzdHMtdGV4dCIpOwogICAgICAgICAgIHZhciB0b2tlbiA9
IGV4Y2x1ZGVkVGVzdHNUZXh0QXJlYS52YWx1ZTsKICAgICAgICAgICB2YXIgdG9rZW5SZWdFeHAg
PSBuZXcgUmVnRXhwKAogICAgICAgICAgICAgIl5bYS1mMC05XXs4fSgtW2EtZjAtOV17MCw0fXwk
KSgtW2EtZjAtOV17MCw0fXwkKSgtW2EtZjAtOV17MCw0fXwkKSgtW2EtZjAtOV17MCwxMn18JCki
CiAgICAgICAgICAgKTsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRp
b25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0g
c3RhdGUuY29uZmlndXJhdGlvbjsKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0cyA9IGNvbmZp
Z3VyYXRpb24udGVzdHMuZXhjbHVkZTsKICAgICAgICAgICBpZiAodG9rZW5SZWdFeHAudGVzdCh0
b2tlbikpIHsKICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLmZpbmRUb2tlbigKICAgICAgICAgICAg
ICAgdG9rZW4sCi0gICAgICAgICAgICAgIGZ1bmN0aW9uKHRva2VuKSB7Ci0gICAgICAgICAgICAg
ICAgV2F2ZVNlcnZpY2UucmVhZE1hbGZ1bmN0aW9uaW5nVGVzdHModG9rZW4sIGZ1bmN0aW9uKAor
ICAgICAgICAgICAgICBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgICAgICAgICBXYXZlU2Vy
dmljZS5yZWFkTWFsZnVuY3Rpb25pbmdUZXN0cyh0b2tlbiwgZnVuY3Rpb24gKAogICAgICAgICAg
ICAgICAgICAgbWFsZnVuY3Rpb25pbmdUZXN0cwogICAgICAgICAgICAgICAgICkgewogICAgICAg
ICAgICAgICAgICAgZm9yICh2YXIgdGVzdCBvZiBtYWxmdW5jdGlvbmluZ1Rlc3RzKSB7CkBAIC0z
MTQsMTAwICs0NzIsMTA5IEBACiAgICAgICAgICAgICAgICAgICAgIGlmIChleGNsdWRlZFRlc3Rz
LmluZGV4T2YodGVzdCkgIT09IC0xKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgZXhj
bHVkZWRUZXN0cy5wdXNoKHRlc3QpOwogICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAgICAgICAg
ICAgICAgIHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
Y29uZmlndXJhdGlvblVpLnN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9yID0gIlNlc3Npb24gbm90IGZv
dW5kIjsKLSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0
cygpOworICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgc3RhdGUu
ZXhjbHVkZWRUZXN0RXJyb3IgPSAiU2Vzc2lvbiBub3QgZm91bmQiOworICAgICAgICAgICAgICAg
IHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgKTsK
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmV4
Y2x1ZGVkVGVzdEVycm9yID0gIkludmFsaWQgc2Vzc2lvbiB0b2tlbiI7Ci0gICAgICAgICAgICBj
b25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0cygpOworICAgICAgICAgICAgc3RhdGUu
ZXhjbHVkZWRUZXN0RXJyb3IgPSAiSW52YWxpZCBzZXNzaW9uIHRva2VuIjsKKyAgICAgICAgICAg
IHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAg
IGhhbmRsZUFkZEV4bHVkZWRUZXN0c0V4Y2x1ZGVkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUFkZEV4bHVkZWRUZXN0c0V4Y2x1ZGVkKCkgewogICAg
ICAgICAgIHZhciBleGNsdWRlZFRlc3RzVGV4dEFyZWEgPSBVSS5nZXRFbGVtZW50KCJleGNsdWRl
ZC10ZXN0cy10ZXh0Iik7CiAgICAgICAgICAgdmFyIHRva2VuID0gZXhjbHVkZWRUZXN0c1RleHRB
cmVhLnZhbHVlOwogICAgICAgICAgIHZhciB0b2tlblJlZ0V4cCA9IG5ldyBSZWdFeHAoCiAgICAg
ICAgICAgICAiXlthLWYwLTldezh9KC1bYS1mMC05XXswLDR9fCQpKC1bYS1mMC05XXswLDR9fCQp
KC1bYS1mMC05XXswLDR9fCQpKC1bYS1mMC05XXswLDEyfXwkKSIKICAgICAgICAgICApOwotICAg
ICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3Vy
YXRpb247CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9u
OwogICAgICAgICAgIHZhciBleGNsdWRlZFRlc3RzID0gY29uZmlndXJhdGlvbi50ZXN0cy5leGNs
dWRlOwogICAgICAgICAgIGlmICh0b2tlblJlZ0V4cC50ZXN0KHRva2VuKSkgewogICAgICAgICAg
ICAgV2F2ZVNlcnZpY2UuZmluZFRva2VuKAogICAgICAgICAgICAgICB0b2tlbiwKLSAgICAgICAg
ICAgICAgZnVuY3Rpb24odG9rZW4pIHsKLSAgICAgICAgICAgICAgICBXYXZlU2VydmljZS5yZWFk
U2Vzc2lvbih0b2tlbiwgZnVuY3Rpb24oc2Vzc2lvbkNvbmZpZykgeworICAgICAgICAgICAgICBm
dW5jdGlvbiAodG9rZW4pIHsKKyAgICAgICAgICAgICAgICBXYXZlU2VydmljZS5yZWFkU2Vzc2lv
bih0b2tlbiwgZnVuY3Rpb24gKHNlc3Npb25Db25maWcpIHsKICAgICAgICAgICAgICAgICAgIHZh
ciBwcmV2RXhjbHVkZWRUZXN0cyA9IHNlc3Npb25Db25maWcudGVzdHMuZXhjbHVkZTsKICAgICAg
ICAgICAgICAgICAgIGZvciAodmFyIHRlc3Qgb2YgcHJldkV4Y2x1ZGVkVGVzdHMpIHsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0KSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKGV4Y2x1ZGVkVGVzdHMuaW5kZXhPZih0ZXN0KSAhPT0gLTEpIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgICAgICBleGNsdWRlZFRlc3RzLnB1c2godGVzdCk7CiAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0
cygpOworICAgICAgICAgICAgICAgICAgcmVuZGVyRXhjbHVkZWRUZXN0cygpOwogICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICBmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuc3RhdGUuZXhjbHVkZWRUZXN0RXJyb3Ig
PSAiU2Vzc2lvbiBub3QgZm91bmQiOwotICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5y
ZW5kZXJFeGNsdWRlZFRlc3RzKCk7CisgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBzdGF0ZS5leGNsdWRlZFRlc3RFcnJvciA9ICJTZXNzaW9uIG5vdCBmb3VuZCI7
CisgICAgICAgICAgICAgICAgcmVuZGVyRXhjbHVkZWRUZXN0cygpOwogICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICApOwogICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb25maWd1
cmF0aW9uVWkuc3RhdGUuZXhjbHVkZWRUZXN0RXJyb3IgPSAiSW52YWxpZCBzZXNzaW9uIHRva2Vu
IjsKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJFeGNsdWRlZFRlc3RzKCk7Cisg
ICAgICAgICAgICBzdGF0ZS5leGNsdWRlZFRlc3RFcnJvciA9ICJJbnZhbGlkIHNlc3Npb24gdG9r
ZW4iOworICAgICAgICAgICAgcmVuZGVyRXhjbHVkZWRUZXN0cygpOwogICAgICAgICAgIH0KLSAg
ICAgICAgfSwKLSAgICAgICAgaGFuZGxlUmVtb3ZlRXhjbHVkZWRUZXN0OiBmdW5jdGlvbih0ZXN0
KSB7Ci0gICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uVWkuc3RhdGUu
Y29uZmlndXJhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVJlbW92
ZUV4Y2x1ZGVkVGVzdCh0ZXN0KSB7CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0
ZS5jb25maWd1cmF0aW9uOwogICAgICAgICAgIHZhciBleGNsdWRlZFRlc3RzID0gY29uZmlndXJh
dGlvbi50ZXN0cy5leGNsdWRlOwogICAgICAgICAgIHZhciBpbmRleCA9IGV4Y2x1ZGVkVGVzdHMu
aW5kZXhPZih0ZXN0KTsKICAgICAgICAgICBleGNsdWRlZFRlc3RzLnNwbGljZShpbmRleCwgMSk7
Ci0gICAgICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKLSAgICAg
ICAgfSwKLSAgICAgICAgaGFuZGxlRXhjbHVkZUlucHV0Q2hhbmdlOiBmdW5jdGlvbih0eXBlKSB7
Ci0gICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5hY3RpdmVFeGNsdWRlSW5wdXQg
PT09IHR5cGUpIHsKLSAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5hY3RpdmVFeGNs
dWRlSW5wdXQgPSBudWxsOworICAgICAgICAgIHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZUV4Y2x1ZGVJbnB1dENoYW5nZSh0eXBlKSB7
CisgICAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZUV4Y2x1ZGVJbnB1dCA9PT0gdHlwZSkgeworICAg
ICAgICAgICAgc3RhdGUuYWN0aXZlRXhjbHVkZUlucHV0ID0gbnVsbDsKICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmFjdGl2ZUV4Y2x1ZGVJbnB1
dCA9IHR5cGU7CisgICAgICAgICAgICBzdGF0ZS5hY3RpdmVFeGNsdWRlSW5wdXQgPSB0eXBlOwog
ICAgICAgICAgIH0KLSAgICAgICAgICBjb25maWd1cmF0aW9uVWkucmVuZGVyRXhjbHVkZWRUZXN0
cygpOwotICAgICAgICB9LAotICAgICAgICBzaG93QWRkTGFiZWw6IGZ1bmN0aW9uKCkgewotICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5hZGRMYWJlbFZpc2libGUgPSB0cnVlOwotICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOworICAg
ICAgICAgIHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHNob3dBZGRMYWJlbCgpIHsKKyAgICAgICAgICBzdGF0ZS5hZGRMYWJlbFZpc2libGUgPSB0
cnVlOworICAgICAgICAgIHJlbmRlckxhYmVsc0ZpZWxkKCk7CiAgICAgICAgICAgVUkuZ2V0RWxl
bWVudCgic2Vzc2lvbi1sYWJlbC1pbnB1dCIpLmZvY3VzKCk7Ci0gICAgICAgIH0sCi0gICAgICAg
IGhpZGVBZGRMYWJlbDogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgY29uZmlndXJhdGlvblVpLnN0
YXRlLmFkZExhYmVsVmlzaWJsZSA9IGZhbHNlOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5y
ZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICB9LAotICAgICAgICBhZGRMYWJl
bDogZnVuY3Rpb24oKSB7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoaWRlQWRkTGFi
ZWwoKSB7CisgICAgICAgICAgc3RhdGUuYWRkTGFiZWxWaXNpYmxlID0gZmFsc2U7CisgICAgICAg
ICAgcmVuZGVyTGFiZWxzRmllbGQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFk
ZExhYmVsKCkgewogICAgICAgICAgIHZhciBsYWJlbCA9IFVJLmdldEVsZW1lbnQoInNlc3Npb24t
bGFiZWwtaW5wdXQiKS52YWx1ZTsKICAgICAgICAgICBpZiAoIWxhYmVsKSByZXR1cm47Ci0gICAg
ICAgICAgY29uZmlndXJhdGlvblVpLnN0YXRlLmNvbmZpZ3VyYXRpb24ubGFiZWxzLnB1c2gobGFi
ZWwpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5kZXJTZXNzaW9uQ29uZmlndXJhdGlv
bigpOworICAgICAgICAgIHN0YXRlLmNvbmZpZ3VyYXRpb24ubGFiZWxzLnB1c2gobGFiZWwpOwor
ICAgICAgICAgIHJlbmRlckxhYmVsc0ZpZWxkKCk7CiAgICAgICAgICAgVUkuZ2V0RWxlbWVudCgi
c2Vzc2lvbi1sYWJlbC1pbnB1dCIpLmZvY3VzKCk7Ci0gICAgICAgIH0sCi0gICAgICAgIHJlbW92
ZUxhYmVsOiBmdW5jdGlvbihpbmRleCkgewotICAgICAgICAgIGNvbnN0IHsgY29uZmlndXJhdGlv
biB9ID0gY29uZmlndXJhdGlvblVpLnN0YXRlOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcmVtb3ZlTGFiZWwoaW5kZXgpIHsKKyAgICAgICAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb24g
fSA9IHN0YXRlOwogICAgICAgICAgIGNvbmZpZ3VyYXRpb24ubGFiZWxzLnNwbGljZShpbmRleCwg
MSk7Ci0gICAgICAgICAgY29uZmlndXJhdGlvblVpLnJlbmRlclNlc3Npb25Db25maWd1cmF0aW9u
KCk7Ci0gICAgICAgIH0sCi0gICAgICAgIHJlc3VtZVNlc3Npb246IGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHJlbmRlckxhYmVsc0ZpZWxkKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biByZXN1bWVTZXNzaW9uKCkgewogICAgICAgICAgIHZhciByZXN1bWVUb2tlbiA9IFVJLmdldEVs
ZW1lbnQoInJlc3VtZS10b2tlbiIpLnZhbHVlOwogICAgICAgICAgIGlmICghcmVzdW1lVG9rZW4p
IHJldHVybjsKIAogICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlc3VtZVNlc3Npb24oCi0gICAgICAg
ICAgICBjb25maWd1cmF0aW9uVWkuc3RhdGUuY29uZmlndXJhdGlvbi50b2tlbiwKKyAgICAgICAg
ICAgIHN0YXRlLmNvbmZpZ3VyYXRpb24udG9rZW4sCiAgICAgICAgICAgICByZXN1bWVUb2tlbiwK
LSAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWku
b3BlblJlc3VsdHNQYWdlKHJlc3VtZVRva2VuKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgb3BlblJlc3VsdHNQYWdlKHJlc3VtZVRva2VuKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICApOwotICAgICAgICB9LAotICAgICAgICByZW5kZXI6IGZ1bmN0aW9uKCkg
eworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyKCkgewogICAgICAgICAgIGNv
bnN0IGNvbmZpZ3VyYXRpb25WaWV3ID0gVUkuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgICBl
bGVtZW50OiAic2VjdGlvbiIsCiAgICAgICAgICAgICBjbGFzc05hbWU6ICJzZWN0aW9uIiwKQEAg
LTQxOSw0OCArNTg2LDExNCBAQAogICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50OiAiaW1nIiwKICAgICAgICAgICAgICAgICAgICAgc3JjOiAicmVzL3dhdmVs
b2dvXzIwMTYuanBnIiwKLSAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAic2l0ZS1sb2dv
IgorICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJzaXRlLWxvZ28iLAogICAgICAgICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAidGl0bGUiLCB0ZXh0
OiAiU2Vzc2lvbiBDb25maWd1cmF0aW9uIiB9Ci0gICAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgeyBjbGFzc05hbWU6ICJ0aXRsZSIsIHRleHQ6ICJTZXNzaW9uIENvbmZpZ3VyYXRp
b24iIH0sCisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIGlkOiAic2Vzc2lvbi1jb25maWd1cmF0aW9uIiwKLSAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWluZXIiLAotICAgICAgICAgICAgICAgIHN0eWxl
OiAibWFyZ2luLWJvdHRvbTogMmVtIgogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgaWQ6ICJyZXN1bWUtdmlldyIsCiAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiY29udGFpbmVyIiwKLSAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0
b206IDJlbSIKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAgICAgICAgICAg
IHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVtIiwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgY29uc3Qgcm9vdCA9IFVJLmdldFJvb3Qo
KTsKICAgICAgICAgICByb290LmlubmVySFRNTCA9ICIiOwogICAgICAgICAgIHJvb3QuYXBwZW5k
Q2hpbGQoY29uZmlndXJhdGlvblZpZXcpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5k
ZXJTZXNzaW9uQ29uZmlndXJhdGlvbigpOwotICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZW5k
ZXJSZXN1bWVWaWV3KCk7Ci0gICAgICAgIH0sCi0gICAgICAgIHJlbmRlclNlc3Npb25Db25maWd1
cmF0aW9uOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgY29uZmlndXJhdGlvbiA9IGNvbmZp
Z3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAgIHJlbmRlclNlc3Npb25D
b25maWd1cmF0aW9uKCk7CisgICAgICAgICAgcmVuZGVyUmVzdW1lVmlldygpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyU2Vzc2lvbkNvbmZpZ3VyYXRpb24oKSB7CisgICAg
ICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1cmF0aW9uOworICAgICAgICAg
IHZhciBzdGF0dXMgPSBzdGF0ZS5zdGF0dXM7CiAgICAgICAgICAgdmFyIHNlc3Npb25Db25maWd1
cmF0aW9uVmlldyA9IFVJLmNyZWF0ZUVsZW1lbnQoe30pOwogICAgICAgICAgIHZhciBzZXNzaW9u
Q29uZmlndXJhdGlvbiA9IFVJLmdldEVsZW1lbnQoInNlc3Npb24tY29uZmlndXJhdGlvbiIpOwog
ICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmlubmVySFRNTCA9ICIiOwogCi0gICAgICAg
ICAgaWYgKGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5leHBpcmVkKSB7CisgICAgICAgICAgaWYgKHN0
YXRlLmV4cGlyZWQpIHsKICAgICAgICAgICAgIHZhciBleHBpcmVkSW5kaWNhdG9yID0gVUkuY3Jl
YXRlRWxlbWVudCh7Ci0gICAgICAgICAgICAgIGNsYXNzTmFtZTogImxldmVsIiwKKyAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAibGV2ZWwgY29udGFpbmVyIiwKKyAgICAgICAgICAgICAgc3R5bGU6
ICJtYXgtd2lkdGg6IDUwMHB4IiwKICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAg
ICAgICAgICBlbGVtZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibGV2
ZWwtaXRlbSIsCisgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibGV2ZWwtaXRlbSBmaWVsZCBj
b2x1bW4iLAogICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgIlRoZSBz
cGVjaWZpZWQgc2Vzc2lvbiBkb2VzIG5vdCBleGlzdCBvciBpcyBhbHJlYWR5IGV4cGlyZWQuIgot
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiYXJ0aWNsZSIsCisgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogIm1lc3NhZ2UgaXMtZGFuZ2VyIiwKKyAgICAgICAgICAgICAgICAgICAg
aWQ6ICJmaW5kLWVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAiQ291bGQgbm90IGZpbmQgYW55IHNlc3Npb25zISBUcnkgYWRk
aW5nIG1vcmUgY2hhcmFjdGVycyBvZiB0aGUgdG9rZW4uIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogIm1lc3NhZ2UtYm9keSIsCisgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgc3R5bGU6ICJkaXNw
bGF5OiBub25lIiwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImxhYmVsIGhhcy10ZXh0LXdlaWdodC1ub3Jt
YWwiLAorICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiU2Vzc2lvbiB0b2tlbjoiLAorICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
CisgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQiLAorICAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0eWxlOiAiZGlzcGxheTogZmxleDsgbWFyZ2luLWJvdHRvbTog
MTBweDsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6ICJ0
ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImlucHV0IGlz
LWZhbWlseS1tb25vc3BhY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICJ0
b2tlbi1mcmFnbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRl
cjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpcnN0IDggY2hhcmFjdGVycyBv
ciBtb3JlIG9mIHNlc3Npb24gdG9rZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b25LZXlEb3duOiBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGV2ZW50LmtleSA9PT0gIkVudGVyIikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZUNvbmZpZ3VyZVNlc3Npb24oKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtZ3JvdXBlZCBp
cy1ncm91cGVkLXJpZ2h0IiwKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0
dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJpY29uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbGVtZW50OiAiaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
YXNzTmFtZTogImZhcyBmYS1jb2ciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICJDb25maWd1cmUgU2Vzc2lv
biIsIGVsZW1lbnQ6ICJzcGFuIiB9LAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGFuZGxlQ29uZmlndXJlU2Vzc2lvbigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ICB9LAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlvblZp
ZXcuYXBwZW5kQ2hpbGQoZXhwaXJlZEluZGljYXRvcik7CiAgICAgICAgICAgICBzZXNzaW9uQ29u
ZmlndXJhdGlvbi5hcHBlbmRDaGlsZChzZXNzaW9uQ29uZmlndXJhdGlvblZpZXcpOwpAQCAtNDY4
LDM1NSArNzAxLDU4MSBAQAogICAgICAgICAgIH0KIAogICAgICAgICAgIGlmICghY29uZmlndXJh
dGlvbikgewotICAgICAgICAgICAgdmFyIGxvYWRpbmdJbmRpY2F0b3IgPSBVSS5jcmVhdGVFbGVt
ZW50KHsKLSAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibGV2ZWwiLAotICAgICAgICAgICAgICBj
aGlsZHJlbjogewotICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKLSAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJsZXZlbC1pdGVtIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjog
WwotICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIs
Ci0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1zcGlubmVyIGZhLXB1bHNl
IgotICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgc3R5bGU6ICJtYXJnaW4tbGVmdDogMC40ZW07IiwKLSAgICAgICAgICAgICAgICAg
ICAgdGV4dDogIkxvYWRpbmcgY29uZmlndXJhdGlvbiAuLi4iCi0gICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHZhciBsb2FkaW5nSW5kaWNhdG9yID0gY3JlYXRlTG9hZGluZ0luZGljYXRvcigK
KyAgICAgICAgICAgICAgIkxvYWRpbmcgY29uZmlndXJhdGlvbiAuLi4iCisgICAgICAgICAgICAp
OwogICAgICAgICAgICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb25WaWV3LmFwcGVuZENoaWxkKGxvYWRp
bmdJbmRpY2F0b3IpOwogICAgICAgICAgICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24uYXBwZW5kQ2hp
bGQoc2Vzc2lvbkNvbmZpZ3VyYXRpb25WaWV3KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICB9CiAKLSAgICAgICAgICB2YXIgYWRkTGFiZWxWaXNpYmxlID0gY29uZmlndXJhdGlvblVp
LnN0YXRlLmFkZExhYmVsVmlzaWJsZTsKKyAgICAgICAgICBzZXNzaW9uQ29uZmlndXJhdGlvbi5w
YXJlbnROb2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQoewor
ICAgICAgICAgICAgICBpZDogInNlc3Npb24tY29uZmlndXJhdGlvbiIsCisgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImNvbnRhaW5lciIsCisgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJv
dHRvbTogMmVtIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICBpZDogInRva2VuLWZpZWxkIiwKKyAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGlkOiAiZXhwaXJhdGlvbi1m
aWVsZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICBpZDogImxhYmVscy1maWVsZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZDogImFwaXMtZmllbGQiLAorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWQ6ICJleGNs
dWRlLWZpZWxkIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIGlkOiAidHlwZXMtZmllbGQiLAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgaWQ6ICJyZWZlcmVuY2VzLWZpZWxkIiwK
KyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
IGlkOiAiYnV0dG9ucy1maWVsZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24KKyAg
ICAgICAgICApOwogCi0gICAgICAgICAgdmFyIHRva2VuRmllbGQgPSBVSS5jcmVhdGVFbGVtZW50
KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6b250YWwiLAotICAgICAg
ICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05h
bWU6ICJsYWJlbCIsIHRleHQ6ICJUb2tlbiIgfQotICAgICAgICAgICAgICB9LAotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCi0gICAgICAg
ICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxk
IiwKLSAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAgICAgICAgICAgIGNs
YXNzTmFtZTogImNvbnRyb2wiLAotICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjb25maWd1cmF0
aW9uLnRva2VuCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgc2Vzc2lv
bkNvbmZpZ3VyYXRpb24uYXBwZW5kQ2hpbGQodG9rZW5GaWVsZCk7CisgICAgICAgICAgcmVuZGVy
VG9rZW5GaWVsZCgpOworICAgICAgICAgIHJlbmRlckV4cGlyYXRpb25GaWVsZCgpOworICAgICAg
ICAgIHJlbmRlckxhYmVsc0ZpZWxkKCk7CisgICAgICAgICAgcmVuZGVyQXBpc0ZpZWxkKCk7Cisg
ICAgICAgICAgcmVuZGVyRXhjbHVkZUZpZWxkKCk7CisgICAgICAgICAgcmVuZGVyVHlwZXNGaWVs
ZCgpOworICAgICAgICAgIHJlbmRlclJlZmVyZW5jZXNGaWVsZCgpOworICAgICAgICAgIHJlbmRl
ckJ1dHRvbnNGaWVsZCgpOworICAgICAgICB9CiAKLSAgICAgICAgICBleHBpcmF0aW9uRmllbGQg
PSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhv
cml6b250YWwiLAotICAgICAgICAgICAgY2hpbGRyZW46IFsKLSAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAgICAgICAgICBj
aGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJFeHBpcmVzIiB9Ci0gICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJm
aWVsZC1ib2R5IiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQiLAorICAgICAgICBmdW5jdGlvbiByZW5kZXJUb2tlbkZpZWxk
KCkgeworICAgICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gc3RhdGUuY29uZmlndXJhdGlvbjsK
KyAgICAgICAgICB2YXIgdG9rZW5GaWVsZCA9IFVJLmdldEVsZW1lbnQoInRva2VuLWZpZWxkIik7
CisgICAgICAgICAgdG9rZW5GaWVsZC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAg
ICAgIFVJLmNyZWF0ZUVsZW1lbnQoeworICAgICAgICAgICAgICBpZDogInRva2VuLWZpZWxkIiwK
KyAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCisgICAgICAg
ICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsg
Y2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiVG9rZW4iIH0sCisgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1i
b2R5IiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImNvbnRyb2wiLAotICAgICAgICAgICAgICAgICAgICB0ZXh0OiBuZXcgRGF0
ZSgKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uLmV4cGlyYXRpb25EYXRlCi0g
ICAgICAgICAgICAgICAgICAgICkudG9Mb2NhbGVTdHJpbmcoKQotICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAg
ICAgICAgIH0pOwotICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKGV4
cGlyYXRpb25GaWVsZCk7CisgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwK
KyAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAgICAgICAgICBj
bGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBjb25maWd1
cmF0aW9uLnRva2VuLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSks
CisgICAgICAgICAgICB0b2tlbkZpZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgfQogCi0gICAg
ICAgICAgdmFyIGxhYmVsc0ZpZWxkID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBj
bGFzc05hbWU6ICJmaWVsZCBpcy1ob3Jpem9udGFsIiwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJl
bCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0
OiAiTGFiZWxzIiB9Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKLSAgICAgICAgICAgICAgICBjaGlsZHJl
bjogewotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtZ3JvdXBlZCBpcy1n
cm91cGVkLW11bHRpbGluZSIsCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29uZmlndXJh
dGlvbi5sYWJlbHMKLSAgICAgICAgICAgICAgICAgICAgLm1hcCgobGFiZWwsIGluZGV4KSA9PiAo
eworICAgICAgICBmdW5jdGlvbiByZW5kZXJFeHBpcmF0aW9uRmllbGQoKSB7CisgICAgICAgICAg
dmFyIHN0YXR1cyA9IHN0YXRlLnN0YXR1czsKKyAgICAgICAgICB2YXIgZXhwaXJhdGlvbkZpZWxk
ID0gVUkuZ2V0RWxlbWVudCgiZXhwaXJhdGlvbi1maWVsZCIpOworICAgICAgICAgIGV4cGlyYXRp
b25GaWVsZC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVs
ZW1lbnQoeworICAgICAgICAgICAgICBpZDogImV4cGlyYXRpb24tZmllbGQiLAorICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1ob3Jpem9udGFsIiwKKyAgICAgICAgICAgICAgY2hp
bGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJmaWVsZC1sYWJlbCIsCisgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6
ICJsYWJlbCIsIHRleHQ6ICJFeHBpcmVzIiB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCisg
ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICBjbGFzc05h
bWU6ICJmaWVsZCIsCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInRhZ3MgaGFz
LWFkZG9ucyIsCi0gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAg
ICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
InNwYW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInRhZyBpcy1p
bmZvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBsYWJlbAotICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImEiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogInRhZyBpcy1kZWxldGUiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9uQ2xpY2s6ICgpID0+IGNvbmZpZ3VyYXRpb25VaS5yZW1vdmVMYWJlbChpbmRleCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgXQot
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSkpCi0gICAgICAg
ICAgICAgICAgICAgIC5jb25jYXQoCi0gICAgICAgICAgICAgICAgICAgICAgYWRkTGFiZWxWaXNp
YmxlCi0gICAgICAgICAgICAgICAgICAgICAgICA/IFsKKyAgICAgICAgICAgICAgICAgICAgICB0
ZXh0OiBzdGF0dXMuZXhwaXJhdGlvbkRhdGUudG9Mb2NhbGVTdHJpbmcoKSwKKyAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgZXhwaXJhdGlvbkZp
ZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlbmRlckxh
YmVsc0ZpZWxkKCkgeworICAgICAgICAgIHZhciBhZGRMYWJlbFZpc2libGUgPSBzdGF0ZS5hZGRM
YWJlbFZpc2libGU7CisgICAgICAgICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBzdGF0ZS5jb25maWd1
cmF0aW9uOworICAgICAgICAgIHZhciBsYWJlbHNGaWVsZCA9IFVJLmdldEVsZW1lbnQoImxhYmVs
cy1maWVsZCIpOworCisgICAgICAgICAgbGFiZWxzRmllbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hp
bGQoCisgICAgICAgICAgICBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgaWQ6ICJs
YWJlbHMtZmllbGQiLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1ob3Jpem9u
dGFsIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCisgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJMYWJlbHMiIH0sCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJmaWVsZC1ib2R5IiwKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAg
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWdyb3VwZWQgaXMtZ3JvdXBlZC1t
dWx0aWxpbmUiLAorICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29uZmlndXJhdGlvbi5s
YWJlbHMKKyAgICAgICAgICAgICAgICAgICAgICAubWFwKChsYWJlbCwgaW5kZXgpID0+ICh7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogInRhZ3MgaGFzLWFkZG9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCBmaWVsZCBpcy1ncm91cGVkIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50
OiAiaW5wdXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImlucHV0IGlzLXNtYWxsIGNvbnRyb2wiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0eWxlOiAid2lkdGg6IDEwcmVtIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZDogInNlc3Npb24tbGFiZWwtaW5wdXQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU6ICJ0ZXh0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvbktleVVwOiBldmVudCA9PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnQua2V5Q29kZSA9PT0gMTMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPyBjb25maWd1cmF0aW9uVWkuYWRkTGFiZWwoKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6IG51bGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJidXR0b24gaXMtZGFyayBpcy1vdXRsaW5lZCBpcy1zbWFsbCBpcy1yb3VuZGVkIGNvbnRy
b2wiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJzYXZlIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBjb25maWd1cmF0aW9uVWku
YWRkTGFiZWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJidXR0b24g
aXMtZGFyayBpcy1vdXRsaW5lZCBpcy1zbWFsbCBpcy1yb3VuZGVkIGNvbnRyb2wiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJjYW5jZWwiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGNvbmZpZ3VyYXRpb25VaS5oaWRlQWRkTGFi
ZWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgOiBbCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJ0YWcgaXMtaW5mbyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXh0OiBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXNtYWxsIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBZGQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb25DbGljazogY29uZmlndXJhdGlvblVpLnNob3dBZGRMYWJlbAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAg
ICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdCi0gICAgICAgICAgfSk7Ci0gICAgICAgICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24uYXBw
ZW5kQ2hpbGQobGFiZWxzRmllbGQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxl
bWVudDogImEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAidGFn
IGlzLWRlbGV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoKSA9
PiByZW1vdmVMYWJlbChpbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgfSkpCisgICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFkZExhYmVsVmlzaWJsZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICA/IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCBmaWVsZCBpcy1ncm91
cGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbGVtZW50OiAiaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiaW5wdXQgaXMtc21hbGwgY29udHJvbCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIndpZHRoOiAxMHJlbSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogInNlc3Npb24tbGFiZWwtaW5wdXQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInRleHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlVcDogKGV2ZW50KSA9PgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSAxMyA/IGFk
ZExhYmVsKCkgOiBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwgaXMtcm91bmRlZCBj
b250cm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJzYXZl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGFkZExhYmVs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnV0dG9u
IGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwgaXMtcm91bmRlZCBjb250cm9sIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJjYW5jZWwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogaGlkZUFkZExhYmVsLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXNtYWxsIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dDogIkFkZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9uQ2xpY2s6IHNob3dBZGRMYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAg
ICAgICksCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIGxhYmVsc0ZpZWxkCisgICAg
ICAgICAgKTsKKyAgICAgICAgfQogCi0gICAgICAgICAgdmFyIGFwaXNGaWVsZCA9IFVJLmNyZWF0
ZUVsZW1lbnQoewotICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIs
Ci0gICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb
Ci0gICAgICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIkFQSXMiIH0s
Ci0gICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuY3JlYXRlU2VsZWN0RGVzZWxlY3RC
dXR0b25zKAotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuc2VsZWN0QWxsVGVz
dHMsCi0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5kZXNlbGVjdEFsbFRlc3Rz
Ci0gICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICB9
LAotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9k
eSIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogImZpZWxkIiwKKyAgICAgICAgZnVuY3Rpb24gcmVuZGVyQXBpc0ZpZWxkKCkgeworICAg
ICAgICAgIHZhciBhcGlzRmllbGQgPSBVSS5nZXRFbGVtZW50KCJhcGlzLWZpZWxkIik7CisgICAg
ICAgICAgYXBpc0ZpZWxkLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKAorICAgICAgICAgICAgVUku
Y3JlYXRlRWxlbWVudCh7CisgICAgICAgICAgICAgIGlkOiAiYXBpcy1maWVsZCIsCisgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6b250YWwiLAorICAgICAgICAgICAgICBj
aGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkLWxhYmVsIiwKKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiQVBJcyIgfSwKKyAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlU2VsZWN0RGVzZWxlY3RCdXR0b25zKAorICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdEFs
bFRlc3RzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJBcGlzRmllbGQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VsZWN0QWxsVGVzdHMoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbmRlckFwaXNGaWVsZCgpOworICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBjbGFzc05h
bWU6ICJmaWVsZC1ib2R5IiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAotICAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5pc1Rlc3RM
aXN0VmFsaWQoKQotICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsCi0gICAgICAgICAgICAg
ICAgICAgICAgICA6IGNvbmZpZ3VyYXRpb25VaS5jcmVhdGVFcnJvck1lc3NhZ2UoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlNlbGVjdCBhdCBsZWFzdCBvbmUgQVBJIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIF0uY29uY2F0KGNvbmZpZ3Vy
YXRpb25VaS5jcmVhdGVBcGlMaXN0KGFwaXMpKQotICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICAgIH0p
OwotICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKGFwaXNGaWVsZCk7
CisgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKKyAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250
cm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogImFwaS1lcnJvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidWwiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJtZW51LWxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogYXBpcy5tYXAoZnVuY3Rpb24gKGFwaSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBVSS5jcmVhdGVFbGVtZW50KHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVsZW1lbnQ6ICJsaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZDogYXBpLnRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
IH0pLAorICAgICAgICAgICAgYXBpc0ZpZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgICByZW5k
ZXJBcGlzTGlzdChhcGlzKTsKKyAgICAgICAgICBjaGVja0FwaUxpc3QoKTsKKyAgICAgICAgfQog
Ci0gICAgICAgICAgdmFyIGV4Y2x1ZGVGaWVsZCA9IFVJLmNyZWF0ZUVsZW1lbnQoewotICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCi0gICAgICAgICAgICBjaGls
ZHJlbjogWwotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVs
IiwgdGV4dDogIkV4Y2x1ZGVkIFRlc3RzIiB9Ci0gICAgICAgICAgICAgIH0sCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKLSAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQi
LAotICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKLSAgICAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGlkOiAi
ZXhjbHVkZWQtdGVzdHMtdmlldyIgfQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAgICAgIH0pOwotICAg
ICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKGV4Y2x1ZGVGaWVsZCk7Cisg
ICAgICAgIGZ1bmN0aW9uIHJlbmRlckFwaXNMaXN0KGFwaXMpIHsKKyAgICAgICAgICBmb3IgKHZh
ciBhcGkgb2YgYXBpcykgeworICAgICAgICAgICAgcmVuZGVyQXBpTGlzdChhcGkpOworICAgICAg
ICAgIH0KKyAgICAgICAgfQogCi0gICAgICAgICAgdmFyIHR5cGVzRmllbGQgPSBVSS5jcmVhdGVF
bGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6b250YWwiLAor
ICAgICAgICBmdW5jdGlvbiByZW5kZXJBcGlMaXN0KGFwaSkgeworICAgICAgICAgIHZhciBsaXN0
SXRlbSA9IFVJLmdldEVsZW1lbnQoYXBpLnRpdGxlKTsKKyAgICAgICAgICB2YXIgaW5jbHVkZWRS
YXRpbyA9IGdldEluY2x1ZGVkUmF0aW8oYXBpLnBhdGgpOworICAgICAgICAgIHZhciBhcGlMaXN0
SXRlbSA9IHsKKyAgICAgICAgICAgIGVsZW1lbnQ6ICJhIiwKKyAgICAgICAgICAgIG9uQ2xpY2s6
IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICAgICAgICBpZiAoIXRlc3RGaWxlU2VsZWN0aW9u
RW5hYmxlZCkgcmV0dXJuOworICAgICAgICAgICAgICBpZiAoIXN0YXRlLmV4cGFuZGVkQXBpcykg
c3RhdGUuZXhwYW5kZWRBcGlzID0ge307CisgICAgICAgICAgICAgIHN0YXRlLmV4cGFuZGVkQXBp
c1thcGkucGF0aF0gPSAhc3RhdGUuZXhwYW5kZWRBcGlzW2FwaS5wYXRoXTsKKyAgICAgICAgICAg
ICAgcmVuZGVyQXBpTGlzdChhcGkpOworICAgICAgICAgICAgfSwKICAgICAgICAgICAgIGNoaWxk
cmVuOiBbCiAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwi
LCB0ZXh0OiAiVGVzdCBUeXBlcyIgfQorICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpbnB1dCIs
CisgICAgICAgICAgICAgICAgdHlwZTogImNoZWNrYm94IiwKKyAgICAgICAgICAgICAgICBzdHls
ZTogIndpZHRoOiAxLjNlbTsgaGVpZ2h0OiAxLjNlbTt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyIs
CisgICAgICAgICAgICAgICAgY2hlY2tlZDogaW5jbHVkZWRSYXRpbyA+IDAsCisgICAgICAgICAg
ICAgICAgaW5kZXRlcm1pbmF0ZTogaW5jbHVkZWRSYXRpbyA+IDAgJiYgaW5jbHVkZWRSYXRpbyA8
IDEsCisgICAgICAgICAgICAgICAgb25jbGljazogZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAg
ICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICAgIGlm
IChpbmNsdWRlZFJhdGlvID4gMCkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVSZW1vdmVJ
bmNsdWRlZFRlc3QoYXBpLnBhdGgpOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgaGFuZGxlQWRkSW5jbHVkZWRUZXN0KGFwaS5wYXRoKTsKKyAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIHJlbmRlckFwaUxpc3QoYXBpKTsKKyAgICAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCi0gICAgICAgICAgICAgICAgY2hpbGRy
ZW46IHsKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIiwKLSAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiB7Ci0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRy
b2wiLAotICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZ3VyYXRpb25VaS5pc1Rlc3RUeXBlTGlzdFZhbGlkKCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgID8gbnVsbAotICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25maWd1cmF0aW9u
VWkuY3JlYXRlRXJyb3JNZXNzYWdlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZWxl
Y3QgYXQgbGVhc3Qgb25lIHRlc3QgdHlwZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKQot
ICAgICAgICAgICAgICAgICAgICBdLmNvbmNhdChjb25maWd1cmF0aW9uVWkuY3JlYXRlVGVzdFR5
cGVMaXN0KHR5cGVzKSkKKyAgICAgICAgICAgICAgdGVzdEZpbGVTZWxlY3Rpb25FbmFibGVkCisg
ICAgICAgICAgICAgICAgPyB7CisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwK
KyAgICAgICAgICAgICAgICAgICAgc3R5bGU6CisgICAgICAgICAgICAgICAgICAgICAgImRpc3Bs
YXk6IGlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO21hcmdpbi1sZWZ0OjAuM2Vt
O3dpZHRoOiAwLjdlbSIsCisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAorICAgICAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmV4cGFuZGVkQXBpcyAmJiBzdGF0
ZS5leHBhbmRlZEFwaXNbYXBpLnBhdGhdCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gImZh
cyBmYS1hbmdsZS1kb3duIgorICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJmYXMgZmEtYW5n
bGUtcmlnaHQiLAorICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQotICAgICAg
ICAgIH0pOwotICAgICAgICAgIHNlc3Npb25Db25maWd1cmF0aW9uLmFwcGVuZENoaWxkKHR5cGVz
RmllbGQpOwotCi0gICAgICAgICAgdmFyIHJlZmVyZW5jZXNGaWVsZCA9IFVJLmNyZWF0ZUVsZW1l
bnQoewotICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCi0gICAg
ICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIDogbnVsbCwKICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgeyBjbGFzc05hbWU6ICJsYWJl
bCIsIHRleHQ6ICJSZWZlcmVuY2UgQnJvd3NlcnMiIH0sCi0gICAgICAgICAgICAgICAgICBjb25m
aWd1cmF0aW9uVWkuY3JlYXRlU2VsZWN0RGVzZWxlY3RCdXR0b25zKAotICAgICAgICAgICAgICAg
ICAgICBjb25maWd1cmF0aW9uVWkuc2VsZWN0QWxsUmVmU2Vzc2lvbnMsCi0gICAgICAgICAgICAg
ICAgICAgIGNvbmZpZ3VyYXRpb25VaS5kZXNlbGVjdEFsbFJlZlNlc3Npb25zCi0gICAgICAgICAg
ICAgICAgICApCi0gICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIHN0eWxlOgorICAg
ICAgICAgICAgICAgICAgImRpc3BsYXk6IGlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjogbWlk
ZGxlO21hcmdpbi1sZWZ0OjAuM2VtO3dpZHRoOiA5MCUiLAorICAgICAgICAgICAgICAgIHRleHQ6
IGFwaS50aXRsZSwKICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiB7Ci0gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCi0gICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogewotICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9s
IiwKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbmZpZ3VyYXRpb25VaS5jcmVhdGVS
ZWZTZXNzaW9uc0xpc3QoCi0gICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlU2Vzc2lvbnMK
LSAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgXSwKKyAgICAgICAgICB9OworICAg
ICAgICAgIGxpc3RJdGVtLmlubmVySFRNTCA9ICIiOworICAgICAgICAgIGxpc3RJdGVtLmFwcGVu
ZENoaWxkKFVJLmNyZWF0ZUVsZW1lbnQoYXBpTGlzdEl0ZW0pKTsKKyAgICAgICAgICBpZiAoc3Rh
dGUuZXhwYW5kZWRBcGlzICYmIHN0YXRlLmV4cGFuZGVkQXBpc1thcGkucGF0aF0pIHsKKyAgICAg
ICAgICAgIGxpc3RJdGVtLmFwcGVuZENoaWxkKGNyZWF0ZUFwaVRlc3RzTGlzdChhcGkpKTsKKyAg
ICAgICAgICB9CisgICAgICAgICAgY2hlY2tBcGlMaXN0KCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBjcmVhdGVBcGlUZXN0c0xpc3QoYXBpKSB7CisgICAgICAgICAgaWYgKCFzdGF0
ZS50ZXN0cykgeworICAgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFRlc3RMaXN0KAorICAgICAg
ICAgICAgICBmdW5jdGlvbiAocmVhZFRlc3RzKSB7CisgICAgICAgICAgICAgICAgc3RhdGUudGVz
dHMgPSByZWFkVGVzdHM7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgYXBpIGluIHN0YXRlLnRl
c3RzKSB7CisgICAgICAgICAgICAgICAgICBpZiAoaGFzSW5jbHVkZWRUZXN0KCIvIiArIGFwaSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlUmVtb3ZlSW5jbHVkZWRUZXN0KCIvIiArIGFw
aSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFkZEluY2x1ZGVkVGVzdCgiLyIgKyBhcGkp
OwogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgXQotICAgICAgICAgIH0pOwotICAgICAgICAgIHNlc3Npb25Db25maWd1
cmF0aW9uLmFwcGVuZENoaWxkKHJlZmVyZW5jZXNGaWVsZCk7CisgICAgICAgICAgICAgICAgcmVu
ZGVyQXBpTGlzdCh0aGlzLmFwaSk7CisgICAgICAgICAgICAgIH0uYmluZCh7IGFwaTogYXBpIH0p
CisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvYWRpbmdJbmRpY2F0
b3IoIkxvYWRpbmcgdGVzdHMgLi4uIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHZhciB0ZXN0cyA9IHN0YXRlLnRlc3RzW2FwaS5wYXRoLnN1YnN0cigxKV07CisgICAgICAgICAg
ICB2YXIgdGVzdExpc3RWaWV3ID0geworICAgICAgICAgICAgICBlbGVtZW50OiAidWwiLAorICAg
ICAgICAgICAgICBjaGlsZHJlbjogW10sCisgICAgICAgICAgICB9OwogCi0gICAgICAgICAgdmFy
IGJ1dHRvbkxpc3QgPSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIGNsYXNzTmFtZTog
ImxldmVsIGxldmVsLXJpZ2h0IiwKLSAgICAgICAgICAgIGNoaWxkcmVuOiBbCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBlbGVtZW50OiAiYnV0dG9uIiwKLSAgICAgICAgICAgICAg
ICBjbGFzc05hbWU6ICJidXR0b24gaXMtc3VjY2VzcyIsCi0gICAgICAgICAgICAgICAgc3R5bGU6
ICJtYXJnaW4tcmlnaHQ6IDAuM2VtIiwKLSAgICAgICAgICAgICAgICBkaXNhYmxlZDogIWNvbmZp
Z3VyYXRpb25VaS5pc0NvbmZpZ3VyYXRpb25WYWxpZCgpLAotICAgICAgICAgICAgICAgIG9uQ2xp
Y2s6IGNvbmZpZ3VyYXRpb25VaS5oYW5kbGVTdGFydCwKLSAgICAgICAgICAgICAgICBjaGlsZHJl
bjogWwotICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAi
c3BhbiIsCi0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImljb24iLAorICAgICAgICAg
ICAgdGVzdExpc3RWaWV3LmNoaWxkcmVuID0gdGVzdExpc3RWaWV3LmNoaWxkcmVuLmNvbmNhdCgK
KyAgICAgICAgICAgICAgdGVzdHMKKyAgICAgICAgICAgICAgICAuc29ydCgpCisgICAgICAgICAg
ICAgICAgLm1hcChmdW5jdGlvbiAodGVzdCkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImxpIiwKKyAgICAgICAgICAgICAgICAgICAg
b25jbGljazogZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgaGFuZGxl
SW5jbHVkZWRUZXN0VG9nZ2xlKHRlc3QpOworICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckFw
aUxpc3QoYXBpKTsKKyAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNv
bmZpZ3VyYXRpb25VaS5pc1Nlc3Npb25TdGFydGluZygpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgID8gImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICA6ICJmYXMgZmEtcGxheSIKLSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJhIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaW5wdXQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU6ICJjaGVja2JveCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3R5bGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGg6IDEu
M2VtOyBoZWlnaHQ6IDEuM2VtO3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaGVja2VkOiBoYXNJbmNsdWRlZFRlc3QodGVzdCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246IG1pZGRsZTttYXJnaW4t
bGVmdDowLjNlbTttYXgtd2lkdGg6IDkwJSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGV4dDogdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAg
ICAgICk7CisgICAgICAgICAgICByZXR1cm4gVUkuY3JlYXRlRWxlbWVudCh0ZXN0TGlzdFZpZXcp
OworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlbmRlckV4Y2x1
ZGVGaWVsZCgpIHsKKyAgICAgICAgICB2YXIgZXhjbHVkZUZpZWxkID0gVUkuZ2V0RWxlbWVudCgi
ZXhjbHVkZS1maWVsZCIpOworICAgICAgICAgIGV4Y2x1ZGVGaWVsZC5wYXJlbnROb2RlLnJlcGxh
Y2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQoeworICAgICAgICAgICAgICBp
ZDogImV4Y2x1ZGUtZmllbGQiLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1o
b3Jpem9udGFsIiwKKyAgICAgICAgICAgICAgY2hpbGRyZW46IFsKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCisgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJFeGNsdWRlZCBU
ZXN0cyIgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLAorICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IHsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQiLAorICAgICAg
ICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImNvbnRyb2wiLAorICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGlkOiAiZXhj
bHVkZWQtdGVzdHMtdmlldyIgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJzcGFuIiwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDogY29uZmlndXJhdGlvblVpLmlz
U2Vzc2lvblN0YXJ0aW5nKCkKLSAgICAgICAgICAgICAgICAgICAgICA/ICJTdGFydGluZyBTZXNz
aW9uIC4uLiIKLSAgICAgICAgICAgICAgICAgICAgICA6ICJTdGFydCBTZXNzaW9uIgotICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJidXR0b24iLAotICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiIsCi0gICAgICAgICAgICAgICAgb25DbGljazogY29u
ZmlndXJhdGlvblVpLmhhbmRsZURpc2NhcmRDaGFuZ2VzLAotICAgICAgICAgICAgICAgIGRpc2Fi
bGVkOiBjb25maWd1cmF0aW9uVWkuaXNTZXNzaW9uU3RhcnRpbmcoKSwKLSAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBl
bGVtZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImljb24iLAot
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwotICAgICAgICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS10aW1lcyIKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgfSksCisgICAgICAgICAgICBleGNsdWRlRmllbGQK
KyAgICAgICAgICApOworICAgICAgICAgIHJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHJlbmRlclR5cGVzRmllbGQoKSB7CisgICAgICAgICAgaWYg
KCF0ZXN0VHlwZVNlbGVjdGlvbkVuYWJsZWQpIHJldHVybjsKKyAgICAgICAgICB2YXIgdHlwZXNG
aWVsZCA9IFVJLmdldEVsZW1lbnQoInR5cGVzLWZpZWxkIik7CisgICAgICAgICAgdHlwZXNGaWVs
ZC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQo
eworICAgICAgICAgICAgICBpZDogInR5cGVzLWZpZWxkIiwKKyAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQgaXMtaG9yaXpvbnRhbCIsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFi
ZWwiLAorICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiVGVzdCBUeXBlcyIgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLAorICAgICAgICAg
ICAgICAgICAgY2hpbGRyZW46IHsKKyAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQiLAorICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImNvbnRyb2wiLAorICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiBbCisgICAgICAgICAgICAgICAgICAgICAgICBpc1Rlc3RUeXBlTGlzdFZhbGlkKCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgPyBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDog
Y3JlYXRlRXJyb3JNZXNzYWdlKCJTZWxlY3QgYXQgbGVhc3Qgb25lIHRlc3QgdHlwZSIpLAorICAg
ICAgICAgICAgICAgICAgICAgIF0uY29uY2F0KGNyZWF0ZVRlc3RUeXBlTGlzdCh0eXBlcykpLAor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSksCisgICAgICAgICAgICB0
eXBlc0ZpZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJl
bmRlclJlZmVyZW5jZXNGaWVsZCgpIHsKKyAgICAgICAgICBpZiAocmVmZXJlbmNlU2Vzc2lvbnMu
bGVuZ3RoID09PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorICAgICAg
ICAgIHZhciByZWZlcmVuY2VzRmllbGQgPSBVSS5nZXRFbGVtZW50KCJyZWZlcmVuY2VzLWZpZWxk
Iik7CisgICAgICAgICAgcmVmZXJlbmNlc0ZpZWxkLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKAor
ICAgICAgICAgICAgVUkuY3JlYXRlRWxlbWVudCh7CisgICAgICAgICAgICAgIGlkOiAicmVmZXJl
bmNlcy1maWVsZCIsCisgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWhvcml6b250
YWwiLAorICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKKyAgICAgICAgICAgICAgICAg
IGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiUmVmZXJlbmNlIEJyb3dzZXJzIiB9LAorICAgICAgICAgICAgICAgICAgICBjcmVhdGVT
ZWxlY3REZXNlbGVjdEJ1dHRvbnMoCisgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0QWxsUmVmU2Vzc2lvbnMoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlbmRlclJlZmVyZW5jZXNGaWVsZCgpOworICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzZWxlY3RBbGxSZWZTZXNzaW9ucygpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmVuZGVyUmVmZXJlbmNlc0ZpZWxkKCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICksCisgICAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCisgICAgICAgICAgICAg
ICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIs
CisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CisgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNy
ZWF0ZVJlZlNlc3Npb25zTGlzdChyZWZlcmVuY2VTZXNzaW9ucyksCisgICAgICAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgICAgIHRleHQ6
ICJEaXNjYXJkIENoYW5nZXMiCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCi0gICAgICAgICAgfSk7Ci0gICAgICAg
ICAgc2Vzc2lvbkNvbmZpZ3VyYXRpb24uYXBwZW5kQ2hpbGQoYnV0dG9uTGlzdCk7CisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pLAorICAgICAgICAg
ICAgcmVmZXJlbmNlc0ZpZWxkCisgICAgICAgICAgKTsKKyAgICAgICAgfQogCi0gICAgICAgICAg
Y29uZmlndXJhdGlvblVpLnJlbmRlckV4Y2x1ZGVkVGVzdHMoKTsKLSAgICAgICAgfSwKLSAgICAg
ICAgcmVuZGVyRXhjbHVkZWRUZXN0czogZnVuY3Rpb24oKSB7CisgICAgICAgIGZ1bmN0aW9uIHJl
bmRlckJ1dHRvbnNGaWVsZCgpIHsKKyAgICAgICAgICB2YXIgYnV0dG9uc0ZpZWxkID0gVUkuZ2V0
RWxlbWVudCgiYnV0dG9ucy1maWVsZCIpOworICAgICAgICAgIGJ1dHRvbnNGaWVsZC5wYXJlbnRO
b2RlLnJlcGxhY2VDaGlsZCgKKyAgICAgICAgICAgIFVJLmNyZWF0ZUVsZW1lbnQoeworICAgICAg
ICAgICAgICBpZDogImJ1dHRvbnMtZmllbGQiLAorICAgICAgICAgICAgICBjbGFzc05hbWU6ICJs
ZXZlbCBsZXZlbC1yaWdodCIsCisgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgZWxlbWVudDogImJ1dHRvbiIsCisgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtc3VjY2VzcyIsCisgICAgICAgICAgICAgICAg
ICBzdHlsZTogIm1hcmdpbi1yaWdodDogMC4zZW0iLAorICAgICAgICAgICAgICAgICAgZGlzYWJs
ZWQ6ICFpc0NvbmZpZ3VyYXRpb25WYWxpZCgpLAorICAgICAgICAgICAgICAgICAgb25DbGljazog
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVTdGFydCgpOworICAgICAg
ICAgICAgICAgICAgICByZW5kZXJCdXR0b25zRmllbGQoKTsKKyAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAorICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImljb24iLAorICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBb
CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnQ6ICJpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBpc1Nlc3Np
b25TdGFydGluZygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAiZmFzIGZhLXNwaW5u
ZXIgZmEtcHVsc2UiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiZmFzIGZhLXBsYXki
LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAorICAgICAgICAgICAgICAgICAgICAgIHRleHQ6
IGlzU2Vzc2lvblN0YXJ0aW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgID8gIlN0YXJ0aW5n
IFNlc3Npb24gLi4uIgorICAgICAgICAgICAgICAgICAgICAgICAgOiAiU3RhcnQgU2Vzc2lvbiIs
CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZWxlbWVudDog
ImJ1dHRvbiIsCisgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24iLAorICAgICAg
ICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBo
YW5kbGVEaXNjYXJkQ2hhbmdlcygpOworICAgICAgICAgICAgICAgICAgICByZW5kZXJTZXNzaW9u
Q29uZmlndXJhdGlvbigpOworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
IGRpc2FibGVkOiBpc1Nlc3Npb25TdGFydGluZygpLAorICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJzcGFuIiwKKyAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29uIiwKKyAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAgICAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS10aW1lcyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50
OiAic3BhbiIsCisgICAgICAgICAgICAgICAgICAgICAgdGV4dDogIkRpc2NhcmQgQ2hhbmdlcyIs
CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KSwKKyAgICAgICAgICAg
IGJ1dHRvbnNGaWVsZAorICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biByZW5kZXJFeGNsdWRlZFRlc3RzKCkgewogICAgICAgICAgIHZhciBleGNsdWRlZFRlc3RzVmll
dyA9IFVJLmdldEVsZW1lbnQoImV4Y2x1ZGVkLXRlc3RzLXZpZXciKTsKICAgICAgICAgICBpZiAo
IWV4Y2x1ZGVkVGVzdHNWaWV3KSByZXR1cm47CiAgICAgICAgICAgZXhjbHVkZWRUZXN0c1ZpZXcu
aW5uZXJIVE1MID0gIiI7CiAKLSAgICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gY29uZmlndXJh
dGlvblVpLnN0YXRlLmV4Y2x1ZGVkVGVzdEVycm9yOworICAgICAgICAgIHZhciBlcnJvck1lc3Nh
Z2UgPSBzdGF0ZS5leGNsdWRlZFRlc3RFcnJvcjsKICAgICAgICAgICBpZiAoZXJyb3JNZXNzYWdl
KSB7Ci0gICAgICAgICAgICB2YXIgZXJyb3IgPSBjb25maWd1cmF0aW9uVWkuY3JlYXRlRXJyb3JN
ZXNzYWdlKGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICB2YXIgZXJyb3IgPSBjcmVhdGVFcnJv
ck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgIGV4Y2x1ZGVkVGVzdHNWaWV3LmFw
cGVuZENoaWxkKFVJLmNyZWF0ZUVsZW1lbnQoZXJyb3IpKTsKICAgICAgICAgICB9CiAKICAgICAg
ICAgICB2YXIgZXhjbHVkZUlucHV0cyA9IFsKICAgICAgICAgICAgIHsgdGl0bGU6ICJBZGQgUmF3
IiwgdHlwZTogInJhdyIgfSwKICAgICAgICAgICAgIHsgdGl0bGU6ICJBZGQgTWFsZnVuY3Rpb25p
bmciLCB0eXBlOiAibWFsZnVuYyIgfSwKLSAgICAgICAgICAgIHsgdGl0bGU6ICJBZGQgUHJldmlv
dXMgRXhjbHVkZWQiLCB0eXBlOiAiZXhjbHVkZWQiIH0KKyAgICAgICAgICAgIHsgdGl0bGU6ICJB
ZGQgUHJldmlvdXMgRXhjbHVkZWQiLCB0eXBlOiAiZXhjbHVkZWQiIH0sCiAgICAgICAgICAgXTsK
IAotICAgICAgICAgIHZhciBhY3RpdmVFeGNsdWRlSW5wdXQgPSBjb25maWd1cmF0aW9uVWkuc3Rh
dGUuYWN0aXZlRXhjbHVkZUlucHV0OworICAgICAgICAgIHZhciBhY3RpdmVFeGNsdWRlSW5wdXQg
PSBzdGF0ZS5hY3RpdmVFeGNsdWRlSW5wdXQ7CiAKICAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0
SW5wdXRTd2l0Y2ggPSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgIGNsYXNzTmFtZTog
InRhYnMgaXMtY2VudGVyZWQgaXMtdG9nZ2xlIGlzLXNtYWxsIiwKICAgICAgICAgICAgIGNoaWxk
cmVuOiB7CiAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ1bCIsCi0gICAgICAgICAgICAgIGNoaWxk
cmVuOiBleGNsdWRlSW5wdXRzLm1hcChmdW5jdGlvbihpbnB1dCkgeworICAgICAgICAgICAgICBj
aGlsZHJlbjogZXhjbHVkZUlucHV0cy5tYXAoZnVuY3Rpb24gKGlucHV0KSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJsaSIsCi0gICAgICAg
ICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgY29u
ZmlndXJhdGlvblVpLmhhbmRsZUV4Y2x1ZGVJbnB1dENoYW5nZShpbnB1dC50eXBlKTsKKyAgICAg
ICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAg
aGFuZGxlRXhjbHVkZUlucHV0Q2hhbmdlKGlucHV0LnR5cGUpOwogICAgICAgICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoYWN0aXZlRXhjbHVkZUlucHV0ID09PSBpbnB1dC50eXBlKSByZXR1cm4gImlzLWFjdGl2ZSI7
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIjsKICAgICAgICAgICAgICAgICAgIH0pKCks
Ci0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBlbGVtZW50OiAiYSIsIHRleHQ6IGlucHV0
LnRpdGxlIH0KKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGVsZW1lbnQ6ICJhIiwgdGV4
dDogaW5wdXQudGl0bGUgfSwKICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICB9KQot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgZXhjbHVkZWRUZXN0c1ZpZXcuYXBwZW5kQ2hpbGQoZXhjbHVkZWRU
ZXN0SW5wdXRTd2l0Y2gpOwogCkBAIC04MjcsMjggKzEyODYsMjggQEAKICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImlzLXNpemUtNyIsCiAgICAgICAgICAgICAgICAgICBzdHlsZTogIm1h
cmdpbi1ib3R0b206IDIwcHgiLAogICAgICAgICAgICAgICAgICAgdGV4dDoKLSAgICAgICAgICAg
ICAgICAgICAgIlByb3ZpZGUgcGF0aHMgdG8gdGVzdCBmaWxlcyBvciBkaXJlY3RvcmllcyB0byBl
eGNsdWRlIHRoZW0gZnJvbSB0aGUgc2Vzc2lvbi4gT25lIHBhdGggcGVyIGxpbmUsIGxpbmVzIHN0
YXJ0aW5nIHdpdGggIyBhcmUgb21pdHRlZC4iCisgICAgICAgICAgICAgICAgICAgICJQcm92aWRl
IHBhdGhzIHRvIHRlc3QgZmlsZXMgb3IgZGlyZWN0b3JpZXMgdG8gZXhjbHVkZSB0aGVtIGZyb20g
dGhlIHNlc3Npb24uIE9uZSBwYXRoIHBlciBsaW5lLCBsaW5lcyBzdGFydGluZyB3aXRoICMgYXJl
IG9taXR0ZWQuIiwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ZXh0YXJlYSIsCiAgICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJ0ZXh0YXJlYSIsCi0gICAgICAgICAgICAgICAgICBpZDogImV4Y2x1ZGVkLXRlc3Rz
LXRleHQiCisgICAgICAgICAgICAgICAgICBpZDogImV4Y2x1ZGVkLXRlc3RzLXRleHQiLAogICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgc3R5
bGU6ICJtYXJnaW4tdG9wOiAxMHB4IiwKLSAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaGFuZGxlQWRkRXhs
dWRlZFRlc3RzUmF3KCk7CisgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFkZEV4bHVkZWRUZXN0c1JhdygpOwogICAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiYnV0dG9uIiwKICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24iLAogICAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMjBweCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgdGV4dDogIkFkZCIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAg
ICAgIHRleHQ6ICJBZGQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICBdLAogICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICBleGNsdWRlZFRlc3RzVmlldy5hcHBlbmRDaGlsZChyYXdJbnB1dCk7
CiAgICAgICAgICAgfSBlbHNlIGlmICgKQEAgLTg2NCwxNCArMTMyMywxNCBAQAogICAgICAgICAg
ICAgICAgICAgdGV4dDoKICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRXhjbHVkZUlucHV0ID09
PSAibWFsZnVuYyIKICAgICAgICAgICAgICAgICAgICAgICA/ICJBZGQgbWFsZnVuY3Rpb25pbmcg
dGVzdHMgZnJvbSBwYXN0IHNlc3Npb25zIGJ5IHByb3ZpZGluZyBhdCBsZWFzdCB0aGUgZmlyc3Qg
ZWlnaHQgY2hhcmFjdGVycyBvZiB0aGUgc2Vzc2lvbidzIHRva2VuLiIKLSAgICAgICAgICAgICAg
ICAgICAgICA6ICJBZGQgZXhjbHVkZWQgdGVzdHMgZnJvbSBwYXN0IHNlc3Npb25zIGJ5IHByb3Zp
ZGluZyBhdCBsZWFzdCB0aGUgZmlyc3QgZWlnaHQgY2hhcmFjdGVycyBvZiB0aGUgc2Vzc2lvbidz
IHRva2VuLiIKKyAgICAgICAgICAgICAgICAgICAgICA6ICJBZGQgZXhjbHVkZWQgdGVzdHMgZnJv
bSBwYXN0IHNlc3Npb25zIGJ5IHByb3ZpZGluZyBhdCBsZWFzdCB0aGUgZmlyc3QgZWlnaHQgY2hh
cmFjdGVycyBvZiB0aGUgc2Vzc2lvbidzIHRva2VuLiIsCiAgICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1o
b3Jpem9udGFsIiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiU2Vzc2lvbiBUb2tlbiIgfQorICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlNlc3Npb24gVG9rZW4iIH0sCiAgICAgICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTg4Miw1MCArMTM0MSw1MSBAQAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlkOiAiZXhjbHVkZWQtdGVzdHMtdGV4dCIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiaW5wdXQiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsZW1lbnQ6ICJpbnB1dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZTogInRleHQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInRleHQi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1sZWZ0OiAxZW0iLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBZGQiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChhY3RpdmVFeGNsdWRlSW5wdXQgPT09ICJtYWxmdW5jIikgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaGFuZGxlQWRkRXhsdWRlZFRlc3RzTWFs
ZnVuY3Rpb25pbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWRk
RXhsdWRlZFRlc3RzTWFsZnVuY3Rpb25pbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRp
b25VaS5oYW5kbGVBZGRFeGx1ZGVkVGVzdHNFeGNsdWRlZCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYW5kbGVBZGRFeGx1ZGVkVGVzdHNFeGNsdWRlZCgpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgXQotICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGV4Y2x1ZGVkVGVz
dHNWaWV3LmFwcGVuZENoaWxkKG1hbGZ1bmNJbnB1dCk7CiAgICAgICAgICAgfQogCi0gICAgICAg
ICAgdmFyIGV4Y2x1ZGVkVGVzdHNUYWJsZSA9IGNvbmZpZ3VyYXRpb25VaS5jcmVhdGVFeGNsdWRl
ZFRlc3RzVGFibGUoKTsKKyAgICAgICAgICB2YXIgZXhjbHVkZWRUZXN0c1RhYmxlID0gY3JlYXRl
RXhjbHVkZWRUZXN0c1RhYmxlKCk7CiAgICAgICAgICAgdmFyIHRhYmxlV3JhcHBlciA9IFVJLmNy
ZWF0ZUVsZW1lbnQoewotICAgICAgICAgICAgc3R5bGU6ICJtYXgtaGVpZ2h0OiAyNTBweDsgb3Zl
cmZsb3c6IGF1dG87IG1hcmdpbi1ib3R0b206IDEwcHgiCisgICAgICAgICAgICBzdHlsZTogIm1h
eC1oZWlnaHQ6IDI1MHB4OyBvdmVyZmxvdzogYXV0bzsgbWFyZ2luLWJvdHRvbTogMTBweCIsCiAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgdGFibGVXcmFwcGVyLmFwcGVuZENoaWxkKGV4Y2x1ZGVk
VGVzdHNUYWJsZSk7CiAgICAgICAgICAgZXhjbHVkZWRUZXN0c1ZpZXcuYXBwZW5kQ2hpbGQodGFi
bGVXcmFwcGVyKTsKLSAgICAgICAgfSwKLSAgICAgICAgcmVuZGVyUmVzdW1lVmlldzogZnVuY3Rp
b24oKSB7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZW5kZXJSZXN1bWVWaWV3KCkg
ewogICAgICAgICAgIHZhciBxdWVyeSA9IHV0aWxzLnBhcnNlUXVlcnkobG9jYXRpb24uc2VhcmNo
KTsKICAgICAgICAgICB2YXIgcmVzdW1lVG9rZW4gPSBxdWVyeS5yZXN1bWU7CiAgICAgICAgICAg
aWYgKCFyZXN1bWVUb2tlbikgcmVzdW1lVG9rZW4gPSAiIjsKIAogICAgICAgICAgIHZhciByZW5k
ZXJSZXN1bWVFbGVtZW50ID0gVUkuZ2V0RWxlbWVudCgicmVzdW1lLXZpZXciKTsKICAgICAgICAg
ICByZW5kZXJSZXN1bWVFbGVtZW50LmlubmVySFRNTCA9ICIiOwotICAgICAgICAgIGlmIChjb25m
aWd1cmF0aW9uVWkuc3RhdGUuZXhwaXJlZCkgcmV0dXJuOworICAgICAgICAgIGlmIChzdGF0ZS5l
eHBpcmVkKSByZXR1cm47CiAKICAgICAgICAgICB2YXIgaGVhZGluZyA9IFVJLmNyZWF0ZUVsZW1l
bnQoewogICAgICAgICAgICAgZWxlbWVudDogImgyIiwKICAgICAgICAgICAgIGNsYXNzTmFtZTog
InRpdGxlIGlzLTUiLAotICAgICAgICAgICAgdGV4dDogIlJlc3VtZSBzZXNzaW9uIgorICAgICAg
ICAgICAgdGV4dDogIlJlc3VtZSBzZXNzaW9uIiwKICAgICAgICAgICB9KTsKICAgICAgICAgICBy
ZW5kZXJSZXN1bWVFbGVtZW50LmFwcGVuZENoaWxkKGhlYWRpbmcpOwogCkBAIC05NDAsNyArMTQw
MCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50OiAibGFiZWwiLAogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImxhYmVsIiwK
LSAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiVG9rZW4gKGZpcnN0IDggY2hhcmFjdGVycyBv
ciBtb3JlKSIKKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiVG9rZW4gKGZpcnN0IDggY2hh
cmFjdGVycyBvciBtb3JlKSIsCiAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKQEAg
LTk1MCwxMSArMTQxMCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
aW5wdXQgaXMtZmFtaWx5LW1vbm9zcGFjZSB0YWJiYWJsZSIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlOiAidGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogIm1heC13
aWR0aDogMzBlbSIsCi0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVzdW1lVG9rZW4K
LSAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZTogcmVzdW1lVG9rZW4sCisgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImNvbHVtbiIsCkBAIC05NjIsMzkgKzE0MjIsNDAgQEAKICAgICAgICAgICAgICAgICAgICJk
aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogZmxl
eC1lbmQiLAogICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICBj
bGFzc05hbWU6ICJidXR0b24iLAotICAgICAgICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5yZXN1bWVTZXNzaW9uKCk7
CisgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgICAgIHJlc3VtZVNlc3Npb24oKTsKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgZWxlbWVudDogInNwYW4iLAogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImljb24iLAotICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGVsZW1lbnQ6ICJp
IiwgY2xhc3NOYW1lOiAiZmFzIGZhLXJlZG8tYWx0IiB9CisgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW46IHsgZWxlbWVudDogImkiLCBjbGFzc05hbWU6ICJmYXMgZmEtcmVkby1hbHQiIH0s
CiAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCi0gICAgICAgICAgICAgICAgICAgICAgdGV4
dDogIlJlc3VtZSIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgXQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAg
ICAgICAgICAgICAgICAgIHRleHQ6ICJSZXN1bWUiLAorICAgICAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICByZW5kZXJSZXN1bWVF
bGVtZW50LmFwcGVuZENoaWxkKHJlc3VtZUNvbnRyb2xzKTsKLSAgICAgICAgfSwKLSAgICAgICAg
Y3JlYXRlRXhjbHVkZWRUZXN0c1RhYmxlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgZXhj
bHVkZWRUZXN0cyA9IGNvbmZpZ3VyYXRpb25VaS5zdGF0ZS5jb25maWd1cmF0aW9uLnRlc3RzLmV4
Y2x1ZGU7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjcmVhdGVFeGNsdWRlZFRlc3Rz
VGFibGUoKSB7CisgICAgICAgICAgdmFyIGV4Y2x1ZGVkVGVzdHMgPSBzdGF0ZS5jb25maWd1cmF0
aW9uLnRlc3RzLmV4Y2x1ZGU7CiAgICAgICAgICAgaWYgKGV4Y2x1ZGVkVGVzdHMubGVuZ3RoID09
PSAwKSB7CiAgICAgICAgICAgICByZXR1cm4gVUkuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAg
ICAgIHN0eWxlOiAidGV4dC1hbGlnbjogY2VudGVyIiwKLSAgICAgICAgICAgICAgdGV4dDogIi0g
Tm8gRXhjbHVkZWQgVGVzdHMgLSIKKyAgICAgICAgICAgICAgdGV4dDogIi0gTm8gRXhjbHVkZWQg
VGVzdHMgLSIsCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICB9CiAgICAgICAgICAgdmFyIHRh
YmxlID0gVUkuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgICBlbGVtZW50OiAidGFibGUiLAog
ICAgICAgICAgICAgY2xhc3NOYW1lOiAidGFibGUiLAogICAgICAgICAgICAgc3R5bGU6ICJ3aWR0
aDogMTAwJSIsCi0gICAgICAgICAgICBjaGlsZHJlbjogZXhjbHVkZWRUZXN0cy5tYXAoZnVuY3Rp
b24odGVzdCkgeworICAgICAgICAgICAgY2hpbGRyZW46IGV4Y2x1ZGVkVGVzdHMubWFwKGZ1bmN0
aW9uICh0ZXN0KSB7CiAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgZWxl
bWVudDogInRyIiwKICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwpAQCAtMTAwNCw2NiArMTQ2
NSw1MyBAQAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJidXR0b24iLAogICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImJ1dHRvbiBpcy1zbWFsbCIsCi0gICAgICAgICAgICAgICAgICAgICAgb25DbGljazogZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWkuaGFuZGxl
UmVtb3ZlRXhjbHVkZWRUZXN0KHRlc3QpOworICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVJlbW92ZUV4Y2x1
ZGVkVGVzdCh0ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3Bh
biIsCiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29uIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZh
LXRyYXNoLWFsdCIKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBm
YS10cmFzaC1hbHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSkKKyAg
ICAgICAgICAgIH0pLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHJldHVybiB0YWJsZTsKLSAg
ICAgICAgfSwKLSAgICAgICAgY3JlYXRlQXBpTGlzdDogZnVuY3Rpb24oYXBpcykgewotICAgICAg
ICAgIHJldHVybiBhcGlzLm1hcChhcGkgPT4gKHsKLSAgICAgICAgICAgIGVsZW1lbnQ6ICJidXR0
b24iLAotICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tcmlnaHQ6IDAuM2VtOyBtYXJnaW4tYm90
dG9tOiAwLjNlbSIsCi0gICAgICAgICAgICBjbGFzc05hbWU6Ci0gICAgICAgICAgICAgICJidXR0
b24iICsKLSAgICAgICAgICAgICAgKGNvbmZpZ3VyYXRpb25VaS5oYXNJbmNsdWRlZFRlc3QoYXBp
LnBhdGgpID8gIiBpcy1pbmZvIiA6ICIiKSwKLSAgICAgICAgICAgIHRleHQ6IGFwaS50aXRsZSwK
LSAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICAgIGNv
bmZpZ3VyYXRpb25VaS5oYW5kbGVJbmNsdWRlZFRlc3RUb2dnbGUoYXBpLnBhdGgpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0pKTsKLSAgICAgICAgfSwKLSAgICAgICAgY3JlYXRlVGVzdFR5
cGVMaXN0OiBmdW5jdGlvbih0eXBlcykgewotICAgICAgICAgIHJldHVybiB0eXBlcy5tYXAodHlw
ZSA9PiAoeworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY3JlYXRlVGVzdFR5cGVMaXN0
KHR5cGVzKSB7CisgICAgICAgICAgcmV0dXJuIHR5cGVzLm1hcCgodHlwZSkgPT4gKHsKICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJidXR0b24iLAogICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tcmln
aHQ6IDAuM2VtOyBtYXJnaW4tYm90dG9tOiAwLjNlbSIsCi0gICAgICAgICAgICBjbGFzc05hbWU6
Ci0gICAgICAgICAgICAgICJidXR0b24iICsKLSAgICAgICAgICAgICAgKGNvbmZpZ3VyYXRpb25V
aS5oYXNUZXN0VHlwZSh0eXBlLnZhbHVlKSA/ICIgaXMtaW5mbyIgOiAiIiksCisgICAgICAgICAg
ICBjbGFzc05hbWU6ICJidXR0b24iICsgKGhhc1Rlc3RUeXBlKHR5cGUudmFsdWUpID8gIiBpcy1p
bmZvIiA6ICIiKSwKICAgICAgICAgICAgIHRleHQ6IHR5cGUudGl0bGUsCi0gICAgICAgICAgICBv
bkNsaWNrOiBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgICBjb25maWd1cmF0aW9uVWku
aGFuZGxlVGVzdFR5cGVUb2dnbGUodHlwZS52YWx1ZSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgICAgICAgaGFuZGxlVGVz
dFR5cGVUb2dnbGUodHlwZS52YWx1ZSk7CisgICAgICAgICAgICAgIHJlbmRlclR5cGVzRmllbGQo
KTsKKyAgICAgICAgICAgIH0sCiAgICAgICAgICAgfSkpOwotICAgICAgICB9LAotICAgICAgICBj
cmVhdGVSZWZTZXNzaW9uc0xpc3Q6IGZ1bmN0aW9uKHJlZmVyZW5jZVNlc3Npb25zKSB7Ci0gICAg
ICAgICAgcmV0dXJuIHJlZmVyZW5jZVNlc3Npb25zLm1hcChzZXNzaW9uID0+ICh7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBjcmVhdGVSZWZTZXNzaW9uc0xpc3QocmVmZXJlbmNlU2Vz
c2lvbnMpIHsKKyAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlU2Vzc2lvbnMubWFwKChzZXNzaW9u
KSA9PiAoewogICAgICAgICAgICAgZWxlbWVudDogImJ1dHRvbiIsCi0gICAgICAgICAgICBjbGFz
c05hbWU6Ci0gICAgICAgICAgICAgICJidXR0b24iICsKLSAgICAgICAgICAgICAgKGNvbmZpZ3Vy
YXRpb25VaS5oYXNSZWZTZXNzaW9uKHNlc3Npb24pID8gIiBpcy1pbmZvIiA6ICIiKSwKKyAgICAg
ICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiIgKyAoaGFzUmVmU2Vzc2lvbihzZXNzaW9uKSA/ICIg
aXMtaW5mbyIgOiAiIiksCiAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1yaWdodDogMC4zZW07
IG1hcmdpbi1ib3R0b206IDAuM2VtOyBoZWlnaHQ6IGF1dG8iLAotICAgICAgICAgICAgb25DbGlj
azogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25VaS5oYW5kbGVSZWZT
ZXNzaW9uVG9nZ2xlKHNlc3Npb24pOworICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICBoYW5kbGVSZWZTZXNzaW9uVG9nZ2xlKHNlc3Npb24pOworICAgICAg
ICAgICAgICByZW5kZXJSZWZlcmVuY2VzRmllbGQoKTsKICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZWxlbWVu
dDogInNwYW4iLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImljb24iLAotICAgICAgICAg
ICAgICAgIGNoaWxkcmVuOiBbeyBlbGVtZW50OiAiaSIsIGNsYXNzTmFtZTogc2Vzc2lvbi5pY29u
IH1dCisgICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IGVsZW1lbnQ6ICJpIiwgY2xhc3NOYW1l
OiBzZXNzaW9uLmljb24gfV0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCkBAIC0xMDcxLDE0ICsxNTE5LDE1IEBACiAg
ICAgICAgICAgICAgICAgICB7IHRleHQ6IHNlc3Npb24udGl0bGUgfSwKICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGV4dDogc2Vzc2lvbi5lbmdpbmUsCi0gICAgICAg
ICAgICAgICAgICAgIHN0eWxlOiAiZm9udC1zaXplOiAwLjhlbSIKLSAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgICAgICAgICAgc3R5bGU6ICJmb250LXNpemU6IDAuOGVtIiwKKyAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgfSkpOwotICAgICAgICB9LAotICAgICAgICBjcmVhdGVTZWxlY3RE
ZXNlbGVjdEJ1dHRvbnM6IGZ1bmN0aW9uKG9uU2VsZWN0LCBvbkRlc2VsZWN0KSB7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBjcmVhdGVTZWxlY3REZXNlbGVjdEJ1dHRvbnMob25TZWxl
Y3QsIG9uRGVzZWxlY3QpIHsKICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgc3R5bGU6
ICJtYXJnaW4tdG9wOiAwLjNlbSIsCiAgICAgICAgICAgICBjaGlsZHJlbjogWwpAQCAtMTA4Nywz
MCArMTUzNiw1MSBAQAogICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLXJpZ2h0OiAwLjNl
bSIsCiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLXJvdW5kZWQgaXMtc21h
bGwiLAogICAgICAgICAgICAgICAgIHRleHQ6ICJBbGwiLAotICAgICAgICAgICAgICAgIG9uQ2xp
Y2s6IG9uU2VsZWN0CisgICAgICAgICAgICAgICAgb25DbGljazogb25TZWxlY3QsCiAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBlbGVtZW50OiAiYnV0
dG9uIiwKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtcm91bmRlZCBpcy1z
bWFsbCIsCiAgICAgICAgICAgICAgICAgdGV4dDogIk5vbmUiLAotICAgICAgICAgICAgICAgIG9u
Q2xpY2s6IG9uRGVzZWxlY3QKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAgICAg
ICAgICAgICAgIG9uQ2xpY2s6IG9uRGVzZWxlY3QsCisgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBdLAogICAgICAgICAgIH07Ci0gICAgICAgIH0sCi0gICAgICAgIGNyZWF0ZUVycm9yTWVz
c2FnZTogZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
Y3JlYXRlRXJyb3JNZXNzYWdlKG1lc3NhZ2UpIHsKICAgICAgICAgICByZXR1cm4gewogICAgICAg
ICAgICAgZWxlbWVudDogImFydGljbGUiLAogICAgICAgICAgICAgY2xhc3NOYW1lOiAibWVzc2Fn
ZSBpcy1kYW5nZXIiLAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogIm1lc3NhZ2UtYm9keSIsCi0gICAgICAgICAgICAg
ICAgdGV4dDogbWVzc2FnZQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAg
ICAgICAgICAgdGV4dDogbWVzc2FnZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0s
CiAgICAgICAgICAgfTsKICAgICAgICAgfQotICAgICAgfTsKKworICAgICAgICBmdW5jdGlvbiBj
cmVhdGVMb2FkaW5nSW5kaWNhdG9yKHRleHQpIHsKKyAgICAgICAgICByZXR1cm4gVUkuY3JlYXRl
RWxlbWVudCh7CisgICAgICAgICAgICBjbGFzc05hbWU6ICJsZXZlbCIsCisgICAgICAgICAgICBj
aGlsZHJlbjogeworICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIsCisgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImxldmVsLWl0ZW0iLAorICAgICAgICAgICAgICBjaGlsZHJlbjogWworICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpIiwKKyAgICAgICAg
ICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHN0eWxlOiAi
bWFyZ2luLWxlZnQ6IDAuNGVtOyIsCisgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0LAorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9LAorICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L2J1bG1hLmNzcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1
bG1hLTAuNy41L2J1bG1hLmNzcwppbmRleCBmOTk0ODRiYzRhMjkyYWUxYzk0YTFjZGE1ZmNkMzUw
NjU3YzA2MzE5Li5lNzkzNDMyYWUzMWMzNDk1N2NhYjc0Zjc5MWQyOTg4NzFkOTBmYTI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dhdmUvd3d3L2Nzcy9idWxtYS0wLjcuNS9idWxtYS5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvYnVsbWEtMC43
LjUvYnVsbWEuY3NzCkBAIC0yNiw5ICsyNiw5IEBACiAucGFnaW5hdGlvbi1lbGxpcHNpcywgLnRh
YnMgewogICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7CiAgIC13ZWJraXQtdXNlci1zZWxl
Y3Q6IG5vbmU7Ci0gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgIC1tb3otdXNlci1zZWxl
Y3Q6IG5vbmU7CiAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsKLSAgLXdlYmtpdC11c2VyLXNlbGVj
dDogbm9uZTsKKyAgdXNlci1zZWxlY3Q6IG5vbmU7CiB9CiAKIC5zZWxlY3Q6bm90KC5pcy1tdWx0
aXBsZSk6bm90KC5pcy1sb2FkaW5nKTo6YWZ0ZXIsIC5uYXZiYXItbGluazpub3QoLmlzLWFycm93
bGVzcyk6OmFmdGVyIHsKQEAgLTMzOCw3ICszMzgsNyBAQCBodG1sIHsKICAgLXdlYmtpdC10ZXh0
LXNpemUtYWRqdXN0OiAxMDAlOwogICAgICAtbW96LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7CiAg
ICAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsKLSAgICAgICAgICAtd2Via2l0LXRleHQt
c2l6ZS1hZGp1c3Q6IDEwMCU7CisgICAgICAgICAgdGV4dC1zaXplLWFkanVzdDogMTAwJTsKIH0K
IAogYXJ0aWNsZSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3d3dy9jc3MvYnVsbWEtMC43LjUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDIxMDg5OGZjZjY3ZmIyZWY3NTJmYmQ3MzFkZmEyMGNmMTcwYTM5Y2QuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvYnVsbWEtMC43
LjUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci11c2VyLXNlbGVjdAotdGV4dC1zaXplLWFkanVzdAot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvYnVsbWEtMC43LjUvYnVsbWEuY3NzCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy9jc3MvYnVsbWEtMC43LjUvYnVsbWEuY3NzLm1hcAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL2J1bG1hLTAuNy41L2J1bG1h
Lm1pbi5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NmNiZjA0M2RiMzFhZTBk
YWM1Mjk3ZTE2NTAwMDNiMGYwMDk4ZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9jc3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2Nzcy9mb250YXdlc29tZS01LjcuMi5taW4uY3NzCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9j
c3MvZm9udGF3ZXNvbWUubWluLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY3NzL21haW4uY3NzCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jc3MvcmVzdWx0LmNz
cwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2
ZS93d3cvY3NzL3N0eWxlLmNzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9pbmRleC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9pbmRleC5o
dG1sCmluZGV4IGZiZmVjNDFkNjE5M2Q5NTU2Njk0MDRhM2E2NWM3MGIxZjBjNDZjODUuLjhiYTk0
ZGZhYzBjMDE3ODcxMDEzYmUxZjI3NzFiZjFlZDA5ZGIwMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvaW5kZXgu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvd3d3L2luZGV4Lmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgPGgxIGNs
YXNzPSJ0aXRsZSBpcy1zcGFjZWQiPgogICAgICAgICAgIFdBVkUgV01BUyBUZXN0IFN1aXRlCiAg
ICAgICAgIDwvaDE+Ci0JCQkJPHAgY2xhc3M9InN1YnRpdGxlIj4KKyAgICAgICAgPHAgY2xhc3M9
InN1YnRpdGxlIj4KICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Ym1lZGlhYXBpLyI+R2l0SHViPC9hPiAtCiAgICAgICAgIDwvcD4KICAgICAgIDwvZGl2PgpAQCAt
MzIsMjMgKzMyLDI5IEBACiAgICAgICAgIDxoMiBjbGFzcz0idGl0bGUgaXMtNSI+CiAgICAgICAg
ICAgTmV3IHRlc3Qgc2Vzc2lvbgogICAgICAgICA8L2gyPgotICAgICAgICA8ZGl2IGNsYXNzPSJj
b2x1bW5zIGlzLXZjZW50ZXJlZCIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHgiPgorICAgICAgICA8
ZGl2IGNsYXNzPSJjb2x1bW5zIGlzLXZjZW50ZXJlZCIgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7
Ij4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2x1bW4gaXMtbmFycm93Ij4KICAgICAgICAgICAg
IDxkaXYKICAgICAgICAgICAgICAgaWQ9InFyLWNvZGUiCi0gICAgICAgICAgICAgIHN0eWxlPSJ3
aWR0aDogMjU2cHg7IGhlaWdodDogMjU2cHg7IHBhZGRpbmc6IDVweDsgYm9yZGVyOiAxcHggZ3Jh
eSBzb2xpZDsgYm9yZGVyLXJhZGl1czogM3B4OyIKKyAgICAgICAgICAgICAgc3R5bGU9IgorICAg
ICAgICAgICAgICAgIHdpZHRoOiAyNTZweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDI1NnB4
OworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKKyAgICAgICAgICAgICAgICBib3JkZXI6
IDFweCBncmF5IHNvbGlkOworICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKKyAg
ICAgICAgICAgICAgIgogICAgICAgICAgICAgPjwvZGl2PgogICAgICAgICAgIDwvZGl2PgogICAg
ICAgICAgIDxkaXYgY2xhc3M9ImNvbHVtbiI+Ci0gICAgICAgICAgICA8dGFibGUgc3R5bGU9Im1h
cmdpbi1ib3R0b206IDEuNWVtIj4KKyAgICAgICAgICAgIDx0YWJsZSBzdHlsZT0ibWFyZ2luLWJv
dHRvbTogMS41ZW07Ij4KICAgICAgICAgICAgICAgPHRyPgotICAgICAgICAgICAgICAgIDx0ZCBj
bGFzcz0iaGFzLXRleHQtd2VpZ2h0LWJvbGQiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAxcmVtIj4K
KyAgICAgICAgICAgICAgICA8dGQgY2xhc3M9Imhhcy10ZXh0LXdlaWdodC1ib2xkIiBzdHlsZT0i
cGFkZGluZy1yaWdodDogMXJlbTsiPgogICAgICAgICAgICAgICAgICAgVG9rZW46CiAgICAgICAg
ICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICA8dGQgaWQ9InNlc3Npb24tdG9rZW4iIGNs
YXNzPSJpcy1mYW1pbHktbW9ub3NwYWNlIj48L3RkPgogICAgICAgICAgICAgICA8L3RyPgogICAg
ICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJoYXMtdGV4dC13ZWln
aHQtYm9sZCIgc3R5bGU9InBhZGRpbmctcmlnaHQ6IDFyZW0iPgorICAgICAgICAgICAgICAgIDx0
ZCBjbGFzcz0iaGFzLXRleHQtd2VpZ2h0LWJvbGQiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OiAxcmVt
OyI+CiAgICAgICAgICAgICAgICAgICBFeHBpcmVzOgogICAgICAgICAgICAgICAgIDwvdGQ+CiAg
ICAgICAgICAgICAgICAgPHRkIGlkPSJleHBpYXJ5LWRhdGUiPjwvdGQ+CkBAIC04Nyw3ICs5Myw3
IEBACiAgICAgICAgIDwvaDI+CiAgICAgICAgIDxhcnRpY2xlCiAgICAgICAgICAgaWQ9InVua25v
d25fdG9rZW5fZXJyb3IiCi0gICAgICAgICAgc3R5bGU9Im1heC13aWR0aDogMzBlbTsgZGlzcGxh
eTogbm9uZSIKKyAgICAgICAgICBzdHlsZT0ibWF4LXdpZHRoOiAzMGVtOyBkaXNwbGF5OiBub25l
OyIKICAgICAgICAgICBjbGFzcz0ibWVzc2FnZSBpcy1kYW5nZXIiCiAgICAgICAgID4KICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWJvZHkiPgpAQCAtMTEyLDE0OCArMTE4LDE0NiBAQAog
ICAgICAgPC9kaXY+CiAgICAgPC9zZWN0aW9uPgogCi0JCTxzY3JpcHQ+Ci0JCQl2YXIgc2VsZWN0
ZWRUYWJiYWJsZSA9IC0xOworICAgIDxzY3JpcHQ+CisgICAgICB2YXIgc2VsZWN0ZWRUYWJiYWJs
ZSA9IC0xOwogCi0JCQlmdW5jdGlvbiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpIHsK
LQkJCQl2YXIgZWxlbWVudENsYXNzID0gZWxlbWVudC5jbGFzc05hbWU7Ci0JCQkJdmFyIGluZGV4
ID0gZWxlbWVudENsYXNzLmluZGV4T2YoY2xhc3NOYW1lKTsKLQkJCQlpZiAoaW5kZXggIT09IC0x
KSB7Ci0JCQkJCWVsZW1lbnQuY2xhc3NOYW1lID0gZWxlbWVudENsYXNzLnJlcGxhY2UoY2xhc3NO
YW1lLCAiIik7Ci0JCQkJfQotCQkJfQorICAgICAgZnVuY3Rpb24gcmVtb3ZlQ2xhc3MoZWxlbWVu
dCwgY2xhc3NOYW1lKSB7CisgICAgICAgIHZhciBlbGVtZW50Q2xhc3MgPSBlbGVtZW50LmNsYXNz
TmFtZTsKKyAgICAgICAgdmFyIGluZGV4ID0gZWxlbWVudENsYXNzLmluZGV4T2YoY2xhc3NOYW1l
KTsKKyAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgeworICAgICAgICAgIGVsZW1lbnQuY2xhc3NO
YW1lID0gZWxlbWVudENsYXNzLnJlcGxhY2UoY2xhc3NOYW1lLCAiIik7CisgICAgICAgIH0KKyAg
ICAgIH0KIAotCQkJZnVuY3Rpb24gYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7Ci0JCQkJ
ZWxlbWVudC5jbGFzc05hbWUgKz0gIiAiICsgY2xhc3NOYW1lOwotCQkJfQorICAgICAgZnVuY3Rp
b24gYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSB7CisgICAgICAgIGVsZW1lbnQuY2xhc3NO
YW1lICs9ICIgIiArIGNsYXNzTmFtZTsKKyAgICAgIH0KIAotCQkJZnVuY3Rpb24gc2tpcEZvY3Vz
KHN0ZXBzKSB7Ci0JCQkJdmFyIHRhYmJhYmxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoInRhYmJhYmxlIik7Ci0JCQkJaWYgKHNlbGVjdGVkVGFiYmFibGUgPT09IC0xKSB7Ci0J
CQkJCXNlbGVjdGVkVGFiYmFibGUgPSAwOwotCQkJCX0gZWxzZSB7Ci0JCQkJCXJlbW92ZUNsYXNz
KHRhYmJhYmxlc1tzZWxlY3RlZFRhYmJhYmxlXSwgImZvY3VzZWQiKTsKLQkJCQkJc2VsZWN0ZWRU
YWJiYWJsZSArPSBzdGVwczsKLQkJCQl9CisgICAgICBmdW5jdGlvbiBza2lwRm9jdXMoc3RlcHMp
IHsKKyAgICAgICAgdmFyIHRhYmJhYmxlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoInRhYmJhYmxlIik7CisgICAgICAgIGlmIChzZWxlY3RlZFRhYmJhYmxlID09PSAtMSkgewor
ICAgICAgICAgIHNlbGVjdGVkVGFiYmFibGUgPSAwOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgIHJlbW92ZUNsYXNzKHRhYmJhYmxlc1tzZWxlY3RlZFRhYmJhYmxlXSwgImZvY3VzZWQiKTsK
KyAgICAgICAgICBzZWxlY3RlZFRhYmJhYmxlICs9IHN0ZXBzOworICAgICAgICB9CiAKLQkJCQlp
ZiAoc2VsZWN0ZWRUYWJiYWJsZSA+PSB0YWJiYWJsZXMubGVuZ3RoKSB7Ci0JCQkJCXNlbGVjdGVk
VGFiYmFibGUgPSAwOwotCQkJCX0KKyAgICAgICAgaWYgKHNlbGVjdGVkVGFiYmFibGUgPj0gdGFi
YmFibGVzLmxlbmd0aCkgeworICAgICAgICAgIHNlbGVjdGVkVGFiYmFibGUgPSAwOworICAgICAg
ICB9CiAKLQkJCQlpZiAoc2VsZWN0ZWRUYWJiYWJsZSA8IDApIHsKLQkJCQkJc2VsZWN0ZWRUYWJi
YWJsZSA9IHRhYmJhYmxlcy5sZW5ndGggLSAxOwotCQkJCX0KKyAgICAgICAgaWYgKHNlbGVjdGVk
VGFiYmFibGUgPCAwKSB7CisgICAgICAgICAgc2VsZWN0ZWRUYWJiYWJsZSA9IHRhYmJhYmxlcy5s
ZW5ndGggLSAxOworICAgICAgICB9CiAKLQkJCQl0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV0u
Zm9jdXMoKTsKLQkJCQlhZGRDbGFzcyh0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV0sICJmb2N1
c2VkIik7Ci0JCQl9CisgICAgICAgIHRhYmJhYmxlc1tzZWxlY3RlZFRhYmJhYmxlXS5mb2N1cygp
OworICAgICAgICBhZGRDbGFzcyh0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV0sICJmb2N1c2Vk
Iik7CisgICAgICB9CiAKLQkJCWZ1bmN0aW9uIGZvY3VzTmV4dCgpIHsKLQkJCQlza2lwRm9jdXMo
MSk7Ci0JCQl9CisgICAgICBmdW5jdGlvbiBmb2N1c05leHQoKSB7CisgICAgICAgIHNraXBGb2N1
cygxKTsKKyAgICAgIH0KIAotCQkJZnVuY3Rpb24gZm9jdXNQcmV2aW91cygpIHsKLQkJCQlza2lw
Rm9jdXMoLTEpOwotCQkJfQorICAgICAgZnVuY3Rpb24gZm9jdXNQcmV2aW91cygpIHsKKyAgICAg
ICAgc2tpcEZvY3VzKC0xKTsKKyAgICAgIH0KIAotCQkJLy8gUmVzdW1lCi0JCQl2YXIgcmVzdW1l
VG9rZW4gPSAiIjsKLQkJCXZhciBjb29raWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7
Ci0JCQlmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKLQkJCQl2YXIg
Y29va2llID0gY29va2llc1tpXTsKLQkJCQlpZiAoY29va2llLnNwbGl0KCI9IilbMF0ucmVwbGFj
ZSgvIC9nLCAiIikgPT09ICJyZXN1bWVfdG9rZW4iKSB7Ci0JCQkJCXJlc3VtZVRva2VuID0gY29v
a2llLnNwbGl0KCI9IilbMV07Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQkJCWlmICghcmVz
dW1lVG9rZW4pIHJlc3VtZVRva2VuID0gIiI7CisgICAgICAvLyBSZXN1bWUKKyAgICAgIHZhciBy
ZXN1bWVUb2tlbiA9ICIiOworICAgICAgdmFyIGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWUuc3Bs
aXQoIjsiKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29va2llcy5sZW5ndGg7IGkrKykg
eworICAgICAgICB2YXIgY29va2llID0gY29va2llc1tpXTsKKyAgICAgICAgaWYgKGNvb2tpZS5z
cGxpdCgiPSIpWzBdLnJlcGxhY2UoLyAvZywgIiIpID09PSAicmVzdW1lX3Rva2VuIikgeworICAg
ICAgICAgIHJlc3VtZVRva2VuID0gY29va2llLnNwbGl0KCI9IilbMV07CisgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmICghcmVzdW1lVG9rZW4pIHJlc3VtZVRv
a2VuID0gIiI7CiAKLQkJCXZhciByZXN1bWVCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVzdW1lLWJ1dHRvbiIpOworICAgICAgdmFyIHJlc3VtZUJ1dHRvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bWUtYnV0dG9uIik7CiAKLQkJCXZhciB0b2tlblRleHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdW1lX3Rva2VuIik7Ci0JCQlpZiAocmVzdW1lVG9rZW4p
IHsKLQkJCQl0b2tlblRleHQuaW5uZXJUZXh0ID0gIkxhc3Qgc2Vzc2lvbjogIiArIHJlc3VtZVRv
a2VuOwotCQkJfSBlbHNlIHsKLQkJCQl0b2tlblRleHQuaW5uZXJUZXh0ID0gIk5vIHJlY2VudCBz
ZXNzaW9uLiI7Ci0JCQkJcmVzdW1lQnV0dG9uLnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCAiIik7
Ci0JCQl9Ci0JCQl2YXIgdW5rbm93blRva2VuRXJyb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidW5rbm93bl90b2tlbl9lcnJvciIpOwotCQkJcmVzdW1lQnV0dG9uLm9uY2xpY2sgPSBmdW5j
dGlvbihldmVudCkgewotCQkJCWxvY2F0aW9uLmhyZWYgPSBXRUJfUk9PVCArICJuZXh0Lmh0bWw/
dG9rZW49IiArIHJlc3VtZVRva2VuOwotCQkJfTsKKyAgICAgIHZhciB0b2tlblRleHQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdW1lX3Rva2VuIik7CisgICAgICBpZiAocmVzdW1lVG9r
ZW4pIHsKKyAgICAgICAgdG9rZW5UZXh0LmlubmVyVGV4dCA9ICJMYXN0IHNlc3Npb246ICIgKyBy
ZXN1bWVUb2tlbjsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRva2VuVGV4dC5pbm5lclRleHQg
PSAiTm8gcmVjZW50IHNlc3Npb24uIjsKKyAgICAgICAgcmVzdW1lQnV0dG9uLnNldEF0dHJpYnV0
ZSgiZGlzYWJsZWQiLCAiIik7CisgICAgICB9CisgICAgICB2YXIgdW5rbm93blRva2VuRXJyb3Ig
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidW5rbm93bl90b2tlbl9lcnJvciIpOworICAgICAg
cmVzdW1lQnV0dG9uLm9uY2xpY2sgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgbG9jYXRp
b24uaHJlZiA9IFdFQl9ST09UICsgIm5leHQuaHRtbD90b2tlbj0iICsgcmVzdW1lVG9rZW47Cisg
ICAgICB9OwogCi0JCQlyZXN1bWVCdXR0b24ub25rZXlkb3duID0gZnVuY3Rpb24oZXZlbnQpIHsK
LQkJCQl2YXIgY2hhckNvZGUgPQotCQkJCQl0eXBlb2YgZXZlbnQud2hpY2ggPT09ICJudW1iZXIi
ID8gZXZlbnQud2hpY2ggOiBldmVudC5rZXlDb2RlOwotCQkJCWlmIChBQ1RJT05fS0VZUy5pbmRl
eE9mKGNoYXJDb2RlKSA9PT0gLTEpIHJldHVybjsKLQkJCQlsb2NhdGlvbi5ocmVmID0gV0VCX1JP
T1QgKyAibmV4dC5odG1sP3Rva2VuPSIgKyByZXN1bWVUb2tlbjsKLQkJCX07CisgICAgICByZXN1
bWVCdXR0b24ub25rZXlkb3duID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciBjaGFy
Q29kZSA9CisgICAgICAgICAgdHlwZW9mIGV2ZW50LndoaWNoID09PSAibnVtYmVyIiA/IGV2ZW50
LndoaWNoIDogZXZlbnQua2V5Q29kZTsKKyAgICAgICAgaWYgKEFDVElPTl9LRVlTLmluZGV4T2Yo
Y2hhckNvZGUpID09PSAtMSkgcmV0dXJuOworICAgICAgICBsb2NhdGlvbi5ocmVmID0gV0VCX1JP
T1QgKyAibmV4dC5odG1sP3Rva2VuPSIgKyByZXN1bWVUb2tlbjsKKyAgICAgIH07CiAKLQkJCWRv
Y3VtZW50Lm9ua2V5ZG93biA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0JCQkJZXZlbnQgPSBldmVudCB8
fCB3aW5kb3cuZXZlbnQ7Ci0JCQkJdmFyIGNoYXJDb2RlID0KLQkJCQkJdHlwZW9mIGV2ZW50Lndo
aWNoID09PSAibnVtYmVyIiA/IGV2ZW50LndoaWNoIDogZXZlbnQua2V5Q29kZTsKKyAgICAgIGRv
Y3VtZW50Lm9ua2V5ZG93biA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBldmVudCA9IGV2
ZW50IHx8IHdpbmRvdy5ldmVudDsKKyAgICAgICAgdmFyIGNoYXJDb2RlID0KKyAgICAgICAgICB0
eXBlb2YgZXZlbnQud2hpY2ggPT09ICJudW1iZXIiID8gZXZlbnQud2hpY2ggOiBldmVudC5rZXlD
b2RlOwogCi0JCQkJaWYgKEFDVElPTl9LRVlTLmluZGV4T2YoY2hhckNvZGUpICE9PSAtMSkgewot
CQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotCQkJCQl2YXIgdGFiYmFibGVzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgidGFiYmFibGUiKTsKLQkJCQkJdmFyIGVsZW1lbnQg
PSB0YWJiYWJsZXNbc2VsZWN0ZWRUYWJiYWJsZV07Ci0JCQkJCWlmICghZWxlbWVudCkgcmV0dXJu
OwotCQkJCQlpZiAoZWxlbWVudC50eXBlID09PSAiY2hlY2tib3giKSB7Ci0JCQkJCQllbGVtZW50
LmNoZWNrZWQgPSAhZWxlbWVudC5jaGVja2VkOwotCQkJCQl9IGVsc2UgewotCQkJCQkJZWxlbWVu
dC5jbGljaygpOwotCQkJCQl9Ci0JCQkJfQorICAgICAgICBpZiAoQUNUSU9OX0tFWVMuaW5kZXhP
ZihjaGFyQ29kZSkgIT09IC0xKSB7CisgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICB2YXIgdGFiYmFibGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgidGFiYmFibGUiKTsKKyAgICAgICAgICB2YXIgZWxlbWVudCA9IHRhYmJhYmxlc1tzZWxlY3Rl
ZFRhYmJhYmxlXTsKKyAgICAgICAgICBpZiAoIWVsZW1lbnQpIHJldHVybjsKKyAgICAgICAgICBp
ZiAoZWxlbWVudC50eXBlID09PSAiY2hlY2tib3giKSB7CisgICAgICAgICAgICBlbGVtZW50LmNo
ZWNrZWQgPSAhZWxlbWVudC5jaGVja2VkOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBlbGVtZW50LmNsaWNrKCk7CisgICAgICAgICAgfQorICAgICAgICB9CiAKLQkJCQlpZiAoUFJF
Vl9LRVlTLmluZGV4T2YoY2hhckNvZGUpICE9PSAtMSkgewotCQkJCQlmb2N1c1ByZXZpb3VzKCk7
Ci0JCQkJfQorICAgICAgICBpZiAoUFJFVl9LRVlTLmluZGV4T2YoY2hhckNvZGUpICE9PSAtMSkg
eworICAgICAgICAgIGZvY3VzUHJldmlvdXMoKTsKKyAgICAgICAgfQogCi0JCQkJaWYgKE5FWFRf
S0VZUy5pbmRleE9mKGNoYXJDb2RlKSAhPT0gLTEpIHsKLQkJCQkJZm9jdXNOZXh0KCk7Ci0JCQkJ
fQotCQkJfTsKKyAgICAgICAgaWYgKE5FWFRfS0VZUy5pbmRleE9mKGNoYXJDb2RlKSAhPT0gLTEp
IHsKKyAgICAgICAgICBmb2N1c05leHQoKTsKKyAgICAgICAgfQorICAgICAgfTsKIAotCQkJdmFy
IGxpZmVUaW1lID0gMzAgKiA2MCAqIDEwMDA7IC8vIDMwbWluCi0JCQlXYXZlU2VydmljZS5jcmVh
dGVTZXNzaW9uKAotCQkJCXsgZXhwaXJhdGlvbkRhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsg
bGlmZVRpbWUgfSwKLQkJCQlmdW5jdGlvbih0b2tlbikgewotCQkJCQl2YXIgc2Vzc2lvblRva2Vu
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLXRva2VuIik7Ci0JCQkJ
CXNlc3Npb25Ub2tlbkVsZW1lbnQuaW5uZXJUZXh0ID0gdG9rZW47CisgICAgICB2YXIgbGlmZVRp
bWUgPSAzMCAqIDYwICogMTAwMDsgLy8gMzBtaW4KKyAgICAgIFdhdmVTZXJ2aWNlLmNyZWF0ZVNl
c3Npb24oCisgICAgICAgIHsgZXhwaXJhdGlvbkRhdGU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpICsg
bGlmZVRpbWUgfSwKKyAgICAgICAgZnVuY3Rpb24gKHRva2VuKSB7CisgICAgICAgICAgdmFyIHNl
c3Npb25Ub2tlbkVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi10b2tl
biIpOworICAgICAgICAgIHNlc3Npb25Ub2tlbkVsZW1lbnQuaW5uZXJUZXh0ID0gdG9rZW47CiAK
LQkJCQkJV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGZ1bmN0aW9uKGNvbmZpZykgewot
CQkJCQkJdmFyIGV4cGlhcnlEYXRlRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
eHBpYXJ5LWRhdGUiKTsKLQkJCQkJCWV4cGlhcnlEYXRlRWxlbWVudC5pbm5lclRleHQgPSBuZXcg
RGF0ZSgKLQkJCQkJCQljb25maWcuZXhwaXJhdGlvbkRhdGUKLQkJCQkJCSkudG9Mb2NhbGVTdHJp
bmcoKTsKLQkJCQkJfSk7CisgICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb25TdGF0dXMo
dG9rZW4sIGZ1bmN0aW9uIChjb25maWcpIHsKKyAgICAgICAgICAgIHZhciBleHBpYXJ5RGF0ZUVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXhwaWFyeS1kYXRlIik7CisgICAgICAg
ICAgICBleHBpYXJ5RGF0ZUVsZW1lbnQuaW5uZXJUZXh0ID0gY29uZmlnLmV4cGlyYXRpb25EYXRl
LnRvTG9jYWxlU3RyaW5nKCk7CisgICAgICAgICAgfSk7CiAKLQkJCQkJdmFyIGNvbmZpZ3VyYXRp
b25VcmwgPQotCQkJCQkJbG9jYXRpb24ub3JpZ2luICsKLQkJCQkJCVdFQl9ST09UICsgImNvbmZp
Z3VyYXRpb24uaHRtbD90b2tlbj0iICsKLQkJCQkJCXRva2VuICsKLQkJCQkJCSImcmVzdW1lPSIg
KwotCQkJCQkJcmVzdW1lVG9rZW47Ci0JCQkJCW5ldyBRUkNvZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInFyLWNvZGUiKSwgY29uZmlndXJhdGlvblVybCk7Ci0JCQkJCWRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJjb25maWd1cmUtYnV0dG9uIikub25jbGljayA9IGZ1bmN0aW9uKCkgewotCQkJ
CQkJd2luZG93Lm9wZW4oY29uZmlndXJhdGlvblVybCwgIl9ibGFuayIpOwotCQkJCQl9OworICAg
ICAgICAgIHZhciBjb25maWd1cmF0aW9uVXJsID0KKyAgICAgICAgICAgIGxvY2F0aW9uLm9yaWdp
biArCisgICAgICAgICAgICBXRUJfUk9PVCArCisgICAgICAgICAgICAiY29uZmlndXJhdGlvbi5o
dG1sP3Rva2VuPSIgKworICAgICAgICAgICAgdG9rZW4gKworICAgICAgICAgICAgIiZyZXN1bWU9
IiArCisgICAgICAgICAgICByZXN1bWVUb2tlbjsKKyAgICAgICAgICBuZXcgUVJDb2RlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJxci1jb2RlIiksIGNvbmZpZ3VyYXRpb25VcmwpOworICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maWd1cmUtYnV0dG9uIikub25jbGljayA9
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHdpbmRvdy5vcGVuKGNvbmZpZ3VyYXRpb25Vcmws
ICJfYmxhbmsiKTsKKyAgICAgICAgICB9OwogCi0JCQkJCVdhdmVTZXJ2aWNlLmNvbm5lY3RIdHRw
UG9sbGluZyh0b2tlbik7Ci0JCQkJCVdhdmVTZXJ2aWNlLm9uTWVzc2FnZShmdW5jdGlvbihtZXNz
YWdlKSB7Ci0JCQkJCQlpZiAobWVzc2FnZS50eXBlID09PSAicmVzdW1lIikgewotCQkJCQkJCXZh
ciByZXN1bWVUb2tlbiA9IG1lc3NhZ2UuZGF0YTsKLQkJCQkJCQlsb2NhdGlvbi5ocmVmID0gV0VC
X1JPT1QgKyAibmV4dC5odG1sP3Rva2VuPSIgKyByZXN1bWVUb2tlbjsKLQkJCQkJCX0KKyAgICAg
ICAgICBXYXZlU2VydmljZS5hZGRTZXNzaW9uRXZlbnRMaXN0ZW5lcih0b2tlbiwgZnVuY3Rpb24g
KG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09ICJyZXN1bWUiKSB7
CisgICAgICAgICAgICAgIHZhciByZXN1bWVUb2tlbiA9IG1lc3NhZ2UuZGF0YTsKKyAgICAgICAg
ICAgICAgbG9jYXRpb24uaHJlZiA9IFdFQl9ST09UICsgIm5leHQuaHRtbD90b2tlbj0iICsgcmVz
dW1lVG9rZW47CisgICAgICAgICAgICB9CiAKLQkJCQkJCWlmIChtZXNzYWdlLnR5cGUgIT09ICJz
dGF0dXMiKSByZXR1cm47Ci0JCQkJCQlpZiAobWVzc2FnZS5kYXRhID09PSAicGVuZGluZyIpIHJl
dHVybjsKLQkJCQkJCWxvY2F0aW9uLmhyZWYgPSBXRUJfUk9PVCArICJuZXh0Lmh0bWw/dG9rZW49
IiArIHRva2VuOwotCQkJCQl9KTsKLQkJCQl9Ci0JCQkpOwotCQkJZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlc3VtZS1idXR0b24iKS5mb2N1cygpOwotCQk8L3NjcmlwdD4KKyAgICAgICAgICAg
IGlmIChtZXNzYWdlLnR5cGUgIT09ICJzdGF0dXMiKSByZXR1cm47CisgICAgICAgICAgICBpZiAo
bWVzc2FnZS5kYXRhID09PSAicGVuZGluZyIpIHJldHVybjsKKyAgICAgICAgICAgIGxvY2F0aW9u
LmhyZWYgPSBXRUJfUk9PVCArICJuZXh0Lmh0bWw/dG9rZW49IiArIHRva2VuOworICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgICApOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VtZS1idXR0b24iKS5mb2N1cygpOworICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9kYXZpZHNoaW1qcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGli
L2Rhdmlkc2hpbWpzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjZWYyMDMxMWJhYjE3OGI4Y2U5MGQ1OTRlNTYxYTdkNTlhNzJkOWRjLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL2Rhdmlkc2hpbWpzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIv
ZGF2aWRzaGltanMvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL2Rhdmlkc2hpbWpzL3FyY29kZS5qcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3d3dy9saWIvanN6aXAubWluLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvanN6aXAubWluLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI5MTg4NzM2YjczNjkxNjU2OWFkNjA1YTg3N2E3ZWYwOGMyZDYxN2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvd3d3L2xpYi9qc3ppcC5taW4uanMKQEAgLTAsMCArMSwxNSBAQAorLyohCisKK0pTWmlwIHYz
LjEuNSAtIEEgSmF2YVNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAg
ZmlsZXMKKzxodHRwOi8vc3R1YXJ0ay5jb20vanN6aXA+CisKKyhjKSAyMDA5LTIwMTYgU3R1YXJ0
IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CitEdWFsIGxpY2VuY2VkIHVuZGVy
IHRoZSBNSVQgbGljZW5zZSBvciBHUEx2My4gU2VlIGh0dHBzOi8vcmF3LmdpdGh1Yi5jb20vU3R1
ay9qc3ppcC9tYXN0ZXIvTElDRU5TRS5tYXJrZG93bi4KKworSlNaaXAgdXNlcyB0aGUgbGlicmFy
eSBwYWtvIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSA6CitodHRwczovL2dpdGh1Yi5j
b20vbm9kZWNhL3Bha28vYmxvYi9tYXN0ZXIvTElDRU5TRQorKi8KKyFmdW5jdGlvbihhKXtpZigi
b2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVs
ZS5leHBvcnRzPWEoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5h
bWQpZGVmaW5lKFtdLGEpO2Vsc2V7dmFyIGI7Yj0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93
aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBl
b2Ygc2VsZj9zZWxmOnRoaXMsYi5KU1ppcD1hKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlv
biBhKGIsYyxkKXtmdW5jdGlvbiBlKGcsaCl7aWYoIWNbZ10pe2lmKCFiW2ddKXt2YXIgaT0iZnVu
Y3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighaCYmaSlyZXR1cm4gaShnLCEwKTtp
ZihmKXJldHVybiBmKGcsITApO3ZhciBqPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICci
K2crIiciKTt0aHJvdyBqLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGp9dmFyIGs9Y1tnXT17ZXhw
b3J0czp7fX07YltnXVswXS5jYWxsKGsuZXhwb3J0cyxmdW5jdGlvbihhKXt2YXIgYz1iW2ddWzFd
W2FdO3JldHVybiBlKGM/YzphKX0sayxrLmV4cG9ydHMsYSxiLGMsZCl9cmV0dXJuIGNbZ10uZXhw
b3J0c31mb3IodmFyIGY9ImZ1bmN0aW9uIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsZz0wO2c8
ZC5sZW5ndGg7ZysrKWUoZFtnXSk7cmV0dXJuIGV9KHsxOltmdW5jdGlvbihhLGIsYyl7InVzZSBz
dHJpY3QiO3ZhciBkPWEoIi4vdXRpbHMiKSxlPWEoIi4vc3VwcG9ydCIpLGY9IkFCQ0RFRkdISUpL
TE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89Ijtj
LmVuY29kZT1mdW5jdGlvbihhKXtmb3IodmFyIGIsYyxlLGcsaCxpLGosaz1bXSxsPTAsbT1hLmxl
bmd0aCxuPW0sbz0ic3RyaW5nIiE9PWQuZ2V0VHlwZU9mKGEpO2w8YS5sZW5ndGg7KW49bS1sLG8/
KGI9YVtsKytdLGM9bDxtP2FbbCsrXTowLGU9bDxtP2FbbCsrXTowKTooYj1hLmNoYXJDb2RlQXQo
bCsrKSxjPWw8bT9hLmNoYXJDb2RlQXQobCsrKTowLGU9bDxtP2EuY2hhckNvZGVBdChsKyspOjAp
LGc9Yj4+MixoPSgzJmIpPDw0fGM+PjQsaT1uPjE/KDE1JmMpPDwyfGU+PjY6NjQsaj1uPjI/NjMm
ZTo2NCxrLnB1c2goZi5jaGFyQXQoZykrZi5jaGFyQXQoaCkrZi5jaGFyQXQoaSkrZi5jaGFyQXQo
aikpO3JldHVybiBrLmpvaW4oIiIpfSxjLmRlY29kZT1mdW5jdGlvbihhKXt2YXIgYixjLGQsZyxo
LGksaixrPTAsbD0wLG09ImRhdGE6IjtpZihhLnN1YnN0cigwLG0ubGVuZ3RoKT09PW0pdGhyb3cg
bmV3IEVycm9yKCJJbnZhbGlkIGJhc2U2NCBpbnB1dCwgaXQgbG9va3MgbGlrZSBhIGRhdGEgdXJs
LiIpO2E9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7dmFyIG49MyphLmxlbmd0
aC80O2lmKGEuY2hhckF0KGEubGVuZ3RoLTEpPT09Zi5jaGFyQXQoNjQpJiZuLS0sYS5jaGFyQXQo
YS5sZW5ndGgtMik9PT1mLmNoYXJBdCg2NCkmJm4tLSxuJTEhPT0wKXRocm93IG5ldyBFcnJvcigi
SW52YWxpZCBiYXNlNjQgaW5wdXQsIGJhZCBjb250ZW50IGxlbmd0aC4iKTt2YXIgbztmb3Iobz1l
LnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoMHxuKTpuZXcgQXJyYXkoMHxuKTtrPGEubGVuZ3Ro
OylnPWYuaW5kZXhPZihhLmNoYXJBdChrKyspKSxoPWYuaW5kZXhPZihhLmNoYXJBdChrKyspKSxp
PWYuaW5kZXhPZihhLmNoYXJBdChrKyspKSxqPWYuaW5kZXhPZihhLmNoYXJBdChrKyspKSxiPWc8
PDJ8aD4+NCxjPSgxNSZoKTw8NHxpPj4yLGQ9KDMmaSk8PDZ8aixvW2wrK109Yiw2NCE9PWkmJihv
W2wrK109YyksNjQhPT1qJiYob1tsKytdPWQpO3JldHVybiBvfX0seyIuL3N1cHBvcnQiOjMwLCIu
L3V0aWxzIjozMn1dLDI6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChh
LGIsYyxkLGUpe3RoaXMuY29tcHJlc3NlZFNpemU9YSx0aGlzLnVuY29tcHJlc3NlZFNpemU9Yix0
aGlzLmNyYzMyPWMsdGhpcy5jb21wcmVzc2lvbj1kLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9ZX12
YXIgZT1hKCIuL2V4dGVybmFsIiksZj1hKCIuL3N0cmVhbS9EYXRhV29ya2VyIiksZz1hKCIuL3N0
cmVhbS9EYXRhTGVuZ3RoUHJvYmUiKSxoPWEoIi4vc3RyZWFtL0NyYzMyUHJvYmUiKSxnPWEoIi4v
c3RyZWFtL0RhdGFMZW5ndGhQcm9iZSIpO2QucHJvdG90eXBlPXtnZXRDb250ZW50V29ya2VyOmZ1
bmN0aW9uKCl7dmFyIGE9bmV3IGYoZS5Qcm9taXNlLnJlc29sdmUodGhpcy5jb21wcmVzc2VkQ29u
dGVudCkpLnBpcGUodGhpcy5jb21wcmVzc2lvbi51bmNvbXByZXNzV29ya2VyKCkpLnBpcGUobmV3
IGcoImRhdGFfbGVuZ3RoIikpLGI9dGhpcztyZXR1cm4gYS5vbigiZW5kIixmdW5jdGlvbigpe2lm
KHRoaXMuc3RyZWFtSW5mby5kYXRhX2xlbmd0aCE9PWIudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBu
ZXcgRXJyb3IoIkJ1ZyA6IHVuY29tcHJlc3NlZCBkYXRhIHNpemUgbWlzbWF0Y2giKX0pLGF9LGdl
dENvbXByZXNzZWRXb3JrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGYoZS5Qcm9taXNlLnJlc29s
dmUodGhpcy5jb21wcmVzc2VkQ29udGVudCkpLndpdGhTdHJlYW1JbmZvKCJjb21wcmVzc2VkU2l6
ZSIsdGhpcy5jb21wcmVzc2VkU2l6ZSkud2l0aFN0cmVhbUluZm8oInVuY29tcHJlc3NlZFNpemUi
LHRoaXMudW5jb21wcmVzc2VkU2l6ZSkud2l0aFN0cmVhbUluZm8oImNyYzMyIix0aGlzLmNyYzMy
KS53aXRoU3RyZWFtSW5mbygiY29tcHJlc3Npb24iLHRoaXMuY29tcHJlc3Npb24pfX0sZC5jcmVh
dGVXb3JrZXJGcm9tPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5waXBlKG5ldyBoKS5waXBlKG5l
dyBnKCJ1bmNvbXByZXNzZWRTaXplIikpLnBpcGUoYi5jb21wcmVzc1dvcmtlcihjKSkucGlwZShu
ZXcgZygiY29tcHJlc3NlZFNpemUiKSkud2l0aFN0cmVhbUluZm8oImNvbXByZXNzaW9uIixiKX0s
Yi5leHBvcnRzPWR9LHsiLi9leHRlcm5hbCI6NiwiLi9zdHJlYW0vQ3JjMzJQcm9iZSI6MjUsIi4v
c3RyZWFtL0RhdGFMZW5ndGhQcm9iZSI6MjYsIi4vc3RyZWFtL0RhdGFXb3JrZXIiOjI3fV0sMzpb
ZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1hKCIuL3N0cmVhbS9HZW5lcmljV29y
a2VyIik7Yy5TVE9SRT17bWFnaWM6IlwwXDAiLGNvbXByZXNzV29ya2VyOmZ1bmN0aW9uKGEpe3Jl
dHVybiBuZXcgZCgiU1RPUkUgY29tcHJlc3Npb24iKX0sdW5jb21wcmVzc1dvcmtlcjpmdW5jdGlv
bigpe3JldHVybiBuZXcgZCgiU1RPUkUgZGVjb21wcmVzc2lvbiIpfX0sYy5ERUZMQVRFPWEoIi4v
ZmxhdGUiKX0seyIuL2ZsYXRlIjo3LCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOH1dLDQ6W2Z1
bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZCgpe2Zvcih2YXIgYSxiPVtdLGM9
MDtjPDI1NjtjKyspe2E9Yztmb3IodmFyIGQ9MDtkPDg7ZCsrKWE9MSZhPzM5ODgyOTIzODReYT4+
PjE6YT4+PjE7YltjXT1hfXJldHVybiBifWZ1bmN0aW9uIGUoYSxiLGMsZCl7dmFyIGU9aCxmPWQr
YzthXj0tMTtmb3IodmFyIGc9ZDtnPGY7ZysrKWE9YT4+PjheZVsyNTUmKGFeYltnXSldO3JldHVy
biBhXi0xfWZ1bmN0aW9uIGYoYSxiLGMsZCl7dmFyIGU9aCxmPWQrYzthXj0tMTtmb3IodmFyIGc9
ZDtnPGY7ZysrKWE9YT4+PjheZVsyNTUmKGFeYi5jaGFyQ29kZUF0KGcpKV07cmV0dXJuIGFeLTF9
dmFyIGc9YSgiLi91dGlscyIpLGg9ZCgpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lmKCJ1bmRl
ZmluZWQiPT10eXBlb2YgYXx8IWEubGVuZ3RoKXJldHVybiAwO3ZhciBjPSJzdHJpbmciIT09Zy5n
ZXRUeXBlT2YoYSk7cmV0dXJuIGM/ZSgwfGIsYSxhLmxlbmd0aCwwKTpmKDB8YixhLGEubGVuZ3Ro
LDApfX0seyIuL3V0aWxzIjozMn1dLDU6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Yy5i
YXNlNjQ9ITEsYy5iaW5hcnk9ITEsYy5kaXI9ITEsYy5jcmVhdGVGb2xkZXJzPSEwLGMuZGF0ZT1u
dWxsLGMuY29tcHJlc3Npb249bnVsbCxjLmNvbXByZXNzaW9uT3B0aW9ucz1udWxsLGMuY29tbWVu
dD1udWxsLGMudW5peFBlcm1pc3Npb25zPW51bGwsYy5kb3NQZXJtaXNzaW9ucz1udWxsfSx7fV0s
NjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1udWxsO2Q9InVuZGVmaW5lZCIh
PXR5cGVvZiBQcm9taXNlP1Byb21pc2U6YSgibGllIiksYi5leHBvcnRzPXtQcm9taXNlOmR9fSx7
bGllOjU4fV0sNzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7
aC5jYWxsKHRoaXMsIkZsYXRlV29ya2VyLyIrYSksdGhpcy5fcGFrbz1udWxsLHRoaXMuX3Bha29B
Y3Rpb249YSx0aGlzLl9wYWtvT3B0aW9ucz1iLHRoaXMubWV0YT17fX12YXIgZT0idW5kZWZpbmVk
IiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1
bmRlZmluZWQiIT10eXBlb2YgVWludDMyQXJyYXksZj1hKCJwYWtvIiksZz1hKCIuL3V0aWxzIiks
aD1hKCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIiksaT1lPyJ1aW50OGFycmF5IjoiYXJyYXkiO2Mu
bWFnaWM9IlxiXDAiLGcuaW5oZXJpdHMoZCxoKSxkLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVu
Y3Rpb24oYSl7dGhpcy5tZXRhPWEubWV0YSxudWxsPT09dGhpcy5fcGFrbyYmdGhpcy5fY3JlYXRl
UGFrbygpLHRoaXMuX3Bha28ucHVzaChnLnRyYW5zZm9ybVRvKGksYS5kYXRhKSwhMSl9LGQucHJv
dG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aC5wcm90b3R5cGUuZmx1c2guY2FsbCh0aGlzKSxudWxs
PT09dGhpcy5fcGFrbyYmdGhpcy5fY3JlYXRlUGFrbygpLHRoaXMuX3Bha28ucHVzaChbXSwhMCl9
LGQucHJvdG90eXBlLmNsZWFuVXA9ZnVuY3Rpb24oKXtoLnByb3RvdHlwZS5jbGVhblVwLmNhbGwo
dGhpcyksdGhpcy5fcGFrbz1udWxsfSxkLnByb3RvdHlwZS5fY3JlYXRlUGFrbz1mdW5jdGlvbigp
e3RoaXMuX3Bha289bmV3IGZbdGhpcy5fcGFrb0FjdGlvbl0oe3JhdzohMCxsZXZlbDp0aGlzLl9w
YWtvT3B0aW9ucy5sZXZlbHx8LTF9KTt2YXIgYT10aGlzO3RoaXMuX3Bha28ub25EYXRhPWZ1bmN0
aW9uKGIpe2EucHVzaCh7ZGF0YTpiLG1ldGE6YS5tZXRhfSl9fSxjLmNvbXByZXNzV29ya2VyPWZ1
bmN0aW9uKGEpe3JldHVybiBuZXcgZCgiRGVmbGF0ZSIsYSl9LGMudW5jb21wcmVzc1dvcmtlcj1m
dW5jdGlvbigpe3JldHVybiBuZXcgZCgiSW5mbGF0ZSIse30pfX0seyIuL3N0cmVhbS9HZW5lcmlj
V29ya2VyIjoyOCwiLi91dGlscyI6MzIscGFrbzo1OX1dLDg6W2Z1bmN0aW9uKGEsYixjKXsidXNl
IHN0cmljdCI7ZnVuY3Rpb24gZChhLGIsYyxkKXtmLmNhbGwodGhpcywiWmlwRmlsZVdvcmtlciIp
LHRoaXMuYnl0ZXNXcml0dGVuPTAsdGhpcy56aXBDb21tZW50PWIsdGhpcy56aXBQbGF0Zm9ybT1j
LHRoaXMuZW5jb2RlRmlsZU5hbWU9ZCx0aGlzLnN0cmVhbUZpbGVzPWEsdGhpcy5hY2N1bXVsYXRl
PSExLHRoaXMuY29udGVudEJ1ZmZlcj1bXSx0aGlzLmRpclJlY29yZHM9W10sdGhpcy5jdXJyZW50
U291cmNlT2Zmc2V0PTAsdGhpcy5lbnRyaWVzQ291bnQ9MCx0aGlzLmN1cnJlbnRGaWxlPW51bGws
dGhpcy5fc291cmNlcz1bXX12YXIgZT1hKCIuLi91dGlscyIpLGY9YSgiLi4vc3RyZWFtL0dlbmVy
aWNXb3JrZXIiKSxnPWEoIi4uL3V0ZjgiKSxoPWEoIi4uL2NyYzMyIiksaT1hKCIuLi9zaWduYXR1
cmUiKSxqPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD0iIjtmb3IoYz0wO2M8YjtjKyspZCs9U3RyaW5n
LmZyb21DaGFyQ29kZSgyNTUmYSksYT4+Pj04O3JldHVybiBkfSxrPWZ1bmN0aW9uKGEsYil7dmFy
IGM9YTtyZXR1cm4gYXx8KGM9Yj8xNjg5MzozMzIwNCksKDY1NTM1JmMpPDwxNn0sbD1mdW5jdGlv
bihhLGIpe3JldHVybiA2MyYoYXx8MCl9LG09ZnVuY3Rpb24oYSxiLGMsZCxmLG0pe3ZhciBuLG8s
cD1hLmZpbGUscT1hLmNvbXByZXNzaW9uLHI9bSE9PWcudXRmOGVuY29kZSxzPWUudHJhbnNmb3Jt
VG8oInN0cmluZyIsbShwLm5hbWUpKSx0PWUudHJhbnNmb3JtVG8oInN0cmluZyIsZy51dGY4ZW5j
b2RlKHAubmFtZSkpLHU9cC5jb21tZW50LHY9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIixtKHUpKSx3
PWUudHJhbnNmb3JtVG8oInN0cmluZyIsZy51dGY4ZW5jb2RlKHUpKSx4PXQubGVuZ3RoIT09cC5u
YW1lLmxlbmd0aCx5PXcubGVuZ3RoIT09dS5sZW5ndGgsej0iIixBPSIiLEI9IiIsQz1wLmRpcixE
PXAuZGF0ZSxFPXtjcmMzMjowLGNvbXByZXNzZWRTaXplOjAsdW5jb21wcmVzc2VkU2l6ZTowfTti
JiYhY3x8KEUuY3JjMzI9YS5jcmMzMixFLmNvbXByZXNzZWRTaXplPWEuY29tcHJlc3NlZFNpemUs
RS51bmNvbXByZXNzZWRTaXplPWEudW5jb21wcmVzc2VkU2l6ZSk7dmFyIEY9MDtiJiYoRnw9OCks
cnx8IXgmJiF5fHwoRnw9MjA0OCk7dmFyIEc9MCxIPTA7QyYmKEd8PTE2KSwiVU5JWCI9PT1mPyhI
PTc5OCxHfD1rKHAudW5peFBlcm1pc3Npb25zLEMpKTooSD0yMCxHfD1sKHAuZG9zUGVybWlzc2lv
bnMsQykpLG49RC5nZXRVVENIb3VycygpLG48PD02LG58PUQuZ2V0VVRDTWludXRlcygpLG48PD01
LG58PUQuZ2V0VVRDU2Vjb25kcygpLzIsbz1ELmdldFVUQ0Z1bGxZZWFyKCktMTk4MCxvPDw9NCxv
fD1ELmdldFVUQ01vbnRoKCkrMSxvPDw9NSxvfD1ELmdldFVUQ0RhdGUoKSx4JiYoQT1qKDEsMSkr
aihoKHMpLDQpK3Qseis9InVwIitqKEEubGVuZ3RoLDIpK0EpLHkmJihCPWooMSwxKStqKGgodiks
NCkrdyx6Kz0idWMiK2ooQi5sZW5ndGgsMikrQik7dmFyIEk9IiI7SSs9IlxuXDAiLEkrPWooRiwy
KSxJKz1xLm1hZ2ljLEkrPWoobiwyKSxJKz1qKG8sMiksSSs9aihFLmNyYzMyLDQpLEkrPWooRS5j
b21wcmVzc2VkU2l6ZSw0KSxJKz1qKEUudW5jb21wcmVzc2VkU2l6ZSw0KSxJKz1qKHMubGVuZ3Ro
LDIpLEkrPWooei5sZW5ndGgsMik7dmFyIEo9aS5MT0NBTF9GSUxFX0hFQURFUitJK3MreixLPWku
Q0VOVFJBTF9GSUxFX0hFQURFUitqKEgsMikrSStqKHYubGVuZ3RoLDIpKyJcMFwwXDBcMCIraihH
LDQpK2ooZCw0KStzK3ordjtyZXR1cm57ZmlsZVJlY29yZDpKLGRpclJlY29yZDpLfX0sbj1mdW5j
dGlvbihhLGIsYyxkLGYpe3ZhciBnPSIiLGg9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIixmKGQpKTty
ZXR1cm4gZz1pLkNFTlRSQUxfRElSRUNUT1JZX0VORCsiXDBcMFwwXDAiK2ooYSwyKStqKGEsMikr
aihiLDQpK2ooYyw0KStqKGgubGVuZ3RoLDIpK2h9LG89ZnVuY3Rpb24oYSl7dmFyIGI9IiI7cmV0
dXJuIGI9aS5EQVRBX0RFU0NSSVBUT1IraihhLmNyYzMyLDQpK2ooYS5jb21wcmVzc2VkU2l6ZSw0
KStqKGEudW5jb21wcmVzc2VkU2l6ZSw0KX07ZS5pbmhlcml0cyhkLGYpLGQucHJvdG90eXBlLnB1
c2g9ZnVuY3Rpb24oYSl7dmFyIGI9YS5tZXRhLnBlcmNlbnR8fDAsYz10aGlzLmVudHJpZXNDb3Vu
dCxkPXRoaXMuX3NvdXJjZXMubGVuZ3RoO3RoaXMuYWNjdW11bGF0ZT90aGlzLmNvbnRlbnRCdWZm
ZXIucHVzaChhKToodGhpcy5ieXRlc1dyaXR0ZW4rPWEuZGF0YS5sZW5ndGgsZi5wcm90b3R5cGUu
cHVzaC5jYWxsKHRoaXMse2RhdGE6YS5kYXRhLG1ldGE6e2N1cnJlbnRGaWxlOnRoaXMuY3VycmVu
dEZpbGUscGVyY2VudDpjPyhiKzEwMCooYy1kLTEpKS9jOjEwMH19KSl9LGQucHJvdG90eXBlLm9w
ZW5lZFNvdXJjZT1mdW5jdGlvbihhKXt0aGlzLmN1cnJlbnRTb3VyY2VPZmZzZXQ9dGhpcy5ieXRl
c1dyaXR0ZW4sdGhpcy5jdXJyZW50RmlsZT1hLmZpbGUubmFtZTt2YXIgYj10aGlzLnN0cmVhbUZp
bGVzJiYhYS5maWxlLmRpcjtpZihiKXt2YXIgYz1tKGEsYiwhMSx0aGlzLmN1cnJlbnRTb3VyY2VP
ZmZzZXQsdGhpcy56aXBQbGF0Zm9ybSx0aGlzLmVuY29kZUZpbGVOYW1lKTt0aGlzLnB1c2goe2Rh
dGE6Yy5maWxlUmVjb3JkLG1ldGE6e3BlcmNlbnQ6MH19KX1lbHNlIHRoaXMuYWNjdW11bGF0ZT0h
MH0sZC5wcm90b3R5cGUuY2xvc2VkU291cmNlPWZ1bmN0aW9uKGEpe3RoaXMuYWNjdW11bGF0ZT0h
MTt2YXIgYj10aGlzLnN0cmVhbUZpbGVzJiYhYS5maWxlLmRpcixjPW0oYSxiLCEwLHRoaXMuY3Vy
cmVudFNvdXJjZU9mZnNldCx0aGlzLnppcFBsYXRmb3JtLHRoaXMuZW5jb2RlRmlsZU5hbWUpO2lm
KHRoaXMuZGlyUmVjb3Jkcy5wdXNoKGMuZGlyUmVjb3JkKSxiKXRoaXMucHVzaCh7ZGF0YTpvKGEp
LG1ldGE6e3BlcmNlbnQ6MTAwfX0pO2Vsc2UgZm9yKHRoaXMucHVzaCh7ZGF0YTpjLmZpbGVSZWNv
cmQsbWV0YTp7cGVyY2VudDowfX0pO3RoaXMuY29udGVudEJ1ZmZlci5sZW5ndGg7KXRoaXMucHVz
aCh0aGlzLmNvbnRlbnRCdWZmZXIuc2hpZnQoKSk7dGhpcy5jdXJyZW50RmlsZT1udWxsfSxkLnBy
b3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmJ5dGVzV3JpdHRlbixiPTA7
Yjx0aGlzLmRpclJlY29yZHMubGVuZ3RoO2IrKyl0aGlzLnB1c2goe2RhdGE6dGhpcy5kaXJSZWNv
cmRzW2JdLG1ldGE6e3BlcmNlbnQ6MTAwfX0pO3ZhciBjPXRoaXMuYnl0ZXNXcml0dGVuLWEsZD1u
KHRoaXMuZGlyUmVjb3Jkcy5sZW5ndGgsYyxhLHRoaXMuemlwQ29tbWVudCx0aGlzLmVuY29kZUZp
bGVOYW1lKTt0aGlzLnB1c2goe2RhdGE6ZCxtZXRhOntwZXJjZW50OjEwMH19KX0sZC5wcm90b3R5
cGUucHJlcGFyZU5leHRTb3VyY2U9ZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXRoaXMuX3NvdXJj
ZXMuc2hpZnQoKSx0aGlzLm9wZW5lZFNvdXJjZSh0aGlzLnByZXZpb3VzLnN0cmVhbUluZm8pLHRo
aXMuaXNQYXVzZWQ/dGhpcy5wcmV2aW91cy5wYXVzZSgpOnRoaXMucHJldmlvdXMucmVzdW1lKCl9
LGQucHJvdG90eXBlLnJlZ2lzdGVyUHJldmlvdXM9ZnVuY3Rpb24oYSl7dGhpcy5fc291cmNlcy5w
dXNoKGEpO3ZhciBiPXRoaXM7cmV0dXJuIGEub24oImRhdGEiLGZ1bmN0aW9uKGEpe2IucHJvY2Vz
c0NodW5rKGEpfSksYS5vbigiZW5kIixmdW5jdGlvbigpe2IuY2xvc2VkU291cmNlKGIucHJldmlv
dXMuc3RyZWFtSW5mbyksYi5fc291cmNlcy5sZW5ndGg/Yi5wcmVwYXJlTmV4dFNvdXJjZSgpOmIu
ZW5kKCl9KSxhLm9uKCJlcnJvciIsZnVuY3Rpb24oYSl7Yi5lcnJvcihhKX0pLHRoaXN9LGQucHJv
dG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3JldHVybiEhZi5wcm90b3R5cGUucmVzdW1lLmNhbGwo
dGhpcykmJighdGhpcy5wcmV2aW91cyYmdGhpcy5fc291cmNlcy5sZW5ndGg/KHRoaXMucHJlcGFy
ZU5leHRTb3VyY2UoKSwhMCk6dGhpcy5wcmV2aW91c3x8dGhpcy5fc291cmNlcy5sZW5ndGh8fHRo
aXMuZ2VuZXJhdGVkRXJyb3I/dm9pZCAwOih0aGlzLmVuZCgpLCEwKSl9LGQucHJvdG90eXBlLmVy
cm9yPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX3NvdXJjZXM7aWYoIWYucHJvdG90eXBlLmVycm9y
LmNhbGwodGhpcyxhKSlyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl0cnl7Yltj
XS5lcnJvcihhKX1jYXRjaChhKXt9cmV0dXJuITB9LGQucHJvdG90eXBlLmxvY2s9ZnVuY3Rpb24o
KXtmLnByb3RvdHlwZS5sb2NrLmNhbGwodGhpcyk7Zm9yKHZhciBhPXRoaXMuX3NvdXJjZXMsYj0w
O2I8YS5sZW5ndGg7YisrKWFbYl0ubG9jaygpfSxiLmV4cG9ydHM9ZH0seyIuLi9jcmMzMiI6NCwi
Li4vc2lnbmF0dXJlIjoyMywiLi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiOjI4LCIuLi91dGY4Ijoz
MSwiLi4vdXRpbHMiOjMyfV0sOTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1h
KCIuLi9jb21wcmVzc2lvbnMiKSxlPWEoIi4vWmlwRmlsZVdvcmtlciIpLGY9ZnVuY3Rpb24oYSxi
KXt2YXIgYz1hfHxiLGU9ZFtjXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoYysiIGlzIG5vdCBhIHZh
bGlkIGNvbXByZXNzaW9uIG1ldGhvZCAhIik7cmV0dXJuIGV9O2MuZ2VuZXJhdGVXb3JrZXI9ZnVu
Y3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBlKGIuc3RyZWFtRmlsZXMsYyxiLnBsYXRmb3JtLGIuZW5j
b2RlRmlsZU5hbWUpLGc9MDt0cnl7YS5mb3JFYWNoKGZ1bmN0aW9uKGEsYyl7ZysrO3ZhciBlPWYo
Yy5vcHRpb25zLmNvbXByZXNzaW9uLGIuY29tcHJlc3Npb24pLGg9Yy5vcHRpb25zLmNvbXByZXNz
aW9uT3B0aW9uc3x8Yi5jb21wcmVzc2lvbk9wdGlvbnN8fHt9LGk9Yy5kaXIsaj1jLmRhdGU7Yy5f
Y29tcHJlc3NXb3JrZXIoZSxoKS53aXRoU3RyZWFtSW5mbygiZmlsZSIse25hbWU6YSxkaXI6aSxk
YXRlOmosY29tbWVudDpjLmNvbW1lbnR8fCIiLHVuaXhQZXJtaXNzaW9uczpjLnVuaXhQZXJtaXNz
aW9ucyxkb3NQZXJtaXNzaW9uczpjLmRvc1Blcm1pc3Npb25zfSkucGlwZShkKX0pLGQuZW50cmll
c0NvdW50PWd9Y2F0Y2goaCl7ZC5lcnJvcihoKX1yZXR1cm4gZH19LHsiLi4vY29tcHJlc3Npb25z
IjozLCIuL1ppcEZpbGVXb3JrZXIiOjh9XSwxMDpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0
IjtmdW5jdGlvbiBkKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgZCkpcmV0dXJuIG5ldyBkO2lmKGFy
Z3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUaGUgY29uc3RydWN0b3Igd2l0aCBwYXJh
bWV0ZXJzIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVw
Z3JhZGUgZ3VpZGUuIik7dGhpcy5maWxlcz17fSx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLnJvb3Q9
IiIsdGhpcy5jbG9uZT1mdW5jdGlvbigpe3ZhciBhPW5ldyBkO2Zvcih2YXIgYiBpbiB0aGlzKSJm
dW5jdGlvbiIhPXR5cGVvZiB0aGlzW2JdJiYoYVtiXT10aGlzW2JdKTtyZXR1cm4gYX19ZC5wcm90
b3R5cGU9YSgiLi9vYmplY3QiKSxkLnByb3RvdHlwZS5sb2FkQXN5bmM9YSgiLi9sb2FkIiksZC5z
dXBwb3J0PWEoIi4vc3VwcG9ydCIpLGQuZGVmYXVsdHM9YSgiLi9kZWZhdWx0cyIpLGQudmVyc2lv
bj0iMy4xLjUiLGQubG9hZEFzeW5jPWZ1bmN0aW9uKGEsYil7cmV0dXJuKG5ldyBkKS5sb2FkQXN5
bmMoYSxiKX0sZC5leHRlcm5hbD1hKCIuL2V4dGVybmFsIiksYi5leHBvcnRzPWR9LHsiLi9kZWZh
dWx0cyI6NSwiLi9leHRlcm5hbCI6NiwiLi9sb2FkIjoxMSwiLi9vYmplY3QiOjE1LCIuL3N1cHBv
cnQiOjMwfV0sMTE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXty
ZXR1cm4gbmV3IGYuUHJvbWlzZShmdW5jdGlvbihiLGMpe3ZhciBkPWEuZGVjb21wcmVzc2VkLmdl
dENvbnRlbnRXb3JrZXIoKS5waXBlKG5ldyBpKTtkLm9uKCJlcnJvciIsZnVuY3Rpb24oYSl7Yyhh
KX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7ZC5zdHJlYW1JbmZvLmNyYzMyIT09YS5kZWNvbXByZXNz
ZWQuY3JjMzI/YyhuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBDUkMzMiBtaXNtYXRjaCIpKTpi
KCl9KS5yZXN1bWUoKX0pfXZhciBlPWEoIi4vdXRpbHMiKSxmPWEoIi4vZXh0ZXJuYWwiKSxnPWEo
Ii4vdXRmOCIpLGU9YSgiLi91dGlscyIpLGg9YSgiLi96aXBFbnRyaWVzIiksaT1hKCIuL3N0cmVh
bS9DcmMzMlByb2JlIiksaj1hKCIuL25vZGVqc1V0aWxzIik7Yi5leHBvcnRzPWZ1bmN0aW9uKGEs
Yil7dmFyIGM9dGhpcztyZXR1cm4gYj1lLmV4dGVuZChifHx7fSx7YmFzZTY0OiExLGNoZWNrQ1JD
MzI6ITEsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiExLGNyZWF0ZUZvbGRlcnM6ITEsZGVjb2RlRmls
ZU5hbWU6Zy51dGY4ZGVjb2RlfSksai5pc05vZGUmJmouaXNTdHJlYW0oYSk/Zi5Qcm9taXNlLnJl
amVjdChuZXcgRXJyb3IoIkpTWmlwIGNhbid0IGFjY2VwdCBhIHN0cmVhbSB3aGVuIGxvYWRpbmcg
YSB6aXAgZmlsZS4iKSk6ZS5wcmVwYXJlQ29udGVudCgidGhlIGxvYWRlZCB6aXAgZmlsZSIsYSwh
MCxiLm9wdGltaXplZEJpbmFyeVN0cmluZyxiLmJhc2U2NCkudGhlbihmdW5jdGlvbihhKXt2YXIg
Yz1uZXcgaChiKTtyZXR1cm4gYy5sb2FkKGEpLGN9KS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBjPVtm
LlByb21pc2UucmVzb2x2ZShhKV0sZT1hLmZpbGVzO2lmKGIuY2hlY2tDUkMzMilmb3IodmFyIGc9
MDtnPGUubGVuZ3RoO2crKyljLnB1c2goZChlW2ddKSk7cmV0dXJuIGYuUHJvbWlzZS5hbGwoYyl9
KS50aGVuKGZ1bmN0aW9uKGEpe2Zvcih2YXIgZD1hLnNoaWZ0KCksZT1kLmZpbGVzLGY9MDtmPGUu
bGVuZ3RoO2YrKyl7dmFyIGc9ZVtmXTtjLmZpbGUoZy5maWxlTmFtZVN0cixnLmRlY29tcHJlc3Nl
ZCx7YmluYXJ5OiEwLG9wdGltaXplZEJpbmFyeVN0cmluZzohMCxkYXRlOmcuZGF0ZSxkaXI6Zy5k
aXIsY29tbWVudDpnLmZpbGVDb21tZW50U3RyLmxlbmd0aD9nLmZpbGVDb21tZW50U3RyOm51bGws
dW5peFBlcm1pc3Npb25zOmcudW5peFBlcm1pc3Npb25zLGRvc1Blcm1pc3Npb25zOmcuZG9zUGVy
bWlzc2lvbnMsY3JlYXRlRm9sZGVyczpiLmNyZWF0ZUZvbGRlcnN9KX1yZXR1cm4gZC56aXBDb21t
ZW50Lmxlbmd0aCYmKGMuY29tbWVudD1kLnppcENvbW1lbnQpLGN9KX19LHsiLi9leHRlcm5hbCI6
NiwiLi9ub2RlanNVdGlscyI6MTQsIi4vc3RyZWFtL0NyYzMyUHJvYmUiOjI1LCIuL3V0ZjgiOjMx
LCIuL3V0aWxzIjozMiwiLi96aXBFbnRyaWVzIjozM31dLDEyOltmdW5jdGlvbihhLGIsYyl7InVz
ZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtmLmNhbGwodGhpcywiTm9kZWpzIHN0cmVhbSBpbnB1
dCBhZGFwdGVyIGZvciAiK2EpLHRoaXMuX3Vwc3RyZWFtRW5kZWQ9ITEsdGhpcy5fYmluZFN0cmVh
bShiKX12YXIgZT1hKCIuLi91dGlscyIpLGY9YSgiLi4vc3RyZWFtL0dlbmVyaWNXb3JrZXIiKTtl
LmluaGVyaXRzKGQsZiksZC5wcm90b3R5cGUuX2JpbmRTdHJlYW09ZnVuY3Rpb24oYSl7dmFyIGI9
dGhpczt0aGlzLl9zdHJlYW09YSxhLnBhdXNlKCksYS5vbigiZGF0YSIsZnVuY3Rpb24oYSl7Yi5w
dXNoKHtkYXRhOmEsbWV0YTp7cGVyY2VudDowfX0pfSkub24oImVycm9yIixmdW5jdGlvbihhKXti
LmlzUGF1c2VkP3RoaXMuZ2VuZXJhdGVkRXJyb3I9YTpiLmVycm9yKGEpfSkub24oImVuZCIsZnVu
Y3Rpb24oKXtiLmlzUGF1c2VkP2IuX3Vwc3RyZWFtRW5kZWQ9ITA6Yi5lbmQoKX0pfSxkLnByb3Rv
dHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiEhZi5wcm90b3R5cGUucGF1c2UuY2FsbCh0aGlz
KSYmKHRoaXMuX3N0cmVhbS5wYXVzZSgpLCEwKX0sZC5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9u
KCl7cmV0dXJuISFmLnByb3RvdHlwZS5yZXN1bWUuY2FsbCh0aGlzKSYmKHRoaXMuX3Vwc3RyZWFt
RW5kZWQ/dGhpcy5lbmQoKTp0aGlzLl9zdHJlYW0ucmVzdW1lKCksITApfSxiLmV4cG9ydHM9ZH0s
eyIuLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4uL3V0aWxzIjozMn1dLDEzOltmdW5jdGlv
bihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiLGMpe2UuY2FsbCh0aGlzLGIpLHRo
aXMuX2hlbHBlcj1hO3ZhciBkPXRoaXM7YS5vbigiZGF0YSIsZnVuY3Rpb24oYSxiKXtkLnB1c2go
YSl8fGQuX2hlbHBlci5wYXVzZSgpLGMmJmMoYil9KS5vbigiZXJyb3IiLGZ1bmN0aW9uKGEpe2Qu
ZW1pdCgiZXJyb3IiLGEpfSkub24oImVuZCIsZnVuY3Rpb24oKXtkLnB1c2gobnVsbCl9KX12YXIg
ZT1hKCJyZWFkYWJsZS1zdHJlYW0iKS5SZWFkYWJsZSxmPWEoIi4uL3V0aWxzIik7Zi5pbmhlcml0
cyhkLGUpLGQucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKCl7dGhpcy5faGVscGVyLnJlc3VtZSgp
fSxiLmV4cG9ydHM9ZH0seyIuLi91dGlscyI6MzIsInJlYWRhYmxlLXN0cmVhbSI6MTZ9XSwxNDpb
ZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9e2lzTm9kZToidW5kZWZpbmVk
IiE9dHlwZW9mIEJ1ZmZlcixuZXdCdWZmZXJGcm9tOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBC
dWZmZXIoYSxiKX0sYWxsb2NCdWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIEJ1ZmZlci5hbGxvYz9C
dWZmZXIuYWxsb2MoYSk6bmV3IEJ1ZmZlcihhKX0saXNCdWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJu
IEJ1ZmZlci5pc0J1ZmZlcihhKX0saXNTdHJlYW06ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJiJmdW5j
dGlvbiI9PXR5cGVvZiBhLm9uJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5wYXVzZSYmImZ1bmN0aW9u
Ij09dHlwZW9mIGEucmVzdW1lfX19LHt9XSwxNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0
IjtmdW5jdGlvbiBkKGEpe3JldHVybiJbb2JqZWN0IFJlZ0V4cF0iPT09T2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKGEpfXZhciBlPWEoIi4vdXRmOCIpLGY9YSgiLi91dGlscyIpLGc9YSgi
Li9zdHJlYW0vR2VuZXJpY1dvcmtlciIpLGg9YSgiLi9zdHJlYW0vU3RyZWFtSGVscGVyIiksaT1h
KCIuL2RlZmF1bHRzIiksaj1hKCIuL2NvbXByZXNzZWRPYmplY3QiKSxrPWEoIi4vemlwT2JqZWN0
IiksbD1hKCIuL2dlbmVyYXRlIiksbT1hKCIuL25vZGVqc1V0aWxzIiksbj1hKCIuL25vZGVqcy9O
b2RlanNTdHJlYW1JbnB1dEFkYXB0ZXIiKSxvPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPWYuZ2V0
VHlwZU9mKGIpLGg9Zi5leHRlbmQoY3x8e30saSk7aC5kYXRlPWguZGF0ZXx8bmV3IERhdGUsbnVs
bCE9PWguY29tcHJlc3Npb24mJihoLmNvbXByZXNzaW9uPWguY29tcHJlc3Npb24udG9VcHBlckNh
c2UoKSksInN0cmluZyI9PXR5cGVvZiBoLnVuaXhQZXJtaXNzaW9ucyYmKGgudW5peFBlcm1pc3Np
b25zPXBhcnNlSW50KGgudW5peFBlcm1pc3Npb25zLDgpKSxoLnVuaXhQZXJtaXNzaW9ucyYmMTYz
ODQmaC51bml4UGVybWlzc2lvbnMmJihoLmRpcj0hMCksaC5kb3NQZXJtaXNzaW9ucyYmMTYmaC5k
b3NQZXJtaXNzaW9ucyYmKGguZGlyPSEwKSxoLmRpciYmKGE9cShhKSksaC5jcmVhdGVGb2xkZXJz
JiYoZD1wKGEpKSYmci5jYWxsKHRoaXMsZCwhMCk7dmFyIGw9InN0cmluZyI9PT1lJiZoLmJpbmFy
eT09PSExJiZoLmJhc2U2ND09PSExO2MmJiJ1bmRlZmluZWQiIT10eXBlb2YgYy5iaW5hcnl8fCho
LmJpbmFyeT0hbCk7dmFyIG89YiBpbnN0YW5jZW9mIGomJjA9PT1iLnVuY29tcHJlc3NlZFNpemU7
KG98fGguZGlyfHwhYnx8MD09PWIubGVuZ3RoKSYmKGguYmFzZTY0PSExLGguYmluYXJ5PSEwLGI9
IiIsaC5jb21wcmVzc2lvbj0iU1RPUkUiLGU9InN0cmluZyIpO3ZhciBzPW51bGw7cz1iIGluc3Rh
bmNlb2Yganx8YiBpbnN0YW5jZW9mIGc/YjptLmlzTm9kZSYmbS5pc1N0cmVhbShiKT9uZXcgbihh
LGIpOmYucHJlcGFyZUNvbnRlbnQoYSxiLGguYmluYXJ5LGgub3B0aW1pemVkQmluYXJ5U3RyaW5n
LGguYmFzZTY0KTt2YXIgdD1uZXcgayhhLHMsaCk7dGhpcy5maWxlc1thXT10fSxwPWZ1bmN0aW9u
KGEpeyIvIj09PWEuc2xpY2UoLTEpJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpKTt2YXIg
Yj1hLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIGI+MD9hLnN1YnN0cmluZygwLGIpOiIifSxxPWZ1
bmN0aW9uKGEpe3JldHVybiIvIiE9PWEuc2xpY2UoLTEpJiYoYSs9Ii8iKSxhfSxyPWZ1bmN0aW9u
KGEsYil7cmV0dXJuIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6aS5jcmVhdGVGb2xkZXJzLGE9
cShhKSx0aGlzLmZpbGVzW2FdfHxvLmNhbGwodGhpcyxhLG51bGwse2RpcjohMCxjcmVhdGVGb2xk
ZXJzOmJ9KSx0aGlzLmZpbGVzW2FdfSxzPXtsb2FkOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9y
KCJUaGlzIG1ldGhvZCBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlwIDMuMCwgcGxlYXNlIGNoZWNr
IHRoZSB1cGdyYWRlIGd1aWRlLiIpfSxmb3JFYWNoOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZDtmb3Io
YiBpbiB0aGlzLmZpbGVzKXRoaXMuZmlsZXMuaGFzT3duUHJvcGVydHkoYikmJihkPXRoaXMuZmls
ZXNbYl0sYz1iLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsYi5sZW5ndGgpLGMmJmIuc2xpY2UoMCx0
aGlzLnJvb3QubGVuZ3RoKT09PXRoaXMucm9vdCYmYShjLGQpKX0sZmlsdGVyOmZ1bmN0aW9uKGEp
e3ZhciBiPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oYyxkKXthKGMsZCkmJmIucHVz
aChkKX0pLGJ9LGZpbGU6ZnVuY3Rpb24oYSxiLGMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtp
ZihkKGEpKXt2YXIgZT1hO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiFi
LmRpciYmZS50ZXN0KGEpfSl9dmFyIGY9dGhpcy5maWxlc1t0aGlzLnJvb3QrYV07cmV0dXJuIGYm
JiFmLmRpcj9mOm51bGx9cmV0dXJuIGE9dGhpcy5yb290K2Esby5jYWxsKHRoaXMsYSxiLGMpLHRo
aXN9LGZvbGRlcjpmdW5jdGlvbihhKXtpZighYSlyZXR1cm4gdGhpcztpZihkKGEpKXJldHVybiB0
aGlzLmZpbHRlcihmdW5jdGlvbihiLGMpe3JldHVybiBjLmRpciYmYS50ZXN0KGIpfSk7dmFyIGI9
dGhpcy5yb290K2EsYz1yLmNhbGwodGhpcyxiKSxlPXRoaXMuY2xvbmUoKTtyZXR1cm4gZS5yb290
PWMubmFtZSxlfSxyZW1vdmU6ZnVuY3Rpb24oYSl7YT10aGlzLnJvb3QrYTt2YXIgYj10aGlzLmZp
bGVzW2FdO2lmKGJ8fCgiLyIhPT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj10aGlzLmZpbGVzW2Fd
KSxiJiYhYi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbYV07ZWxzZSBmb3IodmFyIGM9dGhpcy5maWx0
ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5uYW1lLnNsaWNlKDAsYS5sZW5ndGgpPT09YX0pLGQ9
MDtkPGMubGVuZ3RoO2QrKylkZWxldGUgdGhpcy5maWxlc1tjW2RdLm5hbWVdO3JldHVybiB0aGlz
fSxnZW5lcmF0ZTpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlRoaXMgbWV0aG9kIGhhcyBi
ZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUu
Iil9LGdlbmVyYXRlSW50ZXJuYWxTdHJlYW06ZnVuY3Rpb24oYSl7dmFyIGIsYz17fTt0cnl7aWYo
Yz1mLmV4dGVuZChhfHx7fSx7c3RyZWFtRmlsZXM6ITEsY29tcHJlc3Npb246IlNUT1JFIixjb21w
cmVzc2lvbk9wdGlvbnM6bnVsbCx0eXBlOiIiLHBsYXRmb3JtOiJET1MiLGNvbW1lbnQ6bnVsbCxt
aW1lVHlwZToiYXBwbGljYXRpb24vemlwIixlbmNvZGVGaWxlTmFtZTplLnV0ZjhlbmNvZGV9KSxj
LnR5cGU9Yy50eXBlLnRvTG93ZXJDYXNlKCksYy5jb21wcmVzc2lvbj1jLmNvbXByZXNzaW9uLnRv
VXBwZXJDYXNlKCksImJpbmFyeXN0cmluZyI9PT1jLnR5cGUmJihjLnR5cGU9InN0cmluZyIpLCFj
LnR5cGUpdGhyb3cgbmV3IEVycm9yKCJObyBvdXRwdXQgdHlwZSBzcGVjaWZpZWQuIik7Zi5jaGVj
a1N1cHBvcnQoYy50eXBlKSwiZGFyd2luIiE9PWMucGxhdGZvcm0mJiJmcmVlYnNkIiE9PWMucGxh
dGZvcm0mJiJsaW51eCIhPT1jLnBsYXRmb3JtJiYic3Vub3MiIT09Yy5wbGF0Zm9ybXx8KGMucGxh
dGZvcm09IlVOSVgiKSwid2luMzIiPT09Yy5wbGF0Zm9ybSYmKGMucGxhdGZvcm09IkRPUyIpO3Zh
ciBkPWMuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIjtiPWwuZ2VuZXJhdGVXb3JrZXIodGhpcyxj
LGQpfWNhdGNoKGkpe2I9bmV3IGcoImVycm9yIiksYi5lcnJvcihpKX1yZXR1cm4gbmV3IGgoYixj
LnR5cGV8fCJzdHJpbmciLGMubWltZVR5cGUpfSxnZW5lcmF0ZUFzeW5jOmZ1bmN0aW9uKGEsYil7
cmV0dXJuIHRoaXMuZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbShhKS5hY2N1bXVsYXRlKGIpfSxnZW5l
cmF0ZU5vZGVTdHJlYW06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1hfHx7fSxhLnR5cGV8fChhLnR5
cGU9Im5vZGVidWZmZXIiKSx0aGlzLmdlbmVyYXRlSW50ZXJuYWxTdHJlYW0oYSkudG9Ob2RlanNT
dHJlYW0oYil9fTtiLmV4cG9ydHM9c30seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vZGVmYXVs
dHMiOjUsIi4vZ2VuZXJhdGUiOjksIi4vbm9kZWpzL05vZGVqc1N0cmVhbUlucHV0QWRhcHRlciI6
MTIsIi4vbm9kZWpzVXRpbHMiOjE0LCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi9zdHJl
YW0vU3RyZWFtSGVscGVyIjoyOSwiLi91dGY4IjozMSwiLi91dGlscyI6MzIsIi4vemlwT2JqZWN0
IjozNX1dLDE2OltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPWEoInN0cmVhbSIpfSx7c3RyZWFt
OnZvaWQgMH1dLDE3OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7
ZS5jYWxsKHRoaXMsYSk7Zm9yKHZhciBiPTA7Yjx0aGlzLmRhdGEubGVuZ3RoO2IrKylhW2JdPTI1
NSZhW2JdfXZhciBlPWEoIi4vRGF0YVJlYWRlciIpLGY9YSgiLi4vdXRpbHMiKTtmLmluaGVyaXRz
KGQsZSksZC5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGFbdGhp
cy56ZXJvK2FdfSxkLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihhKXtm
b3IodmFyIGI9YS5jaGFyQ29kZUF0KDApLGM9YS5jaGFyQ29kZUF0KDEpLGQ9YS5jaGFyQ29kZUF0
KDIpLGU9YS5jaGFyQ29kZUF0KDMpLGY9dGhpcy5sZW5ndGgtNDtmPj0wOy0tZilpZih0aGlzLmRh
dGFbZl09PT1iJiZ0aGlzLmRhdGFbZisxXT09PWMmJnRoaXMuZGF0YVtmKzJdPT09ZCYmdGhpcy5k
YXRhW2YrM109PT1lKXJldHVybiBmLXRoaXMuemVybztyZXR1cm4tMX0sZC5wcm90b3R5cGUucmVh
ZEFuZENoZWNrU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe3ZhciBiPWEuY2hhckNvZGVBdCgwKSxjPWEu
Y2hhckNvZGVBdCgxKSxkPWEuY2hhckNvZGVBdCgyKSxlPWEuY2hhckNvZGVBdCgzKSxmPXRoaXMu
cmVhZERhdGEoNCk7cmV0dXJuIGI9PT1mWzBdJiZjPT09ZlsxXSYmZD09PWZbMl0mJmU9PT1mWzNd
fSxkLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXtpZih0aGlzLmNoZWNrT2Zmc2V0KGEp
LDA9PT1hKXJldHVybltdO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLnplcm8rdGhpcy5pbmRl
eCx0aGlzLnplcm8rdGhpcy5pbmRleCthKTtyZXR1cm4gdGhpcy5pbmRleCs9YSxifSxiLmV4cG9y
dHM9ZH0seyIuLi91dGlscyI6MzIsIi4vRGF0YVJlYWRlciI6MTh9XSwxODpbZnVuY3Rpb24oYSxi
LGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3RoaXMuZGF0YT1hLHRoaXMubGVuZ3RoPWEu
bGVuZ3RoLHRoaXMuaW5kZXg9MCx0aGlzLnplcm89MH12YXIgZT1hKCIuLi91dGlscyIpO2QucHJv
dG90eXBlPXtjaGVja09mZnNldDpmdW5jdGlvbihhKXt0aGlzLmNoZWNrSW5kZXgodGhpcy5pbmRl
eCthKX0sY2hlY2tJbmRleDpmdW5jdGlvbihhKXtpZih0aGlzLmxlbmd0aDx0aGlzLnplcm8rYXx8
YTwwKXRocm93IG5ldyBFcnJvcigiRW5kIG9mIGRhdGEgcmVhY2hlZCAoZGF0YSBsZW5ndGggPSAi
K3RoaXMubGVuZ3RoKyIsIGFza2VkIGluZGV4ID0gIithKyIpLiBDb3JydXB0ZWQgemlwID8iKX0s
c2V0SW5kZXg6ZnVuY3Rpb24oYSl7dGhpcy5jaGVja0luZGV4KGEpLHRoaXMuaW5kZXg9YX0sc2tp
cDpmdW5jdGlvbihhKXt0aGlzLnNldEluZGV4KHRoaXMuaW5kZXgrYSl9LGJ5dGVBdDpmdW5jdGlv
bihhKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0
KGEpLGI9dGhpcy5pbmRleCthLTE7Yj49dGhpcy5pbmRleDtiLS0pYz0oYzw8OCkrdGhpcy5ieXRl
QXQoYik7cmV0dXJuIHRoaXMuaW5kZXgrPWEsY30scmVhZFN0cmluZzpmdW5jdGlvbihhKXtyZXR1
cm4gZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGEpKX0scmVhZERhdGE6ZnVu
Y3Rpb24oYSl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbihhKXt9LHJlYWRBbmRDaGVj
a1NpZ25hdHVyZTpmdW5jdGlvbihhKXt9LHJlYWREYXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5y
ZWFkSW50KDQpO3JldHVybiBuZXcgRGF0ZShEYXRlLlVUQygoYT4+MjUmMTI3KSsxOTgwLChhPj4y
MSYxNSktMSxhPj4xNiYzMSxhPj4xMSYzMSxhPj41JjYzLCgzMSZhKTw8MSkpfX0sYi5leHBvcnRz
PWR9LHsiLi4vdXRpbHMiOjMyfV0sMTk6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVu
Y3Rpb24gZChhKXtlLmNhbGwodGhpcyxhKX12YXIgZT1hKCIuL1VpbnQ4QXJyYXlSZWFkZXIiKSxm
PWEoIi4uL3V0aWxzIik7Zi5pbmhlcml0cyhkLGUpLGQucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0
aW9uKGEpe3RoaXMuY2hlY2tPZmZzZXQoYSk7dmFyIGI9dGhpcy5kYXRhLnNsaWNlKHRoaXMuemVy
byt0aGlzLmluZGV4LHRoaXMuemVybyt0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1h
LGJ9LGIuZXhwb3J0cz1kfSx7Ii4uL3V0aWxzIjozMiwiLi9VaW50OEFycmF5UmVhZGVyIjoyMX1d
LDIwOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7ZS5jYWxsKHRo
aXMsYSl9dmFyIGU9YSgiLi9EYXRhUmVhZGVyIiksZj1hKCIuLi91dGlscyIpO2YuaW5oZXJpdHMo
ZCxlKSxkLnByb3RvdHlwZS5ieXRlQXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5jaGFy
Q29kZUF0KHRoaXMuemVybythKX0sZC5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVu
Y3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihhKS10aGlzLnplcm99LGQucHJv
dG90eXBlLnJlYWRBbmRDaGVja1NpZ25hdHVyZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnJlYWRE
YXRhKDQpO3JldHVybiBhPT09Yn0sZC5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhp
cy5jaGVja09mZnNldChhKTt2YXIgYj10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5k
ZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBv
cnRzPWR9LHsiLi4vdXRpbHMiOjMyLCIuL0RhdGFSZWFkZXIiOjE4fV0sMjE6W2Z1bmN0aW9uKGEs
YixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtlLmNhbGwodGhpcyxhKX12YXIgZT1hKCIu
L0FycmF5UmVhZGVyIiksZj1hKCIuLi91dGlscyIpO2YuaW5oZXJpdHMoZCxlKSxkLnByb3RvdHlw
ZS5yZWFkRGF0YT1mdW5jdGlvbihhKXtpZih0aGlzLmNoZWNrT2Zmc2V0KGEpLDA9PT1hKXJldHVy
biBuZXcgVWludDhBcnJheSgwKTt2YXIgYj10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy56ZXJvK3Ro
aXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0s
Yi5leHBvcnRzPWR9LHsiLi4vdXRpbHMiOjMyLCIuL0FycmF5UmVhZGVyIjoxN31dLDIyOltmdW5j
dGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO3ZhciBkPWEoIi4uL3V0aWxzIiksZT1hKCIuLi9zdXBw
b3J0IiksZj1hKCIuL0FycmF5UmVhZGVyIiksZz1hKCIuL1N0cmluZ1JlYWRlciIpLGg9YSgiLi9O
b2RlQnVmZmVyUmVhZGVyIiksaT1hKCIuL1VpbnQ4QXJyYXlSZWFkZXIiKTtiLmV4cG9ydHM9ZnVu
Y3Rpb24oYSl7dmFyIGI9ZC5nZXRUeXBlT2YoYSk7cmV0dXJuIGQuY2hlY2tTdXBwb3J0KGIpLCJz
dHJpbmciIT09Ynx8ZS51aW50OGFycmF5PyJub2RlYnVmZmVyIj09PWI/bmV3IGgoYSk6ZS51aW50
OGFycmF5P25ldyBpKGQudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGEpKTpuZXcgZihkLnRyYW5z
Zm9ybVRvKCJhcnJheSIsYSkpOm5ldyBnKGEpfX0seyIuLi9zdXBwb3J0IjozMCwiLi4vdXRpbHMi
OjMyLCIuL0FycmF5UmVhZGVyIjoxNywiLi9Ob2RlQnVmZmVyUmVhZGVyIjoxOSwiLi9TdHJpbmdS
ZWFkZXIiOjIwLCIuL1VpbnQ4QXJyYXlSZWFkZXIiOjIxfV0sMjM6W2Z1bmN0aW9uKGEsYixjKXsi
dXNlIHN0cmljdCI7Yy5MT0NBTF9GSUxFX0hFQURFUj0iUEsDBCIsYy5DRU5UUkFMX0ZJTEVfSEVB
REVSPSJQSwECIixjLkNFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsFBiIsYy5aSVA2NF9DRU5UUkFM
X0RJUkVDVE9SWV9MT0NBVE9SPSJQSwYHIixjLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0i
UEsGBiIsYy5EQVRBX0RFU0NSSVBUT1I9IlBLB1xiIn0se31dLDI0OltmdW5jdGlvbihhLGIsYyl7
InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7ZS5jYWxsKHRoaXMsIkNvbnZlcnRXb3JrZXIgdG8g
IithKSx0aGlzLmRlc3RUeXBlPWF9dmFyIGU9YSgiLi9HZW5lcmljV29ya2VyIiksZj1hKCIuLi91
dGlscyIpO2YuaW5oZXJpdHMoZCxlKSxkLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24o
YSl7dGhpcy5wdXNoKHtkYXRhOmYudHJhbnNmb3JtVG8odGhpcy5kZXN0VHlwZSxhLmRhdGEpLG1l
dGE6YS5tZXRhfSl9LGIuZXhwb3J0cz1kfSx7Ii4uL3V0aWxzIjozMiwiLi9HZW5lcmljV29ya2Vy
IjoyOH1dLDI1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoKXtlLmNh
bGwodGhpcywiQ3JjMzJQcm9iZSIpLHRoaXMud2l0aFN0cmVhbUluZm8oImNyYzMyIiwwKX12YXIg
ZT1hKCIuL0dlbmVyaWNXb3JrZXIiKSxmPWEoIi4uL2NyYzMyIiksZz1hKCIuLi91dGlscyIpO2cu
aW5oZXJpdHMoZCxlKSxkLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24oYSl7dGhpcy5z
dHJlYW1JbmZvLmNyYzMyPWYoYS5kYXRhLHRoaXMuc3RyZWFtSW5mby5jcmMzMnx8MCksdGhpcy5w
dXNoKGEpfSxiLmV4cG9ydHM9ZH0seyIuLi9jcmMzMiI6NCwiLi4vdXRpbHMiOjMyLCIuL0dlbmVy
aWNXb3JrZXIiOjI4fV0sMjY6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24g
ZChhKXtmLmNhbGwodGhpcywiRGF0YUxlbmd0aFByb2JlIGZvciAiK2EpLHRoaXMucHJvcE5hbWU9
YSx0aGlzLndpdGhTdHJlYW1JbmZvKGEsMCl9dmFyIGU9YSgiLi4vdXRpbHMiKSxmPWEoIi4vR2Vu
ZXJpY1dvcmtlciIpO2UuaW5oZXJpdHMoZCxmKSxkLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVu
Y3Rpb24oYSl7aWYoYSl7dmFyIGI9dGhpcy5zdHJlYW1JbmZvW3RoaXMucHJvcE5hbWVdfHwwO3Ro
aXMuc3RyZWFtSW5mb1t0aGlzLnByb3BOYW1lXT1iK2EuZGF0YS5sZW5ndGh9Zi5wcm90b3R5cGUu
cHJvY2Vzc0NodW5rLmNhbGwodGhpcyxhKX0sYi5leHBvcnRzPWR9LHsiLi4vdXRpbHMiOjMyLCIu
L0dlbmVyaWNXb3JrZXIiOjI4fV0sMjc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVu
Y3Rpb24gZChhKXtmLmNhbGwodGhpcywiRGF0YVdvcmtlciIpO3ZhciBiPXRoaXM7dGhpcy5kYXRh
SXNSZWFkeT0hMSx0aGlzLmluZGV4PTAsdGhpcy5tYXg9MCx0aGlzLmRhdGE9bnVsbCx0aGlzLnR5
cGU9IiIsdGhpcy5fdGlja1NjaGVkdWxlZD0hMSxhLnRoZW4oZnVuY3Rpb24oYSl7Yi5kYXRhSXNS
ZWFkeT0hMCxiLmRhdGE9YSxiLm1heD1hJiZhLmxlbmd0aHx8MCxiLnR5cGU9ZS5nZXRUeXBlT2Yo
YSksYi5pc1BhdXNlZHx8Yi5fdGlja0FuZFJlcGVhdCgpfSxmdW5jdGlvbihhKXtiLmVycm9yKGEp
fSl9dmFyIGU9YSgiLi4vdXRpbHMiKSxmPWEoIi4vR2VuZXJpY1dvcmtlciIpLGc9MTYzODQ7ZS5p
bmhlcml0cyhkLGYpLGQucHJvdG90eXBlLmNsZWFuVXA9ZnVuY3Rpb24oKXtmLnByb3RvdHlwZS5j
bGVhblVwLmNhbGwodGhpcyksdGhpcy5kYXRhPW51bGx9LGQucHJvdG90eXBlLnJlc3VtZT1mdW5j
dGlvbigpe3JldHVybiEhZi5wcm90b3R5cGUucmVzdW1lLmNhbGwodGhpcykmJighdGhpcy5fdGlj
a1NjaGVkdWxlZCYmdGhpcy5kYXRhSXNSZWFkeSYmKHRoaXMuX3RpY2tTY2hlZHVsZWQ9ITAsZS5k
ZWxheSh0aGlzLl90aWNrQW5kUmVwZWF0LFtdLHRoaXMpKSwhMCl9LGQucHJvdG90eXBlLl90aWNr
QW5kUmVwZWF0PWZ1bmN0aW9uKCl7dGhpcy5fdGlja1NjaGVkdWxlZD0hMSx0aGlzLmlzUGF1c2Vk
fHx0aGlzLmlzRmluaXNoZWR8fCh0aGlzLl90aWNrKCksdGhpcy5pc0ZpbmlzaGVkfHwoZS5kZWxh
eSh0aGlzLl90aWNrQW5kUmVwZWF0LFtdLHRoaXMpLHRoaXMuX3RpY2tTY2hlZHVsZWQ9ITApKX0s
ZC5wcm90b3R5cGUuX3RpY2s9ZnVuY3Rpb24oKXtpZih0aGlzLmlzUGF1c2VkfHx0aGlzLmlzRmlu
aXNoZWQpcmV0dXJuITE7dmFyIGE9ZyxiPW51bGwsYz1NYXRoLm1pbih0aGlzLm1heCx0aGlzLmlu
ZGV4K2EpO2lmKHRoaXMuaW5kZXg+PXRoaXMubWF4KXJldHVybiB0aGlzLmVuZCgpO3N3aXRjaCh0
aGlzLnR5cGUpe2Nhc2Uic3RyaW5nIjpiPXRoaXMuZGF0YS5zdWJzdHJpbmcodGhpcy5pbmRleCxj
KTticmVhaztjYXNlInVpbnQ4YXJyYXkiOmI9dGhpcy5kYXRhLnN1YmFycmF5KHRoaXMuaW5kZXgs
Yyk7YnJlYWs7Y2FzZSJhcnJheSI6Y2FzZSJub2RlYnVmZmVyIjpiPXRoaXMuZGF0YS5zbGljZSh0
aGlzLmluZGV4LGMpfXJldHVybiB0aGlzLmluZGV4PWMsdGhpcy5wdXNoKHtkYXRhOmIsbWV0YTp7
cGVyY2VudDp0aGlzLm1heD90aGlzLmluZGV4L3RoaXMubWF4KjEwMDowfX0pfSxiLmV4cG9ydHM9
ZH0seyIuLi91dGlscyI6MzIsIi4vR2VuZXJpY1dvcmtlciI6Mjh9XSwyODpbZnVuY3Rpb24oYSxi
LGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3RoaXMubmFtZT1hfHwiZGVmYXVsdCIsdGhp
cy5zdHJlYW1JbmZvPXt9LHRoaXMuZ2VuZXJhdGVkRXJyb3I9bnVsbCx0aGlzLmV4dHJhU3RyZWFt
SW5mbz17fSx0aGlzLmlzUGF1c2VkPSEwLHRoaXMuaXNGaW5pc2hlZD0hMSx0aGlzLmlzTG9ja2Vk
PSExLHRoaXMuX2xpc3RlbmVycz17ZGF0YTpbXSxlbmQ6W10sZXJyb3I6W119LHRoaXMucHJldmlv
dXM9bnVsbH1kLnByb3RvdHlwZT17cHVzaDpmdW5jdGlvbihhKXt0aGlzLmVtaXQoImRhdGEiLGEp
fSxlbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLmlzRmluaXNoZWQpcmV0dXJuITE7dGhpcy5mbHVzaCgp
O3RyeXt0aGlzLmVtaXQoImVuZCIpLHRoaXMuY2xlYW5VcCgpLHRoaXMuaXNGaW5pc2hlZD0hMH1j
YXRjaChhKXt0aGlzLmVtaXQoImVycm9yIixhKX1yZXR1cm4hMH0sZXJyb3I6ZnVuY3Rpb24oYSl7
cmV0dXJuIXRoaXMuaXNGaW5pc2hlZCYmKHRoaXMuaXNQYXVzZWQ/dGhpcy5nZW5lcmF0ZWRFcnJv
cj1hOih0aGlzLmlzRmluaXNoZWQ9ITAsdGhpcy5lbWl0KCJlcnJvciIsYSksdGhpcy5wcmV2aW91
cyYmdGhpcy5wcmV2aW91cy5lcnJvcihhKSx0aGlzLmNsZWFuVXAoKSksITApfSxvbjpmdW5jdGlv
bihhLGIpe3JldHVybiB0aGlzLl9saXN0ZW5lcnNbYV0ucHVzaChiKSx0aGlzfSxjbGVhblVwOmZ1
bmN0aW9uKCl7dGhpcy5zdHJlYW1JbmZvPXRoaXMuZ2VuZXJhdGVkRXJyb3I9dGhpcy5leHRyYVN0
cmVhbUluZm89bnVsbCx0aGlzLl9saXN0ZW5lcnM9W119LGVtaXQ6ZnVuY3Rpb24oYSxiKXtpZih0
aGlzLl9saXN0ZW5lcnNbYV0pZm9yKHZhciBjPTA7Yzx0aGlzLl9saXN0ZW5lcnNbYV0ubGVuZ3Ro
O2MrKyl0aGlzLl9saXN0ZW5lcnNbYV1bY10uY2FsbCh0aGlzLGIpfSxwaXBlOmZ1bmN0aW9uKGEp
e3JldHVybiBhLnJlZ2lzdGVyUHJldmlvdXModGhpcyl9LHJlZ2lzdGVyUHJldmlvdXM6ZnVuY3Rp
b24oYSl7aWYodGhpcy5pc0xvY2tlZCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzdHJlYW0gJyIrdGhp
cysiJyBoYXMgYWxyZWFkeSBiZWVuIHVzZWQuIik7dGhpcy5zdHJlYW1JbmZvPWEuc3RyZWFtSW5m
byx0aGlzLm1lcmdlU3RyZWFtSW5mbygpLHRoaXMucHJldmlvdXM9YTt2YXIgYj10aGlzO3JldHVy
biBhLm9uKCJkYXRhIixmdW5jdGlvbihhKXtiLnByb2Nlc3NDaHVuayhhKX0pLGEub24oImVuZCIs
ZnVuY3Rpb24oKXtiLmVuZCgpfSksYS5vbigiZXJyb3IiLGZ1bmN0aW9uKGEpe2IuZXJyb3IoYSl9
KSx0aGlzfSxwYXVzZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzUGF1c2VkJiYhdGhpcy5pc0Zp
bmlzaGVkJiYodGhpcy5pc1BhdXNlZD0hMCx0aGlzLnByZXZpb3VzJiZ0aGlzLnByZXZpb3VzLnBh
dXNlKCksITApfSxyZXN1bWU6ZnVuY3Rpb24oKXtpZighdGhpcy5pc1BhdXNlZHx8dGhpcy5pc0Zp
bmlzaGVkKXJldHVybiExO3RoaXMuaXNQYXVzZWQ9ITE7dmFyIGE9ITE7cmV0dXJuIHRoaXMuZ2Vu
ZXJhdGVkRXJyb3ImJih0aGlzLmVycm9yKHRoaXMuZ2VuZXJhdGVkRXJyb3IpLGE9ITApLHRoaXMu
cHJldmlvdXMmJnRoaXMucHJldmlvdXMucmVzdW1lKCksIWF9LGZsdXNoOmZ1bmN0aW9uKCl7fSxw
cm9jZXNzQ2h1bms6ZnVuY3Rpb24oYSl7dGhpcy5wdXNoKGEpfSx3aXRoU3RyZWFtSW5mbzpmdW5j
dGlvbihhLGIpe3JldHVybiB0aGlzLmV4dHJhU3RyZWFtSW5mb1thXT1iLHRoaXMubWVyZ2VTdHJl
YW1JbmZvKCksdGhpc30sbWVyZ2VTdHJlYW1JbmZvOmZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIHRo
aXMuZXh0cmFTdHJlYW1JbmZvKXRoaXMuZXh0cmFTdHJlYW1JbmZvLmhhc093blByb3BlcnR5KGEp
JiYodGhpcy5zdHJlYW1JbmZvW2FdPXRoaXMuZXh0cmFTdHJlYW1JbmZvW2FdKX0sbG9jazpmdW5j
dGlvbigpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3IEVycm9yKCJUaGUgc3RyZWFtICciK3Ro
aXMrIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLiIpO3RoaXMuaXNMb2NrZWQ9ITAsdGhpcy5wcmV2
aW91cyYmdGhpcy5wcmV2aW91cy5sb2NrKCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGE9Ildv
cmtlciAiK3RoaXMubmFtZTtyZXR1cm4gdGhpcy5wcmV2aW91cz90aGlzLnByZXZpb3VzKyIgLT4g
IithOmF9fSxiLmV4cG9ydHM9ZH0se31dLDI5OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3Qi
O2Z1bmN0aW9uIGQoYSxiLGMpe3N3aXRjaChhKXtjYXNlImJsb2IiOnJldHVybiBoLm5ld0Jsb2Io
aC50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLGIpLGMpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gay5l
bmNvZGUoYik7ZGVmYXVsdDpyZXR1cm4gaC50cmFuc2Zvcm1UbyhhLGIpfX1mdW5jdGlvbiBlKGEs
Yil7dmFyIGMsZD0wLGU9bnVsbCxmPTA7Zm9yKGM9MDtjPGIubGVuZ3RoO2MrKylmKz1iW2NdLmxl
bmd0aDtzd2l0Y2goYSl7Y2FzZSJzdHJpbmciOnJldHVybiBiLmpvaW4oIiIpO2Nhc2UiYXJyYXki
OnJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGIpO2Nhc2UidWludDhhcnJh
eSI6Zm9yKGU9bmV3IFVpbnQ4QXJyYXkoZiksYz0wO2M8Yi5sZW5ndGg7YysrKWUuc2V0KGJbY10s
ZCksZCs9YltjXS5sZW5ndGg7cmV0dXJuIGU7Y2FzZSJub2RlYnVmZmVyIjpyZXR1cm4gQnVmZmVy
LmNvbmNhdChiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiY29uY2F0IDogdW5zdXBwb3J0ZWQg
dHlwZSAnIithKyInIil9fWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gbmV3IG0uUHJvbWlzZShmdW5j
dGlvbihjLGYpe3ZhciBnPVtdLGg9YS5faW50ZXJuYWxUeXBlLGk9YS5fb3V0cHV0VHlwZSxqPWEu
X21pbWVUeXBlO2Eub24oImRhdGEiLGZ1bmN0aW9uKGEsYyl7Zy5wdXNoKGEpLGImJmIoYyl9KS5v
bigiZXJyb3IiLGZ1bmN0aW9uKGEpe2c9W10sZihhKX0pLm9uKCJlbmQiLGZ1bmN0aW9uKCl7dHJ5
e3ZhciBhPWQoaSxlKGgsZyksaik7YyhhKX1jYXRjaChiKXtmKGIpfWc9W119KS5yZXN1bWUoKX0p
fWZ1bmN0aW9uIGcoYSxiLGMpe3ZhciBkPWI7c3dpdGNoKGIpe2Nhc2UiYmxvYiI6Y2FzZSJhcnJh
eWJ1ZmZlciI6ZD0idWludDhhcnJheSI7YnJlYWs7Y2FzZSJiYXNlNjQiOmQ9InN0cmluZyJ9dHJ5
e3RoaXMuX2ludGVybmFsVHlwZT1kLHRoaXMuX291dHB1dFR5cGU9Yix0aGlzLl9taW1lVHlwZT1j
LGguY2hlY2tTdXBwb3J0KGQpLHRoaXMuX3dvcmtlcj1hLnBpcGUobmV3IGkoZCkpLGEubG9jaygp
fWNhdGNoKGUpe3RoaXMuX3dvcmtlcj1uZXcgaigiZXJyb3IiKSx0aGlzLl93b3JrZXIuZXJyb3Io
ZSl9fXZhciBoPWEoIi4uL3V0aWxzIiksaT1hKCIuL0NvbnZlcnRXb3JrZXIiKSxqPWEoIi4vR2Vu
ZXJpY1dvcmtlciIpLGs9YSgiLi4vYmFzZTY0IiksbD1hKCIuLi9zdXBwb3J0IiksbT1hKCIuLi9l
eHRlcm5hbCIpLG49bnVsbDtpZihsLm5vZGVzdHJlYW0pdHJ5e249YSgiLi4vbm9kZWpzL05vZGVq
c1N0cmVhbU91dHB1dEFkYXB0ZXIiKX1jYXRjaChvKXt9Zy5wcm90b3R5cGU9e2FjY3VtdWxhdGU6
ZnVuY3Rpb24oYSl7cmV0dXJuIGYodGhpcyxhKX0sb246ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlz
O3JldHVybiJkYXRhIj09PWE/dGhpcy5fd29ya2VyLm9uKGEsZnVuY3Rpb24oYSl7Yi5jYWxsKGMs
YS5kYXRhLGEubWV0YSl9KTp0aGlzLl93b3JrZXIub24oYSxmdW5jdGlvbigpe2guZGVsYXkoYixh
cmd1bWVudHMsYyl9KSx0aGlzfSxyZXN1bWU6ZnVuY3Rpb24oKXtyZXR1cm4gaC5kZWxheSh0aGlz
Ll93b3JrZXIucmVzdW1lLFtdLHRoaXMuX3dvcmtlciksdGhpc30scGF1c2U6ZnVuY3Rpb24oKXty
ZXR1cm4gdGhpcy5fd29ya2VyLnBhdXNlKCksdGhpc30sdG9Ob2RlanNTdHJlYW06ZnVuY3Rpb24o
YSl7aWYoaC5jaGVja1N1cHBvcnQoIm5vZGVzdHJlYW0iKSwibm9kZWJ1ZmZlciIhPT10aGlzLl9v
dXRwdXRUeXBlKXRocm93IG5ldyBFcnJvcih0aGlzLl9vdXRwdXRUeXBlKyIgaXMgbm90IHN1cHBv
cnRlZCBieSB0aGlzIG1ldGhvZCIpO3JldHVybiBuZXcgbih0aGlzLHtvYmplY3RNb2RlOiJub2Rl
YnVmZmVyIiE9PXRoaXMuX291dHB1dFR5cGV9LGEpfX0sYi5leHBvcnRzPWd9LHsiLi4vYmFzZTY0
IjoxLCIuLi9leHRlcm5hbCI6NiwiLi4vbm9kZWpzL05vZGVqc1N0cmVhbU91dHB1dEFkYXB0ZXIi
OjEzLCIuLi9zdXBwb3J0IjozMCwiLi4vdXRpbHMiOjMyLCIuL0NvbnZlcnRXb3JrZXIiOjI0LCIu
L0dlbmVyaWNXb3JrZXIiOjI4fV0sMzA6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7aWYo
Yy5iYXNlNjQ9ITAsYy5hcnJheT0hMCxjLnN0cmluZz0hMCxjLmFycmF5YnVmZmVyPSJ1bmRlZmlu
ZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSxj
Lm5vZGVidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXIsYy51aW50OGFycmF5PSJ1bmRl
ZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVy
KWMuYmxvYj0hMTtlbHNle3ZhciBkPW5ldyBBcnJheUJ1ZmZlcigwKTt0cnl7Yy5ibG9iPTA9PT1u
ZXcgQmxvYihbZF0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KS5zaXplfWNhdGNoKGUpe3RyeXt2
YXIgZj1zZWxmLkJsb2JCdWlsZGVyfHxzZWxmLldlYktpdEJsb2JCdWlsZGVyfHxzZWxmLk1vekJs
b2JCdWlsZGVyfHxzZWxmLk1TQmxvYkJ1aWxkZXIsZz1uZXcgZjtnLmFwcGVuZChkKSxjLmJsb2I9
MD09PWcuZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIikuc2l6ZX1jYXRjaChlKXtjLmJsb2I9ITF9
fX10cnl7Yy5ub2Rlc3RyZWFtPSEhYSgicmVhZGFibGUtc3RyZWFtIikuUmVhZGFibGV9Y2F0Y2go
ZSl7Yy5ub2Rlc3RyZWFtPSExfX0seyJyZWFkYWJsZS1zdHJlYW0iOjE2fV0sMzE6W2Z1bmN0aW9u
KGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZCgpe2kuY2FsbCh0aGlzLCJ1dGYtOCBkZWNv
ZGUiKSx0aGlzLmxlZnRPdmVyPW51bGx9ZnVuY3Rpb24gZSgpe2kuY2FsbCh0aGlzLCJ1dGYtOCBl
bmNvZGUiKX1mb3IodmFyIGY9YSgiLi91dGlscyIpLGc9YSgiLi9zdXBwb3J0IiksaD1hKCIuL25v
ZGVqc1V0aWxzIiksaT1hKCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIiksaj1uZXcgQXJyYXkoMjU2
KSxrPTA7azwyNTY7aysrKWpba109az49MjUyPzY6az49MjQ4PzU6az49MjQwPzQ6az49MjI0PzM6
az49MTkyPzI6MTtqWzI1NF09alsyNTRdPTE7dmFyIGw9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUs
ZixoPWEubGVuZ3RoLGk9MDtmb3IoZT0wO2U8aDtlKyspYz1hLmNoYXJDb2RlQXQoZSksNTUyOTY9
PT0oNjQ1MTImYykmJmUrMTxoJiYoZD1hLmNoYXJDb2RlQXQoZSsxKSw1NjMyMD09PSg2NDUxMiZk
KSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZSsrKSksaSs9YzwxMjg/MTpjPDIw
NDg/MjpjPDY1NTM2PzM6NDtmb3IoYj1nLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoaSk6bmV3
IEFycmF5KGkpLGY9MCxlPTA7ZjxpO2UrKyljPWEuY2hhckNvZGVBdChlKSw1NTI5Nj09PSg2NDUx
MiZjKSYmZSsxPGgmJihkPWEuY2hhckNvZGVBdChlKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02
NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxlKyspKSxjPDEyOD9iW2YrK109YzpjPDIwNDg/
KGJbZisrXT0xOTJ8Yz4+PjYsYltmKytdPTEyOHw2MyZjKTpjPDY1NTM2PyhiW2YrK109MjI0fGM+
Pj4xMixiW2YrK109MTI4fGM+Pj42JjYzLGJbZisrXT0xMjh8NjMmYyk6KGJbZisrXT0yNDB8Yz4+
PjE4LGJbZisrXT0xMjh8Yz4+PjEyJjYzLGJbZisrXT0xMjh8Yz4+PjYmNjMsYltmKytdPTEyOHw2
MyZjKTtyZXR1cm4gYn0sbT1mdW5jdGlvbihhLGIpe3ZhciBjO2ZvcihiPWJ8fGEubGVuZ3RoLGI+
YS5sZW5ndGgmJihiPWEubGVuZ3RoKSxjPWItMTtjPj0wJiYxMjg9PT0oMTkyJmFbY10pOyljLS07
cmV0dXJuIGM8MD9iOjA9PT1jP2I6YytqW2FbY11dPmI/YzpifSxuPWZ1bmN0aW9uKGEpe3ZhciBi
LGMsZCxlLGc9YS5sZW5ndGgsaD1uZXcgQXJyYXkoMipnKTtmb3IoYz0wLGI9MDtiPGc7KWlmKGQ9
YVtiKytdLGQ8MTI4KWhbYysrXT1kO2Vsc2UgaWYoZT1qW2RdLGU+NCloW2MrK109NjU1MzMsYis9
ZS0xO2Vsc2V7Zm9yKGQmPTI9PT1lPzMxOjM9PT1lPzE1Ojc7ZT4xJiZiPGc7KWQ9ZDw8Nnw2MyZh
W2IrK10sZS0tO2U+MT9oW2MrK109NjU1MzM6ZDw2NTUzNj9oW2MrK109ZDooZC09NjU1MzYsaFtj
KytdPTU1Mjk2fGQ+PjEwJjEwMjMsaFtjKytdPTU2MzIwfDEwMjMmZCl9cmV0dXJuIGgubGVuZ3Ro
IT09YyYmKGguc3ViYXJyYXk/aD1oLnN1YmFycmF5KDAsYyk6aC5sZW5ndGg9YyksZi5hcHBseUZy
b21DaGFyQ29kZShoKX07Yy51dGY4ZW5jb2RlPWZ1bmN0aW9uKGEpe3JldHVybiBnLm5vZGVidWZm
ZXI/aC5uZXdCdWZmZXJGcm9tKGEsInV0Zi04Iik6bChhKX0sYy51dGY4ZGVjb2RlPWZ1bmN0aW9u
KGEpe3JldHVybiBnLm5vZGVidWZmZXI/Zi50cmFuc2Zvcm1Ubygibm9kZWJ1ZmZlciIsYSkudG9T
dHJpbmcoInV0Zi04Iik6KGE9Zi50cmFuc2Zvcm1UbyhnLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXki
OiJhcnJheSIsYSksbihhKSl9LGYuaW5oZXJpdHMoZCxpKSxkLnByb3RvdHlwZS5wcm9jZXNzQ2h1
bms9ZnVuY3Rpb24oYSl7dmFyIGI9Zi50cmFuc2Zvcm1UbyhnLnVpbnQ4YXJyYXk/InVpbnQ4YXJy
YXkiOiJhcnJheSIsYS5kYXRhKTtpZih0aGlzLmxlZnRPdmVyJiZ0aGlzLmxlZnRPdmVyLmxlbmd0
aCl7aWYoZy51aW50OGFycmF5KXt2YXIgZD1iO2I9bmV3IFVpbnQ4QXJyYXkoZC5sZW5ndGgrdGhp
cy5sZWZ0T3Zlci5sZW5ndGgpLGIuc2V0KHRoaXMubGVmdE92ZXIsMCksYi5zZXQoZCx0aGlzLmxl
ZnRPdmVyLmxlbmd0aCl9ZWxzZSBiPXRoaXMubGVmdE92ZXIuY29uY2F0KGIpO3RoaXMubGVmdE92
ZXI9bnVsbH12YXIgZT1tKGIpLGg9YjtlIT09Yi5sZW5ndGgmJihnLnVpbnQ4YXJyYXk/KGg9Yi5z
dWJhcnJheSgwLGUpLHRoaXMubGVmdE92ZXI9Yi5zdWJhcnJheShlLGIubGVuZ3RoKSk6KGg9Yi5z
bGljZSgwLGUpLHRoaXMubGVmdE92ZXI9Yi5zbGljZShlLGIubGVuZ3RoKSkpLHRoaXMucHVzaCh7
ZGF0YTpjLnV0ZjhkZWNvZGUoaCksbWV0YTphLm1ldGF9KX0sZC5wcm90b3R5cGUuZmx1c2g9ZnVu
Y3Rpb24oKXt0aGlzLmxlZnRPdmVyJiZ0aGlzLmxlZnRPdmVyLmxlbmd0aCYmKHRoaXMucHVzaCh7
ZGF0YTpjLnV0ZjhkZWNvZGUodGhpcy5sZWZ0T3ZlciksbWV0YTp7fX0pLHRoaXMubGVmdE92ZXI9
bnVsbCl9LGMuVXRmOERlY29kZVdvcmtlcj1kLGYuaW5oZXJpdHMoZSxpKSxlLnByb3RvdHlwZS5w
cm9jZXNzQ2h1bms9ZnVuY3Rpb24oYSl7dGhpcy5wdXNoKHtkYXRhOmMudXRmOGVuY29kZShhLmRh
dGEpLG1ldGE6YS5tZXRhfSl9LGMuVXRmOEVuY29kZVdvcmtlcj1lfSx7Ii4vbm9kZWpzVXRpbHMi
OjE0LCIuL3N0cmVhbS9HZW5lcmljV29ya2VyIjoyOCwiLi9zdXBwb3J0IjozMCwiLi91dGlscyI6
MzJ9XSwzMjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3ZhciBi
PW51bGw7cmV0dXJuIGI9aS51aW50OGFycmF5P25ldyBVaW50OEFycmF5KGEubGVuZ3RoKTpuZXcg
QXJyYXkoYS5sZW5ndGgpLGYoYSxiKX1mdW5jdGlvbiBlKGEpe3JldHVybiBhfWZ1bmN0aW9uIGYo
YSxiKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoOysrYyliW2NdPTI1NSZhLmNoYXJDb2RlQXQoYyk7
cmV0dXJuIGJ9ZnVuY3Rpb24gZyhhKXt2YXIgYj02NTUzNixkPWMuZ2V0VHlwZU9mKGEpLGU9ITA7
aWYoInVpbnQ4YXJyYXkiPT09ZD9lPW4uYXBwbHlDYW5CZVVzZWQudWludDhhcnJheToibm9kZWJ1
ZmZlciI9PT1kJiYoZT1uLmFwcGx5Q2FuQmVVc2VkLm5vZGVidWZmZXIpLGUpZm9yKDtiPjE7KXRy
eXtyZXR1cm4gbi5zdHJpbmdpZnlCeUNodW5rKGEsZCxiKX1jYXRjaChmKXtiPU1hdGguZmxvb3Io
Yi8yKX1yZXR1cm4gbi5zdHJpbmdpZnlCeUNoYXIoYSl9ZnVuY3Rpb24gaChhLGIpe2Zvcih2YXIg
Yz0wO2M8YS5sZW5ndGg7YysrKWJbY109YVtjXTsKK3JldHVybiBifXZhciBpPWEoIi4vc3VwcG9y
dCIpLGo9YSgiLi9iYXNlNjQiKSxrPWEoIi4vbm9kZWpzVXRpbHMiKSxsPWEoImNvcmUtanMvbGli
cmFyeS9mbi9zZXQtaW1tZWRpYXRlIiksbT1hKCIuL2V4dGVybmFsIik7Yy5uZXdCbG9iPWZ1bmN0
aW9uKGEsYil7Yy5jaGVja1N1cHBvcnQoImJsb2IiKTt0cnl7cmV0dXJuIG5ldyBCbG9iKFthXSx7
dHlwZTpifSl9Y2F0Y2goZCl7dHJ5e3ZhciBlPXNlbGYuQmxvYkJ1aWxkZXJ8fHNlbGYuV2ViS2l0
QmxvYkJ1aWxkZXJ8fHNlbGYuTW96QmxvYkJ1aWxkZXJ8fHNlbGYuTVNCbG9iQnVpbGRlcixmPW5l
dyBlO3JldHVybiBmLmFwcGVuZChhKSxmLmdldEJsb2IoYil9Y2F0Y2goZCl7dGhyb3cgbmV3IEVy
cm9yKCJCdWcgOiBjYW4ndCBjb25zdHJ1Y3QgdGhlIEJsb2IuIil9fX07dmFyIG49e3N0cmluZ2lm
eUJ5Q2h1bms6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9MCxmPWEubGVuZ3RoO2lmKGY8PWMp
cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKTtmb3IoO2U8ZjspImFycmF5
Ij09PWJ8fCJub2RlYnVmZmVyIj09PWI/ZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHko
bnVsbCxhLnNsaWNlKGUsTWF0aC5taW4oZStjLGYpKSkpOmQucHVzaChTdHJpbmcuZnJvbUNoYXJD
b2RlLmFwcGx5KG51bGwsYS5zdWJhcnJheShlLE1hdGgubWluKGUrYyxmKSkpKSxlKz1jO3JldHVy
biBkLmpvaW4oIiIpfSxzdHJpbmdpZnlCeUNoYXI6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9
MDtjPGEubGVuZ3RoO2MrKyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGFbY10pO3JldHVybiBifSxh
cHBseUNhbkJlVXNlZDp7dWludDhhcnJheTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gaS51aW50OGFy
cmF5JiYxPT09U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEp
KS5sZW5ndGh9Y2F0Y2goYSl7cmV0dXJuITF9fSgpLG5vZGVidWZmZXI6ZnVuY3Rpb24oKXt0cnl7
cmV0dXJuIGkubm9kZWJ1ZmZlciYmMT09PVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxr
LmFsbG9jQnVmZmVyKDEpKS5sZW5ndGh9Y2F0Y2goYSl7cmV0dXJuITF9fSgpfX07Yy5hcHBseUZy
b21DaGFyQ29kZT1nO3ZhciBvPXt9O28uc3RyaW5nPXtzdHJpbmc6ZSxhcnJheTpmdW5jdGlvbihh
KXtyZXR1cm4gZihhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihh
KXtyZXR1cm4gby5zdHJpbmcudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rp
b24oYSl7cmV0dXJuIGYoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1
bmN0aW9uKGEpe3JldHVybiBmKGEsay5hbGxvY0J1ZmZlcihhLmxlbmd0aCkpfX0sby5hcnJheT17
c3RyaW5nOmcsYXJyYXk6ZSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4
QXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhB
cnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5uZXdCdWZmZXJGcm9tKGEp
fX0sby5hcnJheWJ1ZmZlcj17c3RyaW5nOmZ1bmN0aW9uKGEpe3JldHVybiBnKG5ldyBVaW50OEFy
cmF5KGEpKX0sYXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGgobmV3IFVpbnQ4QXJyYXkoYSksbmV3
IEFycmF5KGEuYnl0ZUxlbmd0aCkpfSxhcnJheWJ1ZmZlcjplLHVpbnQ4YXJyYXk6ZnVuY3Rpb24o
YSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGEpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVy
biBrLm5ld0J1ZmZlckZyb20obmV3IFVpbnQ4QXJyYXkoYSkpfX0sby51aW50OGFycmF5PXtzdHJp
bmc6ZyxhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gaChhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxh
cnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZSxub2Rl
YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLm5ld0J1ZmZlckZyb20oYSl9fSxvLm5vZGVidWZm
ZXI9e3N0cmluZzpnLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBoKGEsbmV3IEFycmF5KGEubGVu
Z3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBvLm5vZGVidWZmZXIudWludDhh
cnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGgoYSxuZXcgVWlu
dDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmV9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24o
YSxiKXtpZihifHwoYj0iIiksIWEpcmV0dXJuIGI7Yy5jaGVja1N1cHBvcnQoYSk7dmFyIGQ9Yy5n
ZXRUeXBlT2YoYiksZT1vW2RdW2FdKGIpO3JldHVybiBlfSxjLmdldFR5cGVPZj1mdW5jdGlvbihh
KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT8iYXJyYXkiOmkubm9kZWJ1ZmZlciYmay5p
c0J1ZmZlcihhKT8ibm9kZWJ1ZmZlciI6aS51aW50OGFycmF5JiZhIGluc3RhbmNlb2YgVWludDhB
cnJheT8idWludDhhcnJheSI6aS5hcnJheWJ1ZmZlciYmYSBpbnN0YW5jZW9mIEFycmF5QnVmZmVy
PyJhcnJheWJ1ZmZlciI6dm9pZCAwfSxjLmNoZWNrU3VwcG9ydD1mdW5jdGlvbihhKXt2YXIgYj1p
W2EudG9Mb3dlckNhc2UoKV07aWYoIWIpdGhyb3cgbmV3IEVycm9yKGErIiBpcyBub3Qgc3VwcG9y
dGVkIGJ5IHRoaXMgcGxhdGZvcm0iKX0sYy5NQVhfVkFMVUVfMTZCSVRTPTY1NTM1LGMuTUFYX1ZB
TFVFXzMyQklUUz0tMSxjLnByZXR0eT1mdW5jdGlvbihhKXt2YXIgYixjLGQ9IiI7Zm9yKGM9MDtj
PChhfHwiIikubGVuZ3RoO2MrKyliPWEuY2hhckNvZGVBdChjKSxkKz0iXFx4IisoYjwxNj8iMCI6
IiIpK2IudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGR9LGMuZGVsYXk9ZnVuY3Rp
b24oYSxiLGMpe2woZnVuY3Rpb24oKXthLmFwcGx5KGN8fG51bGwsYnx8W10pfSl9LGMuaW5oZXJp
dHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9Yi5wcm90b3R5
cGUsYS5wcm90b3R5cGU9bmV3IGN9LGMuZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjPXt9O2Zv
cihhPTA7YTxhcmd1bWVudHMubGVuZ3RoO2ErKylmb3IoYiBpbiBhcmd1bWVudHNbYV0pYXJndW1l
bnRzW2FdLmhhc093blByb3BlcnR5KGIpJiYidW5kZWZpbmVkIj09dHlwZW9mIGNbYl0mJihjW2Jd
PWFyZ3VtZW50c1thXVtiXSk7cmV0dXJuIGN9LGMucHJlcGFyZUNvbnRlbnQ9ZnVuY3Rpb24oYSxi
LGUsZixnKXt2YXIgaD1tLlByb21pc2UucmVzb2x2ZShiKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciBi
PWkuYmxvYiYmKGEgaW5zdGFuY2VvZiBCbG9ifHxbIltvYmplY3QgRmlsZV0iLCJbb2JqZWN0IEJs
b2JdIl0uaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkpIT09LTEpO3Jl
dHVybiBiJiYidW5kZWZpbmVkIiE9dHlwZW9mIEZpbGVSZWFkZXI/bmV3IG0uUHJvbWlzZShmdW5j
dGlvbihiLGMpe3ZhciBkPW5ldyBGaWxlUmVhZGVyO2Qub25sb2FkPWZ1bmN0aW9uKGEpe2IoYS50
YXJnZXQucmVzdWx0KX0sZC5vbmVycm9yPWZ1bmN0aW9uKGEpe2MoYS50YXJnZXQuZXJyb3IpfSxk
LnJlYWRBc0FycmF5QnVmZmVyKGEpfSk6YX0pO3JldHVybiBoLnRoZW4oZnVuY3Rpb24oYil7dmFy
IGg9Yy5nZXRUeXBlT2YoYik7cmV0dXJuIGg/KCJhcnJheWJ1ZmZlciI9PT1oP2I9Yy50cmFuc2Zv
cm1UbygidWludDhhcnJheSIsYik6InN0cmluZyI9PT1oJiYoZz9iPWouZGVjb2RlKGIpOmUmJmYh
PT0hMCYmKGI9ZChiKSkpLGIpOm0uUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJDYW4ndCByZWFk
IHRoZSBkYXRhIG9mICciK2ErIicuIElzIGl0IGluIGEgc3VwcG9ydGVkIEphdmFTY3JpcHQgdHlw
ZSAoU3RyaW5nLCBCbG9iLCBBcnJheUJ1ZmZlciwgZXRjKSA/IikpfSl9fSx7Ii4vYmFzZTY0Ijox
LCIuL2V4dGVybmFsIjo2LCIuL25vZGVqc1V0aWxzIjoxNCwiLi9zdXBwb3J0IjozMCwiY29yZS1q
cy9saWJyYXJ5L2ZuL3NldC1pbW1lZGlhdGUiOjM2fV0sMzM6W2Z1bmN0aW9uKGEsYixjKXsidXNl
IHN0cmljdCI7ZnVuY3Rpb24gZChhKXt0aGlzLmZpbGVzPVtdLHRoaXMubG9hZE9wdGlvbnM9YX12
YXIgZT1hKCIuL3JlYWRlci9yZWFkZXJGb3IiKSxmPWEoIi4vdXRpbHMiKSxnPWEoIi4vc2lnbmF0
dXJlIiksaD1hKCIuL3ppcEVudHJ5IiksaT0oYSgiLi91dGY4IiksYSgiLi9zdXBwb3J0IikpO2Qu
cHJvdG90eXBlPXtjaGVja1NpZ25hdHVyZTpmdW5jdGlvbihhKXtpZighdGhpcy5yZWFkZXIucmVh
ZEFuZENoZWNrU2lnbmF0dXJlKGEpKXt0aGlzLnJlYWRlci5pbmRleC09NDt2YXIgYj10aGlzLnJl
YWRlci5yZWFkU3RyaW5nKDQpO3Rocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCBvciBidWc6
IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK2YucHJldHR5KGIpKyIsIGV4cGVjdGVkICIrZi5wcmV0
dHkoYSkrIikiKX19LGlzU2lnbmF0dXJlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5yZWFkZXIu
aW5kZXg7dGhpcy5yZWFkZXIuc2V0SW5kZXgoYSk7dmFyIGQ9dGhpcy5yZWFkZXIucmVhZFN0cmlu
Zyg0KSxlPWQ9PT1iO3JldHVybiB0aGlzLnJlYWRlci5zZXRJbmRleChjKSxlfSxyZWFkQmxvY2tF
bmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZElu
dCgyKSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoMiks
dGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0
aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFs
RGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlz
LnJlYWRlci5yZWFkSW50KDQpLHRoaXMuemlwQ29tbWVudExlbmd0aD10aGlzLnJlYWRlci5yZWFk
SW50KDIpO3ZhciBhPXRoaXMucmVhZGVyLnJlYWREYXRhKHRoaXMuemlwQ29tbWVudExlbmd0aCks
Yj1pLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIsYz1mLnRyYW5zZm9ybVRvKGIsYSk7
dGhpcy56aXBDb21tZW50PXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUoYyl9LHJlYWRC
bG9ja1ppcDY0RW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy56aXA2NEVuZE9mQ2VudHJhbFNp
emU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnJlYWRlci5za2lwKDQpLHRoaXMuZGlza051
bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9
dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10
aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIu
cmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhp
cy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVu
c2libGVEYXRhPXt9O2Zvcih2YXIgYSxiLGMsZD10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00
NCxlPTA7ZTxkOylhPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksYj10aGlzLnJlYWRlci5yZWFkSW50
KDQpLGM9dGhpcy5yZWFkZXIucmVhZERhdGEoYiksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhW2Fd
PXtpZDphLGxlbmd0aDpiLHZhbHVlOmN9fSxyZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0
b3I6ZnVuY3Rpb24oKXtpZih0aGlzLmRpc2tXaXRoWmlwNjRDZW50cmFsRGlyU3RhcnQ9dGhpcy5y
ZWFkZXIucmVhZEludCg0KSx0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXI9
dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmRpc2tzQ291bnQ9dGhpcy5yZWFkZXIucmVhZElu
dCg0KSx0aGlzLmRpc2tzQ291bnQ+MSl0aHJvdyBuZXcgRXJyb3IoIk11bHRpLXZvbHVtZXMgemlw
IGFyZSBub3Qgc3VwcG9ydGVkIil9LHJlYWRMb2NhbEZpbGVzOmZ1bmN0aW9uKCl7dmFyIGEsYjtm
b3IoYT0wO2E8dGhpcy5maWxlcy5sZW5ndGg7YSsrKWI9dGhpcy5maWxlc1thXSx0aGlzLnJlYWRl
ci5zZXRJbmRleChiLmxvY2FsSGVhZGVyT2Zmc2V0KSx0aGlzLmNoZWNrU2lnbmF0dXJlKGcuTE9D
QUxfRklMRV9IRUFERVIpLGIucmVhZExvY2FsUGFydCh0aGlzLnJlYWRlciksYi5oYW5kbGVVVEY4
KCksYi5wcm9jZXNzQXR0cmlidXRlcygpfSxyZWFkQ2VudHJhbERpcjpmdW5jdGlvbigpe3ZhciBh
O2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVh
ZGVyLnJlYWRBbmRDaGVja1NpZ25hdHVyZShnLkNFTlRSQUxfRklMRV9IRUFERVIpOylhPW5ldyBo
KHt6aXA2NDp0aGlzLnppcDY0fSx0aGlzLmxvYWRPcHRpb25zKSxhLnJlYWRDZW50cmFsUGFydCh0
aGlzLnJlYWRlciksdGhpcy5maWxlcy5wdXNoKGEpO2lmKHRoaXMuY2VudHJhbERpclJlY29yZHMh
PT10aGlzLmZpbGVzLmxlbmd0aCYmMCE9PXRoaXMuY2VudHJhbERpclJlY29yZHMmJjA9PT10aGlz
LmZpbGVzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgb3IgYnVnOiBleHBl
Y3RlZCAiK3RoaXMuY2VudHJhbERpclJlY29yZHMrIiByZWNvcmRzIGluIGNlbnRyYWwgZGlyLCBn
b3QgIit0aGlzLmZpbGVzLmxlbmd0aCl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIg
YT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShnLkNFTlRSQUxfRElSRUNUT1JZX0VO
RCk7aWYoYTwwKXt2YXIgYj0hdGhpcy5pc1NpZ25hdHVyZSgwLGcuTE9DQUxfRklMRV9IRUFERVIp
O3Rocm93IGI/bmV3IEVycm9yKCJDYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSA6
IGlzIHRoaXMgYSB6aXAgZmlsZSA/IElmIGl0IGlzLCBzZWUgaHR0cHM6Ly9zdHVrLmdpdGh1Yi5p
by9qc3ppcC9kb2N1bWVudGF0aW9uL2hvd3RvL3JlYWRfemlwLmh0bWwiKTpuZXcgRXJyb3IoIkNv
cnJ1cHRlZCB6aXA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iil9dGhpcy5y
ZWFkZXIuc2V0SW5kZXgoYSk7dmFyIGM9YTtpZih0aGlzLmNoZWNrU2lnbmF0dXJlKGcuQ0VOVFJB
TF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlYWRCbG9ja0VuZE9mQ2VudHJhbCgpLHRoaXMuZGlza051
bWJlcj09PWYuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD09
PWYuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9PT1m
Lk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclJlY29yZHM9PT1mLk1BWF9WQUxVRV8x
NkJJVFN8fHRoaXMuY2VudHJhbERpclNpemU9PT1mLk1BWF9WQUxVRV8zMkJJVFN8fHRoaXMuY2Vu
dHJhbERpck9mZnNldD09PWYuTUFYX1ZBTFVFXzMyQklUUyl7aWYodGhpcy56aXA2ND0hMCxhPXRo
aXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGcuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllf
TE9DQVRPUiksYTwwKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcDogY2FuJ3QgZmluZCB0
aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTtpZih0aGlzLnJlYWRl
ci5zZXRJbmRleChhKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGcuWklQNjRfQ0VOVFJBTF9ESVJFQ1RP
UllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSwhdGhp
cy5pc1NpZ25hdHVyZSh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIsZy5a
SVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpJiYodGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlw
NjRDZW50cmFsRGlyPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGcuWklQNjRfQ0VO
VFJBTF9ESVJFQ1RPUllfRU5EKSx0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxE
aXI8MCkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIHRoZSBaSVA2
NCBlbmQgb2YgY2VudHJhbCBkaXJlY3RvcnkiKTt0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJl
bGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoZy5a
SVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRy
YWwoKX12YXIgZD10aGlzLmNlbnRyYWxEaXJPZmZzZXQrdGhpcy5jZW50cmFsRGlyU2l6ZTt0aGlz
LnppcDY0JiYoZCs9MjAsZCs9MTIrdGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemUpO3ZhciBlPWMt
ZDtpZihlPjApdGhpcy5pc1NpZ25hdHVyZShjLGcuQ0VOVFJBTF9GSUxFX0hFQURFUil8fCh0aGlz
LnJlYWRlci56ZXJvPWUpO2Vsc2UgaWYoZTwwKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHpp
cDogbWlzc2luZyAiK01hdGguYWJzKGUpKyIgYnl0ZXMuIil9LHByZXBhcmVSZWFkZXI6ZnVuY3Rp
b24oYSl7dGhpcy5yZWFkZXI9ZShhKX0sbG9hZDpmdW5jdGlvbihhKXt0aGlzLnByZXBhcmVSZWFk
ZXIoYSksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMu
cmVhZExvY2FsRmlsZXMoKX19LGIuZXhwb3J0cz1kfSx7Ii4vcmVhZGVyL3JlYWRlckZvciI6MjIs
Ii4vc2lnbmF0dXJlIjoyMywiLi9zdXBwb3J0IjozMCwiLi91dGY4IjozMSwiLi91dGlscyI6MzIs
Ii4vemlwRW50cnkiOjM0fV0sMzQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rp
b24gZChhLGIpe3RoaXMub3B0aW9ucz1hLHRoaXMubG9hZE9wdGlvbnM9Yn12YXIgZT1hKCIuL3Jl
YWRlci9yZWFkZXJGb3IiKSxmPWEoIi4vdXRpbHMiKSxnPWEoIi4vY29tcHJlc3NlZE9iamVjdCIp
LGg9YSgiLi9jcmMzMiIpLGk9YSgiLi91dGY4Iiksaj1hKCIuL2NvbXByZXNzaW9ucyIpLGs9YSgi
Li9zdXBwb3J0IiksbD0wLG09MyxuPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBqKWlmKGouaGFz
T3duUHJvcGVydHkoYikmJmpbYl0ubWFnaWM9PT1hKXJldHVybiBqW2JdO3JldHVybiBudWxsfTtk
LnByb3RvdHlwZT17aXNFbmNyeXB0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09PSgxJnRoaXMuYml0
RmxhZyl9LHVzZVVURjg6ZnVuY3Rpb24oKXtyZXR1cm4gMjA0OD09PSgyMDQ4JnRoaXMuYml0Rmxh
Zyl9LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhLnNraXAoMjIpLHRoaXMu
ZmlsZU5hbWVMZW5ndGg9YS5yZWFkSW50KDIpLGM9YS5yZWFkSW50KDIpLHRoaXMuZmlsZU5hbWU9
YS5yZWFkRGF0YSh0aGlzLmZpbGVOYW1lTGVuZ3RoKSxhLnNraXAoYyksdGhpcy5jb21wcmVzc2Vk
U2l6ZT09PS0xfHx0aGlzLnVuY29tcHJlc3NlZFNpemU9PT0tMSl0aHJvdyBuZXcgRXJyb3IoIkJ1
ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZyb20g
dGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PT0gLTEgfHwgdW5jb21wcmVz
c2VkU2l6ZSA9PT0gLTEpIik7aWYoYj1uKHRoaXMuY29tcHJlc3Npb25NZXRob2QpLG51bGw9PT1i
KXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNvbXByZXNzaW9uICIrZi5wcmV0dHko
dGhpcy5jb21wcmVzc2lvbk1ldGhvZCkrIiB1bmtub3duIChpbm5lciBmaWxlIDogIitmLnRyYW5z
Zm9ybVRvKCJzdHJpbmciLHRoaXMuZmlsZU5hbWUpKyIpIik7dGhpcy5kZWNvbXByZXNzZWQ9bmV3
IGcodGhpcy5jb21wcmVzc2VkU2l6ZSx0aGlzLnVuY29tcHJlc3NlZFNpemUsdGhpcy5jcmMzMixi
LGEucmVhZERhdGEodGhpcy5jb21wcmVzc2VkU2l6ZSkpfSxyZWFkQ2VudHJhbFBhcnQ6ZnVuY3Rp
b24oYSl7dGhpcy52ZXJzaW9uTWFkZUJ5PWEucmVhZEludCgyKSxhLnNraXAoMiksdGhpcy5iaXRG
bGFnPWEucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPWEucmVhZFN0cmluZygyKSx0
aGlzLmRhdGU9YS5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9YS5yZWFkSW50KDQpLHRoaXMuY29tcHJl
c3NlZFNpemU9YS5yZWFkSW50KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCk7
dmFyIGI9YS5yZWFkSW50KDIpO2lmKHRoaXMuZXh0cmFGaWVsZHNMZW5ndGg9YS5yZWFkSW50KDIp
LHRoaXMuZmlsZUNvbW1lbnRMZW5ndGg9YS5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlclN0YXJ0
PWEucmVhZEludCgyKSx0aGlzLmludGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFkSW50KDIpLHRo
aXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcz1hLnJlYWRJbnQoNCksdGhpcy5sb2NhbEhlYWRlck9m
ZnNldD1hLnJlYWRJbnQoNCksdGhpcy5pc0VuY3J5cHRlZCgpKXRocm93IG5ldyBFcnJvcigiRW5j
cnlwdGVkIHppcCBhcmUgbm90IHN1cHBvcnRlZCIpO2Euc2tpcChiKSx0aGlzLnJlYWRFeHRyYUZp
ZWxkcyhhKSx0aGlzLnBhcnNlWklQNjRFeHRyYUZpZWxkKGEpLHRoaXMuZmlsZUNvbW1lbnQ9YS5y
ZWFkRGF0YSh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKX0scHJvY2Vzc0F0dHJpYnV0ZXM6ZnVuY3Rp
b24oKXt0aGlzLnVuaXhQZXJtaXNzaW9ucz1udWxsLHRoaXMuZG9zUGVybWlzc2lvbnM9bnVsbDt2
YXIgYT10aGlzLnZlcnNpb25NYWRlQnk+Pjg7dGhpcy5kaXI9ISEoMTYmdGhpcy5leHRlcm5hbEZp
bGVBdHRyaWJ1dGVzKSxhPT09bCYmKHRoaXMuZG9zUGVybWlzc2lvbnM9NjMmdGhpcy5leHRlcm5h
bEZpbGVBdHRyaWJ1dGVzKSxhPT09bSYmKHRoaXMudW5peFBlcm1pc3Npb25zPXRoaXMuZXh0ZXJu
YWxGaWxlQXR0cmlidXRlcz4+MTYmNjU1MzUpLHRoaXMuZGlyfHwiLyIhPT10aGlzLmZpbGVOYW1l
U3RyLnNsaWNlKC0xKXx8KHRoaXMuZGlyPSEwKX0scGFyc2VaSVA2NEV4dHJhRmllbGQ6ZnVuY3Rp
b24oYSl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGI9ZSh0aGlzLmV4dHJhRmllbGRzWzFd
LnZhbHVlKTt0aGlzLnVuY29tcHJlc3NlZFNpemU9PT1mLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlz
LnVuY29tcHJlc3NlZFNpemU9Yi5yZWFkSW50KDgpKSx0aGlzLmNvbXByZXNzZWRTaXplPT09Zi5N
QVhfVkFMVUVfMzJCSVRTJiYodGhpcy5jb21wcmVzc2VkU2l6ZT1iLnJlYWRJbnQoOCkpLHRoaXMu
bG9jYWxIZWFkZXJPZmZzZXQ9PT1mLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmxvY2FsSGVhZGVy
T2Zmc2V0PWIucmVhZEludCg4KSksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9PT1mLk1BWF9WQUxVRV8z
MkJJVFMmJih0aGlzLmRpc2tOdW1iZXJTdGFydD1iLnJlYWRJbnQoNCkpfX0scmVhZEV4dHJhRmll
bGRzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPWEuaW5kZXgrdGhpcy5leHRyYUZpZWxkc0xlbmd0
aDtmb3IodGhpcy5leHRyYUZpZWxkc3x8KHRoaXMuZXh0cmFGaWVsZHM9e30pO2EuaW5kZXg8ZTsp
Yj1hLnJlYWRJbnQoMiksYz1hLnJlYWRJbnQoMiksZD1hLnJlYWREYXRhKGMpLHRoaXMuZXh0cmFG
aWVsZHNbYl09e2lkOmIsbGVuZ3RoOmMsdmFsdWU6ZH19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXt2
YXIgYT1rLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSI7aWYodGhpcy51c2VVVEY4KCkp
dGhpcy5maWxlTmFtZVN0cj1pLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29t
bWVudFN0cj1pLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgYj10aGlzLmZp
bmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtpZihudWxsIT09Yil0aGlzLmZpbGVOYW1lU3RyPWI7
ZWxzZXt2YXIgYz1mLnRyYW5zZm9ybVRvKGEsdGhpcy5maWxlTmFtZSk7dGhpcy5maWxlTmFtZVN0
cj10aGlzLmxvYWRPcHRpb25zLmRlY29kZUZpbGVOYW1lKGMpfXZhciBkPXRoaXMuZmluZEV4dHJh
RmllbGRVbmljb2RlQ29tbWVudCgpO2lmKG51bGwhPT1kKXRoaXMuZmlsZUNvbW1lbnRTdHI9ZDtl
bHNle3ZhciBlPWYudHJhbnNmb3JtVG8oYSx0aGlzLmZpbGVDb21tZW50KTt0aGlzLmZpbGVDb21t
ZW50U3RyPXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUoZSl9fX0sZmluZEV4dHJhRmll
bGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lm
KGEpe3ZhciBiPWUoYS52YWx1ZSk7cmV0dXJuIDEhPT1iLnJlYWRJbnQoMSk/bnVsbDpoKHRoaXMu
ZmlsZU5hbWUpIT09Yi5yZWFkSW50KDQpP251bGw6aS51dGY4ZGVjb2RlKGIucmVhZERhdGEoYS5s
ZW5ndGgtNSkpfXJldHVybiBudWxsfSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50OmZ1bmN0
aW9uKCl7dmFyIGE9dGhpcy5leHRyYUZpZWxkc1syNTQ2MV07aWYoYSl7dmFyIGI9ZShhLnZhbHVl
KTtyZXR1cm4gMSE9PWIucmVhZEludCgxKT9udWxsOmgodGhpcy5maWxlQ29tbWVudCkhPT1iLnJl
YWRJbnQoNCk/bnVsbDppLnV0ZjhkZWNvZGUoYi5yZWFkRGF0YShhLmxlbmd0aC01KSl9cmV0dXJu
IG51bGx9fSxiLmV4cG9ydHM9ZH0seyIuL2NvbXByZXNzZWRPYmplY3QiOjIsIi4vY29tcHJlc3Np
b25zIjozLCIuL2NyYzMyIjo0LCIuL3JlYWRlci9yZWFkZXJGb3IiOjIyLCIuL3N1cHBvcnQiOjMw
LCIuL3V0ZjgiOjMxLCIuL3V0aWxzIjozMn1dLDM1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJp
Y3QiO3ZhciBkPWEoIi4vc3RyZWFtL1N0cmVhbUhlbHBlciIpLGU9YSgiLi9zdHJlYW0vRGF0YVdv
cmtlciIpLGY9YSgiLi91dGY4IiksZz1hKCIuL2NvbXByZXNzZWRPYmplY3QiKSxoPWEoIi4vc3Ry
ZWFtL0dlbmVyaWNXb3JrZXIiKSxpPWZ1bmN0aW9uKGEsYixjKXt0aGlzLm5hbWU9YSx0aGlzLmRp
cj1jLmRpcix0aGlzLmRhdGU9Yy5kYXRlLHRoaXMuY29tbWVudD1jLmNvbW1lbnQsdGhpcy51bml4
UGVybWlzc2lvbnM9Yy51bml4UGVybWlzc2lvbnMsdGhpcy5kb3NQZXJtaXNzaW9ucz1jLmRvc1Bl
cm1pc3Npb25zLHRoaXMuX2RhdGE9Yix0aGlzLl9kYXRhQmluYXJ5PWMuYmluYXJ5LHRoaXMub3B0
aW9ucz17Y29tcHJlc3Npb246Yy5jb21wcmVzc2lvbixjb21wcmVzc2lvbk9wdGlvbnM6Yy5jb21w
cmVzc2lvbk9wdGlvbnN9fTtpLnByb3RvdHlwZT17aW50ZXJuYWxTdHJlYW06ZnVuY3Rpb24oYSl7
dmFyIGI9bnVsbCxjPSJzdHJpbmciO3RyeXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIk5vIG91dHB1
dCB0eXBlIHNwZWNpZmllZC4iKTtjPWEudG9Mb3dlckNhc2UoKTt2YXIgZT0ic3RyaW5nIj09PWN8
fCJ0ZXh0Ij09PWM7ImJpbmFyeXN0cmluZyIhPT1jJiYidGV4dCIhPT1jfHwoYz0ic3RyaW5nIiks
Yj10aGlzLl9kZWNvbXByZXNzV29ya2VyKCk7dmFyIGc9IXRoaXMuX2RhdGFCaW5hcnk7ZyYmIWUm
JihiPWIucGlwZShuZXcgZi5VdGY4RW5jb2RlV29ya2VyKSksIWcmJmUmJihiPWIucGlwZShuZXcg
Zi5VdGY4RGVjb2RlV29ya2VyKSl9Y2F0Y2goaSl7Yj1uZXcgaCgiZXJyb3IiKSxiLmVycm9yKGkp
fXJldHVybiBuZXcgZChiLGMsIiIpfSxhc3luYzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmlu
dGVybmFsU3RyZWFtKGEpLmFjY3VtdWxhdGUoYil9LG5vZGVTdHJlYW06ZnVuY3Rpb24oYSxiKXty
ZXR1cm4gdGhpcy5pbnRlcm5hbFN0cmVhbShhfHwibm9kZWJ1ZmZlciIpLnRvTm9kZWpzU3RyZWFt
KGIpfSxfY29tcHJlc3NXb3JrZXI6ZnVuY3Rpb24oYSxiKXtpZih0aGlzLl9kYXRhIGluc3RhbmNl
b2YgZyYmdGhpcy5fZGF0YS5jb21wcmVzc2lvbi5tYWdpYz09PWEubWFnaWMpcmV0dXJuIHRoaXMu
X2RhdGEuZ2V0Q29tcHJlc3NlZFdvcmtlcigpO3ZhciBjPXRoaXMuX2RlY29tcHJlc3NXb3JrZXIo
KTtyZXR1cm4gdGhpcy5fZGF0YUJpbmFyeXx8KGM9Yy5waXBlKG5ldyBmLlV0ZjhFbmNvZGVXb3Jr
ZXIpKSxnLmNyZWF0ZVdvcmtlckZyb20oYyxhLGIpfSxfZGVjb21wcmVzc1dvcmtlcjpmdW5jdGlv
bigpe3JldHVybiB0aGlzLl9kYXRhIGluc3RhbmNlb2YgZz90aGlzLl9kYXRhLmdldENvbnRlbnRX
b3JrZXIoKTp0aGlzLl9kYXRhIGluc3RhbmNlb2YgaD90aGlzLl9kYXRhOm5ldyBlKHRoaXMuX2Rh
dGEpfX07Zm9yKHZhciBqPVsiYXNUZXh0IiwiYXNCaW5hcnkiLCJhc05vZGVCdWZmZXIiLCJhc1Vp
bnQ4QXJyYXkiLCJhc0FycmF5QnVmZmVyIl0saz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigi
VGhpcyBtZXRob2QgaGFzIGJlZW4gcmVtb3ZlZCBpbiBKU1ppcCAzLjAsIHBsZWFzZSBjaGVjayB0
aGUgdXBncmFkZSBndWlkZS4iKX0sbD0wO2w8ai5sZW5ndGg7bCsrKWkucHJvdG90eXBlW2pbbF1d
PWs7Yi5leHBvcnRzPWl9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL3N0cmVhbS9EYXRhV29y
a2VyIjoyNywiLi9zdHJlYW0vR2VuZXJpY1dvcmtlciI6MjgsIi4vc3RyZWFtL1N0cmVhbUhlbHBl
ciI6MjksIi4vdXRmOCI6MzF9XSwzNjpbZnVuY3Rpb24oYSxiLGMpe2EoIi4uL21vZHVsZXMvd2Vi
LmltbWVkaWF0ZSIpLGIuZXhwb3J0cz1hKCIuLi9tb2R1bGVzL19jb3JlIikuc2V0SW1tZWRpYXRl
fSx7Ii4uL21vZHVsZXMvX2NvcmUiOjQwLCIuLi9tb2R1bGVzL3dlYi5pbW1lZGlhdGUiOjU2fV0s
Mzc6W2Z1bmN0aW9uKGEsYixjKXtiLmV4cG9ydHM9ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIiE9
dHlwZW9mIGEpdGhyb3cgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4g
YX19LHt9XSwzODpbZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEoIi4vX2lzLW9iamVjdCIpO2IuZXhw
b3J0cz1mdW5jdGlvbihhKXtpZighZChhKSl0aHJvdyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhbiBv
YmplY3QhIik7cmV0dXJuIGF9fSx7Ii4vX2lzLW9iamVjdCI6NTF9XSwzOTpbZnVuY3Rpb24oYSxi
LGMpe3ZhciBkPXt9LnRvU3RyaW5nO2IuZXhwb3J0cz1mdW5jdGlvbihhKXtyZXR1cm4gZC5jYWxs
KGEpLnNsaWNlKDgsLTEpfX0se31dLDQwOltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5leHBvcnRz
PXt2ZXJzaW9uOiIyLjMuMCJ9OyJudW1iZXIiPT10eXBlb2YgX19lJiYoX19lPWQpfSx7fV0sNDE6
W2Z1bmN0aW9uKGEsYixjKXt2YXIgZD1hKCIuL19hLWZ1bmN0aW9uIik7Yi5leHBvcnRzPWZ1bmN0
aW9uKGEsYixjKXtpZihkKGEpLHZvaWQgMD09PWIpcmV0dXJuIGE7c3dpdGNoKGMpe2Nhc2UgMTpy
ZXR1cm4gZnVuY3Rpb24oYyl7cmV0dXJuIGEuY2FsbChiLGMpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0
aW9uKGMsZCl7cmV0dXJuIGEuY2FsbChiLGMsZCl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oYyxk
LGUpe3JldHVybiBhLmNhbGwoYixjLGQsZSl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBhLmFw
cGx5KGIsYXJndW1lbnRzKX19fSx7Ii4vX2EtZnVuY3Rpb24iOjM3fV0sNDI6W2Z1bmN0aW9uKGEs
YixjKXtiLmV4cG9ydHM9IWEoIi4vX2ZhaWxzIikoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pfSx7
Ii4vX2ZhaWxzIjo0NX1dLDQzOltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9faXMtb2JqZWN0
IiksZT1hKCIuL19nbG9iYWwiKS5kb2N1bWVudCxmPWQoZSkmJmQoZS5jcmVhdGVFbGVtZW50KTti
LmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGY/ZS5jcmVhdGVFbGVtZW50KGEpOnt9fX0seyIu
L19nbG9iYWwiOjQ2LCIuL19pcy1vYmplY3QiOjUxfV0sNDQ6W2Z1bmN0aW9uKGEsYixjKXt2YXIg
ZD1hKCIuL19nbG9iYWwiKSxlPWEoIi4vX2NvcmUiKSxmPWEoIi4vX2N0eCIpLGc9YSgiLi9faGlk
ZSIpLGg9InByb3RvdHlwZSIsaT1mdW5jdGlvbihhLGIsYyl7dmFyIGosayxsLG09YSZpLkYsbj1h
JmkuRyxvPWEmaS5TLHA9YSZpLlAscT1hJmkuQixyPWEmaS5XLHM9bj9lOmVbYl18fChlW2JdPXt9
KSx0PXNbaF0sdT1uP2Q6bz9kW2JdOihkW2JdfHx7fSlbaF07biYmKGM9Yik7Zm9yKGogaW4gYylr
PSFtJiZ1JiZ2b2lkIDAhPT11W2pdLGsmJmogaW4gc3x8KGw9az91W2pdOmNbal0sc1tqXT1uJiYi
ZnVuY3Rpb24iIT10eXBlb2YgdVtqXT9jW2pdOnEmJms/ZihsLGQpOnImJnVbal09PWw/ZnVuY3Rp
b24oYSl7dmFyIGI9ZnVuY3Rpb24oYixjLGQpe2lmKHRoaXMgaW5zdGFuY2VvZiBhKXtzd2l0Y2go
YXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgYTtjYXNlIDE6cmV0dXJuIG5ldyBh
KGIpO2Nhc2UgMjpyZXR1cm4gbmV3IGEoYixjKX1yZXR1cm4gbmV3IGEoYixjLGQpfXJldHVybiBh
LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIGJbaF09YVtoXSxifShsKTpwJiYiZnVuY3Rp
b24iPT10eXBlb2YgbD9mKEZ1bmN0aW9uLmNhbGwsbCk6bCxwJiYoKHMudmlydHVhbHx8KHMudmly
dHVhbD17fSkpW2pdPWwsYSZpLlImJnQmJiF0W2pdJiZnKHQsaixsKSkpfTtpLkY9MSxpLkc9Mixp
LlM9NCxpLlA9OCxpLkI9MTYsaS5XPTMyLGkuVT02NCxpLlI9MTI4LGIuZXhwb3J0cz1pfSx7Ii4v
X2NvcmUiOjQwLCIuL19jdHgiOjQxLCIuL19nbG9iYWwiOjQ2LCIuL19oaWRlIjo0N31dLDQ1Oltm
dW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPWZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4hIWEoKX1jYXRj
aChiKXtyZXR1cm4hMH19fSx7fV0sNDY6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZD1iLmV4cG9ydHM9
InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5NYXRoPT1NYXRoP3dpbmRvdzoidW5k
ZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGYuTWF0aD09TWF0aD9zZWxmOkZ1bmN0aW9uKCJyZXR1
cm4gdGhpcyIpKCk7Im51bWJlciI9PXR5cGVvZiBfX2cmJihfX2c9ZCl9LHt9XSw0NzpbZnVuY3Rp
b24oYSxiLGMpe3ZhciBkPWEoIi4vX29iamVjdC1kcCIpLGU9YSgiLi9fcHJvcGVydHktZGVzYyIp
O2IuZXhwb3J0cz1hKCIuL19kZXNjcmlwdG9ycyIpP2Z1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5m
KGEsYixlKDEsYykpfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGFbYl09YyxhfX0seyIuL19kZXNj
cmlwdG9ycyI6NDIsIi4vX29iamVjdC1kcCI6NTIsIi4vX3Byb3BlcnR5LWRlc2MiOjUzfV0sNDg6
W2Z1bmN0aW9uKGEsYixjKXtiLmV4cG9ydHM9YSgiLi9fZ2xvYmFsIikuZG9jdW1lbnQmJmRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudH0seyIuL19nbG9iYWwiOjQ2fV0sNDk6W2Z1bmN0aW9uKGEsYixj
KXtiLmV4cG9ydHM9IWEoIi4vX2Rlc2NyaXB0b3JzIikmJiFhKCIuL19mYWlscyIpKGZ1bmN0aW9u
KCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShhKCIuL19kb20tY3JlYXRlIikoImRp
diIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pfSx7Ii4vX2Rlc2NyaXB0b3Jz
Ijo0MiwiLi9fZG9tLWNyZWF0ZSI6NDMsIi4vX2ZhaWxzIjo0NX1dLDUwOltmdW5jdGlvbihhLGIs
Yyl7Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD12b2lkIDA9PT1jO3N3aXRjaChiLmxl
bmd0aCl7Y2FzZSAwOnJldHVybiBkP2EoKTphLmNhbGwoYyk7Y2FzZSAxOnJldHVybiBkP2EoYlsw
XSk6YS5jYWxsKGMsYlswXSk7Y2FzZSAyOnJldHVybiBkP2EoYlswXSxiWzFdKTphLmNhbGwoYyxi
WzBdLGJbMV0pO2Nhc2UgMzpyZXR1cm4gZD9hKGJbMF0sYlsxXSxiWzJdKTphLmNhbGwoYyxiWzBd
LGJbMV0sYlsyXSk7Y2FzZSA0OnJldHVybiBkP2EoYlswXSxiWzFdLGJbMl0sYlszXSk6YS5jYWxs
KGMsYlswXSxiWzFdLGJbMl0sYlszXSl9cmV0dXJuIGEuYXBwbHkoYyxiKX19LHt9XSw1MTpbZnVu
Y3Rpb24oYSxiLGMpe2IuZXhwb3J0cz1mdW5jdGlvbihhKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9m
IGE/bnVsbCE9PWE6ImZ1bmN0aW9uIj09dHlwZW9mIGF9fSx7fV0sNTI6W2Z1bmN0aW9uKGEsYixj
KXt2YXIgZD1hKCIuL19hbi1vYmplY3QiKSxlPWEoIi4vX2llOC1kb20tZGVmaW5lIiksZj1hKCIu
L190by1wcmltaXRpdmUiKSxnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtjLmY9YSgiLi9fZGVzY3Jp
cHRvcnMiKT9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGQoYSksYj1m
KGIsITApLGQoYyksZSl0cnl7cmV0dXJuIGcoYSxiLGMpfWNhdGNoKGgpe31pZigiZ2V0ImluIGN8
fCJzZXQiaW4gYyl0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkISIpO3Jl
dHVybiJ2YWx1ZSJpbiBjJiYoYVtiXT1jLnZhbHVlKSxhfX0seyIuL19hbi1vYmplY3QiOjM4LCIu
L19kZXNjcmlwdG9ycyI6NDIsIi4vX2llOC1kb20tZGVmaW5lIjo0OSwiLi9fdG8tcHJpbWl0aXZl
Ijo1NX1dLDUzOltmdW5jdGlvbihhLGIsYyl7Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYil7cmV0dXJu
e2VudW1lcmFibGU6ISgxJmEpLGNvbmZpZ3VyYWJsZTohKDImYSksd3JpdGFibGU6ISg0JmEpLHZh
bHVlOmJ9fX0se31dLDU0OltmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGc9YSgiLi9fY3R4Iiks
aD1hKCIuL19pbnZva2UiKSxpPWEoIi4vX2h0bWwiKSxqPWEoIi4vX2RvbS1jcmVhdGUiKSxrPWEo
Ii4vX2dsb2JhbCIpLGw9ay5wcm9jZXNzLG09ay5zZXRJbW1lZGlhdGUsbj1rLmNsZWFySW1tZWRp
YXRlLG89ay5NZXNzYWdlQ2hhbm5lbCxwPTAscT17fSxyPSJvbnJlYWR5c3RhdGVjaGFuZ2UiLHM9
ZnVuY3Rpb24oKXt2YXIgYT0rdGhpcztpZihxLmhhc093blByb3BlcnR5KGEpKXt2YXIgYj1xW2Fd
O2RlbGV0ZSBxW2FdLGIoKX19LHQ9ZnVuY3Rpb24oYSl7cy5jYWxsKGEuZGF0YSl9O20mJm58fCht
PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTE7YXJndW1lbnRzLmxlbmd0aD5jOyliLnB1c2go
YXJndW1lbnRzW2MrK10pO3JldHVybiBxWysrcF09ZnVuY3Rpb24oKXtoKCJmdW5jdGlvbiI9PXR5
cGVvZiBhP2E6RnVuY3Rpb24oYSksYil9LGQocCkscH0sbj1mdW5jdGlvbihhKXtkZWxldGUgcVth
XX0sInByb2Nlc3MiPT1hKCIuL19jb2YiKShsKT9kPWZ1bmN0aW9uKGEpe2wubmV4dFRpY2soZyhz
LGEsMSkpfTpvPyhlPW5ldyBvLGY9ZS5wb3J0MixlLnBvcnQxLm9ubWVzc2FnZT10LGQ9ZyhmLnBv
c3RNZXNzYWdlLGYsMSkpOmsuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBv
c3RNZXNzYWdlJiYhay5pbXBvcnRTY3JpcHRzPyhkPWZ1bmN0aW9uKGEpe2sucG9zdE1lc3NhZ2Uo
YSsiIiwiKiIpfSxrLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHQsITEpKTpkPXIgaW4gaigi
c2NyaXB0Iik/ZnVuY3Rpb24oYSl7aS5hcHBlbmRDaGlsZChqKCJzY3JpcHQiKSlbcl09ZnVuY3Rp
b24oKXtpLnJlbW92ZUNoaWxkKHRoaXMpLHMuY2FsbChhKX19OmZ1bmN0aW9uKGEpe3NldFRpbWVv
dXQoZyhzLGEsMSksMCl9KSxiLmV4cG9ydHM9e3NldDptLGNsZWFyOm59fSx7Ii4vX2NvZiI6Mzks
Ii4vX2N0eCI6NDEsIi4vX2RvbS1jcmVhdGUiOjQzLCIuL19nbG9iYWwiOjQ2LCIuL19odG1sIjo0
OCwiLi9faW52b2tlIjo1MH1dLDU1OltmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSgiLi9faXMtb2Jq
ZWN0Iik7Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYil7aWYoIWQoYSkpcmV0dXJuIGE7dmFyIGMsZTtp
ZihiJiYiZnVuY3Rpb24iPT10eXBlb2YoYz1hLnRvU3RyaW5nKSYmIWQoZT1jLmNhbGwoYSkpKXJl
dHVybiBlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihjPWEudmFsdWVPZikmJiFkKGU9Yy5jYWxsKGEp
KSlyZXR1cm4gZTtpZighYiYmImZ1bmN0aW9uIj09dHlwZW9mKGM9YS50b1N0cmluZykmJiFkKGU9
Yy5jYWxsKGEpKSlyZXR1cm4gZTt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0
IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0seyIuL19pcy1vYmplY3QiOjUxfV0sNTY6W2Z1bmN0aW9u
KGEsYixjKXt2YXIgZD1hKCIuL19leHBvcnQiKSxlPWEoIi4vX3Rhc2siKTtkKGQuRytkLkIse3Nl
dEltbWVkaWF0ZTplLnNldCxjbGVhckltbWVkaWF0ZTplLmNsZWFyfSl9LHsiLi9fZXhwb3J0Ijo0
NCwiLi9fdGFzayI6NTR9XSw1NzpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihhKXsidXNlIHN0
cmljdCI7ZnVuY3Rpb24gYygpe2s9ITA7Zm9yKHZhciBhLGIsYz1sLmxlbmd0aDtjOyl7Zm9yKGI9
bCxsPVtdLGE9LTE7KythPGM7KWJbYV0oKTtjPWwubGVuZ3RofWs9ITF9ZnVuY3Rpb24gZChhKXsx
IT09bC5wdXNoKGEpfHxrfHxlKCl9dmFyIGUsZj1hLk11dGF0aW9uT2JzZXJ2ZXJ8fGEuV2ViS2l0
TXV0YXRpb25PYnNlcnZlcjtpZihmKXt2YXIgZz0wLGg9bmV3IGYoYyksaT1hLmRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCIiKTtoLm9ic2VydmUoaSx7Y2hhcmFjdGVyRGF0YTohMH0pLGU9ZnVuY3Rp
b24oKXtpLmRhdGE9Zz0rK2clMn19ZWxzZSBpZihhLnNldEltbWVkaWF0ZXx8InVuZGVmaW5lZCI9
PXR5cGVvZiBhLk1lc3NhZ2VDaGFubmVsKWU9ImRvY3VtZW50ImluIGEmJiJvbnJlYWR5c3RhdGVj
aGFuZ2UiaW4gYS5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKT9mdW5jdGlvbigpe3Zh
ciBiPWEuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Yi5vbnJlYWR5c3RhdGVjaGFu
Z2U9ZnVuY3Rpb24oKXtjKCksYi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxiLnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQoYiksYj1udWxsfSxhLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRD
aGlsZChiKX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGMsMCl9O2Vsc2V7dmFyIGo9bmV3IGEuTWVz
c2FnZUNoYW5uZWw7ai5wb3J0MS5vbm1lc3NhZ2U9YyxlPWZ1bmN0aW9uKCl7ai5wb3J0Mi5wb3N0
TWVzc2FnZSgwKX19dmFyIGssbD1bXTtiLmV4cG9ydHM9ZH0pLmNhbGwodGhpcywidW5kZWZpbmVk
IiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVu
ZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDU4OltmdW5jdGlvbihhLGIs
Yyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoKXt9ZnVuY3Rpb24gZShhKXtpZigiZnVuY3Rpb24i
IT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJyZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rp
b24iKTt0aGlzLnN0YXRlPXMsdGhpcy5xdWV1ZT1bXSx0aGlzLm91dGNvbWU9dm9pZCAwLGEhPT1k
JiZpKHRoaXMsYSl9ZnVuY3Rpb24gZihhLGIsYyl7dGhpcy5wcm9taXNlPWEsImZ1bmN0aW9uIj09
dHlwZW9mIGImJih0aGlzLm9uRnVsZmlsbGVkPWIsdGhpcy5jYWxsRnVsZmlsbGVkPXRoaXMub3Ro
ZXJDYWxsRnVsZmlsbGVkKSwiZnVuY3Rpb24iPT10eXBlb2YgYyYmKHRoaXMub25SZWplY3RlZD1j
LHRoaXMuY2FsbFJlamVjdGVkPXRoaXMub3RoZXJDYWxsUmVqZWN0ZWQpfWZ1bmN0aW9uIGcoYSxi
LGMpe28oZnVuY3Rpb24oKXt2YXIgZDt0cnl7ZD1iKGMpfWNhdGNoKGUpe3JldHVybiBwLnJlamVj
dChhLGUpfWQ9PT1hP3AucmVqZWN0KGEsbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlc29sdmUgcHJv
bWlzZSB3aXRoIGl0c2VsZiIpKTpwLnJlc29sdmUoYSxkKX0pfWZ1bmN0aW9uIGgoYSl7dmFyIGI9
YSYmYS50aGVuO2lmKGEmJigib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBh
KSYmImZ1bmN0aW9uIj09dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7Yi5hcHBseShhLGFyZ3Vt
ZW50cyl9fWZ1bmN0aW9uIGkoYSxiKXtmdW5jdGlvbiBjKGIpe2Z8fChmPSEwLHAucmVqZWN0KGEs
YikpfWZ1bmN0aW9uIGQoYil7Znx8KGY9ITAscC5yZXNvbHZlKGEsYikpfWZ1bmN0aW9uIGUoKXti
KGQsYyl9dmFyIGY9ITEsZz1qKGUpOyJlcnJvciI9PT1nLnN0YXR1cyYmYyhnLnZhbHVlKX1mdW5j
dGlvbiBqKGEsYil7dmFyIGM9e307dHJ5e2MudmFsdWU9YShiKSxjLnN0YXR1cz0ic3VjY2VzcyJ9
Y2F0Y2goZCl7Yy5zdGF0dXM9ImVycm9yIixjLnZhbHVlPWR9cmV0dXJuIGN9ZnVuY3Rpb24gayhh
KXtyZXR1cm4gYSBpbnN0YW5jZW9mIHRoaXM/YTpwLnJlc29sdmUobmV3IHRoaXMoZCksYSl9ZnVu
Y3Rpb24gbChhKXt2YXIgYj1uZXcgdGhpcyhkKTtyZXR1cm4gcC5yZWplY3QoYixhKX1mdW5jdGlv
biBtKGEpe2Z1bmN0aW9uIGIoYSxiKXtmdW5jdGlvbiBkKGEpe2dbYl09YSwrK2ghPT1lfHxmfHwo
Zj0hMCxwLnJlc29sdmUoaixnKSl9Yy5yZXNvbHZlKGEpLnRoZW4oZCxmdW5jdGlvbihhKXtmfHwo
Zj0hMCxwLnJlamVjdChqLGEpKX0pfXZhciBjPXRoaXM7aWYoIltvYmplY3QgQXJyYXldIiE9PU9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKSlyZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5
cGVFcnJvcigibXVzdCBiZSBhbiBhcnJheSIpKTt2YXIgZT1hLmxlbmd0aCxmPSExO2lmKCFlKXJl
dHVybiB0aGlzLnJlc29sdmUoW10pO2Zvcih2YXIgZz1uZXcgQXJyYXkoZSksaD0wLGk9LTEsaj1u
ZXcgdGhpcyhkKTsrK2k8ZTspYihhW2ldLGkpO3JldHVybiBqfWZ1bmN0aW9uIG4oYSl7ZnVuY3Rp
b24gYihhKXtjLnJlc29sdmUoYSkudGhlbihmdW5jdGlvbihhKXtmfHwoZj0hMCxwLnJlc29sdmUo
aCxhKSl9LGZ1bmN0aW9uKGEpe2Z8fChmPSEwLHAucmVqZWN0KGgsYSkpfSl9dmFyIGM9dGhpcztp
ZigiW29iamVjdCBBcnJheV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpKXJl
dHVybiB0aGlzLnJlamVjdChuZXcgVHlwZUVycm9yKCJtdXN0IGJlIGFuIGFycmF5IikpO3ZhciBl
PWEubGVuZ3RoLGY9ITE7aWYoIWUpcmV0dXJuIHRoaXMucmVzb2x2ZShbXSk7Zm9yKHZhciBnPS0x
LGg9bmV3IHRoaXMoZCk7KytnPGU7KWIoYVtnXSk7cmV0dXJuIGh9dmFyIG89YSgiaW1tZWRpYXRl
IikscD17fSxxPVsiUkVKRUNURUQiXSxyPVsiRlVMRklMTEVEIl0scz1bIlBFTkRJTkciXTtiLmV4
cG9ydHM9ZSxlLnByb3RvdHlwZVsiY2F0Y2giXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy50aGVu
KG51bGwsYSl9LGUucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oYSxiKXtpZigiZnVuY3Rpb24iIT10
eXBlb2YgYSYmdGhpcy5zdGF0ZT09PXJ8fCJmdW5jdGlvbiIhPXR5cGVvZiBiJiZ0aGlzLnN0YXRl
PT09cSlyZXR1cm4gdGhpczt2YXIgYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihkKTtpZih0aGlzLnN0
YXRlIT09cyl7dmFyIGU9dGhpcy5zdGF0ZT09PXI/YTpiO2coYyxlLHRoaXMub3V0Y29tZSl9ZWxz
ZSB0aGlzLnF1ZXVlLnB1c2gobmV3IGYoYyxhLGIpKTtyZXR1cm4gY30sZi5wcm90b3R5cGUuY2Fs
bEZ1bGZpbGxlZD1mdW5jdGlvbihhKXtwLnJlc29sdmUodGhpcy5wcm9taXNlLGEpfSxmLnByb3Rv
dHlwZS5vdGhlckNhbGxGdWxmaWxsZWQ9ZnVuY3Rpb24oYSl7Zyh0aGlzLnByb21pc2UsdGhpcy5v
bkZ1bGZpbGxlZCxhKX0sZi5wcm90b3R5cGUuY2FsbFJlamVjdGVkPWZ1bmN0aW9uKGEpe3AucmVq
ZWN0KHRoaXMucHJvbWlzZSxhKX0sZi5wcm90b3R5cGUub3RoZXJDYWxsUmVqZWN0ZWQ9ZnVuY3Rp
b24oYSl7Zyh0aGlzLnByb21pc2UsdGhpcy5vblJlamVjdGVkLGEpfSxwLnJlc29sdmU9ZnVuY3Rp
b24oYSxiKXt2YXIgYz1qKGgsYik7aWYoImVycm9yIj09PWMuc3RhdHVzKXJldHVybiBwLnJlamVj
dChhLGMudmFsdWUpO3ZhciBkPWMudmFsdWU7aWYoZClpKGEsZCk7ZWxzZXthLnN0YXRlPXIsYS5v
dXRjb21lPWI7Zm9yKHZhciBlPS0xLGY9YS5xdWV1ZS5sZW5ndGg7KytlPGY7KWEucXVldWVbZV0u
Y2FsbEZ1bGZpbGxlZChiKX1yZXR1cm4gYX0scC5yZWplY3Q9ZnVuY3Rpb24oYSxiKXthLnN0YXRl
PXEsYS5vdXRjb21lPWI7Zm9yKHZhciBjPS0xLGQ9YS5xdWV1ZS5sZW5ndGg7KytjPGQ7KWEucXVl
dWVbY10uY2FsbFJlamVjdGVkKGIpO3JldHVybiBhfSxlLnJlc29sdmU9ayxlLnJlamVjdD1sLGUu
YWxsPW0sZS5yYWNlPW59LHtpbW1lZGlhdGU6NTd9XSw1OTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ug
c3RyaWN0Ijt2YXIgZD1hKCIuL2xpYi91dGlscy9jb21tb24iKS5hc3NpZ24sZT1hKCIuL2xpYi9k
ZWZsYXRlIiksZj1hKCIuL2xpYi9pbmZsYXRlIiksZz1hKCIuL2xpYi96bGliL2NvbnN0YW50cyIp
LGg9e307ZChoLGUsZixnKSxiLmV4cG9ydHM9aH0seyIuL2xpYi9kZWZsYXRlIjo2MCwiLi9saWIv
aW5mbGF0ZSI6NjEsIi4vbGliL3V0aWxzL2NvbW1vbiI6NjIsIi4vbGliL3psaWIvY29uc3RhbnRz
Ijo2NX1dLDYwOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7aWYo
ISh0aGlzIGluc3RhbmNlb2YgZCkpcmV0dXJuIG5ldyBkKGEpO3RoaXMub3B0aW9ucz1pLmFzc2ln
bih7bGV2ZWw6cyxtZXRob2Q6dSxjaHVua1NpemU6MTYzODQsd2luZG93Qml0czoxNSxtZW1MZXZl
bDo4LHN0cmF0ZWd5OnQsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIu
d2luZG93Qml0cz4wP2Iud2luZG93Qml0cz0tYi53aW5kb3dCaXRzOmIuZ3ppcCYmYi53aW5kb3dC
aXRzPjAmJmIud2luZG93Qml0czwxNiYmKGIud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhp
cy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGwsdGhp
cy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWguZGVmbGF0ZUluaXQyKHRoaXMuc3RybSxiLmxldmVs
LGIubWV0aG9kLGIud2luZG93Qml0cyxiLm1lbUxldmVsLGIuc3RyYXRlZ3kpO2lmKGMhPT1wKXRo
cm93IG5ldyBFcnJvcihrW2NdKTtpZihiLmhlYWRlciYmaC5kZWZsYXRlU2V0SGVhZGVyKHRoaXMu
c3RybSxiLmhlYWRlciksYi5kaWN0aW9uYXJ5KXt2YXIgZTtpZihlPSJzdHJpbmciPT10eXBlb2Yg
Yi5kaWN0aW9uYXJ5P2ouc3RyaW5nMmJ1ZihiLmRpY3Rpb25hcnkpOiJbb2JqZWN0IEFycmF5QnVm
ZmVyXSI9PT1tLmNhbGwoYi5kaWN0aW9uYXJ5KT9uZXcgVWludDhBcnJheShiLmRpY3Rpb25hcnkp
OmIuZGljdGlvbmFyeSxjPWguZGVmbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLGUpLGMhPT1w
KXRocm93IG5ldyBFcnJvcihrW2NdKTt0aGlzLl9kaWN0X3NldD0hMH19ZnVuY3Rpb24gZShhLGIp
e3ZhciBjPW5ldyBkKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0aHJvdyBjLm1zZ3x8a1tjLmVy
cl07cmV0dXJuIGMucmVzdWx0fWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLnJhdz0h
MCxlKGEsYil9ZnVuY3Rpb24gZyhhLGIpe3JldHVybiBiPWJ8fHt9LGIuZ3ppcD0hMCxlKGEsYil9
dmFyIGg9YSgiLi96bGliL2RlZmxhdGUiKSxpPWEoIi4vdXRpbHMvY29tbW9uIiksaj1hKCIuL3V0
aWxzL3N0cmluZ3MiKSxrPWEoIi4vemxpYi9tZXNzYWdlcyIpLGw9YSgiLi96bGliL3pzdHJlYW0i
KSxtPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbj0wLG89NCxwPTAscT0xLHI9MixzPS0xLHQ9
MCx1PTg7ZC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZT10aGlzLnN0cm0s
Zj10aGlzLm9wdGlvbnMuY2h1bmtTaXplO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7ZD1iPT09fn5i
P2I6Yj09PSEwP286biwic3RyaW5nIj09dHlwZW9mIGE/ZS5pbnB1dD1qLnN0cmluZzJidWYoYSk6
IltvYmplY3QgQXJyYXlCdWZmZXJdIj09PW0uY2FsbChhKT9lLmlucHV0PW5ldyBVaW50OEFycmF5
KGEpOmUuaW5wdXQ9YSxlLm5leHRfaW49MCxlLmF2YWlsX2luPWUuaW5wdXQubGVuZ3RoO2Rve2lm
KDA9PT1lLmF2YWlsX291dCYmKGUub3V0cHV0PW5ldyBpLkJ1ZjgoZiksZS5uZXh0X291dD0wLGUu
YXZhaWxfb3V0PWYpLGM9aC5kZWZsYXRlKGUsZCksYyE9PXEmJmMhPT1wKXJldHVybiB0aGlzLm9u
RW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7MCE9PWUuYXZhaWxfb3V0JiYoMCE9PWUuYXZhaWxfaW58
fGQhPT1vJiZkIT09cil8fCgic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLm9uRGF0YShq
LmJ1ZjJiaW5zdHJpbmcoaS5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0X291dCkpKTp0aGlzLm9u
RGF0YShpLnNocmlua0J1ZihlLm91dHB1dCxlLm5leHRfb3V0KSkpfXdoaWxlKChlLmF2YWlsX2lu
PjB8fDA9PT1lLmF2YWlsX291dCkmJmMhPT1xKTtyZXR1cm4gZD09PW8/KGM9aC5kZWZsYXRlRW5k
KHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1wKTpkIT09cnx8KHRo
aXMub25FbmQocCksZS5hdmFpbF9vdXQ9MCwhMCl9LGQucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlv
bihhKXt0aGlzLmNodW5rcy5wdXNoKGEpfSxkLnByb3RvdHlwZS5vbkVuZD1mdW5jdGlvbihhKXth
PT09cCYmKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMucmVzdWx0PXRoaXMuY2h1bmtz
LmpvaW4oIiIpOnRoaXMucmVzdWx0PWkuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMu
Y2h1bmtzPVtdLHRoaXMuZXJyPWEsdGhpcy5tc2c9dGhpcy5zdHJtLm1zZ30sYy5EZWZsYXRlPWQs
Yy5kZWZsYXRlPWUsYy5kZWZsYXRlUmF3PWYsYy5nemlwPWd9LHsiLi91dGlscy9jb21tb24iOjYy
LCIuL3V0aWxzL3N0cmluZ3MiOjYzLCIuL3psaWIvZGVmbGF0ZSI6NjcsIi4vemxpYi9tZXNzYWdl
cyI6NzIsIi4vemxpYi96c3RyZWFtIjo3NH1dLDYxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJp
Y3QiO2Z1bmN0aW9uIGQoYSl7aWYoISh0aGlzIGluc3RhbmNlb2YgZCkpcmV0dXJuIG5ldyBkKGEp
O3RoaXMub3B0aW9ucz1oLmFzc2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzoi
In0sYXx8e30pO3ZhciBiPXRoaXMub3B0aW9ucztiLnJhdyYmYi53aW5kb3dCaXRzPj0wJiZiLndp
bmRvd0JpdHM8MTYmJihiLndpbmRvd0JpdHM9LWIud2luZG93Qml0cywwPT09Yi53aW5kb3dCaXRz
JiYoYi53aW5kb3dCaXRzPS0xNSkpLCEoYi53aW5kb3dCaXRzPj0wJiZiLndpbmRvd0JpdHM8MTYp
fHxhJiZhLndpbmRvd0JpdHN8fChiLndpbmRvd0JpdHMrPTMyKSxiLndpbmRvd0JpdHM+MTUmJmIu
d2luZG93Qml0czw0OCYmMD09PSgxNSZiLndpbmRvd0JpdHMpJiYoYi53aW5kb3dCaXRzfD0xNSks
dGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMu
c3RybT1uZXcgbCx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIGM9Zy5pbmZsYXRlSW5pdDIodGhp
cy5zdHJtLGIud2luZG93Qml0cyk7aWYoYyE9PWouWl9PSyl0aHJvdyBuZXcgRXJyb3Ioa1tjXSk7
dGhpcy5oZWFkZXI9bmV3IG0sZy5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRl
cil9ZnVuY3Rpb24gZShhLGIpe3ZhciBjPW5ldyBkKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0
aHJvdyBjLm1zZ3x8a1tjLmVycl07cmV0dXJuIGMucmVzdWx0fWZ1bmN0aW9uIGYoYSxiKXtyZXR1
cm4gYj1ifHx7fSxiLnJhdz0hMCxlKGEsYil9dmFyIGc9YSgiLi96bGliL2luZmxhdGUiKSxoPWEo
Ii4vdXRpbHMvY29tbW9uIiksaT1hKCIuL3V0aWxzL3N0cmluZ3MiKSxqPWEoIi4vemxpYi9jb25z
dGFudHMiKSxrPWEoIi4vemxpYi9tZXNzYWdlcyIpLGw9YSgiLi96bGliL3pzdHJlYW0iKSxtPWEo
Ii4vemxpYi9nemhlYWRlciIpLG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztkLnByb3RvdHlw
ZS5wdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsayxsLG09dGhpcy5zdHJtLG89dGhpcy5v
cHRpb25zLmNodW5rU2l6ZSxwPXRoaXMub3B0aW9ucy5kaWN0aW9uYXJ5LHE9ITE7aWYodGhpcy5l
bmRlZClyZXR1cm4hMTtkPWI9PT1+fmI/YjpiPT09ITA/ai5aX0ZJTklTSDpqLlpfTk9fRkxVU0gs
InN0cmluZyI9PXR5cGVvZiBhP20uaW5wdXQ9aS5iaW5zdHJpbmcyYnVmKGEpOiJbb2JqZWN0IEFy
cmF5QnVmZmVyXSI9PT1uLmNhbGwoYSk/bS5pbnB1dD1uZXcgVWludDhBcnJheShhKTptLmlucHV0
PWEsbS5uZXh0X2luPTAsbS5hdmFpbF9pbj1tLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09bS5hdmFp
bF9vdXQmJihtLm91dHB1dD1uZXcgaC5CdWY4KG8pLG0ubmV4dF9vdXQ9MCxtLmF2YWlsX291dD1v
KSxjPWcuaW5mbGF0ZShtLGouWl9OT19GTFVTSCksYz09PWouWl9ORUVEX0RJQ1QmJnAmJihsPSJz
dHJpbmciPT10eXBlb2YgcD9pLnN0cmluZzJidWYocCk6IltvYmplY3QgQXJyYXlCdWZmZXJdIj09
PW4uY2FsbChwKT9uZXcgVWludDhBcnJheShwKTpwLGM9Zy5pbmZsYXRlU2V0RGljdGlvbmFyeSh0
aGlzLnN0cm0sbCkpLGM9PT1qLlpfQlVGX0VSUk9SJiZxPT09ITAmJihjPWouWl9PSyxxPSExKSxj
IT09ai5aX1NUUkVBTV9FTkQmJmMhPT1qLlpfT0spcmV0dXJuIHRoaXMub25FbmQoYyksdGhpcy5l
bmRlZD0hMCwhMTttLm5leHRfb3V0JiYoMCE9PW0uYXZhaWxfb3V0JiZjIT09ai5aX1NUUkVBTV9F
TkQmJigwIT09bS5hdmFpbF9pbnx8ZCE9PWouWl9GSU5JU0gmJmQhPT1qLlpfU1lOQ19GTFVTSCl8
fCgic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz8oZT1pLnV0Zjhib3JkZXIobS5vdXRwdXQsbS5u
ZXh0X291dCksZj1tLm5leHRfb3V0LWUsaz1pLmJ1ZjJzdHJpbmcobS5vdXRwdXQsZSksbS5uZXh0
X291dD1mLG0uYXZhaWxfb3V0PW8tZixmJiZoLmFycmF5U2V0KG0ub3V0cHV0LG0ub3V0cHV0LGUs
ZiwwKSx0aGlzLm9uRGF0YShrKSk6dGhpcy5vbkRhdGEoaC5zaHJpbmtCdWYobS5vdXRwdXQsbS5u
ZXh0X291dCkpKSksMD09PW0uYXZhaWxfaW4mJjA9PT1tLmF2YWlsX291dCYmKHE9ITApfXdoaWxl
KChtLmF2YWlsX2luPjB8fDA9PT1tLmF2YWlsX291dCkmJmMhPT1qLlpfU1RSRUFNX0VORCk7cmV0
dXJuIGM9PT1qLlpfU1RSRUFNX0VORCYmKGQ9ai5aX0ZJTklTSCksZD09PWouWl9GSU5JU0g/KGM9
Zy5pbmZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1q
LlpfT0spOmQhPT1qLlpfU1lOQ19GTFVTSHx8KHRoaXMub25FbmQoai5aX09LKSxtLmF2YWlsX291
dD0wLCEwKX0sZC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2go
YSl9LGQucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1qLlpfT0smJigic3RyaW5nIj09
PXRoaXMub3B0aW9ucy50bz90aGlzLnJlc3VsdD10aGlzLmNodW5rcy5qb2luKCIiKTp0aGlzLnJl
c3VsdD1oLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVy
cj1hLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGMuSW5mbGF0ZT1kLGMuaW5mbGF0ZT1lLGMuaW5m
bGF0ZVJhdz1mLGMudW5nemlwPWV9LHsiLi91dGlscy9jb21tb24iOjYyLCIuL3V0aWxzL3N0cmlu
Z3MiOjYzLCIuL3psaWIvY29uc3RhbnRzIjo2NSwiLi96bGliL2d6aGVhZGVyIjo2OCwiLi96bGli
L2luZmxhdGUiOjcwLCIuL3psaWIvbWVzc2FnZXMiOjcyLCIuL3psaWIvenN0cmVhbSI6NzR9XSw2
MjpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9m
IFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQi
IT10eXBlb2YgSW50MzJBcnJheTtjLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXku
cHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlm
dCgpO2lmKGMpe2lmKCJvYmplY3QiIT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKGMrIm11
c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgZCBpbiBjKWMuaGFzT3duUHJvcGVydHkoZCkmJihh
W2RdPWNbZF0pfX1yZXR1cm4gYX0sYy5zaHJpbmtCdWY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5s
ZW5ndGg9PT1iP2E6YS5zdWJhcnJheT9hLnN1YmFycmF5KDAsYik6KGEubGVuZ3RoPWIsYSl9O3Zh
ciBlPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGIuc3ViYXJyYXkmJmEuc3ViYXJy
YXkpcmV0dXJuIHZvaWQgYS5zZXQoYi5zdWJhcnJheShjLGMrZCksZSk7Zm9yKHZhciBmPTA7Zjxk
O2YrKylhW2UrZl09YltjK2ZdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxl
LGYsZztmb3IoZD0wLGI9MCxjPWEubGVuZ3RoO2I8YztiKyspZCs9YVtiXS5sZW5ndGg7Zm9yKGc9
bmV3IFVpbnQ4QXJyYXkoZCksZT0wLGI9MCxjPWEubGVuZ3RoO2I8YztiKyspZj1hW2JdLGcuc2V0
KGYsZSksZSs9Zi5sZW5ndGg7cmV0dXJuIGd9fSxmPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxk
LGUpe2Zvcih2YXIgZj0wO2Y8ZDtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5rczpmdW5j
dGlvbihhKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sYSl9fTtjLnNldFR5cGVkPWZ1bmN0aW9u
KGEpe2E/KGMuQnVmOD1VaW50OEFycmF5LGMuQnVmMTY9VWludDE2QXJyYXksYy5CdWYzMj1JbnQz
MkFycmF5LGMuYXNzaWduKGMsZSkpOihjLkJ1Zjg9QXJyYXksYy5CdWYxNj1BcnJheSxjLkJ1ZjMy
PUFycmF5LGMuYXNzaWduKGMsZikpfSxjLnNldFR5cGVkKGQpfSx7fV0sNjM6W2Z1bmN0aW9uKGEs
YixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKGI8NjU1MzcmJihhLnN1YmFycmF5
JiZnfHwhYS5zdWJhcnJheSYmZikpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVs
bCxlLnNocmlua0J1ZihhLGIpKTtmb3IodmFyIGM9IiIsZD0wO2Q8YjtkKyspYys9U3RyaW5nLmZy
b21DaGFyQ29kZShhW2RdKTtyZXR1cm4gY312YXIgZT1hKCIuL2NvbW1vbiIpLGY9ITAsZz0hMDt0
cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2goaCl7Zj0hMX10cnl7
U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaCho
KXtnPSExfWZvcih2YXIgaT1uZXcgZS5CdWY4KDI1Niksaj0wO2o8MjU2O2orKylpW2pdPWo+PTI1
Mj82Omo+PTI0OD81Omo+PTI0MD80Omo+PTIyND8zOmo+PTE5Mj8yOjE7aVsyNTRdPWlbMjU0XT0x
LGMuc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXt2YXIgYixjLGQsZixnLGg9YS5sZW5ndGgsaT0wO2Zv
cihmPTA7ZjxoO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmZisxPGgm
JihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5
Njw8MTApKyhkLTU2MzIwKSxmKyspKSxpKz1jPDEyOD8xOmM8MjA0OD8yOmM8NjU1MzY/Mzo0O2Zv
cihiPW5ldyBlLkJ1ZjgoaSksZz0wLGY9MDtnPGk7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2
PT09KDY0NTEyJmMpJiZmKzE8aCYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTIm
ZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLGM8MTI4P2JbZysrXT1j
OmM8MjA0OD8oYltnKytdPTE5MnxjPj4+NixiW2crK109MTI4fDYzJmMpOmM8NjU1MzY/KGJbZysr
XT0yMjR8Yz4+PjEyLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTooYltnKytd
PTI0MHxjPj4+MTgsYltnKytdPTEyOHxjPj4+MTImNjMsYltnKytdPTEyOHxjPj4+NiY2MyxiW2cr
K109MTI4fDYzJmMpO3JldHVybiBifSxjLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJu
IGQoYSxhLmxlbmd0aCl9LGMuYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3
IGUuQnVmOChhLmxlbmd0aCksYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKyliW2NdPWEuY2hhckNvZGVB
dChjKTtyZXR1cm4gYn0sYy5idWYyc3RyaW5nPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaD1i
fHxhLmxlbmd0aCxqPW5ldyBBcnJheSgyKmgpO2ZvcihlPTAsYz0wO2M8aDspaWYoZj1hW2MrK10s
ZjwxMjgpaltlKytdPWY7ZWxzZSBpZihnPWlbZl0sZz40KWpbZSsrXT02NTUzMyxjKz1nLTE7ZWxz
ZXtmb3IoZiY9Mj09PWc/MzE6Mz09PWc/MTU6NztnPjEmJmM8aDspZj1mPDw2fDYzJmFbYysrXSxn
LS07Zz4xP2pbZSsrXT02NTUzMzpmPDY1NTM2P2pbZSsrXT1mOihmLT02NTUzNixqW2UrK109NTUy
OTZ8Zj4+MTAmMTAyMyxqW2UrK109NTYzMjB8MTAyMyZmKX1yZXR1cm4gZChqLGUpfSxjLnV0Zjhi
b3JkZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYo
Yj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiBjPDA/
YjowPT09Yz9iOmMraVthW2NdXT5iP2M6Yn19LHsiLi9jb21tb24iOjYyfV0sNjQ6W2Z1bmN0aW9u
KGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIsYyxkKXtmb3IodmFyIGU9NjU1MzUm
YXwwLGY9YT4+PjE2JjY1NTM1fDAsZz0wOzAhPT1jOyl7Zz1jPjJlMz8yZTM6YyxjLT1nO2RvIGU9
ZStiW2QrK118MCxmPWYrZXwwO3doaWxlKC0tZyk7ZSU9NjU1MjEsZiU9NjU1MjF9cmV0dXJuIGV8
Zjw8MTZ8MDsKK31iLmV4cG9ydHM9ZH0se31dLDY1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJp
Y3QiO2IuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVT
SDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAs
Wl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0y
LFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNU
X1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpf
RklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9T
VFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0s
e31dLDY2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoKXtmb3IodmFy
IGEsYj1bXSxjPTA7YzwyNTY7YysrKXthPWM7Zm9yKHZhciBkPTA7ZDw4O2QrKylhPTEmYT8zOTg4
MjkyMzg0XmE+Pj4xOmE+Pj4xO2JbY109YX1yZXR1cm4gYn1mdW5jdGlvbiBlKGEsYixjLGQpe3Zh
ciBlPWYsZz1kK2M7YV49LTE7Zm9yKHZhciBoPWQ7aDxnO2grKylhPWE+Pj44XmVbMjU1JihhXmJb
aF0pXTtyZXR1cm4gYV4tMX12YXIgZj1kKCk7Yi5leHBvcnRzPWV9LHt9XSw2NzpbZnVuY3Rpb24o
YSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7cmV0dXJuIGEubXNnPUlbYl0sYn1m
dW5jdGlvbiBlKGEpe3JldHVybihhPDwxKS0oYT40Pzk6MCl9ZnVuY3Rpb24gZihhKXtmb3IodmFy
IGI9YS5sZW5ndGg7LS1iPj0wOylhW2JdPTB9ZnVuY3Rpb24gZyhhKXt2YXIgYj1hLnN0YXRlLGM9
Yi5wZW5kaW5nO2M+YS5hdmFpbF9vdXQmJihjPWEuYXZhaWxfb3V0KSwwIT09YyYmKEUuYXJyYXlT
ZXQoYS5vdXRwdXQsYi5wZW5kaW5nX2J1ZixiLnBlbmRpbmdfb3V0LGMsYS5uZXh0X291dCksYS5u
ZXh0X291dCs9YyxiLnBlbmRpbmdfb3V0Kz1jLGEudG90YWxfb3V0Kz1jLGEuYXZhaWxfb3V0LT1j
LGIucGVuZGluZy09YywwPT09Yi5wZW5kaW5nJiYoYi5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24g
aChhLGIpe0YuX3RyX2ZsdXNoX2Jsb2NrKGEsYS5ibG9ja19zdGFydD49MD9hLmJsb2NrX3N0YXJ0
Oi0xLGEuc3Ryc3RhcnQtYS5ibG9ja19zdGFydCxiKSxhLmJsb2NrX3N0YXJ0PWEuc3Ryc3RhcnQs
ZyhhLnN0cm0pfWZ1bmN0aW9uIGkoYSxiKXthLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1ifWZ1
bmN0aW9uIGooYSxiKXthLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1iPj4+OCYyNTUsYS5wZW5k
aW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmJ9ZnVuY3Rpb24gayhhLGIsYyxkKXt2YXIgZT1hLmF2
YWlsX2luO3JldHVybiBlPmQmJihlPWQpLDA9PT1lPzA6KGEuYXZhaWxfaW4tPWUsRS5hcnJheVNl
dChiLGEuaW5wdXQsYS5uZXh0X2luLGUsYyksMT09PWEuc3RhdGUud3JhcD9hLmFkbGVyPUcoYS5h
ZGxlcixiLGUsYyk6Mj09PWEuc3RhdGUud3JhcCYmKGEuYWRsZXI9SChhLmFkbGVyLGIsZSxjKSks
YS5uZXh0X2luKz1lLGEudG90YWxfaW4rPWUsZSl9ZnVuY3Rpb24gbChhLGIpe3ZhciBjLGQsZT1h
Lm1heF9jaGFpbl9sZW5ndGgsZj1hLnN0cnN0YXJ0LGc9YS5wcmV2X2xlbmd0aCxoPWEubmljZV9t
YXRjaCxpPWEuc3Ryc3RhcnQ+YS53X3NpemUtbGE/YS5zdHJzdGFydC0oYS53X3NpemUtbGEpOjAs
aj1hLndpbmRvdyxrPWEud19tYXNrLGw9YS5wcmV2LG09YS5zdHJzdGFydCtrYSxuPWpbZitnLTFd
LG89altmK2ddO2EucHJldl9sZW5ndGg+PWEuZ29vZF9tYXRjaCYmKGU+Pj0yKSxoPmEubG9va2Fo
ZWFkJiYoaD1hLmxvb2thaGVhZCk7ZG8gaWYoYz1iLGpbYytnXT09PW8mJmpbYytnLTFdPT09biYm
altjXT09PWpbZl0mJmpbKytjXT09PWpbZisxXSl7Zis9MixjKys7ZG87d2hpbGUoalsrK2ZdPT09
alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2Nd
JiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysr
Zl09PT1qWysrY10mJmY8bSk7aWYoZD1rYS0obS1mKSxmPW0ta2EsZD5nKXtpZihhLm1hdGNoX3N0
YXJ0PWIsZz1kLGQ+PWgpYnJlYWs7bj1qW2YrZy0xXSxvPWpbZitnXX19d2hpbGUoKGI9bFtiJmtd
KT5pJiYwIT09LS1lKTtyZXR1cm4gZzw9YS5sb29rYWhlYWQ/ZzphLmxvb2thaGVhZH1mdW5jdGlv
biBtKGEpe3ZhciBiLGMsZCxlLGYsZz1hLndfc2l6ZTtkb3tpZihlPWEud2luZG93X3NpemUtYS5s
b29rYWhlYWQtYS5zdHJzdGFydCxhLnN0cnN0YXJ0Pj1nKyhnLWxhKSl7RS5hcnJheVNldChhLndp
bmRvdyxhLndpbmRvdyxnLGcsMCksYS5tYXRjaF9zdGFydC09ZyxhLnN0cnN0YXJ0LT1nLGEuYmxv
Y2tfc3RhcnQtPWcsYz1hLmhhc2hfc2l6ZSxiPWM7ZG8gZD1hLmhlYWRbLS1iXSxhLmhlYWRbYl09
ZD49Zz9kLWc6MDt3aGlsZSgtLWMpO2M9ZyxiPWM7ZG8gZD1hLnByZXZbLS1iXSxhLnByZXZbYl09
ZD49Zz9kLWc6MDt3aGlsZSgtLWMpO2UrPWd9aWYoMD09PWEuc3RybS5hdmFpbF9pbilicmVhaztp
ZihjPWsoYS5zdHJtLGEud2luZG93LGEuc3Ryc3RhcnQrYS5sb29rYWhlYWQsZSksYS5sb29rYWhl
YWQrPWMsYS5sb29rYWhlYWQrYS5pbnNlcnQ+PWphKWZvcihmPWEuc3Ryc3RhcnQtYS5pbnNlcnQs
YS5pbnNfaD1hLndpbmRvd1tmXSxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5k
b3dbZisxXSkmYS5oYXNoX21hc2s7YS5pbnNlcnQmJihhLmluc19oPShhLmluc19oPDxhLmhhc2hf
c2hpZnReYS53aW5kb3dbZitqYS0xXSkmYS5oYXNoX21hc2ssYS5wcmV2W2YmYS53X21hc2tdPWEu
aGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09ZixmKyssYS5pbnNlcnQtLSwhKGEubG9va2Fo
ZWFkK2EuaW5zZXJ0PGphKSk7KTt9d2hpbGUoYS5sb29rYWhlYWQ8bGEmJjAhPT1hLnN0cm0uYXZh
aWxfaW4pfWZ1bmN0aW9uIG4oYSxiKXt2YXIgYz02NTUzNTtmb3IoYz5hLnBlbmRpbmdfYnVmX3Np
emUtNSYmKGM9YS5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKGEubG9va2FoZWFkPD0xKXtpZiht
KGEpLDA9PT1hLmxvb2thaGVhZCYmYj09PUopcmV0dXJuIHVhO2lmKDA9PT1hLmxvb2thaGVhZCli
cmVha31hLnN0cnN0YXJ0Kz1hLmxvb2thaGVhZCxhLmxvb2thaGVhZD0wO3ZhciBkPWEuYmxvY2tf
c3RhcnQrYztpZigoMD09PWEuc3Ryc3RhcnR8fGEuc3Ryc3RhcnQ+PWQpJiYoYS5sb29rYWhlYWQ9
YS5zdHJzdGFydC1kLGEuc3Ryc3RhcnQ9ZCxoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSly
ZXR1cm4gdWE7aWYoYS5zdHJzdGFydC1hLmJsb2NrX3N0YXJ0Pj1hLndfc2l6ZS1sYSYmKGgoYSwh
MSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiB1YX1yZXR1cm4gYS5pbnNlcnQ9MCxiPT09
TT8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD93YTp4YSk6YS5zdHJzdGFydD5hLmJsb2Nr
X3N0YXJ0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/dWE6dWF9ZnVuY3Rpb24gbyhh
LGIpe2Zvcih2YXIgYyxkOzspe2lmKGEubG9va2FoZWFkPGxhKXtpZihtKGEpLGEubG9va2FoZWFk
PGxhJiZiPT09SilyZXR1cm4gdWE7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGM9MCxhLmxv
b2thaGVhZD49amEmJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5z
dHJzdGFydCtqYS0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109
YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KSwwIT09YyYmYS5zdHJz
dGFydC1jPD1hLndfc2l6ZS1sYSYmKGEubWF0Y2hfbGVuZ3RoPWwoYSxjKSksYS5tYXRjaF9sZW5n
dGg+PWphKWlmKGQ9Ri5fdHJfdGFsbHkoYSxhLnN0cnN0YXJ0LWEubWF0Y2hfc3RhcnQsYS5tYXRj
aF9sZW5ndGgtamEpLGEubG9va2FoZWFkLT1hLm1hdGNoX2xlbmd0aCxhLm1hdGNoX2xlbmd0aDw9
YS5tYXhfbGF6eV9tYXRjaCYmYS5sb29rYWhlYWQ+PWphKXthLm1hdGNoX2xlbmd0aC0tO2RvIGEu
c3Ryc3RhcnQrKyxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJz
dGFydCtqYS0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5o
ZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0O3doaWxlKDAhPT0tLWEubWF0
Y2hfbGVuZ3RoKTthLnN0cnN0YXJ0Kyt9ZWxzZSBhLnN0cnN0YXJ0Kz1hLm1hdGNoX2xlbmd0aCxh
Lm1hdGNoX2xlbmd0aD0wLGEuaW5zX2g9YS53aW5kb3dbYS5zdHJzdGFydF0sYS5pbnNfaD0oYS5p
bnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQrMV0pJmEuaGFzaF9tYXNrO2Vs
c2UgZD1GLl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0s
YS5zdHJzdGFydCsrO2lmKGQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4g
dWF9cmV0dXJuIGEuaW5zZXJ0PWEuc3Ryc3RhcnQ8amEtMT9hLnN0cnN0YXJ0OmphLTEsYj09PU0/
KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/d2E6eGEpOmEubGFzdF9saXQmJihoKGEsITEp
LDA9PT1hLnN0cm0uYXZhaWxfb3V0KT91YTp2YX1mdW5jdGlvbiBwKGEsYil7Zm9yKHZhciBjLGQs
ZTs7KXtpZihhLmxvb2thaGVhZDxsYSl7aWYobShhKSxhLmxvb2thaGVhZDxsYSYmYj09PUopcmV0
dXJuIHVhO2lmKDA9PT1hLmxvb2thaGVhZClicmVha31pZihjPTAsYS5sb29rYWhlYWQ+PWphJiYo
YS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQramEtMV0p
JmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19o
XSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCksYS5wcmV2X2xlbmd0aD1hLm1hdGNoX2xlbmd0
aCxhLnByZXZfbWF0Y2g9YS5tYXRjaF9zdGFydCxhLm1hdGNoX2xlbmd0aD1qYS0xLDAhPT1jJiZh
LnByZXZfbGVuZ3RoPGEubWF4X2xhenlfbWF0Y2gmJmEuc3Ryc3RhcnQtYzw9YS53X3NpemUtbGEm
JihhLm1hdGNoX2xlbmd0aD1sKGEsYyksYS5tYXRjaF9sZW5ndGg8PTUmJihhLnN0cmF0ZWd5PT09
VXx8YS5tYXRjaF9sZW5ndGg9PT1qYSYmYS5zdHJzdGFydC1hLm1hdGNoX3N0YXJ0PjQwOTYpJiYo
YS5tYXRjaF9sZW5ndGg9amEtMSkpLGEucHJldl9sZW5ndGg+PWphJiZhLm1hdGNoX2xlbmd0aDw9
YS5wcmV2X2xlbmd0aCl7ZT1hLnN0cnN0YXJ0K2EubG9va2FoZWFkLWphLGQ9Ri5fdHJfdGFsbHko
YSxhLnN0cnN0YXJ0LTEtYS5wcmV2X21hdGNoLGEucHJldl9sZW5ndGgtamEpLGEubG9va2FoZWFk
LT1hLnByZXZfbGVuZ3RoLTEsYS5wcmV2X2xlbmd0aC09MjtkbysrYS5zdHJzdGFydDw9ZSYmKGEu
aW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2phLTFdKSZh
Lmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0s
YS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpO3doaWxlKDAhPT0tLWEucHJldl9sZW5ndGgpO2lm
KGEubWF0Y2hfYXZhaWxhYmxlPTAsYS5tYXRjaF9sZW5ndGg9amEtMSxhLnN0cnN0YXJ0KyssZCYm
KGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiB1YX1lbHNlIGlmKGEubWF0Y2hf
YXZhaWxhYmxlKXtpZihkPUYuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0LTFdKSxk
JiZoKGEsITEpLGEuc3Ryc3RhcnQrKyxhLmxvb2thaGVhZC0tLDA9PT1hLnN0cm0uYXZhaWxfb3V0
KXJldHVybiB1YX1lbHNlIGEubWF0Y2hfYXZhaWxhYmxlPTEsYS5zdHJzdGFydCsrLGEubG9va2Fo
ZWFkLS19cmV0dXJuIGEubWF0Y2hfYXZhaWxhYmxlJiYoZD1GLl90cl90YWxseShhLDAsYS53aW5k
b3dbYS5zdHJzdGFydC0xXSksYS5tYXRjaF9hdmFpbGFibGU9MCksYS5pbnNlcnQ9YS5zdHJzdGFy
dDxqYS0xP2Euc3Ryc3RhcnQ6amEtMSxiPT09TT8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291
dD93YTp4YSk6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3VhOnZh
fWZ1bmN0aW9uIHEoYSxiKXtmb3IodmFyIGMsZCxlLGYsZz1hLndpbmRvdzs7KXtpZihhLmxvb2th
aGVhZDw9a2Epe2lmKG0oYSksYS5sb29rYWhlYWQ8PWthJiZiPT09SilyZXR1cm4gdWE7aWYoMD09
PWEubG9va2FoZWFkKWJyZWFrfWlmKGEubWF0Y2hfbGVuZ3RoPTAsYS5sb29rYWhlYWQ+PWphJiZh
LnN0cnN0YXJ0PjAmJihlPWEuc3Ryc3RhcnQtMSxkPWdbZV0sZD09PWdbKytlXSYmZD09PWdbKytl
XSYmZD09PWdbKytlXSkpe2Y9YS5zdHJzdGFydCtrYTtkbzt3aGlsZShkPT09Z1srK2VdJiZkPT09
Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZk
PT09Z1srK2VdJiZkPT09Z1srK2VdJiZlPGYpO2EubWF0Y2hfbGVuZ3RoPWthLShmLWUpLGEubWF0
Y2hfbGVuZ3RoPmEubG9va2FoZWFkJiYoYS5tYXRjaF9sZW5ndGg9YS5sb29rYWhlYWQpfWlmKGEu
bWF0Y2hfbGVuZ3RoPj1qYT8oYz1GLl90cl90YWxseShhLDEsYS5tYXRjaF9sZW5ndGgtamEpLGEu
bG9va2FoZWFkLT1hLm1hdGNoX2xlbmd0aCxhLnN0cnN0YXJ0Kz1hLm1hdGNoX2xlbmd0aCxhLm1h
dGNoX2xlbmd0aD0wKTooYz1GLl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEu
bG9va2FoZWFkLS0sYS5zdHJzdGFydCsrKSxjJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291
dCkpcmV0dXJuIHVhfXJldHVybiBhLmluc2VydD0wLGI9PT1NPyhoKGEsITApLDA9PT1hLnN0cm0u
YXZhaWxfb3V0P3dhOnhhKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291
dCk/dWE6dmF9ZnVuY3Rpb24gcihhLGIpe2Zvcih2YXIgYzs7KXtpZigwPT09YS5sb29rYWhlYWQm
JihtKGEpLDA9PT1hLmxvb2thaGVhZCkpe2lmKGI9PT1KKXJldHVybiB1YTticmVha31pZihhLm1h
dGNoX2xlbmd0aD0wLGM9Ri5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnRdKSxhLmxv
b2thaGVhZC0tLGEuc3Ryc3RhcnQrKyxjJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkp
cmV0dXJuIHVhfXJldHVybiBhLmluc2VydD0wLGI9PT1NPyhoKGEsITApLDA9PT1hLnN0cm0uYXZh
aWxfb3V0P3dhOnhhKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/
dWE6dmF9ZnVuY3Rpb24gcyhhLGIsYyxkLGUpe3RoaXMuZ29vZF9sZW5ndGg9YSx0aGlzLm1heF9s
YXp5PWIsdGhpcy5uaWNlX2xlbmd0aD1jLHRoaXMubWF4X2NoYWluPWQsdGhpcy5mdW5jPWV9ZnVu
Y3Rpb24gdChhKXthLndpbmRvd19zaXplPTIqYS53X3NpemUsZihhLmhlYWQpLGEubWF4X2xhenlf
bWF0Y2g9RFthLmxldmVsXS5tYXhfbGF6eSxhLmdvb2RfbWF0Y2g9RFthLmxldmVsXS5nb29kX2xl
bmd0aCxhLm5pY2VfbWF0Y2g9RFthLmxldmVsXS5uaWNlX2xlbmd0aCxhLm1heF9jaGFpbl9sZW5n
dGg9RFthLmxldmVsXS5tYXhfY2hhaW4sYS5zdHJzdGFydD0wLGEuYmxvY2tfc3RhcnQ9MCxhLmxv
b2thaGVhZD0wLGEuaW5zZXJ0PTAsYS5tYXRjaF9sZW5ndGg9YS5wcmV2X2xlbmd0aD1qYS0xLGEu
bWF0Y2hfYXZhaWxhYmxlPTAsYS5pbnNfaD0wfWZ1bmN0aW9uIHUoKXt0aGlzLnN0cm09bnVsbCx0
aGlzLnN0YXR1cz0wLHRoaXMucGVuZGluZ19idWY9bnVsbCx0aGlzLnBlbmRpbmdfYnVmX3NpemU9
MCx0aGlzLnBlbmRpbmdfb3V0PTAsdGhpcy5wZW5kaW5nPTAsdGhpcy53cmFwPTAsdGhpcy5nemhl
YWQ9bnVsbCx0aGlzLmd6aW5kZXg9MCx0aGlzLm1ldGhvZD0kLHRoaXMubGFzdF9mbHVzaD0tMSx0
aGlzLndfc2l6ZT0wLHRoaXMud19iaXRzPTAsdGhpcy53X21hc2s9MCx0aGlzLndpbmRvdz1udWxs
LHRoaXMud2luZG93X3NpemU9MCx0aGlzLnByZXY9bnVsbCx0aGlzLmhlYWQ9bnVsbCx0aGlzLmlu
c19oPTAsdGhpcy5oYXNoX3NpemU9MCx0aGlzLmhhc2hfYml0cz0wLHRoaXMuaGFzaF9tYXNrPTAs
dGhpcy5oYXNoX3NoaWZ0PTAsdGhpcy5ibG9ja19zdGFydD0wLHRoaXMubWF0Y2hfbGVuZ3RoPTAs
dGhpcy5wcmV2X21hdGNoPTAsdGhpcy5tYXRjaF9hdmFpbGFibGU9MCx0aGlzLnN0cnN0YXJ0PTAs
dGhpcy5tYXRjaF9zdGFydD0wLHRoaXMubG9va2FoZWFkPTAsdGhpcy5wcmV2X2xlbmd0aD0wLHRo
aXMubWF4X2NoYWluX2xlbmd0aD0wLHRoaXMubWF4X2xhenlfbWF0Y2g9MCx0aGlzLmxldmVsPTAs
dGhpcy5zdHJhdGVneT0wLHRoaXMuZ29vZF9tYXRjaD0wLHRoaXMubmljZV9tYXRjaD0wLHRoaXMu
ZHluX2x0cmVlPW5ldyBFLkJ1ZjE2KDIqaGEpLHRoaXMuZHluX2R0cmVlPW5ldyBFLkJ1ZjE2KDIq
KDIqZmErMSkpLHRoaXMuYmxfdHJlZT1uZXcgRS5CdWYxNigyKigyKmdhKzEpKSxmKHRoaXMuZHlu
X2x0cmVlKSxmKHRoaXMuZHluX2R0cmVlKSxmKHRoaXMuYmxfdHJlZSksdGhpcy5sX2Rlc2M9bnVs
bCx0aGlzLmRfZGVzYz1udWxsLHRoaXMuYmxfZGVzYz1udWxsLHRoaXMuYmxfY291bnQ9bmV3IEUu
QnVmMTYoaWErMSksdGhpcy5oZWFwPW5ldyBFLkJ1ZjE2KDIqZWErMSksZih0aGlzLmhlYXApLHRo
aXMuaGVhcF9sZW49MCx0aGlzLmhlYXBfbWF4PTAsdGhpcy5kZXB0aD1uZXcgRS5CdWYxNigyKmVh
KzEpLGYodGhpcy5kZXB0aCksdGhpcy5sX2J1Zj0wLHRoaXMubGl0X2J1ZnNpemU9MCx0aGlzLmxh
c3RfbGl0PTAsdGhpcy5kX2J1Zj0wLHRoaXMub3B0X2xlbj0wLHRoaXMuc3RhdGljX2xlbj0wLHRo
aXMubWF0Y2hlcz0wLHRoaXMuaW5zZXJ0PTAsdGhpcy5iaV9idWY9MCx0aGlzLmJpX3ZhbGlkPTB9
ZnVuY3Rpb24gdihhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYS50b3RhbF9pbj1hLnRvdGFs
X291dD0wLGEuZGF0YV90eXBlPVosYj1hLnN0YXRlLGIucGVuZGluZz0wLGIucGVuZGluZ19vdXQ9
MCxiLndyYXA8MCYmKGIud3JhcD0tYi53cmFwKSxiLnN0YXR1cz1iLndyYXA/bmE6c2EsYS5hZGxl
cj0yPT09Yi53cmFwPzA6MSxiLmxhc3RfZmx1c2g9SixGLl90cl9pbml0KGIpLE8pOmQoYSxRKX1m
dW5jdGlvbiB3KGEpe3ZhciBiPXYoYSk7cmV0dXJuIGI9PT1PJiZ0KGEuc3RhdGUpLGJ9ZnVuY3Rp
b24geChhLGIpe3JldHVybiBhJiZhLnN0YXRlPzIhPT1hLnN0YXRlLndyYXA/UTooYS5zdGF0ZS5n
emhlYWQ9YixPKTpRfWZ1bmN0aW9uIHkoYSxiLGMsZSxmLGcpe2lmKCFhKXJldHVybiBRO3ZhciBo
PTE7aWYoYj09PVQmJihiPTYpLGU8MD8oaD0wLGU9LWUpOmU+MTUmJihoPTIsZS09MTYpLGY8MXx8
Zj5ffHxjIT09JHx8ZTw4fHxlPjE1fHxiPDB8fGI+OXx8ZzwwfHxnPlgpcmV0dXJuIGQoYSxRKTs4
PT09ZSYmKGU9OSk7dmFyIGk9bmV3IHU7cmV0dXJuIGEuc3RhdGU9aSxpLnN0cm09YSxpLndyYXA9
aCxpLmd6aGVhZD1udWxsLGkud19iaXRzPWUsaS53X3NpemU9MTw8aS53X2JpdHMsaS53X21hc2s9
aS53X3NpemUtMSxpLmhhc2hfYml0cz1mKzcsaS5oYXNoX3NpemU9MTw8aS5oYXNoX2JpdHMsaS5o
YXNoX21hc2s9aS5oYXNoX3NpemUtMSxpLmhhc2hfc2hpZnQ9fn4oKGkuaGFzaF9iaXRzK2phLTEp
L2phKSxpLndpbmRvdz1uZXcgRS5CdWY4KDIqaS53X3NpemUpLGkuaGVhZD1uZXcgRS5CdWYxNihp
Lmhhc2hfc2l6ZSksaS5wcmV2PW5ldyBFLkJ1ZjE2KGkud19zaXplKSxpLmxpdF9idWZzaXplPTE8
PGYrNixpLnBlbmRpbmdfYnVmX3NpemU9NCppLmxpdF9idWZzaXplLGkucGVuZGluZ19idWY9bmV3
IEUuQnVmOChpLnBlbmRpbmdfYnVmX3NpemUpLGkuZF9idWY9MSppLmxpdF9idWZzaXplLGkubF9i
dWY9MyppLmxpdF9idWZzaXplLGkubGV2ZWw9YixpLnN0cmF0ZWd5PWcsaS5tZXRob2Q9Yyx3KGEp
fWZ1bmN0aW9uIHooYSxiKXtyZXR1cm4geShhLGIsJCxhYSxiYSxZKX1mdW5jdGlvbiBBKGEsYil7
dmFyIGMsaCxrLGw7aWYoIWF8fCFhLnN0YXRlfHxiPk58fGI8MClyZXR1cm4gYT9kKGEsUSk6UTtp
ZihoPWEuc3RhdGUsIWEub3V0cHV0fHwhYS5pbnB1dCYmMCE9PWEuYXZhaWxfaW58fGguc3RhdHVz
PT09dGEmJmIhPT1NKXJldHVybiBkKGEsMD09PWEuYXZhaWxfb3V0P1M6USk7aWYoaC5zdHJtPWEs
Yz1oLmxhc3RfZmx1c2gsaC5sYXN0X2ZsdXNoPWIsaC5zdGF0dXM9PT1uYSlpZigyPT09aC53cmFw
KWEuYWRsZXI9MCxpKGgsMzEpLGkoaCwxMzkpLGkoaCw4KSxoLmd6aGVhZD8oaShoLChoLmd6aGVh
ZC50ZXh0PzE6MCkrKGguZ3poZWFkLmhjcmM/MjowKSsoaC5nemhlYWQuZXh0cmE/NDowKSsoaC5n
emhlYWQubmFtZT84OjApKyhoLmd6aGVhZC5jb21tZW50PzE2OjApKSxpKGgsMjU1JmguZ3poZWFk
LnRpbWUpLGkoaCxoLmd6aGVhZC50aW1lPj44JjI1NSksaShoLGguZ3poZWFkLnRpbWU+PjE2JjI1
NSksaShoLGguZ3poZWFkLnRpbWU+PjI0JjI1NSksaShoLDk9PT1oLmxldmVsPzI6aC5zdHJhdGVn
eT49Vnx8aC5sZXZlbDwyPzQ6MCksaShoLDI1NSZoLmd6aGVhZC5vcyksaC5nemhlYWQuZXh0cmEm
JmguZ3poZWFkLmV4dHJhLmxlbmd0aCYmKGkoaCwyNTUmaC5nemhlYWQuZXh0cmEubGVuZ3RoKSxp
KGgsaC5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLGguZ3poZWFkLmhjcmMmJihhLmFkbGVy
PUgoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZywwKSksaC5nemluZGV4PTAsaC5zdGF0
dXM9b2EpOihpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCw5PT09aC5sZXZl
bD8yOmguc3RyYXRlZ3k+PVZ8fGgubGV2ZWw8Mj80OjApLGkoaCx5YSksaC5zdGF0dXM9c2EpO2Vs
c2V7dmFyIG09JCsoaC53X2JpdHMtODw8NCk8PDgsbj0tMTtuPWguc3RyYXRlZ3k+PVZ8fGgubGV2
ZWw8Mj8wOmgubGV2ZWw8Nj8xOjY9PT1oLmxldmVsPzI6MyxtfD1uPDw2LDAhPT1oLnN0cnN0YXJ0
JiYobXw9bWEpLG0rPTMxLW0lMzEsaC5zdGF0dXM9c2EsaihoLG0pLDAhPT1oLnN0cnN0YXJ0JiYo
aihoLGEuYWRsZXI+Pj4xNiksaihoLDY1NTM1JmEuYWRsZXIpKSxhLmFkbGVyPTF9aWYoaC5zdGF0
dXM9PT1vYSlpZihoLmd6aGVhZC5leHRyYSl7Zm9yKGs9aC5wZW5kaW5nO2guZ3ppbmRleDwoNjU1
MzUmaC5nemhlYWQuZXh0cmEubGVuZ3RoKSYmKGgucGVuZGluZyE9PWgucGVuZGluZ19idWZfc2l6
ZXx8KGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1IKGEuYWRsZXIsaC5wZW5k
aW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmchPT1oLnBl
bmRpbmdfYnVmX3NpemUpKTspaShoLDI1NSZoLmd6aGVhZC5leHRyYVtoLmd6aW5kZXhdKSxoLmd6
aW5kZXgrKztoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9SChhLmFkbGVyLGgu
cGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGguZ3ppbmRleD09PWguZ3poZWFkLmV4dHJhLmxl
bmd0aCYmKGguZ3ppbmRleD0wLGguc3RhdHVzPXBhKX1lbHNlIGguc3RhdHVzPXBhO2lmKGguc3Rh
dHVzPT09cGEpaWYoaC5nemhlYWQubmFtZSl7az1oLnBlbmRpbmc7ZG97aWYoaC5wZW5kaW5nPT09
aC5wZW5kaW5nX2J1Zl9zaXplJiYoaC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVy
PUgoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxnKGEpLGs9aC5wZW5kaW5n
LGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSkpe2w9MTticmVha31sPWguZ3ppbmRleDxo
Lmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmaC5nemhlYWQubmFtZS5jaGFyQ29kZUF0KGguZ3ppbmRl
eCsrKTowLGkoaCxsKX13aGlsZSgwIT09bCk7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihh
LmFkbGVyPUgoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSwwPT09bCYmKGgu
Z3ppbmRleD0wLGguc3RhdHVzPXFhKX1lbHNlIGguc3RhdHVzPXFhO2lmKGguc3RhdHVzPT09cWEp
aWYoaC5nemhlYWQuY29tbWVudCl7az1oLnBlbmRpbmc7ZG97aWYoaC5wZW5kaW5nPT09aC5wZW5k
aW5nX2J1Zl9zaXplJiYoaC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUgoYS5h
ZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxnKGEpLGs9aC5wZW5kaW5nLGgucGVu
ZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSkpe2w9MTticmVha31sPWguZ3ppbmRleDxoLmd6aGVh
ZC5jb21tZW50Lmxlbmd0aD8yNTUmaC5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KGguZ3ppbmRl
eCsrKTowLGkoaCxsKX13aGlsZSgwIT09bCk7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihh
LmFkbGVyPUgoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSwwPT09bCYmKGgu
c3RhdHVzPXJhKX1lbHNlIGguc3RhdHVzPXJhO2lmKGguc3RhdHVzPT09cmEmJihoLmd6aGVhZC5o
Y3JjPyhoLnBlbmRpbmcrMj5oLnBlbmRpbmdfYnVmX3NpemUmJmcoYSksaC5wZW5kaW5nKzI8PWgu
cGVuZGluZ19idWZfc2l6ZSYmKGkoaCwyNTUmYS5hZGxlciksaShoLGEuYWRsZXI+PjgmMjU1KSxh
LmFkbGVyPTAsaC5zdGF0dXM9c2EpKTpoLnN0YXR1cz1zYSksMCE9PWgucGVuZGluZyl7aWYoZyhh
KSwwPT09YS5hdmFpbF9vdXQpcmV0dXJuIGgubGFzdF9mbHVzaD0tMSxPfWVsc2UgaWYoMD09PWEu
YXZhaWxfaW4mJmUoYik8PWUoYykmJmIhPT1NKXJldHVybiBkKGEsUyk7aWYoaC5zdGF0dXM9PT10
YSYmMCE9PWEuYXZhaWxfaW4pcmV0dXJuIGQoYSxTKTtpZigwIT09YS5hdmFpbF9pbnx8MCE9PWgu
bG9va2FoZWFkfHxiIT09SiYmaC5zdGF0dXMhPT10YSl7dmFyIG89aC5zdHJhdGVneT09PVY/ciho
LGIpOmguc3RyYXRlZ3k9PT1XP3EoaCxiKTpEW2gubGV2ZWxdLmZ1bmMoaCxiKTtpZihvIT09d2Em
Jm8hPT14YXx8KGguc3RhdHVzPXRhKSxvPT09dWF8fG89PT13YSlyZXR1cm4gMD09PWEuYXZhaWxf
b3V0JiYoaC5sYXN0X2ZsdXNoPS0xKSxPO2lmKG89PT12YSYmKGI9PT1LP0YuX3RyX2FsaWduKGgp
OmIhPT1OJiYoRi5fdHJfc3RvcmVkX2Jsb2NrKGgsMCwwLCExKSxiPT09TCYmKGYoaC5oZWFkKSww
PT09aC5sb29rYWhlYWQmJihoLnN0cnN0YXJ0PTAsaC5ibG9ja19zdGFydD0wLGguaW5zZXJ0PTAp
KSksZyhhKSwwPT09YS5hdmFpbF9vdXQpKXJldHVybiBoLmxhc3RfZmx1c2g9LTEsT31yZXR1cm4g
YiE9PU0/TzpoLndyYXA8PTA/UDooMj09PWgud3JhcD8oaShoLDI1NSZhLmFkbGVyKSxpKGgsYS5h
ZGxlcj4+OCYyNTUpLGkoaCxhLmFkbGVyPj4xNiYyNTUpLGkoaCxhLmFkbGVyPj4yNCYyNTUpLGko
aCwyNTUmYS50b3RhbF9pbiksaShoLGEudG90YWxfaW4+PjgmMjU1KSxpKGgsYS50b3RhbF9pbj4+
MTYmMjU1KSxpKGgsYS50b3RhbF9pbj4+MjQmMjU1KSk6KGooaCxhLmFkbGVyPj4+MTYpLGooaCw2
NTUzNSZhLmFkbGVyKSksZyhhKSxoLndyYXA+MCYmKGgud3JhcD0taC53cmFwKSwwIT09aC5wZW5k
aW5nP086UCl9ZnVuY3Rpb24gQihhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRl
LnN0YXR1cyxiIT09bmEmJmIhPT1vYSYmYiE9PXBhJiZiIT09cWEmJmIhPT1yYSYmYiE9PXNhJiZi
IT09dGE/ZChhLFEpOihhLnN0YXRlPW51bGwsYj09PXNhP2QoYSxSKTpPKSk6UX1mdW5jdGlvbiBD
KGEsYil7dmFyIGMsZCxlLGcsaCxpLGosayxsPWIubGVuZ3RoO2lmKCFhfHwhYS5zdGF0ZSlyZXR1
cm4gUTtpZihjPWEuc3RhdGUsZz1jLndyYXAsMj09PWd8fDE9PT1nJiZjLnN0YXR1cyE9PW5hfHxj
Lmxvb2thaGVhZClyZXR1cm4gUTtmb3IoMT09PWcmJihhLmFkbGVyPUcoYS5hZGxlcixiLGwsMCkp
LGMud3JhcD0wLGw+PWMud19zaXplJiYoMD09PWcmJihmKGMuaGVhZCksYy5zdHJzdGFydD0wLGMu
YmxvY2tfc3RhcnQ9MCxjLmluc2VydD0wKSxrPW5ldyBFLkJ1ZjgoYy53X3NpemUpLEUuYXJyYXlT
ZXQoayxiLGwtYy53X3NpemUsYy53X3NpemUsMCksYj1rLGw9Yy53X3NpemUpLGg9YS5hdmFpbF9p
bixpPWEubmV4dF9pbixqPWEuaW5wdXQsYS5hdmFpbF9pbj1sLGEubmV4dF9pbj0wLGEuaW5wdXQ9
YixtKGMpO2MubG9va2FoZWFkPj1qYTspe2Q9Yy5zdHJzdGFydCxlPWMubG9va2FoZWFkLShqYS0x
KTtkbyBjLmluc19oPShjLmluc19oPDxjLmhhc2hfc2hpZnReYy53aW5kb3dbZCtqYS0xXSkmYy5o
YXNoX21hc2ssYy5wcmV2W2QmYy53X21hc2tdPWMuaGVhZFtjLmluc19oXSxjLmhlYWRbYy5pbnNf
aF09ZCxkKys7d2hpbGUoLS1lKTtjLnN0cnN0YXJ0PWQsYy5sb29rYWhlYWQ9amEtMSxtKGMpfXJl
dHVybiBjLnN0cnN0YXJ0Kz1jLmxvb2thaGVhZCxjLmJsb2NrX3N0YXJ0PWMuc3Ryc3RhcnQsYy5p
bnNlcnQ9Yy5sb29rYWhlYWQsYy5sb29rYWhlYWQ9MCxjLm1hdGNoX2xlbmd0aD1jLnByZXZfbGVu
Z3RoPWphLTEsYy5tYXRjaF9hdmFpbGFibGU9MCxhLm5leHRfaW49aSxhLmlucHV0PWosYS5hdmFp
bF9pbj1oLGMud3JhcD1nLE99dmFyIEQsRT1hKCIuLi91dGlscy9jb21tb24iKSxGPWEoIi4vdHJl
ZXMiKSxHPWEoIi4vYWRsZXIzMiIpLEg9YSgiLi9jcmMzMiIpLEk9YSgiLi9tZXNzYWdlcyIpLEo9
MCxLPTEsTD0zLE09NCxOPTUsTz0wLFA9MSxRPS0yLFI9LTMsUz0tNSxUPS0xLFU9MSxWPTIsVz0z
LFg9NCxZPTAsWj0yLCQ9OCxfPTksYWE9MTUsYmE9OCxjYT0yOSxkYT0yNTYsZWE9ZGErMStjYSxm
YT0zMCxnYT0xOSxoYT0yKmVhKzEsaWE9MTUsamE9MyxrYT0yNTgsbGE9a2EramErMSxtYT0zMixu
YT00MixvYT02OSxwYT03MyxxYT05MSxyYT0xMDMsc2E9MTEzLHRhPTY2Nix1YT0xLHZhPTIsd2E9
Myx4YT00LHlhPTM7RD1bbmV3IHMoMCwwLDAsMCxuKSxuZXcgcyg0LDQsOCw0LG8pLG5ldyBzKDQs
NSwxNiw4LG8pLG5ldyBzKDQsNiwzMiwzMixvKSxuZXcgcyg0LDQsMTYsMTYscCksbmV3IHMoOCwx
NiwzMiwzMixwKSxuZXcgcyg4LDE2LDEyOCwxMjgscCksbmV3IHMoOCwzMiwxMjgsMjU2LHApLG5l
dyBzKDMyLDEyOCwyNTgsMTAyNCxwKSxuZXcgcygzMiwyNTgsMjU4LDQwOTYscCldLGMuZGVmbGF0
ZUluaXQ9eixjLmRlZmxhdGVJbml0Mj15LGMuZGVmbGF0ZVJlc2V0PXcsYy5kZWZsYXRlUmVzZXRL
ZWVwPXYsYy5kZWZsYXRlU2V0SGVhZGVyPXgsYy5kZWZsYXRlPUEsYy5kZWZsYXRlRW5kPUIsYy5k
ZWZsYXRlU2V0RGljdGlvbmFyeT1DLGMuZGVmbGF0ZUluZm89InBha28gZGVmbGF0ZSAoZnJvbSBO
b2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6NjIsIi4vYWRsZXIzMiI6NjQsIi4v
Y3JjMzIiOjY2LCIuL21lc3NhZ2VzIjo3MiwiLi90cmVlcyI6NzN9XSw2ODpbZnVuY3Rpb24oYSxi
LGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhp
cy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhp
cy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9Yi5leHBv
cnRzPWR9LHt9XSw2OTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0zMCxlPTEy
O2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBjLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIs
cyx0LHUsdix3LHgseSx6LEEsQixDO2M9YS5zdGF0ZSxmPWEubmV4dF9pbixCPWEuaW5wdXQsZz1m
KyhhLmF2YWlsX2luLTUpLGg9YS5uZXh0X291dCxDPWEub3V0cHV0LGk9aC0oYi1hLmF2YWlsX291
dCksaj1oKyhhLmF2YWlsX291dC0yNTcpLGs9Yy5kbWF4LGw9Yy53c2l6ZSxtPWMud2hhdmUsbj1j
LnduZXh0LG89Yy53aW5kb3cscD1jLmhvbGQscT1jLmJpdHMscj1jLmxlbmNvZGUscz1jLmRpc3Rj
b2RlLHQ9KDE8PGMubGVuYml0cyktMSx1PSgxPDxjLmRpc3RiaXRzKS0xO2E6ZG97cTwxNSYmKHAr
PUJbZisrXTw8cSxxKz04LHArPUJbZisrXTw8cSxxKz04KSx2PXJbcCZ0XTtiOmZvcig7Oyl7aWYo
dz12Pj4+MjQscD4+Pj13LHEtPXcsdz12Pj4+MTYmMjU1LDA9PT13KUNbaCsrXT02NTUzNSZ2O2Vs
c2V7aWYoISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1yWyg2NTUzNSZ2KSsocCYoMTw8dyktMSld
O2NvbnRpbnVlIGJ9aWYoMzImdyl7Yy5tb2RlPWU7YnJlYWsgYX1hLm1zZz0iaW52YWxpZCBsaXRl
cmFsL2xlbmd0aCBjb2RlIixjLm1vZGU9ZDticmVhayBhfXg9NjU1MzUmdix3Jj0xNSx3JiYocTx3
JiYocCs9QltmKytdPDxxLHErPTgpLHgrPXAmKDE8PHcpLTEscD4+Pj13LHEtPXcpLHE8MTUmJihw
Kz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9OCksdj1zW3AmdV07Yzpmb3IoOzspe2lm
KHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1NSwhKDE2JncpKXtpZigwPT09KDY0Jncp
KXt2PXNbKDY1NTM1JnYpKyhwJigxPDx3KS0xKV07Y29udGludWUgY31hLm1zZz0iaW52YWxpZCBk
aXN0YW5jZSBjb2RlIixjLm1vZGU9ZDticmVhayBhfWlmKHk9NjU1MzUmdix3Jj0xNSxxPHcmJihw
Kz1CW2YrK108PHEscSs9OCxxPHcmJihwKz1CW2YrK108PHEscSs9OCkpLHkrPXAmKDE8PHcpLTEs
eT5rKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLGMubW9kZT1kO2JyZWFr
IGF9aWYocD4+Pj13LHEtPXcsdz1oLWkseT53KXtpZih3PXktdyx3Pm0mJmMuc2FuZSl7YS5tc2c9
ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9ZDticmVhayBhfWlmKHo9MCxB
PW8sMD09PW4pe2lmKHorPWwtdyx3PHgpe3gtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcp
O3o9aC15LEE9Q319ZWxzZSBpZihuPHcpe2lmKHorPWwrbi13LHctPW4sdzx4KXt4LT13O2RvIENb
aCsrXT1vW3orK107d2hpbGUoLS13KTtpZih6PTAsbjx4KXt3PW4seC09dztkbyBDW2grK109b1t6
KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfX19ZWxzZSBpZih6Kz1uLXcsdzx4KXt4LT13O2RvIENb
aCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9Zm9yKDt4PjI7KUNbaCsrXT1BW3orK10s
Q1toKytdPUFbeisrXSxDW2grK109QVt6KytdLHgtPTM7eCYmKENbaCsrXT1BW3orK10seD4xJiYo
Q1toKytdPUFbeisrXSkpfWVsc2V7ej1oLXk7ZG8gQ1toKytdPUNbeisrXSxDW2grK109Q1t6Kytd
LENbaCsrXT1DW3orK10seC09Mzt3aGlsZSh4PjIpO3gmJihDW2grK109Q1t6KytdLHg+MSYmKENb
aCsrXT1DW3orK10pKX1icmVha319YnJlYWt9fXdoaWxlKGY8ZyYmaDxqKTt4PXE+PjMsZi09eCxx
LT14PDwzLHAmPSgxPDxxKS0xLGEubmV4dF9pbj1mLGEubmV4dF9vdXQ9aCxhLmF2YWlsX2luPWY8
Zz81KyhnLWYpOjUtKGYtZyksYS5hdmFpbF9vdXQ9aDxqPzI1Nysoai1oKToyNTctKGgtaiksYy5o
b2xkPXAsYy5iaXRzPXF9fSx7fV0sNzA6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVu
Y3Rpb24gZChhKXtyZXR1cm4oYT4+PjI0JjI1NSkrKGE+Pj44JjY1MjgwKSsoKDY1MjgwJmEpPDw4
KSsoKDI1NSZhKTw8MjQpfWZ1bmN0aW9uIGUoKXt0aGlzLm1vZGU9MCx0aGlzLmxhc3Q9ITEsdGhp
cy53cmFwPTAsdGhpcy5oYXZlZGljdD0hMSx0aGlzLmZsYWdzPTAsdGhpcy5kbWF4PTAsdGhpcy5j
aGVjaz0wLHRoaXMudG90YWw9MCx0aGlzLmhlYWQ9bnVsbCx0aGlzLndiaXRzPTAsdGhpcy53c2l6
ZT0wLHRoaXMud2hhdmU9MCx0aGlzLnduZXh0PTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLmhvbGQ9
MCx0aGlzLmJpdHM9MCx0aGlzLmxlbmd0aD0wLHRoaXMub2Zmc2V0PTAsdGhpcy5leHRyYT0wLHRo
aXMubGVuY29kZT1udWxsLHRoaXMuZGlzdGNvZGU9bnVsbCx0aGlzLmxlbmJpdHM9MCx0aGlzLmRp
c3RiaXRzPTAsdGhpcy5uY29kZT0wLHRoaXMubmxlbj0wLHRoaXMubmRpc3Q9MCx0aGlzLmhhdmU9
MCx0aGlzLm5leHQ9bnVsbCx0aGlzLmxlbnM9bmV3IHMuQnVmMTYoMzIwKSx0aGlzLndvcms9bmV3
IHMuQnVmMTYoMjg4KSx0aGlzLmxlbmR5bj1udWxsLHRoaXMuZGlzdGR5bj1udWxsLHRoaXMuc2Fu
ZT0wLHRoaXMuYmFjaz0wLHRoaXMud2FzPTB9ZnVuY3Rpb24gZihhKXt2YXIgYjtyZXR1cm4gYSYm
YS5zdGF0ZT8oYj1hLnN0YXRlLGEudG90YWxfaW49YS50b3RhbF9vdXQ9Yi50b3RhbD0wLGEubXNn
PSIiLGIud3JhcCYmKGEuYWRsZXI9MSZiLndyYXApLGIubW9kZT1MLGIubGFzdD0wLGIuaGF2ZWRp
Y3Q9MCxiLmRtYXg9MzI3NjgsYi5oZWFkPW51bGwsYi5ob2xkPTAsYi5iaXRzPTAsYi5sZW5jb2Rl
PWIubGVuZHluPW5ldyBzLkJ1ZjMyKHBhKSxiLmRpc3Rjb2RlPWIuZGlzdGR5bj1uZXcgcy5CdWYz
MihxYSksYi5zYW5lPTEsYi5iYWNrPS0xLEQpOkd9ZnVuY3Rpb24gZyhhKXt2YXIgYjtyZXR1cm4g
YSYmYS5zdGF0ZT8oYj1hLnN0YXRlLGIud3NpemU9MCxiLndoYXZlPTAsYi53bmV4dD0wLGYoYSkp
Okd9ZnVuY3Rpb24gaChhLGIpe3ZhciBjLGQ7cmV0dXJuIGEmJmEuc3RhdGU/KGQ9YS5zdGF0ZSxi
PDA/KGM9MCxiPS1iKTooYz0oYj4+NCkrMSxiPDQ4JiYoYiY9MTUpKSxiJiYoYjw4fHxiPjE1KT9H
OihudWxsIT09ZC53aW5kb3cmJmQud2JpdHMhPT1iJiYoZC53aW5kb3c9bnVsbCksZC53cmFwPWMs
ZC53Yml0cz1iLGcoYSkpKTpHfWZ1bmN0aW9uIGkoYSxiKXt2YXIgYyxkO3JldHVybiBhPyhkPW5l
dyBlLGEuc3RhdGU9ZCxkLndpbmRvdz1udWxsLGM9aChhLGIpLGMhPT1EJiYoYS5zdGF0ZT1udWxs
KSxjKTpHfWZ1bmN0aW9uIGooYSl7cmV0dXJuIGkoYSxzYSl9ZnVuY3Rpb24gayhhKXtpZih0YSl7
dmFyIGI7Zm9yKHE9bmV3IHMuQnVmMzIoNTEyKSxyPW5ldyBzLkJ1ZjMyKDMyKSxiPTA7YjwxNDQ7
KWEubGVuc1tiKytdPTg7Zm9yKDtiPDI1NjspYS5sZW5zW2IrK109OTtmb3IoO2I8MjgwOylhLmxl
bnNbYisrXT03O2Zvcig7YjwyODg7KWEubGVuc1tiKytdPTg7Zm9yKHcoeSxhLmxlbnMsMCwyODgs
cSwwLGEud29yayx7Yml0czo5fSksYj0wO2I8MzI7KWEubGVuc1tiKytdPTU7dyh6LGEubGVucyww
LDMyLHIsMCxhLndvcmsse2JpdHM6NX0pLHRhPSExfWEubGVuY29kZT1xLGEubGVuYml0cz05LGEu
ZGlzdGNvZGU9cixhLmRpc3RiaXRzPTV9ZnVuY3Rpb24gbChhLGIsYyxkKXt2YXIgZSxmPWEuc3Rh
dGU7cmV0dXJuIG51bGw9PT1mLndpbmRvdyYmKGYud3NpemU9MTw8Zi53Yml0cyxmLnduZXh0PTAs
Zi53aGF2ZT0wLGYud2luZG93PW5ldyBzLkJ1ZjgoZi53c2l6ZSkpLGQ+PWYud3NpemU/KHMuYXJy
YXlTZXQoZi53aW5kb3csYixjLWYud3NpemUsZi53c2l6ZSwwKSxmLnduZXh0PTAsZi53aGF2ZT1m
LndzaXplKTooZT1mLndzaXplLWYud25leHQsZT5kJiYoZT1kKSxzLmFycmF5U2V0KGYud2luZG93
LGIsYy1kLGUsZi53bmV4dCksZC09ZSxkPyhzLmFycmF5U2V0KGYud2luZG93LGIsYy1kLGQsMCks
Zi53bmV4dD1kLGYud2hhdmU9Zi53c2l6ZSk6KGYud25leHQrPWUsZi53bmV4dD09PWYud3NpemUm
JihmLnduZXh0PTApLGYud2hhdmU8Zi53c2l6ZSYmKGYud2hhdmUrPWUpKSksMH1mdW5jdGlvbiBt
KGEsYil7dmFyIGMsZSxmLGcsaCxpLGosbSxuLG8scCxxLHIscGEscWEscmEsc2EsdGEsdWEsdmEs
d2EseGEseWEsemEsQWE9MCxCYT1uZXcgcy5CdWY4KDQpLENhPVsxNiwxNywxOCwwLDgsNyw5LDYs
MTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtpZighYXx8IWEuc3RhdGV8fCFhLm91dHB1dHx8
IWEuaW5wdXQmJjAhPT1hLmF2YWlsX2luKXJldHVybiBHO2M9YS5zdGF0ZSxjLm1vZGU9PT1XJiYo
Yy5tb2RlPVgpLGg9YS5uZXh0X291dCxmPWEub3V0cHV0LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRf
aW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9sZCxuPWMuYml0cyxvPWkscD1qLHhhPUQ7
YTpmb3IoOzspc3dpdGNoKGMubW9kZSl7Y2FzZSBMOmlmKDA9PT1jLndyYXApe2MubW9kZT1YO2Jy
ZWFrfWZvcig7bjwxNjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlm
KDImYy53cmFwJiYzNTYxNT09PW0pe2MuY2hlY2s9MCxCYVswXT0yNTUmbSxCYVsxXT1tPj4+OCYy
NTUsYy5jaGVjaz11KGMuY2hlY2ssQmEsMiwwKSxtPTAsbj0wLGMubW9kZT1NO2JyZWFrfWlmKGMu
ZmxhZ3M9MCxjLmhlYWQmJihjLmhlYWQuZG9uZT0hMSksISgxJmMud3JhcCl8fCgoKDI1NSZtKTw8
OCkrKG0+PjgpKSUzMSl7YS5tc2c9ImluY29ycmVjdCBoZWFkZXIgY2hlY2siLGMubW9kZT1tYTti
cmVha31pZigoMTUmbSkhPT1LKXthLm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLGMu
bW9kZT1tYTticmVha31pZihtPj4+PTQsbi09NCx3YT0oMTUmbSkrOCwwPT09Yy53Yml0cyljLndi
aXRzPXdhO2Vsc2UgaWYod2E+Yy53Yml0cyl7YS5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLGMu
bW9kZT1tYTticmVha31jLmRtYXg9MTw8d2EsYS5hZGxlcj1jLmNoZWNrPTEsYy5tb2RlPTUxMiZt
P1U6VyxtPTAsbj0wO2JyZWFrO2Nhc2UgTTpmb3IoO248MTY7KXtpZigwPT09aSlicmVhayBhO2kt
LSxtKz1lW2crK108PG4sbis9OH1pZihjLmZsYWdzPW0sKDI1NSZjLmZsYWdzKSE9PUspe2EubXNn
PSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsYy5tb2RlPW1hO2JyZWFrfWlmKDU3MzQ0JmMu
ZmxhZ3Mpe2EubXNnPSJ1bmtub3duIGhlYWRlciBmbGFncyBzZXQiLGMubW9kZT1tYTticmVha31j
LmhlYWQmJihjLmhlYWQudGV4dD1tPj44JjEpLDUxMiZjLmZsYWdzJiYoQmFbMF09MjU1Jm0sQmFb
MV09bT4+PjgmMjU1LGMuY2hlY2s9dShjLmNoZWNrLEJhLDIsMCkpLG09MCxuPTAsYy5tb2RlPU47
Y2FzZSBOOmZvcig7bjwzMjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04
fWMuaGVhZCYmKGMuaGVhZC50aW1lPW0pLDUxMiZjLmZsYWdzJiYoQmFbMF09MjU1Jm0sQmFbMV09
bT4+PjgmMjU1LEJhWzJdPW0+Pj4xNiYyNTUsQmFbM109bT4+PjI0JjI1NSxjLmNoZWNrPXUoYy5j
aGVjayxCYSw0LDApKSxtPTAsbj0wLGMubW9kZT1PO2Nhc2UgTzpmb3IoO248MTY7KXtpZigwPT09
aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmhlYWQmJihjLmhlYWQueGZsYWdzPTI1
NSZtLGMuaGVhZC5vcz1tPj44KSw1MTImYy5mbGFncyYmKEJhWzBdPTI1NSZtLEJhWzFdPW0+Pj44
JjI1NSxjLmNoZWNrPXUoYy5jaGVjayxCYSwyLDApKSxtPTAsbj0wLGMubW9kZT1QO2Nhc2UgUDpp
ZigxMDI0JmMuZmxhZ3Mpe2Zvcig7bjwxNjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysr
XTw8bixuKz04fWMubGVuZ3RoPW0sYy5oZWFkJiYoYy5oZWFkLmV4dHJhX2xlbj1tKSw1MTImYy5m
bGFncyYmKEJhWzBdPTI1NSZtLEJhWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXUoYy5jaGVjayxCYSwy
LDApKSxtPTAsbj0wfWVsc2UgYy5oZWFkJiYoYy5oZWFkLmV4dHJhPW51bGwpO2MubW9kZT1RO2Nh
c2UgUTppZigxMDI0JmMuZmxhZ3MmJihxPWMubGVuZ3RoLHE+aSYmKHE9aSkscSYmKGMuaGVhZCYm
KHdhPWMuaGVhZC5leHRyYV9sZW4tYy5sZW5ndGgsYy5oZWFkLmV4dHJhfHwoYy5oZWFkLmV4dHJh
PW5ldyBBcnJheShjLmhlYWQuZXh0cmFfbGVuKSkscy5hcnJheVNldChjLmhlYWQuZXh0cmEsZSxn
LHEsd2EpKSw1MTImYy5mbGFncyYmKGMuY2hlY2s9dShjLmNoZWNrLGUscSxnKSksaS09cSxnKz1x
LGMubGVuZ3RoLT1xKSxjLmxlbmd0aCkpYnJlYWsgYTtjLmxlbmd0aD0wLGMubW9kZT1SO2Nhc2Ug
UjppZigyMDQ4JmMuZmxhZ3Mpe2lmKDA9PT1pKWJyZWFrIGE7cT0wO2RvIHdhPWVbZytxKytdLGMu
aGVhZCYmd2EmJmMubGVuZ3RoPDY1NTM2JiYoYy5oZWFkLm5hbWUrPVN0cmluZy5mcm9tQ2hhckNv
ZGUod2EpKTt3aGlsZSh3YSYmcTxpKTtpZig1MTImYy5mbGFncyYmKGMuY2hlY2s9dShjLmNoZWNr
LGUscSxnKSksaS09cSxnKz1xLHdhKWJyZWFrIGF9ZWxzZSBjLmhlYWQmJihjLmhlYWQubmFtZT1u
dWxsKTtjLmxlbmd0aD0wLGMubW9kZT1TO2Nhc2UgUzppZig0MDk2JmMuZmxhZ3Mpe2lmKDA9PT1p
KWJyZWFrIGE7cT0wO2RvIHdhPWVbZytxKytdLGMuaGVhZCYmd2EmJmMubGVuZ3RoPDY1NTM2JiYo
Yy5oZWFkLmNvbW1lbnQrPVN0cmluZy5mcm9tQ2hhckNvZGUod2EpKTt3aGlsZSh3YSYmcTxpKTtp
Zig1MTImYy5mbGFncyYmKGMuY2hlY2s9dShjLmNoZWNrLGUscSxnKSksaS09cSxnKz1xLHdhKWJy
ZWFrIGF9ZWxzZSBjLmhlYWQmJihjLmhlYWQuY29tbWVudD1udWxsKTtjLm1vZGU9VDtjYXNlIFQ6
aWYoNTEyJmMuZmxhZ3Mpe2Zvcig7bjwxNjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysr
XTw8bixuKz04fWlmKG0hPT0oNjU1MzUmYy5jaGVjaykpe2EubXNnPSJoZWFkZXIgY3JjIG1pc21h
dGNoIixjLm1vZGU9bWE7YnJlYWt9bT0wLG49MH1jLmhlYWQmJihjLmhlYWQuaGNyYz1jLmZsYWdz
Pj45JjEsYy5oZWFkLmRvbmU9ITApLGEuYWRsZXI9Yy5jaGVjaz0wLGMubW9kZT1XO2JyZWFrO2Nh
c2UgVTpmb3IoO248MzI7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1h
LmFkbGVyPWMuY2hlY2s9ZChtKSxtPTAsbj0wLGMubW9kZT1WO2Nhc2UgVjppZigwPT09Yy5oYXZl
ZGljdClyZXR1cm4gYS5uZXh0X291dD1oLGEuYXZhaWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFp
bF9pbj1pLGMuaG9sZD1tLGMuYml0cz1uLEY7YS5hZGxlcj1jLmNoZWNrPTEsYy5tb2RlPVc7Y2Fz
ZSBXOmlmKGI9PT1CfHxiPT09QylicmVhayBhO2Nhc2UgWDppZihjLmxhc3Qpe20+Pj49NyZuLG4t
PTcmbixjLm1vZGU9amE7YnJlYWt9Zm9yKDtuPDM7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1l
W2crK108PG4sbis9OH1zd2l0Y2goYy5sYXN0PTEmbSxtPj4+PTEsbi09MSwzJm0pe2Nhc2UgMDpj
Lm1vZGU9WTticmVhaztjYXNlIDE6aWYoayhjKSxjLm1vZGU9Y2EsYj09PUMpe20+Pj49MixuLT0y
O2JyZWFrIGF9YnJlYWs7Y2FzZSAyOmMubW9kZT1fO2JyZWFrO2Nhc2UgMzphLm1zZz0iaW52YWxp
ZCBibG9jayB0eXBlIixjLm1vZGU9bWF9bT4+Pj0yLG4tPTI7YnJlYWs7Y2FzZSBZOmZvcihtPj4+
PTcmbixuLT03Jm47bjwzMjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04
fWlmKCg2NTUzNSZtKSE9PShtPj4+MTZeNjU1MzUpKXthLm1zZz0iaW52YWxpZCBzdG9yZWQgYmxv
Y2sgbGVuZ3RocyIsYy5tb2RlPW1hO2JyZWFrfWlmKGMubGVuZ3RoPTY1NTM1Jm0sbT0wLG49MCxj
Lm1vZGU9WixiPT09QylicmVhayBhO2Nhc2UgWjpjLm1vZGU9JDtjYXNlICQ6aWYocT1jLmxlbmd0
aCl7aWYocT5pJiYocT1pKSxxPmomJihxPWopLDA9PT1xKWJyZWFrIGE7cy5hcnJheVNldChmLGUs
ZyxxLGgpLGktPXEsZys9cSxqLT1xLGgrPXEsYy5sZW5ndGgtPXE7YnJlYWt9Yy5tb2RlPVc7YnJl
YWs7Y2FzZSBfOmZvcig7bjwxNDspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixu
Kz04fWlmKGMubmxlbj0oMzEmbSkrMjU3LG0+Pj49NSxuLT01LGMubmRpc3Q9KDMxJm0pKzEsbT4+
Pj01LG4tPTUsYy5uY29kZT0oMTUmbSkrNCxtPj4+PTQsbi09NCxjLm5sZW4+Mjg2fHxjLm5kaXN0
PjMwKXthLm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLGMubW9kZT1t
YTticmVha31jLmhhdmU9MCxjLm1vZGU9YWE7Y2FzZSBhYTpmb3IoO2MuaGF2ZTxjLm5jb2RlOyl7
Zm9yKDtuPDM7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbnNb
Q2FbYy5oYXZlKytdXT03Jm0sbT4+Pj0zLG4tPTN9Zm9yKDtjLmhhdmU8MTk7KWMubGVuc1tDYVtj
LmhhdmUrK11dPTA7aWYoYy5sZW5jb2RlPWMubGVuZHluLGMubGVuYml0cz03LHlhPXtiaXRzOmMu
bGVuYml0c30seGE9dyh4LGMubGVucywwLDE5LGMubGVuY29kZSwwLGMud29yayx5YSksYy5sZW5i
aXRzPXlhLmJpdHMseGEpe2EubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLGMubW9kZT1t
YTticmVha31jLmhhdmU9MCxjLm1vZGU9YmE7Y2FzZSBiYTpmb3IoO2MuaGF2ZTxjLm5sZW4rYy5u
ZGlzdDspe2Zvcig7QWE9Yy5sZW5jb2RlW20mKDE8PGMubGVuYml0cyktMV0scWE9QWE+Pj4yNCxy
YT1BYT4+PjE2JjI1NSxzYT02NTUzNSZBYSwhKHFhPD1uKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0t
LG0rPWVbZysrXTw8bixuKz04fWlmKHNhPDE2KW0+Pj49cWEsbi09cWEsYy5sZW5zW2MuaGF2ZSsr
XT1zYTtlbHNle2lmKDE2PT09c2Epe2Zvcih6YT1xYSsyO248emE7KXtpZigwPT09aSlicmVhayBh
O2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtPj4+PXFhLG4tPXFhLDA9PT1jLmhhdmUpe2EubXNn
PSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixjLm1vZGU9bWE7YnJlYWt9d2E9Yy5sZW5zW2Mu
aGF2ZS0xXSxxPTMrKDMmbSksbT4+Pj0yLG4tPTJ9ZWxzZSBpZigxNz09PXNhKXtmb3IoemE9cWEr
MztuPHphOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj1xYSxu
LT1xYSx3YT0wLHE9MysoNyZtKSxtPj4+PTMsbi09M31lbHNle2Zvcih6YT1xYSs3O248emE7KXtp
ZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXFhLG4tPXFhLHdhPTAs
cT0xMSsoMTI3Jm0pLG0+Pj49NyxuLT03fWlmKGMuaGF2ZStxPmMubmxlbitjLm5kaXN0KXthLm1z
Zz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5tb2RlPW1hO2JyZWFrfWZvcig7cS0tOylj
LmxlbnNbYy5oYXZlKytdPXdhfX1pZihjLm1vZGU9PT1tYSlicmVhaztpZigwPT09Yy5sZW5zWzI1
Nl0pe2EubXNnPSJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLGMubW9kZT1t
YTticmVha31pZihjLmxlbmJpdHM9OSx5YT17Yml0czpjLmxlbmJpdHN9LHhhPXcoeSxjLmxlbnMs
MCxjLm5sZW4sYy5sZW5jb2RlLDAsYy53b3JrLHlhKSxjLmxlbmJpdHM9eWEuYml0cyx4YSl7YS5t
c2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsYy5tb2RlPW1hO2JyZWFrfWlmKGMuZGlz
dGJpdHM9NixjLmRpc3Rjb2RlPWMuZGlzdGR5bix5YT17Yml0czpjLmRpc3RiaXRzfSx4YT13KHos
Yy5sZW5zLGMubmxlbixjLm5kaXN0LGMuZGlzdGNvZGUsMCxjLndvcmsseWEpLGMuZGlzdGJpdHM9
eWEuYml0cyx4YSl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsYy5tb2RlPW1hO2JyZWFr
fWlmKGMubW9kZT1jYSxiPT09QylicmVhayBhO2Nhc2UgY2E6Yy5tb2RlPWRhO2Nhc2UgZGE6aWYo
aT49NiYmaj49MjU4KXthLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2
YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sdihhLHApLGg9YS5uZXh0X291dCxmPWEub3V0cHV0
LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRfaW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9s
ZCxuPWMuYml0cyxjLm1vZGU9PT1XJiYoYy5iYWNrPS0xKTticmVha31mb3IoYy5iYWNrPTA7QWE9
Yy5sZW5jb2RlW20mKDE8PGMubGVuYml0cyktMV0scWE9QWE+Pj4yNCxyYT1BYT4+PjE2JjI1NSxz
YT02NTUzNSZBYSwhKHFhPD1uKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixu
Kz04fWlmKHJhJiYwPT09KDI0MCZyYSkpe2Zvcih0YT1xYSx1YT1yYSx2YT1zYTtBYT1jLmxlbmNv
ZGVbdmErKChtJigxPDx0YSt1YSktMSk+PnRhKV0scWE9QWE+Pj4yNCxyYT1BYT4+PjE2JjI1NSxz
YT02NTUzNSZBYSwhKHRhK3FhPD1uKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8
bixuKz04fW0+Pj49dGEsbi09dGEsYy5iYWNrKz10YX1pZihtPj4+PXFhLG4tPXFhLGMuYmFjays9
cWEsYy5sZW5ndGg9c2EsMD09PXJhKXtjLm1vZGU9aWE7YnJlYWt9aWYoMzImcmEpe2MuYmFjaz0t
MSxjLm1vZGU9VzticmVha31pZig2NCZyYSl7YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGgg
Y29kZSIsYy5tb2RlPW1hO2JyZWFrfWMuZXh0cmE9MTUmcmEsYy5tb2RlPWVhO2Nhc2UgZWE6aWYo
Yy5leHRyYSl7Zm9yKHphPWMuZXh0cmE7bjx6YTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVb
ZysrXTw8bixuKz04fWMubGVuZ3RoKz1tJigxPDxjLmV4dHJhKS0xLG0+Pj49Yy5leHRyYSxuLT1j
LmV4dHJhLGMuYmFjays9Yy5leHRyYX1jLndhcz1jLmxlbmd0aCxjLm1vZGU9ZmE7Y2FzZSBmYTpm
b3IoO0FhPWMuZGlzdGNvZGVbbSYoMTw8Yy5kaXN0Yml0cyktMV0scWE9QWE+Pj4yNCxyYT1BYT4+
PjE2JjI1NSxzYT02NTUzNSZBYSwhKHFhPD1uKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVb
ZysrXTw8bixuKz04fWlmKDA9PT0oMjQwJnJhKSl7Zm9yKHRhPXFhLHVhPXJhLHZhPXNhO0FhPWMu
ZGlzdGNvZGVbdmErKChtJigxPDx0YSt1YSktMSk+PnRhKV0scWE9QWE+Pj4yNCxyYT1BYT4+PjE2
JjI1NSxzYT02NTUzNSZBYSwhKHRhK3FhPD1uKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVb
ZysrXTw8bixuKz04fW0+Pj49dGEsbi09dGEsYy5iYWNrKz10YX1pZihtPj4+PXFhLG4tPXFhLGMu
YmFjays9cWEsNjQmcmEpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLGMubW9kZT1tYTti
cmVha31jLm9mZnNldD1zYSxjLmV4dHJhPTE1JnJhLGMubW9kZT1nYTtjYXNlIGdhOmlmKGMuZXh0
cmEpe2Zvcih6YT1jLmV4dHJhO248emE7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108
PG4sbis9OH1jLm9mZnNldCs9bSYoMTw8Yy5leHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRy
YSxjLmJhY2srPWMuZXh0cmF9aWYoYy5vZmZzZXQ+Yy5kbWF4KXthLm1zZz0iaW52YWxpZCBkaXN0
YW5jZSB0b28gZmFyIGJhY2siLGMubW9kZT1tYTticmVha31jLm1vZGU9aGE7Y2FzZSBoYTppZigw
PT09ailicmVhayBhO2lmKHE9cC1qLGMub2Zmc2V0PnEpe2lmKHE9Yy5vZmZzZXQtcSxxPmMud2hh
dmUmJmMuc2FuZSl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9
bWE7YnJlYWt9cT5jLnduZXh0PyhxLT1jLnduZXh0LHI9Yy53c2l6ZS1xKTpyPWMud25leHQtcSxx
PmMubGVuZ3RoJiYocT1jLmxlbmd0aCkscGE9Yy53aW5kb3d9ZWxzZSBwYT1mLHI9aC1jLm9mZnNl
dCxxPWMubGVuZ3RoO3E+aiYmKHE9aiksai09cSxjLmxlbmd0aC09cTtkbyBmW2grK109cGFbcisr
XTt3aGlsZSgtLXEpOzA9PT1jLmxlbmd0aCYmKGMubW9kZT1kYSk7YnJlYWs7Y2FzZSBpYTppZigw
PT09ailicmVhayBhO2ZbaCsrXT1jLmxlbmd0aCxqLS0sYy5tb2RlPWRhO2JyZWFrO2Nhc2UgamE6
aWYoYy53cmFwKXtmb3IoO248MzI7KXtpZigwPT09aSlicmVhayBhO2ktLSxtfD1lW2crK108PG4s
bis9OH1pZihwLT1qLGEudG90YWxfb3V0Kz1wLGMudG90YWwrPXAscCYmKGEuYWRsZXI9Yy5jaGVj
az1jLmZsYWdzP3UoYy5jaGVjayxmLHAsaC1wKTp0KGMuY2hlY2ssZixwLGgtcCkpLHA9aiwoYy5m
bGFncz9tOmQobSkpIT09Yy5jaGVjayl7YS5tc2c9ImluY29ycmVjdCBkYXRhIGNoZWNrIixjLm1v
ZGU9bWE7YnJlYWt9bT0wLG49MH1jLm1vZGU9a2E7Y2FzZSBrYTppZihjLndyYXAmJmMuZmxhZ3Mp
e2Zvcig7bjwzMjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKG0h
PT0oNDI5NDk2NzI5NSZjLnRvdGFsKSl7YS5tc2c9ImluY29ycmVjdCBsZW5ndGggY2hlY2siLGMu
bW9kZT1tYTticmVha31tPTAsbj0wfWMubW9kZT1sYTtjYXNlIGxhOnhhPUU7YnJlYWsgYTtjYXNl
IG1hOnhhPUg7YnJlYWsgYTtjYXNlIG5hOnJldHVybiBJO2Nhc2Ugb2E6ZGVmYXVsdDpyZXR1cm4g
R31yZXR1cm4gYS5uZXh0X291dD1oLGEuYXZhaWxfb3V0PWosYS5uZXh0X2luPWcsYS5hdmFpbF9p
bj1pLGMuaG9sZD1tLGMuYml0cz1uLChjLndzaXplfHxwIT09YS5hdmFpbF9vdXQmJmMubW9kZTxt
YSYmKGMubW9kZTxqYXx8YiE9PUEpKSYmbChhLGEub3V0cHV0LGEubmV4dF9vdXQscC1hLmF2YWls
X291dCk/KGMubW9kZT1uYSxJKTooby09YS5hdmFpbF9pbixwLT1hLmF2YWlsX291dCxhLnRvdGFs
X2luKz1vLGEudG90YWxfb3V0Kz1wLGMudG90YWwrPXAsYy53cmFwJiZwJiYoYS5hZGxlcj1jLmNo
ZWNrPWMuZmxhZ3M/dShjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApOnQoYy5jaGVjayxmLHAsYS5u
ZXh0X291dC1wKSksYS5kYXRhX3R5cGU9Yy5iaXRzKyhjLmxhc3Q/NjQ6MCkrKGMubW9kZT09PVc/
MTI4OjApKyhjLm1vZGU9PT1jYXx8Yy5tb2RlPT09Wj8yNTY6MCksKDA9PT1vJiYwPT09cHx8Yj09
PUEpJiZ4YT09PUQmJih4YT1KKSx4YSl9ZnVuY3Rpb24gbihhKXtpZighYXx8IWEuc3RhdGUpcmV0
dXJuIEc7dmFyIGI9YS5zdGF0ZTtyZXR1cm4gYi53aW5kb3cmJihiLndpbmRvdz1udWxsKSxhLnN0
YXRlPW51bGwsRH1mdW5jdGlvbiBvKGEsYil7dmFyIGM7cmV0dXJuIGEmJmEuc3RhdGU/KGM9YS5z
dGF0ZSwwPT09KDImYy53cmFwKT9HOihjLmhlYWQ9YixiLmRvbmU9ITEsRCkpOkd9ZnVuY3Rpb24g
cChhLGIpe3ZhciBjLGQsZSxmPWIubGVuZ3RoO3JldHVybiBhJiZhLnN0YXRlPyhjPWEuc3RhdGUs
MCE9PWMud3JhcCYmYy5tb2RlIT09Vj9HOmMubW9kZT09PVYmJihkPTEsZD10KGQsYixmLDApLGQh
PT1jLmNoZWNrKT9IOihlPWwoYSxiLGYsZikpPyhjLm1vZGU9bmEsSSk6KGMuaGF2ZWRpY3Q9MSxE
KSk6R312YXIgcSxyLHM9YSgiLi4vdXRpbHMvY29tbW9uIiksdD1hKCIuL2FkbGVyMzIiKSx1PWEo
Ii4vY3JjMzIiKSx2PWEoIi4vaW5mZmFzdCIpLHc9YSgiLi9pbmZ0cmVlcyIpLHg9MCx5PTEsej0y
LEE9NCxCPTUsQz02LEQ9MCxFPTEsRj0yLEc9LTIsSD0tMyxJPS00LEo9LTUsSz04LEw9MSxNPTIs
Tj0zLE89NCxQPTUsUT02LFI9NyxTPTgsVD05LFU9MTAsVj0xMSxXPTEyLFg9MTMsWT0xNCxaPTE1
LCQ9MTYsXz0xNyxhYT0xOCxiYT0xOSxjYT0yMCxkYT0yMSxlYT0yMixmYT0yMyxnYT0yNCxoYT0y
NSxpYT0yNixqYT0yNyxrYT0yOCxsYT0yOSxtYT0zMCxuYT0zMSxvYT0zMixwYT04NTIscWE9NTky
LHJhPTE1LHNhPXJhLHRhPSEwO2MuaW5mbGF0ZVJlc2V0PWcsYy5pbmZsYXRlUmVzZXQyPWgsYy5p
bmZsYXRlUmVzZXRLZWVwPWYsYy5pbmZsYXRlSW5pdD1qLGMuaW5mbGF0ZUluaXQyPWksYy5pbmZs
YXRlPW0sYy5pbmZsYXRlRW5kPW4sYy5pbmZsYXRlR2V0SGVhZGVyPW8sYy5pbmZsYXRlU2V0RGlj
dGlvbmFyeT1wLGMuaW5mbGF0ZUluZm89InBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVj
dCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6NjIsIi4vYWRsZXIzMiI6NjQsIi4vY3JjMzIiOjY2LCIu
L2luZmZhc3QiOjY5LCIuL2luZnRyZWVzIjo3MX1dLDcxOltmdW5jdGlvbihhLGIsYyl7InVzZSBz
dHJpY3QiO3ZhciBkPWEoIi4uL3V0aWxzL2NvbW1vbiIpLGU9MTUsZj04NTIsZz01OTIsaD0wLGk9
MSxqPTIsaz1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1
MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLGw9WzE2LDE2LDE2LDE2
LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIw
LDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSxtPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5
LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2
MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxuPVsxNiwxNiwxNiwxNiwxNywxNywxOCwx
OCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywy
OCwyOCwyOSwyOSw2NCw2NF07Yi5leHBvcnRzPWZ1bmN0aW9uKGEsYixjLG8scCxxLHIscyl7dmFy
IHQsdSx2LHcseCx5LHosQSxCLEM9cy5iaXRzLEQ9MCxFPTAsRj0wLEc9MCxIPTAsST0wLEo9MCxL
PTAsTD0wLE09MCxOPW51bGwsTz0wLFA9bmV3IGQuQnVmMTYoZSsxKSxRPW5ldyBkLkJ1ZjE2KGUr
MSksUj1udWxsLFM9MDtmb3IoRD0wO0Q8PWU7RCsrKVBbRF09MDtmb3IoRT0wO0U8bztFKyspUFti
W2MrRV1dKys7Zm9yKEg9QyxHPWU7Rz49MSYmMD09PVBbR107Ry0tKTtpZihIPkcmJihIPUcpLDA9
PT1HKXJldHVybiBwW3ErK109MjA5NzE1MjAscFtxKytdPTIwOTcxNTIwLHMuYml0cz0xLDA7Zm9y
KEY9MTtGPEcmJjA9PT1QW0ZdO0YrKyk7Zm9yKEg8RiYmKEg9RiksSz0xLEQ9MTtEPD1lO0QrKylp
ZihLPDw9MSxLLT1QW0RdLEs8MClyZXR1cm4tMTtpZihLPjAmJihhPT09aHx8MSE9PUcpKXJldHVy
bi0xO2ZvcihRWzFdPTAsRD0xO0Q8ZTtEKyspUVtEKzFdPVFbRF0rUFtEXTtmb3IoRT0wO0U8bztF
KyspMCE9PWJbYytFXSYmKHJbUVtiW2MrRV1dKytdPUUpO2lmKGE9PT1oPyhOPVI9cix5PTE5KTph
PT09aT8oTj1rLE8tPTI1NyxSPWwsUy09MjU3LHk9MjU2KTooTj1tLFI9bix5PS0xKSxNPTAsRT0w
LEQ9Rix4PXEsST1ILEo9MCx2PS0xLEw9MTw8SCx3PUwtMSxhPT09aSYmTD5mfHxhPT09aiYmTD5n
KXJldHVybiAxO2Zvcig7Oyl7ej1ELUoscltFXTx5PyhBPTAsQj1yW0VdKTpyW0VdPnk/KEE9UltT
K3JbRV1dLEI9TltPK3JbRV1dKTooQT05NixCPTApLHQ9MTw8RC1KLHU9MTw8SSxGPXU7ZG8gdS09
dCxwW3grKE0+PkopK3VdPXo8PDI0fEE8PDE2fEJ8MDt3aGlsZSgwIT09dSk7Zm9yKHQ9MTw8RC0x
O00mdDspdD4+PTE7aWYoMCE9PXQ/KE0mPXQtMSxNKz10KTpNPTAsRSsrLDA9PT0tLVBbRF0pe2lm
KEQ9PT1HKWJyZWFrO0Q9YltjK3JbRV1dfWlmKEQ+SCYmKE0mdykhPT12KXtmb3IoMD09PUomJihK
PUgpLHgrPUYsST1ELUosSz0xPDxJO0krSjxHJiYoSy09UFtJK0pdLCEoSzw9MCkpOylJKyssSzw8
PTE7aWYoTCs9MTw8SSxhPT09aSYmTD5mfHxhPT09aiYmTD5nKXJldHVybiAxO3Y9TSZ3LHBbdl09
SDw8MjR8STw8MTZ8eC1xfDB9fXJldHVybiAwIT09TSYmKHBbeCtNXT1ELUo8PDI0fDY0PDwxNnww
KSxzLmJpdHM9SCwwfX0seyIuLi91dGlscy9jb21tb24iOjYyfV0sNzI6W2Z1bmN0aW9uKGEsYixj
KXsidXNlIHN0cmljdCI7Yi5leHBvcnRzPXsyOiJuZWVkIGRpY3Rpb25hcnkiLDE6InN0cmVhbSBl
bmQiLDA6IiIsIi0xIjoiZmlsZSBlcnJvciIsIi0yIjoic3RyZWFtIGVycm9yIiwiLTMiOiJkYXRh
IGVycm9yIiwiLTQiOiJpbnN1ZmZpY2llbnQgbWVtb3J5IiwiLTUiOiJidWZmZXIgZXJyb3IiLCIt
NiI6ImluY29tcGF0aWJsZSB2ZXJzaW9uIn19LHt9XSw3MzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ug
c3RyaWN0IjtmdW5jdGlvbiBkKGEpe2Zvcih2YXIgYj1hLmxlbmd0aDstLWI+PTA7KWFbYl09MH1m
dW5jdGlvbiBlKGEsYixjLGQsZSl7dGhpcy5zdGF0aWNfdHJlZT1hLHRoaXMuZXh0cmFfYml0cz1i
LHRoaXMuZXh0cmFfYmFzZT1jLHRoaXMuZWxlbXM9ZCx0aGlzLm1heF9sZW5ndGg9ZSx0aGlzLmhh
c19zdHJlZT1hJiZhLmxlbmd0aH1mdW5jdGlvbiBmKGEsYil7dGhpcy5keW5fdHJlZT1hLHRoaXMu
bWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1ifWZ1bmN0aW9uIGcoYSl7cmV0dXJuIGE8MjU2P2lh
W2FdOmlhWzI1NisoYT4+PjcpXX1mdW5jdGlvbiBoKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRp
bmcrK109MjU1JmIsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1fWZ1bmN0aW9u
IGkoYSxiLGMpe2EuYmlfdmFsaWQ+WC1jPyhhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxo
KGEsYS5iaV9idWYpLGEuYmlfYnVmPWI+PlgtYS5iaV92YWxpZCxhLmJpX3ZhbGlkKz1jLVgpOihh
LmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxhLmJpX3ZhbGlkKz1jKX1mdW5jdGlvbiBqKGEs
YixjKXtpKGEsY1syKmJdLGNbMipiKzFdKX1mdW5jdGlvbiBrKGEsYil7dmFyIGM9MDtkbyBjfD0x
JmEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9ZnVuY3Rpb24gbChhKXsx
Nj09PWEuYmlfdmFsaWQ/KGgoYSxhLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTApOmEu
YmlfdmFsaWQ+PTgmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYS5iaV9idWYsYS5i
aV9idWY+Pj04LGEuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIG0oYSxiKXt2YXIgYyxkLGUsZixnLGgs
aT1iLmR5bl90cmVlLGo9Yi5tYXhfY29kZSxrPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGw9Yi5z
dGF0X2Rlc2MuaGFzX3N0cmVlLG09Yi5zdGF0X2Rlc2MuZXh0cmFfYml0cyxuPWIuc3RhdF9kZXNj
LmV4dHJhX2Jhc2Usbz1iLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLHA9MDtmb3IoZj0wO2Y8PVc7Zisr
KWEuYmxfY291bnRbZl09MDtmb3IoaVsyKmEuaGVhcFthLmhlYXBfbWF4XSsxXT0wLAorYz1hLmhl
YXBfbWF4KzE7YzxWO2MrKylkPWEuaGVhcFtjXSxmPWlbMippWzIqZCsxXSsxXSsxLGY+byYmKGY9
byxwKyspLGlbMipkKzFdPWYsZD5qfHwoYS5ibF9jb3VudFtmXSsrLGc9MCxkPj1uJiYoZz1tW2Qt
bl0pLGg9aVsyKmRdLGEub3B0X2xlbis9aCooZitnKSxsJiYoYS5zdGF0aWNfbGVuKz1oKihrWzIq
ZCsxXStnKSkpO2lmKDAhPT1wKXtkb3tmb3IoZj1vLTE7MD09PWEuYmxfY291bnRbZl07KWYtLTth
LmJsX2NvdW50W2ZdLS0sYS5ibF9jb3VudFtmKzFdKz0yLGEuYmxfY291bnRbb10tLSxwLT0yfXdo
aWxlKHA+MCk7Zm9yKGY9bzswIT09ZjtmLS0pZm9yKGQ9YS5ibF9jb3VudFtmXTswIT09ZDspZT1h
LmhlYXBbLS1jXSxlPmp8fChpWzIqZSsxXSE9PWYmJihhLm9wdF9sZW4rPShmLWlbMiplKzFdKSpp
WzIqZV0saVsyKmUrMV09ZiksZC0tKX19ZnVuY3Rpb24gbihhLGIsYyl7dmFyIGQsZSxmPW5ldyBB
cnJheShXKzEpLGc9MDtmb3IoZD0xO2Q8PVc7ZCsrKWZbZF09Zz1nK2NbZC0xXTw8MTtmb3IoZT0w
O2U8PWI7ZSsrKXt2YXIgaD1hWzIqZSsxXTswIT09aCYmKGFbMiplXT1rKGZbaF0rKyxoKSl9fWZ1
bmN0aW9uIG8oKXt2YXIgYSxiLGMsZCxmLGc9bmV3IEFycmF5KFcrMSk7Zm9yKGM9MCxkPTA7ZDxR
LTE7ZCsrKWZvcihrYVtkXT1jLGE9MDthPDE8PGJhW2RdO2ErKylqYVtjKytdPWQ7Zm9yKGphW2Mt
MV09ZCxmPTAsZD0wO2Q8MTY7ZCsrKWZvcihsYVtkXT1mLGE9MDthPDE8PGNhW2RdO2ErKylpYVtm
KytdPWQ7Zm9yKGY+Pj03O2Q8VDtkKyspZm9yKGxhW2RdPWY8PDcsYT0wO2E8MTw8Y2FbZF0tNzth
KyspaWFbMjU2K2YrK109ZDtmb3IoYj0wO2I8PVc7YisrKWdbYl09MDtmb3IoYT0wO2E8PTE0Mzsp
Z2FbMiphKzFdPTgsYSsrLGdbOF0rKztmb3IoO2E8PTI1NTspZ2FbMiphKzFdPTksYSsrLGdbOV0r
Kztmb3IoO2E8PTI3OTspZ2FbMiphKzFdPTcsYSsrLGdbN10rKztmb3IoO2E8PTI4NzspZ2FbMiph
KzFdPTgsYSsrLGdbOF0rKztmb3IobihnYSxTKzEsZyksYT0wO2E8VDthKyspaGFbMiphKzFdPTUs
aGFbMiphXT1rKGEsNSk7bWE9bmV3IGUoZ2EsYmEsUisxLFMsVyksbmE9bmV3IGUoaGEsY2EsMCxU
LFcpLG9hPW5ldyBlKG5ldyBBcnJheSgwKSxkYSwwLFUsWSl9ZnVuY3Rpb24gcChhKXt2YXIgYjtm
b3IoYj0wO2I8UztiKyspYS5keW5fbHRyZWVbMipiXT0wO2ZvcihiPTA7YjxUO2IrKylhLmR5bl9k
dHJlZVsyKmJdPTA7Zm9yKGI9MDtiPFU7YisrKWEuYmxfdHJlZVsyKmJdPTA7YS5keW5fbHRyZWVb
MipaXT0xLGEub3B0X2xlbj1hLnN0YXRpY19sZW49MCxhLmxhc3RfbGl0PWEubWF0Y2hlcz0wfWZ1
bmN0aW9uIHEoYSl7YS5iaV92YWxpZD44P2goYSxhLmJpX2J1Zik6YS5iaV92YWxpZD4wJiYoYS5w
ZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109YS5iaV9idWYpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0w
fWZ1bmN0aW9uIHIoYSxiLGMsZCl7cShhKSxkJiYoaChhLGMpLGgoYSx+YykpLEcuYXJyYXlTZXQo
YS5wZW5kaW5nX2J1ZixhLndpbmRvdyxiLGMsYS5wZW5kaW5nKSxhLnBlbmRpbmcrPWN9ZnVuY3Rp
b24gcyhhLGIsYyxkKXt2YXIgZT0yKmIsZj0yKmM7cmV0dXJuIGFbZV08YVtmXXx8YVtlXT09PWFb
Zl0mJmRbYl08PWRbY119ZnVuY3Rpb24gdChhLGIsYyl7Zm9yKHZhciBkPWEuaGVhcFtjXSxlPWM8
PDE7ZTw9YS5oZWFwX2xlbiYmKGU8YS5oZWFwX2xlbiYmcyhiLGEuaGVhcFtlKzFdLGEuaGVhcFtl
XSxhLmRlcHRoKSYmZSsrLCFzKGIsZCxhLmhlYXBbZV0sYS5kZXB0aCkpOylhLmhlYXBbY109YS5o
ZWFwW2VdLGM9ZSxlPDw9MTthLmhlYXBbY109ZH1mdW5jdGlvbiB1KGEsYixjKXt2YXIgZCxlLGYs
aCxrPTA7aWYoMCE9PWEubGFzdF9saXQpZG8gZD1hLnBlbmRpbmdfYnVmW2EuZF9idWYrMiprXTw8
OHxhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiprKzFdLGU9YS5wZW5kaW5nX2J1ZlthLmxfYnVmK2td
LGsrKywwPT09ZD9qKGEsZSxiKTooZj1qYVtlXSxqKGEsZitSKzEsYiksaD1iYVtmXSwwIT09aCYm
KGUtPWthW2ZdLGkoYSxlLGgpKSxkLS0sZj1nKGQpLGooYSxmLGMpLGg9Y2FbZl0sMCE9PWgmJihk
LT1sYVtmXSxpKGEsZCxoKSkpO3doaWxlKGs8YS5sYXN0X2xpdCk7aihhLFosYil9ZnVuY3Rpb24g
dihhLGIpe3ZhciBjLGQsZSxmPWIuZHluX3RyZWUsZz1iLnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxo
PWIuc3RhdF9kZXNjLmhhc19zdHJlZSxpPWIuc3RhdF9kZXNjLmVsZW1zLGo9LTE7Zm9yKGEuaGVh
cF9sZW49MCxhLmhlYXBfbWF4PVYsYz0wO2M8aTtjKyspMCE9PWZbMipjXT8oYS5oZWFwWysrYS5o
ZWFwX2xlbl09aj1jLGEuZGVwdGhbY109MCk6ZlsyKmMrMV09MDtmb3IoO2EuaGVhcF9sZW48Mjsp
ZT1hLmhlYXBbKythLmhlYXBfbGVuXT1qPDI/KytqOjAsZlsyKmVdPTEsYS5kZXB0aFtlXT0wLGEu
b3B0X2xlbi0tLGgmJihhLnN0YXRpY19sZW4tPWdbMiplKzFdKTtmb3IoYi5tYXhfY29kZT1qLGM9
YS5oZWFwX2xlbj4+MTtjPj0xO2MtLSl0KGEsZixjKTtlPWk7ZG8gYz1hLmhlYXBbMV0sYS5oZWFw
WzFdPWEuaGVhcFthLmhlYXBfbGVuLS1dLHQoYSxmLDEpLGQ9YS5oZWFwWzFdLGEuaGVhcFstLWEu
aGVhcF9tYXhdPWMsYS5oZWFwWy0tYS5oZWFwX21heF09ZCxmWzIqZV09ZlsyKmNdK2ZbMipkXSxh
LmRlcHRoW2VdPShhLmRlcHRoW2NdPj1hLmRlcHRoW2RdP2EuZGVwdGhbY106YS5kZXB0aFtkXSkr
MSxmWzIqYysxXT1mWzIqZCsxXT1lLGEuaGVhcFsxXT1lKyssdChhLGYsMSk7d2hpbGUoYS5oZWFw
X2xlbj49Mik7YS5oZWFwWy0tYS5oZWFwX21heF09YS5oZWFwWzFdLG0oYSxiKSxuKGYsaixhLmJs
X2NvdW50KX1mdW5jdGlvbiB3KGEsYixjKXt2YXIgZCxlLGY9LTEsZz1iWzFdLGg9MCxpPTcsaj00
O2ZvcigwPT09ZyYmKGk9MTM4LGo9MyksYlsyKihjKzEpKzFdPTY1NTM1LGQ9MDtkPD1jO2QrKyll
PWcsZz1iWzIqKGQrMSkrMV0sKytoPGkmJmU9PT1nfHwoaDxqP2EuYmxfdHJlZVsyKmVdKz1oOjAh
PT1lPyhlIT09ZiYmYS5ibF90cmVlWzIqZV0rKyxhLmJsX3RyZWVbMiokXSsrKTpoPD0xMD9hLmJs
X3RyZWVbMipfXSsrOmEuYmxfdHJlZVsyKmFhXSsrLGg9MCxmPWUsMD09PWc/KGk9MTM4LGo9Myk6
ZT09PWc/KGk9NixqPTMpOihpPTcsaj00KSl9ZnVuY3Rpb24geChhLGIsYyl7dmFyIGQsZSxmPS0x
LGc9YlsxXSxoPTAsaz03LGw9NDtmb3IoMD09PWcmJihrPTEzOCxsPTMpLGQ9MDtkPD1jO2QrKylp
ZihlPWcsZz1iWzIqKGQrMSkrMV0sISgrK2g8ayYmZT09PWcpKXtpZihoPGwpe2RvIGooYSxlLGEu
YmxfdHJlZSk7d2hpbGUoMCE9PS0taCl9ZWxzZSAwIT09ZT8oZSE9PWYmJihqKGEsZSxhLmJsX3Ry
ZWUpLGgtLSksaihhLCQsYS5ibF90cmVlKSxpKGEsaC0zLDIpKTpoPD0xMD8oaihhLF8sYS5ibF90
cmVlKSxpKGEsaC0zLDMpKTooaihhLGFhLGEuYmxfdHJlZSksaShhLGgtMTEsNykpO2g9MCxmPWUs
MD09PWc/KGs9MTM4LGw9Myk6ZT09PWc/KGs9NixsPTMpOihrPTcsbD00KX19ZnVuY3Rpb24geShh
KXt2YXIgYjtmb3IodyhhLGEuZHluX2x0cmVlLGEubF9kZXNjLm1heF9jb2RlKSx3KGEsYS5keW5f
ZHRyZWUsYS5kX2Rlc2MubWF4X2NvZGUpLHYoYSxhLmJsX2Rlc2MpLGI9VS0xO2I+PTMmJjA9PT1h
LmJsX3RyZWVbMiplYVtiXSsxXTtiLS0pO3JldHVybiBhLm9wdF9sZW4rPTMqKGIrMSkrNSs1KzQs
Yn1mdW5jdGlvbiB6KGEsYixjLGQpe3ZhciBlO2ZvcihpKGEsYi0yNTcsNSksaShhLGMtMSw1KSxp
KGEsZC00LDQpLGU9MDtlPGQ7ZSsrKWkoYSxhLmJsX3RyZWVbMiplYVtlXSsxXSwzKTt4KGEsYS5k
eW5fbHRyZWUsYi0xKSx4KGEsYS5keW5fZHRyZWUsYy0xKX1mdW5jdGlvbiBBKGEpe3ZhciBiLGM9
NDA5MzYyNDQ0Nztmb3IoYj0wO2I8PTMxO2IrKyxjPj4+PTEpaWYoMSZjJiYwIT09YS5keW5fbHRy
ZWVbMipiXSlyZXR1cm4gSTtpZigwIT09YS5keW5fbHRyZWVbMThdfHwwIT09YS5keW5fbHRyZWVb
MjBdfHwwIT09YS5keW5fbHRyZWVbMjZdKXJldHVybiBKO2ZvcihiPTMyO2I8UjtiKyspaWYoMCE9
PWEuZHluX2x0cmVlWzIqYl0pcmV0dXJuIEo7cmV0dXJuIEl9ZnVuY3Rpb24gQihhKXtwYXx8KG8o
KSxwYT0hMCksYS5sX2Rlc2M9bmV3IGYoYS5keW5fbHRyZWUsbWEpLGEuZF9kZXNjPW5ldyBmKGEu
ZHluX2R0cmVlLG5hKSxhLmJsX2Rlc2M9bmV3IGYoYS5ibF90cmVlLG9hKSxhLmJpX2J1Zj0wLGEu
YmlfdmFsaWQ9MCxwKGEpfWZ1bmN0aW9uIEMoYSxiLGMsZCl7aShhLChMPDwxKSsoZD8xOjApLDMp
LHIoYSxiLGMsITApfWZ1bmN0aW9uIEQoYSl7aShhLE08PDEsMyksaihhLFosZ2EpLGwoYSl9ZnVu
Y3Rpb24gRShhLGIsYyxkKXt2YXIgZSxmLGc9MDthLmxldmVsPjA/KGEuc3RybS5kYXRhX3R5cGU9
PT1LJiYoYS5zdHJtLmRhdGFfdHlwZT1BKGEpKSx2KGEsYS5sX2Rlc2MpLHYoYSxhLmRfZGVzYyks
Zz15KGEpLGU9YS5vcHRfbGVuKzMrNz4+PjMsZj1hLnN0YXRpY19sZW4rMys3Pj4+MyxmPD1lJiYo
ZT1mKSk6ZT1mPWMrNSxjKzQ8PWUmJmIhPT0tMT9DKGEsYixjLGQpOmEuc3RyYXRlZ3k9PT1IfHxm
PT09ZT8oaShhLChNPDwxKSsoZD8xOjApLDMpLHUoYSxnYSxoYSkpOihpKGEsKE48PDEpKyhkPzE6
MCksMykseihhLGEubF9kZXNjLm1heF9jb2RlKzEsYS5kX2Rlc2MubWF4X2NvZGUrMSxnKzEpLHUo
YSxhLmR5bl9sdHJlZSxhLmR5bl9kdHJlZSkpLHAoYSksZCYmcShhKX1mdW5jdGlvbiBGKGEsYixj
KXtyZXR1cm4gYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdF09Yj4+PjgmMjU1LGEu
cGVuZGluZ19idWZbYS5kX2J1ZisyKmEubGFzdF9saXQrMV09MjU1JmIsYS5wZW5kaW5nX2J1Zlth
LmxfYnVmK2EubGFzdF9saXRdPTI1NSZjLGEubGFzdF9saXQrKywwPT09Yj9hLmR5bl9sdHJlZVsy
KmNdKys6KGEubWF0Y2hlcysrLGItLSxhLmR5bl9sdHJlZVsyKihqYVtjXStSKzEpXSsrLGEuZHlu
X2R0cmVlWzIqZyhiKV0rKyksYS5sYXN0X2xpdD09PWEubGl0X2J1ZnNpemUtMX12YXIgRz1hKCIu
Li91dGlscy9jb21tb24iKSxIPTQsST0wLEo9MSxLPTIsTD0wLE09MSxOPTIsTz0zLFA9MjU4LFE9
MjksUj0yNTYsUz1SKzErUSxUPTMwLFU9MTksVj0yKlMrMSxXPTE1LFg9MTYsWT03LFo9MjU2LCQ9
MTYsXz0xNyxhYT0xOCxiYT1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywz
LDQsNCw0LDQsNSw1LDUsNSwwXSxjYT1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3
LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sZGE9WzAsMCwwLDAsMCwwLDAsMCww
LDAsMCwwLDAsMCwwLDAsMiwzLDddLGVhPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEy
LDMsMTMsMiwxNCwxLDE1XSxmYT01MTIsZ2E9bmV3IEFycmF5KDIqKFMrMikpO2QoZ2EpO3ZhciBo
YT1uZXcgQXJyYXkoMipUKTtkKGhhKTt2YXIgaWE9bmV3IEFycmF5KGZhKTtkKGlhKTt2YXIgamE9
bmV3IEFycmF5KFAtTysxKTtkKGphKTt2YXIga2E9bmV3IEFycmF5KFEpO2Qoa2EpO3ZhciBsYT1u
ZXcgQXJyYXkoVCk7ZChsYSk7dmFyIG1hLG5hLG9hLHBhPSExO2MuX3RyX2luaXQ9QixjLl90cl9z
dG9yZWRfYmxvY2s9QyxjLl90cl9mbHVzaF9ibG9jaz1FLGMuX3RyX3RhbGx5PUYsYy5fdHJfYWxp
Z249RH0seyIuLi91dGlscy9jb21tb24iOjYyfV0sNzQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0
cmljdCI7ZnVuY3Rpb24gZCgpe3RoaXMuaW5wdXQ9bnVsbCx0aGlzLm5leHRfaW49MCx0aGlzLmF2
YWlsX2luPTAsdGhpcy50b3RhbF9pbj0wLHRoaXMub3V0cHV0PW51bGwsdGhpcy5uZXh0X291dD0w
LHRoaXMuYXZhaWxfb3V0PTAsdGhpcy50b3RhbF9vdXQ9MCx0aGlzLm1zZz0iIix0aGlzLnN0YXRl
PW51bGwsdGhpcy5kYXRhX3R5cGU9Mix0aGlzLmFkbGVyPTB9Yi5leHBvcnRzPWR9LHt9XX0se30s
WzEwXSkoMTApfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9s
aWIvcXJjb2RlLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvcXJjb2RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZTVkN2I5NzRhNjZm
NGMzMDUyZWI2NDcwOGFjZWY2NzJhYzM2Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9xcmNv
ZGUuanMKQEAgLTAsMCArMSwxNTMzIEBACisvKioKKyAqIEBmaWxlb3ZlcnZpZXcKKyAqIC0gVXNp
bmcgdGhlICdRUkNvZGUgZm9yIEphdmFzY3JpcHQgbGlicmFyeScKKyAqIC0gRml4ZWQgZGF0YXNl
dCBvZiAnUVJDb2RlIGZvciBKYXZhc2NyaXB0IGxpYnJhcnknIGZvciBzdXBwb3J0IGZ1bGwtc3Bl
Yy4KKyAqIC0gdGhpcyBsaWJyYXJ5IGhhcyBubyBkZXBlbmRlbmNpZXMuCisgKgorICogQGF1dGhv
ciBkYXZpZHNoaW1qcworICogQHNlZSA8YSBocmVmPSJodHRwOi8vd3d3LmQtcHJvamVjdC5jb20v
IiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5kLXByb2plY3QuY29tLzwvYT4KKyAqIEBzZWUg
PGEgaHJlZj0iaHR0cDovL2plcm9tZWV0aWVubmUuZ2l0aHViLmNvbS9qcXVlcnktcXJjb2RlLyIg
dGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9qZXJvbWVldGllbm5lLmdpdGh1Yi5jb20vanF1ZXJ5LXFy
Y29kZS88L2E+CisgKi8KK3ZhciBRUkNvZGUKKzsoZnVuY3Rpb24gKCkgeworICAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgLy8gUVJDb2RlIGZvciBKYXZhU2NyaXB0CisgIC8vCisgIC8vIENvcHlyaWdodCAo
YykgMjAwOSBLYXp1aGlrbyBBcmFzZQorICAvLworICAvLyBVUkw6IGh0dHA6Ly93d3cuZC1wcm9q
ZWN0LmNvbS8KKyAgLy8KKyAgLy8gTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOgorICAv
LyAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCisg
IC8vCisgIC8vIFRoZSB3b3JkICJRUiBDb2RlIiBpcyByZWdpc3RlcmVkIHRyYWRlbWFyayBvZgor
ICAvLyBERU5TTyBXQVZFIElOQ09SUE9SQVRFRAorICAvLyAgIGh0dHA6Ly93d3cuZGVuc28td2F2
ZS5jb20vcXJjb2RlL2ZhcXBhdGVudC1lLmh0bWwKKyAgLy8KKyAgLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg
IGZ1bmN0aW9uIFFSOGJpdEJ5dGUgKGRhdGEpIHsKKyAgICB0aGlzLm1vZGUgPSBRUk1vZGUuTU9E
RV84QklUX0JZVEUKKyAgICB0aGlzLmRhdGEgPSBkYXRhCisgICAgdGhpcy5wYXJzZWREYXRhID0g
W10KKworICAgIC8vIEFkZGVkIHRvIHN1cHBvcnQgVVRGLTggQ2hhcmFjdGVycworICAgIGZvciAo
dmFyIGkgPSAwLCBsID0gdGhpcy5kYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykgeworICAgICAgdmFy
IGJ5dGVBcnJheSA9IFtdCisgICAgICB2YXIgY29kZSA9IHRoaXMuZGF0YS5jaGFyQ29kZUF0KGkp
CisKKyAgICAgIGlmIChjb2RlID4gMHgxMDAwMCkgeworICAgICAgICBieXRlQXJyYXlbMF0gPSAw
eGYwIHwgKChjb2RlICYgMHgxYzAwMDApID4+PiAxOCkKKyAgICAgICAgYnl0ZUFycmF5WzFdID0g
MHg4MCB8ICgoY29kZSAmIDB4M2YwMDApID4+PiAxMikKKyAgICAgICAgYnl0ZUFycmF5WzJdID0g
MHg4MCB8ICgoY29kZSAmIDB4ZmMwKSA+Pj4gNikKKyAgICAgICAgYnl0ZUFycmF5WzNdID0gMHg4
MCB8IChjb2RlICYgMHgzZikKKyAgICAgIH0gZWxzZSBpZiAoY29kZSA+IDB4ODAwKSB7CisgICAg
ICAgIGJ5dGVBcnJheVswXSA9IDB4ZTAgfCAoKGNvZGUgJiAweGYwMDApID4+PiAxMikKKyAgICAg
ICAgYnl0ZUFycmF5WzFdID0gMHg4MCB8ICgoY29kZSAmIDB4ZmMwKSA+Pj4gNikKKyAgICAgICAg
Ynl0ZUFycmF5WzJdID0gMHg4MCB8IChjb2RlICYgMHgzZikKKyAgICAgIH0gZWxzZSBpZiAoY29k
ZSA+IDB4ODApIHsKKyAgICAgICAgYnl0ZUFycmF5WzBdID0gMHhjMCB8ICgoY29kZSAmIDB4N2Mw
KSA+Pj4gNikKKyAgICAgICAgYnl0ZUFycmF5WzFdID0gMHg4MCB8IChjb2RlICYgMHgzZikKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIGJ5dGVBcnJheVswXSA9IGNvZGUKKyAgICAgIH0KKworICAg
ICAgdGhpcy5wYXJzZWREYXRhLnB1c2goYnl0ZUFycmF5KQorICAgIH0KKworICAgIHRoaXMucGFy
c2VkRGF0YSA9IEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIHRoaXMucGFyc2VkRGF0
YSkKKworICAgIGlmICh0aGlzLnBhcnNlZERhdGEubGVuZ3RoICE9IHRoaXMuZGF0YS5sZW5ndGgp
IHsKKyAgICAgIHRoaXMucGFyc2VkRGF0YS51bnNoaWZ0KDE5MSkKKyAgICAgIHRoaXMucGFyc2Vk
RGF0YS51bnNoaWZ0KDE4NykKKyAgICAgIHRoaXMucGFyc2VkRGF0YS51bnNoaWZ0KDIzOSkKKyAg
ICB9CisgIH0KKworICBRUjhiaXRCeXRlLnByb3RvdHlwZSA9IHsKKyAgICBnZXRMZW5ndGg6IGZ1
bmN0aW9uIChidWZmZXIpIHsKKyAgICAgIHJldHVybiB0aGlzLnBhcnNlZERhdGEubGVuZ3RoCisg
ICAgfSwKKyAgICB3cml0ZTogZnVuY3Rpb24gKGJ1ZmZlcikgeworICAgICAgZm9yICh2YXIgaSA9
IDAsIGwgPSB0aGlzLnBhcnNlZERhdGEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CisgICAgICAgIGJ1
ZmZlci5wdXQodGhpcy5wYXJzZWREYXRhW2ldLCA4KQorICAgICAgfQorICAgIH0KKyAgfQorCisg
IGZ1bmN0aW9uIFFSQ29kZU1vZGVsICh0eXBlTnVtYmVyLCBlcnJvckNvcnJlY3RMZXZlbCkgewor
ICAgIHRoaXMudHlwZU51bWJlciA9IHR5cGVOdW1iZXIKKyAgICB0aGlzLmVycm9yQ29ycmVjdExl
dmVsID0gZXJyb3JDb3JyZWN0TGV2ZWwKKyAgICB0aGlzLm1vZHVsZXMgPSBudWxsCisgICAgdGhp
cy5tb2R1bGVDb3VudCA9IDAKKyAgICB0aGlzLmRhdGFDYWNoZSA9IG51bGwKKyAgICB0aGlzLmRh
dGFMaXN0ID0gW10KKyAgfQorCisgIFFSQ29kZU1vZGVsLnByb3RvdHlwZSA9IHsKKyAgICBhZGRE
YXRhOiBmdW5jdGlvbiAoZGF0YSkgeworICAgICAgdmFyIG5ld0RhdGEgPSBuZXcgUVI4Yml0Qnl0
ZShkYXRhKQorICAgICAgdGhpcy5kYXRhTGlzdC5wdXNoKG5ld0RhdGEpCisgICAgICB0aGlzLmRh
dGFDYWNoZSA9IG51bGwKKyAgICB9LAorICAgIGlzRGFyazogZnVuY3Rpb24gKHJvdywgY29sKSB7
CisgICAgICBpZiAoCisgICAgICAgIHJvdyA8IDAgfHwKKyAgICAgICAgdGhpcy5tb2R1bGVDb3Vu
dCA8PSByb3cgfHwKKyAgICAgICAgY29sIDwgMCB8fAorICAgICAgICB0aGlzLm1vZHVsZUNvdW50
IDw9IGNvbAorICAgICAgKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcihyb3cgKyAnLCcgKyBj
b2wpCisgICAgICB9CisgICAgICByZXR1cm4gdGhpcy5tb2R1bGVzW3Jvd11bY29sXQorICAgIH0s
CisgICAgZ2V0TW9kdWxlQ291bnQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgIHJldHVybiB0aGlzLm1v
ZHVsZUNvdW50CisgICAgfSwKKyAgICBtYWtlOiBmdW5jdGlvbiAoKSB7CisgICAgICB0aGlzLm1h
a2VJbXBsKGZhbHNlLCB0aGlzLmdldEJlc3RNYXNrUGF0dGVybigpKQorICAgIH0sCisgICAgbWFr
ZUltcGw6IGZ1bmN0aW9uICh0ZXN0LCBtYXNrUGF0dGVybikgeworICAgICAgdGhpcy5tb2R1bGVD
b3VudCA9IHRoaXMudHlwZU51bWJlciAqIDQgKyAxNworICAgICAgdGhpcy5tb2R1bGVzID0gbmV3
IEFycmF5KHRoaXMubW9kdWxlQ291bnQpCisgICAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCB0
aGlzLm1vZHVsZUNvdW50OyByb3crKykgeworICAgICAgICB0aGlzLm1vZHVsZXNbcm93XSA9IG5l
dyBBcnJheSh0aGlzLm1vZHVsZUNvdW50KQorICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wg
PCB0aGlzLm1vZHVsZUNvdW50OyBjb2wrKykgeworICAgICAgICAgIHRoaXMubW9kdWxlc1tyb3dd
W2NvbF0gPSBudWxsCisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHRoaXMuc2V0dXBQb3NpdGlv
blByb2JlUGF0dGVybigwLCAwKQorICAgICAgdGhpcy5zZXR1cFBvc2l0aW9uUHJvYmVQYXR0ZXJu
KHRoaXMubW9kdWxlQ291bnQgLSA3LCAwKQorICAgICAgdGhpcy5zZXR1cFBvc2l0aW9uUHJvYmVQ
YXR0ZXJuKDAsIHRoaXMubW9kdWxlQ291bnQgLSA3KQorICAgICAgdGhpcy5zZXR1cFBvc2l0aW9u
QWRqdXN0UGF0dGVybigpCisgICAgICB0aGlzLnNldHVwVGltaW5nUGF0dGVybigpCisgICAgICB0
aGlzLnNldHVwVHlwZUluZm8odGVzdCwgbWFza1BhdHRlcm4pCisgICAgICBpZiAodGhpcy50eXBl
TnVtYmVyID49IDcpIHsKKyAgICAgICAgdGhpcy5zZXR1cFR5cGVOdW1iZXIodGVzdCkKKyAgICAg
IH0KKyAgICAgIGlmICh0aGlzLmRhdGFDYWNoZSA9PSBudWxsKSB7CisgICAgICAgIHRoaXMuZGF0
YUNhY2hlID0gUVJDb2RlTW9kZWwuY3JlYXRlRGF0YSgKKyAgICAgICAgICB0aGlzLnR5cGVOdW1i
ZXIsCisgICAgICAgICAgdGhpcy5lcnJvckNvcnJlY3RMZXZlbCwKKyAgICAgICAgICB0aGlzLmRh
dGFMaXN0CisgICAgICAgICkKKyAgICAgIH0KKyAgICAgIHRoaXMubWFwRGF0YSh0aGlzLmRhdGFD
YWNoZSwgbWFza1BhdHRlcm4pCisgICAgfSwKKyAgICBzZXR1cFBvc2l0aW9uUHJvYmVQYXR0ZXJu
OiBmdW5jdGlvbiAocm93LCBjb2wpIHsKKyAgICAgIGZvciAodmFyIHIgPSAtMTsgciA8PSA3OyBy
KyspIHsKKyAgICAgICAgaWYgKHJvdyArIHIgPD0gLTEgfHwgdGhpcy5tb2R1bGVDb3VudCA8PSBy
b3cgKyByKSBjb250aW51ZQorICAgICAgICBmb3IgKHZhciBjID0gLTE7IGMgPD0gNzsgYysrKSB7
CisgICAgICAgICAgaWYgKGNvbCArIGMgPD0gLTEgfHwgdGhpcy5tb2R1bGVDb3VudCA8PSBjb2wg
KyBjKSBjb250aW51ZQorICAgICAgICAgIGlmICgKKyAgICAgICAgICAgIChyID49IDAgJiYgciA8
PSA2ICYmIChjID09IDAgfHwgYyA9PSA2KSkgfHwKKyAgICAgICAgICAgIChjID49IDAgJiYgYyA8
PSA2ICYmIChyID09IDAgfHwgciA9PSA2KSkgfHwKKyAgICAgICAgICAgIChyID49IDIgJiYgciA8
PSA0ICYmIGMgPj0gMiAmJiBjIDw9IDQpCisgICAgICAgICAgKSB7CisgICAgICAgICAgICB0aGlz
Lm1vZHVsZXNbcm93ICsgcl1bY29sICsgY10gPSB0cnVlCisgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHRoaXMubW9kdWxlc1tyb3cgKyByXVtjb2wgKyBjXSA9IGZhbHNlCisgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfSwKKyAgICBnZXRCZXN0TWFza1BhdHRlcm46
IGZ1bmN0aW9uICgpIHsKKyAgICAgIHZhciBtaW5Mb3N0UG9pbnQgPSAwCisgICAgICB2YXIgcGF0
dGVybiA9IDAKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIHRo
aXMubWFrZUltcGwodHJ1ZSwgaSkKKyAgICAgICAgdmFyIGxvc3RQb2ludCA9IFFSVXRpbC5nZXRM
b3N0UG9pbnQodGhpcykKKyAgICAgICAgaWYgKGkgPT0gMCB8fCBtaW5Mb3N0UG9pbnQgPiBsb3N0
UG9pbnQpIHsKKyAgICAgICAgICBtaW5Mb3N0UG9pbnQgPSBsb3N0UG9pbnQKKyAgICAgICAgICBw
YXR0ZXJuID0gaQorICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gcGF0dGVybgorICAg
IH0sCisgICAgY3JlYXRlTW92aWVDbGlwOiBmdW5jdGlvbiAodGFyZ2V0X21jLCBpbnN0YW5jZV9u
YW1lLCBkZXB0aCkgeworICAgICAgdmFyIHFyX21jID0gdGFyZ2V0X21jLmNyZWF0ZUVtcHR5TW92
aWVDbGlwKGluc3RhbmNlX25hbWUsIGRlcHRoKQorICAgICAgdmFyIGNzID0gMQorICAgICAgdGhp
cy5tYWtlKCkKKyAgICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IHRoaXMubW9kdWxlcy5sZW5n
dGg7IHJvdysrKSB7CisgICAgICAgIHZhciB5ID0gcm93ICogY3MKKyAgICAgICAgZm9yICh2YXIg
Y29sID0gMDsgY29sIDwgdGhpcy5tb2R1bGVzW3Jvd10ubGVuZ3RoOyBjb2wrKykgeworICAgICAg
ICAgIHZhciB4ID0gY29sICogY3MKKyAgICAgICAgICB2YXIgZGFyayA9IHRoaXMubW9kdWxlc1ty
b3ddW2NvbF0KKyAgICAgICAgICBpZiAoZGFyaykgeworICAgICAgICAgICAgcXJfbWMuYmVnaW5G
aWxsKDAsIDEwMCkKKyAgICAgICAgICAgIHFyX21jLm1vdmVUbyh4LCB5KQorICAgICAgICAgICAg
cXJfbWMubGluZVRvKHggKyBjcywgeSkKKyAgICAgICAgICAgIHFyX21jLmxpbmVUbyh4ICsgY3Ms
IHkgKyBjcykKKyAgICAgICAgICAgIHFyX21jLmxpbmVUbyh4LCB5ICsgY3MpCisgICAgICAgICAg
ICBxcl9tYy5lbmRGaWxsKCkKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAg
IHJldHVybiBxcl9tYworICAgIH0sCisgICAgc2V0dXBUaW1pbmdQYXR0ZXJuOiBmdW5jdGlvbiAo
KSB7CisgICAgICBmb3IgKHZhciByID0gODsgciA8IHRoaXMubW9kdWxlQ291bnQgLSA4OyByKysp
IHsKKyAgICAgICAgaWYgKHRoaXMubW9kdWxlc1tyXVs2XSAhPSBudWxsKSB7CisgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1vZHVsZXNbcl1bNl0gPSByICUgMiA9
PSAwCisgICAgICB9CisgICAgICBmb3IgKHZhciBjID0gODsgYyA8IHRoaXMubW9kdWxlQ291bnQg
LSA4OyBjKyspIHsKKyAgICAgICAgaWYgKHRoaXMubW9kdWxlc1s2XVtjXSAhPSBudWxsKSB7Cisg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgfQorICAgICAgICB0aGlzLm1vZHVsZXNbNl1bY10g
PSBjICUgMiA9PSAwCisgICAgICB9CisgICAgfSwKKyAgICBzZXR1cFBvc2l0aW9uQWRqdXN0UGF0
dGVybjogZnVuY3Rpb24gKCkgeworICAgICAgdmFyIHBvcyA9IFFSVXRpbC5nZXRQYXR0ZXJuUG9z
aXRpb24odGhpcy50eXBlTnVtYmVyKQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb3MubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBwb3MubGVuZ3RoOyBqKysp
IHsKKyAgICAgICAgICB2YXIgcm93ID0gcG9zW2ldCisgICAgICAgICAgdmFyIGNvbCA9IHBvc1tq
XQorICAgICAgICAgIGlmICh0aGlzLm1vZHVsZXNbcm93XVtjb2xdICE9IG51bGwpIHsKKyAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgfQorICAgICAgICAgIGZvciAodmFyIHIgPSAtMjsg
ciA8PSAyOyByKyspIHsKKyAgICAgICAgICAgIGZvciAodmFyIGMgPSAtMjsgYyA8PSAyOyBjKysp
IHsKKyAgICAgICAgICAgICAgaWYgKAorICAgICAgICAgICAgICAgIHIgPT0gLTIgfHwKKyAgICAg
ICAgICAgICAgICByID09IDIgfHwKKyAgICAgICAgICAgICAgICBjID09IC0yIHx8CisgICAgICAg
ICAgICAgICAgYyA9PSAyIHx8CisgICAgICAgICAgICAgICAgKHIgPT0gMCAmJiBjID09IDApCisg
ICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIHRoaXMubW9kdWxlc1tyb3cgKyByXVtj
b2wgKyBjXSA9IHRydWUKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0
aGlzLm1vZHVsZXNbcm93ICsgcl1bY29sICsgY10gPSBmYWxzZQorICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfSwKKyAg
ICBzZXR1cFR5cGVOdW1iZXI6IGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICB2YXIgYml0cyA9IFFS
VXRpbC5nZXRCQ0hUeXBlTnVtYmVyKHRoaXMudHlwZU51bWJlcikKKyAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTg7IGkrKykgeworICAgICAgICB2YXIgbW9kID0gIXRlc3QgJiYgKChiaXRzID4+
IGkpICYgMSkgPT0gMQorICAgICAgICB0aGlzLm1vZHVsZXNbTWF0aC5mbG9vcihpIC8gMyldW2kg
JSAzICsgdGhpcy5tb2R1bGVDb3VudCAtIDggLSAzXSA9IG1vZAorICAgICAgfQorICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxODsgaSsrKSB7CisgICAgICAgIHZhciBtb2QgPSAhdGVzdCAmJiAo
KGJpdHMgPj4gaSkgJiAxKSA9PSAxCisgICAgICAgIHRoaXMubW9kdWxlc1tpICUgMyArIHRoaXMu
bW9kdWxlQ291bnQgLSA4IC0gM11bTWF0aC5mbG9vcihpIC8gMyldID0gbW9kCisgICAgICB9Cisg
ICAgfSwKKyAgICBzZXR1cFR5cGVJbmZvOiBmdW5jdGlvbiAodGVzdCwgbWFza1BhdHRlcm4pIHsK
KyAgICAgIHZhciBkYXRhID0gKHRoaXMuZXJyb3JDb3JyZWN0TGV2ZWwgPDwgMykgfCBtYXNrUGF0
dGVybgorICAgICAgdmFyIGJpdHMgPSBRUlV0aWwuZ2V0QkNIVHlwZUluZm8oZGF0YSkKKyAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTU7IGkrKykgeworICAgICAgICB2YXIgbW9kID0gIXRlc3Qg
JiYgKChiaXRzID4+IGkpICYgMSkgPT0gMQorICAgICAgICBpZiAoaSA8IDYpIHsKKyAgICAgICAg
ICB0aGlzLm1vZHVsZXNbaV1bOF0gPSBtb2QKKyAgICAgICAgfSBlbHNlIGlmIChpIDwgOCkgewor
ICAgICAgICAgIHRoaXMubW9kdWxlc1tpICsgMV1bOF0gPSBtb2QKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICB0aGlzLm1vZHVsZXNbdGhpcy5tb2R1bGVDb3VudCAtIDE1ICsgaV1bOF0gPSBt
b2QKKyAgICAgICAgfQorICAgICAgfQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxNTsgaSsr
KSB7CisgICAgICAgIHZhciBtb2QgPSAhdGVzdCAmJiAoKGJpdHMgPj4gaSkgJiAxKSA9PSAxCisg
ICAgICAgIGlmIChpIDwgOCkgeworICAgICAgICAgIHRoaXMubW9kdWxlc1s4XVt0aGlzLm1vZHVs
ZUNvdW50IC0gaSAtIDFdID0gbW9kCisgICAgICAgIH0gZWxzZSBpZiAoaSA8IDkpIHsKKyAgICAg
ICAgICB0aGlzLm1vZHVsZXNbOF1bMTUgLSBpIC0gMSArIDFdID0gbW9kCisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgdGhpcy5tb2R1bGVzWzhdWzE1IC0gaSAtIDFdID0gbW9kCisgICAgICAg
IH0KKyAgICAgIH0KKyAgICAgIHRoaXMubW9kdWxlc1t0aGlzLm1vZHVsZUNvdW50IC0gOF1bOF0g
PSAhdGVzdAorICAgIH0sCisgICAgbWFwRGF0YTogZnVuY3Rpb24gKGRhdGEsIG1hc2tQYXR0ZXJu
KSB7CisgICAgICB2YXIgaW5jID0gLTEKKyAgICAgIHZhciByb3cgPSB0aGlzLm1vZHVsZUNvdW50
IC0gMQorICAgICAgdmFyIGJpdEluZGV4ID0gNworICAgICAgdmFyIGJ5dGVJbmRleCA9IDAKKyAg
ICAgIGZvciAodmFyIGNvbCA9IHRoaXMubW9kdWxlQ291bnQgLSAxOyBjb2wgPiAwOyBjb2wgLT0g
MikgeworICAgICAgICBpZiAoY29sID09IDYpIGNvbC0tCisgICAgICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCAyOyBjKyspIHsKKyAgICAgICAgICAgIGlm
ICh0aGlzLm1vZHVsZXNbcm93XVtjb2wgLSBjXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgIHZh
ciBkYXJrID0gZmFsc2UKKyAgICAgICAgICAgICAgaWYgKGJ5dGVJbmRleCA8IGRhdGEubGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgZGFyayA9ICgoZGF0YVtieXRlSW5kZXhdID4+PiBiaXRJbmRl
eCkgJiAxKSA9PSAxCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgdmFyIG1hc2sgPSBR
UlV0aWwuZ2V0TWFzayhtYXNrUGF0dGVybiwgcm93LCBjb2wgLSBjKQorICAgICAgICAgICAgICBp
ZiAobWFzaykgeworICAgICAgICAgICAgICAgIGRhcmsgPSAhZGFyaworICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgIHRoaXMubW9kdWxlc1tyb3ddW2NvbCAtIGNdID0gZGFyaworICAgICAg
ICAgICAgICBiaXRJbmRleC0tCisgICAgICAgICAgICAgIGlmIChiaXRJbmRleCA9PSAtMSkgewor
ICAgICAgICAgICAgICAgIGJ5dGVJbmRleCsrCisgICAgICAgICAgICAgICAgYml0SW5kZXggPSA3
CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAg
cm93ICs9IGluYworICAgICAgICAgIGlmIChyb3cgPCAwIHx8IHRoaXMubW9kdWxlQ291bnQgPD0g
cm93KSB7CisgICAgICAgICAgICByb3cgLT0gaW5jCisgICAgICAgICAgICBpbmMgPSAtaW5jCisg
ICAgICAgICAgICBicmVhaworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0K
KyAgfQorICBRUkNvZGVNb2RlbC5QQUQwID0gMHhlYworICBRUkNvZGVNb2RlbC5QQUQxID0gMHgx
MQorICBRUkNvZGVNb2RlbC5jcmVhdGVEYXRhID0gZnVuY3Rpb24gKHR5cGVOdW1iZXIsIGVycm9y
Q29ycmVjdExldmVsLCBkYXRhTGlzdCkgeworICAgIHZhciByc0Jsb2NrcyA9IFFSUlNCbG9jay5n
ZXRSU0Jsb2Nrcyh0eXBlTnVtYmVyLCBlcnJvckNvcnJlY3RMZXZlbCkKKyAgICB2YXIgYnVmZmVy
ID0gbmV3IFFSQml0QnVmZmVyKCkKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFMaXN0Lmxl
bmd0aDsgaSsrKSB7CisgICAgICB2YXIgZGF0YSA9IGRhdGFMaXN0W2ldCisgICAgICBidWZmZXIu
cHV0KGRhdGEubW9kZSwgNCkKKyAgICAgIGJ1ZmZlci5wdXQoCisgICAgICAgIGRhdGEuZ2V0TGVu
Z3RoKCksCisgICAgICAgIFFSVXRpbC5nZXRMZW5ndGhJbkJpdHMoZGF0YS5tb2RlLCB0eXBlTnVt
YmVyKQorICAgICAgKQorICAgICAgZGF0YS53cml0ZShidWZmZXIpCisgICAgfQorICAgIHZhciB0
b3RhbERhdGFDb3VudCA9IDAKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJzQmxvY2tzLmxlbmd0
aDsgaSsrKSB7CisgICAgICB0b3RhbERhdGFDb3VudCArPSByc0Jsb2Nrc1tpXS5kYXRhQ291bnQK
KyAgICB9CisgICAgaWYgKGJ1ZmZlci5nZXRMZW5ndGhJbkJpdHMoKSA+IHRvdGFsRGF0YUNvdW50
ICogOCkgeworICAgICAgdGhyb3cgbmV3IEVycm9yKAorICAgICAgICAnY29kZSBsZW5ndGggb3Zl
cmZsb3cuICgnICsKKyAgICAgICAgICBidWZmZXIuZ2V0TGVuZ3RoSW5CaXRzKCkgKworICAgICAg
ICAgICc+JyArCisgICAgICAgICAgdG90YWxEYXRhQ291bnQgKiA4ICsKKyAgICAgICAgICAnKScK
KyAgICAgICkKKyAgICB9CisgICAgaWYgKGJ1ZmZlci5nZXRMZW5ndGhJbkJpdHMoKSArIDQgPD0g
dG90YWxEYXRhQ291bnQgKiA4KSB7CisgICAgICBidWZmZXIucHV0KDAsIDQpCisgICAgfQorICAg
IHdoaWxlIChidWZmZXIuZ2V0TGVuZ3RoSW5CaXRzKCkgJSA4ICE9IDApIHsKKyAgICAgIGJ1ZmZl
ci5wdXRCaXQoZmFsc2UpCisgICAgfQorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBpZiAoYnVm
ZmVyLmdldExlbmd0aEluQml0cygpID49IHRvdGFsRGF0YUNvdW50ICogOCkgeworICAgICAgICBi
cmVhaworICAgICAgfQorICAgICAgYnVmZmVyLnB1dChRUkNvZGVNb2RlbC5QQUQwLCA4KQorICAg
ICAgaWYgKGJ1ZmZlci5nZXRMZW5ndGhJbkJpdHMoKSA+PSB0b3RhbERhdGFDb3VudCAqIDgpIHsK
KyAgICAgICAgYnJlYWsKKyAgICAgIH0KKyAgICAgIGJ1ZmZlci5wdXQoUVJDb2RlTW9kZWwuUEFE
MSwgOCkKKyAgICB9CisgICAgcmV0dXJuIFFSQ29kZU1vZGVsLmNyZWF0ZUJ5dGVzKGJ1ZmZlciwg
cnNCbG9ja3MpCisgIH0KKyAgUVJDb2RlTW9kZWwuY3JlYXRlQnl0ZXMgPSBmdW5jdGlvbiAoYnVm
ZmVyLCByc0Jsb2NrcykgeworICAgIHZhciBvZmZzZXQgPSAwCisgICAgdmFyIG1heERjQ291bnQg
PSAwCisgICAgdmFyIG1heEVjQ291bnQgPSAwCisgICAgdmFyIGRjZGF0YSA9IG5ldyBBcnJheShy
c0Jsb2Nrcy5sZW5ndGgpCisgICAgdmFyIGVjZGF0YSA9IG5ldyBBcnJheShyc0Jsb2Nrcy5sZW5n
dGgpCisgICAgZm9yICh2YXIgciA9IDA7IHIgPCByc0Jsb2Nrcy5sZW5ndGg7IHIrKykgeworICAg
ICAgdmFyIGRjQ291bnQgPSByc0Jsb2Nrc1tyXS5kYXRhQ291bnQKKyAgICAgIHZhciBlY0NvdW50
ID0gcnNCbG9ja3Nbcl0udG90YWxDb3VudCAtIGRjQ291bnQKKyAgICAgIG1heERjQ291bnQgPSBN
YXRoLm1heChtYXhEY0NvdW50LCBkY0NvdW50KQorICAgICAgbWF4RWNDb3VudCA9IE1hdGgubWF4
KG1heEVjQ291bnQsIGVjQ291bnQpCisgICAgICBkY2RhdGFbcl0gPSBuZXcgQXJyYXkoZGNDb3Vu
dCkKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGNkYXRhW3JdLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgIGRjZGF0YVtyXVtpXSA9IDB4ZmYgJiBidWZmZXIuYnVmZmVyW2kgKyBvZmZzZXRdCisg
ICAgICB9CisgICAgICBvZmZzZXQgKz0gZGNDb3VudAorICAgICAgdmFyIHJzUG9seSA9IFFSVXRp
bC5nZXRFcnJvckNvcnJlY3RQb2x5bm9taWFsKGVjQ291bnQpCisgICAgICB2YXIgcmF3UG9seSA9
IG5ldyBRUlBvbHlub21pYWwoZGNkYXRhW3JdLCByc1BvbHkuZ2V0TGVuZ3RoKCkgLSAxKQorICAg
ICAgdmFyIG1vZFBvbHkgPSByYXdQb2x5Lm1vZChyc1BvbHkpCisgICAgICBlY2RhdGFbcl0gPSBu
ZXcgQXJyYXkocnNQb2x5LmdldExlbmd0aCgpIC0gMSkKKyAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZWNkYXRhW3JdLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBtb2RJbmRleCA9IGkgKyBt
b2RQb2x5LmdldExlbmd0aCgpIC0gZWNkYXRhW3JdLmxlbmd0aAorICAgICAgICBlY2RhdGFbcl1b
aV0gPSBtb2RJbmRleCA+PSAwID8gbW9kUG9seS5nZXQobW9kSW5kZXgpIDogMAorICAgICAgfQor
ICAgIH0KKyAgICB2YXIgdG90YWxDb2RlQ291bnQgPSAwCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByc0Jsb2Nrcy5sZW5ndGg7IGkrKykgeworICAgICAgdG90YWxDb2RlQ291bnQgKz0gcnNCbG9j
a3NbaV0udG90YWxDb3VudAorICAgIH0KKyAgICB2YXIgZGF0YSA9IG5ldyBBcnJheSh0b3RhbENv
ZGVDb3VudCkKKyAgICB2YXIgaW5kZXggPSAwCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXhE
Y0NvdW50OyBpKyspIHsKKyAgICAgIGZvciAodmFyIHIgPSAwOyByIDwgcnNCbG9ja3MubGVuZ3Ro
OyByKyspIHsKKyAgICAgICAgaWYgKGkgPCBkY2RhdGFbcl0ubGVuZ3RoKSB7CisgICAgICAgICAg
ZGF0YVtpbmRleCsrXSA9IGRjZGF0YVtyXVtpXQorICAgICAgICB9CisgICAgICB9CisgICAgfQor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF4RWNDb3VudDsgaSsrKSB7CisgICAgICBmb3IgKHZh
ciByID0gMDsgciA8IHJzQmxvY2tzLmxlbmd0aDsgcisrKSB7CisgICAgICAgIGlmIChpIDwgZWNk
YXRhW3JdLmxlbmd0aCkgeworICAgICAgICAgIGRhdGFbaW5kZXgrK10gPSBlY2RhdGFbcl1baV0K
KyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZGF0YQorICB9CisgIHZhciBR
Uk1vZGUgPSB7CisgICAgTU9ERV9OVU1CRVI6IDEgPDwgMCwKKyAgICBNT0RFX0FMUEhBX05VTTog
MSA8PCAxLAorICAgIE1PREVfOEJJVF9CWVRFOiAxIDw8IDIsCisgICAgTU9ERV9LQU5KSTogMSA8
PCAzCisgIH0KKyAgdmFyIFFSRXJyb3JDb3JyZWN0TGV2ZWwgPSB7IEw6IDEsIE06IDAsIFE6IDMs
IEg6IDIgfQorICB2YXIgUVJNYXNrUGF0dGVybiA9IHsKKyAgICBQQVRURVJOMDAwOiAwLAorICAg
IFBBVFRFUk4wMDE6IDEsCisgICAgUEFUVEVSTjAxMDogMiwKKyAgICBQQVRURVJOMDExOiAzLAor
ICAgIFBBVFRFUk4xMDA6IDQsCisgICAgUEFUVEVSTjEwMTogNSwKKyAgICBQQVRURVJOMTEwOiA2
LAorICAgIFBBVFRFUk4xMTE6IDcKKyAgfQorICB2YXIgUVJVdGlsID0geworICAgIFBBVFRFUk5f
UE9TSVRJT05fVEFCTEU6IFsKKyAgICAgIFtdLAorICAgICAgWzYsIDE4XSwKKyAgICAgIFs2LCAy
Ml0sCisgICAgICBbNiwgMjZdLAorICAgICAgWzYsIDMwXSwKKyAgICAgIFs2LCAzNF0sCisgICAg
ICBbNiwgMjIsIDM4XSwKKyAgICAgIFs2LCAyNCwgNDJdLAorICAgICAgWzYsIDI2LCA0Nl0sCisg
ICAgICBbNiwgMjgsIDUwXSwKKyAgICAgIFs2LCAzMCwgNTRdLAorICAgICAgWzYsIDMyLCA1OF0s
CisgICAgICBbNiwgMzQsIDYyXSwKKyAgICAgIFs2LCAyNiwgNDYsIDY2XSwKKyAgICAgIFs2LCAy
NiwgNDgsIDcwXSwKKyAgICAgIFs2LCAyNiwgNTAsIDc0XSwKKyAgICAgIFs2LCAzMCwgNTQsIDc4
XSwKKyAgICAgIFs2LCAzMCwgNTYsIDgyXSwKKyAgICAgIFs2LCAzMCwgNTgsIDg2XSwKKyAgICAg
IFs2LCAzNCwgNjIsIDkwXSwKKyAgICAgIFs2LCAyOCwgNTAsIDcyLCA5NF0sCisgICAgICBbNiwg
MjYsIDUwLCA3NCwgOThdLAorICAgICAgWzYsIDMwLCA1NCwgNzgsIDEwMl0sCisgICAgICBbNiwg
MjgsIDU0LCA4MCwgMTA2XSwKKyAgICAgIFs2LCAzMiwgNTgsIDg0LCAxMTBdLAorICAgICAgWzYs
IDMwLCA1OCwgODYsIDExNF0sCisgICAgICBbNiwgMzQsIDYyLCA5MCwgMTE4XSwKKyAgICAgIFs2
LCAyNiwgNTAsIDc0LCA5OCwgMTIyXSwKKyAgICAgIFs2LCAzMCwgNTQsIDc4LCAxMDIsIDEyNl0s
CisgICAgICBbNiwgMjYsIDUyLCA3OCwgMTA0LCAxMzBdLAorICAgICAgWzYsIDMwLCA1NiwgODIs
IDEwOCwgMTM0XSwKKyAgICAgIFs2LCAzNCwgNjAsIDg2LCAxMTIsIDEzOF0sCisgICAgICBbNiwg
MzAsIDU4LCA4NiwgMTE0LCAxNDJdLAorICAgICAgWzYsIDM0LCA2MiwgOTAsIDExOCwgMTQ2XSwK
KyAgICAgIFs2LCAzMCwgNTQsIDc4LCAxMDIsIDEyNiwgMTUwXSwKKyAgICAgIFs2LCAyNCwgNTAs
IDc2LCAxMDIsIDEyOCwgMTU0XSwKKyAgICAgIFs2LCAyOCwgNTQsIDgwLCAxMDYsIDEzMiwgMTU4
XSwKKyAgICAgIFs2LCAzMiwgNTgsIDg0LCAxMTAsIDEzNiwgMTYyXSwKKyAgICAgIFs2LCAyNiwg
NTQsIDgyLCAxMTAsIDEzOCwgMTY2XSwKKyAgICAgIFs2LCAzMCwgNTgsIDg2LCAxMTQsIDE0Miwg
MTcwXQorICAgIF0sCisgICAgRzE1OgorICAgICAgKDEgPDwgMTApIHwKKyAgICAgICgxIDw8IDgp
IHwKKyAgICAgICgxIDw8IDUpIHwKKyAgICAgICgxIDw8IDQpIHwKKyAgICAgICgxIDw8IDIpIHwK
KyAgICAgICgxIDw8IDEpIHwKKyAgICAgICgxIDw8IDApLAorICAgIEcxODoKKyAgICAgICgxIDw8
IDEyKSB8CisgICAgICAoMSA8PCAxMSkgfAorICAgICAgKDEgPDwgMTApIHwKKyAgICAgICgxIDw8
IDkpIHwKKyAgICAgICgxIDw8IDgpIHwKKyAgICAgICgxIDw8IDUpIHwKKyAgICAgICgxIDw8IDIp
IHwKKyAgICAgICgxIDw8IDApLAorICAgIEcxNV9NQVNLOiAoMSA8PCAxNCkgfCAoMSA8PCAxMikg
fCAoMSA8PCAxMCkgfCAoMSA8PCA0KSB8ICgxIDw8IDEpLAorICAgIGdldEJDSFR5cGVJbmZvOiBm
dW5jdGlvbiAoZGF0YSkgeworICAgICAgdmFyIGQgPSBkYXRhIDw8IDEwCisgICAgICB3aGlsZSAo
UVJVdGlsLmdldEJDSERpZ2l0KGQpIC0gUVJVdGlsLmdldEJDSERpZ2l0KFFSVXRpbC5HMTUpID49
IDApIHsKKyAgICAgICAgZCBePQorICAgICAgICAgIFFSVXRpbC5HMTUgPDwgKFFSVXRpbC5nZXRC
Q0hEaWdpdChkKSAtIFFSVXRpbC5nZXRCQ0hEaWdpdChRUlV0aWwuRzE1KSkKKyAgICAgIH0KKyAg
ICAgIHJldHVybiAoKGRhdGEgPDwgMTApIHwgZCkgXiBRUlV0aWwuRzE1X01BU0sKKyAgICB9LAor
ICAgIGdldEJDSFR5cGVOdW1iZXI6IGZ1bmN0aW9uIChkYXRhKSB7CisgICAgICB2YXIgZCA9IGRh
dGEgPDwgMTIKKyAgICAgIHdoaWxlIChRUlV0aWwuZ2V0QkNIRGlnaXQoZCkgLSBRUlV0aWwuZ2V0
QkNIRGlnaXQoUVJVdGlsLkcxOCkgPj0gMCkgeworICAgICAgICBkIF49CisgICAgICAgICAgUVJV
dGlsLkcxOCA8PCAoUVJVdGlsLmdldEJDSERpZ2l0KGQpIC0gUVJVdGlsLmdldEJDSERpZ2l0KFFS
VXRpbC5HMTgpKQorICAgICAgfQorICAgICAgcmV0dXJuIChkYXRhIDw8IDEyKSB8IGQKKyAgICB9
LAorICAgIGdldEJDSERpZ2l0OiBmdW5jdGlvbiAoZGF0YSkgeworICAgICAgdmFyIGRpZ2l0ID0g
MAorICAgICAgd2hpbGUgKGRhdGEgIT0gMCkgeworICAgICAgICBkaWdpdCsrCisgICAgICAgIGRh
dGEgPj4+PSAxCisgICAgICB9CisgICAgICByZXR1cm4gZGlnaXQKKyAgICB9LAorICAgIGdldFBh
dHRlcm5Qb3NpdGlvbjogZnVuY3Rpb24gKHR5cGVOdW1iZXIpIHsKKyAgICAgIHJldHVybiBRUlV0
aWwuUEFUVEVSTl9QT1NJVElPTl9UQUJMRVt0eXBlTnVtYmVyIC0gMV0KKyAgICB9LAorICAgIGdl
dE1hc2s6IGZ1bmN0aW9uIChtYXNrUGF0dGVybiwgaSwgaikgeworICAgICAgc3dpdGNoIChtYXNr
UGF0dGVybikgeworICAgICAgICBjYXNlIFFSTWFza1BhdHRlcm4uUEFUVEVSTjAwMDoKKyAgICAg
ICAgICByZXR1cm4gKGkgKyBqKSAlIDIgPT0gMAorICAgICAgICBjYXNlIFFSTWFza1BhdHRlcm4u
UEFUVEVSTjAwMToKKyAgICAgICAgICByZXR1cm4gaSAlIDIgPT0gMAorICAgICAgICBjYXNlIFFS
TWFza1BhdHRlcm4uUEFUVEVSTjAxMDoKKyAgICAgICAgICByZXR1cm4gaiAlIDMgPT0gMAorICAg
ICAgICBjYXNlIFFSTWFza1BhdHRlcm4uUEFUVEVSTjAxMToKKyAgICAgICAgICByZXR1cm4gKGkg
KyBqKSAlIDMgPT0gMAorICAgICAgICBjYXNlIFFSTWFza1BhdHRlcm4uUEFUVEVSTjEwMDoKKyAg
ICAgICAgICByZXR1cm4gKE1hdGguZmxvb3IoaSAvIDIpICsgTWF0aC5mbG9vcihqIC8gMykpICUg
MiA9PSAwCisgICAgICAgIGNhc2UgUVJNYXNrUGF0dGVybi5QQVRURVJOMTAxOgorICAgICAgICAg
IHJldHVybiAoaSAqIGopICUgMiArIChpICogaikgJSAzID09IDAKKyAgICAgICAgY2FzZSBRUk1h
c2tQYXR0ZXJuLlBBVFRFUk4xMTA6CisgICAgICAgICAgcmV0dXJuICgoaSAqIGopICUgMiArIChp
ICogaikgJSAzKSAlIDIgPT0gMAorICAgICAgICBjYXNlIFFSTWFza1BhdHRlcm4uUEFUVEVSTjEx
MToKKyAgICAgICAgICByZXR1cm4gKChpICogaikgJSAzICsgKGkgKyBqKSAlIDIpICUgMiA9PSAw
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgbWFza1Bh
dHRlcm46JyArIG1hc2tQYXR0ZXJuKQorICAgICAgfQorICAgIH0sCisgICAgZ2V0RXJyb3JDb3Jy
ZWN0UG9seW5vbWlhbDogZnVuY3Rpb24gKGVycm9yQ29ycmVjdExlbmd0aCkgeworICAgICAgdmFy
IGEgPSBuZXcgUVJQb2x5bm9taWFsKFsxXSwgMCkKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZXJyb3JDb3JyZWN0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgYSA9IGEubXVsdGlwbHkobmV3IFFS
UG9seW5vbWlhbChbMSwgUVJNYXRoLmdleHAoaSldLCAwKSkKKyAgICAgIH0KKyAgICAgIHJldHVy
biBhCisgICAgfSwKKyAgICBnZXRMZW5ndGhJbkJpdHM6IGZ1bmN0aW9uIChtb2RlLCB0eXBlKSB7
CisgICAgICBpZiAodHlwZSA+PSAxICYmIHR5cGUgPCAxMCkgeworICAgICAgICBzd2l0Y2ggKG1v
ZGUpIHsKKyAgICAgICAgICBjYXNlIFFSTW9kZS5NT0RFX05VTUJFUjoKKyAgICAgICAgICAgIHJl
dHVybiAxMAorICAgICAgICAgIGNhc2UgUVJNb2RlLk1PREVfQUxQSEFfTlVNOgorICAgICAgICAg
ICAgcmV0dXJuIDkKKyAgICAgICAgICBjYXNlIFFSTW9kZS5NT0RFXzhCSVRfQllURToKKyAgICAg
ICAgICAgIHJldHVybiA4CisgICAgICAgICAgY2FzZSBRUk1vZGUuTU9ERV9LQU5KSToKKyAgICAg
ICAgICAgIHJldHVybiA4CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcignbW9kZTonICsgbW9kZSkKKyAgICAgICAgfQorICAgICAgfSBlbHNlIGlmICh0eXBl
IDwgMjcpIHsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgICAgY2FzZSBRUk1vZGUu
TU9ERV9OVU1CRVI6CisgICAgICAgICAgICByZXR1cm4gMTIKKyAgICAgICAgICBjYXNlIFFSTW9k
ZS5NT0RFX0FMUEhBX05VTToKKyAgICAgICAgICAgIHJldHVybiAxMQorICAgICAgICAgIGNhc2Ug
UVJNb2RlLk1PREVfOEJJVF9CWVRFOgorICAgICAgICAgICAgcmV0dXJuIDE2CisgICAgICAgICAg
Y2FzZSBRUk1vZGUuTU9ERV9LQU5KSToKKyAgICAgICAgICAgIHJldHVybiAxMAorICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21vZGU6JyArIG1vZGUpCisg
ICAgICAgIH0KKyAgICAgIH0gZWxzZSBpZiAodHlwZSA8IDQxKSB7CisgICAgICAgIHN3aXRjaCAo
bW9kZSkgeworICAgICAgICAgIGNhc2UgUVJNb2RlLk1PREVfTlVNQkVSOgorICAgICAgICAgICAg
cmV0dXJuIDE0CisgICAgICAgICAgY2FzZSBRUk1vZGUuTU9ERV9BTFBIQV9OVU06CisgICAgICAg
ICAgICByZXR1cm4gMTMKKyAgICAgICAgICBjYXNlIFFSTW9kZS5NT0RFXzhCSVRfQllURToKKyAg
ICAgICAgICAgIHJldHVybiAxNgorICAgICAgICAgIGNhc2UgUVJNb2RlLk1PREVfS0FOSkk6Cisg
ICAgICAgICAgICByZXR1cm4gMTIKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdtb2RlOicgKyBtb2RlKQorICAgICAgICB9CisgICAgICB9IGVsc2Ugewor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R5cGU6JyArIHR5cGUpCisgICAgICB9CisgICAgfSwK
KyAgICBnZXRMb3N0UG9pbnQ6IGZ1bmN0aW9uIChxckNvZGUpIHsKKyAgICAgIHZhciBtb2R1bGVD
b3VudCA9IHFyQ29kZS5nZXRNb2R1bGVDb3VudCgpCisgICAgICB2YXIgbG9zdFBvaW50ID0gMAor
ICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbW9kdWxlQ291bnQ7IHJvdysrKSB7CisgICAg
ICAgIGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IG1vZHVsZUNvdW50OyBjb2wrKykgeworICAgICAg
ICAgIHZhciBzYW1lQ291bnQgPSAwCisgICAgICAgICAgdmFyIGRhcmsgPSBxckNvZGUuaXNEYXJr
KHJvdywgY29sKQorICAgICAgICAgIGZvciAodmFyIHIgPSAtMTsgciA8PSAxOyByKyspIHsKKyAg
ICAgICAgICAgIGlmIChyb3cgKyByIDwgMCB8fCBtb2R1bGVDb3VudCA8PSByb3cgKyByKSB7Cisg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHZh
ciBjID0gLTE7IGMgPD0gMTsgYysrKSB7CisgICAgICAgICAgICAgIGlmIChjb2wgKyBjIDwgMCB8
fCBtb2R1bGVDb3VudCA8PSBjb2wgKyBjKSB7CisgICAgICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAociA9PSAwICYmIGMgPT0gMCkgeworICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYg
KGRhcmsgPT0gcXJDb2RlLmlzRGFyayhyb3cgKyByLCBjb2wgKyBjKSkgeworICAgICAgICAgICAg
ICAgIHNhbWVDb3VudCsrCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICB9CisgICAgICAgICAgaWYgKHNhbWVDb3VudCA+IDUpIHsKKyAgICAgICAgICAgIGxvc3RQb2lu
dCArPSAzICsgc2FtZUNvdW50IC0gNQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQor
ICAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbW9kdWxlQ291bnQgLSAxOyByb3crKykgewor
ICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBtb2R1bGVDb3VudCAtIDE7IGNvbCsrKSB7
CisgICAgICAgICAgdmFyIGNvdW50ID0gMAorICAgICAgICAgIGlmIChxckNvZGUuaXNEYXJrKHJv
dywgY29sKSkgY291bnQrKworICAgICAgICAgIGlmIChxckNvZGUuaXNEYXJrKHJvdyArIDEsIGNv
bCkpIGNvdW50KysKKyAgICAgICAgICBpZiAocXJDb2RlLmlzRGFyayhyb3csIGNvbCArIDEpKSBj
b3VudCsrCisgICAgICAgICAgaWYgKHFyQ29kZS5pc0Rhcmsocm93ICsgMSwgY29sICsgMSkpIGNv
dW50KysKKyAgICAgICAgICBpZiAoY291bnQgPT0gMCB8fCBjb3VudCA9PSA0KSB7CisgICAgICAg
ICAgICBsb3N0UG9pbnQgKz0gMworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAg
ICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbW9kdWxlQ291bnQ7IHJvdysrKSB7CisgICAgICAg
IGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IG1vZHVsZUNvdW50IC0gNjsgY29sKyspIHsKKyAgICAg
ICAgICBpZiAoCisgICAgICAgICAgICBxckNvZGUuaXNEYXJrKHJvdywgY29sKSAmJgorICAgICAg
ICAgICAgIXFyQ29kZS5pc0Rhcmsocm93LCBjb2wgKyAxKSAmJgorICAgICAgICAgICAgcXJDb2Rl
LmlzRGFyayhyb3csIGNvbCArIDIpICYmCisgICAgICAgICAgICBxckNvZGUuaXNEYXJrKHJvdywg
Y29sICsgMykgJiYKKyAgICAgICAgICAgIHFyQ29kZS5pc0Rhcmsocm93LCBjb2wgKyA0KSAmJgor
ICAgICAgICAgICAgIXFyQ29kZS5pc0Rhcmsocm93LCBjb2wgKyA1KSAmJgorICAgICAgICAgICAg
cXJDb2RlLmlzRGFyayhyb3csIGNvbCArIDYpCisgICAgICAgICAgKSB7CisgICAgICAgICAgICBs
b3N0UG9pbnQgKz0gNDAKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGZv
ciAodmFyIGNvbCA9IDA7IGNvbCA8IG1vZHVsZUNvdW50OyBjb2wrKykgeworICAgICAgICBmb3Ig
KHZhciByb3cgPSAwOyByb3cgPCBtb2R1bGVDb3VudCAtIDY7IHJvdysrKSB7CisgICAgICAgICAg
aWYgKAorICAgICAgICAgICAgcXJDb2RlLmlzRGFyayhyb3csIGNvbCkgJiYKKyAgICAgICAgICAg
ICFxckNvZGUuaXNEYXJrKHJvdyArIDEsIGNvbCkgJiYKKyAgICAgICAgICAgIHFyQ29kZS5pc0Rh
cmsocm93ICsgMiwgY29sKSAmJgorICAgICAgICAgICAgcXJDb2RlLmlzRGFyayhyb3cgKyAzLCBj
b2wpICYmCisgICAgICAgICAgICBxckNvZGUuaXNEYXJrKHJvdyArIDQsIGNvbCkgJiYKKyAgICAg
ICAgICAgICFxckNvZGUuaXNEYXJrKHJvdyArIDUsIGNvbCkgJiYKKyAgICAgICAgICAgIHFyQ29k
ZS5pc0Rhcmsocm93ICsgNiwgY29sKQorICAgICAgICAgICkgeworICAgICAgICAgICAgbG9zdFBv
aW50ICs9IDQwCisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICB2YXIgZGFy
a0NvdW50ID0gMAorICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbW9kdWxlQ291bnQ7IGNv
bCsrKSB7CisgICAgICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IG1vZHVsZUNvdW50OyByb3cr
KykgeworICAgICAgICAgIGlmIChxckNvZGUuaXNEYXJrKHJvdywgY29sKSkgeworICAgICAgICAg
ICAgZGFya0NvdW50KysKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHZh
ciByYXRpbyA9IE1hdGguYWJzKDEwMCAqIGRhcmtDb3VudCAvIG1vZHVsZUNvdW50IC8gbW9kdWxl
Q291bnQgLSA1MCkgLyA1CisgICAgICBsb3N0UG9pbnQgKz0gcmF0aW8gKiAxMAorICAgICAgcmV0
dXJuIGxvc3RQb2ludAorICAgIH0KKyAgfQorICB2YXIgUVJNYXRoID0geworICAgIGdsb2c6IGZ1
bmN0aW9uIChuKSB7CisgICAgICBpZiAobiA8IDEpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdnbG9nKCcgKyBuICsgJyknKQorICAgICAgfQorICAgICAgcmV0dXJuIFFSTWF0aC5MT0dfVEFC
TEVbbl0KKyAgICB9LAorICAgIGdleHA6IGZ1bmN0aW9uIChuKSB7CisgICAgICB3aGlsZSAobiA8
IDApIHsKKyAgICAgICAgbiArPSAyNTUKKyAgICAgIH0KKyAgICAgIHdoaWxlIChuID49IDI1Nikg
eworICAgICAgICBuIC09IDI1NQorICAgICAgfQorICAgICAgcmV0dXJuIFFSTWF0aC5FWFBfVEFC
TEVbbl0KKyAgICB9LAorICAgIEVYUF9UQUJMRTogbmV3IEFycmF5KDI1NiksCisgICAgTE9HX1RB
QkxFOiBuZXcgQXJyYXkoMjU2KQorICB9CisgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7
CisgICAgUVJNYXRoLkVYUF9UQUJMRVtpXSA9IDEgPDwgaQorICB9CisgIGZvciAodmFyIGkgPSA4
OyBpIDwgMjU2OyBpKyspIHsKKyAgICBRUk1hdGguRVhQX1RBQkxFW2ldID0KKyAgICAgIFFSTWF0
aC5FWFBfVEFCTEVbaSAtIDRdIF4KKyAgICAgIFFSTWF0aC5FWFBfVEFCTEVbaSAtIDVdIF4KKyAg
ICAgIFFSTWF0aC5FWFBfVEFCTEVbaSAtIDZdIF4KKyAgICAgIFFSTWF0aC5FWFBfVEFCTEVbaSAt
IDhdCisgIH0KKyAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTU7IGkrKykgeworICAgIFFSTWF0aC5M
T0dfVEFCTEVbUVJNYXRoLkVYUF9UQUJMRVtpXV0gPSBpCisgIH0KKyAgZnVuY3Rpb24gUVJQb2x5
bm9taWFsIChudW0sIHNoaWZ0KSB7CisgICAgaWYgKG51bS5sZW5ndGggPT0gdW5kZWZpbmVkKSB7
CisgICAgICB0aHJvdyBuZXcgRXJyb3IobnVtLmxlbmd0aCArICcvJyArIHNoaWZ0KQorICAgIH0K
KyAgICB2YXIgb2Zmc2V0ID0gMAorICAgIHdoaWxlIChvZmZzZXQgPCBudW0ubGVuZ3RoICYmIG51
bVtvZmZzZXRdID09IDApIHsKKyAgICAgIG9mZnNldCsrCisgICAgfQorICAgIHRoaXMubnVtID0g
bmV3IEFycmF5KG51bS5sZW5ndGggLSBvZmZzZXQgKyBzaGlmdCkKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG51bS5sZW5ndGggLSBvZmZzZXQ7IGkrKykgeworICAgICAgdGhpcy5udW1baV0gPSBu
dW1baSArIG9mZnNldF0KKyAgICB9CisgIH0KKyAgUVJQb2x5bm9taWFsLnByb3RvdHlwZSA9IHsK
KyAgICBnZXQ6IGZ1bmN0aW9uIChpbmRleCkgeworICAgICAgcmV0dXJuIHRoaXMubnVtW2luZGV4
XQorICAgIH0sCisgICAgZ2V0TGVuZ3RoOiBmdW5jdGlvbiAoKSB7CisgICAgICByZXR1cm4gdGhp
cy5udW0ubGVuZ3RoCisgICAgfSwKKyAgICBtdWx0aXBseTogZnVuY3Rpb24gKGUpIHsKKyAgICAg
IHZhciBudW0gPSBuZXcgQXJyYXkodGhpcy5nZXRMZW5ndGgoKSArIGUuZ2V0TGVuZ3RoKCkgLSAx
KQorICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmdldExlbmd0aCgpOyBpKyspIHsKKyAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBlLmdldExlbmd0aCgpOyBqKyspIHsKKyAgICAgICAg
ICBudW1baSArIGpdIF49IFFSTWF0aC5nZXhwKAorICAgICAgICAgICAgUVJNYXRoLmdsb2codGhp
cy5nZXQoaSkpICsgUVJNYXRoLmdsb2coZS5nZXQoaikpCisgICAgICAgICAgKQorICAgICAgICB9
CisgICAgICB9CisgICAgICByZXR1cm4gbmV3IFFSUG9seW5vbWlhbChudW0sIDApCisgICAgfSwK
KyAgICBtb2Q6IGZ1bmN0aW9uIChlKSB7CisgICAgICBpZiAodGhpcy5nZXRMZW5ndGgoKSAtIGUu
Z2V0TGVuZ3RoKCkgPCAwKSB7CisgICAgICAgIHJldHVybiB0aGlzCisgICAgICB9CisgICAgICB2
YXIgcmF0aW8gPSBRUk1hdGguZ2xvZyh0aGlzLmdldCgwKSkgLSBRUk1hdGguZ2xvZyhlLmdldCgw
KSkKKyAgICAgIHZhciBudW0gPSBuZXcgQXJyYXkodGhpcy5nZXRMZW5ndGgoKSkKKyAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nZXRMZW5ndGgoKTsgaSsrKSB7CisgICAgICAgIG51bVtp
XSA9IHRoaXMuZ2V0KGkpCisgICAgICB9CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGUuZ2V0
TGVuZ3RoKCk7IGkrKykgeworICAgICAgICBudW1baV0gXj0gUVJNYXRoLmdleHAoUVJNYXRoLmds
b2coZS5nZXQoaSkpICsgcmF0aW8pCisgICAgICB9CisgICAgICByZXR1cm4gbmV3IFFSUG9seW5v
bWlhbChudW0sIDApLm1vZChlKQorICAgIH0KKyAgfQorICBmdW5jdGlvbiBRUlJTQmxvY2sgKHRv
dGFsQ291bnQsIGRhdGFDb3VudCkgeworICAgIHRoaXMudG90YWxDb3VudCA9IHRvdGFsQ291bnQK
KyAgICB0aGlzLmRhdGFDb3VudCA9IGRhdGFDb3VudAorICB9CisgIFFSUlNCbG9jay5SU19CTE9D
S19UQUJMRSA9IFsKKyAgICBbMSwgMjYsIDE5XSwKKyAgICBbMSwgMjYsIDE2XSwKKyAgICBbMSwg
MjYsIDEzXSwKKyAgICBbMSwgMjYsIDldLAorICAgIFsxLCA0NCwgMzRdLAorICAgIFsxLCA0NCwg
MjhdLAorICAgIFsxLCA0NCwgMjJdLAorICAgIFsxLCA0NCwgMTZdLAorICAgIFsxLCA3MCwgNTVd
LAorICAgIFsxLCA3MCwgNDRdLAorICAgIFsyLCAzNSwgMTddLAorICAgIFsyLCAzNSwgMTNdLAor
ICAgIFsxLCAxMDAsIDgwXSwKKyAgICBbMiwgNTAsIDMyXSwKKyAgICBbMiwgNTAsIDI0XSwKKyAg
ICBbNCwgMjUsIDldLAorICAgIFsxLCAxMzQsIDEwOF0sCisgICAgWzIsIDY3LCA0M10sCisgICAg
WzIsIDMzLCAxNSwgMiwgMzQsIDE2XSwKKyAgICBbMiwgMzMsIDExLCAyLCAzNCwgMTJdLAorICAg
IFsyLCA4NiwgNjhdLAorICAgIFs0LCA0MywgMjddLAorICAgIFs0LCA0MywgMTldLAorICAgIFs0
LCA0MywgMTVdLAorICAgIFsyLCA5OCwgNzhdLAorICAgIFs0LCA0OSwgMzFdLAorICAgIFsyLCAz
MiwgMTQsIDQsIDMzLCAxNV0sCisgICAgWzQsIDM5LCAxMywgMSwgNDAsIDE0XSwKKyAgICBbMiwg
MTIxLCA5N10sCisgICAgWzIsIDYwLCAzOCwgMiwgNjEsIDM5XSwKKyAgICBbNCwgNDAsIDE4LCAy
LCA0MSwgMTldLAorICAgIFs0LCA0MCwgMTQsIDIsIDQxLCAxNV0sCisgICAgWzIsIDE0NiwgMTE2
XSwKKyAgICBbMywgNTgsIDM2LCAyLCA1OSwgMzddLAorICAgIFs0LCAzNiwgMTYsIDQsIDM3LCAx
N10sCisgICAgWzQsIDM2LCAxMiwgNCwgMzcsIDEzXSwKKyAgICBbMiwgODYsIDY4LCAyLCA4Nywg
NjldLAorICAgIFs0LCA2OSwgNDMsIDEsIDcwLCA0NF0sCisgICAgWzYsIDQzLCAxOSwgMiwgNDQs
IDIwXSwKKyAgICBbNiwgNDMsIDE1LCAyLCA0NCwgMTZdLAorICAgIFs0LCAxMDEsIDgxXSwKKyAg
ICBbMSwgODAsIDUwLCA0LCA4MSwgNTFdLAorICAgIFs0LCA1MCwgMjIsIDQsIDUxLCAyM10sCisg
ICAgWzMsIDM2LCAxMiwgOCwgMzcsIDEzXSwKKyAgICBbMiwgMTE2LCA5MiwgMiwgMTE3LCA5M10s
CisgICAgWzYsIDU4LCAzNiwgMiwgNTksIDM3XSwKKyAgICBbNCwgNDYsIDIwLCA2LCA0NywgMjFd
LAorICAgIFs3LCA0MiwgMTQsIDQsIDQzLCAxNV0sCisgICAgWzQsIDEzMywgMTA3XSwKKyAgICBb
OCwgNTksIDM3LCAxLCA2MCwgMzhdLAorICAgIFs4LCA0NCwgMjAsIDQsIDQ1LCAyMV0sCisgICAg
WzEyLCAzMywgMTEsIDQsIDM0LCAxMl0sCisgICAgWzMsIDE0NSwgMTE1LCAxLCAxNDYsIDExNl0s
CisgICAgWzQsIDY0LCA0MCwgNSwgNjUsIDQxXSwKKyAgICBbMTEsIDM2LCAxNiwgNSwgMzcsIDE3
XSwKKyAgICBbMTEsIDM2LCAxMiwgNSwgMzcsIDEzXSwKKyAgICBbNSwgMTA5LCA4NywgMSwgMTEw
LCA4OF0sCisgICAgWzUsIDY1LCA0MSwgNSwgNjYsIDQyXSwKKyAgICBbNSwgNTQsIDI0LCA3LCA1
NSwgMjVdLAorICAgIFsxMSwgMzYsIDEyXSwKKyAgICBbNSwgMTIyLCA5OCwgMSwgMTIzLCA5OV0s
CisgICAgWzcsIDczLCA0NSwgMywgNzQsIDQ2XSwKKyAgICBbMTUsIDQzLCAxOSwgMiwgNDQsIDIw
XSwKKyAgICBbMywgNDUsIDE1LCAxMywgNDYsIDE2XSwKKyAgICBbMSwgMTM1LCAxMDcsIDUsIDEz
NiwgMTA4XSwKKyAgICBbMTAsIDc0LCA0NiwgMSwgNzUsIDQ3XSwKKyAgICBbMSwgNTAsIDIyLCAx
NSwgNTEsIDIzXSwKKyAgICBbMiwgNDIsIDE0LCAxNywgNDMsIDE1XSwKKyAgICBbNSwgMTUwLCAx
MjAsIDEsIDE1MSwgMTIxXSwKKyAgICBbOSwgNjksIDQzLCA0LCA3MCwgNDRdLAorICAgIFsxNywg
NTAsIDIyLCAxLCA1MSwgMjNdLAorICAgIFsyLCA0MiwgMTQsIDE5LCA0MywgMTVdLAorICAgIFsz
LCAxNDEsIDExMywgNCwgMTQyLCAxMTRdLAorICAgIFszLCA3MCwgNDQsIDExLCA3MSwgNDVdLAor
ICAgIFsxNywgNDcsIDIxLCA0LCA0OCwgMjJdLAorICAgIFs5LCAzOSwgMTMsIDE2LCA0MCwgMTRd
LAorICAgIFszLCAxMzUsIDEwNywgNSwgMTM2LCAxMDhdLAorICAgIFszLCA2NywgNDEsIDEzLCA2
OCwgNDJdLAorICAgIFsxNSwgNTQsIDI0LCA1LCA1NSwgMjVdLAorICAgIFsxNSwgNDMsIDE1LCAx
MCwgNDQsIDE2XSwKKyAgICBbNCwgMTQ0LCAxMTYsIDQsIDE0NSwgMTE3XSwKKyAgICBbMTcsIDY4
LCA0Ml0sCisgICAgWzE3LCA1MCwgMjIsIDYsIDUxLCAyM10sCisgICAgWzE5LCA0NiwgMTYsIDYs
IDQ3LCAxN10sCisgICAgWzIsIDEzOSwgMTExLCA3LCAxNDAsIDExMl0sCisgICAgWzE3LCA3NCwg
NDZdLAorICAgIFs3LCA1NCwgMjQsIDE2LCA1NSwgMjVdLAorICAgIFszNCwgMzcsIDEzXSwKKyAg
ICBbNCwgMTUxLCAxMjEsIDUsIDE1MiwgMTIyXSwKKyAgICBbNCwgNzUsIDQ3LCAxNCwgNzYsIDQ4
XSwKKyAgICBbMTEsIDU0LCAyNCwgMTQsIDU1LCAyNV0sCisgICAgWzE2LCA0NSwgMTUsIDE0LCA0
NiwgMTZdLAorICAgIFs2LCAxNDcsIDExNywgNCwgMTQ4LCAxMThdLAorICAgIFs2LCA3MywgNDUs
IDE0LCA3NCwgNDZdLAorICAgIFsxMSwgNTQsIDI0LCAxNiwgNTUsIDI1XSwKKyAgICBbMzAsIDQ2
LCAxNiwgMiwgNDcsIDE3XSwKKyAgICBbOCwgMTMyLCAxMDYsIDQsIDEzMywgMTA3XSwKKyAgICBb
OCwgNzUsIDQ3LCAxMywgNzYsIDQ4XSwKKyAgICBbNywgNTQsIDI0LCAyMiwgNTUsIDI1XSwKKyAg
ICBbMjIsIDQ1LCAxNSwgMTMsIDQ2LCAxNl0sCisgICAgWzEwLCAxNDIsIDExNCwgMiwgMTQzLCAx
MTVdLAorICAgIFsxOSwgNzQsIDQ2LCA0LCA3NSwgNDddLAorICAgIFsyOCwgNTAsIDIyLCA2LCA1
MSwgMjNdLAorICAgIFszMywgNDYsIDE2LCA0LCA0NywgMTddLAorICAgIFs4LCAxNTIsIDEyMiwg
NCwgMTUzLCAxMjNdLAorICAgIFsyMiwgNzMsIDQ1LCAzLCA3NCwgNDZdLAorICAgIFs4LCA1Mywg
MjMsIDI2LCA1NCwgMjRdLAorICAgIFsxMiwgNDUsIDE1LCAyOCwgNDYsIDE2XSwKKyAgICBbMywg
MTQ3LCAxMTcsIDEwLCAxNDgsIDExOF0sCisgICAgWzMsIDczLCA0NSwgMjMsIDc0LCA0Nl0sCisg
ICAgWzQsIDU0LCAyNCwgMzEsIDU1LCAyNV0sCisgICAgWzExLCA0NSwgMTUsIDMxLCA0NiwgMTZd
LAorICAgIFs3LCAxNDYsIDExNiwgNywgMTQ3LCAxMTddLAorICAgIFsyMSwgNzMsIDQ1LCA3LCA3
NCwgNDZdLAorICAgIFsxLCA1MywgMjMsIDM3LCA1NCwgMjRdLAorICAgIFsxOSwgNDUsIDE1LCAy
NiwgNDYsIDE2XSwKKyAgICBbNSwgMTQ1LCAxMTUsIDEwLCAxNDYsIDExNl0sCisgICAgWzE5LCA3
NSwgNDcsIDEwLCA3NiwgNDhdLAorICAgIFsxNSwgNTQsIDI0LCAyNSwgNTUsIDI1XSwKKyAgICBb
MjMsIDQ1LCAxNSwgMjUsIDQ2LCAxNl0sCisgICAgWzEzLCAxNDUsIDExNSwgMywgMTQ2LCAxMTZd
LAorICAgIFsyLCA3NCwgNDYsIDI5LCA3NSwgNDddLAorICAgIFs0MiwgNTQsIDI0LCAxLCA1NSwg
MjVdLAorICAgIFsyMywgNDUsIDE1LCAyOCwgNDYsIDE2XSwKKyAgICBbMTcsIDE0NSwgMTE1XSwK
KyAgICBbMTAsIDc0LCA0NiwgMjMsIDc1LCA0N10sCisgICAgWzEwLCA1NCwgMjQsIDM1LCA1NSwg
MjVdLAorICAgIFsxOSwgNDUsIDE1LCAzNSwgNDYsIDE2XSwKKyAgICBbMTcsIDE0NSwgMTE1LCAx
LCAxNDYsIDExNl0sCisgICAgWzE0LCA3NCwgNDYsIDIxLCA3NSwgNDddLAorICAgIFsyOSwgNTQs
IDI0LCAxOSwgNTUsIDI1XSwKKyAgICBbMTEsIDQ1LCAxNSwgNDYsIDQ2LCAxNl0sCisgICAgWzEz
LCAxNDUsIDExNSwgNiwgMTQ2LCAxMTZdLAorICAgIFsxNCwgNzQsIDQ2LCAyMywgNzUsIDQ3XSwK
KyAgICBbNDQsIDU0LCAyNCwgNywgNTUsIDI1XSwKKyAgICBbNTksIDQ2LCAxNiwgMSwgNDcsIDE3
XSwKKyAgICBbMTIsIDE1MSwgMTIxLCA3LCAxNTIsIDEyMl0sCisgICAgWzEyLCA3NSwgNDcsIDI2
LCA3NiwgNDhdLAorICAgIFszOSwgNTQsIDI0LCAxNCwgNTUsIDI1XSwKKyAgICBbMjIsIDQ1LCAx
NSwgNDEsIDQ2LCAxNl0sCisgICAgWzYsIDE1MSwgMTIxLCAxNCwgMTUyLCAxMjJdLAorICAgIFs2
LCA3NSwgNDcsIDM0LCA3NiwgNDhdLAorICAgIFs0NiwgNTQsIDI0LCAxMCwgNTUsIDI1XSwKKyAg
ICBbMiwgNDUsIDE1LCA2NCwgNDYsIDE2XSwKKyAgICBbMTcsIDE1MiwgMTIyLCA0LCAxNTMsIDEy
M10sCisgICAgWzI5LCA3NCwgNDYsIDE0LCA3NSwgNDddLAorICAgIFs0OSwgNTQsIDI0LCAxMCwg
NTUsIDI1XSwKKyAgICBbMjQsIDQ1LCAxNSwgNDYsIDQ2LCAxNl0sCisgICAgWzQsIDE1MiwgMTIy
LCAxOCwgMTUzLCAxMjNdLAorICAgIFsxMywgNzQsIDQ2LCAzMiwgNzUsIDQ3XSwKKyAgICBbNDgs
IDU0LCAyNCwgMTQsIDU1LCAyNV0sCisgICAgWzQyLCA0NSwgMTUsIDMyLCA0NiwgMTZdLAorICAg
IFsyMCwgMTQ3LCAxMTcsIDQsIDE0OCwgMTE4XSwKKyAgICBbNDAsIDc1LCA0NywgNywgNzYsIDQ4
XSwKKyAgICBbNDMsIDU0LCAyNCwgMjIsIDU1LCAyNV0sCisgICAgWzEwLCA0NSwgMTUsIDY3LCA0
NiwgMTZdLAorICAgIFsxOSwgMTQ4LCAxMTgsIDYsIDE0OSwgMTE5XSwKKyAgICBbMTgsIDc1LCA0
NywgMzEsIDc2LCA0OF0sCisgICAgWzM0LCA1NCwgMjQsIDM0LCA1NSwgMjVdLAorICAgIFsyMCwg
NDUsIDE1LCA2MSwgNDYsIDE2XQorICBdCisgIFFSUlNCbG9jay5nZXRSU0Jsb2NrcyA9IGZ1bmN0
aW9uICh0eXBlTnVtYmVyLCBlcnJvckNvcnJlY3RMZXZlbCkgeworICAgIHZhciByc0Jsb2NrID0g
UVJSU0Jsb2NrLmdldFJzQmxvY2tUYWJsZSh0eXBlTnVtYmVyLCBlcnJvckNvcnJlY3RMZXZlbCkK
KyAgICBpZiAocnNCbG9jayA9PSB1bmRlZmluZWQpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcigK
KyAgICAgICAgJ2JhZCBycyBibG9jayBAIHR5cGVOdW1iZXI6JyArCisgICAgICAgICAgdHlwZU51
bWJlciArCisgICAgICAgICAgJy9lcnJvckNvcnJlY3RMZXZlbDonICsKKyAgICAgICAgICBlcnJv
ckNvcnJlY3RMZXZlbAorICAgICAgKQorICAgIH0KKyAgICB2YXIgbGVuZ3RoID0gcnNCbG9jay5s
ZW5ndGggLyAzCisgICAgdmFyIGxpc3QgPSBbXQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVu
Z3RoOyBpKyspIHsKKyAgICAgIHZhciBjb3VudCA9IHJzQmxvY2tbaSAqIDMgKyAwXQorICAgICAg
dmFyIHRvdGFsQ291bnQgPSByc0Jsb2NrW2kgKiAzICsgMV0KKyAgICAgIHZhciBkYXRhQ291bnQg
PSByc0Jsb2NrW2kgKiAzICsgMl0KKyAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY291bnQ7IGor
KykgeworICAgICAgICBsaXN0LnB1c2gobmV3IFFSUlNCbG9jayh0b3RhbENvdW50LCBkYXRhQ291
bnQpKQorICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbGlzdAorICB9CisgIFFSUlNCbG9jay5n
ZXRSc0Jsb2NrVGFibGUgPSBmdW5jdGlvbiAodHlwZU51bWJlciwgZXJyb3JDb3JyZWN0TGV2ZWwp
IHsKKyAgICBzd2l0Y2ggKGVycm9yQ29ycmVjdExldmVsKSB7CisgICAgICBjYXNlIFFSRXJyb3JD
b3JyZWN0TGV2ZWwuTDoKKyAgICAgICAgcmV0dXJuIFFSUlNCbG9jay5SU19CTE9DS19UQUJMRVso
dHlwZU51bWJlciAtIDEpICogNCArIDBdCisgICAgICBjYXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwu
TToKKyAgICAgICAgcmV0dXJuIFFSUlNCbG9jay5SU19CTE9DS19UQUJMRVsodHlwZU51bWJlciAt
IDEpICogNCArIDFdCisgICAgICBjYXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwuUToKKyAgICAgICAg
cmV0dXJuIFFSUlNCbG9jay5SU19CTE9DS19UQUJMRVsodHlwZU51bWJlciAtIDEpICogNCArIDJd
CisgICAgICBjYXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwuSDoKKyAgICAgICAgcmV0dXJuIFFSUlNC
bG9jay5SU19CTE9DS19UQUJMRVsodHlwZU51bWJlciAtIDEpICogNCArIDNdCisgICAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gdW5kZWZpbmVkCisgICAgfQorICB9CisgIGZ1bmN0aW9uIFFS
Qml0QnVmZmVyICgpIHsKKyAgICB0aGlzLmJ1ZmZlciA9IFtdCisgICAgdGhpcy5sZW5ndGggPSAw
CisgIH0KKyAgUVJCaXRCdWZmZXIucHJvdG90eXBlID0geworICAgIGdldDogZnVuY3Rpb24gKGlu
ZGV4KSB7CisgICAgICB2YXIgYnVmSW5kZXggPSBNYXRoLmZsb29yKGluZGV4IC8gOCkKKyAgICAg
IHJldHVybiAoKHRoaXMuYnVmZmVyW2J1ZkluZGV4XSA+Pj4gKDcgLSBpbmRleCAlIDgpKSAmIDEp
ID09IDEKKyAgICB9LAorICAgIHB1dDogZnVuY3Rpb24gKG51bSwgbGVuZ3RoKSB7CisgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIHRoaXMucHV0Qml0KCgo
bnVtID4+PiAobGVuZ3RoIC0gaSAtIDEpKSAmIDEpID09IDEpCisgICAgICB9CisgICAgfSwKKyAg
ICBnZXRMZW5ndGhJbkJpdHM6IGZ1bmN0aW9uICgpIHsKKyAgICAgIHJldHVybiB0aGlzLmxlbmd0
aAorICAgIH0sCisgICAgcHV0Qml0OiBmdW5jdGlvbiAoYml0KSB7CisgICAgICB2YXIgYnVmSW5k
ZXggPSBNYXRoLmZsb29yKHRoaXMubGVuZ3RoIC8gOCkKKyAgICAgIGlmICh0aGlzLmJ1ZmZlci5s
ZW5ndGggPD0gYnVmSW5kZXgpIHsKKyAgICAgICAgdGhpcy5idWZmZXIucHVzaCgwKQorICAgICAg
fQorICAgICAgaWYgKGJpdCkgeworICAgICAgICB0aGlzLmJ1ZmZlcltidWZJbmRleF0gfD0gMHg4
MCA+Pj4gKHRoaXMubGVuZ3RoICUgOCkKKyAgICAgIH0KKyAgICAgIHRoaXMubGVuZ3RoKysKKyAg
ICB9CisgIH0KKyAgdmFyIFFSQ29kZUxpbWl0TGVuZ3RoID0gWworICAgIFsxNywgMTQsIDExLCA3
XSwKKyAgICBbMzIsIDI2LCAyMCwgMTRdLAorICAgIFs1MywgNDIsIDMyLCAyNF0sCisgICAgWzc4
LCA2MiwgNDYsIDM0XSwKKyAgICBbMTA2LCA4NCwgNjAsIDQ0XSwKKyAgICBbMTM0LCAxMDYsIDc0
LCA1OF0sCisgICAgWzE1NCwgMTIyLCA4NiwgNjRdLAorICAgIFsxOTIsIDE1MiwgMTA4LCA4NF0s
CisgICAgWzIzMCwgMTgwLCAxMzAsIDk4XSwKKyAgICBbMjcxLCAyMTMsIDE1MSwgMTE5XSwKKyAg
ICBbMzIxLCAyNTEsIDE3NywgMTM3XSwKKyAgICBbMzY3LCAyODcsIDIwMywgMTU1XSwKKyAgICBb
NDI1LCAzMzEsIDI0MSwgMTc3XSwKKyAgICBbNDU4LCAzNjIsIDI1OCwgMTk0XSwKKyAgICBbNTIw
LCA0MTIsIDI5MiwgMjIwXSwKKyAgICBbNTg2LCA0NTAsIDMyMiwgMjUwXSwKKyAgICBbNjQ0LCA1
MDQsIDM2NCwgMjgwXSwKKyAgICBbNzE4LCA1NjAsIDM5NCwgMzEwXSwKKyAgICBbNzkyLCA2MjQs
IDQ0MiwgMzM4XSwKKyAgICBbODU4LCA2NjYsIDQ4MiwgMzgyXSwKKyAgICBbOTI5LCA3MTEsIDUw
OSwgNDAzXSwKKyAgICBbMTAwMywgNzc5LCA1NjUsIDQzOV0sCisgICAgWzEwOTEsIDg1NywgNjEx
LCA0NjFdLAorICAgIFsxMTcxLCA5MTEsIDY2MSwgNTExXSwKKyAgICBbMTI3MywgOTk3LCA3MTUs
IDUzNV0sCisgICAgWzEzNjcsIDEwNTksIDc1MSwgNTkzXSwKKyAgICBbMTQ2NSwgMTEyNSwgODA1
LCA2MjVdLAorICAgIFsxNTI4LCAxMTkwLCA4NjgsIDY1OF0sCisgICAgWzE2MjgsIDEyNjQsIDkw
OCwgNjk4XSwKKyAgICBbMTczMiwgMTM3MCwgOTgyLCA3NDJdLAorICAgIFsxODQwLCAxNDUyLCAx
MDMwLCA3OTBdLAorICAgIFsxOTUyLCAxNTM4LCAxMTEyLCA4NDJdLAorICAgIFsyMDY4LCAxNjI4
LCAxMTY4LCA4OThdLAorICAgIFsyMTg4LCAxNzIyLCAxMjI4LCA5NThdLAorICAgIFsyMzAzLCAx
ODA5LCAxMjgzLCA5ODNdLAorICAgIFsyNDMxLCAxOTExLCAxMzUxLCAxMDUxXSwKKyAgICBbMjU2
MywgMTk4OSwgMTQyMywgMTA5M10sCisgICAgWzI2OTksIDIwOTksIDE0OTksIDExMzldLAorICAg
IFsyODA5LCAyMjEzLCAxNTc5LCAxMjE5XSwKKyAgICBbMjk1MywgMjMzMSwgMTY2MywgMTI3M10K
KyAgXQorCisgIGZ1bmN0aW9uIF9pc1N1cHBvcnRDYW52YXMgKCkgeworICAgIHJldHVybiB0eXBl
b2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEICE9PSAndW5kZWZpbmVkJworICB9CisKKyAgLy8g
YW5kcm9pZCAyLnggZG9lc24ndCBzdXBwb3J0IERhdGEtVVJJIHNwZWMKKyAgZnVuY3Rpb24gX2dl
dEFuZHJvaWQgKCkgeworICAgIHZhciBhbmRyb2lkID0gZmFsc2UKKyAgICB2YXIgc0FnZW50ID0g
bmF2aWdhdG9yLnVzZXJBZ2VudAorCisgICAgaWYgKC9hbmRyb2lkL2kudGVzdChzQWdlbnQpKSB7
CisgICAgICAvLyBhbmRyb2lkCisgICAgICBhbmRyb2lkID0gdHJ1ZQorICAgICAgdmFyIGFNYXQg
PSBzQWdlbnQudG9TdHJpbmcoKS5tYXRjaCgvYW5kcm9pZCAoWzAtOV1cLlswLTldKS9pKQorCisg
ICAgICBpZiAoYU1hdCAmJiBhTWF0WzFdKSB7CisgICAgICAgIGFuZHJvaWQgPSBwYXJzZUZsb2F0
KGFNYXRbMV0pCisgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGFuZHJvaWQKKyAgfQorCisg
IHZhciBzdmdEcmF3ZXIgPSAoZnVuY3Rpb24gKCkgeworICAgIHZhciBEcmF3aW5nID0gZnVuY3Rp
b24gKGVsLCBodE9wdGlvbikgeworICAgICAgdGhpcy5fZWwgPSBlbAorICAgICAgdGhpcy5faHRP
cHRpb24gPSBodE9wdGlvbgorICAgIH0KKworICAgIERyYXdpbmcucHJvdG90eXBlLmRyYXcgPSBm
dW5jdGlvbiAob1FSQ29kZSkgeworICAgICAgdmFyIF9odE9wdGlvbiA9IHRoaXMuX2h0T3B0aW9u
CisgICAgICB2YXIgX2VsID0gdGhpcy5fZWwKKyAgICAgIHZhciBuQ291bnQgPSBvUVJDb2RlLmdl
dE1vZHVsZUNvdW50KCkKKyAgICAgIHZhciBuV2lkdGggPSBNYXRoLmZsb29yKF9odE9wdGlvbi53
aWR0aCAvIG5Db3VudCkKKyAgICAgIHZhciBuSGVpZ2h0ID0gTWF0aC5mbG9vcihfaHRPcHRpb24u
aGVpZ2h0IC8gbkNvdW50KQorCisgICAgICB0aGlzLmNsZWFyKCkKKworICAgICAgZnVuY3Rpb24g
bWFrZVNWRyAodGFnLCBhdHRycykgeworICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgdGFnKQorICAgICAgICBmb3Ig
KHZhciBrIGluIGF0dHJzKSB7CisgICAgICAgICAgaWYgKGF0dHJzLmhhc093blByb3BlcnR5KGsp
KSBlbC5zZXRBdHRyaWJ1dGUoaywgYXR0cnNba10pCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGVsCisgICAgICB9CisKKyAgICAgIHZhciBzdmcgPSBtYWtlU1ZHKCdzdmcnLCB7CisgICAgICAg
IHZpZXdCb3g6ICcwIDAgJyArIFN0cmluZyhuQ291bnQpICsgJyAnICsgU3RyaW5nKG5Db3VudCks
CisgICAgICAgIHdpZHRoOiAnMTAwJScsCisgICAgICAgIGhlaWdodDogJzEwMCUnLAorICAgICAg
ICBmaWxsOiBfaHRPcHRpb24uY29sb3JMaWdodAorICAgICAgfSkKKyAgICAgIHN2Zy5zZXRBdHRy
aWJ1dGVOUygKKyAgICAgICAgJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvJywKKyAgICAg
ICAgJ3htbG5zOnhsaW5rJywKKyAgICAgICAgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsn
CisgICAgICApCisgICAgICBfZWwuYXBwZW5kQ2hpbGQoc3ZnKQorCisgICAgICBzdmcuYXBwZW5k
Q2hpbGQoCisgICAgICAgIG1ha2VTVkcoJ3JlY3QnLCB7CisgICAgICAgICAgZmlsbDogX2h0T3B0
aW9uLmNvbG9yTGlnaHQsCisgICAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAgICAgICBoZWln
aHQ6ICcxMDAlJworICAgICAgICB9KQorICAgICAgKQorICAgICAgc3ZnLmFwcGVuZENoaWxkKAor
ICAgICAgICBtYWtlU1ZHKCdyZWN0JywgeworICAgICAgICAgIGZpbGw6IF9odE9wdGlvbi5jb2xv
ckRhcmssCisgICAgICAgICAgd2lkdGg6ICcxJywKKyAgICAgICAgICBoZWlnaHQ6ICcxJywKKyAg
ICAgICAgICBpZDogJ3RlbXBsYXRlJworICAgICAgICB9KQorICAgICAgKQorCisgICAgICBmb3Ig
KHZhciByb3cgPSAwOyByb3cgPCBuQ291bnQ7IHJvdysrKSB7CisgICAgICAgIGZvciAodmFyIGNv
bCA9IDA7IGNvbCA8IG5Db3VudDsgY29sKyspIHsKKyAgICAgICAgICBpZiAob1FSQ29kZS5pc0Rh
cmsocm93LCBjb2wpKSB7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBtYWtlU1ZHKCd1c2UnLCB7
IHg6IFN0cmluZyhjb2wpLCB5OiBTdHJpbmcocm93KSB9KQorICAgICAgICAgICAgY2hpbGQuc2V0
QXR0cmlidXRlTlMoCisgICAgICAgICAgICAgICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5r
JywKKyAgICAgICAgICAgICAgJ2hyZWYnLAorICAgICAgICAgICAgICAnI3RlbXBsYXRlJworICAg
ICAgICAgICAgKQorICAgICAgICAgICAgc3ZnLmFwcGVuZENoaWxkKGNoaWxkKQorICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBEcmF3aW5nLnByb3RvdHlwZS5jbGVh
ciA9IGZ1bmN0aW9uICgpIHsKKyAgICAgIHdoaWxlICh0aGlzLl9lbC5oYXNDaGlsZE5vZGVzKCkp
IHRoaXMuX2VsLnJlbW92ZUNoaWxkKHRoaXMuX2VsLmxhc3RDaGlsZCkKKyAgICB9CisgICAgcmV0
dXJuIERyYXdpbmcKKyAgfSkoKQorCisgIHZhciB1c2VTVkcgPSBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3ZnJworCisgIC8vIERyYXdpbmcgaW4g
RE9NIGJ5IHVzaW5nIFRhYmxlIHRhZworICB2YXIgRHJhd2luZyA9IHVzZVNWRworICAgID8gc3Zn
RHJhd2VyCisgICAgOiAhX2lzU3VwcG9ydENhbnZhcygpCisgICAgICA/IChmdW5jdGlvbiAoKSB7
CisgICAgICAgIHZhciBEcmF3aW5nID0gZnVuY3Rpb24gKGVsLCBodE9wdGlvbikgeworICAgICAg
ICAgIHRoaXMuX2VsID0gZWwKKyAgICAgICAgICB0aGlzLl9odE9wdGlvbiA9IGh0T3B0aW9uCisg
ICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICAgKiBEcmF3IHRoZSBRUkNvZGUKKyAg
ICAgICAgICAgKgorICAgICAgICAgICAqIEBwYXJhbSB7UVJDb2RlfSBvUVJDb2RlCisgICAgICAg
ICAgICovCisgICAgICAgIERyYXdpbmcucHJvdG90eXBlLmRyYXcgPSBmdW5jdGlvbiAob1FSQ29k
ZSkgeworICAgICAgICAgIHZhciBfaHRPcHRpb24gPSB0aGlzLl9odE9wdGlvbgorICAgICAgICAg
IHZhciBfZWwgPSB0aGlzLl9lbAorICAgICAgICAgIHZhciBuQ291bnQgPSBvUVJDb2RlLmdldE1v
ZHVsZUNvdW50KCkKKyAgICAgICAgICB2YXIgbldpZHRoID0gTWF0aC5mbG9vcihfaHRPcHRpb24u
d2lkdGggLyBuQ291bnQpCisgICAgICAgICAgdmFyIG5IZWlnaHQgPSBNYXRoLmZsb29yKF9odE9w
dGlvbi5oZWlnaHQgLyBuQ291bnQpCisgICAgICAgICAgdmFyIGFIVE1MID0gWyc8dGFibGUgc3R5
bGU9ImJvcmRlcjowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsiPiddCisKKyAgICAgICAgICBm
b3IgKHZhciByb3cgPSAwOyByb3cgPCBuQ291bnQ7IHJvdysrKSB7CisgICAgICAgICAgICBhSFRN
TC5wdXNoKCc8dHI+JykKKworICAgICAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbkNv
dW50OyBjb2wrKykgeworICAgICAgICAgICAgICBhSFRNTC5wdXNoKAorICAgICAgICAgICAgICAg
ICc8dGQgc3R5bGU9ImJvcmRlcjowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtwYWRkaW5nOjA7
bWFyZ2luOjA7d2lkdGg6JyArCisgICAgICAgICAgICAgICAgICAgIG5XaWR0aCArCisgICAgICAg
ICAgICAgICAgICAgICdweDtoZWlnaHQ6JyArCisgICAgICAgICAgICAgICAgICAgIG5IZWlnaHQg
KworICAgICAgICAgICAgICAgICAgICAncHg7YmFja2dyb3VuZC1jb2xvcjonICsKKyAgICAgICAg
ICAgICAgICAgICAgKG9RUkNvZGUuaXNEYXJrKHJvdywgY29sKQorICAgICAgICAgICAgICAgICAg
ICAgID8gX2h0T3B0aW9uLmNvbG9yRGFyaworICAgICAgICAgICAgICAgICAgICAgIDogX2h0T3B0
aW9uLmNvbG9yTGlnaHQpICsKKyAgICAgICAgICAgICAgICAgICAgJzsiPjwvdGQ+JworICAgICAg
ICAgICAgICApCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFIVE1MLnB1c2goJzwvdHI+
JykKKyAgICAgICAgICB9CisKKyAgICAgICAgICBhSFRNTC5wdXNoKCc8L3RhYmxlPicpCisgICAg
ICAgICAgX2VsLmlubmVySFRNTCA9IGFIVE1MLmpvaW4oJycpCisKKyAgICAgICAgICAvLyBGaXgg
dGhlIG1hcmdpbiB2YWx1ZXMgYXMgcmVhbCBzaXplLgorICAgICAgICAgIHZhciBlbFRhYmxlID0g
X2VsLmNoaWxkTm9kZXNbMF0KKyAgICAgICAgICB2YXIgbkxlZnRNYXJnaW5UYWJsZSA9IChfaHRP
cHRpb24ud2lkdGggLSBlbFRhYmxlLm9mZnNldFdpZHRoKSAvIDIKKyAgICAgICAgICB2YXIgblRv
cE1hcmdpblRhYmxlID0gKF9odE9wdGlvbi5oZWlnaHQgLSBlbFRhYmxlLm9mZnNldEhlaWdodCkg
LyAyCisKKyAgICAgICAgICBpZiAobkxlZnRNYXJnaW5UYWJsZSA+IDAgJiYgblRvcE1hcmdpblRh
YmxlID4gMCkgeworICAgICAgICAgICAgZWxUYWJsZS5zdHlsZS5tYXJnaW4gPQorICAgICAgICAg
ICAgICAgIG5Ub3BNYXJnaW5UYWJsZSArICdweCAnICsgbkxlZnRNYXJnaW5UYWJsZSArICdweCcK
KyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICAgKiBDbGVh
ciB0aGUgUVJDb2RlCisgICAgICAgICAgICovCisgICAgICAgIERyYXdpbmcucHJvdG90eXBlLmNs
ZWFyID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgIHRoaXMuX2VsLmlubmVySFRNTCA9ICcnCisg
ICAgICAgIH0KKworICAgICAgICByZXR1cm4gRHJhd2luZworICAgICAgfSkoKQorICAgICAgOiAo
ZnVuY3Rpb24gKCkgeworICAgICAgICAvLyBEcmF3aW5nIGluIENhbnZhcworICAgICAgICBmdW5j
dGlvbiBfb25NYWtlSW1hZ2UgKCkgeworICAgICAgICAgIHRoaXMuX2VsSW1hZ2Uuc3JjID0gdGhp
cy5fZWxDYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKQorICAgICAgICAgIHRoaXMuX2VsSW1h
Z2Uuc3R5bGUuZGlzcGxheSA9ICdibG9jaycKKyAgICAgICAgICB0aGlzLl9lbENhbnZhcy5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnCisgICAgICAgIH0KKworICAgICAgICAvLyBBbmRyb2lkIDIuMSBi
dWcgd29ya2Fyb3VuZAorICAgICAgICAvLyBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvYW5kcm9p
ZC9pc3N1ZXMvZGV0YWlsP2lkPTUxNDEKKyAgICAgICAgaWYgKHRoaXMuX2FuZHJvaWQgJiYgdGhp
cy5fYW5kcm9pZCA8PSAyLjEpIHsKKyAgICAgICAgICB2YXIgZmFjdG9yID0gMSAvIHdpbmRvdy5k
ZXZpY2VQaXhlbFJhdGlvCisgICAgICAgICAgdmFyIGRyYXdJbWFnZSA9IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5wcm90b3R5cGUuZHJhd0ltYWdlCisgICAgICAgICAgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELnByb3RvdHlwZS5kcmF3SW1hZ2UgPSBmdW5jdGlvbiAoCisgICAgICAgICAgICBp
bWFnZSwKKyAgICAgICAgICAgIHN4LAorICAgICAgICAgICAgc3ksCisgICAgICAgICAgICBzdywK
KyAgICAgICAgICAgIHNoLAorICAgICAgICAgICAgZHgsCisgICAgICAgICAgICBkeSwKKyAgICAg
ICAgICAgIGR3LAorICAgICAgICAgICAgZGgKKyAgICAgICAgICApIHsKKyAgICAgICAgICAgIGlm
ICgnbm9kZU5hbWUnIGluIGltYWdlICYmIC9pbWcvaS50ZXN0KGltYWdlLm5vZGVOYW1lKSkgewor
ICAgICAgICAgICAgICBmb3IgKHZhciBpID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMTsg
aS0tKSB7CisgICAgICAgICAgICAgICAgYXJndW1lbnRzW2ldID0gYXJndW1lbnRzW2ldICogZmFj
dG9yCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGR3ID09
PSAndW5kZWZpbmVkJykgeworICAgICAgICAgICAgICBhcmd1bWVudHNbMV0gKj0gZmFjdG9yCisg
ICAgICAgICAgICAgIGFyZ3VtZW50c1syXSAqPSBmYWN0b3IKKyAgICAgICAgICAgICAgYXJndW1l
bnRzWzNdICo9IGZhY3RvcgorICAgICAgICAgICAgICBhcmd1bWVudHNbNF0gKj0gZmFjdG9yCisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRyYXdJbWFnZS5hcHBseSh0aGlzLCBhcmd1bWVu
dHMpCisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAgICog
Q2hlY2sgd2hldGhlciB0aGUgdXNlcidzIGJyb3dzZXIgc3VwcG9ydHMgRGF0YSBVUkkgb3Igbm90
CisgICAgICAgICAgICoKKyAgICAgICAgICAgKiBAcHJpdmF0ZQorICAgICAgICAgICAqIEBwYXJh
bSB7RnVuY3Rpb259IGZTdWNjZXNzIE9jY3VycyBpZiBpdCBzdXBwb3J0cyBEYXRhIFVSSQorICAg
ICAgICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGZGYWlsIE9jY3VycyBpZiBpdCBkb2Vzbid0IHN1
cHBvcnQgRGF0YSBVUkkKKyAgICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gX3NhZmVTZXRE
YXRhVVJJIChmU3VjY2VzcywgZkZhaWwpIHsKKyAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMKKyAg
ICAgICAgICBzZWxmLl9mRmFpbCA9IGZGYWlsCisgICAgICAgICAgc2VsZi5fZlN1Y2Nlc3MgPSBm
U3VjY2VzcworCisgICAgICAgICAgLy8gQ2hlY2sgaXQganVzdCBvbmNlCisgICAgICAgICAgaWYg
KHNlbGYuX2JTdXBwb3J0RGF0YVVSSSA9PT0gbnVsbCkgeworICAgICAgICAgICAgdmFyIGVsID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKKyAgICAgICAgICAgIHZhciBmT25FcnJvciA9
IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgc2VsZi5fYlN1cHBvcnREYXRhVVJJID0gZmFs
c2UKKworICAgICAgICAgICAgICBpZiAoc2VsZi5fZkZhaWwpIHsKKyAgICAgICAgICAgICAgICBz
ZWxmLl9mRmFpbC5jYWxsKHNlbGYpCisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHZhciBmT25TdWNjZXNzID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBz
ZWxmLl9iU3VwcG9ydERhdGFVUkkgPSB0cnVlCisKKyAgICAgICAgICAgICAgaWYgKHNlbGYuX2ZT
dWNjZXNzKSB7CisgICAgICAgICAgICAgICAgc2VsZi5fZlN1Y2Nlc3MuY2FsbChzZWxmKQorICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVsLm9uYWJvcnQgPSBm
T25FcnJvcgorICAgICAgICAgICAgZWwub25lcnJvciA9IGZPbkVycm9yCisgICAgICAgICAgICBl
bC5vbmxvYWQgPSBmT25TdWNjZXNzCisgICAgICAgICAgICBlbC5zcmMgPQorICAgICAgICAgICAg
ICAgICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFVQUFB
QUZDQVlBQUFDTmJ5YmxBQUFBSEVsRVFWUUkxMlA0Ly84L3czOEdJQVhESUJLRTBESHhnbGpOQkFB
TzlUWEwwWTRPSHdBQUFBQkpSVTVFcmtKZ2dnPT0nIC8vIHRoZSBJbWFnZSBjb250YWlucyAxcHgg
ZGF0YS4KKyAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYuX2JTdXBwb3J0RGF0YVVSSSA9PT0gdHJ1
ZSAmJiBzZWxmLl9mU3VjY2VzcykgeworICAgICAgICAgICAgc2VsZi5fZlN1Y2Nlc3MuY2FsbChz
ZWxmKQorICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZi5fYlN1cHBvcnREYXRhVVJJID09PSBmYWxz
ZSAmJiBzZWxmLl9mRmFpbCkgeworICAgICAgICAgICAgc2VsZi5fZkZhaWwuY2FsbChzZWxmKQor
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgICAqIERyYXdp
bmcgUVJDb2RlIGJ5IHVzaW5nIGNhbnZhcworICAgICAgICAgICAqCisgICAgICAgICAgICogQGNv
bnN0cnVjdG9yCisgICAgICAgICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWwKKyAgICAgICAg
ICAgKiBAcGFyYW0ge09iamVjdH0gaHRPcHRpb24gUVJDb2RlIE9wdGlvbnMKKyAgICAgICAgICAg
Ki8KKyAgICAgICAgdmFyIERyYXdpbmcgPSBmdW5jdGlvbiAoZWwsIGh0T3B0aW9uKSB7CisgICAg
ICAgICAgdGhpcy5fYklzUGFpbnRlZCA9IGZhbHNlCisgICAgICAgICAgdGhpcy5fYW5kcm9pZCA9
IF9nZXRBbmRyb2lkKCkKKworICAgICAgICAgIHRoaXMuX2h0T3B0aW9uID0gaHRPcHRpb24KKyAg
ICAgICAgICB0aGlzLl9lbENhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycp
CisgICAgICAgICAgdGhpcy5fZWxDYW52YXMud2lkdGggPSBodE9wdGlvbi53aWR0aAorICAgICAg
ICAgIHRoaXMuX2VsQ2FudmFzLmhlaWdodCA9IGh0T3B0aW9uLmhlaWdodAorICAgICAgICAgIGVs
LmFwcGVuZENoaWxkKHRoaXMuX2VsQ2FudmFzKQorICAgICAgICAgIHRoaXMuX2VsID0gZWwKKyAg
ICAgICAgICB0aGlzLl9vQ29udGV4dCA9IHRoaXMuX2VsQ2FudmFzLmdldENvbnRleHQoJzJkJykK
KyAgICAgICAgICB0aGlzLl9iSXNQYWludGVkID0gZmFsc2UKKyAgICAgICAgICB0aGlzLl9lbElt
YWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykKKyAgICAgICAgICB0aGlzLl9lbElt
YWdlLmFsdCA9ICdTY2FuIG1lIScKKyAgICAgICAgICB0aGlzLl9lbEltYWdlLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZScKKyAgICAgICAgICB0aGlzLl9lbC5hcHBlbmRDaGlsZCh0aGlzLl9lbEltYWdl
KQorICAgICAgICAgIHRoaXMuX2JTdXBwb3J0RGF0YVVSSSA9IG51bGwKKyAgICAgICAgfQorCisg
ICAgICAgIC8qKgorICAgICAgICAgICAqIERyYXcgdGhlIFFSQ29kZQorICAgICAgICAgICAqCisg
ICAgICAgICAgICogQHBhcmFtIHtRUkNvZGV9IG9RUkNvZGUKKyAgICAgICAgICAgKi8KKyAgICAg
ICAgRHJhd2luZy5wcm90b3R5cGUuZHJhdyA9IGZ1bmN0aW9uIChvUVJDb2RlKSB7CisgICAgICAg
ICAgdmFyIF9lbEltYWdlID0gdGhpcy5fZWxJbWFnZQorICAgICAgICAgIHZhciBfb0NvbnRleHQg
PSB0aGlzLl9vQ29udGV4dAorICAgICAgICAgIHZhciBfaHRPcHRpb24gPSB0aGlzLl9odE9wdGlv
bgorCisgICAgICAgICAgdmFyIG5Db3VudCA9IG9RUkNvZGUuZ2V0TW9kdWxlQ291bnQoKQorICAg
ICAgICAgIHZhciBuV2lkdGggPSBfaHRPcHRpb24ud2lkdGggLyBuQ291bnQKKyAgICAgICAgICB2
YXIgbkhlaWdodCA9IF9odE9wdGlvbi5oZWlnaHQgLyBuQ291bnQKKyAgICAgICAgICB2YXIgblJv
dW5kZWRXaWR0aCA9IE1hdGgucm91bmQobldpZHRoKQorICAgICAgICAgIHZhciBuUm91bmRlZEhl
aWdodCA9IE1hdGgucm91bmQobkhlaWdodCkKKworICAgICAgICAgIF9lbEltYWdlLnN0eWxlLmRp
c3BsYXkgPSAnbm9uZScKKyAgICAgICAgICB0aGlzLmNsZWFyKCkKKworICAgICAgICAgIGZvciAo
dmFyIHJvdyA9IDA7IHJvdyA8IG5Db3VudDsgcm93KyspIHsKKyAgICAgICAgICAgIGZvciAodmFy
IGNvbCA9IDA7IGNvbCA8IG5Db3VudDsgY29sKyspIHsKKyAgICAgICAgICAgICAgdmFyIGJJc0Rh
cmsgPSBvUVJDb2RlLmlzRGFyayhyb3csIGNvbCkKKyAgICAgICAgICAgICAgdmFyIG5MZWZ0ID0g
Y29sICogbldpZHRoCisgICAgICAgICAgICAgIHZhciBuVG9wID0gcm93ICogbkhlaWdodAorICAg
ICAgICAgICAgICBfb0NvbnRleHQuc3Ryb2tlU3R5bGUgPSBiSXNEYXJrCisgICAgICAgICAgICAg
ICAgPyBfaHRPcHRpb24uY29sb3JEYXJrCisgICAgICAgICAgICAgICAgOiBfaHRPcHRpb24uY29s
b3JMaWdodAorICAgICAgICAgICAgICBfb0NvbnRleHQubGluZVdpZHRoID0gMQorICAgICAgICAg
ICAgICBfb0NvbnRleHQuZmlsbFN0eWxlID0gYklzRGFyaworICAgICAgICAgICAgICAgID8gX2h0
T3B0aW9uLmNvbG9yRGFyaworICAgICAgICAgICAgICAgIDogX2h0T3B0aW9uLmNvbG9yTGlnaHQK
KyAgICAgICAgICAgICAgX29Db250ZXh0LmZpbGxSZWN0KG5MZWZ0LCBuVG9wLCBuV2lkdGgsIG5I
ZWlnaHQpCisKKyAgICAgICAgICAgICAgLy8g7JWI7YuwIOyVqOumrOyWtOyLsSDrsKnsp4Ag7LKY
66asCisgICAgICAgICAgICAgIF9vQ29udGV4dC5zdHJva2VSZWN0KAorICAgICAgICAgICAgICAg
IE1hdGguZmxvb3IobkxlZnQpICsgMC41LAorICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoblRv
cCkgKyAwLjUsCisgICAgICAgICAgICAgICAgblJvdW5kZWRXaWR0aCwKKyAgICAgICAgICAgICAg
ICBuUm91bmRlZEhlaWdodAorICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgX29Db250
ZXh0LnN0cm9rZVJlY3QoCisgICAgICAgICAgICAgICAgTWF0aC5jZWlsKG5MZWZ0KSAtIDAuNSwK
KyAgICAgICAgICAgICAgICBNYXRoLmNlaWwoblRvcCkgLSAwLjUsCisgICAgICAgICAgICAgICAg
blJvdW5kZWRXaWR0aCwKKyAgICAgICAgICAgICAgICBuUm91bmRlZEhlaWdodAorICAgICAgICAg
ICAgICApCisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgdGhpcy5fYklz
UGFpbnRlZCA9IHRydWUKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgICAqIE1h
a2UgdGhlIGltYWdlIGZyb20gQ2FudmFzIGlmIHRoZSBicm93c2VyIHN1cHBvcnRzIERhdGEgVVJJ
LgorICAgICAgICAgICAqLworICAgICAgICBEcmF3aW5nLnByb3RvdHlwZS5tYWtlSW1hZ2UgPSBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgaWYgKHRoaXMuX2JJc1BhaW50ZWQpIHsKKyAgICAgICAg
ICAgIF9zYWZlU2V0RGF0YVVSSS5jYWxsKHRoaXMsIF9vbk1ha2VJbWFnZSkKKyAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICAgKiBSZXR1cm4gd2hldGhlciB0
aGUgUVJDb2RlIGlzIHBhaW50ZWQgb3Igbm90CisgICAgICAgICAgICoKKyAgICAgICAgICAgKiBA
cmV0dXJuIHtCb29sZWFufQorICAgICAgICAgICAqLworICAgICAgICBEcmF3aW5nLnByb3RvdHlw
ZS5pc1BhaW50ZWQgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgcmV0dXJuIHRoaXMuX2JJc1Bh
aW50ZWQKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgICAqIENsZWFyIHRoZSBR
UkNvZGUKKyAgICAgICAgICAgKi8KKyAgICAgICAgRHJhd2luZy5wcm90b3R5cGUuY2xlYXIgPSBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgdGhpcy5fb0NvbnRleHQuY2xlYXJSZWN0KAorICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICB0aGlzLl9lbENhbnZhcy53aWR0
aCwKKyAgICAgICAgICAgIHRoaXMuX2VsQ2FudmFzLmhlaWdodAorICAgICAgICAgICkKKyAgICAg
ICAgICB0aGlzLl9iSXNQYWludGVkID0gZmFsc2UKKyAgICAgICAgfQorCisgICAgICAgIC8qKgor
ICAgICAgICAgICAqIEBwcml2YXRlCisgICAgICAgICAgICogQHBhcmFtIHtOdW1iZXJ9IG5OdW1i
ZXIKKyAgICAgICAgICAgKi8KKyAgICAgICAgRHJhd2luZy5wcm90b3R5cGUucm91bmQgPSBmdW5j
dGlvbiAobk51bWJlcikgeworICAgICAgICAgIGlmICghbk51bWJlcikgeworICAgICAgICAgICAg
cmV0dXJuIG5OdW1iZXIKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gTWF0aC5mbG9v
cihuTnVtYmVyICogMTAwMCkgLyAxMDAwCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gRHJh
d2luZworICAgICAgfSkoKQorCisgIC8qKgorICAgKiBHZXQgdGhlIHR5cGUgYnkgc3RyaW5nIGxl
bmd0aAorICAgKgorICAgKiBAcHJpdmF0ZQorICAgKiBAcGFyYW0ge1N0cmluZ30gc1RleHQKKyAg
ICogQHBhcmFtIHtOdW1iZXJ9IG5Db3JyZWN0TGV2ZWwKKyAgICogQHJldHVybiB7TnVtYmVyfSB0
eXBlCisgICAqLworICBmdW5jdGlvbiBfZ2V0VHlwZU51bWJlciAoc1RleHQsIG5Db3JyZWN0TGV2
ZWwpIHsKKyAgICB2YXIgblR5cGUgPSAxCisgICAgdmFyIGxlbmd0aCA9IF9nZXRVVEY4TGVuZ3Ro
KHNUZXh0KQorCisgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IFFSQ29kZUxpbWl0TGVuZ3RoLmxl
bmd0aDsgaSA8PSBsZW47IGkrKykgeworICAgICAgdmFyIG5MaW1pdCA9IDAKKworICAgICAgc3dp
dGNoIChuQ29ycmVjdExldmVsKSB7CisgICAgICAgIGNhc2UgUVJFcnJvckNvcnJlY3RMZXZlbC5M
OgorICAgICAgICAgIG5MaW1pdCA9IFFSQ29kZUxpbWl0TGVuZ3RoW2ldWzBdCisgICAgICAgICAg
YnJlYWsKKyAgICAgICAgY2FzZSBRUkVycm9yQ29ycmVjdExldmVsLk06CisgICAgICAgICAgbkxp
bWl0ID0gUVJDb2RlTGltaXRMZW5ndGhbaV1bMV0KKyAgICAgICAgICBicmVhaworICAgICAgICBj
YXNlIFFSRXJyb3JDb3JyZWN0TGV2ZWwuUToKKyAgICAgICAgICBuTGltaXQgPSBRUkNvZGVMaW1p
dExlbmd0aFtpXVsyXQorICAgICAgICAgIGJyZWFrCisgICAgICAgIGNhc2UgUVJFcnJvckNvcnJl
Y3RMZXZlbC5IOgorICAgICAgICAgIG5MaW1pdCA9IFFSQ29kZUxpbWl0TGVuZ3RoW2ldWzNdCisg
ICAgICAgICAgYnJlYWsKKyAgICAgIH0KKworICAgICAgaWYgKGxlbmd0aCA8PSBuTGltaXQpIHsK
KyAgICAgICAgYnJlYWsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIG5UeXBlKysKKyAgICAgIH0K
KyAgICB9CisKKyAgICBpZiAoblR5cGUgPiBRUkNvZGVMaW1pdExlbmd0aC5sZW5ndGgpIHsKKyAg
ICAgIHRocm93IG5ldyBFcnJvcignVG9vIGxvbmcgZGF0YScpCisgICAgfQorCisgICAgcmV0dXJu
IG5UeXBlCisgIH0KKworICBmdW5jdGlvbiBfZ2V0VVRGOExlbmd0aCAoc1RleHQpIHsKKyAgICB2
YXIgcmVwbGFjZWRUZXh0ID0gZW5jb2RlVVJJKHNUZXh0KQorICAgICAgLnRvU3RyaW5nKCkKKyAg
ICAgIC5yZXBsYWNlKC9cJVswLTlhLWZBLUZdezJ9L2csICdhJykKKyAgICByZXR1cm4gcmVwbGFj
ZWRUZXh0Lmxlbmd0aCArIChyZXBsYWNlZFRleHQubGVuZ3RoICE9IHNUZXh0ID8gMyA6IDApCisg
IH0KKworICAvKioKKyAgICogQGNsYXNzIFFSQ29kZQorICAgKiBAY29uc3RydWN0b3IKKyAgICog
QGV4YW1wbGUKKyAgICogbmV3IFFSQ29kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
LCAiaHR0cDovL2ppbmRvLmRldi5uYXZlci5jb20vY29sbGllIik7CisgICAqCisgICAqIEBleGFt
cGxlCisgICAqIHZhciBvUVJDb2RlID0gbmV3IFFSQ29kZSgidGVzdCIsIHsKKyAgICogICAgdGV4
dCA6ICJodHRwOi8vbmF2ZXIuY29tIiwKKyAgICogICAgd2lkdGggOiAxMjgsCisgICAqICAgIGhl
aWdodCA6IDEyOAorICAgKiB9KTsKKyAgICoKKyAgICogb1FSQ29kZS5jbGVhcigpOyAvLyBDbGVh
ciB0aGUgUVJDb2RlLgorICAgKiBvUVJDb2RlLm1ha2VDb2RlKCJodHRwOi8vbWFwLm5hdmVyLmNv
bSIpOyAvLyBSZS1jcmVhdGUgdGhlIFFSQ29kZS4KKyAgICoKKyAgICogQHBhcmFtIHtIVE1MRWxl
bWVudHxTdHJpbmd9IGVsIHRhcmdldCBlbGVtZW50IG9yICdpZCcgYXR0cmlidXRlIG9mIGVsZW1l
bnQuCisgICAqIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gdk9wdGlvbgorICAgKiBAcGFyYW0ge1N0
cmluZ30gdk9wdGlvbi50ZXh0IFFSQ29kZSBsaW5rIGRhdGEKKyAgICogQHBhcmFtIHtOdW1iZXJ9
IFt2T3B0aW9uLndpZHRoPTI1Nl0KKyAgICogQHBhcmFtIHtOdW1iZXJ9IFt2T3B0aW9uLmhlaWdo
dD0yNTZdCisgICAqIEBwYXJhbSB7U3RyaW5nfSBbdk9wdGlvbi5jb2xvckRhcms9IiMwMDAwMDAi
XQorICAgKiBAcGFyYW0ge1N0cmluZ30gW3ZPcHRpb24uY29sb3JMaWdodD0iI2ZmZmZmZiJdCisg
ICAqIEBwYXJhbSB7UVJDb2RlLkNvcnJlY3RMZXZlbH0gW3ZPcHRpb24uY29ycmVjdExldmVsPVFS
Q29kZS5Db3JyZWN0TGV2ZWwuSF0gW0x8TXxRfEhdCisgICAqLworICBRUkNvZGUgPSBmdW5jdGlv
biAoZWwsIHZPcHRpb24pIHsKKyAgICB0aGlzLl9odE9wdGlvbiA9IHsKKyAgICAgIHdpZHRoOiAy
NTYsCisgICAgICBoZWlnaHQ6IDI1NiwKKyAgICAgIHR5cGVOdW1iZXI6IDQsCisgICAgICBjb2xv
ckRhcms6ICcjMDAwMDAwJywKKyAgICAgIGNvbG9yTGlnaHQ6ICcjZmZmZmZmJywKKyAgICAgIGNv
cnJlY3RMZXZlbDogUVJFcnJvckNvcnJlY3RMZXZlbC5ICisgICAgfQorCisgICAgaWYgKHR5cGVv
ZiB2T3B0aW9uID09PSAnc3RyaW5nJykgeworICAgICAgdk9wdGlvbiA9IHsKKyAgICAgICAgdGV4
dDogdk9wdGlvbgorICAgICAgfQorICAgIH0KKworICAgIC8vIE92ZXJ3cml0ZXMgb3B0aW9ucwor
ICAgIGlmICh2T3B0aW9uKSB7CisgICAgICBmb3IgKHZhciBpIGluIHZPcHRpb24pIHsKKyAgICAg
ICAgdGhpcy5faHRPcHRpb25baV0gPSB2T3B0aW9uW2ldCisgICAgICB9CisgICAgfQorCisgICAg
aWYgKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycpIHsKKyAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoZWwpCisgICAgfQorCisgICAgaWYgKHRoaXMuX2h0T3B0aW9uLnVzZVNWRykgewor
ICAgICAgRHJhd2luZyA9IHN2Z0RyYXdlcgorICAgIH0KKworICAgIHRoaXMuX2FuZHJvaWQgPSBf
Z2V0QW5kcm9pZCgpCisgICAgdGhpcy5fZWwgPSBlbAorICAgIHRoaXMuX29RUkNvZGUgPSBudWxs
CisgICAgdGhpcy5fb0RyYXdpbmcgPSBuZXcgRHJhd2luZyh0aGlzLl9lbCwgdGhpcy5faHRPcHRp
b24pCisKKyAgICBpZiAodGhpcy5faHRPcHRpb24udGV4dCkgeworICAgICAgdGhpcy5tYWtlQ29k
ZSh0aGlzLl9odE9wdGlvbi50ZXh0KQorICAgIH0KKyAgfQorCisgIC8qKgorICAgKiBNYWtlIHRo
ZSBRUkNvZGUKKyAgICoKKyAgICogQHBhcmFtIHtTdHJpbmd9IHNUZXh0IGxpbmsgZGF0YQorICAg
Ki8KKyAgUVJDb2RlLnByb3RvdHlwZS5tYWtlQ29kZSA9IGZ1bmN0aW9uIChzVGV4dCkgeworICAg
IHRoaXMuX29RUkNvZGUgPSBuZXcgUVJDb2RlTW9kZWwoCisgICAgICBfZ2V0VHlwZU51bWJlcihz
VGV4dCwgdGhpcy5faHRPcHRpb24uY29ycmVjdExldmVsKSwKKyAgICAgIHRoaXMuX2h0T3B0aW9u
LmNvcnJlY3RMZXZlbAorICAgICkKKyAgICB0aGlzLl9vUVJDb2RlLmFkZERhdGEoc1RleHQpCisg
ICAgdGhpcy5fb1FSQ29kZS5tYWtlKCkKKyAgICB0aGlzLl9lbC50aXRsZSA9IHNUZXh0CisgICAg
dGhpcy5fb0RyYXdpbmcuZHJhdyh0aGlzLl9vUVJDb2RlKQorICAgIHRoaXMubWFrZUltYWdlKCkK
KyAgfQorCisgIC8qKgorICAgKiBNYWtlIHRoZSBJbWFnZSBmcm9tIENhbnZhcyBlbGVtZW50Cisg
ICAqIC0gSXQgb2NjdXJzIGF1dG9tYXRpY2FsbHkKKyAgICogLSBBbmRyb2lkIGJlbG93IDMgZG9l
c24ndCBzdXBwb3J0IERhdGEtVVJJIHNwZWMuCisgICAqCisgICAqIEBwcml2YXRlCisgICAqLwor
ICBRUkNvZGUucHJvdG90eXBlLm1ha2VJbWFnZSA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoCisg
ICAgICB0eXBlb2YgdGhpcy5fb0RyYXdpbmcubWFrZUltYWdlID09PSAnZnVuY3Rpb24nICYmCisg
ICAgICAoIXRoaXMuX2FuZHJvaWQgfHwgdGhpcy5fYW5kcm9pZCA+PSAzKQorICAgICkgeworICAg
ICAgdGhpcy5fb0RyYXdpbmcubWFrZUltYWdlKCkKKyAgICB9CisgIH0KKworICAvKioKKyAgICog
Q2xlYXIgdGhlIFFSQ29kZQorICAgKi8KKyAgUVJDb2RlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0
aW9uICgpIHsKKyAgICB0aGlzLl9vRHJhd2luZy5jbGVhcigpCisgIH0KKworICAvKioKKyAgICog
QG5hbWUgUVJDb2RlLkNvcnJlY3RMZXZlbAorICAgKi8KKyAgUVJDb2RlLkNvcnJlY3RMZXZlbCA9
IFFSRXJyb3JDb3JyZWN0TGV2ZWwKK30pKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3F1ZXJ5LXBhcnNl
ci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS93d3cvbGliL3F1ZXJ5LXBhcnNlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGFiODMzM2QyYjA5Y2Uy
YWM3OTlhZWQ0ZTM0NzNlYzAyMDI2NzRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvcXVlcnkt
cGFyc2VyLmpzCkBAIC0wLDAgKzEsMTIgQEAKK3ZhciBRdWVyeVBhcnNlciA9IHt9OworCitRdWVy
eVBhcnNlci5wYXJzZVF1ZXJ5ID0gZnVuY3Rpb24gKCkgeworICB2YXIgcXVlcnlQYXJhbWV0ZXJz
ID0ge307CisgIHZhciBrZXlzQW5kVmFsdWVzID0gbG9jYXRpb24uc2VhcmNoLnJlcGxhY2UoIj8i
LCAiIikuc3BsaXQoIiYiKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQW5kVmFsdWVzLmxl
bmd0aDsgaSsrKSB7CisgICAgdmFyIGtleSA9IGtleXNBbmRWYWx1ZXNbaV0uc3BsaXQoIj0iKVsw
XTsKKyAgICB2YXIgdmFsdWUgPSBrZXlzQW5kVmFsdWVzW2ldLnNwbGl0KCI9IilbMV07CisgICAg
cXVlcnlQYXJhbWV0ZXJzW2tleV0gPSB2YWx1ZTsKKyAgfQorICByZXR1cm4gcXVlcnlQYXJhbWV0
ZXJzOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3NjcmVlbi1jb25zb2xlLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvc2Ny
ZWVuLWNvbnNvbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUxM2I5NjNhNmMzNGMzZTEzYzg2NDBiY2ZjYWU5
ZDZhNTY0MGFjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3NjcmVlbi1jb25zb2xlLmpzCkBA
IC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIFNjcmVlbkNvbnNvbGUoZWxlbWVudCkgeworICB0aGlz
Ll9lbGVtZW50ID0gZWxlbWVudDsKK30KKworU2NyZWVuQ29uc29sZS5wcm90b3R5cGUubG9nID0g
ZnVuY3Rpb24gKCkgeworICB2YXIgdGV4dCA9ICIiOworICBmb3IgKHZhciBpID0gMDsgaSA8IGFy
Z3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgIHRleHQgKz0gYXJndW1lbnRzW2ldICsgIiAiOwor
ICB9CisgIGNvbnNvbGUubG9nKHRleHQpOworICB0aGlzLl9lbGVtZW50LmlubmVyVGV4dCArPSB0
ZXh0ICsgIlxuIjsKK307CisKK1NjcmVlbkNvbnNvbGUucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rp
b24gKCkgeworICB0aGlzLl9lbGVtZW50LmlubmVyVGV4dCA9ICIiOworfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvbGliL3VpLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvdWkuanMKaW5kZXggNjg0ZWQxODAwOWUzN2YzN2NmNTcwNTIw
N2EzZTI3ZTNhY2VlZTNhZS4uNGFiYmVjZTk4NWU0Mjg0ZWUwMjQ3NTIyNDhmM2UzMGZlODk4YjRk
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvdWkuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvdWkuanMKQEAgLTY4LDYgKzY4
LDkgQEAgY29uc3QgVUkgPSB7CiAgICAgICAgIGNhc2UgImNoZWNrZWQiOgogICAgICAgICAgIGlm
ICh2YWx1ZSkgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCB0cnVlKTsKICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIGNhc2UgImluZGV0ZXJtaW5hdGUiOgorICAgICAgICAgIGVsZW1l
bnQuaW5kZXRlcm1pbmF0ZSA9IHZhbHVlOworICAgICAgICAgIHJldHVybjsKICAgICAgIH0KICAg
ICB9KTsKICAgICByZXR1cm4gZWxlbWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
YXZlL3d3dy9saWIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGIzNWY0ZDkwOWRkN2RlYWUyYjY1YzZkZTFlZTVmMmM3MWZkOTlhNzQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9saWIvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi9rZXljb2Rlcy5qcwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvbGliL3VpLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvdXRpbHMuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi93YXZlLXNlcnZpY2UuanMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvbGliL3dhdmUtc2VydmljZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbGliL3dhdmUtc2VydmljZS5qcwpp
bmRleCBlNDIwMjkwZWJjNjIyNDQ0ZGU0YTI0ZDY2ZTkxN2JhOTEyMzVmNGEyLi5mN2E2MGUxNTNk
Yzc3ODMwNTBmNmI4MTNjMTMwMDcwMjgyNDhmYjk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L2xpYi93YXZlLXNl
cnZpY2UuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93YXZlL3d3dy9saWIvd2F2ZS1zZXJ2aWNlLmpzCkBAIC0xLDEzICsxLDEzIEBACiBm
dW5jdGlvbiBzZW5kUmVxdWVzdChtZXRob2QsIHVyaSwgaGVhZGVycywgZGF0YSwgb25TdWNjZXNz
LCBvbkVycm9yKSB7CiAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgeGhyLm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgIGlm
ICh4aHIuc3RhdHVzID09PSAyMDApIHsKICAgICAgIG9uU3VjY2Vzcyh4aHIucmVzcG9uc2UpOwog
ICAgIH0gZWxzZSB7CiAgICAgICBpZiAob25FcnJvcikgb25FcnJvcih4aHIuc3RhdHVzLCB4aHIu
cmVzcG9uc2UpOwogICAgIH0KICAgfTsKLSAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAg
eGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CiAgICAgaWYgKG9uRXJyb3IpIG9uRXJyb3IoKTsK
ICAgfTsKICAgeGhyLm9wZW4obWV0aG9kLCBXYXZlU2VydmljZS51cmlQcmVmaXggKyB1cmksIHRy
dWUpOwpAQCAtMTgsOSArMTgsOSBAQCBmdW5jdGlvbiBzZW5kUmVxdWVzdChtZXRob2QsIHVyaSwg
aGVhZGVycywgZGF0YSwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgIHJldHVybiB4aHI7CiB9CiAK
LXZhciBXRUJfUk9PVCA9ICJ7e1dFQl9ST09UfX0iCi12YXIgSFRUUF9QT1JUID0gInt7SFRUUF9Q
T1JUfX0iCi12YXIgSFRUUFNfUE9SVCA9ICJ7e0hUVFBTX1BPUlR9fSIKK3ZhciBXRUJfUk9PVCA9
ICJ7e1dFQl9ST09UfX0iOwordmFyIEhUVFBfUE9SVCA9ICJ7e0hUVFBfUE9SVH19IjsKK3ZhciBI
VFRQU19QT1JUID0gInt7SFRUUFNfUE9SVH19IjsKIHZhciBPUEVOID0gIm9wZW4iOwogdmFyIENM
T1NFRCA9ICJjbG9zZWQiOwogCkBAIC0yOCw0MiArMjgsNDIgQEAgdmFyIFdhdmVTZXJ2aWNlID0g
ewogICB1cmlQcmVmaXg6IFdFQl9ST09ULAogICBzb2NrZXQ6IHsKICAgICBzdGF0ZTogQ0xPU0VE
LAotICAgIG9uTWVzc2FnZTogZnVuY3Rpb24oKSB7fSwKLSAgICBvbk9wZW46IGZ1bmN0aW9uKCkg
e30sCi0gICAgb25DbG9zZTogZnVuY3Rpb24oKSB7fSwKLSAgICBzZW5kOiBmdW5jdGlvbigpIHt9
LAotICAgIGNsb3NlOiBmdW5jdGlvbigpIHt9LAotICAgIG9uU3RhdGVDaGFuZ2U6IGZ1bmN0aW9u
KCkge30KKyAgICBvbk1lc3NhZ2U6IGZ1bmN0aW9uICgpIHt9LAorICAgIG9uT3BlbjogZnVuY3Rp
b24gKCkge30sCisgICAgb25DbG9zZTogZnVuY3Rpb24gKCkge30sCisgICAgc2VuZDogZnVuY3Rp
b24gKCkge30sCisgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHt9LAorICAgIG9uU3RhdGVDaGFuZ2U6
IGZ1bmN0aW9uICgpIHt9LAogICB9LAogICAvLyBTRVNTSU9OUyBBUEkKLSAgY3JlYXRlU2Vzc2lv
bjogZnVuY3Rpb24oY29uZmlndXJhdGlvbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIGNyZWF0
ZVNlc3Npb246IGZ1bmN0aW9uIChjb25maWd1cmF0aW9uLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsK
ICAgICB2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KHsKICAgICAgIHRlc3RzOiBjb25maWd1cmF0
aW9uLnRlc3RzLAogICAgICAgdHlwZXM6IGNvbmZpZ3VyYXRpb24udHlwZXMsCiAgICAgICB0aW1l
b3V0czogY29uZmlndXJhdGlvbi50aW1lb3V0cywKICAgICAgIHJlZmVyZW5jZV90b2tlbnM6IGNv
bmZpZ3VyYXRpb24ucmVmZXJlbmNlVG9rZW5zLAogICAgICAgZXhwaXJhdGlvbl9kYXRlOiBjb25m
aWd1cmF0aW9uLmV4cGlyYXRpb25EYXRlLAotICAgICAgbGFiZWxzOiBjb25maWd1cmF0aW9uLmxh
YmVscworICAgICAgbGFiZWxzOiBjb25maWd1cmF0aW9uLmxhYmVscywKICAgICB9KTsKICAgICBz
ZW5kUmVxdWVzdCgKICAgICAgICJQT1NUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMiLAogICAgICAg
eyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICAgICBkYXRhLAotICAg
ICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAg
ICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1
Y2Nlc3MoanNvbk9iamVjdC50b2tlbik7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7
CiAgIH0sCi0gIHJlYWRTZXNzaW9uOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9y
KSB7CisgIHJlYWRTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikg
ewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdFVCIsCiAgICAgICAiYXBpL3Nlc3Npb25zLyIg
KyB0b2tlbiwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2YXIganNvbk9iamVj
dCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1Y2Nlc3MoewogICAgICAgICAg
IHRva2VuOiBqc29uT2JqZWN0LnRva2VuLApAQCAtNzUsMTQgKzc1LDEyIEBAIHZhciBXYXZlU2Vy
dmljZSA9IHsKICAgICAgICAgICBicm93c2VyOiBqc29uT2JqZWN0LmJyb3dzZXIsCiAgICAgICAg
ICAgaXNQdWJsaWM6IGpzb25PYmplY3QuaXNfcHVibGljLAogICAgICAgICAgIHJlZmVyZW5jZVRv
a2VuczoganNvbk9iamVjdC5yZWZlcmVuY2VfdG9rZW5zLAotICAgICAgICAgIHdlYmhvb2tVcmxz
OiBqc29uT2JqZWN0LndlYmhvb2tfdXJscywKLSAgICAgICAgICBleHBpcmF0aW9uRGF0ZToganNv
bk9iamVjdC5leHBpcmF0aW9uX2RhdGUKICAgICAgICAgfSk7CiAgICAgICB9LAogICAgICAgb25F
cnJvcgogICAgICk7CiAgIH0sCi0gIHJlYWRNdWx0aXBsZVNlc3Npb25zOiBmdW5jdGlvbih0b2tl
bnMsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICByZWFkTXVsdGlwbGVTZXNzaW9uczogZnVuY3Rp
b24gKHRva2Vucywgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgdmFyIHJlcXVlc3RzTGVmdCA9
IHRva2Vucy5sZW5ndGg7CiAgICAgaWYgKHJlcXVlc3RzTGVmdCA9PT0gMCkgb25TdWNjZXNzKFtd
KTsKICAgICB2YXIgY29uZmlndXJhdGlvbnMgPSBbXTsKQEAgLTkwLDEyICs4OCwxMiBAQCB2YXIg
V2F2ZVNlcnZpY2UgPSB7CiAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnNbaV07CiAgICAgICBXYXZl
U2VydmljZS5yZWFkU2Vzc2lvbigKICAgICAgICAgdG9rZW4sCi0gICAgICAgIGZ1bmN0aW9uKGNv
bmZpZ3VyYXRpb24pIHsKKyAgICAgICAgZnVuY3Rpb24gKGNvbmZpZ3VyYXRpb24pIHsKICAgICAg
ICAgICByZXF1ZXN0c0xlZnQtLTsKICAgICAgICAgICBjb25maWd1cmF0aW9ucy5wdXNoKGNvbmZp
Z3VyYXRpb24pOwogICAgICAgICAgIGlmIChyZXF1ZXN0c0xlZnQgPT09IDApIG9uU3VjY2Vzcyhj
b25maWd1cmF0aW9ucyk7CiAgICAgICAgIH0sCi0gICAgICAgIGZ1bmN0aW9uKHN0YXR1cykgewor
ICAgICAgICBmdW5jdGlvbiAoc3RhdHVzKSB7CiAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA0
KSByZXF1ZXN0c0xlZnQtLTsKICAgICAgICAgICBpZiAoc3RhdHVzICE9PSA0MDQgJiYgb25FcnJv
cikgb25FcnJvcigpOwogICAgICAgICAgIGlmIChyZXF1ZXN0c0xlZnQgPT09IDApIG9uU3VjY2Vz
cyhjb25maWd1cmF0aW9ucyk7CkBAIC0xMDMsMjkgKzEwMSw0MiBAQCB2YXIgV2F2ZVNlcnZpY2Ug
PSB7CiAgICAgICApOwogICAgIH0KICAgfSwKLSAgcmVhZFNlc3Npb25TdGF0dXM6IGZ1bmN0aW9u
KHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVhZFNlc3Npb25TdGF0dXM6IGZ1bmN0
aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAg
ICAiR0VUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIHRva2VuICsgIi9zdGF0dXMiLAogICAg
ICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciBqc29uT2JqZWN0ID0gSlNPTi5wYXJz
ZShyZXNwb25zZSk7CisgICAgICAgIHZhciBkYXRlU3RhcnRlZCA9IG51bGw7CisgICAgICAgIGlm
IChqc29uT2JqZWN0LmRhdGVfc3RhcnRlZCkgeworICAgICAgICAgIGRhdGVTdGFydGVkID0gbmV3
IERhdGUoanNvbk9iamVjdC5kYXRlX3N0YXJ0ZWQpOworICAgICAgICB9CisgICAgICAgIHZhciBk
YXRlRmluaXNoZWQgPSBudWxsOworICAgICAgICBpZiAoanNvbk9iamVjdC5kYXRlX2ZpbmlzaGVk
KSB7CisgICAgICAgICAgZGF0ZUZpbmlzaGVkID0gbmV3IERhdGUoanNvbk9iamVjdC5kYXRlX2Zp
bmlzaGVkKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgZXhwaXJhdGlvbkRhdGUgPSBudWxsOwor
ICAgICAgICBpZiAoanNvbk9iamVjdC5leHBpcmF0aW9uX2RhdGUpIHsKKyAgICAgICAgICBleHBp
cmF0aW9uRGF0ZSA9IG5ldyBEYXRlKGpzb25PYmplY3QuZXhwaXJhdGlvbl9kYXRlKTsKKyAgICAg
ICAgfQogICAgICAgICBvblN1Y2Nlc3MoewogICAgICAgICAgIHRva2VuOiBqc29uT2JqZWN0LnRv
a2VuLAotICAgICAgICAgIGRhdGVTdGFydGVkOiBqc29uT2JqZWN0LmRhdGVfc3RhcnRlZCwKLSAg
ICAgICAgICBkYXRlRmluaXNoZWQ6IGpzb25PYmplY3QuZGF0ZV9maW5pc2hlZCwKKyAgICAgICAg
ICBkYXRlU3RhcnRlZDogZGF0ZVN0YXJ0ZWQsCisgICAgICAgICAgZGF0ZUZpbmlzaGVkOiBkYXRl
RmluaXNoZWQsCiAgICAgICAgICAgdGVzdEZpbGVzQ291bnQ6IGpzb25PYmplY3QudGVzdF9maWxl
c19jb3VudCwKICAgICAgICAgICB0ZXN0RmlsZXNDb21wbGV0ZWQ6IGpzb25PYmplY3QudGVzdF9m
aWxlc19jb21wbGV0ZWQsCi0gICAgICAgICAgc3RhdHVzOiBqc29uT2JqZWN0LnN0YXR1cworICAg
ICAgICAgIHN0YXR1czoganNvbk9iamVjdC5zdGF0dXMsCisgICAgICAgICAgZXhwaXJhdGlvbkRh
dGU6IGV4cGlyYXRpb25EYXRlLAogICAgICAgICB9KTsKICAgICAgIH0sCi0gICAgICBmdW5jdGlv
bigpIHsKKyAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaWYgKG9uRXJyb3IpIG9uRXJyb3Io
KTsKICAgICAgIH0KICAgICApOwogICB9LAotICByZWFkTXVsdGlwbGVTZXNzaW9uU3RhdHVzZXM6
IGZ1bmN0aW9uKHRva2Vucywgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHJlYWRNdWx0aXBsZVNl
c3Npb25TdGF0dXNlczogZnVuY3Rpb24gKHRva2Vucywgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAg
ICAgdmFyIHJlcXVlc3RzTGVmdCA9IHRva2Vucy5sZW5ndGg7CiAgICAgaWYgKHJlcXVlc3RzTGVm
dCA9PT0gMCkgb25TdWNjZXNzKFtdKTsKICAgICB2YXIgc3RhdHVzZXMgPSBbXTsKQEAgLTEzMywx
MzQgKzE0NCwxMzUgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgdmFyIHRva2VuID0gdG9r
ZW5zW2ldOwogICAgICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb25TdGF0dXMoCiAgICAgICAgIHRv
a2VuLAotICAgICAgICBmdW5jdGlvbihzdGF0dXMpIHsKKyAgICAgICAgZnVuY3Rpb24gKHN0YXR1
cykgewogICAgICAgICAgIHJlcXVlc3RzTGVmdC0tOwogICAgICAgICAgIHN0YXR1c2VzLnB1c2go
c3RhdHVzKTsKICAgICAgICAgICBpZiAocmVxdWVzdHNMZWZ0ID09PSAwKSBvblN1Y2Nlc3Moc3Rh
dHVzZXMpOwogICAgICAgICB9LAotICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgZnVuY3Rp
b24gKCkgewogICAgICAgICAgIHJlcXVlc3RzTGVmdC0tOwogICAgICAgICAgIGlmIChyZXF1ZXN0
c0xlZnQgPT09IDApIG9uU3VjY2VzcyhzdGF0dXNlcyk7CiAgICAgICAgIH0KICAgICAgICk7CiAg
ICAgfQogICB9LAotICByZWFkUHVibGljU2Vzc2lvbnM6IGZ1bmN0aW9uKG9uU3VjY2Vzcywgb25F
cnJvcikgeworICByZWFkUHVibGljU2Vzc2lvbnM6IGZ1bmN0aW9uIChvblN1Y2Nlc3MsIG9uRXJy
b3IpIHsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJHRVQiLAogICAgICAgImFwaS9zZXNzaW9u
cy9wdWJsaWMiLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciBqc29uT2Jq
ZWN0ID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgIG9uU3VjY2Vzcyhqc29uT2JqZWN0
KTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwKLSAgdXBkYXRlU2Vzc2lv
bjogZnVuY3Rpb24odG9rZW4sIGNvbmZpZ3VyYXRpb24sIG9uU3VjY2Vzcywgb25FcnJvcikgewor
ICB1cGRhdGVTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4sIGNvbmZpZ3VyYXRpb24sIG9uU3VjY2Vz
cywgb25FcnJvcikgewogICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoewogICAgICAgdGVz
dHM6IGNvbmZpZ3VyYXRpb24udGVzdHMsCiAgICAgICB0eXBlczogY29uZmlndXJhdGlvbi50eXBl
cywKICAgICAgIHRpbWVvdXRzOiBjb25maWd1cmF0aW9uLnRpbWVvdXRzLAogICAgICAgcmVmZXJl
bmNlX3Rva2VuczogY29uZmlndXJhdGlvbi5yZWZlcmVuY2VUb2tlbnMsCi0gICAgICBleHBpcmF0
aW9uX2RhdGU6IGNvbmZpZ3VyYXRpb24uZXhwaXJhdGlvbkRhdGUKKyAgICAgIGV4cGlyYXRpb25f
ZGF0ZTogY29uZmlndXJhdGlvbi5leHBpcmF0aW9uRGF0ZSwKKyAgICAgIHR5cGU6IGNvbmZpZ3Vy
YXRpb24udHlwZSwKICAgICB9KTsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJQVVQiLAogICAg
ICAgImFwaS9zZXNzaW9ucy8iICsgdG9rZW4sCiAgICAgICB7ICJDb250ZW50LVR5cGUiOiAiYXBw
bGljYXRpb24vanNvbiIgfSwKICAgICAgIGRhdGEsCi0gICAgICBmdW5jdGlvbigpIHsKKyAgICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAgICAgICB9LAogICAgICAgb25F
cnJvcgogICAgICk7CiAgIH0sCi0gIHVwZGF0ZUxhYmVsczogZnVuY3Rpb24odG9rZW4sIGxhYmVs
cywgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHVwZGF0ZUxhYmVsczogZnVuY3Rpb24gKHRva2Vu
LCBsYWJlbHMsIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHZhciBkYXRhID0gSlNPTi5zdHJp
bmdpZnkoeyBsYWJlbHM6IGxhYmVscyB9KTsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJQVVQi
LAogICAgICAgImFwaS9zZXNzaW9ucy8iICsgdG9rZW4gKyAiL2xhYmVscyIsCiAgICAgICB7ICJD
b250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgIGRhdGEsCi0gICAgICBm
dW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgaWYgKG9uU3VjY2Vzcykg
b25TdWNjZXNzKCk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7CiAgIH0sCi0gIGZp
bmRUb2tlbjogZnVuY3Rpb24oZnJhZ21lbnQsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICBmaW5k
VG9rZW46IGZ1bmN0aW9uIChmcmFnbWVudCwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2Vu
ZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIGZyYWdtZW50
LAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNwb25zZSkgewor
ICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciBqc29uT2JqZWN0ID0gSlNP
Ti5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgIG9uU3VjY2Vzcyhqc29uT2JqZWN0LnRva2VuKTsK
ICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwKLSAgc3RhcnRTZXNzaW9uOiBm
dW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHN0YXJ0U2Vzc2lvbjogZnVu
Y3Rpb24gKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICBzZW5kUmVxdWVzdCgKICAg
ICAgICJQT1NUIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIHRva2VuICsgIi9zdGFydCIsCiAg
ICAgICBudWxsLAogICAgICAgbnVsbCwKLSAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgZnVuY3Rp
b24gKCkgewogICAgICAgICBvblN1Y2Nlc3MoKTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAg
ICAgKTsKICAgfSwKLSAgcGF1c2VTZXNzaW9uOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBv
bkVycm9yKSB7CisgIHBhdXNlU2Vzc2lvbjogZnVuY3Rpb24gKHRva2VuLCBvblN1Y2Nlc3MsIG9u
RXJyb3IpIHsKICAgICBzZW5kUmVxdWVzdCgKICAgICAgICJQT1NUIiwKICAgICAgICJhcGkvc2Vz
c2lvbnMvIiArIHRva2VuICsgIi9wYXVzZSIsCiAgICAgICBudWxsLAogICAgICAgbnVsbCwKLSAg
ICAgIGZ1bmN0aW9uKCkgeworICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICBvblN1Y2Nlc3Mo
KTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwKLSAgc3RvcFNlc3Npb246
IGZ1bmN0aW9uKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgc3RvcFNlc3Npb246IGZ1
bmN0aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAg
ICAgICAiUE9TVCIsCiAgICAgICAiYXBpL3Nlc3Npb25zLyIgKyB0b2tlbiArICIvc3RvcCIsCiAg
ICAgICBudWxsLAogICAgICAgbnVsbCwKLSAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgZnVuY3Rp
b24gKCkgewogICAgICAgICBvblN1Y2Nlc3MoKTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAg
ICAgKTsKICAgfSwKLSAgcmVzdW1lU2Vzc2lvbjogZnVuY3Rpb24odG9rZW4sIHJlc3VtZVRva2Vu
LCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgcmVzdW1lU2Vzc2lvbjogZnVuY3Rpb24gKHRva2Vu
LCByZXN1bWVUb2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgdmFyIGRhdGEgPSBKU09O
LnN0cmluZ2lmeSh7IHJlc3VtZV90b2tlbjogcmVzdW1lVG9rZW4gfSk7CiAgICAgc2VuZFJlcXVl
c3QoCiAgICAgICAiUE9TVCIsCiAgICAgICAiYXBpL3Nlc3Npb25zLyIgKyB0b2tlbiArICIvcmVz
dW1lIiwKICAgICAgIHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNhdGlvbi9qc29uIiB9LAogICAg
ICAgZGF0YSwKLSAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgZnVuY3Rpb24gKCkgewogICAgICAg
ICBpZiAob25TdWNjZXNzKSBvblN1Y2Nlc3MoKTsKICAgICAgIH0sCi0gICAgICBmdW5jdGlvbihy
ZXNwb25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIGlmIChvbkVy
cm9yKSBvbkVycm9yKHJlc3BvbnNlKTsKICAgICAgIH0KICAgICApOwogICB9LAotICBkZWxldGVT
ZXNzaW9uOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgIGRlbGV0ZVNl
c3Npb246IGZ1bmN0aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAgc2VuZFJl
cXVlc3QoCiAgICAgICAiREVMRVRFIiwKICAgICAgICJhcGkvc2Vzc2lvbnMvIiArIHRva2VuLAog
ICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgpA
QCAtMjY4LDIwICsyODAsMzMgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICB9LAogCiAgIC8vIFRF
U1RTIEFQSQotICByZWFkTmV4dFRlc3Q6IGZ1bmN0aW9uKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJy
b3IpIHsKKyAgcmVhZFRlc3RMaXN0OiBmdW5jdGlvbiAob25TdWNjZXNzLCBvbkVycm9yKSB7Cisg
ICAgc2VuZFJlcXVlc3QoCisgICAgICAiR0VUIiwKKyAgICAgICJhcGkvdGVzdHMiLAorICAgICAg
bnVsbCwKKyAgICAgIG51bGwsCisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAg
dmFyIGpzb25PYmplY3QgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKKyAgICAgICAgb25TdWNjZXNz
KGpzb25PYmplY3QpOworICAgICAgfSwKKyAgICAgIG9uRXJyb3IKKyAgICApOworICB9LAorICBy
ZWFkTmV4dFRlc3Q6IGZ1bmN0aW9uICh0b2tlbiwgb25TdWNjZXNzLCBvbkVycm9yKSB7CiAgICAg
c2VuZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKICAgICAgICJhcGkvdGVzdHMvIiArIHRva2VuICsg
Ii9uZXh0IiwKICAgICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2YXIganNvbk9iamVj
dCA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdC5u
ZXh0X3Rlc3QpOwogICAgICAgfSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFk
TGFzdENvbXBsZXRlZFRlc3RzOiBmdW5jdGlvbih0b2tlbiwgcmVzdWx0VHlwZXMsIG9uU3VjY2Vz
cywgb25FcnJvcikgeworICByZWFkTGFzdENvbXBsZXRlZFRlc3RzOiBmdW5jdGlvbiAodG9rZW4s
IHJlc3VsdFR5cGVzLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICB2YXIgc3RhdHVzID0gIiI7
CiAgICAgaWYgKHJlc3VsdFR5cGVzKSB7CiAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3Vs
dFR5cGVzLmxlbmd0aDsgaSsrKSB7CkBAIC0yOTQsNyArMzE5LDcgQEAgdmFyIFdhdmVTZXJ2aWNl
ID0gewogICAgICAgImFwaS90ZXN0cy8iICsgdG9rZW4gKyAiL2xhc3RfY29tcGxldGVkP3N0YXR1
cz0iICsgc3RhdHVzLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihy
ZXNwb25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIHZhciB0ZXN0
cyA9IEpTT04ucGFyc2UocmVzcG9uc2UpOwogICAgICAgICB2YXIgcGFyc2VkVGVzdHMgPSBbXTsK
ICAgICAgICAgZm9yICh2YXIgc3RhdHVzIGluIHRlc3RzKSB7CkBAIC0zMDgsMjMgKzMzMywyMyBA
QCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAgICBvbkVycm9yCiAgICAgKTsKICAgfSwKLSAgcmVh
ZE1hbGZ1bmN0aW9uaW5nVGVzdHM6IGZ1bmN0aW9uKHRva2VuLCBvblN1Y2Nlc3MsIG9uRXJyb3Ip
IHsKKyAgcmVhZE1hbGZ1bmN0aW9uaW5nVGVzdHM6IGZ1bmN0aW9uICh0b2tlbiwgb25TdWNjZXNz
LCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKICAgICAgICJhcGkv
dGVzdHMvIiArIHRva2VuICsgIi9tYWxmdW5jdGlvbmluZyIsCiAgICAgICBudWxsLAogICAgICAg
bnVsbCwKLSAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKICAgICAgICAgdmFyIHRlc3RzID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAg
IG9uU3VjY2Vzcyh0ZXN0cyk7CiAgICAgICB9LAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsK
KyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0g
SlNPTi5wYXJzZShyZXNwb25zZSkuZXJyb3I7CiAgICAgICAgIG9uRXJyb3IoZXJyb3JNZXNzYWdl
KTsKICAgICAgIH0KICAgICApOwogICB9LAotICB1cGRhdGVNYWxmdW5jdGlvbmluZ1Rlc3RzOiBm
dW5jdGlvbigKKyAgdXBkYXRlTWFsZnVuY3Rpb25pbmdUZXN0czogZnVuY3Rpb24gKAogICAgIHRv
a2VuLAogICAgIG1hbGZ1bmN0aW9uaW5nVGVzdHMsCiAgICAgb25TdWNjZXNzLApAQCAtMzM2LDc0
ICszNjEsNzQgQEAgdmFyIFdhdmVTZXJ2aWNlID0gewogICAgICAgImFwaS90ZXN0cy8iICsgdG9r
ZW4gKyAiL21hbGZ1bmN0aW9uaW5nIiwKICAgICAgIHsgIkNvbnRlbnQtVHlwZSI6ICJhcHBsaWNh
dGlvbi9qc29uIiB9LAogICAgICAgZGF0YSwKLSAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgZnVu
Y3Rpb24gKCkgewogICAgICAgICBvblN1Y2Nlc3MoKTsKICAgICAgIH0sCi0gICAgICBmdW5jdGlv
bihyZXNwb25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIHZhciBl
cnJvck1lc3NhZ2UgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5lcnJvcjsKKyAgICAgICAgb25FcnJv
cihlcnJvck1lc3NhZ2UpOworICAgICAgfQorICAgICk7CisgIH0sCisgIHJlYWRBdmFpbGFibGVB
cGlzOiBmdW5jdGlvbiAob25TdWNjZXNzLCBvbkVycm9yKSB7CisgICAgc2VuZFJlcXVlc3QoCisg
ICAgICAiR0VUIiwKKyAgICAgICJhcGkvdGVzdHMvYXBpcyIsCisgICAgICBudWxsLAorICAgICAg
bnVsbCwKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICB2YXIgYXBpcyA9IEpT
T04ucGFyc2UocmVzcG9uc2UpOworICAgICAgICBvblN1Y2Nlc3MoYXBpcyk7CisgICAgICB9LAor
ICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIGlmICghb25FcnJvcikgcmV0dXJu
OwogICAgICAgICB2YXIgZXJyb3JNZXNzYWdlID0gSlNPTi5wYXJzZShyZXNwb25zZSkuZXJyb3I7
CiAgICAgICAgIG9uRXJyb3IoZXJyb3JNZXNzYWdlKTsKICAgICAgIH0KICAgICApOwogICB9LAot
CXJlYWRBdmFpbGFibGVBcGlzOiBmdW5jdGlvbihvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKLQkJc2Vu
ZFJlcXVlc3QoCi0JCQkiR0VUIiwKLQkJCSJhcGkvdGVzdHMvYXBpcyIsCi0JCQludWxsLAotCQkJ
bnVsbCwKLQkJCWZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0JCQkJdmFyIGFwaXMgPSBKU09OLnBhcnNl
KHJlc3BvbnNlKTsKLQkJCQlvblN1Y2Nlc3MoYXBpcyk7Ci0JCQl9LAotCQkJZnVuY3Rpb24ocmVz
cG9uc2UpIHsKLQkJCQlpZighb25FcnJvcikgcmV0dXJuOwotCQkJCXZhciBlcnJvck1lc3NhZ2Ug
PSBKU09OLnBhcnNlKHJlc3BvbnNlKS5lcnJvcjsKLQkJCQlvbkVycm9yKGVycm9yTWVzc2FnZSk7
Ci0JCQl9Ci0JCSk7Ci0JfSwKIAogICAvLyBSRVNVTFRTIEFQSQotICBjcmVhdGVSZXN1bHQ6IGZ1
bmN0aW9uKHRva2VuLCByZXN1bHQsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICBjcmVhdGVSZXN1
bHQ6IGZ1bmN0aW9uICh0b2tlbiwgcmVzdWx0LCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICBz
ZW5kUmVxdWVzdCgKICAgICAgICJQT1NUIiwKICAgICAgICJhcGkvcmVzdWx0cy8iICsgdG9rZW4s
CiAgICAgICB7ICJDb250ZW50LVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiIgfSwKICAgICAgIEpT
T04uc3RyaW5naWZ5KHJlc3VsdCksCi0gICAgICBmdW5jdGlvbigpIHsKKyAgICAgIGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgb25TdWNjZXNzKCk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAg
ICk7CiAgIH0sCi0gIHJlYWRSZXN1bHRzOiBmdW5jdGlvbih0b2tlbiwgb25TdWNjZXNzLCBvbkVy
cm9yKSB7CisgIHJlYWRSZXN1bHRzOiBmdW5jdGlvbiAodG9rZW4sIG9uU3VjY2Vzcywgb25FcnJv
cikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdFVCIsCiAgICAgICAiYXBpL3Jlc3VsdHMv
IiArIHRva2VuLAogICAgICAgbnVsbCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNw
b25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgIG9uU3VjY2VzcyhK
U09OLnBhcnNlKHJlc3BvbnNlKSk7CiAgICAgICB9LAogICAgICAgb25FcnJvcgogICAgICk7CiAg
IH0sCi0gIHJlYWRSZXN1bHRzQ29tcGFjdDogZnVuY3Rpb24odG9rZW4sIG9uU3VjY2Vzcywgb25F
cnJvcikgeworICByZWFkUmVzdWx0c0NvbXBhY3Q6IGZ1bmN0aW9uICh0b2tlbiwgb25TdWNjZXNz
LCBvbkVycm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKICAgICAgICJhcGkv
cmVzdWx0cy8iICsgdG9rZW4gKyAiL2NvbXBhY3QiLAogICAgICAgbnVsbCwKICAgICAgIG51bGws
Ci0gICAgICBmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgZnVuY3Rpb24gKHJlc3BvbnNlKSB7
CiAgICAgICAgIHZhciBqc29uT2JqZWN0ID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAg
IG9uU3VjY2Vzcyhqc29uT2JqZWN0KTsKICAgICAgIH0sCiAgICAgICBvbkVycm9yCiAgICAgKTsK
ICAgfSwKLSAgcmVhZFJlc3VsdENvbXBhcmlzb246IGZ1bmN0aW9uKHRva2Vucywgb25TdWNjZXNz
LCBvbkVycm9yKSB7CisgIHJlYWRSZXN1bHRDb21wYXJpc29uOiBmdW5jdGlvbiAodG9rZW5zLCBv
blN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICB2YXIgY29tcGFyaXNvbiA9IHt9OwotICAgIHZhciBm
ZXRjaENvbXBsZXRlID0gZnVuY3Rpb24ocmVzdWx0cykgeworICAgIHZhciBmZXRjaENvbXBsZXRl
ID0gZnVuY3Rpb24gKHJlc3VsdHMpIHsKICAgICAgIGNvbXBhcmlzb24udG90YWwgPSB7fTsKICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykgewogICAgICAgICB2
YXIgcmVzdWx0ID0gcmVzdWx0c1tpXTsKQEAgLTQyOCwxNiArNDUzLDE2IEBAIHZhciBXYXZlU2Vy
dmljZSA9IHsKICAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dG9rZW5zLmxlbmd0aDsgaSsrKSB7CiAgICAgICB2YXIgdG9rZW4gPSB0b2tlbnNbaV07Ci0gICAg
ICAoZnVuY3Rpb24odG9rZW4pIHsKKyAgICAgIChmdW5jdGlvbiAodG9rZW4pIHsKICAgICAgICAg
V2F2ZVNlcnZpY2UucmVhZFJlc3VsdHNDb21wYWN0KAogICAgICAgICAgIHRva2VuLAotICAgICAg
ICAgIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGZ1bmN0aW9uIChyZXN1bHQpIHsKICAg
ICAgICAgICAgIHJlcXVlc3RzTGVmdC0tOwogICAgICAgICAgICAgcmVzdWx0LnRva2VuID0gdG9r
ZW47CiAgICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTsKICAgICAgICAgICAgIGlmIChy
ZXF1ZXN0c0xlZnQgPT09IDApIGZldGNoQ29tcGxldGUocmVzdWx0cyk7CiAgICAgICAgICAgfSwK
LSAgICAgICAgICBmdW5jdGlvbihyZXNwb25zZVN0YXR1cykgeworICAgICAgICAgIGZ1bmN0aW9u
IChyZXNwb25zZVN0YXR1cykgewogICAgICAgICAgICAgaWYgKHJlc3BvbnNlU3RhdHVzID09PSA0
MDQpIHJlcXVlc3RzTGVmdC0tOwogICAgICAgICAgICAgaWYgKHN0YXR1cyAhPT0gNDA0ICYmIG9u
RXJyb3IpIG9uRXJyb3IoKTsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0c0xlZnQgPT09IDApIGZl
dGNoQ29tcGxldGUocmVzdWx0cyk7CkBAIC00NDYsMjkgKzQ3MSwyOSBAQCB2YXIgV2F2ZVNlcnZp
Y2UgPSB7CiAgICAgICB9KSh0b2tlbik7CiAgICAgfQogICB9LAotICBkb3dubG9hZFJlc3VsdHM6
IGZ1bmN0aW9uKHRva2VuKSB7CisgIGRvd25sb2FkUmVzdWx0czogZnVuY3Rpb24gKHRva2VuKSB7
CiAgICAgbG9jYXRpb24uaHJlZiA9ICJhcGkvcmVzdWx0cy8iICsgdG9rZW4gKyAiL2V4cG9ydCI7
CiAgIH0sCi0gIGRvd25sb2FkQXBpUmVzdWx0OiBmdW5jdGlvbih0b2tlbiwgYXBpKSB7CisgIGRv
d25sb2FkQXBpUmVzdWx0OiBmdW5jdGlvbiAodG9rZW4sIGFwaSkgewogICAgIGxvY2F0aW9uLmhy
ZWYgPSAiYXBpL3Jlc3VsdHMvIiArIHRva2VuICsgIi8iICsgYXBpICsgIi9qc29uIjsKICAgfSwK
LSAgZG93bmxvYWRBbGxBcGlSZXN1bHRzOiBmdW5jdGlvbih0b2tlbiwgYXBpKSB7CisgIGRvd25s
b2FkQWxsQXBpUmVzdWx0czogZnVuY3Rpb24gKHRva2VuLCBhcGkpIHsKICAgICBsb2NhdGlvbi5o
cmVmID0gImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIvanNvbiI7CiAgIH0sCi0gIGRvd25sb2Fk
UmVwb3J0OiBmdW5jdGlvbih0b2tlbiwgYXBpKSB7CisgIGRvd25sb2FkUmVwb3J0OiBmdW5jdGlv
biAodG9rZW4sIGFwaSkgewogICAgIGxvY2F0aW9uLmhyZWYgPSAiYXBpL3Jlc3VsdHMvIiArIHRv
a2VuICsgIi8iICsgYXBpICsgIi9yZXBvcnQiOwogICB9LAotICBpbXBvcnRSZXN1bHRzOiBmdW5j
dGlvbihkYXRhLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgaW1wb3J0UmVzdWx0czogZnVuY3Rp
b24gKGRhdGEsIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAg
IlBPU1QiLAogICAgICAgImFwaS9yZXN1bHRzL2ltcG9ydCIsCiAgICAgICB7ICJDb250ZW50LVR5
cGUiOiAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiB9LAogICAgICAgZGF0YSwKLSAgICAgIGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAg
dmFyIHRva2VuID0gSlNPTi5wYXJzZShyZXNwb25zZSkudG9rZW47CiAgICAgICAgIG9uU3VjY2Vz
cyh0b2tlbik7CiAgICAgICB9LAotICAgICAgZnVuY3Rpb24oc3RhdHVzLCByZXNwb25zZSkgewor
ICAgICAgZnVuY3Rpb24gKHN0YXR1cywgcmVzcG9uc2UpIHsKICAgICAgICAgdmFyIGVycm9yTWVz
c2FnZTsKICAgICAgICAgaWYgKHN0YXR1cyA9PT0gNTAwKSB7CiAgICAgICAgICAgZXJyb3JNZXNz
YWdlID0gIkludGVybmFsIHNlcnZlciBlcnJvci4iOwpAQCAtNDc5LDU4ICs1MDQsMjEwIEBAIHZh
ciBXYXZlU2VydmljZSA9IHsKICAgICAgIH0KICAgICApOwogICB9LAotICByZWFkUmVzdWx0c0Nv
bmZpZzogZnVuY3Rpb24ob25TdWNjZXNzLCBvbkVycm9yKSB7CisgIHJlYWRSZXBvcnRVcmk6IGZ1
bmN0aW9uICh0b2tlbiwgYXBpLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKICAgICBzZW5kUmVxdWVz
dCgKICAgICAgICJHRVQiLAotICAgICAgImFwaS9yZXN1bHRzL2NvbmZpZyIsCisgICAgICAiYXBp
L3Jlc3VsdHMvIiArIHRva2VuICsgIi8iICsgYXBpICsgIi9yZXBvcnR1cmwiLAogICAgICAgbnVs
bCwKICAgICAgIG51bGwsCi0gICAgICBmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICB2YXIg
Y29uZmlnID0gSlNPTi5wYXJzZShyZXNwb25zZSk7Ci0gICAgICAgIG9uU3VjY2Vzcyh7Ci0JICAg
ICAgCWltcG9ydEVuYWJsZWQ6IGNvbmZpZy5pbXBvcnRfZW5hYmxlZCwKLQkgICAgICAJcmVwb3J0
c0VuYWJsZWQ6IGNvbmZpZy5yZXBvcnRzX2VuYWJsZWQKLQkgICAgICB9KTsKKyAgICAgIGZ1bmN0
aW9uIChyZXNwb25zZSkgeworICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFyc2UocmVz
cG9uc2UpOworICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdC51cmkpOwogICAgICAgfSwKICAg
ICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICByZWFkUmVwb3J0VXJpOiBmdW5jdGlvbih0b2tl
biwgYXBpLCBvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgZG93bmxvYWRNdWx0aVJlcG9ydDogZnVu
Y3Rpb24gKHRva2VucywgYXBpKSB7CisgICAgbG9jYXRpb24uaHJlZiA9ICJhcGkvcmVzdWx0cy8i
ICsgYXBpICsgIi9yZXBvcnQ/dG9rZW5zPSIgKyB0b2tlbnMuam9pbigiLCIpOworICB9LAorICBy
ZWFkTXVsdGlSZXBvcnRVcmk6IGZ1bmN0aW9uICh0b2tlbnMsIGFwaSwgb25TdWNjZXNzLCBvbkVy
cm9yKSB7CiAgICAgc2VuZFJlcXVlc3QoCiAgICAgICAiR0VUIiwKLSAgICAgICJhcGkvcmVzdWx0
cy8iICsgdG9rZW4gKyAiLyIgKyBhcGkgKyAiL3JlcG9ydHVybCIsCisgICAgICAiYXBpL3Jlc3Vs
dHMvIiArIGFwaSArICIvcmVwb3J0dXJsP3Rva2Vucz0iICsgdG9rZW5zLmpvaW4oIiwiKSwKICAg
ICAgIG51bGwsCiAgICAgICBudWxsLAotICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAg
IGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICB2YXIganNvbk9iamVjdCA9IEpTT04ucGFy
c2UocmVzcG9uc2UpOwogICAgICAgICBvblN1Y2Nlc3MoanNvbk9iamVjdC51cmkpOwogICAgICAg
fSwKICAgICAgIG9uRXJyb3IKICAgICApOwogICB9LAotICBkb3dubG9hZE11bHRpUmVwb3J0OiBm
dW5jdGlvbih0b2tlbnMsIGFwaSkgewotICAgIGxvY2F0aW9uLmhyZWYgPQotICAgICAgImFwaS9y
ZXN1bHRzLyIgKyBhcGkgKyAiL3JlcG9ydD90b2tlbnM9IiArIHRva2Vucy5qb2luKCIsIik7Cisg
IGRvd25sb2FkUmVzdWx0c092ZXJ2aWV3OiBmdW5jdGlvbiAodG9rZW4pIHsKKyAgICBsb2NhdGlv
bi5ocmVmID0gImFwaS9yZXN1bHRzLyIgKyB0b2tlbiArICIvb3ZlcnZpZXciOwogICB9LAotICBy
ZWFkTXVsdGlSZXBvcnRVcmk6IGZ1bmN0aW9uKHRva2VucywgYXBpLCBvblN1Y2Nlc3MsIG9uRXJy
b3IpIHsKKworICAvLyBERVZJQ0VTIEFQSQorICBfZGV2aWNlX3Rva2VuOiBudWxsLAorICBfZGV2
aWNlRXZlbnRMaXN0ZW5lcnM6IHt9LAorICBfZGV2aWNlRXZlbnROdW1iZXJzOiB7fSwKKyAgcmVn
aXN0ZXJEZXZpY2U6IGZ1bmN0aW9uIChvblN1Y2Nlc3MsIG9uRXJyb3IpIHsKKyAgICBzZW5kUmVx
dWVzdCgKKyAgICAgICJQT1NUIiwKKyAgICAgICJhcGkvZGV2aWNlcyIsCisgICAgICBudWxsLAor
ICAgICAgbnVsbCwKKyAgICAgIGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICB2YXIgZGF0
YSA9IEpTT04ucGFyc2UocmVzcG9uc2UpOworICAgICAgICBXYXZlU2VydmljZS5fZGV2aWNlX3Rv
a2VuID0gZGF0YS50b2tlbjsKKyAgICAgICAgb25TdWNjZXNzKGRhdGEudG9rZW4pOworICAgICAg
fSwKKyAgICAgIG9uRXJyb3IKKyAgICApOworICB9LAorICByZWFkRGV2aWNlOiBmdW5jdGlvbiAo
dG9rZW4sIG9uU3VjY2Vzcywgb25FcnJvcikgewogICAgIHNlbmRSZXF1ZXN0KAogICAgICAgIkdF
VCIsCi0gICAgICAiYXBpL3Jlc3VsdHMvIiArIGFwaSArICIvcmVwb3J0dXJsP3Rva2Vucz0iICsg
dG9rZW5zLmpvaW4oIiwiKSwKKyAgICAgICJhcGkvZGV2aWNlcy8iICsgdG9rZW4sCiAgICAgICBu
dWxsLAogICAgICAgbnVsbCwKLSAgICAgIGZ1bmN0aW9uKHJlc3BvbnNlKSB7Ci0gICAgICAgIHZh
ciBqc29uT2JqZWN0ID0gSlNPTi5wYXJzZShyZXNwb25zZSk7Ci0gICAgICAgIG9uU3VjY2Vzcyhq
c29uT2JqZWN0LnVyaSk7CisgICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgaWYg
KCFvblN1Y2Nlc3MpIHJldHVybjsKKyAgICAgICAgdmFyIGRhdGEgPSBKU09OLnBhcnNlKHJlc3Bv
bnNlKTsKKyAgICAgICAgb25TdWNjZXNzKGRhdGEpOworICAgICAgfSwKKyAgICAgIGZ1bmN0aW9u
IChlcnJvcikgeworICAgICAgICBpZiAoIW9uRXJyb3IpIHJldHVybjsKKyAgICAgICAgb25FcnJv
cihlcnJvcik7CisgICAgICB9CisgICAgKTsKKyAgfSwKKyAgREVWSUNFX0FEREVEX0VWRU5UOiAi
ZGV2aWNlX2FkZGVkIiwKKyAgREVWSUNFX1JFTU9WRURfRVZFTlQ6ICJkZXZpY2VfcmVtb3ZlZCIs
CisgIFNUQVJUX1NFU1NJT046ICJzdGFydF9zZXNzaW9uIiwKKyAgYWRkRGV2aWNlRXZlbnRMaXN0
ZW5lcjogZnVuY3Rpb24gKHRva2VuLCBjYWxsYmFjaykgeworICAgIHZhciBsaXN0ZW5lcnMgPSBX
YXZlU2VydmljZS5fZGV2aWNlRXZlbnRMaXN0ZW5lcnM7CisgICAgaWYgKCFsaXN0ZW5lcnNbdG9r
ZW5dKSBsaXN0ZW5lcnNbdG9rZW5dID0gW107CisgICAgbGlzdGVuZXJzW3Rva2VuXS5wdXNoKGNh
bGxiYWNrKTsKKyAgICBXYXZlU2VydmljZS5fZGV2aWNlRXZlbnRMaXN0ZW5lcnMgPSBsaXN0ZW5l
cnM7CisgICAgV2F2ZVNlcnZpY2UubGlzdGVuRGV2aWNlRXZlbnRzKHRva2VuKTsKKyAgfSwKKyAg
cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gKGNhbGxiYWNrKSB7CisgICAgdmFy
IGxpc3RlbmVycyA9IFdhdmVTZXJ2aWNlLl9kZXZpY2VFdmVudExpc3RlbmVyczsKKyAgICBmb3Ig
KHZhciB0b2tlbiBvZiBPYmplY3Qua2V5cyhsaXN0ZW5lcnMpKSB7CisgICAgICB2YXIgaW5kZXgg
PSBsaXN0ZW5lcnNbdG9rZW5dLmluZGV4T2YoY2FsbGJhY2spOworICAgICAgaWYgKGluZGV4ID09
PSAtMSkgY29udGludWU7CisgICAgICBsaXN0ZW5lcnNbdG9rZW5dLnNwbGljZShpbmRleCwgMSk7
CisgICAgICBicmVhazsKKyAgICB9CisgICAgV2F2ZVNlcnZpY2UuX2RldmljZUV2ZW50TGlzdGVu
ZXJzID0gbGlzdGVuZXJzOworICB9LAorICBsaXN0ZW5EZXZpY2VFdmVudHM6IGZ1bmN0aW9uICh0
b2tlbikgeworICAgIHZhciBsaXN0ZW5lcnMgPSBXYXZlU2VydmljZS5fZGV2aWNlRXZlbnRMaXN0
ZW5lcnM7CisgICAgaWYgKCFsaXN0ZW5lcnNbdG9rZW5dIHx8IGxpc3RlbmVycy5sZW5ndGggPT09
IDApIHJldHVybjsKKyAgICB2YXIgdXJsID0gImFwaS9kZXZpY2VzLyIgKyB0b2tlbiArICIvZXZl
bnRzIjsKKyAgICB2YXIgbGFzdEV2ZW50TnVtYmVyID0gV2F2ZVNlcnZpY2UuX2RldmljZUV2ZW50
TnVtYmVyc1t0b2tlbl07CisgICAgaWYgKGxhc3RFdmVudE51bWJlcikgeworICAgICAgdXJsICs9
ICI/bGFzdF9hY3RpdmU9IiArIGxhc3RFdmVudE51bWJlcjsKKyAgICB9CisgICAgV2F2ZVNlcnZp
Y2UubGlzdGVuSHR0cFBvbGxpbmcoCisgICAgICB1cmwsCisgICAgICBmdW5jdGlvbiAocmVzcG9u
c2UpIHsKKyAgICAgICAgaWYgKCFyZXNwb25zZSkgeworICAgICAgICAgIFdhdmVTZXJ2aWNlLmxp
c3RlbkRldmljZUV2ZW50cyh0b2tlbik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIGZvciAodmFyIGxpc3RlbmVyIG9mIGxpc3RlbmVyc1t0b2tlbl0pIHsKKyAgICAgICAg
ICBsaXN0ZW5lcihyZXNwb25zZSk7CisgICAgICAgIH0KKyAgICAgICAgV2F2ZVNlcnZpY2UuX2Rl
dmljZUV2ZW50TnVtYmVyc1t0b2tlbl0gPSBsYXN0RXZlbnROdW1iZXI7CisgICAgICAgIFdhdmVT
ZXJ2aWNlLmxpc3RlbkRldmljZUV2ZW50cyh0b2tlbik7CiAgICAgICB9LAorICAgICAgZnVuY3Rp
b24gKCkgeworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBXYXZl
U2VydmljZS5saXN0ZW5EZXZpY2VFdmVudHMoKTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICB9
CisgICAgKTsKKyAgfSwKKyAgc2VuZERldmljZUV2ZW50OiBmdW5jdGlvbiAoZGV2aWNlX3Rva2Vu
LCBldmVudCwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgICAgdmFyIGRhdGEgPSBKU09OLnN0cmlu
Z2lmeSh7CisgICAgICB0eXBlOiBldmVudC50eXBlLAorICAgICAgZGF0YTogZXZlbnQuZGF0YSwK
KyAgICB9KTsKKyAgICBzZW5kUmVxdWVzdCgKKyAgICAgICJQT1NUIiwKKyAgICAgICJhcGkvZGV2
aWNlcy8iICsgZGV2aWNlX3Rva2VuICsgIi9ldmVudHMiLAorICAgICAgeyAiQ29udGVudC1UeXBl
IjogImFwcGxpY2F0aW9uL2pzb24iIH0sCisgICAgICBkYXRhLAorICAgICAgb25TdWNjZXNzLAog
ICAgICAgb25FcnJvcgogICAgICk7CiAgIH0sCi0gIGRvd25sb2FkUmVzdWx0c092ZXJ2aWV3OiBm
dW5jdGlvbih0b2tlbikgewotICAgIGxvY2F0aW9uLmhyZWYgPSAiYXBpL3Jlc3VsdHMvIiArIHRv
a2VuICsgIi9vdmVydmlldyI7CisgIGFkZEdsb2JhbERldmljZUV2ZW50TGlzdGVuZXI6IGZ1bmN0
aW9uIChjYWxsYmFjaykgeworICAgIFdhdmVTZXJ2aWNlLl9nbG9iYWxEZXZpY2VFdmVudExpc3Rl
bmVycy5wdXNoKGNhbGxiYWNrKTsKKyAgICBXYXZlU2VydmljZS5saXN0ZW5HbG9iYWxEZXZpY2VF
dmVudHMoKTsKKyAgfSwKKyAgcmVtb3ZlR2xvYmFsRGV2aWNlRXZlbnRMaXN0ZW5lcjogZnVuY3Rp
b24gKGNhbGxiYWNrKSB7CisgICAgdmFyIGluZGV4ID0gV2F2ZVNlcnZpY2UuX2dsb2JhbERldmlj
ZUV2ZW50TGlzdGVuZXJzLmluZGV4T2YoY2FsbGJhY2spOworICAgIFdhdmVTZXJ2aWNlLl9nbG9i
YWxEZXZpY2VFdmVudExpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpOworICB9LAorICBsaXN0ZW5H
bG9iYWxEZXZpY2VFdmVudHM6IGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgbGlzdGVuZXJzID0gV2F2
ZVNlcnZpY2UuX2dsb2JhbERldmljZUV2ZW50TGlzdGVuZXJzOworICAgIGlmIChsaXN0ZW5lcnMu
bGVuZ3RoID09PSAwKSByZXR1cm47CisgICAgdmFyIHF1ZXJ5ID0gIiI7CisgICAgaWYgKFdhdmVT
ZXJ2aWNlLl9kZXZpY2VfdG9rZW4pIHsKKyAgICAgIHF1ZXJ5ID0gIj9kZXZpY2VfdG9rZW49IiAr
IFdhdmVTZXJ2aWNlLl9kZXZpY2VfdG9rZW47CisgICAgfQorICAgIFdhdmVTZXJ2aWNlLmxpc3Rl
bkh0dHBQb2xsaW5nKAorICAgICAgImFwaS9kZXZpY2VzL2V2ZW50cyIgKyBxdWVyeSwKKyAgICAg
IGZ1bmN0aW9uIChyZXNwb25zZSkgeworICAgICAgICBpZiAoIXJlc3BvbnNlKSB7CisgICAgICAg
ICAgV2F2ZVNlcnZpY2UubGlzdGVuR2xvYmFsRGV2aWNlRXZlbnRzKCk7CisgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGxpc3RlbmVyIG9mIGxpc3RlbmVycykg
eworICAgICAgICAgIGxpc3RlbmVyKHJlc3BvbnNlKTsKKyAgICAgICAgfQorICAgICAgICBXYXZl
U2VydmljZS5saXN0ZW5HbG9iYWxEZXZpY2VFdmVudHMoKTsKKyAgICAgIH0sCisgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgIFdh
dmVTZXJ2aWNlLmxpc3Rlbkdsb2JhbERldmljZUV2ZW50cygpOworICAgICAgICB9LCAxMDAwKTsK
KyAgICAgIH0KKyAgICApOworICB9LAorICBzZW5kR2xvYmFsRGV2aWNlRXZlbnQ6IGZ1bmN0aW9u
IChldmVudCwgb25TdWNjZXNzLCBvbkVycm9yKSB7CisgICAgdmFyIGRhdGEgPSBKU09OLnN0cmlu
Z2lmeSh7CisgICAgICB0eXBlOiBldmVudC50eXBlLAorICAgICAgZGF0YTogZXZlbnQuZGF0YSwK
KyAgICB9KTsKKyAgICBzZW5kUmVxdWVzdCgKKyAgICAgICJQT1NUIiwKKyAgICAgICJhcGkvZGV2
aWNlcy9ldmVudHMiLAorICAgICAgeyAiQ29udGVudC1UeXBlIjogImFwcGxpY2F0aW9uL2pzb24i
IH0sCisgICAgICBkYXRhLAorICAgICAgb25TdWNjZXNzLAorICAgICAgb25FcnJvcgorICAgICk7
CisgIH0sCisKKyAgLy8gR0VORVJBTCBBUEkKKyAgcmVhZFN0YXR1czogZnVuY3Rpb24gKG9uU3Vj
Y2Vzcywgb25FcnJvcikgeworICAgIHNlbmRSZXF1ZXN0KAorICAgICAgIkdFVCIsCisgICAgICAi
YXBpL3N0YXR1cyIsCisgICAgICBudWxsLAorICAgICAgbnVsbCwKKyAgICAgIGZ1bmN0aW9uIChy
ZXNwb25zZSkgeworICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2UpOworICAg
ICAgICB2YXIgY29uZmlndXJhdGlvbiA9IHsKKyAgICAgICAgICByZWFkU2Vzc2lvbnNFbmFibGVk
OiBkYXRhLnJlYWRfc2Vzc2lvbnNfZW5hYmxlZCwKKyAgICAgICAgICBpbXBvcnRSZXN1bHRzRW5h
YmxlZDogZGF0YS5pbXBvcnRfcmVzdWx0c19lbmFibGVkLAorICAgICAgICAgIHJlcG9ydHNFbmFi
bGVkOiBkYXRhLnJlcG9ydHNfZW5hYmxlZCwKKyAgICAgICAgICB2ZXJzaW9uU3RyaW5nOiBkYXRh
LnZlcnNpb25fc3RyaW5nLAorICAgICAgICAgIHRlc3RUeXBlU2VsZWN0aW9uRW5hYmxlZDogZGF0
YS50ZXN0X3R5cGVfc2VsZWN0aW9uX2VuYWJsZWQsCisgICAgICAgICAgdGVzdEZpbGVTZWxlY3Rp
b25FbmFibGVkOiBkYXRhLnRlc3RfZmlsZV9zZWxlY3Rpb25fZW5hYmxlZAorICAgICAgICB9Owor
ICAgICAgICBvblN1Y2Nlc3MoY29uZmlndXJhdGlvbik7CisgICAgICB9LAorICAgICAgb25FcnJv
cgorICAgICk7CiAgIH0sCiAKICAgLy8gVVRJTElUWQotICBhZGRSZWNlbnRTZXNzaW9uOiBmdW5j
dGlvbih0b2tlbikgeworICBhZGRSZWNlbnRTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4pIHsKICAg
ICBpZiAoIXRva2VuKSByZXR1cm47CiAgICAgdmFyIHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3Rh
dGUoKTsKICAgICBpZiAoIXN0YXRlLnJlY2VudF9zZXNzaW9ucykgc3RhdGUucmVjZW50X3Nlc3Np
b25zID0gW107CkBAIC01MzgsMTggKzcxNSwxOCBAQCB2YXIgV2F2ZVNlcnZpY2UgPSB7CiAgICAg
c3RhdGUucmVjZW50X3Nlc3Npb25zLnVuc2hpZnQodG9rZW4pOwogICAgIFdhdmVTZXJ2aWNlLnNl
dFN0YXRlKHN0YXRlKTsKICAgfSwKLSAgYWRkUmVjZW50U2Vzc2lvbnM6IGZ1bmN0aW9uKHRva2Vu
cykgeworICBhZGRSZWNlbnRTZXNzaW9uczogZnVuY3Rpb24gKHRva2VucykgewogICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7CiAgICAgICB2YXIgdG9rZW4gPSB0
b2tlbnNbaV07CiAgICAgICBXYXZlU2VydmljZS5hZGRSZWNlbnRTZXNzaW9uKHRva2VuKTsKICAg
ICB9CiAgIH0sCi0gIGdldFBpbm5lZFNlc3Npb25zOiBmdW5jdGlvbigpIHsKKyAgZ2V0UGlubmVk
U2Vzc2lvbnM6IGZ1bmN0aW9uICgpIHsKICAgICB2YXIgc3RhdGUgPSBXYXZlU2VydmljZS5nZXRT
dGF0ZSgpOwogICAgIGlmICghc3RhdGUgfHwgIXN0YXRlLnBpbm5lZF9zZXNzaW9ucykgcmV0dXJu
IFtdOwogICAgIHJldHVybiBzdGF0ZS5waW5uZWRfc2Vzc2lvbnM7CiAgIH0sCi0gIGFkZFBpbm5l
ZFNlc3Npb246IGZ1bmN0aW9uKHRva2VuKSB7CisgIGFkZFBpbm5lZFNlc3Npb246IGZ1bmN0aW9u
ICh0b2tlbikgewogICAgIGlmICghdG9rZW4pIHJldHVybjsKICAgICB2YXIgc3RhdGUgPSBXYXZl
U2VydmljZS5nZXRTdGF0ZSgpOwogICAgIGlmICghc3RhdGUucGlubmVkX3Nlc3Npb25zKSBzdGF0
ZS5waW5uZWRfc2Vzc2lvbnMgPSBbXTsKQEAgLTU1NywxNyArNzM0LDE3IEBAIHZhciBXYXZlU2Vy
dmljZSA9IHsKICAgICBzdGF0ZS5waW5uZWRfc2Vzc2lvbnMudW5zaGlmdCh0b2tlbik7CiAgICAg
V2F2ZVNlcnZpY2Uuc2V0U3RhdGUoc3RhdGUpOwogICB9LAotICBnZXRSZWNlbnRTZXNzaW9uczog
ZnVuY3Rpb24oKSB7CisgIGdldFJlY2VudFNlc3Npb25zOiBmdW5jdGlvbiAoKSB7CiAgICAgdmFy
IHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3RhdGUoKTsKICAgICBpZiAoIXN0YXRlIHx8ICFzdGF0
ZS5yZWNlbnRfc2Vzc2lvbnMpIHJldHVybiBbXTsKICAgICByZXR1cm4gc3RhdGUucmVjZW50X3Nl
c3Npb25zOwogICB9LAotICBzZXRSZWNlbnRTZXNzaW9uczogZnVuY3Rpb24oc2Vzc2lvblRva2Vu
cykgeworICBzZXRSZWNlbnRTZXNzaW9uczogZnVuY3Rpb24gKHNlc3Npb25Ub2tlbnMpIHsKICAg
ICB2YXIgc3RhdGUgPSBXYXZlU2VydmljZS5nZXRTdGF0ZSgpOwogICAgIHN0YXRlLnJlY2VudF9z
ZXNzaW9ucyA9IHNlc3Npb25Ub2tlbnM7CiAgICAgV2F2ZVNlcnZpY2Uuc2V0U3RhdGUoc3RhdGUp
OwogICB9LAotICByZW1vdmVQaW5uZWRTZXNzaW9uOiBmdW5jdGlvbih0b2tlbikgeworICByZW1v
dmVQaW5uZWRTZXNzaW9uOiBmdW5jdGlvbiAodG9rZW4pIHsKICAgICBpZiAoIXRva2VuKSByZXR1
cm47CiAgICAgdmFyIHN0YXRlID0gV2F2ZVNlcnZpY2UuZ2V0U3RhdGUoKTsKICAgICBpZiAoIXN0
YXRlLnBpbm5lZF9zZXNzaW9ucykgcmV0dXJuOwpAQCAtNTc2LDcgKzc1Myw3IEBAIHZhciBXYXZl
U2VydmljZSA9IHsKICAgICBzdGF0ZS5waW5uZWRfc2Vzc2lvbnMuc3BsaWNlKGluZGV4LCAxKTsK
ICAgICBXYXZlU2VydmljZS5zZXRTdGF0ZShzdGF0ZSk7CiAgIH0sCi0gIHJlbW92ZVJlY2VudFNl
c3Npb246IGZ1bmN0aW9uKHRva2VuKSB7CisgIHJlbW92ZVJlY2VudFNlc3Npb246IGZ1bmN0aW9u
ICh0b2tlbikgewogICAgIHZhciBzdGF0ZSA9IFdhdmVTZXJ2aWNlLmdldFN0YXRlKCk7CiAgICAg
aWYgKCFzdGF0ZS5yZWNlbnRfc2Vzc2lvbnMpIHJldHVybjsKICAgICB2YXIgaW5kZXggPSBzdGF0
ZS5yZWNlbnRfc2Vzc2lvbnMuaW5kZXhPZih0b2tlbik7CkBAIC01ODQsOTEgKzc2MSwxMDYgQEAg
dmFyIFdhdmVTZXJ2aWNlID0gewogICAgIHN0YXRlLnJlY2VudF9zZXNzaW9ucy5zcGxpY2UoaW5k
ZXgsIDEpOwogICAgIFdhdmVTZXJ2aWNlLnNldFN0YXRlKHN0YXRlKTsKICAgfSwKLSAgZ2V0U3Rh
dGU6IGZ1bmN0aW9uKCkgeworICBnZXRTdGF0ZTogZnVuY3Rpb24gKCkgewogICAgIGlmICghd2lu
ZG93LmxvY2FsU3RvcmFnZSkgcmV0dXJuIG51bGw7CiAgICAgdmFyIHN0b3JhZ2UgPSB3aW5kb3cu
bG9jYWxTdG9yYWdlOwogICAgIHZhciBzdGF0ZSA9IEpTT04ucGFyc2Uoc3RvcmFnZS5nZXRJdGVt
KCJ3YXZlIikpOwogICAgIGlmICghc3RhdGUpIHJldHVybiB7fTsKICAgICByZXR1cm4gc3RhdGU7
CiAgIH0sCi0gIHNldFN0YXRlOiBmdW5jdGlvbihzdGF0ZSkgeworICBzZXRTdGF0ZTogZnVuY3Rp
b24gKHN0YXRlKSB7CiAgICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm4gbnVsbDsK
ICAgICB2YXIgc3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7CiAgICAgc3RvcmFnZS5zZXRJ
dGVtKCJ3YXZlIiwgSlNPTi5zdHJpbmdpZnkoc3RhdGUpKTsKICAgfSwKLSAgY29ubmVjdFdlYlNv
Y2tldDogZnVuY3Rpb24odG9rZW4pIHsKLSAgICB2YXIgcHJvdG9jb2w7Ci0gICAgaWYgKGxvY2F0
aW9uLnByb3RvY29sID09PSAiaHR0cHM6IikgewotICAgICAgcHJvdG9jb2wgPSAid3NzIjsKKyAg
X2dsb2JhbERldmljZUV2ZW50TGlzdGVuZXJzOiBbXSwKKyAgX3Nlc3Npb25FdmVudExpc3RlbmVy
czoge30sCisgIF9zZXNzaW9uRXZlbnROdW1iZXJzOiB7fSwKKyAgbGlzdGVuSHR0cFBvbGxpbmc6
IGZ1bmN0aW9uICh1cmwsIG9uU3VjY2Vzcywgb25FcnJvcikgeworICAgIHZhciB1bmlxdWVJZCA9
IG5ldyBEYXRlKCkuZ2V0VGltZSgpOworICAgIGlmICh1cmwuaW5kZXhPZigiPyIpID09PSAtMSkg
eworICAgICAgdXJsID0gdXJsICsgIj9pZD0iICsgdW5pcXVlSWQ7CiAgICAgfSBlbHNlIHsKLSAg
ICAgIHByb3RvY29sID0gIndzIjsKKyAgICAgIHVybCA9IHVybCArICImaWQ9IiArIHVuaXF1ZUlk
OwogICAgIH0KLSAgICB2YXIgdXJsID0gcHJvdG9jb2wgKyAiOi8vIiArIGxvY2F0aW9uLmhvc3Q7
Ci0gICAgY29uc29sZS5sb2coIkNvbm5lY3Rpbmcgd2ViIHNvY2tldCB0byIgKyB1cmwpOwotICAg
IHZhciB3ZWJTb2NrZXQgPSBuZXcgV2ViU29ja2V0KHVybCk7Ci0gICAgd2ViU29ja2V0Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKLSAgICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vbk1l
c3NhZ2UoSlNPTi5wYXJzZShtZXNzYWdlLmRhdGEpKTsKLSAgICB9OwotICAgIHdlYlNvY2tldC5v
bmNsb3NlID0gZnVuY3Rpb24oKSB7Ci0gICAgICBXYXZlU2VydmljZS5zb2NrZXQuc3RhdGUgPSBD
TE9TRUQ7Ci0gICAgICBXYXZlU2VydmljZS5zb2NrZXQub25TdGF0ZUNoYW5nZShDTE9TRUQpOwot
ICAgICAgV2F2ZVNlcnZpY2Uuc29ja2V0Lm9uQ2xvc2UoKTsKLSAgICB9OwotICAgIHdlYlNvY2tl
dC5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5zdGF0ZSA9
IE9QRU47Ci0gICAgICBXYXZlU2VydmljZS5zb2NrZXQub25TdGF0ZUNoYW5nZShPUEVOKTsKLSAg
ICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vbk9wZW4oKTsKLSAgICAgIHdlYlNvY2tldC5zZW5kKEpT
T04uc3RyaW5naWZ5KHsgdG9rZW46IHRva2VuIH0pKTsKLSAgICB9OwotICAgIFdhdmVTZXJ2aWNl
LnNvY2tldC5zZW5kID0gZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgd2ViU29ja2V0LnNlbmQo
bWVzc2FnZSk7Ci0gICAgfTsKLSAgICBXYXZlU2VydmljZS5zb2NrZXQuY2xvc2UgPSBmdW5jdGlv
bigpIHsKLSAgICAgIHdlYlNvY2tldC5jbG9zZSgpOwotICAgIH07Ci0gIH0sCi0gIGNvbm5lY3RI
dHRwUG9sbGluZzogZnVuY3Rpb24odG9rZW4pIHsKLQkJdmFyIHVuaXF1ZUlkID0gbmV3IERhdGUo
KS5nZXRUaW1lKCkKLSAgICB2YXIgcG9sbCA9IGZ1bmN0aW9uKCkgewotICAgICAgdmFyIHJlcXVl
c3QgPSBzZW5kUmVxdWVzdCgKLSAgICAgICAgIkdFVCIsCi0gICAgICAgICJhcGkvc2Vzc2lvbnMv
IiArIHRva2VuICsgIi9ldmVudHM/aWQ9IiArIHVuaXF1ZUlkLAotICAgICAgICBudWxsLAotICAg
ICAgICBudWxsLAotICAgICAgICBmdW5jdGlvbihyZXNwb25zZSkgewotICAgICAgICAgIGlmIChX
YXZlU2VydmljZS5zb2NrZXQuc3RhdGUgPT09IE9QRU4pIHBvbGwoKTsKLSAgICAgICAgICBXYXZl
U2VydmljZS5zb2NrZXQub25NZXNzYWdlKEpTT04ucGFyc2UocmVzcG9uc2UpKTsKLSAgICAgICAg
fSwKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgaWYgKFdhdmVTZXJ2aWNlLnNvY2tl
dC5zdGF0ZSA9PT0gT1BFTikgc2V0VGltZW91dChwb2xsLCAxMDAwKTsKKyAgICBzZW5kUmVxdWVz
dCgKKyAgICAgICJHRVQiLAorICAgICAgdXJsLAorICAgICAgbnVsbCwKKyAgICAgIG51bGwsCisg
ICAgICBmdW5jdGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgaWYgKCFyZXNwb25zZSkgeworICAg
ICAgICAgIG9uU3VjY2VzcyhudWxsKTsKKyAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICk7Ci0gICAgICBXYXZlU2VydmljZS5zb2NrZXQuY2xvc2UgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgcmVxdWVzdC5hYm9ydCgpOwotICAgICAgICBXYXZlU2VydmljZS5zb2NrZXQuc3RhdGUg
PSBDTE9TRUQ7Ci0gICAgICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vblN0YXRlQ2hhbmdlKENMT1NF
RCk7Ci0gICAgICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vbkNsb3NlKCk7Ci0gICAgICB9OwotICAg
IH07Ci0gICAgcG9sbCgpOwotICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5vbk9wZW4oKTsKLSAgICBX
YXZlU2VydmljZS5zb2NrZXQuc3RhdGUgPSBPUEVOOwotICAgIFdhdmVTZXJ2aWNlLnNvY2tldC5v
blN0YXRlQ2hhbmdlKE9QRU4pOwotICB9LAotICBjb25uZWN0OiBmdW5jdGlvbih0b2tlbikgewot
ICAgIGlmICh3aW5kb3cuV2ViU29ja2V0KSB7Ci0gICAgICBXYXZlU2VydmljZS5jb25uZWN0V2Vi
U29ja2V0KHRva2VuKTsKLSAgICB9IGVsc2UgewotICAgICAgV2F2ZVNlcnZpY2UuY29ubmVjdEh0
dHBQb2xsaW5nKHRva2VuKTsKLSAgICB9Ci0gIH0sCi0gIG9uTWVzc2FnZTogZnVuY3Rpb24oY2Fs
bGJhY2spIHsKLSAgICBXYXZlU2VydmljZS5zb2NrZXQub25NZXNzYWdlID0gY2FsbGJhY2s7Cisg
ICAgICAgIG9uU3VjY2VzcyhKU09OLnBhcnNlKHJlc3BvbnNlKSk7CisgICAgICB9LAorICAgICAg
b25FcnJvcgorICAgICk7CiAgIH0sCi0gIGlzQ29ubmVjdGVkOiBmdW5jdGlvbigpIHsKLSAgICBy
ZXR1cm4gV2F2ZVNlcnZpY2Uuc29ja2V0LnN0YXRlID09PSBPUEVOOworICBhZGRTZXNzaW9uRXZl
bnRMaXN0ZW5lcjogZnVuY3Rpb24gKHRva2VuLCBjYWxsYmFjaykgeworICAgIHZhciBsaXN0ZW5l
cnMgPSBXYXZlU2VydmljZS5fc2Vzc2lvbkV2ZW50TGlzdGVuZXJzOworICAgIGlmICghbGlzdGVu
ZXJzW3Rva2VuXSkgbGlzdGVuZXJzW3Rva2VuXSA9IFtdOworICAgIGlmIChsaXN0ZW5lcnNbdG9r
ZW5dLmluZGV4T2YoY2FsbGJhY2spID49IDApIHJldHVybjsKKyAgICBsaXN0ZW5lcnNbdG9rZW5d
LnB1c2goY2FsbGJhY2spOworICAgIFdhdmVTZXJ2aWNlLl9zZXNzaW9uRXZlbnRMaXN0ZW5lcnMg
PSBsaXN0ZW5lcnM7CisgICAgV2F2ZVNlcnZpY2UubGlzdGVuU2Vzc2lvbkV2ZW50cyh0b2tlbik7
CisgIH0sCisgIHJlbW92ZVNlc3Npb25FdmVudExpc3RlbmVyOiBmdW5jdGlvbiAoY2FsbGJhY2sp
IHsKKyAgICB2YXIgbGlzdGVuZXJzID0gV2F2ZVNlcnZpY2UuX3Nlc3Npb25FdmVudExpc3RlbmVy
czsKKyAgICBmb3IgKHZhciB0b2tlbiBvZiBPYmplY3Qua2V5cyhsaXN0ZW5lcnMpKSB7CisgICAg
ICB2YXIgaW5kZXggPSBsaXN0ZW5lcnNbdG9rZW5dLmluZGV4T2YoY2FsbGJhY2spOworICAgICAg
aWYgKGluZGV4ID09PSAtMSkgY29udGludWU7CisgICAgICBsaXN0ZW5lcnNbdG9rZW5dLnNwbGlj
ZShpbmRleCwgMSk7CisgICAgICBicmVhazsKKyAgICB9CisgICAgV2F2ZVNlcnZpY2UuX3Nlc3Np
b25FdmVudExpc3RlbmVycyA9IGxpc3RlbmVyczsKKyAgfSwKKyAgbGlzdGVuU2Vzc2lvbkV2ZW50
czogZnVuY3Rpb24gKHRva2VuKSB7CisgICAgdmFyIGxpc3RlbmVycyA9IFdhdmVTZXJ2aWNlLl9z
ZXNzaW9uRXZlbnRMaXN0ZW5lcnM7CisgICAgaWYgKCFsaXN0ZW5lcnNbdG9rZW5dIHx8IGxpc3Rl
bmVycy5sZW5ndGggPT09IDApIHJldHVybjsKKyAgICB2YXIgdXJsID0gImFwaS9zZXNzaW9ucy8i
ICsgdG9rZW4gKyAiL2V2ZW50cyI7CisgICAgdmFyIGxhc3RFdmVudE51bWJlciA9IFdhdmVTZXJ2
aWNlLl9zZXNzaW9uRXZlbnROdW1iZXJzW3Rva2VuXTsKKyAgICBpZiAobGFzdEV2ZW50TnVtYmVy
KSB7CisgICAgICB1cmwgKz0gIj9sYXN0X2V2ZW50PSIgKyBsYXN0RXZlbnROdW1iZXI7CisgICAg
fQorICAgIFdhdmVTZXJ2aWNlLmxpc3Rlbkh0dHBQb2xsaW5nKAorICAgICAgdXJsLAorICAgICAg
ZnVuY3Rpb24gKHJlc3BvbnNlKSB7CisgICAgICAgIGlmICghcmVzcG9uc2UpIHsKKyAgICAgICAg
ICBXYXZlU2VydmljZS5saXN0ZW5TZXNzaW9uRXZlbnRzKHRva2VuKTsKKyAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIGxhc3RFdmVudE51bWJlciA9IDA7CisgICAgICAg
IGZvciAodmFyIGxpc3RlbmVyIG9mIGxpc3RlbmVyc1t0b2tlbl0pIHsKKyAgICAgICAgICBmb3Ig
KHZhciBldmVudCBvZiByZXNwb25zZSkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm51bWJlciA+
IGxhc3RFdmVudE51bWJlcikgeworICAgICAgICAgICAgICBsYXN0RXZlbnROdW1iZXIgPSBldmVu
dC5udW1iZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0ZW5lcihldmVudCk7Cisg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFdhdmVTZXJ2aWNlLl9zZXNzaW9uRXZlbnRO
dW1iZXJzW3Rva2VuXSA9IGxhc3RFdmVudE51bWJlcjsKKyAgICAgICAgV2F2ZVNlcnZpY2UubGlz
dGVuU2Vzc2lvbkV2ZW50cyh0b2tlbik7CisgICAgICB9LAorICAgICAgZnVuY3Rpb24gKCkgewor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBXYXZlU2VydmljZS5s
aXN0ZW5TZXNzaW9uRXZlbnRzKCk7CisgICAgICAgIH0sIDEwMDApOworICAgICAgfQorICAgICk7
CiAgIH0sCi0gIG9wZW5TZXNzaW9uOiBmdW5jdGlvbih0b2tlbikgeworICBvcGVuU2Vzc2lvbjog
ZnVuY3Rpb24gKHRva2VuKSB7CiAgICAgbG9jYXRpb24uaHJlZiA9ICIvcmVzdWx0cy5odG1sP3Rv
a2VuPSIgKyB0b2tlbjsKLSAgfQorICB9LAogfTsKKworaWYgKCFPYmplY3Qua2V5cykKKyAgT2Jq
ZWN0LmtleXMgPSBmdW5jdGlvbiAobykgeworICAgIGlmIChvICE9PSBPYmplY3QobykpCisgICAg
ICB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3Qua2V5cyBjYWxsZWQgb24gYSBub24tb2JqZWN0
Iik7CisgICAgdmFyIGsgPSBbXSwKKyAgICAgIHA7CisgICAgZm9yIChwIGluIG8pIGlmIChPYmpl
Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywgcCkpIGsucHVzaChwKTsKKyAgICBy
ZXR1cm4gazsKKyAgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvbmV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9uZXh0Lmh0bWwKaW5k
ZXggMjc3ZjRhZmVkNjdmZTJhZTljMmNhMzg1MTEwZWY0NTlmZjdjZDU5Ny4uODQxMmI5MjM0ZmQ4
YTZkOTA4NTcyNDA0Njg2ZjJhZGZmNDM1MDU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9uZXh0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3d3dy9uZXh0Lmh0bWwKQEAgLTIsNDIgKzIsMzAgQEAKIDxodG1sPgogICA8aGVhZD4KICAgICA8
c2NyaXB0IHNyYz0ibGliL3dhdmUtc2VydmljZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9ImxpYi9zY3JlZW4tY29uc29sZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Imxp
Yi9xdWVyeS1wYXJzZXIuanMiPjwvc2NyaXB0PgogICA8L2hlYWQ+CiAgIDxib2R5PgotICAgIDxk
aXYgaWQ9ImNvbnNvbGUiIHN0eWxlPSJmb250LWZhbWlseTogbW9ub3NwYWNlOyBwYWRkaW5nOiA1
cHgiPjwvZGl2PgorICAgIDxwIGlkPSJjb25zb2xlIiBzdHlsZT0iZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsiPjwvcD4KICAgICA8c2NyaXB0PgotICAgICAgdmFyIHNjcmVlbkNvbnNvbGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgICAgdmFyIGxvZyA9IGZ1bmN0aW9u
KCkgewotICAgICAgICB2YXIgdGV4dCA9ICIiOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgIHRleHQgKz0gYXJndW1lbnRzW2ld
ICsgIiAiOwotICAgICAgICB9Ci0gICAgICAgIGNvbnNvbGUubG9nKHRleHQpOwotICAgICAgICB0
ZXh0ID0gdGV4dC5yZXBsYWNlKC8gL2dtLCAiJm5ic3A7Iik7Ci0gICAgICAgIHRleHQgPSB0ZXh0
LnJlcGxhY2UoL1xuL2dtLCAiPGJyLz4iKTsKLSAgICAgICAgc2NyZWVuQ29uc29sZS5pbm5lckhU
TUwgKz0gIjxici8+IiArIHRleHQ7Ci0gICAgICB9OwotCi0gICAgICB2YXIgSE9TVE5BTUUgPSBs
b2NhdGlvbi5ob3N0bmFtZTsKLSAgICAgIHZhciBQT1JUID0gbG9jYXRpb24ucG9ydDsKLSAgICAg
IHZhciBQUk9UT0NPTCA9IGxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoLzovLCAiIik7Ci0gICAg
ICB2YXIgUVVFUlkgPSBsb2NhdGlvbi5zZWFyY2gucmVwbGFjZSgvXD8vLCAiIik7Ci0gICAgICB2
YXIgbWF0Y2ggPSBRVUVSWS5tYXRjaCgvdG9rZW49KFteJl0rKS8pOwotICAgICAgdmFyIFRPS0VO
ID0gbWF0Y2ggPyBtYXRjaFsxXSA6IG51bGw7CisgICAgICB2YXIgY29uc29sZUVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgdmFyIHNjcmVlbkNvbnNv
bGUgPSBuZXcgU2NyZWVuQ29uc29sZShjb25zb2xlRWxlbWVudCk7CisgICAgICB2YXIgcXVlcnlQ
YXJhbWV0ZXJzID0gUXVlcnlQYXJzZXIucGFyc2VRdWVyeSgpOworICAgICAgdmFyIFRPS0VOID0g
cXVlcnlQYXJhbWV0ZXJzWyJ0b2tlbiJdOwogICAgICAgaWYgKFRPS0VOKQogICAgICAgICBkb2N1
bWVudC5jb29raWUgPQogICAgICAgICAgICJyZXN1bWVfdG9rZW49IiArIFRPS0VOICsgIjsgZXhw
aXJlcz1GcmksIDMxIERlYyA5OTk5IDIzOjU5OjU5IEdNVCI7CiAKLSAgICAgIGxvZygiTG9hZGlu
ZyBuZXh0IHRlc3QgLi4uIik7CisgICAgICBzY3JlZW5Db25zb2xlLmxvZygiTG9hZGluZyBuZXh0
IHRlc3QgLi4uIik7CiAKICAgICAgIFdhdmVTZXJ2aWNlLnJlYWROZXh0VGVzdCgKICAgICAgICAg
VE9LRU4sCi0gICAgICAgIGZ1bmN0aW9uKHVybCkgewotICAgICAgICAgIGxvZygiUmVkaXJlY3Rp
bmcgdG8gIiArIHVybCk7CisgICAgICAgIGZ1bmN0aW9uICh1cmwpIHsKKyAgICAgICAgICBzY3Jl
ZW5Db25zb2xlLmxvZygiUmVkaXJlY3RpbmcgdG8gIiArIHVybCk7CiAgICAgICAgICAgbG9jYXRp
b24uaHJlZiA9IHVybDsKICAgICAgICAgfSwKLSAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgbG9nKCJDb25uZWN0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgZnVuY3Rpb24gKCkgeworICAg
ICAgICAgIHNjcmVlbkNvbnNvbGUubG9nKCJDb25uZWN0aW9uIGZhaWxlZC4iKTsKICAgICAgICAg
fQogICAgICAgKTsKICAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvb3ZlcnZpZXcuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93
d3cvb3ZlcnZpZXcuaHRtbAppbmRleCBjYWJiMTU4NzExYTRhZGZhNzVlMGJjNDA0MzJkYWY2M2Ex
NDkwYWE5Li40OGVjM2EyNTE0YjIxYWI2ZDM3ZDI2Y2MzYWUyMTE3NThhNGUzNTI2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvd3d3L292ZXJ2aWV3Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9vdmVydmlldy5odG1sCkBAIC0xMjgsOCArMTI4
LDggQEAKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICk7CiAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFJlc3VsdHNDb25maWcoZnVuY3Rpb24oY29uZmlnKSB7
Ci0gICAgICAgICAgICByZXN1bHRzVWkuc3RhdGUuaW1wb3J0UmVzdWx0c0VuYWJsZWQgPSBjb25m
aWcuaW1wb3J0RW5hYmxlZDsKKyAgICAgICAgICBXYXZlU2VydmljZS5yZWFkU3RhdHVzKGZ1bmN0
aW9uKGNvbmZpZykgeworICAgICAgICAgICAgcmVzdWx0c1VpLnN0YXRlLmltcG9ydFJlc3VsdHNF
bmFibGVkID0gY29uZmlnLmltcG9ydFJlc3VsdHNFbmFibGVkOwogICAgICAgICAgICAgcmVzdWx0
c1VpLnN0YXRlLnJlcG9ydHNFbmFibGVkID0gY29uZmlnLnJlcG9ydHNFbmFibGVkOwogICAgICAg
ICAgICAgcmVzdWx0c1VpLnJlbmRlck1hbmFnZVNlc3Npb25zKCk7CiAgICAgICAgICAgfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dhdmUvd3d3L3BhdXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3BhdXNlLmh0bWwKaW5kZXggYTU2MTk2OGUxMTI1
OGVlYjM4ZjZkMmJmMzEzYzNkNDVkMzA2ZDBmOS4uNGU1MmI2NjczZDRjODFiZjg0YjhhMjNiNjVk
M2NhZjgyMzNkODVkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9wYXVzZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcGF1c2UuaHRt
bApAQCAtMTIyLDggKzEyMiw3IEBACiAgICAgICAgIH0pOwogICAgICAgfQogCi0gICAgICBXYXZl
U2VydmljZS5jb25uZWN0SHR0cFBvbGxpbmcoVE9LRU4pOwotICAgICAgV2F2ZVNlcnZpY2Uub25N
ZXNzYWdlKGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgIFdhdmVTZXJ2aWNlLmFkZFNlc3Npb25F
dmVudExpc3RlbmVyKFRPS0VOLCBmdW5jdGlvbihtZXNzYWdlKSB7CiAgICAgICAgIGlmIChtZXNz
YWdlLnR5cGUgIT09ICJzdGF0dXMiKSByZXR1cm47CiAgICAgICAgIGlmIChtZXNzYWdlLmRhdGEg
IT09ICJydW5uaW5nIikgcmV0dXJuOwogICAgICAgICBXYXZlU2VydmljZS5yZWFkTmV4dFRlc3Qo
VE9LRU4sIGZ1bmN0aW9uKHVybCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9yZXMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3Jlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVl
ODA1MmM2ZTk2ZjllMzI4ZTM0YjY1NTkyYzZmOWNmNzdiZDFjNy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3Jlcy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzL3NwaW5uZXItc29saWQuc3Zn
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3d3dy9yZXMvd2F2ZWxvZ29fMjAxNi5qcGcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvcmVzdWx0cy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3
dy9yZXN1bHRzLmh0bWwKaW5kZXggODM5Y2UwNTU5MGM5ZmMwM2Y4YzNhMzU3NWE3NDJiMGQyYzAz
NGY3Ni4uYzliMmMwMjhjMTk3NmZhN2FmMmRkZWNkYzJmNzk2ZGEzYzk1NGU4ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZl
L3d3dy9yZXN1bHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9yZXN1bHRzLmh0bWwKQEAgLTEsNSArMSw1IEBACiA8
IURPQ1RZUEUgaHRtbD4KLTxodG1sIGxhbmc9ImVuIiBzdHlsZT0ib3ZlcmZsb3c6IGF1dG8iPgor
PGh0bWwgbGFuZz0iZW4iIHN0eWxlPSJvdmVyZmxvdzogYXV0bzsiPgogICA8aGVhZD4KICAgICA8
bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiIC8+CkBAIC0zOCwxMiArMzgs
MTIgQEAKICAgICAgICAgICByZWZlcmVuY2VTZXNzaW9uczogW10sCiAgICAgICAgICAgbGFzdENv
bXBsZXRlZFRlc3RzOiBbXSwKICAgICAgICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzOiBbXSwKLSAg
ICAgICAgICBhZGRMYWJlbFZpc2libGU6IGZhbHNlCisgICAgICAgICAgYWRkTGFiZWxWaXNpYmxl
OiBmYWxzZSwKICAgICAgICAgfSwKLSAgICAgICAgcmVmcmVzaERhdGE6IHRvVXBkYXRlID0+IHsK
LSAgICAgICAgICBXYXZlU2VydmljZS5yZWFkUmVzdWx0c0NvbmZpZyhmdW5jdGlvbihjb25maWcp
IHsKLSAgICAgICAgICAgICAgICAgIHJlc3VsdFVpLnN0YXRlLnJlcG9ydHNFbmFibGVkID0gY29u
ZmlnLnJlcG9ydHNFbmFibGVkOwotICAgICAgICAgICAgICAgICAgcmVzdWx0VWkucmVuZGVyQXBp
UmVzdWx0cygpOworICAgICAgICByZWZyZXNoRGF0YTogKHRvVXBkYXRlKSA9PiB7CisgICAgICAg
ICAgV2F2ZVNlcnZpY2UucmVhZFN0YXR1cyhmdW5jdGlvbiAoY29uZmlnKSB7CisgICAgICAgICAg
ICByZXN1bHRVaS5zdGF0ZS5yZXBvcnRzRW5hYmxlZCA9IGNvbmZpZy5yZXBvcnRzRW5hYmxlZDsK
KyAgICAgICAgICAgIHJlc3VsdFVpLnJlbmRlckFwaVJlc3VsdHMoKTsKICAgICAgICAgICB9KTsK
ICAgICAgICAgICBzd2l0Y2ggKHRvVXBkYXRlKSB7CiAgICAgICAgICAgICBjYXNlICJ0ZXN0X2Nv
bXBsZXRlZCI6CkBAIC04OCwxNiArODgsMTkgQEAKICAgICAgICAgICB9CiAgICAgICAgIH0sCiAg
ICAgICAgIHJlZnJlc2hTZXNzaW9uQ29uZmlndXJhdGlvbihjYWxsYmFjayA9ICgpID0+IHt9KSB7
Ci0gICAgICAgICAgV2F2ZVNlcnZpY2UucmVhZFNlc3Npb24odG9rZW4sIGNvbmZpZ3VyYXRpb24g
PT4geworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uKHRva2VuLCAoY29uZmlndXJh
dGlvbikgPT4gewogICAgICAgICAgICAgcmVzdWx0VWkuc3RhdGUuY29uZmlndXJhdGlvbiA9IGNv
bmZpZ3VyYXRpb247CiAgICAgICAgICAgICBjYWxsYmFjayhjb25maWd1cmF0aW9uKTsKICAgICAg
ICAgICB9KTsKICAgICAgICAgfSwKICAgICAgICAgcmVmcmVzaFNlc3Npb25TdGF0dXMoY2FsbGJh
Y2sgPSAoKSA9PiB7fSkgewotICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uU3RhdHVz
KHRva2VuLCBzdGF0dXMgPT4geworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRTZXNzaW9uU3Rh
dHVzKHRva2VuLCAoc3RhdHVzKSA9PiB7CiAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5zdGF0
dXMgPSBzdGF0dXM7CiAgICAgICAgICAgICBpZiAoc3RhdHVzLnN0YXR1cyAhPT0gImNvbXBsZXRl
ZCIgJiYgc3RhdHVzLnN0YXR1cyAhPT0gImFib3J0ZWQiKQotICAgICAgICAgICAgICByZXN1bHRV
aS5jb25uZWN0V2ViU29ja2V0KCk7CisgICAgICAgICAgICAgIFdhdmVTZXJ2aWNlLmFkZFNlc3Np
b25FdmVudExpc3RlbmVyKAorICAgICAgICAgICAgICAgIHRva2VuLAorICAgICAgICAgICAgICAg
IHJlc3VsdFVpLmhhbmRsZVNlc3Npb25FdmVudAorICAgICAgICAgICAgICApOwogICAgICAgICAg
ICAgY2FsbGJhY2soc3RhdHVzKTsKICAgICAgICAgICB9KTsKICAgICAgICAgfSwKQEAgLTEwNiwz
OCArMTA5LDMzIEBACiAgICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uKSByZXR1cm47CiAgICAg
ICAgICAgY29uc3QgeyByZWZlcmVuY2VUb2tlbnMgfSA9IGNvbmZpZ3VyYXRpb247CiAgICAgICAg
ICAgaWYgKCFyZWZlcmVuY2VUb2tlbnMpIHJldHVybjsKLSAgICAgICAgICBXYXZlU2VydmljZS5y
ZWFkTXVsdGlwbGVTZXNzaW9ucyhyZWZlcmVuY2VUb2tlbnMsIGNvbmZpZ3VyYXRpb24gPT4gewor
ICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRNdWx0aXBsZVNlc3Npb25zKHJlZmVyZW5jZVRva2Vu
cywgKGNvbmZpZ3VyYXRpb24pID0+IHsKICAgICAgICAgICAgIHJlc3VsdFVpLnN0YXRlLnJlZmVy
ZW5jZVNlc3Npb25zID0gY29uZmlndXJhdGlvbjsKICAgICAgICAgICAgIHJlc3VsdFVpLnJlbmRl
clJlZmVyZW5jZVNlc3Npb25zKCk7CiAgICAgICAgICAgICBjYWxsYmFjayhjb25maWd1cmF0aW9u
KTsKICAgICAgICAgICB9KTsKICAgICAgICAgfSwKICAgICAgICAgcmVmcmVzaFNlc3Npb25SZXN1
bHRzKGNhbGxiYWNrID0gKCkgPT4ge30pIHsKLSAgICAgICAgICBXYXZlU2VydmljZS5yZWFkUmVz
dWx0c0NvbXBhY3QodG9rZW4sIHJlc3VsdHMgPT4geworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJl
YWRSZXN1bHRzQ29tcGFjdCh0b2tlbiwgKHJlc3VsdHMpID0+IHsKICAgICAgICAgICAgIHJlc3Vs
dFVpLnN0YXRlLnJlc3VsdHMgPSByZXN1bHRzOwogICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0
cyk7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCiAgICAgICAgIHJlZnJlc2hMYXN0Q29tcGxl
dGVkVGVzdHMoY2FsbGJhY2sgPSAoKSA9PiB7fSkgewogICAgICAgICAgIGlmIChyZXN1bHRVaS5z
dGF0ZS5jb25maWd1cmF0aW9uLmlzUHVibGljKSByZXR1cm47Ci0gICAgICAgICAgV2F2ZVNlcnZp
Y2UucmVhZExhc3RDb21wbGV0ZWRUZXN0cyh0b2tlbiwgWyJ0aW1lb3V0Il0sIHRlc3RzID0+IHsK
KyAgICAgICAgICBXYXZlU2VydmljZS5yZWFkTGFzdENvbXBsZXRlZFRlc3RzKHRva2VuLCBbInRp
bWVvdXQiXSwgKHRlc3RzKSA9PiB7CiAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5sYXN0Q29t
cGxldGVkVGVzdHMgPSB0ZXN0czsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgICAg
fSk7CiAgICAgICAgIH0sCiAgICAgICAgIHJlZnJlc2hNYWxmdW5jdGlvbmluZ1Rlc3RzKGNhbGxi
YWNrID0gKCkgPT4ge30pIHsKLSAgICAgICAgICBXYXZlU2VydmljZS5yZWFkTWFsZnVuY3Rpb25p
bmdUZXN0cyh0b2tlbiwgdGVzdHMgPT4geworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRNYWxm
dW5jdGlvbmluZ1Rlc3RzKHRva2VuLCAodGVzdHMpID0+IHsKICAgICAgICAgICAgIHJlc3VsdFVp
LnN0YXRlLm1hbGZ1bmN0aW9uaW5nVGVzdHMgPSB0ZXN0czsKICAgICAgICAgICAgIGNhbGxiYWNr
KCk7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCi0gICAgICAgIGNvbm5lY3RXZWJTb2NrZXQo
KSB7Ci0gICAgICAgICAgaWYgKCFXYXZlU2VydmljZS5pc0Nvbm5lY3RlZCgpKSB7Ci0gICAgICAg
ICAgICBXYXZlU2VydmljZS5jb25uZWN0SHR0cFBvbGxpbmcodG9rZW4pOwotICAgICAgICAgICAg
V2F2ZVNlcnZpY2Uub25NZXNzYWdlKG1lc3NhZ2UgPT4gewotICAgICAgICAgICAgICByZXN1bHRV
aS5yZWZyZXNoRGF0YShtZXNzYWdlLnR5cGUpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
fQorICAgICAgICBoYW5kbGVTZXNzaW9uRXZlbnQobWVzc2FnZSkgeworICAgICAgICAgIHJlc3Vs
dFVpLnJlZnJlc2hEYXRhKG1lc3NhZ2UudHlwZSk7CiAgICAgICAgIH0sCiAgICAgICAgIG9wZW5S
ZXN1bHRzT3ZlcnZpZXcoKSB7CiAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IFdFQl9ST09UICsg
Im92ZXJ2aWV3Lmh0bWwiOwpAQCAtMTY4LDcgKzE2Niw3IEBACiAgICAgICAgIG9wZW5IdG1sUmVw
b3J0KGFwaSkgewogICAgICAgICAgIGNvbnN0IHsgcmVzdWx0cyB9ID0gcmVzdWx0VWkuc3RhdGU7
CiAgICAgICAgICAgaWYgKHJlc3VsdHNbYXBpXS5jb21wbGV0ZSAhPSByZXN1bHRzW2FwaV0udG90
YWwpIHJldHVybjsKLSAgICAgICAgICBXYXZlU2VydmljZS5yZWFkUmVwb3J0VXJpKHRva2VuLCBh
cGksIGZ1bmN0aW9uKHVyaSkgeworICAgICAgICAgIFdhdmVTZXJ2aWNlLnJlYWRSZXBvcnRVcmko
dG9rZW4sIGFwaSwgZnVuY3Rpb24gKHVyaSkgewogICAgICAgICAgICAgd2luZG93Lm9wZW4odXJp
LCAiX2JsYW5rIik7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0sCkBAIC0yNjAsOSArMjU4LDkg
QEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQ6ICJpbWciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogInJl
cy93YXZlbG9nb18yMDE2LmpwZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAic2l0ZS1sb2dvIgotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAi
c2l0ZS1sb2dvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb2x1bW4gaXMtbmFy
cm93IiwKQEAgLTI3NiwxOCArMjc0LDE4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1hcnJvdy1sZWZ0IgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZh
LWFycm93LWxlZnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRleHQ6ICJSZXN1bHRzIE92ZXJ2aWV3IiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsZW1lbnQ6ICJzcGFuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWluZXIiLApAQCAtMjk2LDQ4ICsyOTQsNDggQEAK
ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb2x1bW4iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJ0aXRsZSIsIHRl
eHQ6ICJSZXN1bHQiIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xh
c3NOYW1lOiAidGl0bGUiLCB0ZXh0OiAiUmVzdWx0IiB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiY29sdW1uIGlzLW5hcnJvdyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuOiB7IGlkOiAiY29udHJvbHMiIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuOiB7IGlkOiAiY29udHJvbHMiIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZDogInNlc3Npb24tZGV0YWlscyIs
CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udGFpbmVyIiwKLSAgICAgICAgICAgICAg
ICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIKKyAgICAgICAgICAgICAgICBzdHlsZTogIm1h
cmdpbi1ib3R0b206IDJlbSIsCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICBpZDogImxhc3QtY29tcGxldGVkLXRlc3RzIiwKICAgICAgICAgICAgICAg
ICBjbGFzc05hbWU6ICJjb250YWluZXIiLAotICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2lu
LWJvdHRvbTogMmVtIgorICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVt
IiwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlk
OiAiYXBpLXJlc3VsdHMiLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRhaW5lciIs
Ci0gICAgICAgICAgICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iCisgICAgICAgICAg
ICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iLAogICAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWQ6ICJ0aW1lb3V0LWZpbGVzIiwKICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWluZXIiLAotICAgICAgICAgICAgICAgIHN0eWxl
OiAibWFyZ2luLWJvdHRvbTogMmVtIgorICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJv
dHRvbTogMmVtIiwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgIGlkOiAiZXhwb3J0IiwKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWlu
ZXIiLAotICAgICAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVtIgorICAgICAg
ICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMmVtIiwKICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlkOiAibWFsZnVuY3Rpb25pbmctdGVz
dHMiLAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRhaW5lciIsCi0gICAgICAgICAg
ICAgICAgc3R5bGU6ICJtYXJnaW4tYm90dG9tOiAyZW0iCi0gICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgICAgICBzdHlsZTogIm1hcmdpbi1ib3R0b206IDJlbSIsCisg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAg
IGNvbnN0IHJvb3QgPSBVSS5nZXRSb290KCk7CiAgICAgICAgICAgcm9vdC5pbm5lckhUTUwgPSAi
IjsKQEAgLTM1Myw3ICszNTEsNyBAQAogICAgICAgICAgIGNvbnN0IHsgc3RhdHVzIH0gPSBzdGF0
ZS5zdGF0dXM7CiAgICAgICAgICAgY29uc3QgeyBpc1B1YmxpYyB9ID0gc3RhdGUuY29uZmlndXJh
dGlvbjsKICAgICAgICAgICBjb25zdCBjb250cm9sc1ZpZXcgPSBVSS5jcmVhdGVFbGVtZW50KHsK
LSAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkIGlzLWdyb3VwZWQgaXMtZ3JvdXBlZC1tdWx0
aWxpbmUiCisgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1ncm91cGVkIGlzLWdyb3Vw
ZWQtbXVsdGlsaW5lIiwKICAgICAgICAgICB9KTsKICAgICAgICAgICBpZiAoCiAgICAgICAgICAg
ICBzdGF0dXMgJiYKQEAgLTM2NCw3ICszNjIsNyBAQAogICAgICAgICAgICAgY29uc3QgcGF1c2VS
ZXN1bWVCdXR0b24gPSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICAgaWQ6ICJwYXVz
ZS1yZXN1bWUtYnV0dG9uIiwKICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCBidXR0
b24gaXMtZGFyayBpcy1vdXRsaW5lZCIsCi0gICAgICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICBvbmNsaWNrOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKHN0YXR1cyA9PT0gInJ1bm5pbmciKSB7CiAgICAgICAgICAgICAgICAgICBXYXZlU2Vy
dmljZS5wYXVzZVNlc3Npb24odG9rZW4sIHJlc3VsdFVpLnJlZnJlc2hEYXRhKTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgewpAQCAtMzc5LDE1ICszNzcsMTUgQEAKICAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJpIiwKICAgICAgICAgICAgICAg
ICAgICAgICBjbGFzc05hbWU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPT09ICJy
dW5uaW5nIiA/ICJmYXMgZmEtcGF1c2UiIDogImZhcyBmYS1wbGF5IgotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0
dXMgPT09ICJydW5uaW5nIiA/ICJmYXMgZmEtcGF1c2UiIDogImZhcyBmYS1wbGF5IiwKKyAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICB0ZXh0OiBzdGF0dXMgPT09
ICJydW5uaW5nIiA/ICJQYXVzZSIgOiAiUmVzdW1lIiwKLSAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJzcGFuIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAg
ICAgICAgICAgZWxlbWVudDogInNwYW4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGNvbnRyb2xzVmlldy5hcHBlbmRD
aGlsZChwYXVzZVJlc3VtZUJ1dHRvbik7CiAgICAgICAgICAgfQpAQCAtNDA0LDE1ICs0MDIsMTUg
QEAKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmFzIGZhLXNxdWFyZSIKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBm
YS1zcXVhcmUiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgXSwK
ICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
IHRleHQ6ICJTdG9wIiwKLSAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIgotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgZWxlbWVudDog
InNwYW4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIGNvbnRyb2xzVmlldy5hcHBlbmRDaGlsZChzdG9wQnV0dG9uKTsK
ICAgICAgICAgICB9CkBAIC00MjgsMTUgKzQyNiwxNSBAQAogICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IFsKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtdHJh
c2gtYWx0IgotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICBdCisgICAg
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLXRyYXNoLWFsdCIsCisgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgdGV4dDogIkRlbGV0ZSIsCi0g
ICAgICAgICAgICAgICAgICBlbGVtZW50OiAic3BhbiIKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJzcGFuIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICBjb250cm9sc1ZpZXcuYXBwZW5kQ2hpbGQoZGVsZXRlQnV0dG9uKTsKICAgICAgICAgICB9CkBA
IC00NDcsNyArNDQ1LDcgQEAKICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtb2RhbC1iYWNrZ3JvdW5kIiwKLSAgICAg
ICAgICAgICAgICBvbmNsaWNrOiByZXN1bHRVaS5oaWRlRGVsZXRlTW9kYWwKKyAgICAgICAgICAg
ICAgICBvbmNsaWNrOiByZXN1bHRVaS5oaWRlRGVsZXRlTW9kYWwsCiAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtb2RhbC1jYXJk
IiwKQEAgLTQ1OCwxOSArNDU2LDE5IEBACiAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudDogInAiLAogICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NOYW1lOiAibW9kYWwtY2FyZC10aXRsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICB0
ZXh0OiAiRGVsZXRlIFNlc3Npb24iCi0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAiRGVsZXRlIFNlc3Np
b24iLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJtb2RhbC1jYXJkLWJvZHkiLAogICAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQ6ICJwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBcmUgeW91
IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgc2Vzc2lvbj8iCisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0OiAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHNlc3Np
b24/IiwKICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgIHsg
ZWxlbWVudDogInAiLCB0ZXh0OiAiVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4iIH0KLSAg
ICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVudDogInAi
LCB0ZXh0OiAiVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4iIH0sCisgICAgICAgICAgICAg
ICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJtb2RhbC1jYXJkLWZvb3QiLApAQCAtNDc4LDE4
ICs0NzYsMTggQEAKICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc05hbWU6ICJidXR0b24gaXMtZGFuZ2VyIiwKICAgICAgICAgICAgICAgICAgICAg
ICAgIHRleHQ6ICJEZWxldGUgU2Vzc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBvbmNs
aWNrOiByZXN1bHRVaS5kZWxldGVTZXNzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBvbmNs
aWNrOiByZXN1bHRVaS5kZWxldGVTZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiAiYnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJDYW5jZWwiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgb25jbGljazogcmVzdWx0VWkuaGlkZURlbGV0ZU1vZGFsCi0g
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBdCisgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrOiByZXN1bHRVaS5oaWRlRGVsZXRl
TW9kYWwsCisgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgY29udHJvbHNWaWV3
LmFwcGVuZENoaWxkKGRlbGV0ZU1vZGFsKTsKIApAQCAtNTAyLDE2ICs1MDAsMTYgQEAKICAgICAg
ICAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb24sIHN0YXR1cywgcmVzdWx0cyB9ID0gc3RhdGU7CiAg
ICAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uIHx8ICFzdGF0dXMpIHJldHVybjsKICAgICAgICAg
ICBjb25zdCBzZXNzaW9uRGV0YWlsc1ZpZXcgPSBVSS5jcmVhdGVFbGVtZW50KHsKLSAgICAgICAg
ICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMjBweCIKKyAgICAgICAgICAgIHN0eWxlOiAibWFy
Z2luLWJvdHRvbTogMjBweCIsCiAgICAgICAgICAgfSk7CiAKICAgICAgICAgICBjb25zdCBoZWFk
aW5nID0gVUkuY3JlYXRlRWxlbWVudCh7CiAgICAgICAgICAgICB0ZXh0OiAiU2Vzc2lvbiBkZXRh
aWxzIiwKLSAgICAgICAgICAgIGNsYXNzTmFtZTogInRpdGxlIGlzLTQiCisgICAgICAgICAgICBj
bGFzc05hbWU6ICJ0aXRsZSBpcy00IiwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9u
RGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAKLSAgICAgICAgICBjb25zdCBnZXRU
YWdTdHlsZSA9IHN0YXR1cyA9PiB7CisgICAgICAgICAgY29uc3QgZ2V0VGFnU3R5bGUgPSAoc3Rh
dHVzKSA9PiB7CiAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgICAgICAgICAgICBj
YXNlICJjb21wbGV0ZWQiOgogICAgICAgICAgICAgICAgIHJldHVybiAiaXMtc3VjY2VzcyI7CkBA
IC01MzEsNyArNTI5LDcgQEAKICAgICAgICAgICAgIGlmICghc3RhdGUuZHVyYXRpb25JbnRlcnZh
bCkKICAgICAgICAgICAgICAgc3RhdGUuZHVyYXRpb25JbnRlcnZhbCA9IHNldEludGVydmFsKCgp
ID0+IHsKICAgICAgICAgICAgICAgICBVSS5nZXRFbGVtZW50KCJkdXJhdGlvbiIpLmlubmVySFRN
TCA9IHV0aWxzLm1pbGxpc1RvVGltZVN0cmluZygKLSAgICAgICAgICAgICAgICAgIERhdGUubm93
KCkgLSBwYXJzZUludChzdGF0dXMuZGF0ZVN0YXJ0ZWQpCisgICAgICAgICAgICAgICAgICBEYXRl
Lm5vdygpIC0gc3RhdHVzLmRhdGVTdGFydGVkLmdldFRpbWUoKQogICAgICAgICAgICAgICAgICk7
CiAgICAgICAgICAgICAgIH0sIDEwMDApOwogICAgICAgICAgIH0KQEAgLTU0NCw3ICs1NDIsNyBA
QAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjog
eyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJUb2tlbiIgfQorICAgICAgICAgICAgICAgIGNo
aWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRva2VuIiB9LAogICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQtYm9keSIsCkBAIC01NTIsMTEgKzU1MCwxMSBAQAogICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQiLAogICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgIHRleHQ6
IGNvbmZpZ3VyYXRpb24udG9rZW4KLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAg
dGV4dDogY29uZmlndXJhdGlvbi50b2tlbiwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAg
fSk7CiAgICAgICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKHRva2VuRmllbGQp
OwogCkBAIC01NjUsNyArNTYzLDcgQEAKICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAg
ICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiVXNlciBB
Z2VudCIgfQorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwg
dGV4dDogIlVzZXIgQWdlbnQiIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTU3MywxMSArNTcx
LDExIEBACiAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCiAgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250
cm9sIiwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDogY29uZmlndXJhdGlvbi51c2VyQWdlbnQg
fHwgIiIKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgdGV4dDogY29uZmlndXJh
dGlvbi51c2VyQWdlbnQgfHwgIiIsCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwog
ICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmlldy5hcHBlbmRDaGlsZCh1c2VyQWdlbnRGaWVsZCk7
CiAKQEAgLTU4Niw3ICs1ODQsNyBAQAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKLSAgICAg
ICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJUZXN0IFBh
dGhzIiB9CisgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0
ZXh0OiAiVGVzdCBQYXRocyIgfSwKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJvZHkiLApAQCAtNTk2LDExICs1OTQs
MTEgQEAKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCiAgICAgICAg
ICAgICAgICAgICAgIHRleHQ6IGNvbmZpZ3VyYXRpb24udGVzdHMuaW5jbHVkZQogICAgICAgICAg
ICAgICAgICAgICAgIC5yZWR1Y2UoKHRleHQsIHRlc3QpID0+IHRleHQgKyB0ZXN0ICsgIiwgIiwg
IiIpCi0gICAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIC0yKQotICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCAtMiksCisgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAog
ICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmlldy5hcHBlbmRDaGlsZCh0
ZXN0UGF0aHNGaWVsZCk7CiAKQEAgLTYwOSw3ICs2MDcsNyBAQAogICAgICAgICAgICAgY2hpbGRy
ZW46IFsKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxk
LWxhYmVsIiwKLSAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIs
IHRleHQ6ICJFeGNsdWRlZCBUZXN0IFBhdGhzIiB9CisgICAgICAgICAgICAgICAgY2hpbGRyZW46
IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiRXhjbHVkZWQgVGVzdCBQYXRocyIgfSwKICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkLWJvZHkiLApAQCAtNjIwLDcgKzYxOCw3IEBACiAgICAgICAgICAgICAgICAgICAg
IGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgZWxlbWVudDogInNwYW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogY29u
ZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAg
dGV4dDogY29uZmlndXJhdGlvbi50ZXN0cy5leGNsdWRlLmxlbmd0aCwKICAgICAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQ6ICJzcGFuIiwKQEAgLTYyOSwyMiArNjI3LDI0IEBACiAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXh0OiBzaG93RXhjbHVkZWQgPyAiaGlkZSIgOiAic2hvdyIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBvbkNsaWNrOiBzaG93RXhjbHVkZWQKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPyByZXN1bHRVaS5oaWRlRXhjbHVkZWQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiByZXN1bHRVaS5zaG93RXhjbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBy
ZXN1bHRVaS5zaG93RXhjbHVkZWQsCiAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICAgICAgICBzaG93RXhjbHVkZWQKICAgICAgICAgICAgICAgICAgICAgICAgID8gewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm1heC1oZWlnaHQ6IDI1MHB4OyBvdmVyZmxvdzogYXV0bzsgbWFyZ2luLWJvdHRv
bTogMTBweCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbmZpZ3Vy
YXRpb24udGVzdHMuZXhjbHVkZS5tYXAodGVzdCA9PiAoewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGV4dDogdGVzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBjb25maWd1cmF0aW9uLnRlc3RzLmV4
Y2x1ZGUubWFwKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3QpID0+ICh7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IHRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbAot
ICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAg
ICAgICA6IG51bGwsCisgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAog
ICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmlldy5hcHBlbmRDaGlsZChl
eGNsdWRlZFRlc3RzRmllbGQpOwogCkBAIC02NTUsNyArNjU1LDcgQEAKICAgICAgICAgICAgIGNo
aWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJm
aWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFi
ZWwiLCB0ZXh0OiAiUmVmZXJlbmNlIFNlc3Npb25zIiB9CisgICAgICAgICAgICAgICAgY2hpbGRy
ZW46IHsgY2xhc3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiUmVmZXJlbmNlIFNlc3Npb25zIiB9LAog
ICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQtYm9keSIsCkBAIC02NjMsMTEgKzY2MywxMSBAQAogICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiZmllbGQiLAogICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAg
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuOiB7IGlkOiAicmVmZXJlbmNlLXNlc3Npb25zIiB9Ci0gICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBd
CisgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGlkOiAicmVmZXJlbmNlLXNlc3Npb25z
IiB9LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9u
RGV0YWlsc1ZpZXcuYXBwZW5kQ2hpbGQocmVmZXJlbmNlU2Vzc2lvbkZpZWxkKTsKIApAQCAtNjc2
LDcgKzY3Niw3IEBACiAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAg
IGNoaWxkcmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRvdGFsIFRlc3QgRmlsZXMi
IH0KKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6
ICJUb3RhbCBUZXN0IEZpbGVzIiB9LAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC02ODcsMTEgKzY4
NywxMSBAQAogICAgICAgICAgICAgICAgICAgICB0ZXh0OiBPYmplY3Qua2V5cyhyZXN1bHRzKS5y
ZWR1Y2UoCiAgICAgICAgICAgICAgICAgICAgICAgKHN1bSwgYXBpKSA9PiAoc3VtICs9IHJlc3Vs
dHNbYXBpXS50b3RhbCksCiAgICAgICAgICAgICAgICAgICAgICAgMAotICAgICAgICAgICAgICAg
ICAgICApCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRhaWxzVmlldy5hcHBl
bmRDaGlsZCh0b3RhbFRlc3RGaWxlc0ZpZWxkKTsKIApAQCAtNzAwLDcgKzcwMCw3IEBACiAgICAg
ICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2xh
c3NOYW1lOiAiZmllbGQtbGFiZWwiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNz
TmFtZTogImxhYmVsIiwgdGV4dDogIlN0YXR1cyIgfQorICAgICAgICAgICAgICAgIGNoaWxkcmVu
OiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlN0YXR1cyIgfSwKICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWJv
ZHkiLApAQCAtNzA4LDExICs3MDgsMTEgQEAKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImZpZWxkIiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzTmFtZTogYGNvbnRyb2wgdGFnICR7Z2V0VGFnU3R5bGUoc3RhdHVzLnN0YXR1cyl9
YCwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDogc3RhdHVzLnN0YXR1cwotICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
XQorICAgICAgICAgICAgICAgICAgICB0ZXh0OiBzdGF0dXMuc3RhdHVzLAorICAgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgXSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBzZXNzaW9uRGV0YWlsc1ZpZXcuYXBwZW5k
Q2hpbGQoc3RhdHVzRmllbGQpOwogCkBAIC03MjEsNyArNzIxLDcgQEAKICAgICAgICAgICAgIGNo
aWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJm
aWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xhc3NOYW1lOiAibGFi
ZWwiLCB0ZXh0OiAiVGVzdCBUaW1lb3V0cyIgfQorICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlRlc3QgVGltZW91dHMiIH0sCiAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZC1ib2R5IiwKQEAgLTczMSwxNCArNzMxLDE1IEBACiAgICAgICAgICAgICAgICAgICAgIGNsYXNz
TmFtZTogYGNvbnRyb2xgLAogICAgICAgICAgICAgICAgICAgICB0ZXh0OiBPYmplY3Qua2V5cyhj
b25maWd1cmF0aW9uLnRpbWVvdXRzKS5yZWR1Y2UoCiAgICAgICAgICAgICAgICAgICAgICAgKHRl
eHQsIHRpbWVvdXQpID0+Ci0gICAgICAgICAgICAgICAgICAgICAgICBgJHt0ZXh0fSR7dGltZW91
dH06ICR7Y29uZmlndXJhdGlvbi50aW1lb3V0c1t0aW1lb3V0XSAvCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIDEwMDB9c1xuYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGAke3RleHR9JHt0
aW1lb3V0fTogJHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbi50aW1l
b3V0c1t0aW1lb3V0XSAvIDEwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgIH1zXG5gLAogICAg
ICAgICAgICAgICAgICAgICAgICIiCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IF0KKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAgICAgICAgICAg
fSk7CiAgICAgICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKHRpbWVvdXRzRmll
bGQpOwogCkBAIC03NDgsNyArNzQ5LDcgQEAKICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJl
bCIsCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRl
eHQ6ICJEYXRlIFN0YXJ0ZWQiIH0KKyAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNz
TmFtZTogImxhYmVsIiwgdGV4dDogIkRhdGUgU3RhcnRlZCIgfSwKICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxk
LWJvZHkiLApAQCAtNzU2LDExICs3NTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiZmllbGQiLAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzTmFtZTogYGNvbnRyb2xgLAotICAgICAgICAgICAgICAgICAgICAg
IHRleHQ6IG5ldyBEYXRlKHN0YXR1cy5kYXRlU3RhcnRlZCkudG9Mb2NhbGVTdHJpbmcoKQotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgdGV4dDogbmV3IERhdGUo
c3RhdHVzLmRhdGVTdGFydGVkKS50b0xvY2FsZVN0cmluZygpLAorICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBzZXNzaW9uRGV0YWlsc1ZpZXcu
YXBwZW5kQ2hpbGQoc3RhcnRlZEZpZWxkKTsKICAgICAgICAgICB9CkBAIC03NzEsNyArNzcyLDcg
QEAKICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJEYXRlIEZpbmlzaGVkIiB9Cisg
ICAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJE
YXRlIEZpbmlzaGVkIiB9LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmllbGQtYm9keSIsCkBAIC03NzksMTEgKzc4
MCwxMSBAQAogICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCIsCiAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l
OiBgY29udHJvbGAsCi0gICAgICAgICAgICAgICAgICAgICAgdGV4dDogbmV3IERhdGUoc3RhdHVz
LmRhdGVGaW5pc2hlZCkudG9Mb2NhbGVTdHJpbmcoKQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgICAgICAgdGV4dDogbmV3IERhdGUoc3RhdHVzLmRhdGVGaW5pc2hlZCku
dG9Mb2NhbGVTdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKGZpbmlzaGVk
RmllbGQpOwogICAgICAgICAgIH0KQEAgLTc5NCw3ICs3OTUsNyBAQAogICAgICAgICAgICAgICBj
aGlsZHJlbjogWwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImZpZWxkLWxhYmVsIiwKLSAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7IGNsYXNzTmFt
ZTogImxhYmVsIiwgdGV4dDogIkR1cmF0aW9uIiB9CisgICAgICAgICAgICAgICAgICBjaGlsZHJl
bjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJEdXJhdGlvbiIgfSwKICAgICAgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImZpZWxkLWJvZHkiLApAQCAtODA1LDE0ICs4MDYsMTQgQEAKICAgICAgICAgICAgICAgICAgICAg
ICBpZDogImR1cmF0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB1dGlscy5taWxs
aXNUb1RpbWVTdHJpbmcoCiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMuZGF0ZUZpbmlz
aGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJbnQoc3RhdHVzLmRhdGVGaW5p
c2hlZCkgLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoc3RhdHVzLmRh
dGVTdGFydGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICA6IERhdGUubm93KCkgLSBwYXJz
ZUludChzdGF0dXMuZGF0ZVN0YXJ0ZWQpCi0gICAgICAgICAgICAgICAgICAgICAgKQotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gc3RhdHVzLmRhdGVG
aW5pc2hlZC5nZXRUaW1lKCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
LmRhdGVTdGFydGVkLmdldFRpbWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICA6IERhdGUu
bm93KCkgLSBzdGF0dXMuZGF0ZVN0YXJ0ZWQuZ2V0VGltZSgpCisgICAgICAgICAgICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgc2Vzc2lvbkRldGFpbHNWaWV3LmFwcGVuZENoaWxkKGR1cmF0aW9uRmllbGQpOwogICAg
ICAgICAgIH0KQEAgLTgyMiw3ICs4MjMsNyBAQAogICAgICAgICAgICAgY2hpbGRyZW46IFsKICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwK
LSAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIsIHRleHQ6ICJM
YWJlbHMiIH0KKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogeyBjbGFzc05hbWU6ICJsYWJlbCIs
IHRleHQ6ICJMYWJlbHMiIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTgzNywxNSArODM4LDE1
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbGVtZW50OiAic3BhbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAidGFnIGlzLWluZm8iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGxh
YmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogbGFiZWwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiYSIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAidGFnIGlzLWRlbGV0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb25DbGljazogKCkgPT4gcmVzdWx0VWkucmVtb3ZlTGFiZWwoaW5kZXgpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKCkg
PT4gcmVzdWx0VWkucmVtb3ZlTGFiZWwoaW5kZXgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCgK
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5jb25maWd1cmF0aW9uLmlzUHVi
bGljCkBAIC04NjEsMzcgKzg2MiwzNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0eWxlOiAid2lkdGg6IDEwcmVtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZDogInNlc3Npb24tbGFiZWwtaW5wdXQiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU6ICJ0ZXh0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvbktleVVwOiBldmVudCA9PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u
S2V5VXA6IChldmVudCkgPT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50LmtleUNvZGUgPT09IDEzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID8gcmVzdWx0VWkuYWRkTGFiZWwoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxs
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1dHRvbiBpcy1kYXJr
IGlzLW91dGxpbmVkIGlzLXNtYWxsIGlzLXJvdW5kZWQgY29udHJvbCIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGV4dDogInNhdmUiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9uQ2xpY2s6IHJlc3VsdFVpLmFkZExhYmVsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb25DbGljazogcmVzdWx0VWkuYWRkTGFiZWwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQg
aXMtc21hbGwgaXMtcm91bmRlZCBjb250cm9sIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0OiAiY2FuY2VsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvbkNsaWNrOiByZXN1bHRVaS5oaWRlQWRkTGFiZWwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNs
aWNrOiByZXN1bHRVaS5oaWRlQWRkTGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAg
ICAgICAgICAgICAgIDogWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXNt
YWxsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJBZGQiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogcmVzdWx0VWkuc2hvd0FkZExhYmVsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb25DbGljazogcmVzdWx0VWkuc2hvd0FkZExhYmVsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIHNlc3Npb25EZXRh
aWxzVmlldy5hcHBlbmRDaGlsZChsYWJlbHNGaWVsZCk7CiAKQEAgLTkwNCw5ICs5MDUsOSBAQAog
ICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlU2Vzc2lvbnMgfSA9IHJlc3VsdFVpLnN0YXRlOwog
ICAgICAgICAgIGlmICghcmVmZXJlbmNlU2Vzc2lvbnMgfHwgcmVmZXJlbmNlU2Vzc2lvbnMubGVu
Z3RoID09PSAwKSByZXR1cm47CiAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlU2Vzc2lvbnNMaXN0
ID0gVUkuY3JlYXRlRWxlbWVudCh7Ci0gICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZCBpcy1n
cm91cGVkIGlzLWdyb3VwZWQtbXVsdGlsaW5lIgorICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmll
bGQgaXMtZ3JvdXBlZCBpcy1ncm91cGVkLW11bHRpbGluZSIsCiAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgY29uc3QgZ2V0QnJvd3Nlckljb24gPSBicm93c2VyID0+IHsKKyAgICAgICAgICBjb25z
dCBnZXRCcm93c2VySWNvbiA9IChicm93c2VyKSA9PiB7CiAgICAgICAgICAgICBzd2l0Y2ggKGJy
b3dzZXIudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICBjYXNlICJmaXJlZm94IjoKICAg
ICAgICAgICAgICAgICByZXR1cm4gImZhYiBmYS1maXJlZm94IjsKQEAgLTkyMCw3ICs5MjEsNyBA
QAogICAgICAgICAgICAgICAgIHJldHVybiAiZmFiIGZhLXNhZmFyaSI7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgfTsKLSAgICAgICAgICByZWZlcmVuY2VTZXNzaW9ucy5mb3JFYWNoKHNlc3Np
b24gPT4geworICAgICAgICAgIHJlZmVyZW5jZVNlc3Npb25zLmZvckVhY2goKHNlc3Npb24pID0+
IHsKICAgICAgICAgICAgIGNvbnN0IHsgdG9rZW4sIGJyb3dzZXIgfSA9IHNlc3Npb247CiAgICAg
ICAgICAgICBjb25zdCByZWZlcmVuY2VTZXNzaW9uSXRlbSA9IFVJLmNyZWF0ZUVsZW1lbnQoewog
ICAgICAgICAgICAgICBjbGFzc05hbWU6CkBAIC05MzIsMTQgKzkzMywxNCBAQAogICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiaWNvbiIsCiAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjog
ewogICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogZ2V0QnJvd3Nlckljb24oYnJvd3Nlci5uYW1lKQotICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGdldEJyb3dzZXJJY29uKGJyb3dz
ZXIubmFtZSksCisgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIH0sCiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAotICAgICAg
ICAgICAgICAgICAgdGV4dDogdG9rZW4uc3BsaXQoIi0iKS5zaGlmdCgpCi0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICB0ZXh0OiB0b2tlbi5zcGxp
dCgiLSIpLnNoaWZ0KCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgXSwKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmVmZXJlbmNlU2Vzc2lvbnNMaXN0LmFwcGVuZENo
aWxkKHJlZmVyZW5jZVNlc3Npb25JdGVtKTsKICAgICAgICAgICB9KTsKQEAgLTk2MCw5ICs5NjEs
OSBAQAogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZWxlbWVudDogInNwYW4iLAog
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogInRpdGxlIGlzLTciLAotICAgICAgICAgICAgICAg
IHRleHQ6ICIgKG1vc3QgcmVjZW50IGZpcnN0KSIKLSAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgXQorICAgICAgICAgICAgICAgIHRleHQ6ICIgKG1vc3QgcmVjZW50IGZpcnN0KSIsCisgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAgICAgICAgIGxh
c3RDb21wbGV0ZWRUZXN0c1ZpZXcuYXBwZW5kQ2hpbGQoaGVhZGluZyk7CiAKQEAgLTk3OSwxMCAr
OTgwLDEwIEBACiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0ciIsCiAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAi
dGQiLCB0ZXh0OiAiVGVzdCBGaWxlIiB9LAotICAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVu
dDogInRkIiwgdGV4dDogIk1hbGZ1bmN0aW9uaW5nIExpc3QiIH0KLSAgICAgICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
ICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6ICJNYWxmdW5jdGlvbmluZyBMaXN0IiB9
LAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgZWxlbWVudDogInRib2R5IiwKQEAgLTEwMDksMTggKzEwMTAsMTggQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICJmYXMg
ZmEtY2hlY2siCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJmYXMgZmEt
cGx1cyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
XQotICAgICAgICAgICAgICAgIH0pKQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJmYXMgZmEtcGx1cyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgIH0pKSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgaWYgKGxhc3RDb21wbGV0ZWRUZXN0cy5sZW5ndGggPiAw
KSB7CiAgICAgICAgICAgICBsYXN0Q29tcGxldGVkVGVzdHNWaWV3LmFwcGVuZENoaWxkKApAQCAt
MTAyOCwxMyArMTAyOSwxMyBAQAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbnRhaW5l
ciIsCiAgICAgICAgICAgICAgICAgc3R5bGU6ICJvdmVyZmxvdy14OiBhdXRvOyIsCiAgICAgICAg
ICAgICAgICAgaWQ6ICJsYXN0LWNvbXBsZXRlZC1vdmVyZmxvdyIsCi0gICAgICAgICAgICAgICAg
Y2hpbGRyZW46IHRlc3RzVGFibGUKKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGVzdHNUYWJs
ZSwKICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICk7CiAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGNvbnN0IG5vVGVzdHNMYWJlbCA9IFVJLmNyZWF0ZUVsZW1lbnQoewogICAg
ICAgICAgICAgICB0ZXh0OiAiLSBObyBUaW1lZC1PdXQgVGVzdHMgLSIsCi0gICAgICAgICAgICAg
IHN0eWxlOiAidGV4dC1hbGlnbjogY2VudGVyIgorICAgICAgICAgICAgICBzdHlsZTogInRleHQt
YWxpZ246IGNlbnRlciIsCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGxhc3RDb21wbGV0
ZWRUZXN0c1ZpZXcuYXBwZW5kQ2hpbGQobm9UZXN0c0xhYmVsKTsKICAgICAgICAgICB9CkBAIC0x
MDUzLDEyICsxMDU0LDEyIEBACiAgICAgICAgICAgY29uc3QgeyByZXN1bHRzLCBzdGF0dXMgfSA9
IHJlc3VsdFVpLnN0YXRlOwogCiAgICAgICAgICAgY29uc3QgYXBpUmVzdWx0c1ZpZXcgPSBVSS5j
cmVhdGVFbGVtZW50KHsKLSAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMjBweCIK
KyAgICAgICAgICAgIHN0eWxlOiAibWFyZ2luLWJvdHRvbTogMjBweCIsCiAgICAgICAgICAgfSk7
CiAKICAgICAgICAgICBjb25zdCBoZWFkaW5nID0gVUkuY3JlYXRlRWxlbWVudCh7CiAgICAgICAg
ICAgICB0ZXh0OiAiQVBJIFJlc3VsdHMiLAotICAgICAgICAgICAgY2xhc3NOYW1lOiAidGl0bGUg
aXMtNCIKKyAgICAgICAgICAgIGNsYXNzTmFtZTogInRpdGxlIGlzLTQiLAogICAgICAgICAgIH0p
OwogICAgICAgICAgIGFwaVJlc3VsdHNWaWV3LmFwcGVuZENoaWxkKGhlYWRpbmcpOwogCkBAIC0x
MDcxLDE0ICsxMDcyLDE0IEBACiAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFsKICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAotICAgICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtc3Bpbm5lciBmYS1wdWxzZSIKKyAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLXNwaW5uZXIgZmEtcHVsc2UiLAogICAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
c3R5bGU6ICJtYXJnaW4tbGVmdDogMC40ZW07IiwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDog
IkxvYWRpbmcgcmVzdWx0cyAuLi4iCi0gICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRleHQ6ICJMb2FkaW5n
IHJlc3VsdHMgLi4uIiwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgYXBpUmVzdWx0
c1ZpZXcuYXBwZW5kQ2hpbGQobG9hZGluZ0luZGljYXRvcik7CiAKQEAgLTExMDEsMjkgKzExMDIs
MjkgQEAKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDog
InRoIiwKICAgICAgICAgICAgICAgICAgICAgdGV4dDogIlRpbWVvdXQiLAotICAgICAgICAgICAg
ICAgICAgICBzdHlsZTogYG1pbi13aWR0aDogJHt3aWR0aH1gCisgICAgICAgICAgICAgICAgICAg
IHN0eWxlOiBgbWluLXdpZHRoOiAke3dpZHRofWAsCiAgICAgICAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGgiLAogICAg
ICAgICAgICAgICAgICAgICB0ZXh0OiAiTm90IFJ1biIsCi0gICAgICAgICAgICAgICAgICAgIHN0
eWxlOiBgbWluLXdpZHRoOiAke3dpZHRofWAKKyAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBt
aW4td2lkdGg6ICR7d2lkdGh9YCwKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0aCIsCiAgICAgICAgICAgICAg
ICAgICAgIHRleHQ6ICJUZXN0IEZpbGVzIFJ1biIsCi0gICAgICAgICAgICAgICAgICAgIHN0eWxl
OiBgbWluLXdpZHRoOiAke3dpZHRofWAKKyAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBtaW4t
d2lkdGg6ICR7d2lkdGh9YCwKICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAg
ICB7IGVsZW1lbnQ6ICJ0aCIsIHRleHQ6ICJFeHBvcnQiIH0KLSAgICAgICAgICAgICAgICBdCi0g
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgIHsgZWxlbWVu
dDogInRoIiwgdGV4dDogIkV4cG9ydCIgfSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAgICAgICB9KTsKIAogICAgICAgICAgIGNvbnN0
IGFwaXMgPSBPYmplY3Qua2V5cyhyZXN1bHRzKS5zb3J0KChhcGlBLCBhcGlCKSA9PgogICAgICAg
ICAgICAgYXBpQS50b0xvd2VyQ2FzZSgpID4gYXBpQi50b0xvd2VyQ2FzZSgpID8gMSA6IC0xCiAg
ICAgICAgICAgKTsKIAotICAgICAgICAgIGNvbnN0IHJvd3MgPSBhcGlzLm1hcChhcGkgPT4gewor
ICAgICAgICAgIGNvbnN0IHJvd3MgPSBhcGlzLm1hcCgoYXBpKSA9PiB7CiAgICAgICAgICAgICBj
b25zdCB7CiAgICAgICAgICAgICAgIGNvbXBsZXRlID0gMCwKICAgICAgICAgICAgICAgcGFzcyA9
IDAsCkBAIC0xMTMxLDkgKzExMzIsOSBAQAogICAgICAgICAgICAgICB0aW1lb3V0ID0gMCwKICAg
ICAgICAgICAgICAgdGltZW91dGZpbGVzID0gW10sCiAgICAgICAgICAgICAgIG5vdF9ydW46IG5v
dFJ1biA9IDAsCi0gICAgICAgICAgICAgIHRvdGFsCisgICAgICAgICAgICAgIHRvdGFsLAogICAg
ICAgICAgICAgfSA9IHJlc3VsdHNbYXBpXTsKLQkJCQkJCWlzRG9uZSA9IHJlc3VsdHNbYXBpXS5j
b21wbGV0ZSA9PSByZXN1bHRzW2FwaV0udG90YWw7CisgICAgICAgICAgICBpc0RvbmUgPSByZXN1
bHRzW2FwaV0uY29tcGxldGUgPT0gcmVzdWx0c1thcGldLnRvdGFsOwogICAgICAgICAgICAgY29u
c3QgdG90YWxUZXN0UmVzdWx0cyA9IHBhc3MgKyBmYWlsICsgdGltZW91dCArIG5vdFJ1bjsKICAg
ICAgICAgICAgIHJldHVybiBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgICAgZWxlbWVu
dDogInRyIiwKQEAgLTExNDQsMzEgKzExNDUsMzcgQEAKICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJ0ZCIsCiAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAgICAg
ICAgICBzdHlsZTogYGNvbG9yOiBoc2woMTQxLCA3MSUsIDM4JSk7IG92ZXJmbG93OiB2aXNpYmxl
OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB3aWR0aDogJHt3aWR0aH1gLAotICAgICAgICAgICAgICAg
ICAgICB0ZXh0OiBgJHtwYXNzfSAoJHt1dGlscy5wZXJjZW50KHBhc3MsIHRvdGFsVGVzdFJlc3Vs
dHMpfSUpYAotICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0ZXh0OiBg
JHtwYXNzfSAoJHt1dGlscy5wZXJjZW50KHBhc3MsIHRvdGFsVGVzdFJlc3VsdHMpfSUpYCwKKyAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGQiLAogICAgICAgICAgICAgICAgICAgY2hp
bGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiaGFzLXRleHQtZGFuZ2Vy
IiwKICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBvdmVyZmxvdzogdmlzaWJsZTsgd2hpdGUt
c3BhY2U6IG5vd3JhcDsgd2lkdGg6ICR7d2lkdGh9YCwKLSAgICAgICAgICAgICAgICAgICAgdGV4
dDogYCR7ZmFpbH0gKCR7dXRpbHMucGVyY2VudChmYWlsLCB0b3RhbFRlc3RSZXN1bHRzKX0lKWAK
LSAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7ZmFpbH0g
KCR7dXRpbHMucGVyY2VudChmYWlsLCB0b3RhbFRlc3RSZXN1bHRzKX0lKWAsCisgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgZWxlbWVudDogInRkIiwKICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7
CiAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBgY29sb3I6IGhzbCg0OCwgMTAwJSwgNDAlKTsg
b3ZlcmZsb3c6IHZpc2libGU7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHdpZHRoOiAke3dpZHRofWAs
Ci0gICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke3RpbWVvdXR9ICgke3V0aWxzLnBlcmNlbnQo
dGltZW91dCwgdG90YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIHRleHQ6IGAke3RpbWVvdXR9ICgke3V0aWxzLnBlcmNlbnQoCisgICAg
ICAgICAgICAgICAgICAgICAgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICB0b3RhbFRl
c3RSZXN1bHRzCisgICAgICAgICAgICAgICAgICAgICl9JSlgLAorICAgICAgICAgICAgICAgICAg
fSwKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQ6ICJ0ZCIsCiAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJoYXMtdGV4dC1pbmZvIiwKICAgICAgICAgICAgICAg
ICAgICAgc3R5bGU6IGBvdmVyZmxvdzogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgd2lk
dGg6ICR7d2lkdGh9YCwKLSAgICAgICAgICAgICAgICAgICAgdGV4dDogYCR7bm90UnVufSAoJHt1
dGlscy5wZXJjZW50KG5vdFJ1biwgdG90YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke25vdFJ1bn0gKCR7dXRpbHMucGVy
Y2VudCgKKyAgICAgICAgICAgICAgICAgICAgICBub3RSdW4sCisgICAgICAgICAgICAgICAgICAg
ICAgdG90YWxUZXN0UmVzdWx0cworICAgICAgICAgICAgICAgICAgICApfSUpYCwKKyAgICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICBlbGVtZW50OiAidGQiLApAQCAtMTE3Nyw4ICsxMTg0LDggQEAKICAgICAg
ICAgICAgICAgICAgICAgdGV4dDogYCR7Y29tcGxldGV9LyR7dG90YWx9ICgke3V0aWxzLnBlcmNl
bnQoCiAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgdG90YWwKLSAgICAgICAgICAgICAgICAgICAgKX0lKWAKLSAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgKX0lKWAsCisgICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgZWxlbWVu
dDogInRkIiwKQEAgLTExOTEsMzEgKzExOTgsMzIgQEAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xhc3NOYW1lOiAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrOiAoKSA9PiByZXN1bHRVaS5kb3dubG9hZEFw
aVJlc3VsdEpzb24oYXBpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogImpzb24i
LAotICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYERvd25sb2FkIHJlc3VsdHMgb2Yg
JHthcGl9IEFQSSBhcyBKU09OIGZpbGUuYAotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYERvd25sb2FkIHJlc3VsdHMgb2YgJHthcGl9
IEFQSSBhcyBKU09OIGZpbGUuYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAg
ICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHRVaS5zdGF0ZS5y
ZXBvcnRzRW5hYmxlZCA/Ci0gICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiY29udHJvbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogewotICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJidXR0b24g
aXMtZGFyayBpcy1vdXRsaW5lZCBpcy1zbWFsbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IGRpc2FibGVkOiAhaXNEb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrOiAo
KSA9PiByZXN1bHRVaS5vcGVuSHRtbFJlcG9ydChhcGkpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXh0OiAicmVwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGBT
aG93IHJlc3VsdHMgb2YgJHthcGl9IEFQSSBpbiBXUFQgUmVwb3J0IGZvcm1hdC5gCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfSA6IG51bGwKLSAgICAg
ICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFVpLnN0YXRlLnJl
cG9ydHNFbmFibGVkCisgICAgICAgICAgICAgICAgICAgICAgICA/IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250cm9sIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGlsZHJlbjogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NO
YW1lOiAiYnV0dG9uIGlzLWRhcmsgaXMtb3V0bGluZWQgaXMtc21hbGwiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFpc0RvbmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbmNsaWNrOiAoKSA9PiByZXN1bHRVaS5vcGVuSHRtbFJlcG9ydChhcGkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogInJlcG9ydCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aXRsZTogYFNob3cgcmVzdWx0cyBvZiAke2FwaX0gQVBJIGlu
IFdQVCBSZXBvcnQgZm9ybWF0LmAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxs
LAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
fSk7CiAKICAgICAgICAgICBjb25zdCB7IHBhc3MsIGZhaWwsIHRpbWVvdXQsIG5vdF9ydW4sIGNv
bXBsZXRlLCB0b3RhbCB9ID0gYXBpcy5yZWR1Y2UoCiAgICAgICAgICAgICAoc3VtLCBhcGkpID0+
IHsKICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc3VtKS5mb3JFYWNoKAotICAgICAgICAgICAg
ICAgIGtleSA9PiAoc3VtW2tleV0gKz0gcmVzdWx0c1thcGldW2tleV0gPyByZXN1bHRzW2FwaV1b
a2V5XSA6IDApCisgICAgICAgICAgICAgICAgKGtleSkgPT4gKHN1bVtrZXldICs9IHJlc3VsdHNb
YXBpXVtrZXldID8gcmVzdWx0c1thcGldW2tleV0gOiAwKQogICAgICAgICAgICAgICApOwogICAg
ICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICAgICAgfSwKQEAgLTEyMzQsMzEgKzEyNDIs
NDMgQEAKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRoIiwKICAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogYGNvbG9yOiBo
c2woMTQxLCA3MSUsIDM4JSk7IG92ZXJmbG93OiB2aXNpYmxlOyB3aGl0ZS1zcGFjZTogbm93cmFw
OyB3aWR0aDogJHt3aWR0aH1gLAotICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGAke3Bhc3N9
ICgke3V0aWxzLnBlcmNlbnQocGFzcywgdG90YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHtwYXNzfSAoJHt1dGls
cy5wZXJjZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRvdGFsVGVzdFJlc3VsdHMKKyAgICAgICAgICAgICAgICAgICAgICApfSUpYCwK
KyAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJ0aCIsCiAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGBvdmVy
ZmxvdzogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgd2lkdGg6ICR7d2lkdGh9YCwKICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJoYXMtdGV4dC1kYW5nZXIiLAotICAgICAg
ICAgICAgICAgICAgICAgIHRleHQ6IGAke2ZhaWx9ICgke3V0aWxzLnBlcmNlbnQoZmFpbCwgdG90
YWxUZXN0UmVzdWx0cyl9JSlgCi0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0OiBgJHtmYWlsfSAoJHt1dGlscy5wZXJjZW50KAorICAgICAgICAgICAgICAg
ICAgICAgICAgZmFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsVGVzdFJlc3VsdHMK
KyAgICAgICAgICAgICAgICAgICAgICApfSUpYCwKKyAgICAgICAgICAgICAgICAgICAgfSwKICAg
ICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQ6ICJ0aCIsCiAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAg
ICAgICAgICAgICAgICAgICAgc3R5bGU6IGBjb2xvcjogaHNsKDQ4LCAxMDAlLCA0MCUpOyBvdmVy
ZmxvdzogdmlzaWJsZTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgd2lkdGg6ICR7d2lkdGh9YCwKLSAg
ICAgICAgICAgICAgICAgICAgICB0ZXh0OiBgJHt0aW1lb3V0fSAoJHt1dGlscy5wZXJjZW50KHRp
bWVvdXQsIHRvdGFsVGVzdFJlc3VsdHMpfSUpYAotICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgdGV4dDogYCR7dGltZW91dH0gKCR7dXRpbHMucGVyY2VudCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICB0
b3RhbFRlc3RSZXN1bHRzCisgICAgICAgICAgICAgICAgICAgICAgKX0lKWAsCisgICAgICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAidGgiLAogICAgICAgICAgICAgICAgICAgICBj
aGlsZHJlbjogewogICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBgb3ZlcmZsb3c6IHZpc2li
bGU7IHdoaXRlLXNwYWNlOiBub3dyYXA7IHdpZHRoOiAke3dpZHRofWAsCiAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lOiAiaGFzLXRleHQtaW5mbyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgdGV4dDogYCR7bm90X3J1bn0gKCR7dXRpbHMucGVyY2VudChub3RfcnVuLCB0b3RhbFRlc3RS
ZXN1bHRzKX0lKWAKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
IHRleHQ6IGAke25vdF9ydW59ICgke3V0aWxzLnBlcmNlbnQoCisgICAgICAgICAgICAgICAgICAg
ICAgICBub3RfcnVuLAorICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxUZXN0UmVzdWx0cwor
ICAgICAgICAgICAgICAgICAgICAgICl9JSlgLAorICAgICAgICAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgZWxlbWVudDogInRoIiwKQEAgLTEyNjcsMTMgKzEyODcsMTMgQEAKICAgICAgICAgICAgICAg
ICAgICAgICB0ZXh0OiBgJHtjb21wbGV0ZX0vJHt0b3RhbH0gKCR7dXRpbHMucGVyY2VudCgKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlLAogICAgICAgICAgICAgICAgICAgICAgICAg
dG90YWwKLSAgICAgICAgICAgICAgICAgICAgICApfSUpYAotICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgKX0lKWAsCisgICAgICAgICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAidGgiIH0K
LSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAg
ICAgICAgICAgICAgIHsgZWxlbWVudDogInRoIiB9LAorICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogCiAgICAgICAgICAg
Y29uc3QgcmVzdWx0c1RhYmxlID0gVUkuY3JlYXRlRWxlbWVudCh7CkBAIC0xMjg2LDggKzEzMDYs
OCBAQAogICAgICAgICAgICAgICBpZDogInJlc3VsdHMtdGFibGUiLAogICAgICAgICAgICAgICBz
dHlsZToKICAgICAgICAgICAgICAgICAid2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMzBlbTsgYm9y
ZGVyLXJhZGl1czogM3B4OyBib3JkZXI6IDJweCBzb2xpZCBoc2woMCwgMCUsIDg2JSk7IiwKLSAg
ICAgICAgICAgICAgY2hpbGRyZW46IFtoZWFkZXIsIHsgZWxlbWVudDogInRib2R5IiwgY2hpbGRy
ZW46IHJvd3MgfSwgZm9vdGVyXQotICAgICAgICAgICAgfQorICAgICAgICAgICAgICBjaGlsZHJl
bjogW2hlYWRlciwgeyBlbGVtZW50OiAidGJvZHkiLCBjaGlsZHJlbjogcm93cyB9LCBmb290ZXJd
LAorICAgICAgICAgICAgfSwKICAgICAgICAgICB9KTsKICAgICAgICAgICBhcGlSZXN1bHRzVmll
dy5hcHBlbmRDaGlsZChyZXN1bHRzVGFibGUpOwogCkBAIC0xMzA4LDcgKzEzMjgsNyBAQAogCiAg
ICAgICAgICAgY29uc3QgaGVhZGluZyA9IFVJLmNyZWF0ZUVsZW1lbnQoewogICAgICAgICAgICAg
Y2xhc3NOYW1lOiAidGl0bGUgaXMtNCIsCi0gICAgICAgICAgICB0ZXh0OiAiRXhwb3J0IgorICAg
ICAgICAgICAgdGV4dDogIkV4cG9ydCIsCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgZXhwb3J0
RWxlbWVudC5hcHBlbmRDaGlsZChoZWFkaW5nKTsKIApAQCAtMTMxNyw3ICsxMzM3LDcgQEAKICAg
ICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBj
bGFzc05hbWU6ICJmaWVsZC1sYWJlbCIsCi0gICAgICAgICAgICAgICAgY2hpbGRyZW46IHsgY2xh
c3NOYW1lOiAibGFiZWwiLCB0ZXh0OiAiUmVzdWx0cyIgfQorICAgICAgICAgICAgICAgIGNoaWxk
cmVuOiB7IGNsYXNzTmFtZTogImxhYmVsIiwgdGV4dDogIlJlc3VsdHMiIH0sCiAgICAgICAgICAg
ICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVs
ZC1ib2R5IiwKQEAgLTEzMjgsNyArMTM0OCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb2x1bW4gaXMtOSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dDoKLSAgICAgICAgICAgICAgICAgICAgICAgICJEb3dubG9hZCByZXN1
bHRzIGZvciBpbXBvcnQgaW50byBvdGhlciBXTUFTIFRlc3QgU3VpdGUgaW5zdGFuY2VzLiIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJEb3dubG9hZCByZXN1bHRzIGZvciBpbXBvcnQgaW50byBv
dGhlciBXTUFTIFRlc3QgU3VpdGUgaW5zdGFuY2VzLiIsCiAgICAgICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6
ICJjb2x1bW4gaXMtMyIsCkBAIC0xMzQzLDE3ICsxMzYzLDE3IEBACiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xhc3NOYW1lOiAiaWNvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICJp
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImZhcyBmYS1maWxl
LWFyY2hpdmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLWZpbGUtYXJjaGl2ZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAic3BhbiIsIHRleHQ6ICJEb3dubG9h
ZCBaaXAiIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyBlbGVtZW50OiAic3BhbiIsIHRleHQ6ICJEb3dubG9hZCBaaXAiIH0sCisg
ICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICBdLAogICAgICAgICAgIH0pOwogICAg
ICAgICAgIGV4cG9ydEVsZW1lbnQuYXBwZW5kQ2hpbGQocmVzdWx0c0ZpZWxkKTsKIApAQCAtMTM2
NCw4ICsxMzg0LDggQEAKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1sYWJlbCIs
CiAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHsKICAgICAgICAgICAgICAgICAgIGNsYXNzTmFt
ZTogImxhYmVsIiwKLSAgICAgICAgICAgICAgICAgIHRleHQ6ICJBbGwgSlNPTiBGaWxlcyIKLSAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICB0ZXh0OiAiQWxsIEpTT04gRmlsZXMi
LAorICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTEzNzYsNyArMTM5
Niw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJjb2x1bW4gaXMtOSIsCiAgICAgICAgICAgICAgICAgICAgICAgdGV4dDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJEb3dubG9hZCBKU09OIGZpbGVzIGNvbnRhaW5pbmcgcmVzdWx0
cyBvZiBjb21wbGV0ZWQgdGVzdCBmaWxlcy4iCisgICAgICAgICAgICAgICAgICAgICAgICAiRG93
bmxvYWQgSlNPTiBmaWxlcyBjb250YWluaW5nIHJlc3VsdHMgb2YgY29tcGxldGVkIHRlc3QgZmls
ZXMuIiwKICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogImNvbHVtbiBpcy0zIiwKQEAgLTEzOTAsMTcg
KzE0MTAsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJpY29u
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudDogImkiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLWZpbGUtYXJjaGl2ZSIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJm
YXMgZmEtZmlsZS1hcmNoaXZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICB7IGVs
ZW1lbnQ6ICJzcGFuIiwgdGV4dDogIkRvd25sb2FkIFppcCIgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgXQotICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJzcGFu
IiwgdGV4dDogIkRvd25sb2FkIFppcCIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIF0sCiAgICAgICAgICAgfSk7CiAgICAgICAgICAgZXhwb3J0RWxlbWVudC5hcHBlbmRD
aGlsZChqc29uRmllbGQpOwogCkBAIC0xNDExLDggKzE0MzEsOCBAQAogICAgICAgICAgICAgICAg
IGNsYXNzTmFtZTogImZpZWxkLWxhYmVsIiwKICAgICAgICAgICAgICAgICBjaGlsZHJlbjogewog
ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAibGFiZWwiLAotICAgICAgICAgICAgICAgICAg
dGV4dDogIlNlc3Npb24gcmVzdWx0IEhUTUwiCi0gICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgdGV4dDogIlNlc3Npb24gcmVzdWx0IEhUTUwiLAorICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGFz
c05hbWU6ICJmaWVsZC1ib2R5IiwKQEAgLTE0MjMsNyArMTQ0Myw3IEBACiAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb2x1bW4gaXMtOSIs
CiAgICAgICAgICAgICAgICAgICAgICAgdGV4dDoKLSAgICAgICAgICAgICAgICAgICAgICAgICJE
b3dubG9hZCB0aGlzIHNlc3Npb25zIHJlc3VsdCBhcyBzdGFuZGFsb25lIEhUTUwgcGFnZSwgc2lt
aWxhciB0byB0aGlzIHBhZ2UuIgorICAgICAgICAgICAgICAgICAgICAgICAgIkRvd25sb2FkIHRo
aXMgc2Vzc2lvbnMgcmVzdWx0IGFzIHN0YW5kYWxvbmUgSFRNTCBwYWdlLCBzaW1pbGFyIHRvIHRo
aXMgcGFnZS4iLAogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiY29sdW1uIGlzLTMiLApAQCAtMTQz
NywxNyArMTQ1NywxNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
Imljb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiAiaSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMgZmEtY29kZSIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJmYXMg
ZmEtY29kZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgeyBlbGVtZW50OiAic3Bh
biIsIHRleHQ6ICJEb3dubG9hZCBIVE1MIiB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBdCi0g
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVudDogInNwYW4iLCB0ZXh0OiAi
RG93bmxvYWQgSFRNTCIgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIF0s
CiAgICAgICAgICAgfSk7CiAgICAgICAgICAgZXhwb3J0RWxlbWVudC5hcHBlbmRDaGlsZChodG1s
RmllbGQpOwogICAgICAgICB9LApAQCAtMTQ1NSw3ICsxNDc1LDcgQEAKICAgICAgICAgICBjb25z
dCBtYWxmdW5jdGlvbmluZ1Rlc3RzVmlldyA9IFVJLmNyZWF0ZUVsZW1lbnQoe30pOwogICAgICAg
ICAgIGNvbnN0IGhlYWRpbmcgPSBVSS5jcmVhdGVFbGVtZW50KHsKICAgICAgICAgICAgIGNsYXNz
TmFtZTogInRpdGxlIGlzLTQiLAotICAgICAgICAgICAgdGV4dDogIk1hbGZ1bmN0aW9uaW5nIFRl
c3RzIgorICAgICAgICAgICAgdGV4dDogIk1hbGZ1bmN0aW9uaW5nIFRlc3RzIiwKICAgICAgICAg
ICB9KTsKICAgICAgICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzVmlldy5hcHBlbmRDaGlsZChoZWFk
aW5nKTsKIApAQCAtMTQ3MiwxNCArMTQ5MiwxNCBAQAogICAgICAgICAgICAgICAgICAgICBlbGVt
ZW50OiAidHIiLAogICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAg
ICAgICAgICAgIHsgZWxlbWVudDogInRkIiwgdGV4dDogIlRlc3QgRmlsZSIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6ICIiIH0KLSAgICAgICAgICAgICAg
ICAgICAgXQotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgICAgICAgICAgICB7IGVsZW1lbnQ6ICJ0ZCIsIHRleHQ6ICIiIH0sCisgICAgICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBlbGVtZW50OiAi
dGJvZHkiLAotICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBtYWxmdW5jdGlvbmluZ1Rlc3RzLm1h
cChwYXRoID0+ICh7CisgICAgICAgICAgICAgICAgY2hpbGRyZW46IG1hbGZ1bmN0aW9uaW5nVGVz
dHMubWFwKChwYXRoKSA9PiAoewogICAgICAgICAgICAgICAgICAgZWxlbWVudDogInRyIiwKICAg
ICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgZWxlbWVu
dDogInRkIiwgdGV4dDogcGF0aCB9LApAQCAtMTUwMCwxNyArMTUyMCwxNyBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogWwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1l
bnQ6ICJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTog
ImZhcyBmYS10cmFzaC1hbHQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgIF0K
LSAgICAgICAgICAgICAgICB9KSkKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgXQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAiZmFzIGZhLXRyYXNo
LWFsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgfSkpLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgXSwKICAgICAg
ICAgICB9KTsKICAgICAgICAgICBpZiAobWFsZnVuY3Rpb25pbmdUZXN0cy5sZW5ndGggPiAwKSB7
CiAgICAgICAgICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzVmlldy5hcHBlbmRDaGlsZCgKQEAgLTE1
MTgsMTMgKzE1MzgsMTMgQEAKICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICJjb250YWluZXIi
LAogICAgICAgICAgICAgICAgIHN0eWxlOiAib3ZlcmZsb3cteDogYXV0byIsCiAgICAgICAgICAg
ICAgICAgaWQ6ICJtYWxmdW5jdGlvbmluZy1vdmVyZmxvdyIsCi0gICAgICAgICAgICAgICAgY2hp
bGRyZW46IHRlc3RzVGFibGUKKyAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGVzdHNUYWJsZSwK
ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICk7CiAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGNvbnN0IG5vVGVzdHNMYWJlbCA9IFVJLmNyZWF0ZUVsZW1lbnQoewogICAgICAg
ICAgICAgICB0ZXh0OiAiLSBObyBUZXN0cyBBdmFpbGFibGUgLSIsCi0gICAgICAgICAgICAgIHN0
eWxlOiAidGV4dC1hbGlnbjogY2VudGVyIgorICAgICAgICAgICAgICBzdHlsZTogInRleHQtYWxp
Z246IGNlbnRlciIsCiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIG1hbGZ1bmN0aW9uaW5n
VGVzdHNWaWV3LmFwcGVuZENoaWxkKG5vVGVzdHNMYWJlbCk7CiAgICAgICAgICAgfQpAQCAtMTUz
OCw3ICsxNTU4LDcgQEAKICAgICAgICAgICBtYWxmdW5jdGlvbmluZ1Rlc3RzRWxlbWVudC5hcHBl
bmRDaGlsZChtYWxmdW5jdGlvbmluZ1Rlc3RzVmlldyk7CiAKICAgICAgICAgICBVSS5sb2FkU2Ny
b2xsUG9zaXRpb24oIm1hbGZ1bmN0aW9uaW5nLW92ZXJmbG93Iik7Ci0gICAgICAgIH0KKyAgICAg
ICAgfSwKICAgICAgIH07CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cv
c3VibWl0cmVzdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3N1Ym1pdHJlc3VsdC5odG1sCmluZGV4IDAwMGM1YTEyMDhh
NjJhMjU1ODkwMzdkOGI1ZTk5NjQ0NWUyMWNmMzkuLjA3ZTlmMzUyMzUwMTZiYTQxYmQ1OTlkNWVl
ZDAzODgyNzhkMjdlZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvc3VibWl0cmVzdWx0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9z
dWJtaXRyZXN1bHQuaHRtbApAQCAtNTAsNyArNTAsNiBAQAogICAgICAgdmFyIHJlc3VsdERhdGE7
CiAgICAgICB2YXIgcmF3UmVzdWx0ID0gcGFyc2VkUXVlcnkucmVzdWx0OwogICAgICAgaWYgKHJh
d1Jlc3VsdCkgewotCWNvbnNvbGUubG9nKGRlY29kZVVSSUNvbXBvbmVudChyYXdSZXN1bHQpKTsK
ICAgICAgICAgcmVzdWx0RGF0YSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHJhd1Jl
c3VsdCkpOwogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3Rlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvdGVzdC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwNmIxOGZlZjZkNjAxMDY0YjRmNDAyYjZmOWVmOGRmZjgxZmJkMTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L3Rlc3QuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9IlVU
Ri04IiAvPgorICAgIDx0aXRsZT5DcmVhdGluZyBTZXNzaW9uIC0gV2ViIFBsYXRmb3JtIFRlc3Rz
PC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9idWxtYS0wLjcu
NS9idWxtYS5taW4uY3NzIiAvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3Nz
L3N0eWxlLmNzcyIgLz4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9tYWlu
LmNzcyIgLz4KKyAgICA8c2NyaXB0IHNyYz0ibGliL3dhdmUtc2VydmljZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHN0eWxlPgorICAgICAgI2NvbnNvbGUgeworICAgICAgICBmb250LWZhbWlseTogbW9u
b3NwYWNlOworICAgICAgfQorICAgICAgLnNwaW5uZXIgeworICAgICAgICBoZWlnaHQ6IDAuN2Vt
OworICAgICAgICB3aWR0aDogMC43ZW07CisgICAgICB9CisgICAgICAuZmEtcHVsc2UgeworICAg
ICAgICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBzdGVwcyg4KSBpbmZpbml0ZTsKKyAg
ICAgICAgYW5pbWF0aW9uOiBmYS1zcGluIDFzIHN0ZXBzKDgpIGluZmluaXRlOworICAgICAgfQor
ICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW4geworICAgICAgICAwJSB7CisgICAgICAg
ICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKKyAgICAgICAgICB0cmFuc2Zvcm06
IHJvdGF0ZSgwZGVnKTsKKyAgICAgICAgfQorICAgICAgICB0byB7CisgICAgICAgICAgLXdlYmtp
dC10cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7CisgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUo
MXR1cm4pOworICAgICAgICB9CisgICAgICB9CisgICAgICBAa2V5ZnJhbWVzIGZhLXNwaW4gewor
ICAgICAgICAwJSB7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsK
KyAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKKyAgICAgICAgfQorICAgICAgICB0
byB7CisgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7CisgICAgICAg
ICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOworICAgICAgICB9CisgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2VjdGlvbiBjbGFzcz0ic2VjdGlvbiI+
CisgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8aW1nIHNyYz0icmVzL3dh
dmVsb2dvXzIwMTYuanBnIiBhbHQ9IldBVkUgTG9nbyIgY2xhc3M9InNpdGUtbG9nbyIgLz4KKwor
ICAgICAgICA8aDEgY2xhc3M9InRpdGxlIGlzLXNwYWNlZCI+CisgICAgICAgICAgPHNwYW4+Cisg
ICAgICAgICAgICA8aW1nIHNyYz0icmVzL3NwaW5uZXItc29saWQuc3ZnIiBjbGFzcz0ic3Bpbm5l
ciBmYS1wdWxzZSIgLz4KKyAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgQ3JlYXRpbmcgU2Vz
c2lvbgorICAgICAgICA8L2gxPgorICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAg
ICA8ZGl2IGlkPSJkZXRhaWxzLXdyYXBwZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0
YWlsIj4KKyAgICAgICAgICAgICAgPGRpdj5SZWZlcmVuY2UgVG9rZW5zOjwvZGl2PgorICAgICAg
ICAgICAgICA8ZGl2IGlkPSJyZWZlcmVuY2UtdG9rZW5zIj48L2Rpdj4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGV0YWlsIj4KKyAgICAgICAgICAgICAgPGRp
dj5UZXN0IFBhdGhzOjwvZGl2PgorICAgICAgICAgICAgICA8ZGl2IGlkPSJ0ZXN0LXBhdGgiPjwv
ZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPC9kaXY+CisKKyAgICAgICAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAg
ICA8L3NlY3Rpb24+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBzY3JlZW5Db25zb2xlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgIHZhciBsb2cgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdmFyIHRleHQgPSAiIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB0ZXh0ICs9IGFyZ3VtZW50c1tp
XSArICIgIjsKKyAgICAgICAgfQorICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC8gL2dtLCAi
Jm5ic3A7Iik7CisgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoL1xuL2dtLCAiPGJyLz4iKTsK
KyAgICAgICAgc2NyZWVuQ29uc29sZS5pbm5lckhUTUwgKz0gIjxici8+IiArIHRleHQ7CisgICAg
ICB9OworCisgICAgICB3aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAg
IGxvZyhlcnJvcik7CisgICAgICB9OworCisgICAgICB2YXIgSE9TVE5BTUUgPSBsb2NhdGlvbi5o
b3N0bmFtZTsKKyAgICAgIHZhciBQT1JUID0gbG9jYXRpb24ucG9ydDsKKyAgICAgIHZhciBQUk9U
T0NPTCA9IGxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoLzovLCAiIik7CisgICAgICB2YXIgUVVF
UlkgPSBkZWNvZGVVUklDb21wb25lbnQobG9jYXRpb24uc2VhcmNoLnJlcGxhY2UoL1w/LywgIiIp
KTsKKyAgICAgIHZhciBtYXRjaCA9IFFVRVJZLm1hdGNoKC90b2tlbj0oW14mXSspLyk7CisgICAg
ICB2YXIgVE9LRU4gPSBtYXRjaCA/IG1hdGNoWzFdIDogbnVsbDsKKyAgICAgIFFVRVJZICs9IC9b
XD8mXXBhdGg9Ly50ZXN0KGxvY2F0aW9uLnNlYXJjaCkgPyAiIiA6ICImcmVzdW1lPTEiOworCisg
ICAgICB2YXIgcGFyc2VkUXVlcnkgPSB7fTsKKworICAgICAgdmFyIHBhcnRzID0gUVVFUlkuc3Bs
aXQoIiYiKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKKyAgICAgICAgdmFyIGtleSA9IHBhcnQuc3Bs
aXQoIj0iKVswXTsKKyAgICAgICAgdmFyIHZhbHVlID0gcGFydC5zcGxpdCgiPSIpWzFdOworICAg
ICAgICBwYXJzZWRRdWVyeVtrZXldID0gdmFsdWU7CisgICAgICB9CisKKyAgICAgIHZhciBpbmNs
dWRlZFRlc3RzID0gW107CisgICAgICB2YXIgcGF0aHMgPSBwYXJzZWRRdWVyeVsicGF0aCJdLnNw
bGl0KCIsIik7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGhzLmxlbmd0aDsgaSsrKSB7
CisgICAgICAgIHZhciBwYXRoID0gcGF0aHNbaV07CisgICAgICAgIGluY2x1ZGVkVGVzdHMucHVz
aChwYXRoLnRyaW0oKSk7CisgICAgICB9CisKKyAgICAgIHZhciBleGNsdWRlZFRlc3RzID0gWwor
ICAgICAgICAiL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvZHluYW1pYy1pbXBvcnQvbm8tYWN0aXZlLXNjcmlwdC1tYW51YWwtY2xhc3NpYy5odG1s
IiwKKyAgICAgICAgIi9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1l
bnQvbW9kdWxlL2R5bmFtaWMtaW1wb3J0L25vLWFjdGl2ZS1zY3JpcHQtbWFudWFsLW1vZHVsZS5o
dG1sIgorICAgICAgXTsKKworICAgICAgdmFyIHJlZmVyZW5jZVRva2VucyA9IFtdOworICAgICAg
aWYgKHBhcnNlZFF1ZXJ5WyJyZWZ0b2tlbiJdKSB7CisgICAgICAgIHZhciBwYXRocyA9IHBhcnNl
ZFF1ZXJ5WyJyZWZ0b2tlbiJdLnNwbGl0KCIsIik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcGF0aHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICB2YXIgcGF0aCA9IHBhdGhzW2ldOwor
ICAgICAgICAgIHJlZmVyZW5jZVRva2Vucy5wdXNoKHBhdGgudHJpbSgpKTsKKyAgICAgICAgfQor
ICAgICAgfQorCisgICAgICB2YXIgdGVzdFBhdGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdC1wYXRoIik7CisgICAgICB2YXIgcGF0aHMgPSBpbmNsdWRlZFRlc3RzOworICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgcGF0aCA9
IHBhdGhzW2ldOworICAgICAgICB0ZXN0UGF0aC5pbm5lclRleHQgKz0gcGF0aCArICJcbiI7Cisg
ICAgICB9CisgICAgICB2YXIgcmVmZXJlbmNlVG9rZW5zRWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWZlcmVuY2UtdG9rZW5zIik7CisgICAgICBpZiAocmVmZXJlbmNlVG9rZW5z
Lmxlbmd0aCA9PT0gMCkgeworICAgICAgICByZWZlcmVuY2VUb2tlbnNFbGVtZW50LmlubmVyVGV4
dCA9ICJub25lIjsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVmZXJlbmNlVG9rZW5zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIHRva2VuID0gcmVm
ZXJlbmNlVG9rZW5zW2ldOworICAgICAgICAgIHJlZmVyZW5jZVRva2Vuc0VsZW1lbnQuaW5uZXJU
ZXh0ICs9IHRva2VuICsgIlxuIjsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgbG9nKCJQbGVh
c2Ugd2FpdCAuLi4iKTsKKyAgICAgIFdhdmVTZXJ2aWNlLmNyZWF0ZVNlc3Npb24oCisgICAgICAg
IHsKKyAgICAgICAgICB0ZXN0czogeyBpbmNsdWRlOiBpbmNsdWRlZFRlc3RzLCBleGNsdWRlOiBl
eGNsdWRlZFRlc3RzIH0sCisgICAgICAgICAgcmVmZXJlbmNlVG9rZW5zOiByZWZlcmVuY2VUb2tl
bnMKKyAgICAgICAgfSwKKyAgICAgICAgZnVuY3Rpb24odG9rZW4pIHsKKyAgICAgICAgICBsb2co
IlNlc3Npb24gY3JlYXRlZCBzdWNjZXNzZnVsbHkhIFRva2VuOiAiICsgdG9rZW4pOworICAgICAg
ICAgIGxvZygiUmVkaXJlY3RpbmcgLi4uIik7CisgICAgICAgICAgbG9jYXRpb24uaHJlZiA9ICIv
bmV3c2Vzc2lvbi5odG1sP3Rva2VuPSIgKyB0b2tlbjsKKyAgICAgICAgfQorICAgICAgKTsKKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS93d3cvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBm
MmIwMTVhMDFlZGE1YmM0NzU3NjA4YzBjNzdmYzU5ZmE3MzY0YTYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDI3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvY29tcGFyaXNvbi5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9jb25m
aWd1cmF0aW9uLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L2Zhdmljb24uaWNvCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9maW5pc2guaHRtbAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvaW5kZXgu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2F2ZS93d3cvbmV3c2Vzc2lvbi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy9uZXh0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L292ZXJ2aWV3Lmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3BhdXNlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L3Jlc3VsdHMuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvc3VibWl0cmVzdWx0Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvd2ViZm9udHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzY5NGQ0ZmQ4MWY2MjhlZjM5
ODFlYTFlMDJkZDYwMzMyMjA4M2E3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwzMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93
ZWJmb250cy9mYS1icmFuZHMtNDAwLnN2ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtYnJhbmRzLTQwMC50dGYK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtYnJhbmRzLTQw
MC53b2ZmMgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtcmVndWxhci00MDAuZW90Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93YXZlL3d3dy93ZWJmb250cy9mYS1y
ZWd1bGFyLTQwMC5zdmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnR0ZgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9u
dHMvZmEtcmVndWxhci00MDAud29mZgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2F2ZS93d3cvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUv
d3d3L3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5z
dmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dh
dmUvd3d3L3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dhdmUvd3d3L3dlYmZvbnRzL2ZhLXNvbGlkLTkw
MC53b2ZmCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93YXZlL3d3dy93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyLy5n
aXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dlYmRyaXZlci8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NDEzZTBlZTQ1NWFkYzU0ODAw
OTgzMjBkMjU0ZmI5YzVjZWQ5MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci8uZ2l0aWdub3JlCkBA
IC0wLDAgKzEsMiBAQAord2ViZHJpdmVyLmVnZy1pbmZvLworKi5weWMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVy
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE5NWRiYzczMmVmZDc4YzQ3NzZjYmQ0NmU3ZWM2MzRjMWJlZWI5OTUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUubWQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2
ZXIvd2ViZHJpdmVyL2JpZGkvY2xpZW50LnB5CmluZGV4IDhkYTA2MDE5M2FkZTkzM2U1ZGFiYWRl
MWY3YWRlNjkxMGMwMDg3N2EuLmRiODE5MTdmZjgxNDhiNWU4ZjE5YmFhNTRhZWFlZGQ3ZDQwNDIw
M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL2NsaWVudC5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvYmlkaS9jbGllbnQucHkKQEAgLTEsMjYgKzEsMTEgQEAKIGltcG9ydCBhc3luY2lvCi1p
bXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQganNvbgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBzeXMK
IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Ci1mcm9tIHR5cGluZyBpbXBvcnQg
QW55LCBBd2FpdGFibGUsIENhbGxhYmxlLCBDb3JvdXRpbmUsIExpc3QsIE9wdGlvbmFsLCBNYXBw
aW5nLCBNdXRhYmxlTWFwcGluZworZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQXdhaXRhYmxlLCBD
YWxsYWJsZSwgTGlzdCwgT3B0aW9uYWwsIE1hcHBpbmcsIE11dGFibGVNYXBwaW5nCiBmcm9tIHVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKIAotaW1wb3J0IHdlYnNvY2tldHMK
LQorZnJvbSAuIGltcG9ydCBtb2R1bGVzCiBmcm9tIC5lcnJvciBpbXBvcnQgZnJvbV9lcnJvcl9k
ZXRhaWxzCi0KLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJkcml2ZXIuYmlkaSIpCi0K
LQotZGVmIGdldF9ydW5uaW5nX2xvb3AoKSAtPiBhc3luY2lvLkFic3RyYWN0RXZlbnRMb29wOgot
ICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDcpOgotICAgICAgICByZXR1cm4gYXN5bmNp
by5nZXRfcnVubmluZ19sb29wKCkKLSAgICAjIFVubGlrZSB0aGUgYWJvdmUsIHRoaXMgd2lsbCBh
Y3R1YWxseSBjcmVhdGUgYW4gZXZlbnQgbG9vcAotICAgICMgaWYgdGhlcmUgaXNuJ3Qgb25lOyBo
b3BlZnVsbHkgcnVubmluZyB0ZXN0cyBpbiBQeXRob24gPj0gMy43Ci0gICAgIyB3aWxsIGFsbG93
IHVzIHRvIGNhdGNoIGFueSBiZWhhdmlvdXIgZGlmZmVyZW5jZQotICAgIHJldHVybiBhc3luY2lv
LmdldF9ldmVudF9sb29wKCkKK2Zyb20gLnRyYW5zcG9ydCBpbXBvcnQgZ2V0X3J1bm5pbmdfbG9v
cCwgVHJhbnNwb3J0CiAKIAogY2xhc3MgQmlkaVNlc3Npb246CkBAIC05NiwxMSArODEsMTQgQEAg
Y2xhc3MgQmlkaVNlc3Npb246CiAKICAgICAgICAgc2VsZi5jb21tYW5kX2lkID0gMAogICAgICAg
ICBzZWxmLnBlbmRpbmdfY29tbWFuZHM6IE11dGFibGVNYXBwaW5nW2ludCwgImFzeW5jaW8uRnV0
dXJlW0FueV0iXSA9IHt9Ci0gICAgICAgIHNlbGYuZXZlbnRfbGlzdGVuZXJzOiBNdXRhYmxlTWFw
cGluZ1tPcHRpb25hbFtzdHJdLCBMaXN0W0NhbGxhYmxlW1tzdHIsIE1hcHBpbmdbc3RyLCBBbnld
XSwgQW55XV1dID0gZGVmYXVsdGRpY3QobGlzdCkKKyAgICAgICAgc2VsZi5ldmVudF9saXN0ZW5l
cnM6IE11dGFibGVNYXBwaW5nWworICAgICAgICAgICAgT3B0aW9uYWxbc3RyXSwKKyAgICAgICAg
ICAgIExpc3RbQ2FsbGFibGVbW3N0ciwgTWFwcGluZ1tzdHIsIEFueV1dLCBBbnldXQorICAgICAg
ICBdID0gZGVmYXVsdGRpY3QobGlzdCkKIAogICAgICAgICAjIE1vZHVsZXMuCiAgICAgICAgICMg
Rm9yIGVhY2ggbW9kdWxlLCBoYXZlIGEgcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoYXQgbW9kdWxl
Ci0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IFNlc3Npb24oc2VsZikKKyAgICAgICAgc2VsZi5zZXNz
aW9uID0gbW9kdWxlcy5TZXNzaW9uKHNlbGYpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYg
ZnJvbV9odHRwKGNscywKQEAgLTE0MywxMSArMTMxLDE2IEBAIGNsYXNzIEJpZGlTZXNzaW9uOgog
ICAgICAgICBzZWxmLnRyYW5zcG9ydCA9IFRyYW5zcG9ydChzZWxmLndlYnNvY2tldF91cmwsIHNl
bGYub25fbWVzc2FnZSwgbG9vcD1sb29wKQogCiAgICAgICAgIGlmIHNlbGYuc2Vzc2lvbl9pZCBp
cyBOb25lOgotICAgICAgICAgICAgc2VsZi5zZXNzaW9uX2lkLCBzZWxmLmNhcGFiaWxpdGllcyA9
IGF3YWl0IHNlbGYuc2Vzc2lvbi5uZXcoc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzKQorICAg
ICAgICAgICAgc2VsZi5zZXNzaW9uX2lkLCBzZWxmLmNhcGFiaWxpdGllcyA9IGF3YWl0IHNlbGYu
c2Vzc2lvbi5uZXcoCisgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVz
KQogCiAgICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LnN0YXJ0KCkKIAotICAgIGFzeW5jIGRl
ZiBzZW5kX2NvbW1hbmQoc2VsZiwgbWV0aG9kOiBzdHIsIHBhcmFtczogTWFwcGluZ1tzdHIsIEFu
eV0pIC0+IEF3YWl0YWJsZVtNYXBwaW5nW3N0ciwgQW55XV06CisgICAgYXN5bmMgZGVmIHNlbmRf
Y29tbWFuZCgKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbWV0aG9kOiBzdHIsCisgICAgICAgIHBh
cmFtczogTWFwcGluZ1tzdHIsIEFueV0KKyAgICApIC0+IEF3YWl0YWJsZVtNYXBwaW5nW3N0ciwg
QW55XV06CiAgICAgICAgICIiIlNlbmQgYSBjb21tYW5kIHRvIHRoZSByZW1vdGUgc2VydmVyIiIi
CiAgICAgICAgICMgdGhpcyBpc24ndCB0aHJlYWRzYWZlCiAgICAgICAgIHNlbGYuY29tbWFuZF9p
ZCArPSAxCkBAIC0xODYsMTEgKzE3OSwxMyBAQCBjbGFzcyBCaWRpU2Vzc2lvbjoKICAgICAgICAg
ZWxpZiAibWV0aG9kIiBpbiBkYXRhIGFuZCAicGFyYW1zIiBpbiBkYXRhOgogICAgICAgICAgICAg
IyBUaGlzIGlzIGFuIGV2ZW50CiAgICAgICAgICAgICBtZXRob2QgPSBkYXRhWyJtZXRob2QiXQor
ICAgICAgICAgICAgcGFyYW1zID0gZGF0YVsicGFyYW1zIl0KKwogICAgICAgICAgICAgbGlzdGVu
ZXJzID0gc2VsZi5ldmVudF9saXN0ZW5lcnMuZ2V0KG1ldGhvZCwgW10pCiAgICAgICAgICAgICBp
ZiBub3QgbGlzdGVuZXJzOgogICAgICAgICAgICAgICAgIGxpc3RlbmVycyA9IHNlbGYuZXZlbnRf
bGlzdGVuZXJzLmdldChOb25lLCBbXSkKICAgICAgICAgICAgIGZvciBsaXN0ZW5lciBpbiBsaXN0
ZW5lcnM6Ci0gICAgICAgICAgICAgICAgYXdhaXQgbGlzdGVuZXIobWV0aG9kLCBkYXRhWyJwYXJh
bXMiXSkKKyAgICAgICAgICAgICAgICBhd2FpdCBsaXN0ZW5lcihtZXRob2QsIHBhcmFtcykKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJVbmV4cGVjdGVkIG1l
c3NhZ2U6IHtkYXRhIXJ9IikKIApAQCAtMjAwLDEwICsxOTUsMTEgQEAgY2xhc3MgQmlkaVNlc3Np
b246CiAgICAgICAgIGF3YWl0IHNlbGYudHJhbnNwb3J0LmVuZCgpCiAgICAgICAgIHNlbGYudHJh
bnNwb3J0ID0gTm9uZQogCi0gICAgZGVmIGFkZF9ldmVudF9saXN0ZW5lcihzZWxmLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZTogT3B0aW9uYWxbc3RyXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZuOiBDYWxsYWJsZVtbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBBd2FpdGFibGVbQW55XV0pIC0+IENhbGxhYmxlW1tdLCBO
b25lXToKKyAgICBkZWYgYWRkX2V2ZW50X2xpc3RlbmVyKAorICAgICAgICBzZWxmLAorICAgICAg
ICBuYW1lOiBPcHRpb25hbFtzdHJdLAorICAgICAgICBmbjogQ2FsbGFibGVbW3N0ciwgTWFwcGlu
Z1tzdHIsIEFueV1dLCBBd2FpdGFibGVbQW55XV0KKyAgICApIC0+IENhbGxhYmxlW1tdLCBOb25l
XToKICAgICAgICAgIiIiQWRkIGEgbGlzdGVuZXIgZm9yIHRoZSBldmVudCB3aXRoIGEgZ2l2ZW4g
bmFtZS4KIAogICAgICAgICBJZiBuYW1lIGlzIE5vbmUsIHRoZSBsaXN0ZW5lciBpcyBjYWxsZWQg
Zm9yIGFsbCBtZXNzYWdlcyB0aGF0IGFyZSBub3Qgb3RoZXJ3aXNlCkBAIC0yMTcsMTc4ICsyMTMs
MyBAQCBjbGFzcyBCaWRpU2Vzc2lvbjoKICAgICAgICAgc2VsZi5ldmVudF9saXN0ZW5lcnNbbmFt
ZV0uYXBwZW5kKGZuKQogCiAgICAgICAgIHJldHVybiBsYW1iZGE6IHNlbGYuZXZlbnRfbGlzdGVu
ZXJzW25hbWVdLnJlbW92ZShmbikKLQotCi1jbGFzcyBUcmFuc3BvcnQ6Ci0gICAgIiIiTG93IGxl
dmVsIG1lc3NhZ2UgaGFuZGxlciBmb3IgdGhlIFdlYlNvY2tldHMgY29ubmVjdGlvbiIiIgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB1cmw6IHN0ciwKLSAgICAgICAgICAgICAgICAgbXNnX2hhbmRs
ZXI6IENhbGxhYmxlW1tNYXBwaW5nW3N0ciwgQW55XV0sIENvcm91dGluZVtBbnksIEFueSwgTm9u
ZV1dLAotICAgICAgICAgICAgICAgICBsb29wOiBPcHRpb25hbFthc3luY2lvLkFic3RyYWN0RXZl
bnRMb29wXSA9IE5vbmUpOgotICAgICAgICBzZWxmLnVybCA9IHVybAotICAgICAgICBzZWxmLmNv
bm5lY3Rpb246IE9wdGlvbmFsW3dlYnNvY2tldHMuV2ViU29ja2V0Q2xpZW50UHJvdG9jb2xdID0g
Tm9uZQotICAgICAgICBzZWxmLm1zZ19oYW5kbGVyID0gbXNnX2hhbmRsZXIKLSAgICAgICAgc2Vs
Zi5zZW5kX2J1ZjogTGlzdFtNYXBwaW5nW3N0ciwgQW55XV0gPSBbXQotCi0gICAgICAgIGlmIGxv
b3AgaXMgTm9uZToKLSAgICAgICAgICAgIGxvb3AgPSBnZXRfcnVubmluZ19sb29wKCkKLSAgICAg
ICAgc2VsZi5sb29wID0gbG9vcAotCi0gICAgICAgIHNlbGYucmVhZF9tZXNzYWdlX3Rhc2s6IE9w
dGlvbmFsW2FzeW5jaW8uVGFza1tBbnldXSA9IE5vbmUKLQotICAgIGFzeW5jIGRlZiBzdGFydChz
ZWxmKSAtPiBOb25lOgotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBhd2FpdCB3ZWJzb2NrZXRz
LmNsaWVudC5jb25uZWN0KHNlbGYudXJsKQotICAgICAgICBzZWxmLnJlYWRfbWVzc2FnZV90YXNr
ID0gc2VsZi5sb29wLmNyZWF0ZV90YXNrKHNlbGYucmVhZF9tZXNzYWdlcygpKQotCi0gICAgICAg
IGZvciBtc2cgaW4gc2VsZi5zZW5kX2J1ZjoKLSAgICAgICAgICAgIGF3YWl0IHNlbGYuX3NlbmQo
c2VsZi5jb25uZWN0aW9uLCBtc2cpCi0KLSAgICBhc3luYyBkZWYgc2VuZChzZWxmLCBkYXRhOiBN
YXBwaW5nW3N0ciwgQW55XSkgLT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9uIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgYXdhaXQgc2VsZi5fc2VuZChzZWxmLmNvbm5lY3Rpb24s
IGRhdGEpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnNlbmRfYnVmLmFwcGVuZChk
YXRhKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGFzeW5jIGRlZiBfc2VuZChjb25uZWN0aW9u
OiB3ZWJzb2NrZXRzLldlYlNvY2tldENsaWVudFByb3RvY29sLCBkYXRhOiBNYXBwaW5nW3N0ciwg
QW55XSkgLT4gTm9uZToKLSAgICAgICAgbXNnID0ganNvbi5kdW1wcyhkYXRhKQotICAgICAgICBs
b2dnZXIuZGVidWcoIuKGkiAlcyIsIG1zZykKLSAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5zZW5k
KG1zZykKLQotICAgIGFzeW5jIGRlZiBoYW5kbGUoc2VsZiwgbXNnOiBzdHIpIC0+IE5vbmU6Ci0g
ICAgICAgIGxvZ2dlci5kZWJ1Zygi4oaQICVzIiwgbXNnKQotICAgICAgICBkYXRhID0ganNvbi5s
b2Fkcyhtc2cpCi0gICAgICAgIGF3YWl0IHNlbGYubXNnX2hhbmRsZXIoZGF0YSkKLQotICAgIGFz
eW5jIGRlZiBlbmQoc2VsZikgLT4gTm9uZToKLSAgICAgICAgaWYgc2VsZi5jb25uZWN0aW9uOgot
ICAgICAgICAgICAgYXdhaXQgc2VsZi5jb25uZWN0aW9uLmNsb3NlKCkKLSAgICAgICAgICAgIHNl
bGYuY29ubmVjdGlvbiA9IE5vbmUKLQotICAgIGFzeW5jIGRlZiByZWFkX21lc3NhZ2VzKHNlbGYp
IC0+IE5vbmU6Ci0gICAgICAgIGFzc2VydCBzZWxmLmNvbm5lY3Rpb24gaXMgbm90IE5vbmUKLSAg
ICAgICAgYXN5bmMgZm9yIG1zZyBpbiBzZWxmLmNvbm5lY3Rpb246Ci0gICAgICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShtc2csIHN0cik6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiR290IGEgYmluYXJ5IG1lc3NhZ2UiKQotICAgICAgICAgICAgYXdhaXQgc2VsZi5oYW5kbGUo
bXNnKQotCi0KLWNsYXNzIGNvbW1hbmQ6Ci0gICAgIiIiRGVjb3JhdG9yIGZvciBpbXBsZW1lbnRp
bmcgYmlkaSBjb21tYW5kcwotCi0gICAgSW1wbGVtZW50aW5nIGEgY29tbWFuZCBpbnZvbHZlcyBz
cGVjaWZ5aW5nIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQKLSAgICBidWlsZHMgdGhlIHBhcmFtZXRl
cnMgdG8gdGhlIGNvbW1hbmQuIFRoZSBkZWNvcmF0b3IgYXJyYW5nZXMgdGhvc2UKLSAgICBwYXJh
bWV0ZXJzIHRvIGJlIHR1cm5lZCBpbnRvIGEgc2VuZF9jb21tYW5kIGNhbGwsIHVzaW5nIHRoZSBj
bGFzcwotICAgIGFuZCBtZXRob2QgbmFtZXMgdG8gZGV0ZXJtaW5lIHRoZSBtZXRob2QgaW4gdGhl
IGNhbGwuCi0KLSAgICBDb21tYW5kcyBkZWNvcmF0ZWQgaW4gdGhpcyB3YXkgZG9uJ3QgcmV0dXJu
IGEgZnV0dXJlLCBidXQgYXdhaXQKLSAgICB0aGUgYWN0dWFsIHJlc3BvbnNlLiBJbiBzb21lIGNh
c2VzIGl0IGNhbiBiZSB1c2VmdWwgdG8KLSAgICBwb3N0LXByb2Nlc3MgdGhpcyByZXNwb25zZSBi
ZWZvcmUgcmV0dXJuaW5nIGl0IHRvIHRoZSBjbGllbnQuIFRoaXMKLSAgICBjYW4gYmUgZG9uZSBi
eSBzcGVjaWZ5aW5nIGEgc2Vjb25kIGRlY29yYXRlZCBtZXRob2QgbGlrZQotICAgIEBjb21tYW5k
X25hbWUucmVzdWx0LiBUaGF0IG1ldGhvZCB3aWxsIHRoZW4gYmUgY2FsbGVkIG9uY2UgdGhlCi0g
ICAgcmVzdWx0IG9mIHRoZSBvcmlnaW5hbCBjb21tYW5kIGlzIGtub3duLCBhbmQgdGhlIHJldHVy
biB2YWx1ZSBvZgotICAgIHRoZSBtZXRob2QgdXNlZCBhcyB0aGUgcmVzcG9uc2Ugb2YgdGhlIGNv
bW1hbmQuCi0KLSAgICBTbyBmb3IgYW4gZXhhbXBsZSwgaWYgd2UgaGFkIGEgY29tbWFuZCB0ZXN0
LnRlc3RNZXRob2QsIHdoaWNoCi0gICAgcmV0dXJuZWQgYSByZXN1bHQgd2hpY2ggd2Ugd2FudCB0
byBjb252ZXJ0IHRvIGEgVGVzdFJlc3VsdCB0eXBlLAotICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBt
aWdodCBsb29rIGxpa2U6Ci0KLSAgICBjbGFzcyBUZXN0KEJpZGlNb2R1bGUpOgotICAgICAgICBA
Y29tbWFuZAotICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgdGVzdF9kYXRhPU5vbmUpOgot
ICAgICAgICAgICAgcmV0dXJuIHsidGVzdERhdGEiOiB0ZXN0X2RhdGF9Ci0KLSAgICAgICBAdGVz
dF9tZXRob2QucmVzdWx0Ci0gICAgICAgZGVmIGNvbnZlcnRfdGVzdF9tZXRob2RfcmVzdWx0KHNl
bGYsIHJlc3VsdCk6Ci0gICAgICAgICAgIHJldHVybiBUZXN0RGF0YSgqKnJlc3VsdCkKLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbjogQ2FsbGFibGVbLi4uLCBNYXBwaW5nW3N0
ciwgQW55XV0pOgotICAgICAgICBzZWxmLnBhcmFtc19mbiA9IGZuCi0gICAgICAgIHNlbGYucmVz
dWx0X2ZuOiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIEFueV1dID0gTm9uZQotCi0gICAgZGVmIHJl
c3VsdChzZWxmLCBmbjogQ2FsbGFibGVbW0FueSwgTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldXSwg
TWFwcGluZ1tzdHIsIEFueV1dKSAtPiBOb25lOgotICAgICAgICBzZWxmLnJlc3VsdF9mbiA9IGZu
Ci0KLSAgICBkZWYgX19zZXRfbmFtZV9fKHNlbGYsIG93bmVyOiBBbnksIG5hbWU6IHN0cikgLT4g
Tm9uZToKLSAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBjbGFzcyBpcyBjcmVhdGVk
Ci0gICAgICAgICMgc2VlIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2RhdGFt
b2RlbC5odG1sI29iamVjdC5fX3NldF9uYW1lX18KLSAgICAgICAgcGFyYW1zX2ZuID0gc2VsZi5w
YXJhbXNfZm4KLSAgICAgICAgcmVzdWx0X2ZuID0gc2VsZi5yZXN1bHRfZm4KLQotICAgICAgICBA
ZnVuY3Rvb2xzLndyYXBzKHBhcmFtc19mbikKLSAgICAgICAgYXN5bmMgZGVmIGlubmVyKHNlbGY6
IEFueSwgKiprd2FyZ3M6IEFueSkgLT4gQW55OgotICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1z
X2ZuKHNlbGYsICoqa3dhcmdzKQotCi0gICAgICAgICAgICAjIENvbnZlcnQgdGhlIGNsYXNzbmFt
ZSBhbmQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgYmlkaSBjb21tYW5kIG5hbWUKLSAgICAgICAgICAg
IG1vZF9uYW1lID0gb3duZXIuX19uYW1lX18ubG93ZXIoKQotICAgICAgICAgICAgaWYgaGFzYXR0
cihvd25lciwgInByZWZpeCIpOgotICAgICAgICAgICAgICAgIG1vZF9uYW1lID0gZiJ7b3duZXIu
cHJlZml4fTp7bW9kX25hbWV9IgotICAgICAgICAgICAgY21kX25hbWUgPSBmInttb2RfbmFtZX0u
e3RvX2NhbWVsY2FzZShuYW1lKX0iCi0KLSAgICAgICAgICAgIGZ1dHVyZSA9IGF3YWl0IHNlbGYu
c2Vzc2lvbi5zZW5kX2NvbW1hbmQoY21kX25hbWUsIHBhcmFtcykKLSAgICAgICAgICAgIHJlc3Vs
dCA9IGF3YWl0IGZ1dHVyZQotCi0gICAgICAgICAgICBpZiByZXN1bHRfZm4gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSByZXN1bHQgaWYgd2UgaGF2ZSBhIGNvbnZl
cnNpb24gZnVuY3Rpb24gZGVmaW5lZAotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdF9m
bihzZWxmLCByZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICAgICAgIyBP
dmVyd3JpdGUgdGhlIG1ldGhvZCBvbiB0aGUgb3duZXIgY2xhc3Mgd2l0aCB0aGUgd3JhcHBlcgot
ICAgICAgICBzZXRhdHRyKG93bmVyLCBuYW1lLCBpbm5lcikKLQotICAgIGRlZiBfX2NhbGxfXygq
YXJnczogQW55LCAqKmt3YXJnczogQW55KSAtPiBBd2FpdGFibGVbQW55XToKLSAgICAgICAgIyBU
aGlzIGlzbid0IHJlYWxseSB1c2VkLCBidXQgbXlweSBkb2Vzbid0IHVuZGVyc3RhbmQgX19zZXRf
bmFtZV9fCi0gICAgICAgIHBhc3MKLQotCi1kZWYgdG9fY2FtZWxjYXNlKG5hbWU6IHN0cikgLT4g
c3RyOgotICAgICIiIkNvbnZlcnQgYSBweXRob24gc3R5bGUgbWV0aG9kIG5hbWUgZm9vX2JhciB0
byBhIEJpRGkgY29tbWFuZCBuYW1lIGZvb0JhciIiIgotICAgIHBhcnRzID0gbmFtZS5zcGxpdCgi
XyIpCi0gICAgcGFydHNbMF0gPSBwYXJ0c1swXS5sb3dlcigpCi0gICAgZm9yIGkgaW4gcmFuZ2Uo
MSwgbGVuKHBhcnRzKSk6Ci0gICAgICAgIHBhcnRzW2ldID0gcGFydHNbaV0udGl0bGUoKQotICAg
IHJldHVybiAiIi5qb2luKHBhcnRzKQotCi0KLWNsYXNzIEJpZGlNb2R1bGU6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHNlc3Npb246IEJpZGlTZXNzaW9uKToKLSAgICAgICAgc2VsZi5zZXNzaW9u
ID0gc2Vzc2lvbgotCi0KLWNsYXNzIFNlc3Npb24oQmlkaU1vZHVsZSk6Ci0gICAgQGNvbW1hbmQK
LSAgICBkZWYgbmV3KHNlbGYsIGNhcGFiaWxpdGllczogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE1h
cHBpbmdbc3RyLCBNYXBwaW5nW3N0ciwgQW55XV06Ci0gICAgICAgIHJldHVybiB7ImNhcGFiaWxp
dGllcyI6IGNhcGFiaWxpdGllc30KLQotICAgIEBuZXcucmVzdWx0Ci0gICAgZGVmIF9uZXcoc2Vs
ZiwgcmVzdWx0OiBNYXBwaW5nW3N0ciwgQW55XSkgLT4gQW55OgotICAgICAgICByZXR1cm4gcmVz
dWx0LmdldCgic2Vzc2lvbl9pZCIpLCByZXN1bHQuZ2V0KCJjYXBhYmlsaXRpZXMiLCB7fSkKLQot
ICAgIEBjb21tYW5kCi0gICAgZGVmIHN1YnNjcmliZShzZWxmLAotICAgICAgICAgICAgICAgICAg
ZXZlbnRzOiBMaXN0W3N0cl0sCi0gICAgICAgICAgICAgICAgICBjb250ZXh0czogT3B0aW9uYWxb
TGlzdFtzdHJdXSA9IE5vbmUpIC0+IE1hcHBpbmdbc3RyLCBBbnldOgotICAgICAgICBwYXJhbXM6
IE11dGFibGVNYXBwaW5nW3N0ciwgQW55XSA9IHsiZXZlbnRzIjogZXZlbnRzfQotICAgICAgICBp
ZiBjb250ZXh0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHBhcmFtc1siY29udGV4dHMiXSA9
IGNvbnRleHRzCi0gICAgICAgIHJldHVybiBwYXJhbXMKLQotICAgIEBjb21tYW5kCi0gICAgZGVm
IHVuc3Vic2NyaWJlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgIGV2ZW50czogT3B0aW9uYWxb
TGlzdFtzdHJdXSA9IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGNvbnRleHRzOiBPcHRpb25h
bFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIsIEFueV06Ci0gICAgICAgIHBhcmFt
czogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVudHMiOiBldmVudHMgaWYgZXZlbnRz
IGlzIG5vdCBOb25lIGVsc2UgW119Ci0gICAgICAgIGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4dHMKLSAgICAgICAgcmV0dXJu
IHBhcmFtcwotCi0KLWNsYXNzIFRlc3QoQmlkaU1vZHVsZSk6Ci0gICAgIiIiVmVyeSB0ZW1wb3Jh
cnkgbW9kdWxlIHRoYXQgZG9lcyBub3RoaW5nLCBleGNlcHQgZGVtb25zdHJhdGUgYSB2ZW5kb3Ig
cHJlZml4IGFuZAotICAgIHByb3ZpZGUgYSB3YXkgdG8gd29yayB3aXRoIEdlY2tvJ3MgY3VycmVu
dCBza2VsZXRvbiBpbXBsZW1lbnRhdGlvbi4iIiIKLQotICAgIHByZWZpeCA9ICJtb3oiCi0KLSAg
ICBAY29tbWFuZAotICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAg
IHJldHVybiBrd2FyZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL21vZHVsZXMvX19p
bml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9tb2R1bGVzL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY3MzU0MDk4ZDFkMWZmZjg5ZDZkYjMxOWQ0MWU0ZDY0NGVjMmEyNjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9tb2R1bGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEs
MyBAQAorIyBmbGFrZTg6IG5vcWEKKworZnJvbSAuc2Vzc2lvbiBpbXBvcnQgU2Vzc2lvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL2JpZGkvbW9kdWxlcy9fbW9kdWxlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJp
dmVyL2JpZGkvbW9kdWxlcy9fbW9kdWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZDg1OWRhOWI3NTE4NWQ0
YjhiYmFmZjNkMGNlMmE0YzdkMzRkOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
YmlkaS9tb2R1bGVzL19tb2R1bGUucHkKQEAgLTAsMCArMSw4OCBAQAoraW1wb3J0IGZ1bmN0b29s
cworZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQXdhaXRhYmxlLCBDYWxsYWJsZSwgT3B0aW9uYWws
IE1hcHBpbmcsIE11dGFibGVNYXBwaW5nLCBUWVBFX0NIRUNLSU5HCisKK2lmIFRZUEVfQ0hFQ0tJ
Tkc6CisgICAgZnJvbSAuLmNsaWVudCBpbXBvcnQgQmlkaVNlc3Npb24KKworCitjbGFzcyBjb21t
YW5kOgorICAgICIiIkRlY29yYXRvciBmb3IgaW1wbGVtZW50aW5nIGJpZGkgY29tbWFuZHMuCisK
KyAgICBJbXBsZW1lbnRpbmcgYSBjb21tYW5kIGludm9sdmVzIHNwZWNpZnlpbmcgYW4gYXN5bmMg
ZnVuY3Rpb24gdGhhdAorICAgIGJ1aWxkcyB0aGUgcGFyYW1ldGVycyB0byB0aGUgY29tbWFuZC4g
VGhlIGRlY29yYXRvciBhcnJhbmdlcyB0aG9zZQorICAgIHBhcmFtZXRlcnMgdG8gYmUgdHVybmVk
IGludG8gYSBzZW5kX2NvbW1hbmQgY2FsbCwgdXNpbmcgdGhlIGNsYXNzCisgICAgYW5kIG1ldGhv
ZCBuYW1lcyB0byBkZXRlcm1pbmUgdGhlIG1ldGhvZCBpbiB0aGUgY2FsbC4KKworICAgIENvbW1h
bmRzIGRlY29yYXRlZCBpbiB0aGlzIHdheSBkb24ndCByZXR1cm4gYSBmdXR1cmUsIGJ1dCBhd2Fp
dAorICAgIHRoZSBhY3R1YWwgcmVzcG9uc2UuIEluIHNvbWUgY2FzZXMgaXQgY2FuIGJlIHVzZWZ1
bCB0bworICAgIHBvc3QtcHJvY2VzcyB0aGlzIHJlc3BvbnNlIGJlZm9yZSByZXR1cm5pbmcgaXQg
dG8gdGhlIGNsaWVudC4gVGhpcworICAgIGNhbiBiZSBkb25lIGJ5IHNwZWNpZnlpbmcgYSBzZWNv
bmQgZGVjb3JhdGVkIG1ldGhvZCBsaWtlCisgICAgQGNvbW1hbmRfbmFtZS5yZXN1bHQuIFRoYXQg
bWV0aG9kIHdpbGwgdGhlbiBiZSBjYWxsZWQgb25jZSB0aGUKKyAgICByZXN1bHQgb2YgdGhlIG9y
aWdpbmFsIGNvbW1hbmQgaXMga25vd24sIGFuZCB0aGUgcmV0dXJuIHZhbHVlIG9mCisgICAgdGhl
IG1ldGhvZCB1c2VkIGFzIHRoZSByZXNwb25zZSBvZiB0aGUgY29tbWFuZC4KKworICAgIFNvIGZv
ciBhbiBleGFtcGxlLCBpZiB3ZSBoYWQgYSBjb21tYW5kIHRlc3QudGVzdE1ldGhvZCwgd2hpY2gK
KyAgICByZXR1cm5lZCBhIHJlc3VsdCB3aGljaCB3ZSB3YW50IHRvIGNvbnZlcnQgdG8gYSBUZXN0
UmVzdWx0IHR5cGUsCisgICAgdGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGxvb2sgbGlrZToKKwor
ICAgIGNsYXNzIFRlc3QoQmlkaU1vZHVsZSk6CisgICAgICAgIEBjb21tYW5kCisgICAgICAgIGRl
ZiB0ZXN0X21ldGhvZChzZWxmLCB0ZXN0X2RhdGE9Tm9uZSk6CisgICAgICAgICAgICByZXR1cm4g
eyJ0ZXN0RGF0YSI6IHRlc3RfZGF0YX0KKworICAgICAgIEB0ZXN0X21ldGhvZC5yZXN1bHQKKyAg
ICAgICBkZWYgY29udmVydF90ZXN0X21ldGhvZF9yZXN1bHQoc2VsZiwgcmVzdWx0KToKKyAgICAg
ICAgICAgcmV0dXJuIFRlc3REYXRhKCoqcmVzdWx0KQorICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZuOiBDYWxsYWJsZVsuLi4sIE1hcHBpbmdbc3RyLCBBbnldXSk6CisgICAgICAg
IHNlbGYucGFyYW1zX2ZuID0gZm4KKyAgICAgICAgc2VsZi5yZXN1bHRfZm46IE9wdGlvbmFsW0Nh
bGxhYmxlWy4uLiwgQW55XV0gPSBOb25lCisKKyAgICBkZWYgcmVzdWx0KHNlbGYsIGZuOiBDYWxs
YWJsZVtbQW55LCBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV1dLCBNYXBwaW5nW3N0ciwgQW55XV0p
IC0+IE5vbmU6CisgICAgICAgIHNlbGYucmVzdWx0X2ZuID0gZm4KKworICAgIGRlZiBfX3NldF9u
YW1lX18oc2VsZiwgb3duZXI6IEFueSwgbmFtZTogc3RyKSAtPiBOb25lOgorICAgICAgICAjIFRo
aXMgaXMgY2FsbGVkIHdoZW4gdGhlIGNsYXNzIGlzIGNyZWF0ZWQKKyAgICAgICAgIyBzZWUgaHR0
cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwjb2JqZWN0Ll9f
c2V0X25hbWVfXworICAgICAgICBwYXJhbXNfZm4gPSBzZWxmLnBhcmFtc19mbgorICAgICAgICBy
ZXN1bHRfZm4gPSBzZWxmLnJlc3VsdF9mbgorCisgICAgICAgIEBmdW5jdG9vbHMud3JhcHMocGFy
YW1zX2ZuKQorICAgICAgICBhc3luYyBkZWYgaW5uZXIoc2VsZjogQW55LCAqKmt3YXJnczogQW55
KSAtPiBBbnk6CisgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXNfZm4oc2VsZiwgKiprd2FyZ3Mp
CisKKyAgICAgICAgICAgICMgQ29udmVydCB0aGUgY2xhc3NuYW1lIGFuZCB0aGUgbWV0aG9kIG5h
bWUgdG8gYSBiaWRpIGNvbW1hbmQgbmFtZQorICAgICAgICAgICAgbW9kX25hbWUgPSBvd25lci5f
X25hbWVfXy5sb3dlcigpCisgICAgICAgICAgICBpZiBoYXNhdHRyKG93bmVyLCAicHJlZml4Iik6
CisgICAgICAgICAgICAgICAgbW9kX25hbWUgPSBmIntvd25lci5wcmVmaXh9Onttb2RfbmFtZX0i
CisgICAgICAgICAgICBjbWRfbmFtZSA9IGYie21vZF9uYW1lfS57dG9fY2FtZWxjYXNlKG5hbWUp
fSIKKworICAgICAgICAgICAgZnV0dXJlID0gYXdhaXQgc2VsZi5zZXNzaW9uLnNlbmRfY29tbWFu
ZChjbWRfbmFtZSwgcGFyYW1zKQorICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZnV0dXJlCisK
KyAgICAgICAgICAgIGlmIHJlc3VsdF9mbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAj
IENvbnZlcnQgdGhlIHJlc3VsdCBpZiB3ZSBoYXZlIGEgY29udmVyc2lvbiBmdW5jdGlvbiBkZWZp
bmVkCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0X2ZuKHNlbGYsIHJlc3VsdCkKKyAg
ICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICAjIE92ZXJ3cml0ZSB0aGUgbWV0aG9k
IG9uIHRoZSBvd25lciBjbGFzcyB3aXRoIHRoZSB3cmFwcGVyCisgICAgICAgIHNldGF0dHIob3du
ZXIsIG5hbWUsIGlubmVyKQorCisgICAgZGVmIF9fY2FsbF9fKCphcmdzOiBBbnksICoqa3dhcmdz
OiBBbnkpIC0+IEF3YWl0YWJsZVtBbnldOgorICAgICAgICAjIFRoaXMgaXNuJ3QgcmVhbGx5IHVz
ZWQsIGJ1dCBteXB5IGRvZXNuJ3QgdW5kZXJzdGFuZCBfX3NldF9uYW1lX18KKyAgICAgICAgcGFz
cworCisKK2NsYXNzIEJpZGlNb2R1bGU6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb246
ICJCaWRpU2Vzc2lvbiIpOgorICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCisKKworZGVm
IHRvX2NhbWVsY2FzZShuYW1lOiBzdHIpIC0+IHN0cjoKKyAgICAiIiJDb252ZXJ0IGEgcHl0aG9u
IHN0eWxlIG1ldGhvZCBuYW1lIGZvb19iYXIgdG8gYSBCaURpIGNvbW1hbmQgbmFtZSBmb29CYXIi
IiIKKyAgICBwYXJ0cyA9IG5hbWUuc3BsaXQoIl8iKQorICAgIHBhcnRzWzBdID0gcGFydHNbMF0u
bG93ZXIoKQorICAgIGZvciBpIGluIHJhbmdlKDEsIGxlbihwYXJ0cykpOgorICAgICAgICBwYXJ0
c1tpXSA9IHBhcnRzW2ldLnRpdGxlKCkKKyAgICByZXR1cm4gIiIuam9pbihwYXJ0cykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL21vZHVsZXMvc2Vzc2lvbi5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9iaWRpL21vZHVsZXMvc2Vzc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzFmZWYzMGFlMTMxOTkzYWI4
YWRjMDIwNWZiYTExYmJkNmRlYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Jp
ZGkvbW9kdWxlcy9zZXNzaW9uLnB5CkBAIC0wLDAgKzEsMzEgQEAKK2Zyb20gdHlwaW5nIGltcG9y
dCBBbnksIExpc3QsIE9wdGlvbmFsLCBNYXBwaW5nLCBNdXRhYmxlTWFwcGluZworCitmcm9tIC5f
bW9kdWxlIGltcG9ydCBCaWRpTW9kdWxlLCBjb21tYW5kCisKKworY2xhc3MgU2Vzc2lvbihCaWRp
TW9kdWxlKToKKyAgICBAY29tbWFuZAorICAgIGRlZiBuZXcoc2VsZiwgY2FwYWJpbGl0aWVzOiBN
YXBwaW5nW3N0ciwgQW55XSkgLT4gTWFwcGluZ1tzdHIsIE1hcHBpbmdbc3RyLCBBbnldXToKKyAg
ICAgICAgcmV0dXJuIHsiY2FwYWJpbGl0aWVzIjogY2FwYWJpbGl0aWVzfQorCisgICAgQG5ldy5y
ZXN1bHQKKyAgICBkZWYgX25ldyhzZWxmLCByZXN1bHQ6IE1hcHBpbmdbc3RyLCBBbnldKSAtPiBB
bnk6CisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCJzZXNzaW9uX2lkIiksIHJlc3VsdC5nZXQo
ImNhcGFiaWxpdGllcyIsIHt9KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgc3Vic2NyaWJlKHNl
bGYsCisgICAgICAgICAgICAgICAgICBldmVudHM6IExpc3Rbc3RyXSwKKyAgICAgICAgICAgICAg
ICAgIGNvbnRleHRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSkgLT4gTWFwcGluZ1tzdHIs
IEFueV06CisgICAgICAgIHBhcmFtczogTXV0YWJsZU1hcHBpbmdbc3RyLCBBbnldID0geyJldmVu
dHMiOiBldmVudHN9CisgICAgICAgIGlmIGNvbnRleHRzIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgcGFyYW1zWyJjb250ZXh0cyJdID0gY29udGV4dHMKKyAgICAgICAgcmV0dXJuIHBhcmFtcwor
CisgICAgQGNvbW1hbmQKKyAgICBkZWYgdW5zdWJzY3JpYmUoc2VsZiwKKyAgICAgICAgICAgICAg
ICAgICAgZXZlbnRzOiBPcHRpb25hbFtMaXN0W3N0cl1dID0gTm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgY29udGV4dHM6IE9wdGlvbmFsW0xpc3Rbc3RyXV0gPSBOb25lKSAtPiBNYXBwaW5nW3N0
ciwgQW55XToKKyAgICAgICAgcGFyYW1zOiBNdXRhYmxlTWFwcGluZ1tzdHIsIEFueV0gPSB7ImV2
ZW50cyI6IGV2ZW50cyBpZiBldmVudHMgaXMgbm90IE5vbmUgZWxzZSBbXX0KKyAgICAgICAgaWYg
Y29udGV4dHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBwYXJhbXNbImNvbnRleHRzIl0gPSBj
b250ZXh0cworICAgICAgICByZXR1cm4gcGFyYW1zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
YmlkaS90cmFuc3BvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS90cmFuc3BvcnQucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGUwYTY3MGUxOGU4MTg3YjYwYTJlNmQ2MTJhZjZiZGU2ZjMzMzUxZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL3RyYW5zcG9ydC5weQpAQCAtMCwwICsxLDc0IEBA
CitpbXBvcnQgYXN5bmNpbworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgc3lz
Citmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ29yb3V0aW5lLCBMaXN0LCBPcHRp
b25hbCwgTWFwcGluZworCitpbXBvcnQgd2Vic29ja2V0cworCitsb2dnZXIgPSBsb2dnaW5nLmdl
dExvZ2dlcigid2ViZHJpdmVyLmJpZGkiKQorCisKK2RlZiBnZXRfcnVubmluZ19sb29wKCkgLT4g
YXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcDoKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgz
LCA3KToKKyAgICAgICAgcmV0dXJuIGFzeW5jaW8uZ2V0X3J1bm5pbmdfbG9vcCgpCisgICAgIyBV
bmxpa2UgdGhlIGFib3ZlLCB0aGlzIHdpbGwgYWN0dWFsbHkgY3JlYXRlIGFuIGV2ZW50IGxvb3AK
KyAgICAjIGlmIHRoZXJlIGlzbid0IG9uZTsgaG9wZWZ1bGx5IHJ1bm5pbmcgdGVzdHMgaW4gUHl0
aG9uID49IDMuNworICAgICMgd2lsbCBhbGxvdyB1cyB0byBjYXRjaCBhbnkgYmVoYXZpb3VyIGRp
ZmZlcmVuY2UKKyAgICByZXR1cm4gYXN5bmNpby5nZXRfZXZlbnRfbG9vcCgpCisKKworY2xhc3Mg
VHJhbnNwb3J0OgorICAgICIiIkxvdyBsZXZlbCBtZXNzYWdlIGhhbmRsZXIgZm9yIHRoZSBXZWJT
b2NrZXRzIGNvbm5lY3Rpb24iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsOiBzdHIsCisg
ICAgICAgICAgICAgICAgIG1zZ19oYW5kbGVyOiBDYWxsYWJsZVtbTWFwcGluZ1tzdHIsIEFueV1d
LCBDb3JvdXRpbmVbQW55LCBBbnksIE5vbmVdXSwKKyAgICAgICAgICAgICAgICAgbG9vcDogT3B0
aW9uYWxbYXN5bmNpby5BYnN0cmFjdEV2ZW50TG9vcF0gPSBOb25lKToKKyAgICAgICAgc2VsZi51
cmwgPSB1cmwKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uOiBPcHRpb25hbFt3ZWJzb2NrZXRzLldl
YlNvY2tldENsaWVudFByb3RvY29sXSA9IE5vbmUKKyAgICAgICAgc2VsZi5tc2dfaGFuZGxlciA9
IG1zZ19oYW5kbGVyCisgICAgICAgIHNlbGYuc2VuZF9idWY6IExpc3RbTWFwcGluZ1tzdHIsIEFu
eV1dID0gW10KKworICAgICAgICBpZiBsb29wIGlzIE5vbmU6CisgICAgICAgICAgICBsb29wID0g
Z2V0X3J1bm5pbmdfbG9vcCgpCisgICAgICAgIHNlbGYubG9vcCA9IGxvb3AKKworICAgICAgICBz
ZWxmLnJlYWRfbWVzc2FnZV90YXNrOiBPcHRpb25hbFthc3luY2lvLlRhc2tbQW55XV0gPSBOb25l
CisKKyAgICBhc3luYyBkZWYgc3RhcnQoc2VsZikgLT4gTm9uZToKKyAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gYXdhaXQgd2Vic29ja2V0cy5jbGllbnQuY29ubmVjdChzZWxmLnVybCkKKyAgICAg
ICAgc2VsZi5yZWFkX21lc3NhZ2VfdGFzayA9IHNlbGYubG9vcC5jcmVhdGVfdGFzayhzZWxmLnJl
YWRfbWVzc2FnZXMoKSkKKworICAgICAgICBmb3IgbXNnIGluIHNlbGYuc2VuZF9idWY6CisgICAg
ICAgICAgICBhd2FpdCBzZWxmLl9zZW5kKHNlbGYuY29ubmVjdGlvbiwgbXNnKQorCisgICAgYXN5
bmMgZGVmIHNlbmQoc2VsZiwgZGF0YTogTWFwcGluZ1tzdHIsIEFueV0pIC0+IE5vbmU6CisgICAg
ICAgIGlmIHNlbGYuY29ubmVjdGlvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGF3YWl0IHNl
bGYuX3NlbmQoc2VsZi5jb25uZWN0aW9uLCBkYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5zZW5kX2J1Zi5hcHBlbmQoZGF0YSkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBh
c3luYyBkZWYgX3NlbmQoCisgICAgICAgIGNvbm5lY3Rpb246IHdlYnNvY2tldHMuV2ViU29ja2V0
Q2xpZW50UHJvdG9jb2wsCisgICAgICAgIGRhdGE6IE1hcHBpbmdbc3RyLCBBbnldCisgICAgKSAt
PiBOb25lOgorICAgICAgICBtc2cgPSBqc29uLmR1bXBzKGRhdGEpCisgICAgICAgIGxvZ2dlci5k
ZWJ1Zygi4oaSICVzIiwgbXNnKQorICAgICAgICBhd2FpdCBjb25uZWN0aW9uLnNlbmQobXNnKQor
CisgICAgYXN5bmMgZGVmIGhhbmRsZShzZWxmLCBtc2c6IHN0cikgLT4gTm9uZToKKyAgICAgICAg
bG9nZ2VyLmRlYnVnKCLihpAgJXMiLCBtc2cpCisgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKG1z
ZykKKyAgICAgICAgYXdhaXQgc2VsZi5tc2dfaGFuZGxlcihkYXRhKQorCisgICAgYXN5bmMgZGVm
IGVuZChzZWxmKSAtPiBOb25lOgorICAgICAgICBpZiBzZWxmLmNvbm5lY3Rpb246CisgICAgICAg
ICAgICBhd2FpdCBzZWxmLmNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gTm9uZQorCisgICAgYXN5bmMgZGVmIHJlYWRfbWVzc2FnZXMoc2VsZikgLT4gTm9u
ZToKKyAgICAgICAgYXNzZXJ0IHNlbGYuY29ubmVjdGlvbiBpcyBub3QgTm9uZQorICAgICAgICBh
c3luYyBmb3IgbXNnIGluIHNlbGYuY29ubmVjdGlvbjoKKyAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKG1zZywgc3RyKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHb3Qg
YSBiaW5hcnkgbWVzc2FnZSIpCisgICAgICAgICAgICBhd2FpdCBzZWxmLmhhbmRsZShtc2cpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci9iaWRpL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzll
NzFhOThkNDdlYjEwNWUzNDU3MDBjOGY0ZDhlNTZjMTQ1NmFhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9iaWRpL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L2JpZGkvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvYmlkaS9jbGllbnQucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvYmlkaS9lcnJvci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9jbGllbnQucHkKaW5kZXggOWQzMTcxZjZhZjJkYWQ2NDg0YWRkYjE4MjBm
NTQ0MjFkZTcyYjk0ZC4uOWE1ZjI2ZDk4ZTNhYTU1NzYyN2EzMzZhODZlNTY0NzUyNmZiZGUwOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xp
ZW50LnB5CkBAIC0zMTYsNiArMzE2LDExIEBAIGNsYXNzIFdpbmRvdyhvYmplY3QpOgogICAgIGRl
ZiByZWN0KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9j
b21tYW5kKCJHRVQiLCAid2luZG93L3JlY3QiKQogCisgICAgQHJlY3Quc2V0dGVyICAjIHR5cGU6
IGlnbm9yZQorICAgIEBjb21tYW5kCisgICAgZGVmIHJlY3Qoc2VsZiwgbmV3X3JlY3QpOgorICAg
ICAgICBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2luZG93L3Jl
Y3QiLCBuZXdfcmVjdCkKKwogICAgIEBwcm9wZXJ0eSAgIyB0eXBlOiBpZ25vcmUKICAgICBAY29t
bWFuZAogICAgIGRlZiBzaXplKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYmUzODUxM2YxZmMwNjZkNzg5Y2Y4ZDYzNDk3NTkxOTE0ZmI0MGJkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZl
ci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93
ZWJkcml2ZXIvZXJyb3IucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvcHJvdG9jb2wucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2
ZXIvdHJhbnNwb3J0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L19f
aW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIu
LmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNw
b3J0L19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMg
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5
IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNw
b3J0L2gzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4
NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFl
Nzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvX19pbml0X18ucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFu
c3BvcnQvaDMvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvaDMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YnRyYW5zcG9ydC9oMy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWFhMmU4OWVhNzk0NjEzMmVkOWYzM2FlOTY1MDllN2U4YjcwMmRkYi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJ0cmFuc3BvcnQvaDMvY2Fwc3VsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L2gzL2hhbmRsZXIucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9y
dC9oMy90ZXN0X2NhcHN1bGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy93ZWJ0cmFuc3BvcnRfaDNfc2VydmVyLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy93ZWJ0cmFuc3BvcnRfaDNfc2VydmVyLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQv
aDMvd2VidHJhbnNwb3J0X2gzX3NlcnZlci5weQppbmRleCAyMzcxZGMyNDgwYTMwNTE1NmVhNzk3
NzE3ODUyYzVhMGY1MDU1MmEzLi4xZmY1Y2E4YjZjYTU2Zjg2OTg3ODU3MWY5Zjc2NDkyMjAwYWYy
ZjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9oMy93ZWJ0cmFuc3BvcnRfaDNfc2VydmVyLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJh
bnNwb3J0L2gzL3dlYnRyYW5zcG9ydF9oM19zZXJ2ZXIucHkKQEAgLTE0LDcgKzE0LDggQEAgZnJv
bSBhaW9xdWljLmFzeW5jaW8uY2xpZW50IGltcG9ydCBjb25uZWN0ICAjIHR5cGU6IGlnbm9yZQog
ZnJvbSBhaW9xdWljLmgzLmNvbm5lY3Rpb24gaW1wb3J0IEgzX0FMUE4sIEZyYW1lVHlwZSwgSDND
b25uZWN0aW9uLCBQcm90b2NvbEVycm9yLCBTZXR0aW5nICAjIHR5cGU6IGlnbm9yZQogZnJvbSBh
aW9xdWljLmgzLmV2ZW50cyBpbXBvcnQgSDNFdmVudCwgSGVhZGVyc1JlY2VpdmVkLCBXZWJUcmFu
c3BvcnRTdHJlYW1EYXRhUmVjZWl2ZWQsIERhdGFncmFtUmVjZWl2ZWQsIERhdGFSZWNlaXZlZCAg
IyB0eXBlOiBpZ25vcmUKIGZyb20gYWlvcXVpYy5xdWljLmNvbmZpZ3VyYXRpb24gaW1wb3J0IFF1
aWNDb25maWd1cmF0aW9uICAjIHR5cGU6IGlnbm9yZQotZnJvbSBhaW9xdWljLnF1aWMuY29ubmVj
dGlvbiBpbXBvcnQgc3RyZWFtX2lzX3VuaWRpcmVjdGlvbmFsICAjIHR5cGU6IGlnbm9yZQorZnJv
bSBhaW9xdWljLnF1aWMuY29ubmVjdGlvbiBpbXBvcnQgbG9nZ2VyIGFzIHF1aWNfY29ubmVjdGlv
bl9sb2dnZXIgICMgdHlwZTogaWdub3JlCitmcm9tIGFpb3F1aWMucXVpYy5jb25uZWN0aW9uIGlt
cG9ydCBzdHJlYW1faXNfdW5pZGlyZWN0aW9uYWwKIGZyb20gYWlvcXVpYy5xdWljLmV2ZW50cyBp
bXBvcnQgUXVpY0V2ZW50LCBQcm90b2NvbE5lZ290aWF0ZWQsIENvbm5lY3Rpb25UZXJtaW5hdGVk
LCBTdHJlYW1SZXNldCAgIyB0eXBlOiBpZ25vcmUKIGZyb20gYWlvcXVpYy50bHMgaW1wb3J0IFNl
c3Npb25UaWNrZXQgICMgdHlwZTogaWdub3JlCiAKQEAgLTM1LDYgKzM2LDEwIEBAIFNFUlZFUl9O
QU1FID0gJ3dlYnRyYW5zcG9ydC1oMy1zZXJ2ZXInCiBfbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlciA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogX2RvY19yb290OiBzdHIgPSAiIgogCisjIFNl
dCBhaW9xdWljJ3MgbG9nIGxldmVsIHRvIFdBUk5JTkcgdG8gc3VwcHJlc3Mgc29tZSBJTkZPIGxv
Z3Mgd2hpY2ggYXJlCisjIHJlY29yZGVkIGV2ZXJ5IGNvbm5lY3Rpb24gY2xvc2UuCitxdWljX2Nv
bm5lY3Rpb25fbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuV0FSTklORykKKwogCiBjbGFzcyBIM0Nv
bm5lY3Rpb25XaXRoRGF0YWdyYW0wNChIM0Nvbm5lY3Rpb24pOgogICAgICIiIgpAQCAtNDIsNiAr
NDcsOCBAQCBjbGFzcyBIM0Nvbm5lY3Rpb25XaXRoRGF0YWdyYW0wNChIM0Nvbm5lY3Rpb24pOgog
ICAgIEhUVFAgRGF0YWdyYW0gcHJvdG9jb2wuCiAgICAgIiIiCiAgICAgSDNfREFUQUdSQU1fMDQg
PSAweGZmZDI3NworICAgICMgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9k
cmFmdC1pZXRmLWh0dHBiaXMtaDMtd2Vic29ja2V0cy0wMCNzZWN0aW9uLTUKKyAgICBFTkFCTEVf
Q09OTkVDVF9QUk9UT0NPTCA9IDB4MDgKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJnczog
QW55LCAqKmt3YXJnczogQW55KSAtPiBOb25lOgogICAgICAgICBzdXBlcigpLl9faW5pdF9fKCph
cmdzLCAqKmt3YXJncykKQEAgLTU4LDYgKzY1LDcgQEAgY2xhc3MgSDNDb25uZWN0aW9uV2l0aERh
dGFncmFtMDQoSDNDb25uZWN0aW9uKToKICAgICAgICAgSDNfREFUQUdSQU1fMDQgPSBIM0Nvbm5l
Y3Rpb25XaXRoRGF0YWdyYW0wNC5IM19EQVRBR1JBTV8wNAogICAgICAgICBzZXR0aW5ncyA9IHN1
cGVyKCkuX2dldF9sb2NhbF9zZXR0aW5ncygpCiAgICAgICAgIHNldHRpbmdzW0gzX0RBVEFHUkFN
XzA0XSA9IDEKKyAgICAgICAgc2V0dGluZ3NbSDNDb25uZWN0aW9uV2l0aERhdGFncmFtMDQuRU5B
QkxFX0NPTk5FQ1RfUFJPVE9DT0xdID0gMQogICAgICAgICByZXR1cm4gc2V0dGluZ3MKIAogICAg
IEBwcm9wZXJ0eQpAQCAtMjAzLDYgKzIxMSw3IEBAIGNsYXNzIFdlYlRyYW5zcG9ydEgzUHJvdG9j
b2woUXVpY0Nvbm5lY3Rpb25Qcm90b2NvbCk6CiAKICAgICAgICAgcmVzcG9uc2VfaGVhZGVycyA9
IFsKICAgICAgICAgICAgIChiInNlcnZlciIsIFNFUlZFUl9OQU1FLmVuY29kZSgpKSwKKyAgICAg
ICAgICAgIChiInNlYy13ZWJ0cmFuc3BvcnQtaHR0cDMtZHJhZnQiLCBiImRyYWZ0MDIiKSwKICAg
ICAgICAgXQogICAgICAgICBzZWxmLl9oYW5kbGVyLmNvbm5lY3RfcmVjZWl2ZWQocmVzcG9uc2Vf
aGVhZGVycz1yZXNwb25zZV9oZWFkZXJzKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2VidHJhbnNwb3J0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NTZiYTYzZDMxMGE2MzBkYTZlODdiYzY4NDQzY2ExMjI3ZWMxMGMzLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJ0cmFuc3BvcnQvTUVUQS55bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYnRyYW5z
cG9ydC9SRUFETUUubWQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYnRyYW5zcG9ydC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2VidHJhbnNwb3J0L3JlcXVpcmVtZW50cy50
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJl
ZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4
YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHkKQEAgLTEgKzAs
MCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvYW5kcm9pZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L2FuZHJvaWQucHkKaW5kZXggYWI2ODQ3NDgwZWUyYzdjM2YyZDMyYTc4Y2Vm
Njg3M2NlMjE4N2E4ZS4uZDI1YWE0NzUzNTdlOGQ2ZGU1ZGRkYjY0YTZmNDRkZjc1NDJjZDFiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvYW5kcm9pZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9hbmRyb2lkLnB5CkBAIC04OCw4ICs4OCw4IEBAIGRlZiBp
bnN0YWxsX2FuZHJvaWRfcGFja2FnZXMobG9nZ2VyLCBzZGtfcGF0aCwgbm9fcHJvbXB0PUZhbHNl
KToKICAgICAgICAgcmFpc2UgT1NFcnJvcigiQ2FuJ3QgZmluZCBzZGttYW5hZ2VyIGF0ICVzIiAl
IHNka19tYW5hZ2VyX3BhdGgpCiAKICAgICBwYWNrYWdlcyA9IFsicGxhdGZvcm0tdG9vbHMiLAot
ICAgICAgICAgICAgICAgICJidWlsZC10b29sczszMC4wLjIiLAotICAgICAgICAgICAgICAgICJw
bGF0Zm9ybXM7YW5kcm9pZC0zMCIsCisgICAgICAgICAgICAgICAgImJ1aWxkLXRvb2xzOzMxLjAu
MCIsCisgICAgICAgICAgICAgICAgInBsYXRmb3JtczthbmRyb2lkLTMxIiwKICAgICAgICAgICAg
ICAgICAiZW11bGF0b3IiXQogCiAgICAgIyBUT0RPOiBtYWtlIHRoaXMgd29yayBub24taW50ZXJu
YWN0aXZlbHkKQEAgLTEwNiwxOCArMTA2LDE4IEBAIGRlZiBpbnN0YWxsX2FuZHJvaWRfcGFja2Fn
ZXMobG9nZ2VyLCBzZGtfcGF0aCwgbm9fcHJvbXB0PUZhbHNlKToKICAgICAgICAgcmFpc2Ugc3Vi
cHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IocHJvYy5yZXR1cm5jb2RlLCBjbWQpCiAKIAotZGVm
IGdldF9lbXVsYXRvcihzZGtfcGF0aCk6CitkZWYgZ2V0X2VtdWxhdG9yKHNka19wYXRoLCBkZXZp
Y2Vfc2VyaWFsPU5vbmUpOgogICAgIGlmIGFuZHJvaWRfZGV2aWNlIGlzIE5vbmU6CiAgICAgICAg
IGRvX2RlbGF5ZWRfaW1wb3J0cygpCiAgICAgaWYgIkFORFJPSURfU0RLX1JPT1QiIG5vdCBpbiBv
cy5lbnZpcm9uOgogICAgICAgICBvcy5lbnZpcm9uWyJBTkRST0lEX1NES19ST09UIl0gPSBzZGtf
cGF0aAogICAgIHN1YnN0cyA9IHsidG9wX3NyY2RpciI6IHdwdF9yb290LCAiVEFSR0VUX0NQVSI6
ICJ4ODYifQotICAgIGVtdWxhdG9yID0gYW5kcm9pZF9kZXZpY2UuQW5kcm9pZEVtdWxhdG9yKCIq
Iiwgc3Vic3RzPXN1YnN0cykKKyAgICBlbXVsYXRvciA9IGFuZHJvaWRfZGV2aWNlLkFuZHJvaWRF
bXVsYXRvcigiKiIsIHN1YnN0cz1zdWJzdHMsIGRldmljZV9zZXJpYWw9ZGV2aWNlX3NlcmlhbCkK
ICAgICBlbXVsYXRvci5lbXVsYXRvcl9wYXRoID0gb3MucGF0aC5qb2luKHNka19wYXRoLCAiZW11
bGF0b3IiLCAiZW11bGF0b3IiKQogICAgIHJldHVybiBlbXVsYXRvcgogCiAKLWRlZiBpbnN0YWxs
KGxvZ2dlciwgcmVpbnN0YWxsPUZhbHNlLCBub19wcm9tcHQ9RmFsc2UpOgorZGVmIGluc3RhbGwo
bG9nZ2VyLCByZWluc3RhbGw9RmFsc2UsIG5vX3Byb21wdD1GYWxzZSwgZGV2aWNlX3NlcmlhbD1O
b25lKToKICAgICBpZiByZWluc3RhbGw6CiAgICAgICAgIHVuaW5zdGFsbF9zZGsoKQogCkBAIC0x
MjgsMTggKzEyOCwxOCBAQCBkZWYgaW5zdGFsbChsb2dnZXIsIHJlaW5zdGFsbD1GYWxzZSwgbm9f
cHJvbXB0PUZhbHNlKToKICAgICBpZiAiQU5EUk9JRF9TREtfUk9PVCIgbm90IGluIG9zLmVudmly
b246CiAgICAgICAgIG9zLmVudmlyb25bIkFORFJPSURfU0RLX1JPT1QiXSA9IGRlc3QKIAotICAg
IGVtdWxhdG9yID0gZ2V0X2VtdWxhdG9yKGRlc3QpCisgICAgZW11bGF0b3IgPSBnZXRfZW11bGF0
b3IoZGVzdCwgZGV2aWNlX3NlcmlhbD1kZXZpY2Vfc2VyaWFsKQogICAgIHJldHVybiBlbXVsYXRv
cgogCiAKLWRlZiBzdGFydChsb2dnZXIsIGVtdWxhdG9yPU5vbmUsIHJlaW5zdGFsbD1GYWxzZSk6
CitkZWYgc3RhcnQobG9nZ2VyLCBlbXVsYXRvcj1Ob25lLCByZWluc3RhbGw9RmFsc2UsIGRldmlj
ZV9zZXJpYWw9Tm9uZSk6CiAgICAgaWYgcmVpbnN0YWxsOgogICAgICAgICBpbnN0YWxsKHJlaW5z
dGFsbD1UcnVlKQogCiAgICAgc2RrX3BhdGggPSBnZXRfc2RrX3BhdGgoTm9uZSkKIAogICAgIGlm
IGVtdWxhdG9yIGlzIE5vbmU6Ci0gICAgICAgIGVtdWxhdG9yID0gZ2V0X2VtdWxhdG9yKHNka19w
YXRoKQorICAgICAgICBlbXVsYXRvciA9IGdldF9lbXVsYXRvcihzZGtfcGF0aCwgZGV2aWNlX3Nl
cmlhbD1kZXZpY2Vfc2VyaWFsKQogCiAgICAgaWYgbm90IGVtdWxhdG9yLmNoZWNrX2F2ZCgpOgog
ICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkFuZHJvaWQgQVZEIG5vdCBmb3VuZCwgcGxlYXNlIHJ1
biB8bWFjaCBib290c3RyYXB8IikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5CmluZGV4
IDZhNDk0Yzg5MzczYWU4ZGUyYWFlN2QwMzE4ZjU4OGFiMmE0Mjc4MTEuLjRmMmIzODMzMzBiZGY0
NjkwN2VkMjRkY2RiOGE4YzUzYjM0MWNmZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nl
ci5weQpAQCAtNTIzLDcgKzUyMyw3IEBAIGNsYXNzIENocm9tZShCcm93c2VyKToKICAgICAiIiIK
IAogICAgIHByb2R1Y3QgPSAiY2hyb21lIgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVu
dHNfY2hyb21lLnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9taXVt
LnR4dCIKICAgICBwbGF0Zm9ybXMgPSB7CiAgICAgICAgICJMaW51eCI6ICJMaW51eCIsCiAgICAg
ICAgICJXaW5kb3dzIjogIldpbiIsCkBAIC04NTEsNyArODUxLDggQEAgY2xhc3MgQ2hyb21lQW5k
cm9pZEJhc2UoQnJvd3Nlcik6CiAKICAgICAgICAgY29tbWFuZCA9IFsnYWRiJ10KICAgICAgICAg
aWYgc2VsZi5kZXZpY2Vfc2VyaWFsOgotICAgICAgICAgICAgY29tbWFuZC5leHRlbmQoWyctcycs
IHNlbGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgICAgICAjIEFzc3VtZSB3ZSBoYXZlIHNhbWUg
dmVyc2lvbiBvZiBicm93c2VyIG9uIGFsbCBkZXZpY2VzCisgICAgICAgICAgICBjb21tYW5kLmV4
dGVuZChbJy1zJywgc2VsZi5kZXZpY2Vfc2VyaWFsWzBdXSkKICAgICAgICAgY29tbWFuZC5leHRl
bmQoWydzaGVsbCcsICdkdW1wc3lzJywgJ3BhY2thZ2UnLCBiaW5hcnldKQogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBvdXRwdXQgPSBjYWxsKCpjb21tYW5kKQpAQCAtODcwLDcgKzg3MSw3IEBA
IGNsYXNzIENocm9tZUFuZHJvaWQoQ2hyb21lQW5kcm9pZEJhc2UpOgogICAgICIiIgogCiAgICAg
cHJvZHVjdCA9ICJjaHJvbWVfYW5kcm9pZCIKLSAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1l
bnRzX2Nocm9tZV9hbmRyb2lkLnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRz
X2Nocm9taXVtLnR4dCIKIAogICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9u
ZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgaWYgY2hhbm5lbCBpbiAoImJldGEiLCAiZGV2Iiwg
ImNhbmFyeSIpOgpAQCAtODg2LDcgKzg4Nyw3IEBAIGNsYXNzIEFuZHJvaWRXZWJsYXllcihDaHJv
bWVBbmRyb2lkQmFzZSk6CiAKICAgICBwcm9kdWN0ID0gImFuZHJvaWRfd2VibGF5ZXIiCiAgICAg
IyBUT0RPKGFsdW8pOiByZXBsYWNlIHRoaXMgd2l0aCB3ZWJsYXllciB2ZXJzaW9uIGFmdGVyIHRl
c3RzIGFyZSB3b3JraW5nLgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfYW5kcm9p
ZF93ZWJ2aWV3LnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9taXVt
LnR4dCIKIAogICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5l
bD1Ob25lKToKICAgICAgICAgcmV0dXJuICJvcmcuY2hyb21pdW0ud2VibGF5ZXIuc2hlbGwiCkBA
IC05MDAsNyArOTAxLDcgQEAgY2xhc3MgQW5kcm9pZFdlYnZpZXcoQ2hyb21lQW5kcm9pZEJhc2Up
OgogICAgICIiIgogCiAgICAgcHJvZHVjdCA9ICJhbmRyb2lkX3dlYnZpZXciCi0gICAgcmVxdWly
ZW1lbnRzID0gInJlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0IgorICAgIHJlcXVpcmVt
ZW50cyA9ICJyZXF1aXJlbWVudHNfY2hyb21pdW0udHh0IgogCiAgICAgZGVmIGZpbmRfYmluYXJ5
KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICAjIEp1c3QgZ2V0
IHRoZSBjdXJyZW50IHBhY2thZ2UgbmFtZSBvZiB0aGUgV2ViVmlldyBwcm92aWRlci4KQEAgLTkz
MCw3ICs5MzEsNyBAQCBjbGFzcyBDaHJvbWVpT1MoQnJvd3Nlcik6CiAgICAgIiIiCiAKICAgICBw
cm9kdWN0ID0gImNocm9tZV9pb3MiCi0gICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19j
aHJvbWVfaW9zLnR4dCIKKyAgICByZXF1aXJlbWVudHMgPSBOb25lCiAKICAgICBkZWYgZG93bmxv
YWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIHJlbmFtZT1Ob25lKToKICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpAQCAtMTAzOCw3ICsxMDM5LDcgQEAgY2xhc3MgRWRn
ZUNocm9taXVtKEJyb3dzZXIpOgogICAgIH0uZ2V0KHVuYW1lWzBdKQogICAgIHByb2R1Y3QgPSAi
ZWRnZWNocm9taXVtIgogICAgIGVkZ2Vkcml2ZXJfbmFtZSA9ICJtc2VkZ2Vkcml2ZXIiCi0gICAg
cmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dCIKKyAgICByZXF1
aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2Nocm9taXVtLnR4dCIKIAogICAgIGRlZiBkb3dubG9h
ZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgcmVuYW1lPU5vbmUpOgogICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCkBAIC0xMzE1LDcgKzEzMTYsNyBAQCBjbGFzcyBTZXJ2
byhCcm93c2VyKToKICAgICAiIiJTZXJ2by1zcGVjaWZpYyBpbnRlcmZhY2UuIiIiCiAKICAgICBw
cm9kdWN0ID0gInNlcnZvIgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfc2Vydm8u
dHh0IgorICAgIHJlcXVpcmVtZW50cyA9IE5vbmUKIAogICAgIGRlZiBwbGF0Zm9ybV9jb21wb25l
bnRzKHNlbGYpOgogICAgICAgICBwbGF0Zm9ybSA9IHsKQEAgLTE0MjEsNyArMTQyMiw3IEBAIGNs
YXNzIFdlYktpdChCcm93c2VyKToKICAgICAiIiJXZWJLaXQtc3BlY2lmaWMgaW50ZXJmYWNlLiIi
IgogCiAgICAgcHJvZHVjdCA9ICJ3ZWJraXQiCi0gICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVt
ZW50c193ZWJraXQudHh0IgorICAgIHJlcXVpcmVtZW50cyA9IE5vbmUKIAogICAgIGRlZiBkb3du
bG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgcmVuYW1lPU5vbmUpOgogICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCkBAIC0xNTc5LDcgKzE1ODAsNyBAQCBjbGFzcyBF
cGlwaGFueShCcm93c2VyKToKICAgICAiIiJFcGlwaGFueS1zcGVjaWZpYyBpbnRlcmZhY2UuIiIi
CiAKICAgICBwcm9kdWN0ID0gImVwaXBoYW55IgotICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJl
bWVudHNfZXBpcGhhbnkudHh0IgorICAgIHJlcXVpcmVtZW50cyA9IE5vbmUKIAogICAgIGRlZiBk
b3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgcmVuYW1lPU5vbmUpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
cmVxdWlyZW1lbnRzLnR4dAppbmRleCBkMWE4ZjdlYjY3YzQ1M2IwNDEyNDkwMTI4OGIxYTY3NTc4
NjYwYjM3Li41OGFmY2UwMWUwZWYyNzljZTY3ZDQ0OTlhOTIxNjJhYTRhNWRhYjgwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9yZXF1aXJlbWVudHMudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKQEAgLTEsMiArMSwyIEBACi1y
ZXF1ZXN0cz09Mi4yNi4wCityZXF1ZXN0cz09Mi4yNy4xCiBtb3ppbmZvPT0xLjIuMiAgIyBodHRw
czovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxMjI2CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9ydW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC9ydW4ucHkKaW5kZXggY2E5MGNjMWVlOTM5MGM4NDc3ZjBlMzQ4NzU1YmQ0YTZhNjYx
YzRhNi4uMDFjMjllYWU1M2ZjZWQ5OTU4NDkyOTZjYzUzNTlkMmYyY2U2YjlhNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
cnVuLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3J1bi5weQpAQCAtMTIxLDcgKzEyMSw4IEBAIGRlZiBjaGVja19lbnZpcm9uKHBy
b2R1Y3QpOgogCiAgICAgICAgIG1pc3NpbmdfaG9zdHMgPSBzZXQoZXhwZWN0ZWRfaG9zdHMpCiAg
ICAgICAgIGlmIGlzX3dpbmRvd3M6Ci0gICAgICAgICAgICBob3N0c19wYXRoID0gciIlc1xTeXN0
ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIgJSBvcy5lbnZpcm9uLmdldCgiU3lzdGVtUm9vdCIsIHIi
QzpcV2luZG93cyIpCisgICAgICAgICAgICBob3N0c19wYXRoID0gciIlc1xTeXN0ZW0zMlxkcml2
ZXJzXGV0Y1xob3N0cyIgJSBvcy5lbnZpcm9uLmdldCgKKyAgICAgICAgICAgICAgICAiU3lzdGVt
Um9vdCIsIHIiQzpcV2luZG93cyIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBob3N0c19w
YXRoID0gIi9ldGMvaG9zdHMiCiAKQEAgLTE3Niw4ICsxNzcsMTAgQEAgY2xhc3MgQnJvd3NlclNl
dHVwKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmluc3RhbGwoc2Vs
Zi52ZW52LnBhdGgsIGNoYW5uZWwpCiAKICAgICBkZWYgaW5zdGFsbF9yZXF1aXJlbWVudHMoc2Vs
Zik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnZlbnYuc2tpcF92aXJ0dWFsZW52X3NldHVwOgotICAg
ICAgICAgICAgc2VsZi52ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRf
cm9vdCwgInRvb2xzIiwgIndwdHJ1bm5lciIsIHNlbGYuYnJvd3Nlci5yZXF1aXJlbWVudHMpKQor
ICAgICAgICBpZiBub3Qgc2VsZi52ZW52LnNraXBfdmlydHVhbGVudl9zZXR1cCBhbmQgc2VsZi5i
cm93c2VyLnJlcXVpcmVtZW50czoKKyAgICAgICAgICAgIHNlbGYudmVudi5pbnN0YWxsX3JlcXVp
cmVtZW50cyhvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgICAgd3B0X3Jvb3QsICJ0b29scyIs
ICJ3cHRydW5uZXIiLCBzZWxmLmJyb3dzZXIucmVxdWlyZW1lbnRzKSkKKwogCiAgICAgZGVmIHNl
dHVwKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIHNlbGYuc2V0dXBfa3dhcmdzKGt3YXJncykKQEAg
LTI4NiwxNiArMjg5LDIzIEBAIGNsYXNzIEZpcmVmb3hBbmRyb2lkKEJyb3dzZXJTZXR1cCk6CiAg
ICAgICAgICAgICBrd2FyZ3NbInByZWZzX3Jvb3QiXSA9IHByZWZzX3Jvb3QKIAogICAgICAgICBp
ZiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdIGlzIE5vbmU6Ci0gICAgICAgICAgICBrd2FyZ3NbInBh
Y2thZ2VfbmFtZSJdID0gIm9yZy5tb3ppbGxhLmdlY2tvdmlldy50ZXN0IgorICAgICAgICAgICAg
a3dhcmdzWyJwYWNrYWdlX25hbWUiXSA9ICJvcmcubW96aWxsYS5nZWNrb3ZpZXcudGVzdF9ydW5u
ZXIiCiAgICAgICAgIGFwcCA9IGt3YXJnc1sicGFja2FnZV9uYW1lIl0KIAotICAgICAgICBpZiBr
d2FyZ3NbImRldmljZV9zZXJpYWwiXSBpcyBOb25lOgotICAgICAgICAgICAga3dhcmdzWyJkZXZp
Y2Vfc2VyaWFsIl0gPSAiZW11bGF0b3ItNTU1NCIKLQotICAgICAgICAjIFdlJ3JlIHJ1bm5pbmcg
b24gYW4gZW11bGF0b3Igc28gZW5zdXJlIHRoYXQncyBzZXQgdXAKLSAgICAgICAgaWYga3dhcmdz
WyJkZXZpY2Vfc2VyaWFsIl0uc3RhcnRzd2l0aCgiZW11bGF0b3ItIik6Ci0gICAgICAgICAgICBl
bXVsYXRvciA9IGFuZHJvaWQuaW5zdGFsbChsb2dnZXIsIHJlaW5zdGFsbD1GYWxzZSwgbm9fcHJv
bXB0PW5vdCBzZWxmLnByb21wdCkKLSAgICAgICAgICAgIGFuZHJvaWQuc3RhcnQobG9nZ2VyLCBl
bXVsYXRvcj1lbXVsYXRvciwgcmVpbnN0YWxsPUZhbHNlKQorICAgICAgICBpZiBub3Qga3dhcmdz
WyJkZXZpY2Vfc2VyaWFsIl06CisgICAgICAgICAgICBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSA9
IFsiZW11bGF0b3ItNTU1NCJdCisKKyAgICAgICAgZm9yIGRldmljZV9zZXJpYWwgaW4ga3dhcmdz
WyJkZXZpY2Vfc2VyaWFsIl06CisgICAgICAgICAgICBpZiBkZXZpY2Vfc2VyaWFsLnN0YXJ0c3dp
dGgoImVtdWxhdG9yLSIpOgorICAgICAgICAgICAgICAgICMgV2UncmUgcnVubmluZyBvbiBhbiBl
bXVsYXRvciBzbyBlbnN1cmUgdGhhdCdzIHNldCB1cAorICAgICAgICAgICAgICAgIGVtdWxhdG9y
ID0gYW5kcm9pZC5pbnN0YWxsKGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWluc3RhbGw9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbm9fcHJvbXB0PW5vdCBzZWxmLnByb21wdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPWRldmljZV9zZXJp
YWwpCisgICAgICAgICAgICAgICAgYW5kcm9pZC5zdGFydChsb2dnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbXVsYXRvcj1lbXVsYXRvciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlaW5zdGFsbD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRldmljZV9zZXJpYWw9ZGV2aWNlX3NlcmlhbCkKIAogICAgICAgICBpZiAiQURCX1BBVEgiIG5v
dCBpbiBvcy5lbnZpcm9uOgogICAgICAgICAgICAgYWRiX3BhdGggPSBvcy5wYXRoLmpvaW4oYW5k
cm9pZC5nZXRfc2RrX3BhdGgoTm9uZSksCkBAIC0zMDQsMTUgKzMxNCwxNiBAQCBjbGFzcyBGaXJl
Zm94QW5kcm9pZChCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgb3MuZW52aXJvblsiQURCX1BB
VEgiXSA9IGFkYl9wYXRoCiAgICAgICAgIGFkYl9wYXRoID0gb3MuZW52aXJvblsiQURCX1BBVEgi
XQogCi0gICAgICAgIGRldmljZSA9IG1vemRldmljZS5BREJEZXZpY2VGYWN0b3J5KGFkYj1hZGJf
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNl
PWt3YXJnc1siZGV2aWNlX3NlcmlhbCJdKQorICAgICAgICBmb3IgZGV2aWNlX3NlcmlhbCBpbiBr
d2FyZ3NbImRldmljZV9zZXJpYWwiXToKKyAgICAgICAgICAgIGRldmljZSA9IG1vemRldmljZS5B
REJEZXZpY2VGYWN0b3J5KGFkYj1hZGJfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRldmljZT1kZXZpY2Vfc2VyaWFsKQogCi0gICAgICAgIGlm
IHNlbGYuYnJvd3Nlci5hcGtfcGF0aDoKLSAgICAgICAgICAgIGRldmljZS51bmluc3RhbGxfYXBw
KGFwcCkKLSAgICAgICAgICAgIGRldmljZS5pbnN0YWxsX2FwcChzZWxmLmJyb3dzZXIuYXBrX3Bh
dGgpCi0gICAgICAgIGVsaWYgbm90IGRldmljZS5pc19hcHBfaW5zdGFsbGVkKGFwcCk6Ci0gICAg
ICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiYXBwICVzIG5vdCBpbnN0YWxsZWQgb24gZGV2aWNl
ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwLCBrd2FyZ3NbImRldmlj
ZV9zZXJpYWwiXSkpCisgICAgICAgICAgICBpZiBzZWxmLmJyb3dzZXIuYXBrX3BhdGg6CisgICAg
ICAgICAgICAgICAgZGV2aWNlLnVuaW5zdGFsbF9hcHAoYXBwKQorICAgICAgICAgICAgICAgIGRl
dmljZS5pbnN0YWxsX2FwcChzZWxmLmJyb3dzZXIuYXBrX3BhdGgpCisgICAgICAgICAgICBlbGlm
IG5vdCBkZXZpY2UuaXNfYXBwX2luc3RhbGxlZChhcHApOgorICAgICAgICAgICAgICAgIHJhaXNl
IFdwdHJ1bkVycm9yKCJhcHAgJXMgbm90IGluc3RhbGxlZCBvbiBkZXZpY2UgJXMiICUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwLCBkZXZpY2Vfc2VyaWFsKSkKIAogCiBj
bGFzcyBDaHJvbWUoQnJvd3NlclNldHVwKToKQEAgLTMyMyw3ICszMzQsNyBAQCBjbGFzcyBDaHJv
bWUoQnJvd3NlclNldHVwKToKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CiAg
ICAgICAgIGJyb3dzZXJfY2hhbm5lbCA9IGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0KICAgICAg
ICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgotICAgICAgICAgICAgYmluYXJ5ID0gc2Vs
Zi5icm93c2VyLmZpbmRfYmluYXJ5KGNoYW5uZWw9YnJvd3Nlcl9jaGFubmVsKQorICAgICAgICAg
ICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KHZlbnZfcGF0aD1zZWxmLnZlbnYu
cGF0aCwgY2hhbm5lbD1icm93c2VyX2NoYW5uZWwpCiAgICAgICAgICAgICBpZiBiaW5hcnk6CiAg
ICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IGJpbmFyeQogICAgICAgICAgICAgZWxz
ZToKQEAgLTM3MSw3ICszODIsOCBAQCBjbGFzcyBDaHJvbWUoQnJvd3NlclNldHVwKToKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0
byBsb2NhdGUgb3IgaW5zdGFsbCBtYXRjaGluZyBDaHJvbWVEcml2ZXIgYmluYXJ5IikKICAgICAg
ICAgaWYgYnJvd3Nlcl9jaGFubmVsIGluIHNlbGYuZXhwZXJpbWVudGFsX2NoYW5uZWxzOgotICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBlcmltZW50
YWwgZmVhdHVyZXMgZm9yIENocm9tZSBEZXYvQ2FuYXJ5IG9yIENocm9taXVtIHRydW5rIikKKyAg
ICAgICAgICAgIGxvZ2dlci5pbmZvKAorICAgICAgICAgICAgICAgICJBdXRvbWF0aWNhbGx5IHR1
cm5pbmcgb24gZXhwZXJpbWVudGFsIGZlYXR1cmVzIGZvciBDaHJvbWUgRGV2L0NhbmFyeSBvciBD
aHJvbWl1bSB0cnVuayIpCiAgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeV9hcmdzIl0uYXBwZW5k
KCItLWVuYWJsZS1leHBlcmltZW50YWwtd2ViLXBsYXRmb3JtLWZlYXR1cmVzIikKICAgICAgICAg
ICAgICMgSEFDSyhIZXhjbGVzKTogd29yayBhcm91bmQgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE2NDQ4CiAgICAgICAgICAgICBrd2FyZ3NbIndlYmRy
aXZlcl9hcmdzIl0uYXBwZW5kKCItLWRpc2FibGUtYnVpbGQtY2hlY2siKQpAQCAtNjg2LDE0ICs2
OTgsMTYgQEAgY2xhc3MgV2ViS2l0R1RLTWluaUJyb3dzZXIoQnJvd3NlclNldHVwKToKIAogICAg
IGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKICAgICAgICAgaWYga3dhcmdzWyJiaW5h
cnkiXSBpcyBOb25lOgotICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmlu
YXJ5KHZlbnZfcGF0aD1zZWxmLnZlbnYucGF0aCwgY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hh
bm5lbCJdKQorICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KAor
ICAgICAgICAgICAgICAgIHZlbnZfcGF0aD1zZWxmLnZlbnYucGF0aCwgY2hhbm5lbD1rd2FyZ3Nb
ImJyb3dzZXJfY2hhbm5lbCJdKQogCiAgICAgICAgICAgICBpZiBiaW5hcnkgaXMgTm9uZToKICAg
ICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGZpbmQgTWluaUJyb3dz
ZXIgYmluYXJ5IikKICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0gPSBiaW5hcnkKIAogICAg
ICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgotICAgICAgICAgICAg
d2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcih2ZW52X3BhdGg9
c2VsZi52ZW52LnBhdGgsIGNoYW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKKyAgICAg
ICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoCisg
ICAgICAgICAgICAgICAgdmVudl9wYXRoPXNlbGYudmVudi5wYXRoLCBjaGFubmVsPWt3YXJnc1si
YnJvd3Nlcl9jaGFubmVsIl0pCiAKICAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMg
Tm9uZToKICAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGZpbmQg
V2ViS2l0V2ViRHJpdmVyIGluIFBBVEgiKQpAQCAtODA3LDcgKzgyMSw4IEBAIGRlZiBzZXR1cF93
cHRydW5uZXIodmVudiwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWwpKQogICAgICAgICAg
ICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSA9IGNoYW5uZWwKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGxvZ2dlci5pbmZvKCJWYWxpZCBjaGFubmVscyBmb3IgJXMgbm90IGtub3duOyB1
c2luZyBhcmd1bWVudCB1bm1vZGlmaWVkIiAlIGt3YXJnc1sicHJvZHVjdCJdKQorICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oIlZhbGlkIGNoYW5uZWxzIGZvciAlcyBub3Qga25vd247IHVzaW5nIGFy
Z3VtZW50IHVubW9kaWZpZWQiICUKKyAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicHJv
ZHVjdCJdKQogICAgICAgICAgICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSA9IGt3YXJnc1si
Y2hhbm5lbCJdCiAKICAgICBpZiBrd2FyZ3NbImluc3RhbGxfYnJvd3NlciJdOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVm
MGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhj
MmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9fX2luaXRfXy5w
eQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNl
YXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTc2NGM0ZjU1ZjU1ZWYyYzk4YjRmYjVlN2Iz
Mjk4M2I3ODQzMjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9sYXRlc3RfbW96aWxsYV9jZW50cmFsLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3Rz
L3Rlc3RfYnJvd3Nlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfaW5zdGFsbC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfbWFya2Rvd24u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0cy90ZXN0X3Jldmxpc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfdGVzdGZp
bGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdGVzdHMvdGVzdF93cHQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCmluZGV4IGE0
ZWIwYzZlODAxZDUwMjMxOGNjZDlkMjI1NGFhZGMwOGNhM2UxYjMuLmYzYTE1ODE5ZDc5ODlhNjM5
MzMwZmIxOWUyZjlkMTBkZGIzYWJhZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaQpAQCAt
Nyw3ICs3LDcgQEAgc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IEZhbHNlCiBkZXBzID0KICAg
LXJ7dG94aW5pZGlyfS8uLi9yZXF1aXJlbWVudHNfcHl0ZXN0LnR4dAogICAtcnt0b3hpbmlkaXJ9
Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Ci0gIC1ye3RveGluaWRpcn0vLi4vd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisgIC1ye3RveGluaWRpcn0vLi4vd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWl1bS50eHQKICAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CiAKIGNvbW1hbmRzID0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5MWE0
MTIyYWE1ZjY4YjM1YTg4OGExMzk4NGQwODhhOWM2YjE3ZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwzMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJvaWQucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY29tbWFu
ZHMuanNvbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L2NyZWF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9tYXJrZG93bi5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3BhdGhzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Jldmxpc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC9ydW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdXBkYXRlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdXRpbHMucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0
dWFsZW52LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvd3B0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvLmdpdGlnbm9y
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40OTU2MTZlZjFkMTljNTRjYjk2M2U5OWUxYTIyNmU4MzIwY2MzNzQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDggQEAKKyoucHlbY29d
CisqfgorKiMKK1wjKgorX3ZpcnR1YWxlbnYKK3Rlc3QvdGVzdC5jZmcKK3Rlc3QvbWV0YWRhdGEv
TUFOSUZFU1QuanNvbgord3B0cnVubmVyLmVnZy1pbmZvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjEzZmM0MTA5NmQ3MjRiMTAzZWJhNjlmNmNjODc5YmI5ZDkzZWRmYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9j
cy9hcmNoaXRlY3R1cmUuc3ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9jb21tYW5kcy5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2Rlc2ln
bi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKaW5k
ZXggNTc0ZmU1Nzc3OWU5ODU5MmRhYTRjNDFmMDIwNTMxODEwNDE0YjlhNS4uYWE4ZmE3ZjY5ZWY0
YzY3ZDYwMTMzZmRlMzg3ZGUwZmQ2YWFiMjUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CkBAIC0xLDggKzEsOSBAQAogaHRtbDVsaWI9
PTEuMQorbW96ZGVidWc9PTAuMy4wCiBtb3ppbmZvPT0xLjIuMiAgIyBodHRwczovL2J1Z3ppbGxh
Lm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxMjI2CiBtb3psb2c9PTcuMS4wCi1tb3pk
ZWJ1Zz09MC4zLjAKLXBpbGxvdz09OC4zLjIKLXVybGxpYjNbc2VjdXJlXT09MS4yNi43Ci1yZXF1
ZXN0cz09Mi4yNi4wCittb3pwcm9jZXNzPT0xLjMuMAorcGlsbG93PT04LjQuMAorcmVxdWVzdHM9
PTIuMjcuMQogc2l4PT0xLjE2LjAKK3VybGxpYjNbc2VjdXJlXT09MS4yNi44CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19h
bmRyb2lkX3dlYnZpZXcudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTYxOTU1
OGE1ZGM4NDNmNzY1ZDE0ZjVmZTY1NzhiMGEzZDRjMWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9t
ZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZjcxZTlhMTMyNjljYThjYjA2
YTdkMTA5MWY1ZDM4Zjg0ZTUwZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyICswLDAgQEAKLWFpb3F1aWM9PTAuOS4xNQotbW96cHJvY2Vzcz09MS4zLjAKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2Fu
ZHJvaWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzk2MTk1NThhNWRjODQzZjc2NWQxNGY1ZmU2NTc4YjBhM2Q0
YzFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVf
aW9zLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzk2MTk1NThhNWRjODQzZjc2NWQxNGY1ZmU2NTc4YjBhM2Q0YzFlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfY2hyb21lX2lvcy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1tb3pwcm9j
ZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9taXVtLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWl1bS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNiOTQzNjNlOTFmZTdhYzJi
OWI3NTIyNGI1ODVkZTgyMzQ2YzZhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19jaHJvbWl1bS50eHQKQEAgLTAsMCArMSBAQAorYWlvcXVpYz09MC45LjE1CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKaW5k
ZXggN2FkMDE4MGI4NTQ1Mzg1M2M4YmNiNjE1ZWNiZWVkYmFiOTcwNGYxYS4uNjAwYjZlYmJlZGM5
ZmY0ZTUyZTU1YzIxNmRiNjg0ZjQyMDM1ZjNmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X2VkZ2UudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dApAQCAtMSwyICsxIEBACi1t
b3pwcm9jZXNzPT0xLjMuMAogc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lZGdlX2Nocm9taXVtLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVt
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE5ZjY4ZWVkM2VkNWExZDg2NTMy
MmY0YWUzOTA3NGEzMjM2NzI5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSArMCwwIEBACi1tb3pwcm9jZXNzPT0xLjMuMA0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lcGlwaGFueS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTYxOTU1OGE1ZGM4NDNmNzY1ZDE0ZjVmZTY1Nzhi
MGEzZDRjMWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBA
Ci1tb3pwcm9jZXNzPT0xLjMuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CmluZGV4IDZiZjI4MGM0N2M5MmNhNmMz
YjUwMTU0ODVjMjQ1Y2UxYzNjMzhkZGQuLmM4YWMzM2E3YmU5OTg1NzkyYmYxMzlmMjExMzA0MzMx
YmQ4ZjUyZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKQEAgLTEsOSArMSw5IEBACiBtYXJpb25ldHRlX2Ry
aXZlcj09My4xLjAKIG1vemNyYXNoPT0yLjEuMAorbW96ZGV2aWNlPT00LjAuMwogbW96aW5zdGFs
bD09Mi4wLjEKIG1vemxlYWs9PTAuMgogbW96bmV0d29yaz09MS4xLjAKLW1venByb2Nlc3M9PTEu
My4wCiBtb3pwcm9maWxlPT0yLjUuMAogbW96cnVubmVyPT04LjIuMQogbW96dmVyc2lvbj09Mi4z
LjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NhZmFyaS50eHQKaW5kZXggNjViNzZhYTg1Y2M0MWYwYTZjZjk2NjEzODEwMDdhYTY0MzZi
MWRlZC4uZTJkMDhlNzBjMWFmM2Y0NTU0NDI3NDk0MjQ3YzJhN2FlMmYyMzUyYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFy
aS50eHQKQEAgLTEsMiArMSBAQAotbW96cHJvY2Vzcz09MS4zLjAKIHBzdXRpbD09NS44LjAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1
Y2UudHh0CmluZGV4IDQ2NmQxZTVkZTQyMGM1NzM5NjI1ZmY5MTViNGRiZDg2YjVkMjc3YTguLjdk
NGZmOWM3Mjg0NGUxZmM2MWJkYzA5ZjI4MGQwZDgwZDk0MWJlZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19zYXVjZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dApAQCAt
MSwzICsxLDIgQEAKLW1venByb2Nlc3M9PTEuMy4wCiBzZWxlbml1bT09My4xNDEuMAotcmVxdWVz
dHM9PTIuMjYuMAorcmVxdWVzdHM9PTIuMjcuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X3NlcnZvLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc5NjE5NTU4YTVkYzg0M2Y3NjVkMTRmNWZlNjU3OGIwYTNkNGMxZWMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NlcnZvLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLW1venByb2Nlc3M9PTEu
My4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c193ZWJraXQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTYxOTU1OGE1
ZGM4NDNmNzY1ZDE0ZjVmZTY1NzhiMGEzZDRjMWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotbW96cHJvY2Vzcz09MS4zLjAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgxYWVmMDQ5Y2QxMjJmNzMzMmM2NmY1YTA4Nzk0N2U1MTJhNTlkMGUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X2FuZF9mYWlsLmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QK
LSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
NzJiMzNmNzc2NGJkZTZlMmFlYTdiYzJjY2Q4YmYzNzM5YmFiYWQyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVtyZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3RlZDog
RkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hf
ZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2Zh
aWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzZGMzMzYyZmFjNDFi
YmU4ZGVkNDQ1ODllODk4ZWY1ODljYjFhODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hf
ZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfbWF0
Y2hfZmFpbC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwu
aW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1s
LmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA1NTMzN2UyZDY1Y2I4ZjIxZDJj
ZWFjNjJlMzVjZTdiYjk5YTk3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWls
Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF9taXNtYXRj
aF9mYWlsLmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwuaW5p
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5pbmkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5MzYyNDFhZDI5Y2QxNjJmOTYxMDc2YzJi
YThlYjk2MGY3Njk4YzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5p
bmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0
bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwZDFiOWJhZGU5NWQ3YjEwMWM4ZGJmNTE1NDdmZmJhZWMyMjYwYzI3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X3RpbWVvdXQuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAot
ICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWU0ZmJiNzYzOTZlYjI2NDFiM2E0MGZm
MWFmYTQ3ZmFhZTNkOGYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfZmFpbC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X21hdGNoX2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
cmVmX3RpbWVvdXQuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90
aW1lb3V0Lmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNz
L2ZpcmVmb3gvX19kaXJfXy5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVm
b3gvX19kaXJfXy5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZDE2NGNkNDE4
YTJhNzdjNzkzNjY5YzdjZjZiMDlmZmM2MThlNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94
L19fZGlyX18uaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1wcmVmczogWyJicm93
c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvcjojRkYwMDAwIiwKLSAgICAgICAgImJyb3dzZXIu
ZGlzcGxheS5iYWNrZ3JvdW5kX2NvbG9yOiMwMDAwMDAiXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9z
dWJkaXIvdGVzdF9wcmVmX3Jlc2V0Lmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFy
bmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbC5pbmkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZjOTE5OGQ5YmJmMWM3NzliZTQyZjQ3YmI1MmM2ODk2ZjlhZDYy
NGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRt
bC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVt0ZXN0X3ByZWZfcmVzZXQuaHRt
bF0KLSAgcHJlZnM6IFtAUmVzZXRdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90
ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjUyZGMwOWRlNTVjM2IwZDI5OGUyOTIzYWE5NTM3MWQxNTg3OTE5OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21l
dGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFy
bmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwu
aW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQu
aHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjOWJmYjljNDEzOTdkYzE3
ZGNhZmYwYTQ0OWRmODEwZWY0OWNhNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3Rf
cHJlZl9zZXQuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVt0ZXN0X3By
ZWZfc2V0Lmh0bWxdCi0gIHByZWZzOiBbImJyb3dzZXIuZGlzcGxheS5mb3JlZ3JvdW5kX2NvbG9y
OiMwMEZGMDAiLAotICAgICAgICAgICJicm93c2VyLmRpc3BsYXkuYmFja2dyb3VuZF9jb2xvcjoj
MDAwMDAwIl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZv
eC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2IxYmIxODMyYTkx
ODcxOWI3NTA3ZDUzMDA1OGZiYjhkZjM3MjQ5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvX19kaXJfXy5pbmkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX3NldC5odG1sLmluaQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvX19kaXJfXy5pbmkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci9fX2Rpcl9fLmluaQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkxNTdmYmM2YTlmNGE5YTZiYjNjODk0YjNlMDk1YmZh
NTFlMzE0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci9fX2Rpcl9fLmluaQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLWRpc2FibGVkOiB0cnVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVz
dGhhcm5lc3NfMS5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGly
L3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRi
OTM5Mzk4N2I2YzczZTY5MTBhZmNmMGNhMGI3NTM4ZmNkYjkxOWIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVz
cy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotW3Rlc3RoYXJuZXNzXzEuaHRtbF0KLSAgZGlzYWJsZWQ6IEBGYWxzZQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5l
c3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9z
dWJkaXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmYmQ4
OWVmZWZhOTRjZDkyYWJlMjI1ZmFhM2Q5MmI0NDA4MjI1NjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9z
dWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci9fX2Rpcl9fLmluaQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5o
dG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1s
LmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTBiOWE2ZTlmMDEyYjVlMjM0YzE1
ZDI5ODA1YzYxZjZiZThkNWE1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRt
bC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVt0ZXN0aGFybmVzc18wLmh0bWxd
Ci0gIHR5cGU6IHRlc3RoYXJuZXNzCi0gIFtUZXN0IHRoYXQgc2hvdWxkIGZhaWxdCi0gICAgZXhw
ZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVz
dGhhcm5lc3NfZXJyb3IuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rl
c3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
YTUzZTA3MzNhYmNiMTczOTE5YjNkNDhhNzc2N2I1YmJhZDhiMGU4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5l
c3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLVt0ZXN0aGFybmVzc19lcnJvci5odG1sXQotICB0eXBlOiB0ZXN0aGFybmVzcwotICBleHBl
Y3RlZDogRVJST1IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVz
dGhhcm5lc3NfdGltZW91dC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mv
dGVzdGhhcm5lc3NfdGltZW91dC5odG1sLmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTVlY2E1MTkxYWIxZmE2YzVkNTUzMWExZTA1Yjk5MmQwOTcyM2RlZi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwz
ICswLDAgQEAKLVt0ZXN0aGFybmVzc190aW1lb3V0Lmh0bWxdCi0gIHR5cGU6IHRlc3RoYXJuZXNz
Ci0gIGV4cGVjdGVkOiBUSU1FT1VUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM0ZWEyNTM5NzI1ZDcz
NTBmNzY4NTRmMGRiZWMwMmQwZjNjMWMzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sLmluaQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfdGltZW91dC5odG1sLmluaQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0LmNmZy5leGFtcGxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LmNmZy5leGFtcGxlCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjQ4MjI2MjE2YzMwZWI3ZDhiMDc4MTg5NjM2OTY0
YjdmN2NlNTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdC5jZmcuZXhhbXBsZQorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LVtnZW5lcmFsXQotdGVzdHM9L3BhdGgvdG8vd2ViLXBsYXRmb3JtLXRlc3RzLwotbWV0YWRhdGE9
L3BhdGgvdG8vd2ViLXBsYXRmb3JtLXRlc3RzLwotc3NsLXR5cGU9bm9uZQotCi0jIFtmaXJlZm94
XQotIyBiaW5hcnk9L3BhdGgvdG8vZmlyZWZveAotIyBwcmVmcy1yb290PS9wYXRoL3RvL2dlY2tv
LXNyYy90ZXN0aW5nL3Byb2ZpbGVzLwotCi0jIFtzZXJ2b10KLSMgYmluYXJ5PS9wYXRoL3RvL3Nl
cnZvLXNyYy90YXJnZXQvcmVsZWFzZS9zZXJ2bwotIyBleGNsdWRlPXRlc3RoYXJuZXNzICMgQmVj
YXVzZSBpdCBuZWVkcyBhIHNwZWNpYWwgdGVzdGhhcm5lc3MuanMKLQotIyBbc2Vydm9kcml2ZXJd
Ci0jIGJpbmFyeT0vcGF0aC90by9zZXJ2by1zcmMvdGFyZ2V0L3JlbGVhc2Uvc2Vydm8KLSMgZXhj
bHVkZT10ZXN0aGFybmVzcyAjIEJlY2F1c2UgaXQgbmVlZHMgYSBzcGVjaWFsIHRlc3RoYXJuZXNz
LmpzCi0KLSMgW2Nocm9tZV0KLSMgYmluYXJ5PS9wYXRoL3RvL2Nocm9tZQotIyB3ZWJkcml2ZXIt
YmluYXJ5PS9wYXRoL3RvL2Nocm9tZWRyaXZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmU3YWJi
YmFiNDkwOTIzNzA2NWNiMDEyNWRiNzExYTE4NjA3ODk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDE2NCArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi1p
bXBvcnQgYXJncGFyc2UKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1mcm9tIG1vemxvZyBpbXBv
cnQgc3RydWN0dXJlZGxvZwotZnJvbSBtb3psb2cuaGFuZGxlcnMgaW1wb3J0IEJhc2VIYW5kbGVy
LCBTdHJlYW1IYW5kbGVyCi1mcm9tIG1vemxvZy5mb3JtYXR0ZXJzIGltcG9ydCBNYWNoRm9ybWF0
dGVyCi1mcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCi1mcm9tIHNpeC5tb3Zlcy5jb25maWdwYXJz
ZXIgaW1wb3J0IENvbmZpZ1BhcnNlcgotZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdGNvbW1hbmRs
aW5lLCB3cHRydW5uZXIKLQotaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pKQotCi1kZWYgc2V0dXBfd3B0cnVubmVyX2xvZ2dpbmcobG9nZ2VyKToKLSAgICBz
dHJ1Y3R1cmVkbG9nLnNldF9kZWZhdWx0X2xvZ2dlcihsb2dnZXIpCi0gICAgd3B0cnVubmVyLmxv
Z2dlciA9IGxvZ2dlcgotICAgIHdwdHJ1bm5lci53cHRsb2dnaW5nLnNldHVwX3N0ZGxpYl9sb2dn
ZXIoKQotCi1jbGFzcyBSZXN1bHRIYW5kbGVyKEJhc2VIYW5kbGVyKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgdmVyYm9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUpOgotICAgICAgICBzZWxmLmlubmVy
ID0gU3RyZWFtSGFuZGxlcihzeXMuc3Rkb3V0LCBNYWNoRm9ybWF0dGVyKCkpCi0gICAgICAgIEJh
c2VIYW5kbGVyLl9faW5pdF9fKHNlbGYsIHNlbGYuaW5uZXIpCi0gICAgICAgIHNlbGYucHJvZHVj
dCA9IE5vbmUKLSAgICAgICAgc2VsZi52ZXJib3NlID0gdmVyYm9zZQotICAgICAgICBzZWxmLmxv
Z2dlciA9IGxvZ2dlcgotCi0gICAgICAgIHNlbGYucmVnaXN0ZXJfbWVzc2FnZV9oYW5kbGVycygi
d3B0cnVubmVyLXRlc3QiLCB7InNldC1wcm9kdWN0Ijogc2VsZi5zZXRfcHJvZHVjdH0pCi0KLSAg
ICBkZWYgc2V0X3Byb2R1Y3Qoc2VsZiwgcHJvZHVjdCk6Ci0gICAgICAgIHNlbGYucHJvZHVjdCA9
IHByb2R1Y3QKLQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBkYXRhKToKLSAgICAgICAgaWYgc2Vs
Zi5wcm9kdWN0IGlzIG5vdCBOb25lIGFuZCBkYXRhWyJhY3Rpb24iXSBpbiBbInN1aXRlX3N0YXJ0
IiwgInN1aXRlX2VuZCJdOgotICAgICAgICAgICAgIyBIYWNrOiBtb3psb2cgc2V0cyBzb21lIGlu
dGVybmFsIHN0YXRlIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VpdGVfc3RhcnQgb3IKLSAgICAgICAg
ICAgICMgc3VpdGVfZW5kIG1lc3NhZ2VzLiBXZSBhY3R1YWxseSB3YW50IHRoYXQgaGVyZSAob25l
IGZyb20gdGhlIG1ldGFoYXJuZXNzCi0gICAgICAgICAgICAjIGFuZCBvbmUgZnJvbSB0aGUgaW5k
aXZpZHVhbCB0ZXN0IHR5cGUgaGFybmVzcyksIHNvIG92ZXJyaWRlIHRoYXQgaW50ZXJuYWwKLSAg
ICAgICAgICAgICMgc3RhdGUgKGEgYmV0dGVyIHNvbHV0aW9uIG1pZ2h0IGJlIHRvIG5vdCBzaGFy
ZSBsb2dnZXJzLCBidXQgdGhpcyB3b3JrcyB3ZWxsCi0gICAgICAgICAgICAjIGVub3VnaCkKLSAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLl9zdGF0ZS5zdWl0ZV9zdGFydGVkID0gVHJ1ZQotICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgaWYgKG5vdCBzZWxmLnZlcmJvc2UgYW5kCi0gICAgICAg
ICAgICAoZGF0YVsiYWN0aW9uIl0gPT0gInByb2Nlc3Nfb3V0cHV0IiBvcgotICAgICAgICAgICAg
IGRhdGFbImFjdGlvbiJdID09ICJsb2ciIGFuZCBkYXRhWyJsZXZlbCJdIG5vdCBpbiBbImVycm9y
IiwgImNyaXRpY2FsIl0pKToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmICJ0ZXN0
IiBpbiBkYXRhOgotICAgICAgICAgICAgZGF0YSA9IGRhdGEuY29weSgpCi0gICAgICAgICAgICBk
YXRhWyJ0ZXN0Il0gPSAiJXM6ICVzIiAlIChzZWxmLnByb2R1Y3QsIGRhdGFbInRlc3QiXSkKLQot
ICAgICAgICByZXR1cm4gc2VsZi5pbm5lcihkYXRhKQotCi1kZWYgdGVzdF9zZXR0aW5ncygpOgot
ICAgIHJldHVybiB7Ci0gICAgICAgICJpbmNsdWRlIjogIl90ZXN0IiwKLSAgICAgICAgIm1hbmlm
ZXN0LXVwZGF0ZSI6ICIiLAotICAgICAgICAibm8tY2FwdHVyZS1zdGRpbyI6ICIiCi0gICAgfQot
Ci1kZWYgcmVhZF9jb25maWcoKToKLSAgICBwYXJzZXIgPSBDb25maWdQYXJzZXIoKQotICAgIHBh
cnNlci5yZWFkKCJ0ZXN0LmNmZyIpCi0KLSAgICBydiA9IHsiZ2VuZXJhbCI6e30sCi0gICAgICAg
ICAgInByb2R1Y3RzIjp7fX0KLQotICAgIHJ2WyJnZW5lcmFsIl0udXBkYXRlKGRpY3QocGFyc2Vy
Lml0ZW1zKCJnZW5lcmFsIikpKQotCi0gICAgIyBUaGlzIG9ubHkgYWxsb3dzIG9uZSBwcm9kdWN0
IHBlciB3aGF0ZXZlciBmb3Igbm93Ci0gICAgZm9yIHByb2R1Y3QgaW4gcGFyc2VyLnNlY3Rpb25z
KCk6Ci0gICAgICAgIGlmIHByb2R1Y3QgIT0gImdlbmVyYWwiOgotICAgICAgICAgICAgcnZbInBy
b2R1Y3RzIl1bcHJvZHVjdF0gPSB7fQotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gcGFy
c2VyLml0ZW1zKHByb2R1Y3QpOgotICAgICAgICAgICAgICAgIHJ2WyJwcm9kdWN0cyJdW3Byb2R1
Y3RdW2tleV0gPSB2YWx1ZQotCi0gICAgcmV0dXJuIHJ2Ci0KLWRlZiBydW5fdGVzdHMocHJvZHVj
dCwga3dhcmdzKToKLSAgICBrd2FyZ3NbInRlc3RfcGF0aHMiXVsiL190ZXN0LyJdID0geyJ0ZXN0
c19wYXRoIjogb3MucGF0aC5qb2luKGhlcmUsICJ0ZXN0ZGF0YSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGFkYXRhX3BhdGgiOiBvcy5wYXRoLmpvaW4oaGVy
ZSwgIm1ldGFkYXRhIil9Ci0KLSAgICB3cHRydW5uZXIucnVuX3Rlc3RzKCoqa3dhcmdzKQotCi1k
ZWYgc2V0dGluZ3NfdG9fYXJndihzZXR0aW5ncyk6Ci0gICAgcnYgPSBbXQotICAgIGZvciBuYW1l
LCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2V0dGluZ3MpOgotICAgICAgICBrZXkgPSAiLS0lcyIgJSBu
YW1lCi0gICAgICAgIGlmIG5vdCB2YWx1ZToKLSAgICAgICAgICAgIHJ2LmFwcGVuZChrZXkpCi0g
ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2YWx1ZSwgbGlzdCk6Ci0gICAgICAgICAgICBmb3IgaXRl
bSBpbiB2YWx1ZToKLSAgICAgICAgICAgICAgICBydi5leHRlbmQoW2tleSwgaXRlbV0pCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBydi5leHRlbmQoW2tleSwgdmFsdWVdKQotICAgIHJldHVy
biBydgotCi1kZWYgc2V0X2Zyb21fYXJncyhzZXR0aW5ncywgYXJncyk6Ci0gICAgaWYgYXJncy50
ZXN0OgotICAgICAgICBzZXR0aW5nc1siaW5jbHVkZSJdID0gYXJncy50ZXN0Ci0gICAgaWYgYXJn
cy50YWdzOgotICAgICAgICBzZXR0aW5nc1sidGFncyJdID0gYXJncy50YWdzCi0KLWRlZiBydW4o
Y29uZmlnLCBhcmdzKToKLSAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dn
ZXIoIndlYi1wbGF0Zm9ybS10ZXN0cyIpCi0gICAgbG9nZ2VyLmFkZF9oYW5kbGVyKFJlc3VsdEhh
bmRsZXIobG9nZ2VyPWxvZ2dlciwgdmVyYm9zZT1hcmdzLnZlcmJvc2UpKQotICAgIHNldHVwX3dw
dHJ1bm5lcl9sb2dnaW5nKGxvZ2dlcikKLQotICAgIHBhcnNlciA9IHdwdGNvbW1hbmRsaW5lLmNy
ZWF0ZV9wYXJzZXIoKQotCi0gICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KHRlc3RzPVtdKQotCi0gICAg
Zm9yIHByb2R1Y3QsIHByb2R1Y3Rfc2V0dGluZ3MgaW4gaXRlcml0ZW1zKGNvbmZpZ1sicHJvZHVj
dHMiXSk6Ci0gICAgICAgIGlmIGFyZ3MucHJvZHVjdCBhbmQgcHJvZHVjdCBub3QgaW4gYXJncy5w
cm9kdWN0OgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBzZXR0aW5ncyA9IHRlc3Rf
c2V0dGluZ3MoKQotICAgICAgICBzZXR0aW5ncy51cGRhdGUoY29uZmlnWyJnZW5lcmFsIl0pCi0g
ICAgICAgIHNldHRpbmdzLnVwZGF0ZShwcm9kdWN0X3NldHRpbmdzKQotICAgICAgICBzZXR0aW5n
c1sicHJvZHVjdCJdID0gcHJvZHVjdAotICAgICAgICBzZXRfZnJvbV9hcmdzKHNldHRpbmdzLCBh
cmdzKQotCi0gICAgICAgIGt3YXJncyA9IHZhcnMocGFyc2VyLnBhcnNlX2FyZ3Moc2V0dGluZ3Nf
dG9fYXJndihzZXR0aW5ncykpKQotICAgICAgICB3cHRjb21tYW5kbGluZS5jaGVja19hcmdzKGt3
YXJncykKLQotICAgICAgICBsb2dnZXIuc2VuZF9tZXNzYWdlKCJ3cHRydW5uZXItdGVzdCIsICJz
ZXQtcHJvZHVjdCIsIHByb2R1Y3QpCi0KLSAgICAgICAgcnVuX3Rlc3RzKHByb2R1Y3QsIGt3YXJn
cykKLQotICAgIGxvZ2dlci5zZW5kX21lc3NhZ2UoIndwdHJ1bm5lci10ZXN0IiwgInNldC1wcm9k
dWN0IiwgTm9uZSkKLSAgICBsb2dnZXIuc3VpdGVfZW5kKCkKLQotZGVmIGdldF9wYXJzZXIoKToK
LSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLXYiLCAiLS12ZXJib3NlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InZlcmJvc2UgbG9nIG91dHB1dCIp
Ci0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1wcm9kdWN0IiwgYWN0aW9uPSJhcHBlbmQiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU3BlY2lmaWMgcHJvZHVjdCB0byBpbmNsdWRl
IGluIHRlc3QgcnVuIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXBkYiIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJJbnZva2UgcGRiIG9u
IHVuY2F1Z2h0IGV4Y2VwdGlvbiIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS10YWciLCBh
Y3Rpb249ImFwcGVuZCIsIGRlc3Q9InRhZ3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0idGFncyB0byBzZWxlY3QgdGVzdHMiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInRlc3Qi
LCBuYXJncz0iKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTcGVjaWZpYyB0ZXN0
cyB0byBpbmNsdWRlIGluIHRlc3QgcnVuIikKLSAgICByZXR1cm4gcGFyc2VyCi0KLWRlZiBtYWlu
KCk6Ci0gICAgY29uZmlnID0gcmVhZF9jb25maWcoKQotCi0gICAgYXJncyA9IGdldF9wYXJzZXIo
KS5wYXJzZV9hcmdzKCkKLQotICAgIHRyeToKLSAgICAgICAgcnVuKGNvbmZpZywgYXJncykKLSAg
ICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBpZiBhcmdzLnBkYjoKLSAgICAgICAgICAgIGlt
cG9ydCBwZGIKLSAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAgICAgICAgIHByaW50
KHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UKLQotaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKLSAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9n
cmVlbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVj
dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMTQ1ZDYwYjU1YjM1MDI2
MzlkMTVmMTBkNGQ2M2E2YjBmNzliN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdy
ZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5
bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9ncmVlbi1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxNDVkNjBiNTViMzUwMjYzOWQx
NWYxMGQ0ZDYzYTZiMGY3OWI3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+
Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L2dyZWVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJh
Y2E4NDczMWFlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0
eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQw
MjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwv
c3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1YTQ1ZjEwZjM1ZWI0NzJlYzEzY2M1ZGQyNDdmZjhkZjVjMjY1Mzg1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0Lmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxsaW5r
IHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpyZWR9Ci08L3N0eWxlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cubG9jYXRpb24ucHJvdG9j
b2wgPT09ICJodHRwczoiKSB7Ci0gICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuYmFj
a2dyb3VuZENvbG9yID0gImdyZWVuIjsKLX0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2Fu
ZF9mYWlsLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9h
bmRfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGZi
OWFhMTUxNzZlNjE5MWRlZDVlY2NmNDQyZmNmZDZjZGNmNTY2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2FuZF9mYWlsLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAK
LTx0aXRsZT5SZWZ0ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVs
PW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpn
cmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI5NjAxOTUzNTYyMzhmMDM1NDMyMDdlOWU2YTM1OTkzNjFkYWViOTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUg
KzAsMCBAQAotPHRpdGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08
bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLmh0bWw+Ci08c3R5bGU+
Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRmYjlhYTE1MTc2ZTYxOTFkZWQ1ZWNjZjQ0MmZjZmQ2
Y2RjZjU2Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCBjaGFpbiB0aGF0IHNob3Vs
ZCBmYWlsPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5odG1sPgotPHN0eWxlPgot
OnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2N5Y2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9j
eWNsZS1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMThiZmQ4
ODQ0N2I0ODIxMmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2N5Y2xlLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRs
ZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVm
PXJlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGE4NGEzYjY3NDFlZTQxZmU2MTg3YTliZGM3NjZkNzQ5MjA2YzgzYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgotPGxpbmsg
cmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
XzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9j
eWNsZV8wLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
OWJlMGI2NDFkZWY2YmQ3M2EwY2NhNzJmMTdkMzMwNDY0MWI0OGVhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICsw
LDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+Ci08bGlu
ayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1y
ZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExOGJmZDg4NDQ3YjQ4MjEyYWYyOWU1
NDg2MWJiNmQ1MDlhNWUxYjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hv
dWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8xLXJl
Zi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTg0YTNiNjc0MWVlNDFmZTYxODdhOWJkYzc2NmQ3NDky
MDZjODNhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUs
IGFsbCBtYXRjaDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzAt
cmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5
bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU5YmUwYjY0MWRlZjZiZDczYTBjY2E3MmYxN2QzMzA0NjQxYjQ4ZWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAs
MCBAQAotPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgYWxsIG1hdGNoPC90aXRsZT4KLTxsaW5r
IHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGUuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNr
Z3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWls
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9m
YWlsLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0
NjIyNTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGVfZmFpbC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08
dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0
Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3Jv
dW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0NDU1
YWQyZWI5YmM0MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWls
czwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYu
aHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0
NDU1YWQyZWI5YmM0MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi1l
eHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVz
dCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0
X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIyNTU2MzhhMzJjNDc0YTE3
Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5
Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xl
X2ZhaWwuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9z
dHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0K
LTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMzM2NjNmMxZWNkZjIwMDBlNGIxMTg1NjU2NjE3NjFiODc2YTcyOTkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxl
PnJlbD1tYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVm
PWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwv
c3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIw
NDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91
bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MjcyZWY3NGRhODczMzdhMDIyM2ZjYjAwZjA1M2Nl
YmE1ZmI1MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIGZhaWw8
L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0
Y2gtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21h
dGNoLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjc3ZTAw
NjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
bWlzbWF0Y2gtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0
eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlz
bWF0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY1ZmEwNzUwZDgzYjY3
NTljMzBlYTQzNGZjNTA5MjU1MjQ2Y2Y4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRj
aC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1pc21hdGNo
IHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9cmVkLmh0
bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0
NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91
bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQxNjBjNGZjMjAwY2E5NzYzMWIxODUw
NTg0N2Q1MWZkNzYyYWJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5yZWw9bWlzbWF0Y2ggdGhh
dCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1ncmVlbi5odG1s
PgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAg
QEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3Rfb3JfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
b3JfMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTUxZGUyMTY0NDEwM2E5
M2Y1OWQ0YzU2NTQyOGNjMmQxNjA2ZTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hv
dWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08bGluayBy
ZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29s
b3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGNiYjcxZTBjM2M0Mjg2
YzAwZDRjMDFlY2U2YWIxYTFiZWM2MWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1l
b3V0LWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxodG1sIGNs
YXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCB0aW1lIG91
dCBpbiB0aGUgcmVmPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfcmVmX3Rp
bWVvdXQtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0K
LTwvc3R5bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9y
ZWZfdGltZW91dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3Rp
bWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFmNjhmNWNiNWZhMDRj
ZDM2NWE3MTkxZWVjZWFmYTM1Y2MzY2U0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGlt
ZW91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08aHRtbD4KLTx0aXRsZT5y
ZWw9bWF0Y2ggdGhhdCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Ci08bGluayBy
ZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1sPgotPHN0eWxlPgotOnJv
b3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0
NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29s
b3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjEwZTY3NmJmMDA1MmU3YmNiZTJlOTIxNGE2OTBiM2NlNjY1ZGE4OC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLTxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0
aGF0IHNob3VsZCB0aW1lb3V0PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0
bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3Rl
ZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMy
YmE4ZDAyOWNjYWIwNDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBl
Y3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmOTI3MTVjNjFlN2Q5MjJhOTQ5NWU5NzM3Yzk5NmU3
YzA2YzM3ZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMyArMCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KLTx0aXRsZT5y
ZWw9bWF0Y2ggdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1y
ZWQuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+
Ci08c2NyaXB0Pgotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7Ci0gIGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5jbGFzc05hbWUgPSAiIjsKLX0sIDIwMDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDllZDEwMDgxNDFlY2ViZjVkMzdhYjA0MjI4MWQyNTRlYjA2Y2ZjNGIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvZ3JlZW4uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfMC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9jeWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfMS1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2N5Y2xlX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlX2ZhaWwuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5
Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21hdGNoLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9tYXRjaC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hf
ZmFpbC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0
Y2hfZmFpbC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gt
ZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNo
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLWV4
cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9m
YWlsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVk
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLmh0bWwKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX2luaGVyaXQuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX2luaGVy
aXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBiMjg1MTk0YjRhZTAxMGM2
OTljN2FlY2Y3N2Q3NzFjMjIxMzJkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGly
L3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi08
IWRvY3R5cGUgaHRtbD4KLTx0aXRsZT5FeGFtcGxlIHByZWYgdGVzdDwvdGl0bGU+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08cD5UZXN0IHJlcXVp
cmVzIHRoZSBwcmVmIGJyb3dzZXIuZGlzcGxheS5mb3JlZ3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0
byAjMDBGRjAwPC9wPgotPHNjcmlwdD4KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gIGFzc2VydF9lcXVh
bHMoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5jb2xvciwgInJnYigyNTUsIDAsIDAp
Iik7Ci19LCAiVGVzdCB0aGF0IHByZWYgd2FzIHNldCIpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9y
ZXNldC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90
ZXN0X3ByZWZfcmVzZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWM3NWMx
MTYwNTIyY2U4MTQxNGVkZGVlNGI5NGNjYWUyMTc4NWEyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxl
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHA+
VGVzdCByZXF1aXJlcyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0
byBiZSBzZXQgdG8gIzAwRkYwMDwvcD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBh
c3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2Io
MCwgMCwgMCkiKTsKLX0sICJUZXN0IHRoYXQgcHJlZiB3YXMgcmVzZXQiKTsKLTwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJk
aXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2Y2Y1Yzcx
YzY5OGZhNTNmZDNiYjg4YTdkZDAzOWM3YzdmYWYyYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJl
Zm94L3N1YmRpci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVz
dF9wcmVmX2luaGVyaXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZv
eC9zdWJkaXIvdGVzdF9wcmVmX3Jlc2V0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfZGlyLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX2Rpci5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMDVkOTA3MGM5ZGNlYWRjZGIwY2M2NDcxMzg5Njc4YzhkMjcxOWFi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfZGlyLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTx0aXRsZT5FeGFtcGxlIHBy
ZWYgdGVzdDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08cD5UZXN0IHJlcXVpcmVzIHRoZSBwcmVmIGJyb3dzZXIuZGlzcGxheS5mb3Jl
Z3JvdW5kX2NvbG9yIHRvIGJlIHNldCB0byAjRkYwMDAwPC9wPgotPHNjcmlwdD4KLXRlc3QoZnVu
Y3Rpb24oKSB7Ci0gIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5
KS5jb2xvciwgInJnYigyNTUsIDAsIDApIik7Ci19LCAiVGVzdCB0aGF0IHByZWYgd2FzIHNldCIp
OwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvdGVzdF9wcmVmX3NldC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9m
aXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGU1ZTI5ODliZjcyOTlmNDIyYzlkYzBjMTNmMmM3Mjk4ZjBkZmY1Mi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJu
ZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX3NldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAs
MCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxlPgot
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHA+VGVz
dCByZXF1aXJlcyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0byBi
ZSBzZXQgdG8gIzAwRkYwMDwvcD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBhc3Nl
cnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2IoMCwg
MjU1LCAwKSIpOwotfSwgIlRlc3QgdGhhdCBwcmVmIHdhcyBzZXQiKTsKLTwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjM2MDZlZGIzYmUyMTI5MDI4ZDg1OWYw
YTg0NDYxYTlhZjUwMGY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfZGlyLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdGVzdF9wcmVmX3NldC5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci90ZXN0aGFybmVzc18xLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci90ZXN0aGFybmVzc18xLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMmZjNDMxZDM5OTk4ZDZiZmE2M2JjMGUzYjc4
ODQ3OTEwMTRjMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTx0aXRsZT5U
ZXN0IHNob3VsZCBiZSBlbmFibGVkPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci10ZXN0KGZ1bmN0aW9uKCkgewotICBh
c3NlcnRfdHJ1ZSh0cnVlKTsKLX0sICJUZXN0IHRoYXQgc2hvdWxkIHBhc3MiKTsKLTwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg3Zjg1ZWE3OWI1ZDgwMDhiMzg2
YmM2ZDZjOWNkYzdhMGYxZWY1NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzcy5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzcy5odHRwcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ODcxZWFjMDAxNDhkNDRhOGJlYmRjNDM5NGUxY2I4YjRk
NThkYWM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3MuaHR0cHMuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPkV4YW1wbGUg
aHR0cHMgdGVzdDwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdGVzdChmdW5jdGlvbigpIHsKLSAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wsICJodHRwczoiKTsKLX0sICJUZXN0IHRoYXQgZmls
ZSB3YXMgbG9hZGVkIHdpdGggdGhlIGNvcnJlY3QgcHJvdG9jb2wiKTsKLQotPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90
ZXN0aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJu
ZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmYw
NjU0Y2I5YTA5MjUxYWQwMDgyZThkODQ5MThiMjA2OGMxMmUxZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNz
L3Rlc3RoYXJuZXNzXzAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08dGl0bGU+VGVzdCBzaG91bGQgYmUgZGlzYWJsZWQ8L3RpdGxlPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXRl
c3QoZnVuY3Rpb24oKSB7Ci0gIGFzc2VydF90cnVlKGZhbHNlKTsKLX0sICJUZXN0IHRoYXQgc2hv
dWxkIGZhaWwiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0
aGFybmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFy
bmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwYWM1YmE0NmEzMzA1ZjZmYmM2M2RkOGQxZmM3NDk2MDM0ZGE5YWZlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08dGl0bGU+dGVzdGhhcm5lc3MuanMgdGVzdCB0aGF0IHNob3Vs
ZCBlcnJvcjwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotdW5kZWZpbmVkX2Z1bmN0aW9uKCkKLTwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19sb25nX3Rp
bWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9u
Z190aW1lb3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjOTRlMDU1YmUw
YzU1NDU0YzEyZTA4NTAxY2M5ODFmZGFmNDU4MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFy
bmVzc19sb25nX3RpbWVvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPCFk
b2N0eXBlIGh0bWw+Ci08dGl0bGU+dGVzdGhhcm5lc3MuanMgdGVzdCB3aXRoIGxvbmcgdGltZW91
dDwvdGl0bGU+Ci08bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB0ID0g
YXN5bmNfdGVzdCgiTG9uZyB0aW1lb3V0IHRlc3QiKTsKLXNldFRpbWVvdXQodC5zdGVwX2Z1bmNf
ZG9uZShmdW5jdGlvbigpIHthc3NlcnRfdHJ1ZSh0cnVlKX0pLCAxNSoxMDAwKTsKLTwvc2NyaXB0
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfdGltZW91dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGI5OTkxNWFjNzQ1Mzk1MmFhMTk5YzdhYzI0ZTkxOTQ1OWY2NjVhNDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw2ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPHRpdGxlPlNpbXBsZSB0ZXN0aGFybmVz
cy5qcyB1c2FnZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Ci0KLS8vIFRoaXMgZmlsZSBzaG91bGQgdGltZSBvdXQsIG9idmlvdXNseQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNz
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTE4YWRhYjQw
M2Y2YjA5YTRjYmFkNDA5ZWQ4MzJmZTE0N2YyOGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVz
dGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZiMDExYjZiMDRmZGU5NTUyNWUzZjk5NzNjYjdjNzk2NWI1MTQ2MDMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdC5jZmcuZXhhbXBsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3RveC5pbmkKaW5kZXggYzQ5ZTc1OWVhZDhjNWM4ZmNiYjFjMDg5Y2YyZTU5
ZDYyNDk2MWIxYS4uZjJmY2Y4NDkxMGI2YzkzODQzOGUxZDIxZTkzZDc2MDllMDg3M2U5YyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCkBAIC05LDE3ICs5LDEzIEBAIHNr
aXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSBGYWxzZQogZGVwcyA9CiAgICAgIC1ye3RveGluaWRp
cn0vLi4vcmVxdWlyZW1lbnRzX3B5dGVzdC50eHQKICAgICAgLXJ7dG94aW5pZGlyfS9yZXF1aXJl
bWVudHMudHh0Ci0gICAgIGNocm9tZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfY2hyb21l
LnR4dAorICAgICBjaHJvbWU6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX2Nocm9taXVtLnR4
dAogICAgICBlZGdlOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19lZGdlLnR4dAogICAgICBm
aXJlZm94OiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19maXJlZm94LnR4dAogICAgICBpZTog
LXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfaWUudHh0CiAgICAgIG9wZXJhOiAtcnt0b3hpbmlk
aXJ9L3JlcXVpcmVtZW50c19vcGVyYS50eHQKICAgICAgc2FmYXJpOiAtcnt0b3hpbmlkaXJ9L3Jl
cXVpcmVtZW50c19zYWZhcmkudHh0CiAgICAgIHNhdWNlOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVt
ZW50c19zYXVjZS50eHQKLSAgICAgc2Vydm86IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3Nl
cnZvLnR4dAotICAgICB3ZWJraXQ6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3dlYmtpdC50
eHQKLSAgICAgd2Via2l0Z3RrX21pbmlicm93c2VyOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50
c193ZWJraXQudHh0Ci0gICAgIGVwaXBoYW55OiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19l
cGlwaGFueS50eHQKIAogY29tbWFuZHMgPSBweXRlc3Qge3Bvc2FyZ3N9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU4ZTk3MGEwZWRmNmVkZmMxNjA3Yzc2NmE3NjNiZjk1MTUwZjYzZjMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9NQU5JRkVT
VC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2FuZHJvaWRfd2Vidmlldy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
X2lvcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRn
ZV9jaHJvbWl1bS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2ZpcmVmb3gudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19vcGVyYS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19zYXVjZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3dlYmtpdC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIu
ZGVmYXVsdC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL19faW5p
dF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24g
dG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYmxh
eWVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKaW5kZXgg
NGJkODcxZDFmYmQ1MWQ0ZWQ1NDdhOWNkMDBkNTNlNGY3MTU2ZmY1NS4uNGYwYWM3ZjI5NWU0NmYz
NzhhY2YzOTJiYjZjNTU0NzBkNDMwZjZhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2FuZHJvaWRfd2VibGF5ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJv
aWRfd2VibGF5ZXIucHkKQEAgLTMsOSArMyw5IEBAIGZyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVf
YXJnCiBmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAjIG5vcWE6IEY0
MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGNocm9tZV9leGVjdXRv
cl9rd2FyZ3MKIGZyb20gLmNocm9tZV9hbmRyb2lkIGltcG9ydCBDaHJvbWVBbmRyb2lkQnJvd3Nl
ckJhc2UKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IgICMgbm9x
YTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5v
cWE6IEY0MDEKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURy
aXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImFuZHJvaWRfd2VibGF5ZXIiLApAQCAtMTQsNyArMTQsNyBAQCBfX3dwdHJ1bm5l
cl9fID0geyJwcm9kdWN0IjogImFuZHJvaWRfd2VibGF5ZXIiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJl
eGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZU
ZXN0RXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJD
aHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiYnJvd3Nl
cl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jf
a3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFz
IjogImVudl9leHRyYXMiLApAQCAtNTUsOCArNTUsOCBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKGxv
Z2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAogICAgIGNh
cGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSBcCiAg
ICAgICAgICJvcmcuY2hyb21pdW0ud2VibGF5ZXIuc2hlbGwiCiAgICAgY2FwYWJpbGl0aWVzWyJn
b29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZEFjdGl2aXR5Il0gPSAiLldlYkxheWVyU2hlbGxB
Y3Rpdml0eSIKLSAgICBpZiBrd2FyZ3MuZ2V0KCdkZXZpY2Vfc2VyaWFsJyk6Ci0gICAgICAgIGNh
cGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWREZXZpY2VTZXJpYWwiXSA9
IGt3YXJnc1snZGV2aWNlX3NlcmlhbCddCisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9w
dGlvbnMiXVsiYW5kcm9pZEtlZXBBcHBEYXRhRGlyIl0gPSBcCisgICAgICAgIGt3YXJncy5nZXQo
ImtlZXBfYXBwX2RhdGFfZGlyZWN0b3J5IikKIAogICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLnF1
aXQoKSBjYW5ub3QgcXVpdCBXZWJsYXllclNoZWxsLgogICAgIGV4ZWN1dG9yX2t3YXJnc1sicGF1
c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKQEAgLTg5LDggKzg5LDggQEAgY2xhc3MgV2VibGF5ZXJT
aGVsbChDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UpOgogICAgICAgICAgICAgICAgICBzeW1ib2xz
X3BhdGg9Tm9uZSk6CiAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2Yg
Q2hyb21lLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCiAgICAgICAgIHRoZSBicm93c2Vy
IGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCi0gICAgICAgIHN1cGVyKFdlYmxheWVyU2hl
bGwsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwKLSAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmlu
YXJ5LCByZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWwsCi0gICAgICAgICAgICAgICAgd2ViZHJp
dmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc3VwZXIo
KS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Jp
bmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCiAgICAg
ICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0g
X3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9p
ZF93ZWJ2aWV3LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQpp
bmRleCA5ZDYyMDkzNGVmMjg3YTM5OTgyNTBhZTk3ZTI0YjkxMDlhNmUwYjE4Li5jNzEzNTM5MTI1
ZDkxZDljMzViZWVlZTExZjI4ZjhkNTM1NGU5OGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9h
bmRyb2lkX3dlYnZpZXcucHkKQEAgLTMsMTggKzMsMTcgQEAgZnJvbSAuYmFzZSBpbXBvcnQgcmVx
dWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5v
cWE6IEY0MDEKIGZyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGNocm9tZV9l
eGVjdXRvcl9rd2FyZ3MKIGZyb20gLmNocm9tZV9hbmRyb2lkIGltcG9ydCBDaHJvbWVBbmRyb2lk
QnJvd3NlckJhc2UKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3Ig
ICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQg
KFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ip
ICAjIG5vcWE6IEY0MDEKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENo
cm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9f
ID0geyJwcm9kdWN0IjogImFuZHJvaWRfd2VidmlldyIsCiAgICAgICAgICAgICAgICAgICJjaGVj
a19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25l
OiAiU3lzdGVtV2ViVmlld1NoZWxsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndk
c3BlYyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJTeXN0
ZW1XZWJWaWV3U2hlbGwiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJu
ZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhl
Y3V0b3IifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2RzcGVj
RXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJf
a3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9r
d2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKQEAg
LTU1LDggKzU0LDggQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVz
dF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAga3dhcmdzLmdldCgicGFja2Fn
ZV9uYW1lIiwgIm9yZy5jaHJvbWl1bS53ZWJ2aWV3X3NoZWxsIikKICAgICBjYXBhYmlsaXRpZXNb
Imdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkQWN0aXZpdHkiXSA9IFwKICAgICAgICAgIm9y
Zy5jaHJvbWl1bS53ZWJ2aWV3X3NoZWxsLldlYlBsYXRmb3JtVGVzdHNBY3Rpdml0eSIKLSAgICBp
ZiBrd2FyZ3MuZ2V0KCJkZXZpY2Vfc2VyaWFsIik6Ci0gICAgICAgIGNhcGFiaWxpdGllc1siZ29v
ZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWREZXZpY2VTZXJpYWwiXSA9IGt3YXJnc1siZGV2aWNl
X3NlcmlhbCJdCisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9p
ZEtlZXBBcHBEYXRhRGlyIl0gPSBcCisgICAgICAgIGt3YXJncy5nZXQoImtlZXBfYXBwX2RhdGFf
ZGlyZWN0b3J5IikKIAogICAgICMgV29ya2Fyb3VuZDogZHJpdmVyLnF1aXQoKSBjYW5ub3QgcXVp
dCBTeXN0ZW1XZWJWaWV3U2hlbGwuCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJwYXVzZV9hZnRlcl90
ZXN0Il0gPSBGYWxzZQpAQCAtODgsOCArODcsOCBAQCBjbGFzcyBTeXN0ZW1XZWJWaWV3U2hlbGwo
Q2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRo
PU5vbmUpOgogICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9t
ZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcwogICAgICAgICB0aGUgYnJvd3NlciBiaW5h
cnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgotICAgICAgICBzdXBlcihTeXN0ZW1XZWJWaWV3U2hl
bGwsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwKLSAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmlu
YXJ5LCByZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWwsCi0gICAgICAgICAgICAgICAgd2ViZHJp
dmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJvbHNfcGF0aCkKKyAgICAgICAgc3VwZXIo
KS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Jp
bmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmluYXJ5LCBzeW1ib2xzX3BhdGgpCiAgICAg
ICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0g
X3dwdHNlcnZlX3BvcnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CmluZGV4IDI4MmUyZDdhZDVlZWJjM2Qw
MzM1NDZiNTFiZGUwYzljMmY1MWJhNGYuLjYxOGNkYzJiNzgwM2RiNDMzOGVlOGY3YjNiZDU1YTUw
YzUwN2MwNzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CkBAIC0xLDkgKzEsMTQgQEAKIGltcG9ydCBl
bnVtCitpbXBvcnQgZXJybm8KIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc29j
a2V0CitpbXBvcnQgdHJhY2ViYWNrCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3Rt
ZXRob2QKIAoraW1wb3J0IG1venByb2Nlc3MKKworZnJvbSAuLmVudmlyb25tZW50IGltcG9ydCB3
YWl0X2Zvcl9zZXJ2aWNlCiBmcm9tIC4ud3B0Y29tbWFuZGxpbmUgaW1wb3J0IHJlcXVpcmVfYXJn
ICAjIG5vcWE6IEY0MDEKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKQEAgLTI3
NSwzICsyODAsMTE5IEBAIGNsYXNzIE91dHB1dEhhbmRsZXI6CiAgICAgICAgIHNlbGYubG9nZ2Vy
LnByb2Nlc3Nfb3V0cHV0KHNlbGYucGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21tYW5kKSBpZiBzZWxmLmNv
bW1hbmQgZWxzZSAiIikKKworCitjbGFzcyBXZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgorICAg
IF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYXJncz1Ob25lLCBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsIGJhc2VfcGF0
aD0iLyIsCisgICAgICAgICAgICAgICAgIGVudj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHN1
cGVyKCkuX19pbml0X18obG9nZ2VyKQorCisgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMg
Tm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIldlYkRyaXZlciBzZXJ2ZXIgYmlu
YXJ5IG11c3QgYmUgZ2l2ZW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG8gLS13
ZWJkcml2ZXItYmluYXJ5IGFyZ3VtZW50IikKKworICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dl
cgorICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQorICAgICAgICBzZWxmLndlYmRyaXZlcl9i
aW5hcnkgPSB3ZWJkcml2ZXJfYmluYXJ5CisKKyAgICAgICAgc2VsZi5ob3N0ID0gaG9zdAorICAg
ICAgICBzZWxmLl9wb3J0ID0gcG9ydAorCisgICAgICAgIHNlbGYuYmFzZV9wYXRoID0gYmFzZV9w
YXRoCisgICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUg
ZWxzZSBlbnYKKyAgICAgICAgc2VsZi53ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzIGlm
IHdlYmRyaXZlcl9hcmdzIGlzIG5vdCBOb25lIGVsc2UgW10KKworICAgICAgICBzZWxmLnVybCA9
IGYiaHR0cDovL3tzZWxmLmhvc3R9OntzZWxmLnBvcnR9e3NlbGYuYmFzZV9wYXRofSIKKworICAg
ICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKKyAgICAgICAgc2VsZi5fY21kID0gTm9u
ZQorICAgICAgICBzZWxmLl9wcm9jID0gTm9uZQorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBjb21tYW5kIGZvciBzdGFydGluZyB0aGUg
c2VydmVyIHByb2Nlc3MgYXMgYSBsaXN0LiIiIgorICAgICAgICByZXR1cm4gW3NlbGYud2ViZHJp
dmVyX2JpbmFyeV0gKyBzZWxmLndlYmRyaXZlcl9hcmdzCisKKyAgICBkZWYgc3RhcnQoc2VsZiwg
Z3JvdXBfbWV0YWRhdGEsICoqa3dhcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2Vs
Zi5fcnVuX3NlcnZlcihncm91cF9tZXRhZGF0YSwgKiprd2FyZ3MpCisgICAgICAgIGV4Y2VwdCBL
ZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgY3Jl
YXRlX291dHB1dF9oYW5kbGVyKHNlbGYsIGNtZCk6CisgICAgICAgICIiIlJldHVybiBhbiBpbnN0
YW5jZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBoYW5kbGUgYXBwbGljYXRpb24gb3V0cHV0LgorCisg
ICAgICAgIFRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB3aGljaCBoYXZlIHBh
cnRpY3VsYXIgcmVxdWlyZW1lbnRzCisgICAgICAgIGZvciBwYXJzaW5nLCBvciBvdGhlcndpc2Ug
dXNpbmcsIHRoZSBvdXRwdXQuIiIiCisgICAgICAgIHJldHVybiBPdXRwdXRIYW5kbGVyKHNlbGYu
bG9nZ2VyLCBjbWQpCisKKyAgICBkZWYgX3J1bl9zZXJ2ZXIoc2VsZiwgZ3JvdXBfbWV0YWRhdGEs
ICoqa3dhcmdzKToKKyAgICAgICAgY21kID0gc2VsZi5tYWtlX2NvbW1hbmQoKQorICAgICAgICBz
ZWxmLl9vdXRwdXRfaGFuZGxlciA9IHNlbGYuY3JlYXRlX291dHB1dF9oYW5kbGVyKGNtZCkKKwor
ICAgICAgICBzZWxmLl9wcm9jID0gbW96cHJvY2Vzcy5Qcm9jZXNzSGFuZGxlcigKKyAgICAgICAg
ICAgIGNtZCwKKyAgICAgICAgICAgIHByb2Nlc3NPdXRwdXRMaW5lPXNlbGYuX291dHB1dF9oYW5k
bGVyLAorICAgICAgICAgICAgZW52PXNlbGYuZW52LAorICAgICAgICAgICAgc3RvcmVPdXRwdXQ9
RmFsc2UpCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIFdlYkRyaXZlcjog
JXMiICUgJyAnLmpvaW4oY21kKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fcHJv
Yy5ydW4oKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgZS5l
cnJubyA9PSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKKyAg
ICAgICAgICAgICAgICAgICAgIldlYkRyaXZlciBleGVjdXRhYmxlIG5vdCBmb3VuZDogJXMiICUg
c2VsZi53ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgc2VsZi5f
b3V0cHV0X2hhbmRsZXIuYWZ0ZXJfcHJvY2Vzc19zdGFydChzZWxmLl9wcm9jLnBpZCkKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICB3YWl0X2Zvcl9zZXJ2aWNlKHNlbGYubG9nZ2VyLCBzZWxm
Lmhvc3QsIHNlbGYucG9ydCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKAorICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgd2FzIG5vdCBh
Y2Nlc3NpYmxlICIKKyAgICAgICAgICAgICAgICBmIndpdGhpbiB0aGUgdGltZW91dDpcbnt0cmFj
ZWJhY2suZm9ybWF0X2V4YygpfSIpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBzZWxmLl9v
dXRwdXRfaGFuZGxlci5zdGFydChncm91cF9tZXRhZGF0YT1ncm91cF9tZXRhZGF0YSwgKiprd2Fy
Z3MpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJfcnVuIGNvbXBsZXRlIikKKworICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0
b3BwaW5nIFdlYkRyaXZlciIpCisgICAgICAgIGNsZWFuID0gVHJ1ZQorICAgICAgICBpZiBzZWxm
LmlzX2FsaXZlKCk6CisgICAgICAgICAgICBraWxsX3Jlc3VsdCA9IHNlbGYuX3Byb2Mua2lsbCgp
CisgICAgICAgICAgICBpZiBmb3JjZSBhbmQga2lsbF9yZXN1bHQgIT0gMDoKKyAgICAgICAgICAg
ICAgICBjbGVhbiA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5fcHJvYy5raWxsKDkpCisg
ICAgICAgIHN1Y2Nlc3MgPSBub3Qgc2VsZi5pc19hbGl2ZSgpCisgICAgICAgIGlmIHN1Y2Nlc3Mg
YW5kIHNlbGYuX291dHB1dF9oYW5kbGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBPbmx5
IHRyeSB0byBkbyBvdXRwdXQgcG9zdC1wcm9jZXNzaW5nIGlmIHdlIG1hbmFnZWQgdG8gc2h1dCBk
b3duCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRlcl9wcm9jZXNzX3N0b3Ao
Y2xlYW4pCisgICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9IE5vbmUKKyAgICAgICAg
cmV0dXJuIHN1Y2Nlc3MKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJu
IGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBhbmQgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9u
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5f
cHJvYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLnBpZAorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIHBvcnQoc2VsZik6CisgICAgICAgICMgSWYgbm8gcG9ydCBp
cyBzdXBwbGllZCwgd2UnbGwgZ2V0IGEgZnJlZSBwb3J0IHJpZ2h0IGJlZm9yZSB3ZSB1c2UgaXQu
CisgICAgICAgICMgTm90aGluZyBndWFyYW50ZWVzIGFuIGFic2VuY2Ugb2YgcmFjZSBjb25kaXRp
b25zIGhlcmUuCisgICAgICAgIGlmIHNlbGYuX3BvcnQgaXMgTm9uZToKKyAgICAgICAgICAgIHNl
bGYuX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQKKwor
ICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIGV4
ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsi
d2ViZHJpdmVyX3VybCI6IHNlbGYudXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImhvc3QiOiBzZWxmLmhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cG9ydCI6IHNlbGYucG9ydH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CmluZGV4IDY5ZTQyYjk1YWI0
MjEyMmM4MjMyZmJiYTU0MGYyM2VmYzc0ZGFiNmQuLjhlYWI4OWI5ODhlMjc2ZWEyNDA1Yjk5YTVi
YTMzMDYxNjc1OTcwMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQpAQCAtMSwyNCArMSwyMyBA
QAogZnJvbSAuIGltcG9ydCBjaHJvbWVfc3BraV9jZXJ0cwotZnJvbSAuYmFzZSBpbXBvcnQgQnJv
d3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgV2Vi
RHJpdmVyQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2Vy
ICAjIG5vcWE6IEY0MDEKIGZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIg
ICAjIG5vcWE6IEY0MDEKLWZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2
ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IGNtZF9hcmcKIGZyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1
dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0
b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRv
cikgICMgbm9xYTogRjQwMQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQg
KENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hyb21lRHJpdmVyUHJpbnRSZWZUZXN0RXhlY3V0
b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVjRXhl
Y3V0b3IgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBv
cnQgQ2hyb21lRHJpdmVyUHJpbnRSZWZUZXN0RXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiAKIF9f
d3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lIiwKICAgICAgICAgICAgICAgICAgImNo
ZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjoge05v
bmU6ICJDaHJvbWVCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3Bl
YyI6ICJOdWxsQnJvd3NlciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVC
cm93c2VyIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicHJpbnQtcmVmdGVzdCI6ICJDaHJvbWVEcml2ZXJQcmludFJlZlRl
c3RFeGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkNo
cm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNyYXNodGVzdCI6ICJXZWJEcml2ZXJDcmFzaHRlc3RFeGVjdXRvciJ9LAogICAgICAgICAg
ICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAg
ICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCkBAIC03NiwxMiArNzUs
MTUgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9u
bWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAjIEFsbG93IGF1ZGlvIGF1dG9wbGF5IHdpdGhvdXQg
YSB1c2VyIGdlc3R1cmUuCiAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0tYXV0
b3BsYXktcG9saWN5PW5vLXVzZXItZ2VzdHVyZS1yZXF1aXJlZCIpCiAgICAgIyBBbGxvdyBXZWJS
VEMgdGVzdHMgdG8gY2FsbCBnZXRVc2VyTWVkaWEuCi0gICAgY2hyb21lX29wdGlvbnNbImFyZ3Mi
XS5hcHBlbmQoIi0tdXNlLWZha2UtdWktZm9yLW1lZGlhLXN0cmVhbSIpCiAgICAgY2hyb21lX29w
dGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0tdXNlLWZha2UtZGV2aWNlLWZvci1tZWRpYS1zdHJlYW0i
KQogICAgICMgU2hvcnRlbiBkZWxheSBmb3IgUmVwb3J0aW5nIDxodHRwczovL3czYy5naXRodWIu
aW8vcmVwb3J0aW5nLz4uCiAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0tc2hv
cnQtcmVwb3J0aW5nLWRlbGF5IikKICAgICAjIFBvaW50IGFsbCAudGVzdCBkb21haW5zIHRvIGxv
Y2FsaG9zdCBmb3IgQ2hyb21lCiAgICAgY2hyb21lX29wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0t
aG9zdC1yZXNvbHZlci1ydWxlcz1NQVAgbm9uZXhpc3RlbnQuKi50ZXN0IH5OT1RGT1VORCwgTUFQ
ICoudGVzdCAxMjcuMC4wLjEiKQorICAgICMgRW5hYmxlIFNlY3VyZSBQYXltZW50IENvbmZpcm1h
dGlvbiBmb3IgQ2hyb21lLiBUaGlzIGlzIG5vcm1hbGx5IGRpc2FibGVkCisgICAgIyBvbiBMaW51
eCBhcyBpdCBoYXNuJ3Qgc2hpcHBlZCB0aGVyZSB5ZXQsIGJ1dCBpbiBXUFQgd2UgZW5hYmxlIHZp
cnR1YWwKKyAgICAjIGF1dGhlbnRpY2F0b3IgZGV2aWNlcyBhbnl3YXkgZm9yIHRlc3RpbmcgYW5k
IHNvIFNQQyB3b3Jrcy4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1lbmFi
bGUtZmVhdHVyZXM9U2VjdXJlUGF5bWVudENvbmZpcm1hdGlvbkJyb3dzZXIiKQogCiAgICAgIyBD
bGFzc2lmeSBgaHR0cC1wcml2YXRlYCwgYGh0dHAtcHVibGljYCBhbmQgaHR0cHMgdmFyaWFudHMg
aW4gdGhlCiAgICAgIyBhcHByb3ByaWF0ZSBJUCBhZGRyZXNzIHNwYWNlcy4KQEAgLTEzNiw0MSAr
MTM4LDE0IEBAIGRlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKIGRlZiBlbnZfb3B0aW9ucygpOgog
ICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CiAKKwogZGVmIHVwZGF0ZV9w
cm9wZXJ0aWVzKCk6CiAgICAgcmV0dXJuIChbImRlYnVnIiwgIm9zIiwgInByb2Nlc3NvciJdLCB7
Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9jZXNzb3IiOiBbImJpdHMiXX0pCiAKLWNsYXNzIENocm9t
ZUJyb3dzZXIoQnJvd3Nlcik6Ci0gICAgIiIiQ2hyb21lIGlzIGJhY2tlZCBieSBjaHJvbWVkcml2
ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKLSAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIu
Q2hyb21lRHJpdmVyU2VydmVyYGAuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCi0gICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3Jl
YXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFyeWAgYXJndW1l
bnQgZ2l2ZXMKLSAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4i
IiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCi0gICAgICAgIHNlbGYu
YmluYXJ5ID0gYmluYXJ5Ci0gICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJpdmVyU2VydmVy
KHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
aW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3
YXJncyk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNl
PWZvcmNlKQotCi0gICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LnBpZAotCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhp
cyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vz
bid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAg
ICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0g
ICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhl
Y3V0b3JfYnJvd3NlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3
ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQorCitjbGFzcyBDaHJvbWVCcm93c2VyKFdl
YkRyaXZlckJyb3dzZXIpOgorICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJl
dHVybiBbc2VsZi53ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgIGNtZF9hcmcoInBv
cnQiLCBzdHIoc2VsZi5wb3J0KSksCisgICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2Ui
LCBzZWxmLmJhc2VfcGF0aCksCisgICAgICAgICAgICAgICAgY21kX2FyZygiZW5hYmxlLWNocm9t
ZS1sb2dzIildICsgc2VsZi53ZWJkcml2ZXJfYXJncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9t
ZV9hbmRyb2lkLnB5CmluZGV4IDNiYTAxNTg4YjI5NDNiNjU4MjZlZjlmNjQwYTVmN2Y1NGY1YzA0
NjUuLjFlOTI2YmZhYzJkMmJkYzZiYjZmMGE2MzUxNGIzOGYwNzYxM2Q0MjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKQEAgLTEsMjMgKzEsMjEgQEAKIGltcG9ydCBt
b3pwcm9jZXNzCiBpbXBvcnQgc3VicHJvY2VzcwogCi1mcm9tIC5iYXNlIGltcG9ydCBCcm93c2Vy
LCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBjbWRfYXJn
LCByZXF1aXJlX2FyZwogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAg
ICMgbm9xYTogRjQwMQotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQw
MQorZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJpdmVyQnJvd3NlciAgIyBub3FhOiBGNDAxCiBmcm9t
IC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdz
Ci1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9t
IC4uZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFy
bmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1m
cm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNF
eGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJj
aHJvbWVfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2Fy
Z3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21lQW5kcm9pZEJy
b3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxCcm93
c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkNocm9tZUFuZHJvaWRCcm93c2Vy
IiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2
ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIn0sCiAg
ICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAg
ICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAg
ICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC01NSwxMSArNTMsMTEg
QEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVu
dCwgcnVuX2luZm9fZGF0YSwKICAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMi
XVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KIAogICAgIGFzc2VydCBrd2FyZ3NbInBh
Y2thZ2VfbmFtZSJdLCAibWlzc2luZyAtLXBhY2thZ2UtbmFtZSIKLSAgICBleGVjdXRvcl9rd2Fy
Z3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZFBhY2thZ2Ui
XSA9IFwKKyAgICBjYXBhYmlsaXRpZXMgPSBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJd
CisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZFBhY2thZ2Ui
XSA9IFwKICAgICAgICAga3dhcmdzWyJwYWNrYWdlX25hbWUiXQotICAgIGlmIGt3YXJncy5nZXQo
ImRldmljZV9zZXJpYWwiKToKLSAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMi
XVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWREZXZpY2VTZXJpYWwiXSA9IFwKLSAgICAg
ICAgICAgIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdCisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNo
cm9tZU9wdGlvbnMiXVsiYW5kcm9pZEtlZXBBcHBEYXRhRGlyIl0gPSBcCisgICAgICAgIGt3YXJn
cy5nZXQoImtlZXBfYXBwX2RhdGFfZGlyZWN0b3J5IikKIAogICAgIHJldHVybiBleGVjdXRvcl9r
d2FyZ3MKIApAQCAtMTI1LDI1ICsxMjMsMjYgQEAgY2xhc3MgTG9nY2F0UnVubmVyKG9iamVjdCk6
CiAgICAgICAgIHNlbGYuX3NlbmRfbWVzc2FnZSgibG9nIiwgZGF0YSkKIAogCi1jbGFzcyBDaHJv
bWVBbmRyb2lkQnJvd3NlckJhc2UoQnJvd3Nlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwKK2NsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyQmFzZShXZWJEcml2ZXJCcm93c2VyKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgbG9nZ2VyLAogICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAotICAgICAgICAgICAg
ICAgICByZW1vdGVfcXVldWUgPSBOb25lLAorICAgICAgICAgICAgICAgICByZW1vdGVfcXVldWU9
Tm9uZSwKICAgICAgICAgICAgICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLAogICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAogICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmlu
YXJ5PU5vbmUsCiAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKLSAgICAgICAg
c3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXJCYXNlLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIpCisg
ICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGJpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnk9
d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cz13ZWJkcml2ZXJfYXJncywpCiAgICAgICAgIHNlbGYuZGV2aWNlX3NlcmlhbCA9IGRldmljZV9z
ZXJpYWwKICAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0gc3RhY2t3YWxrX2JpbmFyeQog
ICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCA9IHN5bWJvbHNfcGF0aAogICAgICAgICBzZWxmLnJl
bW90ZV9xdWV1ZSA9IHJlbW90ZV9xdWV1ZQotICAgICAgICBzZWxmLnNlcnZlciA9IENocm9tZURy
aXZlclNlcnZlcihzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisKICAgICAgICAgaWYgc2Vs
Zi5yZW1vdGVfcXVldWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmxvZ2NhdF9ydW5u
ZXIgPSBMb2djYXRSdW5uZXIoc2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLCBzZWxmLnJlbW90ZV9xdWV1ZSkKKyAgICAgICAgICAgIHNl
bGYubG9nY2F0X3J1bm5lciA9IExvZ2NhdFJ1bm5lcihzZWxmLmxvZ2dlciwgc2VsZiwgc2VsZi5y
ZW1vdGVfcXVldWUpCiAKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2V0dXBf
YWRiX3JldmVyc2UoKQpAQCAtMTU4LDMwICsxNTcsMjcgQEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJy
b3dzZXJCYXNlKEJyb3dzZXIpOgogICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCcgJy5qb2luKGNt
ZCkpCiAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChjbWQpCiAKLSAgICBkZWYgc3RhcnQo
c2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkK
LQotICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIu
c3RvcChmb3JjZT1mb3JjZSkKLQotICAgIGRlZiBwaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBz
ZWxmLnNlcnZlci5waWQKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIyBUT0RP
KGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKLSAgICAgICAg
IyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lv
bgotICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2Fs
aXZlKCkKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gW3NlbGYu
d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNl
bGYucG9ydCkpLAorICAgICAgICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNl
X3BhdGgpLAorICAgICAgICAgICAgICAgIGNtZF9hcmcoImVuYWJsZS1jaHJvbWUtbG9ncyIpXSAr
IHNlbGYud2ViZHJpdmVyX2FyZ3MKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBz
ZWxmLnN0b3AoKQorICAgICAgICBzdXBlcigpLmNsZWFudXAoKQogICAgICAgICBzZWxmLl9hZGJf
cnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKICAgICAgICAgc2VsZi5fYWRiX3J1bihb
J3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCiAgICAgICAgIGlmIHNlbGYucmVtb3RlX3F1ZXVl
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5sb2djYXRfcnVubmVyLnN0b3AoZm9yY2U9
VHJ1ZSkKIAogICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgotICAgICAgICByZXR1cm4g
RXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CisgICAg
ICAgIGNscywga3dhcmdzID0gc3VwZXIoKS5leGVjdXRvcl9icm93c2VyKCkKKyAgICAgICAga3dh
cmdzWyJjYXBhYmlsaXRpZXMiXSA9IHsKKyAgICAgICAgICAgICJnb29nOmNocm9tZU9wdGlvbnMi
OiB7CisgICAgICAgICAgICAgICAgImFuZHJvaWREZXZpY2VTZXJpYWwiOiBzZWxmLmRldmljZV9z
ZXJpYWwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2xzLCBrd2Fy
Z3MKIAogICAgIGRlZiBjbGVhcl9sb2coc2VsZik6CiAgICAgICAgIHNlbGYuX2FkYl9ydW4oWyds
b2djYXQnLCAnLWMnXSkKQEAgLTIxNyw2ICsyMTMsNyBAQCBjbGFzcyBDaHJvbWVBbmRyb2lkQnJv
d3NlckJhc2UoQnJvd3Nlcik6CiAgICAgICAgIGZvciBwb3J0IGluIHNlbGYud3B0c2VydmVyX3Bv
cnRzOgogICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAlIHBv
cnQsICd0Y3A6JWQnICUgcG9ydF0pCiAKKwogY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQ2hy
b21lQW5kcm9pZEJyb3dzZXJCYXNlKToKICAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9t
ZWRyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAogICAgIGBgd3B0cnVubmVyLndlYmRy
aXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KQEAgLTIyOSw4ICsyMjYsOCBAQCBjbGFzcyBDaHJv
bWVBbmRyb2lkQnJvd3NlcihDaHJvbWVBbmRyb2lkQnJvd3NlckJhc2UpOgogICAgICAgICAgICAg
ICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLAogICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmlu
YXJ5PU5vbmUsCiAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1Ob25lKToKLSAgICAgICAg
c3VwZXIoQ2hyb21lQW5kcm9pZEJyb3dzZXIsIHNlbGYpLl9faW5pdF9fKGxvZ2dlciwKLSAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5LCByZW1vdGVfcXVldWUsIGRldmljZV9zZXJpYWws
Ci0gICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHN0YWNrd2Fsa19iaW5hcnksIHN5bWJv
bHNfcGF0aCkKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSwgcmVtb3RlX3F1ZXVlLCBkZXZpY2Vfc2VyaWFs
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCBzdGFja3dhbGtfYmlu
YXJ5LCBzeW1ib2xzX3BhdGgpCiAgICAgICAgIHNlbGYucGFja2FnZV9uYW1lID0gcGFja2FnZV9u
YW1lCiAgICAgICAgIHNlbGYud3B0c2VydmVyX3BvcnRzID0gX3dwdHNlcnZlX3BvcnRzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CmluZGV4IGZlNGFjNTI4N2YxOWZmNmM4ZGQxMWZmODBi
Nzk2OTE3YjAxN2MxMDkuLmIyMmVjYzU4OTUxMTVjMGU2ZTkyMDdiMmJlNGMzZWIxYTg0OTE2OGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CkBAIC0xLDE2ICsxLDE0IEBACi1mcm9t
IC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9t
IC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9x
YTogRjQwMQotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENXVENocm9tZURyaXZlclNl
cnZlcgorZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJpdmVyQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zy
b20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3
YXJncworZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3Fh
OiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJp
dmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9x
YTogRjQwMQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJp
dmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiAKIF9fd3B0cnVubmVyX18gPSB7InBy
b2R1Y3QiOiAiY2hyb21lX2lvcyIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNo
ZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6IHtOb25lOiAiQ2hyb21laU9T
QnJvd3NlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJy
b3dzZXIifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiQ2hyb21laU9TQnJvd3NlciIs
CiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVm
dGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJy
b3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKQEAgLTQ1LDM3ICs0MywxMiBAQCBkZWYg
ZW52X29wdGlvbnMoKToKICAgICByZXR1cm4ge30KIAogCi1jbGFzcyBDaHJvbWVpT1NCcm93c2Vy
KEJyb3dzZXIpOgorY2xhc3MgQ2hyb21laU9TQnJvd3NlcihXZWJEcml2ZXJCcm93c2VyKToKICAg
ICAiIiJDaHJvbWVpT1MgaXMgYmFja2VkIGJ5IENXVENocm9tZURyaXZlciwgd2hpY2ggaXMgc3Vw
cGxpZWQgdGhyb3VnaAogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DV1RDaHJvbWVEcml2ZXJT
ZXJ2ZXJgYC4KICAgICAiIiIKIAogICAgIGluaXRfdGltZW91dCA9IDEyMAogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9u
ZSwgKiprd2FyZ3MpOgotICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9m
IENocm9tZS4iIiIKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCi0gICAg
ICAgIHNlbGYuc2VydmVyID0gQ1dUQ2hyb21lRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVy
X2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn
cz13ZWJkcml2ZXJfYXJncykKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQotCi0gICAgZGVmIHN0b3Aoc2VsZiwg
Zm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQotCi0g
ICAgZGVmIHBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAotCi0gICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGlj
YXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0
aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMgYWN0aXZl
LgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVmIGNsZWFu
dXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0b3JfYnJvd3Nl
cihzZWxmKToKLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJs
Ijogc2VsZi5zZXJ2ZXIudXJsfQorICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAg
IHJldHVybiBbc2VsZi5iaW5hcnksIGYiLS1wb3J0PXtzZWxmLnBvcnR9Il0gKyBzZWxmLndlYmRy
aXZlcl9hcmdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CmluZGV4IDMxMDFlOWM3YmVhMzhhNGI2MDk4MjIy
MDQwNWFiYzZkMjJmMmVlMTMuLjA1MzM0MmViNDUyMzc0ODJjMGQ1NjVlYTc3OWVlOWEzMzdlMzUz
MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CkBAIC0xLDIwICsxLDE4IEBACiBpbXBvcnQgdGltZQog
aW1wb3J0IHN1YnByb2Nlc3MKLWZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJv
d3NlciwgcmVxdWlyZV9hcmcKLWZyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6
IEY0MDEKLWZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlRHJpdmVyU2VydmVyCitm
cm9tIC5iYXNlIGltcG9ydCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJpdmVy
QnJvd3NlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2Vf
ZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBv
cnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3Ip
ICAjIG5vcWE6IEY0MDEKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JlZGdlIGltcG9ydCBFZGdl
RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImVkZ2UiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19h
cmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VCcm93c2VyIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAor
ICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJFZGdlQnJvd3NlciIsCiAgICAgICAgICAgICAg
ICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1
dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVt
UmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93
c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRv
cl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRy
YXMiOiAiZW52X2V4dHJhcyIsCkBAIC02NCwzMCArNjIsMjAgQEAgZGVmIGVudl9vcHRpb25zKCk6
CiAgICAgcmV0dXJuIHsic3VwcG9ydHNfZGVidWdnZXIiOiBGYWxzZX0KIAogCi1jbGFzcyBFZGdl
QnJvd3NlcihCcm93c2VyKToKK2NsYXNzIEVkZ2VCcm93c2VyKFdlYkRyaXZlckJyb3dzZXIpOgog
ICAgIGluaXRfdGltZW91dCA9IDYwCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3
ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIHdl
YmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhz
ZWxmLCBsb2dnZXIpCi0gICAgICAgIHNlbGYuc2VydmVyID0gRWRnZURyaXZlclNlcnZlcihzZWxm
LmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13
ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJncz13ZWJkcml2ZXJfYXJncykKLSAgICAgICAgc2VsZi53ZWJkcml2ZXJfaG9zdCA9ICJsb2Nh
bGhvc3QiCi0gICAgICAgIHNlbGYud2ViZHJpdmVyX3BvcnQgPSBzZWxmLnNlcnZlci5wb3J0Ci0g
ICAgICAgIGlmIHRpbWVvdXRfbXVsdGlwbGllcjoKLSAgICAgICAgICAgIHNlbGYuaW5pdF90aW1l
b3V0ID0gc2VsZi5pbml0X3RpbWVvdXQgKiB0aW1lb3V0X211bHRpcGxpZXIKLQotCi0gICAgZGVm
IHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgcHJpbnQoc2VsZi5zZXJ2ZXIudXJsKQot
ICAgICAgICBzZWxmLnNlcnZlci5zdGFydCgpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJncz1Ob25lLAorICAgICAg
ICAgICAgICAgICBob3N0PSJsb2NhbGhvc3QiLCBwb3J0PU5vbmUsIGJhc2VfcGF0aD0iLyIsIGVu
dj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBiaW5h
cnksIHdlYmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPXdlYmRyaXZlcl9hcmdzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFz
ZV9wYXRoLCBlbnY9ZW52LCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5ob3N0ID0gImxvY2FsaG9z
dCIKIAogICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5zZXJ2
ZXIuc3RvcChmb3JjZT1mb3JjZSkKKyAgICAgICAgc3VwZXIoc2VsZikuc3RvcChmb3JjZSkKICAg
ICAgICAgIyBXYWl0IGZvciBFZGdlIGJyb3dzZXIgcHJvY2VzcyB0byBleGl0IGlmIGRyaXZlciBw
cm9jZXNzIGlzIGZvdW5kCiAgICAgICAgIGVkZ2VfcHJvY19uYW1lID0gJ01pY3Jvc29mdEVkZ2Uu
ZXhlJwotICAgICAgICBmb3IgaSBpbiByYW5nZSgwLDUpOgorICAgICAgICBmb3IgaSBpbiByYW5n
ZSgwLCA1KToKICAgICAgICAgICAgIHByb2NzID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyd0
YXNrbGlzdCcsICcvZmknLCAnSW1hZ2VOYW1lIGVxICcgKyBlZGdlX3Byb2NfbmFtZV0pCiAgICAg
ICAgICAgICBpZiBiJ01pY3Jvc29mdFdlYkRyaXZlci5leGUnIG5vdCBpbiBwcm9jczoKICAgICAg
ICAgICAgICAgICAjIEVkZ2UgZHJpdmVyIHByb2Nlc3MgYWxyZWFkeSBleGl0ZWQsIGRvbid0IHdh
aXQgZm9yIGJyb3dzZXIgcHJvY2VzcyB0byBleGl0CkBAIC0xMDEsMjAgKzg5LDggQEAgY2xhc3Mg
RWRnZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAjIGNsb3NlIEVkZ2UgcHJvY2VzcyBp
ZiBpdCBpcyBzdGlsbCBydW5uaW5nCiAgICAgICAgICAgICBzdWJwcm9jZXNzLmNhbGwoWyd0YXNr
a2lsbC5leGUnLCAnL2YnLCAnL2ltJywgJ21pY3Jvc29mdGVkZ2UqJ10pCiAKLSAgICBkZWYgcGlk
KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCi0KLSAgICBkZWYgaXNfYWxp
dmUoc2VsZik6Ci0gICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBz
ZXJ2ZXIgaXMgYWxpdmUsCi0gICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0
IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KLSAgICAgICAgIyBpcyBhY3RpdmUuCi0gICAgICAg
IHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCi0KLSAgICBkZWYgY2xlYW51cChzZWxmKToK
LSAgICAgICAgc2VsZi5zdG9wKCkKLQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgot
ICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNl
cnZlci51cmx9CisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtz
ZWxmLndlYmRyaXZlcl9iaW5hcnksIGYiLS1wb3J0PXtzZWxmLnBvcnR9Il0gKyBzZWxmLndlYmRy
aXZlcl9hcmdzCiAKIAogZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKaW5kZXggZTU5NDlmZTNlNTdmYjJhNzMzZmZlNTdl
NmZiNTg0MjFkYWFiMDg4Yi4uZTk4NTM2MWU0MTI4M2I2OGIxZDJkNzlhNzU1ODEyYjcyNzQ2ZTk5
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQpAQCAtMSw2ICsxLDUg
QEAKIGZyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyICAjIG5vcWE6IEY0MDEKIGZyb20gLmVk
Z2UgaW1wb3J0IChFZGdlQnJvd3NlciwgICMgbm9xYTogRjQwMQotICAgICAgICAgICAgICAgICAg
IEVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAg
ICAgIGNoZWNrX2FyZ3MsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICBicm93c2Vy
X2t3YXJncywgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJn
cywgICMgbm9xYTogRjQwMQpAQCAtOSwxNyArOCwxNyBAQCBmcm9tIC5lZGdlIGltcG9ydCAoRWRn
ZUJyb3dzZXIsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRy
YXMsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICBnZXRfdGltZW91dF9tdWx0aXBs
aWVyKSAgIyBub3FhOiBGNDAxCiAKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgV2RzcGVj
RXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZl
ciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0
RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0Ijog
ImVkZ2Vfd2ViZHJpdmVyIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tf
YXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJFZGdlQnJvd3NlciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRWRnZUJyb3dzZXIiLAogICAgICAgICAgICAg
ICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhl
Y3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNw
ZWMiOiAiRWRnZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogIldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJi
cm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9l
eHRyYXMiOiAiZW52X2V4dHJhcyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
ZWRnZWNocm9taXVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQpp
bmRleCBjOTNkMTQwZWFjZTJlYTJhMTY3NGM4OTExZGVmY2Y3YjJhNjI2MjkwLi5mODYzYTJmNmRm
NDE2MjVmM2YzMzgzZGJkODRjODM1Y2I2NWU5Mjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZWRnZWNocm9taXVtLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
Y2hyb21pdW0ucHkKQEAgLTEsMTE5ICsxLDkyIEBACi1mcm9tIC5iYXNlIGltcG9ydCBCcm93c2Vy
LCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnDQotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJy
b3dzZXIgICMgbm9xYTogRjQwMQ0KLWZyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRp
cGxpZXIgICAjIG5vcWE6IEY0MDENCi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRn
ZUNocm9taXVtRHJpdmVyU2VydmVyDQotZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jf
a3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6
IEY0MDENCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxDQotZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmVkZ2VjaHJvbWl1bSBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3Ig
ICMgbm9xYTogRjQwMQ0KLQ0KLQ0KLV9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZWNo
cm9taXVtIiwNCi0gICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLA0K
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVkZ2VDaHJvbWl1bUJyb3dzZXIi
LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9
LA0KLSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2
ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLA0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiAiRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3Ii
fSwNCi0gICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIs
DQotICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIs
DQotICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwNCi0gICAgICAg
ICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsDQotICAgICAgICAgICAgICAg
ICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIiLH0NCi0NCi0N
Ci1kZWYgY2hlY2tfYXJncygqKmt3YXJncyk6DQotICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndl
YmRyaXZlcl9iaW5hcnkiKQ0KLQ0KLQ0KLWRlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6DQotICAgIHJldHVybiB7ImJp
bmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sDQotICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnki
OiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwNCi0gICAgICAgICAgICAid2ViZHJpdmVyX2Fy
Z3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQ0KLQ0KLQ0KLWRlZiBleGVjdXRvcl9r
d2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUsIHRlc3RfZW52aXJvbm1lbnQsIHJ1bl9pbmZvX2RhdGEs
DQotICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6DQotICAgIGV4ZWN1dG9yX2t3YXJncyA9
IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwNCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudCwNCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwNCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpDQotICAgIGV4ZWN1dG9yX2t3
YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQ0KLSAgICBleGVjdXRvcl9rd2FyZ3NbInN1
cHBvcnRzX2VhZ2VyX3BhZ2Vsb2FkIl0gPSBGYWxzZQ0KLQ0KLSAgICBjYXBhYmlsaXRpZXMgPSB7
DQotICAgICAgICAibXM6ZWRnZU9wdGlvbnMiOiB7DQotICAgICAgICAgICAgInByZWZzIjogew0K
LSAgICAgICAgICAgICAgICAicHJvZmlsZSI6IHsNCi0gICAgICAgICAgICAgICAgICAgICJkZWZh
dWx0X2NvbnRlbnRfc2V0dGluZ192YWx1ZXMiOiB7DQotICAgICAgICAgICAgICAgICAgICAgICAg
InBvcHVwcyI6IDENCi0gICAgICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAgICAgfQ0K
LSAgICAgICAgICAgIH0sDQotICAgICAgICAgICAgInVzZUF1dG9tYXRpb25FeHRlbnNpb24iOiBG
YWxzZSwNCi0gICAgICAgICAgICAiZXhjbHVkZVN3aXRjaGVzIjogWyJlbmFibGUtYXV0b21hdGlv
biJdLA0KLSAgICAgICAgICAgICJ3M2MiOiBUcnVlDQotICAgICAgICB9DQotICAgIH0NCi0NCi0g
ICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6DQotICAgICAgICBjYXBhYmlsaXRpZXNb
InBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJub25lIg0KLQ0KLSAgICBmb3IgKGt3YXJnLCBjYXBhYmls
aXR5KSBpbiBbKCJiaW5hcnkiLCAiYmluYXJ5IiksICgiYmluYXJ5X2FyZ3MiLCAiYXJncyIpXToN
Ci0gICAgICAgIGlmIGt3YXJnc1trd2FyZ10gaXMgbm90IE5vbmU6DQotICAgICAgICAgICAgY2Fw
YWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQ0K
LQ0KLSAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06DQotICAgICAgICBpZiAiYXJncyIgbm90IGlu
IGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXToNCi0gICAgICAgICAgICBjYXBhYmlsaXRp
ZXNbIm1zOmVkZ2VPcHRpb25zIl1bImFyZ3MiXSA9IFtdDQotICAgICAgICBpZiAiLS1oZWFkbGVz
cyIgbm90IGluIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdOg0KLSAgICAg
ICAgICAgIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJncyJdLmFwcGVuZCgiLS1o
ZWFkbGVzcyIpDQotDQotICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBh
YmlsaXRpZXMNCi0NCi0gICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncw0KLQ0KLQ0KLWRlZiBlbnZf
ZXh0cmFzKCoqa3dhcmdzKToNCi0gICAgcmV0dXJuIFtdDQotDQotDQotZGVmIGVudl9vcHRpb25z
KCk6DQotICAgIHJldHVybiB7fQ0KLQ0KLQ0KLWNsYXNzIEVkZ2VDaHJvbWl1bUJyb3dzZXIoQnJv
d3Nlcik6DQotICAgICIiIk1pY3Jvc29mdEVkZ2UgaXMgYmFja2VkIGJ5IE1TRWRnZURyaXZlciwg
d2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaA0KLSAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuRWRn
ZUNocm9taXVtRHJpdmVyU2VydmVyYGAuDQotICAgICIiIg0KLQ0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnk9Im1zZWRnZWRyaXZlciIsDQot
ICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lLCAqKmt3YXJncyk6DQotICAgICAg
ICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIE1pY3Jvc29mdEVkZ2UuICBUaGUg
YGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMNCi0gICAgICAgIHRoZSBicm93c2VyIGJpbmFyeSB0byB1
c2UgZm9yIHRlc3RpbmcuIiIiDQotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dl
cikNCi0gICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5DQotICAgICAgICBzZWxmLnNlcnZlciA9
IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwNCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LA0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykN
Ci0NCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToNCi0gICAgICAgIHNlbGYuc2VydmVy
LnN0YXJ0KGJsb2NrPUZhbHNlKQ0KLQ0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6
DQotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQ0KLQ0KLSAgICBkZWYgcGlk
KHNlbGYpOg0KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZA0KLQ0KLSAgICBkZWYgaXNf
YWxpdmUoc2VsZik6DQotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0
aGUgZHJpdmVyIGlzIGFsaXZlLA0KLSAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcg
YWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbg0KLSAgICAgICAgIyBpcyBhY3RpdmUuDQot
ICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQ0KLQ0KLSAgICBkZWYgY2xlYW51
cChzZWxmKToNCi0gICAgICAgIHNlbGYuc3RvcCgpDQotDQotICAgIGRlZiBleGVjdXRvcl9icm93
c2VyKHNlbGYpOg0KLSAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJf
dXJsIjogc2VsZi5zZXJ2ZXIudXJsfQ0KK2Zyb20gLmJhc2UgaW1wb3J0IGNtZF9hcmcsIHJlcXVp
cmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBXZWJEcml2ZXJCcm93c2VyCitmcm9tIC5iYXNlIGlt
cG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0
b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVj
dXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJv
bSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKKwor
CitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImVkZ2VjaHJvbWl1bSIsCisgICAgICAgICAg
ICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJv
d3NlciI6ICJFZGdlQ2hyb21pdW1Ccm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9y
IjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVj
dXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIldkc3BlY0V4
ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3
YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dh
cmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCisgICAg
ICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAgICAgICAg
ICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsfQorCisK
K2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJk
cml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0ZXN0X3R5cGUs
IHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7ImJpbmFyeSI6
IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJn
c1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dh
cmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dl
ciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLAorICAgICAgICAg
ICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RfZW52aXJvbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVy
X2RvbmUiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbInN1cHBvcnRzX2VhZ2VyX3BhZ2Vs
b2FkIl0gPSBGYWxzZQorCisgICAgY2FwYWJpbGl0aWVzID0geworICAgICAgICAibXM6ZWRnZU9w
dGlvbnMiOiB7CisgICAgICAgICAgICAicHJlZnMiOiB7CisgICAgICAgICAgICAgICAgInByb2Zp
bGUiOiB7CisgICAgICAgICAgICAgICAgICAgICJkZWZhdWx0X2NvbnRlbnRfc2V0dGluZ192YWx1
ZXMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAicG9wdXBzIjogMQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
ICJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIjogRmFsc2UsCisgICAgICAgICAgICAiZXhjbHVkZVN3
aXRjaGVzIjogWyJlbmFibGUtYXV0b21hdGlvbiJdLAorICAgICAgICAgICAgInczYyI6IFRydWUK
KyAgICAgICAgfQorICAgIH0KKworICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgor
ICAgICAgICBjYXBhYmlsaXRpZXNbInBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJub25lIgorCisgICAg
Zm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFy
eV9hcmdzIiwgImFyZ3MiKV06CisgICAgICAgIGlmIGt3YXJnc1trd2FyZ10gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBjYXBhYmlsaXRpZXNbIm1zOmVkZ2VPcHRpb25zIl1bY2FwYWJpbGl0eV0g
PSBrd2FyZ3Nba3dhcmddCisKKyAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06CisgICAgICAgIGlm
ICJhcmdzIiBub3QgaW4gY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdOgorICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdWyJhcmdzIl0gPSBbXQorICAgICAgICBp
ZiAiLS1oZWFkbGVzcyIgbm90IGluIGNhcGFiaWxpdGllc1sibXM6ZWRnZU9wdGlvbnMiXVsiYXJn
cyJdOgorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9ucyJdWyJhcmdzIl0u
YXBwZW5kKCItLWhlYWRsZXNzIikKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJtczplZGdlT3B0aW9u
cyJdWyJhcmdzIl0uYXBwZW5kKCItLXVzZS1mYWtlLWRldmljZS1mb3ItbWVkaWEtc3RyZWFtIikK
KworICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMKKwor
ICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6
CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHt9CisK
KworY2xhc3MgRWRnZUNocm9taXVtQnJvd3NlcihXZWJEcml2ZXJCcm93c2VyKToKKyAgICAiIiJN
aWNyb3NvZnRFZGdlIGlzIGJhY2tlZCBieSBNU0VkZ2VEcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVk
IHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuRWRnZUNocm9taXVtRHJpdmVyU2Vy
dmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gW3NlbGYud2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICBjbWRfYXJnKCJw
b3J0Iiwgc3RyKHNlbGYucG9ydCkpLAorICAgICAgICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNl
Iiwgc2VsZi5iYXNlX3BhdGgpXSArIHNlbGYud2ViZHJpdmVyX2FyZ3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9l
cGlwaGFueS5weQppbmRleCBkNjFmNzRlMjI2OGFlMjZiYTJlNDRhY2RhNDkwODJhMDgyZmUwNjEz
Li5hNDBmNzY1YjYzOTg2ZGVlYmJkNWUxNmE4ZWI5OTg5MGMxMDUxMjQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2VwaXBoYW55LnB5CkBAIC0yLDIxICsyLDIxIEBAIGZyb20gLmJhc2UgaW1wb3J0IChOdWxs
QnJvd3NlciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlX2Rv
bWFpbl9saXN0LAogICAgICAgICAgICAgICAgICAgIGdldF90aW1lb3V0X211bHRpcGxpZXIsICAj
IG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICBtYXliZV9hZGRfYXJncykKLWZyb20gLndl
YmtpdCBpbXBvcnQgV2ViS2l0QnJvd3NlcgorZnJvbSAud2Via2l0IGltcG9ydCBXZWJLaXRCcm93
c2VyICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJn
cyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBX
ZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Vi
ZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQw
MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlckNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAx
Ci1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNw
ZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAi
ZXBpcGhhbnkiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwK
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkVwaXBoYW55QnJvd3NlciIsCisg
ICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6ICJXZWJLaXRCcm93c2VyIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJOdWxsQnJvd3NlciJ9LAogICAgICAg
ICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNz
RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2Vi
RHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY3Jhc2h0ZXN0IjogIldlYkRyaXZlckNyYXNodGVzdEV4ZWN1dG9yIn0s
CiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwK
ICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC03MSwxMCAr
NzEsMyBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJn
cyk6CiAgICAgcmV0dXJuIHsid2Via2l0X3BvcnQiOiAiZ3RrIn0KLQotCi1jbGFzcyBFcGlwaGFu
eUJyb3dzZXIoV2ViS2l0QnJvd3Nlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKLSAgICAgICAgICAgICAgICAgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgotICAgICAgICBXZWJLaXRCcm93c2VyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5w
eQppbmRleCBhYzI3NDUzMTI3YWJlN2U2ZDg2NWJiNmRhOTgwMmVkZjAxZjM4ZjJlLi4wZWQ3YTM2
NWI0Mjk5YTM0M2M5NzA0MTViOWY5ZmRhOTA3OThlMTdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZmlyZWZveC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZv
eC5weQpAQCAtMSwxMyArMSwxMiBAQAotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGlvCiBpbXBvcnQg
anNvbgogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzaWduYWwKIGltcG9ydCBz
dWJwcm9jZXNzCiBpbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB6aXBmaWxlCitpbXBvcnQgdGltZQog
ZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCitmcm9tIGh0dHAuY2xpZW50
IGltcG9ydCBIVFRQQ29ubmVjdGlvbgogCiBpbXBvcnQgbW96aW5mbwogaW1wb3J0IG1vemxlYWsK
QEAgLTIwLDcgKzE5LDcgQEAgZnJvbSBtb3pjcmFzaCBpbXBvcnQgbW96Y3Jhc2gKIAogZnJvbSAu
YmFzZSBpbXBvcnQgKEJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgRXhlY3V0b3JCcm93c2Vy
LAotICAgICAgICAgICAgICAgICAgIE51bGxCcm93c2VyLAorICAgICAgICAgICAgICAgICAgIFdl
YkRyaXZlckJyb3dzZXIsCiAgICAgICAgICAgICAgICAgICAgT3V0cHV0SGFuZGxlciwKICAgICAg
ICAgICAgICAgICAgICBPdXRwdXRIYW5kbGVyU3RhdGUsCiAgICAgICAgICAgICAgICAgICAgYnJv
d3Nlcl9jb21tYW5kLApAQCAtMzMsMTAgKzMyLDggQEAgZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm8K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVBy
aW50UmVmVGVzdEV4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVXZHNwZWNFeGVjdXRvciwgICMgbm9xYTog
RjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJpb25l
dHRlQ3Jhc2h0ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKLWZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAogCi1oZXJlID0gb3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZpcmVmb3giLAogICAgICAg
ICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKQEAgLTg1LDYgKzgyLDggQEAg
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgogCiBkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7
ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFy
eSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9h
cmdzIjoga3dhcmdzWyJ3ZWJkcml2ZXJfYXJncyJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3Qi
OiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwKICAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJn
c1siZXh0cmFfcHJlZnMiXSwKICAgICAgICAgICAgICJ0ZXN0X3R5cGUiOiB0ZXN0X3R5cGUsCkBA
IC0xMTIsMTcgKzExMSw2IEBAIGRlZiBicm93c2VyX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwg
cnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAic3BlY2lhbHBv
d2Vyc19wYXRoIjoga3dhcmdzWyJzcGVjaWFscG93ZXJzX3BhdGgiXX0KIAogCi1jbGFzcyBXZFNw
ZWNQcm9maWxlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2ZpbGUpOgotICAg
ICAgICBzZWxmLnByb2ZpbGUgPSBwcm9maWxlCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6Ci0gICAgICAgIHNlbGYucHJvZmlsZS5jbGVhbnVwKCkKLQotCiBkZWYgZXhlY3V0b3Jf
a3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0g
YmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5m
b19kYXRhLApAQCAtMTQ1LDU3ICsxMzMsMTEgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIs
IHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgaWYg
a3dhcmdzWyJiaW5hcnlfYXJncyJdOgogICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0ga3dh
cmdzWyJiaW5hcnlfYXJncyJdCiAKLSAgICAgICAgcHJvZmlsZV9jcmVhdG9yID0gUHJvZmlsZUNy
ZWF0b3IobG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NbInByZWZzX3Jvb3QiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga3dhcmdzWyJleHRyYV9wcmVmcyJdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImdlY2tvX2UxMHMiXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJlbmFibGVfZmlzc2lvbiJdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImJyb3dzZXJfY2hh
bm5lbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
ImJpbmFyeSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2Fy
Z3NbImNlcnR1dGlsX2JpbmFyeSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgi
XSkKLSAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMiXSA+IDE6Ci0gICAgICAgICAgICAjIFdp
dGggbXVsdGlwbGUgcHJvY2Vzc2VzLCB3ZSB3b3VsZCBuZWVkIGEgcHJvZmlsZSBkaXJlY3Rvcnkg
cGVyIHByb2Nlc3MsIGJ1dCB3ZQotICAgICAgICAgICAgIyBkb24ndCBoYXZlIGFuIGVhc3kgd2F5
IHRvIGRvIHRoYXQsIHNvIGluY2x1ZGUgdGhlIHByb2ZpbGUgaW4gdGhlIGNhcGFiaWx0aWVzCi0g
ICAgICAgICAgICAjIGRpcmVjdGx5IGluc3RlYWQuIFRoaXMgbWVhbnMgcmVjcmVhdGluZyBpdCBw
ZXIgc2Vzc2lvbiwgd2hpY2ggaXMgc2xvdwotICAgICAgICAgICAgb3B0aW9uc1sicHJvZmlsZSJd
ID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZV9iYXNlNjQoKQotICAgICAgICAgICAgcHJvZmlsZSA9
IE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByb2ZpbGUgPSBwcm9maWxlX2NyZWF0
b3IuY3JlYXRlKCkKLSAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5leHRlbmQoWyItLXByb2Zp
bGUiLCBwcm9maWxlLnByb2ZpbGVdKQotICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnZf
ZXh0cmFzX2Ntcy5hcHBlbmQoV2RTcGVjUHJvZmlsZShwcm9maWxlKSkKKyAgICAgICAgaWYgbm90
IGt3YXJnc1siYmluYXJ5Il0gYW5kIGt3YXJnc1siaGVhZGxlc3MiXSBhbmQgIi0taGVhZGxlc3Mi
IG5vdCBpbiBvcHRpb25zWyJhcmdzIl06CisgICAgICAgICAgICBvcHRpb25zWyJhcmdzIl0uYXBw
ZW5kKCItLWhlYWRsZXNzIikKIAogICAgICAgICBjYXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0
aW9ucyJdID0gb3B0aW9ucwogCi0gICAgICAgICMgVGhpcyBnZXRzIHJldXNlZCBmb3IgZmlyZWZv
eF9hbmRyb2lkLCBidXQgdGhlIGVudmlyb25tZW50IHNldHVwCi0gICAgICAgICMgaXNuJ3QgcmVx
dWlyZWQgaW4gdGhhdCBjYXNlCi0gICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il06Ci0gICAgICAg
ICAgICBlbnZpcm9uID0gZ2V0X2Vudmlyb24obG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJzdHlsb190aHJlYWRzIl0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJdLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGt3YXJnc1siY2hhb3NfbW9kZV9mbGFncyJdKQotICAgICAgICAgICAg
bGVha19yZXBvcnRfZmlsZSA9IHNldHVwX2xlYWtfcmVwb3J0KGt3YXJnc1sibGVha19jaGVjayJd
LCBwcm9maWxlLCBlbnZpcm9uKQotCi0gICAgICAgICAgICAjIFRoaXMgZG9lc24ndCB3b3JrIHdp
dGggd2RzcGVjIHRlc3RzCi0gICAgICAgICAgICAjIEluIHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNy
ZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBwYXNzaW5nIGluIHRoZSBjYXBhYmlsaXRlcwotICAgICAg
ICAgICAgIyBhbmQgaW4gdGhvc2UgY2FzZXMgd2UgZ2V0IHRoZSBkZWZhdWx0IGdlY2tvZHJpdmVy
IHByb2ZpbGUgd2hpY2ggZG9lc24ndAotICAgICAgICAgICAgIyBndWFyYW50ZWUgemVybyBuZXR3
b3JrIGFjY2VzcwotICAgICAgICAgICAgZGVsIGVudmlyb25bIk1PWl9ESVNBQkxFX05PTkxPQ0FM
X0NPTk5FQ1RJT05TIl0KLSAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siZW52aXJvbiJdID0g
ZW52aXJvbgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJd
IGFuZCAiLS1oZWFkbGVzcyIgbm90IGluIG9wdGlvbnNbImFyZ3MiXToKLSAgICAgICAgICAgICAg
ICBvcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKLSAgICAgICAgICAgIGxlYWtf
cmVwb3J0X2ZpbGUgPSBOb25lCi0KLSAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdGFja2ZpeF9k
aXIiXSA9IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0sCi0gICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
bGVha19yZXBvcnRfZmlsZSJdID0gbGVha19yZXBvcnRfZmlsZQotICAgICAgICBleGVjdXRvcl9r
d2FyZ3NbImFzYW4iXSA9IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIikKLQogICAgIGlmIGt3YXJn
c1siY2VydHV0aWxfYmluYXJ5Il0gaXMgTm9uZToKICAgICAgICAgY2FwYWJpbGl0aWVzWyJhY2Nl
cHRJbnNlY3VyZUNlcnRzIl0gPSBUcnVlCiAgICAgaWYgY2FwYWJpbGl0aWVzOgpAQCAtMjYzLDcg
KzIwNSw3IEBAIGRlZiBydW5faW5mb19icm93c2VyX3ZlcnNpb24oKiprd2FyZ3MpOgogCiAKIGRl
ZiB1cGRhdGVfcHJvcGVydGllcygpOgotICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJy
ZW5kZXIiLCAiZmlzc2lvbiIsICJlMTBzIiwgInByb2Nlc3NvciIsICJzd2dsIl0sCisgICAgcmV0
dXJuIChbIm9zIiwgImRlYnVnIiwgImZpc3Npb24iLCAiZTEwcyIsICJwcm9jZXNzb3IiLCAic3dn
bCIsICJkb21zdHJlYW1zIl0sCiAgICAgICAgICAgICB7Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9j
ZXNzb3IiOiBbImJpdHMiXX0pCiAKIApAQCAtMjc1LDYgKzIxNyw4IEBAIGRlZiBnZXRfZW52aXJv
bihsb2dnZXIsIGJpbmFyeSwgZGVidWdfaW5mbywgc3R5bG9fdGhyZWFkcywgaGVhZGxlc3MsIGVu
YWJsZV93ZWJyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2c9bG9nZ2VyKQogCiAgICAg
ZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc3R5bG9fdGhyZWFkcykKKyAgICAjIERpc2FibGUg
d2luZG93IG9jY2x1c2lvbi4gQnVnIDE3MzM5NTUKKyAgICBlbnZbIk1PWl9XSU5ET1dfT0NDTFVT
SU9OIl0gPSAiMCIKICAgICBpZiBjaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgogICAgICAg
ICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihjaGFvc19tb2RlX2ZsYWdzKQogICAgIGlmIGhl
YWRsZXNzOgpAQCAtNjA4LDcgKzU1Miw4IEBAIGNsYXNzIEZpcmVmb3hPdXRwdXRIYW5kbGVyKE91
dHB1dEhhbmRsZXIpOgogCiBjbGFzcyBQcm9maWxlQ3JlYXRvcjoKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCBjb25maWcsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnMs
IGUxMHMsCi0gICAgICAgICAgICAgICAgIGVuYWJsZV9maXNzaW9uLCBicm93c2VyX2NoYW5uZWws
IGJpbmFyeSwgY2VydHV0aWxfYmluYXJ5LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKToKKyAgICAgICAg
ICAgICAgICAgZW5hYmxlX2Zpc3Npb24sIGJyb3dzZXJfY2hhbm5lbCwgYmluYXJ5LCBjZXJ0dXRp
bF9iaW5hcnksCisgICAgICAgICAgICAgICAgIGNhX2NlcnRpZmljYXRlX3BhdGgpOgogICAgICAg
ICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgogICAgICAgICBzZWxmLnByZWZzX3Jvb3QgPSBwcmVmc19y
b290CiAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCkBAIC02MzksMjEgKzU4NCw2IEBAIGNs
YXNzIFByb2ZpbGVDcmVhdG9yOgogCiAgICAgICAgIHJldHVybiBwcm9maWxlCiAKLSAgICBkZWYg
Y3JlYXRlX2Jhc2U2NChzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHByb2ZpbGUgPSBzZWxmLmNy
ZWF0ZSgqKmt3YXJncykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBpby5CeXRlc0lP
KCkgYXMgYnVmOgotICAgICAgICAgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGJ1ZiwgInci
LCBjb21wcmVzc2lvbj16aXBmaWxlLlpJUF9ERUZMQVRFRCkgYXMgemlwZjoKLSAgICAgICAgICAg
ICAgICAgICAgZm9yIGRpcnBhdGgsIF8sIGZpbGVuYW1lcyBpbiBvcy53YWxrKHByb2ZpbGUucHJv
ZmlsZSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVz
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19wYXRoID0gb3MucGF0aC5qb2luKGRp
cnBhdGgsIGZpbGVuYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RfcGF0aCA9
IG9zLnBhdGgucmVscGF0aChzcmNfcGF0aCwgcHJvZmlsZS5wcm9maWxlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpdGggb3BlbihzcmNfcGF0aCwgInJiIikgYXMgZjoKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgemlwZi53cml0ZXN0cihkZXN0X3BhdGgsIGYucmVhZCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKGJ1Zi5nZXR2YWx1ZSgp
KS5kZWNvZGUoImFzY2lpIikuc3RyaXAoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
cHJvZmlsZS5jbGVhbnVwKCkKLQogICAgIGRlZiBfbG9hZF9wcmVmcyhzZWxmKToKICAgICAgICAg
cHJlZnMgPSBQcmVmZXJlbmNlcygpCiAKQEAgLTg4MSwxMCArODExLDExMiBAQCBjbGFzcyBGaXJl
Zm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAKLWNsYXNz
IEZpcmVmb3hXZFNwZWNCcm93c2VyKE51bGxCcm93c2VyKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBsZWFrX2NoZWNrPUZhbHNlLCAqKmt3YXJncyk6Ci0gICAgICAgIHN1cGVyKCku
X19pbml0X18obG9nZ2VyLCAqKmt3YXJncykKK2NsYXNzIEZpcmVmb3hXZFNwZWNCcm93c2VyKFdl
YkRyaXZlckJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwg
cHJlZnNfcm9vdCwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAg
ICAgICAgIGV4dHJhX3ByZWZzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwgc3ltYm9sc19wYXRoPU5v
bmUsIHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2VydHV0aWxfYmlu
YXJ5PU5vbmUsIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgZTEwcz1GYWxzZSwKKyAgICAgICAg
ICAgICAgICAgZW5hYmxlX2Zpc3Npb249RmFsc2UsIHN0YWNrZml4X2Rpcj1Ob25lLCBsZWFrX2No
ZWNrPUZhbHNlLAorICAgICAgICAgICAgICAgICBhc2FuPUZhbHNlLCBzdHlsb190aHJlYWRzPTEs
IGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCisgICAgICAgICAgICAgICAgIGJy
b3dzZXJfY2hhbm5lbD0ibmlnaHRseSIsIGhlYWRsZXNzPU5vbmUsICoqa3dhcmdzKToKKworICAg
ICAgICBzdXBlcigpLl9faW5pdF9fKGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LCB3
ZWJkcml2ZXJfYXJncykKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXJfYmluYXJ5ID0gd2ViZHJpdmVyX2JpbmFyeQorCisgICAgICAgIHNlbGYuc3Rh
Y2tmaXhfZGlyID0gc3RhY2tmaXhfZGlyCisgICAgICAgIHNlbGYuc3ltYm9sc19wYXRoID0gc3lt
Ym9sc19wYXRoCisgICAgICAgIHNlbGYuc3RhY2t3YWxrX2JpbmFyeSA9IHN0YWNrd2Fsa19iaW5h
cnkKKworICAgICAgICBzZWxmLmFzYW4gPSBhc2FuCiAgICAgICAgIHNlbGYubGVha19jaGVjayA9
IGxlYWtfY2hlY2sKKyAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0gTm9uZQorCisgICAg
ICAgIHNlbGYuZW52ID0gc2VsZi5nZXRfZW52KGJpbmFyeSwgZGVidWdfaW5mbywgc3R5bG9fdGhy
ZWFkcywgaGVhZGxlc3MsIGNoYW9zX21vZGVfZmxhZ3MpCisKKyAgICAgICAgcHJvZmlsZV9jcmVh
dG9yID0gUHJvZmlsZUNyZWF0b3IobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmVmc19yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3ZHNwZWMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHRyYV9wcmVmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZTEw
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2Zpc3Np
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2hh
bm5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0dXRpbF9iaW5hcnks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRpZmljYXRl
X3BhdGgpCisKKyAgICAgICAgc2VsZi5wcm9maWxlID0gcHJvZmlsZV9jcmVhdG9yLmNyZWF0ZSgp
CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gTm9uZQorCisgICAgZGVmIGdldF9lbnYo
c2VsZiwgYmluYXJ5LCBkZWJ1Z19pbmZvLCBzdHlsb190aHJlYWRzLCBoZWFkbGVzcywgY2hhb3Nf
bW9kZV9mbGFncyk6CisgICAgICAgIGVudiA9IGdldF9lbnZpcm9uKHNlbGYubG9nZ2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlYnVnX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxvX3RocmVhZHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRsZXNzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFvc19tb2RlX2ZsYWdzKQorICAgICAgICBlbnZbIlJVU1RfQkFDS1RSQUNFIl0gPSAi
MSIKKyAgICAgICAgIyBUaGlzIGRvZXNuJ3Qgd29yayB3aXRoIHdkc3BlYyB0ZXN0cworICAgICAg
ICAjIEluIHBhcnRpY3VsYXIgdGVzdHMgY2FuIGNyZWF0ZSBhIHNlc3Npb24gd2l0aG91dCBwYXNz
aW5nIGluIHRoZSBjYXBhYmlsaXRlcworICAgICAgICAjIGFuZCBpbiB0aG9zZSBjYXNlcyB3ZSBn
ZXQgdGhlIGRlZmF1bHQgZ2Vja29kcml2ZXIgcHJvZmlsZSB3aGljaCBkb2Vzbid0CisgICAgICAg
ICMgZ3VhcmFudGVlIHplcm8gbmV0d29yayBhY2Nlc3MKKyAgICAgICAgZGVsIGVudlsiTU9aX0RJ
U0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXQorICAgICAgICByZXR1cm4gZW52CisKKyAgICBk
ZWYgY3JlYXRlX291dHB1dF9oYW5kbGVyKHNlbGYsIGNtZCk6CisgICAgICAgIHJldHVybiBGaXJl
Zm94T3V0cHV0SGFuZGxlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
Zml4X2Rpcj1zZWxmLnN0YWNrZml4X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN5bWJvbHNfcGF0aD1zZWxmLnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzYW49c2VsZi5hc2FuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGVha19yZXBvcnRfZmlsZT1zZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCisK
KyAgICBkZWYgc3RhcnQoc2VsZiwgZ3JvdXBfbWV0YWRhdGEsICoqa3dhcmdzKToKKyAgICAgICAg
c2VsZi5sZWFrX3JlcG9ydF9maWxlID0gc2V0dXBfbGVha19yZXBvcnQoc2VsZi5sZWFrX2NoZWNr
LCBzZWxmLnByb2ZpbGUsIHNlbGYuZW52KQorICAgICAgICBzdXBlcigpLnN0YXJ0KGdyb3VwX21l
dGFkYXRhLCAqKmt3YXJncykKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAg
ICAgICAgIyBJbml0aWFsbHkgd2FpdCBmb3IgYW55IFdlYkRyaXZlciBzZXNzaW9uIHRvIGNsZWFu
bHkgc2h1dGRvd24KKyAgICAgICAgIyBXaGVuIHRoaXMgaXMgY2FsbGVkIHRoZSBleGVjdXRvciBp
cyB1c3VhbGx5IHNlbmRpbmcgYSBlbmQgc2Vzc2lvbgorICAgICAgICAjIGNvbW1hbmQgdG8gdGhl
IGJyb3dzZXIuIFdlIGRvbid0IGhhdmUgYSBzeW5jaHJvbmlzYXRpb24gbWVjaGFuaXNtCisgICAg
ICAgICMgdGhhdCBhbGxvd3MgdXMgdG8ga25vdyB0aGF0IHByb2Nlc3MgaXMgb25nb2luZywgc28g
cG9sbCB0aGUgc3RhdHVzCisgICAgICAgICMgZW5kcG9pbnQgdW50aWwgdGhlcmUgaXNuJ3QgYSBz
ZXNzaW9uLCBiZWZvcmUga2lsbGluZyB0aGUgZHJpdmVyLgorICAgICAgICBpZiBzZWxmLmlzX2Fs
aXZlKCk6CisgICAgICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgpICsgQnJvd3Nlckluc3Rh
bmNlLnNodXRkb3duX3RpbWVvdXQKKyAgICAgICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwgZW5k
X3RpbWU6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIldhaXRpbmcgZm9yIFdl
YkRyaXZlciBzZXNzaW9uIHRvIGVuZCIpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhmIkNvbm5lY3RpbmcgdG8gaHR0cDovL3tzZWxm
Lmhvc3R9OntzZWxmLnBvcnR9L3N0YXR1cyIpCisgICAgICAgICAgICAgICAgICAgIGNvbm4gPSBI
VFRQQ29ubmVjdGlvbihzZWxmLmhvc3QsIHNlbGYucG9ydCkKKyAgICAgICAgICAgICAgICAgICAg
Y29ubi5yZXF1ZXN0KCJHRVQiLCAiL3N0YXR1cyIpCisgICAgICAgICAgICAgICAgICAgIHJlcyA9
IGNvbm4uZ2V0cmVzcG9uc2UoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZyhmIkdvdCByZXNwb25zZSBmcm9tIGh0dHA6Ly97c2VsZi5ob3N0fTp7c2VsZi5wb3J0fS9zdGF0
dXMiKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAgZiJDb25uZWN0
aW5nIHRvIGh0dHA6Ly97c2VsZi5ob3N0fTp7c2VsZi5wb3J0fS9zdGF0dXMgZmFpbGVkIikKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiByZXMuc3RhdHVzICE9
IDIwMDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZiJDb25uZWN0aW5n
IHRvIGh0dHA6Ly97c2VsZi5ob3N0fTp7c2VsZi5wb3J0fS9zdGF0dXMgIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmImdhdmUgc3RhdHVzIHtyZXMuc3RhdHVzfSIpCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZGF0YSA9IHJlcy5yZWFk
KCkKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9IGpzb24u
bG9hZHMoZGF0YSkKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIi9zdGF0dXMgcmVzcG9uc2Ugd2FzIG5vdCB2
YWxpZCBKU09OIikKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBp
ZiBtc2cuZ2V0KCJ2YWx1ZSIsIHt9KS5nZXQoInJlYWR5IikgaXMgVHJ1ZToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCByZWFkeSBzdGF0dXMiKQorICAgICAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKGYiR290
IHN0YXR1cyByZXNwb25zZSB7ZGF0YX0iKQorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIldl
YkRyaXZlciBzZXNzaW9uIGRpZG4ndCBlbmQiKQorICAgICAgICBzdXBlcigpLnN0b3AoZm9yY2U9
Zm9yY2UpCisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc3VwZXIoKS5jbGVhbnVw
KCkKKyAgICAgICAgc2VsZi5wcm9maWxlLmNsZWFudXAoKQogCiAgICAgZGVmIHNldHRpbmdzKHNl
bGYsIHRlc3QpOgogICAgICAgICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVj
ayBhbmQgbm90IHRlc3QubGVha3MsCkBAIC04OTQsMjQgKzkyNiwxMiBAQCBjbGFzcyBGaXJlZm94
V2RTcGVjQnJvd3NlcihOdWxsQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxs
b3dlZCI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCiAgICAgICAg
ICAgICAgICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5t
b3psZWFrX3RocmVzaG9sZH0KIAotCi1jbGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJT
ZXJ2ZXIpOgotICAgIG91dHB1dF9oYW5kbGVyX2NscyA9IEZpcmVmb3hPdXRwdXRIYW5kbGVyCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBtYXJpb25ldHRlX3BvcnQ9MjgyOCwgYmlu
YXJ5PSJnZWNrb2RyaXZlciIsCi0gICAgICAgICAgICAgICAgIGhvc3Q9IjEyNy4wLjAuMSIsIHBv
cnQ9Tm9uZSwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6Ci0gICAgICAgIGlmIGVudiBpcyBOb25lOgot
ICAgICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKLSAgICAgICAgZW52WyJSVVNUX0JB
Q0tUUkFDRSJdID0gIjEiCi0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9aG9z
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPWFyZ3MpCi0gICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gbWFy
aW9uZXR0ZV9wb3J0Ci0KICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1
cm4gW3NlbGYuYmluYXJ5LAotICAgICAgICAgICAgICAgICItLW1hcmlvbmV0dGUtcG9ydCIsIHN0
cihzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAgICAgIHJldHVybiBbc2VsZi53ZWJkcml2ZXJf
YmluYXJ5LAogICAgICAgICAgICAgICAgICItLWhvc3QiLCBzZWxmLmhvc3QsCi0gICAgICAgICAg
ICAgICAgIi0tcG9ydCIsIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKyAgICAgICAgICAg
ICAgICAiLS1wb3J0Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi53ZWJkcml2ZXJfYXJncworCisg
ICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIGNscywgYXJncyA9IHN1cGVy
KCkuZXhlY3V0b3JfYnJvd3NlcigpCisgICAgICAgIGFyZ3NbInByb2ZpbGUiXSA9IHNlbGYucHJv
ZmlsZS5wcm9maWxlCisgICAgICAgIHJldHVybiBjbHMsIGFyZ3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvZmlyZWZveF9hbmRyb2lkLnB5CmluZGV4IDBlYWE4MWEwZTQzMTRlNjM2YWMzMWYxZjZkZjM0
YjdjY2E3YjE1YzEuLjY2ODIxYjgxMmI1NTdjMWNmNDhlNjdmZmU5NWJjYzZkNGI5OTBhY2QgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQpAQCAtMSw3ICsxLDcgQEAK
IGltcG9ydCBvcwogCiBpbXBvcnQgbW96bmV0d29yawotZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZl
bm5lY0VtdWxhdG9yUnVubmVyCitmcm9tIG1venJ1bm5lciBpbXBvcnQgRmVubmVjRW11bGF0b3JS
dW5uZXIsIGdldF9hcHBfY29udGV4dAogCiBmcm9tIC5iYXNlIGltcG9ydCAoZ2V0X2ZyZWVfcG9y
dCwKICAgICAgICAgICAgICAgICAgICBjbWRfYXJnLApAQCAtMTYsMTIgKzE2LDE0IEBAIGZyb20g
LmZpcmVmb3ggaW1wb3J0IChnZXRfdGltZW91dF9tdWx0aXBsaWVyLCAgIyBub3FhOiBGNDAxCiAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzIGFzIGZ4X3J1bl9pbmZvX2V4dHJh
cywKICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcywgICMgbm9xYTogRjQw
MQogICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJncyBhcyBmeF9leGVjdXRvcl9r
d2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICBGaXJlZm94V2RTcGVj
QnJvd3NlciwKICAgICAgICAgICAgICAgICAgICAgICBQcm9maWxlQ3JlYXRvciBhcyBGaXJlZm94
UHJvZmlsZUNyZWF0b3IpCiAKIAogX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJmaXJlZm94
X2FuZHJvaWQiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwK
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveEFuZHJvaWRCcm93c2VyIiwKKyAg
ICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIkZpcmVmb3hBbmRyb2lkQnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiRmlyZWZveEFuZHJvaWRX
ZFNwZWNCcm93c2VyIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5l
c3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiY3Jhc2h0ZXN0IjogIk1hcmlvbmV0dGVDcmFzaHRl
c3RFeGVjdXRvciIsCkBAIC00MSw2ICs0Myw4IEBAIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToK
IAogZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJhZGJfYmluYXJ5Ijoga3dhcmdzWyJhZGJf
YmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJp
dmVyX2JpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzWyJ3ZWJk
cml2ZXJfYXJncyJdLAogICAgICAgICAgICAgInBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2Fn
ZV9uYW1lIl0sCiAgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3Nl
cmlhbCJdLAogICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwK
QEAgLTk3LDYgKzEwMSwxNyBAQCBkZWYgZW52X29wdGlvbnMoKToKICAgICAgICAgICAgICJzdXBw
b3J0c19kZWJ1Z2dlciI6IFRydWV9CiAKIAorZGVmIGdldF9lbnZpcm9uKHN0eWxvX3RocmVhZHMs
IGNoYW9zX21vZGVfZmxhZ3MpOgorICAgIGVudiA9IHt9CisgICAgZW52WyJNT1pfQ1JBU0hSRVBP
UlRFUiJdID0gIjEiCisgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEi
CisgICAgZW52WyJNT1pfRElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9OUyJdID0gIjEiCisgICAg
ZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc3R5bG9fdGhyZWFkcykKKyAgICBpZiBjaGFvc19t
b2RlX2ZsYWdzIGlzIG5vdCBOb25lOgorICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0
cihjaGFvc19tb2RlX2ZsYWdzKQorICAgIHJldHVybiBlbnYKKworCiBjbGFzcyBQcm9maWxlQ3Jl
YXRvcihGaXJlZm94UHJvZmlsZUNyZWF0b3IpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIHByZWZzX3Jvb3QsIGNvbmZpZywgdGVzdF90eXBlLCBleHRyYV9wcmVmcywKICAgICAgICAg
ICAgICAgICAgZW5hYmxlX2Zpc3Npb24sIGJyb3dzZXJfY2hhbm5lbCwgY2VydHV0aWxfYmluYXJ5
LCBjYV9jZXJ0aWZpY2F0ZV9wYXRoKToKQEAgLTEzMyw4ICsxNDgsOCBAQCBjbGFzcyBGaXJlZm94
QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgaW5pdF90aW1lb3V0ID0gMzAwCiAgICAgc2h1
dGRvd25fdGltZW91dCA9IDYwCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVm
c19yb290LCB0ZXN0X3R5cGUsIHBhY2thZ2VfbmFtZT0ib3JnLm1vemlsbGEuZ2Vja292aWV3LnRl
c3QiLAotICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPSJlbXVsYXRvci01NDQ0IiwgZXh0
cmFfcHJlZnM9Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgcGFja2FnZV9uYW1lPSJvcmcubW96aWxsYS5n
ZWNrb3ZpZXcudGVzdF9ydW5uZXIiLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5v
bmUsIGV4dHJhX3ByZWZzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKICAgICAgICAgICAgICAgICAg
c3ltYm9sc19wYXRoPU5vbmUsIHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwgY2VydHV0aWxfYmluYXJ5
PU5vbmUsCiAgICAgICAgICAgICAgICAgIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgZTEwcz1G
YWxzZSwgZW5hYmxlX3dlYnJlbmRlcj1GYWxzZSwgc3RhY2tmaXhfZGlyPU5vbmUsCiAgICAgICAg
ICAgICAgICAgIGJpbmFyeV9hcmdzPU5vbmUsIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCBsZWFr
X2NoZWNrPUZhbHNlLCBhc2FuPUZhbHNlLApAQCAtMjE2LDE3ICsyMzEsNyBAQCBjbGFzcyBGaXJl
Zm94QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykK
IAotICAgICAgICBlbnYgPSB7fQotICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAi
MSIKLSAgICAgICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCi0gICAg
ICAgIGVudlsiTU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgotICAgICAg
ICBlbnZbIlNUWUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCi0gICAgICAg
IGlmIHNlbGYuY2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGVudlsi
TU9aX0NIQU9TTU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKLSAgICAgICAgaWYg
c2VsZi5lbmFibGVfd2VicmVuZGVyOgotICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0g
PSAiMSIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0g
IjAiCisgICAgICAgIGVudiA9IGdldF9lbnZpcm9uKHNlbGYuc3R5bG9fdGhyZWFkcywgc2VsZi5j
aGFvc19tb2RlX2ZsYWdzKQogCiAgICAgICAgIHNlbGYucnVubmVyID0gRmVubmVjRW11bGF0b3JS
dW5uZXIoYXBwPXNlbGYucGFja2FnZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb2ZpbGU9c2VsZi5wcm9maWxlLApAQCAtMjk5LDMgKzMwNCw1OCBA
QCBjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIGlmIG5vdCBv
cy5lbnZpcm9uLmdldCgiTUlOSURVTVBfU1RBQ0tXQUxLIiwgIiIpIGFuZCBzZWxmLnN0YWNrd2Fs
a19iaW5hcnk6CiAgICAgICAgICAgICBvcy5lbnZpcm9uWyJNSU5JRFVNUF9TVEFDS1dBTEsiXSA9
IHNlbGYuc3RhY2t3YWxrX2JpbmFyeQogICAgICAgICByZXR1cm4gYm9vbChzZWxmLnJ1bm5lci5j
aGVja19mb3JfY3Jhc2hlcyh0ZXN0X25hbWU9dGVzdCkpCisKKworY2xhc3MgRmlyZWZveEFuZHJv
aWRXZFNwZWNCcm93c2VyKEZpcmVmb3hXZFNwZWNCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJn
cywKKyAgICAgICAgICAgICAgICAgZXh0cmFfcHJlZnM9Tm9uZSwgZGVidWdfaW5mbz1Ob25lLCBz
eW1ib2xzX3BhdGg9Tm9uZSwgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLAorICAgICAgICAgICAgICAg
ICBjZXJ0dXRpbF9iaW5hcnk9Tm9uZSwgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZh
bHNlLAorICAgICAgICAgICAgICAgICBlbmFibGVfZmlzc2lvbj1GYWxzZSwgc3RhY2tmaXhfZGly
PU5vbmUsIGxlYWtfY2hlY2s9RmFsc2UsCisgICAgICAgICAgICAgICAgIGFzYW49RmFsc2UsIHN0
eWxvX3RocmVhZHM9MSwgY2hhb3NfbW9kZV9mbGFncz1Ob25lLCBjb25maWc9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPSJuaWdodGx5IiwgaGVhZGxlc3M9Tm9uZSwKKyAg
ICAgICAgICAgICAgICAgcGFja2FnZV9uYW1lPSJvcmcubW96aWxsYS5nZWNrb3ZpZXcudGVzdF9y
dW5uZXIiLCBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAgICAgICAgICAgICAgIGFkYl9iaW5hcnk9
Tm9uZSwgKiprd2FyZ3MpOgorCisgICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBOb25l
LCBwcmVmc19yb290LCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJncywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBleHRyYV9wcmVmcz1leHRyYV9wcmVmcywgZGVidWdfaW5mbz1kZWJ1
Z19pbmZvLCBzeW1ib2xzX3BhdGg9c3ltYm9sc19wYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrd2Fsa19iaW5hcnk9c3RhY2t3YWxrX2JpbmFyeSwgY2VydHV0aWxfYmluYXJ5PWNl
cnR1dGlsX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9w
YXRoPWNhX2NlcnRpZmljYXRlX3BhdGgsIGUxMHM9ZTEwcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmFibGVfZmlzc2lvbj1lbmFibGVfZmlzc2lvbiwgc3RhY2tmaXhfZGlyPXN0YWNrZml4
X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZWFrX2NoZWNrPWxlYWtfY2hlY2ssIGFz
YW49YXNhbiwgc3R5bG9fdGhyZWFkcz1zdHlsb190aHJlYWRzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGNoYW9zX21vZGVfZmxhZ3M9Y2hhb3NfbW9kZV9mbGFncywgY29uZmlnPWNvbmZpZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9YnJvd3Nlcl9jaGFubmVs
LCBoZWFkbGVzcz1oZWFkbGVzcywgKiprd2FyZ3MpCisKKyAgICAgICAgc2VsZi5jb25maWcgPSBj
b25maWcKKyAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNrYWdlX25hbWUKKyAgICAgICAg
c2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAorICAgICAgICAjIFRoaXMgaXMganVz
dCB0byBzdXBwb3J0IHRoZSBzYW1lIGFkYiBsb29rdXAgYXMgZm9yIG90aGVyIHRlc3QgdHlwZXMK
KyAgICAgICAgY29udGV4dCA9IGdldF9hcHBfY29udGV4dCgiZmVubmVjIikoYWRiX3BhdGg9YWRi
X2JpbmFyeSwgZGV2aWNlX3NlcmlhbD1kZXZpY2Vfc2VyaWFsKQorICAgICAgICBzZWxmLmRldmlj
ZSA9IGNvbnRleHQuZ2V0X2RldmljZShjb250ZXh0LmFkYiwgc2VsZi5kZXZpY2Vfc2VyaWFsKQor
CisgICAgZGVmIHN0YXJ0KHNlbGYsIGdyb3VwX21ldGFkYXRhLCAqKmt3YXJncyk6CisgICAgICAg
IGZvciBwb3J0cyBpbiBzZWxmLmNvbmZpZy5wb3J0cy52YWx1ZXMoKToKKyAgICAgICAgICAgIGZv
ciBwb3J0IGluIHBvcnRzOgorICAgICAgICAgICAgICAgIHNlbGYuZGV2aWNlLnJldmVyc2UoCisg
ICAgICAgICAgICAgICAgICAgIGxvY2FsPSJ0Y3A6e30iLmZvcm1hdChwb3J0KSwKKyAgICAgICAg
ICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6e30iLmZvcm1hdChwb3J0KSkKKyAgICAgICAgc3VwZXIo
KS5zdGFydChncm91cF9tZXRhZGF0YSwgKiprd2FyZ3MpCisKKyAgICBkZWYgc3RvcChzZWxmLCBm
b3JjZT1GYWxzZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZGV2aWNlLnJlbW92
ZV9yZXZlcnNlcygpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byByZW1vdmUgZm9yd2FyZGVkIG9yIHJldmVy
c2VkIHBvcnRzOiAlcyIgJSBlKQorICAgICAgICBzdXBlcigpLnN0b3AoZm9yY2U9Zm9yY2UpCisK
KyAgICBkZWYgZ2V0X2VudihzZWxmLCBiaW5hcnksIGRlYnVnX2luZm8sIHN0eWxvX3RocmVhZHMs
IGhlYWRsZXNzLCBjaGFvc19tb2RlX2ZsYWdzKToKKyAgICAgICAgZW52ID0gZ2V0X2Vudmlyb24o
c3R5bG9fdGhyZWFkcywgY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgZW52WyJSVVNUX0JBQ0tU
UkFDRSJdID0gIjEiCisgICAgICAgIGRlbCBlbnZbIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NPTk5F
Q1RJT05TIl0KKyAgICAgICAgcmV0dXJuIGVudgorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIo
c2VsZik6CisgICAgICAgIGNscywgYXJncyA9IHN1cGVyKCkuZXhlY3V0b3JfYnJvd3NlcigpCisg
ICAgICAgIGFyZ3NbImFuZHJvaWRQYWNrYWdlIl0gPSBzZWxmLnBhY2thZ2VfbmFtZQorICAgICAg
ICBhcmdzWyJhbmRyb2lkRGV2aWNlU2VyaWFsIl0gPSBzZWxmLmRldmljZV9zZXJpYWwKKyAgICAg
ICAgYXJnc1siZW52Il0gPSBzZWxmLmVudgorICAgICAgICByZXR1cm4gY2xzLCBhcmdzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvaWUucHkKaW5kZXggYzg1MWRhZjBiNjNjYmZkOTRiZGJiYmUzZTlhNjM3Y2U4ODRlMzBkNC4u
ZGU1NzdlMDZhMDFiNDk1YWYyZWQ0NGEwNmM5ODRlNWE4YWY3Y2QzOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5w
eQpAQCAtMSwxMiArMSwxMiBAQAotZnJvbSAuYmFzZSBpbXBvcnQgcmVxdWlyZV9hcmcKLWZyb20g
LmJhc2UgaW1wb3J0IE51bGxCcm93c2VyLCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAjIG5vcWE6
IEY0MDEKK2Zyb20gLmJhc2UgaW1wb3J0IHJlcXVpcmVfYXJnLCBXZWJEcml2ZXJCcm93c2VyCitm
cm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3
YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmludGVybmV0ZXhwbG9yZXIgaW1wb3J0IElu
dGVybmV0RXhwbG9yZXJEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCitmcm9tIC4u
ZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogX193
cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJpZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19h
cmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJOdWxsQnJv
d3NlciIsCi0gICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsid2RzcGVjIjogIkludGVybmV0
RXhwbG9yZXJEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6ICJXZWJEcml2ZXJCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ3
ZHNwZWMiOiAiV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dh
cmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJn
cyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJl
bnZfZXh0cmFzIiwKQEAgLTE3LDEwICsxNywxMiBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0
IjogImllIiwKIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2Fy
Z3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAorCiBkZWYgYnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLCB0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHJldHVybiB7
IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAg
ICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKKwog
ZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwg
cnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIG9wdGlv
bnMgPSB7fQpAQCAtMzIsOCArMzQsMTUgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRl
c3RfdHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCiAgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncwogCisKIGRlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKICAgICByZXR1cm4gW10KIAor
CiBkZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1Z2dlciI6IEZh
bHNlfQorCisKK2NsYXNzIEludGVybmV0RXhwbG9yZXJCcm93c2VyKFdlYkRyaXZlckJyb3dzZXIp
OgorICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5iaW5h
cnksIGYiLS1wb3J0PXtzZWxmLnBvcnR9Il0gKyBzZWxmLndlYmRyaXZlcl9hcmdzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvb3BlcmEucHkKaW5kZXggZjNhMjkyOWNlOGViYjY5YzUzNDg2MmUwMDAxMzRiNDZmYTIzNTZi
NC4uYjdmMmE0MDMzZjc4MjVhMzY0YTk2NDgwY2JiMmY4MmRmMjM0NmM5NSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9vcGVyYS5weQpAQCAtMSwyMCArMSwxOCBAQAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3Nlciwg
RXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dz
ZXIgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgcmVxdWlyZV9hcmcKIGZyb20gLmJh
c2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZyb20gLi53
ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBPcGVyYURyaXZlclNlcnZlcgorZnJvbSAuY2hyb21lIGlt
cG9ydCBDaHJvbWVCcm93c2VyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2Fy
Z3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQg
V2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNl
bGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRl
c3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcm9wZXJh
IGltcG9ydCBPcGVyYURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dw
dHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIm9wZXJhIiwKICAgICAgICAgICAgICAgICAgImNoZWNr
X2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAgICAgICAgICJicm93c2VyIjoge05vbmU6
ICJPcGVyYUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjog
Ik51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIk9wZXJhQnJvd3Nl
ciIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5p
dW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ3ZHNwZWMiOiAiT3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciJ9LAogICAg
ICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAg
ICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLApAQCAtNjYsMzggKzY0LDUgQEAg
ZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHt9CiAKIAotY2xhc3MgT3BlcmFCcm93c2Vy
KEJyb3dzZXIpOgotICAgICIiIk9wZXJhIGlzIGJhY2tlZCBieSBvcGVyYWRyaXZlciwgd2hpY2gg
aXMgc3VwcGxpZWQgdGhyb3VnaAotICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5PcGVyYURyaXZl
clNlcnZlcmBgLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmlu
YXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJvcGVyYWRyaXZlciIsCi0gICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9hcmdzPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBy
ZXByZXNlbnRhdGlvbiBvZiBPcGVyYS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcwotICAg
ICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgotICAgICAgICBC
cm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5h
cnkKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBPcGVyYURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVy
X2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdl
YmRyaXZlcl9hcmdzKQotCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAg
c2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3Jj
ZT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCi0KLSAgICBk
ZWYgcGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCi0KLSAgICBkZWYg
aXNfYWxpdmUoc2VsZik6Ci0gICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVz
IHRoZSBkcml2ZXIgaXMgYWxpdmUsCi0gICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5n
IGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KLSAgICAgICAgIyBpcyBhY3RpdmUuCi0g
ICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCi0KLSAgICBkZWYgY2xlYW51cChz
ZWxmKToKLSAgICAgICAgc2VsZi5zdG9wKCkKLQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNl
bGYpOgotICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBz
ZWxmLnNlcnZlci51cmx9CitjbGFzcyBPcGVyYUJyb3dzZXIoQ2hyb21lQnJvd3Nlcik6CisgICAg
cGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKaW5kZXggMjBhNTQ3NWFjZjBiNjFlNjNmY2ZmZmE1
MzNkMDAxNzY5M2YzY2ZkNC4uM2Y5MTBiNTFmOThmMGRkMmYzNTZlZmFjZTAzMTI1Zjg2MzllZDg3
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CkBAIC0xLDMyICsxLDMxIEBACiBpbXBvcnQgb3MK
IGltcG9ydCBwbGlzdGxpYgogZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0
YWJsZQorZnJvbSBkaXN0dXRpbHMudmVyc2lvbiBpbXBvcnQgTG9vc2VWZXJzaW9uCiAKIGltcG9y
dCBwc3V0aWwKIAotZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCBy
ZXF1aXJlX2FyZwotZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIgICMgbm9xYTogRjQwMQor
ZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJpdmVyQnJvd3NlciwgcmVxdWlyZV9hcmcKIGZyb20gLmJh
c2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKLWZyb20gLi53
ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTYWZhcmlEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRv
cnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAu
LmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5l
c3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckNyYXNodGVz
dEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2FmYXJp
IGltcG9ydCBTYWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIAogX193
cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJzYWZhcmkiLAogICAgICAgICAgICAgICAgICAiY2hl
Y2tfYXJncyI6ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9u
ZTogIlNhZmFyaUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVj
IjogIk51bGxCcm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJy
b3dzZXIiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldl
YkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiU2FmYXJpRHJpdmVyV2RzcGVjRXhlY3V0b3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3Jhc2h0ZXN0IjogIldlYkRyaXZlckNy
YXNodGVzdEV4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJi
cm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhl
Y3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJh
cyIsCiAgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAg
ICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9fZXh0cmFzIiwKICAgICAg
ICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVy
In0KIAogCkBAIC00OSw2ICs0OCwxNCBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKGxvZ2dlciwgdGVz
dF90eXBlLCB0ZXN0X2Vudmlyb25tZW50LCBydW5faW5mb19kYXRhLCAqKmt3YXJncwogICAgIGlm
IGt3YXJnc1siYmluYXJ5Il0gaXMgbm90IE5vbmU6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IlNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBleGVjdXRhYmxlIGxvY2F0aW9uIikKIAor
ICAgIFYgPSBMb29zZVZlcnNpb24KKyAgICBicm93c2VyX2J1bmRsZV92ZXJzaW9uID0gcnVuX2lu
Zm9fZGF0YVsiYnJvd3Nlcl9idW5kbGVfdmVyc2lvbiJdCisgICAgaWYgYnJvd3Nlcl9idW5kbGVf
dmVyc2lvbiBpcyBub3QgTm9uZSBhbmQgVihicm93c2VyX2J1bmRsZV92ZXJzaW9uWzI6XSkgPj0g
VigiNjEzLjEuNy4xIik6CisgICAgICAgIGxvZ2dlci5kZWJ1ZygidXNpbmcgYWNjZXB0SW5zZWN1
cmVDZXJ0cz1UcnVlIikKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsi
YWNjZXB0SW5zZWN1cmVDZXJ0cyJdID0gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIGxvZ2dlci53
YXJuaW5nKCJub3QgdXNpbmcgYWNjZXB0SW5zZWN1cmVDZXJ0cywgU2FmYXJpIHdpbGwgcmVxdWly
ZSBjZXJ0aWZpY2F0ZXMgdG8gYmUgdHJ1c3RlZCIpCisKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dh
cmdzCiAKIApAQCAtNjAsNzYgKzY3LDEzMSBAQCBkZWYgZW52X29wdGlvbnMoKToKICAgICByZXR1
cm4ge30KIAogCi1jbGFzcyBTYWZhcmlCcm93c2VyKEJyb3dzZXIpOgorZGVmIHJ1bl9pbmZvX2V4
dHJhcygqKmt3YXJncyk6CisgICAgd2ViZHJpdmVyX2JpbmFyeSA9IGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdCisgICAgcnYgPSB7fQorCisgICAgc2FmYXJpX2J1bmRsZSwgc2FmYXJpX2luZm8g
PSBnZXRfc2FmYXJpX2luZm8od2ViZHJpdmVyX2JpbmFyeSkKKworICAgIGlmIHNhZmFyaV9pbmZv
IGlzIG5vdCBOb25lOgorICAgICAgICBhc3NlcnQgc2FmYXJpX2J1bmRsZSBpcyBub3QgTm9uZSAg
IyBpZiBzYWZhcmlfaW5mbyBpcyBub3QgTm9uZSwgdGhpcyBjYW4ndCBiZQorICAgICAgICBfLCB3
ZWJraXRfaW5mbyA9IGdldF93ZWJraXRfaW5mbyhzYWZhcmlfYnVuZGxlKQorICAgICAgICBpZiB3
ZWJraXRfaW5mbyBpcyBOb25lOgorICAgICAgICAgICAgd2Via2l0X2luZm8gPSB7fQorICAgIGVs
c2U6CisgICAgICAgIHNhZmFyaV9pbmZvID0ge30KKyAgICAgICAgd2Via2l0X2luZm8gPSB7fQor
CisgICAgcnZbImJyb3dzZXJfbWFya2V0aW5nX3ZlcnNpb24iXSA9IHNhZmFyaV9pbmZvLmdldCgi
Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmciKQorICAgIHJ2WyJicm93c2VyX2J1bmRsZV92ZXJz
aW9uIl0gPSBzYWZhcmlfaW5mby5nZXQoIkNGQnVuZGxlVmVyc2lvbiIpCisgICAgcnZbImJyb3dz
ZXJfd2Via2l0X2J1bmRsZV92ZXJzaW9uIl0gPSB3ZWJraXRfaW5mby5nZXQoIkNGQnVuZGxlVmVy
c2lvbiIpCisKKyAgICB3aXRoIG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9Db3JlU2VydmljZXMvU3lz
dGVtVmVyc2lvbi5wbGlzdCIsICJyYiIpIGFzIGZwOgorICAgICAgICBzeXN0ZW1fdmVyc2lvbiA9
IHBsaXN0bGliLmxvYWQoZnApCisKKyAgICBydlsib3NfYnVpbGQiXSA9IHN5c3RlbV92ZXJzaW9u
WyJQcm9kdWN0QnVpbGRWZXJzaW9uIl0KKworICAgIHJldHVybiBydgorCisKK2RlZiBnZXRfc2Fm
YXJpX2luZm8od2RfcGF0aCk6CisgICAgYnVuZGxlX3BhdGhzID0gWworICAgICAgICBvcy5wYXRo
LmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiLi4iLCAiLi4iKSwgICMgYnVuZGxlZCBT
YWZhcmkgKGUuZy4gU1RQKQorICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHdk
X3BhdGgpLCAiU2FmYXJpLmFwcCIpLCAgIyBsb2NhbCBTYWZhcmkgYnVpbGQKKyAgICAgICAgIi9B
cHBsaWNhdGlvbnMvU2FmYXJpLmFwcCIsICAjIHN5c3RlbSBTYWZhcmkKKyAgICBdCisKKyAgICBm
b3IgYnVuZGxlX3BhdGggaW4gYnVuZGxlX3BhdGhzOgorICAgICAgICBpbmZvX3BhdGggPSBvcy5w
YXRoLmpvaW4oYnVuZGxlX3BhdGgsICJDb250ZW50cyIsICJJbmZvLnBsaXN0IikKKyAgICAgICAg
aWYgbm90IG9zLnBhdGguaXNmaWxlKGluZm9fcGF0aCk6CisgICAgICAgICAgICBjb250aW51ZQor
CisgICAgICAgIHdpdGggb3BlbihpbmZvX3BhdGgsICJyYiIpIGFzIGZwOgorICAgICAgICAgICAg
aW5mbyA9IHBsaXN0bGliLmxvYWQoZnApCisKKyAgICAgICAgIyBjaGVjayB3ZSBoYXZlIGEgU2Fm
YXJpIGZhbWlseSBidW5kbGUKKyAgICAgICAgaWRlbnQgPSBpbmZvLmdldCgiQ0ZCdW5kbGVJZGVu
dGlmaWVyIikKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaWRlbnQsIHN0cikgb3Igbm90IGlk
ZW50LnN0YXJ0c3dpdGgoImNvbS5hcHBsZS5TYWZhcmkiKToKKyAgICAgICAgICAgIGNvbnRpbnVl
CisKKyAgICAgICAgcmV0dXJuIChidW5kbGVfcGF0aCwgaW5mbykKKworICAgIHJldHVybiAoTm9u
ZSwgTm9uZSkKKworCitkZWYgZ2V0X3dlYmtpdF9pbmZvKHNhZmFyaV9idW5kbGVfcGF0aCk6Cisg
ICAgZnJhbWV3b3JrX3BhdGhzID0gWworICAgICAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu
YW1lKHNhZmFyaV9idW5kbGVfcGF0aCksICJDb250ZW50cyIsICJGcmFtZXdvcmtzIiksICAjIGJ1
bmRsZWQgU2FmYXJpIChlLmcuIFNUUCkKKyAgICAgICAgb3MucGF0aC5qb2luKG9zLnBhdGguZGly
bmFtZShzYWZhcmlfYnVuZGxlX3BhdGgpLCAiLi4iKSwgICMgbG9jYWwgU2FmYXJpIGJ1aWxkCisg
ICAgICAgICIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MiLAorICAgICAgICAiL0xp
YnJhcnkvRnJhbWV3b3JrcyIsCisgICAgICAgICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIs
CisgICAgXQorCisgICAgZm9yIGZyYW1ld29ya19wYXRoIGluIGZyYW1ld29ya19wYXRoczoKKyAg
ICAgICAgaW5mb19wYXRoID0gb3MucGF0aC5qb2luKGZyYW1ld29ya19wYXRoLCAiV2ViS2l0LmZy
YW1ld29yayIsICJWZXJzaW9ucyIsICJDdXJyZW50IiwgIlJlc291cmNlcyIsICJJbmZvLnBsaXN0
IikKKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGluZm9fcGF0aCk6CisgICAgICAgICAg
ICBjb250aW51ZQorCisgICAgICAgIHdpdGggb3BlbihpbmZvX3BhdGgsICJyYiIpIGFzIGZwOgor
ICAgICAgICAgICAgaW5mbyA9IHBsaXN0bGliLmxvYWQoZnApCisgICAgICAgICAgICByZXR1cm4g
KGZyYW1ld29ya19wYXRoLCBpbmZvKQorCisgICAgcmV0dXJuIChOb25lLCBOb25lKQorCisKK2Ns
YXNzIFNhZmFyaUJyb3dzZXIoV2ViRHJpdmVyQnJvd3Nlcik6CiAgICAgIiIiU2FmYXJpIGlzIGJh
Y2tlZCBieSBzYWZhcmlkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKICAgICBgYHdw
dHJ1bm5lci53ZWJkcml2ZXIuU2FmYXJpRHJpdmVyU2VydmVyYGAuCiAgICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2ZXJfYmluYXJ5LCB3ZWJkcml2ZXJfYXJn
cz1Ob25lLCBraWxsX3NhZmFyaT1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsIHdlYmRyaXZl
cl9hcmdzPU5vbmUsCisgICAgICAgICAgICAgICAgIHBvcnQ9Tm9uZSwgZW52PU5vbmUsIGtpbGxf
c2FmYXJpPUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVz
ZW50YXRpb24gb2YgU2FmYXJpLiAgVGhlIGB3ZWJkcml2ZXJfYmluYXJ5YAogICAgICAgICBhcmd1
bWVudCBnaXZlcyB0aGUgV2ViRHJpdmVyIGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIChUaGUg
YnJvd3NlcgogICAgICAgICBiaW5hcnkgbG9jYXRpb24gY2Fubm90IGJlIHNwZWNpZmllZCwgYXMg
U2FmYXJpIGFuZCBTYWZhcmlEcml2ZXIgYXJlCiAgICAgICAgIGNvdXBsZWQuKSBJZiBga2lsbF9z
YWZhcmlgIGlzIFRydWUsIHRoZW4gYEJyb3dzZXIuc3RvcGAgd2lsbCBzdG9wIFNhZmFyaS4iIiIK
LSAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCi0gICAgICAgIHNlbGYuc2Vy
dmVyID0gU2FmYXJpRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAg
ICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
YmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9d2ViZHJpdmVyX2FyZ3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9ydD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGVudj1lbnYpCisKICAgICAgICAgaWYgIi8iIG5vdCBpbiB3ZWJkcml2ZXJfYmluYXJ5OgogICAg
ICAgICAgICAgd2RfcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSh3ZWJkcml2ZXJfYmluYXJ5KQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgd2RfcGF0aCA9IHdlYmRyaXZlcl9iaW5hcnkKLSAgICAg
ICAgc2VsZi5zYWZhcmlfcGF0aCA9IHNlbGYuX2ZpbmRBc3NvY2lhdGVkU2FmYXJpRXhlY3V0YWJs
ZSh3ZF9wYXRoKQorICAgICAgICBzZWxmLnNhZmFyaV9wYXRoID0gc2VsZi5fZmluZF9zYWZhcmlf
ZXhlY3V0YWJsZSh3ZF9wYXRoKQogCiAgICAgICAgIGxvZ2dlci5kZWJ1ZygiV2ViRHJpdmVyIGV4
ZWN1dGFibGUgcGF0aDogJXMiICUgd2RfcGF0aCkKICAgICAgICAgbG9nZ2VyLmRlYnVnKCJTYWZh
cmkgZXhlY3V0YWJsZSBwYXRoOiAlcyIgJSBzZWxmLnNhZmFyaV9wYXRoKQogCiAgICAgICAgIHNl
bGYua2lsbF9zYWZhcmkgPSBraWxsX3NhZmFyaQogCi0gICAgZGVmIF9maW5kQXNzb2NpYXRlZFNh
ZmFyaUV4ZWN1dGFibGUoc2VsZiwgd2RfcGF0aCk6Ci0gICAgICAgIGJ1bmRsZV9wYXRocyA9IFsK
LSAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUod2RfcGF0aCksICIuLiIs
ICIuLiIpLCAgIyBidW5kbGVkIFNhZmFyaSAoZS5nLiBTVFApCi0gICAgICAgICAgICBvcy5wYXRo
LmpvaW4ob3MucGF0aC5kaXJuYW1lKHdkX3BhdGgpLCAiU2FmYXJpLmFwcCIpLCAgIyBsb2NhbCBT
YWZhcmkgYnVpbGQKLSAgICAgICAgICAgICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAiLCAgIyBz
eXN0ZW0gU2FmYXJpCi0gICAgICAgIF0KKyAgICBkZWYgX2ZpbmRfc2FmYXJpX2V4ZWN1dGFibGUo
c2VsZiwgd2RfcGF0aCk6CisgICAgICAgIGJ1bmRsZV9wYXRoLCBpbmZvID0gZ2V0X3NhZmFyaV9p
bmZvKHdkX3BhdGgpCiAKLSAgICAgICAgZm9yIGJ1bmRsZV9wYXRoIGluIGJ1bmRsZV9wYXRoczoK
LSAgICAgICAgICAgIGluZm9fcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVfcGF0aCwgIkNvbnRl
bnRzIiwgIkluZm8ucGxpc3QiKQotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGlu
Zm9fcGF0aCk6Ci0gICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgZXhlID0gaW5mby5n
ZXQoIkNGQnVuZGxlRXhlY3V0YWJsZSIpCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4ZSwg
c3RyKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgICAgIHdpdGggb3Blbihp
bmZvX3BhdGgsICJyYiIpIGFzIGZwOgotICAgICAgICAgICAgICAgIGluZm8gPSBwbGlzdGxpYi5s
b2FkKGZwKQorICAgICAgICBleGVfcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVfcGF0aCwgIkNv
bnRlbnRzIiwgIk1hY09TIiwgZXhlKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoZXhl
X3BhdGgpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICAgICAgIyBjaGVjayB3
ZSBoYXZlIGEgU2FmYXJpIGZhbWlseSBidW5kbGUKLSAgICAgICAgICAgIGlmICJDRkJ1bmRsZUlk
ZW50aWZpZXIiIG5vdCBpbiBpbmZvOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICBpZGVudCA9IGluZm9bIkNGQnVuZGxlSWRlbnRpZmllciJdCi0gICAgICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShpZGVudCwgc3RyKSBvciBub3QgaWRlbnQuc3RhcnRzd2l0aCgiY29tLmFw
cGxlLlNhZmFyaSIpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJldHVybiBl
eGVfcGF0aAogCi0gICAgICAgICAgICAjIGdldCB0aGUgZXhlY3V0YWJsZSBuYW1lCi0gICAgICAg
ICAgICBpZiAiQ0ZCdW5kbGVFeGVjdXRhYmxlIiBub3QgaW4gaW5mbzoKLSAgICAgICAgICAgICAg
ICBjb250aW51ZQotICAgICAgICAgICAgZXhlID0gaW5mb1siQ0ZCdW5kbGVFeGVjdXRhYmxlIl0K
LSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4ZSwgc3RyKToKLSAgICAgICAgICAgICAg
ICBjb250aW51ZQotCi0gICAgICAgICAgICBleGVfcGF0aCA9IG9zLnBhdGguam9pbihidW5kbGVf
cGF0aCwgIkNvbnRlbnRzIiwgIk1hY09TIiwgZXhlKQotICAgICAgICAgICAgaWYgbm90IG9zLnBh
dGguaXNmaWxlKGV4ZV9wYXRoKToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAg
ICAgICByZXR1cm4gZXhlX3BhdGgKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Ci0g
ICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorICAgIGRlZiBtYWtlX2NvbW1h
bmQoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi53ZWJkcml2ZXJfYmluYXJ5LCBmIi0tcG9y
dD17c2VsZi5wb3J0fSJdICsgc2VsZi53ZWJkcml2ZXJfYXJncwogCiAgICAgZGVmIHN0b3Aoc2Vs
ZiwgZm9yY2U9RmFsc2UpOgotICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQor
ICAgICAgICBzdXBlcigpLnN0b3AoZm9yY2UpCiAKICAgICAgICAgaWYgc2VsZi5raWxsX3NhZmFy
aToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb2luZyB0byBzdG9wIFNhZmFyaSIp
CiAgICAgICAgICAgICBmb3IgcHJvYyBpbiBwc3V0aWwucHJvY2Vzc19pdGVyKGF0dHJzPVsiZXhl
Il0pOgotICAgICAgICAgICAgICAgIGlmIHByb2MuaW5mb1siZXhlIl0gaXMgbm90IE5vbmUgYW5k
IG9zLnBhdGguc2FtZWZpbGUocHJvYy5pbmZvWyJleGUiXSwgc2VsZi5zYWZhcmlfcGF0aCk6Cisg
ICAgICAgICAgICAgICAgaWYgKHByb2MuaW5mb1siZXhlIl0gaXMgbm90IE5vbmUgYW5kCisgICAg
ICAgICAgICAgICAgICAgIG9zLnBhdGguc2FtZWZpbGUocHJvYy5pbmZvWyJleGUiXSwgc2VsZi5z
YWZhcmlfcGF0aCkpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3Rv
cHBpbmcgU2FmYXJpICVzIiAlIHByb2MucGlkKQogICAgICAgICAgICAgICAgICAgICB0cnk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9jLnRlcm1pbmF0ZSgpCkBAIC0xMzksMTggKzIwMSwz
IEBAIGNsYXNzIFNhZmFyaUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvYy5raWxsKCkKICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHBzdXRpbC5Ob1N1
Y2hQcm9jZXNzOgogICAgICAgICAgICAgICAgICAgICAgICAgcGFzcwotCi0gICAgZGVmIHBpZChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAotCi0gICAgZGVmIGlzX2FsaXZl
KHNlbGYpOgotICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJp
dmVyIGlzIGFsaXZlLAotICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3
aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCi0gICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICBy
ZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQotCi0gICAgZGVmIGNsZWFudXAoc2VsZik6Ci0g
ICAgICAgIHNlbGYuc3RvcCgpCi0KLSAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKLSAg
ICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2
ZXIudXJsfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL2Vk
Z2UtcHJlcnVuLmJhdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9lZGdlLXBy
ZXJ1bi5iYXQKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3NhZmFyaS1wcmVydW4uc2ggYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2FmYXJpLXByZXJ1bi5zaApvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1
Y2Vfc2V0dXAvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0
dXAvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxNTJlMTI2
YjRlMjE0ZmQwZWViMjY2YmJlZGM3Mzc3MGIzZWVmZWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVw
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL2VkZ2UtcHJlcnVuLmJhdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9zYWZhcmktcHJlcnVuLnNoCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2Vydm8ucHkKaW5kZXggMTc5MWMxZGEyNzA2OTEzNzQ4ZGU3ZjMxMWQ5ZDk2ODNmMjZkNmIzOC4u
MWUzMmM3YzBlZDU4MDVhMjBhNDM5NjFkYTczYTFjMjQ0YmFjOGI1MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9z
ZXJ2by5weQpAQCAtMSwyNCArMSwyNiBAQAogaW1wb3J0IG9zCiAKLWZyb20gLmJhc2UgaW1wb3J0
IE51bGxCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGlt
cG9ydCBFeGVjdXRvckJyb3dzZXIsIE51bGxCcm93c2VyLCBXZWJEcml2ZXJCcm93c2VyLCByZXF1
aXJlX2FyZwogZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9x
YTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2Vf
ZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZXJ2byBpbXBvcnQg
KFNlcnZvQ3Jhc2h0ZXN0RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTog
RjQwMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2Vydm9SZWZUZXN0
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNlcnZvV2RzcGVjRXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBG
NDAxCisKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIAogX193cHRydW5uZXJf
XyA9IHsKICAgICAicHJvZHVjdCI6ICJzZXJ2byIsCiAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tf
YXJncyIsCi0gICAgImJyb3dzZXIiOiAiU2Vydm9Ccm93c2VyIiwKKyAgICAiYnJvd3NlciI6IHtO
b25lOiAiU2Vydm9Ccm93c2VyIiwKKyAgICAgICAgICAgICAgICAid2RzcGVjIjogIlNlcnZvV2Rz
cGVjQnJvd3NlciJ9LAogICAgICJleGVjdXRvciI6IHsKICAgICAgICAgImNyYXNodGVzdCI6ICJT
ZXJ2b0NyYXNodGVzdEV4ZWN1dG9yIiwKICAgICAgICAgInRlc3RoYXJuZXNzIjogIlNlcnZvVGVz
dGhhcm5lc3NFeGVjdXRvciIsCiAgICAgICAgICJyZWZ0ZXN0IjogIlNlcnZvUmVmVGVzdEV4ZWN1
dG9yIiwKLSAgICAgICAgIndkc3BlYyI6ICJTZXJ2b1dkc3BlY0V4ZWN1dG9yIiwKKyAgICAgICAg
Indkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciIsCiAgICAgfSwKICAgICAiYnJvd3Nlcl9rd2FyZ3Mi
OiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dh
cmdzIiwKQEAgLTQ5LDcgKzUxLDYgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyhsb2dnZXIsIHRlc3Rf
dHlwZSwgdGVzdF9lbnZpcm9ubWVudCwgcnVuX2luZm9fZGF0YSwKICAgICBydlsicGF1c2VfYWZ0
ZXJfdGVzdCJdID0ga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0KICAgICBpZiB0ZXN0X3R5cGUg
PT0gIndkc3BlYyI6CiAgICAgICAgIHJ2WyJjYXBhYmlsaXRpZXMiXSA9IHt9Ci0gICAgICAgIHJ2
WyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCiAgICAgcmV0dXJuIHJ2CiAK
IApAQCAtODYsMyArODcsMzAgQEAgY2xhc3MgU2Vydm9Ccm93c2VyKE51bGxCcm93c2VyKToKICAg
ICAgICAgICAgICJ1c2VyX3N0eWxlc2hlZXRzIjogc2VsZi51c2VyX3N0eWxlc2hlZXRzLAogICAg
ICAgICAgICAgImNhX2NlcnRpZmljYXRlX3BhdGgiOiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGgs
CiAgICAgICAgIH0KKworCitjbGFzcyBTZXJ2b1dkc3BlY0Jyb3dzZXIoV2ViRHJpdmVyQnJvd3Nl
cik6CisgICAgIyBUT0RPOiBjb3VsZCBzaGFyZSBhbiBpbXBsZW1lbmF0aW9uIHdpdGggc2Vydm9k
cml2ZXIucHksIHBlcmhhcHMKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9
InNlcnZvIiwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYmluYXJ5X2Fy
Z3M9Tm9uZSwgaG9zdD0iMTI3LjAuMC4xIiwgZW52PU5vbmUsIHBvcnQ9Tm9uZSk6CisKKyAgICAg
ICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkgaWYgZW52IGlzIE5vbmUgZWxzZSBlbnYKKyAgICAg
ICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCisKKyAgICAgICAgc3VwZXIoKS5fX2luaXRf
Xyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5LAorICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Fy
Z3M9d2ViZHJpdmVyX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdD1ob3N0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9cG9ydCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnY9ZW52KQorICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKKwor
ICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIGNvbW1hbmQgPSBbc2VsZi5iaW5h
cnksCisgICAgICAgICAgICAgICAgICAgZiItLXdlYmRyaXZlcj17c2VsZi5wb3J0fSIsCisgICAg
ICAgICAgICAgICAgICAgIi0taGFyZC1mYWlsIiwKKyAgICAgICAgICAgICAgICAgICAiLS1oZWFk
bGVzcyJdICsgc2VsZi53ZWJkcml2ZXJfYXJncworICAgICAgICBpZiBzZWxmLmJpbmFyeV9hcmdz
OgorICAgICAgICAgICAgY29tbWFuZCArPSBzZWxmLmJpbmFyeV9hcmdzCisgICAgICAgIHJldHVy
biBjb21tYW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKaW5kZXggOWE2YTFhNDAy
YjM2OTIzYmJiMmIyZTE5OWEzNGRhODRiNTg3M2E0ZS4uMzJkNzU0M2JkYzRiZmE5NmFiZjM5OWRi
ZTJiNDI0OTNiMzgxOTQ0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
ZHJpdmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQpAQCAt
NzYsNiArNzYsNyBAQCBkZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgogICAgICAgICBmLndy
aXRlKG1ha2VfaG9zdHNfZmlsZShjb25maWcsICIxMjcuMC4wLjEiKSkKICAgICByZXR1cm4gaG9z
dHNfcGF0aAogCisKIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKICAgICBp
bml0X3RpbWVvdXQgPSAzMDAgICMgTGFyZ2UgdGltZW91dCBmb3IgY2FzZXMgd2hlcmUgd2UncmUg
Ym9vdGluZyBhbiBBbmRyb2lkIGVtdWxhdG9yCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY4M2RiZjMxZjFjZDk5MWI1ODI0
OTUyN2M3NGVkZDdiM2E4NjczMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwzOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJsYXllci5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
Y2hyb21lX2lvcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfc3BraV9jZXJ0cy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2VkZ2Vfd2ViZHJpdmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9maXJlZm94LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9v
cGVyYS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvc2F1Y2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
d2Via2l0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy93ZWJraXQucHkKaW5kZXggYWQyNDc3MWFjOWNlZDY1ZTExN2Q4OTRiNDQ5
MjBlNzFiODNiNmVlOC4uYWE2OTFmMGM4NWNkNzIyZTY4N2I2Yzc3ZmY0NTkyMTk2OGM2YzRkNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0xLDIxICsxLDE5IEBACi1mcm9tIC5iYXNlIGlt
cG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCi1mcm9tIC5iYXNlIGlt
cG9ydCBOdWxsQnJvd3NlciwgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9t
YWluX2xpc3QgICMgbm9xYTogRjQwMQorZnJvbSAuYmFzZSBpbXBvcnQgV2ViRHJpdmVyQnJvd3Nl
ciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIs
IGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMg
aW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4
ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiBmcm9tIC4u
ZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NF
eGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckNyYXNodGVzdEV4
ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Via2l0IGlt
cG9ydCBXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCi1mcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViS2l0RHJpdmVyU2VydmVyCiAKIAogX193cHRydW5uZXJf
XyA9IHsicHJvZHVjdCI6ICJ3ZWJraXQiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6
ICJjaGVja19hcmdzIiwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiB7Tm9uZTogIldlYktp
dEJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIk51bGxC
cm93c2VyIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIldlYktpdEJyb3dzZXIiLAog
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3Ro
YXJuZXNzRXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3Qi
OiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY3Jhc2h0ZXN0IjogIldlYkRyaXZlckNyYXNodGVzdEV4ZWN1
dG9yIn0sCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dh
cmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC03
NiwzNSArNzQsOCBAQCBkZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKICAgICByZXR1cm4g
eyJ3ZWJraXRfcG9ydCI6IGt3YXJnc1sid2Via2l0X3BvcnQiXX0KIAogCi1jbGFzcyBXZWJLaXRC
cm93c2VyKEJyb3dzZXIpOgotICAgICIiIkdlbmVyaWMgV2ViS2l0IGJyb3dzZXIgaXMgYmFja2Vk
IGJ5IFdlYktpdCdzIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbiwKLSAgICB3aGljaCBpcyBzdXBw
bGllZCB0aHJvdWdoIGBgd3B0cnVubmVyLndlYmRyaXZlci5XZWJLaXREcml2ZXJTZXJ2ZXJgYC4K
LSAgICAiIiIKK2NsYXNzIFdlYktpdEJyb3dzZXIoV2ViRHJpdmVyQnJvd3Nlcik6CisgICAgIiIi
R2VuZXJpYyBXZWJLaXQgYnJvd3NlciBpcyBiYWNrZWQgYnkgV2ViS2l0J3MgV2ViRHJpdmVyIGlt
cGxlbWVudGF0aW9uIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnks
IHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSwgKiprd2FyZ3MpOgotICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikK
LSAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKLSAgICAgICAgc2VsZi5zZXJ2ZXIgPSBXZWJL
aXREcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdz
KQotCi0gICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5zZXJ2ZXIu
c3RhcnQoYmxvY2s9RmFsc2UpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6Ci0g
ICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCi0KLSAgICBkZWYgcGlkKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCi0KLSAgICBkZWYgaXNfYWxpdmUoc2Vs
Zik6Ci0gICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIg
aXMgYWxpdmUsCi0gICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRo
ZXIgYSBicm93c2VyIHNlc3Npb24KLSAgICAgICAgIyBpcyBhY3RpdmUuCi0gICAgICAgIHJldHVy
biBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCi0KLSAgICBkZWYgY2xlYW51cChzZWxmKToKLSAgICAg
ICAgc2VsZi5zdG9wKCkKLQotICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgotICAgICAg
ICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51
cmx9CisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLndl
YmRyaXZlcl9iaW5hcnksIGYiLS1wb3J0PXtzZWxmLnBvcnR9Il0gKyBzZWxmLndlYmRyaXZlcl9h
cmdzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93
c2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weQpp
bmRleCA3YTAyYWQxNDkwMmI4MDk0MGYwYTM0YTNhYjk4YjhhNWY0NjEwOTBmLi4yYzY5OTk3YWYw
MDdjMmU3ZTYzZDYxNWVmOGUxZGNlYmNjMDc4OGViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkKQEAgLTQsMTkgKzQsMTggQEAgZnJvbSAuYmFz
ZSBpbXBvcnQgKE51bGxCcm93c2VyLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAg
bWF5YmVfYWRkX2FyZ3MpCiBmcm9tIC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKIGZyb20g
Li5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJn
cworZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBG
NDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwgICMgbm9xYTog
RjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZl
ckNyYXNodGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAx
CiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Via2l0Z3RrX21pbmlicm93c2VyIiwK
ICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCi0gICAgICAgICAg
ICAgICAgICJicm93c2VyIjoge05vbmU6ICJXZWJLaXRHVEtNaW5pQnJvd3NlciIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiTnVsbEJyb3dzZXIifSwKKyAgICAgICAg
ICAgICAgICAgImJyb3dzZXIiOiAiV2ViS2l0R1RLTWluaUJyb3dzZXIiLAogICAgICAgICAgICAg
ICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAg
ICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0
b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVy
UmVmVGVzdEV4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJXZHNwZWNFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY3Jhc2h0ZXN0IjogIldlYkRyaXZlckNyYXNodGVzdEV4ZWN1dG9yIn0sCiAgICAg
ICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAg
ICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCkBAIC00MCwxMyArMzksMTMg
QEAgZGVmIGJyb3dzZXJfa3dhcmdzKGxvZ2dlciwgdGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKIAogZGVmIGNhcGFiaWxpdGllcyhzZXJ2ZXJfY29uZmlnLCAqKmt3
YXJncyk6CiAgICAgYnJvd3Nlcl9yZXF1aXJlZF9hcmdzID0gWyItLWF1dG9tYXRpb24iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93cy1h
dXRvbWF0aWNhbGx5PXRydWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJs
ZS14c3MtYXVkaXRvcj1mYWxzZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5h
YmxlLW1lZGlhLWNhcGFiaWxpdGllcz10cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLS1lbmFibGUtZW5jcnlwdGVkLW1lZGlhPXRydWUiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItLWVuYWJsZS1tZWRpYS1zdHJlYW09dHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi0tZW5hYmxlLW1vY2stY2FwdHVyZS1kZXZpY2VzPXRydWUiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS13ZWJhdWRpbz10cnVlIl0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRp
Y2FsbHk9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS14c3Mt
YXVkaXRvcj1mYWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1t
ZWRpYS1jYXBhYmlsaXRpZXM9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
LWVuYWJsZS1lbmNyeXB0ZWQtbWVkaWE9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItLWVuYWJsZS1tZWRpYS1zdHJlYW09dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItLWVuYWJsZS1tb2NrLWNhcHR1cmUtZGV2aWNlcz10cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLXdlYmF1ZGlvPXRydWUiXQogICAgIGFyZ3MgPSBr
d2FyZ3MuZ2V0KCJiaW5hcnlfYXJncyIsIFtdKQogICAgIGFyZ3MgPSBtYXliZV9hZGRfYXJncyhi
cm93c2VyX3JlcXVpcmVkX2FyZ3MsIGFyZ3MpCiAgICAgcmV0dXJuIHsKQEAgLTc4LDcgKzc3LDQg
QEAgZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CiAKIAogY2xhc3MgV2ViS2l0R1RLTWlu
aUJyb3dzZXIoV2ViS2l0QnJvd3Nlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKLSAgICAgICAgICAgICAgICAgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSwgKiprd2FyZ3MpOgotICAgICAgICBXZWJLaXRCcm93c2VyLl9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQorICAgIHBhc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5w
eQppbmRleCA5NzhlZDlmNjkyNmMzYWZmZTgxMDM4OWVjNDkxZGJmN2IwNDk1NjUyLi41M2RmZjE0
OTNhNGE1YjIyNmE5NWI4NTgwMGQ2ZWM2ZTkxY2UwYTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZW52aXJvbm1lbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CkBAIC0x
LDMgKzEsNCBAQAoraW1wb3J0IGVycm5vCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQg
c2lnbmFsCkBAIC0yOTQsMyArMjk1LDI4IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3Qp
OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCiAKICAgICAgICAgcmV0dXJuIGZh
aWxlZCwgcGVuZGluZworCisKK2RlZiB3YWl0X2Zvcl9zZXJ2aWNlKGxvZ2dlciwgaG9zdCwgcG9y
dCwgdGltZW91dD02MCk6CisgICAgIiIiV2FpdHMgdW50aWwgbmV0d29yayBzZXJ2aWNlIGdpdmVu
IGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKKyAgICBhdmFpbGFibGUgb3IgdGhl
IGB0aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBwb2ludAorICAgIGBgc29j
a2V0LmVycm9yYGAgaXMgcmFpc2VkLiIiIgorICAgIGFkZHIgPSAoaG9zdCwgcG9ydCkKKyAgICBs
b2dnZXIuZGVidWcoZiJUcnlpbmcgdG8gY29ubmVjdCB0byB7aG9zdH06e3BvcnR9IikKKyAgICBl
bmQgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKKyAgICB3aGlsZSBlbmQgPiB0aW1lLnRpbWUoKToK
KyAgICAgICAgc28gPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
c28uY29ubmVjdChhZGRyKQorICAgICAgICBleGNlcHQgc29ja2V0LnRpbWVvdXQ6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgICAg
IGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgorICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2dnZXIuZGVidWcoZiJDb25uZWN0ZWQgdG8g
e2hvc3R9Ontwb3J0fSIpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgc28uY2xvc2UoKQorICAgICAgICB0aW1lLnNsZWVwKDAuNSkKKyAgICBy
YWlzZSBzb2NrZXQuZXJyb3IoIlNlcnZpY2UgaXMgdW5hdmFpbGFibGU6ICVzOiVpIiAlIGFkZHIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2FjdGlvbnMucHkKaW5kZXggOTYzZWQzMzdmZGU0NGVjZGQ0N2I5NGI3
YWE0MTc5MDNlMzM4NDllYS4uZDRiYTg5Yjg1MDM0YjdhYTEzZTJjYjMxYzAwNmQxZTAxNWIxNDVk
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9hY3Rpb25zLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvYWN0aW9ucy5weQpAQCAtNDAsNiArNDAsMjkgQEAgY2xhc3Mg
U2VuZEtleXNBY3Rpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5wcm90b2NvbC5zZW5kX2tleXMu
c2VuZF9rZXlzKGVsZW1lbnQsIGtleXMpCiAKIAorY2xhc3MgTWluaW1pemVXaW5kb3dBY3Rpb24o
b2JqZWN0KToKKyAgICBuYW1lID0gIm1pbmltaXplX3dpbmRvdyIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIK
KyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgcGF5bG9hZCk6CisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLndpbmRvdy5taW5pbWl6
ZSgpCisKKworY2xhc3MgU2V0V2luZG93UmVjdEFjdGlvbihvYmplY3QpOgorICAgIG5hbWUgPSAi
c2V0X3dpbmRvd19yZWN0IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9j
b2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29s
ID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAg
cmVjdCA9IHBheWxvYWRbInJlY3QiXQorICAgICAgICBzZWxmLnByb3RvY29sLndpbmRvdy5zZXRf
cmVjdChyZWN0KQorCisKIGNsYXNzIEFjdGlvblNlcXVlbmNlQWN0aW9uKG9iamVjdCk6CiAgICAg
bmFtZSA9ICJhY3Rpb25fc2VxdWVuY2UiCiAKQEAgLTE4MSwxMCArMjA0LDIzIEBAIGNsYXNzIFNl
dFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgogICAgICAgICAgICAgIlNldHRpbmcgdXNlciB2
ZXJpZmllZCBmbGFnIG9uIGF1dGhlbnRpY2F0b3IgJXMgdG8gJXMiICUgKGF1dGhlbnRpY2F0b3Jf
aWQsIHV2WyJpc1VzZXJWZXJpZmllZCJdKSkKICAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wu
dmlydHVhbF9hdXRoZW50aWNhdG9yLnNldF91c2VyX3ZlcmlmaWVkKGF1dGhlbnRpY2F0b3JfaWQs
IHV2KQogCitjbGFzcyBTZXRTUENUcmFuc2FjdGlvbk1vZGVBY3Rpb24ob2JqZWN0KToKKyAgICBu
YW1lID0gInNldF9zcGNfdHJhbnNhY3Rpb25fbW9kZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAg
ICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5
bG9hZCk6CisgICAgICAgIG1vZGUgPSBwYXlsb2FkWyJtb2RlIl0KKyAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIlNldHRpbmcgU1BDIHRyYW5zYWN0aW9uIG1vZGUgdG8gJXMiICUgbW9kZSkKKyAg
ICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wuc3BjX3RyYW5zYWN0aW9ucy5zZXRfc3BjX3RyYW5z
YWN0aW9uX21vZGUobW9kZSkKIAogYWN0aW9ucyA9IFtDbGlja0FjdGlvbiwKICAgICAgICAgICAg
RGVsZXRlQWxsQ29va2llc0FjdGlvbiwKICAgICAgICAgICAgU2VuZEtleXNBY3Rpb24sCisgICAg
ICAgICAgIE1pbmltaXplV2luZG93QWN0aW9uLAorICAgICAgICAgICBTZXRXaW5kb3dSZWN0QWN0
aW9uLAogICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZUFjdGlvbiwKICAgICAgICAgICAgR2VuZXJh
dGVUZXN0UmVwb3J0QWN0aW9uLAogICAgICAgICAgICBTZXRQZXJtaXNzaW9uQWN0aW9uLApAQCAt
MTk0LDQgKzIzMCw1IEBAIGFjdGlvbnMgPSBbQ2xpY2tBY3Rpb24sCiAgICAgICAgICAgIEdldENy
ZWRlbnRpYWxzQWN0aW9uLAogICAgICAgICAgICBSZW1vdmVDcmVkZW50aWFsQWN0aW9uLAogICAg
ICAgICAgICBSZW1vdmVBbGxDcmVkZW50aWFsc0FjdGlvbiwKLSAgICAgICAgICAgU2V0VXNlclZl
cmlmaWVkQWN0aW9uXQorICAgICAgICAgICBTZXRVc2VyVmVyaWZpZWRBY3Rpb24sCisgICAgICAg
ICAgIFNldFNQQ1RyYW5zYWN0aW9uTW9kZUFjdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRl
eCAyOTA3Njk5MmRmOGY0MjIyMmJlZTA5Y2E5ZjhjM2MzZTFmNWU2NTU1Li4wMjc2MGIxNWY1OGYx
OTA2MDU0ZTYxNmYwZDYyMjU2ODcyMGEwOTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2Jhc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CkBAIC04
LDE1ICs4LDEzIEBAIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBzb2NrZXQKIGltcG9ydCBzeXMK
IGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBodHRwLmNsaWVu
dCBpbXBvcnQgSFRUUENvbm5lY3Rpb24KLWZyb20gdHlwaW5nIGltcG9ydCBBbnksIENhbGxhYmxl
LCBDbGFzc1ZhciwgT3B0aW9uYWwsIFR1cGxlLCBUeXBlLCBUWVBFX0NIRUNLSU5HCitmcm9tIHR5
cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgQ2xhc3NWYXIsIFR1cGxlLCBUeXBlCiBmcm9tIHVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3BsaXQsIHVybHVuc3BsaXQKIAorZnJvbSAu
IGltcG9ydCBweXRlc3RydW5uZXIKIGZyb20gLmFjdGlvbnMgaW1wb3J0IGFjdGlvbnMKLWZyb20g
LnByb3RvY29sIGltcG9ydCBQcm90b2NvbCwgQmFzZVByb3RvY29sUGFydAorZnJvbSAucHJvdG9j
b2wgaW1wb3J0IFByb3RvY29sLCBXZHNwZWNQcm90b2NvbAogCi1pZiBUWVBFX0NIRUNLSU5HOgot
ICAgIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBXZWJEcml2ZXJTZXJ2ZXIKIAogaGVy
ZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtNTk4LDIyICs1OTYsMTggQEAgY2xh
c3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVjdCk6CiAKIGNsYXNzIFdkc3BlY0V4ZWN1dG9y
KFRlc3RFeGVjdXRvcik6CiAgICAgY29udmVydF9yZXN1bHQgPSBweXRlc3RfcmVzdWx0X2NvbnZl
cnRlcgotICAgIHByb3RvY29sX2NscyA9IE5vbmUgICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtQcm90
b2NvbF1dCisgICAgcHJvdG9jb2xfY2xzID0gV2RzcGVjUHJvdG9jb2wgICMgdHlwZTogQ2xhc3NW
YXJbVHlwZVtQcm90b2NvbF1dCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBicm93
c2VyLCBzZXJ2ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAogICAgICAgICAgICAgICAgICB3
ZWJkcml2ZXJfYXJncywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGNhcGFiaWxpdGllcz1Ob25lLAot
ICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsIGVudmlyb249Tm9uZSwgKiprd2FyZ3Mp
OgotICAgICAgICBzZWxmLmRvX2RlbGF5ZWRfaW1wb3J0cygpCi0gICAgICAgIFRlc3RFeGVjdXRv
ci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBs
aWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1kZWJ1Z19pbmZv
KQorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAg
c3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCiAgICAgICAg
IHNlbGYud2ViZHJpdmVyX2JpbmFyeSA9IHdlYmRyaXZlcl9iaW5hcnkKICAgICAgICAgc2VsZi53
ZWJkcml2ZXJfYXJncyA9IHdlYmRyaXZlcl9hcmdzCiAgICAgICAgIHNlbGYudGltZW91dF9tdWx0
aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCiAgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0g
Y2FwYWJpbGl0aWVzCi0gICAgICAgIHNlbGYuZW52aXJvbiA9IGVudmlyb24gaWYgZW52aXJvbiBp
cyBub3QgTm9uZSBlbHNlIHt9Ci0gICAgICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfa3dhcmdzID0g
Tm9uZQotICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IE5vbmUKIAog
ICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgogICAgICAgICBzZWxmLnByb3RvY29sID0gc2Vs
Zi5wcm90b2NvbF9jbHMoc2VsZiwgc2VsZi5icm93c2VyKQpAQCAtNjI5LDcgKzYyMyw2IEBAIGNs
YXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAgICAgICAgIHRpbWVvdXQgPSB0ZXN0
LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciArIHNlbGYuZXh0cmFfdGltZW91dAog
CiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBXZHNwZWNSdW4oc2VsZi5kb193ZHNwZWMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uX2NvbmZp
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmFic19wYXRoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpLnJ1bigpCiAKQEAgLTYzOCwy
MiArNjMxLDI1IEBAIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAKICAgICAg
ICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9jbHMoKmRhdGEpLCBbXSkKIAotICAgIGRlZiBkb193ZHNw
ZWMoc2VsZiwgc2Vzc2lvbl9jb25maWcsIHBhdGgsIHRpbWVvdXQpOgorICAgIGRlZiBkb193ZHNw
ZWMoc2VsZiwgcGF0aCwgdGltZW91dCk6CisgICAgICAgIHNlc3Npb25fY29uZmlnID0geyJob3N0
Ijogc2VsZi5icm93c2VyLmhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3J0Ijog
c2VsZi5icm93c2VyLnBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXBhYmlsaXRp
ZXMiOiBzZWxmLmNhcGFiaWxpdGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIndlYmRy
aXZlciI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiaW5hcnkiOiBzZWxmLndl
YmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJncyI6IHNl
bGYud2ViZHJpdmVyX2FyZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KKwogICAgICAg
ICByZXR1cm4gcHl0ZXN0cnVubmVyLnJ1bihwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlc3Npb25fY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0PXRpbWVvdXQpCiAKLSAgICBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKHNlbGYpOgotICAgICAg
ICBnbG9iYWwgcHl0ZXN0cnVubmVyCi0gICAgICAgIGZyb20gLiBpbXBvcnQgcHl0ZXN0cnVubmVy
Ci0KIAogY2xhc3MgV2RzcGVjUnVuKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1
bmMsIHNlc3Npb24sIHBhdGgsIHRpbWVvdXQpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5j
LCBwYXRoLCB0aW1lb3V0KToKICAgICAgICAgc2VsZi5mdW5jID0gZnVuYwogICAgICAgICBzZWxm
LnJlc3VsdCA9IChOb25lLCBOb25lKQotICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCiAg
ICAgICAgIHNlbGYucGF0aCA9IHBhdGgKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAog
ICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKQEAgLTY3Niw3ICs2
NzIsNyBAQCBjbGFzcyBXZHNwZWNSdW4ob2JqZWN0KToKIAogICAgIGRlZiBfcnVuKHNlbGYpOgog
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUsIHNlbGYuZnVuYyhz
ZWxmLnNlc3Npb24sIHNlbGYucGF0aCwgc2VsZi50aW1lb3V0KQorICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5wYXRoLCBzZWxmLnRpbWVvdXQpCiAgICAgICAg
IGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIElPRXJyb3IpOgogICAgICAgICAgICAgc2VsZi5yZXN1
bHQgPSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg
ZToKQEAgLTY4OSw5MyArNjg1LDYgQEAgY2xhc3MgV2RzcGVjUnVuKG9iamVjdCk6CiAgICAgICAg
ICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCiAKIAotY2xhc3MgQ29ubmVjdGlvbmxlc3NCYXNl
UHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgotICAgIGRlZiBsb2FkKHNlbGYsIHVybCk6
Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFz
eW5jaHJvbm91cz1GYWxzZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZXRfdGltZW91dChz
ZWxmLCB0aW1lb3V0KToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHdhaXQoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIHNldF93aW5kb3coc2VsZiwgaGFuZGxlKToKLSAg
ICAgICAgcGFzcwotCi0gICAgZGVmIHdpbmRvd19oYW5kbGVzKHNlbGYpOgotICAgICAgICByZXR1
cm4gW10KLQotCi1jbGFzcyBDb25uZWN0aW9ubGVzc1Byb3RvY29sKFByb3RvY29sKToKLSAgICBp
bXBsZW1lbnRzID0gW0Nvbm5lY3Rpb25sZXNzQmFzZVByb3RvY29sUGFydF0KLQotICAgIGRlZiBj
b25uZWN0KHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxm
KToKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIFdkc3BlY1Byb3RvY29sKFByb3RvY29sKToKLSAg
ICBzZXJ2ZXJfY2xzID0gTm9uZSAgIyB0eXBlOiBDbGFzc1ZhcltPcHRpb25hbFtUeXBlW1dlYkRy
aXZlclNlcnZlcl1dXQotCi0gICAgaW1wbGVtZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90
b2NvbFBhcnRdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIpOgot
ICAgICAgICBQcm90b2NvbC5fX2luaXRfXyhzZWxmLCBleGVjdXRvciwgYnJvd3NlcikKLSAgICAg
ICAgc2VsZi53ZWJkcml2ZXJfYmluYXJ5ID0gZXhlY3V0b3Iud2ViZHJpdmVyX2JpbmFyeQotICAg
ICAgICBzZWxmLndlYmRyaXZlcl9hcmdzID0gZXhlY3V0b3Iud2ViZHJpdmVyX2FyZ3MKLSAgICAg
ICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBzZWxmLmV4ZWN1dG9yLmNhcGFiaWxpdGllcwotICAgICAg
ICBzZWxmLnNlc3Npb25fY29uZmlnID0gTm9uZQotICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUK
LSAgICAgICAgc2VsZi5lbnZpcm9uID0gb3MuZW52aXJvbi5jb3B5KCkKLSAgICAgICAgc2VsZi5l
bnZpcm9uLnVwZGF0ZShleGVjdXRvci5lbnZpcm9uKQotICAgICAgICBzZWxmLm91dHB1dF9oYW5k
bGVyX2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX2t3YXJncwotICAgICAgICBzZWxm
Lm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncyA9IGV4ZWN1dG9yLm91dHB1dF9oYW5kbGVyX3N0
YXJ0X2t3YXJncwotCi0gICAgZGVmIGNvbm5lY3Qoc2VsZik6Ci0gICAgICAgICIiIkNvbm5lY3Qg
dG8gYnJvd3NlciB2aWEgdGhlIEhUVFAgc2VydmVyLiIiIgotICAgICAgICBzZWxmLnNlcnZlciA9
IHNlbGYuc2VydmVyX2NscygKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLAotICAgICAgICAgICAg
YmluYXJ5PXNlbGYud2ViZHJpdmVyX2JpbmFyeSwKLSAgICAgICAgICAgIGFyZ3M9c2VsZi53ZWJk
cml2ZXJfYXJncywKLSAgICAgICAgICAgIGVudj1zZWxmLmVudmlyb24pCi0gICAgICAgIHNlbGYu
c2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRw
dXRfaGFuZGxlcl9rd2FyZ3M9c2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJncz1zZWxmLm91dHB1dF9o
YW5kbGVyX3N0YXJ0X2t3YXJncykKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygKLSAgICAgICAg
ICAgICJXZWJEcml2ZXIgSFRUUCBzZXJ2ZXIgbGlzdGVuaW5nIGF0ICVzIiAlIHNlbGYuc2VydmVy
LnVybCkKLSAgICAgICAgc2VsZi5zZXNzaW9uX2NvbmZpZyA9IHsiaG9zdCI6IHNlbGYuc2VydmVy
Lmhvc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzZWxmLnNlcnZl
ci5wb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiBz
ZWxmLmNhcGFiaWxpdGllc30KLQotICAgIGRlZiBhZnRlcl9jb25uZWN0KHNlbGYpOgotICAgICAg
ICBwYXNzCi0KLSAgICBkZWYgdGVhcmRvd24oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuc2VydmVy
IGlzIG5vdCBOb25lIGFuZCBzZWxmLnNlcnZlci5pc19hbGl2ZSgpOgotICAgICAgICAgICAgc2Vs
Zi5zZXJ2ZXIuc3RvcCgpCi0KLSAgICBkZWYgaXNfYWxpdmUoc2VsZik6Ci0gICAgICAgICIiIlRl
c3QgdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBzdGlsbCBhbGl2ZS4KLQotICAgICAgICBCZWNhdXNl
IHRoZSByZW1vdGUgY29tbXVuaWNhdGlvbiBoYXBwZW5zIG92ZXIgSFRUUCB3ZSBuZWVkIHRvCi0g
ICAgICAgIG1ha2UgYW4gZXhwbGljaXQgcmVxdWVzdCB0byB0aGUgcmVtb3RlLiAgSXQgaXMgYWxs
b3dlZCBmb3IKLSAgICAgICAgV2ViRHJpdmVyIHNwZWMgdGVzdHMgdG8gbm90IGhhdmUgYSBXZWJE
cml2ZXIgc2Vzc2lvbiwgc2luY2UgdGhpcwotICAgICAgICBtYXkgYmUgd2hhdCBpcyB0ZXN0ZWQu
Ci0KLSAgICAgICAgQW4gSFRUUCByZXF1ZXN0IHRvIGFuIGludmFsaWQgcGF0aCB0aGF0IHJlc3Vs
dHMgaW4gYSA0MDQgaXMKLSAgICAgICAgcHJvb2YgZW5vdWdoIHRvIHVzIHRoYXQgdGhlIHNlcnZl
ciBpcyBhbGl2ZSBhbmQga2lja2luZy4KLSAgICAgICAgIiIiCi0gICAgICAgIGNvbm4gPSBIVFRQ
Q29ubmVjdGlvbihzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQotICAgICAgICBj
b25uLnJlcXVlc3QoIkhFQUQiLCBzZWxmLnNlcnZlci5iYXNlX3BhdGggKyAiaW52YWxpZCIpCi0g
ICAgICAgIHJlcyA9IGNvbm4uZ2V0cmVzcG9uc2UoKQotICAgICAgICByZXR1cm4gcmVzLnN0YXR1
cyA9PSA0MDQKLQotCiBjbGFzcyBDYWxsYmFja0hhbmRsZXIob2JqZWN0KToKICAgICAiIiJIYW5k
bGUgY2FsbGJhY2tzIGZyb20gdGVzdGRyaXZlci11c2luZyB0ZXN0cy4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKaW5kZXggNDMxZDM5OGViZDI3M2Q5ZDJkOWVmMDM2
MjM1MGNlMGMzY2UyMGI5OC4uNTI0Yzg2ZWMwYmU5ZTY2ZTM5NTE5N2FmNTc4MTg5ODJjZmVjMTY4
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21lLnB5CkBAIC0zLDEwICsz
LDkgQEAgaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9p
bgogCi1mcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNQcm90b2NvbCwgV2RzcGVjRXhlY3V0b3IsIGdl
dF9wYWdlcworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3BhZ2VzCiBmcm9tIC5leGVjdXRvcndlYmRy
aXZlciBpbXBvcnQgV2ViRHJpdmVyUHJvdG9jb2wsIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvciwg
V2ViRHJpdmVyUnVuCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgUHJpbnRQcm90b2NvbFBhcnQKLWZy
b20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJTZXJ2ZXIKIAogaGVyZSA9
IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIApAQCAtMTExLDExICsxMTAsMyBAQCBjbGFzcyBD
aHJvbWVEcml2ZXJQcmludFJlZlRlc3RFeGVjdXRvcihXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ip
OgogICAgICAgICAgICAgICAgIHNjcmVlbnNob3RzW2ldID0gc2NyZWVuc2hvdC5zcGxpdCgiLCIs
IDEpWzFdCiAKICAgICAgICAgcmV0dXJuIHNjcmVlbnNob3RzCi0KLQotY2xhc3MgQ2hyb21lRHJp
dmVyV2RzcGVjUHJvdG9jb2woV2RzcGVjUHJvdG9jb2wpOgotICAgIHNlcnZlcl9jbHMgPSBDaHJv
bWVEcml2ZXJTZXJ2ZXIKLQotCi1jbGFzcyBDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvcihXZHNw
ZWNFeGVjdXRvcik6Ci0gICAgcHJvdG9jb2xfY2xzID0gQ2hyb21lRHJpdmVyV2RzcGVjUHJvdG9j
b2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2UucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE0M2Q5Y2Y1MzE0OTU5NGUxYjZjZTE5MTgwOGViMDc1MTZkN2Q0ZTUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURyaXZlclNlcnZlcgotZnJvbSAu
YmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdkc3BlY1Byb3RvY29sCi0KLQotY2xhc3MgRWRn
ZURyaXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29sKToKLSAgICBzZXJ2ZXJfY2xzID0gRWRnZURy
aXZlclNlcnZlcgotCi0KLWNsYXNzIEVkZ2VEcml2ZXJXZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVj
dXRvcik6Ci0gICAgcHJvdG9jb2xfY2xzID0gRWRnZURyaXZlclByb3RvY29sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTAyNjNhZjY4MDM0MTExZmFlNTZiNmUxYWNiMDUwZmE5NTg1OWRhZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTAgKzAsMCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURy
aXZlclNlcnZlcg0KLWZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZHNwZWNQcm90
b2NvbA0KLQ0KLQ0KLWNsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sKFdkc3BlY1Byb3Rv
Y29sKToNCi0gICAgc2VydmVyX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KLQ0KLQ0K
LWNsYXNzIEVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToN
Ci0gICAgcHJvdG9jb2xfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyUHJvdG9jb2wNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yaW50ZXJuZXRleHBsb3Jlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjZhMTZlZjVlYmZiNzI2ZGI2Mzc5ODRkNWU0ODk2
ZWU0YzQ1ZGM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0
IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIKLWZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4
ZWN1dG9yLCBXZHNwZWNQcm90b2NvbAotCi0KLWNsYXNzIEludGVybmV0RXhwbG9yZXJEcml2ZXJQ
cm90b2NvbChXZHNwZWNQcm90b2NvbCk6Ci0gICAgc2VydmVyX2NscyA9IEludGVybmV0RXhwbG9y
ZXJEcml2ZXJTZXJ2ZXIKLQotCi1jbGFzcyBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhl
Y3V0b3IoV2RzcGVjRXhlY3V0b3IpOgotICAgIHByb3RvY29sX2NscyA9IEludGVybmV0RXhwbG9y
ZXJEcml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcm1hcmlvbmV0dGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9u
ZXR0ZS5weQppbmRleCBlNjFkYjEzZTI4N2U2MWRiZjZiZTVlOWM3MmQ1OGRlYTY2ZDM0YWY0Li5i
MWVlMDI2ZTQ1NjM2N2FlZDQ3YjI2NTQwYzE0OTJkOGE4ZWQ3ZWQ2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQpAQCAtMjAsNyArMjAsNiBAQCBmcm9t
IC5iYXNlIGltcG9ydCAoQ2FsbGJhY2tIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIFRlc3Ro
YXJuZXNzRXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCiAgICAgICAg
ICAgICAgICAgICAgV2RzcGVjRXhlY3V0b3IsCi0gICAgICAgICAgICAgICAgICAgV2RzcGVjUHJv
dG9jb2wsCiAgICAgICAgICAgICAgICAgICAgZ2V0X3BhZ2VzLAogICAgICAgICAgICAgICAgICAg
IHN0cmlwX3NlcnZlcikKIGZyb20gLnByb3RvY29sIGltcG9ydCAoQWN0aW9uU2VxdWVuY2VQcm90
b2NvbFBhcnQsCkBAIC0zOCw5ICszNywxMSBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEFjdGlv
blNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDb3ZlcmFnZVBy
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0UHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBWaXJ0dWFsQXV0aGVudGljYXRvclBy
b3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgV2luZG93UHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICBTZXRQZXJtaXNzaW9uUHJvdG9jb2xQYXJ0LAogICAgICAg
ICAgICAgICAgICAgICAgICBQcmludFByb3RvY29sUGFydCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgRGVidWdQcm90b2NvbFBhcnQpCisgICAgICAgICAgICAgICAgICAgICAgIERlYnVnUHJvdG9j
b2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBtZXJnZV9kaWN0cykKIAogCiBkZWYgZG9f
ZGVsYXllZF9pbXBvcnRzKCk6CkBAIC00NTMsNiArNDU0LDE2IEBAIGNsYXNzIE1hcmlvbmV0dGVT
ZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNlbmRf
a2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9r
ZXlzKGtleXMpCiAKK2NsYXNzIE1hcmlvbmV0dGVXaW5kb3dQcm90b2NvbFBhcnQoV2luZG93UHJv
dG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0
ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKKworICAgIGRlZiBtaW5pbWl6ZShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYubWFyaW9uZXR0ZS5taW5pbWl6ZV93aW5kb3coKQorCisgICAgZGVm
IHNldF9yZWN0KHNlbGYsIHJlY3QpOgorICAgICAgICBzZWxmLm1hcmlvbmV0dGUuc2V0X3dpbmRv
d19yZWN0KHJlY3RbIngiXSwgcmVjdFsieSJdLCByZWN0WyJoZWlnaHQiXSwgcmVjdFsid2lkdGgi
XSkKKwogCiBjbGFzcyBNYXJpb25ldHRlQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQoQWN0aW9u
U2VxdWVuY2VQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTY3Myw2ICs2
ODQsNyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAg
ICAgICAgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFy
aW9uZXR0ZUNvb2tpZXNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
U2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlV2luZG93
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUFjdGlvblNlcXVlbmNl
UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVRlc3REcml2ZXJQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQXNzZXJ0c1Byb3RvY29sUGFy
dCwKQEAgLTY5MCw2ICs3MDIsMTEgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29s
KToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gTm9uZQogICAgICAgICBzZWxmLm1hcmlvbmV0
dGVfcG9ydCA9IGJyb3dzZXIubWFyaW9uZXR0ZV9wb3J0CiAgICAgICAgIHNlbGYuY2FwYWJpbGl0
aWVzID0gY2FwYWJpbGl0aWVzCisgICAgICAgIGlmIGhhc2F0dHIoYnJvd3NlciwgImNhcGFiaWxp
dGllcyIpOgorICAgICAgICAgICAgaWYgc2VsZi5jYXBhYmlsaXRpZXMgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGJyb3dzZXIuY2FwYWJpbGl0aWVzCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1lcmdlX2RpY3RzKHNlbGYuY2FwYWJpbGl0
aWVzLCBicm93c2VyLmNhcGFiaWxpdGllcykKICAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxp
ZXIgPSB0aW1lb3V0X211bHRpcGxpZXIKICAgICAgICAgc2VsZi5ydW5uZXJfaGFuZGxlID0gTm9u
ZQogICAgICAgICBzZWxmLmUxMHMgPSBlMTBzCkBAIC0xMTE0LDM0ICsxMTMxLDYgQEAgY2xhc3Mg
SW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24oUmVmVGVzdEltcGxlbWVudGF0aW9uKToKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKIAog
Ci1jbGFzcyBHZWNrb0RyaXZlclByb3RvY29sKFdkc3BlY1Byb3RvY29sKToKLSAgICBzZXJ2ZXJf
Y2xzID0gTm9uZSAgIyBUbyBhdm9pZCBjaXJjdWxhciBpbXBvcnRzIHdlIHNldCB0aGlzIGF0IHJ1
bnRpbWUKLQotCi1jbGFzcyBNYXJpb25ldHRlV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3Ip
OgotICAgIHByb3RvY29sX2NscyA9IEdlY2tvRHJpdmVyUHJvdG9jb2wKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHdlYmRyaXZlcl9iaW5h
cnksCi0gICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9
MSwgY2FwYWJpbGl0aWVzPU5vbmUsCi0gICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwg
ZW52aXJvbj1Ob25lLCBzdGFja2ZpeF9kaXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAgc3ltYm9s
c19wYXRoPU5vbmUsIGxlYWtfcmVwb3J0X2ZpbGU9Tm9uZSwgYXNhbj1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgYnJvd3Nlcl9zZXR0aW5ncz1Ob25lLCAqKmt3
YXJncyk6Ci0KLSAgICAgICAgZnJvbSAuLmJyb3dzZXJzLmZpcmVmb3ggaW1wb3J0IEdlY2tvRHJp
dmVyU2VydmVyCi0gICAgICAgIHN1cGVyKCkuX19pbml0X18obG9nZ2VyLCBicm93c2VyLCBzZXJ2
ZXJfY29uZmlnLCB3ZWJkcml2ZXJfYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9hcmdzLCB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMsIGRlYnVnX2lu
Zm89ZGVidWdfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9uPWVudmlyb24s
ICoqa3dhcmdzKQotICAgICAgICBzZWxmLnByb3RvY29sX2Nscy5zZXJ2ZXJfY2xzID0gR2Vja29E
cml2ZXJTZXJ2ZXIKLSAgICAgICAgc2VsZi5vdXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSB7InN0YWNr
Zml4X2RpciI6IHN0YWNrZml4X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN5bWJvbHNfcGF0aCI6IHN5bWJvbHNfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImFzYW4iOiBhc2FuLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibGVha19yZXBvcnRfZmlsZSI6IGxlYWtfcmVwb3J0X2ZpbGV9Ci0gICAg
ICAgIHNlbGYub3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzID0geyJncm91cF9tZXRhZGF0YSI6
IGdyb3VwX21ldGFkYXRhfQotICAgICAgICBzZWxmLm91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJn
cy51cGRhdGUoYnJvd3Nlcl9zZXR0aW5ncykKLQotCi0KIGNsYXNzIE1hcmlvbmV0dGVDcmFzaHRl
c3RFeGVjdXRvcihDcmFzaHRlc3RFeGVjdXRvcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAg
ICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnPUZh
bHNlLApAQCAtMTI3NSwzICsxMjY0LDE1IEBAIGNsYXNzIE1hcmlvbmV0dGVQcmludFJlZlRlc3RF
eGVjdXRvcihNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBzY3Jl
ZW5zaG90c1tpXSA9IHNjcmVlbnNob3Quc3BsaXQoIiwiLCAxKVsxXQogCiAgICAgICAgIHJldHVy
biBzY3JlZW5zaG90cworCisKK2NsYXNzIE1hcmlvbmV0dGVXZHNwZWNFeGVjdXRvcihXZHNwZWNF
eGVjdXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3NlciwgKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhsb2dnZXIsIGJyb3dzZXIsICph
cmdzLCAqKmt3YXJncykKKworICAgICAgICBhcmdzID0gc2VsZi5jYXBhYmlsaXRpZXNbIm1vejpm
aXJlZm94T3B0aW9ucyJdLnNldGRlZmF1bHQoImFyZ3MiLCBbXSkKKyAgICAgICAgYXJncy5leHRl
bmQoWyItLXByb2ZpbGUiLCBzZWxmLmJyb3dzZXIucHJvZmlsZV0pCisKKyAgICAgICAgZm9yIG9w
dGlvbiBpbiBbImFuZHJvaWRQYWNrYWdlIiwgImFuZHJvaWREZXZpY2VTZXJpYWwiLCAiZW52Il06
CisgICAgICAgICAgICBpZiBoYXNhdHRyKGJyb3dzZXIsIG9wdGlvbik6CisgICAgICAgICAgICAg
ICAgc2VsZi5jYXBhYmlsaXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJdW29wdGlvbl0gPSBnZXRh
dHRyKGJyb3dzZXIsIG9wdGlvbikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JvcGVyYS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JvcGVyYS5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E5NDVhMTAxNmJhMzQ3YjVkYWRlMWIw
N2E4MjZiMjFiYjEyYjc1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgT3Bl
cmFEcml2ZXJTZXJ2ZXIKLWZyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZHNwZWNQ
cm90b2NvbAotCi0KLWNsYXNzIE9wZXJhRHJpdmVyUHJvdG9jb2woV2RzcGVjUHJvdG9jb2wpOgot
ICAgIHNlcnZlcl9jbHMgPSBPcGVyYURyaXZlclNlcnZlcgotCi0KLWNsYXNzIE9wZXJhRHJpdmVy
V2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgotICAgIHByb3RvY29sX2NscyA9IE9wZXJh
RHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JzYWZhcmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2FmYXJpLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmQ3ZmNkZDA2ODdjYzEzNjIxY2Y4NjlkODY1
YTIxNzcwODRmOTYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzYWZhcmkucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwxMCArMCwwIEBACi1mcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgU2FmYXJp
RHJpdmVyU2VydmVyCi1mcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2RzcGVjUHJv
dG9jb2wKLQotCi1jbGFzcyBTYWZhcmlEcml2ZXJQcm90b2NvbChXZHNwZWNQcm90b2NvbCk6Ci0g
ICAgc2VydmVyX2NscyA9IFNhZmFyaURyaXZlclNlcnZlcgotCi0KLWNsYXNzIFNhZmFyaURyaXZl
cldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKLSAgICBwcm90b2NvbF9jbHMgPSBTYWZh
cmlEcml2ZXJQcm90b2NvbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcnNlbGVuaXVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVt
LnB5CmluZGV4IDFmZTJhODAzYjJhZDllOTFmMTc0YThkYWM0MzZiZDM1NWI0MmZlM2QuLjhkZGZj
ZGM2YmYzY2U4M2RmODlmYTI5YjA2Yzg4ZmM4NjVlN2RmNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKQEAgLTIwLDYgKzIwLDcgQEAgZnJvbSAucHJvdG9j
b2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBDbGlj
a1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgQ29va2llc1Byb3RvY29sUGFy
dCwKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgIFdpbmRvd1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAg
ICAgQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRl
c3REcml2ZXJQcm90b2NvbFBhcnQpCiAKQEAgLTE5Miw2ICsxOTMsMTggQEAgY2xhc3MgU2VsZW5p
dW1Db29raWVzUHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90b2NvbFBhcnQpOgogICAgICAgICBzZWxm
LmxvZ2dlci5pbmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCiAgICAgICAgIHJldHVybiBzZWxm
LndlYmRyaXZlci5kZWxldGVfYWxsX2Nvb2tpZXMoKQogCitjbGFzcyBTZWxlbml1bVdpbmRvd1By
b3RvY29sUGFydChXaW5kb3dQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAg
ICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBt
aW5pbWl6ZShzZWxmKToKKyAgICAgICAgc2VsZi5wcmV2aW91c19yZWN0ID0gc2VsZi53ZWJkcml2
ZXIud2luZG93LnJlY3QKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiTWluaW1pemluZyIpCisg
ICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5taW5pbWl6ZSgpCisKKyAgICBkZWYgc2V0X3Jl
Y3Qoc2VsZiwgcmVjdCk6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlNldHRpbmcgd2luZG93
IHJlY3QiKQorICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3cucmVjdCA9IHJlY3QKIAogY2xh
c3MgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAg
ICAgZGVmIHNldHVwKHNlbGYpOgpAQCAtMjMyLDYgKzI0NSw3IEBAIGNsYXNzIFNlbGVuaXVtUHJv
dG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1Db29raWVzUHJvdG9j
b2xQYXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdERyaXZlclByb3RvY29sUGFydCwKKyAgICAg
ICAgICAgICAgICAgIFNlbGVuaXVtV2luZG93UHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAg
ICAgU2VsZW5pdW1BY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydF0KIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBleGVjdXRvciwgYnJvd3NlciwgY2FwYWJpbGl0aWVzLCAqKmt3YXJncyk6CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkKaW5kZXggZjMyMjQyMWJkM2ZhODk0YTk1
MTVjMDkxMjc4ZDg5MGY3N2FkYzUyMi4uZDM0NWNmN2VlMjdmMjA5ODBjNGI1Y2I0NTZkOGY4MjRh
YmQzOGEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZv
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQpAQCAtMTEs
MTcgKzExLDE0IEBAIGZyb20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKIAogZnJv
bSB0b29scy5zZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCiAKLWZyb20gLmJhc2Ug
aW1wb3J0IChDb25uZWN0aW9ubGVzc1Byb3RvY29sLAotICAgICAgICAgICAgICAgICAgIFJlZlRl
c3RJbXBsZW1lbnRhdGlvbiwKK2Zyb20gLmJhc2UgaW1wb3J0IChSZWZUZXN0SW1wbGVtZW50YXRp
b24sCiAgICAgICAgICAgICAgICAgICAgY3Jhc2h0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCiAgICAg
ICAgICAgICAgICAgICAgdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciwKICAgICAgICAgICAg
ICAgICAgICByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCi0gICAgICAgICAgICAgICAgICAgVGlt
ZWRSdW5uZXIsCi0gICAgICAgICAgICAgICAgICAgV2RzcGVjRXhlY3V0b3IsCi0gICAgICAgICAg
ICAgICAgICAgV2RzcGVjUHJvdG9jb2wpCisgICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIp
CiBmcm9tIC5wcm9jZXNzIGltcG9ydCBQcm9jZXNzVGVzdEV4ZWN1dG9yCitmcm9tIC5wcm90b2Nv
bCBpbXBvcnQgQ29ubmVjdGlvbmxlc3NQcm90b2NvbAogZnJvbSAuLmJyb3dzZXJzLmJhc2UgaW1w
b3J0IGJyb3dzZXJfY29tbWFuZAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNlcnZv
RHJpdmVyU2VydmVyCiAKIAogcHl0ZXN0cnVubmVyID0gTm9uZQpAQCAtMjgwLDE0ICsyNzcsNiBA
QCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIi5qb2luKHNlbGYuY29tbWFuZCkp
CiAKIAotY2xhc3MgU2Vydm9Ecml2ZXJQcm90b2NvbChXZHNwZWNQcm90b2NvbCk6Ci0gICAgc2Vy
dmVyX2NscyA9IFNlcnZvRHJpdmVyU2VydmVyCi0KLQotY2xhc3MgU2Vydm9XZHNwZWNFeGVjdXRv
cihXZHNwZWNFeGVjdXRvcik6Ci0gICAgcHJvdG9jb2xfY2xzID0gU2Vydm9Ecml2ZXJQcm90b2Nv
bAotCi0KIGNsYXNzIFNlcnZvVGltZWRSdW5uZXIoVGltZWRSdW5uZXIpOgogICAgIGRlZiBydW5f
ZnVuYyhzZWxmKToKICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcnNlcnZvZHJpdmVyLnB5CmluZGV4IGEwNjVlM2M1NmFjZWMzNWQzZWNkODdjZmQyZmNmMzMw
ZjZhYmRmMjcuLjg5NDI4YjUzYjcwZDc2NmExMjQxMjI2YjI1ZGQyYjA3MmQyYTcxYTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKQEAgLTQsMTMg
KzQsMTMgQEAgaW1wb3J0IHNvY2tldAogaW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIC5iYXNlIGlt
cG9ydCAoUHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgQmFzZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAgUmVm
VGVzdEltcGxlbWVudGF0aW9uLAogICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0
b3IsCiAgICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCiAgICAgICAgICAgICAgICAgICAg
c3RyaXBfc2VydmVyKQotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IHdhaXRfZm9yX3Nl
cnZpY2UKK2Zyb20gLnByb3RvY29sIGltcG9ydCBCYXNlUHJvdG9jb2xQYXJ0Citmcm9tIC4uZW52
aXJvbm1lbnQgaW1wb3J0IHdhaXRfZm9yX3NlcnZpY2UKIAogd2ViZHJpdmVyID0gTm9uZQogU2Vy
dm9Db21tYW5kRXh0ZW5zaW9ucyA9IE5vbmUKQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3MgU2Vydm9X
ZWJEcml2ZXJQcm90b2NvbChQcm90b2NvbCk6CiAKICAgICBkZWYgY29ubmVjdChzZWxmKToKICAg
ICAgICAgIiIiQ29ubmVjdCB0byBicm93c2VyIHZpYSBXZWJEcml2ZXIuIiIiCi0gICAgICAgIHdh
aXRfZm9yX3NlcnZpY2UoKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSwgdGltZW91dD1zZWxmLmluaXRf
dGltZW91dCkKKyAgICAgICAgd2FpdF9mb3Jfc2VydmljZShzZWxmLmxvZ2dlciwgc2VsZi5ob3N0
LCBzZWxmLnBvcnQsIHRpbWVvdXQ9c2VsZi5pbml0X3RpbWVvdXQpCiAKICAgICAgICAgc2VsZi5z
ZXNzaW9uID0gd2ViZHJpdmVyLlNlc3Npb24oc2VsZi5ob3N0LCBzZWxmLnBvcnQsIGV4dGVuc2lv
bj1TZXJ2b0NvbW1hbmRFeHRlbnNpb25zKQogICAgICAgICBzZWxmLnNlc3Npb24uc3RhcnQoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKaW5kZXggYzY5NWEw
NWQyZWIyN2M1NTI2ZTQxMGNiODY4Y2YzNWFhYzRhYzRhMS4uN2U5NTE5ODcwMzEwZTlmZjRkNDM1
ZDlhOTRkOWFmZTc3YzkxNjM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9l
eGVjdXRvcndlYmRyaXZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
d2ViZHJpdmVyLnB5CkBAIC0yNiw3ICsyNiwxMCBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJh
c2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlVGVzdFJlcG9y
dFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgU2V0UGVybWlzc2lvblByb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90
b2NvbFBhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0KQorICAg
ICAgICAgICAgICAgICAgICAgICBXaW5kb3dQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICAgICAgIERlYnVnUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBTUENUcmFu
c2FjdGlvbnNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlX2RpY3Rz
KQogCiBmcm9tIHdlYmRyaXZlci5jbGllbnQgaW1wb3J0IFNlc3Npb24KIGZyb20gd2ViZHJpdmVy
IGltcG9ydCBlcnJvcgpAQCAtMjAxLDYgKzIwNCwxNyBAQCBjbGFzcyBXZWJEcml2ZXJDb29raWVz
UHJvdG9jb2xQYXJ0KENvb2tpZXNQcm90b2NvbFBhcnQpOgogICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKCJEZWxldGluZyBhbGwgY29va2llcyIpCiAgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZl
ci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiREVMRVRFIiwgImNvb2tpZSIpCiAKK2NsYXNzIFdlYkRy
aXZlcldpbmRvd1Byb3RvY29sUGFydChXaW5kb3dQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1
cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIK
KworICAgIGRlZiBtaW5pbWl6ZShzZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiTWlu
aW1pemluZyIpCisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci53aW5kb3cubWluaW1pemUo
KQorCisgICAgZGVmIHNldF9yZWN0KHNlbGYsIHJlY3QpOgorICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKCJSZXN0b3JpbmciKQorICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3cucmVjdCA9IHJl
Y3QKIAogY2xhc3MgV2ViRHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2Nv
bFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTI5OSw2ICszMTMsMTUgQEAgY2xhc3Mg
V2ViRHJpdmVyVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQoVmlydHVhbEF1dGhlbnRp
Y2F0b3JQcm90b2NvbFBhcnQKICAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vz
c2lvbl9jb21tYW5kKCJQT1NUIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IvJXMvdXYiICUgYXV0
aGVudGljYXRvcl9pZCwgdXYpCiAKIAorY2xhc3MgV2ViRHJpdmVyU1BDVHJhbnNhY3Rpb25zUHJv
dG9jb2xQYXJ0KFNQQ1RyYW5zYWN0aW9uc1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNl
bGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisg
ICAgZGVmIHNldF9zcGNfdHJhbnNhY3Rpb25fbW9kZShzZWxmLCBtb2RlKToKKyAgICAgICAgYm9k
eSA9IHsibW9kZSI6IG1vZGV9CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiUE9TVCIsICJzZWN1cmUtcGF5bWVudC1jb25maXJtYXRpb24vc2V0LW1v
ZGUiLCBib2R5KQorCisKIGNsYXNzIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0KERlYnVnUHJv
dG9jb2xQYXJ0KToKICAgICBkZWYgbG9hZF9kZXZ0b29scyhzZWxmKToKICAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcigpCkBAIC0zMTEsMTYgKzMzNCwyMyBAQCBjbGFzcyBXZWJEcml2
ZXJQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJDbGlja1By
b3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckNvb2tpZXNQcm90b2NvbFBh
cnQsCiAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZW5kS2V5c1Byb3RvY29sUGFydCwKKyAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlcldpbmRvd1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlckFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAg
ICAgICAgV2ViRHJpdmVyVGVzdERyaXZlclByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlckdlbmVyYXRlVGVzdFJlcG9ydFByb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgIFdlYkRyaXZlclNldFBlcm1pc3Npb25Qcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCwKKyAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlclNQQ1RyYW5zYWN0aW9uc1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlckRlYnVnUHJvdG9jb2xQYXJ0XQogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGV4ZWN1dG9yLCBicm93c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKICAgICAgICAg
c3VwZXIoV2ViRHJpdmVyUHJvdG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2Vy
KQogICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBpZiBo
YXNhdHRyKGJyb3dzZXIsICJjYXBhYmlsaXRpZXMiKToKKyAgICAgICAgICAgIGlmIHNlbGYuY2Fw
YWJpbGl0aWVzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBi
cm93c2VyLmNhcGFiaWxpdGllcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBt
ZXJnZV9kaWN0cyhzZWxmLmNhcGFiaWxpdGllcywgYnJvd3Nlci5jYXBhYmlsaXRpZXMpCiAgICAg
ICAgIHNlbGYudXJsID0gYnJvd3Nlci53ZWJkcml2ZXJfdXJsCiAgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gTm9uZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
d2Via2l0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmtpdC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWE0YjRmYWQzYTk1MzQxZmQ0YmEwODBiZGQxMjgw
Mzc0NzI2NTJmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Via2l0LnB5CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYktpdERy
aXZlclNlcnZlcgotZnJvbSAuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdkc3BlY1Byb3Rv
Y29sCi0KLQotY2xhc3MgV2ViS2l0RHJpdmVyUHJvdG9jb2woV2RzcGVjUHJvdG9jb2wpOgotICAg
IHNlcnZlcl9jbHMgPSBXZWJLaXREcml2ZXJTZXJ2ZXIKLQotCi1jbGFzcyBXZWJLaXREcml2ZXJX
ZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6Ci0gICAgcHJvdG9jb2xfY2xzID0gV2ViS2l0
RHJpdmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9j
b2wucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CmluZGV4IDhhMTFiMTMz
OGUwZmJkMGE0YmZlZTM1OWRkMzVjYjA4NzY5NjAzZDQuLjBlZWViZmNhODBhNTAzNTQ4YzU5Mjdl
YmIzMWM4NGYzZWYzOGQ3YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJv
dG9jb2wucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQpAQCAtMSw5
ICsxLDIyIEBACiBpbXBvcnQgdHJhY2ViYWNrCitmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBIVFRQ
Q29ubmVjdGlvbgogCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIGZy
b20gdHlwaW5nIGltcG9ydCBDbGFzc1ZhciwgTGlzdCwgVHlwZQogCiAKK2RlZiBtZXJnZV9kaWN0
cyh0YXJnZXQsIHNvdXJjZSk6CisgICAgaWYgbm90IChpc2luc3RhbmNlKHRhcmdldCwgZGljdCkg
YW5kIGlzaW5zdGFuY2Uoc291cmNlLCBkaWN0KSk6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcgor
ICAgIGZvciAoa2V5LCBzb3VyY2VfdmFsdWUpIGluIHNvdXJjZS5pdGVtcygpOgorICAgICAgICBp
ZiBrZXkgbm90IGluIHRhcmdldDoKKyAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlX3Zh
bHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNvdXJjZV92YWx1
ZSwgZGljdCkgYW5kIGlzaW5zdGFuY2UodGFyZ2V0W2tleV0sIGRpY3QpOgorICAgICAgICAgICAg
ICAgIG1lcmdlX2RpY3RzKHRhcmdldFtrZXldLCBzb3VyY2VfdmFsdWUpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlX3ZhbHVlCisKIGNsYXNz
IFByb3RvY29sKG9iamVjdCk6CiAgICAgIiIiQmFja2VuZCBmb3IgYSBzcGVjaWZpYyBicm93c2Vy
LWNvbnRyb2wgcHJvdG9jb2wuCiAKQEAgLTMxMCw2ICszMjMsMjEgQEAgY2xhc3MgU2VuZEtleXNQ
cm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnBhcmFtIGtleXM6IEEgcHJvdG9j
b2wtc3BlY2lmaWMgaGFuZGxlIHRvIGEgc3RyaW5nIG9mIGlucHV0IGtleXMuIiIiCiAgICAgICAg
IHBhc3MKIAorY2xhc3MgV2luZG93UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIi
UHJvdG9jb2wgcGFydCBmb3IgbWFuaXB1bGF0aW5nIHRoZSB3aW5kb3ciIiIKKyAgICBfX21ldGFj
bGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJ3aW5kb3ciCisKKyAgICBAYWJzdHJhY3Rt
ZXRob2QKKyAgICBkZWYgc2V0X3JlY3Qoc2VsZiwgcmVjdCk6CisgICAgICAgICIiIlJlc3RvcmVz
IHRoZSB3aW5kb3cgdG8gdGhlIGdpdmVuIHJlY3QuIiIiCisgICAgICAgIHBhc3MKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBtaW5pbWl6ZShzZWxmKToKKyAgICAgICAgIiIiTWluaW1p
emVzIHRoZSB3aW5kb3cgYW5kIHJldHVybnMgdGhlIHByZXZpb3VzIHJlY3QuIiIiCisgICAgICAg
IHBhc3MKIAogY2xhc3MgR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFy
dCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgZ2VuZXJhdGluZyB0ZXN0IHJlcG9ydHMiIiIK
QEAgLTUzNyw2ICs1NjUsMjAgQEAgY2xhc3MgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBh
cnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIFNQQ1RyYW5zYWN0aW9u
c1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIFNl
Y3VyZSBQYXltZW50IENvbmZpcm1hdGlvbiB0cmFuc2FjdGlvbnMiIiIKKyAgICBfX21ldGFjbGFz
c19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJzcGNfdHJhbnNhY3Rpb25zIgorCisgICAgQGFi
c3RyYWN0bWV0aG9kCisgICAgZGVmIHNldF9zcGNfdHJhbnNhY3Rpb25fbW9kZShzZWxmLCBtb2Rl
KToKKyAgICAgICAgIiIiU2V0IHRoZSBTUEMgdHJhbnNhY3Rpb24gYXV0b21hdGlvbiBtb2RlCisK
KyAgICAgICAgOnBhcmFtIHN0ciBtb2RlOiBUaGUgYXV0b21hdGlvbiBtb2RlIHRvIHNldCIiIgor
ICAgICAgICBwYXNzCisKKwogY2xhc3MgUHJpbnRQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToK
ICAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciByZW5kZXJpbmcgdG8gYSBQREYuIiIiCiAgICAgX19t
ZXRhY2xhc3NfXyA9IEFCQ01ldGEKQEAgLTU3NiwzICs2MTgsNTYgQEAgY2xhc3MgRGVidWdQcm90
b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5sb2FkKHVy
bGpvaW4oc2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVyX3VybCgiaHR0cHMiKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIvY29tbW9uL3RoaXJkX3BhcnR5L3JlZnRlc3QtYW5hbHl6
ZXIueGh0bWwjbG9nPSVzIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGUo
b3V0cHV0LmdldHZhbHVlKCkpKSkKKworCitjbGFzcyBDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2Nv
bFBhcnQoQmFzZVByb3RvY29sUGFydCk6CisgICAgZGVmIGxvYWQoc2VsZiwgdXJsKToKKyAgICAg
ICAgcGFzcworCisgICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmNocm9u
b3VzPUZhbHNlKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRp
bWVvdXQpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgd2FpdChzZWxmKToKKyAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICBkZWYgc2V0X3dpbmRvdyhzZWxmLCBoYW5kbGUpOgorICAgICAgICBw
YXNzCisKKyAgICBkZWYgd2luZG93X2hhbmRsZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbXQor
CisKK2NsYXNzIENvbm5lY3Rpb25sZXNzUHJvdG9jb2woUHJvdG9jb2wpOgorICAgIGltcGxlbWVu
dHMgPSBbQ29ubmVjdGlvbmxlc3NCYXNlUHJvdG9jb2xQYXJ0XQorCisgICAgZGVmIGNvbm5lY3Qo
c2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBhZnRlcl9jb25uZWN0KHNlbGYpOgorICAg
ICAgICBwYXNzCisKKworY2xhc3MgV2RzcGVjUHJvdG9jb2woQ29ubmVjdGlvbmxlc3NQcm90b2Nv
bCk6CisgICAgaW1wbGVtZW50cyA9IFtDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnRdCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIpOgorICAgICAgICBzdXBl
cigpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYp
OgorICAgICAgICAiIiJUZXN0IHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgc3RpbGwgYWxpdmUuCisK
KyAgICAgICAgQmVjYXVzZSB0aGUgcmVtb3RlIGNvbW11bmljYXRpb24gaGFwcGVucyBvdmVyIEhU
VFAgd2UgbmVlZCB0bworICAgICAgICBtYWtlIGFuIGV4cGxpY2l0IHJlcXVlc3QgdG8gdGhlIHJl
bW90ZS4gIEl0IGlzIGFsbG93ZWQgZm9yCisgICAgICAgIFdlYkRyaXZlciBzcGVjIHRlc3RzIHRv
IG5vdCBoYXZlIGEgV2ViRHJpdmVyIHNlc3Npb24sIHNpbmNlIHRoaXMKKyAgICAgICAgbWF5IGJl
IHdoYXQgaXMgdGVzdGVkLgorCisgICAgICAgIEFuIEhUVFAgcmVxdWVzdCB0byBhbiBpbnZhbGlk
IHBhdGggdGhhdCByZXN1bHRzIGluIGEgNDA0IGlzCisgICAgICAgIHByb29mIGVub3VnaCB0byB1
cyB0aGF0IHRoZSBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGtpY2tpbmcuCisgICAgICAgICIiIgorICAg
ICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5icm93c2VyLmhvc3QsIHNlbGYuYnJvd3Nl
ci5wb3J0KQorICAgICAgICBjb25uLnJlcXVlc3QoIkhFQUQiLCAiL2ludmFsaWQiKQorICAgICAg
ICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMgPT0g
NDA0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5u
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKaW5k
ZXggNzhkYTg0NjI4ZGIyMWFlZjg4OTEzNzZmMDRjMjhiMTc5NjUyNjQzOS4uZGUyNTdiN2ZhMDBm
NTViNTMxY2U5YjBjYjIzZGUyNzFlNDUxYTI2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9weXRlc3RydW5uZXIvcnVubmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQpAQCAtNDQsMTQgKzQ0LDE0IEBAIGRlZiBydW4ocGF0
aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCwgZW52aXJvbj1Ob25l
KToKICAgICBvbGRfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCiAgICAgdHJ5OgogICAgICAg
ICB3aXRoIFRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGNhY2hlOgotICAgICAgICAgICAgb3MuZW52
aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQotICAgICAgICAgICAgb3Mu
ZW52aXJvblsiV0RfUE9SVCJdID0gc3RyKHNlc3Npb25fY29uZmlnWyJwb3J0Il0pCi0gICAgICAg
ICAgICBvcy5lbnZpcm9uWyJXRF9DQVBBQklMSVRJRVMiXSA9IGpzb24uZHVtcHMoc2Vzc2lvbl9j
b25maWdbImNhcGFiaWxpdGllcyJdKQorICAgICAgICAgICAgY29uZmlnX3BhdGggPSBvcy5wYXRo
LmpvaW4oY2FjaGUsICJ3ZF9jb25maWcuanNvbiIpCisgICAgICAgICAgICBvcy5lbnZpcm9uWyJX
RFNQRUNfQ09ORklHX0ZJTEUiXSA9IGNvbmZpZ19wYXRoCisKKyAgICAgICAgICAgIGNvbmZpZyA9
IHNlc3Npb25fY29uZmlnLmNvcHkoKQorICAgICAgICAgICAgY29uZmlnWyJ3cHRzZXJ2ZSJdID0g
c2VydmVyX2NvbmZpZy5hc19kaWN0KCkKIAotICAgICAgICAgICAgY29uZmlnX3BhdGggPSBvcy5w
YXRoLmpvaW4oY2FjaGUsICJ3ZF9zZXJ2ZXJfY29uZmlnLmpzb24iKQotICAgICAgICAgICAgb3Mu
ZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJR19GSUxFIl0gPSBjb25maWdfcGF0aAogICAgICAgICAg
ICAgd2l0aCBvcGVuKGNvbmZpZ19wYXRoLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICAgICAganNv
bi5kdW1wKHNlcnZlcl9jb25maWcuYXNfZGljdCgpLCBmKQorICAgICAgICAgICAgICAgIGpzb24u
ZHVtcChjb25maWcsIGYpCiAKICAgICAgICAgICAgIGlmIGVudmlyb246CiAgICAgICAgICAgICAg
ICAgb3MuZW52aXJvbi51cGRhdGUoZW52aXJvbikKQEAgLTYwLDEwICs2MCwxMSBAQCBkZWYgcnVu
KHBhdGgsIHNlcnZlcl9jb25maWcsIHNlc3Npb25fY29uZmlnLCB0aW1lb3V0PTAsIGVudmlyb249
Tm9uZSk6CiAgICAgICAgICAgICBzdWJ0ZXN0cyA9IFN1YnRlc3RSZXN1bHRSZWNvcmRlcigpCiAK
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBiYXNldGVtcCA9IG9zLnBhdGguam9p
bihjYWNoZSwgInB5dGVzdCIpCiAgICAgICAgICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0cmlj
dCIsICAjIHR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi12diIsICAjIHNob3cgZWFjaCBpbmRpdmlkdWFsIHN1YnRlc3QgYW5kIGZ1bGwgZmFp
bHVyZSBsb2dzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWNhcHR1cmUiLCAibm8i
LCAgIyBlbmFibGUgc3Rkb3V0L3N0ZGVyciBmcm9tIHRlc3RzCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWJhc2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmFzZXRlbXAiLCBiYXNldGVtcCwgICMgdGVt
cG9yYXJ5IGRpcmVjdG9yeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1zaG93bG9j
YWxzIiwgICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMgaW4gbG9jYWwgc2NvcGUKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOm1vemxvZyIsICAjIHVzZSB0aGUg
V1BUIHJlc3VsdCByZWNvcmRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXAiLCAi
bm86Y2FjaGVwcm92aWRlciIsICAjIGRpc2FibGUgc3RhdGUgcHJlc2VydmF0aW9uIGFjcm9zcyBp
bnZvY2F0aW9ucwpAQCAtMTQ3LDcgKzE0OCw3IEBAIGNsYXNzIFN1YnRlc3RSZXN1bHRSZWNvcmRl
cihvYmplY3QpOgogCiBjbGFzcyBUZW1wb3JhcnlEaXJlY3Rvcnkob2JqZWN0KToKICAgICBkZWYg
X19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzZWxmLnBhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKHBy
ZWZpeD0icHl0ZXN0LSIpCisgICAgICAgIHNlbGYucGF0aCA9IHRlbXBmaWxlLm1rZHRlbXAocHJl
Zml4PSJ3ZHNwZWMtIikKICAgICAgICAgcmV0dXJuIHNlbGYucGF0aAogCiAgICAgZGVmIF9fZXhp
dF9fKHNlbGYsICphcmdzKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0
ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3Ry
dW5uZXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5MWRm
MGEyM2M1OWM0ZTAyMzM2MWU1MDdkMTQ2MDRjY2I1YzFiMTguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3Ry
dW5uZXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlZjg1
MDZjMjgwMjI2YmMyNzM4ZGU1NWVjNWJlZWRkODg0NjFkYTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2FjdGlv
bnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yY2hyb21lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cmVkZ2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmludGVybmV0ZXhwbG9yZXIucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3JvcGVyYS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JzYWZhcmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cndlYmtpdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvY2Vzcy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRl
c3QuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3J1bm5lci5qcwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvdGVzdC13YWl0LmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVz
c19zZXJ2b2RyaXZlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2Vi
ZHJpdmVyX3Jlc3VtZS5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvd2luZG93LWxvYWRlZC5q
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUx
NTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0
OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9m
b3JtYXR0ZXJzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNm
ZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUz
OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICsw
LDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMg
ZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBlMDcxZjE5NjZmYjc4Y2Q4ZjQyNWRmMDNiMTUxMzI2ZDQxYmMxZmIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Zvcm1hdHRlcnMvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwx
OCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90ZXN0cy9fX2luaXRf
Xy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDk3MWFiMGIwOTZlMTViMzdmN2MxODNkMDAyOTBmMmY5YWU3NDYzMmQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1h
dHRlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9m
b3JtYXR0ZXJzL2Nocm9taXVtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0cmVwb3J0
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkK
aW5kZXggZWViNWFmMjMwMDI5OTNlZTY5ZDYyYWZmNGRhY2JhNTIyZjdkOGM5ZC4uZWZhZTI0MDZm
ZDNhOTM0NzI4ZmI0YTcxZmQ2MDJjZjlkMzE5YTEzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3N0YWJpbGl0eS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CkBAIC0yODgsNyAr
Mjg4LDExIEBAIGRlZiBydW5fc3RlcChsb2dnZXIsIGl0ZXJhdGlvbnMsIHJlc3RhcnRfYWZ0ZXJf
aXRlcmF0aW9uLCBrd2FyZ3NfZXh0cmFzLCAqKmt3YXJnCiAgICAgIyB3YXJuaW5nKyBsZXZlbCBs
b2dzIG9ubHkKICAgICBsb2dnZXIuYWRkX2hhbmRsZXIoU3RyZWFtSGFuZGxlcihsb2csIEpTT05G
b3JtYXR0ZXIoKSkpCiAKLSAgICB3cHRydW5uZXIucnVuX3Rlc3RzKCoqa3dhcmdzKQorICAgICMg
VXNlIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBvZiB0aGUgdGVzdCBzdWl0ZSB0aGF0IHdlcmUg
cnVuIHRvIHByb2Nlc3MgdGhlIHJlc3VsdHMuCisgICAgIyBpZiB0aGUgcnVucyB3ZXJlIHN0b3Bw
ZWQgdG8gYXZvaWQgaGl0dGluZyB0aGUgbWF4aW11bSBydW4gdGltZS4KKyAgICBfLCB0ZXN0X3N0
YXR1cyA9IHdwdHJ1bm5lci5ydW5fdGVzdHMoKiprd2FyZ3MpCisgICAgaXRlcmF0aW9ucyA9IHRl
c3Rfc3RhdHVzLnJlcGVhdGVkX3J1bnMKKyAgICBhbGxfc2tpcHBlZCA9IHRlc3Rfc3RhdHVzLmFs
bF9za2lwcGVkCiAKICAgICBsb2dnZXIuX3N0YXRlLmhhbmRsZXJzID0gaW5pdGlhbF9oYW5kbGVy
cwogICAgIGxvZ2dlci5fc3RhdGUucnVubmluZ190ZXN0cyA9IHNldCgpCkBAIC0yOTYsNyArMzAw
LDcgQEAgZGVmIHJ1bl9zdGVwKGxvZ2dlciwgaXRlcmF0aW9ucywgcmVzdGFydF9hZnRlcl9pdGVy
YXRpb24sIGt3YXJnc19leHRyYXMsICoqa3dhcmcKIAogICAgIGxvZy5zZWVrKDApCiAgICAgcmVz
dWx0cywgaW5jb25zaXN0ZW50LCBzbG93ID0gcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRlcmF0aW9u
cykKLSAgICByZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50LCBzbG93LCBpdGVyYXRpb25zCisg
ICAgcmV0dXJuIHJlc3VsdHMsIGluY29uc2lzdGVudCwgc2xvdywgaXRlcmF0aW9ucywgYWxsX3Nr
aXBwZWQKIAogCiBkZWYgZ2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0
YXJ0LCBrd2FyZ3NfZXh0cmFzKToKQEAgLTMxMSwxMiArMzE1LDI0IEBAIGRlZiBnZXRfc3RlcHMo
bG9nZ2VyLCByZXBlYXRfbG9vcCwgcmVwZWF0X3Jlc3RhcnQsIGt3YXJnc19leHRyYXMpOgogICAg
ICAgICBpZiByZXBlYXRfbG9vcDoKICAgICAgICAgICAgIGRlc2MgPSAiUnVubmluZyB0ZXN0cyBp
biBhIGxvb3AgJWQgdGltZXMlcyIgJSAocmVwZWF0X2xvb3AsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzX3N0cmluZykKLSAg
ICAgICAgICAgIHN0ZXBzLmFwcGVuZCgoZGVzYywgZnVuY3Rvb2xzLnBhcnRpYWwocnVuX3N0ZXAs
IGxvZ2dlciwgcmVwZWF0X2xvb3AsIEZhbHNlLCBrd2FyZ3NfZXh0cmEpKSkKKyAgICAgICAgICAg
IHN0ZXBzLmFwcGVuZCgoZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rvb2xz
LnBhcnRpYWwocnVuX3N0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwZWF0X2xvb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NfZXh0cmEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRfbG9vcCkpCiAK
ICAgICAgICAgaWYgcmVwZWF0X3Jlc3RhcnQ6CiAgICAgICAgICAgICBkZXNjID0gIlJ1bm5pbmcg
dGVzdHMgaW4gYSBsb29wIHdpdGggcmVzdGFydHMgJXMgdGltZXMlcyIgJSAocmVwZWF0X3Jlc3Rh
cnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmxhZ3Nfc3RyaW5nKQotICAgICAgICAgICAgc3RlcHMuYXBw
ZW5kKChkZXNjLCBmdW5jdG9vbHMucGFydGlhbChydW5fc3RlcCwgbG9nZ2VyLCByZXBlYXRfcmVz
dGFydCwgVHJ1ZSwga3dhcmdzX2V4dHJhKSkpCisgICAgICAgICAgICBzdGVwcy5hcHBlbmQoKGRl
c2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0b29scy5wYXJ0aWFsKHJ1bl9zdGVw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdF9yZXN0YXJ0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NfZXh0cmEpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRfcmVzdGFydCkpCiAKICAgICByZXR1cm4g
c3RlcHMKIApAQCAtMzM1LDYgKzM1MSw3IEBAIGRlZiB3cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3Rl
cF9yZXN1bHRzLCBmaW5hbF9yZXN1bHQpOgogCiAgICAgbG9nZ2VyLmluZm8oJzo6OicpCiAKKwog
ZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dnZXIsIHJlcGVhdF9sb29wPTEwLCByZXBlYXRfcmVzdGFy
dD01LCBjaGFvc19tb2RlPVRydWUsIG1heF90aW1lPU5vbmUsCiAgICAgICAgICAgICAgICAgICAg
IG91dHB1dF9yZXN1bHRzPVRydWUsICoqa3dhcmdzKToKICAgICBrd2FyZ3NfZXh0cmFzID0gW3t9
XQpAQCAtMzQ4LDcgKzM2NSw3IEBAIGRlZiBjaGVja19zdGFiaWxpdHkobG9nZ2VyLCByZXBlYXRf
bG9vcD0xMCwgcmVwZWF0X3Jlc3RhcnQ9NSwgY2hhb3NfbW9kZT1UcnVlLCBtCiAKICAgICBnaXRo
dWJfY2hlY2tzX291dHB1dHRlciA9IGdldF9naF9jaGVja3Nfb3V0cHV0dGVyKGt3YXJnc1siZ2l0
aHViX2NoZWNrc190ZXh0X2ZpbGUiXSkKIAotICAgIGZvciBkZXNjLCBzdGVwX2Z1bmMgaW4gc3Rl
cHM6CisgICAgZm9yIGRlc2MsIHN0ZXBfZnVuYywgZXhwZWN0ZWRfaXRlcmF0aW9ucyBpbiBzdGVw
czoKICAgICAgICAgaWYgbWF4X3RpbWUgYW5kIGRhdGV0aW1lLm5vdygpIC0gc3RhcnRfdGltZSA+
IG1heF90aW1lOgogICAgICAgICAgICAgbG9nZ2VyLmluZm8oIjo6OiBUZXN0IHZlcmlmaWNhdGlv
biBpcyB0YWtpbmcgdG9vIGxvbmc6IEdpdmluZyB1cCEiKQogICAgICAgICAgICAgbG9nZ2VyLmlu
Zm8oIjo6OiBTbyBmYXIsIGFsbCBjaGVja3MgcGFzc2VkLCBidXQgbm90IGFsbCBjaGVja3Mgd2Vy
ZSBydW4uIikKQEAgLTM1OCw3ICszNzUsMTUgQEAgZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dnZXIs
IHJlcGVhdF9sb29wPTEwLCByZXBlYXRfcmVzdGFydD01LCBjaGFvc19tb2RlPVRydWUsIG0KICAg
ICAgICAgbG9nZ2VyLmluZm8oJzo6OicpCiAgICAgICAgIGxvZ2dlci5pbmZvKCc6OjogUnVubmlu
ZyB0ZXN0IHZlcmlmaWNhdGlvbiBzdGVwICIlcyIuLi4nICUgZGVzYykKICAgICAgICAgbG9nZ2Vy
LmluZm8oJzo6OicpCi0gICAgICAgIHJlc3VsdHMsIGluY29uc2lzdGVudCwgc2xvdywgaXRlcmF0
aW9ucyA9IHN0ZXBfZnVuYygqKmt3YXJncykKKyAgICAgICAgcmVzdWx0cywgaW5jb25zaXN0ZW50
LCBzbG93LCBpdGVyYXRpb25zLCBhbGxfc2tpcHBlZCA9IHN0ZXBfZnVuYygqKmt3YXJncykKKwor
ICAgICAgICBpZiBpdGVyYXRpb25zIDw9IDEgYW5kIGV4cGVjdGVkX2l0ZXJhdGlvbnMgPiAxIGFu
ZCBub3QgYWxsX3NraXBwZWQ6CisgICAgICAgICAgICBzdGVwX3Jlc3VsdHMuYXBwZW5kKChkZXNj
LCAiRkFJTCIpKQorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIjo6OiBSZWFjaGVkIGl0ZXJhdGlv
biB0aW1lb3V0IGJlZm9yZSBmaW5pc2hpbmcgMiBvciBtb3JlIHJlcGVhdCBydW5zLiIpCisgICAg
ICAgICAgICBsb2dnZXIuaW5mbygiOjo6IEF0IGxlYXN0IDIgc3VjY2Vzc2Z1bCByZXBlYXQgcnVu
cyBhcmUgcmVxdWlyZWQgdG8gdmFsaWRhdGUgc3RhYmlsaXR5LiIpCisgICAgICAgICAgICB3cml0
ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiVElNRU9VVCIpCisgICAgICAgICAgICBy
ZXR1cm4gMQorCiAgICAgICAgIGlmIG91dHB1dF9yZXN1bHRzOgogICAgICAgICAgICAgd3JpdGVf
cmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0cywgaXRlcmF0aW9ucykKIApAQCAtMzc4LDYgKzQw
MywxMiBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVh
dF9yZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwgbQogICAgICAgICAgICAgd3JpdGVfc3VtbWFy
eShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgIkZBSUwiKQogICAgICAgICAgICAgcmV0dXJuIDEKIAot
ICAgICAgICBzdGVwX3Jlc3VsdHMuYXBwZW5kKChkZXNjLCAiUEFTUyIpKQorICAgICAgICAjIElm
IHRoZSB0ZXN0cyBwYXNzZWQgYnV0IHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBkaWRuJ3QgbWF0
Y2ggdGhlIG51bWJlciBleHBlY3RlZCB0byBydW4sCisgICAgICAgICMgaXQgaXMgbGlrZWx5IHRo
YXQgdGhlIHJ1bnMgd2VyZSBzdG9wcGVkIGVhcmx5IHRvIGF2b2lkIGEgdGltZW91dC4KKyAgICAg
ICAgaWYgaXRlcmF0aW9ucyAhPSBleHBlY3RlZF9pdGVyYXRpb25zOgorICAgICAgICAgICAgcmVz
dWx0ID0gZiJQQVNTICogIHtpdGVyYXRpb25zfS97ZXhwZWN0ZWRfaXRlcmF0aW9uc30gcmVwZWF0
cyBjb21wbGV0ZWQiCisgICAgICAgICAgICBzdGVwX3Jlc3VsdHMuYXBwZW5kKChkZXNjLCByZXN1
bHQpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RlcF9yZXN1bHRzLmFwcGVuZCgoZGVz
YywgIlBBU1MiKSkKIAogICAgIHdyaXRlX3N1bW1hcnkobG9nZ2VyLCBzdGVwX3Jlc3VsdHMsICJQ
QVNTIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKaW5kZXggODQyYWJmNDExZjkwY2RhMTQzOWNh
ZTFlYzczODAxMTdiNDI1YTIxNi4uZDVhNTFmNTZjZDRiNTIyYTRiNTk1Y2IxMzQwYmU4MWNiZDM0
YzVmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTE3Niw2ICsxNzYsMTQgQEAKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZV9hY3Rpb24oImRlbGV0ZV9hbGxfY29va2llcyIsIHtjb250ZXh0
fSk7CiAgICAgfTsKIAorICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5taW5pbWl6ZV93
aW5kb3cgPSBmdW5jdGlvbihjb250ZXh0PW51bGwpIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZV9h
Y3Rpb24oIm1pbmltaXplX3dpbmRvdyIsIHtjb250ZXh0fSk7CisgICAgfTsKKworICAgIHdpbmRv
dy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5zZXRfd2luZG93X3JlY3QgPSBmdW5jdGlvbihyZWN0LCBj
b250ZXh0PW51bGwpIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZV9hY3Rpb24oInNldF93aW5kb3df
cmVjdCIsIHtyZWN0LCBjb250ZXh0fSk7CisgICAgfTsKKwogICAgIHdpbmRvdy50ZXN0X2RyaXZl
cl9pbnRlcm5hbC5zZW5kX2tleXMgPSBmdW5jdGlvbihlbGVtZW50LCBrZXlzKSB7CiAgICAgICAg
IGNvbnN0IHNlbGVjdG9yID0gZ2V0X3NlbGVjdG9yKGVsZW1lbnQpOwogICAgICAgICBjb25zdCBj
b250ZXh0ID0gZ2V0X2NvbnRleHQoZWxlbWVudCk7CkBAIC0yMzYsNCArMjQ0LDggQEAKICAgICB3
aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3VzZXJfdmVyaWZpZWQgPSBmdW5jdGlvbihh
dXRoZW50aWNhdG9yX2lkLCB1diwgY29udGV4dD1udWxsKSB7CiAgICAgICAgIHJldHVybiBjcmVh
dGVfYWN0aW9uKCJzZXRfdXNlcl92ZXJpZmllZCIsIHthdXRoZW50aWNhdG9yX2lkLCB1diwgY29u
dGV4dH0pOwogICAgIH07CisKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3Nw
Y190cmFuc2FjdGlvbl9tb2RlID0gZnVuY3Rpb24obW9kZSwgY29udGV4dCA9IG51bGwpIHsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZV9hY3Rpb24oInNldF9zcGNfdHJhbnNhY3Rpb25fbW9kZSIsIHtt
b2RlLCBjb250ZXh0fSk7CisgICAgfTsKIH0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHJ1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IGUwODE5N2Qz
ZjA5NWU4ZTA3YzczZGQyOTI1MzFiOGExMWIxYmY2NDIuLjBkYWM3N2M0YjU1MzMwNTJmN2ZhMjUx
MWIyNTk4YzI1YjAxMGVhMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CkBAIC0xNTcsMTUgKzE1Nyw2IEBAIGRl
ZiBzdGFydF9ydW5uZXIocnVubmVyX2NvbW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUs
CiAgICAgICAgICAgICBoYW5kbGVfZXJyb3IoZSkKIAogCi1tYW5hZ2VyX2NvdW50ID0gMAotCi0K
LWRlZiBuZXh0X21hbmFnZXJfbnVtYmVyKCk6Ci0gICAgZ2xvYmFsIG1hbmFnZXJfY291bnQKLSAg
ICBsb2NhbCA9IG1hbmFnZXJfY291bnQgPSBtYW5hZ2VyX2NvdW50ICsgMQotICAgIHJldHVybiBs
b2NhbAotCi0KIGNsYXNzIEJyb3dzZXJNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgYnJvd3NlciwgY29tbWFuZF9xdWV1ZSwgbm9fdGltZW91dD1GYWxzZSk6
CiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCkBAIC0yMDcsNyArMTk4LDcgQEAgY2xhc3Mg
QnJvd3Nlck1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBzZWxmLmluaXRfdGltZXIu
c3RhcnQoKQogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIGJyb3dzZXIg
d2l0aCBzZXR0aW5ncyAlciIgJSBzZWxmLmJyb3dzZXJfc2V0dGluZ3MpCiAgICAgICAgICAgICBz
ZWxmLmJyb3dzZXIuc3RhcnQoZ3JvdXBfbWV0YWRhdGE9Z3JvdXBfbWV0YWRhdGEsICoqc2VsZi5i
cm93c2VyX3NldHRpbmdzKQotICAgICAgICAgICAgc2VsZi5icm93c2VyX3BpZCA9IHNlbGYuYnJv
d3Nlci5waWQoKQorICAgICAgICAgICAgc2VsZi5icm93c2VyX3BpZCA9IHNlbGYuYnJvd3Nlci5w
aWQKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndh
cm5pbmcoIkZhaWx1cmUgZHVyaW5nIGluaXQgJXMiICUgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkK
ICAgICAgICAgICAgIGlmIHNlbGYuaW5pdF90aW1lciBpcyBub3QgTm9uZToKQEAgLTI2NCwxMCAr
MjU1LDEwIEBAIFJ1bm5lck1hbmFnZXJTdGF0ZSA9IF9SdW5uZXJNYW5hZ2VyU3RhdGUoKQogCiAK
IGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBzdWl0ZV9uYW1lLCB0ZXN0X3F1ZXVlLCB0ZXN0X3NvdXJjZV9jbHMsIGJyb3dz
ZXJfY2xzLCBicm93c2VyX2t3YXJncywKLSAgICAgICAgICAgICAgICAgZXhlY3V0b3JfY2xzLCBl
eGVjdXRvcl9rd2FyZ3MsIHN0b3BfZmxhZywgcmVydW49MSwgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxz
ZSwKLSAgICAgICAgICAgICAgICAgcGF1c2Vfb25fdW5leHBlY3RlZD1GYWxzZSwgcmVzdGFydF9v
bl91bmV4cGVjdGVkPVRydWUsIGRlYnVnX2luZm89Tm9uZSwKLSAgICAgICAgICAgICAgICAgY2Fw
dHVyZV9zdGRpbz1UcnVlLCByZWNvcmRpbmc9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHN1aXRlX25hbWUsIGluZGV4LCB0ZXN0X3R5cGUsIHRlc3RfcXVldWUsIHRlc3Rfc291cmNlX2Ns
cywgYnJvd3Nlcl9jbHMsCisgICAgICAgICAgICAgICAgIGJyb3dzZXJfa3dhcmdzLCBleGVjdXRv
cl9jbHMsIGV4ZWN1dG9yX2t3YXJncywgc3RvcF9mbGFnLCByZXJ1bj0xLAorICAgICAgICAgICAg
ICAgICBwYXVzZV9hZnRlcl90ZXN0PUZhbHNlLCBwYXVzZV9vbl91bmV4cGVjdGVkPUZhbHNlLCBy
ZXN0YXJ0X29uX3VuZXhwZWN0ZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1O
b25lLCBjYXB0dXJlX3N0ZGlvPVRydWUsIHJlY29yZGluZz1Ob25lKToKICAgICAgICAgIiIiVGhy
ZWFkIHRoYXQgb3ducyBhIHNpbmdsZSBUZXN0UnVubmVyIHByb2Nlc3MgYW5kIGFueSBwcm9jZXNz
ZXMgcmVxdWlyZWQKICAgICAgICAgYnkgdGhlIFRlc3RSdW5uZXIgKGUuZy4gdGhlIEZpcmVmb3gg
YmluYXJ5KS4KIApAQCAtMjg3LDggKzI3OCwxNCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0
aHJlYWRpbmcuVGhyZWFkKToKIAogICAgICAgICBzZWxmLnRlc3Rfc291cmNlID0gdGVzdF9zb3Vy
Y2VfY2xzKHRlc3RfcXVldWUpCiAKKyAgICAgICAgc2VsZi5tYW5hZ2VyX251bWJlciA9IGluZGV4
CisgICAgICAgIHNlbGYudGVzdF90eXBlID0gdGVzdF90eXBlCiAgICAgICAgIHNlbGYuYnJvd3Nl
cl9jbHMgPSBicm93c2VyX2NscwotICAgICAgICBzZWxmLmJyb3dzZXJfa3dhcmdzID0gYnJvd3Nl
cl9rd2FyZ3MKKyAgICAgICAgc2VsZi5icm93c2VyX2t3YXJncyA9IGJyb3dzZXJfa3dhcmdzLmNv
cHkoKQorICAgICAgICBpZiBzZWxmLmJyb3dzZXJfa3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIp
OgorICAgICAgICAgICAgIyBBc3NpZ24gQW5kcm9pZCBkZXZpY2UgdG8gcnVubmVyIGFjY29yZGlu
ZyB0byBjdXJyZW50IG1hbmFnZXIgaW5kZXgKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlcl9rd2Fy
Z3NbImRldmljZV9zZXJpYWwiXSA9ICgKKyAgICAgICAgICAgICAgICBzZWxmLmJyb3dzZXJfa3dh
cmdzWyJkZXZpY2Vfc2VyaWFsIl1baW5kZXhdKQogCiAgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xz
ID0gZXhlY3V0b3JfY2xzCiAgICAgICAgIHNlbGYuZXhlY3V0b3Jfa3dhcmdzID0gZXhlY3V0b3Jf
a3dhcmdzCkBAIC0zMDYsNyArMzAzLDYgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFk
aW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYucmVzdGFydF9vbl91bmV4cGVjdGVkID0gcmVzdGFy
dF9vbl91bmV4cGVjdGVkCiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KIAot
ICAgICAgICBzZWxmLm1hbmFnZXJfbnVtYmVyID0gbmV4dF9tYW5hZ2VyX251bWJlcigpCiAgICAg
ICAgIGFzc2VydCByZWNvcmRpbmcgaXMgbm90IE5vbmUKICAgICAgICAgc2VsZi5yZWNvcmRpbmcg
PSByZWNvcmRpbmcKIApAQCAtMzE1LDcgKzMxMSw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2Vy
KHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9IE5v
bmUKIAotICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9IlRlc3RS
dW5uZXJNYW5hZ2VyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisgICAgICAgIHRocmVhZGlu
Zy5UaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0iVGVzdFJ1bm5lck1hbmFnZXItJXMtJWkiICUg
KHRlc3RfdHlwZSwgaW5kZXgpKQogICAgICAgICAjIFRoaXMgaXMgc3RhcnRlZCBpbiB0aGUgYWN0
dWFsIG5ldyB0aHJlYWQKICAgICAgICAgc2VsZi5sb2dnZXIgPSBOb25lCiAKQEAgLTUxMCw3ICs1
MDYsOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAg
ICAgbXAgPSBtcGNvbnRleHQuZ2V0X2NvbnRleHQoKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVy
X3Byb2MgPSBtcC5Qcm9jZXNzKHRhcmdldD1zdGFydF9ydW5uZXIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5h
Z2VyX251bWJlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lPSJUZXN0UnVubmVyLSVzLSVpIiAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X3R5cGUsIHNlbGYubWFuYWdlcl9udW1iZXIpKQog
ICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muc3RhcnQoKQogICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiVGVzdCBydW5uZXIgc3RhcnRlZCIpCiAgICAgICAgICMgTm93IHdlIHdhaXQgZm9y
IGVpdGhlciBhbiBpbml0X3N1Y2NlZWRlZCBldmVudCBvciBhbiBpbml0X2ZhaWxlZCBldmVudApA
QCAtODk0LDggKzg5MSwxMCBAQCBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKIAogICAgICAg
ICB0ZXN0X3F1ZXVlID0gbWFrZV90ZXN0X3F1ZXVlKHR5cGVfdGVzdHMsIHNlbGYudGVzdF9zb3Vy
Y2VfY2xzLCAqKnNlbGYudGVzdF9zb3VyY2Vfa3dhcmdzKQogCi0gICAgICAgIGZvciBfIGluIHJh
bmdlKHNlbGYuc2l6ZSk6CisgICAgICAgIGZvciBpZHggaW4gcmFuZ2Uoc2VsZi5zaXplKToKICAg
ICAgICAgICAgIG1hbmFnZXIgPSBUZXN0UnVubmVyTWFuYWdlcihzZWxmLnN1aXRlX25hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3F1ZXVlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9zb3VyY2VfY2xzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnJvd3Nlcl9jbHMsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvYnJvd3NlcnMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAx
YzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5pdF9fLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDU1Njk4NzczMTI3Y2RkZjViYzZiNjRjMWUzMzE2NDMyOWJkMjgwODQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jy
b3dzZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJv
d3NlcnMvdGVzdF93ZWJraXRndGsucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X3dwdHRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CmluZGV4
IDU5YWE2MzZhOTAzNzNjMWM4OTUyMmI5NzU2YjNmMmNjNTkyN2U2YjIuLmY4NzYxYmJjMWUwNGU4
OWZiMDdmYWYwMzIxYWRkNWI1MTY2NGVjOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3dwdHRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5w
eQpAQCAtMTE4LDYgKzExOCwxNiBAQCBkZWYgbWFrZV90ZXN0X29iamVjdCh0ZXN0X25hbWUsCiAg
ICAgcmV0dXJuIHdwdHRlc3QuZnJvbV9tYW5pZmVzdCh0ZXN0cywgdGVzdCwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YS5nZXRfdGVzdCh0ZXN0LmlkKSkKIAogCitkZWYgdGVzdF9ydW5f
aW5mbygpOgorICAgIHJ1bl9pbmZvID0gd3B0dGVzdC5nZXRfcnVuX2luZm8oIi8iLCAiZmFrZS1w
cm9kdWN0IiwgZGVidWc9RmFsc2UpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocnVuX2luZm9bImJp
dHMiXSwgaW50KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJ1bl9pbmZvWyJvcyJdLCBzdHIpCisg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UocnVuX2luZm9bIm9zX3ZlcnNpb24iXSwgc3RyKQorICAgIGFz
c2VydCBpc2luc3RhbmNlKHJ1bl9pbmZvWyJwcm9jZXNzb3IiXSwgc3RyKQorICAgIGFzc2VydCBp
c2luc3RhbmNlKHJ1bl9pbmZvWyJwcm9kdWN0Il0sIHN0cikKKyAgICBhc3NlcnQgaXNpbnN0YW5j
ZShydW5faW5mb1sicHl0aG9uX3ZlcnNpb24iXSwgaW50KQorCisKIGRlZiB0ZXN0X21ldGFkYXRh
X2luaGVyaXQoKToKICAgICBpdGVtcyA9IFsoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEv
YiIsIDEwKSwgKCJ0ZXN0IiwgImMiLCAxMCldCiAgICAgaW5oZXJpdF9tZXRhZGF0YSA9IFsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVl
MjdjNGQzMGJjZDAzNTU1Y2Y1NzcwYTM4NjZhOGI3MzVlYjJjMy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYmFzZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cy90ZXN0X2V4ZWN1dG9ycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X2V4cGVjdGVkdHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9tYW5pZmVzdGV4cGVjdGVkLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFi
aWxpdHkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0
dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci91cGRhdGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIwOWEzOWFhMDlhZjU5OTc1MDQ2OGVlM2Q0YzcyOTgwMTkyOWI1MjYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRl
L2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3VwZGF0ZS9zdGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvdHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2NGZjODVlMzViZDUxOTBj
YzdjN2U5MjQ1OWM0YWFlOTk1NDdjNGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsNDUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL19faW5pdF9fLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2NvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leHBlY3RlZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZm9udC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9pbnN0cnVtZW50cy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0
YS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tcGNvbnRleHQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJpbnRfcmVm
dGVzdF9ydW5uZXIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9zdGFiaWxpdHkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0ZHJpdmVyLXZlbmRvci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc19y
dW5uZXIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0aGFybmVzc3JlcG9ydC5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RydW5uZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdmNzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRy
aXZlcl9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTY1ZTNkNGU0M2JlMmFlZjUzYTBmNDFiNGE1NDg4NjEw
ZjczZDhiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1MSAr
MCwwIEBACi1pbXBvcnQgYWJjCi1pbXBvcnQgZXJybm8KLWltcG9ydCBvcwotaW1wb3J0IHBsYXRm
b3JtCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgdGltZQotaW1wb3J0IHRyYWNlYmFjawotZnJvbSB0
eXBpbmcgaW1wb3J0IENsYXNzVmFyLCBUeXBlCi0KLWltcG9ydCBtb3pwcm9jZXNzCi0KLWZyb20g
LmJyb3dzZXJzLmJhc2UgaW1wb3J0IE91dHB1dEhhbmRsZXIKLQotCi1fX2FsbF9fID0gWyJTZWxl
bml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIiLCAiQ1dUQ2hyb21lRHJpdmVyU2VydmVy
IiwKLSAgICAgICAgICAgIkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlciIsICJPcGVyYURyaXZlclNl
cnZlciIsCi0gICAgICAgICAgICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyIiwgIkVkZ2VE
cml2ZXJTZXJ2ZXIiLAotICAgICAgICAgICAiU2Vydm9Ecml2ZXJTZXJ2ZXIiLCAiV2ViS2l0RHJp
dmVyU2VydmVyIiwgIldlYkRyaXZlclNlcnZlciJdCi0KLQotY2xhc3MgV2ViRHJpdmVyU2VydmVy
KG9iamVjdCk6Ci0gICAgX19tZXRhY2xhc3NfXyA9IGFiYy5BQkNNZXRhCi0KLSAgICBkZWZhdWx0
X2Jhc2VfcGF0aCA9ICIvIgotICAgIG91dHB1dF9oYW5kbGVyX2NscyA9IE91dHB1dEhhbmRsZXIg
ICMgdHlwZTogQ2xhc3NWYXJbVHlwZVtPdXRwdXRIYW5kbGVyXV0KLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD1Ob25lLAotICAg
ICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAg
ICBpZiBiaW5hcnkgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIldlYkRy
aXZlciBzZXJ2ZXIgYmluYXJ5IG11c3QgYmUgZ2l2ZW4gIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidG8gLS13ZWJkcml2ZXItYmluYXJ5IGFyZ3VtZW50IikKLQotICAgICAgICBzZWxm
LmxvZ2dlciA9IGxvZ2dlcgotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQotICAgICAgICBz
ZWxmLmhvc3QgPSBob3N0Ci0KLSAgICAgICAgaWYgYmFzZV9wYXRoID09ICIiOgotICAgICAgICAg
ICAgc2VsZi5iYXNlX3BhdGggPSBzZWxmLmRlZmF1bHRfYmFzZV9wYXRoCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IGJhc2VfcGF0aAotICAgICAgICBzZWxmLmVu
diA9IG9zLmVudmlyb24uY29weSgpIGlmIGVudiBpcyBOb25lIGVsc2UgZW52Ci0KLSAgICAgICAg
c2VsZi5fb3V0cHV0X2hhbmRsZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Ci0g
ICAgICAgIHNlbGYuX2NtZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MgaWYgYXJn
cyBpcyBub3QgTm9uZSBlbHNlIFtdCi0gICAgICAgIHNlbGYuX3Byb2MgPSBOb25lCi0KLSAgICBA
YWJjLmFic3RyYWN0bWV0aG9kCi0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKLSAgICAgICAg
IiIiUmV0dXJucyB0aGUgZnVsbCBjb21tYW5kIGZvciBzdGFydGluZyB0aGUgc2VydmVyIHByb2Nl
c3MgYXMgYSBsaXN0LiIiIgotCi0gICAgZGVmIHN0YXJ0KHNlbGYsCi0gICAgICAgICAgICAgIGJs
b2NrPUZhbHNlLAotICAgICAgICAgICAgICBvdXRwdXRfaGFuZGxlcl9rd2FyZ3M9Tm9uZSwKLSAg
ICAgICAgICAgICAgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzPU5vbmUpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBzZWxmLl9ydW4oYmxvY2ssIG91dHB1dF9oYW5kbGVyX2t3YXJncywg
b3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRl
cnJ1cHQ6Ci0gICAgICAgICAgICBzZWxmLnN0b3AoKQotCi0gICAgZGVmIF9ydW4oc2VsZiwgYmxv
Y2ssIG91dHB1dF9oYW5kbGVyX2t3YXJncywgb3V0cHV0X2hhbmRsZXJfc3RhcnRfa3dhcmdzKToK
LSAgICAgICAgaWYgb3V0cHV0X2hhbmRsZXJfa3dhcmdzIGlzIE5vbmU6Ci0gICAgICAgICAgICBv
dXRwdXRfaGFuZGxlcl9rd2FyZ3MgPSB7fQotICAgICAgICBpZiBvdXRwdXRfaGFuZGxlcl9zdGFy
dF9rd2FyZ3MgaXMgTm9uZToKLSAgICAgICAgICAgIG91dHB1dF9oYW5kbGVyX3N0YXJ0X2t3YXJn
cyA9IHt9Ci0gICAgICAgIHNlbGYuX2NtZCA9IHNlbGYubWFrZV9jb21tYW5kKCkKLSAgICAgICAg
c2VsZi5fb3V0cHV0X2hhbmRsZXIgPSBzZWxmLm91dHB1dF9oYW5kbGVyX2NscyhzZWxmLmxvZ2dl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9jbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKipvdXRwdXRfaGFuZGxlcl9rd2FyZ3MpCi0gICAgICAgIHNlbGYuX3Byb2Mg
PSBtb3pwcm9jZXNzLlByb2Nlc3NIYW5kbGVyKAotICAgICAgICAgICAgc2VsZi5fY21kLAotICAg
ICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9c2VsZi5fb3V0cHV0X2hhbmRsZXIsCi0gICAgICAg
ICAgICBlbnY9c2VsZi5lbnYsCi0gICAgICAgICAgICBzdG9yZU91dHB1dD1GYWxzZSkKLQotICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgV2ViRHJpdmVyOiAlcyIgJSAnICcuam9p
bihzZWxmLl9jbWQpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9wcm9jLnJ1bigp
Ci0gICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmVycm5vID09
IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKAotICAgICAgICAg
ICAgICAgICAgICAiV2ViRHJpdmVyIGV4ZWN1dGFibGUgbm90IGZvdW5kOiAlcyIgJSBzZWxmLmJp
bmFyeSkKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIHNlbGYuX291dHB1dF9oYW5kbGVyLmFm
dGVyX3Byb2Nlc3Nfc3RhcnQoc2VsZi5fcHJvYy5waWQpCi0KLSAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoCi0gICAgICAgICAgICAiV2FpdGluZyBmb3IgV2ViRHJpdmVyIHRvIGJlY29tZSBhY2Nl
c3NpYmxlOiAlcyIgJSBzZWxmLnVybCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2FpdF9m
b3Jfc2VydmljZSgoc2VsZi5ob3N0LCBzZWxmLnBvcnQpKQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoCi0gICAgICAgICAgICAgICAgIldl
YkRyaXZlciB3YXMgbm90IGFjY2Vzc2libGUgIgotICAgICAgICAgICAgICAgICJ3aXRoaW4gdGhl
IHRpbWVvdXQ6XG4lcyIgJSB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAgICAgICAgcmFp
c2UKLSAgICAgICAgc2VsZi5fb3V0cHV0X2hhbmRsZXIuc3RhcnQoKipvdXRwdXRfaGFuZGxlcl9z
dGFydF9rd2FyZ3MpCi0gICAgICAgIGlmIGJsb2NrOgotICAgICAgICAgICAgc2VsZi5fcHJvYy53
YWl0KCkKLQotICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKLSAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIlN0b3BwaW5nIFdlYkRyaXZlciIpCi0gICAgICAgIGNsZWFuID0gVHJ1ZQot
ICAgICAgICBpZiBzZWxmLmlzX2FsaXZlKCk6Ci0gICAgICAgICAgICBraWxsX3Jlc3VsdCA9IHNl
bGYuX3Byb2Mua2lsbCgpCi0gICAgICAgICAgICBpZiBmb3JjZSBhbmQga2lsbF9yZXN1bHQgIT0g
MDoKLSAgICAgICAgICAgICAgICBjbGVhbiA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5f
cHJvYy5raWxsKDkpCi0gICAgICAgIHN1Y2Nlc3MgPSBub3Qgc2VsZi5pc19hbGl2ZSgpCi0gICAg
ICAgIGlmIHN1Y2Nlc3MgYW5kIHNlbGYuX291dHB1dF9oYW5kbGVyIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgIyBPbmx5IHRyeSB0byBkbyBvdXRwdXQgcG9zdC1wcm9jZXNzaW5nIGlmIHdlIG1h
bmFnZWQgdG8gc2h1dCBkb3duCi0gICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlci5hZnRl
cl9wcm9jZXNzX3N0b3AoY2xlYW4pCi0gICAgICAgICAgICBzZWxmLl9vdXRwdXRfaGFuZGxlciA9
IE5vbmUKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3MKLQotICAgIGRlZiBpc19hbGl2ZShzZWxmKToK
LSAgICAgICAgcmV0dXJuIGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBhbmQgc2VsZi5fcHJv
Yy5wb2xsKCkgaXMgTm9uZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHBpZChzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5fcHJvYyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9wcm9jLnBpZAotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHVybChzZWxmKToKLSAgICAgICAg
cmV0dXJuICJodHRwOi8vJXM6JWklcyIgJSAoc2VsZi5ob3N0LCBzZWxmLnBvcnQsIHNlbGYuYmFz
ZV9wYXRoKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHBvcnQoc2VsZik6Ci0gICAgICAgIGlm
IHNlbGYuX3BvcnQgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3BvcnQgPSBnZXRfZnJlZV9w
b3J0KCkKLSAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQKLQotCi1jbGFzcyBTZWxlbml1bVNlcnZl
cihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi93ZC9odWIiCi0K
LSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gWyJqYXZhIiwgIi1q
YXIiLCBzZWxmLmJpbmFyeSwgIi1wb3J0Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncwot
Ci0KLWNsYXNzIENocm9tZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBt
YWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCi0gICAgICAg
ICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQpKSwKLSAgICAgICAgICAgICAg
ICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKSBpZiBzZWxmLmJhc2VfcGF0aCBl
bHNlICIiLAotICAgICAgICAgICAgICAgIGNtZF9hcmcoImVuYWJsZS1jaHJvbWUtbG9ncyIpXSAr
IHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2Vy
dmVyKToKLSAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gW3NlbGYu
YmluYXJ5LAotICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsg
c2VsZi5fYXJncwotCi0KLWNsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihXZWJEcml2ZXJT
ZXJ2ZXIpOgotICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBbc2Vs
Zi5iaW5hcnksCi0gICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQp
KSwKLSAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKSBp
ZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBFZGdlRHJp
dmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToK
LSAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAgICAiLS1wb3J0PSVz
IiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBPcGVyYURyaXZlclNl
cnZlcihDaHJvbWVEcml2ZXJTZXJ2ZXIpOgotICAgIHBhc3MKLQotY2xhc3MgSW50ZXJuZXRFeHBs
b3JlckRyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBtYWtlX2NvbW1hbmQo
c2VsZik6Ci0gICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCi0gICAgICAgICAgICAgICAgIi0t
cG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCi0KLQotY2xhc3MgU2FmYXJp
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6Ci0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKLSAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAgICAiLS1wb3J0
PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKLQotCi1jbGFzcyBTZXJ2b0RyaXZl
clNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IGJpbmFyeT0ic2Vydm8iLCBiaW5hcnlfYXJncz1Ob25lLCBob3N0PSIxMjcuMC4wLjEiLAotICAg
ICAgICAgICAgICAgICBwb3J0PU5vbmUsIGVudj1Ob25lLCBhcmdzPU5vbmUpOgotICAgICAgICBl
bnYgPSBlbnYgaWYgZW52IGlzIG5vdCBOb25lIGVsc2Ugb3MuZW52aXJvbi5jb3B5KCkKLSAgICAg
ICAgZW52WyJSVVNUX0JBQ0tUUkFDRSJdID0gIjEiCi0gICAgICAgIFdlYkRyaXZlclNlcnZlci5f
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhvc3Q9aG9zdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9
cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MpCi0gICAgICAgIHNlbGYuYmluYXJ5
X2FyZ3MgPSBiaW5hcnlfYXJncwotCi0gICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKLSAgICAg
ICAgY29tbWFuZCA9IFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAiLS13ZWJkcml2
ZXI9JXMiICUgc2VsZi5wb3J0LAotICAgICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsCi0g
ICAgICAgICAgICAgICAgICAgIi0taGVhZGxlc3MiXSArIHNlbGYuX2FyZ3MKLSAgICAgICAgaWYg
c2VsZi5iaW5hcnlfYXJnczoKLSAgICAgICAgICAgIGNvbW1hbmQgKz0gc2VsZi5iaW5hcnlfYXJn
cwotICAgICAgICByZXR1cm4gY29tbWFuZAotCi0KLWNsYXNzIFdlYktpdERyaXZlclNlcnZlcihX
ZWJEcml2ZXJTZXJ2ZXIpOgotICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBbc2VsZi5iaW5hcnksICItLXBvcnQ9JXMiICUgc3RyKHNlbGYucG9ydCldICsgc2VsZi5f
YXJncwotCi0KLWRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgotICAgIHByZWZpeCA9ICIt
IiBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIgZWxzZSAiLS0iCi0gICAgcnYgPSBw
cmVmaXggKyBuYW1lCi0gICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJ2ICs9ICI9
IiArIHZhbHVlCi0gICAgcmV0dXJuIHJ2Ci0KLQotZGVmIGdldF9mcmVlX3BvcnQoKToKLSAgICAi
IiJHZXQgYSByYW5kb20gdW5ib3VuZCBwb3J0IiIiCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAg
cyA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzLmJpbmQoKCIx
MjcuMC4wLjEiLCAwKSkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICBjb250
aW51ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHMuZ2V0c29ja25hbWUoKVsx
XQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgcy5jbG9zZSgpCi0KLQotZGVmIHdhaXRf
Zm9yX3NlcnZpY2UoYWRkciwgdGltZW91dD02MCk6Ci0gICAgIiIiV2FpdHMgdW50aWwgbmV0d29y
ayBzZXJ2aWNlIGdpdmVuIGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKLSAgICBh
dmFpbGFibGUgb3IgdGhlIGB0aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBw
b2ludAotICAgIGBgc29ja2V0LnRpbWVvdXRgYCBpcyByYWlzZWQuIiIiCi0gICAgZW5kID0gdGlt
ZS50aW1lKCkgKyB0aW1lb3V0Ci0gICAgd2hpbGUgZW5kID4gdGltZS50aW1lKCk6Ci0gICAgICAg
IHNvID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNvLmNvbm5l
Y3QoYWRkcikKLSAgICAgICAgZXhjZXB0IHNvY2tldC50aW1lb3V0OgotICAgICAgICAgICAgcGFz
cwotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyAh
PSBlcnJuby5FQ09OTlJFRlVTRUQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAg
ICBzby5jbG9zZSgpCi0gICAgICAgIHRpbWUuc2xlZXAoMC41KQotICAgIHJhaXNlIHNvY2tldC50
aW1lb3V0KCJTZXJ2aWNlIGlzIHVuYXZhaWxhYmxlOiAlczolaSIgJSBhZGRyKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1h
bmRsaW5lLnB5CmluZGV4IDhjOWQ0NjQ3NmJmOGIxMzA3NGY3YzVlOWJjMjAxZDZkZDZhODRkYzMu
LmNlNTBiM2U3MDU5M2M0NWRlZjAzZWExYmJiYzE4YTU5NzE2MDc1ZmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFu
ZGxpbmUucHkKQEAgLTExNiw2ICsxMTYsMTAgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyBmb3IgdGhl
IGpvYiB0byBydW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9bGFtYmRhIHg6
IHRpbWVkZWx0YShtaW51dGVzPWZsb2F0KHgpKSkKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS1yZXBlYXQtbWF4LXRpbWUiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PTEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJUaGUgbWF4aW11bSBudW1iZXIgb2YgbWludXRlcyBmb3IgdGhlIHRlc3Qgc3VpdGUgdG8gYXR0
ZW1wdCByZXBlYXQgcnVucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQp
CiAgICAgb3V0cHV0X3Jlc3VsdHNfZ3JvdXAgPSBtb2RlX2dyb3VwLmFkZF9tdXR1YWxseV9leGNs
dXNpdmVfZ3JvdXAoKQogICAgIG91dHB1dF9yZXN1bHRzX2dyb3VwLmFkZF9hcmd1bWVudCgiLS12
ZXJpZnktbm8tb3V0cHV0LXJlc3VsdHMiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0idmVyaWZ5X291dHB1dF9yZXN1bHRz
IiwKQEAgLTE5MSw2ICsxOTUsMTYgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIGRl
YnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRyb3AgaW50byBwZGIgb24g
cHl0aG9uIGV4Y2VwdGlvbiIpCiAKKyAgICBhbmRyb2lkX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1
bWVudF9ncm91cCgiQW5kcm9pZCBzcGVjaWZpYyBhcmd1bWVudHMiKQorICAgIGFuZHJvaWRfZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLWFkYi1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gYWRiIGJpbmFyeSB0byB1c2UiKQorICAgIGFu
ZHJvaWRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBhY2thZ2UtbmFtZSIsIGFjdGlvbj0ic3RvcmUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQW5kcm9pZCBwYWNrYWdlIG5hbWUgdG8g
cnVuIHRlc3RzIGFnYWluc3QiKQorICAgIGFuZHJvaWRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWtl
ZXAtYXBwLWRhdGEtZGlyZWN0b3J5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IkRvbid0IGRlbGV0ZSB0aGUgYXBwIGRhdGEgZGlyZWN0b3J5IikK
KyAgICBhbmRyb2lkX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1kZXZpY2Utc2VyaWFsIiwgYWN0aW9u
PSJhcHBlbmQiLCBkZWZhdWx0PVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVu
bmluZyBBbmRyb2lkIGluc3RhbmNlcyB0byBjb25uZWN0IHRvLCBpZiBub3QgZW11bGF0b3ItNTU1
NCIpCisKICAgICBjb25maWdfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJDb25m
aWd1cmF0aW9uIikKICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWJpbmFyeSIsIGFj
dGlvbj0ic3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1hYnNfcGF0
aCwgaGVscD0iRGVza3RvcCBiaW5hcnkgdG8gcnVuIHRlc3RzIGFnYWluc3QiKQpAQCAtMjAyLDEy
ICsyMTYsNiBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgY29uZmlnX2dyb3VwLmFk
ZF9hcmd1bWVudCgnLS13ZWJkcml2ZXItYXJnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0id2ViZHJpdmVyX2FyZ3MiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRXh0cmEgYXJndW1lbnQgZm9yIHRo
ZSBXZWJEcml2ZXIgYmluYXJ5IikKLSAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWFk
Yi1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlBhdGggdG8gYWRiIGJpbmFyeSB0byB1c2UiKQotICAgIGNvbmZpZ19ncm91cC5hZGRf
YXJndW1lbnQoIi0tcGFja2FnZS1uYW1lIiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJBbmRyb2lkIHBhY2thZ2UgbmFtZSB0byBydW4gdGVzdHMg
YWdhaW5zdCIpCi0gICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1kZXZpY2Utc2VyaWFs
IiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJS
dW5uaW5nIEFuZHJvaWQgaW5zdGFuY2UgdG8gY29ubmVjdCB0bywgaWYgbm90IGVtdWxhdG9yLTU1
NTQiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tbWV0YWRhdGEiLCBhY3Rpb249
InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwgZGVzdD0ibWV0YWRhdGFfcm9vdCIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHJvb3QgZGlyZWN0b3J5IGNvbnRhaW5p
bmcgdGVzdCBtZXRhZGF0YSIpLAogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tdGVz
dHMiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwgZGVzdD0idGVzdHNfcm9vdCIsCkBA
IC01NDQsNiArNTUyLDE4IEBAIGRlZiBjaGVja19hcmdzKGt3YXJncyk6CiAgICAgICAgICAgICBw
cmludCgiLS10ZXN0LWdyb3VwcyBmaWxlICVzIG5vdCBmb3VuZCIgJSBrd2FyZ3NbInRlc3RfZ3Jv
dXBzX2ZpbGUiXSkKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKKyAgICAjIFdoZW4gcnVubmlu
ZyBvbiBBbmRyb2lkLCB0aGUgbnVtYmVyIG9mIHdvcmtlcnMgaXMgZGVjaWRlZCBieSB0aGUgbnVt
YmVyIG9mCisgICAgIyBlbXVsYXRvcnMuIEVhY2ggd29ya2VyIHdpbGwgdXNlIG9uZSBlbXVsYXRv
ciB0byBydW4gdGhlIEFuZHJvaWQgYnJvd3Nlci4KKyAgICBpZiBrd2FyZ3NbImRldmljZV9zZXJp
YWwiXToKKyAgICAgICAgaWYga3dhcmdzWyJwcm9jZXNzZXMiXSBpcyBOb25lOgorICAgICAgICAg
ICAga3dhcmdzWyJwcm9jZXNzZXMiXSA9IGxlbihrd2FyZ3NbImRldmljZV9zZXJpYWwiXSkKKyAg
ICAgICAgZWxpZiBsZW4oa3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0pICE9IGt3YXJnc1sicHJvY2Vz
c2VzIl06CisgICAgICAgICAgICBwcmludCgiLS1wcm9jZXNzZXMgZG9lcyBub3QgbWF0Y2ggbnVt
YmVyIG9mIGRldmljZXMiKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgZWxpZiBs
ZW4oc2V0KGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdKSkgIT0gbGVuKGt3YXJnc1siZGV2aWNlX3Nl
cmlhbCJdKToKKyAgICAgICAgICAgIHByaW50KCJHb3QgZHVwbGljYXRlIC0tZGV2aWNlLXNlcmlh
bCB2YWx1ZSIpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCiAgICAgaWYga3dhcmdzWyJwcm9j
ZXNzZXMiXSBpcyBOb25lOgogICAgICAgICBrd2FyZ3NbInByb2Nlc3NlcyJdID0gMQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIy
OWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L2JhY2tlbmRzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNr
ZW5kcy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
YmFja2VuZHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2Vu
ZHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkMjBmYWUw
MjMyOGNlMGQ4ODdmMjMyYzUyY2RlNjdjMWY1ZDBkY2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvYmFja2VuZHMvY29uZGl0aW9uYWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFj
a2VuZHMvc3RhdGljLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvX19pbml0X18u
cHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUy
OWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
dGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkYzdm
MmZmMGExMjJiZmExYjc3NzAzMzE5ZGZjZTNlZjUzYjQxMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3Rz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9uYWwucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
dGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3Rz
L3Rlc3Rfc3RhdGljLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9r
ZW5pemVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1M2UzZGQ1ZDA5YzQwYjYyYzNjMTQwNWIwNTk4NWI0N2Rm
MGMwNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvcGFyc2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
cnVubmVyLnB5CmluZGV4IDc2ZWYzZGJjOTkwMWNhYjQ4NzRjNzVlMmIwNjQzMWMzMzdjY2YxMzEu
LjQyMDMxY2U5YWQ3ZjZlNTE0ZjhkYzhjODkwNjk4MjJhM2E4MTc4ZWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRydW5uZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQpA
QCAtMSw2ICsxLDcgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKK2Zyb20g
ZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKIAogaW1wb3J0IHdwdHNlcnZlCiBm
cm9tIHdwdHNlcnZlIGltcG9ydCBzc2x1dGlscwpAQCAtMTUwLDYgKzE1MSwxMzQgQEAgZGVmIGdl
dF9wYXVzZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIGt3
YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdCiAKIAorZGVmIHJ1bl90ZXN0X2l0ZXJhdGlvbih0ZXN0
X3N0YXR1cywgdGVzdF9sb2FkZXIsIHRlc3Rfc291cmNlX2t3YXJncywgdGVzdF9zb3VyY2VfY2xz
LCBydW5faW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkaW5nLCB0ZXN0X2Vudmly
b25tZW50LCBwcm9kdWN0LCBydW5fdGVzdF9rd2FyZ3MpOgorICAgICIiIlJ1bnMgdGhlIGVudGly
ZSB0ZXN0IHN1aXRlLgorICAgIFRoaXMgaXMgY2FsbGVkIGZvciBlYWNoIHJlcGVhdCBydW4gcmVx
dWVzdGVkLiIiIgorICAgIHRlc3RzID0gW10KKyAgICBmb3IgdGVzdF90eXBlIGluIHRlc3RfbG9h
ZGVyLnRlc3RfdHlwZXM6CisgICAgICAgIHRlc3RzLmV4dGVuZCh0ZXN0X2xvYWRlci50ZXN0c1t0
ZXN0X3R5cGVdKQorCisgICAgdHJ5OgorICAgICAgICB0ZXN0X2dyb3VwcyA9IHRlc3Rfc291cmNl
X2Nscy50ZXN0c19ieV9ncm91cCgKKyAgICAgICAgICAgIHRlc3RzLCAqKnRlc3Rfc291cmNlX2t3
YXJncykKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkxv
YWRpbmcgdGVzdHMgZmFpbGVkIikKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBsb2dnZXIu
c3VpdGVfc3RhcnQodGVzdF9ncm91cHMsCisgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3dl
Yi1wbGF0Zm9ybS10ZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89cnVuX2lu
Zm8sCisgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhPXsicnVuX2J5X2RpciI6IHJ1bl90ZXN0
X2t3YXJnc1sicnVuX2J5X2RpciJdfSkKKyAgICBmb3IgdGVzdF90eXBlIGluIHJ1bl90ZXN0X2t3
YXJnc1sidGVzdF90eXBlcyJdOgorICAgICAgICBsb2dnZXIuaW5mbyhmIlJ1bm5pbmcge3Rlc3Rf
dHlwZX0gdGVzdHMiKQorCisgICAgICAgIGJyb3dzZXJfY2xzID0gcHJvZHVjdC5nZXRfYnJvd3Nl
cl9jbHModGVzdF90eXBlKQorCisgICAgICAgIGJyb3dzZXJfa3dhcmdzID0gcHJvZHVjdC5nZXRf
YnJvd3Nlcl9rd2FyZ3MobG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9dGVzdF9lbnZpcm9ubWVudC5j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbnVtX3Rlc3RfZ3JvdXBzPWxlbih0ZXN0X2dyb3VwcyksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipydW5fdGVzdF9rd2FyZ3MpCisKKyAg
ICAgICAgZXhlY3V0b3JfY2xzID0gcHJvZHVjdC5leGVjdXRvcl9jbGFzc2VzLmdldCh0ZXN0X3R5
cGUpCisgICAgICAgIGV4ZWN1dG9yX2t3YXJncyA9IHByb2R1Y3QuZ2V0X2V4ZWN1dG9yX2t3YXJn
cyhsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnJ1bl90ZXN0X2t3YXJn
cykKKworICAgICAgICBpZiBleGVjdXRvcl9jbHMgaXMgTm9uZToKKyAgICAgICAgICAgIGxvZ2dl
ci5lcnJvcihmIlVuc3VwcG9ydGVkIHRlc3QgdHlwZSB7dGVzdF90eXBlfSBmb3IgcHJvZHVjdCB7
cHJvZHVjdC5uYW1lfSIpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGZvciB0ZXN0
IGluIHRlc3RfbG9hZGVyLmRpc2FibGVkX3Rlc3RzW3Rlc3RfdHlwZV06CisgICAgICAgICAgICBs
b2dnZXIudGVzdF9zdGFydCh0ZXN0LmlkKQorICAgICAgICAgICAgbG9nZ2VyLnRlc3RfZW5kKHRl
c3QuaWQsIHN0YXR1cz0iU0tJUCIpCisgICAgICAgICAgICB0ZXN0X3N0YXR1cy5za2lwcGVkICs9
IDEKKworICAgICAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgICAg
IHJ1bl90ZXN0cyA9IHsidGVzdGhhcm5lc3MiOiBbXX0KKyAgICAgICAgICAgIGZvciB0ZXN0IGlu
IHRlc3RfbG9hZGVyLnRlc3RzWyJ0ZXN0aGFybmVzcyJdOgorICAgICAgICAgICAgICAgIGlmICgo
dGVzdC50ZXN0ZHJpdmVyIGFuZCBub3QgZXhlY3V0b3JfY2xzLnN1cHBvcnRzX3Rlc3Rkcml2ZXIp
IG9yCisgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC5qc3NoZWxsIGFuZCBub3QgZXhlY3V0
b3JfY2xzLnN1cHBvcnRzX2pzc2hlbGwpKToKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRl
c3Rfc3RhcnQodGVzdC5pZCkKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRlc3RfZW5kKHRl
c3QuaWQsIHN0YXR1cz0iU0tJUCIpCisgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3RhdHVzLnNr
aXBwZWQgKz0gMQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJ1
bl90ZXN0c1sidGVzdGhhcm5lc3MiXS5hcHBlbmQodGVzdCkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJ1bl90ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3RzCisKKyAgICAgICAgcmVjb3JkaW5n
LnBhdXNlKCkKKyAgICAgICAgd2l0aCBNYW5hZ2VyR3JvdXAoIndlYi1wbGF0Zm9ybS10ZXN0cyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0X2t3YXJnc1sicHJvY2Vzc2VzIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc291cmNlX2NscywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9zb3VyY2Vfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBicm93c2VyX2NscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2Fy
Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5fdGVzdF9rd2FyZ3NbInJlcnVuIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl90ZXN0X2t3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5fdGVzdF9rd2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuX3Rlc3Rfa3dhcmdzWyJyZXN0YXJ0X29uX3VuZXhwZWN0ZWQiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3Rfa3dhcmdzWyJkZWJ1Z19pbmZvIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBydW5fdGVzdF9rd2FyZ3NbIm5vX2NhcHR1
cmVfc3RkaW8iXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkaW5nPXJlY29yZGlu
ZykgYXMgbWFuYWdlcl9ncm91cDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBt
YW5hZ2VyX2dyb3VwLnJ1bih0ZXN0X3R5cGUsIHJ1bl90ZXN0cykKKyAgICAgICAgICAgIGV4Y2Vw
dCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIk1h
aW4gdGhyZWFkIGdvdCBzaWduYWwiKQorICAgICAgICAgICAgICAgIG1hbmFnZXJfZ3JvdXAuc3Rv
cCgpCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHRlc3Rfc3RhdHVzLnRvdGFs
X3Rlc3RzICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCisgICAgICAgICAgICB0ZXN0X3N0
YXR1cy51bmV4cGVjdGVkICs9IG1hbmFnZXJfZ3JvdXAudW5leHBlY3RlZF9jb3VudCgpCisgICAg
ICAgICAgICB0ZXN0X3N0YXR1cy51bmV4cGVjdGVkX3Bhc3MgKz0gbWFuYWdlcl9ncm91cC51bmV4
cGVjdGVkX3Bhc3NfY291bnQoKQorCisgICAgcmV0dXJuIFRydWUKKworCitkZWYgZXZhbHVhdGVf
cnVucyh0ZXN0X3N0YXR1cywgcnVuX3Rlc3Rfa3dhcmdzKToKKyAgICAiIiJFdmFsdWF0ZXMgdGhl
IHRlc3QgY291bnRzIGFmdGVyIHRoZSBnaXZlbiBudW1iZXIgb2YgcmVwZWF0IHJ1bnMgaGFzIGZp
bmlzaGVkIiIiCisgICAgaWYgdGVzdF9zdGF0dXMudG90YWxfdGVzdHMgPT0gMDoKKyAgICAgICAg
aWYgdGVzdF9zdGF0dXMuc2tpcHBlZCA+IDA6CisgICAgICAgICAgICBsb2dnZXIud2FybmluZygi
QWxsIHJlcXVlc3RlZCB0ZXN0cyB3ZXJlIHNraXBwZWQiKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgaWYgcnVuX3Rlc3Rfa3dhcmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXToKKyAgICAgICAgICAg
ICAgICBsb2dnZXIuaW5mbygiTm8gdGVzdHMgcmFuIikKKyAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwo
Ik5vIHRlc3RzIHJhbiIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBpZiB0
ZXN0X3N0YXR1cy51bmV4cGVjdGVkIGFuZCBub3QgcnVuX3Rlc3Rfa3dhcmdzWyJmYWlsX29uX3Vu
ZXhwZWN0ZWQiXToKKyAgICAgICAgbG9nZ2VyLmluZm8oZiJUb2xlcmF0aW5nIHt0ZXN0X3N0YXR1
cy51bmV4cGVjdGVkfSB1bmV4cGVjdGVkIHJlc3VsdHMiKQorICAgICAgICByZXR1cm4gVHJ1ZQor
CisgICAgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHRlc3Rfc3RhdHVzLnVuZXhwZWN0ZWQgYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3RhdHVzLnVuZXhwZWN0ZWQgPT0g
dGVzdF9zdGF0dXMudW5leHBlY3RlZF9wYXNzKQorICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3Nl
ZCBhbmQgbm90IHJ1bl90ZXN0X2t3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkX3Bhc3MiXToKKyAg
ICAgICAgbG9nZ2VyLmluZm8oZiJUb2xlcmF0aW5nIHt0ZXN0X3N0YXR1cy51bmV4cGVjdGVkX3Bh
c3N9IHVuZXhwZWN0ZWQgcmVzdWx0cyAiCisgICAgICAgICAgICAgICAgICAgICJiZWNhdXNlIHRo
ZXkgYWxsIFBBU1MiKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgcmV0dXJuIHRlc3Rfc3Rh
dHVzLnVuZXhwZWN0ZWQgPT0gMAorCisKK2NsYXNzIFRlc3RTdGF0dXM6CisgICAgIiIiQ2xhc3Mg
dGhhdCBzdG9yZXMgaW5mb3JtYXRpb24gb24gdGhlIHJlc3VsdHMgb2YgdGVzdCBydW5zIGZvciBs
YXRlciByZWZlcmVuY2UiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYu
dG90YWxfdGVzdHMgPSAwCisgICAgICAgIHNlbGYuc2tpcHBlZCA9IDAKKyAgICAgICAgc2VsZi51
bmV4cGVjdGVkID0gMAorICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfcGFzcyA9IDAKKyAgICAgICAg
c2VsZi5yZXBlYXRlZF9ydW5zID0gMAorICAgICAgICBzZWxmLmV4cGVjdGVkX3JlcGVhdGVkX3J1
bnMgPSAwCisgICAgICAgIHNlbGYuYWxsX3NraXBwZWQgPSBGYWxzZQorCisKIGRlZiBydW5fdGVz
dHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgIiIiU2V0IHVw
IHRoZSB0ZXN0IGVudmlyb25tZW50LCBsb2FkIHRoZSBsaXN0IG9mIHRlc3RzIHRvIGJlIGV4ZWN1
dGVkLCBhbmQKICAgICBpbnZva2UgdGhlIHJlbWFpbmRlciBvZiB0aGUgY29kZSB0byBleGVjdXRl
IHRlc3RzIiIiCkBAIC0xOTYsMTcgKzMyNSwxNiBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVz
dF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgIGxvZ2dlci5pbmZvKCJVc2lu
ZyAlaSBjbGllbnQgcHJvY2Vzc2VzIiAlIGt3YXJnc1sicHJvY2Vzc2VzIl0pCiAKLSAgICAgICAg
c2tpcHBlZF90ZXN0cyA9IDAKLSAgICAgICAgdGVzdF90b3RhbCA9IDAKLSAgICAgICAgdW5leHBl
Y3RlZF90b3RhbCA9IDAKLSAgICAgICAgdW5leHBlY3RlZF9wYXNzX3RvdGFsID0gMAorICAgICAg
ICB0ZXN0X3N0YXR1cyA9IFRlc3RTdGF0dXMoKQorICAgICAgICByZXBlYXQgPSBrd2FyZ3NbInJl
cGVhdCJdCisgICAgICAgIHRlc3Rfc3RhdHVzLmV4cGVjdGVkX3JlcGVhdCA9IHJlcGVhdAogCiAg
ICAgICAgIGlmIGxlbih0ZXN0X2xvYWRlci50ZXN0X2lkcykgPT0gMCBhbmQga3dhcmdzWyJ0ZXN0
X2xpc3QiXToKICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiVW5hYmxlIHRvIGZpbmQgYW55
IHRlc3RzIGF0IHRoZSBwYXRoKHMpOiIpCiAgICAgICAgICAgICBmb3IgcGF0aCBpbiBrd2FyZ3Nb
InRlc3RfbGlzdCJdOgogICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiICAlcyIgJSBw
YXRoKQogICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJQbGVhc2UgY2hlY2sgc3BlbGxpbmcg
YW5kIG1ha2Ugc3VyZSB0aGVyZSBhcmUgdGVzdHMgaW4gdGhlIHNwZWNpZmllZCBwYXRoKHMpLiIp
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgdGVz
dF9zdGF0dXMKICAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBnZXRfcGF1c2Vf
YWZ0ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpCiAKICAgICAgICAgc3NsX2NvbmZpZyA9
IHsidHlwZSI6IGt3YXJnc1sic3NsX3R5cGUiXSwKQEAgLTIzNSwxNDMgKzM2Myw2NiBAQCBkZWYg
cnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAg
ICAgICAgcmVjb3JkaW5nLnNldChbInN0YXJ0dXAiLCAiZW5zdXJlX2Vudmlyb25tZW50Il0pCiAg
ICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnN1cmVf
c3RhcnRlZCgpCisgICAgICAgICAgICAgICAgc3RhcnRfdGltZSA9IGRhdGV0aW1lLm5vdygpCiAg
ICAgICAgICAgICBleGNlcHQgZW52LlRlc3RFbnZpcm9ubWVudEVycm9yIGFzIGU6CiAgICAgICAg
ICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJFcnJvciBzdGFydGluZyB0ZXN0IGVudmlyb25tZW50
OiAlcyIgJSBlKQogICAgICAgICAgICAgICAgIHJhaXNlCiAKICAgICAgICAgICAgIHJlY29yZGlu
Zy5zZXQoWyJzdGFydHVwIl0pCiAKLSAgICAgICAgICAgIHJlcGVhdCA9IGt3YXJnc1sicmVwZWF0
Il0KLSAgICAgICAgICAgIHJlcGVhdF9jb3VudCA9IDAKKyAgICAgICAgICAgIG1heF90aW1lID0g
Tm9uZQorICAgICAgICAgICAgaWYgInJlcGVhdF9tYXhfdGltZSIgaW4ga3dhcmdzOgorICAgICAg
ICAgICAgICAgIG1heF90aW1lID0gdGltZWRlbHRhKG1pbnV0ZXM9a3dhcmdzWyJyZXBlYXRfbWF4
X3RpbWUiXSkKKwogICAgICAgICAgICAgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQgPSBrd2FyZ3Nb
InJlcGVhdF91bnRpbF91bmV4cGVjdGVkIl0KIAotICAgICAgICAgICAgd2hpbGUgcmVwZWF0X2Nv
dW50IDwgcmVwZWF0IG9yIHJlcGVhdF91bnRpbF91bmV4cGVjdGVkOgotICAgICAgICAgICAgICAg
IHJlcGVhdF9jb3VudCArPSAxCisgICAgICAgICAgICAjIGtlZXAgdHJhY2sgb2YgbG9uZ2VzdCB0
aW1lIHRha2VuIHRvIGNvbXBsZXRlIGEgdGVzdCBzdWl0ZSBpdGVyYXRpb24KKyAgICAgICAgICAg
ICMgc28gdGhhdCB0aGUgcnVucyBjYW4gYmUgc3RvcHBlZCB0byBhdm9pZCBhIHBvc3NpYmxlIFRD
IHRpbWVvdXQuCisgICAgICAgICAgICBsb25nZXN0X2l0ZXJhdGlvbl90aW1lID0gdGltZWRlbHRh
KCkKKworICAgICAgICAgICAgd2hpbGUgdGVzdF9zdGF0dXMucmVwZWF0ZWRfcnVucyA8IHJlcGVh
dCBvciByZXBlYXRfdW50aWxfdW5leHBlY3RlZDoKKyAgICAgICAgICAgICAgICAjIGlmIHRoZSBu
ZXh0IHJlcGVhdCBydW4gY291bGQgY2F1c2UgdGhlIFRDIHRpbWVvdXQgdG8gYmUgcmVhY2hlZCwK
KyAgICAgICAgICAgICAgICAjIHN0b3Agbm93IGFuZCB1c2UgdGhlIHRlc3QgcmVzdWx0cyB3ZSBo
YXZlLgorICAgICAgICAgICAgICAgICMgUGFkIHRoZSB0b3RhbCB0aW1lIGJ5IDEwJSB0byBlbnN1
cmUgYW1wbGUgdGltZSBmb3IgdGhlIG5leHQgaXRlcmF0aW9uKHMpLgorICAgICAgICAgICAgICAg
IGVzdGltYXRlID0gKGRhdGV0aW1lLm5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lZGVsdGEoc2Vjb25kcz0obG9uZ2VzdF9pdGVyYXRpb25fdGltZS50b3RhbF9zZWNvbmRz
KCkgKiAxLjEpKSkKKyAgICAgICAgICAgICAgICBpZiBub3QgcmVwZWF0X3VudGlsX3VuZXhwZWN0
ZWQgYW5kIG1heF90aW1lIGFuZCBlc3RpbWF0ZSA+PSBzdGFydF90aW1lICsgbWF4X3RpbWU6Cisg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGYiUmFuIHt0ZXN0X3N0YXR1cy5yZXBlYXRl
ZF9ydW5zfSBvZiB7cmVwZWF0fSBpdGVyYXRpb25zLiIpCisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisKKyAgICAgICAgICAgICAgICAjIGJlZ2luIHRyYWNraW5nIHJ1bnRpbWUgb2YgdGhlIHRl
c3Qgc3VpdGUKKyAgICAgICAgICAgICAgICBpdGVyYXRpb25fc3RhcnQgPSBkYXRldGltZS5ub3co
KQorICAgICAgICAgICAgICAgIHRlc3Rfc3RhdHVzLnJlcGVhdGVkX3J1bnMgKz0gMQogICAgICAg
ICAgICAgICAgIGlmIHJlcGVhdF91bnRpbF91bmV4cGVjdGVkOgotICAgICAgICAgICAgICAgICAg
ICBsb2dnZXIuaW5mbygiUmVwZXRpdGlvbiAlaSIgJSAocmVwZWF0X2NvdW50KSkKKyAgICAgICAg
ICAgICAgICAgICAgbG9nZ2VyLmluZm8oZiJSZXBldGl0aW9uIHt0ZXN0X3N0YXR1cy5yZXBlYXRl
ZF9ydW5zfSIpCiAgICAgICAgICAgICAgICAgZWxpZiByZXBlYXQgPiAxOgotICAgICAgICAgICAg
ICAgICAgICBsb2dnZXIuaW5mbygiUmVwZXRpdGlvbiAlaSAvICVpIiAlIChyZXBlYXRfY291bnQs
IHJlcGVhdCkpCi0KLSAgICAgICAgICAgICAgICB0ZXN0X2NvdW50ID0gMAotICAgICAgICAgICAg
ICAgIHVuZXhwZWN0ZWRfY291bnQgPSAwCi0gICAgICAgICAgICAgICAgdW5leHBlY3RlZF9wYXNz
X2NvdW50ID0gMAotCi0gICAgICAgICAgICAgICAgdGVzdHMgPSBbXQotICAgICAgICAgICAgICAg
IGZvciB0ZXN0X3R5cGUgaW4gdGVzdF9sb2FkZXIudGVzdF90eXBlczoKLSAgICAgICAgICAgICAg
ICAgICAgdGVzdHMuZXh0ZW5kKHRlc3RfbG9hZGVyLnRlc3RzW3Rlc3RfdHlwZV0pCi0KLSAgICAg
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RfZ3JvdXBzID0gdGVzdF9z
b3VyY2VfY2xzLnRlc3RzX2J5X2dyb3VwKHRlc3RzLCAqKnRlc3Rfc291cmNlX2t3YXJncykKLSAg
ICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICBsb2dn
ZXIuY3JpdGljYWwoIkxvYWRpbmcgdGVzdHMgZmFpbGVkIikKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLSAgICAgICAgICAgICAgICBsb2dnZXIuc3VpdGVfc3RhcnQodGVzdF9n
cm91cHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3dlYi1wbGF0
Zm9ybS10ZXN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89
cnVuX2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhPXsicnVu
X2J5X2RpciI6IGt3YXJnc1sicnVuX2J5X2RpciJdfSkKLSAgICAgICAgICAgICAgICBmb3IgdGVz
dF90eXBlIGluIGt3YXJnc1sidGVzdF90eXBlcyJdOgotICAgICAgICAgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiUnVubmluZyAlcyB0ZXN0cyIgJSB0ZXN0X3R5cGUpCi0KLSAgICAgICAgICAgICAg
ICAgICAgYnJvd3Nlcl9jbHMgPSBwcm9kdWN0LmdldF9icm93c2VyX2Nscyh0ZXN0X3R5cGUpCi0K
LSAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9icm93c2Vy
X2t3YXJncyhsb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZz10ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdGVzdF9ncm91
cHM9bGVuKHRlc3RfZ3JvdXBzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKLQotICAgICAgICAgICAgICAg
ICAgICBleGVjdXRvcl9jbHMgPSBwcm9kdWN0LmV4ZWN1dG9yX2NsYXNzZXMuZ2V0KHRlc3RfdHlw
ZSkKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzID0gcHJvZHVjdC5nZXRfZXhl
Y3V0b3Jfa3dhcmdzKGxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
ZW52aXJvbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQotCi0g
ICAgICAgICAgICAgICAgICAgIGlmIGV4ZWN1dG9yX2NscyBpcyBOb25lOgotICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJVbnN1cHBvcnRlZCB0ZXN0IHR5cGUgJXMgZm9yIHBy
b2R1Y3QgJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdF90
eXBlLCBwcm9kdWN0Lm5hbWUpKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQot
ICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0
c1t0ZXN0X3R5cGVdOgotICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhcnQo
dGVzdC5pZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0Lmlk
LCBzdGF0dXM9IlNLSVAiKQotICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZF90ZXN0cyAr
PSAxCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBydW5fdGVzdHMgPSB7InRlc3RoYXJuZXNzIjogW119
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0c1si
dGVzdGhhcm5lc3MiXToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRlc3QudGVz
dGRyaXZlciBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyKSBvcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC5qc3NoZWxsIGFuZCBub3QgZXhlY3V0
b3JfY2xzLnN1cHBvcnRzX2pzc2hlbGwpKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nZ2VyLnRlc3RfZW5kKHRlc3QuaWQsIHN0YXR1cz0iU0tJUCIpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfdGVzdHMgKz0gMQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90
ZXN0c1sidGVzdGhhcm5lc3MiXS5hcHBlbmQodGVzdCkKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl90ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3Rz
Ci0KLSAgICAgICAgICAgICAgICAgICAgcmVjb3JkaW5nLnBhdXNlKCkKLSAgICAgICAgICAgICAg
ICAgICAgd2l0aCBNYW5hZ2VyR3JvdXAoIndlYi1wbGF0Zm9ybS10ZXN0cyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicHJvY2Vzc2VzIl0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc291cmNlX2NscywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zb3VyY2Vfa3dhcmdzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInJlcnVuIl0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQi
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJyZXN0YXJ0
X29uX3VuZXhwZWN0ZWQiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a3dhcmdzWyJkZWJ1Z19pbmZvIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVjb3JkaW5nPXJlY29yZGluZykgYXMgbWFuYWdlcl9ncm91cDoK
LSAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYW5hZ2VyX2dyb3VwLnJ1bih0ZXN0X3R5cGUsIHJ1bl90ZXN0cykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsb2dnZXIuY3JpdGljYWwoIk1haW4gdGhyZWFkIGdvdCBzaWduYWwiKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXJfZ3JvdXAuc3RvcCgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY291bnQg
Kz0gbWFuYWdlcl9ncm91cC50ZXN0X2NvdW50KCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHVu
ZXhwZWN0ZWRfY291bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2NvdW50KCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfcGFzc19jb3VudCArPSBtYW5hZ2VyX2dyb3Vw
LnVuZXhwZWN0ZWRfcGFzc19jb3VudCgpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZv
KGYiUmVwZXRpdGlvbiB7dGVzdF9zdGF0dXMucmVwZWF0ZWRfcnVuc30gLyB7cmVwZWF0fSIpCisK
KyAgICAgICAgICAgICAgICBpdGVyX3N1Y2Nlc3MgPSBydW5fdGVzdF9pdGVyYXRpb24odGVzdF9z
dGF0dXMsIHRlc3RfbG9hZGVyLCB0ZXN0X3NvdXJjZV9rd2FyZ3MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc291cmNlX2NscywgcnVuX2lu
Zm8sIHJlY29yZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9lbnZpcm9ubWVudCwgcHJvZHVjdCwga3dhcmdzKQorICAgICAgICAgICAg
ICAgICMgaWYgdGhlcmUgd2VyZSBpc3N1ZXMgd2l0aCB0aGUgc3VpdGUgcnVuKHRlc3RzIG5vdCBs
b2FkZWQsIGV0Yy4pIHJldHVybgorICAgICAgICAgICAgICAgIGlmIG5vdCBpdGVyX3N1Y2Nlc3M6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgdGVzdF9zdGF0dXMKICAgICAgICAg
ICAgICAgICByZWNvcmRpbmcuc2V0KFsiYWZ0ZXItZW5kIl0pCi0gICAgICAgICAgICAgICAgdGVz
dF90b3RhbCArPSB0ZXN0X2NvdW50Ci0gICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3RhbCAr
PSB1bmV4cGVjdGVkX2NvdW50Ci0gICAgICAgICAgICAgICAgdW5leHBlY3RlZF9wYXNzX3RvdGFs
ICs9IHVuZXhwZWN0ZWRfcGFzc19jb3VudAotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJH
b3QgJWkgdW5leHBlY3RlZCByZXN1bHRzLCB3aXRoICVpIHVuZXhwZWN0ZWQgcGFzc2VzIiAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuZXhwZWN0ZWRfY291bnQsIHVuZXhwZWN0ZWRf
cGFzc19jb3VudCkpCisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oZiJHb3Qge3Rlc3Rfc3Rh
dHVzLnVuZXhwZWN0ZWR9IHVuZXhwZWN0ZWQgcmVzdWx0cywgIgorICAgICAgICAgICAgICAgICAg
ICBmIndpdGgge3Rlc3Rfc3RhdHVzLnVuZXhwZWN0ZWRfcGFzc30gdW5leHBlY3RlZCBwYXNzZXMi
KQogICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQotICAgICAgICAgICAgICAgIGlm
IHJlcGVhdF91bnRpbF91bmV4cGVjdGVkIGFuZCB1bmV4cGVjdGVkX3RvdGFsID4gMDoKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBpZiByZXBlYXRfY291bnQgPT0g
MSBhbmQgbGVuKHRlc3RfbG9hZGVyLnRlc3RfaWRzKSA9PSBza2lwcGVkX3Rlc3RzOgotICAgICAg
ICAgICAgICAgICAgICBicmVhawotCi0gICAgaWYgdGVzdF90b3RhbCA9PSAwOgotICAgICAgICBp
ZiBza2lwcGVkX3Rlc3RzID4gMDoKLSAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJBbGwgcmVx
dWVzdGVkIHRlc3RzIHdlcmUgc2tpcHBlZCIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBp
ZiBrd2FyZ3NbImRlZmF1bHRfZXhjbHVkZSJdOgotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCJObyB0ZXN0cyByYW4iKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiTm8gdGVzdHMgcmFuIikK
LSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGlmIHVuZXhwZWN0ZWRfdG90YWwg
YW5kIG5vdCBrd2FyZ3NbImZhaWxfb25fdW5leHBlY3RlZCJdOgotICAgICAgICBsb2dnZXIuaW5m
bygiVG9sZXJhdGluZyAlcyB1bmV4cGVjdGVkIHJlc3VsdHMiICUgdW5leHBlY3RlZF90b3RhbCkK
LSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgICAgICAjIE5vdGUgdGhpcyBpdGVyYXRp
b24ncyBydW50aW1lCisgICAgICAgICAgICAgICAgaXRlcmF0aW9uX3J1bnRpbWUgPSBkYXRldGlt
ZS5ub3coKSAtIGl0ZXJhdGlvbl9zdGFydAorICAgICAgICAgICAgICAgICMgZGV0ZXJtaW5lIHRo
ZSBsb25nZXN0IHRlc3Qgc3VpdGUgcnVudGltZSBzZWVuLgorICAgICAgICAgICAgICAgIGxvbmdl
c3RfaXRlcmF0aW9uX3RpbWUgPSBtYXgobG9uZ2VzdF9pdGVyYXRpb25fdGltZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbl9ydW50aW1lKQog
Ci0gICAgYWxsX3VuZXhwZWN0ZWRfcGFzc2VkID0gKHVuZXhwZWN0ZWRfdG90YWwgYW5kCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPT0gdW5leHBlY3RlZF9w
YXNzX3RvdGFsKQotICAgIGlmIGFsbF91bmV4cGVjdGVkX3Bhc3NlZCBhbmQgbm90IGt3YXJnc1si
ZmFpbF9vbl91bmV4cGVjdGVkX3Bhc3MiXToKLSAgICAgICAgbG9nZ2VyLmluZm8oIlRvbGVyYXRp
bmcgJWkgdW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgdGhleSBhbGwgUEFTUyIgJQotICAgICAg
ICAgICAgICAgICAgICB1bmV4cGVjdGVkX3Bhc3NfdG90YWwpCi0gICAgICAgIHJldHVybiBUcnVl
CisgICAgICAgICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQgYW5kIHRlc3Rfc3Rh
dHVzLnVuZXhwZWN0ZWQgPiAwOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg
ICAgICAgIGlmIHRlc3Rfc3RhdHVzLnJlcGVhdGVkX3J1bnMgPT0gMSBhbmQgbGVuKHRlc3RfbG9h
ZGVyLnRlc3RfaWRzKSA9PSB0ZXN0X3N0YXR1cy5za2lwcGVkOgorICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3N0YXR1cy5hbGxfc2tpcHBlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWsKIAotICAgIHJldHVybiB1bmV4cGVjdGVkX3RvdGFsID09IDAKKyAgICAjIFJldHVybiB0aGUg
ZXZhbHVhdGlvbiBvZiB0aGUgcnVucyBhbmQgdGhlIG51bWJlciBvZiByZXBlYXRlZCBpdGVyYXRp
b25zIHRoYXQgd2VyZSBydW4uCisgICAgcmV0dXJuIGV2YWx1YXRlX3J1bnModGVzdF9zdGF0dXMs
IGt3YXJncyksIHRlc3Rfc3RhdHVzCiAKIAogZGVmIGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncyk6
CkBAIC00MTEsNyArNDYyLDcgQEAgZGVmIHN0YXJ0KCoqa3dhcmdzKToKICAgICAgICAgZWxpZiBr
d2FyZ3NbInZlcmlmeSJdIG9yIGt3YXJnc1sic3RhYmlsaXR5Il06CiAgICAgICAgICAgICBydiA9
IGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncykgb3IgbG9nZ2VkX2NyaXRpY2FsLmhhc19sb2cKICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJ2ID0gbm90IHJ1bl90ZXN0cygqKmt3YXJncykgb3Ig
bG9nZ2VkX2NyaXRpY2FsLmhhc19sb2cKKyAgICAgICAgICAgIHJ2ID0gbm90IHJ1bl90ZXN0cygq
Kmt3YXJncylbMF0gb3IgbG9nZ2VkX2NyaXRpY2FsLmhhc19sb2cKICAgICBmaW5hbGx5OgogICAg
ICAgICBsb2dnZXIucmVtb3ZlX2hhbmRsZXIoaGFuZGxlcikKICAgICByZXR1cm4gcnYKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkK
aW5kZXggMDYzZDYyMjdiZjY3MWE0ZjY2Nzc5NWQ2MDg2NTg3N2E3NDE4ODY1MS4uNzUyNzM5YjRl
NDNiNjc2NDZkMTRkZWE4OGNhZWU5NTQwYzQ4ODkxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdHRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKQEAgLTEyMCw4ICsxMjAs
OSBAQCBjbGFzcyBSdW5JbmZvKERpY3Rbc3RyLCBBbnldKToKICAgICAgICAgICAgIHNlbGZbIndh
c20iXSA9IEZhbHNlCiAgICAgICAgIGlmIGV4dHJhcyBpcyBub3QgTm9uZToKICAgICAgICAgICAg
IHNlbGYudXBkYXRlKGV4dHJhcykKKyAgICAgICAgaWYgImhlYWRsZXNzIiBub3QgaW4gc2VsZjoK
KyAgICAgICAgICAgIHNlbGZbImhlYWRsZXNzIl0gPSBGYWxzZQogCi0gICAgICAgIHNlbGZbImhl
YWRsZXNzIl0gPSBleHRyYXMuZ2V0KCJoZWFkbGVzcyIsIEZhbHNlKQogICAgICAgICBzZWxmWyJ3
ZWJyZW5kZXIiXSA9IGVuYWJsZV93ZWJyZW5kZXIKIAogICAgIGRlZiBfdXBkYXRlX21vemluZm8o
c2VsZiwgbWV0YWRhdGFfcm9vdCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlLy5jb3ZlcmFnZXJjIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS8uY292
ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZTAwYzA3OWY2NGNiZDllMzJlMDE4ZDAxYTEyMGEwODI3Yjc5
MDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS8uY292ZXJhZ2VyYwpAQCAtMCwwICsxLDExIEBACitb
cnVuXQorYnJhbmNoID0gVHJ1ZQorcGFyYWxsZWwgPSBUcnVlCitvbWl0ID0KKyAgKi9zaXRlLXBh
Y2thZ2VzLyoKKyAgKi9saWJfcHlweS8qCisKK1twYXRoc10KK3dwdHNlcnZlID0KKyAgd3B0c2Vy
dmUKKyAgLnRveC8qKi9zaXRlLXBhY2thZ2VzL3dwdHNlcnZlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlLy5naXRp
Z25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4N2QzODg0ODhiYmMyMWM2NjQyMDlm
ZWNkMmYzZTAzMDQxMWIwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvLmdpdGlnbm9yZQpAQCAtMCww
ICsxLDQwIEBACisqLnB5W2NvZF0KKyp+CitcIyoKKworZG9jcy9fYnVpbGQvCisKKyMgQyBleHRl
bnNpb25zCisqLnNvCisKKyMgUGFja2FnZXMKKyouZWdnCisqLmVnZy1pbmZvCitkaXN0CitidWls
ZAorZWdncworcGFydHMKK2JpbgordmFyCitzZGlzdAorZGV2ZWxvcC1lZ2dzCisuaW5zdGFsbGVk
LmNmZworbGliCitsaWI2NAorCisjIEluc3RhbGxlciBsb2dzCitwaXAtbG9nLnR4dAorCisjIFVu
aXQgdGVzdCAvIGNvdmVyYWdlIHJlcG9ydHMKKy5jb3ZlcmFnZQorLnRveAorbm9zZXRlc3RzLnht
bAordGVzdHMvZnVuY3Rpb25hbC9odG1sLyoKKworIyBUcmFuc2xhdGlvbnMKKyoubW8KKworIyBN
ciBEZXZlbG9wZXIKKy5tci5kZXZlbG9wZXIuY2ZnCisucHJvamVjdAorLnB5ZGV2cHJvamVjdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDE2YzczMmNhYmY5YjdlZmEwNGNmYjI4
NmQzZTNlNWIzY2RkYTIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvZG9jcy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL2hh
bmRsZXJzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvZG9jcy9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaW50cm9kdWN0aW9uLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvZG9jcy9tYWtlLmJhdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVxdWVzdC5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL2RvY3MvcmVzcG9uc2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JvdXRlci5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVy
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvZG9jcy9zdGFzaC5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4
Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5
YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvX19pbml0
X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAK
LSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0
b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29ya2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSAr
MCwwIEBACi08IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYzI4MzMyYTQ1N2ViZDBm
MzQyNzYyMTY5ZjcxOThjOGQ2NmFlODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2V4YW1wbGVfbW9kdWxlLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2ZpbGUudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
c3ViZGlyL3N1Yl9wYXRoLnN1Yi50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMzE2ZjQzMTU4ZTJiNWEx
MWI0NGJlYzM0ODE4NDQyMTgzMzZlM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L2RvY3VtZW50LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuaHRtbAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuc2VydmljZXdvcmtlci5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5zaGFyZWR3b3JrZXIuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkud29ya2VyLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC9mb28ud2luZG93Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9mb28ud29ya2VyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9pbnZhbGlk
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvbm9fbWFpbi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3N1Yi5zdWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
c3ViLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9maWxlX2hhc2guc3ViLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9maWxlX2hhc2hfc3ViamVjdC50eHQK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfZmlsZV9oYXNoX3VucmVjb2duaXplZC5z
dWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2hlYWRlcl9vcl9kZWZhdWx0
LnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVycy5zdWIudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2hlYWRlcnMudHh0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2xvY2F0aW9uLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9zdWJfcGFyYW1zLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9zdWJfcGFyYW1zLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl91cmxfYmFz
ZS5zdWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX3V1aWQuc3ViLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl92YXIuc3ViLnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3Rlc3QuYXNpcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rl
c3RfaDJfZGF0YS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rlc3RfaDJfaGVhZGVy
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rlc3RfaDJfaGVhZGVyc19kYXRhLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdGVzdF9zdHJpbmcucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC90ZXN0X3R1cGxlXzIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC90ZXN0X3R1cGxlXzMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93aXRoX2hl
YWRlcnMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvd2l0aF9oZWFkZXJzLnR4dC5z
dWIuaGVhZGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzODA2NTIwNTdlOWUzM2Y0YjAzZGZiMjI2MGMzZDM5NGRkN2UzMmY3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9i
YXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfY29va2llcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC90ZXN0X2hhbmRsZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaW5wdXRf
ZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL3Rlc3RfcmVxdWVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3Rfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL3Rlc3Rfc3Rhc2gucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzcw
OTI0YzA0ZWNkNWU5ZGZhNzYzNTY4ZGFlMTI1ODUwMzAxZjhjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy90ZXN0X3JlcGxhY2VtZW50X3Rva2VuaXplci5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9y
ZXF1ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3Jlc3BvbnNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNo
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFhYWY2N2U5ODU4YTEwN2RjODNhOTUyODVmMmI5
Mzk0N2ZiMDEzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9zc2x1dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NzViYmI2MDIz
NjFhYTQ0MzNlMGRlMWI2NDE2ZWM2YWMzMDU0NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRp
bHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL2Jhc2UucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3NzbHV0aWxzL29wZW5zc2wucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkK
aW5kZXggNDkzMTQ0MTMyZTIzMGU2YWQ5NDNhOWI3N2UwOTc5MGNjYmI2Y2ZhNS4uYmYzMDcwZjNl
YjIyZDM3ZTM4YzM1YjE3ZTY5ZjE0NDVmZTQ3MDZkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9z
dGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CkBAIC0yLDQwICsyLDU2IEBAIGltcG9y
dCBiYXNlNjQKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9ydCB0aHJlYWRpbmcKK2ltcG9y
dCBxdWV1ZQogaW1wb3J0IHV1aWQKIAotZnJvbSBtdWx0aXByb2Nlc3NpbmcubWFuYWdlcnMgaW1w
b3J0IEFjcXVpcmVyUHJveHksIEJhc2VNYW5hZ2VyLCBEaWN0UHJveHkKK2Zyb20gbXVsdGlwcm9j
ZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBBY3F1aXJlclByb3h5LCBCYXNlTWFuYWdlciwgQmFzZVBy
b3h5LCBEaWN0UHJveHksIHB1YmxpY19tZXRob2RzCiAKIGZyb20gLnV0aWxzIGltcG9ydCBpc29t
b3JwaGljX2VuY29kZQogCiAKLWNsYXNzIFNlcnZlckRpY3RNYW5hZ2VyKEJhc2VNYW5hZ2VyKToK
K2NsYXNzIFN0YXNoTWFuYWdlcihCYXNlTWFuYWdlcik6CiAgICAgc2hhcmVkX2RhdGEgPSB7fQog
ICAgIGxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCiAKIAogZGVmIF9nZXRfc2hhcmVkKCk6Ci0gICAg
cmV0dXJuIFNlcnZlckRpY3RNYW5hZ2VyLnNoYXJlZF9kYXRhCisgICAgcmV0dXJuIFN0YXNoTWFu
YWdlci5zaGFyZWRfZGF0YQogCiAKIGRlZiBfZ2V0X2xvY2soKToKLSAgICByZXR1cm4gU2VydmVy
RGljdE1hbmFnZXIubG9jaworICAgIHJldHVybiBTdGFzaE1hbmFnZXIubG9jawogCitTdGFzaE1h
bmFnZXIucmVnaXN0ZXIoImdldF9kaWN0IiwKKyAgICAgICAgICAgICAgICAgICAgICBjYWxsYWJs
ZT1fZ2V0X3NoYXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICBwcm94eXR5cGU9RGljdFByb3h5
KQorU3Rhc2hNYW5hZ2VyLnJlZ2lzdGVyKCdMb2NrJywKKyAgICAgICAgICAgICAgICAgICAgICBj
YWxsYWJsZT1fZ2V0X2xvY2ssCisgICAgICAgICAgICAgICAgICAgICAgcHJveHl0eXBlPUFjcXVp
cmVyUHJveHkpCiAKLVNlcnZlckRpY3RNYW5hZ2VyLnJlZ2lzdGVyKCJnZXRfZGljdCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYWxsYWJsZT1fZ2V0X3NoYXJlZCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByb3h5dHlwZT1EaWN0UHJveHkpCi1TZXJ2ZXJEaWN0TWFuYWdlci5y
ZWdpc3RlcignTG9jaycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYWJsZT1fZ2V0
X2xvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcm94eXR5cGU9QWNxdWlyZXJQcm94
eSkKIAorIyBXZSBoYXZlIHRvIGNyZWF0ZSBhbiBleHBsaWNpdCBjbGFzcyBoZXJlIGJlY2F1c2Ug
dGhlIGJ1aWx0LWluCisjIEF1dG9Qcm94eSBoYXMgYSBidWcgd2l0aCBuZXN0ZWQgbWFuYWdlcnMs
IGFuZCB0aGUgTWFrZVByb3h5CisjIG1ldGhvZCBkb2Vzbid0IHdvcmsgd2l0aCBzcGF3bi1iYXNl
ZCBtdWx0aXByb2Nlc3NpbmcsIHNpbmNlIHRoZQorIyBnZW5lcmF0ZWQgY2xhc3MgY2FuJ3QgYmUg
cGlja2xlZCBmb3IgdXNlIGluIGNoaWxkIHByb2Nlc3Nlcy4KK2NsYXNzIFF1ZXVlUHJveHkoQmFz
ZVByb3h5KToKKyAgICBfZXhwb3NlZF8gPSBwdWJsaWNfbWV0aG9kcyhxdWV1ZS5RdWV1ZSkKIAot
Y2xhc3MgQ2xpZW50RGljdE1hbmFnZXIoQmFzZU1hbmFnZXIpOgotICAgIHBhc3MKIAorZm9yIG1l
dGhvZCBpbiBRdWV1ZVByb3h5Ll9leHBvc2VkXzoKKworICAgIGRlZiBpbXBsX2ZuKG1ldGhvZCk6
CisgICAgICAgIGRlZiBfaW1wbChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX2NhbGxtZXRob2QobWV0aG9kLCBhcmdzLCBrd2FyZ3MpCisgICAgICAgIF9p
bXBsLl9fbmFtZV9fID0gbWV0aG9kCisgICAgICAgIHJldHVybiBfaW1wbAorCisgICAgc2V0YXR0
cihRdWV1ZVByb3h5LCBtZXRob2QsIGltcGxfZm4obWV0aG9kKSkKIAotQ2xpZW50RGljdE1hbmFn
ZXIucmVnaXN0ZXIoImdldF9kaWN0IikKLUNsaWVudERpY3RNYW5hZ2VyLnJlZ2lzdGVyKCJMb2Nr
IikKKworU3Rhc2hNYW5hZ2VyLnJlZ2lzdGVyKCJRdWV1ZSIsCisgICAgICAgICAgICAgICAgICAg
ICAgY2FsbGFibGU9cXVldWUuUXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgcHJveHl0eXBl
PVF1ZXVlUHJveHkpCiAKIAogY2xhc3MgU3Rhc2hTZXJ2ZXIob2JqZWN0KToKQEAgLTc3LDcgKzkz
LDcgQEAgZGVmIHN0YXJ0X3NlcnZlcihhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSwgbXBfY29u
dGV4dD1Ob25lKToKICAgICBrd2FyZ3MgPSB7fQogICAgIGlmIG1wX2NvbnRleHQgaXMgbm90IE5v
bmU6CiAgICAgICAgIGt3YXJnc1siY3R4Il0gPSBtcF9jb250ZXh0Ci0gICAgbWFuYWdlciA9IFNl
cnZlckRpY3RNYW5hZ2VyKGFkZHJlc3MsIGF1dGhrZXksICoqa3dhcmdzKQorICAgIG1hbmFnZXIg
PSBTdGFzaE1hbmFnZXIoYWRkcmVzcywgYXV0aGtleSwgKiprd2FyZ3MpCiAgICAgbWFuYWdlci5z
dGFydCgpCiAKICAgICBhZGRyZXNzID0gbWFuYWdlci5fYWRkcmVzcwpAQCAtMTMyLDYgKzE0OCw3
IEBAIGNsYXNzIFN0YXNoKG9iamVjdCk6CiAKICAgICBfcHJveHkgPSBOb25lCiAgICAgbG9jayA9
IE5vbmUKKyAgICBtYW5hZ2VyID0gTm9uZQogICAgIF9pbml0aWFsaXppbmcgPSB0aHJlYWRpbmcu
TG9jaygpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZGVmYXVsdF9wYXRoLCBhZGRyZXNzPU5v
bmUsIGF1dGhrZXk9Tm9uZSk6CkBAIC0xNTQsMTAgKzE3MSwxMyBAQCBjbGFzcyBTdGFzaChvYmpl
Y3QpOgogICAgICAgICAgICAgaWYgU3Rhc2gubG9jazoKICAgICAgICAgICAgICAgICByZXR1cm4K
IAotICAgICAgICAgICAgbWFuYWdlciA9IENsaWVudERpY3RNYW5hZ2VyKGFkZHJlc3MsIGF1dGhr
ZXkpCi0gICAgICAgICAgICBtYW5hZ2VyLmNvbm5lY3QoKQotICAgICAgICAgICAgU3Rhc2guX3By
b3h5ID0gbWFuYWdlci5nZXRfZGljdCgpCi0gICAgICAgICAgICBTdGFzaC5sb2NrID0gTG9ja1dy
YXBwZXIobWFuYWdlci5Mb2NrKCkpCisgICAgICAgICAgICBTdGFzaC5tYW5hZ2VyID0gU3Rhc2hN
YW5hZ2VyKGFkZHJlc3MsIGF1dGhrZXkpCisgICAgICAgICAgICBTdGFzaC5tYW5hZ2VyLmNvbm5l
Y3QoKQorICAgICAgICAgICAgU3Rhc2guX3Byb3h5ID0gc2VsZi5tYW5hZ2VyLmdldF9kaWN0KCkK
KyAgICAgICAgICAgIFN0YXNoLmxvY2sgPSBMb2NrV3JhcHBlcihzZWxmLm1hbmFnZXIuTG9jaygp
KQorCisgICAgZGVmIGdldF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWFuYWdl
ci5RdWV1ZSgpCiAKICAgICBkZWYgX3dyYXBfa2V5KHNlbGYsIGtleSwgcGF0aCk6CiAgICAgICAg
IGlmIHBhdGggaXMgTm9uZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYTgwNzM1MThmYzI3MTBhMmMxYjcxMzg4Y2EzNmFmOGUxMTRiZDVkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbnN0YW50cy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2xvZ2dlci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0
c2VydmUvcGlwZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jhbmdlcy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVxdWVz
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvcm91dGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0
YXNoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvd3B0c2VydmUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3dzX2gyX2hhbmRzaGFrZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93cHRz
ZXJ2ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvd3B0c2VydmUucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451914</attachid>
            <date>2022-02-14 09:35:08 -0800</date>
            <delta_ts>2022-02-14 11:01:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206546-20220214093507.patch</filename>
            <type>text/plain</type>
            <size>2017</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWFiODBkODBlY2Y2NmRkYjI5NjAzYjFjYWRjODkzNGVk
ZTg1YmM0OC4uNGU1YzY4NjRhMDdkOWY2YWIxMmZkNTc5OTc1MGUxM2E5NWMzMWEwYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIyLTAyLTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICB3ZWJraXRweTogV2ViU29ja2V0IHNlcnZlciBkb2Vzbid0IHN1cHBvcnQgUHl0aG9u
IDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU0
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg4MTQ3NDM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgIChQeVdlYlNvY2tldC5f
cHJlcGFyZV9jb25maWcpOiBBbHdheXMgaW52b2tlIHdlYnNvY2tldCBzZXJ2ZXIgd2l0aCBQeXRo
b24gMy4KKwogMjAyMi0wMi0xMSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0VXU10gUmUtZW5hYmxlIGJ1aWxkIHJldHJ5IGZvciBQUnMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0
X3NlcnZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMv
d2Vic29ja2V0X3NlcnZlci5weQppbmRleCA4N2QyZTg1YjRhNjk0ZTI1NDRkNDQ1ZTVmOTJiMWNl
NDc0MTQ5YjBmLi5iNDFjOWM4Yjg3YzJlN2ZkMjBhMDEwYjQ4NmU1NzQ3MDdmNzZlY2Q5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNv
Y2tldF9zZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
c2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CkBAIC0xMTYsMTEgKzExNiwxMSBAQCBjbGFzcyBQ
eVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAKICAgICAgICAgIyBGSVhNRSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTQ2OiBTaG91bGQgYmUgdXNp
bmcgdGhlIHNhbWUgdmVyc2lvbiBvZiBQeXRob24gcnVuLXdlYmtpdC10ZXN0cyBpcwogICAgICAg
ICBweXRob25faW50ZXJwID0gc3lzLmV4ZWN1dGFibGUKLSAgICAgICAgaWYgc3lzLnZlcnNpb25f
aW5mbyA+ICgzLCAwKToKLSAgICAgICAgICAgIHB5dGhvbl9pbnRlcnAgPSAncHl0aG9uMicKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAgICAgICAgIHB5dGhvbl9p
bnRlcnAgPSAncHl0aG9uMycKIAogICAgICAgICB3cHRfdG9vbHNfYmFzZSA9IHNlbGYuX2ZpbGVz
eXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfdGVzdHMsICJpbXBvcnRlZCIsICJ3M2MiLCAid2ViLXBs
YXRmb3JtLXRlc3RzIiwgInRvb2xzIikKLSAgICAgICAgcHl3ZWJzb2NrZXRfYmFzZSA9IHNlbGYu
X2ZpbGVzeXN0ZW0uam9pbih3cHRfdG9vbHNfYmFzZSwgInB5d2Vic29ja2V0IikKKyAgICAgICAg
cHl3ZWJzb2NrZXRfYmFzZSA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbih3cHRfdG9vbHNfYmFzZSwg
InRoaXJkX3BhcnR5IiwgInB5d2Vic29ja2V0MyIpCiAgICAgICAgIHB5d2Vic29ja2V0X2RlcHMg
PSBbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHdwdF90b29sc19iYXNlLCAidGhpcmRfcGFydHkiLCAi
c2l4IildCiAgICAgICAgIHB5d2Vic29ja2V0X3NjcmlwdCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9p
bihweXdlYnNvY2tldF9iYXNlLCAnbW9kX3B5d2Vic29ja2V0JywgJ3N0YW5kYWxvbmUucHknKQog
ICAgICAgICBzdGFydF9jbWQgPSBbCg==
</data>
<flag name="commit-queue"
          id="478806"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>